diff --git a/.gitignore b/.gitignore index 79339b7..dc01e21 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ obj/ -*.pyc \ No newline at end of file +*.pyc +idapyswitch* +fuzzer/ +.vscode/ diff --git a/BUILDING.txt b/BUILDING.txt index 81722d3..51bba52 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -13,11 +13,10 @@ REQUIREMENTS - IDA and IDA SDK [> 5.6] http://www.hex-rays.com/idapro/ - - Python [2.5.1, 2.6.1, 2.7] + - Python 3.x http://www.python.org/ - Simplified Wrapper Interface Generator (SWIG) - - if you intend to build for Python 2.x: [4.0.1] - if you intend to build for Python 3.x: [4.0.1, with support for -py3-limited-api] Hex-Rays cannot guarantee support for IDAPython @@ -31,8 +30,12 @@ REQUIREMENTS On Windows, please refer to the following instructions: `http://www.swig.org/Doc4.0/Windows.html#Windows_cygwin_mingw` On Linux or OSX, + (On Ubuntu, you might want to install a couple of packages: + `sudo apt install libpcre3-dev yacc bison automake autotools-dev patchelf -y`) + `sh autogen.sh`, then - `configure --prefix=/my/swig-4.0.1-py3-install && make && make install` + `./configure --prefix=/my_path_to/swig-4.0.1-py3-install && make && make install` + - Unix utilities (GNU patch on Windows): http://www.research.att.com/sw/tools/uwin/ or @@ -77,13 +80,14 @@ Note: the path you unpack the IDA SDK into cannot contain white spaces, Note: If you want to build for Python3 (let's say you are building for Python 3.8), please set the following environment variables: - export PYTHON_VERSION_MAJOR=3 ('set PYTHON_VERSION_MAJOR=3' on Windows) - - export PYTHON_VERSION_MAJOR=8 ('set PYTHON_VERSION_MINOR=8 on Windows) + - export PYTHON_VERSION_MINOR=8 ('set PYTHON_VERSION_MINOR=8 on Windows) 4. Build the plugin - python build.py --swig-home /my/swig-4.0.1-py3-install --with-hexrays --idc /path/to/ida74_install/idc/idc.idc + python build.py --swig-home /my_path_to/swig-4.0.1-py3-install --with-hexrays --ida-install /path/to/ida_install/ You can also run 'build.py --help' for more information. 5. Install the components as described in README.md + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 82d044c..22b9cd8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,6 +53,8 @@ so we don't have to do it ourselves. When it comes to other types of pull requests (e.g., documentation), it should usually not be necessary to write a test. +See also [the best practices for tests & examples](examples/README.md) + ### How to write tests? diff --git a/HOWTO.md b/HOWTO.md index a47812d..6aee545 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -7,9 +7,9 @@ to the C++ SDK which will then be reflected in IDAPython, an *immensely* useful rule-of-thumb is to perform a diff of the autogenerated SWiG wrappers. Typically: -`cp -R obj/x64_linux_gcc_32/wrappers/ /tmp/wrappers-before` +`cp -R obj/x64_linux_gcc_32/3/wrappers/ /tmp/wrappers-before` -`git diff /tmp/wrappers-before/ obj/x64_linux_gcc_32/wrappers/` +`git diff /tmp/wrappers-before/ obj/x64_linux_gcc_32/3/wrappers/` It is always useful to make sure that SWiG did the right thing -- *especially* when modifying typemaps, but not only. @@ -28,17 +28,19 @@ We use the "zzz" placeholder for a module name in this "how-to". 2. add zzz to the `MODULES_NAMES` var in makefile -3. add a line to python/idc.py if you want to autoload this module +3. add zzz to `SDK_FILES` var in etc/sdk/sdk_files.mak + +4. add a line to python/idc.py if you want to autoload this module ``` import ida_zzz ``` -4. build +5. build -5. update the content of api_contents.txt +6. update the content of api_contents.txt (from obj/.../api_contents.txt.new) -6. rebuild +7. rebuild -7. update the content of pydoc_injections.txt +8. update the content of pydoc_injections.txt (from obj/.../pydoc_injections.txt) diff --git a/README.md b/README.md index 6e578ef..000463f 100644 --- a/README.md +++ b/README.md @@ -15,23 +15,22 @@ Latest stable versions of IDAPython are available from ## Resources The full function cross-reference is readable online at - http://www.hex-rays.com/idapro/idapython_docs/ + https://www.hex-rays.com/products/ida/support/idapython_docs/ Mailing list for the project is hosted by Google Groups at - http://groups.google.com/group/idapython + https://groups.google.com/g/idapython ## Installation from binaries -1. Install 2.6 or 2.7 from http://www.python.org/ +1. Install latest Python 3.x version from https://www.python.org/ 2. Copy the whole "python" directory to `%IDADIR%` -3. Copy the contents of the "plugins" directory to the `%IDADIR%\plugins\` -4. Copy "python.cfg" to `%IDADIR%\cfg` +3. Copy "idapython.cfg" to `%IDADIR%\cfg` ## Usage - - Run script: File / Script file (Alt-F7) - - Execute Python statement(s) (Ctrl-F3) - - Run previously executed script again: View / Recent Scripts (Alt+F9) + - Run script: File / Script file (`Alt+F7`) + - Execute Python statement(s) (`Shift+F2`) + - Run previously executed script again: View / Recent Scripts (`Alt+F9`) ### Batch mode execution: @@ -48,7 +47,7 @@ or -S"yourscript.py arg1 arg2 arg3" ``` -(Please see http://www.hexblog.com/?p=128) +(Please see https://hex-rays.com/blog/running-scripts-from-the-command-line-with-idascript/) If you want fully unattended execution mode, make sure your script exits with a `qexit()` call. @@ -65,7 +64,7 @@ Where N can be: ### User init file -You can place your custom settings to a file called 'idapythonrc.py' +You can place your custom settings to a file called `idapythonrc.py` that should be placed to ```sh ${HOME}/.idapro/ @@ -76,27 +75,27 @@ or ``` The user init file is read and executed at the end of the init process. -Please note that IDAPython can be configured with "python.cfg" file. +Please note that IDAPython can be configured with `idapython.cfg` file. ### Invoking Python from IDC -The IDAPython plugin exposes a new IDC function `RunPythonStatement(string idc_code)` that allows execution -of Python code from IDC +The IDAPython plugin exposes a new IDC function `exec_python(string python_code)` that allows execution +of Python code from IDC. ### Invoking IDC from Python -It is possible to use the `idc.eval()` to evaluate IDC expressions from Python +It is possible to use the `idc.eval_idc()` to evaluate IDC expressions from Python. -### Making Python the default language +### Switching the default language between Python and IDC -By default, IDA will use IDC to evaluate expressions. It is possible to change the default language to use -Python instead of IDC. +By default, IDA will use IDC to evaluate expressions in dialog boxes and in `eval_expr()`. +It is possible to change the default language to Python. -In order to do that, please use the following IDC code: +In order to do that, use the following (IDC/Python) code: ```c -load_and_run_plugin("python", 3) +load_and_run_plugin("idapython", 3) ``` -To disable Python language and revert back to IDC: +To go back to IDC, use the following code: ```c -load_and_run_plugin("python", 4) +load_and_run_plugin("idapython", 4) ``` diff --git a/README_python3.txt b/README_python3.txt index 56ee6af..156f4c6 100644 --- a/README_python3.txt +++ b/README_python3.txt @@ -1,43 +1,20 @@ +IDAPython requires a Python3.x installation in order to work. -IDAPython comes in two flavors: +Because different users might have different (and possibly multiple) +versions of Python3.x installed, IDA comes with a tool called `idapyswitch` +that can be run to select the desired Python3.x runtime. -* IDAPython-for-Python2 -* IDAPython-for-Python3 +If you selected IDAPython-for-Python3.x at the installation time, +the `idapyswitch` utility should already have been run and selected +the most appropriate Python3.x version. -# Switching between Python 2 and Python 3. - -Depending on your choice at the install time, your "plugins" directory will have -one version of plugin installed as idapython.[dll|so|dylib] (and/or idapython64) and -the other will be present with the ".disabled" extension. To switch, just rename the -current version to .disabled and the disabled one back to the .dll/.so/.dylib -(depending on your OS) - -For example, to swith from Python 3 to Python 2 on Windows: - -1. rename idapython.dll to idapython.3.disabled and idapython64.dll to idapython64.3.disabled -2. rename idapython2.disabled to idapython.dll and idapython642.disabled to idapython64.dll - - -# Selecting a Python install to use - -The situation for IDAPython-for-Python2 is simple: it uses Python 2.7, -and will expect that [lib]python2.7.[dll|so|dylib] is present in the system -library path so that IDA can find it. - -When it comes to IDAPython-for-Python3, it gets more complex: because -different users might have different (and possibly multiple) versions -of Python3 installed, IDA comes with a tool called `idapyswitch`, that -can be run to select the desired Python3 runtime to tailor -IDAPython-for-Python3 to. - -If you selected IDAPython-for-Python3 at installation-time, -`idapyswitch` utility should already have been run, and selected -the most appropriate Python3 version. - -Should you want to switch to another Python3 install after installation, -please run `idapyswitch` from IDA's directory. It will scan for Python -installs present in the system's standard locations and offer you to choose one. +Should you want to switch to another Python3.x install after installation, +please run `idapyswitch` from the IDA directory. It will scan for Python +installs present in the system's standard locations and offer you to choose one. It also supports optional command-line switches to handle non-standard installs. Run `idapyswitch -h` to see them. +On Windows, you may need to run it as administrator +so it can patch sip.pyd (library required for PyQt bindings). + diff --git a/Scripts/CallStackWalk.py b/Scripts/CallStackWalk.py index 8a1fe6c..47492fb 100644 --- a/Scripts/CallStackWalk.py +++ b/Scripts/CallStackWalk.py @@ -4,7 +4,7 @@ A script that tries to determine the call stack Run the application with the debugger, suspend the debugger, select a thread and finally run the script. -Copyright (c) 1990-2019 Hex-Rays +Copyright (c) 1990-2023 Hex-Rays ALL RIGHTS RESERVED. """ import ida_ua diff --git a/Scripts/DrvsDispatch.py b/Scripts/DrvsDispatch.py index 47fcc09..2f8a803 100644 --- a/Scripts/DrvsDispatch.py +++ b/Scripts/DrvsDispatch.py @@ -2,7 +2,7 @@ A script to demonstrate how to send commands to the debugger and then parse and use the output in IDA -Copyright (c) 1990-2019 Hex-Rays +Copyright (c) 1990-2023 Hex-Rays ALL RIGHTS RESERVED. """ diff --git a/Scripts/ExchainDump.py b/Scripts/ExchainDump.py index 5356f3a..8fc4c8d 100644 --- a/Scripts/ExchainDump.py +++ b/Scripts/ExchainDump.py @@ -2,7 +2,7 @@ This script shows how to send debugger commands and use the result in IDA -Copyright (c) 1990-2019 Hex-Rays +Copyright (c) 1990-2023 Hex-Rays ALL RIGHTS RESERVED. """ diff --git a/Scripts/FindInstructions.py b/Scripts/FindInstructions.py index 51dc175..4ab5661 100644 --- a/Scripts/FindInstructions.py +++ b/Scripts/FindInstructions.py @@ -13,7 +13,7 @@ The general syntax is: * To specify in which context the instructions should be assembled, pass asm_where=ea: find("jmp dword ptr [esp]", asm_where=here()) -Copyright (c) 1990-2019 Hex-Rays +Copyright (c) 1990-2023 Hex-Rays ALL RIGHTS RESERVED. """ from __future__ import print_function diff --git a/Scripts/SEHGraph.py b/Scripts/SEHGraph.py index f940b09..a314fdc 100644 --- a/Scripts/SEHGraph.py +++ b/Scripts/SEHGraph.py @@ -4,7 +4,7 @@ A script that graphs all the exception handlers in a given process It will be easy to see what thread uses what handler and what handlers are commonly used between threads -Copyright (c) 1990-2019 Hex-Rays +Copyright (c) 1990-2023 Hex-Rays ALL RIGHTS RESERVED. """ from __future__ import print_function diff --git a/Scripts/VaDump.py b/Scripts/VaDump.py index 124e13a..ef81744 100644 --- a/Scripts/VaDump.py +++ b/Scripts/VaDump.py @@ -2,7 +2,7 @@ This script shows how to send debugger commands and use the result in IDA -Copyright (c) 1990-2019 Hex-Rays +Copyright (c) 1990-2023 Hex-Rays ALL RIGHTS RESERVED. """ diff --git a/Scripts/VirusTotal.py b/Scripts/VirusTotal.py index 2177a31..d07b403 100644 --- a/Scripts/VirusTotal.py +++ b/Scripts/VirusTotal.py @@ -2,7 +2,7 @@ from __future__ import print_function # ----------------------------------------------------------------------- # VirusTotal IDA Plugin # By Elias Bachaalany -# (c) Hex-Rays 2011-2019 +# (c) Hex-Rays 2011-2023 # # Special thanks: # - VirusTotal team diff --git a/api_contents3.txt b/api_contents3.txt index c0a3857..0ad787d 100644 --- a/api_contents3.txt +++ b/api_contents3.txt @@ -22,6 +22,7 @@ 'DBG_Hooks_dbg_trace', 'DBG_Hooks_hook', 'DBG_Hooks_unhook', + 'Hexrays_Hooks_build_callinfo', 'Hexrays_Hooks_close_pseudocode', 'Hexrays_Hooks_cmt_changed', 'Hexrays_Hooks_combine', @@ -55,6 +56,7 @@ 'Hexrays_Hooks_switch_pseudocode', 'Hexrays_Hooks_text_ready', 'Hexrays_Hooks_unhook', + 'IDB_Hooks_adding_segm', 'IDB_Hooks_allsegs_moved', 'IDB_Hooks_auto_empty', 'IDB_Hooks_auto_empty_finally', @@ -88,19 +90,30 @@ 'IDB_Hooks_deleting_tryblks', 'IDB_Hooks_destroyed_items', 'IDB_Hooks_determined_main', + 'IDB_Hooks_dirtree_link', + 'IDB_Hooks_dirtree_mkdir', + 'IDB_Hooks_dirtree_move', + 'IDB_Hooks_dirtree_rank', + 'IDB_Hooks_dirtree_rmdir', + 'IDB_Hooks_dirtree_rminode', + 'IDB_Hooks_dirtree_segm_moved', 'IDB_Hooks_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', 'IDB_Hooks_flow_chart_created', 'IDB_Hooks_frame_deleted', 'IDB_Hooks_func_added', + 'IDB_Hooks_func_deleted', 'IDB_Hooks_func_noret_changed', 'IDB_Hooks_func_tail_appended', 'IDB_Hooks_func_tail_deleted', @@ -158,7 +171,9 @@ 'IDP_Hooks_ev_adjust_refinfo', 'IDP_Hooks_ev_ana_insn', 'IDP_Hooks_ev_analyze_prolog', + 'IDP_Hooks_ev_arch_changed', 'IDP_Hooks_ev_arg_addrs_ready', + 'IDP_Hooks_ev_asm_installed', 'IDP_Hooks_ev_assemble', 'IDP_Hooks_ev_auto_queue_empty', 'IDP_Hooks_ev_calc_arglocs', @@ -178,6 +193,7 @@ 'IDP_Hooks_ev_coagulate_dref', 'IDP_Hooks_ev_create_flat_group', 'IDP_Hooks_ev_create_func_frame', + 'IDP_Hooks_ev_create_merge_handlers', 'IDP_Hooks_ev_create_switch_xrefs', 'IDP_Hooks_ev_creating_segm', 'IDP_Hooks_ev_decorate_name', @@ -208,10 +224,12 @@ 'IDP_Hooks_ev_get_frame_retsize', 'IDP_Hooks_ev_get_macro_insn_head', 'IDP_Hooks_ev_get_operand_string', + 'IDP_Hooks_ev_get_procmod', + 'IDP_Hooks_ev_get_reg_accesses', 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -221,6 +239,7 @@ 'IDP_Hooks_ev_is_basic_block_end', 'IDP_Hooks_ev_is_call_insn', 'IDP_Hooks_ev_is_cond_insn', + 'IDP_Hooks_ev_is_control_flow_guard', 'IDP_Hooks_ev_is_far_jump', 'IDP_Hooks_ev_is_indirect_jump', 'IDP_Hooks_ev_is_insn_table_jump', @@ -253,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -260,11 +280,11 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', 'IDP_Hooks_ev_undefine', + 'IDP_Hooks_ev_update_call_stack', 'IDP_Hooks_ev_use_arg_types', 'IDP_Hooks_ev_use_regarg_type', 'IDP_Hooks_ev_use_stkarg_type', @@ -285,17 +305,23 @@ 'TWidget__from_ptrval__', 'UI_Hooks_create_desktop_widget', 'UI_Hooks_current_widget_changed', + 'UI_Hooks_database_closed', 'UI_Hooks_database_inited', 'UI_Hooks_debugger_menu_change', + 'UI_Hooks_desktop_applied', + 'UI_Hooks_destroying_plugmod', + 'UI_Hooks_destroying_procmod', 'UI_Hooks_finish_populating_widget_popup', 'UI_Hooks_get_chooser_item_attrs', 'UI_Hooks_get_custom_viewer_hint', 'UI_Hooks_get_ea_hint', 'UI_Hooks_get_item_hint', + 'UI_Hooks_get_lines_rendering_info', 'UI_Hooks_get_widget_config', 'UI_Hooks_hook', 'UI_Hooks_idcstart', 'UI_Hooks_idcstop', + 'UI_Hooks_initing_database', 'UI_Hooks_plugin_loaded', 'UI_Hooks_plugin_unloading', 'UI_Hooks_populating_widget_popup', @@ -309,7 +335,6 @@ 'UI_Hooks_screen_ea_changed', 'UI_Hooks_set_widget_config', 'UI_Hooks_suspend', - 'UI_Hooks_term', 'UI_Hooks_unhook', 'UI_Hooks_updated_actions', 'UI_Hooks_updating_actions', @@ -336,7 +361,9 @@ '_ask_long__varargs__', '_ask_seg', '_ask_seg__varargs__', - '_kludge_use_TPopupMenu', + '_kludge_force_declare_TPopupMenu', + '_kludge_force_declare_dirspec_t', + '_kludge_force_declare_dirtree_t', '_ll_call_helper', '_ll_call_helper__varargs__', '_ll_create_helper', @@ -346,11 +373,35 @@ '_ll_make_num', '_ll_make_ref', '_ll_new_block', + 'abstract_graph_t_callback_ud_get', + 'abstract_graph_t_callback_ud_set', + 'abstract_graph_t_circle_center_get', + 'abstract_graph_t_circle_center_set', + 'abstract_graph_t_circle_radius_get', + 'abstract_graph_t_circle_radius_set', + 'abstract_graph_t_create_circle_layout', + 'abstract_graph_t_create_tree_layout', + 'abstract_graph_t_current_layout_get', + 'abstract_graph_t_current_layout_set', + 'abstract_graph_t_get_edge', + 'abstract_graph_t_grcall', + 'abstract_graph_t_grcall__varargs__', + 'abstract_graph_t_nrect', + 'abstract_graph_t_rect_edges_made_get', + 'abstract_graph_t_rect_edges_made_set', + 'abstract_graph_t_set_callback', + 'abstract_graph_t_title_get', + 'abstract_graph_t_title_set', 'accepts_small_udts', 'accepts_udts', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', + 'action_ctx_base_cur_sel_t__from_get', + 'action_ctx_base_cur_sel_t__from_set', + 'action_ctx_base_cur_sel_t_reset', + 'action_ctx_base_cur_sel_t_to_get', + 'action_ctx_base_cur_sel_t_to_set', + 'action_ctx_base_source_t_chooser_get', + 'action_ctx_base_source_t_chooser_set', + 'action_ctx_base_source_t_reset', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -358,6 +409,8 @@ 'action_ctx_base_t_cur_ea_get', 'action_ctx_base_t_cur_ea_set', 'action_ctx_base_t_cur_enum_get', + 'action_ctx_base_t_cur_enum_member_get', + 'action_ctx_base_t_cur_enum_member_set', 'action_ctx_base_t_cur_enum_set', 'action_ctx_base_t_cur_fchunk_get', 'action_ctx_base_t_cur_fchunk_set', @@ -367,12 +420,16 @@ 'action_ctx_base_t_cur_func_set', 'action_ctx_base_t_cur_seg_get', 'action_ctx_base_t_cur_seg_set', + 'action_ctx_base_t_cur_sel_get', + 'action_ctx_base_t_cur_sel_set', 'action_ctx_base_t_cur_strmem_get', 'action_ctx_base_t_cur_strmem_set', 'action_ctx_base_t_cur_struc_get', 'action_ctx_base_t_cur_struc_set', 'action_ctx_base_t_cur_value_get', 'action_ctx_base_t_cur_value_set', + 'action_ctx_base_t_dirtree_selection_get', + 'action_ctx_base_t_dirtree_selection_set', 'action_ctx_base_t_focus_get', 'action_ctx_base_t_focus_set', 'action_ctx_base_t_graph_selection_get', @@ -381,6 +438,8 @@ 'action_ctx_base_t_regname_get', 'action_ctx_base_t_regname_set', 'action_ctx_base_t_reset', + 'action_ctx_base_t_source_get', + 'action_ctx_base_t_source_set', 'action_ctx_base_t_widget_get', 'action_ctx_base_t_widget_set', 'action_ctx_base_t_widget_title_get', @@ -506,6 +565,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -520,6 +581,7 @@ 'argloc_t_get_rrel__SWIG_1', 'argloc_t_has_reg', 'argloc_t_has_stkoff', + 'argloc_t_in_stack', 'argloc_t_is_badloc', 'argloc_t_is_custom', 'argloc_t_is_ea', @@ -531,8 +593,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -595,6 +655,12 @@ 'argpartvec_t_size', 'argpartvec_t_swap', 'argpartvec_t_truncate', + 'argtinfo_helper_t_has_delay_slot', + 'argtinfo_helper_t_is_stkarg_load', + 'argtinfo_helper_t_reserved_get', + 'argtinfo_helper_t_reserved_set', + 'argtinfo_helper_t_set_op_tinfo', + 'argtinfo_helper_t_use_arg_tinfos', 'array_of_bitsets___eq__', 'array_of_bitsets___getitem__', 'array_of_bitsets___len__', @@ -804,6 +870,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -862,6 +930,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -873,14 +942,11 @@ 'base2file', 'beep', 'begin_type_updating', - 'bgcolors_t_epilog_color_get', - 'bgcolors_t_epilog_color_set', - 'bgcolors_t_prolog_color_get', - 'bgcolors_t_prolog_color_set', - 'bgcolors_t_switch_color_get', - 'bgcolors_t_switch_color_set', 'bin_flag', 'bin_search', + 'bin_search3', + 'bin_search__SWIG_0', + 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', 'bit_bound_t_nbits_set', 'bit_bound_t_sbits_get', @@ -899,6 +965,30 @@ 'bitfield_type_data_t_swap', 'bitfield_type_data_t_width_get', 'bitfield_type_data_t_width_set', + 'bitrange_t___eq__', + 'bitrange_t___ge__', + 'bitrange_t___gt__', + 'bitrange_t___le__', + 'bitrange_t___lt__', + 'bitrange_t___ne__', + 'bitrange_t___str__', + 'bitrange_t_apply_mask', + 'bitrange_t_bitoff', + 'bitrange_t_bitsize', + 'bitrange_t_bytesize', + 'bitrange_t_compare', + 'bitrange_t_create_union', + 'bitrange_t_empty', + 'bitrange_t_extract', + 'bitrange_t_has_common', + 'bitrange_t_init', + 'bitrange_t_inject', + 'bitrange_t_intersect', + 'bitrange_t_mask64', + 'bitrange_t_reset', + 'bitrange_t_shift_down', + 'bitrange_t_shift_up', + 'bitrange_t_sub', 'bitset_t___eq__', 'bitset_t___ge__', 'bitset_t___gt__', @@ -1005,6 +1095,7 @@ 'bookmarks_t_find_index', 'bookmarks_t_get', 'bookmarks_t_get_desc', + 'bookmarks_t_get_dirtree_id', 'bookmarks_t_mark', 'bookmarks_t_size', 'boolvec_t___eq__', @@ -1091,6 +1182,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1176,6 +1269,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1222,46 +1317,47 @@ 'call_stack_info_t_funcea_set', 'call_stack_info_t_funcok_get', 'call_stack_info_t_funcok_set', - 'call_stack_t___eq__', - 'call_stack_t___getitem__', - 'call_stack_t___len__', - 'call_stack_t___ne__', - 'call_stack_t___setitem__', - 'call_stack_t__del', - 'call_stack_t_add_unique', - 'call_stack_t_at', - 'call_stack_t_begin', - 'call_stack_t_begin__SWIG_0', - 'call_stack_t_begin__SWIG_1', - 'call_stack_t_capacity', - 'call_stack_t_clear', - 'call_stack_t_empty', - 'call_stack_t_end', - 'call_stack_t_end__SWIG_0', - 'call_stack_t_end__SWIG_1', - 'call_stack_t_erase', - 'call_stack_t_erase__SWIG_0', - 'call_stack_t_erase__SWIG_1', - 'call_stack_t_extract', - 'call_stack_t_find', - 'call_stack_t_find__SWIG_0', - 'call_stack_t_find__SWIG_1', - 'call_stack_t_grow', - 'call_stack_t_has', - 'call_stack_t_inject', - 'call_stack_t_insert', - 'call_stack_t_pop_back', - 'call_stack_t_push_back', - 'call_stack_t_push_back__SWIG_0', - 'call_stack_t_push_back__SWIG_1', - 'call_stack_t_qclear', - 'call_stack_t_reserve', - 'call_stack_t_resize', - 'call_stack_t_resize__SWIG_0', - 'call_stack_t_resize__SWIG_1', - 'call_stack_t_size', - 'call_stack_t_swap', - 'call_stack_t_truncate', + 'call_stack_info_vec_t___eq__', + 'call_stack_info_vec_t___getitem__', + 'call_stack_info_vec_t___len__', + 'call_stack_info_vec_t___ne__', + 'call_stack_info_vec_t___setitem__', + 'call_stack_info_vec_t__del', + 'call_stack_info_vec_t_add_unique', + 'call_stack_info_vec_t_at', + 'call_stack_info_vec_t_begin', + 'call_stack_info_vec_t_begin__SWIG_0', + 'call_stack_info_vec_t_begin__SWIG_1', + 'call_stack_info_vec_t_capacity', + 'call_stack_info_vec_t_clear', + 'call_stack_info_vec_t_empty', + 'call_stack_info_vec_t_end', + 'call_stack_info_vec_t_end__SWIG_0', + 'call_stack_info_vec_t_end__SWIG_1', + 'call_stack_info_vec_t_erase', + 'call_stack_info_vec_t_erase__SWIG_0', + 'call_stack_info_vec_t_erase__SWIG_1', + 'call_stack_info_vec_t_extract', + 'call_stack_info_vec_t_find', + 'call_stack_info_vec_t_find__SWIG_0', + 'call_stack_info_vec_t_find__SWIG_1', + 'call_stack_info_vec_t_grow', + 'call_stack_info_vec_t_has', + 'call_stack_info_vec_t_inject', + 'call_stack_info_vec_t_insert', + 'call_stack_info_vec_t_pop_back', + 'call_stack_info_vec_t_push_back', + 'call_stack_info_vec_t_push_back__SWIG_0', + 'call_stack_info_vec_t_push_back__SWIG_1', + 'call_stack_info_vec_t_qclear', + 'call_stack_info_vec_t_reserve', + 'call_stack_info_vec_t_resize', + 'call_stack_info_vec_t_resize__SWIG_0', + 'call_stack_info_vec_t_resize__SWIG_1', + 'call_stack_info_vec_t_size', + 'call_stack_info_vec_t_swap', + 'call_stack_info_vec_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1280,6 +1376,9 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', + 'cancellable_graph_t_cancelled_get', + 'cancellable_graph_t_cancelled_set', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1437,10 +1536,13 @@ 'cdg_insn_iterator_t_has_dslot', 'cdg_insn_iterator_t_is_likely_dslot_get', 'cdg_insn_iterator_t_is_likely_dslot_set', - 'cdg_insn_iterator_t_is_separate_dslot_get', - 'cdg_insn_iterator_t_is_separate_dslot_set', + 'cdg_insn_iterator_t_is_severed_dslot', + 'cdg_insn_iterator_t_mba_get', + 'cdg_insn_iterator_t_mba_set', 'cdg_insn_iterator_t_next', 'cdg_insn_iterator_t_ok', + 'cdg_insn_iterator_t_severed_branch_get', + 'cdg_insn_iterator_t_severed_branch_set', 'cdg_insn_iterator_t_start', 'cdo_t___eq__', 'cdo_t___ge__', @@ -1589,6 +1691,7 @@ 'cfunc_t_has_orphan_cmts', 'cfunc_t_hdrlines_get', 'cfunc_t_hdrlines_set', + 'cfunc_t_locked', 'cfunc_t_maturity_get', 'cfunc_t_maturity_set', 'cfunc_t_mba_get', @@ -1653,6 +1756,7 @@ 'cfuncptr_t_has_orphan_cmts', 'cfuncptr_t_hdrlines_get', 'cfuncptr_t_hdrlines_set', + 'cfuncptr_t_locked', 'cfuncptr_t_maturity_get', 'cfuncptr_t_maturity_set', 'cfuncptr_t_mba_get', @@ -1764,6 +1868,8 @@ 'choose_func', 'choose_get_widget', 'choose_idasgn', + 'choose_ioport_device2', + 'choose_ioport_parser_t_parse', 'choose_local_tinfo', 'choose_local_tinfo_and_delta', 'choose_name', @@ -1776,11 +1882,58 @@ 'choose_til', 'choose_trace_file', 'choose_xref', + 'chooser_base_t_ask_item_attrs', + 'chooser_base_t_can_del', + 'chooser_base_t_can_edit', + 'chooser_base_t_can_filter', + 'chooser_base_t_can_ins', + 'chooser_base_t_can_refresh', + 'chooser_base_t_can_sort', + 'chooser_base_t_columns_get', + 'chooser_base_t_deflt_col_get', + 'chooser_base_t_get_builtin_number', + 'chooser_base_t_get_count', + 'chooser_base_t_get_ea', + 'chooser_base_t_get_quick_filter_initial_mode', + 'chooser_base_t_get_row', + 'chooser_base_t_has_diff_capability', + 'chooser_base_t_has_dirtree', + 'chooser_base_t_header_get', + 'chooser_base_t_height_get', + 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', + 'chooser_base_t_is_force_default', + 'chooser_base_t_is_modal', + 'chooser_base_t_is_multi', + 'chooser_base_t_is_noidb', + 'chooser_base_t_is_quick_filter_visible_initially', + 'chooser_base_t_is_same', + 'chooser_base_t_is_status_bar_hidden', + 'chooser_base_t_popup_allowed', + 'chooser_base_t_popup_names_get', + 'chooser_base_t_should_rename_trigger_edit', + 'chooser_base_t_should_restore_geometry', + 'chooser_base_t_title_get', + 'chooser_base_t_width_get', + 'chooser_base_t_widths_get', + 'chooser_base_t_x0_get', + 'chooser_base_t_x1_get', + 'chooser_base_t_y0_get', + 'chooser_base_t_y1_get', 'chooser_item_attrs_t_color_get', 'chooser_item_attrs_t_color_set', 'chooser_item_attrs_t_flags_get', 'chooser_item_attrs_t_flags_set', 'chooser_item_attrs_t_reset', + 'chooser_stdact_desc_t_icon_get', + 'chooser_stdact_desc_t_icon_set', + 'chooser_stdact_desc_t_label_get', + 'chooser_stdact_desc_t_label_set', + 'chooser_stdact_desc_t_tooltip_get', + 'chooser_stdact_desc_t_tooltip_set', + 'chooser_stdact_desc_t_ucb', + 'chooser_stdact_desc_t_version_get', + 'chooser_stdact_desc_t_version_set', 'chunk_size', 'chunk_start', 'cif_t___eq__', @@ -1796,6 +1949,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -1917,7 +2108,6 @@ 'citem_t_swap', 'cleanup_appcall', 'cleanup_name', - 'clear_bits', 'clear_cached_cfuncs', 'clear_refresh_request', 'clear_requests_queue', @@ -1929,6 +2119,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1989,17 +2180,73 @@ 'codegen_t_ii_set', 'codegen_t_insn_get', 'codegen_t_insn_set', + 'codegen_t_load_effective_address', 'codegen_t_load_operand', 'codegen_t_mb_get', 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', + 'codegen_t_prepare_gen_micro', + 'codegen_t_store_operand', 'collect_stack_trace', 'compact_til', 'compare_tinfo', 'compile_idc_file', 'compile_idc_snippet', 'compile_idc_text', + 'compiled_binpat_t___eq__', + 'compiled_binpat_t___ne__', + 'compiled_binpat_t_all_bytes_defined', + 'compiled_binpat_t_bytes_get', + 'compiled_binpat_t_bytes_set', + 'compiled_binpat_t_encidx_get', + 'compiled_binpat_t_encidx_set', + 'compiled_binpat_t_mask_get', + 'compiled_binpat_t_mask_set', + 'compiled_binpat_t_qclear', + 'compiled_binpat_t_strlits_get', + 'compiled_binpat_t_strlits_set', + 'compiled_binpat_vec_t___eq__', + 'compiled_binpat_vec_t___getitem__', + 'compiled_binpat_vec_t___len__', + 'compiled_binpat_vec_t___ne__', + 'compiled_binpat_vec_t___setitem__', + 'compiled_binpat_vec_t__del', + 'compiled_binpat_vec_t_add_unique', + 'compiled_binpat_vec_t_at', + 'compiled_binpat_vec_t_begin', + 'compiled_binpat_vec_t_begin__SWIG_0', + 'compiled_binpat_vec_t_begin__SWIG_1', + 'compiled_binpat_vec_t_capacity', + 'compiled_binpat_vec_t_clear', + 'compiled_binpat_vec_t_empty', + 'compiled_binpat_vec_t_end', + 'compiled_binpat_vec_t_end__SWIG_0', + 'compiled_binpat_vec_t_end__SWIG_1', + 'compiled_binpat_vec_t_erase', + 'compiled_binpat_vec_t_erase__SWIG_0', + 'compiled_binpat_vec_t_erase__SWIG_1', + 'compiled_binpat_vec_t_extract', + 'compiled_binpat_vec_t_find', + 'compiled_binpat_vec_t_find__SWIG_0', + 'compiled_binpat_vec_t_find__SWIG_1', + 'compiled_binpat_vec_t_grow', + 'compiled_binpat_vec_t_has', + 'compiled_binpat_vec_t_inject', + 'compiled_binpat_vec_t_insert', + 'compiled_binpat_vec_t_pop_back', + 'compiled_binpat_vec_t_push_back', + 'compiled_binpat_vec_t_push_back__SWIG_0', + 'compiled_binpat_vec_t_push_back__SWIG_1', + 'compiled_binpat_vec_t_qclear', + 'compiled_binpat_vec_t_reserve', + 'compiled_binpat_vec_t_resize', + 'compiled_binpat_vec_t_resize__SWIG_0', + 'compiled_binpat_vec_t_resize__SWIG_1', + 'compiled_binpat_vec_t_size', + 'compiled_binpat_vec_t_swap', + 'compiled_binpat_vec_t_truncate', 'compiler_info_t_cm_get', 'compiler_info_t_cm_set', 'compiler_info_t_defalign_get', @@ -2022,6 +2269,7 @@ 'compiler_info_t_size_s_set', 'const_aloc_visitor_t_visit_location', 'construct_macro', + 'construct_macro2', 'contains_fixups', 'continue_process', 'convert_pt_flags_to_hti', @@ -2035,6 +2283,7 @@ 'create_align', 'create_byte', 'create_bytearray_linput', + 'create_cfunc', 'create_code_viewer', 'create_custdata', 'create_data', @@ -2054,6 +2303,8 @@ 'create_memory_linput', 'create_menu', 'create_mutable_graph', + 'create_nodeval_merge_handler', + 'create_nodeval_merge_handlers', 'create_numbered_type_name', 'create_outctx', 'create_oword', @@ -2062,6 +2313,7 @@ 'create_simple_diff_handler', 'create_simple_idb_diff_handler', 'create_source_viewer', + 'create_std_modmerge_handlers', 'create_strlit', 'create_struct', 'create_switch_table', @@ -2124,11 +2376,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2169,6 +2431,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2196,12 +2459,16 @@ 'custom_data_type_ids_fids_array___getitem__', 'custom_data_type_ids_fids_array___len__', 'custom_data_type_ids_fids_array___setitem__', + 'custom_data_type_ids_fids_array__get_bytes', + 'custom_data_type_ids_fids_array__set_bytes', 'custom_data_type_ids_fids_array_data_get', 'custom_data_type_ids_t___getFids', 'custom_data_type_ids_t_dtid_get', 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', + 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2365,6 +2632,7 @@ 'del_tinfo_attr', 'del_tryblks', 'del_value', + 'del_vftable_ea', 'del_virt_module', 'delay_slot_insn', 'delete_DBG_Hooks', @@ -2378,6 +2646,9 @@ 'delete___qsemaphore_t', 'delete___qthread_t', 'delete___qtimer_t', + 'delete_abstract_graph_t', + 'delete_action_ctx_base_cur_sel_t', + 'delete_action_ctx_base_source_t', 'delete_action_ctx_base_t', 'delete_action_desc_t', 'delete_addon_info_t', @@ -2385,6 +2656,7 @@ 'delete_argloc_t', 'delete_argpart_t', 'delete_argpartvec_t', + 'delete_argtinfo_helper_t', 'delete_array_of_bitsets', 'delete_array_of_ivlsets', 'delete_array_of_rangesets', @@ -2392,9 +2664,9 @@ 'delete_array_type_data_t', 'delete_asm_t', 'delete_auto_display_t', - 'delete_bgcolors_t', 'delete_bit_bound_t', 'delete_bitfield_type_data_t', + 'delete_bitrange_t', 'delete_bitset_t', 'delete_block_chains_iterator_t', 'delete_block_chains_t', @@ -2406,9 +2678,12 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', + 'delete_call_stack_info_vec_t', 'delete_call_stack_t', 'delete_callregs_t', + 'delete_cancellable_graph_t', 'delete_carg_t', 'delete_carglist_t', 'delete_cases_and_targets_t', @@ -2432,8 +2707,12 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', + 'delete_chooser_stdact_desc_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2442,6 +2721,8 @@ 'delete_cloop_t', 'delete_cnumber_t', 'delete_codegen_t', + 'delete_compiled_binpat_t', + 'delete_compiled_binpat_vec_t', 'delete_compiler_info_t', 'delete_const_aloc_visitor_t', 'delete_creturn_t', @@ -2459,8 +2740,23 @@ 'delete_data_type_t', 'delete_debapp_attrs_t', 'delete_debug_event_t', + 'delete_direntry_t', + 'delete_direntry_vec_t', + 'delete_dirspec_t', + 'delete_dirtree_cursor_t', + 'delete_dirtree_cursor_vec_t', + 'delete_dirtree_iterator_t', + 'delete_dirtree_selection_t', + 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', + 'delete_dyn_ea_array', + 'delete_dyn_member_ref_array', + 'delete_dyn_range_array', + 'delete_dyn_regarg_array', + 'delete_dyn_regvar_array', + 'delete_dyn_stkpnt_array', 'delete_ea_array', 'delete_ea_name_t', 'delete_ea_name_vec_t', @@ -2484,10 +2780,12 @@ 'delete_extra_cmt_t', 'delete_extra_cmts', 'delete_extra_cmts_t', + 'delete_file_enumerator_t', 'delete_fixup_data_t', 'delete_fixup_info_t', - 'delete_fnum_array', 'delete_fnumber_t', + 'delete_fpvalue_shorts_array_t', + 'delete_fpvalue_t', 'delete_frame_desc_t', 'delete_frame_mem_t', 'delete_frame_mems_t', @@ -2509,6 +2807,7 @@ 'delete_funcarg_t', 'delete_funcargvec_t', 'delete_gco_info_t', + 'delete_gdl_graph_t', 'delete_generic_linput_t', 'delete_graph_chains_t', 'delete_graph_item_t', @@ -2522,17 +2821,22 @@ 'delete_hexwarns_t', 'delete_hidden_range_t', 'delete_highlighter_cbs_t', - 'delete_history_entries_helper_t', 'delete_history_item_t', 'delete_history_t', 'delete_ida_lowertype_helper_t', 'delete_idaplace_t', + 'delete_idbattr_info_t', + 'delete_idbattr_valmap_t', 'delete_idc_global_t', 'delete_idc_value_t', 'delete_idc_values_t', 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_input_file_t', 'delete_insn_cmt_t', 'delete_insn_cmts_t', @@ -2541,20 +2845,27 @@ 'delete_insn_site_t', 'delete_insn_t', 'delete_instant_dbgopts_t', + 'delete_int64vec_t', 'delete_int_pointer', 'delete_interval_t', 'delete_intvec_t', + 'delete_ioports_fallback_t', + 'delete_item_block_locator_t', + 'delete_iterator', 'delete_ivl_t', 'delete_ivl_with_name_t', 'delete_ivlset_t', - 'delete_llabel_t', + 'delete_line_rendering_output_entries_refs_t', + 'delete_line_rendering_output_entry_t', + 'delete_linearray_t', + 'delete_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', 'delete_lochist_t', 'delete_lock_func', 'delete_lock_segment', - 'delete_longlongvec_t', 'delete_lowertype_helper_t', 'delete_lumina_client_t', 'delete_lumina_op_res_vec_t', @@ -2567,9 +2878,10 @@ 'delete_lvar_t', 'delete_lvar_uservec_t', 'delete_lvars_t', + 'delete_macro_constructor_t', 'delete_mba_range_iterator_t', 'delete_mba_ranges_t', - 'delete_mbl_array_t', + 'delete_mba_t', 'delete_mblock_t', 'delete_mcallarg_t', 'delete_mcallargs_t', @@ -2582,6 +2894,9 @@ 'delete_memreg_info_t', 'delete_memreg_infos_t', 'delete_menu', + 'delete_merge_handler_params_t', + 'delete_merge_node_helper_t', + 'delete_merge_node_info_t', 'delete_metadata_iterator_t', 'delete_microcode_filter_t', 'delete_minsn_t', @@ -2589,6 +2904,7 @@ 'delete_mlist_mop_visitor_t', 'delete_mlist_t', 'delete_mnumber_t', + 'delete_moddata_diff_helper_t', 'delete_modinfo_t', 'delete_mop_addr_t', 'delete_mop_pair_t', @@ -2602,21 +2918,19 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', + 'delete_octet_generator_t', 'delete_op_parent_info_t', 'delete_op_t', 'delete_operand_locator_t', 'delete_operands_array', - 'delete_operator_info_t', 'delete_opinfo_t', 'delete_oprepr_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_pattern_id_t', - 'delete_pkt_clean_db_t', - 'delete_pkt_debugctl_t', - 'delete_pkt_dump_md_result_t', - 'delete_pkt_dump_md_t', 'delete_pkt_get_pop_result_t', 'delete_pkt_get_pop_t', 'delete_pkt_helo_t', @@ -2643,8 +2957,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2652,13 +2964,15 @@ 'delete_qvector_history_t', 'delete_qvector_lvar_t', 'delete_qvector_snapshotvec_t', - 'delete_range_array', 'delete_range_t', 'delete_rangeset_t', 'delete_rangevec_base_t', 'delete_rangevec_t', 'delete_rect_t', 'delete_refinfo_t', + 'delete_reg_access_t', + 'delete_reg_access_vec_t', + 'delete_reg_accesses_t', 'delete_reg_info_t', 'delete_regarg_t', 'delete_reginfovec_t', @@ -2667,7 +2981,6 @@ 'delete_regobjs_t', 'delete_regobjvec_t', 'delete_regval_t', - 'delete_regvar_array', 'delete_regvar_t', 'delete_renderer_info_pos_t', 'delete_renderer_info_t', @@ -2681,9 +2994,12 @@ 'delete_scif_visitor_t', 'delete_screen_graph_selection_base_t', 'delete_screen_graph_selection_t', + 'delete_section_lines_refs_t', + 'delete_sections_lines_refs_t', 'delete_segm_move_info_t', 'delete_segm_move_info_vec_t', 'delete_segm_move_infos_t', + 'delete_segment_defsr_array', 'delete_segment_t', 'delete_seh_t', 'delete_sel_array', @@ -2700,7 +3016,7 @@ 'delete_skipped_funcs_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2717,12 +3033,15 @@ 'delete_switch_info_t', 'delete_switch_table', 'delete_sync_source_t', + 'delete_sync_source_vec_t', + 'delete_synced_group_t', 'delete_tev_info_reg_t', 'delete_tev_info_t', 'delete_tev_reg_value_t', 'delete_tev_reg_values_t', 'delete_tevinforeg_vec_t', 'delete_text_sink_t', + 'delete_text_t', 'delete_thread_name_t', 'delete_tid_array', 'delete_til_symbol_t', @@ -2734,6 +3053,7 @@ 'delete_try_handler_t', 'delete_tryblk_t', 'delete_tryblks_t', + 'delete_twinline_t', 'delete_twinpos_t', 'delete_type_attr_t', 'delete_type_attrs_t', @@ -2746,15 +3066,17 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', 'delete_ui_stroff_ops_t', + 'delete_uint64vec_t', 'delete_uintvec_t', - 'delete_ulonglongvec_t', 'delete_unreferenced_stkvars', 'delete_user_cmts_iterator_t', 'delete_user_cmts_t', + 'delete_user_defined_prefix_t', 'delete_user_graph_place_t', 'delete_user_identification_t', 'delete_user_iflags_iterator_t', @@ -2790,10 +3112,12 @@ 'delete_xrefblk_t', 'delete_xreflist_entry_t', 'delete_xreflist_t', + 'delinf', 'demangle_name', 'deref_idcv', 'deref_ptr', 'deserialize_tinfo', + 'destroy_moddata_merge_handlers', 'detach_action_from_menu', 'detach_action_from_popup', 'detach_action_from_toolbar', @@ -2801,6 +3125,161 @@ 'detach_process', 'diff_metadata', 'diff_trace_file', + 'direntry_t___eq__', + 'direntry_t___lt__', + 'direntry_t___ne__', + 'direntry_t_idx_get', + 'direntry_t_idx_set', + 'direntry_t_isdir_get', + 'direntry_t_isdir_set', + 'direntry_t_valid', + 'direntry_vec_t___eq__', + 'direntry_vec_t___getitem__', + 'direntry_vec_t___len__', + 'direntry_vec_t___ne__', + 'direntry_vec_t___setitem__', + 'direntry_vec_t__del', + 'direntry_vec_t_add_unique', + 'direntry_vec_t_at', + 'direntry_vec_t_begin', + 'direntry_vec_t_begin__SWIG_0', + 'direntry_vec_t_begin__SWIG_1', + 'direntry_vec_t_capacity', + 'direntry_vec_t_clear', + 'direntry_vec_t_empty', + 'direntry_vec_t_end', + 'direntry_vec_t_end__SWIG_0', + 'direntry_vec_t_end__SWIG_1', + 'direntry_vec_t_erase', + 'direntry_vec_t_erase__SWIG_0', + 'direntry_vec_t_erase__SWIG_1', + 'direntry_vec_t_extract', + 'direntry_vec_t_find', + 'direntry_vec_t_find__SWIG_0', + 'direntry_vec_t_find__SWIG_1', + 'direntry_vec_t_grow', + 'direntry_vec_t_has', + 'direntry_vec_t_inject', + 'direntry_vec_t_insert', + 'direntry_vec_t_pop_back', + 'direntry_vec_t_push_back', + 'direntry_vec_t_push_back__SWIG_0', + 'direntry_vec_t_push_back__SWIG_1', + 'direntry_vec_t_qclear', + 'direntry_vec_t_reserve', + 'direntry_vec_t_resize', + 'direntry_vec_t_resize__SWIG_0', + 'direntry_vec_t_resize__SWIG_1', + 'direntry_vec_t_size', + 'direntry_vec_t_swap', + 'direntry_vec_t_truncate', + 'dirspec_t_flags_get', + 'dirspec_t_flags_set', + 'dirspec_t_get_attrs', + 'dirspec_t_get_inode', + 'dirspec_t_get_name', + 'dirspec_t_id_get', + 'dirspec_t_id_set', + 'dirspec_t_rename_inode', + 'dirspec_t_unlink_inode', + 'dirtree_cursor_t___eq__', + 'dirtree_cursor_t___ge__', + 'dirtree_cursor_t___gt__', + 'dirtree_cursor_t___le__', + 'dirtree_cursor_t___lt__', + 'dirtree_cursor_t___ne__', + 'dirtree_cursor_t_compare', + 'dirtree_cursor_t_is_root_cursor', + 'dirtree_cursor_t_parent_get', + 'dirtree_cursor_t_parent_set', + 'dirtree_cursor_t_rank_get', + 'dirtree_cursor_t_rank_set', + 'dirtree_cursor_t_root_cursor', + 'dirtree_cursor_t_set_root_cursor', + 'dirtree_cursor_t_valid', + 'dirtree_cursor_vec_t___eq__', + 'dirtree_cursor_vec_t___getitem__', + 'dirtree_cursor_vec_t___len__', + 'dirtree_cursor_vec_t___ne__', + 'dirtree_cursor_vec_t___setitem__', + 'dirtree_cursor_vec_t__del', + 'dirtree_cursor_vec_t_add_unique', + 'dirtree_cursor_vec_t_at', + 'dirtree_cursor_vec_t_begin', + 'dirtree_cursor_vec_t_begin__SWIG_0', + 'dirtree_cursor_vec_t_begin__SWIG_1', + 'dirtree_cursor_vec_t_capacity', + 'dirtree_cursor_vec_t_clear', + 'dirtree_cursor_vec_t_empty', + 'dirtree_cursor_vec_t_end', + 'dirtree_cursor_vec_t_end__SWIG_0', + 'dirtree_cursor_vec_t_end__SWIG_1', + 'dirtree_cursor_vec_t_erase', + 'dirtree_cursor_vec_t_erase__SWIG_0', + 'dirtree_cursor_vec_t_erase__SWIG_1', + 'dirtree_cursor_vec_t_extract', + 'dirtree_cursor_vec_t_find', + 'dirtree_cursor_vec_t_find__SWIG_0', + 'dirtree_cursor_vec_t_find__SWIG_1', + 'dirtree_cursor_vec_t_grow', + 'dirtree_cursor_vec_t_has', + 'dirtree_cursor_vec_t_inject', + 'dirtree_cursor_vec_t_insert', + 'dirtree_cursor_vec_t_pop_back', + 'dirtree_cursor_vec_t_push_back', + 'dirtree_cursor_vec_t_push_back__SWIG_0', + 'dirtree_cursor_vec_t_push_back__SWIG_1', + 'dirtree_cursor_vec_t_qclear', + 'dirtree_cursor_vec_t_reserve', + 'dirtree_cursor_vec_t_resize', + 'dirtree_cursor_vec_t_resize__SWIG_0', + 'dirtree_cursor_vec_t_resize__SWIG_1', + 'dirtree_cursor_vec_t_size', + 'dirtree_cursor_vec_t_swap', + 'dirtree_cursor_vec_t_truncate', + 'dirtree_iterator_t_cursor_get', + 'dirtree_iterator_t_cursor_set', + 'dirtree_iterator_t_pattern_get', + 'dirtree_iterator_t_pattern_set', + 'dirtree_t_change_rank', + 'dirtree_t_chdir', + 'dirtree_t_errstr', + 'dirtree_t_find_entry', + 'dirtree_t_findfirst', + 'dirtree_t_findnext', + 'dirtree_t_get_abspath', + 'dirtree_t_get_abspath__SWIG_0', + 'dirtree_t_get_abspath__SWIG_1', + 'dirtree_t_get_dir_size', + 'dirtree_t_get_entry_attrs', + 'dirtree_t_get_entry_name', + 'dirtree_t_get_id', + 'dirtree_t_get_parent_cursor', + 'dirtree_t_get_rank', + 'dirtree_t_getcwd', + 'dirtree_t_isdir', + 'dirtree_t_isdir__SWIG_0', + 'dirtree_t_isdir__SWIG_1', + 'dirtree_t_isfile', + 'dirtree_t_isfile__SWIG_0', + 'dirtree_t_isfile__SWIG_1', + 'dirtree_t_link', + 'dirtree_t_link__SWIG_0', + 'dirtree_t_link__SWIG_1', + 'dirtree_t_load', + 'dirtree_t_mkdir', + 'dirtree_t_notify_dirtree', + 'dirtree_t_rename', + 'dirtree_t_resolve_cursor', + 'dirtree_t_resolve_path', + 'dirtree_t_rmdir', + 'dirtree_t_save', + 'dirtree_t_set_id', + 'dirtree_t_traverse', + 'dirtree_t_unlink', + 'dirtree_t_unlink__SWIG_0', + 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -2858,24 +3337,36 @@ 'disown_IDP_Hooks', 'disown_UI_Hooks', 'disown_View_Hooks', + 'disown_abstract_graph_t', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', + 'disown_cancellable_graph_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', + 'disown_chooser_stdact_desc_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', + 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_t', 'disown_func_md_diff_handler_t', + 'disown_gdl_graph_t', 'disown_graph_node_visitor_t', 'disown_graph_path_visitor_t', 'disown_graph_visitor_t', 'disown_highlighter_cbs_t', + 'disown_ioports_fallback_t', + 'disown_item_block_locator_t', + 'disown_macro_constructor_t', + 'disown_merge_node_helper_t', 'disown_microcode_filter_t', 'disown_minsn_visitor_t', 'disown_mlist_mop_visitor_t', + 'disown_moddata_diff_helper_t', 'disown_mop_visitor_t', - 'disown_mutable_graph_t', 'disown_optblock_t', 'disown_optinsn_t', 'disown_predicate_t', @@ -2885,6 +3376,7 @@ 'disown_tinfo_visitor_t', 'disown_udc_filter_t', 'disown_ui_stroff_applicator_t', + 'disown_user_defined_prefix_t', 'disown_user_lvar_modifier_t', 'disown_vc_printer_t', 'disown_vd_printer_t', @@ -2897,6 +3389,36 @@ 'dummy_ptrtype', 'dump_func_type_data', 'dword_flag', + 'dyn_ea_array___getitem__', + 'dyn_ea_array___len__', + 'dyn_ea_array___setitem__', + 'dyn_ea_array_count_get', + 'dyn_ea_array_data_get', + 'dyn_member_ref_array___getitem__', + 'dyn_member_ref_array___len__', + 'dyn_member_ref_array___setitem__', + 'dyn_member_ref_array_count_get', + 'dyn_member_ref_array_data_get', + 'dyn_range_array___getitem__', + 'dyn_range_array___len__', + 'dyn_range_array___setitem__', + 'dyn_range_array_count_get', + 'dyn_range_array_data_get', + 'dyn_regarg_array___getitem__', + 'dyn_regarg_array___len__', + 'dyn_regarg_array___setitem__', + 'dyn_regarg_array_count_get', + 'dyn_regarg_array_data_get', + 'dyn_regvar_array___getitem__', + 'dyn_regvar_array___len__', + 'dyn_regvar_array___setitem__', + 'dyn_regvar_array_count_get', + 'dyn_regvar_array_data_get', + 'dyn_stkpnt_array___getitem__', + 'dyn_stkpnt_array___len__', + 'dyn_stkpnt_array___setitem__', + 'dyn_stkpnt_array_count_get', + 'dyn_stkpnt_array_data_get', 'ea2node', 'ea2str', 'ea_array___getitem__', @@ -2943,7 +3465,6 @@ 'ea_pointer_cast', 'ea_pointer_frompointer', 'ea_pointer_value', - 'ea_to_ea64', 'ea_viewer_history_push_and_jump', 'eamap_begin', 'eamap_clear', @@ -2964,6 +3485,7 @@ 'eamap_size', 'eamap_t_at', 'eamap_t_size', + 'ecleaz', 'eclose', 'edge_info_t_color_get', 'edge_info_t_color_set', @@ -3010,6 +3532,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -3091,6 +3614,7 @@ 'enum_type_data_t_taenum_bits_get', 'enum_type_data_t_taenum_bits_set', 'enumerate_files', + 'enumerate_files2', 'enumplace_t_bmask_get', 'enumplace_t_bmask_set', 'enumplace_t_idx_get', @@ -3238,6 +3762,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3250,6 +3775,7 @@ 'find_data', 'find_defined', 'find_error', + 'find_free_chunk', 'find_free_selector', 'find_func_bounds', 'find_idc_class', @@ -3259,6 +3785,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3308,13 +3835,8 @@ 'float_flag', 'flt_flag', 'flush_buffers', - 'fnum_array___getitem__', - 'fnum_array___len__', - 'fnum_array___setitem__', - 'fnum_array_data_get', 'fnumber_t___eq__', 'fnumber_t___ge__', - 'fnumber_t___get_fnum', 'fnumber_t___gt__', 'fnumber_t___le__', 'fnumber_t___lt__', @@ -3348,6 +3870,56 @@ 'formchgcbfa_set_field_value', 'formchgcbfa_set_focused_field', 'formchgcbfa_show_field', + 'fpvalue_shorts_array_t___getitem__', + 'fpvalue_shorts_array_t___len__', + 'fpvalue_shorts_array_t___setitem__', + 'fpvalue_shorts_array_t__get_bytes', + 'fpvalue_shorts_array_t__set_bytes', + 'fpvalue_shorts_array_t_data_get', + 'fpvalue_t___add__', + 'fpvalue_t___eq__', + 'fpvalue_t___ge__', + 'fpvalue_t___gt__', + 'fpvalue_t___le__', + 'fpvalue_t___lt__', + 'fpvalue_t___mul__', + 'fpvalue_t___ne__', + 'fpvalue_t___str__', + 'fpvalue_t___sub__', + 'fpvalue_t___truediv__', + 'fpvalue_t__get_10bytes', + 'fpvalue_t__get_bytes', + 'fpvalue_t__get_float', + 'fpvalue_t__get_shorts', + 'fpvalue_t__set_10bytes', + 'fpvalue_t__set_bytes', + 'fpvalue_t__set_float', + 'fpvalue_t_assign', + 'fpvalue_t_clear', + 'fpvalue_t_compare', + 'fpvalue_t_eabs', + 'fpvalue_t_fadd', + 'fpvalue_t_fdiv', + 'fpvalue_t_fmul', + 'fpvalue_t_from_10bytes', + 'fpvalue_t_from_12bytes', + 'fpvalue_t_from_int64', + 'fpvalue_t_from_str', + 'fpvalue_t_from_sval', + 'fpvalue_t_from_uint64', + 'fpvalue_t_fsub', + 'fpvalue_t_get_kind', + 'fpvalue_t_is_negative', + 'fpvalue_t_mul_pow2', + 'fpvalue_t_negate', + 'fpvalue_t_to_10bytes', + 'fpvalue_t_to_12bytes', + 'fpvalue_t_to_int64', + 'fpvalue_t_to_str', + 'fpvalue_t_to_sval', + 'fpvalue_t_to_uint64', + 'fpvalue_t_w_get', + 'fpvalue_t_w_set', 'frame_desc_t_argsize_get', 'frame_desc_t_argsize_set', 'frame_desc_t_frregs_get', @@ -3409,6 +3981,8 @@ 'free_chunk', 'free_custom_icon', 'free_idcv', + 'free_regarg', + 'free_regvar', 'free_til', 'func_contains', 'func_does_return', @@ -3557,10 +4131,6 @@ 'func_info_vec_t_size', 'func_info_vec_t_swap', 'func_info_vec_t_truncate', - 'func_item_iterator_decode_preceding_insn', - 'func_item_iterator_decode_prev_insn', - 'func_item_iterator_next', - 'func_item_iterator_prev', 'func_item_iterator_t___next__', 'func_item_iterator_t_chunk', 'func_item_iterator_t_current', @@ -3581,6 +4151,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_md_diff_handler_t_on_comment_changed', 'func_md_diff_handler_t_on_extra_comment_changed', 'func_md_diff_handler_t_on_frame_member_changed', @@ -3599,6 +4171,8 @@ 'func_parent_iterator_t_reset_fnt', 'func_parent_iterator_t_set', 'func_t___get_points__', + 'func_t___get_referers__', + 'func_t___get_regargs__', 'func_t___get_regvars__', 'func_t___get_tails__', 'func_t__from_ptrval__', @@ -3619,10 +4193,6 @@ 'func_t_frsize_get', 'func_t_frsize_set', 'func_t_is_far', - 'func_t_llabelqty_get', - 'func_t_llabelqty_set', - 'func_t_llabels_get', - 'func_t_llabels_set', 'func_t_need_prolog_analysis', 'func_t_owner_get', 'func_t_owner_set', @@ -3664,10 +4234,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', + 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -3731,6 +4307,7 @@ 'funcargvec_t_truncate', 'gcc_layout', 'gco_info_t_append_to_list', + 'gco_info_t_cvt_to_ivl', 'gco_info_t_flags_get', 'gco_info_t_flags_set', 'gco_info_t_is_def', @@ -3738,8 +4315,34 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', + 'gdl_graph_t_begin', + 'gdl_graph_t_edge', + 'gdl_graph_t_empty', + 'gdl_graph_t_end', + 'gdl_graph_t_entry', + 'gdl_graph_t_exists', + 'gdl_graph_t_exit', + 'gdl_graph_t_front', + 'gdl_graph_t_get_edge_color', + 'gdl_graph_t_get_node_color', + 'gdl_graph_t_get_node_label', + 'gdl_graph_t_nedge', + 'gdl_graph_t_node_qty', + 'gdl_graph_t_npred', + 'gdl_graph_t_nsucc', + 'gdl_graph_t_pred', + 'gdl_graph_t_print_edge', + 'gdl_graph_t_print_graph_attributes', + 'gdl_graph_t_print_node', + 'gdl_graph_t_print_node_attributes', + 'gdl_graph_t_size', + 'gdl_graph_t_succ', 'gen_complex_call_chart', 'gen_decorate_name', 'gen_disasm_text', @@ -3753,6 +4356,7 @@ 'gen_microcode', 'gen_simple_call_chart', 'gen_use_arg_tinfos', + 'gen_use_arg_tinfos2', 'generate_disasm_line', 'generate_disassembly', 'generic_linput_t_blocksize_get', @@ -3783,6 +4387,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -3834,9 +4439,12 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', + 'get_dbctx_id', + 'get_dbctx_qty', 'get_dbg_byte', 'get_dbg_memory_info', 'get_dbg_reg_info', @@ -3856,11 +4464,14 @@ 'get_dtype_flag', 'get_dtype_size', 'get_dword', + 'get_ea_diffpos_name', 'get_ea_name', 'get_ea_viewer_history_info', 'get_effective_spd', + 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -3961,6 +4572,7 @@ 'get_hidden_range_num', 'get_hidden_range_qty', 'get_highlight', + 'get_ida_notepad_text', 'get_ida_subdirs', 'get_idainfo_by_type', 'get_idasgn_desc', @@ -3968,6 +4580,8 @@ 'get_idasgn_qty', 'get_idasgn_title', 'get_idati', + 'get_idb_ctime', + 'get_idb_nopens', 'get_idb_notifier_addr', 'get_idb_notifier_ud_addr', 'get_idc_filename', @@ -3984,6 +4598,9 @@ 'get_import_module_qty', 'get_ind_purged', 'get_inf_structure', + 'get_initial_ida_version', + 'get_initial_idb_version', + 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', 'get_insn_tev_reg_result', @@ -4005,11 +4622,13 @@ 'get_last_serial_enum_member', 'get_last_struc_idx', 'get_linput_type', + 'get_loader_format_name', 'get_local_var', 'get_local_vars', 'get_long_name', 'get_lookback', 'get_lumina_rpc_packet_t_index_from_base', + 'get_mangled_name_type', 'get_manual_insn', 'get_manual_regions', 'get_manual_regions__SWIG_0', @@ -4073,6 +4692,7 @@ 'get_numbered_type', 'get_numbered_type_name', 'get_octet', + 'get_octet2', 'get_offbase', 'get_offset_expr', 'get_offset_expression', @@ -4094,6 +4714,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -4150,6 +4771,7 @@ 'get_segment_translations', 'get_selector_qty', 'get_server_connection', + 'get_server_connection2', 'get_short_name', 'get_signed_mcode', 'get_source_linnum', @@ -4159,11 +4781,14 @@ 'get_spd', 'get_special_folder', 'get_sptr', + 'get_srcdbg_paths', + 'get_srcdbg_undesired_paths', 'get_srcinfo_provider', 'get_sreg', 'get_sreg_range', 'get_sreg_range_num', 'get_sreg_ranges_qty', + 'get_std_dirtree', 'get_step_trace_options', 'get_stkvar', 'get_stock_tinfo', @@ -4172,6 +4797,8 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', + 'get_strid', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -4194,6 +4821,7 @@ 'get_struc_size__SWIG_1', 'get_switch_info', 'get_switch_parent', + 'get_synced_group', 'get_tab_size', 'get_temp_regs', 'get_tev_ea', @@ -4212,6 +4840,7 @@ 'get_tinfo_property', 'get_tinfo_size', 'get_trace_base_address', + 'get_trace_dynamic_register_set', 'get_trace_file_desc', 'get_trace_platform', 'get_tryblks', @@ -4221,7 +4850,10 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', + 'get_vftable_ea', + 'get_vftable_ordinal', 'get_view_renderer_type', 'get_viewer_graph', 'get_viewer_place_type', @@ -4239,6 +4871,7 @@ 'get_zero_ranges', 'getb_reginsn', 'getf_reginsn', + 'getinf_str', 'getn_bpt', 'getn_enum', 'getn_fchunk', @@ -4298,10 +4931,14 @@ 'group_crinfo_t_text_get', 'group_crinfo_t_text_set', 'guess_func_cc', - 'guess_table_address', - 'guess_table_size', 'guess_tinfo', 'handle_debug_event', + 'handle_fixups_in_macro', + 'has_aflag_linnum', + 'has_aflag_lname', + 'has_aflag_ti', + 'has_aflag_ti0', + 'has_aflag_ti1', 'has_any_name', 'has_auto_name', 'has_backup_metadata', @@ -4315,6 +4952,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4405,9 +5043,6 @@ 'highlighter_cbs_t_prev_block_state', 'highlighter_cbs_t_set_block_state', 'highlighter_cbs_t_set_style', - 'history_entries_helper_t_next_entry', - 'history_entries_helper_t_next_entry_index', - 'history_entries_helper_t_res_get', 'history_item_t_ea_get', 'history_item_t_ea_set', 'history_item_t_end_get', @@ -4438,8 +5073,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4449,9 +5084,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -4502,8 +5134,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -4540,6 +5170,56 @@ 'idainfo_xrefnum_set', 'idaplace_t_ea_get', 'idaplace_t_ea_set', + 'idbattr_info_t___lt__', + 'idbattr_info_t_bitmask_get', + 'idbattr_info_t_bitmask_set', + 'idbattr_info_t_has_individual_node', + 'idbattr_info_t_hashname', + 'idbattr_info_t_idi_flags_get', + 'idbattr_info_t_idi_flags_set', + 'idbattr_info_t_individual_node_get', + 'idbattr_info_t_individual_node_set', + 'idbattr_info_t_is_bitfield', + 'idbattr_info_t_is_bitmap', + 'idbattr_info_t_is_boolean', + 'idbattr_info_t_is_buf_var', + 'idbattr_info_t_is_bytearray', + 'idbattr_info_t_is_cstr', + 'idbattr_info_t_is_decimal', + 'idbattr_info_t_is_hash', + 'idbattr_info_t_is_hexadecimal', + 'idbattr_info_t_is_incremented', + 'idbattr_info_t_is_node_altval', + 'idbattr_info_t_is_node_blob', + 'idbattr_info_t_is_node_supval', + 'idbattr_info_t_is_node_valobj', + 'idbattr_info_t_is_node_var', + 'idbattr_info_t_is_onoff', + 'idbattr_info_t_is_qstring', + 'idbattr_info_t_is_readonly_var', + 'idbattr_info_t_is_scalar_var', + 'idbattr_info_t_is_struc_field', + 'idbattr_info_t_is_val_mapped', + 'idbattr_info_t_maxsize_get', + 'idbattr_info_t_maxsize_set', + 'idbattr_info_t_name_get', + 'idbattr_info_t_name_set', + 'idbattr_info_t_offset_get', + 'idbattr_info_t_offset_set', + 'idbattr_info_t_ridx', + 'idbattr_info_t_str_false', + 'idbattr_info_t_str_true', + 'idbattr_info_t_tag_get', + 'idbattr_info_t_tag_set', + 'idbattr_info_t_use_hlpstruc', + 'idbattr_info_t_vmap_get', + 'idbattr_info_t_vmap_set', + 'idbattr_info_t_width_get', + 'idbattr_info_t_width_set', + 'idbattr_valmap_t_valname_get', + 'idbattr_valmap_t_valname_set', + 'idbattr_valmap_t_value_get', + 'idbattr_valmap_t_value_set', 'idc_get_local_type', 'idc_get_local_type_name', 'idc_get_local_type_raw', @@ -4554,7 +5234,6 @@ 'idc_parse_types', 'idc_print_type', 'idc_set_local_type', - 'idc_value_t___get_e', 'idc_value_t__create_empty_string', 'idc_value_t_c_str', 'idc_value_t_clear', @@ -4652,6 +5331,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -4682,6 +5364,7 @@ 'inf_get_af2_low', 'inf_get_af_high', 'inf_get_af_low', + 'inf_get_app_bitness', 'inf_get_appcall_options', 'inf_get_apptype', 'inf_get_asmtype', @@ -4698,8 +5381,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -4759,7 +5442,9 @@ 'inf_hide_libfuncs', 'inf_huge_arg_align', 'inf_inc_database_change_count', - 'inf_is_32bit', + 'inf_is_16bit', + 'inf_is_32bit_exactly', + 'inf_is_32bit_or_higher', 'inf_is_64bit', 'inf_is_auto_enabled', 'inf_is_be', @@ -4786,6 +5471,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -4829,10 +5517,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -4956,7 +5644,6 @@ 'inf_set_strlit_sernum', 'inf_set_strlit_zeroes', 'inf_set_strtype', - 'inf_set_test_mode', 'inf_set_trace_flow', 'inf_set_truncate_on_del', 'inf_set_type_xrefnum', @@ -5000,6 +5687,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'input_file_t_md5_get', 'input_file_t_md5_set', 'input_file_t_path_get', @@ -5094,6 +5811,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -5105,7 +5828,11 @@ 'insn_t_flags_get', 'insn_t_flags_set', 'insn_t_get_canon_feature', + 'insn_t_get_canon_feature__SWIG_0', + 'insn_t_get_canon_feature__SWIG_1', 'insn_t_get_canon_mnem', + 'insn_t_get_canon_mnem__SWIG_0', + 'insn_t_get_canon_mnem__SWIG_1', 'insn_t_get_next_byte', 'insn_t_get_next_dword', 'insn_t_get_next_qword', @@ -5116,6 +5843,8 @@ 'insn_t_ip_set', 'insn_t_is_64bit', 'insn_t_is_canon_insn', + 'insn_t_is_canon_insn__SWIG_0', + 'insn_t_is_canon_insn__SWIG_1', 'insn_t_is_macro', 'insn_t_itype_get', 'insn_t_itype_set', @@ -5127,6 +5856,7 @@ 'insn_t_size_set', 'install_command_interpreter', 'install_microcode_filter', + 'install_user_defined_prefix', 'instant_dbgopts_t__pass_get', 'instant_dbgopts_t__pass_set', 'instant_dbgopts_t_attach_get', @@ -5143,6 +5873,45 @@ 'instant_dbgopts_t_pid_set', 'instant_dbgopts_t_port_get', 'instant_dbgopts_t_port_set', + 'int64vec_t___eq__', + 'int64vec_t___getitem__', + 'int64vec_t___len__', + 'int64vec_t___ne__', + 'int64vec_t___setitem__', + 'int64vec_t__del', + 'int64vec_t_add_unique', + 'int64vec_t_at', + 'int64vec_t_begin', + 'int64vec_t_begin__SWIG_0', + 'int64vec_t_begin__SWIG_1', + 'int64vec_t_capacity', + 'int64vec_t_clear', + 'int64vec_t_empty', + 'int64vec_t_end', + 'int64vec_t_end__SWIG_0', + 'int64vec_t_end__SWIG_1', + 'int64vec_t_erase', + 'int64vec_t_erase__SWIG_0', + 'int64vec_t_erase__SWIG_1', + 'int64vec_t_extract', + 'int64vec_t_find', + 'int64vec_t_find__SWIG_0', + 'int64vec_t_find__SWIG_1', + 'int64vec_t_has', + 'int64vec_t_inject', + 'int64vec_t_insert', + 'int64vec_t_pop_back', + 'int64vec_t_push_back', + 'int64vec_t_push_back__SWIG_0', + 'int64vec_t_push_back__SWIG_1', + 'int64vec_t_qclear', + 'int64vec_t_reserve', + 'int64vec_t_resize', + 'int64vec_t_resize__SWIG_0', + 'int64vec_t_resize__SWIG_1', + 'int64vec_t_size', + 'int64vec_t_swap', + 'int64vec_t_truncate', 'int_pointer_assign', 'int_pointer_cast', 'int_pointer_frompointer', @@ -5204,12 +5973,42 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', 'is__invsign1', 'is_action_enabled', 'is_additive', + 'is_aflag__bnot0', + 'is_aflag__bnot1', + 'is_aflag__invsign0', + 'is_aflag__invsign1', + 'is_aflag_align_flow', + 'is_aflag_colored_item', + 'is_aflag_data_guessed_by_hexrays', + 'is_aflag_fixed_spd', + 'is_aflag_func_guessed_by_hexrays', + 'is_aflag_hidden_border', + 'is_aflag_hidden_item', + 'is_aflag_libitem', + 'is_aflag_lzero0', + 'is_aflag_lzero1', + 'is_aflag_manual_insn', + 'is_aflag_noret', + 'is_aflag_notcode', + 'is_aflag_notproc', + 'is_aflag_public_name', + 'is_aflag_retfp', + 'is_aflag_terse_struc', + 'is_aflag_tilcmt', + 'is_aflag_type_determined_by_hexrays', + 'is_aflag_type_guessed_by_hexrays', + 'is_aflag_type_guessed_by_ida', + 'is_aflag_usersp', + 'is_aflag_userti', + 'is_aflag_weak_name', + 'is_aflag_zstroff', 'is_align', 'is_align_flow', 'is_align_insn', @@ -5246,6 +6045,7 @@ 'is_custom', 'is_data', 'is_data_far', + 'is_data_guessed_by_hexrays', 'is_database_flag', 'is_debugger_busy', 'is_debugger_memory', @@ -5253,9 +6053,11 @@ 'is_defarg', 'is_defarg0', 'is_defarg1', + 'is_diff_merge_mode', 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -5276,6 +6078,7 @@ 'is_forced_operand', 'is_func', 'is_func_entry', + 'is_func_guessed_by_hexrays', 'is_func_locked', 'is_func_tail', 'is_func_trace_enabled', @@ -5284,10 +6087,12 @@ 'is_gcc32', 'is_gcc64', 'is_ghost_enum', + 'is_golang_cc', 'is_head', 'is_hidden_border', 'is_hidden_item', 'is_idaq', + 'is_idaview', 'is_ident', 'is_ident_cp', 'is_in_nlist', @@ -5404,6 +6209,7 @@ 'is_type_complex', 'is_type_const', 'is_type_correct', + 'is_type_determined_by_hexrays', 'is_type_double', 'is_type_enum', 'is_type_ext_arithmetic', @@ -5411,6 +6217,8 @@ 'is_type_float', 'is_type_floating', 'is_type_func', + 'is_type_guessed_by_hexrays', + 'is_type_guessed_by_ida', 'is_type_int', 'is_type_int128', 'is_type_int16', @@ -5447,6 +6255,7 @@ 'is_usersp', 'is_userti', 'is_valid_cp', + 'is_valid_dstate', 'is_valid_trace_file', 'is_valid_typename', 'is_vararg_cc', @@ -5462,6 +6271,11 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'item_block_locator_t_get_block_head', + 'item_block_locator_t_setup_blocks', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5513,17 +6327,95 @@ 'jumpto', 'jumpto__SWIG_0', 'jumpto__SWIG_1', + 'l_compare2', 'last_idcv_attr', 'leading_zero_important', 'lexcompare', 'lexcompare_tinfo', + 'line_rendering_output_entries_refs_t___eq__', + 'line_rendering_output_entries_refs_t___getitem__', + 'line_rendering_output_entries_refs_t___len__', + 'line_rendering_output_entries_refs_t___ne__', + 'line_rendering_output_entries_refs_t___setitem__', + 'line_rendering_output_entries_refs_t__del', + 'line_rendering_output_entries_refs_t__internal_push_back', + 'line_rendering_output_entries_refs_t_add_unique', + 'line_rendering_output_entries_refs_t_at', + 'line_rendering_output_entries_refs_t_begin', + 'line_rendering_output_entries_refs_t_begin__SWIG_0', + 'line_rendering_output_entries_refs_t_begin__SWIG_1', + 'line_rendering_output_entries_refs_t_capacity', + 'line_rendering_output_entries_refs_t_clear', + 'line_rendering_output_entries_refs_t_empty', + 'line_rendering_output_entries_refs_t_end', + 'line_rendering_output_entries_refs_t_end__SWIG_0', + 'line_rendering_output_entries_refs_t_end__SWIG_1', + 'line_rendering_output_entries_refs_t_erase', + 'line_rendering_output_entries_refs_t_erase__SWIG_0', + 'line_rendering_output_entries_refs_t_erase__SWIG_1', + 'line_rendering_output_entries_refs_t_extract', + 'line_rendering_output_entries_refs_t_find', + 'line_rendering_output_entries_refs_t_find__SWIG_0', + 'line_rendering_output_entries_refs_t_find__SWIG_1', + 'line_rendering_output_entries_refs_t_has', + 'line_rendering_output_entries_refs_t_inject', + 'line_rendering_output_entries_refs_t_insert', + 'line_rendering_output_entries_refs_t_pop_back', + 'line_rendering_output_entries_refs_t_push_back', + 'line_rendering_output_entries_refs_t_push_back__SWIG_0', + 'line_rendering_output_entries_refs_t_push_back__SWIG_1', + 'line_rendering_output_entries_refs_t_qclear', + 'line_rendering_output_entries_refs_t_reserve', + 'line_rendering_output_entries_refs_t_resize', + 'line_rendering_output_entries_refs_t_resize__SWIG_0', + 'line_rendering_output_entries_refs_t_resize__SWIG_1', + 'line_rendering_output_entries_refs_t_size', + 'line_rendering_output_entries_refs_t_swap', + 'line_rendering_output_entries_refs_t_truncate', + 'line_rendering_output_entry_t___eq__', + 'line_rendering_output_entry_t___ne__', + 'line_rendering_output_entry_t_bg_color_get', + 'line_rendering_output_entry_t_bg_color_set', + 'line_rendering_output_entry_t_cpx_get', + 'line_rendering_output_entry_t_cpx_set', + 'line_rendering_output_entry_t_flags_get', + 'line_rendering_output_entry_t_flags_set', + 'line_rendering_output_entry_t_is_bg_color_direct', + 'line_rendering_output_entry_t_is_bg_color_empty', + 'line_rendering_output_entry_t_is_bg_color_key', + 'line_rendering_output_entry_t_line_get', + 'line_rendering_output_entry_t_line_set', + 'line_rendering_output_entry_t_nchars_get', + 'line_rendering_output_entry_t_nchars_set', + 'linearray_t_beginning', + 'linearray_t_down', + 'linearray_t_ending', + 'linearray_t_get_bg_color', + 'linearray_t_get_dlnnum', + 'linearray_t_get_linecnt', + 'linearray_t_get_pfx_color', + 'linearray_t_get_place', + 'linearray_t_set_place', + 'linearray_t_set_userdata', + 'linearray_t_up', + 'linearray_t_userdata', + 'lines_rendering_input_t_cb_get', + 'lines_rendering_input_t_cb_set', + 'lines_rendering_input_t_sections_lines_get', + 'lines_rendering_input_t_sections_lines_set', + 'lines_rendering_input_t_sync_group_get', + 'lines_rendering_input_t_sync_group_set', + 'lines_rendering_output_t___eq__', + 'lines_rendering_output_t___ne__', + 'lines_rendering_output_t_clear', + 'lines_rendering_output_t_entries_get', + 'lines_rendering_output_t_entries_set', + 'lines_rendering_output_t_flags_get', + 'lines_rendering_output_t_flags_set', + 'lines_rendering_output_t_swap', 'list_bptgrps', 'list_bptgrps__SWIG_0', 'list_bptgrps__SWIG_1', - 'llabel_t_ea_get', - 'llabel_t_ea_set', - 'llabel_t_name_get', - 'llabel_t_name_set', 'load_and_run_plugin', 'load_binary_file', 'load_dbg_dbginfo', @@ -5558,8 +6450,7 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', + 'locate_lvar', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5594,45 +6485,6 @@ 'lock_segm', 'log2ceil', 'log2floor', - 'longlongvec_t___eq__', - 'longlongvec_t___getitem__', - 'longlongvec_t___len__', - 'longlongvec_t___ne__', - 'longlongvec_t___setitem__', - 'longlongvec_t__del', - 'longlongvec_t_add_unique', - 'longlongvec_t_at', - 'longlongvec_t_begin', - 'longlongvec_t_begin__SWIG_0', - 'longlongvec_t_begin__SWIG_1', - 'longlongvec_t_capacity', - 'longlongvec_t_clear', - 'longlongvec_t_empty', - 'longlongvec_t_end', - 'longlongvec_t_end__SWIG_0', - 'longlongvec_t_end__SWIG_1', - 'longlongvec_t_erase', - 'longlongvec_t_erase__SWIG_0', - 'longlongvec_t_erase__SWIG_1', - 'longlongvec_t_extract', - 'longlongvec_t_find', - 'longlongvec_t_find__SWIG_0', - 'longlongvec_t_find__SWIG_1', - 'longlongvec_t_has', - 'longlongvec_t_inject', - 'longlongvec_t_insert', - 'longlongvec_t_pop_back', - 'longlongvec_t_push_back', - 'longlongvec_t_push_back__SWIG_0', - 'longlongvec_t_push_back__SWIG_1', - 'longlongvec_t_qclear', - 'longlongvec_t_reserve', - 'longlongvec_t_resize', - 'longlongvec_t_resize__SWIG_0', - 'longlongvec_t_resize__SWIG_1', - 'longlongvec_t_size', - 'longlongvec_t_swap', - 'longlongvec_t_truncate', 'lookup_key_code', 'lower_type', 'lowertype_helper_t_func_has_stkframe_hole', @@ -5746,6 +6598,7 @@ 'lvar_saved_info_t_clr_forced_lvar', 'lvar_saved_info_t_clr_nomap_lvar', 'lvar_saved_info_t_clr_noptr_lvar', + 'lvar_saved_info_t_clr_unused_lvar', 'lvar_saved_info_t_cmt_get', 'lvar_saved_info_t_cmt_set', 'lvar_saved_info_t_flags_get', @@ -5755,6 +6608,7 @@ 'lvar_saved_info_t_is_kept', 'lvar_saved_info_t_is_nomap_lvar', 'lvar_saved_info_t_is_noptr_lvar', + 'lvar_saved_info_t_is_unused_lvar', 'lvar_saved_info_t_ll_get', 'lvar_saved_info_t_ll_set', 'lvar_saved_info_t_name_get', @@ -5763,6 +6617,7 @@ 'lvar_saved_info_t_set_keep', 'lvar_saved_info_t_set_nomap_lvar', 'lvar_saved_info_t_set_noptr_lvar', + 'lvar_saved_info_t_set_unused_lvar', 'lvar_saved_info_t_size_get', 'lvar_saved_info_t_size_set', 'lvar_saved_info_t_type_get', @@ -5812,6 +6667,7 @@ 'lvar_t_clear_used', 'lvar_t_clr_arg_var', 'lvar_t_clr_automapped', + 'lvar_t_clr_decl_unused', 'lvar_t_clr_dummy_arg', 'lvar_t_clr_fake_var', 'lvar_t_clr_floating_var', @@ -5821,9 +6677,11 @@ 'lvar_t_clr_noptr_var', 'lvar_t_clr_notarg', 'lvar_t_clr_overlapped_var', + 'lvar_t_clr_shared', 'lvar_t_clr_spoiled_var', 'lvar_t_clr_thisarg', 'lvar_t_clr_unknown_width', + 'lvar_t_clr_used_byref', 'lvar_t_clr_user_info', 'lvar_t_clr_user_name', 'lvar_t_clr_user_type', @@ -5840,9 +6698,11 @@ 'lvar_t_has_user_info', 'lvar_t_has_user_name', 'lvar_t_has_user_type', + 'lvar_t_in_asm', 'lvar_t_is_aliasable', 'lvar_t_is_arg_var', 'lvar_t_is_automapped', + 'lvar_t_is_decl_unused', 'lvar_t_is_dummy_arg', 'lvar_t_is_fake_var', 'lvar_t_is_floating_var', @@ -5852,14 +6712,17 @@ 'lvar_t_is_notarg', 'lvar_t_is_overlapped_var', 'lvar_t_is_result_var', + 'lvar_t_is_shared', 'lvar_t_is_spoiled_var', 'lvar_t_is_thisarg', 'lvar_t_is_unknown_width', + 'lvar_t_is_used_byref', 'lvar_t_mreg_done', 'lvar_t_name_get', 'lvar_t_name_set', 'lvar_t_set_arg_var', 'lvar_t_set_automapped', + 'lvar_t_set_decl_unused', 'lvar_t_set_dummy_arg', 'lvar_t_set_fake_var', 'lvar_t_set_final_lvar_type', @@ -5872,11 +6735,13 @@ 'lvar_t_set_noptr_var', 'lvar_t_set_notarg', 'lvar_t_set_overlapped_var', + 'lvar_t_set_shared', 'lvar_t_set_spoiled_var', 'lvar_t_set_thisarg', 'lvar_t_set_typed', 'lvar_t_set_unknown_width', 'lvar_t_set_used', + 'lvar_t_set_used_byref', 'lvar_t_set_user_name', 'lvar_t_set_user_type', 'lvar_t_set_width', @@ -5890,6 +6755,7 @@ 'lvar_t_width_get', 'lvar_t_width_set', 'lvar_uservec_t_clear', + 'lvar_uservec_t_empty', 'lvar_uservec_t_find_info', 'lvar_uservec_t_keep_info', 'lvar_uservec_t_lmaps_get', @@ -5905,6 +6771,9 @@ 'lvars_t_find_input_lvar', 'lvars_t_find_lvar', 'lvars_t_find_stkvar', + 'macro_constructor_t_build_macro', + 'macro_constructor_t_reserved_get', + 'macro_constructor_t_reserved_set', 'make_name_auto', 'make_name_non_public', 'make_name_non_weak', @@ -5912,6 +6781,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -5942,195 +6812,205 @@ 'mba_ranges_t_ranges_get', 'mba_ranges_t_ranges_set', 'mba_ranges_t_start', - 'mbl_array_t__deregister', - 'mbl_array_t__print', - 'mbl_array_t__register', - 'mbl_array_t_aliased_args_get', - 'mbl_array_t_aliased_args_set', - 'mbl_array_t_aliased_memory_get', - 'mbl_array_t_aliased_memory_set', - 'mbl_array_t_aliased_vars_get', - 'mbl_array_t_aliased_vars_set', - 'mbl_array_t_alloc_lvars', - 'mbl_array_t_analyze_calls', - 'mbl_array_t_arg', - 'mbl_array_t_arg__SWIG_0', - 'mbl_array_t_arg__SWIG_1', - 'mbl_array_t_argbase', - 'mbl_array_t_argidx_get', - 'mbl_array_t_argidx_ok', - 'mbl_array_t_argidx_set', - 'mbl_array_t_argidx_sorted', - 'mbl_array_t_bad_call_sp_detected', - 'mbl_array_t_blocks_get', - 'mbl_array_t_blocks_set', - 'mbl_array_t_build_graph', - 'mbl_array_t_calc_shins_flags', - 'mbl_array_t_callinfo_built', - 'mbl_array_t_cc_get', - 'mbl_array_t_cc_set', - 'mbl_array_t_chain_varnums_ok', - 'mbl_array_t_clr_cdtr', - 'mbl_array_t_clr_mba_flags', - 'mbl_array_t_clr_mba_flags2', - 'mbl_array_t_combine_blocks', - 'mbl_array_t_common_stkvars_stkargs', - 'mbl_array_t_consumed_argregs_get', - 'mbl_array_t_consumed_argregs_set', - 'mbl_array_t_copy_block', - 'mbl_array_t_deleted_pairs', - 'mbl_array_t_deserialize', - 'mbl_array_t_display_numaddrs', - 'mbl_array_t_display_valnums', - 'mbl_array_t_dump', - 'mbl_array_t_dump_mba', - 'mbl_array_t_dump_mba__varargs__', - 'mbl_array_t_entry_ea_get', - 'mbl_array_t_entry_ea_set', - 'mbl_array_t_error_ea_get', - 'mbl_array_t_error_ea_set', - 'mbl_array_t_error_strarg_get', - 'mbl_array_t_error_strarg_set', - 'mbl_array_t_final_type_get', - 'mbl_array_t_final_type_set', - 'mbl_array_t_find_mop', - 'mbl_array_t_first_epilog_ea_get', - 'mbl_array_t_first_epilog_ea_set', - 'mbl_array_t_for_all_insns', - 'mbl_array_t_for_all_ops', - 'mbl_array_t_for_all_topinsns', - 'mbl_array_t_fpd_get', - 'mbl_array_t_fpd_set', - 'mbl_array_t_frregs_get', - 'mbl_array_t_frregs_set', - 'mbl_array_t_frsize_get', - 'mbl_array_t_frsize_set', - 'mbl_array_t_fti_flags_get', - 'mbl_array_t_fti_flags_set', - 'mbl_array_t_fullsize_get', - 'mbl_array_t_fullsize_set', - 'mbl_array_t_generated_asserts', - 'mbl_array_t_get_args_region', - 'mbl_array_t_get_curfunc', - 'mbl_array_t_get_graph', - 'mbl_array_t_get_ida_argloc', - 'mbl_array_t_get_lvars_region', - 'mbl_array_t_get_mba_flags', - 'mbl_array_t_get_mba_flags2', - 'mbl_array_t_get_mblock', - 'mbl_array_t_get_mblock__SWIG_0', - 'mbl_array_t_get_mblock__SWIG_1', - 'mbl_array_t_get_shadow_region', - 'mbl_array_t_get_stack_region', - 'mbl_array_t_get_std_region', - 'mbl_array_t_gotoff_stkvars_get', - 'mbl_array_t_gotoff_stkvars_set', - 'mbl_array_t_graph_insns', - 'mbl_array_t_has_bad_sp', - 'mbl_array_t_has_over_chains', - 'mbl_array_t_has_passregs', - 'mbl_array_t_idaloc2vd', - 'mbl_array_t_idb_node_get', - 'mbl_array_t_idb_node_set', - 'mbl_array_t_idb_spoiled_get', - 'mbl_array_t_idb_spoiled_set', - 'mbl_array_t_idb_type_get', - 'mbl_array_t_idb_type_set', - 'mbl_array_t_inargoff_get', - 'mbl_array_t_inargoff_set', - 'mbl_array_t_insert_block', - 'mbl_array_t_is_cdtr', - 'mbl_array_t_is_ctr', - 'mbl_array_t_is_dtr', - 'mbl_array_t_is_pattern', - 'mbl_array_t_is_snippet', - 'mbl_array_t_is_stkarg', - 'mbl_array_t_is_thunk', - 'mbl_array_t_label_get', - 'mbl_array_t_label_set', - 'mbl_array_t_last_prolog_ea_get', - 'mbl_array_t_last_prolog_ea_set', - 'mbl_array_t_loaded_gdl', - 'mbl_array_t_lvar_names_ok', - 'mbl_array_t_lvars_allocated', - 'mbl_array_t_lvars_renamed', - 'mbl_array_t_mark_chains_dirty', - 'mbl_array_t_maturity_get', - 'mbl_array_t_maturity_set', - 'mbl_array_t_may_refine_rettype', - 'mbl_array_t_mbr_get', - 'mbl_array_t_mbr_set', - 'mbl_array_t_minargref_get', - 'mbl_array_t_minargref_set', - 'mbl_array_t_minstkref_ea_get', - 'mbl_array_t_minstkref_ea_set', - 'mbl_array_t_minstkref_get', - 'mbl_array_t_minstkref_set', - 'mbl_array_t_natural_get', - 'mbl_array_t_natural_set', - 'mbl_array_t_nodel_memory_get', - 'mbl_array_t_nodel_memory_set', - 'mbl_array_t_notes_get', - 'mbl_array_t_notes_set', - 'mbl_array_t_npurged_get', - 'mbl_array_t_npurged_set', - 'mbl_array_t_occurred_warns_get', - 'mbl_array_t_occurred_warns_set', - 'mbl_array_t_optimize_global', - 'mbl_array_t_optimize_local', - 'mbl_array_t_optimized', - 'mbl_array_t_pfn_flags_get', - 'mbl_array_t_pfn_flags_set', - 'mbl_array_t_precise_defeas', - 'mbl_array_t_propagated_asserts', - 'mbl_array_t_qty_get', - 'mbl_array_t_qty_set', - 'mbl_array_t_really_alloc', - 'mbl_array_t_regargs_is_not_aligned', - 'mbl_array_t_remove_block', - 'mbl_array_t_remove_empty_blocks', - 'mbl_array_t_reqmat_get', - 'mbl_array_t_reqmat_set', - 'mbl_array_t_restricted_memory_get', - 'mbl_array_t_restricted_memory_set', - 'mbl_array_t_retsize_get', - 'mbl_array_t_retsize_set', - 'mbl_array_t_returns_fpval', - 'mbl_array_t_retvaridx_get', - 'mbl_array_t_retvaridx_set', - 'mbl_array_t_rtype_refined', - 'mbl_array_t_saverest_done', - 'mbl_array_t_serialize', - 'mbl_array_t_set_mba_flags', - 'mbl_array_t_set_mba_flags2', - 'mbl_array_t_shadow_args_get', - 'mbl_array_t_shadow_args_set', - 'mbl_array_t_short_display', - 'mbl_array_t_should_beautify', - 'mbl_array_t_show_reduction', - 'mbl_array_t_spd_adjust_get', - 'mbl_array_t_spd_adjust_set', - 'mbl_array_t_spoiled_list_get', - 'mbl_array_t_spoiled_list_set', - 'mbl_array_t_stacksize_get', - 'mbl_array_t_stacksize_set', - 'mbl_array_t_std_ivls_get', - 'mbl_array_t_std_ivls_set', - 'mbl_array_t_stkoff_ida2vd', - 'mbl_array_t_stkoff_vd2ida', - 'mbl_array_t_term', - 'mbl_array_t_tmpstk_size_get', - 'mbl_array_t_tmpstk_size_set', - 'mbl_array_t_use_frame', - 'mbl_array_t_use_wingraph32', - 'mbl_array_t_valranges_done', - 'mbl_array_t_vars_get', - 'mbl_array_t_vars_set', - 'mbl_array_t_vd2idaloc', - 'mbl_array_t_vd2idaloc__SWIG_0', - 'mbl_array_t_vd2idaloc__SWIG_1', - 'mbl_array_t_verify', - 'mbl_array_t_write_to_const_detected', + 'mba_t__deregister', + 'mba_t__print', + 'mba_t__register', + 'mba_t_aliased_args_get', + 'mba_t_aliased_args_set', + 'mba_t_aliased_memory_get', + 'mba_t_aliased_memory_set', + 'mba_t_aliased_vars_get', + 'mba_t_aliased_vars_set', + 'mba_t_alloc_fict_ea', + 'mba_t_alloc_kreg', + 'mba_t_alloc_lvars', + 'mba_t_analyze_calls', + 'mba_t_arg', + 'mba_t_arg__SWIG_0', + 'mba_t_arg__SWIG_1', + 'mba_t_argbase', + 'mba_t_argidx_get', + 'mba_t_argidx_ok', + 'mba_t_argidx_set', + 'mba_t_argidx_sorted', + 'mba_t_bad_call_sp_detected', + 'mba_t_blocks_get', + 'mba_t_blocks_set', + 'mba_t_build_graph', + 'mba_t_calc_shins_flags', + 'mba_t_callinfo_built', + 'mba_t_cc_get', + 'mba_t_cc_set', + 'mba_t_chain_varnums_ok', + 'mba_t_clr_cdtr', + 'mba_t_clr_mba_flags', + 'mba_t_clr_mba_flags2', + 'mba_t_code16_bit_removed', + 'mba_t_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_create_helper_call', + 'mba_t_deleted_pairs', + 'mba_t_deprecated_idb_node_get', + 'mba_t_deprecated_idb_node_set', + 'mba_t_deserialize', + 'mba_t_display_numaddrs', + 'mba_t_display_valnums', + 'mba_t_dump', + 'mba_t_dump_mba', + 'mba_t_dump_mba__varargs__', + 'mba_t_entry_ea_get', + 'mba_t_entry_ea_set', + 'mba_t_error_ea_get', + 'mba_t_error_ea_set', + 'mba_t_error_strarg_get', + 'mba_t_error_strarg_set', + 'mba_t_final_type_get', + 'mba_t_final_type_set', + 'mba_t_find_mop', + 'mba_t_first_epilog_ea_get', + 'mba_t_first_epilog_ea_set', + 'mba_t_for_all_insns', + 'mba_t_for_all_ops', + 'mba_t_for_all_topinsns', + 'mba_t_fpd_get', + 'mba_t_fpd_set', + 'mba_t_free_kreg', + 'mba_t_frregs_get', + 'mba_t_frregs_set', + 'mba_t_frsize_get', + 'mba_t_frsize_set', + 'mba_t_fti_flags_get', + 'mba_t_fti_flags_set', + 'mba_t_fullsize_get', + 'mba_t_fullsize_set', + 'mba_t_generated_asserts', + 'mba_t_get_args_region', + 'mba_t_get_curfunc', + 'mba_t_get_graph', + 'mba_t_get_ida_argloc', + 'mba_t_get_lvars_region', + 'mba_t_get_mba_flags', + 'mba_t_get_mba_flags2', + 'mba_t_get_mblock', + 'mba_t_get_mblock__SWIG_0', + 'mba_t_get_mblock__SWIG_1', + 'mba_t_get_shadow_region', + 'mba_t_get_stack_region', + 'mba_t_get_std_region', + 'mba_t_gotoff_stkvars_get', + 'mba_t_gotoff_stkvars_set', + 'mba_t_graph_insns', + 'mba_t_has_bad_sp', + 'mba_t_has_outlines', + 'mba_t_has_over_chains', + 'mba_t_has_passregs', + 'mba_t_has_stack_retval', + 'mba_t_idaloc2vd', + 'mba_t_idb_spoiled_get', + 'mba_t_idb_spoiled_set', + 'mba_t_idb_type_get', + 'mba_t_idb_type_set', + 'mba_t_inargoff_get', + 'mba_t_inargoff_set', + 'mba_t_insert_block', + 'mba_t_is_cdtr', + 'mba_t_is_ctr', + 'mba_t_is_dtr', + 'mba_t_is_pattern', + 'mba_t_is_snippet', + 'mba_t_is_stkarg', + 'mba_t_is_thunk', + 'mba_t_label_get', + 'mba_t_label_set', + 'mba_t_last_prolog_ea_get', + 'mba_t_last_prolog_ea_set', + 'mba_t_loaded_gdl', + 'mba_t_lvar_names_ok', + 'mba_t_lvars_allocated', + 'mba_t_lvars_renamed', + 'mba_t_map_fict_ea', + 'mba_t_mark_chains_dirty', + 'mba_t_maturity_get', + 'mba_t_maturity_set', + 'mba_t_may_refine_rettype', + 'mba_t_mbr_get', + 'mba_t_mbr_set', + 'mba_t_minargref_get', + 'mba_t_minargref_set', + 'mba_t_minstkref_ea_get', + 'mba_t_minstkref_ea_set', + 'mba_t_minstkref_get', + 'mba_t_minstkref_set', + 'mba_t_natural_get', + 'mba_t_natural_set', + 'mba_t_nodel_memory_get', + 'mba_t_nodel_memory_set', + 'mba_t_notes_get', + 'mba_t_notes_set', + 'mba_t_npurged_get', + 'mba_t_npurged_set', + 'mba_t_occurred_warns_get', + 'mba_t_occurred_warns_set', + 'mba_t_optimize_global', + 'mba_t_optimize_local', + 'mba_t_optimized', + 'mba_t_pfn_flags_get', + 'mba_t_pfn_flags_set', + 'mba_t_precise_defeas', + 'mba_t_propagated_asserts', + 'mba_t_qty_get', + 'mba_t_qty_set', + 'mba_t_really_alloc', + 'mba_t_regargs_is_not_aligned', + 'mba_t_remove_block', + 'mba_t_remove_empty_and_unreachable_blocks', + 'mba_t_reqmat_get', + 'mba_t_reqmat_set', + 'mba_t_restricted_memory_get', + 'mba_t_restricted_memory_set', + 'mba_t_retsize_get', + 'mba_t_retsize_set', + 'mba_t_returns_fpval', + 'mba_t_retvaridx_get', + 'mba_t_retvaridx_set', + 'mba_t_rtype_refined', + 'mba_t_save_snapshot', + 'mba_t_saverest_done', + 'mba_t_serialize', + 'mba_t_set_maturity', + 'mba_t_set_mba_flags', + 'mba_t_set_mba_flags2', + 'mba_t_shadow_args_get', + 'mba_t_shadow_args_set', + 'mba_t_short_display', + 'mba_t_should_beautify', + 'mba_t_show_reduction', + 'mba_t_spd_adjust_get', + 'mba_t_spd_adjust_set', + 'mba_t_spoiled_list_get', + 'mba_t_spoiled_list_set', + 'mba_t_stacksize_get', + 'mba_t_stacksize_set', + 'mba_t_std_ivls_get', + 'mba_t_std_ivls_set', + 'mba_t_stkoff_ida2vd', + 'mba_t_stkoff_vd2ida', + 'mba_t_term', + 'mba_t_tmpstk_size_get', + 'mba_t_tmpstk_size_set', + 'mba_t_use_frame', + 'mba_t_use_wingraph32', + 'mba_t_valranges_done', + 'mba_t_vars_get', + 'mba_t_vars_set', + 'mba_t_vd2idaloc', + 'mba_t_vd2idaloc__SWIG_0', + 'mba_t_vd2idaloc__SWIG_1', + 'mba_t_verify', + 'mba_t_write_to_const_detected', 'mbl_graph_t_get_chain_stamp', 'mbl_graph_t_get_du', 'mbl_graph_t_get_mblock', @@ -6236,6 +7116,8 @@ 'mcallarg_t_dstr', 'mcallarg_t_ea_get', 'mcallarg_t_ea_set', + 'mcallarg_t_flags_get', + 'mcallarg_t_flags_set', 'mcallarg_t_make_int', 'mcallarg_t_make_uint', 'mcallarg_t_name_get', @@ -6358,6 +7240,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -6458,6 +7341,78 @@ 'memreg_infos_t_size', 'memreg_infos_t_swap', 'memreg_infos_t_truncate', + 'merge_data_t_add_event_handler', + 'merge_data_t_base_id', + 'merge_data_t_compare_merging_tifs', + 'merge_data_t_dbctx_ids_get', + 'merge_data_t_dbctx_ids_set', + 'merge_data_t_ev_handlers_get', + 'merge_data_t_ev_handlers_set', + 'merge_data_t_get_block_head', + 'merge_data_t_has_existing_node', + 'merge_data_t_item_block_locator_get', + 'merge_data_t_item_block_locator_set', + 'merge_data_t_last_udt_related_merger_get', + 'merge_data_t_last_udt_related_merger_set', + 'merge_data_t_local_id', + 'merge_data_t_map_privrange_id', + 'merge_data_t_map_tinfo', + 'merge_data_t_nbases_get', + 'merge_data_t_nbases_set', + 'merge_data_t_remote_id', + 'merge_data_t_remove_event_handler', + 'merge_data_t_set_dbctx_ids', + 'merge_data_t_setup_blocks', + 'merge_handler_params_t_insert_after_get', + 'merge_handler_params_t_insert_after_set', + 'merge_handler_params_t_kind_get', + 'merge_handler_params_t_kind_set', + 'merge_handler_params_t_label_get', + 'merge_handler_params_t_label_set', + 'merge_handler_params_t_md_get', + 'merge_handler_params_t_mh_flags_get', + 'merge_handler_params_t_mh_flags_set', + 'merge_handler_params_t_ui_complex_details', + 'merge_handler_params_t_ui_complex_details__SWIG_0', + 'merge_handler_params_t_ui_complex_details__SWIG_1', + 'merge_handler_params_t_ui_complex_name', + 'merge_handler_params_t_ui_complex_name__SWIG_0', + 'merge_handler_params_t_ui_complex_name__SWIG_1', + 'merge_handler_params_t_ui_dp_shortname', + 'merge_handler_params_t_ui_dp_shortname__SWIG_0', + 'merge_handler_params_t_ui_dp_shortname__SWIG_1', + 'merge_handler_params_t_ui_has_details', + 'merge_handler_params_t_ui_has_details__SWIG_0', + 'merge_handler_params_t_ui_has_details__SWIG_1', + 'merge_handler_params_t_ui_indent', + 'merge_handler_params_t_ui_indent__SWIG_0', + 'merge_handler_params_t_ui_indent__SWIG_1', + 'merge_handler_params_t_ui_linediff', + 'merge_handler_params_t_ui_linediff__SWIG_0', + 'merge_handler_params_t_ui_linediff__SWIG_1', + 'merge_handler_params_t_ui_split_char', + 'merge_handler_params_t_ui_split_char__SWIG_0', + 'merge_handler_params_t_ui_split_char__SWIG_1', + 'merge_handler_params_t_ui_split_str', + 'merge_handler_params_t_ui_split_str__SWIG_0', + 'merge_handler_params_t_ui_split_str__SWIG_1', + 'merge_node_helper_t_append_eavec', + 'merge_node_helper_t_get_column_headers', + 'merge_node_helper_t_get_netnode', + 'merge_node_helper_t_is_mergeable', + 'merge_node_helper_t_map_scalar', + 'merge_node_helper_t_map_string', + 'merge_node_helper_t_print_entry_details', + 'merge_node_helper_t_print_entry_name', + 'merge_node_helper_t_refresh', + 'merge_node_info_t_name_get', + 'merge_node_info_t_name_set', + 'merge_node_info_t_nds_flags_get', + 'merge_node_info_t_nds_flags_set', + 'merge_node_info_t_node_helper_get', + 'merge_node_info_t_node_helper_set', + 'merge_node_info_t_tag_get', + 'merge_node_info_t_tag_set', 'metadata_iterator_t_data_end', 'metadata_iterator_t_data_get', 'metadata_iterator_t_data_set', @@ -6538,7 +7493,7 @@ 'minsn_t_l_set', 'minsn_t_lexcompare', 'minsn_t_may_use_aliased_memory', - 'minsn_t_modifes_d', + 'minsn_t_modifies_d', 'minsn_t_modifies_pair_mop', 'minsn_t_next_get', 'minsn_t_next_set', @@ -6627,6 +7582,17 @@ 'mnumber_t_update_value', 'mnumber_t_value_get', 'mnumber_t_value_set', + 'moddata_diff_helper_t_fields_get', + 'moddata_diff_helper_t_fields_set', + 'moddata_diff_helper_t_get_struc_ptr', + 'moddata_diff_helper_t_merge_ending', + 'moddata_diff_helper_t_merge_starting', + 'moddata_diff_helper_t_module_name_get', + 'moddata_diff_helper_t_module_name_set', + 'moddata_diff_helper_t_netnode_name_get', + 'moddata_diff_helper_t_netnode_name_set', + 'moddata_diff_helper_t_nfields_get', + 'moddata_diff_helper_t_nfields_set', 'modify_user_lvar_info', 'modify_user_lvars', 'modinfo_t_base_get', @@ -6741,9 +7707,11 @@ 'mop_t_is_insn__SWIG_0', 'mop_t_is_insn__SWIG_1', 'mop_t_is_kreg', + 'mop_t_is_lowaddr', 'mop_t_is_mob', 'mop_t_is_negative_constant', 'mop_t_is_one', + 'mop_t_is_pcval', 'mop_t_is_positive_constant', 'mop_t_is_reg', 'mop_t_is_reg__SWIG_0', @@ -6771,12 +7739,14 @@ 'mop_t_make_reg__SWIG_1', 'mop_t_make_reg_pair', 'mop_t_make_second_half', + 'mop_t_make_stkvar', 'mop_t_may_use_aliased_memory', 'mop_t_oprops_get', 'mop_t_oprops_set', 'mop_t_preserve_side_effects', 'mop_t_probably_floating', 'mop_t_set_impptr_done', + 'mop_t_set_lowaddr', 'mop_t_set_udt', 'mop_t_set_undef_val', 'mop_t_shift_mop', @@ -6787,6 +7757,7 @@ 'mop_t_t_get', 'mop_t_t_set', 'mop_t_unsigned_value', + 'mop_t_update_numop_value', 'mop_t_valnum_get', 'mop_t_valnum_set', 'mop_t_value', @@ -6834,7 +7805,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -6844,21 +7814,23 @@ 'msg_get_lines', 'msg_save', 'must_mcode_close_block', + 'mutable_graph_t_add_edge', + 'mutable_graph_t_add_node', 'mutable_graph_t_belongs_get', 'mutable_graph_t_belongs_set', 'mutable_graph_t_calc_group_ea', 'mutable_graph_t_change_group_visibility', - 'mutable_graph_t_clear', 'mutable_graph_t_create_digraph_layout', 'mutable_graph_t_create_group', 'mutable_graph_t_del_custom_layout', + 'mutable_graph_t_del_edge', + 'mutable_graph_t_del_node', 'mutable_graph_t_delete_group', 'mutable_graph_t_edges_get', 'mutable_graph_t_edges_set', 'mutable_graph_t_empty', 'mutable_graph_t_exists', 'mutable_graph_t_get_custom_layout', - 'mutable_graph_t_get_edge', 'mutable_graph_t_get_first_subgraph_node', 'mutable_graph_t_get_graph_groups', 'mutable_graph_t_get_next_subgraph_node', @@ -6882,9 +7854,6 @@ 'mutable_graph_t_nodes_get', 'mutable_graph_t_nodes_set', 'mutable_graph_t_npred', - 'mutable_graph_t_nrect', - 'mutable_graph_t_nrect__SWIG_0', - 'mutable_graph_t_nrect__SWIG_1', 'mutable_graph_t_nsucc', 'mutable_graph_t_org_preds_get', 'mutable_graph_t_org_preds_set', @@ -6894,12 +7863,17 @@ 'mutable_graph_t_preds_get', 'mutable_graph_t_preds_set', 'mutable_graph_t_predset', + 'mutable_graph_t_redo_layout', + 'mutable_graph_t_refresh', + 'mutable_graph_t_replace_edge', 'mutable_graph_t_reset', + 'mutable_graph_t_resize', 'mutable_graph_t_set_custom_layout', 'mutable_graph_t_set_deleted_node', 'mutable_graph_t_set_edge', 'mutable_graph_t_set_graph_groups', 'mutable_graph_t_set_node_group', + 'mutable_graph_t_set_nrect', 'mutable_graph_t_size', 'mutable_graph_t_succ', 'mutable_graph_t_succs_get', @@ -6971,6 +7945,7 @@ 'netnode_easet_idx', 'netnode_easet_idx8', 'netnode_end', + 'netnode_exist', 'netnode_get_name', 'netnode_getblob', 'netnode_getblob_ea', @@ -7050,6 +8025,9 @@ 'new___qsemaphore_t', 'new___qthread_t', 'new___qtimer_t', + 'new_abstract_graph_t', + 'new_action_ctx_base_cur_sel_t', + 'new_action_ctx_base_source_t', 'new_action_ctx_base_t', 'new_action_desc_t', 'new_addon_info_t', @@ -7063,6 +8041,7 @@ 'new_argpartvec_t', 'new_argpartvec_t__SWIG_0', 'new_argpartvec_t__SWIG_1', + 'new_argtinfo_helper_t', 'new_array_of_bitsets', 'new_array_of_bitsets__SWIG_0', 'new_array_of_bitsets__SWIG_1', @@ -7076,9 +8055,9 @@ 'new_array_type_data_t', 'new_asm_t', 'new_auto_display_t', - 'new_bgcolors_t', 'new_bit_bound_t', 'new_bitfield_type_data_t', + 'new_bitrange_t', 'new_bitset_t', 'new_bitset_t__SWIG_0', 'new_bitset_t__SWIG_1', @@ -7098,13 +8077,16 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', + 'new_call_stack_info_vec_t', + 'new_call_stack_info_vec_t__SWIG_0', + 'new_call_stack_info_vec_t__SWIG_1', 'new_call_stack_t', - 'new_call_stack_t__SWIG_0', - 'new_call_stack_t__SWIG_1', 'new_callregs_t', 'new_callregs_t__SWIG_0', 'new_callregs_t__SWIG_1', + 'new_cancellable_graph_t', 'new_carg_t', 'new_carglist_t', 'new_carglist_t__SWIG_0', @@ -7147,10 +8129,16 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', + 'new_chooser_stdact_desc_t', 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -7164,14 +8152,15 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', + 'new_compiled_binpat_t', + 'new_compiled_binpat_vec_t', + 'new_compiled_binpat_vec_t__SWIG_0', + 'new_compiled_binpat_vec_t__SWIG_1', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -7193,12 +8182,31 @@ 'new_debug_event_t', 'new_debug_event_t__SWIG_0', 'new_debug_event_t__SWIG_1', + 'new_direntry_t', + 'new_direntry_vec_t', + 'new_direntry_vec_t__SWIG_0', + 'new_direntry_vec_t__SWIG_1', + 'new_dirspec_t', + 'new_dirtree_cursor_t', + 'new_dirtree_cursor_vec_t', + 'new_dirtree_cursor_vec_t__SWIG_0', + 'new_dirtree_cursor_vec_t__SWIG_1', + 'new_dirtree_iterator_t', + 'new_dirtree_selection_t', + 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', 'new_disasm_text_t', 'new_disasm_text_t__SWIG_0', 'new_disasm_text_t__SWIG_1', + 'new_dyn_ea_array', + 'new_dyn_member_ref_array', + 'new_dyn_range_array', + 'new_dyn_regarg_array', + 'new_dyn_regvar_array', + 'new_dyn_stkpnt_array', 'new_ea_array', 'new_ea_name_t', 'new_ea_name_t__SWIG_0', @@ -7213,7 +8221,6 @@ 'new_edge_layout_point_t', 'new_edge_layout_point_t__SWIG_0', 'new_edge_layout_point_t__SWIG_1', - 'new_edge_layout_point_t__SWIG_2', 'new_edge_segment_t', 'new_edge_t', 'new_edge_t__SWIG_0', @@ -7237,12 +8244,16 @@ 'new_extra_cmts_t', 'new_extra_cmts_t__SWIG_0', 'new_extra_cmts_t__SWIG_1', + 'new_file_enumerator_t', 'new_fixup_data_t', 'new_fixup_data_t__SWIG_0', 'new_fixup_data_t__SWIG_1', 'new_fixup_info_t', - 'new_fnum_array', 'new_fnumber_t', + 'new_fpvalue_shorts_array_t', + 'new_fpvalue_t', + 'new_fpvalue_t__SWIG_0', + 'new_fpvalue_t__SWIG_1', 'new_frame_desc_t', 'new_frame_mem_t', 'new_frame_mems_t', @@ -7282,6 +8293,7 @@ 'new_funcargvec_t__SWIG_0', 'new_funcargvec_t__SWIG_1', 'new_gco_info_t', + 'new_gdl_graph_t', 'new_graph_chains_t', 'new_graph_item_t', 'new_graph_location_info_t', @@ -7299,12 +8311,13 @@ 'new_hexwarns_t__SWIG_1', 'new_hidden_range_t', 'new_highlighter_cbs_t', - 'new_history_entries_helper_t', 'new_history_item_t', 'new_history_item_t__SWIG_0', 'new_history_item_t__SWIG_1', 'new_history_t', 'new_ida_lowertype_helper_t', + 'new_idbattr_info_t', + 'new_idbattr_valmap_t', 'new_idc_global_t', 'new_idc_global_t__SWIG_0', 'new_idc_global_t__SWIG_1', @@ -7317,6 +8330,10 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_input_file_t', 'new_insn_cmt_t', 'new_insn_cmts_t', @@ -7329,6 +8346,9 @@ 'new_insn_site_t', 'new_insn_t', 'new_instant_dbgopts_t', + 'new_int64vec_t', + 'new_int64vec_t__SWIG_0', + 'new_int64vec_t__SWIG_1', 'new_int_pointer', 'new_interval_t', 'new_interval_t__SWIG_0', @@ -7337,12 +8357,23 @@ 'new_intvec_t', 'new_intvec_t__SWIG_0', 'new_intvec_t__SWIG_1', + 'new_ioports_fallback_t', + 'new_item_block_locator_t', + 'new_iterator', 'new_ivl_t', 'new_ivl_with_name_t', 'new_ivlset_t', 'new_ivlset_t__SWIG_0', 'new_ivlset_t__SWIG_1', - 'new_llabel_t', + 'new_line_rendering_output_entries_refs_t', + 'new_line_rendering_output_entries_refs_t__SWIG_0', + 'new_line_rendering_output_entries_refs_t__SWIG_1', + 'new_line_rendering_output_entry_t', + 'new_line_rendering_output_entry_t__SWIG_0', + 'new_line_rendering_output_entry_t__SWIG_1', + 'new_linearray_t', + 'new_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -7352,9 +8383,6 @@ 'new_lochist_t', 'new_lock_func', 'new_lock_segment', - 'new_longlongvec_t', - 'new_longlongvec_t__SWIG_0', - 'new_longlongvec_t__SWIG_1', 'new_lumina_op_res_vec_t', 'new_lumina_op_res_vec_t__SWIG_0', 'new_lumina_op_res_vec_t__SWIG_1', @@ -7372,6 +8400,7 @@ 'new_lvar_saved_infos_t__SWIG_1', 'new_lvar_uservec_t', 'new_lvars_t', + 'new_macro_constructor_t', 'new_mba_range_iterator_t', 'new_mba_ranges_t', 'new_mba_ranges_t__SWIG_0', @@ -7394,6 +8423,9 @@ 'new_memreg_infos_t', 'new_memreg_infos_t__SWIG_0', 'new_memreg_infos_t__SWIG_1', + 'new_merge_handler_params_t', + 'new_merge_node_helper_t', + 'new_merge_node_info_t', 'new_metadata_iterator_t', 'new_microcode_filter_t', 'new_minsn_t', @@ -7406,6 +8438,7 @@ 'new_mlist_t__SWIG_1', 'new_mlist_t__SWIG_2', 'new_mnumber_t', + 'new_moddata_diff_helper_t', 'new_modinfo_t', 'new_mop_addr_t', 'new_mop_addr_t__SWIG_0', @@ -7423,29 +8456,26 @@ 'new_netnode', 'new_netnode__SWIG_0', 'new_netnode__SWIG_1', - 'new_netnode__SWIG_2', 'new_node_info_t', 'new_node_iterator', 'new_node_layout_t', 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', + 'new_octet_generator_t', 'new_op_parent_info_t', 'new_op_t', 'new_operand_locator_t', 'new_operands_array', - 'new_operator_info_t', 'new_opinfo_t', 'new_oprepr_t', 'new_optblock_t', 'new_optinsn_t', 'new_packet', + 'new_params_t', 'new_pattern_id_t', - 'new_pkt_clean_db_t', - 'new_pkt_debugctl_t', - 'new_pkt_dump_md_result_t', - 'new_pkt_dump_md_t', 'new_pkt_get_pop_result_t', 'new_pkt_get_pop_t', 'new_pkt_helo_t', @@ -7481,10 +8511,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -7502,7 +8528,6 @@ 'new_qvector_snapshotvec_t', 'new_qvector_snapshotvec_t__SWIG_0', 'new_qvector_snapshotvec_t__SWIG_1', - 'new_range_array', 'new_range_t', 'new_range_t__SWIG_0', 'new_range_t__SWIG_1', @@ -7519,8 +8544,15 @@ 'new_rect_t__SWIG_1', 'new_rect_t__SWIG_2', 'new_refinfo_t', + 'new_reg_access_t', + 'new_reg_access_vec_t', + 'new_reg_access_vec_t__SWIG_0', + 'new_reg_access_vec_t__SWIG_1', + 'new_reg_accesses_t', 'new_reg_info_t', 'new_regarg_t', + 'new_regarg_t__SWIG_0', + 'new_regarg_t__SWIG_1', 'new_reginfovec_t', 'new_reginfovec_t__SWIG_0', 'new_reginfovec_t__SWIG_1', @@ -7533,10 +8565,13 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', + 'new_regvar_t__SWIG_0', + 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -7552,11 +8587,18 @@ 'new_screen_graph_selection_base_t__SWIG_0', 'new_screen_graph_selection_base_t__SWIG_1', 'new_screen_graph_selection_t', + 'new_section_lines_refs_t', + 'new_section_lines_refs_t__SWIG_0', + 'new_section_lines_refs_t__SWIG_1', + 'new_sections_lines_refs_t', + 'new_sections_lines_refs_t__SWIG_0', + 'new_sections_lines_refs_t__SWIG_1', 'new_segm_move_info_t', 'new_segm_move_info_vec_t', 'new_segm_move_info_vec_t__SWIG_0', 'new_segm_move_info_vec_t__SWIG_1', 'new_segm_move_infos_t', + 'new_segment_defsr_array', 'new_segment_t', 'new_seh_t', 'new_sel_array', @@ -7581,14 +8623,12 @@ 'new_skipped_funcs_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -7601,6 +8641,10 @@ 'new_sync_source_t', 'new_sync_source_t__SWIG_0', 'new_sync_source_t__SWIG_1', + 'new_sync_source_vec_t', + 'new_sync_source_vec_t__SWIG_0', + 'new_sync_source_vec_t__SWIG_1', + 'new_synced_group_t', 'new_tev_info_reg_t', 'new_tev_info_t', 'new_tev_reg_value_t', @@ -7611,6 +8655,9 @@ 'new_tevinforeg_vec_t__SWIG_0', 'new_tevinforeg_vec_t__SWIG_1', 'new_text_sink_t', + 'new_text_t', + 'new_text_t__SWIG_0', + 'new_text_t__SWIG_1', 'new_thread_name_t', 'new_tid_array', 'new_til', @@ -7629,6 +8676,9 @@ 'new_tryblks_t', 'new_tryblks_t__SWIG_0', 'new_tryblks_t__SWIG_1', + 'new_twinline_t', + 'new_twinline_t__SWIG_0', + 'new_twinline_t__SWIG_1', 'new_twinpos_t', 'new_twinpos_t__SWIG_0', 'new_twinpos_t__SWIG_1', @@ -7648,22 +8698,24 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', 'new_ui_stroff_ops_t', 'new_ui_stroff_ops_t__SWIG_0', 'new_ui_stroff_ops_t__SWIG_1', + 'new_uint64vec_t', + 'new_uint64vec_t__SWIG_0', + 'new_uint64vec_t__SWIG_1', 'new_uintvec_t', 'new_uintvec_t__SWIG_0', 'new_uintvec_t__SWIG_1', - 'new_ulonglongvec_t', - 'new_ulonglongvec_t__SWIG_0', - 'new_ulonglongvec_t__SWIG_1', 'new_user_cmts_iterator_t', 'new_user_cmts_t', + 'new_user_defined_prefix_t', 'new_user_identification_t', 'new_user_iflags_iterator_t', 'new_user_iflags_t', @@ -7726,6 +8778,7 @@ 'next_not_tail', 'next_that', 'next_unknown', + 'next_visea', 'node2ea', 'node_info_t_bg_color_get', 'node_info_t_bg_color_set', @@ -7787,16 +8840,23 @@ 'node_layout_t_swap', 'node_layout_t_truncate', 'node_ordering_t_clear', + 'node_ordering_t_clr', 'node_ordering_t_node', + 'node_ordering_t_order', 'node_ordering_t_resize', 'node_ordering_t_set', 'node_ordering_t_size', 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', + 'number_format_t_has_unmutable_type', 'number_format_t_is_char', 'number_format_t_is_dec', 'number_format_t_is_enum', @@ -7817,6 +8877,15 @@ 'number_format_t_type_name_get', 'number_format_t_type_name_set', 'oct_flag', + 'octet_generator_t_avail_bits_get', + 'octet_generator_t_avail_bits_set', + 'octet_generator_t_ea_get', + 'octet_generator_t_ea_set', + 'octet_generator_t_high_byte_first_get', + 'octet_generator_t_high_byte_first_set', + 'octet_generator_t_invert_byte_order', + 'octet_generator_t_value_get', + 'octet_generator_t_value_set', 'off_flag', 'op_adds_xrefs', 'op_bin', @@ -7851,6 +8920,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -7865,6 +8936,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -7875,11 +8950,16 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', + 'open_bookmarks_window', 'open_bpts_window', 'open_calls_window', 'open_disasm_window', @@ -7923,17 +9003,9 @@ 'operands_array___getitem__', 'operands_array___len__', 'operands_array___setitem__', + 'operands_array__get_bytes', + 'operands_array__set_bytes', 'operands_array_data_get', - 'operator_info_t_fixtype_get', - 'operator_info_t_fixtype_set', - 'operator_info_t_flags_get', - 'operator_info_t_flags_set', - 'operator_info_t_precedence_get', - 'operator_info_t_precedence_set', - 'operator_info_t_text_get', - 'operator_info_t_text_set', - 'operator_info_t_valency_get', - 'operator_info_t_valency_set', 'opinfo_t_cd_get', 'opinfo_t_cd_set', 'opinfo_t_ec_get', @@ -8017,6 +9089,8 @@ 'outctx_base_t_stack_view', 'outctx_base_t_term_outctx', 'outctx_t__from_ptrval__', + 'outctx_t_ash_get', + 'outctx_t_ash_set', 'outctx_t_bin_ea_get', 'outctx_t_bin_ea_set', 'outctx_t_bin_state_get', @@ -8041,8 +9115,14 @@ 'outctx_t_out_mnemonic', 'outctx_t_out_one_operand', 'outctx_t_out_specea', + 'outctx_t_ph_get', + 'outctx_t_ph_set', + 'outctx_t_procmod_get', + 'outctx_t_procmod_set', 'outctx_t_retrieve_cmt', 'outctx_t_retrieve_name', + 'outctx_t_saved_immvals_get', + 'outctx_t_saved_immvals_set', 'outctx_t_set_bin_state', 'outctx_t_setup_outctx', 'outctx_t_wif_get', @@ -8053,10 +9133,17 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', + 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', 'parse_decl', 'parse_decls', + 'parse_decls_for_srclang', + 'parse_decls_with_parser', 'parse_reg_name', 'parse_user_call', 'partial_type_num', @@ -8083,6 +9170,7 @@ 'ph_get_instruc_end', 'ph_get_instruc_start', 'ph_get_operand_info', + 'ph_get_reg_accesses', 'ph_get_reg_code_sreg', 'ph_get_reg_data_sreg', 'ph_get_reg_first_sreg', @@ -8091,12 +9179,6 @@ 'ph_get_segreg_size', 'ph_get_tbyte_size', 'ph_get_version', - 'pkt_debugctl_t_args_get', - 'pkt_debugctl_t_args_set', - 'pkt_dump_md_result_t_contents_get', - 'pkt_dump_md_result_t_contents_set', - 'pkt_dump_md_t_sort_get', - 'pkt_dump_md_t_sort_set', 'pkt_get_pop_result_t_results_get', 'pkt_get_pop_result_t_results_set', 'pkt_get_pop_t_nresults_get', @@ -8150,6 +9232,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -8261,6 +9344,7 @@ 'prev_not_tail', 'prev_that', 'prev_unknown', + 'prev_visea', 'print_argloc', 'print_decls', 'print_idcv', @@ -8286,6 +9370,7 @@ 'printop_t_ti_get', 'printop_t_ti_set', 'process_archive', + 'process_config_directive', 'process_info_t_name_get', 'process_info_t_name_set', 'process_info_t_pid_get', @@ -8357,13 +9442,13 @@ 'put_qword', 'put_word', 'py_add_idc_func', + 'py_chooser_base_t_get_row', 'py_get_ask_form', 'py_get_call_idc_func', 'py_get_open_form', 'py_load_custom_icon_data', 'py_load_custom_icon_fn', 'py_register_compiled_form', - 'py_ss_restore_callback', 'py_unregister_compiled_form', 'pycim_get_widget', 'pycim_view_close', @@ -8453,44 +9538,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -8516,6 +9563,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8718,11 +9766,6 @@ 'qvector_snapshotvec_t_swap', 'qvector_snapshotvec_t_truncate', 'qword_flag', - 'range_array___getitem__', - 'range_array___len__', - 'range_array___setitem__', - 'range_array_count_get', - 'range_array_data_get', 'range_t___eq__', 'range_t___gt__', 'range_t___lt__', @@ -8823,6 +9866,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8864,6 +9908,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -8878,12 +9924,64 @@ 'refinfo_t_type', 'refresh_chooser', 'refresh_choosers', + 'refresh_custom_viewer', 'refresh_debugger_memory', 'refresh_idaview', 'refresh_idaview_anyway', 'refresh_navband', 'refresh_viewer', 'reg2mreg', + 'reg_access_t___eq__', + 'reg_access_t___ne__', + 'reg_access_t_access_type_get', + 'reg_access_t_access_type_set', + 'reg_access_t_have_common_bits', + 'reg_access_t_opnum_get', + 'reg_access_t_opnum_set', + 'reg_access_t_range_get', + 'reg_access_t_range_set', + 'reg_access_t_regnum_get', + 'reg_access_t_regnum_set', + 'reg_access_vec_t___eq__', + 'reg_access_vec_t___getitem__', + 'reg_access_vec_t___len__', + 'reg_access_vec_t___ne__', + 'reg_access_vec_t___setitem__', + 'reg_access_vec_t__del', + 'reg_access_vec_t_add_unique', + 'reg_access_vec_t_at', + 'reg_access_vec_t_begin', + 'reg_access_vec_t_begin__SWIG_0', + 'reg_access_vec_t_begin__SWIG_1', + 'reg_access_vec_t_capacity', + 'reg_access_vec_t_clear', + 'reg_access_vec_t_empty', + 'reg_access_vec_t_end', + 'reg_access_vec_t_end__SWIG_0', + 'reg_access_vec_t_end__SWIG_1', + 'reg_access_vec_t_erase', + 'reg_access_vec_t_erase__SWIG_0', + 'reg_access_vec_t_erase__SWIG_1', + 'reg_access_vec_t_extract', + 'reg_access_vec_t_find', + 'reg_access_vec_t_find__SWIG_0', + 'reg_access_vec_t_find__SWIG_1', + 'reg_access_vec_t_grow', + 'reg_access_vec_t_has', + 'reg_access_vec_t_inject', + 'reg_access_vec_t_insert', + 'reg_access_vec_t_pop_back', + 'reg_access_vec_t_push_back', + 'reg_access_vec_t_push_back__SWIG_0', + 'reg_access_vec_t_push_back__SWIG_1', + 'reg_access_vec_t_qclear', + 'reg_access_vec_t_reserve', + 'reg_access_vec_t_resize', + 'reg_access_vec_t_resize__SWIG_0', + 'reg_access_vec_t_resize__SWIG_1', + 'reg_access_vec_t_size', + 'reg_access_vec_t_swap', + 'reg_access_vec_t_truncate', 'reg_data_type', 'reg_delete', 'reg_delete_subkey', @@ -8920,6 +10018,7 @@ 'regarg_t_name_set', 'regarg_t_reg_get', 'regarg_t_reg_set', + 'regarg_t_swap', 'regarg_t_type_get', 'regarg_t_type_set', 'reginfovec_t___eq__', @@ -8965,6 +10064,7 @@ 'register_action', 'register_addon', 'register_and_attach_to_menu', + 'register_cfgopts', 'register_custom_data_format', 'register_custom_data_type', 'register_info_t_bit_strings_get', @@ -9043,15 +10143,11 @@ 'regval_t_set_int', 'regval_t_set_unavailable', 'regval_t_swap', - 'regvar_array___getitem__', - 'regvar_array___len__', - 'regvar_array___setitem__', - 'regvar_array_count_get', - 'regvar_array_data_get', 'regvar_t_canon_get', 'regvar_t_canon_set', 'regvar_t_cmt_get', 'regvar_t_cmt_set', + 'regvar_t_swap', 'regvar_t_user_get', 'regvar_t_user_set', 'reload_file', @@ -9067,6 +10163,7 @@ 'rename_bptgrp', 'rename_encoding', 'rename_entry', + 'rename_lvar', 'rename_regvar', 'renderer_info_pos_t___eq__', 'renderer_info_pos_t___ne__', @@ -9078,7 +10175,6 @@ 'renderer_info_pos_t_node_set', 'renderer_info_t___eq__', 'renderer_info_t___ne__', - 'renderer_info_t_clear', 'renderer_info_t_gli_get', 'renderer_info_t_gli_set', 'renderer_info_t_pos_get', @@ -9147,6 +10243,7 @@ 'restore_user_defined_calls', 'restore_user_iflags', 'restore_user_labels', + 'restore_user_labels2', 'restore_user_lvar_settings', 'restore_user_numforms', 'restore_user_unions', @@ -9183,6 +10280,7 @@ 'save_user_defined_calls', 'save_user_iflags', 'save_user_labels', + 'save_user_labels2', 'save_user_lvar_settings', 'save_user_numforms', 'save_user_unions', @@ -9248,6 +10346,85 @@ 'screen_graph_selection_t_points_count', 'screen_graph_selection_t_sub', 'search_down', + 'section_lines_refs_t___eq__', + 'section_lines_refs_t___getitem__', + 'section_lines_refs_t___len__', + 'section_lines_refs_t___ne__', + 'section_lines_refs_t___setitem__', + 'section_lines_refs_t__del', + 'section_lines_refs_t_add_unique', + 'section_lines_refs_t_at', + 'section_lines_refs_t_begin', + 'section_lines_refs_t_begin__SWIG_0', + 'section_lines_refs_t_begin__SWIG_1', + 'section_lines_refs_t_capacity', + 'section_lines_refs_t_clear', + 'section_lines_refs_t_empty', + 'section_lines_refs_t_end', + 'section_lines_refs_t_end__SWIG_0', + 'section_lines_refs_t_end__SWIG_1', + 'section_lines_refs_t_erase', + 'section_lines_refs_t_erase__SWIG_0', + 'section_lines_refs_t_erase__SWIG_1', + 'section_lines_refs_t_extract', + 'section_lines_refs_t_find', + 'section_lines_refs_t_find__SWIG_0', + 'section_lines_refs_t_find__SWIG_1', + 'section_lines_refs_t_has', + 'section_lines_refs_t_inject', + 'section_lines_refs_t_insert', + 'section_lines_refs_t_pop_back', + 'section_lines_refs_t_push_back', + 'section_lines_refs_t_push_back__SWIG_0', + 'section_lines_refs_t_push_back__SWIG_1', + 'section_lines_refs_t_qclear', + 'section_lines_refs_t_reserve', + 'section_lines_refs_t_resize', + 'section_lines_refs_t_resize__SWIG_0', + 'section_lines_refs_t_resize__SWIG_1', + 'section_lines_refs_t_size', + 'section_lines_refs_t_swap', + 'section_lines_refs_t_truncate', + 'sections_lines_refs_t___eq__', + 'sections_lines_refs_t___getitem__', + 'sections_lines_refs_t___len__', + 'sections_lines_refs_t___ne__', + 'sections_lines_refs_t___setitem__', + 'sections_lines_refs_t__del', + 'sections_lines_refs_t_add_unique', + 'sections_lines_refs_t_at', + 'sections_lines_refs_t_begin', + 'sections_lines_refs_t_begin__SWIG_0', + 'sections_lines_refs_t_begin__SWIG_1', + 'sections_lines_refs_t_capacity', + 'sections_lines_refs_t_clear', + 'sections_lines_refs_t_empty', + 'sections_lines_refs_t_end', + 'sections_lines_refs_t_end__SWIG_0', + 'sections_lines_refs_t_end__SWIG_1', + 'sections_lines_refs_t_erase', + 'sections_lines_refs_t_erase__SWIG_0', + 'sections_lines_refs_t_erase__SWIG_1', + 'sections_lines_refs_t_extract', + 'sections_lines_refs_t_find', + 'sections_lines_refs_t_find__SWIG_0', + 'sections_lines_refs_t_find__SWIG_1', + 'sections_lines_refs_t_grow', + 'sections_lines_refs_t_has', + 'sections_lines_refs_t_inject', + 'sections_lines_refs_t_insert', + 'sections_lines_refs_t_pop_back', + 'sections_lines_refs_t_push_back', + 'sections_lines_refs_t_push_back__SWIG_0', + 'sections_lines_refs_t_push_back__SWIG_1', + 'sections_lines_refs_t_qclear', + 'sections_lines_refs_t_reserve', + 'sections_lines_refs_t_resize', + 'sections_lines_refs_t_resize__SWIG_0', + 'sections_lines_refs_t_resize__SWIG_1', + 'sections_lines_refs_t_size', + 'sections_lines_refs_t_swap', + 'sections_lines_refs_t_truncate', 'seg_flag', 'segm_adjust_diff', 'segm_adjust_ea', @@ -9300,6 +10477,13 @@ 'segm_move_info_vec_t_swap', 'segm_move_info_vec_t_truncate', 'segm_move_infos_t_find', + 'segment_defsr_array___getitem__', + 'segment_defsr_array___len__', + 'segment_defsr_array___setitem__', + 'segment_defsr_array__get_bytes', + 'segment_defsr_array__set_bytes', + 'segment_defsr_array_data_get', + 'segment_t___getDefsr', 'segment_t_abits', 'segment_t_abytes', 'segment_t_align_get', @@ -9319,6 +10503,9 @@ 'segment_t_end_ea_set', 'segment_t_flags_get', 'segment_t_flags_set', + 'segment_t_is_16bit', + 'segment_t_is_32bit', + 'segment_t_is_64bit', 'segment_t_is_header_segm', 'segment_t_is_hidden_segtype', 'segment_t_is_loader_segm', @@ -9346,8 +10533,6 @@ 'segment_t_type_get', 'segment_t_type_set', 'segment_t_update', - 'segment_t_use32', - 'segment_t_use64', 'segtype', 'seh_t_clear', 'seh_t_filter_get', @@ -9364,6 +10549,8 @@ 'sel_pointer_cast', 'sel_pointer_frompointer', 'sel_pointer_value', + 'select_parser_by_name', + 'select_parser_by_srclang', 'select_thread', 'select_udt_by_offset', 'selection_item_t___eq__', @@ -9398,7 +10585,6 @@ 'set_asm_inc_file', 'set_auto_state', 'set_bblk_trace_options', - 'set_bits', 'set_bmask_cmt', 'set_bmask_name', 'set_bpt_group', @@ -9422,6 +10608,7 @@ 'set_cp_validity', 'set_custom_data_type_ids', 'set_custom_viewer_qt_aware', + 'set_data_guessed_by_hexrays', 'set_database_flag', 'set_debug_event_code', 'set_debug_name', @@ -9452,6 +10639,7 @@ 'set_frame_size', 'set_func_cmt', 'set_func_end', + 'set_func_guessed_by_hexrays', 'set_func_name_if_jumpfunc', 'set_func_start', 'set_func_trace_options', @@ -9464,15 +10652,19 @@ 'set_header_path', 'set_highlight', 'set_highlight_trace_options', + 'set_ida_notepad_text', 'set_ida_state', 'set_idcv_attr', 'set_idcv_slice', 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', + 'set_loader_format_name', 'set_lzero', 'set_lzero0', 'set_lzero1', @@ -9494,6 +10686,7 @@ 'set_op_type', 'set_opinfo', 'set_outfile_encoding_idx', + 'set_parser_argv', 'set_path', 'set_process_options', 'set_process_state', @@ -9504,6 +10697,7 @@ 'set_reg_val', 'set_reg_val__SWIG_0', 'set_reg_val__SWIG_1', + 'set_registry_root', 'set_regvar_cmt', 'set_remote_debugger', 'set_resume_mode', @@ -9520,8 +10714,11 @@ 'set_segment_translations', 'set_selector', 'set_source_linnum', + 'set_srcdbg_paths', + 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -9540,15 +10737,19 @@ 'set_tinfo_attrs', 'set_tinfo_property', 'set_trace_base_address', + 'set_trace_dynamic_register_set', 'set_trace_file_desc', 'set_trace_platform', 'set_trace_size', 'set_type', 'set_type_alias', + 'set_type_determined_by_hexrays', + 'set_type_guessed_by_ida', 'set_usemodsp', 'set_user_defined_prefix', 'set_usersp', 'set_userti', + 'set_vftable_ea', 'set_view_renderer_type', 'set_viewer_graph', 'set_visible_func', @@ -9710,11 +10911,14 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9769,6 +10973,8 @@ 'strpath_ids_array___getitem__', 'strpath_ids_array___len__', 'strpath_ids_array___setitem__', + 'strpath_ids_array__get_bytes', + 'strpath_ids_array__set_bytes', 'strpath_ids_array_data_get', 'strpath_t___getIds', 'strpath_t_delta_get', @@ -9778,20 +10984,27 @@ 'strpath_t_len_get', 'strpath_t_len_set', 'stru_flag', + 'struc_t___get_members__', 'struc_t_age_get', 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', - 'struc_t_get_member', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -9802,6 +11015,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -9845,7 +11059,6 @@ 'strwinsetup_t_display_only_existing_strings_set', 'strwinsetup_t_ignore_heads_get', 'strwinsetup_t_ignore_heads_set', - 'strwinsetup_t_is_initialized', 'strwinsetup_t_minlen_get', 'strwinsetup_t_minlen_set', 'strwinsetup_t_only_7bit_get', @@ -9859,6 +11072,7 @@ 'swap_idcvs', 'swap_mcode_relation', 'swapped_relation', + 'switch_dbctx', 'switch_info_t__from_ptrval__', 'switch_info_t__get_values_lowcase', 'switch_info_t__set_values_lowcase', @@ -9890,10 +11104,13 @@ 'switch_info_t_is_nolowcase', 'switch_info_t_is_sparse', 'switch_info_t_is_subtract', + 'switch_info_t_is_user_defined', 'switch_info_t_jcases_get', 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -9911,13 +11128,53 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', + 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', 'sync_source_t_get_register', 'sync_source_t_get_widget', 'sync_source_t_is_register', 'sync_source_t_is_widget', + 'sync_source_vec_t___eq__', + 'sync_source_vec_t___getitem__', + 'sync_source_vec_t___len__', + 'sync_source_vec_t___ne__', + 'sync_source_vec_t___setitem__', + 'sync_source_vec_t__del', + 'sync_source_vec_t_add_unique', + 'sync_source_vec_t_at', + 'sync_source_vec_t_begin', + 'sync_source_vec_t_begin__SWIG_0', + 'sync_source_vec_t_begin__SWIG_1', + 'sync_source_vec_t_capacity', + 'sync_source_vec_t_clear', + 'sync_source_vec_t_empty', + 'sync_source_vec_t_end', + 'sync_source_vec_t_end__SWIG_0', + 'sync_source_vec_t_end__SWIG_1', + 'sync_source_vec_t_erase', + 'sync_source_vec_t_erase__SWIG_0', + 'sync_source_vec_t_erase__SWIG_1', + 'sync_source_vec_t_extract', + 'sync_source_vec_t_find', + 'sync_source_vec_t_find__SWIG_0', + 'sync_source_vec_t_find__SWIG_1', + 'sync_source_vec_t_has', + 'sync_source_vec_t_inject', + 'sync_source_vec_t_insert', + 'sync_source_vec_t_pop_back', + 'sync_source_vec_t_push_back', + 'sync_source_vec_t_qclear', + 'sync_source_vec_t_reserve', + 'sync_source_vec_t_size', + 'sync_source_vec_t_swap', + 'sync_source_vec_t_truncate', 'sync_sources', + 'synced_group_t_has', + 'synced_group_t_has_register', + 'synced_group_t_has_widget', 'tag_addr', 'tag_advance', 'tag_remove', @@ -10007,6 +11264,38 @@ 'tevinforeg_vec_t_swap', 'tevinforeg_vec_t_truncate', 'text_sink_t__print', + 'text_t___getitem__', + 'text_t___len__', + 'text_t___setitem__', + 'text_t_at', + 'text_t_begin', + 'text_t_begin__SWIG_0', + 'text_t_begin__SWIG_1', + 'text_t_capacity', + 'text_t_clear', + 'text_t_empty', + 'text_t_end', + 'text_t_end__SWIG_0', + 'text_t_end__SWIG_1', + 'text_t_erase', + 'text_t_erase__SWIG_0', + 'text_t_erase__SWIG_1', + 'text_t_extract', + 'text_t_grow', + 'text_t_inject', + 'text_t_insert', + 'text_t_pop_back', + 'text_t_push_back', + 'text_t_push_back__SWIG_0', + 'text_t_push_back__SWIG_1', + 'text_t_qclear', + 'text_t_reserve', + 'text_t_resize', + 'text_t_resize__SWIG_0', + 'text_t_resize__SWIG_1', + 'text_t_size', + 'text_t_swap', + 'text_t_truncate', 'textctrl_info_t_assign', 'textctrl_info_t_create', 'textctrl_info_t_destroy', @@ -10112,6 +11401,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -10244,6 +11534,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -10323,8 +11614,16 @@ 'tryblks_t_size', 'tryblks_t_swap', 'tryblks_t_truncate', - 'twinpos_t___eq__', - 'twinpos_t___ne__', + 'twinline_t_at_get', + 'twinline_t_at_set', + 'twinline_t_bg_color_get', + 'twinline_t_bg_color_set', + 'twinline_t_is_default_get', + 'twinline_t_is_default_set', + 'twinline_t_line_get', + 'twinline_t_line_set', + 'twinline_t_prefix_color_get', + 'twinline_t_prefix_color_set', 'twinpos_t_at_get', 'twinpos_t_at_set', 'twinpos_t_x_get', @@ -10385,6 +11684,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -10395,8 +11698,12 @@ 'uchar_array_cast', 'uchar_array_frompointer', 'udc_filter_t_apply', + 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', + 'udc_filter_t_install', 'udc_filter_t_match', + 'udc_filter_t_remove', 'udcall_map_begin', 'udcall_map_clear', 'udcall_map_end', @@ -10421,6 +11728,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -10430,6 +11738,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -10443,6 +11752,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -10452,6 +11762,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -10475,6 +11786,7 @@ 'udt_type_data_t_pack_set', 'udt_type_data_t_sda_get', 'udt_type_data_t_sda_set', + 'udt_type_data_t_set_vftable', 'udt_type_data_t_swap', 'udt_type_data_t_taudt_bits_get', 'udt_type_data_t_taudt_bits_set', @@ -10482,46 +11794,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', @@ -10571,6 +11883,45 @@ 'ui_stroff_ops_t_size', 'ui_stroff_ops_t_swap', 'ui_stroff_ops_t_truncate', + 'uint64vec_t___eq__', + 'uint64vec_t___getitem__', + 'uint64vec_t___len__', + 'uint64vec_t___ne__', + 'uint64vec_t___setitem__', + 'uint64vec_t__del', + 'uint64vec_t_add_unique', + 'uint64vec_t_at', + 'uint64vec_t_begin', + 'uint64vec_t_begin__SWIG_0', + 'uint64vec_t_begin__SWIG_1', + 'uint64vec_t_capacity', + 'uint64vec_t_clear', + 'uint64vec_t_empty', + 'uint64vec_t_end', + 'uint64vec_t_end__SWIG_0', + 'uint64vec_t_end__SWIG_1', + 'uint64vec_t_erase', + 'uint64vec_t_erase__SWIG_0', + 'uint64vec_t_erase__SWIG_1', + 'uint64vec_t_extract', + 'uint64vec_t_find', + 'uint64vec_t_find__SWIG_0', + 'uint64vec_t_find__SWIG_1', + 'uint64vec_t_has', + 'uint64vec_t_inject', + 'uint64vec_t_insert', + 'uint64vec_t_pop_back', + 'uint64vec_t_push_back', + 'uint64vec_t_push_back__SWIG_0', + 'uint64vec_t_push_back__SWIG_1', + 'uint64vec_t_qclear', + 'uint64vec_t_reserve', + 'uint64vec_t_resize', + 'uint64vec_t_resize__SWIG_0', + 'uint64vec_t_resize__SWIG_1', + 'uint64vec_t_size', + 'uint64vec_t_swap', + 'uint64vec_t_truncate', 'uintvec_t___eq__', 'uintvec_t___getitem__', 'uintvec_t___len__', @@ -10610,45 +11961,6 @@ 'uintvec_t_size', 'uintvec_t_swap', 'uintvec_t_truncate', - 'ulonglongvec_t___eq__', - 'ulonglongvec_t___getitem__', - 'ulonglongvec_t___len__', - 'ulonglongvec_t___ne__', - 'ulonglongvec_t___setitem__', - 'ulonglongvec_t__del', - 'ulonglongvec_t_add_unique', - 'ulonglongvec_t_at', - 'ulonglongvec_t_begin', - 'ulonglongvec_t_begin__SWIG_0', - 'ulonglongvec_t_begin__SWIG_1', - 'ulonglongvec_t_capacity', - 'ulonglongvec_t_clear', - 'ulonglongvec_t_empty', - 'ulonglongvec_t_end', - 'ulonglongvec_t_end__SWIG_0', - 'ulonglongvec_t_end__SWIG_1', - 'ulonglongvec_t_erase', - 'ulonglongvec_t_erase__SWIG_0', - 'ulonglongvec_t_erase__SWIG_1', - 'ulonglongvec_t_extract', - 'ulonglongvec_t_find', - 'ulonglongvec_t_find__SWIG_0', - 'ulonglongvec_t_find__SWIG_1', - 'ulonglongvec_t_has', - 'ulonglongvec_t_inject', - 'ulonglongvec_t_insert', - 'ulonglongvec_t_pop_back', - 'ulonglongvec_t_push_back', - 'ulonglongvec_t_push_back__SWIG_0', - 'ulonglongvec_t_push_back__SWIG_1', - 'ulonglongvec_t_qclear', - 'ulonglongvec_t_reserve', - 'ulonglongvec_t_resize', - 'ulonglongvec_t_resize__SWIG_0', - 'ulonglongvec_t_resize__SWIG_1', - 'ulonglongvec_t_size', - 'ulonglongvec_t_swap', - 'ulonglongvec_t_truncate', 'unhide_border', 'unhide_item', 'unmark_selection', @@ -10660,6 +11972,7 @@ 'unregister_custom_data_format', 'unregister_custom_data_type', 'unregister_timer', + 'upd_abits', 'update_action_checkable', 'update_action_checked', 'update_action_icon', @@ -10674,6 +11987,7 @@ 'update_func', 'update_hidden_range', 'update_segm', + 'use_golang_cc', 'use_mapping', 'user_cancelled', 'user_cmts_begin', @@ -10695,6 +12009,7 @@ 'user_cmts_size', 'user_cmts_t_at', 'user_cmts_t_size', + 'user_defined_prefix_t_get_user_defined_prefix', 'user_graph_place_t_node_get', 'user_graph_place_t_node_set', 'user_identification_t_email_get', @@ -10814,6 +12129,7 @@ 'user_unions_size', 'user_unions_t_at', 'user_unions_t_size', + 'uses_aflag_modsp', 'uses_modsp', 'uval_array___getitem__', 'uval_array___setitem__', @@ -10836,6 +12152,8 @@ 'uval_ivl_ivlset_t_qclear', 'uval_ivl_ivlset_t_set_all_values', 'uval_ivl_ivlset_t_single_value', + 'uval_ivl_ivlset_t_single_value__SWIG_0', + 'uval_ivl_ivlset_t_single_value__SWIG_1', 'uval_ivl_ivlset_t_swap', 'uval_ivl_t_end', 'uval_ivl_t_last', @@ -10932,6 +12250,7 @@ 'var_ref_t___lt__', 'var_ref_t___ne__', 'var_ref_t_compare', + 'var_ref_t_getv', 'var_ref_t_idx_get', 'var_ref_t_idx_set', 'var_ref_t_mba_get', @@ -11139,7 +12458,12 @@ 'xrefblk_t_user_set', 'xrefchar', 'xreflist_entry_t___eq__', + 'xreflist_entry_t___ge__', + 'xreflist_entry_t___gt__', + 'xreflist_entry_t___le__', + 'xreflist_entry_t___lt__', 'xreflist_entry_t___ne__', + 'xreflist_entry_t_compare', 'xreflist_entry_t_ea_get', 'xreflist_entry_t_ea_set', 'xreflist_entry_t_opnum_get', diff --git a/api_contents2.txt b/api_contents_pro3.txt similarity index 84% rename from api_contents2.txt rename to api_contents_pro3.txt index 2bc759f..6247030 100644 --- a/api_contents2.txt +++ b/api_contents_pro3.txt @@ -22,6 +22,7 @@ 'DBG_Hooks_dbg_trace', 'DBG_Hooks_hook', 'DBG_Hooks_unhook', + 'Hexrays_Hooks_build_callinfo', 'Hexrays_Hooks_close_pseudocode', 'Hexrays_Hooks_cmt_changed', 'Hexrays_Hooks_combine', @@ -55,6 +56,7 @@ 'Hexrays_Hooks_switch_pseudocode', 'Hexrays_Hooks_text_ready', 'Hexrays_Hooks_unhook', + 'IDB_Hooks_adding_segm', 'IDB_Hooks_allsegs_moved', 'IDB_Hooks_auto_empty', 'IDB_Hooks_auto_empty_finally', @@ -88,19 +90,30 @@ 'IDB_Hooks_deleting_tryblks', 'IDB_Hooks_destroyed_items', 'IDB_Hooks_determined_main', + 'IDB_Hooks_dirtree_link', + 'IDB_Hooks_dirtree_mkdir', + 'IDB_Hooks_dirtree_move', + 'IDB_Hooks_dirtree_rank', + 'IDB_Hooks_dirtree_rmdir', + 'IDB_Hooks_dirtree_rminode', + 'IDB_Hooks_dirtree_segm_moved', 'IDB_Hooks_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', 'IDB_Hooks_flow_chart_created', 'IDB_Hooks_frame_deleted', 'IDB_Hooks_func_added', + 'IDB_Hooks_func_deleted', 'IDB_Hooks_func_noret_changed', 'IDB_Hooks_func_tail_appended', 'IDB_Hooks_func_tail_deleted', @@ -158,7 +171,9 @@ 'IDP_Hooks_ev_adjust_refinfo', 'IDP_Hooks_ev_ana_insn', 'IDP_Hooks_ev_analyze_prolog', + 'IDP_Hooks_ev_arch_changed', 'IDP_Hooks_ev_arg_addrs_ready', + 'IDP_Hooks_ev_asm_installed', 'IDP_Hooks_ev_assemble', 'IDP_Hooks_ev_auto_queue_empty', 'IDP_Hooks_ev_calc_arglocs', @@ -178,6 +193,7 @@ 'IDP_Hooks_ev_coagulate_dref', 'IDP_Hooks_ev_create_flat_group', 'IDP_Hooks_ev_create_func_frame', + 'IDP_Hooks_ev_create_merge_handlers', 'IDP_Hooks_ev_create_switch_xrefs', 'IDP_Hooks_ev_creating_segm', 'IDP_Hooks_ev_decorate_name', @@ -208,10 +224,12 @@ 'IDP_Hooks_ev_get_frame_retsize', 'IDP_Hooks_ev_get_macro_insn_head', 'IDP_Hooks_ev_get_operand_string', + 'IDP_Hooks_ev_get_procmod', + 'IDP_Hooks_ev_get_reg_accesses', 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -221,6 +239,7 @@ 'IDP_Hooks_ev_is_basic_block_end', 'IDP_Hooks_ev_is_call_insn', 'IDP_Hooks_ev_is_cond_insn', + 'IDP_Hooks_ev_is_control_flow_guard', 'IDP_Hooks_ev_is_far_jump', 'IDP_Hooks_ev_is_indirect_jump', 'IDP_Hooks_ev_is_insn_table_jump', @@ -253,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -260,11 +280,11 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', 'IDP_Hooks_ev_undefine', + 'IDP_Hooks_ev_update_call_stack', 'IDP_Hooks_ev_use_arg_types', 'IDP_Hooks_ev_use_regarg_type', 'IDP_Hooks_ev_use_stkarg_type', @@ -285,17 +305,23 @@ 'TWidget__from_ptrval__', 'UI_Hooks_create_desktop_widget', 'UI_Hooks_current_widget_changed', + 'UI_Hooks_database_closed', 'UI_Hooks_database_inited', 'UI_Hooks_debugger_menu_change', + 'UI_Hooks_desktop_applied', + 'UI_Hooks_destroying_plugmod', + 'UI_Hooks_destroying_procmod', 'UI_Hooks_finish_populating_widget_popup', 'UI_Hooks_get_chooser_item_attrs', 'UI_Hooks_get_custom_viewer_hint', 'UI_Hooks_get_ea_hint', 'UI_Hooks_get_item_hint', + 'UI_Hooks_get_lines_rendering_info', 'UI_Hooks_get_widget_config', 'UI_Hooks_hook', 'UI_Hooks_idcstart', 'UI_Hooks_idcstop', + 'UI_Hooks_initing_database', 'UI_Hooks_plugin_loaded', 'UI_Hooks_plugin_unloading', 'UI_Hooks_populating_widget_popup', @@ -309,7 +335,6 @@ 'UI_Hooks_screen_ea_changed', 'UI_Hooks_set_widget_config', 'UI_Hooks_suspend', - 'UI_Hooks_term', 'UI_Hooks_unhook', 'UI_Hooks_updated_actions', 'UI_Hooks_updating_actions', @@ -336,7 +361,9 @@ '_ask_long__varargs__', '_ask_seg', '_ask_seg__varargs__', - '_kludge_use_TPopupMenu', + '_kludge_force_declare_TPopupMenu', + '_kludge_force_declare_dirspec_t', + '_kludge_force_declare_dirtree_t', '_ll_call_helper', '_ll_call_helper__varargs__', '_ll_create_helper', @@ -346,11 +373,35 @@ '_ll_make_num', '_ll_make_ref', '_ll_new_block', + 'abstract_graph_t_callback_ud_get', + 'abstract_graph_t_callback_ud_set', + 'abstract_graph_t_circle_center_get', + 'abstract_graph_t_circle_center_set', + 'abstract_graph_t_circle_radius_get', + 'abstract_graph_t_circle_radius_set', + 'abstract_graph_t_create_circle_layout', + 'abstract_graph_t_create_tree_layout', + 'abstract_graph_t_current_layout_get', + 'abstract_graph_t_current_layout_set', + 'abstract_graph_t_get_edge', + 'abstract_graph_t_grcall', + 'abstract_graph_t_grcall__varargs__', + 'abstract_graph_t_nrect', + 'abstract_graph_t_rect_edges_made_get', + 'abstract_graph_t_rect_edges_made_set', + 'abstract_graph_t_set_callback', + 'abstract_graph_t_title_get', + 'abstract_graph_t_title_set', 'accepts_small_udts', 'accepts_udts', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', + 'action_ctx_base_cur_sel_t__from_get', + 'action_ctx_base_cur_sel_t__from_set', + 'action_ctx_base_cur_sel_t_reset', + 'action_ctx_base_cur_sel_t_to_get', + 'action_ctx_base_cur_sel_t_to_set', + 'action_ctx_base_source_t_chooser_get', + 'action_ctx_base_source_t_chooser_set', + 'action_ctx_base_source_t_reset', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -358,6 +409,8 @@ 'action_ctx_base_t_cur_ea_get', 'action_ctx_base_t_cur_ea_set', 'action_ctx_base_t_cur_enum_get', + 'action_ctx_base_t_cur_enum_member_get', + 'action_ctx_base_t_cur_enum_member_set', 'action_ctx_base_t_cur_enum_set', 'action_ctx_base_t_cur_fchunk_get', 'action_ctx_base_t_cur_fchunk_set', @@ -367,12 +420,16 @@ 'action_ctx_base_t_cur_func_set', 'action_ctx_base_t_cur_seg_get', 'action_ctx_base_t_cur_seg_set', + 'action_ctx_base_t_cur_sel_get', + 'action_ctx_base_t_cur_sel_set', 'action_ctx_base_t_cur_strmem_get', 'action_ctx_base_t_cur_strmem_set', 'action_ctx_base_t_cur_struc_get', 'action_ctx_base_t_cur_struc_set', 'action_ctx_base_t_cur_value_get', 'action_ctx_base_t_cur_value_set', + 'action_ctx_base_t_dirtree_selection_get', + 'action_ctx_base_t_dirtree_selection_set', 'action_ctx_base_t_focus_get', 'action_ctx_base_t_focus_set', 'action_ctx_base_t_graph_selection_get', @@ -381,6 +438,8 @@ 'action_ctx_base_t_regname_get', 'action_ctx_base_t_regname_set', 'action_ctx_base_t_reset', + 'action_ctx_base_t_source_get', + 'action_ctx_base_t_source_set', 'action_ctx_base_t_widget_get', 'action_ctx_base_t_widget_set', 'action_ctx_base_t_widget_title_get', @@ -506,6 +565,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -520,6 +581,7 @@ 'argloc_t_get_rrel__SWIG_1', 'argloc_t_has_reg', 'argloc_t_has_stkoff', + 'argloc_t_in_stack', 'argloc_t_is_badloc', 'argloc_t_is_custom', 'argloc_t_is_ea', @@ -531,8 +593,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -595,6 +655,12 @@ 'argpartvec_t_size', 'argpartvec_t_swap', 'argpartvec_t_truncate', + 'argtinfo_helper_t_has_delay_slot', + 'argtinfo_helper_t_is_stkarg_load', + 'argtinfo_helper_t_reserved_get', + 'argtinfo_helper_t_reserved_set', + 'argtinfo_helper_t_set_op_tinfo', + 'argtinfo_helper_t_use_arg_tinfos', 'array_of_bitsets___eq__', 'array_of_bitsets___getitem__', 'array_of_bitsets___len__', @@ -804,6 +870,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -862,6 +930,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -873,14 +942,11 @@ 'base2file', 'beep', 'begin_type_updating', - 'bgcolors_t_epilog_color_get', - 'bgcolors_t_epilog_color_set', - 'bgcolors_t_prolog_color_get', - 'bgcolors_t_prolog_color_set', - 'bgcolors_t_switch_color_get', - 'bgcolors_t_switch_color_set', 'bin_flag', 'bin_search', + 'bin_search3', + 'bin_search__SWIG_0', + 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', 'bit_bound_t_nbits_set', 'bit_bound_t_sbits_get', @@ -899,6 +965,30 @@ 'bitfield_type_data_t_swap', 'bitfield_type_data_t_width_get', 'bitfield_type_data_t_width_set', + 'bitrange_t___eq__', + 'bitrange_t___ge__', + 'bitrange_t___gt__', + 'bitrange_t___le__', + 'bitrange_t___lt__', + 'bitrange_t___ne__', + 'bitrange_t___str__', + 'bitrange_t_apply_mask', + 'bitrange_t_bitoff', + 'bitrange_t_bitsize', + 'bitrange_t_bytesize', + 'bitrange_t_compare', + 'bitrange_t_create_union', + 'bitrange_t_empty', + 'bitrange_t_extract', + 'bitrange_t_has_common', + 'bitrange_t_init', + 'bitrange_t_inject', + 'bitrange_t_intersect', + 'bitrange_t_mask64', + 'bitrange_t_reset', + 'bitrange_t_shift_down', + 'bitrange_t_shift_up', + 'bitrange_t_sub', 'bitset_t___eq__', 'bitset_t___ge__', 'bitset_t___gt__', @@ -1005,6 +1095,7 @@ 'bookmarks_t_find_index', 'bookmarks_t_get', 'bookmarks_t_get_desc', + 'bookmarks_t_get_dirtree_id', 'bookmarks_t_mark', 'bookmarks_t_size', 'boolvec_t___eq__', @@ -1091,6 +1182,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1176,6 +1269,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1222,46 +1317,47 @@ 'call_stack_info_t_funcea_set', 'call_stack_info_t_funcok_get', 'call_stack_info_t_funcok_set', - 'call_stack_t___eq__', - 'call_stack_t___getitem__', - 'call_stack_t___len__', - 'call_stack_t___ne__', - 'call_stack_t___setitem__', - 'call_stack_t__del', - 'call_stack_t_add_unique', - 'call_stack_t_at', - 'call_stack_t_begin', - 'call_stack_t_begin__SWIG_0', - 'call_stack_t_begin__SWIG_1', - 'call_stack_t_capacity', - 'call_stack_t_clear', - 'call_stack_t_empty', - 'call_stack_t_end', - 'call_stack_t_end__SWIG_0', - 'call_stack_t_end__SWIG_1', - 'call_stack_t_erase', - 'call_stack_t_erase__SWIG_0', - 'call_stack_t_erase__SWIG_1', - 'call_stack_t_extract', - 'call_stack_t_find', - 'call_stack_t_find__SWIG_0', - 'call_stack_t_find__SWIG_1', - 'call_stack_t_grow', - 'call_stack_t_has', - 'call_stack_t_inject', - 'call_stack_t_insert', - 'call_stack_t_pop_back', - 'call_stack_t_push_back', - 'call_stack_t_push_back__SWIG_0', - 'call_stack_t_push_back__SWIG_1', - 'call_stack_t_qclear', - 'call_stack_t_reserve', - 'call_stack_t_resize', - 'call_stack_t_resize__SWIG_0', - 'call_stack_t_resize__SWIG_1', - 'call_stack_t_size', - 'call_stack_t_swap', - 'call_stack_t_truncate', + 'call_stack_info_vec_t___eq__', + 'call_stack_info_vec_t___getitem__', + 'call_stack_info_vec_t___len__', + 'call_stack_info_vec_t___ne__', + 'call_stack_info_vec_t___setitem__', + 'call_stack_info_vec_t__del', + 'call_stack_info_vec_t_add_unique', + 'call_stack_info_vec_t_at', + 'call_stack_info_vec_t_begin', + 'call_stack_info_vec_t_begin__SWIG_0', + 'call_stack_info_vec_t_begin__SWIG_1', + 'call_stack_info_vec_t_capacity', + 'call_stack_info_vec_t_clear', + 'call_stack_info_vec_t_empty', + 'call_stack_info_vec_t_end', + 'call_stack_info_vec_t_end__SWIG_0', + 'call_stack_info_vec_t_end__SWIG_1', + 'call_stack_info_vec_t_erase', + 'call_stack_info_vec_t_erase__SWIG_0', + 'call_stack_info_vec_t_erase__SWIG_1', + 'call_stack_info_vec_t_extract', + 'call_stack_info_vec_t_find', + 'call_stack_info_vec_t_find__SWIG_0', + 'call_stack_info_vec_t_find__SWIG_1', + 'call_stack_info_vec_t_grow', + 'call_stack_info_vec_t_has', + 'call_stack_info_vec_t_inject', + 'call_stack_info_vec_t_insert', + 'call_stack_info_vec_t_pop_back', + 'call_stack_info_vec_t_push_back', + 'call_stack_info_vec_t_push_back__SWIG_0', + 'call_stack_info_vec_t_push_back__SWIG_1', + 'call_stack_info_vec_t_qclear', + 'call_stack_info_vec_t_reserve', + 'call_stack_info_vec_t_resize', + 'call_stack_info_vec_t_resize__SWIG_0', + 'call_stack_info_vec_t_resize__SWIG_1', + 'call_stack_info_vec_t_size', + 'call_stack_info_vec_t_swap', + 'call_stack_info_vec_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1280,6 +1376,9 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', + 'cancellable_graph_t_cancelled_get', + 'cancellable_graph_t_cancelled_set', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1437,10 +1536,13 @@ 'cdg_insn_iterator_t_has_dslot', 'cdg_insn_iterator_t_is_likely_dslot_get', 'cdg_insn_iterator_t_is_likely_dslot_set', - 'cdg_insn_iterator_t_is_separate_dslot_get', - 'cdg_insn_iterator_t_is_separate_dslot_set', + 'cdg_insn_iterator_t_is_severed_dslot', + 'cdg_insn_iterator_t_mba_get', + 'cdg_insn_iterator_t_mba_set', 'cdg_insn_iterator_t_next', 'cdg_insn_iterator_t_ok', + 'cdg_insn_iterator_t_severed_branch_get', + 'cdg_insn_iterator_t_severed_branch_set', 'cdg_insn_iterator_t_start', 'cdo_t___eq__', 'cdo_t___ge__', @@ -1589,6 +1691,7 @@ 'cfunc_t_has_orphan_cmts', 'cfunc_t_hdrlines_get', 'cfunc_t_hdrlines_set', + 'cfunc_t_locked', 'cfunc_t_maturity_get', 'cfunc_t_maturity_set', 'cfunc_t_mba_get', @@ -1653,6 +1756,7 @@ 'cfuncptr_t_has_orphan_cmts', 'cfuncptr_t_hdrlines_get', 'cfuncptr_t_hdrlines_set', + 'cfuncptr_t_locked', 'cfuncptr_t_maturity_get', 'cfuncptr_t_maturity_set', 'cfuncptr_t_mba_get', @@ -1764,6 +1868,8 @@ 'choose_func', 'choose_get_widget', 'choose_idasgn', + 'choose_ioport_device2', + 'choose_ioport_parser_t_parse', 'choose_local_tinfo', 'choose_local_tinfo_and_delta', 'choose_name', @@ -1776,11 +1882,58 @@ 'choose_til', 'choose_trace_file', 'choose_xref', + 'chooser_base_t_ask_item_attrs', + 'chooser_base_t_can_del', + 'chooser_base_t_can_edit', + 'chooser_base_t_can_filter', + 'chooser_base_t_can_ins', + 'chooser_base_t_can_refresh', + 'chooser_base_t_can_sort', + 'chooser_base_t_columns_get', + 'chooser_base_t_deflt_col_get', + 'chooser_base_t_get_builtin_number', + 'chooser_base_t_get_count', + 'chooser_base_t_get_ea', + 'chooser_base_t_get_quick_filter_initial_mode', + 'chooser_base_t_get_row', + 'chooser_base_t_has_diff_capability', + 'chooser_base_t_has_dirtree', + 'chooser_base_t_header_get', + 'chooser_base_t_height_get', + 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', + 'chooser_base_t_is_force_default', + 'chooser_base_t_is_modal', + 'chooser_base_t_is_multi', + 'chooser_base_t_is_noidb', + 'chooser_base_t_is_quick_filter_visible_initially', + 'chooser_base_t_is_same', + 'chooser_base_t_is_status_bar_hidden', + 'chooser_base_t_popup_allowed', + 'chooser_base_t_popup_names_get', + 'chooser_base_t_should_rename_trigger_edit', + 'chooser_base_t_should_restore_geometry', + 'chooser_base_t_title_get', + 'chooser_base_t_width_get', + 'chooser_base_t_widths_get', + 'chooser_base_t_x0_get', + 'chooser_base_t_x1_get', + 'chooser_base_t_y0_get', + 'chooser_base_t_y1_get', 'chooser_item_attrs_t_color_get', 'chooser_item_attrs_t_color_set', 'chooser_item_attrs_t_flags_get', 'chooser_item_attrs_t_flags_set', 'chooser_item_attrs_t_reset', + 'chooser_stdact_desc_t_icon_get', + 'chooser_stdact_desc_t_icon_set', + 'chooser_stdact_desc_t_label_get', + 'chooser_stdact_desc_t_label_set', + 'chooser_stdact_desc_t_tooltip_get', + 'chooser_stdact_desc_t_tooltip_set', + 'chooser_stdact_desc_t_ucb', + 'chooser_stdact_desc_t_version_get', + 'chooser_stdact_desc_t_version_set', 'chunk_size', 'chunk_start', 'cif_t___eq__', @@ -1796,6 +1949,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -1917,7 +2108,6 @@ 'citem_t_swap', 'cleanup_appcall', 'cleanup_name', - 'clear_bits', 'clear_cached_cfuncs', 'clear_refresh_request', 'clear_requests_queue', @@ -1929,6 +2119,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1989,17 +2180,73 @@ 'codegen_t_ii_set', 'codegen_t_insn_get', 'codegen_t_insn_set', + 'codegen_t_load_effective_address', 'codegen_t_load_operand', 'codegen_t_mb_get', 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', + 'codegen_t_prepare_gen_micro', + 'codegen_t_store_operand', 'collect_stack_trace', 'compact_til', 'compare_tinfo', 'compile_idc_file', 'compile_idc_snippet', 'compile_idc_text', + 'compiled_binpat_t___eq__', + 'compiled_binpat_t___ne__', + 'compiled_binpat_t_all_bytes_defined', + 'compiled_binpat_t_bytes_get', + 'compiled_binpat_t_bytes_set', + 'compiled_binpat_t_encidx_get', + 'compiled_binpat_t_encidx_set', + 'compiled_binpat_t_mask_get', + 'compiled_binpat_t_mask_set', + 'compiled_binpat_t_qclear', + 'compiled_binpat_t_strlits_get', + 'compiled_binpat_t_strlits_set', + 'compiled_binpat_vec_t___eq__', + 'compiled_binpat_vec_t___getitem__', + 'compiled_binpat_vec_t___len__', + 'compiled_binpat_vec_t___ne__', + 'compiled_binpat_vec_t___setitem__', + 'compiled_binpat_vec_t__del', + 'compiled_binpat_vec_t_add_unique', + 'compiled_binpat_vec_t_at', + 'compiled_binpat_vec_t_begin', + 'compiled_binpat_vec_t_begin__SWIG_0', + 'compiled_binpat_vec_t_begin__SWIG_1', + 'compiled_binpat_vec_t_capacity', + 'compiled_binpat_vec_t_clear', + 'compiled_binpat_vec_t_empty', + 'compiled_binpat_vec_t_end', + 'compiled_binpat_vec_t_end__SWIG_0', + 'compiled_binpat_vec_t_end__SWIG_1', + 'compiled_binpat_vec_t_erase', + 'compiled_binpat_vec_t_erase__SWIG_0', + 'compiled_binpat_vec_t_erase__SWIG_1', + 'compiled_binpat_vec_t_extract', + 'compiled_binpat_vec_t_find', + 'compiled_binpat_vec_t_find__SWIG_0', + 'compiled_binpat_vec_t_find__SWIG_1', + 'compiled_binpat_vec_t_grow', + 'compiled_binpat_vec_t_has', + 'compiled_binpat_vec_t_inject', + 'compiled_binpat_vec_t_insert', + 'compiled_binpat_vec_t_pop_back', + 'compiled_binpat_vec_t_push_back', + 'compiled_binpat_vec_t_push_back__SWIG_0', + 'compiled_binpat_vec_t_push_back__SWIG_1', + 'compiled_binpat_vec_t_qclear', + 'compiled_binpat_vec_t_reserve', + 'compiled_binpat_vec_t_resize', + 'compiled_binpat_vec_t_resize__SWIG_0', + 'compiled_binpat_vec_t_resize__SWIG_1', + 'compiled_binpat_vec_t_size', + 'compiled_binpat_vec_t_swap', + 'compiled_binpat_vec_t_truncate', 'compiler_info_t_cm_get', 'compiler_info_t_cm_set', 'compiler_info_t_defalign_get', @@ -2022,6 +2269,7 @@ 'compiler_info_t_size_s_set', 'const_aloc_visitor_t_visit_location', 'construct_macro', + 'construct_macro2', 'contains_fixups', 'continue_process', 'convert_pt_flags_to_hti', @@ -2035,6 +2283,7 @@ 'create_align', 'create_byte', 'create_bytearray_linput', + 'create_cfunc', 'create_code_viewer', 'create_custdata', 'create_data', @@ -2124,11 +2373,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2169,6 +2428,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2196,12 +2456,16 @@ 'custom_data_type_ids_fids_array___getitem__', 'custom_data_type_ids_fids_array___len__', 'custom_data_type_ids_fids_array___setitem__', + 'custom_data_type_ids_fids_array__get_bytes', + 'custom_data_type_ids_fids_array__set_bytes', 'custom_data_type_ids_fids_array_data_get', 'custom_data_type_ids_t___getFids', 'custom_data_type_ids_t_dtid_get', 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', + 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2365,6 +2629,7 @@ 'del_tinfo_attr', 'del_tryblks', 'del_value', + 'del_vftable_ea', 'del_virt_module', 'delay_slot_insn', 'delete_DBG_Hooks', @@ -2378,6 +2643,9 @@ 'delete___qsemaphore_t', 'delete___qthread_t', 'delete___qtimer_t', + 'delete_abstract_graph_t', + 'delete_action_ctx_base_cur_sel_t', + 'delete_action_ctx_base_source_t', 'delete_action_ctx_base_t', 'delete_action_desc_t', 'delete_addon_info_t', @@ -2385,6 +2653,7 @@ 'delete_argloc_t', 'delete_argpart_t', 'delete_argpartvec_t', + 'delete_argtinfo_helper_t', 'delete_array_of_bitsets', 'delete_array_of_ivlsets', 'delete_array_of_rangesets', @@ -2392,9 +2661,9 @@ 'delete_array_type_data_t', 'delete_asm_t', 'delete_auto_display_t', - 'delete_bgcolors_t', 'delete_bit_bound_t', 'delete_bitfield_type_data_t', + 'delete_bitrange_t', 'delete_bitset_t', 'delete_block_chains_iterator_t', 'delete_block_chains_t', @@ -2406,9 +2675,12 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', + 'delete_call_stack_info_vec_t', 'delete_call_stack_t', 'delete_callregs_t', + 'delete_cancellable_graph_t', 'delete_carg_t', 'delete_carglist_t', 'delete_cases_and_targets_t', @@ -2432,8 +2704,12 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', + 'delete_chooser_stdact_desc_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2442,6 +2718,8 @@ 'delete_cloop_t', 'delete_cnumber_t', 'delete_codegen_t', + 'delete_compiled_binpat_t', + 'delete_compiled_binpat_vec_t', 'delete_compiler_info_t', 'delete_const_aloc_visitor_t', 'delete_creturn_t', @@ -2459,8 +2737,23 @@ 'delete_data_type_t', 'delete_debapp_attrs_t', 'delete_debug_event_t', + 'delete_direntry_t', + 'delete_direntry_vec_t', + 'delete_dirspec_t', + 'delete_dirtree_cursor_t', + 'delete_dirtree_cursor_vec_t', + 'delete_dirtree_iterator_t', + 'delete_dirtree_selection_t', + 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', + 'delete_dyn_ea_array', + 'delete_dyn_member_ref_array', + 'delete_dyn_range_array', + 'delete_dyn_regarg_array', + 'delete_dyn_regvar_array', + 'delete_dyn_stkpnt_array', 'delete_ea_array', 'delete_ea_name_t', 'delete_ea_name_vec_t', @@ -2484,10 +2777,12 @@ 'delete_extra_cmt_t', 'delete_extra_cmts', 'delete_extra_cmts_t', + 'delete_file_enumerator_t', 'delete_fixup_data_t', 'delete_fixup_info_t', - 'delete_fnum_array', 'delete_fnumber_t', + 'delete_fpvalue_shorts_array_t', + 'delete_fpvalue_t', 'delete_frame_desc_t', 'delete_frame_mem_t', 'delete_frame_mems_t', @@ -2509,6 +2804,7 @@ 'delete_funcarg_t', 'delete_funcargvec_t', 'delete_gco_info_t', + 'delete_gdl_graph_t', 'delete_generic_linput_t', 'delete_graph_chains_t', 'delete_graph_item_t', @@ -2522,7 +2818,6 @@ 'delete_hexwarns_t', 'delete_hidden_range_t', 'delete_highlighter_cbs_t', - 'delete_history_entries_helper_t', 'delete_history_item_t', 'delete_history_t', 'delete_ida_lowertype_helper_t', @@ -2533,6 +2828,10 @@ 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_input_file_t', 'delete_insn_cmt_t', 'delete_insn_cmts_t', @@ -2541,20 +2840,26 @@ 'delete_insn_site_t', 'delete_insn_t', 'delete_instant_dbgopts_t', + 'delete_int64vec_t', 'delete_int_pointer', 'delete_interval_t', 'delete_intvec_t', + 'delete_ioports_fallback_t', + 'delete_iterator', 'delete_ivl_t', 'delete_ivl_with_name_t', 'delete_ivlset_t', - 'delete_llabel_t', + 'delete_line_rendering_output_entries_refs_t', + 'delete_line_rendering_output_entry_t', + 'delete_linearray_t', + 'delete_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', 'delete_lochist_t', 'delete_lock_func', 'delete_lock_segment', - 'delete_longlongvec_t', 'delete_lowertype_helper_t', 'delete_lumina_client_t', 'delete_lumina_op_res_vec_t', @@ -2567,9 +2872,10 @@ 'delete_lvar_t', 'delete_lvar_uservec_t', 'delete_lvars_t', + 'delete_macro_constructor_t', 'delete_mba_range_iterator_t', 'delete_mba_ranges_t', - 'delete_mbl_array_t', + 'delete_mba_t', 'delete_mblock_t', 'delete_mcallarg_t', 'delete_mcallargs_t', @@ -2602,21 +2908,19 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', + 'delete_octet_generator_t', 'delete_op_parent_info_t', 'delete_op_t', 'delete_operand_locator_t', 'delete_operands_array', - 'delete_operator_info_t', 'delete_opinfo_t', 'delete_oprepr_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_pattern_id_t', - 'delete_pkt_clean_db_t', - 'delete_pkt_debugctl_t', - 'delete_pkt_dump_md_result_t', - 'delete_pkt_dump_md_t', 'delete_pkt_get_pop_result_t', 'delete_pkt_get_pop_t', 'delete_pkt_helo_t', @@ -2643,8 +2947,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2652,13 +2954,15 @@ 'delete_qvector_history_t', 'delete_qvector_lvar_t', 'delete_qvector_snapshotvec_t', - 'delete_range_array', 'delete_range_t', 'delete_rangeset_t', 'delete_rangevec_base_t', 'delete_rangevec_t', 'delete_rect_t', 'delete_refinfo_t', + 'delete_reg_access_t', + 'delete_reg_access_vec_t', + 'delete_reg_accesses_t', 'delete_reg_info_t', 'delete_regarg_t', 'delete_reginfovec_t', @@ -2667,7 +2971,6 @@ 'delete_regobjs_t', 'delete_regobjvec_t', 'delete_regval_t', - 'delete_regvar_array', 'delete_regvar_t', 'delete_renderer_info_pos_t', 'delete_renderer_info_t', @@ -2681,9 +2984,12 @@ 'delete_scif_visitor_t', 'delete_screen_graph_selection_base_t', 'delete_screen_graph_selection_t', + 'delete_section_lines_refs_t', + 'delete_sections_lines_refs_t', 'delete_segm_move_info_t', 'delete_segm_move_info_vec_t', 'delete_segm_move_infos_t', + 'delete_segment_defsr_array', 'delete_segment_t', 'delete_seh_t', 'delete_sel_array', @@ -2700,7 +3006,7 @@ 'delete_skipped_funcs_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2717,12 +3023,15 @@ 'delete_switch_info_t', 'delete_switch_table', 'delete_sync_source_t', + 'delete_sync_source_vec_t', + 'delete_synced_group_t', 'delete_tev_info_reg_t', 'delete_tev_info_t', 'delete_tev_reg_value_t', 'delete_tev_reg_values_t', 'delete_tevinforeg_vec_t', 'delete_text_sink_t', + 'delete_text_t', 'delete_thread_name_t', 'delete_tid_array', 'delete_til_symbol_t', @@ -2734,6 +3043,7 @@ 'delete_try_handler_t', 'delete_tryblk_t', 'delete_tryblks_t', + 'delete_twinline_t', 'delete_twinpos_t', 'delete_type_attr_t', 'delete_type_attrs_t', @@ -2746,15 +3056,17 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', 'delete_ui_stroff_ops_t', + 'delete_uint64vec_t', 'delete_uintvec_t', - 'delete_ulonglongvec_t', 'delete_unreferenced_stkvars', 'delete_user_cmts_iterator_t', 'delete_user_cmts_t', + 'delete_user_defined_prefix_t', 'delete_user_graph_place_t', 'delete_user_identification_t', 'delete_user_iflags_iterator_t', @@ -2790,6 +3102,7 @@ 'delete_xrefblk_t', 'delete_xreflist_entry_t', 'delete_xreflist_t', + 'delinf', 'demangle_name', 'deref_idcv', 'deref_ptr', @@ -2801,6 +3114,161 @@ 'detach_process', 'diff_metadata', 'diff_trace_file', + 'direntry_t___eq__', + 'direntry_t___lt__', + 'direntry_t___ne__', + 'direntry_t_idx_get', + 'direntry_t_idx_set', + 'direntry_t_isdir_get', + 'direntry_t_isdir_set', + 'direntry_t_valid', + 'direntry_vec_t___eq__', + 'direntry_vec_t___getitem__', + 'direntry_vec_t___len__', + 'direntry_vec_t___ne__', + 'direntry_vec_t___setitem__', + 'direntry_vec_t__del', + 'direntry_vec_t_add_unique', + 'direntry_vec_t_at', + 'direntry_vec_t_begin', + 'direntry_vec_t_begin__SWIG_0', + 'direntry_vec_t_begin__SWIG_1', + 'direntry_vec_t_capacity', + 'direntry_vec_t_clear', + 'direntry_vec_t_empty', + 'direntry_vec_t_end', + 'direntry_vec_t_end__SWIG_0', + 'direntry_vec_t_end__SWIG_1', + 'direntry_vec_t_erase', + 'direntry_vec_t_erase__SWIG_0', + 'direntry_vec_t_erase__SWIG_1', + 'direntry_vec_t_extract', + 'direntry_vec_t_find', + 'direntry_vec_t_find__SWIG_0', + 'direntry_vec_t_find__SWIG_1', + 'direntry_vec_t_grow', + 'direntry_vec_t_has', + 'direntry_vec_t_inject', + 'direntry_vec_t_insert', + 'direntry_vec_t_pop_back', + 'direntry_vec_t_push_back', + 'direntry_vec_t_push_back__SWIG_0', + 'direntry_vec_t_push_back__SWIG_1', + 'direntry_vec_t_qclear', + 'direntry_vec_t_reserve', + 'direntry_vec_t_resize', + 'direntry_vec_t_resize__SWIG_0', + 'direntry_vec_t_resize__SWIG_1', + 'direntry_vec_t_size', + 'direntry_vec_t_swap', + 'direntry_vec_t_truncate', + 'dirspec_t_flags_get', + 'dirspec_t_flags_set', + 'dirspec_t_get_attrs', + 'dirspec_t_get_inode', + 'dirspec_t_get_name', + 'dirspec_t_id_get', + 'dirspec_t_id_set', + 'dirspec_t_rename_inode', + 'dirspec_t_unlink_inode', + 'dirtree_cursor_t___eq__', + 'dirtree_cursor_t___ge__', + 'dirtree_cursor_t___gt__', + 'dirtree_cursor_t___le__', + 'dirtree_cursor_t___lt__', + 'dirtree_cursor_t___ne__', + 'dirtree_cursor_t_compare', + 'dirtree_cursor_t_is_root_cursor', + 'dirtree_cursor_t_parent_get', + 'dirtree_cursor_t_parent_set', + 'dirtree_cursor_t_rank_get', + 'dirtree_cursor_t_rank_set', + 'dirtree_cursor_t_root_cursor', + 'dirtree_cursor_t_set_root_cursor', + 'dirtree_cursor_t_valid', + 'dirtree_cursor_vec_t___eq__', + 'dirtree_cursor_vec_t___getitem__', + 'dirtree_cursor_vec_t___len__', + 'dirtree_cursor_vec_t___ne__', + 'dirtree_cursor_vec_t___setitem__', + 'dirtree_cursor_vec_t__del', + 'dirtree_cursor_vec_t_add_unique', + 'dirtree_cursor_vec_t_at', + 'dirtree_cursor_vec_t_begin', + 'dirtree_cursor_vec_t_begin__SWIG_0', + 'dirtree_cursor_vec_t_begin__SWIG_1', + 'dirtree_cursor_vec_t_capacity', + 'dirtree_cursor_vec_t_clear', + 'dirtree_cursor_vec_t_empty', + 'dirtree_cursor_vec_t_end', + 'dirtree_cursor_vec_t_end__SWIG_0', + 'dirtree_cursor_vec_t_end__SWIG_1', + 'dirtree_cursor_vec_t_erase', + 'dirtree_cursor_vec_t_erase__SWIG_0', + 'dirtree_cursor_vec_t_erase__SWIG_1', + 'dirtree_cursor_vec_t_extract', + 'dirtree_cursor_vec_t_find', + 'dirtree_cursor_vec_t_find__SWIG_0', + 'dirtree_cursor_vec_t_find__SWIG_1', + 'dirtree_cursor_vec_t_grow', + 'dirtree_cursor_vec_t_has', + 'dirtree_cursor_vec_t_inject', + 'dirtree_cursor_vec_t_insert', + 'dirtree_cursor_vec_t_pop_back', + 'dirtree_cursor_vec_t_push_back', + 'dirtree_cursor_vec_t_push_back__SWIG_0', + 'dirtree_cursor_vec_t_push_back__SWIG_1', + 'dirtree_cursor_vec_t_qclear', + 'dirtree_cursor_vec_t_reserve', + 'dirtree_cursor_vec_t_resize', + 'dirtree_cursor_vec_t_resize__SWIG_0', + 'dirtree_cursor_vec_t_resize__SWIG_1', + 'dirtree_cursor_vec_t_size', + 'dirtree_cursor_vec_t_swap', + 'dirtree_cursor_vec_t_truncate', + 'dirtree_iterator_t_cursor_get', + 'dirtree_iterator_t_cursor_set', + 'dirtree_iterator_t_pattern_get', + 'dirtree_iterator_t_pattern_set', + 'dirtree_t_change_rank', + 'dirtree_t_chdir', + 'dirtree_t_errstr', + 'dirtree_t_find_entry', + 'dirtree_t_findfirst', + 'dirtree_t_findnext', + 'dirtree_t_get_abspath', + 'dirtree_t_get_abspath__SWIG_0', + 'dirtree_t_get_abspath__SWIG_1', + 'dirtree_t_get_dir_size', + 'dirtree_t_get_entry_attrs', + 'dirtree_t_get_entry_name', + 'dirtree_t_get_id', + 'dirtree_t_get_parent_cursor', + 'dirtree_t_get_rank', + 'dirtree_t_getcwd', + 'dirtree_t_isdir', + 'dirtree_t_isdir__SWIG_0', + 'dirtree_t_isdir__SWIG_1', + 'dirtree_t_isfile', + 'dirtree_t_isfile__SWIG_0', + 'dirtree_t_isfile__SWIG_1', + 'dirtree_t_link', + 'dirtree_t_link__SWIG_0', + 'dirtree_t_link__SWIG_1', + 'dirtree_t_load', + 'dirtree_t_mkdir', + 'dirtree_t_notify_dirtree', + 'dirtree_t_rename', + 'dirtree_t_resolve_cursor', + 'dirtree_t_resolve_path', + 'dirtree_t_rmdir', + 'dirtree_t_save', + 'dirtree_t_set_id', + 'dirtree_t_traverse', + 'dirtree_t_unlink', + 'dirtree_t_unlink__SWIG_0', + 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -2858,24 +3326,33 @@ 'disown_IDP_Hooks', 'disown_UI_Hooks', 'disown_View_Hooks', + 'disown_abstract_graph_t', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', + 'disown_cancellable_graph_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', + 'disown_chooser_stdact_desc_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', + 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_t', 'disown_func_md_diff_handler_t', + 'disown_gdl_graph_t', 'disown_graph_node_visitor_t', 'disown_graph_path_visitor_t', 'disown_graph_visitor_t', 'disown_highlighter_cbs_t', + 'disown_ioports_fallback_t', + 'disown_macro_constructor_t', 'disown_microcode_filter_t', 'disown_minsn_visitor_t', 'disown_mlist_mop_visitor_t', 'disown_mop_visitor_t', - 'disown_mutable_graph_t', 'disown_optblock_t', 'disown_optinsn_t', 'disown_predicate_t', @@ -2885,6 +3362,7 @@ 'disown_tinfo_visitor_t', 'disown_udc_filter_t', 'disown_ui_stroff_applicator_t', + 'disown_user_defined_prefix_t', 'disown_user_lvar_modifier_t', 'disown_vc_printer_t', 'disown_vd_printer_t', @@ -2897,6 +3375,36 @@ 'dummy_ptrtype', 'dump_func_type_data', 'dword_flag', + 'dyn_ea_array___getitem__', + 'dyn_ea_array___len__', + 'dyn_ea_array___setitem__', + 'dyn_ea_array_count_get', + 'dyn_ea_array_data_get', + 'dyn_member_ref_array___getitem__', + 'dyn_member_ref_array___len__', + 'dyn_member_ref_array___setitem__', + 'dyn_member_ref_array_count_get', + 'dyn_member_ref_array_data_get', + 'dyn_range_array___getitem__', + 'dyn_range_array___len__', + 'dyn_range_array___setitem__', + 'dyn_range_array_count_get', + 'dyn_range_array_data_get', + 'dyn_regarg_array___getitem__', + 'dyn_regarg_array___len__', + 'dyn_regarg_array___setitem__', + 'dyn_regarg_array_count_get', + 'dyn_regarg_array_data_get', + 'dyn_regvar_array___getitem__', + 'dyn_regvar_array___len__', + 'dyn_regvar_array___setitem__', + 'dyn_regvar_array_count_get', + 'dyn_regvar_array_data_get', + 'dyn_stkpnt_array___getitem__', + 'dyn_stkpnt_array___len__', + 'dyn_stkpnt_array___setitem__', + 'dyn_stkpnt_array_count_get', + 'dyn_stkpnt_array_data_get', 'ea2node', 'ea2str', 'ea_array___getitem__', @@ -2943,7 +3451,6 @@ 'ea_pointer_cast', 'ea_pointer_frompointer', 'ea_pointer_value', - 'ea_to_ea64', 'ea_viewer_history_push_and_jump', 'eamap_begin', 'eamap_clear', @@ -2964,6 +3471,7 @@ 'eamap_size', 'eamap_t_at', 'eamap_t_size', + 'ecleaz', 'eclose', 'edge_info_t_color_get', 'edge_info_t_color_set', @@ -3010,6 +3518,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -3091,6 +3600,7 @@ 'enum_type_data_t_taenum_bits_get', 'enum_type_data_t_taenum_bits_set', 'enumerate_files', + 'enumerate_files2', 'enumplace_t_bmask_get', 'enumplace_t_bmask_set', 'enumplace_t_idx_get', @@ -3238,6 +3748,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3250,6 +3761,7 @@ 'find_data', 'find_defined', 'find_error', + 'find_free_chunk', 'find_free_selector', 'find_func_bounds', 'find_idc_class', @@ -3259,6 +3771,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3308,13 +3821,8 @@ 'float_flag', 'flt_flag', 'flush_buffers', - 'fnum_array___getitem__', - 'fnum_array___len__', - 'fnum_array___setitem__', - 'fnum_array_data_get', 'fnumber_t___eq__', 'fnumber_t___ge__', - 'fnumber_t___get_fnum', 'fnumber_t___gt__', 'fnumber_t___le__', 'fnumber_t___lt__', @@ -3348,6 +3856,56 @@ 'formchgcbfa_set_field_value', 'formchgcbfa_set_focused_field', 'formchgcbfa_show_field', + 'fpvalue_shorts_array_t___getitem__', + 'fpvalue_shorts_array_t___len__', + 'fpvalue_shorts_array_t___setitem__', + 'fpvalue_shorts_array_t__get_bytes', + 'fpvalue_shorts_array_t__set_bytes', + 'fpvalue_shorts_array_t_data_get', + 'fpvalue_t___add__', + 'fpvalue_t___eq__', + 'fpvalue_t___ge__', + 'fpvalue_t___gt__', + 'fpvalue_t___le__', + 'fpvalue_t___lt__', + 'fpvalue_t___mul__', + 'fpvalue_t___ne__', + 'fpvalue_t___str__', + 'fpvalue_t___sub__', + 'fpvalue_t___truediv__', + 'fpvalue_t__get_10bytes', + 'fpvalue_t__get_bytes', + 'fpvalue_t__get_float', + 'fpvalue_t__get_shorts', + 'fpvalue_t__set_10bytes', + 'fpvalue_t__set_bytes', + 'fpvalue_t__set_float', + 'fpvalue_t_assign', + 'fpvalue_t_clear', + 'fpvalue_t_compare', + 'fpvalue_t_eabs', + 'fpvalue_t_fadd', + 'fpvalue_t_fdiv', + 'fpvalue_t_fmul', + 'fpvalue_t_from_10bytes', + 'fpvalue_t_from_12bytes', + 'fpvalue_t_from_int64', + 'fpvalue_t_from_str', + 'fpvalue_t_from_sval', + 'fpvalue_t_from_uint64', + 'fpvalue_t_fsub', + 'fpvalue_t_get_kind', + 'fpvalue_t_is_negative', + 'fpvalue_t_mul_pow2', + 'fpvalue_t_negate', + 'fpvalue_t_to_10bytes', + 'fpvalue_t_to_12bytes', + 'fpvalue_t_to_int64', + 'fpvalue_t_to_str', + 'fpvalue_t_to_sval', + 'fpvalue_t_to_uint64', + 'fpvalue_t_w_get', + 'fpvalue_t_w_set', 'frame_desc_t_argsize_get', 'frame_desc_t_argsize_set', 'frame_desc_t_frregs_get', @@ -3409,6 +3967,8 @@ 'free_chunk', 'free_custom_icon', 'free_idcv', + 'free_regarg', + 'free_regvar', 'free_til', 'func_contains', 'func_does_return', @@ -3557,10 +4117,6 @@ 'func_info_vec_t_size', 'func_info_vec_t_swap', 'func_info_vec_t_truncate', - 'func_item_iterator_decode_preceding_insn', - 'func_item_iterator_decode_prev_insn', - 'func_item_iterator_next', - 'func_item_iterator_prev', 'func_item_iterator_t___next__', 'func_item_iterator_t_chunk', 'func_item_iterator_t_current', @@ -3581,6 +4137,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_md_diff_handler_t_on_comment_changed', 'func_md_diff_handler_t_on_extra_comment_changed', 'func_md_diff_handler_t_on_frame_member_changed', @@ -3599,6 +4157,8 @@ 'func_parent_iterator_t_reset_fnt', 'func_parent_iterator_t_set', 'func_t___get_points__', + 'func_t___get_referers__', + 'func_t___get_regargs__', 'func_t___get_regvars__', 'func_t___get_tails__', 'func_t__from_ptrval__', @@ -3619,10 +4179,6 @@ 'func_t_frsize_get', 'func_t_frsize_set', 'func_t_is_far', - 'func_t_llabelqty_get', - 'func_t_llabelqty_set', - 'func_t_llabels_get', - 'func_t_llabels_set', 'func_t_need_prolog_analysis', 'func_t_owner_get', 'func_t_owner_set', @@ -3664,10 +4220,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', + 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -3731,6 +4293,7 @@ 'funcargvec_t_truncate', 'gcc_layout', 'gco_info_t_append_to_list', + 'gco_info_t_cvt_to_ivl', 'gco_info_t_flags_get', 'gco_info_t_flags_set', 'gco_info_t_is_def', @@ -3738,8 +4301,34 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', + 'gdl_graph_t_begin', + 'gdl_graph_t_edge', + 'gdl_graph_t_empty', + 'gdl_graph_t_end', + 'gdl_graph_t_entry', + 'gdl_graph_t_exists', + 'gdl_graph_t_exit', + 'gdl_graph_t_front', + 'gdl_graph_t_get_edge_color', + 'gdl_graph_t_get_node_color', + 'gdl_graph_t_get_node_label', + 'gdl_graph_t_nedge', + 'gdl_graph_t_node_qty', + 'gdl_graph_t_npred', + 'gdl_graph_t_nsucc', + 'gdl_graph_t_pred', + 'gdl_graph_t_print_edge', + 'gdl_graph_t_print_graph_attributes', + 'gdl_graph_t_print_node', + 'gdl_graph_t_print_node_attributes', + 'gdl_graph_t_size', + 'gdl_graph_t_succ', 'gen_complex_call_chart', 'gen_decorate_name', 'gen_disasm_text', @@ -3753,6 +4342,7 @@ 'gen_microcode', 'gen_simple_call_chart', 'gen_use_arg_tinfos', + 'gen_use_arg_tinfos2', 'generate_disasm_line', 'generate_disassembly', 'generic_linput_t_blocksize_get', @@ -3783,6 +4373,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -3834,9 +4425,12 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', + 'get_dbctx_id', + 'get_dbctx_qty', 'get_dbg_byte', 'get_dbg_memory_info', 'get_dbg_reg_info', @@ -3859,8 +4453,10 @@ 'get_ea_name', 'get_ea_viewer_history_info', 'get_effective_spd', + 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -3961,6 +4557,7 @@ 'get_hidden_range_num', 'get_hidden_range_qty', 'get_highlight', + 'get_ida_notepad_text', 'get_ida_subdirs', 'get_idainfo_by_type', 'get_idasgn_desc', @@ -3968,6 +4565,8 @@ 'get_idasgn_qty', 'get_idasgn_title', 'get_idati', + 'get_idb_ctime', + 'get_idb_nopens', 'get_idb_notifier_addr', 'get_idb_notifier_ud_addr', 'get_idc_filename', @@ -3984,6 +4583,9 @@ 'get_import_module_qty', 'get_ind_purged', 'get_inf_structure', + 'get_initial_ida_version', + 'get_initial_idb_version', + 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', 'get_insn_tev_reg_result', @@ -4005,11 +4607,13 @@ 'get_last_serial_enum_member', 'get_last_struc_idx', 'get_linput_type', + 'get_loader_format_name', 'get_local_var', 'get_local_vars', 'get_long_name', 'get_lookback', 'get_lumina_rpc_packet_t_index_from_base', + 'get_mangled_name_type', 'get_manual_insn', 'get_manual_regions', 'get_manual_regions__SWIG_0', @@ -4073,6 +4677,7 @@ 'get_numbered_type', 'get_numbered_type_name', 'get_octet', + 'get_octet2', 'get_offbase', 'get_offset_expr', 'get_offset_expression', @@ -4094,6 +4699,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -4150,6 +4756,7 @@ 'get_segment_translations', 'get_selector_qty', 'get_server_connection', + 'get_server_connection2', 'get_short_name', 'get_signed_mcode', 'get_source_linnum', @@ -4159,11 +4766,14 @@ 'get_spd', 'get_special_folder', 'get_sptr', + 'get_srcdbg_paths', + 'get_srcdbg_undesired_paths', 'get_srcinfo_provider', 'get_sreg', 'get_sreg_range', 'get_sreg_range_num', 'get_sreg_ranges_qty', + 'get_std_dirtree', 'get_step_trace_options', 'get_stkvar', 'get_stock_tinfo', @@ -4172,6 +4782,8 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', + 'get_strid', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -4194,6 +4806,7 @@ 'get_struc_size__SWIG_1', 'get_switch_info', 'get_switch_parent', + 'get_synced_group', 'get_tab_size', 'get_temp_regs', 'get_tev_ea', @@ -4212,6 +4825,7 @@ 'get_tinfo_property', 'get_tinfo_size', 'get_trace_base_address', + 'get_trace_dynamic_register_set', 'get_trace_file_desc', 'get_trace_platform', 'get_tryblks', @@ -4221,7 +4835,10 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', + 'get_vftable_ea', + 'get_vftable_ordinal', 'get_view_renderer_type', 'get_viewer_graph', 'get_viewer_place_type', @@ -4239,6 +4856,7 @@ 'get_zero_ranges', 'getb_reginsn', 'getf_reginsn', + 'getinf_str', 'getn_bpt', 'getn_enum', 'getn_fchunk', @@ -4298,10 +4916,14 @@ 'group_crinfo_t_text_get', 'group_crinfo_t_text_set', 'guess_func_cc', - 'guess_table_address', - 'guess_table_size', 'guess_tinfo', 'handle_debug_event', + 'handle_fixups_in_macro', + 'has_aflag_linnum', + 'has_aflag_lname', + 'has_aflag_ti', + 'has_aflag_ti0', + 'has_aflag_ti1', 'has_any_name', 'has_auto_name', 'has_backup_metadata', @@ -4315,6 +4937,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4405,9 +5028,6 @@ 'highlighter_cbs_t_prev_block_state', 'highlighter_cbs_t_set_block_state', 'highlighter_cbs_t_set_style', - 'history_entries_helper_t_next_entry', - 'history_entries_helper_t_next_entry_index', - 'history_entries_helper_t_res_get', 'history_item_t_ea_get', 'history_item_t_ea_set', 'history_item_t_end_get', @@ -4438,8 +5058,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4449,9 +5069,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -4502,8 +5119,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -4554,7 +5169,6 @@ 'idc_parse_types', 'idc_print_type', 'idc_set_local_type', - 'idc_value_t___get_e', 'idc_value_t__create_empty_string', 'idc_value_t_c_str', 'idc_value_t_clear', @@ -4652,6 +5266,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -4682,6 +5299,7 @@ 'inf_get_af2_low', 'inf_get_af_high', 'inf_get_af_low', + 'inf_get_app_bitness', 'inf_get_appcall_options', 'inf_get_apptype', 'inf_get_asmtype', @@ -4698,8 +5316,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -4759,7 +5377,9 @@ 'inf_hide_libfuncs', 'inf_huge_arg_align', 'inf_inc_database_change_count', - 'inf_is_32bit', + 'inf_is_16bit', + 'inf_is_32bit_exactly', + 'inf_is_32bit_or_higher', 'inf_is_64bit', 'inf_is_auto_enabled', 'inf_is_be', @@ -4786,6 +5406,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -4829,10 +5452,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -4956,7 +5579,6 @@ 'inf_set_strlit_sernum', 'inf_set_strlit_zeroes', 'inf_set_strtype', - 'inf_set_test_mode', 'inf_set_trace_flow', 'inf_set_truncate_on_del', 'inf_set_type_xrefnum', @@ -5000,6 +5622,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'input_file_t_md5_get', 'input_file_t_md5_set', 'input_file_t_path_get', @@ -5094,6 +5746,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -5105,7 +5763,11 @@ 'insn_t_flags_get', 'insn_t_flags_set', 'insn_t_get_canon_feature', + 'insn_t_get_canon_feature__SWIG_0', + 'insn_t_get_canon_feature__SWIG_1', 'insn_t_get_canon_mnem', + 'insn_t_get_canon_mnem__SWIG_0', + 'insn_t_get_canon_mnem__SWIG_1', 'insn_t_get_next_byte', 'insn_t_get_next_dword', 'insn_t_get_next_qword', @@ -5116,6 +5778,8 @@ 'insn_t_ip_set', 'insn_t_is_64bit', 'insn_t_is_canon_insn', + 'insn_t_is_canon_insn__SWIG_0', + 'insn_t_is_canon_insn__SWIG_1', 'insn_t_is_macro', 'insn_t_itype_get', 'insn_t_itype_set', @@ -5127,6 +5791,7 @@ 'insn_t_size_set', 'install_command_interpreter', 'install_microcode_filter', + 'install_user_defined_prefix', 'instant_dbgopts_t__pass_get', 'instant_dbgopts_t__pass_set', 'instant_dbgopts_t_attach_get', @@ -5143,6 +5808,45 @@ 'instant_dbgopts_t_pid_set', 'instant_dbgopts_t_port_get', 'instant_dbgopts_t_port_set', + 'int64vec_t___eq__', + 'int64vec_t___getitem__', + 'int64vec_t___len__', + 'int64vec_t___ne__', + 'int64vec_t___setitem__', + 'int64vec_t__del', + 'int64vec_t_add_unique', + 'int64vec_t_at', + 'int64vec_t_begin', + 'int64vec_t_begin__SWIG_0', + 'int64vec_t_begin__SWIG_1', + 'int64vec_t_capacity', + 'int64vec_t_clear', + 'int64vec_t_empty', + 'int64vec_t_end', + 'int64vec_t_end__SWIG_0', + 'int64vec_t_end__SWIG_1', + 'int64vec_t_erase', + 'int64vec_t_erase__SWIG_0', + 'int64vec_t_erase__SWIG_1', + 'int64vec_t_extract', + 'int64vec_t_find', + 'int64vec_t_find__SWIG_0', + 'int64vec_t_find__SWIG_1', + 'int64vec_t_has', + 'int64vec_t_inject', + 'int64vec_t_insert', + 'int64vec_t_pop_back', + 'int64vec_t_push_back', + 'int64vec_t_push_back__SWIG_0', + 'int64vec_t_push_back__SWIG_1', + 'int64vec_t_qclear', + 'int64vec_t_reserve', + 'int64vec_t_resize', + 'int64vec_t_resize__SWIG_0', + 'int64vec_t_resize__SWIG_1', + 'int64vec_t_size', + 'int64vec_t_swap', + 'int64vec_t_truncate', 'int_pointer_assign', 'int_pointer_cast', 'int_pointer_frompointer', @@ -5204,12 +5908,42 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', 'is__invsign1', 'is_action_enabled', 'is_additive', + 'is_aflag__bnot0', + 'is_aflag__bnot1', + 'is_aflag__invsign0', + 'is_aflag__invsign1', + 'is_aflag_align_flow', + 'is_aflag_colored_item', + 'is_aflag_data_guessed_by_hexrays', + 'is_aflag_fixed_spd', + 'is_aflag_func_guessed_by_hexrays', + 'is_aflag_hidden_border', + 'is_aflag_hidden_item', + 'is_aflag_libitem', + 'is_aflag_lzero0', + 'is_aflag_lzero1', + 'is_aflag_manual_insn', + 'is_aflag_noret', + 'is_aflag_notcode', + 'is_aflag_notproc', + 'is_aflag_public_name', + 'is_aflag_retfp', + 'is_aflag_terse_struc', + 'is_aflag_tilcmt', + 'is_aflag_type_determined_by_hexrays', + 'is_aflag_type_guessed_by_hexrays', + 'is_aflag_type_guessed_by_ida', + 'is_aflag_usersp', + 'is_aflag_userti', + 'is_aflag_weak_name', + 'is_aflag_zstroff', 'is_align', 'is_align_flow', 'is_align_insn', @@ -5246,6 +5980,7 @@ 'is_custom', 'is_data', 'is_data_far', + 'is_data_guessed_by_hexrays', 'is_database_flag', 'is_debugger_busy', 'is_debugger_memory', @@ -5256,6 +5991,7 @@ 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -5276,6 +6012,7 @@ 'is_forced_operand', 'is_func', 'is_func_entry', + 'is_func_guessed_by_hexrays', 'is_func_locked', 'is_func_tail', 'is_func_trace_enabled', @@ -5284,10 +6021,12 @@ 'is_gcc32', 'is_gcc64', 'is_ghost_enum', + 'is_golang_cc', 'is_head', 'is_hidden_border', 'is_hidden_item', 'is_idaq', + 'is_idaview', 'is_ident', 'is_ident_cp', 'is_in_nlist', @@ -5404,6 +6143,7 @@ 'is_type_complex', 'is_type_const', 'is_type_correct', + 'is_type_determined_by_hexrays', 'is_type_double', 'is_type_enum', 'is_type_ext_arithmetic', @@ -5411,6 +6151,8 @@ 'is_type_float', 'is_type_floating', 'is_type_func', + 'is_type_guessed_by_hexrays', + 'is_type_guessed_by_ida', 'is_type_int', 'is_type_int128', 'is_type_int16', @@ -5447,6 +6189,7 @@ 'is_usersp', 'is_userti', 'is_valid_cp', + 'is_valid_dstate', 'is_valid_trace_file', 'is_valid_typename', 'is_vararg_cc', @@ -5462,6 +6205,9 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5513,17 +6259,95 @@ 'jumpto', 'jumpto__SWIG_0', 'jumpto__SWIG_1', + 'l_compare2', 'last_idcv_attr', 'leading_zero_important', 'lexcompare', 'lexcompare_tinfo', + 'line_rendering_output_entries_refs_t___eq__', + 'line_rendering_output_entries_refs_t___getitem__', + 'line_rendering_output_entries_refs_t___len__', + 'line_rendering_output_entries_refs_t___ne__', + 'line_rendering_output_entries_refs_t___setitem__', + 'line_rendering_output_entries_refs_t__del', + 'line_rendering_output_entries_refs_t__internal_push_back', + 'line_rendering_output_entries_refs_t_add_unique', + 'line_rendering_output_entries_refs_t_at', + 'line_rendering_output_entries_refs_t_begin', + 'line_rendering_output_entries_refs_t_begin__SWIG_0', + 'line_rendering_output_entries_refs_t_begin__SWIG_1', + 'line_rendering_output_entries_refs_t_capacity', + 'line_rendering_output_entries_refs_t_clear', + 'line_rendering_output_entries_refs_t_empty', + 'line_rendering_output_entries_refs_t_end', + 'line_rendering_output_entries_refs_t_end__SWIG_0', + 'line_rendering_output_entries_refs_t_end__SWIG_1', + 'line_rendering_output_entries_refs_t_erase', + 'line_rendering_output_entries_refs_t_erase__SWIG_0', + 'line_rendering_output_entries_refs_t_erase__SWIG_1', + 'line_rendering_output_entries_refs_t_extract', + 'line_rendering_output_entries_refs_t_find', + 'line_rendering_output_entries_refs_t_find__SWIG_0', + 'line_rendering_output_entries_refs_t_find__SWIG_1', + 'line_rendering_output_entries_refs_t_has', + 'line_rendering_output_entries_refs_t_inject', + 'line_rendering_output_entries_refs_t_insert', + 'line_rendering_output_entries_refs_t_pop_back', + 'line_rendering_output_entries_refs_t_push_back', + 'line_rendering_output_entries_refs_t_push_back__SWIG_0', + 'line_rendering_output_entries_refs_t_push_back__SWIG_1', + 'line_rendering_output_entries_refs_t_qclear', + 'line_rendering_output_entries_refs_t_reserve', + 'line_rendering_output_entries_refs_t_resize', + 'line_rendering_output_entries_refs_t_resize__SWIG_0', + 'line_rendering_output_entries_refs_t_resize__SWIG_1', + 'line_rendering_output_entries_refs_t_size', + 'line_rendering_output_entries_refs_t_swap', + 'line_rendering_output_entries_refs_t_truncate', + 'line_rendering_output_entry_t___eq__', + 'line_rendering_output_entry_t___ne__', + 'line_rendering_output_entry_t_bg_color_get', + 'line_rendering_output_entry_t_bg_color_set', + 'line_rendering_output_entry_t_cpx_get', + 'line_rendering_output_entry_t_cpx_set', + 'line_rendering_output_entry_t_flags_get', + 'line_rendering_output_entry_t_flags_set', + 'line_rendering_output_entry_t_is_bg_color_direct', + 'line_rendering_output_entry_t_is_bg_color_empty', + 'line_rendering_output_entry_t_is_bg_color_key', + 'line_rendering_output_entry_t_line_get', + 'line_rendering_output_entry_t_line_set', + 'line_rendering_output_entry_t_nchars_get', + 'line_rendering_output_entry_t_nchars_set', + 'linearray_t_beginning', + 'linearray_t_down', + 'linearray_t_ending', + 'linearray_t_get_bg_color', + 'linearray_t_get_dlnnum', + 'linearray_t_get_linecnt', + 'linearray_t_get_pfx_color', + 'linearray_t_get_place', + 'linearray_t_set_place', + 'linearray_t_set_userdata', + 'linearray_t_up', + 'linearray_t_userdata', + 'lines_rendering_input_t_cb_get', + 'lines_rendering_input_t_cb_set', + 'lines_rendering_input_t_sections_lines_get', + 'lines_rendering_input_t_sections_lines_set', + 'lines_rendering_input_t_sync_group_get', + 'lines_rendering_input_t_sync_group_set', + 'lines_rendering_output_t___eq__', + 'lines_rendering_output_t___ne__', + 'lines_rendering_output_t_clear', + 'lines_rendering_output_t_entries_get', + 'lines_rendering_output_t_entries_set', + 'lines_rendering_output_t_flags_get', + 'lines_rendering_output_t_flags_set', + 'lines_rendering_output_t_swap', 'list_bptgrps', 'list_bptgrps__SWIG_0', 'list_bptgrps__SWIG_1', - 'llabel_t_ea_get', - 'llabel_t_ea_set', - 'llabel_t_name_get', - 'llabel_t_name_set', 'load_and_run_plugin', 'load_binary_file', 'load_dbg_dbginfo', @@ -5541,7 +6365,7 @@ 'loader_input_t_from_capsule', 'loader_input_t_from_fp', 'loader_input_t_from_linput', - 'loader_input_t_get_char', + 'loader_input_t_get_byte', 'loader_input_t_get_linput', 'loader_input_t_gets', 'loader_input_t_getz', @@ -5558,8 +6382,7 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', + 'locate_lvar', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5594,45 +6417,6 @@ 'lock_segm', 'log2ceil', 'log2floor', - 'longlongvec_t___eq__', - 'longlongvec_t___getitem__', - 'longlongvec_t___len__', - 'longlongvec_t___ne__', - 'longlongvec_t___setitem__', - 'longlongvec_t__del', - 'longlongvec_t_add_unique', - 'longlongvec_t_at', - 'longlongvec_t_begin', - 'longlongvec_t_begin__SWIG_0', - 'longlongvec_t_begin__SWIG_1', - 'longlongvec_t_capacity', - 'longlongvec_t_clear', - 'longlongvec_t_empty', - 'longlongvec_t_end', - 'longlongvec_t_end__SWIG_0', - 'longlongvec_t_end__SWIG_1', - 'longlongvec_t_erase', - 'longlongvec_t_erase__SWIG_0', - 'longlongvec_t_erase__SWIG_1', - 'longlongvec_t_extract', - 'longlongvec_t_find', - 'longlongvec_t_find__SWIG_0', - 'longlongvec_t_find__SWIG_1', - 'longlongvec_t_has', - 'longlongvec_t_inject', - 'longlongvec_t_insert', - 'longlongvec_t_pop_back', - 'longlongvec_t_push_back', - 'longlongvec_t_push_back__SWIG_0', - 'longlongvec_t_push_back__SWIG_1', - 'longlongvec_t_qclear', - 'longlongvec_t_reserve', - 'longlongvec_t_resize', - 'longlongvec_t_resize__SWIG_0', - 'longlongvec_t_resize__SWIG_1', - 'longlongvec_t_size', - 'longlongvec_t_swap', - 'longlongvec_t_truncate', 'lookup_key_code', 'lower_type', 'lowertype_helper_t_func_has_stkframe_hole', @@ -5746,6 +6530,7 @@ 'lvar_saved_info_t_clr_forced_lvar', 'lvar_saved_info_t_clr_nomap_lvar', 'lvar_saved_info_t_clr_noptr_lvar', + 'lvar_saved_info_t_clr_unused_lvar', 'lvar_saved_info_t_cmt_get', 'lvar_saved_info_t_cmt_set', 'lvar_saved_info_t_flags_get', @@ -5755,6 +6540,7 @@ 'lvar_saved_info_t_is_kept', 'lvar_saved_info_t_is_nomap_lvar', 'lvar_saved_info_t_is_noptr_lvar', + 'lvar_saved_info_t_is_unused_lvar', 'lvar_saved_info_t_ll_get', 'lvar_saved_info_t_ll_set', 'lvar_saved_info_t_name_get', @@ -5763,6 +6549,7 @@ 'lvar_saved_info_t_set_keep', 'lvar_saved_info_t_set_nomap_lvar', 'lvar_saved_info_t_set_noptr_lvar', + 'lvar_saved_info_t_set_unused_lvar', 'lvar_saved_info_t_size_get', 'lvar_saved_info_t_size_set', 'lvar_saved_info_t_type_get', @@ -5812,6 +6599,7 @@ 'lvar_t_clear_used', 'lvar_t_clr_arg_var', 'lvar_t_clr_automapped', + 'lvar_t_clr_decl_unused', 'lvar_t_clr_dummy_arg', 'lvar_t_clr_fake_var', 'lvar_t_clr_floating_var', @@ -5821,9 +6609,11 @@ 'lvar_t_clr_noptr_var', 'lvar_t_clr_notarg', 'lvar_t_clr_overlapped_var', + 'lvar_t_clr_shared', 'lvar_t_clr_spoiled_var', 'lvar_t_clr_thisarg', 'lvar_t_clr_unknown_width', + 'lvar_t_clr_used_byref', 'lvar_t_clr_user_info', 'lvar_t_clr_user_name', 'lvar_t_clr_user_type', @@ -5840,9 +6630,11 @@ 'lvar_t_has_user_info', 'lvar_t_has_user_name', 'lvar_t_has_user_type', + 'lvar_t_in_asm', 'lvar_t_is_aliasable', 'lvar_t_is_arg_var', 'lvar_t_is_automapped', + 'lvar_t_is_decl_unused', 'lvar_t_is_dummy_arg', 'lvar_t_is_fake_var', 'lvar_t_is_floating_var', @@ -5852,14 +6644,17 @@ 'lvar_t_is_notarg', 'lvar_t_is_overlapped_var', 'lvar_t_is_result_var', + 'lvar_t_is_shared', 'lvar_t_is_spoiled_var', 'lvar_t_is_thisarg', 'lvar_t_is_unknown_width', + 'lvar_t_is_used_byref', 'lvar_t_mreg_done', 'lvar_t_name_get', 'lvar_t_name_set', 'lvar_t_set_arg_var', 'lvar_t_set_automapped', + 'lvar_t_set_decl_unused', 'lvar_t_set_dummy_arg', 'lvar_t_set_fake_var', 'lvar_t_set_final_lvar_type', @@ -5872,11 +6667,13 @@ 'lvar_t_set_noptr_var', 'lvar_t_set_notarg', 'lvar_t_set_overlapped_var', + 'lvar_t_set_shared', 'lvar_t_set_spoiled_var', 'lvar_t_set_thisarg', 'lvar_t_set_typed', 'lvar_t_set_unknown_width', 'lvar_t_set_used', + 'lvar_t_set_used_byref', 'lvar_t_set_user_name', 'lvar_t_set_user_type', 'lvar_t_set_width', @@ -5890,6 +6687,7 @@ 'lvar_t_width_get', 'lvar_t_width_set', 'lvar_uservec_t_clear', + 'lvar_uservec_t_empty', 'lvar_uservec_t_find_info', 'lvar_uservec_t_keep_info', 'lvar_uservec_t_lmaps_get', @@ -5905,6 +6703,9 @@ 'lvars_t_find_input_lvar', 'lvars_t_find_lvar', 'lvars_t_find_stkvar', + 'macro_constructor_t_build_macro', + 'macro_constructor_t_reserved_get', + 'macro_constructor_t_reserved_set', 'make_name_auto', 'make_name_non_public', 'make_name_non_weak', @@ -5912,6 +6713,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -5942,195 +6744,205 @@ 'mba_ranges_t_ranges_get', 'mba_ranges_t_ranges_set', 'mba_ranges_t_start', - 'mbl_array_t__deregister', - 'mbl_array_t__print', - 'mbl_array_t__register', - 'mbl_array_t_aliased_args_get', - 'mbl_array_t_aliased_args_set', - 'mbl_array_t_aliased_memory_get', - 'mbl_array_t_aliased_memory_set', - 'mbl_array_t_aliased_vars_get', - 'mbl_array_t_aliased_vars_set', - 'mbl_array_t_alloc_lvars', - 'mbl_array_t_analyze_calls', - 'mbl_array_t_arg', - 'mbl_array_t_arg__SWIG_0', - 'mbl_array_t_arg__SWIG_1', - 'mbl_array_t_argbase', - 'mbl_array_t_argidx_get', - 'mbl_array_t_argidx_ok', - 'mbl_array_t_argidx_set', - 'mbl_array_t_argidx_sorted', - 'mbl_array_t_bad_call_sp_detected', - 'mbl_array_t_blocks_get', - 'mbl_array_t_blocks_set', - 'mbl_array_t_build_graph', - 'mbl_array_t_calc_shins_flags', - 'mbl_array_t_callinfo_built', - 'mbl_array_t_cc_get', - 'mbl_array_t_cc_set', - 'mbl_array_t_chain_varnums_ok', - 'mbl_array_t_clr_cdtr', - 'mbl_array_t_clr_mba_flags', - 'mbl_array_t_clr_mba_flags2', - 'mbl_array_t_combine_blocks', - 'mbl_array_t_common_stkvars_stkargs', - 'mbl_array_t_consumed_argregs_get', - 'mbl_array_t_consumed_argregs_set', - 'mbl_array_t_copy_block', - 'mbl_array_t_deleted_pairs', - 'mbl_array_t_deserialize', - 'mbl_array_t_display_numaddrs', - 'mbl_array_t_display_valnums', - 'mbl_array_t_dump', - 'mbl_array_t_dump_mba', - 'mbl_array_t_dump_mba__varargs__', - 'mbl_array_t_entry_ea_get', - 'mbl_array_t_entry_ea_set', - 'mbl_array_t_error_ea_get', - 'mbl_array_t_error_ea_set', - 'mbl_array_t_error_strarg_get', - 'mbl_array_t_error_strarg_set', - 'mbl_array_t_final_type_get', - 'mbl_array_t_final_type_set', - 'mbl_array_t_find_mop', - 'mbl_array_t_first_epilog_ea_get', - 'mbl_array_t_first_epilog_ea_set', - 'mbl_array_t_for_all_insns', - 'mbl_array_t_for_all_ops', - 'mbl_array_t_for_all_topinsns', - 'mbl_array_t_fpd_get', - 'mbl_array_t_fpd_set', - 'mbl_array_t_frregs_get', - 'mbl_array_t_frregs_set', - 'mbl_array_t_frsize_get', - 'mbl_array_t_frsize_set', - 'mbl_array_t_fti_flags_get', - 'mbl_array_t_fti_flags_set', - 'mbl_array_t_fullsize_get', - 'mbl_array_t_fullsize_set', - 'mbl_array_t_generated_asserts', - 'mbl_array_t_get_args_region', - 'mbl_array_t_get_curfunc', - 'mbl_array_t_get_graph', - 'mbl_array_t_get_ida_argloc', - 'mbl_array_t_get_lvars_region', - 'mbl_array_t_get_mba_flags', - 'mbl_array_t_get_mba_flags2', - 'mbl_array_t_get_mblock', - 'mbl_array_t_get_mblock__SWIG_0', - 'mbl_array_t_get_mblock__SWIG_1', - 'mbl_array_t_get_shadow_region', - 'mbl_array_t_get_stack_region', - 'mbl_array_t_get_std_region', - 'mbl_array_t_gotoff_stkvars_get', - 'mbl_array_t_gotoff_stkvars_set', - 'mbl_array_t_graph_insns', - 'mbl_array_t_has_bad_sp', - 'mbl_array_t_has_over_chains', - 'mbl_array_t_has_passregs', - 'mbl_array_t_idaloc2vd', - 'mbl_array_t_idb_node_get', - 'mbl_array_t_idb_node_set', - 'mbl_array_t_idb_spoiled_get', - 'mbl_array_t_idb_spoiled_set', - 'mbl_array_t_idb_type_get', - 'mbl_array_t_idb_type_set', - 'mbl_array_t_inargoff_get', - 'mbl_array_t_inargoff_set', - 'mbl_array_t_insert_block', - 'mbl_array_t_is_cdtr', - 'mbl_array_t_is_ctr', - 'mbl_array_t_is_dtr', - 'mbl_array_t_is_pattern', - 'mbl_array_t_is_snippet', - 'mbl_array_t_is_stkarg', - 'mbl_array_t_is_thunk', - 'mbl_array_t_label_get', - 'mbl_array_t_label_set', - 'mbl_array_t_last_prolog_ea_get', - 'mbl_array_t_last_prolog_ea_set', - 'mbl_array_t_loaded_gdl', - 'mbl_array_t_lvar_names_ok', - 'mbl_array_t_lvars_allocated', - 'mbl_array_t_lvars_renamed', - 'mbl_array_t_mark_chains_dirty', - 'mbl_array_t_maturity_get', - 'mbl_array_t_maturity_set', - 'mbl_array_t_may_refine_rettype', - 'mbl_array_t_mbr_get', - 'mbl_array_t_mbr_set', - 'mbl_array_t_minargref_get', - 'mbl_array_t_minargref_set', - 'mbl_array_t_minstkref_ea_get', - 'mbl_array_t_minstkref_ea_set', - 'mbl_array_t_minstkref_get', - 'mbl_array_t_minstkref_set', - 'mbl_array_t_natural_get', - 'mbl_array_t_natural_set', - 'mbl_array_t_nodel_memory_get', - 'mbl_array_t_nodel_memory_set', - 'mbl_array_t_notes_get', - 'mbl_array_t_notes_set', - 'mbl_array_t_npurged_get', - 'mbl_array_t_npurged_set', - 'mbl_array_t_occurred_warns_get', - 'mbl_array_t_occurred_warns_set', - 'mbl_array_t_optimize_global', - 'mbl_array_t_optimize_local', - 'mbl_array_t_optimized', - 'mbl_array_t_pfn_flags_get', - 'mbl_array_t_pfn_flags_set', - 'mbl_array_t_precise_defeas', - 'mbl_array_t_propagated_asserts', - 'mbl_array_t_qty_get', - 'mbl_array_t_qty_set', - 'mbl_array_t_really_alloc', - 'mbl_array_t_regargs_is_not_aligned', - 'mbl_array_t_remove_block', - 'mbl_array_t_remove_empty_blocks', - 'mbl_array_t_reqmat_get', - 'mbl_array_t_reqmat_set', - 'mbl_array_t_restricted_memory_get', - 'mbl_array_t_restricted_memory_set', - 'mbl_array_t_retsize_get', - 'mbl_array_t_retsize_set', - 'mbl_array_t_returns_fpval', - 'mbl_array_t_retvaridx_get', - 'mbl_array_t_retvaridx_set', - 'mbl_array_t_rtype_refined', - 'mbl_array_t_saverest_done', - 'mbl_array_t_serialize', - 'mbl_array_t_set_mba_flags', - 'mbl_array_t_set_mba_flags2', - 'mbl_array_t_shadow_args_get', - 'mbl_array_t_shadow_args_set', - 'mbl_array_t_short_display', - 'mbl_array_t_should_beautify', - 'mbl_array_t_show_reduction', - 'mbl_array_t_spd_adjust_get', - 'mbl_array_t_spd_adjust_set', - 'mbl_array_t_spoiled_list_get', - 'mbl_array_t_spoiled_list_set', - 'mbl_array_t_stacksize_get', - 'mbl_array_t_stacksize_set', - 'mbl_array_t_std_ivls_get', - 'mbl_array_t_std_ivls_set', - 'mbl_array_t_stkoff_ida2vd', - 'mbl_array_t_stkoff_vd2ida', - 'mbl_array_t_term', - 'mbl_array_t_tmpstk_size_get', - 'mbl_array_t_tmpstk_size_set', - 'mbl_array_t_use_frame', - 'mbl_array_t_use_wingraph32', - 'mbl_array_t_valranges_done', - 'mbl_array_t_vars_get', - 'mbl_array_t_vars_set', - 'mbl_array_t_vd2idaloc', - 'mbl_array_t_vd2idaloc__SWIG_0', - 'mbl_array_t_vd2idaloc__SWIG_1', - 'mbl_array_t_verify', - 'mbl_array_t_write_to_const_detected', + 'mba_t__deregister', + 'mba_t__print', + 'mba_t__register', + 'mba_t_aliased_args_get', + 'mba_t_aliased_args_set', + 'mba_t_aliased_memory_get', + 'mba_t_aliased_memory_set', + 'mba_t_aliased_vars_get', + 'mba_t_aliased_vars_set', + 'mba_t_alloc_fict_ea', + 'mba_t_alloc_kreg', + 'mba_t_alloc_lvars', + 'mba_t_analyze_calls', + 'mba_t_arg', + 'mba_t_arg__SWIG_0', + 'mba_t_arg__SWIG_1', + 'mba_t_argbase', + 'mba_t_argidx_get', + 'mba_t_argidx_ok', + 'mba_t_argidx_set', + 'mba_t_argidx_sorted', + 'mba_t_bad_call_sp_detected', + 'mba_t_blocks_get', + 'mba_t_blocks_set', + 'mba_t_build_graph', + 'mba_t_calc_shins_flags', + 'mba_t_callinfo_built', + 'mba_t_cc_get', + 'mba_t_cc_set', + 'mba_t_chain_varnums_ok', + 'mba_t_clr_cdtr', + 'mba_t_clr_mba_flags', + 'mba_t_clr_mba_flags2', + 'mba_t_code16_bit_removed', + 'mba_t_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_create_helper_call', + 'mba_t_deleted_pairs', + 'mba_t_deprecated_idb_node_get', + 'mba_t_deprecated_idb_node_set', + 'mba_t_deserialize', + 'mba_t_display_numaddrs', + 'mba_t_display_valnums', + 'mba_t_dump', + 'mba_t_dump_mba', + 'mba_t_dump_mba__varargs__', + 'mba_t_entry_ea_get', + 'mba_t_entry_ea_set', + 'mba_t_error_ea_get', + 'mba_t_error_ea_set', + 'mba_t_error_strarg_get', + 'mba_t_error_strarg_set', + 'mba_t_final_type_get', + 'mba_t_final_type_set', + 'mba_t_find_mop', + 'mba_t_first_epilog_ea_get', + 'mba_t_first_epilog_ea_set', + 'mba_t_for_all_insns', + 'mba_t_for_all_ops', + 'mba_t_for_all_topinsns', + 'mba_t_fpd_get', + 'mba_t_fpd_set', + 'mba_t_free_kreg', + 'mba_t_frregs_get', + 'mba_t_frregs_set', + 'mba_t_frsize_get', + 'mba_t_frsize_set', + 'mba_t_fti_flags_get', + 'mba_t_fti_flags_set', + 'mba_t_fullsize_get', + 'mba_t_fullsize_set', + 'mba_t_generated_asserts', + 'mba_t_get_args_region', + 'mba_t_get_curfunc', + 'mba_t_get_graph', + 'mba_t_get_ida_argloc', + 'mba_t_get_lvars_region', + 'mba_t_get_mba_flags', + 'mba_t_get_mba_flags2', + 'mba_t_get_mblock', + 'mba_t_get_mblock__SWIG_0', + 'mba_t_get_mblock__SWIG_1', + 'mba_t_get_shadow_region', + 'mba_t_get_stack_region', + 'mba_t_get_std_region', + 'mba_t_gotoff_stkvars_get', + 'mba_t_gotoff_stkvars_set', + 'mba_t_graph_insns', + 'mba_t_has_bad_sp', + 'mba_t_has_outlines', + 'mba_t_has_over_chains', + 'mba_t_has_passregs', + 'mba_t_has_stack_retval', + 'mba_t_idaloc2vd', + 'mba_t_idb_spoiled_get', + 'mba_t_idb_spoiled_set', + 'mba_t_idb_type_get', + 'mba_t_idb_type_set', + 'mba_t_inargoff_get', + 'mba_t_inargoff_set', + 'mba_t_insert_block', + 'mba_t_is_cdtr', + 'mba_t_is_ctr', + 'mba_t_is_dtr', + 'mba_t_is_pattern', + 'mba_t_is_snippet', + 'mba_t_is_stkarg', + 'mba_t_is_thunk', + 'mba_t_label_get', + 'mba_t_label_set', + 'mba_t_last_prolog_ea_get', + 'mba_t_last_prolog_ea_set', + 'mba_t_loaded_gdl', + 'mba_t_lvar_names_ok', + 'mba_t_lvars_allocated', + 'mba_t_lvars_renamed', + 'mba_t_map_fict_ea', + 'mba_t_mark_chains_dirty', + 'mba_t_maturity_get', + 'mba_t_maturity_set', + 'mba_t_may_refine_rettype', + 'mba_t_mbr_get', + 'mba_t_mbr_set', + 'mba_t_minargref_get', + 'mba_t_minargref_set', + 'mba_t_minstkref_ea_get', + 'mba_t_minstkref_ea_set', + 'mba_t_minstkref_get', + 'mba_t_minstkref_set', + 'mba_t_natural_get', + 'mba_t_natural_set', + 'mba_t_nodel_memory_get', + 'mba_t_nodel_memory_set', + 'mba_t_notes_get', + 'mba_t_notes_set', + 'mba_t_npurged_get', + 'mba_t_npurged_set', + 'mba_t_occurred_warns_get', + 'mba_t_occurred_warns_set', + 'mba_t_optimize_global', + 'mba_t_optimize_local', + 'mba_t_optimized', + 'mba_t_pfn_flags_get', + 'mba_t_pfn_flags_set', + 'mba_t_precise_defeas', + 'mba_t_propagated_asserts', + 'mba_t_qty_get', + 'mba_t_qty_set', + 'mba_t_really_alloc', + 'mba_t_regargs_is_not_aligned', + 'mba_t_remove_block', + 'mba_t_remove_empty_and_unreachable_blocks', + 'mba_t_reqmat_get', + 'mba_t_reqmat_set', + 'mba_t_restricted_memory_get', + 'mba_t_restricted_memory_set', + 'mba_t_retsize_get', + 'mba_t_retsize_set', + 'mba_t_returns_fpval', + 'mba_t_retvaridx_get', + 'mba_t_retvaridx_set', + 'mba_t_rtype_refined', + 'mba_t_save_snapshot', + 'mba_t_saverest_done', + 'mba_t_serialize', + 'mba_t_set_maturity', + 'mba_t_set_mba_flags', + 'mba_t_set_mba_flags2', + 'mba_t_shadow_args_get', + 'mba_t_shadow_args_set', + 'mba_t_short_display', + 'mba_t_should_beautify', + 'mba_t_show_reduction', + 'mba_t_spd_adjust_get', + 'mba_t_spd_adjust_set', + 'mba_t_spoiled_list_get', + 'mba_t_spoiled_list_set', + 'mba_t_stacksize_get', + 'mba_t_stacksize_set', + 'mba_t_std_ivls_get', + 'mba_t_std_ivls_set', + 'mba_t_stkoff_ida2vd', + 'mba_t_stkoff_vd2ida', + 'mba_t_term', + 'mba_t_tmpstk_size_get', + 'mba_t_tmpstk_size_set', + 'mba_t_use_frame', + 'mba_t_use_wingraph32', + 'mba_t_valranges_done', + 'mba_t_vars_get', + 'mba_t_vars_set', + 'mba_t_vd2idaloc', + 'mba_t_vd2idaloc__SWIG_0', + 'mba_t_vd2idaloc__SWIG_1', + 'mba_t_verify', + 'mba_t_write_to_const_detected', 'mbl_graph_t_get_chain_stamp', 'mbl_graph_t_get_du', 'mbl_graph_t_get_mblock', @@ -6236,6 +7048,8 @@ 'mcallarg_t_dstr', 'mcallarg_t_ea_get', 'mcallarg_t_ea_set', + 'mcallarg_t_flags_get', + 'mcallarg_t_flags_set', 'mcallarg_t_make_int', 'mcallarg_t_make_uint', 'mcallarg_t_name_get', @@ -6358,6 +7172,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -6538,7 +7353,7 @@ 'minsn_t_l_set', 'minsn_t_lexcompare', 'minsn_t_may_use_aliased_memory', - 'minsn_t_modifes_d', + 'minsn_t_modifies_d', 'minsn_t_modifies_pair_mop', 'minsn_t_next_get', 'minsn_t_next_set', @@ -6741,9 +7556,11 @@ 'mop_t_is_insn__SWIG_0', 'mop_t_is_insn__SWIG_1', 'mop_t_is_kreg', + 'mop_t_is_lowaddr', 'mop_t_is_mob', 'mop_t_is_negative_constant', 'mop_t_is_one', + 'mop_t_is_pcval', 'mop_t_is_positive_constant', 'mop_t_is_reg', 'mop_t_is_reg__SWIG_0', @@ -6771,12 +7588,14 @@ 'mop_t_make_reg__SWIG_1', 'mop_t_make_reg_pair', 'mop_t_make_second_half', + 'mop_t_make_stkvar', 'mop_t_may_use_aliased_memory', 'mop_t_oprops_get', 'mop_t_oprops_set', 'mop_t_preserve_side_effects', 'mop_t_probably_floating', 'mop_t_set_impptr_done', + 'mop_t_set_lowaddr', 'mop_t_set_udt', 'mop_t_set_undef_val', 'mop_t_shift_mop', @@ -6787,6 +7606,7 @@ 'mop_t_t_get', 'mop_t_t_set', 'mop_t_unsigned_value', + 'mop_t_update_numop_value', 'mop_t_valnum_get', 'mop_t_valnum_set', 'mop_t_value', @@ -6834,7 +7654,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -6844,21 +7663,23 @@ 'msg_get_lines', 'msg_save', 'must_mcode_close_block', + 'mutable_graph_t_add_edge', + 'mutable_graph_t_add_node', 'mutable_graph_t_belongs_get', 'mutable_graph_t_belongs_set', 'mutable_graph_t_calc_group_ea', 'mutable_graph_t_change_group_visibility', - 'mutable_graph_t_clear', 'mutable_graph_t_create_digraph_layout', 'mutable_graph_t_create_group', 'mutable_graph_t_del_custom_layout', + 'mutable_graph_t_del_edge', + 'mutable_graph_t_del_node', 'mutable_graph_t_delete_group', 'mutable_graph_t_edges_get', 'mutable_graph_t_edges_set', 'mutable_graph_t_empty', 'mutable_graph_t_exists', 'mutable_graph_t_get_custom_layout', - 'mutable_graph_t_get_edge', 'mutable_graph_t_get_first_subgraph_node', 'mutable_graph_t_get_graph_groups', 'mutable_graph_t_get_next_subgraph_node', @@ -6882,9 +7703,6 @@ 'mutable_graph_t_nodes_get', 'mutable_graph_t_nodes_set', 'mutable_graph_t_npred', - 'mutable_graph_t_nrect', - 'mutable_graph_t_nrect__SWIG_0', - 'mutable_graph_t_nrect__SWIG_1', 'mutable_graph_t_nsucc', 'mutable_graph_t_org_preds_get', 'mutable_graph_t_org_preds_set', @@ -6894,12 +7712,17 @@ 'mutable_graph_t_preds_get', 'mutable_graph_t_preds_set', 'mutable_graph_t_predset', + 'mutable_graph_t_redo_layout', + 'mutable_graph_t_refresh', + 'mutable_graph_t_replace_edge', 'mutable_graph_t_reset', + 'mutable_graph_t_resize', 'mutable_graph_t_set_custom_layout', 'mutable_graph_t_set_deleted_node', 'mutable_graph_t_set_edge', 'mutable_graph_t_set_graph_groups', 'mutable_graph_t_set_node_group', + 'mutable_graph_t_set_nrect', 'mutable_graph_t_size', 'mutable_graph_t_succ', 'mutable_graph_t_succs_get', @@ -6971,6 +7794,7 @@ 'netnode_easet_idx', 'netnode_easet_idx8', 'netnode_end', + 'netnode_exist', 'netnode_get_name', 'netnode_getblob', 'netnode_getblob_ea', @@ -7020,7 +7844,11 @@ 'netnode_supprev', 'netnode_supprev_idx8', 'netnode_supset', + 'netnode_supset__SWIG_0', + 'netnode_supset__SWIG_1', 'netnode_supset_ea', + 'netnode_supset_ea__SWIG_0', + 'netnode_supset_ea__SWIG_1', 'netnode_supset_idx8', 'netnode_supshift', 'netnode_supstr', @@ -7046,6 +7874,9 @@ 'new___qsemaphore_t', 'new___qthread_t', 'new___qtimer_t', + 'new_abstract_graph_t', + 'new_action_ctx_base_cur_sel_t', + 'new_action_ctx_base_source_t', 'new_action_ctx_base_t', 'new_action_desc_t', 'new_addon_info_t', @@ -7059,6 +7890,7 @@ 'new_argpartvec_t', 'new_argpartvec_t__SWIG_0', 'new_argpartvec_t__SWIG_1', + 'new_argtinfo_helper_t', 'new_array_of_bitsets', 'new_array_of_bitsets__SWIG_0', 'new_array_of_bitsets__SWIG_1', @@ -7072,9 +7904,9 @@ 'new_array_type_data_t', 'new_asm_t', 'new_auto_display_t', - 'new_bgcolors_t', 'new_bit_bound_t', 'new_bitfield_type_data_t', + 'new_bitrange_t', 'new_bitset_t', 'new_bitset_t__SWIG_0', 'new_bitset_t__SWIG_1', @@ -7094,13 +7926,16 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', + 'new_call_stack_info_vec_t', + 'new_call_stack_info_vec_t__SWIG_0', + 'new_call_stack_info_vec_t__SWIG_1', 'new_call_stack_t', - 'new_call_stack_t__SWIG_0', - 'new_call_stack_t__SWIG_1', 'new_callregs_t', 'new_callregs_t__SWIG_0', 'new_callregs_t__SWIG_1', + 'new_cancellable_graph_t', 'new_carg_t', 'new_carglist_t', 'new_carglist_t__SWIG_0', @@ -7143,10 +7978,16 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', + 'new_chooser_stdact_desc_t', 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -7160,14 +8001,15 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', + 'new_compiled_binpat_t', + 'new_compiled_binpat_vec_t', + 'new_compiled_binpat_vec_t__SWIG_0', + 'new_compiled_binpat_vec_t__SWIG_1', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -7189,12 +8031,31 @@ 'new_debug_event_t', 'new_debug_event_t__SWIG_0', 'new_debug_event_t__SWIG_1', + 'new_direntry_t', + 'new_direntry_vec_t', + 'new_direntry_vec_t__SWIG_0', + 'new_direntry_vec_t__SWIG_1', + 'new_dirspec_t', + 'new_dirtree_cursor_t', + 'new_dirtree_cursor_vec_t', + 'new_dirtree_cursor_vec_t__SWIG_0', + 'new_dirtree_cursor_vec_t__SWIG_1', + 'new_dirtree_iterator_t', + 'new_dirtree_selection_t', + 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', 'new_disasm_text_t', 'new_disasm_text_t__SWIG_0', 'new_disasm_text_t__SWIG_1', + 'new_dyn_ea_array', + 'new_dyn_member_ref_array', + 'new_dyn_range_array', + 'new_dyn_regarg_array', + 'new_dyn_regvar_array', + 'new_dyn_stkpnt_array', 'new_ea_array', 'new_ea_name_t', 'new_ea_name_t__SWIG_0', @@ -7209,7 +8070,6 @@ 'new_edge_layout_point_t', 'new_edge_layout_point_t__SWIG_0', 'new_edge_layout_point_t__SWIG_1', - 'new_edge_layout_point_t__SWIG_2', 'new_edge_segment_t', 'new_edge_t', 'new_edge_t__SWIG_0', @@ -7233,12 +8093,16 @@ 'new_extra_cmts_t', 'new_extra_cmts_t__SWIG_0', 'new_extra_cmts_t__SWIG_1', + 'new_file_enumerator_t', 'new_fixup_data_t', 'new_fixup_data_t__SWIG_0', 'new_fixup_data_t__SWIG_1', 'new_fixup_info_t', - 'new_fnum_array', 'new_fnumber_t', + 'new_fpvalue_shorts_array_t', + 'new_fpvalue_t', + 'new_fpvalue_t__SWIG_0', + 'new_fpvalue_t__SWIG_1', 'new_frame_desc_t', 'new_frame_mem_t', 'new_frame_mems_t', @@ -7278,6 +8142,7 @@ 'new_funcargvec_t__SWIG_0', 'new_funcargvec_t__SWIG_1', 'new_gco_info_t', + 'new_gdl_graph_t', 'new_graph_chains_t', 'new_graph_item_t', 'new_graph_location_info_t', @@ -7295,7 +8160,6 @@ 'new_hexwarns_t__SWIG_1', 'new_hidden_range_t', 'new_highlighter_cbs_t', - 'new_history_entries_helper_t', 'new_history_item_t', 'new_history_item_t__SWIG_0', 'new_history_item_t__SWIG_1', @@ -7313,6 +8177,10 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_input_file_t', 'new_insn_cmt_t', 'new_insn_cmts_t', @@ -7325,6 +8193,9 @@ 'new_insn_site_t', 'new_insn_t', 'new_instant_dbgopts_t', + 'new_int64vec_t', + 'new_int64vec_t__SWIG_0', + 'new_int64vec_t__SWIG_1', 'new_int_pointer', 'new_interval_t', 'new_interval_t__SWIG_0', @@ -7333,12 +8204,22 @@ 'new_intvec_t', 'new_intvec_t__SWIG_0', 'new_intvec_t__SWIG_1', + 'new_ioports_fallback_t', + 'new_iterator', 'new_ivl_t', 'new_ivl_with_name_t', 'new_ivlset_t', 'new_ivlset_t__SWIG_0', 'new_ivlset_t__SWIG_1', - 'new_llabel_t', + 'new_line_rendering_output_entries_refs_t', + 'new_line_rendering_output_entries_refs_t__SWIG_0', + 'new_line_rendering_output_entries_refs_t__SWIG_1', + 'new_line_rendering_output_entry_t', + 'new_line_rendering_output_entry_t__SWIG_0', + 'new_line_rendering_output_entry_t__SWIG_1', + 'new_linearray_t', + 'new_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -7348,9 +8229,6 @@ 'new_lochist_t', 'new_lock_func', 'new_lock_segment', - 'new_longlongvec_t', - 'new_longlongvec_t__SWIG_0', - 'new_longlongvec_t__SWIG_1', 'new_lumina_op_res_vec_t', 'new_lumina_op_res_vec_t__SWIG_0', 'new_lumina_op_res_vec_t__SWIG_1', @@ -7368,6 +8246,7 @@ 'new_lvar_saved_infos_t__SWIG_1', 'new_lvar_uservec_t', 'new_lvars_t', + 'new_macro_constructor_t', 'new_mba_range_iterator_t', 'new_mba_ranges_t', 'new_mba_ranges_t__SWIG_0', @@ -7419,29 +8298,26 @@ 'new_netnode', 'new_netnode__SWIG_0', 'new_netnode__SWIG_1', - 'new_netnode__SWIG_2', 'new_node_info_t', 'new_node_iterator', 'new_node_layout_t', 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', + 'new_octet_generator_t', 'new_op_parent_info_t', 'new_op_t', 'new_operand_locator_t', 'new_operands_array', - 'new_operator_info_t', 'new_opinfo_t', 'new_oprepr_t', 'new_optblock_t', 'new_optinsn_t', 'new_packet', + 'new_params_t', 'new_pattern_id_t', - 'new_pkt_clean_db_t', - 'new_pkt_debugctl_t', - 'new_pkt_dump_md_result_t', - 'new_pkt_dump_md_t', 'new_pkt_get_pop_result_t', 'new_pkt_get_pop_t', 'new_pkt_helo_t', @@ -7477,10 +8353,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -7498,7 +8370,6 @@ 'new_qvector_snapshotvec_t', 'new_qvector_snapshotvec_t__SWIG_0', 'new_qvector_snapshotvec_t__SWIG_1', - 'new_range_array', 'new_range_t', 'new_range_t__SWIG_0', 'new_range_t__SWIG_1', @@ -7515,8 +8386,15 @@ 'new_rect_t__SWIG_1', 'new_rect_t__SWIG_2', 'new_refinfo_t', + 'new_reg_access_t', + 'new_reg_access_vec_t', + 'new_reg_access_vec_t__SWIG_0', + 'new_reg_access_vec_t__SWIG_1', + 'new_reg_accesses_t', 'new_reg_info_t', 'new_regarg_t', + 'new_regarg_t__SWIG_0', + 'new_regarg_t__SWIG_1', 'new_reginfovec_t', 'new_reginfovec_t__SWIG_0', 'new_reginfovec_t__SWIG_1', @@ -7529,10 +8407,13 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', + 'new_regvar_t__SWIG_0', + 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -7548,11 +8429,18 @@ 'new_screen_graph_selection_base_t__SWIG_0', 'new_screen_graph_selection_base_t__SWIG_1', 'new_screen_graph_selection_t', + 'new_section_lines_refs_t', + 'new_section_lines_refs_t__SWIG_0', + 'new_section_lines_refs_t__SWIG_1', + 'new_sections_lines_refs_t', + 'new_sections_lines_refs_t__SWIG_0', + 'new_sections_lines_refs_t__SWIG_1', 'new_segm_move_info_t', 'new_segm_move_info_vec_t', 'new_segm_move_info_vec_t__SWIG_0', 'new_segm_move_info_vec_t__SWIG_1', 'new_segm_move_infos_t', + 'new_segment_defsr_array', 'new_segment_t', 'new_seh_t', 'new_sel_array', @@ -7577,14 +8465,12 @@ 'new_skipped_funcs_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -7597,6 +8483,10 @@ 'new_sync_source_t', 'new_sync_source_t__SWIG_0', 'new_sync_source_t__SWIG_1', + 'new_sync_source_vec_t', + 'new_sync_source_vec_t__SWIG_0', + 'new_sync_source_vec_t__SWIG_1', + 'new_synced_group_t', 'new_tev_info_reg_t', 'new_tev_info_t', 'new_tev_reg_value_t', @@ -7607,6 +8497,9 @@ 'new_tevinforeg_vec_t__SWIG_0', 'new_tevinforeg_vec_t__SWIG_1', 'new_text_sink_t', + 'new_text_t', + 'new_text_t__SWIG_0', + 'new_text_t__SWIG_1', 'new_thread_name_t', 'new_tid_array', 'new_til', @@ -7625,6 +8518,9 @@ 'new_tryblks_t', 'new_tryblks_t__SWIG_0', 'new_tryblks_t__SWIG_1', + 'new_twinline_t', + 'new_twinline_t__SWIG_0', + 'new_twinline_t__SWIG_1', 'new_twinpos_t', 'new_twinpos_t__SWIG_0', 'new_twinpos_t__SWIG_1', @@ -7644,22 +8540,24 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', 'new_ui_stroff_ops_t', 'new_ui_stroff_ops_t__SWIG_0', 'new_ui_stroff_ops_t__SWIG_1', + 'new_uint64vec_t', + 'new_uint64vec_t__SWIG_0', + 'new_uint64vec_t__SWIG_1', 'new_uintvec_t', 'new_uintvec_t__SWIG_0', 'new_uintvec_t__SWIG_1', - 'new_ulonglongvec_t', - 'new_ulonglongvec_t__SWIG_0', - 'new_ulonglongvec_t__SWIG_1', 'new_user_cmts_iterator_t', 'new_user_cmts_t', + 'new_user_defined_prefix_t', 'new_user_identification_t', 'new_user_iflags_iterator_t', 'new_user_iflags_t', @@ -7722,6 +8620,7 @@ 'next_not_tail', 'next_that', 'next_unknown', + 'next_visea', 'node2ea', 'node_info_t_bg_color_get', 'node_info_t_bg_color_set', @@ -7783,16 +8682,23 @@ 'node_layout_t_swap', 'node_layout_t_truncate', 'node_ordering_t_clear', + 'node_ordering_t_clr', 'node_ordering_t_node', + 'node_ordering_t_order', 'node_ordering_t_resize', 'node_ordering_t_set', 'node_ordering_t_size', 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', + 'number_format_t_has_unmutable_type', 'number_format_t_is_char', 'number_format_t_is_dec', 'number_format_t_is_enum', @@ -7813,6 +8719,15 @@ 'number_format_t_type_name_get', 'number_format_t_type_name_set', 'oct_flag', + 'octet_generator_t_avail_bits_get', + 'octet_generator_t_avail_bits_set', + 'octet_generator_t_ea_get', + 'octet_generator_t_ea_set', + 'octet_generator_t_high_byte_first_get', + 'octet_generator_t_high_byte_first_set', + 'octet_generator_t_invert_byte_order', + 'octet_generator_t_value_get', + 'octet_generator_t_value_set', 'off_flag', 'op_adds_xrefs', 'op_bin', @@ -7847,6 +8762,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -7861,6 +8778,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -7871,11 +8792,16 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', + 'open_bookmarks_window', 'open_bpts_window', 'open_calls_window', 'open_disasm_window', @@ -7919,17 +8845,9 @@ 'operands_array___getitem__', 'operands_array___len__', 'operands_array___setitem__', + 'operands_array__get_bytes', + 'operands_array__set_bytes', 'operands_array_data_get', - 'operator_info_t_fixtype_get', - 'operator_info_t_fixtype_set', - 'operator_info_t_flags_get', - 'operator_info_t_flags_set', - 'operator_info_t_precedence_get', - 'operator_info_t_precedence_set', - 'operator_info_t_text_get', - 'operator_info_t_text_set', - 'operator_info_t_valency_get', - 'operator_info_t_valency_set', 'opinfo_t_cd_get', 'opinfo_t_cd_set', 'opinfo_t_ec_get', @@ -8013,6 +8931,8 @@ 'outctx_base_t_stack_view', 'outctx_base_t_term_outctx', 'outctx_t__from_ptrval__', + 'outctx_t_ash_get', + 'outctx_t_ash_set', 'outctx_t_bin_ea_get', 'outctx_t_bin_ea_set', 'outctx_t_bin_state_get', @@ -8037,8 +8957,14 @@ 'outctx_t_out_mnemonic', 'outctx_t_out_one_operand', 'outctx_t_out_specea', + 'outctx_t_ph_get', + 'outctx_t_ph_set', + 'outctx_t_procmod_get', + 'outctx_t_procmod_set', 'outctx_t_retrieve_cmt', 'outctx_t_retrieve_name', + 'outctx_t_saved_immvals_get', + 'outctx_t_saved_immvals_set', 'outctx_t_set_bin_state', 'outctx_t_setup_outctx', 'outctx_t_wif_get', @@ -8049,10 +8975,17 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', + 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', 'parse_decl', 'parse_decls', + 'parse_decls_for_srclang', + 'parse_decls_with_parser', 'parse_reg_name', 'parse_user_call', 'partial_type_num', @@ -8079,6 +9012,7 @@ 'ph_get_instruc_end', 'ph_get_instruc_start', 'ph_get_operand_info', + 'ph_get_reg_accesses', 'ph_get_reg_code_sreg', 'ph_get_reg_data_sreg', 'ph_get_reg_first_sreg', @@ -8087,12 +9021,6 @@ 'ph_get_segreg_size', 'ph_get_tbyte_size', 'ph_get_version', - 'pkt_debugctl_t_args_get', - 'pkt_debugctl_t_args_set', - 'pkt_dump_md_result_t_contents_get', - 'pkt_dump_md_result_t_contents_set', - 'pkt_dump_md_t_sort_get', - 'pkt_dump_md_t_sort_set', 'pkt_get_pop_result_t_results_get', 'pkt_get_pop_result_t_results_set', 'pkt_get_pop_t_nresults_get', @@ -8146,6 +9074,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -8257,6 +9186,7 @@ 'prev_not_tail', 'prev_that', 'prev_unknown', + 'prev_visea', 'print_argloc', 'print_decls', 'print_idcv', @@ -8282,6 +9212,7 @@ 'printop_t_ti_get', 'printop_t_ti_set', 'process_archive', + 'process_config_directive', 'process_info_t_name_get', 'process_info_t_name_set', 'process_info_t_pid_get', @@ -8353,13 +9284,13 @@ 'put_qword', 'put_word', 'py_add_idc_func', + 'py_chooser_base_t_get_row', 'py_get_ask_form', 'py_get_call_idc_func', 'py_get_open_form', 'py_load_custom_icon_data', 'py_load_custom_icon_fn', 'py_register_compiled_form', - 'py_ss_restore_callback', 'py_unregister_compiled_form', 'pycim_get_widget', 'pycim_view_close', @@ -8406,12 +9337,12 @@ 'qfile_t_flush', 'qfile_t_from_capsule', 'qfile_t_from_fp', - 'qfile_t_get_char', + 'qfile_t_get_byte', 'qfile_t_get_fp', 'qfile_t_gets', 'qfile_t_open', 'qfile_t_opened', - 'qfile_t_put_char', + 'qfile_t_put_byte', 'qfile_t_puts', 'qfile_t_read', 'qfile_t_readbytes', @@ -8449,44 +9380,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -8512,6 +9405,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8714,11 +9608,6 @@ 'qvector_snapshotvec_t_swap', 'qvector_snapshotvec_t_truncate', 'qword_flag', - 'range_array___getitem__', - 'range_array___len__', - 'range_array___setitem__', - 'range_array_count_get', - 'range_array_data_get', 'range_t___eq__', 'range_t___gt__', 'range_t___lt__', @@ -8819,6 +9708,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8860,6 +9750,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -8874,12 +9766,64 @@ 'refinfo_t_type', 'refresh_chooser', 'refresh_choosers', + 'refresh_custom_viewer', 'refresh_debugger_memory', 'refresh_idaview', 'refresh_idaview_anyway', 'refresh_navband', 'refresh_viewer', 'reg2mreg', + 'reg_access_t___eq__', + 'reg_access_t___ne__', + 'reg_access_t_access_type_get', + 'reg_access_t_access_type_set', + 'reg_access_t_have_common_bits', + 'reg_access_t_opnum_get', + 'reg_access_t_opnum_set', + 'reg_access_t_range_get', + 'reg_access_t_range_set', + 'reg_access_t_regnum_get', + 'reg_access_t_regnum_set', + 'reg_access_vec_t___eq__', + 'reg_access_vec_t___getitem__', + 'reg_access_vec_t___len__', + 'reg_access_vec_t___ne__', + 'reg_access_vec_t___setitem__', + 'reg_access_vec_t__del', + 'reg_access_vec_t_add_unique', + 'reg_access_vec_t_at', + 'reg_access_vec_t_begin', + 'reg_access_vec_t_begin__SWIG_0', + 'reg_access_vec_t_begin__SWIG_1', + 'reg_access_vec_t_capacity', + 'reg_access_vec_t_clear', + 'reg_access_vec_t_empty', + 'reg_access_vec_t_end', + 'reg_access_vec_t_end__SWIG_0', + 'reg_access_vec_t_end__SWIG_1', + 'reg_access_vec_t_erase', + 'reg_access_vec_t_erase__SWIG_0', + 'reg_access_vec_t_erase__SWIG_1', + 'reg_access_vec_t_extract', + 'reg_access_vec_t_find', + 'reg_access_vec_t_find__SWIG_0', + 'reg_access_vec_t_find__SWIG_1', + 'reg_access_vec_t_grow', + 'reg_access_vec_t_has', + 'reg_access_vec_t_inject', + 'reg_access_vec_t_insert', + 'reg_access_vec_t_pop_back', + 'reg_access_vec_t_push_back', + 'reg_access_vec_t_push_back__SWIG_0', + 'reg_access_vec_t_push_back__SWIG_1', + 'reg_access_vec_t_qclear', + 'reg_access_vec_t_reserve', + 'reg_access_vec_t_resize', + 'reg_access_vec_t_resize__SWIG_0', + 'reg_access_vec_t_resize__SWIG_1', + 'reg_access_vec_t_size', + 'reg_access_vec_t_swap', + 'reg_access_vec_t_truncate', 'reg_data_type', 'reg_delete', 'reg_delete_subkey', @@ -8916,6 +9860,7 @@ 'regarg_t_name_set', 'regarg_t_reg_get', 'regarg_t_reg_set', + 'regarg_t_swap', 'regarg_t_type_get', 'regarg_t_type_set', 'reginfovec_t___eq__', @@ -8961,6 +9906,7 @@ 'register_action', 'register_addon', 'register_and_attach_to_menu', + 'register_cfgopts', 'register_custom_data_format', 'register_custom_data_type', 'register_info_t_bit_strings_get', @@ -9039,15 +9985,11 @@ 'regval_t_set_int', 'regval_t_set_unavailable', 'regval_t_swap', - 'regvar_array___getitem__', - 'regvar_array___len__', - 'regvar_array___setitem__', - 'regvar_array_count_get', - 'regvar_array_data_get', 'regvar_t_canon_get', 'regvar_t_canon_set', 'regvar_t_cmt_get', 'regvar_t_cmt_set', + 'regvar_t_swap', 'regvar_t_user_get', 'regvar_t_user_set', 'reload_file', @@ -9063,6 +10005,7 @@ 'rename_bptgrp', 'rename_encoding', 'rename_entry', + 'rename_lvar', 'rename_regvar', 'renderer_info_pos_t___eq__', 'renderer_info_pos_t___ne__', @@ -9074,7 +10017,6 @@ 'renderer_info_pos_t_node_set', 'renderer_info_t___eq__', 'renderer_info_t___ne__', - 'renderer_info_t_clear', 'renderer_info_t_gli_get', 'renderer_info_t_gli_set', 'renderer_info_t_pos_get', @@ -9143,6 +10085,7 @@ 'restore_user_defined_calls', 'restore_user_iflags', 'restore_user_labels', + 'restore_user_labels2', 'restore_user_lvar_settings', 'restore_user_numforms', 'restore_user_unions', @@ -9179,6 +10122,7 @@ 'save_user_defined_calls', 'save_user_iflags', 'save_user_labels', + 'save_user_labels2', 'save_user_lvar_settings', 'save_user_numforms', 'save_user_unions', @@ -9244,6 +10188,85 @@ 'screen_graph_selection_t_points_count', 'screen_graph_selection_t_sub', 'search_down', + 'section_lines_refs_t___eq__', + 'section_lines_refs_t___getitem__', + 'section_lines_refs_t___len__', + 'section_lines_refs_t___ne__', + 'section_lines_refs_t___setitem__', + 'section_lines_refs_t__del', + 'section_lines_refs_t_add_unique', + 'section_lines_refs_t_at', + 'section_lines_refs_t_begin', + 'section_lines_refs_t_begin__SWIG_0', + 'section_lines_refs_t_begin__SWIG_1', + 'section_lines_refs_t_capacity', + 'section_lines_refs_t_clear', + 'section_lines_refs_t_empty', + 'section_lines_refs_t_end', + 'section_lines_refs_t_end__SWIG_0', + 'section_lines_refs_t_end__SWIG_1', + 'section_lines_refs_t_erase', + 'section_lines_refs_t_erase__SWIG_0', + 'section_lines_refs_t_erase__SWIG_1', + 'section_lines_refs_t_extract', + 'section_lines_refs_t_find', + 'section_lines_refs_t_find__SWIG_0', + 'section_lines_refs_t_find__SWIG_1', + 'section_lines_refs_t_has', + 'section_lines_refs_t_inject', + 'section_lines_refs_t_insert', + 'section_lines_refs_t_pop_back', + 'section_lines_refs_t_push_back', + 'section_lines_refs_t_push_back__SWIG_0', + 'section_lines_refs_t_push_back__SWIG_1', + 'section_lines_refs_t_qclear', + 'section_lines_refs_t_reserve', + 'section_lines_refs_t_resize', + 'section_lines_refs_t_resize__SWIG_0', + 'section_lines_refs_t_resize__SWIG_1', + 'section_lines_refs_t_size', + 'section_lines_refs_t_swap', + 'section_lines_refs_t_truncate', + 'sections_lines_refs_t___eq__', + 'sections_lines_refs_t___getitem__', + 'sections_lines_refs_t___len__', + 'sections_lines_refs_t___ne__', + 'sections_lines_refs_t___setitem__', + 'sections_lines_refs_t__del', + 'sections_lines_refs_t_add_unique', + 'sections_lines_refs_t_at', + 'sections_lines_refs_t_begin', + 'sections_lines_refs_t_begin__SWIG_0', + 'sections_lines_refs_t_begin__SWIG_1', + 'sections_lines_refs_t_capacity', + 'sections_lines_refs_t_clear', + 'sections_lines_refs_t_empty', + 'sections_lines_refs_t_end', + 'sections_lines_refs_t_end__SWIG_0', + 'sections_lines_refs_t_end__SWIG_1', + 'sections_lines_refs_t_erase', + 'sections_lines_refs_t_erase__SWIG_0', + 'sections_lines_refs_t_erase__SWIG_1', + 'sections_lines_refs_t_extract', + 'sections_lines_refs_t_find', + 'sections_lines_refs_t_find__SWIG_0', + 'sections_lines_refs_t_find__SWIG_1', + 'sections_lines_refs_t_grow', + 'sections_lines_refs_t_has', + 'sections_lines_refs_t_inject', + 'sections_lines_refs_t_insert', + 'sections_lines_refs_t_pop_back', + 'sections_lines_refs_t_push_back', + 'sections_lines_refs_t_push_back__SWIG_0', + 'sections_lines_refs_t_push_back__SWIG_1', + 'sections_lines_refs_t_qclear', + 'sections_lines_refs_t_reserve', + 'sections_lines_refs_t_resize', + 'sections_lines_refs_t_resize__SWIG_0', + 'sections_lines_refs_t_resize__SWIG_1', + 'sections_lines_refs_t_size', + 'sections_lines_refs_t_swap', + 'sections_lines_refs_t_truncate', 'seg_flag', 'segm_adjust_diff', 'segm_adjust_ea', @@ -9296,6 +10319,13 @@ 'segm_move_info_vec_t_swap', 'segm_move_info_vec_t_truncate', 'segm_move_infos_t_find', + 'segment_defsr_array___getitem__', + 'segment_defsr_array___len__', + 'segment_defsr_array___setitem__', + 'segment_defsr_array__get_bytes', + 'segment_defsr_array__set_bytes', + 'segment_defsr_array_data_get', + 'segment_t___getDefsr', 'segment_t_abits', 'segment_t_abytes', 'segment_t_align_get', @@ -9315,6 +10345,9 @@ 'segment_t_end_ea_set', 'segment_t_flags_get', 'segment_t_flags_set', + 'segment_t_is_16bit', + 'segment_t_is_32bit', + 'segment_t_is_64bit', 'segment_t_is_header_segm', 'segment_t_is_hidden_segtype', 'segment_t_is_loader_segm', @@ -9342,8 +10375,6 @@ 'segment_t_type_get', 'segment_t_type_set', 'segment_t_update', - 'segment_t_use32', - 'segment_t_use64', 'segtype', 'seh_t_clear', 'seh_t_filter_get', @@ -9360,6 +10391,8 @@ 'sel_pointer_cast', 'sel_pointer_frompointer', 'sel_pointer_value', + 'select_parser_by_name', + 'select_parser_by_srclang', 'select_thread', 'select_udt_by_offset', 'selection_item_t___eq__', @@ -9394,7 +10427,6 @@ 'set_asm_inc_file', 'set_auto_state', 'set_bblk_trace_options', - 'set_bits', 'set_bmask_cmt', 'set_bmask_name', 'set_bpt_group', @@ -9418,6 +10450,7 @@ 'set_cp_validity', 'set_custom_data_type_ids', 'set_custom_viewer_qt_aware', + 'set_data_guessed_by_hexrays', 'set_database_flag', 'set_debug_event_code', 'set_debug_name', @@ -9448,6 +10481,7 @@ 'set_frame_size', 'set_func_cmt', 'set_func_end', + 'set_func_guessed_by_hexrays', 'set_func_name_if_jumpfunc', 'set_func_start', 'set_func_trace_options', @@ -9460,15 +10494,19 @@ 'set_header_path', 'set_highlight', 'set_highlight_trace_options', + 'set_ida_notepad_text', 'set_ida_state', 'set_idcv_attr', 'set_idcv_slice', 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', + 'set_loader_format_name', 'set_lzero', 'set_lzero0', 'set_lzero1', @@ -9490,6 +10528,7 @@ 'set_op_type', 'set_opinfo', 'set_outfile_encoding_idx', + 'set_parser_argv', 'set_path', 'set_process_options', 'set_process_state', @@ -9500,6 +10539,7 @@ 'set_reg_val', 'set_reg_val__SWIG_0', 'set_reg_val__SWIG_1', + 'set_registry_root', 'set_regvar_cmt', 'set_remote_debugger', 'set_resume_mode', @@ -9516,8 +10556,11 @@ 'set_segment_translations', 'set_selector', 'set_source_linnum', + 'set_srcdbg_paths', + 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -9536,15 +10579,19 @@ 'set_tinfo_attrs', 'set_tinfo_property', 'set_trace_base_address', + 'set_trace_dynamic_register_set', 'set_trace_file_desc', 'set_trace_platform', 'set_trace_size', 'set_type', 'set_type_alias', + 'set_type_determined_by_hexrays', + 'set_type_guessed_by_ida', 'set_usemodsp', 'set_user_defined_prefix', 'set_usersp', 'set_userti', + 'set_vftable_ea', 'set_view_renderer_type', 'set_viewer_graph', 'set_visible_func', @@ -9706,11 +10753,14 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9765,6 +10815,8 @@ 'strpath_ids_array___getitem__', 'strpath_ids_array___len__', 'strpath_ids_array___setitem__', + 'strpath_ids_array__get_bytes', + 'strpath_ids_array__set_bytes', 'strpath_ids_array_data_get', 'strpath_t___getIds', 'strpath_t_delta_get', @@ -9774,20 +10826,27 @@ 'strpath_t_len_get', 'strpath_t_len_set', 'stru_flag', + 'struc_t___get_members__', 'struc_t_age_get', 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', - 'struc_t_get_member', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -9798,6 +10857,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -9841,7 +10901,6 @@ 'strwinsetup_t_display_only_existing_strings_set', 'strwinsetup_t_ignore_heads_get', 'strwinsetup_t_ignore_heads_set', - 'strwinsetup_t_is_initialized', 'strwinsetup_t_minlen_get', 'strwinsetup_t_minlen_set', 'strwinsetup_t_only_7bit_get', @@ -9855,6 +10914,7 @@ 'swap_idcvs', 'swap_mcode_relation', 'swapped_relation', + 'switch_dbctx', 'switch_info_t__from_ptrval__', 'switch_info_t__get_values_lowcase', 'switch_info_t__set_values_lowcase', @@ -9886,10 +10946,13 @@ 'switch_info_t_is_nolowcase', 'switch_info_t_is_sparse', 'switch_info_t_is_subtract', + 'switch_info_t_is_user_defined', 'switch_info_t_jcases_get', 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -9907,13 +10970,53 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', + 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', 'sync_source_t_get_register', 'sync_source_t_get_widget', 'sync_source_t_is_register', 'sync_source_t_is_widget', + 'sync_source_vec_t___eq__', + 'sync_source_vec_t___getitem__', + 'sync_source_vec_t___len__', + 'sync_source_vec_t___ne__', + 'sync_source_vec_t___setitem__', + 'sync_source_vec_t__del', + 'sync_source_vec_t_add_unique', + 'sync_source_vec_t_at', + 'sync_source_vec_t_begin', + 'sync_source_vec_t_begin__SWIG_0', + 'sync_source_vec_t_begin__SWIG_1', + 'sync_source_vec_t_capacity', + 'sync_source_vec_t_clear', + 'sync_source_vec_t_empty', + 'sync_source_vec_t_end', + 'sync_source_vec_t_end__SWIG_0', + 'sync_source_vec_t_end__SWIG_1', + 'sync_source_vec_t_erase', + 'sync_source_vec_t_erase__SWIG_0', + 'sync_source_vec_t_erase__SWIG_1', + 'sync_source_vec_t_extract', + 'sync_source_vec_t_find', + 'sync_source_vec_t_find__SWIG_0', + 'sync_source_vec_t_find__SWIG_1', + 'sync_source_vec_t_has', + 'sync_source_vec_t_inject', + 'sync_source_vec_t_insert', + 'sync_source_vec_t_pop_back', + 'sync_source_vec_t_push_back', + 'sync_source_vec_t_qclear', + 'sync_source_vec_t_reserve', + 'sync_source_vec_t_size', + 'sync_source_vec_t_swap', + 'sync_source_vec_t_truncate', 'sync_sources', + 'synced_group_t_has', + 'synced_group_t_has_register', + 'synced_group_t_has_widget', 'tag_addr', 'tag_advance', 'tag_remove', @@ -10003,6 +11106,38 @@ 'tevinforeg_vec_t_swap', 'tevinforeg_vec_t_truncate', 'text_sink_t__print', + 'text_t___getitem__', + 'text_t___len__', + 'text_t___setitem__', + 'text_t_at', + 'text_t_begin', + 'text_t_begin__SWIG_0', + 'text_t_begin__SWIG_1', + 'text_t_capacity', + 'text_t_clear', + 'text_t_empty', + 'text_t_end', + 'text_t_end__SWIG_0', + 'text_t_end__SWIG_1', + 'text_t_erase', + 'text_t_erase__SWIG_0', + 'text_t_erase__SWIG_1', + 'text_t_extract', + 'text_t_grow', + 'text_t_inject', + 'text_t_insert', + 'text_t_pop_back', + 'text_t_push_back', + 'text_t_push_back__SWIG_0', + 'text_t_push_back__SWIG_1', + 'text_t_qclear', + 'text_t_reserve', + 'text_t_resize', + 'text_t_resize__SWIG_0', + 'text_t_resize__SWIG_1', + 'text_t_size', + 'text_t_swap', + 'text_t_truncate', 'textctrl_info_t_assign', 'textctrl_info_t_create', 'textctrl_info_t_destroy', @@ -10108,6 +11243,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -10240,6 +11376,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -10319,8 +11456,16 @@ 'tryblks_t_size', 'tryblks_t_swap', 'tryblks_t_truncate', - 'twinpos_t___eq__', - 'twinpos_t___ne__', + 'twinline_t_at_get', + 'twinline_t_at_set', + 'twinline_t_bg_color_get', + 'twinline_t_bg_color_set', + 'twinline_t_is_default_get', + 'twinline_t_is_default_set', + 'twinline_t_line_get', + 'twinline_t_line_set', + 'twinline_t_prefix_color_get', + 'twinline_t_prefix_color_set', 'twinpos_t_at_get', 'twinpos_t_at_set', 'twinpos_t_x_get', @@ -10381,6 +11526,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -10391,8 +11540,12 @@ 'uchar_array_cast', 'uchar_array_frompointer', 'udc_filter_t_apply', + 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', + 'udc_filter_t_install', 'udc_filter_t_match', + 'udc_filter_t_remove', 'udcall_map_begin', 'udcall_map_clear', 'udcall_map_end', @@ -10417,6 +11570,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -10426,6 +11580,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -10439,6 +11594,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -10448,6 +11604,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -10471,6 +11628,7 @@ 'udt_type_data_t_pack_set', 'udt_type_data_t_sda_get', 'udt_type_data_t_sda_set', + 'udt_type_data_t_set_vftable', 'udt_type_data_t_swap', 'udt_type_data_t_taudt_bits_get', 'udt_type_data_t_taudt_bits_set', @@ -10478,46 +11636,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', @@ -10567,6 +11725,45 @@ 'ui_stroff_ops_t_size', 'ui_stroff_ops_t_swap', 'ui_stroff_ops_t_truncate', + 'uint64vec_t___eq__', + 'uint64vec_t___getitem__', + 'uint64vec_t___len__', + 'uint64vec_t___ne__', + 'uint64vec_t___setitem__', + 'uint64vec_t__del', + 'uint64vec_t_add_unique', + 'uint64vec_t_at', + 'uint64vec_t_begin', + 'uint64vec_t_begin__SWIG_0', + 'uint64vec_t_begin__SWIG_1', + 'uint64vec_t_capacity', + 'uint64vec_t_clear', + 'uint64vec_t_empty', + 'uint64vec_t_end', + 'uint64vec_t_end__SWIG_0', + 'uint64vec_t_end__SWIG_1', + 'uint64vec_t_erase', + 'uint64vec_t_erase__SWIG_0', + 'uint64vec_t_erase__SWIG_1', + 'uint64vec_t_extract', + 'uint64vec_t_find', + 'uint64vec_t_find__SWIG_0', + 'uint64vec_t_find__SWIG_1', + 'uint64vec_t_has', + 'uint64vec_t_inject', + 'uint64vec_t_insert', + 'uint64vec_t_pop_back', + 'uint64vec_t_push_back', + 'uint64vec_t_push_back__SWIG_0', + 'uint64vec_t_push_back__SWIG_1', + 'uint64vec_t_qclear', + 'uint64vec_t_reserve', + 'uint64vec_t_resize', + 'uint64vec_t_resize__SWIG_0', + 'uint64vec_t_resize__SWIG_1', + 'uint64vec_t_size', + 'uint64vec_t_swap', + 'uint64vec_t_truncate', 'uintvec_t___eq__', 'uintvec_t___getitem__', 'uintvec_t___len__', @@ -10606,45 +11803,6 @@ 'uintvec_t_size', 'uintvec_t_swap', 'uintvec_t_truncate', - 'ulonglongvec_t___eq__', - 'ulonglongvec_t___getitem__', - 'ulonglongvec_t___len__', - 'ulonglongvec_t___ne__', - 'ulonglongvec_t___setitem__', - 'ulonglongvec_t__del', - 'ulonglongvec_t_add_unique', - 'ulonglongvec_t_at', - 'ulonglongvec_t_begin', - 'ulonglongvec_t_begin__SWIG_0', - 'ulonglongvec_t_begin__SWIG_1', - 'ulonglongvec_t_capacity', - 'ulonglongvec_t_clear', - 'ulonglongvec_t_empty', - 'ulonglongvec_t_end', - 'ulonglongvec_t_end__SWIG_0', - 'ulonglongvec_t_end__SWIG_1', - 'ulonglongvec_t_erase', - 'ulonglongvec_t_erase__SWIG_0', - 'ulonglongvec_t_erase__SWIG_1', - 'ulonglongvec_t_extract', - 'ulonglongvec_t_find', - 'ulonglongvec_t_find__SWIG_0', - 'ulonglongvec_t_find__SWIG_1', - 'ulonglongvec_t_has', - 'ulonglongvec_t_inject', - 'ulonglongvec_t_insert', - 'ulonglongvec_t_pop_back', - 'ulonglongvec_t_push_back', - 'ulonglongvec_t_push_back__SWIG_0', - 'ulonglongvec_t_push_back__SWIG_1', - 'ulonglongvec_t_qclear', - 'ulonglongvec_t_reserve', - 'ulonglongvec_t_resize', - 'ulonglongvec_t_resize__SWIG_0', - 'ulonglongvec_t_resize__SWIG_1', - 'ulonglongvec_t_size', - 'ulonglongvec_t_swap', - 'ulonglongvec_t_truncate', 'unhide_border', 'unhide_item', 'unmark_selection', @@ -10656,6 +11814,7 @@ 'unregister_custom_data_format', 'unregister_custom_data_type', 'unregister_timer', + 'upd_abits', 'update_action_checkable', 'update_action_checked', 'update_action_icon', @@ -10670,6 +11829,7 @@ 'update_func', 'update_hidden_range', 'update_segm', + 'use_golang_cc', 'use_mapping', 'user_cancelled', 'user_cmts_begin', @@ -10691,6 +11851,7 @@ 'user_cmts_size', 'user_cmts_t_at', 'user_cmts_t_size', + 'user_defined_prefix_t_get_user_defined_prefix', 'user_graph_place_t_node_get', 'user_graph_place_t_node_set', 'user_identification_t_email_get', @@ -10810,6 +11971,7 @@ 'user_unions_size', 'user_unions_t_at', 'user_unions_t_size', + 'uses_aflag_modsp', 'uses_modsp', 'uval_array___getitem__', 'uval_array___setitem__', @@ -10832,6 +11994,8 @@ 'uval_ivl_ivlset_t_qclear', 'uval_ivl_ivlset_t_set_all_values', 'uval_ivl_ivlset_t_single_value', + 'uval_ivl_ivlset_t_single_value__SWIG_0', + 'uval_ivl_ivlset_t_single_value__SWIG_1', 'uval_ivl_ivlset_t_swap', 'uval_ivl_t_end', 'uval_ivl_t_last', @@ -10928,6 +12092,7 @@ 'var_ref_t___lt__', 'var_ref_t___ne__', 'var_ref_t_compare', + 'var_ref_t_getv', 'var_ref_t_idx_get', 'var_ref_t_idx_set', 'var_ref_t_mba_get', @@ -11135,7 +12300,12 @@ 'xrefblk_t_user_set', 'xrefchar', 'xreflist_entry_t___eq__', + 'xreflist_entry_t___ge__', + 'xreflist_entry_t___gt__', + 'xreflist_entry_t___le__', + 'xreflist_entry_t___lt__', 'xreflist_entry_t___ne__', + 'xreflist_entry_t_compare', 'xreflist_entry_t_ea_get', 'xreflist_entry_t_ea_set', 'xreflist_entry_t_opnum_get', diff --git a/build.py b/build.py index 333cddf..ef1cc1c 100644 --- a/build.py +++ b/build.py @@ -21,20 +21,20 @@ had to build/install it yourself, you will have to specify '--swig-home'. What follows, are example build commands -### Windows (assume SWiG is installed in C:\swigwin-2.0.12, and IDA is in C:\Program Files\IDA7) +### Windows (assume SWiG is installed in C:\swigwin-4.0.1, and IDA is in C:\Program Files\IDA8) - python2 build.py \\ + python3 build.py \\ --with-hexrays \\ - --swig-home C:/swigwin-2.0.12 \\ - --idc "c:/Program\ Files/IDA_7.0-171130-tests/idc/idc.idc" + --swig-home C:/swigwin-4.0.1 \\ + --ida-install "c:/Program\ Files/IDA_8.0" -### Linux/OSX (assume SWiG is installed in /opt/swiglinux-2.0.12, and IDA is in /opt/my-ida-install) +### Linux/OSX (assume SWiG is installed in /opt/swiglinux-4.0.1, and IDA is in /opt/my-ida-install) - python2 build.py \\ + python3 build.py \\ --with-hexrays \\ - --swig-home /opt/swiglinux-2.0.12 \\ - --idc /opt/my-ida-install/idc/idc.idc + --swig-home /opt/swiglinux-4.0.1 \\ + --ida-install /opt/my-ida-install """, formatter_class=argparse.RawTextHelpFormatter) parser.add_argument("--swig-home", type=str, help="Path to the SWIG installation", default=None) @@ -42,10 +42,11 @@ parser.add_argument("--with-hexrays", help="Build Hex-Rays decompiler bindings ( parser.add_argument("--debug", help="Build debug version of the plugin", default=False, action="store_true") parser.add_argument("-j", "--parallel", action="store_true", help="Build in parallel", default=False) parser.add_argument("-v", "--verbose", help="Verbose mode", default=False, action="store_true") -parser.add_argument("-I", "--idc", required=True, help="IDA's idc.idc file (necessary for generating 6.95 compat API layer)", type=str) +parser.add_argument("-I", "--ida-install", required=True, help="IDA's installation directory", type=str) args = parser.parse_args() -_probe = os.path.join("..", "..", "include", "pro.h") +sdk_relpath = os.path.join("..", "..") +_probe = os.path.join(sdk_relpath, "include", "pro.h") assert os.path.exists(_probe), "Could not find IDA SDK include path (looked for: \"%s\")" % _probe @@ -76,7 +77,8 @@ def main(): env["NDEBUG"] = "1" if args.verbose: argv.append("-d") - env["IDC_BC695_IDC_SOURCE"] = args.idc.replace('\\', '/') + env["IDA_INSTALL"] = args.ida_install.replace('\\', '/') + env["SDK_BIN_PATH"] = os.path.abspath(os.path.join(sdk_relpath, "bin")).replace('\\', '/') for ea64 in [True, False]: if ea64: env["__EA64__"] = "1" diff --git a/docs/bc695.md b/docs/bc695.md deleted file mode 100644 index d7ade40..0000000 --- a/docs/bc695.md +++ /dev/null @@ -1,46 +0,0 @@ - -IDAPython for IDA 7.00: backward-compatibility with 6.95 APIs -============================================================= - -Availability of the backward-compatibility code ------------------------------------------------ - -* Backward-compatibility is provided by python.cfg's - `AUTOIMPORT_COMPAT_IDA695` directive. This directive is - currently turned on by default, but in the future it will: - 1. be turned off by default - 1. eventually disappear, and all the corresponding code will be removed - -* Consequently IDAPython script/plugin writers should try and port - their code, with the help of the porting guide XXX FIXME URL? XXX. - -* Once you have done the porting, please check that your code works - with `AUTOIMPORT_COMPAT_IDA695` set to `NO`. - -* If anything proves too hard or confusing, please let us know about - it on , and we will help you, either by fixing - IDAPython if needed, or by improving the documentation. - - -Coverage of the backward-compatibility code -------------------------------------------- - -* We did what was reasonably feasible, to provide an IDAPython API - that's as backward-compatible as possible with the IDA 6.95 API - -* However, we considered it unreasonable for some parts of the API - to be ported. Most notably: - * the "processor module" API: existing processor modules will - have to be ported to the new API. Please see the SDK's - `module/script/proctemplate.py` (or any other `*.py` file in - that directory) for examples how to use the new API. - * processor module-related notifications: some of those have either - been renamed, or have possibly changed signature - -* Most (all?) of the renamed functions, properties, etc... should be - covered, in all modules: `idaapi`, `idc`, ... - If something doesn't work/isn't there anymore, it's likely an - omission from our side. - -* Please let us know about any missing bits & pieces, that you - believe should be there and that we might have forgotten! diff --git a/docs/bc695.sh b/docs/bc695.sh deleted file mode 100755 index 9cc5f9d..0000000 --- a/docs/bc695.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -TARGET_DIR=../../../../www/www.hex-rays.com/public_html/hex-rays/products/ida/7.0/docs -TARGET_FILE=$TARGET_DIR/idapython_backward_compat_695.html -p4 edit $TARGET_FILE -echo \\ > $TARGET_FILE -echo \ >> $TARGET_FILE -echo \ >> $TARGET_FILE -echo \\ >> $TARGET_FILE -markdown bc695.md >> $TARGET_FILE -echo \\ >> $TARGET_FILE -p4 revert -a $TARGET_FILE diff --git a/docs/howto/swig.md b/docs/howto/swig.md new file mode 100644 index 0000000..17939cb --- /dev/null +++ b/docs/howto/swig.md @@ -0,0 +1,90 @@ + +This is an FAQ-style repository of SWiG incantations that are +regularly needed. + +# Remove an argument from a prototype (because it doesn't make sense in the context of IDAPython) + + %typemap(in,numinputs=0) int length + { + $1 = -1; // always -1 in IDAPython + } + +# Add a parameter to a C++ notification + +Assume a notification named `struc_renamed`, to which you just +added a `bool success` parameter (to carry along information about the +operation's success so far): + + struc_renamed, ///< A structure type has been renamed. + ///< \param sptr (::struc_t *) + ///< \param success (bool) // <--------- new + +That new parameter will be picked up by the hooks-producing code +automatically (great!), which means existing hooks are now broken +(bad.) + +We need to add support for calling into "old-style" hooks. That's done +through the `patch_codegen.py` mechanism, and in particular the +`director_method_call_arity_cap` rule. Something like this should do: + + "SwigDirector_IDB_Hooks::struc_renamed" : [ + ("director_method_call_arity_cap", ( + False, # add GIL lock + "struc_renamed", + "(method ,(PyObject *)obj0,(__argcnt < 3 ? nullptr : (PyObject *)obj1), nullptr)", + "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(__argcnt < 3 ? nullptr : (PyObject *)obj1), nullptr)") + )), + ], + +# Handle a virtual method's "output" parameter in a director + +Assume you have a virtual method taking an 'output' argument: + + void merge_node_helper_t::get_column_headers(qstrvec_t *out, ...) + +The neat thing to do here is to let Python implementations do the +following: + + def get_column_headers(self, ...): + # ... + return ["Name", "Address"] + +To achieve that, you want to use the `directorargout` typemap: + + %typemap(directorargout) qstrvec_t * (qstrvec_t tmp) + { // %typemap(directorargout) qstrvec_t * + if ( PyW_PyListToStrVec(&tmp, $result) >= 0 ) + { + $1->swap(tmp); + } + else + { + Swig::DirectorTypeMismatchException::raise( + SWIG_ErrorType(SWIG_TypeError), + "in output value of type 'qstrvec_t' in method '$symname'"); + } + } + +# "intercept" access to a structure/class field, in order to perform extra work + +For example, `idainfo.lflags` bits should be set using proper setters, +because they can have side-effects. + +. tell swig to consider the member as unreachable: + + %ignore idainfo::lflags; + +. extend the type to "manually" provide the field: + + %extend idainfo + { + // ... + uint32 _get_lflags() const { return $self->lflags; } + void _set_lflags(uint32 _f) + { + // do the job here + } + + %pythoncode { + lflags = property(_get_lflags, _set_lflags) + diff --git a/docs/inject_pydoc.md b/docs/inject_pydoc.md new file mode 100644 index 0000000..b12efe5 --- /dev/null +++ b/docs/inject_pydoc.md @@ -0,0 +1,75 @@ + +# inject_pydoc.py + +This tool is in charge extracting information from the C++ SDK +headers, and inject it into IDAPython's documentation. + +## Extracting the C++ SDK information/documentation + +The IDAPython build system will run `doxygen` against the SDK headers, +asking it to output all the information it could extract, as `XML` +format for later use - by `inject_pydoc.py`, but not only… + +## Applying the documentation + +Then, we run `tools/inject_pydoc.py`, to process that `XML` +content and extract documentation about the functions, classes, +methods, variables, etc… that are present in the corresponding +IDAPython module. + +## Fixing the input parameters + +We cannot blindly apply the SDK documentation, however: some C++ +function parameters will turn into output values when converted to +Python, and thus it makes no sense to have those parameters as part of +the IDAPython function documentation. For example, when wrapping + + inline void get_registered_actions(qstrvec_t *out) + +into `ida_kernwin.get_registered_actions`, the `out` parameter will +turn into a `list(str)`, so it makes no sense to see the corresponding +C++ header's documentation: + + /// \param out the list of actions to be filled + +into the IDAPython documentation. + +Fortunately, we can rely on SWiG's help to do that, because even +though SWiG doesn't know how to import C++ header's documentation, it +*will* tell us what parameters are present in the wrapped prototype. + +Therefore, we collect the SWiG-generated list of parameters from the +prototype, and simply remove the non-relevant bits from the C++ +header's documentation before injecting that into IDAPython. + +## Fixing the return values + +Because all of that was too easy, IDAPython adds another layer of +complexity (craziness?) for fixing the return values. + +When it comes to the input parameters, it's actually _fairly_ easy to +drop the irrelevant bits from the C++ SDK header's documentation: we +know what parameters SWiG will keep & wrap. + +But for the return values, it's another story entirely: SWiG doesn't +know (and cannot always reliably know) what type a return value will +have. +In particular when it comes to custom code in `pywraps/` that returns +a `PyObject *`. + +Therefore, we have put a mechanism into place, that lets us put a +"wrapper" around _all_ IDAPython functions/class methods, that will +trace/keep track of the types of the values that were passed in, and +the types of the values that were spit out by those functions. + +We can then use that wrapper when running tests, collect information +from the tests that were run, process that information, and save it +into `tools/collected_traces.txt`, which will then be used by +`inject_pydoc.py`. + +It's worth pointing out that that information is not, and could not +possibly, be generated at build-time: it must be done at another time +(e.g., after running tests), which is very different than the +mechanism used for fixing the parameters (that "simply" relies on the +`doxygen`-parsed `XML`-formatted documentation.) + diff --git a/docs/pydoc.md b/docs/pydoc.md new file mode 100644 index 0000000..da4e069 --- /dev/null +++ b/docs/pydoc.md @@ -0,0 +1,22 @@ + +# IDAPython runtime documentation + +We define the "IDAPython runtime documentation" as the documentation +that's available through Python's `help()` system, while the user is +interacting with `IDAPython` during an IDA session. + +That documentation is SWiG-generated + patched, or custom written. + +## Custom-written documentation + +Some functions have custom-written documentation (check for +tags in the `pywraps/` directory), but the general case is that the +documentation is automatically generated by SWiG, and then patched. + +## SWiG-generated + patched documentation + +Because SWiG doesn't know about the C++ SDK header's documentation, we +need a way to "import" that documentation into IDAPython. + +That's done by `tools/inject_pydoc.py` which deserves +[its own documentation](inject_pydoc.md) diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..3ae4985 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,37 @@ + +# IDAPython examples + +This directory contains a variety of examples demonstrating +how IDA can be scripted using IDAPython. + +## Adding a new example (for Hex-Rays developers) + +When adding an example, the author (i.e., a Hex-Rays developer) +must add a corresponding test, making sure the example is properly +tested, and doesn't regress over time (see `idapython-examples`, +and `idapython_hr-examples` test suites.) This has the added benefit +that this ensures our APIs remain stable. + +Also, any significant addition to IDAPython APIs should come +with one or many examples, and those should be also put under test +(in other words: it's better if a test relies on a real example, +rather than if it consists of a bunch of IDAPython code our +users will never see, and cannot be inspired from.) + +## Helping our customers, teaching IDAPython in the process + +In addition, when a customer asks for help on support@ (or the forums) +and we end up sending a significant body of IDAPython code as a reply, +since that body of code should be tested anyway, it's better to make +a real example out of it ... and, of course, put that example under +test as well. + +## Maintaining quality + +There should be no such thing as a non-tested example. + +## Updating the examples index + +All examples are automatically integrated in the examples index. +In order to show user-friendly & relevant information, a proper +header (docstring) needs to be present. diff --git a/examples/analysis/dump_func_info.py b/examples/analysis/dump_func_info.py new file mode 100644 index 0000000..4e327cc --- /dev/null +++ b/examples/analysis/dump_func_info.py @@ -0,0 +1,107 @@ +""" +summary: dump (some) information about the current function. + +description: + Dump some of the most interesting bits of information about + the function we are currently looking at. +""" + +import binascii + +import ida_kernwin +import ida_funcs + + +def dump_flags(fn): + "dump some flags of the func_t object" + print("Function flags: %08X" % fn.flags) + if fn.is_far(): + print(" Far function") + if not fn.does_return(): + print(" Function does not return") + if fn.flags & ida_funcs.FUNC_FRAME: + print(" Function uses frame pointer") + if fn.flags & ida_funcs.FUNC_THUNK: + print(" Thunk function") + if fn.flags & ida_funcs.FUNC_LUMINA: + print(" Function info is provided by Lumina") + if fn.flags & ida_funcs.FUNC_OUTLINE: + print(" Outlined code, not a real function") + + +def dump_regvars(pfn): + "dump renamed registers information" + assert ida_funcs.is_func_entry(pfn) + print("Function has %d renamed registers" % pfn.regvarqty) + for rv in pfn.regvars: + print("%08X..%08X '%s'->'%s'" % (rv.start_ea, rv.end_ea, rv.canon, rv.user)) + +def dump_regargs(pfn): + "dump register arguments information" + assert ida_funcs.is_func_entry(pfn) + print("Function has %d register arguments" % pfn.regargqty) + for ra in pfn.regargs: + print(" register #=%d, argument name=\"%s\", (serialized) type=\"%s\"" % ( + ra.reg, + ra.name, + binascii.hexlify(ra.type))) + + +def dump_tails(pfn): + "dump function tails for entry chunk pfn" + assert ida_funcs.is_func_entry(pfn) + print("Function has %d tails" % pfn.tailqty) + for i in range(pfn.tailqty): + ft = pfn.tails[i] + print(" tail %i: %08X..%08X" % (i, ft.start_ea, ft.end_ea)) + + +def dump_stkpnts(pfn): + "dump function stack points" + print("Function has %d stack points" % pfn.pntqty) + for i in range(pfn.pntqty): + pnt = pfn.points[i] + print(" stkpnt %i @%08X: %d" % (i, pnt.ea, pnt.spd)) + + +def dump_frame(fn): + "dump function frame info" + assert ida_funcs.is_func_entry(fn) + print("frame structure id: %08X" % fn.frame) + print("local variables area size: %8X" % fn.frsize) + print("saved registers area size: %8X" % fn.frregs) + print("bytes purged on return : %8X" % fn.argsize) + print("frame pointer delta : %8X" % fn.fpd) + + +def dump_parents(fn): + "dump parents of a function tail" + assert ida_funcs.is_func_tail(fn) + print("owner function: %08X" % fn.owner) + print("tail has %d referers" % fn.refqty) + for i in range(fn.refqty): + print(" referer %i: %08X" % (i, fn.referers[i])) + + +def dump_func_info(ea): + "dump info about function chunk at address 'ea'" + pfn = ida_funcs.get_fchunk(ea) + if pfn is None: + print("No function at %08X!" % ea) + return + print("current chunk boundaries: %08X..%08X" % (pfn.start_ea, pfn.end_ea)) + dump_flags(pfn) + if (ida_funcs.is_func_entry(pfn)): + print ("This is an entry chunk") + dump_tails(pfn) + dump_frame(pfn) + dump_regvars(pfn) + dump_regargs(pfn) + dump_stkpnts(pfn) + elif (ida_funcs.is_func_tail(pfn)): + print ("This is a tail chunk") + dump_parents(pfn) + + +ea = ida_kernwin.get_screen_ea() +dump_func_info(ea) diff --git a/examples/core/actions.py b/examples/core/actions.py index da922d6..86274f9 100644 --- a/examples/core/actions.py +++ b/examples/core/actions.py @@ -1,19 +1,44 @@ -from __future__ import print_function -import idaapi +""" +summary: custom actions, with icons & tooltips -class SayHi(idaapi.action_handler_t): +description: + How to create user actions, that once created can be + inserted in menus, toolbars, context menus, ... + + Those actions, when triggered, will be passed a 'context' + that contains some of the most frequently needed bits of + information. + + In addition, custom actions can determine when they want + to be available (through their + `ida_kernwin.action_handler_t.update` callback) + +keywords: actions + +see_also: add_hotkey +""" + +from __future__ import print_function + +import ida_kernwin + +class SayHi(ida_kernwin.action_handler_t): def __init__(self, message): - idaapi.action_handler_t.__init__(self) + ida_kernwin.action_handler_t.__init__(self) self.message = message def activate(self, ctx): print("Hi, %s" % (self.message)) + # print("context fields: %s" % dir(ctx)) + print(" cur_ea %08X" % ctx.cur_ea) + print(" cur_value: %08X" % ctx.cur_value) + print(" cur_extracted_ea %08X" % ctx.cur_extracted_ea) return 1 # You can implement update(), to inform IDA when: # * your action is enabled # * update() should queried again - # E.g., returning 'idaapi.AST_ENABLE_FOR_WIDGET' will + # E.g., returning 'ida_kernwin.AST_ENABLE_FOR_WIDGET' will # tell IDA that this action is available while the # user is in the current widget, and that update() # must be queried again once the user gives focus @@ -25,7 +50,7 @@ class SayHi(idaapi.action_handler_t): # querying update() anymore until the user has moved # to another view.. def update(self, ctx): - return idaapi.AST_ENABLE_FOR_WIDGET if ctx.widget_type == idaapi.BWN_DISASM else idaapi.AST_DISABLE_FOR_WIDGET + return ida_kernwin.AST_ENABLE_FOR_WIDGET if ctx.widget_type == ida_kernwin.BWN_DISASM else ida_kernwin.AST_DISABLE_FOR_WIDGET print("Creating a custom icon from raw data!") @@ -49,12 +74,12 @@ icon_data = b"".join([ b"\xF6\xC1\xED\x52\xB8\x77\xAB\x98\x3A\xCD\xC4\x73\x9D\x7C\x6F\xDE\xF9\xCF\x53\x0E\xFE\xA9\xCD\xAE\xB3\x87\xCE\x75\x35\x54\xE1\xD0\xCB\x47\x38\x39\x36\x88\xFF\x4D\xF8\x57\x41\x33", b"\xF1\xA4\x93\x0F\x00\x36\xAD\x3E\x4C\x6B\xC5\xC9\x5D\x77\x6A\x2F\xB4\x31\xA3\xC4\x40\x4F\x21\x0F\xD1\x4C\x3C\xE9\x2B\xE1\xF5\x0B\xD6\x90\xC8\x90\x4C\xE6\x35\xD0\xCC\x79\x5E\xFF", b"\x2E\xF8\x0B\x2F\x3D\xE5\xC3\x97\x06\xCF\xCF\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"]) -act_icon = idaapi.load_custom_icon(data=icon_data, format="png") +act_icon = ida_kernwin.load_custom_icon(data=icon_data, format="png") hooks = None act_name = "example:add_action" -if idaapi.register_action(idaapi.action_desc_t( +if ida_kernwin.register_action(ida_kernwin.action_desc_t( act_name, # Name. Acts as an ID. Must be unique. "Say hi!", # Label. That's what users see. SayHi("developer"), # Handler. Called when activated, and for updating @@ -64,13 +89,13 @@ if idaapi.register_action(idaapi.action_desc_t( print("Action registered. Attaching to menu.") # Insert the action in the menu - if idaapi.attach_action_to_menu("Edit/Export data", act_name, idaapi.SETMENU_APP): + if ida_kernwin.attach_action_to_menu("Edit/Export data", act_name, ida_kernwin.SETMENU_APP): print("Attached to menu.") else: print("Failed attaching to menu.") # Insert the action in a toolbar - if idaapi.attach_action_to_toolbar("AnalysisToolBar", act_name): + if ida_kernwin.attach_action_to_toolbar("AnalysisToolBar", act_name): print("Attached to toolbar.") else: print("Failed attaching to toolbar.") @@ -81,7 +106,7 @@ if idaapi.register_action(idaapi.action_desc_t( # To do that, we could in theory retrieve a reference to "IDA View-A", and # then request to "permanently" attach the action to it, using something # like this: - # idaapi.attach_action_to_popup(ida_view_a, None, act_name, None) + # ida_kernwin.attach_action_to_popup(ida_view_a, None, act_name, None) # # but alas, that won't do: widgets in IDA are very "volatile", and # can be deleted & re-created on some occasions (e.g., starting a @@ -92,17 +117,17 @@ if idaapi.register_action(idaapi.action_desc_t( # Instead, we can opt for a different method: attach our action on-the-fly, # when the popup for "IDA View-A" is being populated, right before # it is displayed. - class Hooks(idaapi.UI_Hooks): + class Hooks(ida_kernwin.UI_Hooks): def finish_populating_widget_popup(self, widget, popup): # We'll add our action to all "IDA View-*"s. # If we wanted to add it only to "IDA View-A", we could # also discriminate on the widget's title: # - # if idaapi.get_widget_title(widget) == "IDA View-A": + # if ida_kernwin.get_widget_title(widget) == "IDA View-A": # ... # - if idaapi.get_widget_type(widget) == idaapi.BWN_DISASM: - idaapi.attach_action_to_popup(widget, popup, act_name, None) + if ida_kernwin.get_widget_type(widget) == ida_kernwin.BWN_DISASM: + ida_kernwin.attach_action_to_popup(widget, popup, act_name, None) hooks = Hooks() hooks.hook() @@ -110,7 +135,7 @@ else: print("Action found; unregistering.") # No need to call detach_action_from_menu(); it'll be # done automatically on destruction of the action. - if idaapi.unregister_action(act_name): + if ida_kernwin.unregister_action(act_name): print("Unregistered.") else: print("Failed to unregister action.") diff --git a/examples/core/add_hotkey.py b/examples/core/add_hotkey.py index f4b0975..a79e146 100644 --- a/examples/core/add_hotkey.py +++ b/examples/core/add_hotkey.py @@ -1,24 +1,37 @@ +""" +summary: triggering bits of code by pressing a shortcut + +description: + `ida_kernwin.add_hotkey` is a simpler, but much less flexible + alternative to `ida_kernwin.register_action` (though it does + use the same mechanism under the hood.) + + It's particularly useful during prototyping, but note that the + actions that are created cannot be inserted in menus, toolbars + or cannot provide a custom `ida_kernwin.action_handler_t.update` + callback. + +keywords: actions + +see_also: actions +""" + from __future__ import print_function -#--------------------------------------------------------------------- -# This script demonstrates the usage of hotkeys. -# -# -# Author: IDAPython team -#--------------------------------------------------------------------- -import idaapi + +import ida_kernwin def hotkey_pressed(): print("hotkey pressed!") try: hotkey_ctx - if idaapi.del_hotkey(hotkey_ctx): + if ida_kernwin.del_hotkey(hotkey_ctx): print("Hotkey unregistered!") del hotkey_ctx else: print("Failed to delete hotkey!") except: - hotkey_ctx = idaapi.add_hotkey("Shift-A", hotkey_pressed) + hotkey_ctx = ida_kernwin.add_hotkey("Shift-A", hotkey_pressed) if hotkey_ctx is None: print("Failed to register hotkey!") del hotkey_ctx diff --git a/examples/core/add_hotkey2.py b/examples/core/add_hotkey2.py deleted file mode 100644 index b4062f2..0000000 --- a/examples/core/add_hotkey2.py +++ /dev/null @@ -1,25 +0,0 @@ -from __future__ import print_function -#--------------------------------------------------------------------- -# This script demonstrates the usage of hotkeys. -# -# Note: Hotkeys only work with the GUI version of IDA and not in -# text mode. -# -# Author: Gergely Erdelyi -#--------------------------------------------------------------------- -import idaapi - -def foo(): - print("Hotkey activated!") - -# IDA binds hotkeys to IDC functions so a trampoline IDC function -# must be created -idaapi.compile_idc_text('static key_2() { RunPythonStatement("foo()"); }') -# Add the hotkey -add_idc_hotkey("2", 'key_2') - -# Press 2 to activate foo() - -# The hotkey can be removed with -# del_idc_hotkey('2') - diff --git a/examples/core/add_idc_hotkey.py b/examples/core/add_idc_hotkey.py new file mode 100644 index 0000000..e17b920 --- /dev/null +++ b/examples/core/add_idc_hotkey.py @@ -0,0 +1,32 @@ +""" +summary: triggering bits of code by pressing a shortcut (older version) + +description: + This is a somewhat ancient way of registering actions & binding + shortcuts. It's still here for reference, but "fresher" alternatives + should be preferred. + +keywords: actions + +see_also: actions, add_hotkey +""" + +from __future__ import print_function + +import ida_expr +import ida_kernwin + +def say_hi(): + print("Hotkey activated!") + +# IDA binds hotkeys to IDC functions so a trampoline IDC function must be created +ida_expr.compile_idc_text('static key_2() { RunPythonStatement("say_hi()"); }') + +# Add the hotkey +ida_kernwin.add_idc_hotkey("2", 'key_2') + +# Press 2 to activate foo() + +# The hotkey can be removed with +# ida_kernwin.del_idc_hotkey('2') + diff --git a/examples/core/auto_instantiate_widget_plugin.py b/examples/core/auto_instantiate_widget_plugin.py index ea52fed..a0ae3de 100644 --- a/examples/core/auto_instantiate_widget_plugin.py +++ b/examples/core/auto_instantiate_widget_plugin.py @@ -1,3 +1,28 @@ +""" +summary: better integrating custom widgets in the desktop layout + +description: + This is an example demonstrating how one can create widgets from a plugin, + and have them re-created automatically at IDA startup-time or at desktop load-time. + + This example should be placed in the 'plugins' directory of the + IDA installation, for it to work. + + There are 2 ways to use this example: + 1) reloading an IDB, where the widget was opened + - open the widget ('View > Open subview > ...') + - save this IDB, and close IDA + - restart IDA with this IDB + => the widget will be visible + + 2) reloading a desktop, where the widget was opened + - open the widget ('View > Open subview > ...') + - save the desktop ('Windows > Save desktop...') under, say, the name 'with_auto' + - start another IDA instance with some IDB, and load that desktop + => the widget will be visible + +keywords: desktop +""" import ida_idaapi import ida_kernwin @@ -13,26 +38,7 @@ class auto_inst_t(ida_kernwin.simplecustviewer_t): if not ida_kernwin.simplecustviewer_t.Create(self, title): return False - text = r""" -This is an example demonstrating how one can create widgets from a plugin, -and have them re-created automatically at IDA startup-time or at desktop load-time. - -This example should be placed in the 'plugins' directory of the -IDA installation, for it to work. - -There are 2 ways to use this example: -1) reloading an IDB, where the widget was opened - - open the widget ('View > Open subview > """ + title + """') - - save this IDB, and close IDA - - restart IDA with this IDB - => the widget will be visible - -2) reloading a desktop, where the widget was opened - - open the widget ('View > Open subview > """ + title + """') - - save the desktop ('Windows > Save desktop...') under, say, the name 'with_auto' - - start another IDA instance with some IDB, and load that desktop - => the widget will be visible -""" + text = __doc__ for l in text.split("\n"): self.AddLine(l) return True diff --git a/examples/core/bin_search.py b/examples/core/bin_search.py new file mode 100644 index 0000000..8a0a892 --- /dev/null +++ b/examples/core/bin_search.py @@ -0,0 +1,97 @@ +""" +summary: showcasing `ida_bytes.bin_search` + +description: + IDAPython's ida_bytes.bin_search function is pretty powerful, + but can be tough to figure out at first. This example introduces + + * `ida_bytes.bin_search`, and + * `ida_bytes.parse_binpat_str` + + in order to implement a simple replacement for the + 'Search > Sequence of bytes...' dialog, that lets users + search for sequences of bytes that compose string literals + in the binary file (either in the default 1-byte-per-char + encoding, or as UTF-16.) +""" + +from __future__ import print_function + + +import ida_kernwin +import ida_bytes +import ida_ida +import ida_idaapi +import ida_nalt + +class search_strlit_form_t(ida_kernwin.Form): + def __init__(self): + ida_kernwin.Form.__init__( + self, + r"""Please enter string literal + + +<#UTF16-BE if file is big-endian, UTF16-LE otherwise#As UTF-16: {UTF16}>{Encoding}> +""", + { + "Text" : ida_kernwin.Form.StringInput(), + "Encoding" : ida_kernwin.Form.ChkGroupControl(("UTF16",)), + }) + +class search_strlit_ah_t(ida_kernwin.action_handler_t): + def __init__(self): + ida_kernwin.action_handler_t.__init__(self) + + def activate(self, ctx): + f = search_strlit_form_t() + f, args = f.Compile() + ok = f.Execute() + if ok: + current_ea = ida_kernwin.get_screen_ea() + patterns = ida_bytes.compiled_binpat_vec_t() + encoding = ida_nalt.get_default_encoding_idx( + ida_nalt.BPU_2B if f.Encoding.value else ida_nalt.BPU_1B) + # string literals must be quoted. That's how parse_binpat_str + # recognizes them (we want to be careful though: the user + # might type in something like 'L"hello"', which should + # decode to the IDB-specific wide-char set of bytes) + text = f.Text.value + if text.find('"') < 0: + text = '"%s"' % text + err = ida_bytes.parse_binpat_str( + patterns, + current_ea, + text, + 10, # radix (not that it matters though, since we're all about string literals) + encoding) + if not err: + ea = ida_bytes.bin_search( + current_ea, + ida_ida.inf_get_max_ea(), + patterns, + ida_bytes.BIN_SEARCH_FORWARD + | ida_bytes.BIN_SEARCH_NOBREAK + | ida_bytes.BIN_SEARCH_NOSHOW) + ok = ea != ida_idaapi.BADADDR + if ok: + ida_kernwin.jumpto(ea) + else: + print("Failed parsing binary pattern: \"%s\"" % err) + return ok + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type == ida_kernwin.BWN_DISASM \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +ACTION_NAME = "bin_search:search" +ACTION_SHORTCUT = "Ctrl+Shift+S" + +if ida_kernwin.register_action( + ida_kernwin.action_desc_t( + ACTION_NAME, + "Search for string literal", + search_strlit_ah_t(), + ACTION_SHORTCUT)): + print("Please use \"%s\" to search for string literals" % ACTION_SHORTCUT) diff --git a/examples/core/colorize_disassembly.py b/examples/core/colorize_disassembly.py new file mode 100644 index 0000000..273559b --- /dev/null +++ b/examples/core/colorize_disassembly.py @@ -0,0 +1,34 @@ +""" +summary: change background colours + +description: + This illustrates the setting/retrieval of background colours + using the IDC wrappers + + In order to do so, we'll be assigning colors to specific ranges + (item, function, or segment). Those will be persisted in the + database. + +category: disassembly + +keywords: coloring, idc + +see_also: colorize_disassembly_on_the_fly +""" + +from __future__ import print_function + + +BG_BLUE = 0xc02020 +BG_GREEN = 0x208020 +BG_RED = 0x2020c0 + +import idc + +ea = idc.here() +idc.set_color(ea, idc.CIC_SEGM, BG_BLUE) +idc.set_color(ea, idc.CIC_FUNC, BG_GREEN) +idc.set_color(ea, idc.CIC_ITEM, BG_RED) +print("Segment: %x" % idc.get_color(ea, idc.CIC_SEGM)) +print("Function: %x" % idc.get_color(ea, idc.CIC_FUNC)) +print("Item: %x" % idc.get_color(ea, idc.CIC_ITEM)) diff --git a/examples/core/colorize_disassembly_on_the_fly.py b/examples/core/colorize_disassembly_on_the_fly.py new file mode 100644 index 0000000..1028043 --- /dev/null +++ b/examples/core/colorize_disassembly_on_the_fly.py @@ -0,0 +1,136 @@ +""" +summary: an easy-to-use way to colorize lines + +description: + This builds upon the `ida_kernwin.UI_Hooks.get_lines_rendering_info` + feature, to provide a quick & easy way to colorize disassembly + lines. + + Contrary to @colorize_disassembly, the coloring is not persisted in + the database, and will therefore be lost after the session. + + By triggering the action multiple times, the user can "carousel" + across 4 predefined colors (and return to the "no color" state.) + +keywords: coloring + +see_also: colorize_disassembly +""" + +import ida_kernwin +import ida_moves + +class on_the_fly_coloring_hooks_t(ida_kernwin.UI_Hooks): + + # We'll offer the users the ability to carousel around the + # following colors. Well, note that these are in fact not + # colors, but rather color "keys": each theme might have its + # own values for those. + AVAILABLE_COLORS = [ + ida_kernwin.CK_EXTRA5, + ida_kernwin.CK_EXTRA6, + ida_kernwin.CK_EXTRA7, + ida_kernwin.CK_EXTRA8, + ] + + def __init__(self): + ida_kernwin.UI_Hooks.__init__(self) + + # Each view can have on-the-fly coloring. + # We'll store the custom colors keyed on the widget's title + self.by_widget = {} + + def get_lines_rendering_info(self, out, widget, rin): + """ + Called by IDA, at rendering-time. + + We'll look in our set of marked lines, and for those that are + found, will produce additional rendering information for IDA + to use. + """ + title = ida_kernwin.get_widget_title(widget) + assigned = self.by_widget.get(title, None) + if assigned is not None: + for section_lines in rin.sections_lines: + for line in section_lines: + for loc, color in assigned: + if self._same_lines(widget, line.at, loc.place()): + e = ida_kernwin.line_rendering_output_entry_t(line) + e.bg_color = color + out.entries.push_back(e) + + def _same_lines(self, viewer, p0, p1): + return ida_kernwin.get_custom_viewer_place_xcoord(viewer, p0, p1) != -1 + + def _find_loc_index(self, viewer, assigned, loc): + for idx, tpl in enumerate(assigned): + _loc = tpl[0] + if self._same_lines(viewer, loc.place(), _loc.place()): + return idx + return -1 + + def carousel_color(self, viewer, title): + """ + This performs the work of iterating across the available + colors (and the 'no-color' state.) + """ + loc = ida_moves.lochist_entry_t() + if ida_kernwin.get_custom_viewer_location(loc, viewer): + assigned = self.by_widget.get(title, []) + new_color = None + + idx = self._find_loc_index(viewer, assigned, loc) + if idx > -1: + prev_color = assigned[idx][1] + prev_color_idx = self.AVAILABLE_COLORS.index(prev_color) + new_color = None \ + if prev_color_idx >= (len(self.AVAILABLE_COLORS) - 1) \ + else self.AVAILABLE_COLORS[prev_color_idx + 1] + else: + new_color = self.AVAILABLE_COLORS[0] + + if idx > -1: + del assigned[idx] + if new_color is not None: + assigned.append((loc, new_color)) + + if assigned: + self.by_widget[title] = assigned + else: + if title in self.by_widget: + del self.by_widget[title] + + +class carousel_color_ah_t(): + """ + The action that will be invoked by IDA when the user + activates its shortcut. + """ + def __init__(self, hooks): + self.hooks = hooks + + def activate(self, ctx): + v = ida_kernwin.get_current_viewer() + if v: + self.hooks.carousel_color(v, ctx.widget_title) + return 1 # will cause the widget to redraw + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ida_kernwin.get_current_viewer() \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +ACTION_NAME = "example:colorize_disassembly_on_the_fly" +ACTION_LABEL = "Pick line color" +ACTION_SHORTCUT = "!" +ACTION_HELP = "Press %s to carousel around available colors (or remove a previously-set color)" % ACTION_SHORTCUT + +otf_coloring = on_the_fly_coloring_hooks_t() +if ida_kernwin.register_action(ida_kernwin.action_desc_t( + ACTION_NAME, + ACTION_LABEL, + carousel_color_ah_t(otf_coloring), + ACTION_SHORTCUT)): + print("Registered action \"%s\". %s" % (ACTION_LABEL, ACTION_HELP)) + otf_coloring.hook() diff --git a/examples/core/colorize_region.py b/examples/core/colorize_region.py deleted file mode 100644 index 069fdf6..0000000 --- a/examples/core/colorize_region.py +++ /dev/null @@ -1,20 +0,0 @@ -from __future__ import print_function -#--------------------------------------------------------------------- -# Colour test -# -# This script demonstrates the usage of background colours. -# -# Author: Gergely Erdelyi -#--------------------------------------------------------------------- - -# Set the colour of the current segment to BLUE -set_color(here(), CIC_SEGM, 0xc02020) -# Set the colour of the current function to GREEN -set_color(here(), CIC_FUNC, 0x208020) -# Set the colour of the current item to RED -set_color(here(), CIC_ITEM, 0x2020c0) - -# Print the colours just set -print("%x" % get_color(here(), CIC_SEGM)) -print("%x" % get_color(here(), CIC_FUNC)) -print("%x" % get_color(here(), CIC_ITEM)) diff --git a/examples/core/create_structure_programmatically.py b/examples/core/create_structure_programmatically.py index 13f6e92..bf34825 100644 --- a/examples/core/create_structure_programmatically.py +++ b/examples/core/create_structure_programmatically.py @@ -1,50 +1,68 @@ +""" +summary: programmatically create & populate a structure + +description: + Usage of the API to create & populate a structure with + members of different types. + +author: Gergely Erdelyi (gergely.erdelyi@d-dome.net) +""" + from __future__ import print_function #--------------------------------------------------------------------- # Structure test # # This script demonstrates how to create structures and populate them # with members of different types. -# -# Author: Gergely Erdelyi #--------------------------------------------------------------------- -from idaapi import stroffflag, offflag -sid = get_struc_id("mystr1") +import ida_struct +import ida_idaapi +import ida_bytes +import ida_nalt + +import idc + +sid = ida_struct.get_struc_id("mystr1") if sid != -1: - del_struc(sid) -sid = add_struc(-1, "mystr1", 0) + idc.del_struc(sid) +sid = ida_struct.add_struc(ida_idaapi.BADADDR, "mystr1", 0) print("%x" % sid) # Test simple data types -simple_types = [ FF_BYTE, FF_WORD, FF_DWORD, FF_QWORD, FF_TBYTE, FF_OWORD, FF_FLOAT, FF_DOUBLE, FF_PACKREAL ] -simple_sizes = [ 1, 2, 4, 8, 10, 16, 4, 8, 10 ] - -i = 0 -for t,nsize in zip(simple_types, simple_sizes): - print("t%x:"% ((t|FF_DATA)&0xFFFFFFFF), add_struc_member(sid, "t%02d"%i, BADADDR, (t|FF_DATA )&0xFFFFFFFF, -1, nsize)) - i+=1 +simple_types_data = [ + (ida_bytes.FF_BYTE, 1), + (ida_bytes.FF_WORD, 2), + (ida_bytes.FF_DWORD, 4), + (ida_bytes.FF_QWORD, 8), + (ida_bytes.FF_TBYTE, 10), + (ida_bytes.FF_OWORD, 16), + (ida_bytes.FF_FLOAT, 4), + (ida_bytes.FF_DOUBLE, 8), + (ida_bytes.FF_PACKREAL, 10), +] +for i, tpl in enumerate(simple_types_data): + t, nsize = tpl + print("t%x:"% ((t|ida_bytes.FF_DATA) & 0xFFFFFFFF), + idc.add_struc_member(sid, "t%02d"%i, ida_idaapi.BADADDR, (t|ida_bytes.FF_DATA )&0xFFFFFFFF, -1, nsize)) # Test ASCII type -print("ASCII:", add_struc_member(sid, "tascii", -1, FF_STRLIT|FF_DATA, STRTYPE_C, 8)) - -# Test enum type - Add a defined enum name or load MACRO_WMI from a type library. -#eid = get_enum("MACRO_WMI") -#print("Enum:", add_struc_member(sid, "tenum", BADADDR, FF_0ENUM|FF_DATA|FF_DWORD, eid, 4)) +print("ASCII:", idc.add_struc_member(sid, "tascii", -1, ida_bytes.FF_STRLIT|ida_bytes.FF_DATA, ida_nalt.STRTYPE_C, 8)) # Test struc member type -msid = get_struc_id("mystr2") +msid = ida_struct.get_struc_id("mystr2") if msid != -1: - del_struc(msid) -msid = add_struc(-1, "mystr2", 0) -print(add_struc_member(msid, "member1", -1, (FF_DWORD|FF_DATA )&0xFFFFFFFF, -1, 4)) -print(add_struc_member(msid, "member2", -1, (FF_DWORD|FF_DATA )&0xFFFFFFFF, -1, 4)) + idc.del_struc(msid) +msid = idc.add_struc(-1, "mystr2", 0) +print(idc.add_struc_member(msid, "member1", -1, (ida_bytes.FF_DWORD|ida_bytes.FF_DATA )&0xFFFFFFFF, -1, 4)) +print(idc.add_struc_member(msid, "member2", -1, (ida_bytes.FF_DWORD|ida_bytes.FF_DATA )&0xFFFFFFFF, -1, 4)) -msize = get_struc_size(msid) -print("Struct:", add_struc_member(sid, "tstruct", -1, FF_STRUCT|FF_DATA, msid, msize)) -print("Stroff:", add_struc_member(sid, "tstroff", -1, stroffflag()|FF_DWORD, msid, 4)) +msize = ida_struct.get_struc_size(msid) +print("Struct:", idc.add_struc_member(sid, "tstruct", -1, ida_bytes.FF_STRUCT|ida_bytes.FF_DATA, msid, msize)) +print("Stroff:", idc.add_struc_member(sid, "tstroff", -1, ida_bytes.stroff_flag()|ida_bytes.FF_DWORD, msid, 4)) # Test offset types -print("Offset:", add_struc_member(sid, "toffset", -1, offflag()|FF_DATA|FF_DWORD, 0, 4)) -print("Offset:", set_member_type(sid, 0, offflag()|FF_DATA|FF_DWORD, 0, 4)) +print("Offset:", idc.add_struc_member(sid, "toffset", -1, ida_bytes.off_flag()|ida_bytes.FF_DATA|ida_bytes.FF_DWORD, 0, 4)) +print("Offset:", idc.set_member_type(sid, 0, ida_bytes.off_flag()|ida_bytes.FF_DATA|ida_bytes.FF_DWORD, 0, 4)) print("Done") diff --git a/examples/core/custom_cli.py b/examples/core/custom_cli.py index 0c4f063..7eae682 100644 --- a/examples/core/custom_cli.py +++ b/examples/core/custom_cli.py @@ -1,77 +1,65 @@ +""" +summary: a custom command-line interpreter + +description: + Illustrates how one can add command-line interpreters to IDA + + This custom interpreter doesn't actually run any code; it's + there as a 'getting started'. + It provides an example tab completion support. +""" + from __future__ import print_function # ----------------------------------------------------------------------- # This is an example illustrating how to implement a CLI -# (c) Hex-Rays # -from idaapi import NW_OPENIDB, NW_CLOSEIDB, NW_TERMIDA, NW_REMOVE, COLSTR, cli_t +# A trivial example is also provided for tab completion. To try it, +# type "bon" in the input field, and then press multiple times. +# +# (c) Hex-Rays -class mycli_t(cli_t): +import ida_kernwin +import ida_idaapi + +class mycli_t(ida_kernwin.cli_t): flags = 0 sname = "pycli" lname = "Python CLI" hint = "pycli hint" def OnExecuteLine(self, line): - """ - The user pressed Enter. The CLI is free to execute the line immediately or ask for more lines. - - This callback is mandatory. - - @param line: typed line(s) - @return Boolean: True-executed line, False-ask for more lines - """ print("OnExecute:", line) return True def OnKeydown(self, line, x, sellen, vkey, shift): - """ - A keyboard key has been pressed - This is a generic callback and the CLI is free to do whatever it wants. - - This callback is optional. - - @param line: current input line - @param x: current x coordinate of the cursor - @param sellen: current selection length (usually 0) - @param vkey: virtual key code. if the key has been handled, it should be returned as zero - @param 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) - """ print("Onkeydown: line=%s x=%d sellen=%d vkey=%d shift=%d" % (line, x, sellen, vkey, shift)) return None + completions = [ + "bonnie & clyde", + "bonfire of the vanities", + "bongiorno", + ] + def OnCompleteLine(self, prefix, n, line, prefix_start): - """ - The user pressed Tab. Find a completion number N for prefix PREFIX - - This callback is optional. - - @param prefix: Line prefix at prefix_start (string) - @param n: completion number (int) - @param line: the current line (string) - @param 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 - """ print("OnCompleteLine: prefix=%s n=%d line=%s prefix_start=%d" % (prefix, n, line, prefix_start)) + if prefix == "bon": + if n < len(self.completions): + return self.completions[n] return None - # ----------------------------------------------------------------------- def nw_handler(code, old=0): - if code == NW_OPENIDB: + if code == ida_idaapi.NW_OPENIDB: print("nw_handler(): installing CLI") mycli.register() - elif code == NW_CLOSEIDB: + elif code == ida_idaapi.NW_CLOSEIDB: print("nw_handler(): removing CLI") mycli.unregister() - elif code == NW_TERMIDA: + elif code == ida_idaapi.NW_TERMIDA: print("nw_handler(): uninstalled nw handler") - idaapi.notify_when(NW_TERMIDA | NW_OPENIDB | NW_CLOSEIDB | NW_REMOVE, nw_handler) + when = ida_idaapi.NW_TERMIDA | ida_idaapi.NW_OPENIDB | ida_idaapi.NW_CLOSEIDB | ida_idaapi.NW_REMOVE + ida_idaapi.notify_when(when, nw_handler) # ----------------------------------------------------------------------- @@ -82,7 +70,7 @@ try: mycli.unregister() del mycli # remove previous handler - nw_handler(NW_TERMIDA) + nw_handler(ida_idaapi.NW_TERMIDA) except: pass finally: @@ -92,7 +80,8 @@ finally: if mycli.register(): print("CLI installed") # install new handler - idaapi.notify_when(NW_TERMIDA | NW_OPENIDB | NW_CLOSEIDB, nw_handler) + when = ida_idaapi.NW_TERMIDA | ida_idaapi.NW_OPENIDB | ida_idaapi.NW_CLOSEIDB + ida_idaapi.notify_when(when, nw_handler) else: del mycli print("Failed to install CLI") diff --git a/examples/core/custom_data_types_and_formats.py b/examples/core/custom_data_types_and_formats.py index 3a9b898..796f92b 100644 --- a/examples/core/custom_data_types_and_formats.py +++ b/examples/core/custom_data_types_and_formats.py @@ -1,9 +1,24 @@ +""" +summary: using custom data types & printers + +description: + IDA can be extended to support certain data types that it + does not know about out-of-the-box. + + A 'custom data type' provide information about the type & + size of a piece of data, while a 'custom data format' is in + charge of formatting that data (there can be more than + one format for a specific 'custom data type'.) +""" + from __future__ import print_function -# ----------------------------------------------------------------------- -# This is an example illustrating how to use custom data types in Python -# (c) Hex-Rays -# -from idaapi import data_type_t, data_format_t, NW_OPENIDB, NW_CLOSEIDB, NW_TERMIDA, NW_REMOVE, COLSTR + +import ida_bytes +import ida_idaapi +import ida_lines +import ida_struct +import ida_netnode +import ida_nalt import sys import struct @@ -11,9 +26,9 @@ import ctypes import platform # ----------------------------------------------------------------------- -class pascal_data_type(data_type_t): +class pascal_data_type(ida_bytes.data_type_t): def __init__(self): - data_type_t.__init__( + ida_bytes.data_type_t.__init__( self, "py_pascal_string", 2, @@ -24,11 +39,11 @@ class pascal_data_type(data_type_t): def calc_item_size(self, ea, maxsize): # Custom data types may be used in structure definitions. If this case # ea is a member id. Check for this situation and return 1 - if idaapi.is_member_id(ea): + if ida_struct.is_member_id(ea): return 1 # get the length byte - n = idaapi.get_byte(ea) + n = ida_bytes.get_byte(ea) # string too big? if n > maxsize: @@ -36,10 +51,10 @@ class pascal_data_type(data_type_t): # ok, accept the string return n + 1 -class pascal_data_format(data_format_t): +class pascal_data_format(ida_bytes.data_format_t): FORMAT_NAME = "py_pascal_string_pstr" def __init__(self): - data_format_t.__init__( + ida_bytes.data_format_t.__init__( self, pascal_data_format.FORMAT_NAME) @@ -57,7 +72,7 @@ class pascal_data_format(data_format_t): return "".join(o) # ----------------------------------------------------------------------- -class simplevm_data_type(data_type_t): +class simplevm_data_type(ida_bytes.data_type_t): ASM_KEYWORD = "svm_emit" def __init__( self, @@ -65,7 +80,7 @@ class simplevm_data_type(data_type_t): value_size=1, menu_name="SimpleVM", asm_keyword=ASM_KEYWORD): - data_type_t.__init__( + ida_bytes.data_type_t.__init__( self, name, value_size, @@ -74,22 +89,22 @@ class simplevm_data_type(data_type_t): asm_keyword) def calc_item_size(self, ea, maxsize): - if idaapi.is_member_id(ea): + if ida_struct.is_member_id(ea): return 1 # get the opcode and see if it has an imm - n = 5 if (idaapi.get_byte(ea) & 3) == 0 else 1 + n = 5 if (ida_bytes.get_byte(ea) & 3) == 0 else 1 # string too big? if n > maxsize: return 0 # ok, accept return n -class simplevm_data_format(data_format_t): +class simplevm_data_format(ida_bytes.data_format_t): def __init__( self, name="py_simple_vm_format", menu_name="SimpleVM"): - data_format_t.__init__( + ida_bytes.data_format_t.__init__( self, name, 0, @@ -116,9 +131,9 @@ class simplevm_data_format(data_format_t): imm = None sz = 1 text = "%s %s, %s" % ( - COLSTR(simplevm_data_format.INST[op], idaapi.SCOLOR_INSN), - COLSTR(simplevm_data_format.REGS[r1], idaapi.SCOLOR_REG), - COLSTR("0x%08X" % imm, idaapi.SCOLOR_NUMBER) if imm is not None else COLSTR(simplevm_data_format.REGS[r2], idaapi.SCOLOR_REG)) + ida_lines.COLSTR(simplevm_data_format.INST[op], ida_lines.SCOLOR_INSN), + ida_lines.COLSTR(simplevm_data_format.REGS[r1], ida_lines.SCOLOR_REG), + ida_lines.COLSTR("0x%08X" % imm, ida_lines.SCOLOR_NUMBER) if imm is not None else ida_lines.COLSTR(simplevm_data_format.REGS[r2], ida_lines.SCOLOR_REG)) return (sz, text) def printf(self, value, current_ea, operand_num, dtid): @@ -131,9 +146,9 @@ class simplevm_data_format(data_format_t): # ----------------------------------------------------------------------- # This format will display DWORD values as MAKE_DWORD(0xHI, 0xLO) -class makedword_data_format(data_format_t): +class makedword_data_format(ida_bytes.data_format_t): def __init__(self): - data_format_t.__init__( + ida_bytes.data_format_t.__init__( self, "py_makedword", 4, @@ -156,14 +171,14 @@ class makedword_data_format(data_format_t): # # The get_rsrc_string() is not optimal since it loads/unloads the # DLL each time for a new string. It can be improved in many ways. -class rsrc_string_format(data_format_t): +class rsrc_string_format(ida_bytes.data_format_t): def __init__(self): - data_format_t.__init__( + ida_bytes.data_format_t.__init__( self, "py_w32rsrcstring", 1, "Resource string") - self.cache_node = idaapi.netnode("$ py_w32rsrcstring", 0, 1) + self.cache_node = ida_netnode.netnode("$ py_w32rsrcstring", 0, 1) def get_rsrc_string(self, fn, id): """ @@ -188,8 +203,8 @@ class rsrc_string_format(data_format_t): # Not cached? if val == None: # Retrieve it - num = idaapi.struct_unpack(value) - val = self.get_rsrc_string(idaapi.get_input_file_path(), num) + num = ida_idaapi.struct_unpack(value) + val = self.get_rsrc_string(ida_nalt.get_input_file_path(), num) # Cache it self.cache_node.supset(current_ea, val) @@ -197,7 +212,7 @@ class rsrc_string_format(data_format_t): if val == "" or val == "\x00": return None # Return the format - return "RSRC_STR(\"%s\")" % COLSTR(val, idaapi.SCOLOR_IMPNAME) + return "RSRC_STR(\"%s\")" % ida_lines.COLSTR(val, ida_lines.SCOLOR_IMPNAME) # ----------------------------------------------------------------------- # Table of formats and types to be registered/unregistered @@ -219,21 +234,23 @@ except: # ----------------------------------------------------------------------- def nw_handler(code, old=0): # delete notifications - if code == NW_OPENIDB: - if not idaapi.register_data_types_and_formats(new_formats): + if code == ida_idaapi.NW_OPENIDB: + if not ida_bytes.register_data_types_and_formats(new_formats): print("Failed to register types!") - elif code == NW_CLOSEIDB: - idaapi.unregister_data_types_and_formats(new_formats) - elif code == NW_TERMIDA: - idaapi.notify_when(NW_TERMIDA | NW_OPENIDB | NW_CLOSEIDB | NW_REMOVE, nw_handler) + elif code == ida_idaapi.NW_CLOSEIDB: + ida_bytes.unregister_data_types_and_formats(new_formats) + elif code == ida_idaapi.NW_TERMIDA: + f = ida_idaapi.NW_TERMIDA | ida_idaapi.NW_OPENIDB | ida_idaapi.NW_CLOSEIDB | ida_idaapi.NW_REMOVE + ida_idaapi.notify_when(f, nw_handler) # ----------------------------------------------------------------------- # Check if already installed -if idaapi.find_custom_data_type(pascal_data_format.FORMAT_NAME) == -1: - if not idaapi.register_data_types_and_formats(new_formats): +if ida_bytes.find_custom_data_type(pascal_data_format.FORMAT_NAME) == -1: + if not ida_bytes.register_data_types_and_formats(new_formats): print("Failed to register types!") else: - idaapi.notify_when(NW_TERMIDA | NW_OPENIDB | NW_CLOSEIDB, nw_handler) + f = ida_idaapi.NW_TERMIDA | ida_idaapi.NW_OPENIDB | ida_idaapi.NW_CLOSEIDB + ida_idaapi.notify_when(f, nw_handler) print("Formats installed!") else: print("Formats already installed!") diff --git a/examples/core/dump_extra_comments.py b/examples/core/dump_extra_comments.py new file mode 100644 index 0000000..3224418 --- /dev/null +++ b/examples/core/dump_extra_comments.py @@ -0,0 +1,84 @@ +""" +summary: retrieve extra comments + +description: + Use the `ida_lines.get_extra_cmt` API to retrieve anterior + and posterior extra comments. + + This script registers two actions, that can be used to dump + the previous and next extra comments. +""" + +from __future__ import print_function + +import ida_lines +import ida_kernwin + +# ----------------------------------------------------------------------- +class dump_at_point_handler_t(ida_kernwin.action_handler_t): + def __init__(self, anchor): + ida_kernwin.action_handler_t.__init__(self) + self.anchor = anchor + + def activate(self, ctx): + ea = ida_kernwin.get_screen_ea() + index = self.anchor + while True: + cmt = ida_lines.get_extra_cmt(ea, index) + if cmt is None: + break + print("Got: '%s'" % cmt) + index += 1 + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type == ida_kernwin.BWN_DISASM \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + @staticmethod + def compose_action_name(v): + return "dump_extra_comments:%s" % v + + +# -------------------------------------------------------- +# action variants + +class action_previous_handler_t(dump_at_point_handler_t): + ACTION_LABEL = "previous" + ACTION_SHORTCUT = "Ctrl+Shift+Y" + + def __init__(self): + super(action_previous_handler_t, self).__init__(ida_lines.E_PREV) + +class action_next_handler_t(dump_at_point_handler_t): + ACTION_LABEL = "next" + ACTION_SHORTCUT = "Ctrl+Shift+Z" + + def __init__(self): + super(action_next_handler_t, self).__init__(ida_lines.E_NEXT) + + +# ----------------------------------------------------------------------- +# create actions (and attach them to IDA View-A's context menu if possible) +widget_title = "IDA View-A" +ida_view = ida_kernwin.find_widget(widget_title) + +action_variants = [ + action_previous_handler_t, + action_next_handler_t, +] +for variant in action_variants: + actname = dump_at_point_handler_t.compose_action_name(variant.ACTION_LABEL) + if ida_kernwin.unregister_action(actname): + print("Unregistered previously-registered action \"%s\"" % actname) + + desc = ida_kernwin.action_desc_t( + actname, + "Dump %s extra comments" % variant.ACTION_LABEL, + variant(), + variant.ACTION_SHORTCUT) + if ida_kernwin.register_action(desc): + print("Registered action \"%s\"" % actname) + + if ida_view and ida_kernwin.attach_action_to_popup(ida_view, None, actname): + print("Permanently attached action \"%s\" to \"%s\"" % (actname, widget_title)) diff --git a/examples/core/dump_flowchart.py b/examples/core/dump_flowchart.py index 04ecd19..f226138 100644 --- a/examples/core/dump_flowchart.py +++ b/examples/core/dump_flowchart.py @@ -1,44 +1,69 @@ +# -*- coding: utf-8 -*- +""" +summary: dump function flowchart + +description: + Dumps the current function's flowchart, using 2 methods: + + * the low-level `ida_gdl.qflow_chart_t` type + * the somewhat higher-level, and slightly more pythonic + `ida_gdl.FlowChart` type. +""" + from __future__ import print_function -import idaapi + +import ida_gdl +import ida_funcs +import ida_kernwin + +def out(p, msg): + if p: + print(msg) + +def out_succ(p, start_ea, end_ea): + out(p, " SUCC: %x - %x" % (start_ea, end_ea)) + +def out_pred(p, start_ea, end_ea): + out(p, " PRED: %x - %x" % (start_ea, end_ea)) + # ----------------------------------------------------------------------- -# Using raw IDAAPI -def raw_main(p=True): - f = idaapi.get_func(here()) +# Using ida_gdl.qflow_chart_t +def using_qflow_chart_t(ea, p=True): + f = ida_funcs.get_func(ea) if not f: return - q = idaapi.qflow_chart_t("The title", f, 0, 0, idaapi.FC_PREDS) - for n in range(0, q.size()): + q = ida_gdl.qflow_chart_t("The title", f, 0, 0, 0) + for n in range(q.size()): b = q[n] - if p: - print("%x - %x [%d]:" % (b.start_ea, b.end_ea, n)) + out(p, "%x - %x [%d]:" % (b.start_ea, b.end_ea, n)) + for ns in range(q.nsucc(n)): + b2 = q[q.succ(n, ns)] + out_succ(p, b2.start_ea, b2.end_ea) - for ns in range(0, q.nsucc(n)): - if p: - print("SUCC: %d->%d" % (n, q.succ(n, ns))) - - for ns in range(0, q.npred(n)): - if p: - print("PRED: %d->%d" % (n, q.pred(n, ns))) + for ns in range(q.npred(n)): + b2 = q[q.pred(n, ns)] + out_pred(p, b2.start_ea, b2.end_ea) # ----------------------------------------------------------------------- -# Using the class -def cls_main(p=True): - f = idaapi.FlowChart(idaapi.get_func(here())) +# Using ida_gdl.FlowChart +def using_FlowChart(ea, p=True): + f = ida_gdl.FlowChart(ida_funcs.get_func(ea)) + for block in f: - if p: - print("%x - %x [%d]:" % (block.start_ea, block.end_ea, block.id)) + out(p, "%x - %x [%d]:" % (block.start_ea, block.end_ea, block.id)) for succ_block in block.succs(): - if p: - print(" %x - %x [%d]:" % (succ_block.start_ea, succ_block.end_ea, succ_block.id)) + out_succ(p, succ_block.start_ea, succ_block.end_ea) for pred_block in block.preds(): - if p: - print(" %x - %x [%d]:" % (pred_block.start_ea, pred_block.end_ea, pred_block.id)) + out_pred(p, pred_block.start_ea, pred_block.end_ea) -q = None -f = None -raw_main(False) -cls_main(True) +ea = ida_kernwin.get_screen_ea() + +print(">>> Dumping flow chart using ida_gdl.qflow_chart_t") +using_qflow_chart_t(ea) + +print(">>> Dumping flow chart using the higher-level ida_gdl.FlowChart") +using_FlowChart(ea) diff --git a/examples/core/dump_selection.py b/examples/core/dump_selection.py new file mode 100644 index 0000000..ad717dc --- /dev/null +++ b/examples/core/dump_selection.py @@ -0,0 +1,73 @@ +""" +summary: retrieve & dump current selection + +description: + Shows how to retrieve the selection from a listing + widget ("IDA View-A", "Hex View-1", "Pseudocode-A", ...) as + two "cursors", and from there retrieve (in fact, generate) + the corresponding text. + + After running this script: + + * select some text in one of the listing widgets (i.e., + "IDA View-*", "Enums", "Structures", "Pseudocode-*") + * press Ctrl+Shift+S to dump the selection + +""" + +from __future__ import print_function + +import ida_kernwin +import ida_lines + +class dump_selection_handler_t(ida_kernwin.action_handler_t): + def activate(self, ctx): + if ctx.has_flag(ida_kernwin.ACF_HAS_SELECTION): + tp0, tp1 = ctx.cur_sel._from, ctx.cur_sel.to + ud = ida_kernwin.get_viewer_user_data(ctx.widget) + lnar = ida_kernwin.linearray_t(ud) + lnar.set_place(tp0.at) + lines = [] + while True: + cur_place = lnar.get_place() + first_line_ref = ida_kernwin.l_compare2(cur_place, tp0.at, ud) + last_line_ref = ida_kernwin.l_compare2(cur_place, tp1.at, ud) + if last_line_ref > 0: # beyond last line + break + line = ida_lines.tag_remove(lnar.down()) + if last_line_ref == 0: # at last line + line = line[0:tp1.x] + elif first_line_ref == 0: # at first line + line = ' ' * tp0.x + line[tp0.x:] + lines.append(line) + for line in lines: + print(line) + return 1 + + def update(self, ctx): + ok_widgets = [ + ida_kernwin.BWN_DISASM, + ida_kernwin.BWN_STRUCTS, + ida_kernwin.BWN_ENUMS, + ida_kernwin.BWN_PSEUDOCODE, + ] + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type in ok_widgets \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +# ----------------------------------------------------------------------- +# create actions (and attach them to IDA View-A's context menu if possible) +ACTION_NAME = "dump_selection" +ACTION_SHORTCUT = "Ctrl+Shift+S" + +if ida_kernwin.unregister_action(ACTION_NAME): + print("Unregistered previously-registered action \"%s\"" % ACTION_NAME) + +if ida_kernwin.register_action( + ida_kernwin.action_desc_t( + ACTION_NAME, + "Dump selection", + dump_selection_handler_t(), + ACTION_SHORTCUT)): + print("Registered action \"%s\"" % ACTION_NAME) diff --git a/examples/core/extend_idc.py b/examples/core/extend_idc.py index 2799fff..25d45cd 100644 --- a/examples/core/extend_idc.py +++ b/examples/core/extend_idc.py @@ -1,21 +1,27 @@ +""" +summary: add functions to the IDC runtime from IDAPython + +description: + You can add IDC functions to IDA, whose "body" consists of + IDAPython statements! + + We'll register a 'pow' function, available to all IDC code, + that when invoked will call back into IDAPython, and execute + the provided function body. + + After running this script, try switching to the IDC interpreter + (using the button on the lower-left corner of IDA) and executing + `pow(3, 7)` +""" + from __future__ import print_function -# ----------------------------------------------------------------------- -# This is an example illustrating how to extend IDC from Python -# (c) Hex-Rays -# -from idaapi import add_idc_func -def py_power(n, e): - return n ** e +import ida_expr -desc = ext_idcfunc_t -desc.name = "pow" -desc.func = py_power, -desc.args = (idaapi.VT_LONG, idaapi.VT_LONG), -desc.defvals = () -desc.flags = 0 -ok = add_idc_func(desc) -if ok: - print("Now the pow() will be present IDC!") +if ida_expr.add_idc_func( + "pow", + lambda n, e: n ** e, + (ida_expr.VT_LONG, ida_expr.VT_LONG)): + print("The pow() function is now available in IDC") else: print("Failed to register pow() IDC function") diff --git a/examples/core/idapythonrc.py b/examples/core/idapythonrc.py index 9c7b9b2..f2cc0d2 100644 --- a/examples/core/idapythonrc.py +++ b/examples/core/idapythonrc.py @@ -1,19 +1,27 @@ -#--------------------------------------------------------------------- -# Example user initialisation script: idapythonrc.py -# -# Place this script to ~/.idapro/ or to -# %APPDATA%\Hex-Rays\IDA Pro -#--------------------------------------------------------------------- -import idaapi +""" +summary: code to be run right after IDAPython initialization + +description: + The `idapythonrc.py` file: + + * %APPDATA%\Hex-Rays\IDA Pro\idapythonrc.py (on Windows) + * ~/.idapro/idapythonrc.py (on Linux & Mac) + + can contain any IDAPython code that will be run as soon as + IDAPython is done successfully initializing. +""" # Add your favourite script to ScriptBox for easy access # scriptbox.addscript("/here/is/my/favourite/script.py") # Uncomment if you want to set Python as default interpreter in IDA -# idaapi.enable_extlang_python(True) +# import ida_idaapi +# ida_idaapi.enable_extlang_python(True) # Disable the Python from interactive command-line -# idaapi.enable_python_cli(False) +# import ida_idaapi +# ida_idaapi.enable_python_cli(False) # Set the timeout for the script execution cancel dialog -# idaapi.set_script_timeout(10) +# import ida_idaapi +# ida_idaapi.set_script_timeout(10) diff --git a/examples/core/install_user_defined_prefix.py b/examples/core/install_user_defined_prefix.py index 8df5a5a..1f71d52 100644 --- a/examples/core/install_user_defined_prefix.py +++ b/examples/core/install_user_defined_prefix.py @@ -1,41 +1,49 @@ +""" +summary: inserting information into disassembly prefixes + +description: + By default, disassembly line prefixes contain segment + address + information (e.g., '.text:08047718'), but it is possible to + "inject" other bits of information in there, thanks to the + `ida_lines.user_defined_prefix_t` helper type. +""" + from __future__ import print_function -import idaapi -PREFIX = idaapi.SCOLOR_INV + ' ' + idaapi.SCOLOR_INV +import ida_lines +import ida_idaapi -class prefix_plugin_t(idaapi.plugin_t): - flags = 0 - comment = "This is a user defined prefix sample plugin" - help = "This is help" - wanted_name = "user defined prefix" - wanted_hotkey = "" - - - def user_prefix(self, ea, lnnum, indent, line, bufsize): - #print("ea=%x lnnum=%d indent=%d line=%s bufsize=%d" % (ea, lnnum, indent, line, bufsize)) +PREFIX = ida_lines.SCOLOR_INV + ' ' + ida_lines.SCOLOR_INV +class my_user_prefix_t(ida_lines.user_defined_prefix_t): + def get_user_defined_prefix(self, ea, insn, lnnum, indent, line): if (ea % 2 == 0) and indent == -1: return PREFIX else: return "" +class prefix_plugin_t(ida_idaapi.plugin_t): + flags = 0 + comment = "This is a user defined prefix sample plugin" + help = "This is help" + wanted_name = "user defined prefix" + wanted_hotkey = "" + + def __init__(self): + self.prefix = None + def init(self): - self.prefix_installed = idaapi.set_user_defined_prefix(8, self.user_prefix) - if self.prefix_installed: - print("prefix installed") - - return idaapi.PLUGIN_KEEP - + self.prefix = my_user_prefix_t(8) + print("prefix installed") + return ida_idaapi.PLUGIN_KEEP def run(self, arg): pass - def term(self): - if self.prefix_installed: - idaapi.set_user_defined_prefix(0, None) - print("prefix uninstalled!") + self.prefix = None + print("prefix uninstalled!") def PLUGIN_ENTRY(): diff --git a/examples/core/list_function_items.py b/examples/core/list_function_items.py new file mode 100644 index 0000000..efffa8a --- /dev/null +++ b/examples/core/list_function_items.py @@ -0,0 +1,102 @@ +""" +summary: showcases (a few of) the iterators available on a function + +description: + This demonstrates how to use some of the iterators available on the func_t type. + + This example will focus on: + + * `func_t[.__iter__]`: the default iterator; iterates on instructions + * `func_t.data_items`: iterate on data items contained within a function + * `func_t.head_items`: iterate on 'heads' (i.e., addresses containing + the start of an instruction, or a data item. + * `func_t.addresses`: iterate on all addresses within function (code + and data, beginning of an item or not) + + Type `help(ida_funcs.func_t)` for a full list of iterators. + + In addition, one can use: + + * `func_tail_iterator_t`: iterate on all the chunks (including + the main one) of the function + * `func_parent_iterator_t`: iterate on all the parent functions, + that include this chunk + +keywords: funcs iterator +""" + +import ida_bytes +import ida_kernwin +import ida_funcs +import ida_ua + +class logger_t(object): + + class section_t(object): + def __init__(self, logger, header): + self.logger = logger + self.logger.log(header) + def __enter__(self): + self.logger.indent += 2 + return self + def __exit__(self, tp, value, traceback): + self.logger.indent -= 2 + if value: + return False # Re-raise + + def __init__(self): + self.indent = 0 + + def log(self, *args): + print(" " * self.indent + "".join(args)) + + def log_ea(self, ea): + F = ida_bytes.get_flags(ea) + parts = ["0x%08x" % ea, ": "] + if ida_bytes.is_code(F): + parts.append("instruction (%s)" % ida_ua.print_insn_mnem(ea)) + if ida_bytes.is_data(F): + parts.append("data") + if ida_bytes.is_tail(F): + parts.append("tail") + if ida_bytes.is_unknown(F): + parts.append("unknown") + if ida_funcs.get_func(ea) != ida_funcs.get_fchunk(ea): + parts.append(" (in function chunk)") + self.log(*parts) + +def main(): + # Get current ea + ea = ida_kernwin.get_screen_ea() + + pfn = ida_funcs.get_func(ea) + + if pfn is None: + print("No function defined at 0x%x" % ea) + return + + func_name = ida_funcs.get_func_name(pfn.start_ea) + logger = logger_t() + logger.log("Function %s at 0x%x" % (func_name, ea)) + + with logger_t.section_t(logger, "Code items:"): + for item in pfn: + logger.log_ea(item) + + with logger_t.section_t(logger, "'head' items:"): + for item in pfn.head_items(): + logger.log_ea(item) + + with logger_t.section_t(logger, "Addresses:"): + for item in pfn.addresses(): + logger.log_ea(item) + + with logger_t.section_t(logger, "Function chunks:"): + for chunk in ida_funcs.func_tail_iterator_t(pfn): + logger.log("%s chunk: 0x%08x..0x%08x" % ( + "Main" if chunk.start_ea == pfn.start_ea else "Tail", + chunk.start_ea, + chunk.end_ea)) + +if __name__ == '__main__': + main() diff --git a/examples/core/list_imports.py b/examples/core/list_imports.py index 73db7fd..8130261 100644 --- a/examples/core/list_imports.py +++ b/examples/core/list_imports.py @@ -1,30 +1,33 @@ +""" +summary: enumerate file imports + +description: + Using the API to enumerate file imports. +""" + from __future__ import print_function -# ----------------------------------------------------------------------- -# This is an example illustrating how to enumerate imports -# (c) Hex-Rays -# -import idaapi -def imp_cb(ea, name, ord): - if not name: - print("%08x: ord#%d" % (ea, ord)) - else: - print("%08x: %s (ord#%d)" % (ea, name, ord)) - # True -> Continue enumeration - # False -> Stop enumeration - return True +import ida_nalt -nimps = idaapi.get_import_module_qty() +nimps = ida_nalt.get_import_module_qty() print("Found %d import(s)..." % nimps) -for i in range(0, nimps): - name = idaapi.get_import_module_name(i) +for i in range(nimps): + name = ida_nalt.get_import_module_name(i) if not name: print("Failed to get import module name for #%d" % i) - continue + name = "" - print("Walking-> %s" % name) - idaapi.enum_import_names(i, imp_cb) + print("Walking imports for module %s" % name) + def imp_cb(ea, name, ordinal): + if not name: + print("%08x: ordinal #%d" % (ea, ordinal)) + else: + print("%08x: %s (ordinal #%d)" % (ea, name, ordinal)) + # True -> Continue enumeration + # False -> Stop enumeration + return True + ida_nalt.enum_import_names(i, imp_cb) print("All done...") diff --git a/examples/core/list_patched_bytes.py b/examples/core/list_patched_bytes.py index f039723..cb6bc42 100644 --- a/examples/core/list_patched_bytes.py +++ b/examples/core/list_patched_bytes.py @@ -1,9 +1,15 @@ -from __future__ import print_function -# ------------------------------------------------------------------------- -# This is an example illustrating how to visit all patched bytes in Python -# (c) Hex-Rays +""" +summary: enumerate patched bytes -import idaapi +description: + Using the API to iterate over all the places in the file, + that were patched using IDA. +""" + +from __future__ import print_function + +import ida_bytes +import ida_idaapi # ------------------------------------------------------------------------- class patched_bytes_visitor(object): @@ -14,7 +20,7 @@ class patched_bytes_visitor(object): def __call__(self, ea, fpos, o, v, cnt=()): if fpos == -1: self.skip += 1 - print(" ea: %x o: %x v: %x...skipped" % (ea, fpos, o, v)) + print(" ea: %x o: %x v: %x...skipped" % (ea, o, v)) else: self.patch += 1 print(" ea: %x fpos: %x o: %x v: %x" % (ea, fpos, o, v)) @@ -25,7 +31,7 @@ class patched_bytes_visitor(object): def main(): print("Visiting all patched bytes:") v = patched_bytes_visitor() - r = idaapi.visit_patched_bytes(0, idaapi.BADADDR, v) + r = ida_bytes.visit_patched_bytes(0, ida_idaapi.BADADDR, v) if r != 0: print("visit_patched_bytes() returned %d" % r) else: @@ -34,4 +40,4 @@ def main(): # ------------------------------------------------------------------------- if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/examples/core/list_problems.py b/examples/core/list_problems.py new file mode 100644 index 0000000..054c240 --- /dev/null +++ b/examples/core/list_problems.py @@ -0,0 +1,37 @@ +""" +summary: enumerate problems + +description: + Using the API to list all problem[atic situation]s that IDA + encountered during analysis. +""" + +import ida_ida +import ida_idaapi +import ida_problems + +for ptype in [ + ida_problems.PR_NOBASE, + ida_problems.PR_NONAME, + ida_problems.PR_NOFOP, + ida_problems.PR_NOCMT, + ida_problems.PR_NOXREFS, + ida_problems.PR_JUMP, + ida_problems.PR_DISASM, + ida_problems.PR_HEAD, + ida_problems.PR_ILLADDR, + ida_problems.PR_MANYLINES, + ida_problems.PR_BADSTACK, + ida_problems.PR_ATTN, + ida_problems.PR_FINAL, + ida_problems.PR_ROLLED, + ida_problems.PR_COLLISION, + ida_problems.PR_DECIMP, +]: + plistdesc = ida_problems.get_problem_name(ptype) + ea = ida_ida.inf_get_min_ea() + while True: + ea = ida_problems.get_problem(ptype, ea+1) + if ea == ida_idaapi.BADADDR: + break + print("0x%08x: %s" % (ea, plistdesc)) diff --git a/examples/core/list_segment_functions.py b/examples/core/list_segment_functions.py index 0a6b897..eb9562f 100644 --- a/examples/core/list_segment_functions.py +++ b/examples/core/list_segment_functions.py @@ -1,3 +1,15 @@ +""" +summary: list all functions (and xrefs) in segment + +description: + List all the functions in the current segment, as well as + all the cross-references to them. + +keywords: xrefs + +see_also: list_segment_functions_using_idautils +""" + from __future__ import print_function # # Reference Lister @@ -6,36 +18,39 @@ from __future__ import print_function # # Implemented using direct IDA Plugin API calls # -from idaapi import * + +import ida_kernwin +import ida_segment +import ida_funcs +import ida_xref +import ida_idaapi def main(): # Get current ea - ea = get_screen_ea() + ea = ida_kernwin.get_screen_ea() # Get segment class - seg = getseg(ea) + seg = ida_segment.getseg(ea) # Loop from segment start to end - func_ea = seg.startEA + func_ea = seg.start_ea # Get a function at the start of the segment (if any) - func = get_func(func_ea) + func = ida_funcs.get_func(func_ea) if func is None: # No function there, try to get the next one - func = get_next_func(func_ea) + func = ida_funcs.get_next_func(func_ea) seg_end = seg.end_ea while func is not None and func.start_ea < seg_end: funcea = func.start_ea - print("Function %s at 0x%x" % (get_func_name(funcea), funcea)) + print("Function %s at 0x%x" % (ida_funcs.get_func_name(funcea), funcea)) - ref = get_first_cref_to(funcea) + xb = ida_xref.xrefblk_t() + for ref in xb.crefs_to(funcea): + print(" called from %s(0x%x)" % (ida_funcs.get_func_name(ref), ref)) - while ref != BADADDR: - print(" called from %s(0x%x)" % (get_func_name(ref), ref)) - ref = get_next_cref_to(funcea, ref) - - func = get_next_func(funcea) + func = ida_funcs.get_next_func(funcea) main() diff --git a/examples/core/list_segment_functions_using_idautils.py b/examples/core/list_segment_functions_using_idautils.py index f516969..09e2b9c 100644 --- a/examples/core/list_segment_functions_using_idautils.py +++ b/examples/core/list_segment_functions_using_idautils.py @@ -1,3 +1,18 @@ +""" +summary: list all functions (and xrefs) in segment + +description: + List all the functions in the current segment, as well as + all the cross-references to them. + + Contrary to @list_segment_functions, this uses the somewhat + higher-level `idautils` module. + +keywords: xrefs + +see_also: list_segment_functions +""" + from __future__ import print_function # # Reference Lister @@ -6,23 +21,32 @@ from __future__ import print_function # # Implemented with the idautils module # -from idautils import * + +import ida_kernwin +import ida_idaapi +import ida_segment +import ida_funcs + +import idautils def main(): # Get current ea - ea = get_screen_ea() - if ea == idaapi.BADADDR: + ea = ida_kernwin.get_screen_ea() + if ea == ida_idaapi.BADADDR: print("Could not get get_screen_ea()") return - # Loop from start to end in the current segment - for funcea in Functions(get_segm_start(ea), get_segm_end(ea)): - print("Function %s at 0x%x" % (get_func_name(funcea), funcea)) - - # Find all code references to funcea - for ref in CodeRefsTo(funcea, 1): - print(" called from %s(0x%x)" % (get_func_name(ref), ref)) + seg = ida_segment.getseg(ea) + if seg: + # Loop from start to end in the current segment + for funcea in idautils.Functions(seg.start_ea, seg.end_ea): + print("Function %s at 0x%x" % (ida_funcs.get_func_name(funcea), funcea)) + # Find all code references to funcea + for ref in idautils.CodeRefsTo(funcea, 1): + print(" called from %s(0x%x)" % (ida_funcs.get_func_name(ref), ref)) + else: + print("Please position the cursor within a segment") if __name__=='__main__': - main() \ No newline at end of file + main() diff --git a/examples/core/list_stkvar_xrefs.py b/examples/core/list_stkvar_xrefs.py new file mode 100644 index 0000000..49e760d --- /dev/null +++ b/examples/core/list_stkvar_xrefs.py @@ -0,0 +1,64 @@ +""" +summary: list all xrefs to a function stack variable + +description: + Contrary to (in-memory) data & code xrefs, retrieving stack variables + xrefs requires a bit more work than just using ida_xref's first_to(), + next_to() (or higher level utilities such as idautils.XrefsTo) + +keywords: xrefs +""" + +ACTION_NAME = "list_stkvar_xrefs:list" +ACTION_SHORTCUT = "Ctrl+Shift+F7" + +import ida_bytes +import ida_frame +import ida_funcs +import ida_ida +import ida_kernwin +import ida_struct +import ida_ua + +class list_stkvar_xrefs_ah_t(ida_kernwin.action_handler_t): + def activate(self, ctx): + cur_ea = ida_kernwin.get_screen_ea() + pfn = ida_funcs.get_func(cur_ea) + if pfn: + v = ida_kernwin.get_current_viewer() + result = ida_kernwin.get_highlight(v) + if result: + stkvar_name, _ = result + frame = ida_frame.get_frame(cur_ea) + sptr = ida_struct.get_struc(frame.id) + mptr = ida_struct.get_member_by_name(sptr, stkvar_name) + if mptr: + for ea in pfn: + F = ida_bytes.get_flags(ea) + for n in range(ida_ida.UA_MAXOP): + if not ida_bytes.is_stkvar(F, n): + continue + insn = ida_ua.insn_t() + if not ida_ua.decode_insn(insn, ea): + continue + v = ida_frame.calc_stkvar_struc_offset(pfn, insn, n) + if v >= mptr.soff and v < mptr.eoff: + print("Found xref at 0x%08x, operand #%d" % (ea, n)) + else: + print("No stack variable named \"%s\"" % stkvar_name) + else: + print("Please position the cursor within a function") + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type == ida_kernwin.BWN_DISASM \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + +adesc = ida_kernwin.action_desc_t( + ACTION_NAME, + "List stack variable xrefs", + list_stkvar_xrefs_ah_t(), + ACTION_SHORTCUT) + +if ida_kernwin.register_action(adesc): + print("Action registered. Please press \"%s\" to use" % ACTION_SHORTCUT) diff --git a/examples/core/list_strings.py b/examples/core/list_strings.py index 6edb49e..3032a01 100644 --- a/examples/core/list_strings.py +++ b/examples/core/list_strings.py @@ -1,10 +1,22 @@ +""" +summary: retrieve the strings that are present in the IDB + +description: + This uses `idautils.Strings` to iterate over the string literals + that are present in the IDB. Contrary to @show_selected_strings, + this will not require that the "Strings" window is opened & available. + +see_also: show_selected_strings +""" + from __future__ import print_function +import ida_nalt import idautils s = idautils.Strings(False) -s.setup(strtypes=Strings.STR_UNICODE | Strings.STR_C) +s.setup(strtypes=[ida_nalt.STRTYPE_C, ida_nalt.STRTYPE_C_16]) for i, v in enumerate(s): if v is None: print("Failed to retrieve string index %d" % i) else: - print("%x: len=%d type=%d index=%d-> '%s'" % (v.ea, v.length, v.type, i, str(v))) + print("%x: len=%d type=0x%x index=%d-> '%s'" % (v.ea, v.length, v.strtype, i, str(v))) diff --git a/examples/core/produce_c_file.py b/examples/core/produce_c_file.py new file mode 100644 index 0000000..1c2ebfb --- /dev/null +++ b/examples/core/produce_c_file.py @@ -0,0 +1,37 @@ +""" +summary: decompile entire file + +description: + automate IDA to perform auto-analysis on a file and, + once that is done, produce a .c file containing the + decompilation of all the functions in that file. + + Run like so: + + ida -A "-S...path/to/produce_c_file.py" + + where: + + * -A instructs IDA to run in non-interactive mode + * -S holds a path to the script to run (note this is a single token; + there is no space between '-S' and its path.) +""" + +import ida_pro +import ida_auto +import ida_loader +import ida_hexrays + +# derive output file name +idb_path = ida_loader.get_path(ida_loader.PATH_TYPE_IDB) +c_path = "%s.c" % idb_path + +ida_auto.auto_wait() # wait for end of auto-analysis +ida_hexrays.decompile_many( # generate .c file + c_path, + None, + ida_hexrays.VDRUN_NEWFILE + |ida_hexrays.VDRUN_SILENT + |ida_hexrays.VDRUN_MAYSTOP) + +ida_pro.qexit(0) diff --git a/examples/core/produce_lst_file.py b/examples/core/produce_lst_file.py new file mode 100644 index 0000000..6d54063 --- /dev/null +++ b/examples/core/produce_lst_file.py @@ -0,0 +1,42 @@ +""" +summary: produce listing + +description: + automate IDA to perform auto-analysis on a file and, + once that is done, produce a .lst file with the disassembly. + + Run like so: + + ida -A "-S...path/to/produce_lst_file.py" + + where: + + * -A instructs IDA to run in non-interactive mode + * -S holds a path to the script to run (note this is a single token; + there is no space between '-S' and its path.) +""" + +import ida_auto +import ida_fpro +import ida_ida +import ida_loader +import ida_pro + +# derive output file name +idb_path = ida_loader.get_path(ida_loader.PATH_TYPE_IDB) +lst_path = "%s.lst" % idb_path + +ida_auto.auto_wait() # wait for end of auto-analysis +fptr = ida_fpro.qfile_t() # FILE * wrapper +if fptr.open(lst_path, "wt"): + try: + ida_loader.gen_file( # generate .lst file + ida_loader.OFILE_LST, + fptr.get_fp(), + ida_ida.inf_get_min_ea(), + ida_ida.inf_get_max_ea(), + 0) + finally: + fptr.close() + +ida_pro.qexit(0) diff --git a/examples/core/register_timer.py b/examples/core/register_timer.py index fdafda0..dd1988c 100644 --- a/examples/core/register_timer.py +++ b/examples/core/register_timer.py @@ -1,15 +1,19 @@ -from __future__ import print_function -# ------------------------------------------------------------------------- -# This is an example illustrating how to use timers -# (c) Hex-Rays +""" +summary: using timers for delayed execution -import idaapi +description: + Register (possibly repeating) timers. +""" + +from __future__ import print_function + +import ida_kernwin # ------------------------------------------------------------------------- class timercallback_t(object): def __init__(self): self.interval = 1000 - self.obj = idaapi.register_timer(self.interval, self) + self.obj = ida_kernwin.register_timer(self.interval, self) if self.obj is None: raise RuntimeError("Failed to register timer") self.times = 5 @@ -21,19 +25,19 @@ class timercallback_t(object): return -1 if self.times == 0 else self.interval def __del__(self): - print("Timer object disposed %s" % id(self)) + print("Timer object disposed %s" % self) # ------------------------------------------------------------------------- def main(): try: t = timercallback_t() - # No need to unregister the timer. - # It will unregister itself in the callback when it returns -1 + # No need to unregister the timer. + # It will unregister itself in the callback when it returns -1 except Exception as e: print("Error: %s" % e) # ------------------------------------------------------------------------- if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/examples/core/trigger_actions_programmatically.py b/examples/core/trigger_actions_programmatically.py index 65a5faa..3f9e5a7 100644 --- a/examples/core/trigger_actions_programmatically.py +++ b/examples/core/trigger_actions_programmatically.py @@ -1,12 +1,23 @@ +""" +summary: execute existing actions programmatically + +description: + It's possible to invoke any action programmatically, by using + either of those two: + + * ida_kernwin.execute_ui_requests() + * ida_kernwin.process_ui_action() + + Ideally, this script should be run through the "File > Script file..." + menu, so as to keep focus on "IDA View-A" and have the + 'ProcessUiActions' part work as intended. + +keywords: actions +""" + from __future__ import print_function -# ----------------------------------------------------------------------- -# This is an example illustrating how to use the execute_ui_requests() -# and the idautils.ProcessUiActions() -# (c) Hex-Rays -# -import idaapi -import idautils -import idc + +import ida_kernwin # -------------------------------------------------------------------------- class __process_ui_actions_helper(object): @@ -34,9 +45,9 @@ class __process_ui_actions_helper(object): return False # Execute one action - idaapi.process_ui_action( - self.__action_list[self.__idx], - self.__flags) + aname = self.__action_list[self.__idx] + print("executing: %s (flags=0x%x)" % (aname, self.__flags)) + print("=> %s" % ida_kernwin.process_ui_action(aname, self.__flags)) # Move to next action self.__idx += 1 @@ -55,7 +66,7 @@ def ProcessUiActions(actions, flags=0): # Instantiate a helper helper = __process_ui_actions_helper(actions, flags) - return False if len(helper) < 1 else idaapi.execute_ui_requests((helper,)) + return False if len(helper) < 1 else ida_kernwin.execute_ui_requests((helper,)) # -------------------------------------------------------------------------- @@ -63,14 +74,15 @@ class print_req_t(object): def __init__(self, s): self.s = s def __call__(self): - idaapi.msg("%s" % self.s) + ida_kernwin.msg("%s" % self.s) return False # Don't reschedule - -if idc.ask_yn(1,("HIDECANCEL\nDo you want to run execute_ui_requests() example?\n" - "Press NO to execute ProcessUiActions() example\n")): - idaapi.execute_ui_requests( - (print_req_t("Hello"), print_req_t(" world\n")) ) +if ida_kernwin.ask_yn( + 1, ("HIDECANCEL\nDo you want to run execute_ui_requests() example?\n" + "Press NO to execute ProcessUiActions() example\n")): + ida_kernwin.execute_ui_requests( + (print_req_t("Hello"), + print_req_t(" world\n")) ) else: - ProcessUiActions("JumpQ;JumpName") + ProcessUiActions("JumpQ;Breakpoints") diff --git a/examples/debugging/appcall/simple_appcall_common.py b/examples/debugging/appcall/simple_appcall_common.py new file mode 100644 index 0000000..425a6ea --- /dev/null +++ b/examples/debugging/appcall/simple_appcall_common.py @@ -0,0 +1,46 @@ + +import ida_dbg +import ida_idaapi +import ida_idd +import ida_kernwin +import ida_typeinf +import ida_name + +def log(msg): + print(">>> %s" % msg) + +class appcall_hooks_t(ida_dbg.DBG_Hooks): + def __init__(self, name_funcs=[]): + ida_dbg.DBG_Hooks.__init__(self) # important + + for ea, func_name in name_funcs: + log("Renaming 0x%08x to \"%s\"" % (ea, func_name)) + ida_name.set_name(ea, func_name) + + for func_name, func_proto in [ + ("ref4", "int ref4(int *);"), + ("ref8", "int ref8(long long int *);"), + ]: + log("Setting '%s's prototype" % func_name) + func_ea = ida_name.get_name_ea(ida_idaapi.BADADDR, func_name) + assert(ida_typeinf.apply_cdecl(None, func_ea, func_proto)) + + + def dbg_run_to(self, pid, tid, ea): + log("'run_to' reached its target location. Performing appcalls.") + + for func_name in ["ref4", "ref8"]: + int_value = ida_idd.Appcall.int64(5) + int_ptr = ida_idd.Appcall.byref(int_value) + if ida_idd.Appcall[func_name](int_ptr): + log("Appcall (%s) succeeded: int_value.value=%s, int_ptr.value=%s" % ( + func_name, + int_value.value, + int_ptr.value)) + else: + log("Appcall (%s) failed" % func_name) + + + def run(self): + log("Running program up to current address, and letting the hooks do the rest") + assert(ida_dbg.run_to(ida_kernwin.get_screen_ea())) diff --git a/examples/debugging/appcall/simple_appcall_linux.py b/examples/debugging/appcall/simple_appcall_linux.py new file mode 100644 index 0000000..ff4150d --- /dev/null +++ b/examples/debugging/appcall/simple_appcall_linux.py @@ -0,0 +1,32 @@ +""" +summary: executing code into the application being debugged (on Linux) + +description: + Using the `ida_idd.Appcall` utility to execute code in + the process being debugged. + + This example will run the test program and stop wherever + the cursor currently is, and then perform an appcall to + execute the `ref4` and `ref8` functions. + + To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * select the 'linux debugger' (either local, or remote) + * run this script + + Note: the real body of code is in `simple_appcall_common.py`. +""" + +from __future__ import print_function + +import os +import sys +sys.path.append(os.path.dirname(__file__)) + +import simple_appcall_common +appcall_hooks = simple_appcall_common.appcall_hooks_t() +appcall_hooks.hook() +appcall_hooks.run() diff --git a/examples/debugging/appcall/simple_appcall_win.py b/examples/debugging/appcall/simple_appcall_win.py new file mode 100644 index 0000000..3f9bcac --- /dev/null +++ b/examples/debugging/appcall/simple_appcall_win.py @@ -0,0 +1,48 @@ +""" +summary: executing code into the application being debugged (on Windows) + +description: + Using the `ida_idd.Appcall` utility to execute code in + the process being debugged. + + This example will run the test program and stop wherever + the cursor currently is, and then perform an appcall to + execute the `ref4` and `ref8` functions. + + To use this example: + + * run `ida64` on test program `simple_appcall_win64.exe`, or + `ida` on test program `simple_appcall_win32.exe`, and wait for + auto-analysis to finish + * select the 'windows debugger' (either local, or remote) + * run this script + + Note: the real body of code is in `simple_appcall_common.py`. +""" + +from __future__ import print_function + +import os +import sys +sys.path.append(os.path.dirname(__file__)) + +# Windows binaries don't have any symbols, thus we'll have +# to assign names to addresses of interest before we can +# appcall them by name. +import ida_ida +if ida_ida.inf_is_64bit(): + ref4_ea = 0x140001000 + ref8_ea = 0x140001060 +else: + ref4_ea = 0x401000 + ref8_ea = 0x401050 + +import simple_appcall_common +appcall_hooks = simple_appcall_common.appcall_hooks_t( + name_funcs=[ + (ref4_ea, "ref4"), + (ref8_ea, "ref8"), + ]) + +appcall_hooks.hook() +appcall_hooks.run() diff --git a/examples/debugging/appcall/test_programs/simple_appcall/makefile b/examples/debugging/appcall/test_programs/simple_appcall/makefile new file mode 100644 index 0000000..de75d62 --- /dev/null +++ b/examples/debugging/appcall/test_programs/simple_appcall/makefile @@ -0,0 +1,47 @@ + +ifdef __NT__ + EA32_TARGET:=simple_appcall_win32.exe + EA64_TARGET:=simple_appcall_win64.exe +else + ifdef __LINUX__ + EA32_TARGET:=simple_appcall_linux32 + EA64_TARGET:=simple_appcall_linux64 + else + $(error Not implemented for OSX) + endif +endif + +all: $(EA32_TARGET) $(EA64_TARGET) + +simple_appcall_win32.exe: simple_appcall_win32.obj + C:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/bin/HostX86/x86/link.exe \ + /LIBPATH:C:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/lib/x86 \ + /LIBPATH:C:/PROGRA~2/WI3CF2~1/10/Lib/100171~1.0/ucrt/x86 \ + /LIBPATH:C:/idasrc/THIRD_~1/mssdk/8.1/Lib/x86 \ + /OUT:$@ $< + +simple_appcall_win32.obj: simple_appcall.c + C:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/bin/HostX86/x86/cl.exe \ + /IC:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/Include \ + /IC:/PROGRA~2/WI3CF2~1/10/Include/100171~1.0/ucrt \ + /Zi /D__NT__ /DNDEBUG /DWIN32 /D_CONSOLE /D__VC__ /c /MD $< /Fo$@ + +simple_appcall_win64.exe: simple_appcall_win64.obj + C:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/bin/HostX86/x86/link.exe \ + /LIBPATH:C:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/lib/x64 \ + /LIBPATH:C:/PROGRA~2/WI3CF2~1/10/Lib/100171~1.0/ucrt/x64 \ + /LIBPATH:C:/idasrc/THIRD_~1/mssdk/8.1/Lib/x64 \ + /OUT:$@ $< + +simple_appcall_win64.obj: simple_appcall.c + C:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/bin/HostX64/x64/cl.exe \ + /IC:/PROGRA~2/MIB055~1/2017/PROFES~1/VC/Tools/MSVC/1415~1.267/Include \ + /IC:/PROGRA~2/WI3CF2~1/10/Include/100171~1.0/ucrt \ + /Zi /D__NT__ /DNDEBUG /DWIN32 /D_CONSOLE /D__VC__ /c /MD $< /Fo$@ + + +simple_appcall_linux32: simple_appcall.c + gcc -m32 -o $@ $< + +simple_appcall_linux64: simple_appcall.c + gcc -m64 -o $@ $< diff --git a/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall.c b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall.c new file mode 100644 index 0000000..691d59a --- /dev/null +++ b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall.c @@ -0,0 +1,35 @@ +#include + +typedef int int32; +int ref4(int32 *a) +{ + if (a == NULL) + { + printf("ref4: no number passed!"); + return -1; + } + printf("ref4: entered with %d\n", *a); + (*a)++; + return 1; +} + +typedef long long int int64; +int ref8(int64 *a) +{ + if (a == NULL) + { + printf("ref8: no number passed!"); + return -1; + } + printf("ref8: entered with %lld\n", *a); + (*a)++; + return 1; +} + +int main() +{ + int32 x; + int res = ref4(&x); + int64 y; + return res + ref8(&y); +} diff --git a/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_linux32 b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_linux32 new file mode 100755 index 0000000..889d876 Binary files /dev/null and b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_linux32 differ diff --git a/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_linux64 b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_linux64 new file mode 100755 index 0000000..dd71056 Binary files /dev/null and b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_linux64 differ diff --git a/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_win32.exe b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_win32.exe new file mode 100755 index 0000000..966e9b1 Binary files /dev/null and b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_win32.exe differ diff --git a/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_win64.exe b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_win64.exe new file mode 100755 index 0000000..d555679 Binary files /dev/null and b/examples/debugging/appcall/test_programs/simple_appcall/simple_appcall_win64.exe differ diff --git a/examples/debugging/dbghooks/automatic_steps.py b/examples/debugging/dbghooks/automatic_steps.py index 6574951..9d58d86 100644 --- a/examples/debugging/dbghooks/automatic_steps.py +++ b/examples/debugging/dbghooks/automatic_steps.py @@ -1,42 +1,48 @@ -from __future__ import print_function -#--------------------------------------------------------------------- -# Debug notification hook test -# -# This script start the executable and steps through the first five -# instructions. Each instruction is disassembled after execution. -# -# Original Author: Gergely Erdelyi -# -# Maintained By: IDAPython Team -# -#--------------------------------------------------------------------- -from idaapi import * +""" +summary: programmatically drive a debugging session -class MyDbgHook(DBG_Hooks): +description: + Start a debugging session, step through the first five + instructions. Each instruction is disassembled after + execution. +""" + +from __future__ import print_function + +import ida_dbg +import ida_ida +import ida_lines + +class MyDbgHook(ida_dbg.DBG_Hooks): """ Own debug hook class that implementd the callback functions """ + def __init__(self): + ida_dbg.DBG_Hooks.__init__(self) # important + self.steps = 0 + + def log(self, msg): + print(">>> %s" % msg) + def dbg_process_start(self, pid, tid, ea, name, base, size): - print("Process started, pid=%d tid=%d name=%s" % (pid, tid, name)) + self.log("Process started, pid=%d tid=%d name=%s" % (pid, tid, name)) def dbg_process_exit(self, pid, tid, ea, code): - print("Process exited pid=%d tid=%d ea=0x%x code=%d" % (pid, tid, ea, code)) + self.log("Process exited pid=%d tid=%d ea=0x%x code=%d" % (pid, tid, ea, code)) def dbg_library_unload(self, pid, tid, ea, info): - print("Library unloaded: pid=%d tid=%d ea=0x%x info=%s" % (pid, tid, ea, info)) - return 0 + self.log("Library unloaded: pid=%d tid=%d ea=0x%x info=%s" % (pid, tid, ea, info)) def dbg_process_attach(self, pid, tid, ea, name, base, size): - print("Process attach pid=%d tid=%d ea=0x%x name=%s base=%x size=%x" % (pid, tid, ea, name, base, size)) + self.log("Process attach pid=%d tid=%d ea=0x%x name=%s base=%x size=%x" % (pid, tid, ea, name, base, size)) def dbg_process_detach(self, pid, tid, ea): - print("Process detached, pid=%d tid=%d ea=0x%x" % (pid, tid, ea)) - return 0 + self.log("Process detached, pid=%d tid=%d ea=0x%x" % (pid, tid, ea)) def dbg_library_load(self, pid, tid, ea, name, base, size): - print("Library loaded: pid=%d tid=%d name=%s base=%x" % (pid, tid, name, base)) + self.log("Library loaded: pid=%d tid=%d name=%s base=%x" % (pid, tid, name, base)) def dbg_bpt(self, tid, ea): - print("Break point at 0x%x pid=%d" % (ea, tid)) + self.log("Break point at 0x%x pid=%d" % (ea, tid)) # return values: # -1 - to display a breakpoint warning dialog # if the process is suspended. @@ -45,11 +51,11 @@ class MyDbgHook(DBG_Hooks): return 0 def dbg_suspend_process(self): - print("Process suspended") + self.log("Process suspended") def dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info): - print("Exception: pid=%d tid=%d ea=0x%x exc_code=0x%x can_continue=%d exc_ea=0x%x exc_info=%s" % ( - pid, tid, ea, exc_code & idaapi.BADADDR, exc_can_cont, exc_ea, exc_info)) + self.log("Exception: pid=%d tid=%d ea=0x%x exc_code=0x%x can_continue=%d exc_ea=0x%x exc_info=%s" % ( + pid, tid, ea, exc_code & ida_idaapi.BADADDR, exc_can_cont, exc_ea, exc_info)) # return values: # -1 - to display an exception warning dialog # if the process is suspended. @@ -58,30 +64,32 @@ class MyDbgHook(DBG_Hooks): return 0 def dbg_trace(self, tid, ea): - print("Trace tid=%d ea=0x%x" % (tid, ea)) + self.log("Trace tid=%d ea=0x%x" % (tid, ea)) # return values: # 1 - do not log this trace event; # 0 - log it return 0 def dbg_step_into(self): - print("Step into") + self.log("Step into") self.dbg_step_over() def dbg_run_to(self, pid, tid=0, ea=0): - print("Runto: tid=%d" % tid) - idaapi.continue_process() - + self.log("Runto: tid=%d, ea=%x" % (tid, ea)) + ida_dbg.request_step_over() def dbg_step_over(self): - eip = get_reg_value("EIP") - print("0x%x %s" % (eip, GetDisasm(eip))) + eip = ida_dbg.get_reg_val("EIP") + disasm = ida_lines.tag_remove( + ida_lines.generate_disasm_line( + eip)) + self.log("Step over: EIP=0x%x, disassembly=%s" % (eip, disasm)) self.steps += 1 if self.steps >= 5: - request_exit_process() + ida_dbg.request_exit_process() else: - request_step_over() + ida_dbg.request_step_over() # Remove an existing debug hook @@ -95,14 +103,9 @@ except: # Install the debug hook debughook = MyDbgHook() debughook.hook() -debughook.steps = 0 -# Stop at the entry point -ep = get_inf_attr(INF_START_IP) -request_run_to(ep) - -# Step one instruction -request_step_over() - -# Start debugging -run_requests() +ep = ida_ida.inf_get_start_ip() +if ida_dbg.request_run_to(ep): # Request stop at entry point + ida_dbg.run_requests() # Launch process +else: + print("Impossible to prepare debugger requests. Is a debugger selected?") diff --git a/examples/debugging/dbghooks/dbg_trace.py b/examples/debugging/dbghooks/dbg_trace.py new file mode 100644 index 0000000..0ed3aa8 --- /dev/null +++ b/examples/debugging/dbghooks/dbg_trace.py @@ -0,0 +1,116 @@ +""" +summary: using the low-level tracing hook + +description: + This script demonstrates using the low-level tracing hook + (ida_dbg.DBG_Hooks.dbg_trace). It can be run like so: + + ida[t].exe -B -Sdbg_trace.py -Ltrace.log file.exe +""" + +import time + +import ida_dbg +import ida_ida +import ida_pro +import ida_ua +from ida_allins import NN_callni, NN_call, NN_callfi +from ida_lines import generate_disasm_line, GENDSM_FORCE_CODE, GENDSM_REMOVE_TAGS + +# Note: this try/except block below is just there to +# let us (at Hex-Rays) test this script in various +# situations. +try: + import idc + print(idc.ARGV[1]) + under_test = bool(idc.ARGV[1]) +except: + under_test = False + +class TraceHook(ida_dbg.DBG_Hooks): + def __init__(self): + ida_dbg.DBG_Hooks.__init__(self) + self.traces = 0 + self.epReached = False + + def _log(self, msg): + print(">>> %s" % msg) + + def dbg_trace(self, tid, ea): + # Log all traced addresses + if ea < ida_ida.inf_get_min_ea() or ea > ida_ida.inf_get_max_ea(): + raise Exception( + "Received a trace callback for an address outside this database!" + ) + + self._log("trace %08X" % ea) + self.traces += 1 + insn = ida_ua.insn_t() + insnlen = ida_ua.decode_insn(insn, ea) + # log disassembly and ESP for call instructions + if insnlen > 0 and insn.itype in [NN_callni, NN_call, NN_callfi]: + self._log( + "call insn: %s" + % generate_disasm_line(ea, GENDSM_FORCE_CODE | GENDSM_REMOVE_TAGS) + ) + self._log("ESP=%08X" % ida_dbg.get_reg_val("ESP")) + + return 1 + + def dbg_run_to(self, pid, tid=0, ea=0): + # this hook is called once execution reaches temporary breakpoint set by run_to(ep) below + if not self.epReached: + ida_dbg.refresh_debugger_memory() + self._log("reached entry point at 0x%X" % ida_dbg.get_reg_val("EIP")) + self._log("current step trace options: %x" % ida_dbg.get_step_trace_options()) + self.epReached = True + + # enable step tracing (single-step the program and generate dbg_trace events) + ida_dbg.request_enable_step_trace(1) + # change options to only "over debugger segments" (i.e. library functions will be traced) + ida_dbg.request_set_step_trace_options(ida_dbg.ST_OVER_DEBUG_SEG) + ida_dbg.request_continue_process() + ida_dbg.run_requests() + + def dbg_process_exit(self, pid, tid, ea, code): + self._log("process exited with %d" % code) + self._log("traced %d instructions" % self.traces) + return 0 + + +def do_trace(then_quit_ida=True): + debugHook = TraceHook() + debugHook.hook() + + # Start tracing when entry point is hit + ep = ida_ida.inf_get_start_ip() + ida_dbg.enable_step_trace(1) + ida_dbg.set_step_trace_options(ida_dbg.ST_OVER_DEBUG_SEG | ida_dbg.ST_OVER_LIB_FUNC) + print("Running to %x" % ep) + ida_dbg.run_to(ep) + + while ida_dbg.get_process_state() != 0: + ida_dbg.wait_for_next_event(1, 0) + + if not debugHook.epReached: + raise Exception("Entry point wasn't reached!") + + if not debugHook.unhook(): + raise Exception("Error uninstalling hooks!") + + del debugHook + + if then_quit_ida: + # we're done; exit IDA + ida_pro.qexit(0) + + +# load the debugger module depending on the file type +if ida_ida.inf_get_filetype() == ida_ida.f_PE: + ida_dbg.load_debugger("win32", 0) +elif ida_ida.inf_get_filetype() == ida_ida.f_ELF: + ida_dbg.load_debugger("linux", 0) +elif ida_ida.inf_get_filetype() == ida_ida.f_MACHO: + ida_dbg.load_debugger("mac", 0) +if not under_test: + do_trace() diff --git a/examples/debugging/misc/print_call_stack.py b/examples/debugging/misc/print_call_stack.py new file mode 100644 index 0000000..441ff6a --- /dev/null +++ b/examples/debugging/misc/print_call_stack.py @@ -0,0 +1,59 @@ +""" +summary: print call stack (on Linux) + +description: print the return addresses from the call stack at a breakpoint. + (and print also the module and the debug name from debugger) + + To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * put a breakpoint where you want to see the call stack + * select the 'linux debugger' (either local, or remote) + * start debugging + * Press Shift+C at the breakpoint +""" +import os +import ida_idaapi +import ida_idd +import ida_dbg +import ida_kernwin +import ida_name + +def log(msg): + print(">>> %s" % msg) + +class print_call_stack_ah_t(): + def activate(self, ctx): + log("=== start of call stack impression ===") + tid = ida_dbg.get_current_thread() + trace = ida_idd.call_stack_t() + if ida_dbg.collect_stack_trace(tid, trace): + for frame in trace: + mi = ida_idd.modinfo_t() + if ida_dbg.get_module_info(frame.callea, mi): + module = os.path.basename(mi.name) + name = ida_name.get_nice_colored_name( + frame.callea, + ida_name.GNCN_NOCOLOR|ida_name.GNCN_NOLABEL|ida_name.GNCN_NOSEG|ida_name.GNCN_PREFDBG) + log("Return address: " + hex(frame.callea) + " from: " + module + " with debug name: " + name) + else: + log("Return address: " + hex(frame.callea)) + log("=== end of call stack impression ===") + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_ALWAYS + +ACTION_NAME = "example:print_call_stack" +ACTION_LABEL = "Print call stack" +ACTION_SHORTCUT = "Shift+C" +ACTION_HELP = "Press %s to dump the call stack" % ACTION_SHORTCUT + +if ida_kernwin.register_action(ida_kernwin.action_desc_t( + ACTION_NAME, + ACTION_LABEL, + print_call_stack_ah_t(), + ACTION_SHORTCUT)): + print("Registered action \"%s\". %s" % (ACTION_LABEL, ACTION_HELP)) + diff --git a/examples/debugging/misc/print_registers.py b/examples/debugging/misc/print_registers.py new file mode 100644 index 0000000..d8683f6 --- /dev/null +++ b/examples/debugging/misc/print_registers.py @@ -0,0 +1,53 @@ +""" +summary: print all registers, for all threads + +description: iterate over the list of threads in the program being + debugged, and dump all registers contents + + To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * put a breakpoint somewhere in the code + * select the 'linux debugger' (either local, or remote) + * start debugging + * Press Alt+Shift+C at the breakpoint +""" +import ida_idd +import ida_dbg + +def log(msg): + print(">>> %s" % msg) + +class print_registers_ah_t(): + def activate(self, ctx): + log("=== registers ===") + dbg = ida_idd.get_dbg() + for tidx in range(ida_dbg.get_thread_qty()): + tid = ida_dbg.getn_thread(tidx) + log(" Thread #%d" % tid) + regvals = ida_dbg.get_reg_vals(tid) + for ridx, rv in enumerate(regvals): + rinfo = dbg.regs(ridx) + rval = rv.pyval(rinfo.dtype) + if isinstance(rval, int): + rval = "0x%x" % rval + log(" %s: %s" % (rinfo.name, rval)) + log("=== end of registers ===") + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_ALWAYS + +ACTION_NAME = "example:print_registers" +ACTION_LABEL = "Print registers" +ACTION_SHORTCUT = "Alt+Shift+C" +ACTION_HELP = "Press %s to print the registers" % ACTION_SHORTCUT + +if ida_kernwin.register_action(ida_kernwin.action_desc_t( + ACTION_NAME, + ACTION_LABEL, + print_registers_ah_t(), + ACTION_SHORTCUT)): + print("Registered action \"%s\". %s" % (ACTION_LABEL, ACTION_HELP)) + diff --git a/examples/debugging/misc/registers_context_menu.py b/examples/debugging/misc/registers_context_menu.py new file mode 100644 index 0000000..8692cdb --- /dev/null +++ b/examples/debugging/misc/registers_context_menu.py @@ -0,0 +1,58 @@ +""" +summary: adding actions to the "registers" widget(s) + +description: + It's possible to add actions to the context menu of + pretty much all widgets in IDA. + + This example shows how to do just that for + registers-displaying widgets (e.g., "General registers") +""" + +import ida_dbg +import ida_idd +import ida_kernwin +import ida_ua + +ACTION_NAME = "registers_context_menu:dump_reg" + +class dump_reg_ah_t(ida_kernwin.action_handler_t): + def activate(self, ctx): + name = ctx.regname + value = ida_dbg.get_reg_val(name) + rtype = "integer" + rinfo = ida_idd.register_info_t() + if ida_dbg.get_dbg_reg_info(name, rinfo): + if rinfo.dtype == ida_ua.dt_byte: + value = "0x%02x" % value + elif rinfo.dtype == ida_ua.dt_word: + value = "0x%04x" % value + elif rinfo.dtype == ida_ua.dt_dword: + value = "0x%08x" % value + elif rinfo.dtype == ida_ua.dt_qword: + value = "0x%016x" % value + else: + rtype = "float" + print("> Register %s (of type %s): %s" % (name, rtype, value)) + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type == ida_kernwin.BWN_CPUREGS \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +if ida_kernwin.register_action( + ida_kernwin.action_desc_t( + ACTION_NAME, + "Dump register info", + dump_reg_ah_t())): + + class registers_hooks_t(ida_kernwin.UI_Hooks): + def finish_populating_widget_popup(self, form, popup): + if ida_kernwin.get_widget_type(form) == ida_kernwin.BWN_CPUREGS: + ida_kernwin.attach_action_to_popup(form, popup, ACTION_NAME) + + hooks = registers_hooks_t() + hooks.hook() +else: + print("Failed to register action") diff --git a/examples/debugging/misc/tempo.py b/examples/debugging/misc/tempo.py deleted file mode 100644 index 7413fc3..0000000 --- a/examples/debugging/misc/tempo.py +++ /dev/null @@ -1,35 +0,0 @@ -from __future__ import print_function -from tempo import *; - -def test_getmeminfo(): - L = tempo.getmeminfo() - out = [] - - # start_ea end_ea name sclass sbase bitness perm - for (start_ea, end_ea, name, sclass, sbase, bitness, perm) in L: - out.append("%x: %x name=<%s> sclass=<%s> sbase=%x bitness=%2x perm=%2x" % (start_ea, end_ea, name, sclass, sbase, bitness, perm)) - - f = file(r"d:\temp\out.log", "w") - f.write(("\n".join(out)).encode("UTF-8")) - f.close() - - print("dumped meminfo!") - - -def test_getregs(): - # name flags class dtype bit_strings bit_strings_default_mask - L = tempo.getregs() - out = [] - for (name, flags, cls, dtype, bit_strings, bit_strings_default_mask) in L: - out.append("name=<%s> flags=%x class=%x dtype=%x bit_strings_mask=%x" % (name, flags, cls, dtype, bit_strings_default_mask)) - if bit_strings: - for s in bit_strings: - out.append(" %s" % s) - - f = file(r"d:\temp\out.log", "w") - f.write(("\n".join(out)).encode("UTF-8")) - f.close() - - print("dumped regs!") - - diff --git a/examples/debugging/show_debug_names.py b/examples/debugging/show_debug_names.py index 61f45cc..05ba426 100644 --- a/examples/debugging/show_debug_names.py +++ b/examples/debugging/show_debug_names.py @@ -1,15 +1,28 @@ +""" +summary: retrieving & dumping debuggee symbols + +description: + Queries the debugger (possibly remotely) for the list of + symbols that the process being debugged, provides. +""" + from __future__ import print_function -import idaapi + +import ida_dbg +import ida_ida +import ida_name def main(): - if not idaapi.is_debugger_on(): + if not ida_dbg.is_debugger_on(): print("Please run the process first!") return - if idaapi.get_process_state() != -1: + if ida_dbg.get_process_state() != -1: print("Please suspend the debugger first!") return - dn = idaapi.get_debug_names(idaapi.cvar.inf.min_ea, idaapi.cvar.inf.max_ea) + dn = ida_name.get_debug_names( + ida_ida.inf_get_min_ea(), + ida_ida.inf_get_max_ea()) for i in dn: print("%08x: %s" % (i, dn[i])) diff --git a/examples/hexrays/colorize_pseudocode_lines.py b/examples/hexrays/colorize_pseudocode_lines.py new file mode 100644 index 0000000..6c6124d --- /dev/null +++ b/examples/hexrays/colorize_pseudocode_lines.py @@ -0,0 +1,102 @@ +""" +summary: interactively color certain pseudocode lines + +description: + Provides an action that can be used to dynamically alter the + lines background rendering for pseudocode listings (as opposed to + using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`) + + After running this script, pressing 'M' on a line in a + "Pseudocode-?" widget, will cause that line to be rendered + with a special background color. + +keywords: colors +""" + +import ida_kernwin +import ida_hexrays +import ida_moves +import ida_idaapi + +class pseudo_line_t(object): + def __init__(self, func_ea, line_nr): + self.func_ea = func_ea + self.line_nr = line_nr + + def __hash__(self): + return hash((self.func_ea, self.line_nr)) + + def __eq__(self, r): + return self.func_ea == r.func_ea \ + and self.line_nr == r.line_nr + + +def _place_to_line_number(p): + return ida_kernwin.place_t.as_simpleline_place_t(p).n + + +class pseudocode_lines_rendering_hooks_t(ida_kernwin.UI_Hooks): + def __init__(self): + ida_kernwin.UI_Hooks.__init__(self) + self.marked_lines = {} + + def get_lines_rendering_info(self, out, widget, rin): + vu = ida_hexrays.get_widget_vdui(widget) + if vu: + entry_ea = vu.cfunc.entry_ea + for section_lines in rin.sections_lines: + for line in section_lines: + coord = pseudo_line_t( + entry_ea, + _place_to_line_number(line.at)) + color = self.marked_lines.get(coord, None) + if color is not None: + e = ida_kernwin.line_rendering_output_entry_t(line) + e.bg_color = color + out.entries.push_back(e) + + +class toggle_line_marked_ah_t(ida_kernwin.action_handler_t): + + """ + We could very well use an ARGB value, but instead let's go + go with a color 'key': those can be altered by the user/theme, + and therefore have a better chance of being appropriate (or at + least expected.) + """ + COLOR_KEY = ida_kernwin.CK_EXTRA11 + + def __init__(self, hooks): + ida_kernwin.action_handler_t.__init__(self) + self.hooks = hooks + + def activate(self, ctx): + vu = ida_hexrays.get_widget_vdui(ctx.widget) + if vu: + loc = ida_moves.lochist_entry_t() + if ida_kernwin.get_custom_viewer_location(loc, ctx.widget): + coord = pseudo_line_t( + vu.cfunc.entry_ea, + _place_to_line_number(loc.place())) + if coord in self.hooks.marked_lines.keys(): + del self.hooks.marked_lines[coord] + else: + self.hooks.marked_lines[coord] = self.COLOR_KEY + ida_kernwin.refresh_custom_viewer(ctx.widget) + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type == ida_kernwin.BWN_PSEUDOCODE \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +hooks = pseudocode_lines_rendering_hooks_t() +act_name = "example:colorize_pseudocode_line" +act_shortcut = "M" +if ida_kernwin.register_action(ida_kernwin.action_desc_t( + act_name, + "Mark pseudocode line", + toggle_line_marked_ah_t(hooks), + act_shortcut)): + hooks.hook() + print("Action registered. Please press '%s' in a pseudocode window to mark a line" % act_shortcut) diff --git a/examples/hexrays/curpos_details.py b/examples/hexrays/curpos_details.py new file mode 100644 index 0000000..775ceff --- /dev/null +++ b/examples/hexrays/curpos_details.py @@ -0,0 +1,90 @@ +""" +summary: a focus on the 'curpos' hook, printing additional details about user input + +description: + Shows how user input information can be retrieved during + processing of a notification triggered by that input + +see_also: vds_hooks +""" + +import ida_hexrays +import ida_kernwin + +class curpos_details_t(ida_hexrays.Hexrays_Hooks): + def curpos(self, v): + parts = ["cpos={lnnum=%d, x=%d, y=%d}" % (v.cpos.lnnum, v.cpos.x, v.cpos.y)] + uie = ida_kernwin.input_event_t() + if ida_kernwin.get_user_input_event(uie): + kind_str = { + ida_kernwin.iek_shortcut : "shortcut", + ida_kernwin.iek_key_press : "key_press", + ida_kernwin.iek_key_release : "key_release", + ida_kernwin.iek_mouse_button_press : "mouse_button_press", + ida_kernwin.iek_mouse_button_release : "mouse_button_release", + ida_kernwin.iek_mouse_wheel : "mouse_wheel", + }[uie.kind] + + # + # Retrieve input kind-specific information + # + if uie.kind == ida_kernwin.iek_shortcut: + payload_str = "shortcut={action_name=%s}" % uie.shortcut.action_name + elif uie.kind in [ + ida_kernwin.iek_key_press, + ida_kernwin.iek_key_release]: + payload_str = "keyboard={key=%d, text=%s}" % (uie.keyboard.key, uie.keyboard.text) + else: + payload_str = "mouse={x=%d, y=%d, button=%d}" % ( + uie.mouse.x, + uie.mouse.y, + uie.mouse.button) + + # + # And while at it, retrieve a few extra bits from the + # source QEvent as well, why not + # + qevent = uie.get_source_QEvent() + qevent_str = str(qevent) + from PyQt5 import QtCore + if qevent.type() in [ + QtCore.QEvent.KeyPress, + QtCore.QEvent.KeyRelease]: + qevent_str="{count=%d}" % qevent.count() + elif qevent.type() in [ + QtCore.QEvent.MouseButtonPress, + QtCore.QEvent.MouseButtonRelease]: + qevent_str="{globalX=%d, globalY=%d, flags=%s}" % ( + qevent.globalX(), + qevent.globalY(), + qevent.flags()) + elif qevent.type() == QtCore.QEvent.Wheel: + qevent_str="{angleDelta={x=%s, y=%s}, phase=%s}" % ( + qevent.angleDelta().x(), + qevent.angleDelta().y(), + qevent.phase()) + + # + # If the target QWidget is a scroll area's viewport, + # pick up the parent + # + from PyQt5 import QtWidgets + qwidget = uie.get_target_QWidget() + if qwidget: + parent = qwidget.parentWidget() + if parent and isinstance(parent, QtWidgets.QAbstractScrollArea): + qwidget = parent + + parts.append("user_input_event={kind=%s, modifiers=0x%x, target={metaObject={className=%s}, windowTitle=%s}, source=%s, %s, source-as-qevent=%s}" % ( + kind_str, + uie.modifiers, + qwidget.metaObject().className(), + qwidget.windowTitle(), + uie.source, + payload_str, + qevent_str)) + print("### curpos: %s" % ", ".join(parts)) + return 0 + +curpos_details = curpos_details_t() +curpos_details.hook() diff --git a/examples/hexrays/decompile_entry_points.py b/examples/hexrays/decompile_entry_points.py index 4324bc7..504338b 100644 --- a/examples/hexrays/decompile_entry_points.py +++ b/examples/hexrays/decompile_entry_points.py @@ -1,11 +1,16 @@ +""" +summary: automatic decompilation of functions + +description: + Attempts to load a decompiler plugin corresponding to the current + architecture (and address size) right after auto-analysis is performed, + and then tries to decompile the function at the first entrypoint. + + It is particularly suited for use with the '-S' flag, for example: + idat -Ldecompile.log -Sdecompile_entry_points.py -c file +""" + from __future__ import print_function -# -# This example tries to load a decompiler plugin corresponding to the current -# architecture (and address size) right after auto-analysis is performed, -# and then tries to decompile the function at the first entrypoint. -# -# It is particularly suited for use with the '-S' flag. -# import ida_ida import ida_auto @@ -13,29 +18,62 @@ import ida_loader import ida_hexrays import ida_idp import ida_entry +import ida_kernwin -ida_auto.auto_wait() -ALL_DECOMPILERS = { - ida_idp.PLFM_386 : ("hexrays", "hexx64"), - ida_idp.PLFM_ARM : ("hexarm", "hexarm64"), - ida_idp.PLFM_PPC : ("hexppc", "hexppc64"), -} -pair = ALL_DECOMPILERS.get(ida_idp.ph.id, None) -if pair: - decompiler = pair[1 if ida_ida.cvar.inf.is_64bit() else 0] +# because the -S script runs very early, we need to load the decompiler +# manually if we want to use it +def init_hexrays(): + ALL_DECOMPILERS = { + ida_idp.PLFM_386: "hexrays", + ida_idp.PLFM_ARM: "hexarm", + ida_idp.PLFM_PPC: "hexppc", + ida_idp.PLFM_MIPS: "hexmips", + } + cpu = ida_idp.ph.id + decompiler = ALL_DECOMPILERS.get(cpu, None) + if not decompiler: + print("No known decompilers for architecture with ID: %d" % ida_idp.ph.id) + return False + if ida_ida.inf_is_64bit(): + if cpu == ida_idp.PLFM_386: + decompiler = "hexx64" + else: + decompiler += "64" if ida_loader.load_plugin(decompiler) and ida_hexrays.init_hexrays_plugin(): + return True + else: + print('Couldn\'t load or initialize decompiler: "%s"' % decompiler) + return False + + +def decompile_func(ea, outfile): + ida_kernwin.msg("Decompiling at: %X..." % ea) + cf = ida_hexrays.decompile(ea) + if cf: + ida_kernwin.msg("OK\n") + outfile.write(str(cf) + "\n") + else: + ida_kernwin.msg("failed!\n") + outfile.write("decompilation failure at %X!\n" % ea) + + +def main(): + print("Waiting for autoanalysis...") + ida_auto.auto_wait() + if init_hexrays(): eqty = ida_entry.get_entry_qty() if eqty: - ea = ida_entry.get_entry(ida_entry.get_entry_ordinal(0)) - print("Decompiling at: %X" % ea) - cf = ida_hexrays.decompile(ea) - if cf: - print(cf) - else: - print("Decompilation failed") + idbpath = idc.get_idb_path() + cpath = idbpath[:-4] + ".c" + with open(cpath, "w") as outfile: + print("writing results to '%s'..." % cpath) + for i in range(eqty): + ea = ida_entry.get_entry(ida_entry.get_entry_ordinal(i)) + decompile_func(ea, outfile) else: print("No known entrypoint. Cannot decompile.") - else: - print("Couldn't load or initialize decompiler: \"%s\"" % decompiler) -else: - print("No known decompilers for architecture with ID: %d" % ida_idp.ph.id) + if ida_kernwin.cvar.batch: + print("All done, exiting.") + ida_pro.qexit(0) + +main() diff --git a/examples/hexrays/vds1.py b/examples/hexrays/vds1.py index 19ab5c9..6c58827 100644 --- a/examples/hexrays/vds1.py +++ b/examples/hexrays/vds1.py @@ -1,25 +1,33 @@ +""" +summary: decompile & print current function. +""" + from __future__ import print_function -import idaapi + +import ida_hexrays +import ida_lines +import ida_funcs +import ida_kernwin def main(): - if not idaapi.init_hexrays_plugin(): + if not ida_hexrays.init_hexrays_plugin(): return False - print("Hex-rays version %s has been detected" % idaapi.get_hexrays_version()) + print("Hex-rays version %s has been detected" % ida_hexrays.get_hexrays_version()) - f = idaapi.get_func(idaapi.get_screen_ea()); + f = ida_funcs.get_func(ida_kernwin.get_screen_ea()); if f is None: print("Please position the cursor within a function") return True - cfunc = idaapi.decompile(f); + cfunc = ida_hexrays.decompile(f); if cfunc is None: print("Failed to decompile!") return True sv = cfunc.get_pseudocode(); for sline in sv: - print(idaapi.tag_remove(sline.line)); + print(ida_lines.tag_remove(sline.line)); return True diff --git a/examples/hexrays/vds10.py b/examples/hexrays/vds10.py index 8960d09..bd57153 100644 --- a/examples/hexrays/vds10.py +++ b/examples/hexrays/vds10.py @@ -1,27 +1,28 @@ -# -# Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com -# ALL RIGHTS RESERVED. -# -# Sample plugin for Hex-Rays Decompiler. -# It installs a custom microcode optimization rule: -# call !DbgRaiseAssertionFailure .0 -# => -# call !DbgRaiseAssertionFailure .0 -# -# To see this plugin in action please use arm64_brk.i64, in the hexrays sdk -# -# This is a rewrite in Python of the vds10 example that comes with hexrays sdk. -# +""" +summary: a custom microcode instruction optimization rule + +description: + Installs a custom microcode instruction optimization rule, + to transform: + + call !DbgRaiseAssertionFailure .0 + + into + + call !DbgRaiseAssertionFailure .0 + + To see this plugin in action please use arm64_brk.i64 +""" import ida_bytes import ida_range import ida_kernwin import ida_hexrays import ida_typeinf +import ida_idaapi class nt_assert_optimizer_t(ida_hexrays.optinsn_t): - def func(self, blk, ins): + def func(self, blk, ins, optflags): if self.handle_nt_assert(ins): return 1 return 0 @@ -55,10 +56,27 @@ class nt_assert_optimizer_t(ida_hexrays.optinsn_t): fa.size = fa.type.get_size() return True +# -------------------------------------------------------------------------- +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Optimize DbgRaiseAssertionFailure (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin10 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + self.optimizer = nt_assert_optimizer_t() + self.optimizer.install() + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.optimizer.remove() + def run(self, arg): + if arg == 1: + return self.optimizer.remove() + elif arg == 2: + return self.optimizer.install() -if ida_hexrays.init_hexrays_plugin(): - optimizer = nt_assert_optimizer_t() - optimizer.install() -else: - print('vds10: Hex-rays is not available.') +def PLUGIN_ENTRY(): + return my_plugin_t() diff --git a/examples/hexrays/vds11.py b/examples/hexrays/vds11.py index 1a00931..be84155 100644 --- a/examples/hexrays/vds11.py +++ b/examples/hexrays/vds11.py @@ -1,27 +1,29 @@ -# -# Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com -# ALL RIGHTS RESERVED. -# -# Sample plugin for Hex-Rays Decompiler. -# It installs a custom block optimization rule: -# -# goto L1 => goto L2 -# ... -# L1: -# goto L2 -# -# In other words we fix a goto target if it points to a chain of gotos. -# This improves the decompiler output in some cases. -# -# This is a rewrite in Python of the vds11 example that comes with hexrays sdk. -# +""" +summary: a custom microcode block optimization rule (resolve `goto` chains) + +description: + Installs a custom microcode block optimization rule, + to transform: + + goto L1 + ... + L1: + goto L2 + + into + + goto L2 + + In other words we fix a goto target if it points to a chain of gotos. + This improves the decompiler output in some cases. +""" import ida_bytes import ida_range import ida_kernwin import ida_hexrays import ida_typeinf +import ida_idaapi class goto_optimizer_t(ida_hexrays.optblock_t): def func(self, blk): @@ -71,9 +73,27 @@ class goto_optimizer_t(ida_hexrays.optblock_t): mba.verify(True); return True +# -------------------------------------------------------------------------- +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Optimize goto chains (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin11 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + self.optimizer = goto_optimizer_t() + self.optimizer.install() + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.optimizer.remove() + def run(self, arg): + if arg == 1: + return self.optimizer.remove() + elif arg == 2: + return self.optimizer.install() + +def PLUGIN_ENTRY(): + return my_plugin_t() -if ida_hexrays.init_hexrays_plugin(): - optimizer = goto_optimizer_t() - optimizer.install() -else: - print('vds11: Hex-rays is not available.') diff --git a/examples/hexrays/vds12.py b/examples/hexrays/vds12.py index 6c231f6..05608d6 100644 --- a/examples/hexrays/vds12.py +++ b/examples/hexrays/vds12.py @@ -1,14 +1,10 @@ -# -# Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com -# ALL RIGHTS RESERVED. -# -# Sample plugin for Hex-Rays Decompiler. -# It shows list of direct references to a register from the current -# instruction. -# -# This is a rewrite in Python of the vds12 example that comes with hexrays sdk. -# +""" +summary: list instruction registers + +description: + Shows a list of direct references to a register from the + current instruction. +""" import ida_pro import ida_hexrays @@ -107,7 +103,7 @@ if ida_hexrays.init_hexrays_plugin(): mbr, hf, None, - ida_hexrays.DECOMP_WARNINGS, + ida_hexrays.DECOMP_WARNINGS | ida_hexrays.DECOMP_NO_CACHE, ida_hexrays.MMAT_PREOPTIMIZED) if mba: merr = mba.build_graph() diff --git a/examples/hexrays/vds13.py b/examples/hexrays/vds13.py index 09cf178..be9124f 100644 --- a/examples/hexrays/vds13.py +++ b/examples/hexrays/vds13.py @@ -1,13 +1,9 @@ -# -# Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com -# ALL RIGHTS RESERVED. -# -# Sample plugin for Hex-Rays Decompiler. -# It generates microcode for selection and dumps it to the output window. -# -# This is a rewrite in Python of the vds13 example that comes with hexrays sdk. -# +""" +summary: generates microcode for selection + +description: + Generates microcode for selection and dumps it to the output window. +""" import ida_bytes import ida_range diff --git a/examples/hexrays/vds17.py b/examples/hexrays/vds17.py index b247744..1563920 100644 --- a/examples/hexrays/vds17.py +++ b/examples/hexrays/vds17.py @@ -1,20 +1,21 @@ -# -# Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com -# ALL RIGHTS RESERVED. -# -# Sample plugin for Hex-Rays Decompiler. -# It shows how to use "Select offsets" widget (select_udt_by_offset() call). -# This plugin repeats the Alt-Y functionality. -# Usage: place cursor on the union field and press Shift-T -# -# This is a rewrite in Python of the vds17 example that comes with hexrays sdk. -# +""" +summary: using the "Select offsets" widget + +description: + Registers an action opens the "Select offsets" widget + (select_udt_by_offset() call). + + This effectively repeats the functionality already available + through Alt+Y. + + Place cursor on the union field and press Shift+T +""" import ida_idaapi import ida_hexrays import ida_lines import ida_typeinf +import ida_kernwin # -------------------------------------------------------------------------- class func_stroff_ah_t(ida_kernwin.action_handler_t): @@ -26,14 +27,16 @@ class func_stroff_ah_t(ida_kernwin.action_handler_t): vu = ida_hexrays.get_widget_vdui(ctx.widget) vu.get_current_item(ida_hexrays.USE_KEYBOARD) - # REGION1, will be referenced latter + # REGION1, will be referenced later # check that the current item is a union field if not vu.item.is_citem(): + ida_kernwin.warning("Please position the cursor on a union member") return 0 e = vu.item.e while True: op = e.op if op != ida_hexrays.cot_memptr and op != ida_hexrays.cot_memref: + ida_kernwin.warning("Please position the cursor on a union member") return 0 e = e.x if op == ida_hexrays.cot_memptr: @@ -43,6 +46,7 @@ class func_stroff_ah_t(ida_kernwin.action_handler_t): if ida_typeinf.remove_pointer(e.type).is_union(): break if not e.type.is_udt(): + ida_kernwin.warning("Please position the cursor on a union member") return 0 # END REGION1 @@ -98,6 +102,7 @@ class func_stroff_ah_t(ida_kernwin.action_handler_t): # the item itself may be unaddressable. # TODO: find its addressable parent if ea == ida_idaapi.BADADDR: + ida_kernwin.warning("Sorry, the current item is not addressable") return 0 # END REGION4 @@ -126,7 +131,7 @@ class func_stroff_ah_t(ida_kernwin.action_handler_t): def apply(self, opnum, path, top_tif, spath): typename = ida_typeinf.print_tinfo('', 0, 0, ida_typeinf.PRTYPE_1LINE, top_tif, '', '') - idaapi.msg("User selected %s of type %s\n" % (spath, typename)) + ida_kernwin.msg("User selected %s of type %s\n" % (spath, typename)) if path.empty(): return False vu.cfunc.set_user_union_selection(self.ea, path) @@ -151,16 +156,30 @@ class func_stroff_ah_t(ida_kernwin.action_handler_t): # -------------------------------------------------------------------------- -if ida_hexrays.init_hexrays_plugin(): - print("Hex-rays version %s has been detected, Structure offsets ready to use" % ida_hexrays.get_hexrays_version()) - ida_kernwin.register_action( - ida_kernwin.action_desc_t( - "vds17:strchoose", - "Structure offsets", - func_stroff_ah_t(), - "Shift+T")) -else: - print('vds17: Hex-rays is not available.') +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Structure offsets (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin17 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + print("Hex-rays version %s has been detected, Structure offsets ready to use" % ida_hexrays.get_hexrays_version()) + ida_kernwin.register_action( + ida_kernwin.action_desc_t( + "vds17:strchoose", + "Structure offsets", + func_stroff_ah_t(), + "Shift+T")) + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + pass + def run(self, arg): + pass + +def PLUGIN_ENTRY(): + return my_plugin_t() """ # A few notes about the VDS17 sample diff --git a/examples/hexrays/vds19.py b/examples/hexrays/vds19.py new file mode 100644 index 0000000..9bbcfa1 --- /dev/null +++ b/examples/hexrays/vds19.py @@ -0,0 +1,68 @@ +""" +summary: a custom microcode instruction optimization rule (`x | ~x => -1`) + +description: + Installs a custom microcode instruction optimization rule, + to transform: + + x | ~x + + into + + -1 + + To see this plugin in action please use be_ornot_be.idb +""" + +import ida_hexrays +import ida_idaapi + +# recognize "x | ~x" and replace by -1 +class subinsn_optimizer_t(ida_hexrays.minsn_visitor_t): + cnt = 0 + def visit_minsn(self): # for each instruction... + ins = self.curins # take a reference to the current instruction + + # THE CORE OF THE PLUGIN IS HERE: + # check the pattern "x | ~x" + if ins.opcode == ida_hexrays.m_or and ins.r.is_insn(ida_hexrays.m_bnot) and ins.l == ins.r.d.l: + if not ins.l.has_side_effects(): # avoid destroying side effects + # pattern matched, convert to "mov -1, ..." + ins.opcode = ida_hexrays.m_mov + ins.l.make_number(-1, ins.r.size) + ins.r = ida_hexrays.mop_t() + self.cnt = self.cnt + 1 # number of changes we made + return 0 # continue traversal + +# a custom instruction optimizer, boilerplate code +class sample_optimizer_t(ida_hexrays.optinsn_t): + def func(self, blk, ins, optflags): + opt = subinsn_optimizer_t() + ins.for_all_insns(opt) + if opt.cnt != 0: # if we modified microcode, + blk.mba.verify(True) # run the verifier + return opt.cnt # report the number of changes + +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "optimize x|~x" + wanted_hotkey = "" + comment = "" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + self.optimizer = sample_optimizer_t() + self.optimizer.install() + print("Installed sample optimizer for 'x | ~x'") + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.optimizer.remove() + def run(self, arg): + if arg == 1: + return self.optimizer.remove() + elif arg == 2: + return self.optimizer.install() + +def PLUGIN_ENTRY(): + return my_plugin_t() diff --git a/examples/hexrays/vds21.py b/examples/hexrays/vds21.py new file mode 100644 index 0000000..3292bed --- /dev/null +++ b/examples/hexrays/vds21.py @@ -0,0 +1,97 @@ +""" +summary: dynamically provide a custom call type + +description: + This plugin can greatly improve decompilation of indirect calls: + + call [eax+4] + + For them, the decompiler has to guess the prototype of the called function. + This has to be done at a very early phase of decompilation because + the function prototype influences the data flow analysis. On the other + hand, we do not have global data flow analysis results yet because + we haven't analyzed all calls in the function. It is a chicked-and-egg + problem. + + The decompiler uses various techniques to guess the called function + prototype. While it works very well, it may fail in some cases. + + To fix, the user can specify the call prototype manually, using + "Edit, Operand types, Set operand type" at the call instruction. + + This plugin illustrates another approach to the problem: + if you happen to be able to calculate the call prototypes dynamically, + this is how to inform the decompiler about them. +""" + +import ida_idaapi +import ida_nalt +import ida_kernwin +import ida_typeinf +import ida_hexrays + +testing = False # only for testing purposes + +class callinfo_provider_t(ida_hexrays.Hexrays_Hooks): + + # this callback will be called for all call instructions + # our plugin may provide the function prototype or even a complete new callinfo + # object. The callinfo object may be useful if the prototype is not enough + # to express all details of the call. + def build_callinfo(self, blk, type): + # it is a good idea to skip direct calls. + # note that some indirect calls may be resolved and become direct calls, + # and will be filtered out here: + ida_kernwin.msg("%x: got called for: %s\n" % (blk.tail.ea, blk.tail.dstr())) + tail = blk.tail + if tail.opcode == ida_hexrays.m_call: + return + + # also, if the type was specified by the user, do not interfere + call_ea = tail.ea + tif = ida_typeinf.tinfo_t() + if ida_nalt.get_op_tinfo(tif, call_ea, 0): + return + + global testing + if not testing: + # ok, the decompiler really has to guess the type. + # just for the sake of an example, return a predefined prototype. + # in real life you will provide the prototype you discovered yourself, + # using your magic of yours :) + my_proto = "int f();" + ida_kernwin.msg("%x: providing prototype %s\n" % (call_ea, my_proto)) + ida_typeinf.parse_decl(type, None, my_proto, 0) + else: + # as an alternative to filling 'type', you can + # choose to return a mcallinfo_t instance. + mi = ida_hexrays.mcallinfo_t() + mi.cc = ida_typeinf.CM_CC_STDCALL | ida_typeinf.CM_N32_F48 # let's use stdcall to differentiate from the tinfo_t-filling version + mi.return_type = ida_typeinf.tinfo_t(ida_typeinf.BT_INT) + mi.return_argloc.set_reg1(0) # eax + return mi + +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Hex-Rays custom prototype provider (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin21 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + self.hooks = callinfo_provider_t() + self.hooks.hook() + ida_kernwin.warning( + "Installed callinfo provider sample (vds21.py)\n" +\ + "Please note that it is just an example\n" +\ + "and will spoil your decompilations!") + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.hooks.unhook() + def run(self, arg): + pass + +def PLUGIN_ENTRY(): + return my_plugin_t() + diff --git a/examples/hexrays/vds3.py b/examples/hexrays/vds3.py index 835a6d7..72cb78b 100644 --- a/examples/hexrays/vds3.py +++ b/examples/hexrays/vds3.py @@ -1,14 +1,47 @@ -""" Invert the then and else blocks of a cif_t. - -Author: EiNSTeiN_ - -This is a rewrite in Python of the vds3 example that comes with hexrays sdk. """ +summary: invert if/else blocks + +description: + Registers an action that can be used to invert the `if` + and `else` blocks of a `ida_hexrays.cif_t`. + + For example, a statement like + + if ( cond ) + { + statements1; + } + else + { + statements2; + } + + will be displayed as + + if ( !cond ) + { + statements2; + } + else + { + statements1; + } + + The modifications are persistent: the user can quit & restart + IDA, and the changes will be present. + +author: EiNSTeiN_ (einstein@g3nius.org) +""" + from __future__ import print_function import idautils -import idaapi -import idc + +import ida_kernwin +import ida_hexrays +import ida_netnode +import ida_idaapi +import ida_idp import traceback @@ -16,20 +49,20 @@ NETNODE_NAME = '$ hexrays-inverted-if' inverter_actname = "vds3:invert" -class invert_action_handler_t(idaapi.action_handler_t): +class invert_action_handler_t(ida_kernwin.action_handler_t): def __init__(self, inverter): - idaapi.action_handler_t.__init__(self) + ida_kernwin.action_handler_t.__init__(self) self.inverter = inverter def activate(self, ctx): - vdui = idaapi.get_widget_vdui(ctx.widget) + vdui = ida_hexrays.get_widget_vdui(ctx.widget) self.inverter.invert_if_event(vdui) return 1 def update(self, ctx): - return idaapi.AST_ENABLE_FOR_WIDGET if \ - ctx.widget_type == idaapi.BWN_PSEUDOCODE else \ - idaapi.AST_DISABLE_FOR_WIDGET + return ida_kernwin.AST_ENABLE_FOR_WIDGET if \ + ctx.widget_type == ida_kernwin.BWN_PSEUDOCODE else \ + ida_kernwin.AST_DISABLE_FOR_WIDGET class hexrays_callback_info(object): @@ -37,7 +70,7 @@ class hexrays_callback_info(object): def __init__(self): self.vu = None - self.node = idaapi.netnode() + self.node = ida_netnode.netnode() if not self.node.create(NETNODE_NAME): # node exists self.load() @@ -53,7 +86,7 @@ class hexrays_callback_info(object): try: data = self.node.getblob(0, 'I') if data: - self.stored = eval(data) + self.stored = eval(data.decode("UTF-8")) print('Invert-if: Loaded %s' % (repr(self.stored), )) except: print('Failed to load invert-if locations') @@ -65,7 +98,7 @@ class hexrays_callback_info(object): def save(self): try: - self.node.setblob(repr(self.stored), 0, 'I') + self.node.setblob(repr(self.stored).encode("UTF-8"), 0, 'I') except: print('Failed to save invert-if locations') traceback.print_exc() @@ -73,7 +106,7 @@ class hexrays_callback_info(object): return - def invert_if(self, cfunc, insn): + def invert_if(self, insn): if insn.opname != 'if': return False @@ -83,12 +116,12 @@ class hexrays_callback_info(object): if not cif.ithen or not cif.ielse: return False - idaapi.qswap(cif.ithen, cif.ielse) + ida_hexrays.qswap(cif.ithen, cif.ielse) # Make a copy of 'cif.expr': 'lnot' might destroy its toplevel # cexpr_t and return a pointer to its direct child (but we'll want to # 'swap' it later, the 'cif.expr' cexpr_t object must remain valid.) - cond = idaapi.cexpr_t(cif.expr) - notcond = idaapi.lnot(cond) + cond = ida_hexrays.cexpr_t(cif.expr) + notcond = ida_hexrays.lnot(cond) cif.expr.swap(notcond) @@ -104,26 +137,26 @@ class hexrays_callback_info(object): def find_if_statement(self, vu): - vu.get_current_item(idaapi.USE_KEYBOARD) + vu.get_current_item(ida_hexrays.USE_KEYBOARD) item = vu.item - if item.is_citem() and item.it.op == idaapi.cit_if and item.it.to_specific_type.cif.ielse is not None: + if item.is_citem() and item.it.op == ida_hexrays.cit_if and item.it.to_specific_type.cif.ielse is not None: return item.it.to_specific_type - if vu.tail.citype == idaapi.VDI_TAIL and vu.tail.loc.itp == idaapi.ITP_ELSE: + if vu.tail.citype == ida_hexrays.VDI_TAIL and vu.tail.loc.itp == ida_hexrays.ITP_ELSE: # for tail marks, we know only the corresponding ea, # not the pointer to if-statement # find it by walking the whole ctree - class if_finder_t(idaapi.ctree_visitor_t): + class if_finder_t(ida_hexrays.ctree_visitor_t): def __init__(self, ea): - idaapi.ctree_visitor_t.__init__(self, idaapi.CV_FAST | idaapi.CV_INSNS) + ida_hexrays.ctree_visitor_t.__init__(self, ida_hexrays.CV_FAST | ida_hexrays.CV_INSNS) self.ea = ea self.found = None return def visit_insn(self, i): - if i.op == idaapi.cit_if and i.ea == self.ea: + if i.op == ida_hexrays.cit_if and i.ea == self.ea: self.found = i return 1 # stop enumeration return 0 @@ -136,12 +169,11 @@ class hexrays_callback_info(object): def invert_if_event(self, vu): - cfunc = vu.cfunc.__deref__() i = self.find_if_statement(vu) if not i: return False - if self.invert_if(cfunc, i): + if self.invert_if(i): vu.refresh_ctext() self.add_location(i.ea) @@ -149,18 +181,18 @@ class hexrays_callback_info(object): def restore(self, cfunc): - class visitor(idaapi.ctree_visitor_t): + class visitor(ida_hexrays.ctree_visitor_t): def __init__(self, inverter, cfunc): - idaapi.ctree_visitor_t.__init__(self, idaapi.CV_FAST | idaapi.CV_INSNS) + ida_hexrays.ctree_visitor_t.__init__(self, ida_hexrays.CV_FAST | ida_hexrays.CV_INSNS) self.inverter = inverter self.cfunc = cfunc return def visit_insn(self, i): try: - if i.op == idaapi.cit_if and i.ea in self.inverter.stored: - self.inverter.invert_if(self.cfunc, i) + if i.op == ida_hexrays.cit_if and i.ea in self.inverter.stored: + self.inverter.invert_if(i) except: traceback.print_exc() return 0 # continue enumeration @@ -170,31 +202,57 @@ class hexrays_callback_info(object): return -class vds3_hooks_t(idaapi.Hexrays_Hooks): +class vds3_hooks_t(ida_hexrays.Hexrays_Hooks): def __init__(self, i): - idaapi.Hexrays_Hooks.__init__(self) + ida_hexrays.Hexrays_Hooks.__init__(self) self.i = i def populating_popup(self, widget, phandle, vu): - idaapi.attach_action_to_popup(vu.ct, None, inverter_actname) + ida_kernwin.attach_action_to_popup(vu.ct, None, inverter_actname) return 0 def maturity(self, cfunc, maturity): - if maturity == idaapi.CMAT_FINAL: + if maturity == ida_hexrays.CMAT_FINAL: self.i.restore(cfunc) return 0 +class idp_hooks_t(ida_idp.IDP_Hooks): + def __init__(self, i): + ida_idp.IDP_Hooks.__init__(self) + self.i = i -if idaapi.init_hexrays_plugin(): - i = hexrays_callback_info() - idaapi.register_action( - idaapi.action_desc_t( - inverter_actname, - "Invert then/else", - invert_action_handler_t(i), - "I")) - vds3_hooks = vds3_hooks_t(i) - vds3_hooks.hook() -else: - print('invert-if: hexrays is not available.') + # 'node' refers to index of the named node, this index became invalid after + # privrange moving, so we recreate the node here to update nodeidx + def ev_privrange_changed(self, old_privrange, delta): + i.node.create(NETNODE_NAME) + +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Hex-Rays if-inverter (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin3 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + i = hexrays_callback_info() + ida_kernwin.register_action( + ida_kernwin.action_desc_t( + inverter_actname, + "Invert then/else", + invert_action_handler_t(i), + "I")) + self.vds3_hooks = vds3_hooks_t(i) + self.vds3_hooks.hook() + # we need this hook to react to privrange moving event + self.idp_hooks = idp_hooks_t(i) + self.idp_hooks.hook() + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.vds3_hooks.unhook() + def run(self, arg): + pass + +def PLUGIN_ENTRY(): + return my_plugin_t() diff --git a/examples/hexrays/vds4.py b/examples/hexrays/vds4.py index df261ed..2997403 100644 --- a/examples/hexrays/vds4.py +++ b/examples/hexrays/vds4.py @@ -1,58 +1,67 @@ -""" Print user-defined details to the output window. - -Author: EiNSTeiN_ - -This is a rewrite in Python of the vds4 example that comes with hexrays sdk. """ +summary: dump user-defined information + +description: + Prints user-defined information to the "Output" window. + Namely: + + * user defined label names + * user defined indented comments + * user defined number formats + * user defined local variable names, types, comments + + This script loads information from the database without decompiling anything. + +author: EiNSTeiN_ (einstein@g3nius.org) +""" + from __future__ import print_function -import idautils -import idaapi -import idc - -import traceback +import ida_kernwin +import ida_hexrays +import ida_bytes def run(): - - cfunc = idaapi.decompile(idaapi.get_screen_ea()) - if not cfunc: - print('Please move the cursor into a function.') - return - - entry_ea = cfunc.entry_ea - print("Dump of user-defined information for function at %x" % (entry_ea, )) + f = ida_funcs.get_func(ida_kernwin.get_screen_ea()); + if f is None: + print("Please position the cursor within a function") + return True + entry_ea = f.start_ea + print("Dump of user-defined information for function at %x" % entry_ea) # Display user defined labels. - labels = idaapi.restore_user_labels(entry_ea); + labels = ida_hexrays.restore_user_labels(entry_ea); if labels is not None: - print("------- %u user defined labels" % (len(labels), )) + print("------- %u user defined labels" % len(labels)) for org_label, name in labels.items(): print("Label %d: %s" % (org_label, str(name))) - idaapi.user_labels_free(labels) + ida_hexrays.user_labels_free(labels) # Display user defined comments - cmts = idaapi.restore_user_cmts(entry_ea); + cmts = ida_hexrays.restore_user_cmts(entry_ea); if cmts is not None: print("------- %u user defined comments" % (len(cmts), )) for tl, cmt in cmts.items(): print("Comment at %x, preciser %x:\n%s\n" % (tl.ea, tl.itp, str(cmt))) - idaapi.user_cmts_free(cmts) + ida_hexrays.user_cmts_free(cmts) # Display user defined citem iflags - iflags = idaapi.restore_user_iflags(entry_ea) + iflags = ida_hexrays.restore_user_iflags(entry_ea) if iflags is not None: print("------- %u user defined citem iflags" % (len(iflags), )) for cl, f in iflags.items(): - print("%x(%d): %08X%s" % (cl.ea, cl.op, f, " CIT_COLLAPSED" if f & idaapi.CIT_COLLAPSED else "")) - idaapi.user_iflags_free(iflags) + print("%x(%d): %08X%s" % (cl.ea, cl.op, f, " CIT_COLLAPSED" if f & ida_hexrays.CIT_COLLAPSED else "")) + ida_hexrays.user_iflags_free(iflags) # Display user defined number formats - numforms = idaapi.restore_user_numforms(entry_ea) + numforms = ida_hexrays.restore_user_numforms(entry_ea) if numforms is not None: print("------- %u user defined number formats" % (len(numforms), )) for ol, nf in numforms.items(): - - print("Number format at %a, operand %d: %s" % (ol.ea, ol.opnum, "negated " if (nf.props & NF_NEGATE) != 0 else "")) + print("Number format at %a, operand %d: %s" % \ + (ol.ea, + ol.opnum, + "negated " if (ord(nf.props) & ida_hexrays.NF_NEGATE) != 0 else "")) if nf.is_enum(): print("enum %s (serial %d)" % (str(nf.type_name), nf.serial)) @@ -64,13 +73,13 @@ def run(): print("struct offset %s" % (str(nf.type_name), )) else: - print("number base=%d" % (idaapi.get_radix(nf.flags, ol.opnum), )) + print("number base=%d" % (ida_bytes.get_radix(nf.flags, ol.opnum), )) - idaapi.user_numforms_free(numforms) + ida_hexrays.user_numforms_free(numforms) # Display user-defined local variable information - lvinf = idaapi.lvar_uservec_t() - if idaapi.restore_user_lvar_settings(lvinf, entry_ea): + lvinf = ida_hexrays.lvar_uservec_t() + if ida_hexrays.restore_user_lvar_settings(lvinf, entry_ea): print("------- User defined local variable information\n") for lv in lvinf.lvvec: print("Lvar defined at %x" % (lv.ll.defea, )) @@ -89,7 +98,7 @@ def run(): return -if idaapi.init_hexrays_plugin(): +if ida_hexrays.init_hexrays_plugin(): run() else: print('dump user info: hexrays is not available.') diff --git a/examples/hexrays/vds5.py b/examples/hexrays/vds5.py index 58e3583..95d3286 100644 --- a/examples/hexrays/vds5.py +++ b/examples/hexrays/vds5.py @@ -1,11 +1,25 @@ +""" +summary: show ctree graph + +description: + Registers an action that can be used to show the graph of the ctree. + The current item will be highlighted in the graph. + + The command shortcut is `Ctrl+Shift+G`, and is also added + to the context menu. + + To display the graph, we produce a .gdl file, and + request that ida displays that using `ida_gdl.display_gdl`. +""" + from __future__ import print_function -import ida_idaapi import ida_pro import ida_hexrays import ida_kernwin import ida_gdl import ida_lines +import ida_idaapi ACTION_NAME = "vds5.py:displaygraph" ACTION_SHORTCUT = "Ctrl+Shift+G" @@ -296,18 +310,31 @@ class display_graph_ah_t(ida_kernwin.action_handler_t): class vds5_hooks_t(ida_hexrays.Hexrays_Hooks): def populating_popup(self, widget, handle, vu): - idaapi.attach_action_to_popup(vu.ct, None, ACTION_NAME) + ida_kernwin.attach_action_to_popup(vu.ct, None, ACTION_NAME) return 0 -if ida_hexrays.init_hexrays_plugin(): - ida_kernwin.register_action( - ida_kernwin.action_desc_t( - ACTION_NAME, - "Hex-Rays show C graph (IDAPython)", - display_graph_ah_t(), - ACTION_SHORTCUT)) - vds5_hooks = vds5_hooks_t() - vds5_hooks.hook() -else: - print('hexrays-graph: hexrays is not available.') +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Hex-Rays show C graph (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin5 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + ida_kernwin.register_action( + ida_kernwin.action_desc_t( + ACTION_NAME, + "Hex-Rays show C graph (IDAPython)", + display_graph_ah_t(), + ACTION_SHORTCUT)) + self.vds5_hooks = vds5_hooks_t() + self.vds5_hooks.hook() + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.vds5_hooks.unhook() + def run(self, arg): + pass +def PLUGIN_ENTRY(): + return my_plugin_t() diff --git a/examples/hexrays/vds6.py b/examples/hexrays/vds6.py index bce37c3..23510f1 100644 --- a/examples/hexrays/vds6.py +++ b/examples/hexrays/vds6.py @@ -1,10 +1,13 @@ - """ -This is a crude (and not very pythonic) reimplementation of the example -hexrays plugin 'hexrays_sample6.cpp', shipped with the Hex-Rays decompiler. +summary: superficially modify the decompilation output -It modifies the decompilation output: removes some space characters. +description: + modifies the decompilation output in a superficial manner, + by removing some white spaces + + Note: this is rather crude, not quite "pythonic" code. """ + from __future__ import print_function import idautils @@ -51,6 +54,9 @@ def remove_spaces(sl): last = None # last seen character while True: # go until comments + if l.startswith("//"): + push(l) + break dbg("-" * 60) nchars = ida_lines.tag_advance(l, 1) push(l[0:nchars]) @@ -58,9 +64,6 @@ def remove_spaces(sl): l = my_tag_skipcodes(l, out) if not l: break - if l.startswith("//"): - push(l) - break c = l[0] dbg("c: '%s', last: '%s', l: '%s'" % (c, last, l)) if delim: @@ -89,8 +92,22 @@ class vds6_hooks_t(ida_hexrays.Hexrays_Hooks): remove_spaces(sl); return 0 -if ida_hexrays.init_hexrays_plugin(): - vds6_hooks = vds6_hooks_t() - vds6_hooks.hook() -else: - print('remove spaces: hexrays is not available.') +# a plugin interface, boilerplate code +class my_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_HIDE + wanted_name = "Hex-Rays space remover (IDAPython)" + wanted_hotkey = "" + comment = "Sample plugin6 for Hex-Rays decompiler" + help = "" + def init(self): + if ida_hexrays.init_hexrays_plugin(): + self.vds6_hooks = vds6_hooks_t() + self.vds6_hooks.hook() + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.vds6_hooks.unhook() + def run(self, arg): + pass + +def PLUGIN_ENTRY(): + return my_plugin_t() diff --git a/examples/hexrays/vds7.py b/examples/hexrays/vds7.py index b0379f1..c1c2617 100644 --- a/examples/hexrays/vds7.py +++ b/examples/hexrays/vds7.py @@ -1,31 +1,25 @@ -""" It demonstrates how to iterate a cblock_t object. - -Author: EiNSTeiN_ - -This is a rewrite in Python of the vds7 example that comes with hexrays sdk. """ +summary: iterate a cblock_t object + +description: + Using a `ida_hexrays.ctree_visitor_t`, search for + `ida_hexrays.cit_block` instances and dump them. + +author: EiNSTeiN_ (einstein@g3nius.org) +""" + from __future__ import print_function -import idautils -import idaapi -import idc +import ida_hexrays -import traceback - -class cblock_visitor_t(idaapi.ctree_visitor_t): +class cblock_visitor_t(ida_hexrays.ctree_visitor_t): def __init__(self): - idaapi.ctree_visitor_t.__init__(self, idaapi.CV_FAST) - return + ida_hexrays.ctree_visitor_t.__init__(self, ida_hexrays.CV_FAST) def visit_insn(self, ins): - - try: - if ins.op == idaapi.cit_block: - self.dump_block(ins.ea, ins.cblock) - except: - traceback.print_exc() - + if ins.op == ida_hexrays.cit_block: + self.dump_block(ins.ea, ins.cblock) return 0 def dump_block(self, ea, b): @@ -34,18 +28,16 @@ class cblock_visitor_t(idaapi.ctree_visitor_t): for ins in b: print(" %x: insn %s" % (ins.ea, ins.opname)) - return - -class vds7_hooks_t(idaapi.Hexrays_Hooks): +class vds7_hooks_t(ida_hexrays.Hexrays_Hooks): def maturity(self, cfunc, maturity): - if maturity == idaapi.CMAT_BUILT: + if maturity == ida_hexrays.CMAT_BUILT: cbv = cblock_visitor_t() cbv.apply_to(cfunc.body, None) return 0 -if idaapi.init_hexrays_plugin(): +if ida_hexrays.init_hexrays_plugin(): vds7_hooks = vds7_hooks_t() vds7_hooks.hook() else: diff --git a/examples/hexrays/vds8.py b/examples/hexrays/vds8.py index b0e0b1a..7ac700e 100644 --- a/examples/hexrays/vds8.py +++ b/examples/hexrays/vds8.py @@ -1,14 +1,16 @@ +""" +summary: using `ida_hexrays.udc_filter_t` -# Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com -# ALL RIGHTS RESERVED. -# -# Sample script for Hex-Rays Decompiler usage of udc_filter_t -# class: decompile svc 0x900001 and svc 0x9000F8 as function calls to -# svc_exit() and svc_exit_group() respectively. -# NOTE: You will need to have an ARM + Linux IDB for this script to be usable -# -# It is also added into the right-click menu as "vds8.py:Toggle UDC" +description: + Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile + `svc 0x900001` and `svc 0x9000F8` as function calls to + `svc_exit()` and `svc_exit_group()` respectively. + + You will need to have an ARM + Linux IDB for this script to be usable + + In addition to having a shortcut, the action will be present + in the context menu. +""" import ida_idaapi import ida_hexrays diff --git a/examples/hexrays/vds_create_hint.py b/examples/hexrays/vds_create_hint.py index d124f5f..2dea8b6 100644 --- a/examples/hexrays/vds_create_hint.py +++ b/examples/hexrays/vds_create_hint.py @@ -1,10 +1,17 @@ -"""'Hints' example for Hexrays Decompiler +""" +summary: decompiler hints -Handle 'hxe_create_hint' notification using hooks, to return our own. -If the object under the cursor is: - - a function call, prefix the original decompiler hint with "==> " - - a local variable declaration, replace the hint with our own in the form of "!{varname}" (where '{varname}' is replaced w/ the variable name) - - an 'if' statement, replace the hint with our own, saying "condition" +description: + Handle `ida_hexrays.hxe_create_hint` notification using hooks, + to return our own. + + If the object under the cursor is: + + * a function call, prefix the original decompiler hint with `==> ` + * a local variable declaration, replace the hint with our own in + the form of `!{varname}` (where `{varname}` is replaced with the + variable name) + * an `if` statement, replace the hint with our own, saying "condition" """ import ida_idaapi diff --git a/examples/hexrays/vds_hooks.py b/examples/hexrays/vds_hooks.py index 53f78a2..ee5a7b9 100644 --- a/examples/hexrays/vds_hooks.py +++ b/examples/hexrays/vds_hooks.py @@ -1,18 +1,33 @@ """ -Various hooks for Hexrays Decompiler +summary: various decompiler hooks + +description: + Shows how to hook to many notifications sent by the decompiler. + + This plugin doesn't really accomplish anything: it just prints + the parameters. + + The list of notifications handled below should be exhaustive, + and is there to hint at what is possible to accomplish by + subclassing `ida_hexrays.Hexrays_Hooks` + +see_also: curpos_details """ + from __future__ import print_function +import inspect + import ida_idaapi import ida_typeinf import ida_hexrays class vds_hooks_t(ida_hexrays.Hexrays_Hooks): - def _shorten(self, cfunc): - raw = str(cfunc) - if len(raw) > 20: - raw = raw[0:20] + "[...snipped...]" - return raw + def __init__(self): + ida_hexrays.Hexrays_Hooks.__init__(self) + self.display_shortened_cfuncs = False + self.display_vdui_curpos = False + self.inhibit_log = 0; def _format_lvar(self, v): parts = [] @@ -26,106 +41,132 @@ class vds_hooks_t(ida_hexrays.Hexrays_Hooks): parts.append("divisor=%s" % v.divisor) return "{%s}" % ", ".join(parts) - def _log(self, msg): - print("### %s" % msg) + def _format_vdui_curpos(self, v): + return "cpos={lnnum=%d, x=%d, y=%d}" % (v.cpos.lnnum, v.cpos.x, v.cpos.y) + + def _format_value(self, v): + if isinstance(v, ida_hexrays.lvar_t): + v = self._format_lvar(v) + elif isinstance(v, ida_hexrays.cfunc_t): + if self.display_shortened_cfuncs: + self.inhibit_log += 1 + v = str(v) + if len(v) > 20: + v = v[0:20] + "[...snipped...]" + self.inhibit_log -= 1 + else: + v = "" # cannot print contents: we'll end up being called recursively + elif isinstance(v, ida_hexrays.vdui_t) and self.display_vdui_curpos: + v = str(v) + " " + self._format_vdui_curpos(v) + return str(v) + + def _log(self): + if self.inhibit_log <= 0: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + method_name = inspect.getframeinfo(frame)[2] + argstrs = [] + for arg in args[1:]: + argstrs.append("%s=%s" % (arg, self._format_value(values[arg]))) + print("### %s: %s" % (method_name, ", ".join(argstrs))) return 0 def flowchart(self, fc): - return self._log("flowchart: fc=%s" % fc) + return self._log() def stkpnts(self, mba, stkpnts): - return self._log("stkpnts: mba=%s, stkpnts=%s" % (mba, stkpnts)) + return self._log() def prolog(self, mba, fc, reachable_blocks, decomp_flags): - return self._log("prolog: mba=%s, fc=%s, reachable_blocks=%s, decomp_flags=%x" % (mba, fc, reachable_blocks, decomp_flags)) + return self._log() def microcode(self, mba): - return self._log("microcode: mba=%s" % (mba,)) + return self._log() def preoptimized(self, mba): - return self._log("preoptimized: mba=%s" % (mba,)) + return self._log() def locopt(self, mba): - return self._log("locopt: mba=%s" % (mba,)) + return self._log() def prealloc(self, mba): - return self._log("prealloc: mba=%s" % (mba,)) + return self._log() def glbopt(self, mba): - return self._log("glbopt: mba=%s" % (mba,)) + return self._log() def structural(self, ctrl_graph): - return self._log("structural: ctrl_graph: %s" % (ctrl_graph,)) + return self._log() def maturity(self, cfunc, maturity): - return self._log("maturity: cfunc=%s, maturity=%s" % (self._shorten(cfunc), maturity)) + return self._log() def interr(self, code): - return self._log("interr: code=%s" % (code,)) + return self._log() def combine(self, blk, insn): - return self._log("combine: blk=%s, insn=%s" % (blk, insn)) + return self._log() def print_func(self, cfunc, printer): - # Note: we can't print/str()-ify 'cfunc' here, - # because that'll call print_func() us recursively. - return self._log("print_func: cfunc=..., printer=%s" % (printer,)) + return self._log() def func_printed(self, cfunc): - return self._log("func_printed: cfunc=%s" % (cfunc,)) + return self._log() def resolve_stkaddrs(self, mba): - return self._log("resolve_stkaddrs: mba=%s" % (mba,)) + return self._log() def open_pseudocode(self, vu): - return self._log("open_pseudocode: vu=%s" % (vu,)) + return self._log() def switch_pseudocode(self, vu): - return self._log("switch_pseudocode: vu=%s" % (vu,)) + return self._log() def refresh_pseudocode(self, vu): - return self._log("refresh_pseudocode: vu=%s" % (vu,)) + return self._log() def close_pseudocode(self, vu): - return self._log("close_pseudocode: vu=%s" % (vu,)) + return self._log() def keyboard(self, vu, key_code, shift_state): - return self._log("keyboard: vu=%s, key_code=%s, shift_state=%s" % (vu, key_code, shift_state)) + return self._log() def right_click(self, vu): - return self._log("right_click: vu=%s" % (vu,)) + return self._log() def double_click(self, vu, shift_state): - return self._log("double_click: vu=%s, shift_state=%s" % (vu, shift_state)) + return self._log() def curpos(self, vu): - return self._log("curpos: vu=%s (vu.cpos.lnnum=%d, vu.cpos.x=%d, vu.cpos.y=%d)" % ( - vu, vu.cpos.lnnum, vu.cpos.x, vu.cpos.y)) + return self._log() def create_hint(self, vu): - return self._log("create_hint: vu=%s: " % (vu,)) + return self._log() def text_ready(self, vu): - return self._log("text_ready: vu=%s" % (vu,)) + return self._log() def populating_popup(self, widget, popup, vu): - return self._log("populating_popup: widget=%s, popup=%s, vu=%s" % (widget, popup, vu)) + return self._log() def lvar_name_changed(self, vu, v, name, is_user_name): - return self._log("lvar_name_changed: vu=%s, v=%s, name=%s, is_user_name=%s" % (vu, self._format_lvar(v), name, is_user_name)) + return self._log() def lvar_type_changed(self, vu, v, tif): - return self._log("lvar_type_changed: vu=%s, v=%s, tinfo=%s" % (vu, self._format_lvar(v), tif._print())) + return self._log() def lvar_cmt_changed(self, vu, v, cmt): - return self._log("lvar_cmt_changed: vu=%s, v=%s, cmt=%s" % (vu, self._format_lvar(v), cmt)) + return self._log() def lvar_mapping_changed(self, vu, _from, to): - return self._log("lvar_mapping_changed: vu=%s, from=%s, to=%s" % (vu, _from, to)) + return self._log() def cmt_changed(self, cfunc, loc, cmt): - return self._log("cmt_changed: cfunc=%s, loc=%s, cmt=%s" % (self._shorten(cfunc),loc, cmt)) + return self._log() + + def build_callinfo(self, *args): + return self._log() vds_hooks = vds_hooks_t() vds_hooks.hook() - diff --git a/examples/hexrays/vds_modify_user_lvars.py b/examples/hexrays/vds_modify_user_lvars.py index b58024f..77c52d7 100644 --- a/examples/hexrays/vds_modify_user_lvars.py +++ b/examples/hexrays/vds_modify_user_lvars.py @@ -1,3 +1,10 @@ +""" +summary: modifying local variables + +description: + Use a `ida_hexrays.user_lvar_modifier_t` to modify names, + comments and/or types of local variables. +""" import ida_hexrays import ida_typeinf diff --git a/examples/hexrays/vds_xrefs.py b/examples/hexrays/vds_xrefs.py index 28ecf01..f56723b 100644 --- a/examples/hexrays/vds_xrefs.py +++ b/examples/hexrays/vds_xrefs.py @@ -1,18 +1,25 @@ -""" Xref script for Hexrays Decompiler +""" +summary: show decompiler xrefs -Author: EiNSTeiN_ +description: + Show decompiler-style Xref when the `Ctrl+X` key is + pressed in the Decompiler window. -Show decompiler-style Xref when the X key is pressed in the Decompiler window. - -- It supports any global name: functions, strings, integers, etc. -- It supports structure member. + * supports any global name: functions, strings, integers, ... + * supports structure member. +author: EiNSTeiN_ (einstein@g3nius.org) """ from __future__ import print_function +import ida_kernwin +import ida_hexrays +import ida_typeinf +import ida_idaapi +import ida_struct +import ida_funcs + import idautils -import idaapi -import idc import traceback @@ -21,27 +28,27 @@ from PyQt5 import QtCore, QtWidgets XREF_EA = 0 XREF_STRUC_MEMBER = 1 -class XrefsForm(idaapi.PluginForm): +class XrefsForm(ida_kernwin.PluginForm): def __init__(self, target): - idaapi.PluginForm.__init__(self) + ida_kernwin.PluginForm.__init__(self) self.target = target - if type(self.target) == idaapi.cfunc_t: + if type(self.target) == ida_hexrays.cfunc_t: self.__type = XREF_EA self.__ea = self.target.entry_ea self.__name = 'Xrefs of %x' % (self.__ea, ) - elif type(self.target) == idaapi.cexpr_t and self.target.opname == 'obj': + elif type(self.target) == ida_hexrays.cexpr_t and self.target.opname == 'obj': self.__type = XREF_EA self.__ea = self.target.obj_ea self.__name = 'Xrefs of %x' % (self.__ea, ) - elif type(self.target) == idaapi.cexpr_t and self.target.opname in ('memptr', 'memref'): + elif type(self.target) == ida_hexrays.cexpr_t and self.target.opname in ('memptr', 'memref'): self.__type = XREF_STRUC_MEMBER name = self.get_struc_name() @@ -59,10 +66,11 @@ class XrefsForm(idaapi.PluginForm): xtype = x.type xtype.remove_ptr_or_array() - typename = idaapi.print_tinfo('', 0, 0, idaapi.PRTYPE_1LINE, xtype, '', '') + typename = ida_typeinf.print_tinfo('', 0, 0, ida_typeinf.PRTYPE_1LINE, xtype, '', '') - sid = idc.get_struc_id(typename) - member = idc.get_member_name(sid, m) + sid = ida_struct.get_struc_id(typename) + sptr = ida_struct.get_struc(sid) + member = ida_struct.get_member(sptr, m) return '%s::%s' % (typename, member) @@ -76,7 +84,7 @@ class XrefsForm(idaapi.PluginForm): return def Show(self): - idaapi.PluginForm.Show(self, self.__name) + ida_kernwin.PluginForm.Show(self, self.__name) return def populate_form(self): @@ -109,7 +117,7 @@ class XrefsForm(idaapi.PluginForm): def double_clicked(self, row, column): ea = self.functions[row] - idaapi.open_pseudocode(ea, True) + ida_hexrays.open_pseudocode(ea, True) return @@ -125,12 +133,12 @@ class XrefsForm(idaapi.PluginForm): lines = [] for stmt in insnvec: - qp = idaapi.qstring_printer_t(cfunc.__deref__(), False) + qp = ida_hexrays.qstring_printer_t(cfunc, False) stmt._print(0, qp) s = qp.s.split('\n')[0] - #~ s = idaapi.tag_remove(s) + #~ s = ida_lines.tag_remove(s) lines.append(s) return '\n'.join(lines) @@ -141,18 +149,13 @@ class XrefsForm(idaapi.PluginForm): items = [] for ea in frm: - try: - cfunc = idaapi.decompile(ea) - - self.functions.append(cfunc.entry_ea) - self.items.append((ea, idc.get_func_name(cfunc.entry_ea), self.get_decompiled_line(cfunc, ea))) - - except Exception as e: - print('could not decompile: %s' % (str(e), )) - raise - - return + cfunc = ida_hexrays.decompile(ea) + if not cfunc: + print('Decompilation of %x failed' % (ea, )) + continue + self.functions.append(cfunc.entry_ea) + self.items.append((ea, ida_funcs.get_func_name(cfunc.entry_ea) or "", self.get_decompiled_line(cfunc, ea))) def get_items_for_type(self): x = self.target.operands['x'] @@ -160,36 +163,35 @@ class XrefsForm(idaapi.PluginForm): xtype = x.type xtype.remove_ptr_or_array() - typename = idaapi.print_tinfo('', 0, 0, idaapi.PRTYPE_1LINE, xtype, '', '') + typename = ida_typeinf.print_tinfo('', 0, 0, ida_typeinf.PRTYPE_1LINE, xtype, '', '') addresses = [] for ea in idautils.Functions(): - try: - cfunc = idaapi.decompile(ea) - except: + cfunc = ida_hexrays.decompile(ea) + if not cfunc: print('Decompilation of %x failed' % (ea, )) continue - str(cfunc) + print(str(cfunc)) # KLUDGE for citem in cfunc.treeitems: citem = citem.to_specific_type - if not (type(citem) == idaapi.cexpr_t and citem.opname in ('memptr', 'memref')): + if not (type(citem) == ida_hexrays.cexpr_t and citem.opname in ('memptr', 'memref')): continue _x = citem.operands['x'] _m = citem.operands['m'] _xtype = _x.type _xtype.remove_ptr_or_array() - _typename = idaapi.print_tinfo('', 0, 0, idaapi.PRTYPE_1LINE, _xtype, '', '') + _typename = ida_typeinf.print_tinfo('', 0, 0, ida_typeinf.PRTYPE_1LINE, _xtype, '', '') if not (_typename == typename and _m == m): continue parent = citem while parent: - if type(parent.to_specific_type) == idaapi.cinsn_t: + if type(parent.to_specific_type) == ida_hexrays.cinsn_t: break parent = cfunc.body.find_parent_of(parent) @@ -200,7 +202,7 @@ class XrefsForm(idaapi.PluginForm): if parent.ea in addresses: continue - if parent.ea == idaapi.BADADDR: + if parent.ea == ida_idaapi.BADADDR: print('parent.ea is BADADDR') continue @@ -209,7 +211,7 @@ class XrefsForm(idaapi.PluginForm): self.functions.append(cfunc.entry_ea) self.items.append(( parent.ea, - idc.get_func_name(cfunc.entry_ea), + ida_funcs.get_func_name(cfunc.entry_ea) or "", self.get_decompiled_line(cfunc, parent.ea))) @@ -250,13 +252,13 @@ class XrefsForm(idaapi.PluginForm): pass -class show_xrefs_ah_t(idaapi.action_handler_t): +class show_xrefs_ah_t(ida_kernwin.action_handler_t): def __init__(self): - idaapi.action_handler_t.__init__(self) + ida_kernwin.action_handler_t.__init__(self) self.sel = None def activate(self, ctx): - vu = idaapi.get_widget_vdui(ctx.widget) + vu = ida_hexrays.get_widget_vdui(ctx.widget) if not vu or not self.sel: print("No vdui? Strange, since this action should be enabled only for pseudocode views.") return 0 @@ -266,32 +268,32 @@ class show_xrefs_ah_t(idaapi.action_handler_t): return 1 def update(self, ctx): - if ctx.widget_type != idaapi.BWN_PSEUDOCODE: - return idaapi.AST_DISABLE_FOR_WIDGET - vu = idaapi.get_widget_vdui(ctx.widget) - vu.get_current_item(idaapi.USE_KEYBOARD) + if ctx.widget_type != ida_kernwin.BWN_PSEUDOCODE: + return ida_kernwin.AST_DISABLE_FOR_WIDGET + vu = ida_hexrays.get_widget_vdui(ctx.widget) + vu.get_current_item(ida_hexrays.USE_KEYBOARD) item = vu.item self.sel = None - if item.citype == idaapi.VDI_EXPR and item.it.to_specific_type.opname in ('obj', 'memref', 'memptr'): + if item.citype == ida_hexrays.VDI_EXPR and item.it.to_specific_type.opname in ('obj', 'memref', 'memptr'): # if an expression is selected. verify that it's either a cot_obj, cot_memref or cot_memptr self.sel = item.it.to_specific_type - elif item.citype == idaapi.VDI_FUNC: + elif item.citype == ida_hexrays.VDI_FUNC: # if the function itself is selected, show xrefs to it. self.sel = item.f - return idaapi.AST_ENABLE if self.sel else idaapi.AST_DISABLE + return ida_kernwin.AST_ENABLE if self.sel else ida_kernwin.AST_DISABLE -class vds_xrefs_hooks_t(idaapi.Hexrays_Hooks): +class vds_xrefs_hooks_t(ida_hexrays.Hexrays_Hooks): def populating_popup(self, widget, phandle, vu): - idaapi.attach_action_to_popup(widget, phandle, "vdsxrefs:show", None) + ida_kernwin.attach_action_to_popup(widget, phandle, "vdsxrefs:show", None) return 0 -if idaapi.init_hexrays_plugin(): - adesc = idaapi.action_desc_t('vdsxrefs:show', 'Show xrefs', show_xrefs_ah_t(), "Ctrl+X") - if idaapi.register_action(adesc): +if ida_hexrays.init_hexrays_plugin(): + adesc = ida_kernwin.action_desc_t('vdsxrefs:show', 'Show xrefs', show_xrefs_ah_t(), "Ctrl+X") + if ida_kernwin.register_action(adesc): vds_xrefs_hooks = vds_xrefs_hooks_t() vds_xrefs_hooks.hook() else: diff --git a/examples/idbhooks/log_idb_events.py b/examples/idbhooks/log_idb_events.py new file mode 100644 index 0000000..e05bdf7 --- /dev/null +++ b/examples/idbhooks/log_idb_events.py @@ -0,0 +1,357 @@ +""" +summary: logging IDB events + +description: + these hooks will be notified about IDB events, and + dump their information to the "Output" window +""" + +import inspect + +import ida_idp + +class idb_logger_hooks_t(ida_idp.IDB_Hooks): + + def __init__(self): + ida_idp.IDB_Hooks.__init__(self) + self.inhibit_log = 0; + + def _format_value(self, v): + return str(v) + + def _log(self, msg=None): + if self.inhibit_log <= 0: + if msg: + print(">>> idb_logger_hooks_t: %s" % msg) + else: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + method_name = inspect.getframeinfo(frame)[2] + argstrs = [] + for arg in args[1:]: + argstrs.append("%s=%s" % (arg, self._format_value(values[arg]))) + print(">>> idb_logger_hooks_t.%s: %s" % (method_name, ", ".join(argstrs))) + return 0 + + def adding_segm(self, segment): + return self._log() + + def allsegs_moved(self, info): + return self._log() + + def auto_empty(self): + return self._log() + + def auto_empty_finally(self): + return self._log() + + def bookmark_changed(self, index, pos, desc, op): + return self._log() + + def byte_patched(self, ea, old_value): + return self._log() + + def callee_addr_changed(self, ea, callee): + return self._log() + + def changing_cmt(self, ea, is_repeatable, new_comment): + return self._log() + + def changing_enum_bf(self, tid, new_bf): + return self._log() + + def changing_enum_cmt(self, tid, is_repeatable, new_comment): + return self._log() + + def changing_op_ti(self, ea, n, new_type, new_fnames): + return self._log() + + def changing_op_type(self, ea, n, opinfo): + return self._log() + + def changing_range_cmt(self, kind, _range, comment, is_repeatable): + return self._log() + + def changing_segm_class(self, segment): + return self._log() + + def changing_segm_end(self, segment, new_end, flags): + return self._log() + + def changing_segm_name(self, segment, old_name): + return self._log() + + def changing_segm_start(self, segment, new_start, flags): + return self._log() + + def changing_struc_align(self, sptr): + return self._log() + + def changing_struc_cmt(self, tid, is_repeatable, comment): + return self._log() + + def changing_struc_member(self, sptr, mptr, flags, ti, nbytes): + return self._log() + + def changing_ti(self, ea, new_type, new_fnames): + return self._log() + + def closebase(self): + return self._log() + + def cmt_changed(self, ea, is_repeatable): + return self._log() + + def compiler_changed(self, may_adjust_inf_fields): + return self._log() + + def deleting_enum(self, tid): + return self._log() + + def deleting_enum_member(self, tid, cid): + return self._log() + + def deleting_func(self, pfn): + return self._log() + + def deleting_func_tail(self, pfn, tail): + return self._log() + + def deleting_segm(self, start_ea): + return self._log() + + def deleting_struc(self, sptr): + return self._log() + + def deleting_struc_member(self, sptr, mptr): + return self._log() + + def deleting_tryblks(self, _range): + return self._log() + + def destroyed_items(self, ea1, ea2, will_disable_range): + return self._log() + + def determined_main(self, main): + return self._log() + + def dirtree_link(self, dt, path, is_link): + return self._log() + + def dirtree_mkdir(self, dt, path): + return self._log() + + def dirtree_move(self, dt, _from, to): + return self._log() + + def dirtree_rank(self, dt, path, rank): + return self._log() + + def dirtree_rmdir(self, dt, path): + return self._log() + + def dirtree_rminode(self, dt, inode): + return self._log() + + def dirtree_segm_moved(self, dt): + return self._log() + + def enum_bf_changed(self, tid): + return self._log() + + def enum_cmt_changed(self, tid, is_repeatable): + return self._log() + + def enum_created(self, tid): + return self._log() + + def enum_deleted(self, tid): + return self._log() + + def enum_member_created(self, tid, cid): + return self._log() + + def enum_member_deleted(self, tid, cid): + return self._log() + + def enum_renamed(self, tid): + return self._log() + + def expanding_struc(self, sptr, offset, delta): + return self._log() + + def extlang_changed(self, kind, el, idx): + return self._log() + + def extra_cmt_changed(self, ea, line_idx, comment): + return self._log() + + def flow_chart_created(self, fc): + return self._log() + + def frame_deleted(self, pfn): + return self._log() + + def func_added(self, pfn): + return self._log() + + def func_deleted(self, func_ea): + return self._log() + + def func_noret_changed(self, pfn): + return self._log() + + def func_tail_appended(self, pfn, tail): + return self._log() + + def func_tail_deleted(self, pfn, tail_ea): + return self._log() + + def func_updated(self, pfn): + return self._log() + + def idasgn_loaded(self, sig_name): + return self._log() + + def item_color_changed(self, ea, color): + return self._log() + + def kernel_config_loaded(self, pass_number): + return self._log() + + def loader_finished(self, li, neflags, filetypename): + return self._log() + + def local_types_changed(self): + return self._log() + + def make_code(self, insn): + return self._log() + + def make_data(self, ea, flags, tid, _len): + return self._log() + + def op_ti_changed(self, ea, n, _type, fnames): + return self._log() + + def op_type_changed(self, ea, n): + return self._log() + + def range_cmt_changed(self, kind, _range, comment, is_repeatable): + return self._log() + + def renamed(self, ea, new_name, is_local_name, old_name): + return self._log() + + def renaming_enum(self, tid, is_enum, new_name): + return self._log() + + def renaming_struc(self, tid, old_name, new_name): + return self._log() + + def renaming_struc_member(self, sptr, mptr, new_name): + return self._log() + + def savebase(self): + return self._log() + + def segm_added(self, segment): + return self._log() + + def segm_attrs_updated(self, segment): + return self._log() + + def segm_class_changed(self, segment, sclass): + return self._log() + + def segm_deleted(self, start_ea, end_ea, flags): + return self._log() + + def segm_end_changed(self, segment, old_end): + return self._log() + + def segm_moved(self, _from, to, size, changed_netmap): + return self._log() + + def segm_name_changed(self, segment, name): + return self._log() + + def segm_start_changed(self, segment, old_start): + return self._log() + + def set_func_end(self, pfn, new_end): + return self._log() + + def set_func_start(self, pfn, new_start): + return self._log() + + def sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag): + return self._log() + + def sgr_deleted(self, start_ea, end_ea, regnum): + return self._log() + + def stkpnts_changed(self, pfn): + return self._log() + + def struc_align_changed(self, sptr): + return self._log() + + def struc_cmt_changed(self, tid, is_repeatable): + return self._log() + + def struc_created(self, tid): + return self._log() + + def struc_deleted(self, tid): + return self._log() + + def struc_expanded(self, sptr): + return self._log() + + def struc_member_changed(self, sptr, mptr): + return self._log() + + def struc_member_created(self, sptr, mptr): + return self._log() + + def struc_member_deleted(self, sptr, mid, offset): + return self._log() + + def struc_member_renamed(self, sptr, mptr): + return self._log() + + def struc_renamed(self, sptr, success): + return self._log() + + def tail_owner_changed(self, tail, owner_func, old_owner): + return self._log() + + def thunk_func_created(self, pfn): + return self._log() + + def ti_changed(self, ea, _type, fnames): + return self._log() + + def tryblks_updated(self, tbv): + return self._log() + + def updating_tryblks(self, tbv): + return self._log() + + def upgraded(self, _from): + return self._log() + + def enum_width_changed(self, tid, width): + return self._log() + + def enum_flag_changed(self, tid, flags): + return self._log() + + def enum_ordinal_changed(self, tid, ordinal): + return self._log() + + +idb_hooks = idb_logger_hooks_t() +idb_hooks.hook() diff --git a/examples/idbhooks/operand_changed.py b/examples/idbhooks/operand_changed.py new file mode 100644 index 0000000..ad78e80 --- /dev/null +++ b/examples/idbhooks/operand_changed.py @@ -0,0 +1,70 @@ +""" +summary: notify the user when an instruction operand changes + +description: + Show notifications whenever the user changes + an instruction's operand, or a data item. +""" + +import binascii + +import ida_idp +import ida_bytes +import ida_nalt +import ida_struct +import ida_enum + +class operand_changed_t(ida_idp.IDB_Hooks): + def log(self, msg): + print(">>> %s" % msg) + + def op_type_changed(self, ea, n): + flags = ida_bytes.get_flags(ea) + self.log("op_type_changed(ea=0x%08X, n=%d). Flags now: 0x%08X" % (ea, n, flags)) + + buf = ida_nalt.opinfo_t() + opi = ida_bytes.get_opinfo(buf, ea, n, flags) + if opi: + if ida_bytes.is_struct(flags): + self.log("New struct: 0x%08X (name=%s)" % ( + opi.tid, + ida_struct.get_struc_name(opi.tid))) + elif ida_bytes.is_strlit(flags): + encidx = ida_nalt.get_str_encoding_idx(opi.strtype) + if encidx == ida_nalt.STRENC_DEFAULT: + encidx = ida_nalt.get_default_encoding_idx(ida_nalt.get_strtype_bpu(opi.strtype)) + encname = ida_nalt.get_encoding_name(encidx) + strlen = ida_bytes.get_max_strlit_length( + ea, + opi.strtype, + ida_bytes.ALOPT_IGNHEADS | ida_bytes.ALOPT_IGNCLT) + raw = ida_bytes.get_strlit_contents(ea, strlen, opi.strtype) or b"" + self.log("New strlit: 0x%08X, raw hex=%s (encoding=%s)" % ( + opi.strtype, + binascii.hexlify(raw), + encname)) + elif ida_bytes.is_off(flags, n): + self.log("New offset: refinfo={target=0x%08X, base=0x%08X, tdelta=0x%08X, flags=0x%X}" % ( + opi.ri.target, + opi.ri.base, + opi.ri.tdelta, + opi.ri.flags)) + elif ida_bytes.is_enum(flags, n): + self.log("New enum: 0x%08X (enum=%s), serial=%d" % ( + opi.ec.tid, + ida_enum.get_enum_name(opi.ec.tid), + opi.ec.serial)) + pass + elif ida_bytes.is_stroff(flags, n): + parts = [] + for i in range(opi.path.len): + tid = opi.path.ids[i] + parts.append("0x%08X (name=%s)" % (tid, ida_struct.get_struc_name(tid))) + self.log("New stroff: path=[%s] (len=%d, delta=0x%08X)" % ( + ", ".join(parts), + opi.path.len, + opi.path.delta)) + elif ida_bytes.is_custom(flags) or ida_bytes.is_custfmt(flags, n): + self.log("New custom data type") # unimplemented + else: + print("Cannot retrieve opinfo_t") diff --git a/examples/idbhooks/replay_prototypes_changes.py b/examples/idbhooks/replay_prototypes_changes.py new file mode 100644 index 0000000..afd5866 --- /dev/null +++ b/examples/idbhooks/replay_prototypes_changes.py @@ -0,0 +1,81 @@ +""" +summary: Record and replay changes in function prototypes + +description: + This is a sample script, that will record (in memory) all changes in + functions prototypes, in order to re-apply them later. + + To use this script: + - open an IDB (say, "test.idb") + - modify some functions prototypes (e.g., by triggering the 'Y' + shortcut when the cursor is placed on the first address of a + function) + - reload that IDB, *without saving it first* + - call rpc.replay(), to re-apply the modifications. + + Note: 'ti_changed' is also called for changes to the function + frames, but we'll only record function prototypes changes. +""" +import ida_idp +import ida_funcs +import ida_typeinf + +class replay_prototypes_changes_t(ida_idp.IDB_Hooks): + def __init__(self): + ida_idp.IDB_Hooks.__init__(self) + # we'll store tuples (ea, typ, fields). We cannot store + # tinfo_t instances in there, because tinfo_t's are only + # valid while the IDB is opened. + # Since the very purpose of this example is to re-apply + # types after the IDB has been closed & re-opened, we + # must therefore keep the serialized version only. + self.memo = [] + self.replaying = False + + def _deser(self, typ, fields): + tif = ida_typeinf.tinfo_t() + if not tif.deserialize(ida_typeinf.get_idati(), typ, fields): + tif = None + return tif + + def ti_changed(self, ea, typ, fields): + if not self.replaying: + pfn = ida_funcs.get_func(ea) + if pfn and pfn.start_ea == ea: + self.memo.append((ea, typ, fields)) + + # de-serialize, just for the sake of printing + tif = self._deser(typ, fields) + if tif: + print("%x: type changed: %s" % ( + ea, + tif._print(None, ida_typeinf.PRTYPE_1LINE))) + + def replay(self): + self.replaying = True + try: + for ea, typ, fields in self.memo: + tif = self._deser(typ, fields) + if tif: + print("%x: applying type: %s" % ( + ea, + tif._print(None, ida_typeinf.PRTYPE_1LINE))) + # Since that type information was remembered from a change + # the user made, we'll re-apply it as a definite type (i.e., + # can't be overriden by IDA's auto-analysis/heuristics.) + apply_flags = ida_typeinf.TINFO_DEFINITE + if not ida_typeinf.apply_tinfo(ea, tif, apply_flags): + print("FAILED") + finally: + self.replaying = False + +rpc = replay_prototypes_changes_t() +if rpc.hook(): + print(""" +Please modify some functions prototypes (press 'Y' when the +cursor is on the function name, or first address), and when +you are done reload this IDB, *WITHOUT* saving it first, +and type 'rpc.replay()' +""") +else: + print("Couldn't create hooks") diff --git a/examples/idbs/be_ornot_be.idb b/examples/idbs/be_ornot_be.idb new file mode 100644 index 0000000..90bd971 Binary files /dev/null and b/examples/idbs/be_ornot_be.idb differ diff --git a/examples/idphooks/ana_emu_out.py b/examples/idphooks/ana_emu_out.py index 0262c55..f33bb26 100644 --- a/examples/idphooks/ana_emu_out.py +++ b/examples/idphooks/ana_emu_out.py @@ -1,32 +1,44 @@ +""" +summary: override some parts of the processor module + +description: + Implements disassembly of BUG_INSTR used in Linux kernel + BUG() macro, which is architecturally undefined and is not + disassembled by IDA's ARM module + + See Linux/arch/arm/include/asm/bug.h for more info +""" + from __future__ import print_function -# this script implements disassembly of BUG_INSTR used in Linux kernel BUG() macro -# normally it's architecturally undefined and is not disassembled by IDA's ARM module -# see Linux/arch/arm/include/asm/bug.h -import idaapi +import ida_idp +import ida_bytes +import ida_segregs -ITYPE_BUGINSN = idaapi.CUSTOM_CMD_ITYPE + 10 +ITYPE_BUGINSN = ida_idp.CUSTOM_INSN_ITYPE + 10 MNEM_WIDTH = 16 -class MyHooks(idaapi.IDP_Hooks): +class MyHooks(ida_idp.IDP_Hooks): def __init__(self): - idaapi.IDP_Hooks.__init__(self) + ida_idp.IDP_Hooks.__init__(self) self.reported = [] def ev_ana_insn(self, insn): - t = get_sreg(insn.ea, "T") - if t==0 and get_wide_dword(insn.ea) == 0xE7F001F2: + t_reg = ida_idp.str2reg("T") + t = ida_segregs.get_sreg(insn.ea, t_reg) + if t==0 and ida_bytes.get_wide_dword(insn.ea) == 0xE7F001F2: insn.itype = ITYPE_BUGINSN insn.size = 4 - elif t!=0 and get_wide_word(insn.ea) == 0xde02: + elif t!=0 and ida_bytes.get_wide_word(insn.ea) == 0xde02: insn.itype = ITYPE_BUGINSN insn.size = 2 return insn.size def ev_emu_insn(self, insn): - if insn.ea == ITYPE_BUGINSN: - return 1 + if insn.itype == ITYPE_BUGINSN: + return 1 # do not add any xrefs (stop code flow) + # use default processing for all other functions return 0 def ev_out_mnem(self, outctx): @@ -35,10 +47,9 @@ class MyHooks(idaapi.IDP_Hooks): return 1 return 0 -if idaapi.ph.id == idaapi.PLFM_ARM: +if ida_idp.ph.id == ida_idp.PLFM_ARM: bahooks = MyHooks() bahooks.hook() print("BUG_INSTR processor extension installed") else: warning("This script only supports ARM files") - diff --git a/examples/idphooks/assemble.py b/examples/idphooks/assemble.py index fcd9ec3..e617ee8 100644 --- a/examples/idphooks/assemble.py +++ b/examples/idphooks/assemble.py @@ -1,20 +1,19 @@ +""" +summary: an `ida_idp.IDP_Hooks.assembly` implementation + +description: + We add support for assembling the following pseudo instructions: + + * "zero eax" -> xor eax, eax + * "nothing" -> nop +""" + from __future__ import print_function -import idaapi +import ida_idp import idautils -""" - This is a sample script for extending the assemble() hook. - - We add support for assembling the following pseudo instructions: - - "zero eax" -> xor eax, eax - - "nothing" -> nop - - -(c) Hex-Rays -""" - #-------------------------------------------------------------------------- -class assemble_idp_hook_t(idaapi.IDP_Hooks): +class assemble_idp_hook_t(ida_idp.IDP_Hooks): def ev_assemble(self, ea, cs, ip, use32, line): line = line.strip() if line == "zero eax": diff --git a/examples/index.css b/examples/index.css new file mode 100644 index 0000000..8478dec --- /dev/null +++ b/examples/index.css @@ -0,0 +1,28 @@ + +body +{ + margin: 3%; +} + +.exp-col +{ + cursor: pointer; + padding: 0 4px 0 6px; +} + +.collapsed-entry .details +{ + display: none; +} + +.example-entry .details +{ + margin-left: 3%; + padding: 6px; + background-color: #eef; +} + +a +{ + text-decoration: none; +} \ No newline at end of file diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 0000000..c30da1f --- /dev/null +++ b/examples/index.html @@ -0,0 +1,4386 @@ + + + + + IDAPython examples + + + + + + + + +

IDAPython examples:

+

Category: analysis

+
+
+
+ + + dump_func_info: Dump (some) information about the current function. +
+
+ +
+Dump some of the most interesting bits of information about
+the function we are currently looking at.
+
+ +
    +
  • Category: analysis
  • +
  • Summary: Dump (some) information about the current function.
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_funcs.FUNC_FRAME
    • +
    • ida_funcs.FUNC_LUMINA
    • +
    • ida_funcs.FUNC_OUTLINE
    • +
    • ida_funcs.FUNC_THUNK
    • +
    • ida_funcs.get_fchunk
    • +
    • ida_funcs.is_func_entry
    • +
    • ida_funcs.is_func_tail
    • +
    • ida_kernwin.get_screen_ea
    • +
    +
  • + + +
+
+
+ +
+

Category: core

+
+
+
+ + + actions: Custom actions, with icons & tooltips +
+
+ +
+How to create user actions, that once created can be
+inserted in menus, toolbars, context menus, ...
+
+Those actions, when triggered, will be passed a 'context'
+that contains some of the most frequently needed bits of
+information.
+
+In addition, custom actions can determine when they want
+to be available (through their
+`ida_kernwin.action_handler_t.update` callback)
+
+ +
    +
  • Category: core
  • +
  • Summary: Custom actions, with icons & tooltips
  • +
  • View on GitHub
  • +
  • Keywords: + actions + ctxmenu + UI_Hooks +
  • + +
  • Shortcut: + Ctrl+F12 +
  • + + +
  • APIs used +
      +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_DISASM
    • +
    • ida_kernwin.SETMENU_APP
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_menu
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.attach_action_to_toolbar
    • +
    • ida_kernwin.get_widget_type
    • +
    • ida_kernwin.load_custom_icon
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + add_hotkey: Triggering bits of code by pressing a shortcut +
+
+ +
+`ida_kernwin.add_hotkey` is a simpler, but much less flexible
+alternative to `ida_kernwin.register_action` (though it does
+use the same mechanism under the hood.)
+
+It's particularly useful during prototyping, but note that the
+actions that are created cannot be inserted in menus, toolbars
+or cannot provide a custom `ida_kernwin.action_handler_t.update`
+callback.
+
+ +
    +
  • Category: core
  • +
  • Summary: Triggering bits of code by pressing a shortcut
  • +
  • View on GitHub
  • +
  • Keywords: + actions +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.add_hotkey
    • +
    • ida_kernwin.del_hotkey
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + add_idc_hotkey: Triggering bits of code by pressing a shortcut (older version) +
+
+ +
+This is a somewhat ancient way of registering actions & binding
+shortcuts. It's still here for reference, but "fresher" alternatives
+should be preferred.
+
+ +
    +
  • Category: core
  • +
  • Summary: Triggering bits of code by pressing a shortcut (older version)
  • +
  • View on GitHub
  • +
  • Keywords: + actions +
  • + + + +
  • APIs used +
      +
    • ida_expr.compile_idc_text
    • +
    • ida_kernwin.add_idc_hotkey
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + auto_instantiate_widget_plugin: Better integrating custom widgets in the desktop layout +
+
+ +
+This is an example demonstrating how one can create widgets from a plugin,
+and have them re-created automatically at IDA startup-time or at desktop load-time.
+
+This example should be placed in the 'plugins' directory of the
+IDA installation, for it to work.
+
+There are 2 ways to use this example:
+1) reloading an IDB, where the widget was opened
+   - open the widget ('View > Open subview > ...')
+   - save this IDB, and close IDA
+   - restart IDA with this IDB
+     => the widget will be visible
+
+2) reloading a desktop, where the widget was opened
+   - open the widget ('View > Open subview > ...')
+   - save the desktop ('Windows > Save desktop...') under, say, the name 'with_auto'
+   - start another IDA instance with some IDB, and load that desktop
+     => the widget will be visible
+
+ +
    +
  • Category: core
  • +
  • Summary: Better integrating custom widgets in the desktop layout
  • +
  • View on GitHub
  • +
  • Keywords: + desktop + plugin + UI_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_idaapi.plugin_t
    • +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.SETMENU_APP
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_menu
    • +
    • ida_kernwin.find_widget
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.simplecustviewer_t
    • +
    • ida_kernwin.simplecustviewer_t.Create
    • +
    +
  • + + +
+
+
+
+
+ + + bin_search: Showcasing `ida_bytes.bin_search` +
+ +
+
+
+ + + colorize_disassembly_on_the_fly: An easy-to-use way to colorize lines +
+
+ +
+This builds upon the `ida_kernwin.UI_Hooks.get_lines_rendering_info`
+feature, to provide a quick & easy way to colorize disassembly
+lines.
+
+Contrary to @colorize_disassembly, the coloring is not persisted in
+the database, and will therefore be lost after the session.
+
+By triggering the action multiple times, the user can "carousel"
+across 4 predefined colors (and return to the "no color" state.)
+
+ +
    +
  • Category: core
  • +
  • Summary: An easy-to-use way to colorize lines
  • +
  • View on GitHub
  • +
  • Keywords: + coloring + UI_Hooks +
  • + +
  • Shortcut: + ! +
  • + + +
  • APIs used +
      +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.CK_EXTRA5
    • +
    • ida_kernwin.CK_EXTRA6
    • +
    • ida_kernwin.CK_EXTRA7
    • +
    • ida_kernwin.CK_EXTRA8
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.get_current_viewer
    • +
    • ida_kernwin.get_custom_viewer_location
    • +
    • ida_kernwin.get_custom_viewer_place_xcoord
    • +
    • ida_kernwin.get_widget_title
    • +
    • ida_kernwin.line_rendering_output_entry_t
    • +
    • ida_kernwin.register_action
    • +
    • ida_moves.lochist_entry_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + create_structure_programmatically: Programmatically create & populate a structure +
+
+ +
+Usage of the API to create & populate a structure with
+members of different types.
+
+ +
    +
  • Category: core
  • +
  • Summary: Programmatically create & populate a structure
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_bytes.FF_BYTE
    • +
    • ida_bytes.FF_DATA
    • +
    • ida_bytes.FF_DOUBLE
    • +
    • ida_bytes.FF_DWORD
    • +
    • ida_bytes.FF_FLOAT
    • +
    • ida_bytes.FF_OWORD
    • +
    • ida_bytes.FF_PACKREAL
    • +
    • ida_bytes.FF_QWORD
    • +
    • ida_bytes.FF_STRLIT
    • +
    • ida_bytes.FF_STRUCT
    • +
    • ida_bytes.FF_TBYTE
    • +
    • ida_bytes.FF_WORD
    • +
    • ida_bytes.off_flag
    • +
    • ida_bytes.stroff_flag
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_nalt.STRTYPE_C
    • +
    • ida_struct.add_struc
    • +
    • ida_struct.get_struc_id
    • +
    • ida_struct.get_struc_size
    • +
    • idc.add_struc
    • +
    • idc.add_struc_member
    • +
    • idc.del_struc
    • +
    • idc.set_member_type
    • +
    +
  • + + +
  • Author: Gergely Erdelyi (gergely.erdelyi@d-dome.net)
  • +
+
+
+
+
+ + + custom_cli: A custom command-line interpreter +
+
+ +
+Illustrates how one can add command-line interpreters to IDA
+
+This custom interpreter doesn't actually run any code; it's
+there as a 'getting started'.
+It provides an example tab completion support.
+
+ +
    +
  • Category: core
  • +
  • Summary: A custom command-line interpreter
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_idaapi.NW_CLOSEIDB
    • +
    • ida_idaapi.NW_OPENIDB
    • +
    • ida_idaapi.NW_REMOVE
    • +
    • ida_idaapi.NW_TERMIDA
    • +
    • ida_idaapi.notify_when
    • +
    • ida_kernwin.cli_t
    • +
    +
  • + + +
+
+
+
+
+ + + custom_data_types_and_formats: Using custom data types & printers +
+
+ +
+IDA can be extended to support certain data types that it
+does not know about out-of-the-box.
+
+A 'custom data type' provide information about the type &
+size of a piece of data, while a 'custom data format' is in
+charge of formatting that data (there can be more than
+one format for a specific 'custom data type'.)
+
+ +
    +
  • Category: core
  • +
  • Summary: Using custom data types & printers
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_bytes.data_format_t
    • +
    • ida_bytes.data_type_t
    • +
    • ida_bytes.find_custom_data_type
    • +
    • ida_bytes.get_byte
    • +
    • ida_bytes.register_data_types_and_formats
    • +
    • ida_bytes.unregister_data_types_and_formats
    • +
    • ida_idaapi.NW_CLOSEIDB
    • +
    • ida_idaapi.NW_OPENIDB
    • +
    • ida_idaapi.NW_REMOVE
    • +
    • ida_idaapi.NW_TERMIDA
    • +
    • ida_idaapi.notify_when
    • +
    • ida_idaapi.struct_unpack
    • +
    • ida_lines.COLSTR
    • +
    • ida_lines.SCOLOR_IMPNAME
    • +
    • ida_lines.SCOLOR_INSN
    • +
    • ida_lines.SCOLOR_NUMBER
    • +
    • ida_lines.SCOLOR_REG
    • +
    • ida_nalt.get_input_file_path
    • +
    • ida_netnode.netnode
    • +
    • ida_struct.is_member_id
    • +
    +
  • + + +
+
+
+
+
+ + + dump_extra_comments: Retrieve extra comments +
+
+ +
+Use the `ida_lines.get_extra_cmt` API to retrieve anterior
+and posterior extra comments.
+
+This script registers two actions, that can be used to dump
+the previous and next extra comments.
+
+ +
    +
  • Category: core
  • +
  • Summary: Retrieve extra comments
  • +
  • View on GitHub
  • +
  • Keywords: + ctxmenu +
  • + +
  • Shortcuts: + Ctrl+Shift+Y + Ctrl+Shift+Z +
  • + + +
  • APIs used +
      +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_DISASM
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.find_widget
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    • ida_lines.E_NEXT
    • +
    • ida_lines.E_PREV
    • +
    • ida_lines.get_extra_cmt
    • +
    • ida_view
    • +
    +
  • + + +
+
+
+
+
+ + + dump_flowchart: Dump function flowchart +
+
+ +
+Dumps the current function's flowchart, using 2 methods:
+
+  * the low-level `ida_gdl.qflow_chart_t` type
+  * the somewhat higher-level, and slightly more pythonic
+    `ida_gdl.FlowChart` type.
+
+ +
    +
  • Category: core
  • +
  • Summary: Dump function flowchart
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_gdl.FlowChart
    • +
    • ida_gdl.qflow_chart_t
    • +
    • ida_kernwin.get_screen_ea
    • +
    +
  • + + +
+
+
+
+
+ + + dump_selection: Retrieve & dump current selection +
+
+ +
+Shows how to retrieve the selection from a listing
+widget ("IDA View-A", "Hex View-1", "Pseudocode-A", ...) as
+two "cursors", and from there retrieve (in fact, generate)
+the corresponding text.
+
+After running this script:
+
+  * select some text in one of the listing widgets (i.e.,
+    "IDA View-*", "Enums", "Structures", "Pseudocode-*")
+  * press Ctrl+Shift+S to dump the selection
+
+ +
    +
  • Category: core
  • +
  • Summary: Retrieve & dump current selection
  • +
  • View on GitHub
  • + +
  • Shortcut: + Ctrl+Shift+S +
  • + + +
  • APIs used +
      +
    • ida_kernwin.ACF_HAS_SELECTION
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_DISASM
    • +
    • ida_kernwin.BWN_ENUMS
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.BWN_STRUCTS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.get_viewer_user_data
    • +
    • ida_kernwin.l_compare2
    • +
    • ida_kernwin.linearray_t
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    • ida_lines.tag_remove
    • +
    +
  • + + +
+
+
+
+
+ + + extend_idc: Add functions to the IDC runtime from IDAPython +
+
+ +
+You can add IDC functions to IDA, whose "body" consists of
+IDAPython statements!
+
+We'll register a 'pow' function, available to all IDC code,
+that when invoked will call back into IDAPython, and execute
+the provided function body.
+
+After running this script, try switching to the IDC interpreter
+(using the button on the lower-left corner of IDA) and executing
+`pow(3, 7)`
+
+ +
    +
  • Category: core
  • +
  • Summary: Add functions to the IDC runtime from IDAPython
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_expr.VT_LONG
    • +
    • ida_expr.add_idc_func
    • +
    +
  • + + +
+
+
+
+
+ + + idapythonrc: Code to be run right after IDAPython initialization +
+
+ +
+The `idapythonrc.py` file:
+
+  * %APPDATA%\Hex-Rays\IDA Pro\idapythonrc.py (on Windows)
+  * ~/.idapro/idapythonrc.py (on Linux & Mac)
+
+can contain any IDAPython code that will be run as soon as
+IDAPython is done successfully initializing.
+
+ +
    +
  • Category: core
  • +
  • Summary: Code to be run right after IDAPython initialization
  • +
  • View on GitHub
  • + + + + + +
+
+
+
+
+ + + install_user_defined_prefix: Inserting information into disassembly prefixes +
+
+ +
+By default, disassembly line prefixes contain segment + address
+information (e.g., '.text:08047718'), but it is possible to
+"inject" other bits of information in there, thanks to the
+`ida_lines.user_defined_prefix_t` helper type.
+
+ +
    +
  • Category: core
  • +
  • Summary: Inserting information into disassembly prefixes
  • +
  • View on GitHub
  • +
  • Keywords: + plugin +
  • + + + +
  • APIs used +
      +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_lines.SCOLOR_INV
    • +
    • ida_lines.user_defined_prefix_t
    • +
    +
  • + + +
+
+
+
+
+ + + list_function_items: Showcases (a few of) the iterators available on a function +
+
+ +
+This demonstrates how to use some of the iterators available on the func_t type.
+
+This example will focus on:
+
+  * `func_t[.__iter__]`: the default iterator; iterates on instructions
+  * `func_t.data_items`: iterate on data items contained within a function
+  * `func_t.head_items`: iterate on 'heads' (i.e., addresses containing
+                         the start of an instruction, or a data item.
+  * `func_t.addresses`: iterate on all addresses within function (code
+                        and data, beginning of an item or not)
+
+Type `help(ida_funcs.func_t)` for a full list of iterators.
+
+In addition, one can use:
+
+  * `func_tail_iterator_t`: iterate on all the chunks (including
+                            the main one) of the function
+  * `func_parent_iterator_t`: iterate on all the parent functions,
+                              that include this chunk
+
+ +
    +
  • Category: core
  • +
  • Summary: Showcases (a few of) the iterators available on a function
  • +
  • View on GitHub
  • +
  • Keywords: + funcs iterator +
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_flags
    • +
    • ida_bytes.is_code
    • +
    • ida_bytes.is_data
    • +
    • ida_bytes.is_tail
    • +
    • ida_bytes.is_unknown
    • +
    • ida_funcs.func_tail_iterator_t
    • +
    • ida_funcs.get_fchunk
    • +
    • ida_funcs.get_func
    • +
    • ida_funcs.get_func_name
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_ua.print_insn_mnem
    • +
    +
  • + + +
+
+
+
+
+ + + list_imports: Enumerate file imports +
+
+ +
+Using the API to enumerate file imports.
+
+ +
    +
  • Category: core
  • +
  • Summary: Enumerate file imports
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_nalt.enum_import_names
    • +
    • ida_nalt.get_import_module_name
    • +
    • ida_nalt.get_import_module_qty
    • +
    +
  • + + +
+
+
+
+
+ + + list_patched_bytes: Enumerate patched bytes +
+
+ +
+Using the API to iterate over all the places in the file,
+that were patched using IDA.
+
+ +
    +
  • Category: core
  • +
  • Summary: Enumerate patched bytes
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_bytes.visit_patched_bytes
    • +
    • ida_idaapi.BADADDR
    • +
    +
  • + + +
+
+
+
+
+ + + list_problems: Enumerate problems +
+
+ +
+Using the API to list all problem[atic situation]s that IDA
+encountered during analysis.
+
+ +
    +
  • Category: core
  • +
  • Summary: Enumerate problems
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_ida.inf_get_min_ea
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_problems.PR_ATTN
    • +
    • ida_problems.PR_BADSTACK
    • +
    • ida_problems.PR_COLLISION
    • +
    • ida_problems.PR_DECIMP
    • +
    • ida_problems.PR_DISASM
    • +
    • ida_problems.PR_FINAL
    • +
    • ida_problems.PR_HEAD
    • +
    • ida_problems.PR_ILLADDR
    • +
    • ida_problems.PR_JUMP
    • +
    • ida_problems.PR_MANYLINES
    • +
    • ida_problems.PR_NOBASE
    • +
    • ida_problems.PR_NOCMT
    • +
    • ida_problems.PR_NOFOP
    • +
    • ida_problems.PR_NONAME
    • +
    • ida_problems.PR_NOXREFS
    • +
    • ida_problems.PR_ROLLED
    • +
    • ida_problems.get_problem
    • +
    • ida_problems.get_problem_name
    • +
    +
  • + + +
+
+
+
+
+ + + list_segment_functions: List all functions (and xrefs) in segment +
+
+ +
+List all the functions in the current segment, as well as
+all the cross-references to them.
+
+ +
    +
  • Category: core
  • +
  • Summary: List all functions (and xrefs) in segment
  • +
  • View on GitHub
  • +
  • Keywords: + xrefs +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_funcs.get_func_name
    • +
    • ida_funcs.get_next_func
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_segment.getseg
    • +
    • ida_xref.xrefblk_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + list_segment_functions_using_idautils: List all functions (and xrefs) in segment +
+
+ +
+List all the functions in the current segment, as well as
+all the cross-references to them.
+
+Contrary to @list_segment_functions, this uses the somewhat
+higher-level `idautils` module.
+
+ +
    +
  • Category: core
  • +
  • Summary: List all functions (and xrefs) in segment
  • +
  • View on GitHub
  • +
  • Keywords: + xrefs +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func_name
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_segment.getseg
    • +
    • idautils.CodeRefsTo
    • +
    • idautils.Functions
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + list_stkvar_xrefs: List all xrefs to a function stack variable +
+
+ +
+Contrary to (in-memory) data & code xrefs, retrieving stack variables
+xrefs requires a bit more work than just using ida_xref's first_to(),
+next_to() (or higher level utilities such as idautils.XrefsTo)
+
+ +
    +
  • Category: core
  • +
  • Summary: List all xrefs to a function stack variable
  • +
  • View on GitHub
  • +
  • Keywords: + xrefs +
  • + +
  • Shortcut: + Ctrl+Shift+F7 +
  • + + +
  • APIs used +
      +
    • ida_bytes.get_flags
    • +
    • ida_bytes.is_stkvar
    • +
    • ida_frame.calc_stkvar_struc_offset
    • +
    • ida_frame.get_frame
    • +
    • ida_funcs.get_func
    • +
    • ida_ida.UA_MAXOP
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_DISASM
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.get_current_viewer
    • +
    • ida_kernwin.get_highlight
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_kernwin.register_action
    • +
    • ida_struct.get_member_by_name
    • +
    • ida_struct.get_struc
    • +
    • ida_ua.decode_insn
    • +
    • ida_ua.insn_t
    • +
    +
  • + + +
+
+
+
+
+ + + list_strings: Retrieve the strings that are present in the IDB +
+
+ +
+This uses `idautils.Strings` to iterate over the string literals
+that are present in the IDB. Contrary to @show_selected_strings,
+this will not require that the "Strings" window is opened & available.
+
+ +
    +
  • Category: core
  • +
  • Summary: Retrieve the strings that are present in the IDB
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_nalt.STRTYPE_C
    • +
    • ida_nalt.STRTYPE_C_16
    • +
    • idautils.Strings
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + produce_c_file: Decompile entire file +
+
+ +
+Automate IDA to perform auto-analysis on a file and,
+once that is done, produce a .c file containing the
+decompilation of all the functions in that file.
+
+Run like so:
+
+      ida -A "-S...path/to/produce_c_file.py" 
+
+where:
+
+  * -A instructs IDA to run in non-interactive mode
+  * -S holds a path to the script to run (note this is a single token;
+       there is no space between '-S' and its path.)
+
+ +
    +
  • Category: core
  • +
  • Summary: Decompile entire file
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_auto.auto_wait
    • +
    • ida_hexrays.VDRUN_MAYSTOP
    • +
    • ida_hexrays.VDRUN_NEWFILE
    • +
    • ida_hexrays.VDRUN_SILENT
    • +
    • ida_hexrays.decompile_many
    • +
    • ida_loader.PATH_TYPE_IDB
    • +
    • ida_loader.get_path
    • +
    • ida_pro.qexit
    • +
    +
  • + + +
+
+
+
+
+ + + produce_lst_file: Produce listing +
+
+ +
+Automate IDA to perform auto-analysis on a file and,
+once that is done, produce a .lst file with the disassembly.
+
+Run like so:
+
+      ida -A "-S...path/to/produce_lst_file.py" 
+
+where:
+
+  * -A instructs IDA to run in non-interactive mode
+  * -S holds a path to the script to run (note this is a single token;
+       there is no space between '-S' and its path.)
+
+ +
    +
  • Category: core
  • +
  • Summary: Produce listing
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_auto.auto_wait
    • +
    • ida_fpro.qfile_t
    • +
    • ida_ida.inf_get_max_ea
    • +
    • ida_ida.inf_get_min_ea
    • +
    • ida_loader.OFILE_LST
    • +
    • ida_loader.PATH_TYPE_IDB
    • +
    • ida_loader.gen_file
    • +
    • ida_loader.get_path
    • +
    • ida_pro.qexit
    • +
    +
  • + + +
+
+
+
+
+ + + register_timer: Using timers for delayed execution +
+
+ +
+Register (possibly repeating) timers.
+
+ +
    +
  • Category: core
  • +
  • Summary: Using timers for delayed execution
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_kernwin.register_timer
    • +
    +
  • + + +
+
+
+
+
+ + + trigger_actions_programmatically: Execute existing actions programmatically +
+
+ +
+It's possible to invoke any action programmatically, by using
+either of those two:
+
+  * ida_kernwin.execute_ui_requests()
+  * ida_kernwin.process_ui_action()
+
+Ideally, this script should be run through the "File > Script file..."
+menu, so as to keep focus on "IDA View-A" and have the
+'ProcessUiActions' part work as intended.
+
+ +
    +
  • Category: core
  • +
  • Summary: Execute existing actions programmatically
  • +
  • View on GitHub
  • +
  • Keywords: + actions +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.ask_yn
    • +
    • ida_kernwin.execute_ui_requests
    • +
    • ida_kernwin.msg
    • +
    • ida_kernwin.process_ui_action
    • +
    +
  • + + +
+
+
+ +
+

Category: debugging

+
+
+
+ + + automatic_steps: Programmatically drive a debugging session +
+
+ +
+Start a debugging session, step through the first five
+instructions. Each instruction is disassembled after
+execution.
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Programmatically drive a debugging session
  • +
  • View on GitHub
  • +
  • Keywords: + DBG_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_dbg.DBG_Hooks
    • +
    • ida_dbg.get_reg_val
    • +
    • ida_dbg.request_exit_process
    • +
    • ida_dbg.request_run_to
    • +
    • ida_dbg.request_step_over
    • +
    • ida_dbg.run_requests
    • +
    • ida_ida.inf_get_start_ip
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_lines.generate_disasm_line
    • +
    • ida_lines.tag_remove
    • +
    +
  • + + +
+
+
+
+
+ + + dbg_trace: Using the low-level tracing hook +
+
+ +
+This script demonstrates using the low-level tracing hook
+(ida_dbg.DBG_Hooks.dbg_trace). It can be run like so:
+
+     ida[t].exe -B -Sdbg_trace.py -Ltrace.log file.exe
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Using the low-level tracing hook
  • +
  • View on GitHub
  • +
  • Keywords: + DBG_Hooks +
  • + + + +
  • APIs used +
      +
    • GENDSM_FORCE_CODE
    • +
    • GENDSM_REMOVE_TAGS
    • +
    • NN_call
    • +
    • NN_callfi
    • +
    • NN_callni
    • +
    • generate_disasm_line
    • +
    • ida_dbg.DBG_Hooks
    • +
    • ida_dbg.ST_OVER_DEBUG_SEG
    • +
    • ida_dbg.ST_OVER_LIB_FUNC
    • +
    • ida_dbg.enable_step_trace
    • +
    • ida_dbg.get_process_state
    • +
    • ida_dbg.get_reg_val
    • +
    • ida_dbg.get_step_trace_options
    • +
    • ida_dbg.load_debugger
    • +
    • ida_dbg.refresh_debugger_memory
    • +
    • ida_dbg.request_continue_process
    • +
    • ida_dbg.request_enable_step_trace
    • +
    • ida_dbg.request_set_step_trace_options
    • +
    • ida_dbg.run_requests
    • +
    • ida_dbg.run_to
    • +
    • ida_dbg.set_step_trace_options
    • +
    • ida_dbg.wait_for_next_event
    • +
    • ida_ida.f_ELF
    • +
    • ida_ida.f_MACHO
    • +
    • ida_ida.f_PE
    • +
    • ida_ida.inf_get_filetype
    • +
    • ida_ida.inf_get_max_ea
    • +
    • ida_ida.inf_get_min_ea
    • +
    • ida_ida.inf_get_start_ip
    • +
    • ida_pro.qexit
    • +
    • ida_ua.decode_insn
    • +
    • ida_ua.insn_t
    • +
    • idc.ARGV
    • +
    +
  • + + +
+
+
+
+
+ + + print_call_stack: Print call stack (on Linux) +
+
+ +
+           Print the return addresses from the call stack at a breakpoint.
+           (and print also the module and the debug name from debugger)
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_linux64`, or
+    `ida` on test program `simple_appcall_linux32`, and wait for
+    auto-analysis to finish
+  * put a breakpoint where you want to see the call stack
+  * select the 'linux debugger' (either local, or remote)
+  * start debugging
+  * Press Shift+C at the breakpoint
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Print call stack (on Linux)
  • +
  • View on GitHub
  • + +
  • Shortcut: + Shift+C +
  • + + +
  • APIs used +
      +
    • ida_dbg.collect_stack_trace
    • +
    • ida_dbg.get_current_thread
    • +
    • ida_dbg.get_module_info
    • +
    • ida_idd.call_stack_t
    • +
    • ida_idd.modinfo_t
    • +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.register_action
    • +
    • ida_name.GNCN_NOCOLOR
    • +
    • ida_name.GNCN_NOLABEL
    • +
    • ida_name.GNCN_NOSEG
    • +
    • ida_name.GNCN_PREFDBG
    • +
    • ida_name.get_nice_colored_name
    • +
    +
  • + + +
+
+
+
+
+ + + print_registers: Print all registers, for all threads +
+
+ +
+           Iterate over the list of threads in the program being
+           debugged, and dump all registers contents
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_linux64`, or
+    `ida` on test program `simple_appcall_linux32`, and wait for
+    auto-analysis to finish
+  * put a breakpoint somewhere in the code
+  * select the 'linux debugger' (either local, or remote)
+  * start debugging
+  * Press Alt+Shift+C at the breakpoint
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Print all registers, for all threads
  • +
  • View on GitHub
  • + +
  • Shortcut: + Alt+Shift+C +
  • + + +
  • APIs used +
      +
    • ida_dbg.get_reg_vals
    • +
    • ida_dbg.get_thread_qty
    • +
    • ida_dbg.getn_thread
    • +
    • ida_idd.get_dbg
    • +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.register_action
    • +
    +
  • + + +
+
+
+
+
+ + + registers_context_menu: Adding actions to the "registers" widget(s) +
+
+ +
+It's possible to add actions to the context menu of
+pretty much all widgets in IDA.
+
+This example shows how to do just that for
+registers-displaying widgets (e.g., "General registers")
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Adding actions to the "registers" widget(s)
  • +
  • View on GitHub
  • +
  • Keywords: + ctxmenu + UI_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_dbg.get_dbg_reg_info
    • +
    • ida_dbg.get_reg_val
    • +
    • ida_idd.register_info_t
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_CPUREGS
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.get_widget_type
    • +
    • ida_kernwin.register_action
    • +
    • ida_ua.dt_byte
    • +
    • ida_ua.dt_dword
    • +
    • ida_ua.dt_qword
    • +
    • ida_ua.dt_word
    • +
    +
  • + + +
+
+
+
+
+ + + show_debug_names: Retrieving & dumping debuggee symbols +
+
+ +
+Queries the debugger (possibly remotely) for the list of
+symbols that the process being debugged, provides.
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Retrieving & dumping debuggee symbols
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_dbg.get_process_state
    • +
    • ida_dbg.is_debugger_on
    • +
    • ida_ida.inf_get_max_ea
    • +
    • ida_ida.inf_get_min_ea
    • +
    • ida_name.get_debug_names
    • +
    +
  • + + +
+
+
+
+
+ + + simple_appcall_linux: Executing code into the application being debugged (on Linux) +
+
+ +
+Using the `ida_idd.Appcall` utility to execute code in
+the process being debugged.
+
+This example will run the test program and stop wherever
+the cursor currently is, and then perform an appcall to
+execute the `ref4` and `ref8` functions.
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_linux64`, or
+    `ida` on test program `simple_appcall_linux32`, and wait for
+    auto-analysis to finish
+  * select the 'linux debugger' (either local, or remote)
+  * run this script
+
+Note: the real body of code is in `simple_appcall_common.py`.
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Executing code into the application being debugged (on Linux)
  • +
  • View on GitHub
  • + + +
  • Imports +
      +
    • simple_appcall_common
    • +
    +
  • + +
  • APIs used +
      +
    • ida_dbg.DBG_Hooks
    • +
    • ida_dbg.run_to
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_idd.Appcall
    • +
    • ida_idd.Appcall.byref
    • +
    • ida_idd.Appcall.int64
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_name.get_name_ea
    • +
    • ida_name.set_name
    • +
    • ida_typeinf.apply_cdecl
    • +
    +
  • + + +
+
+
+
+
+ + + simple_appcall_win: Executing code into the application being debugged (on Windows) +
+
+ +
+Using the `ida_idd.Appcall` utility to execute code in
+the process being debugged.
+
+This example will run the test program and stop wherever
+the cursor currently is, and then perform an appcall to
+execute the `ref4` and `ref8` functions.
+
+To use this example:
+
+  * run `ida64` on test program `simple_appcall_win64.exe`, or
+    `ida` on test program `simple_appcall_win32.exe`, and wait for
+    auto-analysis to finish
+  * select the 'windows debugger' (either local, or remote)
+  * run this script
+
+Note: the real body of code is in `simple_appcall_common.py`.
+
+ +
    +
  • Category: debugging
  • +
  • Summary: Executing code into the application being debugged (on Windows)
  • +
  • View on GitHub
  • + + +
  • Imports +
      +
    • simple_appcall_common
    • +
    +
  • + +
  • APIs used +
      +
    • ida_dbg.DBG_Hooks
    • +
    • ida_dbg.run_to
    • +
    • ida_ida.inf_is_64bit
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_idd.Appcall
    • +
    • ida_idd.Appcall.byref
    • +
    • ida_idd.Appcall.int64
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_name.get_name_ea
    • +
    • ida_name.set_name
    • +
    • ida_typeinf.apply_cdecl
    • +
    +
  • + + +
+
+
+ +
+

Category: disassembly

+
+
+
+ + + colorize_disassembly: Change background colours +
+
+ +
+This illustrates the setting/retrieval of background colours
+using the IDC wrappers
+
+In order to do so, we'll be assigning colors to specific ranges
+(item, function, or segment). Those will be persisted in the
+database.
+
+ +
    +
  • Category: disassembly
  • +
  • Summary: Change background colours
  • +
  • View on GitHub
  • +
  • Keywords: + coloring + idc +
  • + + + +
  • APIs used +
      +
    • idc.CIC_FUNC
    • +
    • idc.CIC_ITEM
    • +
    • idc.CIC_SEGM
    • +
    • idc.get_color
    • +
    • idc.here
    • +
    • idc.set_color
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+ +
+

Category: hexrays

+
+
+
+ + + colorize_pseudocode_lines: Interactively color certain pseudocode lines +
+
+ +
+Provides an action that can be used to dynamically alter the
+lines background rendering for pseudocode listings (as opposed to
+using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`)
+
+After running this script, pressing 'M' on a line in a
+"Pseudocode-?" widget, will cause that line to be rendered
+with a special background color.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Interactively color certain pseudocode lines
  • +
  • View on GitHub
  • +
  • Keywords: + colors + UI_Hooks +
  • + +
  • Shortcut: + M +
  • + + +
  • APIs used +
      +
    • ida_hexrays.get_widget_vdui
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.CK_EXTRA11
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.get_custom_viewer_location
    • +
    • ida_kernwin.line_rendering_output_entry_t
    • +
    • ida_kernwin.refresh_custom_viewer
    • +
    • ida_kernwin.register_action
    • +
    • ida_moves.lochist_entry_t
    • +
    +
  • + + +
+
+
+
+
+ + + curpos_details: A focus on the 'curpos' hook, printing additional details about user input +
+
+ +
+Shows how user input information can be retrieved during
+processing of a notification triggered by that input
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: A focus on the 'curpos' hook, printing additional details about user input
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_kernwin.get_user_input_event
    • +
    • ida_kernwin.iek_key_press
    • +
    • ida_kernwin.iek_key_release
    • +
    • ida_kernwin.iek_mouse_button_press
    • +
    • ida_kernwin.iek_mouse_button_release
    • +
    • ida_kernwin.iek_mouse_wheel
    • +
    • ida_kernwin.iek_shortcut
    • +
    • ida_kernwin.input_event_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + decompile_entry_points: Automatic decompilation of functions +
+
+ +
+Attempts to load a decompiler plugin corresponding to the current
+architecture (and address size) right after auto-analysis is performed,
+and then tries to decompile the function at the first entrypoint.
+
+It is particularly suited for use with the '-S' flag, for example:
+idat -Ldecompile.log -Sdecompile_entry_points.py -c file
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Automatic decompilation of functions
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_auto.auto_wait
    • +
    • ida_entry.get_entry
    • +
    • ida_entry.get_entry_ordinal
    • +
    • ida_entry.get_entry_qty
    • +
    • ida_hexrays.decompile
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_ida.inf_is_64bit
    • +
    • ida_idp.PLFM_386
    • +
    • ida_idp.PLFM_ARM
    • +
    • ida_idp.PLFM_MIPS
    • +
    • ida_idp.PLFM_PPC
    • +
    • ida_idp.ph.id
    • +
    • ida_kernwin.cvar.batch
    • +
    • ida_kernwin.msg
    • +
    • ida_loader.load_plugin
    • +
    • ida_pro.qexit
    • +
    • idc.get_idb_path
    • +
    +
  • + + +
+
+
+
+
+ + + vds1: Decompile & print current function. +
+
+ +
+Decompile & print current function.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Decompile & print current function.
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_hexrays.decompile
    • +
    • ida_hexrays.get_hexrays_version
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_lines.tag_remove
    • +
    +
  • + + +
+
+
+
+
+ + + vds10: A custom microcode instruction optimization rule +
+
+ +
+Installs a custom microcode instruction optimization rule,
+to transform:
+
+    call   !DbgRaiseAssertionFailure .0
+
+into
+
+    call   !DbgRaiseAssertionFailure .0
+
+To see this plugin in action please use arm64_brk.i64
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: A custom microcode instruction optimization rule
  • +
  • View on GitHub
  • +
  • Keywords: + plugin +
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_cmt
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.mop_str
    • +
    • ida_hexrays.optinsn_t
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_typeinf.STI_PCCHAR
    • +
    • ida_typeinf.tinfo_t.get_stock
    • +
    +
  • + + +
+
+
+
+
+ + + vds11: A custom microcode block optimization rule (resolve `goto` chains) +
+
+ +
+Installs a custom microcode block optimization rule,
+to transform:
+
+      goto L1
+      ...
+    L1:
+      goto L2
+
+into
+
+      goto L2
+
+In other words we fix a goto target if it points to a chain of gotos.
+This improves the decompiler output in some cases.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: A custom microcode block optimization rule (resolve `goto` chains)
  • +
  • View on GitHub
  • +
  • Keywords: + plugin +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.getf_reginsn
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.m_goto
    • +
    • ida_hexrays.optblock_t
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    +
  • + + +
+
+
+
+
+ + + vds12: List instruction registers +
+
+ +
+Shows a list of direct references to a register from the
+current instruction.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: List instruction registers
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_flags
    • +
    • ida_bytes.is_code
    • +
    • ida_funcs.get_func
    • +
    • ida_hexrays.ACFL_GUESS
    • +
    • ida_hexrays.DECOMP_NO_CACHE
    • +
    • ida_hexrays.DECOMP_WARNINGS
    • +
    • ida_hexrays.GCO_DEF
    • +
    • ida_hexrays.GCO_USE
    • +
    • ida_hexrays.GC_REGS_AND_STKVARS
    • +
    • ida_hexrays.MERR_OK
    • +
    • ida_hexrays.MMAT_PREOPTIMIZED
    • +
    • ida_hexrays.MUST_ACCESS
    • +
    • ida_hexrays.gco_info_t
    • +
    • ida_hexrays.gen_microcode
    • +
    • ida_hexrays.get_current_operand
    • +
    • ida_hexrays.get_merror_desc
    • +
    • ida_hexrays.hexrays_failure_t
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.mba_ranges_t
    • +
    • ida_hexrays.mlist_t
    • +
    • ida_hexrays.op_parent_info_t
    • +
    • ida_hexrays.voff_t
    • +
    • ida_kernwin.Choose
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_kernwin.jumpto
    • +
    • ida_kernwin.warning
    • +
    • ida_lines.GENDSM_REMOVE_TAGS
    • +
    • ida_lines.generate_disasm_line
    • +
    • ida_pro.eavec_t
    • +
    +
  • + + +
+
+
+
+
+ + + vds13: Generates microcode for selection +
+
+ +
+Generates microcode for selection and dumps it to the output window.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Generates microcode for selection
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_flags
    • +
    • ida_bytes.is_code
    • +
    • ida_hexrays.DECOMP_WARNINGS
    • +
    • ida_hexrays.gen_microcode
    • +
    • ida_hexrays.hexrays_failure_t
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.mba_ranges_t
    • +
    • ida_hexrays.vd_printer_t
    • +
    • ida_kernwin.read_range_selection
    • +
    • ida_kernwin.warning
    • +
    • ida_range.range_t
    • +
    +
  • + + +
+
+
+
+
+ + + vds17: Using the "Select offsets" widget +
+
+ +
+Registers an action opens the "Select offsets" widget
+(select_udt_by_offset() call).
+
+This effectively repeats the functionality already available
+through Alt+Y.
+
+Place cursor on the union field and press Shift+T
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Using the "Select offsets" widget
  • +
  • View on GitHub
  • +
  • Keywords: + plugin +
  • + +
  • Shortcut: + Shift+T +
  • + + +
  • APIs used +
      +
    • ida_hexrays.USE_KEYBOARD
    • +
    • ida_hexrays.cot_add
    • +
    • ida_hexrays.cot_cast
    • +
    • ida_hexrays.cot_memptr
    • +
    • ida_hexrays.cot_memref
    • +
    • ida_hexrays.cot_num
    • +
    • ida_hexrays.cot_ref
    • +
    • ida_hexrays.get_hexrays_version
    • +
    • ida_hexrays.get_widget_vdui
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.select_udt_by_offset
    • +
    • ida_hexrays.ui_stroff_applicator_t
    • +
    • ida_hexrays.ui_stroff_ops_t
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.get_custom_viewer_curline
    • +
    • ida_kernwin.msg
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.warning
    • +
    • ida_lines.tag_remove
    • +
    • ida_typeinf.PRTYPE_1LINE
    • +
    • ida_typeinf.print_tinfo
    • +
    • ida_typeinf.remove_pointer
    • +
    +
  • + + +
+
+
+
+
+ + + vds19: A custom microcode instruction optimization rule (`x | ~x => -1`) +
+
+ +
+Installs a custom microcode instruction optimization rule,
+to transform:
+
+    x | ~x
+
+into
+
+    -1
+
+To see this plugin in action please use be_ornot_be.idb
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: A custom microcode instruction optimization rule (`x | ~x => -1`)
  • +
  • View on GitHub
  • +
  • Keywords: + plugin +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.m_bnot
    • +
    • ida_hexrays.m_mov
    • +
    • ida_hexrays.m_or
    • +
    • ida_hexrays.minsn_visitor_t
    • +
    • ida_hexrays.mop_t
    • +
    • ida_hexrays.optinsn_t
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    +
  • + + +
+
+
+
+
+ + + vds21: Dynamically provide a custom call type +
+
+ +
+This plugin can greatly improve decompilation of indirect calls:
+
+    call    [eax+4]
+
+For them, the decompiler has to guess the prototype of the called function.
+This has to be done at a very early phase of decompilation because
+the function prototype influences the data flow analysis. On the other
+hand, we do not have global data flow analysis results yet because
+we haven't analyzed all calls in the function. It is a chicked-and-egg
+problem.
+
+The decompiler uses various techniques to guess the called function
+prototype. While it works very well, it may fail in some cases.
+
+To fix, the user can specify the call prototype manually, using
+"Edit, Operand types, Set operand type" at the call instruction.
+
+This plugin illustrates another approach to the problem:
+if you happen to be able to calculate the call prototypes dynamically,
+this is how to inform the decompiler about them.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Dynamically provide a custom call type
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks + plugin +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.m_call
    • +
    • ida_hexrays.mcallinfo_t
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_kernwin.msg
    • +
    • ida_kernwin.warning
    • +
    • ida_nalt.get_op_tinfo
    • +
    • ida_typeinf.BT_INT
    • +
    • ida_typeinf.CM_CC_STDCALL
    • +
    • ida_typeinf.CM_N32_F48
    • +
    • ida_typeinf.parse_decl
    • +
    • ida_typeinf.tinfo_t
    • +
    +
  • + + +
+
+
+
+
+ + + vds3: Invert if/else blocks +
+
+ +
+Registers an action that can be used to invert the `if`
+and `else` blocks of a `ida_hexrays.cif_t`.
+
+For example, a statement like
+
+    if ( cond )
+    {
+      statements1;
+    }
+    else
+    {
+      statements2;
+    }
+
+will be displayed as
+
+    if ( !cond )
+    {
+      statements2;
+    }
+    else
+    {
+      statements1;
+    }
+
+The modifications are persistent: the user can quit & restart
+IDA, and the changes will be present.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Invert if/else blocks
  • +
  • View on GitHub
  • +
  • Keywords: + ctxmenu + Hexrays_Hooks + IDP_Hooks + plugin +
  • + +
  • Shortcut: + I +
  • + + +
  • APIs used +
      +
    • ida_hexrays.CMAT_FINAL
    • +
    • ida_hexrays.CV_FAST
    • +
    • ida_hexrays.CV_INSNS
    • +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.ITP_ELSE
    • +
    • ida_hexrays.USE_KEYBOARD
    • +
    • ida_hexrays.VDI_TAIL
    • +
    • ida_hexrays.cexpr_t
    • +
    • ida_hexrays.cit_if
    • +
    • ida_hexrays.ctree_visitor_t
    • +
    • ida_hexrays.get_widget_vdui
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.lnot
    • +
    • ida_hexrays.qswap
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_idp.IDP_Hooks
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.register_action
    • +
    • ida_netnode.netnode
    • +
    +
  • + + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
  • +
+
+
+
+
+ + + vds4: Dump user-defined information +
+
+ +
+Prints user-defined information to the "Output" window.
+Namely:
+
+  * user defined label names
+  * user defined indented comments
+  * user defined number formats
+  * user defined local variable names, types, comments
+
+This script loads information from the database without decompiling anything.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Dump user-defined information
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_radix
    • +
    • ida_funcs.get_func
    • +
    • ida_hexrays.CIT_COLLAPSED
    • +
    • ida_hexrays.NF_NEGATE
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.lvar_uservec_t
    • +
    • ida_hexrays.restore_user_cmts
    • +
    • ida_hexrays.restore_user_iflags
    • +
    • ida_hexrays.restore_user_labels
    • +
    • ida_hexrays.restore_user_lvar_settings
    • +
    • ida_hexrays.restore_user_numforms
    • +
    • ida_hexrays.user_cmts_free
    • +
    • ida_hexrays.user_iflags_free
    • +
    • ida_hexrays.user_labels_free
    • +
    • ida_hexrays.user_numforms_free
    • +
    • ida_kernwin.get_screen_ea
    • +
    +
  • + + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
  • +
+
+
+
+
+ + + vds5: Show ctree graph +
+
+ +
+Registers an action that can be used to show the graph of the ctree.
+The current item will be highlighted in the graph.
+
+The command shortcut is `Ctrl+Shift+G`, and is also added
+to the context menu.
+
+To display the graph, we produce a .gdl file, and
+request that ida displays that using `ida_gdl.display_gdl`.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Show ctree graph
  • +
  • View on GitHub
  • +
  • Keywords: + ctxmenu + Hexrays_Hooks + plugin +
  • + +
  • Shortcut: + Ctrl+Shift+G +
  • + + +
  • APIs used +
      +
    • ida_gdl.display_gdl
    • +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.USE_KEYBOARD
    • +
    • ida_hexrays.cit_asm
    • +
    • ida_hexrays.cit_goto
    • +
    • ida_hexrays.cot_helper
    • +
    • ida_hexrays.cot_memptr
    • +
    • ida_hexrays.cot_memref
    • +
    • ida_hexrays.cot_num
    • +
    • ida_hexrays.cot_obj
    • +
    • ida_hexrays.cot_ptr
    • +
    • ida_hexrays.cot_str
    • +
    • ida_hexrays.cot_var
    • +
    • ida_hexrays.ctree_parentee_t
    • +
    • ida_hexrays.get_ctype_name
    • +
    • ida_hexrays.get_widget_vdui
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.warning
    • +
    • ida_lines.tag_remove
    • +
    • ida_pro.str2user
    • +
    +
  • + + +
+
+
+
+
+ + + vds6: Superficially modify the decompilation output +
+
+ +
+Modifies the decompilation output in a superficial manner,
+by removing some white spaces
+
+Note: this is rather crude, not quite "pythonic" code.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Superficially modify the decompilation output
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks + plugin +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_idaapi.PLUGIN_HIDE
    • +
    • ida_idaapi.PLUGIN_KEEP
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_lines.tag_advance
    • +
    • ida_lines.tag_skipcodes
    • +
    +
  • + + +
+
+
+
+
+ + + vds7: Iterate a cblock_t object +
+
+ +
+Using a `ida_hexrays.ctree_visitor_t`, search for
+`ida_hexrays.cit_block` instances and dump them.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Iterate a cblock_t object
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.CMAT_BUILT
    • +
    • ida_hexrays.CV_FAST
    • +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.cit_block
    • +
    • ida_hexrays.ctree_visitor_t
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    +
  • + + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
  • +
+
+
+
+
+ + + vds8: Using `ida_hexrays.udc_filter_t` +
+
+ +
+Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile
+`svc 0x900001` and `svc 0x9000F8` as function calls to
+`svc_exit()` and `svc_exit_group()` respectively.
+
+You will need to have an ARM + Linux IDB for this script to be usable
+
+In addition to having a shortcut, the action will be present
+in the context menu.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Using `ida_hexrays.udc_filter_t`
  • +
  • View on GitHub
  • +
  • Keywords: + ctxmenu + UI_Hooks +
  • + +
  • Shortcut: + Ctrl+Shift+U +
  • + + +
  • APIs used +
      +
    • ida_allins.ARM_svc
    • +
    • ida_hexrays.get_widget_vdui
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.install_microcode_filter
    • +
    • ida_hexrays.udc_filter_t
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.get_widget_type
    • +
    • ida_kernwin.register_action
    • +
    +
  • + + +
+
+
+
+
+ + + vds_create_hint: Decompiler hints +
+
+ +
+Handle `ida_hexrays.hxe_create_hint` notification using hooks,
+to return our own.
+
+If the object under the cursor is:
+
+* a function call, prefix the original decompiler hint with `==> `
+* a local variable declaration, replace the hint with our own in
+  the form of `!{varname}` (where `{varname}` is replaced with the
+  variable name)
+* an `if` statement, replace the hint with our own, saying "condition"
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Decompiler hints
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.USE_MOUSE
    • +
    • ida_hexrays.VDI_EXPR
    • +
    • ida_hexrays.VDI_LVAR
    • +
    • ida_hexrays.cit_if
    • +
    • ida_hexrays.cot_call
    • +
    +
  • + + +
+
+
+
+
+ + + vds_hooks: Various decompiler hooks +
+
+ +
+Shows how to hook to many notifications sent by the decompiler.
+
+This plugin doesn't really accomplish anything: it just prints
+the parameters.
+
+The list of notifications handled below should be exhaustive,
+and is there to hint at what is possible to accomplish by
+subclassing `ida_hexrays.Hexrays_Hooks`
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Various decompiler hooks
  • +
  • View on GitHub
  • +
  • Keywords: + Hexrays_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.cfunc_t
    • +
    • ida_hexrays.lvar_t
    • +
    • ida_hexrays.vdui_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + vds_modify_user_lvars: Modifying local variables +
+
+ +
+Use a `ida_hexrays.user_lvar_modifier_t` to modify names,
+comments and/or types of local variables.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Modifying local variables
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_hexrays.modify_user_lvars
    • +
    • ida_hexrays.user_lvar_modifier_t
    • +
    • ida_typeinf.parse_decl
    • +
    • ida_typeinf.tinfo_t
    • +
    • idc.here
    • +
    +
  • + + +
+
+
+
+
+ + + vds_xrefs: Show decompiler xrefs +
+
+ +
+Show decompiler-style Xref when the `Ctrl+X` key is
+pressed in the Decompiler window.
+
+* supports any global name: functions, strings, integers, ...
+* supports structure member.
+
+ +
    +
  • Category: hexrays
  • +
  • Summary: Show decompiler xrefs
  • +
  • View on GitHub
  • +
  • Keywords: + ctxmenu + Hexrays_Hooks +
  • + +
  • Shortcut: + Ctrl+X +
  • + + +
  • APIs used +
      +
    • ida_funcs.get_func_name
    • +
    • ida_hexrays.Hexrays_Hooks
    • +
    • ida_hexrays.USE_KEYBOARD
    • +
    • ida_hexrays.VDI_EXPR
    • +
    • ida_hexrays.VDI_FUNC
    • +
    • ida_hexrays.cexpr_t
    • +
    • ida_hexrays.cfunc_t
    • +
    • ida_hexrays.cinsn_t
    • +
    • ida_hexrays.decompile
    • +
    • ida_hexrays.get_widget_vdui
    • +
    • ida_hexrays.init_hexrays_plugin
    • +
    • ida_hexrays.open_pseudocode
    • +
    • ida_hexrays.qstring_printer_t
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_kernwin.AST_DISABLE
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.PluginForm
    • +
    • ida_kernwin.PluginForm.Show
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.register_action
    • +
    • ida_struct.get_member
    • +
    • ida_struct.get_struc
    • +
    • ida_struct.get_struc_id
    • +
    • ida_typeinf.PRTYPE_1LINE
    • +
    • ida_typeinf.print_tinfo
    • +
    • idautils.Functions
    • +
    • idautils.XrefsTo
    • +
    +
  • + + +
  • Author: EiNSTeiN_ (einstein@g3nius.org)
  • +
+
+
+ +
+

Category: idbhooks

+
+
+
+ + + log_idb_events: Logging IDB events +
+
+ +
+These hooks will be notified about IDB events, and
+dump their information to the "Output" window
+
+ +
    +
  • Category: idbhooks
  • +
  • Summary: Logging IDB events
  • +
  • View on GitHub
  • +
  • Keywords: + IDB_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_idp.IDB_Hooks
    • +
    +
  • + + +
+
+
+
+
+ + + operand_changed: Notify the user when an instruction operand changes +
+
+ +
+Show notifications whenever the user changes
+an instruction's operand, or a data item.
+
+ +
    +
  • Category: idbhooks
  • +
  • Summary: Notify the user when an instruction operand changes
  • +
  • View on GitHub
  • +
  • Keywords: + IDB_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_bytes.ALOPT_IGNCLT
    • +
    • ida_bytes.ALOPT_IGNHEADS
    • +
    • ida_bytes.get_flags
    • +
    • ida_bytes.get_max_strlit_length
    • +
    • ida_bytes.get_opinfo
    • +
    • ida_bytes.get_strlit_contents
    • +
    • ida_bytes.is_custfmt
    • +
    • ida_bytes.is_custom
    • +
    • ida_bytes.is_enum
    • +
    • ida_bytes.is_off
    • +
    • ida_bytes.is_strlit
    • +
    • ida_bytes.is_stroff
    • +
    • ida_bytes.is_struct
    • +
    • ida_enum.get_enum_name
    • +
    • ida_idp.IDB_Hooks
    • +
    • ida_nalt.STRENC_DEFAULT
    • +
    • ida_nalt.get_default_encoding_idx
    • +
    • ida_nalt.get_encoding_name
    • +
    • ida_nalt.get_str_encoding_idx
    • +
    • ida_nalt.get_strtype_bpu
    • +
    • ida_nalt.opinfo_t
    • +
    • ida_struct.get_struc_name
    • +
    +
  • + + +
+
+
+
+
+ + + replay_prototypes_changes: Record and replay changes in function prototypes +
+
+ +
+This is a sample script, that will record (in memory) all changes in
+functions prototypes, in order to re-apply them later.
+
+To use this script:
+ - open an IDB (say, "test.idb")
+ - modify some functions prototypes (e.g., by triggering the 'Y'
+   shortcut when the cursor is placed on the first address of a
+   function)
+ - reload that IDB, *without saving it first*
+ - call rpc.replay(), to re-apply the modifications.
+
+Note: 'ti_changed' is also called for changes to the function
+frames, but we'll only record function prototypes changes.
+
+ +
    +
  • Category: idbhooks
  • +
  • Summary: Record and replay changes in function prototypes
  • +
  • View on GitHub
  • +
  • Keywords: + IDB_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_idp.IDB_Hooks
    • +
    • ida_typeinf.PRTYPE_1LINE
    • +
    • ida_typeinf.TINFO_DEFINITE
    • +
    • ida_typeinf.apply_tinfo
    • +
    • ida_typeinf.get_idati
    • +
    • ida_typeinf.tinfo_t
    • +
    +
  • + + +
+
+
+ +
+

Category: idphooks

+
+
+
+ + + ana_emu_out: Override some parts of the processor module +
+
+ +
+Implements disassembly of BUG_INSTR used in Linux kernel
+BUG() macro, which is architecturally undefined and is not
+disassembled by IDA's ARM module
+
+See Linux/arch/arm/include/asm/bug.h for more info
+
+ +
    +
  • Category: idphooks
  • +
  • Summary: Override some parts of the processor module
  • +
  • View on GitHub
  • +
  • Keywords: + IDP_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_bytes.get_wide_dword
    • +
    • ida_bytes.get_wide_word
    • +
    • ida_idp.CUSTOM_INSN_ITYPE
    • +
    • ida_idp.IDP_Hooks
    • +
    • ida_idp.PLFM_ARM
    • +
    • ida_idp.ph.id
    • +
    • ida_idp.str2reg
    • +
    • ida_segregs.get_sreg
    • +
    +
  • + + +
+
+
+
+
+ + + assemble: An `ida_idp.IDP_Hooks.assembly` implementation +
+
+ +
+We add support for assembling the following pseudo instructions:
+
+* "zero eax" -> xor eax, eax
+* "nothing" -> nop
+
+ +
    +
  • Category: idphooks
  • +
  • Summary: An `ida_idp.IDP_Hooks.assembly` implementation
  • +
  • View on GitHub
  • +
  • Keywords: + IDP_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_idp.IDP_Hooks
    • +
    • idautils.DecodeInstruction
    • +
    +
  • + + +
+
+
+ +
+

Category: merge

+
+
+
+ + + py_mex1: Add merge functionality to a simple plugin, example 1 +
+
+ +
+This is a primitive plugin which asks user for some info and saves it for
+some addresses.
+
+We will add a merge functionality to plugin.
+
+An IDA plugin may have two kinds of data with permanent storage:
+  1. Data common for entire database (e.g. the options).
+     To describe them we will use the idbattr_info_t type.
+  2. Data specific to a particular address.
+     To describe them we will use the merge_node_info_t type.
+
+Also, see SDK/plugins/mex1 example
+
+ +
    +
  • Category: merge
  • +
  • Summary: Add merge functionality to a simple plugin, example 1
  • +
  • View on GitHub
  • +
  • Keywords: + IDP_Hooks + plugin +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_ida.IDI_ALTVAL
    • +
    • ida_ida.IDI_CSTR
    • +
    • ida_ida.IDI_SCALAR
    • +
    • ida_ida.IDI_SUPVAL
    • +
    • ida_ida.idbattr_info_t
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_idaapi.PLUGIN_MOD
    • +
    • ida_idaapi.PLUGIN_MULTI
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_idaapi.plugmod_t
    • +
    • ida_idp.IDP_Hooks
    • +
    • ida_kernwin.Form
    • +
    • ida_kernwin.Form.ChkGroupControl
    • +
    • ida_kernwin.Form.StringInput
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_merge.MERGE_KIND_END
    • +
    • ida_merge.MERGE_KIND_NONE
    • +
    • ida_merge.NDS_IS_STR
    • +
    • ida_merge.NDS_MAP_IDX
    • +
    • ida_merge.merge_handler_params_t
    • +
    • ida_merge.merge_node_info_t
    • +
    • ida_merge.moddata_diff_helper_t
    • +
    • ida_mergemod.create_std_modmerge_handlers
    • +
    • ida_netnode.BADNODE
    • +
    • ida_netnode.SIZEOF_nodeidx_t
    • +
    • ida_netnode.atag
    • +
    • ida_netnode.netnode
    • +
    • ida_netnode.stag
    • +
    +
  • + + +
+
+
+
+
+ + + py_mex3: This example uses the mex1 example and improves the user-interface for it. +
+
+ +
+IDA Teams uses a chooser to display the merge conflicts.
+To fill the chooser columns IDA Teams uses the following methods from diff_source_t type:
+  * print_diffpos_name()
+  * print_diffpos_details()
+and UI hints from merge_handler_params_t type:
+  * ui_has_details()
+  * ui_complex_details()
+  * ui_complex_name()
+
+In general, chooser columns are filled as following:
+  columns.clear()
+  NAME = print_diffpos_name()
+  if ui_complex_name()
+  then
+    columns.add(split NAME by ui_split_char())
+  else
+    columns[0] = NAME
+  if not ui_complex_details()
+  then
+    columns.add(print_diffpos_details())
+
+Also, see SDK/plugins/mex3 example
+
+ +
    +
  • Category: merge
  • +
  • Summary: This example uses the mex1 example and improves the user-interface for it.
  • +
  • View on GitHub
  • +
  • Keywords: + IDP_Hooks + plugin +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_ida.IDI_ALTVAL
    • +
    • ida_ida.IDI_CSTR
    • +
    • ida_ida.IDI_SCALAR
    • +
    • ida_ida.IDI_SUPVAL
    • +
    • ida_ida.idbattr_info_t
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_idaapi.PLUGIN_MOD
    • +
    • ida_idaapi.PLUGIN_MULTI
    • +
    • ida_idaapi.plugin_t
    • +
    • ida_idaapi.plugmod_t
    • +
    • ida_idp.IDP_Hooks
    • +
    • ida_kernwin.Form
    • +
    • ida_kernwin.Form.ChkGroupControl
    • +
    • ida_kernwin.Form.StringInput
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_merge.MERGE_KIND_END
    • +
    • ida_merge.MERGE_KIND_NONE
    • +
    • ida_merge.MH_UI_COLONNAME
    • +
    • ida_merge.MH_UI_COMMANAME
    • +
    • ida_merge.MH_UI_NODETAILS
    • +
    • ida_merge.NDS_IS_STR
    • +
    • ida_merge.NDS_MAP_IDX
    • +
    • ida_merge.create_nodeval_merge_handlers
    • +
    • ida_merge.get_ea_diffpos_name
    • +
    • ida_merge.merge_handler_params_t
    • +
    • ida_merge.merge_node_helper_t
    • +
    • ida_merge.merge_node_info_t
    • +
    • ida_merge.moddata_diff_helper_t
    • +
    • ida_mergemod.create_std_modmerge_handlers
    • +
    • ida_nalt.node2ea
    • +
    • ida_netnode.BADNODE
    • +
    • ida_netnode.SIZEOF_nodeidx_t
    • +
    • ida_netnode.atag
    • +
    • ida_netnode.netnode
    • +
    • ida_netnode.stag
    • +
    +
  • + + +
+
+
+ +
+

Category: pyqt

+
+
+
+ + + inject_command: Injecting commands in the "Output" window +
+
+ +
+This example illustrates how one can execute commands in the
+"Output" window, from their own widgets.
+
+A few notes:
+
+* the original, underlying `cli:Execute` action, that has to be
+  triggered for the code present in the input field to execute
+  and be placed in the history, requires that the input field
+  has focus (otherwise it simply won't do anything.)
+* this, in turn, forces us to do "delayed" execution of that action,
+  hence the need for a `QTimer`
+* the IDA/SWiG 'TWidget' type that we retrieve through
+  `ida_kernwin.find_widget`, is not the same type as a
+  `QtWidgets.QWidget`. We therefore need to convert it using
+  `ida_kernwin.PluginForm.TWidgetToPyQtWidget`
+
+ +
    +
  • Category: pyqt
  • +
  • Summary: Injecting commands in the "Output" window
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_kernwin.PluginForm.TWidgetToPyQtWidget
    • +
    • ida_kernwin.disabled_script_timeout_t
    • +
    • ida_kernwin.find_widget
    • +
    • ida_kernwin.process_ui_action
    • +
    +
  • + + +
+
+
+
+
+ + + paint_over_navbar: Custom painting on top of the navigation band +
+
+ +
+Using an "event filter", we'll intercept paint events
+targeted at the navigation band widget, let it paint itself,
+and then add our own markers on top.
+
+ +
    +
  • Category: pyqt
  • +
  • Summary: Custom painting on top of the navigation band
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_kernwin.PluginForm.FormToPyQtWidget
    • +
    • ida_kernwin.get_navband_pixel
    • +
    • ida_kernwin.open_navband_window
    • +
    • ida_segment.get_segm_qty
    • +
    • ida_segment.getnseg
    • +
    • idc.here
    • +
    +
  • + + +
+
+
+
+
+ + + populate_pluginform_with_pyqt_widgets: Adding PyQt5 widgets into an `ida_kernwin.PluginForm` +
+
+ +
+Using `ida_kernwin.PluginForm.FormToPyQtWidget`, this script
+converts IDA's own dockable widget into a type that is
+recognized by PyQt5, which then enables populating it with
+regular Qt widgets.
+
+ +
    +
  • Category: pyqt
  • +
  • Summary: Adding PyQt5 widgets into an `ida_kernwin.PluginForm`
  • +
  • View on GitHub
  • + + + +
  • APIs used +
      +
    • ida_kernwin.PluginForm
    • +
    +
  • + + +
+
+
+ +
+

Category: uihooks

+
+
+
+ + + func_chooser_coloring: Using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults +
+
+ +
+Color the function in the Function window according to its size.
+The larger the function, the darker the color.
+
+ +
    +
  • Category: uihooks
  • +
  • Summary: Using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults
  • +
  • View on GitHub
  • +
  • Keywords: + UI_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.enable_chooser_item_attrs
    • +
    +
  • + + +
+
+
+
+
+ + + lines_rendering: Dynamically colorize lines backgrounds (or parts of them) +
+
+ +
+Shows how one can dynamically alter the lines background
+rendering (as opposed to, say, using ida_nalt.set_item_color()),
+and also shows how that rendering can be limited to just a few
+glyphs, not the whole line.
+
+ +
    +
  • Category: uihooks
  • +
  • Summary: Dynamically colorize lines backgrounds (or parts of them)
  • +
  • View on GitHub
  • +
  • Keywords: + UI_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_bytes.next_head
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_kernwin.CK_EXTRA1
    • +
    • ida_kernwin.CK_EXTRA10
    • +
    • ida_kernwin.CK_EXTRA11
    • +
    • ida_kernwin.CK_EXTRA12
    • +
    • ida_kernwin.CK_EXTRA13
    • +
    • ida_kernwin.CK_EXTRA14
    • +
    • ida_kernwin.CK_EXTRA15
    • +
    • ida_kernwin.CK_EXTRA16
    • +
    • ida_kernwin.CK_EXTRA2
    • +
    • ida_kernwin.CK_EXTRA3
    • +
    • ida_kernwin.CK_EXTRA4
    • +
    • ida_kernwin.CK_EXTRA5
    • +
    • ida_kernwin.CK_EXTRA6
    • +
    • ida_kernwin.CK_EXTRA7
    • +
    • ida_kernwin.CK_EXTRA8
    • +
    • ida_kernwin.CK_EXTRA9
    • +
    • ida_kernwin.CK_TRACE
    • +
    • ida_kernwin.CK_TRACE_OVL
    • +
    • ida_kernwin.LROEF_CPS_RANGE
    • +
    • ida_kernwin.UI_Hooks
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_kernwin.line_rendering_output_entry_t
    • +
    • ida_kernwin.refresh_idaview_anyway
    • +
    +
  • + + +
+
+
+
+
+ + + log_misc_events: Being notified, and logging a few UI events +
+
+ +
+Hooks to be notified about certain UI events, and
+dump their information to the "Output" window
+
+ +
    +
  • Category: uihooks
  • +
  • Summary: Being notified, and logging a few UI events
  • +
  • View on GitHub
  • +
  • Keywords: + UI_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.UI_Hooks
    • +
    +
  • + + +
+
+
+
+
+ + + prevent_jump: Taking precedence over actions +
+
+ +
+Using `ida_kernwin.UI_Hooks.preprocess_action`, it is possible
+to respond to a command instead of the action that would
+otherwise do it.
+
+ +
    +
  • Category: uihooks
  • +
  • Summary: Taking precedence over actions
  • +
  • View on GitHub
  • +
  • Keywords: + UI_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.UI_Hooks
    • +
    +
  • + + +
+
+
+ +
+

Category: widgets

+
+
+
+ + + add_menus: Adding custom menus to IDA +
+
+ +
+It is possible to add custom menus to IDA, either at the
+toplevel (i.e., into the menubar), or as submenus of existing
+menus.
+
+Notes:
+
+  * the same action can be present in more than 1 menu
+  * this example does not deal with context menus
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Adding custom menus to IDA
  • +
  • View on GitHub
  • +
  • Keywords: + actions +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.SETMENU_INS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_menu
    • +
    • ida_kernwin.create_menu
    • +
    • ida_kernwin.register_action
    • +
    +
  • + + +
+
+
+
+
+ + + askusingform: Non-trivial uses of the `ida_kernwin.Form` helper class +
+
+ +
+How to query for complex user input, using IDA's built-in forms.
+
+Note: while this example produces full-fledged forms for complex input,
+simpler types of inputs might can be retrieved by using
+`ida_kernwin.ask_str` and similar functions.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Non-trivial uses of the `ida_kernwin.Form` helper class
  • +
  • View on GitHub
  • +
  • Keywords: + forms +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.Choose
    • +
    • ida_kernwin.Choose.CH_MULTI
    • +
    • ida_kernwin.Form
    • +
    • ida_kernwin.PluginForm.FORM_TAB
    • +
    • ida_kernwin.ask_str
    • +
    +
  • + + +
+
+
+
+
+ + + choose: A widget showing data in a tabular fashion +
+
+ +
+Shows how to subclass the ida_kernwin.Choose class to
+show data organized in a simple table.
+In addition, registers a couple actions that can be applied to it.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: A widget showing data in a tabular fashion
  • +
  • View on GitHub
  • +
  • Keywords: + actions + chooser + ctxmenu +
  • + + + +
  • APIs used +
      +
    • Choose
    • +
    • Choose.ALL_CHANGED
    • +
    • Choose.CH_CAN_DEL
    • +
    • Choose.CH_CAN_EDIT
    • +
    • Choose.CH_CAN_INS
    • +
    • Choose.CH_CAN_REFRESH
    • +
    • Choose.CH_RESTORE
    • +
    • Choose.NOTHING_CHANGED
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.is_chooser_widget
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + choose_multi: A widget showing data in a tabular fashion, providing multiple selection +
+
+ +
+Similar to choose, but with multiple selection
+
+ +
    +
  • Category: widgets
  • +
  • Summary: A widget showing data in a tabular fashion, providing multiple selection
  • +
  • View on GitHub
  • +
  • Keywords: + actions + chooser +
  • + + + +
  • APIs used +
      +
    • Choose
    • +
    • Choose.ALL_CHANGED
    • +
    • Choose.CHCOL_HEX
    • +
    • Choose.CH_MULTI
    • +
    • Choose.NOTHING_CHANGED
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + chooser_with_folders: A widget that can show tabular data either as a simple table, or with a tree-like structure. +
+
+ +
+By adding the necessary bits to a ida_kernwin.Choose subclass,
+IDA can show the otherwise tabular data, in a tree-like fashion.
+
+The important bits to enable this are:
+
+  * ida_dirtree.dirspec_t (and my_dirspec_t)
+  * ida_kernwin.CH_HAS_DIRTREE
+  * ida_kernwin.Choose.OnGetDirTree
+  * ida_kernwin.Choose.OnIndexToInode
+
+ +
    +
  • Category: widgets
  • +
  • Summary: A widget that can show tabular data either as a simple table, or with a tree-like structure.
  • +
  • View on GitHub
  • +
  • Keywords: + actions + chooser + folders +
  • + + + +
  • APIs used +
      +
    • ida_dirtree.DTE_OK
    • +
    • ida_dirtree.direntry_t
    • +
    • ida_dirtree.direntry_t.BADIDX
    • +
    • ida_dirtree.dirspec_t
    • +
    • ida_dirtree.dirtree_t
    • +
    • ida_dirtree.dirtree_t.isdir
    • +
    • ida_kernwin.CH_CAN_DEL
    • +
    • ida_kernwin.CH_CAN_EDIT
    • +
    • ida_kernwin.CH_CAN_INS
    • +
    • ida_kernwin.CH_HAS_DIRTREE
    • +
    • ida_kernwin.CH_MULTI
    • +
    • ida_kernwin.CH_NOIDB
    • +
    • ida_kernwin.Choose
    • +
    • ida_kernwin.Choose.ALL_CHANGED
    • +
    • ida_kernwin.Choose.CHCOL_DRAGHINT
    • +
    • ida_kernwin.Choose.CHCOL_INODENAME
    • +
    • ida_kernwin.Choose.CHCOL_PLAIN
    • +
    • ida_kernwin.ask_str
    • +
    • ida_netnode.BADNODE
    • +
    • ida_netnode.netnode
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + custom_graph_with_actions: Drawing custom graphs +
+
+ +
+Showing custom graphs, using `ida_graph.GraphViewer`. In addition,
+show how to write actions that can be performed on those.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Drawing custom graphs
  • +
  • View on GitHub
  • +
  • Keywords: + actions + graph + View_Hooks +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func
    • +
    • ida_funcs.get_func_name
    • +
    • ida_graph.GraphViewer
    • +
    • ida_graph.get_graph_viewer
    • +
    • ida_graph.screen_graph_selection_t
    • +
    • ida_graph.viewer_get_selection
    • +
    • ida_idp.is_call_insn
    • +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.View_Hooks
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_dynamic_action_to_popup
    • +
    • ida_kernwin.get_screen_ea
    • +
    • ida_ua.decode_insn
    • +
    • ida_ua.insn_t
    • +
    • ida_xref.XREF_FAR
    • +
    • ida_xref.xrefblk_t
    • +
    +
  • + + +
+
+
+
+
+ + + custom_viewer: Create custom listings in IDA +
+
+ +
+How to create simple listings, that will share many of the features
+as the built-in IDA widgets (highlighting, copy & paste,
+notifications, ...)
+
+In addition, creates actions that will be bound to the
+freshly-created widget (using `ida_kernwin.attach_action_to_popup`.)
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Create custom listings in IDA
  • +
  • View on GitHub
  • +
  • Keywords: + actions + ctxmenu + listing +
  • + + + +
  • APIs used +
      +
    • ida_kernwin.AST_ENABLE_ALWAYS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.ask_long
    • +
    • ida_kernwin.ask_str
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.simplecustviewer_t
    • +
    • ida_kernwin.simplecustviewer_t.Create
    • +
    • ida_kernwin.simplecustviewer_t.Show
    • +
    • ida_kernwin.unregister_action
    • +
    • ida_lines.COLOR_DEFAULT
    • +
    • ida_lines.COLOR_DNAME
    • +
    • ida_lines.COLSTR
    • +
    • ida_lines.SCOLOR_PREFIX
    • +
    • ida_lines.SCOLOR_VOIDOP
    • +
    +
  • + + +
+
+
+
+
+ + + func_chooser: An alternative view over the list of functions +
+
+ +
+Partially re-implements the "Functions" widget present in
+IDA, with a custom widget.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: An alternative view over the list of functions
  • +
  • View on GitHub
  • +
  • Keywords: + chooser + functions +
  • + + + +
  • APIs used +
      +
    • ida_funcs.get_func_name
    • +
    • ida_kernwin.Choose
    • +
    • ida_kernwin.Choose.ALL_CHANGED
    • +
    • ida_kernwin.Choose.CHCOL_FNAME
    • +
    • ida_kernwin.Choose.CHCOL_HEX
    • +
    • ida_kernwin.Choose.CHCOL_PLAIN
    • +
    • idautils.Functions
    • +
    • idc.del_func
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + jump_next_comment: Implement a "jump to next comment" action within IDA's disassembly view. +
+
+ +
+We want our action not only to find the next line containing a comment,
+but to also place the cursor at the right horizontal position.
+
+To find that position, we will have to inspect the text that IDA
+generates, looking for the start of a comment.
+However, we won't be looking for a comment "prefix" (e.g., "; "),
+as that would be too fragile.
+
+Instead, we will look for special "tags" that IDA injects into textual
+lines, and that bear semantic information.
+
+Those tags are primarily used for rendering (i.e., switching colors),
+but can also be very handy for spotting tokens of interest (registers,
+addresses, comments, prefixes, instruction mnemonics, ...)
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Implement a "jump to next comment" action within IDA's disassembly view.
  • +
  • View on GitHub
  • +
  • Keywords: + actions + idaview +
  • + +
  • Shortcut: + Ctrl+Alt+C +
  • + + +
  • APIs used +
      +
    • ida_bytes.next_head
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_DISASM
    • +
    • ida_kernwin.CVNF_LAZY
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.custom_viewer_jump
    • +
    • ida_kernwin.get_custom_viewer_location
    • +
    • ida_kernwin.place_t_as_idaplace_t
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    • ida_lines.SCOLOR_AUTOCMT
    • +
    • ida_lines.SCOLOR_ON
    • +
    • ida_lines.SCOLOR_REGCMT
    • +
    • ida_lines.SCOLOR_RPTCMT
    • +
    • ida_lines.generate_disassembly
    • +
    • ida_lines.tag_strlen
    • +
    • ida_moves.lochist_entry_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + lazy_loaded_chooser: +
+
+ +
+
+
+ +
    +
  • Category: widgets
  • +
  • Summary:
  • +
  • View on GitHub
  • + + + + + +
+
+
+
+
+ + + save_and_restore_listing_pos: Save, and then restore, positions in a listing +
+
+ +
+Shows how it is possible re-implement IDA's bookmark capability,
+using 2 custom actions: one action saves the current location,
+and the other restores it.
+
+Note that, contrary to actual bookmarks, this example:
+
+  * remembers only 1 saved position
+  * doesn't save that position in the IDB (and therefore cannot
+    be restored if IDA is closed & reopened.)
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Save, and then restore, positions in a listing
  • +
  • View on GitHub
  • +
  • Keywords: + actions + listing +
  • + +
  • Shortcuts: + Ctrl+Shift+O + Ctrl+Shift+S +
  • + + +
  • APIs used +
      +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_CUSTVIEW
    • +
    • ida_kernwin.BWN_DISASM
    • +
    • ida_kernwin.BWN_ENUMS
    • +
    • ida_kernwin.BWN_PSEUDOCODE
    • +
    • ida_kernwin.BWN_STRUCTS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.custom_viewer_jump
    • +
    • ida_kernwin.find_widget
    • +
    • ida_kernwin.get_custom_viewer_location
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    • ida_moves.lochist_entry_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + show_and_hide_waitbox: Showing, updating & hiding the progress dialog +
+
+ +
+Using the progress dialog (aka 'wait box') primitives.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Showing, updating & hiding the progress dialog
  • +
  • View on GitHub
  • +
  • Keywords: + actions +
  • + + + +
  • APIs used +
      +
    • ida_hexrays.decompile
    • +
    • ida_kernwin.hide_wait_box
    • +
    • ida_kernwin.replace_wait_box
    • +
    • ida_kernwin.show_wait_box
    • +
    • ida_kernwin.user_cancelled
    • +
    • idautils.Functions
    • +
    +
  • + + +
+
+
+
+
+ + + show_selected_strings: Retrieve the strings that are selected in the "Strings" window. +
+
+ +
+In IDA it's possible to write actions that can be applied even to
+core (i.e., "standard") widgets. The actions in this example use the
+action "context" to know what the current selection is.
+
+This example shows how you can either retrieve string literals data
+directly from the chooser (`ida_kernwin.get_chooser_data`), or
+by querying the IDB (`ida_bytes.get_strlit_contents`)
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Retrieve the strings that are selected in the "Strings" window.
  • +
  • View on GitHub
  • +
  • Keywords: + actions + ctxmenu +
  • + +
  • Shortcuts: + Ctrl+Shift+K + Ctrl+Shift+S +
  • + + +
  • APIs used +
      +
    • ida_bytes.get_strlit_contents
    • +
    • ida_idaapi.BADADDR
    • +
    • ida_kernwin.AST_DISABLE_FOR_WIDGET
    • +
    • ida_kernwin.AST_ENABLE_FOR_WIDGET
    • +
    • ida_kernwin.BWN_STRINGS
    • +
    • ida_kernwin.action_desc_t
    • +
    • ida_kernwin.action_handler_t
    • +
    • ida_kernwin.attach_action_to_popup
    • +
    • ida_kernwin.find_widget
    • +
    • ida_kernwin.get_chooser_data
    • +
    • ida_kernwin.open_strings_window
    • +
    • ida_kernwin.register_action
    • +
    • ida_kernwin.unregister_action
    • +
    • ida_strlist.get_strlist_item
    • +
    • ida_strlist.string_info_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + sync_two_graphs: Follow the movements of a disassembly graph, in another. +
+
+ +
+Since it is possible to be notified of movements that happen
+take place in a widget, it's possible to "replay" those
+movements in another.
+
+In this case, "IDA View-B" (will be opened if necessary) will
+show the same contents as "IDA View-A", slightly zoomed out.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Follow the movements of a disassembly graph, in another.
  • +
  • View on GitHub
  • +
  • Keywords: + graph + idaview +
  • + + + +
  • APIs used +
      +
    • ida_graph.GLICTL_CENTER
    • +
    • ida_graph.viewer_fit_window
    • +
    • ida_graph.viewer_get_gli
    • +
    • ida_graph.viewer_set_gli
    • +
    • ida_kernwin.DP_RIGHT
    • +
    • ida_kernwin.IDAViewWrapper
    • +
    • ida_kernwin.MFF_FAST
    • +
    • ida_kernwin.TCCRT_GRAPH
    • +
    • ida_kernwin.execute_sync
    • +
    • ida_kernwin.find_widget
    • +
    • ida_kernwin.get_custom_viewer_place
    • +
    • ida_kernwin.jumpto
    • +
    • ida_kernwin.open_disasm_window
    • +
    • ida_kernwin.set_dock_pos
    • +
    • ida_kernwin.set_view_renderer_type
    • +
    • ida_moves.graph_location_info_t
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+
+
+ + + wrap_idaview: Manipulate IDAView and graph +
+
+ +
+This is an example illustrating how to manipulate an existing IDA-provided
+view (and thus possibly its graph), in Python.
+
+ +
    +
  • Category: widgets
  • +
  • Summary: Manipulate IDAView and graph
  • +
  • View on GitHub
  • +
  • Keywords: + graph + idaview +
  • + + + +
  • APIs used +
      +
    • ida_graph.NIF_BG_COLOR
    • +
    • ida_graph.NIF_FRAME_COLOR
    • +
    • ida_graph.node_info_t
    • +
    • ida_kernwin.IDAViewWrapper
    • +
    • ida_kernwin.MFF_FAST
    • +
    • ida_kernwin.TCCRT_FLAT
    • +
    • ida_kernwin.TCCRT_GRAPH
    • +
    • ida_kernwin.execute_sync
    • +
    +
  • + +
  • See also: + +
  • + +
+
+
+ +
+ + diff --git a/examples/index.js b/examples/index.js new file mode 100644 index 0000000..9f8bd2f --- /dev/null +++ b/examples/index.js @@ -0,0 +1,72 @@ + +function on_see_also(see_also) +{ + var idx = see_also.indexOf("#"); + if ( idx > -1 ) + see_also = see_also.substring(idx+1,see_also.length); + var entry = find_entry_el(document.getElementById('DIV_' + see_also)); + if ( entry ) + { + set_entry_state(entry, true); + entry.scrollIntoView(); + } +} + +function find_parent_with_class(el, klass) +{ + while ( el ) + { + if ( el.className && el.className.indexOf(klass) > -1 ) + return el; + el = el.parentNode; + } +} + +function find_child_with_class(el, klass) +{ + return el.querySelector("." + klass); +} + +function find_entry_el(el) { return find_parent_with_class(el, "example-entry"); } +function find_expander(entry_el) { return find_child_with_class(entry_el, "expander"); } +function find_collapser(entry_el) { return find_child_with_class(entry_el, "collapser"); } + +function set_entry_state(entry_el, expanded) +{ + var collapser_el = find_collapser(entry_el); + var expander_el = find_expander(entry_el); + collapser_el.style.display = expanded ? "" : "none"; + expander_el.style.display = expanded ? "none" : ""; + if ( expanded ) + entry_el.classList.remove("collapsed-entry"); + else + entry_el.classList.add("collapsed-entry"); +} + +function handle_click(e) +{ + e = e || window.event; + var el = e.target || e.srcElement; + var entry_el = find_entry_el(el); + var ok = false; + if ( el.classList.contains("collapser") ) + set_entry_state(entry_el, false); + else if ( el.classList.contains("expander") ) + set_entry_state(entry_el, true); + else if ( el.classList.contains("ex_link") ) // see also + on_see_also(el.href); + else + return; + e.stopPropagation(); +} + +function handle_toplevel_action(e) +{ + e = e || window.event; + var el = e.target || e.srcElement; + var expanded = el.classList.contains("expand-all"); + var els = document.getElementsByClassName("example-entry"); + for ( var idx = 0, n = els.length; idx < n; ++idx ) + set_entry_state(els[idx], expanded); + e.stopPropagation(); +} diff --git a/examples/index.md b/examples/index.md new file mode 100644 index 0000000..efe96d4 --- /dev/null +++ b/examples/index.md @@ -0,0 +1,3648 @@ +[HTML version](http://htmlpreview.github.io/?https://github.com/idapython/src/blob/master/examples/index.html) + +# IDAPython examples + +## Category: analysis + +#### dump_func_info +
+ Dump (some) information about the current function. + +
+ +#### Source code +analysis/dump_func_info.py + +#### Category +analysis + +#### Description +Dump some of the most interesting bits of information about +the function we are currently looking at. + +#### Uses +* ida_funcs.FUNC_FRAME +* ida_funcs.FUNC_LUMINA +* ida_funcs.FUNC_OUTLINE +* ida_funcs.FUNC_THUNK +* ida_funcs.get_fchunk +* ida_funcs.is_func_entry +* ida_funcs.is_func_tail +* ida_kernwin.get_screen_ea + +
+ +
+ +## Category: core + +#### actions +
+ Custom actions, with icons & tooltips + +
+ +#### Source code +core/actions.py + +#### Category +core + +#### Description +How to create user actions, that once created can be +inserted in menus, toolbars, context menus, ... + +Those actions, when triggered, will be passed a 'context' +that contains some of the most frequently needed bits of +information. + +In addition, custom actions can determine when they want +to be available (through their +`ida_kernwin.action_handler_t.update` callback) + +#### Shortcut +Ctrl+F12 + +#### Keywords +actions ctxmenu UI_Hooks + +#### Uses +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_DISASM +* ida_kernwin.SETMENU_APP +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_menu +* ida_kernwin.attach_action_to_popup +* ida_kernwin.attach_action_to_toolbar +* ida_kernwin.get_widget_type +* ida_kernwin.load_custom_icon +* ida_kernwin.register_action +* ida_kernwin.unregister_action + +#### See also +* [add_hotkey](#add_hotkey) + +
+ +
+ +#### add_hotkey +
+ Triggering bits of code by pressing a shortcut + +
+ +#### Source code +core/add_hotkey.py + +#### Category +core + +#### Description +`ida_kernwin.add_hotkey` is a simpler, but much less flexible +alternative to `ida_kernwin.register_action` (though it does +use the same mechanism under the hood.) + +It's particularly useful during prototyping, but note that the +actions that are created cannot be inserted in menus, toolbars +or cannot provide a custom `ida_kernwin.action_handler_t.update` +callback. + +#### Keywords +actions + +#### Uses +* ida_kernwin.add_hotkey +* ida_kernwin.del_hotkey + +#### See also +* [actions](#actions) + +
+ +
+ +#### add_idc_hotkey +
+ Triggering bits of code by pressing a shortcut (older version) + +
+ +#### Source code +core/add_idc_hotkey.py + +#### Category +core + +#### Description +This is a somewhat ancient way of registering actions & binding +shortcuts. It's still here for reference, but "fresher" alternatives +should be preferred. + +#### Keywords +actions + +#### Uses +* ida_expr.compile_idc_text +* ida_kernwin.add_idc_hotkey + +#### See also +* [actions](#actions) +* [add_hotkey](#add_hotkey) + +
+ +
+ +#### auto_instantiate_widget_plugin +
+ Better integrating custom widgets in the desktop layout + +
+ +#### Source code +core/auto_instantiate_widget_plugin.py + +#### Category +core + +#### Description +This is an example demonstrating how one can create widgets from a plugin, +and have them re-created automatically at IDA startup-time or at desktop load-time. + +This example should be placed in the 'plugins' directory of the +IDA installation, for it to work. + +There are 2 ways to use this example: +1) reloading an IDB, where the widget was opened + - open the widget ('View > Open subview > ...') + - save this IDB, and close IDA + - restart IDA with this IDB + => the widget will be visible + +2) reloading a desktop, where the widget was opened + - open the widget ('View > Open subview > ...') + - save the desktop ('Windows > Save desktop...') under, say, the name 'with_auto' + - start another IDA instance with some IDB, and load that desktop + => the widget will be visible + +#### Keywords +desktop plugin UI_Hooks + +#### Uses +* ida_idaapi.plugin_t +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.SETMENU_APP +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_menu +* ida_kernwin.find_widget +* ida_kernwin.register_action +* ida_kernwin.simplecustviewer_t +* ida_kernwin.simplecustviewer_t.Create + +
+ +
+ +#### bin_search +
+ Showcasing `ida_bytes.bin_search` + +
+ +#### Source code +core/bin_search.py + +#### Category +core + +#### Description +IDAPython's ida_bytes.bin_search function is pretty powerful, +but can be tough to figure out at first. This example introduces + + * `ida_bytes.bin_search`, and + * `ida_bytes.parse_binpat_str` + +in order to implement a simple replacement for the +'Search > Sequence of bytes...' dialog, that lets users +search for sequences of bytes that compose string literals +in the binary file (either in the default 1-byte-per-char +encoding, or as UTF-16.) + +#### Shortcut +Ctrl+Shift+S + +#### Uses +* ida_bytes.BIN_SEARCH_FORWARD +* ida_bytes.BIN_SEARCH_NOBREAK +* ida_bytes.BIN_SEARCH_NOSHOW +* ida_bytes.bin_search +* ida_bytes.compiled_binpat_vec_t +* ida_bytes.parse_binpat_str +* ida_ida.inf_get_max_ea +* ida_idaapi.BADADDR +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_DISASM +* ida_kernwin.Form +* ida_kernwin.Form.ChkGroupControl +* ida_kernwin.Form.StringInput +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.get_screen_ea +* ida_kernwin.jumpto +* ida_kernwin.register_action +* ida_nalt.BPU_1B +* ida_nalt.BPU_2B +* ida_nalt.get_default_encoding_idx + +
+ +
+ +#### colorize_disassembly_on_the_fly +
+ An easy-to-use way to colorize lines + +
+ +#### Source code +core/colorize_disassembly_on_the_fly.py + +#### Category +core + +#### Description +This builds upon the `ida_kernwin.UI_Hooks.get_lines_rendering_info` +feature, to provide a quick & easy way to colorize disassembly +lines. + +Contrary to @colorize_disassembly, the coloring is not persisted in +the database, and will therefore be lost after the session. + +By triggering the action multiple times, the user can "carousel" +across 4 predefined colors (and return to the "no color" state.) + +#### Shortcut +! + +#### Keywords +coloring UI_Hooks + +#### Uses +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.CK_EXTRA5 +* ida_kernwin.CK_EXTRA6 +* ida_kernwin.CK_EXTRA7 +* ida_kernwin.CK_EXTRA8 +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.get_current_viewer +* ida_kernwin.get_custom_viewer_location +* ida_kernwin.get_custom_viewer_place_xcoord +* ida_kernwin.get_widget_title +* ida_kernwin.line_rendering_output_entry_t +* ida_kernwin.register_action +* ida_moves.lochist_entry_t + +#### See also +* [colorize_disassembly](#colorize_disassembly) + +
+ +
+ +#### create_structure_programmatically +
+ Programmatically create & populate a structure + +
+ +#### Source code +core/create_structure_programmatically.py + +#### Category +core + +#### Description +Usage of the API to create & populate a structure with +members of different types. + +#### Uses +* ida_bytes.FF_BYTE +* ida_bytes.FF_DATA +* ida_bytes.FF_DOUBLE +* ida_bytes.FF_DWORD +* ida_bytes.FF_FLOAT +* ida_bytes.FF_OWORD +* ida_bytes.FF_PACKREAL +* ida_bytes.FF_QWORD +* ida_bytes.FF_STRLIT +* ida_bytes.FF_STRUCT +* ida_bytes.FF_TBYTE +* ida_bytes.FF_WORD +* ida_bytes.off_flag +* ida_bytes.stroff_flag +* ida_idaapi.BADADDR +* ida_nalt.STRTYPE_C +* ida_struct.add_struc +* ida_struct.get_struc_id +* ida_struct.get_struc_size +* idc.add_struc +* idc.add_struc_member +* idc.del_struc +* idc.set_member_type + +#### Author +Gergely Erdelyi (gergely.erdelyi@d-dome.net) + +
+ +
+ +#### custom_cli +
+ A custom command-line interpreter + +
+ +#### Source code +core/custom_cli.py + +#### Category +core + +#### Description +Illustrates how one can add command-line interpreters to IDA + +This custom interpreter doesn't actually run any code; it's +there as a 'getting started'. +It provides an example tab completion support. + +#### Uses +* ida_idaapi.NW_CLOSEIDB +* ida_idaapi.NW_OPENIDB +* ida_idaapi.NW_REMOVE +* ida_idaapi.NW_TERMIDA +* ida_idaapi.notify_when +* ida_kernwin.cli_t + +
+ +
+ +#### custom_data_types_and_formats +
+ Using custom data types & printers + +
+ +#### Source code +core/custom_data_types_and_formats.py + +#### Category +core + +#### Description +IDA can be extended to support certain data types that it +does not know about out-of-the-box. + +A 'custom data type' provide information about the type & +size of a piece of data, while a 'custom data format' is in +charge of formatting that data (there can be more than +one format for a specific 'custom data type'.) + +#### Uses +* ida_bytes.data_format_t +* ida_bytes.data_type_t +* ida_bytes.find_custom_data_type +* ida_bytes.get_byte +* ida_bytes.register_data_types_and_formats +* ida_bytes.unregister_data_types_and_formats +* ida_idaapi.NW_CLOSEIDB +* ida_idaapi.NW_OPENIDB +* ida_idaapi.NW_REMOVE +* ida_idaapi.NW_TERMIDA +* ida_idaapi.notify_when +* ida_idaapi.struct_unpack +* ida_lines.COLSTR +* ida_lines.SCOLOR_IMPNAME +* ida_lines.SCOLOR_INSN +* ida_lines.SCOLOR_NUMBER +* ida_lines.SCOLOR_REG +* ida_nalt.get_input_file_path +* ida_netnode.netnode +* ida_struct.is_member_id + +
+ +
+ +#### dump_extra_comments +
+ Retrieve extra comments + +
+ +#### Source code +core/dump_extra_comments.py + +#### Category +core + +#### Description +Use the `ida_lines.get_extra_cmt` API to retrieve anterior +and posterior extra comments. + +This script registers two actions, that can be used to dump +the previous and next extra comments. + +#### Shortcuts +Ctrl+Shift+Y Ctrl+Shift+Z + +#### Keywords +ctxmenu + +#### Uses +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_DISASM +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.find_widget +* ida_kernwin.get_screen_ea +* ida_kernwin.register_action +* ida_kernwin.unregister_action +* ida_lines.E_NEXT +* ida_lines.E_PREV +* ida_lines.get_extra_cmt +* ida_view + +
+ +
+ +#### dump_flowchart +
+ Dump function flowchart + +
+ +#### Source code +core/dump_flowchart.py + +#### Category +core + +#### Description +Dumps the current function's flowchart, using 2 methods: + + * the low-level `ida_gdl.qflow_chart_t` type + * the somewhat higher-level, and slightly more pythonic + `ida_gdl.FlowChart` type. + +#### Uses +* ida_funcs.get_func +* ida_gdl.FlowChart +* ida_gdl.qflow_chart_t +* ida_kernwin.get_screen_ea + +
+ +
+ +#### dump_selection +
+ Retrieve & dump current selection + +
+ +#### Source code +core/dump_selection.py + +#### Category +core + +#### Description +Shows how to retrieve the selection from a listing +widget ("IDA View-A", "Hex View-1", "Pseudocode-A", ...) as +two "cursors", and from there retrieve (in fact, generate) +the corresponding text. + +After running this script: + + * select some text in one of the listing widgets (i.e., + "IDA View-*", "Enums", "Structures", "Pseudocode-*") + * press Ctrl+Shift+S to dump the selection + +#### Shortcut +Ctrl+Shift+S + +#### Uses +* ida_kernwin.ACF_HAS_SELECTION +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_DISASM +* ida_kernwin.BWN_ENUMS +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.BWN_STRUCTS +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.get_viewer_user_data +* ida_kernwin.l_compare2 +* ida_kernwin.linearray_t +* ida_kernwin.register_action +* ida_kernwin.unregister_action +* ida_lines.tag_remove + +
+ +
+ +#### extend_idc +
+ Add functions to the IDC runtime from IDAPython + +
+ +#### Source code +core/extend_idc.py + +#### Category +core + +#### Description +You can add IDC functions to IDA, whose "body" consists of +IDAPython statements! + +We'll register a 'pow' function, available to all IDC code, +that when invoked will call back into IDAPython, and execute +the provided function body. + +After running this script, try switching to the IDC interpreter +(using the button on the lower-left corner of IDA) and executing +`pow(3, 7)` + +#### Uses +* ida_expr.VT_LONG +* ida_expr.add_idc_func + +
+ +
+ +#### idapythonrc +
+ Code to be run right after IDAPython initialization + +
+ +#### Source code +core/idapythonrc.py + +#### Category +core + +#### Description +The `idapythonrc.py` file: + + * %APPDATA%\Hex-Rays\IDA Pro\idapythonrc.py (on Windows) + * ~/.idapro/idapythonrc.py (on Linux & Mac) + +can contain any IDAPython code that will be run as soon as +IDAPython is done successfully initializing. + +
+ +
+ +#### install_user_defined_prefix +
+ Inserting information into disassembly prefixes + +
+ +#### Source code +core/install_user_defined_prefix.py + +#### Category +core + +#### Description +By default, disassembly line prefixes contain segment + address +information (e.g., '.text:08047718'), but it is possible to +"inject" other bits of information in there, thanks to the +`ida_lines.user_defined_prefix_t` helper type. + +#### Keywords +plugin + +#### Uses +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_lines.SCOLOR_INV +* ida_lines.user_defined_prefix_t + +
+ +
+ +#### list_function_items +
+ Showcases (a few of) the iterators available on a function + +
+ +#### Source code +core/list_function_items.py + +#### Category +core + +#### Description +This demonstrates how to use some of the iterators available on the func_t type. + +This example will focus on: + + * `func_t[.__iter__]`: the default iterator; iterates on instructions + * `func_t.data_items`: iterate on data items contained within a function + * `func_t.head_items`: iterate on 'heads' (i.e., addresses containing + the start of an instruction, or a data item. + * `func_t.addresses`: iterate on all addresses within function (code + and data, beginning of an item or not) + +Type `help(ida_funcs.func_t)` for a full list of iterators. + +In addition, one can use: + + * `func_tail_iterator_t`: iterate on all the chunks (including + the main one) of the function + * `func_parent_iterator_t`: iterate on all the parent functions, + that include this chunk + +#### Keywords +funcs iterator + +#### Uses +* ida_bytes.get_flags +* ida_bytes.is_code +* ida_bytes.is_data +* ida_bytes.is_tail +* ida_bytes.is_unknown +* ida_funcs.func_tail_iterator_t +* ida_funcs.get_fchunk +* ida_funcs.get_func +* ida_funcs.get_func_name +* ida_kernwin.get_screen_ea +* ida_ua.print_insn_mnem + +
+ +
+ +#### list_imports +
+ Enumerate file imports + +
+ +#### Source code +core/list_imports.py + +#### Category +core + +#### Description +Using the API to enumerate file imports. + +#### Uses +* ida_nalt.enum_import_names +* ida_nalt.get_import_module_name +* ida_nalt.get_import_module_qty + +
+ +
+ +#### list_patched_bytes +
+ Enumerate patched bytes + +
+ +#### Source code +core/list_patched_bytes.py + +#### Category +core + +#### Description +Using the API to iterate over all the places in the file, +that were patched using IDA. + +#### Uses +* ida_bytes.visit_patched_bytes +* ida_idaapi.BADADDR + +
+ +
+ +#### list_problems +
+ Enumerate problems + +
+ +#### Source code +core/list_problems.py + +#### Category +core + +#### Description +Using the API to list all problem[atic situation]s that IDA +encountered during analysis. + +#### Uses +* ida_ida.inf_get_min_ea +* ida_idaapi.BADADDR +* ida_problems.PR_ATTN +* ida_problems.PR_BADSTACK +* ida_problems.PR_COLLISION +* ida_problems.PR_DECIMP +* ida_problems.PR_DISASM +* ida_problems.PR_FINAL +* ida_problems.PR_HEAD +* ida_problems.PR_ILLADDR +* ida_problems.PR_JUMP +* ida_problems.PR_MANYLINES +* ida_problems.PR_NOBASE +* ida_problems.PR_NOCMT +* ida_problems.PR_NOFOP +* ida_problems.PR_NONAME +* ida_problems.PR_NOXREFS +* ida_problems.PR_ROLLED +* ida_problems.get_problem +* ida_problems.get_problem_name + +
+ +
+ +#### list_segment_functions +
+ List all functions (and xrefs) in segment + +
+ +#### Source code +core/list_segment_functions.py + +#### Category +core + +#### Description +List all the functions in the current segment, as well as +all the cross-references to them. + +#### Keywords +xrefs + +#### Uses +* ida_funcs.get_func +* ida_funcs.get_func_name +* ida_funcs.get_next_func +* ida_kernwin.get_screen_ea +* ida_segment.getseg +* ida_xref.xrefblk_t + +#### See also +* [list_segment_functions_using_idautils](#list_segment_functions_using_idautils) + +
+ +
+ +#### list_segment_functions_using_idautils +
+ List all functions (and xrefs) in segment + +
+ +#### Source code +core/list_segment_functions_using_idautils.py + +#### Category +core + +#### Description +List all the functions in the current segment, as well as +all the cross-references to them. + +Contrary to @list_segment_functions, this uses the somewhat +higher-level `idautils` module. + +#### Keywords +xrefs + +#### Uses +* ida_funcs.get_func_name +* ida_idaapi.BADADDR +* ida_kernwin.get_screen_ea +* ida_segment.getseg +* idautils.CodeRefsTo +* idautils.Functions + +#### See also +* [list_segment_functions](#list_segment_functions) + +
+ +
+ +#### list_stkvar_xrefs +
+ List all xrefs to a function stack variable + +
+ +#### Source code +core/list_stkvar_xrefs.py + +#### Category +core + +#### Description +Contrary to (in-memory) data & code xrefs, retrieving stack variables +xrefs requires a bit more work than just using ida_xref's first_to(), +next_to() (or higher level utilities such as idautils.XrefsTo) + +#### Shortcut +Ctrl+Shift+F7 + +#### Keywords +xrefs + +#### Uses +* ida_bytes.get_flags +* ida_bytes.is_stkvar +* ida_frame.calc_stkvar_struc_offset +* ida_frame.get_frame +* ida_funcs.get_func +* ida_ida.UA_MAXOP +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_DISASM +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.get_current_viewer +* ida_kernwin.get_highlight +* ida_kernwin.get_screen_ea +* ida_kernwin.register_action +* ida_struct.get_member_by_name +* ida_struct.get_struc +* ida_ua.decode_insn +* ida_ua.insn_t + +
+ +
+ +#### list_strings +
+ Retrieve the strings that are present in the IDB + +
+ +#### Source code +core/list_strings.py + +#### Category +core + +#### Description +This uses `idautils.Strings` to iterate over the string literals +that are present in the IDB. Contrary to @show_selected_strings, +this will not require that the "Strings" window is opened & available. + +#### Uses +* ida_nalt.STRTYPE_C +* ida_nalt.STRTYPE_C_16 +* idautils.Strings + +#### See also +* [show_selected_strings](#show_selected_strings) + +
+ +
+ +#### produce_c_file +
+ Decompile entire file + +
+ +#### Source code +core/produce_c_file.py + +#### Category +core + +#### Description +Automate IDA to perform auto-analysis on a file and, +once that is done, produce a .c file containing the +decompilation of all the functions in that file. + +Run like so: + + ida -A "-S...path/to/produce_c_file.py" + +where: + + * -A instructs IDA to run in non-interactive mode + * -S holds a path to the script to run (note this is a single token; + there is no space between '-S' and its path.) + +#### Uses +* ida_auto.auto_wait +* ida_hexrays.VDRUN_MAYSTOP +* ida_hexrays.VDRUN_NEWFILE +* ida_hexrays.VDRUN_SILENT +* ida_hexrays.decompile_many +* ida_loader.PATH_TYPE_IDB +* ida_loader.get_path +* ida_pro.qexit + +
+ +
+ +#### produce_lst_file +
+ Produce listing + +
+ +#### Source code +core/produce_lst_file.py + +#### Category +core + +#### Description +Automate IDA to perform auto-analysis on a file and, +once that is done, produce a .lst file with the disassembly. + +Run like so: + + ida -A "-S...path/to/produce_lst_file.py" + +where: + + * -A instructs IDA to run in non-interactive mode + * -S holds a path to the script to run (note this is a single token; + there is no space between '-S' and its path.) + +#### Uses +* ida_auto.auto_wait +* ida_fpro.qfile_t +* ida_ida.inf_get_max_ea +* ida_ida.inf_get_min_ea +* ida_loader.OFILE_LST +* ida_loader.PATH_TYPE_IDB +* ida_loader.gen_file +* ida_loader.get_path +* ida_pro.qexit + +
+ +
+ +#### register_timer +
+ Using timers for delayed execution + +
+ +#### Source code +core/register_timer.py + +#### Category +core + +#### Description +Register (possibly repeating) timers. + +#### Uses +* ida_kernwin.register_timer + +
+ +
+ +#### trigger_actions_programmatically +
+ Execute existing actions programmatically + +
+ +#### Source code +core/trigger_actions_programmatically.py + +#### Category +core + +#### Description +It's possible to invoke any action programmatically, by using +either of those two: + + * ida_kernwin.execute_ui_requests() + * ida_kernwin.process_ui_action() + +Ideally, this script should be run through the "File > Script file..." +menu, so as to keep focus on "IDA View-A" and have the +'ProcessUiActions' part work as intended. + +#### Keywords +actions + +#### Uses +* ida_kernwin.ask_yn +* ida_kernwin.execute_ui_requests +* ida_kernwin.msg +* ida_kernwin.process_ui_action + +
+ +
+ +## Category: debugging + +#### automatic_steps +
+ Programmatically drive a debugging session + +
+ +#### Source code +debugging/dbghooks/automatic_steps.py + +#### Category +debugging + +#### Description +Start a debugging session, step through the first five +instructions. Each instruction is disassembled after +execution. + +#### Keywords +DBG_Hooks + +#### Uses +* ida_dbg.DBG_Hooks +* ida_dbg.get_reg_val +* ida_dbg.request_exit_process +* ida_dbg.request_run_to +* ida_dbg.request_step_over +* ida_dbg.run_requests +* ida_ida.inf_get_start_ip +* ida_idaapi.BADADDR +* ida_lines.generate_disasm_line +* ida_lines.tag_remove + +
+ +
+ +#### dbg_trace +
+ Using the low-level tracing hook + +
+ +#### Source code +debugging/dbghooks/dbg_trace.py + +#### Category +debugging + +#### Description +This script demonstrates using the low-level tracing hook +(ida_dbg.DBG_Hooks.dbg_trace). It can be run like so: + + ida[t].exe -B -Sdbg_trace.py -Ltrace.log file.exe + +#### Keywords +DBG_Hooks + +#### Uses +* GENDSM_FORCE_CODE +* GENDSM_REMOVE_TAGS +* NN_call +* NN_callfi +* NN_callni +* generate_disasm_line +* ida_dbg.DBG_Hooks +* ida_dbg.ST_OVER_DEBUG_SEG +* ida_dbg.ST_OVER_LIB_FUNC +* ida_dbg.enable_step_trace +* ida_dbg.get_process_state +* ida_dbg.get_reg_val +* ida_dbg.get_step_trace_options +* ida_dbg.load_debugger +* ida_dbg.refresh_debugger_memory +* ida_dbg.request_continue_process +* ida_dbg.request_enable_step_trace +* ida_dbg.request_set_step_trace_options +* ida_dbg.run_requests +* ida_dbg.run_to +* ida_dbg.set_step_trace_options +* ida_dbg.wait_for_next_event +* ida_ida.f_ELF +* ida_ida.f_MACHO +* ida_ida.f_PE +* ida_ida.inf_get_filetype +* ida_ida.inf_get_max_ea +* ida_ida.inf_get_min_ea +* ida_ida.inf_get_start_ip +* ida_pro.qexit +* ida_ua.decode_insn +* ida_ua.insn_t +* idc.ARGV + +
+ +
+ +#### print_call_stack +
+ Print call stack (on Linux) + +
+ +#### Source code +debugging/misc/print_call_stack.py + +#### Category +debugging + +#### Description + Print the return addresses from the call stack at a breakpoint. + (and print also the module and the debug name from debugger) + +To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * put a breakpoint where you want to see the call stack + * select the 'linux debugger' (either local, or remote) + * start debugging + * Press Shift+C at the breakpoint + +#### Shortcut +Shift+C + +#### Uses +* ida_dbg.collect_stack_trace +* ida_dbg.get_current_thread +* ida_dbg.get_module_info +* ida_idd.call_stack_t +* ida_idd.modinfo_t +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.action_desc_t +* ida_kernwin.register_action +* ida_name.GNCN_NOCOLOR +* ida_name.GNCN_NOLABEL +* ida_name.GNCN_NOSEG +* ida_name.GNCN_PREFDBG +* ida_name.get_nice_colored_name + +
+ +
+ +#### print_registers +
+ Print all registers, for all threads + +
+ +#### Source code +debugging/misc/print_registers.py + +#### Category +debugging + +#### Description + Iterate over the list of threads in the program being + debugged, and dump all registers contents + +To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * put a breakpoint somewhere in the code + * select the 'linux debugger' (either local, or remote) + * start debugging + * Press Alt+Shift+C at the breakpoint + +#### Shortcut +Alt+Shift+C + +#### Uses +* ida_dbg.get_reg_vals +* ida_dbg.get_thread_qty +* ida_dbg.getn_thread +* ida_idd.get_dbg +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.action_desc_t +* ida_kernwin.register_action + +
+ +
+ +#### registers_context_menu +
+ Adding actions to the "registers" widget(s) + +
+ +#### Source code +debugging/misc/registers_context_menu.py + +#### Category +debugging + +#### Description +It's possible to add actions to the context menu of +pretty much all widgets in IDA. + +This example shows how to do just that for +registers-displaying widgets (e.g., "General registers") + +#### Keywords +ctxmenu UI_Hooks + +#### Uses +* ida_dbg.get_dbg_reg_info +* ida_dbg.get_reg_val +* ida_idd.register_info_t +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_CPUREGS +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.get_widget_type +* ida_kernwin.register_action +* ida_ua.dt_byte +* ida_ua.dt_dword +* ida_ua.dt_qword +* ida_ua.dt_word + +
+ +
+ +#### show_debug_names +
+ Retrieving & dumping debuggee symbols + +
+ +#### Source code +debugging/show_debug_names.py + +#### Category +debugging + +#### Description +Queries the debugger (possibly remotely) for the list of +symbols that the process being debugged, provides. + +#### Uses +* ida_dbg.get_process_state +* ida_dbg.is_debugger_on +* ida_ida.inf_get_max_ea +* ida_ida.inf_get_min_ea +* ida_name.get_debug_names + +
+ +
+ +#### simple_appcall_linux +
+ Executing code into the application being debugged (on Linux) + +
+ +#### Source code +debugging/appcall/simple_appcall_linux.py + +#### Category +debugging + +#### Description +Using the `ida_idd.Appcall` utility to execute code in +the process being debugged. + +This example will run the test program and stop wherever +the cursor currently is, and then perform an appcall to +execute the `ref4` and `ref8` functions. + +To use this example: + + * run `ida64` on test program `simple_appcall_linux64`, or + `ida` on test program `simple_appcall_linux32`, and wait for + auto-analysis to finish + * select the 'linux debugger' (either local, or remote) + * run this script + +Note: the real body of code is in `simple_appcall_common.py`. + +#### Imports +* simple_appcall_common + +#### Uses +* ida_dbg.DBG_Hooks +* ida_dbg.run_to +* ida_idaapi.BADADDR +* ida_idd.Appcall +* ida_idd.Appcall.byref +* ida_idd.Appcall.int64 +* ida_kernwin.get_screen_ea +* ida_name.get_name_ea +* ida_name.set_name +* ida_typeinf.apply_cdecl + +
+ +
+ +#### simple_appcall_win +
+ Executing code into the application being debugged (on Windows) + +
+ +#### Source code +debugging/appcall/simple_appcall_win.py + +#### Category +debugging + +#### Description +Using the `ida_idd.Appcall` utility to execute code in +the process being debugged. + +This example will run the test program and stop wherever +the cursor currently is, and then perform an appcall to +execute the `ref4` and `ref8` functions. + +To use this example: + + * run `ida64` on test program `simple_appcall_win64.exe`, or + `ida` on test program `simple_appcall_win32.exe`, and wait for + auto-analysis to finish + * select the 'windows debugger' (either local, or remote) + * run this script + +Note: the real body of code is in `simple_appcall_common.py`. + +#### Imports +* simple_appcall_common + +#### Uses +* ida_dbg.DBG_Hooks +* ida_dbg.run_to +* ida_ida.inf_is_64bit +* ida_idaapi.BADADDR +* ida_idd.Appcall +* ida_idd.Appcall.byref +* ida_idd.Appcall.int64 +* ida_kernwin.get_screen_ea +* ida_name.get_name_ea +* ida_name.set_name +* ida_typeinf.apply_cdecl + +
+ +
+ +## Category: disassembly + +#### colorize_disassembly +
+ Change background colours + +
+ +#### Source code +core/colorize_disassembly.py + +#### Category +disassembly + +#### Description +This illustrates the setting/retrieval of background colours +using the IDC wrappers + +In order to do so, we'll be assigning colors to specific ranges +(item, function, or segment). Those will be persisted in the +database. + +#### Keywords +coloring idc + +#### Uses +* idc.CIC_FUNC +* idc.CIC_ITEM +* idc.CIC_SEGM +* idc.get_color +* idc.here +* idc.set_color + +#### See also +* [colorize_disassembly_on_the_fly](#colorize_disassembly_on_the_fly) + +
+ +
+ +## Category: hexrays + +#### colorize_pseudocode_lines +
+ Interactively color certain pseudocode lines + +
+ +#### Source code +hexrays/colorize_pseudocode_lines.py + +#### Category +hexrays + +#### Description +Provides an action that can be used to dynamically alter the +lines background rendering for pseudocode listings (as opposed to +using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`) + +After running this script, pressing 'M' on a line in a +"Pseudocode-?" widget, will cause that line to be rendered +with a special background color. + +#### Shortcut +M + +#### Keywords +colors UI_Hooks + +#### Uses +* ida_hexrays.get_widget_vdui +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.CK_EXTRA11 +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.get_custom_viewer_location +* ida_kernwin.line_rendering_output_entry_t +* ida_kernwin.refresh_custom_viewer +* ida_kernwin.register_action +* ida_moves.lochist_entry_t + +
+ +
+ +#### curpos_details +
+ A focus on the 'curpos' hook, printing additional details about user input + +
+ +#### Source code +hexrays/curpos_details.py + +#### Category +hexrays + +#### Description +Shows how user input information can be retrieved during +processing of a notification triggered by that input + +#### Keywords +Hexrays_Hooks + +#### Uses +* ida_hexrays.Hexrays_Hooks +* ida_kernwin.get_user_input_event +* ida_kernwin.iek_key_press +* ida_kernwin.iek_key_release +* ida_kernwin.iek_mouse_button_press +* ida_kernwin.iek_mouse_button_release +* ida_kernwin.iek_mouse_wheel +* ida_kernwin.iek_shortcut +* ida_kernwin.input_event_t + +#### See also +* [vds_hooks](#vds_hooks) + +
+ +
+ +#### decompile_entry_points +
+ Automatic decompilation of functions + +
+ +#### Source code +hexrays/decompile_entry_points.py + +#### Category +hexrays + +#### Description +Attempts to load a decompiler plugin corresponding to the current +architecture (and address size) right after auto-analysis is performed, +and then tries to decompile the function at the first entrypoint. + +It is particularly suited for use with the '-S' flag, for example: +idat -Ldecompile.log -Sdecompile_entry_points.py -c file + +#### Uses +* ida_auto.auto_wait +* ida_entry.get_entry +* ida_entry.get_entry_ordinal +* ida_entry.get_entry_qty +* ida_hexrays.decompile +* ida_hexrays.init_hexrays_plugin +* ida_ida.inf_is_64bit +* ida_idp.PLFM_386 +* ida_idp.PLFM_ARM +* ida_idp.PLFM_MIPS +* ida_idp.PLFM_PPC +* ida_idp.ph.id +* ida_kernwin.cvar.batch +* ida_kernwin.msg +* ida_loader.load_plugin +* ida_pro.qexit +* idc.get_idb_path + +
+ +
+ +#### vds1 +
+ Decompile & print current function. + +
+ +#### Source code +hexrays/vds1.py + +#### Category +hexrays + +#### Description +Decompile & print current function. + +#### Uses +* ida_funcs.get_func +* ida_hexrays.decompile +* ida_hexrays.get_hexrays_version +* ida_hexrays.init_hexrays_plugin +* ida_kernwin.get_screen_ea +* ida_lines.tag_remove + +
+ +
+ +#### vds10 +
+ A custom microcode instruction optimization rule + +
+ +#### Source code +hexrays/vds10.py + +#### Category +hexrays + +#### Description +Installs a custom microcode instruction optimization rule, +to transform: + + call !DbgRaiseAssertionFailure .0 + +into + + call !DbgRaiseAssertionFailure .0 + +To see this plugin in action please use arm64_brk.i64 + +#### Keywords +plugin + +#### Uses +* ida_bytes.get_cmt +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.mop_str +* ida_hexrays.optinsn_t +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_typeinf.STI_PCCHAR +* ida_typeinf.tinfo_t.get_stock + +
+ +
+ +#### vds11 +
+ A custom microcode block optimization rule (resolve `goto` chains) + +
+ +#### Source code +hexrays/vds11.py + +#### Category +hexrays + +#### Description +Installs a custom microcode block optimization rule, +to transform: + + goto L1 + ... + L1: + goto L2 + +into + + goto L2 + +In other words we fix a goto target if it points to a chain of gotos. +This improves the decompiler output in some cases. + +#### Keywords +plugin + +#### Uses +* ida_hexrays.getf_reginsn +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.m_goto +* ida_hexrays.optblock_t +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t + +
+ +
+ +#### vds12 +
+ List instruction registers + +
+ +#### Source code +hexrays/vds12.py + +#### Category +hexrays + +#### Description +Shows a list of direct references to a register from the +current instruction. + +#### Uses +* ida_bytes.get_flags +* ida_bytes.is_code +* ida_funcs.get_func +* ida_hexrays.ACFL_GUESS +* ida_hexrays.DECOMP_NO_CACHE +* ida_hexrays.DECOMP_WARNINGS +* ida_hexrays.GCO_DEF +* ida_hexrays.GCO_USE +* ida_hexrays.GC_REGS_AND_STKVARS +* ida_hexrays.MERR_OK +* ida_hexrays.MMAT_PREOPTIMIZED +* ida_hexrays.MUST_ACCESS +* ida_hexrays.gco_info_t +* ida_hexrays.gen_microcode +* ida_hexrays.get_current_operand +* ida_hexrays.get_merror_desc +* ida_hexrays.hexrays_failure_t +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.mba_ranges_t +* ida_hexrays.mlist_t +* ida_hexrays.op_parent_info_t +* ida_hexrays.voff_t +* ida_kernwin.Choose +* ida_kernwin.get_screen_ea +* ida_kernwin.jumpto +* ida_kernwin.warning +* ida_lines.GENDSM_REMOVE_TAGS +* ida_lines.generate_disasm_line +* ida_pro.eavec_t + +
+ +
+ +#### vds13 +
+ Generates microcode for selection + +
+ +#### Source code +hexrays/vds13.py + +#### Category +hexrays + +#### Description +Generates microcode for selection and dumps it to the output window. + +#### Uses +* ida_bytes.get_flags +* ida_bytes.is_code +* ida_hexrays.DECOMP_WARNINGS +* ida_hexrays.gen_microcode +* ida_hexrays.hexrays_failure_t +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.mba_ranges_t +* ida_hexrays.vd_printer_t +* ida_kernwin.read_range_selection +* ida_kernwin.warning +* ida_range.range_t + +
+ +
+ +#### vds17 +
+ Using the "Select offsets" widget + +
+ +#### Source code +hexrays/vds17.py + +#### Category +hexrays + +#### Description +Registers an action opens the "Select offsets" widget +(select_udt_by_offset() call). + +This effectively repeats the functionality already available +through Alt+Y. + +Place cursor on the union field and press Shift+T + +#### Shortcut +Shift+T + +#### Keywords +plugin + +#### Uses +* ida_hexrays.USE_KEYBOARD +* ida_hexrays.cot_add +* ida_hexrays.cot_cast +* ida_hexrays.cot_memptr +* ida_hexrays.cot_memref +* ida_hexrays.cot_num +* ida_hexrays.cot_ref +* ida_hexrays.get_hexrays_version +* ida_hexrays.get_widget_vdui +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.select_udt_by_offset +* ida_hexrays.ui_stroff_applicator_t +* ida_hexrays.ui_stroff_ops_t +* ida_idaapi.BADADDR +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.get_custom_viewer_curline +* ida_kernwin.msg +* ida_kernwin.register_action +* ida_kernwin.warning +* ida_lines.tag_remove +* ida_typeinf.PRTYPE_1LINE +* ida_typeinf.print_tinfo +* ida_typeinf.remove_pointer + +
+ +
+ +#### vds19 +
+ A custom microcode instruction optimization rule (`x | ~x => -1`) + +
+ +#### Source code +hexrays/vds19.py + +#### Category +hexrays + +#### Description +Installs a custom microcode instruction optimization rule, +to transform: + + x | ~x + +into + + -1 + +To see this plugin in action please use be_ornot_be.idb + +#### Keywords +plugin + +#### Uses +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.m_bnot +* ida_hexrays.m_mov +* ida_hexrays.m_or +* ida_hexrays.minsn_visitor_t +* ida_hexrays.mop_t +* ida_hexrays.optinsn_t +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t + +
+ +
+ +#### vds21 +
+ Dynamically provide a custom call type + +
+ +#### Source code +hexrays/vds21.py + +#### Category +hexrays + +#### Description +This plugin can greatly improve decompilation of indirect calls: + + call [eax+4] + +For them, the decompiler has to guess the prototype of the called function. +This has to be done at a very early phase of decompilation because +the function prototype influences the data flow analysis. On the other +hand, we do not have global data flow analysis results yet because +we haven't analyzed all calls in the function. It is a chicked-and-egg +problem. + +The decompiler uses various techniques to guess the called function +prototype. While it works very well, it may fail in some cases. + +To fix, the user can specify the call prototype manually, using +"Edit, Operand types, Set operand type" at the call instruction. + +This plugin illustrates another approach to the problem: +if you happen to be able to calculate the call prototypes dynamically, +this is how to inform the decompiler about them. + +#### Keywords +Hexrays_Hooks plugin + +#### Uses +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.m_call +* ida_hexrays.mcallinfo_t +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_kernwin.msg +* ida_kernwin.warning +* ida_nalt.get_op_tinfo +* ida_typeinf.BT_INT +* ida_typeinf.CM_CC_STDCALL +* ida_typeinf.CM_N32_F48 +* ida_typeinf.parse_decl +* ida_typeinf.tinfo_t + +
+ +
+ +#### vds3 +
+ Invert if/else blocks + +
+ +#### Source code +hexrays/vds3.py + +#### Category +hexrays + +#### Description +Registers an action that can be used to invert the `if` +and `else` blocks of a `ida_hexrays.cif_t`. + +For example, a statement like + + if ( cond ) + { + statements1; + } + else + { + statements2; + } + +will be displayed as + + if ( !cond ) + { + statements2; + } + else + { + statements1; + } + +The modifications are persistent: the user can quit & restart +IDA, and the changes will be present. + +#### Shortcut +I + +#### Keywords +ctxmenu Hexrays_Hooks IDP_Hooks plugin + +#### Uses +* ida_hexrays.CMAT_FINAL +* ida_hexrays.CV_FAST +* ida_hexrays.CV_INSNS +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.ITP_ELSE +* ida_hexrays.USE_KEYBOARD +* ida_hexrays.VDI_TAIL +* ida_hexrays.cexpr_t +* ida_hexrays.cit_if +* ida_hexrays.ctree_visitor_t +* ida_hexrays.get_widget_vdui +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.lnot +* ida_hexrays.qswap +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_idp.IDP_Hooks +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.register_action +* ida_netnode.netnode + +#### Author +EiNSTeiN_ (einstein@g3nius.org) + +
+ +
+ +#### vds4 +
+ Dump user-defined information + +
+ +#### Source code +hexrays/vds4.py + +#### Category +hexrays + +#### Description +Prints user-defined information to the "Output" window. +Namely: + + * user defined label names + * user defined indented comments + * user defined number formats + * user defined local variable names, types, comments + +This script loads information from the database without decompiling anything. + +#### Uses +* ida_bytes.get_radix +* ida_funcs.get_func +* ida_hexrays.CIT_COLLAPSED +* ida_hexrays.NF_NEGATE +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.lvar_uservec_t +* ida_hexrays.restore_user_cmts +* ida_hexrays.restore_user_iflags +* ida_hexrays.restore_user_labels +* ida_hexrays.restore_user_lvar_settings +* ida_hexrays.restore_user_numforms +* ida_hexrays.user_cmts_free +* ida_hexrays.user_iflags_free +* ida_hexrays.user_labels_free +* ida_hexrays.user_numforms_free +* ida_kernwin.get_screen_ea + +#### Author +EiNSTeiN_ (einstein@g3nius.org) + +
+ +
+ +#### vds5 +
+ Show ctree graph + +
+ +#### Source code +hexrays/vds5.py + +#### Category +hexrays + +#### Description +Registers an action that can be used to show the graph of the ctree. +The current item will be highlighted in the graph. + +The command shortcut is `Ctrl+Shift+G`, and is also added +to the context menu. + +To display the graph, we produce a .gdl file, and +request that ida displays that using `ida_gdl.display_gdl`. + +#### Shortcut +Ctrl+Shift+G + +#### Keywords +ctxmenu Hexrays_Hooks plugin + +#### Uses +* ida_gdl.display_gdl +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.USE_KEYBOARD +* ida_hexrays.cit_asm +* ida_hexrays.cit_goto +* ida_hexrays.cot_helper +* ida_hexrays.cot_memptr +* ida_hexrays.cot_memref +* ida_hexrays.cot_num +* ida_hexrays.cot_obj +* ida_hexrays.cot_ptr +* ida_hexrays.cot_str +* ida_hexrays.cot_var +* ida_hexrays.ctree_parentee_t +* ida_hexrays.get_ctype_name +* ida_hexrays.get_widget_vdui +* ida_hexrays.init_hexrays_plugin +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.register_action +* ida_kernwin.warning +* ida_lines.tag_remove +* ida_pro.str2user + +
+ +
+ +#### vds6 +
+ Superficially modify the decompilation output + +
+ +#### Source code +hexrays/vds6.py + +#### Category +hexrays + +#### Description +Modifies the decompilation output in a superficial manner, +by removing some white spaces + +Note: this is rather crude, not quite "pythonic" code. + +#### Keywords +Hexrays_Hooks plugin + +#### Uses +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.init_hexrays_plugin +* ida_idaapi.PLUGIN_HIDE +* ida_idaapi.PLUGIN_KEEP +* ida_idaapi.plugin_t +* ida_lines.tag_advance +* ida_lines.tag_skipcodes + +
+ +
+ +#### vds7 +
+ Iterate a cblock_t object + +
+ +#### Source code +hexrays/vds7.py + +#### Category +hexrays + +#### Description +Using a `ida_hexrays.ctree_visitor_t`, search for +`ida_hexrays.cit_block` instances and dump them. + +#### Keywords +Hexrays_Hooks + +#### Uses +* ida_hexrays.CMAT_BUILT +* ida_hexrays.CV_FAST +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.cit_block +* ida_hexrays.ctree_visitor_t +* ida_hexrays.init_hexrays_plugin + +#### Author +EiNSTeiN_ (einstein@g3nius.org) + +
+ +
+ +#### vds8 +
+ Using `ida_hexrays.udc_filter_t` + +
+ +#### Source code +hexrays/vds8.py + +#### Category +hexrays + +#### Description +Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile +`svc 0x900001` and `svc 0x9000F8` as function calls to +`svc_exit()` and `svc_exit_group()` respectively. + +You will need to have an ARM + Linux IDB for this script to be usable + +In addition to having a shortcut, the action will be present +in the context menu. + +#### Shortcut +Ctrl+Shift+U + +#### Keywords +ctxmenu UI_Hooks + +#### Uses +* ida_allins.ARM_svc +* ida_hexrays.get_widget_vdui +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.install_microcode_filter +* ida_hexrays.udc_filter_t +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.UI_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.get_widget_type +* ida_kernwin.register_action + +
+ +
+ +#### vds_create_hint +
+ Decompiler hints + +
+ +#### Source code +hexrays/vds_create_hint.py + +#### Category +hexrays + +#### Description +Handle `ida_hexrays.hxe_create_hint` notification using hooks, +to return our own. + +If the object under the cursor is: + +* a function call, prefix the original decompiler hint with `==> ` +* a local variable declaration, replace the hint with our own in + the form of `!{varname}` (where `{varname}` is replaced with the + variable name) +* an `if` statement, replace the hint with our own, saying "condition" + +#### Keywords +Hexrays_Hooks + +#### Uses +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.USE_MOUSE +* ida_hexrays.VDI_EXPR +* ida_hexrays.VDI_LVAR +* ida_hexrays.cit_if +* ida_hexrays.cot_call + +
+ +
+ +#### vds_hooks +
+ Various decompiler hooks + +
+ +#### Source code +hexrays/vds_hooks.py + +#### Category +hexrays + +#### Description +Shows how to hook to many notifications sent by the decompiler. + +This plugin doesn't really accomplish anything: it just prints +the parameters. + +The list of notifications handled below should be exhaustive, +and is there to hint at what is possible to accomplish by +subclassing `ida_hexrays.Hexrays_Hooks` + +#### Keywords +Hexrays_Hooks + +#### Uses +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.cfunc_t +* ida_hexrays.lvar_t +* ida_hexrays.vdui_t + +#### See also +* [curpos_details](#curpos_details) + +
+ +
+ +#### vds_modify_user_lvars +
+ Modifying local variables + +
+ +#### Source code +hexrays/vds_modify_user_lvars.py + +#### Category +hexrays + +#### Description +Use a `ida_hexrays.user_lvar_modifier_t` to modify names, +comments and/or types of local variables. + +#### Uses +* ida_hexrays.modify_user_lvars +* ida_hexrays.user_lvar_modifier_t +* ida_typeinf.parse_decl +* ida_typeinf.tinfo_t +* idc.here + +
+ +
+ +#### vds_xrefs +
+ Show decompiler xrefs + +
+ +#### Source code +hexrays/vds_xrefs.py + +#### Category +hexrays + +#### Description +Show decompiler-style Xref when the `Ctrl+X` key is +pressed in the Decompiler window. + +* supports any global name: functions, strings, integers, ... +* supports structure member. + +#### Shortcut +Ctrl+X + +#### Keywords +ctxmenu Hexrays_Hooks + +#### Uses +* ida_funcs.get_func_name +* ida_hexrays.Hexrays_Hooks +* ida_hexrays.USE_KEYBOARD +* ida_hexrays.VDI_EXPR +* ida_hexrays.VDI_FUNC +* ida_hexrays.cexpr_t +* ida_hexrays.cfunc_t +* ida_hexrays.cinsn_t +* ida_hexrays.decompile +* ida_hexrays.get_widget_vdui +* ida_hexrays.init_hexrays_plugin +* ida_hexrays.open_pseudocode +* ida_hexrays.qstring_printer_t +* ida_idaapi.BADADDR +* ida_kernwin.AST_DISABLE +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.PluginForm +* ida_kernwin.PluginForm.Show +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.register_action +* ida_struct.get_member +* ida_struct.get_struc +* ida_struct.get_struc_id +* ida_typeinf.PRTYPE_1LINE +* ida_typeinf.print_tinfo +* idautils.Functions +* idautils.XrefsTo + +#### Author +EiNSTeiN_ (einstein@g3nius.org) + +
+ +
+ +## Category: idbhooks + +#### log_idb_events +
+ Logging IDB events + +
+ +#### Source code +idbhooks/log_idb_events.py + +#### Category +idbhooks + +#### Description +These hooks will be notified about IDB events, and +dump their information to the "Output" window + +#### Keywords +IDB_Hooks + +#### Uses +* ida_idp.IDB_Hooks + +
+ +
+ +#### operand_changed +
+ Notify the user when an instruction operand changes + +
+ +#### Source code +idbhooks/operand_changed.py + +#### Category +idbhooks + +#### Description +Show notifications whenever the user changes +an instruction's operand, or a data item. + +#### Keywords +IDB_Hooks + +#### Uses +* ida_bytes.ALOPT_IGNCLT +* ida_bytes.ALOPT_IGNHEADS +* ida_bytes.get_flags +* ida_bytes.get_max_strlit_length +* ida_bytes.get_opinfo +* ida_bytes.get_strlit_contents +* ida_bytes.is_custfmt +* ida_bytes.is_custom +* ida_bytes.is_enum +* ida_bytes.is_off +* ida_bytes.is_strlit +* ida_bytes.is_stroff +* ida_bytes.is_struct +* ida_enum.get_enum_name +* ida_idp.IDB_Hooks +* ida_nalt.STRENC_DEFAULT +* ida_nalt.get_default_encoding_idx +* ida_nalt.get_encoding_name +* ida_nalt.get_str_encoding_idx +* ida_nalt.get_strtype_bpu +* ida_nalt.opinfo_t +* ida_struct.get_struc_name + +
+ +
+ +#### replay_prototypes_changes +
+ Record and replay changes in function prototypes + +
+ +#### Source code +idbhooks/replay_prototypes_changes.py + +#### Category +idbhooks + +#### Description +This is a sample script, that will record (in memory) all changes in +functions prototypes, in order to re-apply them later. + +To use this script: + - open an IDB (say, "test.idb") + - modify some functions prototypes (e.g., by triggering the 'Y' + shortcut when the cursor is placed on the first address of a + function) + - reload that IDB, *without saving it first* + - call rpc.replay(), to re-apply the modifications. + +Note: 'ti_changed' is also called for changes to the function +frames, but we'll only record function prototypes changes. + +#### Keywords +IDB_Hooks + +#### Uses +* ida_funcs.get_func +* ida_idp.IDB_Hooks +* ida_typeinf.PRTYPE_1LINE +* ida_typeinf.TINFO_DEFINITE +* ida_typeinf.apply_tinfo +* ida_typeinf.get_idati +* ida_typeinf.tinfo_t + +
+ +
+ +## Category: idphooks + +#### ana_emu_out +
+ Override some parts of the processor module + +
+ +#### Source code +idphooks/ana_emu_out.py + +#### Category +idphooks + +#### Description +Implements disassembly of BUG_INSTR used in Linux kernel +BUG() macro, which is architecturally undefined and is not +disassembled by IDA's ARM module + +See Linux/arch/arm/include/asm/bug.h for more info + +#### Keywords +IDP_Hooks + +#### Uses +* ida_bytes.get_wide_dword +* ida_bytes.get_wide_word +* ida_idp.CUSTOM_INSN_ITYPE +* ida_idp.IDP_Hooks +* ida_idp.PLFM_ARM +* ida_idp.ph.id +* ida_idp.str2reg +* ida_segregs.get_sreg + +
+ +
+ +#### assemble +
+ An `ida_idp.IDP_Hooks.assembly` implementation + +
+ +#### Source code +idphooks/assemble.py + +#### Category +idphooks + +#### Description +We add support for assembling the following pseudo instructions: + +* "zero eax" -> xor eax, eax +* "nothing" -> nop + +#### Keywords +IDP_Hooks + +#### Uses +* ida_idp.IDP_Hooks +* idautils.DecodeInstruction + +
+ +
+ +## Category: merge + +#### py_mex1 +
+ Add merge functionality to a simple plugin, example 1 + +
+ +#### Source code +merge/py_mex1.py + +#### Category +merge + +#### Description +This is a primitive plugin which asks user for some info and saves it for +some addresses. + +We will add a merge functionality to plugin. + +An IDA plugin may have two kinds of data with permanent storage: + 1. Data common for entire database (e.g. the options). + To describe them we will use the idbattr_info_t type. + 2. Data specific to a particular address. + To describe them we will use the merge_node_info_t type. + +Also, see SDK/plugins/mex1 example + +#### Keywords +IDP_Hooks plugin + +#### Uses +* ida_funcs.get_func +* ida_ida.IDI_ALTVAL +* ida_ida.IDI_CSTR +* ida_ida.IDI_SCALAR +* ida_ida.IDI_SUPVAL +* ida_ida.idbattr_info_t +* ida_idaapi.BADADDR +* ida_idaapi.PLUGIN_MOD +* ida_idaapi.PLUGIN_MULTI +* ida_idaapi.plugin_t +* ida_idaapi.plugmod_t +* ida_idp.IDP_Hooks +* ida_kernwin.Form +* ida_kernwin.Form.ChkGroupControl +* ida_kernwin.Form.StringInput +* ida_kernwin.get_screen_ea +* ida_merge.MERGE_KIND_END +* ida_merge.MERGE_KIND_NONE +* ida_merge.NDS_IS_STR +* ida_merge.NDS_MAP_IDX +* ida_merge.merge_handler_params_t +* ida_merge.merge_node_info_t +* ida_merge.moddata_diff_helper_t +* ida_mergemod.create_std_modmerge_handlers +* ida_netnode.BADNODE +* ida_netnode.SIZEOF_nodeidx_t +* ida_netnode.atag +* ida_netnode.netnode +* ida_netnode.stag + +
+ +
+ +#### py_mex3 +
+ This example uses the mex1 example and improves the user-interface for it. + +
+ +#### Source code +merge/py_mex3.py + +#### Category +merge + +#### Description +IDA Teams uses a chooser to display the merge conflicts. +To fill the chooser columns IDA Teams uses the following methods from diff_source_t type: + * print_diffpos_name() + * print_diffpos_details() +and UI hints from merge_handler_params_t type: + * ui_has_details() + * ui_complex_details() + * ui_complex_name() + +In general, chooser columns are filled as following: + columns.clear() + NAME = print_diffpos_name() + if ui_complex_name() + then + columns.add(split NAME by ui_split_char()) + else + columns[0] = NAME + if not ui_complex_details() + then + columns.add(print_diffpos_details()) + +Also, see SDK/plugins/mex3 example + +#### Keywords +IDP_Hooks plugin + +#### Uses +* ida_funcs.get_func +* ida_ida.IDI_ALTVAL +* ida_ida.IDI_CSTR +* ida_ida.IDI_SCALAR +* ida_ida.IDI_SUPVAL +* ida_ida.idbattr_info_t +* ida_idaapi.BADADDR +* ida_idaapi.PLUGIN_MOD +* ida_idaapi.PLUGIN_MULTI +* ida_idaapi.plugin_t +* ida_idaapi.plugmod_t +* ida_idp.IDP_Hooks +* ida_kernwin.Form +* ida_kernwin.Form.ChkGroupControl +* ida_kernwin.Form.StringInput +* ida_kernwin.get_screen_ea +* ida_merge.MERGE_KIND_END +* ida_merge.MERGE_KIND_NONE +* ida_merge.MH_UI_COLONNAME +* ida_merge.MH_UI_COMMANAME +* ida_merge.MH_UI_NODETAILS +* ida_merge.NDS_IS_STR +* ida_merge.NDS_MAP_IDX +* ida_merge.create_nodeval_merge_handlers +* ida_merge.get_ea_diffpos_name +* ida_merge.merge_handler_params_t +* ida_merge.merge_node_helper_t +* ida_merge.merge_node_info_t +* ida_merge.moddata_diff_helper_t +* ida_mergemod.create_std_modmerge_handlers +* ida_nalt.node2ea +* ida_netnode.BADNODE +* ida_netnode.SIZEOF_nodeidx_t +* ida_netnode.atag +* ida_netnode.netnode +* ida_netnode.stag + +
+ +
+ +## Category: pyqt + +#### inject_command +
+ Injecting commands in the "Output" window + +
+ +#### Source code +pyqt/inject_command.py + +#### Category +pyqt + +#### Description +This example illustrates how one can execute commands in the +"Output" window, from their own widgets. + +A few notes: + +* the original, underlying `cli:Execute` action, that has to be + triggered for the code present in the input field to execute + and be placed in the history, requires that the input field + has focus (otherwise it simply won't do anything.) +* this, in turn, forces us to do "delayed" execution of that action, + hence the need for a `QTimer` +* the IDA/SWiG 'TWidget' type that we retrieve through + `ida_kernwin.find_widget`, is not the same type as a + `QtWidgets.QWidget`. We therefore need to convert it using + `ida_kernwin.PluginForm.TWidgetToPyQtWidget` + +#### Uses +* ida_kernwin.PluginForm.TWidgetToPyQtWidget +* ida_kernwin.disabled_script_timeout_t +* ida_kernwin.find_widget +* ida_kernwin.process_ui_action + +
+ +
+ +#### paint_over_navbar +
+ Custom painting on top of the navigation band + +
+ +#### Source code +pyqt/paint_over_navbar.py + +#### Category +pyqt + +#### Description +Using an "event filter", we'll intercept paint events +targeted at the navigation band widget, let it paint itself, +and then add our own markers on top. + +#### Uses +* ida_kernwin.PluginForm.FormToPyQtWidget +* ida_kernwin.get_navband_pixel +* ida_kernwin.open_navband_window +* ida_segment.get_segm_qty +* ida_segment.getnseg +* idc.here + +
+ +
+ +#### populate_pluginform_with_pyqt_widgets +
+ Adding PyQt5 widgets into an `ida_kernwin.PluginForm` + +
+ +#### Source code +pyqt/populate_pluginform_with_pyqt_widgets.py + +#### Category +pyqt + +#### Description +Using `ida_kernwin.PluginForm.FormToPyQtWidget`, this script +converts IDA's own dockable widget into a type that is +recognized by PyQt5, which then enables populating it with +regular Qt widgets. + +#### Uses +* ida_kernwin.PluginForm + +
+ +
+ +## Category: uihooks + +#### func_chooser_coloring +
+ Using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults + +
+ +#### Source code +uihooks/func_chooser_coloring.py + +#### Category +uihooks + +#### Description +Color the function in the Function window according to its size. +The larger the function, the darker the color. + +#### Keywords +UI_Hooks + +#### Uses +* ida_funcs.get_func +* ida_kernwin.UI_Hooks +* ida_kernwin.enable_chooser_item_attrs + +
+ +
+ +#### lines_rendering +
+ Dynamically colorize lines backgrounds (or parts of them) + +
+ +#### Source code +uihooks/lines_rendering.py + +#### Category +uihooks + +#### Description +Shows how one can dynamically alter the lines background +rendering (as opposed to, say, using ida_nalt.set_item_color()), +and also shows how that rendering can be limited to just a few +glyphs, not the whole line. + +#### Keywords +UI_Hooks + +#### Uses +* ida_bytes.next_head +* ida_idaapi.BADADDR +* ida_kernwin.CK_EXTRA1 +* ida_kernwin.CK_EXTRA10 +* ida_kernwin.CK_EXTRA11 +* ida_kernwin.CK_EXTRA12 +* ida_kernwin.CK_EXTRA13 +* ida_kernwin.CK_EXTRA14 +* ida_kernwin.CK_EXTRA15 +* ida_kernwin.CK_EXTRA16 +* ida_kernwin.CK_EXTRA2 +* ida_kernwin.CK_EXTRA3 +* ida_kernwin.CK_EXTRA4 +* ida_kernwin.CK_EXTRA5 +* ida_kernwin.CK_EXTRA6 +* ida_kernwin.CK_EXTRA7 +* ida_kernwin.CK_EXTRA8 +* ida_kernwin.CK_EXTRA9 +* ida_kernwin.CK_TRACE +* ida_kernwin.CK_TRACE_OVL +* ida_kernwin.LROEF_CPS_RANGE +* ida_kernwin.UI_Hooks +* ida_kernwin.get_screen_ea +* ida_kernwin.line_rendering_output_entry_t +* ida_kernwin.refresh_idaview_anyway + +
+ +
+ +#### log_misc_events +
+ Being notified, and logging a few UI events + +
+ +#### Source code +uihooks/log_misc_events.py + +#### Category +uihooks + +#### Description +Hooks to be notified about certain UI events, and +dump their information to the "Output" window + +#### Keywords +UI_Hooks + +#### Uses +* ida_kernwin.UI_Hooks + +
+ +
+ +#### prevent_jump +
+ Taking precedence over actions + +
+ +#### Source code +uihooks/prevent_jump.py + +#### Category +uihooks + +#### Description +Using `ida_kernwin.UI_Hooks.preprocess_action`, it is possible +to respond to a command instead of the action that would +otherwise do it. + +#### Keywords +UI_Hooks + +#### Uses +* ida_kernwin.UI_Hooks + +
+ +
+ +## Category: widgets + +#### add_menus +
+ Adding custom menus to IDA + +
+ +#### Source code +widgets/misc/add_menus.py + +#### Category +widgets + +#### Description +It is possible to add custom menus to IDA, either at the +toplevel (i.e., into the menubar), or as submenus of existing +menus. + +Notes: + + * the same action can be present in more than 1 menu + * this example does not deal with context menus + +#### Keywords +actions + +#### Uses +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.SETMENU_INS +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_menu +* ida_kernwin.create_menu +* ida_kernwin.register_action + +
+ +
+ +#### askusingform +
+ Non-trivial uses of the `ida_kernwin.Form` helper class + +
+ +#### Source code +widgets/forms/askusingform.py + +#### Category +widgets + +#### Description +How to query for complex user input, using IDA's built-in forms. + +Note: while this example produces full-fledged forms for complex input, +simpler types of inputs might can be retrieved by using +`ida_kernwin.ask_str` and similar functions. + +#### Keywords +forms + +#### Uses +* ida_kernwin.Choose +* ida_kernwin.Choose.CH_MULTI +* ida_kernwin.Form +* ida_kernwin.PluginForm.FORM_TAB +* ida_kernwin.ask_str + +
+ +
+ +#### choose +
+ A widget showing data in a tabular fashion + +
+ +#### Source code +widgets/tabular_views/custom/choose.py + +#### Category +widgets + +#### Description +Shows how to subclass the ida_kernwin.Choose class to +show data organized in a simple table. +In addition, registers a couple actions that can be applied to it. + +#### Keywords +actions chooser ctxmenu + +#### Uses +* Choose +* Choose.ALL_CHANGED +* Choose.CH_CAN_DEL +* Choose.CH_CAN_EDIT +* Choose.CH_CAN_INS +* Choose.CH_CAN_REFRESH +* Choose.CH_RESTORE +* Choose.NOTHING_CHANGED +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.is_chooser_widget +* ida_kernwin.register_action +* ida_kernwin.unregister_action + +#### See also +* [choose_multi](#choose_multi) +* [chooser_with_folders](#chooser_with_folders) + +
+ +
+ +#### choose_multi +
+ A widget showing data in a tabular fashion, providing multiple selection + +
+ +#### Source code +widgets/tabular_views/custom/choose_multi.py + +#### Category +widgets + +#### Description +Similar to choose, but with multiple selection + +#### Keywords +actions chooser + +#### Uses +* Choose +* Choose.ALL_CHANGED +* Choose.CHCOL_HEX +* Choose.CH_MULTI +* Choose.NOTHING_CHANGED + +#### See also +* [choose](#choose) +* [chooser_with_folders](#chooser_with_folders) + +
+ +
+ +#### chooser_with_folders +
+ A widget that can show tabular data either as a simple table, or with a tree-like structure. + +
+ +#### Source code +widgets/tabular_views/custom/chooser_with_folders.py + +#### Category +widgets + +#### Description +By adding the necessary bits to a ida_kernwin.Choose subclass, +IDA can show the otherwise tabular data, in a tree-like fashion. + +The important bits to enable this are: + + * ida_dirtree.dirspec_t (and my_dirspec_t) + * ida_kernwin.CH_HAS_DIRTREE + * ida_kernwin.Choose.OnGetDirTree + * ida_kernwin.Choose.OnIndexToInode + +#### Keywords +actions chooser folders + +#### Uses +* ida_dirtree.DTE_OK +* ida_dirtree.direntry_t +* ida_dirtree.direntry_t.BADIDX +* ida_dirtree.dirspec_t +* ida_dirtree.dirtree_t +* ida_dirtree.dirtree_t.isdir +* ida_kernwin.CH_CAN_DEL +* ida_kernwin.CH_CAN_EDIT +* ida_kernwin.CH_CAN_INS +* ida_kernwin.CH_HAS_DIRTREE +* ida_kernwin.CH_MULTI +* ida_kernwin.CH_NOIDB +* ida_kernwin.Choose +* ida_kernwin.Choose.ALL_CHANGED +* ida_kernwin.Choose.CHCOL_DRAGHINT +* ida_kernwin.Choose.CHCOL_INODENAME +* ida_kernwin.Choose.CHCOL_PLAIN +* ida_kernwin.ask_str +* ida_netnode.BADNODE +* ida_netnode.netnode + +#### See also +* [choose](#choose) +* [choose_multi](#choose_multi) + +
+ +
+ +#### custom_graph_with_actions +
+ Drawing custom graphs + +
+ +#### Source code +widgets/graphs/custom_graph_with_actions.py + +#### Category +widgets + +#### Description +Showing custom graphs, using `ida_graph.GraphViewer`. In addition, +show how to write actions that can be performed on those. + +#### Keywords +actions graph View_Hooks + +#### Uses +* ida_funcs.get_func +* ida_funcs.get_func_name +* ida_graph.GraphViewer +* ida_graph.get_graph_viewer +* ida_graph.screen_graph_selection_t +* ida_graph.viewer_get_selection +* ida_idp.is_call_insn +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.View_Hooks +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_dynamic_action_to_popup +* ida_kernwin.get_screen_ea +* ida_ua.decode_insn +* ida_ua.insn_t +* ida_xref.XREF_FAR +* ida_xref.xrefblk_t + +
+ +
+ +#### custom_viewer +
+ Create custom listings in IDA + +
+ +#### Source code +widgets/listings/custom_viewer.py + +#### Category +widgets + +#### Description +How to create simple listings, that will share many of the features +as the built-in IDA widgets (highlighting, copy & paste, +notifications, ...) + +In addition, creates actions that will be bound to the +freshly-created widget (using `ida_kernwin.attach_action_to_popup`.) + +#### Keywords +actions ctxmenu listing + +#### Uses +* ida_kernwin.AST_ENABLE_ALWAYS +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.ask_long +* ida_kernwin.ask_str +* ida_kernwin.attach_action_to_popup +* ida_kernwin.register_action +* ida_kernwin.simplecustviewer_t +* ida_kernwin.simplecustviewer_t.Create +* ida_kernwin.simplecustviewer_t.Show +* ida_kernwin.unregister_action +* ida_lines.COLOR_DEFAULT +* ida_lines.COLOR_DNAME +* ida_lines.COLSTR +* ida_lines.SCOLOR_PREFIX +* ida_lines.SCOLOR_VOIDOP + +
+ +
+ +#### func_chooser +
+ An alternative view over the list of functions + +
+ +#### Source code +widgets/tabular_views/custom/func_chooser.py + +#### Category +widgets + +#### Description +Partially re-implements the "Functions" widget present in +IDA, with a custom widget. + +#### Keywords +chooser functions + +#### Uses +* ida_funcs.get_func_name +* ida_kernwin.Choose +* ida_kernwin.Choose.ALL_CHANGED +* ida_kernwin.Choose.CHCOL_FNAME +* ida_kernwin.Choose.CHCOL_HEX +* ida_kernwin.Choose.CHCOL_PLAIN +* idautils.Functions +* idc.del_func + +#### See also +* [choose](#choose) +* [choose_multi](#choose_multi) +* [chooser_with_folders](#chooser_with_folders) + +
+ +
+ +#### jump_next_comment +
+ Implement a "jump to next comment" action within IDA's disassembly view. + +
+ +#### Source code +widgets/listings/jump_next_comment.py + +#### Category +widgets + +#### Description +We want our action not only to find the next line containing a comment, +but to also place the cursor at the right horizontal position. + +To find that position, we will have to inspect the text that IDA +generates, looking for the start of a comment. +However, we won't be looking for a comment "prefix" (e.g., "; "), +as that would be too fragile. + +Instead, we will look for special "tags" that IDA injects into textual +lines, and that bear semantic information. + +Those tags are primarily used for rendering (i.e., switching colors), +but can also be very handy for spotting tokens of interest (registers, +addresses, comments, prefixes, instruction mnemonics, ...) + +#### Shortcut +Ctrl+Alt+C + +#### Keywords +actions idaview + +#### Uses +* ida_bytes.next_head +* ida_idaapi.BADADDR +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_DISASM +* ida_kernwin.CVNF_LAZY +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.custom_viewer_jump +* ida_kernwin.get_custom_viewer_location +* ida_kernwin.place_t_as_idaplace_t +* ida_kernwin.register_action +* ida_kernwin.unregister_action +* ida_lines.SCOLOR_AUTOCMT +* ida_lines.SCOLOR_ON +* ida_lines.SCOLOR_REGCMT +* ida_lines.SCOLOR_RPTCMT +* ida_lines.generate_disassembly +* ida_lines.tag_strlen +* ida_moves.lochist_entry_t + +#### See also +* [save_and_restore_listing_pos](#save_and_restore_listing_pos) + +
+ +
+ +#### lazy_loaded_chooser +
+ + +
+ +#### Source code +widgets/tabular_views/custom/lazy_loaded_chooser.py + +#### Category +widgets + +#### Description + + +
+ +
+ +#### save_and_restore_listing_pos +
+ Save, and then restore, positions in a listing + +
+ +#### Source code +widgets/listings/save_and_restore_listing_pos.py + +#### Category +widgets + +#### Description +Shows how it is possible re-implement IDA's bookmark capability, +using 2 custom actions: one action saves the current location, +and the other restores it. + +Note that, contrary to actual bookmarks, this example: + + * remembers only 1 saved position + * doesn't save that position in the IDB (and therefore cannot + be restored if IDA is closed & reopened.) + +#### Shortcuts +Ctrl+Shift+O Ctrl+Shift+S + +#### Keywords +actions listing + +#### Uses +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_CUSTVIEW +* ida_kernwin.BWN_DISASM +* ida_kernwin.BWN_ENUMS +* ida_kernwin.BWN_PSEUDOCODE +* ida_kernwin.BWN_STRUCTS +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.custom_viewer_jump +* ida_kernwin.find_widget +* ida_kernwin.get_custom_viewer_location +* ida_kernwin.register_action +* ida_kernwin.unregister_action +* ida_moves.lochist_entry_t + +#### See also +* [jump_next_comment](#jump_next_comment) + +
+ +
+ +#### show_and_hide_waitbox +
+ Showing, updating & hiding the progress dialog + +
+ +#### Source code +widgets/waitbox/show_and_hide_waitbox.py + +#### Category +widgets + +#### Description +Using the progress dialog (aka 'wait box') primitives. + +#### Keywords +actions + +#### Uses +* ida_hexrays.decompile +* ida_kernwin.hide_wait_box +* ida_kernwin.replace_wait_box +* ida_kernwin.show_wait_box +* ida_kernwin.user_cancelled +* idautils.Functions + +
+ +
+ +#### show_selected_strings +
+ Retrieve the strings that are selected in the "Strings" window. + +
+ +#### Source code +widgets/tabular_views/string_window/show_selected_strings.py + +#### Category +widgets + +#### Description +In IDA it's possible to write actions that can be applied even to +core (i.e., "standard") widgets. The actions in this example use the +action "context" to know what the current selection is. + +This example shows how you can either retrieve string literals data +directly from the chooser (`ida_kernwin.get_chooser_data`), or +by querying the IDB (`ida_bytes.get_strlit_contents`) + +#### Shortcuts +Ctrl+Shift+K Ctrl+Shift+S + +#### Keywords +actions ctxmenu + +#### Uses +* ida_bytes.get_strlit_contents +* ida_idaapi.BADADDR +* ida_kernwin.AST_DISABLE_FOR_WIDGET +* ida_kernwin.AST_ENABLE_FOR_WIDGET +* ida_kernwin.BWN_STRINGS +* ida_kernwin.action_desc_t +* ida_kernwin.action_handler_t +* ida_kernwin.attach_action_to_popup +* ida_kernwin.find_widget +* ida_kernwin.get_chooser_data +* ida_kernwin.open_strings_window +* ida_kernwin.register_action +* ida_kernwin.unregister_action +* ida_strlist.get_strlist_item +* ida_strlist.string_info_t + +#### See also +* [list_strings](#list_strings) + +
+ +
+ +#### sync_two_graphs +
+ Follow the movements of a disassembly graph, in another. + +
+ +#### Source code +widgets/graphs/sync_two_graphs.py + +#### Category +widgets + +#### Description +Since it is possible to be notified of movements that happen +take place in a widget, it's possible to "replay" those +movements in another. + +In this case, "IDA View-B" (will be opened if necessary) will +show the same contents as "IDA View-A", slightly zoomed out. + +#### Keywords +graph idaview + +#### Uses +* ida_graph.GLICTL_CENTER +* ida_graph.viewer_fit_window +* ida_graph.viewer_get_gli +* ida_graph.viewer_set_gli +* ida_kernwin.DP_RIGHT +* ida_kernwin.IDAViewWrapper +* ida_kernwin.MFF_FAST +* ida_kernwin.TCCRT_GRAPH +* ida_kernwin.execute_sync +* ida_kernwin.find_widget +* ida_kernwin.get_custom_viewer_place +* ida_kernwin.jumpto +* ida_kernwin.open_disasm_window +* ida_kernwin.set_dock_pos +* ida_kernwin.set_view_renderer_type +* ida_moves.graph_location_info_t + +#### See also +* [wrap_idaview](#wrap_idaview) + +
+ +
+ +#### wrap_idaview +
+ Manipulate IDAView and graph + +
+ +#### Source code +widgets/idaview/wrap_idaview.py + +#### Category +widgets + +#### Description +This is an example illustrating how to manipulate an existing IDA-provided +view (and thus possibly its graph), in Python. + +#### Keywords +graph idaview + +#### Uses +* ida_graph.NIF_BG_COLOR +* ida_graph.NIF_FRAME_COLOR +* ida_graph.node_info_t +* ida_kernwin.IDAViewWrapper +* ida_kernwin.MFF_FAST +* ida_kernwin.TCCRT_FLAT +* ida_kernwin.TCCRT_GRAPH +* ida_kernwin.execute_sync + +#### See also +* [custom_graph_with_actions](#custom_graph_with_actions) +* [sync_two_graphs](#sync_two_graphs) + +
+ +
+ diff --git a/examples/merge/py_mex1.py b/examples/merge/py_mex1.py new file mode 100644 index 0000000..c1c6a88 --- /dev/null +++ b/examples/merge/py_mex1.py @@ -0,0 +1,237 @@ +# pylint: disable=line-too-long,invalid-name,import-error + +""" +summary: add merge functionality to a simple plugin, example 1 + +description: + This is a primitive plugin which asks user for some info and saves it for + some addresses. + + We will add a merge functionality to plugin. + + An IDA plugin may have two kinds of data with permanent storage: + 1. Data common for entire database (e.g. the options). + To describe them we will use the idbattr_info_t type. + 2. Data specific to a particular address. + To describe them we will use the merge_node_info_t type. + + Also, see SDK/plugins/mex1 example +""" + + +import ida_idaapi +import ida_ida +import ida_kernwin +import ida_netnode +import ida_funcs +import ida_merge +import ida_mergemod +import ida_idp + + +# -------------------------------------------------------------------------- +class idp_listener_t(ida_idp.IDP_Hooks): + """ + we need an event listener to catch processor_t::ev_create_merge_handlers + """ + + def __init__(self, ctx): + # by default IDP_Hooks uses ida_idp.HKCB_GLOBAL hkcb_flags, + # in that case IDP events are sent to all DB instances. + # Such behaviour does not matter for IDA Pro + # but IDA Teams needs to have only one IDP event sent to plugin. + # We set hkcb_flags to 0 + ida_idp.IDP_Hooks.__init__(self, 0, 0) + self.ctx = ctx + + def ev_ending_undo(self): + """ + A well behaving plugin should restore its state from the database + upon ev_ending_undo. Otherwise its state may be conflicting with the + database. + """ + self.ctx.restore_from_idb() + return 0 + + def ev_create_merge_handlers(self, md): + """ + This event occurs when IDA is performing a 3-way merge (for IDA Teams) + Our plugins should create and register merge handler(s) for its data. + """ + self.ctx.create_merge_handlers(md) + return 0 + + +# -------------------------------------------------------------------------- +# netnode to store plugin data +MEX_NODE_NAME = "$ idapython mex1" +# user input +MEX_OPTION_FLAGS_IDX = ida_idaapi.BADADDR & -1 # atag +MEX_OPTION_IDENT_IDX = ida_idaapi.BADADDR & -2 # stag +# EA marks +MEX_EA_TAG = 'm' + +# mex_ctx_t::flags bits +MEX_FLAGS_0 = 0x01 +MEX_FLAGS_1 = 0x02 + +class mex_ctx_t(ida_idaapi.plugmod_t): + """ + Regular plugin implementation below. + For example, in our case the plugin asks for 2 bit values and a string value. + Then the plugin stores this data in the database. + And mark the start address of the current function. + These data will be merged later. + """ + + def __init__(self): + # bit flags, see above MEX_FLAGS_0/MEX_FLAGS_1 + self.flags = 0 + # unique database ident + self.ident = "" + # Restore the plugin data from the database into the memory. + self.restore_from_idb() + # Hook an event listener, to catch the merge-related event(s). + self.idp_listener = idp_listener_t(self) + self.idp_listener.hook() + # MERGE: the following data must exist during plugin lifetime + self.modmerger_helper = None + self.idpopts_info = None + self.merge_node_info = None + + def save_to_idb(self): + """ Save the plugin state to the idb. """ + nn = ida_netnode.netnode(MEX_NODE_NAME, 0, True) + nn.altset(MEX_OPTION_FLAGS_IDX, self.flags) + nn.supset(MEX_OPTION_IDENT_IDX, self.ident) + + def restore_from_idb(self): + """ Restore plugin variables from the idb. """ + nn = ida_netnode.netnode(MEX_NODE_NAME) + if nn != ida_netnode.BADNODE: + self.flags = nn.altval(MEX_OPTION_FLAGS_IDX) + self.ident = nn.supstr(MEX_OPTION_IDENT_IDX) + + def run(self, _): + """ + Ask user for the data and save them to database. + Add mark for current EA. + """ + if self._ask_form(): + self.save_to_idb() + # Our plugin stores a string for the current function. + # Just for illustration purposes of how plugins should merge address-specific info + # stored in a netnode. + ea = ida_kernwin.get_screen_ea() + pfn = ida_funcs.get_func(ea) + if pfn: + one = "" + if (self.flags & MEX_FLAGS_0) != 0: + one = " one" + two = "" + if (self.flags & MEX_FLAGS_1) != 0: + one = " two" + mark = "IPMEX1" + one + two + nn = ida_netnode.netnode(MEX_NODE_NAME, 0, True) + nn.supset_ea(pfn.start_ea, mark, MEX_EA_TAG) + + def _ask_form(self): + class MexForm(ida_kernwin.Form): + def __init__(self): + ida_kernwin.Form.__init__(self, + r""" +IDAPython: merge example 1 + + +{grpFlags}> + + """, + { + "grpFlags": ida_kernwin.Form.ChkGroupControl(("optFlag0", "optFlag1")), + "ident" : ida_kernwin.Form.StringInput(swidth=10), + }) + + form = MexForm() + form, _ = form.Compile() + form.grpFlags.value = self.flags + form.ident.value = self.ident + ok = form.Execute() + if ok == 1: + self.flags = form.grpFlags.value + self.ident = form.ident.value + form.Free() + return ok == 1 + + def create_merge_handlers(self, md): + """ + Create merge handlers for plugin + """ + + # 1. Data common for entire database (e.g. the options). + # + # This example shows how to merge the data from database. + # We will describe the items to merge and pass the description + # to create_std_modmerge_handlers(), which will do all the work for us. + sizeof_flags = ida_netnode.SIZEOF_nodeidx_t + self.idpopts_info = [ + # Describe both flags + ida_ida.idbattr_info_t("MEX flag 0", MEX_OPTION_FLAGS_IDX, sizeof_flags, MEX_FLAGS_0, ida_netnode.atag, ida_ida.IDI_ALTVAL|ida_ida.IDI_SCALAR), + ida_ida.idbattr_info_t("MEX flag 1", MEX_OPTION_FLAGS_IDX, sizeof_flags, MEX_FLAGS_1, ida_netnode.atag, ida_ida.IDI_ALTVAL|ida_ida.IDI_SCALAR), + # Describe ident + ida_ida.idbattr_info_t("MEX ident", MEX_OPTION_IDENT_IDX, 0, 0, ida_netnode.stag, ida_ida.IDI_SUPVAL|ida_ida.IDI_CSTR), + ] + + # The descriptions are ready. Now create an instance of the standard helper + # class to be passed to the kernel, and the kernel will take care of organizing + # the merge process for them. + + # helper instance name + self.modmerger_helper = ida_merge.moddata_diff_helper_t( + "Sample merge data", # label: prefix for the attribute names, e.g. "Sample merge data.MEX flag 0" + MEX_NODE_NAME, # netnode name for idpopts_info and merge_node_info + self.idpopts_info) # field descriptions + + # 2. Data specific to a particular address. + # We describe how the data is stored in a netnode. + self.merge_node_info = [ + ida_merge.merge_node_info_t( + "Function marks", # label of the merge handler, e.g. "Plugins/Merge example 1/Function marks" + MEX_EA_TAG, # netnode tag + ida_merge.NDS_MAP_IDX|ida_merge.NDS_IS_STR + # netnode value descriptors and modificators, see \ref nds_flags_t + ), + ] + + # Now we should combine together in function create_std_modmerge_handlers. + # This function will be called on processor_t::ev_create_merge_handlers event. + # As a result, two merge handlers with labels + # "Plugins/Merge example 1/Database attributes" + # "Plugins/Merge example 1/Function marks" + # will be created. + mhp = ida_merge.merge_handler_params_t( + md, # merge handler data + "Plugins/IDAPython merge example 1", # Label of the merge handler + ida_merge.MERGE_KIND_NONE, # allocate a merge kind + ida_merge.MERGE_KIND_END, # insert to the end of handler list + 0) # merge handler flags + ida_mergemod.create_std_modmerge_handlers( + mhp, + self.modmerger_helper, + self.merge_node_info) + + +# -------------------------------------------------------------------------- +class mex1_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_MULTI | ida_idaapi.PLUGIN_MOD + wanted_name = "IDAPython: Merge example 1" + comment = "IDAPython: An example 1 how to implement IDA merge functionality" + wanted_hotkey = "" + help = "" + def init(self): + return mex_ctx_t() + def term(self): + pass + def run(self, arg): + pass +def PLUGIN_ENTRY(): + return mex1_plugin_t() diff --git a/examples/merge/py_mex3.py b/examples/merge/py_mex3.py new file mode 100644 index 0000000..dac0393 --- /dev/null +++ b/examples/merge/py_mex3.py @@ -0,0 +1,295 @@ +# pylint: disable=line-too-long,invalid-name,import-error + +""" +summary: This example uses the mex1 example and improves the user-interface for it. + +description: + IDA Teams uses a chooser to display the merge conflicts. + To fill the chooser columns IDA Teams uses the following methods from diff_source_t type: + * print_diffpos_name() + * print_diffpos_details() + and UI hints from merge_handler_params_t type: + * ui_has_details() + * ui_complex_details() + * ui_complex_name() + + In general, chooser columns are filled as following: + columns.clear() + NAME = print_diffpos_name() + if ui_complex_name() + then + columns.add(split NAME by ui_split_char()) + else + columns[0] = NAME + if not ui_complex_details() + then + columns.add(print_diffpos_details()) + + Also, see SDK/plugins/mex3 example +""" + + +import ida_idaapi +import ida_ida +import ida_kernwin +import ida_netnode +import ida_funcs +import ida_merge +import ida_mergemod +import ida_idp +import ida_nalt + + +# -------------------------------------------------------------------------- +class idp_listener_t(ida_idp.IDP_Hooks): + """ + we need an event listener to catch processor_t::ev_create_merge_handlers + """ + + def __init__(self, ctx): + # by default IDP_Hooks uses ida_idp.HKCB_GLOBAL hkcb_flags, + # in that case IDP events are sent to all DB instances. + # Such behaviour does not matter for IDA Pro + # but IDA Teams needs to have only one IDP event sent to plugin. + # We set hkcb_flags to 0 + ida_idp.IDP_Hooks.__init__(self, 0, 0) + self.ctx = ctx + + def ev_ending_undo(self): + """ + A well behaving plugin should restore its state from the database + upon ev_ending_undo. Otherwise its state may be conflicting with the + database. + """ + self.ctx.restore_from_idb() + return 0 + + def ev_create_merge_handlers(self, md): + """ + This event occurs when IDA is performing a 3-way merge (for IDA Teams) + Our plugins should create and register merge handler(s) for its data. + """ + self.ctx.create_merge_handlers(md) + return 0 + + +# -------------------------------------------------------------------------- +# netnode to store plugin data +MEX_NODE_NAME = "$ idapython mex3" +# user input +MEX_OPTION_FLAGS_IDX = ida_idaapi.BADADDR & -1 # atag +MEX_OPTION_IDENT_IDX = ida_idaapi.BADADDR & -2 # stag +# EA marks +MEX_EA_TAG = 'm' + +# mex_ctx_t::flags bits +MEX_FLAGS_0 = 0x01 +MEX_FLAGS_1 = 0x02 + +class mex_ctx_t(ida_idaapi.plugmod_t): + """ + Regular plugin implementation below. + For example, in our case the plugin asks for 2 bit values and a string value. + Then the plugin stores this data in the database. + And mark the start address of the current function. + These data will be merged later. + """ + + def __init__(self): + # bit flags, see above MEX_FLAGS_0/MEX_FLAGS_1 + self.flags = 0 + # unique database ident + self.ident = "" + # Restore the plugin data from the database into the memory. + self.restore_from_idb() + # Hook an event listener, to catch the merge-related event(s). + self.idp_listener = idp_listener_t(self) + self.idp_listener.hook() + # MERGE: the following data must exist during plugin lifetime + self.modmerger_helper = None + self.idpopts_info = None + self.node_helper = None + self.merge_node_info = None + + def save_to_idb(self): + """ Save the plugin state to the idb. """ + nn = ida_netnode.netnode(MEX_NODE_NAME, 0, True) + nn.altset(MEX_OPTION_FLAGS_IDX, self.flags) + nn.supset(MEX_OPTION_IDENT_IDX, self.ident) + + def restore_from_idb(self): + """ Restore plugin variables from the idb. """ + nn = ida_netnode.netnode(MEX_NODE_NAME) + if nn != ida_netnode.BADNODE: + self.flags = nn.altval(MEX_OPTION_FLAGS_IDX) + self.ident = nn.supstr(MEX_OPTION_IDENT_IDX) + + def run(self, _): + """ + Ask user for the data and save them to database. + Add mark for current EA. + """ + if self._ask_form(): + self.save_to_idb() + # Our plugin stores a string for the current function. + # Just for illustration purposes of how plugins should merge address-specific info + # stored in a netnode. + ea = ida_kernwin.get_screen_ea() + pfn = ida_funcs.get_func(ea) + if pfn: + one = "" + if (self.flags & MEX_FLAGS_0) != 0: + one = " one" + two = "" + if (self.flags & MEX_FLAGS_1) != 0: + one = " two" + mark = "IPMEX1" + one + two + nn = ida_netnode.netnode(MEX_NODE_NAME, 0, True) + nn.supset_ea(pfn.start_ea, mark, MEX_EA_TAG) + + def _ask_form(self): + class MexForm(ida_kernwin.Form): + def __init__(self): + ida_kernwin.Form.__init__(self, + r""" +IDAPython: merge example 1 + + +{grpFlags}> + + """, + { + "grpFlags": ida_kernwin.Form.ChkGroupControl(("optFlag0", "optFlag1")), + "ident" : ida_kernwin.Form.StringInput(swidth=10), + }) + + form = MexForm() + form, _ = form.Compile() + form.grpFlags.value = self.flags + form.ident.value = self.ident + ok = form.Execute() + if ok == 1: + self.flags = form.grpFlags.value + self.ident = form.ident.value + form.Free() + return ok == 1 + + def create_merge_handlers(self, md): + """ + Create merge handlers for plugin + """ + + #------------------------------------------------------------------------- + # 1. Data common for entire database (e.g. the options). + # + # This example shows how to merge the data from database. + # We will describe the items to merge and pass the description + # to create_std_modmerge_handlers(), which will do all the work for us. + sizeof_flags = ida_netnode.SIZEOF_nodeidx_t + self.idpopts_info = [ + # Describe both flags + ida_ida.idbattr_info_t("MEX flag 0", MEX_OPTION_FLAGS_IDX, sizeof_flags, MEX_FLAGS_0, ida_netnode.atag, ida_ida.IDI_ALTVAL|ida_ida.IDI_SCALAR), + ida_ida.idbattr_info_t("MEX flag 1", MEX_OPTION_FLAGS_IDX, sizeof_flags, MEX_FLAGS_1, ida_netnode.atag, ida_ida.IDI_ALTVAL|ida_ida.IDI_SCALAR), + # Describe ident + ida_ida.idbattr_info_t("MEX ident", MEX_OPTION_IDENT_IDX, 0, 0, ida_netnode.stag, ida_ida.IDI_SUPVAL|ida_ida.IDI_CSTR), + ] + + # The descriptions are ready. Now create an instance of the standard helper + # class to be passed to the kernel, and the kernel will take care of organizing + # the merge process for them. + + # helper instance name + self.modmerger_helper = ida_merge.moddata_diff_helper_t( + "Sample merge data", # label: prefix for the attribute names, e.g. "Sample merge data.MEX flag 0" + MEX_NODE_NAME, # netnode name for idpopts_info and merge_node_info + self.idpopts_info) # field descriptions + + # Merge handler created from idbattr_info_t with the MH_UI_NODETAILS UI hint. + # Its linear_diff_source_t::get_diffpos_name() method returns NAME constructed as following: + # * prefix if any, f.e. "Sample merge data", concatenated with "." + # * add item name, f.e. "MEX flag 0" + # * add ": " + # * add item value + # You might have noticed this when checking the mex1 and mex2 examples + # + # In this case we can improve UI look if add MH_UI_COLONNAME UI hint to merge_handler_params_t. + + #------------------------------------------------------------------------- + # 2. Data specific to a particular address. + # + # To improve UI look for this merge handler we can create a subclass of merge_node_helper_t type. + class node_helper_t(ida_merge.merge_node_helper_t): + def __init__(self): + ida_merge.merge_node_helper_t.__init__(self) + def print_entry_name(self, tag, ndx, _): + """ is called from print_diffpos_name() """ + if tag != ord(MEX_EA_TAG): + return "" + # get item value + eanode = ida_netnode.netnode(MEX_NODE_NAME) + ea = ida_nalt.node2ea(ndx) + mark = eanode.supstr_ea(ea, MEX_EA_TAG) + # prepare NAME + ea_nice_name = ida_merge.get_ea_diffpos_name(ea) + return "%s,%s" % (ea_nice_name, mark) + def get_column_headers(self, _1, tag, _2): + """ column headers for chooser """ + return ["Address", "Mark"] if tag == ord(MEX_EA_TAG) else [] + self.node_helper = node_helper_t() + + # We describe how the data is stored in a netnode. + self.merge_node_info = [ + ida_merge.merge_node_info_t( + "Function marks", # label of the merge handler, e.g. "Plugins/Merge example 3/Function marks" + MEX_EA_TAG, # netnode tag + ida_merge.NDS_MAP_IDX|ida_merge.NDS_IS_STR, + # netnode value descriptors and modificators, see \ref nds_flags_t + self.node_helper + ), + ] + + #------------------------------------------------------------------------- + # Now we should combine together in function create_merge_handlers. + # This function will be called on processor_t::ev_create_merge_handlers event. + # As a result, two merge handlers with labels + # "Plugins/Merge example 3/Database attributes" + # "Plugins/Merge example 3/Function marks" + # will be created. + mhp = ida_merge.merge_handler_params_t( + md, # merge handler data + "Plugins/IDAPython merge example 3", # Label of the merge handler + ida_merge.MERGE_KIND_NONE, # allocate a merge kind + ida_merge.MERGE_KIND_END, # insert to the end of handler list + ida_merge.MH_UI_COLONNAME) # Create multi-column chooser, split diffpos names using ':' + + # create merge handler for idbattr_info_t, it will use MH_UI_COLONNAME. + # MH_UI_COLONNAME will ensure that the diffpos names will be split by ':' + # and displayed as separate columns in a chooser. Multi-column choosers + # are easier to work with for the user. + ida_mergemod.create_std_modmerge_handlers(mhp, self.modmerger_helper) + + # create merge handlers for merge_node_info_t, it will use MH_UI_NODETAILS. + mhp.mh_flags = (ida_merge.MH_UI_COMMANAME # Create multi-column chooser, split diffpos names using ',' + | ida_merge.MH_UI_NODETAILS) # do not display the detail pane + ida_merge.create_nodeval_merge_handlers( + None, + mhp, + MEX_NODE_NAME, + self.merge_node_info) + + +# -------------------------------------------------------------------------- +class mex3_plugin_t(ida_idaapi.plugin_t): + flags = ida_idaapi.PLUGIN_MULTI | ida_idaapi.PLUGIN_MOD + wanted_name = "IDAPython: Merge example 3" + comment = "IDAPython: An example 1 how to implement IDA merge functionality" + wanted_hotkey = "" + help = "" + def init(self): + return mex_ctx_t() + def term(self): + pass + def run(self, arg): + pass +def PLUGIN_ENTRY(): + return mex3_plugin_t() diff --git a/examples/pyqt/inject_command.py b/examples/pyqt/inject_command.py new file mode 100644 index 0000000..43447f1 --- /dev/null +++ b/examples/pyqt/inject_command.py @@ -0,0 +1,91 @@ +""" +summary: injecting commands in the "Output" window + +description: + This example illustrates how one can execute commands in the + "Output" window, from their own widgets. + + A few notes: + + * the original, underlying `cli:Execute` action, that has to be + triggered for the code present in the input field to execute + and be placed in the history, requires that the input field + has focus (otherwise it simply won't do anything.) + * this, in turn, forces us to do "delayed" execution of that action, + hence the need for a `QTimer` + * the IDA/SWiG 'TWidget' type that we retrieve through + `ida_kernwin.find_widget`, is not the same type as a + `QtWidgets.QWidget`. We therefore need to convert it using + `ida_kernwin.PluginForm.TWidgetToPyQtWidget` +""" + +from PyQt5 import QtCore +from PyQt5 import QtGui +from PyQt5 import QtWidgets + +import ida_kernwin +import ida_segment + +import idc + +delayed_exec_timer = QtCore.QTimer() + +def show_dialog(): + dialog = QtWidgets.QDialog() + dialog.setWindowTitle("Inject command") + dialog.setMinimumSize(600, 480) + + run_text = "Run" + buttons_box = QtWidgets.QDialogButtonBox() + button = buttons_box.addButton(run_text, QtWidgets.QDialogButtonBox.AcceptRole) + button.setDefault(True) + button.clicked.connect(dialog.accept) + + text_edit = QtWidgets.QPlainTextEdit() + text_edit.setPlaceholderText( + "Type an expression, and press '%s' to execute through the regular input" % run_text) + + layout = QtWidgets.QVBoxLayout() + layout.addWidget(text_edit) + layout.addWidget(buttons_box) + + dialog.setLayout(layout) + + # disable script timeout, otherwise a "Please wait ..." dialog + # might briefly show after the dialog was accepted/rejected + with ida_kernwin.disabled_script_timeout_t(): + if dialog.exec_() == QtWidgets.QDialog.Accepted: + + # We'll now have to schedule a call to the standard + # 'execute' action. We can't call it right away, because + # the "Output" window doesn't have focus, and thus + # the action will fail to execute since it requires + # the "Output" window as context. + text = text_edit.toPlainText() + + def delayed_exec(*args): + output_window_title = "Output" + tw = ida_kernwin.find_widget(output_window_title) + if not tw: + raise Exception("Couldn't find widget '%s'" % output_window_title) + + # convert from a SWiG 'TWidget*' facade, + # into an object that PyQt will understand + w = ida_kernwin.PluginForm.TWidgetToPyQtWidget(tw) + + line_edit = w.findChild(QtWidgets.QLineEdit) + if not line_edit: + raise Exception("Couldn't find input") + line_edit.setFocus() # ensure it has focus + QtWidgets.QApplication.instance().processEvents() # and that it received the focus event + + # inject text into widget + line_edit.setText(text) + + # and execute the standard 'execute' action + ida_kernwin.process_ui_action("cli:Execute") + + delayed_exec_timer.singleShot(0, delayed_exec) + + +show_dialog() diff --git a/examples/pyqt/paint_over_navbar.py b/examples/pyqt/paint_over_navbar.py index 85cde9e..1bca746 100644 --- a/examples/pyqt/paint_over_navbar.py +++ b/examples/pyqt/paint_over_navbar.py @@ -1,3 +1,11 @@ +""" +summary: custom painting on top of the navigation band + +description: + Using an "event filter", we'll intercept paint events + targeted at the navigation band widget, let it paint itself, + and then add our own markers on top. +""" import random @@ -49,8 +57,8 @@ class painter_t(QtCore.QObject): painter.setRenderHints(QtGui.QPainter.Antialiasing) pxl, is_vertical = ida_kernwin.get_navband_pixel(ea) if pxl >= 0: - x = (self.target.width() / 2) if is_vertical else pxl - y = pxl if is_vertical else (self.target.height() / 2) + x = (self.target.width() // 2) if is_vertical else pxl + y = pxl if is_vertical else (self.target.height() // 2) painter.setPen(color) painter.setBrush(color) painter.drawEllipse(QtCore.QPoint(x, y), radius, radius) diff --git a/examples/pyqt/populate_pluginform_with_pyqt_widgets.py b/examples/pyqt/populate_pluginform_with_pyqt_widgets.py index e8fe27b..67d341b 100644 --- a/examples/pyqt/populate_pluginform_with_pyqt_widgets.py +++ b/examples/pyqt/populate_pluginform_with_pyqt_widgets.py @@ -1,9 +1,16 @@ +""" +summary: adding PyQt5 widgets into an `ida_kernwin.PluginForm` + +description: + Using `ida_kernwin.PluginForm.FormToPyQtWidget`, this script + converts IDA's own dockable widget into a type that is + recognized by PyQt5, which then enables populating it with + regular Qt widgets. +""" -from idaapi import PluginForm from PyQt5 import QtCore, QtGui, QtWidgets -import sip -class MyPluginFormClass(PluginForm): +class MyPluginFormClass(ida_kernwin.PluginForm): def OnCreate(self, form): """ Called when the widget is created diff --git a/examples/uihooks/func_chooser_coloring.py b/examples/uihooks/func_chooser_coloring.py new file mode 100644 index 0000000..606660c --- /dev/null +++ b/examples/uihooks/func_chooser_coloring.py @@ -0,0 +1,31 @@ +""" +summary: using `ida_kernwin.UI_Hooks.get_chooser_item_attrs` to override some defaults + +description: + color the function in the Function window according to its size. + The larger the function, the darker the color. +""" + +import ida_kernwin +import ida_funcs +import math + +class func_chooser_coloring_hooks_t(ida_kernwin.UI_Hooks): + def __init__(self): + ida_kernwin.UI_Hooks.__init__(self) + self.colors = [0x808080 + (32-i) * 0x400 for i in range(32-5)] + + def get_chooser_item_attrs(self, chobj, n, attrs): + if attrs.color != 0xFFFFFFFF: + return # the color is already set + ea = chobj.get_ea(n) + fn = ida_funcs.get_func(ea) + size = fn.size() + if size < 32: + return # do not color small functions + attrs.color = self.colors[int(math.log2(size))] + +fcch = func_chooser_coloring_hooks_t() +fcch.hook() +ida_kernwin.enable_chooser_item_attrs("Functions", True) + diff --git a/examples/uihooks/lines_rendering.py b/examples/uihooks/lines_rendering.py new file mode 100644 index 0000000..12315b2 --- /dev/null +++ b/examples/uihooks/lines_rendering.py @@ -0,0 +1,125 @@ +""" +summary: dynamically colorize lines backgrounds (or parts of them) + +description: + shows how one can dynamically alter the lines background + rendering (as opposed to, say, using ida_nalt.set_item_color()), + and also shows how that rendering can be limited to just a few + glyphs, not the whole line. +""" + +import ida_kernwin +import ida_bytes + +class lines_rendering_hooks_t(ida_kernwin.UI_Hooks): + def __init__(self): + ida_kernwin.UI_Hooks.__init__(self) + + # We'll color all lines starting with the current + # one, with all available highlights... + self.instantiated_at = ida_kernwin.get_screen_ea() + self.color_info = [] + + data = [ + ida_kernwin.CK_EXTRA1, + ida_kernwin.CK_EXTRA2, + ida_kernwin.CK_EXTRA3, + ida_kernwin.CK_EXTRA4, + ida_kernwin.CK_EXTRA5, + ida_kernwin.CK_EXTRA6, + ida_kernwin.CK_EXTRA7, + ida_kernwin.CK_EXTRA8, + ida_kernwin.CK_EXTRA9, + ida_kernwin.CK_EXTRA10, + ida_kernwin.CK_EXTRA11, + ida_kernwin.CK_EXTRA12, + ida_kernwin.CK_EXTRA13, + ida_kernwin.CK_EXTRA14, + ida_kernwin.CK_EXTRA15, + ida_kernwin.CK_EXTRA16, + # let's also try these colors keys, because why not + ida_kernwin.CK_TRACE, + ida_kernwin.CK_TRACE_OVL, + [ + ida_kernwin.CK_TRACE, + ida_kernwin.CK_TRACE_OVL, + ], + ] + ea = self.instantiated_at + for one in data: + self.color_info.append((ea, one)) + ea = ida_bytes.next_head(ea, ida_idaapi.BADADDR) + + # ...and then we'll a few more things, such as + # overriding parts of a previously-specified overlay, + # and restricting the override to a few glyphs + self.color_info.append( + ( + self.color_info[6][0], + [ + (ida_kernwin.CK_EXTRA2, 7, 3), + (ida_kernwin.CK_EXTRA4, 2, 1), + (ida_kernwin.CK_EXTRA10, 2, 0), + (ida_kernwin.CK_EXTRA10, 20, 10), + ] + )) + self.color_info.append( + ( + self.color_info[7][0], + [ + (ida_kernwin.CK_EXTRA1, 1, 1), + (ida_kernwin.CK_EXTRA2, 3, 1), + (ida_kernwin.CK_EXTRA3, 5, 1), + (ida_kernwin.CK_EXTRA4, 7, 1), + (ida_kernwin.CK_EXTRA5, 9, 1), + (ida_kernwin.CK_EXTRA6, 11, 1), + (ida_kernwin.CK_EXTRA7, 13, 1), + (ida_kernwin.CK_EXTRA8, 15, 1), + (ida_kernwin.CK_EXTRA9, 17, 1), + (ida_kernwin.CK_EXTRA10, 19, 1), + (ida_kernwin.CK_EXTRA11, 21, 1), + (ida_kernwin.CK_EXTRA12, 23, 1), + (ida_kernwin.CK_EXTRA13, 25, 1), + (ida_kernwin.CK_EXTRA14, 27, 1), + (ida_kernwin.CK_EXTRA15, 29, 1), + (ida_kernwin.CK_EXTRA16, 31, 1), + ] + )) + self.color_info.append( + ( + self.color_info[8][0], + [ + (ida_kernwin.CK_EXTRA1, 16, 45), + (ida_kernwin.CK_EXTRA2, 19, 45), + (ida_kernwin.CK_EXTRA3, 22, 45), + (ida_kernwin.CK_EXTRA4, 25, 45), + ] + )) + + + def get_lines_rendering_info(self, out, widget, rin): + for section_lines in rin.sections_lines: + for line in section_lines: + line_ea = line.at.toea() + for ea, directives in self.color_info: + if ea == line_ea: + if not isinstance(directives, list): + directives = [directives] + for directive in directives: + e = ida_kernwin.line_rendering_output_entry_t(line) + if isinstance(directive, tuple): + color, cpx, nchars = directive + e.bg_color = color + e.cpx = cpx + e.nchars = nchars + e.flags |= ida_kernwin.LROEF_CPS_RANGE + else: + e.bg_color = directive + out.entries.push_back(e) + + +lrh = lines_rendering_hooks_t() +lrh.hook() + +# Force a refresh of IDA View-A +ida_kernwin.refresh_idaview_anyway() diff --git a/examples/uihooks/log_misc_events.py b/examples/uihooks/log_misc_events.py index 40a6e79..6f489b5 100644 --- a/examples/uihooks/log_misc_events.py +++ b/examples/uihooks/log_misc_events.py @@ -1,22 +1,40 @@ +""" +summary: being notified, and logging a few UI events + +description: + hooks to be notified about certain UI events, and + dump their information to the "Output" window +""" + from __future__ import print_function -#--------------------------------------------------------------------- -# UI hook example -# -# (c) Hex-Rays -# -# Maintained By: IDAPython Team -# -#--------------------------------------------------------------------- -import idaapi +import inspect -class MyUiHook(idaapi.UI_Hooks): +import ida_kernwin + +class MyUiHook(ida_kernwin.UI_Hooks): def __init__(self): - idaapi.UI_Hooks.__init__(self) + ida_kernwin.UI_Hooks.__init__(self) self.cmdname = "" + self.inhibit_log = 0; - def _log(self, msg): - print(">>> MyUiHook: %s" % msg) + def _format_value(self, v): + return str(v) + + def _log(self, msg=None): + if self.inhibit_log <= 0: + if msg: + print(">>> MyUiHook: %s" % msg) + else: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + method_name = inspect.getframeinfo(frame)[2] + argstrs = [] + for arg in args[1:]: + argstrs.append("%s=%s" % (arg, self._format_value(values[arg]))) + print(">>> MyUiHook.%s: %s" % (method_name, ", ".join(argstrs))) + return 0 def preprocess_action(self, name): self._log("IDA preprocessing command: %s" % name) @@ -75,6 +93,90 @@ class MyUiHook(idaapi.UI_Hooks): """ self._log("finish_populating_widget_popup; title: %s" % (ctx.widget_title,)) + def range(self): + self._log() + + def idcstart(self): + self._log() + + def idcstop(self): + self._log() + + def suspend(self): + self._log() + + def resume(self): + self._log() + + def debugger_menu_change(self, enable): + self._log() + + def widget_visible(self, widget): + self._log() + + def widget_closing(self, widget): + self._log() + + def widget_invisible(self, widget): + self._log() + + def get_item_hint(self, ea, max_lines): + self._log() + + def get_custom_viewer_hint(self, viewer, place): + self._log() + + def database_inited(self, is_new_database, idc_script): + self._log() + + def ready_to_run(self): + self._log() + + def get_chooser_item_attrs(self, chooser, n, attrs): + self._log() + + def updating_actions(self, ctx): + self._log() + + def updated_actions(self): + self._log() + + def plugin_loaded(self, plugin_info): + self._log() + + def plugin_unloading(self, plugin_info): + self._log() + + def current_widget_changed(self, widget, prev_widget): + self._log() + + def screen_ea_changed(self, ea, prev_ea): + self._log() + + def create_desktop_widget(self, title, cfg): + self._log() + + def get_lines_rendering_info(self, out, widget, info): + self._log() + + def get_widget_config(self, widget, cfg): + self._log() + + def set_widget_config(self, widget, cfg): + self._log() + + def initing_database(self): + self._log() + + def destroying_procmod(self, procmod): + self._log() + + def destroying_plugmod(self, plugmod, entry): + self._log() + + def desktop_applied(self, name, from_idb, type): + self._log() + #--------------------------------------------------------------------- # Remove an existing hook on second run diff --git a/examples/uihooks/prevent_jump.py b/examples/uihooks/prevent_jump.py index dca16d7..47bf6a1 100644 --- a/examples/uihooks/prevent_jump.py +++ b/examples/uihooks/prevent_jump.py @@ -1,6 +1,10 @@ """ -This example shows how to use ida_kernwin.UI_Hooks, to respond to a -command instead of the action that would otherwise do it. +summary: taking precedence over actions + +description: + Using `ida_kernwin.UI_Hooks.preprocess_action`, it is possible + to respond to a command instead of the action that would + otherwise do it. """ import ida_kernwin diff --git a/examples/widgets/forms/askusingform.py b/examples/widgets/forms/askusingform.py index 17eba92..5855a64 100644 --- a/examples/widgets/forms/askusingform.py +++ b/examples/widgets/forms/askusingform.py @@ -1,3 +1,16 @@ +""" +summary: Non-trivial uses of the `ida_kernwin.Form` helper class + +description: + How to query for complex user input, using IDA's built-in forms. + + Note: while this example produces full-fledged forms for complex input, + simpler types of inputs might can be retrieved by using + `ida_kernwin.ask_str` and similar functions. + +keywords: forms +""" + from __future__ import print_function # ----------------------------------------------------------------------- # This is an example illustrating how to use the Form class @@ -124,6 +137,8 @@ The end! self.rBlue.id : 0xFF0000, } self.SetControlValue(self.iColor1, color[fid]) + elif fid == self.iColor1.id: + print("Color changed: %06x" % self.GetControlValue(self.iColor1)) else: print(">>fid:%d" % fid) return 1 diff --git a/examples/widgets/graphs/custom_graph_with_actions.py b/examples/widgets/graphs/custom_graph_with_actions.py index 984ab92..722869c 100644 --- a/examples/widgets/graphs/custom_graph_with_actions.py +++ b/examples/widgets/graphs/custom_graph_with_actions.py @@ -1,3 +1,13 @@ +""" +summary: drawing custom graphs + +description: + Showing custom graphs, using `ida_graph.GraphViewer`. In addition, + show how to write actions that can be performed on those. + +keywords: graph, actions +""" + from __future__ import print_function # ----------------------------------------------------------------------- # This is an example illustrating how to use the user graphing functionality @@ -10,6 +20,9 @@ import ida_graph import ida_ua import ida_idp import ida_funcs +import ida_xref + +import idautils class _base_graph_action_handler_t(ida_kernwin.action_handler_t): def __init__(self, graph): @@ -61,7 +74,7 @@ class MyGraph(ida_graph.GraphViewer): # # for the sake of this example, here's how one can use - # 'ida_kernwin.View_Hooks' (which can be used wich all + # 'ida_kernwin.View_Hooks' (which can be used with all # "listing-like" and "graph" widgets) to be notified # of cursor movement, current node changes, etc... # in this graph. @@ -99,35 +112,36 @@ class MyGraph(ida_graph.GraphViewer): def OnGetText(self, node_id): return self[node_id] - def OnPopup(self, form, popup_handle): + def OnPopup(self, widget, popup_handle): # graph closer actname = "graph_closer:%s" % self.title desc = ida_kernwin.action_desc_t(actname, "Close: %s" % self.title, GraphCloser(self)) - ida_kernwin.attach_dynamic_action_to_popup(form, popup_handle, desc) + ida_kernwin.attach_dynamic_action_to_popup(None, popup_handle, desc) # color changer actname = "color_changer:%s" % self.title desc = ida_kernwin.action_desc_t(actname, "Change colors: %s" % self.title, ColorChanger(self)) - ida_kernwin.attach_dynamic_action_to_popup(form, popup_handle, desc) + ida_kernwin.attach_dynamic_action_to_popup(None, popup_handle, desc) # selection printer actname = "selection_printer:%s" % self.title desc = ida_kernwin.action_desc_t(actname, "Print selection: %s" % self.title, SelectionPrinter(self)) - ida_kernwin.attach_dynamic_action_to_popup(form, popup_handle, desc) + ida_kernwin.attach_dynamic_action_to_popup(None, popup_handle, desc) def show_graph(): - f = ida_funcs.get_func(here()) + f = ida_funcs.get_func(ida_kernwin.get_screen_ea()) if not f: print("Must be in a function") return # Iterate through all function instructions and take only call instructions result = [] tmp = ida_ua.insn_t() - for x in [x for x in FuncItems(f.start_ea) if (ida_ua.decode_insn(tmp, x) and ida_idp.is_call_insn(tmp))]: - for xref in XrefsFrom(x, idaapi.XREF_FAR): + for x in [x for x in f if (ida_ua.decode_insn(tmp, x) and ida_idp.is_call_insn(tmp))]: + xb = ida_xref.xrefblk_t() + for xref in xb.refs_from(x, ida_xref.XREF_FAR): if not xref.iscode: continue - t = get_func_name(xref.to) + t = ida_funcs.get_func_name(xref.to) if not t: t = hex(xref.to) result.append(t) diff --git a/examples/widgets/graphs/sync_two_graphs.py b/examples/widgets/graphs/sync_two_graphs.py index ecbf98b..a8657f8 100644 --- a/examples/widgets/graphs/sync_two_graphs.py +++ b/examples/widgets/graphs/sync_two_graphs.py @@ -1,6 +1,24 @@ +""" +summary: follow the movements of a disassembly graph, in another. + +description: + Since it is possible to be notified of movements that happen + take place in a widget, it's possible to "replay" those + movements in another. + + In this case, "IDA View-B" (will be opened if necessary) will + show the same contents as "IDA View-A", slightly zoomed out. + +keywords: graph, idaview + +see_also: wrap_idaview +""" + from __future__ import print_function -from idaapi import * +import ida_kernwin +import ida_moves +import ida_graph # # Cleanup (in case the script is run more than once) @@ -16,9 +34,9 @@ wrap_a = None # # The IDA View-A "monitor": changes will be reported into IDA View-B # -class IDAViewA_monitor_t(IDAViewWrapper): +class IDAViewA_monitor_t(ida_kernwin.IDAViewWrapper): def __init__(self): - IDAViewWrapper.__init__(self, "IDA View-A") + ida_kernwin.IDAViewWrapper.__init__(self, "IDA View-A") def OnViewLocationChanged(self, now, was): self.update_widget_b() @@ -26,40 +44,40 @@ class IDAViewA_monitor_t(IDAViewWrapper): def update_widget_b(self): # Make sure we are in the same function - place_a, _, _ = get_custom_viewer_place(widget_a, False) - jumpto(widget_b, place_a, -1, -1) + place_a, _, _ = ida_kernwin.get_custom_viewer_place(widget_a, False) + ida_kernwin.jumpto(widget_b, place_a, -1, -1) # and that we show the right place (slightly zoomed out) - widget_a_center_gli = graph_location_info_t() - if viewer_get_gli(widget_a_center_gli, widget_a, GLICTL_CENTER): - widget_b_center_gli = graph_location_info_t() + widget_a_center_gli = ida_moves.graph_location_info_t() + if ida_graph.viewer_get_gli(widget_a_center_gli, widget_a, ida_graph.GLICTL_CENTER): + widget_b_center_gli = ida_moves.graph_location_info_t() widget_b_center_gli.orgx = widget_a_center_gli.orgx widget_b_center_gli.orgy = widget_a_center_gli.orgy widget_b_center_gli.zoom = widget_a_center_gli.zoom * 0.5 - viewer_set_gli(widget_b, widget_b_center_gli, GLICTL_CENTER) + ida_graph.viewer_set_gli(widget_b, widget_b_center_gli, ida_graph.GLICTL_CENTER) # # Make sure both views are opened... # for label in ["A", "B"]: title = "IDA View-%s" % label - if not find_widget(title): + if not ida_kernwin.find_widget(title): print("View %s not available. Opening." % title) - open_disasm_window(label) + ida_kernwin.open_disasm_window(label) # # ...and that they are both in graph mode # -widget_a = find_widget("IDA View-A") -set_view_renderer_type(widget_a, TCCRT_GRAPH) +widget_a = ida_kernwin.find_widget("IDA View-A") +ida_kernwin.set_view_renderer_type(widget_a, ida_kernwin.TCCRT_GRAPH) -widget_b = find_widget("IDA View-B") -set_view_renderer_type(widget_b, TCCRT_GRAPH) +widget_b = ida_kernwin.find_widget("IDA View-B") +ida_kernwin.set_view_renderer_type(widget_b, ida_kernwin.TCCRT_GRAPH) # # Put view B to the right of view A # -set_dock_pos("IDA View-B", "IDA View-A", DP_RIGHT) +ida_kernwin.set_dock_pos("IDA View-B", "IDA View-A", ida_kernwin.DP_RIGHT) # # Start monitoring IDA View-A @@ -77,7 +95,7 @@ wrap_a.Bind() # def fit_widget_a(): def do_fit_widget_a(): - viewer_fit_window(widget_a) - execute_sync(do_fit_widget_a, MFF_FAST) + ida_graph.viewer_fit_window(widget_a) + ida_kernwin.execute_sync(do_fit_widget_a, ida_kernwin.MFF_FAST) import threading threading.Timer(0.25, fit_widget_a).start() diff --git a/examples/widgets/idaview/wrap_idaview.py b/examples/widgets/idaview/wrap_idaview.py index aed1df8..cf51056 100644 --- a/examples/widgets/idaview/wrap_idaview.py +++ b/examples/widgets/idaview/wrap_idaview.py @@ -1,38 +1,54 @@ +""" +summary: manipulate IDAView and graph + +description: + This is an example illustrating how to manipulate an existing IDA-provided + view (and thus possibly its graph), in Python. + +keywords: idaview, graph + +see_also: custom_graph_with_actions, sync_two_graphs +""" + from __future__ import print_function + # ----------------------------------------------------------------------- -# This is an example illustrating how to manipulate an existing IDA-provided -# view (and thus its graph), in Python. # (c) Hex-Rays -# -from idaapi import IDAViewWrapper + from time import sleep import threading +import ida_kernwin +import ida_graph + class Worker(threading.Thread): def __init__(self, w): threading.Thread.__init__(self) self.w = w + def log(self, msg): + print(">>> thread: %s" % msg) + def req_SetCurrentRendererType(self, switch_to): w = self.w def f(): - print("Switching..") + self.log("Switching to %s" % switch_to) w.SetCurrentRendererType(switch_to) - idaapi.execute_sync(f, idaapi.MFF_FAST) + ida_kernwin.execute_sync(f, ida_kernwin.MFF_FAST) def req_SetNodeInfo(self, node, info, flags): w = self.w def f(): - print("Setting node info..") + self.log("Setting node info..") w.SetNodeInfo(node, info, flags) - idaapi.execute_sync(f, idaapi.MFF_FAST) + ida_kernwin.execute_sync(f, ida_kernwin.MFF_FAST) def req_DelNodesInfos(self, *nodes): w = self.w def f(): - print("Deleting nodes infos..") + self.log("Deleting nodes infos..") w.DelNodesInfos(*nodes) - idaapi.execute_sync(f, idaapi.MFF_FAST) + ida_kernwin.execute_sync(f, ida_kernwin.MFF_FAST) def run(self): # Note, in order to leave the UI available @@ -43,35 +59,36 @@ class Worker(threading.Thread): # # Qt expects that all UI operations be performed from # the main thread. Therefore, we'll have to use - # 'idaapi.execute_sync' to send requests to the main thread. + # 'ida_kernwin.execute_sync' to send requests to the main thread. # Switch back & forth to & from graph view for i in range(3): - self.req_SetCurrentRendererType(idaapi.TCCRT_FLAT) + self.req_SetCurrentRendererType(ida_kernwin.TCCRT_FLAT) sleep(1) - self.req_SetCurrentRendererType(idaapi.TCCRT_GRAPH) + self.req_SetCurrentRendererType(ida_kernwin.TCCRT_GRAPH) sleep(1) # Go to graph view, and set the first node's color - self.req_SetCurrentRendererType(idaapi.TCCRT_GRAPH) - ni = idaapi.node_info_t() + self.req_SetCurrentRendererType(ida_kernwin.TCCRT_GRAPH) + ni = ida_graph.node_info_t() ni.bg_color = 0x00ff00ff ni.frame_color = 0x0000ff00 - self.req_SetNodeInfo(0, ni, idaapi.NIF_BG_COLOR|idaapi.NIF_FRAME_COLOR) + self.req_SetNodeInfo(0, ni, ida_graph.NIF_BG_COLOR|ida_graph.NIF_FRAME_COLOR) sleep(3) # This was fun. But let's revert it. self.req_DelNodesInfos(0) sleep(3) - print("Done.") + self.log("Done.") -class MyIDAViewWrapper(IDAViewWrapper): + +class MyIDAViewWrapper(ida_kernwin.IDAViewWrapper): # A wrapper around the standard IDA view wrapper. # We'll react to some events and print the parameters # that were sent to us, that's all. def __init__(self, viewName): - IDAViewWrapper.__init__(self, viewName) + ida_kernwin.IDAViewWrapper.__init__(self, viewName) # Helper function, to be called by "On*" event handlers. # This will print all the arguments that were passed! diff --git a/examples/widgets/listings/custom_viewer.py b/examples/widgets/listings/custom_viewer.py index c6c8fc3..a5feb2a 100644 --- a/examples/widgets/listings/custom_viewer.py +++ b/examples/widgets/listings/custom_viewer.py @@ -1,23 +1,33 @@ +""" +summary: create custom listings in IDA + +description: + How to create simple listings, that will share many of the features + as the built-in IDA widgets (highlighting, copy & paste, + notifications, ...) + + In addition, creates actions that will be bound to the + freshly-created widget (using `ida_kernwin.attach_action_to_popup`.) + +keywords: listing, actions +""" + from __future__ import print_function -# ----------------------------------------------------------------------- -# This is an example illustrating how to use customview in Python -# (c) Hex-Rays -# -import idaapi -import idc -from idaapi import simplecustviewer_t + +import ida_kernwin +import ida_lines # ----------------------------------------------------------------------- -class say_something_handler_t(idaapi.action_handler_t): +class say_something_handler_t(ida_kernwin.action_handler_t): def __init__(self, thing): - idaapi.action_handler_t.__init__(self) + ida_kernwin.action_handler_t.__init__(self) self.thing = thing def activate(self, ctx): print(self.thing) def update(self, ctx): - return idaapi.AST_ENABLE_ALWAYS + return ida_kernwin.AST_ENABLE_ALWAYS @staticmethod def compose_action_name(v): @@ -38,7 +48,7 @@ for av in actions_variants: # ----------------------------------------------------------------------- -class mycv_t(simplecustviewer_t): +class mycv_t(ida_kernwin.simplecustviewer_t): def Create(self, sn=None, use_colors=True): # Form the title title = "Simple custom view test" @@ -47,16 +57,16 @@ class mycv_t(simplecustviewer_t): self.use_colors = use_colors # Create the customviewer - if not simplecustviewer_t.Create(self, title): + if not ida_kernwin.simplecustviewer_t.Create(self, title): return False for i in range(0, 100): - prefix, bg = idaapi.COLOR_DEFAULT, None + prefix, bg = ida_lines.COLOR_DEFAULT, None # make every 10th line a bit special if i % 10 == 0: - prefix = idaapi.COLOR_DNAME # i.e., dark yellow... + prefix = ida_lines.COLOR_DNAME # i.e., dark yellow... bg = 0xFFFF00 # ...on cyan - pfx = idaapi.COLSTR("%3d" % i, idaapi.SCOLOR_PREFIX) + pfx = ida_lines.COLSTR("%3d" % i, ida_lines.SCOLOR_PREFIX) if self.use_colors: self.AddLine("%s: Line %d" % (pfx, i), fgcolor=prefix, bgcolor=bg) else: @@ -120,7 +130,7 @@ class mycv_t(simplecustviewer_t): elif vkey == ord('G'): n = self.GetLineNo() if n is not None: - v = idaapi.ask_long(self.GetLineNo(), "Where to go?") + v = ida_kernwin.ask_long(self.GetLineNo(), "Where to go?") if v: self.Jump(v, 0, 5) elif vkey == ord('R'): @@ -130,7 +140,7 @@ class mycv_t(simplecustviewer_t): print("refreshing current line...") self.RefreshCurrent() elif vkey == ord('A'): - s = idaapi.ask_str("NewLine%d" % self.Count(), 0, "Append new line") + s = ida_kernwin.ask_str("NewLine%d" % self.Count(), 0, "Append new line") self.AddLine(s) self.Refresh() elif vkey == ord('X'): @@ -139,7 +149,7 @@ class mycv_t(simplecustviewer_t): self.Refresh() elif vkey == ord('I'): n = self.GetLineNo() - s = idaapi.ask_str("InsertedLine%d" % n, 0, "Insert new line") + s = ida_kernwin.ask_str("InsertedLine%d" % n, 0, "Insert new line") self.InsertLine(n, s) self.Refresh() elif vkey == ord('E'): @@ -148,7 +158,7 @@ class mycv_t(simplecustviewer_t): return False n = self.GetLineNo() print("curline=<%s>" % l) - l = l + idaapi.COLSTR("*", idaapi.SCOLOR_VOIDOP) + l = l + ida_lines.COLSTR("*", ida_lines.SCOLOR_VOIDOP) self.EditLine(n, l) self.RefreshCurrent() print("Edited line %d" % n) @@ -167,7 +177,7 @@ class mycv_t(simplecustviewer_t): return (1, "OnHint, line=%d" % lineno) def Show(self, *args): - ok = simplecustviewer_t.Show(self, *args) + ok = ida_kernwin.simplecustviewer_t.Show(self, *args) if ok: # permanently attach actions to this viewer's popup menu for av in actions_variants: diff --git a/examples/widgets/listings/jump_next_comment.py b/examples/widgets/listings/jump_next_comment.py new file mode 100644 index 0000000..442e0f3 --- /dev/null +++ b/examples/widgets/listings/jump_next_comment.py @@ -0,0 +1,112 @@ +""" +summary: implement a "jump to next comment" action within IDA's disassembly view. + +description: + We want our action not only to find the next line containing a comment, + but to also place the cursor at the right horizontal position. + + To find that position, we will have to inspect the text that IDA + generates, looking for the start of a comment. + However, we won't be looking for a comment "prefix" (e.g., "; "), + as that would be too fragile. + + Instead, we will look for special "tags" that IDA injects into textual + lines, and that bear semantic information. + + Those tags are primarily used for rendering (i.e., switching colors), + but can also be very handy for spotting tokens of interest (registers, + addresses, comments, prefixes, instruction mnemonics, ...) + +keywords: idaview, actions + +see_also: save_and_restore_listing_pos +""" + +import ida_idaapi +import ida_kernwin +import ida_bytes +import ida_moves +import ida_lines + +def find_comment_visual_position_in_tagged_line(line): + """ + We'll look for tags for all types of comments, and if + found return the visual position of the tag in the line + (using 'ida_lines.tag_strlen') + """ + for cmt_type in [ + ida_lines.SCOLOR_REGCMT, + ida_lines.SCOLOR_RPTCMT, + ida_lines.SCOLOR_AUTOCMT]: + cmt_idx = line.find(ida_lines.SCOLOR_ON + cmt_type) + if cmt_idx > -1: + return ida_lines.tag_strlen(line[:cmt_idx]) + return -1 + + +def jump_next_comment(v): + """ + Starting at the current line, keep generating lines until + a comment is found. When this happens, position the viewer + at the right coordinates. + """ + loc = ida_moves.lochist_entry_t() + if ida_kernwin.get_custom_viewer_location(loc, v): + place = loc.place() + idaplace = ida_kernwin.place_t_as_idaplace_t(place) + ea = idaplace.ea + while ea != ida_idaapi.BADADDR: + _, disass = ida_lines.generate_disassembly( + ea, + 1000, # maximum number of lines + False, # as_stack=False + False) # notags=False - we want tags, in order to spot comments + + found = None + + # If this is the start item, start at the next line + start_lnnum = (idaplace.lnnum + 1) if ea == idaplace.ea else 0 + + for rel_lnnum, line in enumerate(disass[start_lnnum:]): + vis_cx = find_comment_visual_position_in_tagged_line(line) + if vis_cx > -1: + found = (ea, rel_lnnum, vis_cx) + break + + if found is not None: + idaplace.ea = found[0] + idaplace.lnnum = start_lnnum + found[1] + loc.set_place(idaplace) + loc.renderer_info().pos.cx = found[2] + ida_kernwin.custom_viewer_jump(v, loc, ida_kernwin.CVNF_LAZY) + break + + ea = ida_bytes.next_head(ea, ida_idaapi.BADADDR) + + +class jump_next_comment_ah_t(ida_kernwin.action_handler_t): + def activate(self, ctx): + jump_next_comment(ctx.widget) + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_FOR_WIDGET \ + if ctx.widget_type == ida_kernwin.BWN_DISASM \ + else ida_kernwin.AST_DISABLE_FOR_WIDGET + + +ACTION_NAME = "jump_next_comment:jump" +ACTION_LABEL = "Jump to the next comment" +ACTION_SHORTCUT = "Ctrl+Alt+C" +ACTION_HELP = "Press %s to jump to the next comment" % ACTION_SHORTCUT + +if ida_kernwin.unregister_action(ACTION_NAME): + print("Unregistered previously-registered action \"%s\"" % ACTION_LABEL) + +if ida_kernwin.register_action( + ida_kernwin.action_desc_t( + ACTION_NAME, + ACTION_LABEL, + jump_next_comment_ah_t(), + ACTION_SHORTCUT)): + print("Registered action \"%s\". %s" % (ACTION_LABEL, ACTION_HELP)) + diff --git a/examples/widgets/listings/save_and_restore_listing_pos.py b/examples/widgets/listings/save_and_restore_listing_pos.py index 69c745f..1feee88 100644 --- a/examples/widgets/listings/save_and_restore_listing_pos.py +++ b/examples/widgets/listings/save_and_restore_listing_pos.py @@ -1,8 +1,21 @@ +""" +summary: save, and then restore, positions in a listing -# -# This example lets the user save the current position of -# the current listing widget, and restore it later -# +description: + Shows how it is possible re-implement IDA's bookmark capability, + using 2 custom actions: one action saves the current location, + and the other restores it. + + Note that, contrary to actual bookmarks, this example: + + * remembers only 1 saved position + * doesn't save that position in the IDB (and therefore cannot + be restored if IDA is closed & reopened.) + +keywords: listing, actions + +see_also: jump_next_comment +""" import ida_kernwin import ida_moves diff --git a/examples/widgets/misc/add_menus.py b/examples/widgets/misc/add_menus.py new file mode 100644 index 0000000..e8fcd6f --- /dev/null +++ b/examples/widgets/misc/add_menus.py @@ -0,0 +1,61 @@ +""" +summary: adding custom menus to IDA + +description: + It is possible to add custom menus to IDA, either at the + toplevel (i.e., into the menubar), or as submenus of existing + menus. + + Notes: + + * the same action can be present in more than 1 menu + * this example does not deal with context menus + +keywords: actions +""" + +import ida_kernwin + +# Create custom menus +ida_kernwin.create_menu("MyToplevelMenu", "&Custom menu", "View") +ida_kernwin.create_menu("MySubMenu", "Custom s&ubmenu", "View/Print internal flags") + +# Create some actions +class greeter_t(ida_kernwin.action_handler_t): + def __init__(self, greetings): + ida_kernwin.action_handler_t.__init__(self) + self.greetings = greetings + + def activate(self, ctx): + print(self.greetings) + + def update(self, ctx): + return ida_kernwin.AST_ENABLE_ALWAYS + +ACTION_NAME_0 = "my_action_0" +ACTION_NAME_1 = "my_action_1" +for action_name, greetings in [ + (ACTION_NAME_0, "Hello, world"), + (ACTION_NAME_1, "Hi there"), +]: + desc = ida_kernwin.action_desc_t( + action_name, "Say \"%s\"" % greetings, greeter_t(greetings)) + if ida_kernwin.register_action(desc): + print("Registered action \"%s\"" % action_name) + + +# Then, let's attach some actions to them - both core actions +# and custom ones is allowed (also, any action can be attached +# to multiple menus.) +for action_name, path in [ + (ACTION_NAME_0, "Custom menu"), + (ACTION_NAME_0, "View/Custom submenu/"), + (ACTION_NAME_1, "Custom menu"), + (ACTION_NAME_1, "View/Custom submenu/"), + ("About", "Custom menu"), + ("About", "View/Custom submenu/"), +]: + ida_kernwin.attach_action_to_menu( + path, + action_name, + ida_kernwin.SETMENU_INS) diff --git a/examples/widgets/tabular_views/custom/choose.py b/examples/widgets/tabular_views/custom/choose.py index bcb9555..38eb527 100644 --- a/examples/widgets/tabular_views/custom/choose.py +++ b/examples/widgets/tabular_views/custom/choose.py @@ -1,3 +1,16 @@ +""" +summary: A widget showing data in a tabular fashion + +description: + Shows how to subclass the ida_kernwin.Choose class to + show data organized in a simple table. + In addition, registers a couple actions that can be applied to it. + +keywords: chooser, actions + +see_also: choose_multi, chooser_with_folders +""" + from __future__ import print_function import ida_kernwin from ida_kernwin import Choose diff --git a/examples/widgets/tabular_views/custom/choose_multi.py b/examples/widgets/tabular_views/custom/choose_multi.py index 0bd69c2..5af20e5 100644 --- a/examples/widgets/tabular_views/custom/choose_multi.py +++ b/examples/widgets/tabular_views/custom/choose_multi.py @@ -1,3 +1,14 @@ +""" +summary: A widget showing data in a tabular fashion, providing multiple selection + +description: + Similar to @{choose}, but with multiple selection + +keywords: chooser, actions + +see_also: choose, chooser_with_folders +""" + from __future__ import print_function from ida_kernwin import Choose @@ -22,6 +33,14 @@ class MyChoose(Choose): self.deflt = n # save current selection return (Choose.NOTHING_CHANGED, ) + def OnDeleteLine(self, indices): + new_items = [] + for idx, item in enumerate(self.items): + if idx not in indices: + new_items.append(item) + self.items = new_items + return [Choose.ALL_CHANGED] + indices + def show(self, num): self.deflt = [x for x in range(len(self.items)) diff --git a/examples/widgets/tabular_views/custom/chooser_with_folders.py b/examples/widgets/tabular_views/custom/chooser_with_folders.py new file mode 100644 index 0000000..686da79 --- /dev/null +++ b/examples/widgets/tabular_views/custom/chooser_with_folders.py @@ -0,0 +1,277 @@ +""" +summary: A widget that can show tabular data either as a simple table, + or with a tree-like structure. + +description: + By adding the necessary bits to a ida_kernwin.Choose subclass, + IDA can show the otherwise tabular data, in a tree-like fashion. + + The important bits to enable this are: + + * ida_dirtree.dirspec_t (and my_dirspec_t) + * ida_kernwin.CH_HAS_DIRTREE + * ida_kernwin.Choose.OnGetDirTree + * ida_kernwin.Choose.OnIndexToInode + +keywords: chooser, folders, actions + +see_also: choose, choose_multi +""" + +import inspect + +import ida_kernwin +import ida_dirtree +import ida_netnode + +class my_dirspec_t(ida_dirtree.dirspec_t): + + def __init__(self, chooser): + ida_dirtree.dirspec_t.__init__(self) + self.chooser = chooser + + def log_frame(self): + if self.chooser.dirspec_log: + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + print(">>> %s: args=%s" % (inspect.getframeinfo(frame)[2], [(i, values[i]) for i in args[1:]])) + + def get_name(self, inode, flags): + self.log_frame() + def find_inode(index, ordinal, _inode): + if inode == _inode: + return "inode #%d" % inode + return self.chooser._for_each_item(find_inode) + + def get_inode(self, dirpath, name): + self.log_frame() + if not name.startswith("inode #"): + return ida_dirtree.direntry_t.BADIDX + return int(name[7:]) + + def get_size(self, inode): + self.log_frame() + return 1 + + def get_attrs(self, inode): + self.log_frame() + + def rename_inode(self, inode, newname): + self.log_frame() + def set_column0_contents(index, ordinal, _inode): + if inode == _inode: + ordinal = self.chooser._get_ordinal_at(index) + self.chooser.netnode.supset(index, newname, SUPVAL_COL0_DATA_TAG) + return True + return self.chooser._for_each_item(set_column0_contents) + + def unlink_inode(self, inode): + self.log_frame() + +ALTVAL_NEW_ORDINAL_TAG = 'L' +ALTVAL_ORDINAL_TAG = 'O' +ALTVAL_INODE_TAG = 'I' +SUPVAL_COL0_DATA_TAG = '0' +SUPVAL_COL1_DATA_TAG = '1' +SUPVAL_COL2_DATA_TAG = '2' + + +class base_idapython_tree_view_t(ida_kernwin.Choose): + + def __init__(self, title, nitems=100, dirspec_log=True, flags=0): + flags |= ida_kernwin.CH_NOIDB + flags |= ida_kernwin.CH_MULTI + flags |= ida_kernwin.CH_HAS_DIRTREE + ida_kernwin.Choose.__init__(self, + title, + [ + ["First", + 10 + | ida_kernwin.Choose.CHCOL_PLAIN + | ida_kernwin.Choose.CHCOL_DRAGHINT + | ida_kernwin.Choose.CHCOL_INODENAME + ], + ["Second", 10 | ida_kernwin.Choose.CHCOL_PLAIN], + ["Third", 10 | ida_kernwin.Choose.CHCOL_PLAIN], + ], + flags=flags) + self.debug_items = False + self.dirspec_log = dirspec_log + self.dirtree = None + self.dirspec = None + self.netnode = ida_netnode.netnode() + self.netnode.create("$ idapython_tree_view %s" % title) + for i in range(nitems): + self._new_item() + + def _get_new_ordinal(self): + return self.netnode.altval(0, ALTVAL_NEW_ORDINAL_TAG) + + def _set_new_ordinal(self, ordinal): + self.netnode.altset(0, ordinal, ALTVAL_NEW_ORDINAL_TAG) + + def _allocate_ordinal(self): + ordinal = self._get_new_ordinal() + self._set_new_ordinal(ordinal + 1) + return ordinal + + def _move_items(self, src, dst, sz): + self.netnode.altshift(src, dst, sz, ALTVAL_ORDINAL_TAG) + self.netnode.altshift(src, dst, sz, ALTVAL_INODE_TAG) + self.netnode.supshift(src, dst, sz, SUPVAL_COL0_DATA_TAG) + self.netnode.supshift(src, dst, sz, SUPVAL_COL1_DATA_TAG) + self.netnode.supshift(src, dst, sz, SUPVAL_COL2_DATA_TAG) + + def _new_item(self, index=None): + new_ord = self._allocate_ordinal() + new_inode = new_ord + 1000 + nitems = self._get_items_count() + if index is None: + index = nitems + else: + assert(index < nitems) + if index < nitems: + self._move_items(index, index + 1, nitems - index) + self.netnode.altset(index, new_ord, ALTVAL_ORDINAL_TAG) + self.netnode.altset(index, new_inode, ALTVAL_INODE_TAG) + return index, new_ord, new_inode + + def _dump_items(self): + if self.debug_items: + data = [] + def collect(index, ordinal, inode): + data.append([inode] + self._make_item_contents_from_index(index)) + self._for_each_item(collect) + import pprint + print(pprint.pformat(data)) + + def _get_ordinal_at(self, index): + assert(index <= self.netnode.altlast(ALTVAL_ORDINAL_TAG)) + return self.netnode.altval(index, ALTVAL_ORDINAL_TAG) + + def _get_inode_at(self, index): + assert(index <= self.netnode.altlast(ALTVAL_INODE_TAG)) + return self.netnode.altval(index, ALTVAL_INODE_TAG) + + def _for_each_item(self, cb): + for i in range(self._get_items_count()): + rc = cb(i, self._get_ordinal_at(i), self._get_inode_at(i)) + if rc is not None: + return rc + + def _get_items_count(self): + l = self.netnode.altlast(ALTVAL_ORDINAL_TAG) + return 0 if l == ida_netnode.BADNODE else l + 1 + + def _make_item_contents_from_index(self, index): + ordinal = self._get_ordinal_at(index) + c0 = self.netnode.supstr(index, SUPVAL_COL0_DATA_TAG) or "a%d" % ordinal + c1 = self.netnode.supstr(index, SUPVAL_COL1_DATA_TAG) or "b%d" % ordinal + c2 = self.netnode.supstr(index, SUPVAL_COL2_DATA_TAG) or "c%d" % ordinal + return [c0, c1, c2] + + def OnGetLine(self, n): + return self._make_item_contents_from_index(n) + + def OnGetSize(self): + return self._get_items_count() + + def OnGetDirTree(self): + self.dirspec = my_dirspec_t(self) + self.dirtree = ida_dirtree.dirtree_t(self.dirspec) + def do_link(index, ordinal, inode): + de = ida_dirtree.direntry_t(inode, False) + self.dirtree.link("/%s" % self.dirtree.get_entry_name(de)) + self._for_each_item(do_link) + return (self.dirspec, self.dirtree) + + def OnIndexToInode(self, n): + return self._get_inode_at(n) + + # Helper function, to be called by "On*" event handlers. + # This will print all the arguments that were passed + def _print_prev_frame(self): + import inspect + stack = inspect.stack() + frame, _, _, _, _, _ = stack[1] + args, _, _, values = inspect.getargvalues(frame) + print("EVENT: %s: args=%s" % ( + inspect.getframeinfo(frame)[2], + [(i, values[i]) for i in args[1:]])) + + def OnSelectionChange(self, sel): + self._print_prev_frame() + + def OnSelectLine(self, sel): + self._print_prev_frame() + + +class idapython_tree_view_t(base_idapython_tree_view_t): + + def __init__(self, title, nitems=100, dirspec_log=True, flags=0): + flags |= ida_kernwin.CH_CAN_INS + flags |= ida_kernwin.CH_CAN_DEL + flags |= ida_kernwin.CH_CAN_EDIT + base_idapython_tree_view_t.__init__(self, title, nitems, dirspec_log, flags) + + def OnInsertLine(self, sel): + self._print_prev_frame() + + # Add item into storage + index = sel[0] if sel else None + prev_inode = self._get_inode_at(index) if index is not None else None + final_index, new_ordinal, new_inode = self._new_item(sel[0] if sel else None) + + # Link in the tree (unless an absolute path is provided, + # 'link()' will use the current directory, which is set + # by the 'OnInsertLine' caller.) + dt = self.dirtree + cwd = dt.getcwd() + parent_de = dt.resolve_path(cwd) + wanted_rank = -1 + if prev_inode is not None: + wanted_rank = dt.get_rank(parent_de.idx, ida_dirtree.direntry_t(prev_inode, False)) + de = ida_dirtree.direntry_t(new_inode, False) + name = dt.get_entry_name(de) + code = dt.link(name) + assert(code == ida_dirtree.DTE_OK) + if wanted_rank >= 0: + assert(ida_dirtree.dirtree_t.isdir(parent_de)) + cur_rank = dt.get_rank(parent_de.idx, de) + dt.change_rank(cwd + "/" + name, wanted_rank - cur_rank) + self._dump_items() + return [ida_kernwin.Choose.ALL_CHANGED] + [final_index] + + def OnDeleteLine(self, sel): + self._print_prev_frame() + dt = self.dirtree + for index in reversed(sorted(sel)): + # Note: when it comes to deletion of items, the dirtree_t is + # designed in such a way folders contents will be re-computed + # on-demand after the deletion of an inode. Consequently, + # there is no need to perform an unlink() operation here, only + # notify the dirtree that something changed + nitems = self._get_items_count() + assert(index < nitems) + inode = self._get_inode_at(index) + self.netnode.altdel(index, ALTVAL_ORDINAL_TAG) + self.netnode.altdel(index, ALTVAL_INODE_TAG) + self._move_items(index + 1, index, nitems - index + 1) + dt.notify_dirtree(False, inode) + self._dump_items() + return [ida_kernwin.Choose.ALL_CHANGED] + + def OnEditLine(self, sel): + self._print_prev_frame() + for idx in sel: + repl = ida_kernwin.ask_str("", 0, "Please enter replacement for index %d" % idx) + if repl: + self.netnode.supset(idx, repl, SUPVAL_COL0_DATA_TAG) + self._dump_items() + return [ida_kernwin.Choose.ALL_CHANGED] + sel + +# ----------------------------------------------------------------------- +if __name__ == '__main__': + form = idapython_tree_view_t("idapython_tree_view_t test", 100) + form.Show() diff --git a/examples/widgets/tabular_views/custom/func_chooser.py b/examples/widgets/tabular_views/custom/func_chooser.py index 80cb07e..e94ce3b 100644 --- a/examples/widgets/tabular_views/custom/func_chooser.py +++ b/examples/widgets/tabular_views/custom/func_chooser.py @@ -1,21 +1,34 @@ +""" +summary: An alternative view over the list of functions + +description: + Partially re-implements the "Functions" widget present in + IDA, with a custom widget. + +keywords: chooser, functions + +see_also: choose, choose_multi, chooser_with_folders +""" + from __future__ import print_function import idautils import idc -from ida_kernwin import Choose +import ida_funcs +import ida_kernwin -class MyChoose(Choose): +class my_funcs_t(ida_kernwin.Choose): def __init__(self, title): - Choose.__init__( + ida_kernwin.Choose.__init__( self, title, - [ ["Address", 10 | Choose.CHCOL_HEX], - ["Name", 30 | Choose.CHCOL_PLAIN] ]) + [ ["Address", 10 | ida_kernwin.Choose.CHCOL_HEX], + ["Name", 30 | ida_kernwin.Choose.CHCOL_PLAIN | ida_kernwin.Choose.CHCOL_FNAME] ]) self.items = [] self.icon = 41 def OnInit(self): - self.items = [ [hex(x), get_func_name(x), x] + self.items = [ [hex(x), ida_funcs.get_func_name(x), x] for x in idautils.Functions() ] return True @@ -28,19 +41,24 @@ class MyChoose(Choose): def OnDeleteLine(self, n): ea = self.items[n][2] idc.del_func(ea) - return (Choose.ALL_CHANGED, n) + return (ida_kernwin.Choose.ALL_CHANGED, n) - def OnSelectLine(self, n): - idc.jumpto(self.items[n][2]) - return (Choose.NOTHING_CHANGED, ) + def OnGetEA(self, n): + return self.items[n][2] def OnRefresh(self, n): self.OnInit() # try to preserve the cursor - return [Choose.ALL_CHANGED] + self.adjust_last_item(n) + return [ida_kernwin.Choose.ALL_CHANGED] + self.adjust_last_item(n) def OnClose(self): print("closed ", self.title) -c = MyChoose("My functions list") -c.Show() + +def show_my_funcs_t(modal=False): + c = my_funcs_t("My functions list") + c.Show(modal=modal) + +if __name__ == "__main__": + show_my_funcs_t() + diff --git a/examples/widgets/tabular_views/custom/lazy_loaded_chooser.py b/examples/widgets/tabular_views/custom/lazy_loaded_chooser.py new file mode 100644 index 0000000..bb1006f --- /dev/null +++ b/examples/widgets/tabular_views/custom/lazy_loaded_chooser.py @@ -0,0 +1,117 @@ + +import idaapi + +class Data_t: + def children(self, path): + num_children = self._simple_hash(path) & 0x7 + num_folders = num_children >> 1 + + for n in range(num_folders): + yield True, "Folder %d" % (n + 1) + for n in range(num_children - num_folders): + yield False, "Item %d" % (n + 1) + + def _simple_hash(self, path): + s = 0 + for c in path: + s += ord(c) + return s + +#----------------------- + +# dirspec for the dirtree +class my_dirspec_t(idaapi.dirspec_t): + def __init__(self): + idaapi.dirspec_t.__init__(self) + self.inodes = [] + self.name_index = {} + + def add_entry(self, dirpath, name): + new_inode = len(self.inodes) + self.inodes.append(name) + self.name_index[dirpath, name] = new_inode + return new_inode + + def get_name(self, inode, flags=0): + if inode >= 0 and inode < len(self.inodes): + return self.inodes[inode] + + def get_inode(self, dirpath, name): + return self.name_index.get((dirpath, name), idaapi.direntry_t.BADIDX) + + def n_inodes(self): + return len(self.inodes) + + def get_attrs(self, inode): + pass + + def rename_inode(self, inode, newname): + pass + + def unlink_inode(self, inode): + pass + +# chooser with dirtree, lazy-loaded +class my_tree_t(idaapi.Choose): + inherited = idaapi.Choose + + def __init__(self): + self.dirspec = my_dirspec_t() + self.dirtree = idaapi.dirtree_t(self.dirspec) + + self.data = Data_t() + + flags = idaapi.CH_TM_FULL_TREE + columns = [ + ["Name", 10 | idaapi.CHCOL_PLAIN] + ] + + self.inherited.__init__(self, "My tree", columns, flags) + + def OnGetSize(self): + return self.dirspec.n_inodes() + + def OnGetLine(self, index): + inode = self.OnIndexToInode(index) + return [self.dirspec.get_name(inode)] + + def OnGetDirTree(self): + return self.dirspec, self.dirtree + + def OnIndexToInode(self, n): + return n + + # TODO: add "dirtree" parameter when the pywraps are ready + def OnLazyLoadDir(self, dir_path): + dirtree = self.dirtree # should use the parameter when ready + + for is_dir, entry in self.data.children(dir_path): + if is_dir: + dirtree.mkdir(entry) + else: + inode = self.dirspec.add_entry(dir_path, entry) + dirtree.link(inode) + return True + +# plugin +class lazy_chooser_plugin_t(idaapi.plugin_t): + flags = 0 + comment = "This is a comment." + help = "This is a test." + wanted_name = "Test a lazy-loader chooser in Python" + wanted_hotkey = "Alt-Shift-F12" + + def init(self): + self.tree = my_tree_t() + print("Registered plugin test-lazy-chooser"); + return idaapi.PLUGIN_KEEP + + def run(self, arg): + self.tree.Show() + + def term(self): + print("Un-registered plugin test-lazy-chooser"); + +def PLUGIN_ENTRY(): + return lazy_chooser_plugin_t() + diff --git a/examples/widgets/tabular_views/strings_window/show_selected_strings.py b/examples/widgets/tabular_views/string_window/show_selected_strings.py similarity index 81% rename from examples/widgets/tabular_views/strings_window/show_selected_strings.py rename to examples/widgets/tabular_views/string_window/show_selected_strings.py index cda92a8..69d3905 100644 --- a/examples/widgets/tabular_views/strings_window/show_selected_strings.py +++ b/examples/widgets/tabular_views/string_window/show_selected_strings.py @@ -1,8 +1,19 @@ +""" +summary: retrieve the strings that are selected in the "Strings" window. -# -# This example lets the user programmatically retrieve -# the strings currently selected in the "Strings window" -# +description: + In IDA it's possible to write actions that can be applied even to + core (i.e., "standard") widgets. The actions in this example use the + action "context" to know what the current selection is. + + This example shows how you can either retrieve string literals data + directly from the chooser (`ida_kernwin.get_chooser_data`), or + by querying the IDB (`ida_bytes.get_strlit_contents`) + +keywords: actions + +see_also: list_strings +""" import ida_kernwin import ida_strlist @@ -57,7 +68,7 @@ klasses = [ show_strings_using_get_strlist_item_ah_t, ] -sw = ida_kernwin.find_widget("Strings window") +sw = ida_kernwin.find_widget("Strings") if not sw: sw = ida_kernwin.open_strings_window(ida_idaapi.BADADDR) diff --git a/examples/widgets/waitbox/show_and_hide_waitbox.py b/examples/widgets/waitbox/show_and_hide_waitbox.py index 0a5be2b..800850a 100644 --- a/examples/widgets/waitbox/show_and_hide_waitbox.py +++ b/examples/widgets/waitbox/show_and_hide_waitbox.py @@ -1,10 +1,11 @@ +""" +summary: showing, updating & hiding the progress dialog -# -# A simple example showing how to use: -# ida_kernwin.show_wait_box -# ida_kernwin.hide_wait_box -# ida_kernwin.replace_wait_box -# +description: + Using the progress dialog (aka 'wait box') primitives. + +keywords: actions +""" import time import random @@ -37,10 +38,8 @@ try: ida_kernwin.replace_wait_box("Processing; step %d/%d" % (i+1, neas)) if perform_decompilation: - try: - ida_hexrays.decompile(ida_funcs.get_func(ea)) - except ida_hexrays.DecompilationFailure as df: - print("Decompilation failure: %s" % df) + if not ida_hexrays.decompile(ea): + print("Decompilation failure: %x" % ea) time.sleep(step_sleep * random.random()) finally: diff --git a/extapi.cpp b/extapi.cpp index 49142b6..05d353f 100644 --- a/extapi.cpp +++ b/extapi.cpp @@ -42,12 +42,12 @@ bool ext_api_t::load(qstring *errbuf) if ( lib_handle == nullptr ) return false; -#define BIND_SYMBOL(Name) \ +#define BIND_SYMBOL_x(Name, fail) \ do \ { \ * (FARPROC *) &Name ## _ptr = GetProcAddress( \ (HMODULE) lib_handle, TEXT(#Name)); \ - if ( Name ## _ptr == nullptr ) \ + if ( Name ## _ptr == nullptr && fail ) \ { \ errbuf->sprnt("GetProcAddress(\"%s\") failed: %s", \ #Name, qstrerror(-1)); \ @@ -55,12 +55,22 @@ bool ext_api_t::load(qstring *errbuf) } \ } while ( 0 ) +#define BIND_SYMBOL(Name) BIND_SYMBOL_x(Name, true) +#define BIND_SYMBOL_WEAK(Name) BIND_SYMBOL_x(Name, false) + BIND_SYMBOL(PyEval_SetTrace); - BIND_SYMBOL(PyRun_SimpleString); - BIND_SYMBOL(PyRun_String); + BIND_SYMBOL(PyRun_SimpleStringFlags); + BIND_SYMBOL(PyRun_StringFlags); +#if PY_MAJOR_VERSION < 3 + BIND_SYMBOL(Py_CompileString); +#else + BIND_SYMBOL(Py_CompileStringExFlags); +#endif BIND_SYMBOL(PyFunction_New); BIND_SYMBOL(PyFunction_GetCode); BIND_SYMBOL(_PyLong_AsByteArray); + BIND_SYMBOL_WEAK(PyEval_ThreadsInitialized); + BIND_SYMBOL_WEAK(PyEval_InitThreads); #undef BIND_SYMBOL @@ -112,8 +122,13 @@ bool ext_api_t::load(qstring *errbuf) } while ( 0 ) BIND_SYMBOL(PyEval_SetTrace); - BIND_SYMBOL(PyRun_SimpleString); - BIND_SYMBOL(PyRun_String); + BIND_SYMBOL(PyRun_SimpleStringFlags); + BIND_SYMBOL(PyRun_StringFlags); +#if PY_MAJOR_VERSION < 3 + BIND_SYMBOL(Py_CompileString); +#else + BIND_SYMBOL(Py_CompileStringExFlags); +#endif BIND_SYMBOL(PyFunction_New); BIND_SYMBOL(PyFunction_GetCode); BIND_SYMBOL(_PyLong_AsByteArray); diff --git a/extapi.hpp b/extapi.hpp index c9a7c4c..82c4359 100644 --- a/extapi.hpp +++ b/extapi.hpp @@ -6,32 +6,51 @@ #ifdef Py_LIMITED_API typedef void *Py_tracefunc; struct PyCompilerFlags; +# if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 9 struct PyFrameObject; +# endif #else -#include +# include #endif typedef void PyEval_SetTrace_t(Py_tracefunc, PyObject *); -typedef int PyRun_SimpleString_t(const char *); -typedef PyObject *PyRun_String_t(const char *, int, PyObject *, PyObject *); +typedef int PyRun_SimpleStringFlags_t(const char *, PyCompilerFlags *); +typedef PyObject *PyRun_StringFlags_t(const char *, int, PyObject *, PyObject *, PyCompilerFlags *); + +#if PY_MAJOR_VERSION < 3 +typedef PyObject *Py_CompileString_t(const char *, const char *, int); +#else +typedef PyObject *Py_CompileStringExFlags_t(const char *, const char *, int, PyCompilerFlags *, int); +#endif typedef PyObject *PyFunction_New_t(PyObject *, PyObject *); typedef PyObject *PyFunction_GetCode_t(PyObject *); typedef int _PyLong_AsByteArray_t(PyObject *, unsigned char *, size_t, int, int); +typedef int PyEval_ThreadsInitialized_t(void); +typedef void PyEval_InitThreads_t(void); + struct ext_api_t { qstring lib_path; void *lib_handle; PyEval_SetTrace_t *PyEval_SetTrace_ptr; - PyRun_SimpleString_t *PyRun_SimpleString_ptr; - PyRun_String_t *PyRun_String_ptr; + PyRun_SimpleStringFlags_t *PyRun_SimpleStringFlags_ptr; + PyRun_StringFlags_t *PyRun_StringFlags_ptr; +#if PY_MAJOR_VERSION < 3 + Py_CompileString_t *Py_CompileString_ptr; +#else + Py_CompileStringExFlags_t *Py_CompileStringExFlags_ptr; +#endif + PyFunction_New_t *PyFunction_New_ptr; PyFunction_GetCode_t *PyFunction_GetCode_ptr; _PyLong_AsByteArray_t *_PyLong_AsByteArray_ptr; + PyEval_ThreadsInitialized_t *PyEval_ThreadsInitialized_ptr; + PyEval_InitThreads_t *PyEval_InitThreads_ptr; ext_api_t() { memset(this, 0, sizeof(*this)); } ~ext_api_t() { clear(); } diff --git a/idapy.hpp b/idapy.hpp deleted file mode 100644 index b8bee0c..0000000 --- a/idapy.hpp +++ /dev/null @@ -1,226 +0,0 @@ -#ifndef IDAPY_HPP -#define IDAPY_HPP 1 - -// This set of wrappers lets us keep the typemaps in an acceptable shape. -// Once IDAPython loses support for Python 2.7, these will go. - -#ifdef PY3 - -inline int IDAPyInt_Check(PyObject *obj) -{ - return PyLong_Check(obj); -} - -inline long IDAPyInt_AsLong(PyObject *io) -{ - return PyLong_AsLong(io); -} - -inline Py_ssize_t IDAPyInt_AsSsize_t(PyObject *pylong) -{ - return PyLong_AsSsize_t(pylong); -} - -inline PyObject *IDAPyInt_FromLong(long ival) -{ - return PyLong_FromLong(ival); -} - -inline int IDAPyIntOrLong_Check(PyObject *obj) -{ - return PyLong_Check(obj); -} - -inline long IDAPyIntOrLong_AsLong(PyObject *obj) -{ - return PyLong_AsLong(obj); -} - -inline int IDAPyStr_Check(PyObject *obj) -{ - return PyUnicode_Check(obj); -} - -inline bool IDAPyStr_AsUTF8(qstring *out, PyObject *obj) -{ - PyObject *utf8 = PyUnicode_AsUTF8String(obj); - bool ok = utf8 != NULL; - if ( ok ) - { - char *buffer = NULL; - Py_ssize_t length = 0; - ok = PyBytes_AsStringAndSize(utf8, &buffer, &length) >= 0; - if ( ok ) - { - out->qclear(); - out->append(buffer, length); - } - } - Py_XDECREF(utf8); - return ok; -} - -inline PyObject *IDAPyStr_FromUTF8(const char *v) -{ - return PyUnicode_FromString(v); -} - -inline PyObject *IDAPyStr_FromUTF8AndSize(const char *v, Py_ssize_t len) -{ - return PyUnicode_FromStringAndSize(v, len); -} - -inline int IDAPyBytes_Check(PyObject *obj) -{ - return PyBytes_Check(obj); -} - -inline int IDAPyBytes_Size(PyObject *obj) -{ - return PyBytes_Size(obj); -} - -inline PyObject *IDAPyBytes_FromMem(const char *v) -{ - return PyBytes_FromString(v); -} - -inline PyObject *IDAPyBytes_FromMemAndSize(const char *v, Py_ssize_t len) -{ - return PyBytes_FromStringAndSize(v, len); -} - -inline int IDAPyBytes_AsMemAndSize(PyObject *obj, char **buffer, Py_ssize_t *length) -{ - return PyBytes_AsStringAndSize(obj, buffer, length); -} - -inline char *IDAPyBytes_AsString(PyObject *o) -{ - return PyBytes_AsString(o); -} - -#else - -inline int IDAPyInt_Check(PyObject *obj) -{ - return PyInt_Check(obj); -} - -inline long IDAPyInt_AsLong(PyObject *io) -{ - return PyInt_AsLong(io); -} - -inline Py_ssize_t IDAPyInt_AsSsize_t(PyObject *pylong) -{ - return PyInt_AsSsize_t(pylong); -} - -inline PyObject *IDAPyInt_FromLong(long ival) -{ - return PyInt_FromLong(ival); -} - -inline int IDAPyIntOrLong_Check(PyObject *obj) -{ - return PyInt_Check(obj) || PyLong_Check(obj); -} - -inline long IDAPyIntOrLong_AsLong(PyObject *obj) -{ - return PyInt_Check(obj) ? PyInt_AsLong(obj) : PyLong_AsLong(obj); -} - -inline int IDAPyStr_Check(PyObject *obj) -{ - return PyString_Check(obj); -} - -inline bool IDAPyStr_AsUTF8(qstring *out, PyObject *obj) -{ - char *buffer = NULL; - Py_ssize_t length = 0; - bool ok = PyString_AsStringAndSize(obj, &buffer, &length) >= 0; - if ( ok ) - { - out->qclear(); - out->append(buffer, length); - } - return ok; -} - -inline PyObject *IDAPyStr_FromUTF8(const char *v) -{ - return PyString_FromString(v); -} - -inline PyObject *IDAPyStr_FromUTF8AndSize(const char *v, Py_ssize_t len) -{ - return PyString_FromStringAndSize(v, len); -} - -inline int IDAPyBytes_Check(PyObject *obj) -{ - return PyString_Check(obj); -} - -inline int IDAPyBytes_Size(PyObject *obj) -{ - return PyString_Size(obj); -} - -inline PyObject *IDAPyBytes_FromMem(const char *v) -{ - return PyString_FromString(v); -} - -inline PyObject *IDAPyBytes_FromMemAndSize(const char *v, Py_ssize_t len) -{ - return PyString_FromStringAndSize(v, len); -} - -inline int IDAPyBytes_AsMemAndSize(PyObject *obj, char **buffer, Py_ssize_t *length) -{ - return PyString_AsStringAndSize(obj, buffer, length); -} - -inline char *IDAPyBytes_AsString(PyObject *o) -{ - return PyString_AsString(o); -} - -#endif - - -//------------------------------------------------------------------------- -// common code -//------------------------------------------------------------------------- - -inline bool IDAPyBytes_AsBytes(bytevec_t *out, PyObject *obj) -{ - char *buffer = NULL; - Py_ssize_t length = 0; - bool ok = IDAPyBytes_AsMemAndSize(obj, &buffer, &length) >= 0; - if ( ok ) - { - out->qclear(); - out->append((const uchar *) buffer, length); - } - return ok; -} - -inline bool IDAPyBytes_as_qtype(qtype *out, PyObject *obj) -{ - bytevec_t bytes; - bool ok = IDAPyBytes_AsBytes(&bytes, obj); - if ( ok ) - { - out->qclear(); - out->append(bytes.begin(), bytes.size()); - } - return ok; -} - -#endif // IDAPY_HPP - diff --git a/idapyswitch.cpp b/idapyswitch.cpp deleted file mode 100644 index d1de4a7..0000000 --- a/idapyswitch.cpp +++ /dev/null @@ -1,720 +0,0 @@ - -/* - * This utility is meant to be used to let IDA switch between - * installed versions of Python3. - * - * See the documentation placed in 'opts.epilog', near the bottom - * of this file. - */ - -#ifdef __NT__ -# include -#endif - -#include - -//lint -esym(1788, iinc) is referenced only by its constructor or destructor - -#include -#include -#include -#include -#include -#include - -#define EXIT_CODE_FORCE_PATH_FAILED 110 - -#define EXIT_CODE_NO_INSTALLS 120 -#define EXIT_CODE_APPLY_FAILED 121 - -#ifdef __LINUX__ -# define EXIT_CODE_SPLIT_DEBUG_EXPAND_DT_NEEDED_ROOM_FAILED 140 -#endif - -#ifdef __GNUC__ // gcc defines those macros, that are in our way -# undef major -# undef minor -#endif - -//------------------------------------------------------------------------- -struct user_args_t -{ - qstring force_path; - bool verbose; - bool auto_apply; - bool dry_run; -#ifdef __UNIX__ - bool ignore_python_config; - uint32 major_version; -#endif -#ifdef __LINUX__ - qstring split_debug_expand_libpython3_dtneeded_room; //lint !e958 padding of 4 bytes needed to align member on a 8 byte boundary -#endif - - user_args_t() - : verbose(false), - auto_apply(false), - dry_run(false) -#ifdef __UNIX__ - , ignore_python_config(false), - major_version(3) -#endif - {} -}; -static user_args_t args; - -//------------------------------------------------------------------------- -static int out_ident = 0; -struct out_ident_inc_t -{ - out_ident_inc_t() { ++out_ident; } - ~out_ident_inc_t() { --out_ident; } -}; - -//------------------------------------------------------------------------- -AS_PRINTF(1, 0) int vout(const char *format, va_list va) -{ - for ( int i = 0; i < out_ident; ++i ) - printf(" "); - return vprintf(format, va); -} - -//------------------------------------------------------------------------- -AS_PRINTF(1, 2) int out(const char *format, ...) -{ - va_list va; - va_start(va, format); - int rc = vout(format, va); - va_end(va); - return rc; -} - -//------------------------------------------------------------------------- -AS_PRINTF(1, 2) int out_verb(const char *format, ...) -{ - int rc = 0; - if ( args.verbose ) - { - out("V: "); - va_list va; - va_start(va, format); - rc = vout(format, va); - va_end(va); - } - return rc; -} - -//------------------------------------------------------------------------- -AS_PRINTF(2, 3) void error(int exit_code, const char *format, ...) -{ - va_list va; - va_start(va, format); - vout(format, va); - va_end(va); - qexit(exit_code); -} - - -//------------------------------------------------------------------------- -struct pylib_version_t -{ - int major; - int minor; - int revision; - qstring modifiers; //lint !e958 padding of 4 bytes needed to align member on a 8 byte boundary - qstring raw; - - pylib_version_t( - int _major=0, - int _minor=0, - int _revision=0, - const char *_modifiers=nullptr, - const char *_raw=nullptr) - : major(_major), - minor(_minor), - revision(_revision), - modifiers(_modifiers), - raw(_raw) {} - - bool valid() const { return major > 0; } - - const char *str(qstring *out) const - { - out->sprnt("%d.%d.%d%s ('%s')", - major, minor, revision, - modifiers.c_str(), raw.c_str()); - return out->c_str(); - } - - DECLARE_COMPARISONS(pylib_version_t) - { - if ( major != r.major ) - return major - r.major; - if ( minor != r.minor ) - return minor - r.minor; - if ( revision != r.revision ) - return revision - r.revision; - // when it comes to modifiers, we'll consider: - // - that a debug version is lesser than a non-debug one - // - that a version with more modifiers is "greater" than - // one with fewer modifiers. - const int has_debug = qstrstr(modifiers.c_str(), "d") != nullptr; - const int r_has_debug = qstrstr(r.modifiers.c_str(), "d") != nullptr; - if ( has_debug != r_has_debug ) - return r_has_debug - has_debug; - return modifiers.length() - r.modifiers.length(); - } -}; -DECLARE_TYPE_AS_MOVABLE(pylib_version_t); - -//------------------------------------------------------------------------- -struct pylib_entry_t -{ - pylib_version_t version; -#ifdef __MAC__ - pylib_version_t compatibility_version; // only for OSX -#endif -#ifdef __NT__ - qstring display_name; -#endif - qstrvec_t paths; - bool preferred; - - pylib_entry_t(const pylib_version_t &_version) - : version(_version), preferred(false) {} - - const char *str(qstring *out) const - { - qstring pbuf, vbuf; - for ( auto const &p : paths ) - { - if ( !pbuf.empty() ) - pbuf.append(", ", 2); - pbuf.append(p); - } - out->sprnt("Version: %s; paths: %s", version.str(&vbuf), pbuf.c_str()); - if ( preferred ) - out->append(" (PREFERRED)"); - return out->c_str(); - } - - bool operator ==(const pylib_entry_t &r) const { return paths == r.paths; } - bool operator !=(const pylib_entry_t &r) const { return !(*this == r); } -}; -DECLARE_TYPE_AS_MOVABLE(pylib_entry_t); -typedef qvector pylib_entry_vec_t; - -//------------------------------------------------------------------------- -struct pylib_entries_t -{ - pylib_entry_vec_t entries; - - pylib_entry_t *get_entry_for_version(const pylib_version_t &version) - { - for ( auto &e : entries ) - if ( e.version == version ) - return &e; - return nullptr; - } - - pylib_entry_t &get_or_create_entry_for_version(const pylib_version_t &version) - { - pylib_entry_t *e = get_entry_for_version(version); - if ( e == nullptr ) - { - pylib_entry_t ne(version); - entries.push_back(ne); - e = &entries.back(); - } - return *e; - } -}; - -#ifdef __UNIX__ -static void set_preferred_pylib_version(pylib_entries_t *result); -#endif - -//------------------------------------------------------------------------- -struct pyver_tool_t -{ - static bool reverse_compare_entries( - const pylib_entry_t &e0, - const pylib_entry_t &e1) - { - if ( e0.preferred ) - return true; - if ( e1.preferred ) - return false; - int rc = e0.version.compare(e1.version); - if ( rc > 0 ) - return true; - return false; - } - - bool path_to_pylib_entry( - pylib_entry_t *out, - const char *path, - qstring *errbuf) const - { - return do_path_to_pylib_entry(out, path, errbuf); - } - - void find_python_libs( - pylib_entries_t *result) const - { - do_find_python_libs(result); - -#ifdef __UNIX__ - set_preferred_pylib_version(result); -#endif - - std::sort(result->entries.begin(), result->entries.end(), reverse_compare_entries); - - qstring buf; - if ( args.verbose ) - { - out_ident_inc_t iinc; - for ( auto const &e : result->entries ) - out_verb("%s\n", e.str(&buf)); - } - } - - bool apply_version( - const pylib_entry_t &entry, - qstring *errbuf) const - { - return do_apply_version(entry, errbuf); - } - -private: - // These three need to be implemented in different - // ways on __NT__, __LINUX__ and __MAC__ - - // Look on the filesystem (or the registry on Windows) - // for available Python3 installations. - void do_find_python_libs(pylib_entries_t *out) const; - - // Given a path to a .so, .dll or .dylib, try and parse the - // Python3 version and produce an entry with it. - bool do_path_to_pylib_entry(pylib_entry_t *entry, const char *path, qstring *errbuf) const; - - // Do patch the idapython.[so|dylib] binary (or the - // registry on Windows) so that they refer to the right - // Python3 version. - bool do_apply_version(const pylib_entry_t &entry, qstring *errbuf) const; -}; - -//------------------------------------------------------------------------- -// Accepts: -// "3.7" -// "3.7.1" -// "3.7m" -// "3.7.1dm" - -//lint -esym(528, parse_python_version_str) not referenced -static bool parse_python_version_str(pylib_version_t *out, const char *raw) -{ - int major = 0; - int minor = 0; - int revision = 0; - int nchars_read; - - const char *p = raw; - - if ( qsscanf(raw, "%d.%d%n", &major, &minor, &nchars_read) != 2 ) - return false; - p += nchars_read; - - if ( p[0] == '.' && qisdigit(p[1]) ) - { - if ( qsscanf(p, ".%d%n", &revision, &nchars_read) != 1 ) - return false; - p += nchars_read; - } - - *out = pylib_version_t(major, minor, revision, p, raw); - return true; -} - -#ifdef __UNIX__ -//------------------------------------------------------------------------- -static bool extract_version_from_str( - pylib_version_t *out, - const char *p, - const char *stem, - const char *end_delimiter) -{ - const size_t stemlen = qstrlen(stem); - if ( !strneq(p, stem, stemlen) ) - return false; - p += stemlen; - const char *p2 = qstrstr(p, end_delimiter); - if ( p2 == nullptr ) - p2 = tail(p); - size_t nbytes = p2 - p; - char raw[MAXSTR]; - if ( nbytes > sizeof(raw) - 1 ) - nbytes = sizeof(raw) - 1; - memmove(raw, p, nbytes); - raw[nbytes] = '\0'; - parse_python_version_str(out, raw); - return true; -} - -//------------------------------------------------------------------------- -static void set_preferred_pylib_version(pylib_entries_t *result) -{ - // If python(3)-config exists, use it to determine the preferred version - if ( args.ignore_python_config ) - return; - - const char *config_util = args.major_version == 3 ? "python3-config" : "python-config"; - qstring cmd; - cmd.sprnt("%s --libs", config_util); - - qstring error; - qstring verbuf; - FILE *fp = popen(cmd.c_str(), "r"); - if ( fp != nullptr ) - { - char outbuf[MAXSTR]; - /*ssize_t nread =*/ qfread(fp, outbuf, sizeof(outbuf)); - int rc = pclose(fp); - if ( rc == 0 ) - { - pylib_version_t version; - const char *p = qstrstr(outbuf, "-lpython"); - if ( p != nullptr - && extract_version_from_str(&version, p, "-lpython", " ") ) - { -#ifdef __MAC__ - // python3-config output on OSX will contain modifiers, i.e. "-lpython3.7m", but when detecting pylibs on OSX - // we extract the python version from the LC_ID_DYLIB load command, which does not contain modifiers. - // it seems safe to ignore the modifiers on OSX, they appear to be only used for compatibility purposes. - version.modifiers.clear(); -#endif - out_verb("Preferred version, as reported by \"%s\": %s\n", cmd.c_str(), version.str(&verbuf)); - pylib_entry_t *e = result->get_entry_for_version(version); - if ( e != nullptr ) - e->preferred = true; - else - error.sprnt("\"%s\" reports preferred " - "version \"%s\", but no corresponding library file " - "was found.\n", cmd.c_str(), version.str(&verbuf)); - } - else - { - error.sprnt("Error parsing \"%s\" output", cmd.c_str()); - } - } - else - { - error.sprnt("Error calling \"%s\"", cmd.c_str()); - } - } - else - { - error.sprnt("\"%s\" is not available", config_util); - } - - if ( !error.empty() ) - out_verb("%s. Cannot determine preferred version this way.\n", - error.c_str()); -} -#endif // __UNIX__ - -#if defined(__LINUX__) || defined(__MAC__) -# ifdef __LINUX__ -# define SOSFX "so" -# else -# define SOSFX "dylib" -# endif - -//------------------------------------------------------------------------- -struct file_visitor_t -{ - virtual int visit_file(const char *path) = 0; -}; - -//------------------------------------------------------------------------- -static int visit_files( - file_visitor_t &dv, - const char *dir, - const char *pattern, - int attr = 0) -{ - char path[QMAXPATH]; - qmakepath(path, sizeof(path), dir, pattern, nullptr); - - qffblk64_t fb; - for ( int code = qfindfirst(path, &fb, attr); - code == 0; - code = qfindnext(&fb) ) - { - qmakepath(path, sizeof(path), dir, fb.ff_name, nullptr); - int ret = dv.visit_file(path); - if ( ret != 0 ) - return ret; - } - - return 0; -} - -//------------------------------------------------------------------------- -//lint -esym(528, for_all_plugin_files) not referenced -static int for_all_plugin_files(file_visitor_t &dv, qstring *errbuf) -{ - char path[QMAXPATH]; - char found = 0; - for ( int is_ea64 = 0; is_ea64 < 2; ++is_ea64 ) - { - // Only patch for actually available IDAs (e.g. don't fail in std edition) - qmakepath(path, sizeof(path), idadir(""), is_ea64 ? "ida64" : "ida", nullptr); - if ( qfileexist(path) ) - { - found++; - qmakepath(path, sizeof(path), idadir(""), "plugins", is_ea64 ? "idapython64." SOSFX : "idapython." SOSFX, nullptr); - int ret = dv.visit_file(path); - if ( ret != 0 ) - return ret; - - qmakepath(path, sizeof(path), idadir(""), "python", args.major_version == 3 ? "3" : "2", is_ea64 ? "ida_64" : "ida_32", nullptr); - ret = visit_files(dv, path, "_ida_*.so"); - if ( ret != 0 ) - return ret; - } - } - if ( !found ) - { - errbuf->sprnt("Nothing to patch in %s", idadir("")); - return -1; - } - - return 0; -} -#endif - -#ifdef __LINUX__ -# include "idapyswitch_linux.cpp" -#else -# ifdef __NT__ -# include "idapyswitch_win.cpp" -# else -# include "idapyswitch_mac.cpp" -# endif -#endif - -//------------------------------------------------------------------------- -static void set_verbose(const char *, void *) { args.verbose = true; } -static void set_auto_apply(const char *, void *) { args.auto_apply = true; } -static void set_dry_run(const char *, void *) { args.dry_run = true; } -static void set_force_path(const char *arg, void *) { args.force_path = arg; } -#ifdef __UNIX__ -static void set_ignore_python_config(const char *, void *) { args.ignore_python_config = true; } -#endif -#ifdef __LINUX__ -static void set_split_debug_expand_libpython3_dtneeded_room(const char *arg, void *) -{ - args.split_debug_expand_libpython3_dtneeded_room = arg; -} -#endif -#ifdef __MAC__ -static void set_use_python2(const char *, void *) { args.major_version = 2; } -#endif - -//------------------------------------------------------------------------- -static const cliopt_t _opts[] = -{ - { 'v', "verbose", "Verbose mode", set_verbose, 0 }, - { 'a', "auto-apply", "Run non-interactively; automatically apply the preferred version (if found)", set_auto_apply, 0 }, - { 'r', "dry-run", "Only report what would happen; don't do it", set_dry_run, 0 }, - { 's', "force-path", -#ifdef __LINUX__ - "Have IDAPython use the specified \"/path/to/libpython[...]so\" shared object", -#else -# ifdef __NT__ - "Have IDAPython use the specified \"\\path\\to\\python3.dll\" DLL", -# else - "Have IDAPython use the specified \"/path/to/libpython[...]dylib\" dylib", -# endif -#endif - set_force_path, - 1 - }, - -#ifdef __UNIX__ - { 'k', "ignore-python-config", "Don't use python-config to find out the preferred version number", set_ignore_python_config, 0 }, -#endif -#ifdef __LINUX__ - { 'x', "split-debug-and-expand-libpython3-dtneeded-room", "Expand the DT_NEEDED room to N bytes, using the local `patchelf` (needed at build-time only)", set_split_debug_expand_libpython3_dtneeded_room, 1 }, -#endif -#ifdef __MAC__ - { 't', "use-python2", "Search for alternate Python2 installations, and patch the Python2 version of idapython", set_use_python2, 0 }, -#endif -}; - -//------------------------------------------------------------------------- -static const char usage_epilog[] = - "Switch between available installations of Python3\n" - "\n" - "Because Python3 does not systematically install a single,\n" - "always-available \"python3.dll\", \"libpython3.so\" or \"python3.dylib\",\n" - "but rather allows for multiple versions of Python3 to be\n" - "installed in parallel on a given system, many tools\n" - "provide a way to switch between those versions.\n" - "\n" - "IDA is no exception, and this tool is one such Python3 'switcher'.\n" - "\n" - "It can be run in 3 ways:\n" - "\n" - " 1) The default, interactive way\n" - " -------------------------------\n" - " > $ idapyswitch\n" - " will look on the filesystem for available Python3 installations,\n" - " present the user with a list of found versions (sorted according\n" - " to preferability), and let the user pick which one IDA should use.\n" - "\n" - " 2) The 'automatic' way\n" - " ----------------------\n" - " > $ idapyswitch --auto\n" - " will look on the filesystem for available Python3 installations,\n" - " and automatically pick the one it deemed the most preferable.\n" - "\n" - " 3) The 'manual' way\n" - " -------------------\n" -#ifdef __NT__ - " > $ idapyswitch --force-path C:\\Python37\\python3.dll\n" -#else -# ifdef __LINUX__ - " > $ idapyswitch --force-path /path/to/libpython3.7dm.so.1.2\n" -# else - " > $ idapyswitch --force-path /path/to/Python.framework/Versions/3.7/Python\n" -# endif -#endif - " will pick the path that the user provided.\n" - "\n" - "Once a version is picked, this tool will do the following:\n" - "\n" -#ifdef __NT__ - " * place the path to the directory containing python3.dll\n" - " into the registry. IDA will pick it up at launch-time,\n" - " and add it to the list of paths that have to be looked\n" - " into by the DLL loader.\n" -#else -# ifdef __LINUX__ - " * patch 'idapython.so' and 'idapython64.so' so that they\n" - " have a DT_NEEDED corresponding to the DT_SONAME of the\n" - " library that was selected.\n" -# else - " * patch 'idapython.dylib' and 'idapython64.dylib' so that\n" - " they refer to the right Python3 dylib.\n" -# endif -#endif - ; - -//------------------------------------------------------------------------- -int main(int argc, const char **argv) -{ - cliopts_t opts(out); - opts.epilog = usage_epilog; - opts.add(_opts, qnumber(_opts)); - opts.apply(argc, argv); - - qstring errbuf; - -#ifdef __LINUX__ - if ( !args.split_debug_expand_libpython3_dtneeded_room.empty() ) - { - if ( !split_debug_expand_libpython3_dtneeded_room( - args.split_debug_expand_libpython3_dtneeded_room.c_str(), - &errbuf) ) - { - error(EXIT_CODE_SPLIT_DEBUG_EXPAND_DT_NEEDED_ROOM_FAILED, - "Cannot split debug/expand DT_NEEDED room: %s\n", - errbuf.c_str()); - } - return 0; - } -#endif - - pyver_tool_t tool; - - if ( !args.force_path.empty() ) - { - const char *path = args.force_path.c_str(); - pylib_version_t dummy_version; - pylib_entry_t entry(dummy_version); - if ( !tool.path_to_pylib_entry(&entry, path, &errbuf) ) - { - error(EXIT_CODE_FORCE_PATH_FAILED, - "Cannot determine python library version for \"%s\": %s\n", - path, errbuf.c_str()); - } - if ( !tool.apply_version(entry, &errbuf) ) - { - qstring buf; - error(EXIT_CODE_FORCE_PATH_FAILED, - "Applying \"%s\" (extracted from path \"%s\") failed: %s\n", - entry.str(&buf), path, errbuf.c_str()); - } - } - else - { - pylib_entries_t entries; - tool.find_python_libs(&entries); - - const size_t nentries = entries.entries.size(); - if ( nentries > 0 ) - { - qstring buf; - const pylib_entry_t *preferred = nullptr; - if ( args.auto_apply ) - { - preferred = &entries.entries[0]; - } - else - { - out("The following Python installations were found:\n"); - for ( size_t i = 0; i < nentries; ++i ) - { - out_ident_inc_t iinc; - const pylib_entry_t &e = entries.entries[i]; - out("#%" FMT_Z ": %s (%s)\n", - i, - e.version.str(&buf), - !e.paths.empty() ? e.paths[0].c_str() : ""); - } - - size_t picked = size_t(-1); - while ( picked >= nentries ) - { - out("Please pick a number between 0 and %" FMT_Z " (default: 0)\n", nentries-1); - char numbuf[MAXSTR]; - qfgets(numbuf, sizeof(numbuf), stdin); - qstring qnumbuf(numbuf); - qnumbuf.rtrim('\n'); - if ( qnumbuf.empty() ) - picked = 0; - else - picked = qatoll(qnumbuf.c_str()); - } - preferred = &entries.entries[picked]; - } - - out("Applying version %s\n", preferred->version.str(&buf)); - if ( !tool.apply_version(*preferred, &errbuf) ) - { - error(EXIT_CODE_APPLY_FAILED, - "Apply failed: %s\n", - errbuf.c_str()); - } - } - else - { - error(EXIT_CODE_NO_INSTALLS, - "No Python installations were found\n"); - } - } - - return 0; -} diff --git a/idapyswitch_linux.cpp b/idapyswitch_linux.cpp deleted file mode 100644 index 73c6537..0000000 --- a/idapyswitch_linux.cpp +++ /dev/null @@ -1,483 +0,0 @@ - -//------------------------------------------------------------------------- -static bool extract_version_from_libpython_filename( - pylib_version_t *out, - const char *p) -{ - return extract_version_from_str(out, p, "libpython", ".so"); -} - -//------------------------------------------------------------------------- -void pyver_tool_t::do_find_python_libs(pylib_entries_t *result) const -{ - // - // Find all libpython3*so* present on disk - // - static const char lib_pattern[] = "libpython3*.so*"; - static const char *dirs[] = - { - "/usr/lib/x86_64-linux-gnu", // Debian/Ubuntu - "/usr/lib64", // RedHat - FHS -#ifdef _DEBUG - "/opt/test-python-libs" -#endif - }; - - qstring verbuf; - - for ( size_t i = 0; i < qnumber(dirs); ++i ) - { - const char *d = dirs[i]; - out_verb("Searching for \"%s\" in \"%s\"\n", lib_pattern, d); - { - out_ident_inc_t iinc; - char path[QMAXPATH]; - qmakepath(path, sizeof(path), d, lib_pattern, nullptr); - qffblk64_t fb; - for ( int code = qfindfirst(path, &fb, 0); - code == 0; - code = qfindnext(&fb) ) - { - pylib_version_t version; - if ( extract_version_from_libpython_filename(&version, fb.ff_name) ) - { - qmakepath(path, sizeof(path), d, fb.ff_name, nullptr); - out_verb("Found: \"%s\" (version: %s)\n", path, version.str(&verbuf)); - pylib_entry_t &e = result->get_or_create_entry_for_version(version); - e.paths.push_back(path); - } - } - } - } -} - -//------------------------------------------------------------------------- -bool pyver_tool_t::do_path_to_pylib_entry( - pylib_entry_t *entry, - const char *path, - qstring *errbuf) const -{ - const char *fname = qbasename(path); - const bool ok = fname != nullptr && qfileexist(path); - if ( ok ) - { - extract_version_from_libpython_filename(&entry->version, fname); - entry->paths.push_back(path); - } - else - { - errbuf->sprnt("Couldn't parse file name \"%s\"", fname); - } - return ok; -} - -#define msg out -#define warning out -AS_PRINTF(1, 2) void ask_for_feedback(const char *format, ...) -{ -} -#include "../../ldr/elf/reader.cpp" - -//------------------------------------------------------------------------- -static bool read_ident_and_header_and_get_dyninfo( - dynamic_info_t *out_dyninfo, - reader_t::dyninfo_tags_t *out_dyninfo_tags, - reader_t &reader, - qstring *errbuf) -{ - if ( !reader.read_ident() ) - { - *errbuf = "Couldn't parse ELF file ident"; - return false; - } - - if ( !reader.read_header() ) - { - *errbuf = "Couldn't parse ELF file header"; - return false; - } - - dynamic_linking_tables_t dlt; - if ( reader.read_section_headers() - && reader.sections.has_valid_dynamic_linking_tables_info() ) - { - dlt = reader.sections.get_dynamic_linking_tables_info(); - } - else if ( reader.read_program_headers() - && reader.pheaders.has_valid_dynamic_linking_tables_info() ) - { - dlt = reader.pheaders.get_dynamic_linking_tables_info(); - } - return dlt.is_valid() - && reader.read_dynamic_info_tags(out_dyninfo_tags, dlt) - && reader.parse_dynamic_info(out_dyninfo, *out_dyninfo_tags); -} - -//------------------------------------------------------------------------- -static bool find_libpython_dt_needed_info( - char out_dt_needed_buf[MAXSTR], - qoff64_t *out_dt_needed_off, - const reader_t::dyninfo_tags_t &dyninfo_tags, - reader_t &reader, - const char *path, - qstring *errbuf) -{ - static const char needed_stem[] = "libpython"; - for ( const auto &dyn : dyninfo_tags ) - { - if ( dyn.d_tag == DT_NEEDED ) - { - const qoff64_t off = reader.dyn_strtab.offset + dyn.d_un; - input_status_t save_excursion(reader); - if ( save_excursion.seek(off) == -1 ) - { - errbuf->sprnt("Couldn't seek to offset %" FMT_64 "u in \"%s\"", off, path); - return false; - } - out_dt_needed_buf[0] = '\0'; - qlread(reader.get_linput(), out_dt_needed_buf, MAXSTR); - out_verb("DT_NEEDED at offset %" FMT_64 "u is: \"%s\"\n", off, out_dt_needed_buf); - if ( strneq(out_dt_needed_buf, needed_stem, sizeof(needed_stem)-1) ) - { - *out_dt_needed_off = off; - return true; - } - } - } - errbuf->sprnt("No DT_NEEDED starting with \"%s\" found", needed_stem); - return false; -} - -//------------------------------------------------------------------------- -static bool patch_dt_needed( - const char *path, - const qstring &_replacement, - qstring *errbuf) -{ - out_verb("Setting relevant DT_NEEDED of \"%s\" to \"%s\"\n", path, _replacement.c_str()); - out_ident_inc_t iinc; - linput_t *linput = open_linput(path, /*remote=*/ false); - if ( linput == nullptr ) - { - errbuf->sprnt("File not found: %s", path); - return false; - } - linput_janitor_t lj(linput); - reader_t reader(linput); - dynamic_info_t dyninfo; - reader_t::dyninfo_tags_t dyninfo_tags; - if ( !read_ident_and_header_and_get_dyninfo( - &dyninfo, - &dyninfo_tags, - reader, - errbuf) ) - { - return false; - } - - char dt_needed[MAXSTR]; - qoff64_t dt_needed_off; - if ( !find_libpython_dt_needed_info( - dt_needed, - &dt_needed_off, - dyninfo_tags, - reader, - path, - errbuf) ) - { - return false; - } - - out_verb("Found DT_NEEDED; currently: \"%s\"\n", dt_needed); - - // count the maximum number of bytes we can store in there - size_t room = 0; - { - input_status_t save_excursion(reader); - if ( save_excursion.seek(dt_needed_off) == -1 ) - { - errbuf->sprnt("Couldn't seek to offset %" FMT_64 "u in \"%s\"", dt_needed_off, path); - return false; - } - - // find the end of the current DT_NEEDED - uint8 byte; - const int64 filesz = qlsize(reader.get_linput()); - while ( qltell(reader.get_linput()) < filesz && reader.read_byte(&byte) == 0 ) - if ( byte == 0 ) - break; - - // then find the beginning of the next string, or the end of file - while ( qltell(reader.get_linput()) < filesz && reader.read_byte(&byte) == 0 ) - if ( byte != 0 ) - break; - room = qltell(reader.get_linput()) - dt_needed_off - 1; - } - - bytevec_t replacement; - replacement.append(_replacement.c_str(), _replacement.length() + 1); - size_t nbytes = replacement.size(); - out_verb("We have room for %" FMT_Z " bytes, and need to write %" FMT_Z "\n", - room, nbytes); - - // and patch - if ( room >= nbytes ) - { - if ( room > nbytes ) - { - out_verb("Expanding replacement with %" FMT_Z " '\\0' bytes, to " - "override possible previous soname that could derail " - "later computation of available room.\n", room - nbytes); - replacement.resize(room, 0); - nbytes = replacement.size(); - } - - FILE *fp = openM(path); - if ( fp != nullptr ) - { - file_janitor_t fpj(fp); - if ( qfseek(fp, dt_needed_off, SEEK_SET) == 0 ) - { - if ( !args.dry_run ) - { - // we want to write the zero as well! - if ( qfwrite(fp, replacement.begin(), nbytes) == nbytes ) - { - out_verb("File \"%s\" successfully patched\n", path); - } - else - { - errbuf->sprnt("Couldn't write %" FMT_Z " bytes to \"%s\"", nbytes, path); - return false; - } - } - else - { - out("Would write %" FMT_Z " bytes (\"%s\") to file\n", - nbytes, replacement.begin()); - } - } - else - { - errbuf->sprnt("Cannot seek to position %" FMT_64 "u in \"%s\"", dt_needed_off, path); - return false; - } - } - else - { - errbuf->sprnt("Couldn't open \"%s\" for writing", path); - return false; - } - } - else - { - errbuf->sprnt("Replacement \"%s\" has a length of %" FMT_Z - " bytes, but there is only room for %" FMT_Z "" - " bytes in the file. Cannot proceed.\n", - replacement.begin(), nbytes, room); - return false; - } - return true; -} - -//------------------------------------------------------------------------- -bool pyver_tool_t::do_apply_version( - const pylib_entry_t &entry, - qstring *errbuf) const -{ - qstring soname; - for ( const auto &path : entry.paths ) - { - out_verb("Trying to find out DT_SONAME from file \"%s\"\n", path.c_str()); - linput_t *linput = open_linput(path.c_str(), /*remote=*/ false); - linput_janitor_t lj(linput); - reader_t reader(linput); - dynamic_info_t dyninfo; - reader_t::dyninfo_tags_t dyninfo_tags; - qstring nonfatal_errbuf; - if ( read_ident_and_header_and_get_dyninfo( - &dyninfo, - &dyninfo_tags, - reader, - &nonfatal_errbuf) ) - { - for ( const auto &dyn : dyninfo_tags ) - { - if ( dyn.d_tag == DT_SONAME ) - { - soname = dyninfo.d_un_str(reader, dyn.d_tag, dyn.d_un); - out_verb("Found DT_SONAME: \"%s\"\n", soname.c_str()); - break; - } - } - } - else - { - out_verb("%s: %s", path.c_str(), nonfatal_errbuf.c_str()); - } - if ( !soname.empty() ) - break; - } - if ( soname.empty() ) - { - *errbuf = "No SONAME found"; - return false; - } - - // Now, do patch - struct ida_local patcher_t : public file_visitor_t - { - const qstring &lsoname; - qstring *lerrbuf; - - patcher_t(const qstring &_soname, qstring *_errbuf) - : lsoname(_soname), lerrbuf(_errbuf) {} - - virtual int visit_file(const char *path) - { - return patch_dt_needed(path, lsoname, lerrbuf) ? 0 : -1; - } - }; - patcher_t patcher(soname, errbuf); - return for_all_plugin_files(patcher, patcher.lerrbuf) == 0; -} - -//------------------------------------------------------------------------- -static int run_command(const char *_cmd, qstring *errbuf) -{ - qstring cmd(_cmd); - if ( args.dry_run ) - cmd.insert("echo "); - int rc = -1; - out_verb("Running: \"%s\"\n", cmd.c_str()); - FILE *fp = popen(cmd.c_str(), "r"); - if ( fp != nullptr ) - { - char outbuf[MAXSTR]; - /*ssize_t nread =*/ qfread(fp, outbuf, sizeof(outbuf)); - rc = pclose(fp); - if ( rc != 0 ) - errbuf->sprnt("Error calling \"%s\"; output is: %s", cmd.c_str(), outbuf); - } - else - { - errbuf->sprnt("Command \"%s\" couldn't be run", cmd.c_str()); - } - return rc; -} - -//------------------------------------------------------------------------- -#define SLOT_SIZE 64 -static bool split_debug_expand_libpython3_dtneeded_room( - const char *path, - qstring *errbuf) -{ - qstring cmdline; - char dt_needed[MAXSTR]; - { - qstring debug_path(path); - debug_path.append(".debug"); - - char path_dir[QMAXPATH]; - if ( !qdirname(path_dir, sizeof(path_dir), path) ) - { - errbuf->sprnt("Cannot obtain directory name for path \"%s\"", path); - return false; - } - - { - char cwd[QMAXPATH]; - qgetcwd(cwd, sizeof(cwd)); - - if ( qchdir(path_dir) == 0 ) - { - out_verb("Changed directory to: \"%s\"\n", path_dir); - } - else - { - errbuf->sprnt("Cannot chdir to \"%s\"", path_dir); - return false; - } - - - cmdline.sprnt("objcopy --only-keep-debug %s %s", qbasename(path), qbasename(debug_path.c_str())); - if ( run_command(cmdline.c_str(), errbuf) != 0 ) - return false; - - cmdline.sprnt("strip -s -x %s", qbasename(path)); - if ( run_command(cmdline.c_str(), errbuf) != 0 ) - return false; - - cmdline.sprnt("objcopy --add-gnu-debuglink=%s %s", qbasename(debug_path.c_str()), qbasename(path)); - if ( run_command(cmdline.c_str(), errbuf) != 0 ) - return false; - - if ( qchdir(cwd) == 0 ) - { - out_verb("Back to directory: \"%s\"\n", cwd); - } - else - { - errbuf->sprnt("Cannot chdir back to \"%s\"", cwd); - return -1; - } - } - - linput_t *linput = open_linput(path, /*remote=*/ false); - if ( linput == nullptr ) - { - errbuf->sprnt("File not found: %s", path); - return false; - } - linput_janitor_t lj(linput); - reader_t reader(linput); - dynamic_info_t dyninfo; - reader_t::dyninfo_tags_t dyninfo_tags; - if ( !read_ident_and_header_and_get_dyninfo( - &dyninfo, - &dyninfo_tags, - reader, - errbuf) ) - { - return false; - } - - qoff64_t dt_needed_off; - if ( !find_libpython_dt_needed_info( - dt_needed, - &dt_needed_off, - dyninfo_tags, - reader, - path, - errbuf) ) - { - return false; - } - } - - qstring replacement(dt_needed); - replacement.resize(SLOT_SIZE, '_'); - - // call patchelf to replace the DT_NEEDED with a padded one - out_verb("Found DT_NEEDED: \"%s\"; replacing with \"%s\"\n", - dt_needed, replacement.c_str()); - - cmdline.sprnt("patchelf --replace-needed %s %s %s", - dt_needed, - replacement.c_str(), - path); - if ( run_command(cmdline.c_str(), errbuf) == 0 ) - { - out_verb("\"%s\" command successful. Restoring the " - "original DT_NEEDED of \"%s\"\n", - cmdline.c_str(), dt_needed); - if ( !patch_dt_needed(path, dt_needed, errbuf) ) - return false; - } - else - { - return false; - } - - return true; -} diff --git a/idapyswitch_mac.cpp b/idapyswitch_mac.cpp deleted file mode 100644 index 7a1692d..0000000 --- a/idapyswitch_mac.cpp +++ /dev/null @@ -1,442 +0,0 @@ -#include - -#define BUILD_IDAPYSWITCH -#include "../../ldr/ar/ar.hpp" -#include "../../ldr/ar/aixar.hpp" -#include "../../ldr/ar/arcmn.cpp" // for is_ar_file -#include "../../ldr/mach-o/common.cpp" - -//------------------------------------------------------------------------- -static void get_python_version(pylib_version_t *out, uint32 mask) -{ - out->revision = uint8(mask); - out->minor = uint8(mask >> 8); - out->major = uint8(mask >> 16); -} - -//------------------------------------------------------------------------- -static uint32 get_python_version_mask(const pylib_version_t &version) -{ - return version.revision - | version.minor << 8 - | version.major << 16; -} - -//------------------------------------------------------------------------- -static bool get_pylib_entry_for_macho( - pylib_entry_t *entry, - const char *path, - qstring *errbuf) -{ - linput_t *li = open_linput(path, false); - if ( li == nullptr ) - { - errbuf->sprnt("Failed to open file: %s", winerr(errno)); - return false; - } - linput_janitor_t lij(li); - - macho_file_t mfile(li); - if ( !mfile.parse_header() ) - { - errbuf->sprnt("Failed to parse Mach-O header"); - return false; - } - - size_t n = 0; - size_t nfat = mfile.get_fat_subfiles(); - if ( nfat == 0 ) - { - if ( mfile.get_subfile_type(0) != macho_file_t::SUBFILE_MACH_64 ) - { - errbuf->sprnt("File is not 64-bit Mach-O"); - return false; - } - } - else - { - bool found_x64 = false; - for ( size_t i = 0; i < nfat; i++ ) - { - if ( mfile.get_subfile_type(i) == macho_file_t::SUBFILE_MACH_64 ) - { - found_x64 = true; - n = i; - break; - } - } - if ( !found_x64 ) - { - errbuf->sprnt("No 64-bit arch found in FAT header"); - return false; - } - } - - if ( !mfile.set_subfile(n) ) - { - errbuf->sprnt("Failed to parse load commands"); - return false; - } - - struct ida_local lcid_finder_t : public macho_lc_visitor_t - { - pylib_entry_t *entry; - lcid_finder_t(pylib_entry_t *_entry) : entry(_entry) {} - virtual int visit_dylib(const struct dylib_command *dl, const char *begin, const char *end) - { - if ( dl->cmd == LC_ID_DYLIB ) - { - get_python_version(&entry->version, dl->dylib.current_version); - get_python_version(&entry->compatibility_version, dl->dylib.compatibility_version); - return 1; - } - return 0; - } - }; - - lcid_finder_t finder(entry); - if ( !mfile.visit_load_commands(finder) ) - { - errbuf->sprnt("failed to determine libpython version: LC_ID_DYLIB not found"); - return false; - } - - if ( entry->version.major != args.major_version ) - { - qstring verbuf; - errbuf->sprnt("unsupported python version %s", entry->version.str(&verbuf)); - return false; - } - - entry->paths.push_back(path); - return true; -} - -//------------------------------------------------------------------------- -static int extract_pylib_bin(pylib_entries_t *result, const char *version_dir) -{ - struct ida_local pylib_finder_t : public file_visitor_t - { - pylib_entries_t *result; - pylib_finder_t(pylib_entries_t *_result) : result(_result) {} - virtual int visit_file(const char *bin) - { - qstring errbuf; - pylib_version_t dummy; - pylib_entry_t entry(dummy); - - if ( get_pylib_entry_for_macho(&entry, bin, &errbuf) ) - { - qstring verbuf; - out_verb("Found: \"%s\" (version: %s)\n", bin, entry.version.str(&verbuf)); - result->entries.add_unique(entry); - return 1; - } - - out_verb("Skipping %s: %s\n", bin, errbuf.c_str()); - return 0; - } - }; - - // the name of the Framework binary can vary. just be safe and examine all files. - pylib_finder_t f(result); - return visit_files(f, version_dir, "*"); -} - -//------------------------------------------------------------------------- -static void extract_pylib_versions(pylib_entries_t *result, const char *framework) -{ - struct ida_local version_visitor_t : public file_visitor_t - { - pylib_entries_t *result; - version_visitor_t(pylib_entries_t *_result) : result(_result) {} - virtual int visit_file(const char *version_dir) - { - extract_pylib_bin(result, version_dir); - return 0; - } - }; - - // examine all Python versions in the Framework - version_visitor_t v(result); - char versions[QMAXPATH]; - qmakepath(versions, sizeof(versions), framework, "Versions", nullptr); - visit_files(v, versions, "*", FA_DIREC); -} - -//------------------------------------------------------------------------- -void pyver_tool_t::do_find_python_libs(pylib_entries_t *result) const -{ - static const char *framework_dirs[] = - { - "/Library/Frameworks", - "/System/Library/Frameworks", - "/Library/Developer/CommandLineTools/Library/Frameworks", - "/Applications/Xcode.app/Contents/Developer/Library/Frameworks", - "/usr/local/opt/python@3/Frameworks", - "/usr/local/opt/python@2/Frameworks", - }; - - struct ida_local python_framework_finder_t : public file_visitor_t - { - pylib_entries_t *result; - python_framework_finder_t(pylib_entries_t *_result) : result(_result) {} - virtual int visit_file(const char *framework) - { - extract_pylib_versions(result, framework); - return 0; - } - }; - - python_framework_finder_t pff(result); - for ( size_t i = 0; i < qnumber(framework_dirs); ++i ) - visit_files(pff, framework_dirs[i], "Python*.framework", FA_DIREC); -} - -//------------------------------------------------------------------------- -bool pyver_tool_t::do_path_to_pylib_entry( - pylib_entry_t *entry, - const char *path, - qstring *errbuf) const -{ - return get_pylib_entry_for_macho(entry, path, errbuf); -} - -//------------------------------------------------------------------------- -// misc information required to patch the load command for libpython -struct python_lc_info_t -{ - uint32 off; // offset of libpython load command - uint32 size; // size of libpython load command - qstring path; // libpython path - pylib_version_t version; // libpython version - bytevec_t header; // header data: mach_header + all load commands - uint32 headerpadsz; // size of header, including all padded bytes - python_lc_info_t(void) : off(0), size(0), headerpadsz(UINT_MAX) {} -}; - -//------------------------------------------------------------------------- -static bool get_python_lc_info(python_lc_info_t *plc, const char *path, qstring *errbuf) -{ - linput_t *li = open_linput(path, false); - if ( li == nullptr ) - { - errbuf->sprnt("Failed to open file: %s", winerr(errno)); - return false; - } - linput_janitor_t lij(li); - - // here we are assuming the target binary was built by us, which means it is a non-fat, - // 64-bit Mach-O file that links against a PythonX.X framework, and has its header padded - // so that we can patch the load commands without issue. - macho_file_t mfile(li); - if ( !mfile.parse_header() ) - { - errbuf->sprnt("Failed to parse Mach-O header"); - return false; - } - if ( mfile.get_fat_subfiles() > 0 || mfile.get_subfile_type(0) != macho_file_t::SUBFILE_MACH_64 ) - { - errbuf->sprnt("Unexpected filetype (expected 64-bit Mach-O)"); - return false; - } - if ( !mfile.set_subfile(0) ) - { - errbuf->sprnt("Failed to parse load commands"); - return false; - } - - const secvec_t §s = mfile.get_sections(); - - // find the section with the smallest fileoff. it will tell us the size of the padded header. - for ( size_t i = 0, nsects = sects.size(); i < nsects; i++ ) - { - const section_64 &s = sects[i]; - - if ( s.size != 0 - && (s.flags & S_ZEROFILL) == 0 - && (s.flags & S_THREAD_LOCAL_ZEROFILL) == 0 - && s.offset < plc->headerpadsz ) - { - plc->headerpadsz = s.offset; - } - } - - if ( plc->headerpadsz == UINT_MAX ) - { - errbuf->sprnt("Failed to determine padded size of the Mach-O header"); - return false; - } - - // extract the libpython load command - struct ida_local python_lc_finder_t : public macho_lc_visitor_t - { - python_lc_info_t *plc; - python_lc_finder_t(python_lc_info_t *_plc) : plc(_plc) - { - plc->off = sizeof(mach_header_64); - } - virtual int visit_any_load_command(const struct load_command *lc, const char *begin, const char *end) - { - if ( lc->cmd == LC_LOAD_DYLIB ) - { - const struct dylib_command *dl = (const struct dylib_command *)begin; - const char *p = begin + dl->dylib.name.offset; - if ( p < end ) - { - qstring _path = qstring(p, end-p); - const char *basename = qbasename(_path.c_str()); - if ( strneq(basename, "Python", 6) || strneq(basename, "libpython", 9) ) - { - plc->path = _path; - plc->size = dl->cmdsize; - get_python_version(&plc->version, dl->dylib.current_version); - return 1; - } - } - } - // not libpython, keep looking - plc->off += lc->cmdsize; - return 0; - } - }; - - python_lc_finder_t finder(plc); - if ( !mfile.visit_load_commands(finder) ) - { - errbuf->sprnt("No libpython dependency found"); - return false; - } - - mfile.get_mach_header_data(&plc->header); - return true; -} - -//------------------------------------------------------------------------- -typedef janitor_t fd_janitor_t; -template <> inline fd_janitor_t::~janitor_t() -{ - qclose(resource); -} - -//------------------------------------------------------------------------- -static bool do_patch( - void *map, - const pylib_entry_t &entry, - const python_lc_info_t &plc, - qstring *errbuf) -{ - const char *path = entry.paths[0].c_str(); - size_t path_len = entry.paths[0].length(); - - // validate the size of the new load command - mach_header_64 *mheader = (mach_header_64 *)map; - uint32 sizeofcmds = mheader->sizeofcmds; - uint32 newcmdsize = align_up(sizeof(dylib_command) + path_len + 1, 8); - - int32 diff = newcmdsize - plc.size; - sizeofcmds += diff; - - if ( sizeofcmds + sizeof(mach_header_64) > plc.headerpadsz ) - { - errbuf->sprnt("Updated load commands do not fit in the Mach-O header"); - return false; - } - - // patch the mach header - mheader->sizeofcmds = sizeofcmds; - - // patch the libpython load command - dylib_command *cmd = (dylib_command *)((uchar *)map + plc.off); - cmd->cmdsize = newcmdsize; - cmd->dylib.current_version = get_python_version_mask(entry.version); - cmd->dylib.compatibility_version = get_python_version_mask(entry.compatibility_version); - - // write the new libpython path - uchar *ptr = (uchar *)cmd + sizeof(dylib_command); - memcpy(ptr, path, path_len); - ptr += path_len; - size_t npad = newcmdsize - (sizeof(dylib_command) + path_len); - memset(ptr, 0, npad); - ptr += npad; - - // copy the original load commands after libpython - const uchar *org = plc.header.begin() + plc.off + plc.size; - const uchar *end = plc.header.end(); - size_t norg = end - org; - memcpy(ptr, org, norg); - ptr += norg; - - // if the new sizeofcmds is smaller, fill excess space with 0s - if ( diff < 0 ) - memset(ptr, 0, -diff); - - return true; -} - -//------------------------------------------------------------------------- -static bool patch_python_dylib_cmd( - const char *path, - const pylib_entry_t &entry, - qstring *errbuf) -{ - out_verb("patching: %s\n", path); - - python_lc_info_t plc; - if ( !get_python_lc_info(&plc, path, errbuf) ) - return false; - - // be careful that we're not patching the wrong build of idapython - if ( entry.version.major != plc.version.major ) - { - errbuf->sprnt("idapython binary %s was not built against python %d", path, entry.version.major); - return false; - } - - int fd = qopen(path, O_RDWR); - if ( fd < 0 ) - { - errbuf->sprnt("Failed to open file: %s", winerr(errno)); - return false; - } - fd_janitor_t fdj(fd); - - qstatbuf sbuf; - memset(&sbuf, 0, sizeof(sbuf)); - if ( qfstat(fd, &sbuf) != 0 ) - { - errbuf->sprnt("fstat() failed: %s", winerr(errno)); - return false; - } - - void *map = mmap(0, sbuf.qst_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - if ( map == MAP_FAILED ) - { - errbuf->sprnt("mmap() failed: %s", winerr(errno)); - return false; - } - - bool ok = do_patch(map, entry, plc, errbuf); - - munmap(map, sbuf.qst_size); - return ok; -} - -//------------------------------------------------------------------------- -bool pyver_tool_t::do_apply_version( - const pylib_entry_t &entry, - qstring *errbuf) const -{ - struct ida_local patcher_t : public file_visitor_t - { - const pylib_entry_t &entry; - qstring *lerrbuf; - patcher_t(const pylib_entry_t &_entry, qstring *_errbuf) : entry(_entry), lerrbuf(_errbuf) {} - virtual int visit_file(const char *path) - { - return patch_python_dylib_cmd(path, entry, lerrbuf) ? 0 : -1; - } - }; - patcher_t patcher(entry, errbuf); - return for_all_plugin_files(patcher, patcher.lerrbuf) == 0; -} diff --git a/idapyswitch_win.cpp b/idapyswitch_win.cpp deleted file mode 100644 index 75028e8..0000000 --- a/idapyswitch_win.cpp +++ /dev/null @@ -1,671 +0,0 @@ - -#define PYTHON3_DLL "python3.dll" - -//------------------------------------------------------------------------- -#define IDA_HKEY HKEY_CURRENT_USER -#define IDA_ADDLIB_SUBKEY L"Software\\Hex-Rays\\IDA" -#define IDA_ADDLIB_VALUE L"Python3TargetDLL" - -#define PYTHON_INSTALLS_KEY L"Software\\Python" -#define PYTHON_INSTALL_PATH_SUBKEY L"InstallPath" -#define PYTHON_DISPLAY_NAME_SUBKEY L"DisplayName" -#define PYTHON_SYSVER_SUBKEY L"SysVersion" -#define PYTHON_SYSARCH_SUBKEY L"SysArchitecture" -#define PYTHON_INSTALL_PATH_DEFAULT_VALUE L"" - -//------------------------------------------------------------------------- -static bool open_ida_addlib_subkey(HKEY *out, REGSAM samDesired) -{ - DWORD err = RegOpenKeyExW(IDA_HKEY, IDA_ADDLIB_SUBKEY, 0, samDesired, out); - if ( err == ERROR_SUCCESS ) - return true; - if ( samDesired == KEY_READ ) - return false; - // opening for write failed; create the subkeys - err = RegCreateKeyExW(IDA_HKEY, IDA_ADDLIB_SUBKEY, 0, NULL, REG_OPTION_NON_VOLATILE, samDesired, NULL, out, NULL); - return err == ERROR_SUCCESS; -} - -//------------------------------------------------------------------------- -static bool read_string( - qstring *out, - HKEY key, - const wchar16_t *value, - qstring *errbuf=nullptr) -{ - DWORD type; - DWORD size; - if ( RegQueryValueExW(key, value, nullptr, &type, nullptr, &size) == ERROR_SUCCESS && type == REG_SZ ) - { - bytevec_t buf; - buf.resize(size); - if ( RegQueryValueExW(key, value, nullptr, &type, buf.begin(), &size) == ERROR_SUCCESS && type == REG_SZ ) - return utf16_utf8(out, (wchar16_t *) buf.begin(), buf.size() / sizeof(wchar16_t)); - } - if ( errbuf != nullptr ) - errbuf->sprnt("Couldn't query value \"%ls\"\n", value); - return false; -} - -//------------------------------------------------------------------------- -static bool write_string( - HKEY key, - const wchar16_t *value, - const char *str, - qstring *errbuf=nullptr) -{ - qwstring wstr; - bool ok = utf8_utf16(&wstr, str) - && RegSetValueExW(key, value, 0, REG_SZ, - (LPBYTE) wstr.c_str(), - wstr.length() * sizeof(wstr[0])) == ERROR_SUCCESS; - if ( !ok ) - errbuf->sprnt("Couldn't write string data \"%s\" to value \"%ls\"", str, value); - return ok; -} - -//------------------------------------------------------------------------- -static bool extract_version_from_path( - pylib_version_t *out, - const char *_path) -{ - qstring qpath(_path); - qpath.rtrim('\\'); - const char *path = qpath.c_str(); - const char *p = qbasename(path); - if ( p == nullptr ) - return false; - if ( !strnieq(p, "Python", 6) ) - return false; - p += 6; - if ( !qisdigit(p[0]) || !qisdigit(p[1]) ) - return false; - out->raw = p; - int major = p[0] - '0'; - int minor = p[1] - '0'; - int revision = 0; - p += 2; - if ( qisdigit(p[0]) ) - { - revision = p[0] - '0'; - ++p; - } - out->major = major; - out->minor = minor; - out->revision = revision; - out->modifiers = p; - return true; -} - - -#pragma comment(lib, "version.lib") -//------------------------------------------------------------------------- -DWORD GetFileVersionNumber(const char *filename, DWORD *pdwMSVer, DWORD *pdwLSVer) -{ - DWORD dwResult = NOERROR; - unsigned uiSize; - DWORD dwVerInfoSize; - DWORD dwHandle; - PBYTE prgbVersionInfo = NULL; - VS_FIXEDFILEINFO *lpVSFixedFileInfo = NULL; - - DWORD dwMSVer = 0xffffffff; - DWORD dwLSVer = 0xffffffff; - - qwstring wfilename; - if ( !utf8_utf16(&wfilename, filename) ) - { - dwResult = ERROR_INVALID_PARAMETER; - goto Finish; - } - - dwVerInfoSize = GetFileVersionInfoSizeW(wfilename.c_str(), &dwHandle); - if ( dwVerInfoSize != 0 ) - { - prgbVersionInfo = (PBYTE)qalloc(dwVerInfoSize); - if ( prgbVersionInfo == NULL ) - { - dwResult = ERROR_NOT_ENOUGH_MEMORY; - goto Finish; - } - - // Read version stamping info - if ( GetFileVersionInfoW(wfilename.c_str(), dwHandle, dwVerInfoSize, prgbVersionInfo) ) - { - // get the value for VS_FIXEDFILEINFO - if ( VerQueryValueW(prgbVersionInfo, L"\\", (LPVOID*)&lpVSFixedFileInfo, &uiSize) && (uiSize != 0) ) - { - dwMSVer = lpVSFixedFileInfo->dwFileVersionMS; - dwLSVer = lpVSFixedFileInfo->dwFileVersionLS; - } - } - else - { - dwResult = GetLastError(); - goto Finish; - } - } - else - { - dwResult = GetLastError(); - } - - out_verb("%s is version %d.%d.%d.%d\n", filename, HIWORD(dwMSVer), LOWORD(dwMSVer), HIWORD(dwLSVer), LOWORD(dwLSVer)); - -Finish: - if ( prgbVersionInfo != NULL ) - qfree(prgbVersionInfo); - if ( pdwMSVer != NULL ) - *pdwMSVer = dwMSVer; - if ( pdwLSVer != NULL ) - *pdwLSVer = dwLSVer; - - return dwResult; -} -//------------------------------------------------------------------------- -static bool extract_version_from_dll( - pylib_version_t *out, - const char *fname) -{ - DWORD dwMSVer, dwLSVer; - DWORD res = GetFileVersionNumber(fname, &dwMSVer, &dwLSVer); - if ( res == NOERROR ) - { - out->raw.sprnt("%d.%d.%d.%d", HIWORD(dwMSVer), LOWORD(dwMSVer), HIWORD(dwLSVer), LOWORD(dwLSVer)); - // Python DLL versions look like 3.7.4150.1013 -> 3.7.4 - out->major = HIWORD(dwMSVer); - out->minor = LOWORD(dwMSVer); - out->revision = HIWORD(dwLSVer) / 1000; - return true; - } - else - { - out_verb("error getting version of \"%s\": %s\n", fname, winerr(res)); - return false; - } -} - -//------------------------------------------------------------------------- -static bool is_python3Y_dll_file_name(const char *fname) -{ - return fname != nullptr - && strnieq(fname, "python3", 7) - && qisdigit(fname[7]) - && strieq(&fname[8], ".dll"); -} - -#include - -#include "../../ldr/pe/pe.h" -#include "../../ldr/pe/common.cpp" - -//------------------------------------------------------------------------- -static bool check_dll_x86_64(const char *path) -{ - linput_t *linput = open_linput(path, /*remote=*/ false); - if ( linput == nullptr ) - return false; - linput_janitor_t lj(linput); - pe_loader_t pl; - return pl.read_header(linput, /*silent=*/ true) - && pl.pe.machine == PECPU_AMD64; -} - -//------------------------------------------------------------------------- -static bool probe_python_install_dir_from_dll_path( - qstrvec_t *out_paths, - pylib_version_t *out_version, - const char *path, - qstring *errbuf) -{ - char dir[QMAXPATH]; - if ( !qdirname(dir, sizeof(dir), path) ) - { - errbuf->sprnt("Couldn't retrieve directory name from \"%s\"", path); - return false; - } - extract_version_from_path(out_version, dir); // not fatal if this fails - - qstring found_python3_dll; - qstring found_python3Y_dll; - static const char dll_pattern[] = "python3*.dll"; - - char pattern_path[QMAXPATH]; - qmakepath(pattern_path, sizeof(pattern_path), dir, dll_pattern, nullptr); - qstring verbuf; - qffblk64_t fb; - for ( int code = qfindfirst(pattern_path, &fb, 0); - code == 0; - code = qfindnext(&fb) ) - { - const char *ext = get_file_ext(fb.ff_name); - if ( ext != nullptr && strieq(ext, "dll") ) - { - char dll_path[QMAXPATH]; - qmakepath(dll_path, sizeof(dll_path), dir, fb.ff_name, nullptr); - pylib_version_t tmp; - if ( extract_version_from_dll(&tmp, path) ) - *out_version = tmp; - out_verb("Found: \"%s\" (version: %s)\n", dll_path, out_version->str(&verbuf)); - out_paths->push_back(dll_path); - - if ( found_python3_dll.empty() && strieq(fb.ff_name, PYTHON3_DLL) ) - found_python3_dll = dll_path; - if ( found_python3Y_dll.empty() && is_python3Y_dll_file_name(fb.ff_name) ) - found_python3Y_dll = dll_path; - } - } - - if ( found_python3_dll.empty() ) - { - errbuf->sprnt("No \"" PYTHON3_DLL "\" file found in directory \"%s\"", dir); - return false; - } - if ( found_python3Y_dll.empty() ) - { - errbuf->sprnt("No \"python3[0-9].dll\" file found in directory \"%s\"", dir); - return false; - } - - if ( !check_dll_x86_64(found_python3_dll.c_str()) - || !check_dll_x86_64(found_python3Y_dll.c_str()) ) - { - errbuf->sprnt("DLLs in directory \"%s\" do not have the x86_64 architecture", dir); - return false; - } - return true; -} - -static bool has_appx_path(qstrvec_t paths) -{ - static qstring appx_path; - if ( appx_path.empty() ) - { - HKEY hkey; - bool ok = false; - if ( RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx", 0, KEY_READ, &hkey) == ERROR_SUCCESS ) - { - ok = read_string(&appx_path, hkey, L"PackageRoot"); - RegCloseKey(hkey); - } - if ( !ok ) - { - // no Appx support, set to dummy value which doesn't occur in paths - appx_path = ""; - } - } - for ( const qstring &path : paths ) - if ( path.find(appx_path) != qstring::npos ) - return true; - - return false; -} -//------------------------------------------------------------------------- -// ignore known bad Pythons: -// 3.8.0 release (https://bugs.python.org/issue37633) -// Anaconda 2019.10 (https://github.com/ContinuumIO/anaconda-issues/issues/11374) -// AppStore Python on Windows 10 (dll can't be loaded from outside of Appx package) -static bool bad_entry(const pylib_entry_t &e) -{ - if ( e.version.major == 3 - && e.version.minor == 8 - && e.version.revision == 0 ) - { - out("Ignoring unusable Python 3.8.0 \"%s\"\n", !e.paths.empty() ? e.paths[0].c_str() : "?"); - return true; - } - if ( e.display_name == "Anaconda 2019.10" ) - { - out("Ignoring unusable Anaconda 2019.10 \"%s\"\n", !e.paths.empty() ? e.paths[0].c_str() : "?"); - return true; - } - if ( has_appx_path(e.paths) ) - { - out("Ignoring unusable AppStore Python \"%s\"\n", !e.paths.empty() ? e.paths[0].c_str() : "?"); - return true; - } - return false; -} - -//------------------------------------------------------------------------- -static void remove_bad_entries(pylib_entries_t *result) -{ - auto p = result->entries.begin(); - while ( p != result->entries.end() ) - { - if ( bad_entry(*p) ) - p = result->entries.erase(p); - else - ++p; - } -} - -//------------------------------------------------------------------------- -// given a key to a path like HKLM\SOFTWARE\Python\PythonCore, -// - enumerate subkeys and their check InstallPath subkey, using the default value as the directory to the installation -// e.g. -// HKLM\SOFTWARE\Python\PythonCore\3.6\InstallPath -> (Default) = C:\Python36\ -// - check for python3.dll and python3Y.dll in it and add them to 'result' -static void enum_python_key(pylib_entries_t *result, const HKEY hkey, qstring *_errbuf, qstring *_verbuf) -{ - qstring &errbuf = *_errbuf; - qstring &verbuf = *_verbuf; - int index = 0; - WCHAR subkey[MAXSTR]; - qstring displayname; - if ( read_string(&displayname, hkey, PYTHON_DISPLAY_NAME_SUBKEY) ) - { - out("Checking installs from \"%s\"\n", displayname.c_str()); - } - while ( true ) - { - DWORD subkey_sz = qnumber(subkey); - if ( RegEnumKeyExW(hkey, index++, subkey, &subkey_sz, - nullptr, nullptr, nullptr, nullptr) != ERROR_SUCCESS ) - { - // no more installs - break; - } - HKEY ihkey; - if ( RegOpenKeyExW(hkey, subkey, 0, KEY_READ, &ihkey) == ERROR_SUCCESS ) - { - out_verb("Opened \"%ls\"\n", subkey); - //opened an install. get its version from SysVersion value - qstring sysver; - pylib_version_t version; - bool ok = read_string(&sysver, ihkey, PYTHON_SYSVER_SUBKEY); - ok = ok && parse_python_version_str(&version, sysver.c_str()) && version.major >= 3; - qstring arch; - if ( read_string(&arch, ihkey, PYTHON_SYSARCH_SUBKEY) && arch != "64bit" ) - ok = false; - if ( ok ) - { - if ( read_string(&displayname, ihkey, PYTHON_DISPLAY_NAME_SUBKEY) ) - { - out("Checking \"%s\" (%s)\n", displayname.c_str(), sysver.c_str()); - } - HKEY vhkey; - if ( RegOpenKeyExW(ihkey, PYTHON_INSTALL_PATH_SUBKEY, 0, KEY_READ, &vhkey) == ERROR_SUCCESS ) - { - qstring install_path; - if ( read_string(&install_path, vhkey, PYTHON_INSTALL_PATH_DEFAULT_VALUE, &errbuf) ) - { - char probe[QMAXPATH]; - qmakepath(probe, sizeof(probe), install_path.c_str(), PYTHON3_DLL, nullptr); - pylib_version_t unused; - qstrvec_t paths; - if ( probe_python_install_dir_from_dll_path( - &paths, - &version, - probe, - &errbuf) ) - { - out("Found: \"%s\" (version: %s)\n", install_path.c_str(), version.str(&verbuf)); - pylib_entry_t &e = result->get_or_create_entry_for_version(version); - e.paths.insert(e.paths.end(), paths.begin(), paths.end()); - e.display_name = displayname; - } - else - { - out_verb("Ignoring directory \"%s\": %s\n", install_path.c_str(), errbuf.c_str()); - } - } - else - { - out_verb("Couldn't query \"%s\"'s value \"%ls\": %s\n", - subkey, - PYTHON_INSTALL_PATH_DEFAULT_VALUE, - errbuf.c_str()); - } - RegCloseKey(vhkey); - } - else - { - out_verb("Couldn't open \"%s\"\n", subkey); - } - } - else - { - out_verb("Not a 64-bit Python 3.x or no version info, skipping\n"); - } - - RegCloseKey(ihkey); - } - } -} -//------------------------------------------------------------------------- -void pyver_tool_t::do_find_python_libs(pylib_entries_t *result) const -{ - qstring errbuf; - qstring verbuf; - - // - // Enumerate: - // * HKEY_LOCAL_MACHINE\Software\Python\PythonCore\* versions - // * HKEY_CURRENT_USER\Software\Python\PythonCore\* versions - // - static const HKEY top_keys[] = - { - HKEY_LOCAL_MACHINE, - HKEY_CURRENT_USER, - }; - - static const char * knames[] = - { - "HLKM", - "HKCU", - }; - for ( size_t i = 0; i < qnumber(top_keys); ++i ) - { - HKEY hkey_python; - out_verb("Searching for subkeys of \"%s\\%ls\"\n", knames[i], PYTHON_INSTALLS_KEY); - if ( RegOpenKeyExW(top_keys[i], PYTHON_INSTALLS_KEY, 0, KEY_READ, &hkey_python) == ERROR_SUCCESS ) - { - WCHAR subkey[MAXSTR]; - int index = 0; - while ( true ) - { - DWORD subkey_sz = qnumber(subkey); - if ( RegEnumKeyExW(hkey_python, index++, subkey, &subkey_sz, - nullptr, nullptr, nullptr, nullptr) != ERROR_SUCCESS ) - { - break; - } - HKEY hkey; - if ( RegOpenKeyExW(hkey_python, subkey, 0, KEY_READ, &hkey) == ERROR_SUCCESS ) - { - out_verb("Found \"%s\\%ls\\%ls\"\n", knames[i], PYTHON_INSTALLS_KEY, subkey); - enum_python_key(result, hkey, &errbuf, &verbuf); - RegCloseKey(hkey); - } - } - RegCloseKey(hkey_python); - } - } - - remove_bad_entries(result); - - // - // See if we already have one registered for IDA - // - { - HKEY idahkey; - if ( open_ida_addlib_subkey(&idahkey, KEY_READ) ) - { - qstring existing; - if ( read_string(&existing, idahkey, IDA_ADDLIB_VALUE) ) - { - out_verb("Previously-used DLL: \"%s\"\n", existing.c_str()); - pylib_version_t version; - qstrvec_t paths; - if ( probe_python_install_dir_from_dll_path( - &paths, - &version, - existing.c_str(), - &errbuf) ) - { - out("IDA previously used: \"%s\" (guessed version: %s). " - "Making this the preferred version.\n", - existing.c_str(), version.str(&verbuf)); - // do we have it in the list? - bool found = false; - for ( pylib_entry_t &e : result->entries ) - { - if ( e.paths.has(existing) ) - { - found = true; - e.preferred = true; - } - } - if ( !found ) - { - // add a new one - pylib_entry_t e(version); - e.paths.swap(paths); - e.preferred = true; - result->entries.push_back(e); - } - } - else - { - out_verb("Ignoring directory \"%s\": %s\n", - existing.c_str(), errbuf.c_str()); - } - } - else - { - out_verb("\"%ls\" exists, but no \"%ls\" value found\n", - IDA_ADDLIB_SUBKEY, IDA_ADDLIB_VALUE); - } - RegCloseKey(idahkey); - } - else - { - out_verb("No \"%ls\" key found\n", IDA_ADDLIB_SUBKEY); - } - } -} - -//------------------------------------------------------------------------- -bool pyver_tool_t::do_path_to_pylib_entry( - pylib_entry_t *entry, - const char *path, - qstring *errbuf) const -{ - return probe_python_install_dir_from_dll_path(&entry->paths, &entry->version, path, errbuf); -} - -//------------------------------------------------------------------------- -bool pyver_tool_t::do_apply_version( - const pylib_entry_t &entry, - qstring *errbuf) const -{ - HKEY idahkey; - if ( !open_ida_addlib_subkey(&idahkey, KEY_WRITE) ) - { - errbuf->sprnt("Couldn't open \"%ls\" key for writing\n", IDA_ADDLIB_SUBKEY); - return false; - } - - qstring replacement; - bool ok = false; - for ( const auto &path : entry.paths ) - { - const char *candidate = qbasename(path.c_str()); - if ( is_python3Y_dll_file_name(candidate) ) - { - replacement = candidate; - ok = write_string(idahkey, IDA_ADDLIB_VALUE, path.c_str(), errbuf); - break; - } - } - RegCloseKey(idahkey); - if ( !ok ) - { - errbuf->sprnt("Couldn't find a suitable python3Y.dll file"); - return false; - } - - // Now, let's handle sip.pyd - out_verb("Handling sip.pyd\n"); - char path[QMAXPATH]; - qmakepath(path, sizeof(path), idadir(""), "python", "3", "PyQt5", "sip.pyd", nullptr); - linput_t *linput = open_linput(path, /*remote=*/ false); - if ( linput == nullptr ) - { - errbuf->sprnt("File not found: %s", path); - return false; - } - linput_janitor_t lj(linput); - pe_loader_t pl; - if ( !pl.read_header(linput, /*silent=*/ true) - || pl.process_sections(linput) != 0 ) - { - errbuf->sprnt("%s: couldn't read header, or process sections", path); - return false; - } - - for ( int ni = 0; ; ++ni ) - { - peimpdir_t tmp; - off_t off = pl.pe.impdir.rva + ni*sizeof(peimpdir_t); - out_verb("Reading import table at %u (0x%x)\n", uint32(off), uint32(off)); - if ( !pl.vmread(linput, off, &tmp, sizeof(tmp)) ) - { - errbuf->sprnt("%s: failed reading import table", path); - } - if ( tmp.dllname == 0 || tmp.looktab == 0 ) - break; - - char dll[MAXSTR]; - bool ok = true; - pl.asciiz(linput, tmp.dllname, dll, sizeof(dll), &ok); - if ( !ok ) - break; - out_verb("Import table entry #%d; dll name: \"%s\"\n", ni, dll); - if ( is_python3Y_dll_file_name(dll) ) - { - out_verb("Found python3Y.dll: \"%s\" at offset %u (0x%x)\n", - dll, tmp.dllname, tmp.dllname); - FILE *fp = openM(path); - if ( fp != nullptr ) - { - file_janitor_t fpj(fp); - if ( qfseek(fp, pl.map_ea(tmp.dllname), SEEK_SET) == 0 ) - { - const size_t nbytes = replacement.size(); // we want to write the zero as well! - if ( !args.dry_run ) - { - if ( qfwrite(fp, replacement.c_str(), nbytes) == nbytes ) - { - out_verb("File \"%s\" successfully patched (with \"%s\")\n", path, replacement.c_str()); - } - else - { - errbuf->sprnt("Couldn't write %" FMT_Z " bytes to \"%s\"", nbytes, path); - return false; - } - } - else - { - out("Would write %" FMT_Z " bytes (\"%s\") to file\n", - nbytes, replacement.c_str()); - } - } - else - { - errbuf->sprnt("Cannot seek to position %u in \"%s\"", tmp.dllname, path); - return false; - } - } - else - { - errbuf->sprnt("Couldn't open \"%s\" for writing", path); - return false; - } - break; - } - } - - return true; -} diff --git a/idapython.cfg b/idapython.cfg index 91f3f55..c10b706 100644 --- a/idapython.cfg +++ b/idapython.cfg @@ -13,9 +13,6 @@ SCRIPT_TIMEOUT = 3 // 'idaapi' wrapper module? AUTOIMPORT_COMPAT_IDAAPI = YES -// Should the plugin automatically load a 6.95 bw-compatibility layer? -AUTOIMPORT_COMPAT_IDA695 = NO - // Is IDAPython namespace-aware? // If yes, then plugins, loaders & processor modules will each be loaded // within their own namespace, preventing namespace pollution. @@ -23,3 +20,6 @@ NAMESPACE_AWARE = YES // Should results be printed by 'sys.displayhook'? REPL_USE_SYS_DISPLAYHOOK = YES + +// Should directories derived from $IDAUSR (e.g., ~/.idapro/python/3) be added to sys.path? +IDAPYTHON_IDAUSR_SYSPATH = YES diff --git a/idapython.cpp b/idapython.cpp index f1f3507..1501af7 100644 --- a/idapython.cpp +++ b/idapython.cpp @@ -27,24 +27,18 @@ #include #include #include +#include -#if defined (PY_MAJOR_VERSION) && (PY_MAJOR_VERSION < 3) -// in Python 2.x many APIs accept char * instead of const char * -GCC_DIAG_OFF(write-strings) -#endif - -#ifdef PY3 -# define PYCODE_OBJECT_TO_PYEVAL_ARG(Expr) (Expr) -#else -# define PYCODE_OBJECT_TO_PYEVAL_ARG(Expr) ((PyCodeObject *) Expr) -#endif +#include "pywraps.hpp" #include "extapi.hpp" #include "extapi.cpp" ext_api_t extapi; -#include "pywraps.hpp" +//------------------------------------------------------------------------- +idapython_plugin_t *idapython_plugin_t::instance = nullptr; + #include "pywraps.cpp" //------------------------------------------------------------------------- @@ -65,84 +59,13 @@ static const char S_IDC_EXEC_PYTHON[] = "exec_python"; static const char S_IDC_EVAL_PYTHON[] = "eval_python"; static const char S_IDAPYTHON_DATA_NODE[] = "IDAPython_Data"; -//------------------------------------------------------------------------- -// Types - -// -enum script_run_when -{ - RUN_ON_DB_OPEN = 0, // run script after opening database (default) - RUN_ON_UI_READY = 1, // run script when UI is ready - RUN_ON_INIT = 2, // run script immediately on plugin load (shortly after IDA starts) -}; - -//------------------------------------------------------------------------- -// Global variables -static bool g_instance_initialized = false; // This instance of the plugin is the one - // that initialized the python interpreter. -static int g_run_when = -1; -static char g_run_script[QMAXPATH]; -static char g_idapython_dir[QMAXPATH]; -static qstring requested_plugin_path; - -//------------------------------------------------------------------------- -// Prototypes and forward declarations - -// // Alias to SWIG_Init -// //lint -esym(526,init_idaapi) not defined -// extern "C" void init_idaapi(void); - -// Plugin run() callback -bool idaapi run(size_t); -static PyObject *get_module_globals_from_path(const char *path); -static bool idaapi IDAPython_extlang_eval_expr( - idc_value_t *rv, - ea_t /*current_ea*/, - const char *expr, - qstring *errbuf); - //lint -e818 could be pointer to const +//lint -e1762 member function '' could be made const //------------------------------------------------------------------------- -// This is a simple tracing code for debugging purposes. -// It might evolve into a tracing facility for user scripts. - -//#define ENABLE_PYTHON_PROFILING -#ifdef ENABLE_PYTHON_PROFILING -#include "compile.h" -static int tracefunc(PyObject *obj, _frame *frame, int what, PyObject *arg) +idapython_plugin_t *ida_export get_plugin_instance() { - PyObject *str; - - /* Catch line change events. */ - /* Print the filename and line number */ - if ( what == PyTrace_LINE ) - { - str = PyObject_Str(frame->f_code->co_filename); - if ( str != NULL ) - { - msg("PROFILING: %s:%d\n", IDAPyStr_AsUTF8(str), frame->f_lineno); - Py_DECREF(str); - } - } - return 0; -} -#endif - -//------------------------------------------------------------------------- -// Helper routines to make Python script execution breakable from IDA -static bool g_ui_ready = false; -static bool g_alert_auto_scripts = true; -static bool g_remove_cwd_sys_path = false; -static bool g_autoimport_compat_idaapi = true; -static bool g_autoimport_compat_ida695 = true; -static bool g_namespace_aware = true; -static bool g_repl_use_sys_displayhook = true; - -//------------------------------------------------------------------------- -bool ida_export is_api695_compat_enabled() -{ - return g_autoimport_compat_ida695; + return idapython_plugin_t::get_instance(); } //------------------------------------------------------------------------- @@ -161,10 +84,10 @@ bool ida_export is_api695_compat_enabled() // processor module while it's doing its thing! // In order to do that, we will have to remember the time-of-entry of // various entry points: -// - IDAPython_extlang_compile_file +// - idapython_plugin_t::extlang_compile_file // - IDAPython_RunStatement // - ... and more importantly in this case: -// - IDAPython_extlang_call_method (called by the IDA kernel to generate text) +// - idapython_plugin_t::extlang_call_method (called by the IDA kernel to generate text) // // Of course, in case the processor module's out/outop misbehaves, we still // want the ability to cancel that operation. The following code allows for @@ -175,7 +98,7 @@ struct exec_entry_t { time_t etime; exec_entry_t() { reset_start_time(); } - void reset_start_time() { etime = time(NULL); } + void reset_start_time() { etime = time(nullptr); } }; DECLARE_TYPE_AS_MOVABLE(exec_entry_t); typedef qvector exec_entries_t; @@ -278,7 +201,7 @@ void execution_t::reset_steps() void execution_t::push() { if ( entries.empty() ) - extapi.PyEval_SetTrace_ptr((Py_tracefunc) execution_t::on_trace, NULL); //lint !e611 cast between pointer to function type '' and pointer to object type 'void *' + extapi.PyEval_SetTrace_ptr((Py_tracefunc) execution_t::on_trace, nullptr); //lint !e611 cast between pointer to function type '' and pointer to object type 'void *' entries.push_back(); LEXEC("push() (now: %d entries)\n", int(entries.size())); } @@ -295,14 +218,14 @@ void execution_t::pop() //------------------------------------------------------------------------- void execution_t::stop_tracking() { - extapi.PyEval_SetTrace_ptr(NULL, NULL); + extapi.PyEval_SetTrace_ptr(nullptr, nullptr); maybe_hide_wait_box(); } //------------------------------------------------------------------------- void execution_t::sync_to_present_time() { - time_t now = time(NULL); + time_t now = time(nullptr); LEXEC("execution_t (%p)::sync_to_present_time() now=%d\n", this, int(now)); for ( size_t i = 0, n = entries.size(); i < n; ++i ) entries[i].etime = now; @@ -344,11 +267,11 @@ void execution_t::reset_current_start_time() } //------------------------------------------------------------------------ -int execution_t::on_trace(PyObject *obj, PyFrameObject *frame, int what, PyObject *arg) +int execution_t::on_trace(PyObject *, PyFrameObject *, int, PyObject *) { #ifdef TESTABLE_BUILD // ensure there was no decrement overflow - QASSERT(0, execution.steps_before_action <= MAX_STEPS_COUNT); + QASSERT(30609, execution.steps_before_action <= MAX_STEPS_COUNT); #endif LEXEC("on_trace() (steps_before_action=%u, entries.size()=%d, timeout=%d)\n", int(execution.steps_before_action), @@ -367,7 +290,7 @@ int execution_t::on_trace(PyObject *obj, PyFrameObject *frame, int what, PyObjec return 0; } - if ( get_active_modal_widget() != NULL ) + if ( get_active_modal_widget() != nullptr ) { LEXEC("on_trace()::a modal widget is active. Not showing our 'interrupt dialog'.\n"); @@ -389,7 +312,7 @@ int execution_t::on_trace(PyObject *obj, PyFrameObject *frame, int what, PyObjec return 0; } - time_t now = time(NULL); + time_t now = time(nullptr); LEXEC("on_trace()::now: %d\n", int(now)); if ( execution.can_interrupt_current(now) ) { @@ -401,7 +324,7 @@ int execution_t::on_trace(PyObject *obj, PyFrameObject *frame, int what, PyObjec { if ( user_clicked_cancel ) { - if ( PyErr_Occurred() == NULL ) + if ( PyErr_Occurred() == nullptr ) { LEXEC("on_trace()::INTERRUPTING (setting 'User interrupted' exception)\n"); PyErr_SetString(PyExc_KeyboardInterrupt, "User interrupted"); @@ -423,26 +346,19 @@ int execution_t::on_trace(PyObject *obj, PyFrameObject *frame, int what, PyObjec } } } - -#ifdef ENABLE_PYTHON_PROFILING - return tracefunc(obj, frame, what, arg); -#else - qnotused(obj); - qnotused(frame); - qnotused(what); - qnotused(arg); return 0; -#endif } //------------------------------------------------------------------------- +//lint -esym(1788, new_execution_t) is referenced only by its constructor or destructor void ida_export setup_new_execution( new_execution_t *instance, bool setup) { if ( setup ) { - instance->created = g_ui_ready && execution.timeout > 0; + instance->created = idapython_plugin_t::get_instance()->ui_ready + && execution.timeout > 0; if ( instance->created ) { PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -465,7 +381,7 @@ void ida_export set_interruptible_state(bool interruptible) //------------------------------------------------------------------------- void ida_export prepare_programmatic_plugin_load(const char *path) { - requested_plugin_path = path; + idapython_plugin_t::get_instance()->requested_plugin_path = path; } //------------------------------------------------------------------------- @@ -498,7 +414,7 @@ static void handle_python_error( qstring *errbuf, bool clear_error = true) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->clear(); // No exception? @@ -508,141 +424,19 @@ static void handle_python_error( PyW_GetError(errbuf, clear_error); } -//------------------------------------------------------------------------ -// Note: The references are borrowed. No need to free them. -static PyObject *get_module_globals(const char *modname=NULL) -{ - if ( modname == NULL || modname[0] == '\0' ) - modname = S_MAIN; - PyObject *module = PyImport_AddModule(modname); - return module == NULL ? NULL : PyModule_GetDict(module); -} - //------------------------------------------------------------------------- -static ref_t _get_sys_displayhook() +#define ENCODING_COOKIE "# -*- coding: UTF-8 -*-\n" +#define ENCODING_COOKIE_LEN 24 +static const char *insert_encoding_cookie(qstring *out) { - ref_t h; - if ( g_repl_use_sys_displayhook ) - { - ref_t py_sys(PyW_TryImportModule("sys")); - if ( py_sys != NULL ) - h = PyW_TryGetAttrString(py_sys.o, "displayhook"); - } - return h; -} - -//------------------------------------------------------------------------- -static const char *bomify(qstring *out) -{ - out->insert(0, UTF8_BOM, UTF8_BOM_SZ); + // This is necessary for pre-3.9 parsers, to parse the + // input text as proper UTF-8. Python 3.9 switches to the PEG + // parser that, by default (and in particular since we don't + // pass PyCompilerFlags), will always assume UTF-8. + out->insert(0, ENCODING_COOKIE, ENCODING_COOKIE_LEN); return out->c_str(); } -//------------------------------------------------------------------------ -static void PythonEvalOrExec( - const char *str, - const char *filename = "") -{ - // Compile as an expression - PYW_GIL_CHECK_LOCKED_SCOPE(); - qstring qstr(str); - newref_t py_code(Py_CompileString(bomify(&qstr), filename, Py_eval_input)); - if ( py_code == NULL || PyErr_Occurred() ) - { - // Not an expression? - PyErr_Clear(); - - // Run as a string - extapi.PyRun_SimpleString_ptr(str); - } - else - { - PyObject *py_globals = get_module_globals(); - newref_t py_result( - PyEval_EvalCode( - PYCODE_OBJECT_TO_PYEVAL_ARG(py_code.o), - py_globals, - py_globals)); - - if ( py_result == NULL || PyErr_Occurred() ) //-V560 is always false: PyErr_Occurred() - { - PyErr_Print(); - } - else - { - ref_t sys_displayhook(_get_sys_displayhook()); - if ( sys_displayhook != NULL ) - { - //lint -esym(1788, res) is referenced only by its constructor or destructor - newref_t res(PyObject_CallFunctionObjArgs(sys_displayhook.o, py_result.o, NULL)); - } - else if ( py_result.o != Py_None ) - { - bool ok = false; - if ( PyUnicode_Check(py_result.o) ) - { - qstring utf8; -#ifdef PY3 - IDAPyStr_AsUTF8(&utf8, py_result.o); -#else - newref_t py_result_utf8(PyUnicode_AsUTF8String(py_result.o)); - ok = py_result_utf8 != NULL; - if ( ok ) - IDAPyStr_AsUTF8(&utf8, py_result_utf8.o); -#endif - msg("%s\n", utf8.c_str()); - } - else - { - qstring result_str; - ok = PyW_ObjectToString(py_result.o, &result_str); - if ( ok ) - msg("%s\n", result_str.c_str()); - } - - if ( !ok ) - msg("*** IDAPython: Couldn't convert evaluation result\n"); - } - } - } -} - -//lint -esym(1788, new_execution_t) is referenced only by its constructor or destructor - -//------------------------------------------------------------------------ -// Executes a simple string -static bool idaapi IDAPython_extlang_eval_snippet( - const char *str, - qstring *errbuf) -{ - PYW_GIL_GET; - PyObject *globals = get_module_globals(); - bool ok; - if ( globals == NULL ) - { - ok = false; - } - else - { - errbuf->clear(); - PyErr_Clear(); - { - new_execution_t exec; - newref_t result(extapi.PyRun_String_ptr( - str, - Py_file_input, - globals, - globals)); - ok = result != NULL && !PyErr_Occurred(); - if ( !ok ) - handle_python_error(errbuf); - } - } - if ( !ok && errbuf->empty() ) - *errbuf = "internal error"; - return ok; -} - //------------------------------------------------------------------------ // Simple Python statement runner function for IDC static error_t idaapi idc_runpythonstatement( @@ -650,7 +444,7 @@ static error_t idaapi idc_runpythonstatement( idc_value_t *res) { qstring errbuf; - bool ok = IDAPython_extlang_eval_snippet(argv[0].c_str(), &errbuf); + bool ok = idapython_plugin_t::extlang_eval_snippet(argv[0].c_str(), &errbuf); if ( ok ) res->set_long(0); @@ -665,7 +459,7 @@ static const ext_idcfunc_t idc_runpythonstatement_desc = S_IDC_EXEC_PYTHON, idc_runpythonstatement, idc_runpythonstatement_args, - NULL, + nullptr, 0, 0 }; @@ -678,7 +472,7 @@ static error_t idaapi idc_eval_python( { qstring errbuf; const char *snippet = argv[0].c_str(); - bool ok = IDAPython_extlang_eval_expr(res, BADADDR, snippet, &errbuf); + bool ok = idapython_plugin_t::extlang_eval_expr(res, BADADDR, snippet, &errbuf); if ( !ok ) return throw_idc_exception(res, errbuf.c_str()); return eOk; @@ -690,7 +484,7 @@ static const ext_idcfunc_t idc_eval_python_desc = S_IDC_EVAL_PYTHON, idc_eval_python, idc_eval_python_args, - NULL, + nullptr, 0, 0 }; @@ -698,112 +492,15 @@ static const ext_idcfunc_t idc_eval_python_desc = //-------------------------------------------------------------------------- static const cfgopt_t opts[] = { - cfgopt_t("SCRIPT_TIMEOUT", &execution.timeout, 0, INT_MAX), - cfgopt_t("ALERT_AUTO_SCRIPTS", &g_alert_auto_scripts, true), - cfgopt_t("REMOVE_CWD_SYS_PATH", &g_remove_cwd_sys_path, true), - cfgopt_t("AUTOIMPORT_COMPAT_IDAAPI", &g_autoimport_compat_idaapi, true), - cfgopt_t("AUTOIMPORT_COMPAT_IDA695", &g_autoimport_compat_ida695, true), - cfgopt_t("NAMESPACE_AWARE", &g_namespace_aware, true), - cfgopt_t("REPL_USE_SYS_DISPLAYHOOK", &g_repl_use_sys_displayhook, true), + CFGOPT_R("SCRIPT_TIMEOUT", idapython_plugin_config_t, execution_timeout, 0, INT_MAX), + CFGOPT_B("ALERT_AUTO_SCRIPTS", idapython_plugin_config_t, alert_auto_scripts, true), + CFGOPT_B("REMOVE_CWD_SYS_PATH", idapython_plugin_config_t, remove_cwd_sys_path, true), + CFGOPT_B("AUTOIMPORT_COMPAT_IDAAPI", idapython_plugin_config_t, autoimport_compat_idaapi, true), + CFGOPT_B("IDAPYTHON_IDAUSR_SYSPATH", idapython_plugin_config_t, idausr_syspath, true), + CFGOPT_B("NAMESPACE_AWARE", idapython_plugin_config_t, namespace_aware, true), + CFGOPT_B("REPL_USE_SYS_DISPLAYHOOK", idapython_plugin_config_t, repl_use_sys_displayhook, true), }; -//------------------------------------------------------------------------- -// Check for the presence of a file in IDADIR/python and complain on error -static bool check_python_dir() -{ - static const char *const script_files[] = - { - S_IDC_MODNAME ".py", - S_INIT_PY, - "ida_idaapi.py", - "idautils.py" - }; - char filepath[QMAXPATH]; - for ( size_t i=0; i < qnumber(script_files); i++ ) - { - qmakepath(filepath, sizeof(filepath), g_idapython_dir, script_files[i], NULL); - if ( !qfileexist(filepath) ) - { - warning("IDAPython: Missing required file: '%s'", script_files[i]); - return false; - } - } - - return true; -} - -//------------------------------------------------------------------------- -// This function will execute a script in the main module context -// It does not use 'import', thus the executed script will not yield a new module name -// Caller of this function should call handle_python_error() to clear the exception and print the error -static int PyRunFile(const char *path) -{ -#ifdef __NT__ - // if the current disk has no space (sic, the current directory, not the one - // with the input file), PyRun_File() will die with a cryptic message that - // C runtime library could not be loaded. So we check the disk space before - // calling it. - char curdir[QMAXPATH]; - // check if the current directory is accessible. if not, qgetcwd won't return - qgetcwd(curdir, sizeof(curdir)); - if ( get_free_disk_space(curdir) == 0 ) - { - warning("No free disk space on %s, python will not be available", curdir); - return 0; - } -#endif - - PYW_GIL_CHECK_LOCKED_SCOPE(); - - PyObject *__main__globals = get_module_globals(); - - //lint -esym(429, fp) custodial pointer not freed or returned - FILE *fp = qfopen(path, "rt"); - if ( fp == NULL ) - return 0; - file_janitor_t fpj(fp); - qstring contents; - const uint64 fpsz = qfsize(fp); - if ( fpsz == 0 ) - return 0; - contents.resize(fpsz); - qfread(fp, contents.begin(), fpsz); - - newref_t code(Py_CompileString(contents.c_str(), path, Py_file_input)); - if ( code == NULL ) - return 0; - - newref_t result(PyEval_EvalCode( - PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), - __main__globals, - __main__globals)); - return result != NULL && !PyErr_Occurred(); -} - -//------------------------------------------------------------------------- -// Execute Python statement(s) from an editor window -void IDAPython_RunStatement(void) -{ - qstring qbuf; - netnode history; - - // Get the existing or create a new netnode in the database - history.create(S_IDAPYTHON_DATA_NODE); - history.getblob(&qbuf, 0, 'A'); - - if ( ask_text(&qbuf, 0, qbuf.c_str(), "ACCEPT TABS\nEnter Python expressions") ) - { - { - PYW_GIL_GET; - new_execution_t exec; - extapi.PyRun_SimpleString_ptr(qbuf.c_str()); - } - - // Store the statement to the database - history.setblob(qbuf.c_str(), qbuf.size(), 0, 'A'); - } -} - //------------------------------------------------------------------------- // Convert return value from Python to IDC or report about an error. // This function also decrements the reference "result" (python variable) @@ -812,146 +509,27 @@ static bool return_python_result( const ref_t &py_result, qstring *errbuf) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->clear(); - if ( py_result == NULL ) + if ( py_result == nullptr ) { handle_python_error(errbuf); return false; } int cvt = CIP_OK; - if ( idc_result != NULL ) + if ( idc_result != nullptr ) { idc_result->clear(); cvt = pyvar_to_idcvar(py_result, idc_result); - if ( cvt < CIP_OK && errbuf != NULL ) + if ( cvt < CIP_OK && errbuf != nullptr ) *errbuf = "ERROR: bad return value"; } return cvt >= CIP_OK; } -//------------------------------------------------------------------------- -// This function will call the Python function 'idaapi.IDAPython_ExecFile' -// It does not use 'import', thus the executed script will not yield a new module name -// It returns the exception and traceback information. -// We use the Python function to execute the script because it knows how to deal with -// module reloading. -static bool IDAPython_ExecFile( - const char *path, - PyObject *globals, - qstring *errbuf, - const char *idaapi_script = S_IDAAPI_EXECSCRIPT, - idc_value_t *second_res = NULL, - bool want_tuple = false) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - ref_t py_execscript(get_idaapi_attr(idaapi_script)); - if ( py_execscript == NULL ) - { - errbuf->sprnt("Could not find %s.%s ?!", S_IDA_IDAAPI_MODNAME, idaapi_script); - return false; - } - - char script[MAXSTR]; - qstrncpy(script, path, sizeof(script)); - strrpl(script, '\\', '/'); - newref_t py_script(IDAPyStr_FromUTF8(script)); - - if ( globals == NULL ) - globals = get_module_globals(); - if ( globals != get_module_globals() ) - { - // Executions that take place in the scope of their own module, - // should have the '__file__' attribute properly set (so that - // it doesn't just get temporarily set and then removed by - // `ida_idaapi.IDAPython_ExecScript`. - newref_t py_file_key(IDAPyStr_FromUTF8(S_FILE)); - if ( !PyDict_Contains(globals, py_file_key.o) ) - PyDict_SetItem(globals, py_file_key.o, py_script.o); - } - borref_t py_false(Py_False); - newref_t py_ret(PyObject_CallFunctionObjArgs( - py_execscript.o, - py_script.o, - globals, - py_false.o, - NULL)); - - // Failure at this point means the script was interrupted - bool interrupted = false; - if ( PyW_GetError(errbuf) || py_ret == NULL ) - { - PyErr_Clear(); - if ( errbuf->empty() ) - *errbuf = "Script interrupted"; - interrupted = true; - } - - bool ok = false; - if ( !interrupted ) - { - PyObject *ret_o; - if ( want_tuple ) - { - if ( second_res != NULL - && PyTuple_Check(py_ret.o) - && PyTuple_Size(py_ret.o) == 2 ) - { - ret_o = PyTuple_GetItem(py_ret.o, 0); // Borrowed reference - } - else - { - INTERR(30444); - } - } - else - { - ret_o = py_ret.o; - } - - if ( ret_o == Py_None ) //-V614 uninitialized 'ret_o' - { - if ( want_tuple ) - { - borref_t ret2_o(PyTuple_GetItem(py_ret.o, 1)); - ok = return_python_result(second_res, ret2_o, errbuf); - } - else - { - ok = true; - } - } - else if ( IDAPyStr_Check(ret_o) ) - { - IDAPyStr_AsUTF8(errbuf, ret_o); - } - else - { - INTERR(30154); - } - } - return ok; -} - -//------------------------------------------------------------------------- -// Execute the Python script from the plugin -static bool RunScript(const char *script) -{ - qstring errbuf; - bool ok; - { - new_execution_t exec; - ok = IDAPython_ExecFile(script, /*globals*/ NULL, &errbuf); - } - if ( !ok ) - warning("IDAPython: error executing '%s':\n%s", script, errbuf.c_str()); - - return ok; -} - //------------------------------------------------------------------------- // This function parses a name into two different components (if it applies). // Example: @@ -965,7 +543,7 @@ static bool parse_py_modname( const char *defmod = S_IDA_IDAAPI_MODNAME) { const char *p = strrchr(full_name, '.'); - if ( p == NULL ) + if ( p == nullptr ) { qstrncpy(modname, defmod, sz); qstrncpy(attrname, full_name, sz); @@ -975,80 +553,7 @@ static bool parse_py_modname( qstrncpy(modname, full_name, p - full_name + 1); qstrncpy(attrname, p + 1, sz); } - return p != NULL; -} - -//------------------------------------------------------------------------- -// Run callback for Python external language evaluator -static bool idaapi IDAPython_extlang_call_func( - idc_value_t *result, - const char *name, - const idc_value_t args[], - size_t nargs, - qstring *errbuf) -{ - PYW_GIL_GET; - // Try to extract module name (if any) from the funcname - char modname[MAXSTR]; - char funcname[MAXSTR]; - bool imported_module = parse_py_modname(name, modname, funcname, MAXSTR); - - bool ok = true; - PyObject *module = NULL; - ref_vec_t pargs; - do - { - // Convert arguments to python - ok = pyw_convert_idc_args(args, nargs, pargs, 0, errbuf); - if ( !ok ) - break; - - const char *final_modname = imported_module ? modname : S_MAIN; - module = PyImport_ImportModule(final_modname); - if ( module == NULL ) - { - if ( errbuf != NULL ) - errbuf->sprnt("couldn't import module %s", final_modname); - ok = false; - break; - } - - PyObject *globals = PyModule_GetDict(module); - QASSERT(30157, globals != NULL); - - PyObject *func = PyDict_GetItemString(globals, funcname); - if ( func == NULL ) - { - if ( errbuf != NULL ) - errbuf->sprnt("undefined function %s", name); - ok = false; - break; - } - - borref_t code(extapi.PyFunction_GetCode_ptr(func)); - qvector pargs_ptrs; - pargs.to_pyobject_pointers(&pargs_ptrs); -#ifdef PY3 - newref_t py_res(PyEval_EvalCodeEx( - PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), - globals, NULL, - pargs_ptrs.begin(), - nargs, - NULL, 0, NULL, 0, NULL, NULL)); -#else - newref_t py_res(PyEval_EvalCodeEx( - PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), - globals, NULL, - pargs_ptrs.begin(), - nargs, - NULL, 0, NULL, 0, NULL)); -#endif - ok = return_python_result(result, py_res, errbuf); - } while ( false ); - - if ( imported_module ) - Py_XDECREF(module); - return ok; + return p != nullptr; } //------------------------------------------------------------------------- @@ -1063,8 +568,8 @@ static void wrap_in_function(qstring *out, const qstring &body, const char *name char *ctx; for ( char *p = qstrtok(buf.begin(), "\n", &ctx); - p != NULL; - p = qstrtok(NULL, "\n", &ctx) ) + p != nullptr; + p = qstrtok(nullptr, "\n", &ctx) ) { static const char FROM_FUTURE_IMPORT_STMT[] = "from __future__ import"; if ( strneq(p, FROM_FUTURE_IMPORT_STMT, sizeof(FROM_FUTURE_IMPORT_STMT)-1) ) @@ -1087,441 +592,6 @@ static void wrap_in_function(qstring *out, const qstring &body, const char *name } } -//------------------------------------------------------------------------- -// Compile callback for Python external language evaluator -static bool idaapi IDAPython_extlang_compile_expr( - const char *name, - ea_t /*current_ea*/, - const char *expr, - qstring *errbuf) -{ - PYW_GIL_GET; - PyObject *globals = get_module_globals(); - bool isfunc = false; - - qstring qstr(expr); - PyObject *code = Py_CompileString(bomify(&qstr), "", Py_eval_input); - if ( code == NULL ) - { - // try compiling as a list of statements - // wrap them into a function - handle_python_error(errbuf); - qstring func; - wrap_in_function(&func, expr, name); - bomify(&func); - code = Py_CompileString(func.c_str(), "", Py_file_input); - if ( code == NULL ) - { - handle_python_error(errbuf); - return false; - } - isfunc = true; - } - - // Create a function out of code - PyObject *func = extapi.PyFunction_New_ptr(code, globals); - - if ( func == NULL ) - { -ERR: - handle_python_error(errbuf); - Py_XDECREF(code); - return false; - } - - int err = PyDict_SetItemString(globals, name, func); - Py_XDECREF(func); - - if ( err ) - goto ERR; - - if ( isfunc ) - { - idc_value_t result; - return IDAPython_extlang_call_func(&result, name, NULL, 0, errbuf); - } - - return true; -} - -//------------------------------------------------------------------------- -// Compile callback for Python external language evaluator -static bool idaapi IDAPython_extlang_compile_file( - const char *path, - qstring *errbuf) -{ - PYW_GIL_GET; - new_execution_t exec; - PyObject *globals = get_module_globals_from_path(path); - return IDAPython_ExecFile(path, globals, errbuf); -} - -//------------------------------------------------------------------------- -// Load processor module callback for Python external language evaluator -static bool idaapi IDAPython_extlang_load_procmod( - idc_value_t *procobj, - // hook_cb_t **idp_notifier, - // void **idp_notifier_ud, - // hook_cb_t **idb_notifier, - // void **idb_notifier_ud, - const char *path, - qstring *errbuf) -{ - PYW_GIL_GET; - bool ok; - { - new_execution_t exec; - PyObject *globals = get_module_globals_from_path(path); - ok = IDAPython_ExecFile(path, globals, errbuf, S_IDAAPI_LOADPROCMOD, procobj, /*want_tuple=*/ true); - } - if ( ok && procobj->is_zero() ) - { - errbuf->clear(); - ok = false; - } - return ok; -} - -//------------------------------------------------------------------------- -// Unload processor module callback for Python external language evaluator -static bool idaapi IDAPython_extlang_unload_procmod( - const char *path, - qstring *errbuf) -{ - PYW_GIL_GET; - new_execution_t exec; - PyObject *globals = get_module_globals_from_path(path); - return IDAPython_ExecFile(path, globals, errbuf, S_IDAAPI_UNLOADPROCMOD); -} - -//------------------------------------------------------------------------- -// Create an object instance -//lint -e605 Increase in pointer capability -static bool idaapi IDAPython_extlang_create_object( - idc_value_t *result, // out: created object or exception - const char *name, // in: object class name - const idc_value_t args[], // in: input arguments - size_t nargs, // in: number of input arguments - qstring *errbuf) // out: error message if evaluation fails -{ - PYW_GIL_GET; - bool ok = false; - ref_vec_t pargs; - do - { - // Parse the object name (to get the module and class name) - char modname[MAXSTR]; - char clsname[MAXSTR]; - parse_py_modname(name, modname, clsname, MAXSTR); - - // Get a reference to the module - ref_t py_mod(PyW_TryImportModule(modname)); - if ( py_mod == NULL ) - { - errbuf->sprnt("Could not import module '%s'!", modname); - break; - } - - // If the class provides an wraper instantiator, use that - ref_t py_res; - if ( nargs == 1 && args[0].vtype == VT_PVOID ) - py_res = try_create_swig_wrapper(py_mod, clsname, args[0].pvoid); - if ( py_res != NULL ) - { -#ifdef PY3 - PyObject_SetAttrString(py_res.o, S_PY_IDCCVT_ID_ATTR, PyLong_FromLong(PY_ICID_OPAQUE)); -#else - PyObject_SetAttrString(py_res.o, S_PY_IDCCVT_ID_ATTR, PyInt_FromLong(PY_ICID_OPAQUE)); -#endif - } - else - { - // Get the class reference - ref_t py_cls(PyW_TryGetAttrString(py_mod.o, clsname)); - if ( py_cls == NULL ) - { - errbuf->sprnt("Could not find class type '%s'!", clsname); - break; - } - - // Error during conversion? - ok = pyw_convert_idc_args(args, nargs, pargs, PYWCVTF_AS_TUPLE, errbuf); - if ( !ok ) - break; - - // Call the constructor - py_res = newref_t(PyObject_CallObject(py_cls.o, pargs.empty() ? NULL : pargs[0].o)); - } - ok = return_python_result(result, py_res, errbuf); - } while ( false ); - - return ok; -} - -//------------------------------------------------------------------------- -// Returns the attribute value of a given object from the global scope -static bool idaapi IDAPython_extlang_get_attr( - idc_value_t *result, // out: result - const idc_value_t *obj, // in: object (may be NULL) - const char *attr) // in: attribute name -{ - PYW_GIL_GET; - int cvt = CIP_FAILED; - do - { - // Get a reference to the module - ref_t py_mod(PyW_TryImportModule(S_MAIN)); - if ( py_mod == NULL ) - break; - - // Object specified: - // - (1) string contain attribute name in the main module - // - (2) opaque object (we use it as is) - ref_t py_obj; - if ( obj != NULL ) - { - // (1) Get attribute from main module - if ( obj->vtype == VT_STR ) - { - py_obj = PyW_TryGetAttrString(py_mod.o, obj->c_str()); - } - // (2) see if opaque object - else - { - // Convert object (expecting opaque object) - cvt = idcvar_to_pyvar(*obj, &py_obj); - if ( cvt != CIP_OK_OPAQUE ) // Only opaque objects are accepted - { - py_obj = ref_t(); - cvt = CIP_FAILED; - break; - } - } - // Get the attribute reference - if ( py_obj == NULL ) - break; - } - // No object specified: - else - { - // ...then work with main module - py_obj = py_mod; - } - // Special case: if attribute not passed then retrieve the class - // name associated associated with the passed object - if ( attr == NULL || attr[0] == '\0' ) - { - cvt = CIP_FAILED; - // Get the class - newref_t cls(PyObject_GetAttrString(py_obj.o, "__class__")); - if ( cls == NULL ) - break; - - // Get its name - newref_t name(PyObject_GetAttrString(cls.o, "__name__")); - if ( name == NULL ) - break; - - // Convert name object to string object - newref_t string(PyObject_Str(name.o)); - if ( string == NULL ) - break; - - // Convert name python string to a C string - qstring clsname; - if ( !IDAPyStr_AsUTF8(&clsname, string.o) ) - break; - - result->set_string(clsname); - cvt = CIP_OK; //lint !e838 - break; - } - - ref_t py_attr(PyW_TryGetAttrString(py_obj.o, attr)); - // No attribute? - if ( py_attr == NULL ) - { - cvt = CIP_FAILED; - break; - } - // Don't store result - if ( result == NULL ) - { - cvt = CIP_OK; - // Decrement attribute (because of GetAttrString) - } - else - { - cvt = pyvar_to_idcvar(py_attr, result); - // // Conversion succeeded and opaque object was passed: - // // Since the object will be passed to IDC, it is likely that IDC value will be - // // destroyed and also destroying the opaque object with it. That is an undesired effect. - // // We increment the reference of the object so that even if the IDC value dies - // // the opaque object remains. So by not decrement reference after GetAttrString() call - // // we are indirectly increasing the reference. If it was not opaque then we decrement the reference. - // if ( cvt >= CIP_OK && cvt != CIP_OK_NODECREF ) - // { - // // Decrement the reference (that was incremented by GetAttrString()) - // py_attr.decref(); - // } - } - } while ( false ); - return cvt >= CIP_OK; -} - -//------------------------------------------------------------------------- -// Returns the attribute value of a given object from the global scope -//lint -e{818} -static bool idaapi IDAPython_extlang_set_attr( - idc_value_t *obj, // in: object name (may be NULL) - const char *attr, // in: attribute name - const idc_value_t &value) -{ - PYW_GIL_GET; - bool ok = false; - do - { - // Get a reference to the module - ref_t py_mod(PyW_TryImportModule(S_MAIN)); - if ( py_mod == NULL ) - break; - ref_t py_obj; - if ( obj != NULL ) - { - // Get the attribute reference (from just a name) - if ( obj->vtype == VT_STR ) - { - py_obj = PyW_TryGetAttrString(py_mod.o, obj->c_str()); - } - else - { - int cvt = idcvar_to_pyvar(*obj, &py_obj); - if ( cvt != CIP_OK_OPAQUE ) // Only opaque objects are accepted - py_obj = ref_t(); - } - // No object to set_attr on? - if ( py_obj == NULL ) - break; - } - else - { - // set_attr on the main module - py_obj = py_mod; - } - // Convert the value - ref_t py_var; - int cvt = idcvar_to_pyvar(value, &py_var); - if ( cvt >= CIP_OK ) - { - ok = PyObject_SetAttrString(py_obj.o, attr, py_var.o) != -1; - // if ( cvt != CIP_OK_NODECREF ) - // Py_XDECREF(py_var); - } - } while ( false ); - return ok; -} - -//------------------------------------------------------------------------- -// Calculator callback for Python external language evaluator -//lint -e{818} -static bool idaapi IDAPython_extlang_eval_expr( - idc_value_t *rv, - ea_t /*current_ea*/, - const char *expr, - qstring *errbuf) -{ - PYW_GIL_GET; - PyObject *globals = get_module_globals(); - bool ok = globals != NULL; - ref_t result; - if ( ok ) - { - { - new_execution_t exec; - result = newref_t(extapi.PyRun_String_ptr(expr, Py_eval_input, globals, globals)); - } - ok = return_python_result(rv, result, errbuf); - } - return ok; -} - -//------------------------------------------------------------------------- -static bool idaapi IDAPython_extlang_call_method( - idc_value_t *result, - const idc_value_t *idc_obj, - const char *method_name, - const idc_value_t args[], - size_t nargs, - qstring *errbuf) -{ - PYW_GIL_GET; - // Check for unsupported usage of call_method. - // Mainly a method call requires an object and a method. - if ( method_name == NULL ) - { - *errbuf = "call_method does not support this operation"; - return false; - } - // Behave like run() - else if ( idc_obj == NULL ) - { - new_execution_t exec; - return IDAPython_extlang_call_func(result, method_name, args, nargs, errbuf); - } - - // Holds conversion status of input object - int obj_cvt; - bool ok = false; - ref_vec_t pargs; - do - { - // Convert input object - ref_t py_obj; - obj_cvt = idcvar_to_pyvar(*idc_obj, &py_obj); - if ( obj_cvt < CIP_OK ) - { - *errbuf = "Failed to convert input object to Python value"; - break; - } - - ref_t py_method(PyW_TryGetAttrString(py_obj.o, method_name)); - if ( py_method == NULL || !PyCallable_Check(py_method.o) ) - { - errbuf->sprnt("The input object does not have a callable method called '%s'", method_name); - break; - } - - // Convert arguments to python objects - uint32 flags = PYWCVTF_AS_TUPLE; - // if we are running a ida_idaapi.plugin_t.run, we want the 'int64' - // to be converted to an unsigned python long - if ( streq(method_name, "run") ) - { - ref_t py_ida_idaapi_mod(PyW_TryImportModule(S_IDA_IDAAPI_MODNAME)); - if ( py_ida_idaapi_mod != NULL ) - { - ref_t py_plugin_t_cls(PyW_TryGetAttrString(py_ida_idaapi_mod.o, "plugin_t")); - if ( py_plugin_t_cls != NULL ) - { - if ( PyObject_IsInstance(py_obj.o, py_plugin_t_cls.o) ) - flags |= PYWCVTF_INT64_AS_UNSIGNED_PYLONG; - } - } - } - ok = pyw_convert_idc_args(args, nargs, pargs, flags, errbuf); - if ( !ok ) - break; - - { - new_execution_t exec; - newref_t py_res(PyObject_CallObject(py_method.o, pargs.empty() ? NULL : pargs[0].o)); - ok = return_python_result(result, py_res, errbuf); - } - } while ( false ); - - return ok; -} - //------------------------------------------------------------------------- struct python_highlighter_t : public ida_syntax_highlighter_t { @@ -1552,6 +622,15 @@ struct python_highlighter_t : public ida_syntax_highlighter_t add_keywords("self", HF_KEYWORD2); add_keywords("def", HF_KEYWORD3); } + + void add_new_keywords() + { + // Add new keywords (3.10+): + int py_major = 0, py_minor= 0; + qsscanf(Py_GetVersion(), "%d.%d", &py_major, &py_minor); + if ( py_major >= 3 && py_minor >= 10 ) + add_keywords("match|case", HF_KEYWORD1); + } }; static python_highlighter_t python_highlighter; @@ -1563,17 +642,17 @@ extlang_t extlang_python = "Python", // name "py", // filext &python_highlighter, - IDAPython_extlang_compile_expr, - IDAPython_extlang_compile_file, - IDAPython_extlang_call_func, - IDAPython_extlang_eval_expr, - IDAPython_extlang_eval_snippet, - IDAPython_extlang_create_object, - IDAPython_extlang_get_attr, - IDAPython_extlang_set_attr, - IDAPython_extlang_call_method, - IDAPython_extlang_load_procmod, - IDAPython_extlang_unload_procmod, + idapython_plugin_t::extlang_compile_expr, + idapython_plugin_t::extlang_compile_file, + idapython_plugin_t::extlang_call_func, + idapython_plugin_t::extlang_eval_expr, + idapython_plugin_t::extlang_eval_snippet, + idapython_plugin_t::extlang_create_object, + idapython_plugin_t::extlang_get_attr, + idapython_plugin_t::extlang_set_attr, + idapython_plugin_t::extlang_call_method, + idapython_plugin_t::extlang_load_procmod, + idapython_plugin_t::extlang_unload_procmod, }; //------------------------------------------------------------------------- @@ -1582,12 +661,1173 @@ idaman void ida_export enable_extlang_python(bool enable) if ( enable ) select_extlang(&extlang_python); else - select_extlang(NULL); + select_extlang(nullptr); +} + +//------------------------------------------------------------------------- +static const cli_t cli_python = +{ + sizeof(cli_t), + 0, + "Python", + "Python - IDAPython plugin", + "Enter any Python expression", + idapython_plugin_t::cli_execute_line, + nullptr, + nullptr, + idapython_plugin_t::cli_find_completions, +}; + +//------------------------------------------------------------------------- +// Control the Python CLI status +idaman void ida_export enable_python_cli(bool enable) +{ + if ( enable ) + install_command_interpreter(&cli_python); + else + remove_command_interpreter(&cli_python); +} + +//------------------------------------------------------------------------ +// Converts the global IDC variable "ARGV" into a Python variable. +// The arguments will then be accessible via 'idc' module / 'ARGV' variable. +void convert_idc_args() +{ + PYW_GIL_CHECK_LOCKED_SCOPE(); + newref_t py_args(PyList_New(0)); + + idc_value_t *idc_args = find_idc_gvar(S_IDC_ARGS_VARNAME); + if ( idc_args != nullptr ) + { + idc_value_t attr; + char attr_name[20] = { "0" }; + for ( int i=1; get_idcv_attr(&attr, idc_args, attr_name) == eOk; i++ ) + { + PyList_Insert(py_args.o, i, PyUnicode_FromString(attr.c_str())); + qsnprintf(attr_name, sizeof(attr_name), "%d", i); + } + } + + // Get reference to the IDC module (it is imported by init.py) + ref_t py_mod(PyW_TryImportModule(S_IDC_MODNAME)); + if ( py_mod ) + PyObject_SetAttrString(py_mod.o, S_IDC_ARGS_VARNAME, py_args.o); +} + +//------------------------------------------------------------------------- +enum module_lifecycle_notification_t +{ + mln_init = 0, + mln_term, + mln_closebase +}; +static void send_modules_lifecycle_notification(module_lifecycle_notification_t what) +{ + PYW_GIL_GET; + for ( size_t i = modules_callbacks.size(); i > 0; --i ) + { + const module_callbacks_t &m = modules_callbacks[i-1]; + switch ( what ) + { + case mln_init: m.init(); break; + case mln_term: m.term(); break; + case mln_closebase: m.closebase(); break; + } + if ( PyErr_Occurred() ) + { + msg("Error during module lifecycle notification:\n"); + PyErr_Print(); + } + } +} + +//------------------------------------------------------------------------- +static wchar_t *utf8_wchar_t(qvector *out, const char *in) +{ +#ifdef __NT__ + qwstring tmp; + utf8_utf16(&tmp, in); + out->qclear(); + out->insert(out->begin(), tmp.begin(), tmp.end()); +#else + const char *p = in; + while ( *p != '\0' ) + { + wchar32_t cp = get_utf8_char(&p); + if ( cp == 0 || cp == BADCP ) + break; + out->push_back(cp); + } + out->push_back(0); // we're not dealing with a qstring; have to do it ourselves +#endif + return out->begin(); +} + +//------------------------------------------------------------------------- +idapython_plugin_t::idapython_plugin_t() + : initialized(false), + ui_ready(false) +#ifdef TESTABLE_BUILD + , user_code_lenient(-1) +#endif +{ + QASSERT(30615, instance == nullptr); + instance = this; +} + +//------------------------------------------------------------------------- +// Cleaning up Python +idapython_plugin_t::~idapython_plugin_t() +{ + QASSERT(30616, instance == this); + + if ( !initialized || Py_IsInitialized() == 0 ) + goto SKIP_CLEANUP; + + if ( PyGILState_GetThisThreadState() ) + { + // Note: No 'PYW_GIL_GET' here, as it would try to release + // the state after 'Py_Finalize()' has been called. + // ...nor is it a good idea to try to put it in its own scope, + // as it will PyGILState_Release() the current thread & GIL, and + // Py_Finalize() itself wouldn't be happy then. + PyGILState_Ensure(); + } + + // Let all modules perform possible de-initialization + send_modules_lifecycle_notification(mln_term); + + unhook_from_notification_point(HT_IDB, on_idb_notification, this); + + // Remove the CLI + enable_python_cli(false); + + // Remove the extlang + remove_extlang(&extlang_python); + + // De-init pywraps + deinit_pywraps(); + + // Uninstall IDC function + del_idc_func(idc_eval_python_desc.name); + del_idc_func(idc_runpythonstatement_desc.name); + + // Shut the interpreter down + Py_Finalize(); + initialized = false; + +#ifdef TESTABLE_BUILD + if ( !is_user_code_lenient() ) // Check that all hooks were unhooked + QASSERT(30509, hook_data_vec.empty()); +#endif + for ( size_t i = hook_data_vec.size(); i > 0; --i ) + { + const hook_data_t &hd = hook_data_vec[i-1]; + idapython_unhook_from_notification_point(hd.type, hd.cb, hd.ud); + } +SKIP_CLEANUP: + instance = nullptr; +} + +#ifdef __NT__ +// for MessageBox() +#pragma comment(lib, "user32") +#endif +//-------------------------------------------------------------------------- +// show an error message, possibly during teardown of the process +AS_PRINTF(1, 2) static void lerror(const char *format, ...) +{ + va_list va; + va_start(va, format); +#ifdef __NT__ + char buf[MAXSTR]; + qvsnprintf(buf, sizeof(buf), format, va); + // use MB_SERVICE_NOTIFICATION to prevent UI message loop from running since ida.exe is mostly shut down at this point + // and can crash if messages get processed + MessageBox(nullptr, buf, "IDA", MB_ICONERROR|MB_SERVICE_NOTIFICATION); +#else + qveprintf(format, va); + //qgetchar(); +#endif +} + +#define ERRMSG "Unexpected fatal error while initializing Python runtime. Please run idapyswitch to confirm or change the used Python runtime" + +volatile sig_atomic_t initdone = 0; +//------------------------------------------------------------------------- +// some Python runtimes may call abort() or exit() if they don't like something +// catch this to avoid silent IDA exit +static void exithandler(void) +{ + if ( !initdone ) + { + initdone = 1; + lerror(ERRMSG); + // return to caller to continue exiting normally + } +} + +//lint -e2761 call to non-async-signal-safe function '' within signal handler '' +//lint -e2762 call to signal registration function 'signal' within signal handler 'aborthandler' +//------------------------------------------------------------------------- +// catch unexpected abort() call +static void aborthandler(int sig) +{ + lerror(ERRMSG); + initdone = 1; // avoid duplicate message on exit + // from https://www.gnu.org/software/libc/manual/html_node/Termination-in-Handler.html + /* Now reraise the signal. We reactivate the signal's + default handling, which is to terminate the process. + We could just call exit or abort, + but reraising the signal sets the return status + from the process correctly. */ + signal(sig, SIG_DFL); + raise(sig); +} + +//------------------------------------------------------------------------- +// Initialize the Python environment +bool idapython_plugin_t::init() +{ + if ( Py_IsInitialized() != 0 ) + return true; + + // Read configuration + read_config_file2("idapython.cfg", opts, qnumber(opts), + /*defhdlr=*/ nullptr, + /*defines=*/ nullptr, + /*ndefines=*/ 0, + /*obj=*/ &this->config); + parse_plugin_options(); + + // Form the absolute path to IDA\python folder + { + char buf[QMAXPATH]; + qmakepath(buf, sizeof(buf), idadir(PYTHON_DIR_NAME), QSTRINGIZE(PY_MAJOR_VERSION), nullptr); + idapython_dir = buf; + } + + execution.timeout = config.execution_timeout; + + // Check for the presence of essential files + if ( !_check_python_dir() ) + return false; + + char path[QMAXPATH]; + qstring errbuf; + if ( !extapi.load(&errbuf) ) + { + warning("Couldn't initialize IDAPython: %s", errbuf.c_str()); + return false; + } + +#ifdef __MAC__ + if ( !extapi.lib_path.empty() ) + { + // On OSX we should explicitly call Py_SetPythonHome(). + // When using the system Python installation, sys.path will contain paths to other + // Python installations if they appear in $PATH. This can cause fatal errors during + // the system python's initialization. + // + // Note: The path will be something like: + // /System/Library/Frameworks/Python.framework/Versions/2.5/Python + // We need to strip the last part. + // + // Also, use a permanent buffer because Py_SetPythonHome() just stores a pointer + char utf8_pyhomepath[MAXSTR]; + qstrncpy(utf8_pyhomepath, extapi.lib_path.c_str(), sizeof(utf8_pyhomepath)); + char *lastslash = strrchr(utf8_pyhomepath, '/'); + if ( lastslash != nullptr ) + { + *lastslash = 0; + utf8_wchar_t(&pyhomepath, utf8_pyhomepath); + Py_SetPythonHome(pyhomepath.begin()); + } + } +#endif + + if ( config.alert_auto_scripts ) + { + if ( pywraps_check_autoscripts(path, sizeof(path)) + && ask_yn(ASKBTN_NO, + "HIDECANCEL\n" + "TITLE IDAPython\n" + "The script '%s' was found in the current directory\n" + "and will be automatically executed by Python.\n" + "\n" + "Do you want to continue loading IDAPython?", path) <= 0 ) + { + return false; + } + } + + + typedef void(*SignalHandlerPointer)(int); + // catch unexpected abort() + SignalHandlerPointer previousHandler = signal(SIGABRT, aborthandler); + // ... and exit() + atexit(exithandler); + + // Start the interpreter + Py_InitializeEx(0 /* Don't catch SIGPIPE, SIGXFZ, SIGXFSZ & SIGINT signals */); + // disable handlers + initdone = 1; + signal(SIGABRT, previousHandler); + + if ( !Py_IsInitialized() ) + { + warning("IDAPython: Py_InitializeEx() failed"); + return false; + } + + // add new Python keywords as needed + python_highlighter.add_new_keywords(); + + // remove current directory + _prepare_sys_path(); + + if ( extapi.PyEval_ThreadsInitialized_ptr != nullptr + && extapi.PyEval_InitThreads_ptr != nullptr ) + { + // Enable multi-threading support (before 3.9 + if ( !extapi.PyEval_ThreadsInitialized_ptr() ) + extapi.PyEval_InitThreads_ptr(); + } + +#ifdef Py_DEBUG + msg("HexraysPython: Python compiled with DEBUG enabled.\n"); +#endif + + qstring dynload_base; + if ( !qgetenv("IDAPYTHON_DYNLOAD_BASE", &dynload_base) ) + dynload_base = idadir(nullptr); + + // Set IDAPYTHON_VERSION in Python + qstring init_code; + init_code.sprnt( + "IDAPYTHON_VERSION=(%d, %d, %d, '%s', %d)\n" + "IDAPYTHON_REMOVE_CWD_SYS_PATH = %s\n" + "IDAPYTHON_DYNLOAD_BASE = r\"%s\"\n" + "IDAPYTHON_DYNLOAD_RELPATH = \"ida_%" FMT_Z "\"\n" + "IDAPYTHON_COMPAT_AUTOIMPORT_MODULES = %s\n" + "IDAPYTHON_IDAUSR_SYSPATH = %s\n", + VER_MAJOR, VER_MINOR, VER_PATCH, VER_STATUS, VER_SERIAL, + config.remove_cwd_sys_path ? "True" : "False", + dynload_base.c_str(), + sizeof(ea_t)*8, + config.autoimport_compat_idaapi ? "True" : "False", + config.idausr_syspath ? "True" : "False" + ); + + if ( extapi.PyRun_SimpleStringFlags_ptr(init_code.c_str(), nullptr) != 0 ) + { + warning("IDAPython: error executing bootstrap code"); + return false; + } + + // Install extlang. Needs to be done before running init.py + // in case it's calling idaapi.enable_extlang_python(1) + if ( config.namespace_aware ) + extlang_python.flags |= EXTLANG_NS_AWARE; + install_extlang(&extlang_python); + + // Execute init.py (for Python side initialization) + if ( !_run_init_py() ) + { + // Try to fetch a one line error string. We must do it before printing + // the traceback information. Make sure that the exception is not cleared + handle_python_error(&errbuf, false); + + // Print the exception traceback + extapi.PyRun_SimpleStringFlags_ptr("import traceback;traceback.print_exc();", nullptr); + + warning("IDAPython: error executing " S_INIT_PY ":\n" + "%s\n" + "\n" + "Refer to the message window to see the full error log.", errbuf.c_str()); + remove_extlang(&extlang_python); + return false; + } + + // Init pywraps and notify_when + if ( !init_pywraps() ) + { + warning("IDAPython: init_pywraps() failed!"); + remove_extlang(&extlang_python); + return false; + } + + // Register a exec_python() function for IDC + add_idc_func(idc_runpythonstatement_desc); + add_idc_func(idc_eval_python_desc); + + // A script specified on the command line is run + if ( config.run_script.when == RSW_on_init ) + _run_user_script(); + + hook_event_listener(HT_UI, this); + hook_to_notification_point(HT_IDB, on_idb_notification, this); + + // Enable the CLI by default + enable_python_cli(true); + + // Let all modules perform possible initialization + send_modules_lifecycle_notification(mln_init); + + PyEval_ReleaseThread(PyThreadState_Get()); + + initialized = true; + return true; +} + +//------------------------------------------------------------------------ +// Parse plugin options +void idapython_plugin_t::parse_plugin_options() +{ + // Get options from IDA + const char *options = get_plugin_options(S_IDAPYTHON); + if ( options == nullptr || options[0] == '\0' ) + return; + qstring obuf(options); + char *ctx; + for ( char *p = qstrtok(obuf.begin(), ";", &ctx); + p != nullptr; + p = qstrtok(nullptr, ";", &ctx) ) + { + qstring opt(p); + char *sep = qstrchr(opt.begin(), '='); + bool ok = sep != nullptr; + if ( ok ) + { + *sep++ = '\0'; + if ( opt == "run_script" ) + { + config.run_script.path = sep; + if ( config.run_script.when == RSW_UNKNOWN ) + config.run_script.when = RSW_ui_database_inited; + } + else if ( opt == "run_script_when" ) + { + qstring when(sep); + if ( when == "db_open" ) + config.run_script.when = RSW_ui_database_inited; + else if ( when == "ui_ready" ) + config.run_script.when = RSW_ui_ready_to_run; + else if ( when == "init" ) + config.run_script.when = RSW_on_init; + else + warning("Unknown 'run_script_when' directive: '%s'. " + "Valid values are: 'db_open', 'ui_ready' and 'init'", + when.c_str()); + } + else if ( opt == "IDAPYTHON_IDAUSR_SYSPATH" ) + { + qstring imp(sep); + if ( imp == "YES" ) + config.idausr_syspath = true; + else if ( imp == "NO" ) + config.idausr_syspath = false; + else + warning("Unknown 'IDAPYTHON_IDAUSR_SYSPATH' directive: '%s'. " + " Expected 'YES' or 'NO'", imp.c_str()); + } + else + { + warning("Unknown config directive: \"%s\"", opt.c_str()); + } + } + } +} + +//------------------------------------------------------------------------- +ref_t idapython_plugin_t::get_sys_displayhook() +{ + ref_t h; + if ( config.repl_use_sys_displayhook ) + { + if ( ref_t py_sys = ref_t(PyW_TryImportModule("sys")) ) + h = PyW_TryGetAttrString(py_sys.o, "displayhook"); + } + return h; +} + +//------------------------------------------------------------------------- +#ifdef TESTABLE_BUILD +// "user-code-leniency" means that, even in TESTABLE_BUILD builds, +// IDAPython will accept that some things are left in an undesirable, +// but recuperable state (e.g., remaining hooks.) +// This should *ONLY* be used for tests that rely on user code that +// is in such a shape that it would require significant changes to +// have it perform proper cleanup, which means that it would have to +// diverge from the original user's code, which means that we +// would have to maintain our own branch of it, which is not +// the best idea of the world, overhead-wise. +bool idapython_plugin_t::is_user_code_lenient() +{ + if ( user_code_lenient < 0 ) + user_code_lenient = qgetenv("IDAPYTHON_USER_CODE_LENIENT"); + return user_code_lenient > 0; +} +#endif + +//------------------------------------------------------------------------- +bool idaapi idapython_plugin_t::run(size_t arg) +{ + try + { + switch ( arg ) + { + case IDAPYTHON_RUNSTATEMENT: + { + // Execute Python statement(s) from an editor window + qstring qbuf; + netnode history; + + // Get the existing or create a new netnode in the database + history.create(S_IDAPYTHON_DATA_NODE); + history.getblob(&qbuf, 0, 'A'); + + if ( ask_text(&qbuf, 0, qbuf.c_str(), "ACCEPT TABS\nEnter Python expressions") ) + { + { + PYW_GIL_GET; + new_execution_t exec; + extapi.PyRun_SimpleStringFlags_ptr(qbuf.c_str(), nullptr); + } + + // Store the statement to the database + history.setblob(qbuf.c_str(), qbuf.size(), 0, 'A'); + } + } + break; + case IDAPYTHON_ENABLE_EXTLANG: + enable_extlang_python(true); + break; + case IDAPYTHON_DISABLE_EXTLANG: + enable_extlang_python(false); + break; + default: + warning("IDAPython: unknown plugin argument %d", int(arg)); + break; + } + } + catch(...) //lint !e1766 without preceding catch clause + { + ask_for_feedback("Exception in Python interpreter."); + } + return true; +} + +//------------------------------------------------------------------------ +//lint -esym(715,va) Symbol not referenced +ssize_t idaapi idapython_plugin_t::on_event(ssize_t code, va_list) +{ + switch ( code ) + { + case ui_database_closed: + { + PYW_GIL_GET; // This hook gets called from the kernel. Ensure we hold the GIL. + // Let's make sure there are no non-Free()d forms. + free_compiled_form_instances(); + // and no live python timers + // Note: It's ok to put this here, because 'ui_datanase_closed' is guaranteed + // to be sent before the PLUGIN_FIX plugins are terminated. + clear_python_timer_instances(); + } + break; + + case ui_ready_to_run: + { + PYW_GIL_GET; // See above + ui_ready = true; + extapi.PyRun_SimpleStringFlags_ptr("print_banner()", nullptr); + if ( config.run_script.when == RSW_ui_ready_to_run ) + _run_user_script(); + } + break; + + case ui_database_inited: + { + PYW_GIL_GET; // See above + convert_idc_args(); + if ( config.run_script.when == RSW_ui_database_inited ) + _run_user_script(); + } + break; + + default: + break; + } + return 0; +} + +//------------------------------------------------------------------------- +//lint -esym(526,til_clear_python_tinfo_t_instances) not defined +ssize_t idaapi idapython_plugin_t::on_idb_notification(void *, int code, va_list) +{ + switch ( code ) + { + case idb_event::closebase: + // The til machinery is about to garbage-collect: We must go + // through all the tinfo_t objects that are embedded in SWIG wrappers, + // (i.e., that were created from Python) and clear those. + til_clear_python_tinfo_t_instances(); + send_modules_lifecycle_notification(mln_closebase); + break; + } + return 0; +} + +//------------------------------------------------------------------------- +// Compile callback for Python external language evaluator +bool idapython_plugin_t::_extlang_compile_file( + const char *path, + qstring *errbuf) +{ + PYW_GIL_GET; + new_execution_t exec; + PyObject *globals = _get_module_globals_from_path(path); + return _handle_file(path, globals, errbuf); +} + +//------------------------------------------------------------------------- +static PyObject *my_CompileString( + const char *str, + const char *file, + int start) +{ +#if PY_MAJOR_VERSION < 3 + return extapi.Py_CompileString_ptr(str, file, start); +#else + return extapi.Py_CompileStringExFlags_ptr(str, file, start, nullptr, -1); +#endif +} + +//------------------------------------------------------------------------- +// Compile callback for Python external language evaluator +bool idapython_plugin_t::_extlang_compile_expr( + const char *name, + ea_t /*current_ea*/, + const char *expr, + qstring *errbuf) +{ + PYW_GIL_GET; + PyObject *globals = _get_module_globals(); + bool isfunc = false; + + qstring qstr(expr); + PyObject *code = my_CompileString(insert_encoding_cookie(&qstr), "", Py_eval_input); + if ( code == nullptr ) + { + // try compiling as a list of statements + // wrap them into a function + handle_python_error(errbuf); + qstring func; + wrap_in_function(&func, expr, name); + insert_encoding_cookie(&func); + code = my_CompileString(func.c_str(), "", Py_file_input); + if ( code == nullptr ) + { + handle_python_error(errbuf); + return false; + } + isfunc = true; + } + + // Create a function out of code + PyObject *func = extapi.PyFunction_New_ptr(code, globals); + + if ( func == nullptr ) + { +ERR: + handle_python_error(errbuf); + Py_XDECREF(code); + return false; + } + + int err = PyDict_SetItemString(globals, name, func); + Py_XDECREF(func); + + if ( err ) + goto ERR; + + if ( isfunc ) + { + idc_value_t result; + return _extlang_call_func(&result, name, nullptr, 0, errbuf); + } + + return true; +} + +//------------------------------------------------------------------------- +// Calculator callback for Python external language evaluator +//lint -e{818} +bool idapython_plugin_t::_extlang_eval_expr( + idc_value_t *rv, + ea_t /*current_ea*/, + const char *expr, + qstring *errbuf) +{ + PYW_GIL_GET; + PyObject *globals = _get_module_globals(); + bool ok = globals != nullptr; + ref_t result; + if ( ok ) + { + { + new_execution_t exec; + result = newref_t(extapi.PyRun_StringFlags_ptr(expr, Py_eval_input, globals, globals, nullptr)); + } + ok = return_python_result(rv, result, errbuf); + } + return ok; +} + +//------------------------------------------------------------------------- +// Load processor module callback for Python external language evaluator +bool idapython_plugin_t::_extlang_load_procmod( + idc_value_t *procobj, + const char *path, + qstring *errbuf) +{ + PYW_GIL_GET; + bool ok; + { + new_execution_t exec; + PyObject *globals = _get_module_globals_from_path(path); + ok = _handle_file(path, globals, errbuf, S_IDAAPI_LOADPROCMOD, procobj, /*want_tuple=*/ true); + } + if ( ok && procobj->is_zero() ) + { + errbuf->clear(); + ok = false; + } + return ok; +} + +//------------------------------------------------------------------------- +// Unload processor module callback for Python external language evaluator +bool idapython_plugin_t::_extlang_unload_procmod( + const char *path, + qstring *errbuf) +{ + PYW_GIL_GET; + new_execution_t exec; + PyObject *globals = _get_module_globals_from_path(path); + return _handle_file(path, globals, errbuf, S_IDAAPI_UNLOADPROCMOD); +} + +//------------------------------------------------------------------------- +// Create an object instance +//lint -e605 Increase in pointer capability +bool idapython_plugin_t::_extlang_create_object( + idc_value_t *result, // out: created object or exception + const char *name, // in: object class name + const idc_value_t args[], // in: input arguments + size_t nargs, // in: number of input arguments + qstring *errbuf) // out: error message if evaluation fails +{ + PYW_GIL_GET; + bool ok = false; + ref_vec_t pargs; + do + { + // Parse the object name (to get the module and class name) + char modname[MAXSTR]; + char clsname[MAXSTR]; + parse_py_modname(name, modname, clsname, MAXSTR); + + // Get a reference to the module + ref_t py_mod(PyW_TryImportModule(modname)); + if ( !py_mod ) + { + errbuf->sprnt("Could not import module '%s'!", modname); + break; + } + + // If the class provides an wraper instantiator, use that + ref_t py_res; + if ( nargs == 1 && args[0].vtype == VT_PVOID ) + py_res = try_create_swig_wrapper(py_mod, clsname, args[0].pvoid); + if ( py_res ) + { + PyObject_SetAttrString(py_res.o, S_PY_IDCCVT_ID_ATTR, PyLong_FromLong(PY_ICID_OPAQUE)); + } + else + { + // Get the class reference + ref_t py_cls(PyW_TryGetAttrString(py_mod.o, clsname)); + if ( !py_cls ) + { + errbuf->sprnt("Could not find class type '%s'!", clsname); + break; + } + + // Error during conversion? + ok = pyw_convert_idc_args(args, nargs, pargs, PYWCVTF_AS_TUPLE, errbuf); + if ( !ok ) + break; + + // Call the constructor + py_res = newref_t(PyObject_CallObject(py_cls.o, pargs.empty() ? nullptr : pargs[0].o)); + } + ok = return_python_result(result, py_res, errbuf); + } while ( false ); + + return ok; +} + +//------------------------------------------------------------------------ +// Executes a simple string +bool idapython_plugin_t::_extlang_eval_snippet( + const char *str, + qstring *errbuf) +{ + PYW_GIL_GET; +#ifdef TESTABLE_BUILD + QASSERT(30639, PyErr_Occurred() == nullptr); +#endif + PyObject *globals = _get_module_globals(); + bool ok; + if ( globals == nullptr ) + { + ok = false; + } + else + { + errbuf->clear(); + PyErr_Clear(); + { + new_execution_t exec; + newref_t result(extapi.PyRun_StringFlags_ptr( + str, + Py_file_input, + globals, + globals, + nullptr)); + ok = result && !PyErr_Occurred(); //-V560 is always true: !PyErr_Occurred() + if ( !ok ) + handle_python_error(errbuf); + } + } + if ( !ok && errbuf->empty() ) + *errbuf = "internal error"; + return ok; +} + +//------------------------------------------------------------------------- +// Run callback for Python external language evaluator +bool idapython_plugin_t::_extlang_call_func( + idc_value_t *result, + const char *name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf) +{ + PYW_GIL_GET; + // Try to extract module name (if any) from the funcname + char modname[MAXSTR]; + char funcname[MAXSTR]; + bool imported_module = parse_py_modname(name, modname, funcname, MAXSTR); + + bool ok = true; + PyObject *module = nullptr; + ref_vec_t pargs; + do + { + // Convert arguments to python + ok = pyw_convert_idc_args(args, nargs, pargs, 0, errbuf); + if ( !ok ) + break; + + const char *final_modname = imported_module ? modname : S_MAIN; + module = PyImport_ImportModule(final_modname); + if ( module == nullptr ) + { + if ( errbuf != nullptr ) + errbuf->sprnt("couldn't import module %s", final_modname); + ok = false; + break; + } + + PyObject *globals = PyModule_GetDict(module); + QASSERT(30157, globals != nullptr); + + PyObject *func = PyDict_GetItemString(globals, funcname); + if ( func == nullptr ) + { + if ( errbuf != nullptr ) + errbuf->sprnt("undefined function %s", name); + ok = false; + break; + } + + borref_t code(extapi.PyFunction_GetCode_ptr(func)); + qvector pargs_ptrs; + pargs.to_pyobject_pointers(&pargs_ptrs); + newref_t py_res(PyEval_EvalCodeEx( + code.o, + globals, nullptr, + pargs_ptrs.begin(), + nargs, + nullptr, 0, nullptr, 0, nullptr, nullptr)); + ok = return_python_result(result, py_res, errbuf); + } while ( false ); + + if ( imported_module ) + Py_XDECREF(module); + return ok; +} + +//------------------------------------------------------------------------- +static bool is_instance_of(PyObject *obj, PyObject *mod, const char *cls_name) +{ + ref_t py_plugin_t_cls(PyW_TryGetAttrString(mod, cls_name)); + return py_plugin_t_cls != nullptr && PyObject_IsInstance(obj, py_plugin_t_cls.o); +} + +//------------------------------------------------------------------------- +bool idapython_plugin_t::_extlang_call_method( + idc_value_t *result, + const idc_value_t *idc_obj, + const char *method_name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf) +{ + PYW_GIL_GET; + // Check for unsupported usage of call_method. + // Mainly a method call requires an object and a method. + if ( method_name == nullptr ) + { + *errbuf = "call_method does not support this operation"; + return false; + } + // Behave like run() + else if ( idc_obj == nullptr ) + { + new_execution_t exec; + return _extlang_call_func(result, method_name, args, nargs, errbuf); + } + + // Holds conversion status of input object + int obj_cvt; + bool ok = false; + ref_vec_t pargs; + do + { + // Convert input object + ref_t py_obj; + obj_cvt = idcvar_to_pyvar(*idc_obj, &py_obj); + if ( obj_cvt < CIP_OK ) + { + *errbuf = "Failed to convert input object to Python value"; + break; + } + + ref_t py_method(PyW_TryGetAttrString(py_obj.o, method_name)); + if ( !py_method || !PyCallable_Check(py_method.o) ) + { + errbuf->sprnt("The input object does not have a callable method called '%s'", method_name); + break; + } + + // Convert arguments to python objects + uint32 cvtflags = PYWCVTF_AS_TUPLE; + // if we are running a ida_idaapi.plugin_t.run, we want the 'int64' + // to be converted to an unsigned python long + if ( streq(method_name, "run") ) + { + if ( ref_t py_ida_idaapi_mod = ref_t(PyW_TryImportModule(S_IDA_IDAAPI_MODNAME)) ) + { + if ( is_instance_of(py_obj.o, py_ida_idaapi_mod.o, "plugin_t") + || is_instance_of(py_obj.o, py_ida_idaapi_mod.o, "plugmod_t") ) + { + cvtflags |= PYWCVTF_INT64_AS_UNSIGNED_PYLONG; + } + } + } + ok = pyw_convert_idc_args(args, nargs, pargs, cvtflags, errbuf); + if ( !ok ) + break; + + { + new_execution_t exec; + newref_t py_res(PyObject_CallObject(py_method.o, pargs.empty() ? nullptr : pargs[0].o)); + ok = return_python_result(result, py_res, errbuf); + } + } while ( false ); + + return ok; +} + +//------------------------------------------------------------------------- +// Returns the attribute value of a given object from the global scope +bool idapython_plugin_t::_extlang_get_attr( + idc_value_t *result, // out: result + const idc_value_t *obj, // in: object (may be nullptr) + const char *attr) // in: attribute name +{ + PYW_GIL_GET; + int cvt = CIP_FAILED; + do + { + // Get a reference to the module + ref_t py_mod(PyW_TryImportModule(S_MAIN)); + if ( !py_mod ) + break; + + // Object specified: + // - (1) string contain attribute name in the main module + // - (2) opaque object (we use it as is) + ref_t py_obj; + if ( obj ) + { + // (1) Get attribute from main module + if ( obj->vtype == VT_STR ) + { + py_obj = PyW_TryGetAttrString(py_mod.o, obj->c_str()); + } + // (2) see if opaque object + else + { + // Convert object (expecting opaque object) + cvt = idcvar_to_pyvar(*obj, &py_obj); + if ( cvt != CIP_OK_OPAQUE ) // Only opaque objects are accepted + { + py_obj = ref_t(); + cvt = CIP_FAILED; + break; + } + } + // Get the attribute reference + if ( !py_obj ) + break; + } + // No object specified: + else + { + // ...then work with main module + py_obj = py_mod; + } + // Special case: if attribute not passed then retrieve the class + // name associated associated with the passed object + if ( attr == nullptr || attr[0] == '\0' ) + { + cvt = CIP_FAILED; + // Get the class + newref_t cls(PyObject_GetAttrString(py_obj.o, "__class__")); + if ( !cls ) + break; + + // Get its name + newref_t name(PyObject_GetAttrString(cls.o, "__name__")); + if ( !name ) + break; + + // Convert name object to string object + newref_t string(PyObject_Str(name.o)); + if ( !string ) + break; + + // Convert name python string to a C string + qstring clsname; + if ( !PyUnicode_as_qstring(&clsname, string.o) ) + break; + + result->set_string(clsname); //-V595 'result' was utilized before it was verified against nullptr + cvt = CIP_OK; //lint !e838 + break; + } + + ref_t py_attr(PyW_TryGetAttrString(py_obj.o, attr)); + // No attribute? + if ( !py_attr ) + { + cvt = CIP_FAILED; + break; + } + // Don't store result + if ( result == nullptr ) + { + cvt = CIP_OK; + // Decrement attribute (because of GetAttrString) + } + else + { + cvt = pyvar_to_idcvar(py_attr, result); + // // Conversion succeeded and opaque object was passed: + // // Since the object will be passed to IDC, it is likely that IDC value will be + // // destroyed and also destroying the opaque object with it. That is an undesired effect. + // // We increment the reference of the object so that even if the IDC value dies + // // the opaque object remains. So by not decrement reference after GetAttrString() call + // // we are indirectly increasing the reference. If it was not opaque then we decrement the reference. + // if ( cvt >= CIP_OK && cvt != CIP_OK_NODECREF ) + // { + // // Decrement the reference (that was incremented by GetAttrString()) + // py_attr.decref(); + // } + } + } while ( false ); + return cvt >= CIP_OK; +} + +//------------------------------------------------------------------------- +// Returns the attribute value of a given object from the global scope +//lint -e{818} +bool idapython_plugin_t::_extlang_set_attr( + idc_value_t *obj, // in: object name (may be nullptr) + const char *attr, // in: attribute name + const idc_value_t &value) +{ + PYW_GIL_GET; + bool ok = false; + do + { + // Get a reference to the module + ref_t py_mod(PyW_TryImportModule(S_MAIN)); + if ( !py_mod ) + break; + ref_t py_obj; + if ( obj != nullptr ) + { + // Get the attribute reference (from just a name) + if ( obj->vtype == VT_STR ) + { + py_obj = PyW_TryGetAttrString(py_mod.o, obj->c_str()); + } + else + { + int cvt = idcvar_to_pyvar(*obj, &py_obj); + if ( cvt != CIP_OK_OPAQUE ) // Only opaque objects are accepted + py_obj = ref_t(); + } + // No object to set_attr on? + if ( !py_obj ) + break; + } + else + { + // set_attr on the main module + py_obj = py_mod; + } + // Convert the value + ref_t py_var; + int cvt = idcvar_to_pyvar(value, &py_var); + if ( cvt >= CIP_OK ) + { + ok = PyObject_SetAttrString(py_obj.o, attr, py_var.o) != -1; + // if ( cvt != CIP_OK_NODECREF ) + // Py_XDECREF(py_var); + } + } while ( false ); + return ok; } //------------------------------------------------------------------------- // Execute a line in the Python CLI -bool idaapi IDAPython_cli_execute_line(const char *line) +bool idapython_plugin_t::_cli_execute_line(const char *line) { PYW_GIL_GET; @@ -1596,7 +1836,7 @@ bool idaapi IDAPython_cli_execute_line(const char *line) return true; const char *last_line = strrchr(line, '\n'); - if ( last_line == NULL ) + if ( last_line == nullptr ) last_line = line; else last_line += 1; @@ -1630,14 +1870,64 @@ bool idaapi IDAPython_cli_execute_line(const char *line) { new_execution_t exec; - PythonEvalOrExec(line); + + // Compile as an expression + qstring qstr(line); + newref_t py_code(my_CompileString(insert_encoding_cookie(&qstr), "", Py_eval_input)); + if ( !py_code || PyErr_Occurred() ) + { + // Not an expression? + PyErr_Clear(); + + // Run as a string + extapi.PyRun_SimpleStringFlags_ptr(line, nullptr); + } + else + { + PyObject *py_globals = _get_module_globals(); + newref_t py_result(PyEval_EvalCode(py_code.o, py_globals, py_globals)); + + if ( !py_result || PyErr_Occurred() ) //-V560 is always false: PyErr_Occurred() + { + PyErr_Print(); + } + else + { + ref_t sys_displayhook(idapython_plugin_t::get_instance()->get_sys_displayhook()); + if ( sys_displayhook != nullptr ) + { + //lint -esym(1788, res) is referenced only by its constructor or destructor + newref_t res(PyObject_CallFunctionObjArgs(sys_displayhook.o, py_result.o, nullptr)); + } + else if ( py_result.o != Py_None ) + { + bool ok = false; + if ( PyUnicode_Check(py_result.o) ) + { + qstring utf8; + PyUnicode_as_qstring(&utf8, py_result.o); + msg("%s\n", utf8.c_str()); + } + else + { + qstring result_str; + ok = PyW_ObjectToString(py_result.o, &result_str); + if ( ok ) + msg("%s\n", result_str.c_str()); + } + + if ( !ok ) + msg("*** IDAPython: Couldn't convert evaluation result\n"); + } + } + } } return true; } //------------------------------------------------------------------------- -static bool idaapi IDAPython_cli_find_completions( +bool idapython_plugin_t::_cli_find_completions( qstrvec_t *out_completions, int *out_match_start, int *out_match_end, @@ -1647,11 +1937,11 @@ static bool idaapi IDAPython_cli_find_completions( PYW_GIL_GET; ref_t py_fc(get_idaapi_attr(S_IDAAPI_FINDCOMPLETIONS)); - if ( py_fc == NULL ) + if ( !py_fc ) return false; newref_t py_res(PyObject_CallFunction(py_fc.o, "si", line, x)); //lint !e605 !e1776 - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return false; return idapython_convert_cli_completions( out_completions, @@ -1661,274 +1951,157 @@ static bool idaapi IDAPython_cli_find_completions( } //------------------------------------------------------------------------- -static PyObject *get_module_globals_from_path_with_kind(const char *path, const char *kind) -{ - const char *fname = qbasename(path); - if ( fname != NULL ) - { - const char *ext = get_file_ext(fname); - if ( ext == NULL ) - ext = tail(fname); - else - --ext; - if ( ext > fname ) - { - int len = ext - fname; - qstring modname; - modname.sprnt("__%s__%*.*s", kind, len, len, fname); - return get_module_globals(modname.begin()); - } - } - return NULL; -} - -//------------------------------------------------------------------------- -static PyObject *get_module_globals_from_path(const char *path) -{ - if ( (extlang_python.flags & EXTLANG_NS_AWARE) != 0 ) - { - if ( requested_plugin_path == path ) - return get_module_globals_from_path_with_kind(path, PLG_SUBDIR); - - char dirpath[QMAXPATH]; - if ( qdirname(dirpath, sizeof(dirpath), path) ) - { - const char *dirname = qbasename(dirpath); - if ( streq(dirname, PLG_SUBDIR) - || streq(dirname, IDP_SUBDIR) - || streq(dirname, LDR_SUBDIR) ) - { - return get_module_globals_from_path_with_kind(path, dirname); - } - } - } - return NULL; -} - -//------------------------------------------------------------------------- -static const cli_t cli_python = -{ - sizeof(cli_t), - 0, - "Python", - "Python - IDAPython plugin", - "Enter any Python expression", - IDAPython_cli_execute_line, - NULL, - NULL, - IDAPython_cli_find_completions, -}; - -//------------------------------------------------------------------------- -// Control the Python CLI status -idaman void ida_export enable_python_cli(bool enable) -{ - if ( enable ) - install_command_interpreter(&cli_python); - else - remove_command_interpreter(&cli_python); -} - -//------------------------------------------------------------------------ -// Parse plugin options -void parse_plugin_options() -{ - // Get options from IDA - const char *options = get_plugin_options(S_IDAPYTHON); - if ( options == NULL || options[0] == '\0' ) - return; - qstring obuf(options); - char *ctx; - for ( char *p = qstrtok(obuf.begin(), ";", &ctx); - p != NULL; - p = qstrtok(NULL, ";", &ctx) ) - { - qstring opt(p); - char *sep = qstrchr(opt.begin(), '='); - bool ok = sep != NULL; - if ( ok ) - { - *sep++ = '\0'; - if ( opt == "run_script" ) - { - qstrncpy(g_run_script, sep, sizeof(g_run_script)); - if ( g_run_when < 0 ) - g_run_when = RUN_ON_DB_OPEN; - } - else if ( opt == "run_script_when" ) - { - qstring when(sep); - if ( when == "db_open" ) - g_run_when = RUN_ON_DB_OPEN; - else if ( when == "ui_ready" ) - g_run_when = RUN_ON_UI_READY; - else if ( when == "init" ) - g_run_when = RUN_ON_INIT; - else - warning("Unknown 'run_script_when' directive: '%s'. " - "Valid values are: 'db_open', 'ui_ready' and 'init'", - when.c_str()); - } - else if ( opt == "AUTOIMPORT_COMPAT_IDA695" ) - { - qstring imp(sep); - if ( imp == "YES" ) - g_autoimport_compat_ida695 = true; - else if ( imp == "NO" ) - g_autoimport_compat_ida695 = false; - else - warning("Unknown 'AUTOIMPORT_COMPAT_IDA695' directive: '%s'. " - " Expected 'YES' or 'NO'", imp.c_str()); - } - } - } -} - -//------------------------------------------------------------------------ -// Converts the global IDC variable "ARGV" into a Python variable. -// The arguments will then be accessible via 'idc' module / 'ARGV' variable. -void convert_idc_args() +// This function will call the Python function 'idaapi.IDAPython_ExecFile' +// It does not use 'import', thus the executed script will not yield a new module name +// It returns the exception and traceback information. +// We use the Python function to execute the script because it knows how to deal with +// module reloading. +bool idapython_plugin_t::_handle_file( + const char *path, + PyObject *globals, + qstring *errbuf, + const char *idaapi_executor_func_name, + idc_value_t *second_res, + bool want_tuple) { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_args(PyList_New(0)); - - idc_value_t *idc_args = find_idc_gvar(S_IDC_ARGS_VARNAME); - if ( idc_args != NULL ) + ref_t py_executor_func(get_idaapi_attr(idaapi_executor_func_name)); + if ( !py_executor_func ) { - idc_value_t attr; - char attr_name[20] = { "0" }; - for ( int i=1; get_idcv_attr(&attr, idc_args, attr_name) == eOk; i++ ) - { - PyList_Insert(py_args.o, i, IDAPyStr_FromUTF8(attr.c_str())); - qsnprintf(attr_name, sizeof(attr_name), "%d", i); - } + errbuf->sprnt("Could not find %s.%s ?!", S_IDA_IDAAPI_MODNAME, idaapi_executor_func_name); + return false; } - // Get reference to the IDC module (it is imported by init.py) - ref_t py_mod(PyW_TryImportModule(S_IDC_MODNAME)); - if ( py_mod != NULL ) - PyObject_SetAttrString(py_mod.o, S_IDC_ARGS_VARNAME, py_args.o); + char script[MAXSTR]; + qstrncpy(script, path, sizeof(script)); + strrpl(script, '\\', '/'); + newref_t py_script(PyUnicode_FromString(script)); + + if ( globals == nullptr ) + globals = _get_module_globals(); + if ( globals != _get_module_globals() ) + { + // Executions that take place in the scope of their own module, + // should have the '__file__' attribute properly set (so that + // it doesn't just get temporarily set and then removed by + // `ida_idaapi.IDAPython_ExecScript`. + newref_t py_file_key(PyUnicode_FromString(S_FILE)); + if ( !PyDict_Contains(globals, py_file_key.o) ) + PyDict_SetItem(globals, py_file_key.o, py_script.o); + } + borref_t py_false(Py_False); + newref_t py_ret(PyObject_CallFunctionObjArgs( + py_executor_func.o, + py_script.o, + globals, + py_false.o, + nullptr)); + + // Failure at this point means the script was interrupted + bool interrupted = false; + if ( PyW_GetError(errbuf) || !py_ret ) + { + PyErr_Clear(); + if ( errbuf->empty() ) + *errbuf = "Script interrupted"; + interrupted = true; + } + + bool ok = false; + if ( !interrupted ) + { + PyObject *ret_o; + if ( want_tuple ) + { + if ( second_res != nullptr + && PyTuple_Check(py_ret.o) + && PyTuple_Size(py_ret.o) == 2 ) + { + ret_o = PyTuple_GetItem(py_ret.o, 0); // Borrowed reference + } + else + { + INTERR(30444); + } + } + else + { + ret_o = py_ret.o; + } + + if ( ret_o == Py_None ) //-V614 uninitialized 'ret_o' + { + if ( want_tuple ) + { + borref_t ret2_o(PyTuple_GetItem(py_ret.o, 1)); + ok = return_python_result(second_res, ret2_o, errbuf); + } + else + { + ok = true; + } + } + else if ( PyUnicode_Check(ret_o) ) + { + PyUnicode_as_qstring(errbuf, ret_o); + } + else + { + INTERR(30154); + } + } + return ok; } //------------------------------------------------------------------------- -enum module_lifecycle_notification_t +// Execute the Python script from the plugin +bool idapython_plugin_t::_run_user_script() { - mln_init = 0, - mln_term, - mln_closebase -}; -static void send_modules_lifecycle_notification(module_lifecycle_notification_t what) -{ - PYW_GIL_GET; - for ( size_t i = modules_callbacks.size(); i > 0; --i ) + qstring errbuf; + const char *path = config.run_script.path.c_str(); + bool ok; { - const module_callbacks_t &m = modules_callbacks[i-1]; - switch ( what ) - { - case mln_init: m.init(); break; - case mln_term: m.term(); break; - case mln_closebase: m.closebase(); break; - } - if ( PyErr_Occurred() ) - { - msg("Error during module lifecycle notification:\n"); - PyErr_Print(); - } + new_execution_t exec; + ok = _handle_file(path, /*globals*/ nullptr, &errbuf); } -} + if ( !ok ) + warning("IDAPython: error executing '%s':\n%s", path, errbuf.c_str()); -//------------------------------------------------------------------------ -//lint -esym(715,va) Symbol not referenced -static ssize_t idaapi on_ui_notification(void *, int code, va_list) -{ - switch ( code ) - { - case ui_term: - { - PYW_GIL_GET; // This hook gets called from the kernel. Ensure we hold the GIL. - // Let's make sure there are no non-Free()d forms. - free_compiled_form_instances(); - // and no live python timers - // Note: It's ok to put this here, because 'ui_term' is guaranteed - // to be sent before the PLUGIN_FIX plugins are terminated. - clear_python_timer_instances(); - } - break; - - case ui_ready_to_run: - { - PYW_GIL_GET; // See above - g_ui_ready = true; - extapi.PyRun_SimpleString_ptr("print_banner()"); - if ( g_run_when == RUN_ON_UI_READY ) - RunScript(g_run_script); - } - break; - - case ui_database_inited: - { - PYW_GIL_GET; // See above - convert_idc_args(); - if ( g_run_when == RUN_ON_DB_OPEN ) - RunScript(g_run_script); - } - break; - - default: - break; - } - return 0; + return ok; } //------------------------------------------------------------------------- -//lint -esym(526,til_clear_python_tinfo_t_instances) not defined -static ssize_t idaapi on_idb_notification(void *, int code, va_list) +// Check for the presence of a file in IDADIR/python and complain on error +bool idapython_plugin_t::_check_python_dir() { - switch ( code ) + static const char *const script_files[] = { - case idb_event::closebase: - // The til machinery is about to garbage-collect: We must go - // through all the tinfo_t objects that are embedded in SWIG wrappers, - // (i.e., that were created from Python) and clear those. - til_clear_python_tinfo_t_instances(); - send_modules_lifecycle_notification(mln_closebase); - break; - } - return 0; -} - -//------------------------------------------------------------------------- -#ifdef PY3 -static wchar_t *utf8_wchar_t(qvector *out, const char *in) -{ -#ifdef __NT__ - qwstring tmp; - utf8_utf16(&tmp, in); - out->qclear(); - out->insert(out->begin(), tmp.begin(), tmp.end()); -#else - const char *p = in; - while ( *p != '\0' ) + S_IDC_MODNAME ".py", + S_INIT_PY, + "ida_idaapi.py", + "idautils.py" + }; + char filepath[QMAXPATH]; + for ( size_t i=0; i < qnumber(script_files); i++ ) { - wchar32_t cp = get_utf8_char(&p); - if ( cp == 0 || cp == BADCP ) - break; - out->push_back(cp); + qmakepath(filepath, sizeof(filepath), idapython_dir.c_str(), script_files[i], nullptr); + if ( !qfileexist(filepath) ) + { + warning("IDAPython: Missing required file: '%s'", script_files[i]); + return false; + } } - out->push_back(0); // we're not dealing with a qstring; have to do it ourselves -#endif - return out->begin(); -} -#endif // PY3 + return true; +} //------------------------------------------------------------------------- // - remove current directory (empty entry) from the sys.path // - add idadir("python") -static void prepare_sys_path() +void idapython_plugin_t::_prepare_sys_path() { - borref_t path(PySys_GetObject("path")); - if ( path == nullptr || !PySequence_Check(path.o) ) + borref_t path(PySys_GetObject((char *) "path")); + if ( !path || !PySequence_Check(path.o) ) return; qstring new_path; @@ -1939,9 +2112,9 @@ static void prepare_sys_path() { qstring path_el_utf8; newref_t path_el(PySequence_GetItem(path.o, i)); - if ( path_el != nullptr - && IDAPyStr_Check(path_el.o) > 0 - && IDAPyStr_AsUTF8(&path_el_utf8, path_el.o) ) + if ( path_el + && PyUnicode_Check(path_el.o) + && PyUnicode_as_qstring(&path_el_utf8, path_el.o) ) { if ( path_el_utf8.empty() ) continue; // skip empty entry @@ -1954,305 +2127,128 @@ static void prepare_sys_path() if ( !new_path.empty() ) new_path.append(DELIMITER); new_path.append(idadir("python")); -#ifdef PY3 qvector wpath; PySys_SetPath(utf8_wchar_t(&wpath, new_path.c_str())); -#else - PySys_SetPath(new_path.begin()); -#endif } //------------------------------------------------------------------------- -// Initialize the Python environment -bool IDAPython_Init(void) +// This function will execute a script in the main module context +// It does not use 'import', thus the executed script will not yield a new module name +// Caller of this function should call handle_python_error() to clear the exception and print the error +bool idapython_plugin_t::_run_init_py() { - if ( Py_IsInitialized() != 0 ) - return true; - - // Form the absolute path to IDA\python folder - qmakepath(g_idapython_dir, sizeof(g_idapython_dir), - idadir(PYTHON_DIR_NAME), - QSTRINGIZE(PY_MAJOR_VERSION), - NULL); - - // Check for the presence of essential files - if ( !check_python_dir() ) - return false; - char path[QMAXPATH]; - qstring errbuf; - if ( !extapi.load(&errbuf) ) - { - warning("Couldn't initialize IDAPython: %s", errbuf.c_str()); - return false; - } + qmakepath(path, sizeof(path), idapython_dir.c_str(), S_INIT_PY, nullptr); -#ifdef __MAC__ - if ( !extapi.lib_path.empty() ) +#ifdef __NT__ + // if the current disk has no space (sic, the current directory, not the one + // with the input file), PyRun_File() will die with a cryptic message that + // C runtime library could not be loaded. So we check the disk space before + // calling it. + char curdir[QMAXPATH]; + // check if the current directory is accessible. if not, qgetcwd won't return + qgetcwd(curdir, sizeof(curdir)); + if ( get_free_disk_space(curdir) == 0 ) { - // The path will be something like: - // /System/Library/Frameworks/Python.framework/Versions/2.5/Python - // We need to strip the last part - // use static buffer because Py_SetPythonHome() just stores a pointer - static char pyhomepath[MAXSTR]; - qstrncpy(pyhomepath, extapi.lib_path.c_str(), sizeof(pyhomepath)); - char *lastslash = strrchr(pyhomepath, '/'); - if ( lastslash != NULL ) - { - *lastslash = 0; -#ifdef PY3 - static qvector buf; - Py_SetPythonHome(utf8_wchar_t(&buf, pyhomepath)); -#else - Py_SetPythonHome(pyhomepath); -#endif - } + warning("No free disk space on %s, python will not be available", curdir); + return false; } #endif - // Read configuration value - read_config_file("idapython.cfg", opts, qnumber(opts)); - if ( g_alert_auto_scripts ) - { - if ( pywraps_check_autoscripts(path, sizeof(path)) - && ask_yn(ASKBTN_NO, - "HIDECANCEL\n" - "TITLE IDAPython\n" - "The script '%s' was found in the current directory\n" - "and will be automatically executed by Python.\n" - "\n" - "Do you want to continue loading IDAPython?", path) <= 0 ) - { - return false; - } - } - parse_plugin_options(); + PYW_GIL_CHECK_LOCKED_SCOPE(); - // Start the interpreter - Py_InitializeEx(0 /* Don't catch SIGPIPE, SIGXFZ, SIGXFSZ & SIGINT signals */); + PyObject *__main__globals = _get_module_globals(); - if ( !Py_IsInitialized() ) - { - warning("IDAPython: Py_InitializeEx() failed"); + //lint -esym(429, fp) custodial pointer not freed or returned + FILE *fp = qfopen(path, "rt"); + if ( fp == nullptr ) return false; - } - - // remove current directory - prepare_sys_path(); - - // Enable multi-threading support - if ( !PyEval_ThreadsInitialized() ) - PyEval_InitThreads(); - -#ifdef Py_DEBUG - msg("HexraysPython: Python compiled with DEBUG enabled.\n"); -#endif - - // Set IDAPYTHON_VERSION in Python - qstring init_code; - init_code.sprnt( - "IDAPYTHON_VERSION=(%d, %d, %d, '%s', %d)\n" - "IDAPYTHON_REMOVE_CWD_SYS_PATH = %s\n" - "IDAPYTHON_DYNLOAD_BASE = r\"%s\"\n" - "IDAPYTHON_DYNLOAD_RELPATH = \"ida_%" FMT_Z "\"\n" - "IDAPYTHON_COMPAT_AUTOIMPORT_MODULES = %s\n" - "IDAPYTHON_COMPAT_695_API = %s\n", - VER_MAJOR, VER_MINOR, VER_PATCH, VER_STATUS, VER_SERIAL, - g_remove_cwd_sys_path ? "True" : "False", - idadir(NULL), - sizeof(ea_t)*8, - g_autoimport_compat_idaapi ? "True" : "False", -#ifdef BC695 - g_autoimport_compat_ida695 ? "True" : "False" -#else - "False" -#endif - ); - - if ( extapi.PyRun_SimpleString_ptr(init_code.c_str()) != 0 ) - { - warning("IDAPython: error executing bootstrap code"); + file_janitor_t fpj(fp); + qstring contents; + const uint64 fpsz = qfsize(fp); + if ( fpsz == 0 ) return false; - } - - // Install extlang. Needs to be done before running init.py - // in case it's calling idaapi.enable_extlang_python(1) - if ( g_namespace_aware ) - extlang_python.flags |= EXTLANG_NS_AWARE; - install_extlang(&extlang_python); - - // Execute init.py (for Python side initialization) - qmakepath(path, MAXSTR, g_idapython_dir, S_INIT_PY, NULL); - if ( !PyRunFile(path) ) - { - // Try to fetch a one line error string. We must do it before printing - // the traceback information. Make sure that the exception is not cleared - handle_python_error(&errbuf, false); - - // Print the exception traceback - extapi.PyRun_SimpleString_ptr("import traceback;traceback.print_exc();"); - - warning("IDAPython: error executing " S_INIT_PY ":\n" - "%s\n" - "\n" - "Refer to the message window to see the full error log.", errbuf.c_str()); - remove_extlang(&extlang_python); + contents.resize(fpsz); + ssize_t effsz = qfread(fp, contents.begin(), fpsz); + if ( effsz <= 0 ) return false; - } + contents.resize(effsz); - // Init pywraps and notify_when - if ( !init_pywraps() ) - { - warning("IDAPython: init_pywraps() failed!"); - remove_extlang(&extlang_python); + newref_t code(my_CompileString(contents.c_str(), path, Py_file_input)); + if ( !code ) return false; - } -#ifdef ENABLE_PYTHON_PROFILING - extapi.PyEval_SetTrace_ptr(tracefunc, NULL); -#endif + newref_t result(PyEval_EvalCode(code.o, __main__globals, __main__globals)); + return result && !PyErr_Occurred(); +} - // Register a exec_python() function for IDC - add_idc_func(idc_runpythonstatement_desc); - add_idc_func(idc_eval_python_desc); - - // A script specified on the command line is run - if ( g_run_when == RUN_ON_INIT ) - RunScript(g_run_script); - - hook_to_notification_point(HT_UI, on_ui_notification); - hook_to_notification_point(HT_IDB, on_idb_notification); - - // Enable the CLI by default - enable_python_cli(true); - - // Let all modules perform possible initialization - send_modules_lifecycle_notification(mln_init); - - PyEval_ReleaseThread(PyThreadState_Get()); - - g_instance_initialized = true; - return true; +//------------------------------------------------------------------------ +// Note: The references are borrowed. No need to free them. +PyObject *idapython_plugin_t::_get_module_globals(const char *modname) +{ + if ( modname == nullptr || modname[0] == '\0' ) + modname = S_MAIN; + PyObject *module = PyImport_AddModule(modname); + return module == nullptr ? nullptr : PyModule_GetDict(module); } //------------------------------------------------------------------------- -#ifdef TESTABLE_BUILD -// "user-code-leniency" means that, even in TESTABLE_BUILD builds, -// IDAPython will accept that some things are left in an undesirable, -// but recuperable state (e.g., remaining hooks.) -// This should *ONLY* be used for tests that rely on user code that -// is in such a shape that it would require significant changes to -// have it perform proper cleanup, which means that it would have to -// diverge from the original user's code, which means that we -// would have to maintain our own branch of it, which is not -// the best idea of the world, overhead-wise. -static int _is_user_code_lenient = -1; -static bool is_user_code_lenient() +PyObject *idapython_plugin_t::_get_module_globals_from_path_with_kind( + const char *path, + const char *kind) { - if ( _is_user_code_lenient < 0 ) - _is_user_code_lenient = qgetenv("IDAPYTHON_USER_CODE_LENIENT"); - return _is_user_code_lenient > 0; + const char *fname = qbasename(path); + if ( fname != nullptr ) + { + const char *ext = get_file_ext(fname); + if ( ext == nullptr ) + ext = tail(fname); + else + --ext; + if ( ext > fname ) + { + int len = ext - fname; + qstring modname; + modname.sprnt("__%s__%*.*s", kind, len, len, fname); + return _get_module_globals(modname.begin()); + } + } + return nullptr; } -#endif - //------------------------------------------------------------------------- -// Cleaning up Python -void IDAPython_Term(void) +PyObject *idapython_plugin_t::_get_module_globals_from_path( + const char *path) { - if ( !g_instance_initialized || Py_IsInitialized() == 0 ) - return; - - if ( PyGILState_GetThisThreadState() ) + if ( (extlang_python.flags & EXTLANG_NS_AWARE) != 0 ) { - // Note: No 'PYW_GIL_GET' here, as it would try to release - // the state after 'Py_Finalize()' has been called. - // ...nor is it a good idea to try to put it in its own scope, - // as it will PyGILState_Release() the current thread & GIL, and - // Py_Finalize() itself wouldn't be happy then. - PyGILState_Ensure(); - } - - // Let all modules perform possible de-initialization - send_modules_lifecycle_notification(mln_term); - - unhook_from_notification_point(HT_IDB, on_idb_notification); - unhook_from_notification_point(HT_UI, on_ui_notification); - - // Remove the CLI - enable_python_cli(false); - - // Remove the extlang - remove_extlang(&extlang_python); - - // De-init pywraps - deinit_pywraps(); - - // Uninstall IDC function - del_idc_func(idc_eval_python_desc.name); - del_idc_func(idc_runpythonstatement_desc.name); - - // Shut the interpreter down - Py_Finalize(); - g_instance_initialized = false; - -#ifdef TESTABLE_BUILD - if ( !is_user_code_lenient() ) // Check that all hooks were unhooked - QASSERT(30509, hook_data_vec.empty()); -#endif - for ( size_t i = hook_data_vec.size(); i > 0; --i ) - { - const hook_data_t &hd = hook_data_vec[i-1]; - idapython_unhook_from_notification_point(hd.type, hd.cb, hd.ud); + if ( requested_plugin_path == path ) + return _get_module_globals_from_path_with_kind(path, PLG_SUBDIR); + + char dirpath[QMAXPATH]; + if ( qdirname(dirpath, sizeof(dirpath), path) ) + { + const char *dirname = qbasename(dirpath); + if ( streq(dirname, PLG_SUBDIR) + || streq(dirname, IDP_SUBDIR) + || streq(dirname, LDR_SUBDIR) ) + { + return _get_module_globals_from_path_with_kind(path, dirname); + } + } } + return nullptr; } //------------------------------------------------------------------------- // Plugin init routine -int idaapi init(void) +static plugmod_t *idaapi init() { - if ( IDAPython_Init() ) - return PLUGIN_KEEP; - else - return PLUGIN_SKIP; -} - -//------------------------------------------------------------------------- -// Plugin term routine -void idaapi term(void) -{ - IDAPython_Term(); -} - -//------------------------------------------------------------------------- -// Plugin hotkey entry point -bool idaapi run(size_t arg) -{ - try - { - switch ( arg ) - { - case IDAPYTHON_RUNSTATEMENT: - IDAPython_RunStatement(); - break; - case IDAPYTHON_ENABLE_EXTLANG: - enable_extlang_python(true); - break; - case IDAPYTHON_DISABLE_EXTLANG: - enable_extlang_python(false); - break; - default: - warning("IDAPython: unknown plugin argument %d", int(arg)); - break; - } - } - catch(...) //lint !e1766 without preceding catch clause - { - warning("Exception in Python interpreter. Reloading..."); - IDAPython_Term(); - IDAPython_Init(); - } - return true; + idapython_plugin_t *p = new idapython_plugin_t; + if ( p->init() ) + return p; + delete p; + return nullptr; } //------------------------------------------------------------------------- @@ -2261,10 +2257,10 @@ bool idaapi run(size_t arg) plugin_t PLUGIN = { IDP_INTERFACE_VERSION, - PLUGIN_FIX | PLUGIN_HIDE, // plugin flags + PLUGIN_FIX | PLUGIN_HIDE | PLUGIN_MULTI, // plugin flags init, // initialize - term, // terminate. this pointer may be NULL. - run, // invoke plugin + nullptr, // terminate. this pointer may be nullptr. + nullptr, // invoke plugin S_IDAPYTHON, // long comment about the plugin // it could appear in the status line // or as a hint @@ -2273,5 +2269,5 @@ plugin_t PLUGIN = // the preferred short name of the plugin S_IDAPYTHON, // the preferred hotkey to run the plugin - NULL + nullptr }; diff --git a/idapython.png b/idapython.png new file mode 100644 index 0000000..96c8e0d Binary files /dev/null and b/idapython.png differ diff --git a/idapython.script b/idapython.script index 7248af6..1b587d8 100644 --- a/idapython.script +++ b/idapython.script @@ -15,6 +15,7 @@ global: PyW_ShowCbErr; PyW_SizeVecToPyList; PyW_UvalVecToPyList; + PyW_StrVecToPyList; PyW_TryGetAttrString; PyW_TryImportModule; PyW_register_compiled_form; @@ -25,10 +26,12 @@ global: enable_python_cli; idapython_hook_to_notification_point; idapython_unhook_from_notification_point; + idapython_register_hook; + idapython_unregister_hook; idapython_show_wait_box; idapython_hide_wait_box; idcvar_to_pyvar; - is_api695_compat_enabled; + get_plugin_instance; lookup_info_t_commit; lookup_info_t_del_by_py_view; lookup_info_t_find_by_py_view; @@ -43,7 +46,6 @@ global: py_customidamemo_t_delete_groups; py_customidamemo_t_set_groups_visibility; py_customidamemo_t_unbind; - pycim_lookup_info; pylong_to_byte_array; pyobj_get_clink; python_timer_del; diff --git a/idapython_implib.def b/idapython_implib.def index f01c474..223fa81 100644 --- a/idapython_implib.def +++ b/idapython_implib.def @@ -6,6 +6,7 @@ EXPORTS PyW_GetStringAttr PyW_SizeVecToPyList PyW_UvalVecToPyList + PyW_StrVecToPyList PyW_IsSequenceType PyW_ObjectToString PyW_PyListToEaVec @@ -21,7 +22,7 @@ EXPORTS disable_script_timeout enable_extlang_python enable_python_cli - is_api695_compat_enabled + get_plugin_instance idcvar_to_pyvar lookup_info_t_commit lookup_info_t_del_by_py_view @@ -61,8 +62,9 @@ EXPORTS get_callable_arg_count idapython_hook_to_notification_point idapython_unhook_from_notification_point + idapython_register_hook + idapython_unregister_hook idapython_show_wait_box idapython_hide_wait_box register_module_lifecycle_callbacks prepare_programmatic_plugin_load - pycim_lookup_info DATA diff --git a/libpython3.tbd b/libpython3.tbd new file mode 100644 index 0000000..a527a87 --- /dev/null +++ b/libpython3.tbd @@ -0,0 +1,552 @@ +--- !tapi-tbd +tbd-version: 4 +targets: [ arm64-macos ] +install-name: '@executable_path/libpython3.link.dylib' +current-version: 3.9 +compatibility-version: 3.9 +exports: + - targets: [ arm64-macos ] + symbols: [ _PyAST_CompileEx, _PyAST_CompileObject, _PyAST_FromNode, _PyAST_FromNodeObject, + _PyAST_Validate, _PyArena_AddPyObject, _PyArena_Free, _PyArena_Malloc, + _PyArena_New, _PyArg_Parse, _PyArg_ParseTuple, _PyArg_ParseTupleAndKeywords, + _PyArg_UnpackTuple, _PyArg_VaParse, _PyArg_VaParseTupleAndKeywords, + _PyArg_ValidateKeywordArguments, _PyAsyncGen_New, _PyAsyncGen_Type, + _PyBaseObject_Type, _PyBool_FromLong, _PyBool_Type, _PyBuffer_FillContiguousStrides, + _PyBuffer_FillInfo, _PyBuffer_FromContiguous, _PyBuffer_GetPointer, + _PyBuffer_IsContiguous, _PyBuffer_Release, _PyBuffer_SizeFromFormat, + _PyBuffer_ToContiguous, _PyByteArrayIter_Type, _PyByteArray_AsString, + _PyByteArray_Concat, _PyByteArray_FromObject, _PyByteArray_FromStringAndSize, + _PyByteArray_Resize, _PyByteArray_Size, _PyByteArray_Type, + _PyBytesIter_Type, _PyBytes_AsString, _PyBytes_AsStringAndSize, + _PyBytes_Concat, _PyBytes_ConcatAndDel, _PyBytes_DecodeEscape, + _PyBytes_FromFormat, _PyBytes_FromFormatV, _PyBytes_FromObject, + _PyBytes_FromString, _PyBytes_FromStringAndSize, _PyBytes_Repr, + _PyBytes_Size, _PyBytes_Type, _PyCFunction_Call, _PyCFunction_GetFlags, + _PyCFunction_GetFunction, _PyCFunction_GetSelf, _PyCFunction_NewEx, + _PyCFunction_Type, _PyCMethod_New, _PyCMethod_Type, _PyCallIter_New, + _PyCallIter_Type, _PyCallable_Check, _PyCapsule_GetContext, + _PyCapsule_GetDestructor, _PyCapsule_GetName, _PyCapsule_GetPointer, + _PyCapsule_Import, _PyCapsule_IsValid, _PyCapsule_New, _PyCapsule_SetContext, + _PyCapsule_SetDestructor, _PyCapsule_SetName, _PyCapsule_SetPointer, + _PyCapsule_Type, _PyCell_Get, _PyCell_New, _PyCell_Set, _PyCell_Type, + _PyClassMethodDescr_Type, _PyClassMethod_New, _PyClassMethod_Type, + _PyCode_Addr2Line, _PyCode_New, _PyCode_NewEmpty, _PyCode_NewWithPosOnlyArgs, + _PyCode_Optimize, _PyCode_Type, _PyCodec_BackslashReplaceErrors, + _PyCodec_Decode, _PyCodec_Decoder, _PyCodec_Encode, _PyCodec_Encoder, + _PyCodec_IgnoreErrors, _PyCodec_IncrementalDecoder, _PyCodec_IncrementalEncoder, + _PyCodec_KnownEncoding, _PyCodec_LookupError, _PyCodec_NameReplaceErrors, + _PyCodec_Register, _PyCodec_RegisterError, _PyCodec_ReplaceErrors, + _PyCodec_StreamReader, _PyCodec_StreamWriter, _PyCodec_StrictErrors, + _PyCodec_XMLCharRefReplaceErrors, _PyCompile_OpcodeStackEffect, + _PyCompile_OpcodeStackEffectWithJump, _PyComplex_AsCComplex, + _PyComplex_FromCComplex, _PyComplex_FromDoubles, _PyComplex_ImagAsDouble, + _PyComplex_RealAsDouble, _PyComplex_Type, _PyConfig_Clear, + _PyConfig_InitIsolatedConfig, _PyConfig_InitPythonConfig, + _PyConfig_Read, _PyConfig_SetArgv, _PyConfig_SetBytesArgv, + _PyConfig_SetBytesString, _PyConfig_SetString, _PyConfig_SetWideStringList, + _PyContextToken_Type, _PyContextVar_Get, _PyContextVar_New, + _PyContextVar_Reset, _PyContextVar_Set, _PyContextVar_Type, + _PyContext_Copy, _PyContext_CopyCurrent, _PyContext_Enter, + _PyContext_Exit, _PyContext_New, _PyContext_Type, _PyCoro_New, + _PyCoro_Type, _PyDescr_NewClassMethod, _PyDescr_NewGetSet, + _PyDescr_NewMember, _PyDescr_NewMethod, _PyDescr_NewWrapper, + _PyDictItems_Type, _PyDictIterItem_Type, _PyDictIterKey_Type, + _PyDictIterValue_Type, _PyDictKeys_Type, _PyDictProxy_New, + _PyDictProxy_Type, _PyDictRevIterItem_Type, _PyDictRevIterKey_Type, + _PyDictRevIterValue_Type, _PyDictValues_Type, _PyDict_Clear, + _PyDict_Contains, _PyDict_Copy, _PyDict_DelItem, _PyDict_DelItemString, + _PyDict_GetItem, _PyDict_GetItemString, _PyDict_GetItemWithError, + _PyDict_Items, _PyDict_Keys, _PyDict_Merge, _PyDict_MergeFromSeq2, + _PyDict_New, _PyDict_Next, _PyDict_SetDefault, _PyDict_SetItem, + _PyDict_SetItemString, _PyDict_Size, _PyDict_Type, _PyDict_Update, + _PyDict_Values, _PyEllipsis_Type, _PyEnum_Type, _PyErr_BadArgument, + _PyErr_BadInternalCall, _PyErr_CheckSignals, _PyErr_Clear, + _PyErr_Display, _PyErr_ExceptionMatches, _PyErr_Fetch, _PyErr_Format, + _PyErr_FormatV, _PyErr_GetExcInfo, _PyErr_GivenExceptionMatches, + _PyErr_NewException, _PyErr_NewExceptionWithDoc, _PyErr_NoMemory, + _PyErr_NormalizeException, _PyErr_Occurred, _PyErr_Print, + _PyErr_PrintEx, _PyErr_ProgramText, _PyErr_ProgramTextObject, + _PyErr_ResourceWarning, _PyErr_Restore, _PyErr_SetExcInfo, + _PyErr_SetFromErrno, _PyErr_SetFromErrnoWithFilename, _PyErr_SetFromErrnoWithFilenameObject, + _PyErr_SetFromErrnoWithFilenameObjects, _PyErr_SetImportError, + _PyErr_SetImportErrorSubclass, _PyErr_SetInterrupt, _PyErr_SetNone, + _PyErr_SetObject, _PyErr_SetString, _PyErr_SyntaxLocation, + _PyErr_SyntaxLocationEx, _PyErr_SyntaxLocationObject, _PyErr_WarnEx, + _PyErr_WarnExplicit, _PyErr_WarnExplicitFormat, _PyErr_WarnExplicitObject, + _PyErr_WarnFormat, _PyErr_WriteUnraisable, _PyEval_AcquireLock, + _PyEval_AcquireThread, _PyEval_CallFunction, _PyEval_CallMethod, + _PyEval_CallObjectWithKeywords, _PyEval_EvalCode, _PyEval_EvalCodeEx, + _PyEval_EvalFrame, _PyEval_EvalFrameEx, _PyEval_GetBuiltins, + _PyEval_GetFrame, _PyEval_GetFuncDesc, _PyEval_GetFuncName, + _PyEval_GetGlobals, _PyEval_GetLocals, _PyEval_InitThreads, + _PyEval_MergeCompilerFlags, _PyEval_ReleaseLock, _PyEval_ReleaseThread, + _PyEval_RestoreThread, _PyEval_SaveThread, _PyEval_SetProfile, + _PyEval_SetTrace, _PyEval_ThreadsInitialized, _PyExc_ArithmeticError, + _PyExc_AssertionError, _PyExc_AttributeError, _PyExc_BaseException, + _PyExc_BlockingIOError, _PyExc_BrokenPipeError, _PyExc_BufferError, + _PyExc_BytesWarning, _PyExc_ChildProcessError, _PyExc_ConnectionAbortedError, + _PyExc_ConnectionError, _PyExc_ConnectionRefusedError, _PyExc_ConnectionResetError, + _PyExc_DeprecationWarning, _PyExc_EOFError, _PyExc_EnvironmentError, + _PyExc_Exception, _PyExc_FileExistsError, _PyExc_FileNotFoundError, + _PyExc_FloatingPointError, _PyExc_FutureWarning, _PyExc_GeneratorExit, + _PyExc_IOError, _PyExc_ImportError, _PyExc_ImportWarning, + _PyExc_IndentationError, _PyExc_IndexError, _PyExc_InterruptedError, + _PyExc_IsADirectoryError, _PyExc_KeyError, _PyExc_KeyboardInterrupt, + _PyExc_LookupError, _PyExc_MemoryError, _PyExc_ModuleNotFoundError, + _PyExc_NameError, _PyExc_NotADirectoryError, _PyExc_NotImplementedError, + _PyExc_OSError, _PyExc_OverflowError, _PyExc_PendingDeprecationWarning, + _PyExc_PermissionError, _PyExc_ProcessLookupError, _PyExc_RecursionError, + _PyExc_ReferenceError, _PyExc_ResourceWarning, _PyExc_RuntimeError, + _PyExc_RuntimeWarning, _PyExc_StopAsyncIteration, _PyExc_StopIteration, + _PyExc_SyntaxError, _PyExc_SyntaxWarning, _PyExc_SystemError, + _PyExc_SystemExit, _PyExc_TabError, _PyExc_TimeoutError, _PyExc_TypeError, + _PyExc_UnboundLocalError, _PyExc_UnicodeDecodeError, _PyExc_UnicodeEncodeError, + _PyExc_UnicodeError, _PyExc_UnicodeTranslateError, _PyExc_UnicodeWarning, + _PyExc_UserWarning, _PyExc_ValueError, _PyExc_Warning, _PyExc_ZeroDivisionError, + _PyExceptionClass_Name, _PyException_GetCause, _PyException_GetContext, + _PyException_GetTraceback, _PyException_SetCause, _PyException_SetContext, + _PyException_SetTraceback, _PyFile_FromFd, _PyFile_GetLine, + _PyFile_NewStdPrinter, _PyFile_OpenCode, _PyFile_OpenCodeObject, + _PyFile_SetOpenCodeHook, _PyFile_WriteObject, _PyFile_WriteString, + _PyFilter_Type, _PyFloat_AsDouble, _PyFloat_FromDouble, _PyFloat_FromString, + _PyFloat_GetInfo, _PyFloat_GetMax, _PyFloat_GetMin, _PyFloat_Type, + _PyFrame_BlockPop, _PyFrame_BlockSetup, _PyFrame_FastToLocals, + _PyFrame_FastToLocalsWithError, _PyFrame_GetBack, _PyFrame_GetCode, + _PyFrame_GetLineNumber, _PyFrame_LocalsToFast, _PyFrame_New, + _PyFrame_Type, _PyFrozenSet_New, _PyFrozenSet_Type, _PyFunction_GetAnnotations, + _PyFunction_GetClosure, _PyFunction_GetCode, _PyFunction_GetDefaults, + _PyFunction_GetGlobals, _PyFunction_GetKwDefaults, _PyFunction_GetModule, + _PyFunction_New, _PyFunction_NewWithQualName, _PyFunction_SetAnnotations, + _PyFunction_SetClosure, _PyFunction_SetDefaults, _PyFunction_SetKwDefaults, + _PyFunction_Type, _PyFuture_FromAST, _PyFuture_FromASTObject, + _PyGC_Collect, _PyGILState_Check, _PyGILState_Ensure, _PyGILState_GetThisThreadState, + _PyGILState_Release, _PyGen_New, _PyGen_NewWithQualName, _PyGen_Type, + _PyGetSetDescr_Type, _PyHash_GetFuncDef, _PyImport_AddModule, + _PyImport_AddModuleObject, _PyImport_AppendInittab, _PyImport_ExecCodeModule, + _PyImport_ExecCodeModuleEx, _PyImport_ExecCodeModuleObject, + _PyImport_ExecCodeModuleWithPathnames, _PyImport_ExtendInittab, + _PyImport_FrozenModules, _PyImport_GetImporter, _PyImport_GetMagicNumber, + _PyImport_GetMagicTag, _PyImport_GetModule, _PyImport_GetModuleDict, + _PyImport_Import, _PyImport_ImportFrozenModule, _PyImport_ImportFrozenModuleObject, + _PyImport_ImportModule, _PyImport_ImportModuleLevel, _PyImport_ImportModuleLevelObject, + _PyImport_ImportModuleNoBlock, _PyImport_Inittab, _PyImport_ReloadModule, + _PyIndex_Check, _PyInit__abc, _PyInit__ast, _PyInit__codecs, + _PyInit__collections, _PyInit__functools, _PyInit__imp, _PyInit__io, + _PyInit__locale, _PyInit__operator, _PyInit__peg_parser, _PyInit__signal, + _PyInit__sre, _PyInit__stat, _PyInit__string, _PyInit__symtable, + _PyInit__thread, _PyInit__tracemalloc, _PyInit__weakref, _PyInit_atexit, + _PyInit_errno, _PyInit_faulthandler, _PyInit_gc, _PyInit_itertools, + _PyInit_posix, _PyInit_pwd, _PyInit_time, _PyInit_xxsubtype, + _PyInstanceMethod_Function, _PyInstanceMethod_New, _PyInstanceMethod_Type, + _PyInterpreterState_Clear, _PyInterpreterState_Delete, _PyInterpreterState_Get, + _PyInterpreterState_GetDict, _PyInterpreterState_GetID, _PyInterpreterState_Head, + _PyInterpreterState_Main, _PyInterpreterState_New, _PyInterpreterState_Next, + _PyInterpreterState_ThreadHead, _PyIter_Check, _PyIter_Next, + _PyListIter_Type, _PyListRevIter_Type, _PyList_Append, _PyList_AsTuple, + _PyList_GetItem, _PyList_GetSlice, _PyList_Insert, _PyList_New, + _PyList_Reverse, _PyList_SetItem, _PyList_SetSlice, _PyList_Size, + _PyList_Sort, _PyList_Type, _PyLongRangeIter_Type, _PyLong_AsDouble, + _PyLong_AsLong, _PyLong_AsLongAndOverflow, _PyLong_AsLongLong, + _PyLong_AsLongLongAndOverflow, _PyLong_AsSize_t, _PyLong_AsSsize_t, + _PyLong_AsUnsignedLong, _PyLong_AsUnsignedLongLong, _PyLong_AsUnsignedLongLongMask, + _PyLong_AsUnsignedLongMask, _PyLong_AsVoidPtr, _PyLong_FromDouble, + _PyLong_FromLong, _PyLong_FromLongLong, _PyLong_FromSize_t, + _PyLong_FromSsize_t, _PyLong_FromString, _PyLong_FromUnicode, + _PyLong_FromUnicodeObject, _PyLong_FromUnsignedLong, _PyLong_FromUnsignedLongLong, + _PyLong_FromVoidPtr, _PyLong_GetInfo, _PyLong_Type, _PyMap_Type, + _PyMapping_Check, _PyMapping_GetItemString, _PyMapping_HasKey, + _PyMapping_HasKeyString, _PyMapping_Items, _PyMapping_Keys, + _PyMapping_Length, _PyMapping_SetItemString, _PyMapping_Size, + _PyMapping_Values, _PyMarshal_Init, _PyMarshal_ReadLastObjectFromFile, + _PyMarshal_ReadLongFromFile, _PyMarshal_ReadObjectFromFile, + _PyMarshal_ReadObjectFromString, _PyMarshal_ReadShortFromFile, + _PyMarshal_WriteLongToFile, _PyMarshal_WriteObjectToFile, + _PyMarshal_WriteObjectToString, _PyMem_Calloc, _PyMem_Free, + _PyMem_GetAllocator, _PyMem_Malloc, _PyMem_RawCalloc, _PyMem_RawFree, + _PyMem_RawMalloc, _PyMem_RawRealloc, _PyMem_Realloc, _PyMem_SetAllocator, + _PyMem_SetupDebugHooks, _PyMemberDescr_Type, _PyMember_GetOne, + _PyMember_SetOne, _PyMemoryView_FromBuffer, _PyMemoryView_FromMemory, + _PyMemoryView_FromObject, _PyMemoryView_GetContiguous, _PyMemoryView_Type, + _PyMethodDescr_Type, _PyMethod_Function, _PyMethod_New, _PyMethod_Self, + _PyMethod_Type, _PyModuleDef_Init, _PyModuleDef_Type, _PyModule_AddFunctions, + _PyModule_AddIntConstant, _PyModule_AddObject, _PyModule_AddStringConstant, + _PyModule_AddType, _PyModule_Create2, _PyModule_ExecDef, _PyModule_FromDefAndSpec2, + _PyModule_GetDef, _PyModule_GetDict, _PyModule_GetFilename, + _PyModule_GetFilenameObject, _PyModule_GetName, _PyModule_GetNameObject, + _PyModule_GetState, _PyModule_New, _PyModule_NewObject, _PyModule_SetDocString, + _PyModule_Type, _PyNode_AddChild, _PyNode_Compile, _PyNode_Free, + _PyNode_ListTree, _PyNode_New, _PyNumber_Absolute, _PyNumber_Add, + _PyNumber_And, _PyNumber_AsSsize_t, _PyNumber_Check, _PyNumber_Divmod, + _PyNumber_Float, _PyNumber_FloorDivide, _PyNumber_InPlaceAdd, + _PyNumber_InPlaceAnd, _PyNumber_InPlaceFloorDivide, _PyNumber_InPlaceLshift, + _PyNumber_InPlaceMatrixMultiply, _PyNumber_InPlaceMultiply, + _PyNumber_InPlaceOr, _PyNumber_InPlacePower, _PyNumber_InPlaceRemainder, + _PyNumber_InPlaceRshift, _PyNumber_InPlaceSubtract, _PyNumber_InPlaceTrueDivide, + _PyNumber_InPlaceXor, _PyNumber_Index, _PyNumber_Invert, _PyNumber_Long, + _PyNumber_Lshift, _PyNumber_MatrixMultiply, _PyNumber_Multiply, + _PyNumber_Negative, _PyNumber_Or, _PyNumber_Positive, _PyNumber_Power, + _PyNumber_Remainder, _PyNumber_Rshift, _PyNumber_Subtract, + _PyNumber_ToBase, _PyNumber_TrueDivide, _PyNumber_Xor, _PyODictItems_Type, + _PyODictIter_Type, _PyODictKeys_Type, _PyODictValues_Type, + _PyODict_DelItem, _PyODict_New, _PyODict_SetItem, _PyODict_Type, + _PyOS_AfterFork, _PyOS_AfterFork_Child, _PyOS_AfterFork_Parent, + _PyOS_BeforeFork, _PyOS_FSPath, _PyOS_InitInterrupts, _PyOS_InputHook, + _PyOS_InterruptOccurred, _PyOS_Readline, _PyOS_ReadlineFunctionPointer, + _PyOS_double_to_string, _PyOS_getsig, _PyOS_mystricmp, _PyOS_mystrnicmp, + _PyOS_setsig, _PyOS_snprintf, _PyOS_string_to_double, _PyOS_strtol, + _PyOS_strtoul, _PyOS_vsnprintf, _PyObject_ASCII, _PyObject_AsCharBuffer, + _PyObject_AsFileDescriptor, _PyObject_AsReadBuffer, _PyObject_AsWriteBuffer, + _PyObject_Bytes, _PyObject_Call, _PyObject_CallFinalizer, + _PyObject_CallFinalizerFromDealloc, _PyObject_CallFunction, + _PyObject_CallFunctionObjArgs, _PyObject_CallMethod, _PyObject_CallMethodObjArgs, + _PyObject_CallNoArgs, _PyObject_CallObject, _PyObject_Calloc, + _PyObject_CheckBuffer, _PyObject_CheckReadBuffer, _PyObject_ClearWeakRefs, + _PyObject_CopyData, _PyObject_DelItem, _PyObject_DelItemString, + _PyObject_Dir, _PyObject_Format, _PyObject_Free, _PyObject_GC_Del, + _PyObject_GC_IsFinalized, _PyObject_GC_IsTracked, _PyObject_GC_Track, + _PyObject_GC_UnTrack, _PyObject_GET_WEAKREFS_LISTPTR, _PyObject_GenericGetAttr, + _PyObject_GenericGetDict, _PyObject_GenericSetAttr, _PyObject_GenericSetDict, + _PyObject_GetArenaAllocator, _PyObject_GetAttr, _PyObject_GetAttrString, + _PyObject_GetBuffer, _PyObject_GetItem, _PyObject_GetIter, + _PyObject_HasAttr, _PyObject_HasAttrString, _PyObject_Hash, + _PyObject_HashNotImplemented, _PyObject_IS_GC, _PyObject_Init, + _PyObject_InitVar, _PyObject_IsInstance, _PyObject_IsSubclass, + _PyObject_IsTrue, _PyObject_Length, _PyObject_LengthHint, + _PyObject_Malloc, _PyObject_Not, _PyObject_Print, _PyObject_Realloc, + _PyObject_Repr, _PyObject_RichCompare, _PyObject_RichCompareBool, + _PyObject_SelfIter, _PyObject_SetArenaAllocator, _PyObject_SetAttr, + _PyObject_SetAttrString, _PyObject_SetItem, _PyObject_Size, + _PyObject_Str, _PyObject_Type, _PyObject_VectorcallDict, _PyObject_VectorcallMethod, + _PyParser_ASTFromFile, _PyParser_ASTFromFileObject, _PyParser_ASTFromString, + _PyParser_ASTFromStringObject, _PyParser_ClearError, _PyParser_ParseFile, + _PyParser_ParseFileFlags, _PyParser_ParseFileFlagsEx, _PyParser_ParseFileObject, + _PyParser_ParseString, _PyParser_ParseStringFlags, _PyParser_ParseStringFlagsFilename, + _PyParser_ParseStringFlagsFilenameEx, _PyParser_ParseStringObject, + _PyParser_SetError, _PyParser_SimpleParseFile, _PyParser_SimpleParseFileFlags, + _PyParser_SimpleParseString, _PyParser_SimpleParseStringFlags, + _PyParser_SimpleParseStringFlagsFilename, _PyPegen_ASTFromFileObject, + _PyPegen_ASTFromFilename, _PyPegen_ASTFromString, _PyPegen_ASTFromStringObject, + _PyPickleBuffer_FromObject, _PyPickleBuffer_GetBuffer, _PyPickleBuffer_Release, + _PyPickleBuffer_Type, _PyPreConfig_InitIsolatedConfig, _PyPreConfig_InitPythonConfig, + _PyProperty_Type, _PyRangeIter_Type, _PyRange_Type, _PyReversed_Type, + _PyRun_AnyFile, _PyRun_AnyFileEx, _PyRun_AnyFileExFlags, _PyRun_AnyFileFlags, + _PyRun_File, _PyRun_FileEx, _PyRun_FileExFlags, _PyRun_FileFlags, + _PyRun_InteractiveLoop, _PyRun_InteractiveLoopFlags, _PyRun_InteractiveOne, + _PyRun_InteractiveOneFlags, _PyRun_InteractiveOneObject, _PyRun_SimpleFile, + _PyRun_SimpleFileEx, _PyRun_SimpleFileExFlags, _PyRun_SimpleString, + _PyRun_SimpleStringFlags, _PyRun_String, _PyRun_StringFlags, + _PySTEntry_Type, _PyST_GetScope, _PySeqIter_New, _PySeqIter_Type, + _PySequence_Check, _PySequence_Concat, _PySequence_Contains, + _PySequence_Count, _PySequence_DelItem, _PySequence_DelSlice, + _PySequence_Fast, _PySequence_GetItem, _PySequence_GetSlice, + _PySequence_In, _PySequence_InPlaceConcat, _PySequence_InPlaceRepeat, + _PySequence_Index, _PySequence_Length, _PySequence_List, _PySequence_Repeat, + _PySequence_SetItem, _PySequence_SetSlice, _PySequence_Size, + _PySequence_Tuple, _PySetIter_Type, _PySet_Add, _PySet_Clear, + _PySet_Contains, _PySet_Discard, _PySet_New, _PySet_Pop, _PySet_Size, + _PySet_Type, _PySlice_AdjustIndices, _PySlice_GetIndices, + _PySlice_GetIndicesEx, _PySlice_New, _PySlice_Type, _PySlice_Unpack, + _PyState_AddModule, _PyState_FindModule, _PyState_RemoveModule, + _PyStaticMethod_New, _PyStaticMethod_Type, _PyStatus_Error, + _PyStatus_Exception, _PyStatus_Exit, _PyStatus_IsError, _PyStatus_IsExit, + _PyStatus_NoMemory, _PyStatus_Ok, _PyStdPrinter_Type, _PyStructSequence_GetItem, + _PyStructSequence_InitType, _PyStructSequence_InitType2, _PyStructSequence_New, + _PyStructSequence_NewType, _PyStructSequence_SetItem, _PySuper_Type, + _PySymtable_Build, _PySymtable_BuildObject, _PySymtable_Free, + _PySymtable_Lookup, _PySys_AddAuditHook, _PySys_AddWarnOption, + _PySys_AddWarnOptionUnicode, _PySys_AddXOption, _PySys_Audit, + _PySys_FormatStderr, _PySys_FormatStdout, _PySys_GetObject, + _PySys_GetXOptions, _PySys_HasWarnOptions, _PySys_ResetWarnOptions, + _PySys_SetArgv, _PySys_SetArgvEx, _PySys_SetObject, _PySys_SetPath, + _PySys_WriteStderr, _PySys_WriteStdout, _PyThreadState_Clear, + _PyThreadState_Delete, _PyThreadState_DeleteCurrent, _PyThreadState_Get, + _PyThreadState_GetDict, _PyThreadState_GetFrame, _PyThreadState_GetID, + _PyThreadState_GetInterpreter, _PyThreadState_New, _PyThreadState_Next, + _PyThreadState_SetAsyncExc, _PyThreadState_Swap, _PyThread_GetInfo, + _PyThread_ReInitTLS, _PyThread_acquire_lock, _PyThread_acquire_lock_timed, + _PyThread_allocate_lock, _PyThread_create_key, _PyThread_delete_key, + _PyThread_delete_key_value, _PyThread_exit_thread, _PyThread_free_lock, + _PyThread_get_key_value, _PyThread_get_stacksize, _PyThread_get_thread_ident, + _PyThread_get_thread_native_id, _PyThread_init_thread, _PyThread_release_lock, + _PyThread_set_key_value, _PyThread_set_stacksize, _PyThread_start_new_thread, + _PyThread_tss_alloc, _PyThread_tss_create, _PyThread_tss_delete, + _PyThread_tss_free, _PyThread_tss_get, _PyThread_tss_is_created, + _PyThread_tss_set, _PyToken_OneChar, _PyToken_ThreeChars, + _PyToken_TwoChars, _PyTraceBack_Here, _PyTraceBack_Print, + _PyTraceBack_Type, _PyTraceMalloc_Track, _PyTraceMalloc_Untrack, + _PyTupleIter_Type, _PyTuple_GetItem, _PyTuple_GetSlice, _PyTuple_New, + _PyTuple_Pack, _PyTuple_SetItem, _PyTuple_Size, _PyTuple_Type, + _PyType_ClearCache, _PyType_FromModuleAndSpec, _PyType_FromSpec, + _PyType_FromSpecWithBases, _PyType_GenericAlloc, _PyType_GenericNew, + _PyType_GetFlags, _PyType_GetModule, _PyType_GetModuleState, + _PyType_GetSlot, _PyType_IsSubtype, _PyType_Modified, _PyType_Ready, + _PyType_Type, _PyUnicodeDecodeError_Create, _PyUnicodeDecodeError_GetEncoding, + _PyUnicodeDecodeError_GetEnd, _PyUnicodeDecodeError_GetObject, + _PyUnicodeDecodeError_GetReason, _PyUnicodeDecodeError_GetStart, + _PyUnicodeDecodeError_SetEnd, _PyUnicodeDecodeError_SetReason, + _PyUnicodeDecodeError_SetStart, _PyUnicodeEncodeError_Create, + _PyUnicodeEncodeError_GetEncoding, _PyUnicodeEncodeError_GetEnd, + _PyUnicodeEncodeError_GetObject, _PyUnicodeEncodeError_GetReason, + _PyUnicodeEncodeError_GetStart, _PyUnicodeEncodeError_SetEnd, + _PyUnicodeEncodeError_SetReason, _PyUnicodeEncodeError_SetStart, + _PyUnicodeIter_Type, _PyUnicodeTranslateError_Create, _PyUnicodeTranslateError_GetEnd, + _PyUnicodeTranslateError_GetObject, _PyUnicodeTranslateError_GetReason, + _PyUnicodeTranslateError_GetStart, _PyUnicodeTranslateError_SetEnd, + _PyUnicodeTranslateError_SetReason, _PyUnicodeTranslateError_SetStart, + _PyUnicode_Append, _PyUnicode_AppendAndDel, _PyUnicode_AsASCIIString, + _PyUnicode_AsCharmapString, _PyUnicode_AsDecodedObject, _PyUnicode_AsDecodedUnicode, + _PyUnicode_AsEncodedObject, _PyUnicode_AsEncodedString, _PyUnicode_AsEncodedUnicode, + _PyUnicode_AsLatin1String, _PyUnicode_AsRawUnicodeEscapeString, + _PyUnicode_AsUCS4, _PyUnicode_AsUCS4Copy, _PyUnicode_AsUTF16String, + _PyUnicode_AsUTF32String, _PyUnicode_AsUTF8, _PyUnicode_AsUTF8AndSize, + _PyUnicode_AsUTF8String, _PyUnicode_AsUnicode, _PyUnicode_AsUnicodeAndSize, + _PyUnicode_AsUnicodeCopy, _PyUnicode_AsUnicodeEscapeString, + _PyUnicode_AsWideChar, _PyUnicode_AsWideCharString, _PyUnicode_BuildEncodingMap, + _PyUnicode_Compare, _PyUnicode_CompareWithASCIIString, _PyUnicode_Concat, + _PyUnicode_Contains, _PyUnicode_CopyCharacters, _PyUnicode_Count, + _PyUnicode_Decode, _PyUnicode_DecodeASCII, _PyUnicode_DecodeCharmap, + _PyUnicode_DecodeFSDefault, _PyUnicode_DecodeFSDefaultAndSize, + _PyUnicode_DecodeLatin1, _PyUnicode_DecodeLocale, _PyUnicode_DecodeLocaleAndSize, + _PyUnicode_DecodeRawUnicodeEscape, _PyUnicode_DecodeUTF16, + _PyUnicode_DecodeUTF16Stateful, _PyUnicode_DecodeUTF32, _PyUnicode_DecodeUTF32Stateful, + _PyUnicode_DecodeUTF7, _PyUnicode_DecodeUTF7Stateful, _PyUnicode_DecodeUTF8, + _PyUnicode_DecodeUTF8Stateful, _PyUnicode_DecodeUnicodeEscape, + _PyUnicode_Encode, _PyUnicode_EncodeASCII, _PyUnicode_EncodeCharmap, + _PyUnicode_EncodeDecimal, _PyUnicode_EncodeFSDefault, _PyUnicode_EncodeLatin1, + _PyUnicode_EncodeLocale, _PyUnicode_EncodeRawUnicodeEscape, + _PyUnicode_EncodeUTF16, _PyUnicode_EncodeUTF32, _PyUnicode_EncodeUTF7, + _PyUnicode_EncodeUTF8, _PyUnicode_EncodeUnicodeEscape, _PyUnicode_FSConverter, + _PyUnicode_FSDecoder, _PyUnicode_Fill, _PyUnicode_Find, _PyUnicode_FindChar, + _PyUnicode_Format, _PyUnicode_FromEncodedObject, _PyUnicode_FromFormat, + _PyUnicode_FromFormatV, _PyUnicode_FromKindAndData, _PyUnicode_FromObject, + _PyUnicode_FromOrdinal, _PyUnicode_FromString, _PyUnicode_FromStringAndSize, + _PyUnicode_FromUnicode, _PyUnicode_FromWideChar, _PyUnicode_GetDefaultEncoding, + _PyUnicode_GetLength, _PyUnicode_GetMax, _PyUnicode_GetSize, + _PyUnicode_InternFromString, _PyUnicode_InternImmortal, _PyUnicode_InternInPlace, + _PyUnicode_IsIdentifier, _PyUnicode_Join, _PyUnicode_New, + _PyUnicode_Partition, _PyUnicode_RPartition, _PyUnicode_RSplit, + _PyUnicode_ReadChar, _PyUnicode_Replace, _PyUnicode_Resize, + _PyUnicode_RichCompare, _PyUnicode_Split, _PyUnicode_Splitlines, + _PyUnicode_Substring, _PyUnicode_Tailmatch, _PyUnicode_TransformDecimalToASCII, + _PyUnicode_Translate, _PyUnicode_TranslateCharmap, _PyUnicode_Type, + _PyUnicode_WriteChar, _PyVectorcall_Call, _PyWeakref_GetObject, + _PyWeakref_NewProxy, _PyWeakref_NewRef, _PyWideStringList_Append, + _PyWideStringList_Insert, _PyWrapperDescr_Type, _PyWrapper_New, + _PyZip_Type, _Py_AddPendingCall, _Py_AtExit, _Py_BuildValue, + _Py_BytesMain, _Py_BytesWarningFlag, _Py_CompileString, _Py_CompileStringExFlags, + _Py_CompileStringFlags, _Py_CompileStringObject, _Py_DebugFlag, + _Py_DecRef, _Py_DecodeLocale, _Py_DontWriteBytecodeFlag, _Py_EncodeLocale, + _Py_EndInterpreter, _Py_EnterRecursiveCall, _Py_Exit, _Py_ExitStatusException, + _Py_FatalError, _Py_FdIsInteractive, _Py_FileSystemDefaultEncodeErrors, + _Py_FileSystemDefaultEncoding, _Py_Finalize, _Py_FinalizeEx, + _Py_FrozenFlag, _Py_GenericAlias, _Py_GenericAliasType, _Py_GetArgcArgv, + _Py_GetBuildInfo, _Py_GetCompiler, _Py_GetCopyright, _Py_GetExecPrefix, + _Py_GetPath, _Py_GetPlatform, _Py_GetPrefix, _Py_GetProgramFullPath, + _Py_GetProgramName, _Py_GetPythonHome, _Py_GetRecursionLimit, + _Py_GetVersion, _Py_HasFileSystemDefaultEncoding, _Py_HashRandomizationFlag, + _Py_IgnoreEnvironmentFlag, _Py_IncRef, _Py_Initialize, _Py_InitializeEx, + _Py_InitializeFromConfig, _Py_InspectFlag, _Py_InteractiveFlag, + _Py_IsInitialized, _Py_IsolatedFlag, _Py_LeaveRecursiveCall, + _Py_Main, _Py_MakePendingCalls, _Py_NewInterpreter, _Py_NoSiteFlag, + _Py_NoUserSiteDirectory, _Py_OptimizeFlag, _Py_PreInitialize, + _Py_PreInitializeFromArgs, _Py_PreInitializeFromBytesArgs, + _Py_QuietFlag, _Py_ReprEnter, _Py_ReprLeave, _Py_RunMain, + _Py_SetPath, _Py_SetProgramName, _Py_SetPythonHome, _Py_SetRecursionLimit, + _Py_SetStandardStreamEncoding, _Py_SymtableString, _Py_SymtableStringObject, + _Py_UNICODE_strcat, _Py_UNICODE_strchr, _Py_UNICODE_strcmp, + _Py_UNICODE_strcpy, _Py_UNICODE_strlen, _Py_UNICODE_strncmp, + _Py_UNICODE_strncpy, _Py_UNICODE_strrchr, _Py_UTF8Mode, _Py_UnbufferedStdioFlag, + _Py_UniversalNewlineFgets, _Py_VaBuildValue, _Py_VerboseFlag, + _Py_hexdigits, __PyAST_GetDocString, __PyAST_Optimize, __PyAccu_Accumulate, + __PyAccu_Destroy, __PyAccu_Finish, __PyAccu_FinishAsList, + __PyAccu_Init, __PyArg_BadArgument, __PyArg_CheckPositional, + __PyArg_NoKeywords, __PyArg_NoKwnames, __PyArg_NoPositional, + __PyArg_ParseStack, __PyArg_ParseStackAndKeywords, __PyArg_ParseStackAndKeywords_SizeT, + __PyArg_ParseStack_SizeT, __PyArg_ParseTupleAndKeywordsFast, + __PyArg_ParseTupleAndKeywordsFast_SizeT, __PyArg_ParseTupleAndKeywords_SizeT, + __PyArg_ParseTuple_SizeT, __PyArg_Parse_SizeT, __PyArg_UnpackKeywords, + __PyArg_UnpackStack, __PyArg_VaParseTupleAndKeywordsFast, + __PyArg_VaParseTupleAndKeywordsFast_SizeT, __PyArg_VaParseTupleAndKeywords_SizeT, + __PyArg_VaParse_SizeT, __PyArgv_AsWstrList, __PyAsyncGenASend_Type, + __PyAsyncGenAThrow_Type, __PyAsyncGenWrappedValue_Type, __PyByteArray_empty_string, + __PyBytesIOBuffer_Type, __PyBytesWriter_Alloc, __PyBytesWriter_Dealloc, + __PyBytesWriter_Finish, __PyBytesWriter_Init, __PyBytesWriter_Prepare, + __PyBytesWriter_Resize, __PyBytesWriter_WriteBytes, __PyBytes_DecodeEscape, + __PyBytes_FormatEx, __PyBytes_FromHex, __PyBytes_Join, __PyBytes_Resize, + __PyCode_CheckLineNumber, __PyCode_ConstantKey, __PyCode_GetExtra, + __PyCode_SetExtra, __PyCodecInfo_GetIncrementalDecoder, __PyCodecInfo_GetIncrementalEncoder, + __PyCodec_DecodeText, __PyCodec_EncodeText, __PyCodec_Forget, + __PyCodec_Lookup, __PyCodec_LookupTextEncoding, __PyComplex_FormatAdvancedWriter, + __PyConfig_InitCompatConfig, __PyContext_NewHamtForTests, + __PyCoroWrapper_Type, __PyCrossInterpreterData_Lookup, __PyCrossInterpreterData_NewObject, + __PyCrossInterpreterData_RegisterClass, __PyCrossInterpreterData_Release, + __PyDebugAllocatorStats, __PyDictView_Intersect, __PyDictView_New, + __PyDict_CheckConsistency, __PyDict_Contains, __PyDict_DebugMallocStats, + __PyDict_DelItemId, __PyDict_DelItemIf, __PyDict_DelItem_KnownHash, + __PyDict_GetItemId, __PyDict_GetItemIdWithError, __PyDict_GetItemStringWithError, + __PyDict_GetItem_KnownHash, __PyDict_HasOnlyStringKeys, __PyDict_MaybeUntrack, + __PyDict_MergeEx, __PyDict_NewPresized, __PyDict_Next, __PyDict_Pop, + __PyDict_SetItemId, __PyDict_SetItem_KnownHash, __PyDict_SizeOf, + __PyErr_BadInternalCall, __PyErr_ChainExceptions, __PyErr_ChainStackItem, + __PyErr_CheckSignals, __PyErr_CheckSignalsTstate, __PyErr_Clear, + __PyErr_Display, __PyErr_ExceptionMatches, __PyErr_Fetch, + __PyErr_Format, __PyErr_FormatFromCause, __PyErr_FormatFromCauseTstate, + __PyErr_GetExcInfo, __PyErr_GetTopmostException, __PyErr_NoMemory, + __PyErr_NormalizeException, __PyErr_Print, __PyErr_Restore, + __PyErr_SetKeyError, __PyErr_SetNone, __PyErr_SetObject, __PyErr_SetString, + __PyErr_TrySetFromCause, __PyErr_WriteUnraisableMsg, __PyEval_AddPendingCall, + __PyEval_CallTracing, __PyEval_EvalCodeWithName, __PyEval_EvalFrameDefault, + __PyEval_GetAsyncGenFinalizer, __PyEval_GetAsyncGenFirstiter, + __PyEval_GetBuiltinId, __PyEval_GetCoroutineOriginTrackingDepth, + __PyEval_GetSwitchInterval, __PyEval_RequestCodeExtraIndex, + __PyEval_SetAsyncGenFinalizer, __PyEval_SetAsyncGenFirstiter, + __PyEval_SetCoroutineOriginTrackingDepth, __PyEval_SetProfile, + __PyEval_SetSwitchInterval, __PyEval_SetTrace, __PyEval_SignalAsyncExc, + __PyEval_SignalReceived, __PyEval_SliceIndex, __PyEval_SliceIndexNotNone, + __PyFloat_DebugMallocStats, __PyFloat_FormatAdvancedWriter, + __PyFloat_Pack2, __PyFloat_Pack4, __PyFloat_Pack8, __PyFloat_Unpack2, + __PyFloat_Unpack4, __PyFloat_Unpack8, __PyFrame_DebugMallocStats, + __PyFunction_Vectorcall, __PyGC_CollectIfEnabled, __PyGC_CollectNoFail, + __PyGC_InitState, __PyGILState_GetInterpreterStateUnsafe, + __PyGILState_Reinit, __PyGen_FetchStopIterationValue, __PyGen_Finalize, + __PyGen_Send, __PyGen_SetStopIterationValue, __PyHamtItems_Type, + __PyHamtKeys_Type, __PyHamtValues_Type, __PyHamt_ArrayNode_Type, + __PyHamt_BitmapNode_Type, __PyHamt_CollisionNode_Type, __PyHamt_Type, + __PyImport_AcquireLock, __PyImport_FindExtensionObject, __PyImport_FixupBuiltin, + __PyImport_FixupExtensionObject, __PyImport_GetModuleId, __PyImport_IsInitialized, + __PyImport_ReleaseLock, __PyImport_SetModule, __PyImport_SetModuleString, + __PyInterpreterID_LookUp, __PyInterpreterID_New, __PyInterpreterID_Type, + __PyInterpreterState_DeleteExceptMain, __PyInterpreterState_Enable, + __PyInterpreterState_GetConfig, __PyInterpreterState_GetEvalFrameFunc, + __PyInterpreterState_GetIDObject, __PyInterpreterState_GetMainModule, + __PyInterpreterState_IDDecref, __PyInterpreterState_IDIncref, + __PyInterpreterState_IDInitref, __PyInterpreterState_LookUpID, + __PyInterpreterState_RequireIDRef, __PyInterpreterState_RequiresIDRef, + __PyInterpreterState_SetEvalFrameFunc, __PyList_DebugMallocStats, + __PyList_Extend, __PyLong_AsByteArray, __PyLong_AsInt, __PyLong_AsTime_t, + __PyLong_Copy, __PyLong_DigitValue, __PyLong_DivmodNear, __PyLong_Format, + __PyLong_FormatAdvancedWriter, __PyLong_FormatBytesWriter, + __PyLong_FormatWriter, __PyLong_Frexp, __PyLong_FromByteArray, + __PyLong_FromBytes, __PyLong_FromGid, __PyLong_FromNbIndexOrNbInt, + __PyLong_FromNbInt, __PyLong_FromTime_t, __PyLong_FromUid, + __PyLong_GCD, __PyLong_Lshift, __PyLong_New, __PyLong_NumBits, + __PyLong_One, __PyLong_Rshift, __PyLong_Sign, __PyLong_Size_t_Converter, + __PyLong_UnsignedInt_Converter, __PyLong_UnsignedLongLong_Converter, + __PyLong_UnsignedLong_Converter, __PyLong_UnsignedShort_Converter, + __PyLong_Zero, __PyManagedBuffer_Type, __PyMem_GetAllocatorName, + __PyMem_GetCurrentAllocatorName, __PyMem_RawStrdup, __PyMem_RawWcsdup, + __PyMem_SetDefaultAllocator, __PyMem_SetupAllocators, __PyMem_Strdup, + __PyMethodWrapper_Type, __PyModuleSpec_IsInitializing, __PyModule_Clear, + __PyModule_ClearDict, __PyModule_CreateInitialized, __PyNamespace_New, + __PyNamespace_Type, __PyNode_SizeOf, __PyNone_Type, __PyNotImplemented_Type, + __PyOS_InterruptOccurred, __PyOS_IsMainThread, __PyOS_ReadlineTState, + __PyOS_URandom, __PyOS_URandomNonblock, __PyObject_AssertFailed, + __PyObject_Call, __PyObject_CallFunction_SizeT, __PyObject_CallMethodId, + __PyObject_CallMethodIdObjArgs, __PyObject_CallMethodId_SizeT, + __PyObject_CallMethod_SizeT, __PyObject_Call_Prepend, __PyObject_CheckConsistency, + __PyObject_CheckCrossInterpreterData, __PyObject_DebugMallocStats, + __PyObject_DebugTypeStats, __PyObject_Dump, __PyObject_FastCallDictTstate, + __PyObject_FunctionStr, __PyObject_GC_Calloc, __PyObject_GC_Malloc, + __PyObject_GC_New, __PyObject_GC_NewVar, __PyObject_GC_Resize, + __PyObject_GenericGetAttrWithDict, __PyObject_GenericSetAttrWithDict, + __PyObject_GetAttrId, __PyObject_GetCrossInterpreterData, + __PyObject_GetDictPtr, __PyObject_GetMethod, __PyObject_HasAttrId, + __PyObject_HasLen, __PyObject_IsAbstract, __PyObject_IsFreed, + __PyObject_LookupAttr, __PyObject_LookupAttrId, __PyObject_LookupSpecial, + __PyObject_MakeTpCall, __PyObject_New, __PyObject_NewVar, + __PyObject_NextNotImplemented, __PyObject_RealIsInstance, + __PyObject_RealIsSubclass, __PyObject_SetAttrId, __PyParser_Grammar, + __PyParser_TokenNames, __PyPreConfig_InitCompatConfig, __PyRuntime, + __PyRuntimeState_Fini, __PyRuntimeState_Init, __PyRuntimeState_ReInitThreads, + __PyRuntime_Finalize, __PyRuntime_Initialize, __PySequence_BytesToCharpArray, + __PySequence_IterSearch, __PySet_Dummy, __PySet_NextEntry, + __PySet_Update, __PySignal_AfterFork, __PySlice_FromIndices, + __PySlice_GetLongIndices, __PyStack_AsDict, __PyState_AddModule, + __PySys_GetObjectId, __PySys_GetSizeOf, __PySys_SetObjectId, + __PyThreadState_DeleteCurrent, __PyThreadState_DeleteExcept, + __PyThreadState_GetDict, __PyThreadState_Init, __PyThreadState_Prealloc, + __PyThreadState_Swap, __PyThreadState_UncheckedGet, __PyThread_CurrentFrames, + __PyThread_at_fork_reinit, __PyTime_AsMicroseconds, __PyTime_AsMilliseconds, + __PyTime_AsNanosecondsObject, __PyTime_AsSecondsDouble, __PyTime_AsTimespec, + __PyTime_AsTimeval, __PyTime_AsTimevalTime_t, __PyTime_AsTimeval_noraise, + __PyTime_FromMillisecondsObject, __PyTime_FromNanoseconds, + __PyTime_FromNanosecondsObject, __PyTime_FromSeconds, __PyTime_FromSecondsObject, + __PyTime_FromTimespec, __PyTime_FromTimeval, __PyTime_GetMonotonicClock, + __PyTime_GetMonotonicClockWithInfo, __PyTime_GetPerfCounter, + __PyTime_GetPerfCounterWithInfo, __PyTime_GetSystemClock, + __PyTime_GetSystemClockWithInfo, __PyTime_Init, __PyTime_MulDiv, + __PyTime_ObjectToTime_t, __PyTime_ObjectToTimespec, __PyTime_ObjectToTimeval, + __PyTime_gmtime, __PyTime_localtime, __PyTraceMalloc_GetTraceback, + __PyTraceMalloc_NewReference, __PyTraceback_Add, __PyTrash_begin, + __PyTrash_deposit_object, __PyTrash_destroy_chain, __PyTrash_end, + __PyTrash_thread_deposit_object, __PyTrash_thread_destroy_chain, + __PyTuple_DebugMallocStats, __PyTuple_MaybeUntrack, __PyTuple_Resize, + __PyType_CalculateMetaclass, __PyType_CheckConsistency, __PyType_GetDocFromInternalDoc, + __PyType_GetTextSignatureFromInternalDoc, __PyType_Lookup, + __PyType_LookupId, __PyType_Name, __PyUnicodeTranslateError_Create, + __PyUnicodeWriter_Dealloc, __PyUnicodeWriter_Finish, __PyUnicodeWriter_Init, + __PyUnicodeWriter_PrepareInternal, __PyUnicodeWriter_PrepareKindInternal, + __PyUnicodeWriter_WriteASCIIString, __PyUnicodeWriter_WriteChar, + __PyUnicodeWriter_WriteLatin1String, __PyUnicodeWriter_WriteStr, + __PyUnicodeWriter_WriteSubstring, __PyUnicode_AsASCIIString, + __PyUnicode_AsLatin1String, __PyUnicode_AsUTF8String, __PyUnicode_AsUnicode, + __PyUnicode_CheckConsistency, __PyUnicode_Copy, __PyUnicode_DecodeUnicodeEscape, + __PyUnicode_EQ, __PyUnicode_EncodeCharmap, __PyUnicode_EncodeUTF16, + __PyUnicode_EncodeUTF32, __PyUnicode_EncodeUTF7, __PyUnicode_EqualToASCIIId, + __PyUnicode_EqualToASCIIString, __PyUnicode_FastCopyCharacters, + __PyUnicode_FastFill, __PyUnicode_FindMaxChar, __PyUnicode_FormatAdvancedWriter, + __PyUnicode_FormatLong, __PyUnicode_FromASCII, __PyUnicode_FromId, + __PyUnicode_InsertThousandsGrouping, __PyUnicode_IsAlpha, + __PyUnicode_IsCaseIgnorable, __PyUnicode_IsCased, __PyUnicode_IsDecimalDigit, + __PyUnicode_IsDigit, __PyUnicode_IsLinebreak, __PyUnicode_IsLowercase, + __PyUnicode_IsNumeric, __PyUnicode_IsPrintable, __PyUnicode_IsTitlecase, + __PyUnicode_IsUppercase, __PyUnicode_IsWhitespace, __PyUnicode_IsXidContinue, + __PyUnicode_IsXidStart, __PyUnicode_JoinArray, __PyUnicode_Ready, + __PyUnicode_ScanIdentifier, __PyUnicode_ToDecimalDigit, __PyUnicode_ToDigit, + __PyUnicode_ToFoldedFull, __PyUnicode_ToLowerFull, __PyUnicode_ToLowercase, + __PyUnicode_ToNumeric, __PyUnicode_ToTitleFull, __PyUnicode_ToTitlecase, + __PyUnicode_ToUpperFull, __PyUnicode_ToUppercase, __PyUnicode_TransformDecimalAndSpaceToASCII, + __PyUnicode_XStrip, __PyWarnings_Init, __PyWeakref_CallableProxyType, + __PyWeakref_ClearRef, __PyWeakref_GetWeakrefCount, __PyWeakref_ProxyType, + __PyWeakref_RefType, __PyWideStringList_AsList, __PyWideStringList_Clear, + __PyWideStringList_Copy, __PyWideStringList_Extend, __Py_BreakPoint, + __Py_BuildValue_SizeT, __Py_CheckFunctionResult, __Py_CheckRecursionLimit, + __Py_CheckRecursiveCall, __Py_ClearArgcArgv, __Py_ClearStandardStreamEncoding, + __Py_CoerceLegacyLocale, __Py_Dealloc, __Py_DecodeLocaleEx, + __Py_DecodeUTF8Ex, __Py_DecodeUTF8_surrogateescape, __Py_DisplaySourceLine, + __Py_EllipsisObject, __Py_EncodeLocaleEx, __Py_EncodeLocaleRaw, + __Py_EncodeUTF8Ex, __Py_FalseStruct, __Py_FatalErrorFormat, + __Py_FatalErrorFunc, __Py_FatalError_TstateNULL, __Py_FreeCharPArray, + __Py_GetAllocatedBlocks, __Py_GetConfig, __Py_GetConfigsAsDict, + __Py_GetEnv, __Py_GetErrorHandler, __Py_GetForceASCII, __Py_GetLocaleconvNumeric, + __Py_Gid_Converter, __Py_HandleSystemExit, __Py_HashBytes, + __Py_HashDouble, __Py_HashPointer, __Py_HashPointerRaw, __Py_HashSecret, + __Py_InitializeMain, __Py_IsCoreInitialized, __Py_IsFinalizing, + __Py_IsLocaleCoercionTarget, __Py_LegacyLocaleDetected, __Py_Mangle, + __Py_NewInterpreter, __Py_NewReference, __Py_NoneStruct, __Py_NotImplementedStruct, + __Py_PackageContext, __Py_PreInitializeFromConfig, __Py_PreInitializeFromPyArgv, + __Py_PyAtExit, __Py_ResetForceASCII, __Py_RestoreSignals, + __Py_SetLocaleFromEnv, __Py_SetProgramFullPath, __Py_Sigset_Converter, + __Py_SourceAsString, __Py_SwappedOp, __Py_SymtableStringObjectFlags, + __Py_TrueStruct, __Py_Uid_Converter, __Py_UnhandledKeyboardInterrupt, + __Py_VaBuildStack, __Py_VaBuildStack_SizeT, __Py_VaBuildValue_SizeT, + __Py_abspath, __Py_add_one_to_index_C, __Py_add_one_to_index_F, + __Py_ascii_whitespace, __Py_bit_length, __Py_c_abs, __Py_c_diff, + __Py_c_neg, __Py_c_pow, __Py_c_prod, __Py_c_quot, __Py_c_sum, + __Py_convert_optional_to_ssize_t, __Py_ctype_table, __Py_ctype_tolower, + __Py_ctype_toupper, __Py_device_encoding, __Py_dg_dtoa, __Py_dg_freedtoa, + __Py_dg_infinity, __Py_dg_stdnan, __Py_dg_strtod, __Py_dup, + __Py_fopen, __Py_fopen_obj, __Py_fstat, __Py_fstat_noraise, + __Py_get_blocking, __Py_get_env_flag, __Py_get_inheritable, + __Py_get_xoption, __Py_gitidentifier, __Py_gitversion, __Py_hashtable_clear, + __Py_hashtable_compare_direct, __Py_hashtable_destroy, __Py_hashtable_foreach, + __Py_hashtable_get, __Py_hashtable_hash_ptr, __Py_hashtable_new, + __Py_hashtable_new_full, __Py_hashtable_set, __Py_hashtable_size, + __Py_hashtable_steal, __Py_isabs, __Py_open, __Py_open_noraise, + __Py_parse_inf_or_nan, __Py_path_config, __Py_read, __Py_set_blocking, + __Py_set_inheritable, __Py_set_inheritable_async_safe, __Py_stat, + __Py_str_to_int, __Py_strhex, __Py_strhex_bytes, __Py_strhex_bytes_with_sep, + __Py_strhex_with_sep, __Py_string_to_number_with_underscores, + __Py_tracemalloc_config, __Py_wfopen, __Py_wgetcwd, __Py_wreadlink, + __Py_wrealpath, __Py_write, __Py_write_noraise ] +... diff --git a/makedep.cfg b/makedep.cfg new file mode 100644 index 0000000..23e7932 --- /dev/null +++ b/makedep.cfg @@ -0,0 +1 @@ +ida_exclude+=fuzzer.hpp diff --git a/makefile b/makefile index eff6aea..6582073 100644 --- a/makefile +++ b/makefile @@ -1,10 +1,4 @@ -ifeq ($(PYTHON_VERSION_MAJOR),3) - OBJDIR=obj/$(SYSDIR)/3 -else - OBJDIR=obj/$(SYSDIR)/2 -endif - include ../../allmake.mak #---------------------------------------------------------------------- @@ -24,53 +18,39 @@ include ../../allmake.mak #---------------------------------------------------------------------- # default goals -.PHONY: configs modules pyfiles deployed_modules idapython_modules api_contents pydoc_injections public_tree test_idc docs bins -all: configs modules pyfiles deployed_modules idapython_modules api_contents pydoc_injections bins # public_tree test_idc docs +.PHONY: configs modules pyfiles deployed_modules idapython_modules api_contents pydoc_injections pyqt sip bins public_tree test_idc docs tbd examples_index +all: configs modules pyfiles deployed_modules idapython_modules api_contents pydoc_injections pyqt sip bins examples_index # public_tree test_idc docs ifeq ($(OUT_OF_TREE_BUILD),) + IDAPYSWITCH:=$(R)idapyswitch$(B) + IDAPYSWITCH_DEP:=$(IDAPYSWITCH) + IDAPYSWITCH_PATH:=$(IDAPYSWITCH) BINS += $(IDAPYSWITCH) else - # when out-of-tree (i.e., from github), we only build idapyswitch64, - # and rely on it even for the __EA32__ build - ifdef __EA64__ - BINS += $(IDAPYSWITCH) + ifdef __NT__ + IDAPYSWITCH_PATH:=$(IDA_INSTALL)/idapyswitch.exe else - IDAPYSWITCH_64_HACK := 64 + IDAPYSWITCH_PATH:=$(IDA_INSTALL)/idapyswitch endif endif -IDAPYSWITCH:=$(R)idapyswitch$(IDAPYSWITCH_64_HACK)$(B) - -BINS += $(IDAPYSWITCH) +BINS += $(IDAPYSWITCH_DEP) bins: $(BINS) -#---------------------------------------------------------------------- -# configurable variables for this makefile -BC695 = 1 -ifdef BC695 - BC695_CC_DEF = BC695 - BC695_SWIGFLAGS = -DBC695 - BC695_DEPLOYFLAGS = --bc695 -endif - #---------------------------------------------------------------------- # Build system hacks # HACK HIJACK the $(I) variable to point to our staging SDK # (but don't let mkdep know about it) IDA_INCLUDE = ../../include -ifeq ($(OUT_OF_TREE_BUILD),) - ST_SDK = $(F)idasdk -else - ST_SDK = $(IDA_INCLUDE) -endif +ST_SDK = $(F)idasdk ifndef __MKDEP__ I = $(ST_SDK)/ endif # HACK HIJACK the $(LIBDIR) variable to point to our staging SDK ifneq ($(OUT_OF_TREE_BUILD),) - LIBDIR = $(IDA)lib/$(TARGET_PROCESSOR_NAME)_$(SYSNAME)_$(COMPILER_NAME)_$(ADRSIZE)$(STATSUF) + LIBDIR = $(IDA)lib/$(TARGET_PROCESSOR_NAME)_$(SYSNAME)_$(COMPILER_NAME)_$(ADRSIZE)$(EXTRASUF) endif # HACK for mkdep to add dependencies for $(F)idapython$(O) @@ -92,7 +72,12 @@ CONFIGS += idapython.cfg #---------------------------------------------------------------------- # the 'modules' target is in $(IDA)module.mak -MODULE = $(call module_dll,idapython) +ifdef __EA64__ + MODULE_NAME_STEM:=idapython3_ +else + MODULE_NAME_STEM:=idapython3 +endif +MODULE = $(call module_dll,$(MODULE_NAME_STEM)) MODULES += $(MODULE) #---------------------------------------------------------------------- @@ -106,37 +91,41 @@ else # to hold any libpython3.Y.so. Therefore, at # build-time, let's use our tool (which will in turn use patchelf) # to expand the DT_NEEDED 'slot' size. - ifeq ($(PYTHON_VERSION_MAJOR),3) - IDAPYSWITCH_MODULE_DEP := $(IDAPYSWITCH) - ifndef __CODE_CHECKER__ - # this is for idapython[64].so - POSTACTION=$(IDAPYSWITCH) --split-debug-and-expand-libpython3-dtneeded-room $(MODULE) - # and this for _ida_*.so - POSTACTION_IDA_X_SO=$(IDAPYSWITCH) --split-debug-and-expand-libpython3-dtneeded-room - endif + IDAPYSWITCH_MODULE_DEP := $(IDAPYSWITCH_DEP) + ifndef __CODE_CHECKER__ + # this is for idapython[64].so + POSTACTION=$(Q)$(IDAPYSWITCH_PATH) --split-debug-and-expand-libpython3-dtneeded-room $(MODULE) + # and this for _ida_*.so + POSTACTION_IDA_X_SO=$(Q)$(IDAPYSWITCH_PATH) --split-debug-and-expand-libpython3-dtneeded-room endif endif endif +#---------------------------------------------------------------------- +ifdef __APPLE_SILICON__ + # set up a stub .tbd library to link against, see tbd.readme + TBD_FILE = libpython$(PYTHON_VERSION_MAJOR).tbd + # note: this path must be compatible with -L$(R) -lpython3 in pyplg.mak + TBD_MODULE_DEP = $(R)$(TBD_FILE) + # idapyswitch must be told that we're working with Python2 +endif #---------------------------------------------------------------------- # we explicitly added our module targets -NO_DEFAULT_MODULE = 1 +NO_DEFAULT_TARGETS = 1 DONT_ERASE_LIB = 1 # NOTE: all MODULES must be defined before including plugin.mak. include ../plugin.mak +include ../pyplg.mak # NOTE: target-specific rules and dependencies that use variable # expansion to name the target (such as "$(MODULE): [...]") must # come after including plugin.mak -# setup PYTHON_{C,LD}FLAGS (from allmake.mak) -$(eval $(call setup_python_flags)) - #---------------------------------------------------------------------- PYTHON_OBJS += $(F)idapython$(O) $(MODULE): MODULE_OBJS += $(PYTHON_OBJS) -$(MODULE): $(PYTHON_OBJS) $(IDAPYSWITCH_MODULE_DEP) +$(MODULE): $(PYTHON_OBJS) $(IDAPYSWITCH_MODULE_DEP) $(TBD_MODULE_DEP) ifdef __NT__ $(MODULE): LDFLAGS += /DEF:$(IDAPYTHON_IMPLIB_DEF) /IMPLIB:$(IDAPYTHON_IMPLIB_PATH) endif @@ -159,8 +148,6 @@ ifdef DO_IDAMAKE_SIMPLIFY QGENHOOKS = @echo $(call qcolor,genhooks) $< && # QGENIDAAPI = @echo $(call qcolor,genidaapi) $< && # QGENSWIGHEADER = @echo $(call qcolor,genswigheader) $< && # - QGEN_IDC_BC695 = @echo $(call qcolor,gen_idc_bc695) $< && # - QINJECT_PLFM = @echo $(call qcolor,inject_plfm) $< && # QINJECT_PYDOC = @echo $(call qcolor,inject_pydoc) $$< && # QINJECT_BASE_HOOKS_FLAGS = @echo $(call qcolor,inject_base_hooks_flags) $< && # QPATCH_CODEGEN = @echo $(call qcolor,patch_codegen) $$< && # @@ -170,10 +157,10 @@ ifdef DO_IDAMAKE_SIMPLIFY QUPDATE_SDK = @echo $(call qcolor,update_sdk) $< && # QSPLIT_HEXRAYS_TEMPLATES = @echo $(call qcolor,split_hexrays_templates) $< && # QPYDOC_INJECTIONS = @echo $(call qcolor,check_injections) $@ && # + QGEN_EXAMPLES_INDEX = @echo $(call qcolor,gen_examples_index) $@ && # endif #---------------------------------------------------------------------- -IDA_CMD=TVHEADLESS=1 $(R)idat$(SUFF64) ST_SWIG=$(F)swig ST_PYW=$(F)pywraps ST_WRAP=$(F)wrappers @@ -188,7 +175,6 @@ DEPLOY_PYDIR=$(R)python/$(PYTHON_VERSION_MAJOR) DEPLOY_INIT_PY=$(DEPLOY_PYDIR)/init.py DEPLOY_IDC_PY=$(DEPLOY_PYDIR)/idc.py DEPLOY_IDAUTILS_PY=$(DEPLOY_PYDIR)/idautils.py -DEPLOY_IDC_BC695_PY=$(DEPLOY_PYDIR)/idc_bc695.py DEPLOY_IDAAPI_PY=$(DEPLOY_PYDIR)/idaapi.py DEPLOY_IDADEX_PY=$(DEPLOY_PYDIR)/idadex.py ifdef TESTABLE_BUILD @@ -196,55 +182,69 @@ ifdef TESTABLE_BUILD endif ifeq ($(OUT_OF_TREE_BUILD),) TEST_IDC=test_idc - IDC_BC695_IDC_SOURCE?=$(DEPLOY_PYDIR)/../../idc/idc.idc + IDAT_PATH?=$(R)/idat +else + IDAT_PATH?=$(IDA_INSTALL)/idat endif -# +ifeq ($(OUT_OF_TREE_BUILD),) + IDAT_CMD=TVHEADLESS=1 $(IDAT_PATH)$(SUFF64) +else + IDAT_CMD=TVHEADLESS=1 IDAPYTHON_DYNLOAD_BASE=$(SDK_BIN_PATH) $(IDAT_PATH)$(SUFF64) +endif + +# envvar HAS_HEXRAYS must have been set by build.py if needed +ifeq ($(OUT_OF_TREE_BUILD),) + HAS_HEXRAYS=1 # force hexrays bindings +endif + +# determine SDK_SOURCES ifeq ($(OUT_OF_TREE_BUILD),) include ../../etc/sdk/sdk_files.mak SDK_SOURCES=$(sort $(foreach v,$(SDK_FILES),$(if $(findstring include/,$(v)),$(addprefix $(IDA_INCLUDE)/,$(notdir $(v)))))) - SDK_SOURCES+=$(IDA_INCLUDE)/hexrays.hpp + ifneq ($(HAS_HEXRAYS),) + SDK_SOURCES+=$(IDA_INCLUDE)/hexrays.hpp + endif SDK_SOURCES+=$(IDA_INCLUDE)/lumina.hpp - ST_SDK_TARGETS = $(SDK_SOURCES:$(IDA_INCLUDE)/%=$(ST_SDK)/%) else SDK_SOURCES=$(wildcard $(IDA_INCLUDE)/*.h) $(wildcard $(IDA_INCLUDE)/*.hpp) - ST_SDK_TARGETS = $(SDK_SOURCES) endif +ST_SDK_TARGETS = $(SDK_SOURCES:$(IDA_INCLUDE)/%=$(ST_SDK)/%) -# Python 2-3 -ifeq ($(PYTHON_VERSION_MAJOR),3) - _SWIGPY3FLAG := -py3 -py3-stable-abi -DPY3=1 - CC_DEFS += PY3=1 - CC_DEFS += Py_LIMITED_API=0x03040000 # we should make sure we use the same version as SWiG -endif +_SWIGPY3FLAG := -py3 -py3-stable-abi -DPY3=1 +CC_DEFS += PY3=1 +CC_DEFS += Py_LIMITED_API=0x03040000 # we should make sure we use the same version as SWiG DYNLOAD_SUBDIR := python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) DEPLOY_LIBDIR=$(DEPLOY_PYDIR)/ida_$(ADRSIZE) ifdef __NT__ - MODULE_SFX = .pyd + PYDLL_EXT = .pyd else - MODULE_SFX = .so + PYDLL_EXT = .so endif -ifneq ($(OUT_OF_TREE_BUILD),) - # envvar HAS_HEXRAYS must have been set by build.py if needed -else - HAS_HEXRAYS=1 # force hexrays bindings -endif ifneq ($(HAS_HEXRAYS),) WITH_HEXRAYS_DEF = WITH_HEXRAYS WITH_HEXRAYS_CHKAPI=--with-hexrays HEXRAYS_MODNAME=hexrays + # Warning: adding an empty HEXRAYS_MODNAME will lead to idaapy trying to load + # a module called ida_. + MODULES_NAMES += $(HEXRAYS_MODNAME) +endif + +ifeq ($(HAS_HEXRAYS),) + NO_CMP_API := 1 endif #---------------------------------------------------------------------- -MODULES_NAMES += $(HEXRAYS_MODNAME) MODULES_NAMES += allins MODULES_NAMES += auto +MODULES_NAMES += bitrange MODULES_NAMES += bytes MODULES_NAMES += dbg MODULES_NAMES += diskio +MODULES_NAMES += dirtree MODULES_NAMES += entry MODULES_NAMES += enum MODULES_NAMES += expr @@ -259,6 +259,7 @@ MODULES_NAMES += idaapi MODULES_NAMES += idc MODULES_NAMES += idd MODULES_NAMES += idp +MODULES_NAMES += ieee MODULES_NAMES += kernwin MODULES_NAMES += lines MODULES_NAMES += loader @@ -277,18 +278,23 @@ MODULES_NAMES += registry MODULES_NAMES += search MODULES_NAMES += segment MODULES_NAMES += segregs +MODULES_NAMES += srclang MODULES_NAMES += strlist MODULES_NAMES += struct MODULES_NAMES += tryblks MODULES_NAMES += typeinf MODULES_NAMES += ua MODULES_NAMES += xref +ifndef NOTEAMS + MODULES_NAMES += mergemod + MODULES_NAMES += merge +endif ALL_ST_WRAP_CPP = $(foreach mod,$(MODULES_NAMES),$(ST_WRAP)/$(mod).cpp) ALL_ST_WRAP_PY = $(foreach mod,$(MODULES_NAMES),$(ST_WRAP)/ida_$(mod).py) -DEPLOYED_MODULES = $(foreach mod,$(MODULES_NAMES),$(DEPLOY_LIBDIR)/_ida_$(mod)$(MODULE_SFX)) +DEPLOYED_MODULES = $(foreach mod,$(MODULES_NAMES),$(DEPLOY_LIBDIR)/_ida_$(mod)$(PYDLL_EXT)) IDAPYTHON_MODULES = $(foreach mod,$(MODULES_NAMES),$(DEPLOY_PYDIR)/ida_$(mod).py) -PYTHON_BINARY_MODULES = $(foreach mod,$(MODULES_NAMES),$(DEPLOY_LIBDIR)/_ida_$(mod)$(MODULE_SFX)) +PYTHON_BINARY_MODULES = $(foreach mod,$(MODULES_NAMES),$(DEPLOY_LIBDIR)/_ida_$(mod)$(PYDLL_EXT)) #---------------------------------------------------------------------- idapython_modules: $(IDAPYTHON_MODULES) @@ -307,7 +313,6 @@ ifdef __NT__ # os and compiler specific flags CFLAGS += /bigobj $(_SWIGFLAGS) -I$(ST_SDK) /U_DEBUG else # unix/mac ifdef __LINUX__ - PYTHON_LDFLAGS_RPATH_MAIN=-Wl,-rpath='$$ORIGIN/..' PYTHON_LDFLAGS_RPATH_MODULE=-Wl,-rpath='$$ORIGIN/../../..' _SWIGFLAGS = -D__LINUX__ else ifdef __MAC__ @@ -321,16 +326,125 @@ endif # three modules will share type information. But any other project's # types will not interfere or clash with the types in your module. DEF_TYPE_TABLE = SWIG_TYPE_TABLE=idaapi -SWIGFLAGS=$(_SWIGFLAGS) -Itools/typemaps-supplement $(SWIG_INCLUDES) $(addprefix -D,$(DEF_TYPE_TABLE)) $(BC695_SWIGFLAGS) +SWIGFLAGS=$(_SWIGFLAGS) -Itools/typemaps-supplement $(SWIG_INCLUDES) $(addprefix -D,$(DEF_TYPE_TABLE)) -DMISSED_BC695 +ifdef NOTEAMS + SWIGFLAGS += -DNOTEAMS +endif pyfiles: $(DEPLOY_IDAUTILS_PY) \ $(DEPLOY_IDC_PY) \ - $(DEPLOY_IDC_BC695_PY) \ $(DEPLOY_INIT_PY) \ $(DEPLOY_IDAAPI_PY) \ $(DEPLOY_IDADEX_PY) \ $(DEPLOY_LUMINA_MODEL_PY) +ifeq ($(OUT_OF_TREE_BUILD),) + ifndef NDEBUG + SRC_PYQT_BUNDLE:=$(PYQT5_DEBUG) + else + SRC_PYQT_BUNDLE:=$(PYQT5_RELEASE) + endif + DEST_PYQT_DIR:=$(R)python/$(PYTHON_VERSION_MAJOR)/PyQt5 + $(DEST_PYQT_DIR): + -$(Q)if [ ! -d "$(DEST_PYQT_DIR)" ] ; then mkdir -p 2>/dev/null $(DEST_PYQT_DIR) ; fi + + # PyQt5 + DEST_PYQT_QTCORE:=$(DEST_PYQT_DIR)/QtCore$(PYDLL_EXT) + $(DEST_PYQT_QTCORE): $(SRC_PYQT_BUNDLE) | $(DEST_PYQT_DIR) + $(Q)tar -xf $(SRC_PYQT_BUNDLE) -C $(dir $(DEST_PYQT_DIR)) --strip 1 + $(Q)touch $@ + DEST_PYQT += $(DEST_PYQT_QTCORE) + + SIP_PYDLL_FNAME:=sip$(PYDLL_EXT) + SIP_PYI_FNAME:=sip.pyi + + # sip for Python < 3.8 + DEST_SIP34_DIR:=$(DEST_PYQT_DIR)/python_3.4 + $(DEST_SIP34_DIR): + -$(Q)if [ ! -d "$(DEST_SIP34_DIR)" ] ; then mkdir -p 2>/dev/null $(DEST_SIP34_DIR) ; fi + DEST_SIP34_PYDLL:=$(DEST_SIP34_DIR)/$(SIP_PYDLL_FNAME) + DEST_SIP34_PYI:=$(DEST_SIP34_DIR)/$(SIP_PYI_FNAME) + $(DEST_SIP34_PYDLL): $(wildcard $(SIP34_TREE)/lib/python*/PyQt5/$(SIP_PYDLL_FNAME)) | $(DEST_SIP34_DIR) + $(Q)$(CP) $? $@ + $(DEST_SIP34_PYI): $(wildcard $(SIP34_TREE)/lib/python*/PyQt5/$(SIP_PYI_FNAME)) | $(DEST_SIP34_DIR) + $(Q)$(CP) $? $@ + DEST_SIP += $(DEST_SIP34_PYDLL) $(DEST_SIP34_PYI) + + # sip for Python [3.8, 3.9) + DEST_SIP38_DIR:=$(DEST_PYQT_DIR)/python_3.8 + $(DEST_SIP38_DIR): + -$(Q)if [ ! -d "$(DEST_SIP38_DIR)" ] ; then mkdir -p 2>/dev/null $(DEST_SIP38_DIR) ; fi + DEST_SIP38_PYDLL:=$(DEST_SIP38_DIR)/$(SIP_PYDLL_FNAME) + DEST_SIP38_PYI:=$(DEST_SIP38_DIR)/$(SIP_PYI_FNAME) + $(DEST_SIP38_PYDLL): $(wildcard $(SIP38_TREE)/lib/python*/PyQt5/$(SIP_PYDLL_FNAME)) | $(DEST_SIP38_DIR) + $(Q)$(CP) $? $@ + $(DEST_SIP38_PYI): $(wildcard $(SIP38_TREE)/lib/python*/PyQt5/$(SIP_PYI_FNAME)) | $(DEST_SIP38_DIR) + $(Q)$(CP) $? $@ + DEST_SIP += $(DEST_SIP38_PYDLL) $(DEST_SIP38_PYI) + + # sip for Python [3.9, 3.10) + DEST_SIP39_DIR:=$(DEST_PYQT_DIR)/python_3.9 + $(DEST_SIP39_DIR): + -$(Q)if [ ! -d "$(DEST_SIP39_DIR)" ] ; then mkdir -p 2>/dev/null $(DEST_SIP39_DIR) ; fi + DEST_SIP39_PYDLL:=$(DEST_SIP39_DIR)/$(SIP_PYDLL_FNAME) + DEST_SIP39_PYI:=$(DEST_SIP39_DIR)/$(SIP_PYI_FNAME) + $(DEST_SIP39_PYDLL): $(wildcard $(SIP39_TREE)/lib/python*/PyQt5/$(SIP_PYDLL_FNAME)) | $(DEST_SIP39_DIR) + $(Q)$(CP) $? $@ + $(DEST_SIP39_PYI): $(wildcard $(SIP39_TREE)/lib/python*/PyQt5/$(SIP_PYI_FNAME)) | $(DEST_SIP39_DIR) + $(Q)$(CP) $? $@ + DEST_SIP += $(DEST_SIP39_PYDLL) $(DEST_SIP39_PYI) + + # sip for Python [3.10, 3.11) + DEST_SIP310_DIR:=$(DEST_PYQT_DIR)/python_3.10 + $(DEST_SIP310_DIR): + -$(Q)if [ ! -d "$(DEST_SIP310_DIR)" ] ; then mkdir -p 2>/dev/null $(DEST_SIP310_DIR) ; fi + DEST_SIP310_PYDLL:=$(DEST_SIP310_DIR)/$(SIP_PYDLL_FNAME) + DEST_SIP310_PYI:=$(DEST_SIP310_DIR)/$(SIP_PYI_FNAME) + $(DEST_SIP310_PYDLL): $(wildcard $(SIP310_TREE)/lib/python*/PyQt5/$(SIP_PYDLL_FNAME)) | $(DEST_SIP310_DIR) + $(Q)$(CP) $? $@ + $(DEST_SIP310_PYI): $(wildcard $(SIP310_TREE)/lib/python*/PyQt5/$(SIP_PYI_FNAME)) | $(DEST_SIP310_DIR) + $(Q)$(CP) $? $@ + DEST_SIP += $(DEST_SIP310_PYDLL) $(DEST_SIP310_PYI) + + # sip for Python [3.11, ... + DEST_SIP311_DIR:=$(DEST_PYQT_DIR)/python_3.11 + $(DEST_SIP311_DIR): + -$(Q)if [ ! -d "$(DEST_SIP311_DIR)" ] ; then mkdir -p 2>/dev/null $(DEST_SIP311_DIR) ; fi + DEST_SIP311_PYDLL:=$(DEST_SIP311_DIR)/$(SIP_PYDLL_FNAME) + DEST_SIP311_PYI:=$(DEST_SIP311_DIR)/$(SIP_PYI_FNAME) + $(DEST_SIP311_PYDLL): $(wildcard $(SIP311_TREE)/lib/python*/PyQt5/$(SIP_PYDLL_FNAME)) | $(DEST_SIP311_DIR) + $(Q)$(CP) $? $@ + $(DEST_SIP311_PYI): $(wildcard $(SIP311_TREE)/lib/python*/PyQt5/$(SIP_PYI_FNAME)) | $(DEST_SIP311_DIR) + $(Q)$(CP) $? $@ + DEST_SIP += $(DEST_SIP311_PYDLL) $(DEST_SIP311_PYI) + + # And pick the right sip.so now (Python3 only; for Python2, we already put it in the right place) + ifeq ($(shell test $(PYTHON_VERSION_MINOR) -gt 10; echo $$?),0) # ugh + DEST_INSTALL_SIP_PYDLL:=$(DEST_SIP311_PYDLL) + else + ifeq ($(shell test $(PYTHON_VERSION_MINOR) -gt 9; echo $$?),0) # ugh + DEST_INSTALL_SIP_PYDLL:=$(DEST_SIP310_PYDLL) + else + ifeq ($(shell test $(PYTHON_VERSION_MINOR) -gt 8; echo $$?),0) # ugh + DEST_INSTALL_SIP_PYDLL:=$(DEST_SIP39_PYDLL) + else + ifeq ($(shell test $(PYTHON_VERSION_MINOR) -gt 7; echo $$?),0) # ugh + DEST_INSTALL_SIP_PYDLL:=$(DEST_SIP38_PYDLL) + else + DEST_INSTALL_SIP_PYDLL:=$(DEST_SIP34_PYDLL) + endif + endif + endif + endif + $(DEST_PYQT_DIR)/$(SIP_PYDLL_FNAME): $(DEST_INSTALL_SIP_PYDLL) + $(Q)$(CP) $? $@ + $(Q)chmod +w $@ + DEST_SIP += $(DEST_PYQT_DIR)/$(SIP_PYDLL_FNAME) +endif + +pyqt: $(DEST_PYQT) +sip: $(DEST_SIP) + GENHOOKS=tools/genhooks/ $(DEPLOY_INIT_PY): python/init.py @@ -342,9 +456,6 @@ $(DEPLOY_IDC_PY): python/idc.py $(DEPLOY_IDAUTILS_PY): python/idautils.py $(CP) $? $@ -$(DEPLOY_IDC_BC695_PY): $(IDC_BC695_IDC_SOURCE) python/idc.py tools/gen_idc_bc695.py - $(QGEN_IDC_BC695)$(PYTHON) tools/gen_idc_bc695.py --idc $(IDC_BC695_IDC_SOURCE) --output $@ - $(DEPLOY_IDAAPI_PY): python/idaapi.py tools/genidaapi.py $(IDAPYTHON_MODULES) $(QGENIDAAPI)$(PYTHON) tools/genidaapi.py -i $< -o $@ -m $(subst $(space),$(comma),$(MODULES_NAMES)) @@ -369,7 +480,7 @@ $(PARSED_HEADERS_MARKER): $(ST_SDK_TARGETS) $(ST_PARSED_HEADERS_CONFIG) $(ST_SDK ifeq ($(OUT_OF_TREE_BUILD),) $(Q)( cat $(ST_PARSED_HEADERS_CONFIG); echo "OUTPUT_DIRECTORY=$(ST_PARSED_HEADERS_NOXML)" ) | $(DOXYGEN_BIN) - >/dev/null else - (cd $(F) && unzip ../../../out_of_tree/parsed_notifications.zip) + (cd $(F) && unzip ../../out_of_tree/parsed_notifications.zip) endif $(Q)touch $@ @@ -399,14 +510,17 @@ $(foreach d,$(sort $(DIRLIST)),$(if $(wildcard $(d)),,$(shell mkdir -p $(d)))) # template incantation, and finally '%include "hexrays_notemplates.hpp"' # to actually generate wrappers. ifeq ($(OUT_OF_TREE_BUILD),) -$(ST_SDK)/%.h: $(IDA_INCLUDE)/%.h - $(QUPDATE_SDK) perl ../../etc/sdk/filter_src.pl $^ $@ -$(ST_SDK)/%.hpp: $(IDA_INCLUDE)/%.hpp - $(QUPDATE_SDK) perl ../../etc/sdk/filter_src.pl $^ $@ -HEXRAYS_HPP_SPLIT_DIR:=$(ST_SDK) +$(ST_SDK)/%.h: $(IDA_INCLUDE)/%.h ../../etc/sdk/filter_src.pl tools/preprocess_sdk_header.py + $(QUPDATE_SDK) perl ../../etc/sdk/filter_src.pl $< - | $(PYTHON) tools/preprocess_sdk_header.py --input - --output $@ --metadata $@.metadata +$(ST_SDK)/%.hpp: $(IDA_INCLUDE)/%.hpp ../../etc/sdk/filter_src.pl tools/preprocess_sdk_header.py + $(QUPDATE_SDK) perl ../../etc/sdk/filter_src.pl $< - | $(PYTHON) tools/preprocess_sdk_header.py --input - --output $@ --metadata $@.metadata else -HEXRAYS_HPP_SPLIT_DIR:=$(F) +$(ST_SDK)/%.h: $(IDA_INCLUDE)/%.h tools/preprocess_sdk_header.py + $(QUPDATE_SDK) $(PYTHON) tools/preprocess_sdk_header.py --input $< --output $@ --metadata $@.metadata +$(ST_SDK)/%.hpp: $(IDA_INCLUDE)/%.hpp tools/preprocess_sdk_header.py + $(QUPDATE_SDK) $(PYTHON) tools/preprocess_sdk_header.py --input $< --output $@ --metadata $@.metadata endif +HEXRAYS_HPP_SPLIT_DIR:=$(ST_SDK) $(HEXRAYS_HPP_SPLIT_DIR)/hexrays_notemplates.hpp: $(ST_SDK)/hexrays.hpp tools/split_hexrays_templates.py $(QSPLIT_HEXRAYS_TEMPLATES)$(PYTHON) tools/split_hexrays_templates.py \ @@ -432,65 +546,59 @@ $(ST_PYW)/py_idp.hpp: pywraps/py_idp.hpp \ $(PARSED_HEADERS_MARKER) $(MAKEFILE_DEP) | $(SDK_SOURCES) $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c IDP_Hooks \ - -x $(ST_PARSED_HEADERS)/structprocessor__t.xml -e event_t \ - -r int -n 0 -m hookgenIDP -q "processor_t::" \ - -R $(GENHOOKS)recipe_idphooks.py + -x $(ST_PARSED_HEADERS) \ + -m hookgenIDP \ + -q "processor_t::" $(ST_PYW)/py_idp_idbhooks.hpp: pywraps/py_idp_idbhooks.hpp \ $(I)idp.hpp \ $(GENHOOKS)recipe_idbhooks.py \ $(GENHOOKS)genhooks.py $(PARSED_HEADERS_MARKER) $(MAKEFILE_DEP) | $(SDK_SOURCES) $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c IDB_Hooks \ - -x $(ST_PARSED_HEADERS)/namespaceidb__event.xml -e event_code_t \ - -r void -n 0 -m hookgenIDB -q "idb_event::" \ - -R $(GENHOOKS)recipe_idbhooks.py + -x $(ST_PARSED_HEADERS) \ + -m hookgenIDB \ + -q "idb_event::" $(ST_PYW)/py_dbg.hpp: pywraps/py_dbg.hpp \ $(I)dbg.hpp \ $(GENHOOKS)recipe_dbghooks.py \ $(GENHOOKS)genhooks.py $(PARSED_HEADERS_MARKER) $(MAKEFILE_DEP) | $(SDK_SOURCES) $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c DBG_Hooks \ - -x $(ST_PARSED_HEADERS)/dbg_8hpp.xml -q "dbg_notification_t::" -e dbg_notification_t \ - -r void -n 0 -m hookgenDBG \ - -R $(GENHOOKS)recipe_dbghooks.py + -x $(ST_PARSED_HEADERS) \ + -m hookgenDBG \ + -q "dbg_notification_t::" $(ST_PYW)/py_kernwin.hpp: pywraps/py_kernwin.hpp \ $(I)kernwin.hpp \ $(GENHOOKS)recipe_uihooks.py \ $(GENHOOKS)genhooks.py $(PARSED_HEADERS_MARKER) $(MAKEFILE_DEP) | $(SDK_SOURCES) $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c UI_Hooks \ - -x $(ST_PARSED_HEADERS)/kernwin_8hpp.xml -e ui_notification_t \ - -q "ui_notification_t::" \ - -r void -n 0 -m hookgenUI \ - -R $(GENHOOKS)recipe_uihooks.py \ - -d "ui_dbg_,ui_obsolete" -D "ui:" -s "ui_" + -x $(ST_PARSED_HEADERS) \ + -q "ui_notification_t::" \ + -m hookgenUI $(ST_PYW)/py_kernwin_viewhooks.hpp: pywraps/py_kernwin_viewhooks.hpp \ $(I)kernwin.hpp \ $(GENHOOKS)recipe_viewhooks.py \ $(GENHOOKS)genhooks.py $(PARSED_HEADERS_MARKER) $(MAKEFILE_DEP) | $(SDK_SOURCES) $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c View_Hooks \ - -x $(ST_PARSED_HEADERS)/kernwin_8hpp.xml -e view_notification_t \ + -x $(ST_PARSED_HEADERS) \ -q "view_notification_t::" \ - -r void -n 0 -m hookgenVIEW \ - -R $(GENHOOKS)recipe_viewhooks.py + -m hookgenVIEW $(ST_PYW)/py_hexrays_hooks.hpp: pywraps/py_hexrays_hooks.hpp \ $(HEXRAYS_HPP_SPLIT_DIR)/hexrays_notemplates.hpp \ $(GENHOOKS)recipe_hexrays.py \ $(GENHOOKS)genhooks.py $(PARSED_HEADERS_MARKER) $(MAKEFILE_DEP) | $(SDK_SOURCES) $(QGENHOOKS)$(PYTHON) $(GENHOOKS)genhooks.py -i $< -o $@ \ -c Hexrays_Hooks \ - -x $(ST_PARSED_HEADERS)/hexrays_8hpp.xml -e hexrays_event_t \ + -x $(ST_PARSED_HEADERS) \ -q "hexrays_event_t::" \ - -r int -n 0 -m hookgenHEXRAYS \ - -R $(GENHOOKS)recipe_hexrays.py \ - -s "hxe_,lxe_" + -m hookgenHEXRAYS #---------------------------------------------------------------------- CFLAGS += $(PYTHON_CFLAGS) -CC_DEFS += PYTHON_ABIFLAGS=$(PYTHON_ABIFLAGS) -CC_DEFS += $(BC695_CC_DEF) +CC_DEFS += MISSED_BC695 CC_DEFS += $(DEF_TYPE_TABLE) CC_DEFS += $(WITH_HEXRAYS_DEF) CC_DEFS += USE_STANDARD_FILE_FUNCTIONS @@ -499,10 +607,8 @@ CC_DEFS += VER_MINOR="4" CC_DEFS += VER_PATCH="0" CC_DEFS += __EXPR_SRC CC_INCP += $(F) -CC_INCP += $(IDA_INCLUDE) CC_INCP += $(ST_SWIG) CC_INCP += ../../ldr/mach-o/h -CC_INCP += $(IRRXML) CC_INCP += . ifdef __UNIX__ @@ -546,10 +652,6 @@ find-pywraps-deps = $(wildcard pywraps/py_$(subst .i,,$(notdir $(1)))*.hpp) $(wi find-pydoc-patches-deps = $(wildcard tools/inject_pydoc/$(1).py) find-patch-codegen-deps = $(wildcard tools/patch_codegen/*$(1)*.py) -ADDITIONAL_PYWRAP_DEP_idp=$(ST_PYW)/py_idp.py -$(ST_PYW)/py_idp.py: pywraps/py_idp.py.in tools/inject_plfm.py $(ST_SDK)/idp.hpp - $(QINJECT_PLFM)$(PYTHON) tools/inject_plfm.py -i $< -o $@ -d $(ST_SDK)/idp.hpp - ADDITIONAL_PYWRAP_DEP_idaapi=$(ST_PYW)/py_idaapi.hpp $(ST_PYW)/py_idaapi.hpp: pywraps/py_idaapi.hpp.in tools/inject_base_hooks_flags.py pywraps.hpp $(QINJECT_BASE_HOOKS_FLAGS)$(PYTHON) tools/inject_base_hooks_flags.py -i $< -o $@ -f pywraps.hpp @@ -563,16 +665,19 @@ SWIG_IFACE_dbg=idd SWIG_IFACE_frame=range SWIG_IFACE_funcs=range SWIG_IFACE_gdl=range -SWIG_IFACE_hexrays=pro typeinf xref +SWIG_IFACE_graph=gdl +SWIG_IFACE_hexrays=pro typeinf xref gdl SWIG_IFACE_idd=range +SWIG_IFACE_idp=bitrange SWIG_IFACE_segment=range SWIG_IFACE_segregs=range SWIG_IFACE_typeinf=idp SWIG_IFACE_tryblks=range -MODULE_LIFECYCLE_hexrays=--lifecycle-aware MODULE_LIFECYCLE_bytes=--lifecycle-aware +MODULE_LIFECYCLE_hexrays=--lifecycle-aware MODULE_LIFECYCLE_idaapi=--lifecycle-aware +MODULE_LIFECYCLE_kernwin=--lifecycle-aware define make-module-rules @@ -588,16 +693,17 @@ define make-module-rules # files. # ../../bin/x86_linux_gcc/python/ida_$(1).py (note: dep. on .cpp. See note above.) - $(DEPLOY_PYDIR)/ida_$(1).py: $(ST_WRAP)/$(1).cpp $(PARSED_HEADERS_MARKER) $(call find-pydoc-patches-deps,$(1)) $(call find-patch-codegen-deps,$(1)) | tools/inject_pydoc.py tools/wrapper_utils.py + $(DEPLOY_PYDIR)/ida_$(1).py: $(ST_WRAP)/$(1).cpp tools/inject_pydoc.py $(PARSED_HEADERS_MARKER) $(call find-pydoc-patches-deps,$(1)) $(call find-patch-codegen-deps,$(1)) $(QINJECT_PYDOC)$(PYTHON) tools/inject_pydoc.py \ --xml-doc-directory $(ST_PARSED_HEADERS) \ --module $(1) \ --input $(ST_WRAP)/ida_$(1).py \ --interface $(ST_SWIG)/$(1).i \ --cpp-wrapper $(ST_WRAP)/$(1).cpp \ + --traces tools/collected_traces.txt \ + --cases tools/inject_pydoc_cases.txt \ --output $$@ \ - --epydoc-injections $(ST_WRAP)/ida_$(1).epydoc_injection \ - --verbose > $(ST_WRAP)/ida_$(1).pydoc_injection 2>&1 + --verbose > $(ST_WRAP)/ida_$(1).pydoc_injection # obj/x86_linux_gcc/swig/X.i $(ST_SWIG)/$(1).i: $(addprefix $(F),$(call find-pywraps-deps,$(1))) $(ADDITIONAL_PYWRAP_DEP_$(1)) swig/$(1).i $(ST_SWIG_HEADER) $(SWIG_IFACE_$(1):%=$(ST_SWIG)/%.i) $(ST_SWIG_HEADER) tools/deploy.py $(PARSED_HEADERS_MARKER) @@ -607,7 +713,6 @@ define make-module-rules --output $$@ \ --module $$(subst .i,,$$(notdir $$@)) \ $(MODULE_LIFECYCLE_$(1)) \ - $(BC695_DEPLOYFLAGS) \ --interface-dependencies=$(subst $(space),$(comma),$(SWIG_IFACE_$(1))) \ --xml-doc-directory $(ST_PARSED_HEADERS) @@ -624,7 +729,6 @@ define make-module-rules -outdir $(ST_WRAP) -o $$@.in1 -oh $(ST_WRAP)/$(1).h -I$(ST_SDK) -DIDAPYTHON_MODULE_$(1)=1 $$< $(call PATCH_CONST,$(ST_WRAP)/$(1).cpp.in1,$(ST_WRAP)/$(1).cpp.in2) $(QPATCH_CODEGEN)$(PYTHON) tools/patch_codegen.py \ - --apply-valist-patches \ --input $(ST_WRAP)/$(1).cpp.in2 \ --output $(ST_WRAP)/$(1).cpp \ --module $(1) \ @@ -662,6 +766,7 @@ ifdef __NT__ $(X_O): CFLAGS += /wd4296 /wd4647 /wd4700 /wd4706 endif # disable -fno-rtti +$(X_O): pywraps.hpp $(X_O): NORTTI = $(X_O): CC_DEFS += PLUGIN_SUBMODULE $(X_O): CC_DEFS += SWIG_DIRECTOR_NORTTI @@ -671,11 +776,11 @@ $(X_O): endif # obj/x86_linux_gcc/_ida_X.so -_IDA_X_SO = $(addprefix $(F)_ida_,$(addsuffix $(MODULE_SFX),$(MODULES_NAMES))) +_IDA_X_SO = $(addprefix $(F)_ida_,$(addsuffix $(PYDLL_EXT),$(MODULES_NAMES))) ifdef __NT__ $(_IDA_X_SO): STDLIBS += user32.lib endif -# Note: On Windows, IDAPython's python.lib must come *after* python27.lib +# Note: On Windows, IDAPython's python.lib must come *after* python3x.lib # in the linking command line, otherwise Python will misdetect # IDAPython's python.dll as the main "python" DLL, and IDAPython # will fail to load with the following error: @@ -685,89 +790,90 @@ endif # See Python's dynload_win.c:GetPythonImport() for more details. $(_IDA_X_SO): STDLIBS += $(LINKIDAPYTHON) $(_IDA_X_SO): LDFLAGS += $(PYTHON_LDFLAGS) $(PYTHON_LDFLAGS_RPATH_MODULE) $(OUTMAP)$(F)$(@F).map -$(F)_ida_%$(MODULE_SFX): $(F)%$(O) $(MODULE) $(IDAPYTHON_IMPLIB_DEF) $(IDAPYSWITCH_MODULE_DEP) +$(F)_ida_%$(PYDLL_EXT): $(F)%$(O) $(MODULE) $(IDAPYTHON_IMPLIB_DEF) $(IDAPYSWITCH_MODULE_DEP) $(TBD_MODULE_DEP) $(call link_dll, $<, $(LINKIDA)) ifdef __NT__ - $(Q)$(RM) $(@:$(MODULE_SFX)=.exp) $(@:$(MODULE_SFX)=.lib) + $(Q)$(RM) $(@:$(PYDLL_EXT)=.exp) $(@:$(PYDLL_EXT)=.lib) endif -# ../../bin/x64_linux_gcc/python/2/ida_32/_ida_X.so -$(DEPLOY_LIBDIR)/_ida_%$(MODULE_SFX): $(F)_ida_%$(MODULE_SFX) +# ../../bin/x64_linux_gcc/python/ida_32/_ida_X.so +$(DEPLOY_LIBDIR)/_ida_%$(PYDLL_EXT): $(F)_ida_%$(PYDLL_EXT) $(Q)$(CP) $< $@ ifdef __LINUX__ ifndef __CODE_CHECKER__ - ifeq ($(PYTHON_VERSION_MAJOR),3) $(Q)$(POSTACTION_IDA_X_SO) $@ - endif endif endif #---------------------------------------------------------------------- ifdef TESTABLE_BUILD -API_CONTENTS = api_contents$(PYTHON_VERSION_MAJOR).txt +API_CONTENTS = api_contents$(EXTRASUF1)$(PYTHON_VERSION_MAJOR).txt else -API_CONTENTS = release_api_contents$(PYTHON_VERSION_MAJOR).txt +API_CONTENTS = release_api_contents$(EXTRASUF1)$(PYTHON_VERSION_MAJOR).txt endif ST_API_CONTENTS = $(F)$(API_CONTENTS) +ST_API_CONTENTS_SUCCESS = $(ST_API_CONTENTS).success .PRECIOUS: $(ST_API_CONTENTS) -api_contents: $(ST_API_CONTENTS) -$(ST_API_CONTENTS): $(ALL_ST_WRAP_CPP) +api_contents: $(ST_API_CONTENTS_SUCCESS) +$(ST_API_CONTENTS_SUCCESS): $(ALL_ST_WRAP_CPP) +ifeq ($(or $(__CODE_CHECKER__),$(NO_CMP_API),$(__ASAN__),$(IDAHOME),$(DEMO_OR_FREE)),) $(QCHKAPI)$(PYTHON) tools/chkapi.py $(WITH_HEXRAYS_CHKAPI) -i $(subst $(space),$(comma),$(ALL_ST_WRAP_CPP)) -p $(subst $(space),$(comma),$(ALL_ST_WRAP_PY)) -r $(ST_API_CONTENTS) -ifeq ($(OUT_OF_TREE_BUILD),) - ifdef BC695 # turn off comparison when bw-compat is off, or api_contents will differ + ifeq ($(OUT_OF_TREE_BUILD),) + ifdef CMP_API # turn off comparison when bw-compat is off, or api_contents will differ $(Q)(diff -w $(API_CONTENTS) $(ST_API_CONTENTS)) > /dev/null || \ (echo "API CONTENTS CHANGED! update $(API_CONTENTS) or fix the API" && \ echo "(New API: $(ST_API_CONTENTS)) ***" && \ (diff -U 1 -w $(API_CONTENTS) $(ST_API_CONTENTS) && false)) + endif endif endif + $(Q)touch $@ #---------------------------------------------------------------------- # Check that doc injection is stable ifdef TESTABLE_BUILD -PYDOC_INJECTIONS = pydoc_injections$(PYTHON_VERSION_MAJOR).txt +PYDOC_INJECTIONS = pydoc_injections$(EXTRASUF1)$(PYTHON_VERSION_MAJOR).txt else -PYDOC_INJECTIONS = release_pydoc_injections$(PYTHON_VERSION_MAJOR).txt +PYDOC_INJECTIONS = release_pydoc_injections$(EXTRASUF1)$(PYTHON_VERSION_MAJOR).txt endif ST_PYDOC_INJECTIONS = $(F)$(PYDOC_INJECTIONS) +ST_PYDOC_INJECTIONS_SUCCESS = $(ST_PYDOC_INJECTIONS).success .PRECIOUS: $(ST_PYDOC_INJECTIONS) -PYDOC_INJECTIONS_IDA_CMD=$(IDA_CMD) $(BATCH_SWITCH) -OIDAPython:AUTOIMPORT_COMPAT_IDA695=NO -S"$< $@ $(ST_WRAP)" -t -L$(F)dumpdoc.log >/dev/null -pydoc_injections: $(ST_PYDOC_INJECTIONS) -$(ST_PYDOC_INJECTIONS): tools/dumpdoc.py $(IDAPYTHON_MODULES) $(PYTHON_BINARY_MODULES) -ifdef __CODE_CHECKER__ - $(Q)touch $@ +ifdef __EA64__ + DUMPDOC_IS_64:=True else - ifeq ($(OUT_OF_TREE_BUILD),) - $(QPYDOC_INJECTIONS)$(PYDOC_INJECTIONS_IDA_CMD) || \ - (echo "Command \"$(PYDOC_INJECTIONS_IDA_CMD)\" failed. Check \"$(F)dumpdoc.log\" for details." && false) + DUMPDOC_IS_64:=False +endif + +PYDOC_INJECTIONS_IDAT_CMD=$(IDAT_CMD) $(BATCH_SWITCH) -S"$< $(ST_PYDOC_INJECTIONS) $(ST_WRAP) $(DUMPDOC_IS_64)" -t -L$(F)dumpdoc.log >/dev/null +pydoc_injections: $(ST_PYDOC_INJECTIONS_SUCCESS) +$(ST_PYDOC_INJECTIONS_SUCCESS): tools/dumpdoc.py $(IDAPYTHON_MODULES) $(PYTHON_BINARY_MODULES) +ifeq ($(or $(__CODE_CHECKER__),$(NO_CMP_API),$(__ASAN__),$(IDAHOME),$(DEMO_OR_FREE)),) + $(QPYDOC_INJECTIONS)$(PYDOC_INJECTIONS_IDAT_CMD) || \ + (echo "Command \"$(PYDOC_INJECTIONS_IDAT_CMD)\" failed. Check \"$(F)dumpdoc.log\" for details." && false) $(Q)(diff -w $(PYDOC_INJECTIONS) $(ST_PYDOC_INJECTIONS)) > /dev/null || \ (echo "PYDOC INJECTION CHANGED! update $(PYDOC_INJECTIONS) or fix .. what needs fixing" && \ echo "(New API: $(ST_PYDOC_INJECTIONS)) ***" && \ (diff -U 1 -w $(PYDOC_INJECTIONS) $(ST_PYDOC_INJECTIONS) && false)) - else - $(Q)touch $@ - endif endif + $(Q)touch $@ #---------------------------------------------------------------------- DOCS_MODULES=$(foreach mod,$(MODULES_NAMES),ida_$(mod)) -tools/docs/hrdoc.cfg: tools/docs/hrdoc.cfg.in - sed s/%IDA_MODULES%/"$(DOCS_MODULES)"/ < $^ > $@ - -# the html files are produced in docs\hr-html directory -docs: tools/docs/hrdoc.py tools/docs/hrdoc.cfg tools/docs/hrdoc.css +SORTED_DOCS_MODULES=$(sort $(DOCS_MODULES)) +docs: tools/docs/hrdoc.py tools/docs/hrdoc.css ifndef __NT__ - TVHEADLESS=1 $(R)idat -Stools/docs/hrdoc.py -t > /dev/null + $(IDAT_CMD) $(BATCH_SWITCH) -S"tools/docs/hrdoc.py -o docs/hr-html -m $(subst $(space),$(comma),$(SORTED_DOCS_MODULES)),idc,idautils -s idc,idautils -x ida_allins" -t > /dev/null +# $(IDAT_CMD) $(BATCH_SWITCH) -S"tools/docs/hrdoc.py -o docs/hr-html -m ida_pro,ida_kernwin -s idc,idautils -x ida_allins" -t > /dev/null # use this one for testing (faster) else $(R)ida -Stools/docs/hrdoc.py -t endif # the demo version of ida does not have the -B command line option ifeq ($(OUT_OF_TREE_BUILD),) - ISDEMO=$(shell grep "define DEMO$$" $(IDA_INCLUDE)/commerc.hpp) - ifeq ($(ISDEMO),) + ifndef DEMO_OR_FREE BATCH_SWITCH=-B endif endif @@ -781,12 +887,12 @@ $(TEST_IDC): $(F)idctest.log $(F)idctest.log: $(RS)idc/idc.idc | $(MODULE) pyfiles ifneq ($(wildcard ../../tests),) $(Q)$(RM) $(F)idctest.log - $(Q)$(IDA_CMD) $(BATCH_SWITCH) -S"test_idc.py $^" -t -L$(F)idctest.log >/dev/null || \ + $(Q)$(IDAT_CMD) $(BATCH_SWITCH) -S"test_idc.py $^" -t -L$(F)idctest.log >/dev/null || \ (echo "ERROR: The IDAPython IDC interface is incomplete. IDA log:" && cat $(F)idctest.log && false) endif #---------------------------------------------------------------------- -PUBTREE_DIR=$(F)/public_tree +PUBTREE_DIR=$(F)public_tree public_tree: all ifeq ($(OUT_OF_TREE_BUILD),) -$(Q)if [ ! -d "$(PUBTREE_DIR)/out_of_tree" ] ; then mkdir -p 2>/dev/null $(PUBTREE_DIR)/out_of_tree ; fi @@ -798,23 +904,34 @@ ifeq ($(OUT_OF_TREE_BUILD),) --exclude=docs/hr-html/ \ --exclude=**/*~ \ . $(PUBTREE_DIR) - (cd $(F) && zip -r ../../../$(PUBTREE_DIR)/out_of_tree/parsed_notifications.zip parsed_notifications) + (cd $(F) && zip -r ../../$(PUBTREE_DIR)/out_of_tree/parsed_notifications.zip parsed_notifications) endif +#---------------------------------------------------------------------- IDAPYSWITCH_OBJS += $(F)idapyswitch$(O) - ifdef __NT__ -ifneq ($(OUT_OF_TREE_BUILD),) - # SDK provides only MT libraries - $(F)idapyswitch$(O): RUNTIME_LIBSW=/MT -else - ifndef NDEBUG - $(F)idapyswitch$(O): CFLAGS := $(filter-out /U_DEBUG,$(CFLAGS)) + ifneq ($(OUT_OF_TREE_BUILD),) + # SDK provides only MT libraries + $(F)idapyswitch$(O): RUNTIME_LIBSW=/MT + else + ifndef NDEBUG + $(F)idapyswitch$(O): CFLAGS := $(filter-out /U_DEBUG,$(CFLAGS)) + endif endif endif -endif $(R)idapyswitch$(B): $(call dumb_target, pro, $(IDAPYSWITCH_OBJS)) +#---------------------------------------------------------------------- +ifdef __APPLE_SILICON__ +tbd: $(TBD_MODULE_DEP) +# copy the tbd library to idabin, and instruct idapyswitch to create the symlink to libpython +$(TBD_MODULE_DEP): $(TBD_FILE) $(IDAPYSWITCH_DEP) + $(Q)$(CP) $< $@ + cd $(R) && $(IDAPYSWITCH_PATH) $(TBD_IDAPYSWITCH_ARGS) --force-path $(shell $(PYTHON)-config --prefix)/Python +else +tbd: ; +endif + #---------------------------------------------------------------------- # the 'echo_modules' target must be called explicitly # Note: used by ida/build/pkgbin.py @@ -825,24 +942,67 @@ echo_modules: clean:: rm -rf obj/ -$(MODULE): LDFLAGS += $(PYTHON_LDFLAGS) $(PYTHON_LDFLAGS_RPATH_MAIN) +ifdef __CODE_CHECKER__ + examples_index: ; +else + EXAMPLES := $(wildcard examples/**/*.py) + GEN_EXAMPLES_TOOL := tools/gen_examples_index.py + GEN_EXAMPLES_CFG := tools/gen_examples_index.cfg + + ST_EXAMPLES_INDEX_HTML := $(F)examples/index.html + ST_EXAMPLES_INDEX_MD := $(F)examples/index.md + + define make-examples-index-rules + + $(eval EXAMPLES_INDEX := examples/index.$(1)) + $(eval ST_EXAMPLES_INDEX := $(2)) + $(eval EXAMPLES_TEMPLATE := tools/examples_index_template.$(1)) + + .PRECIOUS: $(ST_EXAMPLES_INDEX) + + $(eval EXAMPLES_INDEX_CMD := $(PYTHON) $(GEN_EXAMPLES_TOOL) write \ + -t $(EXAMPLES_TEMPLATE) \ + -e examples \ + -o $(ST_EXAMPLES_INDEX) \ + ) + + $(ST_EXAMPLES_INDEX): $(GEN_EXAMPLES_TOOL) $(GEN_EXAMPLES_CFG) \ + $(EXAMPLES_TEMPLATE) $(EXAMPLES) + -$(Q)if [ ! -d "$(F)examples" ] ; then mkdir -p 2>/dev/null $(F)examples ; fi + $(QGEN_EXAMPLES_INDEX)$(EXAMPLES_INDEX_CMD) \ + || echo FAILED: $(EXAMPLES_INDEX_CMD) + $(Q)diff -w $(EXAMPLES_INDEX) $(ST_EXAMPLES_INDEX) > /dev/null \ + || (echo "EXAMPLES INDEX CHANGED! update $(EXAMPLES_INDEX)" \ + && echo "(New examples: $(ST_EXAMPLES_INDEX)) ***" \ + && diff -U 1 -w $(EXAMPLES_INDEX) $(ST_EXAMPLES_INDEX) \ + && false) + endef + + $(eval $(call make-examples-index-rules,html,$(ST_EXAMPLES_INDEX_HTML))) + $(eval $(call make-examples-index-rules,md,$(ST_EXAMPLES_INDEX_MD))) + + examples_index: $(ST_EXAMPLES_INDEX_HTML) $(ST_EXAMPLES_INDEX_MD) + +endif + +$(MODULE): LDFLAGS += $(PYTHON_LDFLAGS) # MAKEDEP dependency list ------------------ $(F)idapyswitch$(O): $(I)auto.hpp $(I)bitrange.hpp $(I)bytes.hpp \ $(I)config.hpp $(I)diskio.hpp $(I)entry.hpp $(I)err.h \ - $(I)fixup.hpp $(I)fpro.h $(I)funcs.hpp \ - $(I)ida.hpp $(I)idp.hpp $(I)kernwin.hpp $(I)lines.hpp \ - $(I)llong.hpp $(I)loader.hpp $(I)nalt.hpp $(I)name.hpp \ + $(I)exehdr.h $(I)fixup.hpp $(I)fpro.h $(I)funcs.hpp \ + $(I)ida.hpp $(I)idp.hpp $(I)ieee.h $(I)kernwin.hpp \ + $(I)lines.hpp $(I)llong.hpp $(I)loader.hpp $(I)lzfse.h \ + $(I)lzvn_decode_base.h $(I)nalt.hpp $(I)name.hpp \ $(I)netnode.hpp $(I)network.hpp $(I)offset.hpp $(I)pro.h \ $(I)prodir.h $(I)range.hpp $(I)segment.hpp \ $(I)segregs.hpp $(I)ua.hpp $(I)xref.hpp \ - ../../ldr/ar/aixar.hpp \ - ../../ldr/ar/ar.hpp ../../ldr/ar/arcmn.cpp \ - ../../ldr/elf/../idaldr.h ../../ldr/elf/elf.h \ - ../../ldr/elf/elfbase.h ../../ldr/elf/elfr_arm.h \ - ../../ldr/elf/elfr_ia64.h ../../ldr/elf/elfr_mips.h \ - ../../ldr/elf/elfr_ppc.h ../../ldr/elf/reader.cpp \ - ../../ldr/mach-o/../ar/ar.hpp \ + ../../ldr/ar/aixar.hpp ../../ldr/ar/ar.hpp \ + ../../ldr/ar/arcmn.cpp ../../ldr/elf/../idaldr.h \ + ../../ldr/elf/elf.h ../../ldr/elf/elfbase.h \ + ../../ldr/elf/elfr_arm.h ../../ldr/elf/elfr_ia64.h \ + ../../ldr/elf/elfr_mips.h ../../ldr/elf/elfr_ppc.h \ + ../../ldr/elf/reader.cpp ../../ldr/mach-o/../ar/ar.hpp \ ../../ldr/mach-o/../idaldr.h ../../ldr/mach-o/base.cpp \ ../../ldr/mach-o/common.cpp ../../ldr/mach-o/common.h \ ../../ldr/mach-o/h/architecture/byte_order.h \ @@ -850,12 +1010,14 @@ $(F)idapyswitch$(O): $(I)auto.hpp $(I)bitrange.hpp $(I)bytes.hpp \ ../../ldr/mach-o/h/i386/_types.h \ ../../ldr/mach-o/h/i386/eflags.h \ ../../ldr/mach-o/h/libkern/OSByteOrder.h \ + ../../ldr/mach-o/h/libkern/arm/OSByteOrder.h \ ../../ldr/mach-o/h/libkern/i386/OSByteOrder.h \ ../../ldr/mach-o/h/libkern/i386/_OSByteOrder.h \ ../../ldr/mach-o/h/libkern/machine/OSByteOrder.h \ ../../ldr/mach-o/h/mach-o/arm/reloc.h \ ../../ldr/mach-o/h/mach-o/arm64/reloc.h \ ../../ldr/mach-o/h/mach-o/fat.h \ + ../../ldr/mach-o/h/mach-o/fixup-chains.h \ ../../ldr/mach-o/h/mach-o/hppa/reloc.h \ ../../ldr/mach-o/h/mach-o/i860/reloc.h \ ../../ldr/mach-o/h/mach-o/loader.h \ @@ -889,21 +1051,16 @@ $(F)idapyswitch$(O): $(I)auto.hpp $(I)bitrange.hpp $(I)bytes.hpp \ ../../ldr/mach-o/h/mach/machine/vm_types.h \ ../../ldr/mach-o/h/mach/message.h \ ../../ldr/mach-o/h/mach/port.h \ - ../../ldr/mach-o/h/mach/ppc/_structs.h \ - ../../ldr/mach-o/h/mach/ppc/boolean.h \ - ../../ldr/mach-o/h/mach/ppc/kern_return.h \ - ../../ldr/mach-o/h/mach/ppc/thread_status.h \ - ../../ldr/mach-o/h/mach/ppc/vm_param.h \ - ../../ldr/mach-o/h/mach/ppc/vm_types.h \ ../../ldr/mach-o/h/mach/vm_prot.h \ ../../ldr/mach-o/h/mach/vm_types.h \ - ../../ldr/mach-o/h/ppc/_types.h \ ../../ldr/mach-o/h/sys/_posix_availability.h \ ../../ldr/mach-o/h/sys/_symbol_aliasing.h \ ../../ldr/mach-o/h/sys/cdefs.h \ - ../../ldr/mach-o/macho_node.h idapyswitch.cpp \ - idapyswitch_linux.cpp idapyswitch_mac.cpp \ - idapyswitch_win.cpp + ../../ldr/mach-o/macho_node.h \ + ../../ldr/mach-o/uncompress.cpp ../../ldr/pe/../idaldr.h \ + ../../ldr/pe/common.cpp ../../ldr/pe/common.h \ + ../../ldr/pe/pe.h idapyswitch.cpp idapyswitch_linux.cpp \ + idapyswitch_mac.cpp idapyswitch_win.cpp $(F)idapython$(O): $(I)bitrange.hpp $(I)bytes.hpp $(I)config.hpp \ $(I)diskio.hpp $(I)err.h $(I)expr.hpp $(I)fpro.h \ $(I)funcs.hpp $(I)gdl.hpp $(I)graph.hpp $(I)ida.hpp \ @@ -911,5 +1068,5 @@ $(F)idapython$(O): $(I)bitrange.hpp $(I)bytes.hpp $(I)config.hpp \ $(I)ieee.h $(I)kernwin.hpp $(I)lines.hpp $(I)llong.hpp \ $(I)loader.hpp $(I)nalt.hpp $(I)name.hpp $(I)netnode.hpp \ $(I)pro.h $(I)range.hpp $(I)segment.hpp $(I)typeinf.hpp \ - $(I)ua.hpp $(I)xref.hpp extapi.cpp extapi.hpp idapy.hpp \ + $(I)ua.hpp $(I)xref.hpp extapi.cpp extapi.hpp \ idapython.cpp pywraps.cpp pywraps.hpp diff --git a/options.lnt b/options.lnt new file mode 100644 index 0000000..5b64ed4 --- /dev/null +++ b/options.lnt @@ -0,0 +1 @@ +-esym(4100, obj) // unreferenced formal parameter \ No newline at end of file diff --git a/out_of_tree/parsed_notifications.zip b/out_of_tree/parsed_notifications.zip index 05ec806..b6df0ec 100644 Binary files a/out_of_tree/parsed_notifications.zip and b/out_of_tree/parsed_notifications.zip differ diff --git a/pydoc_injections2.txt b/pydoc_injections2.txt deleted file mode 100644 index 07d958a..0000000 --- a/pydoc_injections2.txt +++ /dev/null @@ -1,82130 +0,0 @@ -Help on function auto_apply_tail in module ida_auto: - -auto_apply_tail(*args) - auto_apply_tail(tail_ea, parent_ea) - - - Plan to apply the tail_ea chunk to the parent - - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) - -Help on function auto_apply_type in module ida_auto: - -auto_apply_type(*args) - auto_apply_type(caller, callee) - - - Plan to apply the callee's type to the calling point. - - - @param caller (C++: ea_t) - @param callee (C++: ea_t) - -Help on function auto_cancel in module ida_auto: - -auto_cancel(*args) - auto_cancel(ea1, ea2) - - - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - -Help on class auto_display_t in module ida_auto: - -class auto_display_t(__builtin__.object) - | Proxy of C++ auto_display_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> auto_display_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | auto_display_t_ea_get(self) -> ea_t - | - | state - | auto_display_t_state_get(self) -> idastate_t - | - | thisown - | The membership flag - | - | type - | auto_display_t_type_get(self) -> atype_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_auto_display_t(self) - -Help on function auto_get in module ida_auto: - -auto_get(*args) - auto_get(type, lowEA, highEA) -> ea_t - - - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) - -Help on function auto_is_ok in module ida_auto: - -auto_is_ok(*args) - auto_is_ok() -> bool - - - Are all queues empty? (i.e. has autoanalysis finished?). - -Help on function auto_make_code in module ida_auto: - -auto_make_code(*args) - auto_make_code(ea) - - - Plan to make code. - - - @param ea (C++: ea_t) - -Help on function auto_make_proc in module ida_auto: - -auto_make_proc(*args) - auto_make_proc(ea) - - - Plan to make code&function. - - - @param ea (C++: ea_t) - -Help on function auto_mark in module ida_auto: - -auto_mark(*args) - auto_mark(ea, type) - - - Put single address into a queue. Queues keep addresses sorted. - - - @param ea (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_mark_range in module ida_auto: - -auto_mark_range(*args) - auto_mark_range(start, end, type) - - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_recreate_insn in module ida_auto: - -auto_recreate_insn(*args) - auto_recreate_insn(ea) -> int - - - Try to create instruction - - @param ea: linear address of callee (C++: ea_t) - @return: the length of the instruction or 0 - -Help on function auto_unmark in module ida_auto: - -auto_unmark(*args) - auto_unmark(start, end, type) - - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_wait in module ida_auto: - -auto_wait(*args) - auto_wait() -> bool - - - Process everything in the queues and return true. - - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) - -Help on function auto_wait_range in module ida_auto: - -auto_wait_range(*args) - auto_wait_range(ea1, ea2) -> ssize_t - - - Process everything in the specified range and return true. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) - -Help on function enable_auto in module ida_auto: - -enable_auto(*args) - enable_auto(enable) -> bool - - - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - - @param enable (C++: bool) - @return: old state - -Help on function get_auto_display in module ida_auto: - -get_auto_display(*args) - get_auto_display(auto_display) - - - Get structure which holds the autoanalysis indicator contents. - - - @param auto_display (C++: auto_display_t *) - -Help on function get_auto_state in module ida_auto: - -get_auto_state(*args) - get_auto_state() -> atype_t - - - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). - -Help on function is_auto_enabled in module ida_auto: - -is_auto_enabled(*args) - is_auto_enabled() -> bool - - - Get autoanalyzer state. - -Help on function may_create_stkvars in module ida_auto: - -may_create_stkvars(*args) - may_create_stkvars() -> bool - - - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. - -Help on function may_trace_sp in module ida_auto: - -may_trace_sp(*args) - may_trace_sp() -> bool - - - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. - -Help on function peek_auto_queue in module ida_auto: - -peek_auto_queue(*args) - peek_auto_queue(low_ea, type) -> ea_t - - - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR - -Help on function plan_and_wait in module ida_auto: - -plan_and_wait(*args) - plan_and_wait(ea1, ea2, final_pass=True) -> int - - - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) - -Help on function plan_ea in module ida_auto: - -plan_ea(*args) - plan_ea(ea) - - - Plan to perform reanalysis. - - - @param ea (C++: ea_t) - -Help on function plan_range in module ida_auto: - -plan_range(*args) - plan_range(sEA, eEA) - - - Plan to perform reanalysis. - - - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) - -Help on function reanalyze_callers in module ida_auto: - -reanalyze_callers(*args) - reanalyze_callers(ea, noret) - - - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) - -Help on function revert_ida_decisions in module ida_auto: - -revert_ida_decisions(*args) - revert_ida_decisions(ea1, ea2) - - - Delete all analysis info that IDA generated for for the given range. - - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - -Help on function set_auto_state in module ida_auto: - -set_auto_state(*args) - set_auto_state(new_state) -> atype_t - - - Set current state of autoanalyzer. - - @param new_state: new state of autoanalyzer (C++: atype_t) - @return: previous state - -Help on function set_ida_state in module ida_auto: - -set_ida_state(*args) - set_ida_state(st) -> idastate_t - - - Change IDA status indicator value - - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status - -Help on function show_addr in module ida_auto: - -show_addr(*args) - show_addr(ea) - - - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - - @param ea: - linear address to display (C++: ea_t) - -Help on function show_auto in module ida_auto: - -show_auto(*args) - show_auto(ea, type=AU_NONE) - - - Change autoanalysis indicator value. - - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) - -Help on function __walk_types_and_formats in module ida_bytes: - -__walk_types_and_formats(formats, type_action, format_action, installing) - # ----------------------------------------------------------------------- - -Help on function add_byte in module ida_bytes: - -add_byte(*args) - add_byte(ea, value) - - - Add a value to one byte of the program. This function works for wide - byte processors too. - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) - -Help on function add_dword in module ida_bytes: - -add_dword(*args) - add_dword(ea, value) - - - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) - -Help on function add_hidden_range in module ida_bytes: - -add_hidden_range(*args) - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success - -Help on function add_mapping in module ida_bytes: - -add_mapping(*args) - add_mapping(_from, to, size) -> bool - - - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) - @return: success - -Help on function add_qword in module ida_bytes: - -add_qword(*args) - add_qword(ea, value) - - - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) - -Help on function add_word in module ida_bytes: - -add_word(*args) - add_word(ea, value) - - - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) - -Help on function align_flag in module ida_bytes: - -align_flag(*args) - align_flag() -> flags_t - - - Get a flags_t representing an alignment directive. - -Help on function append_cmt in module ida_bytes: - -append_cmt(*args) - append_cmt(ea, str, rptble) -> bool - - - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success - -Help on function attach_custom_data_format in module ida_bytes: - -attach_custom_data_format(*args) - attach_custom_data_format(dtid, dfid) -> bool - - - Attach the data format to the data type. - - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) - -Help on function bin_flag in module ida_bytes: - -bin_flag(*args) - bin_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on function bin_search in module ida_bytes: - -bin_search(*args) - bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t - -Help on function byte_flag in module ida_bytes: - -byte_flag(*args) - byte_flag() -> flags_t - - - Get a flags_t representing a byte. - -Help on function bytesize in module ida_bytes: - -bytesize(*args) - bytesize(ea) -> int - - - Get number of bytes required to store a byte at the given address. - - - @param ea (C++: ea_t) - -Help on function calc_def_align in module ida_bytes: - -calc_def_align(*args) - calc_def_align(ea, mina, maxa) -> int - - - Calculate default alignment. - - - @param ea (C++: ea_t) - @param mina (C++: int) - @param maxa (C++: int) - -Help on function calc_dflags in module ida_bytes: - -calc_dflags(*args) - calc_dflags(f, force) -> flags_t - -Help on function calc_max_align in module ida_bytes: - -calc_max_align(*args) - calc_max_align(endea) -> int - - - Returns: 0..32. - - - @param endea (C++: ea_t) - -Help on function calc_max_item_end in module ida_bytes: - -calc_max_item_end(*args) - calc_max_item_end(ea, how=15) -> ea_t - - - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. - -Help on function calc_min_align in module ida_bytes: - -calc_min_align(*args) - calc_min_align(length) -> int - - - Returns: 1..32. - - - @param length (C++: asize_t) - -Help on function can_define_item in module ida_bytes: - -can_define_item(*args) - can_define_item(ea, length, flags) -> bool - - - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) - @return: 1-yes, 0-no - -Help on function change_storage_type in module ida_bytes: - -change_storage_type(*args) - change_storage_type(start_ea, end_ea, stt) -> error_t - - - Change flag storage type for address range. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code - -Help on function char_flag in module ida_bytes: - -char_flag(*args) - char_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function chunk_size in module ida_bytes: - -chunk_size(*args) - chunk_size(ea) -> asize_t - - - Get size of the contiguous address block containing 'ea'. - - @param ea (C++: ea_t) - @return: 0 if 'ea' doesn't belong to the program. - -Help on function chunk_start in module ida_bytes: - -chunk_start(*args) - chunk_start(ea) -> ea_t - - - Get start of the contiguous address block containing 'ea'. - - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. - -Help on function clr_lzero in module ida_bytes: - -clr_lzero(*args) - clr_lzero(ea, n) -> bool - - - Clear lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function clr_op_type in module ida_bytes: - -clr_op_type(*args) - clr_op_type(ea, n) -> bool - - - Remove operand representation information. (set operand representation - to be 'undefined') - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function code_flag in module ida_bytes: - -code_flag(*args) - code_flag() -> flags_t - - - 'FF_CODE' - -Help on function create_16bit_data in module ida_bytes: - -create_16bit_data(*args) - create_16bit_data(ea, length) -> bool - - - Convert to 16-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - -Help on function create_32bit_data in module ida_bytes: - -create_32bit_data(*args) - create_32bit_data(ea, length) -> bool - - - Convert to 32-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - -Help on function create_align in module ida_bytes: - -create_align(*args) - create_align(ea, length, alignment) -> bool - - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) - -Help on function create_byte in module ida_bytes: - -create_byte(*args) - create_byte(ea, length, force=False) -> bool - - - Convert to byte. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_custdata in module ida_bytes: - -create_custdata(*args) - create_custdata(ea, length, dtid, fid, force=False) -> bool - - - Convert to custom data type. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) - -Help on function create_data in module ida_bytes: - -create_data(*args) - create_data(ea, dataflag, size, tid) -> bool - - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success - -Help on function create_double in module ida_bytes: - -create_double(*args) - create_double(ea, length, force=False) -> bool - - - Convert to double. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_dword in module ida_bytes: - -create_dword(*args) - create_dword(ea, length, force=False) -> bool - - - Convert to dword. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_float in module ida_bytes: - -create_float(*args) - create_float(ea, length, force=False) -> bool - - - Convert to float. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_oword in module ida_bytes: - -create_oword(*args) - create_oword(ea, length, force=False) -> bool - - - Convert to octaword/xmm word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_packed_real in module ida_bytes: - -create_packed_real(*args) - create_packed_real(ea, length, force=False) -> bool - - - Convert to packed decimal real. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_qword in module ida_bytes: - -create_qword(*args) - create_qword(ea, length, force=False) -> bool - - - Convert to quadword. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_strlit in module ida_bytes: - -create_strlit(*args) - create_strlit(start, len, strtype) -> bool - - - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) - @return: success - -Help on function create_struct in module ida_bytes: - -create_struct(*args) - create_struct(ea, length, tid, force=False) -> bool - - - Convert to struct. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) - -Help on function create_tbyte in module ida_bytes: - -create_tbyte(*args) - create_tbyte(ea, length, force=False) -> bool - - - Convert to tbyte. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_word in module ida_bytes: - -create_word(*args) - create_word(ea, length, force=False) -> bool - - - Convert to word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_yword in module ida_bytes: - -create_yword(*args) - create_yword(ea, length, force=False) -> bool - - - Convert to ymm word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_zword in module ida_bytes: - -create_zword(*args) - create_zword(ea, length, force=False) -> bool - - - Convert to zmm word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function cust_flag in module ida_bytes: - -cust_flag(*args) - cust_flag() -> flags_t - - - Get a flags_t representing custom type data. - -Help on function custfmt_flag in module ida_bytes: - -custfmt_flag(*args) - custfmt_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on class data_format_t in module ida_bytes: - -class data_format_t(__builtin__.object) - | Proxy of C++ data_format_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | - | __real__init__ = __init__(self, *args) - | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t - | - | __repr__ = _swig_repr(self) - | - | _data_format_t__get_id = __get_id(self, *args) - | __get_id(self) -> int - | - | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hotkey - | data_format_t_hotkey_get(self) -> char const * - | - | id - | __get_id(self) -> int - | - | menu_name - | data_format_t_menu_name_get(self) -> char const * - | - | name - | data_format_t_name_get(self) -> char const * - | - | props - | data_format_t_props_get(self) -> int - | - | text_width - | data_format_t_text_width_get(self) -> int32 - | - | thisown - | The membership flag - | - | value_size - | data_format_t_value_size_get(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_data_format_t(self) - -Help on class data_type_t in module ida_bytes: - -class data_type_t(__builtin__.object) - | Proxy of C++ data_type_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | - | __real__init__ = __init__(self, *args) - | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t - | - | __repr__ = _swig_repr(self) - | - | _data_type_t__get_id = __get_id(self, *args) - | __get_id(self) -> int - | - | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * - | - | hotkey - | data_type_t_hotkey_get(self) -> char const * - | - | id - | __get_id(self) -> int - | - | menu_name - | data_type_t_menu_name_get(self) -> char const * - | - | name - | data_type_t_name_get(self) -> char const * - | - | props - | data_type_t_props_get(self) -> int - | - | thisown - | The membership flag - | - | value_size - | data_type_t_value_size_get(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_data_type_t(self) - -Help on function dec_flag in module ida_bytes: - -dec_flag(*args) - dec_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on function del_hidden_range in module ida_bytes: - -del_hidden_range(*args) - del_hidden_range(ea) -> bool - - - Delete hidden range. - - @param ea: any address in the hidden range (C++: ea_t) - @return: success - -Help on function del_items in module ida_bytes: - -del_items(*args) - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false - -Help on function del_mapping in module ida_bytes: - -del_mapping(*args) - del_mapping(ea) - - - Delete memory mapping range. - - @param ea: any address in the mapped range (C++: ea_t) - -Help on function del_value in module ida_bytes: - -del_value(*args) - del_value(ea) - - - Delete byte value from flags. The corresponding byte becomes - uninitialized. - - @param ea (C++: ea_t) - -Help on function detach_custom_data_format in module ida_bytes: - -detach_custom_data_format(*args) - detach_custom_data_format(dtid, dfid) -> bool - - - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) - -Help on function disable_flags in module ida_bytes: - -disable_flags(*args) - disable_flags(start_ea, end_ea) -> error_t - - - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @return: 0 if ok, otherwise return error code - -Help on function double_flag in module ida_bytes: - -double_flag(*args) - double_flag() -> flags_t - - - Get a flags_t representing a double. - -Help on function dword_flag in module ida_bytes: - -dword_flag(*args) - dword_flag() -> flags_t - - - Get a flags_t representing a double word. - -Help on function enable_flags in module ida_bytes: - -enable_flags(*args) - enable_flags(start_ea, end_ea, stt) -> error_t - - - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: 0 if ok, otherwise an error code - -Help on function enum_flag in module ida_bytes: - -enum_flag(*args) - enum_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function equal_bytes in module ida_bytes: - -equal_bytes(*args) - equal_bytes(ea, image, mask, len, sense_case) -> bool - - - Compare 'len' bytes of the program starting from 'ea' with 'image'. - - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == NULL, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) - -Help on function f_has_cmt in module ida_bytes: - -f_has_cmt(*args) - f_has_cmt(f, arg2) -> bool - -Help on function f_has_dummy_name in module ida_bytes: - -f_has_dummy_name(*args) - f_has_dummy_name(f, arg2) -> bool - - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param f (C++: flags_t) - -Help on function f_has_extra_cmts in module ida_bytes: - -f_has_extra_cmts(*args) - f_has_extra_cmts(f, arg2) -> bool - -Help on function f_has_name in module ida_bytes: - -f_has_name(*args) - f_has_name(f, arg2) -> bool - - - Does the current byte have non-trivial (non-dummy) name? - - - @param f (C++: flags_t) - -Help on function f_has_user_name in module ida_bytes: - -f_has_user_name(*args) - f_has_user_name(F, arg2) -> bool - - - Does the current byte have user-specified name? - - - @param F (C++: flags_t) - -Help on function f_has_xref in module ida_bytes: - -f_has_xref(*args) - f_has_xref(f, arg2) -> bool - - - Does the current byte have cross-references to it? - - - @param f (C++: flags_t) - -Help on function f_is_align in module ida_bytes: - -f_is_align(*args) - f_is_align(F, arg2) -> bool - - - See 'is_align()' - - - @param F (C++: flags_t) - -Help on function f_is_byte in module ida_bytes: - -f_is_byte(*args) - f_is_byte(F, arg2) -> bool - - - See 'is_byte()' - - - @param F (C++: flags_t) - -Help on function f_is_code in module ida_bytes: - -f_is_code(*args) - f_is_code(F, arg2) -> bool - - - Does flag denote start of an instruction? - - - @param F (C++: flags_t) - -Help on function f_is_custom in module ida_bytes: - -f_is_custom(*args) - f_is_custom(F, arg2) -> bool - - - See 'is_custom()' - - - @param F (C++: flags_t) - -Help on function f_is_data in module ida_bytes: - -f_is_data(*args) - f_is_data(F, arg2) -> bool - - - Does flag denote start of data? - - - @param F (C++: flags_t) - -Help on function f_is_double in module ida_bytes: - -f_is_double(*args) - f_is_double(F, arg2) -> bool - - - See 'is_double()' - - - @param F (C++: flags_t) - -Help on function f_is_dword in module ida_bytes: - -f_is_dword(*args) - f_is_dword(F, arg2) -> bool - - - See 'is_dword()' - - - @param F (C++: flags_t) - -Help on function f_is_float in module ida_bytes: - -f_is_float(*args) - f_is_float(F, arg2) -> bool - - - See 'is_float()' - - - @param F (C++: flags_t) - -Help on function f_is_head in module ida_bytes: - -f_is_head(*args) - f_is_head(F, arg2) -> bool - - - Does flag denote start of instruction OR data? - - - @param F (C++: flags_t) - -Help on function f_is_not_tail in module ida_bytes: - -f_is_not_tail(*args) - f_is_not_tail(F, arg2) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function f_is_oword in module ida_bytes: - -f_is_oword(*args) - f_is_oword(F, arg2) -> bool - - - See 'is_oword()' - - - @param F (C++: flags_t) - -Help on function f_is_pack_real in module ida_bytes: - -f_is_pack_real(*args) - f_is_pack_real(F, arg2) -> bool - - - See 'is_pack_real()' - - - @param F (C++: flags_t) - -Help on function f_is_qword in module ida_bytes: - -f_is_qword(*args) - f_is_qword(F, arg2) -> bool - - - See 'is_qword()' - - - @param F (C++: flags_t) - -Help on function f_is_strlit in module ida_bytes: - -f_is_strlit(*args) - f_is_strlit(F, arg2) -> bool - - - See 'is_strlit()' - - - @param F (C++: flags_t) - -Help on function f_is_struct in module ida_bytes: - -f_is_struct(*args) - f_is_struct(F, arg2) -> bool - - - See 'is_struct()' - - - @param F (C++: flags_t) - -Help on function f_is_tail in module ida_bytes: - -f_is_tail(*args) - f_is_tail(F, arg2) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function f_is_tbyte in module ida_bytes: - -f_is_tbyte(*args) - f_is_tbyte(F, arg2) -> bool - - - See 'is_tbyte()' - - - @param F (C++: flags_t) - -Help on function f_is_word in module ida_bytes: - -f_is_word(*args) - f_is_word(F, arg2) -> bool - - - See 'is_word()' - - - @param F (C++: flags_t) - -Help on function f_is_yword in module ida_bytes: - -f_is_yword(*args) - f_is_yword(F, arg2) -> bool - - - See 'is_yword()' - - - @param F (C++: flags_t) - -Help on function find_byte in module ida_bytes: - -find_byte(*args) - find_byte(sEA, size, value, bin_search_flags) -> ea_t - - - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR - -Help on function find_byter in module ida_bytes: - -find_byter(*args) - find_byter(sEA, size, value, bin_search_flags) -> ea_t - - - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR - -Help on function find_custom_data_format in module ida_bytes: - -find_custom_data_format(*args) - find_custom_data_format(name) -> int - - - Get id of a custom data format. - - @param name: name of the custom data format (C++: const char *) - @return: id or -1 - -Help on function find_custom_data_type in module ida_bytes: - -find_custom_data_type(*args) - find_custom_data_type(name) -> int - - - Get id of a custom data type. - - @param name: name of the custom data type (C++: const char *) - @return: id or -1 - -Help on function float_flag in module ida_bytes: - -float_flag(*args) - float_flag() -> flags_t - - - Get a flags_t representing a float. - -Help on function flt_flag in module ida_bytes: - -flt_flag(*args) - flt_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function free_chunk in module ida_bytes: - -free_chunk(*args) - free_chunk(bottom, size, step) -> ea_t - - - Search for a hole in the addressing space of the program. - - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR - -Help on function get_16bit in module ida_bytes: - -get_16bit(*args) - get_16bit(ea) -> uint32 - - - Get 16bits of the program at 'ea'. - - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() - -Help on function get_32bit in module ida_bytes: - -get_32bit(*args) - get_32bit(ea) -> uint32 - - - Get not more than 32bits of the program at 'ea'. - - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); - -Help on function get_64bit in module ida_bytes: - -get_64bit(*args) - get_64bit(ea) -> uint64 - - - Get not more than 64bits of the program at 'ea'. - - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); - -Help on function get_8bit in module ida_bytes: - -get_8bit(*args) - get_8bit(ea, v, nbit) -> PyObject * - -Help on function get_byte in module ida_bytes: - -get_byte(*args) - get_byte(ea) -> uchar - - - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_bytes in module ida_bytes: - -get_bytes(*args) - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * - - - Get the specified number of bytes of the program. - @param ea: program address - @param size: number of bytes to return - @return: the bytes (as a str), or None in case of failure - -Help on function get_bytes_and_mask in module ida_bytes: - -get_bytes_and_mask(*args) - get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * - - - Get the specified number of bytes of the program, and a bitmask - specifying what bytes are defined and what bytes are not. - @param ea: program address - @param size: number of bytes to return - @return: a tuple (bytes, mask), or None in case of failure. - Both 'bytes' and 'mask' are 'str' instances. - -Help on function get_cmt in module ida_bytes: - -get_cmt(*args) - get_cmt(ea, rptble) -> str - - - Get an indented comment. - - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 - -Help on function get_custom_data_format in module ida_bytes: - -get_custom_data_format(*args) - get_custom_data_format(dfid) -> data_format_t - - - Get definition of a registered custom data format. - - @param dfid: data format id (C++: int) - @return: data format definition or NULL - -Help on function get_custom_data_formats in module ida_bytes: - -get_custom_data_formats(*args) - get_custom_data_formats(out, dtid) -> int - - - Get list of attached custom data formats for the specified data type. - - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param dtid: data type id (C++: int) - @return: number of returned custom data formats. if error, returns -1 - -Help on function get_custom_data_type in module ida_bytes: - -get_custom_data_type(*args) - get_custom_data_type(dtid) -> data_type_t - - - Get definition of a registered custom data type. - - @param dtid: data type id (C++: int) - @return: data type definition or NULL - -Help on function get_custom_data_types in module ida_bytes: - -get_custom_data_types(*args) - get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - - - Get list of registered custom data type ids. - - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) - @return: number of custom data types with the specified size limits - -Help on function get_data_elsize in module ida_bytes: - -get_data_elsize(*args) - get_data_elsize(ea, F, ti=None) -> asize_t - - - Get size of data type specified in flags 'F'. - - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... - -Help on function get_data_value in module ida_bytes: - -get_data_value(*args) - get_data_value(v, ea, size) -> bool - - - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - - @param v: pointer to the result. may be NULL (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) - @return: success - -Help on function get_db_byte in module ida_bytes: - -get_db_byte(*args) - get_db_byte(ea) -> uchar - - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) - -Help on function get_default_radix in module ida_bytes: - -get_default_radix(*args) - get_default_radix() -> int - - - Get default base of number for the current processor. - - @return: 2, 8, 10, 16 - -Help on function get_dword in module ida_bytes: - -get_dword(*args) - get_dword(ea) -> uint32 - - - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_enum_id in module ida_bytes: - -get_enum_id(*args) - get_enum_id(ea, n) -> enum_t - - - Get enum id of 'enum' operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE - -Help on function get_first_hidden_range in module ida_bytes: - -get_first_hidden_range(*args) - get_first_hidden_range() -> hidden_range_t - - - Get pointer to the first hidden range. - - @return: ptr to hidden range or NULL - -Help on function get_flags in module ida_bytes: - -get_flags(*args) - get_flags(ea) -> flags_t - - - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - - @param ea (C++: ea_t) - -Help on function get_flags_by_size in module ida_bytes: - -get_flags_by_size(*args) - get_flags_by_size(size) -> flags_t - - - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - - @param size (C++: size_t) - -Help on function get_flags_ex in module ida_bytes: - -get_flags_ex(*args) - get_flags_ex(ea, how) -> flags_t - - - Get flags for the specified address, extended form. - - - @param ea (C++: ea_t) - @param how (C++: int) - -Help on function get_forced_operand in module ida_bytes: - -get_forced_operand(*args) - get_forced_operand(ea, n) -> str - - - Get forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 - -Help on function get_full_data_elsize in module ida_bytes: - -get_full_data_elsize(*args) - get_full_data_elsize(ea, F, ti=None) -> asize_t - - - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) - -Help on function get_full_flags in module ida_bytes: - -get_full_flags(*args) - get_full_flags(ea) -> flags_t - - - Get flags value for address 'ea'. - - @param ea (C++: ea_t) - @return: 0 if address is not present in the program - -Help on function get_hidden_range in module ida_bytes: - -get_hidden_range(*args) - get_hidden_range(ea) -> hidden_range_t - - - Get pointer to hidden range structure, in: linear address. - - @param ea: any address in the hidden range (C++: ea_t) - -Help on function get_hidden_range_num in module ida_bytes: - -get_hidden_range_num(*args) - get_hidden_range_num(ea) -> int - - - Get number of a hidden range. - - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) - -Help on function get_hidden_range_qty in module ida_bytes: - -get_hidden_range_qty(*args) - get_hidden_range_qty() -> int - - - Get number of hidden ranges. - -Help on function get_item_end in module ida_bytes: - -get_item_end(*args) - get_item_end(ea) -> ea_t - - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) - -Help on function get_item_flag in module ida_bytes: - -get_item_flag(*args) - get_item_flag(_from, n, ea, appzero) -> flags_t - - - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) - @return: flags or 0 (if failed) - -Help on function get_item_head in module ida_bytes: - -get_item_head(*args) - get_item_head(ea) -> ea_t - - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) - -Help on function get_item_size in module ida_bytes: - -get_item_size(*args) - get_item_size(ea) -> asize_t - - - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - - @param ea (C++: ea_t) - -Help on function get_last_hidden_range in module ida_bytes: - -get_last_hidden_range(*args) - get_last_hidden_range() -> hidden_range_t - - - Get pointer to the last hidden range. - - @return: ptr to hidden range or NULL - -Help on function get_manual_insn in module ida_bytes: - -get_manual_insn(*args) - get_manual_insn(ea) -> str - - - Retrieve the user-specified string for the manual instruction. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 - -Help on function get_mapping in module ida_bytes: - -get_mapping(*args) - get_mapping(n) -> bool - - - Get memory mapping range by its number. - - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size - -Help on function get_mappings_qty in module ida_bytes: - -get_mappings_qty(*args) - get_mappings_qty() -> size_t - - - Get number of mappings. - -Help on function get_max_strlit_length in module ida_bytes: - -get_max_strlit_length(*args) - get_max_strlit_length(ea, strtype, options=0) -> size_t - - - Determine maximum length of string literal. - - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) - @return: length of the string in octets (octet==8bit) - -Help on function get_next_hidden_range in module ida_bytes: - -get_next_hidden_range(*args) - get_next_hidden_range(ea) -> hidden_range_t - - - Get pointer to next hidden range. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if next hidden range doesn't - exist - -Help on function get_octet in module ida_bytes: - -get_octet(*args) - get_octet(ea, v, nbit) -> PyObject * - - - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - - uint64 v; - int nbit = 0; - for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... - } - - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) - -Help on function get_opinfo in module ida_bytes: - -get_opinfo(*args) - get_opinfo(buf, ea, n, flags) -> opinfo_t - - - Get additional information about an operand representation. - - @param buf: buffer to receive the result. may not be NULL (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: NULL if no additional representation information - -Help on function get_optype_flags0 in module ida_bytes: - -get_optype_flags0(*args) - get_optype_flags0(F) -> flags_t - - - Get flags for first operand. - - - @param F (C++: flags_t) - -Help on function get_optype_flags1 in module ida_bytes: - -get_optype_flags1(*args) - get_optype_flags1(F) -> flags_t - - - Get flags for second operand. - - - @param F (C++: flags_t) - -Help on function get_original_byte in module ida_bytes: - -get_original_byte(*args) - get_original_byte(ea) -> uint64 - - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) - -Help on function get_original_dword in module ida_bytes: - -get_original_dword(*args) - get_original_dword(ea) -> uint64 - - - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_original_qword in module ida_bytes: - -get_original_qword(*args) - get_original_qword(ea) -> uint64 - - - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_original_word in module ida_bytes: - -get_original_word(*args) - get_original_word(ea) -> uint64 - - - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_predef_insn_cmt in module ida_bytes: - -get_predef_insn_cmt(*args) - get_predef_insn_cmt(ins) -> str - - - Get predefined comment. - - @param ins: current instruction information (C++: const insn_t &) - @return: size of comment or -1 - -Help on function get_prev_hidden_range in module ida_bytes: - -get_prev_hidden_range(*args) - get_prev_hidden_range(ea) -> hidden_range_t - - - Get pointer to previous hidden range. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if previous hidden range doesn't - exist - -Help on function get_qword in module ida_bytes: - -get_qword(*args) - get_qword(ea) -> uint64 - - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_radix in module ida_bytes: - -get_radix(*args) - get_radix(F, n) -> int - - - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 - -Help on function get_strlit_contents in module ida_bytes: - -get_strlit_contents(*args) - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - - - Get bytes contents at location, possibly converted. - It works even if the string has not been created in the database yet. - - Note that this will always return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. - - @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) - @param type: type of the string. Represents both the character encoding, - and the 'type' of string at the given location. - @param flags: combination of STRCONV_..., to perform output conversion. - @return: a bytes-filled str object. - -Help on function get_stroff_path in module ida_bytes: - -get_stroff_path(*args) - get_stroff_path(path, delta, ea, n) -> int - - - Get struct path of operand. - - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: length of strpath - -Help on function get_wide_byte in module ida_bytes: - -get_wide_byte(*args) - get_wide_byte(ea) -> uint64 - - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) - -Help on function get_wide_dword in module ida_bytes: - -get_wide_dword(*args) - get_wide_dword(ea) -> uint64 - - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) - -Help on function get_wide_word in module ida_bytes: - -get_wide_word(*args) - get_wide_word(ea) -> uint64 - - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_word in module ida_bytes: - -get_word(*args) - get_word(ea) -> ushort - - - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_zero_ranges in module ida_bytes: - -get_zero_ranges(*args) - get_zero_ranges(zranges, range) -> bool - - - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - - @param zranges: pointer to the return value. cannot be NULL (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be NULL - means - all ranges (C++: const range_t *) - @return: true if the result is a non-empty set - -Help on function getn_hidden_range in module ida_bytes: - -getn_hidden_range(*args) - getn_hidden_range(n) -> hidden_range_t - - - Get pointer to hidden range structure, in: number of hidden range. - - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) - -Help on function has_any_name in module ida_bytes: - -has_any_name(*args) - has_any_name(F) -> bool - - - Does the current byte have any name? - - - @param F (C++: flags_t) - -Help on function has_auto_name in module ida_bytes: - -has_auto_name(*args) - has_auto_name(F) -> bool - - - Does the current byte have auto-generated (no special prefix) name? - - - @param F (C++: flags_t) - -Help on function has_cmt in module ida_bytes: - -has_cmt(*args) - has_cmt(F) -> bool - - - Does the current byte have an indented comment? - - - @param F (C++: flags_t) - -Help on function has_dummy_name in module ida_bytes: - -has_dummy_name(*args) - has_dummy_name(F) -> bool - - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param F (C++: flags_t) - -Help on function has_extra_cmts in module ida_bytes: - -has_extra_cmts(*args) - has_extra_cmts(F) -> bool - - - Does the current byte have additional anterior or posterior lines? - - - @param F (C++: flags_t) - -Help on function has_immd in module ida_bytes: - -has_immd(*args) - has_immd(F) -> bool - - - Has immediate value? - - - @param F (C++: flags_t) - -Help on function has_name in module ida_bytes: - -has_name(*args) - has_name(F) -> bool - - - Does the current byte have non-trivial (non-dummy) name? - - - @param F (C++: flags_t) - -Help on function has_user_name in module ida_bytes: - -has_user_name(*args) - has_user_name(F) -> bool - - - Does the current byte have user-specified name? - - - @param F (C++: flags_t) - -Help on function has_value in module ida_bytes: - -has_value(*args) - has_value(F) -> bool - - - Do flags contain byte value? - - - @param F (C++: flags_t) - -Help on function has_xref in module ida_bytes: - -has_xref(*args) - has_xref(F) -> bool - - - Does the current byte have cross-references to it? - - - @param F (C++: flags_t) - -Help on function hex_flag in module ida_bytes: - -hex_flag(*args) - hex_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on class hidden_range_t in module ida_bytes: - -class hidden_range_t(ida_range.range_t) - | Proxy of C++ hidden_range_t class. - | - | Method resolution order: - | hidden_range_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> hidden_range_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | color - | hidden_range_t_color_get(self) -> bgcolor_t - | - | description - | hidden_range_t_description_get(self) -> char * - | - | footer - | hidden_range_t_footer_get(self) -> char * - | - | header - | hidden_range_t_header_get(self) -> char * - | - | thisown - | The membership flag - | - | visible - | hidden_range_t_visible_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_hidden_range_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function is_align in module ida_bytes: - -is_align(*args) - is_align(F) -> bool - - - 'FF_ALIGN' - - - @param F (C++: flags_t) - -Help on function is_attached_custom_data_format in module ida_bytes: - -is_attached_custom_data_format(*args) - is_attached_custom_data_format(dtid, dfid) -> bool - -Help on function is_bnot in module ida_bytes: - -is_bnot(*args) - is_bnot(ea, F, n) -> bool - - - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_byte in module ida_bytes: - -is_byte(*args) - is_byte(F) -> bool - - - 'FF_BYTE' - - - @param F (C++: flags_t) - -Help on function is_char in module ida_bytes: - -is_char(*args) - is_char(F, n) -> bool - - - is character constant? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_char0 in module ida_bytes: - -is_char0(*args) - is_char0(F) -> bool - - - Is the first operand character constant? (example: push 'a') - - - @param F (C++: flags_t) - -Help on function is_char1 in module ida_bytes: - -is_char1(*args) - is_char1(F) -> bool - - - Is the second operand character constant? (example: mov al, 'a') - - - @param F (C++: flags_t) - -Help on function is_code in module ida_bytes: - -is_code(*args) - is_code(F) -> bool - - - Does flag denote start of an instruction? - - - @param F (C++: flags_t) - -Help on function is_custfmt in module ida_bytes: - -is_custfmt(*args) - is_custfmt(F, n) -> bool - - - is custom data format? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_custfmt0 in module ida_bytes: - -is_custfmt0(*args) - is_custfmt0(F) -> bool - - - Does the first operand use a custom data representation? - - - @param F (C++: flags_t) - -Help on function is_custfmt1 in module ida_bytes: - -is_custfmt1(*args) - is_custfmt1(F) -> bool - - - Does the second operand use a custom data representation? - - - @param F (C++: flags_t) - -Help on function is_custom in module ida_bytes: - -is_custom(*args) - is_custom(F) -> bool - - - 'FF_CUSTOM' - - - @param F (C++: flags_t) - -Help on function is_data in module ida_bytes: - -is_data(*args) - is_data(F) -> bool - - - Does flag denote start of data? - - - @param F (C++: flags_t) - -Help on function is_defarg in module ida_bytes: - -is_defarg(*args) - is_defarg(F, n) -> bool - - - is defined? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_defarg0 in module ida_bytes: - -is_defarg0(*args) - is_defarg0(F) -> bool - - - Is the first operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) - -Help on function is_defarg1 in module ida_bytes: - -is_defarg1(*args) - is_defarg1(F) -> bool - - - Is the second operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) - -Help on function is_double in module ida_bytes: - -is_double(*args) - is_double(F) -> bool - - - 'FF_DOUBLE' - - - @param F (C++: flags_t) - -Help on function is_dword in module ida_bytes: - -is_dword(*args) - is_dword(F) -> bool - - - 'FF_DWORD' - - - @param F (C++: flags_t) - -Help on function is_enum in module ida_bytes: - -is_enum(*args) - is_enum(F, n) -> bool - - - is enum? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_enum0 in module ida_bytes: - -is_enum0(*args) - is_enum0(F) -> bool - - - Is the first operand a symbolic constant (enum member)? - - - @param F (C++: flags_t) - -Help on function is_enum1 in module ida_bytes: - -is_enum1(*args) - is_enum1(F) -> bool - - - Is the second operand a symbolic constant (enum member)? - - - @param F (C++: flags_t) - -Help on function is_float in module ida_bytes: - -is_float(*args) - is_float(F) -> bool - - - 'FF_FLOAT' - - - @param F (C++: flags_t) - -Help on function is_float0 in module ida_bytes: - -is_float0(*args) - is_float0(F) -> bool - - - Is the first operand a floating point number? - - - @param F (C++: flags_t) - -Help on function is_float1 in module ida_bytes: - -is_float1(*args) - is_float1(F) -> bool - - - Is the second operand a floating point number? - - - @param F (C++: flags_t) - -Help on function is_flow in module ida_bytes: - -is_flow(*args) - is_flow(F) -> bool - - - Does the previous instruction exist and pass execution flow to the - current byte? - - - @param F (C++: flags_t) - -Help on function is_fltnum in module ida_bytes: - -is_fltnum(*args) - is_fltnum(F, n) -> bool - - - is floating point number? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_forced_operand in module ida_bytes: - -is_forced_operand(*args) - is_forced_operand(ea, n) -> bool - - - Is operand manually defined?. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - -Help on function is_func in module ida_bytes: - -is_func(*args) - is_func(F) -> bool - - - Is function start? - - - @param F (C++: flags_t) - -Help on function is_head in module ida_bytes: - -is_head(*args) - is_head(F) -> bool - - - Does flag denote start of instruction OR data? - - - @param F (C++: flags_t) - -Help on function is_invsign in module ida_bytes: - -is_invsign(*args) - is_invsign(ea, F, n) -> bool - - - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_loaded in module ida_bytes: - -is_loaded(*args) - is_loaded(ea) -> bool - - - Does the specified address have a byte value (is initialized?) - - - @param ea (C++: ea_t) - -Help on function is_lzero in module ida_bytes: - -is_lzero(*args) - is_lzero(ea, n) -> bool - - - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function is_manual in module ida_bytes: - -is_manual(*args) - is_manual(F, n) -> bool - - - is forced operand? (use 'is_forced_operand()' ) - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_manual_insn in module ida_bytes: - -is_manual_insn(*args) - is_manual_insn(ea) -> bool - - - Is the instruction overridden? - - @param ea: linear address of the instruction or data item (C++: ea_t) - -Help on function is_mapped in module ida_bytes: - -is_mapped(*args) - is_mapped(ea) -> bool - - - Is the specified address 'ea' present in the program? - - - @param ea (C++: ea_t) - -Help on function is_not_tail in module ida_bytes: - -is_not_tail(*args) - is_not_tail(F) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function is_numop in module ida_bytes: - -is_numop(*args) - is_numop(F, n) -> bool - - - is number (bin, oct, dec, hex)? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_numop0 in module ida_bytes: - -is_numop0(*args) - is_numop0(F) -> bool - - - Is the first operand a number (i.e. binary, octal, decimal or hex?) - - - @param F (C++: flags_t) - -Help on function is_numop1 in module ida_bytes: - -is_numop1(*args) - is_numop1(F) -> bool - - - Is the second operand a number (i.e. binary, octal, decimal or hex?) - - - @param F (C++: flags_t) - -Help on function is_off in module ida_bytes: - -is_off(*args) - is_off(F, n) -> bool - - - is offset? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_off0 in module ida_bytes: - -is_off0(*args) - is_off0(F) -> bool - - - Is the first operand offset? (example: push offset xxx) - - - @param F (C++: flags_t) - -Help on function is_off1 in module ida_bytes: - -is_off1(*args) - is_off1(F) -> bool - - - Is the second operand offset? (example: mov ax, offset xxx) - - - @param F (C++: flags_t) - -Help on function is_oword in module ida_bytes: - -is_oword(*args) - is_oword(F) -> bool - - - 'FF_OWORD' - - - @param F (C++: flags_t) - -Help on function is_pack_real in module ida_bytes: - -is_pack_real(*args) - is_pack_real(F) -> bool - - - 'FF_PACKREAL' - - - @param F (C++: flags_t) - -Help on function is_qword in module ida_bytes: - -is_qword(*args) - is_qword(F) -> bool - - - 'FF_QWORD' - - - @param F (C++: flags_t) - -Help on function is_same_data_type in module ida_bytes: - -is_same_data_type(*args) - is_same_data_type(F1, F2) -> bool - - - Do the given flags specify the same data type? - - - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) - -Help on function is_seg in module ida_bytes: - -is_seg(*args) - is_seg(F, n) -> bool - - - is segment? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_seg0 in module ida_bytes: - -is_seg0(*args) - is_seg0(F) -> bool - - - Is the first operand segment selector? (example: push seg seg001) - - - @param F (C++: flags_t) - -Help on function is_seg1 in module ida_bytes: - -is_seg1(*args) - is_seg1(F) -> bool - - - Is the second operand segment selector? (example: mov dx, seg dseg) - - - @param F (C++: flags_t) - -Help on function is_stkvar in module ida_bytes: - -is_stkvar(*args) - is_stkvar(F, n) -> bool - - - is stack variable? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_stkvar0 in module ida_bytes: - -is_stkvar0(*args) - is_stkvar0(F) -> bool - - - Is the first operand a stack variable? - - - @param F (C++: flags_t) - -Help on function is_stkvar1 in module ida_bytes: - -is_stkvar1(*args) - is_stkvar1(F) -> bool - - - Is the second operand a stack variable? - - - @param F (C++: flags_t) - -Help on function is_strlit in module ida_bytes: - -is_strlit(*args) - is_strlit(F) -> bool - - - 'FF_STRLIT' - - - @param F (C++: flags_t) - -Help on function is_stroff in module ida_bytes: - -is_stroff(*args) - is_stroff(F, n) -> bool - - - is struct offset? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_stroff0 in module ida_bytes: - -is_stroff0(*args) - is_stroff0(F) -> bool - - - Is the first operand an offset within a struct? - - - @param F (C++: flags_t) - -Help on function is_stroff1 in module ida_bytes: - -is_stroff1(*args) - is_stroff1(F) -> bool - - - Is the second operand an offset within a struct? - - - @param F (C++: flags_t) - -Help on function is_struct in module ida_bytes: - -is_struct(*args) - is_struct(F) -> bool - - - 'FF_STRUCT' - - - @param F (C++: flags_t) - -Help on function is_suspop in module ida_bytes: - -is_suspop(*args) - is_suspop(ea, F, n) -> bool - - - is suspicious operand? - - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_tail in module ida_bytes: - -is_tail(*args) - is_tail(F) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function is_tbyte in module ida_bytes: - -is_tbyte(*args) - is_tbyte(F) -> bool - - - 'FF_TBYTE' - - - @param F (C++: flags_t) - -Help on function is_unknown in module ida_bytes: - -is_unknown(*args) - is_unknown(F) -> bool - - - Does flag denote unexplored byte? - - - @param F (C++: flags_t) - -Help on function is_varsize_item in module ida_bytes: - -is_varsize_item(*args) - is_varsize_item(ea, F, ti=None, itemsize=None) -> int - - - Is the item at 'ea' variable size?. - - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @param itemsize: if not NULL and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) - -Help on function is_word in module ida_bytes: - -is_word(*args) - is_word(F) -> bool - - - 'FF_WORD' - - - @param F (C++: flags_t) - -Help on function is_yword in module ida_bytes: - -is_yword(*args) - is_yword(F) -> bool - - - 'FF_YWORD' - - - @param F (C++: flags_t) - -Help on function is_zword in module ida_bytes: - -is_zword(*args) - is_zword(F) -> bool - - - 'FF_ZWORD' - - - @param F (C++: flags_t) - -Help on function leading_zero_important in module ida_bytes: - -leading_zero_important(*args) - leading_zero_important(ea, n) -> bool - - - Check if leading zeroes are important. - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function nbits in module ida_bytes: - -nbits(*args) - nbits(ea) -> int - - - Get number of bits in a byte at the given address. - - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, - otherwise the result depends on the segment type - -Help on function next_addr in module ida_bytes: - -next_addr(*args) - next_addr(ea) -> ea_t - - - Get next address in the program (i.e. next address which has flags). - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function next_chunk in module ida_bytes: - -next_chunk(*args) - next_chunk(ea) -> ea_t - - - Get the first address of next contiguous chunk in the program. - - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. - -Help on function next_head in module ida_bytes: - -next_head(*args) - next_head(ea, maxea) -> ea_t - - - Get start of next defined item. - - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. - -Help on function next_inited in module ida_bytes: - -next_inited(*args) - next_inited(ea, maxea) -> ea_t - - - Find the next initialized address. - - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) - -Help on function next_not_tail in module ida_bytes: - -next_not_tail(*args) - next_not_tail(ea) -> ea_t - - - Get address of next non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function next_that in module ida_bytes: - -next_that(*args) - next_that(ea, maxea, callable) -> ea_t - - - Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. - - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. - @return: the found address or BADADDR. - -Help on function next_unknown in module ida_bytes: - -next_unknown(*args) - next_unknown(ea, maxea) -> ea_t - - - Similar to 'next_that()' , but will find the next address that is - unexplored. - - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) - -Help on function num_flag in module ida_bytes: - -num_flag(*args) - num_flag() -> flags_t - - - Get number of default base (bin, oct, dec, hex) - -Help on function oct_flag in module ida_bytes: - -oct_flag(*args) - oct_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on function off_flag in module ida_bytes: - -off_flag(*args) - off_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function op_adds_xrefs in module ida_bytes: - -op_adds_xrefs(*args) - op_adds_xrefs(F, n) -> bool - - - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function op_bin in module ida_bytes: - -op_bin(*args) - op_bin(ea, n) -> bool - - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_chr in module ida_bytes: - -op_chr(*args) - op_chr(ea, n) -> bool - - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_custfmt in module ida_bytes: - -op_custfmt(*args) - op_custfmt(ea, n, fid) -> bool - - - Set custom data format for operand (fid-custom data format id) - - - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) - -Help on function op_dec in module ida_bytes: - -op_dec(*args) - op_dec(ea, n) -> bool - - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_enum in module ida_bytes: - -op_enum(*args) - op_enum(ea, n, id, serial) -> bool - - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success - -Help on function op_flt in module ida_bytes: - -op_flt(*args) - op_flt(ea, n) -> bool - - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_hex in module ida_bytes: - -op_hex(*args) - op_hex(ea, n) -> bool - - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_num in module ida_bytes: - -op_num(*args) - op_num(ea, n) -> bool - - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_oct in module ida_bytes: - -op_oct(*args) - op_oct(ea, n) -> bool - - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_seg in module ida_bytes: - -op_seg(*args) - op_seg(ea, n) -> bool - - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stkvar in module ida_bytes: - -op_stkvar(*args) - op_stkvar(ea, n) -> bool - - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stroff in module ida_bytes: - -op_stroff(*args) - op_stroff(insn, n, path, path_len, delta) -> bool - - - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) - @return: success - - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> - -Help on function oword_flag in module ida_bytes: - -oword_flag(*args) - oword_flag() -> flags_t - - - Get a flags_t representing a octaword. - -Help on function packreal_flag in module ida_bytes: - -packreal_flag(*args) - packreal_flag() -> flags_t - - - Get a flags_t representing a packed decimal real. - -Help on function patch_byte in module ida_bytes: - -patch_byte(*args) - patch_byte(ea, x) -> bool - - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_bytes in module ida_bytes: - -patch_bytes(*args) - patch_bytes(ea, buf) - - - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) - -Help on function patch_dword in module ida_bytes: - -patch_dword(*args) - patch_dword(ea, x) -> bool - - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_qword in module ida_bytes: - -patch_qword(*args) - patch_qword(ea, x) -> bool - - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_word in module ida_bytes: - -patch_word(*args) - patch_word(ea, x) -> bool - - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function prev_addr in module ida_bytes: - -prev_addr(*args) - prev_addr(ea) -> ea_t - - - Get previous address in the program. - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function prev_chunk in module ida_bytes: - -prev_chunk(*args) - prev_chunk(ea) -> ea_t - - - Get the last address of previous contiguous chunk in the program. - - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. - -Help on function prev_head in module ida_bytes: - -prev_head(*args) - prev_head(ea, minea) -> ea_t - - - Get start of previous defined item. - - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. - -Help on function prev_inited in module ida_bytes: - -prev_inited(*args) - prev_inited(ea, minea) -> ea_t - - - Find the previous initialized address. - - - @param ea (C++: ea_t) - @param minea (C++: ea_t) - -Help on function prev_not_tail in module ida_bytes: - -prev_not_tail(*args) - prev_not_tail(ea) -> ea_t - - - Get address of previous non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function prev_that in module ida_bytes: - -prev_that(*args) - prev_that(ea, minea, callable) -> ea_t - - - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . - - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - @return: the found address or BADADDR . - -Help on function prev_unknown in module ida_bytes: - -prev_unknown(*args) - prev_unknown(ea, minea) -> ea_t - - - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - - - @param ea (C++: ea_t) - @param minea (C++: ea_t) - -Help on function print_strlit_type in module ida_bytes: - -print_strlit_type(*args) - print_strlit_type(strtype, flags=0) -> PyObject * - - - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. - - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) - @return: length of generated text - -Help on function put_byte in module ida_bytes: - -put_byte(*args) - put_byte(ea, x) -> bool - - - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) - @return: true if the database has been modified - -Help on function put_bytes in module ida_bytes: - -put_bytes(*args) - put_bytes(ea, buf) - - - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) - -Help on function put_dword in module ida_bytes: - -put_dword(*args) - put_dword(ea, x) - - - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) - -Help on function put_qword in module ida_bytes: - -put_qword(*args) - put_qword(ea, x) - - - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) - -Help on function put_word in module ida_bytes: - -put_word(*args) - put_word(ea, x) - - - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function qword_flag in module ida_bytes: - -qword_flag(*args) - qword_flag() -> flags_t - - - Get a flags_t representing a quad word. - -Help on function register_custom_data_format in module ida_bytes: - -register_custom_data_format(*args) - register_custom_data_format(py_df) -> int - - - Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register - > 0 data format id - -Help on function register_custom_data_type in module ida_bytes: - -register_custom_data_type(*args) - register_custom_data_type(py_dt) -> int - - - Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register - > 0 data type id - -Help on function register_data_types_and_formats in module ida_bytes: - -register_data_types_and_formats(formats) - Registers multiple data types and formats at once. - To register one type/format at a time use register_custom_data_type/register_custom_data_format - - It employs a special table of types and formats described below: - - The 'formats' is a list of tuples. If a tuple has one element then it is the format to be registered with dtid=0 - If the tuple has more than one element, then tuple[0] is the data type and tuple[1:] are the data formats. For example: - many_formats = [ - (pascal_data_type(), pascal_data_format()), - (simplevm_data_type(), simplevm_data_format()), - (makedword_data_format(),), - (simplevm_data_format(),) - ] - The first two tuples describe data types and their associated formats. - The last two tuples describe two data formats to be used with built-in data types. - The data format may be attached to several data types. The id of the - data format is stored in the first data_format_t object. For example: - assert many_formats[1][1] != -1 - assert many_formats[2][0] != -1 - assert many_formats[3][0] == -1 - -Help on function revert_byte in module ida_bytes: - -revert_byte(*args) - revert_byte(ea) -> bool - - - Revert patched byte - - @param ea (C++: ea_t) - -Help on function seg_flag in module ida_bytes: - -seg_flag(*args) - seg_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function set_cmt in module ida_bytes: - -set_cmt(*args) - set_cmt(ea, comm, rptble) -> bool - - - Set an indented comment. - - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success - -Help on function set_forced_operand in module ida_bytes: - -set_forced_operand(*args) - set_forced_operand(ea, n, op) -> bool - - - Set forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) - @return: success - -Help on function set_immd in module ida_bytes: - -set_immd(*args) - set_immd(ea) -> bool - - - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - - @param ea (C++: ea_t) - -Help on function set_lzero in module ida_bytes: - -set_lzero(*args) - set_lzero(ea, n) -> bool - - - Set toggle lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function set_manual_insn in module ida_bytes: - -set_manual_insn(*args) - set_manual_insn(ea, manual_insn) - - - Set manual instruction string. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) - -Help on function set_op_type in module ida_bytes: - -set_op_type(*args) - set_op_type(ea, type, n) -> bool - - - (internal function) change representation of operand(s). - - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - -Help on function set_opinfo in module ida_bytes: - -set_opinfo(*args) - set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool - - - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) - @return: success - -Help on function stkvar_flag in module ida_bytes: - -stkvar_flag(*args) - stkvar_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function strlit_flag in module ida_bytes: - -strlit_flag(*args) - strlit_flag() -> flags_t - - - Get a flags_t representing a string literal. - -Help on function stroff_flag in module ida_bytes: - -stroff_flag(*args) - stroff_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function stru_flag in module ida_bytes: - -stru_flag(*args) - stru_flag() -> flags_t - - - Get a flags_t representing a struct. - -Help on function tbyte_flag in module ida_bytes: - -tbyte_flag(*args) - tbyte_flag() -> flags_t - - - Get a flags_t representing a tbyte. - -Help on function toggle_bnot in module ida_bytes: - -toggle_bnot(*args) - toggle_bnot(ea, n) -> bool - - - Toggle binary negation of operand. also see 'is_bnot()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function toggle_lzero in module ida_bytes: - -toggle_lzero(*args) - toggle_lzero(ea, n) -> bool - -Help on function toggle_sign in module ida_bytes: - -toggle_sign(*args) - toggle_sign(ea, n) -> bool - - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function unregister_custom_data_format in module ida_bytes: - -unregister_custom_data_format(*args) - unregister_custom_data_format(dfid) -> bool - - - Unregisters a custom data format - @param dfid: data format id - @return: Boolean - -Help on function unregister_custom_data_type in module ida_bytes: - -unregister_custom_data_type(*args) - unregister_custom_data_type(dtid) -> bool - - - Unregisters a custom data type. - @param dtid: the data type id - @return: Boolean - -Help on function unregister_data_types_and_formats in module ida_bytes: - -unregister_data_types_and_formats(formats) - As opposed to register_data_types_and_formats(), this function - unregisters multiple data types and formats at once. - -Help on function update_hidden_range in module ida_bytes: - -update_hidden_range(*args) - update_hidden_range(ha) -> bool - - - Update hidden range information in the database. You cannot use this - function to change the range boundaries - - @param ha: range to update (C++: const hidden_range_t *) - @return: success - -Help on function use_mapping in module ida_bytes: - -use_mapping(*args) - use_mapping(ea) -> ea_t - - - Translate address according to current mappings. - - @param ea: address to translate (C++: ea_t) - @return: translated address - -Help on function visit_patched_bytes in module ida_bytes: - -visit_patched_bytes(*args) - visit_patched_bytes(ea1, ea2, py_callable) -> int - - - Enumerates patched bytes in the given range and invokes a callable - @param ea1: start address - @param ea2: end address - @param callable: a Python callable with the following prototype: - callable(ea, fpos, org_val, patch_val). - If the callable returns non-zero then that value will be - returned to the caller and the enumeration will be - interrupted. - @return: Zero if the enumeration was successful or the return - value of the callback if enumeration was interrupted. - -Help on function word_flag in module ida_bytes: - -word_flag(*args) - word_flag() -> flags_t - - - Get a flags_t representing a word. - -Help on function yword_flag in module ida_bytes: - -yword_flag(*args) - yword_flag() -> flags_t - - - Get a flags_t representing a ymm word. - -Help on function zword_flag in module ida_bytes: - -zword_flag(*args) - zword_flag() -> flags_t - - - Get a flags_t representing a zmm word. - -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -accumulated length - -if string length is more than 4K, return the -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -Just delete xrefs, ops e.t.c. - -do not undefine the function start. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -even if 'AF_TRFUNC' is set - -don't truncate the current function -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? -""" - -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" - -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" - -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. -""" - -ida_bytes.FF_STRLIT -""" -string literal -""" - -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" - -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -if this bit is not set, fail at first uninited byte - -try to read all bytes -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings window') -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === -Help on class DBG_Hooks in module ida_dbg: - -class DBG_Hooks(__builtin__.object) - | Proxy of C++ DBG_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> DBG_Hooks - | - | __repr__ = _swig_repr(self) - | - | dbg_bpt(self, *args) - | dbg_bpt(self, tid, bptea) -> int - | - | dbg_bpt_changed(self, *args) - | dbg_bpt_changed(self, bptev_code, bpt) - | - | dbg_exception(self, *args) - | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int - | - | dbg_finished_loading_bpts(self, *args) - | dbg_finished_loading_bpts(self) - | - | dbg_information(self, *args) - | dbg_information(self, pid, tid, ea, info) - | - | dbg_library_load(self, *args) - | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | - | dbg_library_unload(self, *args) - | dbg_library_unload(self, pid, tid, ea, info) - | - | dbg_process_attach(self, *args) - | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | - | dbg_process_detach(self, *args) - | dbg_process_detach(self, pid, tid, ea) - | - | dbg_process_exit(self, *args) - | dbg_process_exit(self, pid, tid, ea, exit_code) - | - | dbg_process_start(self, *args) - | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | - | dbg_request_error(self, *args) - | dbg_request_error(self, failed_command, failed_dbg_notification) - | - | dbg_run_to(self, *args) - | dbg_run_to(self, pid, tid, ea) - | - | dbg_started_loading_bpts(self, *args) - | dbg_started_loading_bpts(self) - | - | dbg_step_into(self, *args) - | dbg_step_into(self) - | - | dbg_step_over(self, *args) - | dbg_step_over(self) - | - | dbg_step_until_ret(self, *args) - | dbg_step_until_ret(self) - | - | dbg_suspend_process(self, *args) - | dbg_suspend_process(self) - | - | dbg_thread_exit(self, *args) - | dbg_thread_exit(self, pid, tid, ea, exit_code) - | - | dbg_thread_start(self, *args) - | dbg_thread_start(self, pid, tid, ea) - | - | dbg_trace(self, *args) - | dbg_trace(self, tid, ip) -> int - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_DBG_Hooks(self) - -Help on function add_bpt in module ida_dbg: - -add_bpt(*args) - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - add_bpt(bpt) -> bool - - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) - -Help on function add_path_mapping in module ida_dbg: - -add_path_mapping(*args) - add_path_mapping(src, dst) - -Help on function add_virt_module in module ida_dbg: - -add_virt_module(*args) - add_virt_module(mod) -> bool - -Help on function attach_process in module ida_dbg: - -attach_process(*args) - attach_process(pid=pid_t(-1), event_id=-1) -> int - - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - -Help on class bpt_location_t in module ida_dbg: - -class bpt_location_t(__builtin__.object) - | Proxy of C++ bpt_location_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> bpt_location_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ea(self, *args) - | ea(self) -> ea_t - | - | is_empty_path(self, *args) - | is_empty_path(self) -> bool - | - | lineno(self, *args) - | lineno(self) -> int - | - | offset(self, *args) - | offset(self) -> uval_t - | - | path(self, *args) - | path(self) -> char const * - | - | set_abs_bpt(self, *args) - | set_abs_bpt(self, a) - | - | set_rel_bpt(self, *args) - | set_rel_bpt(self, mod, _offset) - | - | set_src_bpt(self, *args) - | set_src_bpt(self, fn, _lineno) - | - | set_sym_bpt(self, *args) - | set_sym_bpt(self, _symbol, _offset=0) - | - | symbol(self, *args) - | symbol(self) -> char const * - | - | type(self, *args) - | type(self) -> bpt_loctype_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | index - | bpt_location_t_index_get(self) -> int - | - | info - | bpt_location_t_info_get(self) -> ea_t - | - | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bpt_location_t(self) - -Help on class bpt_t in module ida_dbg: - -class bpt_t(__builtin__.object) - | Proxy of C++ bpt_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bpt_t - | - | __repr__ = _swig_repr(self) - | - | badbpt(self, *args) - | badbpt(self) -> bool - | - | enabled(self, *args) - | enabled(self) -> bool - | - | get_cnd_elang_idx(self, *args) - | get_cnd_elang_idx(self) -> size_t - | - | get_size(self, *args) - | get_size(self) -> int - | - | is_absbpt(self, *args) - | is_absbpt(self) -> bool - | - | is_active(self, *args) - | is_active(self) -> bool - | - | is_compiled(self, *args) - | is_compiled(self) -> bool - | - | is_hwbpt(self, *args) - | is_hwbpt(self) -> bool - | - | is_inactive(self, *args) - | is_inactive(self) -> bool - | - | is_low_level(self, *args) - | is_low_level(self) -> bool - | - | is_page_bpt(self, *args) - | is_page_bpt(self) -> bool - | - | is_partially_active(self, *args) - | is_partially_active(self) -> bool - | - | is_relbpt(self, *args) - | is_relbpt(self) -> bool - | - | is_srcbpt(self, *args) - | is_srcbpt(self) -> bool - | - | is_symbpt(self, *args) - | is_symbpt(self) -> bool - | - | is_tracemodebpt(self, *args) - | is_tracemodebpt(self) -> bool - | - | is_traceoffbpt(self, *args) - | is_traceoffbpt(self) -> bool - | - | is_traceonbpt(self, *args) - | is_traceonbpt(self) -> bool - | - | listbpt(self, *args) - | listbpt(self) -> bool - | - | set_abs_bpt(self, *args) - | set_abs_bpt(self, a) - | - | set_rel_bpt(self, *args) - | set_rel_bpt(self, mod, o) - | - | set_src_bpt(self, *args) - | set_src_bpt(self, fn, lineno) - | - | set_sym_bpt(self, *args) - | set_sym_bpt(self, sym, o) - | - | set_trace_action(self, *args) - | set_trace_action(self, enable, trace_types) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cb - | bpt_t_cb_get(self) -> size_t - | - | cndidx - | bpt_t_cndidx_get(self) -> int - | - | condition - | bpt_t_condition_get(self) -> PyObject * - | - | ea - | bpt_t_ea_get(self) -> ea_t - | - | elang - | bpt_t_elang_get(self) -> PyObject * - | - | flags - | bpt_t_flags_get(self) -> uint32 - | - | loc - | bpt_t_loc_get(self) -> bpt_location_t - | - | pass_count - | bpt_t_pass_count_get(self) -> int - | - | pid - | bpt_t_pid_get(self) -> pid_t - | - | props - | bpt_t_props_get(self) -> uint32 - | - | size - | bpt_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | tid - | bpt_t_tid_get(self) -> thid_t - | - | type - | bpt_t_type_get(self) -> bpttype_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bpt_t(self) - -Help on class bpt_vec_t in module ida_dbg: - -class bpt_vec_t(__builtin__.object) - | Proxy of C++ qvector< bpt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> bpt_t - | - | __init__(self, *args) - | __init__(self) -> bpt_vec_t - | __init__(self, x) -> bpt_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> bpt_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> bpt_t - | begin(self) -> bpt_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bpt_t - | end(self) -> bpt_t - | - | erase(self, *args) - | erase(self, it) -> bpt_t - | erase(self, first, last) -> bpt_t - | - | extract(self, *args) - | extract(self) -> bpt_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=bpt_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> bpt_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> bpt_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bpt_vec_t(self) - -Help on function bring_debugger_to_front in module ida_dbg: - -bring_debugger_to_front(*args) - bring_debugger_to_front() - -Help on function check_bpt in module ida_dbg: - -check_bpt(*args) - check_bpt(ea) -> int - - - Check the breakpoint at the specified address. - - @param ea (C++: ea_t) - @return: one of Breakpoint status codes - -Help on function choose_trace_file in module ida_dbg: - -choose_trace_file(*args) - choose_trace_file() -> str - - - Show the choose trace dialog. - -Help on function clear_requests_queue in module ida_dbg: - -clear_requests_queue(*args) - clear_requests_queue() - - - Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. - -Help on function clear_trace in module ida_dbg: - -clear_trace(*args) - clear_trace() - - - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - -Help on function collect_stack_trace in module ida_dbg: - -collect_stack_trace(*args) - collect_stack_trace(tid, trace) -> bool - -Help on function continue_process in module ida_dbg: - -continue_process(*args) - continue_process() -> bool - - - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. - -Help on function create_source_viewer in module ida_dbg: - -create_source_viewer(*args) - create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - - - Create a source code view. - - - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) - -Help on function dbg_add_bpt_tev in module ida_dbg: - -dbg_add_bpt_tev(*args) - dbg_add_bpt_tev(tid, ea, bp) -> bool - - - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) - @return: false if the operation failed, true otherwise - -Help on function dbg_add_call_tev in module ida_dbg: - -dbg_add_call_tev(*args) - dbg_add_call_tev(tid, caller, callee) - - - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) - -Help on function dbg_add_debug_event in module ida_dbg: - -dbg_add_debug_event(*args) - dbg_add_debug_event(event) - - - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param event (C++: debug_event_t *) - -Help on function dbg_add_insn_tev in module ida_dbg: - -dbg_add_insn_tev(*args) - dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool - - - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) - @return: false if the operation failed, true otherwise - -Help on function dbg_add_many_tevs in module ida_dbg: - -dbg_add_many_tevs(*args) - dbg_add_many_tevs(new_tevs) -> bool - - - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object - -Help on function dbg_add_ret_tev in module ida_dbg: - -dbg_add_ret_tev(*args) - dbg_add_ret_tev(tid, ret_insn, return_to) - - - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) - -Help on function dbg_add_tev in module ida_dbg: - -dbg_add_tev(*args) - dbg_add_tev(type, tid, address) - - - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) - -Help on function dbg_add_thread in module ida_dbg: - -dbg_add_thread(*args) - dbg_add_thread(tid) - - - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param tid (C++: thid_t) - -Help on function dbg_bin_search in module ida_dbg: - -dbg_bin_search(*args) - dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str - -Help on function dbg_can_query in module ida_dbg: - -dbg_can_query(*args) - dbg_can_query() -> bool - - - This function can be used to check if the debugger can be queried: - - debugger is loaded - - process is suspended - - process is not suspended but can take requests. In this case some requests like - memory read/write, bpt management succeed and register querying will fail. - Check if idaapi.get_process_state() < 0 to tell if the process is suspended - @return: Boolean - -Help on function dbg_del_thread in module ida_dbg: - -dbg_del_thread(*args) - dbg_del_thread(tid) - - - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - -Help on function dbg_is_loaded in module ida_dbg: - -dbg_is_loaded(*args) - dbg_is_loaded() -> bool - - - Checks if a debugger is loaded - @return: Boolean - -Help on function define_exception in module ida_dbg: - -define_exception(*args) - define_exception(code, name, desc, flags) -> char const * - - - Convenience function: define new exception code. - - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds - -Help on function del_bpt in module ida_dbg: - -del_bpt(*args) - del_bpt(ea) -> bool - del_bpt(bptloc) -> bool - - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - -Help on function del_bptgrp in module ida_dbg: - -del_bptgrp(*args) - del_bptgrp(name) -> bool - -Help on function del_virt_module in module ida_dbg: - -del_virt_module(*args) - del_virt_module(base) -> bool - -Help on function detach_process in module ida_dbg: - -detach_process(*args) - detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } - -Help on function diff_trace_file in module ida_dbg: - -diff_trace_file(*args) - diff_trace_file(nonnul_filename) -> bool - - - Show difference between the current trace and the one from 'filename'. - -Help on function disable_bblk_trace in module ida_dbg: - -disable_bblk_trace(*args) - disable_bblk_trace() -> bool - -Help on function disable_bpt in module ida_dbg: - -disable_bpt(*args) - disable_bpt(ea) -> bool - disable_bpt(bptloc) -> bool - -Help on function disable_func_trace in module ida_dbg: - -disable_func_trace(*args) - disable_func_trace() -> bool - -Help on function disable_insn_trace in module ida_dbg: - -disable_insn_trace(*args) - disable_insn_trace() -> bool - -Help on function disable_step_trace in module ida_dbg: - -disable_step_trace(*args) - disable_step_trace() -> bool - -Help on function edit_manual_regions in module ida_dbg: - -edit_manual_regions(*args) - edit_manual_regions() - -Help on function enable_bblk_trace in module ida_dbg: - -enable_bblk_trace(*args) - enable_bblk_trace(enable=True) -> bool - -Help on function enable_bpt in module ida_dbg: - -enable_bpt(*args) - enable_bpt(ea, enable=True) -> bool - enable_bpt(bptloc, enable=True) -> bool - -Help on function enable_func_trace in module ida_dbg: - -enable_func_trace(*args) - enable_func_trace(enable=True) -> bool - -Help on function enable_insn_trace in module ida_dbg: - -enable_insn_trace(*args) - enable_insn_trace(enable=True) -> bool - -Help on function enable_manual_regions in module ida_dbg: - -enable_manual_regions(*args) - enable_manual_regions(enable) - -Help on function enable_step_trace in module ida_dbg: - -enable_step_trace(*args) - enable_step_trace(enable=True) -> bool - -Help on class eval_ctx_t in module ida_dbg: - -class eval_ctx_t(__builtin__.object) - | Proxy of C++ eval_ctx_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _ea) -> eval_ctx_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | eval_ctx_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_eval_ctx_t(self) - -Help on function exist_bpt in module ida_dbg: - -exist_bpt(*args) - exist_bpt(ea) -> bool - - - Does a breakpoint exist at the given location? - - - @param ea (C++: ea_t) - -Help on function exit_process in module ida_dbg: - -exit_process(*args) - exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } - -Help on function find_bpt in module ida_dbg: - -find_bpt(*args) - find_bpt(bptloc, bpt) -> bool - - - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) - -Help on function get_bblk_trace_options in module ida_dbg: - -get_bblk_trace_options(*args) - get_bblk_trace_options() -> int - - - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - -Help on function get_bpt in module ida_dbg: - -get_bpt(*args) - get_bpt(ea, bpt) -> bool - - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) - @return: false if no breakpoint exists - -Help on function get_bpt_group in module ida_dbg: - -get_bpt_group(*args) - get_bpt_group(bptloc) -> str - -Help on function get_bpt_qty in module ida_dbg: - -get_bpt_qty(*args) - get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - -Help on function get_bpt_tev_ea in module ida_dbg: - -get_bpt_tev_ea(*args) - get_bpt_tev_ea(n) -> ea_t - - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. - -Help on function get_bptloc_string in module ida_dbg: - -get_bptloc_string(*args) - get_bptloc_string(i) -> char const * - - - Helper function for 'bpt_location_t' . - - - @param i (C++: int) - -Help on function get_call_tev_callee in module ida_dbg: - -get_call_tev_callee(*args) - get_call_tev_callee(n) -> ea_t - - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. - -Help on function get_current_source_file in module ida_dbg: - -get_current_source_file(*args) - get_current_source_file(path) -> bool - -Help on function get_current_source_line in module ida_dbg: - -get_current_source_line(*args) - get_current_source_line() -> int - -Help on function get_current_thread in module ida_dbg: - -get_current_thread(*args) - get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_dbg_byte in module ida_dbg: - -get_dbg_byte(*args) - get_dbg_byte(x, ea) -> bool - - - Get one byte of the debugged process memory. - - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) - @return: true success - -Help on function get_dbg_memory_info in module ida_dbg: - -get_dbg_memory_info(*args) - get_dbg_memory_info(ranges) -> int - -Help on function get_dbg_reg_info in module ida_dbg: - -get_dbg_reg_info(*args) - get_dbg_reg_info(regname, ri) -> bool - - - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param regname (C++: const char *) - @param ri (C++: register_info_t *) - -Help on function get_debug_event in module ida_dbg: - -get_debug_event(*args) - get_debug_event() -> debug_event_t - - - Get the current debugger event. - -Help on function get_debugger_event_cond in module ida_dbg: - -get_debugger_event_cond(*args) - get_debugger_event_cond() -> char const * - -Help on function get_first_module in module ida_dbg: - -get_first_module(*args) - get_first_module(modinfo) -> bool - -Help on function get_func_trace_options in module ida_dbg: - -get_func_trace_options(*args) - get_func_trace_options() -> int - - - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} - -Help on function get_global_var in module ida_dbg: - -get_global_var(*args) - get_global_var(prov, ea, name, out) -> bool - -Help on function get_grp_bpts in module ida_dbg: - -get_grp_bpts(*args) - get_grp_bpts(bpts, grp_name) -> ssize_t - -Help on function get_insn_tev_reg_mem in module ida_dbg: - -get_insn_tev_reg_mem(*args) - get_insn_tev_reg_mem(n, memmap) -> bool - - - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) - @return: false if not an instruction event or no memory is available - -Help on function get_insn_tev_reg_result in module ida_dbg: - -get_insn_tev_reg_result(*args) - get_insn_tev_reg_result(n, regname, regval) -> bool - - - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. - -Help on function get_insn_tev_reg_val in module ida_dbg: - -get_insn_tev_reg_val(*args) - get_insn_tev_reg_val(n, regname, regval) -> bool - - - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. - -Help on function get_insn_trace_options in module ida_dbg: - -get_insn_trace_options(*args) - get_insn_trace_options() -> int - - - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - -Help on function get_ip_val in module ida_dbg: - -get_ip_val(*args) - get_ip_val() -> bool - - - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. - -Help on function get_local_var in module ida_dbg: - -get_local_var(*args) - get_local_var(prov, ea, name, out) -> bool - -Help on function get_local_vars in module ida_dbg: - -get_local_vars(*args) - get_local_vars(prov, ea, out) -> bool - -Help on function get_manual_regions in module ida_dbg: - -get_manual_regions(*args) - get_manual_regions(ranges) - get_manual_regions() -> PyObject * - - - Returns the manual memory regions - @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) - -Help on function get_module_info in module ida_dbg: - -get_module_info(*args) - get_module_info(ea, modinfo) -> bool - -Help on function get_next_module in module ida_dbg: - -get_next_module(*args) - get_next_module(modinfo) -> bool - -Help on function get_process_options in module ida_dbg: - -get_process_options(*args) - get_process_options(path, args, sdir, host, _pass, port) - - - Get process options. Any of the arguments may be NULL - - @param path (C++: qstring *) - @param args (C++: qstring *) - @param sdir (C++: qstring *) - @param host (C++: qstring *) - @param port (C++: int *) - -Help on function get_process_state in module ida_dbg: - -get_process_state(*args) - get_process_state() -> int - - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states - -Help on function get_processes in module ida_dbg: - -get_processes(*args) - get_processes(proclist) -> ssize_t - - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error - -Help on function get_reg_val in module ida_dbg: - -get_reg_val(*args) - get_reg_val(regname, regval) -> bool - get_reg_val(regname, ival) -> bool - get_reg_val(regname) -> PyObject * - - - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - @param regval (C++: regval_t *) - -Help on function get_reg_vals in module ida_dbg: - -get_reg_vals(*args) - get_reg_vals(tid, clsmask, values) -> int - -Help on function get_ret_tev_return in module ida_dbg: - -get_ret_tev_return(*args) - get_ret_tev_return(n) -> ea_t - - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. - -Help on function get_running_notification in module ida_dbg: - -get_running_notification(*args) - get_running_notification() -> dbg_notification_t - - - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - - @return: dbg_null if no running request - -Help on function get_running_request in module ida_dbg: - -get_running_request(*args) - get_running_request() -> ui_notification_t - - - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @return: ui_null if no running request - -Help on function get_sp_val in module ida_dbg: - -get_sp_val(*args) - get_sp_val() -> bool - - - Get value of the SP register for the current thread. Requires a - suspended debugger. - -Help on function get_srcinfo_provider in module ida_dbg: - -get_srcinfo_provider(*args) - get_srcinfo_provider(name) -> srcinfo_provider_t * - -Help on function get_step_trace_options in module ida_dbg: - -get_step_trace_options(*args) - get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @return: Step trace options - -Help on function get_tev_ea in module ida_dbg: - -get_tev_ea(*args) - get_tev_ea(n) -> ea_t - -Help on function get_tev_event in module ida_dbg: - -get_tev_event(*args) - get_tev_event(n, d) -> bool - - - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". - -Help on function get_tev_info in module ida_dbg: - -get_tev_info(*args) - get_tev_info(n, tev_info) -> bool - - - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) - @return: success - -Help on function get_tev_memory_info in module ida_dbg: - -get_tev_memory_info(*args) - get_tev_memory_info(n, mi) -> bool - - - Get the memory layout, if any, for the specified tev object. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". - -Help on function get_tev_qty in module ida_dbg: - -get_tev_qty(*args) - get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - -Help on function get_tev_reg_mem in module ida_dbg: - -get_tev_reg_mem(tev, idx) - -Help on function get_tev_reg_mem_ea in module ida_dbg: - -get_tev_reg_mem_ea(tev, idx) - -Help on function get_tev_reg_mem_qty in module ida_dbg: - -get_tev_reg_mem_qty(tev) - -Help on function get_tev_reg_val in module ida_dbg: - -get_tev_reg_val(tev, reg) - -Help on function get_tev_tid in module ida_dbg: - -get_tev_tid(*args) - get_tev_tid(n) -> int - -Help on function get_tev_type in module ida_dbg: - -get_tev_type(*args) - get_tev_type(n) -> int - -Help on function get_thread_qty in module ida_dbg: - -get_thread_qty(*args) - get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_trace_base_address in module ida_dbg: - -get_trace_base_address(*args) - get_trace_base_address() -> ea_t - - - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @return: the base address of the currently loaded trace - -Help on function get_trace_file_desc in module ida_dbg: - -get_trace_file_desc(*args) - get_trace_file_desc(filename) -> str - - - Get the file header of the specified trace file. - - - @param filename (C++: const char *) - -Help on function get_trace_platform in module ida_dbg: - -get_trace_platform(*args) - get_trace_platform() -> char const * - - - Get platform name of current trace. - -Help on function getn_bpt in module ida_dbg: - -getn_bpt(*args) - getn_bpt(n, bpt) -> bool - - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) - @return: false if no breakpoint exists - -Help on function getn_thread in module ida_dbg: - -getn_thread(*args) - getn_thread(n) -> thid_t - - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. - -Help on function getn_thread_name in module ida_dbg: - -getn_thread_name(*args) - getn_thread_name(n) -> char const * - - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. - -Help on function graph_trace in module ida_dbg: - -graph_trace(*args) - graph_trace() -> bool - - - Show the trace callgraph. - -Help on function handle_debug_event in module ida_dbg: - -handle_debug_event(*args) - handle_debug_event(ev, rqflags) -> int - -Help on function hide_all_bpts in module ida_dbg: - -hide_all_bpts(*args) - hide_all_bpts() -> int - -Help on function internal_get_sreg_base in module ida_dbg: - -internal_get_sreg_base(*args) - internal_get_sreg_base(tid, sreg_value) -> ea_t - - - Get the sreg base, for the given thread. - - @return: The sreg base, or BADADDR on failure. - -Help on function internal_ioctl in module ida_dbg: - -internal_ioctl(*args) - internal_ioctl(fn, buf, poutbuf, poutsize) -> int - -Help on function invalidate_dbg_state in module ida_dbg: - -invalidate_dbg_state(*args) - invalidate_dbg_state(dbginv) -> int - - - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) - -Help on function invalidate_dbgmem_config in module ida_dbg: - -invalidate_dbgmem_config(*args) - invalidate_dbgmem_config() - - - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) - -Help on function invalidate_dbgmem_contents in module ida_dbg: - -invalidate_dbgmem_contents(*args) - invalidate_dbgmem_contents(ea, size) - - - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - - @param ea (C++: ea_t) - @param size (C++: asize_t) - -Help on function is_bblk_trace_enabled in module ida_dbg: - -is_bblk_trace_enabled(*args) - is_bblk_trace_enabled() -> bool - -Help on function is_debugger_busy in module ida_dbg: - -is_debugger_busy(*args) - is_debugger_busy() -> bool - - - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger - -Help on function is_debugger_memory in module ida_dbg: - -is_debugger_memory(*args) - is_debugger_memory(ea) -> bool - - - Is the address mapped to debugger memory? - - - @param ea (C++: ea_t) - -Help on function is_debugger_on in module ida_dbg: - -is_debugger_on(*args) - is_debugger_on() -> bool - - - Is the debugger currently running? - -Help on function is_func_trace_enabled in module ida_dbg: - -is_func_trace_enabled(*args) - is_func_trace_enabled() -> bool - - - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - -Help on function is_insn_trace_enabled in module ida_dbg: - -is_insn_trace_enabled(*args) - is_insn_trace_enabled() -> bool - - - Get current state of instructions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - -Help on function is_reg_custom in module ida_dbg: - -is_reg_custom(*args) - is_reg_custom(regname) -> bool - - - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - -Help on function is_reg_float in module ida_dbg: - -is_reg_float(*args) - is_reg_float(regname) -> bool - - - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - -Help on function is_reg_integer in module ida_dbg: - -is_reg_integer(*args) - is_reg_integer(regname) -> bool - - - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - -Help on function is_request_running in module ida_dbg: - -is_request_running(*args) - is_request_running() -> bool - - - Is a request currently running? - -Help on function is_step_trace_enabled in module ida_dbg: - -is_step_trace_enabled(*args) - is_step_trace_enabled() -> bool - - - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - -Help on function is_valid_trace_file in module ida_dbg: - -is_valid_trace_file(*args) - is_valid_trace_file(filename) -> bool - - - Is the specified file a valid trace file for the current database? - - - @param filename (C++: const char *) - -Help on function list_bptgrps in module ida_dbg: - -list_bptgrps(*args) - list_bptgrps(bptgrps) -> size_t - list_bptgrps() -> PyObject * - -Help on function load_debugger in module ida_dbg: - -load_debugger(*args) - load_debugger(dbgname, use_remote) -> bool - -Help on function load_trace_file in module ida_dbg: - -load_trace_file(*args) - load_trace_file(filename) -> str - - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) - -Help on class memreg_info_t in module ida_dbg: - -class memreg_info_t(__builtin__.object) - | Proxy of C++ memreg_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> memreg_info_t - | - | __repr__ = _swig_repr(self) - | - | get_bytes(self, *args) - | get_bytes(self) -> PyObject * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bytes - | get_bytes(self) -> PyObject * - | - | ea - | memreg_info_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_memreg_info_t(self) - -Help on class memreg_infos_t in module ida_dbg: - -class memreg_infos_t(__builtin__.object) - | Proxy of C++ qvector< memreg_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> memreg_info_t - | - | __init__(self, *args) - | __init__(self) -> memreg_infos_t - | __init__(self, x) -> memreg_infos_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> memreg_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> memreg_info_t - | end(self) -> memreg_info_t - | - | erase(self, *args) - | erase(self, it) -> memreg_info_t - | erase(self, first, last) -> memreg_info_t - | - | extract(self, *args) - | extract(self) -> memreg_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=memreg_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> memreg_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> memreg_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_memreg_infos_t(self) - -Help on function move_bpt_to_grp in module ida_dbg: - -move_bpt_to_grp(*args) - move_bpt_to_grp(bpt, grp_name) - - - Sets new group for the breakpoint - -Help on function put_dbg_byte in module ida_dbg: - -put_dbg_byte(*args) - put_dbg_byte(ea, x) -> bool - - - Change one byte of the debugged process memory. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified - -Help on function read_dbg_memory in module ida_dbg: - -read_dbg_memory(*args) - read_dbg_memory(ea, buffer, size) -> ssize_t - -Help on function refresh_debugger_memory in module ida_dbg: - -refresh_debugger_memory(*args) - refresh_debugger_memory() -> PyObject * - - - Refreshes the debugger memory - @return: Nothing - -Help on function rename_bptgrp in module ida_dbg: - -rename_bptgrp(*args) - rename_bptgrp(old_name, new_name) -> bool - -Help on function request_add_bpt in module ida_dbg: - -request_add_bpt(*args) - request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - request_add_bpt(bpt) -> bool - - - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - - - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) - -Help on function request_attach_process in module ida_dbg: - -request_attach_process(*args) - request_attach_process(pid, event_id) -> int - - - Post an 'attach_process()' request. - - - @param pid (C++: pid_t) - @param event_id (C++: int) - -Help on function request_clear_trace in module ida_dbg: - -request_clear_trace(*args) - request_clear_trace() - - - Post a 'clear_trace()' request. - -Help on function request_continue_process in module ida_dbg: - -request_continue_process(*args) - request_continue_process() -> bool - - - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' - -Help on function request_del_bpt in module ida_dbg: - -request_del_bpt(*args) - request_del_bpt(ea) -> bool - request_del_bpt(bptloc) -> bool - - - Post a 'del_bpt(ea_t)' request. - - - @param ea (C++: ea_t) - -Help on function request_detach_process in module ida_dbg: - -request_detach_process(*args) - request_detach_process() -> bool - - - Post a 'detach_process()' request. - -Help on function request_disable_bblk_trace in module ida_dbg: - -request_disable_bblk_trace(*args) - request_disable_bblk_trace() -> bool - -Help on function request_disable_bpt in module ida_dbg: - -request_disable_bpt(*args) - request_disable_bpt(ea) -> bool - request_disable_bpt(bptloc) -> bool - -Help on function request_disable_func_trace in module ida_dbg: - -request_disable_func_trace(*args) - request_disable_func_trace() -> bool - -Help on function request_disable_insn_trace in module ida_dbg: - -request_disable_insn_trace(*args) - request_disable_insn_trace() -> bool - -Help on function request_disable_step_trace in module ida_dbg: - -request_disable_step_trace(*args) - request_disable_step_trace() -> bool - -Help on function request_enable_bblk_trace in module ida_dbg: - -request_enable_bblk_trace(*args) - request_enable_bblk_trace(enable=True) -> bool - -Help on function request_enable_bpt in module ida_dbg: - -request_enable_bpt(*args) - request_enable_bpt(ea, enable=True) -> bool - request_enable_bpt(bptloc, enable=True) -> bool - -Help on function request_enable_func_trace in module ida_dbg: - -request_enable_func_trace(*args) - request_enable_func_trace(enable=True) -> bool - -Help on function request_enable_insn_trace in module ida_dbg: - -request_enable_insn_trace(*args) - request_enable_insn_trace(enable=True) -> bool - -Help on function request_enable_step_trace in module ida_dbg: - -request_enable_step_trace(*args) - request_enable_step_trace(enable=True) -> bool - -Help on function request_exit_process in module ida_dbg: - -request_exit_process(*args) - request_exit_process() -> bool - - - Post an 'exit_process()' request. - -Help on function request_resume_thread in module ida_dbg: - -request_resume_thread(*args) - request_resume_thread(tid) -> int - - - Post a 'resume_thread()' request. - - - @param tid (C++: thid_t) - -Help on function request_run_to in module ida_dbg: - -request_run_to(*args) - request_run_to(ea, pid=pid_t(-1), tid=0) -> bool - - - Post a 'run_to()' request. - - - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) - -Help on function request_select_thread in module ida_dbg: - -request_select_thread(*args) - request_select_thread(tid) -> bool - - - Post a 'select_thread()' request. - - - @param tid (C++: thid_t) - -Help on function request_set_bblk_trace_options in module ida_dbg: - -request_set_bblk_trace_options(*args) - request_set_bblk_trace_options(options) - - - Post a 'set_bblk_trace_options()' request. - - - @param options (C++: int) - -Help on function request_set_func_trace_options in module ida_dbg: - -request_set_func_trace_options(*args) - request_set_func_trace_options(options) - - - Post a 'set_func_trace_options()' request. - - - @param options (C++: int) - -Help on function request_set_insn_trace_options in module ida_dbg: - -request_set_insn_trace_options(*args) - request_set_insn_trace_options(options) - - - Post a 'set_insn_trace_options()' request. - - - @param options (C++: int) - -Help on function request_set_reg_val in module ida_dbg: - -request_set_reg_val(*args) - request_set_reg_val(regname, o) -> PyObject * - - - Post a 'set_reg_val()' request. - - - @param regname (C++: const char *) - -Help on function request_set_resume_mode in module ida_dbg: - -request_set_resume_mode(*args) - request_set_resume_mode(tid, mode) -> bool - - - Post a 'set_resume_mode()' request. - - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) - -Help on function request_set_step_trace_options in module ida_dbg: - -request_set_step_trace_options(*args) - request_set_step_trace_options(options) - - - Post a 'set_step_trace_options()' request. - - - @param options (C++: int) - -Help on function request_start_process in module ida_dbg: - -request_start_process(*args) - request_start_process(path=None, args=None, sdir=None) -> int - - - Post a 'start_process()' request. - - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - -Help on function request_step_into in module ida_dbg: - -request_step_into(*args) - request_step_into() -> bool - - - Post a 'step_into()' request. - -Help on function request_step_over in module ida_dbg: - -request_step_over(*args) - request_step_over() -> bool - - - Post a 'step_over()' request. - -Help on function request_step_until_ret in module ida_dbg: - -request_step_until_ret(*args) - request_step_until_ret() -> bool - - - Post a 'step_until_ret()' request. - -Help on function request_suspend_process in module ida_dbg: - -request_suspend_process(*args) - request_suspend_process() -> bool - - - Post a 'suspend_process()' request. - -Help on function request_suspend_thread in module ida_dbg: - -request_suspend_thread(*args) - request_suspend_thread(tid) -> int - - - Post a 'suspend_thread()' request. - - - @param tid (C++: thid_t) - -Help on function resume_thread in module ida_dbg: - -resume_thread(*args) - resume_thread(tid) -> int - - - Resume thread. \sq{Type, Synchronous function - available as request, - Notification, none (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on function retrieve_exceptions in module ida_dbg: - -retrieve_exceptions(*args) - retrieve_exceptions() -> excvec_t - - - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited - -Help on function run_requests in module ida_dbg: - -run_requests(*args) - run_requests() -> bool - - - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. - - @return: false if not all requests could be processed (indicates an - asynchronous function was started) - -Help on function run_to in module ida_dbg: - -run_to(*args) - run_to(ea, pid=pid_t(-1), tid=0) -> bool - - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) - -Help on function save_trace_file in module ida_dbg: - -save_trace_file(*args) - save_trace_file(filename, description) -> bool - - - Save the current trace in the specified file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function select_thread in module ida_dbg: - -select_thread(*args) - select_thread(tid) -> bool - - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. - -Help on function send_dbg_command in module ida_dbg: - -send_dbg_command(command) - Send a direct command to the debugger backend, and - retrieve the result as a string. - - Note: any double-quotes in 'command' must be backslash-escaped. - Note: this only works with some debugger backends: Bochs, WinDbg, GDB. - - Returns: (True, ) on success, or (False, ) on failure - -Help on function set_bblk_trace_options in module ida_dbg: - -set_bblk_trace_options(*args) - set_bblk_trace_options(options) - - - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - - - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) - set_bpt_group(bpt, grp_name) - -Help on function set_bptloc_group in module ida_dbg: - -set_bptloc_group(*args) - set_bptloc_group(bptloc, grp_name) -> bool - -Help on function set_bptloc_string in module ida_dbg: - -set_bptloc_string(*args) - set_bptloc_string(s) -> int - - - Helper function for 'bpt_location_t' . - - - @param s (C++: const char *) - -Help on function set_debugger_event_cond in module ida_dbg: - -set_debugger_event_cond(*args) - set_debugger_event_cond(nonnul_cond) - -Help on function set_debugger_options in module ida_dbg: - -set_debugger_options(*args) - set_debugger_options(options) -> uint - - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - - @param options (C++: uint) - @return: the old debugger options - -Help on function set_func_trace_options in module ida_dbg: - -set_func_trace_options(*args) - set_func_trace_options(options) - - - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function set_highlight_trace_options in module ida_dbg: - -set_highlight_trace_options(*args) - set_highlight_trace_options(hilight, color, diff) - - - Set highlight trace parameters. - - - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) - -Help on function set_insn_trace_options in module ida_dbg: - -set_insn_trace_options(*args) - set_insn_trace_options(options) - - - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function set_manual_regions in module ida_dbg: - -set_manual_regions(*args) - set_manual_regions(ranges) - -Help on function set_process_options in module ida_dbg: - -set_process_options(*args) - set_process_options(path, args, sdir, host, _pass, port) - - - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - @param port (C++: int) - -Help on function set_process_state in module ida_dbg: - -set_process_state(*args) - set_process_state(newstate, p_thid, dbginv) -> int - - - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) - -Help on function set_reg_val in module ida_dbg: - -set_reg_val(*args) - set_reg_val(regname, o) -> PyObject - set_reg_val(tid, regidx, o) -> PyObject * - - - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} - - @param regname (C++: const char *) - -Help on function set_remote_debugger in module ida_dbg: - -set_remote_debugger(*args) - set_remote_debugger(host, _pass, port=-1) - - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) - -Help on function set_resume_mode in module ida_dbg: - -set_resume_mode(*args) - set_resume_mode(tid, mode) -> bool - - - How to resume the application. Set resume mode but do not resume - process. - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) - -Help on function set_step_trace_options in module ida_dbg: - -set_step_trace_options(*args) - set_step_trace_options(options) - - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function set_trace_base_address in module ida_dbg: - -set_trace_base_address(*args) - set_trace_base_address(ea) - - - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea (C++: ea_t) - -Help on function set_trace_file_desc in module ida_dbg: - -set_trace_file_desc(*args) - set_trace_file_desc(filename, description) -> bool - - - Change the description of the specified trace file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function set_trace_platform in module ida_dbg: - -set_trace_platform(*args) - set_trace_platform(platform) - - - Set platform name of current trace. - - - @param platform (C++: const char *) - -Help on function set_trace_size in module ida_dbg: - -set_trace_size(*args) - set_trace_size(size) -> bool - - - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) - -Help on function srcdbg_request_step_into in module ida_dbg: - -srcdbg_request_step_into(*args) - srcdbg_request_step_into() -> bool - -Help on function srcdbg_request_step_over in module ida_dbg: - -srcdbg_request_step_over(*args) - srcdbg_request_step_over() -> bool - -Help on function srcdbg_request_step_until_ret in module ida_dbg: - -srcdbg_request_step_until_ret(*args) - srcdbg_request_step_until_ret() -> bool - -Help on function srcdbg_step_into in module ida_dbg: - -srcdbg_step_into(*args) - srcdbg_step_into() -> bool - -Help on function srcdbg_step_over in module ida_dbg: - -srcdbg_step_over(*args) - srcdbg_step_over() -> bool - -Help on function srcdbg_step_until_ret in module ida_dbg: - -srcdbg_step_until_ret(*args) - srcdbg_step_until_ret() -> bool - -Help on function start_process in module ida_dbg: - -start_process(*args) - start_process(path=None, args=None, sdir=None) -> int - - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - -Help on function step_into in module ida_dbg: - -step_into(*args) - step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } - -Help on function step_over in module ida_dbg: - -step_over(*args) - step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } - -Help on function step_until_ret in module ida_dbg: - -step_until_ret(*args) - step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } - -Help on function store_exceptions in module ida_dbg: - -store_exceptions(*args) - store_exceptions() -> bool - - - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback - -Help on function suspend_process in module ida_dbg: - -suspend_process(*args) - suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. - -Help on function suspend_thread in module ida_dbg: - -suspend_thread(*args) - suspend_thread(tid) -> int - - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on class tev_info_reg_t in module ida_dbg: - -class tev_info_reg_t(__builtin__.object) - | Proxy of C++ tev_info_reg_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> tev_info_reg_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | info - | tev_info_reg_t_info_get(self) -> tev_info_t - | - | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tev_info_reg_t(self) - -Help on class tev_info_t in module ida_dbg: - -class tev_info_t(__builtin__.object) - | Proxy of C++ tev_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> tev_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | tev_info_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | tid - | tev_info_t_tid_get(self) -> thid_t - | - | type - | tev_info_t_type_get(self) -> tev_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tev_info_t(self) - -Help on class tev_reg_value_t in module ida_dbg: - -class tev_reg_value_t(__builtin__.object) - | Proxy of C++ tev_reg_value_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int - | - | thisown - | The membership flag - | - | value - | tev_reg_value_t_value_get(self) -> regval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tev_reg_value_t(self) - -Help on class tev_reg_values_t in module ida_dbg: - -class tev_reg_values_t(__builtin__.object) - | Proxy of C++ qvector< tev_reg_value_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> tev_reg_value_t - | - | __init__(self, *args) - | __init__(self) -> tev_reg_values_t - | __init__(self, x) -> tev_reg_values_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> tev_reg_value_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t - | - | erase(self, *args) - | erase(self, it) -> tev_reg_value_t - | erase(self, first, last) -> tev_reg_value_t - | - | extract(self, *args) - | extract(self) -> tev_reg_value_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=tev_reg_value_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> tev_reg_value_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> tev_reg_value_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tev_reg_values_t(self) - -Help on class tevinforeg_vec_t in module ida_dbg: - -class tevinforeg_vec_t(__builtin__.object) - | Proxy of C++ qvector< tev_info_reg_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> tev_info_reg_t - | - | __init__(self, *args) - | __init__(self) -> tevinforeg_vec_t - | __init__(self, x) -> tevinforeg_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> tev_info_reg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t - | - | erase(self, *args) - | erase(self, it) -> tev_info_reg_t - | erase(self, first, last) -> tev_info_reg_t - | - | extract(self, *args) - | extract(self) -> tev_info_reg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=tev_info_reg_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> tev_info_reg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> tev_info_reg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tevinforeg_vec_t(self) - -Help on function update_bpt in module ida_dbg: - -update_bpt(*args) - update_bpt(bpt) -> bool - - - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - - @param bpt (C++: const bpt_t *) - -Help on function wait_for_next_event in module ida_dbg: - -wait_for_next_event(*args) - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - - - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) - -Help on function write_dbg_memory in module ida_dbg: - -write_dbg_memory(*args) - write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t - -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -only after writing the bpt to the process. - -written to the process as a page bpt. is available -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: -""" - -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" - -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" - -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" - -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts -""" - -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" - -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" - -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" - -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" - -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -instruction tracing will log instructions whose IP doesn't change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds -""" -=== ida_dbg EPYDOC INJECTIONS END === -Help on function close_linput in module ida_diskio: - -close_linput(*args) - close_linput(li) - - - Close loader input. - - - @param li (C++: linput_t *) - -Help on function create_bytearray_linput in module ida_diskio: - -create_bytearray_linput(*args) - create_bytearray_linput(s) -> linput_t * - - - Trivial memory linput. - -Help on function create_generic_linput in module ida_diskio: - -create_generic_linput(*args) - create_generic_linput(gl) -> linput_t * - - - Create a generic linput - - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) - -Help on function create_memory_linput in module ida_diskio: - -create_memory_linput(*args) - create_memory_linput(start, size) -> linput_t * - - - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) - -Help on function eclose in module ida_diskio: - -eclose(*args) - eclose(fp) - -Help on function enumerate_files in module ida_diskio: - -enumerate_files(*args) - enumerate_files(path, fname, callback) -> PyObject * - - - Enumerate files in the specified directory while the callback returns 0. - @param path: directory to enumerate files in - @param fname: mask of file names to enumerate - @param callback: a callable object that takes the filename as - its first argument and it returns 0 to continue - enumeration or non-zero to stop enumeration. - @return: - None in case of script errors - tuple(code, fname) : If the callback returns non-zero - -Help on function fopenA in module ida_diskio: - -fopenA(*args) - fopenA(file) -> FILE * - - - Open a file for append in text mode, deny none. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenM in module ida_diskio: - -fopenM(*args) - fopenM(file) -> FILE * - - - Open a file for read/write in binary mode, deny write. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenRB in module ida_diskio: - -fopenRB(*args) - fopenRB(file) -> FILE * - - - Open a file for read in binary mode, deny none. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenRT in module ida_diskio: - -fopenRT(*args) - fopenRT(file) -> FILE * - - - Open a file for read in text mode, deny none. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenWB in module ida_diskio: - -fopenWB(*args) - fopenWB(file) -> FILE * - - - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenWT in module ida_diskio: - -fopenWT(*args) - fopenWT(file) -> FILE * - - - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - - @param file (C++: const char *) - @return: NULL if failure - -Help on class generic_linput_t in module ida_diskio: - -class generic_linput_t(__builtin__.object) - | Proxy of C++ generic_linput_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | read(self, *args) - | read(self, off, buffer, nbytes) -> ssize_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 - | - | filesize - | generic_linput_t_filesize_get(self) -> uint64 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_generic_linput_t(self) - -Help on function get_ida_subdirs in module ida_diskio: - -get_ida_subdirs(*args) - get_ida_subdirs(subdir, flags=0) -> int - - - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - - - [$IDAUSR/subdir (0..N entries)] - - $IDADIR/subdir - - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' - -Help on function get_linput_type in module ida_diskio: - -get_linput_type(*args) - get_linput_type(li) -> linput_type_t - - - Get linput type. - - - @param li (C++: linput_t *) - -Help on function get_special_folder in module ida_diskio: - -get_special_folder(*args) - get_special_folder(csidl) -> str - - - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - - @param csidl (C++: int) - -Help on function get_user_idadir in module ida_diskio: - -get_user_idadir(*args) - get_user_idadir() -> char const * - - - Get user ida related directory. - - - if $IDAUSR is defined: - - the first element in $IDAUSR - - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) - -Help on function getsysfile in module ida_diskio: - -getsysfile(*args) - getsysfile(filename, subdir) -> str - - - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. - -Help on function idadir in module ida_diskio: - -idadir(*args) - idadir(subdir) -> char const * - - - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - - @param subdir (C++: const char *) - -Help on function open_linput in module ida_diskio: - -open_linput(*args) - open_linput(file, remote) -> linput_t * - - - Open loader input. - - - @param file (C++: const char *) - @param remote (C++: bool) - -Help on function qlgetz in module ida_diskio: - -qlgetz(*args) - qlgetz(li, fpos) -> str - - - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - - @param li (C++: linput_t *) - @param fpos (C++: int64) - -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last -""" - -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" - -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === -Help on function add_entry in module ida_entry: - -add_entry(*args) - add_entry(ord, ea, name, makecode, flags=0) -> bool - - - Add an entry point to the list of entry points. - - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) - -Help on function get_entry in module ida_entry: - -get_entry(*args) - get_entry(ord) -> ea_t - - - Get entry point address by its ordinal - - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR - -Help on function get_entry_forwarder in module ida_entry: - -get_entry_forwarder(*args) - get_entry_forwarder(ord) -> str - - - Get forwarder name for the entry point by its ordinal. - - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry forwarder name or -1 - -Help on function get_entry_name in module ida_entry: - -get_entry_name(*args) - get_entry_name(ord) -> str - - - Get name of the entry point by its ordinal. - - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 - -Help on function get_entry_ordinal in module ida_entry: - -get_entry_ordinal(*args) - get_entry_ordinal(idx) -> uval_t - - - Get ordinal number of an entry point. - - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. - -Help on function get_entry_qty in module ida_entry: - -get_entry_qty(*args) - get_entry_qty() -> size_t - - - Get number of entry points. - -Help on function rename_entry in module ida_entry: - -rename_entry(*args) - rename_entry(ord, name, flags=0) -> bool - - - Rename entry point. - - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success - -Help on function set_entry_forwarder in module ida_entry: - -set_entry_forwarder(*args) - set_entry_forwarder(ord, name, flags=0) -> bool - - - Set forwarder name for ordinal. - - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success - -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY -""" - -ida_entry.AEF_NODUMMY -""" -it begins with a dummy suffix. See also AEF_IDBENC - -automatically prepend the name with '_' if -""" - -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === -Help on function add_enum in module ida_enum: - -add_enum(*args) - add_enum(idx, name, flag) -> enum_t - - - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) - -Help on function add_enum_member in module ida_enum: - -add_enum_member(*args) - add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - - - Add member to enum type. - - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes - -Help on function del_enum in module ida_enum: - -del_enum(*args) - del_enum(id) - - - Delete an enum type. - - - @param id (C++: enum_t) - -Help on function del_enum_member in module ida_enum: - -del_enum_member(*args) - del_enum_member(id, value, serial, bmask) -> bool - - - Delete member of enum type. - - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) - -Help on class enum_member_visitor_t in module ida_enum: - -class enum_member_visitor_t(__builtin__.object) - | Proxy of C++ enum_member_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> enum_member_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_enum_member(self, *args) - | visit_enum_member(self, cid, value) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_enum_member_visitor_t(self) - -Help on function for_all_enum_members in module ida_enum: - -for_all_enum_members(*args) - for_all_enum_members(id, cv) -> int - - - Visit all members of a given enum. - - - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) - -Help on function get_bmask_cmt in module ida_enum: - -get_bmask_cmt(*args) - get_bmask_cmt(id, bmask, repeatable) -> str - -Help on function get_bmask_name in module ida_enum: - -get_bmask_name(*args) - get_bmask_name(id, bmask) -> str - -Help on function get_enum in module ida_enum: - -get_enum(*args) - get_enum(name) -> enum_t - - - Get enum by name. - - - @param name (C++: const char *) - -Help on function get_enum_cmt in module ida_enum: - -get_enum_cmt(*args) - get_enum_cmt(id, repeatable) -> str - - - Get enum comment. - - - @param id (C++: enum_t) - @param repeatable (C++: bool) - -Help on function get_enum_flag in module ida_enum: - -get_enum_flag(*args) - get_enum_flag(id) -> flags_t - - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) - -Help on function get_enum_idx in module ida_enum: - -get_enum_idx(*args) - get_enum_idx(id) -> uval_t - - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) - -Help on function get_enum_member in module ida_enum: - -get_enum_member(*args) - get_enum_member(id, value, serial, mask) -> const_t - - - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) - -Help on function get_enum_member_bmask in module ida_enum: - -get_enum_member_bmask(*args) - get_enum_member_bmask(id) -> bmask_t - - - Get bitmask of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_by_name in module ida_enum: - -get_enum_member_by_name(*args) - get_enum_member_by_name(name) -> const_t - - - Get a reference to an enum member by its name. - - - @param name (C++: const char *) - -Help on function get_enum_member_cmt in module ida_enum: - -get_enum_member_cmt(*args) - get_enum_member_cmt(id, repeatable) -> str - - - Get enum member's comment. - - - @param id (C++: const_t) - @param repeatable (C++: bool) - -Help on function get_enum_member_enum in module ida_enum: - -get_enum_member_enum(*args) - get_enum_member_enum(id) -> enum_t - - - Get the parent enum of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_name in module ida_enum: - -get_enum_member_name(*args) - get_enum_member_name(id) -> str - - - Get name of an enum member by const_t. - - - @param id (C++: const_t) - -Help on function get_enum_member_serial in module ida_enum: - -get_enum_member_serial(*args) - get_enum_member_serial(cid) -> uchar - - - Get serial number of an enum member. - - - @param cid (C++: const_t) - -Help on function get_enum_member_value in module ida_enum: - -get_enum_member_value(*args) - get_enum_member_value(id) -> uval_t - - - Get value of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_name in module ida_enum: - -get_enum_name(*args) - get_enum_name(id) -> str - - - Get name of enum. - - - @param id (C++: enum_t) - -Help on function get_enum_name2 in module ida_enum: - -get_enum_name2(*args) - get_enum_name2(id, flags=0) -> str - - - Get name of enum - - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) - -Help on function get_enum_qty in module ida_enum: - -get_enum_qty(*args) - get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. - -Help on function get_enum_size in module ida_enum: - -get_enum_size(*args) - get_enum_size(id) -> size_t - - - Get the number of the members of the enum. - - - @param id (C++: enum_t) - -Help on function get_enum_type_ordinal in module ida_enum: - -get_enum_type_ordinal(*args) - get_enum_type_ordinal(id) -> int32 - - - Get corresponding type ordinal number. - - - @param id (C++: enum_t) - -Help on function get_enum_width in module ida_enum: - -get_enum_width(*args) - get_enum_width(id) -> size_t - - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) - -Help on function get_first_bmask in module ida_enum: - -get_first_bmask(*args) - get_first_bmask(id) -> bmask_t - - - Get first bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK - -Help on function get_first_enum_member in module ida_enum: - -get_first_enum_member(*args) - get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_first_serial_enum_member in module ida_enum: - -get_first_serial_enum_member(*args) - get_first_serial_enum_member(id, value, bmask) -> const_t - -Help on function get_last_bmask in module ida_enum: - -get_last_bmask(*args) - get_last_bmask(id) -> bmask_t - - - Get last bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK - -Help on function get_last_enum_member in module ida_enum: - -get_last_enum_member(*args) - get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_last_serial_enum_member in module ida_enum: - -get_last_serial_enum_member(*args) - get_last_serial_enum_member(id, value, bmask) -> const_t - -Help on function get_next_bmask in module ida_enum: - -get_next_bmask(*args) - get_next_bmask(id, bmask) -> bmask_t - - - Get next bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK - -Help on function get_next_enum_member in module ida_enum: - -get_next_enum_member(*args) - get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_next_serial_enum_member in module ida_enum: - -get_next_serial_enum_member(*args) - get_next_serial_enum_member(in_out_serial, first_cid) -> const_t - -Help on function get_prev_bmask in module ida_enum: - -get_prev_bmask(*args) - get_prev_bmask(id, bmask) -> bmask_t - - - Get prev bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK - -Help on function get_prev_enum_member in module ida_enum: - -get_prev_enum_member(*args) - get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_prev_serial_enum_member in module ida_enum: - -get_prev_serial_enum_member(*args) - get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t - -Help on function getn_enum in module ida_enum: - -getn_enum(*args) - getn_enum(n) -> enum_t - - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) - -Help on function is_bf in module ida_enum: - -is_bf(*args) - is_bf(id) -> bool - - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) - -Help on function is_enum_fromtil in module ida_enum: - -is_enum_fromtil(*args) - is_enum_fromtil(id) -> bool - - - Does enum come from type library? - - - @param id (C++: enum_t) - -Help on function is_enum_hidden in module ida_enum: - -is_enum_hidden(*args) - is_enum_hidden(id) -> bool - - - Is enum collapsed? - - - @param id (C++: enum_t) - -Help on function is_ghost_enum in module ida_enum: - -is_ghost_enum(*args) - is_ghost_enum(id) -> bool - - - Is a ghost copy of a local type? - - - @param id (C++: enum_t) - -Help on function is_one_bit_mask in module ida_enum: - -is_one_bit_mask(*args) - is_one_bit_mask(mask) -> bool - - - Is bitmask one bit? - - - @param mask (C++: bmask_t) - -Help on function set_bmask_cmt in module ida_enum: - -set_bmask_cmt(*args) - set_bmask_cmt(id, bmask, cmt, repeatable) -> bool - -Help on function set_bmask_name in module ida_enum: - -set_bmask_name(*args) - set_bmask_name(id, bmask, name) -> bool - -Help on function set_enum_bf in module ida_enum: - -set_enum_bf(*args) - set_enum_bf(id, bf) -> bool - - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - - @param id (C++: enum_t) - @param bf (C++: bool) - -Help on function set_enum_cmt in module ida_enum: - -set_enum_cmt(*args) - set_enum_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum type. - - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_flag in module ida_enum: - -set_enum_flag(*args) - set_enum_flag(id, flag) -> bool - - - Set data representation flags. - - - @param id (C++: enum_t) - @param flag (C++: flags_t) - -Help on function set_enum_fromtil in module ida_enum: - -set_enum_fromtil(*args) - set_enum_fromtil(id, fromtil) -> bool - - - Specify that enum comes from a type library. - - - @param id (C++: enum_t) - @param fromtil (C++: bool) - -Help on function set_enum_ghost in module ida_enum: - -set_enum_ghost(*args) - set_enum_ghost(id, ghost) -> bool - - - Specify that enum is a ghost copy of a local type. - - - @param id (C++: enum_t) - @param ghost (C++: bool) - -Help on function set_enum_hidden in module ida_enum: - -set_enum_hidden(*args) - set_enum_hidden(id, hidden) -> bool - - - Collapse enum. - - - @param id (C++: enum_t) - @param hidden (C++: bool) - -Help on function set_enum_idx in module ida_enum: - -set_enum_idx(*args) - set_enum_idx(id, idx) -> bool - - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) - -Help on function set_enum_member_cmt in module ida_enum: - -set_enum_member_cmt(*args) - set_enum_member_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum member. - - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_member_name in module ida_enum: - -set_enum_member_name(*args) - set_enum_member_name(id, name) -> bool - - - Set name of enum member. - - - @param id (C++: const_t) - @param name (C++: const char *) - -Help on function set_enum_name in module ida_enum: - -set_enum_name(*args) - set_enum_name(id, name) -> bool - - - Set name of enum type. - - - @param id (C++: enum_t) - @param name (C++: const char *) - -Help on function set_enum_type_ordinal in module ida_enum: - -set_enum_type_ordinal(*args) - set_enum_type_ordinal(id, ord) - - - Set corresponding type ordinal number. - - - @param id (C++: enum_t) - @param ord (C++: int32) - -Help on function set_enum_width in module ida_enum: - -set_enum_width(*args) - set_enum_width(id, width) -> bool - - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) - -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask -""" - -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === -Help on class _IdcFunction in module ida_expr: - -class _IdcFunction(__builtin__.object) - | Internal class that calls pyw_call_idc_func() with a context - | - | Methods defined here: - | - | __call__(self, args, res) - | - | __init__(self, ctxptr) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fp_ptr - -Help on function add_idc_class in module ida_expr: - -add_idc_class(*args) - add_idc_class(name, super=None) -> idc_class_t * - - - Create a new IDC class. - - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. - -Help on function add_idc_func in module ida_expr: - -add_idc_func(name, fp, args, defvals=None, flags=0) - Extends the IDC language by exposing a new IDC function that is backed up by a Python function - - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param flags: IDC function flags. A combination of EXTFUN_XXX constants - - @return: Boolean - - - Add an IDC function. This function does not modify the predefined - kernel functions. Example: - - static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) - { - msg("myfunc is called with arg0=%a and arg1=%s - ", argv[0].num, argv[1].str); - res->num = 5; // let's return 5 - return eOk; - } - static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; - static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, NULL, 0, EXTFUN_BASE }; - - // after this: - add_idc_func(myfunc_desc); - - // there is a new IDC function which can be called like this: - MyFunc5(0x123, "test"); - - If the function already exists, it will be replaced by the new - function - - @return: success - -Help on function add_idc_gvar in module ida_expr: - -add_idc_gvar(*args) - add_idc_gvar(name) -> idc_value_t - - - Add global IDC variable. - - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. - -Help on function compile_idc_file in module ida_expr: - -compile_idc_file(*args) - compile_idc_file(nonnul_line) -> str - -Help on function compile_idc_snippet in module ida_expr: - -compile_idc_snippet(*args) - compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - - - Compile text with IDC statements. - - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) - -Help on function compile_idc_text in module ida_expr: - -compile_idc_text(*args) - compile_idc_text(nonnul_line) -> str - -Help on function copy_idcv in module ida_expr: - -copy_idcv(*args) - copy_idcv(dst, src) -> error_t - - - Copy 'src' to 'dst'. For idc objects only a reference is copied. - - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) - -Help on function create_idcv_ref in module ida_expr: - -create_idcv_ref(*args) - create_idcv_ref(ref, v) -> bool - - - Create a variable reference. Currently only references to global - variables can be created. - - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) - @return: success - -Help on function deep_copy_idcv in module ida_expr: - -deep_copy_idcv(*args) - deep_copy_idcv(dst, src) -> error_t - - - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) - -Help on function del_idc_func in module ida_expr: - -del_idc_func(name) - Unregisters the specified IDC function - - @param name: IDC function name to unregister - - @return: Boolean - - - Delete an IDC function - -Help on function del_idcv_attr in module ida_expr: - -del_idcv_attr(*args) - del_idcv_attr(obj, attr) -> error_t - - - Delete an object attribute. - - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) - @return: error code, eOk on success - -Help on function deref_idcv in module ida_expr: - -deref_idcv(*args) - deref_idcv(v, vref_flags) -> idc_value_t - - - Dereference a 'VT_REF' variable. - - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, - qerrno is set to eExecBadRef "Illegal variable reference" - -Help on function eval_expr in module ida_expr: - -eval_expr(*args) - eval_expr(rv, where, line) -> str - - - Compile and calculate an expression. - - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) - -Help on function eval_idc_expr in module ida_expr: - -eval_idc_expr(*args) - eval_idc_expr(rv, where, line) -> str - - - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) - -Help on function exec_idc_script in module ida_expr: - -exec_idc_script(*args) - exec_idc_script(result, path, func, args, argsnum) -> str - - - Compile and execute IDC function(s) from file. - - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) - -Help on function exec_system_script in module ida_expr: - -exec_system_script(*args) - exec_system_script(file, complain_if_no_file=True) -> bool - - - Compile and execute "main" function from system file. - - @param file: file name with IDC function(s). The file will be searched - in the idc subdir of ida (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) - -Help on function find_idc_class in module ida_expr: - -find_idc_class(*args) - find_idc_class(name) -> idc_class_t * - - - Find an existing IDC class by its name. - - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() - -Help on function find_idc_func in module ida_expr: - -find_idc_func(*args) - find_idc_func(prefix, n=0) -> str - -Help on function find_idc_gvar in module ida_expr: - -find_idc_gvar(*args) - find_idc_gvar(name) -> idc_value_t - - - Find an existing global IDC variable by its name. - - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner - -Help on function first_idcv_attr in module ida_expr: - -first_idcv_attr(*args) - first_idcv_attr(obj) -> char const * - -Help on function free_idcv in module ida_expr: - -free_idcv(*args) - free_idcv(v) - - - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - - @param v (C++: idc_value_t *) - -Help on function get_idc_filename in module ida_expr: - -get_idc_filename(*args) - get_idc_filename(file) -> str - - - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and the current directory. - - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf - -Help on function get_idcv_attr in module ida_expr: - -get_idcv_attr(*args) - get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - - - Get an object attribute. - - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) - @return: error code, eOk on success - -Help on function get_idcv_class_name in module ida_expr: - -get_idcv_class_name(*args) - get_idcv_class_name(obj) -> str - - - Retrieves the IDC object class name. - - @param obj: class instance variable (C++: const idc_value_t *) - @return: error code, eOk on success - -Help on function get_idcv_slice in module ida_expr: - -get_idcv_slice(*args) - get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - - - Get slice. - - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk if success - -Help on class highlighter_cbs_t in module ida_expr: - -class highlighter_cbs_t(__builtin__.object) - | Proxy of C++ highlighter_cbs_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> highlighter_cbs_t - | - | __repr__ = _swig_repr(self) - | - | cur_block_state(self, *args) - | cur_block_state(self) -> int32 - | - | prev_block_state(self, *args) - | prev_block_state(self) -> int32 - | - | set_block_state(self, *args) - | set_block_state(self, arg0) - | - | set_style(self, *args) - | set_style(self, arg0, arg1, arg2) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_highlighter_cbs_t(self) - -Help on class idc_global_t in module ida_expr: - -class idc_global_t(__builtin__.object) - | Proxy of C++ idc_global_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> idc_global_t - | __init__(self, n) -> idc_global_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | idc_global_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | value - | idc_global_t_value_get(self) -> idc_value_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_idc_global_t(self) - -Help on class idc_value_t in module ida_expr: - -class idc_value_t(__builtin__.object) - | Proxy of C++ idc_value_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, n=0) -> idc_value_t - | __init__(self, r) -> idc_value_t - | __init__(self, _str) -> idc_value_t - | - | __repr__ = _swig_repr(self) - | - | _create_empty_string(self, *args) - | _create_empty_string(self) - | - | _idc_value_t__get_e = __get_e(self, *args) - | __get_e(self) -> wrapped_array_t< ushort,6 > - | - | c_str(self, *args) - | c_str(self) -> char const * - | - | clear(self, *args) - | clear(self) - | - | create_empty_string(self, *args) - | create_empty_string(self) - | - | is_convertible(self, *args) - | is_convertible(self) -> bool - | - | is_integral(self, *args) - | is_integral(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | qstr(self, *args) - | qstr(self) -> qstring - | qstr(self) -> qstring const & - | - | set_float(self, *args) - | set_float(self, f) - | - | set_int64(self, *args) - | set_int64(self, v) - | - | set_long(self, *args) - | set_long(self, v) - | - | set_pvoid(self, *args) - | set_pvoid(self, p) - | - | set_string(self, *args) - | set_string(self, _str, len) - | set_string(self, _str) - | - | swap(self, *args) - | swap(self, v) - | - | u_str(self, *args) - | u_str(self) -> uchar const * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | e - | __get_e(self) -> wrapped_array_t< ushort,6 > - | - | funcidx - | idc_value_t_funcidx_get(self) -> int - | - | i64 - | idc_value_t_i64_get(self) -> int64 - | - | num - | idc_value_t_num_get(self) -> sval_t - | - | obj - | idc_value_t_obj_get(self) -> idc_object_t * - | - | pvoid - | idc_value_t_pvoid_get(self) -> void * - | - | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] - | - | str - | - | thisown - | The membership flag - | - | vtype - | idc_value_t_vtype_get(self) -> char - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_idc_value_t(self) - -Help on class idc_values_t in module ida_expr: - -class idc_values_t(__builtin__.object) - | Proxy of C++ qvector< idc_value_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> idc_value_t - | - | __init__(self, *args) - | __init__(self) -> idc_values_t - | __init__(self, x) -> idc_values_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> idc_value_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> idc_value_t - | begin(self) -> idc_value_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> idc_value_t - | end(self) -> idc_value_t - | - | erase(self, *args) - | erase(self, it) -> idc_value_t - | erase(self, first, last) -> idc_value_t - | - | extract(self, *args) - | extract(self) -> idc_value_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=idc_value_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> idc_value_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> idc_value_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_idc_values_t(self) - -Help on function idcv_float in module ida_expr: - -idcv_float(*args) - idcv_float(v) -> error_t - - - Convert IDC variable to a floating point. - - - @param v (C++: idc_value_t *) - -Help on function idcv_int64 in module ida_expr: - -idcv_int64(*args) - idcv_int64(v) -> error_t - - - Convert IDC variable to a 64bit number. - - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to int64 - -Help on function idcv_long in module ida_expr: - -idcv_long(*args) - idcv_long(v) -> error_t - - - Convert IDC variable to a long (32/64bit) number. - - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to long - -Help on function idcv_num in module ida_expr: - -idcv_num(*args) - idcv_num(v) -> error_t - - - Convert IDC variable to a long number. - - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string - -Help on function idcv_object in module ida_expr: - -idcv_object(*args) - idcv_object(v, icls=None) -> error_t - - - Create an IDC object. The original value of 'v' is discarded (freed). - - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) - @return: always eOk - -Help on function idcv_string in module ida_expr: - -idcv_string(*args) - idcv_string(v) -> error_t - - - Convert IDC variable to a text string. - - - @param v (C++: idc_value_t *) - -Help on function last_idcv_attr in module ida_expr: - -last_idcv_attr(*args) - last_idcv_attr(obj) -> char const * - -Help on function move_idcv in module ida_expr: - -move_idcv(*args) - move_idcv(dst, src) -> error_t - - - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) - -Help on function next_idcv_attr in module ida_expr: - -next_idcv_attr(*args) - next_idcv_attr(obj, attr) -> char const * - -Help on function prev_idcv_attr in module ida_expr: - -prev_idcv_attr(*args) - prev_idcv_attr(obj, attr) -> char const * - -Help on function print_idcv in module ida_expr: - -print_idcv(*args) - print_idcv(v, name=None, indent=0) -> str - - - Get text representation of 'idc_value_t' . - - - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) - -Help on function py_add_idc_func in module ida_expr: - -py_add_idc_func(*args) - py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool - -Help on function py_get_call_idc_func in module ida_expr: - -py_get_call_idc_func(*args) - py_get_call_idc_func() -> size_t - -Help on function pyw_convert_defvals in module ida_expr: - -pyw_convert_defvals(*args) - pyw_convert_defvals(out, py_seq) -> bool - -Help on function pyw_register_idc_func in module ida_expr: - -pyw_register_idc_func(*args) - pyw_register_idc_func(name, args, py_fp) -> size_t - -Help on function pyw_unregister_idc_func in module ida_expr: - -pyw_unregister_idc_func(*args) - pyw_unregister_idc_func(ctxptr) -> bool - -Help on function set_header_path in module ida_expr: - -set_header_path(*args) - set_header_path(path, add) -> bool - - - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) - -Help on function set_idcv_attr in module ida_expr: - -set_idcv_attr(*args) - set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - - - Set an object attribute. - - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) - @return: error code, eOk on success - -Help on function set_idcv_slice in module ida_expr: - -set_idcv_slice(*args) - set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - - - Set slice. - - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk on success - -Help on function swap_idcvs in module ida_expr: - -swap_idcvs(*args) - swap_idcvs(v1, v2) - - - Swap 2 variables. - - - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) - -Help on function throw_idc_exception in module ida_expr: - -throw_idc_exception(*args) - throw_idc_exception(r, desc) -> error_t - - - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow - -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation -""" - -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" - -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === -Help on function calc_fixup_size in module ida_fixup: - -calc_fixup_size(*args) - calc_fixup_size(type) -> int - - - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - - @param type (C++: fixup_type_t) - -Help on function contains_fixups in module ida_fixup: - -contains_fixups(*args) - contains_fixups(ea, size) -> bool - - - Does the specified address range contain any fixup information? - - - @param ea (C++: ea_t) - @param size (C++: asize_t) - -Help on function del_fixup in module ida_fixup: - -del_fixup(*args) - del_fixup(source) - - - Delete fixup information. - - - @param source (C++: ea_t) - -Help on function exists_fixup in module ida_fixup: - -exists_fixup(*args) - exists_fixup(source) -> bool - - - Check that a fixup exists at the given address. - - - @param source (C++: ea_t) - -Help on function find_custom_fixup in module ida_fixup: - -find_custom_fixup(*args) - find_custom_fixup(name) -> fixup_type_t - - - Get id of a custom fixup handler. - - @param name: name of the custom fixup handler (C++: const char *) - @return: id with FIXUP_CUSTOM bit set or 0 - -Help on class fixup_data_t in module ida_fixup: - -class fixup_data_t(__builtin__.object) - | Proxy of C++ fixup_data_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> fixup_data_t - | __init__(self, type_, flags_=0) -> fixup_data_t - | - | __repr__ = _swig_repr(self) - | - | calc_size(self, *args) - | calc_size(self) -> int - | - | clr_extdef(self, *args) - | clr_extdef(self) - | - | clr_unused(self, *args) - | clr_unused(self) - | - | get(self, *args) - | get(self, source) -> bool - | - | get_base(self, *args) - | get_base(self) -> ea_t - | - | get_desc(self, *args) - | get_desc(self, source) -> char const * - | - | get_flags(self, *args) - | get_flags(self) -> uint32 - | - | get_handler(self, *args) - | get_handler(self) -> fixup_handler_t const * - | - | get_type(self, *args) - | get_type(self) -> fixup_type_t - | - | get_value(self, *args) - | get_value(self, ea) -> uval_t - | - | has_base(self, *args) - | has_base(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_extdef(self, *args) - | is_extdef(self) -> bool - | - | is_unused(self, *args) - | is_unused(self) -> bool - | - | patch_value(self, *args) - | patch_value(self, ea) -> bool - | - | set(self, *args) - | set(self, source) - | - | set_base(self, *args) - | set_base(self, new_base) - | - | set_extdef(self, *args) - | set_extdef(self) - | - | set_sel(self, *args) - | set_sel(self, seg) - | - | set_target_sel(self, *args) - | set_target_sel(self) - | - | set_type(self, *args) - | set_type(self, type_) - | - | set_type_and_flags(self, *args) - | set_type_and_flags(self, type_, flags_=0) - | - | set_unused(self, *args) - | set_unused(self) - | - | was_created(self, *args) - | was_created(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | displacement - | fixup_data_t_displacement_get(self) -> adiff_t - | - | off - | fixup_data_t_off_get(self) -> ea_t - | - | sel - | fixup_data_t_sel_get(self) -> sel_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_fixup_data_t(self) - -Help on class fixup_info_t in module ida_fixup: - -class fixup_info_t(__builtin__.object) - | Proxy of C++ fixup_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> fixup_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | fixup_info_t_ea_get(self) -> ea_t - | - | fd - | fixup_info_t_fd_get(self) -> fixup_data_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_fixup_info_t(self) - -Help on function gen_fix_fixups in module ida_fixup: - -gen_fix_fixups(*args) - gen_fix_fixups(_from, to, size) - - - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) - -Help on function get_first_fixup_ea in module ida_fixup: - -get_first_fixup_ea(*args) - get_first_fixup_ea() -> ea_t - - - Get the first address with fixup information - - @return: the first address with fixup information, or BADADDR - -Help on function get_fixup in module ida_fixup: - -get_fixup(*args) - get_fixup(fd, source) -> bool - - - Get fixup information. - - - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) - -Help on function get_fixup_desc in module ida_fixup: - -get_fixup_desc(*args) - get_fixup_desc(source, fd) -> str - - - Get FIXUP description comment. - - - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) - -Help on function get_fixup_handler in module ida_fixup: - -get_fixup_handler(*args) - get_fixup_handler(type) -> fixup_handler_t const * - - - Get handler of standard or custom fixup. - - - @param type (C++: fixup_type_t) - -Help on function get_fixup_value in module ida_fixup: - -get_fixup_value(*args) - get_fixup_value(ea, type) -> uval_t - - - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) - -Help on function get_fixups in module ida_fixup: - -get_fixups(*args) - get_fixups(out, ea, size) -> bool - -Help on function get_next_fixup_ea in module ida_fixup: - -get_next_fixup_ea(*args) - get_next_fixup_ea(ea) -> ea_t - - - Find next address with fixup information - - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR - -Help on function get_prev_fixup_ea in module ida_fixup: - -get_prev_fixup_ea(*args) - get_prev_fixup_ea(ea) -> ea_t - - - Find previous address with fixup information - - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR - -Help on function is_fixup_custom in module ida_fixup: - -is_fixup_custom(*args) - is_fixup_custom(type) -> bool - - - Is fixup processed by processor module? - - - @param type (C++: fixup_type_t) - -Help on function patch_fixup_value in module ida_fixup: - -patch_fixup_value(*args) - patch_fixup_value(ea, fd) -> bool - - - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) - -Help on function set_fixup in module ida_fixup: - -set_fixup(*args) - set_fixup(source, fd) - - - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) - -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file -""" - -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" - -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" - -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" - -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === -Help on class qfile_t in module ida_fpro: - -class qfile_t(__builtin__.object) - | Proxy of C++ qfile_t class. - | - | - | A helper class to work with FILE related functions. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, rhs) -> qfile_t - | __init__(self, pycapsule=None) -> qfile_t - | - | - | Closes the file - | - | __repr__ = _swig_repr(self) - | - | close(self, *args) - | close(self) - | - | filename(self, *args) - | filename(self) -> PyObject * - | - | flush(self, *args) - | flush(self) -> int - | - | - | Reads a single byte from the file. Returns None if EOF or the read byte - | - | get_char(self, *args) - | get_char(self) -> PyObject * - | - | get_fp(self, *args) - | get_fp(self) -> FILE * - | - | gets(self, *args) - | gets(self, size) -> PyObject * - | - | - | Reads a line from the input file. Returns the read line or None - | - | open(self, *args) - | open(self, filename, mode) -> bool - | - | - | Opens a file - | - | @param filename: the file name - | @param mode: The mode string, ala fopen() style - | @return: Boolean - | - | opened(self, *args) - | opened(self) -> bool - | - | - | Checks if the file is opened or not - | - | put_char(self, *args) - | put_char(self, chr) -> int - | - | puts(self, *args) - | puts(self, str) -> int - | - | read(self, *args) - | read(self, size) -> PyObject * - | - | - | Reads from the file. Returns the buffer or None - | - | readbytes(self, *args) - | readbytes(self, size, big_endian) -> PyObject * - | - | - | Similar to read() but it respect the endianness - | - | seek(self, *args) - | seek(self, offset, whence=SEEK_SET) -> int - | - | - | Set input source position - | @return: the new position (not 0 as fseek!) - | - | size(self, *args) - | size(self) -> int64 - | - | tell(self, *args) - | tell(self) -> int64 - | - | - | Returns the current position - | - | write(self, *args) - | write(self, py_buf) -> int - | - | - | Writes to the file. Returns 0 or the number of bytes written - | - | writebytes(self, *args) - | writebytes(self, py_buf, big_endian) -> int - | - | - | Similar to write() but it respect the endianness - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | from_capsule(*args) - | from_capsule(pycapsule) -> qfile_t - | - | from_fp(*args) - | from_fp(fp) -> qfile_t - | - | tmpfile(*args) - | tmpfile() -> qfile_t - | - | - | A static method to construct an instance using a temporary file - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qfile_t(self) - -Help on function qfile_t_from_capsule in module ida_fpro: - -qfile_t_from_capsule(*args) - qfile_t_from_capsule(pycapsule) -> qfile_t - -Help on function qfile_t_from_fp in module ida_fpro: - -qfile_t_from_fp(*args) - qfile_t_from_fp(fp) -> qfile_t - -Help on function qfile_t_tmpfile in module ida_fpro: - -qfile_t_tmpfile(*args) - qfile_t_tmpfile() -> qfile_t - -Help on function add_auto_stkpnt in module ida_frame: - -add_auto_stkpnt(*args) - add_auto_stkpnt(pfn, ea, delta) -> bool - - - Add automatic SP register change point. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success - -Help on function add_frame in module ida_frame: - -add_frame(*args) - add_frame(pfn, frsize, frregs, argsize) -> bool - - - Add function frame. - - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) - -Help on function add_regvar in module ida_frame: - -add_regvar(*args) - add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - - - Define a register variable. - - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) - @return: Register variable error codes - -Help on function add_user_stkpnt in module ida_frame: - -add_user_stkpnt(*args) - add_user_stkpnt(ea, delta) -> bool - - - Add user-defined SP register change point. - - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success - -Help on function build_stkvar_name in module ida_frame: - -build_stkvar_name(*args) - build_stkvar_name(pfn, v) -> str - - - Build automatic stack variable name. - - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) - @return: length of stack variable name or -1 - -Help on function build_stkvar_xrefs in module ida_frame: - -build_stkvar_xrefs(*args) - build_stkvar_xrefs(out, pfn, mptr) - - - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) - -Help on function calc_stkvar_struc_offset in module ida_frame: - -calc_stkvar_struc_offset(*args) - calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - - - Calculate offset of stack variable in the frame structure. - - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) - -Help on function define_stkvar in module ida_frame: - -define_stkvar(*args) - define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - - - Define/redefine a stack variable. - - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) - @return: success - -Help on function del_frame in module ida_frame: - -del_frame(*args) - del_frame(pfn) -> bool - - - Delete a function frame. - - @param pfn: pointer to function structure (C++: func_t *) - @return: success - -Help on function del_regvar in module ida_frame: - -del_regvar(*args) - del_regvar(pfn, ea1, ea2, canon) -> int - - - Delete a register variable definition. - - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @return: Register variable error codes - -Help on function del_stkpnt in module ida_frame: - -del_stkpnt(*args) - del_stkpnt(pfn, ea) -> bool - - - Delete SP register change point. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: success - -Help on function delete_unreferenced_stkvars in module ida_frame: - -delete_unreferenced_stkvars(*args) - delete_unreferenced_stkvars(pfn) -> int - -Help on function delete_wrong_stkvar_ops in module ida_frame: - -delete_wrong_stkvar_ops(*args) - delete_wrong_stkvar_ops(pfn) -> int - -Help on function find_regvar in module ida_frame: - -find_regvar(*args) - find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t - find_regvar(pfn, ea, canon) -> regvar_t - - - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t - -Help on function frame_off_args in module ida_frame: - -frame_off_args(*args) - frame_off_args(pfn) -> ea_t - - - Get starting address of arguments section. - - - @param pfn (C++: const func_t *) - -Help on function frame_off_lvars in module ida_frame: - -frame_off_lvars(*args) - frame_off_lvars(pfn) -> ea_t - - - Get start address of local variables section. - - - @param pfn (C++: const func_t *) - -Help on function frame_off_retaddr in module ida_frame: - -frame_off_retaddr(*args) - frame_off_retaddr(pfn) -> ea_t - - - Get starting address of return address section. - - - @param pfn (C++: const func_t *) - -Help on function frame_off_savregs in module ida_frame: - -frame_off_savregs(*args) - frame_off_savregs(pfn) -> ea_t - - - Get starting address of saved registers section. - - - @param pfn (C++: const func_t *) - -Help on function get_effective_spd in module ida_frame: - -get_effective_spd(*args) - get_effective_spd(pfn, ea) -> sval_t - - - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 or the difference, usually a negative number - -Help on function get_frame in module ida_frame: - -get_frame(*args) - get_frame(pfn) -> struc_t - get_frame(ea) -> struc_t * - - - Get pointer to function frame. - - @param pfn: pointer to function structure (C++: const func_t *) - -Help on function get_frame_part in module ida_frame: - -get_frame_part(*args) - get_frame_part(range, pfn, part) - - - Get offsets of the frame part in the frame. - - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) - -Help on function get_frame_retsize in module ida_frame: - -get_frame_retsize(*args) - get_frame_retsize(pfn) -> int - - - Get size of function return address. - - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - -Help on function get_frame_size in module ida_frame: - -get_frame_size(*args) - get_frame_size(pfn) -> asize_t - - - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero - -Help on function get_func_by_frame in module ida_frame: - -get_func_by_frame(*args) - get_func_by_frame(frame_id) -> ea_t - - - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR - -Help on function get_min_spd_ea in module ida_frame: - -get_min_spd_ea(*args) - get_min_spd_ea(pfn) -> ea_t - -Help on function get_sp_delta in module ida_frame: - -get_sp_delta(*args) - get_sp_delta(pfn, ea) -> sval_t - - - Get modification of SP made at the specified location - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. - -Help on function get_spd in module ida_frame: - -get_spd(*args) - get_spd(pfn, ea) -> sval_t - - - Get difference between the initial and current values of ESP. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. - -Help on function get_stkvar in module ida_frame: - -get_stkvar(*args) - get_stkvar(insn, op, v) -> PyObject * - - - Get pointer to stack variable - @param op: reference to instruction operand - @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure - - tuple(member_t, actval) - where actval: actual value used to fetch stack variable - -Help on function has_regvar in module ida_frame: - -has_regvar(*args) - has_regvar(pfn, ea) -> bool - - - Is there a register variable definition? - - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) - -Help on function is_funcarg_off in module ida_frame: - -is_funcarg_off(*args) - is_funcarg_off(pfn, frameoff) -> bool - - - Does the given offset lie within the arguments section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) - -Help on class llabel_t in module ida_frame: - -class llabel_t(__builtin__.object) - | Proxy of C++ llabel_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> llabel_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | llabel_t_ea_get(self) -> ea_t - | - | name - | llabel_t_name_get(self) -> char * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_llabel_t(self) - -Help on function lvar_off in module ida_frame: - -lvar_off(*args) - lvar_off(pfn, frameoff) -> sval_t - - - Does the given offset lie within the local variables section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) - -Help on function recalc_spd in module ida_frame: - -recalc_spd(*args) - recalc_spd(cur_ea) -> bool - - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - - @param cur_ea: linear address of the current instruction (C++: ea_t) - -Help on class regvar_t in module ida_frame: - -class regvar_t(ida_range.range_t) - | Proxy of C++ regvar_t class. - | - | Method resolution order: - | regvar_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regvar_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | canon - | regvar_t_canon_get(self) -> char * - | - | cmt - | regvar_t_cmt_get(self) -> char * - | - | thisown - | The membership flag - | - | user - | regvar_t_user_get(self) -> char * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regvar_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function rename_regvar in module ida_frame: - -rename_regvar(*args) - rename_regvar(pfn, v, user) -> int - - - Rename a register variable. - - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) - @return: Register variable error codes - -Help on function set_frame_size in module ida_frame: - -set_frame_size(*args) - set_frame_size(pfn, frsize, frregs, argsize) -> bool - - - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) - @return: success - -Help on function set_purged in module ida_frame: - -set_purged(*args) - set_purged(ea, nbytes, override_old_value) -> bool - - - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) - @return: success - -Help on function set_regvar_cmt in module ida_frame: - -set_regvar_cmt(*args) - set_regvar_cmt(pfn, v, cmt) -> int - - - Set comment for a register variable. - - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) - @return: Register variable error codes - -Help on function soff_to_fpoff in module ida_frame: - -soff_to_fpoff(*args) - soff_to_fpoff(pfn, soff) -> sval_t - - - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - - @param pfn (C++: func_t *) - @param soff (C++: uval_t) - -Help on class stkpnt_t in module ida_frame: - -class stkpnt_t(__builtin__.object) - | Proxy of C++ stkpnt_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> stkpnt_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | stkpnt_t_ea_get(self) -> ea_t - | - | spd - | stkpnt_t_spd_get(self) -> sval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_stkpnt_t(self) - -Help on class stkpnts_t in module ida_frame: - -class stkpnts_t(__builtin__.object) - | Proxy of C++ stkpnts_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> stkpnts_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_stkpnts_t(self) - -Help on function update_fpd in module ida_frame: - -update_fpd(*args) - update_fpd(pfn, fpd) -> bool - - - Update frame pointer delta. - - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) - @return: success - -Help on class xreflist_entry_t in module ida_frame: - -class xreflist_entry_t(__builtin__.object) - | Proxy of C++ xreflist_entry_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> xreflist_entry_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | xreflist_entry_t_ea_get(self) -> ea_t - | - | opnum - | xreflist_entry_t_opnum_get(self) -> uchar - | - | thisown - | The membership flag - | - | type - | xreflist_entry_t_type_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_xreflist_entry_t(self) - -Help on class xreflist_t in module ida_frame: - -class xreflist_t(__builtin__.object) - | Proxy of C++ qvector< xreflist_entry_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> xreflist_entry_t - | - | __init__(self, *args) - | __init__(self) -> xreflist_t - | __init__(self, x) -> xreflist_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> xreflist_entry_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t - | - | erase(self, *args) - | erase(self, it) -> xreflist_entry_t - | erase(self, first, last) -> xreflist_entry_t - | - | extract(self, *args) - | extract(self) -> xreflist_entry_t - | - | find(self, *args) - | find(self, x) -> xreflist_entry_t - | find(self, x) -> xreflist_entry_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=xreflist_entry_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> xreflist_entry_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> xreflist_entry_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_xreflist_t(self) - -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad -""" - -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" - -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" - -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" - -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === -Help on function add_func in module ida_funcs: - -add_func(*args) - add_func(ea1, ea2=BADADDR) -> bool - - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success - -Help on function add_func_ex in module ida_funcs: - -add_func_ex(*args) - add_func_ex(pfn) -> bool - - - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - - @param pfn: ptr to filled function structure (C++: func_t *) - @return: success - -Help on function add_regarg in module ida_funcs: - -add_regarg(*args) - add_regarg(pfn, reg, tif, name) - -Help on function append_func_tail in module ida_funcs: - -append_func_tail(*args) - append_func_tail(pfn, ea1, ea2) -> bool - - - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) - -Help on function apply_idasgn_to in module ida_funcs: - -apply_idasgn_to(*args) - apply_idasgn_to(signame, ea, is_startup) -> int - - - Apply a signature file to the specified address. - - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) - @return: Library function codes - -Help on function apply_startup_sig in module ida_funcs: - -apply_startup_sig(*args) - apply_startup_sig(ea, startup) -> bool - - - Apply a startup signature file to the specified address. - - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) - @return: true if successfully applied the signature - -Help on function calc_func_size in module ida_funcs: - -calc_func_size(*args) - calc_func_size(pfn) -> asize_t - - - Calculate function size. This function takes into account all - fragments of the function. - - @param pfn: ptr to function structure (C++: func_t *) - -Help on function calc_idasgn_state in module ida_funcs: - -calc_idasgn_state(*args) - calc_idasgn_state(n) -> int - - - Get state of a signature in the list of planned signatures - - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG - -Help on function calc_thunk_func_target in module ida_funcs: - -calc_thunk_func_target(*args) - calc_thunk_func_target(pfn) -> ea_t - - - Calculate target of a thunk function. - - @param pfn: pointer to function (may not be NULL) (C++: func_t *) - @return: the target function or BADADDR - -Help on function del_func in module ida_funcs: - -del_func(*args) - del_func(ea) -> bool - - - Delete a function. - - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success - -Help on function del_idasgn in module ida_funcs: - -del_idasgn(*args) - del_idasgn(n) -> int - - - Remove signature from the list of planned signatures. - - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED - -Help on function f_any in module ida_funcs: - -f_any(*args) - f_any(arg1, arg2) -> bool - - - Helper function to accept any address. - -Help on function find_func_bounds in module ida_funcs: - -find_func_bounds(*args) - find_func_bounds(nfn, flags) -> int - - - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) - @return: Find function bounds result codes - -Help on function func_contains in module ida_funcs: - -func_contains(*args) - func_contains(pfn, ea) -> bool - - - Does the given function contain the given address? - - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - -Help on function func_does_return in module ida_funcs: - -func_does_return(*args) - func_does_return(callee) -> bool - - - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - - @param callee (C++: ea_t) - -Help on function func_item_iterator_decode_preceding_insn in module ida_funcs: - -func_item_iterator_decode_preceding_insn(*args) - func_item_iterator_decode_preceding_insn(fii, visited, p_farref, out) -> bool - -Help on function func_item_iterator_decode_prev_insn in module ida_funcs: - -func_item_iterator_decode_prev_insn(*args) - func_item_iterator_decode_prev_insn(fii, out) -> bool - -Help on function func_item_iterator_next in module ida_funcs: - -func_item_iterator_next(*args) - func_item_iterator_next(fii, testf, ud) -> bool - -Help on function func_item_iterator_prev in module ida_funcs: - -func_item_iterator_prev(*args) - func_item_iterator_prev(fii, testf, ud) -> bool - -Help on class func_item_iterator_t in module ida_funcs: - -class func_item_iterator_t(__builtin__.object) - | Proxy of C++ func_item_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_item_iterator_t - | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t - | - | __next__(self, *args) - | __next__(self, func, ud) -> bool - | - | __repr__ = _swig_repr(self) - | - | chunk(self, *args) - | chunk(self) -> range_t - | - | current(self, *args) - | current(self) -> ea_t - | - | decode_preceding_insn(self, *args) - | decode_preceding_insn(self, visited, p_farref, out) -> bool - | - | decode_prev_insn(self, *args) - | decode_prev_insn(self, out) -> bool - | - | first(self, *args) - | first(self) -> bool - | - | last(self, *args) - | last(self) -> bool - | - | next = __next__(self, *args) - | - | next_addr(self, *args) - | next_addr(self) -> bool - | - | next_code(self, *args) - | next_code(self) -> bool - | - | next_data(self, *args) - | next_data(self) -> bool - | - | next_head(self, *args) - | next_head(self) -> bool - | - | next_not_tail(self, *args) - | next_not_tail(self) -> bool - | - | prev(self, *args) - | prev(self, func, ud) -> bool - | - | prev_addr(self, *args) - | prev_addr(self) -> bool - | - | prev_code(self, *args) - | prev_code(self) -> bool - | - | prev_data(self, *args) - | prev_data(self) -> bool - | - | prev_head(self, *args) - | prev_head(self) -> bool - | - | prev_not_tail(self, *args) - | prev_not_tail(self) -> bool - | - | set(self, *args) - | set(self, pfn, _ea=BADADDR) -> bool - | - | set_range(self, *args) - | set_range(self, ea1, ea2) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_item_iterator_t(self) - -Help on function func_parent_iterator_set in module ida_funcs: - -func_parent_iterator_set(*args) - func_parent_iterator_set(fpi, pfn) -> bool - -Help on class func_parent_iterator_t in module ida_funcs: - -class func_parent_iterator_t(__builtin__.object) - | Proxy of C++ func_parent_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_parent_iterator_t - | __init__(self, _fnt) -> func_parent_iterator_t - | - | __next__(self, *args) - | __next__(self) -> bool - | - | __repr__ = _swig_repr(self) - | - | first(self, *args) - | first(self) -> bool - | - | last(self, *args) - | last(self) -> bool - | - | next = __next__(self, *args) - | - | parent(self, *args) - | parent(self) -> ea_t - | - | prev(self, *args) - | prev(self) -> bool - | - | reset_fnt(self, *args) - | reset_fnt(self, _fnt) - | - | set(self, *args) - | set(self, _fnt) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_parent_iterator_t(self) - -Help on class func_t in module ida_funcs: - -class func_t(ida_range.range_t) - | Proxy of C++ func_t class. - | - | Method resolution order: - | func_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __get_points__(self, *args) - | __get_points__(self) -> stkpnt_array - | - | __get_regvars__(self, *args) - | __get_regvars__(self) -> regvar_array - | - | __get_tails__(self, *args) - | __get_tails__(self) -> range_array - | - | __init__(self, *args) - | __init__(self, start=0, end=0, f=0) -> func_t - | - | __repr__ = _swig_repr(self) - | - | analyzed_sp(self, *args) - | analyzed_sp(self) -> bool - | - | does_return(self, *args) - | does_return(self) -> bool - | - | is_far(self, *args) - | is_far(self) -> bool - | - | need_prolog_analysis(self, *args) - | need_prolog_analysis(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | argsize - | func_t_argsize_get(self) -> asize_t - | - | color - | func_t_color_get(self) -> bgcolor_t - | - | flags - | func_t_flags_get(self) -> uint64 - | - | fpd - | func_t_fpd_get(self) -> asize_t - | - | frame - | func_t_frame_get(self) -> uval_t - | - | frregs - | func_t_frregs_get(self) -> ushort - | - | frsize - | func_t_frsize_get(self) -> asize_t - | - | llabelqty - | func_t_llabelqty_get(self) -> int - | - | llabels - | func_t_llabels_get(self) -> llabel_t * - | - | owner - | func_t_owner_get(self) -> ea_t - | - | pntqty - | func_t_pntqty_get(self) -> uint32 - | - | points - | __get_points__(self) -> stkpnt_array - | - | referers - | func_t_referers_get(self) -> ea_t * - | - | refqty - | func_t_refqty_get(self) -> int - | - | regargqty - | func_t_regargqty_get(self) -> int - | - | regargs - | func_t_regargs_get(self) -> regarg_t - | - | regvarqty - | func_t_regvarqty_get(self) -> int - | - | regvars - | __get_regvars__(self) -> regvar_array - | - | tailqty - | func_t_tailqty_get(self) -> int - | - | tails - | __get_tails__(self) -> range_array - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function func_t__from_ptrval__ in module ida_funcs: - -func_t__from_ptrval__(*args) - func_t__from_ptrval__(ptrval) -> func_t - -Help on function func_tail_iterator_set in module ida_funcs: - -func_tail_iterator_set(*args) - func_tail_iterator_set(fti, pfn, ea) -> bool - -Help on function func_tail_iterator_set_ea in module ida_funcs: - -func_tail_iterator_set_ea(*args) - func_tail_iterator_set_ea(fti, ea) -> bool - -Help on class func_tail_iterator_t in module ida_funcs: - -class func_tail_iterator_t(__builtin__.object) - | Proxy of C++ func_tail_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_tail_iterator_t - | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t - | - | __next__(self, *args) - | __next__(self) -> bool - | - | __repr__ = _swig_repr(self) - | - | chunk(self, *args) - | chunk(self) -> range_t - | - | first(self, *args) - | first(self) -> bool - | - | last(self, *args) - | last(self) -> bool - | - | main(self, *args) - | main(self) -> bool - | - | next = __next__(self, *args) - | - | prev(self, *args) - | prev(self) -> bool - | - | set(self, *args) - | set(self, _pfn, ea=BADADDR) -> bool - | - | set_ea(self, *args) - | set_ea(self, ea) -> bool - | - | set_range(self, *args) - | set_range(self, ea1, ea2) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_tail_iterator_t(self) - -Help on function get_current_idasgn in module ida_funcs: - -get_current_idasgn(*args) - get_current_idasgn() -> int - - - Get number of the the current signature. - - @return: 0..n-1 - -Help on function get_fchunk in module ida_funcs: - -get_fchunk(*args) - get_fchunk(ea) -> func_t - - - Get pointer to function chunk structure by address. - - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. - -Help on function get_fchunk_num in module ida_funcs: - -get_fchunk_num(*args) - get_fchunk_num(ea) -> int - - - Get ordinal number of a function chunk in the global list of function - chunks. - - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. - -Help on function get_fchunk_qty in module ida_funcs: - -get_fchunk_qty(*args) - get_fchunk_qty() -> size_t - - - Get total number of function chunks in the program. - -Help on function get_fchunk_referer in module ida_funcs: - -get_fchunk_referer(*args) - get_fchunk_referer(ea, idx) -> ea_t - -Help on function get_func in module ida_funcs: - -get_func(*args) - get_func(ea) -> func_t - - - Get pointer to function structure by address. - - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. - -Help on function get_func_bitness in module ida_funcs: - -get_func_bitness(*args) - get_func_bitness(pfn) -> int - - - Get function bitness (which is equal to the function segment bitness). - pfn==NULL => returns 0 - - @param pfn (C++: const func_t *) - -Help on function get_func_bits in module ida_funcs: - -get_func_bits(*args) - get_func_bits(pfn) -> int - - - Get number of bits in the function addressing. - - - @param pfn (C++: const func_t *) - -Help on function get_func_bytes in module ida_funcs: - -get_func_bytes(*args) - get_func_bytes(pfn) -> int - - - Get number of bytes in the function addressing. - - - @param pfn (C++: const func_t *) - -Help on function get_func_chunknum in module ida_funcs: - -get_func_chunknum(*args) - get_func_chunknum(pfn, ea) -> int - - - Get the containing tail chunk of 'ea'. - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - -Help on function get_func_cmt in module ida_funcs: - -get_func_cmt(*args) - get_func_cmt(pfn, repeatable) -> str - - - Get function comment. - - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. - -Help on function get_func_name in module ida_funcs: - -get_func_name(*args) - get_func_name(ea) -> str - - - Get function name. - - @param ea: any address in the function (C++: ea_t) - @return: length of the function name - -Help on function get_func_num in module ida_funcs: - -get_func_num(*args) - get_func_num(ea) -> int - - - Get ordinal number of a function. - - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. - -Help on function get_func_qty in module ida_funcs: - -get_func_qty(*args) - get_func_qty() -> size_t - - - Get total number of functions in the program. - -Help on function get_func_ranges in module ida_funcs: - -get_func_ranges(*args) - get_func_ranges(ranges, pfn) -> ea_t - - - Get function ranges. - - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) - @return: end address of the last function range (BADADDR-error) - -Help on function get_idasgn_desc in module ida_funcs: - -get_idasgn_desc(*args) - get_idasgn_desc(n) -> PyObject * - - - Get information about a signature in the list. - It returns: (name of signature, names of optional libraries) - - See also: get_idasgn_desc_with_matches - - @param n: number of signature in the list (0..get_idasgn_qty()-1) - @return: None on failure or tuple(signame, optlibs) - -Help on function get_idasgn_desc_with_matches in module ida_funcs: - -get_idasgn_desc_with_matches(*args) - get_idasgn_desc_with_matches(n) -> PyObject * - - - Get information about a signature in the list. - It returns: (name of signature, names of optional libraries, number of matches) - - @param n: number of signature in the list (0..get_idasgn_qty()-1) - @return: None on failure or tuple(signame, optlibs, nmatches) - -Help on function get_idasgn_qty in module ida_funcs: - -get_idasgn_qty(*args) - get_idasgn_qty() -> int - - - Get number of signatures in the list of planned and applied - signatures. - - @return: 0..n - -Help on function get_idasgn_title in module ida_funcs: - -get_idasgn_title(*args) - get_idasgn_title(name) -> str - - - Get full description of the signature by its short name. - - @param name: short name of a signature (C++: const char *) - @return: size of signature description or -1 - -Help on function get_next_fchunk in module ida_funcs: - -get_next_fchunk(*args) - get_next_fchunk(ea) -> func_t - - - Get pointer to the next function chunk in the global list. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if next function chunk doesn't - exist - -Help on function get_next_func in module ida_funcs: - -get_next_func(*args) - get_next_func(ea) -> func_t - - - Get pointer to the next function. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if next function doesn't exist - -Help on function get_next_func_addr in module ida_funcs: - -get_next_func_addr(*args) - get_next_func_addr(pfn, ea) -> ea_t - -Help on function get_prev_fchunk in module ida_funcs: - -get_prev_fchunk(*args) - get_prev_fchunk(ea) -> func_t - - - Get pointer to the previous function chunk in the global list. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if previous function chunk - doesn't exist - -Help on function get_prev_func in module ida_funcs: - -get_prev_func(*args) - get_prev_func(ea) -> func_t - - - Get pointer to the previous function. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if previous function doesn't exist - -Help on function get_prev_func_addr in module ida_funcs: - -get_prev_func_addr(*args) - get_prev_func_addr(pfn, ea) -> ea_t - -Help on function getn_fchunk in module ida_funcs: - -getn_fchunk(*args) - getn_fchunk(n) -> func_t - - - Get pointer to function chunk structure by number. - - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. - -Help on function getn_func in module ida_funcs: - -getn_func(*args) - getn_func(n) -> func_t - - - Get pointer to function structure by number. - - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. - -Help on function is_finally_visible_func in module ida_funcs: - -is_finally_visible_func(*args) - is_finally_visible_func(pfn) -> bool - - - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - - - @param pfn (C++: func_t *) - -Help on function is_func_entry in module ida_funcs: - -is_func_entry(*args) - is_func_entry(pfn) -> bool - - - Does function describe a function entry chunk? - - - @param pfn (C++: const func_t *) - -Help on function is_func_locked in module ida_funcs: - -is_func_locked(*args) - is_func_locked(pfn) -> bool - - - Is the function pointer locked? - - - @param pfn (C++: const func_t *) - -Help on function is_func_tail in module ida_funcs: - -is_func_tail(*args) - is_func_tail(pfn) -> bool - - - Does function describe a function tail chunk? - - - @param pfn (C++: const func_t *) - -Help on function is_same_func in module ida_funcs: - -is_same_func(*args) - is_same_func(ea1, ea2) -> bool - - - Do two addresses belong to the same function? - - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - -Help on function is_visible_func in module ida_funcs: - -is_visible_func(*args) - is_visible_func(pfn) -> bool - - - Is the function visible (not hidden)? - - - @param pfn (C++: func_t *) - -Help on class lock_func in module ida_funcs: - -class lock_func(__builtin__.object) - | Proxy of C++ lock_func class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _pfn) -> lock_func - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lock_func(self) - -Help on function lock_func_range in module ida_funcs: - -lock_func_range(*args) - lock_func_range(pfn, lock) - - - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param pfn (C++: const func_t *) - @param lock (C++: bool) - -Help on function plan_to_apply_idasgn in module ida_funcs: - -plan_to_apply_idasgn(*args) - plan_to_apply_idasgn(fname) -> int - - - Add a signature file to the list of planned signature files. - - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures - -Help on class range_array in module ida_funcs: - -class range_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< range_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __init__(self, *args) - | __init__(self, _data, _count) -> range_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | range_array_count_get(self) -> size_t - | - | data - | range_array_data_get(self) -> range_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_range_array(self) - -Help on function read_regargs in module ida_funcs: - -read_regargs(*args) - read_regargs(pfn) - -Help on function reanalyze_function in module ida_funcs: - -reanalyze_function(*args) - reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) - - - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) - -Help on function reanalyze_noret_flag in module ida_funcs: - -reanalyze_noret_flag(*args) - reanalyze_noret_flag(ea) -> bool - - - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - - @param ea (C++: ea_t) - -Help on class regarg_t in module ida_funcs: - -class regarg_t(__builtin__.object) - | Proxy of C++ regarg_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regarg_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | regarg_t_name_get(self) -> char * - | - | reg - | regarg_t_reg_get(self) -> int - | - | thisown - | The membership flag - | - | type - | regarg_t_type_get(self) -> type_t * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regarg_t(self) - -Help on class regvar_array in module ida_funcs: - -class regvar_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regvar_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> regvar_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | regvar_array_count_get(self) -> size_t - | - | data - | regvar_array_data_get(self) -> regvar_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regvar_array(self) - -Help on function remove_func_tail in module ida_funcs: - -remove_func_tail(*args) - remove_func_tail(pfn, tail_ea) -> bool - - - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) - -Help on function set_func_cmt in module ida_funcs: - -set_func_cmt(*args) - set_func_cmt(pfn, cmt, repeatable) -> bool - - - Set function comment. This function works with function chunks too. - - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) - -Help on function set_func_end in module ida_funcs: - -set_func_end(*args) - set_func_end(ea, newend) -> bool - - - Move function chunk end address. - - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success - -Help on function set_func_name_if_jumpfunc in module ida_funcs: - -set_func_name_if_jumpfunc(*args) - set_func_name_if_jumpfunc(pfn, oldname) -> int - - - Give a meaningful name to function if it consists of only 'jump' - instruction. - - @param pfn: pointer to function (may be NULL) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass NULL. (C++: const char *) - @return: success - -Help on function set_func_start in module ida_funcs: - -set_func_start(*args) - set_func_start(ea, newstart) -> int - - - Move function chunk start address. - - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) - @return: Function move result codes - -Help on function set_noret_insn in module ida_funcs: - -set_noret_insn(*args) - set_noret_insn(insn_ea, noret) -> bool - - - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - - @param insn_ea (C++: ea_t) - @param noret (C++: bool) - @return: true if the instruction 'noret' flag has been changed - -Help on function set_tail_owner in module ida_funcs: - -set_tail_owner(*args) - set_tail_owner(fnt, func_start) -> bool - - - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) - -Help on function set_visible_func in module ida_funcs: - -set_visible_func(*args) - set_visible_func(pfn, visible) - - - Set visibility of function. - - - @param pfn (C++: func_t *) - @param visible (C++: bool) - -Help on class stkpnt_array in module ida_funcs: - -class stkpnt_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> stkpnt_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> stkpnt_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | stkpnt_array_count_get(self) -> size_t - | - | data - | stkpnt_array_data_get(self) -> stkpnt_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_stkpnt_array(self) - -Help on function try_to_add_libfunc in module ida_funcs: - -try_to_add_libfunc(*args) - try_to_add_libfunc(ea) -> int - - - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - - @param ea: any address in the program (C++: ea_t) - @return: Library function codes - -Help on function update_func in module ida_funcs: - -update_func(*args) - update_func(pfn) -> bool - - - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - - @param pfn: ptr to function structure (C++: func_t *) - @return: success - -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_EXIST -""" -its bounds are returned in 'nfn'. - -function exists already. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -just create instructions inside the boundaries. - -do not modify incoming function boundaries, -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -nfn->end_ea will have the address of the unexplored byte. - -function has instructions that pass execution flow to unexplored -bytes. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. -""" - -ida_funcs.FUNC_PROLOG_OK -""" -by last SP-analysis - -Prolog analysis has be performed -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -of the function - -User has specified far-ness -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === -Help on class BasicBlock in module ida_gdl: - -class BasicBlock(__builtin__.object) - | Basic block class. It is returned by the Flowchart class - | - | Methods defined here: - | - | __init__(self, id, bb, fc) - | - | preds(self) - | Iterates the predecessors list - | - | succs(self) - | Iterates the successors list - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | startEA - -Help on class FlowChart in module ida_gdl: - -class FlowChart(__builtin__.object) - | Flowchart class used to determine basic blocks. - | Check ex_gdl_qflow_chart.py for sample usage. - | - | Methods defined here: - | - | __getitem__(self, index) - | Returns a basic block - | - | @return: BasicBlock - | - | __init__(self, f=None, bounds=None, flags=0) - | Constructor - | @param f: A func_t type, use get_func(ea) to get a reference - | @param bounds: A tuple of the form (start, end). Used if "f" is None - | @param flags: one of the FC_xxxx flags. One interesting flag is FC_PREDS - | - | __iter__(self) - | - | _getitem(self, index) - | - | refresh(self) - | Refreshes the flow chart - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | size - -Help on function display_gdl in module ida_gdl: - -display_gdl(*args) - display_gdl(fname) -> int - - - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - - @param fname (C++: const char *) - @return: error code from os, 0 if ok - -Help on function gen_complex_call_chart in module ida_gdl: - -gen_complex_call_chart(*args) - gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - - - Build and display a complex xref graph. - - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen - -Help on function gen_flow_graph in module ida_gdl: - -gen_flow_graph(*args) - gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - - - Build and display a flow graph. - - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen - -Help on function gen_gdl in module ida_gdl: - -gen_gdl(*args) - gen_gdl(g, fname) - - - Create GDL file for graph. - - - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) - -Help on function gen_simple_call_chart in module ida_gdl: - -gen_simple_call_chart(*args) - gen_simple_call_chart(filename, wait, title, gflags) -> bool - - - Build and display a simple function call graph. - - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen - -Help on function is_noret_block in module ida_gdl: - -is_noret_block(*args) - is_noret_block(btype) -> bool - - - Does this block never return? - - - @param btype (C++: fc_block_type_t) - -Help on function is_ret_block in module ida_gdl: - -is_ret_block(*args) - is_ret_block(btype) -> bool - - - Does this block return? - - - @param btype (C++: fc_block_type_t) - -Help on class node_iterator in module ida_gdl: - -class node_iterator(__builtin__.object) - | Proxy of C++ node_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, n) -> bool - | - | __init__(self, *args) - | __init__(self, _g, n) -> node_iterator - | - | __ne__(self, *args) - | __ne__(self, n) -> bool - | - | __ref__(self, *args) - | __ref__(self) -> int - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_node_iterator(self) - -Help on class qbasic_block_t in module ida_gdl: - -class qbasic_block_t(ida_range.range_t) - | Proxy of C++ qbasic_block_t class. - | - | Method resolution order: - | qbasic_block_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> qbasic_block_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qbasic_block_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on class qflow_chart_t in module ida_gdl: - -class qflow_chart_t(__builtin__.object) - | Proxy of C++ qflow_chart_t class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, n) -> qbasic_block_t - | - | __init__(self, *args) - | __init__(self) -> qflow_chart_t - | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t - | - | __repr__ = _swig_repr(self) - | - | append_to_flowchart(self, *args) - | append_to_flowchart(self, ea1, ea2) - | - | calc_block_type(self, *args) - | calc_block_type(self, blknum) -> fc_block_type_t - | - | create(self, *args) - | create(self, _title, _pfn, _ea1, _ea2, _flags) - | create(self, _title, ranges, _flags) - | - | get_node_label(self, *args) - | get_node_label(self, arg2, arg3, arg4) -> char * - | - | is_noret_block(self, *args) - | is_noret_block(self, blknum) -> bool - | - | is_ret_block(self, *args) - | is_ret_block(self, blknum) -> bool - | - | npred(self, *args) - | npred(self, node) -> int - | - | nsucc(self, *args) - | nsucc(self, node) -> int - | - | pred(self, *args) - | pred(self, node, i) -> int - | - | print_names(self, *args) - | print_names(self) -> bool - | - | print_node_attributes(self, *args) - | print_node_attributes(self, arg2, arg3) - | - | refresh(self, *args) - | refresh(self) - | - | size(self, *args) - | size(self) -> int - | - | succ(self, *args) - | succ(self, node, i) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bounds - | qflow_chart_t_bounds_get(self) -> range_t - | - | flags - | qflow_chart_t_flags_get(self) -> int - | - | nproper - | qflow_chart_t_nproper_get(self) -> int - | - | pfn - | qflow_chart_t_pfn_get(self) -> func_t * - | - | thisown - | The membership flag - | - | title - | qflow_chart_t_title_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qflow_chart_t(self) - -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block -""" - -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_PREDS -""" -compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === -Help on class GraphViewer in module ida_graph: - -class GraphViewer(ida_kernwin.CustomIDAMemo) - | Method resolution order: - | GraphViewer - | ida_kernwin.CustomIDAMemo - | ida_kernwin.View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | AddCommand(self, title, shortcut) - | - | AddEdge(self, src_node, dest_node) - | Creates an edge between two given node ids - | - | AddNode(self, obj) - | Creates a node associated with the given object and returns the node id - | - | Clear(self) - | Clears all the nodes and edges - | - | Close(self) - | Closes the graph. - | It is possible to call Show() again (which will recreate the graph) - | - | Count(self) - | Returns the node count - | - | OnCommand(self, cmd_id) - | - | OnPopup(self, widget, popup_handle) - | - | OnRefresh(self) - | Event called when the graph is refreshed or first created. - | From this event you are supposed to create nodes and edges. - | This callback is mandatory. - | - | @note: ***It is important to clear previous nodes before adding nodes.*** - | @return: Returning True tells the graph viewer to use the items. Otherwise old items will be used. - | - | Select(self, node_id) - | Selects a node on the graph - | - | Show(self) - | Shows an existing graph or creates a new one - | - | @return: Boolean - | - | __getitem__(self, idx) - | Returns a reference to the object associated with this node id - | - | __init__(self, title, close_open=False) - | Constructs the GraphView object. - | Please do not remove or rename the private fields - | - | @param title: The title of the graph window - | @param close_open: Should it attempt to close an existing graph (with same title) before creating this graph? - | - | __iter__(self) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | UI_Hooks_Trampoline = - | - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_kernwin.CustomIDAMemo: - | - | 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 - | } - | - | @param 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). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods inherited from ida_kernwin.CustomIDAMemo: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_kernwin.View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_kernwin.View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_kernwin.View_Hooks: - | - | __swig_destroy__ = - | delete_View_Hooks(self) - -Help on class TPointDouble in module ida_graph: - -class TPointDouble(__builtin__.object) - | Proxy of C++ TPointDouble class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> TPointDouble - | __init__(self, a, b) -> TPointDouble - | __init__(self, r) -> TPointDouble - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, r) - | - | negate(self, *args) - | negate(self) - | - | sub(self, *args) - | sub(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | TPointDouble_x_get(self) -> double - | - | y - | TPointDouble_y_get(self) -> double - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_TPointDouble(self) - -Help on function calc_dist in module ida_graph: - -calc_dist(*args) - calc_dist(p, q) -> double - - - Calculate distance between p and q. - - - @param p (C++: point_t) - @param q (C++: point_t) - -Help on function clr_node_info in module ida_graph: - -clr_node_info(*args) - clr_node_info(gid, node, flags) - - - Clear node info for the given node. - - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) - -Help on function create_disasm_graph in module ida_graph: - -create_disasm_graph(*args) - create_disasm_graph(ea) -> mutable_graph_t - create_disasm_graph(ranges) -> mutable_graph_t - - - Create a graph for the function that contains 'ea'. - - - @param ea (C++: ea_t) - -Help on function create_graph_viewer in module ida_graph: - -create_graph_viewer(*args) - create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - - - Create a custom graph viewer. - - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) - @return: new viewer - -Help on function create_mutable_graph in module ida_graph: - -create_mutable_graph(*args) - create_mutable_graph(id) -> mutable_graph_t - - - Create a new empty graph with given id. - - - @param id (C++: uval_t) - -Help on function create_user_graph_place in module ida_graph: - -create_user_graph_place(*args) - create_user_graph_place(node, lnnum) -> user_graph_place_t - - - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - - - @param node (C++: int) - @param lnnum (C++: int) - -Help on function del_node_info in module ida_graph: - -del_node_info(*args) - del_node_info(gid, node) - - - Delete the 'node_info_t' for the given node. - - - @param gid (C++: graph_id_t) - @param node (C++: int) - -Help on function delete_mutable_graph in module ida_graph: - -delete_mutable_graph(*args) - delete_mutable_graph(g) - - - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - - @param g (C++: mutable_graph_t *) - -Help on class edge_info_t in module ida_graph: - -class edge_info_t(__builtin__.object) - | Proxy of C++ edge_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> edge_info_t - | - | __repr__ = _swig_repr(self) - | - | reverse_layout(self, *args) - | reverse_layout(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | color - | edge_info_t_color_get(self) -> bgcolor_t - | - | dstoff - | edge_info_t_dstoff_get(self) -> int - | - | layout - | edge_info_t_layout_get(self) -> pointseq_t - | - | srcoff - | edge_info_t_srcoff_get(self) -> int - | - | thisown - | The membership flag - | - | width - | edge_info_t_width_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_edge_info_t(self) - -Help on class edge_infos_wrapper_t in module ida_graph: - -class edge_infos_wrapper_t(__builtin__.object) - | Proxy of C++ edge_infos_wrapper_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * - | - | thisown - | The membership flag - -Help on class edge_layout_point_t in module ida_graph: - -class edge_layout_point_t(__builtin__.object) - | Proxy of C++ edge_layout_point_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t - | __init__(self, _e, _pidx) -> edge_layout_point_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | e - | edge_layout_point_t_e_get(self) -> edge_t - | - | pidx - | edge_layout_point_t_pidx_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_edge_layout_point_t(self) - -Help on class edge_segment_t in module ida_graph: - -class edge_segment_t(__builtin__.object) - | Proxy of C++ edge_segment_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> edge_segment_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | length(self, *args) - | length(self) -> size_t - | - | toright(self, *args) - | toright(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | e - | edge_segment_t_e_get(self) -> edge_t - | - | nseg - | edge_segment_t_nseg_get(self) -> int - | - | thisown - | The membership flag - | - | x0 - | edge_segment_t_x0_get(self) -> int - | - | x1 - | edge_segment_t_x1_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_edge_segment_t(self) - -Help on class edge_t in module ida_graph: - -class edge_t(__builtin__.object) - | Proxy of C++ edge_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, y) -> bool - | - | __init__(self, *args) - | __init__(self) -> edge_t - | __init__(self, x, y) -> edge_t - | - | __lt__(self, *args) - | __lt__(self, y) -> bool - | - | __ne__(self, *args) - | __ne__(self, y) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dst - | edge_t_dst_get(self) -> int - | - | src - | edge_t_src_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_edge_t(self) - -Help on function get_graph_viewer in module ida_graph: - -get_graph_viewer(*args) - get_graph_viewer(parent) -> graph_viewer_t * - - - Get custom graph viewer for given form. - - - @param parent (C++: TWidget *) - -Help on function get_node_info in module ida_graph: - -get_node_info(*args) - get_node_info(out, gid, node) -> bool - - - Get node info. - - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @return: success - -Help on function get_viewer_graph in module ida_graph: - -get_viewer_graph(*args) - get_viewer_graph(gv) -> mutable_graph_t - - - Get graph object for given custom graph viewer. - - - @param gv (C++: graph_viewer_t *) - -Help on class graph_item_t in module ida_graph: - -class graph_item_t(__builtin__.object) - | Proxy of C++ graph_item_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> graph_item_t - | - | __repr__ = _swig_repr(self) - | - | is_edge(self, *args) - | is_edge(self) -> bool - | - | is_node(self, *args) - | is_node(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | b - | graph_item_t_b_get(self) -> int - | - | e - | graph_item_t_e_get(self) -> edge_t - | - | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t - | - | n - | graph_item_t_n_get(self) -> int - | - | p - | graph_item_t_p_get(self) -> point_t - | - | thisown - | The membership flag - | - | type - | graph_item_t_type_get(self) -> graph_item_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_graph_item_t(self) - -Help on class graph_node_visitor_t in module ida_graph: - -class graph_node_visitor_t(__builtin__.object) - | Proxy of C++ graph_node_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> graph_node_visitor_t - | - | __repr__ = _swig_repr(self) - | - | is_forbidden_edge(self, *args) - | is_forbidden_edge(self, arg0, arg1) -> bool - | - | is_visited(self, *args) - | is_visited(self, n) -> bool - | - | reinit(self, *args) - | reinit(self) - | - | set_visited(self, *args) - | set_visited(self, n) - | - | visit_node(self, *args) - | visit_node(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_graph_node_visitor_t(self) - -Help on class graph_path_visitor_t in module ida_graph: - -class graph_path_visitor_t(__builtin__.object) - | Proxy of C++ graph_path_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> graph_path_visitor_t - | - | __repr__ = _swig_repr(self) - | - | walk_backward(self, *args) - | walk_backward(self, arg0) -> int - | - | walk_forward(self, *args) - | walk_forward(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | path - | graph_path_visitor_t_path_get(self) -> intvec_t * - | - | prune - | graph_path_visitor_t_prune_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_graph_path_visitor_t(self) - -Help on class graph_visitor_t in module ida_graph: - -class graph_visitor_t(__builtin__.object) - | Proxy of C++ graph_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> graph_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_edge(self, *args) - | visit_edge(self, arg2, arg3) -> int - | - | visit_node(self, *args) - | visit_node(self, arg2, arg3) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_graph_visitor_t(self) - -Help on class group_crinfo_t in module ida_graph: - -class group_crinfo_t(__builtin__.object) - | Proxy of C++ group_crinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> group_crinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * - | - | text - | group_crinfo_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_group_crinfo_t(self) - -Help on class interval_t in module ida_graph: - -class interval_t(__builtin__.object) - | Proxy of C++ interval_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> interval_t - | __init__(self, y0, y1) -> interval_t - | __init__(self, s) -> interval_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | contains(self, *args) - | contains(self, x) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | intersect(self, *args) - | intersect(self, r) - | - | length(self, *args) - | length(self) -> int - | - | make_union(self, *args) - | make_union(self, r) - | - | move_by(self, *args) - | move_by(self, shift) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x0 - | interval_t_x0_get(self) -> int - | - | x1 - | interval_t_x1_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_interval_t(self) - -Help on class mutable_graph_t in module ida_graph: - -class mutable_graph_t(__builtin__.object) - | Proxy of C++ mutable_graph_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | calc_group_ea(self, *args) - | calc_group_ea(self, arg0) -> ea_t - | - | change_group_visibility(self, *args) - | change_group_visibility(self, group, expand) -> bool - | - | clear(self, *args) - | clear(self) - | - | create_digraph_layout(self, *args) - | create_digraph_layout(self) -> bool - | - | create_group(self, *args) - | create_group(self, nodes) -> int - | - | del_custom_layout(self, *args) - | del_custom_layout(self) - | - | delete_group(self, *args) - | delete_group(self, group) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | exists(self, *args) - | exists(self, node) -> bool - | - | get_custom_layout(self, *args) - | get_custom_layout(self) -> bool - | - | get_edge(self, *args) - | get_edge(self, e) -> edge_info_t - | - | get_first_subgraph_node(self, *args) - | get_first_subgraph_node(self, group) -> int - | - | get_graph_groups(self, *args) - | get_graph_groups(self) -> bool - | - | get_next_subgraph_node(self, *args) - | get_next_subgraph_node(self, group, current) -> int - | - | get_node_group(self, *args) - | get_node_group(self, node) -> int - | - | get_node_representative(self, *args) - | get_node_representative(self, node) -> int - | - | is_collapsed_node(self, *args) - | is_collapsed_node(self, node) -> bool - | - | is_deleted_node(self, *args) - | is_deleted_node(self, node) -> bool - | - | is_displayable_node(self, *args) - | is_displayable_node(self, node) -> bool - | - | is_dot_node(self, *args) - | is_dot_node(self, node) -> bool - | - | is_group_node(self, *args) - | is_group_node(self, node) -> bool - | - | is_simple_node(self, *args) - | is_simple_node(self, node) -> bool - | - | is_subgraph_node(self, *args) - | is_subgraph_node(self, node) -> bool - | - | is_uncollapsed_node(self, *args) - | is_uncollapsed_node(self, node) -> bool - | - | is_user_graph(self, *args) - | is_user_graph(self) -> bool - | - | is_visible_node(self, *args) - | is_visible_node(self, node) -> bool - | - | node_qty(self, *args) - | node_qty(self) -> int - | - | npred(self, *args) - | npred(self, b) -> int - | - | nrect(self, *args) - | nrect(self, n) -> rect_t - | nrect(self, n) -> rect_t - | - | nsucc(self, *args) - | nsucc(self, b) -> int - | - | pred(self, *args) - | pred(self, b, i) -> int - | - | predset(self, *args) - | predset(self, b) -> intvec_t const & - | - | reset(self, *args) - | reset(self) - | - | set_custom_layout(self, *args) - | set_custom_layout(self) - | - | set_deleted_node(self, *args) - | set_deleted_node(self, node) - | - | set_edge(self, *args) - | set_edge(self, e, ei) -> bool - | - | set_graph_groups(self, *args) - | set_graph_groups(self) - | - | set_node_group(self, *args) - | set_node_group(self, node, group) - | - | size(self, *args) - | size(self) -> int - | - | succ(self, *args) - | succ(self, b, i) -> int - | - | succset(self, *args) - | succset(self, b) -> intvec_t const & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * - | - | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t - | - | gid - | mutable_graph_t_gid_get(self) -> uval_t - | - | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * - | - | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t - | - | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t - | - | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t - | - | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t - | - | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mutable_graph_t(self) - -Help on class node_info_t in module ida_graph: - -class node_info_t(__builtin__.object) - | Proxy of C++ node_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> node_info_t - | - | __repr__ = _swig_repr(self) - | - | get_flags_for_valid(self, *args) - | get_flags_for_valid(self) -> uint32 - | - | valid_bg_color(self, *args) - | valid_bg_color(self) -> bool - | - | valid_ea(self, *args) - | valid_ea(self) -> bool - | - | valid_flags(self, *args) - | valid_flags(self) -> bool - | - | valid_frame_color(self, *args) - | valid_frame_color(self) -> bool - | - | valid_text(self, *args) - | valid_text(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t - | - | ea - | node_info_t_ea_get(self) -> ea_t - | - | flags - | node_info_t_flags_get(self) -> uint32 - | - | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t - | - | text - | node_info_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_node_info_t(self) - -Help on class node_layout_t in module ida_graph: - -class node_layout_t(__builtin__.object) - | Proxy of C++ qvector< rect_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> rect_t - | - | __init__(self, *args) - | __init__(self) -> node_layout_t - | __init__(self, x) -> node_layout_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> rect_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> rect_t - | begin(self) -> rect_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> rect_t - | end(self) -> rect_t - | - | erase(self, *args) - | erase(self, it) -> rect_t - | erase(self, first, last) -> rect_t - | - | extract(self, *args) - | extract(self) -> rect_t - | - | find(self, *args) - | find(self, x) -> rect_t - | find(self, x) -> rect_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=rect_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> rect_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> rect_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_node_layout_t(self) - -Help on class node_ordering_t in module ida_graph: - -class node_ordering_t(__builtin__.object) - | Proxy of C++ node_ordering_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> node_ordering_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | node(self, *args) - | node(self, _order) -> int - | - | resize(self, *args) - | resize(self, n) - | - | set(self, *args) - | set(self, _node, num) - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_node_ordering_t(self) - -Help on class point_t in module ida_graph: - -class point_t(__builtin__.object) - | Proxy of C++ point_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> point_t - | __init__(self, _x, _y) -> point_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, r) -> point_t - | - | negate(self, *args) - | negate(self) - | - | sub(self, *args) - | sub(self, r) -> point_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | point_t_x_get(self) -> int - | - | y - | point_t_y_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_point_t(self) - -Help on class pointseq_t in module ida_graph: - -class pointseq_t(pointvec_t) - | Proxy of C++ pointseq_t class. - | - | Method resolution order: - | pointseq_t - | pointvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pointseq_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pointseq_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from pointvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> point_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> point_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> point_t - | begin(self) -> point_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> point_t - | end(self) -> point_t - | - | erase(self, *args) - | erase(self, it) -> point_t - | erase(self, first, last) -> point_t - | - | extract(self, *args) - | extract(self) -> point_t - | - | find(self, *args) - | find(self, x) -> point_t - | find(self, x) -> point_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=point_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> point_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> point_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from pointvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class pointvec_t in module ida_graph: - -class pointvec_t(__builtin__.object) - | Proxy of C++ qvector< point_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> point_t - | - | __init__(self, *args) - | __init__(self) -> pointvec_t - | __init__(self, x) -> pointvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> point_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> point_t - | begin(self) -> point_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> point_t - | end(self) -> point_t - | - | erase(self, *args) - | erase(self, it) -> point_t - | erase(self, first, last) -> point_t - | - | extract(self, *args) - | extract(self) -> point_t - | - | find(self, *args) - | find(self, x) -> point_t - | find(self, x) -> point_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=point_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> point_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> point_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pointvec_t(self) - -Help on function pyg_close in module ida_graph: - -pyg_close(*args) - pyg_close(_self) - -Help on function pyg_select_node in module ida_graph: - -pyg_select_node(*args) - pyg_select_node(_self, nid) - -Help on function pyg_show in module ida_graph: - -pyg_show(*args) - pyg_show(_self) -> bool - -Help on class rect_t in module ida_graph: - -class rect_t(__builtin__.object) - | Proxy of C++ rect_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> rect_t - | __init__(self, l, t, r, b) -> rect_t - | __init__(self, p0, p1) -> rect_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | area(self, *args) - | area(self) -> int - | - | bottomright(self, *args) - | bottomright(self) -> point_t - | - | center(self, *args) - | center(self) -> point_t - | - | contains(self, *args) - | contains(self, p) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | grow(self, *args) - | grow(self, delta) - | - | height(self, *args) - | height(self) -> int - | - | intersect(self, *args) - | intersect(self, r) - | - | is_intersection_empty(self, *args) - | is_intersection_empty(self, r) -> bool - | - | make_union(self, *args) - | make_union(self, r) - | - | move_by(self, *args) - | move_by(self, p) - | - | move_to(self, *args) - | move_to(self, p) - | - | topleft(self, *args) - | topleft(self) -> point_t - | - | width(self, *args) - | width(self) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bottom - | rect_t_bottom_get(self) -> int - | - | left - | rect_t_left_get(self) -> int - | - | right - | rect_t_right_get(self) -> int - | - | thisown - | The membership flag - | - | top - | rect_t_top_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_rect_t(self) - -Help on function refresh_viewer in module ida_graph: - -refresh_viewer(*args) - refresh_viewer(gv) - - - Redraw the graph in the given view. - - - @param gv (C++: graph_viewer_t *) - -Help on class row_info_t in module ida_graph: - -class row_info_t(__builtin__.object) - | Proxy of C++ row_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> row_info_t - | - | __repr__ = _swig_repr(self) - | - | height(self, *args) - | height(self) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bottom - | row_info_t_bottom_get(self) -> int - | - | nodes - | row_info_t_nodes_get(self) -> intvec_t * - | - | thisown - | The membership flag - | - | top - | row_info_t_top_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_row_info_t(self) - -Help on class screen_graph_selection_base_t in module ida_graph: - -class screen_graph_selection_base_t(__builtin__.object) - | Proxy of C++ qvector< selection_item_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> selection_item_t - | - | __init__(self, *args) - | __init__(self) -> screen_graph_selection_base_t - | __init__(self, x) -> screen_graph_selection_base_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> selection_item_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> selection_item_t - | begin(self) -> selection_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> selection_item_t - | end(self) -> selection_item_t - | - | erase(self, *args) - | erase(self, it) -> selection_item_t - | erase(self, first, last) -> selection_item_t - | - | extract(self, *args) - | extract(self) -> selection_item_t - | - | find(self, *args) - | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=selection_item_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> selection_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> selection_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = screen_graph_selection_t - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, s) - | - | add_node(self, *args) - | add_node(self, node) - | - | add_point(self, *args) - | add_point(self, e, idx) - | - | del_node(self, *args) - | del_node(self, node) - | - | del_point(self, *args) - | del_point(self, e, idx) - | - | has(self, *args) - | has(self, item) -> bool - | - | items_count(self, *args) - | items_count(self, look_for_nodes) -> size_t - | - | nodes_count(self, *args) - | nodes_count(self) -> size_t - | - | points_count(self, *args) - | points_count(self) -> size_t - | - | sub(self, *args) - | sub(self, s) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_screen_graph_selection_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from screen_graph_selection_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> selection_item_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> selection_item_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> selection_item_t - | begin(self) -> selection_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> selection_item_t - | end(self) -> selection_item_t - | - | erase(self, *args) - | erase(self, it) -> selection_item_t - | erase(self, first, last) -> selection_item_t - | - | extract(self, *args) - | extract(self) -> selection_item_t - | - | find(self, *args) - | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=selection_item_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> selection_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> selection_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from screen_graph_selection_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class selection_item_t in module ida_graph: - -class selection_item_t(__builtin__.object) - | Proxy of C++ selection_item_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> selection_item_t - | __init__(self, n) -> selection_item_t - | __init__(self, _elp) -> selection_item_t - | __init__(self, e, idx) -> selection_item_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t - | - | is_node - | selection_item_t_is_node_get(self) -> bool - | - | node - | selection_item_t_node_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_selection_item_t(self) - -Help on function set_node_info in module ida_graph: - -set_node_info(*args) - set_node_info(gid, node, ni, flags) - - - Set node info. - - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) - -Help on function set_viewer_graph in module ida_graph: - -set_viewer_graph(*args) - set_viewer_graph(gv, g) - - - Set the underlying graph object for the given viewer. - - - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) - -Help on class user_graph_place_t in module ida_graph: - -class user_graph_place_t(__builtin__.object) - | Proxy of C++ user_graph_place_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | node - | user_graph_place_t_node_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_graph_place_t(self) - -Help on function viewer_attach_menu_item in module ida_graph: - -viewer_attach_menu_item(*args) - viewer_attach_menu_item(g, name) -> bool - - - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. - - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) - @return: success - -Help on function viewer_center_on in module ida_graph: - -viewer_center_on(*args) - viewer_center_on(gv, node) - - - Center the graph view on the given node. - - - @param gv (C++: graph_viewer_t *) - @param node (C++: int) - -Help on function viewer_create_groups in module ida_graph: - -viewer_create_groups(*args) - viewer_create_groups(gv, out_group_nodes, gi) -> bool - - - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around mutable_graph_t::create_group that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) - -Help on function viewer_del_node_info in module ida_graph: - -viewer_del_node_info(*args) - viewer_del_node_info(gv, n) - - - Delete node info for node in given viewer (see 'del_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - -Help on function viewer_delete_groups in module ida_graph: - -viewer_delete_groups(*args) - viewer_delete_groups(gv, groups, new_current=-1) -> bool - - - Wrapper around mutable_graph_t::delete_group. This function will:clone - the current graphattempt deleting the groups in that new graphif - successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) - -Help on function viewer_fit_window in module ida_graph: - -viewer_fit_window(*args) - viewer_fit_window(gv) - - - Fit graph viewer to its parent form. - - - @param gv (C++: graph_viewer_t *) - -Help on function viewer_get_curnode in module ida_graph: - -viewer_get_curnode(*args) - viewer_get_curnode(gv) -> int - - - Get number of currently selected node (-1 if none) - - - @param gv (C++: graph_viewer_t *) - -Help on function viewer_get_gli in module ida_graph: - -viewer_get_gli(*args) - viewer_get_gli(out, gv, flags=0) -> bool - - - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) - -Help on function viewer_get_node_info in module ida_graph: - -viewer_get_node_info(*args) - viewer_get_node_info(gv, out, n) -> bool - - - Get node info for node in given viewer (see 'get_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) - -Help on function viewer_get_selection in module ida_graph: - -viewer_get_selection(*args) - viewer_get_selection(gv, sgs) -> bool - - - Get currently selected items for graph viewer. - - - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) - -Help on function viewer_set_gli in module ida_graph: - -viewer_set_gli(*args) - viewer_set_gli(gv, gli, flags=0) - - - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) - -Help on function viewer_set_groups_visibility in module ida_graph: - -viewer_set_groups_visibility(*args) - viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool - - - Wrapper around mutable_graph_t::change_visibility. This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) - -Help on function viewer_set_node_info in module ida_graph: - -viewer_set_node_info(*args) - viewer_set_node_info(gv, n, ni, flags) - - - Set node info for node in given viewer (see 'set_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) - -Help on function viewer_set_titlebar_height in module ida_graph: - -viewer_set_titlebar_height(*args) - viewer_set_titlebar_height(gv, height) -> int - - - Set height of node title bars ( 'grcode_set_titlebar_height' ) - - - @param gv (C++: graph_viewer_t *) - @param height (C++: int) - -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER -""" -the gli should be set/get as center -""" - -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" - 'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" - 'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" - 'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" - 'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" - 'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === -Help on class DecompilationFailure in module ida_hexrays: - -class DecompilationFailure(exceptions.Exception) - | Raised on a decompilation error. - | - | The associated hexrays_failure_t object is stored in the - | 'info' member of this exception. - | - | Method resolution order: - | DecompilationFailure - | exceptions.Exception - | exceptions.BaseException - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, info) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from exceptions.Exception: - | - | __new__ = - | T.__new__(S, ...) -> a new object with type S, a subtype of T - | - | ---------------------------------------------------------------------- - | Methods inherited from exceptions.BaseException: - | - | __delattr__(...) - | x.__delattr__('name') <==> del x.name - | - | __getattribute__(...) - | x.__getattribute__('name') <==> x.name - | - | __getitem__(...) - | x.__getitem__(y) <==> x[y] - | - | __getslice__(...) - | x.__getslice__(i, j) <==> x[i:j] - | - | Use of negative indices is not supported. - | - | __reduce__(...) - | - | __repr__(...) - | x.__repr__() <==> repr(x) - | - | __setattr__(...) - | x.__setattr__('name', value) <==> x.name = value - | - | __setstate__(...) - | - | __str__(...) - | x.__str__() <==> str(x) - | - | __unicode__(...) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from exceptions.BaseException: - | - | __dict__ - | - | args - | - | message - -Help on class Hexrays_Hooks in module ida_hexrays: - -class Hexrays_Hooks(__builtin__.object) - | Proxy of C++ Hexrays_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> Hexrays_Hooks - | - | __repr__ = _swig_repr(self) - | - | close_pseudocode(self, *args) - | close_pseudocode(self, vu) -> int - | - | cmt_changed(self, *args) - | cmt_changed(self, cfunc, loc, cmt) -> int - | - | combine(self, *args) - | combine(self, blk, insn) -> int - | - | create_hint(self, *args) - | create_hint(self, vu) -> PyObject * - | - | curpos(self, *args) - | curpos(self, vu) -> int - | - | double_click(self, *args) - | double_click(self, vu, shift_state) -> int - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | flowchart(self, *args) - | flowchart(self, fc) -> int - | - | func_printed(self, *args) - | func_printed(self, cfunc) -> int - | - | glbopt(self, *args) - | glbopt(self, mba) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | interr(self, *args) - | interr(self, errcode) -> int - | - | keyboard(self, *args) - | keyboard(self, vu, key_code, shift_state) -> int - | - | locopt(self, *args) - | locopt(self, mba) -> int - | - | lvar_cmt_changed(self, *args) - | lvar_cmt_changed(self, vu, v, cmt) -> int - | - | lvar_mapping_changed(self, *args) - | lvar_mapping_changed(self, vu, frm, to) -> int - | - | lvar_name_changed(self, *args) - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | - | lvar_type_changed(self, *args) - | lvar_type_changed(self, vu, v, tinfo) -> int - | - | maturity(self, *args) - | maturity(self, cfunc, new_maturity) -> int - | - | microcode(self, *args) - | microcode(self, mba) -> int - | - | open_pseudocode(self, *args) - | open_pseudocode(self, vu) -> int - | - | populating_popup(self, *args) - | populating_popup(self, widget, popup_handle, vu) -> int - | - | prealloc(self, *args) - | prealloc(self, mba) -> int - | - | preoptimized(self, *args) - | preoptimized(self, mba) -> int - | - | print_func(self, *args) - | print_func(self, cfunc, vp) -> int - | - | prolog(self, *args) - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | - | refresh_pseudocode(self, *args) - | refresh_pseudocode(self, vu) -> int - | - | resolve_stkaddrs(self, *args) - | resolve_stkaddrs(self, mba) -> int - | - | right_click(self, *args) - | right_click(self, vu) -> int - | - | stkpnts(self, *args) - | stkpnts(self, mba, _sps) -> int - | - | structural(self, *args) - | structural(self, ct) -> int - | - | switch_pseudocode(self, *args) - | switch_pseudocode(self, vu) -> int - | - | text_ready(self, *args) - | text_ready(self, vu) -> int - | - | unhook(self, *args) - | unhook(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_Hexrays_Hooks(self) - -Help on class __cbhooks_t in module ida_hexrays: - -class __cbhooks_t(Hexrays_Hooks) - | Method resolution order: - | __cbhooks_t - | Hexrays_Hooks - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, callback) - | - | close_pseudocode(self, *args) - | - | create_hint(self, *args) - | - | curpos(self, *args) - | - | double_click(self, *args) - | - | func_printed(self, *args) - | - | interr(self, *args) - | - | keyboard(self, *args) - | - | maturity(self, *args) - | - | open_pseudocode(self, *args) - | - | populating_popup(self, *args) - | - | print_func(self, *args) - | - | refresh_pseudocode(self, *args) - | - | right_click(self, *args) - | - | switch_pseudocode(self, *args) - | - | text_ready(self, *args) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | instances = [] - | - | ---------------------------------------------------------------------- - | Methods inherited from Hexrays_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | cmt_changed(self, *args) - | cmt_changed(self, cfunc, loc, cmt) -> int - | - | combine(self, *args) - | combine(self, blk, insn) -> int - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | flowchart(self, *args) - | flowchart(self, fc) -> int - | - | glbopt(self, *args) - | glbopt(self, mba) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | locopt(self, *args) - | locopt(self, mba) -> int - | - | lvar_cmt_changed(self, *args) - | lvar_cmt_changed(self, vu, v, cmt) -> int - | - | lvar_mapping_changed(self, *args) - | lvar_mapping_changed(self, vu, frm, to) -> int - | - | lvar_name_changed(self, *args) - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | - | lvar_type_changed(self, *args) - | lvar_type_changed(self, vu, v, tinfo) -> int - | - | microcode(self, *args) - | microcode(self, mba) -> int - | - | prealloc(self, *args) - | prealloc(self, mba) -> int - | - | preoptimized(self, *args) - | preoptimized(self, mba) -> int - | - | prolog(self, *args) - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | - | resolve_stkaddrs(self, *args) - | resolve_stkaddrs(self, mba) -> int - | - | stkpnts(self, *args) - | stkpnts(self, mba, _sps) -> int - | - | structural(self, *args) - | structural(self, ct) -> int - | - | unhook(self, *args) - | unhook(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from Hexrays_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from Hexrays_Hooks: - | - | __swig_destroy__ = - | delete_Hexrays_Hooks(self) - -Help on function _call_with_transferrable_ownership in module ida_hexrays: - -_call_with_transferrable_ownership(fun, *args) - # Object ownership - -Help on function _kludge_use_TPopupMenu in module ida_hexrays: - -_kludge_use_TPopupMenu(*args) - _kludge_use_TPopupMenu(m) - -Help on function _ll_call_helper in module ida_hexrays: - -_ll_call_helper(*args) - _ll_call_helper(rettype, args, format) -> cexpr_t - -Help on function _ll_create_helper in module ida_hexrays: - -_ll_create_helper(*args) - _ll_create_helper(standalone, type, format) -> cexpr_t - -Help on function _ll_dereference in module ida_hexrays: - -_ll_dereference(*args) - _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t - -Help on function _ll_lnot in module ida_hexrays: - -_ll_lnot(*args) - _ll_lnot(e) -> cexpr_t - -Help on function _ll_make_num in module ida_hexrays: - -_ll_make_num(*args) - _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t - -Help on function _ll_make_ref in module ida_hexrays: - -_ll_make_ref(*args) - _ll_make_ref(e) -> cexpr_t - -Help on function _ll_new_block in module ida_hexrays: - -_ll_new_block(*args) - _ll_new_block() -> cinsn_t - -Help on function _map_as_dict in module ida_hexrays: - -_map_as_dict(maptype, name, keytype, valuetype) - # dictify all dict-like types - -Help on function accepts_small_udts in module ida_hexrays: - -accepts_small_udts(*args) - accepts_small_udts(op) -> bool - - - Is the operator allowed on small structure or union? - - - @param op (C++: ctype_t) - -Help on function accepts_udts in module ida_hexrays: - -accepts_udts(*args) - accepts_udts(op) -> bool - -Help on function arglocs_overlap in module ida_hexrays: - -arglocs_overlap(*args) - arglocs_overlap(loc1, w1, loc2, w2) -> bool - - - Do two arglocs overlap? - - - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) - -Help on class array_of_bitsets in module ida_hexrays: - -class array_of_bitsets(__builtin__.object) - | Proxy of C++ qvector< bitset_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> bitset_t - | - | __init__(self, *args) - | __init__(self) -> array_of_bitsets - | __init__(self, x) -> array_of_bitsets - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> bitset_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> bitset_t - | begin(self) -> bitset_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bitset_t - | end(self) -> bitset_t - | - | erase(self, *args) - | erase(self, it) -> bitset_t - | erase(self, first, last) -> bitset_t - | - | extract(self, *args) - | extract(self) -> bitset_t - | - | find(self, *args) - | find(self, x) -> bitset_t - | find(self, x) -> bitset_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=bitset_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> bitset_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> bitset_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_array_of_bitsets(self) - -Help on class array_of_ivlsets in module ida_hexrays: - -class array_of_ivlsets(__builtin__.object) - | Proxy of C++ qvector< ivlset_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ivlset_t - | - | __init__(self, *args) - | __init__(self) -> array_of_ivlsets - | __init__(self, x) -> array_of_ivlsets - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> ivlset_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ivlset_t - | begin(self) -> ivlset_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ivlset_t - | end(self) -> ivlset_t - | - | erase(self, *args) - | erase(self, it) -> ivlset_t - | erase(self, first, last) -> ivlset_t - | - | extract(self, *args) - | extract(self) -> ivlset_t - | - | find(self, *args) - | find(self, x) -> ivlset_t - | find(self, x) -> ivlset_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ivlset_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ivlset_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ivlset_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_array_of_ivlsets(self) - -Help on function asgop in module ida_hexrays: - -asgop(*args) - asgop(cop) -> ctype_t - - - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - - - @param cop (C++: ctype_t) - -Help on function asgop_revert in module ida_hexrays: - -asgop_revert(*args) - asgop_revert(cop) -> ctype_t - - - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. - -Help on class bit_bound_t in module ida_hexrays: - -class bit_bound_t(__builtin__.object) - | Proxy of C++ bit_bound_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, n=0, s=0) -> bit_bound_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | nbits - | bit_bound_t_nbits_get(self) -> int16 - | - | sbits - | bit_bound_t_sbits_get(self) -> int16 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bit_bound_t(self) - -Help on class bitset_t in module ida_hexrays: - -class bitset_t(__builtin__.object) - | Proxy of C++ bitset_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> bitset_t - | __init__(self, m) -> bitset_t - | - | __iter__(self) - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __len__ = count(self, *args) - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, bit) -> bool - | add(self, bit, width) -> bool - | add(self, ml) -> bool - | - | back(self, *args) - | back(self) -> int - | - | begin(self, *args) - | begin(self) -> bitset_t::iterator - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | copy(self, *args) - | copy(self, m) -> bitset_t - | - | count(self, *args) - | count(self) -> int - | count(self, bit) -> int - | - | cut_at(self, *args) - | cut_at(self, maxbit) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bitset_t::iterator - | - | fill_with_ones(self, *args) - | fill_with_ones(self, maxbit) - | - | front(self, *args) - | front(self) -> int - | - | has(self, *args) - | has(self, bit) -> bool - | - | has_all(self, *args) - | has_all(self, bit, width) -> bool - | - | has_any(self, *args) - | has_any(self, bit, width) -> bool - | - | has_common(self, *args) - | has_common(self, ml) -> bool - | - | inc(self, *args) - | inc(self, p, n=1) - | - | includes(self, *args) - | includes(self, ml) -> bool - | - | intersect(self, *args) - | intersect(self, ml) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, ml) -> bool - | - | itat(self, *args) - | itat(self, n) -> bitset_t::iterator - | - | itv(self, *args) - | itv(self, it) -> int - | - | last(self, *args) - | last(self) -> int - | - | shift_down(self, *args) - | shift_down(self, shift) - | - | sub(self, *args) - | sub(self, bit) -> bool - | sub(self, bit, width) -> bool - | sub(self, ml) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bitset_t(self) - -Help on function block_chains_begin in module ida_hexrays: - -block_chains_begin(*args) - block_chains_begin(set) -> block_chains_iterator_t - - - Get iterator pointing to the beginning of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - -Help on function block_chains_clear in module ida_hexrays: - -block_chains_clear(*args) - block_chains_clear(set) - - - Clear 'block_chains_t' . - - - @param set (C++: block_chains_t *) - -Help on function block_chains_end in module ida_hexrays: - -block_chains_end(*args) - block_chains_end(set) -> block_chains_iterator_t - - - Get iterator pointing to the end of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - -Help on function block_chains_erase in module ida_hexrays: - -block_chains_erase(*args) - block_chains_erase(set, p) - - - Erase current element from 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_find in module ida_hexrays: - -block_chains_find(*args) - block_chains_find(set, val) -> block_chains_iterator_t - - - Find the specified key in set 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) - -Help on function block_chains_free in module ida_hexrays: - -block_chains_free(*args) - block_chains_free(set) - - - Delete 'block_chains_t' instance. - - - @param set (C++: block_chains_t *) - -Help on function block_chains_get in module ida_hexrays: - -block_chains_get(*args) - block_chains_get(p) -> chain_t - - - Get reference to the current set value. - - - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_insert in module ida_hexrays: - -block_chains_insert(*args) - block_chains_insert(set, val) -> block_chains_iterator_t - - - Insert new ( 'chain_t' ) into set 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) - -Help on class block_chains_iterator_t in module ida_hexrays: - -class block_chains_iterator_t(__builtin__.object) - | Proxy of C++ block_chains_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> block_chains_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | block_chains_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_block_chains_iterator_t(self) - -Help on function block_chains_new in module ida_hexrays: - -block_chains_new(*args) - block_chains_new() -> block_chains_t - - - Create a new 'block_chains_t' instance. - -Help on function block_chains_next in module ida_hexrays: - -block_chains_next(*args) - block_chains_next(p) -> block_chains_iterator_t - - - Move to the next element. - - - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_prev in module ida_hexrays: - -block_chains_prev(*args) - block_chains_prev(p) -> block_chains_iterator_t - - - Move to the previous element. - - - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_size in module ida_hexrays: - -block_chains_size(*args) - block_chains_size(set) -> size_t - - - Get size of 'block_chains_t' . - - - @param set (C++: block_chains_t *) - -Help on class block_chains_t in module ida_hexrays: - -class block_chains_t(__builtin__.object) - | Proxy of C++ block_chains_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> block_chains_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | get_chain(self, *args) - | get_chain(self, k, width=1) -> chain_t - | get_chain(self, k, width=1) -> chain_t - | get_chain(self, ch) -> chain_t - | get_chain(self, ch) -> chain_t - | - | get_reg_chain(self, *args) - | get_reg_chain(self, reg, width=1) -> chain_t - | get_reg_chain(self, reg, width=1) -> chain_t - | - | get_stk_chain(self, *args) - | get_stk_chain(self, off, width=1) -> chain_t - | get_stk_chain(self, off, width=1) -> chain_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_block_chains_t(self) - -Help on class block_chains_vec_t in module ida_hexrays: - -class block_chains_vec_t(__builtin__.object) - | Proxy of C++ qvector< block_chains_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> block_chains_t - | - | __init__(self, *args) - | __init__(self) -> block_chains_vec_t - | __init__(self, x) -> block_chains_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> block_chains_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> block_chains_t - | begin(self) -> block_chains_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> block_chains_t - | end(self) -> block_chains_t - | - | erase(self, *args) - | erase(self, it) -> block_chains_t - | erase(self, first, last) -> block_chains_t - | - | extract(self, *args) - | extract(self) -> block_chains_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=block_chains_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> block_chains_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> block_chains_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_block_chains_vec_t(self) - -Help on function boundaries_begin in module ida_hexrays: - -boundaries_begin(*args) - boundaries_begin(map) -> boundaries_iterator_t - - - Get iterator pointing to the beginning of boundaries_t. - - - @param map (C++: const boundaries_t *) - -Help on function boundaries_clear in module ida_hexrays: - -boundaries_clear(*args) - boundaries_clear(map) - - - Clear boundaries_t. - - - @param map (C++: boundaries_t *) - -Help on function boundaries_end in module ida_hexrays: - -boundaries_end(*args) - boundaries_end(map) -> boundaries_iterator_t - - - Get iterator pointing to the end of boundaries_t. - - - @param map (C++: const boundaries_t *) - -Help on function boundaries_erase in module ida_hexrays: - -boundaries_erase(*args) - boundaries_erase(map, p) - - - Erase current element from boundaries_t. - - - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_find in module ida_hexrays: - -boundaries_find(*args) - boundaries_find(map, key) -> boundaries_iterator_t - - - Find the specified key in boundaries_t. - - - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) - -Help on function boundaries_first in module ida_hexrays: - -boundaries_first(*args) - boundaries_first(p) -> cinsn_t - - - Get reference to the current map key. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_free in module ida_hexrays: - -boundaries_free(*args) - boundaries_free(map) - - - Delete boundaries_t instance. - - - @param map (C++: boundaries_t *) - -Help on function boundaries_insert in module ida_hexrays: - -boundaries_insert(*args) - boundaries_insert(map, key, val) -> boundaries_iterator_t - - - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - - - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) - -Help on class boundaries_iterator_t in module ida_hexrays: - -class boundaries_iterator_t(__builtin__.object) - | Proxy of C++ boundaries_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> boundaries_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | boundaries_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_boundaries_iterator_t(self) - -Help on function boundaries_new in module ida_hexrays: - -boundaries_new(*args) - boundaries_new() -> boundaries_t - - - Create a new boundaries_t instance. - -Help on function boundaries_next in module ida_hexrays: - -boundaries_next(*args) - boundaries_next(p) -> boundaries_iterator_t - - - Move to the next element. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_prev in module ida_hexrays: - -boundaries_prev(*args) - boundaries_prev(p) -> boundaries_iterator_t - - - Move to the previous element. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_second in module ida_hexrays: - -boundaries_second(*args) - boundaries_second(p) -> rangeset_t - - - Get reference to the current map value. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_size in module ida_hexrays: - -boundaries_size(*args) - boundaries_size(map) -> size_t - - - Get size of boundaries_t. - - - @param map (C++: boundaries_t *) - -Help on class boundaries_t in module ida_hexrays: - -class boundaries_t(__builtin__.object) - | Proxy of C++ std::map< cinsn_t *,rangeset_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> boundaries_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> rangeset_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = - | boundaries_begin(map) -> boundaries_iterator_t - | - | __clear = - | boundaries_clear(map) - | - | __end = - | boundaries_end(map) -> boundaries_iterator_t - | - | __erase = - | boundaries_erase(map, p) - | - | __find = - | boundaries_find(map, key) -> boundaries_iterator_t - | - | __first = - | boundaries_first(p) -> cinsn_t - | - | __insert = - | boundaries_insert(map, key, val) -> boundaries_iterator_t - | - | __next = - | boundaries_next(p) -> boundaries_iterator_t - | - | __second = - | boundaries_second(p) -> rangeset_t - | - | __size = - | boundaries_size(map) -> size_t - | - | __swig_destroy__ = - | delete_boundaries_t(self) - | - | keytype = - | Proxy of C++ cinsn_t class. - | - | valuetype = - | Proxy of C++ rangeset_t class. - -Help on function call_helper in module ida_hexrays: - -call_helper(rettype, args, *rest) - -Help on class carg_t in module ida_hexrays: - -class carg_t(cexpr_t) - | Proxy of C++ carg_t class. - | - | Method resolution order: - | carg_t - | cexpr_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> carg_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | consume_cexpr(self, *args) - | consume_cexpr(self, e) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | formal_type - | carg_t_formal_type_get(self) -> tinfo_t - | - | is_vararg - | carg_t_is_vararg_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_carg_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cexpr_t: - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_a(self, *args) - | _get_a(self) -> carglist_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char * - | - | _get_insn(self, *args) - | _get_insn(self) -> cinsn_t - | - | _get_m(self, *args) - | _get_m(self) -> int - | - | _get_n(self, *args) - | _get_n(self) -> cnumber_t - | - | _get_obj_ea(self, *args) - | _get_obj_ea(self) -> ea_t - | - | _get_ptrsize(self, *args) - | _get_ptrsize(self) -> int - | - | _get_refwidth(self, *args) - | _get_refwidth(self) -> int - | - | _get_string(self, *args) - | _get_string(self) -> char * - | - | _get_x(self, *args) - | _get_x(self) -> cexpr_t - | - | _get_y(self, *args) - | _get_y(self) -> cexpr_t - | - | _get_z(self, *args) - | _get_z(self) -> cexpr_t - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_insn(self, *args) - | _set_insn(self, _v) - | - | _set_m(self, *args) - | _set_m(self, _v) - | - | _set_n(self, *args) - | _set_n(self, _v) - | - | _set_obj_ea(self, *args) - | _set_obj_ea(self, _v) - | - | _set_ptrsize(self, *args) - | _set_ptrsize(self, _v) - | - | _set_refwidth(self, *args) - | _set_refwidth(self, _v) - | - | _set_string(self, *args) - | _set_string(self, _v) - | - | _set_x(self, *args) - | _set_x(self, _v) - | - | _set_y(self, *args) - | _set_y(self, _v) - | - | _set_z(self, *args) - | _set_z(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cexpr_t - | - | calc_type(self, *args) - | calc_type(self, recursive) - | - | cleanup(self, *args) - | cleanup(self) - | - | contains_comma(self, *args) - | contains_comma(self, times=1) -> bool - | - | contains_comma_or_insn_or_label(self, *args) - | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, times=1) -> bool - | - | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool - | - | contains_operator(self, *args) - | contains_operator(self, needed_op, times=1) -> bool - | - | cpadone(self, *args) - | cpadone(self) -> bool - | - | equal_effect(self, *args) - | equal_effect(self, r) -> bool - | - | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t - | - | find_op(self, *args) - | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t - | - | get_1num_op(self, *args) - | get_1num_op(self, o1, o2) -> bool - | - | get_const_value(self, *args) - | get_const_value(self) -> bool - | - | get_high_nbit_bound(self, *args) - | get_high_nbit_bound(self) -> bit_bound_t - | - | get_low_nbit_bound(self, *args) - | get_low_nbit_bound(self) -> int - | - | get_ptr_or_array(self, *args) - | get_ptr_or_array(self) -> cexpr_t - | - | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t - | - | get_v(self, *args) - | get_v(self) -> var_ref_t - | - | has_side_effects(self, *args) - | has_side_effects(self) -> bool - | - | is_call_arg_of(self, *args) - | is_call_arg_of(self, parent) -> bool - | - | is_call_object_of(self, *args) - | is_call_object_of(self, parent) -> bool - | - | is_child_of(self, *args) - | is_child_of(self, parent) -> bool - | - | is_const_value(self, *args) - | is_const_value(self, _v) -> bool - | - | is_cstr(self, *args) - | is_cstr(self) -> bool - | - | is_fpop(self, *args) - | is_fpop(self) -> bool - | - | is_jumpout(self, *args) - | is_jumpout(self) -> bool - | - | is_negative_const(self, *args) - | is_negative_const(self) -> bool - | - | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool - | - | is_nice_expr(self, *args) - | is_nice_expr(self) -> bool - | - | is_non_negative_const(self, *args) - | is_non_negative_const(self) -> bool - | - | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool - | - | is_odd_lvalue(self, *args) - | is_odd_lvalue(self) -> bool - | - | is_type_signed(self, *args) - | is_type_signed(self) -> bool - | - | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_zero_const(self, *args) - | is_zero_const(self) -> bool - | - | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool - | - | numval(self, *args) - | numval(self) -> uint64 - | - | print1(self, *args) - | print1(self, func) - | - | put_number(self, *args) - | put_number(self, func, value, nbytes, sign=no_sign) - | - | requires_lvalue(self, *args) - | requires_lvalue(self, child) -> bool - | - | set_cpadone(self, *args) - | set_cpadone(self) - | - | set_v(self, *args) - | set_v(self, v) - | - | set_vftable(self, *args) - | set_vftable(self) - | - | swap(self, *args) - | swap(self, r) - | - | theother(self, *args) - | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cexpr_t: - | - | a - | - | exflags - | cexpr_t_exflags_get(self) -> uint32 - | - | fpc - | - | helper - | - | insn - | - | m - | - | n - | - | obj_ea - | - | operands - | return a dictionary with the operands of a cexpr_t. - | - | opname - | - | ptrsize - | - | refwidth - | - | string - | - | type - | cexpr_t_type_get(self) -> tinfo_t - | - | v - | - | x - | - | y - | - | z - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from cexpr_t: - | - | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cexpr - | citem_t_cexpr_get(self) -> cexpr_t - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on class carglist_t in module ida_hexrays: - -class carglist_t(qvector_carg_t) - | Proxy of C++ carglist_t class. - | - | Method resolution order: - | carglist_t - | qvector_carg_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> carglist_t - | __init__(self, ftype, fl=0) -> carglist_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | carglist_t_flags_get(self) -> int - | - | functype - | carglist_t_functype_get(self) -> tinfo_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_carglist_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_carg_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> carg_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> carg_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> carg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> carg_t - | begin(self) -> carg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> carg_t - | end(self) -> carg_t - | - | erase(self, *args) - | erase(self, it) -> carg_t - | erase(self, first, last) -> carg_t - | - | extract(self, *args) - | extract(self) -> carg_t - | - | find(self, *args) - | find(self, x) -> carg_t - | find(self, x) -> carg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=carg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> carg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> carg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_carg_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class casm_t in module ida_hexrays: - -class casm_t(ida_pro.eavec_t)↗ - | Proxy of C++ casm_t class. - | - | Method resolution order: - | casm_t - | ida_pro.eavec_t↗ - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, ea) -> casm_t - | __init__(self, r) -> casm_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | one_insn(self, *args) - | one_insn(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_casm_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_pro.eavec_t:↗ - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | begin(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | end(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | - | erase(self, *args) - | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | - | extract(self, *args) - | extract(self) -> unsigned-ea-like-numeric-type *↗ - | - | find(self, *args) - | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_pro.eavec_t:↗ - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function cblock_at in module ida_hexrays: - -cblock_at(self, index) - # cblock.at(int) -> returns the item at the given index index - -Help on function cblock_find in module ida_hexrays: - -cblock_find(self, item) - # cblock.find(cinsn_t) -> returns the iterator positioned at the given item - -Help on function cblock_index in module ida_hexrays: - -cblock_index(self, item) - # cblock.index(cinsn_t) -> returns the index of the given item - -Help on function cblock_insert in module ida_hexrays: - -cblock_insert(self, index, item) - # cblock.insert(index, cinsn_t) - -Help on function cblock_iter in module ida_hexrays: - -cblock_iter(self) - -Help on function cblock_remove in module ida_hexrays: - -cblock_remove(self, item) - # cblock.remove(cinsn_t) - -Help on class cblock_t in module ida_hexrays: - -class cblock_t(qlist_cinsn_t) - | Proxy of C++ cblock_t class. - | - | Method resolution order: - | cblock_t - | qlist_cinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cblock_t - | - | __iter__ = cblock_iter(self) - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | at = cblock_at(self, index) - | # cblock.at(int) -> returns the item at the given index index - | - | compare(self, *args) - | compare(self, r) -> int - | - | find = cblock_find(self, item) - | # cblock.find(cinsn_t) -> returns the iterator positioned at the given item - | - | index = cblock_index(self, item) - | # cblock.index(cinsn_t) -> returns the index of the given item - | - | insert = cblock_insert(self, index, item) - | # cblock.insert(index, cinsn_t) - | - | remove = cblock_remove(self, item) - | # cblock.remove(cinsn_t) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cblock_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: - | - | back(self, *args) - | back(self) -> cinsn_t - | back(self) -> cinsn_t - | - | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) - | erase(self, p) - | - | front(self, *args) - | front(self) -> cinsn_t - | front(self) -> cinsn_t - | - | pop_back(self, *args) - | pop_back(self) - | - | pop_front(self, *args) - | pop_front(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> cinsn_t - | - | push_front(self, *args) - | push_front(self, x) - | - | rbegin(self, *args) - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | rend(self, *args) - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, x) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class ccase_t in module ida_hexrays: - -class ccase_t(cinsn_t) - | Proxy of C++ ccase_t class. - | - | Method resolution order: - | ccase_t - | cinsn_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ccase_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | size(self, *args) - | size(self) -> size_t - | - | value(self, *args) - | value(self, i) -> uint64 const & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | values - | ccase_t_values_get(self) -> ulonglongvec_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ccase_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cinsn_t: - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_casm(self, *args) - | _get_casm(self) -> casm_t - | - | _get_cblock(self, *args) - | _get_cblock(self) -> cblock_t - | - | _get_cdo(self, *args) - | _get_cdo(self) -> cdo_t - | - | _get_cexpr(self, *args) - | _get_cexpr(self) -> cexpr_t - | - | _get_cfor(self, *args) - | _get_cfor(self) -> cfor_t - | - | _get_cgoto(self, *args) - | _get_cgoto(self) -> cgoto_t - | - | _get_cif(self, *args) - | _get_cif(self) -> cif_t - | - | _get_creturn(self, *args) - | _get_creturn(self) -> creturn_t - | - | _get_cswitch(self, *args) - | _get_cswitch(self) -> cswitch_t - | - | _get_cwhile(self, *args) - | _get_cwhile(self) -> cwhile_t - | - | _print(self, *args) - | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_casm(self, *args) - | _set_casm(self, _v) - | - | _set_cblock(self, *args) - | _set_cblock(self, _v) - | - | _set_cdo(self, *args) - | _set_cdo(self, _v) - | - | _set_cexpr(self, *args) - | _set_cexpr(self, _v) - | - | _set_cfor(self, *args) - | _set_cfor(self, _v) - | - | _set_cgoto(self, *args) - | _set_cgoto(self, _v) - | - | _set_cif(self, *args) - | _set_cif(self, _v) - | - | _set_creturn(self, *args) - | _set_creturn(self, _v) - | - | _set_cswitch(self, *args) - | _set_cswitch(self, _v) - | - | _set_cwhile(self, *args) - | _set_cwhile(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cinsn_t - | - | cleanup(self, *args) - | cleanup(self) - | - | collect_free_breaks(self, *args) - | collect_free_breaks(self, breaks) -> bool - | - | collect_free_continues(self, *args) - | collect_free_continues(self, continues) -> bool - | - | contains_free_break(self, *args) - | contains_free_break(self) -> bool - | - | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, type, times=1) -> bool - | - | create_if(self, *args) - | create_if(self, cnd) -> cif_t - | - | is_epilog(self) - | - | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool - | - | new_insn(self, *args) - | new_insn(self, insn_ea) -> cinsn_t - | - | print1(self, *args) - | print1(self, func) - | - | swap(self, *args) - | swap(self, r) - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Static methods inherited from cinsn_t: - | - | insn_is_epilog(*args) - | insn_is_epilog(insn) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cinsn_t: - | - | casm - | - | cblock - | - | cdo - | - | cexpr - | - | cfor - | - | cgoto - | - | cif - | - | creturn - | - | cswitch - | - | cwhile - | - | details - | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. - | - | opname - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from cinsn_t: - | - | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on class ccases_t in module ida_hexrays: - -class ccases_t(qvector_ccase_t) - | Proxy of C++ ccases_t class. - | - | Method resolution order: - | ccases_t - | qvector_ccase_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ccases_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ccases_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_ccase_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ccase_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ccase_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> ccase_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ccase_t - | begin(self) -> ccase_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ccase_t - | end(self) -> ccase_t - | - | erase(self, *args) - | erase(self, it) -> ccase_t - | erase(self, first, last) -> ccase_t - | - | extract(self, *args) - | extract(self) -> ccase_t - | - | find(self, *args) - | find(self, x) -> ccase_t - | find(self, x) -> ccase_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ccase_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ccase_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ccase_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_ccase_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class cdg_insn_iterator_t in module ida_hexrays: - -class cdg_insn_iterator_t(__builtin__.object) - | Proxy of C++ cdg_insn_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> cdg_insn_iterator_t - | __init__(self, r) -> cdg_insn_iterator_t - | - | __repr__ = _swig_repr(self) - | - | dslot_with_xrefs(self, *args) - | dslot_with_xrefs(self) -> bool - | - | has_dslot(self, *args) - | has_dslot(self) -> bool - | - | next(self, *args) - | next(self, ins) -> merror_t - | - | ok(self, *args) - | ok(self) -> bool - | - | start(self, *args) - | start(self, rng) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t - | - | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * - | - | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t - | - | end - | cdg_insn_iterator_t_end_get(self) -> ea_t - | - | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool - | - | is_separate_dslot - | cdg_insn_iterator_t_is_separate_dslot_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cdg_insn_iterator_t(self) - -Help on class cdo_t in module ida_hexrays: - -class cdo_t(cloop_t) - | Proxy of C++ cdo_t class. - | - | Method resolution order: - | cdo_t - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cdo_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cdo_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cloop_t: - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cloop_t: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class ceinsn_t in module ida_hexrays: - -class ceinsn_t(__builtin__.object) - | Proxy of C++ ceinsn_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ceinsn_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ceinsn_t(self) - -Help on function cexpr_operands in module ida_hexrays: - -cexpr_operands(self) - return a dictionary with the operands of a cexpr_t. - -Help on class cexpr_t in module ida_hexrays: - -class cexpr_t(citem_t) - | Proxy of C++ cexpr_t class. - | - | Method resolution order: - | cexpr_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t - | __init__(self, cop, _x, _y) -> cexpr_t - | __init__(self, cop, _x, _y, _z) -> cexpr_t - | __init__(self, r) -> cexpr_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_a(self, *args) - | _get_a(self) -> carglist_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char * - | - | _get_insn(self, *args) - | _get_insn(self) -> cinsn_t - | - | _get_m(self, *args) - | _get_m(self) -> int - | - | _get_n(self, *args) - | _get_n(self) -> cnumber_t - | - | _get_obj_ea(self, *args) - | _get_obj_ea(self) -> ea_t - | - | _get_ptrsize(self, *args) - | _get_ptrsize(self) -> int - | - | _get_refwidth(self, *args) - | _get_refwidth(self) -> int - | - | _get_string(self, *args) - | _get_string(self) -> char * - | - | _get_x(self, *args) - | _get_x(self) -> cexpr_t - | - | _get_y(self, *args) - | _get_y(self) -> cexpr_t - | - | _get_z(self, *args) - | _get_z(self) -> cexpr_t - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_insn(self, *args) - | _set_insn(self, _v) - | - | _set_m(self, *args) - | _set_m(self, _v) - | - | _set_n(self, *args) - | _set_n(self, _v) - | - | _set_obj_ea(self, *args) - | _set_obj_ea(self, _v) - | - | _set_ptrsize(self, *args) - | _set_ptrsize(self, _v) - | - | _set_refwidth(self, *args) - | _set_refwidth(self, _v) - | - | _set_string(self, *args) - | _set_string(self, _v) - | - | _set_x(self, *args) - | _set_x(self, _v) - | - | _set_y(self, *args) - | _set_y(self, _v) - | - | _set_z(self, *args) - | _set_z(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cexpr_t - | - | calc_type(self, *args) - | calc_type(self, recursive) - | - | cleanup(self, *args) - | cleanup(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains_comma(self, *args) - | contains_comma(self, times=1) -> bool - | - | contains_comma_or_insn_or_label(self, *args) - | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, times=1) -> bool - | - | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool - | - | contains_operator(self, *args) - | contains_operator(self, needed_op, times=1) -> bool - | - | cpadone(self, *args) - | cpadone(self) -> bool - | - | equal_effect(self, *args) - | equal_effect(self, r) -> bool - | - | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t - | - | find_op(self, *args) - | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t - | - | get_1num_op(self, *args) - | get_1num_op(self, o1, o2) -> bool - | - | get_const_value(self, *args) - | get_const_value(self) -> bool - | - | get_high_nbit_bound(self, *args) - | get_high_nbit_bound(self) -> bit_bound_t - | - | get_low_nbit_bound(self, *args) - | get_low_nbit_bound(self) -> int - | - | get_ptr_or_array(self, *args) - | get_ptr_or_array(self) -> cexpr_t - | - | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t - | - | get_v(self, *args) - | get_v(self) -> var_ref_t - | - | has_side_effects(self, *args) - | has_side_effects(self) -> bool - | - | is_call_arg_of(self, *args) - | is_call_arg_of(self, parent) -> bool - | - | is_call_object_of(self, *args) - | is_call_object_of(self, parent) -> bool - | - | is_child_of(self, *args) - | is_child_of(self, parent) -> bool - | - | is_const_value(self, *args) - | is_const_value(self, _v) -> bool - | - | is_cstr(self, *args) - | is_cstr(self) -> bool - | - | is_fpop(self, *args) - | is_fpop(self) -> bool - | - | is_jumpout(self, *args) - | is_jumpout(self) -> bool - | - | is_negative_const(self, *args) - | is_negative_const(self) -> bool - | - | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool - | - | is_nice_expr(self, *args) - | is_nice_expr(self) -> bool - | - | is_non_negative_const(self, *args) - | is_non_negative_const(self) -> bool - | - | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool - | - | is_odd_lvalue(self, *args) - | is_odd_lvalue(self) -> bool - | - | is_type_signed(self, *args) - | is_type_signed(self) -> bool - | - | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_zero_const(self, *args) - | is_zero_const(self) -> bool - | - | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool - | - | numval(self, *args) - | numval(self) -> uint64 - | - | print1(self, *args) - | print1(self, func) - | - | put_number(self, *args) - | put_number(self, func, value, nbytes, sign=no_sign) - | - | requires_lvalue(self, *args) - | requires_lvalue(self, child) -> bool - | - | set_cpadone(self, *args) - | set_cpadone(self) - | - | set_v(self, *args) - | set_v(self, v) - | - | set_vftable(self, *args) - | set_vftable(self) - | - | swap(self, *args) - | swap(self, r) - | - | theother(self, *args) - | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | a - | - | exflags - | cexpr_t_exflags_get(self) -> uint32 - | - | fpc - | - | helper - | - | insn - | - | m - | - | n - | - | obj_ea - | - | operands - | return a dictionary with the operands of a cexpr_t. - | - | opname - | - | ptrsize - | - | refwidth - | - | string - | - | thisown - | The membership flag - | - | type - | cexpr_t_type_get(self) -> tinfo_t - | - | v - | - | x - | - | y - | - | z - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cexpr_t(self) - | - | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cexpr - | citem_t_cexpr_get(self) -> cexpr_t - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on class cfor_t in module ida_hexrays: - -class cfor_t(cloop_t) - | Proxy of C++ cfor_t class. - | - | Method resolution order: - | cfor_t - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cfor_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | init - | cfor_t_init_get(self) -> cexpr_t - | - | step - | cfor_t_step_get(self) -> cexpr_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cfor_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cloop_t: - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cloop_t: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class cfunc_parentee_t in module ida_hexrays: - -class cfunc_parentee_t(ctree_parentee_t) - | Proxy of C++ cfunc_parentee_t class. - | - | Method resolution order: - | cfunc_parentee_t - | ctree_parentee_t - | ctree_visitor_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, f, post=False) -> cfunc_parentee_t - | - | __repr__ = _swig_repr(self) - | - | calc_rvalue_type(self, *args) - | calc_rvalue_type(self, target, e) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | func - | cfunc_parentee_t_func_get(self) -> cfunc_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cfunc_parentee_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ctree_parentee_t: - | - | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool - | - | ---------------------------------------------------------------------- - | Methods inherited from ctree_visitor_t: - | - | apply_to(self, *args) - | apply_to(self, item, parent) -> int - | - | apply_to_exprs(self, *args) - | apply_to_exprs(self, item, parent) -> int - | - | clr_prune(self, *args) - | clr_prune(self) - | - | clr_restart(self, *args) - | clr_restart(self) - | - | is_postorder(self, *args) - | is_postorder(self) -> bool - | - | leave_expr(self, *args) - | leave_expr(self, arg0) -> int - | - | leave_insn(self, *args) - | leave_insn(self, arg0) -> int - | - | maintain_parents(self, *args) - | maintain_parents(self) -> bool - | - | must_prune(self, *args) - | must_prune(self) -> bool - | - | must_restart(self, *args) - | must_restart(self) -> bool - | - | only_insns(self, *args) - | only_insns(self) -> bool - | - | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t - | - | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t - | - | prune_now(self, *args) - | prune_now(self) - | - | set_restart(self, *args) - | set_restart(self) - | - | visit_expr(self, *args) - | visit_expr(self, arg0) -> int - | - | visit_insn(self, *args) - | visit_insn(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ctree_visitor_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int - | - | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t - -Help on class cfunc_t in module ida_hexrays: - -class cfunc_t(__builtin__.object) - | Proxy of C++ cfunc_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | __str__(self, *args) - | __str__(self) -> qstring - | - | build_c_tree(self, *args) - | build_c_tree(self) - | - | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> int - | - | find_item_coords(self, *args) - | find_item_coords(self, item, px, py) -> bool - | find_item_coords(self, item) -> PyObject * - | - | find_label(self, *args) - | find_label(self, label) -> citem_t - | - | gather_derefs(self, *args) - | gather_derefs(self, ci, udm=None) -> bool - | - | get_boundaries(self, *args) - | get_boundaries(self) -> boundaries_t - | - | get_eamap(self, *args) - | get_eamap(self) -> eamap_t - | - | get_func_type(self, *args) - | get_func_type(self, type) -> bool - | - | get_line_item(self, *args) - | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | - | get_lvars(self, *args) - | get_lvars(self) -> lvars_t - | - | get_pseudocode(self, *args) - | get_pseudocode(self) -> strvec_t - | - | get_stkoff_delta(self, *args) - | get_stkoff_delta(self) -> sval_t - | - | get_user_cmt(self, *args) - | get_user_cmt(self, loc, rt) -> char const * - | - | get_user_iflags(self, *args) - | get_user_iflags(self, loc) -> int32 - | - | get_user_union_selection(self, *args) - | get_user_union_selection(self, ea, path) -> bool - | - | get_warnings(self, *args) - | get_warnings(self) -> hexwarns_t - | - | has_orphan_cmts(self, *args) - | has_orphan_cmts(self) -> bool - | - | print_dcl(self, *args) - | print_dcl(self) - | - | print_func(self, *args) - | print_func(self, vp) - | - | refresh_func_ctext(self, *args) - | refresh_func_ctext(self) - | - | release(self, *args) - | release(self) - | - | remove_unused_labels(self, *args) - | remove_unused_labels(self) - | - | save_user_cmts(self, *args) - | save_user_cmts(self) - | - | save_user_iflags(self, *args) - | save_user_iflags(self) - | - | save_user_labels(self, *args) - | save_user_labels(self) - | - | save_user_numforms(self, *args) - | save_user_numforms(self) - | - | save_user_unions(self, *args) - | save_user_unions(self) - | - | set_user_cmt(self, *args) - | set_user_cmt(self, loc, cmt) - | - | set_user_iflags(self, *args) - | set_user_iflags(self, loc, iflags) - | - | set_user_union_selection(self, *args) - | set_user_union_selection(self, ea, path) - | - | verify(self, *args) - | verify(self, aul, even_without_debugger) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argidx - | cfunc_t_argidx_get(self) -> intvec_t - | - | arguments - | - | body - | cfunc_t_body_get(self) -> cinsn_t - | - | boundaries - | get_boundaries(self) -> boundaries_t - | - | eamap - | get_eamap(self) -> eamap_t - | - | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t - | - | hdrlines - | cfunc_t_hdrlines_get(self) -> int - | - | lvars - | get_lvars(self) -> lvars_t - | - | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t - | - | mba - | cfunc_t_mba_get(self) -> mbl_array_t - | - | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t - | - | pseudocode - | get_pseudocode(self) -> strvec_t - | - | refcnt - | cfunc_t_refcnt_get(self) -> int - | - | statebits - | cfunc_t_statebits_get(self) -> int - | - | thisown - | The membership flag - | - | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t - | - | type - | Get the function's return type tinfo_t object. - | - | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t - | - | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t - | - | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t - | - | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t - | - | warnings - | get_warnings(self) -> hexwarns_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cfunc_t(self) - -Help on function cfunc_type in module ida_hexrays: - -cfunc_type(self) - Get the function's return type tinfo_t object. - -Help on class cfuncptr_t in module ida_hexrays: - -class cfuncptr_t(__builtin__.object) - | Proxy of C++ qrefcnt_t< cfunc_t > class. - | - | Methods defined here: - | - | __deref__(self, *args) - | __deref__(self) -> cfunc_t - | - | __eq__ lambda self, other - | - | __init__(self, *args) - | __init__(self, p) -> cfuncptr_t - | __init__(self, r) -> cfuncptr_t - | - | __ptrval__(self, *args) - | __ptrval__(self) -> size_t - | - | __ref__(self, *args) - | __ref__(self) -> cfunc_t - | - | __repr__ = _swig_repr(self) - | - | __str__ lambda self - | - | build_c_tree(self, *args) - | build_c_tree(self) - | - | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> int - | - | find_item_coords(self, *args) - | find_item_coords(self, item, px, py) -> bool - | find_item_coords(self, item) -> PyObject * - | - | find_label(self, *args) - | find_label(self, label) -> citem_t - | - | gather_derefs(self, *args) - | gather_derefs(self, ci, udm=None) -> bool - | - | get_boundaries(self, *args) - | get_boundaries(self) -> boundaries_t - | - | get_eamap(self, *args) - | get_eamap(self) -> eamap_t - | - | get_func_type(self, *args) - | get_func_type(self, type) -> bool - | - | get_line_item(self, *args) - | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | - | get_lvars(self, *args) - | get_lvars(self) -> lvars_t - | - | get_pseudocode(self, *args) - | get_pseudocode(self) -> strvec_t - | - | get_stkoff_delta(self, *args) - | get_stkoff_delta(self) -> sval_t - | - | get_user_cmt(self, *args) - | get_user_cmt(self, loc, rt) -> char const * - | - | get_user_iflags(self, *args) - | get_user_iflags(self, loc) -> int32 - | - | get_user_union_selection(self, *args) - | get_user_union_selection(self, ea, path) -> bool - | - | get_warnings(self, *args) - | get_warnings(self) -> hexwarns_t - | - | has_orphan_cmts(self, *args) - | has_orphan_cmts(self) -> bool - | - | print_dcl(self, *args) - | print_dcl(self) - | - | print_func(self, *args) - | print_func(self, vp) - | - | refresh_func_ctext(self, *args) - | refresh_func_ctext(self) - | - | release(self, *args) - | release(self) - | - | remove_unused_labels(self, *args) - | remove_unused_labels(self) - | - | reset(self, *args) - | reset(self) - | - | save_user_cmts(self, *args) - | save_user_cmts(self) - | - | save_user_iflags(self, *args) - | save_user_iflags(self) - | - | save_user_labels(self, *args) - | save_user_labels(self) - | - | save_user_numforms(self, *args) - | save_user_numforms(self) - | - | save_user_unions(self, *args) - | save_user_unions(self) - | - | set_user_cmt(self, *args) - | set_user_cmt(self, loc, cmt) - | - | set_user_iflags(self, *args) - | set_user_iflags(self, loc, iflags) - | - | set_user_union_selection(self, *args) - | set_user_union_selection(self, ea, path) - | - | verify(self, *args) - | verify(self, aul, even_without_debugger) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t - | - | arguments - | - | body - | cfuncptr_t_body_get(self) -> cinsn_t - | - | boundaries - | - | eamap - | - | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t - | - | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int - | - | lvars - | - | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t - | - | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t - | - | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t - | - | pseudocode - | - | refcnt - | cfuncptr_t_refcnt_get(self) -> int - | - | statebits - | cfuncptr_t_statebits_get(self) -> int - | - | thisown - | The membership flag - | - | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t - | - | type - | - | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t - | - | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t - | - | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t - | - | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t - | - | warnings - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cfuncptr_t(self) - -Help on class cgoto_t in module ida_hexrays: - -class cgoto_t(__builtin__.object) - | Proxy of C++ cgoto_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cgoto_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | label_num - | cgoto_t_label_num_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cgoto_t(self) - -Help on class chain_keeper_t in module ida_hexrays: - -class chain_keeper_t(__builtin__.object) - | Proxy of C++ chain_keeper_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _gc) -> chain_keeper_t - | - | __repr__ = _swig_repr(self) - | - | back(self, *args) - | back(self) -> block_chains_t - | - | for_all_chains(self, *args) - | for_all_chains(self, cv, gca) -> int - | - | front(self, *args) - | front(self) -> block_chains_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_chain_keeper_t(self) - -Help on class chain_t in module ida_hexrays: - -class chain_t(ida_pro.intvec_t) - | Proxy of C++ chain_t class. - | - | Method resolution order: - | chain_t - | ida_pro.intvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> chain_t - | __init__(self, t, off, w=1, v=-1) -> chain_t - | __init__(self, _k, w=1) -> chain_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | append_list(self, *args) - | append_list(self, list) - | - | clear_varnum(self, *args) - | clear_varnum(self) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | endoff(self, *args) - | endoff(self) -> voff_t - | - | get_reg(self, *args) - | get_reg(self) -> mreg_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | includes(self, *args) - | includes(self, r) -> bool - | - | is_fake(self, *args) - | is_fake(self) -> bool - | - | is_inited(self, *args) - | is_inited(self) -> bool - | - | is_overlapped(self, *args) - | is_overlapped(self) -> bool - | - | is_passreg(self, *args) - | is_passreg(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_replaced(self, *args) - | is_replaced(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | is_term(self, *args) - | is_term(self) -> bool - | - | key(self, *args) - | key(self) -> voff_t - | - | overlap(self, *args) - | overlap(self, r) -> bool - | - | set_inited(self, *args) - | set_inited(self, b) - | - | set_overlapped(self, *args) - | set_overlapped(self, b) - | - | set_replaced(self, *args) - | set_replaced(self, b) - | - | set_term(self, *args) - | set_term(self, b) - | - | set_value(self, *args) - | set_value(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | chain_t_flags_get(self) -> uchar - | - | thisown - | The membership flag - | - | varnum - | chain_t_varnum_get(self) -> int - | - | width - | chain_t_width_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_chain_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_pro.intvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> int const & - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> int & - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> int const & - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< int >::iterator - | begin(self) -> qvector< int >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< int >::iterator - | end(self) -> qvector< int >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< int >::iterator - | erase(self, first, last) -> qvector< int >::iterator - | - | extract(self, *args) - | extract(self) -> int * - | - | find(self, *args) - | find(self, x) -> qvector< int >::iterator - | find(self, x) -> qvector< int >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< int >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> int & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_pro.intvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class chain_visitor_t in module ida_hexrays: - -class chain_visitor_t(__builtin__.object) - | Proxy of C++ chain_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> chain_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_chain(self, *args) - | visit_chain(self, nblock, ch) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | parent - | chain_visitor_t_parent_get(self) -> block_chains_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_chain_visitor_t(self) - -Help on function checkout_hexrays_license in module ida_hexrays: - -checkout_hexrays_license(*args) - checkout_hexrays_license(silent) -> bool - - - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - - @param silent: silently fail if the license can not be checked out. - (C++: bool) - @return: false if failed - -Help on class cif_t in module ida_hexrays: - -class cif_t(ceinsn_t) - | Proxy of C++ cif_t class. - | - | Method resolution order: - | cif_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cif_t - | __init__(self, r) -> cif_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, r) -> cif_t - | - | cleanup(self, *args) - | cleanup(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ielse - | cif_t_ielse_get(self) -> cinsn_t - | - | ithen - | cif_t_ithen_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cif_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on function cinsn_details in module ida_hexrays: - -cinsn_details(self) - return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. - -Help on class cinsn_t in module ida_hexrays: - -class cinsn_t(citem_t) - | Proxy of C++ cinsn_t class. - | - | Method resolution order: - | cinsn_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cinsn_t - | __init__(self, r) -> cinsn_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_casm(self, *args) - | _get_casm(self) -> casm_t - | - | _get_cblock(self, *args) - | _get_cblock(self) -> cblock_t - | - | _get_cdo(self, *args) - | _get_cdo(self) -> cdo_t - | - | _get_cexpr(self, *args) - | _get_cexpr(self) -> cexpr_t - | - | _get_cfor(self, *args) - | _get_cfor(self) -> cfor_t - | - | _get_cgoto(self, *args) - | _get_cgoto(self) -> cgoto_t - | - | _get_cif(self, *args) - | _get_cif(self) -> cif_t - | - | _get_creturn(self, *args) - | _get_creturn(self) -> creturn_t - | - | _get_cswitch(self, *args) - | _get_cswitch(self) -> cswitch_t - | - | _get_cwhile(self, *args) - | _get_cwhile(self) -> cwhile_t - | - | _print(self, *args) - | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_casm(self, *args) - | _set_casm(self, _v) - | - | _set_cblock(self, *args) - | _set_cblock(self, _v) - | - | _set_cdo(self, *args) - | _set_cdo(self, _v) - | - | _set_cexpr(self, *args) - | _set_cexpr(self, _v) - | - | _set_cfor(self, *args) - | _set_cfor(self, _v) - | - | _set_cgoto(self, *args) - | _set_cgoto(self, _v) - | - | _set_cif(self, *args) - | _set_cif(self, _v) - | - | _set_creturn(self, *args) - | _set_creturn(self, _v) - | - | _set_cswitch(self, *args) - | _set_cswitch(self, _v) - | - | _set_cwhile(self, *args) - | _set_cwhile(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cinsn_t - | - | cleanup(self, *args) - | cleanup(self) - | - | collect_free_breaks(self, *args) - | collect_free_breaks(self, breaks) -> bool - | - | collect_free_continues(self, *args) - | collect_free_continues(self, continues) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains_free_break(self, *args) - | contains_free_break(self) -> bool - | - | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, type, times=1) -> bool - | - | create_if(self, *args) - | create_if(self, cnd) -> cif_t - | - | is_epilog(self) - | - | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool - | - | new_insn(self, *args) - | new_insn(self, insn_ea) -> cinsn_t - | - | print1(self, *args) - | print1(self, func) - | - | swap(self, *args) - | swap(self, r) - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | insn_is_epilog(*args) - | insn_is_epilog(insn) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | casm - | - | cblock - | - | cdo - | - | cexpr - | - | cfor - | - | cgoto - | - | cif - | - | creturn - | - | cswitch - | - | cwhile - | - | details - | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. - | - | opname - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cinsn_t(self) - | - | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on function cinsn_t_insn_is_epilog in module ida_hexrays: - -cinsn_t_insn_is_epilog(*args) - cinsn_t_insn_is_epilog(insn) -> bool - -Help on class cinsnptrvec_t in module ida_hexrays: - -class cinsnptrvec_t(__builtin__.object) - | Proxy of C++ qvector< cinsn_t * > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> cinsn_t - | - | __init__(self, *args) - | __init__(self) -> cinsnptrvec_t - | __init__(self, x) -> cinsnptrvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< cinsn_t * >::iterator - | begin(self) -> qvector< cinsn_t * >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< cinsn_t * >::iterator - | end(self) -> qvector< cinsn_t * >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< cinsn_t * >::iterator - | erase(self, first, last) -> qvector< cinsn_t * >::iterator - | - | extract(self, *args) - | extract(self) -> cinsn_t ** - | - | find(self, *args) - | find(self, x) -> qvector< cinsn_t * >::iterator - | find(self, x) -> qvector< cinsn_t * >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< cinsn_t * >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> cinsn_t *& - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cinsnptrvec_t(self) - -Help on class citem_cmt_t in module ida_hexrays: - -class citem_cmt_t(__builtin__.object) - | Proxy of C++ citem_cmt_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> citem_cmt_t - | __init__(self, s) -> citem_cmt_t - | - | __repr__ = _swig_repr(self) - | - | __str__(self, *args) - | __str__(self) -> char const * - | - | c_str(self, *args) - | c_str(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | used - | citem_cmt_t_used_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_citem_cmt_t(self) - -Help on class citem_locator_t in module ida_hexrays: - -class citem_locator_t(__builtin__.object) - | Proxy of C++ citem_locator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _ea, _op) -> citem_locator_t - | __init__(self, i) -> citem_locator_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | citem_locator_t_ea_get(self) -> ea_t - | - | op - | citem_locator_t_op_get(self) -> ctype_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_citem_locator_t(self) - -Help on class citem_t in module ida_hexrays: - -class citem_t(__builtin__.object) - | Proxy of C++ citem_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> citem_t - | __init__(self, o) -> citem_t - | - | __repr__ = _swig_repr(self) - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | print1(self, *args) - | print1(self, func) - | - | replace_by(self, o) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cexpr - | citem_t_cexpr_get(self) -> cexpr_t - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | thisown - | The membership flag - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_citem_t(self) - -Help on function citem_to_specific_type in module ida_hexrays: - -citem_to_specific_type(self) - cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on function clear_cached_cfuncs in module ida_hexrays: - -clear_cached_cfuncs(*args) - clear_cached_cfuncs() - - - Flush all cached decompilation results. - -Help on class cloop_t in module ida_hexrays: - -class cloop_t(ceinsn_t) - | Proxy of C++ cloop_t class. - | - | Method resolution order: - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> cloop_t - | __init__(self, b) -> cloop_t - | __init__(self, r) -> cloop_t - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cloop_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on function close_pseudocode in module ida_hexrays: - -close_pseudocode(*args) - close_pseudocode(f) -> bool - - - Close pseudocode window. - - @param f: pointer to window (C++: TWidget *) - @return: false if failed - -Help on class cnumber_t in module ida_hexrays: - -class cnumber_t(__builtin__.object) - | Proxy of C++ cnumber_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _opnum=0) -> cnumber_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, type, parent=None, nice_stroff=None) - | - | assign(self, *args) - | assign(self, v, nbytes, sign) - | - | compare(self, *args) - | compare(self, r) -> int - | - | value(self, *args) - | value(self, type) -> uint64 - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | _value - | cnumber_t__value_get(self) -> uint64 - | - | nf - | cnumber_t_nf_get(self) -> number_format_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cnumber_t(self) - -Help on class codegen_t in module ida_hexrays: - -class codegen_t(__builtin__.object) - | Proxy of C++ codegen_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, m) -> codegen_t - | - | __repr__ = _swig_repr(self) - | - | analyze_prolog(self, *args) - | analyze_prolog(self, fc, reachable) -> merror_t - | - | emit(self, *args) - | emit(self, code, width, l, r, d, offsize) -> minsn_t - | emit(self, code, l, r, d) -> minsn_t - | - | emit_micro_mvm(self, *args) - | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t - | - | gen_micro(self, *args) - | gen_micro(self) -> merror_t - | - | load_operand(self, *args) - | load_operand(self, opnum) -> mreg_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ignore_micro - | codegen_t_ignore_micro_get(self) -> char - | - | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t - | - | insn - | codegen_t_insn_get(self) -> insn_t * - | - | mb - | codegen_t_mb_get(self) -> mblock_t - | - | mba - | codegen_t_mba_get(self) -> mbl_array_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_codegen_t(self) - -Help on function convert_to_user_call in module ida_hexrays: - -convert_to_user_call(*args) - convert_to_user_call(udc, cdg) -> merror_t - - - try to generate user-defined call for an instruction - - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) - -Help on function create_field_name in module ida_hexrays: - -create_field_name(*args) - create_field_name(type, offset=BADADDR) -> qstring - -Help on function create_helper in module ida_hexrays: - -create_helper(*args) - -Help on function create_typedef in module ida_hexrays: - -create_typedef(*args) - create_typedef(name) -> tinfo_t - create_typedef(n) -> tinfo_t - - - Create a reference to a named type. - - @param name: type name (C++: const char *) - @return: type which refers to the specified name. For example, if name - is "DWORD", the type info which refers to "DWORD" is created. - -Help on class creturn_t in module ida_hexrays: - -class creturn_t(ceinsn_t) - | Proxy of C++ creturn_t class. - | - | Method resolution order: - | creturn_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> creturn_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_creturn_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class cswitch_t in module ida_hexrays: - -class cswitch_t(ceinsn_t) - | Proxy of C++ cswitch_t class. - | - | Method resolution order: - | cswitch_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cswitch_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cases - | cswitch_t_cases_get(self) -> ccases_t - | - | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cswitch_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class ctext_position_t in module ida_hexrays: - -class ctext_position_t(__builtin__.object) - | Proxy of C++ ctext_position_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | in_ctree(self, *args) - | in_ctree(self, hdrlines) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | ctext_position_t_lnnum_get(self) -> int - | - | thisown - | The membership flag - | - | x - | ctext_position_t_x_get(self) -> int - | - | y - | ctext_position_t_y_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ctext_position_t(self) - -Help on class ctree_anchor_t in module ida_hexrays: - -class ctree_anchor_t(__builtin__.object) - | Proxy of C++ ctree_anchor_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ctree_anchor_t - | - | __repr__ = _swig_repr(self) - | - | get_index(self, *args) - | get_index(self) -> int - | - | get_itp(self, *args) - | get_itp(self) -> item_preciser_t - | - | is_blkcmt_anchor(self, *args) - | is_blkcmt_anchor(self) -> bool - | - | is_citem_anchor(self, *args) - | is_citem_anchor(self) -> bool - | - | is_itp_anchor(self, *args) - | is_itp_anchor(self) -> bool - | - | is_lvar_anchor(self, *args) - | is_lvar_anchor(self) -> bool - | - | is_valid_anchor(self, *args) - | is_valid_anchor(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | value - | ctree_anchor_t_value_get(self) -> uval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ctree_anchor_t(self) - -Help on class ctree_item_t in module ida_hexrays: - -class ctree_item_t(__builtin__.object) - | Proxy of C++ ctree_item_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ctree_item_t - | - | __repr__ = _swig_repr(self) - | - | _get_e(self, *args) - | _get_e(self) -> cexpr_t - | - | _get_f(self, *args) - | _get_f(self) -> cfunc_t - | - | _get_i(self, *args) - | _get_i(self) -> cinsn_t - | - | _get_it(self, *args) - | _get_it(self) -> citem_t - | - | _get_l(self, *args) - | _get_l(self) -> lvar_t - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_label_num(self, *args) - | get_label_num(self, gln_flags) -> int - | - | get_lvar(self, *args) - | get_lvar(self) -> lvar_t - | - | get_memptr(self, *args) - | get_memptr(self, p_sptr=None) -> member_t * - | - | is_citem(self, *args) - | is_citem(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t - | - | e - | - | f - | - | i - | - | it - | - | l - | - | loc - | ctree_item_t_loc_get(self) -> treeloc_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ctree_item_t(self) - -Help on class ctree_items_t in module ida_hexrays: - -class ctree_items_t(__builtin__.object) - | Proxy of C++ qvector< citem_t * > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> citem_t - | - | __init__(self, *args) - | __init__(self) -> ctree_items_t - | __init__(self, x) -> ctree_items_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< citem_t * >::iterator - | begin(self) -> qvector< citem_t * >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< citem_t * >::iterator - | end(self) -> qvector< citem_t * >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< citem_t * >::iterator - | erase(self, first, last) -> qvector< citem_t * >::iterator - | - | extract(self, *args) - | extract(self) -> citem_t ** - | - | find(self, *args) - | find(self, x) -> qvector< citem_t * >::iterator - | find(self, x) -> qvector< citem_t * >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< citem_t * >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> citem_t *& - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ctree_items_t(self) - -Help on class ctree_parentee_t in module ida_hexrays: - -class ctree_parentee_t(ctree_visitor_t) - | Proxy of C++ ctree_parentee_t class. - | - | Method resolution order: - | ctree_parentee_t - | ctree_visitor_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, post=False) -> ctree_parentee_t - | - | __repr__ = _swig_repr(self) - | - | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ctree_parentee_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ctree_visitor_t: - | - | apply_to(self, *args) - | apply_to(self, item, parent) -> int - | - | apply_to_exprs(self, *args) - | apply_to_exprs(self, item, parent) -> int - | - | clr_prune(self, *args) - | clr_prune(self) - | - | clr_restart(self, *args) - | clr_restart(self) - | - | is_postorder(self, *args) - | is_postorder(self) -> bool - | - | leave_expr(self, *args) - | leave_expr(self, arg0) -> int - | - | leave_insn(self, *args) - | leave_insn(self, arg0) -> int - | - | maintain_parents(self, *args) - | maintain_parents(self) -> bool - | - | must_prune(self, *args) - | must_prune(self) -> bool - | - | must_restart(self, *args) - | must_restart(self) -> bool - | - | only_insns(self, *args) - | only_insns(self) -> bool - | - | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t - | - | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t - | - | prune_now(self, *args) - | prune_now(self) - | - | set_restart(self, *args) - | set_restart(self) - | - | visit_expr(self, *args) - | visit_expr(self, arg0) -> int - | - | visit_insn(self, *args) - | visit_insn(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ctree_visitor_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int - | - | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t - -Help on class ctree_visitor_t in module ida_hexrays: - -class ctree_visitor_t(__builtin__.object) - | Proxy of C++ ctree_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags) -> ctree_visitor_t - | - | __repr__ = _swig_repr(self) - | - | apply_to(self, *args) - | apply_to(self, item, parent) -> int - | - | apply_to_exprs(self, *args) - | apply_to_exprs(self, item, parent) -> int - | - | clr_prune(self, *args) - | clr_prune(self) - | - | clr_restart(self, *args) - | clr_restart(self) - | - | is_postorder(self, *args) - | is_postorder(self) -> bool - | - | leave_expr(self, *args) - | leave_expr(self, arg0) -> int - | - | leave_insn(self, *args) - | leave_insn(self, arg0) -> int - | - | maintain_parents(self, *args) - | maintain_parents(self) -> bool - | - | must_prune(self, *args) - | must_prune(self) -> bool - | - | must_restart(self, *args) - | must_restart(self) -> bool - | - | only_insns(self, *args) - | only_insns(self) -> bool - | - | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t - | - | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t - | - | prune_now(self, *args) - | prune_now(self) - | - | set_restart(self, *args) - | set_restart(self) - | - | visit_expr(self, *args) - | visit_expr(self, arg0) -> int - | - | visit_insn(self, *args) - | visit_insn(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int - | - | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ctree_visitor_t(self) - -Help on class cwhile_t in module ida_hexrays: - -class cwhile_t(cloop_t) - | Proxy of C++ cwhile_t class. - | - | Method resolution order: - | cwhile_t - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cwhile_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cwhile_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cloop_t: - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cloop_t: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on function debug_hexrays_ctree in module ida_hexrays: - -debug_hexrays_ctree(*args) - debug_hexrays_ctree(msg) - -Help on function decompile in module ida_hexrays: - -decompile(ea, hf=None, flags=0) - # --------------------------------------------------------------------- - -Help on function decompile_func in module ida_hexrays: - -decompile_func(*args) - decompile_func(pfn, hf, flags=0) -> cfuncptr_t - - - Decompile a function. Multiple decompilations of the same function - return the same object. - - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. - -Help on function decompile_many in module ida_hexrays: - -decompile_many(*args) - decompile_many(outfile, funcaddrs, flags) -> bool - - - Batch decompilation. Decompile all or the specified functions - - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation - -Help on function dereference in module ida_hexrays: - -dereference(e, ptrsize, is_float=False) - -Help on function dstr in module ida_hexrays: - -dstr(*args) - dstr(tif) -> char const * - - - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - - @param tif (C++: const tinfo_t *) - -Help on function dummy_ptrtype in module ida_hexrays: - -dummy_ptrtype(*args) - dummy_ptrtype(ptrsize, isfp) -> tinfo_t - - - Generate a dummy pointer type - - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) - -Help on function eamap_begin in module ida_hexrays: - -eamap_begin(*args) - eamap_begin(map) -> eamap_iterator_t - - - Get iterator pointing to the beginning of eamap_t. - - - @param map (C++: const eamap_t *) - -Help on function eamap_clear in module ida_hexrays: - -eamap_clear(*args) - eamap_clear(map) - - - Clear eamap_t. - - - @param map (C++: eamap_t *) - -Help on function eamap_end in module ida_hexrays: - -eamap_end(*args) - eamap_end(map) -> eamap_iterator_t - - - Get iterator pointing to the end of eamap_t. - - - @param map (C++: const eamap_t *) - -Help on function eamap_erase in module ida_hexrays: - -eamap_erase(*args) - eamap_erase(map, p) - - - Erase current element from eamap_t. - - - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) - -Help on function eamap_find in module ida_hexrays: - -eamap_find(*args) - eamap_find(map, key) -> eamap_iterator_t - - - Find the specified key in eamap_t. - - - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) - -Help on function eamap_first in module ida_hexrays: - -eamap_first(*args) - eamap_first(p) -> ea_t const & - - - Get reference to the current map key. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_free in module ida_hexrays: - -eamap_free(*args) - eamap_free(map) - - - Delete eamap_t instance. - - - @param map (C++: eamap_t *) - -Help on function eamap_insert in module ida_hexrays: - -eamap_insert(*args) - eamap_insert(map, key, val) -> eamap_iterator_t - - - Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - - - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) - -Help on class eamap_iterator_t in module ida_hexrays: - -class eamap_iterator_t(__builtin__.object) - | Proxy of C++ eamap_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> eamap_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | eamap_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_eamap_iterator_t(self) - -Help on function eamap_new in module ida_hexrays: - -eamap_new(*args) - eamap_new() -> eamap_t - - - Create a new eamap_t instance. - -Help on function eamap_next in module ida_hexrays: - -eamap_next(*args) - eamap_next(p) -> eamap_iterator_t - - - Move to the next element. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_prev in module ida_hexrays: - -eamap_prev(*args) - eamap_prev(p) -> eamap_iterator_t - - - Move to the previous element. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_second in module ida_hexrays: - -eamap_second(*args) - eamap_second(p) -> cinsnptrvec_t - - - Get reference to the current map value. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_size in module ida_hexrays: - -eamap_size(*args) - eamap_size(map) -> size_t - - - Get size of eamap_t. - - - @param map (C++: eamap_t *) - -Help on class eamap_t in module ida_hexrays: - -class eamap_t(__builtin__.object) - | Proxy of C++ std::map< ea_t,cinsnptrvec_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> eamap_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> cinsnptrvec_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = - | eamap_begin(map) -> eamap_iterator_t - | - | __clear = - | eamap_clear(map) - | - | __end = - | eamap_end(map) -> eamap_iterator_t - | - | __erase = - | eamap_erase(map, p) - | - | __find = - | eamap_find(map, key) -> eamap_iterator_t - | - | __first = - | eamap_first(p) -> ea_t const & - | - | __insert = - | eamap_insert(map, key, val) -> eamap_iterator_t - | - | __next = - | eamap_next(p) -> eamap_iterator_t - | - | __second = - | eamap_second(p) -> cinsnptrvec_t - | - | __size = - | eamap_size(map) -> size_t - | - | __swig_destroy__ = - | delete_eamap_t(self) - | - | keytype = - | long(x=0) -> long - | long(x, base=10) -> long - | - | Convert a number or string to a long integer, or return 0L if no arguments - | are given. If x is floating point, the conversion truncates towards zero. - | - | If x is not a number or if base is given, then x must be a string or - | Unicode object representing an integer literal in the given base. The - | literal can be preceded by '+' or '-' and be surrounded by whitespace. - | The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to - | interpret the base from the string as an integer literal. - | >>> int('0b100', base=0) - | 4L - | - | valuetype = - | Proxy of C++ qvector< cinsn_t * > class. - -Help on class fnum_array in module ida_hexrays: - -class fnum_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< uint16,6 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned short const & - | - | __init__(self, *args) - | __init__(self, data) -> fnum_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | fnum_array_data_get(self) -> unsigned short (&)[6] - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_fnum_array(self) - -Help on class fnumber_t in module ida_hexrays: - -class fnumber_t(__builtin__.object) - | Proxy of C++ fnumber_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> fnumber_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _fnumber_t__get_fnum = __get_fnum(self, *args) - | __get_fnum(self) -> fnum_array - | - | _print(self, *args) - | _print(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | dereference_const_uint16(self, *args) - | dereference_const_uint16(self) -> uint16 const * - | - | dereference_uint16(self, *args) - | dereference_uint16(self) -> uint16 * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fnum - | __get_fnum(self) -> fnum_array - | - | nbytes - | fnumber_t_nbytes_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_fnumber_t(self) - -Help on class gco_info_t in module ida_hexrays: - -class gco_info_t(__builtin__.object) - | Proxy of C++ gco_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> gco_info_t - | - | __repr__ = _swig_repr(self) - | - | append_to_list(self, *args) - | append_to_list(self, list, mba) -> bool - | - | is_def(self, *args) - | is_def(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_use(self, *args) - | is_use(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | gco_info_t_flags_get(self) -> int - | - | name - | gco_info_t_name_get(self) -> qstring * - | - | size - | gco_info_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_gco_info_t(self) - -Help on function gen_microcode in module ida_hexrays: - -gen_microcode(*args) - gen_microcode(mbr, hf, retlist=None, flags=0, reqmat=MMAT_GLBOPT3) -> mbl_array_t - - - Generate microcode of an arbitrary code snippet - - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. - -Help on function get_ctype_name in module ida_hexrays: - -get_ctype_name(*args) - get_ctype_name(op) -> char const * - -Help on function get_current_operand in module ida_hexrays: - -get_current_operand(*args) - get_current_operand(out) -> bool - - - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - return true. - - @param out (C++: gco_info_t *) - -Help on function get_float_type in module ida_hexrays: - -get_float_type(*args) - get_float_type(width) -> tinfo_t - - - Get a type of a floating point value with the specified width - - @param width: width of the desired type (C++: int) - @return: type info object - -Help on function get_hexrays_version in module ida_hexrays: - -get_hexrays_version(*args) - get_hexrays_version() -> char const * - - - Get decompiler version. The returned string is of the form - ... - - @return: pointer to version string. For example: "2.0.0.140605" - -Help on function get_int_type_by_width_and_sign in module ida_hexrays: - -get_int_type_by_width_and_sign(*args) - get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t - - - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) - -Help on function get_member_type in module ida_hexrays: - -get_member_type(*args) - get_member_type(mptr, type) -> bool - - - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) - @return: false if failed - -Help on function get_merror_desc in module ida_hexrays: - -get_merror_desc(*args) - get_merror_desc(code, mba) -> str - - - Get textual description of an error code - - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mbl_array_t *) - @return: the error address - -Help on function get_mreg_name in module ida_hexrays: - -get_mreg_name(*args) - get_mreg_name(reg, width, ud=None) -> str - - - Get the microregister name - - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. - -Help on function get_op_signness in module ida_hexrays: - -get_op_signness(*args) - get_op_signness(op) -> type_sign_t - - - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - - - @param op (C++: ctype_t) - -Help on function get_signed_mcode in module ida_hexrays: - -get_signed_mcode(*args) - get_signed_mcode(code) -> mcode_t - -Help on function get_temp_regs in module ida_hexrays: - -get_temp_regs(*args) - get_temp_regs() -> mlist_t - - - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. - -Help on function get_type in module ida_hexrays: - -get_type(*args) - get_type(id, tif, guess) -> bool - - - Get a global type. Global types are types of addressable objects and - struct/union/enum types - - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) - @return: success - -Help on function get_unk_type in module ida_hexrays: - -get_unk_type(*args) - get_unk_type(size) -> tinfo_t - - - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - - @param size: size of the type in bytes (C++: int) - -Help on function get_unsigned_mcode in module ida_hexrays: - -get_unsigned_mcode(*args) - get_unsigned_mcode(code) -> mcode_t - -Help on function get_widget_vdui in module ida_hexrays: - -get_widget_vdui(*args) - get_widget_vdui(f) -> vdui_t - - - Get the 'vdui_t' instance associated to the TWidget - - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL - -Help on function getb_reginsn in module ida_hexrays: - -getb_reginsn(*args) - getb_reginsn(ins) -> minsn_t - - - Skip assertions backward. - - - @param ins (C++: const minsn_t *) - -Help on function getf_reginsn in module ida_hexrays: - -getf_reginsn(*args) - getf_reginsn(ins) -> minsn_t - - - Skip assertions forward. - - - @param ins (C++: const minsn_t *) - -Help on class graph_chains_t in module ida_hexrays: - -class graph_chains_t(block_chains_vec_t) - | Proxy of C++ graph_chains_t class. - | - | Method resolution order: - | graph_chains_t - | block_chains_vec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> graph_chains_t - | - | __repr__ = _swig_repr(self) - | - | acquire(self, *args) - | acquire(self) - | - | for_all_chains(self, *args) - | for_all_chains(self, cv, gca_flags) -> int - | - | is_locked(self, *args) - | is_locked(self) -> bool - | - | release(self, *args) - | release(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_graph_chains_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from block_chains_vec_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> block_chains_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> block_chains_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> block_chains_t - | begin(self) -> block_chains_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> block_chains_t - | end(self) -> block_chains_t - | - | erase(self, *args) - | erase(self, it) -> block_chains_t - | erase(self, first, last) -> block_chains_t - | - | extract(self, *args) - | extract(self) -> block_chains_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=block_chains_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> block_chains_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> block_chains_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from block_chains_vec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function has_cached_cfunc in module ida_hexrays: - -has_cached_cfunc(*args) - has_cached_cfunc(ea) -> bool - - - Do we have a cached decompilation result for 'ea'? - - - @param ea (C++: ea_t) - -Help on function hexrays_alloc in module ida_hexrays: - -hexrays_alloc(*args) - hexrays_alloc(size) -> void * - -Help on class hexrays_failure_t in module ida_hexrays: - -class hexrays_failure_t(__builtin__.object) - | Proxy of C++ hexrays_failure_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> hexrays_failure_t - | __init__(self, c, ea, buf=None) -> hexrays_failure_t - | __init__(self, c, ea, buf) -> hexrays_failure_t - | - | __repr__ = _swig_repr(self) - | - | __str__ lambda self - | - | desc(self, *args) - | desc(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | code - | hexrays_failure_t_code_get(self) -> merror_t - | - | errea - | hexrays_failure_t_errea_get(self) -> ea_t - | - | str - | hexrays_failure_t_str_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_hexrays_failure_t(self) - -Help on function hexrays_free in module ida_hexrays: - -hexrays_free(*args) - hexrays_free(ptr) - -Help on class hexwarn_t in module ida_hexrays: - -class hexwarn_t(__builtin__.object) - | Proxy of C++ hexwarn_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> hexwarn_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | hexwarn_t_ea_get(self) -> ea_t - | - | id - | hexwarn_t_id_get(self) -> warnid_t - | - | text - | hexwarn_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_hexwarn_t(self) - -Help on class hexwarns_t in module ida_hexrays: - -class hexwarns_t(__builtin__.object) - | Proxy of C++ qvector< hexwarn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> hexwarn_t - | - | __init__(self, *args) - | __init__(self) -> hexwarns_t - | __init__(self, x) -> hexwarns_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> hexwarn_t - | end(self) -> hexwarn_t - | - | erase(self, *args) - | erase(self, it) -> hexwarn_t - | erase(self, first, last) -> hexwarn_t - | - | extract(self, *args) - | extract(self) -> hexwarn_t - | - | find(self, *args) - | find(self, x) -> hexwarn_t - | find(self, x) -> hexwarn_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=hexwarn_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> hexwarn_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> hexwarn_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_hexwarns_t(self) - -Help on class history_item_t in module ida_hexrays: - -class history_item_t(ctext_position_t) - | Proxy of C++ history_item_t class. - | - | Method resolution order: - | history_item_t - | ctext_position_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t - | __init__(self, _ea, p) -> history_item_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ea - | history_item_t_ea_get(self) -> ea_t - | - | end - | history_item_t_end_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_history_item_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ctext_position_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | in_ctree(self, *args) - | in_ctree(self, hdrlines) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ctext_position_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | ctext_position_t_lnnum_get(self) -> int - | - | x - | ctext_position_t_x_get(self) -> int - | - | y - | ctext_position_t_y_get(self) -> int - -Help on class history_t in module ida_hexrays: - -class history_t(qvector_history_t) - | Proxy of C++ qstack< history_item_t > class. - | - | Method resolution order: - | history_t - | qvector_history_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> history_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> history_item_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> history_item_t - | - | pop(self, *args) - | pop(self) -> history_item_t - | - | push(self, *args) - | push(self, v) - | - | top(self, *args) - | top(self) -> history_item_t - | top(self) -> history_item_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_history_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_history_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> history_item_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> history_item_t - | begin(self) -> history_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> history_item_t - | end(self) -> history_item_t - | - | erase(self, *args) - | erase(self, it) -> history_item_t - | erase(self, first, last) -> history_item_t - | - | extract(self, *args) - | extract(self) -> history_item_t - | - | find(self, *args) - | find(self, x) -> history_item_t - | find(self, x) -> history_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=history_item_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> history_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> history_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_history_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function init_hexrays_plugin in module ida_hexrays: - -init_hexrays_plugin(*args) - init_hexrays_plugin(flags=0) -> bool - - - Initialize your plugin for hex-rays decompiler. This function must be - called before calling any other decompiler function. It initializes - the pointer to the dispatcher. - - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and the dispatcher pointer is - ready to use. - -Help on function install_hexrays_callback in module ida_hexrays: - -install_hexrays_callback(callback) - Deprecated. Please use Hexrays_Hooks instead - -Help on function install_microcode_filter in module ida_hexrays: - -install_microcode_filter(*args) - install_microcode_filter(filter, install=True) - - - register/unregister non-standard microcode generator - - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) - -Help on function is_additive in module ida_hexrays: - -is_additive(*args) - is_additive(op) -> bool - - - Is additive operator? - - - @param op (C++: ctype_t) - -Help on function is_assignment in module ida_hexrays: - -is_assignment(*args) - is_assignment(op) -> bool - - - Is assignment operator? - - - @param op (C++: ctype_t) - -Help on function is_binary in module ida_hexrays: - -is_binary(*args) - is_binary(op) -> bool - - - Is binary operator? - - - @param op (C++: ctype_t) - -Help on function is_bitop in module ida_hexrays: - -is_bitop(*args) - is_bitop(op) -> bool - - - Is bit related operator? - - - @param op (C++: ctype_t) - -Help on function is_bool_type in module ida_hexrays: - -is_bool_type(*args) - is_bool_type(type) -> bool - - - Is a boolean type? - - @param type (C++: const tinfo_t &) - @return: true if the type is a boolean type - -Help on function is_break_consumer in module ida_hexrays: - -is_break_consumer(*args) - is_break_consumer(op) -> bool - - - Does a break statement influence the specified statement code? - - - @param op (C++: ctype_t) - -Help on function is_commutative in module ida_hexrays: - -is_commutative(*args) - is_commutative(op) -> bool - - - Is commutative operator? - - - @param op (C++: ctype_t) - -Help on function is_inplace_def in module ida_hexrays: - -is_inplace_def(*args) - is_inplace_def(type) -> bool - - - Is struct/union/enum definition (not declaration)? - - - @param type (C++: const tinfo_t &) - -Help on function is_kreg in module ida_hexrays: - -is_kreg(*args) - is_kreg(r) -> bool - - - Is a kernel register? - - - @param r (C++: mreg_t) - -Help on function is_logical in module ida_hexrays: - -is_logical(*args) - is_logical(op) -> bool - - - Is logical operator? - - - @param op (C++: ctype_t) - -Help on function is_loop in module ida_hexrays: - -is_loop(*args) - is_loop(op) -> bool - - - Is loop statement code? - - - @param op (C++: ctype_t) - -Help on function is_lvalue in module ida_hexrays: - -is_lvalue(*args) - is_lvalue(op) -> bool - - - Is Lvalue operator? - - - @param op (C++: ctype_t) - -Help on function is_may_access in module ida_hexrays: - -is_may_access(*args) - is_may_access(maymust) -> bool - -Help on function is_mcode_addsub in module ida_hexrays: - -is_mcode_addsub(*args) - is_mcode_addsub(mcode) -> bool - -Help on function is_mcode_call in module ida_hexrays: - -is_mcode_call(*args) - is_mcode_call(mcode) -> bool - -Help on function is_mcode_commutative in module ida_hexrays: - -is_mcode_commutative(*args) - is_mcode_commutative(mcode) -> bool - -Help on function is_mcode_convertible_to_jmp in module ida_hexrays: - -is_mcode_convertible_to_jmp(*args) - is_mcode_convertible_to_jmp(mcode) -> bool - -Help on function is_mcode_convertible_to_set in module ida_hexrays: - -is_mcode_convertible_to_set(*args) - is_mcode_convertible_to_set(mcode) -> bool - -Help on function is_mcode_divmod in module ida_hexrays: - -is_mcode_divmod(*args) - is_mcode_divmod(op) -> bool - -Help on function is_mcode_fpu in module ida_hexrays: - -is_mcode_fpu(*args) - is_mcode_fpu(mcode) -> bool - -Help on function is_mcode_j1 in module ida_hexrays: - -is_mcode_j1(*args) - is_mcode_j1(mcode) -> bool - -Help on function is_mcode_jcond in module ida_hexrays: - -is_mcode_jcond(*args) - is_mcode_jcond(mcode) -> bool - -Help on function is_mcode_propagatable in module ida_hexrays: - -is_mcode_propagatable(*args) - is_mcode_propagatable(mcode) -> bool - - - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - - @param mcode (C++: mcode_t) - -Help on function is_mcode_set in module ida_hexrays: - -is_mcode_set(*args) - is_mcode_set(mcode) -> bool - -Help on function is_mcode_set1 in module ida_hexrays: - -is_mcode_set1(*args) - is_mcode_set1(mcode) -> bool - -Help on function is_mcode_shift in module ida_hexrays: - -is_mcode_shift(*args) - is_mcode_shift(mcode) -> bool - -Help on function is_mcode_xdsu in module ida_hexrays: - -is_mcode_xdsu(*args) - is_mcode_xdsu(mcode) -> bool - -Help on function is_multiplicative in module ida_hexrays: - -is_multiplicative(*args) - is_multiplicative(op) -> bool - - - Is multiplicative operator? - - - @param op (C++: ctype_t) - -Help on function is_nonbool_type in module ida_hexrays: - -is_nonbool_type(*args) - is_nonbool_type(type) -> bool - - - Is definitely a non-boolean type? - - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) - -Help on function is_paf in module ida_hexrays: - -is_paf(*args) - is_paf(t) -> bool - - - Is a pointer, array, or function type? - - - @param t (C++: type_t) - -Help on function is_prepost in module ida_hexrays: - -is_prepost(*args) - is_prepost(op) -> bool - - - Is pre/post increment/decrement operator? - - - @param op (C++: ctype_t) - -Help on function is_ptr_or_array in module ida_hexrays: - -is_ptr_or_array(*args) - is_ptr_or_array(t) -> bool - - - Is a pointer or array type? - - - @param t (C++: type_t) - -Help on function is_relational in module ida_hexrays: - -is_relational(*args) - is_relational(op) -> bool - - - Is comparison operator? - - - @param op (C++: ctype_t) - -Help on function is_signed_mcode in module ida_hexrays: - -is_signed_mcode(*args) - is_signed_mcode(code) -> bool - -Help on function is_small_udt in module ida_hexrays: - -is_small_udt(*args) - is_small_udt(tif) -> bool - - - Is a small structure or union? - - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. - -Help on function is_type_correct in module ida_hexrays: - -is_type_correct(*args) - is_type_correct(ptr) -> bool - - - Verify a type string. - - @param ptr (C++: const type_t *) - @return: true if type string is correct - -Help on function is_unary in module ida_hexrays: - -is_unary(*args) - is_unary(op) -> bool - - - Is unary operator? - - - @param op (C++: ctype_t) - -Help on function is_unsigned_mcode in module ida_hexrays: - -is_unsigned_mcode(*args) - is_unsigned_mcode(code) -> bool - -Help on class ivl_t in module ida_hexrays: - -class ivl_t(uval_ivl_t) - | Proxy of C++ ivl_t class. - | - | Method resolution order: - | ivl_t - | uval_ivl_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _off, _size) -> ivl_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, off2) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | extend_to_cover(self, *args) - | extend_to_cover(self, r) -> bool - | - | includes(self, *args) - | includes(self, ivl) -> bool - | - | intersect(self, *args) - | intersect(self, r) - | - | overlap(self, *args) - | overlap(self, ivl) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ivl_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from uval_ivl_t: - | - | end(self, *args) - | end(self) -> unsigned-ea-like-numeric-type↗ - | - | last(self, *args) - | last(self) -> unsigned-ea-like-numeric-type↗ - | - | valid(self, *args) - | valid(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from uval_ivl_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ - | - | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ - -Help on class ivl_with_name_t in module ida_hexrays: - -class ivl_with_name_t(__builtin__.object) - | Proxy of C++ ivl_with_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ivl_with_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t - | - | part - | ivl_with_name_t_part_get(self) -> char const * - | - | thisown - | The membership flag - | - | whole - | ivl_with_name_t_whole_get(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ivl_with_name_t(self) - -Help on class ivlset_t in module ida_hexrays: - -class ivlset_t(uval_ivl_ivlset_t) - | Proxy of C++ ivlset_t class. - | - | Method resolution order: - | ivlset_t - | uval_ivl_ivlset_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ivlset_t - | __init__(self, ivl) -> ivlset_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | add(self, *args) - | add(self, ivl) -> bool - | add(self, ea, size) -> bool - | add(self, ivs) -> bool - | - | addmasked(self, *args) - | addmasked(self, ivs, mask) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, off) -> bool - | - | count(self, *args) - | count(self) -> asize_t - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | has_common(self, *args) - | has_common(self, ivl, strict=False) -> bool - | has_common(self, ivs) -> bool - | - | includes(self, *args) - | includes(self, ivs) -> bool - | - | intersect(self, *args) - | intersect(self, ivs) -> bool - | - | sub(self, *args) - | sub(self, ivl) -> bool - | sub(self, ea, size) -> bool - | sub(self, ivs) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ivlset_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from uval_ivl_ivlset_t: - | - | all_values(self, *args) - | all_values(self) -> bool - | - | begin(self, *args) - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | getivl(self, *args) - | getivl(self, idx) -> ivl_t - | - | lastivl(self, *args) - | lastivl(self) -> ivl_t - | - | nivls(self, *args) - | nivls(self) -> size_t - | - | qclear(self, *args) - | qclear(self) - | - | set_all_values(self, *args) - | set_all_values(self) - | - | single_value(self, *args) - | single_value(self, v) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from uval_ivl_ivlset_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function jcnd2set in module ida_hexrays: - -jcnd2set(*args) - jcnd2set(code) -> mcode_t - -Help on function lexcompare in module ida_hexrays: - -lexcompare(*args) - lexcompare(a, b) -> int - -Help on function lnot in module ida_hexrays: - -lnot(e) - -Help on class lvar_locator_t in module ida_hexrays: - -class lvar_locator_t(__builtin__.object) - | Proxy of C++ lvar_locator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | get_reg1(self, *args) - | get_reg1(self) -> mreg_t - | - | get_reg2(self, *args) - | get_reg2(self) -> mreg_t - | - | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_reg_var(self, *args) - | is_reg_var(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stk_var(self, *args) - | is_stk_var(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | defea - | lvar_locator_t_defea_get(self) -> ea_t - | - | location - | lvar_locator_t_location_get(self) -> vdloc_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_locator_t(self) - -Help on function lvar_mapping_begin in module ida_hexrays: - -lvar_mapping_begin(*args) - lvar_mapping_begin(map) -> lvar_mapping_iterator_t - - - Get iterator pointing to the beginning of lvar_mapping_t. - - - @param map (C++: const lvar_mapping_t *) - -Help on function lvar_mapping_clear in module ida_hexrays: - -lvar_mapping_clear(*args) - lvar_mapping_clear(map) - - - Clear lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - -Help on function lvar_mapping_end in module ida_hexrays: - -lvar_mapping_end(*args) - lvar_mapping_end(map) -> lvar_mapping_iterator_t - - - Get iterator pointing to the end of lvar_mapping_t. - - - @param map (C++: const lvar_mapping_t *) - -Help on function lvar_mapping_erase in module ida_hexrays: - -lvar_mapping_erase(*args) - lvar_mapping_erase(map, p) - - - Erase current element from lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_find in module ida_hexrays: - -lvar_mapping_find(*args) - lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - - - Find the specified key in lvar_mapping_t. - - - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - -Help on function lvar_mapping_first in module ida_hexrays: - -lvar_mapping_first(*args) - lvar_mapping_first(p) -> lvar_locator_t - - - Get reference to the current map key. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_free in module ida_hexrays: - -lvar_mapping_free(*args) - lvar_mapping_free(map) - - - Delete lvar_mapping_t instance. - - - @param map (C++: lvar_mapping_t *) - -Help on function lvar_mapping_insert in module ida_hexrays: - -lvar_mapping_insert(*args) - lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t - - - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) - -Help on class lvar_mapping_iterator_t in module ida_hexrays: - -class lvar_mapping_iterator_t(__builtin__.object) - | Proxy of C++ lvar_mapping_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> lvar_mapping_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_mapping_iterator_t(self) - -Help on function lvar_mapping_new in module ida_hexrays: - -lvar_mapping_new(*args) - lvar_mapping_new() -> lvar_mapping_t - - - Create a new lvar_mapping_t instance. - -Help on function lvar_mapping_next in module ida_hexrays: - -lvar_mapping_next(*args) - lvar_mapping_next(p) -> lvar_mapping_iterator_t - - - Move to the next element. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_prev in module ida_hexrays: - -lvar_mapping_prev(*args) - lvar_mapping_prev(p) -> lvar_mapping_iterator_t - - - Move to the previous element. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_second in module ida_hexrays: - -lvar_mapping_second(*args) - lvar_mapping_second(p) -> lvar_locator_t - - - Get reference to the current map value. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_size in module ida_hexrays: - -lvar_mapping_size(*args) - lvar_mapping_size(map) -> size_t - - - Get size of lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - -Help on class lvar_mapping_t in module ida_hexrays: - -class lvar_mapping_t(__builtin__.object) - | Proxy of C++ std::map< lvar_locator_t,lvar_locator_t > class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lvar_mapping_t - | - | __repr__ = _swig_repr(self) - | - | at(self, *args) - | at(self, _Keyval) -> lvar_locator_t - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_mapping_t(self) - -Help on class lvar_ref_t in module ida_hexrays: - -class lvar_ref_t(__builtin__.object) - | Proxy of C++ lvar_ref_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, m, i, o=0) -> lvar_ref_t - | __init__(self, r) -> lvar_ref_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | swap(self, *args) - | swap(self, r) - | - | var(self, *args) - | var(self) -> lvar_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | idx - | lvar_ref_t_idx_get(self) -> int - | - | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t - | - | off - | lvar_ref_t_off_get(self) -> sval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_ref_t(self) - -Help on class lvar_saved_info_t in module ida_hexrays: - -class lvar_saved_info_t(__builtin__.object) - | Proxy of C++ lvar_saved_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> lvar_saved_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear_keep(self, *args) - | clear_keep(self) - | - | clr_forced_lvar(self, *args) - | clr_forced_lvar(self) - | - | clr_nomap_lvar(self, *args) - | clr_nomap_lvar(self) - | - | clr_noptr_lvar(self, *args) - | clr_noptr_lvar(self) - | - | has_info(self, *args) - | has_info(self) -> bool - | - | is_forced_lvar(self, *args) - | is_forced_lvar(self) -> bool - | - | is_kept(self, *args) - | is_kept(self) -> bool - | - | is_nomap_lvar(self, *args) - | is_nomap_lvar(self) -> bool - | - | is_noptr_lvar(self, *args) - | is_noptr_lvar(self) -> bool - | - | set_forced_lvar(self, *args) - | set_forced_lvar(self) - | - | set_keep(self, *args) - | set_keep(self) - | - | set_nomap_lvar(self, *args) - | set_nomap_lvar(self) - | - | set_noptr_lvar(self, *args) - | set_noptr_lvar(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * - | - | flags - | lvar_saved_info_t_flags_get(self) -> int - | - | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t - | - | name - | lvar_saved_info_t_name_get(self) -> qstring * - | - | size - | lvar_saved_info_t_size_get(self) -> ssize_t - | - | thisown - | The membership flag - | - | type - | lvar_saved_info_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_saved_info_t(self) - -Help on class lvar_saved_infos_t in module ida_hexrays: - -class lvar_saved_infos_t(__builtin__.object) - | Proxy of C++ qvector< lvar_saved_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lvar_saved_info_t - | - | __init__(self, *args) - | __init__(self) -> lvar_saved_infos_t - | __init__(self, x) -> lvar_saved_infos_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t - | - | erase(self, *args) - | erase(self, it) -> lvar_saved_info_t - | erase(self, first, last) -> lvar_saved_info_t - | - | extract(self, *args) - | extract(self) -> lvar_saved_info_t - | - | find(self, *args) - | find(self, x) -> lvar_saved_info_t - | find(self, x) -> lvar_saved_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lvar_saved_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> lvar_saved_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_saved_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_saved_infos_t(self) - -Help on class lvar_t in module ida_hexrays: - -class lvar_t(lvar_locator_t) - | Proxy of C++ lvar_t class. - | - | Method resolution order: - | lvar_t - | lvar_locator_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | accepts_type(self, *args) - | accepts_type(self, t, may_change_thisarg=False) -> bool - | - | append_list(self, *args) - | append_list(self, lst, pad_if_scattered=False) - | - | clear_used(self, *args) - | clear_used(self) - | - | clr_arg_var(self, *args) - | clr_arg_var(self) - | - | clr_automapped(self, *args) - | clr_automapped(self) - | - | clr_dummy_arg(self, *args) - | clr_dummy_arg(self) - | - | clr_fake_var(self, *args) - | clr_fake_var(self) - | - | clr_floating_var(self, *args) - | clr_floating_var(self) - | - | clr_forced_var(self, *args) - | clr_forced_var(self) - | - | clr_mapdst_var(self, *args) - | clr_mapdst_var(self) - | - | clr_mreg_done(self, *args) - | clr_mreg_done(self) - | - | clr_noptr_var(self, *args) - | clr_noptr_var(self) - | - | clr_notarg(self, *args) - | clr_notarg(self) - | - | clr_overlapped_var(self, *args) - | clr_overlapped_var(self) - | - | clr_spoiled_var(self, *args) - | clr_spoiled_var(self) - | - | clr_thisarg(self, *args) - | clr_thisarg(self) - | - | clr_unknown_width(self, *args) - | clr_unknown_width(self) - | - | clr_user_info(self, *args) - | clr_user_info(self) - | - | clr_user_name(self, *args) - | clr_user_name(self) - | - | clr_user_type(self, *args) - | clr_user_type(self) - | - | has_common(self, *args) - | has_common(self, v) -> bool - | - | has_common_bit(self, *args) - | has_common_bit(self, loc, width2) -> bool - | - | has_regname(self, *args) - | has_regname(self) -> bool - | - | is_aliasable(self, *args) - | is_aliasable(self, mba) -> bool - | - | is_automapped(self, *args) - | is_automapped(self) -> bool - | - | is_dummy_arg(self, *args) - | is_dummy_arg(self) -> bool - | - | is_forced_var(self, *args) - | is_forced_var(self) -> bool - | - | is_noptr_var(self, *args) - | is_noptr_var(self) -> bool - | - | is_notarg(self, *args) - | is_notarg(self) -> bool - | - | is_thisarg(self, *args) - | is_thisarg(self) -> bool - | - | set_arg_var(self, *args) - | set_arg_var(self) - | - | set_automapped(self, *args) - | set_automapped(self) - | - | set_dummy_arg(self, *args) - | set_dummy_arg(self) - | - | set_fake_var(self, *args) - | set_fake_var(self) - | - | set_final_lvar_type(self, *args) - | set_final_lvar_type(self, t) - | - | set_floating_var(self, *args) - | set_floating_var(self) - | - | set_forced_var(self, *args) - | set_forced_var(self) - | - | set_lvar_type(self, *args) - | set_lvar_type(self, t, may_fail=False) -> bool - | - | set_mapdst_var(self, *args) - | set_mapdst_var(self) - | - | set_mreg_done(self, *args) - | set_mreg_done(self) - | - | set_non_typed(self, *args) - | set_non_typed(self) - | - | set_noptr_var(self, *args) - | set_noptr_var(self) - | - | set_notarg(self, *args) - | set_notarg(self) - | - | set_overlapped_var(self, *args) - | set_overlapped_var(self) - | - | set_spoiled_var(self, *args) - | set_spoiled_var(self) - | - | set_thisarg(self, *args) - | set_thisarg(self) - | - | set_typed(self, *args) - | set_typed(self) - | - | set_unknown_width(self, *args) - | set_unknown_width(self) - | - | set_used(self, *args) - | set_used(self) - | - | set_user_name(self, *args) - | set_user_name(self) - | - | set_user_type(self, *args) - | set_user_type(self) - | - | set_width(self, *args) - | set_width(self, w, svw_flags=0) -> bool - | - | type(self, *args) - | type(self) -> tinfo_t - | type(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cmt - | lvar_t_cmt_get(self) -> qstring * - | - | defblk - | lvar_t_defblk_get(self) -> int - | - | divisor - | lvar_t_divisor_get(self) -> uint64 - | - | has_nice_name - | has_nice_name(self) -> bool - | - | has_user_info - | has_user_info(self) -> bool - | - | has_user_name - | has_user_name(self) -> bool - | - | has_user_type - | has_user_type(self) -> bool - | - | is_arg_var - | is_arg_var(self) -> bool - | - | is_fake_var - | is_fake_var(self) -> bool - | - | is_floating_var - | is_floating_var(self) -> bool - | - | is_mapdst_var - | is_mapdst_var(self) -> bool - | - | is_overlapped_var - | is_overlapped_var(self) -> bool - | - | is_result_var - | is_result_var(self) -> bool - | - | is_spoiled_var - | is_spoiled_var(self) -> bool - | - | is_unknown_width - | is_unknown_width(self) -> bool - | - | mreg_done - | mreg_done(self) -> bool - | - | name - | lvar_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | tif - | lvar_t_tif_get(self) -> tinfo_t - | - | typed - | typed(self) -> bool - | - | used - | used(self) -> bool - | - | width - | lvar_t_width_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from lvar_locator_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | get_reg1(self, *args) - | get_reg1(self) -> mreg_t - | - | get_reg2(self, *args) - | get_reg2(self) -> mreg_t - | - | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_reg_var(self, *args) - | is_reg_var(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stk_var(self, *args) - | is_stk_var(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from lvar_locator_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | defea - | lvar_locator_t_defea_get(self) -> ea_t - | - | location - | lvar_locator_t_location_get(self) -> vdloc_t - -Help on class lvar_uservec_t in module ida_hexrays: - -class lvar_uservec_t(__builtin__.object) - | Proxy of C++ lvar_uservec_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lvar_uservec_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | find_info(self, *args) - | find_info(self, vloc) -> lvar_saved_info_t - | - | keep_info(self, *args) - | keep_info(self, v) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t - | - | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t - | - | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t - | - | thisown - | The membership flag - | - | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvar_uservec_t(self) - -Help on class lvars_t in module ida_hexrays: - -class lvars_t(qvector_lvar_t) - | Proxy of C++ lvars_t class. - | - | Method resolution order: - | lvars_t - | qvector_lvar_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lvars_t - | - | __repr__ = _swig_repr(self) - | - | find(self, *args) - | find(self, ll) -> lvar_t - | - | find_input_lvar(self, *args) - | find_input_lvar(self, argloc, _size) -> int - | - | find_lvar(self, *args) - | find_lvar(self, location, width, defblk=-1) -> int - | - | find_stkvar(self, *args) - | find_stkvar(self, spoff, width) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lvars_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_lvar_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lvar_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> lvar_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> lvar_t - | begin(self) -> lvar_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> lvar_t - | end(self) -> lvar_t - | - | erase(self, *args) - | erase(self, it) -> lvar_t - | erase(self, first, last) -> lvar_t - | - | extract(self, *args) - | extract(self) -> lvar_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lvar_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> lvar_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_lvar_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function make_num in module ida_hexrays: - -make_num(*args) - -Help on function make_pointer in module ida_hexrays: - -make_pointer(*args) - make_pointer(type) -> tinfo_t - - - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - - @param type: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, - -Help on function make_ref in module ida_hexrays: - -make_ref(e) - -Help on function mark_cfunc_dirty in module ida_hexrays: - -mark_cfunc_dirty(*args) - mark_cfunc_dirty(ea, close_views=False) -> bool - - - Flush the cached decompilation results. Erases a cache entry for the - specified function. - - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) - @return: if a cache entry existed. - -Help on class mba_range_iterator_t in module ida_hexrays: - -class mba_range_iterator_t(__builtin__.object) - | Proxy of C++ mba_range_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mba_range_iterator_t - | - | __repr__ = _swig_repr(self) - | - | chunk(self, *args) - | chunk(self) -> range_t - | - | is_snippet(self, *args) - | is_snippet(self) -> bool - | - | next(self, *args) - | next(self) -> bool - | - | set(self, *args) - | set(self, mbr) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t - | - | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mba_range_iterator_t(self) - -Help on class mba_ranges_t in module ida_hexrays: - -class mba_ranges_t(__builtin__.object) - | Proxy of C++ mba_ranges_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _pfn=None) -> mba_ranges_t - | __init__(self, r) -> mba_ranges_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_snippet(self, *args) - | is_snippet(self) -> bool - | - | start(self, *args) - | start(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | pfn - | mba_ranges_t_pfn_get(self) -> func_t * - | - | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mba_ranges_t(self) - -Help on class mbl_array_t in module ida_hexrays: - -class mbl_array_t(__builtin__.object) - | Proxy of C++ mbl_array_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _print(self, *args) - | _print(self, vp) - | - | _register(self, *args) - | _register(self) - | - | alloc_lvars(self, *args) - | alloc_lvars(self) - | - | analyze_calls(self, *args) - | analyze_calls(self, acflags) -> int - | - | arg(self, *args) - | arg(self, n) -> lvar_t - | arg(self, n) -> lvar_t - | - | argbase(self, *args) - | argbase(self) -> sval_t - | - | argidx_ok(self, *args) - | argidx_ok(self) -> bool - | - | argidx_sorted(self, *args) - | argidx_sorted(self) -> bool - | - | bad_call_sp_detected(self, *args) - | bad_call_sp_detected(self) -> bool - | - | build_graph(self, *args) - | build_graph(self) -> merror_t - | - | calc_shins_flags(self, *args) - | calc_shins_flags(self) -> int - | - | callinfo_built(self, *args) - | callinfo_built(self) -> bool - | - | chain_varnums_ok(self, *args) - | chain_varnums_ok(self) -> bool - | - | clr_cdtr(self, *args) - | clr_cdtr(self) - | - | clr_mba_flags(self, *args) - | clr_mba_flags(self, f) - | - | clr_mba_flags2(self, *args) - | clr_mba_flags2(self, f) - | - | combine_blocks(self, *args) - | combine_blocks(self) -> bool - | - | common_stkvars_stkargs(self, *args) - | common_stkvars_stkargs(self) -> bool - | - | copy_block(self, *args) - | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t - | - | deleted_pairs(self, *args) - | deleted_pairs(self) -> bool - | - | display_numaddrs(self, *args) - | display_numaddrs(self) -> bool - | - | display_valnums(self, *args) - | display_valnums(self) -> bool - | - | dump(self, *args) - | dump(self) - | - | dump_mba(self, *args) - | dump_mba(self, _verify, title) - | - | find_mop(self, *args) - | find_mop(self, ctx, ea, is_dest, list) -> mop_t - | - | for_all_insns(self, *args) - | for_all_insns(self, mv) -> int - | - | for_all_ops(self, *args) - | for_all_ops(self, mv) -> int - | - | for_all_topinsns(self, *args) - | for_all_topinsns(self, mv) -> int - | - | generated_asserts(self, *args) - | generated_asserts(self) -> bool - | - | get_args_region(self, *args) - | get_args_region(self) -> ivl_t - | - | get_curfunc(self, *args) - | get_curfunc(self) -> func_t * - | - | get_graph(self, *args) - | get_graph(self) -> mbl_graph_t - | - | get_ida_argloc(self, *args) - | get_ida_argloc(self, v) -> argloc_t - | - | get_lvars_region(self, *args) - | get_lvars_region(self) -> ivl_t - | - | get_mba_flags(self, *args) - | get_mba_flags(self) -> int - | - | get_mba_flags2(self, *args) - | get_mba_flags2(self) -> int - | - | get_mblock(self, *args) - | get_mblock(self, n) -> mblock_t - | get_mblock(self, n) -> mblock_t - | - | get_shadow_region(self, *args) - | get_shadow_region(self) -> ivl_t - | - | get_stack_region(self, *args) - | get_stack_region(self) -> ivl_t - | - | get_std_region(self, *args) - | get_std_region(self, idx) -> ivl_t - | - | graph_insns(self, *args) - | graph_insns(self) -> bool - | - | has_bad_sp(self, *args) - | has_bad_sp(self) -> bool - | - | has_over_chains(self, *args) - | has_over_chains(self) -> bool - | - | has_passregs(self, *args) - | has_passregs(self) -> bool - | - | idaloc2vd(self, *args) - | idaloc2vd(self, loc, width) -> vdloc_t - | - | insert_block(self, *args) - | insert_block(self, bblk) -> mblock_t - | - | is_cdtr(self, *args) - | is_cdtr(self) -> bool - | - | is_ctr(self, *args) - | is_ctr(self) -> bool - | - | is_dtr(self, *args) - | is_dtr(self) -> bool - | - | is_pattern(self, *args) - | is_pattern(self) -> bool - | - | is_snippet(self, *args) - | is_snippet(self) -> bool - | - | is_stkarg(self, *args) - | is_stkarg(self, v) -> bool - | - | is_thunk(self, *args) - | is_thunk(self) -> bool - | - | loaded_gdl(self, *args) - | loaded_gdl(self) -> bool - | - | lvar_names_ok(self, *args) - | lvar_names_ok(self) -> bool - | - | lvars_allocated(self, *args) - | lvars_allocated(self) -> bool - | - | lvars_renamed(self, *args) - | lvars_renamed(self) -> bool - | - | mark_chains_dirty(self, *args) - | mark_chains_dirty(self) - | - | may_refine_rettype(self, *args) - | may_refine_rettype(self) -> bool - | - | optimize_global(self, *args) - | optimize_global(self) -> merror_t - | - | optimize_local(self, *args) - | optimize_local(self, locopt_bits) -> int - | - | optimized(self, *args) - | optimized(self) -> bool - | - | precise_defeas(self, *args) - | precise_defeas(self) -> bool - | - | propagated_asserts(self, *args) - | propagated_asserts(self) -> bool - | - | really_alloc(self, *args) - | really_alloc(self) -> bool - | - | regargs_is_not_aligned(self, *args) - | regargs_is_not_aligned(self) -> bool - | - | remove_block(self, *args) - | remove_block(self, blk) -> bool - | - | remove_empty_blocks(self, *args) - | remove_empty_blocks(self) -> bool - | - | returns_fpval(self, *args) - | returns_fpval(self) -> bool - | - | rtype_refined(self, *args) - | rtype_refined(self) -> bool - | - | saverest_done(self, *args) - | saverest_done(self) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | set_mba_flags(self, *args) - | set_mba_flags(self, f) - | - | set_mba_flags2(self, *args) - | set_mba_flags2(self, f) - | - | short_display(self, *args) - | short_display(self) -> bool - | - | should_beautify(self, *args) - | should_beautify(self) -> bool - | - | show_reduction(self, *args) - | show_reduction(self) -> bool - | - | stkoff_ida2vd(self, *args) - | stkoff_ida2vd(self, off) -> sval_t - | - | stkoff_vd2ida(self, *args) - | stkoff_vd2ida(self, off) -> sval_t - | - | term(self, *args) - | term(self) - | - | use_frame(self, *args) - | use_frame(self) -> bool - | - | use_wingraph32(self, *args) - | use_wingraph32(self) -> bool - | - | valranges_done(self, *args) - | valranges_done(self) -> bool - | - | vd2idaloc(self, *args) - | vd2idaloc(self, loc, width, spd) -> argloc_t - | vd2idaloc(self, loc, width) -> argloc_t - | - | verify(self, *args) - | verify(self, always) - | - | write_to_const_detected(self, *args) - | write_to_const_detected(self) -> bool - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | deserialize(*args) - | deserialize(bytes) -> mbl_array_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | aliased_args - | mbl_array_t_aliased_args_get(self) -> ivl_t - | - | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t - | - | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t - | - | argidx - | mbl_array_t_argidx_get(self) -> intvec_t - | - | blocks - | mbl_array_t_blocks_get(self) -> mblock_t - | - | cc - | mbl_array_t_cc_get(self) -> cm_t - | - | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t - | - | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t - | - | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t - | - | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * - | - | final_type - | mbl_array_t_final_type_get(self) -> bool - | - | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t - | - | fpd - | mbl_array_t_fpd_get(self) -> sval_t - | - | frregs - | mbl_array_t_frregs_get(self) -> sval_t - | - | frsize - | mbl_array_t_frsize_get(self) -> sval_t - | - | fti_flags - | mbl_array_t_fti_flags_get(self) -> int - | - | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t - | - | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t - | - | idb_node - | mbl_array_t_idb_node_get(self) -> netnode - | - | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t - | - | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t - | - | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t - | - | label - | mbl_array_t_label_get(self) -> qstring * - | - | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t - | - | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t - | - | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t - | - | minargref - | mbl_array_t_minargref_get(self) -> sval_t - | - | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t - | - | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t - | - | natural - | mbl_array_t_natural_get(self) -> mblock_t ** - | - | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t - | - | notes - | mbl_array_t_notes_get(self) -> hexwarns_t - | - | npurged - | mbl_array_t_npurged_get(self) -> int - | - | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] - | - | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int - | - | qty - | mbl_array_t_qty_get(self) -> int - | - | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t - | - | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t - | - | retsize - | mbl_array_t_retsize_get(self) -> int - | - | retvaridx - | mbl_array_t_retvaridx_get(self) -> int - | - | shadow_args - | mbl_array_t_shadow_args_get(self) -> int - | - | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t - | - | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t - | - | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t - | - | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t - | - | thisown - | The membership flag - | - | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t - | - | vars - | mbl_array_t_vars_get(self) -> lvars_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mbl_array_t(self) - -Help on function mbl_array_t_deserialize in module ida_hexrays: - -mbl_array_t_deserialize(*args) - mbl_array_t_deserialize(bytes) -> mbl_array_t - -Help on class mbl_graph_t in module ida_hexrays: - -class mbl_graph_t(simple_graph_t) - | Proxy of C++ mbl_graph_t class. - | - | Method resolution order: - | mbl_graph_t - | simple_graph_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | get_chain_stamp(self, *args) - | get_chain_stamp(self) -> int - | - | get_du(self, *args) - | get_du(self, gctype) -> graph_chains_t - | - | get_mblock(self, *args) - | get_mblock(self, n) -> mblock_t - | - | get_ud(self, *args) - | get_ud(self, gctype) -> graph_chains_t - | - | is_du_chain_dirty(self, *args) - | is_du_chain_dirty(self, gctype) -> bool - | - | is_redefined_globally(self, *args) - | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | - | is_ud_chain_dirty(self, *args) - | is_ud_chain_dirty(self, gctype) -> bool - | - | is_used_globally(self, *args) - | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from simple_graph_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool - | - | title - | simple_graph_t_title_get(self) -> qstring * - -Help on class mblock_t in module ida_hexrays: - -class mblock_t(__builtin__.object) - | Proxy of C++ mblock_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, vp) - | - | append_def_list(self, *args) - | append_def_list(self, list, op, maymust) - | - | append_use_list(self, *args) - | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) - | - | build_def_list(self, *args) - | build_def_list(self, ins, maymust) -> mlist_t - | - | build_lists(self, *args) - | build_lists(self, kill_deads) -> int - | - | build_use_list(self, *args) - | build_use_list(self, ins, maymust) -> mlist_t - | - | dump(self, *args) - | dump(self) - | - | dump_block(self, *args) - | dump_block(self, title) - | - | empty(self, *args) - | empty(self) -> bool - | - | find_access(self, *args) - | find_access(self, op, parent, mend, fdflags) -> minsn_t - | - | find_def(self, *args) - | find_def(self, op, p_i1, i2, fdflags) -> minsn_t - | - | find_first_use(self, *args) - | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | - | find_redefinition(self, *args) - | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | - | find_use(self, *args) - | find_use(self, op, p_i1, i2, fdflags) -> minsn_t - | - | for_all_insns(self, *args) - | for_all_insns(self, mv) -> int - | - | for_all_ops(self, *args) - | for_all_ops(self, mv) -> int - | - | for_all_uses(self, *args) - | for_all_uses(self, list, i1, i2, mmv) -> int - | - | get_reginsn_qty(self, *args) - | get_reginsn_qty(self) -> size_t - | - | get_valranges(self, *args) - | get_valranges(self, res, vivl, vrflags) -> bool - | get_valranges(self, res, vivl, m, vrflags) -> bool - | - | insert_into_block(self, *args) - | insert_into_block(self, nm, om) -> minsn_t - | - | is_branch(self, *args) - | is_branch(self) -> bool - | - | is_call_block(self, *args) - | is_call_block(self) -> bool - | - | is_nway(self, *args) - | is_nway(self) -> bool - | - | is_redefined(self, *args) - | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | - | is_rhs_redefined(self, *args) - | is_rhs_redefined(self, ins, i1, i2) -> bool - | - | is_simple_goto_block(self, *args) - | is_simple_goto_block(self) -> bool - | - | is_simple_jcnd_block(self, *args) - | is_simple_jcnd_block(self) -> bool - | - | is_unknown_call(self, *args) - | is_unknown_call(self) -> bool - | - | is_used(self, *args) - | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | - | lists_dirty(self, *args) - | lists_dirty(self) -> bool - | - | lists_ready(self, *args) - | lists_ready(self) -> bool - | - | make_lists_ready(self, *args) - | make_lists_ready(self) -> int - | - | make_nop(self, *args) - | make_nop(self, m) - | - | mark_lists_dirty(self, *args) - | mark_lists_dirty(self) - | - | needs_propagation(self, *args) - | needs_propagation(self) -> bool - | - | npred(self, *args) - | npred(self) -> int - | - | nsucc(self, *args) - | nsucc(self) -> int - | - | optimize_block(self, *args) - | optimize_block(self) -> int - | - | optimize_insn(self, *args) - | optimize_insn(self, m, optflags=0x0002|0x0004) -> int - | - | optimize_useless_jump(self, *args) - | optimize_useless_jump(self) -> int - | - | pred(self, *args) - | pred(self, n) -> int - | - | preds(self) - | Iterates the list of predecessor blocks - | - | remove_from_block(self, *args) - | remove_from_block(self, m) -> minsn_t - | - | request_demote64(self, *args) - | request_demote64(self) - | - | request_propagation(self, *args) - | request_propagation(self) - | - | succ(self, *args) - | succ(self, n) -> int - | - | succs(self) - | Iterates the list of successor blocks - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t - | - | dnu - | mblock_t_dnu_get(self) -> mlist_t - | - | end - | mblock_t_end_get(self) -> ea_t - | - | flags - | mblock_t_flags_get(self) -> uint32 - | - | head - | mblock_t_head_get(self) -> minsn_t - | - | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t - | - | maybdef - | mblock_t_maybdef_get(self) -> mlist_t - | - | maybuse - | mblock_t_maybuse_get(self) -> mlist_t - | - | mba - | mblock_t_mba_get(self) -> mbl_array_t - | - | minbargref - | mblock_t_minbargref_get(self) -> sval_t - | - | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t - | - | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t - | - | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t - | - | nextb - | mblock_t_nextb_get(self) -> mblock_t - | - | predset - | mblock_t_predset_get(self) -> intvec_t - | - | prevb - | mblock_t_prevb_get(self) -> mblock_t - | - | serial - | mblock_t_serial_get(self) -> int - | - | start - | mblock_t_start_get(self) -> ea_t - | - | succset - | mblock_t_succset_get(self) -> intvec_t - | - | tail - | mblock_t_tail_get(self) -> minsn_t - | - | thisown - | The membership flag - | - | type - | mblock_t_type_get(self) -> mblock_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mblock_t(self) - -Help on class mcallarg_t in module ida_hexrays: - -class mcallarg_t(mop_t) - | Proxy of C++ mcallarg_t class. - | - | Method resolution order: - | mcallarg_t - | mop_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mcallarg_t - | __init__(self, rarg) -> mcallarg_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | copy_mop(self, *args) - | copy_mop(self, op) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | make_int(self, *args) - | make_int(self, val, val_ea, opno=0) - | - | make_uint(self, *args) - | make_uint(self, val, val_ea, opno=0) - | - | set_regarg(self, *args) - | set_regarg(self, mr, sz, tif) - | set_regarg(self, mr, tif) - | set_regarg(self, mr, dt, sign=type_unsigned) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | argloc - | mcallarg_t_argloc_get(self) -> argloc_t - | - | ea - | mcallarg_t_ea_get(self) -> ea_t - | - | name - | mcallarg_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | mcallarg_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mcallarg_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from mop_t: - | - | __eq__(self, *args) - | __eq__(self, rop) -> bool - | - | __lt__(self, *args) - | __lt__(self, rop) -> bool - | - | __ne__(self, *args) - | __ne__(self, rop) -> bool - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_t(self) - | - | _get_a(self, *args) - | _get_a(self) -> mop_addr_t - | - | _get_b(self, *args) - | _get_b(self) -> int - | - | _get_c(self, *args) - | _get_c(self) -> mcases_t - | - | _get_cstr(self, *args) - | _get_cstr(self) -> char const * - | - | _get_d(self, *args) - | _get_d(self) -> minsn_t - | - | _get_f(self, *args) - | _get_f(self) -> mcallinfo_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_g(self, *args) - | _get_g(self) -> ea_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char const * - | - | _get_l(self, *args) - | _get_l(self) -> lvar_ref_t - | - | _get_nnn(self, *args) - | _get_nnn(self) -> mnumber_t - | - | _get_pair(self, *args) - | _get_pair(self) -> mop_pair_t - | - | _get_r(self, *args) - | _get_r(self) -> mreg_t - | - | _get_s(self, *args) - | _get_s(self) -> stkvar_ref_t - | - | _get_scif(self, *args) - | _get_scif(self) -> scif_t - | - | _get_t(self, *args) - | _get_t(self) -> mopt_t - | - | _make_blkref(self, *args) - | _make_blkref(self, blknum) - | - | _make_callinfo(self, *args) - | _make_callinfo(self, fi) - | - | _make_cases(self, *args) - | _make_cases(self, _cases) - | - | _make_gvar(self, *args) - | _make_gvar(self, ea) - | - | _make_insn(self, *args) - | _make_insn(self, ins) - | - | _make_lvar(self, *args) - | _make_lvar(self, mba, idx, off=0) - | - | _make_pair(self, *args) - | _make_pair(self, _pair) - | - | _make_reg(self, *args) - | _make_reg(self, reg) - | _make_reg(self, reg, _size) - | - | _make_stkvar(self, *args) - | _make_stkvar(self, mba, off) - | - | _make_strlit(self, *args) - | _make_strlit(self, str) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _register(self, *args) - | _register(self) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_b(self, *args) - | _set_b(self, _v) - | - | _set_c(self, *args) - | _set_c(self, _v) - | - | _set_cstr(self, *args) - | _set_cstr(self, _v) - | - | _set_d(self, *args) - | _set_d(self, _v) - | - | _set_f(self, *args) - | _set_f(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_g(self, *args) - | _set_g(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_l(self, *args) - | _set_l(self, _v) - | - | _set_nnn(self, *args) - | _set_nnn(self, _v) - | - | _set_pair(self, *args) - | _set_pair(self, _v) - | - | _set_r(self, *args) - | _set_r(self, _v) - | - | _set_s(self, *args) - | _set_s(self, _v) - | - | _set_scif(self, *args) - | _set_scif(self, _v) - | - | _set_t(self, *args) - | _set_t(self, v) - | - | apply_ld_mcode(self, *args) - | apply_ld_mcode(self, mcode, ea, newsize) - | - | apply_xds(self, *args) - | apply_xds(self, ea, newsize) - | - | apply_xdu(self, *args) - | apply_xdu(self, ea, newsize) - | - | assign(self, *args) - | assign(self, rop) -> mop_t - | - | change_size(self, *args) - | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | - | create_from_insn(self, *args) - | create_from_insn(self, m) - | - | create_from_ivlset(self, *args) - | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | - | create_from_mlist(self, *args) - | create_from_mlist(self, mba, lst, fullsize) -> bool - | - | create_from_scattered_vdloc(self, *args) - | create_from_scattered_vdloc(self, mba, name, type, loc) - | - | create_from_vdloc(self, *args) - | create_from_vdloc(self, mba, loc, _size) - | - | double_size(self, *args) - | double_size(self, sideff=WITH_SIDEFF) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | equal_mops(self, *args) - | equal_mops(self, rop, eqflags) -> bool - | - | erase(self, *args) - | erase(self) - | - | erase_but_keep_size(self, *args) - | erase_but_keep_size(self) - | - | for_all_ops(self, *args) - | for_all_ops(self, mv, type=None, is_target=False) -> int - | - | for_all_scattered_submops(self, *args) - | for_all_scattered_submops(self, sv) -> int - | - | get_insn(self, *args) - | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t - | - | get_stkoff(self, *args) - | get_stkoff(self, p_off) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off) -> member_t * - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is01(self, *args) - | is01(self) -> bool - | - | is_arglist(self, *args) - | is_arglist(self) -> bool - | - | is_bit_reg(self, *args) - | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool - | - | is_cc(self, *args) - | is_cc(self) -> bool - | - | is_ccflags(self, *args) - | is_ccflags(self) -> bool - | - | is_constant(self, *args) - | is_constant(self, is_signed=True) -> bool - | - | is_equal_to(self, *args) - | is_equal_to(self, n, is_signed=True) -> bool - | - | is_extended_from(self, *args) - | is_extended_from(self, nbytes, is_signed) -> bool - | - | is_glbaddr(self, *args) - | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool - | - | is_impptr_done(self, *args) - | is_impptr_done(self) -> bool - | - | is_insn(self, *args) - | is_insn(self) -> bool - | is_insn(self, code) -> bool - | - | is_kreg(self, *args) - | is_kreg(self) -> bool - | - | is_mob(self, *args) - | is_mob(self, serial) -> bool - | - | is_negative_constant(self, *args) - | is_negative_constant(self) -> bool - | - | is_one(self, *args) - | is_one(self) -> bool - | - | is_positive_constant(self, *args) - | is_positive_constant(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | is_reg(self, _r) -> bool - | is_reg(self, _r, _size) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_sign_extended_from(self, *args) - | is_sign_extended_from(self, nbytes) -> bool - | - | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | is_zero_extended_from(self, *args) - | is_zero_extended_from(self, nbytes) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, rop) -> int - | - | make_blkref(self, *args) - | make_blkref(self, blknum) - | - | make_first_half(self, *args) - | make_first_half(self, width) -> bool - | - | make_fpnum(self, *args) - | make_fpnum(self, bytes, _size) -> bool - | - | make_gvar(self, *args) - | make_gvar(self, ea) - | - | make_helper(self, *args) - | make_helper(self, name) - | - | make_high_half(self, *args) - | make_high_half(self, width) -> bool - | - | make_insn(self, *args) - | make_insn(self, ins) - | - | make_low_half(self, *args) - | make_low_half(self, width) -> bool - | - | make_number(self, *args) - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | - | make_reg(self, *args) - | make_reg(self, reg) - | make_reg(self, reg, _size) - | - | make_reg_pair(self, *args) - | make_reg_pair(self, loreg, hireg, halfsize) - | - | make_second_half(self, *args) - | make_second_half(self, width) -> bool - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | preserve_side_effects(self, *args) - | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | - | probably_floating(self, *args) - | probably_floating(self) -> bool - | - | replace_by(self, o) - | - | set_impptr_done(self, *args) - | set_impptr_done(self) - | - | set_udt(self, *args) - | set_udt(self) - | - | set_undef_val(self, *args) - | set_undef_val(self) - | - | shift_mop(self, *args) - | shift_mop(self, offset) -> bool - | - | signed_value(self, *args) - | signed_value(self) -> int64 - | - | swap(self, *args) - | swap(self, rop) - | - | unsigned_value(self, *args) - | unsigned_value(self) -> uint64 - | - | value(self, *args) - | value(self, is_signed) -> uint64 - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from mop_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a - | - | b - | - | c - | - | cstr - | - | d - | - | f - | - | fpc - | - | g - | - | helper - | - | l - | - | meminfo - | - | nnn - | - | obj_id - | _obj_id(self) -> PyObject * - | - | oprops - | mop_t_oprops_get(self) -> uint8 - | - | pair - | - | r - | - | s - | - | scif - | - | size - | mop_t_size_get(self) -> int - | - | t - | _get_t(self) -> mopt_t - | - | valnum - | mop_t_valnum_get(self) -> uint16 - -Help on class mcallargs_t in module ida_hexrays: - -class mcallargs_t(__builtin__.object) - | Proxy of C++ qvector< mcallarg_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> mcallarg_t - | - | __init__(self, *args) - | __init__(self) -> mcallargs_t - | __init__(self, x) -> mcallargs_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> mcallarg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> mcallarg_t - | end(self) -> mcallarg_t - | - | erase(self, *args) - | erase(self, it) -> mcallarg_t - | erase(self, first, last) -> mcallarg_t - | - | extract(self, *args) - | extract(self) -> mcallarg_t - | - | find(self, *args) - | find(self, x) -> mcallarg_t - | find(self, x) -> mcallarg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=mcallarg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> mcallarg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> mcallarg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mcallargs_t(self) - -Help on class mcallinfo_t in module ida_hexrays: - -class mcallinfo_t(__builtin__.object) - | Proxy of C++ mcallinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, size=-1, shins_flags=0x04|0x02) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | get_type(self, *args) - | get_type(self) -> tinfo_t - | - | is_vararg(self, *args) - | is_vararg(self) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, f) -> int - | - | set_type(self, *args) - | set_type(self, type) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | args - | mcallinfo_t_args_get(self) -> mcallargs_t - | - | call_spd - | mcallinfo_t_call_spd_get(self) -> int - | - | callee - | mcallinfo_t_callee_get(self) -> ea_t - | - | cc - | mcallinfo_t_cc_get(self) -> cm_t - | - | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t - | - | flags - | mcallinfo_t_flags_get(self) -> int - | - | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t - | - | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t - | - | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t - | - | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t - | - | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t - | - | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t - | - | role - | mcallinfo_t_role_get(self) -> funcrole_t - | - | solid_args - | mcallinfo_t_solid_args_get(self) -> int - | - | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t - | - | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int - | - | thisown - | The membership flag - | - | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mcallinfo_t(self) - -Help on class mcases_t in module ida_hexrays: - -class mcases_t(__builtin__.object) - | Proxy of C++ mcases_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> mcases_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | resize(self, *args) - | resize(self, s) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | targets - | mcases_t_targets_get(self) -> intvec_t - | - | thisown - | The membership flag - | - | values - | mcases_t_values_get(self) -> casevec_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mcases_t(self) - -Help on function mcode_modifies_d in module ida_hexrays: - -mcode_modifies_d(*args) - mcode_modifies_d(mcode) -> bool - -Help on class microcode_filter_t in module ida_hexrays: - -class microcode_filter_t(__builtin__.object) - | Proxy of C++ microcode_filter_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> microcode_filter_t - | - | __repr__ = _swig_repr(self) - | - | apply(self, *args) - | apply(self, cdg) -> merror_t - | - | match(self, *args) - | match(self, cdg) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_microcode_filter_t(self) - -Help on class minsn_t in module ida_hexrays: - -class minsn_t(__builtin__.object) - | Proxy of C++ minsn_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _ea) -> minsn_t - | __init__(self, m) -> minsn_t - | - | __lt__(self, *args) - | __lt__(self, ri) -> bool - | - | __repr__ = _swig_repr(self) - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _make_nop(self, *args) - | _make_nop(self) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _minsn_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _minsn_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | _register(self, *args) - | _register(self) - | - | clr_assert(self, *args) - | clr_assert(self) - | - | clr_combinable(self, *args) - | clr_combinable(self) - | - | clr_combined(self, *args) - | clr_combined(self) - | - | clr_fpinsn(self, *args) - | clr_fpinsn(self) - | - | clr_ignlowsrc(self, *args) - | clr_ignlowsrc(self) - | - | clr_multimov(self, *args) - | clr_multimov(self) - | - | clr_noret_icall(self, *args) - | clr_noret_icall(self) - | - | clr_propagatable(self, *args) - | clr_propagatable(self) - | - | clr_tailcall(self, *args) - | clr_tailcall(self) - | - | contains_call(self, *args) - | contains_call(self, with_helpers=False) -> bool - | - | contains_opcode(self, *args) - | contains_opcode(self, mcode) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | equal_insns(self, *args) - | equal_insns(self, m, eqflags) -> bool - | - | find_call(self, *args) - | find_call(self, with_helpers=False) -> minsn_t - | - | find_ins_op(self, *args) - | find_ins_op(self, op=m_nop) -> minsn_t - | - | find_num_op(self, *args) - | find_num_op(self) -> mop_t - | - | find_opcode(self, *args) - | find_opcode(self, mcode) -> minsn_t - | find_opcode(self, mcode) -> minsn_t - | - | for_all_insns(self, *args) - | for_all_insns(self, mv) -> int - | - | for_all_ops(self, *args) - | for_all_ops(self, mv) -> int - | - | get_role(self, *args) - | get_role(self) -> funcrole_t - | - | get_split_size(self, *args) - | get_split_size(self) -> int - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is_after(self, *args) - | is_after(self, m) -> bool - | - | is_alloca(self, *args) - | is_alloca(self) -> bool - | - | is_assert(self, *args) - | is_assert(self) -> bool - | - | is_between(self, *args) - | is_between(self, m1, m2) -> bool - | - | is_bswap(self, *args) - | is_bswap(self) -> bool - | - | is_cleaning_pop(self, *args) - | is_cleaning_pop(self) -> bool - | - | is_combinable(self, *args) - | is_combinable(self) -> bool - | - | is_combined(self, *args) - | is_combined(self) -> bool - | - | is_extstx(self, *args) - | is_extstx(self) -> bool - | - | is_farcall(self, *args) - | is_farcall(self) -> bool - | - | is_fpinsn(self, *args) - | is_fpinsn(self) -> bool - | - | is_helper(self, *args) - | is_helper(self, name) -> bool - | - | is_ignlowsrc(self, *args) - | is_ignlowsrc(self) -> bool - | - | is_inverted_jx(self, *args) - | is_inverted_jx(self) -> bool - | - | is_like_move(self, *args) - | is_like_move(self) -> bool - | - | is_mbarrier(self, *args) - | is_mbarrier(self) -> bool - | - | is_memcpy(self, *args) - | is_memcpy(self) -> bool - | - | is_memset(self, *args) - | is_memset(self) -> bool - | - | is_mov(self, *args) - | is_mov(self) -> bool - | - | is_multimov(self, *args) - | is_multimov(self) -> bool - | - | is_noret_call(self, *args) - | is_noret_call(self, ignore_noret_icall=False) -> bool - | - | is_optional(self, *args) - | is_optional(self) -> bool - | - | is_persistent(self, *args) - | is_persistent(self) -> bool - | - | is_propagatable(self, *args) - | is_propagatable(self) -> bool - | - | is_readflags(self, *args) - | is_readflags(self) -> bool - | - | is_tailcall(self, *args) - | is_tailcall(self) -> bool - | - | is_unknown_call(self, *args) - | is_unknown_call(self) -> bool - | - | is_wild_match(self, *args) - | is_wild_match(self) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, ri) -> int - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | modifes_d(self, *args) - | modifes_d(self) -> bool - | - | modifies_pair_mop(self, *args) - | modifies_pair_mop(self) -> bool - | - | optimize_solo(self, *args) - | optimize_solo(self, optflags=0) -> int - | - | optimize_subtree(self, *args) - | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int - | - | replace_by(self, o) - | - | set_assert(self, *args) - | set_assert(self) - | - | set_cleaning_pop(self, *args) - | set_cleaning_pop(self) - | - | set_combinable(self, *args) - | set_combinable(self) - | - | set_extstx(self, *args) - | set_extstx(self) - | - | set_farcall(self, *args) - | set_farcall(self) - | - | set_fpinsn(self, *args) - | set_fpinsn(self) - | - | set_ignlowsrc(self, *args) - | set_ignlowsrc(self) - | - | set_inverted_jx(self, *args) - | set_inverted_jx(self) - | - | set_mbarrier(self, *args) - | set_mbarrier(self) - | - | set_multimov(self, *args) - | set_multimov(self) - | - | set_noret_icall(self, *args) - | set_noret_icall(self) - | - | set_optional(self, *args) - | set_optional(self) - | - | set_persistent(self, *args) - | set_persistent(self) - | - | set_split_size(self, *args) - | set_split_size(self, s) - | - | set_tailcall(self, *args) - | set_tailcall(self) - | - | set_wild_match(self, *args) - | set_wild_match(self) - | - | setaddr(self, *args) - | setaddr(self, new_ea) - | - | swap(self, *args) - | swap(self, m) - | - | was_noret_icall(self, *args) - | was_noret_icall(self) -> bool - | - | was_split(self, *args) - | was_split(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | d - | minsn_t_d_get(self) -> mop_t - | - | ea - | minsn_t_ea_get(self) -> ea_t - | - | iprops - | minsn_t_iprops_get(self) -> int - | - | l - | minsn_t_l_get(self) -> mop_t - | - | meminfo - | - | next - | minsn_t_next_get(self) -> minsn_t - | - | obj_id - | _obj_id(self) -> PyObject * - | - | opcode - | minsn_t_opcode_get(self) -> mcode_t - | - | prev - | minsn_t_prev_get(self) -> minsn_t - | - | r - | minsn_t_r_get(self) -> mop_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_minsn_t(self) - -Help on class minsn_visitor_t in module ida_hexrays: - -class minsn_visitor_t(op_parent_info_t) - | Proxy of C++ minsn_visitor_t class. - | - | Method resolution order: - | minsn_visitor_t - | op_parent_info_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_minsn(self, *args) - | visit_minsn(self) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_minsn_visitor_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from op_parent_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blk - | op_parent_info_t_blk_get(self) -> mblock_t - | - | curins - | op_parent_info_t_curins_get(self) -> minsn_t - | - | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t - | - | topins - | op_parent_info_t_topins_get(self) -> minsn_t - -Help on class mlist_mop_visitor_t in module ida_hexrays: - -class mlist_mop_visitor_t(__builtin__.object) - | Proxy of C++ mlist_mop_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> mlist_mop_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_mop(self, *args) - | visit_mop(self, op) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | changed - | mlist_mop_visitor_t_changed_get(self) -> bool - | - | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t - | - | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t - | - | thisown - | The membership flag - | - | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mlist_mop_visitor_t(self) - -Help on class mlist_t in module ida_hexrays: - -class mlist_t(__builtin__.object) - | Proxy of C++ mlist_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> mlist_t - | __init__(self, ivl) -> mlist_t - | __init__(self, r, size) -> mlist_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | add(self, *args) - | add(self, r, size) -> bool - | add(self, r) -> bool - | add(self, ivl) -> bool - | add(self, lst) -> bool - | - | addmem(self, *args) - | addmem(self, ea, size) -> bool - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | count(self, *args) - | count(self) -> asize_t - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | has(self, *args) - | has(self, r) -> bool - | - | has_all(self, *args) - | has_all(self, r, size) -> bool - | - | has_any(self, *args) - | has_any(self, r, size) -> bool - | - | has_common(self, *args) - | has_common(self, lst) -> bool - | - | has_memory(self, *args) - | has_memory(self) -> bool - | - | includes(self, *args) - | includes(self, lst) -> bool - | - | intersect(self, *args) - | intersect(self, lst) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, lst) -> bool - | - | sub(self, *args) - | sub(self, r, size) -> bool - | sub(self, ivl) -> bool - | sub(self, lst) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | mem - | mlist_t_mem_get(self) -> ivlset_t - | - | reg - | mlist_t_reg_get(self) -> rlist_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mlist_t(self) - -Help on class mnumber_t in module ida_hexrays: - -class mnumber_t(operand_locator_t) - | Proxy of C++ mnumber_t class. - | - | Method resolution order: - | mnumber_t - | operand_locator_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | update_value(self, *args) - | update_value(self, val64) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | org_value - | mnumber_t_org_value_get(self) -> uint64 - | - | thisown - | The membership flag - | - | value - | mnumber_t_value_get(self) -> uint64 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mnumber_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from operand_locator_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | operand_locator_t_ea_get(self) -> ea_t - | - | opnum - | operand_locator_t_opnum_get(self) -> int - -Help on function modify_user_lvar_info in module ida_hexrays: - -modify_user_lvar_info(*args) - modify_user_lvar_info(func_ea, mli_flags, info) -> bool - - - Modify saved local variable settings. - - @param func_ea (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) - @return: true if modified, false if invalid MLI_FLAGS passed - -Help on function modify_user_lvars in module ida_hexrays: - -modify_user_lvars(*args) - modify_user_lvars(entry_ea, mlv) -> bool - - - Modify saved local variable settings. - - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) - @return: true if modified variables - -Help on class mop_addr_t in module ida_hexrays: - -class mop_addr_t(mop_t) - | Proxy of C++ mop_addr_t class. - | - | Method resolution order: - | mop_addr_t - | mop_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mop_addr_t - | __init__(self, ra) -> mop_addr_t - | __init__(self, ra, isz, osz) -> mop_addr_t - | - | __repr__ = _swig_repr(self) - | - | lexcompare(self, *args) - | lexcompare(self, ra) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | insize - | mop_addr_t_insize_get(self) -> int - | - | outsize - | mop_addr_t_outsize_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mop_addr_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from mop_t: - | - | __eq__(self, *args) - | __eq__(self, rop) -> bool - | - | __lt__(self, *args) - | __lt__(self, rop) -> bool - | - | __ne__(self, *args) - | __ne__(self, rop) -> bool - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_t(self) - | - | _get_a(self, *args) - | _get_a(self) -> mop_addr_t - | - | _get_b(self, *args) - | _get_b(self) -> int - | - | _get_c(self, *args) - | _get_c(self) -> mcases_t - | - | _get_cstr(self, *args) - | _get_cstr(self) -> char const * - | - | _get_d(self, *args) - | _get_d(self) -> minsn_t - | - | _get_f(self, *args) - | _get_f(self) -> mcallinfo_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_g(self, *args) - | _get_g(self) -> ea_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char const * - | - | _get_l(self, *args) - | _get_l(self) -> lvar_ref_t - | - | _get_nnn(self, *args) - | _get_nnn(self) -> mnumber_t - | - | _get_pair(self, *args) - | _get_pair(self) -> mop_pair_t - | - | _get_r(self, *args) - | _get_r(self) -> mreg_t - | - | _get_s(self, *args) - | _get_s(self) -> stkvar_ref_t - | - | _get_scif(self, *args) - | _get_scif(self) -> scif_t - | - | _get_t(self, *args) - | _get_t(self) -> mopt_t - | - | _make_blkref(self, *args) - | _make_blkref(self, blknum) - | - | _make_callinfo(self, *args) - | _make_callinfo(self, fi) - | - | _make_cases(self, *args) - | _make_cases(self, _cases) - | - | _make_gvar(self, *args) - | _make_gvar(self, ea) - | - | _make_insn(self, *args) - | _make_insn(self, ins) - | - | _make_lvar(self, *args) - | _make_lvar(self, mba, idx, off=0) - | - | _make_pair(self, *args) - | _make_pair(self, _pair) - | - | _make_reg(self, *args) - | _make_reg(self, reg) - | _make_reg(self, reg, _size) - | - | _make_stkvar(self, *args) - | _make_stkvar(self, mba, off) - | - | _make_strlit(self, *args) - | _make_strlit(self, str) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | _register(self, *args) - | _register(self) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_b(self, *args) - | _set_b(self, _v) - | - | _set_c(self, *args) - | _set_c(self, _v) - | - | _set_cstr(self, *args) - | _set_cstr(self, _v) - | - | _set_d(self, *args) - | _set_d(self, _v) - | - | _set_f(self, *args) - | _set_f(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_g(self, *args) - | _set_g(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_l(self, *args) - | _set_l(self, _v) - | - | _set_nnn(self, *args) - | _set_nnn(self, _v) - | - | _set_pair(self, *args) - | _set_pair(self, _v) - | - | _set_r(self, *args) - | _set_r(self, _v) - | - | _set_s(self, *args) - | _set_s(self, _v) - | - | _set_scif(self, *args) - | _set_scif(self, _v) - | - | _set_t(self, *args) - | _set_t(self, v) - | - | apply_ld_mcode(self, *args) - | apply_ld_mcode(self, mcode, ea, newsize) - | - | apply_xds(self, *args) - | apply_xds(self, ea, newsize) - | - | apply_xdu(self, *args) - | apply_xdu(self, ea, newsize) - | - | assign(self, *args) - | assign(self, rop) -> mop_t - | - | change_size(self, *args) - | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | - | create_from_insn(self, *args) - | create_from_insn(self, m) - | - | create_from_ivlset(self, *args) - | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | - | create_from_mlist(self, *args) - | create_from_mlist(self, mba, lst, fullsize) -> bool - | - | create_from_scattered_vdloc(self, *args) - | create_from_scattered_vdloc(self, mba, name, type, loc) - | - | create_from_vdloc(self, *args) - | create_from_vdloc(self, mba, loc, _size) - | - | double_size(self, *args) - | double_size(self, sideff=WITH_SIDEFF) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | equal_mops(self, *args) - | equal_mops(self, rop, eqflags) -> bool - | - | erase(self, *args) - | erase(self) - | - | erase_but_keep_size(self, *args) - | erase_but_keep_size(self) - | - | for_all_ops(self, *args) - | for_all_ops(self, mv, type=None, is_target=False) -> int - | - | for_all_scattered_submops(self, *args) - | for_all_scattered_submops(self, sv) -> int - | - | get_insn(self, *args) - | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t - | - | get_stkoff(self, *args) - | get_stkoff(self, p_off) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off) -> member_t * - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is01(self, *args) - | is01(self) -> bool - | - | is_arglist(self, *args) - | is_arglist(self) -> bool - | - | is_bit_reg(self, *args) - | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool - | - | is_cc(self, *args) - | is_cc(self) -> bool - | - | is_ccflags(self, *args) - | is_ccflags(self) -> bool - | - | is_constant(self, *args) - | is_constant(self, is_signed=True) -> bool - | - | is_equal_to(self, *args) - | is_equal_to(self, n, is_signed=True) -> bool - | - | is_extended_from(self, *args) - | is_extended_from(self, nbytes, is_signed) -> bool - | - | is_glbaddr(self, *args) - | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool - | - | is_impptr_done(self, *args) - | is_impptr_done(self) -> bool - | - | is_insn(self, *args) - | is_insn(self) -> bool - | is_insn(self, code) -> bool - | - | is_kreg(self, *args) - | is_kreg(self) -> bool - | - | is_mob(self, *args) - | is_mob(self, serial) -> bool - | - | is_negative_constant(self, *args) - | is_negative_constant(self) -> bool - | - | is_one(self, *args) - | is_one(self) -> bool - | - | is_positive_constant(self, *args) - | is_positive_constant(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | is_reg(self, _r) -> bool - | is_reg(self, _r, _size) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_sign_extended_from(self, *args) - | is_sign_extended_from(self, nbytes) -> bool - | - | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | is_zero_extended_from(self, *args) - | is_zero_extended_from(self, nbytes) -> bool - | - | make_blkref(self, *args) - | make_blkref(self, blknum) - | - | make_first_half(self, *args) - | make_first_half(self, width) -> bool - | - | make_fpnum(self, *args) - | make_fpnum(self, bytes, _size) -> bool - | - | make_gvar(self, *args) - | make_gvar(self, ea) - | - | make_helper(self, *args) - | make_helper(self, name) - | - | make_high_half(self, *args) - | make_high_half(self, width) -> bool - | - | make_insn(self, *args) - | make_insn(self, ins) - | - | make_low_half(self, *args) - | make_low_half(self, width) -> bool - | - | make_number(self, *args) - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | - | make_reg(self, *args) - | make_reg(self, reg) - | make_reg(self, reg, _size) - | - | make_reg_pair(self, *args) - | make_reg_pair(self, loreg, hireg, halfsize) - | - | make_second_half(self, *args) - | make_second_half(self, width) -> bool - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | preserve_side_effects(self, *args) - | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | - | probably_floating(self, *args) - | probably_floating(self) -> bool - | - | replace_by(self, o) - | - | set_impptr_done(self, *args) - | set_impptr_done(self) - | - | set_udt(self, *args) - | set_udt(self) - | - | set_undef_val(self, *args) - | set_undef_val(self) - | - | shift_mop(self, *args) - | shift_mop(self, offset) -> bool - | - | signed_value(self, *args) - | signed_value(self) -> int64 - | - | swap(self, *args) - | swap(self, rop) - | - | unsigned_value(self, *args) - | unsigned_value(self) -> uint64 - | - | value(self, *args) - | value(self, is_signed) -> uint64 - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from mop_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a - | - | b - | - | c - | - | cstr - | - | d - | - | f - | - | fpc - | - | g - | - | helper - | - | l - | - | meminfo - | - | nnn - | - | obj_id - | _obj_id(self) -> PyObject * - | - | oprops - | mop_t_oprops_get(self) -> uint8 - | - | pair - | - | r - | - | s - | - | scif - | - | size - | mop_t_size_get(self) -> int - | - | t - | _get_t(self) -> mopt_t - | - | valnum - | mop_t_valnum_get(self) -> uint16 - -Help on class mop_pair_t in module ida_hexrays: - -class mop_pair_t(__builtin__.object) - | Proxy of C++ mop_pair_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mop_pair_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hop - | mop_pair_t_hop_get(self) -> mop_t - | - | lop - | mop_pair_t_lop_get(self) -> mop_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mop_pair_t(self) - -Help on class mop_t in module ida_hexrays: - -class mop_t(__builtin__.object) - | Proxy of C++ mop_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, rop) -> bool - | - | __init__(self, *args) - | __init__(self) -> mop_t - | __init__(self, rop) -> mop_t - | __init__(self, _r, _s) -> mop_t - | - | __lt__(self, *args) - | __lt__(self, rop) -> bool - | - | __ne__(self, *args) - | __ne__(self, rop) -> bool - | - | __repr__ = _swig_repr(self) - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_t(self) - | - | _get_a(self, *args) - | _get_a(self) -> mop_addr_t - | - | _get_b(self, *args) - | _get_b(self) -> int - | - | _get_c(self, *args) - | _get_c(self) -> mcases_t - | - | _get_cstr(self, *args) - | _get_cstr(self) -> char const * - | - | _get_d(self, *args) - | _get_d(self) -> minsn_t - | - | _get_f(self, *args) - | _get_f(self) -> mcallinfo_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_g(self, *args) - | _get_g(self) -> ea_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char const * - | - | _get_l(self, *args) - | _get_l(self) -> lvar_ref_t - | - | _get_nnn(self, *args) - | _get_nnn(self) -> mnumber_t - | - | _get_pair(self, *args) - | _get_pair(self) -> mop_pair_t - | - | _get_r(self, *args) - | _get_r(self) -> mreg_t - | - | _get_s(self, *args) - | _get_s(self) -> stkvar_ref_t - | - | _get_scif(self, *args) - | _get_scif(self) -> scif_t - | - | _get_t(self, *args) - | _get_t(self) -> mopt_t - | - | _make_blkref(self, *args) - | _make_blkref(self, blknum) - | - | _make_callinfo(self, *args) - | _make_callinfo(self, fi) - | - | _make_cases(self, *args) - | _make_cases(self, _cases) - | - | _make_gvar(self, *args) - | _make_gvar(self, ea) - | - | _make_insn(self, *args) - | _make_insn(self, ins) - | - | _make_lvar(self, *args) - | _make_lvar(self, mba, idx, off=0) - | - | _make_pair(self, *args) - | _make_pair(self, _pair) - | - | _make_reg(self, *args) - | _make_reg(self, reg) - | _make_reg(self, reg, _size) - | - | _make_stkvar(self, *args) - | _make_stkvar(self, mba, off) - | - | _make_strlit(self, *args) - | _make_strlit(self, str) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | _register(self, *args) - | _register(self) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_b(self, *args) - | _set_b(self, _v) - | - | _set_c(self, *args) - | _set_c(self, _v) - | - | _set_cstr(self, *args) - | _set_cstr(self, _v) - | - | _set_d(self, *args) - | _set_d(self, _v) - | - | _set_f(self, *args) - | _set_f(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_g(self, *args) - | _set_g(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_l(self, *args) - | _set_l(self, _v) - | - | _set_nnn(self, *args) - | _set_nnn(self, _v) - | - | _set_pair(self, *args) - | _set_pair(self, _v) - | - | _set_r(self, *args) - | _set_r(self, _v) - | - | _set_s(self, *args) - | _set_s(self, _v) - | - | _set_scif(self, *args) - | _set_scif(self, _v) - | - | _set_t(self, *args) - | _set_t(self, v) - | - | apply_ld_mcode(self, *args) - | apply_ld_mcode(self, mcode, ea, newsize) - | - | apply_xds(self, *args) - | apply_xds(self, ea, newsize) - | - | apply_xdu(self, *args) - | apply_xdu(self, ea, newsize) - | - | assign(self, *args) - | assign(self, rop) -> mop_t - | - | change_size(self, *args) - | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | - | create_from_insn(self, *args) - | create_from_insn(self, m) - | - | create_from_ivlset(self, *args) - | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | - | create_from_mlist(self, *args) - | create_from_mlist(self, mba, lst, fullsize) -> bool - | - | create_from_scattered_vdloc(self, *args) - | create_from_scattered_vdloc(self, mba, name, type, loc) - | - | create_from_vdloc(self, *args) - | create_from_vdloc(self, mba, loc, _size) - | - | double_size(self, *args) - | double_size(self, sideff=WITH_SIDEFF) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | equal_mops(self, *args) - | equal_mops(self, rop, eqflags) -> bool - | - | erase(self, *args) - | erase(self) - | - | erase_but_keep_size(self, *args) - | erase_but_keep_size(self) - | - | for_all_ops(self, *args) - | for_all_ops(self, mv, type=None, is_target=False) -> int - | - | for_all_scattered_submops(self, *args) - | for_all_scattered_submops(self, sv) -> int - | - | get_insn(self, *args) - | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t - | - | get_stkoff(self, *args) - | get_stkoff(self, p_off) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off) -> member_t * - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is01(self, *args) - | is01(self) -> bool - | - | is_arglist(self, *args) - | is_arglist(self) -> bool - | - | is_bit_reg(self, *args) - | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool - | - | is_cc(self, *args) - | is_cc(self) -> bool - | - | is_ccflags(self, *args) - | is_ccflags(self) -> bool - | - | is_constant(self, *args) - | is_constant(self, is_signed=True) -> bool - | - | is_equal_to(self, *args) - | is_equal_to(self, n, is_signed=True) -> bool - | - | is_extended_from(self, *args) - | is_extended_from(self, nbytes, is_signed) -> bool - | - | is_glbaddr(self, *args) - | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool - | - | is_impptr_done(self, *args) - | is_impptr_done(self) -> bool - | - | is_insn(self, *args) - | is_insn(self) -> bool - | is_insn(self, code) -> bool - | - | is_kreg(self, *args) - | is_kreg(self) -> bool - | - | is_mob(self, *args) - | is_mob(self, serial) -> bool - | - | is_negative_constant(self, *args) - | is_negative_constant(self) -> bool - | - | is_one(self, *args) - | is_one(self) -> bool - | - | is_positive_constant(self, *args) - | is_positive_constant(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | is_reg(self, _r) -> bool - | is_reg(self, _r, _size) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_sign_extended_from(self, *args) - | is_sign_extended_from(self, nbytes) -> bool - | - | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | is_zero_extended_from(self, *args) - | is_zero_extended_from(self, nbytes) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, rop) -> int - | - | make_blkref(self, *args) - | make_blkref(self, blknum) - | - | make_first_half(self, *args) - | make_first_half(self, width) -> bool - | - | make_fpnum(self, *args) - | make_fpnum(self, bytes, _size) -> bool - | - | make_gvar(self, *args) - | make_gvar(self, ea) - | - | make_helper(self, *args) - | make_helper(self, name) - | - | make_high_half(self, *args) - | make_high_half(self, width) -> bool - | - | make_insn(self, *args) - | make_insn(self, ins) - | - | make_low_half(self, *args) - | make_low_half(self, width) -> bool - | - | make_number(self, *args) - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | - | make_reg(self, *args) - | make_reg(self, reg) - | make_reg(self, reg, _size) - | - | make_reg_pair(self, *args) - | make_reg_pair(self, loreg, hireg, halfsize) - | - | make_second_half(self, *args) - | make_second_half(self, width) -> bool - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | preserve_side_effects(self, *args) - | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | - | probably_floating(self, *args) - | probably_floating(self) -> bool - | - | replace_by(self, o) - | - | set_impptr_done(self, *args) - | set_impptr_done(self) - | - | set_udt(self, *args) - | set_udt(self) - | - | set_undef_val(self, *args) - | set_undef_val(self) - | - | shift_mop(self, *args) - | shift_mop(self, offset) -> bool - | - | signed_value(self, *args) - | signed_value(self) -> int64 - | - | swap(self, *args) - | swap(self, rop) - | - | unsigned_value(self, *args) - | unsigned_value(self) -> uint64 - | - | value(self, *args) - | value(self, is_signed) -> uint64 - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a - | - | b - | - | c - | - | cstr - | - | d - | - | f - | - | fpc - | - | g - | - | helper - | - | l - | - | meminfo - | - | nnn - | - | obj_id - | _obj_id(self) -> PyObject * - | - | oprops - | mop_t_oprops_get(self) -> uint8 - | - | pair - | - | r - | - | s - | - | scif - | - | size - | mop_t_size_get(self) -> int - | - | t - | _get_t(self) -> mopt_t - | - | thisown - | The membership flag - | - | valnum - | mop_t_valnum_get(self) -> uint16 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mop_t(self) - -Help on class mop_visitor_t in module ida_hexrays: - -class mop_visitor_t(op_parent_info_t) - | Proxy of C++ mop_visitor_t class. - | - | Method resolution order: - | mop_visitor_t - | op_parent_info_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_mop(self, *args) - | visit_mop(self, op, type, is_target) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | prune - | mop_visitor_t_prune_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mop_visitor_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from op_parent_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blk - | op_parent_info_t_blk_get(self) -> mblock_t - | - | curins - | op_parent_info_t_curins_get(self) -> minsn_t - | - | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t - | - | topins - | op_parent_info_t_topins_get(self) -> minsn_t - -Help on class mopvec_t in module ida_hexrays: - -class mopvec_t(__builtin__.object) - | Proxy of C++ qvector< mop_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> mop_t - | - | __init__(self, *args) - | __init__(self) -> mopvec_t - | __init__(self, x) -> mopvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> mop_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> mop_t - | begin(self) -> mop_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> mop_t - | end(self) -> mop_t - | - | erase(self, *args) - | erase(self, it) -> mop_t - | erase(self, first, last) -> mop_t - | - | extract(self, *args) - | extract(self) -> mop_t - | - | find(self, *args) - | find(self, x) -> mop_t - | find(self, x) -> mop_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=mop_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> mop_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> mop_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_mopvec_t(self) - -Help on function mreg2reg in module ida_hexrays: - -mreg2reg(*args) - mreg2reg(reg, width) -> int - - - Map a microregister to a processor register. - - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) - @return: processor register id or -1 - -Help on function must_mcode_close_block in module ida_hexrays: - -must_mcode_close_block(*args) - must_mcode_close_block(mcode, including_calls) -> bool - - - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case because - before MMAT_CALLS they are closing opcodes. - Afteer MMAT_CALLS that are not considered as - closing opcodes. (C++: bool) - -Help on function negate_mcode_relation in module ida_hexrays: - -negate_mcode_relation(*args) - negate_mcode_relation(code) -> mcode_t - -Help on function negated_relation in module ida_hexrays: - -negated_relation(*args) - negated_relation(op) -> ctype_t - - - Negate a comparison operator. For example, cot_sge becomes cot_slt. - - - @param op (C++: ctype_t) - -Help on function new_block in module ida_hexrays: - -new_block() - -Help on class number_format_t in module ida_hexrays: - -class number_format_t(__builtin__.object) - | Proxy of C++ number_format_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _opnum=0) -> number_format_t - | - | __repr__ = _swig_repr(self) - | - | get_radix(self, *args) - | get_radix(self) -> int - | - | is_char(self, *args) - | is_char(self) -> bool - | - | is_dec(self, *args) - | is_dec(self) -> bool - | - | is_enum(self, *args) - | is_enum(self) -> bool - | - | is_fixed(self, *args) - | is_fixed(self) -> bool - | - | is_hex(self, *args) - | is_hex(self) -> bool - | - | is_numop(self, *args) - | is_numop(self) -> bool - | - | is_oct(self, *args) - | is_oct(self) -> bool - | - | is_stroff(self, *args) - | is_stroff(self) -> bool - | - | needs_to_be_inverted(self, *args) - | needs_to_be_inverted(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | number_format_t_flags_get(self) -> flags_t - | - | opnum - | number_format_t_opnum_get(self) -> char - | - | org_nbytes - | number_format_t_org_nbytes_get(self) -> char - | - | props - | number_format_t_props_get(self) -> char - | - | serial - | number_format_t_serial_get(self) -> uchar - | - | thisown - | The membership flag - | - | type_name - | number_format_t_type_name_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_number_format_t(self) - -Help on class op_parent_info_t in module ida_hexrays: - -class op_parent_info_t(__builtin__.object) - | Proxy of C++ op_parent_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blk - | op_parent_info_t_blk_get(self) -> mblock_t - | - | curins - | op_parent_info_t_curins_get(self) -> minsn_t - | - | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t - | - | thisown - | The membership flag - | - | topins - | op_parent_info_t_topins_get(self) -> minsn_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_op_parent_info_t(self) - -Help on function op_uses_x in module ida_hexrays: - -op_uses_x(*args) - op_uses_x(op) -> bool - - - Does operator use the 'x' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) - -Help on function op_uses_y in module ida_hexrays: - -op_uses_y(*args) - op_uses_y(op) -> bool - - - Does operator use the 'y' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) - -Help on function op_uses_z in module ida_hexrays: - -op_uses_z(*args) - op_uses_z(op) -> bool - - - Does operator use the 'z' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) - -Help on function open_pseudocode in module ida_hexrays: - -open_pseudocode(*args) - open_pseudocode(ea, new_window) -> vdui_t - - - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - - @param ea: function to decompile (C++: ea_t) - @param new_window: 0:reuse existing window; 1:open new window; -1: - reuse existing window if the current view is - pseudocode (C++: int) - @return: false if failed - -Help on class operand_locator_t in module ida_hexrays: - -class operand_locator_t(__builtin__.object) - | Proxy of C++ operand_locator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _ea, _opnum) -> operand_locator_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | operand_locator_t_ea_get(self) -> ea_t - | - | opnum - | operand_locator_t_opnum_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_operand_locator_t(self) - -Help on class operator_info_t in module ida_hexrays: - -class operator_info_t(__builtin__.object) - | Proxy of C++ operator_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> operator_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fixtype - | operator_info_t_fixtype_get(self) -> uchar - | - | flags - | operator_info_t_flags_get(self) -> uchar - | - | precedence - | operator_info_t_precedence_get(self) -> uchar - | - | text - | operator_info_t_text_get(self) -> char const * - | - | thisown - | The membership flag - | - | valency - | operator_info_t_valency_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_operator_info_t(self) - -Help on class optblock_t in module ida_hexrays: - -class optblock_t(__builtin__.object) - | Proxy of C++ optblock_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> optblock_t - | - | __repr__ = _swig_repr(self) - | - | func(self, *args) - | func(self, blk) -> int - | - | install(self, *args) - | install(self) - | - | remove(self, *args) - | remove(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_optblock_t(self) - -Help on class optinsn_t in module ida_hexrays: - -class optinsn_t(__builtin__.object) - | Proxy of C++ optinsn_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> optinsn_t - | - | __repr__ = _swig_repr(self) - | - | func(self, *args) - | func(self, blk, ins) -> int - | - | install(self, *args) - | install(self) - | - | remove(self, *args) - | remove(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_optinsn_t(self) - -Help on function parse_user_call in module ida_hexrays: - -parse_user_call(*args) - parse_user_call(udc, decl, silent) -> bool - - - Convert function type declaration into internal structure - - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) - @return: success - -Help on function partial_type_num in module ida_hexrays: - -partial_type_num(*args) - partial_type_num(type) -> int - - - Calculate number of partial subtypes. - - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. - -Help on function print_vdloc in module ida_hexrays: - -print_vdloc(*args) - print_vdloc(loc, nbytes) - - - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. - - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) - -Help on function property_op_to_typename in module ida_hexrays: - -property_op_to_typename(self) - -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(__builtin__.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | - | __repr__ = _swig_repr(self) - | - | back(self, *args) - | back(self) -> cinsn_t - | back(self) -> cinsn_t - | - | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) - | erase(self, p) - | - | front(self, *args) - | front(self) -> cinsn_t - | front(self) -> cinsn_t - | - | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | insert(self, p) -> qlist< cinsn_t >::iterator - | insert(self, p, x) -> qlist_cinsn_t_iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | pop_front(self, *args) - | pop_front(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> cinsn_t - | - | push_front(self, *args) - | push_front(self, x) - | - | rbegin(self, *args) - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | rend(self, *args) - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, x) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qlist_cinsn_t(self) - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(__builtin__.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | - | __next__(self, *args) - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | next = __next__(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qlist_cinsn_t_iterator(self) - -Help on class qstring_printer_t in module ida_hexrays: - -class qstring_printer_t(vc_printer_t) - | Proxy of C++ qstring_printer_t class. - | - | Method resolution order: - | qstring_printer_t - | vc_printer_t - | vd_printer_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, f, tags) -> qstring_printer_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, indent, format) -> int - | - | get_s(self, *args) - | get_s(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | s - | - | thisown - | The membership flag - | - | with_tags - | qstring_printer_t_with_tags_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Methods inherited from vc_printer_t: - | - | __disown__(self) - | - | oneliner(self, *args) - | oneliner(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vc_printer_t: - | - | func - | vc_printer_t_func_get(self) -> cfunc_t - | - | lastchar - | vc_printer_t_lastchar_get(self) -> char - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from vc_printer_t: - | - | __swig_destroy__ = - | delete_vc_printer_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vd_printer_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hdrlines - | vd_printer_t_hdrlines_get(self) -> int - | - | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * - -Help on function qswap in module ida_hexrays: - -qswap(*args) - qswap(a, b) - -Help on class qvector_carg_t in module ida_hexrays: - -class qvector_carg_t(__builtin__.object) - | Proxy of C++ qvector< carg_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> carg_t - | - | __init__(self, *args) - | __init__(self) -> qvector_carg_t - | __init__(self, x) -> qvector_carg_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> carg_t - | begin(self) -> carg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> carg_t - | end(self) -> carg_t - | - | erase(self, *args) - | erase(self, it) -> carg_t - | erase(self, first, last) -> carg_t - | - | extract(self, *args) - | extract(self) -> carg_t - | - | find(self, *args) - | find(self, x) -> carg_t - | find(self, x) -> carg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=carg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> carg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> carg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qvector_carg_t(self) - -Help on class qvector_ccase_t in module ida_hexrays: - -class qvector_ccase_t(__builtin__.object) - | Proxy of C++ qvector< ccase_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ccase_t - | - | __init__(self, *args) - | __init__(self) -> qvector_ccase_t - | __init__(self, x) -> qvector_ccase_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ccase_t - | begin(self) -> ccase_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ccase_t - | end(self) -> ccase_t - | - | erase(self, *args) - | erase(self, it) -> ccase_t - | erase(self, first, last) -> ccase_t - | - | extract(self, *args) - | extract(self) -> ccase_t - | - | find(self, *args) - | find(self, x) -> ccase_t - | find(self, x) -> ccase_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ccase_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ccase_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ccase_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qvector_ccase_t(self) - -Help on class qvector_history_t in module ida_hexrays: - -class qvector_history_t(__builtin__.object) - | Proxy of C++ qvector< history_item_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> history_item_t - | - | __init__(self, *args) - | __init__(self) -> qvector_history_t - | __init__(self, x) -> qvector_history_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> history_item_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> history_item_t - | begin(self) -> history_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> history_item_t - | end(self) -> history_item_t - | - | erase(self, *args) - | erase(self, it) -> history_item_t - | erase(self, first, last) -> history_item_t - | - | extract(self, *args) - | extract(self) -> history_item_t - | - | find(self, *args) - | find(self, x) -> history_item_t - | find(self, x) -> history_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=history_item_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> history_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> history_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qvector_history_t(self) - -Help on class qvector_lvar_t in module ida_hexrays: - -class qvector_lvar_t(__builtin__.object) - | Proxy of C++ qvector< lvar_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lvar_t - | - | __init__(self, *args) - | __init__(self) -> qvector_lvar_t - | __init__(self, x) -> qvector_lvar_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> lvar_t - | begin(self) -> lvar_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> lvar_t - | end(self) -> lvar_t - | - | erase(self, *args) - | erase(self, it) -> lvar_t - | erase(self, first, last) -> lvar_t - | - | extract(self, *args) - | extract(self) -> lvar_t - | - | find(self, *args) - | find(self, x) -> lvar_t - | find(self, x) -> lvar_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lvar_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> lvar_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qvector_lvar_t(self) - -Help on function reg2mreg in module ida_hexrays: - -reg2mreg(*args) - reg2mreg(reg) -> mreg_t - - - Map a processor register to a microregister. - - @param reg: processor register number (C++: int) - @return: microregister register id or mr_none - -Help on function remitem in module ida_hexrays: - -remitem(*args) - remitem(e) - -Help on function remove_hexrays_callback in module ida_hexrays: - -remove_hexrays_callback(callback) - Deprecated. Please use Hexrays_Hooks instead - -Help on function restore_user_cmts in module ida_hexrays: - -restore_user_cmts(*args) - restore_user_cmts(func_ea) -> user_cmts_t - - - Restore user defined comments from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() - -Help on function restore_user_defined_calls in module ida_hexrays: - -restore_user_defined_calls(*args) - restore_user_defined_calls(udcalls, func_ea) -> bool - - - Restore user defined function calls from the database. - - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success - -Help on function restore_user_iflags in module ida_hexrays: - -restore_user_iflags(*args) - restore_user_iflags(func_ea) -> user_iflags_t - - - Restore user defined citem iflags from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() - -Help on function restore_user_labels in module ida_hexrays: - -restore_user_labels(*args) - restore_user_labels(func_ea) -> user_labels_t - - - Restore user defined labels from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() - -Help on function restore_user_lvar_settings in module ida_hexrays: - -restore_user_lvar_settings(*args) - restore_user_lvar_settings(lvinf, func_ea) -> bool - - - Restore user defined local variable settings in the database. - - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success - -Help on function restore_user_numforms in module ida_hexrays: - -restore_user_numforms(*args) - restore_user_numforms(func_ea) -> user_numforms_t - - - Restore user defined number formats from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() - -Help on function restore_user_unions in module ida_hexrays: - -restore_user_unions(*args) - restore_user_unions(func_ea) -> user_unions_t - - - Restore user defined union field selections from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() - -Help on class rlist_t in module ida_hexrays: - -class rlist_t(bitset_t) - | Proxy of C++ rlist_t class. - | - | Method resolution order: - | rlist_t - | bitset_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> rlist_t - | __init__(self, m) -> rlist_t - | __init__(self, reg, width) -> rlist_t - | - | __repr__ = _swig_repr(self) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_rlist_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from bitset_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __iter__(self) - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __len__ = count(self, *args) - | count(self) -> int - | count(self, bit) -> int - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | add(self, *args) - | add(self, bit) -> bool - | add(self, bit, width) -> bool - | add(self, ml) -> bool - | - | back(self, *args) - | back(self) -> int - | - | begin(self, *args) - | begin(self) -> bitset_t::iterator - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | copy(self, *args) - | copy(self, m) -> bitset_t - | - | count(self, *args) - | count(self) -> int - | count(self, bit) -> int - | - | cut_at(self, *args) - | cut_at(self, maxbit) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bitset_t::iterator - | - | fill_with_ones(self, *args) - | fill_with_ones(self, maxbit) - | - | front(self, *args) - | front(self) -> int - | - | has(self, *args) - | has(self, bit) -> bool - | - | has_all(self, *args) - | has_all(self, bit, width) -> bool - | - | has_any(self, *args) - | has_any(self, bit, width) -> bool - | - | has_common(self, *args) - | has_common(self, ml) -> bool - | - | inc(self, *args) - | inc(self, p, n=1) - | - | includes(self, *args) - | includes(self, ml) -> bool - | - | intersect(self, *args) - | intersect(self, ml) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, ml) -> bool - | - | itat(self, *args) - | itat(self, n) -> bitset_t::iterator - | - | itv(self, *args) - | itv(self, it) -> int - | - | last(self, *args) - | last(self) -> int - | - | shift_down(self, *args) - | shift_down(self, shift) - | - | sub(self, *args) - | sub(self, bit) -> bool - | sub(self, bit, width) -> bool - | sub(self, ml) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from bitset_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function save_user_cmts in module ida_hexrays: - -save_user_cmts(*args) - save_user_cmts(func_ea, user_cmts) - - - Save user defined comments into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) - -Help on function save_user_defined_calls in module ida_hexrays: - -save_user_defined_calls(*args) - save_user_defined_calls(func_ea, udcalls) - - - Save user defined local function calls into the database. - - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) - -Help on function save_user_iflags in module ida_hexrays: - -save_user_iflags(*args) - save_user_iflags(func_ea, iflags) - - - Save user defined citem iflags into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) - -Help on function save_user_labels in module ida_hexrays: - -save_user_labels(*args) - save_user_labels(func_ea, user_labels) - - - Save user defined labels into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) - -Help on function save_user_lvar_settings in module ida_hexrays: - -save_user_lvar_settings(*args) - save_user_lvar_settings(func_ea, lvinf) - - - Save user defined local variable settings into the database. - - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) - -Help on function save_user_numforms in module ida_hexrays: - -save_user_numforms(*args) - save_user_numforms(func_ea, numforms) - - - Save user defined number formats into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) - -Help on function save_user_unions in module ida_hexrays: - -save_user_unions(*args) - save_user_unions(func_ea, unions) - - - Save user defined union field selections into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) - -Help on class scif_t in module ida_hexrays: - -class scif_t(vdloc_t) - | Proxy of C++ scif_t class. - | - | Method resolution order: - | scif_t - | vdloc_t - | ida_typeinf.argloc_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _mba, n, tif) -> scif_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | mba - | scif_t_mba_get(self) -> mbl_array_t - | - | name - | scif_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | scif_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_scif_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from vdloc_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _set_reg1(self, *args) - | _set_reg1(self, r1) - | - | compare(self, *args) - | compare(self, r) -> int - | - | is_aliasable(self, *args) - | is_aliasable(self, mb, size) -> bool - | - | reg1(self, *args) - | reg1(self) -> int - | - | set_reg1(self, *args) - | set_reg1(self, r1) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_typeinf.argloc_t: - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_typeinf.argloc_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class scif_visitor_t in module ida_hexrays: - -class scif_visitor_t(__builtin__.object) - | Proxy of C++ scif_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> scif_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_scif_mop(self, *args) - | visit_scif_mop(self, r, off) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_scif_visitor_t(self) - -Help on function select_udt_by_offset in module ida_hexrays: - -select_udt_by_offset(*args) - select_udt_by_offset(udts, ops, applicator) -> int - - - Select UDT - - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) - -Help on function send_database in module ida_hexrays: - -send_database(*args) - send_database(err, silent) - - - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) - -Help on function set2jcnd in module ida_hexrays: - -set2jcnd(*args) - set2jcnd(code) -> mcode_t - -Help on function set_type in module ida_hexrays: - -set_type(*args) - set_type(id, tif, source, force=False) -> bool - - - Set a global type. - - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) - @return: success - -Help on class simple_graph_t in module ida_hexrays: - -class simple_graph_t(__builtin__.object) - | Proxy of C++ simple_graph_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool - | - | thisown - | The membership flag - | - | title - | simple_graph_t_title_get(self) -> qstring * - -Help on class stkvar_ref_t in module ida_hexrays: - -class stkvar_ref_t(__builtin__.object) - | Proxy of C++ stkvar_ref_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, m, o) -> stkvar_ref_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off=None) -> member_t * - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | mba - | stkvar_ref_t_mba_get(self) -> mbl_array_t - | - | off - | stkvar_ref_t_off_get(self) -> sval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_stkvar_ref_t(self) - -Help on function swap_mcode_relation in module ida_hexrays: - -swap_mcode_relation(*args) - swap_mcode_relation(code) -> mcode_t - -Help on function swapped_relation in module ida_hexrays: - -swapped_relation(*args) - swapped_relation(op) -> ctype_t - - - Swap a comparison operator. For example, cot_sge becomes cot_sle. - - - @param op (C++: ctype_t) - -Help on function term_hexrays_plugin in module ida_hexrays: - -term_hexrays_plugin(*args) - term_hexrays_plugin() - - - Stop working with hex-rays decompiler. - -Help on class treeloc_t in module ida_hexrays: - -class treeloc_t(__builtin__.object) - | Proxy of C++ treeloc_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> treeloc_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | treeloc_t_ea_get(self) -> ea_t - | - | itp - | treeloc_t_itp_get(self) -> item_preciser_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_treeloc_t(self) - -Help on class udc_filter_t in module ida_hexrays: - -class udc_filter_t(microcode_filter_t) - | Proxy of C++ udc_filter_t class. - | - | Method resolution order: - | udc_filter_t - | microcode_filter_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> udc_filter_t - | - | __repr__ = _swig_repr(self) - | - | apply(self, *args) - | apply(self, cdg) -> merror_t - | - | init(self, *args) - | init(self, decl) -> bool - | - | match(self, *args) - | match(self, cdg) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_udc_filter_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from microcode_filter_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function udcall_map_begin in module ida_hexrays: - -udcall_map_begin(*args) - udcall_map_begin(map) -> udcall_map_iterator_t - - - Get iterator pointing to the beginning of udcall_map_t. - - - @param map (C++: const udcall_map_t *) - -Help on function udcall_map_clear in module ida_hexrays: - -udcall_map_clear(*args) - udcall_map_clear(map) - - - Clear udcall_map_t. - - - @param map (C++: udcall_map_t *) - -Help on function udcall_map_end in module ida_hexrays: - -udcall_map_end(*args) - udcall_map_end(map) -> udcall_map_iterator_t - - - Get iterator pointing to the end of udcall_map_t. - - - @param map (C++: const udcall_map_t *) - -Help on function udcall_map_erase in module ida_hexrays: - -udcall_map_erase(*args) - udcall_map_erase(map, p) - - - Erase current element from udcall_map_t. - - - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_find in module ida_hexrays: - -udcall_map_find(*args) - udcall_map_find(map, key) -> udcall_map_iterator_t - - - Find the specified key in udcall_map_t. - - - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) - -Help on function udcall_map_first in module ida_hexrays: - -udcall_map_first(*args) - udcall_map_first(p) -> ea_t const & - - - Get reference to the current map key. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_free in module ida_hexrays: - -udcall_map_free(*args) - udcall_map_free(map) - - - Delete udcall_map_t instance. - - - @param map (C++: udcall_map_t *) - -Help on function udcall_map_insert in module ida_hexrays: - -udcall_map_insert(*args) - udcall_map_insert(map, key, val) -> udcall_map_iterator_t - - - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - - - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) - -Help on class udcall_map_iterator_t in module ida_hexrays: - -class udcall_map_iterator_t(__builtin__.object) - | Proxy of C++ udcall_map_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> udcall_map_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | udcall_map_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_udcall_map_iterator_t(self) - -Help on function udcall_map_new in module ida_hexrays: - -udcall_map_new(*args) - udcall_map_new() -> udcall_map_t * - - - Create a new udcall_map_t instance. - -Help on function udcall_map_next in module ida_hexrays: - -udcall_map_next(*args) - udcall_map_next(p) -> udcall_map_iterator_t - - - Move to the next element. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_prev in module ida_hexrays: - -udcall_map_prev(*args) - udcall_map_prev(p) -> udcall_map_iterator_t - - - Move to the previous element. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_second in module ida_hexrays: - -udcall_map_second(*args) - udcall_map_second(p) -> udcall_t - - - Get reference to the current map value. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_size in module ida_hexrays: - -udcall_map_size(*args) - udcall_map_size(map) -> size_t - - - Get size of udcall_map_t. - - - @param map (C++: udcall_map_t *) - -Help on class udcall_t in module ida_hexrays: - -class udcall_t(__builtin__.object) - | Proxy of C++ udcall_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> udcall_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | udcall_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | tif - | udcall_t_tif_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_udcall_t(self) - -Help on class ui_stroff_applicator_t in module ida_hexrays: - -class ui_stroff_applicator_t(__builtin__.object) - | Proxy of C++ ui_stroff_applicator_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> ui_stroff_applicator_t - | - | __repr__ = _swig_repr(self) - | - | apply(self, *args) - | apply(self, opnum, path) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ui_stroff_applicator_t(self) - -Help on class ui_stroff_op_t in module ida_hexrays: - -class ui_stroff_op_t(__builtin__.object) - | Proxy of C++ ui_stroff_op_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ui_stroff_op_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | offset - | ui_stroff_op_t_offset_get(self) -> uval_t - | - | text - | ui_stroff_op_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ui_stroff_op_t(self) - -Help on class ui_stroff_ops_t in module ida_hexrays: - -class ui_stroff_ops_t(__builtin__.object) - | Proxy of C++ qvector< ui_stroff_op_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ui_stroff_op_t - | - | __init__(self, *args) - | __init__(self) -> ui_stroff_ops_t - | __init__(self, x) -> ui_stroff_ops_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t - | - | erase(self, *args) - | erase(self, it) -> ui_stroff_op_t - | erase(self, first, last) -> ui_stroff_op_t - | - | extract(self, *args) - | extract(self) -> ui_stroff_op_t - | - | find(self, *args) - | find(self, x) -> ui_stroff_op_t - | find(self, x) -> ui_stroff_op_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ui_stroff_op_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ui_stroff_op_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ui_stroff_op_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ui_stroff_ops_t(self) - -Help on function user_cmts_begin in module ida_hexrays: - -user_cmts_begin(*args) - user_cmts_begin(map) -> user_cmts_iterator_t - - - Get iterator pointing to the beginning of user_cmts_t. - - - @param map (C++: const user_cmts_t *) - -Help on function user_cmts_clear in module ida_hexrays: - -user_cmts_clear(*args) - user_cmts_clear(map) - - - Clear user_cmts_t. - - - @param map (C++: user_cmts_t *) - -Help on function user_cmts_end in module ida_hexrays: - -user_cmts_end(*args) - user_cmts_end(map) -> user_cmts_iterator_t - - - Get iterator pointing to the end of user_cmts_t. - - - @param map (C++: const user_cmts_t *) - -Help on function user_cmts_erase in module ida_hexrays: - -user_cmts_erase(*args) - user_cmts_erase(map, p) - - - Erase current element from user_cmts_t. - - - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_find in module ida_hexrays: - -user_cmts_find(*args) - user_cmts_find(map, key) -> user_cmts_iterator_t - - - Find the specified key in user_cmts_t. - - - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) - -Help on function user_cmts_first in module ida_hexrays: - -user_cmts_first(*args) - user_cmts_first(p) -> treeloc_t - - - Get reference to the current map key. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_free in module ida_hexrays: - -user_cmts_free(*args) - user_cmts_free(map) - - - Delete user_cmts_t instance. - - - @param map (C++: user_cmts_t *) - -Help on function user_cmts_insert in module ida_hexrays: - -user_cmts_insert(*args) - user_cmts_insert(map, key, val) -> user_cmts_iterator_t - - - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - - - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) - -Help on class user_cmts_iterator_t in module ida_hexrays: - -class user_cmts_iterator_t(__builtin__.object) - | Proxy of C++ user_cmts_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_cmts_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_cmts_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_cmts_iterator_t(self) - -Help on function user_cmts_new in module ida_hexrays: - -user_cmts_new(*args) - user_cmts_new() -> user_cmts_t - - - Create a new user_cmts_t instance. - -Help on function user_cmts_next in module ida_hexrays: - -user_cmts_next(*args) - user_cmts_next(p) -> user_cmts_iterator_t - - - Move to the next element. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_prev in module ida_hexrays: - -user_cmts_prev(*args) - user_cmts_prev(p) -> user_cmts_iterator_t - - - Move to the previous element. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_second in module ida_hexrays: - -user_cmts_second(*args) - user_cmts_second(p) -> citem_cmt_t - - - Get reference to the current map value. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_size in module ida_hexrays: - -user_cmts_size(*args) - user_cmts_size(map) -> size_t - - - Get size of user_cmts_t. - - - @param map (C++: user_cmts_t *) - -Help on class user_cmts_t in module ida_hexrays: - -class user_cmts_t(__builtin__.object) - | Proxy of C++ std::map< treeloc_t,citem_cmt_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_cmts_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> citem_cmt_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = - | user_cmts_begin(map) -> user_cmts_iterator_t - | - | __clear = - | user_cmts_clear(map) - | - | __end = - | user_cmts_end(map) -> user_cmts_iterator_t - | - | __erase = - | user_cmts_erase(map, p) - | - | __find = - | user_cmts_find(map, key) -> user_cmts_iterator_t - | - | __first = - | user_cmts_first(p) -> treeloc_t - | - | __insert = - | user_cmts_insert(map, key, val) -> user_cmts_iterator_t - | - | __next = - | user_cmts_next(p) -> user_cmts_iterator_t - | - | __second = - | user_cmts_second(p) -> citem_cmt_t - | - | __size = - | user_cmts_size(map) -> size_t - | - | __swig_destroy__ = - | delete_user_cmts_t(self) - | - | keytype = - | Proxy of C++ treeloc_t class. - | - | valuetype = - | Proxy of C++ citem_cmt_t class. - -Help on function user_iflags_begin in module ida_hexrays: - -user_iflags_begin(*args) - user_iflags_begin(map) -> user_iflags_iterator_t - - - Get iterator pointing to the beginning of user_iflags_t. - - - @param map (C++: const user_iflags_t *) - -Help on function user_iflags_clear in module ida_hexrays: - -user_iflags_clear(*args) - user_iflags_clear(map) - - - Clear user_iflags_t. - - - @param map (C++: user_iflags_t *) - -Help on function user_iflags_end in module ida_hexrays: - -user_iflags_end(*args) - user_iflags_end(map) -> user_iflags_iterator_t - - - Get iterator pointing to the end of user_iflags_t. - - - @param map (C++: const user_iflags_t *) - -Help on function user_iflags_erase in module ida_hexrays: - -user_iflags_erase(*args) - user_iflags_erase(map, p) - - - Erase current element from user_iflags_t. - - - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_find in module ida_hexrays: - -user_iflags_find(*args) - user_iflags_find(map, key) -> user_iflags_iterator_t - - - Find the specified key in user_iflags_t. - - - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) - -Help on function user_iflags_first in module ida_hexrays: - -user_iflags_first(*args) - user_iflags_first(p) -> citem_locator_t - - - Get reference to the current map key. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_free in module ida_hexrays: - -user_iflags_free(*args) - user_iflags_free(map) - - - Delete user_iflags_t instance. - - - @param map (C++: user_iflags_t *) - -Help on function user_iflags_insert in module ida_hexrays: - -user_iflags_insert(*args) - user_iflags_insert(map, key, val) -> user_iflags_iterator_t - - - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - - - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) - -Help on class user_iflags_iterator_t in module ida_hexrays: - -class user_iflags_iterator_t(__builtin__.object) - | Proxy of C++ user_iflags_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_iflags_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_iflags_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_iflags_iterator_t(self) - -Help on function user_iflags_new in module ida_hexrays: - -user_iflags_new(*args) - user_iflags_new() -> user_iflags_t - - - Create a new user_iflags_t instance. - -Help on function user_iflags_next in module ida_hexrays: - -user_iflags_next(*args) - user_iflags_next(p) -> user_iflags_iterator_t - - - Move to the next element. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_prev in module ida_hexrays: - -user_iflags_prev(*args) - user_iflags_prev(p) -> user_iflags_iterator_t - - - Move to the previous element. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_second in module ida_hexrays: - -user_iflags_second(*args) - user_iflags_second(p) -> int32 const & - - - Get reference to the current map value. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_size in module ida_hexrays: - -user_iflags_size(*args) - user_iflags_size(map) -> size_t - - - Get size of user_iflags_t. - - - @param map (C++: user_iflags_t *) - -Help on class user_iflags_t in module ida_hexrays: - -class user_iflags_t(__builtin__.object) - | Proxy of C++ std::map< citem_locator_t,int32 > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_iflags_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> int & - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = - | user_iflags_begin(map) -> user_iflags_iterator_t - | - | __clear = - | user_iflags_clear(map) - | - | __end = - | user_iflags_end(map) -> user_iflags_iterator_t - | - | __erase = - | user_iflags_erase(map, p) - | - | __find = - | user_iflags_find(map, key) -> user_iflags_iterator_t - | - | __first = - | user_iflags_first(p) -> citem_locator_t - | - | __insert = - | user_iflags_insert(map, key, val) -> user_iflags_iterator_t - | - | __next = - | user_iflags_next(p) -> user_iflags_iterator_t - | - | __second = - | user_iflags_second(p) -> int32 const & - | - | __size = - | user_iflags_size(map) -> size_t - | - | __swig_destroy__ = - | delete_user_iflags_t(self) - | - | keytype = - | Proxy of C++ citem_locator_t class. - | - | valuetype = - | int(x=0) -> int or long - | int(x, base=10) -> int or long - | - | Convert a number or string to an integer, or return 0 if no arguments - | are given. If x is floating point, the conversion truncates towards zero. - | If x is outside the integer range, the function returns a long instead. - | - | If x is not a number or if base is given, then x must be a string or - | Unicode object representing an integer literal in the given base. The - | literal can be preceded by '+' or '-' and be surrounded by whitespace. - | The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to - | interpret the base from the string as an integer literal. - | >>> int('0b100', base=0) - | 4 - -Help on function user_labels_begin in module ida_hexrays: - -user_labels_begin(*args) - user_labels_begin(map) -> user_labels_iterator_t - - - Get iterator pointing to the beginning of user_labels_t. - - - @param map (C++: const user_labels_t *) - -Help on function user_labels_clear in module ida_hexrays: - -user_labels_clear(*args) - user_labels_clear(map) - - - Clear user_labels_t. - - - @param map (C++: user_labels_t *) - -Help on function user_labels_end in module ida_hexrays: - -user_labels_end(*args) - user_labels_end(map) -> user_labels_iterator_t - - - Get iterator pointing to the end of user_labels_t. - - - @param map (C++: const user_labels_t *) - -Help on function user_labels_erase in module ida_hexrays: - -user_labels_erase(*args) - user_labels_erase(map, p) - - - Erase current element from user_labels_t. - - - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_find in module ida_hexrays: - -user_labels_find(*args) - user_labels_find(map, key) -> user_labels_iterator_t - - - Find the specified key in user_labels_t. - - - @param map (C++: const user_labels_t *) - @param key (C++: const int &) - -Help on function user_labels_first in module ida_hexrays: - -user_labels_first(*args) - user_labels_first(p) -> int const & - - - Get reference to the current map key. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_free in module ida_hexrays: - -user_labels_free(*args) - user_labels_free(map) - - - Delete user_labels_t instance. - - - @param map (C++: user_labels_t *) - -Help on function user_labels_insert in module ida_hexrays: - -user_labels_insert(*args) - user_labels_insert(map, key, val) -> user_labels_iterator_t - - - Insert new (int, qstring) pair into user_labels_t. - - - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) - -Help on class user_labels_iterator_t in module ida_hexrays: - -class user_labels_iterator_t(__builtin__.object) - | Proxy of C++ user_labels_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_labels_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_labels_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_labels_iterator_t(self) - -Help on function user_labels_new in module ida_hexrays: - -user_labels_new(*args) - user_labels_new() -> user_labels_t - - - Create a new user_labels_t instance. - -Help on function user_labels_next in module ida_hexrays: - -user_labels_next(*args) - user_labels_next(p) -> user_labels_iterator_t - - - Move to the next element. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_prev in module ida_hexrays: - -user_labels_prev(*args) - user_labels_prev(p) -> user_labels_iterator_t - - - Move to the previous element. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_second in module ida_hexrays: - -user_labels_second(*args) - user_labels_second(p) -> qstring & - - - Get reference to the current map value. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_size in module ida_hexrays: - -user_labels_size(*args) - user_labels_size(map) -> size_t - - - Get size of user_labels_t. - - - @param map (C++: user_labels_t *) - -Help on class user_labels_t in module ida_hexrays: - -class user_labels_t(__builtin__.object) - | Proxy of C++ std::map< int,qstring > class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> user_labels_t - | - | __repr__ = _swig_repr(self) - | - | at(self, *args) - | at(self, _Keyval) -> _qstring< char > & - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_labels_t(self) - -Help on class user_lvar_modifier_t in module ida_hexrays: - -class user_lvar_modifier_t(__builtin__.object) - | Proxy of C++ user_lvar_modifier_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> user_lvar_modifier_t - | - | __repr__ = _swig_repr(self) - | - | modify_lvars(self, *args) - | modify_lvars(self, lvinf) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_lvar_modifier_t(self) - -Help on function user_numforms_begin in module ida_hexrays: - -user_numforms_begin(*args) - user_numforms_begin(map) -> user_numforms_iterator_t - - - Get iterator pointing to the beginning of user_numforms_t. - - - @param map (C++: const user_numforms_t *) - -Help on function user_numforms_clear in module ida_hexrays: - -user_numforms_clear(*args) - user_numforms_clear(map) - - - Clear user_numforms_t. - - - @param map (C++: user_numforms_t *) - -Help on function user_numforms_end in module ida_hexrays: - -user_numforms_end(*args) - user_numforms_end(map) -> user_numforms_iterator_t - - - Get iterator pointing to the end of user_numforms_t. - - - @param map (C++: const user_numforms_t *) - -Help on function user_numforms_erase in module ida_hexrays: - -user_numforms_erase(*args) - user_numforms_erase(map, p) - - - Erase current element from user_numforms_t. - - - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_find in module ida_hexrays: - -user_numforms_find(*args) - user_numforms_find(map, key) -> user_numforms_iterator_t - - - Find the specified key in user_numforms_t. - - - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) - -Help on function user_numforms_first in module ida_hexrays: - -user_numforms_first(*args) - user_numforms_first(p) -> operand_locator_t - - - Get reference to the current map key. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_free in module ida_hexrays: - -user_numforms_free(*args) - user_numforms_free(map) - - - Delete user_numforms_t instance. - - - @param map (C++: user_numforms_t *) - -Help on function user_numforms_insert in module ida_hexrays: - -user_numforms_insert(*args) - user_numforms_insert(map, key, val) -> user_numforms_iterator_t - - - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - - - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) - -Help on class user_numforms_iterator_t in module ida_hexrays: - -class user_numforms_iterator_t(__builtin__.object) - | Proxy of C++ user_numforms_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_numforms_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_numforms_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_numforms_iterator_t(self) - -Help on function user_numforms_new in module ida_hexrays: - -user_numforms_new(*args) - user_numforms_new() -> user_numforms_t - - - Create a new user_numforms_t instance. - -Help on function user_numforms_next in module ida_hexrays: - -user_numforms_next(*args) - user_numforms_next(p) -> user_numforms_iterator_t - - - Move to the next element. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_prev in module ida_hexrays: - -user_numforms_prev(*args) - user_numforms_prev(p) -> user_numforms_iterator_t - - - Move to the previous element. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_second in module ida_hexrays: - -user_numforms_second(*args) - user_numforms_second(p) -> number_format_t - - - Get reference to the current map value. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_size in module ida_hexrays: - -user_numforms_size(*args) - user_numforms_size(map) -> size_t - - - Get size of user_numforms_t. - - - @param map (C++: user_numforms_t *) - -Help on class user_numforms_t in module ida_hexrays: - -class user_numforms_t(__builtin__.object) - | Proxy of C++ std::map< operand_locator_t,number_format_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_numforms_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> number_format_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = - | user_numforms_begin(map) -> user_numforms_iterator_t - | - | __clear = - | user_numforms_clear(map) - | - | __end = - | user_numforms_end(map) -> user_numforms_iterator_t - | - | __erase = - | user_numforms_erase(map, p) - | - | __find = - | user_numforms_find(map, key) -> user_numforms_iterator_t - | - | __first = - | user_numforms_first(p) -> operand_locator_t - | - | __insert = - | user_numforms_insert(map, key, val) -> user_numforms_iterator_t - | - | __next = - | user_numforms_next(p) -> user_numforms_iterator_t - | - | __second = - | user_numforms_second(p) -> number_format_t - | - | __size = - | user_numforms_size(map) -> size_t - | - | __swig_destroy__ = - | delete_user_numforms_t(self) - | - | keytype = - | Proxy of C++ operand_locator_t class. - | - | valuetype = - | Proxy of C++ number_format_t class. - -Help on function user_unions_begin in module ida_hexrays: - -user_unions_begin(*args) - user_unions_begin(map) -> user_unions_iterator_t - - - Get iterator pointing to the beginning of user_unions_t. - - - @param map (C++: const user_unions_t *) - -Help on function user_unions_clear in module ida_hexrays: - -user_unions_clear(*args) - user_unions_clear(map) - - - Clear user_unions_t. - - - @param map (C++: user_unions_t *) - -Help on function user_unions_end in module ida_hexrays: - -user_unions_end(*args) - user_unions_end(map) -> user_unions_iterator_t - - - Get iterator pointing to the end of user_unions_t. - - - @param map (C++: const user_unions_t *) - -Help on function user_unions_erase in module ida_hexrays: - -user_unions_erase(*args) - user_unions_erase(map, p) - - - Erase current element from user_unions_t. - - - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_find in module ida_hexrays: - -user_unions_find(*args) - user_unions_find(map, key) -> user_unions_iterator_t - - - Find the specified key in user_unions_t. - - - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) - -Help on function user_unions_first in module ida_hexrays: - -user_unions_first(*args) - user_unions_first(p) -> ea_t const & - - - Get reference to the current map key. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_free in module ida_hexrays: - -user_unions_free(*args) - user_unions_free(map) - - - Delete user_unions_t instance. - - - @param map (C++: user_unions_t *) - -Help on function user_unions_insert in module ida_hexrays: - -user_unions_insert(*args) - user_unions_insert(map, key, val) -> user_unions_iterator_t - - - Insert new (ea_t, intvec_t) pair into user_unions_t. - - - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) - -Help on class user_unions_iterator_t in module ida_hexrays: - -class user_unions_iterator_t(__builtin__.object) - | Proxy of C++ user_unions_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_unions_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_unions_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_unions_iterator_t(self) - -Help on function user_unions_new in module ida_hexrays: - -user_unions_new(*args) - user_unions_new() -> user_unions_t - - - Create a new user_unions_t instance. - -Help on function user_unions_next in module ida_hexrays: - -user_unions_next(*args) - user_unions_next(p) -> user_unions_iterator_t - - - Move to the next element. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_prev in module ida_hexrays: - -user_unions_prev(*args) - user_unions_prev(p) -> user_unions_iterator_t - - - Move to the previous element. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_second in module ida_hexrays: - -user_unions_second(*args) - user_unions_second(p) -> intvec_t - - - Get reference to the current map value. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_size in module ida_hexrays: - -user_unions_size(*args) - user_unions_size(map) -> size_t - - - Get size of user_unions_t. - - - @param map (C++: user_unions_t *) - -Help on class user_unions_t in module ida_hexrays: - -class user_unions_t(__builtin__.object) - | Proxy of C++ std::map< ea_t,intvec_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_unions_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> intvec_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = - | user_unions_begin(map) -> user_unions_iterator_t - | - | __clear = - | user_unions_clear(map) - | - | __end = - | user_unions_end(map) -> user_unions_iterator_t - | - | __erase = - | user_unions_erase(map, p) - | - | __find = - | user_unions_find(map, key) -> user_unions_iterator_t - | - | __first = - | user_unions_first(p) -> ea_t const & - | - | __insert = - | user_unions_insert(map, key, val) -> user_unions_iterator_t - | - | __next = - | user_unions_next(p) -> user_unions_iterator_t - | - | __second = - | user_unions_second(p) -> intvec_t - | - | __size = - | user_unions_size(map) -> size_t - | - | __swig_destroy__ = - | delete_user_unions_t(self) - | - | keytype = (, ) - | - | valuetype = - | Proxy of C++ qvector< int > class. - -Help on class uval_ivl_ivlset_t in module ida_hexrays: - -class uval_ivl_ivlset_t(__builtin__.object) - | Proxy of C++ ivlset_tpl< ivl_t,uval_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, v) -> bool - | - | __init__(self, *args) - | __init__(self) -> uval_ivl_ivlset_t - | __init__(self, ivl) -> uval_ivl_ivlset_t - | - | __ne__(self, *args) - | __ne__(self, v) -> bool - | - | __repr__ = _swig_repr(self) - | - | all_values(self, *args) - | all_values(self) -> bool - | - | begin(self, *args) - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | getivl(self, *args) - | getivl(self, idx) -> ivl_t - | - | lastivl(self, *args) - | lastivl(self) -> ivl_t - | - | nivls(self, *args) - | nivls(self) -> size_t - | - | qclear(self, *args) - | qclear(self) - | - | set_all_values(self, *args) - | set_all_values(self) - | - | single_value(self, *args) - | single_value(self, v) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_uval_ivl_ivlset_t(self) - -Help on class uval_ivl_t in module ida_hexrays: - -class uval_ivl_t(__builtin__.object) - | Proxy of C++ ivl_tpl< uval_t > class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _off, _size) -> uval_ivl_t - | - | __repr__ = _swig_repr(self) - | - | end(self, *args) - | end(self) -> unsigned-ea-like-numeric-type↗ - | - | last(self, *args) - | last(self) -> unsigned-ea-like-numeric-type↗ - | - | valid(self, *args) - | valid(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ - | - | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_uval_ivl_t(self) - -Help on class valrng_t in module ida_hexrays: - -class valrng_t(__builtin__.object) - | Proxy of C++ valrng_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t - | __init__(self, r) -> valrng_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _print(self, *args) - | _print(self) - | - | _register(self, *args) - | _register(self) - | - | all_values(self, *args) - | all_values(self) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | cvt_to_cmp(self, *args) - | cvt_to_cmp(self, strict) -> bool - | - | cvt_to_single_value(self, *args) - | cvt_to_single_value(self) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | get_size(self, *args) - | get_size(self) -> int - | - | has(self, *args) - | has(self, v) -> bool - | - | intersect_with(self, *args) - | intersect_with(self, r) -> bool - | - | inverse(self, *args) - | inverse(self) - | - | is_unknown(self, *args) - | is_unknown(self) -> bool - | - | max_svalue(self, *args) - | max_svalue(self, size_) -> uvlr_t - | max_svalue(self) -> uvlr_t - | - | max_value(self, *args) - | max_value(self, size_) -> uvlr_t - | max_value(self) -> uvlr_t - | - | min_svalue(self, *args) - | min_svalue(self, size_) -> uvlr_t - | min_svalue(self) -> uvlr_t - | - | reduce_size(self, *args) - | reduce_size(self, new_size) -> bool - | - | set_all(self, *args) - | set_all(self) - | - | set_cmp(self, *args) - | set_cmp(self, cmp, _value) - | - | set_eq(self, *args) - | set_eq(self, v) - | - | set_none(self, *args) - | set_none(self) - | - | set_unk(self, *args) - | set_unk(self) - | - | swap(self, *args) - | swap(self, r) - | - | unite_with(self, *args) - | unite_with(self, r) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_valrng_t(self) - -Help on class var_ref_t in module ida_hexrays: - -class var_ref_t(__builtin__.object) - | Proxy of C++ var_ref_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> var_ref_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | idx - | var_ref_t_idx_get(self) -> int - | - | mba - | var_ref_t_mba_get(self) -> mbl_array_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_var_ref_t(self) - -Help on class vc_printer_t in module ida_hexrays: - -class vc_printer_t(vd_printer_t) - | Proxy of C++ vc_printer_t class. - | - | Method resolution order: - | vc_printer_t - | vd_printer_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, f) -> vc_printer_t - | - | __repr__ = _swig_repr(self) - | - | oneliner(self, *args) - | oneliner(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | func - | vc_printer_t_func_get(self) -> cfunc_t - | - | lastchar - | vc_printer_t_lastchar_get(self) -> char - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vc_printer_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from vd_printer_t: - | - | _print(self, *args) - | _print(self, indent, format) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vd_printer_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hdrlines - | vd_printer_t_hdrlines_get(self) -> int - | - | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * - -Help on class vd_failure_t in module ida_hexrays: - -class vd_failure_t(__builtin__.object) - | Proxy of C++ vd_failure_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> vd_failure_t - | __init__(self, code, ea, buf=None) -> vd_failure_t - | __init__(self, code, ea, buf) -> vd_failure_t - | __init__(self, _hf) -> vd_failure_t - | - | __repr__ = _swig_repr(self) - | - | desc(self, *args) - | desc(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vd_failure_t(self) - -Help on class vd_interr_t in module ida_hexrays: - -class vd_interr_t(vd_failure_t) - | Proxy of C++ vd_interr_t class. - | - | Method resolution order: - | vd_interr_t - | vd_failure_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, ea, buf) -> vd_interr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vd_interr_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from vd_failure_t: - | - | desc(self, *args) - | desc(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vd_failure_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t - -Help on class vd_printer_t in module ida_hexrays: - -class vd_printer_t(__builtin__.object) - | Proxy of C++ vd_printer_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> vd_printer_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, indent, format) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hdrlines - | vd_printer_t_hdrlines_get(self) -> int - | - | thisown - | The membership flag - | - | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vd_printer_t(self) - -Help on class vdloc_t in module ida_hexrays: - -class vdloc_t(ida_typeinf.argloc_t) - | Proxy of C++ vdloc_t class. - | - | Method resolution order: - | vdloc_t - | ida_typeinf.argloc_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> vdloc_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _set_reg1(self, *args) - | _set_reg1(self, r1) - | - | compare(self, *args) - | compare(self, r) -> int - | - | is_aliasable(self, *args) - | is_aliasable(self, mb, size) -> bool - | - | reg1(self, *args) - | reg1(self) -> int - | - | set_reg1(self, *args) - | set_reg1(self, r1) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vdloc_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_typeinf.argloc_t: - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_typeinf.argloc_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class vdui_t in module ida_hexrays: - -class vdui_t(__builtin__.object) - | Proxy of C++ vdui_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | calc_cmt_type(self, *args) - | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t - | - | clear(self, *args) - | clear(self) - | - | collapse_item(self, *args) - | collapse_item(self, hide) -> bool - | - | collapse_lvars(self, *args) - | collapse_lvars(self, hide) -> bool - | - | ctree_to_disasm(self, *args) - | ctree_to_disasm(self) -> bool - | - | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> bool - | - | edit_cmt(self, *args) - | edit_cmt(self, loc) -> bool - | - | edit_func_cmt(self, *args) - | edit_func_cmt(self) -> bool - | - | get_current_item(self, *args) - | get_current_item(self, idv) -> bool - | - | get_current_label(self, *args) - | get_current_label(self) -> int - | - | get_number(self, *args) - | get_number(self) -> cnumber_t - | - | in_ctree(self, *args) - | in_ctree(self) -> bool - | - | invert_bits(self, *args) - | invert_bits(self) -> bool - | - | invert_sign(self, *args) - | invert_sign(self) -> bool - | - | jump_enter(self, *args) - | jump_enter(self, idv, omflags) -> bool - | - | locked(self, *args) - | locked(self) -> bool - | - | map_lvar(self, *args) - | map_lvar(self, frm, to) -> bool - | - | refresh_cpos(self, *args) - | refresh_cpos(self, idv) -> bool - | - | refresh_ctext(self, *args) - | refresh_ctext(self, activate=True) - | - | refresh_view(self, *args) - | refresh_view(self, redo_mba) - | - | rename_global(self, *args) - | rename_global(self, ea) -> bool - | - | rename_label(self, *args) - | rename_label(self, label) -> bool - | - | rename_lvar(self, *args) - | rename_lvar(self, v, name, is_user_name) -> bool - | - | rename_strmem(self, *args) - | rename_strmem(self, sptr, mptr) -> bool - | - | set_global_type(self, *args) - | set_global_type(self, ea) -> bool - | - | set_locked(self, *args) - | set_locked(self, v) -> bool - | - | set_lvar_cmt(self, *args) - | set_lvar_cmt(self, v, cmt) -> bool - | - | set_lvar_type(self, *args) - | set_lvar_type(self, v, type) -> bool - | - | set_noptr_lvar(self, *args) - | set_noptr_lvar(self, v) -> bool - | - | set_num_enum(self, *args) - | set_num_enum(self) -> bool - | - | set_num_radix(self, *args) - | set_num_radix(self, base) -> bool - | - | set_num_stroff(self, *args) - | set_num_stroff(self) -> bool - | - | set_strmem_type(self, *args) - | set_strmem_type(self, sptr, mptr) -> bool - | - | set_valid(self, *args) - | set_valid(self, v) - | - | set_visible(self, *args) - | set_visible(self, v) - | - | split_item(self, *args) - | split_item(self, split) -> bool - | - | switch_to(self, *args) - | switch_to(self, f, activate) - | - | ui_edit_lvar_cmt(self, *args) - | ui_edit_lvar_cmt(self, v) -> bool - | - | ui_map_lvar(self, *args) - | ui_map_lvar(self, v) -> bool - | - | ui_rename_lvar(self, *args) - | ui_rename_lvar(self, v) -> bool - | - | ui_set_call_type(self, *args) - | ui_set_call_type(self, e) -> bool - | - | ui_set_lvar_type(self, *args) - | ui_set_lvar_type(self, v) -> bool - | - | ui_unmap_lvar(self, *args) - | ui_unmap_lvar(self, v) -> bool - | - | valid(self, *args) - | valid(self) -> bool - | - | visible(self, *args) - | visible(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t - | - | cpos - | vdui_t_cpos_get(self) -> ctext_position_t - | - | ct - | vdui_t_ct_get(self) -> TWidget * - | - | flags - | vdui_t_flags_get(self) -> int - | - | head - | vdui_t_head_get(self) -> ctree_item_t - | - | item - | vdui_t_item_get(self) -> ctree_item_t - | - | last_code - | vdui_t_last_code_get(self) -> merror_t - | - | mba - | vdui_t_mba_get(self) -> mbl_array_t - | - | tail - | vdui_t_tail_get(self) -> ctree_item_t - | - | thisown - | The membership flag - | - | toplevel - | vdui_t_toplevel_get(self) -> TWidget * - | - | view_idx - | vdui_t_view_idx_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vdui_t(self) - -Help on class vivl_t in module ida_hexrays: - -class vivl_t(voff_t) - | Proxy of C++ vivl_t class. - | - | Method resolution order: - | vivl_t - | voff_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | __eq__(self, mop) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t - | __init__(self, ch) -> vivl_t - | __init__(self, op) -> vivl_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, voff2) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | extend_to_cover(self, *args) - | extend_to_cover(self, r) -> bool - | - | includes(self, *args) - | includes(self, r) -> bool - | - | intersect(self, *args) - | intersect(self, r) -> uval_t - | - | overlap(self, *args) - | overlap(self, r) -> bool - | - | set(self, *args) - | set(self, _type, _off, _size=0) - | set(self, voff, _size) - | - | set_reg(self, *args) - | set_reg(self, mreg, sz=0) - | - | set_stkoff(self, *args) - | set_stkoff(self, stkoff, sz=0) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | size - | vivl_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_vivl_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from voff_t: - | - | add(self, *args) - | add(self, width) -> voff_t - | - | defined(self, *args) - | defined(self) -> bool - | - | diff(self, *args) - | diff(self, r) -> sval_t - | - | get_reg(self, *args) - | get_reg(self) -> mreg_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | inc(self, *args) - | inc(self, delta) - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | undef(self, *args) - | undef(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from voff_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | voff_t_off_get(self) -> sval_t - | - | type - | voff_t_type_get(self) -> mopt_t - -Help on class voff_t in module ida_hexrays: - -class voff_t(__builtin__.object) - | Proxy of C++ voff_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> voff_t - | __init__(self, _type, _off) -> voff_t - | __init__(self, op) -> voff_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, width) -> voff_t - | - | compare(self, *args) - | compare(self, r) -> int - | - | defined(self, *args) - | defined(self) -> bool - | - | diff(self, *args) - | diff(self, r) -> sval_t - | - | get_reg(self, *args) - | get_reg(self) -> mreg_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | inc(self, *args) - | inc(self, delta) - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | set(self, *args) - | set(self, _type, _off) - | - | set_reg(self, *args) - | set_reg(self, mreg) - | - | set_stkoff(self, *args) - | set_stkoff(self, stkoff) - | - | undef(self, *args) - | undef(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | voff_t_off_get(self) -> sval_t - | - | thisown - | The membership flag - | - | type - | voff_t_type_get(self) -> mopt_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_voff_t(self) - -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -if it becomes useless - -del the jump insn at the end of the block -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -printf- or scanf-style format string - -A variadic function with recognized -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -by function calls and indirect memory access - -ignore possible implicit definitions -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -(example: STM on ARM may transfer multiple registers) - -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -the specified are accepted (used in patterns) - -private block - no instructions except -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" -""" - -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_STROFF -""" -internal bit: used as stroff, valid iff 'is_stroff()' -""" - -ida_hexrays.OPROP_CCFLAGS -""" -condition codes register value -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -do not optimize low/high(ldx) -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. -""" - -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? -""" - -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" - -ida_hexrays.VR_AT_START -""" -at the block start (if M is NULL) - -get value ranges before the instruction or -""" - -ida_hexrays.VR_EXACT -""" -valrng size will be >= vivl.size - -find exact match. if not set, the returned -""" -=== ida_hexrays EPYDOC INJECTIONS END === -Help on function __make_idainfo_accessors in module ida_ida: - -__make_idainfo_accessors(attr, getter_name=None, setter_name=None) - -Help on function __make_idainfo_bound in module ida_ida: - -__make_idainfo_bound(func, attr) - # - -Help on function __make_idainfo_getter in module ida_ida: - -__make_idainfo_getter(name) - -Help on function calc_default_idaplace_flags in module ida_ida: - -calc_default_idaplace_flags(*args) - calc_default_idaplace_flags() -> int - - - Get default disassembly line options. - -Help on class compiler_info_t in module ida_ida: - -class compiler_info_t(__builtin__.object) - | Proxy of C++ compiler_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> compiler_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cm - | compiler_info_t_cm_get(self) -> cm_t - | - | defalign - | compiler_info_t_defalign_get(self) -> uchar - | - | id - | compiler_info_t_id_get(self) -> comp_t - | - | size_b - | compiler_info_t_size_b_get(self) -> uchar - | - | size_e - | compiler_info_t_size_e_get(self) -> uchar - | - | size_i - | compiler_info_t_size_i_get(self) -> uchar - | - | size_l - | compiler_info_t_size_l_get(self) -> uchar - | - | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar - | - | size_ll - | compiler_info_t_size_ll_get(self) -> uchar - | - | size_s - | compiler_info_t_size_s_get(self) -> uchar - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_compiler_info_t(self) - -Help on class idainfo in module ida_ida: - -class idainfo(__builtin__.object) - | Proxy of C++ idainfo class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | big_arg_align = __func(self, *args) - | - | gen_lzero = __func(self, *args) - | - | gen_null = __func(self, *args) - | - | gen_tryblks = __func(self, *args) - | - | get_abiname(self, *args) - | get_abiname(self) -> qstring - | - | get_demname_form = __func(self, *args) - | - | get_maxEA(self, *args) - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) - | get_minEA(self) -> ea_t - | - | get_pack_mode = __func(self, *args) - | - | get_procName(self, *args) - | get_procName(self) -> qstring - | - | is_32bit = __func(self, *args) - | - | is_64bit = __func(self, *args) - | - | is_auto_enabled = __func(self, *args) - | - | is_be = __func(self, *args) - | - | is_dll = __func(self, *args) - | - | is_flat_off32 = __func(self, *args) - | - | is_graph_view = __func(self, *args) - | - | is_hard_float = __func(self, *args) - | - | is_kernel_mode = __func(self, *args) - | - | is_mem_aligned4 = __func(self, *args) - | - | is_snapshot = __func(self, *args) - | - | is_wide_high_byte_first = __func(self, *args) - | - | like_binary = __func(self, *args) - | - | line_pref_with_seg = __func(self, *args) - | - | loading_idc = __func(self, *args) - | - | map_stkargs = __func(self, *args) - | - | pack_stkargs = __func(self, *args) - | - | readonly_idb = __func(self, *args) - | - | set_64bit = __func(self, *args) - | - | set_auto_enabled = __func(self, *args) - | - | set_be = __func(self, *args) - | - | set_gen_lzero = __func(self, *args) - | - | set_gen_null = __func(self, *args) - | - | set_gen_tryblks = __func(self, *args) - | - | set_graph_view = __func(self, *args) - | - | set_line_pref_with_seg = __func(self, *args) - | - | set_maxEA(self, *args) - | set_maxEA(self, ea) - | - | set_minEA(self, *args) - | set_minEA(self, ea) - | - | set_pack_mode = __func(self, *args) - | - | set_show_auto = __func(self, *args) - | - | set_show_line_pref = __func(self, *args) - | - | set_show_void = __func(self, *args) - | - | set_wide_high_byte_first = __func(self, *args) - | - | show_auto = __func(self, *args) - | - | show_line_pref = __func(self, *args) - | - | show_void = __func(self, *args) - | - | stack_ldbl = __func(self, *args) - | - | stack_varargs = __func(self, *args) - | - | use_allasm = __func(self, *args) - | - | use_gcc_layout = __func(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | abibits - | idainfo_abibits_get(self) -> uint32 - | - | abiname - | get_abiname(self) -> qstring - | - | af - | idainfo_af_get(self) -> uint32 - | - | af2 - | idainfo_af2_get(self) -> uint32 - | - | appcall_options - | idainfo_appcall_options_get(self) -> uint32 - | - | apptype - | idainfo_apptype_get(self) -> ushort - | - | asmtype - | idainfo_asmtype_get(self) -> uchar - | - | baseaddr - | idainfo_baseaddr_get(self) -> uval_t - | - | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short - | - | cc - | idainfo_cc_get(self) -> compiler_info_t - | - | comment - | idainfo_comment_get(self) -> uchar - | - | database_change_count - | idainfo_database_change_count_get(self) -> uint32 - | - | datatypes - | idainfo_datatypes_get(self) -> uval_t - | - | demnames - | idainfo_demnames_get(self) -> uchar - | - | filetype - | idainfo_filetype_get(self) -> ushort - | - | highoff - | idainfo_highoff_get(self) -> ea_t - | - | indent - | idainfo_indent_get(self) -> uchar - | - | lenxref - | idainfo_lenxref_get(self) -> ushort - | - | lflags - | idainfo_lflags_get(self) -> uint32 - | - | listnames - | idainfo_listnames_get(self) -> uchar - | - | long_demnames - | idainfo_long_demnames_get(self) -> uint32 - | - | lowoff - | idainfo_lowoff_get(self) -> ea_t - | - | main - | idainfo_main_get(self) -> ea_t - | - | margin - | idainfo_margin_get(self) -> ushort - | - | maxEA - | get_maxEA(self) -> ea_t - | - | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort - | - | max_ea - | idainfo_max_ea_get(self) -> ea_t - | - | maxref - | idainfo_maxref_get(self) -> uval_t - | - | minEA - | get_minEA(self) -> ea_t - | - | min_ea - | idainfo_min_ea_get(self) -> ea_t - | - | nametype - | idainfo_nametype_get(self) -> char - | - | omax_ea - | idainfo_omax_ea_get(self) -> ea_t - | - | omin_ea - | idainfo_omin_ea_get(self) -> ea_t - | - | ostype - | idainfo_ostype_get(self) -> ushort - | - | outflags - | idainfo_outflags_get(self) -> uint32 - | - | procName - | get_procName(self) -> qstring - | - | procname - | idainfo_procname_get(self) -> char [16] - | - | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar - | - | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar - | - | s_genflags - | idainfo_s_genflags_get(self) -> ushort - | - | s_limiter - | idainfo_s_limiter_get(self) -> uchar - | - | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar - | - | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar - | - | short_demnames - | idainfo_short_demnames_get(self) -> uint32 - | - | specsegs - | idainfo_specsegs_get(self) -> uchar - | - | start_cs - | idainfo_start_cs_get(self) -> sel_t - | - | start_ea - | idainfo_start_ea_get(self) -> ea_t - | - | start_ip - | idainfo_start_ip_get(self) -> ea_t - | - | start_sp - | idainfo_start_sp_get(self) -> ea_t - | - | start_ss - | idainfo_start_ss_get(self) -> sel_t - | - | strlit_break - | idainfo_strlit_break_get(self) -> uchar - | - | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar - | - | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] - | - | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t - | - | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char - | - | strtype - | idainfo_strtype_get(self) -> int32 - | - | tag - | idainfo_tag_get(self) -> char [3] - | - | thisown - | The membership flag - | - | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar - | - | version - | idainfo_version_get(self) -> ushort - | - | xrefnum - | idainfo_xrefnum_get(self) -> uchar - -Help on function inf_big_arg_align in module ida_ida: - -inf_big_arg_align(*args) - inf_big_arg_align() -> bool - -Help on function inf_gen_lzero in module ida_ida: - -inf_gen_lzero(*args) - inf_gen_lzero() -> bool - -Help on function inf_gen_null in module ida_ida: - -inf_gen_null(*args) - inf_gen_null() -> bool - -Help on function inf_gen_tryblks in module ida_ida: - -inf_gen_tryblks(*args) - inf_gen_tryblks() -> bool - -Help on function inf_get_demname_form in module ida_ida: - -inf_get_demname_form(*args) - inf_get_demname_form() -> uchar - - - Get 'DEMNAM_MASK' bits of #demnames. - -Help on function inf_get_pack_mode in module ida_ida: - -inf_get_pack_mode(*args) - inf_get_pack_mode() -> int - -Help on function inf_is_32bit in module ida_ida: - -inf_is_32bit(*args) - inf_is_32bit() -> bool - -Help on function inf_is_64bit in module ida_ida: - -inf_is_64bit(*args) - inf_is_64bit() -> bool - -Help on function inf_is_auto_enabled in module ida_ida: - -inf_is_auto_enabled(*args) - inf_is_auto_enabled() -> bool - -Help on function inf_is_be in module ida_ida: - -inf_is_be(*args) - inf_is_be() -> bool - -Help on function inf_is_dll in module ida_ida: - -inf_is_dll(*args) - inf_is_dll() -> bool - -Help on function inf_is_flat_off32 in module ida_ida: - -inf_is_flat_off32(*args) - inf_is_flat_off32() -> bool - -Help on function inf_is_graph_view in module ida_ida: - -inf_is_graph_view(*args) - inf_is_graph_view() -> bool - -Help on function inf_is_hard_float in module ida_ida: - -inf_is_hard_float(*args) - inf_is_hard_float() -> bool - -Help on function inf_is_kernel_mode in module ida_ida: - -inf_is_kernel_mode(*args) - inf_is_kernel_mode() -> bool - -Help on function inf_is_mem_aligned4 in module ida_ida: - -inf_is_mem_aligned4(*args) - inf_is_mem_aligned4() -> bool - -Help on function inf_is_snapshot in module ida_ida: - -inf_is_snapshot(*args) - inf_is_snapshot() -> bool - -Help on function inf_is_wide_high_byte_first in module ida_ida: - -inf_is_wide_high_byte_first(*args) - inf_is_wide_high_byte_first() -> bool - -Help on function inf_like_binary in module ida_ida: - -inf_like_binary(*args) - inf_like_binary() -> bool - -Help on function inf_line_pref_with_seg in module ida_ida: - -inf_line_pref_with_seg(*args) - inf_line_pref_with_seg() -> bool - -Help on function inf_loading_idc in module ida_ida: - -inf_loading_idc(*args) - inf_loading_idc() -> bool - -Help on function inf_map_stkargs in module ida_ida: - -inf_map_stkargs(*args) - inf_map_stkargs() -> bool - -Help on function inf_pack_stkargs in module ida_ida: - -inf_pack_stkargs(*args) - inf_pack_stkargs() -> bool - -Help on function inf_readonly_idb in module ida_ida: - -inf_readonly_idb(*args) - inf_readonly_idb() -> bool - -Help on function inf_set_64bit in module ida_ida: - -inf_set_64bit(*args) - inf_set_64bit(_v=True) -> bool - -Help on function inf_set_auto_enabled in module ida_ida: - -inf_set_auto_enabled(*args) - inf_set_auto_enabled(_v=True) -> bool - -Help on function inf_set_be in module ida_ida: - -inf_set_be(*args) - inf_set_be(_v=True) -> bool - -Help on function inf_set_gen_lzero in module ida_ida: - -inf_set_gen_lzero(*args) - inf_set_gen_lzero(_v=True) -> bool - -Help on function inf_set_gen_null in module ida_ida: - -inf_set_gen_null(*args) - inf_set_gen_null(_v=True) -> bool - -Help on function inf_set_gen_tryblks in module ida_ida: - -inf_set_gen_tryblks(*args) - inf_set_gen_tryblks(_v=True) -> bool - -Help on function inf_set_graph_view in module ida_ida: - -inf_set_graph_view(*args) - inf_set_graph_view(_v=True) -> bool - -Help on function inf_set_line_pref_with_seg in module ida_ida: - -inf_set_line_pref_with_seg(*args) - inf_set_line_pref_with_seg(_v=True) -> bool - -Help on function inf_set_pack_mode in module ida_ida: - -inf_set_pack_mode(*args) - inf_set_pack_mode(pack_mode) -> int - -Help on function inf_set_show_auto in module ida_ida: - -inf_set_show_auto(*args) - inf_set_show_auto(_v=True) -> bool - -Help on function inf_set_show_line_pref in module ida_ida: - -inf_set_show_line_pref(*args) - inf_set_show_line_pref(_v=True) -> bool - -Help on function inf_set_show_void in module ida_ida: - -inf_set_show_void(*args) - inf_set_show_void(_v=True) -> bool - -Help on function in module ida_ida: - - lambda *args - -Help on function inf_set_wide_high_byte_first in module ida_ida: - -inf_set_wide_high_byte_first(*args) - inf_set_wide_high_byte_first(_v=True) -> bool - -Help on function inf_show_auto in module ida_ida: - -inf_show_auto(*args) - inf_show_auto() -> bool - -Help on function inf_show_line_pref in module ida_ida: - -inf_show_line_pref(*args) - inf_show_line_pref() -> bool - -Help on function inf_show_void in module ida_ida: - -inf_show_void(*args) - inf_show_void() -> bool - -Help on function inf_stack_ldbl in module ida_ida: - -inf_stack_ldbl(*args) - inf_stack_ldbl() -> bool - -Help on function inf_stack_varargs in module ida_ida: - -inf_stack_varargs(*args) - inf_stack_varargs() -> bool - -Help on function inf_use_allasm in module ida_ida: - -inf_use_allasm(*args) - inf_use_allasm() -> bool - -Help on function inf_use_gcc_layout in module ida_ida: - -inf_use_gcc_layout(*args) - inf_use_gcc_layout() -> bool - -Help on function inf_abi_set_by_user in module ida_ida: - -inf_abi_set_by_user(*args) - inf_abi_set_by_user() -> bool - -Help on function inf_allow_non_matched_ops in module ida_ida: - -inf_allow_non_matched_ops(*args) - inf_allow_non_matched_ops() -> bool - -Help on function inf_allow_sigmulti in module ida_ida: - -inf_allow_sigmulti(*args) - inf_allow_sigmulti() -> bool - -Help on function inf_append_sigcmt in module ida_ida: - -inf_append_sigcmt(*args) - inf_append_sigcmt() -> bool - -Help on function inf_check_manual_ops in module ida_ida: - -inf_check_manual_ops(*args) - inf_check_manual_ops() -> bool - -Help on function inf_check_unicode_strlits in module ida_ida: - -inf_check_unicode_strlits(*args) - inf_check_unicode_strlits() -> bool - -Help on function inf_coagulate_code in module ida_ida: - -inf_coagulate_code(*args) - inf_coagulate_code() -> bool - -Help on function inf_coagulate_data in module ida_ida: - -inf_coagulate_data(*args) - inf_coagulate_data() -> bool - -Help on function inf_compress_idb in module ida_ida: - -inf_compress_idb(*args) - inf_compress_idb() -> bool - -Help on function inf_create_all_xrefs in module ida_ida: - -inf_create_all_xrefs(*args) - inf_create_all_xrefs() -> bool - -Help on function inf_create_func_from_call in module ida_ida: - -inf_create_func_from_call(*args) - inf_create_func_from_call() -> bool - -Help on function inf_create_func_from_ptr in module ida_ida: - -inf_create_func_from_ptr(*args) - inf_create_func_from_ptr() -> bool - -Help on function inf_create_func_tails in module ida_ida: - -inf_create_func_tails(*args) - inf_create_func_tails() -> bool - -Help on function inf_create_jump_tables in module ida_ida: - -inf_create_jump_tables(*args) - inf_create_jump_tables() -> bool - -Help on function inf_create_off_on_dref in module ida_ida: - -inf_create_off_on_dref(*args) - inf_create_off_on_dref() -> bool - -Help on function inf_create_off_using_fixup in module ida_ida: - -inf_create_off_using_fixup(*args) - inf_create_off_using_fixup() -> bool - -Help on function inf_create_strlit_on_xref in module ida_ida: - -inf_create_strlit_on_xref(*args) - inf_create_strlit_on_xref() -> bool - -Help on function inf_data_offset in module ida_ida: - -inf_data_offset(*args) - inf_data_offset() -> bool - -Help on function inf_dbg_no_store_path in module ida_ida: - -inf_dbg_no_store_path(*args) - inf_dbg_no_store_path() -> bool - -Help on function inf_decode_fpp in module ida_ida: - -inf_decode_fpp(*args) - inf_decode_fpp() -> bool - -Help on function inf_del_no_xref_insns in module ida_ida: - -inf_del_no_xref_insns(*args) - inf_del_no_xref_insns() -> bool - -Help on function inf_final_pass in module ida_ida: - -inf_final_pass(*args) - inf_final_pass() -> bool - -Help on function inf_full_sp_ana in module ida_ida: - -inf_full_sp_ana(*args) - inf_full_sp_ana() -> bool - -Help on function inf_gen_assume in module ida_ida: - -inf_gen_assume(*args) - inf_gen_assume() -> bool - -Help on function inf_gen_org in module ida_ida: - -inf_gen_org(*args) - inf_gen_org() -> bool - -Help on function inf_get_abibits in module ida_ida: - -inf_get_abibits(*args) - inf_get_abibits() -> uint32 - -Help on function inf_get_af in module ida_ida: - -inf_get_af(*args) - inf_get_af() -> uint32 - -Help on function inf_get_af2 in module ida_ida: - -inf_get_af2(*args) - inf_get_af2() -> uint32 - -Help on function inf_get_af2_low in module ida_ida: - -inf_get_af2_low(*args) - inf_get_af2_low() -> ushort - - - Get/set low 16bit half of inf.af2. - -Help on function inf_get_af_high in module ida_ida: - -inf_get_af_high(*args) - inf_get_af_high() -> ushort - -Help on function inf_get_af_low in module ida_ida: - -inf_get_af_low(*args) - inf_get_af_low() -> ushort - - - Get/set low/high 16bit halves of inf.af. - -Help on function inf_get_appcall_options in module ida_ida: - -inf_get_appcall_options(*args) - inf_get_appcall_options() -> uint32 - -Help on function inf_get_apptype in module ida_ida: - -inf_get_apptype(*args) - inf_get_apptype() -> ushort - -Help on function inf_get_asmtype in module ida_ida: - -inf_get_asmtype(*args) - inf_get_asmtype() -> uchar - -Help on function inf_get_baseaddr in module ida_ida: - -inf_get_baseaddr(*args) - inf_get_baseaddr() -> uval_t - -Help on function inf_get_bin_prefix_size in module ida_ida: - -inf_get_bin_prefix_size(*args) - inf_get_bin_prefix_size() -> short - -Help on function inf_get_cc in module ida_ida: - -inf_get_cc(*args) - inf_get_cc(out) -> bool - -Help on function inf_get_cc_cm in module ida_ida: - -inf_get_cc_cm(*args) - inf_get_cc_cm() -> cm_t - -Help on function inf_get_cc_defalign in module ida_ida: - -inf_get_cc_defalign(*args) - inf_get_cc_defalign() -> uchar - -Help on function inf_get_cc_id in module ida_ida: - -inf_get_cc_id(*args) - inf_get_cc_id() -> comp_t - -Help on function inf_get_cc_size_b in module ida_ida: - -inf_get_cc_size_b(*args) - inf_get_cc_size_b() -> uchar - -Help on function inf_get_cc_size_e in module ida_ida: - -inf_get_cc_size_e(*args) - inf_get_cc_size_e() -> uchar - -Help on function inf_get_cc_size_i in module ida_ida: - -inf_get_cc_size_i(*args) - inf_get_cc_size_i() -> uchar - -Help on function inf_get_cc_size_l in module ida_ida: - -inf_get_cc_size_l(*args) - inf_get_cc_size_l() -> uchar - -Help on function inf_get_cc_size_ldbl in module ida_ida: - -inf_get_cc_size_ldbl(*args) - inf_get_cc_size_ldbl() -> uchar - -Help on function inf_get_cc_size_ll in module ida_ida: - -inf_get_cc_size_ll(*args) - inf_get_cc_size_ll() -> uchar - -Help on function inf_get_cc_size_s in module ida_ida: - -inf_get_cc_size_s(*args) - inf_get_cc_size_s() -> uchar - -Help on function inf_get_cmtflg in module ida_ida: - -inf_get_cmtflg(*args) - inf_get_cmtflg() -> uchar - -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) - inf_get_comment() -> uchar - -Help on function inf_get_database_change_count in module ida_ida: - -inf_get_database_change_count(*args) - inf_get_database_change_count() -> uint32 - -Help on function inf_get_datatypes in module ida_ida: - -inf_get_datatypes(*args) - inf_get_datatypes() -> uval_t - -Help on function inf_get_demnames in module ida_ida: - -inf_get_demnames(*args) - inf_get_demnames() -> uchar - -Help on function inf_get_filetype in module ida_ida: - -inf_get_filetype(*args) - inf_get_filetype() -> filetype_t - -Help on function inf_get_genflags in module ida_ida: - -inf_get_genflags(*args) - inf_get_genflags() -> ushort - -Help on function inf_get_highoff in module ida_ida: - -inf_get_highoff(*args) - inf_get_highoff() -> ea_t - -Help on function inf_get_indent in module ida_ida: - -inf_get_indent(*args) - inf_get_indent() -> uchar - -Help on function inf_get_lenxref in module ida_ida: - -inf_get_lenxref(*args) - inf_get_lenxref() -> ushort - -Help on function inf_get_lflags in module ida_ida: - -inf_get_lflags(*args) - inf_get_lflags() -> uint32 - -Help on function inf_get_limiter in module ida_ida: - -inf_get_limiter(*args) - inf_get_limiter() -> uchar - -Help on function inf_get_listnames in module ida_ida: - -inf_get_listnames(*args) - inf_get_listnames() -> uchar - -Help on function inf_get_long_demnames in module ida_ida: - -inf_get_long_demnames(*args) - inf_get_long_demnames() -> uint32 - -Help on function inf_get_lowoff in module ida_ida: - -inf_get_lowoff(*args) - inf_get_lowoff() -> ea_t - -Help on function inf_get_main in module ida_ida: - -inf_get_main(*args) - inf_get_main() -> ea_t - -Help on function inf_get_margin in module ida_ida: - -inf_get_margin(*args) - inf_get_margin() -> ushort - -Help on function inf_get_max_autoname_len in module ida_ida: - -inf_get_max_autoname_len(*args) - inf_get_max_autoname_len() -> ushort - -Help on function inf_get_max_ea in module ida_ida: - -inf_get_max_ea(*args) - inf_get_max_ea() -> ea_t - -Help on function inf_get_maxref in module ida_ida: - -inf_get_maxref(*args) - inf_get_maxref() -> uval_t - -Help on function inf_get_min_ea in module ida_ida: - -inf_get_min_ea(*args) - inf_get_min_ea() -> ea_t - -Help on function inf_get_nametype in module ida_ida: - -inf_get_nametype(*args) - inf_get_nametype() -> char - -Help on function inf_get_netdelta in module ida_ida: - -inf_get_netdelta(*args) - inf_get_netdelta() -> sval_t - -Help on function inf_get_omax_ea in module ida_ida: - -inf_get_omax_ea(*args) - inf_get_omax_ea() -> ea_t - -Help on function inf_get_omin_ea in module ida_ida: - -inf_get_omin_ea(*args) - inf_get_omin_ea() -> ea_t - -Help on function inf_get_ostype in module ida_ida: - -inf_get_ostype(*args) - inf_get_ostype() -> ushort - -Help on function inf_get_outflags in module ida_ida: - -inf_get_outflags(*args) - inf_get_outflags() -> uint32 - -Help on function inf_get_prefflag in module ida_ida: - -inf_get_prefflag(*args) - inf_get_prefflag() -> uchar - -Help on function inf_get_privrange in module ida_ida: - -inf_get_privrange(*args) - inf_get_privrange(out) -> bool - inf_get_privrange() -> range_t - -Help on function inf_get_privrange_end_ea in module ida_ida: - -inf_get_privrange_end_ea(*args) - inf_get_privrange_end_ea() -> ea_t - -Help on function inf_get_privrange_start_ea in module ida_ida: - -inf_get_privrange_start_ea(*args) - inf_get_privrange_start_ea() -> ea_t - -Help on function inf_get_procname in module ida_ida: - -inf_get_procname(*args) - inf_get_procname() -> str - -Help on function inf_get_refcmtnum in module ida_ida: - -inf_get_refcmtnum(*args) - inf_get_refcmtnum() -> uchar - -Help on function inf_get_short_demnames in module ida_ida: - -inf_get_short_demnames(*args) - inf_get_short_demnames() -> uint32 - -Help on function inf_get_specsegs in module ida_ida: - -inf_get_specsegs(*args) - inf_get_specsegs() -> uchar - -Help on function inf_get_start_cs in module ida_ida: - -inf_get_start_cs(*args) - inf_get_start_cs() -> sel_t - -Help on function inf_get_start_ea in module ida_ida: - -inf_get_start_ea(*args) - inf_get_start_ea() -> ea_t - -Help on function inf_get_start_ip in module ida_ida: - -inf_get_start_ip(*args) - inf_get_start_ip() -> ea_t - -Help on function inf_get_start_sp in module ida_ida: - -inf_get_start_sp(*args) - inf_get_start_sp() -> ea_t - -Help on function inf_get_start_ss in module ida_ida: - -inf_get_start_ss(*args) - inf_get_start_ss() -> sel_t - -Help on function inf_get_strlit_break in module ida_ida: - -inf_get_strlit_break(*args) - inf_get_strlit_break() -> uchar - -Help on function inf_get_strlit_flags in module ida_ida: - -inf_get_strlit_flags(*args) - inf_get_strlit_flags() -> uchar - -Help on function inf_get_strlit_pref in module ida_ida: - -inf_get_strlit_pref(*args) - inf_get_strlit_pref() -> str - -Help on function inf_get_strlit_sernum in module ida_ida: - -inf_get_strlit_sernum(*args) - inf_get_strlit_sernum() -> uval_t - -Help on function inf_get_strlit_zeroes in module ida_ida: - -inf_get_strlit_zeroes(*args) - inf_get_strlit_zeroes() -> char - -Help on function inf_get_strtype in module ida_ida: - -inf_get_strtype(*args) - inf_get_strtype() -> int32 - -Help on function inf_get_type_xrefnum in module ida_ida: - -inf_get_type_xrefnum(*args) - inf_get_type_xrefnum() -> uchar - -Help on function inf_get_version in module ida_ida: - -inf_get_version(*args) - inf_get_version() -> ushort - -Help on function inf_get_xrefflag in module ida_ida: - -inf_get_xrefflag(*args) - inf_get_xrefflag() -> uchar - -Help on function inf_get_xrefnum in module ida_ida: - -inf_get_xrefnum(*args) - inf_get_xrefnum() -> uchar - -Help on function inf_guess_func_type in module ida_ida: - -inf_guess_func_type(*args) - inf_guess_func_type() -> bool - -Help on function inf_handle_eh in module ida_ida: - -inf_handle_eh(*args) - inf_handle_eh() -> bool - -Help on function inf_handle_rtti in module ida_ida: - -inf_handle_rtti(*args) - inf_handle_rtti() -> bool - -Help on function inf_hide_comments in module ida_ida: - -inf_hide_comments(*args) - inf_hide_comments() -> bool - -Help on function inf_hide_libfuncs in module ida_ida: - -inf_hide_libfuncs(*args) - inf_hide_libfuncs() -> bool - -Help on function inf_huge_arg_align in module ida_ida: - -inf_huge_arg_align(*args) - inf_huge_arg_align() -> bool - -Help on function inf_inc_database_change_count in module ida_ida: - -inf_inc_database_change_count(*args) - inf_inc_database_change_count(cnt=1) - -Help on function inf_is_limiter_empty in module ida_ida: - -inf_is_limiter_empty(*args) - inf_is_limiter_empty() -> bool - -Help on function inf_is_limiter_thick in module ida_ida: - -inf_is_limiter_thick(*args) - inf_is_limiter_thick() -> bool - -Help on function inf_is_limiter_thin in module ida_ida: - -inf_is_limiter_thin(*args) - inf_is_limiter_thin() -> bool - -Help on function inf_macros_enabled in module ida_ida: - -inf_macros_enabled(*args) - inf_macros_enabled() -> bool - -Help on function inf_mark_code in module ida_ida: - -inf_mark_code(*args) - inf_mark_code() -> bool - -Help on function inf_no_store_user_info in module ida_ida: - -inf_no_store_user_info(*args) - inf_no_store_user_info() -> bool - -Help on function inf_noflow_to_data in module ida_ida: - -inf_noflow_to_data(*args) - inf_noflow_to_data() -> bool - -Help on function inf_noret_ana in module ida_ida: - -inf_noret_ana(*args) - inf_noret_ana() -> bool - -Help on function inf_op_offset in module ida_ida: - -inf_op_offset(*args) - inf_op_offset() -> bool - -Help on function inf_pack_idb in module ida_ida: - -inf_pack_idb(*args) - inf_pack_idb() -> bool - -Help on function inf_postinc_strlit_sernum in module ida_ida: - -inf_postinc_strlit_sernum(*args) - inf_postinc_strlit_sernum(cnt=1) -> uval_t - -Help on function inf_prefix_show_funcoff in module ida_ida: - -inf_prefix_show_funcoff(*args) - inf_prefix_show_funcoff() -> bool - -Help on function inf_prefix_show_segaddr in module ida_ida: - -inf_prefix_show_segaddr(*args) - inf_prefix_show_segaddr() -> bool - -Help on function inf_prefix_show_stack in module ida_ida: - -inf_prefix_show_stack(*args) - inf_prefix_show_stack() -> bool - -Help on function inf_prefix_truncate_opcode_bytes in module ida_ida: - -inf_prefix_truncate_opcode_bytes(*args) - inf_prefix_truncate_opcode_bytes() -> bool - -Help on function inf_propagate_regargs in module ida_ida: - -inf_propagate_regargs(*args) - inf_propagate_regargs() -> bool - -Help on function inf_propagate_stkargs in module ida_ida: - -inf_propagate_stkargs(*args) - inf_propagate_stkargs() -> bool - -Help on function inf_rename_jumpfunc in module ida_ida: - -inf_rename_jumpfunc(*args) - inf_rename_jumpfunc() -> bool - -Help on function inf_rename_nullsub in module ida_ida: - -inf_rename_nullsub(*args) - inf_rename_nullsub() -> bool - -Help on function inf_set_32bit in module ida_ida: - -inf_set_32bit(*args) - inf_set_32bit(_v=True) -> bool - -Help on function inf_set_abi_set_by_user in module ida_ida: - -inf_set_abi_set_by_user(*args) - inf_set_abi_set_by_user(_v=True) -> bool - -Help on function inf_set_abibits in module ida_ida: - -inf_set_abibits(*args) - inf_set_abibits(_v) -> bool - -Help on function inf_set_af in module ida_ida: - -inf_set_af(*args) - inf_set_af(_v) -> bool - -Help on function inf_set_af2 in module ida_ida: - -inf_set_af2(*args) - inf_set_af2(_v) -> bool - -Help on function inf_set_af2_low in module ida_ida: - -inf_set_af2_low(*args) - inf_set_af2_low(saf) - -Help on function inf_set_af_high in module ida_ida: - -inf_set_af_high(*args) - inf_set_af_high(saf2) - -Help on function inf_set_af_low in module ida_ida: - -inf_set_af_low(*args) - inf_set_af_low(saf) - -Help on function inf_set_allow_non_matched_ops in module ida_ida: - -inf_set_allow_non_matched_ops(*args) - inf_set_allow_non_matched_ops(_v=True) -> bool - -Help on function inf_set_allow_sigmulti in module ida_ida: - -inf_set_allow_sigmulti(*args) - inf_set_allow_sigmulti(_v=True) -> bool - -Help on function inf_set_appcall_options in module ida_ida: - -inf_set_appcall_options(*args) - inf_set_appcall_options(_v) -> bool - -Help on function inf_set_append_sigcmt in module ida_ida: - -inf_set_append_sigcmt(*args) - inf_set_append_sigcmt(_v=True) -> bool - -Help on function inf_set_apptype in module ida_ida: - -inf_set_apptype(*args) - inf_set_apptype(_v) -> bool - -Help on function inf_set_asmtype in module ida_ida: - -inf_set_asmtype(*args) - inf_set_asmtype(_v) -> bool - -Help on function inf_set_baseaddr in module ida_ida: - -inf_set_baseaddr(*args) - inf_set_baseaddr(_v) -> bool - -Help on function inf_set_big_arg_align in module ida_ida: - -inf_set_big_arg_align(*args) - inf_set_big_arg_align(_v=True) -> bool - -Help on function inf_set_bin_prefix_size in module ida_ida: - -inf_set_bin_prefix_size(*args) - inf_set_bin_prefix_size(_v) -> bool - -Help on function inf_set_cc in module ida_ida: - -inf_set_cc(*args) - inf_set_cc(_v) -> bool - -Help on function inf_set_cc_cm in module ida_ida: - -inf_set_cc_cm(*args) - inf_set_cc_cm(_v) -> bool - -Help on function inf_set_cc_defalign in module ida_ida: - -inf_set_cc_defalign(*args) - inf_set_cc_defalign(_v) -> bool - -Help on function inf_set_cc_id in module ida_ida: - -inf_set_cc_id(*args) - inf_set_cc_id(_v) -> bool - -Help on function inf_set_cc_size_b in module ida_ida: - -inf_set_cc_size_b(*args) - inf_set_cc_size_b(_v) -> bool - -Help on function inf_set_cc_size_e in module ida_ida: - -inf_set_cc_size_e(*args) - inf_set_cc_size_e(_v) -> bool - -Help on function inf_set_cc_size_i in module ida_ida: - -inf_set_cc_size_i(*args) - inf_set_cc_size_i(_v) -> bool - -Help on function inf_set_cc_size_l in module ida_ida: - -inf_set_cc_size_l(*args) - inf_set_cc_size_l(_v) -> bool - -Help on function inf_set_cc_size_ldbl in module ida_ida: - -inf_set_cc_size_ldbl(*args) - inf_set_cc_size_ldbl(_v) -> bool - -Help on function inf_set_cc_size_ll in module ida_ida: - -inf_set_cc_size_ll(*args) - inf_set_cc_size_ll(_v) -> bool - -Help on function inf_set_cc_size_s in module ida_ida: - -inf_set_cc_size_s(*args) - inf_set_cc_size_s(_v) -> bool - -Help on function inf_set_check_manual_ops in module ida_ida: - -inf_set_check_manual_ops(*args) - inf_set_check_manual_ops(_v=True) -> bool - -Help on function inf_set_check_unicode_strlits in module ida_ida: - -inf_set_check_unicode_strlits(*args) - inf_set_check_unicode_strlits(_v=True) -> bool - -Help on function inf_set_cmtflg in module ida_ida: - -inf_set_cmtflg(*args) - inf_set_cmtflg(_v) -> bool - -Help on function inf_set_coagulate_code in module ida_ida: - -inf_set_coagulate_code(*args) - inf_set_coagulate_code(_v=True) -> bool - -Help on function inf_set_coagulate_data in module ida_ida: - -inf_set_coagulate_data(*args) - inf_set_coagulate_data(_v=True) -> bool - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) - inf_set_comment(_v) -> bool - -Help on function inf_set_compress_idb in module ida_ida: - -inf_set_compress_idb(*args) - inf_set_compress_idb(_v=True) -> bool - -Help on function inf_set_create_all_xrefs in module ida_ida: - -inf_set_create_all_xrefs(*args) - inf_set_create_all_xrefs(_v=True) -> bool - -Help on function inf_set_create_func_from_call in module ida_ida: - -inf_set_create_func_from_call(*args) - inf_set_create_func_from_call(_v=True) -> bool - -Help on function inf_set_create_func_from_ptr in module ida_ida: - -inf_set_create_func_from_ptr(*args) - inf_set_create_func_from_ptr(_v=True) -> bool - -Help on function inf_set_create_func_tails in module ida_ida: - -inf_set_create_func_tails(*args) - inf_set_create_func_tails(_v=True) -> bool - -Help on function inf_set_create_jump_tables in module ida_ida: - -inf_set_create_jump_tables(*args) - inf_set_create_jump_tables(_v=True) -> bool - -Help on function inf_set_create_off_on_dref in module ida_ida: - -inf_set_create_off_on_dref(*args) - inf_set_create_off_on_dref(_v=True) -> bool - -Help on function inf_set_create_off_using_fixup in module ida_ida: - -inf_set_create_off_using_fixup(*args) - inf_set_create_off_using_fixup(_v=True) -> bool - -Help on function inf_set_create_strlit_on_xref in module ida_ida: - -inf_set_create_strlit_on_xref(*args) - inf_set_create_strlit_on_xref(_v=True) -> bool - -Help on function inf_set_data_offset in module ida_ida: - -inf_set_data_offset(*args) - inf_set_data_offset(_v=True) -> bool - -Help on function inf_set_database_change_count in module ida_ida: - -inf_set_database_change_count(*args) - inf_set_database_change_count(_v) -> bool - -Help on function inf_set_datatypes in module ida_ida: - -inf_set_datatypes(*args) - inf_set_datatypes(_v) -> bool - -Help on function inf_set_dbg_no_store_path in module ida_ida: - -inf_set_dbg_no_store_path(*args) - inf_set_dbg_no_store_path(_v=True) -> bool - -Help on function inf_set_decode_fpp in module ida_ida: - -inf_set_decode_fpp(*args) - inf_set_decode_fpp(_v=True) -> bool - -Help on function inf_set_del_no_xref_insns in module ida_ida: - -inf_set_del_no_xref_insns(*args) - inf_set_del_no_xref_insns(_v=True) -> bool - -Help on function inf_set_demnames in module ida_ida: - -inf_set_demnames(*args) - inf_set_demnames(_v) -> bool - -Help on function inf_set_dll in module ida_ida: - -inf_set_dll(*args) - inf_set_dll(_v=True) -> bool - -Help on function inf_set_filetype in module ida_ida: - -inf_set_filetype(*args) - inf_set_filetype(_v) -> bool - -Help on function inf_set_final_pass in module ida_ida: - -inf_set_final_pass(*args) - inf_set_final_pass(_v=True) -> bool - -Help on function inf_set_flat_off32 in module ida_ida: - -inf_set_flat_off32(*args) - inf_set_flat_off32(_v=True) -> bool - -Help on function inf_set_full_sp_ana in module ida_ida: - -inf_set_full_sp_ana(*args) - inf_set_full_sp_ana(_v=True) -> bool - -Help on function inf_set_gen_assume in module ida_ida: - -inf_set_gen_assume(*args) - inf_set_gen_assume(_v=True) -> bool - -Help on function inf_set_gen_org in module ida_ida: - -inf_set_gen_org(*args) - inf_set_gen_org(_v=True) -> bool - -Help on function inf_set_genflags in module ida_ida: - -inf_set_genflags(*args) - inf_set_genflags(_v) -> bool - -Help on function inf_set_guess_func_type in module ida_ida: - -inf_set_guess_func_type(*args) - inf_set_guess_func_type(_v=True) -> bool - -Help on function inf_set_handle_eh in module ida_ida: - -inf_set_handle_eh(*args) - inf_set_handle_eh(_v=True) -> bool - -Help on function inf_set_handle_rtti in module ida_ida: - -inf_set_handle_rtti(*args) - inf_set_handle_rtti(_v=True) -> bool - -Help on function inf_set_hard_float in module ida_ida: - -inf_set_hard_float(*args) - inf_set_hard_float(_v=True) -> bool - -Help on function inf_set_hide_comments in module ida_ida: - -inf_set_hide_comments(*args) - inf_set_hide_comments(_v=True) -> bool - -Help on function inf_set_hide_libfuncs in module ida_ida: - -inf_set_hide_libfuncs(*args) - inf_set_hide_libfuncs(_v=True) -> bool - -Help on function inf_set_highoff in module ida_ida: - -inf_set_highoff(*args) - inf_set_highoff(_v) -> bool - -Help on function inf_set_huge_arg_align in module ida_ida: - -inf_set_huge_arg_align(*args) - inf_set_huge_arg_align(_v=True) -> bool - -Help on function inf_set_indent in module ida_ida: - -inf_set_indent(*args) - inf_set_indent(_v) -> bool - -Help on function inf_set_kernel_mode in module ida_ida: - -inf_set_kernel_mode(*args) - inf_set_kernel_mode(_v=True) -> bool - -Help on function inf_set_lenxref in module ida_ida: - -inf_set_lenxref(*args) - inf_set_lenxref(_v) -> bool - -Help on function inf_set_lflags in module ida_ida: - -inf_set_lflags(*args) - inf_set_lflags(_v) -> bool - -Help on function inf_set_limiter in module ida_ida: - -inf_set_limiter(*args) - inf_set_limiter(_v) -> bool - -Help on function inf_set_limiter_empty in module ida_ida: - -inf_set_limiter_empty(*args) - inf_set_limiter_empty(_v=True) -> bool - -Help on function inf_set_limiter_thick in module ida_ida: - -inf_set_limiter_thick(*args) - inf_set_limiter_thick(_v=True) -> bool - -Help on function inf_set_limiter_thin in module ida_ida: - -inf_set_limiter_thin(*args) - inf_set_limiter_thin(_v=True) -> bool - -Help on function inf_set_listnames in module ida_ida: - -inf_set_listnames(*args) - inf_set_listnames(_v) -> bool - -Help on function inf_set_loading_idc in module ida_ida: - -inf_set_loading_idc(*args) - inf_set_loading_idc(_v=True) -> bool - -Help on function inf_set_long_demnames in module ida_ida: - -inf_set_long_demnames(*args) - inf_set_long_demnames(_v) -> bool - -Help on function inf_set_lowoff in module ida_ida: - -inf_set_lowoff(*args) - inf_set_lowoff(_v) -> bool - -Help on function inf_set_macros_enabled in module ida_ida: - -inf_set_macros_enabled(*args) - inf_set_macros_enabled(_v=True) -> bool - -Help on function inf_set_main in module ida_ida: - -inf_set_main(*args) - inf_set_main(_v) -> bool - -Help on function inf_set_map_stkargs in module ida_ida: - -inf_set_map_stkargs(*args) - inf_set_map_stkargs(_v=True) -> bool - -Help on function inf_set_margin in module ida_ida: - -inf_set_margin(*args) - inf_set_margin(_v) -> bool - -Help on function inf_set_mark_code in module ida_ida: - -inf_set_mark_code(*args) - inf_set_mark_code(_v=True) -> bool - -Help on function inf_set_max_autoname_len in module ida_ida: - -inf_set_max_autoname_len(*args) - inf_set_max_autoname_len(_v) -> bool - -Help on function inf_set_max_ea in module ida_ida: - -inf_set_max_ea(*args) - inf_set_max_ea(_v) -> bool - -Help on function inf_set_maxref in module ida_ida: - -inf_set_maxref(*args) - inf_set_maxref(_v) -> bool - -Help on function inf_set_mem_aligned4 in module ida_ida: - -inf_set_mem_aligned4(*args) - inf_set_mem_aligned4(_v=True) -> bool - -Help on function inf_set_min_ea in module ida_ida: - -inf_set_min_ea(*args) - inf_set_min_ea(_v) -> bool - -Help on function inf_set_nametype in module ida_ida: - -inf_set_nametype(*args) - inf_set_nametype(_v) -> bool - -Help on function inf_set_netdelta in module ida_ida: - -inf_set_netdelta(*args) - inf_set_netdelta(_v) -> bool - -Help on function inf_set_no_store_user_info in module ida_ida: - -inf_set_no_store_user_info(*args) - inf_set_no_store_user_info(_v=True) -> bool - -Help on function inf_set_noflow_to_data in module ida_ida: - -inf_set_noflow_to_data(*args) - inf_set_noflow_to_data(_v=True) -> bool - -Help on function inf_set_noret_ana in module ida_ida: - -inf_set_noret_ana(*args) - inf_set_noret_ana(_v=True) -> bool - -Help on function inf_set_omax_ea in module ida_ida: - -inf_set_omax_ea(*args) - inf_set_omax_ea(_v) -> bool - -Help on function inf_set_omin_ea in module ida_ida: - -inf_set_omin_ea(*args) - inf_set_omin_ea(_v) -> bool - -Help on function inf_set_op_offset in module ida_ida: - -inf_set_op_offset(*args) - inf_set_op_offset(_v=True) -> bool - -Help on function inf_set_ostype in module ida_ida: - -inf_set_ostype(*args) - inf_set_ostype(_v) -> bool - -Help on function inf_set_outflags in module ida_ida: - -inf_set_outflags(*args) - inf_set_outflags(_v) -> bool - -Help on function inf_set_pack_idb in module ida_ida: - -inf_set_pack_idb(*args) - inf_set_pack_idb(_v=True) -> bool - -Help on function inf_set_pack_stkargs in module ida_ida: - -inf_set_pack_stkargs(*args) - inf_set_pack_stkargs(_v=True) -> bool - -Help on function inf_set_prefflag in module ida_ida: - -inf_set_prefflag(*args) - inf_set_prefflag(_v) -> bool - -Help on function inf_set_prefix_show_funcoff in module ida_ida: - -inf_set_prefix_show_funcoff(*args) - inf_set_prefix_show_funcoff(_v=True) -> bool - -Help on function inf_set_prefix_show_segaddr in module ida_ida: - -inf_set_prefix_show_segaddr(*args) - inf_set_prefix_show_segaddr(_v=True) -> bool - -Help on function inf_set_prefix_show_stack in module ida_ida: - -inf_set_prefix_show_stack(*args) - inf_set_prefix_show_stack(_v=True) -> bool - -Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: - -inf_set_prefix_truncate_opcode_bytes(*args) - inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool - -Help on function inf_set_privrange in module ida_ida: - -inf_set_privrange(*args) - inf_set_privrange(_v) -> bool - -Help on function inf_set_privrange_end_ea in module ida_ida: - -inf_set_privrange_end_ea(*args) - inf_set_privrange_end_ea(_v) -> bool - -Help on function inf_set_privrange_start_ea in module ida_ida: - -inf_set_privrange_start_ea(*args) - inf_set_privrange_start_ea(_v) -> bool - -Help on function inf_set_procname in module ida_ida: - -inf_set_procname(*args) - inf_set_procname(_v, len=size_t(-1)) -> bool - -Help on function inf_set_propagate_regargs in module ida_ida: - -inf_set_propagate_regargs(*args) - inf_set_propagate_regargs(_v=True) -> bool - -Help on function inf_set_propagate_stkargs in module ida_ida: - -inf_set_propagate_stkargs(*args) - inf_set_propagate_stkargs(_v=True) -> bool - -Help on function inf_set_readonly_idb in module ida_ida: - -inf_set_readonly_idb(*args) - inf_set_readonly_idb(_v=True) -> bool - -Help on function inf_set_refcmtnum in module ida_ida: - -inf_set_refcmtnum(*args) - inf_set_refcmtnum(_v) -> bool - -Help on function inf_set_rename_jumpfunc in module ida_ida: - -inf_set_rename_jumpfunc(*args) - inf_set_rename_jumpfunc(_v=True) -> bool - -Help on function inf_set_rename_nullsub in module ida_ida: - -inf_set_rename_nullsub(*args) - inf_set_rename_nullsub(_v=True) -> bool - -Help on function inf_set_short_demnames in module ida_ida: - -inf_set_short_demnames(*args) - inf_set_short_demnames(_v) -> bool - -Help on function inf_set_should_create_stkvars in module ida_ida: - -inf_set_should_create_stkvars(*args) - inf_set_should_create_stkvars(_v=True) -> bool - -Help on function inf_set_should_trace_sp in module ida_ida: - -inf_set_should_trace_sp(*args) - inf_set_should_trace_sp(_v=True) -> bool - -Help on function inf_set_show_all_comments in module ida_ida: - -inf_set_show_all_comments(*args) - inf_set_show_all_comments(_v=True) -> bool - -Help on function inf_set_show_hidden_funcs in module ida_ida: - -inf_set_show_hidden_funcs(*args) - inf_set_show_hidden_funcs(_v=True) -> bool - -Help on function inf_set_show_hidden_insns in module ida_ida: - -inf_set_show_hidden_insns(*args) - inf_set_show_hidden_insns(_v=True) -> bool - -Help on function inf_set_show_hidden_segms in module ida_ida: - -inf_set_show_hidden_segms(*args) - inf_set_show_hidden_segms(_v=True) -> bool - -Help on function inf_set_show_repeatables in module ida_ida: - -inf_set_show_repeatables(*args) - inf_set_show_repeatables(_v=True) -> bool - -Help on function inf_set_show_src_linnum in module ida_ida: - -inf_set_show_src_linnum(*args) - inf_set_show_src_linnum(_v=True) -> bool - -Help on function inf_set_show_xref_fncoff in module ida_ida: - -inf_set_show_xref_fncoff(*args) - inf_set_show_xref_fncoff(_v=True) -> bool - -Help on function inf_set_show_xref_seg in module ida_ida: - -inf_set_show_xref_seg(*args) - inf_set_show_xref_seg(_v=True) -> bool - -Help on function inf_set_show_xref_tmarks in module ida_ida: - -inf_set_show_xref_tmarks(*args) - inf_set_show_xref_tmarks(_v=True) -> bool - -Help on function inf_set_show_xref_val in module ida_ida: - -inf_set_show_xref_val(*args) - inf_set_show_xref_val(_v=True) -> bool - -Help on function inf_set_snapshot in module ida_ida: - -inf_set_snapshot(*args) - inf_set_snapshot(_v=True) -> bool - -Help on function inf_set_specsegs in module ida_ida: - -inf_set_specsegs(*args) - inf_set_specsegs(_v) -> bool - -Help on function inf_set_stack_ldbl in module ida_ida: - -inf_set_stack_ldbl(*args) - inf_set_stack_ldbl(_v=True) -> bool - -Help on function inf_set_stack_varargs in module ida_ida: - -inf_set_stack_varargs(*args) - inf_set_stack_varargs(_v=True) -> bool - -Help on function inf_set_start_cs in module ida_ida: - -inf_set_start_cs(*args) - inf_set_start_cs(_v) -> bool - -Help on function inf_set_start_ea in module ida_ida: - -inf_set_start_ea(*args) - inf_set_start_ea(_v) -> bool - -Help on function inf_set_start_ip in module ida_ida: - -inf_set_start_ip(*args) - inf_set_start_ip(_v) -> bool - -Help on function inf_set_start_sp in module ida_ida: - -inf_set_start_sp(*args) - inf_set_start_sp(_v) -> bool - -Help on function inf_set_start_ss in module ida_ida: - -inf_set_start_ss(*args) - inf_set_start_ss(_v) -> bool - -Help on function inf_set_strlit_autocmt in module ida_ida: - -inf_set_strlit_autocmt(*args) - inf_set_strlit_autocmt(_v=True) -> bool - -Help on function inf_set_strlit_break in module ida_ida: - -inf_set_strlit_break(*args) - inf_set_strlit_break(_v) -> bool - -Help on function inf_set_strlit_flags in module ida_ida: - -inf_set_strlit_flags(*args) - inf_set_strlit_flags(_v) -> bool - -Help on function inf_set_strlit_name_bit in module ida_ida: - -inf_set_strlit_name_bit(*args) - inf_set_strlit_name_bit(_v=True) -> bool - -Help on function inf_set_strlit_names in module ida_ida: - -inf_set_strlit_names(*args) - inf_set_strlit_names(_v=True) -> bool - -Help on function inf_set_strlit_pref in module ida_ida: - -inf_set_strlit_pref(*args) - inf_set_strlit_pref(_v, len=size_t(-1)) -> bool - -Help on function inf_set_strlit_savecase in module ida_ida: - -inf_set_strlit_savecase(*args) - inf_set_strlit_savecase(_v=True) -> bool - -Help on function inf_set_strlit_serial_names in module ida_ida: - -inf_set_strlit_serial_names(*args) - inf_set_strlit_serial_names(_v=True) -> bool - -Help on function inf_set_strlit_sernum in module ida_ida: - -inf_set_strlit_sernum(*args) - inf_set_strlit_sernum(_v) -> bool - -Help on function inf_set_strlit_zeroes in module ida_ida: - -inf_set_strlit_zeroes(*args) - inf_set_strlit_zeroes(_v) -> bool - -Help on function inf_set_strtype in module ida_ida: - -inf_set_strtype(*args) - inf_set_strtype(_v) -> bool - -Help on function inf_set_test_mode in module ida_ida: - -inf_set_test_mode(*args) - inf_set_test_mode(_v=True) -> bool - -Help on function inf_set_trace_flow in module ida_ida: - -inf_set_trace_flow(*args) - inf_set_trace_flow(_v=True) -> bool - -Help on function inf_set_truncate_on_del in module ida_ida: - -inf_set_truncate_on_del(*args) - inf_set_truncate_on_del(_v=True) -> bool - -Help on function inf_set_type_xrefnum in module ida_ida: - -inf_set_type_xrefnum(*args) - inf_set_type_xrefnum(_v) -> bool - -Help on function inf_set_unicode_strlits in module ida_ida: - -inf_set_unicode_strlits(*args) - inf_set_unicode_strlits(_v=True) -> bool - -Help on function inf_set_use_allasm in module ida_ida: - -inf_set_use_allasm(*args) - inf_set_use_allasm(_v=True) -> bool - -Help on function inf_set_use_flirt in module ida_ida: - -inf_set_use_flirt(*args) - inf_set_use_flirt(_v=True) -> bool - -Help on function inf_set_use_gcc_layout in module ida_ida: - -inf_set_use_gcc_layout(*args) - inf_set_use_gcc_layout(_v=True) -> bool - -Help on function inf_set_version in module ida_ida: - -inf_set_version(*args) - inf_set_version(_v) -> bool - -Help on function inf_set_xrefflag in module ida_ida: - -inf_set_xrefflag(*args) - inf_set_xrefflag(_v) -> bool - -Help on function inf_set_xrefnum in module ida_ida: - -inf_set_xrefnum(*args) - inf_set_xrefnum(_v) -> bool - -Help on function inf_should_create_stkvars in module ida_ida: - -inf_should_create_stkvars(*args) - inf_should_create_stkvars() -> bool - -Help on function inf_should_trace_sp in module ida_ida: - -inf_should_trace_sp(*args) - inf_should_trace_sp() -> bool - -Help on function inf_show_all_comments in module ida_ida: - -inf_show_all_comments(*args) - inf_show_all_comments() -> bool - -Help on function inf_show_hidden_funcs in module ida_ida: - -inf_show_hidden_funcs(*args) - inf_show_hidden_funcs() -> bool - -Help on function inf_show_hidden_insns in module ida_ida: - -inf_show_hidden_insns(*args) - inf_show_hidden_insns() -> bool - -Help on function inf_show_hidden_segms in module ida_ida: - -inf_show_hidden_segms(*args) - inf_show_hidden_segms() -> bool - -Help on function inf_show_repeatables in module ida_ida: - -inf_show_repeatables(*args) - inf_show_repeatables() -> bool - -Help on function inf_show_src_linnum in module ida_ida: - -inf_show_src_linnum(*args) - inf_show_src_linnum() -> bool - -Help on function inf_show_xref_fncoff in module ida_ida: - -inf_show_xref_fncoff(*args) - inf_show_xref_fncoff() -> bool - -Help on function inf_show_xref_seg in module ida_ida: - -inf_show_xref_seg(*args) - inf_show_xref_seg() -> bool - -Help on function inf_show_xref_tmarks in module ida_ida: - -inf_show_xref_tmarks(*args) - inf_show_xref_tmarks() -> bool - -Help on function inf_show_xref_val in module ida_ida: - -inf_show_xref_val(*args) - inf_show_xref_val() -> bool - -Help on function inf_strlit_autocmt in module ida_ida: - -inf_strlit_autocmt(*args) - inf_strlit_autocmt() -> bool - -Help on function inf_strlit_name_bit in module ida_ida: - -inf_strlit_name_bit(*args) - inf_strlit_name_bit() -> bool - -Help on function inf_strlit_names in module ida_ida: - -inf_strlit_names(*args) - inf_strlit_names() -> bool - -Help on function inf_strlit_savecase in module ida_ida: - -inf_strlit_savecase(*args) - inf_strlit_savecase() -> bool - -Help on function inf_strlit_serial_names in module ida_ida: - -inf_strlit_serial_names(*args) - inf_strlit_serial_names() -> bool - -Help on function inf_test_mode in module ida_ida: - -inf_test_mode(*args) - inf_test_mode() -> bool - -Help on function inf_trace_flow in module ida_ida: - -inf_trace_flow(*args) - inf_trace_flow() -> bool - -Help on function inf_truncate_on_del in module ida_ida: - -inf_truncate_on_del(*args) - inf_truncate_on_del() -> bool - -Help on function inf_unicode_strlits in module ida_ida: - -inf_unicode_strlits(*args) - inf_unicode_strlits() -> bool - -Help on function inf_use_flirt in module ida_ida: - -inf_use_flirt(*args) - inf_use_flirt() -> bool - -Help on function is_filetype_like_binary in module ida_ida: - -is_filetype_like_binary(*args) - is_filetype_like_binary(ft) -> bool - - - Is unstructured input file? - - - @param ft (C++: filetype_t) - -Help on function in module ida_ida: - - lambda *args - -Help on function to_ea in module ida_ida: - -to_ea(*args) - to_ea(reg_cs, reg_ip) -> ea_t - - - Convert (sel,off) value to a linear address. - - - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) - -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" - -ida_ida.ABI_BIGARG_ALIGN -""" -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - -use natural type alignment for argument if the alignment exceeds -native word size -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -the target assembler - -may use constructs not supported by -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === -Help on class CustomIDAMemo in module ida_kernwin: - -class CustomIDAMemo(View_Hooks) - | # - | # ----------------------------------------------------------------------- - | # CustomIDAMemo - | # ----------------------------------------------------------------------- - | - | Method resolution order: - | CustomIDAMemo - | View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | 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 - | } - | - | @param 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). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | __init__(self) - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from View_Hooks: - | - | __swig_destroy__ = - | delete_View_Hooks(self) - -Help on __IDAPython_Completion_Util in module ida_idaapi object: - -class __IDAPython_Completion_Util(__builtin__.object) - | Internal utility class for auto-completion support - | - | Methods defined here: - | - | __call__(self, line, x) - | - | __init__(self) - | - | debug(self, *args) - | - | dir_namespace(self, m, prefix) - | - | get_candidates(self, qname, line, match_syntax_char) - | - | maybe_extend_syntactically(self, ns, name, line, syntax_char) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | QNAME_PAT = <_sre.SRE_Pattern object> - -Help on function IDAPython_ExecScript in module ida_idaapi: - -IDAPython_ExecScript(script, g, print_error=True) - Run the specified script. - It also addresses http://code.google.com/p/idapython/issues/detail?id=42 - - This function is used by the low-level plugin code. - -Help on function IDAPython_ExecSystem in module ida_idaapi: - -IDAPython_ExecSystem(cmd) - Executes a command with popen(). - -Help on function IDAPython_FormatExc in module ida_idaapi: - -IDAPython_FormatExc(etype, value=None, tb=None, limit=None) - This function is used to format an exception given the - values returned by a PyErr_Fetch() - -Help on function IDAPython_LoadProcMod in module ida_idaapi: - -IDAPython_LoadProcMod(script, g, print_error=True) - Load processor module. - -Help on function IDAPython_UnLoadProcMod in module ida_idaapi: - -IDAPython_UnLoadProcMod(script, g, print_error=True) - Unload processor module. - -Help on class IDAPython_displayhook in module ida_idaapi: - -class IDAPython_displayhook - | # ------------------------------------------------------------ - | - | Methods defined here: - | - | __init__(self) - | - | _print_hex(self, x) - | - | displayhook(self, item) - | - | format_item(self, num_printer, storage, item) - | - | format_seq(self, num_printer, storage, item, opn, cls) - -Help on class PyIdc_cvt_int64__ in module ida_idaapi: - -class PyIdc_cvt_int64__(pyidc_cvt_helper__) - | Helper class for explicitly representing VT_INT64 values - | - | Method resolution order: - | PyIdc_cvt_int64__ - | pyidc_cvt_helper__ - | __builtin__.object - | - | Methods defined here: - | - | _PyIdc_cvt_int64____op = __op(self, op_n, other, rev=False) - | - | __add__(self, other) - | - | __div__(self, other) - | - | __init__(self, v) - | - | __mul__(self, other) - | - | __radd__(self, other) - | - | __rdiv__(self, other) - | - | __rmul__(self, other) - | - | __rsub__(self, other) - | - | __sub__(self, other) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | _PyIdc_cvt_int64____op_table = {0: >, 1: - -Help on function __install_excepthook in module ida_idaapi: - -__install_excepthook() - # Since version 5.5, PyQt5 doesn't simply print the PyQt exceptions by default - # anymore: https://github.com/baoboa/pyqt5/commit/1e1d8a3ba677ef3e47b916b8a5b9c281d0f8e4b5#diff-848704a82f6a6e3a13112145ce32ac69L63 - # The default behavior now is that qFatal() is called, causing the application - # to abort(). - # We do not want that to happen in IDA, and simply having a sys.excepthook - # that is different from sys.__excepthook__ is enough for PyQt5 to return - # to the previous behavior - -Help on function _bounded_getitem_iterator in module ida_idaapi: - -_bounded_getitem_iterator(self) - Helper function, to be set as __iter__ method for qvector-, or array-based classes. - -Help on function _listify_types in module ida_idaapi: - -_listify_types(*classes) - -Help on function _qvector_back in module ida_idaapi: - -_qvector_back(self) - # ----------------------------------------------------------------------- - -Help on function _qvector_front in module ida_idaapi: - -_qvector_front(self) - # ----------------------------------------------------------------------- - -Help on function _replace_module_function in module ida_idaapi: - -_replace_module_function(replacement) - -Help on function _utf8_native in module ida_idaapi: - -_utf8_native(utf8) - -Help on function as_UTF16 in module ida_idaapi: - -as_UTF16(s) - Convenience function to convert a string into appropriate unicode format - -Help on function as_cstr in module ida_idaapi: - -as_cstr(val) - Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) - It scans for the first and returns the string value up to that point. - -Help on function as_int32 in module ida_idaapi: - -as_int32(v) - Returns a number as a signed int32 number - -Help on function as_signed in module ida_idaapi: - -as_signed(v, nbits=32) - Returns a number as signed. The number of bits are specified by the user. - The MSB holds the sign. - -Help on function as_uint32 in module ida_idaapi: - -as_uint32(v) - Returns a number as an unsigned int32 number - -Help on function copy_bits in module ida_idaapi: - -copy_bits(v, s, e=-1) - Copy bits from a value - @param v: the value - @param s: starting bit (0-based) - @param e: ending bit - -Help on function disable_script_timeout in module ida_idaapi: - -disable_script_timeout(*args) - disable_script_timeout() - - - Disables the script timeout and hides the script wait box. - Calling L{set_script_timeout} will not have any effects until the script is compiled and executed again - - @return: None - -Help on function enable_extlang_python in module ida_idaapi: - -enable_extlang_python(*args) - enable_extlang_python(enable) - - - Enables or disables Python extlang. - When enabled, all expressions will be evaluated by Python. - @param enable: Set to True to enable, False otherwise - -Help on function enable_python_cli in module ida_idaapi: - -enable_python_cli(*args) - enable_python_cli(enable) - -Help on function format_basestring in module ida_idaapi: - -format_basestring(*args) - format_basestring(_in) -> PyObject * - -Help on function get_inf_structure in module ida_idaapi: - -get_inf_structure(*args) - get_inf_structure() -> idainfo - - - Returns the global variable 'inf' (an instance of idainfo structure, see ida.hpp) - -Help on class loader_input_t in module ida_idaapi: - -class loader_input_t(__builtin__.object) - | Proxy of C++ loader_input_t class. - | - | - | A helper class to work with linput_t related functions. - | This class is also used by file loaders scripts. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, pycapsule=None) -> loader_input_t - | - | - | Closes the file - | - | __repr__ = _swig_repr(self) - | - | close(self, *args) - | close(self) - | - | file2base(self, *args) - | file2base(self, pos, ea1, ea2, patchable) -> int - | - | - | Load portion of file into the database - | This function will include (ea1..ea2) into the addressing space of the - | program (make it enabled) - | @param li: pointer ot input source - | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses - | @param patchable: should the kernel remember correspondance of - | file offsets to linear addresses. - | @return: 1-ok,0-read error, a warning is displayed - | - | filename(self, *args) - | filename(self) -> PyObject * - | - | get_char(self, *args) - | get_char(self) -> PyObject * - | - | get_linput(self, *args) - | get_linput(self) -> linput_t * - | - | gets(self, *args) - | gets(self, len) -> PyObject * - | - | - | Reads a line from the input file. Returns the read line or None - | - | getz(self, *args) - | getz(self, sz, fpos=-1) -> PyObject * - | - | - | Returns a zero terminated string at the given position - | @param sz: maximum size of the string - | @param fpos: if != -1 then seek will be performed before reading - | @return: The string or None on failure. - | - | open(self, *args) - | open(self, filename, remote=False) -> bool - | - | - | Opens a file (or a remote file) - | @return: Boolean - | - | open_memory(self, *args) - | open_memory(self, start, size=0) -> bool - | - | - | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) - | This linput will use dbg->read_memory() to read data - | @param start: starting address of the input - | @param size: size of the memory range to represent as linput - | if unknown, may be passed as 0 - | - | opened(self, *args) - | opened(self) -> bool - | - | - | Checks if the file is opened or not - | - | read(self, *args) - | read(self, size) -> PyObject * - | - | - | Reads from the file. Returns the buffer or None - | - | readbytes(self, *args) - | readbytes(self, size, big_endian) -> PyObject * - | - | - | Similar to read() but it respect the endianness - | - | seek(self, *args) - | seek(self, pos, whence=SEEK_SET) -> int64 - | - | - | Set input source position - | @return: the new position (not 0 as fseek!) - | - | set_linput(self, *args) - | set_linput(self, linput) - | - | - | Links the current loader_input_t instance to a linput_t instance - | - | size(self, *args) - | size(self) -> int64 - | - | tell(self, *args) - | tell(self) -> int64 - | - | - | Returns the current position - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | from_capsule(*args) - | from_capsule(pycapsule) -> loader_input_t - | - | from_fp(*args) - | from_fp(fp) -> loader_input_t - | - | - | A static method to construct an instance from a FILE* - | - | from_linput(*args) - | from_linput(linput) -> loader_input_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_loader_input_t(self) - -Help on function loader_input_t_from_capsule in module ida_idaapi: - -loader_input_t_from_capsule(*args) - loader_input_t_from_capsule(pycapsule) -> loader_input_t - -Help on function loader_input_t_from_fp in module ida_idaapi: - -loader_input_t_from_fp(*args) - loader_input_t_from_fp(fp) -> loader_input_t - -Help on function loader_input_t_from_linput in module ida_idaapi: - -loader_input_t_from_linput(*args) - loader_input_t_from_linput(linput) -> loader_input_t - -Help on function notify_when in module ida_idaapi: - -notify_when(when, callback) - Register a callback that will be called when an event happens. - @param when: one of NW_XXXX constants - @param callback: This callback prototype varies depending on the 'when' parameter: - The general callback format: - def notify_when_callback(nw_code) - In the case of NW_OPENIDB: - def notify_when_callback(nw_code, is_old_database) - @return: Boolean - -Help on class object_t in module ida_idaapi: - -class object_t(__builtin__.object) - | Helper class used to initialize empty objects - | - | Methods defined here: - | - | __getitem__(self, idx) - | Allow access to object attributes by index (like dictionaries) - | - | __init__(self, **kwds) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function parse_command_line3 in module ida_idaapi: - -parse_command_line3(*args) - parse_command_line3(cmdline) -> PyObject * - -Help on class plugin_t in module ida_idaapi: - -class plugin_t(pyidc_opaque_object_t) - | Base class for all scripted plugins. - | - | Method resolution order: - | plugin_t - | pyidc_opaque_object_t - | __builtin__.object - | - | Data descriptors inherited from pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on class py_clinked_object_t in module ida_idaapi: - -class py_clinked_object_t(pyidc_opaque_object_t) - | This is a utility and base class for C linked objects - | - | Method resolution order: - | py_clinked_object_t - | pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __del__(self) - | Delete the link upon object destruction (only if not static) - | - | __init__(self, lnk=None) - | - | _create_clink(self) - | Overwrite me. - | Creates a new clink - | @return: PyCapsule representing the C link - | - | _del_clink(self, lnk) - | Overwrite me. - | This method deletes the link - | - | _free(self) - | Explicitly delete the link (only if not static) - | - | _get_clink_ptr(self) - | Overwrite me. - | Returns the C link pointer as a 64bit number - | - | assign(self, other) - | Overwrite me. - | This method allows you to assign an instance contents to anothers - | @return: Boolean - | - | copy(self) - | Returns a new copy of this class - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | clink - | - | clink_ptr - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on function pycim_get_widget in module ida_idaapi: - -pycim_get_widget(*args) - pycim_get_widget(_self) -> TWidget * - -Help on function pycim_view_close in module ida_idaapi: - -pycim_view_close(*args) - pycim_view_close(_self) - -Help on function pygc_create_groups in module ida_idaapi: - -pygc_create_groups(*args) - pygc_create_groups(_self, groups_infos) -> PyObject * - -Help on function pygc_delete_groups in module ida_idaapi: - -pygc_delete_groups(*args) - pygc_delete_groups(_self, groups, new_current) -> PyObject * - -Help on function pygc_refresh in module ida_idaapi: - -pygc_refresh(*args) - pygc_refresh(_self) - -Help on function pygc_set_groups_visibility in module ida_idaapi: - -pygc_set_groups_visibility(*args) - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * - -Help on class pyidc_cvt_helper__ in module ida_idaapi: - -class pyidc_cvt_helper__(__builtin__.object) - | This is a special helper object that helps detect which kind - | of object is this python object wrapping and how to convert it - | back and from IDC. - | This object is characterized by its special attribute and its value - | - | Methods defined here: - | - | __init__(self, cvt_id, value) - | - | _pyidc_cvt_helper____get_value = __get_value(self) - | - | _pyidc_cvt_helper____set_value = __set_value(self, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | value - -Help on class pyidc_opaque_object_t in module ida_idaapi: - -class pyidc_opaque_object_t(__builtin__.object) - | This is the base class for all Python<->IDC opaque objects - | - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __idc_cvt_id__ = 2 - -Help on function replfun in module ida_idaapi: - -replfun(func) - -Help on function require in module ida_idaapi: - -require(modulename, package=None) - Load, or reload a module. - - When under heavy development, a user's tool might consist of multiple - modules. If those are imported using the standard 'import' mechanism, - there is no guarantee that the Python implementation will re-read - and re-evaluate the module's Python code. In fact, it usually doesn't. - What should be done instead is 'reload()'-ing that module. - - This is a simple helper function that will do just that: In case the - module doesn't exist, it 'import's it, and if it does exist, - 'reload()'s it. - - The importing module (i.e., the module calling require()) will have - the loaded module bound to its globals(), under the name 'modulename'. - (If require() is called from the command line, the importing module - will be '__main__'.) - - For more information, see: . - -Help on function set_script_timeout in module ida_idaapi: - -set_script_timeout(*args) - set_script_timeout(timeout) -> int - - - Changes the script timeout value. The script wait box dialog will be hidden and shown again when the timeout elapses. - See also L{disable_script_timeout}. - - @param timeout: This value is in seconds. - If this value is set to zero then the script will never timeout. - @return: Returns the old timeout value - -Help on function struct_unpack in module ida_idaapi: - -struct_unpack(buffer, signed=False, offs=0) - Unpack a buffer given its length and offset using struct.unpack_from(). - This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' - If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. - -Help on function get_mark_comment in module ida_idc: - -get_mark_comment(*args) - get_mark_comment(slot) -> PyObject * - -Help on function get_marked_pos in module ida_idc: - -get_marked_pos(*args) - get_marked_pos(slot) -> ea_t - -Help on function mark_position in module ida_idc: - -mark_position(*args) - mark_position(ea, lnnum, x, y, slot, comment) - -Help on Appcall__ in module ida_idd object: - -class Appcall__(__builtin__.object) - | # ----------------------------------------------------------------------- - | - | Methods defined here: - | - | _Appcall____get_consts = __get_consts(self) - | - | __getattr__(self, name_or_ea) - | Allows you to call functions as if they were member functions (by returning a callable object) - | - | __getitem__(self, idx) - | Use self[func_name] syntax if the function name contains invalid characters for an attribute name - | See __getattr___ - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | UTF16(s) - | - | _Appcall____name_or_ea = __name_or_ea(name_or_ea) - | Function that accepts a name or an ea and checks if the address is enabled. - | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or - | - Raises an exception if the address is not enabled - | - | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) - | Function that accepts a tinfo_t object or type declaration as a string - | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object - | - Raises an exception if the declaration cannot be parsed - | - | array(type_name) - | Defines an array type. Later you need to pack() / unpack() - | - | buffer(str=None, size=0, fill='\x00') - | Creates a string buffer. The returned value (r) will be a byref object. - | Use r.value to get the contents and r.size to get the buffer's size - | - | byref(val) - | Method to create references to immutable objects - | Currently we support references to int/strings - | Objects need not be passed by reference (this will be done automatically) - | - | cleanup_appcall(tid=0) - | Equivalent to IDC's CleanupAppcall() - | - | cstr(val) - | - | get_appcall_options() - | Return the global Appcall options - | - | int64(v) - | Whenever a 64bit number is needed use this method to construct an object - | - | obj(**kwds) - | Returns an empty object or objects with attributes as passed via its keywords arguments - | - | proto(name_or_ea, proto_or_tinfo, flags=None) - | Allows you to instantiate an appcall (callable object) with the desired prototype - | @param name_or_ea: The name of the function (will be resolved with LocByName()) - | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed - | or the address is not resolvable - | - Returns a callbable Appcall instance with the given prototypes and flags - | - | set_appcall_options(opt) - | Method to change the Appcall options globally (not per Appcall) - | - | typedobj(typedecl_or_tinfo, ea=None) - | Returns an appcall object for a type (can be given as tinfo_t object or - | as a string declaration) - | One can then use retrieve() member method - | @param ea: Optional parameter that later can be used to retrieve the type - | @return: Appcall object or raises ValueError exception - | - | unicode = UTF16(s) - | - | valueof(name, default=0) - | Returns the numeric value of a given name string. - | If the name could not be resolved then the default value will be returned - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | Consts - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | APPCALL_DEBEV = 2 - | - | APPCALL_MANUAL = 1 - | - | APPCALL_TIMEOUT = 4 - | - | __name__ = 'Appcall__' - -Help on class Appcall__ in module ida_idd: - -class Appcall__(__builtin__.object) - | # ----------------------------------------------------------------------- - | - | Methods defined here: - | - | _Appcall____get_consts = __get_consts(self) - | - | __getattr__(self, name_or_ea) - | Allows you to call functions as if they were member functions (by returning a callable object) - | - | __getitem__(self, idx) - | Use self[func_name] syntax if the function name contains invalid characters for an attribute name - | See __getattr___ - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | UTF16(s) - | - | _Appcall____name_or_ea = __name_or_ea(name_or_ea) - | Function that accepts a name or an ea and checks if the address is enabled. - | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or - | - Raises an exception if the address is not enabled - | - | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) - | Function that accepts a tinfo_t object or type declaration as a string - | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object - | - Raises an exception if the declaration cannot be parsed - | - | array(type_name) - | Defines an array type. Later you need to pack() / unpack() - | - | buffer(str=None, size=0, fill='\x00') - | Creates a string buffer. The returned value (r) will be a byref object. - | Use r.value to get the contents and r.size to get the buffer's size - | - | byref(val) - | Method to create references to immutable objects - | Currently we support references to int/strings - | Objects need not be passed by reference (this will be done automatically) - | - | cleanup_appcall(tid=0) - | Equivalent to IDC's CleanupAppcall() - | - | cstr(val) - | - | get_appcall_options() - | Return the global Appcall options - | - | int64(v) - | Whenever a 64bit number is needed use this method to construct an object - | - | obj(**kwds) - | Returns an empty object or objects with attributes as passed via its keywords arguments - | - | proto(name_or_ea, proto_or_tinfo, flags=None) - | Allows you to instantiate an appcall (callable object) with the desired prototype - | @param name_or_ea: The name of the function (will be resolved with LocByName()) - | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed - | or the address is not resolvable - | - Returns a callbable Appcall instance with the given prototypes and flags - | - | set_appcall_options(opt) - | Method to change the Appcall options globally (not per Appcall) - | - | typedobj(typedecl_or_tinfo, ea=None) - | Returns an appcall object for a type (can be given as tinfo_t object or - | as a string declaration) - | One can then use retrieve() member method - | @param ea: Optional parameter that later can be used to retrieve the type - | @return: Appcall object or raises ValueError exception - | - | unicode = UTF16(s) - | - | valueof(name, default=0) - | Returns the numeric value of a given name string. - | If the name could not be resolved then the default value will be returned - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | Consts - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | APPCALL_DEBEV = 2 - | - | APPCALL_MANUAL = 1 - | - | APPCALL_TIMEOUT = 4 - | - | __name__ = 'Appcall__' - -Help on class Appcall_array__ in module ida_idd: - -class Appcall_array__(__builtin__.object) - | This class is used with Appcall.array() method - | - | Methods defined here: - | - | __init__(self, tp) - | - | pack(self, L) - | Packs a list or tuple into a byref buffer - | - | try_to_convert_to_list(self, obj) - | Is this object a list? We check for the existance of attribute zero and attribute self.size-1 - | - | unpack(self, buf, as_list=True) - | Unpacks an array back into a list or an object - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class Appcall_callable__ in module ida_idd: - -class Appcall_callable__(__builtin__.object) - | Helper class to issue appcalls using a natural syntax: - | appcall.FunctionNameInTheDatabase(arguments, ....) - | or - | appcall["Function@8"](arguments, ...) - | or - | f8 = appcall["Function@8"] - | f8(arg1, arg2, ...) - | or - | o = appcall.obj() - | i = byref(5) - | appcall.funcname(arg1, i, "hello", o) - | - | Methods defined here: - | - | _Appcall_callable____get_ea = __get_ea(self) - | - | _Appcall_callable____get_fields = __get_fields(self) - | - | _Appcall_callable____get_options = __get_options(self) - | - | _Appcall_callable____get_size = __get_size(self) - | - | _Appcall_callable____get_tif = __get_tif(self) - | - | _Appcall_callable____get_timeout = __get_timeout(self) - | - | _Appcall_callable____get_type = __get_type(self) - | - | _Appcall_callable____set_ea = __set_ea(self, val) - | - | _Appcall_callable____set_options = __set_options(self, v) - | - | _Appcall_callable____set_timeout = __set_timeout(self, v) - | - | __call__(self, *args) - | Make object callable. We redirect execution to idaapi.appcall() - | - | __init__(self, ea, tinfo_or_typestr=None, fields=None) - | Initializes an appcall with a given function ea - | - | retrieve(self, src=None, flags=0) - | Unpacks a typed object from the database if an ea is given or from a string if a string was passed - | @param src: the address of the object or a string - | @return: Returns a tuple of boolean and object or error number (Bool, Error | Object). - | - | store(self, obj, dest_ea=None, base_ea=0, flags=0) - | Packs an object into a given ea if provided or into a string if no address was passed. - | @param obj: The object to pack - | @param dest_ea: If packing to idb this will be the store location - | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers - | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) - | - If packing to the database then a return code is returned (0 is success) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | - | fields - | - | options - | - | size - | - | tif - | - | timeout - | - | type - -Help on class Appcall_consts__ in module ida_idd: - -class Appcall_consts__(__builtin__.object) - | Helper class used by Appcall.Consts attribute - | It is used to retrieve constants via attribute access - | - | Methods defined here: - | - | __getattr__(self, attr) - | - | __init__(self, default=None) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function appcall in module ida_idd: - -appcall(*args) - appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * - -Help on class bptaddr_t in module ida_idd: - -class bptaddr_t(__builtin__.object) - | Proxy of C++ bptaddr_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bptaddr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hea - | bptaddr_t_hea_get(self) -> ea_t - | - | kea - | bptaddr_t_kea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bptaddr_t(self) - -Help on class call_stack_info_t in module ida_idd: - -class call_stack_info_t(__builtin__.object) - | Proxy of C++ call_stack_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> call_stack_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | callea - | call_stack_info_t_callea_get(self) -> ea_t - | - | fp - | call_stack_info_t_fp_get(self) -> ea_t - | - | funcea - | call_stack_info_t_funcea_get(self) -> ea_t - | - | funcok - | call_stack_info_t_funcok_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_call_stack_info_t(self) - -Help on class call_stack_t in module ida_idd: - -class call_stack_t(__builtin__.object) - | Proxy of C++ qvector< call_stack_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> call_stack_info_t - | - | __init__(self, *args) - | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> call_stack_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t - | - | erase(self, *args) - | erase(self, it) -> call_stack_info_t - | erase(self, first, last) -> call_stack_info_t - | - | extract(self, *args) - | extract(self) -> call_stack_info_t - | - | find(self, *args) - | find(self, x) -> call_stack_info_t - | find(self, x) -> call_stack_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=call_stack_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> call_stack_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> call_stack_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_call_stack_t(self) - -Help on function can_exc_continue in module ida_idd: - -can_exc_continue(*args) - can_exc_continue(ev) -> bool - -Help on function cleanup_appcall in module ida_idd: - -cleanup_appcall(*args) - cleanup_appcall(tid) -> error_t - - - Cleanup after manual appcall. - - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code - -Help on function dbg_appcall in module ida_idd: - -dbg_appcall(*args) - dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - - - Call a function from the debugged application. - - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code - -Help on built-in function dbg_can_query in module _ida_dbg: - -dbg_can_query(...) - dbg_can_query() -> bool - -Help on function dbg_get_memory_info in module ida_idd: - -dbg_get_memory_info(*args) - dbg_get_memory_info() -> PyObject * - - - This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active - tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) - -Help on function dbg_get_name in module ida_idd: - -dbg_get_name(*args) - dbg_get_name() -> PyObject * - - - This function returns the current debugger's name. - @return: Debugger name or None if no debugger is active - -Help on function dbg_get_registers in module ida_idd: - -dbg_get_registers(*args) - dbg_get_registers() -> PyObject * - - - This function returns the register definition from the currently loaded debugger. - Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded - tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) - The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) - -Help on function dbg_get_thread_sreg_base in module ida_idd: - -dbg_get_thread_sreg_base(*args) - dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * - - - Returns the segment register base value - @param tid: thread id - @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' - - Or None on failure - -Help on function dbg_read_memory in module ida_idd: - -dbg_read_memory(*args) - dbg_read_memory(ea, sz) -> PyObject * - - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) - - Or None on failure - -Help on function dbg_write_memory in module ida_idd: - -dbg_write_memory(*args) - dbg_write_memory(ea, buf) -> PyObject * - - - Writes a buffer to the debugee's memory - @return: Boolean - -Help on class debapp_attrs_t in module ida_idd: - -class debapp_attrs_t(__builtin__.object) - | Proxy of C++ debapp_attrs_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> debapp_attrs_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | addrsize - | debapp_attrs_t_addrsize_get(self) -> int - | - | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 - | - | is_be - | debapp_attrs_t_is_be_get(self) -> int - | - | platform - | debapp_attrs_t_platform_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_debapp_attrs_t(self) - -Help on class debug_event_t in module ida_idd: - -class debug_event_t(__builtin__.object) - | Proxy of C++ debug_event_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> debug_event_t - | __init__(self, r) -> debug_event_t - | - | __repr__ = _swig_repr(self) - | - | bpt(self, *args) - | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t - | - | bpt_ea(self, *args) - | bpt_ea(self) -> ea_t - | - | clear(self, *args) - | clear(self) - | - | clear_all(self, *args) - | clear_all(self) - | - | copy(self, *args) - | copy(self, r) -> debug_event_t - | - | eid(self, *args) - | eid(self) -> event_id_t - | - | exc(self, *args) - | exc(self) -> excinfo_t - | exc(self) -> excinfo_t - | - | exit_code(self, *args) - | exit_code(self) -> int const & - | - | info(self, *args) - | info(self) -> qstring - | info(self) -> qstring const & - | - | modinfo(self, *args) - | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t - | - | set_bpt(self, *args) - | set_bpt(self) -> bptaddr_t - | - | set_eid(self, *args) - | set_eid(self, id) - | - | set_exception(self, *args) - | set_exception(self) -> excinfo_t - | - | set_exit_code(self, *args) - | set_exit_code(self, id, code) - | - | set_info(self, *args) - | set_info(self, id) -> qstring & - | - | set_modinfo(self, *args) - | set_modinfo(self, id) -> modinfo_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | debug_event_t_ea_get(self) -> ea_t - | - | handled - | debug_event_t_handled_get(self) -> bool - | - | pid - | debug_event_t_pid_get(self) -> pid_t - | - | thisown - | The membership flag - | - | tid - | debug_event_t_tid_get(self) -> thid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_debug_event_t(self) - -Help on class exception_info_t in module ida_idd: - -class exception_info_t(__builtin__.object) - | Proxy of C++ exception_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> exception_info_t - | __init__(self, _code, _flags, _name, _desc) -> exception_info_t - | - | __repr__ = _swig_repr(self) - | - | break_on(self, *args) - | break_on(self) -> bool - | - | handle(self, *args) - | handle(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | code - | exception_info_t_code_get(self) -> uint - | - | desc - | exception_info_t_desc_get(self) -> qstring * - | - | flags - | exception_info_t_flags_get(self) -> uint32 - | - | name - | exception_info_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_exception_info_t(self) - -Help on class excinfo_t in module ida_idd: - -class excinfo_t(__builtin__.object) - | Proxy of C++ excinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> excinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | can_cont - | excinfo_t_can_cont_get(self) -> bool - | - | code - | excinfo_t_code_get(self) -> uint32 - | - | ea - | excinfo_t_ea_get(self) -> ea_t - | - | info - | excinfo_t_info_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_excinfo_t(self) - -Help on class excvec_t in module ida_idd: - -class excvec_t(__builtin__.object) - | Proxy of C++ qvector< exception_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> exception_info_t - | - | __init__(self, *args) - | __init__(self) -> excvec_t - | __init__(self, x) -> excvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> exception_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> exception_info_t - | begin(self) -> exception_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> exception_info_t - | end(self) -> exception_info_t - | - | erase(self, *args) - | erase(self, it) -> exception_info_t - | erase(self, first, last) -> exception_info_t - | - | extract(self, *args) - | extract(self) -> exception_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=exception_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> exception_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> exception_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_excvec_t(self) - -Help on function get_event_bpt_hea in module ida_idd: - -get_event_bpt_hea(*args) - get_event_bpt_hea(ev) -> ea_t - -Help on function get_event_exc_code in module ida_idd: - -get_event_exc_code(*args) - get_event_exc_code(ev) -> uint - -Help on function get_event_exc_ea in module ida_idd: - -get_event_exc_ea(*args) - get_event_exc_ea(ev) -> ea_t - -Help on function get_event_exc_info in module ida_idd: - -get_event_exc_info(*args) - get_event_exc_info(ev) -> str - -Help on function get_event_info in module ida_idd: - -get_event_info(*args) - get_event_info(ev) -> str - -Help on function get_event_module_base in module ida_idd: - -get_event_module_base(*args) - get_event_module_base(ev) -> ea_t - -Help on function get_event_module_name in module ida_idd: - -get_event_module_name(*args) - get_event_module_name(ev) -> str - -Help on function get_event_module_size in module ida_idd: - -get_event_module_size(*args) - get_event_module_size(ev) -> asize_t - -Help on class meminfo_vec_t in module ida_idd: - -class meminfo_vec_t(__builtin__.object) - | Proxy of C++ qvector< memory_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> memory_info_t - | - | __init__(self, *args) - | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> memory_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> memory_info_t - | begin(self) -> memory_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> memory_info_t - | end(self) -> memory_info_t - | - | erase(self, *args) - | erase(self, it) -> memory_info_t - | erase(self, first, last) -> memory_info_t - | - | extract(self, *args) - | extract(self) -> memory_info_t - | - | find(self, *args) - | find(self, x) -> memory_info_t - | find(self, x) -> memory_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=memory_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> memory_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> memory_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_meminfo_vec_t(self) - -Help on class memory_info_t in module ida_idd: - -class memory_info_t(ida_range.range_t) - | Proxy of C++ memory_info_t class. - | - | Method resolution order: - | memory_info_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> memory_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bitness - | memory_info_t_bitness_get(self) -> uchar - | - | name - | memory_info_t_name_get(self) -> qstring * - | - | perm - | memory_info_t_perm_get(self) -> uchar - | - | sbase - | memory_info_t_sbase_get(self) -> ea_t - | - | sclass - | memory_info_t_sclass_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_memory_info_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on class modinfo_t in module ida_idd: - -class modinfo_t(__builtin__.object) - | Proxy of C++ modinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> modinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | base - | modinfo_t_base_get(self) -> ea_t - | - | name - | modinfo_t_name_get(self) -> qstring * - | - | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t - | - | size - | modinfo_t_size_get(self) -> asize_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_modinfo_t(self) - -Help on class process_info_t in module ida_idd: - -class process_info_t(__builtin__.object) - | Proxy of C++ process_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> process_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | process_info_t_name_get(self) -> qstring * - | - | pid - | process_info_t_pid_get(self) -> pid_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_process_info_t(self) - -Help on class procinfo_vec_t in module ida_idd: - -class procinfo_vec_t(__builtin__.object) - | Proxy of C++ qvector< process_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> process_info_t - | - | __init__(self, *args) - | __init__(self) -> procinfo_vec_t - | __init__(self, x) -> procinfo_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> process_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> process_info_t - | begin(self) -> process_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> process_info_t - | end(self) -> process_info_t - | - | erase(self, *args) - | erase(self, it) -> process_info_t - | erase(self, first, last) -> process_info_t - | - | extract(self, *args) - | extract(self) -> process_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=process_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> process_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> process_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_procinfo_vec_t(self) - -Help on class register_info_t in module ida_idd: - -class register_info_t(__builtin__.object) - | Proxy of C++ register_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> register_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * - | - | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t - | - | dtype - | register_info_t_dtype_get(self) -> op_dtype_t - | - | flags - | register_info_t_flags_get(self) -> uint32 - | - | name - | register_info_t_name_get(self) -> char const * - | - | register_class - | register_info_t_register_class_get(self) -> register_class_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_register_info_t(self) - -Help on class regval_t in module ida_idd: - -class regval_t(__builtin__.object) - | Proxy of C++ regval_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> regval_t - | __init__(self, r) -> regval_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | bytes(self, *args) - | bytes(self) -> bytevec_t - | bytes(self) -> bytevec_t const & - | - | clear(self, *args) - | clear(self) - | - | get_data(self, *args) - | get_data(self) - | get_data(self) -> void const * - | - | get_data_size(self, *args) - | get_data_size(self) -> size_t - | - | set_bytes(self, *args) - | set_bytes(self, data, size) - | set_bytes(self, v) - | set_bytes(self) -> bytevec_t & - | - | set_float(self, *args) - | set_float(self, x) - | - | set_int(self, *args) - | set_int(self, x) - | - | set_unavailable(self, *args) - | set_unavailable(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fval - | regval_t_fval_get(self) -> uint16 [6] - | - | ival - | regval_t_ival_get(self) -> uint64 - | - | rvtype - | regval_t_rvtype_get(self) -> int32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regval_t(self) - -Help on class scattered_segm_t in module ida_idd: - -class scattered_segm_t(ida_range.range_t) - | Proxy of C++ scattered_segm_t class. - | - | Method resolution order: - | scattered_segm_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> scattered_segm_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | name - | scattered_segm_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_scattered_segm_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function set_debug_event_code in module ida_idd: - -set_debug_event_code(*args) - set_debug_event_code(ev, id) - -Help on class thread_name_t in module ida_idd: - -class thread_name_t(__builtin__.object) - | Proxy of C++ thread_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> thread_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | thread_name_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | tid - | thread_name_t_tid_get(self) -> thid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_thread_name_t(self) - -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception -""" - -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" - -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" - -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" - -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" - -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -other values mean custom data type - -unavailable -""" -=== ida_idd EPYDOC INJECTIONS END === -Help on function AssembleLine in module ida_idp: - -AssembleLine(*args) - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * - - - Assemble an instruction to a string (display a warning if an error is found) - - @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction - @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure - - or a string containing the assembled instruction - -Help on class IDB_Hooks in module ida_idp: - -class IDB_Hooks(__builtin__.object) - | Proxy of C++ IDB_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> IDB_Hooks - | - | __repr__ = _swig_repr(self) - | - | allsegs_moved(self, *args) - | allsegs_moved(self, info) - | - | auto_empty(self, *args) - | auto_empty(self) - | - | auto_empty_finally(self, *args) - | auto_empty_finally(self) - | - | bookmark_changed(self, *args) - | bookmark_changed(self, index, pos, desc) - | - | byte_patched(self, *args) - | byte_patched(self, ea, old_value) - | - | callee_addr_changed(self, *args) - | callee_addr_changed(self, ea, callee) - | - | changing_cmt(self, *args) - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | - | changing_enum_bf(self, *args) - | changing_enum_bf(self, id, new_bf) - | - | changing_enum_cmt(self, *args) - | changing_enum_cmt(self, id, repeatable, newcmt) - | - | changing_op_ti(self, *args) - | changing_op_ti(self, ea, n, new_type, new_fnames) - | - | changing_op_type(self, *args) - | changing_op_type(self, ea, n, opinfo) - | - | changing_range_cmt(self, *args) - | changing_range_cmt(self, kind, a, cmt, repeatable) - | - | changing_segm_class(self, *args) - | changing_segm_class(self, s) - | - | changing_segm_end(self, *args) - | changing_segm_end(self, s, new_end, segmod_flags) - | - | changing_segm_name(self, *args) - | changing_segm_name(self, s, oldname) - | - | changing_segm_start(self, *args) - | changing_segm_start(self, s, new_start, segmod_flags) - | - | changing_struc_align(self, *args) - | changing_struc_align(self, sptr) - | - | changing_struc_cmt(self, *args) - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | - | changing_struc_member(self, *args) - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | - | changing_ti(self, *args) - | changing_ti(self, ea, new_type, new_fnames) - | - | closebase(self, *args) - | closebase(self) - | - | cmt_changed(self, *args) - | cmt_changed(self, ea, repeatable_cmt) - | - | compiler_changed(self, *args) - | compiler_changed(self) - | - | deleting_enum(self, *args) - | deleting_enum(self, id) - | - | deleting_enum_member(self, *args) - | deleting_enum_member(self, id, cid) - | - | deleting_func(self, *args) - | deleting_func(self, pfn) - | - | deleting_func_tail(self, *args) - | deleting_func_tail(self, pfn, tail) - | - | deleting_segm(self, *args) - | deleting_segm(self, start_ea) - | - | deleting_struc(self, *args) - | deleting_struc(self, sptr) - | - | deleting_struc_member(self, *args) - | deleting_struc_member(self, sptr, mptr) - | - | deleting_tryblks(self, *args) - | deleting_tryblks(self, range) - | - | destroyed_items(self, *args) - | destroyed_items(self, ea1, ea2, will_disable_range) - | - | determined_main(self, *args) - | determined_main(self, main) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | enum_bf_changed(self, *args) - | enum_bf_changed(self, id) - | - | enum_cmt_changed(self, *args) - | enum_cmt_changed(self, id, repeatable) - | - | enum_created(self, *args) - | enum_created(self, id) - | - | enum_deleted(self, *args) - | enum_deleted(self, id) - | - | enum_member_created(self, *args) - | enum_member_created(self, id, cid) - | - | enum_member_deleted(self, *args) - | enum_member_deleted(self, id, cid) - | - | enum_renamed(self, *args) - | enum_renamed(self, id) - | - | expanding_struc(self, *args) - | expanding_struc(self, sptr, offset, delta) - | - | extlang_changed(self, *args) - | extlang_changed(self, kind, el, idx) - | - | extra_cmt_changed(self, *args) - | extra_cmt_changed(self, ea, line_idx, cmt) - | - | flow_chart_created(self, *args) - | flow_chart_created(self, fc) - | - | frame_deleted(self, *args) - | frame_deleted(self, pfn) - | - | func_added(self, *args) - | func_added(self, pfn) - | - | func_noret_changed(self, *args) - | func_noret_changed(self, pfn) - | - | func_tail_appended(self, *args) - | func_tail_appended(self, pfn, tail) - | - | func_tail_deleted(self, *args) - | func_tail_deleted(self, pfn, tail_ea) - | - | func_updated(self, *args) - | func_updated(self, pfn) - | - | hook(self, *args) - | hook(self) -> bool - | - | idasgn_loaded(self, *args) - | idasgn_loaded(self, short_sig_name) - | - | item_color_changed(self, *args) - | item_color_changed(self, ea, color) - | - | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) - | - | loader_finished(self, *args) - | loader_finished(self, li, neflags, filetypename) - | - | local_types_changed(self, *args) - | local_types_changed(self) - | - | make_code(self, *args) - | make_code(self, insn) - | - | make_data(self, *args) - | make_data(self, ea, flags, tid, len) - | - | op_ti_changed(self, *args) - | op_ti_changed(self, ea, n, type, fnames) - | - | op_type_changed(self, *args) - | op_type_changed(self, ea, n) - | - | range_cmt_changed(self, *args) - | range_cmt_changed(self, kind, a, cmt, repeatable) - | - | renamed(self, *args) - | renamed(self, ea, new_name, local_name) - | - | renaming_enum(self, *args) - | renaming_enum(self, id, is_enum, newname) - | - | renaming_struc(self, *args) - | renaming_struc(self, id, oldname, newname) - | - | renaming_struc_member(self, *args) - | renaming_struc_member(self, sptr, mptr, newname) - | - | savebase(self, *args) - | savebase(self) - | - | segm_added(self, *args) - | segm_added(self, s) - | - | segm_attrs_updated(self, *args) - | segm_attrs_updated(self, s) - | - | segm_class_changed(self, *args) - | segm_class_changed(self, s, sclass) - | - | segm_deleted(self, *args) - | segm_deleted(self, start_ea, end_ea) - | - | segm_end_changed(self, *args) - | segm_end_changed(self, s, oldend) - | - | segm_moved(self, *args) - | segm_moved(self, _from, to, size, changed_netmap) - | - | segm_name_changed(self, *args) - | segm_name_changed(self, s, name) - | - | segm_start_changed(self, *args) - | segm_start_changed(self, s, oldstart) - | - | set_func_end(self, *args) - | set_func_end(self, pfn, new_end) - | - | set_func_start(self, *args) - | set_func_start(self, pfn, new_start) - | - | sgr_changed(self, *args) - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | - | sgr_deleted(self, *args) - | sgr_deleted(self, start_ea, end_ea, regnum) - | - | stkpnts_changed(self, *args) - | stkpnts_changed(self, pfn) - | - | struc_align_changed(self, *args) - | struc_align_changed(self, sptr) - | - | struc_cmt_changed(self, *args) - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | - | struc_created(self, *args) - | struc_created(self, struc_id) - | - | struc_deleted(self, *args) - | struc_deleted(self, struc_id) - | - | struc_expanded(self, *args) - | struc_expanded(self, sptr) - | - | struc_member_changed(self, *args) - | struc_member_changed(self, sptr, mptr) - | - | struc_member_created(self, *args) - | struc_member_created(self, sptr, mptr) - | - | struc_member_deleted(self, *args) - | struc_member_deleted(self, sptr, member_id, offset) - | - | struc_member_renamed(self, *args) - | struc_member_renamed(self, sptr, mptr) - | - | struc_renamed(self, *args) - | struc_renamed(self, sptr) - | - | tail_owner_changed(self, *args) - | tail_owner_changed(self, tail, owner_func, old_owner) - | - | thunk_func_created(self, *args) - | thunk_func_created(self, pfn) - | - | ti_changed(self, *args) - | ti_changed(self, ea, type, fnames) - | - | tryblks_updated(self, *args) - | tryblks_updated(self, tbv) - | - | unhook(self, *args) - | unhook(self) -> bool - | - | updating_tryblks(self, *args) - | updating_tryblks(self, tbv) - | - | upgraded(self, *args) - | upgraded(self, _from) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_IDB_Hooks(self) - -Help on class IDP_Hooks in module ida_idp: - -class IDP_Hooks(__builtin__.object) - | Proxy of C++ IDP_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> IDP_Hooks - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | ev_add_cref(self, *args) - | ev_add_cref(self, _from, to, type) -> int - | - | ev_add_dref(self, *args) - | ev_add_dref(self, _from, to, type) -> int - | - | ev_adjust_argloc(self, *args) - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | - | ev_adjust_libfunc_ea(self, *args) - | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | - | ev_adjust_refinfo(self, *args) - | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | - | ev_ana_insn(self, *args) - | ev_ana_insn(self, out) -> bool - | - | - | Analyzes and decodes an instruction at insn.ea - | - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - | - insn.size must be set to the instruction length - | - | @return: Boolean - | - False if the instruction is not recognized - | - True if the instruction was decoded. 'insn' should be filled in that case. - | - | ev_analyze_prolog(self, *args) - | ev_analyze_prolog(self, ea) -> int - | - | ev_arg_addrs_ready(self, *args) - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | - | ev_assemble(self, *args) - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | - | - | Assembles an instruction - | - | @param ea: linear address of instruction - | @param cs: cs of instruction - | @param ip: ip of instruction - | @param use32: is 32bit segment? - | @param line: line to assemble - | - | @return: - None to let the underlying processor module assemble the line - | - or a string containing the assembled buffer - | - | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) - | - | ev_calc_arglocs(self, *args) - | ev_calc_arglocs(self, fti) -> int - | - | ev_calc_cdecl_purged_bytes(self, *args) - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | - | ev_calc_next_eas(self, *args) - | ev_calc_next_eas(self, res, insn, over) -> int - | - | ev_calc_purged_bytes(self, *args) - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | - | ev_calc_retloc(self, *args) - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | - | ev_calc_spdelta(self, *args) - | ev_calc_spdelta(self, spdelta, insn) -> int - | - | ev_calc_step_over(self, *args) - | ev_calc_step_over(self, target, ip) -> int - | - | ev_calc_switch_cases(self, *args) - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | - | ev_calc_varglocs(self, *args) - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | - | ev_calcrel(self, *args) - | ev_calcrel(self) -> int - | - | ev_can_have_type(self, *args) - | ev_can_have_type(self, op) -> int - | - | ev_clean_tbit(self, *args) - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | - | ev_cmp_operands(self, *args) - | ev_cmp_operands(self, op1, op2) -> int - | - | ev_coagulate(self, *args) - | ev_coagulate(self, start_ea) -> int - | - | ev_coagulate_dref(self, *args) - | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | - | ev_create_flat_group(self, *args) - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | - | ev_create_func_frame(self, *args) - | ev_create_func_frame(self, pfn) -> int - | - | ev_create_switch_xrefs(self, *args) - | ev_create_switch_xrefs(self, jumpea, si) -> int - | - | ev_creating_segm(self, *args) - | ev_creating_segm(self, seg) -> int - | - | ev_decorate_name(self, *args) - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | - | ev_del_cref(self, *args) - | ev_del_cref(self, _from, to, expand) -> int - | - | ev_del_dref(self, *args) - | ev_del_dref(self, _from, to) -> int - | - | ev_delay_slot_insn(self, *args) - | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | - | ev_demangle_name(self, *args) - | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | - | ev_emu_insn(self, *args) - | ev_emu_insn(self, insn) -> bool - | - | - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this function - | all information about the instruction is in 'insn' structure. - | - | @return: Boolean (whether this instruction has been emulated or not) - | - | ev_endbinary(self, *args) - | ev_endbinary(self, ok) -> int - | - | ev_ending_undo(self, *args) - | ev_ending_undo(self, action_name, is_undo) -> int - | - | ev_equal_reglocs(self, *args) - | ev_equal_reglocs(self, a1, a2) -> int - | - | ev_extract_address(self, *args) - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | - | ev_find_op_value(self, *args) - | ev_find_op_value(self, pinsn, opn) -> PyObject * - | - | ev_find_reg_value(self, *args) - | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | - | ev_func_bounds(self, *args) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) - | - | ev_gen_asm_or_lst(self, *args) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) - | - | ev_gen_map_file(self, *args) - | ev_gen_map_file(self, nlines, fp) -> int - | - | ev_gen_regvar_def(self, *args) - | ev_gen_regvar_def(self, outctx, v) -> int - | - | ev_gen_src_file_lnnum(self, *args) - | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | - | ev_gen_stkvar_def(self, *args) - | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | - | ev_get_abi_info(self, *args) - | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | - | ev_get_autocmt(self, *args) - | ev_get_autocmt(self, insn) -> PyObject * - | - | ev_get_bg_color(self, *args) - | ev_get_bg_color(self, ea) -> int or None - | - | ev_get_cc_regs(self, *args) - | ev_get_cc_regs(self, regs, cc) -> int - | - | ev_get_code16_mode(self, *args) - | ev_get_code16_mode(self, ea) -> int - | - | ev_get_dbr_opnum(self, *args) - | ev_get_dbr_opnum(self, opnum, insn) -> int - | - | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int - | - | ev_get_frame_retsize(self, *args) - | ev_get_frame_retsize(self, frsize, pfn) -> int - | - | ev_get_macro_insn_head(self, *args) - | ev_get_macro_insn_head(self, head, ip) -> int - | - | ev_get_operand_string(self, *args) - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | - | ev_get_reg_info(self, *args) - | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | - | ev_get_reg_name(self, *args) - | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | - | ev_get_simd_types(self, *args) - | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | - | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int - | - | ev_get_stkvar_scale_factor(self, *args) - | ev_get_stkvar_scale_factor(self) -> int - | - | ev_getreg(self, *args) - | ev_getreg(self, regval, regnum) -> int - | - | ev_init(self, *args) - | ev_init(self, idp_modname) -> int - | - | ev_insn_reads_tbit(self, *args) - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | - | ev_is_align_insn(self, *args) - | ev_is_align_insn(self, ea) -> int - | - | ev_is_alloca_probe(self, *args) - | ev_is_alloca_probe(self, ea) -> int - | - | ev_is_basic_block_end(self, *args) - | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | - | ev_is_call_insn(self, *args) - | ev_is_call_insn(self, insn) -> int - | - | - | Is the instruction a "call"? - | - | @param insn: instruction - | @return: 0-unknown, 1-yes, -1-no - | - | ev_is_cond_insn(self, *args) - | ev_is_cond_insn(self, insn) -> int - | - | ev_is_far_jump(self, *args) - | ev_is_far_jump(self, icode) -> int - | - | ev_is_indirect_jump(self, *args) - | ev_is_indirect_jump(self, insn) -> int - | - | ev_is_insn_table_jump(self, *args) - | ev_is_insn_table_jump(self, insn) -> int - | - | ev_is_jump_func(self, *args) - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | - | ev_is_ret_insn(self, *args) - | ev_is_ret_insn(self, insn, strict) -> int - | - | - | Is the instruction a "return"? - | - | @param insn: instruction - | @param strict: - True: report only ret instructions - | False: include instructions like "leave" which begins the function epilog - | @return: 0-unknown, 1-yes, -1-no - | - | ev_is_sane_insn(self, *args) - | ev_is_sane_insn(self, insn, no_crefs) -> int - | - | - | is the instruction sane for the current file type? - | @param insn: the instruction - | @param no_crefs: - | - 1: the instruction has no code refs to it. - | ida just tries to convert unexplored bytes - | to an instruction (but there is no other - | reason to convert them into an instruction) - | - 0: the instruction is created because - | of some coderef, user request or another - | weighty reason. - | @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program - | - | ev_is_sp_based(self, *args) - | ev_is_sp_based(self, mode, insn, op) -> int - | - | ev_is_switch(self, *args) - | ev_is_switch(self, si, insn) -> int - | - | ev_last_cb_before_loader(self, *args) - | ev_last_cb_before_loader(self) -> int - | - | ev_loader(self, *args) - | ev_loader(self) -> int - | - | ev_lower_func_type(self, *args) - | ev_lower_func_type(self, argnums, fti) -> int - | - | ev_max_ptr_size(self, *args) - | ev_max_ptr_size(self) -> int - | - | ev_may_be_func(self, *args) - | ev_may_be_func(self, insn, state) -> int - | - | - | Can a function start here? - | @param insn: the instruction - | @param state: autoanalysis phase - | 0: creating functions - | 1: creating chunks - | - | @return: integer (probability 0..100) - | - | ev_may_show_sreg(self, *args) - | ev_may_show_sreg(self, current_ea) -> int - | - | ev_moving_segm(self, *args) - | ev_moving_segm(self, seg, to, flags) -> int - | - | ev_newasm(self, *args) - | ev_newasm(self, asmnum) -> int - | - | ev_newbinary(self, *args) - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | - | ev_newfile(self, *args) - | ev_newfile(self, fname) -> int - | - | ev_newprc(self, *args) - | ev_newprc(self, pnum, keep_cfg) -> int - | - | ev_next_exec_insn(self, *args) - | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | - | ev_oldfile(self, *args) - | ev_oldfile(self, fname) -> int - | - | ev_out_assumes(self, *args) - | ev_out_assumes(self, outctx) -> int - | - | ev_out_data(self, *args) - | ev_out_data(self, outctx, analyze_only) -> int - | - | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) - | - | ev_out_header(self, *args) - | ev_out_header(self, outctx) - | - | ev_out_insn(self, *args) - | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) - | - | ev_out_label(self, *args) - | ev_out_label(self, outctx, colored_name) -> int - | - | ev_out_mnem(self, *args) - | ev_out_mnem(self, outctx) -> int - | - | ev_out_operand(self, *args) - | ev_out_operand(self, outctx, op) -> bool - | - | - | Notification to generate operand text. - | If False was returned, then the standard operand output function will be called. - | - | this notification may use out_...() functions to form the operand text - | - | @return: Boolean (whether the operand has been outputted or not) - | - | ev_out_segend(self, *args) - | ev_out_segend(self, outctx, seg) -> int - | - | ev_out_segstart(self, *args) - | ev_out_segstart(self, outctx, seg) -> int - | - | ev_out_special_item(self, *args) - | ev_out_special_item(self, outctx, segtype) -> int - | - | ev_realcvt(self, *args) - | ev_realcvt(self, m, e, swt) -> int - | - | ev_rename(self, *args) - | ev_rename(self, ea, new_name) -> int - | - | - | The kernel is going to rename a byte. - | - | @param ea: Address - | @param new_name: The new name - | - | @return: - | - If returns value <0, then the kernel should - | not rename it. See also the 'renamed' event - | - | ev_replaying_undo(self, *args) - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | - | ev_set_code16_mode(self, *args) - | ev_set_code16_mode(self, ea, code16) -> int - | - | ev_set_idp_options(self, *args) - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int - | - | ev_set_proc_options(self, *args) - | ev_set_proc_options(self, options, confidence) -> int - | - | ev_setup_til(self, *args) - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | - | ev_str2reg(self, *args) - | ev_str2reg(self, regname) -> int - | - | ev_term(self, *args) - | ev_term(self) -> int - | - | ev_treat_hindering_item(self, *args) - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | - | ev_undefine(self, *args) - | ev_undefine(self, ea) -> int - | - | - | An item in the database (insn or data) is being deleted - | @param ea: Address - | @return: - | - 1 - do not delete srranges at the item end - | - 0 - srranges can be deleted - | - | ev_use_arg_types(self, *args) - | ev_use_arg_types(self, ea, fti, rargs) -> int - | - | ev_use_regarg_type(self, *args) - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | - | ev_use_stkarg_type(self, *args) - | ev_use_stkarg_type(self, ea, arg) -> int - | - | ev_validate_flirt_func(self, *args) - | ev_validate_flirt_func(self, start_ea, funcname) -> int - | - | ev_verify_noreturn(self, *args) - | ev_verify_noreturn(self, pfn) -> int - | - | ev_verify_sp(self, *args) - | ev_verify_sp(self, pfn) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success - | - | unhook(self, *args) - | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_IDP_Hooks(self) - -Help on class __ph in module ida_idp: - -class __ph(__builtin__.object) - | # ---------------------------------------------------------------------- - | - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cnbits - | - | dnbits - | - | flag - | - | icode_return - | - | id - | - | instruc - | - | instruc_end - | - | instruc_start - | - | reg_code_sreg - | - | reg_data_sreg - | - | reg_first_sreg - | - | reg_last_sreg - | - | regnames - | - | segreg_size - | - | tbyte_size - | - | version - -Help on class _notify_when_dispatcher_t in module ida_idp: - -class _notify_when_dispatcher_t - | Methods defined here: - | - | __init__(self) - | - | _find(self, fun) - | - | dispatch(self, slot, *args) - | - | notify_when(self, when, fun) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | _IDB_Hooks = - | - | - | _IDP_Hooks = - | - | - | _callback_t = - -Help on class _processor_t_Trampoline_IDB_Hooks in module ida_idp: - -class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) - | Method resolution order: - | _processor_t_Trampoline_IDB_Hooks - | IDB_Hooks - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, proc) - | - | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) - | - | _processor_t_Trampoline_IDB_Hooks__make_parent_caller = __make_parent_caller(self, key) - | - | ---------------------------------------------------------------------- - | Methods inherited from IDB_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | allsegs_moved(self, *args) - | allsegs_moved(self, info) - | - | auto_empty(self, *args) - | auto_empty(self) - | - | auto_empty_finally(self, *args) - | auto_empty_finally(self) - | - | bookmark_changed(self, *args) - | bookmark_changed(self, index, pos, desc) - | - | byte_patched(self, *args) - | byte_patched(self, ea, old_value) - | - | callee_addr_changed(self, *args) - | callee_addr_changed(self, ea, callee) - | - | changing_cmt(self, *args) - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | - | changing_enum_bf(self, *args) - | changing_enum_bf(self, id, new_bf) - | - | changing_enum_cmt(self, *args) - | changing_enum_cmt(self, id, repeatable, newcmt) - | - | changing_op_ti(self, *args) - | changing_op_ti(self, ea, n, new_type, new_fnames) - | - | changing_op_type(self, *args) - | changing_op_type(self, ea, n, opinfo) - | - | changing_range_cmt(self, *args) - | changing_range_cmt(self, kind, a, cmt, repeatable) - | - | changing_segm_class(self, *args) - | changing_segm_class(self, s) - | - | changing_segm_end(self, *args) - | changing_segm_end(self, s, new_end, segmod_flags) - | - | changing_segm_name(self, *args) - | changing_segm_name(self, s, oldname) - | - | changing_segm_start(self, *args) - | changing_segm_start(self, s, new_start, segmod_flags) - | - | changing_struc_align(self, *args) - | changing_struc_align(self, sptr) - | - | changing_struc_cmt(self, *args) - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | - | changing_struc_member(self, *args) - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | - | changing_ti(self, *args) - | changing_ti(self, ea, new_type, new_fnames) - | - | closebase(self, *args) - | closebase(self) - | - | cmt_changed(self, *args) - | cmt_changed(self, ea, repeatable_cmt) - | - | compiler_changed(self, *args) - | compiler_changed(self) - | - | deleting_enum(self, *args) - | deleting_enum(self, id) - | - | deleting_enum_member(self, *args) - | deleting_enum_member(self, id, cid) - | - | deleting_func(self, *args) - | deleting_func(self, pfn) - | - | deleting_func_tail(self, *args) - | deleting_func_tail(self, pfn, tail) - | - | deleting_segm(self, *args) - | deleting_segm(self, start_ea) - | - | deleting_struc(self, *args) - | deleting_struc(self, sptr) - | - | deleting_struc_member(self, *args) - | deleting_struc_member(self, sptr, mptr) - | - | deleting_tryblks(self, *args) - | deleting_tryblks(self, range) - | - | destroyed_items(self, *args) - | destroyed_items(self, ea1, ea2, will_disable_range) - | - | determined_main(self, *args) - | determined_main(self, main) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | enum_bf_changed(self, *args) - | enum_bf_changed(self, id) - | - | enum_cmt_changed(self, *args) - | enum_cmt_changed(self, id, repeatable) - | - | enum_created(self, *args) - | enum_created(self, id) - | - | enum_deleted(self, *args) - | enum_deleted(self, id) - | - | enum_member_created(self, *args) - | enum_member_created(self, id, cid) - | - | enum_member_deleted(self, *args) - | enum_member_deleted(self, id, cid) - | - | enum_renamed(self, *args) - | enum_renamed(self, id) - | - | expanding_struc(self, *args) - | expanding_struc(self, sptr, offset, delta) - | - | extlang_changed(self, *args) - | extlang_changed(self, kind, el, idx) - | - | extra_cmt_changed(self, *args) - | extra_cmt_changed(self, ea, line_idx, cmt) - | - | flow_chart_created(self, *args) - | flow_chart_created(self, fc) - | - | frame_deleted(self, *args) - | frame_deleted(self, pfn) - | - | func_added(self, *args) - | func_added(self, pfn) - | - | func_noret_changed(self, *args) - | func_noret_changed(self, pfn) - | - | func_tail_appended(self, *args) - | func_tail_appended(self, pfn, tail) - | - | func_tail_deleted(self, *args) - | func_tail_deleted(self, pfn, tail_ea) - | - | func_updated(self, *args) - | func_updated(self, pfn) - | - | hook(self, *args) - | hook(self) -> bool - | - | idasgn_loaded(self, *args) - | idasgn_loaded(self, short_sig_name) - | - | item_color_changed(self, *args) - | item_color_changed(self, ea, color) - | - | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) - | - | loader_finished(self, *args) - | loader_finished(self, li, neflags, filetypename) - | - | local_types_changed(self, *args) - | local_types_changed(self) - | - | make_code(self, *args) - | make_code(self, insn) - | - | make_data(self, *args) - | make_data(self, ea, flags, tid, len) - | - | op_ti_changed(self, *args) - | op_ti_changed(self, ea, n, type, fnames) - | - | op_type_changed(self, *args) - | op_type_changed(self, ea, n) - | - | range_cmt_changed(self, *args) - | range_cmt_changed(self, kind, a, cmt, repeatable) - | - | renamed(self, *args) - | renamed(self, ea, new_name, local_name) - | - | renaming_enum(self, *args) - | renaming_enum(self, id, is_enum, newname) - | - | renaming_struc(self, *args) - | renaming_struc(self, id, oldname, newname) - | - | renaming_struc_member(self, *args) - | renaming_struc_member(self, sptr, mptr, newname) - | - | savebase(self, *args) - | savebase(self) - | - | segm_added(self, *args) - | segm_added(self, s) - | - | segm_attrs_updated(self, *args) - | segm_attrs_updated(self, s) - | - | segm_class_changed(self, *args) - | segm_class_changed(self, s, sclass) - | - | segm_deleted(self, *args) - | segm_deleted(self, start_ea, end_ea) - | - | segm_end_changed(self, *args) - | segm_end_changed(self, s, oldend) - | - | segm_moved(self, *args) - | segm_moved(self, _from, to, size, changed_netmap) - | - | segm_name_changed(self, *args) - | segm_name_changed(self, s, name) - | - | segm_start_changed(self, *args) - | segm_start_changed(self, s, oldstart) - | - | set_func_end(self, *args) - | set_func_end(self, pfn, new_end) - | - | set_func_start(self, *args) - | set_func_start(self, pfn, new_start) - | - | sgr_changed(self, *args) - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | - | sgr_deleted(self, *args) - | sgr_deleted(self, start_ea, end_ea, regnum) - | - | stkpnts_changed(self, *args) - | stkpnts_changed(self, pfn) - | - | struc_align_changed(self, *args) - | struc_align_changed(self, sptr) - | - | struc_cmt_changed(self, *args) - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | - | struc_created(self, *args) - | struc_created(self, struc_id) - | - | struc_deleted(self, *args) - | struc_deleted(self, struc_id) - | - | struc_expanded(self, *args) - | struc_expanded(self, sptr) - | - | struc_member_changed(self, *args) - | struc_member_changed(self, sptr, mptr) - | - | struc_member_created(self, *args) - | struc_member_created(self, sptr, mptr) - | - | struc_member_deleted(self, *args) - | struc_member_deleted(self, sptr, member_id, offset) - | - | struc_member_renamed(self, *args) - | struc_member_renamed(self, sptr, mptr) - | - | struc_renamed(self, *args) - | struc_renamed(self, sptr) - | - | tail_owner_changed(self, *args) - | tail_owner_changed(self, tail, owner_func, old_owner) - | - | thunk_func_created(self, *args) - | thunk_func_created(self, pfn) - | - | ti_changed(self, *args) - | ti_changed(self, ea, type, fnames) - | - | tryblks_updated(self, *args) - | tryblks_updated(self, tbv) - | - | unhook(self, *args) - | unhook(self) -> bool - | - | updating_tryblks(self, *args) - | updating_tryblks(self, tbv) - | - | upgraded(self, *args) - | upgraded(self, _from) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from IDB_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from IDB_Hooks: - | - | __swig_destroy__ = - | delete_IDB_Hooks(self) - -Help on class asm_t in module ida_idp: - -class asm_t(__builtin__.object) - | Proxy of C++ asm_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> asm_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a_align - | asm_t_a_align_get(self) -> char const * - | - | a_ascii - | asm_t_a_ascii_get(self) -> char const * - | - | a_band - | asm_t_a_band_get(self) -> char const * - | - | a_bnot - | asm_t_a_bnot_get(self) -> char const * - | - | a_bor - | asm_t_a_bor_get(self) -> char const * - | - | a_bss - | asm_t_a_bss_get(self) -> char const * - | - | a_byte - | asm_t_a_byte_get(self) -> char const * - | - | a_comdef - | asm_t_a_comdef_get(self) -> char const * - | - | a_curip - | asm_t_a_curip_get(self) -> char const * - | - | a_double - | asm_t_a_double_get(self) -> char const * - | - | a_dups - | asm_t_a_dups_get(self) -> char const * - | - | a_dword - | asm_t_a_dword_get(self) -> char const * - | - | a_equ - | asm_t_a_equ_get(self) -> char const * - | - | a_extrn - | asm_t_a_extrn_get(self) -> char const * - | - | a_float - | asm_t_a_float_get(self) -> char const * - | - | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * - | - | a_mod - | asm_t_a_mod_get(self) -> char const * - | - | a_oword - | asm_t_a_oword_get(self) -> char const * - | - | a_packreal - | asm_t_a_packreal_get(self) -> char const * - | - | a_public - | asm_t_a_public_get(self) -> char const * - | - | a_qword - | asm_t_a_qword_get(self) -> char const * - | - | a_rva - | asm_t_a_rva_get(self) -> char const * - | - | a_seg - | asm_t_a_seg_get(self) -> char const * - | - | a_shl - | asm_t_a_shl_get(self) -> char const * - | - | a_shr - | asm_t_a_shr_get(self) -> char const * - | - | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * - | - | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * - | - | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * - | - | a_weak - | asm_t_a_weak_get(self) -> char const * - | - | a_word - | asm_t_a_word_get(self) -> char const * - | - | a_xor - | asm_t_a_xor_get(self) -> char const * - | - | a_yword - | asm_t_a_yword_get(self) -> char const * - | - | accsep - | asm_t_accsep_get(self) -> char - | - | ascsep - | asm_t_ascsep_get(self) -> char - | - | cmnt - | asm_t_cmnt_get(self) -> char const * - | - | cmnt2 - | asm_t_cmnt2_get(self) -> char const * - | - | end - | asm_t_end_get(self) -> char const * - | - | esccodes - | asm_t_esccodes_get(self) -> char const * - | - | flag - | asm_t_flag_get(self) -> uint32 - | - | flag2 - | asm_t_flag2_get(self) -> uint32 - | - | header - | asm_t_header_get(self) -> char const *const * - | - | help - | asm_t_help_get(self) -> help_t - | - | high16 - | asm_t_high16_get(self) -> char const * - | - | high8 - | asm_t_high8_get(self) -> char const * - | - | lbrace - | asm_t_lbrace_get(self) -> char - | - | low16 - | asm_t_low16_get(self) -> char const * - | - | low8 - | asm_t_low8_get(self) -> char const * - | - | name - | asm_t_name_get(self) -> char const * - | - | origin - | asm_t_origin_get(self) -> char const * - | - | rbrace - | asm_t_rbrace_get(self) -> char - | - | thisown - | The membership flag - | - | uflag - | asm_t_uflag_get(self) -> uint16 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_asm_t(self) - -Help on function assemble in module ida_idp: - -assemble(*args) - assemble(ea, cs, ip, use32, line) -> bool - - - Assemble an instruction into the database (display a warning if an error is found) - @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction - @param use32: is 32bit segment? - @param line: line to assemble - - @return: Boolean. True on success. - -Help on function cfg_get_cc_header_path in module ida_idp: - -cfg_get_cc_header_path(*args) - cfg_get_cc_header_path(compid) -> char const * - -Help on function cfg_get_cc_parm in module ida_idp: - -cfg_get_cc_parm(*args) - cfg_get_cc_parm(compid, name) -> char const * - -Help on function cfg_get_cc_predefined_macros in module ida_idp: - -cfg_get_cc_predefined_macros(*args) - cfg_get_cc_predefined_macros(compid) -> char const * - -Help on function delay_slot_insn in module ida_idp: - -delay_slot_insn(*args) - delay_slot_insn(ea, bexec, fexec) -> bool - - - Helper function to get the delay slot instruction. - - - @param ea (C++: ea_t *) - @param bexec (C++: bool *) - @param fexec (C++: bool *) - -Help on function gen_idb_event in module ida_idp: - -gen_idb_event(*args) - gen_idb_event(code) - - - the kernel will use this function to generate idb_events - - - @param code (C++: idb_event::event_code_t) - -Help on function get_idb_notifier_addr in module ida_idp: - -get_idb_notifier_addr(*args) - get_idb_notifier_addr(arg1) -> PyObject * - -Help on function get_idb_notifier_ud_addr in module ida_idp: - -get_idb_notifier_ud_addr(*args) - get_idb_notifier_ud_addr(hooks) -> PyObject * - -Help on function get_idp_name in module ida_idp: - -get_idp_name(*args) - get_idp_name() -> str - - - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL - -Help on function get_idp_notifier_addr in module ida_idp: - -get_idp_notifier_addr(*args) - get_idp_notifier_addr(arg1) -> PyObject * - -Help on function get_idp_notifier_ud_addr in module ida_idp: - -get_idp_notifier_ud_addr(*args) - get_idp_notifier_ud_addr(hooks) -> PyObject * - -Help on function get_reg_info in module ida_idp: - -get_reg_info(*args) - get_reg_info(regname, bitrange) -> char const * - - - Get register information - useful for registers like al, ah, dil, etc. - - @param regname (C++: const char *) - @param bitrange (C++: bitrange_t *) - @return: NULL no such register - -Help on function get_reg_name in module ida_idp: - -get_reg_name(*args) - get_reg_name(reg, width, reghi=-1) -> str - - - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) - @return: length of register name in bytes or -1 if failure - -Help on function has_cf_chg in module ida_idp: - -has_cf_chg(*args) - has_cf_chg(feature, opnum) -> bool - - - Does an instruction with the specified feature modify the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) - -Help on function has_cf_use in module ida_idp: - -has_cf_use(*args) - has_cf_use(feature, opnum) -> bool - - - Does an instruction with the specified feature use a value of the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) - -Help on function has_insn_feature in module ida_idp: - -has_insn_feature(*args) - has_insn_feature(icode, bit) -> bool - - - Does the specified instruction have the specified feature? - - - @param icode (C++: int) - @param bit (C++: uint32) - -Help on function is_align_insn in module ida_idp: - -is_align_insn(*args) - is_align_insn(ea) -> int - - - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - - @param ea (C++: ea_t) - -Help on function is_basic_block_end in module ida_idp: - -is_basic_block_end(*args) - is_basic_block_end(insn, call_insn_stops_block) -> bool - - - Is the instruction the end of a basic block? - - - @param insn (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) - -Help on function is_call_insn in module ida_idp: - -is_call_insn(*args) - is_call_insn(insn) -> bool - - - Is the instruction a "call"? - - - @param insn (C++: const insn_t &) - -Help on function is_indirect_jump_insn in module ida_idp: - -is_indirect_jump_insn(*args) - is_indirect_jump_insn(insn) -> bool - - - Is the instruction an indirect jump? - - - @param insn (C++: const insn_t &) - -Help on function is_ret_insn in module ida_idp: - -is_ret_insn(*args) - is_ret_insn(insn, strict=True) -> bool - - - Is the instruction a "return"? - - - @param insn (C++: const insn_t &) - @param strict (C++: bool) - -Help on function parse_reg_name in module ida_idp: - -parse_reg_name(*args) - parse_reg_name(ri, regname) -> bool - - - Get register info by name. - - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) - @return: success - -Help on __ph in module ida_idp object: - -class __ph(__builtin__.object) - | # ---------------------------------------------------------------------- - | - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cnbits - | - | dnbits - | - | flag - | - | icode_return - | - | id - | - | instruc - | - | instruc_end - | - | instruc_start - | - | reg_code_sreg - | - | reg_data_sreg - | - | reg_first_sreg - | - | reg_last_sreg - | - | regnames - | - | segreg_size - | - | tbyte_size - | - | version - -Help on function ph_calcrel in module ida_idp: - -ph_calcrel(*args) - ph_calcrel(ea) - -Help on function ph_find_op_value in module ida_idp: - -ph_find_op_value(*args) - ph_find_op_value(insn, op) -> ssize_t - -Help on function ph_find_reg_value in module ida_idp: - -ph_find_reg_value(*args) - ph_find_reg_value(insn, reg) -> ssize_t - -Help on function ph_get_cnbits in module ida_idp: - -ph_get_cnbits(*args) - ph_get_cnbits() -> size_t - - - Returns the 'ph.cnbits' - -Help on function ph_get_dnbits in module ida_idp: - -ph_get_dnbits(*args) - ph_get_dnbits() -> size_t - - - Returns the 'ph.dnbits' - -Help on function ph_get_flag in module ida_idp: - -ph_get_flag(*args) - ph_get_flag() -> size_t - - - Returns the 'ph.flag' - -Help on function ph_get_icode_return in module ida_idp: - -ph_get_icode_return(*args) - ph_get_icode_return() -> size_t - - - Returns the 'ph.icode_return' - -Help on function ph_get_id in module ida_idp: - -ph_get_id(*args) - ph_get_id() -> size_t - - - Returns the 'ph.id' field - -Help on function ph_get_instruc in module ida_idp: - -ph_get_instruc(*args) - ph_get_instruc() -> PyObject * - - - Returns a list of tuples (instruction_name, instruction_feature) containing the - instructions list as defined in he processor module - -Help on function ph_get_instruc_end in module ida_idp: - -ph_get_instruc_end(*args) - ph_get_instruc_end() -> size_t - - - Returns the 'ph.instruc_end' - -Help on function ph_get_instruc_start in module ida_idp: - -ph_get_instruc_start(*args) - ph_get_instruc_start() -> size_t - - - Returns the 'ph.instruc_start' - -Help on function ph_get_operand_info in module ida_idp: - -ph_get_operand_info(*args) - ph_get_operand_info(ea, n) -> PyObject * - - - Returns the operand information given an ea and operand number. - - @param ea: address - @param n: operand number - - @return: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size). - Please refer to idd_opinfo_t structure in the SDK. - -Help on function ph_get_reg_code_sreg in module ida_idp: - -ph_get_reg_code_sreg(*args) - ph_get_reg_code_sreg() -> size_t - - - Returns the 'ph.reg_code_sreg' - -Help on function ph_get_reg_data_sreg in module ida_idp: - -ph_get_reg_data_sreg(*args) - ph_get_reg_data_sreg() -> size_t - - - Returns the 'ph.reg_data_sreg' - -Help on function ph_get_reg_first_sreg in module ida_idp: - -ph_get_reg_first_sreg(*args) - ph_get_reg_first_sreg() -> size_t - - - Returns the 'ph.reg_first_sreg' - -Help on function ph_get_reg_last_sreg in module ida_idp: - -ph_get_reg_last_sreg(*args) - ph_get_reg_last_sreg() -> size_t - - - Returns the 'ph.reg_last_sreg' - -Help on function ph_get_regnames in module ida_idp: - -ph_get_regnames(*args) - ph_get_regnames() -> PyObject * - - - Returns the list of register names as defined in the processor module - -Help on function ph_get_segreg_size in module ida_idp: - -ph_get_segreg_size(*args) - ph_get_segreg_size() -> size_t - - - Returns the 'ph.segreg_size' - -Help on function ph_get_tbyte_size in module ida_idp: - -ph_get_tbyte_size(*args) - ph_get_tbyte_size() -> size_t - - - Returns the 'ph.tbyte_size' field as defined in he processor module - -Help on function ph_get_version in module ida_idp: - -ph_get_version(*args) - ph_get_version() -> size_t - - - Returns the 'ph.version' - -Help on class processor_t in module ida_idp: - -class processor_t(IDP_Hooks) - | Method resolution order: - | processor_t - | IDP_Hooks - | __builtin__.object - | - | Methods defined here: - | - | __init__(self) - | - | _get_idb_notifier_addr(self) - | - | _get_idb_notifier_ud_addr(self) - | - | _get_idp_notifier_addr(self) - | - | _get_idp_notifier_ud_addr(self) - | - | _get_notify(self, what, unimp_val=0, imp_forced_val=None, add_prefix=True, mandatory_impl=None) - | This helper is used to implement backward-compatibility - | of pre IDA 7.3 processor_t interfaces. - | - | _make_forced_value_wrapper(self, val, meth=None) - | - | _make_int_returning_wrapper(self, meth, intval=0) - | - | auto_empty(self, *args) - | - | auto_empty_finally(self, *args) - | - | closebase(self, *args) - | - | compiler_changed(self, *args) - | - | deleting_func(self, pfn) - | - | determined_main(self, *args) - | - | ev_ana_insn(self, *args) - | - | ev_assemble(self, *args) - | - | ev_auto_queue_empty(self, *args) - | - | ev_calc_step_over(self, target, ip) - | - | ev_can_have_type(self, *args) - | - | ev_cmp_operands(self, *args) - | - | ev_coagulate(self, *args) - | - | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) - | - | ev_create_func_frame(self, pfn) - | - | ev_create_switch_xrefs(self, *args) - | - | ev_creating_segm(self, s) - | - | ev_emu_insn(self, *args) - | - | ev_endbinary(self, *args) - | - | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | - | ev_gen_map_file(self, nlines, fp) - | - | ev_gen_regvar_def(self, ctx, v) - | - | ev_gen_src_file_lnnum(self, *args) - | - | ev_get_autocmt(self, *args) - | - | ev_get_frame_retsize(self, frsize, pfn) - | - | ev_get_operand_string(self, buf, insn, opnum) - | - | ev_is_align_insn(self, *args) - | - | ev_is_alloca_probe(self, *args) - | - | ev_is_basic_block_end(self, *args) - | - | ev_is_call_insn(self, *args) - | - | ev_is_far_jump(self, *args) - | - | ev_is_indirect_jump(self, *args) - | - | ev_is_insn_table_jump(self, *args) - | - | ev_is_ret_insn(self, *args) - | - | ev_is_sane_insn(self, *args) - | - | ev_is_sp_based(self, mode, insn, op) - | - | ev_is_switch(self, *args) - | - | ev_may_be_func(self, *args) - | - | ev_may_show_sreg(self, *args) - | - | ev_moving_segm(self, s, to_ea, flags) - | - | ev_newbinary(self, *args) - | - | ev_newfile(self, *args) - | - | ev_newprc(self, *args) - | - | ev_oldfile(self, *args) - | - | ev_out_assumes(self, *args) - | - | ev_out_data(self, *args) - | - | ev_out_footer(self, *args) - | - | ev_out_header(self, *args) - | - | ev_out_insn(self, *args) - | - | ev_out_label(self, *args) - | - | ev_out_mnem(self, *args) - | - | ev_out_operand(self, *args) - | - | ev_out_segend(self, ctx, s) - | - | ev_out_segstart(self, ctx, s) - | - | ev_out_special_item(self, *args) - | - | ev_rename(self, *args) - | - | ev_set_idp_options(self, keyword, value_type, value) - | - | ev_set_proc_options(self, *args) - | - | ev_str2reg(self, *args) - | - | ev_treat_hindering_item(self, *args) - | - | ev_undefine(self, *args) - | - | ev_validate_flirt_func(self, *args) - | - | ev_verify_noreturn(self, pfn) - | - | ev_verify_sp(self, pfn) - | - | func_added(self, pfn) - | - | get_auxpref(self, insn) - | This function returns insn.auxpref value - | - | get_idpdesc(self) - | This function must be present and should return the list of - | short processor names similar to the one in ph.psnames. - | This method can be overridden to return to the kernel a different IDP description. - | - | get_uFlag(self) - | Use this utility function to retrieve the 'uFlag' global variable - | - | idasgn_loaded(self, *args) - | - | kernel_config_loaded(self, *args) - | - | make_code(self, *args) - | - | make_data(self, *args) - | - | renamed(self, *args) - | - | savebase(self, *args) - | - | segm_moved(self, from_ea, to_ea, size, changed_netmap) - | - | set_func_end(self, *args) - | - | set_func_start(self, *args) - | - | sgr_changed(self, *args) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __idc_cvt_id__ = 2 - | - | ---------------------------------------------------------------------- - | Methods inherited from IDP_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | ev_add_cref(self, *args) - | ev_add_cref(self, _from, to, type) -> int - | - | ev_add_dref(self, *args) - | ev_add_dref(self, _from, to, type) -> int - | - | ev_adjust_argloc(self, *args) - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | - | ev_adjust_libfunc_ea(self, *args) - | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | - | ev_adjust_refinfo(self, *args) - | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | - | ev_analyze_prolog(self, *args) - | ev_analyze_prolog(self, ea) -> int - | - | ev_arg_addrs_ready(self, *args) - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | - | ev_calc_arglocs(self, *args) - | ev_calc_arglocs(self, fti) -> int - | - | ev_calc_cdecl_purged_bytes(self, *args) - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | - | ev_calc_next_eas(self, *args) - | ev_calc_next_eas(self, res, insn, over) -> int - | - | ev_calc_purged_bytes(self, *args) - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | - | ev_calc_retloc(self, *args) - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | - | ev_calc_spdelta(self, *args) - | ev_calc_spdelta(self, spdelta, insn) -> int - | - | ev_calc_switch_cases(self, *args) - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | - | ev_calc_varglocs(self, *args) - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | - | ev_calcrel(self, *args) - | ev_calcrel(self) -> int - | - | ev_clean_tbit(self, *args) - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | - | ev_create_flat_group(self, *args) - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | - | ev_decorate_name(self, *args) - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | - | ev_del_cref(self, *args) - | ev_del_cref(self, _from, to, expand) -> int - | - | ev_del_dref(self, *args) - | ev_del_dref(self, _from, to) -> int - | - | ev_delay_slot_insn(self, *args) - | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | - | ev_demangle_name(self, *args) - | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | - | ev_ending_undo(self, *args) - | ev_ending_undo(self, action_name, is_undo) -> int - | - | ev_equal_reglocs(self, *args) - | ev_equal_reglocs(self, a1, a2) -> int - | - | ev_extract_address(self, *args) - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | - | ev_find_op_value(self, *args) - | ev_find_op_value(self, pinsn, opn) -> PyObject * - | - | ev_find_reg_value(self, *args) - | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | - | ev_gen_asm_or_lst(self, *args) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) - | - | ev_gen_stkvar_def(self, *args) - | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | - | ev_get_abi_info(self, *args) - | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | - | ev_get_bg_color(self, *args) - | ev_get_bg_color(self, ea) -> int or None - | - | ev_get_cc_regs(self, *args) - | ev_get_cc_regs(self, regs, cc) -> int - | - | ev_get_code16_mode(self, *args) - | ev_get_code16_mode(self, ea) -> int - | - | ev_get_dbr_opnum(self, *args) - | ev_get_dbr_opnum(self, opnum, insn) -> int - | - | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int - | - | ev_get_macro_insn_head(self, *args) - | ev_get_macro_insn_head(self, head, ip) -> int - | - | ev_get_reg_info(self, *args) - | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | - | ev_get_reg_name(self, *args) - | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | - | ev_get_simd_types(self, *args) - | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | - | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int - | - | ev_get_stkvar_scale_factor(self, *args) - | ev_get_stkvar_scale_factor(self) -> int - | - | ev_getreg(self, *args) - | ev_getreg(self, regval, regnum) -> int - | - | ev_init(self, *args) - | ev_init(self, idp_modname) -> int - | - | ev_insn_reads_tbit(self, *args) - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | - | ev_is_cond_insn(self, *args) - | ev_is_cond_insn(self, insn) -> int - | - | ev_is_jump_func(self, *args) - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | - | ev_last_cb_before_loader(self, *args) - | ev_last_cb_before_loader(self) -> int - | - | ev_loader(self, *args) - | ev_loader(self) -> int - | - | ev_lower_func_type(self, *args) - | ev_lower_func_type(self, argnums, fti) -> int - | - | ev_max_ptr_size(self, *args) - | ev_max_ptr_size(self) -> int - | - | ev_newasm(self, *args) - | ev_newasm(self, asmnum) -> int - | - | ev_next_exec_insn(self, *args) - | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | - | ev_realcvt(self, *args) - | ev_realcvt(self, m, e, swt) -> int - | - | ev_replaying_undo(self, *args) - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | - | ev_set_code16_mode(self, *args) - | ev_set_code16_mode(self, ea, code16) -> int - | - | ev_setup_til(self, *args) - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | - | ev_term(self, *args) - | ev_term(self) -> int - | - | ev_use_arg_types(self, *args) - | ev_use_arg_types(self, ea, fti, rargs) -> int - | - | ev_use_regarg_type(self, *args) - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | - | ev_use_stkarg_type(self, *args) - | ev_use_stkarg_type(self, ea, arg) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success - | - | unhook(self, *args) - | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from IDP_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from IDP_Hooks: - | - | __swig_destroy__ = - | delete_IDP_Hooks(self) - -Help on class reg_info_t in module ida_idp: - -class reg_info_t(__builtin__.object) - | Proxy of C++ reg_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> reg_info_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | reg - | reg_info_t_reg_get(self) -> int - | - | size - | reg_info_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_reg_info_t(self) - -Help on function set_processor_type in module ida_idp: - -set_processor_type(*args) - set_processor_type(procname, level) -> bool - - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success - -Help on function set_target_assembler in module ida_idp: - -set_target_assembler(*args) - set_target_assembler(asmnum) -> bool - - - Set target assembler. - - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success - -Help on function sizeof_ldbl in module ida_idp: - -sizeof_ldbl(*args) - sizeof_ldbl() -> size_t - - - Get size of long double. - -Help on function str2reg in module ida_idp: - -str2reg(*args) - str2reg(p) -> int - - - Get any reg number (-1 on error) - - - @param p (C++: const char *) - -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -Meaningful only for wide byte processors. - -One symbol per processor byte -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings -""" - -ida_idp.AS2_TERSESTR -""" -NAME is supported. - -'terse' structure initialization form -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 -""" - -ida_idp.AS_ASCIIC -""" -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_HLL -""" -language function. - -Instruction may be present in a high level -""" - -ida_idp.CF_JUMP -""" -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -next instruction - -Instruction doesn't pass execution to the -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. -""" - -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -(display only) - -The user can't change segments and code/data attributes -""" - -ida_idp.PR_NO_SEGMOVE -""" -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback -""" - -ida_idp.PR_USE_TBYTE -""" - 'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === -Help on class Choose in module ida_kernwin: - -class Choose(__builtin__.object) - | Chooser wrapper class. - | - | Some constants are defined in this class. - | Please refer to kernwin.hpp for more information. - | - | Methods defined here: - | - | 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. - | - | OnPopup(self, widget, popup_handle) - | - | Refresh(self) - | Causes the refresh callback to trigger - | - | Show(self, modal=False) - | Activates or creates a chooser window - | @param 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; - | - | __init__(self, 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) - | Constructs a chooser window. - | @param title: The chooser title - | @param 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] ] - | @param flags: One of CH_XXXX constants - | @param deflt: The index of the default item (0-based) for single - | selection choosers or the list of indexes for multi selection - | chooser - | @param popup_names: List of new captions to replace this list - | ["Insert", "Delete", "Edit", "Refresh"] - | @param icon: Icon index (the icon should exist in ida resources or - | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) - | @param embedded: Create as embedded chooser - | @param width: Embedded chooser width - | @param height: Embedded chooser height - | @param forbidden_cb: Explicitly forbidden callbacks - | - | adjust_last_item(self, n) - | Helper for OnDeleteLine() and OnRefresh() callbacks. - | They can be finished by the following line: - | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item - | @return: list of selected lines numbers (one element or empty) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | ALL_CHANGED = 1 - | - | ALREADY_EXISTS = -3 - | - | CHCOL_DEC = 196608 - | - | CHCOL_EA = 262144 - | - | CHCOL_FNAME = 327680 - | - | CHCOL_FORMAT = 458752 - | - | CHCOL_HEX = 131072 - | - | CHCOL_PATH = 65536 - | - | CHCOL_PLAIN = 0 - | - | CHOOSE_HAVE_DEL = 16 - | - | CHOOSE_HAVE_EDIT = 32 - | - | CHOOSE_HAVE_ENTER = 64 - | - | CHOOSE_HAVE_GETATTR = 4 - | - | CHOOSE_HAVE_GETICON = 2 - | - | CHOOSE_HAVE_INIT = 1 - | - | CHOOSE_HAVE_INS = 8 - | - | CHOOSE_HAVE_ONCLOSE = 512 - | - | CHOOSE_HAVE_REFRESH = 128 - | - | CHOOSE_HAVE_SELECT = 256 - | - | CH_ATTRS = 32 - | - | CH_BUILTIN_MASK = 33030144 - | - | CH_BUILTIN_SHIFT = 19 - | - | CH_CAN_DEL = 512 - | - | CH_CAN_EDIT = 1024 - | - | CH_CAN_INS = 256 - | - | CH_CAN_REFRESH = 2048 - | - | CH_FORCE_DEFAULT = 128 - | - | CH_MODAL = 1 - | - | CH_MULTI = 4 - | - | CH_NOBTNS = 16 - | - | CH_NOIDB = 64 - | - | CH_NO_STATUS_BAR = 65536 - | - | CH_QFLT = 4096 - | - | CH_QFTYP_DEFAULT = 0 - | - | CH_QFTYP_FUZZY = 32768 - | - | CH_QFTYP_MASK = 57344 - | - | CH_QFTYP_NORMAL = 8192 - | - | CH_QFTYP_REGEX = 24576 - | - | CH_QFTYP_SHIFT = 13 - | - | CH_QFTYP_WHOLE_WORDS = 16384 - | - | CH_RESTORE = 131072 - | - | EMPTY_CHOOSER = -2 - | - | NOTHING_CHANGED = 0 - | - | NO_ATTR = -4 - | - | NO_SELECTION = -1 - | - | SELECTION_CHANGED = 2 - | - | UI_Hooks_Trampoline = - -Help on class CustomIDAMemo in module ida_kernwin: - -class CustomIDAMemo(View_Hooks) - | # - | # ----------------------------------------------------------------------- - | # CustomIDAMemo - | # ----------------------------------------------------------------------- - | - | Method resolution order: - | CustomIDAMemo - | View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | 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 - | } - | - | @param 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). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | __init__(self) - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from View_Hooks: - | - | __swig_destroy__ = - | delete_View_Hooks(self) - -Help on class Form in module ida_kernwin: - -class Form(__builtin__.object) - | # ----------------------------------------------------------------------- - | - | Methods defined here: - | - | Add(self, name, ctrl, mkattr=True) - | Low level function. Prefer AddControls() to this function. - | This function adds one control to the form. - | - | @param name: Control name - | @param ctrl: Control object - | @param 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 - | @param controls: The control dictionary - | - | Close(self, close_normally) - | Close the form - | @param 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.) - | - | @param 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 - | @param 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 - | @param ctrl: Form control instance - | @param 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 - | - | _AddGroup(self, Group, mkattr=True) - | Internal function. - | This function expands the group item names and creates individual group item controls - | - | @param Group: The group class (checkbox or radio group class) - | - | _ChkCompiled(self) - | - | __getitem__(self, name) - | Returns a control object by name - | - | __init__(self, 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). - | - | @param form: The form string - | @param controls: A dictionary containing the control name as a _key_ and control object as _value_ - | - | _reset(self) - | Resets the Form class state variables - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | ControlToFieldTypeIdAndSize(ctrl) - | Converts a control object to a tuple containing the field id - | and the associated buffer size - | - | _ParseFormTitle(form) - | Parses the form's title from the form text - | - | create_string_buffer(value, size=None) - | - | fieldtype_to_ctype(tp, i64=False) - | Factory method returning a ctype class corresponding to the field type string - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | 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 = 'A' - | - | FT_BIN = 'Y' - | - | FT_BUTTON = 'B' - | - | FT_CHAR = 'H' - | - | FT_CHKGRP = 'C' - | - | FT_CHKGRP2 = 'c' - | - | FT_COLOR = 'K' - | - | FT_DEC = 'D' - | - | FT_DIR = 'F' - | - | FT_DROPDOWN_LIST = 'b' - | - | FT_ECHOOSER = 'E' - | - | FT_FILE = 'f' - | - | FT_FORMCHG = '%/' - | - | FT_HEX = 'N' - | - | FT_HTML_LABEL = 'h' - | - | FT_IDENT = 'I' - | - | FT_INT64 = 'l' - | - | FT_MULTI_LINE_TEXT = 't' - | - | FT_OCT = 'O' - | - | FT_RADGRP = 'R' - | - | FT_RADGRP2 = 'r' - | - | FT_RAWHEX = 'M' - | - | FT_SEG = 'S' - | - | FT_SHEX = 'n' - | - | FT_TYPE = 'T' - | - | FT_UINT64 = 'L' - | - | 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...) - | @param 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 - | - | _FT_USHORT = '_US' - -Help on class IDAViewWrapper in module ida_kernwin: - -class IDAViewWrapper(CustomIDAMemo) - | 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.) - | - | Method resolution order: - | IDAViewWrapper - | CustomIDAMemo - | View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | Bind(self) - | - | Unbind(self) - | - | __init__(self, title) - | - | ---------------------------------------------------------------------- - | Methods inherited from CustomIDAMemo: - | - | 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 - | } - | - | @param 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). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods inherited from CustomIDAMemo: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from View_Hooks: - | - | __swig_destroy__ = - | delete_View_Hooks(self) - -Help on class PluginForm in module ida_kernwin: - -class PluginForm(__builtin__.object) - | PluginForm class. - | - | This form can be used to host additional controls. Please check the PyQt example. - | - | Methods defined here: - | - | Close(self, options) - | Closes the form. - | - | @param 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 - | - | @param caption: The form caption - | @param options: One of PluginForm.WOPN_ constants - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | FormToPyQtWidget = TWidgetToPyQtWidget(tw, ctx=) - | Convert a TWidget* to a QWidget to be used by PyQt - | - | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules - | - | FormToPySideWidget = TWidgetToPySideWidget(tw, ctx=) - | Use this method to convert a TWidget* to a QWidget to be used by PySide - | - | @param ctx: Context. Reference to a module that already imported QtWidgets module - | - | QtWidgetToTWidget(w, ctx=) - | Convert a QWidget to a TWidget* to be used by IDA - | - | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules - | - | TWidgetToPyQtWidget(tw, ctx=) - | Convert a TWidget* to a QWidget to be used by PyQt - | - | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules - | - | TWidgetToPySideWidget(tw, ctx=) - | Use this method to convert a TWidget* to a QWidget to be used by PySide - | - | @param ctx: Context. Reference to a module that already imported QtWidgets module - | - | _ensure_widget_deps(ctx) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | VALID_CAPSULE_NAME = '$valid$' - | - | WCLS_CLOSE_LATER = 8 - | - | WCLS_DONT_SAVE_SIZE = 4 - | - | WCLS_NO_CONTEXT = 2 - | - | WCLS_SAVE = 1 - | - | WOPN_CENTERED = 32 - | - | WOPN_CREATE_ONLY = {} - | - | WOPN_DP_BEFORE = 2097152 - | - | WOPN_DP_BOTTOM = 524288 - | - | WOPN_DP_FLOATING = 8388608 - | - | WOPN_DP_INSIDE = 1048576 - | - | WOPN_DP_INSIDE_BEFORE = 3145728 - | - | WOPN_DP_LEFT = 65536 - | - | WOPN_DP_RIGHT = 262144 - | - | WOPN_DP_TAB = 4194304 - | - | WOPN_DP_TAB_BEFORE = 6291456 - | - | WOPN_DP_TOP = 131072 - | - | WOPN_MDI = 1 - | - | WOPN_MENU = 16 - | - | WOPN_ONTOP = 8 - | - | WOPN_PERSIST = 64 - | - | WOPN_RESTORE = 4 - | - | WOPN_TAB = 2 - -Help on function TWidget__from_ptrval__ in module ida_kernwin: - -TWidget__from_ptrval__(*args) - TWidget__from_ptrval__(ptrval) -> TWidget * - -Help on class UI_Hooks in module ida_kernwin: - -class UI_Hooks(__builtin__.object) - | Proxy of C++ UI_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> UI_Hooks - | - | __repr__ = _swig_repr(self) - | - | create_desktop_widget(self, *args) - | create_desktop_widget(self, title, cfg) -> PyObject * - | - | current_widget_changed(self, *args) - | current_widget_changed(self, widget, prev_widget) - | - | database_inited(self, *args) - | database_inited(self, is_new_database, idc_script) - | - | debugger_menu_change(self, *args) - | debugger_menu_change(self, enable) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | finish_populating_widget_popup(self, *args) - | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | The UI is about to be done populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored - | - | get_chooser_item_attrs(self, *args) - | get_chooser_item_attrs(self, chooser, n, attrs) - | - | get_custom_viewer_hint(self, *args) - | get_custom_viewer_hint(self, viewer, place) -> PyObject * - | - | get_ea_hint(self, *args) - | get_ea_hint(self, ea) -> PyObject * - | - | - | The UI wants to display a simple hint for an address in the navigation band - | - | @param ea: The address - | @return: String with the hint or None - | - | get_item_hint(self, *args) - | get_item_hint(self, ea, max_lines) -> PyObject * - | - | get_widget_config(self, *args) - | get_widget_config(self, widget, cfg) -> PyObject * - | - | hook(self, *args) - | hook(self) -> bool - | - | - | Creates an UI hook - | - | @return: Boolean true on success - | - | idcstart(self, *args) - | idcstart(self) - | - | idcstop(self, *args) - | idcstop(self) - | - | plugin_loaded(self, *args) - | plugin_loaded(self, plugin_info) - | - | plugin_unloading(self, *args) - | plugin_unloading(self, plugin_info) - | - | populating_widget_popup(self, *args) - | populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | The UI is populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored - | - | postprocess_action(self, *args) - | postprocess_action(self) - | - | - | An ida ui action has been handled - | - | @return: Ignored - | - | preprocess_action(self, *args) - | preprocess_action(self, name) - | - | - | IDA ui is about to handle a user action - | - | @param name: ui action name - | (these names can be looked up in ida[tg]ui.cfg) - | @return: 0-ok, nonzero - a plugin has handled the action - | - | range(self, *args) - | range(self) - | - | ready_to_run(self, *args) - | ready_to_run(self) - | - | resume(self, *args) - | resume(self) - | - | saved(self, *args) - | saved(self) - | - | - | The kernel has saved the database. - | - | @return: Ignored - | - | saving(self, *args) - | saving(self) - | - | - | The kernel is saving the database. - | - | @return: Ignored - | - | screen_ea_changed(self, *args) - | screen_ea_changed(self, ea, prev_ea) - | - | set_widget_config(self, *args) - | set_widget_config(self, widget, cfg) - | - | suspend(self, *args) - | suspend(self) - | - | term(self, *args) - | term(self) - | - | - | IDA is terminated and the database is already closed. - | The UI may close its windows in this callback. - | - | unhook(self, *args) - | unhook(self) -> bool - | - | - | Removes the UI hook - | @return: Boolean true on success - | - | updated_actions(self, *args) - | updated_actions(self) - | - | - | The UI is done updating actions. - | - | @return: Ignored - | - | updating_actions(self, *args) - | updating_actions(self, ctx) - | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored - | - | widget_closing(self, *args) - | widget_closing(self, widget) - | - | widget_invisible(self, *args) - | widget_invisible(self, widget) - | - | widget_visible(self, *args) - | widget_visible(self, widget) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_UI_Hooks(self) - -Help on class View_Hooks in module ida_kernwin: - -class View_Hooks(__builtin__.object) - | Proxy of C++ View_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> View_Hooks - | - | __repr__ = _swig_repr(self) - | - | dump_state(self, *args) - | dump_state(self) -> qstring - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_activated(self, *args) - | view_activated(self, view) - | - | view_click(self, *args) - | view_click(self, view, event) - | - | view_close(self, *args) - | view_close(self, view) - | - | view_created(self, *args) - | view_created(self, view) - | - | view_curpos(self, *args) - | view_curpos(self, view) - | - | view_dblclick(self, *args) - | view_dblclick(self, view, event) - | - | view_deactivated(self, *args) - | view_deactivated(self, view) - | - | view_keydown(self, *args) - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, *args) - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, *args) - | view_mouse_moved(self, view, event) - | - | view_mouse_over(self, *args) - | view_mouse_over(self, view, event) - | - | view_switched(self, *args) - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_View_Hooks(self) - -Help on class __qtimer_t in module ida_kernwin: - -class __qtimer_t(__builtin__.object) - | Proxy of C++ __qtimer_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qtimer_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete___qtimer_t(self) - -Help on function _ask_addr in module ida_kernwin: - -_ask_addr(*args) - _ask_addr(addr, format) -> bool - -Help on function _ask_long in module ida_kernwin: - -_ask_long(*args) - _ask_long(value, format) -> bool - -Help on function _ask_seg in module ida_kernwin: - -_ask_seg(*args) - _ask_seg(sel, format) -> bool - -Help on function _call_ask_form in module ida_kernwin: - -_call_ask_form(*args) - -Help on function _call_open_form in module ida_kernwin: - -_call_open_form(*args) - -Help on class action_ctx_base_t in module ida_kernwin: - -class action_ctx_base_t(__builtin__.object) - | Proxy of C++ action_ctx_base_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> action_ctx_base_t - | - | __repr__ = _swig_repr(self) - | - | _get_form(self, *args) - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) - | _get_form_type(self) -> twidget_type_t - | - | has_flag(self, *args) - | has_flag(self, flag) -> bool - | - | reset(self, *args) - | reset(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | action - | action_ctx_base_t_action_get(self) -> char const * - | - | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * - | - | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t - | - | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t - | - | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t - | - | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * - | - | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 - | - | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * - | - | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * - | - | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * - | - | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * - | - | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t - | - | focus - | action_ctx_base_t_focus_get(self) -> TWidget * - | - | form - | _get_form(self) -> TWidget * - | - | form_title - | _get_form_title(self) -> qstring - | - | form_type - | _get_form_type(self) -> twidget_type_t - | - | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * - | - | regname - | action_ctx_base_t_regname_get(self) -> char const * - | - | thisown - | The membership flag - | - | widget - | action_ctx_base_t_widget_get(self) -> TWidget * - | - | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * - | - | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_action_ctx_base_t(self) - -Help on class action_desc_t in module ida_kernwin: - -class action_desc_t(__builtin__.object) - | Proxy of C++ action_desc_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cb - | action_desc_t_cb_get(self) -> int - | - | flags - | action_desc_t_flags_get(self) -> int - | - | icon - | action_desc_t_icon_get(self) -> int - | - | label - | action_desc_t_label_get(self) -> char const * - | - | name - | action_desc_t_name_get(self) -> char const * - | - | owner - | action_desc_t_owner_get(self) -> plugin_t const * - | - | shortcut - | action_desc_t_shortcut_get(self) -> char const * - | - | thisown - | The membership flag - | - | tooltip - | action_desc_t_tooltip_get(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_action_desc_t(self) - -Help on class action_handler_t in module ida_kernwin: - -class action_handler_t(__builtin__.object) - | # ---------------------------------------------------------------------- - | - | Methods defined here: - | - | __init__(self) - | - | activate(self, ctx) - | - | update(self, ctx) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function activate_widget in module ida_kernwin: - -activate_widget(*args) - activate_widget(widget, take_focus) - - - Activate widget (only gui version) ( 'ui_activate_widget' ). - - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) - -Help on function add_hotkey in module ida_kernwin: - -add_hotkey(*args) - add_hotkey(hotkey, pyfunc) -> PyObject * - - - Associates a function call with a hotkey. - Callable pyfunc will be called each time the hotkey is pressed - - @param hotkey: The hotkey - @param pyfunc: Callable - - @return: Context object on success or None on failure. - -Help on function add_idc_hotkey in module ida_kernwin: - -add_idc_hotkey(*args) - add_idc_hotkey(hotkey, idcfunc) -> int - - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes - -Help on function add_spaces in module ida_kernwin: - -add_spaces(*args) - add_spaces(s, len) -> PyObject * - - - Add space characters to the colored string so that its length will be - at least 'len' characters. Don't trim the string if it is longer than - 'len'. - - @param len: the desired length of the string (C++: ssize_t) - @return: pointer to the end of input string - -Help on function addon_count in module ida_kernwin: - -addon_count(*args) - addon_count() -> int - - - Get number of installed addons. - -Help on class addon_info_t in module ida_kernwin: - -class addon_info_t(__builtin__.object) - | Proxy of C++ addon_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> addon_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cb - | addon_info_t_cb_get(self) -> size_t - | - | custom_data - | addon_info_t_custom_data_get(self) -> void const * - | - | custom_size - | addon_info_t_custom_size_get(self) -> size_t - | - | freeform - | addon_info_t_freeform_get(self) -> char const * - | - | id - | addon_info_t_id_get(self) -> char const * - | - | name - | addon_info_t_name_get(self) -> char const * - | - | producer - | addon_info_t_producer_get(self) -> char const * - | - | thisown - | The membership flag - | - | url - | addon_info_t_url_get(self) -> char const * - | - | version - | addon_info_t_version_get(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_addon_info_t(self) - -Help on function analyzer_options in module ida_kernwin: - -analyzer_options(*args) - analyzer_options() - - - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) - -Help on function ask_addr in module ida_kernwin: - -ask_addr(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_buttons in module ida_kernwin: - -ask_buttons(*args) - ask_buttons(Yes, No, Cancel, deflt, format) -> int - - - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) - -Help on function ask_file in module ida_kernwin: - -ask_file(*args) - ask_file(for_saving, defval, format) -> char * - -Help on function ask_for_feedback in module ida_kernwin: - -ask_for_feedback(*args) - ask_for_feedback(format) - - - Show a message box asking to send the input file tosupport@hex- - rays.com. - - @param format: the reason why the input file is bad (C++: const char - *) - -Help on function ask_ident in module ida_kernwin: - -ask_ident(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_long in module ida_kernwin: - -ask_long(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_seg in module ida_kernwin: - -ask_seg(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_str in module ida_kernwin: - -ask_str(*args) - ask_str(defval, hist, prompt) -> PyObject * - - - Asks for a long text - - @param hist: history id - @param defval: The default value - @param prompt: The prompt value - @return: None or the entered string - -Help on function ask_text in module ida_kernwin: - -ask_text(*args) - ask_text(max_size, defval, prompt) -> PyObject * - - - Asks for a long text - - @param max_size: Maximum text length, 0 for unlimited - @param defval: The default value - @param prompt: The prompt value - @return: None or the entered string - -Help on function ask_yn in module ida_kernwin: - -ask_yn(*args) - ask_yn(deflt, format) -> int - - - Display a dialog box and get choice from "Yes", "No", "Cancel". - - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . - -Help on function attach_action_to_menu in module ida_kernwin: - -attach_action_to_menu(*args) - attach_action_to_menu(menupath, name, flags) -> bool - - - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). - - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) - @return: success - -Help on function attach_action_to_popup in module ida_kernwin: - -attach_action_to_popup(*args) - 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'. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) - @return: success - -Help on function attach_action_to_toolbar in module ida_kernwin: - -attach_action_to_toolbar(*args) - attach_action_to_toolbar(toolbar_name, name) -> bool - - - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success - -Help on function attach_dynamic_action_to_popup in module ida_kernwin: - -attach_dynamic_action_to_popup(*args) - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool - - - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) - @return: success - -Help on function banner in module ida_kernwin: - -banner(*args) - banner(wait) -> bool - - - Show a banner dialog box ( 'ui_banner' ). - - @param wait: time to wait before closing (C++: int) - -Help on function beep in module ida_kernwin: - -beep(*args) - beep(beep_type=beep_default) - - - Issue a beeping sound ( 'ui_beep' ). - - @param beep_type: beep_t (C++: beep_t) - -Help on function call_nav_colorizer in module ida_kernwin: - -call_nav_colorizer(*args) - 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(). - -Help on function cancel_exec_request in module ida_kernwin: - -cancel_exec_request(*args) - cancel_exec_request(req_id) -> bool - - - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - - @param req_id: request id (C++: int) - -Help on function choose_activate in module ida_kernwin: - -choose_activate(*args) - choose_activate(_self) - -Help on function choose_choose in module ida_kernwin: - -choose_choose(*args) - choose_choose(_self) -> PyObject * - -Help on function choose_close in module ida_kernwin: - -choose_close(*args) - choose_close(_self) - -Help on function choose_create_embedded_chobj in module ida_kernwin: - -choose_create_embedded_chobj(*args) - choose_create_embedded_chobj(_self) -> PyObject * - -Help on function choose_entry in module ida_kernwin: - -choose_entry(*args) - choose_entry(title) -> ea_t - - - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected - -Help on function choose_enum in module ida_kernwin: - -choose_enum(*args) - choose_enum(title, default_id) -> enum_t - - - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected - -Help on function choose_enum_by_value in module ida_kernwin: - -choose_enum_by_value(*args) - choose_enum_by_value(title, default_id, value, nbytes) -> enum_t - - - 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. - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uval_t) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found - -Help on function choose_find in module ida_kernwin: - -choose_find(*args) - choose_find(title) -> PyObject * - -Help on function choose_func in module ida_kernwin: - -choose_func(*args) - choose_func(title, default_ea) -> func_t * - - - Choose a function ( 'ui_choose' , 'chtype_func' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected - -Help on function choose_get_widget in module ida_kernwin: - -choose_get_widget(*args) - choose_get_widget(_self) -> TWidget * - -Help on function choose_idasgn in module ida_kernwin: - -choose_idasgn(*args) - choose_idasgn() -> PyObject * - - - Opens the signature chooser - - @return: None or the selected signature name - -Help on function choose_name in module ida_kernwin: - -choose_name(*args) - choose_name(title) -> ea_t - - - Choose a name ( 'ui_choose' , 'chtype_name' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected - -Help on function choose_refresh in module ida_kernwin: - -choose_refresh(*args) - choose_refresh(_self) - -Help on function choose_segm in module ida_kernwin: - -choose_segm(*args) - choose_segm(title, default_ea) -> segment_t * - - - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected - -Help on function choose_srcp in module ida_kernwin: - -choose_srcp(*args) - choose_srcp(title) -> sreg_range_t * - - - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected - -Help on function choose_stkvar_xref in module ida_kernwin: - -choose_stkvar_xref(*args) - choose_stkvar_xref(pfn, mptr) -> ea_t - - - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) - @return: ea of the selected xref, BADADDR if none selected - -Help on function choose_struc in module ida_kernwin: - -choose_struc(*args) - choose_struc(title) -> struc_t * - - - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected - -Help on function choose_til in module ida_kernwin: - -choose_til(*args) - choose_til() -> str - - - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). - -Help on function choose_xref in module ida_kernwin: - -choose_xref(*args) - choose_xref(to) -> ea_t - - - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - - @param to: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected - -Help on class chooser_item_attrs_t in module ida_kernwin: - -class chooser_item_attrs_t(__builtin__.object) - | Proxy of C++ chooser_item_attrs_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> chooser_item_attrs_t - | - | __repr__ = _swig_repr(self) - | - | reset(self, *args) - | reset(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t - | - | flags - | chooser_item_attrs_t_flags_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_chooser_item_attrs_t(self) - -Help on function clear_refresh_request in module ida_kernwin: - -clear_refresh_request(*args) - clear_refresh_request(mask) - -Help on class cli_t in module ida_kernwin: - -class cli_t(ida_idaapi.pyidc_opaque_object_t) - | cli_t wrapper class. - | - | This class allows you to implement your own command line interface handlers. - | - | Method resolution order: - | cli_t - | ida_idaapi.pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __del__(self) - | - | __init__(self) - | - | register(self, flags=0, sname=None, lname=None, hint=None) - | Registers the CLI. - | - | @param flags: Feature bits. No bits are defined yet, must be 0 - | @param sname: Short name (displayed on the button) - | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line - | - | @return Boolean: True-Success, False-Failed - | - | unregister(self) - | Unregisters the CLI (if it was registered) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on function close_chooser in module ida_kernwin: - -close_chooser(*args) - close_chooser(title) -> bool - - - Close a non-modal chooser ( 'ui_close_chooser' ). - - @param title: window title of chooser to close (C++: const char *) - @return: success - -Help on function close_widget in module ida_kernwin: - -close_widget(*args) - close_widget(widget, options) - - - Close widget ( 'ui_close_widget' , only gui version). - - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) - -Help on function clr_cancelled in module ida_kernwin: - -clr_cancelled(*args) - clr_cancelled() - - - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) - -Help on function create_code_viewer in module ida_kernwin: - -create_code_viewer(*args) - 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. - - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) - -Help on function create_empty_widget in module ida_kernwin: - -create_empty_widget(*args) - create_empty_widget(title, icon=-1) -> TWidget * - - - Create an empty widget, serving as a container for custom user widgets - - @param title (C++: const char *) - @param icon (C++: int) - -Help on function create_menu in module ida_kernwin: - -create_menu(*args) - 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-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - - // The new 'My menu' submenu will appear in the 'Comments' submenu - // before the 'Enter comment..." command - create_menu("(...)", "My menu", "Edit/Comments/Enter comment..."); - - or - - // The new 'My menu' submenu will appear at the end of the - // 'Comments' submenu. - create_menu("(...)", "My menu", "Edit/Comments/"); - - If the above fails, the new menu will be appended to the menubar. - - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) - @return: success - -Help on function create_toolbar in module ida_kernwin: - -create_toolbar(*args) - create_toolbar(name, label, before=None, flags=0) -> bool - - - Create a toolbar with the given name, label and optional position - - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) - @return: success - -Help on function custom_viewer_jump in module ida_kernwin: - -custom_viewer_jump(*args) - custom_viewer_jump(v, loc, flags=0) -> bool - - - Append 'loc' to the viewer's history, and cause the viewer to display - it. - - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) - @return: success - -Help on function del_hotkey in module ida_kernwin: - -del_hotkey(*args) - del_hotkey(pyctx) -> bool - - - Deletes a previously registered function hotkey - - @param ctx: Hotkey context previously returned by add_hotkey() - - @return: Boolean. - -Help on function del_idc_hotkey in module ida_kernwin: - -del_idc_hotkey(*args) - del_idc_hotkey(hotkey) -> bool - - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - -Help on function delete_menu in module ida_kernwin: - -delete_menu(*args) - delete_menu(name) -> bool - - - Delete an existing menu - - @param name: name of menu (C++: const char *) - @return: success - -Help on function delete_toolbar in module ida_kernwin: - -delete_toolbar(*args) - delete_toolbar(name) -> bool - - - Delete an existing toolbar - - @param name: name of toolbar (C++: const char *) - @return: success - -Help on function detach_action_from_menu in module ida_kernwin: - -detach_action_from_menu(*args) - detach_action_from_menu(menupath, name) -> bool - - - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) - @return: success - -Help on function detach_action_from_popup in module ida_kernwin: - -detach_action_from_popup(*args) - 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. - - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) - -Help on function detach_action_from_toolbar in module ida_kernwin: - -detach_action_from_toolbar(*args) - detach_action_from_toolbar(toolbar_name, name) -> bool - - - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success - -Help on class disasm_line_t in module ida_kernwin: - -class disasm_line_t(__builtin__.object) - | Proxy of C++ disasm_line_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> disasm_line_t - | __init__(self, other) -> disasm_line_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | at - | disasm_line_t_at_get(self) -> place_t - | - | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t - | - | is_default - | disasm_line_t_is_default_get(self) -> bool - | - | line - | disasm_line_t_line_get(self) -> qstring * - | - | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_disasm_line_t(self) - -Help on class disasm_text_t in module ida_kernwin: - -class disasm_text_t(__builtin__.object) - | Proxy of C++ qvector< disasm_line_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> disasm_line_t - | - | __init__(self, *args) - | __init__(self) -> disasm_text_t - | __init__(self, x) -> disasm_text_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> disasm_line_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> disasm_line_t - | end(self) -> disasm_line_t - | - | erase(self, *args) - | erase(self, it) -> disasm_line_t - | erase(self, first, last) -> disasm_line_t - | - | extract(self, *args) - | extract(self) -> disasm_line_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=disasm_line_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> disasm_line_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> disasm_line_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_disasm_text_t(self) - -Help on function display_copyright_warning in module ida_kernwin: - -display_copyright_warning(*args) - display_copyright_warning() -> bool - - - Display copyright warning ( 'ui_copywarn' ). - - @return: yes/no - -Help on function display_widget in module ida_kernwin: - -display_widget(*args) - display_widget(widget, options, dest_ctrl=None) - - - Display a widget, dock it if not done before - - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) - -Help on function ea2str in module ida_kernwin: - -ea2str(*args) - ea2str(ea) -> str - - - Convert linear address to UTF-8 string. - - - @param ea (C++: ea_t) - -Help on function ea_viewer_history_push_and_jump in module ida_kernwin: - -ea_viewer_history_push_and_jump(*args) - 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. - - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) - -Help on function enable_chooser_item_attrs in module ida_kernwin: - -enable_chooser_item_attrs(*args) - 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_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - - @param chooser_caption (C++: const char *) - @param enable (C++: bool) - @return: success - -Help on class enumplace_t in module ida_kernwin: - -class enumplace_t(place_t) - | Proxy of C++ enumplace_t class. - | - | Method resolution order: - | enumplace_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bmask - | enumplace_t_bmask_get(self) -> bmask_t - | - | idx - | enumplace_t_idx_get(self) -> size_t - | - | serial - | enumplace_t_serial_get(self) -> uchar - | - | thisown - | The membership flag - | - | value - | enumplace_t_value_get(self) -> uval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_enumplace_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on function error in module ida_kernwin: - -error(*args) - error(format) - - - Display a fatal message in a message box and quit IDA - - @param format: message to print - -Help on function execute_sync in module ida_kernwin: - -execute_sync(*args) - execute_sync(py_callable, reqf) -> int - - - Executes a function in the context of the main thread. - If the current thread not the main thread, then the call is queued and - executed afterwards. - - @param callable: A python callable object, must return an integer value - @param reqf: one of MFF_ flags - @return: -1 or the return value of the callable - -Help on function execute_ui_requests in module ida_kernwin: - -execute_ui_requests(*args) - 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. - - @param callable_list: A list of python callable objects. - @note: A callable should return True if it wants to be called more than once. - @return: Boolean. False if the list contains a non callabale item - -Help on function find_widget in module ida_kernwin: - -find_widget(*args) - 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! - - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found - -Help on function formchgcbfa_close in module ida_kernwin: - -formchgcbfa_close(*args) - formchgcbfa_close(p_fa, close_normally) - -Help on function formchgcbfa_enable_field in module ida_kernwin: - -formchgcbfa_enable_field(*args) - formchgcbfa_enable_field(p_fa, fid, enable) -> bool - -Help on function formchgcbfa_get_field_value in module ida_kernwin: - -formchgcbfa_get_field_value(*args) - formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * - -Help on function formchgcbfa_get_focused_field in module ida_kernwin: - -formchgcbfa_get_focused_field(*args) - formchgcbfa_get_focused_field(p_fa) -> int - -Help on function formchgcbfa_move_field in module ida_kernwin: - -formchgcbfa_move_field(*args) - formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool - -Help on function formchgcbfa_refresh_field in module ida_kernwin: - -formchgcbfa_refresh_field(*args) - formchgcbfa_refresh_field(p_fa, fid) - -Help on function formchgcbfa_set_field_value in module ida_kernwin: - -formchgcbfa_set_field_value(*args) - formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool - -Help on function formchgcbfa_set_focused_field in module ida_kernwin: - -formchgcbfa_set_focused_field(*args) - formchgcbfa_set_focused_field(p_fa, fid) -> bool - -Help on function formchgcbfa_show_field in module ida_kernwin: - -formchgcbfa_show_field(*args) - formchgcbfa_show_field(p_fa, fid, show) -> bool - -Help on function free_custom_icon in module ida_kernwin: - -free_custom_icon(*args) - free_custom_icon(icon_id) - - - Frees an icon loaded with load_custom_icon() - -Help on function gen_disasm_text in module ida_kernwin: - -gen_disasm_text(*args) - gen_disasm_text(text, ea1, ea2, truncate_lines) - - - Generate disassembly text for a range. - - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) - -Help on function get_action_checkable in module ida_kernwin: - -get_action_checkable(*args) - get_action_checkable(name) -> bool - - - Get an action's checkability ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_checked in module ida_kernwin: - -get_action_checked(*args) - get_action_checked(name) -> bool - - - Get an action's checked state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_icon in module ida_kernwin: - -get_action_icon(*args) - get_action_icon(name) -> bool - - - Get an action's icon ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_label in module ida_kernwin: - -get_action_label(*args) - get_action_label(name) -> str - - - Get an action's label ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_shortcut in module ida_kernwin: - -get_action_shortcut(*args) - get_action_shortcut(name) -> str - - - Get an action's shortcut ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_state in module ida_kernwin: - -get_action_state(*args) - get_action_state(name) -> bool - - - Get an action's state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_tooltip in module ida_kernwin: - -get_action_tooltip(*args) - get_action_tooltip(name) -> str - - - Get an action's tooltip ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_visibility in module ida_kernwin: - -get_action_visibility(*args) - get_action_visibility(name) -> bool - - - Get an action's visibility ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_active_modal_widget in module ida_kernwin: - -get_active_modal_widget(*args) - 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 NULL even if it is currently shown. - - @return: TWidget * the active modal widget, or NULL - -Help on function get_addon_info in module ida_kernwin: - -get_addon_info(*args) - 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 - - @param id (C++: const char *) - @param info (C++: addon_info_t *) - @return: false if not found - -Help on function get_addon_info_idx in module ida_kernwin: - -get_addon_info_idx(*args) - 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 - - @param index (C++: int) - @param info (C++: addon_info_t *) - @return: false if index is out of range - -Help on function get_chooser_data in module ida_kernwin: - -get_chooser_data(*args) - get_chooser_data(chooser_caption, n) -> PyObject * - - - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. - - @param chooser_caption (C++: const char *) - @param n (C++: int) - -Help on function get_chooser_obj in module ida_kernwin: - -get_chooser_obj(*args) - get_chooser_obj(chooser_caption) -> void * - - - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This is object is chooser-specific. - - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser - -Help on function get_curline in module ida_kernwin: - -get_curline(*args) - 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) - -Help on function get_current_viewer in module ida_kernwin: - -get_current_viewer(*args) - get_current_viewer() -> TWidget * - - - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) - -Help on function get_current_widget in module ida_kernwin: - -get_current_widget(*args) - get_current_widget() -> TWidget * - - - Get a pointer to the current widget ( 'ui_get_current_widget' ). - -Help on function get_cursor in module ida_kernwin: - -get_cursor(*args) - get_cursor() -> bool - - - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based - -Help on function get_custom_viewer_curline in module ida_kernwin: - -get_custom_viewer_curline(*args) - 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 - - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line - -Help on function get_custom_viewer_location in module ida_kernwin: - -get_custom_viewer_location(*args) - get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool - - - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - - - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) - -Help on function get_custom_viewer_place in module ida_kernwin: - -get_custom_viewer_place(*args) - 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()' - - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - -Help on function get_ea_viewer_history_info in module ida_kernwin: - -get_ea_viewer_history_info(*args) - get_ea_viewer_history_info(nback, nfwd, v) -> bool - - - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) - -Help on function get_hexdump_ea in module ida_kernwin: - -get_hexdump_ea(*args) - get_hexdump_ea(hexdump_num) -> ea_t - - - Get the current address in a hex view. - - @param hexdump_num: number of hexview window (C++: int) - -Help on function get_highlight in module ida_kernwin: - -get_highlight(*args) - get_highlight(v) -> PyObject * - - - Returns the currently highlighted identifier and flags - - @return: a tuple (text, flags), or None if nothing - is highlighted or in case of error. - -Help on function get_kernel_version in module ida_kernwin: - -get_kernel_version(*args) - get_kernel_version() -> str - - - Get IDA kernel version (in a string like "5.1"). - -Help on function get_key_code in module ida_kernwin: - -get_key_code(*args) - get_key_code(keyname) -> ushort - - - Get keyboard key code by its name ( 'ui_get_key_code' ) - - - @param keyname (C++: const char *) - -Help on function get_navband_ea in module ida_kernwin: - -get_navband_ea(*args) - get_navband_ea(pixel) -> ea_t - - - Translate the pixel position on the navigation band, into an address. - - - @param pixel (C++: int) - -Help on function get_navband_pixel in module ida_kernwin: - -get_navband_pixel(*args) - get_navband_pixel(ea) -> int - - - Maps an address, onto a pixel coordinate within the navband - - @param ea: The address to map - @return: a list [pixel, is_vertical] - -Help on function get_opnum in module ida_kernwin: - -get_opnum(*args) - get_opnum() -> int - - - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) - -Help on function get_output_curline in module ida_kernwin: - -get_output_curline(*args) - get_output_curline(mouse) -> str - - - Get current line of output window ( 'ui_get_output_curline' ). - - @param mouse: current for mouse pointer? (C++: bool) - @return: false if output contains no text - -Help on function get_output_cursor in module ida_kernwin: - -get_output_cursor(*args) - get_output_cursor() -> bool - - - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible - -Help on function get_output_selected_text in module ida_kernwin: - -get_output_selected_text(*args) - get_output_selected_text() -> str - - - Returns selected text from output window ( - 'ui_get_output_selected_text' ). - - @return: true if there is a selection - -Help on function get_place_class in module ida_kernwin: - -get_place_class(*args) - 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()' . - - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found - -Help on function get_place_class_id in module ida_kernwin: - -get_place_class_id(*args) - get_place_class_id(name) -> int - - - Get the place class ID for the place that has been registered as - 'name'. - - @param name: the class name (C++: const char *) - @return: the place class ID, or -1 if not found - -Help on function get_place_class_template in module ida_kernwin: - -get_place_class_template(*args) - get_place_class_template(id) -> place_t - - - See 'get_place_class()' - - - @param id (C++: int) - -Help on function get_registered_actions in module ida_kernwin: - -get_registered_actions(*args) - get_registered_actions() -> PyObject * - - - Get a list of all currently-registered actions - -Help on function get_screen_ea in module ida_kernwin: - -get_screen_ea(*args) - get_screen_ea() -> ea_t - - - Get the address at the screen cursor ( 'ui_screenea' ) - -Help on function get_tab_size in module ida_kernwin: - -get_tab_size(*args) - get_tab_size(path) -> int - - - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) - -Help on function get_user_strlist_options in module ida_kernwin: - -get_user_strlist_options(*args) - get_user_strlist_options(out) - -Help on function get_view_renderer_type in module ida_kernwin: - -get_view_renderer_type(*args) - 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' ) - - - @param v (C++: TWidget *) - -Help on function get_viewer_place_type in module ida_kernwin: - -get_viewer_place_type(*args) - 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' ). - - - @param viewer (C++: TWidget *) - -Help on function get_viewer_user_data in module ida_kernwin: - -get_viewer_user_data(*args) - get_viewer_user_data(viewer) -> void * - - - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - - - @param viewer (C++: TWidget *) - -Help on function get_widget_title in module ida_kernwin: - -get_widget_title(*args) - get_widget_title(widget) -> str - - - Get the TWidget's title ( 'ui_get_widget_title' ). - - - @param widget (C++: TWidget *) - -Help on function get_widget_type in module ida_kernwin: - -get_widget_type(*args) - get_widget_type(widget) -> twidget_type_t - - - Get the type of the TWidget * ( 'ui_get_widget_type' ). - - - @param widget (C++: TWidget *) - -Help on function get_window_id in module ida_kernwin: - -get_window_id(*args) - get_window_id(name=None) -> void * - - - Get the system-specific window ID (GUI version only) - - @param name (C++: const char *) - @return: the low-level window ID - -Help on function hide_wait_box in module ida_kernwin: - -hide_wait_box(*args) - hide_wait_box() - - - Hide the "Please wait dialog box". - -Help on class idaplace_t in module ida_kernwin: - -class idaplace_t(place_t) - | Proxy of C++ idaplace_t class. - | - | Method resolution order: - | idaplace_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ea - | idaplace_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_idaplace_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on function info in module ida_kernwin: - -info(*args) - info(format) - -Help on function install_command_interpreter in module ida_kernwin: - -install_command_interpreter(*args) - install_command_interpreter(py_obj) -> int - - - Install command line interpreter ( 'ui_install_cli' ) - -Help on function internal_register_place_class in module ida_kernwin: - -internal_register_place_class(*args) - internal_register_place_class(tmplate, flags, owner, sdk_version) -> int - -Help on function is_action_enabled in module ida_kernwin: - -is_action_enabled(*args) - is_action_enabled(s) -> bool - - - Check if the given action state is one of AST_ENABLE*. - - - @param s (C++: action_state_t) - -Help on function is_chooser_widget in module ida_kernwin: - -is_chooser_widget(*args) - is_chooser_widget(t) -> bool - - - Does the given widget type specify a chooser widget? - - - @param t (C++: twidget_type_t) - -Help on function is_idaq in module ida_kernwin: - -is_idaq(*args) - is_idaq() -> bool - - - Returns True or False depending if IDAPython is hosted by IDAQ - -Help on function is_msg_inited in module ida_kernwin: - -is_msg_inited(*args) - is_msg_inited() -> bool - - - Can we use msg() functions? - -Help on function is_place_class_ea_capable in module ida_kernwin: - -is_place_class_ea_capable(*args) - is_place_class_ea_capable(id) -> bool - - - See 'get_place_class()' - - - @param id (C++: int) - -Help on function is_refresh_requested in module ida_kernwin: - -is_refresh_requested(*args) - is_refresh_requested(mask) -> bool - - - Get a refresh request state - - @param mask: Window refresh flags (C++: uint64) - @return: the state (set or cleared) - -Help on class jobj_wrapper_t in module ida_kernwin: - -class jobj_wrapper_t(__builtin__.object) - | Proxy of C++ jobj_wrapper_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | get_dict(self, *args) - | get_dict(self) -> PyObject * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - -Help on function jumpto in module ida_kernwin: - -jumpto(*args) - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - jumpto(custom_viewer, place, x, y) -> bool - - - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success - -Help on function load_custom_icon in module ida_kernwin: - -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. - - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format - - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it - - - Load an icon from a file ( 'ui_load_custom_icon_file' ). Also see - 'load_custom_icon(const void *, unsigned int, const char *)' - - @return: icon id - -Help on function load_dbg_dbginfo in module ida_kernwin: - -load_dbg_dbginfo(*args) - load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - - - Load debugging information from a file. - - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) - -Help on function lookup_key_code in module ida_kernwin: - -lookup_key_code(*args) - lookup_key_code(key, shift, is_qt) -> ushort - - - Get shortcut code previously created by 'ui_get_key_code' . - - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) - -Help on function msg in module ida_kernwin: - -msg(*args) - msg(o) -> PyObject * - - - Display an UTF-8 string in the message window - - The result of the stringification of the arguments - will be treated as an UTF-8 string. - - @param message: message to print (formatting is done in Python) - - This function can be used to debug IDAPython scripts - -Help on function msg_clear in module ida_kernwin: - -msg_clear(*args) - msg_clear() - - - Clear the "Output window". - -Help on function msg_get_lines in module ida_kernwin: - -msg_get_lines(*args) - msg_get_lines(count=-1) -> PyObject * - - - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) - - @param count: The number of lines to retrieve. -1 means: all (C++: - int) - -Help on function msg_save in module ida_kernwin: - -msg_save(*args) - msg_save(path) -> bool - - - Save the "Output window" contents into a file - - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) - @return: success - -Help on function nomem in module ida_kernwin: - -nomem(*args) - nomem(format) - -Help on function open_bpts_window in module ida_kernwin: - -open_bpts_window(*args) - open_bpts_window(ea) -> TWidget * - - - Open the breakpoints window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_calls_window in module ida_kernwin: - -open_calls_window(*args) - open_calls_window(ea) -> TWidget * - - - Open the function calls window ( 'ui_open_builtin' ). - - @param ea (C++: ea_t) - @return: pointer to resulting window - -Help on function open_disasm_window in module ida_kernwin: - -open_disasm_window(*args) - open_disasm_window(window_title, ranges=None) -> TWidget * - - - Open a disassembly view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) - @return: pointer to resulting window - -Help on function open_enums_window in module ida_kernwin: - -open_enums_window(*args) - open_enums_window(const_id=BADADDR) -> TWidget * - - - Open the enums window ( 'ui_open_builtin' ). - - @param const_id: index of entry to select by default (C++: tid_t) - @return: pointer to resulting window - -Help on function open_exports_window in module ida_kernwin: - -open_exports_window(*args) - open_exports_window(ea) -> TWidget * - - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_frame_window in module ida_kernwin: - -open_frame_window(*args) - open_frame_window(pfn, offset) -> TWidget * - - - Open the frame window for the given function ( 'ui_open_builtin' ). - - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise - -Help on function open_funcs_window in module ida_kernwin: - -open_funcs_window(*args) - open_funcs_window(ea) -> TWidget * - - - Open the functions window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_hexdump_window in module ida_kernwin: - -open_hexdump_window(*args) - open_hexdump_window(window_title) -> TWidget * - - - Open a hexdump view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) - @return: pointer to resulting window - -Help on function open_imports_window in module ida_kernwin: - -open_imports_window(*args) - open_imports_window(ea) -> TWidget * - - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_loctypes_window in module ida_kernwin: - -open_loctypes_window(*args) - open_loctypes_window(ordinal) -> TWidget * - - - Open the local types window ( 'ui_open_builtin' ). - - @param ordinal: ordinal of type to select by default (C++: int) - @return: pointer to resulting window - -Help on function open_modules_window in module ida_kernwin: - -open_modules_window(*args) - open_modules_window() -> TWidget * - - - Open the modules window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_names_window in module ida_kernwin: - -open_names_window(*args) - open_names_window(ea) -> TWidget * - - - Open the names window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_navband_window in module ida_kernwin: - -open_navband_window(*args) - open_navband_window(ea, zoom) -> TWidget * - - - Open the navigation band window ( 'ui_open_builtin' ). - - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) - @return: pointer to resulting window - -Help on function open_notepad_window in module ida_kernwin: - -open_notepad_window(*args) - open_notepad_window() -> TWidget * - - - Open the notepad window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_problems_window in module ida_kernwin: - -open_problems_window(*args) - open_problems_window(ea) -> TWidget * - - - Open the problems window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_segments_window in module ida_kernwin: - -open_segments_window(*args) - open_segments_window(ea) -> TWidget * - - - Open the segments window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_segregs_window in module ida_kernwin: - -open_segregs_window(*args) - open_segregs_window(ea) -> TWidget * - - - Open the segment registers window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_selectors_window in module ida_kernwin: - -open_selectors_window(*args) - open_selectors_window() -> TWidget * - - - Open the selectors window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_signatures_window in module ida_kernwin: - -open_signatures_window(*args) - open_signatures_window() -> TWidget * - - - Open the signatures window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_stack_window in module ida_kernwin: - -open_stack_window(*args) - open_stack_window() -> TWidget * - - - Open the call stack window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_strings_window in module ida_kernwin: - -open_strings_window(*args) - open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * - - - Open the strings window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) - @return: pointer to resulting window - -Help on function open_structs_window in module ida_kernwin: - -open_structs_window(*args) - open_structs_window(id=BADADDR, offset=0) -> TWidget * - - - Open the structs window ( 'ui_open_builtin' ). - - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window - -Help on function open_threads_window in module ida_kernwin: - -open_threads_window(*args) - open_threads_window() -> TWidget * - - - Open the threads window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_tils_window in module ida_kernwin: - -open_tils_window(*args) - open_tils_window() -> TWidget * - - - Open the type libraries window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_trace_window in module ida_kernwin: - -open_trace_window(*args) - open_trace_window() -> TWidget * - - - Open the trace window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_url in module ida_kernwin: - -open_url(*args) - open_url(url) - - - Open the given url ( 'ui_open_url' ) - - - @param url (C++: const char *) - -Help on function open_xrefs_window in module ida_kernwin: - -open_xrefs_window(*args) - open_xrefs_window(ea) -> TWidget * - - - Open the cross references window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on class place_t in module ida_kernwin: - -class place_t(__builtin__.object) - | Proxy of C++ place_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_place_t(self) - -Help on function place_t_as_enumplace_t in module ida_kernwin: - -place_t_as_enumplace_t(*args) - place_t_as_enumplace_t(p) -> enumplace_t - -Help on function place_t_as_idaplace_t in module ida_kernwin: - -place_t_as_idaplace_t(*args) - place_t_as_idaplace_t(p) -> idaplace_t - -Help on function place_t_as_simpleline_place_t in module ida_kernwin: - -place_t_as_simpleline_place_t(*args) - place_t_as_simpleline_place_t(p) -> simpleline_place_t - -Help on function place_t_as_structplace_t in module ida_kernwin: - -place_t_as_structplace_t(*args) - place_t_as_structplace_t(p) -> structplace_t - -Help on function plgform_close in module ida_kernwin: - -plgform_close(*args) - plgform_close(py_link, options) - -Help on function plgform_get_widget in module ida_kernwin: - -plgform_get_widget(*args) - plgform_get_widget(py_link) -> TWidget * - -Help on function plgform_new in module ida_kernwin: - -plgform_new(*args) - plgform_new() -> PyObject * - -Help on function plgform_show in module ida_kernwin: - -plgform_show(*args) - plgform_show(py_link, py_obj, caption, options=WOPN_DP_TAB|WOPN_RESTORE) -> bool - -Help on function process_ui_action in module ida_kernwin: - -process_ui_action(*args) - process_ui_action(name, flags=0) -> bool - - - Invokes an IDA UI action by name - - @param name: action name - @return: Boolean - -Help on function py_get_ask_form in module ida_kernwin: - -py_get_ask_form(*args) - py_get_ask_form() -> size_t - -Help on function py_get_open_form in module ida_kernwin: - -py_get_open_form(*args) - py_get_open_form() -> size_t - -Help on function py_load_custom_icon_data in module ida_kernwin: - -py_load_custom_icon_data(*args) - py_load_custom_icon_data(data, format) -> int - -Help on function py_load_custom_icon_fn in module ida_kernwin: - -py_load_custom_icon_fn(*args) - py_load_custom_icon_fn(filename) -> int - -Help on function py_register_compiled_form in module ida_kernwin: - -py_register_compiled_form(*args) - py_register_compiled_form(py_form) - -Help on function py_ss_restore_callback in module ida_kernwin: - -py_ss_restore_callback(*args) - py_ss_restore_callback(err_msg, userdata) - -Help on function py_unregister_compiled_form in module ida_kernwin: - -py_unregister_compiled_form(*args) - py_unregister_compiled_form(py_form) - -Help on function pyidag_bind in module ida_kernwin: - -pyidag_bind(*args) - pyidag_bind(_self) -> bool - -Help on function pyidag_unbind in module ida_kernwin: - -pyidag_unbind(*args) - pyidag_unbind(_self) -> bool - -Help on function pyscv_add_line in module ida_kernwin: - -pyscv_add_line(*args) - pyscv_add_line(py_this, py_sl) -> bool - -Help on function pyscv_clear_lines in module ida_kernwin: - -pyscv_clear_lines(*args) - pyscv_clear_lines(py_this) -> PyObject * - -Help on function pyscv_close in module ida_kernwin: - -pyscv_close(*args) - pyscv_close(py_this) - -Help on function pyscv_count in module ida_kernwin: - -pyscv_count(*args) - pyscv_count(py_this) -> size_t - -Help on function pyscv_del_line in module ida_kernwin: - -pyscv_del_line(*args) - pyscv_del_line(py_this, nline) -> bool - -Help on function pyscv_edit_line in module ida_kernwin: - -pyscv_edit_line(*args) - pyscv_edit_line(py_this, nline, py_sl) -> bool - -Help on function pyscv_get_current_line in module ida_kernwin: - -pyscv_get_current_line(*args) - pyscv_get_current_line(py_this, mouse, notags) -> PyObject * - -Help on function pyscv_get_current_word in module ida_kernwin: - -pyscv_get_current_word(*args) - pyscv_get_current_word(py_this, mouse) -> PyObject * - -Help on function pyscv_get_line in module ida_kernwin: - -pyscv_get_line(*args) - pyscv_get_line(py_this, nline) -> PyObject * - -Help on function pyscv_get_pos in module ida_kernwin: - -pyscv_get_pos(*args) - pyscv_get_pos(py_this, mouse) -> PyObject * - -Help on function pyscv_get_selection in module ida_kernwin: - -pyscv_get_selection(*args) - pyscv_get_selection(py_this) -> PyObject * - -Help on function pyscv_get_widget in module ida_kernwin: - -pyscv_get_widget(*args) - pyscv_get_widget(py_this) -> TWidget * - -Help on function pyscv_init in module ida_kernwin: - -pyscv_init(*args) - pyscv_init(py_link, title) -> PyObject * - -Help on function pyscv_insert_line in module ida_kernwin: - -pyscv_insert_line(*args) - pyscv_insert_line(py_this, nline, py_sl) -> bool - -Help on function pyscv_is_focused in module ida_kernwin: - -pyscv_is_focused(*args) - pyscv_is_focused(py_this) -> bool - -Help on function pyscv_jumpto in module ida_kernwin: - -pyscv_jumpto(*args) - pyscv_jumpto(py_this, ln, x, y) -> bool - -Help on function pyscv_patch_line in module ida_kernwin: - -pyscv_patch_line(*args) - pyscv_patch_line(py_this, nline, offs, value) -> bool - -Help on function pyscv_refresh in module ida_kernwin: - -pyscv_refresh(*args) - pyscv_refresh(py_this) -> bool - -Help on function pyscv_show in module ida_kernwin: - -pyscv_show(*args) - pyscv_show(py_this) -> bool - -Help on function qcleanline in module ida_kernwin: - -qcleanline(*args) - qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - - - Performs some cleanup operations to a line. - - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) - @return: length of line - -Help on class quick_widget_commands_t in module ida_kernwin: - -class quick_widget_commands_t - | # ---------------------------------------------------------------------- - | # This provides an alternative to register_action()+attach_action_to_popup_menu() - | - | Methods defined here: - | - | __init__(self, callback) - | - | add(self, caption, flags, menu_index, icon, emb, shortcut) - | - | populate_popup(self, widget, popup) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | _ah_t = - | - | - | _cmd_t = - -Help on function read_range_selection in module ida_kernwin: - -read_range_selection(*args) - read_range_selection(v) -> bool - - - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) - -Help on function read_selection in module ida_kernwin: - -read_selection(*args) - 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, ...) - - @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. - @param p1: Storage for the "to" part of the selection. - @return: a bool value indicating success. - -Help on function refresh_chooser in module ida_kernwin: - -refresh_chooser(*args) - refresh_chooser(title) -> bool - - - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - - @param title: title of chooser (C++: const char *) - @return: success - -Help on function refresh_choosers in module ida_kernwin: - -refresh_choosers(*args) - refresh_choosers() - -Help on function refresh_idaview in module ida_kernwin: - -refresh_idaview(*args) - refresh_idaview() - - - Refresh marked windows ( 'ui_refreshmarked' ) - -Help on function refresh_idaview_anyway in module ida_kernwin: - -refresh_idaview_anyway(*args) - refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead - -Help on function refresh_navband in module ida_kernwin: - -refresh_navband(*args) - refresh_navband(force) - - - Refresh navigation band if changed ( 'ui_refresh_navband' ). - - @param force: refresh regardless (C++: bool) - -Help on function register_action in module ida_kernwin: - -register_action(*args) - 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. - - @param desc: action to register (C++: const action_desc_t &) - @return: success - -Help on function register_addon in module ida_kernwin: - -register_addon(*args) - 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 - - @param info (C++: const addon_info_t *) - -Help on function register_and_attach_to_menu in module ida_kernwin: - -register_and_attach_to_menu(*args) - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner) -> 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. - - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: const plugin_t *) - -Help on function register_timer in module ida_kernwin: - -register_timer(*args) - register_timer(interval, py_callback) -> PyObject * - - - Register a timer - - @param interval: Interval in milliseconds - @param 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 - -Help on function remove_command_interpreter in module ida_kernwin: - -remove_command_interpreter(*args) - remove_command_interpreter(cli_idx) - - - Remove command line interpreter ( 'ui_install_cli' ) - -Help on class renderer_pos_info_t in module ida_kernwin: - -class renderer_pos_info_t(__builtin__.object) - | Proxy of C++ renderer_pos_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> renderer_pos_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cx - | renderer_pos_info_t_cx_get(self) -> short - | - | cy - | renderer_pos_info_t_cy_get(self) -> short - | - | node - | renderer_pos_info_t_node_get(self) -> int - | - | sx - | renderer_pos_info_t_sx_get(self) -> short - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_renderer_pos_info_t(self) - -Help on function repaint_custom_viewer in module ida_kernwin: - -repaint_custom_viewer(*args) - repaint_custom_viewer(custom_viewer) - - - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - - - @param custom_viewer (C++: TWidget *) - -Help on function replace_wait_box in module ida_kernwin: - -replace_wait_box(*args) - replace_wait_box(format) - - - Replace the label of "Please wait dialog box". - - - @param format (C++: const char *) - -Help on function request_refresh in module ida_kernwin: - -request_refresh(*args) - request_refresh(mask, cnd=True) - - - Request a refresh of a builtin window. - - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) - -Help on function restore_database_snapshot in module ida_kernwin: - -restore_database_snapshot(*args) - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * - - - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. - - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - @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. - -Help on function set_cancelled in module ida_kernwin: - -set_cancelled(*args) - set_cancelled() - - - Set "Cancelled" flag ( 'ui_set_cancelled' ) - -Help on function set_code_viewer_handler in module ida_kernwin: - -set_code_viewer_handler(*args) - 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' - ). - - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) - @return: old value of the handler or data - -Help on function set_code_viewer_is_source in module ida_kernwin: - -set_code_viewer_is_source(*args) - 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' ). - - - @param code_viewer (C++: TWidget *) - -Help on function set_code_viewer_line_handlers in module ida_kernwin: - -set_code_viewer_line_handlers(*args) - 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 - NULL - - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) - -Help on function set_code_viewer_lines_alignment in module ida_kernwin: - -set_code_viewer_lines_alignment(*args) - set_code_viewer_lines_alignment(code_viewer, align) -> bool - - - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param align (C++: int) - -Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: - -set_code_viewer_lines_icon_margin(*args) - 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' ). - - - @param code_viewer (C++: TWidget *) - @param margin (C++: int) - -Help on function set_code_viewer_lines_radix in module ida_kernwin: - -set_code_viewer_lines_radix(*args) - set_code_viewer_lines_radix(code_viewer, radix) -> bool - - - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param radix (C++: int) - -Help on function set_code_viewer_user_data in module ida_kernwin: - -set_code_viewer_user_data(*args) - set_code_viewer_user_data(code_viewer, ud) -> bool - - - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) - -Help on function set_custom_viewer_qt_aware in module ida_kernwin: - -set_custom_viewer_qt_aware(*args) - set_custom_viewer_qt_aware(custom_viewer) -> bool - - - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - - - @param custom_viewer (C++: TWidget *) - -Help on function set_dock_pos in module ida_kernwin: - -set_dock_pos(*args) - 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. - - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows - @return: Boolean - - Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window - -Help on function set_highlight in module ida_kernwin: - -set_highlight(*args) - set_highlight(viewer, str, flags) -> bool - - - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) - @return: false if an error occurred - -Help on function set_nav_colorizer in module ida_kernwin: - -set_nav_colorizer(*args) - set_nav_colorizer(new_py_colorizer) -> PyObject * - - - Set a new colorizer for the navigation band. - - The 'callback' is a function of 2 arguments: - - ea (the EA to colorize for) - - nbytes (the number of bytes at that EA) - and must return a 'long' value. - - The previous colorizer is returned, allowing - the new 'callback' to use 'call_nav_colorizer' - with it. - - Note that the previous colorizer is returned - only the first time set_nav_colorizer() is called: - due to the way the colorizers API is defined in C, - it is impossible to chain more than 2 colorizers - in IDAPython: the original, IDA-provided colorizer, - and a user-provided one. - - Example: colorizer inverting the color provided by the IDA colorizer: - def my_colorizer(ea, nbytes): - global ida_colorizer - orig = idaapi.call_nav_colorizer(ida_colorizer, ea, nbytes) - return long(~orig) - - ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) - -Help on function set_view_renderer_type in module ida_kernwin: - -set_view_renderer_type(*args) - set_view_renderer_type(v, rt) - - - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - - - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) - -Help on function show_wait_box in module ida_kernwin: - -show_wait_box(*args) - show_wait_box(message) - - - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. - -Help on class simplecustviewer_t in module ida_kernwin: - -class simplecustviewer_t(__builtin__.object) - | The base class for implementing simple custom viewers - | - | Methods defined here: - | - | 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 - | - | @param 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. - | @param mouse: Current line at mouse pos - | @param 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 - | @param 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 - | @param 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. - | @param 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 close, then it will call Create() for you - | @return: Boolean - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | _simplecustviewer_t__make_sl_arg = __make_sl_arg(line, fgcolor=None, bgcolor=None) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | UI_Hooks_Trampoline = - -Help on class simpleline_place_t in module ida_kernwin: - -class simpleline_place_t(place_t) - | Proxy of C++ simpleline_place_t class. - | - | Method resolution order: - | simpleline_place_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | n - | simpleline_place_t_n_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_simpleline_place_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on class simpleline_t in module ida_kernwin: - -class simpleline_t(__builtin__.object) - | Proxy of C++ simpleline_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> simpleline_t - | __init__(self, c, str) -> simpleline_t - | __init__(self, str) -> simpleline_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t - | - | color - | simpleline_t_color_get(self) -> color_t - | - | line - | simpleline_t_line_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_simpleline_t(self) - -Help on function str2ea in module ida_kernwin: - -str2ea(*args) - str2ea(str, screenEA=BADADDR) -> ea_t - - - Converts a string express to EA. The expression evaluator may be called as well. - - @return: BADADDR or address value - -Help on function str2user in module ida_pro: - -str2user(*args) - str2user(str) -> PyObject * - - - Insert C-style escape characters to string - - @return: new string with escape characters inserted - -Help on function strarray in module ida_kernwin: - -strarray(*args) - 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 "". - - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) - -Help on class strarray_t in module ida_kernwin: - -class strarray_t(__builtin__.object) - | Proxy of C++ strarray_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> strarray_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | code - | strarray_t_code_get(self) -> int - | - | text - | strarray_t_text_get(self) -> char const * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_strarray_t(self) - -Help on class structplace_t in module ida_kernwin: - -class structplace_t(place_t) - | Proxy of C++ structplace_t class. - | - | Method resolution order: - | structplace_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | idx - | structplace_t_idx_get(self) -> uval_t - | - | offset - | structplace_t_offset_get(self) -> uval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_structplace_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on class sync_source_t in module ida_kernwin: - -class sync_source_t(__builtin__.object) - | Proxy of C++ sync_source_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, _o) -> bool - | - | __init__(self, *args) - | __init__(self, _view) -> sync_source_t - | __init__(self, _regname) -> sync_source_t - | - | __ne__(self, *args) - | __ne__(self, _o) -> bool - | - | __repr__ = _swig_repr(self) - | - | get_register(self, *args) - | get_register(self) -> char const * - | - | get_widget(self, *args) - | get_widget(self) -> TWidget const * - | - | is_register(self, *args) - | is_register(self) -> bool - | - | is_widget(self, *args) - | is_widget(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_sync_source_t(self) - -Help on function sync_sources in module ida_kernwin: - -sync_sources(*args) - sync_sources(what, _with, sync) -> bool - - - [Un]synchronize sources - - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) - @return: success - -Help on function take_database_snapshot in module ida_kernwin: - -take_database_snapshot(*args) - take_database_snapshot(ss) -> PyObject * - - - Take a database snapshot ( 'ui_take_database_snapshot' ). - - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success - -Help on class textctrl_info_t in module ida_kernwin: - -class textctrl_info_t(ida_idaapi.py_clinked_object_t) - | Class representing textctrl_info_t - | - | Method resolution order: - | textctrl_info_t - | ida_idaapi.py_clinked_object_t - | ida_idaapi.pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __get_flags__(self) - | Returns the flags value - | - | __get_tabsize__(self) - | Returns the tabsize value - | - | __init__(self, text='', flags=0, tabsize=0) - | - | __set_flags__(self, flags) - | Sets the flags value - | - | __set_tabsize__(self, tabsize) - | Sets the tabsize value - | - | _create_clink(self) - | - | _del_clink(self, lnk) - | - | _get_clink_ptr(self) - | - | _textctrl_info_t__get_text = __get_text(self) - | Sets the text value - | - | _textctrl_info_t__set_text = __set_text(self, s) - | Sets the text value - | - | assign(self, other) - | Copies the contents of 'other' to 'self' - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | Returns the flags value - | - | tabsize - | Returns the tabsize value - | - | text - | Sets the text value - | - | value - | Sets the text value - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | TXTF_ACCEPTTABS = 2 - | - | TXTF_AUTOINDENT = 1 - | - | TXTF_FIXEDFONT = 32 - | - | TXTF_MODIFIED = 16 - | - | TXTF_READONLY = 4 - | - | TXTF_SELECTED = 8 - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_idaapi.py_clinked_object_t: - | - | __del__(self) - | Delete the link upon object destruction (only if not static) - | - | _free(self) - | Explicitly delete the link (only if not static) - | - | copy(self) - | Returns a new copy of this class - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.py_clinked_object_t: - | - | clink - | - | clink_ptr - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on function textctrl_info_t_assign in module ida_kernwin: - -textctrl_info_t_assign(*args) - textctrl_info_t_assign(_self, other) -> bool - -Help on function textctrl_info_t_create in module ida_kernwin: - -textctrl_info_t_create(*args) - textctrl_info_t_create() -> PyObject * - -Help on function textctrl_info_t_destroy in module ida_kernwin: - -textctrl_info_t_destroy(*args) - textctrl_info_t_destroy(py_obj) -> bool - -Help on function textctrl_info_t_get_clink in module ida_kernwin: - -textctrl_info_t_get_clink(*args) - textctrl_info_t_get_clink(_self) -> textctrl_info_t * - -Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: - -textctrl_info_t_get_clink_ptr(*args) - textctrl_info_t_get_clink_ptr(_self) -> PyObject * - -Help on function textctrl_info_t_get_flags in module ida_kernwin: - -textctrl_info_t_get_flags(*args) - textctrl_info_t_get_flags(_self) -> unsigned int - -Help on function textctrl_info_t_get_tabsize in module ida_kernwin: - -textctrl_info_t_get_tabsize(*args) - textctrl_info_t_get_tabsize(_self) -> unsigned int - -Help on function textctrl_info_t_get_text in module ida_kernwin: - -textctrl_info_t_get_text(*args) - textctrl_info_t_get_text(_self) -> char const * - -Help on function textctrl_info_t_set_flags in module ida_kernwin: - -textctrl_info_t_set_flags(*args) - textctrl_info_t_set_flags(_self, flags) -> bool - -Help on function textctrl_info_t_set_tabsize in module ida_kernwin: - -textctrl_info_t_set_tabsize(*args) - textctrl_info_t_set_tabsize(_self, tabsize) -> bool - -Help on function textctrl_info_t_set_text in module ida_kernwin: - -textctrl_info_t_set_text(*args) - textctrl_info_t_set_text(_self, s) -> bool - -Help on class twinpos_t in module ida_kernwin: - -class twinpos_t(__builtin__.object) - | Proxy of C++ twinpos_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> twinpos_t - | __init__(self, t) -> twinpos_t - | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | place(self, view) - | - | place_as_enumplace_t(self) - | - | place_as_idaplace_t(self) - | - | place_as_simpleline_place_t(self) - | - | place_as_structplace_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | at - | twinpos_t_at_get(self) -> place_t - | - | thisown - | The membership flag - | - | x - | twinpos_t_x_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_twinpos_t(self) - -Help on function ui_load_new_file in module ida_kernwin: - -ui_load_new_file(*args) - ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool - - - Display a load file dialog and load file ( 'ui_load_file' ). - - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) - -Help on class ui_requests_t in module ida_kernwin: - -class ui_requests_t(__builtin__.object) - | Proxy of C++ ui_requests_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ui_requests_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ui_requests_t(self) - -Help on function ui_run_debugger in module ida_kernwin: - -ui_run_debugger(*args) - ui_run_debugger(dbgopts, exename, argc, argv) -> bool - - - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) - @return: success - -Help on function unmark_selection in module ida_kernwin: - -unmark_selection(*args) - unmark_selection() - - - Unmark selection ( 'ui_unmarksel' ) - -Help on function unregister_action in module ida_kernwin: - -unregister_action(*args) - unregister_action(name) -> bool - - - Delete a previously-registered action ( 'ui_unregister_action' ). - - @param name: name of action (C++: const char *) - @return: success - -Help on function unregister_timer in module ida_kernwin: - -unregister_timer(*args) - unregister_timer(py_timerctx) -> bool - - - Unregister a timer - - @param 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. - -Help on function update_action_checkable in module ida_kernwin: - -update_action_checkable(*args) - update_action_checkable(name, checkable) -> bool - - - Update an action's checkability ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success - -Help on function update_action_checked in module ida_kernwin: - -update_action_checked(*args) - update_action_checked(name, checked) -> bool - - - Update an action's checked state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) - @return: success - -Help on function update_action_icon in module ida_kernwin: - -update_action_icon(*args) - update_action_icon(name, icon) -> bool - - - Update an action's icon ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) - @return: success - -Help on function update_action_label in module ida_kernwin: - -update_action_label(*args) - update_action_label(name, label) -> bool - - - Update an action's label ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) - @return: success - -Help on function update_action_shortcut in module ida_kernwin: - -update_action_shortcut(*args) - update_action_shortcut(name, shortcut) -> bool - - - Update an action's shortcut ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) - @return: success - -Help on function update_action_state in module ida_kernwin: - -update_action_state(*args) - update_action_state(name, state) -> bool - - - Update an action's state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) - @return: success - -Help on function update_action_tooltip in module ida_kernwin: - -update_action_tooltip(*args) - update_action_tooltip(name, tooltip) -> bool - - - Update an action's tooltip ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) - @return: success - -Help on function update_action_visibility in module ida_kernwin: - -update_action_visibility(*args) - update_action_visibility(name, visible) -> bool - - - Update an action's visibility ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) - @return: success - -Help on function user_cancelled in module ida_kernwin: - -user_cancelled(*args) - user_cancelled() -> bool - - - Test the ctrl-break flag ( 'ui_test_cancelled' ). - -Help on class view_mouse_event_location_t in module ida_kernwin: - -class view_mouse_event_location_t(__builtin__.object) - | Proxy of C++ view_mouse_event_location_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> view_mouse_event_location_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t - | - | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = view_mouse_event_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | button - | view_mouse_event_t_button_get(self) -> vme_button_t - | - | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t - | - | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t - | - | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t - | - | state - | view_mouse_event_t_state_get(self) -> view_event_state_t - | - | thisown - | The membership flag - | - | x - | view_mouse_event_t_x_get(self) -> uint32 - | - | y - | view_mouse_event_t_y_get(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_view_mouse_event_t(self) - -Help on function warning in module ida_kernwin: - -warning(*args) - warning(format) - - - Display a message in a message box - - @param 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 - -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_NO_UNDO -""" -useful for actions that do not modify the database. - -the action does not create an undo point. -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -trace view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CHOOSER_MENU_EDIT -""" -Values of the 'menu_index' parameter. - -Obsolete. Please don't use -""" - -ida_kernwin.CHOOSER_MENU_JUMP -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MENU_SEARCH -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MULTI_SELECTION -""" -enable for multiple selections. A callback of type -'chooser_multi_cb_t' will be called for all selected items. -""" - -ida_kernwin.CHOOSER_NO_SELECTION -""" -Flags. - -enable even if there's no selected item. 'n' will be NO_SELECTION for -a callback. -""" - -ida_kernwin.CHOOSER_POPUP_MENU -""" -Add command to the popup menu. -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.DP_BEFORE -""" -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. -""" - -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) -""" - -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" - -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" - -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -trace view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. 'execute_sync()' returns the request -id in this case. it can be used in 'cancel_exec_request()' . This flag -can be used to delay the code execution until the next UI loop run -even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -in the navigation history - -do not remember the current address -""" - -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" -=== ida_kernwin EPYDOC INJECTIONS END === -Help on function COLSTR in module ida_lines: - -COLSTR(str, tag) - Utility function to create a colored line - @param str: The string - @param tag: Color tag constant. One of SCOLOR_XXXX - -Help on function add_extra_cmt in module ida_lines: - -add_extra_cmt(*args) - add_extra_cmt(ea, isprev, format) -> bool - - - Add anterior/posterior comment line(s). - - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success - -Help on function add_extra_line in module ida_lines: - -add_extra_line(*args) - add_extra_line(ea, isprev, format) -> bool - - - Add anterior/posterior non-comment line(s). - - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) - @return: true if success - -Help on function add_pgm_cmt in module ida_lines: - -add_pgm_cmt(*args) - add_pgm_cmt(format) -> bool - - - Add anterior comment line(s) at the start of program. - - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success - -Help on function add_sourcefile in module ida_lines: - -add_sourcefile(*args) - add_sourcefile(ea1, ea2, filename) -> bool - - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success - -Help on class bgcolors_t in module ida_lines: - -class bgcolors_t(__builtin__.object) - | Proxy of C++ bgcolors_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bgcolors_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | epilog_color - | bgcolors_t_epilog_color_get(self) -> bgcolor_t - | - | prolog_color - | bgcolors_t_prolog_color_get(self) -> bgcolor_t - | - | switch_color - | bgcolors_t_switch_color_get(self) -> bgcolor_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bgcolors_t(self) - -Help on function calc_bg_color in module ida_lines: - -calc_bg_color(*args) - calc_bg_color(ea) -> bgcolor_t - - - Get background color for line at 'ea' - - @param ea (C++: ea_t) - @return: RGB color - -Help on function calc_prefix_color in module ida_lines: - -calc_prefix_color(*args) - calc_prefix_color(ea) -> color_t - - - Get prefix color for line at 'ea' - - @param ea (C++: ea_t) - @return: Line prefix colors - -Help on function create_encoding_helper in module ida_lines: - -create_encoding_helper(*args) - create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - -Help on function del_extra_cmt in module ida_lines: - -del_extra_cmt(*args) - del_extra_cmt(ea, what) - -Help on function del_sourcefile in module ida_lines: - -del_sourcefile(*args) - del_sourcefile(ea) -> bool - - - Delete information about the source file. - - @param ea: linear address (C++: ea_t) - @return: success - -Help on function delete_extra_cmts in module ida_lines: - -delete_extra_cmts(*args) - delete_extra_cmts(ea, what) - -Help on function generate_disasm_line in module ida_lines: - -generate_disasm_line(*args) - generate_disasm_line(ea, flags=0) -> str - -Help on function generate_disassembly in module ida_lines: - -generate_disassembly(*args) - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * - - - Generate disassembly lines (many lines) and put them into a buffer - - @param ea: address to generate disassembly for - @param max_lines: how many lines max to generate - @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines - -Help on function get_extra_cmt in module ida_lines: - -get_extra_cmt(*args) - get_extra_cmt(ea, what) -> ssize_t - -Help on function get_first_free_extra_cmtidx in module ida_lines: - -get_first_free_extra_cmtidx(*args) - get_first_free_extra_cmtidx(ea, start) -> int - -Help on function get_sourcefile in module ida_lines: - -get_sourcefile(*args) - get_sourcefile(ea, bounds=None) -> char const * - - - Get name of source file occupying the given address. - - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name - -Help on function requires_color_esc in module ida_lines: - -requires_color_esc(c) - Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean - - - Is the given char a color escape character? - -Help on function set_user_defined_prefix in module ida_lines: - -set_user_defined_prefix(*args) - set_user_defined_prefix(width, pycb) -> PyObject * - - - User-defined line-prefixes are displayed just after the autogenerated - line prefixes. In order to use them, the plugin should call the - following function to specify its width and contents. - @param width: the width of the user-defined prefix - @param callback: a get_user_defined_prefix callback to get the contents of the prefix. - Its arguments: - ea - linear address - lnnum - line number - indent - indent of the line contents (-1 means the default instruction) - indent and is used for instruction itself. see explanations for printf_line() - line - the line to be generated. the line usually contains color tags this argument - can be examined to decide whether to generated the prefix - It returns a buffer of size < bufsize - - In order to remove the callback before unloading the plugin, specify the width = 0 or the callback = None - -Help on function tag_addr in module ida_lines: - -tag_addr(*args) - tag_addr(ea) -> PyObject * - - - Insert an address mark into a string. - - @param ea: address to include (C++: ea_t) - -Help on function tag_advance in module ida_lines: - -tag_advance(*args) - tag_advance(line, cnt) -> int - - - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer - -Help on function tag_remove in module ida_lines: - -tag_remove(*args) - tag_remove(nonnul_instr) -> PyObject * - - - Remove color escape sequences from a string - @param colstr: the colored string with embedded tags - @return: a new string w/o the tags - -Help on function tag_skipcode in module ida_lines: - -tag_skipcode(*args) - tag_skipcode(line) -> int - - - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - - @param line (C++: const char *) - @return: moved pointer - -Help on function tag_skipcodes in module ida_lines: - -tag_skipcodes(*args) - tag_skipcodes(line) -> int - - - Move the pointer past all color codes. - - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL - -Help on function tag_strlen in module ida_lines: - -tag_strlen(*args) - tag_strlen(line) -> ssize_t - - - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error - -Help on function update_extra_cmt in module ida_lines: - -update_extra_cmt(*args) - update_extra_cmt(ea, what, str) - -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) -""" - -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" - -ida_lines.COLOR_CODE -""" -Single instruction. -""" - -ida_lines.COLOR_CURITEM -""" -Current item. -""" - -ida_lines.COLOR_CURLINE -""" -Current line. -""" - -ida_lines.COLOR_DATA -""" -Data bytes. -""" - -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Followed by a color code ( 'color_t' ). - -Escape character (OFF). -""" - -ida_lines.COLOR_ON -""" -Followed by a color code ( 'color_t' ). - -Escape character (ON). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. -""" - -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" - -ida_lines.SCOLOR_MACRO -""" -Macro. -""" - -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" - -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" - -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" - -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === -Help on function base2file in module ida_loader: - -base2file(*args) - base2file(fp, pos, ea1, ea2) -> int - - - Unload database to a binary file. This function works for wide byte - processors too. - - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) - @return: 1-ok(always), write error leads to immediate exit - -Help on function build_snapshot_tree in module ida_loader: - -build_snapshot_tree(*args) - build_snapshot_tree(root) -> bool - - - Build the snapshot tree. - - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) - @return: success - -Help on function clr_database_flag in module ida_loader: - -clr_database_flag(*args) - clr_database_flag(dbfl) - -Help on function extract_module_from_archive in module ida_loader: - -extract_module_from_archive(*args) - extract_module_from_archive(fname, is_remote=False) -> PyObject * - - - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. - - @param is_remote: is the input file remote? (C++: bool) - -Help on function file2base in module ida_loader: - -file2base(*args) - file2base(li, pos, ea1, ea2, patchable) -> int - - - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it enabled) - - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) - -Help on function find_plugin in module ida_loader: - -find_plugin(*args) - find_plugin(name, load_if_needed=False) -> plugin_t * - - - Find a user-defined plugin and optionally load it. - - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) - @return: pointer to plugin description block - -Help on function flush_buffers in module ida_loader: - -flush_buffers(*args) - flush_buffers() -> int - - - Flush buffers to the disk. - -Help on function gen_exe_file in module ida_loader: - -gen_exe_file(*args) - gen_exe_file(fp) -> int - - - Generate an exe file (unload the database in binary form). - - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file - -Help on function gen_file in module ida_loader: - -gen_file(*args) - gen_file(otype, fp, ea1, ea2, flags) -> int - - - Generate an output file. 'OFILE_EXE' : - - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) - @return: number of the generated lines. -1 if an error occurred - -Help on function get_basic_file_type in module ida_loader: - -get_basic_file_type(*args) - get_basic_file_type(li) -> filetype_t - - - Get the input file type. This function can recognize libraries and zip - files. - - @param li (C++: linput_t *) - -Help on function get_elf_debug_file_directory in module ida_loader: - -get_elf_debug_file_directory(*args) - get_elf_debug_file_directory() -> char const * - - - Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. - -Help on function get_file_type_name in module ida_loader: - -get_file_type_name(*args) - get_file_type_name() -> str - - - Get name of the current file type. The current file type is kept in - \inf{filetype}. - - @return: size of answer, this function always succeeds - -Help on function get_fileregion_ea in module ida_loader: - -get_fileregion_ea(*args) - get_fileregion_ea(offset) -> ea_t - - - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - - @param offset (C++: qoff64_t) - -Help on function get_fileregion_offset in module ida_loader: - -get_fileregion_offset(*args) - get_fileregion_offset(ea) -> qoff64_t - - - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - - @param ea (C++: ea_t) - -Help on function get_path in module ida_loader: - -get_path(*args) - get_path(pt) -> char const * - - - Get the file path - - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL - -Help on function get_plugin_options in module ida_loader: - -get_plugin_options(*args) - get_plugin_options(plugin) -> char const * - - - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - - @param plugin (C++: const char *) - -Help on class idp_desc_t in module ida_loader: - -class idp_desc_t(__builtin__.object) - | Proxy of C++ idp_desc_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> idp_desc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | checked - | idp_desc_t_checked_get(self) -> bool - | - | family - | idp_desc_t_family_get(self) -> qstring * - | - | is_script - | idp_desc_t_is_script_get(self) -> bool - | - | mtime - | idp_desc_t_mtime_get(self) -> time_t - | - | names - | idp_desc_t_names_get(self) -> idp_names_t * - | - | path - | idp_desc_t_path_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_idp_desc_t(self) - -Help on class idp_name_t in module ida_loader: - -class idp_name_t(__builtin__.object) - | Proxy of C++ idp_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> idp_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hidden - | idp_name_t_hidden_get(self) -> bool - | - | lname - | idp_name_t_lname_get(self) -> qstring * - | - | sname - | idp_name_t_sname_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_idp_name_t(self) - -Help on function is_database_flag in module ida_loader: - -is_database_flag(*args) - is_database_flag(dbfl) -> bool - - - Get the current database flag - - @param dbfl: flag Database flags (C++: uint32) - @return: the state of the flag (set or cleared) - -Help on function is_trusted_idb in module ida_loader: - -is_trusted_idb(*args) - is_trusted_idb() -> bool - - - Is the database considered as trusted? - -Help on function load_and_run_plugin in module ida_loader: - -load_and_run_plugin(*args) - load_and_run_plugin(name, arg) -> bool - - - Load & run a plugin. - - - @param name (C++: const char *) - @param arg (C++: size_t) - -Help on function load_binary_file in module ida_loader: - -load_binary_file(*args) - load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool - - - Load a binary file into the database. This function usually is called - from ui. - - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) - -Help on function load_ids_module in module ida_loader: - -load_ids_module(*args) - load_ids_module(fname) -> int - - - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - - @param fname: name of file to apply (C++: char *) - -Help on function load_plugin in module ida_loader: - -load_plugin(*args) - load_plugin(name) -> PyObject * - - - Loads a plugin - @return: - - None if plugin could not be loaded - - An opaque object representing the loaded plugin - -Help on class loader_t in module ida_loader: - -class loader_t(__builtin__.object) - | Proxy of C++ loader_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> loader_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | loader_t_flags_get(self) -> uint32 - | - | thisown - | The membership flag - | - | version - | loader_t_version_get(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_loader_t(self) - -Help on function mem2base in module ida_loader: - -mem2base(*args) - mem2base(py_mem, ea, fpos=-1) -> int - - - Load database from the memory. - @param mem: the buffer - @param ea: start linear addresses - @param fpos: position in the input file the data is taken from. - if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string - - Otherwise 1 is returned - -Help on class plugin_info_t in module ida_loader: - -class plugin_info_t(__builtin__.object) - | Proxy of C++ plugin_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> plugin_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | arg - | plugin_info_t_arg_get(self) -> size_t - | - | comment - | plugin_info_t_comment_get(self) -> char * - | - | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * - | - | entry - | plugin_info_t_entry_get(self) -> plugin_t * - | - | flags - | plugin_info_t_flags_get(self) -> int - | - | hotkey - | plugin_info_t_hotkey_get(self) -> ushort - | - | name - | plugin_info_t_name_get(self) -> char * - | - | next - | plugin_info_t_next_get(self) -> plugin_info_t - | - | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort - | - | org_name - | plugin_info_t_org_name_get(self) -> char * - | - | path - | plugin_info_t_path_get(self) -> char * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_plugin_info_t(self) - -Help on function process_archive in module ida_loader: - -process_archive(*args) - process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str - - - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) - -Help on class qvector_snapshotvec_t in module ida_loader: - -class qvector_snapshotvec_t(__builtin__.object) - | Proxy of C++ qvector< snapshot_t * > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> snapshot_t - | - | __init__(self, *args) - | __init__(self) -> qvector_snapshotvec_t - | __init__(self, x) -> qvector_snapshotvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> snapshot_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< snapshot_t * >::iterator - | begin(self) -> qvector< snapshot_t * >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< snapshot_t * >::iterator - | end(self) -> qvector< snapshot_t * >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< snapshot_t * >::iterator - | erase(self, first, last) -> qvector< snapshot_t * >::iterator - | - | extract(self, *args) - | extract(self) -> snapshot_t ** - | - | find(self, *args) - | find(self, x) -> qvector< snapshot_t * >::iterator - | find(self, x) -> qvector< snapshot_t * >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< snapshot_t * >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> snapshot_t *& - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qvector_snapshotvec_t(self) - -Help on function reload_file in module ida_loader: - -reload_file(*args) - reload_file(file, is_remote) -> bool - - - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) - @return: success - -Help on function run_plugin in module ida_loader: - -run_plugin(*args) - run_plugin(plg, arg) -> bool - - - Runs a plugin - @param plg: A plugin object (returned by load_plugin()) - @return: Boolean - -Help on function save_database in module ida_loader: - -save_database(*args) - save_database(outfile, flags, root=None, attr=None) -> bool - - - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) - @return: success - -Help on function set_database_flag in module ida_loader: - -set_database_flag(*args) - set_database_flag(dbfl, cnd=True) - - - Set or clear database flag - - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) - -Help on function set_path in module ida_loader: - -set_path(*args) - set_path(pt, path) - - - Set the file path - - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) - -Help on class snapshot_t in module ida_loader: - -class snapshot_t(__builtin__.object) - | Proxy of C++ snapshot_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> snapshot_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t - | - | desc - | snapshot_t_desc_get(self) -> char [128] - | - | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] - | - | flags - | snapshot_t_flags_get(self) -> uint16 - | - | id - | snapshot_t_id_get(self) -> qtime64_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_snapshot_t(self) - -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE -""" -Specify that a file format is served by archive loader See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -form in the file. - -the data is kept in some encoded -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" - 'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" - 'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" - 'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" - 'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" - 'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -load as a code segment - -for 'load_binary_file()' : -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -into the database. - -This is the first file loaded -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place: - don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === -Help on function apply_metadata in module ida_lumina: - -apply_metadata(*args) - apply_metadata(ea, fi, flags=0) - -Help on function backup_metadata in module ida_lumina: - -backup_metadata(*args) - backup_metadata(ea) -> bool - -Help on function calc_func_metadata in module ida_lumina: - -calc_func_metadata(*args) - calc_func_metadata(out_fi, pfn, append_metadata=None) -> asize_t - -Help on function create_simple_diff_handler in module ida_lumina: - -create_simple_diff_handler(*args) - create_simple_diff_handler() -> simple_diff_handler_t - -Help on function create_simple_idb_diff_handler in module ida_lumina: - -create_simple_idb_diff_handler(*args) - create_simple_idb_diff_handler(pfn) -> simple_idb_diff_handler_t - -Help on function diff_metadata in module ida_lumina: - -diff_metadata(*args) - diff_metadata(handler, left, right, flags=0) -> bool - -Help on function ea_to_ea64 in module ida_lumina: - -ea_to_ea64(*args) - ea_to_ea64(ea) -> ea64_t - -Help on class extra_cmt_t in module ida_lumina: - -class extra_cmt_t(insn_site_t) - | Proxy of C++ extra_cmt_t class. - | - | Method resolution order: - | extra_cmt_t - | insn_site_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> extra_cmt_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | next - | extra_cmt_t_next_get(self) -> qstring * - | - | prev - | extra_cmt_t_prev_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_extra_cmt_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from insn_site_t: - | - | toea(self, *args) - | toea(self, pfn) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from insn_site_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 - | - | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 - -Help on class extra_cmts_t in module ida_lumina: - -class extra_cmts_t(__builtin__.object) - | Proxy of C++ qvector< extra_cmt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> extra_cmt_t - | - | __init__(self, *args) - | __init__(self) -> extra_cmts_t - | __init__(self, x) -> extra_cmts_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> extra_cmt_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> extra_cmt_t - | begin(self) -> extra_cmt_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> extra_cmt_t - | end(self) -> extra_cmt_t - | - | erase(self, *args) - | erase(self, it) -> extra_cmt_t - | erase(self, first, last) -> extra_cmt_t - | - | extract(self, *args) - | extract(self) -> extra_cmt_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=extra_cmt_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> extra_cmt_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> extra_cmt_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_extra_cmts_t(self) - -Help on function extract_extra_cmts_from_metadata in module ida_lumina: - -extract_extra_cmts_from_metadata(*args) - extract_extra_cmts_from_metadata(out, ptr) - -Help on function extract_frame_desc_from_metadata in module ida_lumina: - -extract_frame_desc_from_metadata(*args) - extract_frame_desc_from_metadata(out, ptr) - -Help on function extract_insn_cmts_from_metadata in module ida_lumina: - -extract_insn_cmts_from_metadata(*args) - extract_insn_cmts_from_metadata(out, ptr) - -Help on function extract_insn_opreprs_from_metadata in module ida_lumina: - -extract_insn_opreprs_from_metadata(*args) - extract_insn_opreprs_from_metadata(out, ptr) - -Help on function extract_type_from_metadata in module ida_lumina: - -extract_type_from_metadata(*args) - extract_type_from_metadata(out, _in) -> bool - -Help on function extract_user_stkpnts_from_metadata in module ida_lumina: - -extract_user_stkpnts_from_metadata(*args) - extract_user_stkpnts_from_metadata(out, ptr) - -Help on class frame_desc_t in module ida_lumina: - -class frame_desc_t(__builtin__.object) - | Proxy of C++ frame_desc_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> frame_desc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argsize - | frame_desc_t_argsize_get(self) -> asize_t - | - | frregs - | frame_desc_t_frregs_get(self) -> ushort - | - | frsize - | frame_desc_t_frsize_get(self) -> sval_t - | - | members - | frame_desc_t_members_get(self) -> frame_mems_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_frame_desc_t(self) - -Help on class frame_mem_t in module ida_lumina: - -class frame_mem_t(__builtin__.object) - | Proxy of C++ frame_mem_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> frame_mem_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | frame_mem_t_cmt_get(self) -> qstring * - | - | info - | frame_mem_t_info_get(self) -> oprepr_t - | - | name - | frame_mem_t_name_get(self) -> qstring * - | - | nbytes - | frame_mem_t_nbytes_get(self) -> asize_t - | - | offset - | frame_mem_t_offset_get(self) -> ea64_t - | - | rptcmt - | frame_mem_t_rptcmt_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | frame_mem_t_type_get(self) -> serialized_tinfo - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_frame_mem_t(self) - -Help on class frame_mems_t in module ida_lumina: - -class frame_mems_t(__builtin__.object) - | Proxy of C++ qvector< frame_mem_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> frame_mem_t - | - | __init__(self, *args) - | __init__(self) -> frame_mems_t - | __init__(self, x) -> frame_mems_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> frame_mem_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> frame_mem_t - | begin(self) -> frame_mem_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> frame_mem_t - | end(self) -> frame_mem_t - | - | erase(self, *args) - | erase(self, it) -> frame_mem_t - | erase(self, first, last) -> frame_mem_t - | - | extract(self, *args) - | extract(self) -> frame_mem_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=frame_mem_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> frame_mem_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> frame_mem_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_frame_mems_t(self) - -Help on class func_info_and_frequency_t in module ida_lumina: - -class func_info_and_frequency_t(func_info_t) - | Proxy of C++ func_info_and_frequency_t class. - | - | Method resolution order: - | func_info_and_frequency_t - | func_info_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_info_and_frequency_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | frequency - | func_info_and_frequency_t_frequency_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = metadata_t * - | - | name - | func_info_t_name_get(self) -> qstring * - | - | size - | func_info_t_size_get(self) -> uint32 - -Help on class func_info_and_frequency_vec_t in module ida_lumina: - -class func_info_and_frequency_vec_t(__builtin__.object) - | Proxy of C++ qvector< func_info_and_frequency_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> func_info_and_frequency_t - | - | __init__(self, *args) - | __init__(self) -> func_info_and_frequency_vec_t - | __init__(self, x) -> func_info_and_frequency_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> func_info_and_frequency_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> func_info_and_frequency_t - | begin(self) -> func_info_and_frequency_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> func_info_and_frequency_t - | end(self) -> func_info_and_frequency_t - | - | erase(self, *args) - | erase(self, it) -> func_info_and_frequency_t - | erase(self, first, last) -> func_info_and_frequency_t - | - | extract(self, *args) - | extract(self) -> func_info_and_frequency_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=func_info_and_frequency_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> func_info_and_frequency_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> func_info_and_frequency_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = func_info_and_pattern_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_info_and_pattern_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | metadata - | func_info_t_metadata_get(self) -> metadata_t * - | - | name - | func_info_t_name_get(self) -> qstring * - | - | size - | func_info_t_size_get(self) -> uint32 - -Help on class func_info_and_pattern_vec_t in module ida_lumina: - -class func_info_and_pattern_vec_t(__builtin__.object) - | Proxy of C++ qvector< func_info_and_pattern_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> func_info_and_pattern_t - | - | __init__(self, *args) - | __init__(self) -> func_info_and_pattern_vec_t - | __init__(self, x) -> func_info_and_pattern_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> func_info_and_pattern_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> func_info_and_pattern_t - | begin(self) -> func_info_and_pattern_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> func_info_and_pattern_t - | end(self) -> func_info_and_pattern_t - | - | erase(self, *args) - | erase(self, it) -> func_info_and_pattern_t - | erase(self, first, last) -> func_info_and_pattern_t - | - | extract(self, *args) - | extract(self) -> func_info_and_pattern_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=func_info_and_pattern_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> func_info_and_pattern_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> func_info_and_pattern_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = func_info_base_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | metadata - | func_info_base_t_metadata_get(self) -> metadata_t * - | - | name - | func_info_base_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_info_base_t(self) - -Help on class func_info_pattern_and_frequency_t in module ida_lumina: - -class func_info_pattern_and_frequency_t(func_info_and_pattern_t) - | Proxy of C++ func_info_pattern_and_frequency_t class. - | - | Method resolution order: - | func_info_pattern_and_frequency_t - | func_info_and_pattern_t - | func_info_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_info_pattern_and_frequency_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = pattern_id_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | metadata - | func_info_t_metadata_get(self) -> metadata_t * - | - | name - | func_info_t_name_get(self) -> qstring * - | - | size - | func_info_t_size_get(self) -> uint32 - -Help on class func_info_pattern_and_frequency_vec_t in module ida_lumina: - -class func_info_pattern_and_frequency_vec_t(__builtin__.object) - | Proxy of C++ qvector< func_info_pattern_and_frequency_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> func_info_pattern_and_frequency_t - | - | __init__(self, *args) - | __init__(self) -> func_info_pattern_and_frequency_vec_t - | __init__(self, x) -> func_info_pattern_and_frequency_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> func_info_pattern_and_frequency_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> func_info_pattern_and_frequency_t - | begin(self) -> func_info_pattern_and_frequency_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> func_info_pattern_and_frequency_t - | end(self) -> func_info_pattern_and_frequency_t - | - | erase(self, *args) - | erase(self, it) -> func_info_pattern_and_frequency_t - | erase(self, first, last) -> func_info_pattern_and_frequency_t - | - | extract(self, *args) - | extract(self) -> func_info_pattern_and_frequency_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=func_info_pattern_and_frequency_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> func_info_pattern_and_frequency_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> func_info_pattern_and_frequency_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = func_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | metadata - | func_info_t_metadata_get(self) -> metadata_t * - | - | name - | func_info_t_name_get(self) -> qstring * - | - | size - | func_info_t_size_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_info_t(self) - -Help on class func_info_vec_t in module ida_lumina: - -class func_info_vec_t(__builtin__.object) - | Proxy of C++ qvector< func_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> func_info_t - | - | __init__(self, *args) - | __init__(self) -> func_info_vec_t - | __init__(self, x) -> func_info_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> func_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> func_info_t - | begin(self) -> func_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> func_info_t - | end(self) -> func_info_t - | - | erase(self, *args) - | erase(self, it) -> func_info_t - | erase(self, first, last) -> func_info_t - | - | extract(self, *args) - | extract(self) -> func_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=func_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> func_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> func_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_info_vec_t(self) - -Help on class func_md_diff_handler_t in module ida_lumina: - -class func_md_diff_handler_t(__builtin__.object) - | Proxy of C++ func_md_diff_handler_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> func_md_diff_handler_t - | - | __repr__ = _swig_repr(self) - | - | on_comment_changed(self, *args) - | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | - | on_extra_comment_changed(self, *args) - | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | - | on_frame_member_changed(self, *args) - | on_frame_member_changed(self, offset, l, r) - | - | on_function_comment_changed(self, *args) - | on_function_comment_changed(self, l, r, rep) - | - | on_insn_ops_repr_changed(self, *args) - | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | - | on_name_changed(self, *args) - | on_name_changed(self, l, r) - | - | on_proto_changed(self, *args) - | on_proto_changed(self, l, r) - | - | on_score_changed(self, *args) - | on_score_changed(self, l, r) - | - | on_user_stkpnt_changed(self, *args) - | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_md_diff_handler_t(self) - -Help on function get_lumina_rpc_packet_t_index_from_base in module ida_lumina: - -get_lumina_rpc_packet_t_index_from_base(*args) - get_lumina_rpc_packet_t_index_from_base(code) -> uchar - -Help on function get_server_connection in module ida_lumina: - -get_server_connection(*args) - get_server_connection() -> lumina_client_t - -Help on function has_backup_metadata in module ida_lumina: - -has_backup_metadata(*args) - has_backup_metadata(ea) -> bool - -Help on class history_entries_helper_t in module ida_lumina: - -class history_entries_helper_t(__builtin__.object) - | Proxy of C++ history_entries_helper_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _r) -> history_entries_helper_t - | - | __repr__ = _swig_repr(self) - | - | next_entry(self, *args) - | next_entry(self, _from) -> change_desc_base_t const & - | - | next_entry_index(self, *args) - | next_entry_index(self, out_index, _from) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | res - | history_entries_helper_t_res_get(self) -> pkt_show_entries_result_t const & - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_history_entries_helper_t(self) - -Help on class input_file_t in module ida_lumina: - -class input_file_t(__builtin__.object) - | Proxy of C++ input_file_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> input_file_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | md5 - | input_file_t_md5_get(self) -> md5_t * - | - | path - | input_file_t_path_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_input_file_t(self) - -Help on class insn_cmt_t in module ida_lumina: - -class insn_cmt_t(insn_site_t) - | Proxy of C++ insn_cmt_t class. - | - | Method resolution order: - | insn_cmt_t - | insn_site_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> insn_cmt_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cmt - | insn_cmt_t_cmt_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_insn_cmt_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from insn_site_t: - | - | toea(self, *args) - | toea(self, pfn) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from insn_site_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 - | - | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 - -Help on class insn_cmts_t in module ida_lumina: - -class insn_cmts_t(__builtin__.object) - | Proxy of C++ qvector< insn_cmt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> insn_cmt_t - | - | __init__(self, *args) - | __init__(self) -> insn_cmts_t - | __init__(self, x) -> insn_cmts_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> insn_cmt_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> insn_cmt_t - | begin(self) -> insn_cmt_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> insn_cmt_t - | end(self) -> insn_cmt_t - | - | erase(self, *args) - | erase(self, it) -> insn_cmt_t - | erase(self, first, last) -> insn_cmt_t - | - | extract(self, *args) - | extract(self) -> insn_cmt_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=insn_cmt_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> insn_cmt_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> insn_cmt_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_insn_cmts_t(self) - -Help on class insn_ops_repr_t in module ida_lumina: - -class insn_ops_repr_t(insn_site_t) - | Proxy of C++ insn_ops_repr_t class. - | - | Method resolution order: - | insn_ops_repr_t - | insn_site_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> insn_ops_repr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | insn_ops_repr_t_flags_get(self) -> flags_t - | - | op0 - | insn_ops_repr_t_op0_get(self) -> opinfo_t - | - | op1 - | insn_ops_repr_t_op1_get(self) -> opinfo_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_insn_ops_repr_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from insn_site_t: - | - | toea(self, *args) - | toea(self, pfn) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from insn_site_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 - | - | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 - -Help on class insn_ops_reprs_t in module ida_lumina: - -class insn_ops_reprs_t(__builtin__.object) - | Proxy of C++ qvector< insn_ops_repr_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> insn_ops_repr_t - | - | __init__(self, *args) - | __init__(self) -> insn_ops_reprs_t - | __init__(self, x) -> insn_ops_reprs_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> insn_ops_repr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> insn_ops_repr_t - | begin(self) -> insn_ops_repr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> insn_ops_repr_t - | end(self) -> insn_ops_repr_t - | - | erase(self, *args) - | erase(self, it) -> insn_ops_repr_t - | erase(self, first, last) -> insn_ops_repr_t - | - | extract(self, *args) - | extract(self) -> insn_ops_repr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=insn_ops_repr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> insn_ops_repr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> insn_ops_repr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_insn_ops_reprs_t(self) - -Help on class insn_site_t in module ida_lumina: - -class insn_site_t(__builtin__.object) - | Proxy of C++ insn_site_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> insn_site_t - | - | __repr__ = _swig_repr(self) - | - | toea(self, *args) - | toea(self, pfn) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 - | - | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_insn_site_t(self) - -Help on class lumina_client_t in module ida_lumina: - -class lumina_client_t(__builtin__.object) - | Proxy of C++ lumina_client_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | get_pop(self, *args) - | get_pop(self, nresults=10) -> pkt_get_pop_result_t - | - | is_pattern_id(self, *args) - | is_pattern_id(self, pid, md5) -> bool - | - | pull_md(self, *args) - | pull_md(self, pattern_ids, pull_md_flags=0) -> pkt_pull_md_result_t - | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t - | - | push_md(self, *args) - | push_md(self, result, opts, append_metadata=None, flags=0) -> bool - | - | set_pattern_id_md5(self, *args) - | set_pattern_id_md5(self, out, md5) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lumina_client_t(self) - -Help on class lumina_op_res_vec_t in module ida_lumina: - -class lumina_op_res_vec_t(__builtin__.object) - | Proxy of C++ qvector< lumina_op_res_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lumina_op_res_t const & - | - | __init__(self, *args) - | __init__(self) -> lumina_op_res_vec_t - | __init__(self, x) -> lumina_op_res_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> lumina_op_res_t const & - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< lumina_op_res_t >::iterator - | begin(self) -> qvector< lumina_op_res_t >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< lumina_op_res_t >::iterator - | end(self) -> qvector< lumina_op_res_t >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< lumina_op_res_t >::iterator - | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator - | - | extract(self, *args) - | extract(self) -> lumina_op_res_t * - | - | find(self, *args) - | find(self, x) -> qvector< lumina_op_res_t >::iterator - | find(self, x) -> qvector< lumina_op_res_t >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lumina_op_res_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lumina_op_res_t & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lumina_op_res_vec_t(self) - -Help on class md_type_parts_t in module ida_lumina: - -class md_type_parts_t(__builtin__.object) - | Proxy of C++ md_type_parts_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> md_type_parts_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fields - | md_type_parts_t_fields_get(self) -> qtype * - | - | thisown - | The membership flag - | - | type - | md_type_parts_t_type_get(self) -> qtype * - | - | userti - | md_type_parts_t_userti_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_md_type_parts_t(self) - -Help on class metadata_iterator_t in module ida_lumina: - -class metadata_iterator_t(__builtin__.object) - | Proxy of C++ metadata_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _md) -> metadata_iterator_t - | - | __repr__ = _swig_repr(self) - | - | data_end(self, *args) - | data_end(self) -> uchar const * - | - | next(self, *args) - | next(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | metadata_iterator_t_data_get(self) -> uchar const * - | - | key - | metadata_iterator_t_key_get(self) -> mdkey_t - | - | size - | metadata_iterator_t_size_get(self) -> size_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_metadata_iterator_t(self) - -Help on function new_packet in module ida_lumina: - -new_packet(*args) - new_packet(code, ptr=None, len=0, version=-1) -> rpc_packet_data_t * - -Help on class oprepr_t in module ida_lumina: - -class oprepr_t(__builtin__.object) - | Proxy of C++ oprepr_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> oprepr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | oprepr_t_flags_get(self) -> flags_t - | - | opinfo - | oprepr_t_opinfo_get(self) -> opinfo_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_oprepr_t(self) - -Help on class pattern_id_t in module ida_lumina: - -class pattern_id_t(__builtin__.object) - | Proxy of C++ pattern_id_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pattern_id_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | pattern_id_t_data_get(self) -> bytevec_t * - | - | thisown - | The membership flag - | - | type - | pattern_id_t_type_get(self) -> pattern_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pattern_id_t(self) - -Help on class pkt_clean_db_t in module ida_lumina: - -class pkt_clean_db_t(__builtin__.object) - | Proxy of C++ pkt_clean_db_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_clean_db_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_clean_db_t(self) - -Help on class pkt_debugctl_t in module ida_lumina: - -class pkt_debugctl_t(__builtin__.object) - | Proxy of C++ pkt_debugctl_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_debugctl_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | args - | pkt_debugctl_t_args_get(self) -> qstrvec_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_debugctl_t(self) - -Help on class pkt_dump_md_result_t in module ida_lumina: - -class pkt_dump_md_result_t(__builtin__.object) - | Proxy of C++ pkt_dump_md_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_dump_md_result_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | contents - | pkt_dump_md_result_t_contents_get(self) -> func_info_pattern_and_frequency_vec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_dump_md_result_t(self) - -Help on class pkt_dump_md_t in module ida_lumina: - -class pkt_dump_md_t(__builtin__.object) - | Proxy of C++ pkt_dump_md_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_dump_md_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | sort - | pkt_dump_md_t_sort_get(self) -> dump_md_sort_type_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_dump_md_t(self) - -Help on class pkt_get_pop_result_t in module ida_lumina: - -class pkt_get_pop_result_t(__builtin__.object) - | Proxy of C++ pkt_get_pop_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_get_pop_result_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | results - | pkt_get_pop_result_t_results_get(self) -> pop_fun_vec_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_get_pop_result_t(self) - -Help on class pkt_get_pop_t in module ida_lumina: - -class pkt_get_pop_t(__builtin__.object) - | Proxy of C++ pkt_get_pop_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_get_pop_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | nresults - | pkt_get_pop_t_nresults_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_get_pop_t(self) - -Help on class pkt_helo_t in module ida_lumina: - -class pkt_helo_t(__builtin__.object) - | Proxy of C++ pkt_helo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_helo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | client_version - | pkt_helo_t_client_version_get(self) -> int - | - | key - | pkt_helo_t_key_get(self) -> bytevec_t * - | - | license_id - | pkt_helo_t_license_id_get(self) -> uchar [6] - | - | record_conv - | pkt_helo_t_record_conv_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_helo_t(self) - -Help on class pkt_pull_md_result_t in module ida_lumina: - -class pkt_pull_md_result_t(__builtin__.object) - | Proxy of C++ pkt_pull_md_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_pull_md_result_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | codes - | pkt_pull_md_result_t_codes_get(self) -> lumina_op_res_vec_t - | - | results - | pkt_pull_md_result_t_results_get(self) -> func_info_and_frequency_vec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_pull_md_result_t(self) - -Help on class pkt_pull_md_t in module ida_lumina: - -class pkt_pull_md_t(__builtin__.object) - | Proxy of C++ pkt_pull_md_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_pull_md_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | pkt_pull_md_t_flags_get(self) -> uint32 - | - | keys - | pkt_pull_md_t_keys_get(self) -> mdkey_vec_t * - | - | pattern_ids - | pkt_pull_md_t_pattern_ids_get(self) -> pattern_ids_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_pull_md_t(self) - -Help on class pkt_push_md_result_t in module ida_lumina: - -class pkt_push_md_result_t(__builtin__.object) - | Proxy of C++ pkt_push_md_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_push_md_result_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | codes - | pkt_push_md_result_t_codes_get(self) -> lumina_op_res_vec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_push_md_result_t(self) - -Help on class pkt_push_md_t in module ida_lumina: - -class pkt_push_md_t(__builtin__.object) - | Proxy of C++ pkt_push_md_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_push_md_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | contents - | pkt_push_md_t_contents_get(self) -> func_info_and_pattern_vec_t - | - | ea64s - | pkt_push_md_t_ea64s_get(self) -> ea64vec_t * - | - | flags - | pkt_push_md_t_flags_get(self) -> uint32 - | - | hostname - | pkt_push_md_t_hostname_get(self) -> qstring * - | - | idb - | pkt_push_md_t_idb_get(self) -> qstring * - | - | input - | pkt_push_md_t_input_get(self) -> input_file_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_push_md_t(self) - -Help on class pkt_rpc_fail_t in module ida_lumina: - -class pkt_rpc_fail_t(__builtin__.object) - | Proxy of C++ pkt_rpc_fail_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_rpc_fail_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | error - | pkt_rpc_fail_t_error_get(self) -> qstring * - | - | result - | pkt_rpc_fail_t_result_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_rpc_fail_t(self) - -Help on class pkt_rpc_notify_t in module ida_lumina: - -class pkt_rpc_notify_t(__builtin__.object) - | Proxy of C++ pkt_rpc_notify_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_rpc_notify_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | text - | pkt_rpc_notify_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | pkt_rpc_notify_t_type_get(self) -> rpc_notification_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_rpc_notify_t(self) - -Help on class pkt_rpc_ok_t in module ida_lumina: - -class pkt_rpc_ok_t(__builtin__.object) - | Proxy of C++ pkt_rpc_ok_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_rpc_ok_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pkt_rpc_ok_t(self) - -Help on class pop_fun_t in module ida_lumina: - -class pop_fun_t(func_info_pattern_and_frequency_t) - | Proxy of C++ pop_fun_t class. - | - | Method resolution order: - | pop_fun_t - | func_info_pattern_and_frequency_t - | func_info_and_pattern_t - | func_info_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pop_fun_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ea64 - | pop_fun_t_ea64_get(self) -> ea64_t - | - | hostname - | pop_fun_t_hostname_get(self) -> qstring * - | - | input - | pop_fun_t_input_get(self) -> input_file_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_pop_fun_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_info_pattern_and_frequency_t: - | - | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_info_and_pattern_t: - | - | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | metadata - | func_info_t_metadata_get(self) -> metadata_t * - | - | name - | func_info_t_name_get(self) -> qstring * - | - | size - | func_info_t_size_get(self) -> uint32 - -Help on class push_md_opts_t in module ida_lumina: - -class push_md_opts_t(__builtin__.object) - | Proxy of C++ push_md_opts_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, mfs=size_t(-1)) -> push_md_opts_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | eas - | push_md_opts_t_eas_get(self) -> eavec_t * - | - | min_func_size - | push_md_opts_t_min_func_size_get(self) -> size_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_push_md_opts_t(self) - -Help on class push_md_result_t in module ida_lumina: - -class push_md_result_t(__builtin__.object) - | Proxy of C++ push_md_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> push_md_result_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | codes - | push_md_result_t_codes_get(self) -> lumina_op_res_vec_t - | - | contents - | push_md_result_t_contents_get(self) -> func_info_and_pattern_vec_t - | - | eas - | push_md_result_t_eas_get(self) -> eavec_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_push_md_result_t(self) - -Help on function revert_metadata in module ida_lumina: - -revert_metadata(*args) - revert_metadata(ea) -> bool - -Help on function score_metadata in module ida_lumina: - -score_metadata(*args) - score_metadata(fi) -> uint32 - -Help on class serialized_tinfo in module ida_lumina: - -class serialized_tinfo(__builtin__.object) - | Proxy of C++ serialized_tinfo class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> serialized_tinfo - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fields - | serialized_tinfo_fields_get(self) -> qtype * - | - | thisown - | The membership flag - | - | type - | serialized_tinfo_type_get(self) -> qtype * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_serialized_tinfo(self) - -Help on class simple_diff_handler_t in module ida_lumina: - -class simple_diff_handler_t(func_md_diff_handler_t) - | Proxy of C++ simple_diff_handler_t class. - | - | Method resolution order: - | simple_diff_handler_t - | func_md_diff_handler_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | on_comment_changed(self, *args) - | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) - | - | on_extra_comment_changed(self, *args) - | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) - | - | on_frame_member_changed(self, *args) - | on_frame_member_changed(self, offset, l, r) - | - | on_function_comment_changed(self, *args) - | on_function_comment_changed(self, l, r, rep) - | - | on_insn_ops_repr_changed(self, *args) - | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) - | - | on_name_changed(self, *args) - | on_name_changed(self, l, r) - | - | on_proto_changed(self, *args) - | on_proto_changed(self, l, r) - | - | on_score_changed(self, *args) - | on_score_changed(self, l, r) - | - | on_user_stkpnt_changed(self, *args) - | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | indent - | simple_diff_handler_t_indent_get(self) -> uint32 - | - | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_simple_diff_handler_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from func_md_diff_handler_t: - | - | __disown__(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_md_diff_handler_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class simple_idb_diff_handler_t in module ida_lumina: - -class simple_idb_diff_handler_t(simple_diff_handler_t) - | Proxy of C++ simple_idb_diff_handler_t class. - | - | Method resolution order: - | simple_idb_diff_handler_t - | simple_diff_handler_t - | func_md_diff_handler_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | header_generated - | simple_idb_diff_handler_t_header_generated_get(self) -> bool - | - | pfn - | simple_idb_diff_handler_t_pfn_get(self) -> func_t const * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = uint32 - | - | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * - | - | ---------------------------------------------------------------------- - | Methods inherited from func_md_diff_handler_t: - | - | __disown__(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from func_md_diff_handler_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class skipped_func_t in module ida_lumina: - -class skipped_func_t(__builtin__.object) - | Proxy of C++ skipped_func_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> skipped_func_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | skipped_func_t_count_get(self) -> uint32 - | - | pattern_id - | skipped_func_t_pattern_id_get(self) -> pattern_id_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_skipped_func_t(self) - -Help on class skipped_funcs_t in module ida_lumina: - -class skipped_funcs_t(__builtin__.object) - | Proxy of C++ qvector< skipped_func_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> skipped_func_t - | - | __init__(self, *args) - | __init__(self) -> skipped_funcs_t - | __init__(self, x) -> skipped_funcs_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> skipped_func_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> skipped_func_t - | begin(self) -> skipped_func_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> skipped_func_t - | end(self) -> skipped_func_t - | - | erase(self, *args) - | erase(self, it) -> skipped_func_t - | erase(self, first, last) -> skipped_func_t - | - | extract(self, *args) - | extract(self) -> skipped_func_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=skipped_func_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> skipped_func_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> skipped_func_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_skipped_funcs_t(self) - -Help on function split_metadata in module ida_lumina: - -split_metadata(*args) - split_metadata(md) -> PyObject * - -Help on class user_identification_t in module ida_lumina: - -class user_identification_t(__builtin__.object) - | Proxy of C++ user_identification_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> user_identification_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | email - | user_identification_t_email_get(self) -> qstring * - | - | license_id - | user_identification_t_license_id_get(self) -> qstring * - | - | thisown - | The membership flag - | - | user_name - | user_identification_t_user_name_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_identification_t(self) - -Help on class user_stkpnt_t in module ida_lumina: - -class user_stkpnt_t(insn_site_t) - | Proxy of C++ user_stkpnt_t class. - | - | Method resolution order: - | user_stkpnt_t - | insn_site_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> user_stkpnt_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | delta - | user_stkpnt_t_delta_get(self) -> int64 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_stkpnt_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from insn_site_t: - | - | toea(self, *args) - | toea(self, pfn) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from insn_site_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 - | - | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 - -Help on class user_stkpnts_t in module ida_lumina: - -class user_stkpnts_t(__builtin__.object) - | Proxy of C++ qvector< user_stkpnt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> user_stkpnt_t - | - | __init__(self, *args) - | __init__(self) -> user_stkpnts_t - | __init__(self, x) -> user_stkpnts_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> user_stkpnt_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> user_stkpnt_t - | begin(self) -> user_stkpnt_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> user_stkpnt_t - | end(self) -> user_stkpnt_t - | - | erase(self, *args) - | erase(self, it) -> user_stkpnt_t - | erase(self, first, last) -> user_stkpnt_t - | - | extract(self, *args) - | extract(self) -> user_stkpnt_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=user_stkpnt_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> user_stkpnt_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> user_stkpnt_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_user_stkpnts_t(self) - -=== ida_lumina EPYDOC INJECTIONS === -ida_lumina.AMDF_FORCE -""" -apply kvps regardless of what's currently in the IDB, possibly -removing some attributes currently present (e.g., name, or prototype -could be lost) -""" - -ida_lumina.AMDF_UPGRADE -""" -"quality" than what's currently in the IDB - -apply kvps that seem to be of higher -""" - -ida_lumina.PMF_PUSH_MODE_MASK -""" -Conflict resolution mode. -""" -=== ida_lumina EPYDOC INJECTIONS END === -Help on class bookmarks_t in module ida_moves: - -class bookmarks_t(__builtin__.object) - | Proxy of C++ bookmarks_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | erase(*args) - | erase(e, index, ud) -> bool - | - | find_index(*args) - | find_index(e, ud) -> uint32 - | - | get(*args) - | get(out_entry, out_desc, index, ud) -> bool - | - | get_desc(*args) - | get_desc(e, index, ud) -> bool - | - | mark(*args) - | mark(e, index, title, desc, ud) -> uint32 - | - | size(*args) - | size(e, ud) -> uint32 - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - -Help on function bookmarks_t_erase in module ida_moves: - -bookmarks_t_erase(*args) - bookmarks_t_erase(e, index, ud) -> bool - -Help on function bookmarks_t_find_index in module ida_moves: - -bookmarks_t_find_index(*args) - bookmarks_t_find_index(e, ud) -> uint32 - -Help on function bookmarks_t_get in module ida_moves: - -bookmarks_t_get(*args) - bookmarks_t_get(out_entry, out_desc, index, ud) -> bool - -Help on function bookmarks_t_get_desc in module ida_moves: - -bookmarks_t_get_desc(*args) - bookmarks_t_get_desc(e, index, ud) -> str - -Help on function bookmarks_t_mark in module ida_moves: - -bookmarks_t_mark(*args) - bookmarks_t_mark(e, index, title, desc, ud) -> uint32 - -Help on function bookmarks_t_size in module ida_moves: - -bookmarks_t_size(*args) - bookmarks_t_size(e, ud) -> uint32 - -Help on class graph_location_info_t in module ida_moves: - -class graph_location_info_t(__builtin__.object) - | Proxy of C++ graph_location_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> graph_location_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | orgx - | graph_location_info_t_orgx_get(self) -> double - | - | orgy - | graph_location_info_t_orgy_get(self) -> double - | - | thisown - | The membership flag - | - | zoom - | graph_location_info_t_zoom_get(self) -> double - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_graph_location_info_t(self) - -Help on class lochist_entry_t in module ida_moves: - -class lochist_entry_t(__builtin__.object) - | Proxy of C++ lochist_entry_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> lochist_entry_t - | __init__(self, p, r) -> lochist_entry_t - | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | acquire_place(self, *args) - | acquire_place(self, in_p) - | - | is_valid(self, *args) - | is_valid(self) -> bool - | - | place(self, *args) - | place(self) -> place_t - | place(self) -> place_t - | - | renderer_info(self, *args) - | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t - | - | set_place(self, *args) - | set_place(self, p) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | plce - | lochist_entry_t_plce_get(self) -> place_t - | - | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lochist_entry_t(self) - -Help on class lochist_t in module ida_moves: - -class lochist_t(__builtin__.object) - | Proxy of C++ lochist_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lochist_t - | - | __repr__ = _swig_repr(self) - | - | back(self, *args) - | back(self, cnt, try_to_unhide) -> bool - | - | clear(self, *args) - | clear(self) - | - | current_index(self, *args) - | current_index(self) -> uint32 - | - | fwd(self, *args) - | fwd(self, cnt, try_to_unhide) -> bool - | - | get(self, *args) - | get(self, out, index) -> bool - | - | get_current(self, *args) - | get_current(self) -> lochist_entry_t - | - | get_place_id(self, *args) - | get_place_id(self) -> int - | - | get_template_place(self, *args) - | get_template_place(self) -> place_t - | - | init(self, *args) - | init(self, stream_name, _defpos, _ud, _flags) -> bool - | - | is_history_enabled(self, *args) - | is_history_enabled(self) -> bool - | - | jump(self, *args) - | jump(self, try_to_unhide, e) - | - | netcode(self, *args) - | netcode(self) -> nodeidx_t - | - | save(self, *args) - | save(self) - | - | seek(self, *args) - | seek(self, index, try_to_unhide) -> bool - | - | set(self, *args) - | set(self, index, e) - | - | set_current(self, *args) - | set_current(self, e) - | - | size(self, *args) - | size(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lochist_t(self) - -Help on class renderer_info_pos_t in module ida_moves: - -class renderer_info_pos_t(__builtin__.object) - | Proxy of C++ renderer_info_pos_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> renderer_info_pos_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cx - | renderer_info_pos_t_cx_get(self) -> short - | - | cy - | renderer_info_pos_t_cy_get(self) -> short - | - | node - | renderer_info_pos_t_node_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_renderer_info_pos_t(self) - -Help on class renderer_info_t in module ida_moves: - -class renderer_info_t(__builtin__.object) - | Proxy of C++ renderer_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> renderer_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t - | - | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t - | - | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_renderer_info_t(self) - -Help on class segm_move_info_t in module ida_moves: - -class segm_move_info_t(__builtin__.object) - | Proxy of C++ segm_move_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | _from - | segm_move_info_t__from_get(self) -> ea_t - | - | size - | segm_move_info_t_size_get(self) -> size_t - | - | thisown - | The membership flag - | - | to - | segm_move_info_t_to_get(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_segm_move_info_t(self) - -Help on class segm_move_info_vec_t in module ida_moves: - -class segm_move_info_vec_t(__builtin__.object) - | Proxy of C++ qvector< segm_move_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> segm_move_info_t - | - | __init__(self, *args) - | __init__(self) -> segm_move_info_vec_t - | __init__(self, x) -> segm_move_info_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> segm_move_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t - | - | erase(self, *args) - | erase(self, it) -> segm_move_info_t - | erase(self, first, last) -> segm_move_info_t - | - | extract(self, *args) - | extract(self) -> segm_move_info_t - | - | find(self, *args) - | find(self, x) -> segm_move_info_t - | find(self, x) -> segm_move_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=segm_move_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> segm_move_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> segm_move_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_segm_move_info_vec_t(self) - -Help on class segm_move_infos_t in module ida_moves: - -class segm_move_infos_t(segm_move_info_vec_t) - | Proxy of C++ segm_move_infos_t class. - | - | Method resolution order: - | segm_move_infos_t - | segm_move_info_vec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> segm_move_infos_t - | - | __repr__ = _swig_repr(self) - | - | find(self, *args) - | find(self, ea) -> segm_move_info_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_segm_move_infos_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from segm_move_info_vec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> segm_move_info_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> segm_move_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t - | - | erase(self, *args) - | erase(self, it) -> segm_move_info_t - | erase(self, first, last) -> segm_move_info_t - | - | extract(self, *args) - | extract(self) -> segm_move_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=segm_move_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> segm_move_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> segm_move_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from segm_move_info_vec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function get_switch_info in module ida_nalt: - -get_switch_info(*args) - get_switch_info(out, ea) -> ssize_t - -Help on function add_encoding in module ida_nalt: - -add_encoding(*args) - add_encoding(encoding) -> int - - - Add a new encoding (e.g. "UTF-8"). - - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index - -Help on class array_parameters_t in module ida_nalt: - -class array_parameters_t(__builtin__.object) - | Proxy of C++ array_parameters_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> array_parameters_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | alignment - | array_parameters_t_alignment_get(self) -> int32 - | - | flags - | array_parameters_t_flags_get(self) -> int32 - | - | lineitems - | array_parameters_t_lineitems_get(self) -> int32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_array_parameters_t(self) - -Help on function clr__bnot0 in module ida_nalt: - -clr__bnot0(*args) - clr__bnot0(ea) - -Help on function clr__bnot1 in module ida_nalt: - -clr__bnot1(*args) - clr__bnot1(ea) - -Help on function clr__invsign0 in module ida_nalt: - -clr__invsign0(*args) - clr__invsign0(ea) - -Help on function clr__invsign1 in module ida_nalt: - -clr__invsign1(*args) - clr__invsign1(ea) - -Help on function clr_abits in module ida_nalt: - -clr_abits(*args) - clr_abits(ea, bits) - -Help on function clr_align_flow in module ida_nalt: - -clr_align_flow(*args) - clr_align_flow(ea) - -Help on function clr_colored_item in module ida_nalt: - -clr_colored_item(*args) - clr_colored_item(ea) - -Help on function clr_fixed_spd in module ida_nalt: - -clr_fixed_spd(*args) - clr_fixed_spd(ea) - -Help on function clr_has_lname in module ida_nalt: - -clr_has_lname(*args) - clr_has_lname(ea) - -Help on function clr_has_ti in module ida_nalt: - -clr_has_ti(*args) - clr_has_ti(ea) - -Help on function clr_has_ti0 in module ida_nalt: - -clr_has_ti0(*args) - clr_has_ti0(ea) - -Help on function clr_has_ti1 in module ida_nalt: - -clr_has_ti1(*args) - clr_has_ti1(ea) - -Help on function clr_libitem in module ida_nalt: - -clr_libitem(*args) - clr_libitem(ea) - -Help on function clr_lzero0 in module ida_nalt: - -clr_lzero0(*args) - clr_lzero0(ea) - -Help on function clr_lzero1 in module ida_nalt: - -clr_lzero1(*args) - clr_lzero1(ea) - -Help on function clr_noret in module ida_nalt: - -clr_noret(*args) - clr_noret(ea) - -Help on function clr_notcode in module ida_nalt: - -clr_notcode(*args) - clr_notcode(ea) - - - Clear not-code mark. - - - @param ea (C++: ea_t) - -Help on function clr_notproc in module ida_nalt: - -clr_notproc(*args) - clr_notproc(ea) - -Help on function clr_retfp in module ida_nalt: - -clr_retfp(*args) - clr_retfp(ea) - -Help on function clr_terse_struc in module ida_nalt: - -clr_terse_struc(*args) - clr_terse_struc(ea) - -Help on function clr_tilcmt in module ida_nalt: - -clr_tilcmt(*args) - clr_tilcmt(ea) - -Help on function clr_usemodsp in module ida_nalt: - -clr_usemodsp(*args) - clr_usemodsp(ea) - -Help on function clr_usersp in module ida_nalt: - -clr_usersp(*args) - clr_usersp(ea) - -Help on function clr_userti in module ida_nalt: - -clr_userti(*args) - clr_userti(ea) - -Help on function clr_zstroff in module ida_nalt: - -clr_zstroff(*args) - clr_zstroff(ea) - -Help on class custom_data_type_ids_fids_array in module ida_nalt: - -class custom_data_type_ids_fids_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< int16,8 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> short const & - | - | __init__(self, *args) - | __init__(self, data) -> custom_data_type_ids_fids_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = custom_data_type_ids_t - | - | __repr__ = _swig_repr(self) - | - | _custom_data_type_ids_t__getFids = __getFids(self, *args) - | __getFids(self) -> custom_data_type_ids_fids_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 - | - | fids - | __getFids(self) -> custom_data_type_ids_fids_array - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_custom_data_type_ids_t(self) - -Help on function dbg_get_input_path in module ida_nalt: - -dbg_get_input_path(*args) - dbg_get_input_path() -> str - - - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) - -Help on function del_absbase in module ida_nalt: - -del_absbase(*args) - del_absbase(ea) - -Help on function del_aflags in module ida_nalt: - -del_aflags(*args) - del_aflags(ea) - -Help on function del_alignment in module ida_nalt: - -del_alignment(*args) - del_alignment(ea) - -Help on function del_array_parameters in module ida_nalt: - -del_array_parameters(*args) - del_array_parameters(ea) - -Help on function del_custom_data_type_ids in module ida_nalt: - -del_custom_data_type_ids(*args) - del_custom_data_type_ids(ea) - -Help on function del_encoding in module ida_nalt: - -del_encoding(*args) - del_encoding(idx) -> bool - - - Delete an encoding (1-based) - - - @param idx (C++: int) - -Help on function del_ind_purged in module ida_nalt: - -del_ind_purged(*args) - del_ind_purged(ea) - -Help on function del_item_color in module ida_nalt: - -del_item_color(*args) - del_item_color(ea) -> bool - -Help on function del_op_tinfo in module ida_nalt: - -del_op_tinfo(*args) - del_op_tinfo(ea, n) - -Help on function del_refinfo in module ida_nalt: - -del_refinfo(*args) - del_refinfo(ea, n) -> bool - -Help on function del_source_linnum in module ida_nalt: - -del_source_linnum(*args) - del_source_linnum(ea) - -Help on function del_str_type in module ida_nalt: - -del_str_type(*args) - del_str_type(ea) - -Help on function del_switch_info in module ida_nalt: - -del_switch_info(*args) - del_switch_info(ea) - -Help on function del_switch_parent in module ida_nalt: - -del_switch_parent(*args) - del_switch_parent(ea) - -Help on function del_tinfo in module ida_nalt: - -del_tinfo(*args) - del_tinfo(ea) - -Help on function delete_imports in module ida_nalt: - -delete_imports(*args) - delete_imports() - - - Delete all imported modules information. - -Help on function ea2node in module ida_nalt: - -ea2node(*args) - ea2node(ea) -> nodeidx_t - - - Get netnode for the specified address. - - - @param ea (C++: ea_t) - -Help on function encoding_from_strtype in module ida_nalt: - -encoding_from_strtype(*args) - encoding_from_strtype(strtype) -> char const * - - - Get encoding name for this strtype. - - - @param strtype (C++: int32) - -Help on class enum_const_t in module ida_nalt: - -class enum_const_t(__builtin__.object) - | Proxy of C++ enum_const_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> enum_const_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | serial - | enum_const_t_serial_get(self) -> uchar - | - | thisown - | The membership flag - | - | tid - | enum_const_t_tid_get(self) -> tid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_enum_const_t(self) - -Help on function enum_import_names in module ida_nalt: - -enum_import_names(*args) - enum_import_names(mod_index, py_cb) -> int - - - Enumerate imports from a specific module. - Please refer to ex_imports.py example. - - @param mod_index: The module index - @param callback: A callable object that will be invoked with an ea, name (could be None) and ordinal. - @return: 1-finished ok, -1 on error, otherwise callback return value (<=0) - -Help on function find_custom_refinfo in module ida_nalt: - -find_custom_refinfo(*args) - find_custom_refinfo(name) -> int - - - Get id of a custom refinfo type. - - - @param name (C++: const char *) - -Help on function get_abi_name in module ida_nalt: - -get_abi_name(*args) - -Help on function get_absbase in module ida_nalt: - -get_absbase(*args) - get_absbase(ea) -> ea_t - -Help on function get_aflags in module ida_nalt: - -get_aflags(*args) - get_aflags(ea) -> uint32 - -Help on function get_alignment in module ida_nalt: - -get_alignment(*args) - get_alignment(ea) -> uint32 - -Help on function get_archive_path in module ida_nalt: - -get_archive_path(*args) - get_archive_path() -> str - - - Get archive file path from which input file was extracted. - -Help on function get_array_parameters in module ida_nalt: - -get_array_parameters(*args) - get_array_parameters(out, ea) -> ssize_t - -Help on function get_asm_inc_file in module ida_nalt: - -get_asm_inc_file(*args) - get_asm_inc_file() -> str - - - Get name of the include file. - -Help on function get_custom_data_type_ids in module ida_nalt: - -get_custom_data_type_ids(*args) - get_custom_data_type_ids(cdis, ea) -> int - -Help on function get_custom_refinfo in module ida_nalt: - -get_custom_refinfo(*args) - get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - - - Get definition of a registered custom refinfo type. - - - @param crid (C++: int) - -Help on function get_default_encoding_idx in module ida_nalt: - -get_default_encoding_idx(*args) - get_default_encoding_idx(bpu) -> int - - - Get default encoding index for a specific string type. - - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) - -Help on function get_encoding_bpu in module ida_nalt: - -get_encoding_bpu(*args) - get_encoding_bpu(idx) -> int - - - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - - @param idx: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error - -Help on function get_encoding_name in module ida_nalt: - -get_encoding_name(*args) - get_encoding_name(idx) -> char const * - - - Get encoding name for specific index (1-based). - - @param idx (C++: int) - @return: NULL if idx is out of bounds - -Help on function get_encoding_qty in module ida_nalt: - -get_encoding_qty(*args) - get_encoding_qty() -> int - - - Get total number of encodings (counted from 0) - -Help on function get_gotea in module ida_nalt: - -get_gotea(*args) - get_gotea() -> ea_t - -Help on function get_ids_modnode in module ida_nalt: - -get_ids_modnode(*args) - get_ids_modnode() -> netnode - - - Get ids modnode. - -Help on function get_imagebase in module ida_nalt: - -get_imagebase(*args) - get_imagebase() -> ea_t - - - Get image base address. - -Help on function get_import_module_name in module ida_nalt: - -get_import_module_name(*args) - get_import_module_name(mod_index) -> PyObject * - - - Returns the name of an imported module given its index - @return: None or the module name - -Help on function get_import_module_qty in module ida_nalt: - -get_import_module_qty(*args) - get_import_module_qty() -> uint - - - Get number of import modules. - -Help on function get_ind_purged in module ida_nalt: - -get_ind_purged(*args) - get_ind_purged(ea) -> ea_t - -Help on function get_input_file_path in module ida_nalt: - -get_input_file_path(*args) - get_input_file_path() -> str - - - Get full path of the input file. - -Help on function get_item_color in module ida_nalt: - -get_item_color(*args) - get_item_color(ea) -> bgcolor_t - -Help on function get_op_tinfo in module ida_nalt: - -get_op_tinfo(*args) - get_op_tinfo(tif, ea, n) -> bool - -Help on function get_outfile_encoding_idx in module ida_nalt: - -get_outfile_encoding_idx(*args) - get_outfile_encoding_idx() -> int - - - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used - -Help on function get_refinfo in module ida_nalt: - -get_refinfo(*args) - get_refinfo(ri, ea, n) -> bool - -Help on function get_reftype_by_size in module ida_nalt: - -get_reftype_by_size(*args) - get_reftype_by_size(size) -> reftype_t - - - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - - @param size (C++: size_t) - -Help on function get_root_filename in module ida_nalt: - -get_root_filename(*args) - get_root_filename() -> str - - - Get file name only of the input file. - -Help on function get_source_linnum in module ida_nalt: - -get_source_linnum(*args) - get_source_linnum(ea) -> uval_t - -Help on function get_str_encoding_idx in module ida_nalt: - -get_str_encoding_idx(*args) - get_str_encoding_idx(strtype) -> uchar - - - Get index of the string encoding for this string. - - - @param strtype (C++: int32) - -Help on function get_str_term1 in module ida_nalt: - -get_str_term1(*args) - get_str_term1(strtype) -> char - -Help on function get_str_term2 in module ida_nalt: - -get_str_term2(*args) - get_str_term2(strtype) -> char - -Help on function get_str_type in module ida_nalt: - -get_str_type(*args) - get_str_type(ea) -> uint32 - -Help on function get_str_type_code in module ida_nalt: - -get_str_type_code(*args) - get_str_type_code(strtype) -> uchar - -Help on function get_strtype_bpu in module ida_nalt: - -get_strtype_bpu(*args) - get_strtype_bpu(strtype) -> int - -Help on function get_switch_info in module ida_nalt: - -get_switch_info(*args) - -Help on function get_switch_parent in module ida_nalt: - -get_switch_parent(*args) - get_switch_parent(ea) -> ea_t - -Help on function get_tinfo in module ida_nalt: - -get_tinfo(*args) - get_tinfo(tif, ea) -> bool - -Help on function getnode in module ida_nalt: - -getnode(*args) - getnode(ea) -> netnode - -Help on function has_lname in module ida_nalt: - -has_lname(*args) - has_lname(ea) -> bool - -Help on function has_ti in module ida_nalt: - -has_ti(*args) - has_ti(ea) -> bool - -Help on function has_ti0 in module ida_nalt: - -has_ti0(*args) - has_ti0(ea) -> bool - -Help on function has_ti1 in module ida_nalt: - -has_ti1(*args) - has_ti1(ea) -> bool - -Help on function hide_border in module ida_nalt: - -hide_border(*args) - hide_border(ea) - -Help on function hide_item in module ida_nalt: - -hide_item(*args) - hide_item(ea) - -Help on function is__bnot0 in module ida_nalt: - -is__bnot0(*args) - is__bnot0(ea) -> bool - -Help on function is__bnot1 in module ida_nalt: - -is__bnot1(*args) - is__bnot1(ea) -> bool - -Help on function is__invsign0 in module ida_nalt: - -is__invsign0(*args) - is__invsign0(ea) -> bool - -Help on function is__invsign1 in module ida_nalt: - -is__invsign1(*args) - is__invsign1(ea) -> bool - -Help on function is_align_flow in module ida_nalt: - -is_align_flow(*args) - is_align_flow(ea) -> bool - -Help on function is_colored_item in module ida_nalt: - -is_colored_item(*args) - is_colored_item(ea) -> bool - -Help on function is_finally_visible_item in module ida_nalt: - -is_finally_visible_item(*args) - is_finally_visible_item(ea) -> bool - - - Is instruction visible? - - - @param ea (C++: ea_t) - -Help on function is_fixed_spd in module ida_nalt: - -is_fixed_spd(*args) - is_fixed_spd(ea) -> bool - -Help on function is_hidden_border in module ida_nalt: - -is_hidden_border(*args) - is_hidden_border(ea) -> bool - -Help on function is_hidden_item in module ida_nalt: - -is_hidden_item(*args) - is_hidden_item(ea) -> bool - -Help on function is_libitem in module ida_nalt: - -is_libitem(*args) - is_libitem(ea) -> bool - -Help on function is_lzero0 in module ida_nalt: - -is_lzero0(*args) - is_lzero0(ea) -> bool - -Help on function is_lzero1 in module ida_nalt: - -is_lzero1(*args) - is_lzero1(ea) -> bool - -Help on function is_noret in module ida_nalt: - -is_noret(*args) - is_noret(ea) -> bool - -Help on function is_notcode in module ida_nalt: - -is_notcode(*args) - is_notcode(ea) -> bool - - - Is the address marked as not-code? - - - @param ea (C++: ea_t) - -Help on function is_notproc in module ida_nalt: - -is_notproc(*args) - is_notproc(ea) -> bool - -Help on function is_pascal in module ida_nalt: - -is_pascal(*args) - is_pascal(strtype) -> bool - -Help on function is_reftype_target_optional in module ida_nalt: - -is_reftype_target_optional(*args) - is_reftype_target_optional(type) -> bool - - - Can the target be calculated using operand value? - - - @param type (C++: reftype_t) - -Help on function is_retfp in module ida_nalt: - -is_retfp(*args) - is_retfp(ea) -> bool - -Help on function is_terse_struc in module ida_nalt: - -is_terse_struc(*args) - is_terse_struc(ea) -> bool - -Help on function is_tilcmt in module ida_nalt: - -is_tilcmt(*args) - is_tilcmt(ea) -> bool - -Help on function is_usersp in module ida_nalt: - -is_usersp(*args) - is_usersp(ea) -> bool - -Help on function is_userti in module ida_nalt: - -is_userti(*args) - is_userti(ea) -> bool - -Help on function is_visible_item in module ida_nalt: - -is_visible_item(*args) - is_visible_item(ea) -> bool - - - Test visibility of item at given ea. - - - @param ea (C++: ea_t) - -Help on function is_zstroff in module ida_nalt: - -is_zstroff(*args) - is_zstroff(ea) -> bool - -Help on function node2ea in module ida_nalt: - -node2ea(*args) - node2ea(ndx) -> ea_t - -Help on class opinfo_t in module ida_nalt: - -class opinfo_t(__builtin__.object) - | Proxy of C++ opinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> opinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t - | - | ec - | opinfo_t_ec_get(self) -> enum_const_t - | - | path - | opinfo_t_path_get(self) -> strpath_t - | - | ri - | opinfo_t_ri_get(self) -> refinfo_t - | - | strtype - | opinfo_t_strtype_get(self) -> int32 - | - | thisown - | The membership flag - | - | tid - | opinfo_t_tid_get(self) -> tid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_opinfo_t(self) - -Help on class printop_t in module ida_nalt: - -class printop_t(__builtin__.object) - | Proxy of C++ printop_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> printop_t - | - | __repr__ = _swig_repr(self) - | - | get_ti(self, *args) - | get_ti(self) -> opinfo_t - | - | is_aflags_initialized(self, *args) - | is_aflags_initialized(self) -> bool - | - | is_ti_initialized(self, *args) - | is_ti_initialized(self) -> bool - | - | set_aflags_initialized(self, *args) - | set_aflags_initialized(self, v=True) - | - | set_ti_initialized(self, *args) - | set_ti_initialized(self, v=True) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | aflags - | printop_t_aflags_get(self) -> flags_t - | - | features - | printop_t_features_get(self) -> uchar - | - | flags - | printop_t_flags_get(self) -> flags_t - | - | is_ti_valid - | is_ti_initialized(self) -> bool - | - | suspop - | printop_t_suspop_get(self) -> int - | - | thisown - | The membership flag - | - | ti - | printop_t_ti_get(self) -> opinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_printop_t(self) - -Help on class refinfo_t in module ida_nalt: - -class refinfo_t(__builtin__.object) - | Proxy of C++ refinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> refinfo_t - | - | __repr__ = _swig_repr(self) - | - | init(self, *args) - | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_pastend(self, *args) - | is_pastend(self) -> bool - | - | is_rvaoff(self, *args) - | is_rvaoff(self) -> bool - | - | is_signed(self, *args) - | is_signed(self) -> bool - | - | is_subtract(self, *args) - | is_subtract(self) -> bool - | - | is_target_optional(self, *args) - | is_target_optional(self) -> bool - | - | no_base_xref(self, *args) - | no_base_xref(self) -> bool - | - | set_type(self, *args) - | set_type(self, t) - | - | type(self, *args) - | type(self) -> reftype_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | base - | refinfo_t_base_get(self) -> ea_t - | - | flags - | refinfo_t_flags_get(self) -> uint32 - | - | target - | refinfo_t_target_get(self) -> ea_t - | - | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_refinfo_t(self) - -Help on function rename_encoding in module ida_nalt: - -rename_encoding(*args) - rename_encoding(idx, encoding) -> bool - - - Change name for an encoding (1-based) - - - @param idx (C++: int) - @param encoding (C++: const char *) - -Help on function retrieve_input_file_crc32 in module ida_nalt: - -retrieve_input_file_crc32(*args) - retrieve_input_file_crc32() -> uint32 - - - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. - -Help on function retrieve_input_file_md5 in module ida_nalt: - -retrieve_input_file_md5(*args) - retrieve_input_file_md5() -> str - - - Get input file md5. - -Help on function retrieve_input_file_sha256 in module ida_nalt: - -retrieve_input_file_sha256(*args) - retrieve_input_file_sha256() -> str - - - Get input file sha256. - -Help on function retrieve_input_file_size in module ida_nalt: - -retrieve_input_file_size(*args) - retrieve_input_file_size() -> uint32 - - - Get size of input file in bytes. - -Help on function set__bnot0 in module ida_nalt: - -set__bnot0(*args) - set__bnot0(ea) - -Help on function set__bnot1 in module ida_nalt: - -set__bnot1(*args) - set__bnot1(ea) - -Help on function set__invsign0 in module ida_nalt: - -set__invsign0(*args) - set__invsign0(ea) - -Help on function set__invsign1 in module ida_nalt: - -set__invsign1(*args) - set__invsign1(ea) - -Help on function set_abits in module ida_nalt: - -set_abits(*args) - set_abits(ea, bits) - -Help on function set_absbase in module ida_nalt: - -set_absbase(*args) - set_absbase(ea, x) - -Help on function set_aflags in module ida_nalt: - -set_aflags(*args) - set_aflags(ea, flags) - -Help on function set_align_flow in module ida_nalt: - -set_align_flow(*args) - set_align_flow(ea) - -Help on function set_alignment in module ida_nalt: - -set_alignment(*args) - set_alignment(ea, x) - -Help on function set_archive_path in module ida_nalt: - -set_archive_path(*args) - set_archive_path(file) -> bool - - - Set archive file path from which input file was extracted. - - - @param file (C++: const char *) - -Help on function set_array_parameters in module ida_nalt: - -set_array_parameters(*args) - set_array_parameters(ea, _in) - -Help on function set_asm_inc_file in module ida_nalt: - -set_asm_inc_file(*args) - set_asm_inc_file(file) -> bool - - - Set name of the include file. - - - @param file (C++: const char *) - -Help on function set_colored_item in module ida_nalt: - -set_colored_item(*args) - set_colored_item(ea) - -Help on function set_custom_data_type_ids in module ida_nalt: - -set_custom_data_type_ids(*args) - set_custom_data_type_ids(ea, cdis) - -Help on function set_default_encoding_idx in module ida_nalt: - -set_default_encoding_idx(*args) - set_default_encoding_idx(bpu, idx) -> bool - - - set default encoding for a string type - - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) - -Help on function set_fixed_spd in module ida_nalt: - -set_fixed_spd(*args) - set_fixed_spd(ea) - -Help on function set_gotea in module ida_nalt: - -set_gotea(*args) - set_gotea(gotea) - -Help on function set_has_lname in module ida_nalt: - -set_has_lname(*args) - set_has_lname(ea) - -Help on function set_has_ti in module ida_nalt: - -set_has_ti(*args) - set_has_ti(ea) - -Help on function set_has_ti0 in module ida_nalt: - -set_has_ti0(*args) - set_has_ti0(ea) - -Help on function set_has_ti1 in module ida_nalt: - -set_has_ti1(*args) - set_has_ti1(ea) - -Help on function set_ids_modnode in module ida_nalt: - -set_ids_modnode(*args) - set_ids_modnode(id) - - - Set ids modnode. - - - @param id (C++: netnode) - -Help on function set_imagebase in module ida_nalt: - -set_imagebase(*args) - set_imagebase(base) - - - Set image base address. - - - @param base (C++: ea_t) - -Help on function set_item_color in module ida_nalt: - -set_item_color(*args) - set_item_color(ea, color) - -Help on function set_libitem in module ida_nalt: - -set_libitem(*args) - set_libitem(ea) - -Help on function set_lzero0 in module ida_nalt: - -set_lzero0(*args) - set_lzero0(ea) - -Help on function set_lzero1 in module ida_nalt: - -set_lzero1(*args) - set_lzero1(ea) - -Help on function set_noret in module ida_nalt: - -set_noret(*args) - set_noret(ea) - -Help on function set_notcode in module ida_nalt: - -set_notcode(*args) - set_notcode(ea) - - - Mark address so that it cannot be converted to instruction. - - - @param ea (C++: ea_t) - -Help on function set_notproc in module ida_nalt: - -set_notproc(*args) - set_notproc(ea) - -Help on function set_op_tinfo in module ida_nalt: - -set_op_tinfo(*args) - set_op_tinfo(ea, n, tif) -> bool - -Help on function set_outfile_encoding_idx in module ida_nalt: - -set_outfile_encoding_idx(*args) - set_outfile_encoding_idx(idx) -> bool - - - set encoding to be used when producing files - - @param idx: the encoding index idx can be 0 to use the IDB's default 1 - -byte-per-unit encoding (C++: int) - -Help on function set_refinfo in module ida_nalt: - -set_refinfo(*args) - set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool - -Help on function set_refinfo_ex in module ida_nalt: - -set_refinfo_ex(*args) - set_refinfo_ex(ea, n, ri) -> bool - -Help on function set_retfp in module ida_nalt: - -set_retfp(*args) - set_retfp(ea) - -Help on function set_root_filename in module ida_nalt: - -set_root_filename(*args) - set_root_filename(file) - - - Set full path of the input file. - - - @param file (C++: const char *) - -Help on function set_source_linnum in module ida_nalt: - -set_source_linnum(*args) - set_source_linnum(ea, lnnum) - -Help on function set_str_type in module ida_nalt: - -set_str_type(*args) - set_str_type(ea, x) - -Help on function set_switch_info in module ida_nalt: - -set_switch_info(*args) - set_switch_info(ea, _in) - -Help on function set_switch_parent in module ida_nalt: - -set_switch_parent(*args) - set_switch_parent(ea, x) - -Help on function set_terse_struc in module ida_nalt: - -set_terse_struc(*args) - set_terse_struc(ea) - -Help on function set_tilcmt in module ida_nalt: - -set_tilcmt(*args) - set_tilcmt(ea) - -Help on function set_tinfo in module ida_nalt: - -set_tinfo(*args) - set_tinfo(ea, tif) -> bool - -Help on function set_usemodsp in module ida_nalt: - -set_usemodsp(*args) - set_usemodsp(ea) - -Help on function set_usersp in module ida_nalt: - -set_usersp(*args) - set_usersp(ea) - -Help on function set_userti in module ida_nalt: - -set_userti(*args) - set_userti(ea) - -Help on function set_visible_item in module ida_nalt: - -set_visible_item(*args) - set_visible_item(ea, visible) - - - Change visibility of item at given ea. - - - @param ea (C++: ea_t) - @param visible (C++: bool) - -Help on function set_zstroff in module ida_nalt: - -set_zstroff(*args) - set_zstroff(ea) - -Help on class strpath_ids_array in module ida_nalt: - -class strpath_ids_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< tid_t,32 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | - | __init__(self, *args) - | __init__(self, data) -> strpath_ids_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_strpath_ids_array(self) - -Help on class strpath_t in module ida_nalt: - -class strpath_t(__builtin__.object) - | Proxy of C++ strpath_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> strpath_t - | - | __repr__ = _swig_repr(self) - | - | _strpath_t__getIds = __getIds(self, *args) - | __getIds(self) -> strpath_ids_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | delta - | strpath_t_delta_get(self) -> adiff_t - | - | ids - | __getIds(self) -> strpath_ids_array - | - | len - | strpath_t_len_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_strpath_t(self) - -Help on class switch_info_t in module ida_nalt: - -class switch_info_t(__builtin__.object) - | Proxy of C++ switch_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> switch_info_t - | - | __repr__ = _swig_repr(self) - | - | _get_values_lowcase(self, *args) - | _get_values_lowcase(self) -> ea_t - | - | _set_values_lowcase(self, *args) - | _set_values_lowcase(self, values) - | - | assign(self, *args) - | assign(self, other) - | - | clear(self, *args) - | clear(self) - | - | get_jrange_vrange(self, *args) - | get_jrange_vrange(self, jrange=None, vrange=None) -> bool - | - | get_jtable_element_size(self, *args) - | get_jtable_element_size(self) -> int - | - | get_jtable_size(self, *args) - | get_jtable_size(self) -> int - | - | get_lowcase(self, *args) - | get_lowcase(self) -> sval_t - | - | get_shift(self, *args) - | get_shift(self) -> int - | - | get_version(self, *args) - | get_version(self) -> int - | - | get_vtable_element_size(self, *args) - | get_vtable_element_size(self) -> int - | - | has_default(self, *args) - | has_default(self) -> bool - | - | has_elbase(self, *args) - | has_elbase(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_indirect(self, *args) - | is_indirect(self) -> bool - | - | is_nolowcase(self, *args) - | is_nolowcase(self) -> bool - | - | is_sparse(self, *args) - | is_sparse(self) -> bool - | - | is_subtract(self, *args) - | is_subtract(self) -> bool - | - | set_elbase(self, *args) - | set_elbase(self, base) - | - | set_expr(self, *args) - | set_expr(self, r, dt) - | - | set_jtable_element_size(self, *args) - | set_jtable_element_size(self, size) - | - | set_jtable_size(self, *args) - | set_jtable_size(self, size) - | - | set_shift(self, *args) - | set_shift(self, shift) - | - | set_vtable_element_size(self, *args) - | set_vtable_element_size(self, size) - | - | use_std_table(self, *args) - | use_std_table(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | custom - | switch_info_t_custom_get(self) -> uval_t - | - | defjump - | switch_info_t_defjump_get(self) -> ea_t - | - | elbase - | switch_info_t_elbase_get(self) -> ea_t - | - | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t - | - | flags - | switch_info_t_flags_get(self) -> uint32 - | - | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t - | - | jcases - | switch_info_t_jcases_get(self) -> int - | - | jumps - | switch_info_t_jumps_get(self) -> ea_t - | - | lowcase - | _get_values_lowcase(self) -> ea_t - | - | marks - | switch_info_t_marks_get(self) -> eavec_t * - | - | ncases - | switch_info_t_ncases_get(self) -> ushort - | - | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t - | - | regnum - | switch_info_t_regnum_get(self) -> int - | - | startea - | switch_info_t_startea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | values - | _get_values_lowcase(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | SWITCH_INFO_VERSION = 2 - | - | __swig_destroy__ = - | delete_switch_info_t(self) - -Help on function switch_info_t__from_ptrval__ in module ida_nalt: - -switch_info_t__from_ptrval__(*args) - switch_info_t__from_ptrval__(ptrval) -> switch_info_t - -Help on function unhide_border in module ida_nalt: - -unhide_border(*args) - unhide_border(ea) - -Help on function unhide_item in module ida_nalt: - -unhide_item(*args) - unhide_item(ea) - -Help on function uses_modsp in module ida_nalt: - -uses_modsp(*args) - uses_modsp(ea) -> bool - -Help on function validate_idb_names in module ida_nalt: - -validate_idb_names(*args) - validate_idb_names(do_repair) -> int - -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -should not be modified by modules - -sp delta value is fixed by analysis. -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ) -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_USEMODSP -""" -example: pop [rsp+N] - -insn modifes SP and uses the modified value -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -(comes from the user or type library) - -the type information is definitive. -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal -""" - -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -(should by equal to power of 2) - -alignment value if the item is 'FF_ALIGN' -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 -""" - -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference the kernel will call \\ph{notify}(ph.custom_offset, -.... that can change all arguments used for calculations. This flag is -useful for custom fixups -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference type -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name -""" - -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTED_EXTLANG -""" -last selected extlang name (from the execute script box) -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -segment will be used) - -elbase is present (otherwise the base of the switch -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -(for sparse switches) - -value table elements are used as indexes into the jump table -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -for first entry in values table) - -jumptable is inversed. (last entry is -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_RESERVED -""" -was: SWI_DEFAULT -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" - -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element< str - - - Append names of struct fields to a name if the name is a struct name. - - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) - @return: flags of the innermost struct member or the input flags - -Help on function calc_gtn_flags in module ida_name: - -calc_gtn_flags(fromaddr, ea) - Calculate flags for get_ea_name() function - - @param fromaddr: the referring address. May be BADADDR. - @param ea: linear address - - @return: flags - -Help on function cleanup_name in module ida_name: - -cleanup_name(*args) - cleanup_name(ea, name, flags=0) -> str - -Help on function del_debug_names in module ida_name: - -del_debug_names(*args) - del_debug_names(ea1, ea2) - -Help on function del_global_name in module ida_name: - -del_global_name(*args) - del_global_name(ea) -> bool - -Help on function del_local_name in module ida_name: - -del_local_name(*args) - del_local_name(ea) -> bool - -Help on function demangle_name in module ida_name: - -demangle_name(*args) - demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - - - Demangle a name. - - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp - -Help on class ea_name_t in module ida_name: - -class ea_name_t(__builtin__.object) - | Proxy of C++ ea_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ea_name_t - | __init__(self, _ea, _name) -> ea_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | ea_name_t_ea_get(self) -> ea_t - | - | name - | ea_name_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ea_name_t(self) - -Help on class ea_name_vec_t in module ida_name: - -class ea_name_vec_t(__builtin__.object) - | Proxy of C++ qvector< ea_name_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ea_name_t - | - | __init__(self, *args) - | __init__(self) -> ea_name_vec_t - | __init__(self, x) -> ea_name_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> ea_name_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ea_name_t - | begin(self) -> ea_name_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ea_name_t - | end(self) -> ea_name_t - | - | erase(self, *args) - | erase(self, it) -> ea_name_t - | erase(self, first, last) -> ea_name_t - | - | extract(self, *args) - | extract(self) -> ea_name_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ea_name_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ea_name_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ea_name_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ea_name_vec_t(self) - -Help on function extract_name in module ida_name: - -extract_name(*args) - extract_name(line, x) -> str - - - Extract a name or address from the specified string. - - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) - @return: -1 if cannot extract. otherwise length of the name - -Help on function force_name in module ida_name: - -force_name(*args) - force_name(ea, name, flags=0) -> bool - -Help on function get_colored_demangled_name in module ida_name: - -get_colored_demangled_name(*args) - get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - -Help on function get_colored_long_name in module ida_name: - -get_colored_long_name(*args) - get_colored_long_name(ea, gtn_flags=0) -> qstring - -Help on function get_colored_name in module ida_name: - -get_colored_name(*args) - get_colored_name(ea) -> qstring - -Help on function get_colored_short_name in module ida_name: - -get_colored_short_name(*args) - get_colored_short_name(ea, gtn_flags=0) -> qstring - -Help on function get_cp_validity in module ida_name: - -get_cp_validity(*args) - get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool - - - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - -Help on function get_debug_name in module ida_name: - -get_debug_name(*args) - get_debug_name(ea_ptr, how) -> str - -Help on function get_debug_name_ea in module ida_name: - -get_debug_name_ea(*args) - get_debug_name_ea(name) -> ea_t - -Help on function get_debug_names in module ida_name: - -get_debug_names(*args) - get_debug_names(names, ea1, ea2) - get_debug_names(ea1, ea2, return_list=False) -> PyObject * - -Help on function get_demangled_name in module ida_name: - -get_demangled_name(*args) - get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - -Help on function get_ea_name in module ida_name: - -get_ea_name(*args) - get_ea_name(ea, gtn_flags=0) -> qstring - - - Get name at the specified address. - - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) - @return: success - -Help on function get_long_name in module ida_name: - -get_long_name(*args) - get_long_name(ea, gtn_flags=0) -> qstring - -Help on function get_name in module ida_name: - -get_name(*args) - get_name(ea) -> qstring - -Help on function get_name_base_ea in module ida_name: - -get_name_base_ea(*args) - get_name_base_ea(_from, to) -> ea_t - - - Get address of the name used in the expression for the address - - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) - @return: address of the name used to represent the operand - -Help on function get_name_color in module ida_name: - -get_name_color(*args) - get_name_color(_from, ea) -> color_t - - - Calculate flags for 'get_ea_name()' function. - - Get name color. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) - -Help on function get_name_ea in module ida_name: - -get_name_ea(*args) - get_name_ea(_from, name) -> ea_t - - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR - -Help on function get_name_expr in module ida_name: - -get_name_expr(*args) - get_name_expr(_from, n, ea, off, flags=0x0001) -> str - - - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form +/- ). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. - -Help on function get_name_value in module ida_name: - -get_name_value(*args) - get_name_value(_from, name) -> int - - - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: Name value result codes - -Help on function get_nice_colored_name in module ida_name: - -get_nice_colored_name(*args) - get_nice_colored_name(ea, flags=0) -> str - - - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - - @param ea (C++: ea_t) - @param flags (C++: int) - @return: the length of the generated name in bytes. - -Help on function get_nlist_ea in module ida_name: - -get_nlist_ea(*args) - get_nlist_ea(idx) -> ea_t - - - Get address from the list at 'idx'. - - - @param idx (C++: size_t) - -Help on function get_nlist_idx in module ida_name: - -get_nlist_idx(*args) - get_nlist_idx(ea) -> size_t - - - Get index of the name in the listreturns the closest match. may return - idx >= size. - - @param ea (C++: ea_t) - -Help on function get_nlist_name in module ida_name: - -get_nlist_name(*args) - get_nlist_name(idx) -> char const * - - - Get name using idx. - - - @param idx (C++: size_t) - -Help on function get_nlist_size in module ida_name: - -get_nlist_size(*args) - get_nlist_size() -> size_t - - - Get number of names in the list. - -Help on function get_short_name in module ida_name: - -get_short_name(*args) - get_short_name(ea, gtn_flags=0) -> qstring - -Help on function get_visible_name in module ida_name: - -get_visible_name(*args) - get_visible_name(ea, gtn_flags=0) -> qstring - -Help on function hide_name in module ida_name: - -hide_name(*args) - hide_name(ea) - - - Remove name from the list of names - - @param ea: address of the name (C++: ea_t) - -Help on function is_ident in module ida_name: - -is_ident(*args) - is_ident(name) -> bool - - - Is a valid name? (including ::MangleChars) - - - @param name (C++: const char *) - -Help on function is_ident_cp in module ida_name: - -is_ident_cp(*args) - is_ident_cp(cp) -> bool - - - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - - - @param cp (C++: wchar32_t) - -Help on function is_in_nlist in module ida_name: - -is_in_nlist(*args) - is_in_nlist(ea) -> bool - - - Is name included into names list? - - - @param ea (C++: ea_t) - -Help on function is_name_defined_locally in module ida_name: - -is_name_defined_locally(*args) - is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - - - Is the name defined locally in the specified function? - - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) - @return: true if the name has been defined - -Help on function is_public_name in module ida_name: - -is_public_name(*args) - is_public_name(ea) -> bool - -Help on function is_strlit_cp in module ida_name: - -is_strlit_cp(*args) - is_strlit_cp(cp, specific_ranges=None) -> bool - - - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) - -Help on function is_uname in module ida_name: - -is_uname(*args) - is_uname(name) -> bool - - - Is valid user-specified name? (valid name & !dummy prefix). - - @param name: name to test. may be NULL. (C++: const char *) - -Help on function is_valid_cp in module ida_name: - -is_valid_cp(*args) - is_valid_cp(cp, kind, data=None) -> bool - - - Is the given codepoint acceptable in the given context? - - - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) - -Help on function is_valid_typename in module ida_name: - -is_valid_typename(*args) - is_valid_typename(name) -> bool - - - Is valid type name? - - @param name: name to test. may be NULL. (C++: const char *) - -Help on function is_visible_cp in module ida_name: - -is_visible_cp(*args) - is_visible_cp(cp) -> bool - - - Can a character be displayed in a name? (present in ::NameChars) - - - @param cp (C++: wchar32_t) - -Help on function is_weak_name in module ida_name: - -is_weak_name(*args) - is_weak_name(ea) -> bool - -Help on function make_name_auto in module ida_name: - -make_name_auto(*args) - make_name_auto(ea) -> bool - -Help on function make_name_non_public in module ida_name: - -make_name_non_public(*args) - make_name_non_public(ea) - -Help on function make_name_non_weak in module ida_name: - -make_name_non_weak(*args) - make_name_non_weak(ea) - -Help on function make_name_public in module ida_name: - -make_name_public(*args) - make_name_public(ea) - -Help on function make_name_user in module ida_name: - -make_name_user(*args) - make_name_user(ea) -> bool - -Help on function make_name_weak in module ida_name: - -make_name_weak(*args) - make_name_weak(ea) - -Help on function rebuild_nlist in module ida_name: - -rebuild_nlist(*args) - rebuild_nlist() - - - Rebuild names list. - -Help on function reorder_dummy_names in module ida_name: - -reorder_dummy_names(*args) - reorder_dummy_names() - - - Renumber dummy names. - -Help on function set_cp_validity in module ida_name: - -set_cp_validity(*args) - set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) - - - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) - -Help on function set_debug_name in module ida_name: - -set_debug_name(*args) - set_debug_name(ea, name) -> bool - -Help on function set_dummy_name in module ida_name: - -set_dummy_name(*args) - set_dummy_name(_from, ea) -> bool - - - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) - -Help on function set_name in module ida_name: - -set_name(*args) - set_name(ea, name, flags=0) -> bool - - - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, non- - auto. (C++: int) - -Help on function show_name in module ida_name: - -show_name(*args) - show_name(ea) - - - Insert name to the list of names. - - - @param ea (C++: ea_t) - -Help on function validate_name in module ida_name: - -validate_name(*args) - validate_name(name, type, flags=0) -> PyObject * - - - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) - @return: success - -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. -""" - -ida_name.GETN_APPZERO -""" -append a struct field name if the field offset is zero? - -meaningful only if the name refers to a structure. -""" - -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" - -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" - -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" - -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" - -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" - -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" - -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" - -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" - -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" - -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" - -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" - -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -delete the hindering item - -if name cannot be set because of a tail byte, -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === -Help on function exist in module ida_netnode: - -exist(*args) - exist(n) -> bool - -Help on class netnode in module ida_netnode: - -class netnode(__builtin__.object) - | Proxy of C++ netnode class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, n) -> bool - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode - | __init__(self, _name, namlen=0, do_create=False) -> netnode - | - | __ne__(self, *args) - | __ne__(self, n) -> bool - | __ne__(self, x) -> bool - | - | __repr__ = _swig_repr(self) - | - | altdel(self, *args) - | altdel(self, alt, tag=atag) -> bool - | altdel(self) -> bool - | - | altdel_all(self, *args) - | altdel_all(self, tag) -> bool - | - | altdel_ea(self, *args) - | altdel_ea(self, ea, tag=atag) -> bool - | - | altdel_idx8(self, *args) - | altdel_idx8(self, alt, tag) -> bool - | - | altfirst(self, *args) - | altfirst(self, tag=atag) -> nodeidx_t - | - | altfirst_idx8(self, *args) - | altfirst_idx8(self, tag) -> nodeidx_t - | - | altlast(self, *args) - | altlast(self, tag=atag) -> nodeidx_t - | - | altlast_idx8(self, *args) - | altlast_idx8(self, tag) -> nodeidx_t - | - | altnext(self, *args) - | altnext(self, cur, tag=atag) -> nodeidx_t - | - | altnext_idx8(self, *args) - | altnext_idx8(self, cur, tag) -> nodeidx_t - | - | altprev(self, *args) - | altprev(self, cur, tag=atag) -> nodeidx_t - | - | altprev_idx8(self, *args) - | altprev_idx8(self, cur, tag) -> nodeidx_t - | - | altset(self, *args) - | altset(self, alt, value, tag=atag) -> bool - | - | altset_ea(self, *args) - | altset_ea(self, ea, value, tag=atag) -> bool - | - | altset_idx8(self, *args) - | altset_idx8(self, alt, val, tag) -> bool - | - | altshift(self, *args) - | altshift(self, _from, to, size, tag=atag) -> size_t - | - | altval(self, *args) - | altval(self, alt, tag=atag) -> nodeidx_t - | - | altval_ea(self, *args) - | altval_ea(self, ea, tag=atag) -> nodeidx_t - | - | altval_idx8(self, *args) - | altval_idx8(self, alt, tag) -> nodeidx_t - | - | blobsize(self, *args) - | blobsize(self, _start, tag) -> size_t - | - | blobsize_ea(self, *args) - | blobsize_ea(self, ea, tag) -> size_t - | - | chardel(self, *args) - | chardel(self, alt, tag) -> bool - | - | chardel_ea(self, *args) - | chardel_ea(self, ea, tag) -> bool - | - | chardel_idx8(self, *args) - | chardel_idx8(self, alt, tag) -> bool - | - | charfirst(self, *args) - | charfirst(self, tag) -> nodeidx_t - | - | charfirst_idx8(self, *args) - | charfirst_idx8(self, tag) -> nodeidx_t - | - | charlast(self, *args) - | charlast(self, tag) -> nodeidx_t - | - | charlast_idx8(self, *args) - | charlast_idx8(self, tag) -> nodeidx_t - | - | charnext(self, *args) - | charnext(self, cur, tag) -> nodeidx_t - | - | charnext_idx8(self, *args) - | charnext_idx8(self, cur, tag) -> nodeidx_t - | - | charprev(self, *args) - | charprev(self, cur, tag) -> nodeidx_t - | - | charprev_idx8(self, *args) - | charprev_idx8(self, cur, tag) -> nodeidx_t - | - | charset(self, *args) - | charset(self, alt, val, tag) -> bool - | - | charset_ea(self, *args) - | charset_ea(self, ea, val, tag) -> bool - | - | charset_idx8(self, *args) - | charset_idx8(self, alt, val, tag) -> bool - | - | charshift(self, *args) - | charshift(self, _from, to, size, tag) -> size_t - | - | charval(self, *args) - | charval(self, alt, tag) -> uchar - | - | charval_ea(self, *args) - | charval_ea(self, ea, tag) -> uchar - | - | charval_idx8(self, *args) - | charval_idx8(self, alt, tag) -> uchar - | - | copyto(self, *args) - | copyto(self, target, count=1) -> size_t - | - | create(self, *args) - | create(self, _name, namlen=0) -> bool - | create(self) -> bool - | - | delblob(self, *args) - | delblob(self, _start, tag) -> int - | - | delblob_ea(self, *args) - | delblob_ea(self, ea, tag) -> int - | - | delvalue(self, *args) - | delvalue(self) -> bool - | - | eadel(self, *args) - | eadel(self, ea, tag) -> bool - | - | eadel_idx8(self, *args) - | eadel_idx8(self, idx, tag) -> bool - | - | eaget(self, *args) - | eaget(self, ea, tag) -> ea_t - | - | eaget_idx(self, *args) - | eaget_idx(self, idx, tag) -> ea_t - | - | eaget_idx8(self, *args) - | eaget_idx8(self, idx, tag) -> ea_t - | - | easet(self, *args) - | easet(self, ea, addr, tag) -> bool - | - | easet_idx(self, *args) - | easet_idx(self, idx, addr, tag) -> bool - | - | easet_idx8(self, *args) - | easet_idx8(self, idx, addr, tag) -> bool - | - | end(self, *args) - | end(self) -> bool - | - | get_name(self, *args) - | get_name(self) -> ssize_t - | - | getblob(self, *args) - | getblob(self, start, tag) -> PyObject * - | - | getblob_ea(self, *args) - | getblob_ea(self, ea, tag) -> PyObject * - | - | getclob(self, *args) - | getclob(self, start, tag) -> PyObject * - | - | hashdel(self, *args) - | hashdel(self, idx, tag=htag) -> bool - | - | hashdel_all(self, *args) - | hashdel_all(self, tag=htag) -> bool - | - | hashfirst(self, *args) - | hashfirst(self, tag=htag) -> ssize_t - | - | hashlast(self, *args) - | hashlast(self, tag=htag) -> ssize_t - | - | hashnext(self, *args) - | hashnext(self, idx, tag=htag) -> ssize_t - | - | hashprev(self, *args) - | hashprev(self, idx, tag=htag) -> ssize_t - | - | hashset(self, *args) - | hashset(self, idx, value, tag=htag) -> bool - | - | hashset_buf(self, *args) - | hashset_buf(self, idx, py_str, tag=htag) -> bool - | - | hashset_idx(self, *args) - | hashset_idx(self, idx, value, tag=htag) -> bool - | - | hashstr(self, *args) - | hashstr(self, idx, tag=htag) -> ssize_t - | - | hashstr_buf(self, *args) - | hashstr_buf(self, idx, tag=htag) -> PyObject * - | - | hashval(self, *args) - | hashval(self, idx, tag=htag) -> ssize_t - | - | hashval_long(self, *args) - | hashval_long(self, idx, tag=htag) -> nodeidx_t - | - | index(self, *args) - | index(self) -> nodeidx_t - | - | kill(self, *args) - | kill(self) - | - | long_value(self, *args) - | long_value(self) -> nodeidx_t - | - | lower_bound(self, *args) - | lower_bound(self, cur, tag=stag) -> nodeidx_t - | - | lower_bound_ea(self, *args) - | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t - | - | lower_bound_idx8(self, *args) - | lower_bound_idx8(self, alt, tag) -> nodeidx_t - | - | moveto(self, *args) - | moveto(self, target, count=1) -> size_t - | - | next(self, *args) - | next(self) -> bool - | - | prev(self, *args) - | prev(self) -> bool - | - | rename(self, *args) - | rename(self, newname, namlen=0) -> bool - | - | set(self, *args) - | set(self, value) -> bool - | - | set_long(self, *args) - | set_long(self, x) -> bool - | - | setblob(self, *args) - | setblob(self, buf, _start, tag) -> bool - | - | setblob_ea(self, *args) - | setblob_ea(self, buf, ea, tag) -> bool - | - | start(self, *args) - | start(self) -> bool - | - | supdel(self, *args) - | supdel(self, alt, tag=stag) -> bool - | supdel(self) -> bool - | - | supdel_all(self, *args) - | supdel_all(self, tag) -> bool - | - | supdel_ea(self, *args) - | supdel_ea(self, ea, tag=stag) -> bool - | - | supdel_idx8(self, *args) - | supdel_idx8(self, alt, tag) -> bool - | - | supdel_range(self, *args) - | supdel_range(self, idx1, idx2, tag) -> int - | - | supdel_range_idx8(self, *args) - | supdel_range_idx8(self, idx1, idx2, tag) -> int - | - | supfirst(self, *args) - | supfirst(self, tag=stag) -> nodeidx_t - | - | supfirst_idx8(self, *args) - | supfirst_idx8(self, tag) -> nodeidx_t - | - | suplast(self, *args) - | suplast(self, tag=stag) -> nodeidx_t - | - | suplast_idx8(self, *args) - | suplast_idx8(self, tag) -> nodeidx_t - | - | supnext(self, *args) - | supnext(self, cur, tag=stag) -> nodeidx_t - | - | supnext_idx8(self, *args) - | supnext_idx8(self, alt, tag) -> nodeidx_t - | - | supprev(self, *args) - | supprev(self, cur, tag=stag) -> nodeidx_t - | - | supprev_idx8(self, *args) - | supprev_idx8(self, alt, tag) -> nodeidx_t - | - | supset(self, *args) - | supset(self, alt, value, tag=stag) -> bool - | - | supset_ea(self, *args) - | supset_ea(self, ea, value, tag=stag) -> bool - | - | supset_idx8(self, *args) - | supset_idx8(self, alt, value, tag) -> bool - | - | supshift(self, *args) - | supshift(self, _from, to, size, tag=stag) -> size_t - | - | supstr(self, *args) - | supstr(self, alt, tag=stag) -> ssize_t - | - | supstr_ea(self, *args) - | supstr_ea(self, ea, tag=stag) -> ssize_t - | - | supstr_idx8(self, *args) - | supstr_idx8(self, alt, tag) -> ssize_t - | - | supval(self, *args) - | supval(self, alt, tag=stag) -> ssize_t - | - | supval_ea(self, *args) - | supval_ea(self, ea, tag=stag) -> ssize_t - | - | supval_idx8(self, *args) - | supval_idx8(self, alt, tag) -> ssize_t - | - | valobj(self, *args) - | valobj(self) -> ssize_t - | - | valstr(self, *args) - | valstr(self) -> ssize_t - | - | value_exists(self, *args) - | value_exists(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_netnode(self) - -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE -""" -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === -Help on function add_refinfo_dref in module ida_offset: - -add_refinfo_dref(*args) - add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t - - - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - - @param insn: the referencing instruction (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) - @return: the target address of the reference - -Help on function calc_basevalue in module ida_offset: - -calc_basevalue(*args) - calc_basevalue(target, base) -> ea_t - - - Calculate the value of the reference base. - - - @param target (C++: ea_t) - @param base (C++: ea_t) - -Help on function calc_offset_base in module ida_offset: - -calc_offset_base(*args) - calc_offset_base(ea, n) -> ea_t - - - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR - -Help on function calc_probable_base_by_value in module ida_offset: - -calc_probable_base_by_value(*args) - calc_probable_base_by_value(ea, off) -> ea_t - - - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - - @param ea (C++: ea_t) - @param off (C++: uval_t) - -Help on function calc_reference_data in module ida_offset: - -calc_reference_data(*args) - calc_reference_data(target, base, _from, ri, opval) -> bool - - - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @return: success - -Help on function calc_target in module ida_offset: - -calc_target(*args) - calc_target(_from, opval, ri) -> ea_t - calc_target(_from, ea, n, opval) -> ea_t - - - Calculates the target, using the provided 'refinfo_t' . - - - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) - -Help on function can_be_off32 in module ida_offset: - -can_be_off32(*args) - can_be_off32(ea) -> ea_t - - - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - - @param ea (C++: ea_t) - -Help on function get_default_reftype in module ida_offset: - -get_default_reftype(*args) - get_default_reftype(ea) -> reftype_t - - - Get default reference type depending on the segment. - - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 - -Help on function get_offbase in module ida_offset: - -get_offbase(*args) - get_offbase(ea, n) -> ea_t - - - Get offset base value - - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR - -Help on function get_offset_expr in module ida_offset: - -get_offset_expr(*args) - get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str - - - See 'get_offset_expression()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) - -Help on function get_offset_expression in module ida_offset: - -get_offset_expression(*args) - get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str - - - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) - -Help on function op_offset in module ida_offset: - -op_offset(*args) - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int - - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) - -Help on function op_offset_ex in module ida_offset: - -op_offset_ex(*args) - op_offset_ex(ea, n, ri) -> int - - - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) - @return: success - -Help on function op_plain_offset in module ida_offset: - -op_plain_offset(*args) - op_plain_offset(ea, n, base) -> bool - - - Convert operand to a reference with the default reference type. - - - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) - -Help on class __qmutex_t in module ida_pro: - -class __qmutex_t(__builtin__.object) - | Proxy of C++ __qmutex_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qmutex_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete___qmutex_t(self) - -Help on class __qsemaphore_t in module ida_pro: - -class __qsemaphore_t(__builtin__.object) - | Proxy of C++ __qsemaphore_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qsemaphore_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete___qsemaphore_t(self) - -Help on class __qthread_t in module ida_pro: - -class __qthread_t(__builtin__.object) - | Proxy of C++ __qthread_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qthread_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete___qthread_t(self) - -Help on class _qstrvec_t in module ida_pro: - -class _qstrvec_t(ida_idaapi.py_clinked_object_t) - | WARNING: It is very unlikely an IDAPython user should ever, ever - | have to use this type. It should only be used for IDAPython internals. - | - | For example, in py_askusingform.py, we ctypes-expose to the IDA - | kernel & UI a qstrvec instance, in case a DropdownListControl is - | constructed. - | That's because that's what ask_form expects, and we have no - | choice but to make a DropdownListControl hold a qstrvec_t. - | This is, afaict, the only situation where a Python - | _qstrvec_t is required. - | - | Method resolution order: - | _qstrvec_t - | ida_idaapi.py_clinked_object_t - | ida_idaapi.pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __getitem__(self, idx) - | Gets the string at the given index - | - | __init__(self, items=None) - | - | __setitem__(self, idx, s) - | Sets string at the given index - | - | _create_clink(self) - | - | _del_clink(self, lnk) - | - | _get_clink_ptr(self) - | - | _qstrvec_t__get_size = __get_size(self) - | - | add(self, s) - | Add a string to the vector - | - | addressof(self, idx) - | Returns the address (as number) of the qstring at the given index - | - | assign(self, other) - | Copies the contents of 'other' to 'self' - | - | clear(self, qclear=False) - | Clears all strings from the vector. - | @param qclear: Just reset the size but do not actually free the memory - | - | from_list(self, lst) - | Populates the vector from a Python string list - | - | insert(self, idx, s) - | Insert a string into the vector - | - | remove(self, idx) - | Removes a string from the vector - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | size - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_idaapi.py_clinked_object_t: - | - | __del__(self) - | Delete the link upon object destruction (only if not static) - | - | _free(self) - | Explicitly delete the link (only if not static) - | - | copy(self) - | Returns a new copy of this class - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.py_clinked_object_t: - | - | clink - | - | clink_ptr - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on class boolvec_t in module ida_pro: - -class boolvec_t(__builtin__.object) - | Proxy of C++ qvector< bool > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> bool const & - | - | __init__(self, *args) - | __init__(self) -> boolvec_t - | __init__(self, x) -> boolvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< bool >::iterator - | begin(self) -> qvector< bool >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< bool >::iterator - | end(self) -> qvector< bool >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< bool >::iterator - | erase(self, first, last) -> qvector< bool >::iterator - | - | extract(self, *args) - | extract(self) -> bool * - | - | find(self, *args) - | find(self, x) -> qvector< bool >::iterator - | find(self, x) -> qvector< bool >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=bool()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< bool >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> bool & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_boolvec_t(self) - -Help on class channel_redir_t in module ida_pro: - -class channel_redir_t(__builtin__.object) - | Proxy of C++ channel_redir_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> channel_redir_t - | - | __repr__ = _swig_repr(self) - | - | is_append(self, *args) - | is_append(self) -> bool - | - | is_input(self, *args) - | is_input(self) -> bool - | - | is_output(self, *args) - | is_output(self) -> bool - | - | is_quoted(self, *args) - | is_quoted(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fd - | channel_redir_t_fd_get(self) -> int - | - | file - | channel_redir_t_file_get(self) -> qstring * - | - | flags - | channel_redir_t_flags_get(self) -> int - | - | length - | channel_redir_t_length_get(self) -> int - | - | start - | channel_redir_t_start_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_channel_redir_t(self) - -Help on function check_process_exit in module ida_pro: - -check_process_exit(*args) - check_process_exit(handle, exit_code, msecs=-1) -> int - - - Check whether process has terminated or not. - - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - -Help on function clear_bits in module ida_pro: - -clear_bits(*args) - clear_bits(bitmap, low, high) - - - Clear bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) - -Help on class ea_array in module ida_pro: - -class ea_array(__builtin__.object) - | Proxy of C++ ea_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> ea_t - | - | __init__(self, *args) - | __init__(self, nelements) -> ea_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> ea_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> ea_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ea_array(self) - -Help on function ea_array_frompointer in module ida_pro: - -ea_array_frompointer(*args) - ea_array_frompointer(t) -> ea_array - -Help on class ea_pointer in module ida_pro: - -class ea_pointer(__builtin__.object) - | Proxy of C++ ea_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ea_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> ea_t * - | - | value(self, *args) - | value(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> ea_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ea_pointer(self) - -Help on function ea_pointer_frompointer in module ida_pro: - -ea_pointer_frompointer(*args) - ea_pointer_frompointer(t) -> ea_pointer - -Help on function extend_sign in module ida_pro: - -extend_sign(*args) - extend_sign(v, nbytes, sign_extend) -> uint64 - - - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) - -Help on class instant_dbgopts_t in module ida_pro: - -class instant_dbgopts_t(__builtin__.object) - | Proxy of C++ instant_dbgopts_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> instant_dbgopts_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * - | - | attach - | instant_dbgopts_t_attach_get(self) -> bool - | - | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * - | - | env - | instant_dbgopts_t_env_get(self) -> qstring * - | - | event_id - | instant_dbgopts_t_event_id_get(self) -> int - | - | host - | instant_dbgopts_t_host_get(self) -> qstring * - | - | pid - | instant_dbgopts_t_pid_get(self) -> int - | - | port - | instant_dbgopts_t_port_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_instant_dbgopts_t(self) - -Help on class longlongvec_t in module ida_pro: - -class longlongvec_t(__builtin__.object) - | Proxy of C++ qvector< long long > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> long long const & - | - | __init__(self, *args) - | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< long long >::iterator - | begin(self) -> qvector< long long >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< long long >::iterator - | end(self) -> qvector< long long >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< long long >::iterator - | erase(self, first, last) -> qvector< long long >::iterator - | - | extract(self, *args) - | extract(self) -> long long * - | - | find(self, *args) - | find(self, x) -> qvector< long long >::iterator - | find(self, x) -> qvector< long long >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< long long >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> long long & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_longlongvec_t(self) - -Help on class int_pointer in module ida_pro: - -class int_pointer(__builtin__.object) - | Proxy of C++ int_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> int_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> int * - | - | value(self, *args) - | value(self) -> int - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> int_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_int_pointer(self) - -Help on function int_pointer_frompointer in module ida_pro: - -int_pointer_frompointer(*args) - int_pointer_frompointer(t) -> int_pointer - -Help on class intvec_t in module ida_pro: - -class intvec_t(__builtin__.object) - | Proxy of C++ qvector< int > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> int const & - | - | __init__(self, *args) - | __init__(self) -> intvec_t - | __init__(self, x) -> intvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< int >::iterator - | begin(self) -> qvector< int >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< int >::iterator - | end(self) -> qvector< int >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< int >::iterator - | erase(self, first, last) -> qvector< int >::iterator - | - | extract(self, *args) - | extract(self) -> int * - | - | find(self, *args) - | find(self, x) -> qvector< int >::iterator - | find(self, x) -> qvector< int >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< int >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> int & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_intvec_t(self) - -Help on function is_control_tty in module ida_pro: - -is_control_tty(*args) - is_control_tty(fd) -> enum tty_control_t - - - Check if the current process is the owner of the TTY specified by 'fd' - (typically an opened descriptor to /dev/tty). - - @param fd (C++: int) - -Help on function is_main_thread in module ida_pro: - -is_main_thread(*args) - is_main_thread() -> bool - - - Are we running in the main thread? - -Help on function log2ceil in module ida_pro: - -log2ceil(*args) - log2ceil(d64) -> int - - - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - - @param d64 (C++: uint64) - -Help on function log2floor in module ida_pro: - -log2floor(*args) - log2floor(d64) -> int - -Help on function parse_dbgopts in module ida_pro: - -parse_dbgopts(*args) - parse_dbgopts(ido, r_switch) -> bool - - - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error - -Help on function qatoll in module ida_pro: - -qatoll(*args) - qatoll(nptr) -> int64 - -Help on function qcontrol_tty in module ida_pro: - -qcontrol_tty(*args) - qcontrol_tty() - - - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty - -Help on function qdetach_tty in module ida_pro: - -qdetach_tty(*args) - qdetach_tty() - - - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty - -Help on function qexit in module ida_pro: - -qexit(*args) - qexit(code) - - - Call qatexit functions, shut down UI and kernel, and exit. - - @param code: exit code (C++: int) - -Help on class qmutex_locker_t in module ida_pro: - -class qmutex_locker_t(__builtin__.object) - | Proxy of C++ qmutex_locker_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _lock) -> qmutex_locker_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qmutex_locker_t(self) - -Help on class qrefcnt_obj_t in module ida_pro: - -class qrefcnt_obj_t(__builtin__.object) - | Proxy of C++ qrefcnt_obj_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | release(self, *args) - | release(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_qrefcnt_obj_t(self) - -Help on function qstrvec_t_add in module ida_pro: - -qstrvec_t_add(*args) - qstrvec_t_add(_self, s) -> bool - -Help on function qstrvec_t_addressof in module ida_pro: - -qstrvec_t_addressof(*args) - qstrvec_t_addressof(_self, idx) -> PyObject * - -Help on function qstrvec_t_assign in module ida_pro: - -qstrvec_t_assign(*args) - qstrvec_t_assign(_self, other) -> bool - -Help on function qstrvec_t_clear in module ida_pro: - -qstrvec_t_clear(*args) - qstrvec_t_clear(_self, qclear) -> bool - -Help on function qstrvec_t_create in module ida_pro: - -qstrvec_t_create(*args) - qstrvec_t_create() -> PyObject * - -Help on function qstrvec_t_destroy in module ida_pro: - -qstrvec_t_destroy(*args) - qstrvec_t_destroy(py_obj) -> bool - -Help on function qstrvec_t_from_list in module ida_pro: - -qstrvec_t_from_list(*args) - qstrvec_t_from_list(_self, py_list) -> bool - -Help on function qstrvec_t_get in module ida_pro: - -qstrvec_t_get(*args) - qstrvec_t_get(_self, idx) -> PyObject * - -Help on function qstrvec_t_get_clink in module ida_pro: - -qstrvec_t_get_clink(*args) - qstrvec_t_get_clink(_self) -> qstrvec_t * - -Help on function qstrvec_t_get_clink_ptr in module ida_pro: - -qstrvec_t_get_clink_ptr(*args) - qstrvec_t_get_clink_ptr(_self) -> PyObject * - -Help on function qstrvec_t_insert in module ida_pro: - -qstrvec_t_insert(*args) - qstrvec_t_insert(_self, idx, s) -> bool - -Help on function qstrvec_t_remove in module ida_pro: - -qstrvec_t_remove(*args) - qstrvec_t_remove(_self, idx) -> bool - -Help on function qstrvec_t_set in module ida_pro: - -qstrvec_t_set(*args) - qstrvec_t_set(_self, idx, s) -> bool - -Help on function qstrvec_t_size in module ida_pro: - -qstrvec_t_size(*args) - qstrvec_t_size(_self) -> size_t - -Help on function quote_cmdline_arg in module ida_pro: - -quote_cmdline_arg(*args) - quote_cmdline_arg(arg) -> bool - - - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - - @param arg (C++: qstring *) - @return: true: modified 'arg' - -Help on function qvector_reserve in module ida_pro: - -qvector_reserve(*args) - qvector_reserve(vec, old, cnt, elsize) -> void * - - - Change capacity of given qvector. - - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) - @return: a pointer to the newly allocated array - -Help on function readbytes in module ida_pro: - -readbytes(*args) - readbytes(h, res, size, mf) -> int - - - Read at most 4 bytes from file. - - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise - -Help on function reloc_value in module ida_pro: - -reloc_value(*args) - reloc_value(value, size, delta, mf) - -Help on function relocate_relobj in module ida_pro: - -relocate_relobj(*args) - relocate_relobj(_relobj, ea, mf) -> bool - -Help on class sel_array in module ida_pro: - -class sel_array(__builtin__.object) - | Proxy of C++ sel_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> sel_t - | - | __init__(self, *args) - | __init__(self, nelements) -> sel_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> sel_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> sel_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_sel_array(self) - -Help on function sel_array_frompointer in module ida_pro: - -sel_array_frompointer(*args) - sel_array_frompointer(t) -> sel_array - -Help on class sel_pointer in module ida_pro: - -class sel_pointer(__builtin__.object) - | Proxy of C++ sel_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> sel_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> sel_t * - | - | value(self, *args) - | value(self) -> sel_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> sel_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_sel_pointer(self) - -Help on function sel_pointer_frompointer in module ida_pro: - -sel_pointer_frompointer(*args) - sel_pointer_frompointer(t) -> sel_pointer - -Help on function set_bits in module ida_pro: - -set_bits(*args) - set_bits(bitmap, low, high) - - - Set bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) - -Help on class sizevec_t in module ida_pro: - -class sizevec_t(__builtin__.object) - | Proxy of C++ qvector< size_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> size_t const & - | - | __init__(self, *args) - | __init__(self) -> sizevec_t - | __init__(self, x) -> sizevec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> size_t const & - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< size_t >::iterator - | begin(self) -> qvector< size_t >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< size_t >::iterator - | end(self) -> qvector< size_t >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< size_t >::iterator - | erase(self, first, last) -> qvector< size_t >::iterator - | - | extract(self, *args) - | extract(self) -> size_t * - | - | find(self, *args) - | find(self, x) -> qvector< size_t >::iterator - | find(self, x) -> qvector< size_t >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=size_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< size_t >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> size_t & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_sizevec_t(self) - -Help on function str2user in module ida_pro: - -str2user(*args) - str2user(str) -> PyObject * - - - Insert C-style escape characters to string - - @return: new string with escape characters inserted - -Help on class strvec_t in module ida_pro: - -class strvec_t(__builtin__.object) - | Proxy of C++ qvector< simpleline_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> simpleline_t const & - | - | __init__(self, *args) - | __init__(self) -> strvec_t - | __init__(self, x) -> strvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< simpleline_t >::iterator - | begin(self) -> qvector< simpleline_t >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< simpleline_t >::iterator - | end(self) -> qvector< simpleline_t >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< simpleline_t >::iterator - | erase(self, first, last) -> qvector< simpleline_t >::iterator - | - | extract(self, *args) - | extract(self) -> simpleline_t * - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=simpleline_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< simpleline_t >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> simpleline_t & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_strvec_t(self) - -Help on class sval_pointer in module ida_pro: - -class sval_pointer(__builtin__.object) - | Proxy of C++ sval_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> sval_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> sval_t * - | - | value(self, *args) - | value(self) -> sval_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> sval_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_sval_pointer(self) - -Help on function sval_pointer_frompointer in module ida_pro: - -sval_pointer_frompointer(*args) - sval_pointer_frompointer(t) -> sval_pointer - -Help on class tid_array in module ida_pro: - -class tid_array(__builtin__.object) - | Proxy of C++ tid_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> tid_t - | - | __init__(self, *args) - | __init__(self, nelements) -> tid_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> tid_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> tid_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tid_array(self) - -Help on function tid_array_frompointer in module ida_pro: - -tid_array_frompointer(*args) - tid_array_frompointer(t) -> tid_array - -Help on class uchar_array in module ida_pro: - -class uchar_array(__builtin__.object) - | Proxy of C++ uchar_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> uchar - | - | __init__(self, *args) - | __init__(self, nelements) -> uchar_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> uchar * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> uchar_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_uchar_array(self) - -Help on function uchar_array_frompointer in module ida_pro: - -uchar_array_frompointer(*args) - uchar_array_frompointer(t) -> uchar_array - -Help on class ulonglongvec_t in module ida_pro: - -class ulonglongvec_t(__builtin__.object) - | Proxy of C++ qvector< unsigned long long > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned long long const & - | - | __init__(self, *args) - | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< unsigned long long >::iterator - | begin(self) -> qvector< unsigned long long >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< unsigned long long >::iterator - | end(self) -> qvector< unsigned long long >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< unsigned long long >::iterator - | erase(self, first, last) -> qvector< unsigned long long >::iterator - | - | extract(self, *args) - | extract(self) -> unsigned long long * - | - | find(self, *args) - | find(self, x) -> qvector< unsigned long long >::iterator - | find(self, x) -> qvector< unsigned long long >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< unsigned long long >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned long long & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ulonglongvec_t(self) - -Help on class uintvec_t in module ida_pro: - -class uintvec_t(__builtin__.object) - | Proxy of C++ qvector< unsigned int > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned int const & - | - | __init__(self, *args) - | __init__(self) -> uintvec_t - | __init__(self, x) -> uintvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< unsigned int >::iterator - | begin(self) -> qvector< unsigned int >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< unsigned int >::iterator - | end(self) -> qvector< unsigned int >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< unsigned int >::iterator - | erase(self, first, last) -> qvector< unsigned int >::iterator - | - | extract(self, *args) - | extract(self) -> unsigned int * - | - | find(self, *args) - | find(self, x) -> qvector< unsigned int >::iterator - | find(self, x) -> qvector< unsigned int >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< unsigned int >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned int & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_uintvec_t(self) - -Help on class uval_array in module ida_pro: - -class uval_array(__builtin__.object) - | Proxy of C++ uval_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> uval_t - | - | __init__(self, *args) - | __init__(self, nelements) -> uval_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> uval_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> uval_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_uval_array(self) - -Help on function uval_array_frompointer in module ida_pro: - -uval_array_frompointer(*args) - uval_array_frompointer(t) -> uval_array - -Help on function writebytes in module ida_pro: - -writebytes(*args) - writebytes(h, l, size, mf) -> int - - - Write at most 4 bytes to file. - - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise - -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. -""" - -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.4. -""" - -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" - -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === -Help on function forget_problem in module ida_problems: - -forget_problem(*args) - forget_problem(type, ea) -> bool - - - Remove an address from a problem list - - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @return: success - -Help on function get_problem in module ida_problems: - -get_problem(*args) - get_problem(type, lowea) -> ea_t - - - Get an address from the specified problem list. The address is not - removed from the list. - - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR - -Help on function get_problem_desc in module ida_problems: - -get_problem_desc(*args) - get_problem_desc(t, ea) -> str - - - Get the human-friendly description of the problem, if one was provided - to remember_problem. - - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) - @return: the message length or -1 if none - -Help on function get_problem_name in module ida_problems: - -get_problem_name(*args) - get_problem_name(type, longname=True) -> char const * - - - Get problem list description. - - - @param type (C++: problist_id_t) - @param longname (C++: bool) - -Help on function is_problem_present in module ida_problems: - -is_problem_present(*args) - is_problem_present(t, ea) -> bool - - - Check if the specified address is present in the problem list. - - - @param t (C++: problist_id_t) - @param ea (C++: ea_t) - -Help on function remember_problem in module ida_problems: - -remember_problem(*args) - remember_problem(type, ea, msg=None) - - - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) - -Help on function was_ida_decision in module ida_problems: - -was_ida_decision(*args) - was_ida_decision(ea) -> bool - -Help on class array_of_rangesets in module ida_range: - -class array_of_rangesets(__builtin__.object) - | Proxy of C++ qvector< rangeset_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> rangeset_t - | - | __init__(self, *args) - | __init__(self) -> array_of_rangesets - | __init__(self, x) -> array_of_rangesets - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> rangeset_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> rangeset_t - | begin(self) -> rangeset_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> rangeset_t - | end(self) -> rangeset_t - | - | erase(self, *args) - | erase(self, it) -> rangeset_t - | erase(self, first, last) -> rangeset_t - | - | extract(self, *args) - | extract(self) -> rangeset_t - | - | find(self, *args) - | find(self, x) -> rangeset_t - | find(self, x) -> rangeset_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=rangeset_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> rangeset_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> rangeset_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_array_of_rangesets(self) - -Help on class range_t in module ida_range: - -class range_t(__builtin__.object) - | Proxy of C++ range_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> range_t - | __init__(self, ea1, ea2) -> range_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_range_t(self) - -Help on function range_t_print in module ida_range: - -range_t_print(*args) - range_t_print(cb) -> str - - - Helper function. Should not be called directly! - -Help on class rangeset_t in module ida_range: - -class rangeset_t(__builtin__.object) - | Proxy of C++ rangeset_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, aset) -> bool - | - | __getitem__(self, idx) - | - | __init__(self, *args) - | __init__(self) -> rangeset_t - | __init__(self, range) -> rangeset_t - | __init__(self, ivs) -> rangeset_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = nranges(self, *args) - | - | __ne__(self, *args) - | __ne__(self, aset) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) -> size_t - | - | add(self, *args) - | add(self, range) -> bool - | add(self, start, _end) -> bool - | add(self, aset) -> bool - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | cached_range(self, *args) - | cached_range(self) -> range_t - | - | clear(self, *args) - | clear(self) - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, aset) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | find_range(self, *args) - | find_range(self, ea) -> range_t - | - | getrange(self, *args) - | getrange(self, idx) -> range_t - | - | has_common(self, *args) - | has_common(self, range) -> bool - | has_common(self, aset) -> bool - | - | includes(self, *args) - | includes(self, range) -> bool - | - | intersect(self, *args) - | intersect(self, aset) -> bool - | - | is_equal(self, *args) - | is_equal(self, aset) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, aset) -> bool - | - | lastrange(self, *args) - | lastrange(self) -> range_t - | - | next_addr(self, *args) - | next_addr(self, ea) -> ea_t - | - | next_range(self, *args) - | next_range(self, ea) -> ea_t - | - | nranges(self, *args) - | nranges(self) -> size_t - | - | prev_addr(self, *args) - | prev_addr(self, ea) -> ea_t - | - | prev_range(self, *args) - | prev_range(self, ea) -> ea_t - | - | sub(self, *args) - | sub(self, range) -> bool - | sub(self, ea) -> bool - | sub(self, aset) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_rangeset_t(self) - -Help on class rangevec_base_t in module ida_range: - -class rangevec_base_t(__builtin__.object) - | Proxy of C++ qvector< range_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __init__(self, *args) - | __init__(self) -> rangevec_base_t - | __init__(self, x) -> rangevec_base_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_rangevec_base_t(self) - -Help on class rangevec_t in module ida_range: - -class rangevec_t(rangevec_base_t) - | Proxy of C++ rangevec_t class. - | - | Method resolution order: - | rangevec_t - | rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> rangevec_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_rangevec_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function reg_data_type in module ida_registry: - -reg_data_type(*args) - reg_data_type(name, subkey=None) -> regval_type_t - - - Get data type of a given value. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if the [key+]value doesn't exist - -Help on function reg_delete in module ida_registry: - -reg_delete(*args) - reg_delete(name, subkey=None) -> bool - - - Delete a value from the registry. - - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - @return: success - -Help on function reg_delete_subkey in module ida_registry: - -reg_delete_subkey(*args) - reg_delete_subkey(name) -> bool - - - Delete a key from the registry. - - - @param name (C++: const char *) - -Help on function reg_delete_tree in module ida_registry: - -reg_delete_tree(*args) - reg_delete_tree(name) -> bool - - - Delete a subtree from the registry. - - - @param name (C++: const char *) - -Help on function reg_exists in module ida_registry: - -reg_exists(*args) - reg_exists(name, subkey=None) -> bool - - - Is there already a value with the given name? - - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - -Help on function reg_flush in module ida_registry: - -reg_flush(*args) - reg_flush() - -Help on function reg_load in module ida_registry: - -reg_load(*args) - reg_load() - -Help on function reg_read_binary in module ida_registry: - -reg_read_binary(*args) - reg_read_binary(name, subkey=None) -> PyObject * - - - Read binary data from the registry. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if 'data' is not large enough to hold all data present. - in this case 'data' is left untouched. - -Help on function reg_read_bool in module ida_registry: - -reg_read_bool(*args) - reg_read_bool(name, defval, subkey=None) -> bool - - - Read boolean value from the registry. - - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) - @return: boolean read from registry, or 'defval' if the read failed - -Help on function reg_read_int in module ida_registry: - -reg_read_int(*args) - reg_read_int(name, defval, subkey=None) -> int - - - Read integer value from the registry. - - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed - -Help on function reg_read_string in module ida_registry: - -reg_read_string(*args) - reg_read_string(name, subkey=None, _def=None) -> PyObject * - - - Read a string from the registry. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: success - -Help on function reg_read_strlist in module ida_registry: - -reg_read_strlist(*args) - reg_read_strlist(subkey) - - - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . - - @param subkey (C++: const char *) - -Help on function reg_subkey_exists in module ida_registry: - -reg_subkey_exists(*args) - reg_subkey_exists(name) -> bool - - - Is there already a key with the given name? - - - @param name (C++: const char *) - -Help on function reg_subkey_subkeys in module ida_registry: - -reg_subkey_subkeys(*args) - reg_subkey_subkeys(name) -> PyObject * - - - Get all subkey names of given key. - - - @param name (C++: const char *) - -Help on function reg_subkey_values in module ida_registry: - -reg_subkey_values(*args) - reg_subkey_values(name) -> PyObject * - - - Get all value names under given key. - - - @param name (C++: const char *) - -Help on function reg_update_filestrlist in module ida_registry: - -reg_update_filestrlist(*args) - reg_update_filestrlist(subkey, add, maxrecs, rem=None) - - - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) - -Help on function reg_update_strlist in module ida_registry: - -reg_update_strlist(*args) - reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - - - Update list of strings associated with given key. - - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) - -Help on function reg_write_binary in module ida_registry: - -reg_write_binary(*args) - reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - - - Write binary data to the registry. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - -Help on function reg_write_bool in module ida_registry: - -reg_write_bool(*args) - reg_write_bool(name, value, subkey=None) - - - Write boolean value to the registry. - - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) - -Help on function reg_write_int in module ida_registry: - -reg_write_int(*args) - reg_write_int(name, value, subkey=None) - - - Write integer value to the registry. - - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) - -Help on function reg_write_string in module ida_registry: - -reg_write_string(*args) - reg_write_string(name, utf8, subkey=None) - - - Write a string to the registry. - - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) - -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME -""" -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === -Help on function find_binary in module ida_search: - -find_binary(*args) - find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t - -Help on function find_code in module ida_search: - -find_code(*args) - find_code(ea, sflag) -> ea_t - - - Find next code address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_data in module ida_search: - -find_data(*args) - find_data(ea, sflag) -> ea_t - - - Find next data address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_defined in module ida_search: - -find_defined(*args) - find_defined(ea, sflag) -> ea_t - - - Find next ea that is the start of an instruction or data. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_error in module ida_search: - -find_error(*args) - find_error(ea, sflag) -> ea_t - - - Find next error or problem. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_imm in module ida_search: - -find_imm(*args) - find_imm(newEA, sflag, srchValue) -> ea_t - - - Find next immediate operand with the given value. - - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) - -Help on function find_not_func in module ida_search: - -find_not_func(*args) - find_not_func(ea, sflag) -> ea_t - - - Find next code address that does not belong to a function. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_notype in module ida_search: - -find_notype(*args) - find_notype(ea, sflag) -> ea_t - - - Find next operand without any type info. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_suspop in module ida_search: - -find_suspop(*args) - find_suspop(ea, sflag) -> ea_t - - - Find next suspicious operand. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_text in module ida_search: - -find_text(*args) - find_text(start_ea, y, x, ustr, sflag) -> ea_t - - - See 'search()' - - - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) - -Help on function find_unknown in module ida_search: - -find_unknown(*args) - find_unknown(ea, sflag) -> ea_t - - - Find next unexplored address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function search_down in module ida_search: - -search_down(*args) - search_down(sflag) -> bool - - - Is the 'SEARCH_DOWN' bit set? - - - @param sflag (C++: int) - -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if Ctrl-Break wass pressed during search -""" - -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" - -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" - -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" - -ida_search.SEARCH_NEXT -""" -for other find_.. functions it is implicitly set - -useful only for 'search()' and find_binary(). -""" - -ida_search.SEARCH_NOBRK -""" -don't test for ctrl-break to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -don't display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (only supported for txt search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" -=== ida_search EPYDOC INJECTIONS END === -Help on function add_segm in module ida_segment: - -add_segm(*args) - add_segm(para, start, end, name, sclass, flags=0) -> bool - - - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or - another segment base address. - - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) - -Help on function add_segm_ex in module ida_segment: - -add_segm_ex(*args) - add_segm_ex(s, name, sclass, flags) -> bool - - - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. - - @param s: pointer to filled segment structure. segment selector should - have proper mapping (see set_selector() ). if - s.start_ea== BADADDR then s.start_ea <- get_segm_base(&s) - if s.end_ea== BADADDR , then a segment up to the next - segment will be created (if the next segment doesn't exist, - then 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and the new - segment would overlap the next segment, s.end_ea is adjusted - properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) - -Help on function add_segment_translation in module ida_segment: - -add_segment_translation(*args) - add_segment_translation(segstart, mappedseg) -> bool - - - Add segment translation. - - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) - -Help on function allocate_selector in module ida_segment: - -allocate_selector(*args) - allocate_selector(segbase) -> sel_t - - - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number - -Help on function change_segment_status in module ida_segment: - -change_segment_status(*args) - change_segment_status(s, is_deb_segm) -> int - - - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes - -Help on function del_segm in module ida_segment: - -del_segm(*args) - del_segm(ea, flags) -> bool - - - Delete a segment. - - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function del_segment_translations in module ida_segment: - -del_segment_translations(*args) - del_segment_translations(segstart) - - - Delete the translation list - - @param segstart: start address of the segment to delete translation - list (C++: ea_t) - -Help on function del_selector in module ida_segment: - -del_selector(*args) - del_selector(selector) - - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) - -Help on function find_free_selector in module ida_segment: - -find_free_selector(*args) - find_free_selector() -> sel_t - - - Find first unused selector. - - @return: a number >= 1 - -Help on function find_selector in module ida_segment: - -find_selector(*args) - find_selector(base) -> sel_t - - - Find a selector that has mapping to the specified paragraph. - - @param base: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base - -Help on function get_defsr in module ida_segment: - -get_defsr(*args) - get_defsr(s, reg) -> sel_t - -Help on function get_first_seg in module ida_segment: - -get_first_seg(*args) - get_first_seg() -> segment_t - - - Get pointer to the first segment. - -Help on function get_group_selector in module ida_segment: - -get_group_selector(*args) - get_group_selector(grpsel) -> sel_t - - - Get common selector for a group of segments. - - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found - -Help on function get_last_seg in module ida_segment: - -get_last_seg(*args) - get_last_seg() -> segment_t - - - Get pointer to the last segment. - -Help on function get_next_seg in module ida_segment: - -get_next_seg(*args) - get_next_seg(ea) -> segment_t - - - Get pointer to the next segment. - - - @param ea (C++: ea_t) - -Help on function get_prev_seg in module ida_segment: - -get_prev_seg(*args) - get_prev_seg(ea) -> segment_t - - - Get pointer to the previous segment. - - - @param ea (C++: ea_t) - -Help on function get_segm_base in module ida_segment: - -get_segm_base(*args) - get_segm_base(s) -> ea_t - - - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address - -Help on function get_segm_by_name in module ida_segment: - -get_segm_by_name(*args) - get_segm_by_name(name) -> segment_t - - - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure - -Help on function get_segm_by_sel in module ida_segment: - -get_segm_by_sel(*args) - get_segm_by_sel(selector) -> segment_t - - - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL - -Help on function get_segm_class in module ida_segment: - -get_segm_class(*args) - get_segm_class(s) -> str - - - Get segment class. Segment class is arbitrary text (max 8 characters). - - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) - -Help on function get_segm_name in module ida_segment: - -get_segm_name(*args) - get_segm_name(s, flags=0) -> str - - - Get true segment name by pointer to segment. - - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) - -Help on function get_segm_num in module ida_segment: - -get_segm_num(*args) - get_segm_num(ea) -> int - - - Get number of segment by address. - - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) - -Help on function get_segm_para in module ida_segment: - -get_segm_para(*args) - get_segm_para(s) -> ea_t - - - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph - -Help on function get_segm_qty in module ida_segment: - -get_segm_qty(*args) - get_segm_qty() -> int - - - Get number of segments. - -Help on function get_segment_alignment in module ida_segment: - -get_segment_alignment(*args) - get_segment_alignment(align) -> char const * - - - Get text representation of segment alignment code. - - @param align (C++: uchar) - @return: text digestable by IBM PC assembler. - -Help on function get_segment_cmt in module ida_segment: - -get_segment_cmt(*args) - get_segment_cmt(s, repeatable) -> str - - - Get segment comment. - - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) - @return: size of comment or -1 - -Help on function get_segment_combination in module ida_segment: - -get_segment_combination(*args) - get_segment_combination(comb) -> char const * - - - Get text representation of segment combination code. - - @param comb (C++: uchar) - @return: text digestable by IBM PC assembler. - -Help on function get_segment_translations in module ida_segment: - -get_segment_translations(*args) - get_segment_translations(transmap, segstart) -> ssize_t - - - Get segment translation list. - - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. - -Help on function get_selector_qty in module ida_segment: - -get_selector_qty(*args) - get_selector_qty() -> int - - - Get number of defined selectors. - -Help on function get_visible_segm_name in module ida_segment: - -get_visible_segm_name(*args) - get_visible_segm_name(s) -> str - - - Get segment name by pointer to segment. - - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) - -Help on function getn_selector in module ida_segment: - -getn_selector(*args) - getn_selector(n) -> bool - - - Get description of selector (0.. 'get_selector_qty()' -1) - - - @param n (C++: int) - -Help on function getnseg in module ida_segment: - -getnseg(*args) - getnseg(n) -> segment_t - - - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure - -Help on function getseg in module ida_segment: - -getseg(*args) - getseg(ea) -> segment_t - - - Get pointer to segment by linear address. - - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure - -Help on function is_finally_visible_segm in module ida_segment: - -is_finally_visible_segm(*args) - is_finally_visible_segm(s) -> bool - - - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - - - @param s (C++: segment_t *) - -Help on function is_miniidb in module ida_segment: - -is_miniidb(*args) - is_miniidb() -> bool - - - Is the database a miniidb created by the debugger?. - - @return: true if the database contains no segments or only debugger - segments - -Help on function is_segm_locked in module ida_segment: - -is_segm_locked(*args) - is_segm_locked(segm) -> bool - - - Is a segment pointer locked? - - - @param segm (C++: const segment_t *) - -Help on function is_spec_ea in module ida_segment: - -is_spec_ea(*args) - is_spec_ea(ea) -> bool - - - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - - @param ea: linear address (C++: ea_t) - -Help on function is_spec_segm in module ida_segment: - -is_spec_segm(*args) - is_spec_segm(seg_type) -> bool - - - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - - @param seg_type (C++: uchar) - -Help on function is_visible_segm in module ida_segment: - -is_visible_segm(*args) - is_visible_segm(s) -> bool - - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) - -Help on function lock_segm in module ida_segment: - -lock_segm(*args) - lock_segm(segm, lock) - - - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param segm (C++: const segment_t *) - @param lock (C++: bool) - -Help on class lock_segment in module ida_segment: - -class lock_segment(__builtin__.object) - | Proxy of C++ lock_segment class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _segm) -> lock_segment - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lock_segment(self) - -Help on function move_segm in module ida_segment: - -move_segm(*args) - move_segm(s, to, flags=0) -> int - - - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) - @return: Move segment result codes - -Help on function move_segm_start in module ida_segment: - -move_segm_start(*args) - move_segm_start(ea, newstart, mode) -> bool - - - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) - -Help on function rebase_program in module ida_segment: - -rebase_program(*args) - rebase_program(delta, flags) -> int - - - Rebase the whole program by 'delta' bytes. - - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes - -Help on function segm_adjust_diff in module ida_segment: - -segm_adjust_diff(*args) - segm_adjust_diff(s, delta) -> adiff_t - - - Truncate and sign extend a delta depending on the segment. - - - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) - -Help on function segm_adjust_ea in module ida_segment: - -segm_adjust_ea(*args) - segm_adjust_ea(s, ea) -> ea_t - - - Truncate an address depending on the segment. - - - @param s (C++: const segment_t *) - @param ea (C++: ea_t) - -Help on class segment_t in module ida_segment: - -class segment_t(ida_range.range_t) - | Proxy of C++ segment_t class. - | - | Method resolution order: - | segment_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> segment_t - | - | __repr__ = _swig_repr(self) - | - | abits(self, *args) - | abits(self) -> int - | - | abytes(self, *args) - | abytes(self) -> int - | - | clr_comorg(self, *args) - | clr_comorg(self) - | - | clr_ob_ok(self, *args) - | clr_ob_ok(self) - | - | comorg(self, *args) - | comorg(self) -> bool - | - | is_header_segm(self, *args) - | is_header_segm(self) -> bool - | - | is_hidden_segtype(self, *args) - | is_hidden_segtype(self) -> bool - | - | is_loader_segm(self, *args) - | is_loader_segm(self) -> bool - | - | is_visible_segm(self, *args) - | is_visible_segm(self) -> bool - | - | ob_ok(self, *args) - | ob_ok(self) -> bool - | - | set_comorg(self, *args) - | set_comorg(self) - | - | set_debugger_segm(self, *args) - | set_debugger_segm(self, debseg) - | - | set_header_segm(self, *args) - | set_header_segm(self, on) - | - | set_hidden_segtype(self, *args) - | set_hidden_segtype(self, hide) - | - | set_loader_segm(self, *args) - | set_loader_segm(self, ldrseg) - | - | set_ob_ok(self, *args) - | set_ob_ok(self) - | - | set_visible_segm(self, *args) - | set_visible_segm(self, visible) - | - | update(self, *args) - | update(self) -> bool - | - | use32(self, *args) - | use32(self) -> bool - | - | use64(self, *args) - | use64(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | align - | segment_t_align_get(self) -> uchar - | - | bitness - | segment_t_bitness_get(self) -> uchar - | - | color - | segment_t_color_get(self) -> bgcolor_t - | - | comb - | segment_t_comb_get(self) -> uchar - | - | defsr - | segment_t_defsr_get(self) -> sel_t [16] - | - | end_ea - | segment_t_end_ea_get(self) -> ea_t - | - | flags - | segment_t_flags_get(self) -> ushort - | - | name - | segment_t_name_get(self) -> uval_t - | - | orgbase - | segment_t_orgbase_get(self) -> uval_t - | - | perm - | segment_t_perm_get(self) -> uchar - | - | sclass - | segment_t_sclass_get(self) -> uval_t - | - | sel - | segment_t_sel_get(self) -> sel_t - | - | start_ea - | segment_t_start_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | type - | segment_t_type_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_segment_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | startEA - -Help on function segtype in module ida_segment: - -segtype(*args) - segtype(ea) -> uchar - - - Get segment type. - - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' - -Help on function sel2ea in module ida_segment: - -sel2ea(*args) - sel2ea(selector) -> ea_t - - - Get mapping of a selector as a linear address. - - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); - -Help on function sel2para in module ida_segment: - -sel2para(*args) - sel2para(selector) -> ea_t - - - Get mapping of a selector. - - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. - -Help on function set_defsr in module ida_segment: - -set_defsr(*args) - set_defsr(s, reg, value) - -Help on function set_group_selector in module ida_segment: - -set_group_selector(*args) - set_group_selector(grp, sel) -> int - - - Initialize groups. The kernel calls this function at the start of - work.Create a new group of segments (used OMF files). - - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) - @return: 1 ok - -Help on function set_segm_addressing in module ida_segment: - -set_segm_addressing(*args) - set_segm_addressing(s, bitness) -> bool - - - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) - @return: success - -Help on function set_segm_base in module ida_segment: - -set_segm_base(*args) - set_segm_base(s, newbase) -> bool - - - Internal function. - - - @param s (C++: segment_t *) - @param newbase (C++: ea_t) - -Help on function set_segm_class in module ida_segment: - -set_segm_class(*args) - set_segm_class(s, sclass, flags=0) -> int - - - Set segment class. - - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) - -Help on function set_segm_end in module ida_segment: - -set_segm_end(*args) - set_segm_end(ea, newend, flags) -> bool - - - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function set_segm_name in module ida_segment: - -set_segm_name(*args) - set_segm_name(s, name, flags=0) -> int - - - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) - -Help on function set_segm_start in module ida_segment: - -set_segm_start(*args) - set_segm_start(ea, newstart, flags) -> bool - - - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function set_segment_cmt in module ida_segment: - -set_segment_cmt(*args) - set_segment_cmt(s, cmt, repeatable) - - - Set segment comment. - - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) - -Help on function set_segment_translations in module ida_segment: - -set_segment_translations(*args) - set_segment_translations(segstart, transmap) -> bool - - - Set new translation list. - - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) - -Help on function set_selector in module ida_segment: - -set_selector(*args) - set_selector(selector, paragraph) -> int - - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - -Help on function set_visible_segm in module ida_segment: - -set_visible_segm(*args) - set_visible_segm(s, visible) - - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) - @param visible (C++: bool) - -Help on function setup_selector in module ida_segment: - -setup_selector(*args) - setup_selector(segbase) -> sel_t - - - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number - -Help on function std_out_segm_footer in module ida_segment: - -std_out_segm_footer(*args) - std_out_segm_footer(ctx, seg) - - - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) - -Help on function take_memory_snapshot in module ida_segment: - -take_memory_snapshot(*args) - take_memory_snapshot(only_loader_segs) -> bool - - - Take a memory snapshot of the running process. - - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success - -Help on function update_segm in module ida_segment: - -update_segm(*args) - update_segm(s) -> bool - -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' -""" - -ida_segment.ADDSEG_NOTRUNC -""" -destroy/truncate old segments instead. - -don't truncate the new segment at the beginning of the next segment if -they overlap. -""" - -ida_segment.ADDSEG_OR_DIE -""" - 'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new segment -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -is too big) - -not enough memory (might be because the segment -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok -""" - -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -valid for 'move_segm()' - -loader segments will overwrite any existing debugger segments when -moved. -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -(for 'set_segm_start()' ) - -don't move info from the start of segment to the new start address -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols -""" - -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" - -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -no instructions are allowed - -segment with 'extern' definitions. -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -boundary. - -Relocatable, aligned on a double word (4-byte) -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -segment. - -Private. Do not combine with any other program -""" - -ida_segment.scPub -""" -the alignment requirement. - -Public. Combine by appending at an offset that meets -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -byte alignment. - -Stack. Combine as for C=2. This combine type forces -""" -=== ida_segment EPYDOC INJECTIONS END === -Help on function copy_sreg_ranges in module ida_segregs: - -copy_sreg_ranges(*args) - copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - - - Duplicate segment register ranges. - - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) - -Help on function del_sreg_range in module ida_segregs: - -del_sreg_range(*args) - del_sreg_range(ea, rg) -> bool - - - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success - -Help on function get_prev_sreg_range in module ida_segregs: - -get_prev_sreg_range(*args) - get_prev_sreg_range(out, ea, rg) -> bool - - - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success - -Help on function get_sreg in module ida_segregs: - -get_sreg(*args) - get_sreg(ea, rg) -> sel_t - - - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. - -Help on function get_sreg_range in module ida_segregs: - -get_sreg_range(*args) - get_sreg_range(out, ea, rg) -> bool - - - Get segment register range by linear address. - - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success - -Help on function get_sreg_range_num in module ida_segregs: - -get_sreg_range_num(*args) - get_sreg_range_num(ea, rg) -> int - - - Get number of segment register range by address. - - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) - -Help on function get_sreg_ranges_qty in module ida_segregs: - -get_sreg_ranges_qty(*args) - get_sreg_ranges_qty(rg) -> size_t - - - Get number of segment register ranges. - - @param rg: the segment register number (C++: int) - -Help on function getn_sreg_range in module ida_segregs: - -getn_sreg_range(*args) - getn_sreg_range(out, rg, n) -> bool - - - Get segment register range by its number. - - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) - @return: success - -Help on function set_default_dataseg in module ida_segregs: - -set_default_dataseg(*args) - set_default_dataseg(ds_sel) - - - Set default value of DS register for all segments. - - - @param ds_sel (C++: sel_t) - -Help on function set_default_sreg_value in module ida_segregs: - -set_default_sreg_value(*args) - set_default_sreg_value(sg, rg, value) -> bool - - - Set default value of a segment register for a segment. - - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) - @return: success - -Help on function set_sreg_at_next_code in module ida_segregs: - -set_sreg_at_next_code(*args) - set_sreg_at_next_code(ea1, ea2, rg, value) - - - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) - -Help on function split_sreg_range in module ida_segregs: - -split_sreg_range(*args) - split_sreg_range(ea, rg, v, tag, silent=False) -> bool - - - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) - @return: success - -Help on class sreg_range_t in module ida_segregs: - -class sreg_range_t(ida_range.range_t) - | Proxy of C++ sreg_range_t class. - | - | Method resolution order: - | sreg_range_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> sreg_range_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | tag - | sreg_range_t_tag_get(self) -> uchar - | - | thisown - | The membership flag - | - | val - | sreg_range_t_val_get(self) -> sel_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_sreg_range_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto -""" -the value is determined by IDA -""" - -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" - -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" - -ida_segregs.SR_user -""" -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === -Help on function build_strlist in module ida_strlist: - -build_strlist(*args) - build_strlist() - - - Build the string list. You should initialize options before this call - using the restore_config() or setup_strings_window() methods. - -Help on function clear_strlist in module ida_strlist: - -clear_strlist(*args) - clear_strlist() - - - Clear the string list. - -Help on function get_strlist_item in module ida_strlist: - -get_strlist_item(*args) - get_strlist_item(si, n) -> bool - - - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - - - @param si (C++: string_info_t *) - @param n (C++: size_t) - -Help on function get_strlist_options in module ida_strlist: - -get_strlist_options(*args) - get_strlist_options() -> strwinsetup_t - - - Get access to the static string list options. - -Help on function get_strlist_qty in module ida_strlist: - -get_strlist_qty(*args) - get_strlist_qty() -> size_t - - - Get number of elements in the string list. - -Help on class string_info_t in module ida_strlist: - -class string_info_t(__builtin__.object) - | Proxy of C++ string_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | string_info_t_ea_get(self) -> ea_t - | - | length - | string_info_t_length_get(self) -> int - | - | thisown - | The membership flag - | - | type - | string_info_t_type_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_string_info_t(self) - -Help on class strwinsetup_t in module ida_strlist: - -class strwinsetup_t(__builtin__.object) - | Proxy of C++ strwinsetup_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> strwinsetup_t - | - | __repr__ = _swig_repr(self) - | - | _get_strtypes(self, *args) - | _get_strtypes(self) -> PyObject * - | - | _set_strtypes(self, *args) - | _set_strtypes(self, py_t) -> PyObject * - | - | is_initialized(self, *args) - | is_initialized(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar - | - | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar - | - | minlen - | strwinsetup_t_minlen_get(self) -> sval_t - | - | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar - | - | strtypes - | _get_strtypes(self) -> PyObject * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_strwinsetup_t(self) - -Help on function add_struc in module ida_struct: - -add_struc(*args) - add_struc(idx, name, is_union=False) -> tid_t - - - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) - -Help on function add_struc_member in module ida_struct: - -add_struc_member(*args) - add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - - - Add member to existing structure. - - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) - -Help on function del_member_tinfo in module ida_struct: - -del_member_tinfo(*args) - del_member_tinfo(sptr, mptr) -> bool - - - Delete tinfo for given member. - - - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) - -Help on function del_struc in module ida_struct: - -del_struc(*args) - del_struc(sptr) -> bool - - - Delete a structure type. - - - @param sptr (C++: struc_t *) - -Help on function del_struc_member in module ida_struct: - -del_struc_member(*args) - del_struc_member(sptr, offset) -> bool - - - Delete member at given offset. - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - -Help on function del_struc_members in module ida_struct: - -del_struc_members(*args) - del_struc_members(sptr, off1, off2) -> int - - - Delete members which occupy range of offsets (off1..off2). - - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) - @return: number of deleted members or -1 on error - -Help on function expand_struc in module ida_struct: - -expand_struc(*args) - expand_struc(sptr, offset, delta, recalc=True) -> bool - - - Expand/Shrink structure type. - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) - -Help on function get_best_fit_member in module ida_struct: - -get_best_fit_member(*args) - get_best_fit_member(sptr, offset) -> member_t - - - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) - -Help on function get_first_struc_idx in module ida_struct: - -get_first_struc_idx(*args) - get_first_struc_idx() -> uval_t - - - Get index of first structure. - - @return: BADADDR if no known structures, 0 otherwise - -Help on function get_last_struc_idx in module ida_struct: - -get_last_struc_idx(*args) - get_last_struc_idx() -> uval_t - - - Get index of last structure. - - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise - -Help on function get_max_offset in module ida_struct: - -get_max_offset(*args) - get_max_offset(sptr) -> ea_t - - - For unions: returns number of members, for structs: returns size of - structure. - - - @param sptr (C++: struc_t *) - -Help on function get_member in module ida_struct: - -get_member(*args) - get_member(sptr, offset) -> member_t - - - Get member at given offset. - - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) - -Help on function get_member_by_fullname in module ida_struct: - -get_member_by_fullname(*args) - get_member_by_fullname(fullname) -> member_t - - - Get a member by its fully qualified name, "struct.field". - - - @param fullname (C++: const char *) - -Help on function get_member_by_id in module ida_struct: - -get_member_by_id(*args) - get_member_by_id(mid) -> member_t - - - Check if the specified member id points to a struct member. - - - @param mid (C++: tid_t) - -Help on function get_member_by_name in module ida_struct: - -get_member_by_name(*args) - get_member_by_name(sptr, membername) -> member_t - - - Get a member by its name, like "field44". - - - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) - -Help on function get_member_cmt in module ida_struct: - -get_member_cmt(*args) - get_member_cmt(mid, repeatable) -> str - - - Get comment of structure member. - - - @param mid (C++: tid_t) - @param repeatable (C++: bool) - -Help on function get_member_fullname in module ida_struct: - -get_member_fullname(*args) - get_member_fullname(mid) -> str - - - Get a member's fully qualified name, "struct.field". - - - @param mid (C++: tid_t) - -Help on function get_member_id in module ida_struct: - -get_member_id(*args) - get_member_id(sptr, offset) -> tid_t - - - Get member id at given offset. - - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) - -Help on function get_member_name in module ida_struct: - -get_member_name(*args) - get_member_name(mid) -> str - - - Get name of structure member. - - - @param mid (C++: tid_t) - -Help on function get_member_size in module ida_struct: - -get_member_size(*args) - get_member_size(nonnul_mptr) -> asize_t - - - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . - -Help on function get_member_struc in module ida_struct: - -get_member_struc(*args) - get_member_struc(fullname) -> struc_t - - - Get containing structure of member by its full name "struct.field". - - - @param fullname (C++: const char *) - -Help on function get_member_tinfo in module ida_struct: - -get_member_tinfo(*args) - get_member_tinfo(tif, mptr) -> bool - - - Get tinfo for given member. - - - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) - -Help on function get_next_member_idx in module ida_struct: - -get_next_member_idx(*args) - get_next_member_idx(sptr, off) -> ssize_t - - - Get the next member idx, if it does not exist, return -1. - - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) - -Help on function get_next_struc_idx in module ida_struct: - -get_next_struc_idx(*args) - get_next_struc_idx(idx) -> uval_t - - - Get next struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ - -Help on function get_or_guess_member_tinfo in module ida_struct: - -get_or_guess_member_tinfo(*args) - get_or_guess_member_tinfo(tif, mptr) -> bool - - - Try to get tinfo for given member - if failed, generate a tinfo using - information about the member id from the disassembly - - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) - -Help on function get_prev_member_idx in module ida_struct: - -get_prev_member_idx(*args) - get_prev_member_idx(sptr, off) -> ssize_t - - - Get the prev member idx, if it does not exist, return -1. - - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) - -Help on function get_prev_struc_idx in module ida_struct: - -get_prev_struc_idx(*args) - get_prev_struc_idx(idx) -> uval_t - - - Get previous struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 - -Help on function get_sptr in module ida_struct: - -get_sptr(*args) - get_sptr(mptr) -> struc_t - - - Get child struct if member is a struct. - - - @param mptr (C++: const member_t *) - -Help on function get_struc in module ida_struct: - -get_struc(*args) - get_struc(id) -> struc_t - - - Get pointer to struct type info. - - - @param id (C++: tid_t) - -Help on function get_struc_by_idx in module ida_struct: - -get_struc_by_idx(*args) - get_struc_by_idx(idx) -> tid_t - - - Get struct id by struct number. - - - @param idx (C++: uval_t) - -Help on function get_struc_cmt in module ida_struct: - -get_struc_cmt(*args) - get_struc_cmt(id, repeatable) -> str - - - Get struct comment. - - - @param id (C++: tid_t) - @param repeatable (C++: bool) - -Help on function get_struc_first_offset in module ida_struct: - -get_struc_first_offset(*args) - get_struc_first_offset(sptr) -> ea_t - - - Get offset of first member. - - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 - -Help on function get_struc_id in module ida_struct: - -get_struc_id(*args) - get_struc_id(name) -> tid_t - - - Get struct id by name. - - - @param name (C++: const char *) - -Help on function get_struc_idx in module ida_struct: - -get_struc_idx(*args) - get_struc_idx(id) -> uval_t - - - Get internal number of the structure. - - - @param id (C++: tid_t) - -Help on function get_struc_last_offset in module ida_struct: - -get_struc_last_offset(*args) - get_struc_last_offset(sptr) -> ea_t - - - Get offset of last member. - - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 - -Help on function get_struc_name in module ida_struct: - -get_struc_name(*args) - get_struc_name(id, flags=0) -> str - - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) - -Help on function get_struc_next_offset in module ida_struct: - -get_struc_next_offset(*args) - get_struc_next_offset(sptr, offset) -> ea_t - - - Get offset of member with smallest offset larger than 'offset'. - - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset - -Help on function get_struc_prev_offset in module ida_struct: - -get_struc_prev_offset(*args) - get_struc_prev_offset(sptr, offset) -> ea_t - - - Get offset of member with largest offset less than 'offset'. - - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset - -Help on function get_struc_qty in module ida_struct: - -get_struc_qty(*args) - get_struc_qty() -> size_t - - - Get number of known structures. - -Help on function get_struc_size in module ida_struct: - -get_struc_size(*args) - get_struc_size(sptr) -> asize_t - get_struc_size(id) -> asize_t - - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) - -Help on function is_anonymous_member_name in module ida_struct: - -is_anonymous_member_name(*args) - is_anonymous_member_name(name) -> bool - - - Is member name prefixed with "anonymous"? - - - @param name (C++: const char *) - -Help on function is_dummy_member_name in module ida_struct: - -is_dummy_member_name(*args) - is_dummy_member_name(name) -> bool - - - Is member name an auto-generated name? - - - @param name (C++: const char *) - -Help on function is_member_id in module ida_struct: - -is_member_id(*args) - is_member_id(mid) -> bool - - - Is a member id? - - - @param mid (C++: tid_t) - -Help on function is_special_member in module ida_struct: - -is_special_member(*args) - is_special_member(id) -> bool - - - Is a special member with the name beginning with ' '? - - - @param id (C++: tid_t) - -Help on function is_union in module ida_struct: - -is_union(*args) - is_union(id) -> bool - - - Is a union? - - - @param id (C++: tid_t) - -Help on function is_varmember in module ida_struct: - -is_varmember(*args) - is_varmember(mptr) -> bool - - - Is variable size member? - - - @param mptr (C++: const member_t *) - -Help on function is_varstr in module ida_struct: - -is_varstr(*args) - is_varstr(id) -> bool - - - Is variable size structure? - - - @param id (C++: tid_t) - -Help on class member_t in module ida_struct: - -class member_t(__builtin__.object) - | Proxy of C++ member_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> member_t - | - | __repr__ = _swig_repr(self) - | - | by_til(self, *args) - | by_til(self) -> bool - | - | get_soff(self, *args) - | get_soff(self) -> ea_t - | - | has_ti(self, *args) - | has_ti(self) -> bool - | - | has_union(self, *args) - | has_union(self) -> bool - | - | is_baseclass(self, *args) - | is_baseclass(self) -> bool - | - | is_destructor(self, *args) - | is_destructor(self) -> bool - | - | is_dupname(self, *args) - | is_dupname(self) -> bool - | - | unimem(self, *args) - | unimem(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | eoff - | member_t_eoff_get(self) -> ea_t - | - | flag - | member_t_flag_get(self) -> flags_t - | - | id - | member_t_id_get(self) -> tid_t - | - | props - | member_t_props_get(self) -> uint32 - | - | soff - | member_t_soff_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_member_t(self) - -Help on function retrieve_member_info in module ida_struct: - -retrieve_member_info(*args) - retrieve_member_info(buf, mptr) -> opinfo_t - - - Get operand type info for member. - - - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) - -Help on function save_struc in module ida_struct: - -save_struc(*args) - save_struc(sptr, may_update_ltypes=True) - - - Update struct information in the database (internal function) - - - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) - -Help on function set_member_cmt in module ida_struct: - -set_member_cmt(*args) - set_member_cmt(mptr, cmt, repeatable) -> bool - - - Set member comment. - - - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_member_name in module ida_struct: - -set_member_name(*args) - set_member_name(sptr, offset, name) -> bool - - - Set name of member at given offset. - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) - -Help on function set_member_tinfo in module ida_struct: - -set_member_tinfo(*args) - set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - - - Set tinfo for given member. - - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) - -Help on function set_member_type in module ida_struct: - -set_member_type(*args) - set_member_type(sptr, offset, flag, mt, nbytes) -> bool - - - Set type of member at given offset (also see 'add_struc_member()' ) - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) - -Help on function set_struc_align in module ida_struct: - -set_struc_align(*args) - set_struc_align(sptr, shift) -> bool - - - Set structure alignment ( 'SF_ALIGN' ) - - - @param sptr (C++: struc_t *) - @param shift (C++: int) - -Help on function set_struc_cmt in module ida_struct: - -set_struc_cmt(*args) - set_struc_cmt(id, cmt, repeatable) -> bool - - - Set structure comment. - - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_struc_hidden in module ida_struct: - -set_struc_hidden(*args) - set_struc_hidden(sptr, is_hidden) - - - Hide/unhide a struct type. - - - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) - -Help on function set_struc_idx in module ida_struct: - -set_struc_idx(*args) - set_struc_idx(sptr, idx) -> bool - - - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) - -Help on function set_struc_listed in module ida_struct: - -set_struc_listed(*args) - set_struc_listed(sptr, is_listed) - - - Add/remove a struct type from the struct list. - - - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) - -Help on function set_struc_name in module ida_struct: - -set_struc_name(*args) - set_struc_name(id, name) -> bool - - - Set structure name. - - - @param id (C++: tid_t) - @param name (C++: const char *) - -Help on function stroff_as_size in module ida_struct: - -stroff_as_size(*args) - stroff_as_size(plen, sptr, value) -> bool - - - Should display a structure offset expression as the structure size? - - - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) - -Help on class struc_t in module ida_struct: - -class struc_t(__builtin__.object) - | Proxy of C++ struc_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | from_til(self, *args) - | from_til(self) -> bool - | - | get_alignment(self, *args) - | get_alignment(self) -> int - | - | get_member(self, *args) - | get_member(self, index) -> member_t - | - | has_union(self, *args) - | has_union(self) -> bool - | - | is_choosable(self, *args) - | is_choosable(self) -> bool - | - | is_frame(self, *args) - | is_frame(self) -> bool - | - | is_ghost(self, *args) - | is_ghost(self) -> bool - | - | is_hidden(self, *args) - | is_hidden(self) -> bool - | - | is_union(self, *args) - | is_union(self) -> bool - | - | is_varstr(self, *args) - | is_varstr(self) -> bool - | - | set_alignment(self, *args) - | set_alignment(self, shift) - | - | set_ghost(self, *args) - | set_ghost(self, _is_ghost) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | age - | struc_t_age_get(self) -> ushort - | - | id - | struc_t_id_get(self) -> tid_t - | - | members - | struc_t_members_get(self) -> member_t - | - | memqty - | struc_t_memqty_get(self) -> uint32 - | - | ordinal - | struc_t_ordinal_get(self) -> int32 - | - | props - | struc_t_props_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_struc_t(self) - -Help on class struct_field_visitor_t in module ida_struct: - -class struct_field_visitor_t(__builtin__.object) - | Proxy of C++ struct_field_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> struct_field_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_field(self, *args) - | visit_field(self, sptr, mptr) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_struct_field_visitor_t(self) - -Help on function visit_stroff_fields in module ida_struct: - -visit_stroff_fields(*args) - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t - - - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) - -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class -""" - -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" - -ida_struct.MF_DTOR -""" -a special member representing destructor -""" - -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -varunions are prohibited! - -is a union? -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === -Help on function add_tryblk in module ida_tryblks: - -add_tryblk(*args) - add_tryblk(tb) -> int - - - Add one try block information. - - @param tb: try block to add. (C++: const tryblk_t &) - @return: error code; 0 means good - -Help on class catch_t in module ida_tryblks: - -class catch_t(try_handler_t) - | Proxy of C++ catch_t class. - | - | Method resolution order: - | catch_t - | try_handler_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> catch_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | obj - | catch_t_obj_get(self) -> sval_t - | - | thisown - | The membership flag - | - | type_id - | catch_t_type_id_get(self) -> sval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_catch_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from try_handler_t: - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from try_handler_t: - | - | disp - | try_handler_t_disp_get(self) -> sval_t - | - | fpreg - | try_handler_t_fpreg_get(self) -> int - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class catchvec_t in module ida_tryblks: - -class catchvec_t(__builtin__.object) - | Proxy of C++ qvector< catch_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> catch_t - | - | __init__(self, *args) - | __init__(self) -> catchvec_t - | __init__(self, x) -> catchvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> catch_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> catch_t - | begin(self) -> catch_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> catch_t - | end(self) -> catch_t - | - | erase(self, *args) - | erase(self, it) -> catch_t - | erase(self, first, last) -> catch_t - | - | extract(self, *args) - | extract(self) -> catch_t - | - | find(self, *args) - | find(self, x) -> catch_t - | find(self, x) -> catch_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=catch_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> catch_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> catch_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_catchvec_t(self) - -Help on function del_tryblks in module ida_tryblks: - -del_tryblks(*args) - del_tryblks(range) - - - Delete try block information in the specified range. - - @param range: the range to be cleared (C++: const range_t &) - -Help on function find_syseh in module ida_tryblks: - -find_syseh(*args) - find_syseh(ea) -> ea_t - - - Find the start address of the system eh region including the argument. - - @param ea: search address (C++: ea_t) - @return: start address of surrounding tryblk, otherwise BADADDR - -Help on function get_tryblks in module ida_tryblks: - -get_tryblks(*args) - get_tryblks(tbv, range) -> size_t - - - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks - -Help on class seh_t in module ida_tryblks: - -class seh_t(try_handler_t) - | Proxy of C++ seh_t class. - | - | Method resolution order: - | seh_t - | try_handler_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> seh_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | filter - | seh_t_filter_get(self) -> rangevec_t - | - | seh_code - | seh_t_seh_code_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_seh_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from try_handler_t: - | - | disp - | try_handler_t_disp_get(self) -> sval_t - | - | fpreg - | try_handler_t_fpreg_get(self) -> int - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class try_handler_t in module ida_tryblks: - -class try_handler_t(ida_range.rangevec_t) - | Proxy of C++ try_handler_t class. - | - | Method resolution order: - | try_handler_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> try_handler_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | disp - | try_handler_t_disp_get(self) -> sval_t - | - | fpreg - | try_handler_t_fpreg_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_try_handler_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class tryblk_t in module ida_tryblks: - -class tryblk_t(ida_range.rangevec_t) - | Proxy of C++ tryblk_t class. - | - | Method resolution order: - | tryblk_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> tryblk_t - | __init__(self, r) -> tryblk_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | cpp(self, *args) - | cpp(self) -> catchvec_t - | - | empty(self, *args) - | empty(self) -> bool - | - | get_kind(self, *args) - | get_kind(self) -> uchar - | - | is_cpp(self, *args) - | is_cpp(self) -> bool - | - | is_seh(self, *args) - | is_seh(self) -> bool - | - | seh(self, *args) - | seh(self) -> seh_t - | - | set_cpp(self, *args) - | set_cpp(self) -> catchvec_t - | - | set_seh(self, *args) - | set_seh(self) -> seh_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | level - | tryblk_t_level_get(self) -> uchar - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tryblk_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class tryblks_t in module ida_tryblks: - -class tryblks_t(__builtin__.object) - | Proxy of C++ qvector< tryblk_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> tryblk_t - | - | __init__(self, *args) - | __init__(self) -> tryblks_t - | __init__(self, x) -> tryblks_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> tryblk_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> tryblk_t - | begin(self) -> tryblk_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> tryblk_t - | end(self) -> tryblk_t - | - | erase(self, *args) - | erase(self, it) -> tryblk_t - | erase(self, first, last) -> tryblk_t - | - | extract(self, *args) - | extract(self) -> tryblk_t - | - | find(self, *args) - | find(self, x) -> tryblk_t - | find(self, x) -> tryblk_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=tryblk_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> tryblk_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> tryblk_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tryblks_t(self) - -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block -""" - -ida_tryblks.TBERR_END -""" -bad end address -""" - -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" - -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" - -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" - -ida_tryblks.TBERR_OK -""" -ok -""" - -ida_tryblks.TBERR_ORDER -""" -bad address order -""" - -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === -Help on function add_til in module ida_typeinf: - -add_til(*args) - add_til(name, flags) -> int - - - Load a til file. - - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes - -Help on function alloc_type_ordinal in module ida_typeinf: - -alloc_type_ordinal(*args) - alloc_type_ordinal(ti) -> uint32 - - - \call2{alloc_type_ordinals,ti,1} - - - @param ti (C++: til_t *) - -Help on function alloc_type_ordinals in module ida_typeinf: - -alloc_type_ordinals(*args) - alloc_type_ordinals(ti, qty) -> uint32 - - - Allocate a range of ordinal numbers for new types. - - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) - @return: the first ordinal. 0 means failure. - -Help on class aloc_visitor_t in module ida_typeinf: - -class aloc_visitor_t(__builtin__.object) - | Proxy of C++ aloc_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> aloc_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_location(self, *args) - | visit_location(self, v, off, size) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_aloc_visitor_t(self) - -Help on function append_abi_opts in module ida_typeinf: - -append_abi_opts(*args) - append_abi_opts(abi_opts, user_level=False) -> bool - - - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) - @return: success - -Help on function append_argloc in module ida_typeinf: - -append_argloc(*args) - append_argloc(out, vloc) -> bool - - - Serialize argument location. - - - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) - -Help on function append_tinfo_covered in module ida_typeinf: - -append_tinfo_covered(*args) - append_tinfo_covered(out, typid, offset) -> bool - -Help on function apply_callee_tinfo in module ida_typeinf: - -apply_callee_tinfo(*args) - apply_callee_tinfo(caller, tif) -> bool - - - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) - @return: success - -Help on function apply_cdecl in module ida_typeinf: - -apply_cdecl(*args) - apply_cdecl(til, ea, decl, flags=0) -> bool - - - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) - @return: success - -Help on function apply_named_type in module ida_typeinf: - -apply_named_type(*args) - apply_named_type(ea, name) -> bool - - - Apply the specified named type to the address. - - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) - @return: success - -Help on function apply_once_tinfo_and_name in module ida_typeinf: - -apply_once_tinfo_and_name(*args) - apply_once_tinfo_and_name(dea, tif, name) -> bool - - - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) - @return: success - -Help on function apply_tinfo in module ida_typeinf: - -apply_tinfo(*args) - apply_tinfo(ea, tif, flags) -> bool - - - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) - @return: success - -Help on function apply_tinfo_to_stkarg in module ida_typeinf: - -apply_tinfo_to_stkarg(*args) - apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - - - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} - - @param insn (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) - -Help on function apply_type in module ida_typeinf: - -apply_type(*args) - apply_type(ti, _type, _fields, ea, flags) -> bool - - - Apply the specified type to the address - @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) - @param ea: the address of the object - @param flags: combination of TINFO_... constants or 0 - @return: Boolean - -Help on class argloc_t in module ida_typeinf: - -class argloc_t(__builtin__.object) - | Proxy of C++ argloc_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> argloc_t - | __init__(self, r) -> argloc_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg1(self, *args) - | _set_reg1(self, reg, off=0) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | compare(self, *args) - | compare(self, r) -> int - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg1(self, *args) - | reg1(self) -> int - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg1(self, *args) - | set_reg1(self, reg, off=0) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_argloc_t(self) - -Help on class argpart_t in module ida_typeinf: - -class argpart_t(argloc_t) - | Proxy of C++ argpart_t class. - | - | Method resolution order: - | argpart_t - | argloc_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, a) -> argpart_t - | __init__(self) -> argpart_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | bad_offset(self, *args) - | bad_offset(self) -> bool - | - | bad_size(self, *args) - | bad_size(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | off - | argpart_t_off_get(self) -> ushort - | - | size - | argpart_t_size_get(self) -> ushort - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_argpart_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from argloc_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg1(self, *args) - | _set_reg1(self, reg, off=0) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | compare(self, *args) - | compare(self, r) -> int - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg1(self, *args) - | reg1(self) -> int - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg1(self, *args) - | set_reg1(self, reg, off=0) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from argloc_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class argpartvec_t in module ida_typeinf: - -class argpartvec_t(__builtin__.object) - | Proxy of C++ qvector< argpart_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> argpart_t - | - | __init__(self, *args) - | __init__(self) -> argpartvec_t - | __init__(self, x) -> argpartvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> argpart_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> argpart_t - | begin(self) -> argpart_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> argpart_t - | end(self) -> argpart_t - | - | erase(self, *args) - | erase(self, it) -> argpart_t - | erase(self, first, last) -> argpart_t - | - | extract(self, *args) - | extract(self) -> argpart_t - | - | find(self, *args) - | find(self, x) -> argpart_t - | find(self, x) -> argpart_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=argpart_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> argpart_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> argpart_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_argpartvec_t(self) - -Help on class array_type_data_t in module ida_typeinf: - -class array_type_data_t(__builtin__.object) - | Proxy of C++ array_type_data_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, b=0, n=0) -> array_type_data_t - | - | __repr__ = _swig_repr(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | base - | array_type_data_t_base_get(self) -> uint32 - | - | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t - | - | nelems - | array_type_data_t_nelems_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_array_type_data_t(self) - -Help on function begin_type_updating in module ida_typeinf: - -begin_type_updating(*args) - begin_type_updating(utp) - - - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - - @param utp (C++: update_type_t) - -Help on class bitfield_type_data_t in module ida_typeinf: - -class bitfield_type_data_t(__builtin__.object) - | Proxy of C++ bitfield_type_data_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool - | - | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar - | - | thisown - | The membership flag - | - | width - | bitfield_type_data_t_width_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_bitfield_type_data_t(self) - -Help on function calc_c_cpp_name in module ida_typeinf: - -calc_c_cpp_name(*args) - calc_c_cpp_name(name, type, ccn_flags) -> str - - - Get C or C++ form of the name. - - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) - -Help on function calc_number_of_children in module ida_typeinf: - -calc_number_of_children(*args) - calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int - - - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) - -Help on function calc_tinfo_gaps in module ida_typeinf: - -calc_tinfo_gaps(*args) - calc_tinfo_gaps(out, typid) -> bool - -Help on function calc_type_size in module ida_typeinf: - -calc_type_size(*args) - calc_type_size(ti, tp) -> PyObject * - - - Returns the size of a type - @param ti: Type info. 'None' can be passed. - @param tp: type string - @return: - - None on failure - - The size of the type - -Help on class callregs_t in module ida_typeinf: - -class callregs_t(__builtin__.object) - | Proxy of C++ callregs_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> callregs_t - | __init__(self, cc) -> callregs_t - | - | __repr__ = _swig_repr(self) - | - | init_regs(self, *args) - | init_regs(self, cc) - | - | reginds(self, *args) - | reginds(self, gp_ind, fp_ind, r) -> bool - | - | reset(self, *args) - | reset(self) - | - | set(self, *args) - | set(self, _policy, gprs, fprs) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | regcount(*args) - | regcount(cc) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * - | - | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * - | - | nregs - | callregs_t_nregs_get(self) -> int - | - | policy - | callregs_t_policy_get(self) -> argreg_policy_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_callregs_t(self) - -Help on function callregs_t_regcount in module ida_typeinf: - -callregs_t_regcount(*args) - callregs_t_regcount(cc) -> int - -Help on function choose_local_tinfo in module ida_typeinf: - -choose_local_tinfo(*args) - choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - - - Choose a type from the local type library. - - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number - -Help on function choose_local_tinfo_and_delta in module ida_typeinf: - -choose_local_tinfo_and_delta(*args) - choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 - - - Choose a type from the local type library and specify the pointer - shift value. - - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number - -Help on function choose_named_type in module ida_typeinf: - -choose_named_type(*args) - choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - - - Choose a type from a type library. - - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) - @return: false if nothing is chosen, otherwise true - -Help on function clear_tinfo_t in module ida_typeinf: - -clear_tinfo_t(*args) - clear_tinfo_t(_this) - -Help on function compact_til in module ida_typeinf: - -compact_til(*args) - compact_til(ti) -> bool - - - Collect garbage in til. Must be called before storing the til. - - @param ti (C++: til_t *) - @return: true if any memory was freed - -Help on function compare_tinfo in module ida_typeinf: - -compare_tinfo(*args) - compare_tinfo(t1, t2, tcflags) -> bool - -Help on class const_aloc_visitor_t in module ida_typeinf: - -class const_aloc_visitor_t(__builtin__.object) - | Proxy of C++ const_aloc_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> const_aloc_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_location(self, *args) - | visit_location(self, v, off, size) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_const_aloc_visitor_t(self) - -Help on function convert_pt_flags_to_hti in module ida_typeinf: - -convert_pt_flags_to_hti(*args) - convert_pt_flags_to_hti(pt_flags) -> int - - - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - - @param pt_flags (C++: int) - -Help on function copy_named_type in module ida_typeinf: - -copy_named_type(*args) - copy_named_type(dsttil, srctil, name) -> uint32 - - - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) - @return: ordinal number of the copied type. 0 means error - -Help on function copy_tinfo_t in module ida_typeinf: - -copy_tinfo_t(*args) - copy_tinfo_t(_this, r) - -Help on function create_numbered_type_name in module ida_typeinf: - -create_numbered_type_name(*args) - create_numbered_type_name(ord) -> str - - - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - - @param ord (C++: int32) - -Help on function create_tinfo in module ida_typeinf: - -create_tinfo(*args) - create_tinfo(_this, bt, bt2, ptr) -> bool - -Help on function default_compiler in module ida_typeinf: - -default_compiler(*args) - default_compiler() -> comp_t - - - Get compiler specified by \varmem{inf,idainfo,cc}. - -Help on function del_named_type in module ida_typeinf: - -del_named_type(*args) - del_named_type(ti, name, ntf_flags) -> bool - - - Delete information about a symbol. - - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @return: success - -Help on function del_numbered_type in module ida_typeinf: - -del_numbered_type(*args) - del_numbered_type(ti, ordinal) -> bool - - - Delete a numbered type. - - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - -Help on function del_til in module ida_typeinf: - -del_til(*args) - del_til(name) -> bool - - - Unload a til file. - - - @param name (C++: const char *) - -Help on function del_tinfo_attr in module ida_typeinf: - -del_tinfo_attr(*args) - del_tinfo_attr(tif, key, make_copy) -> bool - -Help on function deref_ptr in module ida_typeinf: - -deref_ptr(*args) - deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - - - Dereference a pointer. - - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) - @return: success - -Help on function deserialize_tinfo in module ida_typeinf: - -deserialize_tinfo(*args) - deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool - -Help on function dstr_tinfo in module ida_typeinf: - -dstr_tinfo(*args) - dstr_tinfo(tif) -> char const * - -Help on function dump_func_type_data in module ida_typeinf: - -dump_func_type_data(*args) - dump_func_type_data(fti, praloc_bits) -> str - - - Use 'func_type_data_t::dump()' - - - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) - -Help on function end_type_updating in module ida_typeinf: - -end_type_updating(*args) - end_type_updating(utp) - - - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) - - - @param utp (C++: update_type_t) - -Help on class enum_member_t in module ida_typeinf: - -class enum_member_t(__builtin__.object) - | Proxy of C++ enum_member_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> enum_member_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | enum_member_t_cmt_get(self) -> qstring * - | - | name - | enum_member_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | value - | enum_member_t_value_get(self) -> uint64 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_enum_member_t(self) - -Help on class enum_member_vec_t in module ida_typeinf: - -class enum_member_vec_t(__builtin__.object) - | Proxy of C++ qvector< enum_member_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> enum_member_t - | - | __init__(self, *args) - | __init__(self) -> enum_member_vec_t - | __init__(self, x) -> enum_member_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> enum_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> enum_member_t - | begin(self) -> enum_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> enum_member_t - | end(self) -> enum_member_t - | - | erase(self, *args) - | erase(self, it) -> enum_member_t - | erase(self, first, last) -> enum_member_t - | - | extract(self, *args) - | extract(self) -> enum_member_t - | - | find(self, *args) - | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=enum_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> enum_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> enum_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_enum_member_vec_t(self) - -Help on class enum_type_data_t in module ida_typeinf: - -class enum_type_data_t(enum_member_vec_t) - | Proxy of C++ enum_type_data_t class. - | - | Method resolution order: - | enum_type_data_t - | enum_member_vec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t - | - | __repr__ = _swig_repr(self) - | - | calc_mask(self, *args) - | calc_mask(self) -> uint64 - | - | calc_nbytes(self, *args) - | calc_nbytes(self) -> int - | - | is_64bit(self, *args) - | is_64bit(self) -> bool - | - | is_char(self, *args) - | is_char(self) -> bool - | - | is_hex(self, *args) - | is_hex(self) -> bool - | - | is_sdec(self, *args) - | is_sdec(self) -> bool - | - | is_udec(self, *args) - | is_udec(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bte - | enum_type_data_t_bte_get(self) -> bte_t - | - | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * - | - | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_enum_type_data_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from enum_member_vec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> enum_member_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> enum_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> enum_member_t - | begin(self) -> enum_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> enum_member_t - | end(self) -> enum_member_t - | - | erase(self, *args) - | erase(self, it) -> enum_member_t - | erase(self, first, last) -> enum_member_t - | - | extract(self, *args) - | extract(self) -> enum_member_t - | - | find(self, *args) - | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=enum_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> enum_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> enum_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from enum_member_vec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function extract_argloc in module ida_typeinf: - -extract_argloc(*args) - extract_argloc(vloc, ptype, is_retval) -> bool - - - Deserialize argument location. - - - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param is_retval (C++: bool) - -Help on function find_tinfo_udt_member in module ida_typeinf: - -find_tinfo_udt_member(*args) - find_tinfo_udt_member(udm, typid, strmem_flags) -> int - -Help on function first_named_type in module ida_typeinf: - -first_named_type(*args) - first_named_type(ti, ntf_flags) -> char const * - - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) - -Help on function for_all_arglocs in module ida_typeinf: - -for_all_arglocs(*args) - for_all_arglocs(vv, vloc, size, off=0) -> int - - - Compress larger argloc types and initiate the aloc visitor. - - - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) - -Help on function for_all_const_arglocs in module ida_typeinf: - -for_all_const_arglocs(*args) - for_all_const_arglocs(vv, vloc, size, off=0) -> int - - - See 'for_all_arglocs()' - - - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) - -Help on function free_til in module ida_typeinf: - -free_til(*args) - free_til(ti) - - - Free memory allocated by til. - - - @param ti (C++: til_t *) - -Help on function func_has_stkframe_hole in module ida_typeinf: - -func_has_stkframe_hole(*args) - func_has_stkframe_hole(ea, fti) -> bool - - - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) - -Help on class func_type_data_t in module ida_typeinf: - -class func_type_data_t(funcargvec_t) - | Proxy of C++ func_type_data_t class. - | - | Method resolution order: - | func_type_data_t - | funcargvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_type_data_t - | - | __repr__ = _swig_repr(self) - | - | dump(self, *args) - | dump(self, praloc_bits=0x02) -> bool - | - | get_call_method(self, *args) - | get_call_method(self) -> int - | - | guess_cc(self, *args) - | guess_cc(self, purged, cc_flags) -> cm_t - | - | is_high(self, *args) - | is_high(self) -> bool - | - | is_noret(self, *args) - | is_noret(self) -> bool - | - | is_pure(self, *args) - | is_pure(self) -> bool - | - | is_vararg_cc(self, *args) - | is_vararg_cc(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cc - | func_type_data_t_cc_get(self) -> cm_t - | - | flags - | func_type_data_t_flags_get(self) -> int - | - | retloc - | func_type_data_t_retloc_get(self) -> argloc_t - | - | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t - | - | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t - | - | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_func_type_data_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from funcargvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> funcarg_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> funcarg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> funcarg_t - | begin(self) -> funcarg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> funcarg_t - | end(self) -> funcarg_t - | - | erase(self, *args) - | erase(self, it) -> funcarg_t - | erase(self, first, last) -> funcarg_t - | - | extract(self, *args) - | extract(self) -> funcarg_t - | - | find(self, *args) - | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=funcarg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> funcarg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> funcarg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from funcargvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class funcarg_t in module ida_typeinf: - -class funcarg_t(__builtin__.object) - | Proxy of C++ funcarg_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> funcarg_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argloc - | funcarg_t_argloc_get(self) -> argloc_t - | - | cmt - | funcarg_t_cmt_get(self) -> qstring * - | - | flags - | funcarg_t_flags_get(self) -> uint32 - | - | name - | funcarg_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | funcarg_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_funcarg_t(self) - -Help on class funcargvec_t in module ida_typeinf: - -class funcargvec_t(__builtin__.object) - | Proxy of C++ qvector< funcarg_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> funcarg_t - | - | __init__(self, *args) - | __init__(self) -> funcargvec_t - | __init__(self, x) -> funcargvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> funcarg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> funcarg_t - | begin(self) -> funcarg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> funcarg_t - | end(self) -> funcarg_t - | - | erase(self, *args) - | erase(self, it) -> funcarg_t - | erase(self, first, last) -> funcarg_t - | - | extract(self, *args) - | extract(self) -> funcarg_t - | - | find(self, *args) - | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=funcarg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> funcarg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> funcarg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_funcargvec_t(self) - -Help on function gcc_layout in module ida_typeinf: - -gcc_layout(*args) - gcc_layout() -> bool - - - Should use the struct/union layout as done by gcc? - -Help on function gen_decorate_name in module ida_typeinf: - -gen_decorate_name(*args) - gen_decorate_name(name, mangle, cc, type) -> str - - - Generic function for 'decorate_name()' (may be used in IDP modules) - - - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) - -Help on function gen_use_arg_tinfos in module ida_typeinf: - -gen_use_arg_tinfos(*args) - gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) - - - The main function using these callbacks: - - - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) - -Help on function get_abi_name in module ida_typeinf: - -get_abi_name(*args) - get_abi_name() -> str - - - Get ABI name. - - @return: length of the name (>=0) - -Help on function get_alias_target in module ida_typeinf: - -get_alias_target(*args) - get_alias_target(ti, ordinal) -> uint32 - - - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) - -Help on function get_arg_addrs in module ida_typeinf: - -get_arg_addrs(*args) - get_arg_addrs(caller) -> PyObject * - - - Retrieve addresses of argument initialization instructions - - @param caller: the address of the call instruction - @return: list of instruction addresses - -Help on function get_base_type in module ida_typeinf: - -get_base_type(*args) - get_base_type(t) -> type_t - - - Get get basic type bits ( 'TYPE_BASE_MASK' ) - - - @param t (C++: type_t) - -Help on function get_c_header_path in module ida_typeinf: - -get_c_header_path(*args) - get_c_header_path() -> str - - - Get the include directory path of the target compiler. - -Help on function get_c_macros in module ida_typeinf: - -get_c_macros(*args) - get_c_macros() -> str - - - Get predefined macros for the target compiler. - -Help on function get_comp in module ida_typeinf: - -get_comp(*args) - get_comp(comp) -> comp_t - - - Get compiler bits. - - - @param comp (C++: comp_t) - -Help on function get_compiler_abbr in module ida_typeinf: - -get_compiler_abbr(*args) - get_compiler_abbr(id) -> char const * - - - Get abbreviated compiler name. - - - @param id (C++: comp_t) - -Help on function get_compiler_name in module ida_typeinf: - -get_compiler_name(*args) - get_compiler_name(id) -> char const * - - - Get full compiler name. - - - @param id (C++: comp_t) - -Help on function get_compilers in module ida_typeinf: - -get_compilers(*args) - get_compilers(ids, names, abbrs) - - - Get names of all built-in compilers. - - - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) - -Help on function get_enum_member_expr in module ida_typeinf: - -get_enum_member_expr(*args) - get_enum_member_expr(tif, serial, value) -> str - - - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) - @return: success - -Help on function get_full_type in module ida_typeinf: - -get_full_type(*args) - get_full_type(t) -> type_t - - - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - - - @param t (C++: type_t) - -Help on function get_idainfo_by_type in module ida_typeinf: - -get_idainfo_by_type(*args) - get_idainfo_by_type(tif) -> bool - - - Extract information from a 'tinfo_t' . - - @param tif: the type to inspect (C++: const tinfo_t &) - -Help on function get_idati in module ida_typeinf: - -get_idati(*args) - get_idati() -> til_t - - - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. - -Help on function get_named_type in module ida_typeinf: - -get_named_type(*args) - get_named_type(til, name, ntf_flags) -> PyObject * - - - Get a type data by its name. - @param til: the type library - @param name: the type name - @param ntf_flags: a combination of NTF_* constants - @return: - None on failure - tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success - -Help on function get_named_type64 in module ida_typeinf: - -get_named_type64(*args) - get_named_type64(til, name, ntf_flags) -> PyObject * - - - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. - - @param name (C++: const char *) - @param ntf_flags (C++: int) - -Help on function get_numbered_type in module ida_typeinf: - -get_numbered_type(*args) - get_numbered_type(til, ordinal) -> PyObject * - - - Retrieve a type by its ordinal number. - - - @param ordinal (C++: uint32) - -Help on function get_numbered_type_name in module ida_typeinf: - -get_numbered_type_name(*args) - get_numbered_type_name(ti, ordinal) -> char const * - - - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) - -Help on function get_ordinal_from_idb_type in module ida_typeinf: - -get_ordinal_from_idb_type(*args) - get_ordinal_from_idb_type(name, type) -> int - - - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - - @param name (C++: const char *) - @param type (C++: const type_t *) - -Help on function get_ordinal_qty in module ida_typeinf: - -get_ordinal_qty(*args) - get_ordinal_qty(ti) -> uint32 - - - Get number of allocated ordinals. - - @param ti (C++: const til_t *) - @return: uint32(-1) if failed - -Help on function get_scalar_bt in module ida_typeinf: - -get_scalar_bt(*args) - get_scalar_bt(size) -> type_t - -Help on function get_stock_tinfo in module ida_typeinf: - -get_stock_tinfo(*args) - get_stock_tinfo(tif, id) -> bool - -Help on function get_tinfo_attr in module ida_typeinf: - -get_tinfo_attr(*args) - get_tinfo_attr(typid, key, bv, all_attrs) -> bool - -Help on function get_tinfo_attrs in module ida_typeinf: - -get_tinfo_attrs(*args) - get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool - -Help on function get_tinfo_details in module ida_typeinf: - -get_tinfo_details(*args) - get_tinfo_details(typid, bt2, buf) -> bool - -Help on function get_tinfo_pdata in module ida_typeinf: - -get_tinfo_pdata(*args) - get_tinfo_pdata(outptr, typid, what) -> size_t - -Help on function get_tinfo_property in module ida_typeinf: - -get_tinfo_property(*args) - get_tinfo_property(typid, gta_prop) -> size_t - -Help on function get_tinfo_size in module ida_typeinf: - -get_tinfo_size(*args) - get_tinfo_size(p_effalign, typid, gts_code) -> size_t - -Help on function get_type_flags in module ida_typeinf: - -get_type_flags(*args) - get_type_flags(t) -> type_t - - - Get type flags ( 'TYPE_FLAGS_MASK' ) - - - @param t (C++: type_t) - -Help on function get_type_ordinal in module ida_typeinf: - -get_type_ordinal(*args) - get_type_ordinal(ti, name) -> int32 - - - Get type ordinal by its name. - - - @param ti (C++: const til_t *) - @param name (C++: const char *) - -Help on function guess_func_cc in module ida_typeinf: - -guess_func_cc(*args) - guess_func_cc(fti, npurged, cc_flags) -> cm_t - - - Use 'func_type_data_t::guess_cc()' - - - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) - -Help on function guess_tinfo in module ida_typeinf: - -guess_tinfo(*args) - guess_tinfo(tif, id) -> int - - - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes - -Help on class ida_lowertype_helper_t in module ida_typeinf: - -class ida_lowertype_helper_t(lowertype_helper_t) - | Proxy of C++ ida_lowertype_helper_t class. - | - | Method resolution order: - | ida_lowertype_helper_t - | lowertype_helper_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t - | - | __repr__ = _swig_repr(self) - | - | func_has_stkframe_hole(self, *args) - | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | - | get_func_purged_bytes(self, *args) - | get_func_purged_bytes(self, candidate, arg3) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ida_lowertype_helper_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from lowertype_helper_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function idc_get_local_type in module ida_typeinf: - -idc_get_local_type(*args) - idc_get_local_type(ordinal, flags, buf, maxsize) -> int - -Help on function idc_get_local_type_name in module ida_typeinf: - -idc_get_local_type_name(*args) - idc_get_local_type_name(ordinal) -> str - -Help on function idc_get_local_type_raw in module ida_typeinf: - -idc_get_local_type_raw(*args) - idc_get_local_type_raw(ordinal) -> PyObject * - -Help on function idc_get_type in module ida_typeinf: - -idc_get_type(*args) - idc_get_type(ea) -> str - -Help on function idc_get_type_raw in module ida_typeinf: - -idc_get_type_raw(*args) - idc_get_type_raw(ea) -> PyObject * - -Help on function idc_guess_type in module ida_typeinf: - -idc_guess_type(*args) - idc_guess_type(ea) -> str - -Help on function idc_parse_decl in module ida_typeinf: - -idc_parse_decl(*args) - idc_parse_decl(ti, decl, flags) -> PyObject * - -Help on function idc_parse_types in module ida_typeinf: - -idc_parse_types(*args) - idc_parse_types(input, flags) -> int - -Help on function idc_print_type in module ida_typeinf: - -idc_print_type(*args) - idc_print_type(_type, _fields, name, flags) -> PyObject * - -Help on function idc_set_local_type in module ida_typeinf: - -idc_set_local_type(*args) - idc_set_local_type(ordinal, dcl, flags) -> int - -Help on function import_type in module ida_typeinf: - -import_type(*args) - import_type(til, idx, name, flags=0) -> tid_t - - - Copy a named type from til to idb. - - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error - -Help on function is_autosync in module ida_typeinf: - -is_autosync(*args) - is_autosync(name, type) -> bool - is_autosync(name, tif) -> bool - - - Is the specified idb type automatically synchronized? - - - @param name (C++: const char *) - @param type (C++: const type_t *) - -Help on function is_code_far in module ida_typeinf: - -is_code_far(*args) - is_code_far(cm) -> bool - - - Does the given model specify far code?. - - - @param cm (C++: cm_t) - -Help on function is_comp_unsure in module ida_typeinf: - -is_comp_unsure(*args) - is_comp_unsure(comp) -> comp_t - - - See 'COMP_UNSURE' . - - - @param comp (C++: comp_t) - -Help on function is_data_far in module ida_typeinf: - -is_data_far(*args) - is_data_far(cm) -> bool - - - Does the given model specify far data?. - - - @param cm (C++: cm_t) - -Help on function is_gcc in module ida_typeinf: - -is_gcc(*args) - is_gcc() -> bool - - - Is the target compiler 'COMP_GNU' ? - -Help on function is_gcc32 in module ida_typeinf: - -is_gcc32(*args) - is_gcc32() -> bool - - - Is the target compiler 32 bit gcc? - -Help on function is_gcc64 in module ida_typeinf: - -is_gcc64(*args) - is_gcc64() -> bool - - - Is the target compiler 64 bit gcc? - -Help on function is_ordinal_name in module ida_typeinf: - -is_ordinal_name(*args) - is_ordinal_name(name, ord=None) -> bool - - - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - - @param name (C++: const char *) - @param ord (C++: uint32 *) - -Help on function is_purging_cc in module ida_typeinf: - -is_purging_cc(*args) - is_purging_cc(cm) -> bool - - - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - - @param cm (C++: cm_t) - -Help on function is_restype_enum in module ida_typeinf: - -is_restype_enum(*args) - is_restype_enum(til, type) -> bool - -Help on function is_restype_struct in module ida_typeinf: - -is_restype_struct(*args) - is_restype_struct(til, type) -> bool - -Help on function is_restype_struni in module ida_typeinf: - -is_restype_struni(*args) - is_restype_struni(til, type) -> bool - -Help on function is_restype_void in module ida_typeinf: - -is_restype_void(*args) - is_restype_void(til, type) -> bool - -Help on function is_sdacl_byte in module ida_typeinf: - -is_sdacl_byte(*args) - is_sdacl_byte(t) -> bool - - - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - - @param t (C++: type_t) - -Help on function is_tah_byte in module ida_typeinf: - -is_tah_byte(*args) - is_tah_byte(t) -> bool - - - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - - @param t (C++: type_t) - -Help on function is_type_arithmetic in module ida_typeinf: - -is_type_arithmetic(*args) - is_type_arithmetic(t) -> bool - - - Is the type an arithmetic type? (floating or integral) - - - @param t (C++: type_t) - -Help on function is_type_array in module ida_typeinf: - -is_type_array(*args) - is_type_array(t) -> bool - - - See 'BT_ARRAY' . - - - @param t (C++: type_t) - -Help on function is_type_bitfld in module ida_typeinf: - -is_type_bitfld(*args) - is_type_bitfld(t) -> bool - - - See 'BT_BITFIELD' . - - - @param t (C++: type_t) - -Help on function is_type_bool in module ida_typeinf: - -is_type_bool(*args) - is_type_bool(t) -> bool - - - See 'BTF_BOOL' . - - - @param t (C++: type_t) - -Help on function is_type_char in module ida_typeinf: - -is_type_char(*args) - is_type_char(t) -> bool - - - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_complex in module ida_typeinf: - -is_type_complex(*args) - is_type_complex(t) -> bool - - - See 'BT_COMPLEX' . - - - @param t (C++: type_t) - -Help on function is_type_const in module ida_typeinf: - -is_type_const(*args) - is_type_const(t) -> bool - - - See 'BTM_CONST' . - - - @param t (C++: type_t) - -Help on function is_type_double in module ida_typeinf: - -is_type_double(*args) - is_type_double(t) -> bool - - - See 'BTF_DOUBLE' . - - - @param t (C++: type_t) - -Help on function is_type_enum in module ida_typeinf: - -is_type_enum(*args) - is_type_enum(t) -> bool - - - See 'BTF_ENUM' . - - - @param t (C++: type_t) - -Help on function is_type_ext_arithmetic in module ida_typeinf: - -is_type_ext_arithmetic(*args) - is_type_ext_arithmetic(t) -> bool - - - Is the type an extended arithmetic type? (arithmetic or enum) - - - @param t (C++: type_t) - -Help on function is_type_ext_integral in module ida_typeinf: - -is_type_ext_integral(*args) - is_type_ext_integral(t) -> bool - - - Is the type an extended integral type? (integral or enum) - - - @param t (C++: type_t) - -Help on function is_type_float in module ida_typeinf: - -is_type_float(*args) - is_type_float(t) -> bool - - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) - -Help on function is_type_floating in module ida_typeinf: - -is_type_floating(*args) - is_type_floating(t) -> bool - - - Is the type a floating point type? - - - @param t (C++: type_t) - -Help on function is_type_func in module ida_typeinf: - -is_type_func(*args) - is_type_func(t) -> bool - - - See 'BT_FUNC' . - - - @param t (C++: type_t) - -Help on function is_type_int in module ida_typeinf: - -is_type_int(*args) - is_type_int(bt) -> bool - - - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - - - @param bt (C++: type_t) - -Help on function is_type_int128 in module ida_typeinf: - -is_type_int128(*args) - is_type_int128(t) -> bool - - - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_int16 in module ida_typeinf: - -is_type_int16(*args) - is_type_int16(t) -> bool - - - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_int32 in module ida_typeinf: - -is_type_int32(*args) - is_type_int32(t) -> bool - - - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_int64 in module ida_typeinf: - -is_type_int64(*args) - is_type_int64(t) -> bool - - - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_integral in module ida_typeinf: - -is_type_integral(*args) - is_type_integral(t) -> bool - - - Is the type an integral type (char/short/int/long/bool)? - - - @param t (C++: type_t) - -Help on function is_type_ldouble in module ida_typeinf: - -is_type_ldouble(*args) - is_type_ldouble(t) -> bool - - - See 'BTF_LDOUBLE' . - - - @param t (C++: type_t) - -Help on function is_type_paf in module ida_typeinf: - -is_type_paf(*args) - is_type_paf(t) -> bool - - - Is the type a pointer, array, or function type? - - - @param t (C++: type_t) - -Help on function is_type_partial in module ida_typeinf: - -is_type_partial(*args) - is_type_partial(t) -> bool - - - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - - - @param t (C++: type_t) - -Help on function is_type_ptr in module ida_typeinf: - -is_type_ptr(*args) - is_type_ptr(t) -> bool - - - See 'BT_PTR' . - - - @param t (C++: type_t) - -Help on function is_type_ptr_or_array in module ida_typeinf: - -is_type_ptr_or_array(*args) - is_type_ptr_or_array(t) -> bool - - - Is the type a pointer or array type? - - - @param t (C++: type_t) - -Help on function is_type_struct in module ida_typeinf: - -is_type_struct(*args) - is_type_struct(t) -> bool - - - See 'BTF_STRUCT' . - - - @param t (C++: type_t) - -Help on function is_type_struni in module ida_typeinf: - -is_type_struni(*args) - is_type_struni(t) -> bool - - - Is the type a struct or union? - - - @param t (C++: type_t) - -Help on function is_type_sue in module ida_typeinf: - -is_type_sue(*args) - is_type_sue(t) -> bool - - - Is the type a struct/union/enum? - - - @param t (C++: type_t) - -Help on function is_type_tbyte in module ida_typeinf: - -is_type_tbyte(*args) - is_type_tbyte(t) -> bool - - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) - -Help on function is_type_typedef in module ida_typeinf: - -is_type_typedef(*args) - is_type_typedef(t) -> bool - - - See 'BTF_TYPEDEF' . - - - @param t (C++: type_t) - -Help on function is_type_uchar in module ida_typeinf: - -is_type_uchar(*args) - is_type_uchar(t) -> bool - - - See 'BTF_UCHAR' . - - - @param t (C++: type_t) - -Help on function is_type_uint in module ida_typeinf: - -is_type_uint(*args) - is_type_uint(t) -> bool - - - See 'BTF_UINT' . - - - @param t (C++: type_t) - -Help on function is_type_uint128 in module ida_typeinf: - -is_type_uint128(*args) - is_type_uint128(t) -> bool - - - See 'BTF_UINT128' . - - - @param t (C++: type_t) - -Help on function is_type_uint16 in module ida_typeinf: - -is_type_uint16(*args) - is_type_uint16(t) -> bool - - - See 'BTF_UINT16' . - - - @param t (C++: type_t) - -Help on function is_type_uint32 in module ida_typeinf: - -is_type_uint32(*args) - is_type_uint32(t) -> bool - - - See 'BTF_UINT32' . - - - @param t (C++: type_t) - -Help on function is_type_uint64 in module ida_typeinf: - -is_type_uint64(*args) - is_type_uint64(t) -> bool - - - See 'BTF_UINT64' . - - - @param t (C++: type_t) - -Help on function is_type_union in module ida_typeinf: - -is_type_union(*args) - is_type_union(t) -> bool - - - See 'BTF_UNION' . - - - @param t (C++: type_t) - -Help on function is_type_unknown in module ida_typeinf: - -is_type_unknown(*args) - is_type_unknown(t) -> bool - - - See 'BT_UNKNOWN' . - - - @param t (C++: type_t) - -Help on function is_type_void in module ida_typeinf: - -is_type_void(*args) - is_type_void(t) -> bool - - - See 'BTF_VOID' . - - - @param t (C++: type_t) - -Help on function is_type_volatile in module ida_typeinf: - -is_type_volatile(*args) - is_type_volatile(t) -> bool - - - See 'BTM_VOLATILE' . - - - @param t (C++: type_t) - -Help on function is_typeid_last in module ida_typeinf: - -is_typeid_last(*args) - is_typeid_last(t) -> bool - - - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - - @param t (C++: type_t) - -Help on function is_user_cc in module ida_typeinf: - -is_user_cc(*args) - is_user_cc(cm) -> bool - - - Does the calling convention specify argument locations explicitly? - - - @param cm (C++: cm_t) - -Help on function is_vararg_cc in module ida_typeinf: - -is_vararg_cc(*args) - is_vararg_cc(cm) -> bool - - - Does the calling convention use ellipsis? - - - @param cm (C++: cm_t) - -Help on function lexcompare_tinfo in module ida_typeinf: - -lexcompare_tinfo(*args) - lexcompare_tinfo(t1, t2, arg3) -> int - -Help on function load_til in module ida_typeinf: - -load_til(*args) - load_til(name, tildir=None) -> til_t - - - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf - -Help on function load_til_header in module ida_typeinf: - -load_til_header(*args) - load_til_header(tildir, name) -> til_t - - - Get human-readable til description. - - - @param tildir (C++: const char *) - @param name (C++: const char *) - -Help on function lower_type in module ida_typeinf: - -lower_type(*args) - lower_type(til, tif, name=None, _helper=None) -> int - - - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. - - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) - -Help on class lowertype_helper_t in module ida_typeinf: - -class lowertype_helper_t(__builtin__.object) - | Proxy of C++ lowertype_helper_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | func_has_stkframe_hole(self, *args) - | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | - | get_func_purged_bytes(self, *args) - | get_func_purged_bytes(self, candidate, candidate_data) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_lowertype_helper_t(self) - -Help on function new_til in module ida_typeinf: - -new_til(*args) - new_til(name, desc) -> til_t - - - Initialize a til. - - - @param name (C++: const char *) - @param desc (C++: const char *) - -Help on function next_named_type in module ida_typeinf: - -next_named_type(*args) - next_named_type(ti, name, ntf_flags) -> char const * - - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) - -Help on function optimize_argloc in module ida_typeinf: - -optimize_argloc(*args) - optimize_argloc(vloc, size, gaps) -> bool - - - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) - -Help on function pack_idcobj_to_bv in module ida_typeinf: - -pack_idcobj_to_bv(*args) - pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t - - - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) - -Help on function pack_idcobj_to_idb in module ida_typeinf: - -pack_idcobj_to_idb(*args) - pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - - - Write a typed idc object to the database. - - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) - -Help on function pack_object_to_bv in module ida_typeinf: - -pack_object_to_bv(*args) - pack_object_to_bv(py_obj, ti, _type, _fields, base_ea, pio_flags=0) -> PyObject * - - - Packs a typed object to a string - @param ti: Type info. 'None' can be passed. - @param tp: type string - @param fields: fields string (may be empty or None) - @param base_ea: base ea used to relocate the pointers in the packed object - @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure - tuple(1, packed_buf) on success - -Help on function pack_object_to_idb in module ida_typeinf: - -pack_object_to_idb(*args) - pack_object_to_idb(py_obj, ti, _type, _fields, ea, pio_flags=0) -> PyObject * - - - Write a typed object to the database. - Raises an exception if wrong parameters were passed or conversion fails - Returns the error_t returned by idaapi.pack_object_to_idb - @param ti: Type info. 'None' can be passed. - @param tp: type string - @param fields: fields string (may be empty or None) - @param ea: ea to be used while packing - @param pio_flags: flags used while unpacking - -Help on function parse_decl in module ida_typeinf: - -parse_decl(*args) - parse_decl(tif, til, decl, flags) -> str - - - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) - -Help on function parse_decls in module ida_typeinf: - -parse_decls(*args) - parse_decls(til, input, printer, hti_flags) -> int - - - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) - @return: number of errors, 0 means ok. - -Help on class predicate_t in module ida_typeinf: - -class predicate_t(__builtin__.object) - | Proxy of C++ predicate_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> predicate_t - | - | __repr__ = _swig_repr(self) - | - | should_display(self, *args) - | should_display(self, til, name, type, fields) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_predicate_t(self) - -Help on function print_argloc in module ida_typeinf: - -print_argloc(*args) - print_argloc(vloc, size=0, vflags=0) -> str - - - Convert an argloc to human readable form. - - - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) - -Help on function print_decls in module ida_typeinf: - -print_decls(*args) - print_decls(printer, til, py_ordinals, flags) -> PyObject * - - - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . - - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) - -Help on function print_tinfo in module ida_typeinf: - -print_tinfo(*args) - print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str - -Help on function print_type in module ida_typeinf: - -print_type(*args) - print_type(ea, prtype_flags) -> str - - - Get type declaration for the specified address. - - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) - @return: success - -Help on class ptr_type_data_t in module ida_typeinf: - -class ptr_type_data_t(__builtin__.object) - | Proxy of C++ ptr_type_data_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | is_code_ptr(self, *args) - | is_code_ptr(self) -> bool - | - | is_shifted(self, *args) - | is_shifted(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar - | - | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t - | - | delta - | ptr_type_data_t_delta_get(self) -> int32 - | - | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t - | - | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t - | - | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_ptr_type_data_t(self) - -Help on function read_tinfo_bitfield_value in module ida_typeinf: - -read_tinfo_bitfield_value(*args) - read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 - -Help on class reginfovec_t in module ida_typeinf: - -class reginfovec_t(__builtin__.object) - | Proxy of C++ qvector< reg_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> reg_info_t - | - | __init__(self, *args) - | __init__(self) -> reginfovec_t - | __init__(self, x) -> reginfovec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> reg_info_t - | begin(self) -> reg_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> reg_info_t - | end(self) -> reg_info_t - | - | erase(self, *args) - | erase(self, it) -> reg_info_t - | erase(self, first, last) -> reg_info_t - | - | extract(self, *args) - | extract(self) -> reg_info_t - | - | find(self, *args) - | find(self, x) -> reg_info_t - | find(self, x) -> reg_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=reg_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> reg_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> reg_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_reginfovec_t(self) - -Help on class regobj_t in module ida_typeinf: - -class regobj_t(__builtin__.object) - | Proxy of C++ regobj_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regobj_t - | - | __repr__ = _swig_repr(self) - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | regidx - | regobj_t_regidx_get(self) -> int - | - | relocate - | regobj_t_relocate_get(self) -> int - | - | thisown - | The membership flag - | - | value - | regobj_t_value_get(self) -> bytevec_t * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regobj_t(self) - -Help on class regobjs_t in module ida_typeinf: - -class regobjs_t(regobjvec_t) - | Proxy of C++ regobjs_t class. - | - | Method resolution order: - | regobjs_t - | regobjvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regobjs_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regobjs_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from regobjvec_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regobj_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> regobj_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> regobj_t - | begin(self) -> regobj_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> regobj_t - | end(self) -> regobj_t - | - | erase(self, *args) - | erase(self, it) -> regobj_t - | erase(self, first, last) -> regobj_t - | - | extract(self, *args) - | extract(self) -> regobj_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=regobj_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> regobj_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> regobj_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from regobjvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class regobjvec_t in module ida_typeinf: - -class regobjvec_t(__builtin__.object) - | Proxy of C++ qvector< regobj_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regobj_t - | - | __init__(self, *args) - | __init__(self) -> regobjvec_t - | __init__(self, x) -> regobjvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> regobj_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> regobj_t - | begin(self) -> regobj_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> regobj_t - | end(self) -> regobj_t - | - | erase(self, *args) - | erase(self, it) -> regobj_t - | erase(self, first, last) -> regobj_t - | - | extract(self, *args) - | extract(self) -> regobj_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=regobj_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> regobj_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> regobj_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regobjvec_t(self) - -Help on function remove_abi_opts in module ida_typeinf: - -remove_abi_opts(*args) - remove_abi_opts(abi_opts, user_level=False) -> bool - -Help on function remove_pointer in module ida_typeinf: - -remove_pointer(*args) - remove_pointer(tif) -> tinfo_t - - - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - - @param tif (C++: const tinfo_t &) - -Help on function remove_tinfo_pointer in module ida_typeinf: - -remove_tinfo_pointer(*args) - remove_tinfo_pointer(tif, name, til) -> PyObject * - - - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. - - @param tif (C++: tinfo_t *) - @param til (C++: const til_t *) - -Help on function replace_ordinal_typerefs in module ida_typeinf: - -replace_ordinal_typerefs(*args) - replace_ordinal_typerefs(til, tif) -> int - - - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) - -Help on function resolve_typedef in module ida_typeinf: - -resolve_typedef(*args) - resolve_typedef(til, type) -> type_t const * - -Help on class rrel_t in module ida_typeinf: - -class rrel_t(__builtin__.object) - | Proxy of C++ rrel_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> rrel_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | rrel_t_off_get(self) -> sval_t - | - | reg - | rrel_t_reg_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_rrel_t(self) - -Help on function save_tinfo in module ida_typeinf: - -save_tinfo(*args) - save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t - -Help on class scattered_aloc_t in module ida_typeinf: - -class scattered_aloc_t(argpartvec_t) - | Proxy of C++ scattered_aloc_t class. - | - | Method resolution order: - | scattered_aloc_t - | argpartvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> scattered_aloc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_scattered_aloc_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from argpartvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> argpart_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> argpart_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> argpart_t - | begin(self) -> argpart_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> argpart_t - | end(self) -> argpart_t - | - | erase(self, *args) - | erase(self, it) -> argpart_t - | erase(self, first, last) -> argpart_t - | - | extract(self, *args) - | extract(self) -> argpart_t - | - | find(self, *args) - | find(self, x) -> argpart_t - | find(self, x) -> argpart_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=argpart_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> argpart_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> argpart_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from argpartvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function score_tinfo in module ida_typeinf: - -score_tinfo(*args) - score_tinfo(tif) -> uint32 - -Help on function serialize_tinfo in module ida_typeinf: - -serialize_tinfo(*args) - serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool - -Help on function set_abi_name in module ida_typeinf: - -set_abi_name(*args) - set_abi_name(abiname, user_level=False) -> bool - - - Set abi name (see 'Compiler IDs' ) - - - @param abiname (C++: const char *) - @param user_level (C++: bool) - -Help on function set_c_header_path in module ida_typeinf: - -set_c_header_path(*args) - set_c_header_path(incdir) - - - Set include directory path the target compiler. - - - @param incdir (C++: const char *) - -Help on function set_c_macros in module ida_typeinf: - -set_c_macros(*args) - set_c_macros(macros) - - - Set predefined macros for the target compiler. - - - @param macros (C++: const char *) - -Help on function set_compiler in module ida_typeinf: - -set_compiler(*args) - set_compiler(cc, flags, abiname=None) -> bool - - - Change current compiler. - - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) - @return: success - -Help on function set_compiler_id in module ida_typeinf: - -set_compiler_id(*args) - set_compiler_id(id, abiname=None) -> bool - - - Set the compiler id (see 'Compiler IDs' ) - - - @param id (C++: comp_t) - @param abiname (C++: const char *) - -Help on function set_compiler_string in module ida_typeinf: - -set_compiler_string(*args) - set_compiler_string(compstr, user_level) -> bool - -Help on function set_numbered_type in module ida_typeinf: - -set_numbered_type(*args) - set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t - - - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) - -Help on function set_tinfo_attr in module ida_typeinf: - -set_tinfo_attr(*args) - set_tinfo_attr(tif, ta, may_overwrite) -> bool - -Help on function set_tinfo_attrs in module ida_typeinf: - -set_tinfo_attrs(*args) - set_tinfo_attrs(tif, ta) -> bool - -Help on function set_tinfo_property in module ida_typeinf: - -set_tinfo_property(*args) - set_tinfo_property(tif, sta_prop, x) -> size_t - -Help on function set_type_alias in module ida_typeinf: - -set_type_alias(*args) - set_type_alias(ti, src_ordinal, dst_ordinal) -> bool - - - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) - -Help on class simd_info_t in module ida_typeinf: - -class simd_info_t(__builtin__.object) - | Proxy of C++ simd_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t - | - | __repr__ = _swig_repr(self) - | - | match_pattern(self, *args) - | match_pattern(self, pattern) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | memtype - | simd_info_t_memtype_get(self) -> type_t - | - | name - | simd_info_t_name_get(self) -> char const * - | - | size - | simd_info_t_size_get(self) -> uint16 - | - | thisown - | The membership flag - | - | tif - | simd_info_t_tif_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_simd_info_t(self) - -Help on function store_til in module ida_typeinf: - -store_til(*args) - store_til(ti, tildir, name) -> bool - - - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @return: success - -Help on class text_sink_t in module ida_typeinf: - -class text_sink_t(__builtin__.object) - | Proxy of C++ text_sink_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> text_sink_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, str) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_text_sink_t(self) - -Help on class til_symbol_t in module ida_typeinf: - -class til_symbol_t(__builtin__.object) - | Proxy of C++ til_symbol_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, n=None, t=None) -> til_symbol_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | til_symbol_t_name_get(self) -> char const * - | - | thisown - | The membership flag - | - | til - | til_symbol_t_til_get(self) -> til_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_til_symbol_t(self) - -Help on class til_t in module ida_typeinf: - -class til_t(__builtin__.object) - | Proxy of C++ til_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> til_t - | - | __repr__ = _swig_repr(self) - | - | base(self, *args) - | base(self, n) -> til_t - | - | is_dirty(self, *args) - | is_dirty(self) -> bool - | - | set_dirty(self, *args) - | set_dirty(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cc - | til_t_cc_get(self) -> compiler_info_t - | - | desc - | til_t_desc_get(self) -> char * - | - | flags - | til_t_flags_get(self) -> uint32 - | - | name - | til_t_name_get(self) -> char * - | - | nbases - | til_t_nbases_get(self) -> int - | - | nrefs - | til_t_nrefs_get(self) -> int - | - | nstreams - | til_t_nstreams_get(self) -> int - | - | streams - | til_t_streams_get(self) -> til_stream_t ** - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_til_t(self) - -Help on class tinfo_t in module ida_typeinf: - -class tinfo_t(__builtin__.object) - | Proxy of C++ tinfo_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> tinfo_t - | __init__(self, decl_type) -> tinfo_t - | __init__(self, r) -> tinfo_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __str__(self, *args) - | __str__(self) -> qstring - | - | _print(self, *args) - | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool - | - | append_covered(self, *args) - | append_covered(self, out, offset=0) -> bool - | - | calc_gaps(self, *args) - | calc_gaps(self, out) -> bool - | - | calc_purged_bytes(self, *args) - | calc_purged_bytes(self) -> int - | - | calc_score(self, *args) - | calc_score(self) -> uint32 - | - | calc_udt_aligns(self, *args) - | calc_udt_aligns(self, sudt_flags=0x0004) -> bool - | - | change_sign(self, *args) - | change_sign(self, sign) -> bool - | - | clear(self, *args) - | clear(self) - | - | clr_const(self, *args) - | clr_const(self) - | - | clr_const_volatile(self, *args) - | clr_const_volatile(self) - | - | clr_volatile(self, *args) - | clr_volatile(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | compare_with(self, *args) - | compare_with(self, r, tcflags=0) -> bool - | - | convert_array_to_ptr(self, *args) - | convert_array_to_ptr(self) -> bool - | - | copy(self, *args) - | copy(self) -> tinfo_t - | - | create_array(self, *args) - | create_array(self, p, decl_type=BT_ARRAY) -> bool - | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool - | - | create_bitfield(self, *args) - | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool - | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool - | - | create_enum(self, *args) - | create_enum(self, p, decl_type=BTF_ENUM) -> bool - | - | create_forward_decl(self, *args) - | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t - | - | create_func(self, *args) - | create_func(self, p, decl_type=BT_FUNC) -> bool - | - | create_ptr(self, *args) - | create_ptr(self, p, decl_type=BT_PTR) -> bool - | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool - | - | create_simple_type(self, *args) - | create_simple_type(self, decl_type) -> bool - | - | create_typedef(self, *args) - | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool - | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) - | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) - | - | create_udt(self, *args) - | create_udt(self, p, decl_type) -> bool - | - | del_attr(self, *args) - | del_attr(self, key, make_copy=True) -> bool - | - | del_attrs(self, *args) - | del_attrs(self) - | - | deserialize(self, *args) - | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool - | deserialize(self, til, type, fields, cmts=None) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | equals_to(self, *args) - | equals_to(self, r) -> bool - | - | find_udt_member(self, *args) - | find_udt_member(self, udm, strmem_flags) -> int - | - | get_array_details(self, *args) - | get_array_details(self, ai) -> bool - | - | get_array_element(self, *args) - | get_array_element(self) -> tinfo_t - | - | get_array_nelems(self, *args) - | get_array_nelems(self) -> int - | - | get_attr(self, *args) - | get_attr(self, key, all_attrs=True) -> PyObject * - | - | get_attrs(self, *args) - | get_attrs(self, tav, all_attrs=False) -> bool - | - | get_bitfield_details(self, *args) - | get_bitfield_details(self, bi) -> bool - | - | get_declalign(self, *args) - | get_declalign(self) -> uchar - | - | get_decltype(self, *args) - | get_decltype(self) -> type_t - | - | get_enum_base_type(self, *args) - | get_enum_base_type(self) -> type_t - | - | get_enum_details(self, *args) - | get_enum_details(self, ei) -> bool - | - | get_final_ordinal(self, *args) - | get_final_ordinal(self) -> uint32 - | - | get_final_type_name(self, *args) - | get_final_type_name(self) -> bool - | - | get_func_details(self, *args) - | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool - | - | get_modifiers(self, *args) - | get_modifiers(self) -> type_t - | - | get_named_type(self, *args) - | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool - | - | get_nargs(self, *args) - | get_nargs(self) -> int - | - | get_next_type_name(self, *args) - | get_next_type_name(self) -> bool - | - | get_nth_arg(self, *args) - | get_nth_arg(self, n) -> tinfo_t - | - | get_numbered_type(self, *args) - | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool - | - | get_onemember_type(self, *args) - | get_onemember_type(self) -> tinfo_t - | - | get_ordinal(self, *args) - | get_ordinal(self) -> uint32 - | - | get_pointed_object(self, *args) - | get_pointed_object(self) -> tinfo_t - | - | get_ptr_details(self, *args) - | get_ptr_details(self, pi) -> bool - | - | get_ptrarr_object(self, *args) - | get_ptrarr_object(self) -> tinfo_t - | - | get_ptrarr_objsize(self, *args) - | get_ptrarr_objsize(self) -> int - | - | get_realtype(self, *args) - | get_realtype(self, full=False) -> type_t - | - | get_rettype(self, *args) - | get_rettype(self) -> tinfo_t - | - | get_sign(self, *args) - | get_sign(self) -> type_sign_t - | - | get_size(self, *args) - | get_size(self, p_effalign=None, gts_code=0) -> size_t - | - | get_til(self, *args) - | get_til(self) -> til_t - | - | get_type_name(self, *args) - | get_type_name(self) -> bool - | - | get_udt_details(self, *args) - | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool - | - | get_udt_nmembers(self, *args) - | get_udt_nmembers(self) -> int - | - | get_unpadded_size(self, *args) - | get_unpadded_size(self) -> size_t - | - | has_details(self, *args) - | has_details(self) -> bool - | - | has_vftable(self, *args) - | has_vftable(self) -> bool - | - | is_anonymous_udt(self, *args) - | is_anonymous_udt(self) -> bool - | - | is_arithmetic(self, *args) - | is_arithmetic(self) -> bool - | - | is_array(self, *args) - | is_array(self) -> bool - | - | is_bitfield(self, *args) - | is_bitfield(self) -> bool - | - | is_bool(self, *args) - | is_bool(self) -> bool - | - | is_castable_to(self, *args) - | is_castable_to(self, target) -> bool - | - | is_char(self, *args) - | is_char(self) -> bool - | - | is_complex(self, *args) - | is_complex(self) -> bool - | - | is_const(self, *args) - | is_const(self) -> bool - | - | is_correct(self, *args) - | is_correct(self) -> bool - | - | is_decl_array(self, *args) - | is_decl_array(self) -> bool - | - | is_decl_bitfield(self, *args) - | is_decl_bitfield(self) -> bool - | - | is_decl_bool(self, *args) - | is_decl_bool(self) -> bool - | - | is_decl_char(self, *args) - | is_decl_char(self) -> bool - | - | is_decl_complex(self, *args) - | is_decl_complex(self) -> bool - | - | is_decl_const(self, *args) - | is_decl_const(self) -> bool - | - | is_decl_double(self, *args) - | is_decl_double(self) -> bool - | - | is_decl_enum(self, *args) - | is_decl_enum(self) -> bool - | - | is_decl_float(self, *args) - | is_decl_float(self) -> bool - | - | is_decl_floating(self, *args) - | is_decl_floating(self) -> bool - | - | is_decl_func(self, *args) - | is_decl_func(self) -> bool - | - | is_decl_int(self, *args) - | is_decl_int(self) -> bool - | - | is_decl_int128(self, *args) - | is_decl_int128(self) -> bool - | - | is_decl_int16(self, *args) - | is_decl_int16(self) -> bool - | - | is_decl_int32(self, *args) - | is_decl_int32(self) -> bool - | - | is_decl_int64(self, *args) - | is_decl_int64(self) -> bool - | - | is_decl_last(self, *args) - | is_decl_last(self) -> bool - | - | is_decl_ldouble(self, *args) - | is_decl_ldouble(self) -> bool - | - | is_decl_paf(self, *args) - | is_decl_paf(self) -> bool - | - | is_decl_partial(self, *args) - | is_decl_partial(self) -> bool - | - | is_decl_ptr(self, *args) - | is_decl_ptr(self) -> bool - | - | is_decl_struct(self, *args) - | is_decl_struct(self) -> bool - | - | is_decl_sue(self, *args) - | is_decl_sue(self) -> bool - | - | is_decl_tbyte(self, *args) - | is_decl_tbyte(self) -> bool - | - | is_decl_typedef(self, *args) - | is_decl_typedef(self) -> bool - | - | is_decl_uchar(self, *args) - | is_decl_uchar(self) -> bool - | - | is_decl_udt(self, *args) - | is_decl_udt(self) -> bool - | - | is_decl_uint(self, *args) - | is_decl_uint(self) -> bool - | - | is_decl_uint128(self, *args) - | is_decl_uint128(self) -> bool - | - | is_decl_uint16(self, *args) - | is_decl_uint16(self) -> bool - | - | is_decl_uint32(self, *args) - | is_decl_uint32(self) -> bool - | - | is_decl_uint64(self, *args) - | is_decl_uint64(self) -> bool - | - | is_decl_union(self, *args) - | is_decl_union(self) -> bool - | - | is_decl_unknown(self, *args) - | is_decl_unknown(self) -> bool - | - | is_decl_void(self, *args) - | is_decl_void(self) -> bool - | - | is_decl_volatile(self, *args) - | is_decl_volatile(self) -> bool - | - | is_double(self, *args) - | is_double(self) -> bool - | - | is_empty_udt(self, *args) - | is_empty_udt(self) -> bool - | - | is_enum(self, *args) - | is_enum(self) -> bool - | - | is_ext_arithmetic(self, *args) - | is_ext_arithmetic(self) -> bool - | - | is_ext_integral(self, *args) - | is_ext_integral(self) -> bool - | - | is_float(self, *args) - | is_float(self) -> bool - | - | is_floating(self, *args) - | is_floating(self) -> bool - | - | is_forward_decl(self, *args) - | is_forward_decl(self) -> bool - | - | is_from_subtil(self, *args) - | is_from_subtil(self) -> bool - | - | is_func(self, *args) - | is_func(self) -> bool - | - | is_funcptr(self, *args) - | is_funcptr(self) -> bool - | - | is_high_func(self, *args) - | is_high_func(self) -> bool - | - | is_int(self, *args) - | is_int(self) -> bool - | - | is_int128(self, *args) - | is_int128(self) -> bool - | - | is_int16(self, *args) - | is_int16(self) -> bool - | - | is_int32(self, *args) - | is_int32(self) -> bool - | - | is_int64(self, *args) - | is_int64(self) -> bool - | - | is_integral(self, *args) - | is_integral(self) -> bool - | - | is_ldouble(self, *args) - | is_ldouble(self) -> bool - | - | is_manually_castable_to(self, *args) - | is_manually_castable_to(self, target) -> bool - | - | is_one_fpval(self, *args) - | is_one_fpval(self) -> bool - | - | is_paf(self, *args) - | is_paf(self) -> bool - | - | is_partial(self, *args) - | is_partial(self) -> bool - | - | is_ptr(self, *args) - | is_ptr(self) -> bool - | - | is_ptr_or_array(self, *args) - | is_ptr_or_array(self) -> bool - | - | is_purging_cc(self, *args) - | is_purging_cc(self) -> bool - | - | is_pvoid(self, *args) - | is_pvoid(self) -> bool - | - | is_scalar(self, *args) - | is_scalar(self) -> bool - | - | is_shifted_ptr(self, *args) - | is_shifted_ptr(self) -> bool - | - | is_signed(self, *args) - | is_signed(self) -> bool - | - | is_small_udt(self, *args) - | is_small_udt(self) -> bool - | - | is_sse_type(self, *args) - | is_sse_type(self) -> bool - | - | is_struct(self, *args) - | is_struct(self) -> bool - | - | is_sue(self, *args) - | is_sue(self) -> bool - | - | is_tbyte(self, *args) - | is_tbyte(self) -> bool - | - | is_typeref(self, *args) - | is_typeref(self) -> bool - | - | is_uchar(self, *args) - | is_uchar(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_uint(self, *args) - | is_uint(self) -> bool - | - | is_uint128(self, *args) - | is_uint128(self) -> bool - | - | is_uint16(self, *args) - | is_uint16(self) -> bool - | - | is_uint32(self, *args) - | is_uint32(self) -> bool - | - | is_uint64(self, *args) - | is_uint64(self) -> bool - | - | is_union(self, *args) - | is_union(self) -> bool - | - | is_unknown(self, *args) - | is_unknown(self) -> bool - | - | is_unsigned(self, *args) - | is_unsigned(self) -> bool - | - | is_user_cc(self, *args) - | is_user_cc(self) -> bool - | - | is_vararg_cc(self, *args) - | is_vararg_cc(self) -> bool - | - | is_varstruct(self, *args) - | is_varstruct(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_void(self, *args) - | is_void(self) -> bool - | - | is_volatile(self, *args) - | is_volatile(self) -> bool - | - | is_well_defined(self, *args) - | is_well_defined(self) -> bool - | - | present(self, *args) - | present(self) -> bool - | - | read_bitfield_value(self, *args) - | read_bitfield_value(self, v, bitoff) -> uint64 - | - | remove_ptr_or_array(self, *args) - | remove_ptr_or_array(self) -> bool - | - | requires_qualifier(self, *args) - | requires_qualifier(self, name, offset) -> bool - | - | serialize(self, *args) - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * - | - | set_attr(self, *args) - | set_attr(self, ta, may_overwrite=True) -> bool - | - | set_attrs(self, *args) - | set_attrs(self, tav) -> bool - | - | set_const(self, *args) - | set_const(self) - | - | set_declalign(self, *args) - | set_declalign(self, declalign) -> bool - | - | set_modifiers(self, *args) - | set_modifiers(self, mod) - | - | set_named_type(self, *args) - | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | - | set_numbered_type(self, *args) - | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t - | - | set_symbol_type(self, *args) - | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | - | set_volatile(self, *args) - | set_volatile(self) - | - | swap(self, *args) - | swap(self, r) - | - | write_bitfield_value(self, *args) - | write_bitfield_value(self, dst, v, bitoff) -> uint64 - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | get_stock(*args) - | get_stock(id) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tinfo_t(self) - -Help on function tinfo_t_get_stock in module ida_typeinf: - -tinfo_t_get_stock(*args) - tinfo_t_get_stock(id) -> tinfo_t - -Help on class tinfo_visitor_t in module ida_typeinf: - -class tinfo_visitor_t(__builtin__.object) - | Proxy of C++ tinfo_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, s=0) -> tinfo_visitor_t - | - | __repr__ = _swig_repr(self) - | - | apply_to(self, *args) - | apply_to(self, tif, out=None, name=None, cmt=None) -> int - | - | prune_now(self, *args) - | prune_now(self) - | - | visit_type(self, *args) - | visit_type(self, out, tif, name, cmt) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | state - | tinfo_visitor_t_state_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_tinfo_visitor_t(self) - -Help on class type_attr_t in module ida_typeinf: - -class type_attr_t(__builtin__.object) - | Proxy of C++ type_attr_t class. - | - | Methods defined here: - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> type_attr_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | key - | type_attr_t_key_get(self) -> qstring * - | - | thisown - | The membership flag - | - | value - | type_attr_t_value_get(self) -> bytevec_t * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_type_attr_t(self) - -Help on class type_attrs_t in module ida_typeinf: - -class type_attrs_t(__builtin__.object) - | Proxy of C++ qvector< type_attr_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> type_attr_t - | - | __init__(self, *args) - | __init__(self) -> type_attrs_t - | __init__(self, x) -> type_attrs_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> type_attr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> type_attr_t - | begin(self) -> type_attr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> type_attr_t - | end(self) -> type_attr_t - | - | erase(self, *args) - | erase(self, it) -> type_attr_t - | erase(self, first, last) -> type_attr_t - | - | extract(self, *args) - | extract(self) -> type_attr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=type_attr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> type_attr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> type_attr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_type_attrs_t(self) - -Help on class type_mods_t in module ida_typeinf: - -class type_mods_t(__builtin__.object) - | Proxy of C++ type_mods_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> type_mods_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | has_cmt(self, *args) - | has_cmt(self) -> bool - | - | has_info(self, *args) - | has_info(self) -> bool - | - | has_name(self, *args) - | has_name(self) -> bool - | - | has_type(self, *args) - | has_type(self) -> bool - | - | set_new_cmt(self, *args) - | set_new_cmt(self, c) - | - | set_new_name(self, *args) - | set_new_name(self, n) - | - | set_new_type(self, *args) - | set_new_type(self, t) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | type_mods_t_cmt_get(self) -> qstring * - | - | flags - | type_mods_t_flags_get(self) -> int - | - | name - | type_mods_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | type_mods_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_type_mods_t(self) - -Help on class typedef_type_data_t in module ida_typeinf: - -class typedef_type_data_t(__builtin__.object) - | Proxy of C++ typedef_type_data_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t - | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t - | - | __repr__ = _swig_repr(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool - | - | resolve - | typedef_type_data_t_resolve_get(self) -> bool - | - | thisown - | The membership flag - | - | til - | typedef_type_data_t_til_get(self) -> til_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_typedef_type_data_t(self) - -Help on class udt_member_t in module ida_typeinf: - -class udt_member_t(__builtin__.object) - | Proxy of C++ udt_member_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> udt_member_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | begin(self, *args) - | begin(self) -> uint64 - | - | clr_baseclass(self, *args) - | clr_baseclass(self) - | - | clr_unaligned(self, *args) - | clr_unaligned(self) - | - | clr_vftable(self, *args) - | clr_vftable(self) - | - | clr_virtbase(self, *args) - | clr_virtbase(self) - | - | end(self, *args) - | end(self) -> uint64 - | - | is_anonymous_udm(self, *args) - | is_anonymous_udm(self) -> bool - | - | is_baseclass(self, *args) - | is_baseclass(self) -> bool - | - | is_bitfield(self, *args) - | is_bitfield(self) -> bool - | - | is_unaligned(self, *args) - | is_unaligned(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_virtbase(self, *args) - | is_virtbase(self) -> bool - | - | is_zero_bitfield(self, *args) - | is_zero_bitfield(self) -> bool - | - | set_baseclass(self, *args) - | set_baseclass(self) - | - | set_unaligned(self, *args) - | set_unaligned(self) - | - | set_vftable(self, *args) - | set_vftable(self) - | - | set_virtbase(self, *args) - | set_virtbase(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | udt_member_t_cmt_get(self) -> qstring * - | - | effalign - | udt_member_t_effalign_get(self) -> int - | - | fda - | udt_member_t_fda_get(self) -> uchar - | - | name - | udt_member_t_name_get(self) -> qstring * - | - | offset - | udt_member_t_offset_get(self) -> uint64 - | - | size - | udt_member_t_size_get(self) -> uint64 - | - | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 - | - | thisown - | The membership flag - | - | type - | udt_member_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_udt_member_t(self) - -Help on class udt_type_data_t in module ida_typeinf: - -class udt_type_data_t(udtmembervec_t) - | Proxy of C++ udt_type_data_t class. - | - | Method resolution order: - | udt_type_data_t - | udtmembervec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> udt_type_data_t - | - | __repr__ = _swig_repr(self) - | - | is_cppobj(self, *args) - | is_cppobj(self) -> bool - | - | is_last_baseclass(self, *args) - | is_last_baseclass(self, idx) -> bool - | - | is_msstruct(self, *args) - | is_msstruct(self) -> bool - | - | is_unaligned(self, *args) - | is_unaligned(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | effalign - | udt_type_data_t_effalign_get(self) -> uint32 - | - | is_union - | udt_type_data_t_is_union_get(self) -> bool - | - | pack - | udt_type_data_t_pack_get(self) -> uchar - | - | sda - | udt_type_data_t_sda_get(self) -> uchar - | - | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 - | - | thisown - | The membership flag - | - | total_size - | udt_type_data_t_total_size_get(self) -> size_t - | - | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_udt_type_data_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> udt_member_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> udt_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> udt_member_t - | begin(self) -> udt_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> udt_member_t - | end(self) -> udt_member_t - | - | erase(self, *args) - | erase(self, it) -> udt_member_t - | erase(self, first, last) -> udt_member_t - | - | extract(self, *args) - | extract(self) -> udt_member_t - | - | find(self, *args) - | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=udt_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> udt_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> udt_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class udtmembervec_t in module ida_typeinf: - -class udtmembervec_t(__builtin__.object) - | Proxy of C++ qvector< udt_member_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> udt_member_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> udt_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> udt_member_t - | begin(self) -> udt_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> udt_member_t - | end(self) -> udt_member_t - | - | erase(self, *args) - | erase(self, it) -> udt_member_t - | erase(self, first, last) -> udt_member_t - | - | extract(self, *args) - | extract(self) -> udt_member_t - | - | find(self, *args) - | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=udt_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> udt_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> udt_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_udtmembervec_t(self) - -Help on function unpack_idcobj_from_bv in module ida_typeinf: - -unpack_idcobj_from_bv(*args) - unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - - - Read a typed idc object from the byte vector. - - - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) - -Help on function unpack_idcobj_from_idb in module ida_typeinf: - -unpack_idcobj_from_idb(*args) - unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - - - Collection of register objects. - - Read a typed idc object from the database - - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) - -Help on function unpack_object_from_bv in module ida_typeinf: - -unpack_object_from_bv(*args) - unpack_object_from_bv(ti, _type, _fields, bytes, pio_flags=0) -> PyObject * - - - Unpacks a buffer into an object. - Returns the error_t returned by idaapi.pack_object_to_idb - @param ti: Type info. 'None' can be passed. - @param tp: type string - @param fields: fields string (may be empty or None) - @param bytes: the bytes to unpack - @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure - - tuple(1, obj) on success - -Help on function unpack_object_from_idb in module ida_typeinf: - -unpack_object_from_idb(*args) - unpack_object_from_idb(ti, _type, _fields, ea, pio_flags=0) -> PyObject * - -Help on class valstr_t in module ida_typeinf: - -class valstr_t(__builtin__.object) - | Proxy of C++ valstr_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> valstr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | info - | valstr_t_info_get(self) -> valinfo_t * - | - | length - | valstr_t_length_get(self) -> size_t - | - | members - | valstr_t_members_get(self) -> valstrs_t - | - | oneline - | valstr_t_oneline_get(self) -> qstring * - | - | props - | valstr_t_props_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_valstr_t(self) - -Help on class valstrs_t in module ida_typeinf: - -class valstrs_t(valstrvec_t) - | Proxy of C++ valstrs_t class. - | - | Method resolution order: - | valstrs_t - | valstrvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> valstrs_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_valstrs_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from valstrvec_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> valstr_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> valstr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> valstr_t - | begin(self) -> valstr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> valstr_t - | end(self) -> valstr_t - | - | erase(self, *args) - | erase(self, it) -> valstr_t - | erase(self, first, last) -> valstr_t - | - | extract(self, *args) - | extract(self) -> valstr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=valstr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> valstr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> valstr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from valstrvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class valstrvec_t in module ida_typeinf: - -class valstrvec_t(__builtin__.object) - | Proxy of C++ qvector< valstr_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> valstr_t - | - | __init__(self, *args) - | __init__(self) -> valstrvec_t - | __init__(self, x) -> valstrvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> valstr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> valstr_t - | begin(self) -> valstr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> valstr_t - | end(self) -> valstr_t - | - | erase(self, *args) - | erase(self, it) -> valstr_t - | erase(self, first, last) -> valstr_t - | - | extract(self, *args) - | extract(self) -> valstr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=valstr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> valstr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> valstr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_valstrvec_t(self) - -Help on function verify_argloc in module ida_typeinf: - -verify_argloc(*args) - verify_argloc(vloc, size, gaps) -> int - - - Verify 'argloc_t' . - - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) - @return: 0 if ok, otherwise an interr code. - -Help on function verify_tinfo in module ida_typeinf: - -verify_tinfo(*args) - verify_tinfo(typid) -> int - -Help on function visit_subtypes in module ida_typeinf: - -visit_subtypes(*args) - visit_subtypes(visitor, out, tif, name, cmt) -> int - -Help on function write_tinfo_bitfield_value in module ida_typeinf: - -write_tinfo_bitfield_value(*args) - write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 - -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -(stkargs and retloc too) - -info about argument locations has been calculated -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -otherwise "input" contains a C declaration - -"input" is file name, -""" - -ida_typeinf.HTI_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK -""" - -ida_typeinf.NTF_FIXNAME -""" -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" - 'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" - 'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if union - nb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by number- in: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by name- in: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offset- in: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.- in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type. - in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -to match the offsets and size info - -recalculate field alignments, struct packing, etc -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === -Help on function calc_dataseg in module ida_ua: - -calc_dataseg(*args) - calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t - - - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - - @param insn (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) - -Help on function can_decode in module ida_ua: - -can_decode(*args) - can_decode(ea) -> bool - - - Can the bytes at address 'ea' be decoded as instruction? - - @param ea: linear address (C++: ea_t) - @return: whether or not the contents at that address could be a valid - instruction - -Help on function construct_macro in module ida_ua: - -construct_macro(*args) - construct_macro(insn, enable, build_macro) -> bool - - - See ua.hpp's construct_macro(). - -Help on function create_insn in module ida_ua: - -create_insn(*args) - create_insn(ea, out=None) -> int - - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 - -Help on function create_outctx in module ida_ua: - -create_outctx(*args) - create_outctx(ea, F=0, suspop=0) -> outctx_base_t - - - Create a new output context. To delete it, just use "delete pctx" - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) - -Help on function decode_insn in module ida_ua: - -decode_insn(*args) - decode_insn(out, ea) -> int - - - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 - -Help on function decode_preceding_insn in module ida_ua: - -decode_preceding_insn(*args) - decode_preceding_insn(out, ea) -> PyObject * - - - Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea - @param out: instruction storage - @return: tuple(preceeding_ea or BADADDR, farref = Boolean) - -Help on function decode_prev_insn in module ida_ua: - -decode_prev_insn(*args) - decode_prev_insn(out, ea) -> ea_t - - - Decode previous instruction if it exists, fill 'out'. - - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) - -Help on function get_dtype_by_size in module ida_ua: - -get_dtype_by_size(*args) - get_dtype_by_size(size) -> int - - - Get 'op_t::dtype' from size. - - - @param size (C++: asize_t) - -Help on function get_dtype_flag in module ida_ua: - -get_dtype_flag(*args) - get_dtype_flag(dtype) -> flags_t - - - Get flags for 'op_t::dtype' field. - - - @param dtype (C++: op_dtype_t) - -Help on function get_dtype_size in module ida_ua: - -get_dtype_size(*args) - get_dtype_size(dtype) -> size_t - - - Get size of opt_::dtype field. - - - @param dtype (C++: op_dtype_t) - -Help on function get_immvals in module ida_ua: - -get_immvals(*args) - get_immvals(ea, n, F=0) -> PyObject * - - - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. - - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) - -Help on function get_lookback in module ida_ua: - -get_lookback(*args) - get_lookback() -> int - - - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = . - IDP may use it as you like it. (TMS module uses it) - -Help on function get_printable_immvals in module ida_ua: - -get_printable_immvals(*args) - get_printable_immvals(ea, n, F=0) -> PyObject * - - - Get immediate ready-to-print values at the specified address - - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) - -Help on function guess_table_address in module ida_ua: - -guess_table_address(*args) - guess_table_address(insn) -> ea_t - - - Guess the jump table address (ibm pc specific) - - - @param insn (C++: const insn_t &) - -Help on function guess_table_size in module ida_ua: - -guess_table_size(*args) - guess_table_size(insn, jump_table) -> asize_t - - - Guess the jump table size. - - - @param insn (C++: const insn_t &) - @param jump_table (C++: ea_t) - -Help on function insn_add_cref in module ida_ua: - -insn_add_cref(*args) - insn_add_cref(insn, to, opoff, type) - -Help on function insn_add_dref in module ida_ua: - -insn_add_dref(*args) - insn_add_dref(insn, to, opoff, type) - -Help on function insn_add_off_drefs in module ida_ua: - -insn_add_off_drefs(*args) - insn_add_off_drefs(insn, x, type, outf) -> ea_t - -Help on function insn_create_stkvar in module ida_ua: - -insn_create_stkvar(*args) - insn_create_stkvar(insn, x, v, flags) -> bool - -Help on class insn_t in module ida_ua: - -class insn_t(__builtin__.object) - | Proxy of C++ insn_t class. - | - | Methods defined here: - | - | __get_auxpref__(self, *args) - | __get_auxpref__(self) -> uint16 - | - | __get_operand__(self, *args) - | __get_operand__(self, n) -> op_t - | - | __get_ops__(self, *args) - | __get_ops__(self) -> operands_array - | - | __getitem__(self, idx) - | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t - | - | __init__(self, *args) - | __init__(self) -> insn_t - | - | __iter__(self) - | - | __repr__ = _swig_repr(self) - | - | __set_auxpref__(self, *args) - | __set_auxpref__(self, v) - | - | add_cref(self, *args) - | add_cref(self, to, opoff, type) - | - | add_dref(self, *args) - | add_dref(self, to, opoff, type) - | - | add_off_drefs(self, *args) - | add_off_drefs(self, x, type, outf) -> ea_t - | - | assign(self, *args) - | assign(self, other) - | - | create_op_data(self, *args) - | create_op_data(self, ea_, opoff, dtype) -> bool - | create_op_data(self, ea_, op) -> bool - | - | create_stkvar(self, *args) - | create_stkvar(self, x, v, flags_) -> bool - | - | get_canon_feature(self, *args) - | get_canon_feature(self) -> uint32 - | - | get_canon_mnem(self, *args) - | get_canon_mnem(self) -> char const * - | - | get_next_byte(self, *args) - | get_next_byte(self) -> uint8 - | - | get_next_dword(self, *args) - | get_next_dword(self) -> uint32 - | - | get_next_qword(self, *args) - | get_next_qword(self) -> uint64 - | - | get_next_word(self, *args) - | get_next_word(self) -> uint16 - | - | is_64bit(self, *args) - | is_64bit(self) -> bool - | - | is_canon_insn(self, *args) - | is_canon_insn(self) -> bool - | - | is_macro(self, *args) - | is_macro(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | Op1 - | - | Op2 - | - | Op3 - | - | Op4 - | - | Op5 - | - | Op6 - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | auxpref - | __get_auxpref__(self) -> uint16 - | - | cs - | insn_t_cs_get(self) -> ea_t - | - | ea - | insn_t_ea_get(self) -> ea_t - | - | flags - | insn_t_flags_get(self) -> int16 - | - | insnpref - | insn_t_insnpref_get(self) -> char - | - | ip - | insn_t_ip_get(self) -> ea_t - | - | itype - | insn_t_itype_get(self) -> uint16 - | - | ops - | __get_ops__(self) -> operands_array - | - | segpref - | insn_t_segpref_get(self) -> char - | - | size - | insn_t_size_get(self) -> uint16 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_insn_t(self) - -Help on function insn_t__from_ptrval__ in module ida_ua: - -insn_t__from_ptrval__(*args) - insn_t__from_ptrval__(ptrval) -> insn_t - -Help on function is_floating_dtype in module ida_ua: - -is_floating_dtype(*args) - is_floating_dtype(dtype) -> bool - - - Is a floating type operand? - - - @param dtype (C++: op_dtype_t) - -Help on function map_code_ea in module ida_ua: - -map_code_ea(*args) - map_code_ea(insn, addr, opnum) -> ea_t - map_code_ea(insn, op) -> ea_t - - - Map a code address. This function takes into account the segment - translations. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) - -Help on function map_data_ea in module ida_ua: - -map_data_ea(*args) - map_data_ea(insn, addr, opnum=-1) -> ea_t - map_data_ea(insn, op) -> ea_t - - - Map a data address. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) - -Help on function map_ea in module ida_ua: - -map_ea(*args) - map_ea(insn, op, iscode) -> ea_t - map_ea(insn, addr, opnum, iscode) -> ea_t - -Help on class op_t in module ida_ua: - -class op_t(__builtin__.object) - | Proxy of C++ op_t class. - | - | Methods defined here: - | - | __get_addr__(self, *args) - | __get_addr__(self) -> ea_t - | - | __get_reg_phrase__(self, *args) - | __get_reg_phrase__(self) -> uint16 - | - | __get_specval__(self, *args) - | __get_specval__(self) -> ea_t - | - | __get_value__(self, *args) - | __get_value__(self) -> ea_t - | - | __init__(self, *args) - | __init__(self) -> op_t - | - | __repr__ = _swig_repr(self) - | - | __set_addr__(self, *args) - | __set_addr__(self, v) - | - | __set_reg_phrase__(self, *args) - | __set_reg_phrase__(self, r) - | - | __set_specval__(self, *args) - | __set_specval__(self, v) - | - | __set_value__(self, *args) - | __set_value__(self, v) - | - | assign(self, *args) - | assign(self, other) - | - | clr_shown(self, *args) - | clr_shown(self) - | - | has_reg(self, r) - | Checks if the operand accesses the given processor register - | - | is_imm(self, *args) - | is_imm(self, v) -> bool - | - | is_reg(self, *args) - | is_reg(self, r) -> bool - | - | set_shown(self, *args) - | set_shown(self) - | - | shown(self, *args) - | shown(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | addr - | __get_addr__(self) -> ea_t - | - | dtype - | op_t_dtype_get(self) -> op_dtype_t - | - | flags - | op_t_flags_get(self) -> uchar - | - | n - | op_t_n_get(self) -> uchar - | - | offb - | op_t_offb_get(self) -> char - | - | offo - | op_t_offo_get(self) -> char - | - | phrase - | __get_reg_phrase__(self) -> uint16 - | - | reg - | __get_reg_phrase__(self) -> uint16 - | - | specflag1 - | op_t_specflag1_get(self) -> char - | - | specflag2 - | op_t_specflag2_get(self) -> char - | - | specflag3 - | op_t_specflag3_get(self) -> char - | - | specflag4 - | op_t_specflag4_get(self) -> char - | - | specval - | __get_specval__(self) -> ea_t - | - | thisown - | The membership flag - | - | type - | op_t_type_get(self) -> optype_t - | - | value - | __get_value__(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_op_t(self) - -Help on function op_t__from_ptrval__ in module ida_ua: - -op_t__from_ptrval__(*args) - op_t__from_ptrval__(ptrval) -> op_t - -Help on class operands_array in module ida_ua: - -class operands_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< op_t,8 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> op_t - | - | __init__(self, *args) - | __init__(self, data) -> operands_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | operands_array_data_get(self) -> op_t (&)[8] - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_operands_array(self) - -Help on class outctx_base_t in module ida_ua: - -class outctx_base_t(__builtin__.object) - | Proxy of C++ outctx_base_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | close_comment(self, *args) - | close_comment(self) - | - | clr_gen_label(self, *args) - | clr_gen_label(self) - | - | display_voids(self, *args) - | display_voids(self) -> bool - | - | flush_buf(self, *args) - | flush_buf(self, buf, indent=-1) -> bool - | - | flush_outbuf(self, *args) - | flush_outbuf(self, indent=-1) -> bool - | - | forbid_annotations(self, *args) - | forbid_annotations(self) -> int - | - | force_code(self, *args) - | force_code(self) -> bool - | - | gen_block_cmt(self, *args) - | gen_block_cmt(self, cmt, color) -> bool - | - | gen_border_line(self, *args) - | gen_border_line(self, solid=False) -> bool - | - | gen_cmt_line(self, *args) - | gen_cmt_line(self, format) -> bool - | - | gen_collapsed_line(self, *args) - | gen_collapsed_line(self, format) -> bool - | - | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool - | - | gen_empty_line_without_annotations(self, *args) - | gen_empty_line_without_annotations(self) - | - | gen_printf(self, *args) - | gen_printf(self, indent, format) -> bool - | - | gen_xref_lines(self, *args) - | gen_xref_lines(self) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | - | init_lines_array(self, *args) - | init_lines_array(self, answers, maxsize) - | - | multiline(self, *args) - | multiline(self) -> bool - | - | only_main_line(self, *args) - | only_main_line(self) -> bool - | - | out_addr_tag(self, *args) - | out_addr_tag(self, ea) - | - | out_btoa(self, *args) - | out_btoa(self, Word, radix=0) - | - | out_char(self, *args) - | out_char(self, c) - | - | out_chars(self, *args) - | out_chars(self, c, n) - | - | out_colored_register_line(self, *args) - | out_colored_register_line(self, str) - | - | out_keyword(self, *args) - | out_keyword(self, str) - | - | out_line(self, *args) - | out_line(self, str, color=0) - | - | out_long(self, *args) - | out_long(self, v, radix) - | - | out_name_expr(self, *args) - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | - | out_printf(self, *args) - | out_printf(self, format) - | - | out_register(self, *args) - | out_register(self, str) - | - | out_spaces(self, *args) - | out_spaces(self, len) - | - | out_symbol(self, *args) - | out_symbol(self, c) - | - | out_tagoff(self, *args) - | out_tagoff(self, tag) - | - | out_tagon(self, *args) - | out_tagon(self, tag) - | - | out_value(self, *args) - | out_value(self, x, outf=0) -> flags_t - | - | print_label_now(self, *args) - | print_label_now(self) -> bool - | - | restore_ctxflags(self, *args) - | restore_ctxflags(self, saved_flags) - | - | retrieve_cmt(self, *args) - | retrieve_cmt(self) -> ssize_t - | - | retrieve_name(self, *args) - | retrieve_name(self, arg2, arg3) -> ssize_t - | - | set_comment_addr(self, *args) - | set_comment_addr(self, ea) - | - | set_dlbind_opnd(self, *args) - | set_dlbind_opnd(self) - | - | set_gen_cmt(self, *args) - | set_gen_cmt(self, on=True) - | - | set_gen_demangled_label(self, *args) - | set_gen_demangled_label(self) - | - | set_gen_label(self, *args) - | set_gen_label(self) - | - | set_gen_xrefs(self, *args) - | set_gen_xrefs(self, on=True) - | - | setup_outctx(self, *args) - | setup_outctx(self, prefix, makeline_flags) - | - | stack_view(self, *args) - | stack_view(self) -> bool - | - | term_outctx(self, *args) - | term_outctx(self, prefix=None) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int - | - | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t - | - | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * - | - | thisown - | The membership flag - -Help on function outctx_base_t__from_ptrval__ in module ida_ua: - -outctx_base_t__from_ptrval__(*args) - outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t - -Help on class outctx_t in module ida_ua: - -class outctx_t(outctx_base_t) - | Proxy of C++ outctx_t class. - | - | Method resolution order: - | outctx_t - | outctx_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | gen_func_footer(self, *args) - | gen_func_footer(self, pfn) - | - | gen_func_header(self, *args) - | gen_func_header(self, pfn) - | - | gen_header(self, *args) - | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) - | - | gen_header_extra(self, *args) - | gen_header_extra(self) - | - | gen_xref_lines(self, *args) - | gen_xref_lines(self) -> bool - | - | out_custom_mnem(self, *args) - | out_custom_mnem(self, mnem, width=8, postfix=None) - | - | out_data(self, *args) - | out_data(self, analyze_only) - | - | out_immchar_cmts(self, *args) - | out_immchar_cmts(self) - | - | out_mnem(self, *args) - | out_mnem(self, width=8, postfix=None) - | - | out_mnemonic(self, *args) - | out_mnemonic(self) - | - | out_one_operand(self, *args) - | out_one_operand(self, n) -> bool - | - | out_specea(self, *args) - | out_specea(self, segtype) -> bool - | - | retrieve_cmt(self, *args) - | retrieve_cmt(self) -> ssize_t - | - | retrieve_name(self, *args) - | retrieve_name(self, arg2, arg3) -> ssize_t - | - | set_bin_state(self, *args) - | set_bin_state(self, value) - | - | setup_outctx(self, *args) - | setup_outctx(self, prefix, flags) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t - | - | bin_state - | outctx_t_bin_state_get(self) -> char - | - | bin_width - | outctx_t_bin_width_get(self) -> int - | - | curlabel - | outctx_t_curlabel_get(self) -> qstring * - | - | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int - | - | insn - | outctx_t_insn_get(self) -> insn_t - | - | thisown - | The membership flag - | - | wif - | outctx_t_wif_get(self) -> printop_t - | - | ---------------------------------------------------------------------- - | Methods inherited from outctx_base_t: - | - | close_comment(self, *args) - | close_comment(self) - | - | clr_gen_label(self, *args) - | clr_gen_label(self) - | - | display_voids(self, *args) - | display_voids(self) -> bool - | - | flush_buf(self, *args) - | flush_buf(self, buf, indent=-1) -> bool - | - | flush_outbuf(self, *args) - | flush_outbuf(self, indent=-1) -> bool - | - | forbid_annotations(self, *args) - | forbid_annotations(self) -> int - | - | force_code(self, *args) - | force_code(self) -> bool - | - | gen_block_cmt(self, *args) - | gen_block_cmt(self, cmt, color) -> bool - | - | gen_border_line(self, *args) - | gen_border_line(self, solid=False) -> bool - | - | gen_cmt_line(self, *args) - | gen_cmt_line(self, format) -> bool - | - | gen_collapsed_line(self, *args) - | gen_collapsed_line(self, format) -> bool - | - | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool - | - | gen_empty_line_without_annotations(self, *args) - | gen_empty_line_without_annotations(self) - | - | gen_printf(self, *args) - | gen_printf(self, indent, format) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | - | init_lines_array(self, *args) - | init_lines_array(self, answers, maxsize) - | - | multiline(self, *args) - | multiline(self) -> bool - | - | only_main_line(self, *args) - | only_main_line(self) -> bool - | - | out_addr_tag(self, *args) - | out_addr_tag(self, ea) - | - | out_btoa(self, *args) - | out_btoa(self, Word, radix=0) - | - | out_char(self, *args) - | out_char(self, c) - | - | out_chars(self, *args) - | out_chars(self, c, n) - | - | out_colored_register_line(self, *args) - | out_colored_register_line(self, str) - | - | out_keyword(self, *args) - | out_keyword(self, str) - | - | out_line(self, *args) - | out_line(self, str, color=0) - | - | out_long(self, *args) - | out_long(self, v, radix) - | - | out_name_expr(self, *args) - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | - | out_printf(self, *args) - | out_printf(self, format) - | - | out_register(self, *args) - | out_register(self, str) - | - | out_spaces(self, *args) - | out_spaces(self, len) - | - | out_symbol(self, *args) - | out_symbol(self, c) - | - | out_tagoff(self, *args) - | out_tagoff(self, tag) - | - | out_tagon(self, *args) - | out_tagon(self, tag) - | - | out_value(self, *args) - | out_value(self, x, outf=0) -> flags_t - | - | print_label_now(self, *args) - | print_label_now(self) -> bool - | - | restore_ctxflags(self, *args) - | restore_ctxflags(self, saved_flags) - | - | set_comment_addr(self, *args) - | set_comment_addr(self, ea) - | - | set_dlbind_opnd(self, *args) - | set_dlbind_opnd(self) - | - | set_gen_cmt(self, *args) - | set_gen_cmt(self, on=True) - | - | set_gen_demangled_label(self, *args) - | set_gen_demangled_label(self) - | - | set_gen_label(self, *args) - | set_gen_label(self) - | - | set_gen_xrefs(self, *args) - | set_gen_xrefs(self, on=True) - | - | stack_view(self, *args) - | stack_view(self) -> bool - | - | term_outctx(self, *args) - | term_outctx(self, prefix=None) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from outctx_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int - | - | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t - | - | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * - -Help on function outctx_t__from_ptrval__ in module ida_ua: - -outctx_t__from_ptrval__(*args) - outctx_t__from_ptrval__(ptrval) -> outctx_t - -Help on function print_insn_mnem in module ida_ua: - -print_insn_mnem(*args) - print_insn_mnem(ea) -> str - - - Print instruction mnemonics. - - @param ea: linear address of the instruction (C++: ea_t) - @return: success - -Help on function print_operand in module ida_ua: - -print_operand(*args) - print_operand(ea, n, getn_flags=0, newtype=None) -> str - - - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) - @return: success - -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error -""" - -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" - -ida_ua.FCBF_ERR_REPL -""" -of a hex representation of the problematic byte - -in case of an error, use a CP_REPLCHAR instead -""" - -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" - -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -currently works only for floating point numbers - -do not suppress leading spaces -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === -Help on function add_cref in module ida_xref: - -add_cref(*args) - add_cref(frm, to, type) -> bool - - - Create a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success - -Help on function add_dref in module ida_xref: - -add_dref(*args) - add_dref(frm, to, type) -> bool - - - Create a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) - -Help on function calc_switch_cases in module ida_xref: - -calc_switch_cases(*args) - calc_switch_cases(ea, si) -> cases_and_targets_t - - - Get information about a switch's cases. - - The returned information can be used as follows: - - for idx in range(len(results.cases)): - cur_case = results.cases[idx] - for cidx in range(len(cur_case)): - print("case: %d" % cur_case[cidx]) - print(" goto 0x%x" % results.targets[idx]) - - @param ea: address of the 'indirect jump' instruction - @param si: switch information - - @return: a structure with 2 members: 'cases', and 'targets'. - -Help on class cases_and_targets_t in module ida_xref: - -class cases_and_targets_t(__builtin__.object) - | Proxy of C++ cases_and_targets_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> cases_and_targets_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cases - | cases_and_targets_t_cases_get(self) -> casevec_t - | - | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_cases_and_targets_t(self) - -Help on class casevec_t in module ida_xref: - -class casevec_t(__builtin__.object) - | Proxy of C++ qvector< qvector< sval_t > > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ - | - | __init__(self, *args) - | __init__(self) -> casevec_t - | __init__(self, x) -> casevec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | - | erase(self, *args) - | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | - | extract(self, *args) - | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ - | - | find(self, *args) - | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_casevec_t(self) - -Help on function create_switch_table in module ida_xref: - -create_switch_table(*args) - create_switch_table(ea, si) -> bool - - - Create switch table from the switch information - - @param ea: address of the 'indirect jump' instruction - @param si: switch information - - @return: Boolean - -Help on function create_switch_xrefs in module ida_xref: - -create_switch_xrefs(*args) - create_switch_xrefs(ea, si) -> bool - - - This function creates xrefs from the indirect jump. - - Usually there is no need to call this function directly because the kernel - will call it for switch tables - - Note: Custom switch information are not supported yet. - - @param ea: address of the 'indirect jump' instruction - @param si: switch information - - @return: Boolean - -Help on function del_cref in module ida_xref: - -del_cref(*args) - del_cref(frm, to, expand) -> int - - - Delete a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - -Help on function del_dref in module ida_xref: - -del_dref(*args) - del_dref(frm, to) - - - Delete a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - -Help on function delete_switch_table in module ida_xref: - -delete_switch_table(*args) - delete_switch_table(jump_ea, si) - -Help on function get_first_cref_from in module ida_xref: - -get_first_cref_from(*args) - get_first_cref_from(frm) -> ea_t - - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . - -Help on function get_first_cref_to in module ida_xref: - -get_first_cref_to(*args) - get_first_cref_to(to) -> ea_t - - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_first_dref_from in module ida_xref: - -get_first_dref_from(*args) - get_first_dref_from(frm) -> ea_t - - - Get first data referenced from the specified address. - - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. - -Help on function get_first_dref_to in module ida_xref: - -get_first_dref_to(*args) - get_first_dref_to(to) -> ea_t - - - Get address of instruction/data referencing to the specified data. - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_first_fcref_from in module ida_xref: - -get_first_fcref_from(*args) - get_first_fcref_from(frm) -> ea_t - -Help on function get_first_fcref_to in module ida_xref: - -get_first_fcref_to(*args) - get_first_fcref_to(to) -> ea_t - -Help on function get_next_cref_from in module ida_xref: - -get_next_cref_from(*args) - get_next_cref_from(frm, current) -> ea_t - - - Get next instruction referenced from the specified instruction. - - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. - -Help on function get_next_cref_to in module ida_xref: - -get_next_cref_to(*args) - get_next_cref_to(to, current) -> ea_t - - - Get next instruction referencing to the specified instruction. - - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_next_dref_from in module ida_xref: - -get_next_dref_from(*args) - get_next_dref_from(frm, current) -> ea_t - - - Get next data referenced from the specified address. - - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference - -Help on function get_next_dref_to in module ida_xref: - -get_next_dref_to(*args) - get_next_dref_to(to, current) -> ea_t - - - Get address of instruction/data referencing to the specified data - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_next_fcref_from in module ida_xref: - -get_next_fcref_from(*args) - get_next_fcref_from(frm, current) -> ea_t - -Help on function get_next_fcref_to in module ida_xref: - -get_next_fcref_to(*args) - get_next_fcref_to(to, current) -> ea_t - -Help on function has_external_refs in module ida_xref: - -has_external_refs(*args) - has_external_refs(pfn, ea) -> bool - - - Has a location external to the function references? - - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - -Help on class xrefblk_t in module ida_xref: - -class xrefblk_t(__builtin__.object) - | Proxy of C++ xrefblk_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> xrefblk_t - | - | __repr__ = _swig_repr(self) - | - | first_from(self, *args) - | first_from(self, _from, flags) -> bool - | - | first_to(self, *args) - | first_to(self, _to, flags) -> bool - | - | next_from(self, *args) - | next_from(self) -> bool - | next_from(self, _from, _to, flags) -> bool - | - | next_to(self, *args) - | next_to(self) -> bool - | next_to(self, _from, _to, flags) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | frm - | xrefblk_t_frm_get(self) -> ea_t - | - | iscode - | xrefblk_t_iscode_get(self) -> uchar - | - | thisown - | The membership flag - | - | to - | xrefblk_t_to_get(self) -> ea_t - | - | type - | xrefblk_t_type_get(self) -> uchar - | - | user - | xrefblk_t_user_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_xrefblk_t(self) - -Help on function xrefchar in module ida_xref: - -xrefchar(*args) - xrefchar(xrtype) -> char - - - Get character describing the xref type. - - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) - -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL -""" -return all references -""" - -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === -Help on function AddSeg in module idc: - -AddSeg(startea, endea, base, use32, align, comb) - -Help on function AutoMark in module idc: - -AutoMark(ea, qtype) - Plan to analyze an address - -Help on class DeprecatedIDCError in module idc: - -class DeprecatedIDCError(exceptions.Exception) - | Exception for deprecated function calls - | - | Method resolution order: - | DeprecatedIDCError - | exceptions.Exception - | exceptions.BaseException - | __builtin__.object - | - | Data descriptors defined here: - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Methods inherited from exceptions.Exception: - | - | __init__(...) - | x.__init__(...) initializes x; see help(type(x)) for signature - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from exceptions.Exception: - | - | __new__ = - | T.__new__(S, ...) -> a new object with type S, a subtype of T - | - | ---------------------------------------------------------------------- - | Methods inherited from exceptions.BaseException: - | - | __delattr__(...) - | x.__delattr__('name') <==> del x.name - | - | __getattribute__(...) - | x.__getattribute__('name') <==> x.name - | - | __getitem__(...) - | x.__getitem__(y) <==> x[y] - | - | __getslice__(...) - | x.__getslice__(i, j) <==> x[i:j] - | - | Use of negative indices is not supported. - | - | __reduce__(...) - | - | __repr__(...) - | x.__repr__() <==> repr(x) - | - | __setattr__(...) - | x.__setattr__('name', value) <==> x.name = value - | - | __setstate__(...) - | - | __str__(...) - | x.__str__() <==> str(x) - | - | __unicode__(...) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from exceptions.BaseException: - | - | __dict__ - | - | args - | - | message - -Help on function EVAL_FAILURE in module idc: - -EVAL_FAILURE(code) - Check the result of eval_idc() for evaluation failures - - @param code: result of eval_idc() - - @return: True if there was an evaluation error - -Help on function get_cmt in module ida_bytes: - -get_cmt(*args) - get_cmt(ea, rptble) -> str - - - Get an indented comment. - - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 - -Help on function GetDisasm in module idc: - -GetDisasm(ea) - Get disassembly line - - @param ea: linear address of instruction - - @return: "" - could not decode instruction at the specified location - - @note: this function may not return exactly the same mnemonics - as you see on the screen. - -Help on function GetDouble in module idc: - -GetDouble(ea) - Get value of a floating point number (8 bytes) - This function assumes number stored using IEEE format - and in the same endianness as integers. - - @param ea: linear address - - @return: double - -Help on function GetFloat in module idc: - -GetFloat(ea) - Get value of a floating point number (4 bytes) - This function assumes number stored using IEEE format - and in the same endianness as integers. - - @param ea: linear address - - @return: float - -Help on function GetLocalType in module idc: - -GetLocalType(ordinal, flags) - Retrieve a local type declaration - @param flags: any of PRTYPE_* constants - @return: local type as a C declaration or "" - -Help on function LoadFile in module idc: - -LoadFile(filepath, pos, ea, size) - Load file into IDA database - - @param filepath: path to input file - @param pos: position in the file - @param ea: linear address to load - @param size: number of bytes to load - - @return: 0 - error, 1 - ok - -Help on function MakeVar in module idc: - -MakeVar(ea) - Mark the location as "variable" - - @param ea: address to mark - - @return: None - - @note: All that IDA does is to mark the location as "variable". - Nothing else, no additional analysis is performed. - This function may disappear in the future. - -Help on function SaveFile in module idc: - -SaveFile(filepath, pos, ea, size) - Save from IDA database to file - - @param filepath: path to output file - @param pos: position in the file - @param ea: linear address to save from - @param size: number of bytes to save - - @return: 0 - error, 1 - ok - -Help on function SetPrcsr in module idc: - -SetPrcsr(processor) - -Help on function SetType in module idc: - -SetType(ea, newtype) - Set type of function/variable - - @param ea: the address of the object - @param newtype: the type string in C declaration form. - Must contain the closing ';' - if specified as an empty string, then the - item associated with 'ea' will be deleted. - - @return: 1-ok, 0-failed. - -Help on function SizeOf in module idc: - -SizeOf(typestr) - Returns the size of the type. It is equivalent to IDC's sizeof(). - Use name, tp, fld = idc.parse_decl() ; SizeOf(tp) to retrieve the size - @return: -1 if typestring is not valid otherwise the size of the type - -Help on function _IDC_GetAttr in module idc: - -_IDC_GetAttr(obj, attrmap, attroffs) - Internal function to generically get object attributes - Do not use unless you know what you are doing - -Help on function _IDC_SetAttr in module idc: - -_IDC_SetAttr(obj, attrmap, attroffs, value) - Internal function to generically set object attributes - Do not use unless you know what you are doing - -Help on function __DbgValue in module idc: - -__DbgValue(ea, len) - -Help on function __GetArrayById in module idc: - -__GetArrayById(array_id) - Get an array, by its ID. - - This (internal) wrapper around 'idaaip.netnode(array_id)' - will ensure a certain safety around the retrieval of - arrays (by catching quite unexpect[ed|able] exceptions, - and making sure we don't create & use `transient' netnodes). - - @param array_id: A positive, valid array ID. - -Help on class __dummy_netnode in module idc: - -class __dummy_netnode(__builtin__.object) - | Implements, in an "always failing" fashion, the - | netnode functions that are necessary for the - | array-related functions. - | - | The sole purpose of this singleton class is to - | serve as a placeholder for netnode-manipulating - | functions, that don't want to each have to perform - | checks on the existence of the netnode. - | (..in other words: it avoids a bunch of if/else's). - | - | See __GetArrayById() for more info. - | - | Methods defined here: - | - | altdel(self, *args) - | - | altfirst(self, *args) - | - | altlast(self, *args) - | - | altnext(self, *args) - | - | altprev(self, *args) - | - | altset(self, *args) - | - | altval(self, *args) - | - | hashdel(self, *args) - | - | hashfirst(self, *args) - | - | hashlast(self, *args) - | - | hashnext(self, *args) - | - | hashprev(self, *args) - | - | hashset(self, *args) - | - | hashset_buf(self, *args) - | - | hashset_idx(self, *args) - | - | hashstr(self, *args) - | - | hashstr_buf(self, *args) - | - | hashval(self, *args) - | - | hashval_long(self, *args) - | - | index(self, *args) - | - | kill(self, *args) - | - | rename(self, *args) - | - | supdel(self, *args) - | - | supfirst(self, *args) - | - | suplast(self, *args) - | - | supnext(self, *args) - | - | supprev(self, *args) - | - | supset(self, *args) - | - | supval(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | instance = - -Help on function __l2m1 in module idc: - -__l2m1(v) - Long to minus 1: If the 'v' appears to be the - 'signed long' version of -1, then return -1. - Otherwise, return 'v'. - -Help on function __warn_once_deprecated_proto_confusion in module idc: - -__warn_once_deprecated_proto_confusion(what, alternative) - -Help on function _get_modules in module idc: - -_get_modules() - INTERNAL: Enumerate process modules - -Help on function add_auto_stkpnt in module idc: - -add_auto_stkpnt(func_ea, ea, delta) - Add automatical SP register change point - @param func_ea: function start - @param ea: linear address where SP changes - usually this is the end of the instruction which - modifies the stack pointer (insn.ea+insn.size) - @param delta: difference between old and new values of SP - @return: 1-ok, 0-failed - -Help on function add_bpt in module ida_dbg: - -add_bpt(*args) - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - add_bpt(bpt) -> bool - - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) - -Help on function add_cref in module ida_xref: - -add_cref(*args) - add_cref(frm, to, type) -> bool - - - Create a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success - -Help on function add_default_til in module idc: - -add_default_til(name) - Load a type library - - @param name: name of type library. - @return: 1-ok, 0-failed. - -Help on function add_dref in module ida_xref: - -add_dref(*args) - add_dref(frm, to, type) -> bool - - - Create a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) - -Help on function add_entry in module ida_entry: - -add_entry(*args) - add_entry(ord, ea, name, makecode, flags=0) -> bool - - - Add an entry point to the list of entry points. - - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) - -Help on function add_enum in module idc: - -add_enum(idx, name, flag) - Add a new enum type - - @param idx: serial number of the new enum. - If another enum with the same serial number - exists, then all enums with serial - numbers >= the specified idx get their - serial numbers incremented (in other words, - the new enum is put in the middle of the list of enums). - - If idx >= get_enum_qty() or idx == idaapi.BADNODE - then the new enum is created at the end of - the list of enums. - - @param name: name of the enum. - @param flag: flags for representation of numeric constants - in the definition of enum. - - @return: id of new enum or BADADDR - -Help on function add_enum_member in module idc: - -add_enum_member(enum_id, name, value, bmask) - Add a member of enum - a symbolic constant - - @param enum_id: id of enum - @param name: name of symbolic constant. Must be unique in the program. - @param value: value of symbolic constant. - @param bmask: bitmask of the constant - ordinary enums accept only ida_enum.DEFMASK as a bitmask - all bits set in value should be set in bmask too - - @return: 0-ok, otherwise error code (one of ENUM_MEMBER_ERROR_*) - -Help on function add_func in module ida_funcs: - -add_func(*args) - add_func(ea1, ea2=BADADDR) -> bool - - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success - -Help on function add_hidden_range in module ida_bytes: - -add_hidden_range(*args) - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success - -Help on function add_idc_hotkey in module ida_kernwin: - -add_idc_hotkey(*args) - add_idc_hotkey(hotkey, idcfunc) -> int - - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes - -Help on function add_segm_ex in module idc: - -add_segm_ex(startea, endea, base, use32, align, comb, flags) - Create a new segment - - @param startea: linear address of the start of the segment - @param endea: linear address of the end of the segment - this address will not belong to the segment - 'endea' should be higher than 'startea' - @param base: base paragraph or selector of the segment. - a paragraph is 16byte memory chunk. - If a selector value is specified, the selector should be - already defined. - @param use32: 0: 16bit segment, 1: 32bit segment, 2: 64bit segment - @param align: segment alignment. see below for alignment values - @param comb: segment combination. see below for combination values. - @param flags: combination of ADDSEG_... bits - - @return: 0-failed, 1-ok - -Help on function add_sourcefile in module ida_lines: - -add_sourcefile(*args) - add_sourcefile(ea1, ea2, filename) -> bool - - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success - -Help on function add_struc in module idc: - -add_struc(index, name, is_union) - Define a new structure type - - @param index: index of new structure type - If another structure has the specified index, - then index of that structure and all other - structures will be incremented, freeing the specifed - index. If index is == -1, then the biggest index - number will be used. - See get_first_struc_idx() for the explanation of - structure indices and IDs. - @param name: name of the new structure type. - @param is_union: 0: structure - 1: union - - @return: -1 if can't define structure type because of - bad structure name: the name is ill-formed or is - already used in the program. - otherwise returns ID of the new structure type - -Help on function add_struc_member in module idc: - -add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, reftype=2) - Add structure member - - @param sid: structure type ID - @param name: name of the new member - @param offset: offset of the new member - -1 means to add at the end of the structure - @param flag: type of the new member. Should be one of - FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA - @param typeid: if is_struct(flag) then typeid specifies the structure id for the member - if is_off0(flag) then typeid specifies the offset base. - if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). - if is_stroff(flag) then typeid specifies the structure id - if is_enum(flag) then typeid specifies the enum id - if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) - Otherwise typeid should be -1. - @param nbytes: number of bytes in the new member - - @param target: target address of the offset expr. You may specify it as - -1, ida will calculate it itself - @param tdelta: offset target delta. usually 0 - @param reftype: see REF_... definitions - - @note: The remaining arguments are allowed only if is_off0(flag) and you want - to specify a complex offset expression - - @return: 0 - ok, otherwise error code (one of STRUC_ERROR_*) - -Help on function add_user_stkpnt in module ida_frame: - -add_user_stkpnt(*args) - add_user_stkpnt(ea, delta) -> bool - - - Add user-defined SP register change point. - - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success - -Help on function append_func_tail in module idc: - -append_func_tail(funcea, ea1, ea2) - Append a function chunk to the function - - @param funcea: any address in the function - @param ea1: start of function tail - @param ea2: end of function tail - @return: 0 if failed, 1 if success - - @note: If a chunk exists at the specified addresses, it must have exactly - the specified boundaries - -Help on function apply_type in module idc: - -apply_type(ea, py_type, flags=1) - Apply the specified type to the address - - @param ea: the address of the object - @param py_type: typeinfo tuple (type, fields) as get_tinfo() returns - or tuple (name, type, fields) as parse_decl() returns - or None - if specified as None, then the - item associated with 'ea' will be deleted. - @param flags: combination of TINFO_... constants or 0 - @return: Boolean - -Help on function ask_seg in module ida_kernwin: - -ask_seg(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_yn in module ida_kernwin: - -ask_yn(*args) - ask_yn(deflt, format) -> int - - - Display a dialog box and get choice from "Yes", "No", "Cancel". - - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . - -Help on function atoa in module idc: - -atoa(ea) - Convert address value to a string - Return address in the form 'seg000:1234' - (the same as in line prefixes) - - @param ea: address to format - -Help on function atol in module idc: - -atol(s) - -Help on function attach_process in module ida_dbg: - -attach_process(*args) - attach_process(pid=pid_t(-1), event_id=-1) -> int - - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - -Help on function auto_mark_range in module ida_auto: - -auto_mark_range(*args) - auto_mark_range(start, end, type) - - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_unmark in module ida_auto: - -auto_unmark(*args) - auto_unmark(start, end, type) - - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_wait in module ida_auto: - -auto_wait(*args) - auto_wait() -> bool - - - Process everything in the queues and return true. - - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) - -Help on function batch in module idc: - -batch(batch) - Enable/disable batch mode of operation - - @param batch: batch mode - 0 - ida will display dialog boxes and wait for the user input - 1 - ida will not display dialog boxes, warnings, etc. - - @return: old balue of batch flag - -Help on function byte_value in module idc: - -byte_value(F) - Get byte value from flags - Get value of byte provided that the byte is initialized. - This macro works ok only for 8-bit byte machines. - -Help on function calc_gtn_flags in module ida_name: - -calc_gtn_flags(fromaddr, ea) - Calculate flags for get_ea_name() function - - @param fromaddr: the referring address. May be BADADDR. - @param ea: linear address - - @return: flags - -Help on function call_system in module idc: - -call_system(command) - Execute an OS command. - - @param command: command line to execute - - @return: error code from OS - - @note: - IDA will wait for the started program to finish. - In order to start the command in parallel, use OS methods. - For example, you may start another program in parallel using - "start" command. - -Help on function can_exc_continue in module idc: - -can_exc_continue() - Can it continue after EXCEPTION event? - - @return: boolean - -Help on function check_bpt in module ida_dbg: - -check_bpt(*args) - check_bpt(ea) -> int - - - Check the breakpoint at the specified address. - - @param ea (C++: ea_t) - @return: one of Breakpoint status codes - -Help on function choose_func in module idc: - -choose_func(title) - Ask the user to select a function - - Arguments: - - @param title: title of the dialog box - - @return: -1 - user refused to select a function - otherwise returns the selected function start address - -Help on function clear_trace in module idc: - -clear_trace(filename) - Clear the current trace buffer - -Help on function create_align in module ida_bytes: - -create_align(*args) - create_align(ea, length, alignment) -> bool - - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) - -Help on function create_array in module idc: - -create_array(name) - Create array. - - @param name: The array name. - - @return: -1 in case of failure, a valid array_id otherwise. - -Help on function create_byte in module idc: - -create_byte(ea) - Convert the current item to a byte - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_custdata in module ida_bytes: - -create_custdata(*args) - create_custdata(ea, length, dtid, fid, force=False) -> bool - - - Convert to custom data type. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) - -Help on function create_data in module ida_bytes: - -create_data(*args) - create_data(ea, dataflag, size, tid) -> bool - - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success - -Help on function create_double in module idc: - -create_double(ea) - Convert the current item to a double floating point (8 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_dword in module idc: - -create_dword(ea) - Convert the current item to a double word (4 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_float in module idc: - -create_float(ea) - Convert the current item to a floating point (4 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_insn in module ida_ua: - -create_insn(*args) - create_insn(ea, out=None) -> int - - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 - -Help on function create_oword in module idc: - -create_oword(ea) - Convert the current item to an octa word (16 bytes/128 bits) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_pack_real in module idc: - -create_pack_real(ea) - Convert the current item to a packed real (10 or 12 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_qword in module idc: - -create_qword(ea) - Convert the current item to a quadro word (8 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_strlit in module idc: - -create_strlit(ea, endea) - Create a string. - - This function creates a string (the string type is determined by the - value of get_inf_attr(INF_STRTYPE)) - - @param ea: linear address - @param endea: ending address of the string (excluded) - if endea == BADADDR, then length of string will be calculated - by the kernel - - @return: 1-ok, 0-failure - - @note: The type of an existing string is returned by get_str_type() - -Help on function create_struct in module idc: - -create_struct(ea, size, strname) - Convert the current item to a structure instance - - @param ea: linear address - @param size: structure size in bytes. -1 means that the size - will be calculated automatically - @param strname: name of a structure type - - @return: 1-ok, 0-failure - -Help on function create_tbyte in module idc: - -create_tbyte(ea) - Convert the current item to a tbyte (10 or 12 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_word in module idc: - -create_word(ea) - Convert the current item to a word (2 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_yword in module idc: - -create_yword(ea) - Convert the current item to a ymm word (32 bytes/256 bits) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function define_exception in module ida_dbg: - -define_exception(*args) - define_exception(code, name, desc, flags) -> char const * - - - Convenience function: define new exception code. - - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds - -Help on function define_local_var in module idc: - -define_local_var(start, end, location, name) - Create a local variable - - @param start: start of address range for the local variable - @param end: end of address range for the local variable - @param location: the variable location in the "[bp+xx]" form where xx is - a number. The location can also be specified as a - register name. - @param name: name of the local variable - - @return: 1-ok, 0-failure - - @note: For the stack variables the end address is ignored. - If there is no function at 'start' then this function. - will fail. - -Help on function del_array_element in module idc: - -del_array_element(tag, array_id, idx) - Delete an array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of an element. - - @return: 1 in case of success, 0 otherwise. - -Help on function del_bpt in module ida_dbg: - -del_bpt(*args) - del_bpt(ea) -> bool - del_bpt(bptloc) -> bool - - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - -Help on function del_cref in module ida_xref: - -del_cref(*args) - del_cref(frm, to, expand) -> int - - - Delete a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - -Help on function del_dref in module ida_xref: - -del_dref(*args) - del_dref(frm, to) - - - Delete a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - -Help on function del_enum in module ida_enum: - -del_enum(*args) - del_enum(id) - - - Delete an enum type. - - - @param id (C++: enum_t) - -Help on function del_enum_member in module idc: - -del_enum_member(enum_id, value, serial, bmask) - Delete a member of enum - a symbolic constant - - @param enum_id: id of enum - @param value: value of symbolic constant. - @param serial: serial number of the constant in the - enumeration. See op_enum() for for details. - @param bmask: bitmask of the constant ordinary enums accept - only ida_enum.DEFMASK as a bitmask - - @return: 1-ok, 0-failed - -Help on function del_extra_cmt in module ida_lines: - -del_extra_cmt(*args) - del_extra_cmt(ea, what) - -Help on function del_fixup in module ida_fixup: - -del_fixup(*args) - del_fixup(source) - - - Delete fixup information. - - - @param source (C++: ea_t) - -Help on function del_func in module ida_funcs: - -del_func(*args) - del_func(ea) -> bool - - - Delete a function. - - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success - -Help on function del_hash_string in module idc: - -del_hash_string(hash_id, key) - Delete a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element - - @return: 1 upon success, 0 otherwise. - -Help on function del_hidden_range in module ida_bytes: - -del_hidden_range(*args) - del_hidden_range(ea) -> bool - - - Delete hidden range. - - @param ea: any address in the hidden range (C++: ea_t) - @return: success - -Help on function del_idc_hotkey in module ida_kernwin: - -del_idc_hotkey(*args) - del_idc_hotkey(hotkey) -> bool - - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - -Help on function del_items in module ida_bytes: - -del_items(*args) - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false - -Help on function del_segm in module ida_segment: - -del_segm(*args) - del_segm(ea, flags) -> bool - - - Delete a segment. - - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function del_selector in module ida_segment: - -del_selector(*args) - del_selector(selector) - - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) - -Help on function del_source_linnum in module ida_nalt: - -del_source_linnum(*args) - del_source_linnum(ea) - -Help on function del_sourcefile in module ida_lines: - -del_sourcefile(*args) - del_sourcefile(ea) -> bool - - - Delete information about the source file. - - @param ea: linear address (C++: ea_t) - @return: success - -Help on function del_stkpnt in module idc: - -del_stkpnt(func_ea, ea) - Delete SP register change point - - @param func_ea: function start - @param ea: linear address - @return: 1-ok, 0-failed - -Help on function del_struc in module idc: - -del_struc(sid) - Delete a structure type - - @param sid: structure type ID - - @return: 0 if bad structure type ID is passed - 1 otherwise the structure type is deleted. All data - and other structure types referencing to the - deleted structure type will be displayed as array - of bytes. - -Help on function del_struc_member in module idc: - -del_struc_member(sid, member_offset) - Delete structure member - - @param sid: structure type ID - @param member_offset: offset of the member - - @return: != 0 - ok. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - -Help on function delete_all_segments in module idc: - -delete_all_segments() - Delete all segments, instructions, comments, i.e. everything - except values of bytes. - -Help on function delete_array in module idc: - -delete_array(array_id) - Delete array, by its ID. - - @param array_id: The ID of the array to delete. - -Help on function demangle_name in module idc: - -demangle_name(name, disable_mask) - demangle_name a name - - @param name: name to demangle - @param disable_mask: a mask that tells how to demangle the name - it is a good idea to get this mask using - get_inf_attr(INF_SHORT_DN) or get_inf_attr(INF_LONG_DN) - - @return: a demangled name - If the input name cannot be demangled, returns None - -Help on function detach_process in module ida_dbg: - -detach_process(*args) - detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } - -Help on function diff_trace_file in module ida_dbg: - -diff_trace_file(*args) - diff_trace_file(nonnul_filename) -> bool - - - Show difference between the current trace and the one from 'filename'. - -Help on function enable_bpt in module ida_dbg: - -enable_bpt(*args) - enable_bpt(ea, enable=True) -> bool - enable_bpt(bptloc, enable=True) -> bool - -Help on function enable_tracing in module idc: - -enable_tracing(trace_level, enable) - Enable step tracing - - @param trace_level: what kind of trace to modify - @param enable: 0: turn off, 1: turn on - - @return: success - -Help on function error in module ida_kernwin: - -error(*args) - error(format) - - - Display a fatal message in a message box and quit IDA - - @param format: message to print - -Help on function eval_idc in module idc: - -eval_idc(expr) - Evaluate an IDC expression - - @param expr: an expression - - @return: the expression value. If there are problems, the returned value will be "IDC_FAILURE: xxx" - where xxx is the error description - - @note: Python implementation evaluates IDC only, while IDC can call other registered languages - -Help on function exit_process in module ida_dbg: - -exit_process(*args) - exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } - -Help on function expand_struc in module idc: - -expand_struc(sid, offset, delta, recalc) - Expand or shrink a structure type - @param id: structure type ID - @param offset: offset in the structure - @param delta: how many bytes to add or remove - @param recalc: recalculate the locations where the structure - type is used - @return: != 0 - ok - -Help on function fclose in module idc: - -fclose(handle) - -Help on function fgetc in module idc: - -fgetc(handle) - -Help on function filelength in module idc: - -filelength(handle) - -Help on function find_binary in module idc: - -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) - -Help on function find_code in module ida_search: - -find_code(*args) - find_code(ea, sflag) -> ea_t - - - Find next code address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_data in module ida_search: - -find_data(*args) - find_data(ea, sflag) -> ea_t - - - Find next data address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_defined in module ida_search: - -find_defined(*args) - find_defined(ea, sflag) -> ea_t - - - Find next ea that is the start of an instruction or data. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_func_end in module idc: - -find_func_end(ea) - Determine a new function boundaries - - @param ea: starting address of a new function - - @return: if a function already exists, then return its end address. - If a function end cannot be determined, the return BADADDR - otherwise return the end address of the new function - -Help on function find_imm in module ida_search: - -find_imm(*args) - find_imm(newEA, sflag, srchValue) -> ea_t - - - Find next immediate operand with the given value. - - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) - -Help on function find_selector in module idc: - -find_selector(val) - Find a selector which has the specifed value - - @param val: value to search for - - @return: the selector number if found, - otherwise the input value (val & 0xFFFF) - - @note: selector values are always in paragraphs - -Help on function find_suspop in module ida_search: - -find_suspop(*args) - find_suspop(ea, sflag) -> ea_t - - - Find next suspicious operand. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_text in module idc: - -find_text(ea, flag, y, x, searchstr, from_bc695=False) - -Help on function find_unknown in module ida_search: - -find_unknown(*args) - find_unknown(ea, sflag) -> ea_t - - - Find next unexplored address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function first_func_chunk in module idc: - -first_func_chunk(funcea) - Get the first function chunk of the specified function - - @param funcea: any address in the function - - @return: the function entry point or BADADDR - - @note: This function returns the first (main) chunk of the specified function - -Help on function fopen in module idc: - -fopen(f, mode) - #---------------------------------------------------------------------------- - # F I L E I / O - #---------------------------------------------------------------------------- - -Help on function force_bl_call in module idc: - -force_bl_call(ea) - Force BL instruction to be a call - - @param ea: address of the BL instruction - - @return: 1-ok, 0-failed - -Help on function force_bl_jump in module idc: - -force_bl_jump(ea) - Some ARM compilers in Thumb mode use BL (branch-and-link) - instead of B (branch) for long jumps, since BL has more range. - By default, IDA tries to determine if BL is a jump or a call. - You can override IDA's decision using commands in Edit/Other menu - (Force BL call/Force BL jump) or the following two functions. - - Force BL instruction to be a jump - - @param ea: address of the BL instruction - - @return: 1-ok, 0-failed - -Help on function form in module idc: - -form(format, *args) - -Help on function fprintf in module idc: - -fprintf(handle, format, *args) - -Help on function fputc in module idc: - -fputc(byte, handle) - -Help on function fseek in module idc: - -fseek(handle, offset, origin) - -Help on function ftell in module idc: - -ftell(handle) - -Help on function func_contains in module idc: - -func_contains(func_ea, ea) - Does the given function contain the given address? - - @param func_ea: any address belonging to the function - @param ea: linear address - - @return: success - -Help on function gen_file in module idc: - -gen_file(filetype, path, ea1, ea2, flags) - Generate an output file - - @param filetype: type of output file. One of OFILE_... symbols. See below. - @param path: the output file path (will be overwritten!) - @param ea1: start address. For some file types this argument is ignored - @param ea2: end address. For some file types this argument is ignored - @param flags: bit combination of GENFLG_... - - @returns: number of the generated lines. - -1 if an error occurred - OFILE_EXE: 0-can't generate exe file, 1-ok - -Help on function gen_flow_graph in module idc: - -gen_flow_graph(outfile, title, ea1, ea2, flags) - Generate a flow chart GDL file - - @param outfile: output file name. GDL extension will be used - @param title: graph title - @param ea1: beginning of the range to flow chart - @param ea2: end of the range to flow chart. - @param flags: combination of CHART_... constants - - @note: If ea2 == BADADDR then ea1 is treated as an address within a function. - That function will be flow charted. - -Help on function gen_simple_call_chart in module idc: - -gen_simple_call_chart(outfile, title, flags) - Generate a function call graph GDL file - - @param outfile: output file name. GDL extension will be used - @param title: graph title - @param flags: combination of CHART_GEN_GDL, CHART_WINGRAPH, CHART_NOLIBFUNCS - -Help on function generate_disasm_line in module idc: - -generate_disasm_line(ea, flags) - Get disassembly line - - @param ea: linear address of instruction - - @param flags: combination of the GENDSM_ flags, or 0 - - @return: "" - could not decode instruction at the specified location - - @note: this function may not return exactly the same mnemonics - as you see on the screen. - -Help on function get_array_element in module idc: - -get_array_element(tag, array_id, idx) - Get value of array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of an element. - - @return: Value of the specified array element. Note that - this function may return char or long result. Unexistent - array elements give zero as a result. - -Help on function get_array_id in module idc: - -get_array_id(name) - Get array array_id, by name. - - @param name: The array name. - - @return: -1 in case of failure (i.e., no array with that - name exists), a valid array_id otherwise. - -Help on function get_bmask_cmt in module idc: - -get_bmask_cmt(enum_id, bmask, repeatable) - Get bitmask comment (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - @param repeatable: type of comment, 0-regular, 1-repeatable - - @return: comment attached to bitmask or None - -Help on function get_bmask_name in module idc: - -get_bmask_name(enum_id, bmask) - Get bitmask name (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - - @return: name of bitmask or None - -Help on function get_marked_pos in module ida_idc: - -get_marked_pos(*args) - get_marked_pos(slot) -> ea_t - -Help on function get_mark_comment in module ida_idc: - -get_mark_comment(*args) - get_mark_comment(slot) -> PyObject * - -Help on function get_bpt_attr in module idc: - -get_bpt_attr(ea, bptattr) - Get the characteristics of a breakpoint - - @param ea: any address in the breakpoint range - @param bptattr: the desired attribute code, one of BPTATTR_... constants - - @return: the desired attribute value or -1 - -Help on function get_bpt_ea in module idc: - -get_bpt_ea(n) - Get breakpoint address - - @param n: number of breakpoint, is in range 0..get_bpt_qty()-1 - - @return: address of the breakpoint or BADADDR - -Help on function get_bpt_qty in module ida_dbg: - -get_bpt_qty(*args) - get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - -Help on function get_bpt_tev_ea in module ida_dbg: - -get_bpt_tev_ea(*args) - get_bpt_tev_ea(n) -> ea_t - - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. - -Help on function get_bytes in module idc: - -get_bytes(ea, size, use_dbg=False) - Return the specified number of bytes of the program - - @param ea: linear address - - @param size: size of buffer in normal 8-bit bytes - - @param use_dbg: if True, use debugger memory, otherwise just the database - - @return: None on failure - otherwise a string containing the read bytes - -Help on function get_call_tev_callee in module ida_dbg: - -get_call_tev_callee(*args) - get_call_tev_callee(n) -> ea_t - - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. - -Help on function get_color in module idc: - -get_color(ea, what) - Get item color - - @param ea: address of the item - @param what: type of the item (one of CIC_* constants) - - @return: color code in RGB (hex 0xBBGGRR) - -Help on function get_curline in module idc: - -get_curline() - Get the disassembly line at the cursor - - @return: string - -Help on function get_current_thread in module ida_dbg: - -get_current_thread(*args) - get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_db_byte in module ida_bytes: - -get_db_byte(*args) - get_db_byte(ea) -> uchar - - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) - -Help on function get_debugger_event_cond in module ida_dbg: - -get_debugger_event_cond(*args) - get_debugger_event_cond() -> char const * - -Help on function get_entry in module ida_entry: - -get_entry(*args) - get_entry(ord) -> ea_t - - - Get entry point address by its ordinal - - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR - -Help on function get_entry_name in module ida_entry: - -get_entry_name(*args) - get_entry_name(ord) -> str - - - Get name of the entry point by its ordinal. - - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 - -Help on function get_entry_ordinal in module ida_entry: - -get_entry_ordinal(*args) - get_entry_ordinal(idx) -> uval_t - - - Get ordinal number of an entry point. - - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. - -Help on function get_entry_qty in module ida_entry: - -get_entry_qty(*args) - get_entry_qty() -> size_t - - - Get number of entry points. - -Help on function get_enum in module ida_enum: - -get_enum(*args) - get_enum(name) -> enum_t - - - Get enum by name. - - - @param name (C++: const char *) - -Help on function get_enum_cmt in module ida_enum: - -get_enum_cmt(*args) - get_enum_cmt(id, repeatable) -> str - - - Get enum comment. - - - @param id (C++: enum_t) - @param repeatable (C++: bool) - -Help on function get_enum_flag in module ida_enum: - -get_enum_flag(*args) - get_enum_flag(id) -> flags_t - - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) - -Help on function get_enum_idx in module ida_enum: - -get_enum_idx(*args) - get_enum_idx(id) -> uval_t - - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) - -Help on function get_enum_member in module idc: - -get_enum_member(enum_id, value, serial, bmask) - Get id of constant - - @param enum_id: id of enum - @param value: value of constant - @param serial: serial number of the constant in the - enumeration. See op_enum() for details. - @param bmask: bitmask of the constant - ordinary enums accept only ida_enum.DEFMASK as a bitmask - - @return: id of constant or -1 if error - -Help on function get_enum_member_bmask in module ida_enum: - -get_enum_member_bmask(*args) - get_enum_member_bmask(id) -> bmask_t - - - Get bitmask of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_by_name in module ida_enum: - -get_enum_member_by_name(*args) - get_enum_member_by_name(name) -> const_t - - - Get a reference to an enum member by its name. - - - @param name (C++: const char *) - -Help on function get_enum_member_cmt in module idc: - -get_enum_member_cmt(const_id, repeatable) - Get comment of a constant - - @param const_id: id of const - @param repeatable: 0:get regular comment, 1:get repeatable comment - - @return: comment string - -Help on function get_enum_member_enum in module ida_enum: - -get_enum_member_enum(*args) - get_enum_member_enum(id) -> enum_t - - - Get the parent enum of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_name in module idc: - -get_enum_member_name(const_id) - Get name of a constant - - @param const_id: id of const - - Returns: name of constant - -Help on function get_enum_member_value in module ida_enum: - -get_enum_member_value(*args) - get_enum_member_value(id) -> uval_t - - - Get value of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_name in module ida_enum: - -get_enum_name(*args) - get_enum_name(id) -> str - - - Get name of enum. - - - @param id (C++: enum_t) - -Help on function get_enum_qty in module ida_enum: - -get_enum_qty(*args) - get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. - -Help on function get_enum_size in module ida_enum: - -get_enum_size(*args) - get_enum_size(id) -> size_t - - - Get the number of the members of the enum. - - - @param id (C++: enum_t) - -Help on function get_enum_width in module ida_enum: - -get_enum_width(*args) - get_enum_width(id) -> size_t - - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) - -Help on function get_event_bpt_hea in module idc: - -get_event_bpt_hea() - Get hardware address for BREAKPOINT event - - @return: hardware address - -Help on function get_event_ea in module idc: - -get_event_ea() - Get ea for debug event - - @return: ea - -Help on function get_event_exc_code in module idc: - -get_event_exc_code() - Get exception code for EXCEPTION event - - @return: exception code - -Help on function get_event_exc_ea in module idc: - -get_event_exc_ea() - Get address for EXCEPTION event - - @return: adress of exception - -Help on function get_event_exc_info in module idc: - -get_event_exc_info() - Get info for EXCEPTION event - - @return: info string - -Help on function get_event_exit_code in module idc: - -get_event_exit_code() - Get exit code for debug event - - @return: exit code for PROCESS_EXITED, THREAD_EXITED events - -Help on function get_event_id in module idc: - -get_event_id() - Get ID of debug event - - @return: event ID - -Help on function get_event_info in module idc: - -get_event_info() - Get debug event info - - @return: event info: for THREAD_STARTED (thread name) - for LIB_UNLOADED (unloaded library name) - for INFORMATION (message to display) - -Help on function get_event_module_base in module idc: - -get_event_module_base() - Get module base for debug event - - @return: module base - -Help on function get_event_module_name in module idc: - -get_event_module_name() - Get module name for debug event - - @return: module name - -Help on function get_event_module_size in module idc: - -get_event_module_size() - Get module size for debug event - - @return: module size - -Help on function get_event_pid in module idc: - -get_event_pid() - Get process ID for debug event - - @return: process ID - -Help on function get_event_tid in module idc: - -get_event_tid() - Get type ID for debug event - - @return: type ID - -Help on function get_extra_cmt in module ida_lines: - -get_extra_cmt(*args) - get_extra_cmt(ea, what) -> ssize_t - -Help on function get_fchunk_attr in module idc: - -get_fchunk_attr(ea, attr) - Get a function chunk attribute - - @param ea: any address in the chunk - @param attr: one of: FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER, FUNCATTR_REFQTY - - @return: desired attribute or -1 - -Help on function get_fchunk_referer in module ida_funcs: - -get_fchunk_referer(*args) - get_fchunk_referer(ea, idx) -> ea_t - -Help on function get_first_bmask in module ida_enum: - -get_first_bmask(*args) - get_first_bmask(id) -> bmask_t - - - Get first bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK - -Help on function get_first_cref_from in module ida_xref: - -get_first_cref_from(*args) - get_first_cref_from(frm) -> ea_t - - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . - -Help on function get_first_cref_to in module ida_xref: - -get_first_cref_to(*args) - get_first_cref_to(to) -> ea_t - - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_first_dref_from in module ida_xref: - -get_first_dref_from(*args) - get_first_dref_from(frm) -> ea_t - - - Get first data referenced from the specified address. - - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. - -Help on function get_first_dref_to in module ida_xref: - -get_first_dref_to(*args) - get_first_dref_to(to) -> ea_t - - - Get address of instruction/data referencing to the specified data. - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_first_enum_member in module idc: - -get_first_enum_member(enum_id, bmask) - Get first constant in the enum - - @param enum_id: id of enum - @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) - - @return: value of constant or idaapi.BADNODE no constants are defined - All constants are sorted by their values as unsigned longs. - -Help on function get_first_fcref_from in module ida_xref: - -get_first_fcref_from(*args) - get_first_fcref_from(frm) -> ea_t - -Help on function get_first_fcref_to in module ida_xref: - -get_first_fcref_to(*args) - get_first_fcref_to(to) -> ea_t - -Help on function get_first_hash_key in module idc: - -get_first_hash_key(hash_id) - Get the first key in the hash. - - @param hash_id: The hash ID. - - @return: the key, 0 otherwise. - -Help on function get_first_index in module idc: - -get_first_index(tag, array_id) - Get index of the first existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - - @return: -1 if the array is empty, otherwise index of first array - element of given type. - -Help on function get_first_member in module idc: - -get_first_member(sid) - Get offset of the first member of a structure - - @param sid: structure type ID - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if structure has no members, - otherwise returns offset of the first member. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_first_module in module idc: - -get_first_module() - Enumerate process modules - - @return: first module's base address or None on failure - -Help on function get_first_seg in module idc: - -get_first_seg() - Get first segment - - @return: address of the start of the first segment - BADADDR - no segments are defined - -Help on function get_first_struc_idx in module ida_struct: - -get_first_struc_idx(*args) - get_first_struc_idx() -> uval_t - - - Get index of first structure. - - @return: BADADDR if no known structures, 0 otherwise - -Help on function get_fixup_target_dis in module idc: - -get_fixup_target_dis(ea) - Get fixup target displacement - - @param ea: address to get information about - - @return: 0 - no fixup at the specified address - otherwise returns fixup target displacement - -Help on function get_fixup_target_flags in module idc: - -get_fixup_target_flags(ea) - Get fixup target flags - - @param ea: address to get information about - - @return: 0 - no fixup at the specified address - otherwise returns fixup target flags - -Help on function get_fixup_target_off in module idc: - -get_fixup_target_off(ea) - Get fixup target offset - - @param ea: address to get information about - - @return: BADADDR - no fixup at the specified address - otherwise returns fixup target offset - -Help on function get_fixup_target_sel in module idc: - -get_fixup_target_sel(ea) - Get fixup target selector - - @param ea: address to get information about - - @return: BADSEL - no fixup at the specified address - otherwise returns fixup target selector - -Help on function get_fixup_target_type in module idc: - -get_fixup_target_type(ea) - Get fixup target type - - @param ea: address to get information about - - @return: 0 - no fixup at the specified address - otherwise returns fixup type - -Help on function get_forced_operand in module ida_bytes: - -get_forced_operand(*args) - get_forced_operand(ea, n) -> str - - - Get forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 - -Help on function get_frame_args_size in module idc: - -get_frame_args_size(ea) - Get size of arguments in function frame which are purged upon return - - @param ea: any address belonging to the function - - @return: Size of function arguments in bytes. - If the function doesn't have a frame, return 0 - If the function does't exist, return -1 - -Help on function get_frame_id in module idc: - -get_frame_id(ea) - Get ID of function frame structure - - @param ea: any address belonging to the function - - @return: ID of function frame or None In order to access stack variables - you need to use structure member manipulaion functions with the - obtained ID. - -Help on function get_frame_lvar_size in module idc: - -get_frame_lvar_size(ea) - Get size of local variables in function frame - - @param ea: any address belonging to the function - - @return: Size of local variables in bytes. - If the function doesn't have a frame, return 0 - If the function does't exist, return None - -Help on function get_frame_regs_size in module idc: - -get_frame_regs_size(ea) - Get size of saved registers in function frame - - @param ea: any address belonging to the function - - @return: Size of saved registers in bytes. - If the function doesn't have a frame, return 0 - This value is used as offset for BP (if FUNC_FRAME is set) - If the function does't exist, return None - -Help on function get_frame_size in module idc: - -get_frame_size(ea) - Get full size of function frame - - @param ea: any address belonging to the function - @returns: Size of function frame in bytes. - This function takes into account size of local - variables + size of saved registers + size of - return address + size of function arguments - If the function doesn't have a frame, return size of - function return address in the stack. - If the function does't exist, return 0 - -Help on function get_full_flags in module ida_bytes: - -get_full_flags(*args) - get_full_flags(ea) -> flags_t - - - Get flags value for address 'ea'. - - @param ea (C++: ea_t) - @return: 0 if address is not present in the program - -Help on function get_func_attr in module idc: - -get_func_attr(ea, attr) - Get a function attribute - - @param ea: any address belonging to the function - @param attr: one of FUNCATTR_... constants - - @return: BADADDR - error otherwise returns the attribute value - -Help on function get_func_cmt in module idc: - -get_func_cmt(ea, repeatable) - Retrieve function comment - - @param ea: any address belonging to the function - @param repeatable: 1: get repeatable comment - 0: get regular comment - - @return: function comment string - -Help on function get_func_flags in module idc: - -get_func_flags(ea) - Retrieve function flags - - @param ea: any address belonging to the function - - @return: -1 - function doesn't exist otherwise returns the flags - -Help on function get_func_name in module idc: - -get_func_name(ea) - Retrieve function name - - @param ea: any address belonging to the function - - @return: null string - function doesn't exist - otherwise returns function name - -Help on function get_func_off_str in module idc: - -get_func_off_str(ea) - Convert address to 'funcname+offset' string - - @param ea: address to convert - - @return: if the address belongs to a function then return a string - formed as 'name+offset' where 'name' is a function name - 'offset' is offset within the function else return null string - -Help on function get_hash_long in module idc: - -get_hash_long(hash_id, key) - Gets the long value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - - @return: the 32bit or 64bit value of the element, or 0 if no such - element. - -Help on function get_hash_string in module idc: - -get_hash_string(hash_id, key) - Gets the string value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - - @return: the string value of the element, or None if no such - element. - -Help on function get_idb_path in module idc: - -get_idb_path() - Get IDB full path - - This function returns full path of the current IDB database - -Help on function get_inf_attr in module idc: - -get_inf_attr(attr) - -Help on function get_input_file_path in module ida_nalt: - -get_input_file_path(*args) - get_input_file_path() -> str - - - Get full path of the input file. - -Help on function get_item_end in module ida_bytes: - -get_item_end(*args) - get_item_end(ea) -> ea_t - - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) - -Help on function get_item_head in module ida_bytes: - -get_item_head(*args) - get_item_head(ea) -> ea_t - - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) - -Help on function get_item_size in module idc: - -get_item_size(ea) - Get size of instruction or data item in bytes - - @param ea: linear address - - @return: 1..n - -Help on function get_last_bmask in module ida_enum: - -get_last_bmask(*args) - get_last_bmask(id) -> bmask_t - - - Get last bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK - -Help on function get_last_enum_member in module idc: - -get_last_enum_member(enum_id, bmask) - Get last constant in the enum - - @param enum_id: id of enum - @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) - - @return: value of constant or idaapi.BADNODE no constants are defined - All constants are sorted by their values - as unsigned longs. - -Help on function get_last_hash_key in module idc: - -get_last_hash_key(hash_id) - Get the last key in the hash. - - @param hash_id: The hash ID. - - @return: the key, 0 otherwise. - -Help on function get_last_index in module idc: - -get_last_index(tag, array_id) - Get index of last existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - - @return: -1 if the array is empty, otherwise index of first array - element of given type. - -Help on function get_last_member in module idc: - -get_last_member(sid) - Get offset of the last member of a structure - - @param sid: structure type ID - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if structure has no members, - otherwise returns offset of the last member. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_last_struc_idx in module ida_struct: - -get_last_struc_idx(*args) - get_last_struc_idx() -> uval_t - - - Get index of last structure. - - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise - -Help on function get_local_tinfo in module idc: - -get_local_tinfo(ordinal) - Get local type information as 'typeinfo' object - - @param ordinal: slot number (1...NumberOfLocalTypes) - @return: None on failure, or (type, fields) tuple. - -Help on function get_manual_insn in module ida_bytes: - -get_manual_insn(*args) - get_manual_insn(ea) -> str - - - Retrieve the user-specified string for the manual instruction. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 - -Help on function get_member_cmt in module idc: - -get_member_cmt(sid, member_offset, repeatable) - Get comment of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - @param repeatable: 1: get repeatable comment - 0: get regular comment - - @return: None if bad structure type ID is passed - or no such member in the structure - otherwise returns comment of the specified member. - -Help on function get_member_flag in module idc: - -get_member_flag(sid, member_offset) - Get type of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: -1 if bad structure type ID is passed - or no such member in the structure - otherwise returns type of the member, see bit - definitions above. If the member type is a structure - then function GetMemberStrid() should be used to - get the structure type id. - -Help on function get_member_id in module idc: - -get_member_id(sid, member_offset) - @param sid: structure type ID - @param member_offset:. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: -1 if bad structure type ID is passed or there is - no member at the specified offset. - otherwise returns the member id. - -Help on function get_member_name in module idc: - -get_member_name(sid, member_offset) - Get name of a member of a structure - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: None if bad structure type ID is passed - or no such member in the structure - otherwise returns name of the specified member. - -Help on function get_member_offset in module idc: - -get_member_offset(sid, member_name) - Get offset of a member of a structure by the member name - - @param sid: structure type ID - @param member_name: name of structure member - - @return: -1 if bad structure type ID is passed - or no such member in the structure - otherwise returns offset of the specified member. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_member_qty in module idc: - -get_member_qty(sid) - Get number of members of a structure - - @param sid: structure type ID - - @return: -1 if bad structure type ID is passed otherwise - returns number of members. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_member_size in module idc: - -get_member_size(sid, member_offset) - Get size of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: None if bad structure type ID is passed, - or no such member in the structure - otherwise returns size of the specified - member in bytes. - -Help on function get_member_strid in module idc: - -get_member_strid(sid, member_offset) - Get structure id of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - @return: -1 if bad structure type ID is passed - or no such member in the structure - otherwise returns structure id of the member. - If the current member is not a structure, returns -1. - -Help on function get_min_spd_ea in module idc: - -get_min_spd_ea(func_ea) - Return the address with the minimal spd (stack pointer delta) - If there are no SP change points, then return BADADDR. - - @param func_ea: function start - @return: BADDADDR - no such function - -Help on function get_module_name in module idc: - -get_module_name(base) - Get process module name - - @param base: the base address of the module - - @return: required info or None - -Help on function get_module_size in module idc: - -get_module_size(base) - Get process module size - - @param base: the base address of the module - - @return: required info or -1 - -Help on function get_name in module idc: - -get_name(ea, gtn_flags=0) - Get name at the specified address - - @param ea: linear address - @param gtn_flags: how exactly the name should be retrieved. - combination of GN_ bits - - @return: "" - byte has no name - -Help on function get_name_ea in module ida_name: - -get_name_ea(*args) - get_name_ea(_from, name) -> ea_t - - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR - -Help on function get_name_ea_simple in module idc: - -get_name_ea_simple(name) - Get linear address of a name - - @param name: name of program byte - - @return: address of the name - BADADDR - No such name - -Help on function get_next_bmask in module ida_enum: - -get_next_bmask(*args) - get_next_bmask(id, bmask) -> bmask_t - - - Get next bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK - -Help on function get_next_cref_from in module ida_xref: - -get_next_cref_from(*args) - get_next_cref_from(frm, current) -> ea_t - - - Get next instruction referenced from the specified instruction. - - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. - -Help on function get_next_cref_to in module ida_xref: - -get_next_cref_to(*args) - get_next_cref_to(to, current) -> ea_t - - - Get next instruction referencing to the specified instruction. - - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_next_dref_from in module ida_xref: - -get_next_dref_from(*args) - get_next_dref_from(frm, current) -> ea_t - - - Get next data referenced from the specified address. - - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference - -Help on function get_next_dref_to in module ida_xref: - -get_next_dref_to(*args) - get_next_dref_to(to, current) -> ea_t - - - Get address of instruction/data referencing to the specified data - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_next_enum_member in module idc: - -get_next_enum_member(enum_id, value, bmask) - Get next constant in the enum - - @param enum_id: id of enum - @param bmask: bitmask of the constant ordinary enums accept only ida_enum.DEFMASK as a bitmask - @param value: value of the current constant - - @return: value of a constant with value higher than the specified - value. idaapi.BADNODE no such constants exist. - All constants are sorted by their values as unsigned longs. - -Help on function get_next_fchunk in module idc: - -get_next_fchunk(ea) - Get next function chunk - - @param ea: any address - - @return: the starting address of the next function chunk or BADADDR - - @note: This function enumerates all chunks of all functions in the database - -Help on function get_next_fcref_from in module ida_xref: - -get_next_fcref_from(*args) - get_next_fcref_from(frm, current) -> ea_t - -Help on function get_next_fcref_to in module ida_xref: - -get_next_fcref_to(*args) - get_next_fcref_to(to, current) -> ea_t - -Help on function get_next_fixup_ea in module ida_fixup: - -get_next_fixup_ea(*args) - get_next_fixup_ea(ea) -> ea_t - - - Find next address with fixup information - - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR - -Help on function get_next_func in module idc: - -get_next_func(ea) - Find next function - - @param ea: any address belonging to the function - - @return: BADADDR - no more functions - otherwise returns the next function start address - -Help on function get_next_hash_key in module idc: - -get_next_hash_key(hash_id, key) - Get the next key in the hash. - - @param hash_id: The hash ID. - @param key: The current key. - - @return: the next key, 0 otherwise - -Help on function get_next_index in module idc: - -get_next_index(tag, array_id, idx) - Get index of the next existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of the current element. - - @return: -1 if no more elements, otherwise returns index of the - next array element of given type. - -Help on function get_next_module in module idc: - -get_next_module(base) - Enumerate process modules - - @param base: previous module's base address - - @return: next module's base address or None on failure - -Help on function get_next_offset in module idc: - -get_next_offset(sid, offset) - Get next offset in a structure - - @param sid: structure type ID - @param offset: current offset - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if no (more) offsets in the structure, - otherwise returns next offset in a structure. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - This function returns a member offset or a hole offset. - It will return size of the structure if input - 'offset' belongs to the last member of the structure. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_next_seg in module idc: - -get_next_seg(ea) - Get next segment - - @param ea: linear address - - @return: start of the next segment - BADADDR - no next segment - -Help on function get_next_struc_idx in module ida_struct: - -get_next_struc_idx(*args) - get_next_struc_idx(idx) -> uval_t - - - Get next struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ - -Help on function get_numbered_type_name in module idc: - -get_numbered_type_name(ordinal) - Retrieve a local type name - - @param ordinal: slot number (1...NumberOfLocalTypes) - - returns: local type name or None - -Help on function get_operand_type in module idc: - -get_operand_type(ea, n) - Get type of instruction operand - - @param ea: linear address of instruction - @param n: number of operand: - 0 - the first operand - 1 - the second operand - - @return: any of o_* constants or -1 on error - -Help on function get_operand_value in module idc: - -get_operand_value(ea, n) - Get number used in the operand - - This function returns an immediate number used in the operand - - @param ea: linear address of instruction - @param n: the operand number - - @return: value - operand is an immediate value => immediate value - operand has a displacement => displacement - operand is a direct memory ref => memory address - operand is a register => register number - operand is a register phrase => phrase number - otherwise => -1 - -Help on function get_ordinal_qty in module idc: - -get_ordinal_qty() - Get number of local types + 1 - - @return: value >= 1. 1 means that there are no local types. - -Help on function get_original_byte in module ida_bytes: - -get_original_byte(*args) - get_original_byte(ea) -> uint64 - - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) - -Help on function get_prev_bmask in module ida_enum: - -get_prev_bmask(*args) - get_prev_bmask(id, bmask) -> bmask_t - - - Get prev bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK - -Help on function get_prev_enum_member in module idc: - -get_prev_enum_member(enum_id, value, bmask) - Get prev constant in the enum - - @param enum_id: id of enum - @param bmask : bitmask of the constant - ordinary enums accept only ida_enum.DEFMASK as a bitmask - @param value: value of the current constant - - @return: value of a constant with value lower than the specified - value. idaapi.BADNODE no such constants exist. - All constants are sorted by their values as unsigned longs. - -Help on function get_prev_fchunk in module idc: - -get_prev_fchunk(ea) - Get previous function chunk - - @param ea: any address - - @return: the starting address of the function chunk or BADADDR - - @note: This function enumerates all chunks of all functions in the database - -Help on function get_prev_fixup_ea in module ida_fixup: - -get_prev_fixup_ea(*args) - get_prev_fixup_ea(ea) -> ea_t - - - Find previous address with fixup information - - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR - -Help on function get_prev_func in module idc: - -get_prev_func(ea) - Find previous function - - @param ea: any address belonging to the function - - @return: BADADDR - no more functions - otherwise returns the previous function start address - -Help on function get_prev_hash_key in module idc: - -get_prev_hash_key(hash_id, key) - Get the previous key in the hash. - - @param hash_id: The hash ID. - @param key: The current key. - - @return: the previous key, 0 otherwise - -Help on function get_prev_index in module idc: - -get_prev_index(tag, array_id, idx) - Get index of the previous existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of the current element. - - @return: -1 if no more elements, otherwise returns index of the - previous array element of given type. - -Help on function get_prev_offset in module idc: - -get_prev_offset(sid, offset) - Get previous offset in a structure - - @param sid: structure type ID - @param offset: current offset - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if no (more) offsets in the structure, - otherwise returns previous offset in a structure. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - This function returns a member offset or a hole offset. - It will return size of the structure if input - 'offset' is bigger than the structure size. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_prev_struc_idx in module ida_struct: - -get_prev_struc_idx(*args) - get_prev_struc_idx(idx) -> uval_t - - - Get previous struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 - -Help on function get_process_state in module ida_dbg: - -get_process_state(*args) - get_process_state() -> int - - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states - -Help on function get_processes in module ida_dbg: - -get_processes(*args) - get_processes(proclist) -> ssize_t - - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error - -Help on function get_qword in module ida_bytes: - -get_qword(*args) - get_qword(ea) -> uint64 - - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_reg_value in module idc: - -get_reg_value(name) - Get register value - - @param name: the register name - - @note: The debugger should be running. otherwise the function fails - the register name should be valid. - It is not necessary to use this function to get register values - because a register name in the script will do too. - - @return: register value (integer or floating point) - -Help on function get_ret_tev_return in module ida_dbg: - -get_ret_tev_return(*args) - get_ret_tev_return(n) -> ea_t - - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. - -Help on function get_root_filename in module ida_nalt: - -get_root_filename(*args) - get_root_filename() -> str - - - Get file name only of the input file. - -Help on function get_screen_ea in module ida_kernwin: - -get_screen_ea(*args) - get_screen_ea() -> ea_t - - - Get the address at the screen cursor ( 'ui_screenea' ) - -Help on function get_segm_attr in module idc: - -get_segm_attr(segea, attr) - Get segment attribute - - @param segea: any address within segment - @param attr: one of SEGATTR_... constants - -Help on function get_segm_by_sel in module idc: - -get_segm_by_sel(base) - Get segment by segment base - - @param base: segment base paragraph or selector - - @return: linear address of the start of the segment or BADADDR - if no such segment - -Help on function get_segm_end in module idc: - -get_segm_end(ea) - Get end address of a segment - - @param ea: any address in the segment - - @return: end of segment (an address past end of the segment) - BADADDR - the specified address doesn't belong to any segment - -Help on function get_segm_name in module idc: - -get_segm_name(ea) - Get name of a segment - - @param ea: any address in the segment - - @return: "" - no segment at the specified address - -Help on function get_segm_start in module idc: - -get_segm_start(ea) - Get start address of a segment - - @param ea: any address in the segment - - @return: start of segment - BADADDR - the specified address doesn't belong to any segment - -Help on function get_source_linnum in module ida_nalt: - -get_source_linnum(*args) - get_source_linnum(ea) -> uval_t - -Help on function get_sourcefile in module ida_lines: - -get_sourcefile(*args) - get_sourcefile(ea, bounds=None) -> char const * - - - Get name of source file occupying the given address. - - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name - -Help on function get_sp_delta in module idc: - -get_sp_delta(ea) - Get modification of SP made by the instruction - - @param ea: end address of the instruction - i.e.the last address of the instruction+1 - - @return: Get modification of SP made at the specified location - If the specified location doesn't contain a SP change point, return 0 - Otherwise return delta of SP modification - -Help on function get_spd in module idc: - -get_spd(ea) - Get current delta for the stack pointer - - @param ea: end address of the instruction - i.e.the last address of the instruction+1 - - @return: The difference between the original SP upon - entering the function and SP for the specified address - -Help on function get_sreg in module idc: - -get_sreg(ea, reg) - Get value of segment register at the specified address - - @param ea: linear address - @param reg: name of segment register - - @return: the value of the segment register or -1 on error - - @note: The segment registers in 32bit program usually contain selectors, - so to get paragraph pointed to by the segment register you need to - call sel2para() function. - -Help on function get_step_trace_options in module ida_dbg: - -get_step_trace_options(*args) - get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @return: Step trace options - -Help on function get_str_type in module idc: - -get_str_type(ea) - Get string type - - @param ea: linear address - - @return: One of STRTYPE_... constants - -Help on function get_strlit_contents in module idc: - -get_strlit_contents(ea, length=-1, strtype=0) - Get string contents - @param ea: linear address - @param length: string length. -1 means to calculate the max string length - @param strtype: the string type (one of STRTYPE_... constants) - - @return: string contents or empty string - -Help on function get_struc_by_idx in module ida_struct: - -get_struc_by_idx(*args) - get_struc_by_idx(idx) -> tid_t - - - Get struct id by struct number. - - - @param idx (C++: uval_t) - -Help on function get_struc_cmt in module ida_struct: - -get_struc_cmt(*args) - get_struc_cmt(id, repeatable) -> str - - - Get struct comment. - - - @param id (C++: tid_t) - @param repeatable (C++: bool) - -Help on function get_struc_id in module ida_struct: - -get_struc_id(*args) - get_struc_id(name) -> tid_t - - - Get struct id by name. - - - @param name (C++: const char *) - -Help on function get_struc_idx in module ida_struct: - -get_struc_idx(*args) - get_struc_idx(id) -> uval_t - - - Get internal number of the structure. - - - @param id (C++: tid_t) - -Help on function get_struc_name in module ida_struct: - -get_struc_name(*args) - get_struc_name(id, flags=0) -> str - - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) - -Help on function get_struc_qty in module ida_struct: - -get_struc_qty(*args) - get_struc_qty() -> size_t - - - Get number of known structures. - -Help on function get_struc_size in module ida_struct: - -get_struc_size(*args) - get_struc_size(sptr) -> asize_t - get_struc_size(id) -> asize_t - - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) - -Help on function get_tev_ea in module ida_dbg: - -get_tev_ea(*args) - get_tev_ea(n) -> ea_t - -Help on function get_tev_reg_mem in module ida_dbg: - -get_tev_reg_mem(tev, idx) - -Help on function get_tev_reg_mem_ea in module ida_dbg: - -get_tev_reg_mem_ea(tev, idx) - -Help on function get_tev_reg_mem_qty in module ida_dbg: - -get_tev_reg_mem_qty(tev) - -Help on function get_tev_qty in module ida_dbg: - -get_tev_qty(*args) - get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - -Help on function get_tev_reg_val in module ida_dbg: - -get_tev_reg_val(tev, reg) - -Help on function get_tev_tid in module ida_dbg: - -get_tev_tid(*args) - get_tev_tid(n) -> int - -Help on function get_tev_type in module ida_dbg: - -get_tev_type(*args) - get_tev_type(n) -> int - -Help on function get_thread_qty in module ida_dbg: - -get_thread_qty(*args) - get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_tinfo in module idc: - -get_tinfo(ea) - Get type information of function/variable as 'typeinfo' object - - @param ea: the address of the object - @return: None on failure, or (type, fields) tuple. - -Help on function get_trace_file_desc in module ida_dbg: - -get_trace_file_desc(*args) - get_trace_file_desc(filename) -> str - - - Get the file header of the specified trace file. - - - @param filename (C++: const char *) - -Help on function get_type in module idc: - -get_type(ea) - Get type of function/variable - - @param ea: the address of the object - - @return: type string or None if failed - -Help on function get_wide_byte in module ida_bytes: - -get_wide_byte(*args) - get_wide_byte(ea) -> uint64 - - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) - -Help on function get_wide_dword in module ida_bytes: - -get_wide_dword(*args) - get_wide_dword(ea) -> uint64 - - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) - -Help on function get_wide_word in module ida_bytes: - -get_wide_word(*args) - get_wide_word(ea) -> uint64 - - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_xref_type in module idc: - -get_xref_type() - Return type of the last xref obtained by - [RD]first/next[B0] functions. - - @return: constants fl_* or dr_* - -Help on function getn_enum in module ida_enum: - -getn_enum(*args) - getn_enum(n) -> enum_t - - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) - -Help on function getn_thread in module ida_dbg: - -getn_thread(*args) - getn_thread(n) -> thid_t - - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. - -Help on function getn_thread_name in module ida_dbg: - -getn_thread_name(*args) - getn_thread_name(n) -> char const * - - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. - -Help on function guess_type in module idc: - -guess_type(ea) - Guess type of function/variable - - @param ea: the address of the object, can be the structure member id too - - @return: type string or None if failed - -Help on function hasName in module idc: - -hasName(F) - -Help on function hasUserName in module idc: - -hasUserName(F) - -Help on function has_value in module idc: - -has_value(F) - -Help on function here in module idc: - -here() - # Convenience functions: - -Help on function idadir in module idc: - -idadir() - Get IDA directory - - This function returns the directory where IDA.EXE resides - -Help on function import_type in module idc: - -import_type(idx, type_name) - Copy information from type library to database - Copy structure, union, or enum definition from the type library - to the IDA database. - - @param idx: the position of the new type in the list of - types (structures or enums) -1 means at the end of the list - @param type_name: name of type to copy - - @return: BADNODE-failed, otherwise the type id (structure id or enum id) - -Help on function isBin0 in module idc: - -isBin0(F) - -Help on function isBin1 in module idc: - -isBin1(F) - -Help on function isDec0 in module idc: - -isDec0(F) - -Help on function isDec1 in module idc: - -isDec1(F) - -Help on function isExtra in module idc: - -isExtra(F) - -Help on function isHex0 in module idc: - -isHex0(F) - -Help on function isHex1 in module idc: - -isHex1(F) - -Help on function isOct0 in module idc: - -isOct0(F) - -Help on function isOct1 in module idc: - -isOct1(F) - -Help on function isRef in module idc: - -isRef(F) - -Help on function is_align in module idc: - -is_align(F) - -Help on function is_bf in module ida_enum: - -is_bf(*args) - is_bf(id) -> bool - - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) - -Help on function is_byte in module idc: - -is_byte(F) - -Help on function is_char0 in module idc: - -is_char0(F) - -Help on function is_char1 in module idc: - -is_char1(F) - -Help on function is_code in module idc: - -is_code(F) - -Help on function is_data in module idc: - -is_data(F) - -Help on function is_defarg0 in module idc: - -is_defarg0(F) - -Help on function is_defarg1 in module idc: - -is_defarg1(F) - -Help on function is_double in module idc: - -is_double(F) - -Help on function is_dword in module idc: - -is_dword(F) - -Help on function is_enum0 in module idc: - -is_enum0(F) - -Help on function is_enum1 in module idc: - -is_enum1(F) - -Help on function is_event_handled in module idc: - -is_event_handled() - Is the debug event handled? - - @return: boolean - -Help on function is_float in module idc: - -is_float(F) - -Help on function is_flow in module idc: - -is_flow(F) - -Help on function is_head in module idc: - -is_head(F) - -Help on function is_loaded in module idc: - -is_loaded(ea) - Is the byte initialized? - -Help on function is_manual0 in module idc: - -is_manual0(F) - -Help on function is_manual1 in module idc: - -is_manual1(F) - -Help on function is_mapped in module idc: - -is_mapped(ea) - -Help on function is_off0 in module idc: - -is_off0(F) - -Help on function is_off1 in module idc: - -is_off1(F) - -Help on function is_oword in module idc: - -is_oword(F) - -Help on function is_pack_real in module idc: - -is_pack_real(F) - -Help on function is_qword in module idc: - -is_qword(F) - -Help on function is_seg0 in module idc: - -is_seg0(F) - -Help on function is_seg1 in module idc: - -is_seg1(F) - -Help on function is_stkvar0 in module idc: - -is_stkvar0(F) - -Help on function is_stkvar1 in module idc: - -is_stkvar1(F) - -Help on function is_strlit in module idc: - -is_strlit(F) - -Help on function is_stroff0 in module idc: - -is_stroff0(F) - -Help on function is_stroff1 in module idc: - -is_stroff1(F) - -Help on function is_struct in module idc: - -is_struct(F) - -Help on function is_tail in module idc: - -is_tail(F) - -Help on function is_tbyte in module idc: - -is_tbyte(F) - -Help on function is_union in module idc: - -is_union(sid) - Is a structure a union? - - @param sid: structure type ID - - @return: 1: yes, this is a union id - 0: no - - @note: Unions are a special kind of structures - -Help on function is_unknown in module idc: - -is_unknown(F) - -Help on function is_valid_trace_file in module ida_dbg: - -is_valid_trace_file(*args) - is_valid_trace_file(filename) -> bool - - - Is the specified file a valid trace file for the current database? - - - @param filename (C++: const char *) - -Help on function is_word in module idc: - -is_word(F) - -Help on function jumpto in module ida_kernwin: - -jumpto(*args) - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - jumpto(custom_viewer, place, x, y) -> bool - - - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success - -Help on function load_and_run_plugin in module ida_loader: - -load_and_run_plugin(*args) - load_and_run_plugin(name, arg) -> bool - - - Load & run a plugin. - - - @param name (C++: const char *) - @param arg (C++: size_t) - -Help on function load_debugger in module ida_dbg: - -load_debugger(*args) - load_debugger(dbgname, use_remote) -> bool - -Help on function load_trace_file in module ida_dbg: - -load_trace_file(*args) - load_trace_file(filename) -> str - - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) - -Help on function loadfile in module idc: - -loadfile(filepath, pos, ea, size) - -Help on function ltoa in module idc: - -ltoa(n, radix) - -Help on function make_array in module idc: - -make_array(ea, nitems) - Create an array. - - @param ea: linear address - @param nitems: size of array in items - - @note: This function will create an array of the items with the same type as - the type of the item at 'ea'. If the byte at 'ea' is undefined, then - this function will create an array of bytes. - -Help on function move_segm in module idc: - -move_segm(ea, to, flags) - Move a segment to a new address - This function moves all information to the new address - It fixes up address sensitive information in the kernel - The total effect is equal to reloading the segment to the target address - - @param ea: any address within the segment to move - @param to: new segment start address - @param flags: combination MFS_... constants - - @returns: MOVE_SEGM_... error code - -Help on function msg in module ida_kernwin: - -msg(*args) - msg(o) -> PyObject * - - - Display an UTF-8 string in the message window - - The result of the stringification of the arguments - will be treated as an UTF-8 string. - - @param message: message to print (formatting is done in Python) - - This function can be used to debug IDAPython scripts - -Help on function next_addr in module ida_bytes: - -next_addr(*args) - next_addr(ea) -> ea_t - - - Get next address in the program (i.e. next address which has flags). - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function next_func_chunk in module idc: - -next_func_chunk(funcea, tailea) - Get the next function chunk of the specified function - - @param funcea: any address in the function - @param tailea: any address in the current chunk - - @return: the starting address of the next function chunk or BADADDR - - @note: This function returns the next chunk of the specified function - -Help on function next_head in module idc: - -next_head(ea, maxea=BADADDR)↗ - Get next defined item (instruction or data) in the program - - @param ea: linear address to start search from - @param maxea: the search will stop at the address - maxea is not included in the search range - - @return: BADADDR - no (more) defined items - -Help on function next_not_tail in module ida_bytes: - -next_not_tail(*args) - next_not_tail(ea) -> ea_t - - - Get address of next non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function op_bin in module ida_bytes: - -op_bin(*args) - op_bin(ea, n) -> bool - - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_chr in module ida_bytes: - -op_chr(*args) - op_chr(ea, n) -> bool - - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_dec in module ida_bytes: - -op_dec(*args) - op_dec(ea, n) -> bool - - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_enum in module ida_bytes: - -op_enum(*args) - op_enum(ea, n, id, serial) -> bool - - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success - -Help on function op_flt in module ida_bytes: - -op_flt(*args) - op_flt(ea, n) -> bool - - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_hex in module ida_bytes: - -op_hex(*args) - op_hex(ea, n) -> bool - - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function set_forced_operand in module ida_bytes: - -set_forced_operand(*args) - set_forced_operand(ea, n, op) -> bool - - - Set forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) - @return: success - -Help on function op_num in module ida_bytes: - -op_num(*args) - op_num(ea, n) -> bool - - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_oct in module ida_bytes: - -op_oct(*args) - op_oct(ea, n) -> bool - - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_offset in module ida_offset: - -op_offset(*args) - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int - - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) - -Help on function op_offset_high16 in module idc: - -op_offset_high16(ea, n, target) - Convert operand to a high offset - High offset is the upper 16bits of an offset. - This type is used by TMS320C6 processors (and probably by other - RISC processors too) - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - @param target: the full value (all 32bits) of the offset - -Help on function op_plain_offset in module idc: - -op_plain_offset(ea, n, base) - Convert operand to an offset - (for the explanations of 'ea' and 'n' please see op_bin()) - - Example: - ======== - - seg000:2000 dw 1234h - - and there is a segment at paragraph 0x1000 and there is a data item - within the segment at 0x1234: - - seg000:1234 MyString db 'Hello, world!',0 - - Then you need to specify a linear address of the segment base to - create a proper offset: - - op_plain_offset(["seg000",0x2000],0,0x10000); - - and you will have: - - seg000:2000 dw offset MyString - - Motorola 680x0 processor have a concept of "outer offsets". - If you want to create an outer offset, you need to combine number - of the operand with the following bit: - - Please note that the outer offsets are meaningful only for - Motorola 680x0. - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - @param base: base of the offset as a linear address - If base == BADADDR then the current operand becomes non-offset - -Help on function op_seg in module ida_bytes: - -op_seg(*args) - op_seg(ea, n) -> bool - - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stkvar in module ida_bytes: - -op_stkvar(*args) - op_stkvar(ea, n) -> bool - - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stroff in module idc: - -op_stroff(ea, n, strid, delta) - Convert operand to an offset in a structure - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - @param strid: id of a structure type - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the structure. - -Help on function parse_decl in module idc: - -parse_decl(inputtype, flags) - Parse type declaration - - @param inputtype: file name or C declarations (depending on the flags) - @param flags: combination of PT_... constants or 0 - - @return: None on failure or (name, type, fields) tuple - -Help on function parse_decls in module idc: - -parse_decls(inputtype, flags=0) - Parse type declarations - - @param inputtype: file name or C declarations (depending on the flags) - @param flags: combination of PT_... constants or 0 - - @return: number of parsing errors (0 no errors) - -Help on function patch_byte in module ida_bytes: - -patch_byte(*args) - patch_byte(ea, x) -> bool - - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function put_dbg_byte in module ida_dbg: - -put_dbg_byte(*args) - put_dbg_byte(ea, x) -> bool - - - Change one byte of the debugged process memory. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified - -Help on function patch_dword in module ida_bytes: - -patch_dword(*args) - patch_dword(ea, x) -> bool - - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_qword in module ida_bytes: - -patch_qword(*args) - patch_qword(ea, x) -> bool - - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_word in module ida_bytes: - -patch_word(*args) - patch_word(ea, x) -> bool - - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function plan_and_wait in module idc: - -plan_and_wait(sEA, eEA, final_pass=True) - Perform full analysis of the range - - @param sEA: starting linear address - @param eEA: ending linear address (excluded) - @param final_pass: make the final pass over the specified range - - @return: 1-ok, 0-Ctrl-Break was pressed. - -Help on function plan_to_apply_idasgn in module ida_funcs: - -plan_to_apply_idasgn(*args) - plan_to_apply_idasgn(fname) -> int - - - Add a signature file to the list of planned signature files. - - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures - -Help on function prev_addr in module ida_bytes: - -prev_addr(*args) - prev_addr(ea) -> ea_t - - - Get previous address in the program. - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function prev_head in module idc: - -prev_head(ea, minea=0) - Get previous defined item (instruction or data) in the program - - @param ea: linear address to start search from - @param minea: the search will stop at the address - minea is included in the search range - - @return: BADADDR - no (more) defined items - -Help on function prev_not_tail in module ida_bytes: - -prev_not_tail(*args) - prev_not_tail(ea) -> ea_t - - - Get address of previous non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function print_decls in module idc: - -print_decls(ordinals, flags) - Print types in a format suitable for use in a header file - - @param ordinals: comma-separated list of type ordinals - @param flags: combination of PDF_... constants or 0 - - @return: string containing the type definitions - -Help on instance of _Feature in module __future__: - -class _Feature - | Methods defined here: - | - | __init__(self, optionalRelease, mandatoryRelease, compiler_flag) - | - | __repr__(self) - | - | getMandatoryRelease(self) - | Return release in which this feature will become mandatory. - | - | This is a 5-tuple, of the same form as sys.version_info, or, if - | the feature was dropped, is None. - | - | getOptionalRelease(self) - | Return first release in which this feature was recognized. - | - | This is a 5-tuple, of the same form as sys.version_info. - -Help on function print_insn_mnem in module idc: - -print_insn_mnem(ea) - Get instruction mnemonics - - @param ea: linear address of instruction - - @return: "" - no instruction at the specified location - - @note: this function may not return exactly the same mnemonics - as you see on the screen. - -Help on function print_operand in module idc: - -print_operand(ea, n) - Get operand of an instruction or data - - @param ea: linear address of the item - @param n: number of operand: - 0 - the first operand - 1 - the second operand - - @return: the current text representation of operand or "" - -Help on function process_config_line in module idc: - -process_config_line(directive) - Parse one or more ida.cfg config directives - @param directive: directives to process, for example: PACK_DATABASE=2 - - @note: If the directives are erroneous, a fatal error will be generated. - The settings are permanent: effective for the current session and the next ones - -Help on function process_ui_action in module idc: - -process_ui_action(name, flags=0) - Invokes an IDA UI action by name - - @param name: Command name - @param flags: Reserved. Must be zero - @return: Boolean - -Help on function mark_position in module ida_idc: - -mark_position(*args) - mark_position(ea, lnnum, x, y, slot, comment) - -Help on function qexit in module ida_pro: - -qexit(*args) - qexit(code) - - - Call qatexit functions, shut down UI and kernel, and exit. - - @param code: exit code (C++: int) - -Help on function qsleep in module idc: - -qsleep(milliseconds) - qsleep the specified number of milliseconds - This function suspends IDA for the specified amount of time - - @param milliseconds: time to sleep - -Help on function read_dbg_byte in module idc: - -read_dbg_byte(ea) - Get value of program byte using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function read_dbg_dword in module idc: - -read_dbg_dword(ea) - Get value of program double-word using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function dbg_read_memory in module ida_idd: - -dbg_read_memory(*args) - dbg_read_memory(ea, sz) -> PyObject * - - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) - - Or None on failure - -Help on function read_dbg_qword in module idc: - -read_dbg_qword(ea) - Get value of program quadro-word using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function read_dbg_word in module idc: - -read_dbg_word(ea) - Get value of program word using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function read_selection_end in module idc: - -read_selection_end() - Get end address of the selected range - - @return: BADADDR - the user has not selected an range - -Help on function read_selection_start in module idc: - -read_selection_start() - Get start address of the selected range - returns BADADDR - the user has not selected an range - -Help on function readlong in module idc: - -readlong(handle, mostfirst) - -Help on function readshort in module idc: - -readshort(handle, mostfirst) - -Help on function readstr in module idc: - -readstr(handle) - -Help on function rebase_program in module ida_segment: - -rebase_program(*args) - rebase_program(delta, flags) -> int - - - Rebase the whole program by 'delta' bytes. - - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes - -Help on function recalc_spd in module ida_frame: - -recalc_spd(*args) - recalc_spd(cur_ea) -> bool - - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - - @param cur_ea: linear address of the current instruction (C++: ea_t) - -Help on function refresh_debugger_memory in module ida_dbg: - -refresh_debugger_memory(*args) - refresh_debugger_memory() -> PyObject * - - - Refreshes the debugger memory - @return: Nothing - -Help on function refresh_idaview_anyway in module ida_kernwin: - -refresh_idaview_anyway(*args) - refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead - -Help on function refresh_choosers in module ida_kernwin: - -refresh_choosers(*args) - refresh_choosers() - -Help on function remove_fchunk in module idc: - -remove_fchunk(funcea, tailea) - Remove a function chunk from the function - - @param funcea: any address in the function - @param tailea: any address in the function chunk to remove - - @return: 0 if failed, 1 if success - -Help on function rename_array in module idc: - -rename_array(array_id, newname) - Rename array, by its ID. - - @param id: The ID of the array to rename. - @param newname: The new name of the array. - - @return: 1 in case of success, 0 otherwise - -Help on function rename_entry in module ida_entry: - -rename_entry(*args) - rename_entry(ord, name, flags=0) -> bool - - - Rename entry point. - - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success - -Help on function resume_process in module idc: - -resume_process() - -Help on function resume_thread in module ida_dbg: - -resume_thread(*args) - resume_thread(tid) -> int - - - Resume thread. \sq{Type, Synchronous function - available as request, - Notification, none (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on function retrieve_input_file_md5 in module ida_nalt: - -retrieve_input_file_md5(*args) - retrieve_input_file_md5() -> str - - - Get input file md5. - -Help on function rotate_byte in module idc: - -rotate_byte(x, count) - -Help on function rotate_dword in module idc: - -rotate_dword(x, count) - -Help on function rotate_left in module idc: - -rotate_left(value, count, nbits, offset) - Rotate a value to the left (or right) - - @param value: value to rotate - @param count: number of times to rotate. negative counter means - rotate to the right - @param nbits: number of bits to rotate - @param offset: offset of the first bit to rotate - - @return: the value with the specified field rotated - all other bits are not modified - -Help on function rotate_word in module idc: - -rotate_word(x, count) - -Help on function run_to in module ida_dbg: - -run_to(*args) - run_to(ea, pid=pid_t(-1), tid=0) -> bool - - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) - -Help on function save_database in module idc: - -save_database(idbname, flags=0) - Save current database to the specified idb file - - @param idbname: name of the idb file. if empty, the current idb - file will be used. - @param flags: combination of ida_loader.DBFL_... bits or 0 - -Help on function save_trace_file in module ida_dbg: - -save_trace_file(*args) - save_trace_file(filename, description) -> bool - - - Save the current trace in the specified file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function savefile in module idc: - -savefile(filepath, pos, ea, size) - -Help on function sel2para in module idc: - -sel2para(sel) - Get a selector value - - @param sel: the selector number - - @return: selector value if found - otherwise the input value (sel) - - @note: selector values are always in paragraphs - -Help on function select_thread in module ida_dbg: - -select_thread(*args) - select_thread(tid) -> bool - - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. - -Help on function selector_by_name in module idc: - -selector_by_name(segname) - Get segment selector by name - - @param segname: name of segment - - @return: segment selector or BADADDR - -Help on function send_dbg_command in module idc: - -send_dbg_command(cmd) - Sends a command to the debugger module and returns the output string. - An exception will be raised if the debugger is not running or the current debugger does not export - the 'send_dbg_command' IDC command. - -Help on function set_array_long in module idc: - -set_array_long(array_id, idx, value) - Sets the long value of an array element. - - @param array_id: The array ID. - @param idx: Index of an element. - @param value: 32bit or 64bit value to store in the array - - @return: 1 in case of success, 0 otherwise - -Help on function set_array_params in module idc: - -set_array_params(ea, flags, litems, align) - Set array representation format - - @param ea: linear address - @param flags: combination of AP_... constants or 0 - @param litems: number of items per line. 0 means auto - @param align: element alignment - - -1: do not align - - 0: automatic alignment - - other values: element width - - @return: 1-ok, 0-failure - -Help on function set_array_string in module idc: - -set_array_string(array_id, idx, value) - Sets the string value of an array element. - - @param array_id: The array ID. - @param idx: Index of an element. - @param value: String value to store in the array - - @return: 1 in case of success, 0 otherwise - -Help on function set_bmask_cmt in module idc: - -set_bmask_cmt(enum_id, bmask, cmt, repeatable) - Set bitmask comment (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - @param cmt: comment - repeatable - type of comment, 0-regular, 1-repeatable - - @return: 1-ok, 0-failed - -Help on function set_bmask_name in module idc: - -set_bmask_name(enum_id, bmask, name) - Set bitmask name (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - @param name: name of bitmask - - @return: 1-ok, 0-failed - -Help on function set_bpt_attr in module idc: - -set_bpt_attr(address, bptattr, value) - modifiable characteristics of a breakpoint - - @param address: any address in the breakpoint range - @param bptattr: the attribute code, one of BPTATTR_* constants - BPTATTR_CND is not allowed, see set_bpt_cond() - @param value: the attibute value - - @return: success - -Help on function set_bpt_cond in module idc: - -set_bpt_cond(ea, cnd, is_lowcnd=0) - Set breakpoint condition - - @param ea: any address in the breakpoint range - @param cnd: breakpoint condition - @param is_lowcnd: 0 - regular condition, 1 - low level condition - - @return: success - -Help on function set_cmt in module ida_bytes: - -set_cmt(*args) - set_cmt(ea, comm, rptble) -> bool - - - Set an indented comment. - - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success - -Help on function set_color in module idc: - -set_color(ea, what, color) - Set item color - - @param ea: address of the item - @param what: type of the item (one of CIC_* constants) - @param color: new color code in RGB (hex 0xBBGGRR) - - @return: success (True or False) - -Help on function set_debugger_event_cond in module ida_dbg: - -set_debugger_event_cond(*args) - set_debugger_event_cond(nonnul_cond) - -Help on function set_debugger_options in module ida_dbg: - -set_debugger_options(*args) - set_debugger_options(options) -> uint - - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - - @param options (C++: uint) - @return: the old debugger options - -Help on function set_default_sreg_value in module idc: - -set_default_sreg_value(ea, reg, value) - Set default segment register value for a segment - - @param ea: any address in the segment - if no segment is present at the specified address - then all segments will be affected - @param reg: name of segment register - @param value: default value of the segment register. -1-undefined. - -Help on function set_enum_bf in module ida_enum: - -set_enum_bf(*args) - set_enum_bf(id, bf) -> bool - - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - - @param id (C++: enum_t) - @param bf (C++: bool) - -Help on function set_enum_cmt in module ida_enum: - -set_enum_cmt(*args) - set_enum_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum type. - - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_flag in module ida_enum: - -set_enum_flag(*args) - set_enum_flag(id, flag) -> bool - - - Set data representation flags. - - - @param id (C++: enum_t) - @param flag (C++: flags_t) - -Help on function set_enum_idx in module ida_enum: - -set_enum_idx(*args) - set_enum_idx(id, idx) -> bool - - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) - -Help on function set_enum_member_cmt in module ida_enum: - -set_enum_member_cmt(*args) - set_enum_member_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum member. - - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_member_name in module ida_enum: - -set_enum_member_name(*args) - set_enum_member_name(id, name) -> bool - - - Set name of enum member. - - - @param id (C++: const_t) - @param name (C++: const char *) - -Help on function set_enum_name in module ida_enum: - -set_enum_name(*args) - set_enum_name(id, name) -> bool - - - Set name of enum type. - - - @param id (C++: enum_t) - @param name (C++: const char *) - -Help on function set_enum_width in module ida_enum: - -set_enum_width(*args) - set_enum_width(id, width) -> bool - - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) - -Help on function set_fchunk_attr in module idc: - -set_fchunk_attr(ea, attr, value) - Set a function chunk attribute - - @param ea: any address in the chunk - @param attr: only FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER - @param value: desired value - - @return: 0 if failed, 1 if success - -Help on function set_fixup in module idc: - -set_fixup(ea, fixuptype, fixupflags, targetsel, targetoff, displ) - Set fixup information - - @param ea: address to set fixup information about - @param fixuptype: fixup type. see get_fixup_target_type() - for possible fixup types. - @param fixupflags: fixup flags. see get_fixup_target_flags() - for possible fixup types. - @param targetsel: target selector - @param targetoff: target offset - @param displ: displacement - - @return: none - -Help on function set_flag in module idc: - -set_flag(off, bit, value) - #-------------------------------------------------------------------------- - -Help on function set_frame_size in module idc: - -set_frame_size(ea, lvsize, frregs, argsize) - Make function frame - - @param ea: any address belonging to the function - @param lvsize: size of function local variables - @param frregs: size of saved registers - @param argsize: size of function arguments - - @return: ID of function frame or -1 - If the function did not have a frame, the frame - will be created. Otherwise the frame will be modified - -Help on function set_func_attr in module idc: - -set_func_attr(ea, attr, value) - Set a function attribute - - @param ea: any address belonging to the function - @param attr: one of FUNCATTR_... constants - @param value: new value of the attribute - - @return: 1-ok, 0-failed - -Help on function set_func_cmt in module idc: - -set_func_cmt(ea, cmt, repeatable) - Set function comment - - @param ea: any address belonging to the function - @param cmt: a function comment line - @param repeatable: 1: get repeatable comment - 0: get regular comment - -Help on function set_func_end in module ida_funcs: - -set_func_end(*args) - set_func_end(ea, newend) -> bool - - - Move function chunk end address. - - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success - -Help on function set_func_flags in module idc: - -set_func_flags(ea, flags) - Change function flags - - @param ea: any address belonging to the function - @param flags: see get_func_flags() for explanations - - @return: !=0 - ok - -Help on function set_hash_long in module idc: - -set_hash_long(hash_id, key, value) - Sets the long value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - @param value: 32bit or 64bit value to store in the hash - - @return: 1 in case of success, 0 otherwise - -Help on function set_hash_string in module idc: - -set_hash_string(hash_id, key, value) - Sets the string value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - @param value: string value to store in the hash - - @return: 1 in case of success, 0 otherwise - -Help on function set_ida_state in module ida_auto: - -set_ida_state(*args) - set_ida_state(st) -> idastate_t - - - Change IDA status indicator value - - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status - -Help on function set_inf_attr in module idc: - -set_inf_attr(attr, value) - -Help on function set_local_type in module idc: - -set_local_type(ordinal, input, flags) - Parse one type declaration and store it in the specified slot - - @param ordinal: slot number (1...NumberOfLocalTypes) - -1 means allocate new slot or reuse the slot - of the existing named type - @param input: C declaration. Empty input empties the slot - @param flags: combination of PT_... constants or 0 - - @return: slot number or 0 if error - -Help on function set_manual_insn in module ida_bytes: - -set_manual_insn(*args) - set_manual_insn(ea, manual_insn) - - - Set manual instruction string. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) - -Help on function set_member_cmt in module idc: - -set_member_cmt(sid, member_offset, comment, repeatable) - Change structure member comment - - @param sid: structure type ID - @param member_offset: offset of the member - @param comment: new comment of the structure member - @param repeatable: 1: change repeatable comment - 0: change regular comment - - @return: != 0 - ok - -Help on function set_member_name in module idc: - -set_member_name(sid, member_offset, name) - Change structure member name - - @param sid: structure type ID - @param member_offset: offset of the member - @param name: new name of the member - - @return: != 0 - ok. - -Help on function set_member_type in module idc: - -set_member_type(sid, member_offset, flag, typeid, nitems, target=-1, tdelta=0, reftype=2) - Change structure member type - - @param sid: structure type ID - @param member_offset: offset of the member - @param flag: new type of the member. Should be one of - FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA - @param typeid: if is_struct(flag) then typeid specifies the structure id for the member - if is_off0(flag) then typeid specifies the offset base. - if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). - if is_stroff(flag) then typeid specifies the structure id - if is_enum(flag) then typeid specifies the enum id - if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) - Otherwise typeid should be -1. - @param nitems: number of items in the member - - @param target: target address of the offset expr. You may specify it as - -1, ida will calculate it itself - @param tdelta: offset target delta. usually 0 - @param reftype: see REF_... definitions - - @note: The remaining arguments are allowed only if is_off0(flag) and you want - to specify a complex offset expression - - @return: !=0 - ok. - -Help on function set_name in module idc: - -set_name(ea, name, flags=0) - Rename an address - - @param ea: linear address - @param name: new name of address. If name == "", then delete old name - @param flags: combination of SN_... constants - - @return: 1-ok, 0-failure - -Help on function set_processor_type in module ida_idp: - -set_processor_type(*args) - set_processor_type(procname, level) -> bool - - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success - -Help on function set_reg_value in module idc: - -set_reg_value(value, name) - Set register value - - @param name: the register name - @param value: new register value - - @note: The debugger should be running - It is not necessary to use this function to set register values. - A register name in the left side of an assignment will do too. - -Help on function set_remote_debugger in module ida_dbg: - -set_remote_debugger(*args) - set_remote_debugger(host, _pass, port=-1) - - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) - -Help on function set_root_filename in module ida_nalt: - -set_root_filename(*args) - set_root_filename(file) - - - Set full path of the input file. - - - @param file (C++: const char *) - -Help on function set_segm_addressing in module idc: - -set_segm_addressing(ea, bitness) - Change segment addressing - - @param ea: any address in the segment - @param bitness: 0: 16bit, 1: 32bit, 2: 64bit - - @return: success (boolean) - -Help on function set_segm_alignment in module idc: - -set_segm_alignment(ea, alignment) - Change alignment of the segment - - @param ea: any address in the segment - @param alignment: new alignment of the segment (one of the sa... constants) - - @return: success (boolean) - -Help on function set_segm_attr in module idc: - -set_segm_attr(segea, attr, value) - Set segment attribute - - @param segea: any address within segment - @param attr: one of SEGATTR_... constants - - @note: Please note that not all segment attributes are modifiable. - Also some of them should be modified using special functions - like set_segm_addressing, etc. - -Help on function set_segm_class in module idc: - -set_segm_class(ea, segclass) - Change class of the segment - - @param ea: any address in the segment - @param segclass: new class of the segment - - @return: success (boolean) - -Help on function set_segm_combination in module idc: - -set_segm_combination(segea, comb) - Change combination of the segment - - @param segea: any address in the segment - @param comb: new combination of the segment (one of the sc... constants) - - @return: success (boolean) - -Help on function set_segm_name in module idc: - -set_segm_name(ea, name) - Change name of the segment - - @param ea: any address in the segment - @param name: new name of the segment - - @return: success (boolean) - -Help on function set_segm_type in module idc: - -set_segm_type(segea, segtype) - Set segment type - - @param segea: any address within segment - @param segtype: new segment type: - - @return: !=0 - ok - -Help on function set_segment_bounds in module idc: - -set_segment_bounds(ea, startea, endea, flags) - Change segment boundaries - - @param ea: any address in the segment - @param startea: new start address of the segment - @param endea: new end address of the segment - @param flags: combination of SEGMOD_... flags - - @return: boolean success - -Help on function set_selector in module ida_segment: - -set_selector(*args) - set_selector(selector, paragraph) -> int - - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - -Help on function set_source_linnum in module ida_nalt: - -set_source_linnum(*args) - set_source_linnum(ea, lnnum) - -Help on function set_step_trace_options in module ida_dbg: - -set_step_trace_options(*args) - set_step_trace_options(options) - - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function change_storage_type in module ida_bytes: - -change_storage_type(*args) - change_storage_type(start_ea, end_ea, stt) -> error_t - - - Change flag storage type for address range. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code - -Help on function set_struc_cmt in module ida_struct: - -set_struc_cmt(*args) - set_struc_cmt(id, cmt, repeatable) -> bool - - - Set structure comment. - - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_struc_idx in module idc: - -set_struc_idx(sid, index) - Change structure index - - @param sid: structure type ID - @param index: new index of the structure - - @return: != 0 - ok - - @note: See get_first_struc_idx() for the explanation of - structure indices and IDs. - -Help on function set_struc_name in module ida_struct: - -set_struc_name(*args) - set_struc_name(id, name) -> bool - - - Set structure name. - - - @param id (C++: tid_t) - @param name (C++: const char *) - -Help on function set_tail_owner in module idc: - -set_tail_owner(tailea, funcea) - Change the function chunk owner - - @param tailea: any address in the function chunk - @param funcea: the starting address of the new owner - - @return: False if failed, True if success - - @note: The new owner must already have the chunk appended before the call - -Help on function set_target_assembler in module ida_idp: - -set_target_assembler(*args) - set_target_assembler(asmnum) -> bool - - - Set target assembler. - - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success - -Help on function set_trace_file_desc in module ida_dbg: - -set_trace_file_desc(*args) - set_trace_file_desc(filename, description) -> bool - - - Change the description of the specified trace file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function split_sreg_range in module idc: - -split_sreg_range(ea, reg, value, tag=2) - Set value of a segment register. - - @param ea: linear address - @param reg: name of a register, like "cs", "ds", "es", etc. - @param value: new value of the segment register. - @param tag: of SR_... constants - - @note: IDA keeps tracks of all the points where segment register change their - values. This function allows you to specify the correct value of a segment - register if IDA is not able to find the corrent value. - -Help on function start_process in module ida_dbg: - -start_process(*args) - start_process(path=None, args=None, sdir=None) -> int - - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - -Help on function step_into in module ida_dbg: - -step_into(*args) - step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } - -Help on function step_over in module ida_dbg: - -step_over(*args) - step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } - -Help on function step_until_ret in module ida_dbg: - -step_until_ret(*args) - step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } - -Help on function strlen in module idc: - -strlen(s) - -Help on function strstr in module idc: - -strstr(s1, s2) - -Help on function substr in module idc: - -substr(s, x1, x2) - -Help on function suspend_process in module ida_dbg: - -suspend_process(*args) - suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. - -Help on function suspend_thread in module ida_dbg: - -suspend_thread(*args) - suspend_thread(tid) -> int - - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on function take_memory_snapshot in module ida_segment: - -take_memory_snapshot(*args) - take_memory_snapshot(only_loader_segs) -> bool - - - Take a memory snapshot of the running process. - - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success - -Help on function to_ea in module idc: - -to_ea(seg, off) - Return value of expression: ((seg<<4) + off) - -Help on function toggle_bnot in module idc: - -toggle_bnot(ea, n) - Toggle the bitwise not operator for the operand - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - -Help on function toggle_sign in module ida_bytes: - -toggle_sign(*args) - toggle_sign(ea, n) -> bool - - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function update_extra_cmt in module ida_lines: - -update_extra_cmt(*args) - update_extra_cmt(ea, what, str) - -Help on function update_hidden_range in module idc: - -update_hidden_range(ea, visible) - Set hidden range state - - @param ea: any address belonging to the hidden range - @param visible: new state of the range - - @return: != 0 - ok - -Help on function validate_idb_names in module idc: - -validate_idb_names(do_repair=0) - check consistency of IDB name records - @param do_repair: try to repair netnode header it TRUE - @return: number of inconsistent name records - -Help on function value_is_float in module idc: - -value_is_float(var) - -Help on function value_is_func in module idc: - -value_is_func(var) - -Help on function value_is_int64 in module idc: - -value_is_int64(var) - -Help on function value_is_long in module idc: - -value_is_long(var) - -Help on function value_is_pvoid in module idc: - -value_is_pvoid(var) - -Help on function value_is_string in module idc: - -value_is_string(var) - # List of built-in functions - # -------------------------- - # - # The following conventions are used in this list: - # 'ea' is a linear address - # 'success' is 0 if a function failed, 1 otherwise - # 'void' means that function returns no meaningful value (always 0) - # - # All function parameter conversions are made automatically. - # - # ---------------------------------------------------------------------------- - # M I S C E L L A N E O U S - # ---------------------------------------------------------------------------- - -Help on function wait_for_next_event in module ida_dbg: - -wait_for_next_event(*args) - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - - - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) - -Help on function warning in module ida_kernwin: - -warning(*args) - warning(format) - - - Display a message in a message box - - @param 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 - -Help on function write_dbg_memory in module idc: - -write_dbg_memory(ea, data) - Write to debugger memory. - - @param ea: linear address - @param data: string to write - @return: number of written bytes (-1 - network/debugger error) - - Thread-safe function (may be called only from the main thread and debthread) - -Help on function writelong in module idc: - -writelong(handle, dword, mostfirst) - -Help on function writeshort in module idc: - -writeshort(handle, word, mostfirst) - -Help on function writestr in module idc: - -writestr(handle, s) - -Help on function xtol in module idc: - -xtol(s) - diff --git a/pydoc_injections3.txt b/pydoc_injections3.txt index eb49f7e..9642da2 100644 --- a/pydoc_injections3.txt +++ b/pydoc_injections3.txt @@ -1,41 +1,54 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + Help on function auto_apply_tail in module ida_auto: auto_apply_tail(*args) -> 'void' auto_apply_tail(tail_ea, parent_ea) - - Plan to apply the tail_ea chunk to the parent - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. Help on function auto_apply_type in module ida_auto: auto_apply_type(*args) -> 'void' auto_apply_type(caller, callee) - - Plan to apply the callee's type to the calling point. - - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function auto_cancel in module ida_auto: auto_cancel(*args) -> 'void' auto_cancel(ea1, ea2) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. - - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -62,319 +75,445 @@ class auto_display_t(builtins.object) | list of weak references to the object (if defined) | | ea - | auto_display_t_ea_get(self) -> ea_t + | ea | | state - | auto_display_t_state_get(self) -> idastate_t + | state | | thisown | The membership flag | | type - | auto_display_t_type_get(self) -> atype_t + | type Help on function auto_get in module ida_auto: auto_get(*args) -> 'ea_t' auto_get(type, lowEA, highEA) -> ea_t + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. - - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) Help on function auto_is_ok in module ida_auto: auto_is_ok(*args) -> 'bool' auto_is_ok() -> bool - - Are all queues empty? (i.e. has autoanalysis finished?). Help on function auto_make_code in module ida_auto: auto_make_code(*args) -> 'void' auto_make_code(ea) - - Plan to make code. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_proc in module ida_auto: auto_make_proc(*args) -> 'void' auto_make_proc(ea) - - Plan to make code&function. + @param ea: (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) -> 'bool' + auto_make_step(ea1, ea2) -> bool + Analyze one address in the specified range and return true. - @param ea (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. Help on function auto_mark in module ida_auto: auto_mark(*args) -> 'void' auto_mark(ea, type) - - Put single address into a queue. Queues keep addresses sorted. - - @param ea (C++: ea_t) - @param type (C++: atype_t) + @param ea: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_recreate_insn in module ida_auto: auto_recreate_insn(*args) -> 'int' auto_recreate_insn(ea) -> int - - Try to create instruction - @param ea: linear address of callee (C++: ea_t) + @param ea: (C++: ea_t) linear address of callee @return: the length of the instruction or 0 Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' auto_wait() -> bool - - Process everything in the queues and return true. - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function auto_wait_range in module ida_auto: auto_wait_range(*args) -> 'ssize_t' auto_wait_range(ea1, ea2) -> ssize_t - - Process everything in the specified range and return true. - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) Help on function enable_auto in module ida_auto: enable_auto(*args) -> 'bool' enable_auto(enable) -> bool + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO - - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - - @param enable (C++: bool) + @param enable: (C++: bool) @return: old state Help on function get_auto_display in module ida_auto: -get_auto_display(*args) -> 'void' - get_auto_display(auto_display) - - +get_auto_display(*args) -> 'bool' + get_auto_display(auto_display) -> bool Get structure which holds the autoanalysis indicator contents. - - @param auto_display (C++: auto_display_t *) + @param auto_display: (C++: auto_display_t *) Help on function get_auto_state in module ida_auto: get_auto_state(*args) -> 'atype_t' get_auto_state() -> atype_t - - - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). Help on function is_auto_enabled in module ida_auto: is_auto_enabled(*args) -> 'bool' is_auto_enabled() -> bool - - Get autoanalyzer state. Help on function may_create_stkvars in module ida_auto: may_create_stkvars(*args) -> 'bool' may_create_stkvars() -> bool - - - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. Help on function may_trace_sp in module ida_auto: may_trace_sp(*args) -> 'bool' may_trace_sp() -> bool - - - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. Help on function peek_auto_queue in module ida_auto: peek_auto_queue(*args) -> 'ea_t' peek_auto_queue(low_ea, type) -> ea_t + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. - - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR Help on function plan_and_wait in module ida_auto: plan_and_wait(*args) -> 'int' plan_and_wait(ea1, ea2, final_pass=True) -> int + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed - - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) Help on function plan_ea in module ida_auto: plan_ea(*args) -> 'void' plan_ea(ea) - - Plan to perform reanalysis. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function plan_range in module ida_auto: plan_range(*args) -> 'void' plan_range(sEA, eEA) - - Plan to perform reanalysis. - - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) Help on function reanalyze_callers in module ida_auto: reanalyze_callers(*args) -> 'void' reanalyze_callers(ea, noret) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. - - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. Help on function revert_ida_decisions in module ida_auto: revert_ida_decisions(*args) -> 'void' revert_ida_decisions(ea1, ea2) - - Delete all analysis info that IDA generated for for the given range. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function set_auto_state in module ida_auto: set_auto_state(*args) -> 'atype_t' set_auto_state(new_state) -> atype_t - - Set current state of autoanalyzer. - @param new_state: new state of autoanalyzer (C++: atype_t) + @param new_state: (C++: atype_t) new state of autoanalyzer @return: previous state Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' set_ida_state(st) -> idastate_t - - Change IDA status indicator value - @param st: - new indicator status (C++: idastate_t) + @param st: (C++: idastate_t) - new indicator status @return: old indicator status Help on function show_addr in module ida_auto: show_addr(*args) -> 'void' show_addr(ea) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". - - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - - @param ea: - linear address to display (C++: ea_t) + @param ea: (C++: ea_t) - linear address to display Help on function show_auto in module ida_auto: show_auto(*args) -> 'void' show_auto(ea, type=AU_NONE) - - Change autoanalysis indicator value. - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" + +Help on class bitrange_t in module ida_bitrange: + +class bitrange_t(builtins.object) + | Proxy of C++ bitrange_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_bitrange_t(...) + | delete_bitrange_t(self) + | + | apply_mask(self, *args) -> 'bool' + | apply_mask(self, subrange) -> bool + | Apply mask to a bitrange + | + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success + | + | bitoff(self, *args) -> 'uint' + | bitoff(self) -> uint + | Get offset of 1st bit. + | + | bitsize(self, *args) -> 'uint' + | bitsize(self) -> uint + | Get size of the value in bits. + | + | bytesize(self, *args) -> 'uint' + | bytesize(self) -> uint + | Size of the value in bytes. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitrange_t const & + | + | create_union(self, *args) -> 'void' + | create_union(self, r) + | Create union of 2 ranges including the hole between them. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the bitrange empty? + | + | extract(self, *args) -> 'bool' + | extract(self, src, is_mf) -> bool + | + | @param src: void const * + | @param is_mf: bool + | + | has_common(self, *args) -> 'bool' + | has_common(self, r) -> bool + | Does have common bits with another bitrange? + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | init(self, *args) -> 'void' + | init(self, bit_ofs, size_in_bits) + | Initialize offset and size to given values. + | + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) + | + | inject(self, *args) -> 'bool' + | inject(self, dst, src, is_mf) -> bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Intersect two ranges. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | mask64(self, *args) -> 'uint64' + | mask64(self) -> uint64 + | Convert to mask of 64 bits. + | + | reset(self, *args) -> 'void' + | reset(self) + | Make the bitrange empty. + | + | shift_down(self, *args) -> 'void' + | shift_down(self, cnt) + | Shift range down (left) + | + | @param cnt: (C++: uint) + | + | shift_up(self, *args) -> 'void' + | shift_up(self, cnt) + | Shift range up (right) + | + | @param cnt: (C++: uint) + | + | sub(self, *args) -> 'bool' + | sub(self, r) -> bool + | Subtract a bitrange. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" Help on function __walk_types_and_formats in module ida_bytes: @@ -385,574 +524,741 @@ Help on function add_byte in module ida_bytes: add_byte(*args) -> 'void' add_byte(ea, value) + Add a value to one byte of the program. This function works for wide byte + processors too. - - Add a value to one byte of the program. This function works for wide - byte processors too. - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value Help on function add_dword in module ida_bytes: add_dword(*args) -> 'void' add_dword(ea, value) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 - - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color @return: success Help on function add_mapping in module ida_bytes: add_mapping(*args) -> 'bool' add_mapping(_from, to, size) -> bool + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. - - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range @return: success Help on function add_qword in module ida_bytes: add_qword(*args) -> 'void' add_qword(ea, value) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() - - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_word in module ida_bytes: add_word(*args) -> 'void' add_word(ea, value) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() - - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function align_flag in module ida_bytes: -align_flag(*args) -> 'flags_t' - align_flag() -> flags_t - - - Get a flags_t representing an alignment directive. +align_flag(*args) -> 'flags64_t' + align_flag() -> flags64_t + Get a flags64_t representing an alignment directive. Help on function append_cmt in module ida_bytes: append_cmt(*args) -> 'bool' append_cmt(ea, str, rptble) -> bool + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. - - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? @return: success Help on function attach_custom_data_format in module ida_bytes: attach_custom_data_format(*args) -> 'bool' attach_custom_data_format(dtid, dfid) -> bool - - Attach the data format to the data type. - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type Help on function bin_flag in module ida_bytes: -bin_flag(*args) -> 'flags_t' - bin_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +bin_flag(*args) -> 'flags64_t' + bin_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function bin_search in module ida_bytes: bin_search(*args) -> 'ea_t' + bin_search(start_ea, end_ea, data, flags) -> ea_t + Search for a set of bytes in the program + + @param start_ea: linear address, start of range to search + @param end_ea: linear address, end of range to search (exclusive) + @param data: the prepared data to search for (see parse_binpat_str()) + @param flags: combination of BIN_SEARCH_* flags + @return: the address of a match, or ida_idaapi.BADADDR if not found bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) -> 'size_t *' + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. Help on function byte_flag in module ida_bytes: -byte_flag(*args) -> 'flags_t' - byte_flag() -> flags_t - - - Get a flags_t representing a byte. +byte_flag(*args) -> 'flags64_t' + byte_flag() -> flags64_t + Get a flags64_t representing a byte. Help on function bytesize in module ida_bytes: bytesize(*args) -> 'int' bytesize(ea) -> int - - Get number of bytes required to store a byte at the given address. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function calc_def_align in module ida_bytes: calc_def_align(*args) -> 'int' calc_def_align(ea, mina, maxa) -> int + Calculate the default alignment exponent. - - Calculate default alignment. - - - @param ea (C++: ea_t) - @param mina (C++: int) - @param maxa (C++: int) + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. Help on function calc_dflags in module ida_bytes: -calc_dflags(*args) -> 'flags_t' - calc_dflags(f, force) -> flags_t +calc_dflags(*args) -> 'flags64_t' + calc_dflags(f, force) -> flags64_t + + @param f: flags64_t + @param force: bool Help on function calc_max_align in module ida_bytes: calc_max_align(*args) -> 'int' calc_max_align(endea) -> int + Calculate the maximal possible alignment exponent. - - Returns: 0..32. - - - @param endea (C++: ea_t) + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range Help on function calc_max_item_end in module ida_bytes: calc_max_item_end(*args) -> 'ea_t' calc_max_item_end(ea, how=15) -> ea_t + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. - - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. Help on function calc_min_align in module ida_bytes: calc_min_align(*args) -> 'int' calc_min_align(length) -> int + Calculate the minimal possible alignment exponent. - - Returns: 1..32. - - - @param length (C++: asize_t) + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range Help on function can_define_item in module ida_bytes: can_define_item(*args) -> 'bool' can_define_item(ea, length, flags) -> bool + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. - - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) + @param ea: (C++: ea_t) start of the range for the new item + @param length: (C++: asize_t) length of the new item in bytes + @param flags: (C++: flags64_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' change_storage_type(start_ea, end_ea, stt) -> error_t - - Change flag storage type for address range. - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) @return: error code Help on function char_flag in module ida_bytes: -char_flag(*args) -> 'flags_t' - char_flag() -> flags_t - - - see 'Bits: instruction operand types' +char_flag(*args) -> 'flags64_t' + char_flag() -> flags64_t + see Bits: instruction operand types Help on function chunk_size in module ida_bytes: chunk_size(*args) -> 'asize_t' chunk_size(ea) -> asize_t - - Get size of the contiguous address block containing 'ea'. - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: 0 if 'ea' doesn't belong to the program. Help on function chunk_start in module ida_bytes: chunk_start(*args) -> 'ea_t' chunk_start(ea) -> ea_t - - Get start of the contiguous address block containing 'ea'. - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. Help on function clr_lzero in module ida_bytes: clr_lzero(*args) -> 'bool' clr_lzero(ea, n) -> bool + Clear toggle lzero bit. This function reset the display of leading zeroes for + the specified operand to the default. If the default is not to display leading + zeroes, leading zeroes will not be displayed, as vice versa. - - Clear lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function clr_op_type in module ida_bytes: clr_op_type(*args) -> 'bool' clr_op_type(ea, n) -> bool + Remove operand representation information. (set operand representation to be + 'undefined') - - Remove operand representation information. (set operand representation - to be 'undefined') - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function code_flag in module ida_bytes: -code_flag(*args) -> 'flags_t' - code_flag() -> flags_t - - - 'FF_CODE' +code_flag(*args) -> 'flags64_t' + code_flag() -> flags64_t + FF_CODE + +Help on class compiled_binpat_t in module ida_bytes: + +class compiled_binpat_t(builtins.object) + | Proxy of C++ compiled_binpat_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_compiled_binpat_t(...) + | delete_compiled_binpat_t(self) + | + | all_bytes_defined(self, *args) -> 'bool' + | all_bytes_defined(self) -> bool + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | bytes + | + | encidx + | encidx + | + | mask + | mask + | + | strlits + | strlits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class compiled_binpat_vec_t in module ida_bytes: + +class compiled_binpat_vec_t(builtins.object) + | Proxy of C++ qvector< compiled_binpat_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __getitem__(self, *args) -> 'compiled_binpat_t const &' + | __getitem__(self, i) -> compiled_binpat_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_vec_t + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: compiled_binpat_t const & + | + | __swig_destroy__ = delete_compiled_binpat_vec_t(...) + | delete_compiled_binpat_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: compiled_binpat_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | at(self, *args) -> 'compiled_binpat_t const &' + | at(self, _idx) -> compiled_binpat_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | begin(self) -> compiled_binpat_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | end(self) -> compiled_binpat_t + | + | erase(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | erase(self, it) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | + | erase(self, first, last) -> compiled_binpat_t + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator + | + | extract(self, *args) -> 'compiled_binpat_t *' + | extract(self) -> compiled_binpat_t + | + | find(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | find(self, x) -> compiled_binpat_t + | + | @param x: compiled_binpat_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=compiled_binpat_t()) + | + | @param x: compiled_binpat_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: compiled_binpat_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | insert(self, it, x) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'compiled_binpat_t &' + | push_back(self, x) + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< compiled_binpat_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function create_16bit_data in module ida_bytes: create_16bit_data(*args) -> 'bool' create_16bit_data(ea, length) -> bool + Convert to 16-bit quantity (take the byte size into account) - - Convert to 16-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_32bit_data in module ida_bytes: create_32bit_data(*args) -> 'bool' create_32bit_data(ea, length) -> bool + Convert to 32-bit quantity (take the byte size into account) - - Convert to 32-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' create_align(ea, length, alignment) -> bool + Create an alignment item. - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_byte in module ida_bytes: create_byte(*args) -> 'bool' create_byte(ea, length, force=False) -> bool - - Convert to byte. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' create_custdata(ea, length, dtid, fid, force=False) -> bool - - Convert to custom data type. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. @return: success Help on function create_double in module ida_bytes: create_double(*args) -> 'bool' create_double(ea, length, force=False) -> bool - - Convert to double. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_dword in module ida_bytes: create_dword(*args) -> 'bool' create_dword(ea, length, force=False) -> bool - - Convert to dword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_float in module ida_bytes: create_float(*args) -> 'bool' create_float(ea, length, force=False) -> bool - - Convert to float. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_oword in module ida_bytes: create_oword(*args) -> 'bool' create_oword(ea, length, force=False) -> bool - - Convert to octaword/xmm word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_packed_real in module ida_bytes: create_packed_real(*args) -> 'bool' create_packed_real(ea, length, force=False) -> bool - - Convert to packed decimal real. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_qword in module ida_bytes: create_qword(*args) -> 'bool' create_qword(ea, length, force=False) -> bool - - Convert to quadword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_strlit in module ida_bytes: create_strlit(*args) -> 'bool' create_strlit(start, len, strtype) -> bool + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case - - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes @return: success Help on function create_struct in module ida_bytes: create_struct(*args) -> 'bool' create_struct(ea, length, tid, force=False) -> bool - - Convert to struct. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) Help on function create_tbyte in module ida_bytes: create_tbyte(*args) -> 'bool' create_tbyte(ea, length, force=False) -> bool - - Convert to tbyte. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_word in module ida_bytes: create_word(*args) -> 'bool' create_word(ea, length, force=False) -> bool - - Convert to word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_yword in module ida_bytes: create_yword(*args) -> 'bool' create_yword(ea, length, force=False) -> bool - - Convert to ymm word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_zword in module ida_bytes: create_zword(*args) -> 'bool' create_zword(ea, length, force=False) -> bool - - Convert to zmm word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function cust_flag in module ida_bytes: -cust_flag(*args) -> 'flags_t' - cust_flag() -> flags_t - - - Get a flags_t representing custom type data. +cust_flag(*args) -> 'flags64_t' + cust_flag() -> flags64_t + Get a flags64_t representing custom type data. Help on function custfmt_flag in module ida_bytes: -custfmt_flag(*args) -> 'flags_t' - custfmt_flag() -> flags_t - - - see 'Bits: instruction operand types' +custfmt_flag(*args) -> 'flags64_t' + custfmt_flag() -> flags64_t + see Bits: instruction operand types Help on class data_format_t in module ida_bytes: @@ -966,6 +1272,14 @@ class data_format_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 | | __repr__ = _swig_repr(self) | @@ -977,6 +1291,9 @@ class data_format_t(builtins.object) | | is_present_in_menus(self, *args) -> 'bool' | is_present_in_menus(self) -> bool + | Should this format be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -988,28 +1305,28 @@ class data_format_t(builtins.object) | list of weak references to the object (if defined) | | hotkey - | data_format_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_format_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_format_t_name_get(self) -> char const * + | name | | props - | data_format_t_props_get(self) -> int + | props | | text_width - | data_format_t_text_width_get(self) -> int32 + | text_width | | thisown | The membership flag | | value_size - | data_format_t_value_size_get(self) -> asize_t + | value_size Help on class data_type_t in module ida_bytes: @@ -1023,6 +1340,14 @@ class data_type_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int | | __repr__ = _swig_repr(self) | @@ -1034,6 +1359,9 @@ class data_type_t(builtins.object) | | is_present_in_menus(self, *args) -> 'bool' | is_present_in_menus(self) -> bool + | Should this type be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1045,599 +1373,525 @@ class data_type_t(builtins.object) | list of weak references to the object (if defined) | | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * + | asm_keyword | | hotkey - | data_type_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_type_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_type_t_name_get(self) -> char const * + | name | | props - | data_type_t_props_get(self) -> int + | props | | thisown | The membership flag | | value_size - | data_type_t_value_size_get(self) -> asize_t + | value_size Help on function dec_flag in module ida_bytes: -dec_flag(*args) -> 'flags_t' - dec_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +dec_flag(*args) -> 'flags64_t' + dec_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' del_hidden_range(ea) -> bool - - Delete hidden range. - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range @return: success Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails @return: true on sucessful operation, otherwise false Help on function del_mapping in module ida_bytes: del_mapping(*args) -> 'void' del_mapping(ea) - - Delete memory mapping range. - @param ea: any address in the mapped range (C++: ea_t) + @param ea: (C++: ea_t) any address in the mapped range Help on function del_value in module ida_bytes: del_value(*args) -> 'void' del_value(ea) + Delete byte value from flags. The corresponding byte becomes uninitialized. - - Delete byte value from flags. The corresponding byte becomes - uninitialized. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function detach_custom_data_format in module ida_bytes: detach_custom_data_format(*args) -> 'bool' detach_custom_data_format(dtid, dfid) -> bool + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. - - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type Help on function disable_flags in module ida_bytes: disable_flags(*args) -> 'error_t' disable_flags(start_ea, end_ea) -> error_t + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). - - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. @return: 0 if ok, otherwise return error code Help on function double_flag in module ida_bytes: -double_flag(*args) -> 'flags_t' - double_flag() -> flags_t - - - Get a flags_t representing a double. +double_flag(*args) -> 'flags64_t' + double_flag() -> flags64_t + Get a flags64_t representing a double. Help on function dword_flag in module ida_bytes: -dword_flag(*args) -> 'flags_t' - dword_flag() -> flags_t - - - Get a flags_t representing a double word. +dword_flag(*args) -> 'flags64_t' + dword_flag() -> flags64_t + Get a flags64_t representing a double word. Help on function enable_flags in module ida_bytes: enable_flags(*args) -> 'error_t' enable_flags(start_ea, end_ea, stt) -> error_t + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. - - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) @return: 0 if ok, otherwise an error code Help on function enum_flag in module ida_bytes: -enum_flag(*args) -> 'flags_t' - enum_flag() -> flags_t - - - see 'Bits: instruction operand types' +enum_flag(*args) -> 'flags64_t' + enum_flag() -> flags64_t + see Bits: instruction operand types Help on function equal_bytes in module ida_bytes: equal_bytes(*args) -> 'bool' - equal_bytes(ea, image, mask, len, sense_case) -> bool - - + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'. - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == NULL, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) -> 'bool' f_has_cmt(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * Help on function f_has_dummy_name in module ida_bytes: f_has_dummy_name(*args) -> 'bool' f_has_dummy_name(f, arg2) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param f (C++: flags_t) + @param f: (C++: flags64_t) + @param arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) -> 'bool' f_has_extra_cmts(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * Help on function f_has_name in module ida_bytes: f_has_name(*args) -> 'bool' f_has_name(f, arg2) -> bool - - Does the current byte have non-trivial (non-dummy) name? - - @param f (C++: flags_t) + @param f: (C++: flags64_t) + @param arg2: void * Help on function f_has_user_name in module ida_bytes: f_has_user_name(*args) -> 'bool' f_has_user_name(F, arg2) -> bool - - Does the current byte have user-specified name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_has_xref in module ida_bytes: f_has_xref(*args) -> 'bool' f_has_xref(f, arg2) -> bool - - Does the current byte have cross-references to it? - - @param f (C++: flags_t) + @param f: (C++: flags64_t) + @param arg2: void * Help on function f_is_align in module ida_bytes: f_is_align(*args) -> 'bool' f_is_align(F, arg2) -> bool + See is_align() - - See 'is_align()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_byte in module ida_bytes: f_is_byte(*args) -> 'bool' f_is_byte(F, arg2) -> bool + See is_byte() - - See 'is_byte()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_code in module ida_bytes: f_is_code(*args) -> 'bool' f_is_code(F, arg2) -> bool - - Does flag denote start of an instruction? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_custom in module ida_bytes: f_is_custom(*args) -> 'bool' f_is_custom(F, arg2) -> bool + See is_custom() - - See 'is_custom()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_data in module ida_bytes: f_is_data(*args) -> 'bool' f_is_data(F, arg2) -> bool - - Does flag denote start of data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_double in module ida_bytes: f_is_double(*args) -> 'bool' f_is_double(F, arg2) -> bool + See is_double() - - See 'is_double()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_dword in module ida_bytes: f_is_dword(*args) -> 'bool' f_is_dword(F, arg2) -> bool + See is_dword() - - See 'is_dword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_float in module ida_bytes: f_is_float(*args) -> 'bool' f_is_float(F, arg2) -> bool + See is_float() - - See 'is_float()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_head in module ida_bytes: f_is_head(*args) -> 'bool' f_is_head(F, arg2) -> bool - - Does flag denote start of instruction OR data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_not_tail in module ida_bytes: f_is_not_tail(*args) -> 'bool' f_is_not_tail(F, arg2) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_oword in module ida_bytes: f_is_oword(*args) -> 'bool' f_is_oword(F, arg2) -> bool + See is_oword() - - See 'is_oword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_pack_real in module ida_bytes: f_is_pack_real(*args) -> 'bool' f_is_pack_real(F, arg2) -> bool + See is_pack_real() - - See 'is_pack_real()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_qword in module ida_bytes: f_is_qword(*args) -> 'bool' f_is_qword(F, arg2) -> bool + See is_qword() - - See 'is_qword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_strlit in module ida_bytes: f_is_strlit(*args) -> 'bool' f_is_strlit(F, arg2) -> bool + See is_strlit() - - See 'is_strlit()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_struct in module ida_bytes: f_is_struct(*args) -> 'bool' f_is_struct(F, arg2) -> bool + See is_struct() - - See 'is_struct()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_tail in module ida_bytes: f_is_tail(*args) -> 'bool' f_is_tail(F, arg2) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_tbyte in module ida_bytes: f_is_tbyte(*args) -> 'bool' f_is_tbyte(F, arg2) -> bool + See is_tbyte() - - See 'is_tbyte()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_word in module ida_bytes: f_is_word(*args) -> 'bool' f_is_word(F, arg2) -> bool + See is_word() - - See 'is_word()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_yword in module ida_bytes: f_is_yword(*args) -> 'bool' f_is_yword(F, arg2) -> bool + See is_yword() - - See 'is_yword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function find_byte in module ida_bytes: find_byte(*args) -> 'ea_t' find_byte(sEA, size, value, bin_search_flags) -> ea_t + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_byter in module ida_bytes: find_byter(*args) -> 'ea_t' find_byter(sEA, size, value, bin_search_flags) -> ea_t + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_custom_data_format in module ida_bytes: find_custom_data_format(*args) -> 'int' find_custom_data_format(name) -> int - - Get id of a custom data format. - @param name: name of the custom data format (C++: const char *) + @param name: (C++: const char *) name of the custom data format @return: id or -1 Help on function find_custom_data_type in module ida_bytes: find_custom_data_type(*args) -> 'int' find_custom_data_type(name) -> int - - Get id of a custom data type. - @param name: name of the custom data type (C++: const char *) + @param name: (C++: const char *) name of the custom data type @return: id or -1 +Help on function find_free_chunk in module ida_bytes: + +find_free_chunk(*args) -> 'ea_t' + find_free_chunk(start, size, alignment) -> ea_t + Search for a hole in the addressing space of the program. + + @param start: (C++: ea_t) Address to start searching from + @param size: (C++: asize_t) Size of the desired empty range + @param alignment: (C++: asize_t) Alignment bitmask, must be a pow2-1. (for example, 0xF would + align the returned range to 16 bytes). + @return: Start of the found empty range or BADADDR + Help on function float_flag in module ida_bytes: -float_flag(*args) -> 'flags_t' - float_flag() -> flags_t - - - Get a flags_t representing a float. +float_flag(*args) -> 'flags64_t' + float_flag() -> flags64_t + Get a flags64_t representing a float. Help on function flt_flag in module ida_bytes: -flt_flag(*args) -> 'flags_t' - flt_flag() -> flags_t - - - see 'Bits: instruction operand types' +flt_flag(*args) -> 'flags64_t' + flt_flag() -> flags64_t + see Bits: instruction operand types Help on function free_chunk in module ida_bytes: free_chunk(*args) -> 'ea_t' free_chunk(bottom, size, step) -> ea_t - - Search for a hole in the addressing space of the program. - - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR + @param bottom: ea_t + @param size: asize_t + @param step: int32 Help on function get_16bit in module ida_bytes: get_16bit(*args) -> 'uint32' get_16bit(ea) -> uint32 - - Get 16bits of the program at 'ea'. - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() Help on function get_32bit in module ida_bytes: get_32bit(*args) -> 'uint32' get_32bit(ea) -> uint32 - - Get not more than 32bits of the program at 'ea'. - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); Help on function get_64bit in module ida_bytes: get_64bit(*args) -> 'uint64' get_64bit(ea) -> uint64 - - Get not more than 64bits of the program at 'ea'. - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); Help on function get_8bit in module ida_bytes: get_8bit(*args) -> 'PyObject *' get_8bit(ea, v, nbit) -> PyObject * + + @param ea: ea_t + @param v: uint32 + @param nbit: int Help on function get_byte in module ida_bytes: get_byte(*args) -> 'uchar' get_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. - - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_bytes in module ida_bytes: get_bytes(*args) -> 'PyObject *' - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * - - + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: the bytes (as a str), or None in case of failure Help on function get_bytes_and_mask in module ida_bytes: get_bytes_and_mask(*args) -> 'PyObject *' get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * - - Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances. @@ -1645,113 +1899,94 @@ Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' get_cmt(ea, rptble) -> str - - Get an indented comment. - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? @return: size of comment or -1 Help on function get_custom_data_format in module ida_bytes: get_custom_data_format(*args) -> 'data_format_t const *' get_custom_data_format(dfid) -> data_format_t - - Get definition of a registered custom data format. - @param dfid: data format id (C++: int) - @return: data format definition or NULL + @param dfid: (C++: int) data format id + @return: data format definition or nullptr Help on function get_custom_data_formats in module ida_bytes: get_custom_data_formats(*args) -> 'int' get_custom_data_formats(out, dtid) -> int - - Get list of attached custom data formats for the specified data type. - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param dtid: data type id (C++: int) + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id @return: number of returned custom data formats. if error, returns -1 Help on function get_custom_data_type in module ida_bytes: get_custom_data_type(*args) -> 'data_type_t const *' get_custom_data_type(dtid) -> data_type_t - - Get definition of a registered custom data type. - @param dtid: data type id (C++: int) - @return: data type definition or NULL + @param dtid: (C++: int) data type id + @return: data type definition or nullptr Help on function get_custom_data_types in module ida_bytes: get_custom_data_types(*args) -> 'int' get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - - Get list of registered custom data type ids. - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size @return: number of custom data types with the specified size limits Help on function get_data_elsize in module ida_bytes: get_data_elsize(*args) -> 'asize_t' get_data_elsize(ea, F, ti=None) -> asize_t - - Get size of data type specified in flags 'F'. - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... Help on function get_data_value in module ida_bytes: get_data_value(*args) -> 'bool' get_data_value(v, ea, size) -> bool + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) - - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - - @param v: pointer to the result. may be NULL (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used @return: success Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_default_radix in module ida_bytes: get_default_radix(*args) -> 'int' get_default_radix() -> int - - Get default base of number for the current processor. @return: 2, 8, 10, 16 @@ -1760,430 +1995,344 @@ Help on function get_dword in module ida_bytes: get_dword(*args) -> 'uint32' get_dword(ea) -> uint32 + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_enum_id in module ida_bytes: get_enum_id(*args) -> 'uchar *' get_enum_id(ea, n) -> enum_t - - Get enum id of 'enum' operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE Help on function get_first_hidden_range in module ida_bytes: get_first_hidden_range(*args) -> 'hidden_range_t *' get_first_hidden_range() -> hidden_range_t - - Get pointer to the first hidden range. - @return: ptr to hidden range or NULL + @return: ptr to hidden range or nullptr Help on function get_flags in module ida_bytes: -get_flags(*args) -> 'flags_t' - get_flags(ea) -> flags_t +get_flags(*args) -> 'flags64_t' + get_flags(ea) -> flags64_t + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. - - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_flags_by_size in module ida_bytes: -get_flags_by_size(*args) -> 'flags_t' - get_flags_by_size(size) -> flags_t +get_flags_by_size(*args) -> 'flags64_t' + get_flags_by_size(size) -> flags64_t + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 - - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - - @param size (C++: size_t) + @param size: (C++: size_t) Help on function get_flags_ex in module ida_bytes: -get_flags_ex(*args) -> 'flags_t' - get_flags_ex(ea, how) -> flags_t - - +get_flags_ex(*args) -> 'flags64_t' + get_flags_ex(ea, how) -> flags64_t Get flags for the specified address, extended form. - - @param ea (C++: ea_t) - @param how (C++: int) + @param ea: (C++: ea_t) + @param how: (C++: int) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' get_forced_operand(ea, n) -> str - - Get forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) @return: size of forced operand or -1 Help on function get_full_data_elsize in module ida_bytes: get_full_data_elsize(*args) -> 'asize_t' get_full_data_elsize(ea, F, ti=None) -> asize_t + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes - - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * Help on function get_full_flags in module ida_bytes: -get_full_flags(*args) -> 'flags_t' - get_full_flags(ea) -> flags_t - - +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t Get flags value for address 'ea'. - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: 0 if address is not present in the program Help on function get_hidden_range in module ida_bytes: get_hidden_range(*args) -> 'hidden_range_t *' get_hidden_range(ea) -> hidden_range_t - - Get pointer to hidden range structure, in: linear address. - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range Help on function get_hidden_range_num in module ida_bytes: get_hidden_range_num(*args) -> 'int' get_hidden_range_num(ea) -> int - - Get number of a hidden range. - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) Help on function get_hidden_range_qty in module ida_bytes: get_hidden_range_qty(*args) -> 'int' get_hidden_range_qty() -> int - - Get number of hidden ranges. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_flag in module ida_bytes: -get_item_flag(*args) -> 'flags_t' - get_item_flag(_from, n, ea, appzero) -> flags_t +get_item_flag(*args) -> 'flags64_t' + get_item_flag(_from, n, ea, appzero) -> flags64_t + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. - - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. @return: flags or 0 (if failed) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_size in module ida_bytes: get_item_size(*args) -> 'asize_t' get_item_size(ea) -> asize_t + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. - - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_last_hidden_range in module ida_bytes: get_last_hidden_range(*args) -> 'hidden_range_t *' get_last_hidden_range() -> hidden_range_t - - Get pointer to the last hidden range. - @return: ptr to hidden range or NULL + @return: ptr to hidden range or nullptr Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' get_manual_insn(ea) -> str - - Retrieve the user-specified string for the manual instruction. - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item @return: size of manual instruction or -1 Help on function get_mapping in module ida_bytes: get_mapping(*args) -> 'ea_t *, ea_t *, asize_t *' get_mapping(n) -> bool - - Get memory mapping range by its number. - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' Help on function get_mappings_qty in module ida_bytes: get_mappings_qty(*args) -> 'size_t' get_mappings_qty() -> size_t - - Get number of mappings. Help on function get_max_strlit_length in module ida_bytes: get_max_strlit_length(*args) -> 'size_t' get_max_strlit_length(ea, strtype, options=0) -> size_t - - Determine maximum length of string literal. - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options @return: length of the string in octets (octet==8bit) Help on function get_next_hidden_range in module ida_bytes: get_next_hidden_range(*args) -> 'hidden_range_t *' get_next_hidden_range(ea) -> hidden_range_t - - Get pointer to next hidden range. - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if next hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist Help on function get_octet in module ida_bytes: get_octet(*args) -> 'PyObject *' - get_octet(ea, v, nbit) -> PyObject * + get_octet(ea, v, nbit) -> (int, int, int, int) + @param ea: ea_t + @param v: uint64 + @param nbit: int + +Help on function get_octet2 in module ida_bytes: + +get_octet2(*args) -> 'uchar *' + get_octet2(ogen) -> bool - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - - uint64 v; - int nbit = 0; - for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... - } - - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) + @param ogen: octet_generator_t * Help on function get_opinfo in module ida_bytes: get_opinfo(*args) -> 'opinfo_t *' get_opinfo(buf, ea, n, flags) -> opinfo_t - - Get additional information about an operand representation. - @param buf: buffer to receive the result. may not be NULL (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: NULL if no additional representation information + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags64_t) flags of the item + @return: nullptr if no additional representation information Help on function get_optype_flags0 in module ida_bytes: -get_optype_flags0(*args) -> 'flags_t' - get_optype_flags0(F) -> flags_t - - +get_optype_flags0(*args) -> 'flags64_t' + get_optype_flags0(F) -> flags64_t Get flags for first operand. - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function get_optype_flags1 in module ida_bytes: -get_optype_flags1(*args) -> 'flags_t' - get_optype_flags1(F) -> flags_t - - +get_optype_flags1(*args) -> 'flags64_t' + get_optype_flags1(F) -> flags64_t Get flags for second operand. - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_original_dword in module ida_bytes: get_original_dword(*args) -> 'uint64' get_original_dword(ea) -> uint64 + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() - - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_original_qword in module ida_bytes: get_original_qword(*args) -> 'uint64' get_original_qword(ea) -> uint64 + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() - - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_original_word in module ida_bytes: get_original_word(*args) -> 'uint64' get_original_word(ea) -> uint64 + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() - - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_predef_insn_cmt in module ida_bytes: get_predef_insn_cmt(*args) -> 'qstring *' get_predef_insn_cmt(ins) -> str - - Get predefined comment. - @param ins: current instruction information (C++: const insn_t &) + @param ins: (C++: const insn_t &) current instruction information @return: size of comment or -1 Help on function get_prev_hidden_range in module ida_bytes: get_prev_hidden_range(*args) -> 'hidden_range_t *' get_prev_hidden_range(ea) -> hidden_range_t - - Get pointer to previous hidden range. - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if previous hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_radix in module ida_bytes: get_radix(*args) -> 'int' get_radix(F, n) -> int + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() - - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param F: (C++: flags64_t) flags + @param n: (C++: int) number of operand (0, 1, -1) @return: 2, 8, 10, 16 Help on function get_strlit_contents in module ida_bytes: get_strlit_contents(*args) -> 'PyObject *' - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - - - Get bytes contents at location, possibly converted. + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will always return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) + @param py_len: length of the string in bytes (including terminating 0) @param type: type of the string. Represents both the character encoding, and the 'type' of string at the given location. @param flags: combination of STRCONV_..., to perform output conversion. @@ -2193,215 +2342,165 @@ Help on function get_stroff_path in module ida_bytes: get_stroff_path(*args) -> 'int' get_stroff_path(path, delta, ea, n) -> int - - Get struct path of operand. - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: length of strpath Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_word in module ida_bytes: get_word(*args) -> 'ushort' get_word(ea) -> ushort + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_zero_ranges in module ida_bytes: get_zero_ranges(*args) -> 'bool' get_zero_ranges(zranges, range) -> bool + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. - - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - - @param zranges: pointer to the return value. cannot be NULL (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be NULL - means - all ranges (C++: const range_t *) + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges @return: true if the result is a non-empty set Help on function getn_hidden_range in module ida_bytes: getn_hidden_range(*args) -> 'hidden_range_t *' getn_hidden_range(n) -> hidden_range_t - - Get pointer to hidden range structure, in: number of hidden range. - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 Help on function has_any_name in module ida_bytes: has_any_name(*args) -> 'bool' has_any_name(F) -> bool - - Does the current byte have any name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_auto_name in module ida_bytes: has_auto_name(*args) -> 'bool' has_auto_name(F) -> bool - - Does the current byte have auto-generated (no special prefix) name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_cmt in module ida_bytes: has_cmt(*args) -> 'bool' has_cmt(F) -> bool - - Does the current byte have an indented comment? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_dummy_name in module ida_bytes: has_dummy_name(*args) -> 'bool' has_dummy_name(F) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_extra_cmts in module ida_bytes: has_extra_cmts(*args) -> 'bool' has_extra_cmts(F) -> bool - - Does the current byte have additional anterior or posterior lines? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_immd in module ida_bytes: has_immd(*args) -> 'bool' has_immd(F) -> bool - - Has immediate value? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_name in module ida_bytes: has_name(*args) -> 'bool' has_name(F) -> bool - - Does the current byte have non-trivial (non-dummy) name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_user_name in module ida_bytes: has_user_name(*args) -> 'bool' has_user_name(F) -> bool - - Does the current byte have user-specified name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_value in module ida_bytes: has_value(*args) -> 'bool' has_value(F) -> bool - - Do flags contain byte value? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_xref in module ida_bytes: has_xref(*args) -> 'bool' has_xref(F) -> bool - - Does the current byte have cross-references to it? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function hex_flag in module ida_bytes: -hex_flag(*args) -> 'flags_t' - hex_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +hex_flag(*args) -> 'flags64_t' + hex_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on class hidden_range_t in module ida_bytes: @@ -2427,65 +2526,94 @@ class hidden_range_t(ida_range.range_t) | Data descriptors defined here: | | color - | hidden_range_t_color_get(self) -> bgcolor_t + | color | | description - | hidden_range_t_description_get(self) -> char * + | description | | footer - | hidden_range_t_footer_get(self) -> char * + | footer | | header - | hidden_range_t_header_get(self) -> char * + | header | | thisown | The membership flag | | visible - | hidden_range_t_visible_get(self) -> bool + | visible | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2496,15 +2624,11 @@ class hidden_range_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -2515,1342 +2639,1150 @@ Help on function is_align in module ida_bytes: is_align(*args) -> 'bool' is_align(F) -> bool + FF_ALIGN - - 'FF_ALIGN' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_attached_custom_data_format in module ida_bytes: is_attached_custom_data_format(*args) -> 'bool' is_attached_custom_data_format(dtid, dfid) -> bool + Is the custom data format attached to the custom data type? + + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false Help on function is_bnot in module ida_bytes: is_bnot(*args) -> 'bool' is_bnot(ea, F, n) -> bool + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function - - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_byte in module ida_bytes: is_byte(*args) -> 'bool' is_byte(F) -> bool + FF_BYTE - - 'FF_BYTE' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_char in module ida_bytes: is_char(*args) -> 'bool' is_char(F, n) -> bool - - is character constant? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_char0 in module ida_bytes: is_char0(*args) -> 'bool' is_char0(F) -> bool - - Is the first operand character constant? (example: push 'a') - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_char1 in module ida_bytes: is_char1(*args) -> 'bool' is_char1(F) -> bool - - Is the second operand character constant? (example: mov al, 'a') - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_code in module ida_bytes: is_code(*args) -> 'bool' is_code(F) -> bool - - Does flag denote start of an instruction? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_custfmt in module ida_bytes: is_custfmt(*args) -> 'bool' is_custfmt(F, n) -> bool - - is custom data format? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_custfmt0 in module ida_bytes: is_custfmt0(*args) -> 'bool' is_custfmt0(F) -> bool - - Does the first operand use a custom data representation? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_custfmt1 in module ida_bytes: is_custfmt1(*args) -> 'bool' is_custfmt1(F) -> bool - - Does the second operand use a custom data representation? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_custom in module ida_bytes: is_custom(*args) -> 'bool' is_custom(F) -> bool + FF_CUSTOM - - 'FF_CUSTOM' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_data in module ida_bytes: is_data(*args) -> 'bool' is_data(F) -> bool - - Does flag denote start of data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_defarg in module ida_bytes: is_defarg(*args) -> 'bool' is_defarg(F, n) -> bool - - is defined? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_defarg0 in module ida_bytes: is_defarg0(*args) -> 'bool' is_defarg0(F) -> bool + Is the first operand defined? Initially operand has no defined representation. - - Is the first operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_defarg1 in module ida_bytes: is_defarg1(*args) -> 'bool' is_defarg1(F) -> bool + Is the second operand defined? Initially operand has no defined representation. - - Is the second operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_double in module ida_bytes: is_double(*args) -> 'bool' is_double(F) -> bool + FF_DOUBLE - - 'FF_DOUBLE' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_dword in module ida_bytes: is_dword(*args) -> 'bool' is_dword(F) -> bool + FF_DWORD - - 'FF_DWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_enum in module ida_bytes: is_enum(*args) -> 'bool' is_enum(F, n) -> bool - - is enum? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_enum0 in module ida_bytes: is_enum0(*args) -> 'bool' is_enum0(F) -> bool - - Is the first operand a symbolic constant (enum member)? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_enum1 in module ida_bytes: is_enum1(*args) -> 'bool' is_enum1(F) -> bool - - Is the second operand a symbolic constant (enum member)? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_float in module ida_bytes: is_float(*args) -> 'bool' is_float(F) -> bool + FF_FLOAT - - 'FF_FLOAT' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_float0 in module ida_bytes: is_float0(*args) -> 'bool' is_float0(F) -> bool - - Is the first operand a floating point number? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_float1 in module ida_bytes: is_float1(*args) -> 'bool' is_float1(F) -> bool - - Is the second operand a floating point number? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_flow in module ida_bytes: is_flow(*args) -> 'bool' is_flow(F) -> bool + Does the previous instruction exist and pass execution flow to the current byte? - - Does the previous instruction exist and pass execution flow to the - current byte? - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_fltnum in module ida_bytes: is_fltnum(*args) -> 'bool' is_fltnum(F, n) -> bool - - is floating point number? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_forced_operand in module ida_bytes: is_forced_operand(*args) -> 'bool' is_forced_operand(ea, n) -> bool - - Is operand manually defined?. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) Help on function is_func in module ida_bytes: is_func(*args) -> 'bool' is_func(F) -> bool - - Is function start? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_head in module ida_bytes: is_head(*args) -> 'bool' is_head(F) -> bool - - Does flag denote start of instruction OR data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_invsign in module ida_bytes: is_invsign(*args) -> 'bool' is_invsign(ea, F, n) -> bool + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands - - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_loaded in module ida_bytes: is_loaded(*args) -> 'bool' is_loaded(ea) -> bool - - Does the specified address have a byte value (is initialized?) - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_lzero in module ida_bytes: is_lzero(*args) -> 'bool' is_lzero(ea, n) -> bool + Display leading zeroes? Display leading zeroes in operands. The global switch + for the leading zeroes is in idainfo::s_genflags Note: the leading zeroes + doesn't work if for the target assembler octal numbers start with 0. - - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function is_manual in module ida_bytes: is_manual(*args) -> 'bool' is_manual(F, n) -> bool + is forced operand? (use is_forced_operand()) - - is forced operand? (use 'is_forced_operand()' ) - - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_manual_insn in module ida_bytes: is_manual_insn(*args) -> 'bool' is_manual_insn(ea) -> bool - - Is the instruction overridden? - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item Help on function is_mapped in module ida_bytes: is_mapped(*args) -> 'bool' is_mapped(ea) -> bool - - Is the specified address 'ea' present in the program? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_not_tail in module ida_bytes: is_not_tail(*args) -> 'bool' is_not_tail(F) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_numop in module ida_bytes: is_numop(*args) -> 'bool' is_numop(F, n) -> bool - - is number (bin, oct, dec, hex)? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_numop0 in module ida_bytes: is_numop0(*args) -> 'bool' is_numop0(F) -> bool - - Is the first operand a number (i.e. binary, octal, decimal or hex?) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_numop1 in module ida_bytes: is_numop1(*args) -> 'bool' is_numop1(F) -> bool - - Is the second operand a number (i.e. binary, octal, decimal or hex?) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_off in module ida_bytes: is_off(*args) -> 'bool' is_off(F, n) -> bool - - is offset? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_off0 in module ida_bytes: is_off0(*args) -> 'bool' is_off0(F) -> bool - - Is the first operand offset? (example: push offset xxx) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_off1 in module ida_bytes: is_off1(*args) -> 'bool' is_off1(F) -> bool - - Is the second operand offset? (example: mov ax, offset xxx) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_oword in module ida_bytes: is_oword(*args) -> 'bool' is_oword(F) -> bool + FF_OWORD - - 'FF_OWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) -> 'bool' is_pack_real(F) -> bool + FF_PACKREAL - - 'FF_PACKREAL' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_qword in module ida_bytes: is_qword(*args) -> 'bool' is_qword(F) -> bool + FF_QWORD - - 'FF_QWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_same_data_type in module ida_bytes: is_same_data_type(*args) -> 'bool' is_same_data_type(F1, F2) -> bool - - Do the given flags specify the same data type? - - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) + @param F1: (C++: flags64_t) + @param F2: (C++: flags64_t) Help on function is_seg in module ida_bytes: is_seg(*args) -> 'bool' is_seg(F, n) -> bool - - is segment? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_seg0 in module ida_bytes: is_seg0(*args) -> 'bool' is_seg0(F) -> bool - - Is the first operand segment selector? (example: push seg seg001) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_seg1 in module ida_bytes: is_seg1(*args) -> 'bool' is_seg1(F) -> bool - - Is the second operand segment selector? (example: mov dx, seg dseg) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stkvar in module ida_bytes: is_stkvar(*args) -> 'bool' is_stkvar(F, n) -> bool - - is stack variable? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_stkvar0 in module ida_bytes: is_stkvar0(*args) -> 'bool' is_stkvar0(F) -> bool - - Is the first operand a stack variable? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stkvar1 in module ida_bytes: is_stkvar1(*args) -> 'bool' is_stkvar1(F) -> bool - - Is the second operand a stack variable? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) -> 'bool' is_strlit(F) -> bool + FF_STRLIT - - 'FF_STRLIT' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stroff in module ida_bytes: is_stroff(*args) -> 'bool' is_stroff(F, n) -> bool - - is struct offset? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_stroff0 in module ida_bytes: is_stroff0(*args) -> 'bool' is_stroff0(F) -> bool - - Is the first operand an offset within a struct? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stroff1 in module ida_bytes: is_stroff1(*args) -> 'bool' is_stroff1(F) -> bool - - Is the second operand an offset within a struct? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_struct in module ida_bytes: is_struct(*args) -> 'bool' is_struct(F) -> bool + FF_STRUCT - - 'FF_STRUCT' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_suspop in module ida_bytes: is_suspop(*args) -> 'bool' is_suspop(ea, F, n) -> bool - - is suspicious operand? - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_tail in module ida_bytes: is_tail(*args) -> 'bool' is_tail(F) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) -> 'bool' is_tbyte(F) -> bool + FF_TBYTE - - 'FF_TBYTE' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_unknown in module ida_bytes: is_unknown(*args) -> 'bool' is_unknown(F) -> bool - - Does flag denote unexplored byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_varsize_item in module ida_bytes: is_varsize_item(*args) -> 'int' is_varsize_item(ea, F, ti=None, itemsize=None) -> int - - Is the item at 'ea' variable size?. - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @param itemsize: if not NULL and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) Help on function is_word in module ida_bytes: is_word(*args) -> 'bool' is_word(F) -> bool + FF_WORD - - 'FF_WORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_yword in module ida_bytes: is_yword(*args) -> 'bool' is_yword(F) -> bool + FF_YWORD - - 'FF_YWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_zword in module ida_bytes: is_zword(*args) -> 'bool' is_zword(F) -> bool + FF_ZWORD - - 'FF_ZWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function leading_zero_important in module ida_bytes: leading_zero_important(*args) -> 'bool' leading_zero_important(ea, n) -> bool - - Check if leading zeroes are important. - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function nbits in module ida_bytes: nbits(*args) -> 'int' nbits(ea) -> int - - Get number of bits in a byte at the given address. - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, otherwise the result depends on the segment type Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' next_addr(ea) -> ea_t - - Get next address in the program (i.e. next address which has flags). - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_chunk in module ida_bytes: next_chunk(*args) -> 'ea_t' next_chunk(ea) -> ea_t - - Get the first address of next contiguous chunk in the program. - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. Help on function next_head in module ida_bytes: next_head(*args) -> 'ea_t' next_head(ea, maxea) -> ea_t - - Get start of next defined item. - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. Help on function next_inited in module ida_bytes: next_inited(*args) -> 'ea_t' next_inited(ea, maxea) -> ea_t - - Find the next initialized address. - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' next_not_tail(ea) -> ea_t - - Get address of next non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function next_that in module ida_bytes: next_that(*args) -> 'ea_t' - next_that(ea, maxea, callable) -> ea_t - - + next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address @return: the found address or BADADDR. Help on function next_unknown in module ida_bytes: next_unknown(*args) -> 'ea_t' next_unknown(ea, maxea) -> ea_t + Similar to next_that(), but will find the next address that is unexplored. + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) + +Help on function next_visea in module ida_bytes: + +next_visea(*args) -> 'ea_t' + next_visea(ea) -> ea_t + Get next visible address. - Similar to 'next_that()' , but will find the next address that is - unexplored. - - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function num_flag in module ida_bytes: -num_flag(*args) -> 'flags_t' - num_flag() -> flags_t - - +num_flag(*args) -> 'flags64_t' + num_flag() -> flags64_t Get number of default base (bin, oct, dec, hex) Help on function oct_flag in module ida_bytes: -oct_flag(*args) -> 'flags_t' - oct_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +oct_flag(*args) -> 'flags64_t' + oct_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on class octet_generator_t in module ida_bytes: + +class octet_generator_t(builtins.object) + | Proxy of C++ octet_generator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> octet_generator_t + | + | @param _ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_octet_generator_t(...) + | delete_octet_generator_t(self) + | + | invert_byte_order(self, *args) -> 'void' + | invert_byte_order(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | avail_bits + | avail_bits + | + | ea + | ea + | + | high_byte_first + | high_byte_first + | + | thisown + | The membership flag + | + | value + | value Help on function off_flag in module ida_bytes: -off_flag(*args) -> 'flags_t' - off_flag() -> flags_t - - - see 'Bits: instruction operand types' +off_flag(*args) -> 'flags64_t' + off_flag() -> flags64_t + see Bits: instruction operand types Help on function op_adds_xrefs in module ida_bytes: op_adds_xrefs(*args) -> 'bool' op_adds_xrefs(F, n) -> bool + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs - - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' op_bin(ea, n) -> bool + set op type to bin_flag() - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' op_chr(ea, n) -> bool + set op type to char_flag() - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_custfmt in module ida_bytes: op_custfmt(*args) -> 'bool' op_custfmt(ea, n, fid) -> bool - - Set custom data format for operand (fid-custom data format id) - - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' op_dec(ea, n) -> bool + set op type to dec_flag() - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' op_flt(ea, n) -> bool + set op type to flt_flag() - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' op_hex(ea, n) -> bool + set op type to hex_flag() - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' op_num(ea, n) -> bool + set op type to num_flag() - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' op_oct(ea, n) -> bool + set op type to oct_flag() - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stroff in module ida_bytes: op_stroff(*args) -> 'bool' op_stroff(insn, n, path, path_len, delta) -> bool + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data - - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. @return: success - - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> Help on function oword_flag in module ida_bytes: -oword_flag(*args) -> 'flags_t' - oword_flag() -> flags_t - - - Get a flags_t representing a octaword. +oword_flag(*args) -> 'flags64_t' + oword_flag() -> flags64_t + Get a flags64_t representing a octaword. Help on function packreal_flag in module ida_bytes: -packreal_flag(*args) -> 'flags_t' - packreal_flag() -> flags_t +packreal_flag(*args) -> 'flags64_t' + packreal_flag() -> flags64_t + Get a flags64_t representing a packed decimal real. + +Help on function parse_binpat_str in module ida_bytes: + +parse_binpat_str(*args) -> 'qstring *' + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: + - numbers (numeric base is determined by 'radix') + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes + - "..." string constants + - 'x' single-character constants + - ? variable bytes + Note that string constants are surrounded with double quotes. - Get a flags_t representing a packed decimal real. + Here are a few examples (assuming base 16): + CD 21 - bytes 0xCD, 0x21 + 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) + "Hello", 0 - the null terminated string "Hello" + L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 + B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 + + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_bytes in module ida_bytes: patch_bytes(*args) -> 'void' patch_bytes(ea, buf) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). - - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' prev_addr(ea) -> ea_t - - Get previous address in the program. - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_chunk in module ida_bytes: prev_chunk(*args) -> 'ea_t' prev_chunk(ea) -> ea_t - - Get the last address of previous contiguous chunk in the program. - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. Help on function prev_head in module ida_bytes: prev_head(*args) -> 'ea_t' prev_head(ea, minea) -> ea_t - - Get start of previous defined item. - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. Help on function prev_inited in module ida_bytes: prev_inited(*args) -> 'ea_t' prev_inited(ea, minea) -> ea_t - - Find the previous initialized address. - - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' prev_not_tail(ea) -> ea_t - - Get address of previous non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function prev_that in module ida_bytes: prev_that(*args) -> 'ea_t' - prev_that(ea, minea, callable) -> ea_t + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). - - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . - - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - @return: the found address or BADADDR . + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. Help on function prev_unknown in module ida_bytes: prev_unknown(*args) -> 'ea_t' prev_unknown(ea, minea) -> ea_t + Similar to prev_that(), but will find the previous address that is unexplored. + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) + +Help on function prev_visea in module ida_bytes: + +prev_visea(*args) -> 'ea_t' + prev_visea(ea) -> ea_t + Get previous visible address. - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - - - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) -> 'PyObject *' - print_strlit_type(strtype, flags=0) -> PyObject * + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. - - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. - - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants @return: length of generated text Help on function put_byte in module ida_bytes: put_byte(*args) -> 'bool' put_byte(ea, x) -> bool + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. - - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value @return: true if the database has been modified Help on function put_bytes in module ida_bytes: put_bytes(*args) -> 'void' put_bytes(ea, buf) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). - - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function put_dword in module ida_bytes: put_dword(*args) -> 'void' put_dword(ea, x) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. - - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. Help on function put_qword in module ida_bytes: put_qword(*args) -> 'void' put_qword(ea, x) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. - - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value Help on function put_word in module ida_bytes: put_word(*args) -> 'void' put_word(ea, x) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value - - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function qword_flag in module ida_bytes: -qword_flag(*args) -> 'flags_t' - qword_flag() -> flags_t - - - Get a flags_t representing a quad word. +qword_flag(*args) -> 'flags64_t' + qword_flag() -> flags64_t + Get a flags64_t representing a quad word. Help on function register_custom_data_format in module ida_bytes: register_custom_data_format(*args) -> 'int' register_custom_data_format(py_df) -> int - - Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register > 0 data format id Help on function register_custom_data_type in module ida_bytes: register_custom_data_type(*args) -> 'int' register_custom_data_type(py_dt) -> int - - Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register > 0 data type id Help on function register_data_types_and_formats in module ida_bytes: @@ -3881,190 +3813,169 @@ Help on function revert_byte in module ida_bytes: revert_byte(*args) -> 'bool' revert_byte(ea) -> bool - - Revert patched byte + @retval true: byte was patched before and reverted now - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function seg_flag in module ida_bytes: -seg_flag(*args) -> 'flags_t' - seg_flag() -> flags_t - - - see 'Bits: instruction operand types' +seg_flag(*args) -> 'flags64_t' + seg_flag() -> flags64_t + see Bits: instruction operand types Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' set_cmt(ea, comm, rptble) -> bool - - Set an indented comment. - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? @return: success Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' set_forced_operand(ea, n, op) -> bool - - Set forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand @return: success Help on function set_immd in module ida_bytes: set_immd(*args) -> 'bool' set_immd(ea) -> bool + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set - - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_lzero in module ida_bytes: set_lzero(*args) -> 'bool' set_lzero(ea, n) -> bool + Set toggle lzero bit. This function changes the display of leading zeroes for + the specified operand. If the default is not to display leading zeroes, this + function will display them and vice versa. - - Set toggle lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' set_manual_insn(ea, manual_insn) - - Set manual instruction string. - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_op_type in module ida_bytes: set_op_type(*args) -> 'bool' set_op_type(ea, type, n) -> bool - - (internal function) change representation of operand(s). - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param type: (C++: flags64_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) Help on function set_opinfo in module ida_bytes: set_opinfo(*args) -> 'bool' set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. - - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags64_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. Help on function stkvar_flag in module ida_bytes: -stkvar_flag(*args) -> 'flags_t' - stkvar_flag() -> flags_t - - - see 'Bits: instruction operand types' +stkvar_flag(*args) -> 'flags64_t' + stkvar_flag() -> flags64_t + see Bits: instruction operand types Help on function strlit_flag in module ida_bytes: -strlit_flag(*args) -> 'flags_t' - strlit_flag() -> flags_t - - - Get a flags_t representing a string literal. +strlit_flag(*args) -> 'flags64_t' + strlit_flag() -> flags64_t + Get a flags64_t representing a string literal. Help on function stroff_flag in module ida_bytes: -stroff_flag(*args) -> 'flags_t' - stroff_flag() -> flags_t - - - see 'Bits: instruction operand types' +stroff_flag(*args) -> 'flags64_t' + stroff_flag() -> flags64_t + see Bits: instruction operand types Help on function stru_flag in module ida_bytes: -stru_flag(*args) -> 'flags_t' - stru_flag() -> flags_t - - - Get a flags_t representing a struct. +stru_flag(*args) -> 'flags64_t' + stru_flag() -> flags64_t + Get a flags64_t representing a struct. Help on function tbyte_flag in module ida_bytes: -tbyte_flag(*args) -> 'flags_t' - tbyte_flag() -> flags_t - - - Get a flags_t representing a tbyte. +tbyte_flag(*args) -> 'flags64_t' + tbyte_flag() -> flags64_t + Get a flags64_t representing a tbyte. Help on function toggle_bnot in module ida_bytes: toggle_bnot(*args) -> 'bool' toggle_bnot(ea, n) -> bool + Toggle binary negation of operand. also see is_bnot() - - Toggle binary negation of operand. also see 'is_bnot()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function toggle_lzero in module ida_bytes: toggle_lzero(*args) -> 'bool' toggle_lzero(ea, n) -> bool + Toggle lzero bit. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function unregister_custom_data_format in module ida_bytes: unregister_custom_data_format(*args) -> 'bool' unregister_custom_data_format(dfid) -> bool - - Unregisters a custom data format + @param dfid: data format id @return: Boolean @@ -4072,9 +3983,8 @@ Help on function unregister_custom_data_type in module ida_bytes: unregister_custom_data_type(*args) -> 'bool' unregister_custom_data_type(dtid) -> bool - - Unregisters a custom data type. + @param dtid: the data type id @return: Boolean @@ -4088,35 +3998,30 @@ Help on function update_hidden_range in module ida_bytes: update_hidden_range(*args) -> 'bool' update_hidden_range(ha) -> bool + Update hidden range information in the database. You cannot use this function to + change the range boundaries - - Update hidden range information in the database. You cannot use this - function to change the range boundaries - - @param ha: range to update (C++: const hidden_range_t *) + @param ha: (C++: const hidden_range_t *) range to update @return: success Help on function use_mapping in module ida_bytes: use_mapping(*args) -> 'ea_t' use_mapping(ea) -> ea_t - - Translate address according to current mappings. - @param ea: address to translate (C++: ea_t) + @param ea: (C++: ea_t) address to translate @return: translated address Help on function visit_patched_bytes in module ida_bytes: visit_patched_bytes(*args) -> 'int' visit_patched_bytes(ea1, ea2, py_callable) -> int - - Enumerates patched bytes in the given range and invokes a callable + @param ea1: start address @param ea2: end address - @param callable: a Python callable with the following prototype: + @param py_callable: a Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be @@ -4126,580 +4031,31 @@ visit_patched_bytes(*args) -> 'int' Help on function word_flag in module ida_bytes: -word_flag(*args) -> 'flags_t' - word_flag() -> flags_t - - - Get a flags_t representing a word. +word_flag(*args) -> 'flags64_t' + word_flag() -> flags64_t + Get a flags64_t representing a word. Help on function yword_flag in module ida_bytes: -yword_flag(*args) -> 'flags_t' - yword_flag() -> flags_t - - - Get a flags_t representing a ymm word. +yword_flag(*args) -> 'flags64_t' + yword_flag() -> flags64_t + Get a flags64_t representing a ymm word. Help on function zword_flag in module ida_bytes: -zword_flag(*args) -> 'flags_t' - zword_flag() -> flags_t - - - Get a flags_t representing a zmm word. +zword_flag(*args) -> 'flags64_t' + zword_flag() -> flags64_t + Get a flags64_t representing a zmm word. -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -accumulated length - -if string length is more than 4K, return the -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -Just delete xrefs, ops e.t.c. - -do not undefine the function start. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -even if 'AF_TRFUNC' is set - -don't truncate the current function -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? +Module "ida_dbg"s docstring: """ +Contains functions to control the debugging of a process. -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" +See Debugger functions for a complete explanation of these functions. -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. -""" - -ida_bytes.FF_STRLIT -""" -string literal -""" - -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" - -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -if this bit is not set, fail at first uninited byte - -try to read all bytes -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings window') -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === Help on class DBG_Hooks in module ida_dbg: class DBG_Hooks(builtins.object) @@ -4710,7 +4066,10 @@ class DBG_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> DBG_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> DBG_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | @@ -4719,45 +4078,122 @@ class DBG_Hooks(builtins.object) | | dbg_bpt(self, *args) -> 'int' | dbg_bpt(self, tid, bptea) -> int + | A user defined breakpoint was reached. + | + | @param tid: (thid_t) + | @param bptea: (::ea_t) | | dbg_bpt_changed(self, *args) -> 'void' | dbg_bpt_changed(self, bptev_code, bpt) + | Breakpoint has been changed. + | + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) | | dbg_exception(self, *args) -> 'int' | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * | | dbg_finished_loading_bpts(self, *args) -> 'void' | dbg_finished_loading_bpts(self) + | Finished loading breakpoint info from idb. | | dbg_information(self, *args) -> 'void' | dbg_information(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_library_load(self, *args) -> 'void' | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_library_unload(self, *args) -> 'void' | dbg_library_unload(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_process_attach(self, *args) -> 'void' | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_process_detach(self, *args) -> 'void' | dbg_process_detach(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t | | dbg_process_exit(self, *args) -> 'void' | dbg_process_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_process_start(self, *args) -> 'void' | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_request_error(self, *args) -> 'void' | dbg_request_error(self, failed_command, failed_dbg_notification) + | An error occurred during the processing of a request. + | + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) | | dbg_run_to(self, *args) -> 'void' | dbg_run_to(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_started_loading_bpts(self, *args) -> 'void' | dbg_started_loading_bpts(self) + | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) -> 'void' | dbg_step_into(self) @@ -4770,18 +4206,38 @@ class DBG_Hooks(builtins.object) | | dbg_suspend_process(self, *args) -> 'void' | dbg_suspend_process(self) + | The process is now suspended. | | dbg_thread_exit(self, *args) -> 'void' | dbg_thread_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_thread_start(self, *args) -> 'void' | dbg_thread_start(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_trace(self, *args) -> 'int' | dbg_trace(self, tid, ip) -> int + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -4805,53 +4261,51 @@ Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + add_bpt(bpt) -> bool - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + @param bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) -> 'void' add_path_mapping(src, dst) + + @param src: char const * + @param dst: char const * Help on function add_virt_module in module ida_dbg: add_virt_module(*args) -> 'bool' add_virt_module(mod) -> bool + + @param mod: modinfo_t const * Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on class bpt_location_t in module ida_dbg: @@ -4862,24 +4316,36 @@ class bpt_location_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __repr__ = _swig_repr(self) | @@ -4888,39 +4354,67 @@ class bpt_location_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & | | ea(self, *args) -> 'ea_t' | ea(self) -> ea_t + | Get address (BPLT_ABS) | | is_empty_path(self, *args) -> 'bool' | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) | | lineno(self, *args) -> 'int' | lineno(self) -> int + | Get line number (BPLT_SRC) | | offset(self, *args) -> 'uval_t' | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) | | path(self, *args) -> 'char const *' | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) | | set_abs_bpt(self, *args) -> 'void' | set_abs_bpt(self, a) + | Specify an absolute address location. + | + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' | set_rel_bpt(self, mod, _offset) + | Specify a relative address location. + | + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' | set_src_bpt(self, fn, _lineno) + | Specify a source level location. + | + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' | set_sym_bpt(self, _symbol, _offset=0) + | Specify a symbolic location. + | + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | symbol(self, *args) -> 'char const *' | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) | | type(self, *args) -> 'bpt_loctype_t' | type(self) -> bpt_loctype_t + | Get bpt type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4932,13 +4426,13 @@ class bpt_location_t(builtins.object) | list of weak references to the object (if defined) | | index - | bpt_location_t_index_get(self) -> int + | index | | info - | bpt_location_t_info_get(self) -> ea_t + | info | | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t + | loctype | | thisown | The membership flag @@ -4965,75 +4459,112 @@ class bpt_t(builtins.object) | | badbpt(self, *args) -> 'bool' | badbpt(self) -> bool + | Failed to write bpt to process memory? | | enabled(self, *args) -> 'bool' | enabled(self) -> bool + | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) -> 'size_t' | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) -> 'int' | get_size(self) -> int + | Get bpt size. | | is_absbpt(self, *args) -> 'bool' | is_absbpt(self) -> bool + | Is absolute address breakpoint? | | is_active(self, *args) -> 'bool' | is_active(self) -> bool + | Written completely to process? | | is_compiled(self, *args) -> 'bool' | is_compiled(self) -> bool + | Condition has been compiled? | | is_hwbpt(self, *args) -> 'bool' | is_hwbpt(self) -> bool + | Is hardware breakpoint? | | is_inactive(self, *args) -> 'bool' | is_inactive(self) -> bool + | Not written to process at all? | | is_low_level(self, *args) -> 'bool' | is_low_level(self) -> bool + | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) -> 'bool' | is_page_bpt(self) -> bool + | Page breakpoint? | | is_partially_active(self, *args) -> 'bool' | is_partially_active(self) -> bool + | Written partially to process? | | is_relbpt(self, *args) -> 'bool' | is_relbpt(self) -> bool + | Is relative address breakpoint? | | is_srcbpt(self, *args) -> 'bool' | is_srcbpt(self) -> bool + | Is source level breakpoint? | | is_symbpt(self, *args) -> 'bool' | is_symbpt(self) -> bool + | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) -> 'bool' | is_tracemodebpt(self) -> bool + | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) -> 'bool' | is_traceoffbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) -> 'bool' | is_traceonbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) -> 'bool' | listbpt(self) -> bool + | Include in the bpt list? | | set_abs_bpt(self, *args) -> 'void' | set_abs_bpt(self, a) + | Set bpt location to an absolute address. + | + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' | set_rel_bpt(self, mod, o) + | Set bpt location to a relative address. + | + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' | set_src_bpt(self, fn, lineno) + | Set bpt location to a source line. + | + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' | set_sym_bpt(self, sym, o) + | Set bpt location to a symbol. + | + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_trace_action(self, *args) -> 'bool' | set_trace_action(self, enable, trace_types) -> bool + | Configure tracing options. + | + | @param enable: (C++: bool) + | @param trace_types: (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -5044,47 +4575,50 @@ class bpt_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bptid + | bptid + | | cb - | bpt_t_cb_get(self) -> size_t + | cb | | cndidx - | bpt_t_cndidx_get(self) -> int + | cndidx | | condition - | bpt_t_condition_get(self) -> PyObject * + | condition | | ea - | bpt_t_ea_get(self) -> ea_t + | ea | | elang - | bpt_t_elang_get(self) -> PyObject * + | elang | | flags - | bpt_t_flags_get(self) -> uint32 + | flags | | loc - | bpt_t_loc_get(self) -> bpt_location_t + | loc | | pass_count - | bpt_t_pass_count_get(self) -> int + | pass_count | | pid - | bpt_t_pid_get(self) -> pid_t + | pid | | props - | bpt_t_props_get(self) -> uint32 + | props | | size - | bpt_t_size_get(self) -> int + | size | | thisown | The membership flag | | tid - | bpt_t_tid_get(self) -> thid_t + | tid | | type - | bpt_t_type_get(self) -> bpttype_t + | type Help on class bpt_vec_t in module ida_dbg: @@ -5095,10 +4629,14 @@ class bpt_vec_t(builtins.object) | | __getitem__(self, *args) -> 'bpt_t const &' | __getitem__(self, i) -> bpt_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -5110,19 +4648,23 @@ class bpt_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bpt_t const & | | __swig_destroy__ = delete_bpt_vec_t(...) | delete_bpt_vec_t(self) | | at(self, *args) -> 'bpt_t const &' | at(self, _idx) -> bpt_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bpt_t >::const_iterator' | begin(self) -> bpt_t - | begin(self) -> bpt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -5135,11 +4677,16 @@ class bpt_vec_t(builtins.object) | | end(self, *args) -> 'qvector< bpt_t >::const_iterator' | end(self) -> bpt_t - | end(self) -> bpt_t | | erase(self, *args) -> 'qvector< bpt_t >::iterator' | erase(self, it) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | | erase(self, first, last) -> bpt_t + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator | | extract(self, *args) -> 'bpt_t *' | extract(self) -> bpt_t @@ -5149,18 +4696,29 @@ class bpt_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=bpt_t()) + | + | @param x: bpt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: bpt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bpt_t >::iterator' | insert(self, it, x) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bpt_t &' | push_back(self, x) + | + | @param x: bpt_t const & + | | push_back(self) -> bpt_t | | qclear(self, *args) -> 'void' @@ -5168,16 +4726,26 @@ class bpt_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bpt_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< bpt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -5194,6 +4762,36 @@ class bpt_vec_t(builtins.object) | thisown | The membership flag +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(builtins.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddrs_t(...) + | delete_bptaddrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + Help on function bring_debugger_to_front in module ida_dbg: bring_debugger_to_front(*args) -> 'void' @@ -5203,274 +4801,249 @@ Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' check_bpt(ea) -> int - - Check the breakpoint at the specified address. - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_trace_file in module ida_dbg: choose_trace_file(*args) -> 'qstring *' choose_trace_file() -> str - - Show the choose trace dialog. Help on function clear_requests_queue in module ida_dbg: clear_requests_queue(*args) -> 'void' clear_requests_queue() - - Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. Help on function clear_trace in module ida_dbg: clear_trace(*args) -> 'void' clear_trace() - - - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) -> 'bool' collect_stack_trace(tid, trace) -> bool + + @param tid: thid_t + @param trace: call_stack_t * Help on function continue_process in module ida_dbg: continue_process(*args) -> 'bool' continue_process() -> bool - - - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. Help on function create_source_viewer in module ida_dbg: create_source_viewer(*args) -> 'source_view_t *' create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - - Create a source code view. - - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) Help on function dbg_add_bpt_tev in module ida_dbg: dbg_add_bpt_tev(*args) -> 'bool' dbg_add_bpt_tev(tid, ea, bp) -> bool + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) @return: false if the operation failed, true otherwise Help on function dbg_add_call_tev in module ida_dbg: dbg_add_call_tev(*args) -> 'void' dbg_add_call_tev(tid, caller, callee) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function dbg_add_debug_event in module ida_dbg: dbg_add_debug_event(*args) -> 'void' dbg_add_debug_event(event) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param event (C++: debug_event_t *) + @param event: (C++: debug_event_t *) Help on function dbg_add_insn_tev in module ida_dbg: dbg_add_insn_tev(*args) -> 'bool' dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t @return: false if the operation failed, true otherwise Help on function dbg_add_many_tevs in module ida_dbg: dbg_add_many_tevs(*args) -> 'bool' dbg_add_many_tevs(new_tevs) -> bool + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object Help on function dbg_add_ret_tev in module ida_dbg: dbg_add_ret_tev(*args) -> 'void' dbg_add_ret_tev(tid, ret_insn, return_to) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) Help on function dbg_add_tev in module ida_dbg: dbg_add_tev(*args) -> 'void' dbg_add_tev(type, tid, address) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) Help on function dbg_add_thread in module ida_dbg: dbg_add_thread(*args) -> 'void' dbg_add_thread(tid) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} - - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function dbg_bin_search in module ida_dbg: dbg_bin_search(*args) -> 'unsigned-ea-like-numeric-type *, qstring *'↗ dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int Help on function dbg_can_query in module ida_dbg: dbg_can_query(*args) -> 'bool' dbg_can_query() -> bool - - This function can be used to check if the debugger can be queried: - debugger is loaded - process is suspended - process is not suspended but can take requests. In this case some requests like memory read/write, bpt management succeed and register querying will fail. Check if idaapi.get_process_state() < 0 to tell if the process is suspended + @return: Boolean Help on function dbg_del_thread in module ida_dbg: dbg_del_thread(*args) -> 'void' dbg_del_thread(tid) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function dbg_is_loaded in module ida_dbg: dbg_is_loaded(*args) -> 'bool' dbg_is_loaded() -> bool - - Checks if a debugger is loaded + @return: Boolean Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' define_exception(code, name, desc, flags) -> char const * - - Convenience function: define new exception code. - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) + @param bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) -> 'bool' del_bptgrp(name) -> bool + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success Help on function del_virt_module in module ida_dbg: del_virt_module(*args) -> 'bool' del_virt_module(base) -> bool + + @param base: ea_t const Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' - diff_trace_file(nonnul_filename) -> bool - - + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * Help on function disable_bblk_trace in module ida_dbg: @@ -5481,7 +5054,12 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) -> 'bool' disable_bpt(ea) -> bool + + @param ea: ea_t + disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5507,32 +5085,60 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) -> 'bool' enable_bblk_trace(enable=True) -> bool + + @param enable: bool Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) -> 'int' + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) -> 'bool' enable_func_trace(enable=True) -> bool + + @param enable: bool Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) -> 'bool' enable_insn_trace(enable=True) -> bool + + @param enable: bool Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) -> 'void' enable_manual_regions(enable) + + @param enable: bool Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) -> 'bool' - enable_step_trace(enable=True) -> bool + enable_step_trace(enable=1) -> bool + + @param enable: int Help on class eval_ctx_t in module ida_dbg: @@ -5543,6 +5149,8 @@ class eval_ctx_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t + | + | @param _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5559,7 +5167,7 @@ class eval_ctx_t(builtins.object) | list of weak references to the object (if defined) | | ea - | eval_ctx_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -5568,118 +5176,101 @@ Help on function exist_bpt in module ida_dbg: exist_bpt(*args) -> 'bool' exist_bpt(ea) -> bool - - Does a breakpoint exist at the given location? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function find_bpt in module ida_dbg: find_bpt(*args) -> 'bool' find_bpt(bptloc, bpt) -> bool + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found Help on function get_bblk_trace_options in module ida_dbg: get_bblk_trace_options(*args) -> 'int' get_bblk_trace_options() -> int - - - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_bpt in module ida_dbg: get_bpt(*args) -> 'bool' get_bpt(ea, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. @return: false if no breakpoint exists Help on function get_bpt_group in module ida_dbg: get_bpt_group(*args) -> 'qstring *' get_bpt_group(bptloc) -> str + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bptloc_string in module ida_dbg: get_bptloc_string(*args) -> 'char const *' get_bptloc_string(i) -> char const * - - Helper function for 'bpt_location_t' . - - - @param i (C++: int) + @param i: int Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_current_source_file in module ida_dbg: -get_current_source_file(*args) -> 'bool' - get_current_source_file(path) -> bool +get_current_source_file(*args) -> 'qstring *' + get_current_source_file() -> str Help on function get_current_source_line in module ida_dbg: @@ -5690,46 +5281,40 @@ Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_dbg_byte in module ida_dbg: -get_dbg_byte(*args) -> 'bool' - get_dbg_byte(x, ea) -> bool - - +get_dbg_byte(*args) -> 'uint32 *' + get_dbg_byte(ea) -> bool Get one byte of the debugged process memory. - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address @return: true success + false address inaccessible or debugger not running Help on function get_dbg_memory_info in module ida_dbg: get_dbg_memory_info(*args) -> 'int' get_dbg_memory_info(ranges) -> int + + @param ranges: meminfo_vec_t * Help on function get_dbg_reg_info in module ida_dbg: get_dbg_reg_info(*args) -> 'bool' get_dbg_reg_info(regname, ri) -> bool + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param regname (C++: const char *) - @param ri (C++: register_info_t *) + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) Help on function get_debug_event in module ida_dbg: get_debug_event(*args) -> 'debug_event_t const *' get_debug_event() -> debug_event_t - - Get the current debugger event. Help on function get_debugger_event_cond in module ida_dbg: @@ -5741,39 +5326,47 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) -> 'bool' get_first_module(modinfo) -> bool + + @param modinfo: modinfo_t * Help on function get_func_trace_options in module ida_dbg: get_func_trace_options(*args) -> 'int' get_func_trace_options() -> int - - - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_global_var in module ida_dbg: get_global_var(*args) -> 'bool' get_global_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) -> 'ssize_t' get_grp_bpts(bpts, grp_name) -> ssize_t + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bpts: (C++: bpt_vec_t *) : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector Help on function get_insn_tev_reg_mem in module ida_dbg: get_insn_tev_reg_mem(*args) -> 'bool' get_insn_tev_reg_mem(n, memmap) -> bool + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result @return: false if not an instruction event or no memory is available Help on function get_insn_tev_reg_result in module ida_dbg: @@ -5781,162 +5374,151 @@ Help on function get_insn_tev_reg_result in module ida_dbg: get_insn_tev_reg_result(*args) -> 'bool' get_insn_tev_reg_result(n, regname, regval) -> bool - - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_tev_reg_val in module ida_dbg: get_insn_tev_reg_val(*args) -> 'bool' get_insn_tev_reg_val(n, regname, regval) -> bool - - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_trace_options in module ida_dbg: get_insn_trace_options(*args) -> 'int' get_insn_trace_options() -> int - - - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_ip_val in module ida_dbg: get_ip_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ get_ip_val() -> bool - - - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. Help on function get_local_var in module ida_dbg: get_local_var(*args) -> 'bool' get_local_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_local_vars in module ida_dbg: get_local_vars(*args) -> 'bool' get_local_vars(prov, ea, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * Help on function get_manual_regions in module ida_dbg: get_manual_regions(*args) -> 'PyObject *' get_manual_regions(ranges) - get_manual_regions() -> PyObject * - - Returns the manual memory regions + + @param ranges: meminfo_vec_t * + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None Help on function get_module_info in module ida_dbg: get_module_info(*args) -> 'bool' get_module_info(ea, modinfo) -> bool + + @param ea: ea_t + @param modinfo: modinfo_t * Help on function get_next_module in module ida_dbg: get_next_module(*args) -> 'bool' get_next_module(modinfo) -> bool + + @param modinfo: modinfo_t * Help on function get_process_options in module ida_dbg: -get_process_options(*args) -> 'void' - get_process_options(path, args, sdir, host, _pass, port) - - - Get process options. Any of the arguments may be NULL - - @param path (C++: qstring *) - @param args (C++: qstring *) - @param sdir (C++: qstring *) - @param host (C++: qstring *) - @param port (C++: int *) +get_process_options(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' + get_process_options() + Get process options. Any of the arguments may be nullptr Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) + @param proclist: (C++: procinfo_vec_t *) array with information about each running process @return: number of processes or -1 on error Help on function get_reg_val in module ida_dbg: get_reg_val(*args) -> 'PyObject *' get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. + + @param regname: (C++: const char *) char const * + @param regval: regval_t * + get_reg_val(regname, ival) -> bool - get_reg_val(regname) -> PyObject * + @param regname: char const * + @param ival: uint64 * - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + get_reg_val(regname) -> bool, float, int - @param regname (C++: const char *) - @param regval (C++: regval_t *) + @param regname: char const * Help on function get_reg_vals in module ida_dbg: -get_reg_vals(*args) -> 'int' - get_reg_vals(tid, clsmask, values) -> int +get_reg_vals(*args) -> 'regvals_t *' + get_reg_vals(tid, clsmask=-1) -> regvals_t + Fetch live registers values for the thread + + @param tid: The ID of the thread to read registers for + @param clsmask: An OR'ed mask of register classes to + read values for (can be used to speed up the + retrieval process) + + @return: a regvals_t instance (empty if an error occurs) Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_running_notification in module ida_dbg: get_running_notification(*args) -> 'dbg_notification_t' get_running_notification() -> dbg_notification_t - - - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} @return: dbg_null if no running request @@ -5944,10 +5526,8 @@ Help on function get_running_request in module ida_dbg: get_running_request(*args) -> 'ui_notification_t' get_running_request() -> ui_notification_t - - - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} @return: ui_null if no running request @@ -5955,24 +5535,22 @@ Help on function get_sp_val in module ida_dbg: get_sp_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ get_sp_val() -> bool - - - Get value of the SP register for the current thread. Requires a - suspended debugger. + Get value of the SP register for the current thread. Requires a suspended + debugger. Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) -> 'srcinfo_provider_t *' get_srcinfo_provider(name) -> srcinfo_provider_t * + + @param name: char const * Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} @return: Step trace options @@ -5980,60 +5558,53 @@ Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t + + @param n: int Help on function get_tev_event in module ida_dbg: get_tev_event(*args) -> 'bool' get_tev_event(n, d) -> bool + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". Help on function get_tev_info in module ida_dbg: get_tev_info(*args) -> 'bool' get_tev_info(n, tev_info) -> bool + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result @return: success Help on function get_tev_memory_info in module ida_dbg: get_tev_memory_info(*args) -> 'bool' get_tev_memory_info(n, mi) -> bool - - Get the memory layout, if any, for the specified tev object. \sq{Type, Synchronous function, Notification, none (synchronous function)} - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_mem in module ida_dbg: @@ -6055,103 +5626,99 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_trace_base_address in module ida_dbg: get_trace_base_address(*args) -> 'ea_t' get_trace_base_address() -> ea_t - - - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} @return: the base address of the currently loaded trace +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) -> 'void' + get_trace_dynamic_register_set(idaregs) + Get dynamic register set of current trace. + + @param idaregs: (C++: dynamic_register_set_t *) + Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' get_trace_file_desc(filename) -> str - - Get the file header of the specified trace file. - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_trace_platform in module ida_dbg: get_trace_platform(*args) -> 'char const *' get_trace_platform() -> char const * - - Get platform name of current trace. Help on function getn_bpt in module ida_dbg: getn_bpt(*args) -> 'bool' getn_bpt(n, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. @return: false if no breakpoint exists Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function graph_trace in module ida_dbg: graph_trace(*args) -> 'bool' graph_trace() -> bool - - Show the trace callgraph. Help on function handle_debug_event in module ida_dbg: handle_debug_event(*args) -> 'int' handle_debug_event(ev, rqflags) -> int + + @param ev: debug_event_t const * + @param rqflags: int Help on function hide_all_bpts in module ida_dbg: @@ -6162,52 +5729,50 @@ Help on function internal_get_sreg_base in module ida_dbg: internal_get_sreg_base(*args) -> 'ea_t' internal_get_sreg_base(tid, sreg_value) -> ea_t - - Get the sreg base, for the given thread. + @param tid: thid_t + @param sreg_value: int @return: The sreg base, or BADADDR on failure. Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) -> 'int' internal_ioctl(fn, buf, poutbuf, poutsize) -> int + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * Help on function invalidate_dbg_state in module ida_dbg: invalidate_dbg_state(*args) -> 'int' invalidate_dbg_state(dbginv) -> int + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) Help on function invalidate_dbgmem_config in module ida_dbg: invalidate_dbgmem_config(*args) -> 'void' invalidate_dbgmem_config() - - - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) Help on function invalidate_dbgmem_contents in module ida_dbg: invalidate_dbgmem_contents(*args) -> 'void' invalidate_dbgmem_contents(ea, size) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated - - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6218,134 +5783,123 @@ Help on function is_debugger_busy in module ida_dbg: is_debugger_busy(*args) -> 'bool' is_debugger_busy() -> bool - - - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger Help on function is_debugger_memory in module ida_dbg: is_debugger_memory(*args) -> 'bool' is_debugger_memory(ea) -> bool - - Is the address mapped to debugger memory? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_debugger_on in module ida_dbg: is_debugger_on(*args) -> 'bool' is_debugger_on() -> bool - - Is the debugger currently running? Help on function is_func_trace_enabled in module ida_dbg: is_func_trace_enabled(*args) -> 'bool' is_func_trace_enabled() -> bool - - - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_insn_trace_enabled in module ida_dbg: is_insn_trace_enabled(*args) -> 'bool' is_insn_trace_enabled() -> bool - - - Get current state of instructions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_reg_custom in module ida_dbg: is_reg_custom(*args) -> 'bool' is_reg_custom(regname) -> bool + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * Help on function is_reg_float in module ida_dbg: is_reg_float(*args) -> 'bool' is_reg_float(regname) -> bool + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * Help on function is_reg_integer in module ida_dbg: is_reg_integer(*args) -> 'bool' is_reg_integer(regname) -> bool + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * Help on function is_request_running in module ida_dbg: is_request_running(*args) -> 'bool' is_request_running() -> bool - - Is a request currently running? Help on function is_step_trace_enabled in module ida_dbg: is_step_trace_enabled(*args) -> 'bool' is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + +Help on function is_valid_dstate in module ida_dbg: + +is_valid_dstate(*args) -> 'bool' + is_valid_dstate(state) -> bool - - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + @param state: int Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' is_valid_trace_file(filename) -> bool - - Is the specified file a valid trace file for the current database? - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) -> 'PyObject *' list_bptgrps(bptgrps) -> size_t - list_bptgrps() -> PyObject * + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param bptgrps: (C++: qstrvec_t *) list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on class memreg_info_t in module ida_dbg: @@ -6378,7 +5932,7 @@ class memreg_info_t(builtins.object) | get_bytes(self) -> PyObject * | | ea - | memreg_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -6392,10 +5946,14 @@ class memreg_infos_t(builtins.object) | | __getitem__(self, *args) -> 'memreg_info_t const &' | __getitem__(self, i) -> memreg_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -6407,19 +5965,23 @@ class memreg_infos_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memreg_info_t const & | | __swig_destroy__ = delete_memreg_infos_t(...) | delete_memreg_infos_t(self) | | at(self, *args) -> 'memreg_info_t const &' | at(self, _idx) -> memreg_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -6432,11 +5994,16 @@ class memreg_infos_t(builtins.object) | | end(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | end(self) -> memreg_info_t - | end(self) -> memreg_info_t | | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' | erase(self, it) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | | erase(self, first, last) -> memreg_info_t + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator | | extract(self, *args) -> 'memreg_info_t *' | extract(self) -> memreg_info_t @@ -6446,18 +6013,29 @@ class memreg_infos_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=memreg_info_t()) + | + | @param x: memreg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: memreg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' | insert(self, it, x) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memreg_info_t &' | push_back(self, x) + | + | @param x: memreg_info_t const & + | | push_back(self) -> memreg_info_t | | qclear(self, *args) -> 'void' @@ -6465,16 +6043,26 @@ class memreg_infos_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memreg_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< memreg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -6491,107 +6079,109 @@ class memreg_infos_t(builtins.object) | thisown | The membership flag -Help on function move_bpt_to_grp in module ida_dbg: +Help on function set_bpt_group in module ida_dbg: -move_bpt_to_grp(*args) -> 'void' - move_bpt_to_grp(bpt, grp_name) +set_bpt_group(*args) -> 'bool' + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Sets new group for the breakpoint + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' put_dbg_byte(ea, x) -> bool - - Change one byte of the debugged process memory. - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value @return: true if the process memory has been modified Help on function read_dbg_memory in module ida_dbg: read_dbg_memory(*args) -> 'ssize_t' read_dbg_memory(ea, buffer, size) -> ssize_t + + @param ea: ea_t + @param buffer: void * + @param size: size_t Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * - - Refreshes the debugger memory + @return: Nothing Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) -> 'bool' rename_bptgrp(old_name, new_name) -> bool + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success Help on function request_add_bpt in module ida_dbg: request_add_bpt(*args) -> 'bool' request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Post an add_bpt(const bpt_t &) request. + + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t + request_add_bpt(bpt) -> bool - - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - - - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + @param bpt: bpt_t const & Help on function request_attach_process in module ida_dbg: request_attach_process(*args) -> 'int' request_attach_process(pid, event_id) -> int + Post an attach_process() request. - - Post an 'attach_process()' request. - - - @param pid (C++: pid_t) - @param event_id (C++: int) + @param pid: (C++: pid_t) + @param event_id: (C++: int) Help on function request_clear_trace in module ida_dbg: request_clear_trace(*args) -> 'void' request_clear_trace() - - - Post a 'clear_trace()' request. + Post a clear_trace() request. Help on function request_continue_process in module ida_dbg: request_continue_process(*args) -> 'bool' request_continue_process() -> bool - - - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' + Post a continue_process() request. + @note: This requires an explicit call to run_requests() Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) -> 'bool' request_del_bpt(ea) -> bool + Post a del_bpt(const bpt_location_t &) request. + + @param ea: ea_t + request_del_bpt(bptloc) -> bool - - Post a 'del_bpt(ea_t)' request. - - - @param ea (C++: ea_t) + @param bptloc: bpt_location_t const & Help on function request_detach_process in module ida_dbg: request_detach_process(*args) -> 'bool' request_detach_process() -> bool - - - Post a 'detach_process()' request. + Post a detach_process() request. Help on function request_disable_bblk_trace in module ida_dbg: @@ -6602,7 +6192,12 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) -> 'bool' request_disable_bpt(ea) -> bool + + @param ea: ea_t + request_disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6623,274 +6218,232 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) -> 'bool' request_enable_bblk_trace(enable=True) -> bool + + @param enable: bool Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) -> 'bool' request_enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + request_enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) -> 'bool' request_enable_func_trace(enable=True) -> bool + + @param enable: bool Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) -> 'bool' request_enable_insn_trace(enable=True) -> bool + + @param enable: bool Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) -> 'bool' - request_enable_step_trace(enable=True) -> bool + request_enable_step_trace(enable=1) -> bool + + @param enable: int Help on function request_exit_process in module ida_dbg: request_exit_process(*args) -> 'bool' request_exit_process() -> bool - - - Post an 'exit_process()' request. + Post an exit_process() request. Help on function request_resume_thread in module ida_dbg: request_resume_thread(*args) -> 'int' request_resume_thread(tid) -> int + Post a resume_thread() request. - - Post a 'resume_thread()' request. - - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function request_run_to in module ida_dbg: request_run_to(*args) -> 'bool' request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + Post a run_to() request. - - Post a 'run_to()' request. - - - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) Help on function request_select_thread in module ida_dbg: request_select_thread(*args) -> 'bool' request_select_thread(tid) -> bool + Post a select_thread() request. - - Post a 'select_thread()' request. - - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function request_set_bblk_trace_options in module ida_dbg: request_set_bblk_trace_options(*args) -> 'void' request_set_bblk_trace_options(options) + Post a set_bblk_trace_options() request. - - Post a 'set_bblk_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_set_func_trace_options in module ida_dbg: request_set_func_trace_options(*args) -> 'void' request_set_func_trace_options(options) + Post a set_func_trace_options() request. - - Post a 'set_func_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_set_insn_trace_options in module ida_dbg: request_set_insn_trace_options(*args) -> 'void' request_set_insn_trace_options(options) + Post a set_insn_trace_options() request. - - Post a 'set_insn_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_set_reg_val in module ida_dbg: request_set_reg_val(*args) -> 'PyObject *' request_set_reg_val(regname, o) -> PyObject * + Post a set_reg_val() request. - - Post a 'set_reg_val()' request. - - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * + @param o: PyObject * Help on function request_set_resume_mode in module ida_dbg: request_set_resume_mode(*args) -> 'bool' request_set_resume_mode(tid, mode) -> bool + Post a set_resume_mode() request. - - Post a 'set_resume_mode()' request. - - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function request_set_step_trace_options in module ida_dbg: request_set_step_trace_options(*args) -> 'void' request_set_step_trace_options(options) + Post a set_step_trace_options() request. - - Post a 'set_step_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_start_process in module ida_dbg: request_start_process(*args) -> 'int' request_start_process(path=None, args=None, sdir=None) -> int + Post a start_process() request. - - Post a 'start_process()' request. - - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * Help on function request_step_into in module ida_dbg: request_step_into(*args) -> 'bool' request_step_into() -> bool - - - Post a 'step_into()' request. + Post a step_into() request. Help on function request_step_over in module ida_dbg: request_step_over(*args) -> 'bool' request_step_over() -> bool - - - Post a 'step_over()' request. + Post a step_over() request. Help on function request_step_until_ret in module ida_dbg: request_step_until_ret(*args) -> 'bool' request_step_until_ret() -> bool - - - Post a 'step_until_ret()' request. + Post a step_until_ret() request. Help on function request_suspend_process in module ida_dbg: request_suspend_process(*args) -> 'bool' request_suspend_process() -> bool - - - Post a 'suspend_process()' request. + Post a suspend_process() request. Help on function request_suspend_thread in module ida_dbg: request_suspend_thread(*args) -> 'int' request_suspend_thread(tid) -> int + Post a suspend_thread() request. - - Post a 'suspend_thread()' request. - - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' resume_thread(tid) -> int - - Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_exceptions in module ida_dbg: retrieve_exceptions(*args) -> 'excvec_t *' retrieve_exceptions() -> excvec_t - - - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited Help on function run_requests in module ida_dbg: run_requests(*args) -> 'bool' run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} - - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. - - @return: false if not all requests could be processed (indicates an - asynchronous function was started) + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' save_trace_file(filename, description) -> bool - - Save the current trace in the specified file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) + @param tid: (C++: thid_t) ID of the thread to select @return: false if the thread doesn't exist. Help on function send_dbg_command in module ida_dbg: @@ -6908,228 +6461,205 @@ Help on function set_bblk_trace_options in module ida_dbg: set_bblk_trace_options(*args) -> 'void' set_bblk_trace_options(options) + Modify basic block tracing options (see BT_LOG_INSTS) - - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - - - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) -> 'void' - set_bpt_group(bpt, grp_name) + @param options: (C++: int) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) -> 'bool' set_bptloc_group(bptloc, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function set_bptloc_string in module ida_dbg: set_bptloc_string(*args) -> 'int' set_bptloc_string(s) -> int - - Helper function for 'bpt_location_t' . - - - @param s (C++: const char *) + @param s: char const * Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(nonnul_cond) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' set_debugger_options(options) -> uint - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' + combination Debugger options - @param options (C++: uint) + @param options: (C++: uint) @return: the old debugger options Help on function set_func_trace_options in module ida_dbg: set_func_trace_options(*args) -> 'void' set_func_trace_options(options) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function set_highlight_trace_options in module ida_dbg: set_highlight_trace_options(*args) -> 'void' set_highlight_trace_options(hilight, color, diff) - - Set highlight trace parameters. - - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) Help on function set_insn_trace_options in module ida_dbg: set_insn_trace_options(*args) -> 'void' set_insn_trace_options(options) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} - - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) -> 'void' set_manual_regions(ranges) + + @param ranges: meminfo_vec_t const * Help on function set_process_options in module ida_dbg: set_process_options(*args) -> 'void' set_process_options(path, args, sdir, host, _pass, port) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' - - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - @param port (C++: int) + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) Help on function set_process_state in module ida_dbg: set_process_state(*args) -> 'int' set_process_state(newstate, p_thid, dbginv) -> int + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) Help on function set_reg_val in module ida_dbg: set_reg_val(*args) -> 'PyObject *' set_reg_val(regname, o) -> PyObject - set_reg_val(tid, regidx, o) -> PyObject * + Write a register value to the current thread. + @param regname: (C++: const char *) char const * + @param o: PyObject * - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} + set_reg_val(tid, regidx, o) -> bool, int - @param regname (C++: const char *) + @param tid: thid_t + @param regidx: int + @param o: PyObject * Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_resume_mode in module ida_dbg: set_resume_mode(*args) -> 'bool' set_resume_mode(tid, mode) -> bool + How to resume the application. Set resume mode but do not resume process. - - How to resume the application. Set resume mode but do not resume - process. - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function set_trace_base_address in module ida_dbg: set_trace_base_address(*args) -> 'void' set_trace_base_address(ea) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @param ea: (C++: ea_t) + +Help on function set_trace_dynamic_register_set in module ida_dbg: + +set_trace_dynamic_register_set(*args) -> 'void' + set_trace_dynamic_register_set(idaregs) + Set dynamic register set of current trace. - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea (C++: ea_t) + @param idaregs: (C++: dynamic_register_set_t &) Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' set_trace_file_desc(filename, description) -> bool - - Change the description of the specified trace file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function set_trace_platform in module ida_dbg: set_trace_platform(*args) -> 'void' set_trace_platform(platform) - - Set platform name of current trace. - - @param platform (C++: const char *) + @param platform: (C++: const char *) char const * Help on function set_trace_size in module ida_dbg: set_trace_size(*args) -> 'bool' set_trace_size(size) -> bool + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! Help on function srcdbg_request_step_into in module ida_dbg: @@ -7165,86 +6695,78 @@ Help on function start_process in module ida_dbg: start_process(*args) -> 'int' start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function store_exceptions in module ida_dbg: store_exceptions(*args) -> 'bool' store_exceptions() -> bool - - - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on class tev_info_reg_t in module ida_dbg: @@ -7271,10 +6793,10 @@ class tev_info_reg_t(builtins.object) | list of weak references to the object (if defined) | | info - | tev_info_reg_t_info_get(self) -> tev_info_t + | info | | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t + | registers | | thisown | The membership flag @@ -7304,16 +6826,16 @@ class tev_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | tev_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag | | tid - | tev_info_t_tid_get(self) -> thid_t + | tid | | type - | tev_info_t_type_get(self) -> tev_type_t + | type Help on class tev_reg_value_t in module ida_dbg: @@ -7324,6 +6846,9 @@ class tev_reg_value_t(builtins.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | + | @param _reg_idx: int + | @param _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7340,13 +6865,13 @@ class tev_reg_value_t(builtins.object) | list of weak references to the object (if defined) | | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int + | reg_idx | | thisown | The membership flag | | value - | tev_reg_value_t_value_get(self) -> regval_t + | value Help on class tev_reg_values_t in module ida_dbg: @@ -7357,10 +6882,14 @@ class tev_reg_values_t(builtins.object) | | __getitem__(self, *args) -> 'tev_reg_value_t const &' | __getitem__(self, i) -> tev_reg_value_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7372,19 +6901,23 @@ class tev_reg_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_reg_value_t const & | | __swig_destroy__ = delete_tev_reg_values_t(...) | delete_tev_reg_values_t(self) | | at(self, *args) -> 'tev_reg_value_t const &' | at(self, _idx) -> tev_reg_value_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7397,11 +6930,16 @@ class tev_reg_values_t(builtins.object) | | end(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t | | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | erase(self, it) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | | erase(self, first, last) -> tev_reg_value_t + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) -> 'tev_reg_value_t *' | extract(self) -> tev_reg_value_t @@ -7411,18 +6949,29 @@ class tev_reg_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_reg_value_t()) + | + | @param x: tev_reg_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: tev_reg_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | insert(self, it, x) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_reg_value_t &' | push_back(self, x) + | + | @param x: tev_reg_value_t const & + | | push_back(self) -> tev_reg_value_t | | qclear(self, *args) -> 'void' @@ -7430,16 +6979,26 @@ class tev_reg_values_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< tev_reg_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7465,10 +7024,14 @@ class tevinforeg_vec_t(builtins.object) | | __getitem__(self, *args) -> 'tev_info_reg_t const &' | __getitem__(self, i) -> tev_info_reg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7480,19 +7043,23 @@ class tevinforeg_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_info_reg_t const & | | __swig_destroy__ = delete_tevinforeg_vec_t(...) | delete_tevinforeg_vec_t(self) | | at(self, *args) -> 'tev_info_reg_t const &' | at(self, _idx) -> tev_info_reg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7505,11 +7072,16 @@ class tevinforeg_vec_t(builtins.object) | | end(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t | | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | erase(self, it) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | | erase(self, first, last) -> tev_info_reg_t + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) -> 'tev_info_reg_t *' | extract(self) -> tev_info_reg_t @@ -7519,18 +7091,29 @@ class tevinforeg_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_info_reg_t()) + | + | @param x: tev_info_reg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: tev_info_reg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | insert(self, it, x) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_info_reg_t &' | push_back(self, x) + | + | @param x: tev_info_reg_t const & + | | push_back(self) -> tev_info_reg_t | | qclear(self, *args) -> 'void' @@ -7538,16 +7121,26 @@ class tevinforeg_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< tev_info_reg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7568,534 +7161,1424 @@ Help on function update_bpt in module ida_dbg: update_bpt(*args) -> 'bool' update_bpt(bpt) -> bool + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed - - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - - @param bpt (C++: const bpt_t *) + @param bpt: (C++: const bpt_t *) bpt_t const * Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function write_dbg_memory in module ida_dbg: write_dbg_memory(*args) -> 'ssize_t' write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t + +Module "ida_dirtree"s docstring: +""" +Types involved in grouping of item into folders. + +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). + +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). + +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc + +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" + +Help on class direntry_t in module ida_dirtree: + +class direntry_t(builtins.object) + | Proxy of C++ direntry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __init__(self, *args) + | __init__(self, i=BADIDX, d=False) -> direntry_t + | + | @param i: uval_t + | @param d: bool + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_direntry_t(...) + | delete_direntry_t(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | isdir + | isdir + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | BADIDX = unsigned-ea-like-numeric-type(-1) + | + | ROOTIDX = 0 + | + | __hash__ = None + +Help on class direntry_vec_t in module ida_dirtree: + +class direntry_vec_t(builtins.object) + | Proxy of C++ qvector< direntry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __getitem__(self, *args) -> 'direntry_t const &' + | __getitem__(self, i) -> direntry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> direntry_vec_t + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: direntry_t const & + | + | __swig_destroy__ = delete_direntry_vec_t(...) + | delete_direntry_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: direntry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: direntry_t const & + | + | at(self, *args) -> 'direntry_t const &' + | at(self, _idx) -> direntry_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' + | begin(self) -> direntry_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< direntry_t >::const_iterator' + | end(self) -> direntry_t + | + | erase(self, *args) -> 'qvector< direntry_t >::iterator' + | erase(self, it) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | + | erase(self, first, last) -> direntry_t + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator + | + | extract(self, *args) -> 'direntry_t *' + | extract(self) -> direntry_t + | + | find(self, *args) -> 'qvector< direntry_t >::const_iterator' + | find(self, x) -> direntry_t + | + | @param x: direntry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=direntry_t()) + | + | @param x: direntry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: direntry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: direntry_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< direntry_t >::iterator' + | insert(self, it, x) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'direntry_t &' + | push_back(self, x) + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: direntry_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< direntry_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirspec_t in module ida_dirtree: + +class dirspec_t(builtins.object) + | Proxy of C++ dirspec_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, nm=None, f=0) -> dirspec_t + | + | @param nm: char const * + | @param f: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirspec_t(...) + | delete_dirspec_t(self) + | + | get_attrs(self, *args) -> 'qstring' + | get_attrs(self, inode) -> qstring + | + | @param inode: inode_t + | + | get_inode(self, *args) -> 'inode_t' + | get_inode(self, dirpath, name) -> inode_t + | get the entry inode in the specified directory + | + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode + | + | get_name(self, *args) -> 'bool' + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool + | get the entry name. for example, the structure name + | + | @param inode: (C++: inode_t) inode number of the entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. + | + | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool + | rename the entry + | + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success + | + | unlink_inode(self, *args) -> 'void' + | unlink_inode(self, inode) + | + | @param inode: (C++: inode_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | id + | id + | + | nodename + | id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | DSF_INODE_EA = 1 + | + | DSF_PRIVRANGE = 2 + +Help on class dirtree_cursor_t in module ida_dirtree: + +class dirtree_cursor_t(builtins.object) + | Proxy of C++ dirtree_cursor_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __init__(self, *args) + | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t + | + | @param _parent: diridx_t + | @param _rank: size_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_cursor_t(...) + | delete_dirtree_cursor_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: dirtree_cursor_t const & + | + | is_root_cursor(self, *args) -> 'bool' + | is_root_cursor(self) -> bool + | + | set_root_cursor(self, *args) -> 'void' + | set_root_cursor(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | root_cursor(*args) -> 'dirtree_cursor_t' + | root_cursor() -> dirtree_cursor_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | parent + | parent + | + | rank + | rank + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function dirtree_cursor_t_root_cursor in module ida_dirtree: + +dirtree_cursor_t_root_cursor(*args) -> 'dirtree_cursor_t' + dirtree_cursor_t_root_cursor() -> dirtree_cursor_t + +Help on class dirtree_cursor_vec_t in module ida_dirtree: + +class dirtree_cursor_vec_t(builtins.object) + | Proxy of C++ qvector< dirtree_cursor_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> dirtree_cursor_vec_t + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | __swig_destroy__ = delete_dirtree_cursor_vec_t(...) + | delete_dirtree_cursor_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirtree_iterator_t in module ida_dirtree: + +class dirtree_iterator_t(builtins.object) + | Proxy of C++ dirtree_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_iterator_t(...) + | delete_dirtree_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cursor + | cursor + | + | pattern + | pattern + | + | thisown + | The membership flag + +Help on class dirtree_selection_t in module ida_dirtree: + +class dirtree_selection_t(dirtree_cursor_vec_t) + | Proxy of C++ dirtree_selection_t class. + | + | Method resolution order: + | dirtree_selection_t + | dirtree_cursor_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_selection_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_selection_t(...) + | delete_dirtree_selection_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from dirtree_cursor_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from dirtree_cursor_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from dirtree_cursor_vec_t: + | + | __hash__ = None + +Help on class dirtree_t in module ida_dirtree: + +class dirtree_t(builtins.object) + | Proxy of C++ dirtree_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ds) -> dirtree_t + | + | @param ds: dirspec_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_t(...) + | delete_dirtree_t(self) + | + | change_rank(self, *args) -> 'dterr_t' + | change_rank(self, path, rank_delta) -> dterr_t + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param rank_delta: (C++: ssize_t) the amount of the change. positive numbers mean to move down + | in the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. + | + | chdir(self, *args) -> 'dterr_t' + | chdir(self, path) -> dterr_t + | Change current directory + | + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) -> 'dirtree_cursor_t' + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param de: (C++: const direntry_t &) directory entry + | @return: cursor corresponding to the directory entry + | + | findfirst(self, *args) -> 'bool' + | findfirst(self, ff, pattern) -> bool + | Start iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success + | + | findnext(self, *args) -> 'bool' + | findnext(self, ff) -> bool + | Continue iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success + | + | get_abspath(self, *args) -> 'qstring' + | get_abspath(self, cursor) -> qstring + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. + | + | @param cursor: dirtree_cursor_t const & + | + | @return: path. empty path means wrong directory part of RELPATH + | get_abspath(self, relpath) -> qstring + | + | @param relpath: char const * + | + | get_dir_size(self, *args) -> 'ssize_t' + | get_dir_size(self, diridx) -> ssize_t + | Get dir size + | + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 + | + | get_entry_attrs(self, *args) -> 'qstring' + | get_entry_attrs(self, de) -> qstring + | Get entry attributes + | + | @param de: (C++: const direntry_t &) directory entry + | @return: name + | + | get_entry_name(self, *args) -> 'qstring' + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring + | Get entry name + | + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name + | + | get_id(self, *args) -> 'char const *' + | get_id(self) -> char const * + | netnode name + | + | get_nodename = get_id(self, *args) -> 'char const *' + | + | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | get_parent_cursor(self, cursor) -> dirtree_cursor_t + | Get parent cursor. + | + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent + | + | get_rank(self, *args) -> 'ssize_t' + | get_rank(self, diridx, de) -> ssize_t + | Get ordering rank of an item. + | + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error + | + | getcwd(self, *args) -> 'qstring' + | getcwd(self) -> qstring + | Get current directory + | + | @return: the current working directory + | + | isdir(self, *args) -> 'bool' + | isdir(self, de) -> bool + | + | @param de: direntry_t const & + | + | isdir(self, path) -> bool + | + | @param path: char const * + | + | isfile(self, *args) -> 'bool' + | isfile(self, de) -> bool + | + | @param de: direntry_t const & + | + | isfile(self, path) -> bool + | + | @param path: char const * + | + | link(self, *args) -> 'dterr_t' + | link(self, path) -> dterr_t + | Add an inode into the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | link(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | load(self, *args) -> 'bool' + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. + | + | mkdir(self, *args) -> 'dterr_t' + | mkdir(self, path) -> dterr_t + | Create a directory. + | + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code + | + | notify_dirtree(self, *args) -> 'void' + | notify_dirtree(self, added, inode) + | Notify dirtree about a change of an inode. + | + | @param added: (C++: bool) are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question + | + | rename(self, *args) -> 'dterr_t' + | rename(self, _from, to) -> dterr_t + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item + | + | resolve_cursor(self, *args) -> 'direntry_t' + | resolve_cursor(self, cursor) -> direntry_t + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() + | + | resolve_path(self, *args) -> 'direntry_t' + | resolve_path(self, path) -> direntry_t + | Resolve path + | + | @param path: (C++: const char *) to analyze + | @return: directory entry + | + | rmdir(self, *args) -> 'dterr_t' + | rmdir(self, path) -> dterr_t + | Remove a directory. + | + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code + | + | save(self, *args) -> 'bool' + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. + | + | set_id(self, *args) -> 'void' + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) -> 'void' + | + | traverse(self, *args) -> 'ssize_t' + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned + | + | unlink(self, *args) -> 'dterr_t' + | unlink(self, path) -> dterr_t + | Remove an inode from the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | unlink(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | errstr(*args) -> 'char const *' + | errstr(err) -> char const * + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function dirtree_t_errstr in module ida_dirtree: + +dirtree_t_errstr(*args) -> 'char const *' + dirtree_t_errstr(err) -> char const * + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(builtins.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_visitor_t(...) + | delete_dirtree_visitor_t(self) + | + | visit(self, *args) -> 'ssize_t' + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_std_dirtree in module ida_dirtree: + +get_std_dirtree(*args) -> 'dirtree_t *' + get_std_dirtree(id) -> dirtree_t + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" + +Help on function choose_ioport_device2 in module ida_diskio: + +choose_ioport_device2(*args) -> 'bool' + choose_ioport_device2(_device, file, parse_params) -> bool + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * + +Help on class choose_ioport_parser_t in module ida_diskio: + +class choose_ioport_parser_t(builtins.object) + | Proxy of C++ choose_ioport_parser_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> choose_ioport_parser_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_choose_ioport_parser_t(...) + | delete_choose_ioport_parser_t(self) + | + | parse(self, *args) -> 'bool' + | parse(self, param, line) -> bool + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -only after writing the bpt to the process. - -written to the process as a page bpt. is available -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: -""" - -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" - -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" - -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" - -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts -""" - -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" - -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" - -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" - -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" - -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -instruction tracing will log instructions whose IP doesn't change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds -""" -=== ida_dbg EPYDOC INJECTIONS END === Help on function close_linput in module ida_diskio: close_linput(*args) -> 'void' close_linput(li) - - Close loader input. - - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function create_bytearray_linput in module ida_diskio: create_bytearray_linput(*args) -> 'linput_t *' create_bytearray_linput(s) -> linput_t * - - Trivial memory linput. + + @param s: qstring const & Help on function create_generic_linput in module ida_diskio: create_generic_linput(*args) -> 'linput_t *' create_generic_linput(gl) -> linput_t * - - Create a generic linput - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" Help on function create_memory_linput in module ida_diskio: create_memory_linput(*args) -> 'linput_t *' create_memory_linput(start, size) -> linput_t * + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. - - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 Help on function eclose in module ida_diskio: eclose(*args) -> 'void' eclose(fp) + + @param fp: FILE * Help on function enumerate_files in module ida_diskio: enumerate_files(*args) -> 'PyObject *' enumerate_files(path, fname, callback) -> PyObject * - - Enumerate files in the specified directory while the callback returns 0. + @param path: directory to enumerate files in @param fname: mask of file names to enumerate @param callback: a callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration. - @return: - None in case of script errors + @return: None in case of script errors tuple(code, fname) : If the callback returns non-zero +Help on function enumerate_files2 in module ida_diskio: + +enumerate_files2(*args) -> 'int' + enumerate_files2(answer, answer_size, path, fname, fv) -> int + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & + +Help on class file_enumerator_t in module ida_diskio: + +class file_enumerator_t(builtins.object) + | Proxy of C++ file_enumerator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> file_enumerator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_file_enumerator_t(...) + | delete_file_enumerator_t(self) + | + | visit_file(self, *args) -> 'int' + | visit_file(self, file) -> int + | + | @param file: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + Help on function fopenA in module ida_diskio: fopenA(*args) -> 'FILE *' fopenA(file) -> FILE * - - Open a file for append in text mode, deny none. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenM in module ida_diskio: fopenM(*args) -> 'FILE *' fopenM(file) -> FILE * - - Open a file for read/write in binary mode, deny write. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRB in module ida_diskio: fopenRB(*args) -> 'FILE *' fopenRB(file) -> FILE * - - Open a file for read in binary mode, deny none. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRT in module ida_diskio: fopenRT(*args) -> 'FILE *' fopenRT(file) -> FILE * - - Open a file for read in text mode, deny none. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWB in module ida_diskio: fopenWB(*args) -> 'FILE *' fopenWB(file) -> FILE * + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. - - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWT in module ida_diskio: fopenWT(*args) -> 'FILE *' fopenWT(file) -> FILE * + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. - - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on class generic_linput_t in module ida_diskio: @@ -8114,6 +8597,10 @@ class generic_linput_t(builtins.object) | | read(self, *args) -> 'ssize_t' | read(self, off, buffer, nbytes) -> ssize_t + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8125,10 +8612,10 @@ class generic_linput_t(builtins.object) | list of weak references to the object (if defined) | | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 + | blocksize | | filesize - | generic_linput_t_filesize_get(self) -> uint64 + | filesize | | thisown | The membership flag @@ -8137,289 +8624,272 @@ Help on function get_ida_subdirs in module ida_diskio: get_ida_subdirs(*args) -> 'qstrvec_t *' get_ida_subdirs(subdir, flags=0) -> int - - - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: - [$IDAUSR/subdir (0..N entries)] - $IDADIR/subdir - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits @return: number of directories appended to 'dirs' Help on function get_linput_type in module ida_diskio: get_linput_type(*args) -> 'linput_type_t' get_linput_type(li) -> linput_type_t - - Get linput type. - - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_special_folder in module ida_diskio: get_special_folder(*args) -> 'size_t' get_special_folder(csidl) -> str + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size - - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - - @param csidl (C++: int) + @param csidl: (C++: int) Help on function get_user_idadir in module ida_diskio: get_user_idadir(*args) -> 'char const *' get_user_idadir() -> char const * - - Get user ida related directory. - - if $IDAUSR is defined: - - the first element in $IDAUSR + - the first element in $IDAUSR - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) Help on function getsysfile in module ida_diskio: getsysfile(*args) -> 'char const *' getsysfile(filename, subdir) -> str + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. - - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. Help on function idadir in module ida_diskio: idadir(*args) -> 'char const *' idadir(subdir) -> char const * + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) - - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - - @param subdir (C++: const char *) + @param subdir: (C++: const char *) char const * + +Help on class ioports_fallback_t in module ida_diskio: + +class ioports_fallback_t(builtins.object) + | Proxy of C++ ioports_fallback_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ioports_fallback_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ioports_fallback_t(...) + | delete_ioports_fallback_t(self) + | + | handle(self, *args) -> 'bool' + | handle(self, ports, line) -> bool + | + | @param ports: ioports_t const & + | @param line: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag Help on function open_linput in module ida_diskio: open_linput(*args) -> 'linput_t *' open_linput(file, remote) -> linput_t * - - Open loader input. - - @param file (C++: const char *) - @param remote (C++: bool) + @param file: (C++: const char *) char const * + @param remote: (C++: bool) Help on function qlgetz in module ida_diskio: qlgetz(*args) -> 'size_t' qlgetz(li, fpos) -> str + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + @param li: (C++: linput_t *) + @param fpos: (C++: int64) + +Help on function read_ioports2 in module ida_diskio: + +read_ioports2(*args) -> 'ssize_t' + read_ioports2(ports, device, file, callback=None) -> ssize_t - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - - @param li (C++: linput_t *) - @param fpos (C++: int64) + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last +Module "ida_entry"s docstring: """ +Functions that deal with entry points. -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' add_entry(ord, ea, name, makecode, flags=0) -> bool - - Add an entry point to the list of entry points. - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* @return: success (currently always true) Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' get_entry(ord) -> ea_t - - Get entry point address by its ordinal - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_forwarder in module ida_entry: get_entry_forwarder(*args) -> 'qstring *' get_entry_forwarder(ord) -> str - - Get forwarder name for the entry point by its ordinal. - @param ord: ordinal number of entry point (C++: uval_t) + @param ord: (C++: uval_t) ordinal number of entry point @return: size of entry forwarder name or -1 Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' get_entry_name(ord) -> str - - Get name of the entry point by its ordinal. - @param ord: ordinal number of entry point (C++: uval_t) + @param ord: (C++: uval_t) ordinal number of entry point @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' get_entry_ordinal(idx) -> uval_t - - Get ordinal number of an entry point. - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' get_entry_qty() -> size_t - - Get number of entry points. Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' rename_entry(ord, name, flags=0) -> bool - - Rename entry point. - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* @return: success Help on function set_entry_forwarder in module ida_entry: set_entry_forwarder(*args) -> 'bool' set_entry_forwarder(ord, name, flags=0) -> bool - - Set forwarder name for ordinal. - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* @return: success -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY +Module "ida_enum"s docstring: """ +Assembly level enum management. -ida_entry.AEF_NODUMMY -""" -it begins with a dummy suffix. See also AEF_IDBENC +Enums and bitfields are represented as enum_t.""" -automatically prepend the name with '_' if -""" - -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === Help on function add_enum in module ida_enum: add_enum(*args) -> 'enum_t' add_enum(idx, name, flag) -> enum_t + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" - - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags64_t) Help on function add_enum_member in module ida_enum: add_enum_member(*args) -> 'int' add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - - Add member to enum type. - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' del_enum(id) - - Delete an enum type. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module ida_enum: del_enum_member(*args) -> 'bool' del_enum_member(id, value, serial, bmask) -> bool - - Delete member of enum type. - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) Help on class enum_member_visitor_t in module ida_enum: @@ -8432,6 +8902,8 @@ class enum_member_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8440,6 +8912,11 @@ class enum_member_visitor_t(builtins.object) | | visit_enum_member(self, *args) -> 'int' | visit_enum_member(self, cid, value) -> int + | Implements action to take when enum member is visited. + | + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8457,569 +8934,471 @@ Help on function for_all_enum_members in module ida_enum: for_all_enum_members(*args) -> 'int' for_all_enum_members(id, cv) -> int - - Visit all members of a given enum. - - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) Help on function get_bmask_cmt in module ida_enum: get_bmask_cmt(*args) -> 'qstring *' get_bmask_cmt(id, bmask, repeatable) -> str + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) -> 'qstring *' get_bmask_name(id, bmask) -> str + + @param id: enum_t + @param bmask: bmask_t Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' get_enum(name) -> enum_t - - Get enum by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' get_enum_cmt(id, repeatable) -> str - - Get enum comment. - - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: -get_enum_flag(*args) -> 'flags_t' - get_enum_flag(id) -> flags_t +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' get_enum_idx(id) -> uval_t + Get the index in the list of enums. - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module ida_enum: get_enum_member(*args) -> 'const_t' get_enum_member(id, value, serial, mask) -> const_t + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial - - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' get_enum_member_bmask(id) -> bmask_t - - Get bitmask of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' get_enum_member_by_name(name) -> const_t - - Get a reference to an enum member by its name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module ida_enum: get_enum_member_cmt(*args) -> 'qstring *' get_enum_member_cmt(id, repeatable) -> str - - Get enum member's comment. - - @param id (C++: const_t) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param repeatable: (C++: bool) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' get_enum_member_enum(id) -> enum_t - - Get the parent enum of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module ida_enum: get_enum_member_name(*args) -> 'qstring *' get_enum_member_name(id) -> str - - Get name of an enum member by const_t. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_serial in module ida_enum: get_enum_member_serial(*args) -> 'uchar' get_enum_member_serial(cid) -> uchar - - Get serial number of an enum member. - - @param cid (C++: const_t) + @param cid: (C++: const_t) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' get_enum_member_value(id) -> uval_t - - Get value of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' get_enum_name(id) -> str - - Get name of enum. - - - @param id (C++: enum_t) + @param id: enum_t Help on function get_enum_name2 in module ida_enum: get_enum_name2(*args) -> 'qstring *' get_enum_name2(id, flags=0) -> str - - Get name of enum - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' get_enum_size(id) -> size_t - - Get the number of the members of the enum. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_type_ordinal in module ida_enum: get_enum_type_ordinal(*args) -> 'int32' get_enum_type_ordinal(id) -> int32 - - Get corresponding type ordinal number. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' - get_first_bmask(id) -> bmask_t - - + get_first_bmask(enum_id) -> bmask_t Get first bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum (bitfield) @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_enum_member in module ida_enum: get_first_enum_member(*args) -> 'uval_t' get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t Help on function get_first_serial_enum_member in module ida_enum: get_first_serial_enum_member(*args) -> 'uchar *' get_first_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' - get_last_bmask(id) -> bmask_t - - + get_last_bmask(enum_id) -> bmask_t Get last bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module ida_enum: get_last_enum_member(*args) -> 'uval_t' get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t Help on function get_last_serial_enum_member in module ida_enum: get_last_serial_enum_member(*args) -> 'uchar *' get_last_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' - get_next_bmask(id, bmask) -> bmask_t - - + get_next_bmask(enum_id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_enum_member in module ida_enum: get_next_enum_member(*args) -> 'uval_t' get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_serial_enum_member in module ida_enum: get_next_serial_enum_member(*args) -> 'uchar *' get_next_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' - get_prev_bmask(id, bmask) -> bmask_t - - + get_prev_bmask(enum_id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module ida_enum: get_prev_enum_member(*args) -> 'uval_t' get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_prev_serial_enum_member in module ida_enum: get_prev_serial_enum_member(*args) -> 'uchar *' get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> enum_t + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) + @param idx: (C++: size_t) Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_fromtil in module ida_enum: is_enum_fromtil(*args) -> 'bool' is_enum_fromtil(id) -> bool - - Does enum come from type library? - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_hidden in module ida_enum: is_enum_hidden(*args) -> 'bool' is_enum_hidden(id) -> bool - - Is enum collapsed? - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_ghost_enum in module ida_enum: is_ghost_enum(*args) -> 'bool' is_ghost_enum(id) -> bool - - Is a ghost copy of a local type? - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_one_bit_mask in module ida_enum: is_one_bit_mask(*args) -> 'bool' is_one_bit_mask(mask) -> bool - - Is bitmask one bit? - - @param mask (C++: bmask_t) + @param mask: (C++: bmask_t) Help on function set_bmask_cmt in module ida_enum: set_bmask_cmt(*args) -> 'bool' set_bmask_cmt(id, bmask, cmt, repeatable) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) -> 'bool' set_bmask_name(id, bmask, name) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' set_enum_bf(id, bf) -> bool - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' set_enum_cmt(id, cmt, repeatable) -> bool - - Set comment for enum type. - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) Help on function set_enum_fromtil in module ida_enum: set_enum_fromtil(*args) -> 'bool' set_enum_fromtil(id, fromtil) -> bool - - Specify that enum comes from a type library. - - @param id (C++: enum_t) - @param fromtil (C++: bool) + @param id: (C++: enum_t) + @param fromtil: (C++: bool) Help on function set_enum_ghost in module ida_enum: set_enum_ghost(*args) -> 'bool' set_enum_ghost(id, ghost) -> bool - - Specify that enum is a ghost copy of a local type. - - @param id (C++: enum_t) - @param ghost (C++: bool) + @param id: (C++: enum_t) + @param ghost: (C++: bool) Help on function set_enum_hidden in module ida_enum: set_enum_hidden(*args) -> 'bool' set_enum_hidden(id, hidden) -> bool - - Collapse enum. - - @param id (C++: enum_t) - @param hidden (C++: bool) + @param id: (C++: enum_t) + @param hidden: (C++: bool) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' set_enum_member_cmt(id, cmt, repeatable) -> bool - - Set comment for enum member. - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' set_enum_name(id, name) -> bool - - Set name of enum type. - - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_type_ordinal in module ida_enum: set_enum_type_ordinal(*args) -> 'void' set_enum_type_ordinal(id, ord) - - Set corresponding type ordinal number. - - @param id (C++: enum_t) - @param ord (C++: int32) + @param id: (C++: enum_t) + @param ord: (C++: int32) Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' set_enum_width(id, width) -> bool + See comment for get_enum_width() - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) + @param id: (C++: enum_t) + @param width: (C++: int) -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask +Module "ida_expr"s docstring: """ +Functions that deal with C-like expressions and built-in IDC language. -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === Help on class _IdcFunction in module ida_expr: class _IdcFunction(builtins.object) @@ -9048,332 +9427,281 @@ Help on function add_idc_class in module ida_expr: add_idc_class(*args) -> 'idc_class_t *' add_idc_class(name, super=None) -> idc_class_t * - - Create a new IDC class. - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. Help on function add_idc_func in module ida_expr: -add_idc_func(name, fp, args, defvals=None, flags=0) - Extends the IDC language by exposing a new IDC function that is backed up by a Python function +add_idc_func(name, fp, args, defvals=(), flags=0) + Extends the IDC language by exposing a new IDC function that is backed up by a Python function - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param flags: IDC function flags. A combination of EXTFUN_XXX constants + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); - @return: Boolean - - - Add an IDC function. This function does not modify the predefined - kernel functions. Example: - - static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) - { - msg("myfunc is called with arg0=%a and arg1=%s - ", argv[0].num, argv[1].str); - res->num = 5; // let's return 5 - return eOk; - } - static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; - static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, NULL, 0, EXTFUN_BASE }; - - // after this: - add_idc_func(myfunc_desc); - - // there is a new IDC function which can be called like this: - MyFunc5(0x123, "test"); - - If the function already exists, it will be replaced by the new - function - - @return: success + @note: If the function already exists, it will be replaced by the new function + @return: success Help on function add_idc_gvar in module ida_expr: add_idc_gvar(*args) -> 'idc_value_t *' add_idc_gvar(name) -> idc_value_t - - Add global IDC variable. - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. Help on function compile_idc_file in module ida_expr: compile_idc_file(*args) -> 'qstring *' compile_idc_file(nonnul_line) -> str + + @param nonnul_line: char const * Help on function compile_idc_snippet in module ida_expr: compile_idc_snippet(*args) -> 'qstring *' compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - - Compile text with IDC statements. - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) -> 'qstring *' compile_idc_text(nonnul_line) -> str + + @param nonnul_line: char const * Help on function copy_idcv in module ida_expr: copy_idcv(*args) -> 'error_t' copy_idcv(dst, src) -> error_t - - Copy 'src' to 'dst'. For idc objects only a reference is copied. - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function create_idcv_ref in module ida_expr: create_idcv_ref(*args) -> 'bool' create_idcv_ref(ref, v) -> bool + Create a variable reference. Currently only references to global variables can + be created. - - Create a variable reference. Currently only references to global - variables can be created. - - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference @return: success Help on function deep_copy_idcv in module ida_expr: deep_copy_idcv(*args) -> 'error_t' deep_copy_idcv(dst, src) -> error_t + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called - - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function del_idc_func in module ida_expr: del_idc_func(name) Unregisters the specified IDC function - @param name: IDC function name to unregister - - @return: Boolean - - Delete an IDC function Help on function del_idcv_attr in module ida_expr: del_idcv_attr(*args) -> 'error_t' del_idcv_attr(obj, attr) -> error_t - - Delete an object attribute. - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name @return: error code, eOk on success Help on function deref_idcv in module ida_expr: deref_idcv(*args) -> 'idc_value_t *' deref_idcv(v, vref_flags) -> idc_value_t + Dereference a VT_REF variable. - - Dereference a 'VT_REF' variable. - - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, qerrno is set to eExecBadRef "Illegal variable reference" Help on function eval_expr in module ida_expr: eval_expr(*args) -> 'qstring *' eval_expr(rv, where, line) -> str - - Compile and calculate an expression. - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf Help on function eval_idc_expr in module ida_expr: eval_idc_expr(*args) -> 'qstring *' eval_idc_expr(rv, where, line) -> str + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. - - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * Help on function exec_idc_script in module ida_expr: exec_idc_script(*args) -> 'qstring *' exec_idc_script(result, path, func, args, argsnum) -> str - - Compile and execute IDC function(s) from file. - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf Help on function exec_system_script in module ida_expr: exec_system_script(*args) -> 'bool' exec_system_script(file, complain_if_no_file=True) -> bool - - Compile and execute "main" function from system file. - @param file: file name with IDC function(s). The file will be searched - in the idc subdir of ida (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed Help on function find_idc_class in module ida_expr: find_idc_class(*args) -> 'idc_class_t *' find_idc_class(name) -> idc_class_t * - - Find an existing IDC class by its name. - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() Help on function find_idc_func in module ida_expr: find_idc_func(*args) -> 'qstring *' find_idc_func(prefix, n=0) -> str + + @param prefix: char const * + @param n: int Help on function find_idc_gvar in module ida_expr: find_idc_gvar(*args) -> 'idc_value_t *' find_idc_gvar(name) -> idc_value_t - - Find an existing global IDC variable by its name. - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner Help on function first_idcv_attr in module ida_expr: first_idcv_attr(*args) -> 'char const *' first_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * Help on function free_idcv in module ida_expr: free_idcv(*args) -> 'void' free_idcv(v) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 - - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function get_idc_filename in module ida_expr: get_idc_filename(*args) -> 'char const *' get_idc_filename(file) -> str + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. - - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and the current directory. - - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf Help on function get_idcv_attr in module ida_expr: get_idcv_attr(*args) -> 'error_t' get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - - Get an object attribute. - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist @return: error code, eOk on success Help on function get_idcv_class_name in module ida_expr: get_idcv_class_name(*args) -> 'qstring *' get_idcv_class_name(obj) -> str - - Retrieves the IDC object class name. - @param obj: class instance variable (C++: const idc_value_t *) + @param obj: (C++: const idc_value_t *) class instance variable @return: error code, eOk on success Help on function get_idcv_slice in module ida_expr: get_idcv_slice(*args) -> 'error_t' get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - - Get slice. - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 @return: eOk if success Help on class highlighter_cbs_t in module ida_expr: @@ -9387,6 +9715,8 @@ class highlighter_cbs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9401,9 +9731,15 @@ class highlighter_cbs_t(builtins.object) | | set_block_state(self, *args) -> 'void' | set_block_state(self, arg0) + | + | @param arg0: int32 | | set_style(self, *args) -> 'void' | set_style(self, arg0, arg1, arg2) + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9427,6 +9763,8 @@ class idc_global_t(builtins.object) | __init__(self, *args) | __init__(self) -> idc_global_t | __init__(self, n) -> idc_global_t + | + | @param n: char const * | | __repr__ = _swig_repr(self) | @@ -9443,13 +9781,13 @@ class idc_global_t(builtins.object) | list of weak references to the object (if defined) | | name - | idc_global_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | idc_global_t_value_get(self) -> idc_value_t + | value Help on class idc_value_t in module ida_expr: @@ -9460,8 +9798,16 @@ class idc_value_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t + | + | @param n: sval_t + | | __init__(self, r) -> idc_value_t + | + | @param r: idc_value_t const & + | | __init__(self, _str) -> idc_value_t + | + | @param _str: char const * | | __repr__ = _swig_repr(self) | @@ -9471,52 +9817,73 @@ class idc_value_t(builtins.object) | _create_empty_string(self, *args) -> 'void' | _create_empty_string(self) | - | _idc_value_t__get_e = __get_e(self, *args) -> 'wrapped_array_t< ushort,6 >' - | __get_e(self) -> wrapped_array_t< ushort,6 > - | | c_str(self, *args) -> 'char const *' | c_str(self) -> char const * + | VT_STR | | clear(self, *args) -> 'void' | clear(self) + | See free_idcv() | | create_empty_string(self, *args) -> 'void' | create_empty_string(self) | | is_convertible(self, *args) -> 'bool' | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. | | is_integral(self, *args) -> 'bool' | is_integral(self) -> bool + | Does value represent a whole number? | | is_zero(self, *args) -> 'bool' | is_zero(self) -> bool + | Does value represent the integer 0? | | qstr(self, *args) -> 'qstring const &' | qstr(self) -> qstring + | VT_STR | qstr(self) -> qstring const & | | set_float(self, *args) -> 'void' | set_float(self, f) + | + | @param f: fpvalue_t const & | | set_int64(self, *args) -> 'void' | set_int64(self, v) + | + | @param v: int64 | | set_long(self, *args) -> 'void' | set_long(self, v) + | + | @param v: sval_t | | set_pvoid(self, *args) -> 'void' | set_pvoid(self, p) + | + | @param p: void * | | set_string(self, *args) -> 'void' | set_string(self, _str, len) + | + | @param _str: char const * + | @param len: size_t + | | set_string(self, _str) + | + | @param _str: char const * | | swap(self, *args) -> 'void' | swap(self, v) + | Set this = r and v = this. + | + | @param v: (C++: idc_value_t &) | | u_str(self, *args) -> 'uchar const *' | u_str(self) -> uchar const * + | VT_STR | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9528,25 +9895,25 @@ class idc_value_t(builtins.object) | list of weak references to the object (if defined) | | e - | __get_e(self) -> wrapped_array_t< ushort,6 > + | e | | funcidx - | idc_value_t_funcidx_get(self) -> int + | funcidx | | i64 - | idc_value_t_i64_get(self) -> int64 + | i64 | | num - | idc_value_t_num_get(self) -> sval_t + | num | | obj - | idc_value_t_obj_get(self) -> idc_object_t * + | obj | | pvoid - | idc_value_t_pvoid_get(self) -> void * + | pvoid | | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] + | reserve | | str | @@ -9554,7 +9921,7 @@ class idc_value_t(builtins.object) | The membership flag | | vtype - | idc_value_t_vtype_get(self) -> char + | vtype Help on class idc_values_t in module ida_expr: @@ -9565,10 +9932,14 @@ class idc_values_t(builtins.object) | | __getitem__(self, *args) -> 'idc_value_t const &' | __getitem__(self, i) -> idc_value_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -9580,19 +9951,23 @@ class idc_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: idc_value_t const & | | __swig_destroy__ = delete_idc_values_t(...) | delete_idc_values_t(self) | | at(self, *args) -> 'idc_value_t const &' | at(self, _idx) -> idc_value_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< idc_value_t >::const_iterator' | begin(self) -> idc_value_t - | begin(self) -> idc_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -9605,11 +9980,16 @@ class idc_values_t(builtins.object) | | end(self, *args) -> 'qvector< idc_value_t >::const_iterator' | end(self) -> idc_value_t - | end(self) -> idc_value_t | | erase(self, *args) -> 'qvector< idc_value_t >::iterator' | erase(self, it) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | | erase(self, first, last) -> idc_value_t + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator | | extract(self, *args) -> 'idc_value_t *' | extract(self) -> idc_value_t @@ -9619,18 +9999,29 @@ class idc_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=idc_value_t()) + | + | @param x: idc_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: idc_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< idc_value_t >::iterator' | insert(self, it, x) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'idc_value_t &' | push_back(self, x) + | + | @param x: idc_value_t const & + | | push_back(self) -> idc_value_t | | qclear(self, *args) -> 'void' @@ -9638,16 +10029,26 @@ class idc_values_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: idc_value_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< idc_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -9668,119 +10069,112 @@ Help on function idcv_float in module ida_expr: idcv_float(*args) -> 'error_t' idcv_float(v) -> error_t - - Convert IDC variable to a floating point. - - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function idcv_int64 in module ida_expr: idcv_int64(*args) -> 'error_t' idcv_int64(v) -> error_t - - Convert IDC variable to a 64bit number. - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) @return: v = 0 if impossible to convert to int64 Help on function idcv_long in module ida_expr: idcv_long(*args) -> 'error_t' idcv_long(v) -> error_t - - Convert IDC variable to a long (32/64bit) number. - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) @return: v = 0 if impossible to convert to long Help on function idcv_num in module ida_expr: idcv_num(*args) -> 'error_t' idcv_num(v) -> error_t - - Convert IDC variable to a long number. - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string Help on function idcv_object in module ida_expr: idcv_object(*args) -> 'error_t' idcv_object(v, icls=None) -> error_t - - Create an IDC object. The original value of 'v' is discarded (freed). - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() @return: always eOk Help on function idcv_string in module ida_expr: idcv_string(*args) -> 'error_t' idcv_string(v) -> error_t - - Convert IDC variable to a text string. - - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function last_idcv_attr in module ida_expr: last_idcv_attr(*args) -> 'char const *' last_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * Help on function move_idcv in module ida_expr: move_idcv(*args) -> 'error_t' move_idcv(dst, src) -> error_t + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. - - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) Help on function next_idcv_attr in module ida_expr: next_idcv_attr(*args) -> 'char const *' next_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) -> 'char const *' prev_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * Help on function print_idcv in module ida_expr: print_idcv(*args) -> 'qstring *' print_idcv(v, name=None, indent=0) -> str + Get text representation of idc_value_t. - - Get text representation of 'idc_value_t' . - - - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) Help on function py_add_idc_func in module ida_expr: py_add_idc_func(*args) -> 'bool' py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -9791,235 +10185,134 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) -> 'bool' pyw_convert_defvals(out, py_seq) -> bool + + @param out: idc_values_t * + @param py_seq: PyObject * Help on function pyw_register_idc_func in module ida_expr: pyw_register_idc_func(*args) -> 'size_t' pyw_register_idc_func(name, args, py_fp) -> size_t + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) -> 'bool' pyw_unregister_idc_func(ctxptr) -> bool + + @param ctxptr: size_t Help on function set_header_path in module ida_expr: set_header_path(*args) -> 'bool' set_header_path(path, add) -> bool + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. - - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory Help on function set_idcv_attr in module ida_expr: set_idcv_attr(*args) -> 'error_t' set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - - Set an object attribute. - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class @return: error code, eOk on success Help on function set_idcv_slice in module ida_expr: set_idcv_slice(*args) -> 'error_t' set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - - Set slice. - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 @return: eOk on success Help on function swap_idcvs in module ida_expr: swap_idcvs(*args) -> 'void' swap_idcvs(v1, v2) - - Swap 2 variables. - - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) Help on function throw_idc_exception in module ida_expr: throw_idc_exception(*args) -> 'error_t' throw_idc_exception(r, desc) -> error_t + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); - - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description @return: eExecThrow -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation +Module "ida_fixup"s docstring: """ +Functions that deal with fixup information. -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" +A loader should setup fixup information using set_fixup().""" -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === Help on function calc_fixup_size in module ida_fixup: calc_fixup_size(*args) -> 'int' calc_fixup_size(type) -> int + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error - - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function contains_fixups in module ida_fixup: contains_fixups(*args) -> 'bool' contains_fixups(ea, size) -> bool - - Does the specified address range contain any fixup information? - - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' del_fixup(source) - - Delete fixup information. - - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function exists_fixup in module ida_fixup: exists_fixup(*args) -> 'bool' exists_fixup(source) -> bool - - Check that a fixup exists at the given address. - - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function find_custom_fixup in module ida_fixup: find_custom_fixup(*args) -> 'fixup_type_t' find_custom_fixup(name) -> fixup_type_t - - Get id of a custom fixup handler. - @param name: name of the custom fixup handler (C++: const char *) + @param name: (C++: const char *) name of the custom fixup handler @return: id with FIXUP_CUSTOM bit set or 0 Help on class fixup_data_t in module ida_fixup: @@ -10032,6 +10325,9 @@ class fixup_data_t(builtins.object) | __init__(self, *args) | __init__(self) -> fixup_data_t | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | __repr__ = _swig_repr(self) | @@ -10040,6 +10336,7 @@ class fixup_data_t(builtins.object) | | calc_size(self, *args) -> 'int' | calc_size(self) -> int + | calc_fixup_size() | | clr_extdef(self, *args) -> 'void' | clr_extdef(self) @@ -10049,30 +10346,47 @@ class fixup_data_t(builtins.object) | | get(self, *args) -> 'bool' | get(self, source) -> bool + | get_fixup() + | + | @param source: (C++: ea_t) | | get_base(self, *args) -> 'ea_t' | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL | | get_desc(self, *args) -> 'char const *' | get_desc(self, source) -> char const * + | get_fixup_desc() + | + | @param source: (C++: ea_t) | | get_flags(self, *args) -> 'uint32' | get_flags(self) -> uint32 + | Fixup flags Fixup flags. | | get_handler(self, *args) -> 'fixup_handler_t const *' | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() | | get_type(self, *args) -> 'fixup_type_t' | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. | | get_value(self, *args) -> 'uval_t' | get_value(self, ea) -> uval_t + | get_fixup_value() + | + | @param ea: (C++: ea_t) | | has_base(self, *args) -> 'bool' | has_base(self) -> bool + | Is fixup relative? | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | is_fixup_custom() | | is_extdef(self, *args) -> 'bool' | is_extdef(self) -> bool @@ -10082,33 +10396,52 @@ class fixup_data_t(builtins.object) | | patch_value(self, *args) -> 'bool' | patch_value(self, ea) -> bool + | patch_fixup_value() + | + | @param ea: (C++: ea_t) | | set(self, *args) -> 'void' | set(self, source) + | set_fixup() + | + | @param source: (C++: ea_t) | | set_base(self, *args) -> 'void' | set_base(self, new_base) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) | | set_extdef(self, *args) -> 'void' | set_extdef(self) | | set_sel(self, *args) -> 'void' | set_sel(self, seg) + | + | @param seg: segment_t const * | | set_target_sel(self, *args) -> 'void' | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. | | set_type(self, *args) -> 'void' | set_type(self, type_) + | + | @param type_: fixup_type_t | | set_type_and_flags(self, *args) -> 'void' | set_type_and_flags(self, type_, flags_=0) + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | set_unused(self, *args) -> 'void' | set_unused(self) | | was_created(self, *args) -> 'bool' | was_created(self) -> bool + | Is fixup artificial? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10120,13 +10453,13 @@ class fixup_data_t(builtins.object) | list of weak references to the object (if defined) | | displacement - | fixup_data_t_displacement_get(self) -> adiff_t + | displacement | | off - | fixup_data_t_off_get(self) -> ea_t + | off | | sel - | fixup_data_t_sel_get(self) -> sel_t + | sel | | thisown | The membership flag @@ -10156,10 +10489,10 @@ class fixup_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | fixup_info_t_ea_get(self) -> ea_t + | ea | | fd - | fixup_info_t_fd_get(self) -> fixup_data_t + | fd | | thisown | The membership flag @@ -10168,26 +10501,21 @@ Help on function gen_fix_fixups in module ida_fixup: gen_fix_fixups(*args) -> 'void' gen_fix_fixups(_from, to, size) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). - - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) Help on function get_first_fixup_ea in module ida_fixup: get_first_fixup_ea(*args) -> 'ea_t' get_first_fixup_ea() -> ea_t - - Get the first address with fixup information @return: the first address with fixup information, or BADADDR @@ -10196,169 +10524,156 @@ Help on function get_fixup in module ida_fixup: get_fixup(*args) -> 'bool' get_fixup(fd, source) -> bool - - Get fixup information. - - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) Help on function get_fixup_desc in module ida_fixup: get_fixup_desc(*args) -> 'fixup_data_t const &' get_fixup_desc(source, fd) -> str - - Get FIXUP description comment. - - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & Help on function get_fixup_handler in module ida_fixup: get_fixup_handler(*args) -> 'fixup_handler_t const *' get_fixup_handler(type) -> fixup_handler_t const * - - Get handler of standard or custom fixup. - - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function get_fixup_value in module ida_fixup: get_fixup_value(*args) -> 'uval_t' get_fixup_value(ea, type) -> uval_t + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. - - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value Help on function get_fixups in module ida_fixup: get_fixups(*args) -> 'bool' get_fixups(out, ea, size) -> bool + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' get_next_fixup_ea(ea) -> ea_t - - Find next address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the next address with fixup information, or BADADDR Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' get_prev_fixup_ea(ea) -> ea_t - - Find previous address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the previous address with fixup information, or BADADDR +Help on function handle_fixups_in_macro in module ida_fixup: + +handle_fixups_in_macro(*args) -> 'bool' + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the + apply() callback of a custom fixup. + + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) + Help on function is_fixup_custom in module ida_fixup: is_fixup_custom(*args) -> 'bool' is_fixup_custom(type) -> bool - - Is fixup processed by processor module? - - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function patch_fixup_value in module ida_fixup: patch_fixup_value(*args) -> 'bool' patch_fixup_value(ea, fd) -> bool + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. - - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. Help on function set_fixup in module ida_fixup: set_fixup(*args) -> 'void' set_fixup(source, fd) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. - - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file +Module "ida_fpro"s docstring: """ +System independent counterparts of FILE* related functions from Clib. -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === Help on class qfile_t in module ida_fpro: class qfile_t(builtins.object) - | Proxy of C++ qfile_t class. - | - | | A helper class to work with FILE related functions. | | Methods defined here: | | __init__(self, *args) | __init__(self, rhs) -> qfile_t + | + | @param rhs: qfile_t const & + | | __init__(self, pycapsule=None) -> qfile_t | - | - | Closes the file + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -10367,32 +10682,29 @@ class qfile_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | filename(self, *args) -> 'PyObject *' | filename(self) -> PyObject * | | flush(self, *args) -> 'int' | flush(self) -> int - | - | - | Reads a single byte from the file. Returns None if EOF or the read byte | | get_byte(self, *args) -> 'PyObject *' | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte | | get_fp(self, *args) -> 'FILE *' | get_fp(self) -> FILE * | | gets(self, *args) -> 'PyObject *' | gets(self, size) -> PyObject * - | - | | Reads a line from the input file. Returns the read line or None + | + | @param size: int | | open(self, *args) -> 'bool' | open(self, filename, mode) -> bool - | - | | Opens a file | | @param filename: the file name @@ -10401,36 +10713,38 @@ class qfile_t(builtins.object) | | opened(self, *args) -> 'bool' | opened(self) -> bool - | - | | Checks if the file is opened or not | | put_byte(self, *args) -> 'int' | put_byte(self, chr) -> int - | - | | Writes a single byte to the file + | + | @param chr: int | | puts(self, *args) -> 'int' | puts(self, str) -> int + | + | @param str: char const * | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * - | - | | Reads from the file. Returns the buffer or None + | + | @param size: int | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool | | seek(self, *args) -> 'int' | seek(self, offset, whence=SEEK_SET) -> int - | - | | Set input source position + | + | @param offset: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | size(self, *args) -> 'int64' @@ -10438,35 +10752,36 @@ class qfile_t(builtins.object) | | tell(self, *args) -> 'int64' | tell(self) -> int64 - | - | | Returns the current position | | write(self, *args) -> 'int' | write(self, py_buf) -> int - | - | | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * | | writebytes(self, *args) -> 'int' | writebytes(self, py_buf, big_endian) -> int - | - | | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool | | ---------------------------------------------------------------------- | Static methods defined here: | | from_capsule(*args) -> 'qfile_t *' | from_capsule(pycapsule) -> qfile_t + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'qfile_t *' | from_fp(fp) -> qfile_t + | + | @param fp: FILE * | | tmpfile(*args) -> 'qfile_t *' | tmpfile() -> qfile_t - | - | | A static method to construct an instance using a temporary file | | ---------------------------------------------------------------------- @@ -10476,7 +10791,7 @@ class qfile_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -10488,380 +10803,358 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) -> 'qfile_t *' qfile_t_from_capsule(pycapsule) -> qfile_t + + @param pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) -> 'qfile_t *' qfile_t_from_fp(fp) -> qfile_t + + @param fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: qfile_t_tmpfile(*args) -> 'qfile_t *' qfile_t_tmpfile() -> qfile_t +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + Help on function add_auto_stkpnt in module ida_frame: add_auto_stkpnt(*args) -> 'bool' add_auto_stkpnt(pfn, ea, delta) -> bool - - Add automatic SP register change point. - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP @return: success Help on function add_frame in module ida_frame: add_frame(*args) -> 'bool' add_frame(pfn, frsize, frregs, argsize) -> bool - - Add function frame. - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) Help on function add_regvar in module ida_frame: add_regvar(*args) -> 'int' add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - - Define a register variable. - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition @return: Register variable error codes Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' add_user_stkpnt(ea, delta) -> bool - - Add user-defined SP register change point. - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP @return: success Help on function build_stkvar_name in module ida_frame: build_stkvar_name(*args) -> 'qstring *' build_stkvar_name(pfn, v) -> str - - Build automatic stack variable name. - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset @return: length of stack variable name or -1 Help on function build_stkvar_xrefs in module ida_frame: build_stkvar_xrefs(*args) -> 'void' build_stkvar_xrefs(out, pfn, mptr) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. - - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. Help on function calc_stkvar_struc_offset in module ida_frame: calc_stkvar_struc_offset(*args) -> 'ea_t' calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - - Calculate offset of stack variable in the frame structure. - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) Help on function define_stkvar in module ida_frame: define_stkvar(*args) -> 'bool' define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - - Define/redefine a stack variable. - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags64_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable @return: success Help on function del_frame in module ida_frame: del_frame(*args) -> 'bool' del_frame(pfn) -> bool - - Delete a function frame. - @param pfn: pointer to function structure (C++: func_t *) + @param pfn: (C++: func_t *) pointer to function structure @return: success Help on function del_regvar in module ida_frame: del_regvar(*args) -> 'int' del_regvar(pfn, ea1, ea2, canon) -> int - - Delete a register variable definition. - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register @return: Register variable error codes Help on function del_stkpnt in module ida_frame: del_stkpnt(*args) -> 'bool' del_stkpnt(pfn, ea) -> bool - - Delete SP register change point. - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address @return: success Help on function delete_unreferenced_stkvars in module ida_frame: delete_unreferenced_stkvars(*args) -> 'int' delete_unreferenced_stkvars(pfn) -> int + + @param pfn: func_t * Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) -> 'int' delete_wrong_stkvar_ops(pfn) -> int + + @param pfn: func_t * Help on function find_regvar in module ida_frame: find_regvar(*args) -> 'regvar_t *' find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + Find a register variable definition. + + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + + @return: nullptr-not found, otherwise ptr to regvar_t find_regvar(pfn, ea, canon) -> regvar_t - - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * Help on function frame_off_args in module ida_frame: frame_off_args(*args) -> 'ea_t' frame_off_args(pfn) -> ea_t - - Get starting address of arguments section. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_lvars in module ida_frame: frame_off_lvars(*args) -> 'ea_t' frame_off_lvars(pfn) -> ea_t - - Get start address of local variables section. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_retaddr in module ida_frame: frame_off_retaddr(*args) -> 'ea_t' frame_off_retaddr(pfn) -> ea_t - - Get starting address of return address section. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_savregs in module ida_frame: frame_off_savregs(*args) -> 'ea_t' frame_off_savregs(pfn) -> ea_t - - Get starting address of saved registers section. + @param pfn: (C++: const func_t *) func_t const * + +Help on function free_regvar in module ida_frame: + +free_regvar(*args) -> 'void' + free_regvar(v) - @param pfn (C++: const func_t *) + @param v: regvar_t * Help on function get_effective_spd in module ida_frame: get_effective_spd(*args) -> 'sval_t' get_effective_spd(pfn, ea) -> sval_t + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. - - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address @return: 0 or the difference, usually a negative number Help on function get_frame in module ida_frame: get_frame(*args) -> 'struc_t *' get_frame(pfn) -> struc_t - get_frame(ea) -> struc_t * - - Get pointer to function frame. - @param pfn: pointer to function structure (C++: const func_t *) + @param pfn: func_t const * + + get_frame(ea) -> struc_t * + + @param ea: ea_t Help on function get_frame_part in module ida_frame: get_frame_part(*args) -> 'void' get_frame_part(range, pfn, part) - - Get offsets of the frame part in the frame. - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part Help on function get_frame_retsize in module ida_frame: get_frame_retsize(*args) -> 'int' get_frame_retsize(pfn) -> int - - Get size of function return address. - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr Help on function get_frame_size in module ida_frame: get_frame_size(*args) -> 'asize_t' get_frame_size(pfn) -> asize_t + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. - - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr @return: size of frame in bytes or zero Help on function get_func_by_frame in module ida_frame: get_func_by_frame(*args) -> 'ea_t' get_func_by_frame(frame_id) -> ea_t + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 - - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR Help on function get_min_spd_ea in module ida_frame: get_min_spd_ea(*args) -> 'ea_t' get_min_spd_ea(pfn) -> ea_t + + @param pfn: func_t * Help on function get_sp_delta in module ida_frame: get_sp_delta(*args) -> 'sval_t' get_sp_delta(pfn, ea) -> sval_t - - Get modification of SP made at the specified location - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. Help on function get_spd in module ida_frame: get_spd(*args) -> 'sval_t' get_spd(pfn, ea) -> sval_t - - Get difference between the initial and current values of ESP. - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. Help on function get_stkvar in module ida_frame: get_stkvar(*args) -> 'PyObject *' - get_stkvar(insn, op, v) -> PyObject * - - + get_stkvar(insn, op, v) -> (member_t, int) or None Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) @param op: reference to instruction operand @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure + @return: - None on failure - tuple(member_t, actval) where actval: actual value used to fetch stack variable @@ -10869,85 +11162,42 @@ Help on function has_regvar in module ida_frame: has_regvar(*args) -> 'bool' has_regvar(pfn, ea) -> bool - - Is there a register variable definition? - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address Help on function is_funcarg_off in module ida_frame: is_funcarg_off(*args) -> 'bool' is_funcarg_off(pfn, frameoff) -> bool - - Does the given offset lie within the arguments section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) - -Help on class llabel_t in module ida_frame: - -class llabel_t(builtins.object) - | Proxy of C++ llabel_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> llabel_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_llabel_t(...) - | delete_llabel_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | llabel_t_ea_get(self) -> ea_t - | - | name - | llabel_t_name_get(self) -> char * - | - | thisown - | The membership flag + @param pfn: func_t const * + @param frameoff: uval_t Help on function lvar_off in module ida_frame: lvar_off(*args) -> 'sval_t' lvar_off(pfn, frameoff) -> sval_t - - Does the given offset lie within the local variables section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) + @param pfn: func_t const * + @param frameoff: uval_t Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' recalc_spd(cur_ea) -> bool - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on class regvar_t in module ida_frame: @@ -10963,69 +11213,106 @@ class regvar_t(ida_range.range_t) | | __init__(self, *args) | __init__(self) -> regvar_t + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_regvar_t(...) | delete_regvar_t(self) | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regvar_t & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | | canon - | regvar_t_canon_get(self) -> char * + | canon | | cmt - | regvar_t_cmt_get(self) -> char * + | cmt | | thisown | The membership flag | | user - | regvar_t_user_get(self) -> char * + | user | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11036,15 +11323,11 @@ class regvar_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -11055,76 +11338,63 @@ Help on function rename_regvar in module ida_frame: rename_regvar(*args) -> 'int' rename_regvar(pfn, v, user) -> int - - Rename a register variable. - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register @return: Register variable error codes Help on function set_frame_size in module ida_frame: set_frame_size(*args) -> 'bool' set_frame_size(pfn, frsize, frregs, argsize) -> bool + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). - - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return @return: success Help on function set_purged in module ida_frame: set_purged(*args) -> 'bool' set_purged(ea, nbytes, override_old_value) -> bool + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. - - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes @return: success Help on function set_regvar_cmt in module ida_frame: set_regvar_cmt(*args) -> 'int' set_regvar_cmt(pfn, v, cmt) -> int - - Set comment for a register variable. - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment @return: Register variable error codes Help on function soff_to_fpoff in module ida_frame: soff_to_fpoff(*args) -> 'sval_t' soff_to_fpoff(pfn, soff) -> sval_t + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). - - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - - @param pfn (C++: func_t *) - @param soff (C++: uval_t) + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11135,24 +11405,36 @@ class stkpnt_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __repr__ = _swig_repr(self) | @@ -11161,6 +11443,8 @@ class stkpnt_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11172,10 +11456,10 @@ class stkpnt_t(builtins.object) | list of weak references to the object (if defined) | | ea - | stkpnt_t_ea_get(self) -> ea_t + | ea | | spd - | stkpnt_t_spd_get(self) -> sval_t + | spd | | thisown | The membership flag @@ -11194,24 +11478,36 @@ class stkpnts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __repr__ = _swig_repr(self) | @@ -11220,6 +11516,8 @@ class stkpnts_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11242,13 +11540,10 @@ Help on function update_fpd in module ida_frame: update_fpd(*args) -> 'bool' update_fpd(pfn, fpd) -> bool - - Update frame pointer delta. - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. @return: success Help on class xreflist_entry_t in module ida_frame: @@ -11260,18 +11555,47 @@ class xreflist_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_xreflist_entry_t(...) | delete_xreflist_entry_t(self) | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: xreflist_entry_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -11282,16 +11606,16 @@ class xreflist_entry_t(builtins.object) | list of weak references to the object (if defined) | | ea - | xreflist_entry_t_ea_get(self) -> ea_t + | ea | | opnum - | xreflist_entry_t_opnum_get(self) -> uchar + | opnum | | thisown | The membership flag | | type - | xreflist_entry_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -11307,13 +11631,19 @@ class xreflist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) -> 'xreflist_entry_t const &' | __getitem__(self, i) -> xreflist_entry_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -11323,30 +11653,42 @@ class xreflist_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: xreflist_entry_t const & | | __swig_destroy__ = delete_xreflist_t(...) | delete_xreflist_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: xreflist_entry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: xreflist_entry_t const & | | at(self, *args) -> 'xreflist_entry_t const &' | at(self, _idx) -> xreflist_entry_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -11359,39 +11701,58 @@ class xreflist_t(builtins.object) | | end(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t | | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | erase(self, it) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | | erase(self, first, last) -> xreflist_entry_t + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) -> 'xreflist_entry_t *' | extract(self) -> xreflist_entry_t | | find(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | find(self, x) -> xreflist_entry_t - | find(self, x) -> xreflist_entry_t + | + | @param x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=xreflist_entry_t()) + | + | @param x: xreflist_entry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: xreflist_entry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: xreflist_entry_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | insert(self, it, x) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'xreflist_entry_t &' | push_back(self, x) + | + | @param x: xreflist_entry_t const & + | | push_back(self) -> xreflist_entry_t | | qclear(self, *args) -> 'void' @@ -11399,16 +11760,26 @@ class xreflist_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< xreflist_entry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -11430,241 +11801,457 @@ class xreflist_t(builtins.object) | | __hash__ = None -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad +Module "ida_funcs"s docstring: """ +Routines for working with functions within the disassembled program. -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" +This file also contains routines for working with library signatures (e.g. +FLIRT). -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address @return: success Help on function add_func_ex in module ida_funcs: add_func_ex(*args) -> 'bool' add_func_ex(pfn) -> bool + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). - - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - - @param pfn: ptr to filled function structure (C++: func_t *) + @param pfn: (C++: func_t *) ptr to filled function structure @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) -> 'void' add_regarg(pfn, reg, tif, name) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * Help on function append_func_tail in module ida_funcs: append_func_tail(*args) -> 'bool' append_func_tail(pfn, ea1, ea2) -> bool + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. - - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) + @param pfn: (C++: func_t *) pointer to the function + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. Help on function apply_idasgn_to in module ida_funcs: apply_idasgn_to(*args) -> 'int' apply_idasgn_to(signame, ea, is_startup) -> int - - Apply a signature file to the specified address. - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. @return: Library function codes Help on function apply_startup_sig in module ida_funcs: apply_startup_sig(*args) -> 'bool' apply_startup_sig(ea, startup) -> bool - - Apply a startup signature file to the specified address. - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension @return: true if successfully applied the signature Help on function calc_func_size in module ida_funcs: calc_func_size(*args) -> 'asize_t' calc_func_size(pfn) -> asize_t + Calculate function size. This function takes into account all fragments of the + function. - - Calculate function size. This function takes into account all - fragments of the function. - - @param pfn: ptr to function structure (C++: func_t *) + @param pfn: (C++: func_t *) ptr to function structure Help on function calc_idasgn_state in module ida_funcs: calc_idasgn_state(*args) -> 'int' calc_idasgn_state(n) -> int - - Get state of a signature in the list of planned signatures - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG Help on function calc_thunk_func_target in module ida_funcs: calc_thunk_func_target(*args) calc_thunk_func_target(pfn) -> ea_t - - Calculate target of a thunk function. - @param pfn: pointer to function (may not be NULL) (C++: func_t *) - @return: the target function or BADADDR + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' del_func(ea) -> bool - - Delete a function. - @param ea: any address in the function entry chunk (C++: ea_t) + @param ea: (C++: ea_t) any address in the function entry chunk @return: success Help on function del_idasgn in module ida_funcs: del_idasgn(*args) -> 'int' del_idasgn(n) -> int - - Remove signature from the list of planned signatures. - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED + +Help on class dyn_ea_array in module ida_funcs: + +class dyn_ea_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< ea_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_dyn_ea_array(...) + | delete_dyn_ea_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_range_array in module ida_funcs: + +class dyn_range_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< range_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | + | @param _data: range_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | __swig_destroy__ = delete_dyn_range_array(...) + | delete_dyn_range_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regarg_array in module ida_funcs: + +class dyn_regarg_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regarg_t const &' + | __getitem__(self, i) -> regarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | + | @param _data: regarg_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regarg_t const & + | + | __swig_destroy__ = delete_dyn_regarg_array(...) + | delete_dyn_regarg_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regvar_array in module ida_funcs: + +class dyn_regvar_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regvar_t const &' + | __getitem__(self, i) -> regvar_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | + | @param _data: regvar_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regvar_t const & + | + | __swig_destroy__ = delete_dyn_regvar_array(...) + | delete_dyn_regvar_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_stkpnt_array in module ida_funcs: + +class dyn_stkpnt_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'stkpnt_t const &' + | __getitem__(self, i) -> stkpnt_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | + | @param _data: stkpnt_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: stkpnt_t const & + | + | __swig_destroy__ = delete_dyn_stkpnt_array(...) + | delete_dyn_stkpnt_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag Help on function f_any in module ida_funcs: f_any(*args) -> 'bool' f_any(arg1, arg2) -> bool - - Helper function to accept any address. + + @param arg1: flags64_t + @param arg2: void * Help on function find_func_bounds in module ida_funcs: find_func_bounds(*args) -> 'int' find_func_bounds(nfn, flags) -> int + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. - - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags @return: Find function bounds result codes +Help on function free_regarg in module ida_funcs: + +free_regarg(*args) -> 'void' + free_regarg(v) + + @param v: regarg_t * + Help on function func_contains in module ida_funcs: func_contains(*args) -> 'bool' func_contains(pfn, ea) -> bool - - Does the given function contain the given address? - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function func_does_return in module ida_funcs: func_does_return(*args) -> 'bool' func_does_return(callee) -> bool + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. - - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - - @param callee (C++: ea_t) - -Help on function func_item_iterator_decode_preceding_insn in module ida_funcs: - -func_item_iterator_decode_preceding_insn(*args) -> 'bool' - func_item_iterator_decode_preceding_insn(fii, visited, p_farref, out) -> bool - -Help on function func_item_iterator_decode_prev_insn in module ida_funcs: - -func_item_iterator_decode_prev_insn(*args) -> 'bool' - func_item_iterator_decode_prev_insn(fii, out) -> bool - -Help on function func_item_iterator_next in module ida_funcs: - -func_item_iterator_next(*args) -> 'bool' - func_item_iterator_next(fii, testf, ud) -> bool - -Help on function func_item_iterator_prev in module ida_funcs: - -func_item_iterator_prev(*args) -> 'bool' - func_item_iterator_prev(fii, testf, ud) -> bool + @param callee: (C++: ea_t) Help on class func_item_iterator_t in module ida_funcs: @@ -11676,30 +12263,56 @@ class func_item_iterator_t(builtins.object) | __init__(self, *args) | __init__(self) -> func_item_iterator_t | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items | | __next__(self, *args) -> 'bool' - | __next__(self, func, ud) -> bool + | __next__(self, func) -> bool + | + | @param func: testf_t * | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_item_iterator_t(...) | delete_func_item_iterator_t(self) | + | addresses(self) + | Provide an iterator on addresses contained within the function + | | chunk(self, *args) -> 'range_t const &' | chunk(self) -> range_t | + | code_items(self) + | Provide an iterator on code items contained within the function + | | current(self, *args) -> 'ea_t' | current(self) -> ea_t | + | data_items(self) + | Provide an iterator on data items contained within the function + | | decode_preceding_insn(self, *args) -> 'bool' | decode_preceding_insn(self, visited, p_farref, out) -> bool + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * | | decode_prev_insn(self, *args) -> 'bool' | decode_prev_insn(self, out) -> bool + | + | @param out: insn_t * | | first(self, *args) -> 'bool' | first(self) -> bool | + | head_items(self) + | Provide an iterator on item heads contained within the function + | | last(self, *args) -> 'bool' | last(self) -> bool | @@ -11720,8 +12333,13 @@ class func_item_iterator_t(builtins.object) | next_not_tail(self, *args) -> 'bool' | next_not_tail(self) -> bool | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | | prev(self, *args) -> 'bool' - | prev(self, func, ud) -> bool + | prev(self, func) -> bool + | + | @param func: testf_t * | | prev_addr(self, *args) -> 'bool' | prev_addr(self) -> bool @@ -11740,9 +12358,27 @@ class func_item_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, pfn, _ea=BADADDR) -> bool + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool + | Set an arbitrary range. + | + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) -> 'bool' + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) -> 'bool' + | succ_code(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11760,6 +12396,9 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) -> 'bool' func_parent_iterator_set(fpi, pfn) -> bool + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -11771,6 +12410,11 @@ class func_parent_iterator_t(builtins.object) | __init__(self, *args) | __init__(self) -> func_parent_iterator_t | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -11796,9 +12440,13 @@ class func_parent_iterator_t(builtins.object) | | reset_fnt(self, *args) -> 'void' | reset_fnt(self, _fnt) + | + | @param _fnt: func_t * | | set(self, *args) -> 'bool' | set(self, _fnt) -> bool + | + | @param _fnt: func_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11825,96 +12473,122 @@ class func_t(ida_range.range_t) | Methods defined here: | | __get_points__(self, *args) -> 'dynamic_wrapped_array_t< stkpnt_t >' - | __get_points__(self) -> stkpnt_array + | __get_points__(self) -> dyn_stkpnt_array + | + | __get_referers__(self, *args) -> 'dynamic_wrapped_array_t< ea_t >' + | __get_referers__(self) -> dyn_ea_array + | + | __get_regargs__(self, *args) -> 'dynamic_wrapped_array_t< regarg_t >' + | __get_regargs__(self) -> dyn_regarg_array | | __get_regvars__(self, *args) -> 'dynamic_wrapped_array_t< regvar_t >' - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | __get_tails__(self, *args) -> 'dynamic_wrapped_array_t< range_t >' - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags64_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_t(...) | delete_func_t(self) | + | addresses(self) + | Alias for func_item_iterator_t(self).addresses() + | | analyzed_sp(self, *args) -> 'bool' | analyzed_sp(self) -> bool + | Has SP-analysis been performed? + | + | code_items(self) + | Alias for func_item_iterator_t(self).code_items() + | + | data_items(self) + | Alias for func_item_iterator_t(self).data_items() | | does_return(self, *args) -> 'bool' | does_return(self) -> bool + | Does function return? + | + | head_items(self) + | Alias for func_item_iterator_t(self).head_items() | | is_far(self, *args) -> 'bool' | is_far(self) -> bool + | Is a far function? | | need_prolog_analysis(self, *args) -> 'bool' | need_prolog_analysis(self) -> bool + | Needs prolog analysis? + | + | not_tails(self) + | Alias for func_item_iterator_t(self).not_tails() | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argsize - | func_t_argsize_get(self) -> asize_t + | argsize | | color - | func_t_color_get(self) -> bgcolor_t + | color | | flags - | func_t_flags_get(self) -> uint64 + | flags | | fpd - | func_t_fpd_get(self) -> asize_t + | fpd | | frame - | func_t_frame_get(self) -> uval_t + | frame | | frregs - | func_t_frregs_get(self) -> ushort + | frregs | | frsize - | func_t_frsize_get(self) -> asize_t - | - | llabelqty - | func_t_llabelqty_get(self) -> int - | - | llabels - | func_t_llabels_get(self) -> llabel_t * + | frsize | | owner - | func_t_owner_get(self) -> ea_t + | owner | | pntqty - | func_t_pntqty_get(self) -> uint32 + | pntqty | | points - | __get_points__(self) -> stkpnt_array + | __get_points__(self) -> dyn_stkpnt_array | | referers - | func_t_referers_get(self) -> ea_t * + | __get_referers__(self) -> dyn_ea_array | | refqty - | func_t_refqty_get(self) -> int + | refqty | | regargqty - | func_t_regargqty_get(self) -> int + | regargqty | | regargs - | func_t_regargs_get(self) -> regarg_t + | __get_regargs__(self) -> dyn_regarg_array | | regvarqty - | func_t_regvarqty_get(self) -> int + | regvarqty | | regvars - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | tailqty - | func_t_tailqty_get(self) -> int + | tailqty | | tails - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | thisown | The membership flag @@ -11924,43 +12598,72 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11971,15 +12674,11 @@ class func_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -11990,16 +12689,25 @@ Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) -> 'func_t *' func_t__from_ptrval__(ptrval) -> func_t + + @param ptrval: size_t Help on function func_tail_iterator_set in module ida_funcs: func_tail_iterator_set(*args) -> 'bool' func_tail_iterator_set(fti, pfn, ea) -> bool + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t Help on function func_tail_iterator_set_ea in module ida_funcs: func_tail_iterator_set_ea(*args) -> 'bool' func_tail_iterator_set_ea(fti, ea) -> bool + + @param fti: func_tail_iterator_t * + @param ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -12011,6 +12719,12 @@ class func_tail_iterator_t(builtins.object) | __init__(self, *args) | __init__(self) -> func_tail_iterator_t | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -12039,12 +12753,20 @@ class func_tail_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, _pfn, ea=BADADDR) -> bool + | + | @param _pfn: func_t * + | @param ea: ea_t | | set_ea(self, *args) -> 'bool' | set_ea(self, ea) -> bool + | + | @param ea: ea_t | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool + | + | @param ea1: ea_t + | @param ea2: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12062,8 +12784,6 @@ Help on function get_current_idasgn in module ida_funcs: get_current_idasgn(*args) -> 'int' get_current_idasgn() -> int - - Get number of the the current signature. @return: 0..n-1 @@ -12072,158 +12792,136 @@ Help on function get_fchunk in module ida_funcs: get_fchunk(*args) -> 'func_t *' get_fchunk(ea) -> func_t - - Get pointer to function chunk structure by address. - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function get_fchunk_num in module ida_funcs: get_fchunk_num(*args) -> 'int' get_fchunk_num(ea) -> int + Get ordinal number of a function chunk in the global list of function chunks. - - Get ordinal number of a function chunk in the global list of function - chunks. - - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. Help on function get_fchunk_qty in module ida_funcs: get_fchunk_qty(*args) -> 'size_t' get_fchunk_qty() -> size_t - - Get total number of function chunks in the program. Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t Help on function get_func in module ida_funcs: get_func(*args) -> 'func_t *' get_func(ea) -> func_t - - Get pointer to function structure by address. - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function get_func_bitness in module ida_funcs: get_func_bitness(*args) -> 'int' get_func_bitness(pfn) -> int - - Get function bitness (which is equal to the function segment bitness). - pfn==NULL => returns 0 + pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bits in module ida_funcs: get_func_bits(*args) -> 'int' get_func_bits(pfn) -> int - - Get number of bits in the function addressing. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bytes in module ida_funcs: get_func_bytes(*args) -> 'int' get_func_bytes(pfn) -> int - - Get number of bytes in the function addressing. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_chunknum in module ida_funcs: get_func_chunknum(*args) -> 'int' get_func_chunknum(pfn, ea) -> int - - Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function get_func_cmt in module ida_funcs: get_func_cmt(*args) -> 'qstring *' get_func_cmt(pfn, repeatable) -> str - - Get function comment. - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. Help on function get_func_name in module ida_funcs: get_func_name(*args) -> 'qstring *' get_func_name(ea) -> str - - Get function name. - @param ea: any address in the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function @return: length of the function name Help on function get_func_num in module ida_funcs: get_func_num(*args) -> 'int' get_func_num(ea) -> int - - Get ordinal number of a function. - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. Help on function get_func_qty in module ida_funcs: get_func_qty(*args) -> 'size_t' get_func_qty() -> size_t - - Get total number of functions in the program. Help on function get_func_ranges in module ida_funcs: get_func_ranges(*args) -> 'ea_t' get_func_ranges(ranges, pfn) -> ea_t - - Get function ranges. - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure @return: end address of the last function range (BADADDR-error) Help on function get_idasgn_desc in module ida_funcs: get_idasgn_desc(*args) -> 'PyObject *' - get_idasgn_desc(n) -> PyObject * - - + get_idasgn_desc(n) -> (str, str) Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -12235,9 +12933,7 @@ get_idasgn_desc(*args) -> 'PyObject *' Help on function get_idasgn_desc_with_matches in module ida_funcs: get_idasgn_desc_with_matches(*args) -> 'PyObject *' - get_idasgn_desc_with_matches(n) -> PyObject * - - + get_idasgn_desc_with_matches(n) -> (str, str, int) Get information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -12248,10 +12944,7 @@ Help on function get_idasgn_qty in module ida_funcs: get_idasgn_qty(*args) -> 'int' get_idasgn_qty() -> int - - - Get number of signatures in the list of planned and applied - signatures. + Get number of signatures in the list of planned and applied signatures. @return: 0..n @@ -12259,161 +12952,132 @@ Help on function get_idasgn_title in module ida_funcs: get_idasgn_title(*args) -> 'qstring *' get_idasgn_title(name) -> str - - Get full description of the signature by its short name. - @param name: short name of a signature (C++: const char *) + @param name: (C++: const char *) short name of a signature @return: size of signature description or -1 Help on function get_next_fchunk in module ida_funcs: get_next_fchunk(*args) -> 'func_t *' get_next_fchunk(ea) -> func_t - - Get pointer to the next function chunk in the global list. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if next function chunk doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist Help on function get_next_func in module ida_funcs: get_next_func(*args) -> 'func_t *' get_next_func(ea) -> func_t - - Get pointer to the next function. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if next function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist Help on function get_next_func_addr in module ida_funcs: get_next_func_addr(*args) -> 'ea_t' get_next_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t Help on function get_prev_fchunk in module ida_funcs: get_prev_fchunk(*args) -> 'func_t *' get_prev_fchunk(ea) -> func_t - - Get pointer to the previous function chunk in the global list. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if previous function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist Help on function get_prev_func in module ida_funcs: get_prev_func(*args) -> 'func_t *' get_prev_func(ea) -> func_t - - Get pointer to the previous function. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if previous function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist Help on function get_prev_func_addr in module ida_funcs: get_prev_func_addr(*args) -> 'ea_t' get_prev_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t Help on function getn_fchunk in module ida_funcs: getn_fchunk(*args) -> 'func_t *' getn_fchunk(n) -> func_t - - Get pointer to function chunk structure by number. - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function getn_func in module ida_funcs: getn_func(*args) -> 'func_t *' getn_func(n) -> func_t - - Get pointer to function structure by number. - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function is_finally_visible_func in module ida_funcs: is_finally_visible_func(*args) -> 'bool' is_finally_visible_func(pfn) -> bool + Is the function visible (event after considering SCF_SHHID_FUNC)? - - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - - - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on function is_func_entry in module ida_funcs: is_func_entry(*args) -> 'bool' is_func_entry(pfn) -> bool - - Does function describe a function entry chunk? - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_locked in module ida_funcs: is_func_locked(*args) -> 'bool' is_func_locked(pfn) -> bool - - Is the function pointer locked? - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_tail in module ida_funcs: is_func_tail(*args) -> 'bool' is_func_tail(pfn) -> bool - - Does function describe a function tail chunk? - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_same_func in module ida_funcs: is_same_func(*args) -> 'bool' is_same_func(ea1, ea2) -> bool - - Do two addresses belong to the same function? - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function is_visible_func in module ida_funcs: is_visible_func(*args) -> 'bool' is_visible_func(pfn) -> bool - - Is the function visible (not hidden)? - - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -12424,6 +13088,8 @@ class lock_func(builtins.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func + | + | @param _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -12446,106 +13112,51 @@ Help on function lock_func_range in module ida_funcs: lock_func_range(*args) -> 'void' lock_func_range(pfn, lock) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. - - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param pfn (C++: const func_t *) - @param lock (C++: bool) + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' plan_to_apply_idasgn(fname) -> int - - Add a signature file to the list of planned signature files. - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures - -Help on class range_array in module ida_funcs: - -class range_array(builtins.object) - | Proxy of C++ dynamic_wrapped_array_t< range_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'range_t const &' - | __getitem__(self, i) -> range_t - | - | __init__(self, *args) - | __init__(self, _data, _count) -> range_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_range_array(...) - | delete_range_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | range_array_count_get(self) -> size_t - | - | data - | range_array_data_get(self) -> range_t - | - | thisown - | The membership flag + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function read_regargs in module ida_funcs: read_regargs(*args) -> 'void' read_regargs(pfn) + + @param pfn: func_t * Help on function reanalyze_function in module ida_funcs: reanalyze_function(*args) -> 'void' reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. - - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. Help on function reanalyze_noret_flag in module ida_funcs: reanalyze_noret_flag(*args) -> 'bool' reanalyze_noret_flag(ea) -> bool + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. - - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -12556,12 +13167,20 @@ class regarg_t(builtins.object) | | __init__(self, *args) | __init__(self) -> regarg_t + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_regarg_t(...) | delete_regarg_t(self) | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regarg_t & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -12572,441 +13191,129 @@ class regarg_t(builtins.object) | list of weak references to the object (if defined) | | name - | regarg_t_name_get(self) -> char * + | name | | reg - | regarg_t_reg_get(self) -> int + | reg | | thisown | The membership flag | | type - | regarg_t_type_get(self) -> type_t * - -Help on class regvar_array in module ida_funcs: - -class regvar_array(builtins.object) - | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'regvar_t const &' - | __getitem__(self, i) -> regvar_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> regvar_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_regvar_array(...) - | delete_regvar_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | regvar_array_count_get(self) -> size_t - | - | data - | regvar_array_data_get(self) -> regvar_t * - | - | thisown - | The membership flag + | type Help on function remove_func_tail in module ida_funcs: remove_func_tail(*args) -> 'bool' remove_func_tail(pfn, tail_ea) -> bool + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. - - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) + @param pfn: (C++: func_t *) pointer to the function + @param tail_ea: (C++: ea_t) any address inside the tail to remove Help on function set_func_cmt in module ida_funcs: set_func_cmt(*args) -> 'bool' set_func_cmt(pfn, cmt, repeatable) -> bool - - Set function comment. This function works with function chunks too. - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' set_func_end(ea, newend) -> bool - - Move function chunk end address. - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function @return: success Help on function set_func_name_if_jumpfunc in module ida_funcs: set_func_name_if_jumpfunc(*args) -> 'int' set_func_name_if_jumpfunc(pfn, oldname) -> int + Give a meaningful name to function if it consists of only 'jump' instruction. - - Give a meaningful name to function if it consists of only 'jump' - instruction. - - @param pfn: pointer to function (may be NULL) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass NULL. (C++: const char *) + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. @return: success Help on function set_func_start in module ida_funcs: set_func_start(*args) -> 'int' set_func_start(ea, newstart) -> int - - Move function chunk start address. - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function @return: Function move result codes Help on function set_noret_insn in module ida_funcs: set_noret_insn(*args) -> 'bool' set_noret_insn(insn_ea, noret) -> bool + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() - - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - - @param insn_ea (C++: ea_t) - @param noret (C++: bool) + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) @return: true if the instruction 'noret' flag has been changed Help on function set_tail_owner in module ida_funcs: set_tail_owner(*args) -> 'bool' - set_tail_owner(fnt, func_start) -> bool + set_tail_owner(fnt, new_owner) -> bool + Set a new owner of a function tail. The new owner function must be already + referring to the tail (after append_func_tail). - - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) + @param fnt: (C++: func_t *) pointer to the function tail + @param new_owner: (C++: ea_t) the entry point of the new owner function Help on function set_visible_func in module ida_funcs: set_visible_func(*args) -> 'void' set_visible_func(pfn, visible) - - Set visibility of function. - - @param pfn (C++: func_t *) - @param visible (C++: bool) - -Help on class stkpnt_array in module ida_funcs: - -class stkpnt_array(builtins.object) - | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'stkpnt_t const &' - | __getitem__(self, i) -> stkpnt_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> stkpnt_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_stkpnt_array(...) - | delete_stkpnt_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | stkpnt_array_count_get(self) -> size_t - | - | data - | stkpnt_array_data_get(self) -> stkpnt_t * - | - | thisown - | The membership flag + @param pfn: (C++: func_t *) + @param visible: (C++: bool) Help on function try_to_add_libfunc in module ida_funcs: try_to_add_libfunc(*args) -> 'int' try_to_add_libfunc(ea) -> int + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. - - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - - @param ea: any address in the program (C++: ea_t) + @param ea: (C++: ea_t) any address in the program @return: Library function codes Help on function update_func in module ida_funcs: update_func(*args) -> 'bool' update_func(pfn) -> bool + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. - - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - - @param pfn: ptr to function structure (C++: func_t *) + @param pfn: (C++: func_t *) ptr to function structure @return: success -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered +Module "ida_gdl"s docstring: """ +Low level graph drawing operations.""" -ida_funcs.FIND_FUNC_EXIST -""" -its bounds are returned in 'nfn'. - -function exists already. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -just create instructions inside the boundaries. - -do not modify incoming function boundaries, -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -nfn->end_ea will have the address of the unexplored byte. - -function has instructions that pass execution flow to unexplored -bytes. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. -""" - -ida_funcs.FUNC_PROLOG_OK -""" -by last SP-analysis - -Prolog analysis has be performed -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -of the function - -User has specified far-ness -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === Help on class BasicBlock in module ida_gdl: class BasicBlock(builtins.object) @@ -13031,10 +13338,6 @@ class BasicBlock(builtins.object) | | __weakref__ | list of weak references to the object (if defined) - | - | endEA - | - | startEA Help on class FlowChart in module ida_gdl: @@ -13053,7 +13356,7 @@ class FlowChart(builtins.object) | Constructor | @param f: A func_t type, use get_func(ea) to get a reference | @param bounds: A tuple of the form (start, end). Used if "f" is None - | @param flags: one of the FC_xxxx flags. One interesting flag is FC_PREDS + | @param flags: one of the FC_xxxx flags. | | __iter__(self) | @@ -13073,115 +13376,380 @@ class FlowChart(builtins.object) | | size +Help on class cancellable_graph_t in module ida_gdl: + +class cancellable_graph_t(gdl_graph_t) + | Proxy of C++ cancellable_graph_t class. + | + | Method resolution order: + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> cancellable_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cancellable_graph_t(...) + | delete_cancellable_graph_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cancelled + | cancelled + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + Help on function display_gdl in module ida_gdl: display_gdl(*args) -> 'int' display_gdl(fname) -> int + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. - - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - - @param fname (C++: const char *) + @param fname: (C++: const char *) char const * @return: error code from os, 0 if ok +Help on class gdl_graph_t in module ida_gdl: + +class gdl_graph_t(builtins.object) + | Proxy of C++ gdl_graph_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + Help on function gen_complex_call_chart in module ida_gdl: gen_complex_call_chart(*args) -> 'bool' gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - - Build and display a complex xref graph. - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen Help on function gen_flow_graph in module ida_gdl: gen_flow_graph(*args) -> 'bool' gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - - Build and display a flow graph. - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen Help on function gen_gdl in module ida_gdl: gen_gdl(*args) -> 'void' gen_gdl(g, fname) - - Create GDL file for graph. - - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * Help on function gen_simple_call_chart in module ida_gdl: gen_simple_call_chart(*args) -> 'bool' gen_simple_call_chart(filename, wait, title, gflags) -> bool - - Build and display a simple function call graph. - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen Help on function is_noret_block in module ida_gdl: is_noret_block(*args) -> 'bool' is_noret_block(btype) -> bool - - Does this block never return? - - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on function is_ret_block in module ida_gdl: is_ret_block(*args) -> 'bool' is_ret_block(btype) -> bool - - Does this block return? - - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on class node_iterator in module ida_gdl: @@ -13192,12 +13760,19 @@ class node_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | + | @param n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator + | + | @param _g: gdl_graph_t const * + | @param n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | + | @param n: node_iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -13255,43 +13830,72 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13302,15 +13906,11 @@ class qbasic_block_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -13319,17 +13919,31 @@ class qbasic_block_t(ida_range.range_t) Help on class qflow_chart_t in module ida_gdl: -class qflow_chart_t(builtins.object) +class qflow_chart_t(cancellable_graph_t) | Proxy of C++ qflow_chart_t class. | + | Method resolution order: + | qflow_chart_t + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | | Methods defined here: | | __getitem__(self, *args) -> 'qbasic_block_t *' | __getitem__(self, n) -> qbasic_block_t + | + | @param n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -13338,37 +13952,69 @@ class qflow_chart_t(builtins.object) | | append_to_flowchart(self, *args) -> 'void' | append_to_flowchart(self, ea1, ea2) + | + | @param ea1: ea_t + | @param ea2: ea_t | | calc_block_type(self, *args) -> 'fc_block_type_t' | calc_block_type(self, blknum) -> fc_block_type_t + | + | @param blknum: size_t | | create(self, *args) -> 'void' | create(self, _title, _pfn, _ea1, _ea2, _flags) + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int + | | create(self, _title, ranges, _flags) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int | | get_node_label(self, *args) -> 'char *' - | get_node_label(self, arg2, arg3, arg4) -> char * + | get_node_label(self, n) -> char * + | + | @param n: int | | is_noret_block(self, *args) -> 'bool' | is_noret_block(self, blknum) -> bool + | + | @param blknum: size_t | | is_ret_block(self, *args) -> 'bool' | is_ret_block(self, blknum) -> bool + | + | @param blknum: size_t | | npred(self, *args) -> 'int' | npred(self, node) -> int + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int + | + | @param node: int + | @param i: int | | print_names(self, *args) -> 'bool' | print_names(self) -> bool | | print_node_attributes(self, *args) -> 'void' - | print_node_attributes(self, arg2, arg3) + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int | | refresh(self, *args) -> 'void' | refresh(self) @@ -13378,124 +14024,126 @@ class qflow_chart_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, node, i) -> int + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | bounds + | bounds + | + | flags + | flags + | + | nproper + | nproper + | + | pfn + | pfn + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from cancellable_graph_t: + | + | __disown__(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cancellable_graph_t: + | + | cancelled + | cancelled + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) - | - | bounds - | qflow_chart_t_bounds_get(self) -> range_t - | - | flags - | qflow_chart_t_flags_get(self) -> int - | - | nproper - | qflow_chart_t_nproper_get(self) -> int - | - | pfn - | qflow_chart_t_pfn_get(self) -> func_t * - | - | thisown - | The membership flag - | - | title - | qflow_chart_t_title_get(self) -> qstring * -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block +Module "ida_graph"s docstring: """ +Graph view management.""" -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_PREDS -""" -compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === Help on class GraphViewer in module ida_graph: class GraphViewer(ida_kernwin.CustomIDAMemo) @@ -13662,36 +14310,80 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from ida_kernwin.CustomIDAMemo: @@ -13708,8 +14400,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -13719,6 +14413,9 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -13741,14 +14438,24 @@ class TPointDouble(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble | __init__(self, a, b) -> TPointDouble + | + | @param a: double + | @param b: double + | | __init__(self, r) -> TPointDouble + | + | @param r: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: TPointDouble const & | | __repr__ = _swig_repr(self) | @@ -13757,12 +14464,16 @@ class TPointDouble(builtins.object) | | add(self, *args) -> 'void' | add(self, r) + | + | @param r: TPointDouble const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'void' | sub(self, r) + | + | @param r: TPointDouble const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13777,119 +14488,293 @@ class TPointDouble(builtins.object) | The membership flag | | x - | TPointDouble_x_get(self) -> double + | x | | y - | TPointDouble_y_get(self) -> double + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None +Help on class abstract_graph_t in module ida_graph: + +class abstract_graph_t(ida_gdl.gdl_graph_t) + | Proxy of C++ abstract_graph_t class. + | + | Method resolution order: + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_abstract_graph_t(...) + | delete_abstract_graph_t(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + Help on function calc_dist in module ida_graph: calc_dist(*args) -> 'double' calc_dist(p, q) -> double - - Calculate distance between p and q. - - @param p (C++: point_t) - @param q (C++: point_t) + @param p: (C++: point_t) + @param q: (C++: point_t) Help on function clr_node_info in module ida_graph: clr_node_info(*args) -> 'void' clr_node_info(gid, node, flags) - - Clear node info for the given node. - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared Help on function create_disasm_graph in module ida_graph: create_disasm_graph(*args) -> 'mutable_graph_t *' create_disasm_graph(ea) -> mutable_graph_t + Create a graph using an arbitrary set of ranges. + + @param ea: ea_t + create_disasm_graph(ranges) -> mutable_graph_t - - Create a graph for the function that contains 'ea'. - - - @param ea (C++: ea_t) + @param ranges: rangevec_t const & Help on function create_graph_viewer in module ida_graph: create_graph_viewer(*args) -> 'graph_viewer_t *' create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - - Create a custom graph viewer. - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) the parent widget of the graph viewer @return: new viewer Help on function create_mutable_graph in module ida_graph: create_mutable_graph(*args) -> 'mutable_graph_t *' create_mutable_graph(id) -> mutable_graph_t - - Create a new empty graph with given id. - - @param id (C++: uval_t) + @param id: (C++: uval_t) Help on function create_user_graph_place in module ida_graph: create_user_graph_place(*args) -> 'user_graph_place_t *' create_user_graph_place(node, lnnum) -> user_graph_place_t + Get a copy of a user_graph_place_t (returns a pointer to static storage) - - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - - - @param node (C++: int) - @param lnnum (C++: int) + @param node: (C++: int) + @param lnnum: (C++: int) Help on function del_node_info in module ida_graph: del_node_info(*args) -> 'void' del_node_info(gid, node) + Delete the node_info_t for the given node. - - Delete the 'node_info_t' for the given node. - - - @param gid (C++: graph_id_t) - @param node (C++: int) + @param gid: (C++: graph_id_t) + @param node: (C++: int) Help on function delete_mutable_graph in module ida_graph: delete_mutable_graph(*args) -> 'void' delete_mutable_graph(g) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it - - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - - @param g (C++: mutable_graph_t *) + @param g: (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -13919,22 +14804,22 @@ class edge_info_t(builtins.object) | list of weak references to the object (if defined) | | color - | edge_info_t_color_get(self) -> bgcolor_t + | color | | dstoff - | edge_info_t_dstoff_get(self) -> int + | dstoff | | layout - | edge_info_t_layout_get(self) -> pointseq_t + | layout | | srcoff - | edge_info_t_srcoff_get(self) -> int + | srcoff | | thisown | The membership flag | | width - | edge_info_t_width_get(self) -> int + | width Help on class edge_infos_wrapper_t in module ida_graph: @@ -13961,7 +14846,7 @@ class edge_infos_wrapper_t(builtins.object) | list of weak references to the object (if defined) | | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * + | ptr | | thisown | The membership flag @@ -13975,14 +14860,20 @@ class edge_layout_point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t | __init__(self, _e, _pidx) -> edge_layout_point_t + | + | @param _e: edge_t const & + | @param _pidx: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | @@ -13991,6 +14882,8 @@ class edge_layout_point_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: edge_layout_point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14002,10 +14895,10 @@ class edge_layout_point_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_layout_point_t_e_get(self) -> edge_t + | e | | pidx - | edge_layout_point_t_pidx_get(self) -> int + | pidx | | thisown | The membership flag @@ -14027,6 +14920,8 @@ class edge_segment_t(builtins.object) | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -14049,19 +14944,19 @@ class edge_segment_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_segment_t_e_get(self) -> edge_t + | e | | nseg - | edge_segment_t_nseg_get(self) -> int + | nseg | | thisown | The membership flag | | x0 - | edge_segment_t_x0_get(self) -> int + | x0 | | x1 - | edge_segment_t_x1_get(self) -> int + | x1 Help on class edge_t in module ida_graph: @@ -14072,16 +14967,25 @@ class edge_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, y) -> bool + | + | @param y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int | | __lt__(self, *args) -> 'bool' | __lt__(self, y) -> bool + | + | @param y: edge_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, y) -> bool + | + | @param y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -14098,10 +15002,10 @@ class edge_t(builtins.object) | list of weak references to the object (if defined) | | dst - | edge_t_dst_get(self) -> int + | dst | | src - | edge_t_src_get(self) -> int + | src | | thisown | The membership flag @@ -14115,36 +15019,28 @@ Help on function get_graph_viewer in module ida_graph: get_graph_viewer(*args) -> 'graph_viewer_t *' get_graph_viewer(parent) -> graph_viewer_t * - - Get custom graph viewer for given form. - - @param parent (C++: TWidget *) + @param parent: (C++: TWidget *) Help on function get_node_info in module ida_graph: get_node_info(*args) -> 'bool' get_node_info(out, gid, node) -> bool - - Get node info. - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number @return: success Help on function get_viewer_graph in module ida_graph: get_viewer_graph(*args) -> 'mutable_graph_t *' get_viewer_graph(gv) -> mutable_graph_t - - Get graph object for given custom graph viewer. - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -14177,25 +15073,25 @@ class graph_item_t(builtins.object) | list of weak references to the object (if defined) | | b - | graph_item_t_b_get(self) -> int + | b | | e - | graph_item_t_e_get(self) -> edge_t + | e | | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t + | elp | | n - | graph_item_t_n_get(self) -> int + | n | | p - | graph_item_t_p_get(self) -> point_t + | p | | thisown | The membership flag | | type - | graph_item_t_type_get(self) -> graph_item_type_t + | type Help on class graph_node_visitor_t in module ida_graph: @@ -14208,6 +15104,8 @@ class graph_node_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14216,18 +15114,32 @@ class graph_node_visitor_t(builtins.object) | | is_forbidden_edge(self, *args) -> 'bool' | is_forbidden_edge(self, arg0, arg1) -> bool + | Should the edge between 'n' and 'm' be ignored? + | + | @param arg0: int + | @param arg1: int | | is_visited(self, *args) -> 'bool' | is_visited(self, n) -> bool + | Have we already visited the given node? + | + | @param n: (C++: int) | | reinit(self, *args) -> 'void' | reinit(self) + | Reset visited nodes. | | set_visited(self, *args) -> 'void' | set_visited(self, n) + | Mark node as visited. + | + | @param n: (C++: int) | | visit_node(self, *args) -> 'int' | visit_node(self, arg0) -> int + | Implements action to take when a node is visited. + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14252,6 +15164,8 @@ class graph_path_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14260,9 +15174,13 @@ class graph_path_visitor_t(builtins.object) | | walk_backward(self, *args) -> 'int' | walk_backward(self, arg0) -> int + | + | @param arg0: int | | walk_forward(self, *args) -> 'int' | walk_forward(self, arg0) -> int + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14274,10 +15192,10 @@ class graph_path_visitor_t(builtins.object) | list of weak references to the object (if defined) | | path - | graph_path_visitor_t_path_get(self) -> intvec_t * + | path | | prune - | graph_path_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -14293,6 +15211,8 @@ class graph_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14301,9 +15221,15 @@ class graph_visitor_t(builtins.object) | | visit_edge(self, *args) -> 'int' | visit_edge(self, arg2, arg3) -> int + | + | @param arg2: edge_t + | @param arg3: edge_info_t * | | visit_node(self, *args) -> 'int' | visit_node(self, arg2, arg3) -> int + | + | @param arg2: int + | @param arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14342,10 +15268,10 @@ class group_crinfo_t(builtins.object) | list of weak references to the object (if defined) | | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * + | nodes | | text - | group_crinfo_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -14359,14 +15285,24 @@ class interval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t | __init__(self, y0, y1) -> interval_t + | + | @param y0: int + | @param y1: int + | | __init__(self, s) -> interval_t + | + | @param s: edge_segment_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: interval_t const & | | __repr__ = _swig_repr(self) | @@ -14375,21 +15311,29 @@ class interval_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, x) -> bool + | + | @param x: int | | empty(self, *args) -> 'bool' | empty(self) -> bool | | intersect(self, *args) -> 'void' | intersect(self, r) + | + | @param r: interval_t const & | | length(self, *args) -> 'int' | length(self) -> int | | make_union(self, *args) -> 'void' | make_union(self, r) + | + | @param r: interval_t const & | | move_by(self, *args) -> 'void' | move_by(self, shift) + | + | @param shift: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14404,10 +15348,10 @@ class interval_t(builtins.object) | The membership flag | | x0 - | interval_t_x0_get(self) -> int + | x0 | | x1 - | interval_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14416,183 +15360,479 @@ class interval_t(builtins.object) Help on class mutable_graph_t in module ida_graph: -class mutable_graph_t(builtins.object) +class mutable_graph_t(abstract_graph_t) | Proxy of C++ mutable_graph_t class. | + | Method resolution order: + | mutable_graph_t + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | | Methods defined here: | - | __disown__(self) - | | __init__(self, *args, **kwargs) - | Initialize self. See help(type(self)) for accurate signature. + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_mutable_graph_t(...) | delete_mutable_graph_t(self) | + | add_edge(self, *args) -> 'bool' + | add_edge(self, i, j, ei) -> bool + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * + | + | add_node(self, *args) -> 'int' + | add_node(self, r) -> int + | Add a node, possibly with a specific geometry + | + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node + | | calc_group_ea(self, *args) -> 'ea_t' - | calc_group_ea(self, arg0) -> ea_t + | calc_group_ea(self, arg2) -> ea_t + | + | @param arg2: intvec_t const & | | change_group_visibility(self, *args) -> 'bool' | change_group_visibility(self, group, expand) -> bool - | - | clear(self, *args) -> 'void' - | clear(self) + | Expand/collapse a group node + | + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success | | create_digraph_layout(self, *args) -> 'bool' | create_digraph_layout(self) -> bool | | create_group(self, *args) -> 'int' | create_group(self, nodes) -> int + | Create a new group node, that will contain all the nodes in 'nodes'. + | + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error | | del_custom_layout(self, *args) -> 'void' | del_custom_layout(self) | + | del_edge(self, *args) -> 'bool' + | del_edge(self, i, j) -> bool + | + | @param i: int + | @param j: int + | + | del_node(self, *args) -> 'ssize_t' + | del_node(self, n) -> ssize_t + | Delete a node + | + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges + | | delete_group(self, *args) -> 'bool' | delete_group(self, group) -> bool + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes | | exists(self, *args) -> 'bool' | exists(self, node) -> bool + | Is the node visible? + | + | @param node: (C++: int) the node number + | @return: success | | get_custom_layout(self, *args) -> 'bool' | get_custom_layout(self) -> bool | - | get_edge(self, *args) -> 'edge_info_t' - | get_edge(self, e) -> edge_info_t - | | get_first_subgraph_node(self, *args) -> 'int' | get_first_subgraph_node(self, group) -> int + | + | @param group: int | | get_graph_groups(self, *args) -> 'bool' | get_graph_groups(self) -> bool | | get_next_subgraph_node(self, *args) -> 'int' | get_next_subgraph_node(self, group, current) -> int + | + | @param group: int + | @param current: int | | get_node_group(self, *args) -> 'int' | get_node_group(self, node) -> int + | + | @param node: int | | get_node_representative(self, *args) -> 'int' | get_node_representative(self, node) -> int + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group | | is_collapsed_node(self, *args) -> 'bool' | is_collapsed_node(self, node) -> bool + | + | @param node: int | | is_deleted_node(self, *args) -> 'bool' | is_deleted_node(self, node) -> bool + | + | @param node: int | | is_displayable_node(self, *args) -> 'bool' | is_displayable_node(self, node) -> bool + | + | @param node: int | | is_dot_node(self, *args) -> 'bool' | is_dot_node(self, node) -> bool + | + | @param node: int | | is_group_node(self, *args) -> 'bool' | is_group_node(self, node) -> bool + | + | @param node: int | | is_simple_node(self, *args) -> 'bool' | is_simple_node(self, node) -> bool + | + | @param node: int | | is_subgraph_node(self, *args) -> 'bool' | is_subgraph_node(self, node) -> bool + | + | @param node: int | | is_uncollapsed_node(self, *args) -> 'bool' | is_uncollapsed_node(self, node) -> bool + | + | @param node: int | | is_user_graph(self, *args) -> 'bool' | is_user_graph(self) -> bool | | is_visible_node(self, *args) -> 'bool' | is_visible_node(self, node) -> bool + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success | | node_qty(self, *args) -> 'int' | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes | | npred(self, *args) -> 'int' | npred(self, b) -> int - | - | nrect(self, *args) -> 'rect_t &' - | nrect(self, n) -> rect_t - | nrect(self, n) -> rect_t + | + | @param b: int | | nsucc(self, *args) -> 'int' | nsucc(self, b) -> int + | + | @param b: int | | pred(self, *args) -> 'int' | pred(self, b, i) -> int + | + | @param b: int + | @param i: int | | predset(self, *args) -> 'intvec_t const &' | predset(self, b) -> intvec_t const & + | + | @param b: int + | + | redo_layout(self, *args) -> 'bool' + | redo_layout(self) -> bool + | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success + | + | refresh(self, *args) -> 'bool' + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success + | + | replace_edge(self, *args) -> 'bool' + | replace_edge(self, i, j, x, y) -> bool + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int | | reset(self, *args) -> 'void' | reset(self) | + | resize(self, *args) -> 'void' + | resize(self, n) + | Resize the graph to 'n' nodes + | + | @param n: (C++: int) the new size + | | set_custom_layout(self, *args) -> 'void' | set_custom_layout(self) | | set_deleted_node(self, *args) -> 'void' | set_deleted_node(self, node) + | + | @param node: int | | set_edge(self, *args) -> 'bool' | set_edge(self, e, ei) -> bool + | + | @param e: edge_t + | @param ei: edge_info_t const * | | set_graph_groups(self, *args) -> 'void' | set_graph_groups(self) | | set_node_group(self, *args) -> 'void' | set_node_group(self, node, group) + | + | @param node: int + | @param group: int + | + | set_nrect(self, *args) -> 'bool' + | set_nrect(self, n, r) -> bool + | + | @param n: int + | @param r: rect_t const & | | size(self, *args) -> 'int' | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph | | succ(self, *args) -> 'int' | succ(self, b, i) -> int + | + | @param b: int + | @param i: int | | succset(self, *args) -> 'intvec_t const &' | succset(self, b) -> intvec_t const & + | + | @param b: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | belongs + | belongs + | + | edges + | edges + | + | gid + | gid + | + | node_flags + | node_flags + | + | nodes + | nodes + | + | org_preds + | org_preds + | + | org_succs + | org_succs + | + | preds + | preds + | + | succs + | succs + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from abstract_graph_t: + | + | __disown__(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from abstract_graph_t: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) - | - | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * - | - | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t - | - | gid - | mutable_graph_t_gid_get(self) -> uval_t - | - | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * - | - | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t - | - | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t - | - | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t - | - | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t - | - | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t - | - | thisown - | The membership flag Help on class node_info_t in module ida_graph: @@ -14611,21 +15851,27 @@ class node_info_t(builtins.object) | | get_flags_for_valid(self, *args) -> 'uint32' | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. | | valid_bg_color(self, *args) -> 'bool' | valid_bg_color(self) -> bool + | Has valid bg_color? | | valid_ea(self, *args) -> 'bool' | valid_ea(self) -> bool + | Has valid ea? | | valid_flags(self, *args) -> 'bool' | valid_flags(self) -> bool + | Has valid flags? | | valid_frame_color(self, *args) -> 'bool' | valid_frame_color(self) -> bool + | Has valid frame_color? | | valid_text(self, *args) -> 'bool' | valid_text(self) -> bool + | Has non-empty text? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14637,19 +15883,19 @@ class node_info_t(builtins.object) | list of weak references to the object (if defined) | | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t + | bg_color | | ea - | node_info_t_ea_get(self) -> ea_t + | ea | | flags - | node_info_t_flags_get(self) -> uint32 + | flags | | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t + | frame_color | | text - | node_info_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -14663,13 +15909,19 @@ class node_layout_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< rect_t > const & | | __getitem__(self, *args) -> 'rect_t const &' | __getitem__(self, i) -> rect_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14679,30 +15931,42 @@ class node_layout_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rect_t const & | | __swig_destroy__ = delete_node_layout_t(...) | delete_node_layout_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rect_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: rect_t const & | | at(self, *args) -> 'rect_t const &' | at(self, _idx) -> rect_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rect_t >::const_iterator' | begin(self) -> rect_t - | begin(self) -> rect_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -14715,39 +15979,58 @@ class node_layout_t(builtins.object) | | end(self, *args) -> 'qvector< rect_t >::const_iterator' | end(self) -> rect_t - | end(self) -> rect_t | | erase(self, *args) -> 'qvector< rect_t >::iterator' | erase(self, it) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | | erase(self, first, last) -> rect_t + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator | | extract(self, *args) -> 'rect_t *' | extract(self) -> rect_t | | find(self, *args) -> 'qvector< rect_t >::const_iterator' | find(self, x) -> rect_t - | find(self, x) -> rect_t + | + | @param x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rect_t()) + | + | @param x: rect_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: rect_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: rect_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rect_t >::iterator' | insert(self, it, x) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rect_t &' | push_back(self, x) + | + | @param x: rect_t const & + | | push_back(self) -> rect_t | | qclear(self, *args) -> 'void' @@ -14755,16 +16038,26 @@ class node_layout_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rect_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< rect_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -14804,14 +16097,31 @@ class node_ordering_t(builtins.object) | clear(self, *args) -> 'void' | clear(self) | + | clr(self, *args) -> 'bool' + | clr(self, _node) -> bool + | + | @param _node: int + | | node(self, *args) -> 'int' | node(self, _order) -> int + | + | @param _order: size_t + | + | order(self, *args) -> 'int' + | order(self, _node) -> int + | + | @param _node: int | | resize(self, *args) -> 'void' | resize(self, n) + | + | @param n: int | | set(self, *args) -> 'void' | set(self, _node, num) + | + | @param _node: int + | @param num: int | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -14837,13 +16147,20 @@ class point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: point_t const & | | __repr__ = _swig_repr(self) | @@ -14852,12 +16169,16 @@ class point_t(builtins.object) | | add(self, *args) -> 'point_t &' | add(self, r) -> point_t + | + | @param r: point_t const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'point_t &' | sub(self, r) -> point_t + | + | @param r: point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14872,10 +16193,10 @@ class point_t(builtins.object) | The membership flag | | x - | point_t_x_get(self) -> int + | x | | y - | point_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14913,9 +16234,13 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14925,25 +16250,37 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -14956,39 +16293,58 @@ class pointseq_t(pointvec_t) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | find(self, x) -> point_t + | + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) + | + | @param x: point_t const & + | | push_back(self) -> point_t | | qclear(self, *args) -> 'void' @@ -14996,16 +16352,26 @@ class pointseq_t(pointvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15033,13 +16399,19 @@ class pointvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15049,30 +16421,42 @@ class pointvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & | | __swig_destroy__ = delete_pointvec_t(...) | delete_pointvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -15085,39 +16469,58 @@ class pointvec_t(builtins.object) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | find(self, x) -> point_t + | + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) + | + | @param x: point_t const & + | | push_back(self) -> point_t | | qclear(self, *args) -> 'void' @@ -15125,16 +16528,26 @@ class pointvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15160,16 +16573,23 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) -> 'void' pyg_close(_self) + + @param self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) -> 'void' pyg_select_node(_self, nid) + + @param self: PyObject * + @param nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) -> 'bool' pyg_show(_self) -> bool + + @param self: PyObject * Help on class rect_t in module ida_graph: @@ -15180,14 +16600,27 @@ class rect_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t | __init__(self, l, t, r, b) -> rect_t + | + | @param l: int + | @param t: int + | @param r: int + | @param b: int + | | __init__(self, p0, p1) -> rect_t + | + | @param p0: point_t const & + | @param p1: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -15205,30 +16638,44 @@ class rect_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, p) -> bool + | + | @param p: point_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool | | grow(self, *args) -> 'void' | grow(self, delta) + | + | @param delta: int | | height(self, *args) -> 'int' | height(self) -> int | | intersect(self, *args) -> 'void' | intersect(self, r) + | + | @param r: rect_t const & | | is_intersection_empty(self, *args) -> 'bool' | is_intersection_empty(self, r) -> bool + | + | @param r: rect_t const & | | make_union(self, *args) -> 'void' | make_union(self, r) + | + | @param r: rect_t const & | | move_by(self, *args) -> 'void' | move_by(self, p) + | + | @param p: point_t const & | | move_to(self, *args) -> 'void' | move_to(self, p) + | + | @param p: point_t const & | | topleft(self, *args) -> 'point_t' | topleft(self) -> point_t @@ -15246,19 +16693,19 @@ class rect_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | rect_t_bottom_get(self) -> int + | bottom | | left - | rect_t_left_get(self) -> int + | left | | right - | rect_t_right_get(self) -> int + | right | | thisown | The membership flag | | top - | rect_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15269,12 +16716,9 @@ Help on function refresh_viewer in module ida_graph: refresh_viewer(*args) -> 'void' refresh_viewer(gv) - - Redraw the graph in the given view. - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -15304,16 +16748,16 @@ class row_info_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | row_info_t_bottom_get(self) -> int + | bottom | | nodes - | row_info_t_nodes_get(self) -> intvec_t * + | nodes | | thisown | The membership flag | | top - | row_info_t_top_get(self) -> int + | top Help on class screen_graph_selection_base_t in module ida_graph: @@ -15324,13 +16768,19 @@ class screen_graph_selection_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15340,30 +16790,42 @@ class screen_graph_selection_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & | | __swig_destroy__ = delete_screen_graph_selection_base_t(...) | delete_screen_graph_selection_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -15376,39 +16838,58 @@ class screen_graph_selection_base_t(builtins.object) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) + | + | @param x: selection_item_t const & + | | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' @@ -15416,16 +16897,26 @@ class screen_graph_selection_base_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15469,24 +16960,40 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) -> 'void' | add(self, s) + | + | @param s: screen_graph_selection_t const & | | add_node(self, *args) -> 'void' | add_node(self, node) + | + | @param node: int | | add_point(self, *args) -> 'void' | add_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int | | del_node(self, *args) -> 'void' | del_node(self, node) + | + | @param node: int | | del_point(self, *args) -> 'void' | del_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int | | has(self, *args) -> 'bool' | has(self, item) -> bool + | + | @param item: selection_item_t const & | | items_count(self, *args) -> 'size_t' | items_count(self, look_for_nodes) -> size_t + | + | @param look_for_nodes: bool | | nodes_count(self, *args) -> 'size_t' | nodes_count(self) -> size_t @@ -15496,6 +17003,8 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) -> 'void' | sub(self, s) + | + | @param s: screen_graph_selection_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15508,9 +17017,13 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15520,25 +17033,37 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -15551,36 +17076,53 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) + | + | @param x: selection_item_t const & + | | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' @@ -15588,16 +17130,26 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15625,18 +17177,33 @@ class selection_item_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t | __init__(self, n) -> selection_item_t + | + | @param n: int + | | __init__(self, _elp) -> selection_item_t + | + | @param _elp: edge_layout_point_t & + | | __init__(self, e, idx) -> selection_item_t + | + | @param e: edge_t + | @param idx: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: selection_item_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: selection_item_t const & | | __repr__ = _swig_repr(self) | @@ -15645,6 +17212,8 @@ class selection_item_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: selection_item_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15656,13 +17225,13 @@ class selection_item_t(builtins.object) | list of weak references to the object (if defined) | | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t + | elp | | is_node - | selection_item_t_is_node_get(self) -> bool + | is_node | | node - | selection_item_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -15676,27 +17245,22 @@ Help on function set_node_info in module ida_graph: set_node_info(*args) -> 'void' set_node_info(gid, node, ni, flags) - - Set node info. - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used Help on function set_viewer_graph in module ida_graph: set_viewer_graph(*args) -> 'void' set_viewer_graph(gv, g) - - Set the underlying graph object for the given viewer. - - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -15723,7 +17287,7 @@ class user_graph_place_t(builtins.object) | list of weak references to the object (if defined) | | node - | user_graph_place_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -15732,243 +17296,161 @@ Help on function viewer_attach_menu_item in module ida_graph: viewer_attach_menu_item(*args) -> 'bool' viewer_attach_menu_item(g, name) -> bool - - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. + kernwin.hpp for how to register actions. - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) + @param g: (C++: graph_viewer_t *) graph viewer + @param name: (C++: const char *) action name @return: success Help on function viewer_center_on in module ida_graph: viewer_center_on(*args) -> 'void' viewer_center_on(gv, node) - - Center the graph view on the given node. - - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) Help on function viewer_create_groups in module ida_graph: viewer_create_groups(*args) -> 'bool' viewer_create_groups(gv, out_group_nodes, gi) -> bool + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. - - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around mutable_graph_t::create_group that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & Help on function viewer_del_node_info in module ida_graph: viewer_del_node_info(*args) -> 'void' viewer_del_node_info(gv, n) + Delete node info for node in given viewer (see del_node_info()) - - Delete node info for node in given viewer (see 'del_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) Help on function viewer_delete_groups in module ida_graph: viewer_delete_groups(*args) -> 'bool' viewer_delete_groups(gv, groups, new_current=-1) -> bool + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. - - Wrapper around mutable_graph_t::delete_group. This function will:clone - the current graphattempt deleting the groups in that new graphif - successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) Help on function viewer_fit_window in module ida_graph: viewer_fit_window(*args) -> 'void' viewer_fit_window(gv) - - Fit graph viewer to its parent form. - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_curnode in module ida_graph: viewer_get_curnode(*args) -> 'int' viewer_get_curnode(gv) -> int - - Get number of currently selected node (-1 if none) - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_gli in module ida_graph: viewer_get_gli(*args) -> 'bool' viewer_get_gli(out, gv, flags=0) -> bool + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. - - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) Help on function viewer_get_node_info in module ida_graph: viewer_get_node_info(*args) -> 'bool' viewer_get_node_info(gv, out, n) -> bool + Get node info for node in given viewer (see get_node_info()) - - Get node info for node in given viewer (see 'get_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) Help on function viewer_get_selection in module ida_graph: viewer_get_selection(*args) -> 'bool' viewer_get_selection(gv, sgs) -> bool - - Get currently selected items for graph viewer. - - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) Help on function viewer_set_gli in module ida_graph: viewer_set_gli(*args) -> 'void' viewer_set_gli(gv, gli, flags=0) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. - - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) Help on function viewer_set_groups_visibility in module ida_graph: viewer_set_groups_visibility(*args) -> 'bool' viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. - - Wrapper around mutable_graph_t::change_visibility. This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) Help on function viewer_set_node_info in module ida_graph: viewer_set_node_info(*args) -> 'void' viewer_set_node_info(gv, n, ni, flags) + Set node info for node in given viewer (see set_node_info()) - - Set node info for node in given viewer (see 'set_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) Help on function viewer_set_titlebar_height in module ida_graph: viewer_set_titlebar_height(*args) -> 'int' viewer_set_titlebar_height(gv, height) -> int + Set height of node title bars (grcode_set_titlebar_height) - - Set height of node title bars ( 'grcode_set_titlebar_height' ) - - - @param gv (C++: graph_viewer_t *) - @param height (C++: int) + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER +Module "ida_hexrays"s docstring: """ -the gli should be set/get as center """ -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" - 'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" - 'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" - 'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" - 'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" - 'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: class DecompilationFailure(builtins.Exception) - | Raised on a decompilation error. - | - | The associated hexrays_failure_t object is stored in the - | 'info' member of this exception. + | Common base class for all non-exit exceptions. | | Method resolution order: | DecompilationFailure @@ -15978,8 +17460,7 @@ class DecompilationFailure(builtins.Exception) | | Methods defined here: | - | __init__(self, info) - | Initialize self. See help(type(self)) for accurate signature. + | add_note = dummy_replacement() | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15990,6 +17471,9 @@ class DecompilationFailure(builtins.Exception) | ---------------------------------------------------------------------- | Methods inherited from builtins.Exception: | + | __init__(self, /, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature. | @@ -16047,111 +17531,258 @@ class Hexrays_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> Hexrays_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | | close_pseudocode(self, *args) -> 'int' | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) | | cmt_changed(self, *args) -> 'int' | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | create_hint(self, *args) -> 'PyObject *' | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) -> 'int' | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) -> 'int' | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | flowchart(self, *args) -> 'int' | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) | | func_printed(self, *args) -> 'int' | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | glbopt(self, *args) -> 'int' | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | interr(self, *args) -> 'int' | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) | | keyboard(self, *args) -> 'int' | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | locopt(self, *args) -> 'int' | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | maturity(self, *args) -> 'int' | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | microcode(self, *args) -> 'int' | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code | | open_pseudocode(self, *args) -> 'int' | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) | | populating_popup(self, *args) -> 'int' | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | prealloc(self, *args) -> 'int' | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code | | print_func(self, *args) -> 'int' | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | prolog(self, *args) -> 'int' | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | refresh_pseudocode(self, *args) -> 'int' | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | resolve_stkaddrs(self, *args) -> 'int' | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) | | right_click(self, *args) -> 'int' | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | stkpnts(self, *args) -> 'int' | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) | | switch_pseudocode(self, *args) -> 'int' | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) -> 'int' | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16181,52 +17812,118 @@ class __cbhooks_t(Hexrays_Hooks) | Methods defined here: | | __init__(self, callback) - | __init__(self, _flags=0) -> Hexrays_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | close_pseudocode(self, *args) | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) | | create_hint(self, *args) | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | func_printed(self, *args) | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | interr(self, *args) | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) | | keyboard(self, *args) | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | maturity(self, *args) | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | open_pseudocode(self, *args) | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) | | populating_popup(self, *args) | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | print_func(self, *args) | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | refresh_pseudocode(self, *args) | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | right_click(self, *args) | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | switch_pseudocode(self, *args) | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16243,59 +17940,140 @@ class __cbhooks_t(Hexrays_Hooks) | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | | cmt_changed(self, *args) -> 'int' | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | flowchart(self, *args) -> 'int' | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) | | glbopt(self, *args) -> 'int' | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | locopt(self, *args) -> 'int' | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | microcode(self, *args) -> 'int' | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code | | prealloc(self, *args) -> 'int' | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code | | prolog(self, *args) -> 'int' | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | resolve_stkaddrs(self, *args) -> 'int' | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) | | stkpnts(self, *args) -> 'int' | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16317,40 +18095,79 @@ Help on function _call_with_transferrable_ownership in module ida_hexrays: _call_with_transferrable_ownership(fun, *args) # Object ownership -Help on function _kludge_use_TPopupMenu in module ida_hexrays: +Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: -_kludge_use_TPopupMenu(*args) -> 'void' - _kludge_use_TPopupMenu(m) +_kludge_force_declare_TPopupMenu(*args) -> 'void' + _kludge_force_declare_TPopupMenu(arg1) + + Parameters + ---------- + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) -> 'cexpr_t *' _ll_call_helper(rettype, args, format) -> cexpr_t + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) -> 'cexpr_t *' _ll_create_helper(standalone, type, format) -> cexpr_t + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) -> 'cexpr_t *' _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) -> 'cexpr_t *' _ll_lnot(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * Help on function _ll_make_num in module ida_hexrays: _ll_make_num(*args) -> 'cexpr_t *' _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int Help on function _ll_make_ref in module ida_hexrays: _ll_make_ref(*args) -> 'cexpr_t *' _ll_make_ref(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -16366,31 +18183,27 @@ Help on function accepts_small_udts in module ida_hexrays: accepts_small_udts(*args) -> 'bool' accepts_small_udts(op) -> bool - - Is the operator allowed on small structure or union? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) -> 'bool' accepts_udts(op) -> bool + + @param op: enum ctype_t Help on function arglocs_overlap in module ida_hexrays: arglocs_overlap(*args) -> 'bool' arglocs_overlap(loc1, w1, loc2, w2) -> bool - - Do two arglocs overlap? - - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) Help on class array_of_bitsets in module ida_hexrays: @@ -16401,13 +18214,19 @@ class array_of_bitsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & | | __getitem__(self, *args) -> 'bitset_t const &' | __getitem__(self, i) -> bitset_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16417,30 +18236,42 @@ class array_of_bitsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bitset_t const & | | __swig_destroy__ = delete_array_of_bitsets(...) | delete_array_of_bitsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bitset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: bitset_t const & | | at(self, *args) -> 'bitset_t const &' | at(self, _idx) -> bitset_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bitset_t >::const_iterator' | begin(self) -> bitset_t - | begin(self) -> bitset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16453,39 +18284,58 @@ class array_of_bitsets(builtins.object) | | end(self, *args) -> 'qvector< bitset_t >::const_iterator' | end(self) -> bitset_t - | end(self) -> bitset_t | | erase(self, *args) -> 'qvector< bitset_t >::iterator' | erase(self, it) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | | erase(self, first, last) -> bitset_t + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator | | extract(self, *args) -> 'bitset_t *' | extract(self) -> bitset_t | | find(self, *args) -> 'qvector< bitset_t >::const_iterator' | find(self, x) -> bitset_t - | find(self, x) -> bitset_t + | + | @param x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bitset_t()) + | + | @param x: bitset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: bitset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: bitset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bitset_t >::iterator' | insert(self, it, x) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bitset_t &' | push_back(self, x) + | + | @param x: bitset_t const & + | | push_back(self) -> bitset_t | | qclear(self, *args) -> 'void' @@ -16493,16 +18343,26 @@ class array_of_bitsets(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bitset_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< bitset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16533,13 +18393,19 @@ class array_of_ivlsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & | | __getitem__(self, *args) -> 'ivlset_t const &' | __getitem__(self, i) -> ivlset_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16549,30 +18415,42 @@ class array_of_ivlsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ivlset_t const & | | __swig_destroy__ = delete_array_of_ivlsets(...) | delete_array_of_ivlsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ivlset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ivlset_t const & | | at(self, *args) -> 'ivlset_t const &' | at(self, _idx) -> ivlset_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ivlset_t >::const_iterator' | begin(self) -> ivlset_t - | begin(self) -> ivlset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16585,39 +18463,58 @@ class array_of_ivlsets(builtins.object) | | end(self, *args) -> 'qvector< ivlset_t >::const_iterator' | end(self) -> ivlset_t - | end(self) -> ivlset_t | | erase(self, *args) -> 'qvector< ivlset_t >::iterator' | erase(self, it) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | | erase(self, first, last) -> ivlset_t + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator | | extract(self, *args) -> 'ivlset_t *' | extract(self) -> ivlset_t | | find(self, *args) -> 'qvector< ivlset_t >::const_iterator' | find(self, x) -> ivlset_t - | find(self, x) -> ivlset_t + | + | @param x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ivlset_t()) + | + | @param x: ivlset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ivlset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ivlset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ivlset_t >::iterator' | insert(self, it, x) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ivlset_t &' | push_back(self, x) + | + | @param x: ivlset_t const & + | | push_back(self) -> ivlset_t | | qclear(self, *args) -> 'void' @@ -16625,16 +18522,26 @@ class array_of_ivlsets(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ivlset_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ivlset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16660,26 +18567,20 @@ Help on function asgop in module ida_hexrays: asgop(*args) -> 'ctype_t' asgop(cop) -> ctype_t + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. - - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - - - @param cop (C++: ctype_t) + @param cop: (C++: ctype_t) enum ctype_t Help on function asgop_revert in module ida_hexrays: asgop_revert(*args) -> 'ctype_t' asgop_revert(cop) -> ctype_t + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add - - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. Help on class bit_bound_t in module ida_hexrays: @@ -16690,6 +18591,9 @@ class bit_bound_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t + | + | @param n: int + | @param s: int | | __repr__ = _swig_repr(self) | @@ -16706,10 +18610,10 @@ class bit_bound_t(builtins.object) | list of weak references to the object (if defined) | | nbits - | bit_bound_t_nbits_get(self) -> int16 + | nbits | | sbits - | bit_bound_t_sbits_get(self) -> int16 + | sbits | | thisown | The membership flag @@ -16723,29 +18627,43 @@ class bitset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bitset_t const & | | __repr__ = _swig_repr(self) | @@ -16754,30 +18672,47 @@ class bitset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | + | @param bit: int + | | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | add(self, ml) -> bool + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int | | begin(self, *args) -> 'bitset_t::iterator' - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | + | @param maxbit: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -16786,57 +18721,95 @@ class bitset_t(builtins.object) | empty(self) -> bool | | end(self, *args) -> 'bitset_t::iterator' - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | + | @param bit: int + | | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | sub(self, ml) -> bool + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16859,92 +18832,68 @@ Help on function block_chains_begin in module ida_hexrays: block_chains_begin(*args) -> 'block_chains_iterator_t' block_chains_begin(set) -> block_chains_iterator_t + Get iterator pointing to the beginning of block_chains_t. - - Get iterator pointing to the beginning of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_clear in module ida_hexrays: block_chains_clear(*args) -> 'void' block_chains_clear(set) + Clear block_chains_t. - - Clear 'block_chains_t' . - - - @param set (C++: block_chains_t *) + @param set: (C++: block_chains_t *) Help on function block_chains_end in module ida_hexrays: block_chains_end(*args) -> 'block_chains_iterator_t' block_chains_end(set) -> block_chains_iterator_t + Get iterator pointing to the end of block_chains_t. - - Get iterator pointing to the end of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_erase in module ida_hexrays: block_chains_erase(*args) -> 'void' block_chains_erase(set, p) + Erase current element from block_chains_t. - - Erase current element from 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_find in module ida_hexrays: block_chains_find(*args) -> 'block_chains_iterator_t' block_chains_find(set, val) -> block_chains_iterator_t + Find the specified key in set block_chains_t. - - Find the specified key in set 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & Help on function block_chains_free in module ida_hexrays: block_chains_free(*args) -> 'void' block_chains_free(set) + Delete block_chains_t instance. - - Delete 'block_chains_t' instance. - - - @param set (C++: block_chains_t *) + @param set: (C++: block_chains_t *) Help on function block_chains_get in module ida_hexrays: block_chains_get(*args) -> 'chain_t &' block_chains_get(p) -> chain_t - - Get reference to the current set value. - - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_insert in module ida_hexrays: block_chains_insert(*args) -> 'block_chains_iterator_t' block_chains_insert(set, val) -> block_chains_iterator_t + Insert new (chain_t) into set block_chains_t. - - Insert new ( 'chain_t' ) into set 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & Help on class block_chains_iterator_t in module ida_hexrays: @@ -16955,12 +18904,16 @@ class block_chains_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -16980,7 +18933,7 @@ class block_chains_iterator_t(builtins.object) | The membership flag | | x - | block_chains_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16991,42 +18944,31 @@ Help on function block_chains_new in module ida_hexrays: block_chains_new(*args) -> 'block_chains_t *' block_chains_new() -> block_chains_t - - - Create a new 'block_chains_t' instance. + Create a new block_chains_t instance. Help on function block_chains_next in module ida_hexrays: block_chains_next(*args) -> 'block_chains_iterator_t' block_chains_next(p) -> block_chains_iterator_t - - Move to the next element. - - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_prev in module ida_hexrays: block_chains_prev(*args) -> 'block_chains_iterator_t' block_chains_prev(p) -> block_chains_iterator_t - - Move to the previous element. - - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_size in module ida_hexrays: block_chains_size(*args) -> 'size_t' block_chains_size(set) -> size_t + Get size of block_chains_t. - - Get size of 'block_chains_t' . - - - @param set (C++: block_chains_t *) + @param set: (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -17051,17 +18993,25 @@ class block_chains_t(builtins.object) | | get_chain(self, *args) -> 'chain_t *' | get_chain(self, k, width=1) -> chain_t - | get_chain(self, k, width=1) -> chain_t - | get_chain(self, ch) -> chain_t + | + | @param k: voff_t const & + | @param width: int + | | get_chain(self, ch) -> chain_t + | + | @param ch: chain_t const & | | get_reg_chain(self, *args) -> 'chain_t *' | get_reg_chain(self, reg, width=1) -> chain_t - | get_reg_chain(self, reg, width=1) -> chain_t + | + | @param reg: mreg_t + | @param width: int | | get_stk_chain(self, *args) -> 'chain_t *' | get_stk_chain(self, off, width=1) -> chain_t - | get_stk_chain(self, off, width=1) -> chain_t + | + | @param off: sval_t + | @param width: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17084,10 +19034,14 @@ class block_chains_vec_t(builtins.object) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17099,19 +19053,23 @@ class block_chains_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & | | __swig_destroy__ = delete_block_chains_vec_t(...) | delete_block_chains_vec_t(self) | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -17124,11 +19082,16 @@ class block_chains_vec_t(builtins.object) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -17138,18 +19101,29 @@ class block_chains_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) + | + | @param x: block_chains_t const & + | | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' @@ -17157,16 +19131,26 @@ class block_chains_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< block_chains_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17187,93 +19171,69 @@ Help on function boundaries_begin in module ida_hexrays: boundaries_begin(*args) -> 'boundaries_iterator_t' boundaries_begin(map) -> boundaries_iterator_t - - Get iterator pointing to the beginning of boundaries_t. - - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) -> 'void' boundaries_clear(map) - - Clear boundaries_t. - - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_end in module ida_hexrays: boundaries_end(*args) -> 'boundaries_iterator_t' boundaries_end(map) -> boundaries_iterator_t - - Get iterator pointing to the end of boundaries_t. - - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_erase in module ida_hexrays: boundaries_erase(*args) -> 'void' boundaries_erase(map, p) - - Erase current element from boundaries_t. - - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_find in module ida_hexrays: boundaries_find(*args) -> 'boundaries_iterator_t' boundaries_find(map, key) -> boundaries_iterator_t - - Find the specified key in boundaries_t. - - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * Help on function boundaries_first in module ida_hexrays: boundaries_first(*args) -> 'cinsn_t *const &' boundaries_first(p) -> cinsn_t - - Get reference to the current map key. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_free in module ida_hexrays: boundaries_free(*args) -> 'void' boundaries_free(map) - - Delete boundaries_t instance. - - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_insert in module ida_hexrays: boundaries_insert(*args) -> 'boundaries_iterator_t' boundaries_insert(map, key, val) -> boundaries_iterator_t + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. - - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - - - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & Help on class boundaries_iterator_t in module ida_hexrays: @@ -17284,12 +19244,16 @@ class boundaries_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17309,7 +19273,7 @@ class boundaries_iterator_t(builtins.object) | The membership flag | | x - | boundaries_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17320,53 +19284,39 @@ Help on function boundaries_new in module ida_hexrays: boundaries_new(*args) -> 'boundaries_t *' boundaries_new() -> boundaries_t - - Create a new boundaries_t instance. Help on function boundaries_next in module ida_hexrays: boundaries_next(*args) -> 'boundaries_iterator_t' boundaries_next(p) -> boundaries_iterator_t - - Move to the next element. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_prev in module ida_hexrays: boundaries_prev(*args) -> 'boundaries_iterator_t' boundaries_prev(p) -> boundaries_iterator_t - - Move to the previous element. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_second in module ida_hexrays: boundaries_second(*args) -> 'rangeset_t &' boundaries_second(p) -> rangeset_t - - Get reference to the current map value. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_size in module ida_hexrays: boundaries_size(*args) -> 'size_t' boundaries_size(map) -> size_t - - Get size of boundaries_t. - - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -17377,9 +19327,17 @@ class boundaries_t(builtins.object) | | __begin = boundaries_begin(...) | boundaries_begin(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __clear = boundaries_clear(...) | boundaries_clear(map) + | + | Parameters + | ---------- + | map: boundaries_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -17389,15 +19347,33 @@ class boundaries_t(builtins.object) | | __end = boundaries_end(...) | boundaries_end(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __erase = boundaries_erase(...) | boundaries_erase(map, p) + | + | Parameters + | ---------- + | map: boundaries_t * + | p: boundaries_iterator_t | | __find = boundaries_find(...) | boundaries_find(map, key) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | key: cinsn_t const * | | __first = boundaries_first(...) | boundaries_first(p) -> cinsn_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -17407,6 +19383,12 @@ class boundaries_t(builtins.object) | | __insert = boundaries_insert(...) | boundaries_insert(map, key, val) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t * + | key: cinsn_t const * + | val: rangeset_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -17416,23 +19398,37 @@ class boundaries_t(builtins.object) | | __next = boundaries_next(...) | boundaries_next(p) -> boundaries_iterator_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __repr__ = _swig_repr(self) | | __second = boundaries_second(...) | boundaries_second(p) -> rangeset_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = boundaries_size(...) | boundaries_size(map) -> size_t + | + | Parameters + | ---------- + | map: boundaries_t * | | __swig_destroy__ = delete_boundaries_t(...) | delete_boundaries_t(self) | | at(self, *args) -> 'rangeset_t &' | at(self, _Keyval) -> rangeset_t + | + | @param _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -17505,6 +19501,7 @@ class boundaries_t(builtins.object) Help on function call_helper in module ida_hexrays: call_helper(rettype, args, *rest) + Create a helper call. Help on class carg_t in module ida_hexrays: @@ -17521,24 +19518,36 @@ class carg_t(cexpr_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: carg_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: carg_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: carg_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: carg_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: carg_t const & | | __repr__ = _swig_repr(self) | @@ -17547,18 +19556,22 @@ class carg_t(cexpr_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: carg_t const & | | consume_cexpr(self, *args) -> 'void' | consume_cexpr(self, e) + | + | @param e: cexpr_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | formal_type - | carg_t_formal_type_get(self) -> tinfo_t + | formal_type | | is_vararg - | carg_t_is_vararg_get(self) -> bool + | is_vararg | | thisown | The membership flag @@ -17580,8 +19593,8 @@ class carg_t(cexpr_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -17601,8 +19614,8 @@ class carg_t(cexpr_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -17618,119 +19631,241 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | contains_comma(self, *args) -> 'bool' | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | equal_effect(self, *args) -> 'bool' | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -17743,27 +19878,35 @@ class carg_t(cexpr_t) | | is_negative_const(self, *args) -> 'bool' | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' | is_undef_val(self) -> bool @@ -17773,37 +19916,61 @@ class carg_t(cexpr_t) | | is_zero_const(self, *args) -> 'bool' | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) -> 'uint64' | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -17811,7 +19978,7 @@ class carg_t(cexpr_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -17837,7 +20004,7 @@ class carg_t(cexpr_t) | string | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -17869,6 +20036,8 @@ class carg_t(cexpr_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -17883,22 +20052,38 @@ class carg_t(cexpr_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -17912,19 +20097,19 @@ class carg_t(cexpr_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -17951,25 +20136,40 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: carglist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: carglist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: carglist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: carglist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: carglist_t const & | | __repr__ = _swig_repr(self) | @@ -17978,15 +20178,17 @@ class carglist_t(qvector_carg_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | carglist_t_flags_get(self) -> int + | flags | | functype - | carglist_t_functype_get(self) -> tinfo_t + | functype | | thisown | The membership flag @@ -18001,6 +20203,8 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18010,26 +20214,39 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | push_back(self, x) + | + | @param x: carg_t const & + | | push_back(self) -> carg_t | | at = __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18042,39 +20259,58 @@ class carglist_t(qvector_carg_t) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | find(self, x) -> carg_t + | + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) + | + | @param x: carg_t const & + | | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' @@ -18082,16 +20318,26 @@ class carglist_t(qvector_carg_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18119,25 +20365,42 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: casm_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: casm_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t + | + | @param ea: ea_t + | | __init__(self, r) -> casm_t + | + | @param r: casm_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: casm_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: casm_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: casm_t const & | | __repr__ = _swig_repr(self) | @@ -18146,6 +20409,8 @@ class casm_t(ida_pro.eavec_t)↗ | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: casm_t const & | | one_insn(self, *args) -> 'bool' | one_insn(self) -> bool @@ -18166,6 +20431,8 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18175,19 +20442,33 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18211,32 +20492,54 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | extract(self, *args) -> 'unsigned-ea-like-numeric-type *'↗ | extract(self) -> unsigned-ea-like-numeric-type *↗ | | find(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | qclear(self, *args) -> 'void' @@ -18244,16 +20547,26 @@ class casm_t(ida_pro.eavec_t)↗ | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -18267,72 +20580,50 @@ class casm_t(ida_pro.eavec_t)↗ | __weakref__ | list of weak references to the object (if defined) -Help on function cblock_at in module ida_hexrays: - -cblock_at(self, index) - # cblock.at(int) -> returns the item at the given index index - -Help on function cblock_find in module ida_hexrays: - -cblock_find(self, item) - # cblock.find(cinsn_t) -> returns the iterator positioned at the given item - -Help on function cblock_index in module ida_hexrays: - -cblock_index(self, item) - # cblock.index(cinsn_t) -> returns the index of the given item - -Help on function cblock_insert in module ida_hexrays: - -cblock_insert(self, index, item) - # cblock.insert(index, cinsn_t) - -Help on function cblock_iter in module ida_hexrays: - -cblock_iter(self) - -Help on function cblock_remove in module ida_hexrays: - -cblock_remove(self, item) - # cblock.remove(cinsn_t) - Help on class cblock_t in module ida_hexrays: -class cblock_t(qlist_cinsn_t) +class cblock_t(cinsn_list_t) | Proxy of C++ cblock_t class. | | Method resolution order: | cblock_t - | qlist_cinsn_t + | cinsn_list_t | builtins.object | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cblock_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cblock_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | - | __iter__ = cblock_iter(self) - | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool - | - | __len__ = size(self, *args) -> 'size_t' - | size(self) -> size_t + | + | @param r: cblock_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cblock_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -18342,23 +20633,10 @@ class cblock_t(qlist_cinsn_t) | _deregister(self, *args) -> 'void' | _deregister(self) | - | at = cblock_at(self, index) - | # cblock.at(int) -> returns the item at the given index index - | | compare(self, *args) -> 'int' | compare(self, r) -> int - | - | find = cblock_find(self, item) - | # cblock.find(cinsn_t) -> returns the iterator positioned at the given item - | - | index = cblock_index(self, item) - | # cblock.index(cinsn_t) -> returns the index of the given item - | - | insert = cblock_insert(self, index, item) - | # cblock.insert(index, cinsn_t) - | - | remove = cblock_remove(self, item) - | # cblock.remove(cinsn_t) + | + | @param r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18372,14 +20650,32 @@ class cblock_t(qlist_cinsn_t) | __hash__ = None | | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: + | Methods inherited from cinsn_list_t: | - | back(self, *args) -> 'cinsn_t const &' - | back(self) -> cinsn_t - | back(self) -> cinsn_t + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator | | clear(self, *args) -> 'void' | clear(self) @@ -18387,17 +20683,31 @@ class cblock_t(qlist_cinsn_t) | empty(self, *args) -> 'bool' | empty(self) -> bool | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator | | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) | erase(self, p) + | + | @param p: cinsn_list_t_iterator | - | front(self, *args) -> 'cinsn_t const &' - | front(self) -> cinsn_t - | front(self) -> cinsn_t + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -18407,15 +20717,25 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) + | + | @param x: cinsn_t const & + | | push_back(self) -> cinsn_t | | push_front(self, *args) -> 'void' | push_front(self, x) + | + | @param x: cinsn_t const & | | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rbegin(self) -> qlist< cinsn_t >::reverse_iterator | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rend(self) -> qlist< cinsn_t >::reverse_iterator | rend(self) -> qlist< cinsn_t >::const_reverse_iterator @@ -18425,9 +20745,11 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) -> 'void' | swap(self, x) + | + | @param x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: + | Data descriptors inherited from cinsn_list_t: | | __dict__ | dictionary for instance variables (if defined) @@ -18450,24 +20772,36 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ccase_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ccase_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ccase_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ccase_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ccase_t const & | | __repr__ = _swig_repr(self) | @@ -18476,12 +20810,16 @@ class ccase_t(cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ccase_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t | | value(self, *args) -> 'uint64 const &' | value(self, i) -> uint64 const & + | + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18490,7 +20828,7 @@ class ccase_t(cinsn_t) | The membership flag | | values - | ccase_t_values_get(self) -> ulonglongvec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -18535,89 +20873,187 @@ class ccase_t(cinsn_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) -> 'bool' | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods inherited from cinsn_t: | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -18669,6 +21105,8 @@ class ccase_t(cinsn_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -18683,22 +21121,38 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18712,16 +21166,16 @@ class ccase_t(cinsn_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -18748,24 +21202,36 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ccases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ccases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ccases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ccases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ccases_t const & | | __repr__ = _swig_repr(self) | @@ -18774,6 +21240,8 @@ class ccases_t(qvector_ccase_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18791,6 +21259,8 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18800,26 +21270,39 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | push_back(self, x) + | + | @param x: ccase_t const & + | | push_back(self) -> ccase_t | | at = __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18832,39 +21315,58 @@ class ccases_t(qvector_ccase_t) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | find(self, x) -> ccase_t + | + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) + | + | @param x: ccase_t const & + | | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' @@ -18872,16 +21374,26 @@ class ccases_t(qvector_ccase_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18903,8 +21415,13 @@ class cdg_insn_iterator_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> cdg_insn_iterator_t + | __init__(self, mba_) -> cdg_insn_iterator_t + | + | @param mba_: mba_t const * + | | __init__(self, r) -> cdg_insn_iterator_t + | + | @param r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -18917,14 +21434,21 @@ class cdg_insn_iterator_t(builtins.object) | has_dslot(self, *args) -> 'bool' | has_dslot(self) -> bool | + | is_severed_dslot(self, *args) -> 'bool' + | is_severed_dslot(self) -> bool + | | next(self, *args) -> 'merror_t' | next(self, ins) -> merror_t + | + | @param ins: insn_t * | | ok(self, *args) -> 'bool' | ok(self) -> bool | | start(self, *args) -> 'void' | start(self, rng) + | + | @param rng: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18936,22 +21460,25 @@ class cdg_insn_iterator_t(builtins.object) | list of weak references to the object (if defined) | | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t + | dslot | | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * + | dslot_insn | | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t + | ea | | end - | cdg_insn_iterator_t_end_get(self) -> ea_t + | end | | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool + | is_likely_dslot | - | is_separate_dslot - | cdg_insn_iterator_t_is_separate_dslot_get(self) -> bool + | mba + | mba + | + | severed_branch + | severed_branch | | thisown | The membership flag @@ -18971,24 +21498,36 @@ class cdo_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cdo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cdo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cdo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cdo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cdo_t const & | | __repr__ = _swig_repr(self) | @@ -18997,6 +21536,8 @@ class cdo_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19014,6 +21555,8 @@ class cdo_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19022,7 +21565,7 @@ class cdo_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -19034,7 +21577,7 @@ class cdo_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ceinsn_t in module ida_hexrays: @@ -19061,7 +21604,7 @@ class ceinsn_t(builtins.object) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr | | thisown | The membership flag @@ -19085,28 +21628,57 @@ class cexpr_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cexpr_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cexpr_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t - | __init__(self, cop, _x, _y) -> cexpr_t - | __init__(self, cop, _x, _y, _z) -> cexpr_t + | __init__(self, cexpr_op, _x) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y, _z) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * + | | __init__(self, r) -> cexpr_t + | + | @param r: cexpr_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cexpr_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cexpr_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -19122,8 +21694,8 @@ class cexpr_t(citem_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -19143,8 +21715,8 @@ class cexpr_t(citem_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -19160,122 +21732,246 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cexpr_t const & | | contains_comma(self, *args) -> 'bool' | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | equal_effect(self, *args) -> 'bool' | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -19288,27 +21984,35 @@ class cexpr_t(citem_t) | | is_negative_const(self, *args) -> 'bool' | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' | is_undef_val(self) -> bool @@ -19318,37 +22022,61 @@ class cexpr_t(citem_t) | | is_zero_const(self, *args) -> 'bool' | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) -> 'uint64' | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19356,7 +22084,7 @@ class cexpr_t(citem_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -19385,7 +22113,7 @@ class cexpr_t(citem_t) | The membership flag | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -19419,6 +22147,8 @@ class cexpr_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -19433,22 +22163,38 @@ class cexpr_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -19462,19 +22208,19 @@ class cexpr_t(citem_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -19502,24 +22248,36 @@ class cfor_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cfor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cfor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cfor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cfor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cfor_t const & | | __repr__ = _swig_repr(self) | @@ -19528,15 +22286,17 @@ class cfor_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | init - | cfor_t_init_get(self) -> cexpr_t + | init | | step - | cfor_t_step_get(self) -> cexpr_t + | step | | thisown | The membership flag @@ -19551,6 +22311,8 @@ class cfor_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19559,7 +22321,7 @@ class cfor_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -19571,7 +22333,7 @@ class cfor_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cfunc_parentee_t in module ida_hexrays: @@ -19590,6 +22352,9 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t + | + | @param f: cfunc_t * + | @param post: bool | | __repr__ = _swig_repr(self) | @@ -19598,12 +22363,21 @@ class cfunc_parentee_t(ctree_parentee_t) | | calc_rvalue_type(self, *args) -> 'bool' | calc_rvalue_type(self, target, e) -> bool + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | cfunc_parentee_t_func_get(self) -> cfunc_t + | func | | thisown | The membership flag @@ -19611,62 +22385,124 @@ class cfunc_parentee_t(ctree_parentee_t) | ---------------------------------------------------------------------- | Methods inherited from ctree_parentee_t: | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) -> 'bool' | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -19678,10 +22514,10 @@ class cfunc_parentee_t(ctree_parentee_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class cfunc_t in module ida_hexrays: @@ -19703,97 +22539,207 @@ class cfunc_t(builtins.object) | | build_c_tree(self, *args) -> 'void' | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. | | del_orphan_cmts(self, *args) -> 'int' | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | | find_item_coords(self, item) -> PyObject * + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t + | Find the label. + | + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | get_eamap(self, *args) -> 'eamap_t &' | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool + | Get the function type. + | + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | get_pseudocode(self, *args) -> 'strvec_t const &' | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | get_stkoff_delta(self, *args) -> 'sval_t' | get_stkoff_delta(self) -> sval_t + | Get stack offset delta. The local variable stack offsets retrieved by + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * + | Retrieve a user defined comment. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 + | Retrieve citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool + | Retrieve a user defined union field selection. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | has_orphan_cmts(self, *args) -> 'bool' | has_orphan_cmts(self) -> bool + | Check if there are orphan comments. + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool | | print_dcl(self, *args) -> 'void' | print_dcl(self) + | Print function prototype. | | print_func(self, *args) -> 'void' | print_func(self, vp) + | Print function text. + | + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. | | release(self, *args) -> 'void' | release(self) | | remove_unused_labels(self, *args) -> 'void' | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. | | save_user_cmts(self, *args) -> 'void' | save_user_cmts(self) + | Save user-defined comments into the database. | | save_user_iflags(self, *args) -> 'void' | save_user_iflags(self) + | Save user-defined iflags into the database. | | save_user_labels(self, *args) -> 'void' | save_user_labels(self) + | Save user-defined labels into the database. | | save_user_numforms(self, *args) -> 'void' | save_user_numforms(self) + | Save user-defined number formats into the database. | | save_user_unions(self, *args) -> 'void' | save_user_unions(self) + | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) + | Set citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19805,69 +22751,83 @@ class cfunc_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfunc_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfunc_t_body_get(self) -> cinsn_t + | body | | boundaries | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | eamap | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfunc_t_hdrlines_get(self) -> int + | hdrlines | | lvars | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfunc_t_mba_get(self) -> mbl_array_t + | mba | | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | refcnt - | cfunc_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfunc_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | Get the function's return type tinfo_t object. | | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings Help on function cfunc_type in module ida_hexrays: @@ -19888,7 +22848,12 @@ class cfuncptr_t(builtins.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t + | + | @param p: cfunc_t * + | | __init__(self, r) -> cfuncptr_t + | + | @param r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) -> 'size_t' | __ptrval__(self) -> size_t @@ -19911,13 +22876,25 @@ class cfuncptr_t(builtins.object) | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool - | find_item_coords(self, item) -> PyObject * + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t + | + | @param label: int | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t @@ -19927,9 +22904,18 @@ class cfuncptr_t(builtins.object) | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool + | + | @param type: tinfo_t * | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t @@ -19942,12 +22928,20 @@ class cfuncptr_t(builtins.object) | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 + | + | @param loc: citem_locator_t const & | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool + | + | @param ea: ea_t + | @param path: intvec_t * | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t @@ -19955,11 +22949,16 @@ class cfuncptr_t(builtins.object) | has_orphan_cmts(self, *args) -> 'bool' | has_orphan_cmts(self) -> bool | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | | print_dcl(self, *args) -> 'void' | print_dcl(self) | | print_func(self, *args) -> 'void' | print_func(self, vp) + | + | @param vp: vc_printer_t & | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) @@ -19990,15 +22989,27 @@ class cfuncptr_t(builtins.object) | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) + | + | @param loc: treeloc_t const & + | @param cmt: char const * | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) + | + | @param loc: citem_locator_t const & + | @param iflags: int32 | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) + | + | @param ea: ea_t + | @param path: intvec_t const & | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20010,61 +23021,61 @@ class cfuncptr_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfuncptr_t_body_get(self) -> cinsn_t + | body | | boundaries | | eamap | | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int + | hdrlines | | lvars | | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t + | mba | | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | | refcnt - | cfuncptr_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfuncptr_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings @@ -20077,24 +23088,36 @@ class cgoto_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cgoto_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cgoto_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cgoto_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cgoto_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cgoto_t const & | | __repr__ = _swig_repr(self) | @@ -20103,6 +23126,8 @@ class cgoto_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20114,7 +23139,7 @@ class cgoto_t(builtins.object) | list of weak references to the object (if defined) | | label_num - | cgoto_t_label_num_get(self) -> int + | label_num | | thisown | The membership flag @@ -20133,6 +23158,8 @@ class chain_keeper_t(builtins.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t + | + | @param _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -20144,6 +23171,9 @@ class chain_keeper_t(builtins.object) | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca) -> int + | + | @param cv: chain_visitor_t & + | @param gca: int | | front(self, *args) -> 'block_chains_t &' | front(self) -> block_chains_t @@ -20175,10 +23205,21 @@ class chain_t(ida_pro.intvec_t) | __init__(self, *args) | __init__(self) -> chain_t | __init__(self, t, off, w=1, v=-1) -> chain_t + | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int + | | __init__(self, _k, w=1) -> chain_t + | + | @param _k: voff_t const & + | @param w: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -20189,7 +23230,11 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) -> 'void' - | append_list(self, list) + | append_list(self, mba, list) + | Append the contents of the chain to the specified list of locations. + | + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) | | clear_varnum(self, *args) -> 'void' | clear_varnum(self) @@ -20208,6 +23253,8 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) -> 'bool' | includes(self, r) -> bool + | + | @param r: chain_t const & | | is_fake(self, *args) -> 'bool' | is_fake(self) -> bool @@ -20238,45 +23285,61 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool + | + | @param r: chain_t const & | | set_inited(self, *args) -> 'void' | set_inited(self, b) + | + | @param b: bool | | set_overlapped(self, *args) -> 'void' | set_overlapped(self, b) + | + | @param b: bool | | set_replaced(self, *args) -> 'void' | set_replaced(self, b) + | + | @param b: bool | | set_term(self, *args) -> 'void' | set_term(self, b) + | + | @param b: bool | | set_value(self, *args) -> 'void' | set_value(self, r) + | + | @param r: chain_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | chain_t_flags_get(self) -> uchar + | flags | | thisown | The membership flag | | varnum - | chain_t_varnum_get(self) -> int + | varnum | | width - | chain_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from ida_pro.intvec_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20286,22 +23349,38 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | push_back(self, x) + | + | @param x: int const & + | | push_back(self) -> int & | | at = __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20325,32 +23404,54 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) + | + | @param x: int const & + | | push_back(self) -> int & | | qclear(self, *args) -> 'void' @@ -20358,16 +23459,26 @@ class chain_t(ida_pro.intvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20397,6 +23508,8 @@ class chain_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -20405,6 +23518,9 @@ class chain_visitor_t(builtins.object) | | visit_chain(self, *args) -> 'int' | visit_chain(self, nblock, ch) -> int + | + | @param nblock: int + | @param ch: chain_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20416,7 +23532,7 @@ class chain_visitor_t(builtins.object) | list of weak references to the object (if defined) | | parent - | chain_visitor_t_parent_get(self) -> block_chains_t + | parent | | thisown | The membership flag @@ -20425,17 +23541,14 @@ Help on function checkout_hexrays_license in module ida_hexrays: checkout_hexrays_license(*args) -> 'bool' checkout_hexrays_license(silent) -> bool + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. - - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - - @param silent: silently fail if the license can not be checked out. - (C++: bool) + @param silent: (C++: bool) silently fail if the license cannot be checked out. @return: false if failed Help on class cif_t in module ida_hexrays: @@ -20452,25 +23565,39 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cif_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cif_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t | __init__(self, r) -> cif_t + | + | @param r: cif_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cif_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cif_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cif_t const & | | __repr__ = _swig_repr(self) | @@ -20479,21 +23606,25 @@ class cif_t(ceinsn_t) | | assign(self, *args) -> 'cif_t &' | assign(self, r) -> cif_t + | + | @param r: cif_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ielse - | cif_t_ielse_get(self) -> cinsn_t + | ielse | | ithen - | cif_t_ithen_get(self) -> cinsn_t + | ithen | | thisown | The membership flag @@ -20513,13 +23644,204 @@ class cif_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function cinsn_details in module ida_hexrays: cinsn_details(self) return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(builtins.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | __swig_destroy__ = delete_cinsn_list_t(...) + | delete_cinsn_list_t(self) + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(builtins.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) -> 'void' + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_list_t_iterator(...) + | delete_cinsn_list_t_iterator(self) + | + | next = __next__(self, *args) -> 'void' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + Help on class cinsn_t in module ida_hexrays: class cinsn_t(citem_t) @@ -20534,25 +23856,39 @@ class cinsn_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cinsn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cinsn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cinsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cinsn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -20594,92 +23930,192 @@ class cinsn_t(citem_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cinsn_t const & | | contains_free_break(self, *args) -> 'bool' | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods defined here: | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20736,6 +24172,8 @@ class cinsn_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -20750,22 +24188,38 @@ class cinsn_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -20779,16 +24233,16 @@ class cinsn_t(citem_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -20805,6 +24259,8 @@ Help on function cinsn_t_insn_is_epilog in module ida_hexrays: cinsn_t_insn_is_epilog(*args) -> 'bool' cinsn_t_insn_is_epilog(insn) -> bool + + @param insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -20815,13 +24271,19 @@ class cinsnptrvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & | | __getitem__(self, *args) -> 'cinsn_t *const &' | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20830,20 +24292,31 @@ class cinsnptrvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t *const & | | __swig_destroy__ = delete_cinsnptrvec_t(...) | delete_cinsnptrvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: cinsn_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: cinsn_t *const & | | append = push_back(self, *args) -> 'cinsn_t *&' | @@ -20871,32 +24344,54 @@ class cinsnptrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' | erase(self, it) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator | | extract(self, *args) -> 'cinsn_t **' | extract(self) -> cinsn_t ** | | find(self, *args) -> 'qvector< cinsn_t * >::const_iterator' | find(self, x) -> qvector< cinsn_t * >::iterator + | + | @param x: cinsn_t *const & + | | find(self, x) -> qvector< cinsn_t * >::const_iterator + | + | @param x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: cinsn_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: cinsn_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'cinsn_t *&' | push_back(self, x) + | + | @param x: cinsn_t *const & + | | push_back(self) -> cinsn_t *& | | qclear(self, *args) -> 'void' @@ -20904,16 +24399,26 @@ class cinsnptrvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: cinsn_t *const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< cinsn_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20945,6 +24450,8 @@ class citem_cmt_t(builtins.object) | __init__(self, *args) | __init__(self) -> citem_cmt_t | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * | | __repr__ = _swig_repr(self) | @@ -20970,7 +24477,7 @@ class citem_cmt_t(builtins.object) | The membership flag | | used - | citem_cmt_t_used_get(self) -> bool + | used Help on class citem_locator_t in module ida_hexrays: @@ -20981,25 +24488,43 @@ class citem_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t + | + | @param _ea: ea_t + | @param _op: enum ctype_t + | | __init__(self, i) -> citem_locator_t + | + | @param i: citem_t const * | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __repr__ = _swig_repr(self) | @@ -21008,6 +24533,8 @@ class citem_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21019,10 +24546,10 @@ class citem_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | citem_locator_t_ea_get(self) -> ea_t + | ea | | op - | citem_locator_t_op_get(self) -> ctype_t + | op | | thisown | The membership flag @@ -21040,8 +24567,9 @@ class citem_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> citem_t - | __init__(self, o) -> citem_t + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -21062,6 +24590,8 @@ class citem_t(builtins.object) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -21076,30 +24606,54 @@ class citem_t(builtins.object) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | print1(self, *args) -> 'void' | print1(self, func) + | Print item into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) -> 'void' | swap(self, r) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21111,19 +24665,19 @@ class citem_t(builtins.object) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -21148,8 +24702,6 @@ Help on function clear_cached_cfuncs in module ida_hexrays: clear_cached_cfuncs(*args) -> 'void' clear_cached_cfuncs() - - Flush all cached decompilation results. Help on class cloop_t in module ida_hexrays: @@ -21167,7 +24719,12 @@ class cloop_t(ceinsn_t) | __init__(self, *args) | __init__(self) -> cloop_t | __init__(self, b) -> cloop_t + | + | @param b: cinsn_t * + | | __init__(self, r) -> cloop_t + | + | @param r: cloop_t const & | | __repr__ = _swig_repr(self) | @@ -21176,6 +24733,8 @@ class cloop_t(ceinsn_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -21184,7 +24743,7 @@ class cloop_t(ceinsn_t) | Data descriptors defined here: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | thisown | The membership flag @@ -21199,17 +24758,22 @@ class cloop_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr + +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) -> 'void' + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. Help on function close_pseudocode in module ida_hexrays: close_pseudocode(*args) -> 'bool' close_pseudocode(f) -> bool - - Close pseudocode window. - @param f: pointer to window (C++: TWidget *) + @param f: (C++: TWidget *) pointer to window @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -21221,24 +24785,38 @@ class cnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t + | + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cnumber_t const & | | __repr__ = _swig_repr(self) | @@ -21247,15 +24825,32 @@ class cnumber_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, type, parent=None, nice_stroff=None) + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) -> 'void' | assign(self, v, nbytes, sign) + | Assign new value + | + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cnumber_t const & | | value(self, *args) -> 'uint64' | value(self, type) -> uint64 + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21267,10 +24862,10 @@ class cnumber_t(builtins.object) | list of weak references to the object (if defined) | | _value - | cnumber_t__value_get(self) -> uint64 + | _value | | nf - | cnumber_t_nf_get(self) -> number_format_t + | nf | | thisown | The membership flag @@ -21287,10 +24882,8 @@ class codegen_t(builtins.object) | | Methods defined here: | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, m) -> codegen_t + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. | | __repr__ = _swig_repr(self) | @@ -21299,19 +24892,93 @@ class codegen_t(builtins.object) | | analyze_prolog(self, *args) -> 'merror_t' | analyze_prolog(self, fc, reachable) -> merror_t + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code | | emit(self, *args) -> 'minsn_t *' | emit(self, code, width, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int + | | emit(self, code, l, r, d) -> minsn_t + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * | | emit_micro_mvm(self, *args) -> 'minsn_t *' | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant takes a data type not a size. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) | | gen_micro(self, *args) -> 'merror_t' | gen_micro(self) -> merror_t + | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal + | + | load_effective_address(self, *args) -> 'mreg_t' + | load_effective_address(self, n, flags=0) -> mreg_t + | Generate microcode to calculate the address of a memory operand. + | + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) | | load_operand(self, *args) -> 'mreg_t' - | load_operand(self, opnum) -> mreg_t + | load_operand(self, opnum, flags=0) -> mreg_t + | Generate microcode to load one operand. + | + | @param opnum: (C++: int) number of INSN operand + | @param flags: (C++: int) reserved for future use + | @return: register containing the operand. + | + | microgen_completed(self, *args) -> 'void' + | microgen_completed(self) + | This method is called when the microcode generation is done. + | + | prepare_gen_micro(self, *args) -> 'merror_t' + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal + | + | store_operand(self, *args) -> 'bool' + | store_operand(self, n, mop, flags=0, outins=None) -> bool + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21323,19 +24990,19 @@ class codegen_t(builtins.object) | list of weak references to the object (if defined) | | ignore_micro - | codegen_t_ignore_micro_get(self) -> char + | ignore_micro | | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t + | ii | | insn - | codegen_t_insn_get(self) -> insn_t * + | insn | | mb - | codegen_t_mb_get(self) -> mblock_t + | mb | | mba - | codegen_t_mba_get(self) -> mbl_array_t + | mba | | thisown | The membership flag @@ -21344,36 +25011,57 @@ Help on function convert_to_user_call in module ida_hexrays: convert_to_user_call(*args) -> 'merror_t' convert_to_user_call(udc, cdg) -> merror_t - - try to generate user-defined call for an instruction - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) + +Help on function create_cfunc in module ida_hexrays: + +create_cfunc(*args) -> 'cfuncptr_t' + create_cfunc(mba) -> cfuncptr_t + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. + +Help on function create_empty_mba in module ida_hexrays: + +create_empty_mba(*args) -> 'mba_t *' + create_empty_mba(mbr, hf=None) -> mba_t + Create an empty microcode object. + + @param mbr: (C++: const mba_ranges_t &) mba_ranges_t const & + @param hf: (C++: hexrays_failure_t *) Help on function create_field_name in module ida_hexrays: create_field_name(*args) -> 'qstring' create_field_name(type, offset=BADADDR) -> qstring + + @param type: tinfo_t const & + @param offset: uval_t Help on function create_helper in module ida_hexrays: create_helper(*args) + Create a helper object.. Help on function create_typedef in module ida_hexrays: create_typedef(*args) -> 'tinfo_t' create_typedef(name) -> tinfo_t + Create a reference to an ordinal type. + + @param name: char const * + + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. create_typedef(n) -> tinfo_t - - Create a reference to a named type. - - @param name: type name (C++: const char *) - @return: type which refers to the specified name. For example, if name - is "DWORD", the type info which refers to "DWORD" is created. + @param n: int Help on class creturn_t in module ida_hexrays: @@ -21389,24 +25077,36 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: creturn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: creturn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: creturn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: creturn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: creturn_t const & | | __repr__ = _swig_repr(self) | @@ -21415,6 +25115,8 @@ class creturn_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21437,7 +25139,7 @@ class creturn_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cswitch_t in module ida_hexrays: @@ -21453,24 +25155,36 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cswitch_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cswitch_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cswitch_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cswitch_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cswitch_t const & | | __repr__ = _swig_repr(self) | @@ -21479,15 +25193,17 @@ class cswitch_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cases - | cswitch_t_cases_get(self) -> ccases_t + | cases | | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t + | mvnf | | thisown | The membership flag @@ -21507,7 +25223,7 @@ class cswitch_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ctext_position_t in module ida_hexrays: @@ -21518,24 +25234,40 @@ class ctext_position_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -21544,9 +25276,14 @@ class ctext_position_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21558,16 +25295,16 @@ class ctext_position_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -21623,7 +25360,7 @@ class ctree_anchor_t(builtins.object) | The membership flag | | value - | ctree_anchor_t_value_get(self) -> uval_t + | value Help on class ctree_item_t in module ida_hexrays: @@ -21655,20 +25392,44 @@ class ctree_item_t(builtins.object) | _get_l(self, *args) -> 'lvar_t *' | _get_l(self) -> lvar_t | + | _print(self, *args) -> 'void' + | _print(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed | | get_label_num(self, *args) -> 'int' | get_label_num(self, gln_flags) -> int + | Get label number of the current item. + | + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label | | get_lvar(self, *args) -> 'lvar_t *' | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed | | get_memptr(self, *args) -> 'member_t *' | get_memptr(self, p_sptr=None) -> member_t * + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed | | is_citem(self, *args) -> 'bool' | is_citem(self) -> bool + | Is the current item is a ctree item? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21680,7 +25441,7 @@ class ctree_item_t(builtins.object) | list of weak references to the object (if defined) | | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t + | citype | | e | @@ -21693,7 +25454,7 @@ class ctree_item_t(builtins.object) | l | | loc - | ctree_item_t_loc_get(self) -> treeloc_t + | loc | | thisown | The membership flag @@ -21707,13 +25468,19 @@ class ctree_items_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & | | __getitem__(self, *args) -> 'citem_t *const &' | __getitem__(self, i) -> citem_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21722,20 +25489,31 @@ class ctree_items_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: citem_t *const & | | __swig_destroy__ = delete_ctree_items_t(...) | delete_ctree_items_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: citem_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: citem_t *const & | | append = push_back(self, *args) -> 'citem_t *&' | @@ -21763,32 +25541,54 @@ class ctree_items_t(builtins.object) | | erase(self, *args) -> 'qvector< citem_t * >::iterator' | erase(self, it) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | | erase(self, first, last) -> qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator | | extract(self, *args) -> 'citem_t **' | extract(self) -> citem_t ** | | find(self, *args) -> 'qvector< citem_t * >::const_iterator' | find(self, x) -> qvector< citem_t * >::iterator + | + | @param x: citem_t *const & + | | find(self, x) -> qvector< citem_t * >::const_iterator + | + | @param x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: citem_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: citem_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< citem_t * >::iterator' | insert(self, it, x) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'citem_t *&' | push_back(self, x) + | + | @param x: citem_t *const & + | | push_back(self) -> citem_t *& | | qclear(self, *args) -> 'void' @@ -21796,16 +25596,26 @@ class ctree_items_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: citem_t *const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< citem_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -21843,14 +25653,28 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t + | + | @param post: bool | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_ctree_parentee_t(...) | delete_ctree_parentee_t(self) | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21863,54 +25687,104 @@ class ctree_parentee_t(ctree_visitor_t) | | apply_to(self, *args) -> 'int' | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) -> 'bool' | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -21922,10 +25796,10 @@ class ctree_parentee_t(ctree_visitor_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class ctree_visitor_t in module ida_hexrays: @@ -21938,6 +25812,8 @@ class ctree_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t + | + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -21946,54 +25822,104 @@ class ctree_visitor_t(builtins.object) | | apply_to(self, *args) -> 'int' | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) -> 'bool' | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22005,10 +25931,10 @@ class ctree_visitor_t(builtins.object) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents | | thisown | The membership flag @@ -22028,24 +25954,36 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cwhile_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cwhile_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cwhile_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cwhile_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cwhile_t const & | | __repr__ = _swig_repr(self) | @@ -22054,6 +25992,8 @@ class cwhile_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22071,6 +26011,8 @@ class cwhile_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -22079,7 +26021,7 @@ class cwhile_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -22091,168 +26033,146 @@ class cwhile_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) -> 'void' - debug_hexrays_ctree(msg) + debug_hexrays_ctree(level, msg) + + @param level: int + @param msg: char const * Help on function decompile in module ida_hexrays: decompile(ea, hf=None, flags=0) - # --------------------------------------------------------------------- + Decompile a function. + + @param ea an address belonging to the function, or an ida_funcs.func_t object + @param hf extended error information (if failed) + @param flags decomp_flags bitwise combination of `DECOMP_...` bits + @return the decompilation result (a `ida_hexrays.cfunc_t` wrapper), or None Help on function decompile_func in module ida_hexrays: decompile_func(*args) -> 'cfuncptr_t' - decompile_func(pfn, hf, flags=0) -> cfuncptr_t + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + Decompile a function. Multiple decompilations of the same function return the + same object. - - Decompile a function. Multiple decompilations of the same function - return the same object. - - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. Help on function decompile_many in module ida_hexrays: decompile_many(*args) -> 'bool' decompile_many(outfile, funcaddrs, flags) -> bool - - Batch decompilation. Decompile all or the specified functions - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation Help on function dereference in module ida_hexrays: dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression Help on function dstr in module ida_hexrays: dstr(*args) -> 'char const *' dstr(tif) -> char const * + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" - - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - - @param tif (C++: const tinfo_t *) + @param tif: (C++: const tinfo_t *) tinfo_t const * Help on function dummy_ptrtype in module ida_hexrays: dummy_ptrtype(*args) -> 'tinfo_t' dummy_ptrtype(ptrsize, isfp) -> tinfo_t - - Generate a dummy pointer type - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? Help on function eamap_begin in module ida_hexrays: eamap_begin(*args) -> 'eamap_iterator_t' eamap_begin(map) -> eamap_iterator_t - - Get iterator pointing to the beginning of eamap_t. - - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) -> 'void' eamap_clear(map) - - Clear eamap_t. - - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_end in module ida_hexrays: eamap_end(*args) -> 'eamap_iterator_t' eamap_end(map) -> eamap_iterator_t - - Get iterator pointing to the end of eamap_t. - - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_erase in module ida_hexrays: eamap_erase(*args) -> 'void' eamap_erase(map, p) - - Erase current element from eamap_t. - - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) Help on function eamap_find in module ida_hexrays: eamap_find(*args) -> 'eamap_iterator_t' eamap_find(map, key) -> eamap_iterator_t - - Find the specified key in eamap_t. - - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function eamap_first in module ida_hexrays: eamap_first(*args) -> 'ea_t const &' eamap_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_free in module ida_hexrays: eamap_free(*args) -> 'void' eamap_free(map) - - Delete eamap_t instance. - - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_insert in module ida_hexrays: eamap_insert(*args) -> 'eamap_iterator_t' eamap_insert(map, key, val) -> eamap_iterator_t - - Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & Help on class eamap_iterator_t in module ida_hexrays: @@ -22263,12 +26183,16 @@ class eamap_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -22288,7 +26212,7 @@ class eamap_iterator_t(builtins.object) | The membership flag | | x - | eamap_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -22299,53 +26223,39 @@ Help on function eamap_new in module ida_hexrays: eamap_new(*args) -> 'eamap_t *' eamap_new() -> eamap_t - - Create a new eamap_t instance. Help on function eamap_next in module ida_hexrays: eamap_next(*args) -> 'eamap_iterator_t' eamap_next(p) -> eamap_iterator_t - - Move to the next element. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_prev in module ida_hexrays: eamap_prev(*args) -> 'eamap_iterator_t' eamap_prev(p) -> eamap_iterator_t - - Move to the previous element. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_second in module ida_hexrays: eamap_second(*args) -> 'cinsnptrvec_t &' eamap_second(p) -> cinsnptrvec_t - - Get reference to the current map value. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_size in module ida_hexrays: eamap_size(*args) -> 'size_t' eamap_size(map) -> size_t - - Get size of eamap_t. - - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -22356,9 +26266,17 @@ class eamap_t(builtins.object) | | __begin = eamap_begin(...) | eamap_begin(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __clear = eamap_clear(...) | eamap_clear(map) + | + | Parameters + | ---------- + | map: eamap_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -22368,15 +26286,33 @@ class eamap_t(builtins.object) | | __end = eamap_end(...) | eamap_end(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __erase = eamap_erase(...) | eamap_erase(map, p) + | + | Parameters + | ---------- + | map: eamap_t * + | p: eamap_iterator_t | | __find = eamap_find(...) | eamap_find(map, key) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | key: ea_t const & | | __first = eamap_first(...) | eamap_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -22386,6 +26322,12 @@ class eamap_t(builtins.object) | | __insert = eamap_insert(...) | eamap_insert(map, key, val) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t * + | key: ea_t const & + | val: cinsnptrvec_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -22395,23 +26337,37 @@ class eamap_t(builtins.object) | | __next = eamap_next(...) | eamap_next(p) -> eamap_iterator_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __repr__ = _swig_repr(self) | | __second = eamap_second(...) | eamap_second(p) -> cinsnptrvec_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = eamap_size(...) | eamap_size(map) -> size_t + | + | Parameters + | ---------- + | map: eamap_t * | | __swig_destroy__ = delete_eamap_t(...) | delete_eamap_t(self) | | at(self, *args) -> 'cinsnptrvec_t &' | at(self, _Keyval) -> cinsnptrvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -22494,48 +26450,6 @@ class eamap_t(builtins.object) | valuetype = | Proxy of C++ qvector< cinsn_t * > class. -Help on class fnum_array in module ida_hexrays: - -class fnum_array(builtins.object) - | Proxy of C++ wrapped_array_t< uint16,6 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'unsigned short const &' - | __getitem__(self, i) -> unsigned short const & - | - | __init__(self, *args) - | __init__(self, data) -> fnum_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_fnum_array(...) - | delete_fnum_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | fnum_array_data_get(self) -> unsigned short (&)[6] - | - | thisown - | The membership flag - Help on class fnumber_t in module ida_hexrays: class fnumber_t(builtins.object) @@ -22545,38 +26459,49 @@ class fnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: fnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: fnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: fnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: fnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: fnumber_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_fnumber_t(...) | delete_fnumber_t(self) | - | _fnumber_t__get_fnum = __get_fnum(self, *args) -> 'wrapped_array_t< uint16,6 >' - | __get_fnum(self) -> fnum_array - | | _print(self, *args) -> 'void' | _print(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: fnumber_t const & | | dereference_const_uint16(self, *args) -> 'uint16 const *' | dereference_const_uint16(self) -> uint16 const * @@ -22594,10 +26519,10 @@ class fnumber_t(builtins.object) | list of weak references to the object (if defined) | | fnum - | __get_fnum(self) -> fnum_array + | fnum | | nbytes - | fnumber_t_nbytes_get(self) -> int + | nbytes | | thisown | The membership flag @@ -22624,6 +26549,16 @@ class gco_info_t(builtins.object) | | append_to_list(self, *args) -> 'bool' | append_to_list(self, list, mba) -> bool + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object + | + | cvt_to_ivl(self, *args) -> 'vivl_t' + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). | | is_def(self, *args) -> 'bool' | is_def(self) -> bool @@ -22644,70 +26579,66 @@ class gco_info_t(builtins.object) | list of weak references to the object (if defined) | | flags - | gco_info_t_flags_get(self) -> int + | flags | | name - | gco_info_t_name_get(self) -> qstring * + | name + | + | regnum + | regnum | | size - | gco_info_t_size_get(self) -> int + | size + | + | stkoff + | stkoff | | thisown | The membership flag Help on function gen_microcode in module ida_hexrays: -gen_microcode(*args) -> 'mbl_array_t *' - gen_microcode(mbr, hf, retlist=None, flags=0, reqmat=MMAT_GLBOPT3) -> mbl_array_t - - +gen_microcode(*args) -> 'mba_t *' + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t Generate microcode of an arbitrary code snippet - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. Help on function get_ctype_name in module ida_hexrays: get_ctype_name(*args) -> 'char const *' get_ctype_name(op) -> char const * + + @param op: enum ctype_t Help on function get_current_operand in module ida_hexrays: get_current_operand(*args) -> 'bool' get_current_operand(out) -> bool + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. - - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - return true. - - @param out (C++: gco_info_t *) + @param out: (C++: gco_info_t *) [out]: output buffer Help on function get_float_type in module ida_hexrays: get_float_type(*args) -> 'tinfo_t' get_float_type(width) -> tinfo_t - - Get a type of a floating point value with the specified width - @param width: width of the desired type (C++: int) + @param width: (C++: int) width of the desired type @return: type info object Help on function get_hexrays_version in module ida_hexrays: get_hexrays_version(*args) -> 'char const *' get_hexrays_version() -> char const * - - Get decompiler version. The returned string is of the form ... @@ -22717,147 +26648,122 @@ Help on function get_int_type_by_width_and_sign in module ida_hexrays: get_int_type_by_width_and_sign(*args) -> 'tinfo_t' get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. - - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type Help on function get_member_type in module ida_hexrays: get_member_type(*args) -> 'bool' get_member_type(mptr, type) -> bool + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. - - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. @return: false if failed Help on function get_merror_desc in module ida_hexrays: get_merror_desc(*args) -> 'qstring *' get_merror_desc(code, mba) -> str - - Get textual description of an error code - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mbl_array_t *) + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) -> 'qstring *' get_mreg_name(reg, width, ud=None) -> str + Get the microregister name. - - Get the microregister name - - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. Help on function get_op_signness in module ida_hexrays: get_op_signness(*args) -> 'type_sign_t' get_op_signness(op) -> type_sign_t + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. - - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function get_signed_mcode in module ida_hexrays: get_signed_mcode(*args) -> 'mcode_t' get_signed_mcode(code) -> mcode_t + + @param code: enum mcode_t Help on function get_temp_regs in module ida_hexrays: get_temp_regs(*args) -> 'mlist_t const &' get_temp_regs() -> mlist_t - - - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. Help on function get_type in module ida_hexrays: get_type(*args) -> 'bool' get_type(id, tif, guess) -> bool - - Get a global type. Global types are types of addressable objects and struct/union/enum types - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider @return: success Help on function get_unk_type in module ida_hexrays: get_unk_type(*args) -> 'tinfo_t' get_unk_type(size) -> tinfo_t + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. - - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - - @param size: size of the type in bytes (C++: int) + @param size: (C++: int) size of the type in bytes Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) -> 'mcode_t' get_unsigned_mcode(code) -> mcode_t + + @param code: enum mcode_t Help on function get_widget_vdui in module ida_hexrays: get_widget_vdui(*args) -> 'vdui_t *' get_widget_vdui(f) -> vdui_t + Get the vdui_t instance associated to the TWidget - - Get the 'vdui_t' instance associated to the TWidget - - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr Help on function getb_reginsn in module ida_hexrays: getb_reginsn(*args) -> 'minsn_t *' getb_reginsn(ins) -> minsn_t - - Skip assertions backward. - - - @param ins (C++: const minsn_t *) + @param ins: minsn_t * Help on function getf_reginsn in module ida_hexrays: getf_reginsn(*args) -> 'minsn_t *' getf_reginsn(ins) -> minsn_t - - Skip assertions forward. - - - @param ins (C++: const minsn_t *) + @param ins: minsn_t * Help on class graph_chains_t in module ida_hexrays: @@ -22881,18 +26787,29 @@ class graph_chains_t(block_chains_vec_t) | | acquire(self, *args) -> 'void' | acquire(self) + | Lock the chains. | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca_flags) -> int + | Visit all chains + | + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits | | is_locked(self, *args) -> 'bool' | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. | | release(self, *args) -> 'void' | release(self) + | Unlock the chains. | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: graph_chains_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22905,6 +26822,8 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22914,16 +26833,20 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -22936,11 +26859,16 @@ class graph_chains_t(block_chains_vec_t) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -22950,18 +26878,29 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) + | + | @param x: block_chains_t const & + | | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' @@ -22969,10 +26908,18 @@ class graph_chains_t(block_chains_vec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -22993,17 +26940,23 @@ Help on function has_cached_cfunc in module ida_hexrays: has_cached_cfunc(*args) -> 'bool' has_cached_cfunc(ea) -> bool - - Do we have a cached decompilation result for 'ea'? + @param ea: (C++: ea_t) + +Help on function has_mcode_seloff in module ida_hexrays: + +has_mcode_seloff(*args) -> 'bool' + has_mcode_seloff(op) -> bool - @param ea (C++: ea_t) + @param op: enum mcode_t Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) -> 'void *' hexrays_alloc(size) -> void * + + @param size: size_t Help on class hexrays_failure_t in module ida_hexrays: @@ -23015,7 +26968,16 @@ class hexrays_failure_t(builtins.object) | __init__(self, *args) | __init__(self) -> hexrays_failure_t | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | | __init__(self, c, ea, buf) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -23037,13 +26999,13 @@ class hexrays_failure_t(builtins.object) | list of weak references to the object (if defined) | | code - | hexrays_failure_t_code_get(self) -> merror_t + | code | | errea - | hexrays_failure_t_errea_get(self) -> ea_t + | errea | | str - | hexrays_failure_t_str_get(self) -> qstring * + | str | | thisown | The membership flag @@ -23052,6 +27014,8 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) -> 'void' hexrays_free(ptr) + + @param ptr: void * Help on class hexwarn_t in module ida_hexrays: @@ -23062,24 +27026,36 @@ class hexwarn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __repr__ = _swig_repr(self) | @@ -23088,6 +27064,8 @@ class hexwarn_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23099,13 +27077,13 @@ class hexwarn_t(builtins.object) | list of weak references to the object (if defined) | | ea - | hexwarn_t_ea_get(self) -> ea_t + | ea | | id - | hexwarn_t_id_get(self) -> warnid_t + | id | | text - | hexwarn_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -23124,13 +27102,19 @@ class hexwarns_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & | | __getitem__(self, *args) -> 'hexwarn_t const &' | __getitem__(self, i) -> hexwarn_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23139,20 +27123,31 @@ class hexwarns_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: hexwarn_t const & | | __swig_destroy__ = delete_hexwarns_t(...) | delete_hexwarns_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: hexwarn_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: hexwarn_t const & | | append = push_back(self, *args) -> 'hexwarn_t &' | @@ -23163,7 +27158,6 @@ class hexwarns_t(builtins.object) | | begin(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -23176,39 +27170,58 @@ class hexwarns_t(builtins.object) | | end(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | end(self) -> hexwarn_t - | end(self) -> hexwarn_t | | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' | erase(self, it) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | | erase(self, first, last) -> hexwarn_t + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator | | extract(self, *args) -> 'hexwarn_t *' | extract(self) -> hexwarn_t | | find(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | find(self, x) -> hexwarn_t - | find(self, x) -> hexwarn_t + | + | @param x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=hexwarn_t()) + | + | @param x: hexwarn_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: hexwarn_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: hexwarn_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' | insert(self, it, x) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'hexwarn_t &' | push_back(self, x) + | + | @param x: hexwarn_t const & + | | push_back(self) -> hexwarn_t | | qclear(self, *args) -> 'void' @@ -23216,16 +27229,26 @@ class hexwarns_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: hexwarn_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< hexwarn_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23261,7 +27284,16 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int + | | __init__(self, _ea, p) -> history_item_t + | + | @param _ea: ea_t + | @param p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -23272,10 +27304,10 @@ class history_item_t(ctext_position_t) | Data descriptors defined here: | | ea - | history_item_t_ea_get(self) -> ea_t + | ea | | end - | history_item_t_end_get(self) -> ea_t + | end | | thisown | The membership flag @@ -23285,27 +27317,44 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -23317,13 +27366,13 @@ class history_item_t(ctext_position_t) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes inherited from ctext_position_t: @@ -23358,20 +27407,26 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) -> 'history_item_t &' | push_back(self, x) + | + | @param x: history_item_t const & + | | push_back(self) -> history_item_t | | at = __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | + | @param i: size_t | | pop(self, *args) -> 'history_item_t' | pop(self) -> history_item_t | | push(self, *args) -> 'void' | push(self, v) + | + | @param v: history_item_t const & | | top(self, *args) -> 'history_item_t &' | top(self) -> history_item_t - | top(self) -> history_item_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23384,28 +27439,42 @@ class history_t(qvector_history_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | + | @param i: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -23418,39 +27487,58 @@ class history_t(qvector_history_t) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | find(self, x) -> history_item_t + | + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) + | + | @param x: history_item_t const & + | | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' @@ -23458,16 +27546,26 @@ class history_t(qvector_history_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23490,359 +27588,375 @@ Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) -> 'bool' init_hexrays_plugin(flags=0) -> bool + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. - - Initialize your plugin for hex-rays decompiler. This function must be - called before calling any other decompiler function. It initializes - the pointer to the dispatcher. - - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and the dispatcher pointer is - ready to use. + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin Help on function install_hexrays_callback in module ida_hexrays: install_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed Help on function install_microcode_filter in module ida_hexrays: -install_microcode_filter(*args) -> 'void' - install_microcode_filter(filter, install=True) - - +install_microcode_filter(*args) -> 'bool' + install_microcode_filter(filter, install=True) -> bool register/unregister non-standard microcode generator - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) -> 'bool' is_additive(op) -> bool - - Is additive operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_assignment in module ida_hexrays: is_assignment(*args) -> 'bool' is_assignment(op) -> bool - - Is assignment operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_binary in module ida_hexrays: is_binary(*args) -> 'bool' is_binary(op) -> bool - - Is binary operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bitop in module ida_hexrays: is_bitop(*args) -> 'bool' is_bitop(op) -> bool - - Is bit related operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bool_type in module ida_hexrays: is_bool_type(*args) -> 'bool' is_bool_type(type) -> bool - - Is a boolean type? - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & @return: true if the type is a boolean type Help on function is_break_consumer in module ida_hexrays: is_break_consumer(*args) -> 'bool' is_break_consumer(op) -> bool - - Does a break statement influence the specified statement code? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_commutative in module ida_hexrays: is_commutative(*args) -> 'bool' is_commutative(op) -> bool - - Is commutative operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_inplace_def in module ida_hexrays: is_inplace_def(*args) -> 'bool' is_inplace_def(type) -> bool - - Is struct/union/enum definition (not declaration)? - - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & Help on function is_kreg in module ida_hexrays: is_kreg(*args) -> 'bool' is_kreg(r) -> bool + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() - - Is a kernel register? - - - @param r (C++: mreg_t) + @param r: (C++: mreg_t) Help on function is_logical in module ida_hexrays: is_logical(*args) -> 'bool' is_logical(op) -> bool - - Is logical operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_loop in module ida_hexrays: is_loop(*args) -> 'bool' is_loop(op) -> bool - - Is loop statement code? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_lvalue in module ida_hexrays: is_lvalue(*args) -> 'bool' is_lvalue(op) -> bool - - Is Lvalue operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_may_access in module ida_hexrays: is_may_access(*args) -> 'bool' is_may_access(maymust) -> bool + + @param maymust: maymust_t Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) -> 'bool' is_mcode_addsub(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) -> 'bool' is_mcode_call(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) -> 'bool' is_mcode_commutative(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_jmp in module ida_hexrays: is_mcode_convertible_to_jmp(*args) -> 'bool' is_mcode_convertible_to_jmp(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_set in module ida_hexrays: is_mcode_convertible_to_set(*args) -> 'bool' is_mcode_convertible_to_set(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) -> 'bool' is_mcode_divmod(op) -> bool + + @param op: enum mcode_t Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) -> 'bool' is_mcode_fpu(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) -> 'bool' is_mcode_j1(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) -> 'bool' is_mcode_jcond(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_propagatable in module ida_hexrays: is_mcode_propagatable(*args) -> 'bool' is_mcode_propagatable(mcode) -> bool + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. - - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - - @param mcode (C++: mcode_t) + @param mcode: (C++: mcode_t) enum mcode_t Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) -> 'bool' is_mcode_set(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) -> 'bool' is_mcode_set1(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) -> 'bool' is_mcode_shift(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) -> 'bool' is_mcode_xdsu(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) -> 'bool' is_multiplicative(op) -> bool - - Is multiplicative operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_nonbool_type in module ida_hexrays: is_nonbool_type(*args) -> 'bool' is_nonbool_type(type) -> bool - - Is definitely a non-boolean type? - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) Help on function is_paf in module ida_hexrays: is_paf(*args) -> 'bool' is_paf(t) -> bool - - Is a pointer, array, or function type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_prepost in module ida_hexrays: is_prepost(*args) -> 'bool' is_prepost(op) -> bool - - Is pre/post increment/decrement operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_ptr_or_array in module ida_hexrays: is_ptr_or_array(*args) -> 'bool' is_ptr_or_array(t) -> bool - - Is a pointer or array type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_relational in module ida_hexrays: is_relational(*args) -> 'bool' is_relational(op) -> bool - - Is comparison operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) -> 'bool' is_signed_mcode(code) -> bool + + @param code: enum mcode_t Help on function is_small_udt in module ida_hexrays: is_small_udt(*args) -> 'bool' is_small_udt(tif) -> bool - - Is a small structure or union? - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. Help on function is_type_correct in module ida_hexrays: is_type_correct(*args) -> 'bool' is_type_correct(ptr) -> bool - - Verify a type string. - @param ptr (C++: const type_t *) + @param ptr: (C++: const type_t *) type_t const * @return: true if type string is correct Help on function is_unary in module ida_hexrays: is_unary(*args) -> 'bool' is_unary(op) -> bool - - Is unary operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) -> 'bool' is_unsigned_mcode(code) -> bool + + @param code: enum mcode_t + +Help on class iterator in module ida_hexrays: + +class iterator(builtins.object) + | Proxy of C++ bitset_t::iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | + | @param n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __ref__(self, *args) -> 'int' + | __ref__(self) -> int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_iterator(...) + | delete_iterator(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on class ivl_t in module ida_hexrays: @@ -23858,24 +27972,39 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ivl_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ivl_t const & | | __init__(self, *args) - | __init__(self, _off, _size) -> ivl_t + | __init__(self, _off=0, _size=0) -> ivl_t + | + | @param _off: uval_t + | @param _size: uval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -23887,9 +28016,13 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ivl_t const & | | contains(self, *args) -> 'bool' | contains(self, off2) -> bool + | + | @param off2: uval_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -23899,15 +28032,23 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool + | + | @param r: ivl_t const & | | includes(self, *args) -> 'bool' | includes(self, ivl) -> bool + | + | @param ivl: ivl_t const & | | intersect(self, *args) -> 'void' | intersect(self, r) + | + | @param r: ivl_t const & | | overlap(self, *args) -> 'bool' | overlap(self, ivl) -> bool + | + | @param ivl: ivl_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23942,10 +28083,10 @@ class ivl_t(uval_ivl_t) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size Help on class ivl_with_name_t in module ida_hexrays: @@ -23972,16 +28113,16 @@ class ivl_with_name_t(builtins.object) | list of weak references to the object (if defined) | | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t + | ivl | | part - | ivl_with_name_t_part_get(self) -> char const * + | part | | thisown | The membership flag | | whole - | ivl_with_name_t_whole_get(self) -> char const * + | whole Help on class ivlset_t in module ida_hexrays: @@ -23997,25 +28138,39 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ivlset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ivlset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ivlset_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ivlset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -24027,17 +28182,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) -> 'bool' | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | add(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | | add(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | addmasked(self, *args) -> 'bool' | addmasked(self, ivs, mask) -> bool + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ivlset_t const & | | contains(self, *args) -> 'bool' | contains(self, off) -> bool + | + | @param off: uval_t | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -24047,18 +28218,37 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) -> 'bool' | has_common(self, ivl, strict=False) -> bool + | + | @param ivl: ivl_t const & + | @param strict: bool + | | has_common(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | includes(self, *args) -> 'bool' | includes(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | sub(self, *args) -> 'bool' | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | sub(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | | sub(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24093,6 +28283,8 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -24107,10 +28299,15 @@ class ivlset_t(uval_ivl_ivlset_t) | set_all_values(self) | | single_value(self, *args) -> 'bool' + | single_value(self) -> bool | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -24125,15 +28322,37 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) -> 'mcode_t' jcnd2set(code) -> mcode_t + + @param code: enum mcode_t Help on function lexcompare in module ida_hexrays: lexcompare(*args) -> 'int' lexcompare(a, b) -> int + + @param a: mop_t const & + @param b: mop_t const & Help on function lnot in module ida_hexrays: lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. + +Help on function locate_lvar in module ida_hexrays: + +locate_lvar(*args) -> 'bool' + locate_lvar(out, func_ea, varname) -> bool + Find a variable by name. + + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. Help on class lvar_locator_t in module ida_hexrays: @@ -24144,25 +28363,40 @@ class lvar_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | @@ -24171,34 +28405,47 @@ class lvar_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24210,10 +28457,10 @@ class lvar_locator_t(builtins.object) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | thisown | The membership flag @@ -24227,94 +28474,69 @@ Help on function lvar_mapping_begin in module ida_hexrays: lvar_mapping_begin(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_begin(map) -> lvar_mapping_iterator_t - - Get iterator pointing to the beginning of lvar_mapping_t. - - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_clear in module ida_hexrays: lvar_mapping_clear(*args) -> 'void' lvar_mapping_clear(map) - - Clear lvar_mapping_t. - - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_end in module ida_hexrays: lvar_mapping_end(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_end(map) -> lvar_mapping_iterator_t - - Get iterator pointing to the end of lvar_mapping_t. - - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_erase in module ida_hexrays: lvar_mapping_erase(*args) -> 'void' lvar_mapping_erase(map, p) - - Erase current element from lvar_mapping_t. - - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_find in module ida_hexrays: lvar_mapping_find(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - - Find the specified key in lvar_mapping_t. - - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & Help on function lvar_mapping_first in module ida_hexrays: lvar_mapping_first(*args) -> 'lvar_locator_t const &' lvar_mapping_first(p) -> lvar_locator_t - - Get reference to the current map key. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_free in module ida_hexrays: lvar_mapping_free(*args) -> 'void' lvar_mapping_free(map) - - Delete lvar_mapping_t instance. - - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_insert in module ida_hexrays: lvar_mapping_insert(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. - - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & Help on class lvar_mapping_iterator_t in module ida_hexrays: @@ -24325,12 +28547,16 @@ class lvar_mapping_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -24350,7 +28576,7 @@ class lvar_mapping_iterator_t(builtins.object) | The membership flag | | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24361,53 +28587,39 @@ Help on function lvar_mapping_new in module ida_hexrays: lvar_mapping_new(*args) -> 'lvar_mapping_t *' lvar_mapping_new() -> lvar_mapping_t - - Create a new lvar_mapping_t instance. Help on function lvar_mapping_next in module ida_hexrays: lvar_mapping_next(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_next(p) -> lvar_mapping_iterator_t - - Move to the next element. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_prev in module ida_hexrays: lvar_mapping_prev(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_prev(p) -> lvar_mapping_iterator_t - - Move to the previous element. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_second in module ida_hexrays: lvar_mapping_second(*args) -> 'lvar_locator_t &' lvar_mapping_second(p) -> lvar_locator_t - - Get reference to the current map value. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_size in module ida_hexrays: lvar_mapping_size(*args) -> 'size_t' lvar_mapping_size(map) -> size_t - - Get size of lvar_mapping_t. - - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -24426,6 +28638,8 @@ class lvar_mapping_t(builtins.object) | | at(self, *args) -> 'lvar_locator_t &' | at(self, _Keyval) -> lvar_locator_t + | + | @param _Keyval: lvar_locator_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -24451,25 +28665,44 @@ class lvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t + | + | @param m: mba_t * + | @param i: int + | @param o: sval_t + | | __init__(self, r) -> lvar_ref_t + | + | @param r: lvar_ref_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -24478,12 +28711,17 @@ class lvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: lvar_ref_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: lvar_ref_t & | | var(self, *args) -> 'lvar_t &' | var(self) -> lvar_t + | Retrieve the referenced variable. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24495,13 +28733,13 @@ class lvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | lvar_ref_t_idx_get(self) -> int + | idx | | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t + | mba | | off - | lvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -24520,12 +28758,16 @@ class lvar_saved_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -24544,6 +28786,9 @@ class lvar_saved_info_t(builtins.object) | clr_noptr_lvar(self, *args) -> 'void' | clr_noptr_lvar(self) | + | clr_unused_lvar(self, *args) -> 'void' + | clr_unused_lvar(self) + | | has_info(self, *args) -> 'bool' | has_info(self) -> bool | @@ -24559,6 +28804,9 @@ class lvar_saved_info_t(builtins.object) | is_noptr_lvar(self, *args) -> 'bool' | is_noptr_lvar(self) -> bool | + | is_unused_lvar(self, *args) -> 'bool' + | is_unused_lvar(self) -> bool + | | set_forced_lvar(self, *args) -> 'void' | set_forced_lvar(self) | @@ -24571,6 +28819,9 @@ class lvar_saved_info_t(builtins.object) | set_noptr_lvar(self, *args) -> 'void' | set_noptr_lvar(self) | + | set_unused_lvar(self, *args) -> 'void' + | set_unused_lvar(self) + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -24581,25 +28832,25 @@ class lvar_saved_info_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * + | cmt | | flags - | lvar_saved_info_t_flags_get(self) -> int + | flags | | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t + | ll | | name - | lvar_saved_info_t_name_get(self) -> qstring * + | name | | size - | lvar_saved_info_t_size_get(self) -> ssize_t + | size | | thisown | The membership flag | | type - | lvar_saved_info_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24615,13 +28866,19 @@ class lvar_saved_infos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) -> 'lvar_saved_info_t const &' | __getitem__(self, i) -> lvar_saved_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -24630,20 +28887,31 @@ class lvar_saved_infos_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_saved_info_t const & | | __swig_destroy__ = delete_lvar_saved_infos_t(...) | delete_lvar_saved_infos_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lvar_saved_info_t const & | | append = push_back(self, *args) -> 'lvar_saved_info_t &' | @@ -24654,7 +28922,6 @@ class lvar_saved_infos_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -24667,39 +28934,58 @@ class lvar_saved_infos_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t | | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | erase(self, it) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | | erase(self, first, last) -> lvar_saved_info_t + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) -> 'lvar_saved_info_t *' | extract(self) -> lvar_saved_info_t | | find(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | find(self, x) -> lvar_saved_info_t - | find(self, x) -> lvar_saved_info_t + | + | @param x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_saved_info_t()) + | + | @param x: lvar_saved_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lvar_saved_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lvar_saved_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | insert(self, it, x) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_saved_info_t &' | push_back(self, x) + | + | @param x: lvar_saved_info_t const & + | | push_back(self) -> lvar_saved_info_t | | qclear(self, *args) -> 'void' @@ -24707,16 +28993,26 @@ class lvar_saved_infos_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lvar_saved_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -24753,6 +29049,9 @@ class lvar_t(lvar_locator_t) | __init__(self, *args, **kwargs) | __init__(self) -> lvar_locator_t | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __repr__ = _swig_repr(self) | @@ -24761,9 +29060,19 @@ class lvar_t(lvar_locator_t) | | accepts_type(self, *args) -> 'bool' | accepts_type(self, t, may_change_thisarg=False) -> bool + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) | | append_list(self, *args) -> 'void' - | append_list(self, lst, pad_if_scattered=False) + | append_list(self, mba, lst, pad_if_scattered=False) + | Append local variable to mlist. + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) if true, append padding bytes in case of scattered lvar | | clear_used(self, *args) -> 'void' | clear_used(self) @@ -24774,6 +29083,9 @@ class lvar_t(lvar_locator_t) | clr_automapped(self, *args) -> 'void' | clr_automapped(self) | + | clr_decl_unused(self, *args) -> 'void' + | clr_decl_unused(self) + | | clr_dummy_arg(self, *args) -> 'void' | clr_dummy_arg(self) | @@ -24801,6 +29113,9 @@ class lvar_t(lvar_locator_t) | clr_overlapped_var(self, *args) -> 'void' | clr_overlapped_var(self) | + | clr_shared(self, *args) -> 'void' + | clr_shared(self) + | | clr_spoiled_var(self, *args) -> 'void' | clr_spoiled_var(self) | @@ -24810,6 +29125,9 @@ class lvar_t(lvar_locator_t) | clr_unknown_width(self, *args) -> 'void' | clr_unknown_width(self) | + | clr_used_byref(self, *args) -> 'void' + | clr_used_byref(self) + | | clr_user_info(self, *args) -> 'void' | clr_user_info(self) | @@ -24821,33 +29139,67 @@ class lvar_t(lvar_locator_t) | | has_common(self, *args) -> 'bool' | has_common(self, v) -> bool + | Do variables overlap? + | + | @param v: (C++: const lvar_t &) lvar_t const & | | has_common_bit(self, *args) -> 'bool' | has_common_bit(self, loc, width2) -> bool + | Does the variable overlap with the specified location? + | + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) | | has_regname(self, *args) -> 'bool' | has_regname(self) -> bool + | Has a register name? (like _RAX) + | + | in_asm(self, *args) -> 'bool' + | in_asm(self) -> bool + | Is variable used in an instruction translated into __asm? | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mba) -> bool + | Is the variable aliasable? + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) | | is_automapped(self, *args) -> 'bool' | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? + | + | is_decl_unused(self, *args) -> 'bool' + | is_decl_unused(self) -> bool + | Was declared as __unused by the user? See CVAR_UNUSED. | | is_dummy_arg(self, *args) -> 'bool' | is_dummy_arg(self) -> bool + | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) -> 'bool' | is_forced_var(self) -> bool + | Is a forced variable? | | is_noptr_var(self, *args) -> 'bool' | is_noptr_var(self) -> bool + | Variable type should not be a pointer. | | is_notarg(self, *args) -> 'bool' | is_notarg(self) -> bool + | Is a local variable? (local variable cannot be an input argument) + | + | is_shared(self, *args) -> 'bool' + | is_shared(self) -> bool + | Is lvar mapped to several chains. | | is_thisarg(self, *args) -> 'bool' | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) -> 'bool' + | is_used_byref(self) -> bool + | Was the address of the variable taken? | | set_arg_var(self, *args) -> 'void' | set_arg_var(self) @@ -24855,6 +29207,9 @@ class lvar_t(lvar_locator_t) | set_automapped(self, *args) -> 'void' | set_automapped(self) | + | set_decl_unused(self, *args) -> 'void' + | set_decl_unused(self) + | | set_dummy_arg(self, *args) -> 'void' | set_dummy_arg(self) | @@ -24863,6 +29218,9 @@ class lvar_t(lvar_locator_t) | | set_final_lvar_type(self, *args) -> 'void' | set_final_lvar_type(self, t) + | Set final variable type. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | set_floating_var(self, *args) -> 'void' | set_floating_var(self) @@ -24872,6 +29230,15 @@ class lvar_t(lvar_locator_t) | | set_lvar_type(self, *args) -> 'bool' | set_lvar_type(self, t, may_fail=False) -> bool + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success | | set_mapdst_var(self, *args) -> 'void' | set_mapdst_var(self) @@ -24891,6 +29258,9 @@ class lvar_t(lvar_locator_t) | set_overlapped_var(self, *args) -> 'void' | set_overlapped_var(self) | + | set_shared(self, *args) -> 'void' + | set_shared(self) + | | set_spoiled_var(self, *args) -> 'void' | set_spoiled_var(self) | @@ -24906,6 +29276,9 @@ class lvar_t(lvar_locator_t) | set_used(self, *args) -> 'void' | set_used(self) | + | set_used_byref(self, *args) -> 'void' + | set_used_byref(self) + | | set_user_name(self, *args) -> 'void' | set_user_name(self) | @@ -24914,131 +29287,177 @@ class lvar_t(lvar_locator_t) | | set_width(self, *args) -> 'bool' | set_width(self, w, svw_flags=0) -> bool + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success | | type(self, *args) -> 'tinfo_t &' | type(self) -> tinfo_t - | type(self) -> tinfo_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cmt - | lvar_t_cmt_get(self) -> qstring * + | cmt | | defblk - | lvar_t_defblk_get(self) -> int + | defblk | | divisor - | lvar_t_divisor_get(self) -> uint64 + | divisor | | has_nice_name | has_nice_name(self) -> bool + | Does the variable have a nice name? | | has_user_info | has_user_info(self) -> bool + | Has any user-defined information? | | has_user_name | has_user_name(self) -> bool + | Has user-defined name? | | has_user_type | has_user_type(self) -> bool + | Has user-defined type? | | is_arg_var | is_arg_var(self) -> bool + | Is the function argument? | | is_fake_var | is_fake_var(self) -> bool + | Is fake return variable? | | is_floating_var | is_floating_var(self) -> bool + | Used by a fpu insn? | | is_mapdst_var | is_mapdst_var(self) -> bool + | Other variable(s) map to this var? | | is_overlapped_var | is_overlapped_var(self) -> bool + | Is overlapped variable? | | is_result_var | is_result_var(self) -> bool + | Is the function result? | | is_spoiled_var | is_spoiled_var(self) -> bool + | Is spoiled var? (meaningful only during lvar allocation) | | is_unknown_width | is_unknown_width(self) -> bool + | Do we know the width of the variable? | | mreg_done | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? | | name - | lvar_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | lvar_t_tif_get(self) -> tinfo_t + | tif | | typed | typed(self) -> bool + | Has the variable a type? | | used | used(self) -> bool + | Is the variable used in the code? | | width - | lvar_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from lvar_locator_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors inherited from lvar_locator_t: @@ -25050,10 +29469,10 @@ class lvar_t(lvar_locator_t) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | ---------------------------------------------------------------------- | Data and other attributes inherited from lvar_locator_t: @@ -25078,14 +29497,25 @@ class lvar_uservec_t(builtins.object) | clear(self, *args) -> 'void' | clear(self) | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | | find_info(self, *args) -> 'lvar_saved_info_t *' | find_info(self, vloc) -> lvar_saved_info_t + | find saved user settings for given var + | + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & | | keep_info(self, *args) -> 'void' | keep_info(self, v) + | Preserve user settings for given var. + | + | @param v: (C++: const lvar_t &) lvar_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: lvar_uservec_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25097,19 +29527,19 @@ class lvar_uservec_t(builtins.object) | list of weak references to the object (if defined) | | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t + | lmaps | | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t + | lvvec | | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t + | stkoff_delta | | thisown | The membership flag | | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int + | ulv_flags Help on class lvars_t in module ida_hexrays: @@ -25133,15 +29563,35 @@ class lvars_t(qvector_lvar_t) | | find(self, *args) -> 'lvar_t *' | find(self, ll) -> lvar_t + | Find variable at the specified location. + | + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr | | find_input_lvar(self, *args) -> 'int' | find_input_lvar(self, argloc, _size) -> int + | Find input variable at the specified location. + | + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) -> 'int' | find_lvar(self, location, width, defblk=-1) -> int + | Find variable at the specified location. + | + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) -> 'int' | find_stkvar(self, spoff, width) -> int + | Find stack variable at the specified location. + | + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25154,9 +29604,13 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25166,29 +29620,44 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | push_back(self, x) + | + | @param x: lvar_t const & + | | push_back(self) -> lvar_t | | at = __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -25201,11 +29670,16 @@ class lvars_t(qvector_lvar_t) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t @@ -25215,21 +29689,34 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) + | + | @param x: lvar_t const & + | | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' @@ -25237,16 +29724,26 @@ class lvars_t(qvector_lvar_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -25268,35 +29765,33 @@ class lvars_t(qvector_lvar_t) Help on function make_num in module ida_hexrays: make_num(*args) + Create a number expression Help on function make_pointer in module ida_hexrays: make_pointer(*args) -> 'tinfo_t' make_pointer(type) -> tinfo_t + Create a pointer type. This function performs the following conversion: "type" + -> "type*" - - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - - @param type: object type. (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) object type. @return: "type*". for example, if 'char' is passed as the argument, Help on function make_ref in module ida_hexrays: make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. Help on function mark_cfunc_dirty in module ida_hexrays: mark_cfunc_dirty(*args) -> 'bool' mark_cfunc_dirty(ea, close_views=False) -> bool + Flush the cached decompilation results. Erases a cache entry for the specified + function. - - Flush the cached decompilation results. Erases a cache entry for the - specified function. - - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function @return: if a cache entry existed. Help on class mba_range_iterator_t in module ida_hexrays: @@ -25325,6 +29820,8 @@ class mba_range_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, mbr) -> bool + | + | @param mbr: mba_ranges_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25336,10 +29833,10 @@ class mba_range_iterator_t(builtins.object) | list of weak references to the object (if defined) | | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t + | fii | | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * + | rii | | thisown | The membership flag @@ -25353,7 +29850,12 @@ class mba_ranges_t(builtins.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t + | + | @param _pfn: func_t * + | | __init__(self, r) -> mba_ranges_t + | + | @param r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -25385,18 +29887,18 @@ class mba_ranges_t(builtins.object) | list of weak references to the object (if defined) | | pfn - | mba_ranges_t_pfn_get(self) -> func_t * + | pfn | | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t + | ranges | | thisown | The membership flag -Help on class mbl_array_t in module ida_hexrays: +Help on class mba_t in module ida_hexrays: -class mbl_array_t(builtins.object) - | Proxy of C++ mbl_array_t class. +class mba_t(builtins.object) + | Proxy of C++ mba_t class. | | Methods defined here: | @@ -25405,27 +29907,70 @@ class mbl_array_t(builtins.object) | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_mbl_array_t(...) - | delete_mbl_array_t(self) + | __swig_destroy__ = delete_mba_t(...) + | delete_mba_t(self) | | _deregister(self, *args) -> 'void' | _deregister(self) | | _print(self, *args) -> 'void' | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & | | _register(self, *args) -> 'void' | _register(self) | + | alloc_fict_ea(self, *args) -> 'ea_t' + | alloc_fict_ea(self, real_ea) -> ea_t + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) -> 'mreg_t' + | alloc_kreg(self, size, check_size=True) -> mreg_t + | Allocate a kernel register. + | + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. + | | alloc_lvars(self, *args) -> 'void' | alloc_lvars(self) + | Allocate local variables. Must be called only immediately after + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. | | analyze_calls(self, *args) -> 'int' | analyze_calls(self, acflags) -> int + | Analyze calls and determine calling conventions. + | + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. | | arg(self, *args) -> 'lvar_t const &' | arg(self, n) -> lvar_t - | arg(self, n) -> lvar_t + | + | @param n: int | | argbase(self, *args) -> 'sval_t' | argbase(self) -> sval_t @@ -25441,6 +29986,11 @@ class mbl_array_t(builtins.object) | | build_graph(self, *args) -> 'merror_t' | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code | | calc_shins_flags(self, *args) -> 'int' | calc_shins_flags(self) -> int @@ -25456,18 +30006,50 @@ class mbl_array_t(builtins.object) | | clr_mba_flags(self, *args) -> 'void' | clr_mba_flags(self, f) + | + | @param f: int | | clr_mba_flags2(self, *args) -> 'void' | clr_mba_flags2(self, f) + | + | @param f: int + | + | code16_bit_removed(self, *args) -> 'bool' + | code16_bit_removed(self) -> bool | | combine_blocks(self, *args) -> 'bool' | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks | | common_stkvars_stkargs(self, *args) -> 'bool' | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) -> 'mblock_t *' | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy + | + | create_helper_call(self, *args) -> 'minsn_t *' + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t + | Create a call of a helper function. + | + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error | | deleted_pairs(self, *args) -> 'bool' | deleted_pairs(self) -> bool @@ -25480,21 +30062,56 @@ class mbl_array_t(builtins.object) | | dump(self, *args) -> 'void' | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. | | dump_mba(self, *args) -> 'void' | dump_mba(self, _verify, title) + | + | @param _verify: bool + | @param title: char const * | | find_mop(self, *args) -> 'mop_t *' | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand. BADADDR means to accept any address. + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. | | for_all_insns(self, *args) -> 'int' | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits all instruction and + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv) -> int + | Visit all operands of all instructions. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) -> 'int' | for_all_topinsns(self, mv) -> int + | Visit all top level instructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) -> 'void' + | free_kreg(self, reg, size) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes | | generated_asserts(self, *args) -> 'bool' | generated_asserts(self) -> bool @@ -25507,9 +30124,12 @@ class mbl_array_t(builtins.object) | | get_graph(self, *args) -> 'mbl_graph_t *' | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. | | get_ida_argloc(self, *args) -> 'argloc_t' | get_ida_argloc(self, v) -> argloc_t + | + | @param v: lvar_t const & | | get_lvars_region(self, *args) -> 'ivl_t const &' | get_lvars_region(self) -> ivl_t @@ -25522,7 +30142,8 @@ class mbl_array_t(builtins.object) | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t - | get_mblock(self, n) -> mblock_t + | + | @param n: int | | get_shadow_region(self, *args) -> 'ivl_t const &' | get_shadow_region(self) -> ivl_t @@ -25532,6 +30153,10 @@ class mbl_array_t(builtins.object) | | get_std_region(self, *args) -> 'ivl_t const &' | get_std_region(self, idx) -> ivl_t + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t | | graph_insns(self, *args) -> 'bool' | graph_insns(self) -> bool @@ -25539,17 +30164,33 @@ class mbl_array_t(builtins.object) | has_bad_sp(self, *args) -> 'bool' | has_bad_sp(self) -> bool | + | has_outlines(self, *args) -> 'bool' + | has_outlines(self) -> bool + | | has_over_chains(self, *args) -> 'bool' | has_over_chains(self) -> bool | | has_passregs(self, *args) -> 'bool' | has_passregs(self) -> bool | + | has_stack_retval(self, *args) -> 'bool' + | has_stack_retval(self) -> bool + | | idaloc2vd(self, *args) -> 'vdloc_t' | idaloc2vd(self, loc, width) -> vdloc_t + | + | @param loc: argloc_t const & + | @param width: int | | insert_block(self, *args) -> 'mblock_t *' | insert_block(self, bblk) -> mblock_t + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block | | is_cdtr(self, *args) -> 'bool' | is_cdtr(self) -> bool @@ -25568,6 +30209,8 @@ class mbl_array_t(builtins.object) | | is_stkarg(self, *args) -> 'bool' | is_stkarg(self, v) -> bool + | + | @param v: lvar_t const & | | is_thunk(self, *args) -> 'bool' | is_thunk(self) -> bool @@ -25584,17 +30227,38 @@ class mbl_array_t(builtins.object) | lvars_renamed(self, *args) -> 'bool' | lvars_renamed(self) -> bool | + | map_fict_ea(self, *args) -> 'ea_t' + | map_fict_ea(self, fict_ea) -> ea_t + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address + | | mark_chains_dirty(self, *args) -> 'void' | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. | | may_refine_rettype(self, *args) -> 'bool' | may_refine_rettype(self) -> bool | | optimize_global(self, *args) -> 'merror_t' | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code | | optimize_local(self, *args) -> 'int' | optimize_local(self, locopt_bits) -> int + | Optimize each basic block locally + | + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. | | optimized(self, *args) -> 'bool' | optimized(self) -> bool @@ -25602,6 +30266,9 @@ class mbl_array_t(builtins.object) | precise_defeas(self, *args) -> 'bool' | precise_defeas(self) -> bool | + | prop_complex(self, *args) -> 'bool' + | prop_complex(self) -> bool + | | propagated_asserts(self, *args) -> 'bool' | propagated_asserts(self) -> bool | @@ -25613,9 +30280,15 @@ class mbl_array_t(builtins.object) | | remove_block(self, *args) -> 'bool' | remove_block(self, blk) -> bool + | Delete a block. + | + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable | - | remove_empty_blocks(self, *args) -> 'bool' - | remove_empty_blocks(self) -> bool + | remove_empty_and_unreachable_blocks(self, *args) -> 'bool' + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. | | returns_fpval(self, *args) -> 'bool' | returns_fpval(self) -> bool @@ -25623,17 +30296,37 @@ class mbl_array_t(builtins.object) | rtype_refined(self, *args) -> 'bool' | rtype_refined(self) -> bool | + | save_snapshot(self, *args) -> 'void' + | save_snapshot(self, description) + | Create and save microcode snapshot. + | + | @param description: (C++: const char *) char const * + | | saverest_done(self, *args) -> 'bool' | saverest_done(self) -> bool | | serialize(self, *args) -> 'void' | serialize(self) + | Serialize mbl array into a sequence of bytes. + | + | set_maturity(self, *args) -> 'bool' + | set_maturity(self, mat) -> bool + | Set maturity level. + | + | @param mat: (C++: mba_maturity_t) new maturity level + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. | | set_mba_flags(self, *args) -> 'void' | set_mba_flags(self, f) + | + | @param f: int | | set_mba_flags2(self, *args) -> 'void' | set_mba_flags2(self, f) + | + | @param f: int | | short_display(self, *args) -> 'bool' | short_display(self) -> bool @@ -25646,9 +30339,13 @@ class mbl_array_t(builtins.object) | | stkoff_ida2vd(self, *args) -> 'sval_t' | stkoff_ida2vd(self, off) -> sval_t + | + | @param off: sval_t | | stkoff_vd2ida(self, *args) -> 'sval_t' | stkoff_vd2ida(self, off) -> sval_t + | + | @param off: sval_t | | term(self, *args) -> 'void' | term(self) @@ -25664,10 +30361,28 @@ class mbl_array_t(builtins.object) | | vd2idaloc(self, *args) -> 'argloc_t' | vd2idaloc(self, loc, width, spd) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t + | | vd2idaloc(self, loc, width) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int | | verify(self, *args) -> 'void' | verify(self, always) + | Verify microcode consistency. + | + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. If the + | microcode is inconsistent, this function will generate an + | internal error. We provide the source code of this function in + | the plugins/hexrays_sdk/verifier directory for your reference. | | write_to_const_detected(self, *args) -> 'bool' | write_to_const_detected(self) -> bool @@ -25675,8 +30390,12 @@ class mbl_array_t(builtins.object) | ---------------------------------------------------------------------- | Static methods defined here: | - | deserialize(*args) -> 'mbl_array_t *' - | deserialize(bytes) -> mbl_array_t + | deserialize(*args) -> 'mba_t *' + | deserialize(bytes) -> mba_t + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25688,153 +30407,157 @@ class mbl_array_t(builtins.object) | list of weak references to the object (if defined) | | aliased_args - | mbl_array_t_aliased_args_get(self) -> ivl_t + | aliased_args | | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t + | aliased_memory | | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t + | aliased_vars | | argidx - | mbl_array_t_argidx_get(self) -> intvec_t + | argidx | | blocks - | mbl_array_t_blocks_get(self) -> mblock_t + | blocks | | cc - | mbl_array_t_cc_get(self) -> cm_t + | cc | | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t + | consumed_argregs + | + | deprecated_idb_node + | deprecated_idb_node | | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t + | entry_ea | | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t + | error_ea | | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * + | error_strarg | | final_type - | mbl_array_t_final_type_get(self) -> bool + | final_type | | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t + | first_epilog_ea | | fpd - | mbl_array_t_fpd_get(self) -> sval_t + | fpd | | frregs - | mbl_array_t_frregs_get(self) -> sval_t + | frregs | | frsize - | mbl_array_t_frsize_get(self) -> sval_t + | frsize | | fti_flags - | mbl_array_t_fti_flags_get(self) -> int + | fti_flags | | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t + | fullsize | | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t + | gotoff_stkvars | | idb_node - | mbl_array_t_idb_node_get(self) -> netnode | | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t + | idb_spoiled | | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t + | idb_type | | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t + | inargoff | | label - | mbl_array_t_label_get(self) -> qstring * + | label | | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t + | last_prolog_ea | | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t + | maturity | | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t + | mbr | | minargref - | mbl_array_t_minargref_get(self) -> sval_t + | minargref | | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t + | minstkref | | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t + | minstkref_ea | | natural - | mbl_array_t_natural_get(self) -> mblock_t ** + | natural | | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t + | nodel_memory | | notes - | mbl_array_t_notes_get(self) -> hexwarns_t + | notes | | npurged - | mbl_array_t_npurged_get(self) -> int + | npurged | | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] + | occurred_warns | | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int + | pfn_flags | | qty - | mbl_array_t_qty_get(self) -> int + | qty | | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t + | reqmat | | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t + | restricted_memory | | retsize - | mbl_array_t_retsize_get(self) -> int + | retsize | | retvaridx - | mbl_array_t_retvaridx_get(self) -> int + | retvaridx | | shadow_args - | mbl_array_t_shadow_args_get(self) -> int + | shadow_args | | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t + | spd_adjust | | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t + | spoiled_list | | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t + | stacksize | | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t + | std_ivls | | thisown | The membership flag | | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t + | tmpstk_size | | vars - | mbl_array_t_vars_get(self) -> lvars_t + | vars -Help on function mbl_array_t_deserialize in module ida_hexrays: +Help on function mba_t_deserialize in module ida_hexrays: -mbl_array_t_deserialize(*args) -> 'mbl_array_t *' - mbl_array_t_deserialize(bytes) -> mbl_array_t +mba_t_deserialize(*args) -> 'mba_t *' + mba_t_deserialize(bytes) -> mba_t + + @param bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -25844,12 +30567,15 @@ class mbl_graph_t(simple_graph_t) | Method resolution order: | mbl_graph_t | simple_graph_t + | ida_gdl.gdl_graph_t | builtins.object | | Methods defined here: | | __init__(self, *args, **kwargs) - | Initialize self. See help(type(self)) for accurate signature. + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -25858,24 +30584,54 @@ class mbl_graph_t(simple_graph_t) | | get_du(self, *args) -> 'graph_chains_t *' | get_du(self, gctype) -> graph_chains_t + | Get def-use chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t + | + | @param n: int | | get_ud(self, *args) -> 'graph_chains_t *' | get_ud(self, gctype) -> graph_chains_t + | Get use-def chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t | | is_du_chain_dirty(self, *args) -> 'bool' | is_du_chain_dirty(self, gctype) -> bool + | Is the def-use chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t | | is_redefined_globally(self, *args) -> 'bool' | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST redefined in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | is_ud_chain_dirty(self, *args) -> 'bool' | is_ud_chain_dirty(self, gctype) -> bool + | Is the use-def chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t | | is_used_globally(self, *args) -> 'bool' | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST used in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25886,17 +30642,132 @@ class mbl_graph_t(simple_graph_t) | ---------------------------------------------------------------------- | Data descriptors inherited from simple_graph_t: | + | colored_gdl_edges + | colored_gdl_edges + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) - | - | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool - | - | title - | simple_graph_t_title_get(self) -> qstring * Help on class mblock_t in module ida_hexrays: @@ -25915,64 +30786,186 @@ class mblock_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & | | append_def_list(self, *args) -> 'void' | append_def_list(self, list, op, maymust) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. | | append_use_list(self, *args) -> 'void' | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. | | build_def_list(self, *args) -> 'mlist_t' | build_def_list(self, ins, maymust) -> mlist_t + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list | | build_lists(self, *args) -> 'int' | build_lists(self, kill_deads) -> int + | Build def-use lists and eliminate deads. + | + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) -> 'mlist_t' | build_use_list(self, ins, maymust) -> mlist_t + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list | | dump(self, *args) -> 'void' | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info | | dump_block(self, *args) -> 'void' | dump_block(self, title) + | + | @param title: char const * | | empty(self, *args) -> 'bool' | empty(self) -> bool | | find_access(self, *args) -> 'minsn_t *' | find_access(self, op, parent, mend, fdflags) -> minsn_t + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param parent: (C++: minsn_t **) ptr to ptr to a top level instruction. denotes the beginning of + | the search range. + | @param mend: (C++: const minsn_t *) end instruction of the range (must be a top level insn) mend is + | excluded from the range. it can be specified as nullptr. parent and + | mend must belong to the same block. + | @param fdflags: (C++: int) combination of bits for mblock_t::find_access bits + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. | | find_def(self, *args) -> 'minsn_t *' | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | find_first_use(self, *args) -> 'minsn_t *' | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_redefinition(self, *args) -> 'minsn_t *' | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_use(self, *args) -> 'minsn_t *' | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | for_all_insns(self, *args) -> 'int' | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits subinstructions too. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv) -> int + | Visit all operands. This function visit subinstruction operands too. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) -> 'int' | for_all_uses(self, list, i1, i2, mmv) -> int + | Visit all operands that use LIST. + | + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) -> 'size_t' | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. | | get_valranges(self, *args) -> 'bool' | get_valranges(self, res, vivl, vrflags) -> bool + | Find possible values for an instruction. + | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits | get_valranges(self, res, vivl, m, vrflags) -> bool + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int | | insert_into_block(self, *args) -> 'minsn_t *' | insert_into_block(self, nm, om) -> minsn_t + | Insert instruction into the doubly linked list + | + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM | | is_branch(self, *args) -> 'bool' | is_branch(self) -> bool @@ -25985,9 +30978,25 @@ class mblock_t(builtins.object) | | is_redefined(self, *args) -> 'bool' | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list redefined by the specified instructions? + | + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | is_rhs_redefined(self, *args) -> 'bool' | is_rhs_redefined(self, ins, i1, i2) -> bool + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. | | is_simple_goto_block(self, *args) -> 'bool' | is_simple_goto_block(self) -> bool @@ -26000,6 +31009,15 @@ class mblock_t(builtins.object) | | is_used(self, *args) -> 'bool' | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list used by the specified instruction range? + | + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | lists_dirty(self, *args) -> 'bool' | lists_dirty(self) -> bool @@ -26012,6 +31030,10 @@ class mblock_t(builtins.object) | | make_nop(self, *args) -> 'void' | make_nop(self, m) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) | | mark_lists_dirty(self, *args) -> 'void' | mark_lists_dirty(self) @@ -26021,27 +31043,56 @@ class mblock_t(builtins.object) | | npred(self, *args) -> 'int' | npred(self) -> int + | Get number of block predecessors. | | nsucc(self, *args) -> 'int' | nsucc(self) -> int + | Get number of block successors. | | optimize_block(self, *args) -> 'int' | optimize_block(self) -> int + | Optimize a basic block. Usually there is no need to call this function + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block | | optimize_insn(self, *args) -> 'int' | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | Optimize one instruction in the context of the block. + | + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() | | optimize_useless_jump(self, *args) -> 'int' | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block | | pred(self, *args) -> 'int' | pred(self, n) -> int + | + | @param n: int | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) -> 'minsn_t *' | remove_from_block(self, m) -> minsn_t + | Remove instruction from the doubly linked list + | + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction | | request_demote64(self, *args) -> 'void' | request_demote64(self) @@ -26051,6 +31102,8 @@ class mblock_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, n) -> int + | + | @param n: int | | succs(self) | Iterates the list of successor blocks @@ -26065,70 +31118,70 @@ class mblock_t(builtins.object) | list of weak references to the object (if defined) | | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t + | dead_at_start | | dnu - | mblock_t_dnu_get(self) -> mlist_t + | dnu | | end - | mblock_t_end_get(self) -> ea_t + | end | | flags - | mblock_t_flags_get(self) -> uint32 + | flags | | head - | mblock_t_head_get(self) -> minsn_t + | head | | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t + | maxbsp | | maybdef - | mblock_t_maybdef_get(self) -> mlist_t + | maybdef | | maybuse - | mblock_t_maybuse_get(self) -> mlist_t + | maybuse | | mba - | mblock_t_mba_get(self) -> mbl_array_t + | mba | | minbargref - | mblock_t_minbargref_get(self) -> sval_t + | minbargref | | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t + | minbstkref | | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t + | mustbdef | | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t + | mustbuse | | nextb - | mblock_t_nextb_get(self) -> mblock_t + | nextb | | predset - | mblock_t_predset_get(self) -> intvec_t + | predset | | prevb - | mblock_t_prevb_get(self) -> mblock_t + | prevb | | serial - | mblock_t_serial_get(self) -> int + | serial | | start - | mblock_t_start_get(self) -> ea_t + | start | | succset - | mblock_t_succset_get(self) -> intvec_t + | succset | | tail - | mblock_t_tail_get(self) -> minsn_t + | tail | | thisown | The membership flag | | type - | mblock_t_type_get(self) -> mblock_type_t + | type Help on class mcallarg_t in module ida_hexrays: @@ -26145,6 +31198,8 @@ class mcallarg_t(mop_t) | __init__(self, *args) | __init__(self) -> mcallarg_t | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & | | __repr__ = _swig_repr(self) | @@ -26153,53 +31208,89 @@ class mcallarg_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | copy_mop(self, *args) -> 'void' | copy_mop(self, op) + | + | @param op: mop_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | make_int(self, *args) -> 'void' | make_int(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | make_uint(self, *args) -> 'void' | make_uint(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | set_regarg(self, *args) -> 'void' | set_regarg(self, mr, sz, tif) + | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & + | | set_regarg(self, mr, tif) + | + | @param mr: mreg_t + | @param tif: tinfo_t const & + | | set_regarg(self, mr, dt, sign=type_unsigned) + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argloc - | mcallarg_t_argloc_get(self) -> argloc_t + | argloc | | ea - | mcallarg_t_ea_get(self) -> ea_t + | ea + | + | flags + | flags | | name - | mcallarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | mcallarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from mop_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -26212,6 +31303,8 @@ class mcallarg_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -26262,34 +31355,83 @@ class mcallarg_t(mop_t) | | _make_blkref(self, *args) -> 'void' | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -26311,90 +31453,217 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t | | empty(self, *args) -> 'bool' | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -26404,64 +31673,121 @@ class mcallarg_t(mop_t) | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -26469,22 +31795,40 @@ class mcallarg_t(mop_t) | is_one(self, *args) -> 'bool' | is_one(self) -> bool | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | | is_positive_constant(self, *args) -> 'bool' | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | Is the specified register of the specified size? | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -26497,52 +31841,135 @@ class mcallarg_t(mop_t) | | is_zero_extended_from(self, *args) -> 'bool' | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' - | make_fpnum(self, bytes, _size) -> bool + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' | make_reg(self, reg) + | + | @param reg: mreg_t + | | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -26552,6 +31979,9 @@ class mcallarg_t(mop_t) | set_impptr_done(self, *args) -> 'void' | set_impptr_done(self) | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | | set_udt(self, *args) -> 'void' | set_udt(self) | @@ -26560,18 +31990,36 @@ class mcallarg_t(mop_t) | | shift_mop(self, *args) -> 'bool' | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | | value(self, *args) -> 'uint64' | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -26613,7 +32061,7 @@ class mcallarg_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -26624,13 +32072,13 @@ class mcallarg_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -26646,13 +32094,19 @@ class mcallargs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & | | __getitem__(self, *args) -> 'mcallarg_t const &' | __getitem__(self, i) -> mcallarg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26662,30 +32116,42 @@ class mcallargs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mcallarg_t const & | | __swig_destroy__ = delete_mcallargs_t(...) | delete_mcallargs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mcallarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: mcallarg_t const & | | at(self, *args) -> 'mcallarg_t const &' | at(self, _idx) -> mcallarg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26698,39 +32164,58 @@ class mcallargs_t(builtins.object) | | end(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | end(self) -> mcallarg_t - | end(self) -> mcallarg_t | | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' | erase(self, it) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | | erase(self, first, last) -> mcallarg_t + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator | | extract(self, *args) -> 'mcallarg_t *' | extract(self) -> mcallarg_t | | find(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | find(self, x) -> mcallarg_t - | find(self, x) -> mcallarg_t + | + | @param x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mcallarg_t()) + | + | @param x: mcallarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: mcallarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: mcallarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' | insert(self, it, x) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mcallarg_t &' | push_back(self, x) + | + | @param x: mcallarg_t const & + | | push_back(self) -> mcallarg_t | | qclear(self, *args) -> 'void' @@ -26738,16 +32223,26 @@ class mcallargs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mcallarg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< mcallarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26778,6 +32273,9 @@ class mcallinfo_t(builtins.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | + | @param _callee: ea_t + | @param _sargs: int | | __repr__ = _swig_repr(self) | @@ -26786,6 +32284,11 @@ class mcallinfo_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, size=-1, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | size: int + | shins_flags: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26798,9 +32301,13 @@ class mcallinfo_t(builtins.object) | | lexcompare(self, *args) -> 'int' | lexcompare(self, f) -> int + | + | @param f: mcallinfo_t const & | | set_type(self, *args) -> 'bool' | set_type(self, type) -> bool + | + | @param type: tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26812,58 +32319,58 @@ class mcallinfo_t(builtins.object) | list of weak references to the object (if defined) | | args - | mcallinfo_t_args_get(self) -> mcallargs_t + | args | | call_spd - | mcallinfo_t_call_spd_get(self) -> int + | call_spd | | callee - | mcallinfo_t_callee_get(self) -> ea_t + | callee | | cc - | mcallinfo_t_cc_get(self) -> cm_t + | cc | | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t + | dead_regs | | flags - | mcallinfo_t_flags_get(self) -> int + | flags | | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t + | fti_attrs | | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t + | pass_regs | | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t + | retregs | | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t + | return_argloc | | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t + | return_regs | | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t + | return_type | | role - | mcallinfo_t_role_get(self) -> funcrole_t + | role | | solid_args - | mcallinfo_t_solid_args_get(self) -> int + | solid_args | | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t + | spoiled | | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int + | stkargs_top | | thisown | The membership flag | | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t + | visible_memory Help on class mcases_t in module ida_hexrays: @@ -26874,24 +32381,36 @@ class mcases_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: mcases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: mcases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: mcases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: mcases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -26903,6 +32422,8 @@ class mcases_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: mcases_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26912,12 +32433,16 @@ class mcases_t(builtins.object) | | resize(self, *args) -> 'void' | resize(self, s) + | + | @param s: int | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: mcases_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26929,13 +32454,13 @@ class mcases_t(builtins.object) | list of weak references to the object (if defined) | | targets - | mcases_t_targets_get(self) -> intvec_t + | targets | | thisown | The membership flag | | values - | mcases_t_values_get(self) -> casevec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -26946,6 +32471,8 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) -> 'bool' mcode_modifies_d(mcode) -> bool + + @param mcode: enum mcode_t Help on class microcode_filter_t in module ida_hexrays: @@ -26958,6 +32485,8 @@ class microcode_filter_t(builtins.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -26966,9 +32495,19 @@ class microcode_filter_t(builtins.object) | | apply(self, *args) -> 'merror_t' | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | match(self, *args) -> 'bool' | match(self, cdg) -> bool + | check if the filter object is to be applied + | + | @param cdg: (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26991,10 +32530,17 @@ class minsn_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t + | + | @param _ea: ea_t + | | __init__(self, m) -> minsn_t + | + | @param m: minsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, ri) -> bool + | + | @param ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -27010,6 +32556,8 @@ class minsn_t(builtins.object) | | _ensure_no_obj(self, o, attr, attr_is_acquired) | + | _ensure_ownership_transferrable(self, v) + | | _make_nop(self, *args) -> 'void' | _make_nop(self) | @@ -27030,6 +32578,10 @@ class minsn_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) @@ -27063,46 +32615,93 @@ class minsn_t(builtins.object) | | contains_call(self, *args) -> 'bool' | contains_call(self, with_helpers=False) -> bool + | Does the instruction contain a call? + | + | @param with_helpers: (C++: bool) | | contains_opcode(self, *args) -> 'bool' | contains_opcode(self, mcode) -> bool + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | + | @param mcode: (C++: mcode_t) opcode to search for. + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, bytes, format_version) -> bool + | Deserialize an instruction + | + | @param bytes: (C++: const uchar *) pointer to serialized data + | @param format_version: (C++: int) serialization format version. this value is returned by + | minsn_t::serialize() + | @return: success | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) -> 'bool' | equal_insns(self, m, eqflags) -> bool + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | find_call(self, *args) -> 'minsn_t *' | find_call(self, with_helpers=False) -> minsn_t + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | + | @param with_helpers: (C++: bool) consider helper calls as well? | | find_ins_op(self, *args) -> 'minsn_t *' | find_ins_op(self, op=m_nop) -> minsn_t + | + | @param op: enum mcode_t | | find_num_op(self, *args) -> 'mop_t *' | find_num_op(self) -> mop_t | | find_opcode(self, *args) -> 'minsn_t *' | find_opcode(self, mcode) -> minsn_t - | find_opcode(self, mcode) -> minsn_t + | + | @param mcode: enum mcode_t | | for_all_insns(self, *args) -> 'int' | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv) -> int + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) -> 'funcrole_t' | get_role(self) -> funcrole_t + | Get the function role of a call. | | get_split_size(self, *args) -> 'int' | get_split_size(self) -> int | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Does the instruction have a side effect? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. | | is_after(self, *args) -> 'bool' | is_after(self, m) -> bool + | Is the instruction after the specified one? + | + | @param m: (C++: const minsn_t *) the instruction to compare against in the list | | is_alloca(self, *args) -> 'bool' | is_alloca(self) -> bool @@ -27112,6 +32711,12 @@ class minsn_t(builtins.object) | | is_between(self, *args) -> 'bool' | is_between(self, m1, m2) -> bool + | Is the instruction in the specified range of instructions? + | + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. | | is_bswap(self, *args) -> 'bool' | is_bswap(self) -> bool @@ -27136,6 +32741,11 @@ class minsn_t(builtins.object) | | is_helper(self, *args) -> 'bool' | is_helper(self, name) -> bool + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * | | is_ignlowsrc(self, *args) -> 'bool' | is_ignlowsrc(self) -> bool @@ -27162,7 +32772,10 @@ class minsn_t(builtins.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) -> 'bool' - | is_noret_call(self, ignore_noret_icall=False) -> bool + | is_noret_call(self, flags=0) -> bool + | Is a non-returing call? + | + | @param flags: (C++: int) combination of NORET_... bits | | is_optional(self, *args) -> 'bool' | is_optional(self) -> bool @@ -27181,30 +32794,61 @@ class minsn_t(builtins.object) | | is_unknown_call(self, *args) -> 'bool' | is_unknown_call(self) -> bool + | Is an unknown call? Unknown calls are calls without the argument list + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block | | is_wild_match(self, *args) -> 'bool' | is_wild_match(self) -> bool | | lexcompare(self, *args) -> 'int' | lexcompare(self, ri) -> int + | + | @param ri: minsn_t const & | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the instruction to use aliased memory? | - | modifes_d(self, *args) -> 'bool' - | modifes_d(self) -> bool + | modifies_d(self, *args) -> 'bool' + | modifies_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. | | modifies_pair_mop(self, *args) -> 'bool' | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) -> 'int' | optimize_solo(self, optflags=0) -> int + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() | | optimize_subtree(self, *args) -> 'int' | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) | | replace_by(self, o) | + | serialize(self, *args) -> 'int' + | serialize(self, b) -> int + | Serialize an instruction + | + | @param b: (C++: bytevec_t *) the output buffer + | @return: the serialization format that was used to store info + | | set_assert(self, *args) -> 'void' | set_assert(self) | @@ -27246,18 +32890,30 @@ class minsn_t(builtins.object) | | set_split_size(self, *args) -> 'void' | set_split_size(self, s) + | + | @param s: int | | set_tailcall(self, *args) -> 'void' | set_tailcall(self) | + | set_unmerged(self, *args) -> 'void' + | set_unmerged(self) + | | set_wild_match(self, *args) -> 'void' | set_wild_match(self) | | setaddr(self, *args) -> 'void' | setaddr(self, new_ea) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) | | swap(self, *args) -> 'void' | swap(self, m) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) | | was_noret_icall(self, *args) -> 'bool' | was_noret_icall(self) -> bool @@ -27265,6 +32921,9 @@ class minsn_t(builtins.object) | was_split(self, *args) -> 'bool' | was_split(self) -> bool | + | was_unmerged(self, *args) -> 'bool' + | was_unmerged(self) -> bool + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -27275,33 +32934,33 @@ class minsn_t(builtins.object) | list of weak references to the object (if defined) | | d - | minsn_t_d_get(self) -> mop_t + | d | | ea - | minsn_t_ea_get(self) -> ea_t + | ea | | iprops - | minsn_t_iprops_get(self) -> int + | iprops | | l - | minsn_t_l_get(self) -> mop_t + | l | | meminfo | | next - | minsn_t_next_get(self) -> minsn_t + | next | | obj_id | _obj_id(self) -> PyObject * | | opcode - | minsn_t_opcode_get(self) -> mcode_t + | opcode | | prev - | minsn_t_prev_get(self) -> minsn_t + | prev | | r - | minsn_t_r_get(self) -> mop_t + | r | | thisown | The membership flag @@ -27322,6 +32981,10 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -27347,16 +33010,16 @@ class minsn_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mlist_mop_visitor_t in module ida_hexrays: @@ -27369,6 +33032,8 @@ class mlist_mop_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -27377,6 +33042,8 @@ class mlist_mop_visitor_t(builtins.object) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op) -> int + | + | @param op: mop_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27388,19 +33055,19 @@ class mlist_mop_visitor_t(builtins.object) | list of weak references to the object (if defined) | | changed - | mlist_mop_visitor_t_changed_get(self) -> bool + | changed | | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t + | curins | | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t + | list | | thisown | The membership flag | | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t + | topins Help on class mlist_t in module ida_hexrays: @@ -27411,26 +33078,44 @@ class mlist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: mlist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: mlist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t | __init__(self, ivl) -> mlist_t + | + | @param ivl: ivl_t const & + | | __init__(self, r, size) -> mlist_t + | + | @param r: mreg_t + | @param size: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: mlist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: mlist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -27442,18 +33127,35 @@ class mlist_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | | add(self, r) -> bool + | + | @param r: rlist_t const & + | | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | add(self, lst) -> bool + | + | @param lst: mlist_t const & | | addmem(self, *args) -> 'bool' | addmem(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: mlist_t const & | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -27466,35 +33168,62 @@ class mlist_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, r) -> bool + | + | @param r: mreg_t | | has_all(self, *args) -> 'bool' | has_all(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int | | has_any(self, *args) -> 'bool' | has_any(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int | | has_common(self, *args) -> 'bool' | has_common(self, lst) -> bool + | + | @param lst: mlist_t const & | | has_memory(self, *args) -> 'bool' | has_memory(self) -> bool | | includes(self, *args) -> 'bool' | includes(self, lst) -> bool + | + | @param lst: mlist_t const & | | intersect(self, *args) -> 'bool' | intersect(self, lst) -> bool + | + | @param lst: mlist_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, lst) -> bool + | + | @param lst: mlist_t const & | | sub(self, *args) -> 'bool' | sub(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | sub(self, lst) -> bool + | + | @param lst: mlist_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: mlist_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27506,10 +33235,10 @@ class mlist_t(builtins.object) | list of weak references to the object (if defined) | | mem - | mlist_t_mem_get(self) -> ivlset_t + | mem | | reg - | mlist_t_reg_get(self) -> rlist_t + | reg | | thisown | The membership flag @@ -27533,24 +33262,40 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: mnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: mnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: mnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: mnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: mnumber_t const & | | __repr__ = _swig_repr(self) | @@ -27559,21 +33304,25 @@ class mnumber_t(operand_locator_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: mnumber_t const & | | update_value(self, *args) -> 'void' | update_value(self, val64) + | + | @param val64: uint64 | | ---------------------------------------------------------------------- | Data descriptors defined here: | | org_value - | mnumber_t_org_value_get(self) -> uint64 + | org_value | | thisown | The membership flag | | value - | mnumber_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27590,36 +33339,30 @@ class mnumber_t(operand_locator_t) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) -> 'bool' modify_user_lvar_info(func_ea, mli_flags, info) -> bool + Modify saved local variable settings of one variable. - - Modify saved local variable settings. - - @param func_ea (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs @return: true if modified, false if invalid MLI_FLAGS passed Help on function modify_user_lvars in module ida_hexrays: modify_user_lvars(*args) -> 'bool' modify_user_lvars(entry_ea, mlv) -> bool - - Modify saved local variable settings. - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier @return: true if modified variables Help on class mop_addr_t in module ida_hexrays: @@ -27637,7 +33380,14 @@ class mop_addr_t(mop_t) | __init__(self, *args) | __init__(self) -> mop_addr_t | __init__(self, ra) -> mop_addr_t + | + | @param ra: mop_addr_t const & + | | __init__(self, ra, isz, osz) -> mop_addr_t + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int | | __repr__ = _swig_repr(self) | @@ -27646,15 +33396,17 @@ class mop_addr_t(mop_t) | | lexcompare(self, *args) -> 'int' | lexcompare(self, ra) -> int + | + | @param ra: mop_addr_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | insize - | mop_addr_t_insize_get(self) -> int + | insize | | outsize - | mop_addr_t_outsize_get(self) -> int + | outsize | | thisown | The membership flag @@ -27664,12 +33416,18 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -27682,6 +33440,8 @@ class mop_addr_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -27732,34 +33492,83 @@ class mop_addr_t(mop_t) | | _make_blkref(self, *args) -> 'void' | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -27778,90 +33587,217 @@ class mop_addr_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -27871,6 +33807,10 @@ class mop_addr_t(mop_t) | | equal_mops(self, *args) -> 'bool' | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -27880,64 +33820,121 @@ class mop_addr_t(mop_t) | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -27945,22 +33942,40 @@ class mop_addr_t(mop_t) | is_one(self, *args) -> 'bool' | is_one(self) -> bool | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | | is_positive_constant(self, *args) -> 'bool' | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | Is the specified register of the specified size? | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -27973,49 +33988,130 @@ class mop_addr_t(mop_t) | | is_zero_extended_from(self, *args) -> 'bool' | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | make_blkref(self, *args) -> 'void' | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' - | make_fpnum(self, bytes, _size) -> bool + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' | make_reg(self, reg) + | + | @param reg: mreg_t + | | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -28025,6 +34121,9 @@ class mop_addr_t(mop_t) | set_impptr_done(self, *args) -> 'void' | set_impptr_done(self) | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | | set_udt(self, *args) -> 'void' | set_udt(self) | @@ -28033,18 +34132,36 @@ class mop_addr_t(mop_t) | | shift_mop(self, *args) -> 'bool' | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | | value(self, *args) -> 'uint64' | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28086,7 +34203,7 @@ class mop_addr_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -28097,13 +34214,13 @@ class mop_addr_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -28135,10 +34252,10 @@ class mop_pair_t(builtins.object) | list of weak references to the object (if defined) | | hop - | mop_pair_t_hop_get(self) -> mop_t + | hop | | lop - | mop_pair_t_lop_get(self) -> mop_t + | lop | | thisown | The membership flag @@ -28152,17 +34269,29 @@ class mop_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t | __init__(self, rop) -> mop_t + | + | @param rop: mop_t const & + | | __init__(self, _r, _s) -> mop_t + | + | @param _r: mreg_t + | @param _s: int | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -28180,6 +34309,8 @@ class mop_t(builtins.object) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -28230,34 +34361,83 @@ class mop_t(builtins.object) | | _make_blkref(self, *args) -> 'void' | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -28276,90 +34456,217 @@ class mop_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -28369,6 +34676,10 @@ class mop_t(builtins.object) | | equal_mops(self, *args) -> 'bool' | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -28378,64 +34689,121 @@ class mop_t(builtins.object) | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -28443,22 +34811,40 @@ class mop_t(builtins.object) | is_one(self, *args) -> 'bool' | is_one(self) -> bool | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | | is_positive_constant(self, *args) -> 'bool' | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | Is the specified register of the specified size? | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -28471,52 +34857,135 @@ class mop_t(builtins.object) | | is_zero_extended_from(self, *args) -> 'bool' | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' - | make_fpnum(self, bytes, _size) -> bool + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' | make_reg(self, reg) + | + | @param reg: mreg_t + | | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -28526,6 +34995,9 @@ class mop_t(builtins.object) | set_impptr_done(self, *args) -> 'void' | set_impptr_done(self) | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | | set_udt(self, *args) -> 'void' | set_udt(self) | @@ -28534,18 +35006,36 @@ class mop_t(builtins.object) | | shift_mop(self, *args) -> 'bool' | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | | value(self, *args) -> 'uint64' | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28587,7 +35077,7 @@ class mop_t(builtins.object) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -28598,7 +35088,7 @@ class mop_t(builtins.object) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t @@ -28607,7 +35097,7 @@ class mop_t(builtins.object) | The membership flag | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28630,6 +35120,10 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28638,12 +35132,16 @@ class mop_visitor_t(op_parent_info_t) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op, type, is_target) -> int + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: | | prune - | mop_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -28658,16 +35156,16 @@ class mop_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mopvec_t in module ida_hexrays: @@ -28678,13 +35176,19 @@ class mopvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< mop_t > const & | | __getitem__(self, *args) -> 'mop_t const &' | __getitem__(self, i) -> mop_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28694,30 +35198,42 @@ class mopvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mop_t const & | | __swig_destroy__ = delete_mopvec_t(...) | delete_mopvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mop_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: mop_t const & | | at(self, *args) -> 'mop_t const &' | at(self, _idx) -> mop_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mop_t >::const_iterator' | begin(self) -> mop_t - | begin(self) -> mop_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -28730,39 +35246,58 @@ class mopvec_t(builtins.object) | | end(self, *args) -> 'qvector< mop_t >::const_iterator' | end(self) -> mop_t - | end(self) -> mop_t | | erase(self, *args) -> 'qvector< mop_t >::iterator' | erase(self, it) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | | erase(self, first, last) -> mop_t + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator | | extract(self, *args) -> 'mop_t *' | extract(self) -> mop_t | | find(self, *args) -> 'qvector< mop_t >::const_iterator' | find(self, x) -> mop_t - | find(self, x) -> mop_t + | + | @param x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mop_t()) + | + | @param x: mop_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: mop_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: mop_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mop_t >::iterator' | insert(self, it, x) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mop_t &' | push_back(self, x) + | + | @param x: mop_t const & + | | push_back(self) -> mop_t | | qclear(self, *args) -> 'void' @@ -28770,16 +35305,26 @@ class mopvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mop_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< mop_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28805,51 +35350,45 @@ Help on function mreg2reg in module ida_hexrays: mreg2reg(*args) -> 'int' mreg2reg(reg, width) -> int - - Map a microregister to a processor register. - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes @return: processor register id or -1 Help on function must_mcode_close_block in module ida_hexrays: must_mcode_close_block(*args) -> 'bool' must_mcode_close_block(mcode, including_calls) -> bool + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. - - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case because - before MMAT_CALLS they are closing opcodes. - Afteer MMAT_CALLS that are not considered as - closing opcodes. (C++: bool) + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) -> 'mcode_t' negate_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t Help on function negated_relation in module ida_hexrays: negated_relation(*args) -> 'ctype_t' negated_relation(op) -> ctype_t - - Negate a comparison operator. For example, cot_sge becomes cot_slt. - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function new_block in module ida_hexrays: new_block() + Create a new block-statement. Help on class number_format_t in module ida_hexrays: @@ -28860,6 +35399,8 @@ class number_format_t(builtins.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t + | + | @param _opnum: int | | __repr__ = _swig_repr(self) | @@ -28868,33 +35409,50 @@ class number_format_t(builtins.object) | | get_radix(self, *args) -> 'int' | get_radix(self) -> int + | Get number radix + | + | @return: 2,8,10, or 16 + | + | has_unmutable_type(self, *args) -> 'bool' + | has_unmutable_type(self) -> bool | | is_char(self, *args) -> 'bool' | is_char(self) -> bool + | Is a character constant? | | is_dec(self, *args) -> 'bool' | is_dec(self) -> bool + | Is a decimal number? | | is_enum(self, *args) -> 'bool' | is_enum(self) -> bool + | Is a symbolic constant? | | is_fixed(self, *args) -> 'bool' | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler | | is_hex(self, *args) -> 'bool' | is_hex(self) -> bool + | Is a hexadecimal number? | | is_numop(self, *args) -> 'bool' | is_numop(self) -> bool + | Is a number? | | is_oct(self, *args) -> 'bool' | is_oct(self) -> bool + | Is a octal number? | | is_stroff(self, *args) -> 'bool' | is_stroff(self) -> bool + | Is a structure field offset? | | needs_to_be_inverted(self, *args) -> 'bool' | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28906,25 +35464,25 @@ class number_format_t(builtins.object) | list of weak references to the object (if defined) | | flags - | number_format_t_flags_get(self) -> flags_t + | flags | | opnum - | number_format_t_opnum_get(self) -> char + | opnum | | org_nbytes - | number_format_t_org_nbytes_get(self) -> char + | org_nbytes | | props - | number_format_t_props_get(self) -> char + | props | | serial - | number_format_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | type_name - | number_format_t_type_name_get(self) -> qstring * + | type_name Help on class op_parent_info_t in module ida_hexrays: @@ -28935,6 +35493,10 @@ class op_parent_info_t(builtins.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28951,66 +35513,53 @@ class op_parent_info_t(builtins.object) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | mba | | thisown | The membership flag | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on function op_uses_x in module ida_hexrays: op_uses_x(*args) -> 'bool' op_uses_x(op) -> bool + Does operator use the 'x' field of cexpr_t? - - Does operator use the 'x' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_y in module ida_hexrays: op_uses_y(*args) -> 'bool' op_uses_y(op) -> bool + Does operator use the 'y' field of cexpr_t? - - Does operator use the 'y' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_z in module ida_hexrays: op_uses_z(*args) -> 'bool' op_uses_z(op) -> bool + Does operator use the 'z' field of cexpr_t? - - Does operator use the 'z' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function open_pseudocode in module ida_hexrays: open_pseudocode(*args) -> 'vdui_t *' - open_pseudocode(ea, new_window) -> vdui_t + open_pseudocode(ea, flags) -> vdui_t + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. - - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - - @param ea: function to decompile (C++: ea_t) - @param new_window: 0:reuse existing window; 1:open new window; -1: - reuse existing window if the current view is - pseudocode (C++: int) + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -29022,24 +35571,39 @@ class operand_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t + | + | @param _ea: ea_t + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __repr__ = _swig_repr(self) | @@ -29048,6 +35612,8 @@ class operand_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29059,10 +35625,10 @@ class operand_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum | | thisown | The membership flag @@ -29072,48 +35638,6 @@ class operand_locator_t(builtins.object) | | __hash__ = None -Help on class operator_info_t in module ida_hexrays: - -class operator_info_t(builtins.object) - | Proxy of C++ operator_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> operator_info_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_operator_info_t(...) - | delete_operator_info_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fixtype - | operator_info_t_fixtype_get(self) -> uchar - | - | flags - | operator_info_t_flags_get(self) -> uchar - | - | precedence - | operator_info_t_precedence_get(self) -> uchar - | - | text - | operator_info_t_text_get(self) -> char const * - | - | thisown - | The membership flag - | - | valency - | operator_info_t_valency_get(self) -> uchar - Help on class optblock_t in module ida_hexrays: class optblock_t(builtins.object) @@ -29125,6 +35649,8 @@ class optblock_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optblock_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29133,6 +35659,13 @@ class optblock_t(builtins.object) | | func(self, *args) -> 'int' | func(self, blk) -> int + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. | | install(self, *args) -> 'void' | install(self) @@ -29163,6 +35696,8 @@ class optinsn_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optinsn_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29170,7 +35705,23 @@ class optinsn_t(builtins.object) | delete_optinsn_t(self) | | func(self, *args) -> 'int' - | func(self, blk, ins) -> int + | func(self, blk, ins, optflags) -> int + | Optimize an instruction. + | + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) | | install(self, *args) -> 'void' | install(self) @@ -29194,186 +35745,37 @@ Help on function parse_user_call in module ida_hexrays: parse_user_call(*args) -> 'bool' parse_user_call(udc, decl, silent) -> bool - - Convert function type declaration into internal structure - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type @return: success Help on function partial_type_num in module ida_hexrays: partial_type_num(*args) -> 'int' partial_type_num(type) -> int - - Calculate number of partial subtypes. - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. Help on function print_vdloc in module ida_hexrays: print_vdloc(*args) -> 'qstring *' - print_vdloc(loc, nbytes) + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. - - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. - - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) Help on function property_op_to_typename in module ida_hexrays: property_op_to_typename(self) -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(builtins.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_qlist_cinsn_t(...) - | delete_qlist_cinsn_t(self) - | - | back(self, *args) -> 'cinsn_t const &' - | back(self) -> cinsn_t - | back(self) -> cinsn_t - | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) -> 'void' - | clear(self) - | - | empty(self, *args) -> 'bool' - | empty(self) -> bool - | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) - | erase(self, p) - | - | front(self, *args) -> 'cinsn_t const &' - | front(self) -> cinsn_t - | front(self) -> cinsn_t - | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | insert(self, p) -> qlist< cinsn_t >::iterator - | insert(self, p, x) -> qlist_cinsn_t_iterator - | - | pop_back(self, *args) -> 'void' - | pop_back(self) - | - | pop_front(self, *args) -> 'void' - | pop_front(self) - | - | push_back(self, *args) -> 'cinsn_t &' - | push_back(self, x) - | push_back(self) -> cinsn_t - | - | push_front(self, *args) -> 'void' - | push_front(self, x) - | - | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) -> 'size_t' - | size(self) -> size_t - | - | swap(self, *args) -> 'void' - | swap(self, x) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(builtins.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | - | __next__(self, *args) -> 'void' - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_qlist_cinsn_t_iterator(...) - | delete_qlist_cinsn_t_iterator(self) - | - | next = __next__(self, *args) -> 'void' - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - Help on class qstring_printer_t in module ida_hexrays: class qstring_printer_t(vc_printer_t) @@ -29389,11 +35791,19 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t + | + | @param f: cfunc_t const * + | @param tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * | | get_s(self, *args) -> 'qstring' | get_s(self) -> qstring @@ -29407,7 +35817,7 @@ class qstring_printer_t(vc_printer_t) | The membership flag | | with_tags - | qstring_printer_t_with_tags_get(self) -> bool + | with_tags | | ---------------------------------------------------------------------- | Methods inherited from vc_printer_t: @@ -29419,15 +35829,18 @@ class qstring_printer_t(vc_printer_t) | | oneliner(self, *args) -> 'bool' | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -29439,15 +35852,18 @@ class qstring_printer_t(vc_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on function qswap in module ida_hexrays: qswap(*args) -> 'void' qswap(a, b) + + @param a: cinsn_t & + @param b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -29458,13 +35874,19 @@ class qvector_carg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< carg_t > const & | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29473,20 +35895,31 @@ class qvector_carg_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & | | __swig_destroy__ = delete_qvector_carg_t(...) | delete_qvector_carg_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | @@ -29497,7 +35930,6 @@ class qvector_carg_t(builtins.object) | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29510,39 +35942,58 @@ class qvector_carg_t(builtins.object) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | find(self, x) -> carg_t + | + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) + | + | @param x: carg_t const & + | | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' @@ -29550,16 +36001,26 @@ class qvector_carg_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29590,13 +36051,19 @@ class qvector_ccase_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29605,20 +36072,31 @@ class qvector_ccase_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & | | __swig_destroy__ = delete_qvector_ccase_t(...) | delete_qvector_ccase_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | @@ -29629,7 +36107,6 @@ class qvector_ccase_t(builtins.object) | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29642,39 +36119,58 @@ class qvector_ccase_t(builtins.object) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | find(self, x) -> ccase_t + | + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) + | + | @param x: ccase_t const & + | | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' @@ -29682,16 +36178,26 @@ class qvector_ccase_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29722,13 +36228,19 @@ class qvector_history_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29738,30 +36250,42 @@ class qvector_history_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & | | __swig_destroy__ = delete_qvector_history_t(...) | delete_qvector_history_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: history_item_t const & | | at(self, *args) -> 'history_item_t const &' | at(self, _idx) -> history_item_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29774,39 +36298,58 @@ class qvector_history_t(builtins.object) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | find(self, x) -> history_item_t + | + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) + | + | @param x: history_item_t const & + | | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' @@ -29814,16 +36357,26 @@ class qvector_history_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29854,13 +36407,19 @@ class qvector_lvar_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29869,20 +36428,31 @@ class qvector_lvar_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & | | __swig_destroy__ = delete_qvector_lvar_t(...) | delete_qvector_lvar_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | @@ -29893,7 +36463,6 @@ class qvector_lvar_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29906,39 +36475,58 @@ class qvector_lvar_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t | | find(self, *args) -> 'qvector< lvar_t >::const_iterator' | find(self, x) -> lvar_t - | find(self, x) -> lvar_t + | + | @param x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) + | + | @param x: lvar_t const & + | | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' @@ -29946,16 +36534,26 @@ class qvector_lvar_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29981,107 +36579,115 @@ Help on function reg2mreg in module ida_hexrays: reg2mreg(*args) -> 'mreg_t' reg2mreg(reg) -> mreg_t - - Map a processor register to a microregister. - @param reg: processor register number (C++: int) + @param reg: (C++: int) processor register number @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) -> 'void' remitem(e) + + @param e: citem_t const * Help on function remove_hexrays_callback in module ida_hexrays: remove_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. + +Help on function rename_lvar in module ida_hexrays: + +rename_lvar(*args) -> 'bool' + rename_lvar(func_ea, oldname, newname) -> bool + Rename a local variable. + + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. Help on function restore_user_cmts in module ida_hexrays: restore_user_cmts(*args) -> 'user_cmts_t *' restore_user_cmts(func_ea) -> user_cmts_t - - Restore user defined comments from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() Help on function restore_user_defined_calls in module ida_hexrays: restore_user_defined_calls(*args) -> 'bool' restore_user_defined_calls(udcalls, func_ea) -> bool - - Restore user defined function calls from the database. - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function @return: success Help on function restore_user_iflags in module ida_hexrays: restore_user_iflags(*args) -> 'user_iflags_t *' restore_user_iflags(func_ea) -> user_iflags_t - - Restore user defined citem iflags from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() Help on function restore_user_labels in module ida_hexrays: restore_user_labels(*args) -> 'user_labels_t *' restore_user_labels(func_ea) -> user_labels_t - - Restore user defined labels from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() + +Help on function restore_user_labels2 in module ida_hexrays: + +restore_user_labels2(*args) -> 'user_labels_t *' + restore_user_labels2(func_ea, func=None) -> user_labels_t + + @param func_ea: ea_t + @param func: cfunc_t const * Help on function restore_user_lvar_settings in module ida_hexrays: restore_user_lvar_settings(*args) -> 'bool' restore_user_lvar_settings(lvinf, func_ea) -> bool - - Restore user defined local variable settings in the database. - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function @return: success Help on function restore_user_numforms in module ida_hexrays: restore_user_numforms(*args) -> 'user_numforms_t *' restore_user_numforms(func_ea) -> user_numforms_t - - Restore user defined number formats from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() Help on function restore_user_unions in module ida_hexrays: restore_user_unions(*args) -> 'user_unions_t *' restore_user_unions(func_ea) -> user_unions_t - - Restore user defined union field selections from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() Help on class rlist_t in module ida_hexrays: @@ -30098,7 +36704,13 @@ class rlist_t(bitset_t) | __init__(self, *args) | __init__(self) -> rlist_t | __init__(self, m) -> rlist_t + | + | @param m: rlist_t const & + | | __init__(self, reg, width) -> rlist_t + | + | @param reg: mreg_t + | @param width: int | | __repr__ = _swig_repr(self) | @@ -30119,110 +36731,179 @@ class rlist_t(bitset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | count(self) -> int | count(self, bit) -> int + | + | @param bit: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bitset_t const & | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | + | @param bit: int + | | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | add(self, ml) -> bool + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int | | begin(self, *args) -> 'bitset_t::iterator' - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | + | @param maxbit: int | | empty(self, *args) -> 'bool' | empty(self) -> bool | | end(self, *args) -> 'bitset_t::iterator' - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | + | @param bit: int + | | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | sub(self, ml) -> bool + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -30242,85 +36923,73 @@ Help on function save_user_cmts in module ida_hexrays: save_user_cmts(*args) -> 'void' save_user_cmts(func_ea, user_cmts) - - Save user defined comments into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments Help on function save_user_defined_calls in module ida_hexrays: save_user_defined_calls(*args) -> 'void' save_user_defined_calls(func_ea, udcalls) - - Save user defined local function calls into the database. - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls Help on function save_user_iflags in module ida_hexrays: save_user_iflags(*args) -> 'void' save_user_iflags(func_ea, iflags) - - Save user defined citem iflags into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags Help on function save_user_labels in module ida_hexrays: save_user_labels(*args) -> 'void' save_user_labels(func_ea, user_labels) - - Save user defined labels into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels + +Help on function save_user_labels2 in module ida_hexrays: + +save_user_labels2(*args) -> 'void' + save_user_labels2(func_ea, user_labels, func=None) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * Help on function save_user_lvar_settings in module ida_hexrays: save_user_lvar_settings(*args) -> 'void' save_user_lvar_settings(func_ea, lvinf) - - Save user defined local variable settings into the database. - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables Help on function save_user_numforms in module ida_hexrays: save_user_numforms(*args) -> 'void' save_user_numforms(func_ea, numforms) - - Save user defined number formats into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments Help on function save_user_unions in module ida_hexrays: save_user_unions(*args) -> 'void' save_user_unions(func_ea, unions) - - Save user defined union field selections into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections Help on class scif_t in module ida_hexrays: @@ -30336,7 +37005,11 @@ class scif_t(vdloc_t) | Methods defined here: | | __init__(self, *args) - | __init__(self, _mba, n, tif) -> scif_t + | __init__(self, _mba, tif, n=None) -> scif_t + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * | | __repr__ = _swig_repr(self) | @@ -30347,52 +37020,75 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mbl_array_t + | mba | | name - | scif_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | scif_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from vdloc_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data and other attributes inherited from vdloc_t: @@ -30404,131 +37100,220 @@ class scif_t(vdloc_t) | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -30550,6 +37335,8 @@ class scif_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30558,6 +37345,9 @@ class scif_visitor_t(builtins.object) | | visit_scif_mop(self, *args) -> 'int' | visit_scif_mop(self, r, off) -> int + | + | @param r: mop_t const & + | @param off: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30575,82 +37365,198 @@ Help on function select_udt_by_offset in module ida_hexrays: select_udt_by_offset(*args) -> 'int' select_udt_by_offset(udts, ops, applicator) -> int - - Select UDT - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) callback will be called to apply the selection for every + operand Help on function send_database in module ida_hexrays: send_database(*args) -> 'void' send_database(err, silent) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. - - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. Help on function set2jcnd in module ida_hexrays: set2jcnd(*args) -> 'mcode_t' set2jcnd(code) -> mcode_t + + @param code: enum mcode_t Help on function set_type in module ida_hexrays: set_type(*args) -> 'bool' set_type(id, tif, source, force=False) -> bool - - Set a global type. - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. @return: success Help on class simple_graph_t in module ida_hexrays: -class simple_graph_t(builtins.object) +class simple_graph_t(ida_gdl.gdl_graph_t) | Proxy of C++ simple_graph_t class. | + | Method resolution order: + | simple_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | | Methods defined here: | | __init__(self, *args, **kwargs) - | Initialize self. See help(type(self)) for accurate signature. + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | thisown | The membership flag | | title - | simple_graph_t_title_get(self) -> qstring * + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) Help on class stkvar_ref_t in module ida_hexrays: @@ -30661,24 +37567,39 @@ class stkvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t + | + | @param m: mba_t * + | @param o: sval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -30687,12 +37608,20 @@ class stkvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: stkvar_ref_t const & | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off=None) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: stkvar_ref_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30704,10 +37633,10 @@ class stkvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mbl_array_t + | mba | | off - | stkvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -30721,24 +37650,21 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) -> 'mcode_t' swap_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t Help on function swapped_relation in module ida_hexrays: swapped_relation(*args) -> 'ctype_t' swapped_relation(op) -> ctype_t - - Swap a comparison operator. For example, cot_sge becomes cot_sle. - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function term_hexrays_plugin in module ida_hexrays: term_hexrays_plugin(*args) -> 'void' term_hexrays_plugin() - - Stop working with hex-rays decompiler. Help on class treeloc_t in module ida_hexrays: @@ -30750,12 +37676,16 @@ class treeloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -30772,10 +37702,10 @@ class treeloc_t(builtins.object) | list of weak references to the object (if defined) | | ea - | treeloc_t_ea_get(self) -> ea_t + | ea | | itp - | treeloc_t_itp_get(self) -> item_preciser_t + | itp | | thisown | The membership flag @@ -30801,6 +37731,8 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30809,12 +37741,37 @@ class udc_filter_t(microcode_filter_t) | | apply(self, *args) -> 'merror_t' | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | init(self, *args) -> 'bool' | init(self, decl) -> bool + | + | @param decl: char const * + | + | install(self, *args) -> 'void' + | install(self) | | match(self, *args) -> 'bool' | match(self, cdg) -> bool + | return true if the filter object should be applied to given instruction + | + | @param cdg: (C++: codegen_t &) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30835,93 +37792,69 @@ Help on function udcall_map_begin in module ida_hexrays: udcall_map_begin(*args) -> 'udcall_map_iterator_t' udcall_map_begin(map) -> udcall_map_iterator_t - - Get iterator pointing to the beginning of udcall_map_t. - - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_clear in module ida_hexrays: udcall_map_clear(*args) -> 'void' udcall_map_clear(map) - - Clear udcall_map_t. - - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_end in module ida_hexrays: udcall_map_end(*args) -> 'udcall_map_iterator_t' udcall_map_end(map) -> udcall_map_iterator_t - - Get iterator pointing to the end of udcall_map_t. - - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_erase in module ida_hexrays: udcall_map_erase(*args) -> 'void' udcall_map_erase(map, p) - - Erase current element from udcall_map_t. - - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_find in module ida_hexrays: udcall_map_find(*args) -> 'udcall_map_iterator_t' udcall_map_find(map, key) -> udcall_map_iterator_t - - Find the specified key in udcall_map_t. - - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function udcall_map_first in module ida_hexrays: udcall_map_first(*args) -> 'ea_t const &' udcall_map_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_free in module ida_hexrays: udcall_map_free(*args) -> 'void' udcall_map_free(map) - - Delete udcall_map_t instance. - - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_insert in module ida_hexrays: udcall_map_insert(*args) -> 'udcall_map_iterator_t' udcall_map_insert(map, key, val) -> udcall_map_iterator_t + Insert new (ea_t, udcall_t) pair into udcall_map_t. - - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - - - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & Help on class udcall_map_iterator_t in module ida_hexrays: @@ -30932,12 +37865,16 @@ class udcall_map_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -30957,7 +37894,7 @@ class udcall_map_iterator_t(builtins.object) | The membership flag | | x - | udcall_map_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -30968,53 +37905,39 @@ Help on function udcall_map_new in module ida_hexrays: udcall_map_new(*args) -> 'udcall_map_t *' udcall_map_new() -> udcall_map_t * - - Create a new udcall_map_t instance. Help on function udcall_map_next in module ida_hexrays: udcall_map_next(*args) -> 'udcall_map_iterator_t' udcall_map_next(p) -> udcall_map_iterator_t - - Move to the next element. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_prev in module ida_hexrays: udcall_map_prev(*args) -> 'udcall_map_iterator_t' udcall_map_prev(p) -> udcall_map_iterator_t - - Move to the previous element. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_second in module ida_hexrays: udcall_map_second(*args) -> 'udcall_t &' udcall_map_second(p) -> udcall_t - - Get reference to the current map value. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_size in module ida_hexrays: udcall_map_size(*args) -> 'size_t' udcall_map_size(map) -> size_t - - Get size of udcall_map_t. - - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -31025,24 +37948,36 @@ class udcall_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: udcall_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: udcall_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: udcall_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: udcall_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: udcall_t const & | | __repr__ = _swig_repr(self) | @@ -31051,6 +37986,11 @@ class udcall_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: udcall_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31062,13 +38002,13 @@ class udcall_t(builtins.object) | list of weak references to the object (if defined) | | name - | udcall_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | udcall_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31086,6 +38026,8 @@ class ui_stroff_applicator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -31093,7 +38035,12 @@ class ui_stroff_applicator_t(builtins.object) | delete_ui_stroff_applicator_t(self) | | apply(self, *args) -> 'bool' - | apply(self, opnum, path) -> bool + | apply(self, opnum, path, top_tif, spath) -> bool + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31116,12 +38063,16 @@ class ui_stroff_op_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -31138,10 +38089,10 @@ class ui_stroff_op_t(builtins.object) | list of weak references to the object (if defined) | | offset - | ui_stroff_op_t_offset_get(self) -> uval_t + | offset | | text - | ui_stroff_op_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -31160,13 +38111,19 @@ class ui_stroff_ops_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) -> 'ui_stroff_op_t const &' | __getitem__(self, i) -> ui_stroff_op_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -31175,20 +38132,31 @@ class ui_stroff_ops_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ui_stroff_op_t const & | | __swig_destroy__ = delete_ui_stroff_ops_t(...) | delete_ui_stroff_ops_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ui_stroff_op_t const & | | append = push_back(self, *args) -> 'ui_stroff_op_t &' | @@ -31199,7 +38167,6 @@ class ui_stroff_ops_t(builtins.object) | | begin(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -31212,39 +38179,58 @@ class ui_stroff_ops_t(builtins.object) | | end(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t | | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | erase(self, it) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | | erase(self, first, last) -> ui_stroff_op_t + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) -> 'ui_stroff_op_t *' | extract(self) -> ui_stroff_op_t | | find(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | find(self, x) -> ui_stroff_op_t - | find(self, x) -> ui_stroff_op_t + | + | @param x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ui_stroff_op_t()) + | + | @param x: ui_stroff_op_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ui_stroff_op_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ui_stroff_op_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | insert(self, it, x) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ui_stroff_op_t &' | push_back(self, x) + | + | @param x: ui_stroff_op_t const & + | | push_back(self) -> ui_stroff_op_t | | qclear(self, *args) -> 'void' @@ -31252,16 +38238,26 @@ class ui_stroff_ops_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ui_stroff_op_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -31287,93 +38283,69 @@ Help on function user_cmts_begin in module ida_hexrays: user_cmts_begin(*args) -> 'user_cmts_iterator_t' user_cmts_begin(map) -> user_cmts_iterator_t - - Get iterator pointing to the beginning of user_cmts_t. - - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_clear in module ida_hexrays: user_cmts_clear(*args) -> 'void' user_cmts_clear(map) - - Clear user_cmts_t. - - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_end in module ida_hexrays: user_cmts_end(*args) -> 'user_cmts_iterator_t' user_cmts_end(map) -> user_cmts_iterator_t - - Get iterator pointing to the end of user_cmts_t. - - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_erase in module ida_hexrays: user_cmts_erase(*args) -> 'void' user_cmts_erase(map, p) - - Erase current element from user_cmts_t. - - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_find in module ida_hexrays: user_cmts_find(*args) -> 'user_cmts_iterator_t' user_cmts_find(map, key) -> user_cmts_iterator_t - - Find the specified key in user_cmts_t. - - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & Help on function user_cmts_first in module ida_hexrays: user_cmts_first(*args) -> 'treeloc_t const &' user_cmts_first(p) -> treeloc_t - - Get reference to the current map key. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_free in module ida_hexrays: user_cmts_free(*args) -> 'void' user_cmts_free(map) - - Delete user_cmts_t instance. - - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_insert in module ida_hexrays: user_cmts_insert(*args) -> 'user_cmts_iterator_t' user_cmts_insert(map, key, val) -> user_cmts_iterator_t + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. - - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - - - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & Help on class user_cmts_iterator_t in module ida_hexrays: @@ -31384,12 +38356,16 @@ class user_cmts_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31409,7 +38385,7 @@ class user_cmts_iterator_t(builtins.object) | The membership flag | | x - | user_cmts_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31420,53 +38396,39 @@ Help on function user_cmts_new in module ida_hexrays: user_cmts_new(*args) -> 'user_cmts_t *' user_cmts_new() -> user_cmts_t - - Create a new user_cmts_t instance. Help on function user_cmts_next in module ida_hexrays: user_cmts_next(*args) -> 'user_cmts_iterator_t' user_cmts_next(p) -> user_cmts_iterator_t - - Move to the next element. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_prev in module ida_hexrays: user_cmts_prev(*args) -> 'user_cmts_iterator_t' user_cmts_prev(p) -> user_cmts_iterator_t - - Move to the previous element. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_second in module ida_hexrays: user_cmts_second(*args) -> 'citem_cmt_t &' user_cmts_second(p) -> citem_cmt_t - - Get reference to the current map value. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_size in module ida_hexrays: user_cmts_size(*args) -> 'size_t' user_cmts_size(map) -> size_t - - Get size of user_cmts_t. - - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -31477,9 +38439,17 @@ class user_cmts_t(builtins.object) | | __begin = user_cmts_begin(...) | user_cmts_begin(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __clear = user_cmts_clear(...) | user_cmts_clear(map) + | + | Parameters + | ---------- + | map: user_cmts_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -31489,15 +38459,33 @@ class user_cmts_t(builtins.object) | | __end = user_cmts_end(...) | user_cmts_end(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __erase = user_cmts_erase(...) | user_cmts_erase(map, p) + | + | Parameters + | ---------- + | map: user_cmts_t * + | p: user_cmts_iterator_t | | __find = user_cmts_find(...) | user_cmts_find(map, key) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | key: treeloc_t const & | | __first = user_cmts_first(...) | user_cmts_first(p) -> treeloc_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -31507,6 +38495,12 @@ class user_cmts_t(builtins.object) | | __insert = user_cmts_insert(...) | user_cmts_insert(map, key, val) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t * + | key: treeloc_t const & + | val: citem_cmt_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -31516,23 +38510,37 @@ class user_cmts_t(builtins.object) | | __next = user_cmts_next(...) | user_cmts_next(p) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_cmts_second(...) | user_cmts_second(p) -> citem_cmt_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_cmts_size(...) | user_cmts_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_cmts_t * | | __swig_destroy__ = delete_user_cmts_t(...) | delete_user_cmts_t(self) | | at(self, *args) -> 'citem_cmt_t &' | at(self, _Keyval) -> citem_cmt_t + | + | @param _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -31606,93 +38614,69 @@ Help on function user_iflags_begin in module ida_hexrays: user_iflags_begin(*args) -> 'user_iflags_iterator_t' user_iflags_begin(map) -> user_iflags_iterator_t - - Get iterator pointing to the beginning of user_iflags_t. - - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_clear in module ida_hexrays: user_iflags_clear(*args) -> 'void' user_iflags_clear(map) - - Clear user_iflags_t. - - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_end in module ida_hexrays: user_iflags_end(*args) -> 'user_iflags_iterator_t' user_iflags_end(map) -> user_iflags_iterator_t - - Get iterator pointing to the end of user_iflags_t. - - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_erase in module ida_hexrays: user_iflags_erase(*args) -> 'void' user_iflags_erase(map, p) - - Erase current element from user_iflags_t. - - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_find in module ida_hexrays: user_iflags_find(*args) -> 'user_iflags_iterator_t' user_iflags_find(map, key) -> user_iflags_iterator_t - - Find the specified key in user_iflags_t. - - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & Help on function user_iflags_first in module ida_hexrays: user_iflags_first(*args) -> 'citem_locator_t const &' user_iflags_first(p) -> citem_locator_t - - Get reference to the current map key. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_free in module ida_hexrays: user_iflags_free(*args) -> 'void' user_iflags_free(map) - - Delete user_iflags_t instance. - - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_insert in module ida_hexrays: user_iflags_insert(*args) -> 'user_iflags_iterator_t' user_iflags_insert(map, key, val) -> user_iflags_iterator_t + Insert new (citem_locator_t, int32) pair into user_iflags_t. - - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - - - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & Help on class user_iflags_iterator_t in module ida_hexrays: @@ -31703,12 +38687,16 @@ class user_iflags_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31728,7 +38716,7 @@ class user_iflags_iterator_t(builtins.object) | The membership flag | | x - | user_iflags_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31739,53 +38727,39 @@ Help on function user_iflags_new in module ida_hexrays: user_iflags_new(*args) -> 'user_iflags_t *' user_iflags_new() -> user_iflags_t - - Create a new user_iflags_t instance. Help on function user_iflags_next in module ida_hexrays: user_iflags_next(*args) -> 'user_iflags_iterator_t' user_iflags_next(p) -> user_iflags_iterator_t - - Move to the next element. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_prev in module ida_hexrays: user_iflags_prev(*args) -> 'user_iflags_iterator_t' user_iflags_prev(p) -> user_iflags_iterator_t - - Move to the previous element. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_second in module ida_hexrays: user_iflags_second(*args) -> 'int32 const &' user_iflags_second(p) -> int32 const & - - Get reference to the current map value. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_size in module ida_hexrays: user_iflags_size(*args) -> 'size_t' user_iflags_size(map) -> size_t - - Get size of user_iflags_t. - - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -31796,9 +38770,17 @@ class user_iflags_t(builtins.object) | | __begin = user_iflags_begin(...) | user_iflags_begin(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __clear = user_iflags_clear(...) | user_iflags_clear(map) + | + | Parameters + | ---------- + | map: user_iflags_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -31808,15 +38790,33 @@ class user_iflags_t(builtins.object) | | __end = user_iflags_end(...) | user_iflags_end(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __erase = user_iflags_erase(...) | user_iflags_erase(map, p) + | + | Parameters + | ---------- + | map: user_iflags_t * + | p: user_iflags_iterator_t | | __find = user_iflags_find(...) | user_iflags_find(map, key) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | key: citem_locator_t const & | | __first = user_iflags_first(...) | user_iflags_first(p) -> citem_locator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -31826,6 +38826,12 @@ class user_iflags_t(builtins.object) | | __insert = user_iflags_insert(...) | user_iflags_insert(map, key, val) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | key: citem_locator_t const & + | val: int32 const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -31835,23 +38841,37 @@ class user_iflags_t(builtins.object) | | __next = user_iflags_next(...) | user_iflags_next(p) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_iflags_second(...) | user_iflags_second(p) -> int32 const & + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_iflags_size(...) | user_iflags_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_iflags_t * | | __swig_destroy__ = delete_user_iflags_t(...) | delete_user_iflags_t(self) | | at(self, *args) -> 'int &' | at(self, _Keyval) -> int & + | + | @param _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -31938,93 +38958,69 @@ Help on function user_labels_begin in module ida_hexrays: user_labels_begin(*args) -> 'user_labels_iterator_t' user_labels_begin(map) -> user_labels_iterator_t - - Get iterator pointing to the beginning of user_labels_t. - - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_clear in module ida_hexrays: user_labels_clear(*args) -> 'void' user_labels_clear(map) - - Clear user_labels_t. - - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_end in module ida_hexrays: user_labels_end(*args) -> 'user_labels_iterator_t' user_labels_end(map) -> user_labels_iterator_t - - Get iterator pointing to the end of user_labels_t. - - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_erase in module ida_hexrays: user_labels_erase(*args) -> 'void' user_labels_erase(map, p) - - Erase current element from user_labels_t. - - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_find in module ida_hexrays: user_labels_find(*args) -> 'user_labels_iterator_t' user_labels_find(map, key) -> user_labels_iterator_t - - Find the specified key in user_labels_t. - - @param map (C++: const user_labels_t *) - @param key (C++: const int &) + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & Help on function user_labels_first in module ida_hexrays: user_labels_first(*args) -> 'int const &' user_labels_first(p) -> int const & - - Get reference to the current map key. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_free in module ida_hexrays: user_labels_free(*args) -> 'void' user_labels_free(map) - - Delete user_labels_t instance. - - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_insert in module ida_hexrays: user_labels_insert(*args) -> 'user_labels_iterator_t' user_labels_insert(map, key, val) -> user_labels_iterator_t - - Insert new (int, qstring) pair into user_labels_t. - - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & Help on class user_labels_iterator_t in module ida_hexrays: @@ -32035,12 +39031,16 @@ class user_labels_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32060,7 +39060,7 @@ class user_labels_iterator_t(builtins.object) | The membership flag | | x - | user_labels_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32071,53 +39071,39 @@ Help on function user_labels_new in module ida_hexrays: user_labels_new(*args) -> 'user_labels_t *' user_labels_new() -> user_labels_t - - Create a new user_labels_t instance. Help on function user_labels_next in module ida_hexrays: user_labels_next(*args) -> 'user_labels_iterator_t' user_labels_next(p) -> user_labels_iterator_t - - Move to the next element. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_prev in module ida_hexrays: user_labels_prev(*args) -> 'user_labels_iterator_t' user_labels_prev(p) -> user_labels_iterator_t - - Move to the previous element. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_second in module ida_hexrays: user_labels_second(*args) -> 'qstring &' user_labels_second(p) -> qstring & - - Get reference to the current map value. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_size in module ida_hexrays: user_labels_size(*args) -> 'size_t' user_labels_size(map) -> size_t - - Get size of user_labels_t. - - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -32136,6 +39122,8 @@ class user_labels_t(builtins.object) | | at(self, *args) -> '_qstring< char > &' | at(self, _Keyval) -> _qstring< char > & + | + | @param _Keyval: int const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -32163,6 +39151,8 @@ class user_lvar_modifier_t(builtins.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -32171,6 +39161,9 @@ class user_lvar_modifier_t(builtins.object) | | modify_lvars(self, *args) -> 'bool' | modify_lvars(self, lvinf) -> bool + | Modify lvar settings. Returns: true-modified + | + | @param lvinf: (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32188,94 +39181,69 @@ Help on function user_numforms_begin in module ida_hexrays: user_numforms_begin(*args) -> 'user_numforms_iterator_t' user_numforms_begin(map) -> user_numforms_iterator_t - - Get iterator pointing to the beginning of user_numforms_t. - - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_clear in module ida_hexrays: user_numforms_clear(*args) -> 'void' user_numforms_clear(map) - - Clear user_numforms_t. - - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_end in module ida_hexrays: user_numforms_end(*args) -> 'user_numforms_iterator_t' user_numforms_end(map) -> user_numforms_iterator_t - - Get iterator pointing to the end of user_numforms_t. - - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_erase in module ida_hexrays: user_numforms_erase(*args) -> 'void' user_numforms_erase(map, p) - - Erase current element from user_numforms_t. - - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_find in module ida_hexrays: user_numforms_find(*args) -> 'user_numforms_iterator_t' user_numforms_find(map, key) -> user_numforms_iterator_t - - Find the specified key in user_numforms_t. - - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & Help on function user_numforms_first in module ida_hexrays: user_numforms_first(*args) -> 'operand_locator_t const &' user_numforms_first(p) -> operand_locator_t - - Get reference to the current map key. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_free in module ida_hexrays: user_numforms_free(*args) -> 'void' user_numforms_free(map) - - Delete user_numforms_t instance. - - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_insert in module ida_hexrays: user_numforms_insert(*args) -> 'user_numforms_iterator_t' user_numforms_insert(map, key, val) -> user_numforms_iterator_t + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. - - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - - - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & Help on class user_numforms_iterator_t in module ida_hexrays: @@ -32286,12 +39254,16 @@ class user_numforms_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32311,7 +39283,7 @@ class user_numforms_iterator_t(builtins.object) | The membership flag | | x - | user_numforms_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32322,53 +39294,39 @@ Help on function user_numforms_new in module ida_hexrays: user_numforms_new(*args) -> 'user_numforms_t *' user_numforms_new() -> user_numforms_t - - Create a new user_numforms_t instance. Help on function user_numforms_next in module ida_hexrays: user_numforms_next(*args) -> 'user_numforms_iterator_t' user_numforms_next(p) -> user_numforms_iterator_t - - Move to the next element. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_prev in module ida_hexrays: user_numforms_prev(*args) -> 'user_numforms_iterator_t' user_numforms_prev(p) -> user_numforms_iterator_t - - Move to the previous element. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_second in module ida_hexrays: user_numforms_second(*args) -> 'number_format_t &' user_numforms_second(p) -> number_format_t - - Get reference to the current map value. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_size in module ida_hexrays: user_numforms_size(*args) -> 'size_t' user_numforms_size(map) -> size_t - - Get size of user_numforms_t. - - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -32379,9 +39337,17 @@ class user_numforms_t(builtins.object) | | __begin = user_numforms_begin(...) | user_numforms_begin(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __clear = user_numforms_clear(...) | user_numforms_clear(map) + | + | Parameters + | ---------- + | map: user_numforms_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -32391,15 +39357,33 @@ class user_numforms_t(builtins.object) | | __end = user_numforms_end(...) | user_numforms_end(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __erase = user_numforms_erase(...) | user_numforms_erase(map, p) + | + | Parameters + | ---------- + | map: user_numforms_t * + | p: user_numforms_iterator_t | | __find = user_numforms_find(...) | user_numforms_find(map, key) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | key: operand_locator_t const & | | __first = user_numforms_first(...) | user_numforms_first(p) -> operand_locator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -32409,6 +39393,12 @@ class user_numforms_t(builtins.object) | | __insert = user_numforms_insert(...) | user_numforms_insert(map, key, val) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t * + | key: operand_locator_t const & + | val: number_format_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -32418,23 +39408,37 @@ class user_numforms_t(builtins.object) | | __next = user_numforms_next(...) | user_numforms_next(p) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_numforms_second(...) | user_numforms_second(p) -> number_format_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_numforms_size(...) | user_numforms_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_numforms_t * | | __swig_destroy__ = delete_user_numforms_t(...) | delete_user_numforms_t(self) | | at(self, *args) -> 'number_format_t &' | at(self, _Keyval) -> number_format_t + | + | @param _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -32508,93 +39512,69 @@ Help on function user_unions_begin in module ida_hexrays: user_unions_begin(*args) -> 'user_unions_iterator_t' user_unions_begin(map) -> user_unions_iterator_t - - Get iterator pointing to the beginning of user_unions_t. - - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_clear in module ida_hexrays: user_unions_clear(*args) -> 'void' user_unions_clear(map) - - Clear user_unions_t. - - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_end in module ida_hexrays: user_unions_end(*args) -> 'user_unions_iterator_t' user_unions_end(map) -> user_unions_iterator_t - - Get iterator pointing to the end of user_unions_t. - - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_erase in module ida_hexrays: user_unions_erase(*args) -> 'void' user_unions_erase(map, p) - - Erase current element from user_unions_t. - - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_find in module ida_hexrays: user_unions_find(*args) -> 'user_unions_iterator_t' user_unions_find(map, key) -> user_unions_iterator_t - - Find the specified key in user_unions_t. - - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function user_unions_first in module ida_hexrays: user_unions_first(*args) -> 'ea_t const &' user_unions_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_free in module ida_hexrays: user_unions_free(*args) -> 'void' user_unions_free(map) - - Delete user_unions_t instance. - - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_insert in module ida_hexrays: user_unions_insert(*args) -> 'user_unions_iterator_t' user_unions_insert(map, key, val) -> user_unions_iterator_t - - Insert new (ea_t, intvec_t) pair into user_unions_t. - - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & Help on class user_unions_iterator_t in module ida_hexrays: @@ -32605,12 +39585,16 @@ class user_unions_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32630,7 +39614,7 @@ class user_unions_iterator_t(builtins.object) | The membership flag | | x - | user_unions_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32641,53 +39625,39 @@ Help on function user_unions_new in module ida_hexrays: user_unions_new(*args) -> 'user_unions_t *' user_unions_new() -> user_unions_t - - Create a new user_unions_t instance. Help on function user_unions_next in module ida_hexrays: user_unions_next(*args) -> 'user_unions_iterator_t' user_unions_next(p) -> user_unions_iterator_t - - Move to the next element. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_prev in module ida_hexrays: user_unions_prev(*args) -> 'user_unions_iterator_t' user_unions_prev(p) -> user_unions_iterator_t - - Move to the previous element. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_second in module ida_hexrays: user_unions_second(*args) -> 'intvec_t &' user_unions_second(p) -> intvec_t - - Get reference to the current map value. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_size in module ida_hexrays: user_unions_size(*args) -> 'size_t' user_unions_size(map) -> size_t - - Get size of user_unions_t. - - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -32698,9 +39668,17 @@ class user_unions_t(builtins.object) | | __begin = user_unions_begin(...) | user_unions_begin(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __clear = user_unions_clear(...) | user_unions_clear(map) + | + | Parameters + | ---------- + | map: user_unions_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -32710,15 +39688,33 @@ class user_unions_t(builtins.object) | | __end = user_unions_end(...) | user_unions_end(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __erase = user_unions_erase(...) | user_unions_erase(map, p) + | + | Parameters + | ---------- + | map: user_unions_t * + | p: user_unions_iterator_t | | __find = user_unions_find(...) | user_unions_find(map, key) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | key: ea_t const & | | __first = user_unions_first(...) | user_unions_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -32728,6 +39724,12 @@ class user_unions_t(builtins.object) | | __insert = user_unions_insert(...) | user_unions_insert(map, key, val) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t * + | key: ea_t const & + | val: intvec_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -32737,23 +39739,37 @@ class user_unions_t(builtins.object) | | __next = user_unions_next(...) | user_unions_next(p) -> user_unions_iterator_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_unions_second(...) | user_unions_second(p) -> intvec_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_unions_size(...) | user_unions_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_unions_t * | | __swig_destroy__ = delete_user_unions_t(...) | delete_user_unions_t(self) | | at(self, *args) -> 'qvector< int > &' | at(self, _Keyval) -> intvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -32831,13 +39847,19 @@ class uval_ivl_ivlset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, v) -> bool + | + | @param v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, v) -> bool + | + | @param v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -32863,6 +39885,8 @@ class uval_ivl_ivlset_t(builtins.object) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -32877,10 +39901,15 @@ class uval_ivl_ivlset_t(builtins.object) | set_all_values(self) | | single_value(self, *args) -> 'bool' + | single_value(self) -> bool | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32908,6 +39937,9 @@ class uval_ivl_t(builtins.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -32933,10 +39965,10 @@ class uval_ivl_t(builtins.object) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size | | thisown | The membership flag @@ -32950,25 +39982,42 @@ class valrng_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: valrng_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: valrng_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | + | @param size_: int + | | __init__(self, r) -> valrng_t + | + | @param r: valrng_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: valrng_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: valrng_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -32989,9 +40038,13 @@ class valrng_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: valrng_t const & | | cvt_to_cmp(self, *args) -> 'bool' | cvt_to_cmp(self, strict) -> bool + | + | @param strict: bool | | cvt_to_single_value(self, *args) -> 'bool' | cvt_to_single_value(self) -> bool @@ -33007,9 +40060,13 @@ class valrng_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, v) -> bool + | + | @param v: uvlr_t | | intersect_with(self, *args) -> 'bool' | intersect_with(self, r) -> bool + | + | @param r: valrng_t const & | | inverse(self, *args) -> 'void' | inverse(self) @@ -33019,27 +40076,43 @@ class valrng_t(builtins.object) | | max_svalue(self, *args) -> 'uvlr_t' | max_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | | max_svalue(self) -> uvlr_t | | max_value(self, *args) -> 'uvlr_t' | max_value(self, size_) -> uvlr_t + | + | @param size_: int + | | max_value(self) -> uvlr_t | | min_svalue(self, *args) -> 'uvlr_t' | min_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | | min_svalue(self) -> uvlr_t | | reduce_size(self, *args) -> 'bool' | reduce_size(self, new_size) -> bool + | + | @param new_size: int | | set_all(self, *args) -> 'void' | set_all(self) | | set_cmp(self, *args) -> 'void' | set_cmp(self, cmp, _value) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t | | set_eq(self, *args) -> 'void' | set_eq(self, v) + | + | @param v: uvlr_t | | set_none(self, *args) -> 'void' | set_none(self) @@ -33049,9 +40122,13 @@ class valrng_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: valrng_t & | | unite_with(self, *args) -> 'bool' | unite_with(self, r) -> bool + | + | @param r: valrng_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33079,24 +40156,36 @@ class var_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: var_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: var_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: var_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: var_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: var_ref_t const & | | __repr__ = _swig_repr(self) | @@ -33105,6 +40194,11 @@ class var_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: var_ref_t const & + | + | getv(self, *args) -> 'lvar_t &' + | getv(self) -> lvar_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33116,10 +40210,10 @@ class var_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | var_ref_t_idx_get(self) -> int + | idx | | mba - | var_ref_t_mba_get(self) -> mbl_array_t + | mba | | thisown | The membership flag @@ -33145,6 +40239,8 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t + | + | @param f: cfunc_t const * | | __repr__ = _swig_repr(self) | @@ -33153,15 +40249,18 @@ class vc_printer_t(vd_printer_t) | | oneliner(self, *args) -> 'bool' | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | thisown | The membership flag @@ -33171,6 +40270,11 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -33182,10 +40286,10 @@ class vc_printer_t(vd_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vd_failure_t in module ida_hexrays: @@ -33197,8 +40301,20 @@ class vd_failure_t(builtins.object) | __init__(self, *args) | __init__(self) -> vd_failure_t | __init__(self, code, ea, buf=None) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | | __init__(self, code, ea, buf) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & + | | __init__(self, _hf) -> vd_failure_t + | + | @param _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -33218,7 +40334,7 @@ class vd_failure_t(builtins.object) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf | | thisown | The membership flag @@ -33237,6 +40353,9 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t + | + | @param ea: ea_t + | @param buf: char const * | | __repr__ = _swig_repr(self) | @@ -33265,7 +40384,7 @@ class vd_interr_t(vd_failure_t) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf Help on class vd_printer_t in module ida_hexrays: @@ -33278,6 +40397,8 @@ class vd_printer_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -33286,6 +40407,11 @@ class vd_printer_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33297,13 +40423,13 @@ class vd_printer_t(builtins.object) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | thisown | The membership flag | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vdloc_t in module ida_hexrays: @@ -33319,24 +40445,36 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & | | __repr__ = _swig_repr(self) | @@ -33345,18 +40483,29 @@ class vdloc_t(ida_typeinf.argloc_t) | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33374,131 +40523,220 @@ class vdloc_t(ida_typeinf.argloc_t) | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -33526,138 +40764,343 @@ class vdui_t(builtins.object) | | calc_cmt_type(self, *args) -> 'cmt_type_t' | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types | | clear(self, *args) -> 'void' | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. | | collapse_item(self, *args) -> 'bool' | collapse_item(self, hide) -> bool + | Collapse/uncollapse item. This function collapses the current item. + | + | @param hide: (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) -> 'bool' | collapse_lvars(self, hide) -> bool + | Collapse/uncollapse local variable declarations. + | + | @param hide: (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) -> 'bool' | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed | | del_orphan_cmts(self, *args) -> 'bool' | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true | | edit_cmt(self, *args) -> 'bool' | edit_cmt(self, loc) -> bool + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) -> 'bool' | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled | | get_current_item(self, *args) -> 'bool' | get_current_item(self, idv) -> bool + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed | | get_current_label(self, *args) -> 'int' | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called | | get_number(self, *args) -> 'cnumber_t *' | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. | | in_ctree(self, *args) -> 'bool' | in_ctree(self) -> bool + | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area | | invert_bits(self, *args) -> 'bool' | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. | | invert_sign(self, *args) -> 'bool' | invert_sign(self) -> bool + | Negate a number. This function negates the current number. + | + | @return: false if failed. | | jump_enter(self, *args) -> 'bool' | jump_enter(self, idv, omflags) -> bool + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed | | locked(self, *args) -> 'bool' | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info | | map_lvar(self, *args) -> 'bool' | map_lvar(self, frm, to) -> bool + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed | | refresh_cpos(self, *args) -> 'bool' | refresh_cpos(self, idv) -> bool + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed | | refresh_ctext(self, *args) -> 'void' | refresh_ctext(self, activate=True) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) | | refresh_view(self, *args) -> 'void' | refresh_view(self, redo_mba) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() | | rename_global(self, *args) -> 'bool' | rename_global(self, ea) -> bool + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | rename_label(self, *args) -> 'bool' | rename_label(self, label) -> bool + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled | | rename_lvar(self, *args) -> 'bool' | rename_lvar(self, v, name, is_user_name) -> bool + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed | | rename_strmem(self, *args) -> 'bool' | rename_strmem(self, sptr, mptr) -> bool + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_global_type(self, *args) -> 'bool' | set_global_type(self, ea) -> bool + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | set_locked(self, *args) -> 'bool' | set_locked(self, v) -> bool + | + | @param v: bool | | set_lvar_cmt(self, *args) -> 'bool' | set_lvar_cmt(self, v, cmt) -> bool + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed | | set_lvar_type(self, *args) -> 'bool' | set_lvar_type(self, v, type) -> bool + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed | | set_noptr_lvar(self, *args) -> 'bool' | set_noptr_lvar(self, v) -> bool + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed | | set_num_enum(self, *args) -> 'bool' | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled | | set_num_radix(self, *args) -> 'bool' | set_num_radix(self, base) -> bool + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed | | set_num_stroff(self, *args) -> 'bool' | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled | | set_strmem_type(self, *args) -> 'bool' | set_strmem_type(self, sptr, mptr) -> bool + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_valid(self, *args) -> 'void' | set_valid(self, v) + | + | @param v: bool | | set_visible(self, *args) -> 'void' | set_visible(self, v) + | + | @param v: bool | | split_item(self, *args) -> 'bool' | split_item(self, split) -> bool + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. | | switch_to(self, *args) -> 'void' | switch_to(self, f, activate) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? | | ui_edit_lvar_cmt(self, *args) -> 'bool' | ui_edit_lvar_cmt(self, v) -> bool + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) -> 'bool' | ui_map_lvar(self, v) -> bool + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) -> 'bool' | ui_rename_lvar(self, v) -> bool + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) -> 'bool' | ui_set_call_type(self, e) -> bool + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) -> 'bool' | ui_set_lvar_type(self, v) -> bool + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) -> 'bool' | ui_unmap_lvar(self, v) -> bool + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | valid(self, *args) -> 'bool' | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. | | visible(self, *args) -> 'bool' | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33669,40 +41112,40 @@ class vdui_t(builtins.object) | list of weak references to the object (if defined) | | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t + | cfunc | | cpos - | vdui_t_cpos_get(self) -> ctext_position_t + | cpos | | ct - | vdui_t_ct_get(self) -> TWidget * + | ct | | flags - | vdui_t_flags_get(self) -> int + | flags | | head - | vdui_t_head_get(self) -> ctree_item_t + | head | | item - | vdui_t_item_get(self) -> ctree_item_t + | item | | last_code - | vdui_t_last_code_get(self) -> merror_t + | last_code | | mba - | vdui_t_mba_get(self) -> mbl_array_t + | mba | | tail - | vdui_t_tail_get(self) -> ctree_item_t + | tail | | thisown | The membership flag | | toplevel - | vdui_t_toplevel_get(self) -> TWidget * + | toplevel | | view_idx - | vdui_t_view_idx_get(self) -> int + | view_idx Help on class vivl_t in module ida_hexrays: @@ -33718,27 +41161,52 @@ class vivl_t(voff_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: vivl_t const & + | | __eq__(self, mop) -> bool + | + | @param mop: mop_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: vivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | | __init__(self, ch) -> vivl_t + | + | @param ch: chain_t const & + | | __init__(self, op) -> vivl_t + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: vivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: vivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -33750,40 +41218,73 @@ class vivl_t(voff_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: vivl_t const & | | contains(self, *args) -> 'bool' | contains(self, voff2) -> bool + | Does our value interval contain the specified value offset? + | + | @param voff2: (C++: const voff_t &) voff_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool + | Extend a value interval using another value interval of the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success | | includes(self, *args) -> 'bool' | includes(self, r) -> bool + | Does our value interval include another? + | + | @param r: (C++: const vivl_t &) vivl_t const & | | intersect(self, *args) -> 'uval_t' | intersect(self, r) -> uval_t + | Intersect value intervals the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool + | Do two value intervals overlap? + | + | @param r: (C++: const vivl_t &) vivl_t const & | | set(self, *args) -> 'void' | set(self, _type, _off, _size=0) + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | | set(self, voff, _size) + | + | @param voff: voff_t const & + | @param _size: int | | set_reg(self, *args) -> 'void' | set_reg(self, mreg, sz=0) + | + | @param mreg: mreg_t + | @param sz: int | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff, sz=0) + | + | @param stkoff: sval_t + | @param sz: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | size - | vivl_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -33798,12 +41299,16 @@ class vivl_t(voff_t) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | + | @param width: int | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33813,6 +41318,8 @@ class vivl_t(voff_t) | | inc(self, *args) -> 'void' | inc(self, delta) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33833,10 +41340,10 @@ class vivl_t(voff_t) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | type - | voff_t_type_get(self) -> mopt_t + | type Help on class voff_t in module ida_hexrays: @@ -33847,26 +41354,44 @@ class voff_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: voff_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: voff_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t | __init__(self, _type, _off) -> voff_t + | + | @param _type: mopt_t + | @param _off: sval_t + | | __init__(self, op) -> voff_t + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: voff_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: voff_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: voff_t const & | | __repr__ = _swig_repr(self) | @@ -33875,15 +41400,21 @@ class voff_t(builtins.object) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | + | @param width: int | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: voff_t const & | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33893,6 +41424,8 @@ class voff_t(builtins.object) | | inc(self, *args) -> 'void' | inc(self, delta) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33902,12 +41435,19 @@ class voff_t(builtins.object) | | set(self, *args) -> 'void' | set(self, _type, _off) + | + | @param _type: mopt_t + | @param _off: sval_t | | set_reg(self, *args) -> 'void' | set_reg(self, mreg) + | + | @param mreg: mreg_t | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff) + | + | @param stkoff: sval_t | | undef(self, *args) -> 'void' | undef(self) @@ -33922,1014 +41462,32 @@ class voff_t(builtins.object) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | thisown | The membership flag | | type - | voff_t_type_get(self) -> mopt_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -if it becomes useless - -del the jump insn at the end of the block -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -printf- or scanf-style format string - -A variadic function with recognized -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -by function calls and indirect memory access - -ignore possible implicit definitions -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -(example: STM on ARM may transfer multiple registers) - -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -the specified are accepted (used in patterns) - -private block - no instructions except -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" +Module "ida_ida"s docstring: """ +Contains the inf structure definition and some functions common to the whole IDA +project. -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_STROFF -""" -internal bit: used as stroff, valid iff 'is_stroff()' -""" - -ida_hexrays.OPROP_CCFLAGS -""" -condition codes register value -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -do not optimize low/high(ldx) -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. -""" - -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? -""" - -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" - -ida_hexrays.VR_AT_START -""" -at the block start (if M is NULL) +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. -get value ranges before the instruction or -""" - -ida_hexrays.VR_EXACT -""" -valrng size will be >= vivl.size +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" -find exact match. if not set, the returned -""" -=== ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: __make_idainfo_accessors(attr, getter_name=None, setter_name=None) @@ -34937,18 +41495,23 @@ __make_idainfo_accessors(attr, getter_name=None, setter_name=None) Help on function __make_idainfo_bound in module ida_ida: __make_idainfo_bound(func, attr) - # Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + +Help on function __wrap_hooks_callback in module ida_ida: + +__wrap_hooks_callback(klass, new_name, old_name, do_call) + Help on function calc_default_idaplace_flags in module ida_ida: calc_default_idaplace_flags(*args) -> 'int' calc_default_idaplace_flags() -> int - - Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -34976,38 +41539,72 @@ class compiler_info_t(builtins.object) | list of weak references to the object (if defined) | | cm - | compiler_info_t_cm_get(self) -> cm_t + | cm | | defalign - | compiler_info_t_defalign_get(self) -> uchar + | defalign | | id - | compiler_info_t_id_get(self) -> comp_t + | id | | size_b - | compiler_info_t_size_b_get(self) -> uchar + | size_b | | size_e - | compiler_info_t_size_e_get(self) -> uchar + | size_e | | size_i - | compiler_info_t_size_i_get(self) -> uchar + | size_i | | size_l - | compiler_info_t_size_l_get(self) -> uchar + | size_l | | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar + | size_ldbl | | size_ll - | compiler_info_t_size_ll_get(self) -> uchar + | size_ll | | size_s - | compiler_info_t_size_s_get(self) -> uchar + | size_s | | thisown | The membership flag +Help on function delinf in module ida_ida: + +delinf(*args) -> 'bool' + delinf(tag) -> bool + Undefine a program specific information + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success + +Help on function get_dbctx_id in module ida_ida: + +get_dbctx_id(*args) -> 'ssize_t' + get_dbctx_id() -> ssize_t + Get the current database context ID + + @return: the database context ID, or -1 if no current database + +Help on function get_dbctx_qty in module ida_ida: + +get_dbctx_qty(*args) -> 'size_t' + get_dbctx_qty() -> size_t + Get number of database contexts + + @return: number of database contexts + +Help on function getinf_str in module ida_ida: + +getinf_str(*args) -> 'qstring *' + getinf_str(tag) -> str + Get program specific information (a non-scalar value) + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) + Help on class idainfo in module ida_ida: class idainfo(builtins.object) @@ -35020,6 +41617,16 @@ class idainfo(builtins.object) | | __repr__ = _swig_repr(self) | + | _get_lflags(self, *args) -> 'uint32' + | _get_lflags(self) -> uint32 + | + | _set_lflags(self, *args) -> 'void' + | _set_lflags(self, _f) + | + | Parameters + | ---------- + | _f: uint32 + | | big_arg_align = __func(self, *args) | | gen_lzero = __func(self, *args) @@ -35033,17 +41640,8 @@ class idainfo(builtins.object) | | get_demname_form = __func(self, *args) | - | get_maxEA(self, *args) -> 'ea_t' - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) -> 'ea_t' - | get_minEA(self) -> ea_t - | | get_pack_mode = __func(self, *args) | - | get_procName(self, *args) -> 'qstring' - | get_procName(self) -> qstring - | | is_32bit = __func(self, *args) | | is_64bit = __func(self, *args) @@ -35096,12 +41694,6 @@ class idainfo(builtins.object) | | set_line_pref_with_seg = __func(self, *args) | - | set_maxEA(self, *args) -> 'void' - | set_maxEA(self, ea) - | - | set_minEA(self, *args) -> 'void' - | set_minEA(self, ea) - | | set_pack_mode = __func(self, *args) | | set_show_auto = __func(self, *args) @@ -35136,193 +41728,206 @@ class idainfo(builtins.object) | list of weak references to the object (if defined) | | abibits - | idainfo_abibits_get(self) -> uint32 + | abibits | | abiname | get_abiname(self) -> qstring | | af - | idainfo_af_get(self) -> uint32 + | af | | af2 - | idainfo_af2_get(self) -> uint32 + | af2 | | appcall_options - | idainfo_appcall_options_get(self) -> uint32 + | appcall_options | | apptype - | idainfo_apptype_get(self) -> ushort + | apptype | | asmtype - | idainfo_asmtype_get(self) -> uchar + | asmtype | | baseaddr - | idainfo_baseaddr_get(self) -> uval_t + | baseaddr | | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short + | bin_prefix_size | | cc - | idainfo_cc_get(self) -> compiler_info_t + | cc | - | comment - | idainfo_comment_get(self) -> uchar + | cmt_indent + | cmt_indent | | database_change_count - | idainfo_database_change_count_get(self) -> uint32 + | database_change_count | | datatypes - | idainfo_datatypes_get(self) -> uval_t + | datatypes | | demnames - | idainfo_demnames_get(self) -> uchar + | demnames | | filetype - | idainfo_filetype_get(self) -> ushort + | filetype | | highoff - | idainfo_highoff_get(self) -> ea_t + | highoff | | indent - | idainfo_indent_get(self) -> uchar + | indent | | lenxref - | idainfo_lenxref_get(self) -> ushort + | lenxref | | lflags - | idainfo_lflags_get(self) -> uint32 + | _get_lflags(self) -> uint32 | | listnames - | idainfo_listnames_get(self) -> uchar + | listnames | | long_demnames - | idainfo_long_demnames_get(self) -> uint32 + | long_demnames | | lowoff - | idainfo_lowoff_get(self) -> ea_t + | lowoff | | main - | idainfo_main_get(self) -> ea_t + | main | | margin - | idainfo_margin_get(self) -> ushort + | margin | | maxEA - | get_maxEA(self) -> ea_t | | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort + | max_autoname_len | | max_ea - | idainfo_max_ea_get(self) -> ea_t + | max_ea | | maxref - | idainfo_maxref_get(self) -> uval_t + | maxref | | minEA - | get_minEA(self) -> ea_t | | min_ea - | idainfo_min_ea_get(self) -> ea_t + | min_ea | | nametype - | idainfo_nametype_get(self) -> char + | nametype | | omax_ea - | idainfo_omax_ea_get(self) -> ea_t + | omax_ea | | omin_ea - | idainfo_omin_ea_get(self) -> ea_t + | omin_ea | | ostype - | idainfo_ostype_get(self) -> ushort + | ostype | | outflags - | idainfo_outflags_get(self) -> uint32 + | outflags | | procName - | get_procName(self) -> qstring | | procname - | idainfo_procname_get(self) -> char [16] + | procname | | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar + | refcmtnum | | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar + | s_cmtflg | | s_genflags - | idainfo_s_genflags_get(self) -> ushort + | s_genflags | | s_limiter - | idainfo_s_limiter_get(self) -> uchar + | s_limiter | | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar + | s_prefflag | | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar + | s_xrefflag | | short_demnames - | idainfo_short_demnames_get(self) -> uint32 + | short_demnames | | specsegs - | idainfo_specsegs_get(self) -> uchar + | specsegs | | start_cs - | idainfo_start_cs_get(self) -> sel_t + | start_cs | | start_ea - | idainfo_start_ea_get(self) -> ea_t + | start_ea | | start_ip - | idainfo_start_ip_get(self) -> ea_t + | start_ip | | start_sp - | idainfo_start_sp_get(self) -> ea_t + | start_sp | | start_ss - | idainfo_start_ss_get(self) -> sel_t + | start_ss | | strlit_break - | idainfo_strlit_break_get(self) -> uchar + | strlit_break | | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar + | strlit_flags | | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] + | strlit_pref | | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t + | strlit_sernum | | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char + | strlit_zeroes | | strtype - | idainfo_strtype_get(self) -> int32 + | strtype | | tag - | idainfo_tag_get(self) -> char [3] + | tag | | thisown | The membership flag | | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar + | type_xrefnum | | version - | idainfo_version_get(self) -> ushort + | version | | xrefnum - | idainfo_xrefnum_get(self) -> uchar + | xrefnum Help on function inf_big_arg_align in module ida_ida: inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + inf_big_arg_align() -> bool +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) -> 'uchar' + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) -> 'bool' + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + Help on function inf_gen_lzero in module ida_ida: inf_gen_lzero(*args) -> 'bool' @@ -35342,19 +41947,16 @@ Help on function inf_get_demname_form in module ida_ida: inf_get_demname_form(*args) -> 'uchar' inf_get_demname_form() -> uchar - - - Get 'DEMNAM_MASK' bits of #demnames. + Get DEMNAM_MASK bits of #demnames. Help on function inf_get_pack_mode in module ida_ida: inf_get_pack_mode(*args) -> 'int' inf_get_pack_mode() -> int -Help on function inf_is_32bit in module ida_ida: +Help on function idainfo_is_32bit in module ida_ida: -inf_is_32bit(*args) -> 'bool' - inf_is_32bit() -> bool +idainfo_is_32bit() Help on function inf_is_64bit in module ida_ida: @@ -35434,6 +42036,10 @@ inf_map_stkargs(*args) -> 'bool' Help on function inf_pack_stkargs in module ida_ida: inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + inf_pack_stkargs() -> bool Help on function inf_readonly_idb in module ida_ida: @@ -35445,61 +42051,85 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) -> 'bool' inf_set_64bit(_v=True) -> bool + + @param _v: bool Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) -> 'bool' inf_set_auto_enabled(_v=True) -> bool + + @param _v: bool Help on function inf_set_be in module ida_ida: inf_set_be(*args) -> 'bool' inf_set_be(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) -> 'bool' inf_set_gen_lzero(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) -> 'bool' inf_set_gen_null(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) -> 'bool' inf_set_gen_tryblks(_v=True) -> bool + + @param _v: bool Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) -> 'bool' inf_set_graph_view(_v=True) -> bool + + @param _v: bool Help on function inf_set_line_pref_with_seg in module ida_ida: inf_set_line_pref_with_seg(*args) -> 'bool' inf_set_line_pref_with_seg(_v=True) -> bool + + @param _v: bool Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) -> 'int' inf_set_pack_mode(pack_mode) -> int + + @param pack_mode: int Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) -> 'bool' inf_set_show_auto(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_line_pref in module ida_ida: inf_set_show_line_pref(*args) -> 'bool' inf_set_show_line_pref(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) -> 'bool' inf_set_show_void(_v=True) -> bool + + @param _v: bool Help on function in module ida_ida: @@ -35509,6 +42139,8 @@ Help on function inf_set_wide_high_byte_first in module ida_ida: inf_set_wide_high_byte_first(*args) -> 'bool' inf_set_wide_high_byte_first(_v=True) -> bool + + @param _v: bool Help on function inf_show_auto in module ida_ida: @@ -35545,6 +42177,186 @@ Help on function inf_use_gcc_layout in module ida_ida: inf_use_gcc_layout(*args) -> 'bool' inf_use_gcc_layout() -> bool +Help on class idbattr_info_t in module ida_ida: + +class idbattr_info_t(builtins.object) + | Proxy of C++ idbattr_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, name, offset, width, bitmask=0, tag=0, idi_flags=0) -> idbattr_info_t + | + | @param name: char const * + | @param offset: uintptr_t + | @param width: size_t + | @param bitmask: uint64 + | @param tag: uchar + | @param idi_flags: uint + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: idbattr_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idbattr_info_t(...) + | delete_idbattr_info_t(self) + | + | has_individual_node(self, *args) -> 'bool' + | has_individual_node(self) -> bool + | + | hashname(self, *args) -> 'char const *' + | hashname(self) -> char const * + | + | is_bitfield(self, *args) -> 'bool' + | is_bitfield(self) -> bool + | + | is_bitmap(self, *args) -> 'bool' + | is_bitmap(self) -> bool + | + | is_boolean(self, *args) -> 'bool' + | is_boolean(self) -> bool + | + | is_buf_var(self, *args) -> 'bool' + | is_buf_var(self) -> bool + | + | is_bytearray(self, *args) -> 'bool' + | is_bytearray(self) -> bool + | + | is_cstr(self, *args) -> 'bool' + | is_cstr(self) -> bool + | + | is_decimal(self, *args) -> 'bool' + | is_decimal(self) -> bool + | + | is_hash(self, *args) -> 'bool' + | is_hash(self) -> bool + | + | is_hexadecimal(self, *args) -> 'bool' + | is_hexadecimal(self) -> bool + | + | is_incremented(self, *args) -> 'bool' + | is_incremented(self) -> bool + | + | is_node_altval(self, *args) -> 'bool' + | is_node_altval(self) -> bool + | + | is_node_blob(self, *args) -> 'bool' + | is_node_blob(self) -> bool + | + | is_node_supval(self, *args) -> 'bool' + | is_node_supval(self) -> bool + | + | is_node_valobj(self, *args) -> 'bool' + | is_node_valobj(self) -> bool + | + | is_node_var(self, *args) -> 'bool' + | is_node_var(self) -> bool + | + | is_onoff(self, *args) -> 'bool' + | is_onoff(self) -> bool + | + | is_qstring(self, *args) -> 'bool' + | is_qstring(self) -> bool + | + | is_readonly_var(self, *args) -> 'bool' + | is_readonly_var(self) -> bool + | + | is_scalar_var(self, *args) -> 'bool' + | is_scalar_var(self) -> bool + | + | is_struc_field(self, *args) -> 'bool' + | is_struc_field(self) -> bool + | + | is_val_mapped(self, *args) -> 'bool' + | is_val_mapped(self) -> bool + | + | ridx(self, *args) -> 'size_t' + | ridx(self) -> size_t + | + | str_false(self, *args) -> 'char const *' + | str_false(self) -> char const * + | + | str_true(self, *args) -> 'char const *' + | str_true(self) -> char const * + | + | use_hlpstruc(self, *args) -> 'bool' + | use_hlpstruc(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bitmask + | bitmask + | + | idi_flags + | idi_flags + | + | individual_node + | individual_node + | + | maxsize + | maxsize + | + | name + | name + | + | offset + | offset + | + | tag + | tag + | + | thisown + | The membership flag + | + | vmap + | vmap + | + | width + | width + +Help on class idbattr_valmap_t in module ida_ida: + +class idbattr_valmap_t(builtins.object) + | Proxy of C++ idbattr_valmap_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idbattr_valmap_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idbattr_valmap_t(...) + | delete_idbattr_valmap_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | valname + | valname + | + | value + | value + Help on function inf_abi_set_by_user in module ida_ida: inf_abi_set_by_user(*args) -> 'bool' @@ -35689,8 +42501,6 @@ Help on function inf_get_af2_low in module ida_ida: inf_get_af2_low(*args) -> 'ushort' inf_get_af2_low() -> ushort - - Get/set low 16bit half of inf.af2. Help on function inf_get_af_high in module ida_ida: @@ -35702,10 +42512,13 @@ Help on function inf_get_af_low in module ida_ida: inf_get_af_low(*args) -> 'ushort' inf_get_af_low() -> ushort - - Get/set low/high 16bit halves of inf.af. +Help on function inf_get_app_bitness in module ida_ida: + +inf_get_app_bitness(*args) -> 'uint' + inf_get_app_bitness() -> uint + Help on function inf_get_appcall_options in module ida_ida: inf_get_appcall_options(*args) -> 'uint32' @@ -35735,6 +42548,8 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) -> 'bool' inf_get_cc(out) -> bool + + @param out: compiler_info_t * Help on function inf_get_cc_cm in module ida_ida: @@ -35791,11 +42606,6 @@ Help on function inf_get_cmtflg in module ida_ida: inf_get_cmtflg(*args) -> 'uchar' inf_get_cmtflg() -> uchar -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) -> 'uchar' - inf_get_comment() -> uchar - Help on function inf_get_database_change_count in module ida_ida: inf_get_database_change_count(*args) -> 'uint32' @@ -35930,6 +42740,9 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) -> 'range_t' inf_get_privrange(out) -> bool + + @param out: range_t * + inf_get_privrange() -> range_t Help on function inf_get_privrange_end_ea in module ida_ida: @@ -36071,6 +42884,23 @@ Help on function inf_inc_database_change_count in module ida_ida: inf_inc_database_change_count(*args) -> 'void' inf_inc_database_change_count(cnt=1) + + @param cnt: int + +Help on function inf_is_16bit in module ida_ida: + +inf_is_16bit(*args) -> 'bool' + inf_is_16bit() -> bool + +Help on function inf_is_32bit_exactly in module ida_ida: + +inf_is_32bit_exactly(*args) -> 'bool' + inf_is_32bit_exactly() -> bool + +Help on function inf_is_32bit_or_higher in module ida_ida: + +inf_is_32bit_or_higher(*args) -> 'bool' + inf_is_32bit_or_higher() -> bool Help on function inf_is_limiter_empty in module ida_ida: @@ -36126,6 +42956,8 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) -> 'uval_t' inf_postinc_strlit_sernum(cnt=1) -> uval_t + + @param cnt: uval_t Help on function inf_prefix_show_funcoff in module ida_ida: @@ -36171,796 +43003,1109 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) -> 'bool' inf_set_32bit(_v=True) -> bool + + @param _v: bool Help on function inf_set_abi_set_by_user in module ida_ida: inf_set_abi_set_by_user(*args) -> 'bool' inf_set_abi_set_by_user(_v=True) -> bool + + @param _v: bool Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) -> 'bool' inf_set_abibits(_v) -> bool + + @param _v: uint32 Help on function inf_set_af in module ida_ida: inf_set_af(*args) -> 'bool' inf_set_af(_v) -> bool + + @param _v: uint32 Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) -> 'bool' inf_set_af2(_v) -> bool + + @param _v: uint32 Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) -> 'void' inf_set_af2_low(saf) + + @param saf: ushort Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) -> 'void' inf_set_af_high(saf2) + + @param saf2: ushort Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) -> 'void' inf_set_af_low(saf) + + @param saf: ushort Help on function inf_set_allow_non_matched_ops in module ida_ida: inf_set_allow_non_matched_ops(*args) -> 'bool' inf_set_allow_non_matched_ops(_v=True) -> bool + + @param _v: bool Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) -> 'bool' inf_set_allow_sigmulti(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_app_bitness in module ida_ida: + +inf_set_app_bitness(*args) -> 'void' + inf_set_app_bitness(bitness) + + @param bitness: uint Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) -> 'bool' inf_set_appcall_options(_v) -> bool + + @param _v: uint32 Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) -> 'bool' inf_set_append_sigcmt(_v=True) -> bool + + @param _v: bool Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) -> 'bool' inf_set_apptype(_v) -> bool + + @param _v: ushort Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) -> 'bool' inf_set_asmtype(_v) -> bool + + @param _v: uchar Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) -> 'bool' inf_set_baseaddr(_v) -> bool + + @param _v: uval_t Help on function inf_set_big_arg_align in module ida_ida: inf_set_big_arg_align(*args) -> 'bool' inf_set_big_arg_align(_v=True) -> bool + + @param _v: bool Help on function inf_set_bin_prefix_size in module ida_ida: inf_set_bin_prefix_size(*args) -> 'bool' inf_set_bin_prefix_size(_v) -> bool + + @param _v: short Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) -> 'bool' inf_set_cc(_v) -> bool + + @param _v: compiler_info_t const & Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) -> 'bool' inf_set_cc_cm(_v) -> bool + + @param _v: cm_t Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) -> 'bool' inf_set_cc_defalign(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) -> 'bool' inf_set_cc_id(_v) -> bool + + @param _v: comp_t Help on function inf_set_cc_size_b in module ida_ida: inf_set_cc_size_b(*args) -> 'bool' inf_set_cc_size_b(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_e in module ida_ida: inf_set_cc_size_e(*args) -> 'bool' inf_set_cc_size_e(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_i in module ida_ida: inf_set_cc_size_i(*args) -> 'bool' inf_set_cc_size_i(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_l in module ida_ida: inf_set_cc_size_l(*args) -> 'bool' inf_set_cc_size_l(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_ldbl in module ida_ida: inf_set_cc_size_ldbl(*args) -> 'bool' inf_set_cc_size_ldbl(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_ll in module ida_ida: inf_set_cc_size_ll(*args) -> 'bool' inf_set_cc_size_ll(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_s in module ida_ida: inf_set_cc_size_s(*args) -> 'bool' inf_set_cc_size_s(_v) -> bool + + @param _v: uchar Help on function inf_set_check_manual_ops in module ida_ida: inf_set_check_manual_ops(*args) -> 'bool' inf_set_check_manual_ops(_v=True) -> bool + + @param _v: bool Help on function inf_set_check_unicode_strlits in module ida_ida: inf_set_check_unicode_strlits(*args) -> 'bool' inf_set_check_unicode_strlits(_v=True) -> bool + + @param _v: bool Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) -> 'bool' inf_set_cmtflg(_v) -> bool + + @param _v: uchar Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) -> 'bool' inf_set_coagulate_code(_v=True) -> bool + + @param _v: bool Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) -> 'bool' inf_set_coagulate_data(_v=True) -> bool - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) -> 'bool' - inf_set_comment(_v) -> bool + + @param _v: bool Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) -> 'bool' inf_set_compress_idb(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_all_xrefs in module ida_ida: inf_set_create_all_xrefs(*args) -> 'bool' inf_set_create_all_xrefs(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_func_from_call in module ida_ida: inf_set_create_func_from_call(*args) -> 'bool' inf_set_create_func_from_call(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_func_from_ptr in module ida_ida: inf_set_create_func_from_ptr(*args) -> 'bool' inf_set_create_func_from_ptr(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_func_tails in module ida_ida: inf_set_create_func_tails(*args) -> 'bool' inf_set_create_func_tails(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_jump_tables in module ida_ida: inf_set_create_jump_tables(*args) -> 'bool' inf_set_create_jump_tables(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_off_on_dref in module ida_ida: inf_set_create_off_on_dref(*args) -> 'bool' inf_set_create_off_on_dref(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_off_using_fixup in module ida_ida: inf_set_create_off_using_fixup(*args) -> 'bool' inf_set_create_off_using_fixup(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_strlit_on_xref in module ida_ida: inf_set_create_strlit_on_xref(*args) -> 'bool' inf_set_create_strlit_on_xref(_v=True) -> bool + + @param _v: bool Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) -> 'bool' inf_set_data_offset(_v=True) -> bool + + @param _v: bool Help on function inf_set_database_change_count in module ida_ida: inf_set_database_change_count(*args) -> 'bool' inf_set_database_change_count(_v) -> bool + + @param _v: uint32 Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) -> 'bool' inf_set_datatypes(_v) -> bool + + @param _v: uval_t Help on function inf_set_dbg_no_store_path in module ida_ida: inf_set_dbg_no_store_path(*args) -> 'bool' inf_set_dbg_no_store_path(_v=True) -> bool + + @param _v: bool Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) -> 'bool' inf_set_decode_fpp(_v=True) -> bool + + @param _v: bool Help on function inf_set_del_no_xref_insns in module ida_ida: inf_set_del_no_xref_insns(*args) -> 'bool' inf_set_del_no_xref_insns(_v=True) -> bool + + @param _v: bool Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) -> 'bool' inf_set_demnames(_v) -> bool + + @param _v: uchar Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) -> 'bool' inf_set_dll(_v=True) -> bool + + @param _v: bool Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) -> 'bool' inf_set_filetype(_v) -> bool + + @param _v: enum filetype_t Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) -> 'bool' inf_set_final_pass(_v=True) -> bool + + @param _v: bool Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) -> 'bool' inf_set_flat_off32(_v=True) -> bool + + @param _v: bool Help on function inf_set_full_sp_ana in module ida_ida: inf_set_full_sp_ana(*args) -> 'bool' inf_set_full_sp_ana(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) -> 'bool' inf_set_gen_assume(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) -> 'bool' inf_set_gen_org(_v=True) -> bool + + @param _v: bool Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) -> 'bool' inf_set_genflags(_v) -> bool + + @param _v: ushort Help on function inf_set_guess_func_type in module ida_ida: inf_set_guess_func_type(*args) -> 'bool' inf_set_guess_func_type(_v=True) -> bool + + @param _v: bool Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) -> 'bool' inf_set_handle_eh(_v=True) -> bool + + @param _v: bool Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) -> 'bool' inf_set_handle_rtti(_v=True) -> bool + + @param _v: bool Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) -> 'bool' inf_set_hard_float(_v=True) -> bool + + @param _v: bool Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) -> 'bool' inf_set_hide_comments(_v=True) -> bool + + @param _v: bool Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) -> 'bool' inf_set_hide_libfuncs(_v=True) -> bool + + @param _v: bool Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) -> 'bool' inf_set_highoff(_v) -> bool + + @param _v: ea_t Help on function inf_set_huge_arg_align in module ida_ida: inf_set_huge_arg_align(*args) -> 'bool' inf_set_huge_arg_align(_v=True) -> bool + + @param _v: bool Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) -> 'bool' inf_set_indent(_v) -> bool + + @param _v: uchar Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) -> 'bool' inf_set_kernel_mode(_v=True) -> bool + + @param _v: bool Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) -> 'bool' inf_set_lenxref(_v) -> bool + + @param _v: ushort Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) -> 'bool' inf_set_lflags(_v) -> bool + + @param _v: uint32 Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) -> 'bool' inf_set_limiter(_v) -> bool + + @param _v: uchar Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) -> 'bool' inf_set_limiter_empty(_v=True) -> bool + + @param _v: bool Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) -> 'bool' inf_set_limiter_thick(_v=True) -> bool + + @param _v: bool Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) -> 'bool' inf_set_limiter_thin(_v=True) -> bool + + @param _v: bool Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) -> 'bool' inf_set_listnames(_v) -> bool + + @param _v: uchar Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) -> 'bool' inf_set_loading_idc(_v=True) -> bool + + @param _v: bool Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) -> 'bool' inf_set_long_demnames(_v) -> bool + + @param _v: uint32 Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) -> 'bool' inf_set_lowoff(_v) -> bool + + @param _v: ea_t Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) -> 'bool' inf_set_macros_enabled(_v=True) -> bool + + @param _v: bool Help on function inf_set_main in module ida_ida: inf_set_main(*args) -> 'bool' inf_set_main(_v) -> bool + + @param _v: ea_t Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) -> 'bool' inf_set_map_stkargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) -> 'bool' inf_set_margin(_v) -> bool + + @param _v: ushort Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) -> 'bool' inf_set_mark_code(_v=True) -> bool + + @param _v: bool Help on function inf_set_max_autoname_len in module ida_ida: inf_set_max_autoname_len(*args) -> 'bool' inf_set_max_autoname_len(_v) -> bool + + @param _v: ushort Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) -> 'bool' inf_set_max_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) -> 'bool' inf_set_maxref(_v) -> bool + + @param _v: uval_t Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) -> 'bool' inf_set_mem_aligned4(_v=True) -> bool + + @param _v: bool Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) -> 'bool' inf_set_min_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) -> 'bool' inf_set_nametype(_v) -> bool + + @param _v: char Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) -> 'bool' inf_set_netdelta(_v) -> bool + + @param _v: sval_t Help on function inf_set_no_store_user_info in module ida_ida: inf_set_no_store_user_info(*args) -> 'bool' inf_set_no_store_user_info(_v=True) -> bool + + @param _v: bool Help on function inf_set_noflow_to_data in module ida_ida: inf_set_noflow_to_data(*args) -> 'bool' inf_set_noflow_to_data(_v=True) -> bool + + @param _v: bool Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) -> 'bool' inf_set_noret_ana(_v=True) -> bool + + @param _v: bool Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) -> 'bool' inf_set_omax_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) -> 'bool' inf_set_omin_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) -> 'bool' inf_set_op_offset(_v=True) -> bool + + @param _v: bool Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) -> 'bool' inf_set_ostype(_v) -> bool + + @param _v: ushort Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) -> 'bool' inf_set_outflags(_v) -> bool + + @param _v: uint32 Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) -> 'bool' inf_set_pack_idb(_v=True) -> bool + + @param _v: bool Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) -> 'bool' inf_set_pack_stkargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) -> 'bool' inf_set_prefflag(_v) -> bool + + @param _v: uchar Help on function inf_set_prefix_show_funcoff in module ida_ida: inf_set_prefix_show_funcoff(*args) -> 'bool' inf_set_prefix_show_funcoff(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefix_show_segaddr in module ida_ida: inf_set_prefix_show_segaddr(*args) -> 'bool' inf_set_prefix_show_segaddr(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefix_show_stack in module ida_ida: inf_set_prefix_show_stack(*args) -> 'bool' inf_set_prefix_show_stack(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: inf_set_prefix_truncate_opcode_bytes(*args) -> 'bool' inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool + + @param _v: bool Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) -> 'bool' inf_set_privrange(_v) -> bool + + @param _v: range_t const & Help on function inf_set_privrange_end_ea in module ida_ida: inf_set_privrange_end_ea(*args) -> 'bool' inf_set_privrange_end_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_privrange_start_ea in module ida_ida: inf_set_privrange_start_ea(*args) -> 'bool' inf_set_privrange_start_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) -> 'bool' inf_set_procname(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) -> 'bool' inf_set_propagate_regargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) -> 'bool' inf_set_propagate_stkargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) -> 'bool' inf_set_readonly_idb(_v=True) -> bool + + @param _v: bool Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) -> 'bool' inf_set_refcmtnum(_v) -> bool + + @param _v: uchar Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) -> 'bool' inf_set_rename_jumpfunc(_v=True) -> bool + + @param _v: bool Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) -> 'bool' inf_set_rename_nullsub(_v=True) -> bool + + @param _v: bool Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) -> 'bool' inf_set_short_demnames(_v) -> bool + + @param _v: uint32 Help on function inf_set_should_create_stkvars in module ida_ida: inf_set_should_create_stkvars(*args) -> 'bool' inf_set_should_create_stkvars(_v=True) -> bool + + @param _v: bool Help on function inf_set_should_trace_sp in module ida_ida: inf_set_should_trace_sp(*args) -> 'bool' inf_set_should_trace_sp(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_all_comments in module ida_ida: inf_set_show_all_comments(*args) -> 'bool' inf_set_show_all_comments(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_hidden_funcs in module ida_ida: inf_set_show_hidden_funcs(*args) -> 'bool' inf_set_show_hidden_funcs(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_hidden_insns in module ida_ida: inf_set_show_hidden_insns(*args) -> 'bool' inf_set_show_hidden_insns(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_hidden_segms in module ida_ida: inf_set_show_hidden_segms(*args) -> 'bool' inf_set_show_hidden_segms(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) -> 'bool' inf_set_show_repeatables(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_src_linnum in module ida_ida: inf_set_show_src_linnum(*args) -> 'bool' inf_set_show_src_linnum(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_fncoff in module ida_ida: inf_set_show_xref_fncoff(*args) -> 'bool' inf_set_show_xref_fncoff(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_seg in module ida_ida: inf_set_show_xref_seg(*args) -> 'bool' inf_set_show_xref_seg(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_tmarks in module ida_ida: inf_set_show_xref_tmarks(*args) -> 'bool' inf_set_show_xref_tmarks(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_val in module ida_ida: inf_set_show_xref_val(*args) -> 'bool' inf_set_show_xref_val(_v=True) -> bool + + @param _v: bool Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) -> 'bool' inf_set_snapshot(_v=True) -> bool + + @param _v: bool Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) -> 'bool' inf_set_specsegs(_v) -> bool + + @param _v: uchar Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) -> 'bool' inf_set_stack_ldbl(_v=True) -> bool + + @param _v: bool Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) -> 'bool' inf_set_stack_varargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) -> 'bool' inf_set_start_cs(_v) -> bool + + @param _v: sel_t Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) -> 'bool' inf_set_start_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) -> 'bool' inf_set_start_ip(_v) -> bool + + @param _v: ea_t Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) -> 'bool' inf_set_start_sp(_v) -> bool + + @param _v: ea_t Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) -> 'bool' inf_set_start_ss(_v) -> bool + + @param _v: sel_t Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) -> 'bool' inf_set_strlit_autocmt(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) -> 'bool' inf_set_strlit_break(_v) -> bool + + @param _v: uchar Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) -> 'bool' inf_set_strlit_flags(_v) -> bool + + @param _v: uchar Help on function inf_set_strlit_name_bit in module ida_ida: inf_set_strlit_name_bit(*args) -> 'bool' inf_set_strlit_name_bit(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) -> 'bool' inf_set_strlit_names(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_pref in module ida_ida: inf_set_strlit_pref(*args) -> 'bool' inf_set_strlit_pref(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) -> 'bool' inf_set_strlit_savecase(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_serial_names in module ida_ida: inf_set_strlit_serial_names(*args) -> 'bool' inf_set_strlit_serial_names(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) -> 'bool' inf_set_strlit_sernum(_v) -> bool + + @param _v: uval_t Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) -> 'bool' inf_set_strlit_zeroes(_v) -> bool + + @param _v: char Help on function inf_set_strtype in module ida_ida: inf_set_strtype(*args) -> 'bool' inf_set_strtype(_v) -> bool - -Help on function inf_set_test_mode in module ida_ida: - -inf_set_test_mode(*args) -> 'bool' - inf_set_test_mode(_v=True) -> bool + + @param _v: int32 Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) -> 'bool' inf_set_trace_flow(_v=True) -> bool + + @param _v: bool Help on function inf_set_truncate_on_del in module ida_ida: inf_set_truncate_on_del(*args) -> 'bool' inf_set_truncate_on_del(_v=True) -> bool + + @param _v: bool Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) -> 'bool' inf_set_type_xrefnum(_v) -> bool + + @param _v: uchar Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) -> 'bool' inf_set_unicode_strlits(_v=True) -> bool + + @param _v: bool Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) -> 'bool' inf_set_use_allasm(_v=True) -> bool + + @param _v: bool Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) -> 'bool' inf_set_use_flirt(_v=True) -> bool + + @param _v: bool Help on function inf_set_use_gcc_layout in module ida_ida: inf_set_use_gcc_layout(*args) -> 'bool' inf_set_use_gcc_layout(_v=True) -> bool + + @param _v: bool Help on function inf_set_version in module ida_ida: inf_set_version(*args) -> 'bool' inf_set_version(_v) -> bool + + @param _v: ushort Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) -> 'bool' inf_set_xrefflag(_v) -> bool + + @param _v: uchar Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) -> 'bool' inf_set_xrefnum(_v) -> bool + + @param _v: uchar Help on function inf_should_create_stkvars in module ida_ida: @@ -37072,619 +44217,46 @@ Help on function inf_use_flirt in module ida_ida: inf_use_flirt(*args) -> 'bool' inf_use_flirt() -> bool +Help on function is_database_busy in module ida_ida: + +is_database_busy(*args) -> 'bool' + is_database_busy() -> bool + Check if the database is busy (e.g. performing some critical operations and + cannot be safely accessed) + Help on function is_filetype_like_binary in module ida_ida: is_filetype_like_binary(*args) -> 'bool' is_filetype_like_binary(ft) -> bool - - Is unstructured input file? - - @param ft (C++: filetype_t) + @param ft: (C++: filetype_t) enum filetype_t Help on function in module ida_ida: lambda *args +Help on function switch_dbctx in module ida_ida: + +switch_dbctx(*args) -> 'dbctx_t *' + switch_dbctx(idx) -> dbctx_t * + Switch to the database with the provided context ID + + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr + Help on function to_ea in module ida_ida: to_ea(*args) -> 'ea_t' to_ea(reg_cs, reg_ip) -> ea_t - - Convert (sel,off) value to a linear address. - - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" +Module "ida_idaapi"s docstring: +"""None""" -ida_ida.ABI_BIGARG_ALIGN -""" -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - -use natural type alignment for argument if the alignment exceeds -native word size -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -the target assembler - -may use constructs not supported by -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === Help on class CustomIDAMemo in module ida_kernwin: class CustomIDAMemo(View_Hooks) @@ -37784,7 +44356,10 @@ class CustomIDAMemo(View_Hooks) | @param values: A dictionary of 'int -> node_info_t' objects. | | __init__(self) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _get_cb(self, view, cb_name) | @@ -37794,36 +44369,80 @@ class CustomIDAMemo(View_Hooks) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -37840,8 +44459,10 @@ class CustomIDAMemo(View_Hooks) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -37851,6 +44472,9 @@ class CustomIDAMemo(View_Hooks) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -37901,9 +44525,8 @@ class __IDAPython_Completion_Util(builtins.object) Help on function IDAPython_ExecScript in module ida_idaapi: -IDAPython_ExecScript(script, g, print_error=True) +IDAPython_ExecScript(path, g, print_error=True) Run the specified script. - It also addresses http://code.google.com/p/idapython/issues/detail?id=42 This function is used by the low-level plugin code. @@ -37920,7 +44543,7 @@ IDAPython_FormatExc(etype, value=None, tb=None, limit=None) Help on function IDAPython_LoadProcMod in module ida_idaapi: -IDAPython_LoadProcMod(script, g, print_error=True) +IDAPython_LoadProcMod(path, g, print_error=True) Load processor module. Help on function IDAPython_UnLoadProcMod in module ida_idaapi: @@ -38047,32 +44670,10 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__) | | value -Help on __BC695 in module ida_idaapi object: +Help on function TRUNC in module ida_idaapi: -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) +TRUNC(ea) + Truncate EA for the current application bitness Help on IDAPython_displayhook in module ida_idaapi object: @@ -38101,33 +44702,6 @@ class IDAPython_displayhook(builtins.object) | __weakref__ | list of weak references to the object (if defined) -Help on class __BC695 in module ida_idaapi: - -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on class __IDAPython_Completion_Util in module ida_idaapi: class __IDAPython_Completion_Util(builtins.object) @@ -38183,6 +44757,14 @@ Help on function _listify_types in module ida_idaapi: _listify_types(*classes) +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + Help on function _qvector_back in module ida_idaapi: _qvector_back(self) @@ -38210,7 +44792,7 @@ Help on function as_cstr in module ida_idaapi: as_cstr(val) Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) - It scans for the first and returns the string value up to that point. + It scans for the first \x00 and returns the string value up to that point. Help on function as_int32 in module ida_idaapi: @@ -38240,8 +44822,6 @@ Help on function disable_script_timeout in module ida_idaapi: disable_script_timeout(*args) -> 'void' disable_script_timeout() - - Disables the script timeout and hides the script wait box. Calling L{set_script_timeout} will not have any effects until the script is compiled and executed again @@ -38251,36 +44831,34 @@ Help on function enable_extlang_python in module ida_idaapi: enable_extlang_python(*args) -> 'void' enable_extlang_python(enable) - - Enables or disables Python extlang. When enabled, all expressions will be evaluated by Python. + @param enable: Set to True to enable, False otherwise Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) -> 'void' enable_python_cli(enable) + + @param enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) -> 'PyObject *' - format_basestring(_in) -> PyObject * + format_basestring(_in) -> str + + @param _in: PyObject * Help on function get_inf_structure in module ida_idaapi: get_inf_structure(*args) -> 'idainfo *' get_inf_structure() -> idainfo - - Returns the global variable 'inf' (an instance of idainfo structure, see ida.hpp) Help on class loader_input_t in module ida_idaapi: class loader_input_t(builtins.object) - | Proxy of C++ loader_input_t class. - | - | | A helper class to work with linput_t related functions. | This class is also used by file loaders scripts. | @@ -38289,8 +44867,7 @@ class loader_input_t(builtins.object) | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t | - | - | Closes the file + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -38299,17 +44876,17 @@ class loader_input_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | file2base(self, *args) -> 'int' | file2base(self, pos, ea1, ea2, patchable) -> int - | - | | Load portion of file into the database | This function will include (ea1..ea2) into the addressing space of the | program (make it enabled) - | @param li: pointer ot input source + | | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses | @param patchable: should the kernel remember correspondance of | file offsets to linear addresses. | @return: 1-ok,0-read error, a warning is displayed @@ -38319,83 +44896,78 @@ class loader_input_t(builtins.object) | | get_byte(self, *args) -> 'PyObject *' | get_byte(self) -> PyObject * - | - | | Reads a single byte from the file. Returns None if EOF or the read byte | | get_linput(self, *args) -> 'linput_t *' | get_linput(self) -> linput_t * | | gets(self, *args) -> 'PyObject *' - | gets(self, len) -> PyObject * - | - | + | gets(self, len) -> str | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t | | getz(self, *args) -> 'PyObject *' | getz(self, sz, fpos=-1) -> PyObject * - | - | | Returns a zero terminated string at the given position + | | @param sz: maximum size of the string | @param fpos: if != -1 then seek will be performed before reading | @return: The string or None on failure. | | open(self, *args) -> 'bool' | open(self, filename, remote=False) -> bool - | - | | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool | @return: Boolean | | open_memory(self, *args) -> 'bool' | open_memory(self, start, size=0) -> bool - | - | | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) | This linput will use dbg->read_memory() to read data + | | @param start: starting address of the input | @param size: size of the memory range to represent as linput | if unknown, may be passed as 0 | | opened(self, *args) -> 'bool' | opened(self) -> bool - | - | | Checks if the file is opened or not | | read(self, *args) -> 'PyObject *' - | read(self, size) -> PyObject * - | - | + | read(self, size) -> bytes or None | Reads from the file. Returns the buffer or None + | + | @param size: size_t | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool | | seek(self, *args) -> 'int64' | seek(self, pos, whence=SEEK_SET) -> int64 - | - | | Set input source position + | + | @param pos: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | set_linput(self, *args) -> 'void' | set_linput(self, linput) - | - | | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * | | size(self, *args) -> 'int64' | size(self) -> int64 | | tell(self, *args) -> 'int64' | tell(self) -> int64 - | - | | Returns the current position | | ---------------------------------------------------------------------- @@ -38403,15 +44975,19 @@ class loader_input_t(builtins.object) | | from_capsule(*args) -> 'loader_input_t *' | from_capsule(pycapsule) -> loader_input_t + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'loader_input_t *' | from_fp(fp) -> loader_input_t - | - | | A static method to construct an instance from a FILE* + | + | @param fp: FILE * | | from_linput(*args) -> 'loader_input_t *' | from_linput(linput) -> loader_input_t + | + | @param linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38420,7 +44996,7 @@ class loader_input_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -38432,16 +45008,22 @@ Help on function loader_input_t_from_capsule in module ida_idaapi: loader_input_t_from_capsule(*args) -> 'loader_input_t *' loader_input_t_from_capsule(pycapsule) -> loader_input_t + + @param pycapsule: PyObject * Help on function loader_input_t_from_fp in module ida_idaapi: loader_input_t_from_fp(*args) -> 'loader_input_t *' loader_input_t_from_fp(fp) -> loader_input_t + + @param fp: FILE * Help on function loader_input_t_from_linput in module ida_idaapi: loader_input_t_from_linput(*args) -> 'loader_input_t *' loader_input_t_from_linput(linput) -> loader_input_t + + @param linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -38481,6 +45063,8 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) -> 'PyObject *' parse_command_line3(cmdline) -> PyObject * + + @param cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -38505,6 +45089,29 @@ class plugin_t(pyidc_opaque_object_t) | | __idc_cvt_id__ = 2 +Help on class plugmod_t in module ida_idaapi: + +class plugmod_t(pyidc_opaque_object_t) + | Base class for all scripted multi-plugins. + | + | Method resolution order: + | plugmod_t + | pyidc_opaque_object_t + | builtins.object + | + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + Help on class py_clinked_object_t in module ida_idaapi: class py_clinked_object_t(pyidc_opaque_object_t) @@ -38572,31 +45179,49 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) -> 'TWidget *' pycim_get_widget(_self) -> TWidget * + + @param self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) -> 'void' pycim_view_close(_self) + + @param self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) -> 'PyObject *' - pygc_create_groups(_self, groups_infos) -> PyObject * + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * Help on function pygc_delete_groups in module ida_idaapi: pygc_delete_groups(*args) -> 'PyObject *' - pygc_delete_groups(_self, groups, new_current) -> PyObject * + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) -> 'void' pygc_refresh(_self) + + @param self: PyObject * Help on function pygc_set_groups_visibility in module ida_idaapi: pygc_set_groups_visibility(*args) -> 'PyObject *' - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -38674,8 +45299,6 @@ Help on function set_script_timeout in module ida_idaapi: set_script_timeout(*args) -> 'int' set_script_timeout(timeout) -> int - - Changes the script timeout value. The script wait box dialog will be hidden and shown again when the timeout elapses. See also L{disable_script_timeout}. @@ -38690,20 +45313,41 @@ struct_unpack(buffer, signed=False, offs=0) This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. +Module "ida_idc"s docstring: +"""None""" + Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + + @param slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + + @param slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" Help on Appcall__ in module ida_idd object: @@ -38732,15 +45376,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -38773,8 +45415,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -38843,15 +45484,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -38884,8 +45523,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -39009,8 +45647,7 @@ class Appcall_callable__(builtins.object) | @param dest_ea: If packing to idb this will be the store location | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) | - If packing to the database then a return code is returned (0 is success) | | ---------------------------------------------------------------------- @@ -39062,6 +45699,12 @@ Help on function appcall in module ida_idd: appcall(*args) -> 'PyObject *' appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -39088,10 +45731,10 @@ class bptaddr_t(builtins.object) | list of weak references to the object (if defined) | | hea - | bptaddr_t_hea_get(self) -> ea_t + | hea | | kea - | bptaddr_t_kea_get(self) -> ea_t + | kea | | thisown | The membership flag @@ -39105,12 +45748,16 @@ class call_stack_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -39127,16 +45774,16 @@ class call_stack_info_t(builtins.object) | list of weak references to the object (if defined) | | callea - | call_stack_info_t_callea_get(self) -> ea_t + | callea | | fp - | call_stack_info_t_fp_get(self) -> ea_t + | fp | | funcea - | call_stack_info_t_funcea_get(self) -> ea_t + | funcea | | funcok - | call_stack_info_t_funcok_get(self) -> bool + | funcok | | thisown | The membership flag @@ -39146,22 +45793,28 @@ class call_stack_info_t(builtins.object) | | __hash__ = None -Help on class call_stack_t in module ida_idd: +Help on class call_stack_info_vec_t in module ida_idd: -class call_stack_t(builtins.object) +class call_stack_info_vec_t(builtins.object) | Proxy of C++ qvector< call_stack_info_t > class. | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t | | __init__(self, *args) - | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t + | __init__(self) -> call_stack_info_vec_t + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -39171,30 +45824,42 @@ class call_stack_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & | - | __swig_destroy__ = delete_call_stack_t(...) - | delete_call_stack_t(self) + | __swig_destroy__ = delete_call_stack_info_vec_t(...) + | delete_call_stack_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -39207,39 +45872,58 @@ class call_stack_t(builtins.object) | | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) -> 'call_stack_info_t *' | extract(self) -> call_stack_info_t | | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | find(self, x) -> call_stack_info_t - | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'call_stack_info_t &' | push_back(self, x) + | + | @param x: call_stack_info_t const & + | | push_back(self) -> call_stack_info_t | | qclear(self, *args) -> 'void' @@ -39247,16 +45931,26 @@ class call_stack_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39278,42 +45972,227 @@ class call_stack_t(builtins.object) | | __hash__ = None +Help on class call_stack_t in module ida_idd: + +class call_stack_t(call_stack_info_vec_t) + | Proxy of C++ call_stack_t class. + | + | Method resolution order: + | call_stack_t + | call_stack_info_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> call_stack_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_call_stack_t(...) + | delete_call_stack_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from call_stack_info_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __getitem__(self, *args) -> 'call_stack_info_t const &' + | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | at(self, *args) -> 'call_stack_info_t const &' + | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | begin(self) -> call_stack_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | end(self) -> call_stack_info_t + | + | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | + | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator + | + | extract(self, *args) -> 'call_stack_info_t *' + | extract(self) -> call_stack_info_t + | + | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'call_stack_info_t &' + | push_back(self, x) + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from call_stack_info_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from call_stack_info_vec_t: + | + | __hash__ = None + Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) -> 'bool' can_exc_continue(ev) -> bool + + @param ev: debug_event_t const * Help on function cleanup_appcall in module ida_idd: cleanup_appcall(*args) -> 'error_t' cleanup_appcall(tid) -> error_t - - Cleanup after manual appcall. - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code Help on function dbg_appcall in module ida_idd: dbg_appcall(*args) -> 'error_t' dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - - Call a function from the debugged application. - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code + @param retval: (C++: idc_value_t *) function return value + * for APPCALL_MANUAL, r will hold the new stack point value + * for APPCALL_DEBEV, r will hold the exception information upon failure and the + return code will be eExecThrow + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code Help on built-in function dbg_can_query in module _ida_dbg: @@ -39324,32 +46203,27 @@ Help on function dbg_get_memory_info in module ida_idd: dbg_get_memory_info(*args) -> 'PyObject *' dbg_get_memory_info() -> PyObject * - - This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active + + @return: None if no debugger is active tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) Help on function dbg_get_name in module ida_idd: dbg_get_name(*args) -> 'PyObject *' dbg_get_name() -> PyObject * - - This function returns the current debugger's name. + @return: Debugger name or None if no debugger is active Help on function dbg_get_registers in module ida_idd: dbg_get_registers(*args) -> 'PyObject *' dbg_get_registers() -> PyObject * - - This function returns the register definition from the currently loaded debugger. Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded + + @return: None if no debugger is loaded tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) @@ -39357,33 +46231,32 @@ Help on function dbg_get_thread_sreg_base in module ida_idd: dbg_get_thread_sreg_base(*args) -> 'PyObject *' dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * - - Returns the segment register base value + @param tid: thread id @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' + @return: - The base as an 'ea' - Or None on failure Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) -> 'PyObject *' - dbg_write_memory(ea, buf) -> PyObject * - - + dbg_write_memory(ea, buf) -> bool Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & @return: Boolean Help on class debapp_attrs_t in module ida_idd: @@ -39411,16 +46284,16 @@ class debapp_attrs_t(builtins.object) | list of weak references to the object (if defined) | | addrsize - | debapp_attrs_t_addrsize_get(self) -> int + | addrsize | | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 + | cbsize | | is_be - | debapp_attrs_t_is_be_get(self) -> int + | is_be | | platform - | debapp_attrs_t_platform_get(self) -> qstring * + | platform | | thisown | The membership flag @@ -39435,6 +46308,8 @@ class debug_event_t(builtins.object) | __init__(self, *args) | __init__(self) -> debug_event_t | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | __repr__ = _swig_repr(self) | @@ -39443,26 +46318,30 @@ class debug_event_t(builtins.object) | | bpt(self, *args) -> 'bptaddr_t const &' | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t | | bpt_ea(self, *args) -> 'ea_t' | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. | | clear(self, *args) -> 'void' | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT | | clear_all(self, *args) -> 'void' | clear_all(self) | | copy(self, *args) -> 'debug_event_t &' | copy(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | eid(self, *args) -> 'event_id_t' | eid(self) -> event_id_t + | Event code. | | exc(self, *args) -> 'excinfo_t const &' | exc(self) -> excinfo_t - | exc(self) -> excinfo_t | | exit_code(self, *args) -> 'int const &' | exit_code(self) -> int const & @@ -39473,25 +46352,36 @@ class debug_event_t(builtins.object) | | modinfo(self, *args) -> 'modinfo_t const &' | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t | | set_bpt(self, *args) -> 'bptaddr_t &' | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) -> 'void' | set_eid(self, id) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t | | set_exception(self, *args) -> 'excinfo_t &' | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) -> 'void' | set_exit_code(self, id, code) + | + | @param id: enum event_id_t + | @param code: int | | set_info(self, *args) -> 'qstring &' | set_info(self, id) -> qstring & + | + | @param id: enum event_id_t | | set_modinfo(self, *args) -> 'modinfo_t &' | set_modinfo(self, id) -> modinfo_t + | + | @param id: enum event_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39503,19 +46393,592 @@ class debug_event_t(builtins.object) | list of weak references to the object (if defined) | | ea - | debug_event_t_ea_get(self) -> ea_t + | ea | | handled - | debug_event_t_handled_get(self) -> bool + | handled | | pid - | debug_event_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag | | tid - | debug_event_t_tid_get(self) -> thid_t + | tid + +Help on class debugger_t in module ida_idd: + +class debugger_t(builtins.object) + | Proxy of C++ debugger_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debugger_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debugger_t(...) + | delete_debugger_t(self) + | + | _debugger_t__get_bpt_bytes = __get_bpt_bytes(self, *args) -> 'bytevec_t' + | __get_bpt_bytes(self) -> bytevec_t + | + | _debugger_t__get_nregs = __get_nregs(self, *args) -> 'int' + | __get_nregs(self) -> int + | + | _debugger_t__get_regclasses = __get_regclasses(self, *args) -> 'PyObject *' + | __get_regclasses(self) -> PyObject * + | + | _debugger_t__get_registers = __get_registers(self, *args) -> 'dynamic_wrapped_array_t< register_info_t >' + | __get_registers(self) -> dyn_register_info_array + | + | attach_process(self, *args) -> 'drc_t' + | attach_process(self, pid, event_id, dbg_proc_flags) -> drc_t + | + | @param pid: pid_t + | @param event_id: int + | @param dbg_proc_flags: uint32 + | + | bin_search(self, *args) -> 'drc_t' + | bin_search(self, start_ea, end_ea, data, srch_flags) -> drc_t + | + | @param start_ea: ea_t + | @param end_ea: ea_t + | @param data: compiled_binpat_vec_t const & + | @param srch_flags: int + | + | cache_block_size(self, *args) -> 'size_t' + | cache_block_size(self) -> size_t + | + | can_continue_from_bpt(self, *args) -> 'bool' + | can_continue_from_bpt(self) -> bool + | + | can_debug_standalone_dlls(self, *args) -> 'bool' + | can_debug_standalone_dlls(self) -> bool + | + | check_bpt(self, *args) -> 'drc_t' + | check_bpt(self, bptvc, type, ea, len) -> drc_t + | + | @param bptvc: int * + | @param type: bpttype_t + | @param ea: ea_t + | @param len: int + | + | cleanup_appcall(self, *args) -> 'drc_t' + | cleanup_appcall(self, tid) -> drc_t + | + | @param tid: thid_t + | + | close_file(self, *args) -> 'void' + | close_file(self, fn) + | + | @param fn: int + | + | dbg_enable_trace(self, *args) -> 'bool' + | dbg_enable_trace(self, tid, enable, trace_flags) -> bool + | + | @param tid: thid_t + | @param enable: bool + | @param trace_flags: int + | + | detach_process(self, *args) -> 'drc_t' + | detach_process(self) -> drc_t + | + | eval_lowcnd(self, *args) -> 'drc_t' + | eval_lowcnd(self, tid, ea) -> drc_t + | + | @param tid: thid_t + | @param ea: ea_t + | + | exit_process(self, *args) -> 'drc_t' + | exit_process(self) -> drc_t + | + | fake_memory(self, *args) -> 'bool' + | fake_memory(self) -> bool + | + | get_debapp_attrs(self, *args) -> 'bool' + | get_debapp_attrs(self, out_pattrs) -> bool + | + | @param out_pattrs: debapp_attrs_t * + | + | get_debmod_extensions(self, *args) -> 'void const *' + | get_debmod_extensions(self) -> void const * + | + | get_debug_event(self, *args) -> 'gdecode_t' + | get_debug_event(self, event, timeout_ms) -> gdecode_t + | + | @param event: debug_event_t * + | @param timeout_ms: int + | + | get_memory_info(self, *args) -> 'drc_t' + | get_memory_info(self, ranges) -> drc_t + | + | @param ranges: meminfo_vec_t & + | + | get_processes(self, *args) -> 'drc_t' + | get_processes(self, procs) -> drc_t + | + | @param procs: procinfo_vec_t * + | + | get_srcinfo_path(self, *args) -> 'bool' + | get_srcinfo_path(self, path, base) -> bool + | + | @param path: qstring * + | @param base: ea_t + | + | has_appcall(self, *args) -> 'bool' + | has_appcall(self) -> bool + | + | has_attach_process(self, *args) -> 'bool' + | has_attach_process(self) -> bool + | + | has_check_bpt(self, *args) -> 'bool' + | has_check_bpt(self) -> bool + | + | has_detach_process(self, *args) -> 'bool' + | has_detach_process(self) -> bool + | + | has_get_processes(self, *args) -> 'bool' + | has_get_processes(self) -> bool + | + | has_map_address(self, *args) -> 'bool' + | has_map_address(self) -> bool + | + | has_open_file(self, *args) -> 'bool' + | has_open_file(self) -> bool + | + | has_request_pause(self, *args) -> 'bool' + | has_request_pause(self) -> bool + | + | has_rexec(self, *args) -> 'bool' + | has_rexec(self) -> bool + | + | has_set_exception_info(self, *args) -> 'bool' + | has_set_exception_info(self) -> bool + | + | has_set_resume_mode(self, *args) -> 'bool' + | has_set_resume_mode(self) -> bool + | + | has_soft_bpt(self, *args) -> 'bool' + | has_soft_bpt(self) -> bool + | + | has_thread_continue(self, *args) -> 'bool' + | has_thread_continue(self) -> bool + | + | has_thread_get_sreg_base(self, *args) -> 'bool' + | has_thread_get_sreg_base(self) -> bool + | + | has_thread_suspend(self, *args) -> 'bool' + | has_thread_suspend(self) -> bool + | + | has_update_call_stack(self, *args) -> 'bool' + | has_update_call_stack(self) -> bool + | + | init_debugger(self, *args) -> 'bool' + | init_debugger(self, hostname, portnum, password) -> bool + | + | @param hostname: char const * + | @param portnum: int + | @param password: char const * + | + | is_remote(self, *args) -> 'bool' + | is_remote(self) -> bool + | + | is_resmod_avail(self, *args) -> 'bool' + | is_resmod_avail(self, resmod) -> bool + | + | @param resmod: int + | + | is_safe(self, *args) -> 'bool' + | is_safe(self) -> bool + | + | is_tracing_enabled(self, *args) -> 'bool' + | is_tracing_enabled(self, tid, tracebit) -> bool + | + | @param tid: thid_t + | @param tracebit: int + | + | map_address(self, *args) -> 'ea_t' + | map_address(self, off, regs, regnum) -> ea_t + | + | @param off: ea_t + | @param regs: regval_t const * + | @param regnum: int + | + | may_disturb(self, *args) -> 'bool' + | may_disturb(self) -> bool + | + | may_take_exit_snapshot(self, *args) -> 'bool' + | may_take_exit_snapshot(self) -> bool + | + | must_have_hostname(self, *args) -> 'bool' + | must_have_hostname(self) -> bool + | + | open_file(self, *args) -> 'int' + | open_file(self, file, fsize, readonly) -> int + | + | @param file: char const * + | @param fsize: uint64 * + | @param readonly: bool + | + | read_file(self, *args) -> 'ssize_t' + | read_file(self, fn, off, buf, size) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void * + | @param size: size_t + | + | read_memory(self, *args) -> 'drc_t' + | read_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void * + | @param size: size_t + | + | read_registers(self, *args) -> 'drc_t' + | read_registers(self, tid, clsmask, values) -> drc_t + | + | @param tid: thid_t + | @param clsmask: int + | @param values: regval_t * + | + | rebase_if_required_to(self, *args) -> 'void' + | rebase_if_required_to(self, new_base) + | + | @param new_base: ea_t + | + | regs(self, *args) -> 'register_info_t &' + | regs(self, idx) -> register_info_t + | + | @param idx: int + | + | request_pause(self, *args) -> 'drc_t' + | request_pause(self) -> drc_t + | + | resume(self, *args) -> 'drc_t' + | resume(self, event) -> drc_t + | + | @param event: debug_event_t const * + | + | rexec(self, *args) -> 'int' + | rexec(self, cmdline) -> int + | + | @param cmdline: char const * + | + | send_ioctl(self, *args) -> 'drc_t' + | send_ioctl(self, fn, buf, poutbuf, poutsize) -> drc_t + | + | @param fn: int + | @param buf: void const * + | @param poutbuf: void ** + | @param poutsize: ssize_t * + | + | set_exception_info(self, *args) -> 'void' + | set_exception_info(self, info, qty) + | + | @param info: exception_info_t const * + | @param qty: int + | + | set_resume_mode(self, *args) -> 'drc_t' + | set_resume_mode(self, tid, resmod) -> drc_t + | + | @param tid: thid_t + | @param resmod: enum resume_mode_t + | + | start_process(self, *args) -> 'drc_t' + | start_process(self, path, args, startdir, dbg_proc_flags, input_path, input_file_crc32) -> drc_t + | + | @param path: char const * + | @param args: char const * + | @param startdir: char const * + | @param dbg_proc_flags: uint32 + | @param input_path: char const * + | @param input_file_crc32: uint32 + | + | supports_debthread(self, *args) -> 'bool' + | supports_debthread(self) -> bool + | + | supports_lowcnds(self, *args) -> 'bool' + | supports_lowcnds(self) -> bool + | + | suspended(self, *args) -> 'void' + | suspended(self, dlls_added, thr_names=None) + | + | @param dlls_added: bool + | @param thr_names: thread_name_vec_t * + | + | term_debugger(self, *args) -> 'bool' + | term_debugger(self) -> bool + | + | thread_continue(self, *args) -> 'drc_t' + | thread_continue(self, tid) -> drc_t + | + | @param tid: thid_t + | + | thread_get_sreg_base(self, *args) -> 'drc_t' + | thread_get_sreg_base(self, answer, tid, sreg_value) -> drc_t + | + | @param answer: ea_t * + | @param tid: thid_t + | @param sreg_value: int + | + | thread_suspend(self, *args) -> 'drc_t' + | thread_suspend(self, tid) -> drc_t + | + | @param tid: thid_t + | + | update_bpts(self, *args) -> 'drc_t' + | update_bpts(self, nbpts, bpts, nadd, ndel) -> drc_t + | + | @param nbpts: int * + | @param bpts: update_bpt_info_t * + | @param nadd: int + | @param ndel: int + | + | update_call_stack(self, *args) -> 'drc_t' + | update_call_stack(self, tid, trace) -> drc_t + | + | @param tid: thid_t + | @param trace: call_stack_t * + | + | update_lowcnds(self, *args) -> 'drc_t' + | update_lowcnds(self, nupdated, lowcnds, nlowcnds) -> drc_t + | + | @param nupdated: int * + | @param lowcnds: lowcnd_t const * + | @param nlowcnds: int + | + | use_memregs(self, *args) -> 'bool' + | use_memregs(self) -> bool + | + | use_sregs(self, *args) -> 'bool' + | use_sregs(self) -> bool + | + | virtual_threads(self, *args) -> 'bool' + | virtual_threads(self) -> bool + | + | write_file(self, *args) -> 'ssize_t' + | write_file(self, fn, off, buf) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void const * + | + | write_memory(self, *args) -> 'drc_t' + | write_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void const * + | @param size: size_t + | + | write_register(self, *args) -> 'drc_t' + | write_register(self, tid, regidx, value) -> drc_t + | + | @param tid: thid_t + | @param regidx: int + | @param value: regval_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt_bytes + | __get_bpt_bytes(self) -> bytevec_t + | + | bpt_size + | bpt_size + | + | default_regclasses + | default_regclasses + | + | filetype + | filetype + | + | flags + | flags + | + | flags2 + | flags2 + | + | id + | id + | + | memory_page_size + | memory_page_size + | + | name + | name + | + | nregs + | __get_nregs(self) -> int + | + | processor + | processor + | + | regclasses + | __get_regclasses(self) -> PyObject * + | + | registers + | __get_registers(self) -> dyn_register_info_array + | + | resume_modes + | resume_modes + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_appcall = 33 + | + | ev_attach_process = 4 + | + | ev_bin_search = 41 + | + | ev_check_bpt = 23 + | + | ev_cleanup_appcall = 34 + | + | ev_close_file = 27 + | + | ev_dbg_enable_trace = 37 + | + | ev_detach_process = 5 + | + | ev_eval_lowcnd = 35 + | + | ev_exit_process = 9 + | + | ev_get_debapp_attrs = 6 + | + | ev_get_debmod_extensions = 31 + | + | ev_get_debug_event = 10 + | + | ev_get_memory_info = 20 + | + | ev_get_processes = 2 + | + | ev_get_srcinfo_path = 40 + | + | ev_init_debugger = 0 + | + | ev_is_tracing_enabled = 38 + | + | ev_map_address = 30 + | + | ev_open_file = 26 + | + | ev_read_file = 28 + | + | ev_read_memory = 21 + | + | ev_read_registers = 17 + | + | ev_rebase_if_required_to = 7 + | + | ev_request_pause = 8 + | + | ev_resume = 11 + | + | ev_rexec = 39 + | + | ev_send_ioctl = 36 + | + | ev_set_exception_info = 12 + | + | ev_set_resume_mode = 16 + | + | ev_start_process = 3 + | + | ev_suspended = 13 + | + | ev_term_debugger = 1 + | + | ev_thread_continue = 15 + | + | ev_thread_get_sreg_base = 19 + | + | ev_thread_suspend = 14 + | + | ev_update_bpts = 24 + | + | ev_update_call_stack = 32 + | + | ev_update_lowcnds = 25 + | + | ev_write_file = 29 + | + | ev_write_memory = 22 + | + | ev_write_register = 18 + +Help on class dyn_register_info_array in module ida_idd: + +class dyn_register_info_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< register_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'register_info_t const &' + | __getitem__(self, i) -> register_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_register_info_array + | + | @param _data: register_info_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: register_info_t const & + | + | __swig_destroy__ = delete_dyn_register_info_array(...) + | delete_dyn_register_info_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag Help on class exception_info_t in module ida_idd: @@ -39527,6 +46990,11 @@ class exception_info_t(builtins.object) | __init__(self, *args) | __init__(self) -> exception_info_t | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * | | __repr__ = _swig_repr(self) | @@ -39535,9 +47003,11 @@ class exception_info_t(builtins.object) | | break_on(self, *args) -> 'bool' | break_on(self) -> bool + | Should we break on the exception? | | handle(self, *args) -> 'bool' | handle(self) -> bool + | Should we handle the exception? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39549,16 +47019,16 @@ class exception_info_t(builtins.object) | list of weak references to the object (if defined) | | code - | exception_info_t_code_get(self) -> uint + | code | | desc - | exception_info_t_desc_get(self) -> qstring * + | desc | | flags - | exception_info_t_flags_get(self) -> uint32 + | flags | | name - | exception_info_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -39588,16 +47058,16 @@ class excinfo_t(builtins.object) | list of weak references to the object (if defined) | | can_cont - | excinfo_t_can_cont_get(self) -> bool + | can_cont | | code - | excinfo_t_code_get(self) -> uint32 + | code | | ea - | excinfo_t_ea_get(self) -> ea_t + | ea | | info - | excinfo_t_info_get(self) -> qstring * + | info | | thisown | The membership flag @@ -39611,10 +47081,14 @@ class excvec_t(builtins.object) | | __getitem__(self, *args) -> 'exception_info_t const &' | __getitem__(self, i) -> exception_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -39626,19 +47100,23 @@ class excvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: exception_info_t const & | | __swig_destroy__ = delete_excvec_t(...) | delete_excvec_t(self) | | at(self, *args) -> 'exception_info_t const &' | at(self, _idx) -> exception_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< exception_info_t >::const_iterator' | begin(self) -> exception_info_t - | begin(self) -> exception_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -39651,11 +47129,16 @@ class excvec_t(builtins.object) | | end(self, *args) -> 'qvector< exception_info_t >::const_iterator' | end(self) -> exception_info_t - | end(self) -> exception_info_t | | erase(self, *args) -> 'qvector< exception_info_t >::iterator' | erase(self, it) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | | erase(self, first, last) -> exception_info_t + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator | | extract(self, *args) -> 'exception_info_t *' | extract(self) -> exception_info_t @@ -39665,18 +47148,29 @@ class excvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=exception_info_t()) + | + | @param x: exception_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: exception_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< exception_info_t >::iterator' | insert(self, it, x) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'exception_info_t &' | push_back(self, x) + | + | @param x: exception_info_t const & + | | push_back(self) -> exception_info_t | | qclear(self, *args) -> 'void' @@ -39684,16 +47178,26 @@ class excvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: exception_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< exception_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39710,62 +47214,105 @@ class excvec_t(builtins.object) | thisown | The membership flag +Help on function get_dbg in module ida_idd: + +get_dbg(*args) -> 'debugger_t *' + get_dbg() -> debugger_t + Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) -> 'ea_t' get_event_bpt_hea(ev) -> ea_t + + @param ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) -> 'uint' get_event_exc_code(ev) -> uint + + @param ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) -> 'ea_t' get_event_exc_ea(ev) -> ea_t + + @param ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) -> 'size_t' get_event_exc_info(ev) -> str + + @param ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) -> 'size_t' get_event_info(ev) -> str + + @param ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) -> 'ea_t' get_event_module_base(ev) -> ea_t + + @param ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) -> 'size_t' get_event_module_name(ev) -> str + + @param ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) -> 'asize_t' get_event_module_size(ev) -> asize_t + + @param ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: -class meminfo_vec_t(builtins.object) - | Proxy of C++ qvector< memory_info_t > class. +class meminfo_vec_t(meminfo_vec_template_t) + | Proxy of C++ meminfo_vec_t class. + | + | Method resolution order: + | meminfo_vec_t + | meminfo_vec_template_t + | builtins.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_meminfo_vec_t(...) + | delete_meminfo_vec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from meminfo_vec_template_t: + | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & | | __getitem__(self, *args) -> 'memory_info_t const &' | __getitem__(self, i) -> memory_info_t - | - | __init__(self, *args) - | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -39775,30 +47322,37 @@ class meminfo_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< memory_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_meminfo_vec_t(...) - | delete_meminfo_vec_t(self) + | + | @param i: size_t + | @param v: memory_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & | | at(self, *args) -> 'memory_info_t const &' | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' | begin(self) -> memory_info_t - | begin(self) -> memory_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -39811,39 +47365,58 @@ class meminfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' | end(self) -> memory_info_t - | end(self) -> memory_info_t | | erase(self, *args) -> 'qvector< memory_info_t >::iterator' | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator | | extract(self, *args) -> 'memory_info_t *' | extract(self) -> memory_info_t | | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' | find(self, x) -> memory_info_t - | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: memory_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memory_info_t >::iterator' | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memory_info_t &' | push_back(self, x) + | + | @param x: memory_info_t const & + | | push_back(self) -> memory_info_t | | qclear(self, *args) -> 'void' @@ -39851,16 +47424,202 @@ class meminfo_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< memory_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from meminfo_vec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from meminfo_vec_template_t: + | + | __hash__ = None + +Help on class meminfo_vec_template_t in module ida_idd: + +class meminfo_vec_template_t(builtins.object) + | Proxy of C++ qvector< memory_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __getitem__(self, *args) -> 'memory_info_t const &' + | __getitem__(self, i) -> memory_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_template_t + | __init__(self, x) -> meminfo_vec_template_t + | + | @param x: qvector< memory_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memory_info_t const & + | + | __swig_destroy__ = delete_meminfo_vec_template_t(...) + | delete_meminfo_vec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & + | + | at(self, *args) -> 'memory_info_t const &' + | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | begin(self) -> memory_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | end(self) -> memory_info_t + | + | erase(self, *args) -> 'qvector< memory_info_t >::iterator' + | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | + | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator + | + | extract(self, *args) -> 'memory_info_t *' + | extract(self) -> memory_info_t + | + | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: memory_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memory_info_t >::iterator' + | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memory_info_t &' + | push_back(self, x) + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memory_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39896,12 +47655,16 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -39912,19 +47675,19 @@ class memory_info_t(ida_range.range_t) | Data descriptors defined here: | | bitness - | memory_info_t_bitness_get(self) -> uchar + | bitness | | name - | memory_info_t_name_get(self) -> qstring * + | name | | perm - | memory_info_t_perm_get(self) -> uchar + | perm | | sbase - | memory_info_t_sbase_get(self) -> ea_t + | sbase | | sclass - | memory_info_t_sclass_get(self) -> qstring * + | sclass | | thisown | The membership flag @@ -39939,37 +47702,62 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -39980,15 +47768,11 @@ class memory_info_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class modinfo_t in module ida_idd: @@ -40015,16 +47799,16 @@ class modinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | modinfo_t_base_get(self) -> ea_t + | base | | name - | modinfo_t_name_get(self) -> qstring * + | name | | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t + | rebase_to | | size - | modinfo_t_size_get(self) -> asize_t + | size | | thisown | The membership flag @@ -40054,10 +47838,10 @@ class process_info_t(builtins.object) | list of weak references to the object (if defined) | | name - | process_info_t_name_get(self) -> qstring * + | name | | pid - | process_info_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag @@ -40071,10 +47855,14 @@ class procinfo_vec_t(builtins.object) | | __getitem__(self, *args) -> 'process_info_t const &' | __getitem__(self, i) -> process_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -40086,19 +47874,23 @@ class procinfo_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: process_info_t const & | | __swig_destroy__ = delete_procinfo_vec_t(...) | delete_procinfo_vec_t(self) | | at(self, *args) -> 'process_info_t const &' | at(self, _idx) -> process_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< process_info_t >::const_iterator' | begin(self) -> process_info_t - | begin(self) -> process_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -40111,11 +47903,16 @@ class procinfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< process_info_t >::const_iterator' | end(self) -> process_info_t - | end(self) -> process_info_t | | erase(self, *args) -> 'qvector< process_info_t >::iterator' | erase(self, it) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | | erase(self, first, last) -> process_info_t + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator | | extract(self, *args) -> 'process_info_t *' | extract(self) -> process_info_t @@ -40125,18 +47922,29 @@ class procinfo_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=process_info_t()) + | + | @param x: process_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: process_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< process_info_t >::iterator' | insert(self, it, x) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'process_info_t &' | push_back(self, x) + | + | @param x: process_info_t const & + | | push_back(self) -> process_info_t | | qclear(self, *args) -> 'void' @@ -40144,16 +47952,26 @@ class procinfo_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: process_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< process_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -40185,6 +48003,9 @@ class register_info_t(builtins.object) | __swig_destroy__ = delete_register_info_t(...) | delete_register_info_t(self) | + | _register_info_t__get_bit_strings = __get_bit_strings(self, *args) -> 'PyObject *' + | __get_bit_strings(self) -> PyObject * + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -40195,22 +48016,22 @@ class register_info_t(builtins.object) | list of weak references to the object (if defined) | | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * + | __get_bit_strings(self) -> PyObject * | | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t + | default_bit_strings_mask | | dtype - | register_info_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | register_info_t_flags_get(self) -> uint32 + | flags | | name - | register_info_t_name_get(self) -> char const * + | name | | register_class - | register_info_t_register_class_get(self) -> register_class_t + | register_class | | thisown | The membership flag @@ -40224,13 +48045,19 @@ class regval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t | __init__(self, r) -> regval_t + | + | @param r: regval_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -40239,34 +48066,67 @@ class regval_t(builtins.object) | | bytes(self, *args) -> 'bytevec_t const &' | bytes(self) -> bytevec_t + | Get const custom value. | bytes(self) -> bytevec_t const & | | clear(self, *args) -> 'void' | clear(self) + | Clear register value. | | get_data(self, *args) -> 'void const *' | get_data(self) + | Get const pointer to value. | get_data(self) -> void const * | | get_data_size(self, *args) -> 'size_t' | get_data_size(self) -> size_t + | Get size of value. + | + | pyval(self, *args) -> 'PyObject *' + | pyval(self, dtype) -> PyObject * + | + | @param dtype: op_dtype_t | | set_bytes(self, *args) -> 'bytevec_t &' | set_bytes(self, data, size) + | Initialize this regval to an empty custom value. + | + | @param data: uchar const * + | @param size: size_t + | | set_bytes(self, v) + | + | @param v: bytevec_t const & + | | set_bytes(self) -> bytevec_t & | | set_float(self, *args) -> 'void' | set_float(self, x) + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & | | set_int(self, *args) -> 'void' | set_int(self, x) + | Set int value (ival) + | + | @param x: (C++: uint64) + | + | set_pyval(self, *args) -> 'bool' + | set_pyval(self, o, dtype) -> bool + | + | @param o: PyObject * + | @param dtype: op_dtype_t | | set_unavailable(self, *args) -> 'void' | set_unavailable(self) + | Mark as unavailable. | | swap(self, *args) -> 'void' | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40278,13 +48138,192 @@ class regval_t(builtins.object) | list of weak references to the object (if defined) | | fval - | regval_t_fval_get(self) -> uint16 [6] + | fval | | ival - | regval_t_ival_get(self) -> uint64 + | ival | | rvtype - | regval_t_rvtype_get(self) -> int32 + | rvtype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class regvals_t in module ida_idd: + +class regvals_t(builtins.object) + | Proxy of C++ qvector< regval_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __getitem__(self, *args) -> 'regval_t const &' + | __getitem__(self, i) -> regval_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> regvals_t + | __init__(self, x) -> regvals_t + | + | @param x: qvector< regval_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regval_t const & + | + | __swig_destroy__ = delete_regvals_t(...) + | delete_regvals_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: regval_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: regval_t const & + | + | at(self, *args) -> 'regval_t const &' + | at(self, _idx) -> regval_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regval_t >::const_iterator' + | begin(self) -> regval_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regval_t >::const_iterator' + | end(self) -> regval_t + | + | erase(self, *args) -> 'qvector< regval_t >::iterator' + | erase(self, it) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | + | erase(self, first, last) -> regval_t + | + | @param first: qvector< regval_t >::iterator + | @param last: qvector< regval_t >::iterator + | + | extract(self, *args) -> 'regval_t *' + | extract(self) -> regval_t + | + | find(self, *args) -> 'qvector< regval_t >::const_iterator' + | find(self, x) -> regval_t + | + | @param x: regval_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regval_t()) + | + | @param x: regval_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: regval_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regval_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regval_t >::iterator' + | insert(self, it, x) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | @param x: regval_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regval_t &' + | push_back(self, x) + | + | @param x: regval_t const & + | + | push_back(self) -> regval_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regval_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regval_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) | | thisown | The membership flag @@ -40318,7 +48357,7 @@ class scattered_segm_t(ida_range.range_t) | Data descriptors defined here: | | name - | scattered_segm_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -40328,43 +48367,72 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40375,15 +48443,11 @@ class scattered_segm_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -40394,6 +48458,9 @@ Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) -> 'void' set_debug_event_code(ev, id) + + @param ev: debug_event_t * + @param id: enum event_id_t Help on class thread_name_t in module ida_idd: @@ -40420,134 +48487,45 @@ class thread_name_t(builtins.object) | list of weak references to the object (if defined) | | name - | thread_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tid - | thread_name_t_tid_get(self) -> thid_t + | tid -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception +Module "ida_idp"s docstring: """ +Contains definition of the interface to IDP modules. -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" +These structures contain information about target processor and assembler +features. -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -other values mean custom data type - -unavailable -""" -=== ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: AssembleLine(*args) -> 'PyObject *' - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * - - + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes Assemble an instruction to a string (display a warning if an error is found) @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction + @param cs: cs of instruction + @param ip: ip of instruction @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure + @param nonnul_line: char const * + @return: - None on failure - or a string containing the assembled instruction Help on class IDB_Hooks in module ida_idp: @@ -40560,15 +48538,28 @@ class IDB_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> IDB_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | | allsegs_moved(self, *args) -> 'void' | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' | auto_empty(self) @@ -40577,286 +48568,732 @@ class IDB_Hooks(builtins.object) | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' - | bookmark_changed(self, index, pos, desc) + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | enum_bf_changed(self, *args) -> 'void' | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) | | enum_member_created(self, *args) -> 'void' | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | renamed(self, ea, new_name, local_name) + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' - | segm_deleted(self, start_ea, end_ea) + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' - | struc_renamed(self, sptr) + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed | | tail_owner_changed(self, *args) -> 'void' | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40880,484 +49317,1277 @@ class IDP_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> IDP_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_IDP_Hooks(...) | delete_IDP_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | ev_add_cref(self, *args) -> 'int' | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_ana_insn(self, *args) -> 'bool' | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. | - | - | Analyzes and decodes an instruction at insn.ea - | - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - | - insn.size must be set to the instruction length - | - | @return: Boolean - | - False if the instruction is not recognized - | - True if the instruction was decoded. 'insn' should be filled in that case. + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_analyze_prolog(self, *args) -> 'int' | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm | | ev_assemble(self, *args) -> 'PyObject *' | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). | - | - | Assembles an instruction - | - | @param ea: linear address of instruction - | @param cs: cs of instruction - | @param ip: ip of instruction - | @param use32: is 32bit segment? - | @param line: line to assemble - | - | @return: - None to let the underlying processor module assemble the line - | - or a string containing the assembled buffer + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | - | ev_auto_queue_empty(self, *args) -> 'void' - | ev_auto_queue_empty(self, type) + | ev_auto_queue_empty(self, *args) -> 'int' + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) -> 'int' | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_step_over(self, *args) -> 'int' | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_calc_switch_cases(self, *args) -> 'int' | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' | ev_calcrel(self) -> int + | Reserved. | | ev_can_have_type(self, *args) -> 'int' | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_clean_tbit(self, *args) -> 'int' | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_cmp_operands(self, *args) -> 'int' | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) -> 'int' | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) -> 'int' | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_flat_group(self, *args) -> 'int' | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_func_frame(self, *args) -> 'int' | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_create_switch_xrefs(self, *args) -> 'int' | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, *args) -> 'int' | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_decorate_name(self, *args) -> 'PyObject *' | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_emu_insn(self, *args) -> 'bool' | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. | - | - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this function - | all information about the instruction is in 'insn' structure. - | - | @return: Boolean (whether this instruction has been emulated or not) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) -> 'int' | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? | | ev_ending_undo(self, *args) -> 'int' | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | - | ev_func_bounds(self, *args) -> 'void' - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | ev_func_bounds(self, *args) -> 'int' + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | - | ev_gen_asm_or_lst(self, *args) -> 'void' - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_map_file(self, *args) -> 'int' | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, *args) -> 'int' | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) -> 'int' | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_gen_stkvar_def(self, *args) -> 'int' | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_autocmt(self, *args) -> 'PyObject *' | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_bg_color(self, *args) -> 'int' - | ev_get_bg_color(self, ea) -> int or None + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_frame_retsize(self, *args) -> 'int' | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_macro_insn_head(self, *args) -> 'int' | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_operand_string(self, *args) -> 'PyObject *' | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_align_insn(self, *args) -> 'int' | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) -> 'int' | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) -> 'int' | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) -> 'int' | ev_is_call_insn(self, insn) -> int - | - | | Is the instruction a "call"? | - | @param insn: instruction - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_cond_insn(self, *args) -> 'int' | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_far_jump(self, *args) -> 'int' | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) -> 'int' | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) -> 'int' - | ev_is_insn_table_jump(self, insn) -> int + | ev_is_insn_table_jump(self) -> int + | Reserved. | | ev_is_jump_func(self, *args) -> 'int' | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_is_ret_insn(self, *args) -> 'int' | ev_is_ret_insn(self, insn, strict) -> int - | - | | Is the instruction a "return"? | - | @param insn: instruction - | @param strict: - True: report only ret instructions - | False: include instructions like "leave" which begins the function epilog - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) -> 'int' | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. | - | - | is the instruction sane for the current file type? - | @param insn: the instruction - | @param no_crefs: - | - 1: the instruction has no code refs to it. - | ida just tries to convert unexplored bytes - | to an instruction (but there is no other - | reason to convert them into an instruction) - | - 0: the instruction is created because - | of some coderef, user request or another - | weighty reason. - | @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, *args) -> 'int' | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) -> 'int' | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_may_be_func(self, *args) -> 'int' | ev_may_be_func(self, insn, state) -> int - | - | | Can a function start here? - | @param insn: the instruction - | @param state: autoanalysis phase - | 0: creating functions - | 1: creating chunks | - | @return: integer (probability 0..100) + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) | | ev_may_show_sreg(self, *args) -> 'int' | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, *args) -> 'int' | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newasm(self, *args) -> 'int' | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed | | ev_newbinary(self, *args) -> 'int' | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load | | ev_newfile(self, *args) -> 'int' | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name | | ev_newprc(self, *args) -> 'int' | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_next_exec_insn(self, *args) -> 'int' | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented | | ev_oldfile(self, *args) -> 'int' | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) -> 'int' | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) -> 'int' | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | - | ev_out_footer(self, *args) -> 'void' - | ev_out_footer(self, outctx) + | ev_out_footer(self, *args) -> 'int' + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | - | ev_out_header(self, *args) -> 'void' - | ev_out_header(self, outctx) + | ev_out_header(self, *args) -> 'int' + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) -> 'bool' | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) -> 'int' | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) -> 'int' | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) -> 'bool' | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. | - | - | Notification to generate operand text. - | If False was returned, then the standard operand output function will be called. - | - | this notification may use out_...() functions to form the operand text - | - | @return: Boolean (whether the operand has been outputted or not) + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, *args) -> 'int' | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, *args) -> 'int' | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) -> 'int' | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_rename(self, *args) -> 'int' | ev_rename(self, ea, new_name) -> int - | - | | The kernel is going to rename a byte. | - | @param ea: Address - | @param new_name: The new name - | - | @return: - | - If returns value <0, then the kernel should - | not rename it. See also the 'renamed' event + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_replaying_undo(self, *args) -> 'int' | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_set_idp_options(self, *args) -> 'int' - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) -> 'int' | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p:. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) -> 'int' - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_str2reg(self, *args) -> 'int' | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_term(self, *args) -> 'int' | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) -> 'int' | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) -> 'int' | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. | + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. | - | An item in the database (insn or data) is being deleted - | @param ea: Address - | @return: - | - 1 - do not delete srranges at the item end - | - 0 - srranges can be deleted + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | ev_validate_flirt_func(self, *args) -> 'int' | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, *args) -> 'int' | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) -> 'int' | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | hook(self, *args) -> 'bool' | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success | | unhook(self, *args) -> 'bool' | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -41416,6 +50646,19 @@ class __ph(builtins.object) | | version +Help on class _idp_cvar_t in module ida_idp: + +class _idp_cvar_t(builtins.object) + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ash + Help on class _notify_when_dispatcher_t in module ida_idp: class _notify_when_dispatcher_t(builtins.object) @@ -41450,6 +50693,1362 @@ class _notify_when_dispatcher_t(builtins.object) | | _callback_t = +Help on class _processor_t in module ida_idp: + +class _processor_t(builtins.object) + | Proxy of C++ processor_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> _processor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete__processor_t(...) + | delete__processor_t(self) + | + | calcrel_in_bits(self, *args) -> 'bool' + | calcrel_in_bits(self) -> bool + | + | cbsize(self, *args) -> 'int' + | cbsize(self) -> int + | + | dbsize(self, *args) -> 'int' + | dbsize(self) -> int + | + | delay_slot_insn(self, *args) -> 'bool' + | delay_slot_insn(self, ea, bexec, fexec) -> bool + | + | Parameters + | ---------- + | ea: ea_t * + | bexec: bool * + | fexec: bool * + | + | get_default_segm_bitness(self, *args) -> 'int' + | get_default_segm_bitness(self, is_64bit_app) -> int + | + | Parameters + | ---------- + | is_64bit_app: bool + | + | get_proc_index(self, *args) -> 'int' + | get_proc_index(self) -> int + | + | get_stkvar_scale(self, *args) -> 'int' + | get_stkvar_scale(self) -> int + | + | has_code16_bit(self, *args) -> 'bool' + | has_code16_bit(self) -> bool + | + | has_idp_opts(self, *args) -> 'bool' + | has_idp_opts(self) -> bool + | + | has_realcvt(self, *args) -> 'bool' + | has_realcvt(self) -> bool + | + | has_segregs(self, *args) -> 'bool' + | has_segregs(self) -> bool + | + | privrange_changed(self, *args) -> 'ssize_t' + | privrange_changed(self, old_privrange, delta) -> ssize_t + | + | Parameters + | ---------- + | old_privrange: range_t const & + | delta: adiff_t + | + | sizeof_ldbl(self, *args) -> 'size_t' + | sizeof_ldbl(self) -> size_t + | + | stkup(self, *args) -> 'bool' + | stkup(self) -> bool + | + | supports_calcrel(self, *args) -> 'bool' + | supports_calcrel(self) -> bool + | + | supports_macros(self, *args) -> 'bool' + | supports_macros(self) -> bool + | + | ti(self, *args) -> 'bool' + | ti(self) -> bool + | + | use32(self, *args) -> 'bool' + | use32(self) -> bool + | + | use64(self, *args) -> 'bool' + | use64(self) -> bool + | + | use_mappings(self, *args) -> 'bool' + | use_mappings(self) -> bool + | + | use_tbyte(self, *args) -> 'bool' + | use_tbyte(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | add_cref(*args) -> 'ssize_t' + | add_cref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum cref_t + | + | add_dref(*args) -> 'ssize_t' + | add_dref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum dref_t + | + | adjust_argloc(*args) -> 'ssize_t' + | adjust_argloc(argloc, type, size) -> ssize_t + | + | Parameters + | ---------- + | argloc: argloc_t * + | type: tinfo_t const * + | size: int + | + | adjust_libfunc_ea(*args) -> 'ssize_t' + | adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + | + | Parameters + | ---------- + | sig: idasgn_t const & + | libfun: libfunc_t const & + | ea: ea_t * + | + | adjust_refinfo(*args) -> 'ssize_t' + | adjust_refinfo(ri, ea, n, fd) -> ssize_t + | + | Parameters + | ---------- + | ri: refinfo_t * + | ea: ea_t + | n: int + | fd: fixup_data_t const & + | + | ana_insn(*args) -> 'ssize_t' + | ana_insn(out) -> ssize_t + | + | Parameters + | ---------- + | out: insn_t * + | + | analyze_prolog(*args) -> 'ssize_t' + | analyze_prolog(fct_ea) -> ssize_t + | + | Parameters + | ---------- + | fct_ea: ea_t + | + | arch_changed(*args) -> 'ssize_t' + | arch_changed() -> ssize_t + | + | arg_addrs_ready(*args) -> 'ssize_t' + | arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + | + | Parameters + | ---------- + | caller: ea_t + | n: int + | tif: tinfo_t const & + | addrs: ea_t * + | + | asm_installed(*args) -> 'ssize_t' + | asm_installed(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | assemble(*args) -> 'ssize_t' + | assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + | + | Parameters + | ---------- + | _bin: uchar * + | ea: ea_t + | cs: ea_t + | ip: ea_t + | _use32: bool + | line: char const * + | + | auto_queue_empty(*args) -> 'void' + | auto_queue_empty(type) + | + | Parameters + | ---------- + | type: int + | + | calc_arglocs(*args) -> 'ssize_t' + | calc_arglocs(fti) -> ssize_t + | + | Parameters + | ---------- + | fti: func_type_data_t * + | + | calc_cdecl_purged_bytes(*args) -> 'ssize_t' + | calc_cdecl_purged_bytes(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | calc_next_eas(*args) -> 'ssize_t' + | calc_next_eas(res, insn, over) -> ssize_t + | + | Parameters + | ---------- + | res: eavec_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | over: bool + | + | calc_purged_bytes(*args) -> 'ssize_t' + | calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + | + | Parameters + | ---------- + | p_purged_bytes: int * + | fti: func_type_data_t const & + | + | calc_retloc(*args) -> 'ssize_t' + | calc_retloc(retloc, rettype, cc) -> ssize_t + | + | Parameters + | ---------- + | retloc: argloc_t * + | rettype: tinfo_t const & + | cc: cm_t + | + | calc_spdelta(*args) -> 'ssize_t' + | calc_spdelta(spdelta, ins) -> ssize_t + | + | Parameters + | ---------- + | spdelta: sval_t * + | ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | calc_step_over(*args) -> 'ssize_t' + | calc_step_over(target, ip) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ip: ea_t + | + | calc_switch_cases(*args) -> 'ssize_t' + | calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + | + | Parameters + | ---------- + | casevec: void * + | targets: eavec_t * + | insn_ea: ea_t + | si: switch_info_t const & + | + | calc_varglocs(*args) -> 'ssize_t' + | calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + | + | Parameters + | ---------- + | ftd: func_type_data_t * + | regs: regobjs_t * + | stkargs: relobj_t * + | nfixed: int + | + | calcrel(*args) -> 'bytevec_t *, size_t *' + | calcrel(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | can_have_type(*args) -> 'ssize_t' + | can_have_type(op) -> ssize_t + | + | Parameters + | ---------- + | op: op_t const & + | + | clean_tbit(*args) -> 'ssize_t' + | clean_tbit(ea, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | cmp_operands(*args) -> 'ssize_t' + | cmp_operands(op1, op2) -> ssize_t + | + | Parameters + | ---------- + | op1: op_t const & + | op2: op_t const & + | + | coagulate(*args) -> 'ssize_t' + | coagulate(start_ea) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | + | coagulate_dref(*args) -> 'ssize_t' + | coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | may_define: bool + | code_ea: ea_t * + | + | create_flat_group(*args) -> 'ssize_t' + | create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + | + | Parameters + | ---------- + | image_base: ea_t + | bitness: int + | dataseg_sel: sel_t + | + | create_func_frame(*args) -> 'ssize_t' + | create_func_frame(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | create_merge_handlers(*args) -> 'ssize_t' + | create_merge_handlers(md) -> ssize_t + | + | Parameters + | ---------- + | md: merge_data_t * + | + | create_switch_xrefs(*args) -> 'ssize_t' + | create_switch_xrefs(jumpea, si) -> ssize_t + | + | Parameters + | ---------- + | jumpea: ea_t + | si: switch_info_t const & + | + | creating_segm(*args) -> 'ssize_t' + | creating_segm(seg) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | + | decorate_name(*args) -> 'ssize_t' + | decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + | + | Parameters + | ---------- + | outbuf: qstring * + | name: char const * + | mangle: bool + | cc: cm_t + | type: tinfo_t const & + | + | del_cref(*args) -> 'ssize_t' + | del_cref(_from, to, expand) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | expand: bool + | + | del_dref(*args) -> 'ssize_t' + | del_dref(_from, to) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | + | demangle_name(*args) -> 'int' + | demangle_name(res, name, disable_mask, demreq) -> ssize_t + | + | Parameters + | ---------- + | res: int32 * + | name: char const * + | disable_mask: uint32 + | demreq: int + | + | emu_insn(*args) -> 'ssize_t' + | emu_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | endbinary(*args) -> 'ssize_t' + | endbinary(ok) -> ssize_t + | + | Parameters + | ---------- + | ok: bool + | + | equal_reglocs(*args) -> 'ssize_t' + | equal_reglocs(a1, a2) -> ssize_t + | + | Parameters + | ---------- + | a1: argloc_t const & + | a2: argloc_t const & + | + | extract_address(*args) -> 'ssize_t' + | extract_address(out_ea, screen_ea, string, x) -> ssize_t + | + | Parameters + | ---------- + | out_ea: ea_t * + | screen_ea: ea_t + | string: char const * + | x: size_t + | + | find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_op_value(insn, op) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | op: int + | + | find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_reg_value(insn, reg) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | reg: int + | + | func_bounds(*args) -> 'ssize_t' + | func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + | + | Parameters + | ---------- + | possible_return_code: int * + | pfn: func_t * + | max_func_end_ea: ea_t + | + | gen_asm_or_lst(*args) -> 'ssize_t' + | gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + | + | Parameters + | ---------- + | starting: bool + | fp: FILE * + | is_asm: bool + | flags: int + | outline: void * + | + | gen_map_file(*args) -> 'ssize_t' + | gen_map_file(nlines, fp) -> ssize_t + | + | Parameters + | ---------- + | nlines: int * + | fp: FILE * + | + | gen_regvar_def(*args) -> 'ssize_t' + | gen_regvar_def(ctx, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | v: regvar_t * + | + | gen_src_file_lnnum(*args) -> 'ssize_t' + | gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | file: char const * + | lnnum: size_t + | + | gen_stkvar_def(*args) -> 'ssize_t' + | gen_stkvar_def(ctx, mptr, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | mptr: member_t const * + | v: sval_t + | + | get_abi_info(*args) -> 'ssize_t' + | get_abi_info(abi_names, abi_opts, comp) -> ssize_t + | + | Parameters + | ---------- + | abi_names: qstrvec_t * + | abi_opts: qstrvec_t * + | comp: comp_t + | + | get_autocmt(*args) -> 'qstring *' + | get_autocmt(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_bg_color(*args) -> 'ssize_t' + | get_bg_color(color, ea) -> ssize_t + | + | Parameters + | ---------- + | color: bgcolor_t * + | ea: ea_t + | + | get_cc_regs(*args) -> 'ssize_t' + | get_cc_regs(regs, cc) -> ssize_t + | + | Parameters + | ---------- + | regs: callregs_t * + | cc: cm_t + | + | get_code16_mode(*args) -> 'bool' + | get_code16_mode(ea) -> bool + | + | Parameters + | ---------- + | ea: ea_t + | + | get_dbr_opnum(*args) -> 'ssize_t' + | get_dbr_opnum(opnum, insn) -> ssize_t + | + | Parameters + | ---------- + | opnum: int * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_frame_retsize(*args) -> 'ssize_t' + | get_frame_retsize(retsize, pfn) -> ssize_t + | + | Parameters + | ---------- + | retsize: int * + | pfn: func_t const * + | + | get_idd_opinfo(*args) -> 'ssize_t' + | get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | opinf: idd_opinfo_t * + | ea: ea_t + | n: int + | thread_id: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | get_macro_insn_head(*args) -> 'ssize_t' + | get_macro_insn_head(head, ip) -> ssize_t + | + | Parameters + | ---------- + | head: ea_t * + | ip: ea_t + | + | get_operand_string(*args) -> 'qstring *' + | get_operand_string(insn, opnum) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | opnum: int + | + | get_reg_accesses(*args) -> 'ssize_t' + | get_reg_accesses(accvec, insn, flags) -> ssize_t + | + | Parameters + | ---------- + | accvec: reg_accesses_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | flags: int + | + | get_reg_info(*args) -> 'char const *' + | get_reg_info(regname, bitrange) -> char const * + | + | Parameters + | ---------- + | regname: char const * + | bitrange: bitrange_t * + | + | get_reg_name(*args) -> 'qstring *' + | get_reg_name(reg, width, reghi) -> ssize_t + | + | Parameters + | ---------- + | reg: int + | width: size_t + | reghi: int + | + | get_simd_types(*args) -> 'ssize_t' + | get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + | + | Parameters + | ---------- + | out: void * + | simd_attrs: simd_info_t const * + | argloc: argloc_t const * + | create_tifs: bool + | + | get_stkarg_area_info(*args) -> 'ssize_t' + | get_stkarg_area_info(out, cc) -> ssize_t + | + | Parameters + | ---------- + | out: stkarg_area_info_t * + | cc: cm_t + | + | get_stkvar_scale_factor(*args) -> 'ssize_t' + | get_stkvar_scale_factor() -> ssize_t + | + | getreg(*args) -> 'ssize_t' + | getreg(rv, regnum) -> ssize_t + | + | Parameters + | ---------- + | rv: uval_t * + | regnum: int + | + | init(*args) -> 'ssize_t' + | init(idp_modname) -> ssize_t + | + | Parameters + | ---------- + | idp_modname: char const * + | + | insn_reads_tbit(*args) -> 'ssize_t' + | insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | is_align_insn(*args) -> 'ssize_t' + | is_align_insn(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_alloca_probe(*args) -> 'ssize_t' + | is_alloca_probe(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_basic_block_end(*args) -> 'ssize_t' + | is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | call_insn_stops_block: bool + | + | is_call_insn(*args) -> 'ssize_t' + | is_call_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_cond_insn(*args) -> 'ssize_t' + | is_cond_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_control_flow_guard(*args) -> 'ssize_t' + | is_control_flow_guard(p_reg, insn) -> ssize_t + | + | Parameters + | ---------- + | p_reg: int * + | insn: insn_t const * + | + | is_far_jump(*args) -> 'ssize_t' + | is_far_jump(icode) -> ssize_t + | + | Parameters + | ---------- + | icode: int + | + | is_indirect_jump(*args) -> 'ssize_t' + | is_indirect_jump(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_jump_func(*args) -> 'ssize_t' + | is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | jump_target: ea_t * + | func_pointer: ea_t * + | + | is_ret_insn(*args) -> 'ssize_t' + | is_ret_insn(insn, strict) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | strict: bool + | + | is_sane_insn(*args) -> 'ssize_t' + | is_sane_insn(insn, no_crefs) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | no_crefs: int + | + | is_sp_based(*args) -> 'ssize_t' + | is_sp_based(insn, x) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | x: op_t const & + | + | is_switch(*args) -> 'ssize_t' + | is_switch(si, insn) -> ssize_t + | + | Parameters + | ---------- + | si: switch_info_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | loader_elf_machine(*args) -> 'ssize_t' + | loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + | + | Parameters + | ---------- + | li: linput_t * + | machine_type: int + | p_procname: char const ** + | p_pd: proc_def_t ** + | ldr: elf_loader_t * + | reader: reader_t * + | + | lower_func_type(*args) -> 'ssize_t' + | lower_func_type(argnums, fti) -> ssize_t + | + | Parameters + | ---------- + | argnums: intvec_t * + | fti: func_type_data_t * + | + | max_ptr_size(*args) -> 'ssize_t' + | max_ptr_size() -> ssize_t + | + | may_be_func(*args) -> 'ssize_t' + | may_be_func(insn, state) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | state: int + | + | may_show_sreg(*args) -> 'ssize_t' + | may_show_sreg(current_ea) -> ssize_t + | + | Parameters + | ---------- + | current_ea: ea_t + | + | moving_segm(*args) -> 'ssize_t' + | moving_segm(seg, to, flags) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | to: ea_t + | flags: int + | + | newasm(*args) -> 'ssize_t' + | newasm(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | newbinary(*args) -> 'ssize_t' + | newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + | + | Parameters + | ---------- + | filename: char const * + | fileoff: qoff64_t + | basepara: ea_t + | binoff: ea_t + | nbytes: uint64 + | + | newfile(*args) -> 'ssize_t' + | newfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | newprc(*args) -> 'ssize_t' + | newprc(pnum, keep_cfg) -> ssize_t + | + | Parameters + | ---------- + | pnum: int + | keep_cfg: bool + | + | next_exec_insn(*args) -> 'ssize_t' + | next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ea: ea_t + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | notify(*args) -> 'ssize_t' + | notify(event_code) -> ssize_t + | + | Parameters + | ---------- + | event_code: enum processor_t::event_t + | + | oldfile(*args) -> 'ssize_t' + | oldfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | out_assumes(*args) -> 'ssize_t' + | out_assumes(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_data(*args) -> 'ssize_t' + | out_data(ctx, analyze_only) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | analyze_only: bool + | + | out_footer(*args) -> 'ssize_t' + | out_footer(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_header(*args) -> 'ssize_t' + | out_header(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_insn(*args) -> 'ssize_t' + | out_insn(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_label(*args) -> 'ssize_t' + | out_label(ctx, colored_name) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | colored_name: char const * + | + | out_mnem(*args) -> 'ssize_t' + | out_mnem(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_operand(*args) -> 'ssize_t' + | out_operand(ctx, op) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | op: op_t const & + | + | out_segend(*args) -> 'ssize_t' + | out_segend(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_segstart(*args) -> 'ssize_t' + | out_segstart(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_special_item(*args) -> 'ssize_t' + | out_special_item(ctx, segtype) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | segtype: uchar + | + | realcvt(*args) -> 'fpvalue_error_t' + | realcvt(m, e, swt) -> fpvalue_error_t + | + | Parameters + | ---------- + | m: void * + | e: fpvalue_t * + | swt: uint16 + | + | rename(*args) -> 'ssize_t' + | rename(ea, new_name, flags) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | new_name: char const * + | flags: int + | + | set_code16_mode(*args) -> 'ssize_t' + | set_code16_mode(ea, code16=True) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | code16: bool + | + | set_idp_options(*args) -> 'char const *' + | set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + | + | Parameters + | ---------- + | keyword: char const * + | vtype: int + | value: void const * + | idb_loaded: bool + | + | set_proc_options(*args) -> 'ssize_t' + | set_proc_options(options, confidence) -> ssize_t + | + | Parameters + | ---------- + | options: char const * + | confidence: int + | + | setup_til(*args) -> 'ssize_t' + | setup_til() -> ssize_t + | + | str2reg(*args) -> 'ssize_t' + | str2reg(regname) -> ssize_t + | + | Parameters + | ---------- + | regname: char const * + | + | term(*args) -> 'ssize_t' + | term() -> ssize_t + | + | treat_hindering_item(*args) -> 'ssize_t' + | treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + | + | Parameters + | ---------- + | hindering_item_ea: ea_t + | new_item_flags: flags64_t + | new_item_ea: ea_t + | new_item_length: asize_t + | + | undefine(*args) -> 'ssize_t' + | undefine(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | update_call_stack(*args) -> 'ssize_t' + | update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | stack: call_stack_t * + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | use_arg_types(*args) -> 'ssize_t' + | use_arg_types(ea, fti, rargs) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | fti: func_type_data_t * + | rargs: void * + | + | use_regarg_type(*args) -> 'ssize_t' + | use_regarg_type(idx, ea, rargs) -> ssize_t + | + | Parameters + | ---------- + | idx: int * + | ea: ea_t + | rargs: void * + | + | use_stkarg_type(*args) -> 'ssize_t' + | use_stkarg_type(ea, arg) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | arg: funcarg_t const & + | + | validate_flirt_func(*args) -> 'ssize_t' + | validate_flirt_func(start_ea, funcname) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | funcname: char const * + | + | verify_noreturn(*args) -> 'ssize_t' + | verify_noreturn(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | verify_sp(*args) -> 'ssize_t' + | verify_sp(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_add_cref = 64 + | + | ev_add_dref = 65 + | + | ev_adjust_argloc = 2013 + | + | ev_adjust_libfunc_ea = 73 + | + | ev_adjust_refinfo = 50 + | + | ev_ana_insn = 10 + | + | ev_analyze_prolog = 81 + | + | ev_arch_changed = 2021 + | + | ev_arg_addrs_ready = 2019 + | + | ev_asm_installed = 91 + | + | ev_assemble = 74 + | + | ev_auto_queue_empty = 71 + | + | ev_broadcast = 94 + | + | ev_calc_arglocs = 2011 + | + | ev_calc_cdecl_purged_bytes = 2008 + | + | ev_calc_next_eas = 1002 + | + | ev_calc_purged_bytes = 2009 + | + | ev_calc_retloc = 2010 + | + | ev_calc_spdelta = 82 + | + | ev_calc_step_over = 1001 + | + | ev_calc_switch_cases = 42 + | + | ev_calc_varglocs = 2012 + | + | ev_calcrel = 83 + | + | ev_can_have_type = 48 + | + | ev_clean_tbit = 1006 + | + | ev_cmp_operands = 49 + | + | ev_coagulate = 28 + | + | ev_coagulate_dref = 68 + | + | ev_create_flat_group = 79 + | + | ev_create_func_frame = 60 + | + | ev_create_merge_handlers = 95 + | + | ev_create_switch_xrefs = 43 + | + | ev_creating_segm = 26 + | + | ev_decorate_name = 2020 + | + | ev_del_cref = 66 + | + | ev_del_dref = 67 + | + | ev_delay_slot_insn = 46 + | + | ev_demangle_name = 63 + | + | ev_emu_insn = 11 + | + | ev_endbinary = 7 + | + | ev_ending_undo = 87 + | + | ev_equal_reglocs = 2015 + | + | ev_extract_address = 75 + | + | ev_find_op_value = 85 + | + | ev_find_reg_value = 84 + | + | ev_func_bounds = 57 + | + | ev_gen_asm_or_lst = 77 + | + | ev_gen_map_file = 78 + | + | ev_gen_regvar_def = 24 + | + | ev_gen_src_file_lnnum = 25 + | + | ev_gen_stkvar_def = 23 + | + | ev_get_abi_info = 2001 + | + | ev_get_autocmt = 54 + | + | ev_get_bg_color = 55 + | + | ev_get_cc_regs = 2004 + | + | ev_get_code16_mode = 89 + | + | ev_get_dbr_opnum = 1004 + | + | ev_get_default_enum_size = 2003 + | + | ev_get_frame_retsize = 61 + | + | ev_get_idd_opinfo = 1007 + | + | ev_get_macro_insn_head = 1003 + | + | ev_get_operand_string = 51 + | + | ev_get_procmod = 90 + | + | ev_get_reg_accesses = 92 + | + | ev_get_reg_info = 1008 + | + | ev_get_reg_name = 52 + | + | ev_get_simd_types = 2007 + | + | ev_get_stkarg_area_info = 2022 + | + | ev_get_stkvar_scale_factor = 62 + | + | ev_getreg = 80 + | + | ev_init = 0 + | + | ev_insn_reads_tbit = 1005 + | + | ev_is_align_insn = 44 + | + | ev_is_alloca_probe = 45 + | + | ev_is_basic_block_end = 38 + | + | ev_is_call_insn = 35 + | + | ev_is_cond_insn = 34 + | + | ev_is_control_flow_guard = 93 + | + | ev_is_far_jump = 32 + | + | ev_is_indirect_jump = 39 + | + | ev_is_insn_table_jump = 40 + | + | ev_is_jump_func = 56 + | + | ev_is_ret_insn = 36 + | + | ev_is_sane_insn = 33 + | + | ev_is_sp_based = 47 + | + | ev_is_switch = 41 + | + | ev_last_cb_before_debugger = 97 + | + | ev_last_cb_before_loader = 2023 + | + | ev_last_cb_before_type_callbacks = 1010 + | + | ev_loader = 3000 + | + | ev_loader_elf_machine = 70 + | + | ev_lower_func_type = 2014 + | + | ev_max_ptr_size = 2002 + | + | ev_may_be_func = 37 + | + | ev_may_show_sreg = 69 + | + | ev_moving_segm = 27 + | + | ev_newasm = 3 + | + | ev_newbinary = 6 + | + | ev_newfile = 4 + | + | ev_newprc = 2 + | + | ev_next_exec_insn = 1000 + | + | ev_obsolete1 = 2005 + | + | ev_obsolete2 = 2006 + | + | ev_oldfile = 5 + | + | ev_out_assumes = 16 + | + | ev_out_data = 20 + | + | ev_out_footer = 13 + | + | ev_out_header = 12 + | + | ev_out_insn = 17 + | + | ev_out_label = 21 + | + | ev_out_mnem = 18 + | + | ev_out_operand = 19 + | + | ev_out_segend = 15 + | + | ev_out_segstart = 14 + | + | ev_out_special_item = 22 + | + | ev_privrange_changed = 96 + | + | ev_realcvt = 76 + | + | ev_rename = 31 + | + | ev_replaying_undo = 86 + | + | ev_set_code16_mode = 88 + | + | ev_set_idp_options = 8 + | + | ev_set_proc_options = 9 + | + | ev_setup_til = 2000 + | + | ev_str2reg = 53 + | + | ev_term = 1 + | + | ev_treat_hindering_item = 30 + | + | ev_undefine = 29 + | + | ev_update_call_stack = 1009 + | + | ev_use_arg_types = 2018 + | + | ev_use_regarg_type = 2017 + | + | ev_use_stkarg_type = 2016 + | + | ev_validate_flirt_func = 72 + | + | ev_verify_noreturn = 59 + | + | ev_verify_sp = 58 + Help on class _processor_t_Trampoline_IDB_Hooks in module ida_idp: class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) @@ -41463,7 +52062,10 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | Methods defined here: | | __init__(self, proc) - | __init__(self, _flags=0) -> IDB_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) | @@ -41479,8 +52081,18 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | | allsegs_moved(self, *args) -> 'void' | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' | auto_empty(self) @@ -41489,286 +52101,732 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' - | bookmark_changed(self, index, pos, desc) + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | enum_bf_changed(self, *args) -> 'void' | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) | | enum_member_created(self, *args) -> 'void' | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | renamed(self, ea, new_name, local_name) + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' - | segm_deleted(self, start_ea, end_ea) + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' - | struc_renamed(self, sptr) + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed | | tail_owner_changed(self, *args) -> 'void' | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -41782,6 +52840,1222 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | thisown | The membership flag +Help on function _processor_t_add_cref in module ida_idp: + +_processor_t_add_cref(*args) -> 'ssize_t' + _processor_t_add_cref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum cref_t + +Help on function _processor_t_add_dref in module ida_idp: + +_processor_t_add_dref(*args) -> 'ssize_t' + _processor_t_add_dref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum dref_t + +Help on function _processor_t_adjust_argloc in module ida_idp: + +_processor_t_adjust_argloc(*args) -> 'ssize_t' + _processor_t_adjust_argloc(argloc, type, size) -> ssize_t + + Parameters + ---------- + argloc: argloc_t * + type: tinfo_t const * + size: int + +Help on function _processor_t_adjust_libfunc_ea in module ida_idp: + +_processor_t_adjust_libfunc_ea(*args) -> 'ssize_t' + _processor_t_adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + + Parameters + ---------- + sig: idasgn_t const & + libfun: libfunc_t const & + ea: ea_t * + +Help on function _processor_t_adjust_refinfo in module ida_idp: + +_processor_t_adjust_refinfo(*args) -> 'ssize_t' + _processor_t_adjust_refinfo(ri, ea, n, fd) -> ssize_t + + Parameters + ---------- + ri: refinfo_t * + ea: ea_t + n: int + fd: fixup_data_t const & + +Help on function _processor_t_ana_insn in module ida_idp: + +_processor_t_ana_insn(*args) -> 'ssize_t' + _processor_t_ana_insn(out) -> ssize_t + + Parameters + ---------- + out: insn_t * + +Help on function _processor_t_analyze_prolog in module ida_idp: + +_processor_t_analyze_prolog(*args) -> 'ssize_t' + _processor_t_analyze_prolog(fct_ea) -> ssize_t + + Parameters + ---------- + fct_ea: ea_t + +Help on function _processor_t_arch_changed in module ida_idp: + +_processor_t_arch_changed(*args) -> 'ssize_t' + _processor_t_arch_changed() -> ssize_t + +Help on function _processor_t_arg_addrs_ready in module ida_idp: + +_processor_t_arg_addrs_ready(*args) -> 'ssize_t' + _processor_t_arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + + Parameters + ---------- + caller: ea_t + n: int + tif: tinfo_t const & + addrs: ea_t * + +Help on function _processor_t_asm_installed in module ida_idp: + +_processor_t_asm_installed(*args) -> 'ssize_t' + _processor_t_asm_installed(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_assemble in module ida_idp: + +_processor_t_assemble(*args) -> 'ssize_t' + _processor_t_assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + + Parameters + ---------- + _bin: uchar * + ea: ea_t + cs: ea_t + ip: ea_t + _use32: bool + line: char const * + +Help on function _processor_t_auto_queue_empty in module ida_idp: + +_processor_t_auto_queue_empty(*args) -> 'void' + _processor_t_auto_queue_empty(type) + + Parameters + ---------- + type: int + +Help on function _processor_t_calc_arglocs in module ida_idp: + +_processor_t_calc_arglocs(*args) -> 'ssize_t' + _processor_t_calc_arglocs(fti) -> ssize_t + + Parameters + ---------- + fti: func_type_data_t * + +Help on function _processor_t_calc_cdecl_purged_bytes in module ida_idp: + +_processor_t_calc_cdecl_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_cdecl_purged_bytes(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_calc_next_eas in module ida_idp: + +_processor_t_calc_next_eas(*args) -> 'ssize_t' + _processor_t_calc_next_eas(res, insn, over) -> ssize_t + + Parameters + ---------- + res: eavec_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + over: bool + +Help on function _processor_t_calc_purged_bytes in module ida_idp: + +_processor_t_calc_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + + Parameters + ---------- + p_purged_bytes: int * + fti: func_type_data_t const & + +Help on function _processor_t_calc_retloc in module ida_idp: + +_processor_t_calc_retloc(*args) -> 'ssize_t' + _processor_t_calc_retloc(retloc, rettype, cc) -> ssize_t + + Parameters + ---------- + retloc: argloc_t * + rettype: tinfo_t const & + cc: cm_t + +Help on function _processor_t_calc_spdelta in module ida_idp: + +_processor_t_calc_spdelta(*args) -> 'ssize_t' + _processor_t_calc_spdelta(spdelta, ins) -> ssize_t + + Parameters + ---------- + spdelta: sval_t * + ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_calc_step_over in module ida_idp: + +_processor_t_calc_step_over(*args) -> 'ssize_t' + _processor_t_calc_step_over(target, ip) -> ssize_t + + Parameters + ---------- + target: ea_t * + ip: ea_t + +Help on function _processor_t_calc_switch_cases in module ida_idp: + +_processor_t_calc_switch_cases(*args) -> 'ssize_t' + _processor_t_calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + + Parameters + ---------- + casevec: void * + targets: eavec_t * + insn_ea: ea_t + si: switch_info_t const & + +Help on function _processor_t_calc_varglocs in module ida_idp: + +_processor_t_calc_varglocs(*args) -> 'ssize_t' + _processor_t_calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + + Parameters + ---------- + ftd: func_type_data_t * + regs: regobjs_t * + stkargs: relobj_t * + nfixed: int + +Help on function _processor_t_calcrel in module ida_idp: + +_processor_t_calcrel(*args) -> 'bytevec_t *, size_t *' + _processor_t_calcrel(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_can_have_type in module ida_idp: + +_processor_t_can_have_type(*args) -> 'ssize_t' + _processor_t_can_have_type(op) -> ssize_t + + Parameters + ---------- + op: op_t const & + +Help on function _processor_t_clean_tbit in module ida_idp: + +_processor_t_clean_tbit(*args) -> 'ssize_t' + _processor_t_clean_tbit(ea, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + ea: ea_t + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_cmp_operands in module ida_idp: + +_processor_t_cmp_operands(*args) -> 'ssize_t' + _processor_t_cmp_operands(op1, op2) -> ssize_t + + Parameters + ---------- + op1: op_t const & + op2: op_t const & + +Help on function _processor_t_coagulate in module ida_idp: + +_processor_t_coagulate(*args) -> 'ssize_t' + _processor_t_coagulate(start_ea) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + +Help on function _processor_t_coagulate_dref in module ida_idp: + +_processor_t_coagulate_dref(*args) -> 'ssize_t' + _processor_t_coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + may_define: bool + code_ea: ea_t * + +Help on function _processor_t_create_flat_group in module ida_idp: + +_processor_t_create_flat_group(*args) -> 'ssize_t' + _processor_t_create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + + Parameters + ---------- + image_base: ea_t + bitness: int + dataseg_sel: sel_t + +Help on function _processor_t_create_func_frame in module ida_idp: + +_processor_t_create_func_frame(*args) -> 'ssize_t' + _processor_t_create_func_frame(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_create_merge_handlers in module ida_idp: + +_processor_t_create_merge_handlers(*args) -> 'ssize_t' + _processor_t_create_merge_handlers(md) -> ssize_t + + Parameters + ---------- + md: merge_data_t * + +Help on function _processor_t_create_switch_xrefs in module ida_idp: + +_processor_t_create_switch_xrefs(*args) -> 'ssize_t' + _processor_t_create_switch_xrefs(jumpea, si) -> ssize_t + + Parameters + ---------- + jumpea: ea_t + si: switch_info_t const & + +Help on function _processor_t_creating_segm in module ida_idp: + +_processor_t_creating_segm(*args) -> 'ssize_t' + _processor_t_creating_segm(seg) -> ssize_t + + Parameters + ---------- + seg: segment_t * + +Help on function _processor_t_decorate_name in module ida_idp: + +_processor_t_decorate_name(*args) -> 'ssize_t' + _processor_t_decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + + Parameters + ---------- + outbuf: qstring * + name: char const * + mangle: bool + cc: cm_t + type: tinfo_t const & + +Help on function _processor_t_del_cref in module ida_idp: + +_processor_t_del_cref(*args) -> 'ssize_t' + _processor_t_del_cref(_from, to, expand) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + expand: bool + +Help on function _processor_t_del_dref in module ida_idp: + +_processor_t_del_dref(*args) -> 'ssize_t' + _processor_t_del_dref(_from, to) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + +Help on function _processor_t_demangle_name in module ida_idp: + +_processor_t_demangle_name(*args) -> 'int' + _processor_t_demangle_name(res, name, disable_mask, demreq) -> ssize_t + + Parameters + ---------- + res: int32 * + name: char const * + disable_mask: uint32 + demreq: int + +Help on function _processor_t_emu_insn in module ida_idp: + +_processor_t_emu_insn(*args) -> 'ssize_t' + _processor_t_emu_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_endbinary in module ida_idp: + +_processor_t_endbinary(*args) -> 'ssize_t' + _processor_t_endbinary(ok) -> ssize_t + + Parameters + ---------- + ok: bool + +Help on function _processor_t_equal_reglocs in module ida_idp: + +_processor_t_equal_reglocs(*args) -> 'ssize_t' + _processor_t_equal_reglocs(a1, a2) -> ssize_t + + Parameters + ---------- + a1: argloc_t const & + a2: argloc_t const & + +Help on function _processor_t_extract_address in module ida_idp: + +_processor_t_extract_address(*args) -> 'ssize_t' + _processor_t_extract_address(out_ea, screen_ea, string, x) -> ssize_t + + Parameters + ---------- + out_ea: ea_t * + screen_ea: ea_t + string: char const * + x: size_t + +Help on function _processor_t_find_op_value in module ida_idp: + +_processor_t_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_op_value(insn, op) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + op: int + +Help on function _processor_t_find_reg_value in module ida_idp: + +_processor_t_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_reg_value(insn, reg) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + reg: int + +Help on function _processor_t_func_bounds in module ida_idp: + +_processor_t_func_bounds(*args) -> 'ssize_t' + _processor_t_func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + + Parameters + ---------- + possible_return_code: int * + pfn: func_t * + max_func_end_ea: ea_t + +Help on function _processor_t_gen_asm_or_lst in module ida_idp: + +_processor_t_gen_asm_or_lst(*args) -> 'ssize_t' + _processor_t_gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + + Parameters + ---------- + starting: bool + fp: FILE * + is_asm: bool + flags: int + outline: void * + +Help on function _processor_t_gen_map_file in module ida_idp: + +_processor_t_gen_map_file(*args) -> 'ssize_t' + _processor_t_gen_map_file(nlines, fp) -> ssize_t + + Parameters + ---------- + nlines: int * + fp: FILE * + +Help on function _processor_t_gen_regvar_def in module ida_idp: + +_processor_t_gen_regvar_def(*args) -> 'ssize_t' + _processor_t_gen_regvar_def(ctx, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + v: regvar_t * + +Help on function _processor_t_gen_src_file_lnnum in module ida_idp: + +_processor_t_gen_src_file_lnnum(*args) -> 'ssize_t' + _processor_t_gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + file: char const * + lnnum: size_t + +Help on function _processor_t_gen_stkvar_def in module ida_idp: + +_processor_t_gen_stkvar_def(*args) -> 'ssize_t' + _processor_t_gen_stkvar_def(ctx, mptr, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + mptr: member_t const * + v: sval_t + +Help on function _processor_t_get_abi_info in module ida_idp: + +_processor_t_get_abi_info(*args) -> 'ssize_t' + _processor_t_get_abi_info(abi_names, abi_opts, comp) -> ssize_t + + Parameters + ---------- + abi_names: qstrvec_t * + abi_opts: qstrvec_t * + comp: comp_t + +Help on function _processor_t_get_autocmt in module ida_idp: + +_processor_t_get_autocmt(*args) -> 'qstring *' + _processor_t_get_autocmt(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_bg_color in module ida_idp: + +_processor_t_get_bg_color(*args) -> 'ssize_t' + _processor_t_get_bg_color(color, ea) -> ssize_t + + Parameters + ---------- + color: bgcolor_t * + ea: ea_t + +Help on function _processor_t_get_cc_regs in module ida_idp: + +_processor_t_get_cc_regs(*args) -> 'ssize_t' + _processor_t_get_cc_regs(regs, cc) -> ssize_t + + Parameters + ---------- + regs: callregs_t * + cc: cm_t + +Help on function _processor_t_get_code16_mode in module ida_idp: + +_processor_t_get_code16_mode(*args) -> 'bool' + _processor_t_get_code16_mode(ea) -> bool + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_get_dbr_opnum in module ida_idp: + +_processor_t_get_dbr_opnum(*args) -> 'ssize_t' + _processor_t_get_dbr_opnum(opnum, insn) -> ssize_t + + Parameters + ---------- + opnum: int * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_frame_retsize in module ida_idp: + +_processor_t_get_frame_retsize(*args) -> 'ssize_t' + _processor_t_get_frame_retsize(retsize, pfn) -> ssize_t + + Parameters + ---------- + retsize: int * + pfn: func_t const * + +Help on function _processor_t_get_idd_opinfo in module ida_idp: + +_processor_t_get_idd_opinfo(*args) -> 'ssize_t' + _processor_t_get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + opinf: idd_opinfo_t * + ea: ea_t + n: int + thread_id: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_get_macro_insn_head in module ida_idp: + +_processor_t_get_macro_insn_head(*args) -> 'ssize_t' + _processor_t_get_macro_insn_head(head, ip) -> ssize_t + + Parameters + ---------- + head: ea_t * + ip: ea_t + +Help on function _processor_t_get_operand_string in module ida_idp: + +_processor_t_get_operand_string(*args) -> 'qstring *' + _processor_t_get_operand_string(insn, opnum) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + opnum: int + +Help on function _processor_t_get_reg_accesses in module ida_idp: + +_processor_t_get_reg_accesses(*args) -> 'ssize_t' + _processor_t_get_reg_accesses(accvec, insn, flags) -> ssize_t + + Parameters + ---------- + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + flags: int + +Help on function _processor_t_get_reg_info in module ida_idp: + +_processor_t_get_reg_info(*args) -> 'char const *' + _processor_t_get_reg_info(regname, bitrange) -> char const * + + Parameters + ---------- + regname: char const * + bitrange: bitrange_t * + +Help on function _processor_t_get_reg_name in module ida_idp: + +_processor_t_get_reg_name(*args) -> 'qstring *' + _processor_t_get_reg_name(reg, width, reghi) -> ssize_t + + Parameters + ---------- + reg: int + width: size_t + reghi: int + +Help on function _processor_t_get_simd_types in module ida_idp: + +_processor_t_get_simd_types(*args) -> 'ssize_t' + _processor_t_get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + + Parameters + ---------- + out: void * + simd_attrs: simd_info_t const * + argloc: argloc_t const * + create_tifs: bool + +Help on function _processor_t_get_stkarg_area_info in module ida_idp: + +_processor_t_get_stkarg_area_info(*args) -> 'ssize_t' + _processor_t_get_stkarg_area_info(out, cc) -> ssize_t + + Parameters + ---------- + out: stkarg_area_info_t * + cc: cm_t + +Help on function _processor_t_get_stkvar_scale_factor in module ida_idp: + +_processor_t_get_stkvar_scale_factor(*args) -> 'ssize_t' + _processor_t_get_stkvar_scale_factor() -> ssize_t + +Help on function _processor_t_getreg in module ida_idp: + +_processor_t_getreg(*args) -> 'ssize_t' + _processor_t_getreg(rv, regnum) -> ssize_t + + Parameters + ---------- + rv: uval_t * + regnum: int + +Help on function _processor_t_init in module ida_idp: + +_processor_t_init(*args) -> 'ssize_t' + _processor_t_init(idp_modname) -> ssize_t + + Parameters + ---------- + idp_modname: char const * + +Help on function _processor_t_insn_reads_tbit in module ida_idp: + +_processor_t_insn_reads_tbit(*args) -> 'ssize_t' + _processor_t_insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_is_align_insn in module ida_idp: + +_processor_t_is_align_insn(*args) -> 'ssize_t' + _processor_t_is_align_insn(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_alloca_probe in module ida_idp: + +_processor_t_is_alloca_probe(*args) -> 'ssize_t' + _processor_t_is_alloca_probe(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_basic_block_end in module ida_idp: + +_processor_t_is_basic_block_end(*args) -> 'ssize_t' + _processor_t_is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + call_insn_stops_block: bool + +Help on function _processor_t_is_call_insn in module ida_idp: + +_processor_t_is_call_insn(*args) -> 'ssize_t' + _processor_t_is_call_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_cond_insn in module ida_idp: + +_processor_t_is_cond_insn(*args) -> 'ssize_t' + _processor_t_is_cond_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_control_flow_guard in module ida_idp: + +_processor_t_is_control_flow_guard(*args) -> 'ssize_t' + _processor_t_is_control_flow_guard(p_reg, insn) -> ssize_t + + Parameters + ---------- + p_reg: int * + insn: insn_t const * + +Help on function _processor_t_is_far_jump in module ida_idp: + +_processor_t_is_far_jump(*args) -> 'ssize_t' + _processor_t_is_far_jump(icode) -> ssize_t + + Parameters + ---------- + icode: int + +Help on function _processor_t_is_indirect_jump in module ida_idp: + +_processor_t_is_indirect_jump(*args) -> 'ssize_t' + _processor_t_is_indirect_jump(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_jump_func in module ida_idp: + +_processor_t_is_jump_func(*args) -> 'ssize_t' + _processor_t_is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + + Parameters + ---------- + pfn: func_t * + jump_target: ea_t * + func_pointer: ea_t * + +Help on function _processor_t_is_ret_insn in module ida_idp: + +_processor_t_is_ret_insn(*args) -> 'ssize_t' + _processor_t_is_ret_insn(insn, strict) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + strict: bool + +Help on function _processor_t_is_sane_insn in module ida_idp: + +_processor_t_is_sane_insn(*args) -> 'ssize_t' + _processor_t_is_sane_insn(insn, no_crefs) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + no_crefs: int + +Help on function _processor_t_is_sp_based in module ida_idp: + +_processor_t_is_sp_based(*args) -> 'ssize_t' + _processor_t_is_sp_based(insn, x) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + +Help on function _processor_t_is_switch in module ida_idp: + +_processor_t_is_switch(*args) -> 'ssize_t' + _processor_t_is_switch(si, insn) -> ssize_t + + Parameters + ---------- + si: switch_info_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_loader_elf_machine in module ida_idp: + +_processor_t_loader_elf_machine(*args) -> 'ssize_t' + _processor_t_loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + + Parameters + ---------- + li: linput_t * + machine_type: int + p_procname: char const ** + p_pd: proc_def_t ** + ldr: elf_loader_t * + reader: reader_t * + +Help on function _processor_t_lower_func_type in module ida_idp: + +_processor_t_lower_func_type(*args) -> 'ssize_t' + _processor_t_lower_func_type(argnums, fti) -> ssize_t + + Parameters + ---------- + argnums: intvec_t * + fti: func_type_data_t * + +Help on function _processor_t_max_ptr_size in module ida_idp: + +_processor_t_max_ptr_size(*args) -> 'ssize_t' + _processor_t_max_ptr_size() -> ssize_t + +Help on function _processor_t_may_be_func in module ida_idp: + +_processor_t_may_be_func(*args) -> 'ssize_t' + _processor_t_may_be_func(insn, state) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + state: int + +Help on function _processor_t_may_show_sreg in module ida_idp: + +_processor_t_may_show_sreg(*args) -> 'ssize_t' + _processor_t_may_show_sreg(current_ea) -> ssize_t + + Parameters + ---------- + current_ea: ea_t + +Help on function _processor_t_moving_segm in module ida_idp: + +_processor_t_moving_segm(*args) -> 'ssize_t' + _processor_t_moving_segm(seg, to, flags) -> ssize_t + + Parameters + ---------- + seg: segment_t * + to: ea_t + flags: int + +Help on function _processor_t_newasm in module ida_idp: + +_processor_t_newasm(*args) -> 'ssize_t' + _processor_t_newasm(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_newbinary in module ida_idp: + +_processor_t_newbinary(*args) -> 'ssize_t' + _processor_t_newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + + Parameters + ---------- + filename: char const * + fileoff: qoff64_t + basepara: ea_t + binoff: ea_t + nbytes: uint64 + +Help on function _processor_t_newfile in module ida_idp: + +_processor_t_newfile(*args) -> 'ssize_t' + _processor_t_newfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_newprc in module ida_idp: + +_processor_t_newprc(*args) -> 'ssize_t' + _processor_t_newprc(pnum, keep_cfg) -> ssize_t + + Parameters + ---------- + pnum: int + keep_cfg: bool + +Help on function _processor_t_next_exec_insn in module ida_idp: + +_processor_t_next_exec_insn(*args) -> 'ssize_t' + _processor_t_next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + target: ea_t * + ea: ea_t + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_notify in module ida_idp: + +_processor_t_notify(*args) -> 'ssize_t' + _processor_t_notify(event_code) -> ssize_t + + Parameters + ---------- + event_code: enum processor_t::event_t + +Help on function _processor_t_oldfile in module ida_idp: + +_processor_t_oldfile(*args) -> 'ssize_t' + _processor_t_oldfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_out_assumes in module ida_idp: + +_processor_t_out_assumes(*args) -> 'ssize_t' + _processor_t_out_assumes(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_data in module ida_idp: + +_processor_t_out_data(*args) -> 'ssize_t' + _processor_t_out_data(ctx, analyze_only) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + analyze_only: bool + +Help on function _processor_t_out_footer in module ida_idp: + +_processor_t_out_footer(*args) -> 'ssize_t' + _processor_t_out_footer(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_header in module ida_idp: + +_processor_t_out_header(*args) -> 'ssize_t' + _processor_t_out_header(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_insn in module ida_idp: + +_processor_t_out_insn(*args) -> 'ssize_t' + _processor_t_out_insn(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_label in module ida_idp: + +_processor_t_out_label(*args) -> 'ssize_t' + _processor_t_out_label(ctx, colored_name) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + colored_name: char const * + +Help on function _processor_t_out_mnem in module ida_idp: + +_processor_t_out_mnem(*args) -> 'ssize_t' + _processor_t_out_mnem(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_operand in module ida_idp: + +_processor_t_out_operand(*args) -> 'ssize_t' + _processor_t_out_operand(ctx, op) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + op: op_t const & + +Help on function _processor_t_out_segend in module ida_idp: + +_processor_t_out_segend(*args) -> 'ssize_t' + _processor_t_out_segend(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_segstart in module ida_idp: + +_processor_t_out_segstart(*args) -> 'ssize_t' + _processor_t_out_segstart(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_special_item in module ida_idp: + +_processor_t_out_special_item(*args) -> 'ssize_t' + _processor_t_out_special_item(ctx, segtype) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + segtype: uchar + +Help on function _processor_t_realcvt in module ida_idp: + +_processor_t_realcvt(*args) -> 'fpvalue_error_t' + _processor_t_realcvt(m, e, swt) -> fpvalue_error_t + + Parameters + ---------- + m: void * + e: fpvalue_t * + swt: uint16 + +Help on function _processor_t_rename in module ida_idp: + +_processor_t_rename(*args) -> 'ssize_t' + _processor_t_rename(ea, new_name, flags) -> ssize_t + + Parameters + ---------- + ea: ea_t + new_name: char const * + flags: int + +Help on function _processor_t_set_code16_mode in module ida_idp: + +_processor_t_set_code16_mode(*args) -> 'ssize_t' + _processor_t_set_code16_mode(ea, code16=True) -> ssize_t + + Parameters + ---------- + ea: ea_t + code16: bool + +Help on function _processor_t_set_idp_options in module ida_idp: + +_processor_t_set_idp_options(*args) -> 'char const *' + _processor_t_set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + + Parameters + ---------- + keyword: char const * + vtype: int + value: void const * + idb_loaded: bool + +Help on function _processor_t_set_proc_options in module ida_idp: + +_processor_t_set_proc_options(*args) -> 'ssize_t' + _processor_t_set_proc_options(options, confidence) -> ssize_t + + Parameters + ---------- + options: char const * + confidence: int + +Help on function _processor_t_setup_til in module ida_idp: + +_processor_t_setup_til(*args) -> 'ssize_t' + _processor_t_setup_til() -> ssize_t + +Help on function _processor_t_str2reg in module ida_idp: + +_processor_t_str2reg(*args) -> 'ssize_t' + _processor_t_str2reg(regname) -> ssize_t + + Parameters + ---------- + regname: char const * + +Help on function _processor_t_term in module ida_idp: + +_processor_t_term(*args) -> 'ssize_t' + _processor_t_term() -> ssize_t + +Help on function _processor_t_treat_hindering_item in module ida_idp: + +_processor_t_treat_hindering_item(*args) -> 'ssize_t' + _processor_t_treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + + Parameters + ---------- + hindering_item_ea: ea_t + new_item_flags: flags64_t + new_item_ea: ea_t + new_item_length: asize_t + +Help on function _processor_t_undefine in module ida_idp: + +_processor_t_undefine(*args) -> 'ssize_t' + _processor_t_undefine(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_update_call_stack in module ida_idp: + +_processor_t_update_call_stack(*args) -> 'ssize_t' + _processor_t_update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + stack: call_stack_t * + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_use_arg_types in module ida_idp: + +_processor_t_use_arg_types(*args) -> 'ssize_t' + _processor_t_use_arg_types(ea, fti, rargs) -> ssize_t + + Parameters + ---------- + ea: ea_t + fti: func_type_data_t * + rargs: void * + +Help on function _processor_t_use_regarg_type in module ida_idp: + +_processor_t_use_regarg_type(*args) -> 'ssize_t' + _processor_t_use_regarg_type(idx, ea, rargs) -> ssize_t + + Parameters + ---------- + idx: int * + ea: ea_t + rargs: void * + +Help on function _processor_t_use_stkarg_type in module ida_idp: + +_processor_t_use_stkarg_type(*args) -> 'ssize_t' + _processor_t_use_stkarg_type(ea, arg) -> ssize_t + + Parameters + ---------- + ea: ea_t + arg: funcarg_t const & + +Help on function _processor_t_validate_flirt_func in module ida_idp: + +_processor_t_validate_flirt_func(*args) -> 'ssize_t' + _processor_t_validate_flirt_func(start_ea, funcname) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + funcname: char const * + +Help on function _processor_t_verify_noreturn in module ida_idp: + +_processor_t_verify_noreturn(*args) -> 'ssize_t' + _processor_t_verify_noreturn(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_verify_sp in module ida_idp: + +_processor_t_verify_sp(*args) -> 'ssize_t' + _processor_t_verify_sp(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + Help on class asm_t in module ida_idp: class asm_t(builtins.object) @@ -41807,168 +54081,170 @@ class asm_t(builtins.object) | list of weak references to the object (if defined) | | a_align - | asm_t_a_align_get(self) -> char const * + | a_align | | a_ascii - | asm_t_a_ascii_get(self) -> char const * + | a_ascii | | a_band - | asm_t_a_band_get(self) -> char const * + | a_band | | a_bnot - | asm_t_a_bnot_get(self) -> char const * + | a_bnot | | a_bor - | asm_t_a_bor_get(self) -> char const * + | a_bor | | a_bss - | asm_t_a_bss_get(self) -> char const * + | a_bss | | a_byte - | asm_t_a_byte_get(self) -> char const * + | a_byte | | a_comdef - | asm_t_a_comdef_get(self) -> char const * + | a_comdef | | a_curip - | asm_t_a_curip_get(self) -> char const * + | a_curip | | a_double - | asm_t_a_double_get(self) -> char const * + | a_double | | a_dups - | asm_t_a_dups_get(self) -> char const * + | a_dups | | a_dword - | asm_t_a_dword_get(self) -> char const * + | a_dword | | a_equ - | asm_t_a_equ_get(self) -> char const * + | a_equ | | a_extrn - | asm_t_a_extrn_get(self) -> char const * + | a_extrn | | a_float - | asm_t_a_float_get(self) -> char const * + | a_float | | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * + | a_include_fmt | | a_mod - | asm_t_a_mod_get(self) -> char const * + | a_mod | | a_oword - | asm_t_a_oword_get(self) -> char const * + | a_oword | | a_packreal - | asm_t_a_packreal_get(self) -> char const * + | a_packreal | | a_public - | asm_t_a_public_get(self) -> char const * + | a_public | | a_qword - | asm_t_a_qword_get(self) -> char const * + | a_qword | | a_rva - | asm_t_a_rva_get(self) -> char const * + | a_rva | | a_seg - | asm_t_a_seg_get(self) -> char const * + | a_seg | | a_shl - | asm_t_a_shl_get(self) -> char const * + | a_shl | | a_shr - | asm_t_a_shr_get(self) -> char const * + | a_shr | | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * + | a_sizeof_fmt | | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * + | a_tbyte | | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * + | a_vstruc_fmt | | a_weak - | asm_t_a_weak_get(self) -> char const * + | a_weak | | a_word - | asm_t_a_word_get(self) -> char const * + | a_word | | a_xor - | asm_t_a_xor_get(self) -> char const * + | a_xor | | a_yword - | asm_t_a_yword_get(self) -> char const * + | a_yword + | + | a_zword + | a_zword | | accsep - | asm_t_accsep_get(self) -> char + | accsep | | ascsep - | asm_t_ascsep_get(self) -> char + | ascsep | | cmnt - | asm_t_cmnt_get(self) -> char const * + | cmnt | | cmnt2 - | asm_t_cmnt2_get(self) -> char const * + | cmnt2 | | end - | asm_t_end_get(self) -> char const * + | end | | esccodes - | asm_t_esccodes_get(self) -> char const * + | esccodes | | flag - | asm_t_flag_get(self) -> uint32 + | flag | | flag2 - | asm_t_flag2_get(self) -> uint32 + | flag2 | | header - | asm_t_header_get(self) -> char const *const * + | header | | help - | asm_t_help_get(self) -> help_t + | help | | high16 - | asm_t_high16_get(self) -> char const * + | high16 | | high8 - | asm_t_high8_get(self) -> char const * + | high8 | | lbrace - | asm_t_lbrace_get(self) -> char + | lbrace | | low16 - | asm_t_low16_get(self) -> char const * + | low16 | | low8 - | asm_t_low8_get(self) -> char const * + | low8 | | name - | asm_t_name_get(self) -> char const * + | name | | origin - | asm_t_origin_get(self) -> char const * + | origin | | rbrace - | asm_t_rbrace_get(self) -> char + | rbrace | | thisown | The membership flag | | uflag - | asm_t_uflag_get(self) -> uint16 + | uflag Help on function assemble in module ida_idp: assemble(*args) -> 'bool' assemble(ea, cs, ip, use32, line) -> bool - - Assemble an instruction into the database (display a warning if an error is found) + @param ea: linear address of instruction @param cs: cs of instruction @param ip: ip of instruction @@ -41981,206 +54257,259 @@ Help on function cfg_get_cc_header_path in module ida_idp: cfg_get_cc_header_path(*args) -> 'char const *' cfg_get_cc_header_path(compid) -> char const * + + @param compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) -> 'char const *' cfg_get_cc_parm(compid, name) -> char const * + + @param compid: comp_t + @param name: char const * Help on function cfg_get_cc_predefined_macros in module ida_idp: cfg_get_cc_predefined_macros(*args) -> 'char const *' cfg_get_cc_predefined_macros(compid) -> char const * + + @param compid: comp_t Help on function delay_slot_insn in module ida_idp: delay_slot_insn(*args) -> 'bool' delay_slot_insn(ea, bexec, fexec) -> bool - - Helper function to get the delay slot instruction. - - - @param ea (C++: ea_t *) - @param bexec (C++: bool *) - @param fexec (C++: bool *) + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * Help on function gen_idb_event in module ida_idp: gen_idb_event(*args) -> 'void' gen_idb_event(code) - - the kernel will use this function to generate idb_events - - @param code (C++: idb_event::event_code_t) + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t + +Help on function get_ash in module ida_idp: + +get_ash(*args) -> 'asm_t *' + get_ash() -> asm_t Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) -> 'PyObject *' get_idb_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * Help on function get_idb_notifier_ud_addr in module ida_idp: get_idb_notifier_ud_addr(*args) -> 'PyObject *' get_idb_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDB_Hooks * Help on function get_idp_name in module ida_idp: get_idp_name(*args) -> 'size_t' get_idp_name() -> str - - - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) -> 'PyObject *' get_idp_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * Help on function get_idp_notifier_ud_addr in module ida_idp: get_idp_notifier_ud_addr(*args) -> 'PyObject *' get_idp_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDP_Hooks * + +Help on function get_ph in module ida_idp: + +get_ph(*args) -> 'processor_t *' + get_ph() -> _processor_t Help on function get_reg_info in module ida_idp: get_reg_info(*args) -> 'char const *' get_reg_info(regname, bitrange) -> char const * - - Get register information - useful for registers like al, ah, dil, etc. - - @param regname (C++: const char *) - @param bitrange (C++: bitrange_t *) - @return: NULL no such register + @param regname: char const * + @param bitrange: bitrange_t * Help on function get_reg_name in module ida_idp: get_reg_name(*args) -> 'qstring *' get_reg_name(reg, width, reghi=-1) -> str + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead - - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair @return: length of register name in bytes or -1 if failure Help on function has_cf_chg in module ida_idp: has_cf_chg(*args) -> 'bool' has_cf_chg(feature, opnum) -> bool + Does an instruction with the specified feature modify the i-th operand? - - Does an instruction with the specified feature modify the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_cf_use in module ida_idp: has_cf_use(*args) -> 'bool' has_cf_use(feature, opnum) -> bool + Does an instruction with the specified feature use a value of the i-th operand? - - Does an instruction with the specified feature use a value of the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_insn_feature in module ida_idp: has_insn_feature(*args) -> 'bool' has_insn_feature(icode, bit) -> bool - - Does the specified instruction have the specified feature? - - @param icode (C++: int) - @param bit (C++: uint32) + @param icode: (C++: uint16) + @param bit: (C++: uint32) Help on function is_align_insn in module ida_idp: is_align_insn(*args) -> 'int' is_align_insn(ea) -> int + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. - - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_basic_block_end in module ida_idp: is_basic_block_end(*args) -> 'bool' is_basic_block_end(insn, call_insn_stops_block) -> bool - - Is the instruction the end of a basic block? - - @param insn (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) Help on function is_call_insn in module ida_idp: is_call_insn(*args) -> 'bool' is_call_insn(insn) -> bool - - Is the instruction a "call"? - - @param insn (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_indirect_jump_insn in module ida_idp: is_indirect_jump_insn(*args) -> 'bool' is_indirect_jump_insn(insn) -> bool - - Is the instruction an indirect jump? - - @param insn (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_ret_insn in module ida_idp: is_ret_insn(*args) -> 'bool' is_ret_insn(insn, strict=True) -> bool - - Is the instruction a "return"? - - @param insn (C++: const insn_t &) - @param strict (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(builtins.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_num_range_t(...) + | delete_num_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + +Help on class params_t in module ida_idp: + +class params_t(builtins.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_params_t(...) + | delete_params_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag Help on function parse_reg_name in module ida_idp: parse_reg_name(*args) -> 'bool' parse_reg_name(ri, regname) -> bool - - Get register info by name. - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register @return: success Help on __ph in module ida_idp object: @@ -42230,65 +54559,61 @@ class __ph(builtins.object) Help on function ph_calcrel in module ida_idp: -ph_calcrel(*args) -> 'bytevec_t *' +ph_calcrel(*args) -> 'bytevec_t *, size_t *' ph_calcrel(ea) + + @param ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_op_value(insn, op) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_reg_value(insn, reg) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int Help on function ph_get_cnbits in module ida_idp: ph_get_cnbits(*args) -> 'size_t' ph_get_cnbits() -> size_t - - Returns the 'ph.cnbits' Help on function ph_get_dnbits in module ida_idp: ph_get_dnbits(*args) -> 'size_t' ph_get_dnbits() -> size_t - - Returns the 'ph.dnbits' Help on function ph_get_flag in module ida_idp: ph_get_flag(*args) -> 'size_t' ph_get_flag() -> size_t - - Returns the 'ph.flag' Help on function ph_get_icode_return in module ida_idp: ph_get_icode_return(*args) -> 'size_t' ph_get_icode_return() -> size_t - - Returns the 'ph.icode_return' Help on function ph_get_id in module ida_idp: ph_get_id(*args) -> 'size_t' ph_get_id() -> size_t - - Returns the 'ph.id' field Help on function ph_get_instruc in module ida_idp: ph_get_instruc(*args) -> 'PyObject *' - ph_get_instruc() -> PyObject * - - + ph_get_instruc() -> [(str, int), ...] Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -42296,24 +54621,18 @@ Help on function ph_get_instruc_end in module ida_idp: ph_get_instruc_end(*args) -> 'size_t' ph_get_instruc_end() -> size_t - - Returns the 'ph.instruc_end' Help on function ph_get_instruc_start in module ida_idp: ph_get_instruc_start(*args) -> 'size_t' ph_get_instruc_start() -> size_t - - Returns the 'ph.instruc_start' Help on function ph_get_operand_info in module ida_idp: ph_get_operand_info(*args) -> 'PyObject *' - ph_get_operand_info(ea, n) -> PyObject * - - + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None Returns the operand information given an ea and operand number. @param ea: address @@ -42322,70 +54641,71 @@ ph_get_operand_info(*args) -> 'PyObject *' @return: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size). Please refer to idd_opinfo_t structure in the SDK. +Help on function ph_get_reg_accesses in module ida_idp: + +ph_get_reg_accesses(*args) -> 'ssize_t' + ph_get_reg_accesses(accvec, insn, flags) -> ssize_t + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int + Help on function ph_get_reg_code_sreg in module ida_idp: ph_get_reg_code_sreg(*args) -> 'size_t' ph_get_reg_code_sreg() -> size_t - - Returns the 'ph.reg_code_sreg' Help on function ph_get_reg_data_sreg in module ida_idp: ph_get_reg_data_sreg(*args) -> 'size_t' ph_get_reg_data_sreg() -> size_t - - Returns the 'ph.reg_data_sreg' Help on function ph_get_reg_first_sreg in module ida_idp: ph_get_reg_first_sreg(*args) -> 'size_t' ph_get_reg_first_sreg() -> size_t - - Returns the 'ph.reg_first_sreg' Help on function ph_get_reg_last_sreg in module ida_idp: ph_get_reg_last_sreg(*args) -> 'size_t' ph_get_reg_last_sreg() -> size_t - - Returns the 'ph.reg_last_sreg' Help on function ph_get_regnames in module ida_idp: ph_get_regnames(*args) -> 'PyObject *' - ph_get_regnames() -> PyObject * - - + ph_get_regnames() -> [str, ...] Returns the list of register names as defined in the processor module Help on function ph_get_segreg_size in module ida_idp: ph_get_segreg_size(*args) -> 'size_t' ph_get_segreg_size() -> size_t - - Returns the 'ph.segreg_size' Help on function ph_get_tbyte_size in module ida_idp: ph_get_tbyte_size(*args) -> 'size_t' ph_get_tbyte_size() -> size_t - - Returns the 'ph.tbyte_size' field as defined in he processor module Help on function ph_get_version in module ida_idp: ph_get_version(*args) -> 'size_t' ph_get_version() -> size_t - - Returns the 'ph.version' +Help on function process_config_directive in module ida_idp: + +process_config_directive(*args) -> 'void' + process_config_directive(directive, priority=2) + + @param directive: char const * + @param priority: int + Help on class processor_t in module ida_idp: class processor_t(IDP_Hooks) @@ -42399,7 +54719,10 @@ class processor_t(IDP_Hooks) | Methods defined here: | | __init__(self) - | __init__(self, _flags=0) -> IDP_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _get_idb_notifier_addr(self) | @@ -42431,271 +54754,558 @@ class processor_t(IDP_Hooks) | | ev_ana_insn(self, *args) | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. | - | - | Analyzes and decodes an instruction at insn.ea - | - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - | - insn.size must be set to the instruction length - | - | @return: Boolean - | - False if the instruction is not recognized - | - True if the instruction was decoded. 'insn' should be filled in that case. + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_assemble(self, *args) | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). | - | - | Assembles an instruction - | - | @param ea: linear address of instruction - | @param cs: cs of instruction - | @param ip: ip of instruction - | @param use32: is 32bit segment? - | @param line: line to assemble - | - | @return: - None to let the underlying processor module assemble the line - | - or a string containing the assembled buffer + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_step_over(self, target, ip) | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_can_have_type(self, *args) | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_cmp_operands(self, *args) | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_func_frame(self, pfn) | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_switch_xrefs(self, *args) | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, s) | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_emu_insn(self, *args) | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. | - | - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this function - | all information about the instruction is in 'insn' structure. - | - | @return: Boolean (whether this instruction has been emulated or not) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? | | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_map_file(self, nlines, fp) | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, ctx, v) | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_get_autocmt(self, *args) | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_frame_retsize(self, frsize, pfn) | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_operand_string(self, buf, insn, opnum) | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_is_align_insn(self, *args) | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) | ev_is_call_insn(self, insn) -> int - | - | | Is the instruction a "call"? | - | @param insn: instruction - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_far_jump(self, *args) | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) - | ev_is_insn_table_jump(self, insn) -> int + | ev_is_insn_table_jump(self) -> int + | Reserved. | | ev_is_ret_insn(self, *args) | ev_is_ret_insn(self, insn, strict) -> int - | - | | Is the instruction a "return"? | - | @param insn: instruction - | @param strict: - True: report only ret instructions - | False: include instructions like "leave" which begins the function epilog - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. | - | - | is the instruction sane for the current file type? - | @param insn: the instruction - | @param no_crefs: - | - 1: the instruction has no code refs to it. - | ida just tries to convert unexplored bytes - | to an instruction (but there is no other - | reason to convert them into an instruction) - | - 0: the instruction is created because - | of some coderef, user request or another - | weighty reason. - | @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, mode, insn, op) | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented | | ev_may_be_func(self, *args) | ev_may_be_func(self, insn, state) -> int - | - | | Can a function start here? - | @param insn: the instruction - | @param state: autoanalysis phase - | 0: creating functions - | 1: creating chunks | - | @return: integer (probability 0..100) + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) | | ev_may_show_sreg(self, *args) | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, s, to_ea, flags) | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newbinary(self, *args) | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load | | ev_newfile(self, *args) | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name | | ev_newprc(self, *args) | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_oldfile(self, *args) | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) - | ev_out_header(self, outctx) + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. | - | - | Notification to generate operand text. - | If False was returned, then the standard operand output function will be called. - | - | this notification may use out_...() functions to form the operand text - | - | @return: Boolean (whether the operand has been outputted or not) + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, ctx, s) | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, ctx, s) | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow | | ev_rename(self, *args) | ev_rename(self, ea, new_name) -> int - | - | | The kernel is going to rename a byte. | - | @param ea: Address - | @param new_name: The new name - | - | @return: - | - If returns value <0, then the kernel should - | not rename it. See also the 'renamed' event + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | - | ev_set_idp_options(self, keyword, value_type, value) - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p:. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_str2reg(self, *args) | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_treat_hindering_item(self, *args) | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. | - | - | An item in the database (insn or data) is being deleted - | @param ea: Address - | @return: - | - 1 - do not delete srranges at the item end - | - 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_validate_flirt_func(self, *args) | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, pfn) | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, pfn) | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | func_added(self, pfn) | @@ -42745,209 +55355,712 @@ class processor_t(IDP_Hooks) | __swig_destroy__ = delete_IDP_Hooks(...) | delete_IDP_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | ev_add_cref(self, *args) -> 'int' | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) -> 'int' | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm | | ev_calc_arglocs(self, *args) -> 'int' | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_switch_cases(self, *args) -> 'int' | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' | ev_calcrel(self) -> int + | Reserved. | | ev_clean_tbit(self, *args) -> 'int' | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_create_flat_group(self, *args) -> 'int' | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_decorate_name(self, *args) -> 'PyObject *' | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_ending_undo(self, *args) -> 'int' | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | - | ev_gen_asm_or_lst(self, *args) -> 'void' - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_stkvar_def(self, *args) -> 'int' | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_bg_color(self, *args) -> 'int' - | ev_get_bg_color(self, ea) -> int or None + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_macro_insn_head(self, *args) -> 'int' | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_cond_insn(self, *args) -> 'int' | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_jump_func(self, *args) -> 'int' | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_newasm(self, *args) -> 'int' | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed | | ev_next_exec_insn(self, *args) -> 'int' | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_replaying_undo(self, *args) -> 'int' | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) -> 'int' - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_term(self, *args) -> 'int' | ev_term(self) -> int + | The IDP module is being unloaded. + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | hook(self, *args) -> 'bool' | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success | | unhook(self, *args) -> 'bool' | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success | | ---------------------------------------------------------------------- | Data descriptors inherited from IDP_Hooks: @@ -42961,6 +56074,431 @@ class processor_t(IDP_Hooks) | thisown | The membership flag +Help on class reg_access_t in module ida_idp: + +class reg_access_t(builtins.object) + | Proxy of C++ reg_access_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_access_t(...) + | delete_reg_access_t(self) + | + | have_common_bits(self, *args) -> 'bool' + | have_common_bits(self, r) -> bool + | + | @param r: reg_access_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | access_type + | + | opnum + | opnum + | + | range + | range + | + | regnum + | regnum + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_access_vec_t in module ida_idp: + +class reg_access_vec_t(builtins.object) + | Proxy of C++ qvector< reg_access_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | __swig_destroy__ = delete_reg_access_vec_t(...) + | delete_reg_access_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_accesses_t in module ida_idp: + +class reg_accesses_t(reg_access_vec_t) + | Proxy of C++ reg_accesses_t class. + | + | Method resolution order: + | reg_accesses_t + | reg_access_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> reg_accesses_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_accesses_t(...) + | delete_reg_accesses_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from reg_access_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from reg_access_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from reg_access_vec_t: + | + | __hash__ = None + Help on class reg_info_t in module ida_idp: class reg_info_t(builtins.object) @@ -42970,24 +56508,36 @@ class reg_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: reg_info_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: reg_info_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: reg_info_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: reg_info_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: reg_info_t const & | | __repr__ = _swig_repr(self) | @@ -42996,6 +56546,8 @@ class reg_info_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -43007,10 +56559,10 @@ class reg_info_t(builtins.object) | list of weak references to the object (if defined) | | reg - | reg_info_t_reg_get(self) -> int + | reg | | size - | reg_info_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -43020,980 +56572,408 @@ class reg_info_t(builtins.object) | | __hash__ = None +Help on function register_cfgopts in module ida_idp: + +register_cfgopts(*args) -> 'bool' + register_cfgopts(opts, nopts, cb=None, obj=None) -> bool + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * + Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ @return: success Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' set_target_assembler(asmnum) -> bool - - Set target assembler. - @param asmnum: number of assembler in the current processor module - (C++: int) + @param asmnum: (C++: int) number of assembler in the current processor module @return: success Help on function sizeof_ldbl in module ida_idp: sizeof_ldbl(*args) -> 'size_t' sizeof_ldbl() -> size_t - - - Get size of long double. Help on function str2reg in module ida_idp: str2reg(*args) -> 'int' str2reg(p) -> int - - Get any reg number (-1 on error) + @param p: (C++: const char *) char const * + +Module "ida_ieee"s docstring: +""" +IEEE floating point functions.""" + +Help on function ecleaz in module ida_ieee: + +ecleaz(*args) -> 'void' + ecleaz(x) - @param p (C++: const char *) + @param x: unsigned short [(6+3)] + +Help on class fpvalue_shorts_array_t in module ida_ieee: + +class fpvalue_shorts_array_t(builtins.object) + | Proxy of C++ wrapped_array_t< uint16,FPVAL_NWORDS > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned short const &' + | __getitem__(self, i) -> unsigned short const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> fpvalue_shorts_array_t + | + | @param data: unsigned short (&)[FPVAL_NWORDS] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned short const & + | + | __swig_destroy__ = delete_fpvalue_shorts_array_t(...) + | delete_fpvalue_shorts_array_t(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class fpvalue_t in module ida_ieee: + +class fpvalue_t(builtins.object) + | Proxy of C++ fpvalue_t class. + | + | Methods defined here: + | + | __add__(self, *args) -> 'fpvalue_t' + | __add__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __getitem__(self, i) + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __init__(self, *args) + | __init__(self) -> fpvalue_t + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __mul__(self, *args) -> 'fpvalue_t' + | __mul__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, i, v) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __sub__(self, *args) -> 'fpvalue_t' + | __sub__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __swig_destroy__ = delete_fpvalue_t(...) + | delete_fpvalue_t(self) + | + | __truediv__(self, *args) -> 'fpvalue_t' + | __truediv__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | _get_10bytes(self, *args) -> 'void' + | _get_10bytes(self) + | + | _get_bytes(self, *args) -> 'void' + | _get_bytes(self) + | + | _get_float(self, *args) -> 'double' + | _get_float(self) -> double + | + | _get_shorts(self, *args) -> 'wrapped_array_t< uint16,FPVAL_NWORDS >' + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | _set_10bytes(self, *args) -> 'void' + | _set_10bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec10_t const & + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec12_t const & + | + | _set_float(self, *args) -> 'void' + | _set_float(self, v) + | + | Parameters + | ---------- + | v: double + | + | assign(self, *args) -> 'void' + | assign(self, r) + | + | @param r: fpvalue_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: fpvalue_t const & + | + | eabs(self, *args) -> 'void' + | eabs(self) + | Calculate absolute value. + | + | fadd(self, *args) -> 'fpvalue_error_t' + | fadd(self, y) -> fpvalue_error_t + | Arithmetic operations. + | + | @param y: (C++: const fpvalue_t &) fpvalue_t const & + | + | fdiv(self, *args) -> 'fpvalue_error_t' + | fdiv(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | fmul(self, *args) -> 'fpvalue_error_t' + | fmul(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | from_10bytes(self, *args) -> 'fpvalue_error_t' + | from_10bytes(self, fpval) -> fpvalue_error_t + | Conversions for 10-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_12bytes(self, *args) -> 'fpvalue_error_t' + | from_12bytes(self, fpval) -> fpvalue_error_t + | Conversions for 12-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_int64(self, *args) -> 'void' + | from_int64(self, x) + | + | @param x: int64 + | + | from_str(self, *args) -> 'fpvalue_error_t' + | from_str(self, p) -> fpvalue_error_t + | Convert string to IEEE. + | + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. + | + | from_sval(self, *args) -> 'void' + | from_sval(self, x) + | Convert integer to IEEE. + | + | @param x: (C++: sval_t) + | + | from_uint64(self, *args) -> 'void' + | from_uint64(self, x) + | + | @param x: uint64 + | + | fsub(self, *args) -> 'fpvalue_error_t' + | fsub(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | get_kind(self, *args) -> 'fpvalue_kind_t' + | get_kind(self) -> fpvalue_kind_t + | Get value kind. + | + | is_negative(self, *args) -> 'bool' + | is_negative(self) -> bool + | Is negative value? + | + | mul_pow2(self, *args) -> 'fpvalue_error_t' + | mul_pow2(self, power_of_2) -> fpvalue_error_t + | Multiply by a power of 2. + | + | @param power_of_2: (C++: int32) + | + | negate(self, *args) -> 'void' + | negate(self) + | Negate. + | + | to_10bytes(self, *args) -> 'fpvalue_error_t' + | to_10bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_12bytes(self, *args) -> 'fpvalue_error_t' + | to_12bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_int64(self, *args) -> 'fpvalue_error_t' + | to_int64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | to_str(self, *args) -> 'void' + | to_str(self, mode) + | Convert IEEE to string. + | + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS + | + | to_sval(self, *args) -> 'fpvalue_error_t' + | to_sval(self, round=False) -> fpvalue_error_t + | Convert IEEE to integer (+-0.5 if round) + | + | @param round: (C++: bool) + | + | to_uint64(self, *args) -> 'fpvalue_error_t' + | to_uint64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | _10bytes + | _get_10bytes(self) + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) + | + | float + | _get_float(self) -> double + | + | int64 + | + | shorts + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | sval + | + | thisown + | The membership flag + | + | uint64 + | + | w + | w + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_kernwin"s docstring: +""" +Defines the interface between the kernel and the UI. + +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.""" -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -Meaningful only for wide byte processors. - -One symbol per processor byte -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings -""" - -ida_idp.AS2_TERSESTR -""" -NAME is supported. - -'terse' structure initialization form -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 -""" - -ida_idp.AS_ASCIIC -""" -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_HLL -""" -language function. - -Instruction may be present in a high level -""" - -ida_idp.CF_JUMP -""" -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -next instruction - -Instruction doesn't pass execution to the -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. -""" - -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -(display only) - -The user can't change segments and code/data attributes -""" - -ida_idp.PR_NO_SEGMOVE -""" -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback -""" - -ida_idp.PR_USE_TBYTE -""" - 'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === Help on class Choose in module ida_kernwin: class Choose(builtins.object) @@ -44025,8 +57005,124 @@ class Choose(builtins.object) | | @return: The TWidget underlying this view, or None. | + | OnClose(self) + | The chooser window is closed. + | + | OnDeleteLine(self, sel) + | User deleted an element + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnEditLine(self, sel) + | User asked to edit an element. + | + | @param 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 `` + | (`` if the chooser is modal), IDA will jump + | to that address (through jumpto()) + | @param 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 + | + | @param n: index of the element + | @return: an icon ID + | + | OnGetLine(self, n) + | Get data for an element + | + | This callback is mandatory + | + | @param n: the index to fetch data for + | @return: a list of strings + | + | OnGetLineAttr(self, n) + | Get attributes for an element + | + | @param 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 + | + | @param 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 + | + | @param 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 + | + | @param 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. + | + | @param 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. + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectLine(self, sel) + | User pressed the enter key, or double-clicked a selection + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectionChange(self, sel) + | Selection changed + | + | @param sel: the new selection + | | Refresh(self) | Causes the refresh callback to trigger | @@ -44042,13 +57138,14 @@ class Choose(builtins.object) | For non-modal choosers it will return 0 | or ALREADY_EXISTS if the chooser was already open and is active now; | - | __init__(self, 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) + | __init__(self, 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) | Constructs a chooser window. | @param title: The chooser title | @param 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] ] | @param flags: One of CH_XXXX constants + | @param flags2: One of CH2_XXXX constants | @param deflt: The index of the default item (0-based) for single | selection choosers or the list of indexes for multi selection | chooser @@ -44056,7 +57153,7 @@ class Choose(builtins.object) | ["Insert", "Delete", "Edit", "Refresh"] | @param icon: Icon index (the icon should exist in ida resources or | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) + | @param x1: , y1, x2, y2: The default location (for txt-version) | @param embedded: Create as embedded chooser | @param width: Embedded chooser width | @param height: Embedded chooser height @@ -44066,7 +57163,7 @@ class Choose(builtins.object) | Helper for OnDeleteLine() and OnRefresh() callbacks. | They can be finished by the following line: | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item + | @param line: number of the remaining select item | @return: list of selected lines numbers (one element or empty) | | ---------------------------------------------------------------------- @@ -44087,6 +57184,10 @@ class Choose(builtins.object) | | CHCOL_DEC = 196608 | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | | CHCOL_EA = 262144 | | CHCOL_FNAME = 327680 @@ -44095,30 +57196,12 @@ class Choose(builtins.object) | | CHCOL_HEX = 131072 | + | CHCOL_INODENAME = 4194304 + | | CHCOL_PATH = 65536 | | CHCOL_PLAIN = 0 | - | CHOOSE_HAVE_DEL = 16 - | - | CHOOSE_HAVE_EDIT = 32 - | - | CHOOSE_HAVE_ENTER = 64 - | - | CHOOSE_HAVE_GETATTR = 4 - | - | CHOOSE_HAVE_GETICON = 2 - | - | CHOOSE_HAVE_INIT = 1 - | - | CHOOSE_HAVE_INS = 8 - | - | CHOOSE_HAVE_ONCLOSE = 512 - | - | CHOOSE_HAVE_REFRESH = 128 - | - | CHOOSE_HAVE_SELECT = 256 - | | CH_ATTRS = 32 | | CH_BUILTIN_MASK = 33030144 @@ -44135,6 +57218,10 @@ class Choose(builtins.object) | | CH_FORCE_DEFAULT = 128 | + | CH_HAS_DIFF = 268435456 + | + | CH_HAS_DIRTREE = 33554432 + | | CH_MODAL = 1 | | CH_MULTI = 4 @@ -44161,6 +57248,8 @@ class Choose(builtins.object) | | CH_QFTYP_WHOLE_WORDS = 16384 | + | CH_RENAME_IS_EDIT = 262144 + | | CH_RESTORE = 131072 | | EMPTY_CHOOSER = -2 @@ -44275,7 +57364,10 @@ class CustomIDAMemo(View_Hooks) | @param values: A dictionary of 'int -> node_info_t' objects. | | __init__(self) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _get_cb(self, view, cb_name) | @@ -44285,36 +57377,80 @@ class CustomIDAMemo(View_Hooks) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44331,8 +57467,10 @@ class CustomIDAMemo(View_Hooks) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -44342,6 +57480,9 @@ class CustomIDAMemo(View_Hooks) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44377,7 +57518,7 @@ class Form(builtins.object) | | Close(self, close_normally) | Close the form - | @param close_normally: + | @param 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 @@ -44425,8 +57566,7 @@ class Form(builtins.object) | GetControlValue(self, ctrl) | Returns the control's value depending on its type | @param ctrl: Form control instance - | @return: - | - color button, radio controls: integer + | @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 @@ -44452,7 +57592,7 @@ class Form(builtins.object) | SetControlValue(self, ctrl, value) | Set the control's value depending on its type | @param ctrl: Form control instance - | @param value: + | @param 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 @@ -44686,7 +57826,10 @@ class IDAViewWrapper(CustomIDAMemo) | Unbind(self) | | __init__(self, title) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | ---------------------------------------------------------------------- | Methods inherited from CustomIDAMemo: @@ -44785,36 +57928,80 @@ class IDAViewWrapper(CustomIDAMemo) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from CustomIDAMemo: @@ -44831,8 +58018,10 @@ class IDAViewWrapper(CustomIDAMemo) | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -44842,6 +58031,9 @@ class IDAViewWrapper(CustomIDAMemo) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44894,6 +58086,7 @@ class PluginForm(builtins.object) | @param options: One of PluginForm.WOPN_ constants | | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44941,6 +58134,8 @@ class PluginForm(builtins.object) | | WCLS_CLOSE_LATER = 8 | + | WCLS_DELETE_LATER = 8 + | | WCLS_DONT_SAVE_SIZE = 4 | | WCLS_NO_CONTEXT = 2 @@ -44965,6 +58160,8 @@ class PluginForm(builtins.object) | | WOPN_DP_RIGHT = 262144 | + | WOPN_DP_SZHINT = 16777216 + | | WOPN_DP_TAB = 4194304 | | WOPN_DP_TAB_BEFORE = 6291456 @@ -44987,6 +58184,8 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) -> 'TWidget *' TWidget__from_ptrval__(ptrval) -> TWidget * + + @param ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -44998,7 +58197,16 @@ class UI_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> UI_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> UI_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __real_database_closed = database_closed(self, *args) -> 'void' + | 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(). | | __repr__ = _swig_repr(self) | @@ -45007,173 +58215,279 @@ class UI_Hooks(builtins.object) | | create_desktop_widget(self, *args) -> 'PyObject *' | create_desktop_widget(self, title, cfg) -> PyObject * + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null | | current_widget_changed(self, *args) -> 'void' | current_widget_changed(self, widget, prev_widget) + | The currently-active TWidget changed. + | + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) + | + | database_closed = __wrapper(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, *args) -> 'void' | database_inited(self, is_new_database, idc_script) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param 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, *args) -> 'void' | debugger_menu_change(self, enable) + | debugger menu modification detected + | + | @param 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") | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | desktop_applied(self, *args) -> 'void' + | desktop_applied(self, name, from_idb, type) + | a desktop has been applied + | + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) + | + | destroying_plugmod(self, *args) -> 'void' + | destroying_plugmod(self, plugmod, entry) + | The plugin object is about to be destroyed + | + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) + | + | destroying_procmod(self, *args) -> 'void' + | destroying_procmod(self, procmod) + | The processor module is about to be destroyed + | + | @param procmod: (const procmod_t *) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool | | finish_populating_widget_popup(self, *args) -> '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(). | - | - | The UI is about to be done populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) -> '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() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) -> '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 + | + | @param viewer: (TWidget*) viewer + | @param 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, *args) -> '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 | - | - | The UI wants to display a simple hint for an address in the navigation band - | - | @param ea: The address - | @return: String with the hint or None + | @param ea: (::ea_t) + | @return: true if generated a hint | | get_item_hint(self, *args) -> '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 + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint + | + | get_lines_rendering_info(self, *args) -> 'void' + | get_lines_rendering_info(self, out, widget, info) + | get lines rendering information + | + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) | | get_widget_config(self, *args) -> '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) + | + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool - | - | - | Creates an UI hook - | - | @return: Boolean true on success | | idcstart(self, *args) -> 'void' | idcstart(self) + | Start of IDC engine work. | | idcstop(self, *args) -> 'void' | idcstop(self) + | Stop of IDC engine work. + | + | initing_database(self, *args) -> '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, *args) -> 'void' | plugin_loaded(self, plugin_info) + | The plugin was loaded in memory. + | + | @param plugin_info: (const plugin_info_t *) | | plugin_unloading(self, *args) -> 'void' | plugin_unloading(self, plugin_info) + | The plugin is about to be unloaded + | + | @param plugin_info: (const plugin_info_t *) | | populating_widget_popup(self, *args) -> '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.) | - | The UI is populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | postprocess_action(self, *args) -> 'void' | postprocess_action(self) - | - | - | An ida ui action has been handled - | - | @return: Ignored + | an ida ui action has been handled | - | preprocess_action(self, *args) -> 'void' - | preprocess_action(self, name) + | preprocess_action(self, *args) -> 'int' + | preprocess_action(self, name) -> int + | ida ui is about to handle a user action. | - | - | IDA ui is about to handle a user action - | - | @param name: ui action name - | (these names can be looked up in ida[tg]ui.cfg) - | @return: 0-ok, nonzero - a plugin has handled the action + | @param 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, *args) -> '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, *args) -> 'void' | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. | | resume(self, *args) -> 'void' | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it | | saved(self, *args) -> 'void' - | saved(self) + | 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. | - | - | The kernel has saved the database. - | - | @return: Ignored + | @param path: (const char *) the database path | | saving(self, *args) -> 'void' | saving(self) - | - | - | The kernel is saving the database. - | - | @return: Ignored + | The kernel is flushing its buffers to the disk. The user interface should + | save its state. Parameters: none Returns: none | | screen_ea_changed(self, *args) -> 'void' | screen_ea_changed(self, ea, prev_ea) + | The "current address" changed + | + | @param ea: (ea_t) + | @param prev_ea: (ea_t) | | set_widget_config(self, *args) -> 'void' | set_widget_config(self, widget, cfg) + | set the widget configuration + | + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) | | suspend(self, *args) -> 'void' | suspend(self) - | - | term(self, *args) -> 'void' - | term(self) - | - | - | IDA is terminated and the database is already closed. - | The UI may close its windows in this callback. + | Suspend graphical interface. Only the text version. Interface should respond + | to it. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool - | - | - | Removes the UI hook - | @return: Boolean true on success | | updated_actions(self, *args) -> 'void' | updated_actions(self) - | - | - | The UI is done updating actions. - | - | @return: Ignored + | IDA is done updating actions. | | updating_actions(self, *args) -> '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. | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored + | @param ctx: (action_update_ctx_t *) | | widget_closing(self, *args) -> '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 + | + | @param widget: (TWidget *) | | widget_invisible(self, *args) -> 'void' | widget_invisible(self, widget) + | TWidget is being closed. Use this event to destroy the window controls + | + | @param widget: (TWidget *) | | widget_visible(self, *args) -> 'void' | widget_visible(self, widget) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45197,15 +58511,20 @@ class View_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_View_Hooks(...) | delete_View_Hooks(self) | - | dump_state(self, *args) -> 'qstring' - | dump_state(self) -> qstring + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -45215,39 +58534,86 @@ class View_Hooks(builtins.object) | | view_activated(self, *args) -> 'void' | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, *args) -> 'void' | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, *args) -> 'void' | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | view_curpos(self, *args) -> 'void' | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, *args) -> 'void' | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, *args) -> 'void' | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, *args) -> 'void' | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, *args) -> '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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, *args) -> 'void' | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, *args) -> '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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, *args) -> 'void' | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45261,6 +58627,10 @@ class View_Hooks(builtins.object) | thisown | The membership flag +Help on function __call_form_callable in module ida_kernwin: + +__call_form_callable(call, *args) + Help on class __qtimer_t in module ida_kernwin: class __qtimer_t(builtins.object) @@ -45292,24 +58662,118 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) -> 'ea_t *' _ask_addr(addr, format) -> bool + + Parameters + ---------- + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) -> 'sval_t *' _ask_long(value, format) -> bool + + Parameters + ---------- + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) -> 'sel_t *' _ask_seg(sel, format) -> bool + + Parameters + ---------- + sel: sel_t * + format: char const * -Help on function _call_ask_form in module ida_kernwin: +Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: -_call_ask_form(*args) +_kludge_force_declare_dirspec_t(*args) -> 'void' + _kludge_force_declare_dirspec_t(arg1) + + Parameters + ---------- + arg1: dirspec_t const * -Help on function _call_open_form in module ida_kernwin: +Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: -_call_open_form(*args) +_kludge_force_declare_dirtree_t(*args) -> 'void' + _kludge_force_declare_dirtree_t(arg1) + + Parameters + ---------- + arg1: dirtree_t const * + +Help on class action_ctx_base_cur_sel_t in module ida_kernwin: + +class action_ctx_base_cur_sel_t(builtins.object) + | Proxy of C++ action_ctx_base_cur_sel_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_cur_sel_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_cur_sel_t(...) + | delete_action_ctx_base_cur_sel_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _from + | _from + | + | thisown + | The membership flag + | + | to + | to + +Help on class action_ctx_base_source_t in module ida_kernwin: + +class action_ctx_base_source_t(builtins.object) + | Proxy of C++ action_ctx_base_source_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_source_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_source_t(...) + | delete_action_ctx_base_source_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | chooser + | chooser + | + | thisown + | The membership flag Help on class action_ctx_base_t in module ida_kernwin: @@ -45326,20 +58790,15 @@ class action_ctx_base_t(builtins.object) | __swig_destroy__ = delete_action_ctx_base_t(...) | delete_action_ctx_base_t(self) | - | _get_form(self, *args) -> 'TWidget *' - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) -> 'qstring' - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) -> 'twidget_type_t' - | _get_form_type(self) -> twidget_type_t - | | has_flag(self, *args) -> 'bool' | has_flag(self, flag) -> bool + | Check if the given flag is set. + | + | @param flag: (C++: uint32) | | reset(self, *args) -> 'void' | reset(self) + | Invalidate all context info. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45351,70 +58810,79 @@ class action_ctx_base_t(builtins.object) | list of weak references to the object (if defined) | | action - | action_ctx_base_t_action_get(self) -> char const * + | action | | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * + | chooser_selection | | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t + | cur_ea | | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t + | cur_enum + | + | cur_enum_member + | cur_enum_member | | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * + | cur_fchunk | | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 + | cur_flags | | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * + | cur_func | | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * + | cur_seg + | + | cur_sel + | cur_sel | | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * + | cur_strmem | | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * + | cur_struc | | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value + | + | dirtree_selection + | dirtree_selection | | focus - | action_ctx_base_t_focus_get(self) -> TWidget * + | focus | | form - | _get_form(self) -> TWidget * | | form_title - | _get_form_title(self) -> qstring | | form_type - | _get_form_type(self) -> twidget_type_t | | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * + | graph_selection | | regname - | action_ctx_base_t_regname_get(self) -> char const * + | regname + | + | source + | source | | thisown | The membership flag | | widget - | action_ctx_base_t_widget_get(self) -> TWidget * + | widget | | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * + | widget_title | | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t + | widget_type Help on class action_desc_t in module ida_kernwin: @@ -45425,6 +58893,14 @@ class action_desc_t(builtins.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int | | __repr__ = _swig_repr(self) | @@ -45441,31 +58917,31 @@ class action_desc_t(builtins.object) | list of weak references to the object (if defined) | | cb - | action_desc_t_cb_get(self) -> int + | cb | | flags - | action_desc_t_flags_get(self) -> int + | flags | | icon - | action_desc_t_icon_get(self) -> int + | icon | | label - | action_desc_t_label_get(self) -> char const * + | label | | name - | action_desc_t_name_get(self) -> char const * + | name | | owner - | action_desc_t_owner_get(self) -> plugin_t const * + | owner | | shortcut - | action_desc_t_shortcut_get(self) -> char const * + | shortcut | | thisown | The membership flag | | tooltip - | action_desc_t_tooltip_get(self) -> char const * + | tooltip Help on class action_handler_t in module ida_kernwin: @@ -45478,8 +58954,22 @@ class action_handler_t(builtins.object) | Initialize self. See help(type(self)) for accurate signature. | | 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. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45494,19 +58984,15 @@ Help on function activate_widget in module ida_kernwin: activate_widget(*args) -> 'void' activate_widget(widget, take_focus) + Activate widget (only gui version) (ui_activate_widget). - - Activate widget (only gui version) ( 'ui_activate_widget' ). - - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget Help on function add_hotkey in module ida_kernwin: add_hotkey(*args) -> 'PyObject *' - add_hotkey(hotkey, pyfunc) -> PyObject * - - + add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -45519,33 +59005,27 @@ Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name @return: IDC hotkey error codes Help on function add_spaces in module ida_kernwin: add_spaces(*args) -> 'PyObject *' - add_spaces(s, len) -> 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'. - - 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'. - - @param len: the desired length of the string (C++: ssize_t) + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string @return: pointer to the end of input string Help on function addon_count in module ida_kernwin: addon_count(*args) -> 'int' addon_count() -> int - - Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -45573,119 +59053,147 @@ class addon_info_t(builtins.object) | list of weak references to the object (if defined) | | cb - | addon_info_t_cb_get(self) -> size_t + | cb | | custom_data - | addon_info_t_custom_data_get(self) -> void const * + | custom_data | | custom_size - | addon_info_t_custom_size_get(self) -> size_t + | custom_size | | freeform - | addon_info_t_freeform_get(self) -> char const * + | freeform | | id - | addon_info_t_id_get(self) -> char const * + | id | | name - | addon_info_t_name_get(self) -> char const * + | name | | producer - | addon_info_t_producer_get(self) -> char const * + | producer | | thisown | The membership flag | | url - | addon_info_t_url_get(self) -> char const * + | url | | version - | addon_info_t_version_get(self) -> char const * + | version Help on function analyzer_options in module ida_kernwin: analyzer_options(*args) -> 'void' analyzer_options() - - - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) Help on function ask_addr in module ida_kernwin: 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 Help on function ask_buttons in module ida_kernwin: 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 - - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param 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) Help on function ask_file in module ida_kernwin: ask_file(*args) -> 'char *' ask_file(for_saving, defval, format) -> char * + + @param for_saving: bool + @param defval: char const * + @param format: char const * Help on function ask_for_feedback in module ida_kernwin: 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}. + @param format: (C++: const char *) the reason why the input file is bad + +Help on function ask_form in module ida_kernwin: + +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) - Show a message box asking to send the input file tosupport@hex- - rays.com. - - @param format: the reason why the input file is bad (C++: const char - *) + @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 Help on function ask_ident in module ida_kernwin: 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. + + @return: false if the user cancelled the dialog, otherwise returns true. Help on function ask_long in module ida_kernwin: 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. Help on function ask_seg in module ida_kernwin: 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 Help on function ask_str in module ida_kernwin: ask_str(*args) -> 'PyObject *' - ask_str(defval, hist, prompt) -> PyObject * - - + ask_str(defval, hist, prompt) -> str or None Asks for a long text - @param hist: history id @param defval: The default value + @param hist: history id @param prompt: The prompt value @return: None or the entered string Help on function ask_text in module ida_kernwin: ask_text(*args) -> 'PyObject *' - ask_text(max_size, defval, prompt) -> PyObject * - - + ask_text(max_size, defval, prompt) -> str Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -45697,227 +59205,219 @@ Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' ask_yn(deflt, format) -> int - - Display a dialog box and get choice from "Yes", "No", "Cancel". - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function attach_action_to_menu in module ida_kernwin: attach_action_to_menu(*args) -> 'bool' - attach_action_to_menu(menupath, name, flags) -> 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). - - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). - - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) + @param 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 + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position @return: success Help on function attach_action_to_popup in module ida_kernwin: attach_action_to_popup(*args) -> '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'. - - 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'. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) + @param widget: (C++: TWidget *) target widget + @param 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'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) @return: success Help on function attach_action_to_toolbar in module ida_kernwin: attach_action_to_toolbar(*args) -> 'bool' attach_action_to_toolbar(toolbar_name, name) -> bool + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). - - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name @return: success Help on function attach_dynamic_action_to_popup in module ida_kernwin: attach_dynamic_action_to_popup(*args) -> 'bool' - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=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) - - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) + @param unused: deprecated; should be None + @param popup_handle: target popup + @param desc: action description of type action_desc_t + @param popuppath: can be None + @param flags: a combination of SETMENU_ constants @return: success Help on function banner in module ida_kernwin: banner(*args) -> 'bool' banner(wait) -> bool + Show a banner dialog box (ui_banner). - - Show a banner dialog box ( 'ui_banner' ). - - @param wait: time to wait before closing (C++: int) + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed Help on function beep in module ida_kernwin: beep(*args) -> 'void' beep(beep_type=beep_default) + Issue a beeping sound (ui_beep). - - Issue a beeping sound ( 'ui_beep' ). - - @param beep_type: beep_t (C++: beep_t) + @param beep_type: (C++: beep_t) Help on function call_nav_colorizer in module ida_kernwin: call_nav_colorizer(*args) -> 'uint32' call_nav_colorizer(dict, ea, nbytes) -> uint32 - - To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t Help on function cancel_exec_request in module ida_kernwin: cancel_exec_request(*args) -> 'bool' cancel_exec_request(req_id) -> bool + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. + +Help on function cancel_thread_exec_requests in module ida_kernwin: + +cancel_thread_exec_requests(*args) -> 'int' + cancel_thread_exec_requests(tid) -> int + Try to cancel asynchronous exec requests created by the specified thread. - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - - @param req_id: request id (C++: int) + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) -> 'void' choose_activate(_self) + + @param self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) -> 'PyObject *' choose_choose(_self) -> PyObject * + + @param self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) -> 'void' choose_close(_self) + + @param self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) -> 'PyObject *' choose_create_embedded_chobj(_self) -> PyObject * + + @param self: PyObject * Help on function choose_entry in module ida_kernwin: choose_entry(*args) -> 'ea_t' choose_entry(title) -> ea_t + Choose an entry point (ui_choose, chtype_entry). - - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected Help on function choose_enum in module ida_kernwin: choose_enum(*args) -> 'enum_t' choose_enum(title, default_id) -> enum_t + Choose an enum (ui_choose, chtype_enum). - - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected Help on function choose_enum_by_value in module ida_kernwin: choose_enum_by_value(*args) -> 'uchar *' choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + Choose an enum, restricted by value & size (ui_choose, + chtype_enum_by_value_and_size). If the given value cannot be found initially, + this function will ask if the user would like to import a standard enum. - - Choose 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. - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uval_t) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found Help on function choose_find in module ida_kernwin: choose_find(*args) -> 'PyObject *' - choose_find(title) -> PyObject * + choose_find(title) -> MyChoose or None + + @param title: char const * Help on function choose_func in module ida_kernwin: choose_func(*args) -> 'func_t *' choose_func(title, default_ea) -> func_t * + Choose a function (ui_choose, chtype_func). - - Choose a function ( 'ui_choose' , 'chtype_func' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected Help on function choose_get_widget in module ida_kernwin: choose_get_widget(*args) -> 'TWidget *' choose_get_widget(_self) -> TWidget * + + @param self: PyObject * Help on function choose_idasgn in module ida_kernwin: choose_idasgn(*args) -> 'PyObject *' choose_idasgn() -> PyObject * - - Opens the signature chooser @return: None or the selected signature name @@ -45926,85 +59426,255 @@ Help on function choose_name in module ida_kernwin: choose_name(*args) -> 'ea_t' choose_name(title) -> ea_t + Choose a name (ui_choose, chtype_name). - - Choose a name ( 'ui_choose' , 'chtype_name' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected Help on function choose_refresh in module ida_kernwin: choose_refresh(*args) -> 'void' choose_refresh(_self) + + @param self: PyObject * Help on function choose_segm in module ida_kernwin: choose_segm(*args) -> 'segment_t *' choose_segm(title, default_ea) -> segment_t * + Choose a segment (ui_choose, chtype_segm). - - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected Help on function choose_srcp in module ida_kernwin: choose_srcp(*args) -> 'sreg_range_t *' choose_srcp(title) -> sreg_range_t * + Choose a segment register change point (ui_choose, chtype_srcp). - - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected Help on function choose_stkvar_xref in module ida_kernwin: choose_stkvar_xref(*args) -> 'ea_t' choose_stkvar_xref(pfn, mptr) -> ea_t + Choose an xref to a stack variable (ui_choose, chtype_name). - - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable @return: ea of the selected xref, BADADDR if none selected Help on function choose_struc in module ida_kernwin: choose_struc(*args) -> 'struc_t *' choose_struc(title) -> struc_t * + Choose a structure (ui_choose, chtype_segm). - - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected Help on function choose_til in module ida_kernwin: choose_til(*args) -> 'qstring *' choose_til() -> str + Choose a type library (ui_choose, chtype_idatil). - - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). + @retval true: 'buf' was filled with the name of the selected til + @retval false: otherwise Help on function choose_xref in module ida_kernwin: choose_xref(*args) -> 'ea_t' choose_xref(to) -> ea_t + Choose an xref to an address (ui_choose, chtype_xref). - - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - - @param to: referenced address (C++: ea_t) + @param to: (C++: ea_t) referenced address @return: ea of selected xref, BADADDR if none selected +Help on class chooser_base_t in module ida_kernwin: + +class chooser_base_t(builtins.object) + | Proxy of C++ chooser_base_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | ask_item_attrs(self, *args) -> 'bool' + | ask_item_attrs(self) -> bool + | should chooser generate ui_get_chooser_item_attrs events? + | + | can_del(self, *args) -> 'bool' + | can_del(self) -> bool + | + | can_edit(self, *args) -> 'bool' + | can_edit(self) -> bool + | + | can_filter(self, *args) -> 'bool' + | can_filter(self) -> bool + | + | can_ins(self, *args) -> 'bool' + | can_ins(self) -> bool + | is an operation allowed? + | + | can_refresh(self, *args) -> 'bool' + | can_refresh(self) -> bool + | + | can_sort(self, *args) -> 'bool' + | can_sort(self) -> bool + | + | get_builtin_number(self, *args) -> 'uint' + | get_builtin_number(self) -> uint + | get number of the built-in chooser + | + | get_count(self, *args) -> 'size_t' + | get_count(self) -> size_t + | get the number of elements in the chooser + | + | get_ea(self, *args) -> '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()) + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address + | + | get_quick_filter_initial_mode(self, *args) -> 'int' + | get_quick_filter_initial_mode(self) -> int + | + | get_row(self, *args) -> 'PyObject *' + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) + | get a description of an element. + | + | @param n: (C++: size_t) element number (0..get_count()-1) + | + | has_diff_capability(self, *args) -> 'bool' + | has_diff_capability(self) -> bool + | + | has_dirtree(self, *args) -> 'bool' + | has_dirtree(self) -> bool + | + | is_dirtree_persisted(self, *args) -> 'bool' + | is_dirtree_persisted(self) -> bool + | + | is_force_default(self, *args) -> 'bool' + | is_force_default(self) -> bool + | should selection of the already opened non-modal chooser be changed? + | + | is_lazy_loaded(self, *args) -> 'bool' + | is_lazy_loaded(self) -> bool + | + | is_modal(self, *args) -> 'bool' + | is_modal(self) -> bool + | is choose modal? + | + | is_multi(self, *args) -> 'bool' + | is_multi(self) -> bool + | is multi-selection allowed? + | + | is_noidb(self, *args) -> 'bool' + | is_noidb(self) -> bool + | can use the chooser before opening the database? + | + | is_quick_filter_visible_initially(self, *args) -> 'bool' + | is_quick_filter_visible_initially(self) -> bool + | + | is_same(self, *args) -> 'bool' + | is_same(self, other) -> bool + | do the current and the given objects hold the same data? + | + | @param other: (C++: const chooser_base_t *) chooser_base_t const * + | + | is_status_bar_hidden(self, *args) -> 'bool' + | is_status_bar_hidden(self) -> bool + | + | popup_allowed(self, *args) -> 'bool' + | popup_allowed(self, stdact_idx) -> bool + | is a standard action allowed? + | + | @param stdact_idx: (C++: int) + | + | should_rename_trigger_edit(self, *args) -> 'bool' + | should_rename_trigger_edit(self) -> bool + | + | should_restore_geometry(self, *args) -> 'bool' + | should_restore_geometry(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | columns + | columns + | + | deflt_col + | deflt_col + | + | header + | header + | + | height + | height + | + | icon + | icon + | + | popup_names + | popup_names + | + | thisown + | The membership flag + | + | title + | title + | + | width + | width + | + | widths + | widths + | + | x0 + | x0 + | + | x1 + | x1 + | + | y0 + | y0 + | + | y1 + | y1 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | NSTDPOPUPS = 4 + | + | POPUP_DEL = 1 + | + | POPUP_EDIT = 2 + | + | POPUP_INS = 0 + | + | POPUP_REFRESH = 3 + Help on class chooser_item_attrs_t in module ida_kernwin: class chooser_item_attrs_t(builtins.object) @@ -46033,18 +59703,74 @@ class chooser_item_attrs_t(builtins.object) | list of weak references to the object (if defined) | | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t + | color | | flags - | chooser_item_attrs_t_flags_get(self) -> int + | flags | | thisown | The membership flag +Help on class chooser_stdact_desc_t in module ida_kernwin: + +class chooser_stdact_desc_t(builtins.object) + | Proxy of C++ chooser_stdact_desc_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _label=None, _tooltip=None, _icon=-1) -> chooser_stdact_desc_t + | + | @param _label: char const * + | @param _tooltip: char const * + | @param _icon: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chooser_stdact_desc_t(...) + | delete_chooser_stdact_desc_t(self) + | + | ucb(self, *args) -> '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. + | + | @param arg0: action_update_ctx_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | icon + | icon + | + | label + | label + | + | thisown + | The membership flag + | + | tooltip + | tooltip + | + | version + | version + Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) -> 'void' clear_refresh_request(mask) + + @param mask: uint64 Help on class cli_t in module ida_kernwin: @@ -46060,6 +59786,42 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | | Methods defined here: | + | OnCompleteLine(self, prefix, n, line, prefix_start) + | The user pressed Tab. Find a completion number N for prefix PREFIX + | + | This callback is optional. + | + | @param prefix: Line prefix at prefix_start (string) + | @param n: completion number (int) + | @param line: the current line (string) + | @param 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. + | + | @param 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. + | + | @param line: current input line + | @param x: current x coordinate of the cursor + | @param sellen: current selection length (usually 0) + | @param vkey: virtual key code. if the key has been handled, it should be returned as zero + | @param 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) + | | __del__(self) | | __init__(self) @@ -46071,9 +59833,9 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param flags: Feature bits. No bits are defined yet, must be 0 | @param sname: Short name (displayed on the button) | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line + | @param hint: Hint for the input line | - | @return Boolean: True-Success, False-Failed + | @return: Boolean: True-Success, False-Failed | | unregister(self) | Unregisters the CLI (if it was registered) @@ -46096,128 +59858,101 @@ Help on function close_chooser in module ida_kernwin: close_chooser(*args) -> 'bool' close_chooser(title) -> bool + Close a non-modal chooser (ui_close_chooser). - - Close a non-modal chooser ( 'ui_close_chooser' ). - - @param title: window title of chooser to close (C++: const char *) + @param title: (C++: const char *) window title of chooser to close @return: success Help on function close_widget in module ida_kernwin: close_widget(*args) -> 'void' close_widget(widget, options) + Close widget (ui_close_widget, only gui version). - - Close widget ( 'ui_close_widget' , only gui version). - - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags Help on function clr_cancelled in module ida_kernwin: clr_cancelled(*args) -> 'void' clr_cancelled() - - - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) + Clear "Cancelled" flag (ui_clr_cancelled) Help on function create_code_viewer in module ida_kernwin: create_code_viewer(*args) -> '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. - - 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. - - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer Help on function create_empty_widget in module ida_kernwin: create_empty_widget(*args) -> 'TWidget *' create_empty_widget(title, icon=-1) -> TWidget * - - Create an empty widget, serving as a container for custom user widgets - @param title (C++: const char *) - @param icon (C++: int) + @param title: (C++: const char *) char const * + @param icon: (C++: int) Help on function create_menu in module ida_kernwin: create_menu(*args) -> '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-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - + 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. - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted @return: success Help on function create_toolbar in module ida_kernwin: create_toolbar(*args) -> 'bool' create_toolbar(name, label, before=None, flags=0) -> bool - - Create a toolbar with the given name, label and optional position - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position @return: success Help on function custom_viewer_jump in module ida_kernwin: custom_viewer_jump(*args) -> 'bool' custom_viewer_jump(v, loc, flags=0) -> bool + Append 'loc' to the viewer's history, and cause the viewer to display it. - - Append 'loc' to the viewer's history, and cause the viewer to display - it. - - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values @return: success Help on function del_hotkey in module ida_kernwin: del_hotkey(*args) -> 'bool' del_hotkey(pyctx) -> bool - - Deletes a previously registered function hotkey @param ctx: Hotkey context previously returned by add_hotkey() @@ -46229,72 +59964,76 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) + @param hotkey: char const * Help on function delete_menu in module ida_kernwin: delete_menu(*args) -> 'bool' delete_menu(name) -> bool - - Delete an existing menu - @param name: name of menu (C++: const char *) + @param name: (C++: const char *) name of menu @return: success Help on function delete_toolbar in module ida_kernwin: delete_toolbar(*args) -> 'bool' delete_toolbar(name) -> bool - - Delete an existing toolbar - @param name: name of toolbar (C++: const char *) + @param name: (C++: const char *) name of toolbar @return: success Help on function detach_action_from_menu in module ida_kernwin: detach_action_from_menu(*args) -> 'bool' detach_action_from_menu(menupath, name) -> bool + Detach an action from the menu (ui_detach_action_from_menu). - - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name @return: success Help on function detach_action_from_popup in module ida_kernwin: detach_action_from_popup(*args) -> '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. - - 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. - - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name Help on function detach_action_from_toolbar in module ida_kernwin: detach_action_from_toolbar(*args) -> 'bool' detach_action_from_toolbar(toolbar_name, name) -> bool + Detach an action from the toolbar (ui_detach_action_from_toolbar). - - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name @return: success +Help on class disabled_script_timeout_t in module ida_kernwin: + +class disabled_script_timeout_t(builtins.object) + | Methods defined here: + | + | __enter__(self) + | + | __exit__(self, type, value, tb) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + Help on class disasm_line_t in module ida_kernwin: class disasm_line_t(builtins.object) @@ -46305,6 +60044,8 @@ class disasm_line_t(builtins.object) | __init__(self, *args) | __init__(self) -> disasm_line_t | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -46321,19 +60062,19 @@ class disasm_line_t(builtins.object) | list of weak references to the object (if defined) | | at - | disasm_line_t_at_get(self) -> place_t + | at | | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | disasm_line_t_is_default_get(self) -> bool + | is_default | | line - | disasm_line_t_line_get(self) -> qstring * + | line | | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -46347,10 +60088,14 @@ class disasm_text_t(builtins.object) | | __getitem__(self, *args) -> 'disasm_line_t const &' | __getitem__(self, i) -> disasm_line_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46362,19 +60107,23 @@ class disasm_text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: disasm_line_t const & | | __swig_destroy__ = delete_disasm_text_t(...) | delete_disasm_text_t(self) | | at(self, *args) -> 'disasm_line_t const &' | at(self, _idx) -> disasm_line_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46387,11 +60136,16 @@ class disasm_text_t(builtins.object) | | end(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | end(self) -> disasm_line_t - | end(self) -> disasm_line_t | | erase(self, *args) -> 'qvector< disasm_line_t >::iterator' | erase(self, it) -> disasm_line_t + | + | @param it: qvector< disasm_line_t >::iterator + | | erase(self, first, last) -> disasm_line_t + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator | | extract(self, *args) -> 'disasm_line_t *' | extract(self) -> disasm_line_t @@ -46401,18 +60155,29 @@ class disasm_text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=disasm_line_t()) + | + | @param x: disasm_line_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: disasm_line_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' | insert(self, it, x) -> disasm_line_t + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'disasm_line_t &' | push_back(self, x) + | + | @param x: disasm_line_t const & + | | push_back(self) -> disasm_line_t | | qclear(self, *args) -> 'void' @@ -46420,16 +60185,26 @@ class disasm_text_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: disasm_line_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< disasm_line_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46450,9 +60225,7 @@ Help on function display_copyright_warning in module ida_kernwin: display_copyright_warning(*args) -> 'bool' display_copyright_warning() -> bool - - - Display copyright warning ( 'ui_copywarn' ). + Display copyright warning (ui_copywarn). @return: yes/no @@ -46460,59 +60233,50 @@ Help on function display_widget in module ida_kernwin: display_widget(*args) -> 'void' display_widget(widget, options, dest_ctrl=None) - - Display a widget, dock it if not done before - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param 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 Help on function ea2str in module ida_kernwin: ea2str(*args) -> 'size_t' ea2str(ea) -> str - - Convert linear address to UTF-8 string. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function ea_viewer_history_push_and_jump in module ida_kernwin: ea_viewer_history_push_and_jump(*args) -> '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. - - 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. - - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address Help on function enable_chooser_item_attrs in module ida_kernwin: enable_chooser_item_attrs(*args) -> '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. - - Enable item-specific attributes for chooser items ( - 'ui_enable_chooser_item_attrs' ). For example: color list items - differently depending on a criterium.If enabled, the chooser will - generate ui_get_chooser_item_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - - @param chooser_caption (C++: const char *) - @param enable (C++: bool) + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) @return: success Help on class enumplace_t in module ida_kernwin: @@ -46539,97 +60303,207 @@ class enumplace_t(place_t) | Data descriptors defined here: | | bmask - | enumplace_t_bmask_get(self) -> bmask_t + | bmask | | idx - | enumplace_t_idx_get(self) -> size_t + | idx | | serial - | enumplace_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | value - | enumplace_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -46641,14 +60515,12 @@ class enumplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function error in module ida_kernwin: error(*args) -> 'void' error(format) - - Display a fatal message in a message box and quit IDA @param format: message to print @@ -46657,13 +60529,11 @@ Help on function execute_sync in module ida_kernwin: execute_sync(*args) -> 'int' execute_sync(py_callable, reqf) -> int - - Executes a function in the context of the main thread. If the current thread not the main thread, then the call is queued and executed afterwards. - @param callable: A python callable object, must return an integer value + @param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable @@ -46671,355 +60541,358 @@ Help on function execute_ui_requests in module ida_kernwin: execute_ui_requests(*args) -> 'bool' execute_ui_requests(py_list) -> bool - - Inserts a list of callables into the UI message processing queue. When the UI is ready it will call one callable. A callable can request to be called more than once if it returns True. @param callable_list: A list of python callable objects. @note: A callable should return True if it wants to be called more than once. - @return: Boolean. False if the list contains a non callabale item + @return: Boolean. False if the list contains a non callable item Help on function find_widget in module ida_kernwin: find_widget(*args) -> '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! - - Find widget with the specified caption (only gui version) ( - 'ui_find_widget' ). NB: this callback works only with the tabbed - widgets! - - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + @param 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 Help on function formchgcbfa_close in module ida_kernwin: formchgcbfa_close(*args) -> 'void' formchgcbfa_close(p_fa, close_normally) + + @param p_fa: size_t + @param close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) -> 'bool' formchgcbfa_enable_field(p_fa, fid, enable) -> bool + + @param p_fa: size_t + @param fid: int + @param enable: bool Help on function formchgcbfa_get_field_value in module ida_kernwin: formchgcbfa_get_field_value(*args) -> 'PyObject *' formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) -> 'int' formchgcbfa_get_focused_field(p_fa) -> int + + @param p_fa: size_t Help on function formchgcbfa_move_field in module ida_kernwin: formchgcbfa_move_field(*args) -> 'bool' formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) -> 'void' formchgcbfa_refresh_field(p_fa, fid) + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_set_field_value in module ida_kernwin: formchgcbfa_set_field_value(*args) -> 'bool' formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) -> 'bool' formchgcbfa_set_focused_field(p_fa, fid) -> bool + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) -> 'bool' formchgcbfa_show_field(p_fa, fid, show) -> bool + + @param p_fa: size_t + @param fid: int + @param show: bool Help on function free_custom_icon in module ida_kernwin: free_custom_icon(*args) -> 'void' free_custom_icon(icon_id) - - Frees an icon loaded with load_custom_icon() + + @param icon_id: int Help on function gen_disasm_text in module ida_kernwin: gen_disasm_text(*args) -> 'void' gen_disasm_text(text, ea1, ea2, truncate_lines) - - Generate disassembly text for a range. - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) Help on function get_action_checkable in module ida_kernwin: get_action_checkable(*args) -> 'bool *' get_action_checkable(name) -> bool + Get an action's checkability (ui_get_action_attr). - - Get an action's checkability ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_checked in module ida_kernwin: get_action_checked(*args) -> 'bool *' get_action_checked(name) -> bool + Get an action's checked state (ui_get_action_attr). - - Get an action's checked state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_icon in module ida_kernwin: get_action_icon(*args) -> 'int *' get_action_icon(name) -> bool + Get an action's icon (ui_get_action_attr). - - Get an action's icon ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_label in module ida_kernwin: get_action_label(*args) -> 'qstring *' get_action_label(name) -> str + Get an action's label (ui_get_action_attr). - - Get an action's label ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_shortcut in module ida_kernwin: get_action_shortcut(*args) -> 'qstring *' get_action_shortcut(name) -> str + Get an action's shortcut (ui_get_action_attr). - - Get an action's shortcut ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_state in module ida_kernwin: get_action_state(*args) -> 'action_state_t *' get_action_state(name) -> bool + Get an action's state (ui_get_action_attr). - - Get an action's state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_tooltip in module ida_kernwin: get_action_tooltip(*args) -> 'qstring *' get_action_tooltip(name) -> str + Get an action's tooltip (ui_get_action_attr). - - Get an action's tooltip ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_visibility in module ida_kernwin: get_action_visibility(*args) -> 'bool *' get_action_visibility(name) -> bool + Get an action's visibility (ui_get_action_attr). - - Get an action's visibility ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_active_modal_widget in module ida_kernwin: get_active_modal_widget(*args) -> '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. - - Get the current, active modal TWidget instance. Note that in this - context, the "wait dialog" is not considered: this function will - return NULL even if it is currently shown. - - @return: TWidget * the active modal widget, or NULL + @return: TWidget * the active modal widget, or nullptr Help on function get_addon_info in module ida_kernwin: get_addon_info(*args) -> '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 - - 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 - - @param id (C++: const char *) - @param info (C++: addon_info_t *) + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) @return: false if not found Help on function get_addon_info_idx in module ida_kernwin: get_addon_info_idx(*args) -> '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 - - 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 - - @param index (C++: int) - @param info (C++: addon_info_t *) + @param index: (C++: int) + @param info: (C++: addon_info_t *) @return: false if index is out of range Help on function get_chooser_data in module ida_kernwin: get_chooser_data(*args) -> 'PyObject *' - get_chooser_data(chooser_caption, n) -> 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. - - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. - - @param chooser_caption (C++: const char *) - @param n (C++: int) + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) Help on function get_chooser_obj in module ida_kernwin: get_chooser_obj(*args) -> '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. - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This is object is chooser-specific. + @note: This is object is chooser-specific. - @param chooser_caption (C++: const char *) + @param chooser_caption: (C++: const char *) char const * @return: the object that was used to create the chooser Help on function get_curline in module ida_kernwin: get_curline(*args) -> 'char const *' get_curline() -> char const * + Get current line from the disassemble window (ui_get_curline). - - 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) + @return: cptr current line with the color codes (use tag_remove() to remove the + color codes) Help on function get_current_viewer in module ida_kernwin: get_current_viewer(*args) -> 'TWidget *' get_current_viewer() -> TWidget * - - - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) Help on function get_current_widget in module ida_kernwin: get_current_widget(*args) -> 'TWidget *' get_current_widget() -> TWidget * - - - Get a pointer to the current widget ( 'ui_get_current_widget' ). + Get a pointer to the current widget (ui_get_current_widget). Help on function get_cursor in module ida_kernwin: get_cursor(*args) -> 'int *, int *' get_cursor() -> bool + Get the cursor position on the screen (ui_get_cursor). + @note: coordinates are 0-based - - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based + @retval true: pointers are filled + @retval false: no disassembly window open Help on function get_custom_viewer_curline in module ida_kernwin: get_custom_viewer_curline(*args) -> '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 - - Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). - The returned line contains color codes - - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) @return: pointer to contents of current line Help on function get_custom_viewer_location in module ida_kernwin: 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). - - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - - - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) Help on function get_custom_viewer_place in module ida_kernwin: get_custom_viewer_place(*args) -> '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() - Get current place in a custom viewer ( 'ui_get_curplace' ).See also - the more complete 'get_custom_viewer_location()' + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) -> 'int' + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param 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 Help on function get_ea_viewer_history_info in module ida_kernwin: get_ea_viewer_history_info(*args) -> 'bool' get_ea_viewer_history_info(nback, nfwd, v) -> bool + Get information about what's in the history (ui_ea_viewer_history_info). - - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise Help on function get_hexdump_ea in module ida_kernwin: get_hexdump_ea(*args) -> 'ea_t' get_hexdump_ea(hexdump_num) -> ea_t - - Get the current address in a hex view. - @param hexdump_num: number of hexview window (C++: int) + @param hexdump_num: (C++: int) number of hexview window Help on function get_highlight in module ida_kernwin: get_highlight(*args) -> 'PyObject *' - get_highlight(v) -> PyObject * - - + get_highlight(v, in_flags=0) -> (str, int) or None Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param 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. @@ -47027,39 +60900,29 @@ Help on function get_kernel_version in module ida_kernwin: get_kernel_version(*args) -> 'size_t' get_kernel_version() -> str - - Get IDA kernel version (in a string like "5.1"). Help on function get_key_code in module ida_kernwin: get_key_code(*args) -> 'ushort' get_key_code(keyname) -> ushort + Get keyboard key code by its name (ui_get_key_code) - - Get keyboard key code by its name ( 'ui_get_key_code' ) - - - @param keyname (C++: const char *) + @param keyname: (C++: const char *) char const * Help on function get_navband_ea in module ida_kernwin: get_navband_ea(*args) -> 'ea_t' get_navband_ea(pixel) -> ea_t - - Translate the pixel position on the navigation band, into an address. - - @param pixel (C++: int) + @param pixel: (C++: int) Help on function get_navband_pixel in module ida_kernwin: get_navband_pixel(*args) -> 'bool *' get_navband_pixel(ea) -> int - - - Maps an address, onto a pixel coordinate within the navband + Maps an address, onto a pixel coordinate within the navigation band @param ea: The address to map @return: a list [pixel, is_vertical] @@ -47068,39 +60931,33 @@ Help on function get_opnum in module ida_kernwin: get_opnum(*args) -> 'int' get_opnum() -> int - - - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) + Get current operand number, -1 means no operand (ui_get_opnum) Help on function get_output_curline in module ida_kernwin: get_output_curline(*args) -> 'qstring *' get_output_curline(mouse) -> str + Get current line of output window (ui_get_output_curline). - - Get current line of output window ( 'ui_get_output_curline' ). - - @param mouse: current for mouse pointer? (C++: bool) + @param mouse: (C++: bool) current for mouse pointer? @return: false if output contains no text Help on function get_output_cursor in module ida_kernwin: get_output_cursor(*args) -> '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 - - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible + @retval false: the output window has been destroyed. + @retval true: pointers are filled Help on function get_output_selected_text in module ida_kernwin: get_output_selected_text(*args) -> 'qstring *' get_output_selected_text() -> str - - - Returns selected text from output window ( - 'ui_get_output_selected_text' ). + Returns selected text from output window (ui_get_output_selected_text). @return: true if there is a selection @@ -47108,147 +60965,135 @@ Help on function get_place_class in module ida_kernwin: get_place_class(*args) -> '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(). - - Get information about a previously-registered 'place_t' class. See - also 'register_place_class()' . - - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found Help on function get_place_class_id in module ida_kernwin: get_place_class_id(*args) -> 'int' get_place_class_id(name) -> int + Get the place class ID for the place that has been registered as 'name'. - - Get the place class ID for the place that has been registered as - 'name'. - - @param name: the class name (C++: const char *) + @param name: (C++: const char *) the class name @return: the place class ID, or -1 if not found Help on function get_place_class_template in module ida_kernwin: get_place_class_template(*args) -> 'place_t const *' get_place_class_template(id) -> place_t + See get_place_class() - - See 'get_place_class()' - - - @param id (C++: int) + @param id: (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) -> 'PyObject *' - get_registered_actions() -> PyObject * - - + get_registered_actions() -> [str, ...] Get a list of all currently-registered actions Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) + +Help on function get_synced_group in module ida_kernwin: + +get_synced_group(*args) -> 'synced_group_t const *' + get_synced_group(w) -> synced_group_t + Get the group of widgets/registers this view is synchronized with - - Get the address at the screen cursor ( 'ui_screenea' ) + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr Help on function get_tab_size in module ida_kernwin: get_tab_size(*args) -> 'int' get_tab_size(path) -> int + Get the size of a tab in spaces (ui_get_tab_size). + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) -> '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) - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event Help on function get_user_strlist_options in module ida_kernwin: get_user_strlist_options(*args) -> 'void' get_user_strlist_options(out) + + @param out: strwinsetup_t * Help on function get_view_renderer_type in module ida_kernwin: get_view_renderer_type(*args) -> '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) - - Get the type of renderer currently in use in the given view ( - 'ui_get_renderer_type' ) - - - @param v (C++: TWidget *) + @param v: (C++: TWidget *) Help on function get_viewer_place_type in module ida_kernwin: get_viewer_place_type(*args) -> '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). - - Get the type of 'place_t' instances a viewer uses & creates ( - 'ui_get_viewer_place_type' ). - - - @param viewer (C++: TWidget *) + @param viewer: (C++: TWidget *) Help on function get_viewer_user_data in module ida_kernwin: get_viewer_user_data(*args) -> 'void *' get_viewer_user_data(viewer) -> void * + Get the user data from a custom viewer (ui_get_viewer_user_data) - - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - - - @param viewer (C++: TWidget *) + @param viewer: (C++: TWidget *) Help on function get_widget_title in module ida_kernwin: get_widget_title(*args) -> 'qstring *' get_widget_title(widget) -> str + Get the TWidget's title (ui_get_widget_title). - - Get the TWidget's title ( 'ui_get_widget_title' ). - - - @param widget (C++: TWidget *) + @param widget: (C++: TWidget *) Help on function get_widget_type in module ida_kernwin: get_widget_type(*args) -> 'twidget_type_t' get_widget_type(widget) -> twidget_type_t + Get the type of the TWidget * (ui_get_widget_type). - - Get the type of the TWidget * ( 'ui_get_widget_type' ). - - - @param widget (C++: TWidget *) + @param widget: (C++: TWidget *) Help on function get_window_id in module ida_kernwin: get_window_id(*args) -> 'void *' get_window_id(name=None) -> void * - - Get the system-specific window ID (GUI version only) - @param name (C++: const char *) + @param name: (C++: const char *) name of the window (nullptr means the main IDA window) @return: the low-level window ID Help on function hide_wait_box in module ida_kernwin: hide_wait_box(*args) -> 'void' hide_wait_box() - - Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -47275,7 +61120,7 @@ class idaplace_t(place_t) | Data descriptors defined here: | | ea - | idaplace_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -47284,79 +61129,189 @@ class idaplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -47368,84 +61323,244 @@ class idaplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function info in module ida_kernwin: info(*args) -> 'void' info(format) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_keyboard_data_t(...) + | delete_input_event_keyboard_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_mouse_data_t(...) + | delete_input_event_mouse_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_shortcut_data_t(...) + | delete_input_event_shortcut_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(builtins.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_t(...) + | delete_input_event_t(self) + | + | _source_as_size(self, *args) -> 'size_t' + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) -> 'size_t' + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag Help on function install_command_interpreter in module ida_kernwin: install_command_interpreter(*args) -> 'int' install_command_interpreter(py_obj) -> int + Install command line interpreter (ui_install_cli) - - Install command line interpreter ( 'ui_install_cli' ) + @param py_obj: PyObject * Help on function internal_register_place_class in module ida_kernwin: internal_register_place_class(*args) -> 'int' internal_register_place_class(tmplate, flags, owner, sdk_version) -> int + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int Help on function is_action_enabled in module ida_kernwin: is_action_enabled(*args) -> 'bool' is_action_enabled(s) -> bool - - Check if the given action state is one of AST_ENABLE*. - - @param s (C++: action_state_t) + @param s: (C++: action_state_t) enum action_state_t Help on function is_chooser_widget in module ida_kernwin: is_chooser_widget(*args) -> 'bool' is_chooser_widget(t) -> bool - - Does the given widget type specify a chooser widget? - - @param t (C++: twidget_type_t) + @param t: (C++: twidget_type_t) Help on function is_idaq in module ida_kernwin: is_idaq(*args) -> 'bool' is_idaq() -> bool - - Returns True or False depending if IDAPython is hosted by IDAQ +Help on function is_idaview in module ida_kernwin: + +is_idaview(*args) -> 'bool' + is_idaview(v) -> bool + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) + Help on function is_msg_inited in module ida_kernwin: is_msg_inited(*args) -> 'bool' is_msg_inited() -> bool - - Can we use msg() functions? Help on function is_place_class_ea_capable in module ida_kernwin: is_place_class_ea_capable(*args) -> 'bool' is_place_class_ea_capable(id) -> bool + See get_place_class() - - See 'get_place_class()' - - - @param id (C++: int) + @param id: (C++: int) Help on function is_refresh_requested in module ida_kernwin: is_refresh_requested(*args) -> 'bool' is_refresh_requested(mask) -> bool - - Get a refresh request state - @param mask: Window refresh flags (C++: uint64) + @param mask: (C++: uint64) Window refresh flags @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -47461,7 +61576,7 @@ class jobj_wrapper_t(builtins.object) | __repr__ = _swig_repr(self) | | get_dict(self, *args) -> 'PyObject *' - | get_dict(self) -> PyObject * + | get_dict(self) -> dict | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47479,15 +61594,474 @@ Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success jumpto(custom_viewer, place, x, y) -> bool + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int + +Help on function l_compare2 in module ida_kernwin: + +l_compare2(*args) -> 'int' + l_compare2(t1, t2, ud) -> int - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * + +Help on class line_rendering_output_entries_refs_t in module ida_kernwin: + +class line_rendering_output_entries_refs_t(builtins.object) + | Proxy of C++ qvector< line_rendering_output_entry_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __getitem__(self, *args) -> 'line_rendering_output_entry_t *const &' + | __getitem__(self, i) -> line_rendering_output_entry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & + | + | __swig_destroy__ = delete_line_rendering_output_entries_refs_t(...) + | delete_line_rendering_output_entries_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) -> 'void' + | _internal_push_back(self, e) + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | at(self, *args) -> 'line_rendering_output_entry_t *const &' + | at(self, _idx) -> line_rendering_output_entry_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: line_rendering_output_entry_t *const & + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | + | @param x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, e) + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< line_rendering_output_entry_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class line_rendering_output_entry_t in module ida_kernwin: + +class line_rendering_output_entry_t(builtins.object) + | Proxy of C++ line_rendering_output_entry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_line_rendering_output_entry_t(...) + | delete_line_rendering_output_entry_t(self) + | + | is_bg_color_direct(self, *args) -> 'bool' + | is_bg_color_direct(self) -> bool + | + | is_bg_color_empty(self, *args) -> 'bool' + | is_bg_color_empty(self) -> bool + | + | is_bg_color_key(self, *args) -> 'bool' + | is_bg_color_key(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bg_color + | bg_color + | + | cpx + | cpx + | + | flags + | flags + | + | line + | line + | + | nchars + | nchars + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class linearray_t in module ida_kernwin: + +class linearray_t(builtins.object) + | Proxy of C++ linearray_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ud) -> linearray_t + | + | @param _ud: void * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_linearray_t(...) + | delete_linearray_t(self) + | + | beginning(self, *args) -> 'bool' + | beginning(self) -> bool + | Are we at the beginning? + | + | down(self, *args) -> 'qstring const *' + | down(self) -> qstring const * + | Get a line from down direction. place is ok BEFORE + | + | ending(self, *args) -> 'bool' + | ending(self) -> bool + | + | get_bg_color(self, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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. + | + | @param 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, *args) -> 'void' + | set_userdata(self, userd) + | Change the user data. + | + | @param userd: (C++: void *) + | + | up(self, *args) -> 'qstring const *' + | up(self) -> qstring const * + | Get a line from up direction. place is ok AFTER + | + | userdata(self, *args) -> 'void *' + | userdata(self) -> void * + | Get pointer to user data. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lines_rendering_input_t in module ida_kernwin: + +class lines_rendering_input_t(builtins.object) + | Proxy of C++ lines_rendering_input_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_input_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_input_t(...) + | delete_lines_rendering_input_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | sections_lines + | sections_lines + | + | sync_group + | sync_group + | + | thisown + | The membership flag + +Help on class lines_rendering_output_t in module ida_kernwin: + +class lines_rendering_output_t(builtins.object) + | Proxy of C++ lines_rendering_output_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_output_t(...) + | delete_lines_rendering_output_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lines_rendering_output_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | entries + | entries + | + | flags + | flags + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function load_custom_icon in module ida_kernwin: @@ -47496,16 +62070,7 @@ load_custom_icon(file_name=None, data=None, format=None) If file_name is passed then the other two arguments are ignored. - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format - - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it - - - Load an icon from a file ( 'ui_load_custom_icon_file' ). Also see - 'load_custom_icon(const void *, unsigned int, const char *)' + Load an icon and return its id (ui_load_custom_icon). @return: icon id @@ -47513,33 +62078,27 @@ Help on function load_dbg_dbginfo in module ida_kernwin: load_dbg_dbginfo(*args) -> 'bool' load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - - Load debugging information from a file. - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window Help on function lookup_key_code in module ida_kernwin: lookup_key_code(*args) -> 'ushort' lookup_key_code(key, shift, is_qt) -> ushort + Get shortcut code previously created by ui_get_key_code. - - Get shortcut code previously created by 'ui_get_key_code' . - - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * - - + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -47553,164 +62112,159 @@ Help on function msg_clear in module ida_kernwin: msg_clear(*args) -> 'void' msg_clear() - - - Clear the "Output window". + Clear the "Output" window. Help on function msg_get_lines in module ida_kernwin: msg_get_lines(*args) -> 'PyObject *' - msg_get_lines(count=-1) -> PyObject * + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) - - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) - - @param count: The number of lines to retrieve. -1 means: all (C++: - int) + @param count: (C++: int) The number of lines to retrieve. -1 means: all Help on function msg_save in module ida_kernwin: msg_save(*args) -> 'bool' msg_save(path) -> bool + Save the "Output" window contents into a file - - Save the "Output window" contents into a file - - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) + @param 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 Help on function nomem in module ida_kernwin: nomem(*args) -> 'void' nomem(format) + + @param format: char const * + +Help on function open_bookmarks_window in module ida_kernwin: + +open_bookmarks_window(*args) -> 'TWidget *' + open_bookmarks_window(w) -> TWidget * + Open the bookmarks window (ui_open_builtin). + + @param 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 Help on function open_bpts_window in module ida_kernwin: open_bpts_window(*args) -> 'TWidget *' open_bpts_window(ea) -> TWidget * + Open the breakpoints window (ui_open_builtin). - - Open the breakpoints window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_calls_window in module ida_kernwin: open_calls_window(*args) -> 'TWidget *' open_calls_window(ea) -> TWidget * + Open the function calls window (ui_open_builtin). - - Open the function calls window ( 'ui_open_builtin' ). - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: pointer to resulting window Help on function open_disasm_window in module ida_kernwin: open_disasm_window(*args) -> 'TWidget *' open_disasm_window(window_title, ranges=None) -> TWidget * + Open a disassembly view (ui_open_builtin). - - Open a disassembly view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges @return: pointer to resulting window Help on function open_enums_window in module ida_kernwin: open_enums_window(*args) -> 'TWidget *' open_enums_window(const_id=BADADDR) -> TWidget * + Open the enums window (ui_open_builtin). - - Open the enums window ( 'ui_open_builtin' ). - - @param const_id: index of entry to select by default (C++: tid_t) + @param const_id: (C++: tid_t) index of entry to select by default @return: pointer to resulting window Help on function open_exports_window in module ida_kernwin: open_exports_window(*args) -> 'TWidget *' open_exports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window +Help on function open_form in module ida_kernwin: + +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 + Help on function open_frame_window in module ida_kernwin: open_frame_window(*args) -> 'TWidget *' open_frame_window(pfn, offset) -> TWidget * + Open the frame window for the given function (ui_open_builtin). - - Open the frame window for the given function ( 'ui_open_builtin' ). - - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise + @param pfn: (C++: func_t *) function to analyze + @param 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 Help on function open_funcs_window in module ida_kernwin: open_funcs_window(*args) -> 'TWidget *' open_funcs_window(ea) -> TWidget * + Open the 'Functions' window (ui_open_builtin). - - Open the functions window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_hexdump_window in module ida_kernwin: open_hexdump_window(*args) -> 'TWidget *' open_hexdump_window(window_title) -> TWidget * + Open a hexdump view (ui_open_builtin). - - Open a hexdump view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) + @param window_title: (C++: const char *) title of view to open @return: pointer to resulting window Help on function open_imports_window in module ida_kernwin: open_imports_window(*args) -> 'TWidget *' open_imports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_loctypes_window in module ida_kernwin: open_loctypes_window(*args) -> 'TWidget *' open_loctypes_window(ordinal) -> TWidget * + Open the local types window (ui_open_builtin). - - Open the local types window ( 'ui_open_builtin' ). - - @param ordinal: ordinal of type to select by default (C++: int) + @param ordinal: (C++: int) ordinal of type to select by default @return: pointer to resulting window Help on function open_modules_window in module ida_kernwin: open_modules_window(*args) -> 'TWidget *' open_modules_window() -> TWidget * - - - Open the modules window ( 'ui_open_builtin' ). + Open the modules window (ui_open_builtin). @return: pointer to resulting window @@ -47718,32 +62272,26 @@ Help on function open_names_window in module ida_kernwin: open_names_window(*args) -> 'TWidget *' open_names_window(ea) -> TWidget * + Open the names window (ui_open_builtin). - - Open the names window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_navband_window in module ida_kernwin: open_navband_window(*args) -> 'TWidget *' open_navband_window(ea, zoom) -> TWidget * + Open the navigation band window (ui_open_builtin). - - Open the navigation band window ( 'ui_open_builtin' ). - - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level @return: pointer to resulting window Help on function open_notepad_window in module ida_kernwin: open_notepad_window(*args) -> 'TWidget *' open_notepad_window() -> TWidget * - - - Open the notepad window ( 'ui_open_builtin' ). + Open the notepad window (ui_open_builtin). @return: pointer to resulting window @@ -47751,42 +62299,34 @@ Help on function open_problems_window in module ida_kernwin: open_problems_window(*args) -> 'TWidget *' open_problems_window(ea) -> TWidget * + Open the problems window (ui_open_builtin). - - Open the problems window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_segments_window in module ida_kernwin: open_segments_window(*args) -> 'TWidget *' open_segments_window(ea) -> TWidget * + Open the segments window (ui_open_builtin). - - Open the segments window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_segregs_window in module ida_kernwin: open_segregs_window(*args) -> 'TWidget *' open_segregs_window(ea) -> TWidget * + Open the segment registers window (ui_open_builtin). - - Open the segment registers window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_selectors_window in module ida_kernwin: open_selectors_window(*args) -> 'TWidget *' open_selectors_window() -> TWidget * - - - Open the selectors window ( 'ui_open_builtin' ). + Open the selectors window (ui_open_builtin). @return: pointer to resulting window @@ -47794,9 +62334,7 @@ Help on function open_signatures_window in module ida_kernwin: open_signatures_window(*args) -> 'TWidget *' open_signatures_window() -> TWidget * - - - Open the signatures window ( 'ui_open_builtin' ). + Open the signatures window (ui_open_builtin). @return: pointer to resulting window @@ -47804,9 +62342,7 @@ Help on function open_stack_window in module ida_kernwin: open_stack_window(*args) -> 'TWidget *' open_stack_window() -> TWidget * - - - Open the call stack window ( 'ui_open_builtin' ). + Open the call stack window (ui_open_builtin). @return: pointer to resulting window @@ -47814,36 +62350,28 @@ Help on function open_strings_window in module ida_kernwin: open_strings_window(*args) -> 'TWidget *' open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + Open the 'Strings' window (ui_open_builtin). - - Open the strings window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) @return: pointer to resulting window Help on function open_structs_window in module ida_kernwin: open_structs_window(*args) -> 'TWidget *' open_structs_window(id=BADADDR, offset=0) -> TWidget * + Open the structs window (ui_open_builtin). - - Open the structs window ( 'ui_open_builtin' ). - - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed @return: pointer to resulting window Help on function open_threads_window in module ida_kernwin: open_threads_window(*args) -> 'TWidget *' open_threads_window() -> TWidget * - - - Open the threads window ( 'ui_open_builtin' ). + Open the threads window (ui_open_builtin). @return: pointer to resulting window @@ -47851,9 +62379,7 @@ Help on function open_tils_window in module ida_kernwin: open_tils_window(*args) -> 'TWidget *' open_tils_window() -> TWidget * - - - Open the type libraries window ( 'ui_open_builtin' ). + Open the type libraries window (ui_open_builtin). @return: pointer to resulting window @@ -47861,9 +62387,7 @@ Help on function open_trace_window in module ida_kernwin: open_trace_window(*args) -> 'TWidget *' open_trace_window() -> TWidget * - - - Open the trace window ( 'ui_open_builtin' ). + Open the tracing window (ui_open_builtin). @return: pointer to resulting window @@ -47871,22 +62395,17 @@ Help on function open_url in module ida_kernwin: open_url(*args) -> 'void' open_url(url) + Open the given url (ui_open_url) - - Open the given url ( 'ui_open_url' ) - - - @param url (C++: const char *) + @param url: (C++: const char *) char const * Help on function open_xrefs_window in module ida_kernwin: open_xrefs_window(*args) -> 'TWidget *' open_xrefs_window(ea) -> TWidget * + Open the cross references window (ui_open_builtin). - - Open the cross references window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on class place_t in module ida_kernwin: @@ -47905,79 +62424,189 @@ class place_t(builtins.object) | delete_place_t(self) | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47989,7 +62618,7 @@ class place_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag @@ -47998,31 +62627,44 @@ Help on function place_t_as_enumplace_t in module ida_kernwin: place_t_as_enumplace_t(*args) -> 'enumplace_t *' place_t_as_enumplace_t(p) -> enumplace_t + + @param p: place_t * Help on function place_t_as_idaplace_t in module ida_kernwin: place_t_as_idaplace_t(*args) -> 'idaplace_t *' place_t_as_idaplace_t(p) -> idaplace_t + + @param p: place_t * Help on function place_t_as_simpleline_place_t in module ida_kernwin: place_t_as_simpleline_place_t(*args) -> 'simpleline_place_t *' place_t_as_simpleline_place_t(p) -> simpleline_place_t + + @param p: place_t * Help on function place_t_as_structplace_t in module ida_kernwin: place_t_as_structplace_t(*args) -> 'structplace_t *' place_t_as_structplace_t(p) -> structplace_t + + @param p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) -> 'void' plgform_close(py_link, options) + + @param py_link: PyObject * + @param options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) -> 'TWidget *' plgform_get_widget(py_link) -> TWidget * + + @param py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -48032,19 +62674,31 @@ plgform_new(*args) -> 'PyObject *' Help on function plgform_show in module ida_kernwin: plgform_show(*args) -> 'bool' - plgform_show(py_link, py_obj, caption, options=WOPN_DP_TAB|WOPN_RESTORE) -> bool + plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int Help on function process_ui_action in module ida_kernwin: process_ui_action(*args) -> 'bool' process_ui_action(name, flags=0) -> bool - - Invokes an IDA UI action by name - @param name: action name + @param name: action name + @param flags: int @return: Boolean +Help on function py_chooser_base_t_get_row in module ida_kernwin: + +py_chooser_base_t_get_row(*args) -> 'PyObject *' + py_chooser_base_t_get_row(chobj, n) -> PyObject * + + @param chobj: chooser_base_t const * + @param n: size_t + Help on function py_get_ask_form in module ida_kernwin: py_get_ask_form(*args) -> 'size_t' @@ -48059,147 +62713,208 @@ Help on function py_load_custom_icon_data in module ida_kernwin: py_load_custom_icon_data(*args) -> 'int' py_load_custom_icon_data(data, format) -> int + + @param data: PyObject * + @param format: char const * Help on function py_load_custom_icon_fn in module ida_kernwin: py_load_custom_icon_fn(*args) -> 'int' py_load_custom_icon_fn(filename) -> int + + @param filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) -> 'void' py_register_compiled_form(py_form) - -Help on function py_ss_restore_callback in module ida_kernwin: - -py_ss_restore_callback(*args) -> 'void' - py_ss_restore_callback(err_msg, userdata) + + @param py_form: PyObject * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) -> 'void' py_unregister_compiled_form(py_form) + + @param py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) -> 'bool' pyidag_bind(_self) -> bool + + @param self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) -> 'bool' pyidag_unbind(_self) -> bool + + @param self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) -> 'bool' pyscv_add_line(py_this, py_sl) -> bool + + @param py_this: PyObject * + @param py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) -> 'PyObject *' pyscv_clear_lines(py_this) -> PyObject * + + @param py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) -> 'void' pyscv_close(py_this) + + @param py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) -> 'size_t' pyscv_count(py_this) -> size_t + + @param py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) -> 'bool' pyscv_del_line(py_this, nline) -> bool + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) -> 'bool' pyscv_edit_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_get_current_line in module ida_kernwin: pyscv_get_current_line(*args) -> 'PyObject *' pyscv_get_current_line(py_this, mouse, notags) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) -> 'PyObject *' pyscv_get_current_word(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) -> 'PyObject *' pyscv_get_line(py_this, nline) -> PyObject * + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) -> 'PyObject *' pyscv_get_pos(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) -> 'PyObject *' pyscv_get_selection(py_this) -> PyObject * + + @param py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) -> 'TWidget *' pyscv_get_widget(py_this) -> TWidget * + + @param py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) -> 'PyObject *' pyscv_init(py_link, title) -> PyObject * + + @param py_link: PyObject * + @param title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) -> 'bool' pyscv_insert_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) -> 'bool' pyscv_is_focused(py_this) -> bool + + @param py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) -> 'bool' pyscv_jumpto(py_this, ln, x, y) -> bool + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) -> 'bool' pyscv_patch_line(py_this, nline, offs, value) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) -> 'bool' pyscv_refresh(py_this) -> bool + + @param py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) -> 'bool' pyscv_show(py_this) -> bool + + @param py_this: PyObject * Help on function qcleanline in module ida_kernwin: qcleanline(*args) -> 'qstring *' qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - - Performs some cleanup operations to a line. - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) + @param 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 + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM @return: length of line Help on class quick_widget_commands_t in module ida_kernwin: @@ -48238,20 +62953,17 @@ Help on function read_range_selection in module ida_kernwin: read_range_selection(*args) -> '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() - - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) + @param 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 Help on function read_selection in module ida_kernwin: read_selection(*args) -> 'bool' read_selection(v, p1, p2) -> bool - - Read the user selection, and store its information in p0 (from) and p1 (to). This can be used as follows: @@ -48278,7 +62990,7 @@ read_selection(*args) -> 'bool' disassembly, structures, enums, ...) @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. + @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success. @@ -48286,12 +62998,9 @@ Help on function refresh_chooser in module ida_kernwin: refresh_chooser(*args) -> 'bool' refresh_chooser(title) -> bool + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). - - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - - @param title: title of chooser (C++: const char *) + @param title: (C++: const char *) title of chooser @return: success Help on function refresh_choosers in module ida_kernwin: @@ -48299,92 +63008,90 @@ Help on function refresh_choosers in module ida_kernwin: refresh_choosers(*args) -> 'void' refresh_choosers() +Help on function refresh_custom_viewer in module ida_kernwin: + +refresh_custom_viewer(*args) -> 'void' + refresh_custom_viewer(custom_viewer) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) + Help on function refresh_idaview in module ida_kernwin: refresh_idaview(*args) -> 'void' refresh_idaview() - - - Refresh marked windows ( 'ui_refreshmarked' ) + Refresh marked windows (ui_refreshmarked) Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_navband in module ida_kernwin: refresh_navband(*args) -> 'void' refresh_navband(force) + Refresh navigation band if changed (ui_refresh_navband). - - Refresh navigation band if changed ( 'ui_refresh_navband' ). - - @param force: refresh regardless (C++: bool) + @param force: (C++: bool) refresh regardless Help on function register_action in module ida_kernwin: register_action(*args) -> '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. - 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. + Please see the SDK's "ht_view" plugin for an example how to register actions. - @param desc: action to register (C++: const action_desc_t &) + @param desc: (C++: const action_desc_t &) action to register @return: success Help on function register_addon in module ida_kernwin: register_addon(*args) -> '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 - - 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 - - @param info (C++: const addon_info_t *) + @param info: (C++: const addon_info_t *) addon_info_t const * Help on function register_and_attach_to_menu in module ida_kernwin: register_and_attach_to_menu(*args) -> 'bool' - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner) -> 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(). - 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. + The only reason for its existence is to make it simpler to port existing plugins + to the new actions API. - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: const plugin_t *) + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) Help on function register_timer in module ida_kernwin: register_timer(*args) -> 'PyObject *' - register_timer(interval, py_callback) -> PyObject * - - + register_timer(interval, py_callback) -> PyCapsule Register a timer @param interval: Interval in milliseconds - @param callback: A Python callable that takes no parameters and returns an integer. + @param 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 @@ -48394,9 +63101,9 @@ Help on function remove_command_interpreter in module ida_kernwin: remove_command_interpreter(*args) -> 'void' remove_command_interpreter(cli_idx) + Remove command line interpreter (ui_install_cli) - - Remove command line interpreter ( 'ui_install_cli' ) + @param cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -48407,12 +63114,16 @@ class renderer_pos_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -48429,16 +63140,16 @@ class renderer_pos_info_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_pos_info_t_cx_get(self) -> short + | cx | | cy - | renderer_pos_info_t_cy_get(self) -> short + | cy | | node - | renderer_pos_info_t_node_get(self) -> int + | node | | sx - | renderer_pos_info_t_sx_get(self) -> short + | sx | | thisown | The membership flag @@ -48452,204 +63163,528 @@ Help on function repaint_custom_viewer in module ida_kernwin: repaint_custom_viewer(*args) -> 'void' repaint_custom_viewer(custom_viewer) + Repaint the given widget immediately (ui_repaint_qwidget) - - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - - - @param custom_viewer (C++: TWidget *) + @param custom_viewer: (C++: TWidget *) Help on function replace_wait_box in module ida_kernwin: replace_wait_box(*args) -> 'void' replace_wait_box(format) - - Replace the label of "Please wait dialog box". - - @param format (C++: const char *) + @param format: (C++: const char *) char const * Help on function request_refresh in module ida_kernwin: request_refresh(*args) -> 'void' request_refresh(mask, cnd=True) - - Request a refresh of a builtin window. - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise Help on function restore_database_snapshot in module ida_kernwin: restore_database_snapshot(*args) -> 'PyObject *' - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> 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. - - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. - - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - @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. + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param 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. + +Help on class section_lines_refs_t in module ida_kernwin: + +class section_lines_refs_t(builtins.object) + | Proxy of C++ qvector< twinline_t const * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) -> 'twinline_t const *const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const *const & + | + | __swig_destroy__ = delete_section_lines_refs_t(...) + | delete_section_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: twinline_t const *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | at(self, *args) -> 'twinline_t const *const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t const * >::iterator + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: twinline_t const *const & + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | + | @param x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t const ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t const *&' + | push_back(self, x) + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t const * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class sections_lines_refs_t in module ida_kernwin: + +class sections_lines_refs_t(builtins.object) + | Proxy of C++ qvector< section_lines_refs_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) -> 'section_lines_refs_t const &' + | __getitem__(self, i) -> section_lines_refs_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: section_lines_refs_t const & + | + | __swig_destroy__ = delete_sections_lines_refs_t(...) + | delete_sections_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: section_lines_refs_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | at(self, *args) -> 'section_lines_refs_t const &' + | at(self, _idx) -> section_lines_refs_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< section_lines_refs_t >::iterator + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: section_lines_refs_t const & + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | + | @param x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=section_lines_refs_t()) + | + | @param x: section_lines_refs_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: section_lines_refs_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'section_lines_refs_t &' + | push_back(self, x) + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< section_lines_refs_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function set_cancelled in module ida_kernwin: set_cancelled(*args) -> 'void' set_cancelled() - - - Set "Cancelled" flag ( 'ui_set_cancelled' ) + Set "Cancelled" flag (ui_set_cancelled) Help on function set_code_viewer_handler in module ida_kernwin: set_code_viewer_handler(*args) -> '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). - - Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' - ). - - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param 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 Help on function set_code_viewer_is_source in module ida_kernwin: set_code_viewer_is_source(*args) -> '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). - - Specify that the given code viewer is used to display source code ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) + @param code_viewer: (C++: TWidget *) Help on function set_code_viewer_line_handlers in module ida_kernwin: set_code_viewer_line_handlers(*args) -> '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 - - Set handlers for code viewer line events. Any of these handlers may be - NULL - - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) Help on function set_code_viewer_lines_alignment in module ida_kernwin: set_code_viewer_lines_alignment(*args) -> 'bool' set_code_viewer_lines_alignment(code_viewer, align) -> bool + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). - - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param align (C++: int) + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: set_code_viewer_lines_icon_margin(*args) -> '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). - - Set space allowed for icons in the margin of a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param margin (C++: int) + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) Help on function set_code_viewer_lines_radix in module ida_kernwin: set_code_viewer_lines_radix(*args) -> 'bool' set_code_viewer_lines_radix(code_viewer, radix) -> bool + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). - - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param radix (C++: int) + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) Help on function set_code_viewer_user_data in module ida_kernwin: set_code_viewer_user_data(*args) -> 'bool' set_code_viewer_user_data(code_viewer, ud) -> bool + Set the user data on a code viewer (ui_set_custom_viewer_handler). - - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) Help on function set_custom_viewer_qt_aware in module ida_kernwin: set_custom_viewer_qt_aware(*args) -> 'bool' set_custom_viewer_qt_aware(custom_viewer) -> bool + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) - - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - - - @param custom_viewer (C++: TWidget *) + @param custom_viewer: (C++: TWidget *) Help on function set_dock_pos in module ida_kernwin: set_dock_pos(*args) -> 'bool' set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool - - Sets the dock orientation of a window relatively to another window. - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window Help on function set_highlight in module ida_kernwin: set_highlight(*args) -> 'bool' set_highlight(viewer, str, flags) -> bool + Set the highlighted identifier in the viewer (ui_set_highlight). - - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) @return: false if an error occurred Help on function set_nav_colorizer in module ida_kernwin: set_nav_colorizer(*args) -> 'PyObject *' - set_nav_colorizer(new_py_colorizer) -> 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: @@ -48675,40 +63710,46 @@ set_nav_colorizer(*args) -> 'PyObject *' return long(~orig) ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) + + @param new_py_colorizer: PyObject * Help on function set_view_renderer_type in module ida_kernwin: set_view_renderer_type(*args) -> 'void' set_view_renderer_type(v, rt) + Set the type of renderer to use in a view (ui_set_renderer_type) - - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - - - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t Help on function show_wait_box in module ida_kernwin: show_wait_box(*args) -> '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. - - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. + @param message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -48762,8 +63803,7 @@ class simplecustviewer_t(builtins.object) | GetLine(self, lineno) | Returns a line | @param lineno: The line number - | @return: - | Returns a tuple (colored_line, fgcolor, bgcolor) or None + | @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 @@ -48775,8 +63815,7 @@ class simplecustviewer_t(builtins.object) | | GetSelection(self) | Returns the selected range or None - | @return: - | - tuple(x1, y1, x2, y2) + | @return: - tuple(x1, y1, x2, y2) | - None if no selection | | GetWidget(self) @@ -48856,7 +63895,7 @@ class simpleline_place_t(place_t) | Data descriptors defined here: | | n - | simpleline_place_t_n_get(self) -> uint32 + | n | | thisown | The membership flag @@ -48865,79 +63904,189 @@ class simpleline_place_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -48949,7 +64098,7 @@ class simpleline_place_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class simpleline_t in module ida_kernwin: @@ -48961,7 +64110,13 @@ class simpleline_t(builtins.object) | __init__(self, *args) | __init__(self) -> simpleline_t | __init__(self, c, str) -> simpleline_t + | + | @param c: color_t + | @param str: char const * + | | __init__(self, str) -> simpleline_t + | + | @param str: char const * | | __repr__ = _swig_repr(self) | @@ -48978,13 +64133,13 @@ class simpleline_t(builtins.object) | list of weak references to the object (if defined) | | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t + | bgcolor | | color - | simpleline_t_color_get(self) -> color_t + | color | | line - | simpleline_t_line_get(self) -> qstring * + | line | | thisown | The membership flag @@ -48993,36 +64148,32 @@ Help on function str2ea in module ida_kernwin: str2ea(*args) -> 'ea_t' str2ea(str, screenEA=BADADDR) -> ea_t - - Converts a string express to EA. The expression evaluator may be called as well. + @param str: char const * + @param screenEA: ea_t @return: BADADDR or address value Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * - - + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on function strarray in module ida_kernwin: strarray(*args) -> '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 "". - - 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 "". - - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) Help on class strarray_t in module ida_kernwin: @@ -49049,10 +64200,10 @@ class strarray_t(builtins.object) | list of weak references to the object (if defined) | | code - | strarray_t_code_get(self) -> int + | code | | text - | strarray_t_text_get(self) -> char const * + | text | | thisown | The membership flag @@ -49081,10 +64232,10 @@ class structplace_t(place_t) | Data descriptors defined here: | | idx - | structplace_t_idx_get(self) -> uval_t + | idx | | offset - | structplace_t_offset_get(self) -> uval_t + | offset | | thisown | The membership flag @@ -49093,79 +64244,189 @@ class structplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -49177,7 +64438,7 @@ class structplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class sync_source_t in module ida_kernwin: @@ -49188,13 +64449,22 @@ class sync_source_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, _o) -> bool + | + | @param _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t + | + | @param _view: TWidget const * + | | __init__(self, _regname) -> sync_source_t + | + | @param _regname: char const * | | __ne__(self, *args) -> 'bool' | __ne__(self, _o) -> bool + | + | @param _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -49230,31 +64500,512 @@ class sync_source_t(builtins.object) | | __hash__ = None +Help on class sync_source_vec_t in module ida_kernwin: + +class sync_source_vec_t(builtins.object) + | Proxy of C++ qvector< sync_source_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | __swig_destroy__ = delete_sync_source_vec_t(...) + | delete_sync_source_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: sync_source_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + Help on function sync_sources in module ida_kernwin: sync_sources(*args) -> 'bool' sync_sources(what, _with, sync) -> bool - - [Un]synchronize sources - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) @return: success +Help on class synced_group_t in module ida_kernwin: + +class synced_group_t(sync_source_vec_t) + | Proxy of C++ synced_group_t class. + | + | Method resolution order: + | synced_group_t + | sync_source_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> synced_group_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_synced_group_t(...) + | delete_synced_group_t(self) + | + | has(self, *args) -> 'bool' + | has(self, ss) -> bool + | + | @param ss: sync_source_t const & + | + | has_register(self, *args) -> 'bool' + | has_register(self, r) -> bool + | + | @param r: char const * + | + | has_widget(self, *args) -> 'bool' + | has_widget(self, v) -> bool + | + | @param v: TWidget const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from sync_source_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from sync_source_vec_t: + | + | __hash__ = None + Help on function take_database_snapshot in module ida_kernwin: take_database_snapshot(*args) -> 'PyObject *' - take_database_snapshot(ss) -> PyObject * + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). - - Take a database snapshot ( 'ui_take_database_snapshot' ). - - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id @return: success +Help on class text_t in module ida_kernwin: + +class text_t(builtins.object) + | Proxy of C++ qvector< twinline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'twinline_t const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const & + | + | __swig_destroy__ = delete_text_t(...) + | delete_text_t(self) + | + | at(self, *args) -> 'twinline_t const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' + | begin(self) -> twinline_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t >::iterator + | + | erase(self, first, last) -> twinline_t + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator + | + | extract(self, *args) -> 'twinline_t *' + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=twinline_t()) + | + | @param x: twinline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t >::iterator' + | insert(self, it, x) -> twinline_t + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t &' + | push_back(self, x) + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + Help on class textctrl_info_t in module ida_kernwin: class textctrl_info_t(ida_idaapi.py_clinked_object_t) @@ -49372,6 +65123,9 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) -> 'bool' textctrl_info_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -49382,46 +65136,114 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) -> 'bool' textctrl_info_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * Help on function textctrl_info_t_get_clink in module ida_kernwin: textctrl_info_t_get_clink(*args) -> 'textctrl_info_t *' textctrl_info_t_get_clink(_self) -> textctrl_info_t * + + @param self: PyObject * Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: textctrl_info_t_get_clink_ptr(*args) -> 'PyObject *' textctrl_info_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_flags in module ida_kernwin: textctrl_info_t_get_flags(*args) -> 'unsigned int' textctrl_info_t_get_flags(_self) -> unsigned int + + @param self: PyObject * Help on function textctrl_info_t_get_tabsize in module ida_kernwin: textctrl_info_t_get_tabsize(*args) -> 'unsigned int' textctrl_info_t_get_tabsize(_self) -> unsigned int + + @param self: PyObject * Help on function textctrl_info_t_get_text in module ida_kernwin: textctrl_info_t_get_text(*args) -> 'char const *' textctrl_info_t_get_text(_self) -> char const * + + @param self: PyObject * Help on function textctrl_info_t_set_flags in module ida_kernwin: textctrl_info_t_set_flags(*args) -> 'bool' textctrl_info_t_set_flags(_self, flags) -> bool + + @param self: PyObject * + @param flags: unsigned int Help on function textctrl_info_t_set_tabsize in module ida_kernwin: textctrl_info_t_set_tabsize(*args) -> 'bool' textctrl_info_t_set_tabsize(_self, tabsize) -> bool + + @param self: PyObject * + @param tabsize: unsigned int Help on function textctrl_info_t_set_text in module ida_kernwin: textctrl_info_t_set_text(*args) -> 'bool' textctrl_info_t_set_text(_self, s) -> bool + + @param self: PyObject * + @param s: char const * + +Help on class twinline_t in module ida_kernwin: + +class twinline_t(builtins.object) + | Proxy of C++ twinline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinline_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_twinline_t(...) + | delete_twinline_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | bg_color + | bg_color + | + | is_default + | is_default + | + | line + | line + | + | prefix_color + | prefix_color + | + | thisown + | The membership flag Help on class twinpos_t in module ida_kernwin: @@ -49430,16 +65252,16 @@ class twinpos_t(builtins.object) | | Methods defined here: | - | __eq__(self, *args) -> 'bool' - | __eq__(self, r) -> bool - | | __init__(self, *args) | __init__(self) -> twinpos_t | __init__(self, t) -> twinpos_t + | + | @param t: place_t * + | | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | + | @param t: place_t * + | @param x0: int | | __repr__ = _swig_repr(self) | @@ -49466,37 +65288,28 @@ class twinpos_t(builtins.object) | list of weak references to the object (if defined) | | at - | twinpos_t_at_get(self) -> place_t + | at | | thisown | The membership flag | | x - | twinpos_t_x_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None + | x Help on function ui_load_new_file in module ida_kernwin: ui_load_new_file(*args) -> 'bool' ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + Display a load file dialog and load file (ui_load_file). - - Display a load file dialog and load file ( 'ui_load_file' ). - - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param 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 Help on class ui_requests_t in module ida_kernwin: @@ -49529,42 +65342,33 @@ Help on function ui_run_debugger in module ida_kernwin: ui_run_debugger(*args) -> 'bool' ui_run_debugger(dbgopts, exename, argc, argv) -> bool + Load a debugger plugin and run the specified program (ui_run_dbg). - - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector @return: success Help on function unmark_selection in module ida_kernwin: unmark_selection(*args) -> 'void' unmark_selection() - - - Unmark selection ( 'ui_unmarksel' ) + Unmark selection (ui_unmarksel) Help on function unregister_action in module ida_kernwin: unregister_action(*args) -> 'bool' unregister_action(name) -> bool + Delete a previously-registered action (ui_unregister_action). - - Delete a previously-registered action ( 'ui_unregister_action' ). - - @param name: name of action (C++: const char *) + @param name: (C++: const char *) name of action @return: success Help on function unregister_timer in module ida_kernwin: unregister_timer(*args) -> 'bool' unregister_timer(py_timerctx) -> bool - - Unregister a timer @param timer_obj: a timer object previously returned by a register_timer() @@ -49575,105 +65379,90 @@ Help on function update_action_checkable in module ida_kernwin: update_action_checkable(*args) -> 'bool' update_action_checkable(name, checkable) -> bool + Update an action's checkability (ui_update_action_attr). - - Update an action's checkability ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability @return: success Help on function update_action_checked in module ida_kernwin: update_action_checked(*args) -> 'bool' update_action_checked(name, checked) -> bool + Update an action's checked state (ui_update_action_attr). - - Update an action's checked state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state @return: success Help on function update_action_icon in module ida_kernwin: update_action_icon(*args) -> 'bool' update_action_icon(name, icon) -> bool + Update an action's icon (ui_update_action_attr). - - Update an action's icon ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id @return: success Help on function update_action_label in module ida_kernwin: update_action_label(*args) -> 'bool' update_action_label(name, label) -> bool + Update an action's label (ui_update_action_attr). - - Update an action's label ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label @return: success Help on function update_action_shortcut in module ida_kernwin: update_action_shortcut(*args) -> 'bool' update_action_shortcut(name, shortcut) -> bool + Update an action's shortcut (ui_update_action_attr). - - Update an action's shortcut ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut @return: success Help on function update_action_state in module ida_kernwin: update_action_state(*args) -> 'bool' update_action_state(name, state) -> bool + Update an action's state (ui_update_action_attr). - - Update an action's state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state @return: success Help on function update_action_tooltip in module ida_kernwin: update_action_tooltip(*args) -> 'bool' update_action_tooltip(name, tooltip) -> bool + Update an action's tooltip (ui_update_action_attr). - - Update an action's tooltip ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip @return: success Help on function update_action_visibility in module ida_kernwin: update_action_visibility(*args) -> 'bool' update_action_visibility(name, visible) -> bool + Update an action's visibility (ui_update_action_attr). - - Update an action's visibility ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility @return: success Help on function user_cancelled in module ida_kernwin: user_cancelled(*args) -> 'bool' user_cancelled() -> bool - - - Test the ctrl-break flag ( 'ui_test_cancelled' ). + 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 Help on class view_mouse_event_location_t in module ida_kernwin: @@ -49700,10 +65489,10 @@ class view_mouse_event_location_t(builtins.object) | list of weak references to the object (if defined) | | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t + | ea | | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * + | item | | thisown | The membership flag @@ -49733,35 +65522,33 @@ class view_mouse_event_t(builtins.object) | list of weak references to the object (if defined) | | button - | view_mouse_event_t_button_get(self) -> vme_button_t + | button | | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t + | location | | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t + | renderer_pos | | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | state - | view_mouse_event_t_state_get(self) -> view_event_state_t + | state | | thisown | The membership flag | | x - | view_mouse_event_t_x_get(self) -> uint32 + | x | | y - | view_mouse_event_t_y_get(self) -> uint32 + | y Help on function warning in module ida_kernwin: warning(*args) -> 'void' warning(format) - - Display a message in a message box @param message: message to print (formatting is done in Python) @@ -49770,1072 +65557,16 @@ warning(*args) -> 'void' The user will be able to hide messages if they appear twice in a row on the screen -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_NO_UNDO -""" -useful for actions that do not modify the database. - -the action does not create an undo point. -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -trace view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CHOOSER_MENU_EDIT -""" -Values of the 'menu_index' parameter. - -Obsolete. Please don't use -""" - -ida_kernwin.CHOOSER_MENU_JUMP -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MENU_SEARCH -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MULTI_SELECTION -""" -enable for multiple selections. A callback of type -'chooser_multi_cb_t' will be called for all selected items. -""" - -ida_kernwin.CHOOSER_NO_SELECTION -""" -Flags. - -enable even if there's no selected item. 'n' will be NO_SELECTION for -a callback. -""" - -ida_kernwin.CHOOSER_POPUP_MENU -""" -Add command to the popup menu. -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.DP_BEFORE -""" -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. +Module "ida_lines"s docstring: """ +High level functions that deal with the generation of the disassembled text +lines. -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) -""" - -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" +This file also contains definitions for the syntax highlighting. -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" - -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -trace view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. 'execute_sync()' returns the request -id in this case. it can be used in 'cancel_exec_request()' . This flag -can be used to delay the code execution until the next UI loop run -even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -in the navigation history - -do not remember the current address -""" +Finally there are functions that deal with anterior/posterior user-defined +lines.""" -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" -=== ida_kernwin EPYDOC INJECTIONS END === Help on function COLSTR in module ida_lines: COLSTR(str, tag) @@ -50847,76 +65578,281 @@ Help on function add_extra_cmt in module ida_lines: add_extra_cmt(*args) -> 'bool' add_extra_cmt(ea, isprev, format) -> bool - - Add anterior/posterior comment line(s). - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. @return: true if success Help on function add_extra_line in module ida_lines: add_extra_line(*args) -> 'bool' add_extra_line(ea, isprev, format) -> bool - - Add anterior/posterior non-comment line(s). - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. @return: true if success Help on function add_pgm_cmt in module ida_lines: add_pgm_cmt(*args) -> 'bool' add_pgm_cmt(format) -> bool - - Add anterior comment line(s) at the start of program. - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. @return: true if success Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. @return: success -Help on class bgcolors_t in module ida_lines: +Help on function calc_bg_color in module ida_lines: -class bgcolors_t(builtins.object) - | Proxy of C++ bgcolors_t class. +calc_bg_color(*args) -> 'bgcolor_t' + calc_bg_color(ea) -> bgcolor_t + Get background color for line at 'ea' + + @param ea: (C++: ea_t) + @return: RGB color + +Help on function calc_prefix_color in module ida_lines: + +calc_prefix_color(*args) -> 'color_t' + calc_prefix_color(ea) -> color_t + Get prefix color for line at 'ea' + + @param ea: (C++: ea_t) + @return: Line prefix colors + +Help on function create_encoding_helper in module ida_lines: + +create_encoding_helper(*args) -> 'encoder_t *' + create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t + +Help on function del_extra_cmt in module ida_lines: + +del_extra_cmt(*args) -> 'void' + del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int + +Help on function del_sourcefile in module ida_lines: + +del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool + Delete information about the source file. + + @param ea: (C++: ea_t) linear address + @return: success + +Help on function delete_extra_cmts in module ida_lines: + +delete_extra_cmts(*args) -> 'void' + delete_extra_cmts(ea, what) + + @param ea: ea_t + @param what: int + +Help on function generate_disasm_line in module ida_lines: + +generate_disasm_line(*args) -> 'qstring *' + generate_disasm_line(ea, flags=0) -> str + + @param ea: ea_t + @param flags: int + +Help on function generate_disassembly in module ida_lines: + +generate_disassembly(*args) -> 'PyObject *' + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) + Generate disassembly lines (many lines) and put them into a buffer + + @param ea: address to generate disassembly for + @param max_lines: how many lines max to generate + @param as_stack: Display undefined items as 2/4/8 bytes + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines + +Help on function get_extra_cmt in module ida_lines: + +get_extra_cmt(*args) -> 'int' + get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int + +Help on function get_first_free_extra_cmtidx in module ida_lines: + +get_first_free_extra_cmtidx(*args) -> 'int' + get_first_free_extra_cmtidx(ea, start) -> int + + @param ea: ea_t + @param start: int + +Help on function get_sourcefile in module ida_lines: + +get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * + Get name of source file occupying the given address. + + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name + +Help on function install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) -> 'bool' + install_user_defined_prefix(prefix_len, udp, owner) -> bool + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded + +Help on function requires_color_esc in module ida_lines: + +requires_color_esc(c) + Checks if the given character requires escaping + Is the given char a color escape character? + +Help on function set_user_defined_prefix in module ida_lines: + +set_user_defined_prefix(*args) -> 'PyObject *' + set_user_defined_prefix(width, pycb) -> bool + Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * + +Help on function tag_addr in module ida_lines: + +tag_addr(*args) -> 'PyObject *' + tag_addr(ea) -> PyObject * + Insert an address mark into a string. + + @param ea: (C++: ea_t) address to include + +Help on function tag_advance in module ida_lines: + +tag_advance(*args) -> 'int' + tag_advance(line, cnt) -> int + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer + +Help on function tag_remove in module ida_lines: + +tag_remove(*args) -> 'PyObject *' + tag_remove(nonnul_instr) -> str + + @param nonnul_instr: char const * + +Help on function tag_skipcode in module ida_lines: + +tag_skipcode(*args) -> 'int' + tag_skipcode(line) -> int + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer + +Help on function tag_skipcodes in module ida_lines: + +tag_skipcodes(*args) -> 'int' + tag_skipcodes(line) -> int + Move the pointer past all color codes. + + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr + +Help on function tag_strlen in module ida_lines: + +tag_strlen(*args) -> 'ssize_t' + tag_strlen(line) -> ssize_t + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error + +Help on function update_extra_cmt in module ida_lines: + +update_extra_cmt(*args) -> 'void' + update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * + +Help on class user_defined_prefix_t in module ida_lines: + +class user_defined_prefix_t(builtins.object) + | Proxy of C++ user_defined_prefix_t class. | | Methods defined here: | + | __disown__(self) + | | __init__(self, *args) - | __init__(self) -> bgcolors_t + | __init__(self, prefix_len, owner) -> user_defined_prefix_t + | + | @param prefix_len: size_t + | @param owner: void const * | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_bgcolors_t(...) - | delete_bgcolors_t(self) + | __swig_destroy__ = delete_user_defined_prefix_t(...) + | delete_user_defined_prefix_t(self) + | + | get_user_defined_prefix(self, *args) -> 'void' + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | This callback must be overridden by the derived class. + | + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param lnnum: (C++: int) number of the current line (each address may have several listing + | lines for it). 0 means the very first line for the current + | address. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -50927,679 +65863,164 @@ class bgcolors_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | - | epilog_color - | bgcolors_t_epilog_color_get(self) -> bgcolor_t - | - | prolog_color - | bgcolors_t_prolog_color_get(self) -> bgcolor_t - | - | switch_color - | bgcolors_t_switch_color_get(self) -> bgcolor_t - | | thisown | The membership flag -Help on function calc_bg_color in module ida_lines: - -calc_bg_color(*args) -> 'bgcolor_t' - calc_bg_color(ea) -> bgcolor_t - - - Get background color for line at 'ea' - - @param ea (C++: ea_t) - @return: RGB color - -Help on function calc_prefix_color in module ida_lines: - -calc_prefix_color(*args) -> 'color_t' - calc_prefix_color(ea) -> color_t - - - Get prefix color for line at 'ea' - - @param ea (C++: ea_t) - @return: Line prefix colors - -Help on function create_encoding_helper in module ida_lines: - -create_encoding_helper(*args) -> 'encoder_t *' - create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - -Help on function del_extra_cmt in module ida_lines: - -del_extra_cmt(*args) -> 'void' - del_extra_cmt(ea, what) - -Help on function del_sourcefile in module ida_lines: - -del_sourcefile(*args) -> 'bool' - del_sourcefile(ea) -> bool - - - Delete information about the source file. - - @param ea: linear address (C++: ea_t) - @return: success - -Help on function delete_extra_cmts in module ida_lines: - -delete_extra_cmts(*args) -> 'void' - delete_extra_cmts(ea, what) - -Help on function generate_disasm_line in module ida_lines: - -generate_disasm_line(*args) -> 'qstring *' - generate_disasm_line(ea, flags=0) -> str - -Help on function generate_disassembly in module ida_lines: - -generate_disassembly(*args) -> 'PyObject *' - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * - - - Generate disassembly lines (many lines) and put them into a buffer - - @param ea: address to generate disassembly for - @param max_lines: how many lines max to generate - @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines - -Help on function get_extra_cmt in module ida_lines: - -get_extra_cmt(*args) -> 'int' - get_extra_cmt(ea, what) -> ssize_t - -Help on function get_first_free_extra_cmtidx in module ida_lines: - -get_first_free_extra_cmtidx(*args) -> 'int' - get_first_free_extra_cmtidx(ea, start) -> int - -Help on function get_sourcefile in module ida_lines: - -get_sourcefile(*args) -> 'char const *' - get_sourcefile(ea, bounds=None) -> char const * - - - Get name of source file occupying the given address. - - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name - -Help on function requires_color_esc in module ida_lines: - -requires_color_esc(c) - Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean - - - Is the given char a color escape character? - -Help on function set_user_defined_prefix in module ida_lines: - -set_user_defined_prefix(*args) -> 'PyObject *' - set_user_defined_prefix(width, pycb) -> PyObject * - - - User-defined line-prefixes are displayed just after the autogenerated - line prefixes. In order to use them, the plugin should call the - following function to specify its width and contents. - @param width: the width of the user-defined prefix - @param callback: a get_user_defined_prefix callback to get the contents of the prefix. - Its arguments: - ea - linear address - lnnum - line number - indent - indent of the line contents (-1 means the default instruction) - indent and is used for instruction itself. see explanations for printf_line() - line - the line to be generated. the line usually contains color tags this argument - can be examined to decide whether to generated the prefix - It returns a buffer of size < bufsize - - In order to remove the callback before unloading the plugin, specify the width = 0 or the callback = None - -Help on function tag_addr in module ida_lines: - -tag_addr(*args) -> 'PyObject *' - tag_addr(ea) -> PyObject * - - - Insert an address mark into a string. - - @param ea: address to include (C++: ea_t) - -Help on function tag_advance in module ida_lines: - -tag_advance(*args) -> 'int' - tag_advance(line, cnt) -> int - - - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer - -Help on function tag_remove in module ida_lines: - -tag_remove(*args) -> 'PyObject *' - tag_remove(nonnul_instr) -> PyObject * - - - Remove color escape sequences from a string - @param colstr: the colored string with embedded tags - @return: a new string w/o the tags - -Help on function tag_skipcode in module ida_lines: - -tag_skipcode(*args) -> 'int' - tag_skipcode(line) -> int - - - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - - @param line (C++: const char *) - @return: moved pointer - -Help on function tag_skipcodes in module ida_lines: - -tag_skipcodes(*args) -> 'int' - tag_skipcodes(line) -> int - - - Move the pointer past all color codes. - - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL - -Help on function tag_strlen in module ida_lines: - -tag_strlen(*args) -> 'ssize_t' - tag_strlen(line) -> ssize_t - - - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error - -Help on function update_extra_cmt in module ida_lines: - -update_extra_cmt(*args) -> 'void' - update_extra_cmt(ea, what, str) - -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) -""" - -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" - -ida_lines.COLOR_CODE -""" -Single instruction. -""" - -ida_lines.COLOR_CURITEM -""" -Current item. -""" - -ida_lines.COLOR_CURLINE -""" -Current line. -""" - -ida_lines.COLOR_DATA -""" -Data bytes. -""" - -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Followed by a color code ( 'color_t' ). - -Escape character (OFF). -""" - -ida_lines.COLOR_ON -""" -Followed by a color code ( 'color_t' ). - -Escape character (ON). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. +Module "ida_loader"s docstring: """ +Definitions of IDP, LDR, PLUGIN module interfaces. -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) -ida_lines.SCOLOR_MACRO -""" -Macro. -""" +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === Help on function base2file in module ida_loader: base2file(*args) -> 'int' base2file(fp, pos, ea1, ea2) -> int + Unload database to a binary file. This function works for wide byte processors + too. - - Unload database to a binary file. This function works for wide byte - processors too. - - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) @return: 1-ok(always), write error leads to immediate exit Help on function build_snapshot_tree in module ida_loader: build_snapshot_tree(*args) -> 'bool' build_snapshot_tree(root) -> bool - - Build the snapshot tree. - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. @return: success Help on function clr_database_flag in module ida_loader: clr_database_flag(*args) -> 'void' clr_database_flag(dbfl) + + @param dbfl: uint32 Help on function extract_module_from_archive in module ida_loader: extract_module_from_archive(*args) -> 'PyObject *' - extract_module_from_archive(fname, is_remote=False) -> PyObject * + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. - - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. - - @param is_remote: is the input file remote? (C++: bool) + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) Help on function file2base in module ida_loader: file2base(*args) -> 'int' file2base(li, pos, ea1, ea2, patchable) -> int + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). - - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it enabled) - - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. Help on function find_plugin in module ida_loader: find_plugin(*args) -> 'plugin_t *' find_plugin(name, load_if_needed=False) -> plugin_t * - - Find a user-defined plugin and optionally load it. - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it @return: pointer to plugin description block Help on function flush_buffers in module ida_loader: flush_buffers(*args) -> 'int' flush_buffers() -> int - - Flush buffers to the disk. Help on function gen_exe_file in module ida_loader: gen_exe_file(*args) -> 'int' gen_exe_file(fp) -> int - - Generate an exe file (unload the database in binary form). - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed Help on function gen_file in module ida_loader: gen_file(*args) -> 'int' gen_file(otype, fp, ea1, ea2, flags) -> int + Generate an output file. - - Generate an output file. 'OFILE_EXE' : - - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok @return: number of the generated lines. -1 if an error occurred Help on function get_basic_file_type in module ida_loader: get_basic_file_type(*args) -> 'filetype_t' get_basic_file_type(li) -> filetype_t + Get the input file type. This function can recognize libraries and zip files. - - Get the input file type. This function can recognize libraries and zip - files. - - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_elf_debug_file_directory in module ida_loader: get_elf_debug_file_directory(*args) -> 'char const *' get_elf_debug_file_directory() -> char const * - - Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. Help on function get_file_type_name in module ida_loader: get_file_type_name(*args) -> 'size_t' get_file_type_name() -> str - - Get name of the current file type. The current file type is kept in - \inf{filetype}. + idainfo::filetype. @return: size of answer, this function always succeeds @@ -51607,47 +66028,39 @@ Help on function get_fileregion_ea in module ida_loader: get_fileregion_ea(*args) -> 'ea_t' get_fileregion_ea(offset) -> ea_t + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR - - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - - @param offset (C++: qoff64_t) + @param offset: (C++: qoff64_t) Help on function get_fileregion_offset in module ida_loader: get_fileregion_offset(*args) -> 'qoff64_t' get_fileregion_offset(ea) -> qoff64_t + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. - - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_path in module ida_loader: get_path(*args) -> 'char const *' get_path(pt) -> char const * - - Get the file path - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr Help on function get_plugin_options in module ida_loader: get_plugin_options(*args) -> 'char const *' get_plugin_options(plugin) -> char const * + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified - - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - - @param plugin (C++: const char *) + @param plugin: (C++: const char *) char const * Help on class idp_desc_t in module ida_loader: @@ -51674,22 +66087,22 @@ class idp_desc_t(builtins.object) | list of weak references to the object (if defined) | | checked - | idp_desc_t_checked_get(self) -> bool + | checked | | family - | idp_desc_t_family_get(self) -> qstring * + | family | | is_script - | idp_desc_t_is_script_get(self) -> bool + | is_script | | mtime - | idp_desc_t_mtime_get(self) -> time_t + | mtime | | names - | idp_desc_t_names_get(self) -> idp_names_t * + | names | | path - | idp_desc_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -51719,13 +66132,13 @@ class idp_name_t(builtins.object) | list of weak references to the object (if defined) | | hidden - | idp_name_t_hidden_get(self) -> bool + | hidden | | lname - | idp_name_t_lname_get(self) -> qstring * + | lname | | sname - | idp_name_t_sname_get(self) -> qstring * + | sname | | thisown | The membership flag @@ -51734,79 +66147,68 @@ Help on function is_database_flag in module ida_loader: is_database_flag(*args) -> 'bool' is_database_flag(dbfl) -> bool - - Get the current database flag - @param dbfl: flag Database flags (C++: uint32) + @param dbfl: (C++: uint32) flag Database flags @return: the state of the flag (set or cleared) Help on function is_trusted_idb in module ida_loader: is_trusted_idb(*args) -> 'bool' is_trusted_idb() -> bool - - Is the database considered as trusted? Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' load_and_run_plugin(name, arg) -> bool - - Load & run a plugin. - - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_binary_file in module ida_loader: load_binary_file(*args) -> 'bool' load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + Load a binary file into the database. This function usually is called from ui. - - Load a binary file into the database. This function usually is called - from ui. - - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) Help on function load_ids_module in module ida_loader: load_ids_module(*args) -> 'int' load_ids_module(fname) -> int + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. - - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - - @param fname: name of file to apply (C++: char *) + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed Help on function load_plugin in module ida_loader: load_plugin(*args) -> 'PyObject *' - load_plugin(name) -> PyObject * - - + load_plugin(name) -> PyCapsule or None Loads a plugin - @return: - - None if plugin could not be loaded + + @param name: char const * + @return: - None if plugin could not be loaded - An opaque object representing the loaded plugin Help on class loader_t in module ida_loader: @@ -51834,27 +66236,25 @@ class loader_t(builtins.object) | list of weak references to the object (if defined) | | flags - | loader_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag | | version - | loader_t_version_get(self) -> uint32 + | version Help on function mem2base in module ida_loader: mem2base(*args) -> 'int' mem2base(py_mem, ea, fpos=-1) -> int - - Load database from the memory. - @param mem: the buffer + + @param py_mem: the buffer @param ea: start linear addresses @param fpos: position in the input file the data is taken from. if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string + @return: - Returns zero if the passed buffer was not a string - Otherwise 1 is returned Help on class plugin_info_t in module ida_loader: @@ -51882,37 +66282,37 @@ class plugin_info_t(builtins.object) | list of weak references to the object (if defined) | | arg - | plugin_info_t_arg_get(self) -> size_t + | arg | | comment - | plugin_info_t_comment_get(self) -> char * + | comment | | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * + | dllmem | | entry - | plugin_info_t_entry_get(self) -> plugin_t * + | entry | | flags - | plugin_info_t_flags_get(self) -> int + | flags | | hotkey - | plugin_info_t_hotkey_get(self) -> ushort + | hotkey | | name - | plugin_info_t_name_get(self) -> char * + | name | | next - | plugin_info_t_next_get(self) -> plugin_info_t + | next | | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort + | org_hotkey | | org_name - | plugin_info_t_org_name_get(self) -> char * + | org_name | | path - | plugin_info_t_path_get(self) -> char * + | path | | thisown | The membership flag @@ -51921,19 +66321,16 @@ Help on function process_archive in module ida_loader: process_archive(*args) -> 'qstring *' process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter 'loader' is a pointer + to load_info_t structure. - - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) + @param temp_file: (C++: qstring *) + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) load_info_t const * Help on class qvector_snapshotvec_t in module ida_loader: @@ -51944,13 +66341,19 @@ class qvector_snapshotvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & | | __getitem__(self, *args) -> 'snapshot_t *const &' | __getitem__(self, i) -> snapshot_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51960,23 +66363,36 @@ class qvector_snapshotvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: snapshot_t *const & | | __swig_destroy__ = delete_qvector_snapshotvec_t(...) | delete_qvector_snapshotvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: snapshot_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: snapshot_t *const & | | at(self, *args) -> 'snapshot_t *const &' | at(self, _idx) -> snapshot_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52000,32 +66416,54 @@ class qvector_snapshotvec_t(builtins.object) | | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' | erase(self, it) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator | | extract(self, *args) -> 'snapshot_t **' | extract(self) -> snapshot_t ** | | find(self, *args) -> 'qvector< snapshot_t * >::const_iterator' | find(self, x) -> qvector< snapshot_t * >::iterator + | + | @param x: snapshot_t *const & + | | find(self, x) -> qvector< snapshot_t * >::const_iterator + | + | @param x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: snapshot_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: snapshot_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'snapshot_t *&' | push_back(self, x) + | + | @param x: snapshot_t *const & + | | push_back(self) -> snapshot_t *& | | qclear(self, *args) -> 'void' @@ -52033,16 +66471,26 @@ class qvector_snapshotvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: snapshot_t *const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< snapshot_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52068,66 +66516,80 @@ Help on function reload_file in module ida_loader: reload_file(*args) -> 'bool' reload_file(file, is_remote) -> bool + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. - - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? @return: success Help on function run_plugin in module ida_loader: run_plugin(*args) -> 'bool' run_plugin(plg, arg) -> bool - - Runs a plugin + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t @return: Boolean Help on function save_database in module ida_loader: save_database(*args) -> 'bool' save_database(outfile, flags, root=None, attr=None) -> bool + Save current database using a new file name. - - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. @return: success Help on function set_database_flag in module ida_loader: set_database_flag(*args) -> 'void' set_database_flag(dbfl, cnd=True) - - Set or clear database flag - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) -> 'void' + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) -> 'void' + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry Help on function set_path in module ida_loader: set_path(*args) -> 'void' set_path(pt, path) - - Set the file path - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path Help on class snapshot_t in module ida_loader: @@ -52138,24 +66600,36 @@ class snapshot_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: snapshot_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: snapshot_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: snapshot_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: snapshot_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -52175,19 +66649,19 @@ class snapshot_t(builtins.object) | list of weak references to the object (if defined) | | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t + | children | | desc - | snapshot_t_desc_get(self) -> char [128] + | desc | | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] + | filename | | flags - | snapshot_t_flags_get(self) -> uint16 + | flags | | id - | snapshot_t_id_get(self) -> qtime64_t + | id | | thisown | The membership flag @@ -52197,226 +66671,34 @@ class snapshot_t(builtins.object) | | __hash__ = None -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE +Module "ida_lumina"s docstring: """ -Specify that a file format is served by archive loader See -'loader_t::accept_file' """ -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -form in the file. - -the data is kept in some encoded -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" - 'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" - 'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" - 'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" - 'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" - 'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -load as a code segment - -for 'load_binary_file()' : -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -into the database. - -This is the first file loaded -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place: - don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === Help on function apply_metadata in module ida_lumina: apply_metadata(*args) -> 'void' apply_metadata(ea, fi, flags=0) + + @param ea: ea_t + @param fi: func_info_t const & + @param flags: uint32 Help on function backup_metadata in module ida_lumina: backup_metadata(*args) -> 'bool' backup_metadata(ea) -> bool + + @param ea: ea_t Help on function calc_func_metadata in module ida_lumina: calc_func_metadata(*args) -> 'md5_t *' calc_func_metadata(out_fi, pfn, append_metadata=None) -> asize_t + + @param out_fi: func_info_t * + @param pfn: func_t const * + @param append_metadata: metadata_appender_t * Help on function create_simple_diff_handler in module ida_lumina: @@ -52427,16 +66709,18 @@ Help on function create_simple_idb_diff_handler in module ida_lumina: create_simple_idb_diff_handler(*args) -> 'simple_idb_diff_handler_t *' create_simple_idb_diff_handler(pfn) -> simple_idb_diff_handler_t + + @param pfn: func_t const * Help on function diff_metadata in module ida_lumina: diff_metadata(*args) -> 'bool' diff_metadata(handler, left, right, flags=0) -> bool - -Help on function ea_to_ea64 in module ida_lumina: - -ea_to_ea64(*args) -> 'ea64_t' - ea_to_ea64(ea) -> ea64_t + + @param handler: func_md_diff_handler_t & + @param left: func_info_t const & + @param right: func_info_t const & + @param flags: uint32 Help on class extra_cmt_t in module ida_lumina: @@ -52462,10 +66746,10 @@ class extra_cmt_t(insn_site_t) | Data descriptors defined here: | | next - | extra_cmt_t_next_get(self) -> qstring * + | next | | prev - | extra_cmt_t_prev_get(self) -> qstring * + | prev | | thisown | The membership flag @@ -52475,6 +66759,8 @@ class extra_cmt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -52486,10 +66772,10 @@ class extra_cmt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class extra_cmts_t in module ida_lumina: @@ -52500,10 +66786,14 @@ class extra_cmts_t(builtins.object) | | __getitem__(self, *args) -> 'extra_cmt_t const &' | __getitem__(self, i) -> extra_cmt_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> extra_cmts_t | __init__(self, x) -> extra_cmts_t + | + | @param x: qvector< extra_cmt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52515,19 +66805,23 @@ class extra_cmts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: extra_cmt_t const & | | __swig_destroy__ = delete_extra_cmts_t(...) | delete_extra_cmts_t(self) | | at(self, *args) -> 'extra_cmt_t const &' | at(self, _idx) -> extra_cmt_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< extra_cmt_t >::const_iterator' | begin(self) -> extra_cmt_t - | begin(self) -> extra_cmt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52540,11 +66834,16 @@ class extra_cmts_t(builtins.object) | | end(self, *args) -> 'qvector< extra_cmt_t >::const_iterator' | end(self) -> extra_cmt_t - | end(self) -> extra_cmt_t | | erase(self, *args) -> 'qvector< extra_cmt_t >::iterator' | erase(self, it) -> extra_cmt_t + | + | @param it: qvector< extra_cmt_t >::iterator + | | erase(self, first, last) -> extra_cmt_t + | + | @param first: qvector< extra_cmt_t >::iterator + | @param last: qvector< extra_cmt_t >::iterator | | extract(self, *args) -> 'extra_cmt_t *' | extract(self) -> extra_cmt_t @@ -52554,18 +66853,29 @@ class extra_cmts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=extra_cmt_t()) + | + | @param x: extra_cmt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: extra_cmt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< extra_cmt_t >::iterator' | insert(self, it, x) -> extra_cmt_t + | + | @param it: qvector< extra_cmt_t >::iterator + | @param x: extra_cmt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'extra_cmt_t &' | push_back(self, x) + | + | @param x: extra_cmt_t const & + | | push_back(self) -> extra_cmt_t | | qclear(self, *args) -> 'void' @@ -52573,16 +66883,26 @@ class extra_cmts_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: extra_cmt_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< extra_cmt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52603,31 +66923,49 @@ Help on function extract_extra_cmts_from_metadata in module ida_lumina: extract_extra_cmts_from_metadata(*args) -> 'void' extract_extra_cmts_from_metadata(out, ptr) + + @param out: extra_cmts_t * + @param ptr: uchar const * Help on function extract_frame_desc_from_metadata in module ida_lumina: extract_frame_desc_from_metadata(*args) -> 'void' extract_frame_desc_from_metadata(out, ptr) + + @param out: frame_desc_t * + @param ptr: uchar const * Help on function extract_insn_cmts_from_metadata in module ida_lumina: extract_insn_cmts_from_metadata(*args) -> 'void' extract_insn_cmts_from_metadata(out, ptr) + + @param out: insn_cmts_t * + @param ptr: uchar const * Help on function extract_insn_opreprs_from_metadata in module ida_lumina: extract_insn_opreprs_from_metadata(*args) -> 'void' extract_insn_opreprs_from_metadata(out, ptr) + + @param out: insn_ops_reprs_t * + @param ptr: uchar const * Help on function extract_type_from_metadata in module ida_lumina: extract_type_from_metadata(*args) -> 'bool' extract_type_from_metadata(out, _in) -> bool + + @param out: tinfo_t * + @param in: bytevec_t const & Help on function extract_user_stkpnts_from_metadata in module ida_lumina: extract_user_stkpnts_from_metadata(*args) -> 'void' extract_user_stkpnts_from_metadata(out, ptr) + + @param out: user_stkpnts_t * + @param ptr: uchar const * Help on class frame_desc_t in module ida_lumina: @@ -52637,7 +66975,12 @@ class frame_desc_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> frame_desc_t + | __init__(self, __frsize=0, __argsize=asize_t(-1), __frregs=0, __members=frame_mems_t()) -> frame_desc_t + | + | @param __frsize: sval_t + | @param __argsize: asize_t + | @param __frregs: ushort + | @param __members: frame_mems_t | | __repr__ = _swig_repr(self) | @@ -52654,16 +66997,16 @@ class frame_desc_t(builtins.object) | list of weak references to the object (if defined) | | argsize - | frame_desc_t_argsize_get(self) -> asize_t + | argsize | | frregs - | frame_desc_t_frregs_get(self) -> ushort + | frregs | | frsize - | frame_desc_t_frsize_get(self) -> sval_t + | frsize | | members - | frame_desc_t_members_get(self) -> frame_mems_t + | members | | thisown | The membership flag @@ -52676,7 +67019,15 @@ class frame_mem_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> frame_mem_t + | __init__(self, __name=None, __type=serialized_tinfo(), __cmt=None, __rptcmt=None, __offset=ea64_t(-1), __info=oprepr_t(), __nbytes=asize_t(-1)) -> frame_mem_t + | + | @param __name: char const * + | @param __type: serialized_tinfo + | @param __cmt: char const * + | @param __rptcmt: char const * + | @param __offset: ea64_t + | @param __info: oprepr_t + | @param __nbytes: asize_t | | __repr__ = _swig_repr(self) | @@ -52693,28 +67044,28 @@ class frame_mem_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | frame_mem_t_cmt_get(self) -> qstring * + | cmt | | info - | frame_mem_t_info_get(self) -> oprepr_t + | info | | name - | frame_mem_t_name_get(self) -> qstring * + | name | | nbytes - | frame_mem_t_nbytes_get(self) -> asize_t + | nbytes | | offset - | frame_mem_t_offset_get(self) -> ea64_t + | offset | | rptcmt - | frame_mem_t_rptcmt_get(self) -> qstring * + | rptcmt | | thisown | The membership flag | | type - | frame_mem_t_type_get(self) -> serialized_tinfo + | type Help on class frame_mems_t in module ida_lumina: @@ -52725,10 +67076,14 @@ class frame_mems_t(builtins.object) | | __getitem__(self, *args) -> 'frame_mem_t const &' | __getitem__(self, i) -> frame_mem_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> frame_mems_t | __init__(self, x) -> frame_mems_t + | + | @param x: qvector< frame_mem_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52740,19 +67095,23 @@ class frame_mems_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: frame_mem_t const & | | __swig_destroy__ = delete_frame_mems_t(...) | delete_frame_mems_t(self) | | at(self, *args) -> 'frame_mem_t const &' | at(self, _idx) -> frame_mem_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< frame_mem_t >::const_iterator' | begin(self) -> frame_mem_t - | begin(self) -> frame_mem_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52765,11 +67124,16 @@ class frame_mems_t(builtins.object) | | end(self, *args) -> 'qvector< frame_mem_t >::const_iterator' | end(self) -> frame_mem_t - | end(self) -> frame_mem_t | | erase(self, *args) -> 'qvector< frame_mem_t >::iterator' | erase(self, it) -> frame_mem_t + | + | @param it: qvector< frame_mem_t >::iterator + | | erase(self, first, last) -> frame_mem_t + | + | @param first: qvector< frame_mem_t >::iterator + | @param last: qvector< frame_mem_t >::iterator | | extract(self, *args) -> 'frame_mem_t *' | extract(self) -> frame_mem_t @@ -52779,18 +67143,29 @@ class frame_mems_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=frame_mem_t()) + | + | @param x: frame_mem_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: frame_mem_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< frame_mem_t >::iterator' | insert(self, it, x) -> frame_mem_t + | + | @param it: qvector< frame_mem_t >::iterator + | @param x: frame_mem_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'frame_mem_t &' | push_back(self, x) + | + | @param x: frame_mem_t const & + | | push_back(self) -> frame_mem_t | | qclear(self, *args) -> 'void' @@ -52798,16 +67173,26 @@ class frame_mems_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: frame_mem_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< frame_mem_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52837,7 +67222,9 @@ class func_info_and_frequency_t(func_info_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_and_frequency_t + | __init__(self, __frequency=0) -> func_info_and_frequency_t + | + | @param __frequency: uint32 | | __repr__ = _swig_repr(self) | @@ -52848,7 +67235,7 @@ class func_info_and_frequency_t(func_info_t) | Data descriptors defined here: | | frequency - | func_info_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | thisown | The membership flag @@ -52863,13 +67250,13 @@ class func_info_and_frequency_t(func_info_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_and_frequency_vec_t in module ida_lumina: @@ -52880,10 +67267,14 @@ class func_info_and_frequency_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_and_frequency_t const &' | __getitem__(self, i) -> func_info_and_frequency_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_frequency_vec_t | __init__(self, x) -> func_info_and_frequency_vec_t + | + | @param x: qvector< func_info_and_frequency_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52895,19 +67286,23 @@ class func_info_and_frequency_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_and_frequency_t const & | | __swig_destroy__ = delete_func_info_and_frequency_vec_t(...) | delete_func_info_and_frequency_vec_t(self) | | at(self, *args) -> 'func_info_and_frequency_t const &' | at(self, _idx) -> func_info_and_frequency_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_and_frequency_t >::const_iterator' | begin(self) -> func_info_and_frequency_t - | begin(self) -> func_info_and_frequency_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52920,11 +67315,16 @@ class func_info_and_frequency_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_and_frequency_t >::const_iterator' | end(self) -> func_info_and_frequency_t - | end(self) -> func_info_and_frequency_t | | erase(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' | erase(self, it) -> func_info_and_frequency_t + | + | @param it: qvector< func_info_and_frequency_t >::iterator + | | erase(self, first, last) -> func_info_and_frequency_t + | + | @param first: qvector< func_info_and_frequency_t >::iterator + | @param last: qvector< func_info_and_frequency_t >::iterator | | extract(self, *args) -> 'func_info_and_frequency_t *' | extract(self) -> func_info_and_frequency_t @@ -52934,18 +67334,29 @@ class func_info_and_frequency_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_and_frequency_t()) + | + | @param x: func_info_and_frequency_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: func_info_and_frequency_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' | insert(self, it, x) -> func_info_and_frequency_t + | + | @param it: qvector< func_info_and_frequency_t >::iterator + | @param x: func_info_and_frequency_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_and_frequency_t &' | push_back(self, x) + | + | @param x: func_info_and_frequency_t const & + | | push_back(self) -> func_info_and_frequency_t | | qclear(self, *args) -> 'void' @@ -52953,16 +67364,26 @@ class func_info_and_frequency_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_and_frequency_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< func_info_and_frequency_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52992,7 +67413,9 @@ class func_info_and_pattern_t(func_info_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_and_pattern_t + | __init__(self, __pattern_id=pattern_id_t()) -> func_info_and_pattern_t + | + | @param __pattern_id: pattern_id_t | | __repr__ = _swig_repr(self) | @@ -53003,7 +67426,7 @@ class func_info_and_pattern_t(func_info_t) | Data descriptors defined here: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | thisown | The membership flag @@ -53018,13 +67441,13 @@ class func_info_and_pattern_t(func_info_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_and_pattern_vec_t in module ida_lumina: @@ -53035,10 +67458,14 @@ class func_info_and_pattern_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_and_pattern_t const &' | __getitem__(self, i) -> func_info_and_pattern_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_pattern_vec_t | __init__(self, x) -> func_info_and_pattern_vec_t + | + | @param x: qvector< func_info_and_pattern_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53050,19 +67477,23 @@ class func_info_and_pattern_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_and_pattern_t const & | | __swig_destroy__ = delete_func_info_and_pattern_vec_t(...) | delete_func_info_and_pattern_vec_t(self) | | at(self, *args) -> 'func_info_and_pattern_t const &' | at(self, _idx) -> func_info_and_pattern_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_and_pattern_t >::const_iterator' | begin(self) -> func_info_and_pattern_t - | begin(self) -> func_info_and_pattern_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -53075,11 +67506,16 @@ class func_info_and_pattern_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_and_pattern_t >::const_iterator' | end(self) -> func_info_and_pattern_t - | end(self) -> func_info_and_pattern_t | | erase(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' | erase(self, it) -> func_info_and_pattern_t + | + | @param it: qvector< func_info_and_pattern_t >::iterator + | | erase(self, first, last) -> func_info_and_pattern_t + | + | @param first: qvector< func_info_and_pattern_t >::iterator + | @param last: qvector< func_info_and_pattern_t >::iterator | | extract(self, *args) -> 'func_info_and_pattern_t *' | extract(self) -> func_info_and_pattern_t @@ -53089,18 +67525,29 @@ class func_info_and_pattern_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_and_pattern_t()) + | + | @param x: func_info_and_pattern_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: func_info_and_pattern_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' | insert(self, it, x) -> func_info_and_pattern_t + | + | @param it: qvector< func_info_and_pattern_t >::iterator + | @param x: func_info_and_pattern_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_and_pattern_t &' | push_back(self, x) + | + | @param x: func_info_and_pattern_t const & + | | push_back(self) -> func_info_and_pattern_t | | qclear(self, *args) -> 'void' @@ -53108,16 +67555,26 @@ class func_info_and_pattern_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_and_pattern_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< func_info_and_pattern_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53142,7 +67599,10 @@ class func_info_base_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_base_t + | __init__(self, __name=None, __metadata=metadata_t()) -> func_info_base_t + | + | @param __name: char const * + | @param __metadata: metadata_t | | __repr__ = _swig_repr(self) | @@ -53159,10 +67619,10 @@ class func_info_base_t(builtins.object) | list of weak references to the object (if defined) | | metadata - | func_info_base_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_base_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -53181,7 +67641,9 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_pattern_and_frequency_t + | __init__(self, __frequency=0) -> func_info_pattern_and_frequency_t + | + | @param __frequency: uint32 | | __repr__ = _swig_repr(self) | @@ -53192,7 +67654,7 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Data descriptors defined here: | | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | thisown | The membership flag @@ -53201,7 +67663,7 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | Data descriptors inherited from func_info_and_pattern_t: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_t: @@ -53213,13 +67675,13 @@ class func_info_pattern_and_frequency_t(func_info_and_pattern_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class func_info_pattern_and_frequency_vec_t in module ida_lumina: @@ -53230,10 +67692,14 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_pattern_and_frequency_t const &' | __getitem__(self, i) -> func_info_pattern_and_frequency_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_pattern_and_frequency_vec_t | __init__(self, x) -> func_info_pattern_and_frequency_vec_t + | + | @param x: qvector< func_info_pattern_and_frequency_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53245,19 +67711,23 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_pattern_and_frequency_t const & | | __swig_destroy__ = delete_func_info_pattern_and_frequency_vec_t(...) | delete_func_info_pattern_and_frequency_vec_t(self) | | at(self, *args) -> 'func_info_pattern_and_frequency_t const &' | at(self, _idx) -> func_info_pattern_and_frequency_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::const_iterator' | begin(self) -> func_info_pattern_and_frequency_t - | begin(self) -> func_info_pattern_and_frequency_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -53270,11 +67740,16 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::const_iterator' | end(self) -> func_info_pattern_and_frequency_t - | end(self) -> func_info_pattern_and_frequency_t | | erase(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' | erase(self, it) -> func_info_pattern_and_frequency_t + | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator + | | erase(self, first, last) -> func_info_pattern_and_frequency_t + | + | @param first: qvector< func_info_pattern_and_frequency_t >::iterator + | @param last: qvector< func_info_pattern_and_frequency_t >::iterator | | extract(self, *args) -> 'func_info_pattern_and_frequency_t *' | extract(self) -> func_info_pattern_and_frequency_t @@ -53284,18 +67759,29 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_pattern_and_frequency_t()) + | + | @param x: func_info_pattern_and_frequency_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: func_info_pattern_and_frequency_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' | insert(self, it, x) -> func_info_pattern_and_frequency_t + | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator + | @param x: func_info_pattern_and_frequency_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_pattern_and_frequency_t &' | push_back(self, x) + | + | @param x: func_info_pattern_and_frequency_t const & + | | push_back(self) -> func_info_pattern_and_frequency_t | | qclear(self, *args) -> 'void' @@ -53303,16 +67789,26 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_pattern_and_frequency_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< func_info_pattern_and_frequency_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53337,7 +67833,11 @@ class func_info_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> func_info_t + | __init__(self, __name=None, __size=0, __metadata=metadata_t()) -> func_info_t + | + | @param __name: char const * + | @param __size: uint32 + | @param __metadata: metadata_t | | __repr__ = _swig_repr(self) | @@ -53354,13 +67854,13 @@ class func_info_t(builtins.object) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size | | thisown | The membership flag @@ -53374,10 +67874,14 @@ class func_info_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_t const &' | __getitem__(self, i) -> func_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> func_info_vec_t | __init__(self, x) -> func_info_vec_t + | + | @param x: qvector< func_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53389,19 +67893,23 @@ class func_info_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_t const & | | __swig_destroy__ = delete_func_info_vec_t(...) | delete_func_info_vec_t(self) | | at(self, *args) -> 'func_info_t const &' | at(self, _idx) -> func_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< func_info_t >::const_iterator' | begin(self) -> func_info_t - | begin(self) -> func_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -53414,11 +67922,16 @@ class func_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< func_info_t >::const_iterator' | end(self) -> func_info_t - | end(self) -> func_info_t | | erase(self, *args) -> 'qvector< func_info_t >::iterator' | erase(self, it) -> func_info_t + | + | @param it: qvector< func_info_t >::iterator + | | erase(self, first, last) -> func_info_t + | + | @param first: qvector< func_info_t >::iterator + | @param last: qvector< func_info_t >::iterator | | extract(self, *args) -> 'func_info_t *' | extract(self) -> func_info_t @@ -53428,18 +67941,29 @@ class func_info_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_t()) + | + | @param x: func_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: func_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< func_info_t >::iterator' | insert(self, it, x) -> func_info_t + | + | @param it: qvector< func_info_t >::iterator + | @param x: func_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_t &' | push_back(self, x) + | + | @param x: func_info_t const & + | | push_back(self) -> func_info_t | | qclear(self, *args) -> 'void' @@ -53447,16 +67971,26 @@ class func_info_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< func_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53484,6 +68018,8 @@ class func_md_diff_handler_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_md_diff_handler_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -53492,30 +68028,69 @@ class func_md_diff_handler_t(builtins.object) | | on_comment_changed(self, *args) -> 'void' | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53533,52 +68108,27 @@ Help on function get_lumina_rpc_packet_t_index_from_base in module ida_lumina: get_lumina_rpc_packet_t_index_from_base(*args) -> 'uchar' get_lumina_rpc_packet_t_index_from_base(code) -> uchar + + @param code: enum lumina_rpc_packet_t Help on function get_server_connection in module ida_lumina: get_server_connection(*args) -> 'lumina_client_t *' get_server_connection() -> lumina_client_t +Help on function get_server_connection2 in module ida_lumina: + +get_server_connection2(*args) -> 'lumina_client_t *' + get_server_connection2(flags) -> lumina_client_t + + @param flags: int + Help on function has_backup_metadata in module ida_lumina: has_backup_metadata(*args) -> 'bool' has_backup_metadata(ea) -> bool - -Help on class history_entries_helper_t in module ida_lumina: - -class history_entries_helper_t(builtins.object) - | Proxy of C++ history_entries_helper_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _r) -> history_entries_helper_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_history_entries_helper_t(...) - | delete_history_entries_helper_t(self) - | - | next_entry(self, *args) -> 'change_desc_base_t const &' - | next_entry(self, _from) -> change_desc_base_t const & - | - | next_entry_index(self, *args) -> 'bool' - | next_entry_index(self, out_index, _from) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | res - | history_entries_helper_t_res_get(self) -> pkt_show_entries_result_t const & - | - | thisown - | The membership flag + + @param ea: ea_t Help on class input_file_t in module ida_lumina: @@ -53588,7 +68138,10 @@ class input_file_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> input_file_t + | __init__(self, __path=None, __md5=md5_t()) -> input_file_t + | + | @param __path: char const * + | @param __md5: md5_t | | __repr__ = _swig_repr(self) | @@ -53605,10 +68158,10 @@ class input_file_t(builtins.object) | list of weak references to the object (if defined) | | md5 - | input_file_t_md5_get(self) -> md5_t * + | md5 | | path - | input_file_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -53637,7 +68190,7 @@ class insn_cmt_t(insn_site_t) | Data descriptors defined here: | | cmt - | insn_cmt_t_cmt_get(self) -> qstring * + | cmt | | thisown | The membership flag @@ -53647,6 +68200,8 @@ class insn_cmt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -53658,10 +68213,10 @@ class insn_cmt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class insn_cmts_t in module ida_lumina: @@ -53672,10 +68227,14 @@ class insn_cmts_t(builtins.object) | | __getitem__(self, *args) -> 'insn_cmt_t const &' | __getitem__(self, i) -> insn_cmt_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> insn_cmts_t | __init__(self, x) -> insn_cmts_t + | + | @param x: qvector< insn_cmt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53687,19 +68246,23 @@ class insn_cmts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: insn_cmt_t const & | | __swig_destroy__ = delete_insn_cmts_t(...) | delete_insn_cmts_t(self) | | at(self, *args) -> 'insn_cmt_t const &' | at(self, _idx) -> insn_cmt_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< insn_cmt_t >::const_iterator' | begin(self) -> insn_cmt_t - | begin(self) -> insn_cmt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -53712,11 +68275,16 @@ class insn_cmts_t(builtins.object) | | end(self, *args) -> 'qvector< insn_cmt_t >::const_iterator' | end(self) -> insn_cmt_t - | end(self) -> insn_cmt_t | | erase(self, *args) -> 'qvector< insn_cmt_t >::iterator' | erase(self, it) -> insn_cmt_t + | + | @param it: qvector< insn_cmt_t >::iterator + | | erase(self, first, last) -> insn_cmt_t + | + | @param first: qvector< insn_cmt_t >::iterator + | @param last: qvector< insn_cmt_t >::iterator | | extract(self, *args) -> 'insn_cmt_t *' | extract(self) -> insn_cmt_t @@ -53726,18 +68294,29 @@ class insn_cmts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=insn_cmt_t()) + | + | @param x: insn_cmt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: insn_cmt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< insn_cmt_t >::iterator' | insert(self, it, x) -> insn_cmt_t + | + | @param it: qvector< insn_cmt_t >::iterator + | @param x: insn_cmt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'insn_cmt_t &' | push_back(self, x) + | + | @param x: insn_cmt_t const & + | | push_back(self) -> insn_cmt_t | | qclear(self, *args) -> 'void' @@ -53745,16 +68324,26 @@ class insn_cmts_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: insn_cmt_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< insn_cmt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53795,13 +68384,13 @@ class insn_ops_repr_t(insn_site_t) | Data descriptors defined here: | | flags - | insn_ops_repr_t_flags_get(self) -> flags_t + | flags | | op0 - | insn_ops_repr_t_op0_get(self) -> opinfo_t + | op0 | | op1 - | insn_ops_repr_t_op1_get(self) -> opinfo_t + | op1 | | thisown | The membership flag @@ -53811,6 +68400,8 @@ class insn_ops_repr_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -53822,10 +68413,10 @@ class insn_ops_repr_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class insn_ops_reprs_t in module ida_lumina: @@ -53836,10 +68427,14 @@ class insn_ops_reprs_t(builtins.object) | | __getitem__(self, *args) -> 'insn_ops_repr_t const &' | __getitem__(self, i) -> insn_ops_repr_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> insn_ops_reprs_t | __init__(self, x) -> insn_ops_reprs_t + | + | @param x: qvector< insn_ops_repr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53851,19 +68446,23 @@ class insn_ops_reprs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: insn_ops_repr_t const & | | __swig_destroy__ = delete_insn_ops_reprs_t(...) | delete_insn_ops_reprs_t(self) | | at(self, *args) -> 'insn_ops_repr_t const &' | at(self, _idx) -> insn_ops_repr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< insn_ops_repr_t >::const_iterator' | begin(self) -> insn_ops_repr_t - | begin(self) -> insn_ops_repr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -53876,11 +68475,16 @@ class insn_ops_reprs_t(builtins.object) | | end(self, *args) -> 'qvector< insn_ops_repr_t >::const_iterator' | end(self) -> insn_ops_repr_t - | end(self) -> insn_ops_repr_t | | erase(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' | erase(self, it) -> insn_ops_repr_t + | + | @param it: qvector< insn_ops_repr_t >::iterator + | | erase(self, first, last) -> insn_ops_repr_t + | + | @param first: qvector< insn_ops_repr_t >::iterator + | @param last: qvector< insn_ops_repr_t >::iterator | | extract(self, *args) -> 'insn_ops_repr_t *' | extract(self) -> insn_ops_repr_t @@ -53890,18 +68494,29 @@ class insn_ops_reprs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=insn_ops_repr_t()) + | + | @param x: insn_ops_repr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: insn_ops_repr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' | insert(self, it, x) -> insn_ops_repr_t + | + | @param it: qvector< insn_ops_repr_t >::iterator + | @param x: insn_ops_repr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'insn_ops_repr_t &' | push_back(self, x) + | + | @param x: insn_ops_repr_t const & + | | push_back(self) -> insn_ops_repr_t | | qclear(self, *args) -> 'void' @@ -53909,16 +68524,26 @@ class insn_ops_reprs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: insn_ops_repr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< insn_ops_repr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53952,6 +68577,8 @@ class insn_site_t(builtins.object) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53963,10 +68590,10 @@ class insn_site_t(builtins.object) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off | | thisown | The membership flag @@ -53986,21 +68613,46 @@ class lumina_client_t(builtins.object) | __swig_destroy__ = delete_lumina_client_t(...) | delete_lumina_client_t(self) | + | del_history(self, *args) -> 'bool' + | del_history(self, funcs) -> bool + | + | @param funcs: eavec_t const & + | | get_pop(self, *args) -> 'pkt_get_pop_result_t *' | get_pop(self, nresults=10) -> pkt_get_pop_result_t + | + | @param nresults: uint32 | | is_pattern_id(self, *args) -> 'bool' | is_pattern_id(self, pid, md5) -> bool + | + | @param pid: pattern_id_t const & + | @param md5: md5_t const & | | pull_md(self, *args) -> 'pkt_pull_md_result_t *' | pull_md(self, pattern_ids, pull_md_flags=0) -> pkt_pull_md_result_t + | + | @param pattern_ids: pattern_ids_t & + | @param pull_md_flags: uint32 + | | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t + | + | @param funcs: eavec_t * + | @param pull_md_flags: uint32 | | push_md(self, *args) -> 'bool' | push_md(self, result, opts, append_metadata=None, flags=0) -> bool + | + | @param result: push_md_result_t * + | @param opts: push_md_opts_t const & + | @param append_metadata: metadata_appender_t * + | @param flags: uint32 | | set_pattern_id_md5(self, *args) -> 'void' | set_pattern_id_md5(self, out, md5) + | + | @param out: pattern_id_t * + | @param md5: md5_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54014,6 +68666,42 @@ class lumina_client_t(builtins.object) | thisown | The membership flag +Help on class lumina_info_t in module ida_lumina: + +class lumina_info_t(builtins.object) + | Proxy of C++ lumina_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __client=peer_conn_t(), __server=lumina_server_info_t()) -> lumina_info_t + | + | @param __client: peer_conn_t + | @param __server: lumina_server_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_info_t(...) + | delete_lumina_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | client + | client + | + | server + | server + | + | thisown + | The membership flag + Help on class lumina_op_res_vec_t in module ida_lumina: class lumina_op_res_vec_t(builtins.object) @@ -54023,13 +68711,19 @@ class lumina_op_res_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lumina_op_res_t > const & | | __getitem__(self, *args) -> 'lumina_op_res_t const &' | __getitem__(self, i) -> lumina_op_res_t const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lumina_op_res_vec_t | __init__(self, x) -> lumina_op_res_vec_t + | + | @param x: qvector< lumina_op_res_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -54039,23 +68733,36 @@ class lumina_op_res_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lumina_op_res_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lumina_op_res_t const & | | __swig_destroy__ = delete_lumina_op_res_vec_t(...) | delete_lumina_op_res_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lumina_op_res_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lumina_op_res_t const & | | at(self, *args) -> 'lumina_op_res_t const &' | at(self, _idx) -> lumina_op_res_t const & + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -54079,35 +68786,59 @@ class lumina_op_res_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< lumina_op_res_t >::iterator' | erase(self, it) -> qvector< lumina_op_res_t >::iterator + | + | @param it: qvector< lumina_op_res_t >::iterator + | | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator + | + | @param first: qvector< lumina_op_res_t >::iterator + | @param last: qvector< lumina_op_res_t >::iterator | | extract(self, *args) -> 'lumina_op_res_t *' | extract(self) -> lumina_op_res_t * | | find(self, *args) -> 'qvector< lumina_op_res_t >::const_iterator' | find(self, x) -> qvector< lumina_op_res_t >::iterator + | + | @param x: lumina_op_res_t const & + | | find(self, x) -> qvector< lumina_op_res_t >::const_iterator + | + | @param x: lumina_op_res_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lumina_op_res_t()) + | + | @param x: lumina_op_res_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lumina_op_res_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lumina_op_res_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lumina_op_res_t >::iterator' | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator + | + | @param it: qvector< lumina_op_res_t >::iterator + | @param x: lumina_op_res_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lumina_op_res_t &' | push_back(self, x) + | + | @param x: lumina_op_res_t const & + | | push_back(self) -> lumina_op_res_t & | | qclear(self, *args) -> 'void' @@ -54115,16 +68846,26 @@ class lumina_op_res_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lumina_op_res_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lumina_op_res_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -54146,6 +68887,114 @@ class lumina_op_res_vec_t(builtins.object) | | __hash__ = None +Help on class lumina_server_info_t in module ida_lumina: + +class lumina_server_info_t(builtins.object) + | Proxy of C++ lumina_server_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __macaddr=None, __verstr=None, __start_time=0, __current_time=0) -> lumina_server_info_t + | + | @param __macaddr: char const * + | @param __verstr: char const * + | @param __start_time: utc_timestamp_t + | @param __current_time: utc_timestamp_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_server_info_t(...) + | delete_lumina_server_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | current_time + | current_time + | + | macaddr + | macaddr + | + | start_time + | start_time + | + | thisown + | The membership flag + | + | verstr + | verstr + +Help on class lumina_user_t in module ida_lumina: + +class lumina_user_t(builtins.object) + | Proxy of C++ lumina_user_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __license_info=user_license_info_t(), __name=None, __karma=0, __last_active=0, __features=0) -> lumina_user_t + | + | @param __license_info: user_license_info_t + | @param __name: char const * + | @param __karma: int + | @param __last_active: utc_timestamp_t + | @param __features: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_user_t(...) + | delete_lumina_user_t(self) + | + | can_del_history(self, *args) -> 'bool' + | can_del_history(self) -> bool + | + | is_admin(self, *args) -> 'bool' + | is_admin(self) -> bool + | + | set_can_del_history(self, *args) -> 'void' + | set_can_del_history(self, v=True) + | + | @param v: bool + | + | set_is_admin(self, *args) -> 'void' + | set_is_admin(self, v=True) + | + | @param v: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | features + | features + | + | karma + | karma + | + | last_active + | last_active + | + | license_info + | license_info + | + | name + | name + | + | thisown + | The membership flag + Help on class md_type_parts_t in module ida_lumina: class md_type_parts_t(builtins.object) @@ -54155,12 +69004,16 @@ class md_type_parts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: md_type_parts_t const & | | __init__(self, *args) | __init__(self) -> md_type_parts_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: md_type_parts_t const & | | __repr__ = _swig_repr(self) | @@ -54177,16 +69030,16 @@ class md_type_parts_t(builtins.object) | list of weak references to the object (if defined) | | fields - | md_type_parts_t_fields_get(self) -> qtype * + | fields | | thisown | The membership flag | | type - | md_type_parts_t_type_get(self) -> qtype * + | type | | userti - | md_type_parts_t_userti_get(self) -> bool + | userti | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -54202,6 +69055,8 @@ class metadata_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self, _md) -> metadata_iterator_t + | + | @param _md: metadata_t const & | | __repr__ = _swig_repr(self) | @@ -54224,13 +69079,13 @@ class metadata_iterator_t(builtins.object) | list of weak references to the object (if defined) | | data - | metadata_iterator_t_data_get(self) -> uchar const * + | data | | key - | metadata_iterator_t_key_get(self) -> mdkey_t + | key | | size - | metadata_iterator_t_size_get(self) -> size_t + | size | | thisown | The membership flag @@ -54239,6 +69094,11 @@ Help on function new_packet in module ida_lumina: new_packet(*args) -> 'rpc_packet_data_t *' new_packet(code, ptr=None, len=0, version=-1) -> rpc_packet_data_t * + + @param code: uchar + @param ptr: uchar const * + @param len: size_t + @param version: int Help on class oprepr_t in module ida_lumina: @@ -54265,10 +69125,10 @@ class oprepr_t(builtins.object) | list of weak references to the object (if defined) | | flags - | oprepr_t_flags_get(self) -> flags_t + | flags | | opinfo - | oprepr_t_opinfo_get(self) -> opinfo_t + | opinfo | | thisown | The membership flag @@ -54281,7 +69141,10 @@ class pattern_id_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pattern_id_t + | __init__(self, __type=PAT_TYPE_UNKNOWN, __data=bytevec_t()) -> pattern_id_t + | + | @param __type: enum pattern_type_t + | @param __data: bytevec_t | | __repr__ = _swig_repr(self) | @@ -54298,28 +69161,33 @@ class pattern_id_t(builtins.object) | list of weak references to the object (if defined) | | data - | pattern_id_t_data_get(self) -> bytevec_t * + | data | | thisown | The membership flag | | type - | pattern_id_t_type_get(self) -> pattern_type_t + | type -Help on class pkt_clean_db_t in module ida_lumina: +Help on class peer_conn_t in module ida_lumina: -class pkt_clean_db_t(builtins.object) - | Proxy of C++ pkt_clean_db_t class. +class peer_conn_t(builtins.object) + | Proxy of C++ peer_conn_t class. | | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pkt_clean_db_t + | __init__(self, __session_id=0, __peer_name=None, __user=lumina_user_t(), __established=0) -> peer_conn_t + | + | @param __session_id: uint32 + | @param __peer_name: char const * + | @param __user: lumina_user_t + | @param __established: utc_timestamp_t | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_pkt_clean_db_t(...) - | delete_pkt_clean_db_t(self) + | __swig_destroy__ = delete_peer_conn_t(...) + | delete_peer_conn_t(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54330,23 +69198,65 @@ class pkt_clean_db_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | established + | established + | + | peer_name + | peer_name + | + | session_id + | session_id + | + | thisown + | The membership flag + | + | user + | user + +Help on class pkt_get_lumina_info_result_t in module ida_lumina: + +class pkt_get_lumina_info_result_t(builtins.object) + | Proxy of C++ pkt_get_lumina_info_result_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_get_lumina_info_result_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_get_lumina_info_result_t(...) + | delete_pkt_get_lumina_info_result_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | info + | info + | | thisown | The membership flag -Help on class pkt_debugctl_t in module ida_lumina: +Help on class pkt_get_lumina_info_t in module ida_lumina: -class pkt_debugctl_t(builtins.object) - | Proxy of C++ pkt_debugctl_t class. +class pkt_get_lumina_info_t(builtins.object) + | Proxy of C++ pkt_get_lumina_info_t class. | | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pkt_debugctl_t + | __init__(self) -> pkt_get_lumina_info_t | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_pkt_debugctl_t(...) - | delete_pkt_debugctl_t(self) + | __swig_destroy__ = delete_pkt_get_lumina_info_t(...) + | delete_pkt_get_lumina_info_t(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54357,69 +69267,6 @@ class pkt_debugctl_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | - | args - | pkt_debugctl_t_args_get(self) -> qstrvec_t * - | - | thisown - | The membership flag - -Help on class pkt_dump_md_result_t in module ida_lumina: - -class pkt_dump_md_result_t(builtins.object) - | Proxy of C++ pkt_dump_md_result_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_dump_md_result_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_pkt_dump_md_result_t(...) - | delete_pkt_dump_md_result_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | contents - | pkt_dump_md_result_t_contents_get(self) -> func_info_pattern_and_frequency_vec_t - | - | thisown - | The membership flag - -Help on class pkt_dump_md_t in module ida_lumina: - -class pkt_dump_md_t(builtins.object) - | Proxy of C++ pkt_dump_md_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pkt_dump_md_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_pkt_dump_md_t(...) - | delete_pkt_dump_md_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | sort - | pkt_dump_md_t_sort_get(self) -> dump_md_sort_type_t - | | thisown | The membership flag @@ -54448,7 +69295,7 @@ class pkt_get_pop_result_t(builtins.object) | list of weak references to the object (if defined) | | results - | pkt_get_pop_result_t_results_get(self) -> pop_fun_vec_t * + | results | | thisown | The membership flag @@ -54478,7 +69325,7 @@ class pkt_get_pop_t(builtins.object) | list of weak references to the object (if defined) | | nresults - | pkt_get_pop_t_nresults_get(self) -> uint32 + | nresults | | thisown | The membership flag @@ -54508,19 +69355,25 @@ class pkt_helo_t(builtins.object) | list of weak references to the object (if defined) | | client_version - | pkt_helo_t_client_version_get(self) -> int + | client_version | | key - | pkt_helo_t_key_get(self) -> bytevec_t * + | key | | license_id - | pkt_helo_t_license_id_get(self) -> uchar [6] + | license_id + | + | password + | password | | record_conv - | pkt_helo_t_record_conv_get(self) -> bool + | record_conv | | thisown | The membership flag + | + | username + | username Help on class pkt_pull_md_result_t in module ida_lumina: @@ -54547,10 +69400,10 @@ class pkt_pull_md_result_t(builtins.object) | list of weak references to the object (if defined) | | codes - | pkt_pull_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | results - | pkt_pull_md_result_t_results_get(self) -> func_info_and_frequency_vec_t + | results | | thisown | The membership flag @@ -54580,13 +69433,13 @@ class pkt_pull_md_t(builtins.object) | list of weak references to the object (if defined) | | flags - | pkt_pull_md_t_flags_get(self) -> uint32 + | flags | | keys - | pkt_pull_md_t_keys_get(self) -> mdkey_vec_t * + | keys | | pattern_ids - | pkt_pull_md_t_pattern_ids_get(self) -> pattern_ids_t * + | pattern_ids | | thisown | The membership flag @@ -54616,7 +69469,7 @@ class pkt_push_md_result_t(builtins.object) | list of weak references to the object (if defined) | | codes - | pkt_push_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | thisown | The membership flag @@ -54646,22 +69499,22 @@ class pkt_push_md_t(builtins.object) | list of weak references to the object (if defined) | | contents - | pkt_push_md_t_contents_get(self) -> func_info_and_pattern_vec_t + | contents | | ea64s - | pkt_push_md_t_ea64s_get(self) -> ea64vec_t * + | ea64s | | flags - | pkt_push_md_t_flags_get(self) -> uint32 + | flags | | hostname - | pkt_push_md_t_hostname_get(self) -> qstring * + | hostname | | idb - | pkt_push_md_t_idb_get(self) -> qstring * + | idb | | input - | pkt_push_md_t_input_get(self) -> input_file_t + | input | | thisown | The membership flag @@ -54691,10 +69544,10 @@ class pkt_rpc_fail_t(builtins.object) | list of weak references to the object (if defined) | | error - | pkt_rpc_fail_t_error_get(self) -> qstring * + | error | | result - | pkt_rpc_fail_t_result_get(self) -> int + | result | | thisown | The membership flag @@ -54724,13 +69577,13 @@ class pkt_rpc_notify_t(builtins.object) | list of weak references to the object (if defined) | | text - | pkt_rpc_notify_t_text_get(self) -> qstring * + | text | | thisown | The membership flag | | type - | pkt_rpc_notify_t_type_get(self) -> rpc_notification_type_t + | type Help on class pkt_rpc_ok_t in module ida_lumina: @@ -54774,7 +69627,11 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> pop_fun_t + | __init__(self, __hostname=None, __input=input_file_t(), __ea64=ea64_t(-1)) -> pop_fun_t + | + | @param __hostname: char const * + | @param __input: input_file_t + | @param __ea64: ea64_t | | __repr__ = _swig_repr(self) | @@ -54785,13 +69642,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Data descriptors defined here: | | ea64 - | pop_fun_t_ea64_get(self) -> ea64_t + | ea64 | | hostname - | pop_fun_t_hostname_get(self) -> qstring * + | hostname | | input - | pop_fun_t_input_get(self) -> input_file_t + | input | | thisown | The membership flag @@ -54800,13 +69657,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | Data descriptors inherited from func_info_pattern_and_frequency_t: | | frequency - | func_info_pattern_and_frequency_t_frequency_get(self) -> uint32 + | frequency | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_and_pattern_t: | | pattern_id - | func_info_and_pattern_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | ---------------------------------------------------------------------- | Data descriptors inherited from func_info_t: @@ -54818,13 +69675,13 @@ class pop_fun_t(func_info_pattern_and_frequency_t) | list of weak references to the object (if defined) | | metadata - | func_info_t_metadata_get(self) -> metadata_t * + | metadata | | name - | func_info_t_name_get(self) -> qstring * + | name | | size - | func_info_t_size_get(self) -> uint32 + | size Help on class push_md_opts_t in module ida_lumina: @@ -54835,6 +69692,8 @@ class push_md_opts_t(builtins.object) | | __init__(self, *args) | __init__(self, mfs=size_t(-1)) -> push_md_opts_t + | + | @param mfs: size_t | | __repr__ = _swig_repr(self) | @@ -54851,10 +69710,10 @@ class push_md_opts_t(builtins.object) | list of weak references to the object (if defined) | | eas - | push_md_opts_t_eas_get(self) -> eavec_t * + | eas | | min_func_size - | push_md_opts_t_min_func_size_get(self) -> size_t + | min_func_size | | thisown | The membership flag @@ -54884,13 +69743,13 @@ class push_md_result_t(builtins.object) | list of weak references to the object (if defined) | | codes - | push_md_result_t_codes_get(self) -> lumina_op_res_vec_t + | codes | | contents - | push_md_result_t_contents_get(self) -> func_info_and_pattern_vec_t + | contents | | eas - | push_md_result_t_eas_get(self) -> eavec_t * + | eas | | thisown | The membership flag @@ -54899,11 +69758,15 @@ Help on function revert_metadata in module ida_lumina: revert_metadata(*args) -> 'bool' revert_metadata(ea) -> bool + + @param ea: ea_t Help on function score_metadata in module ida_lumina: score_metadata(*args) -> 'uint32' score_metadata(fi) -> uint32 + + @param fi: func_info_t const & Help on class serialized_tinfo in module ida_lumina: @@ -54913,7 +69776,10 @@ class serialized_tinfo(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> serialized_tinfo + | __init__(self, __type=None, __fields=None) -> serialized_tinfo + | + | @param __type: type_t const * + | @param __fields: type_t const * | | __repr__ = _swig_repr(self) | @@ -54930,13 +69796,13 @@ class serialized_tinfo(builtins.object) | list of weak references to the object (if defined) | | fields - | serialized_tinfo_fields_get(self) -> qtype * + | fields | | thisown | The membership flag | | type - | serialized_tinfo_type_get(self) -> qtype * + | type Help on class simple_diff_handler_t in module ida_lumina: @@ -54952,6 +69818,8 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | __init__(self, *args, **kwargs) | __init__(self) -> func_md_diff_handler_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -54960,39 +69828,78 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | on_comment_changed(self, *args) -> 'void' | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | indent - | simple_diff_handler_t_indent_get(self) -> uint32 + | indent | | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * + | lines | | thisown | The membership flag @@ -55026,6 +69933,8 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | __init__(self, *args, **kwargs) | __init__(self) -> func_md_diff_handler_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -55036,10 +69945,10 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | Data descriptors defined here: | | header_generated - | simple_idb_diff_handler_t_header_generated_get(self) -> bool + | header_generated | | pfn - | simple_idb_diff_handler_t_pfn_get(self) -> func_t const * + | pfn | | thisown | The membership flag @@ -55049,39 +69958,78 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | on_comment_changed(self, *args) -> 'void' | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) + | + | @param l: qstring const * + | @param r: qstring const * | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) + | + | @param l: uint32 + | @param r: uint32 | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * | | ---------------------------------------------------------------------- | Data descriptors inherited from simple_diff_handler_t: | | indent - | simple_diff_handler_t_indent_get(self) -> uint32 + | indent | | lines - | simple_diff_handler_t_lines_get(self) -> qstrvec_t * + | lines | | ---------------------------------------------------------------------- | Methods inherited from func_md_diff_handler_t: @@ -55105,7 +70053,10 @@ class skipped_func_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> skipped_func_t + | __init__(self, __pattern_id=pattern_id_t(), __count=0) -> skipped_func_t + | + | @param __pattern_id: pattern_id_t + | @param __count: uint32 | | __repr__ = _swig_repr(self) | @@ -55122,10 +70073,10 @@ class skipped_func_t(builtins.object) | list of weak references to the object (if defined) | | count - | skipped_func_t_count_get(self) -> uint32 + | count | | pattern_id - | skipped_func_t_pattern_id_get(self) -> pattern_id_t + | pattern_id | | thisown | The membership flag @@ -55139,10 +70090,14 @@ class skipped_funcs_t(builtins.object) | | __getitem__(self, *args) -> 'skipped_func_t const &' | __getitem__(self, i) -> skipped_func_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> skipped_funcs_t | __init__(self, x) -> skipped_funcs_t + | + | @param x: qvector< skipped_func_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -55154,19 +70109,23 @@ class skipped_funcs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: skipped_func_t const & | | __swig_destroy__ = delete_skipped_funcs_t(...) | delete_skipped_funcs_t(self) | | at(self, *args) -> 'skipped_func_t const &' | at(self, _idx) -> skipped_func_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< skipped_func_t >::const_iterator' | begin(self) -> skipped_func_t - | begin(self) -> skipped_func_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -55179,11 +70138,16 @@ class skipped_funcs_t(builtins.object) | | end(self, *args) -> 'qvector< skipped_func_t >::const_iterator' | end(self) -> skipped_func_t - | end(self) -> skipped_func_t | | erase(self, *args) -> 'qvector< skipped_func_t >::iterator' | erase(self, it) -> skipped_func_t + | + | @param it: qvector< skipped_func_t >::iterator + | | erase(self, first, last) -> skipped_func_t + | + | @param first: qvector< skipped_func_t >::iterator + | @param last: qvector< skipped_func_t >::iterator | | extract(self, *args) -> 'skipped_func_t *' | extract(self) -> skipped_func_t @@ -55193,18 +70157,29 @@ class skipped_funcs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=skipped_func_t()) + | + | @param x: skipped_func_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: skipped_func_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< skipped_func_t >::iterator' | insert(self, it, x) -> skipped_func_t + | + | @param it: qvector< skipped_func_t >::iterator + | @param x: skipped_func_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'skipped_func_t &' | push_back(self, x) + | + | @param x: skipped_func_t const & + | | push_back(self) -> skipped_func_t | | qclear(self, *args) -> 'void' @@ -55212,16 +70187,26 @@ class skipped_funcs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: skipped_func_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< skipped_func_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -55241,22 +70226,28 @@ class skipped_funcs_t(builtins.object) Help on function split_metadata in module ida_lumina: split_metadata(*args) -> 'PyObject *' - split_metadata(md) -> PyObject * + split_metadata(md) -> dict + + @param md: metadata_t const & -Help on class user_identification_t in module ida_lumina: +Help on class user_license_info_t in module ida_lumina: -class user_identification_t(builtins.object) - | Proxy of C++ user_identification_t class. +class user_license_info_t(builtins.object) + | Proxy of C++ user_license_info_t class. | | Methods defined here: | | __init__(self, *args) - | __init__(self) -> user_identification_t + | __init__(self, __id=None, __name=None, __email=None) -> user_license_info_t + | + | @param __id: char const * + | @param __name: char const * + | @param __email: char const * | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_user_identification_t(...) - | delete_user_identification_t(self) + | __swig_destroy__ = delete_user_license_info_t(...) + | delete_user_license_info_t(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55268,16 +70259,16 @@ class user_identification_t(builtins.object) | list of weak references to the object (if defined) | | email - | user_identification_t_email_get(self) -> qstring * + | email | - | license_id - | user_identification_t_license_id_get(self) -> qstring * + | id + | id + | + | name + | name | | thisown | The membership flag - | - | user_name - | user_identification_t_user_name_get(self) -> qstring * Help on class user_stkpnt_t in module ida_lumina: @@ -55303,7 +70294,7 @@ class user_stkpnt_t(insn_site_t) | Data descriptors defined here: | | delta - | user_stkpnt_t_delta_get(self) -> int64 + | delta | | thisown | The membership flag @@ -55313,6 +70304,8 @@ class user_stkpnt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -55324,10 +70317,10 @@ class user_stkpnt_t(insn_site_t) | list of weak references to the object (if defined) | | fchunk_nr - | insn_site_t_fchunk_nr_get(self) -> uint32 + | fchunk_nr | | fchunk_off - | insn_site_t_fchunk_off_get(self) -> uint32 + | fchunk_off Help on class user_stkpnts_t in module ida_lumina: @@ -55338,10 +70331,14 @@ class user_stkpnts_t(builtins.object) | | __getitem__(self, *args) -> 'user_stkpnt_t const &' | __getitem__(self, i) -> user_stkpnt_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> user_stkpnts_t | __init__(self, x) -> user_stkpnts_t + | + | @param x: qvector< user_stkpnt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -55353,19 +70350,23 @@ class user_stkpnts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: user_stkpnt_t const & | | __swig_destroy__ = delete_user_stkpnts_t(...) | delete_user_stkpnts_t(self) | | at(self, *args) -> 'user_stkpnt_t const &' | at(self, _idx) -> user_stkpnt_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< user_stkpnt_t >::const_iterator' | begin(self) -> user_stkpnt_t - | begin(self) -> user_stkpnt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -55378,11 +70379,16 @@ class user_stkpnts_t(builtins.object) | | end(self, *args) -> 'qvector< user_stkpnt_t >::const_iterator' | end(self) -> user_stkpnt_t - | end(self) -> user_stkpnt_t | | erase(self, *args) -> 'qvector< user_stkpnt_t >::iterator' | erase(self, it) -> user_stkpnt_t + | + | @param it: qvector< user_stkpnt_t >::iterator + | | erase(self, first, last) -> user_stkpnt_t + | + | @param first: qvector< user_stkpnt_t >::iterator + | @param last: qvector< user_stkpnt_t >::iterator | | extract(self, *args) -> 'user_stkpnt_t *' | extract(self) -> user_stkpnt_t @@ -55392,18 +70398,29 @@ class user_stkpnts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=user_stkpnt_t()) + | + | @param x: user_stkpnt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: user_stkpnt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< user_stkpnt_t >::iterator' | insert(self, it, x) -> user_stkpnt_t + | + | @param it: qvector< user_stkpnt_t >::iterator + | @param x: user_stkpnt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'user_stkpnt_t &' | push_back(self, x) + | + | @param x: user_stkpnt_t const & + | | push_back(self) -> user_stkpnt_t | | qclear(self, *args) -> 'void' @@ -55411,16 +70428,26 @@ class user_stkpnts_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: user_stkpnt_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< user_stkpnt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -55437,26 +70464,752 @@ class user_stkpnts_t(builtins.object) | thisown | The membership flag -=== ida_lumina EPYDOC INJECTIONS === -ida_lumina.AMDF_FORCE +Module "ida_merge"s docstring: +""" +Merge functionality. + +NOTE: this functionality is available in IDA Teams (not IDA Pro) + +There are 3 databases involved in merging: base_idb, local_db, and remote_idb. +* base_idb: the common base ancestor of 'local_db' and 'remote_db'. in the UI +this database is located in the middle. +* local_idb: local database that will contain the result of the merging. in the +UI this database is located on the left. +* remote_idb: remote database that will merge into local_idb. It may reside +locally on the current computer, despite its name. in the UI this database is +located on the right. base_idb and remote_idb are opened for reading only. +base_idb may be absent, in this case a 2-way merging is performed. + +Conflicts can be resolved automatically or interactively. The automatic +resolving scores the conflicting blocks and takes the better one. The +interactive resolving displays the full rendered contents side by side, and +expects the user to select the better side for each conflict. + +Since IDB files contain various kinds of information, there are many merging +phases. The entire list can be found in merge.cpp. Below are just some selected +examples: +* merge global database settings (inf and other global vars) +* merge segmentation and changes to the database bytes +* merge various lists: exports, imports, loaded tils, etc +* merge names, functions, function frames +* merge debugger settings, breakpoints +* merge struct/enum views +* merge local type libraries +* merge the disassembly items (i.e. the segment contents) this includes operand +types, code/data separation, etc +* merge plugin specific info like decompiler types, dwarf mappings, etc + +To unify UI elements of each merge phase, we use merger views: +* A view that consists of 2 or 3 panes: left (local_idb) and right (remote_idb). +The common base is in the middle, if present. +* Rendering of the panes depends on the phase, different phases show different +contents. +* The conflicts are highlighted by a colored background. Also, the detail pane +can be consulted for additional info. +* The user can select a conflict (or a bunch of conflicts) and say "use this +block". +* The user can browse the panes as he wishes. He will not be forced to handle +conflicts in any particular order. However, once he finishes working with a +merge handler and proceeds to the next one, he cannot go back. +* Scrolling the left pane will synchronously scroll the right pane and vice +versa. +* There are the navigation commands like "go to the prev/next conflict" +* The number of remaining conflicts to resolve is printed in the "Progress" +chooser. +* The user may manually modify local database inside the merger view. For that +he may use the regular hotkeys. However, editing the database may lead to new +conflicts, so we better restrict the available actions to some reasonable +minimum. Currently, this is not implemented. + +IDA works in a new "merge" mode during merging. In this mode most events are not +generated. We forbid them to reduce the risk that a rogue third-party plugin +that is not aware of the "merge" mode would spoil something. + +For example, normally renaming a function causes a cascade of events and may +lead to other database modifications. Some of them may be desired, some - not. +Since there are some undesired events, it is better to stop generating them. +However, some events are required to render the disassembly listing. For +example, ev_ana_insn, av_out_insn. This is why some events are still generated +in the "merge" mode. + +To let processor modules and plugins merge their data, we introduce a new event: +ev_create_merge_handlers. It is generated immediately after opening all three +idbs. The interested modules should react to this event by creating new merge +handlers, if they need them. + +While the kernel can create arbitrary merge handlers, modules can create only +the standard ones returned by: + +create_nodeval_merge_handler() create_nodeval_merge_handlers() +create_std_modmerge_handlers() + +We do not document merge_handler_t because once a merge handler is created, it +is used exclusively by the kernel. + +See mergemod.hpp for more information about the merge mode for modules.""" + +Help on function create_nodeval_merge_handler in module ida_merge: + +create_nodeval_merge_handler(*args) -> 'merge_handler_t *' + create_nodeval_merge_handler(mhp, label, nodename, tag, nds_flags, node_helper=None, skip_empty_nodes=True) -> merge_handler_t * + Create a merge handler for netnode scalar/string values + + @param mhp: (C++: const merge_handler_params_t &) merging parameters + @param label: (C++: const char *) handler short name (to be be appended to mhp.label) + @param nodename: (C++: const char *) netnode name + @param tag: (C++: uchar) a tag used to access values in the netnode + @param nds_flags: (C++: uint32) netnode value attributes (a combination of nds_flags_t) + @param node_helper: merge_node_helper_t * + @param skip_empty_nodes: (C++: bool) do not create handler in case of empty netnode + @return: diff source object (normally should be attahced to a merge handler) + +Help on function create_nodeval_merge_handlers in module ida_merge: + +create_nodeval_merge_handlers(*args) -> 'void' + create_nodeval_merge_handlers(out, mhp, nodename, valdesc, skip_empty_nodes=True) + Create a serie of merge handlers for netnode scalar/string values (call + create_nodeval_merge_handler() for each member of VALDESC) + + @param out: (C++: merge_handlers_t *) [out] created handlers will be placed here + @param mhp: (C++: const merge_handler_params_t &) merging parameters + @param nodename: (C++: const char *) netnode name + @param valdesc: (C++: const merge_node_info_t *) array of handler descriptions + @param skip_empty_nodes: (C++: bool) do not create handlers for empty netnodes + @return: diff source object (normally should be attahced to a merge handler) + +Help on function destroy_moddata_merge_handlers in module ida_merge: + +destroy_moddata_merge_handlers(*args) -> 'void' + destroy_moddata_merge_handlers(data_id) + + @param data_id: int + +Help on function get_ea_diffpos_name in module ida_merge: + +get_ea_diffpos_name(*args) -> 'qstring *' + get_ea_diffpos_name(ea) -> str + Get nice name for EA diffpos + + @param ea: (C++: ea_t) diffpos + @note + @see: get_nice_colored_name + +Help on function is_diff_merge_mode in module ida_merge: + +is_diff_merge_mode(*args) -> 'bool' + is_diff_merge_mode() -> bool + Return TRUE if IDA is running in diff mode (MERGE_POLICY_DIFF) + +Help on class item_block_locator_t in module ida_merge: + +class item_block_locator_t(builtins.object) + | Proxy of C++ merge_data_t::item_block_locator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> item_block_locator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_item_block_locator_t(...) + | delete_item_block_locator_t(self) + | + | get_block_head(self, *args) -> 'ea_t' + | get_block_head(self, md, idx, item_head) -> ea_t + | + | @param md: merge_data_t & + | @param idx: diff_source_idx_t + | @param item_head: ea_t + | + | setup_blocks(self, *args) -> 'bool' + | setup_blocks(self, md, _from, to, region) -> bool + | + | @param md: merge_data_t & + | @param from: diff_source_idx_t + | @param to: diff_source_idx_t + | @param region: diff_range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class merge_data_t in module ida_merge: + +class merge_data_t(builtins.object) + | Proxy of C++ merge_data_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | add_event_handler(self, *args) -> 'void' + | add_event_handler(self, handler) + | + | @param handler: merge_handler_t * + | + | base_id(self, *args) -> 'int' + | base_id(self) -> int + | + | compare_merging_tifs(self, *args) -> 'int' + | compare_merging_tifs(self, tif1, diffidx1, tif2, diffidx2) -> int + | compare types from two databases + | + | @param tif1: (C++: const tinfo_t &) type + | @param diffidx1: (C++: diff_source_idx_t) database index, diff_source_idx_t + | @param tif2: (C++: const tinfo_t &) type + | @param diffidx2: (C++: diff_source_idx_t) database index, diff_source_idx_t + | @return: -1, 0, 1 + | + | get_block_head(self, *args) -> 'ea_t' + | get_block_head(self, idx, item_head) -> ea_t + | + | @param idx: diff_source_idx_t + | @param item_head: ea_t + | + | has_existing_node(self, *args) -> 'bool' + | has_existing_node(self, nodename) -> bool + | check that node exists in any of databases + | + | @param nodename: (C++: const char *) char const * + | + | local_id(self, *args) -> 'int' + | local_id(self) -> int + | + | map_privrange_id(self, *args) -> 'bool' + | map_privrange_id(self, tid, ea, _from, to, strict=True) -> bool + | map IDs of structures, enumerations and their members + | + | @param tid: (C++: tid_t *) item ID in TO database + | @param ea: (C++: ea_t) item ID to find counterpart + | @param from: (C++: diff_source_idx_t) source database index, diff_source_idx_t + | @param to: (C++: diff_source_idx_t) destination database index, diff_source_idx_t + | @param strict: (C++: bool) raise interr if could not map + | @return: success + | + | map_tinfo(self, *args) -> 'bool' + | map_tinfo(self, tif, _from, to, strict=True) -> bool + | migrate type, replaces type references into FROM database to references into TO + | database + | + | @param tif: (C++: tinfo_t *) type to migrate, will be cleared in case of fail + | @param from: (C++: diff_source_idx_t) source database index, diff_source_idx_t + | @param to: (C++: diff_source_idx_t) destination database index, diff_source_idx_t + | @param strict: (C++: bool) raise interr if could not map + | @return: success + | + | remote_id(self, *args) -> 'int' + | remote_id(self) -> int + | + | remove_event_handler(self, *args) -> 'void' + | remove_event_handler(self, handler) + | + | @param handler: merge_handler_t * + | + | set_dbctx_ids(self, *args) -> 'void' + | set_dbctx_ids(self, local, remote, base) + | + | @param local: int + | @param remote: int + | @param base: int + | + | setup_blocks(self, *args) -> 'bool' + | setup_blocks(self, dst_idx, src_idx, region) -> bool + | + | @param dst_idx: diff_source_idx_t + | @param src_idx: diff_source_idx_t + | @param region: diff_range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dbctx_ids + | dbctx_ids + | + | ev_handlers + | ev_handlers + | + | item_block_locator + | item_block_locator + | + | last_udt_related_merger + | last_udt_related_merger + | + | nbases + | nbases + | + | thisown + | The membership flag + +Help on class merge_handler_params_t in module ida_merge: + +class merge_handler_params_t(builtins.object) + | Proxy of C++ merge_handler_params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _md, _label, _kind, _insert_after, _mh_flags) -> merge_handler_params_t + | + | @param _md: merge_data_t & + | @param _label: qstring const & + | @param _kind: enum merge_kind_t + | @param _insert_after: enum merge_kind_t + | @param _mh_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_merge_handler_params_t(...) + | delete_merge_handler_params_t(self) + | + | ui_complex_details(self, *args) -> 'bool' + | ui_complex_details(self, _mh_flags) -> bool + | Do not display the diffpos details in the chooser. For example, the + | MERGE_KIND_SCRIPTS handler puts the script body as the diffpos detail. It would + | not be great to show them as part of the chooser. + | + | @param _mh_flags: (C++: uint32) + | + | ui_complex_details(self) -> bool + | + | ui_complex_name(self, *args) -> 'bool' + | ui_complex_name(self, _mh_flags) -> bool + | It customary to create long diffpos names having many components that are + | separated by any 7-bit ASCII character (besides of '\0'). In this case it is + | possible to instruct IDA to use this separator to create a multi-column chooser. + | For example the MERGE_KIND_ENUMS handler has the following diffpos name: + | enum_1,enum_2 If MH_UI_COMMANAME is specified, IDA will create 2 columns for + | these names. + | + | @param _mh_flags: (C++: uint32) + | + | ui_complex_name(self) -> bool + | + | ui_dp_shortname(self, *args) -> 'bool' + | ui_dp_shortname(self, _mh_flags) -> bool + | The detail pane shows the diffpos details for the current diffpos range as a + | tree-like view. In this pane the diffpos names are used as tree node names and + | the diffpos details as their children. Sometimes, for complex diffpos names, the + | first part of the name looks better than the entire name. For example, the + | MERGE_KIND_SEGMENTS handler has the following diffpos name: + | <range>,<segm1>,<segm2>,<segm3> if MH_UI_DP_SHORTNAME is specified, IDA will use + | <range> as a tree node name + | + | @param _mh_flags: (C++: uint32) + | + | ui_dp_shortname(self) -> bool + | + | ui_has_details(self, *args) -> 'bool' + | ui_has_details(self, _mh_flags) -> bool + | Should IDA display the diffpos detail pane? + | + | @param _mh_flags: (C++: uint32) + | + | ui_has_details(self) -> bool + | + | ui_indent(self, *args) -> 'bool' + | ui_indent(self, _mh_flags) -> bool + | In the ordinary situation the spaces from the both sides of diffpos name are + | trimmed. Use this UI hint to preserve the leading spaces. + | + | @param _mh_flags: (C++: uint32) + | + | ui_indent(self) -> bool + | + | ui_linediff(self, *args) -> 'bool' + | ui_linediff(self, _mh_flags) -> bool + | In detail pane IDA shows difference between diffpos details. IDA marks added or + | deleted detail by color. In the modified detail the changes are marked. Use this + | UI hint if you do not want to show the differences inside detail. + | + | @param _mh_flags: (C++: uint32) + | + | ui_linediff(self) -> bool + | + | ui_split_char(self, *args) -> 'char' + | ui_split_char(self, _mh_flags) -> char + | + | @param _mh_flags: uint32 + | + | ui_split_char(self) -> char + | + | ui_split_str(self, *args) -> 'qstring' + | ui_split_str(self, _mh_flags) -> qstring + | + | @param _mh_flags: uint32 + | + | ui_split_str(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | insert_after + | insert_after + | + | kind + | kind + | + | label + | label + | + | md + | md + | + | mh_flags + | mh_flags + | + | thisown + | The membership flag + +Help on class merge_node_helper_t in module ida_merge: + +class merge_node_helper_t(builtins.object) + | Proxy of C++ merge_node_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> merge_node_helper_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_merge_node_helper_t(...) + | delete_merge_node_helper_t(self) + | + | get_column_headers(self, *args) -> 'void' + | get_column_headers(self, arg0, arg1, arg2) + | get column headers for chooser (to be used in + | linear_diff_source_t::get_column_headers) + | + | @param arg0: qstrvec_t * + | @param arg1: uchar + | @param arg2: void * + | + | get_netnode(self, *args) -> 'netnode' + | get_netnode(self) -> netnode + | return netnode to be used as source. If this function returns BADNODE netnode + | will be created using netnode name passed to create_nodeval_diff_source + | + | is_mergeable(self, *args) -> 'bool' + | is_mergeable(self, arg0, arg1) -> bool + | + | @param filter: check if we should perform merging for given record + | @param arg1: nodeidx_t + | + | map_scalar(self, *args) -> 'void' + | map_scalar(self, arg0, arg1, arg2, arg3) + | map scalar/string/buffered value + | + | @param arg0: nodeidx_t * + | @param arg1: void * + | @param arg2: diff_source_idx_t + | @param arg3: diff_source_idx_t + | + | map_string(self, *args) -> 'void' + | map_string(self, arg0, arg1, arg2, arg3) + | + | @param arg0: qstring * + | @param arg1: void * + | @param arg2: diff_source_idx_t + | @param arg3: diff_source_idx_t + | + | print_entry_details(self, *args) -> 'void' + | print_entry_details(self, arg0, arg1, arg2, arg3) + | print the details of the specified entry usually contains multiple lines, one + | for each attribute or detail. (to be used in print_diffpos_details) + | + | @param arg0: qstrvec_t * + | @param arg1: uchar + | @param arg2: nodeidx_t + | @param arg3: void * + | + | print_entry_name(self, *args) -> 'qstring' + | print_entry_name(self, arg0, arg1, arg2) -> qstring + | print the name of the specified entry (to be used in print_diffpos_name) + | + | @param arg0: uchar + | @param arg1: nodeidx_t + | @param arg2: void * + | + | refresh(self, *args) -> 'void' + | refresh(self, arg0, arg1) + | notify helper that some data was changed in the database and internal structures + | (e.g. caches) should be refreshed + | + | @param arg0: uchar + | @param arg1: void * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | append_eavec(*args) -> 'void' + | append_eavec(s, prefix, eas) + | can be used by derived classes + | + | @param s: (C++: qstring *) + | @param prefix: (C++: const char *) char const * + | @param eas: (C++: const eavec_t &) eavec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function merge_node_helper_t_append_eavec in module ida_merge: + +merge_node_helper_t_append_eavec(*args) -> 'void' + merge_node_helper_t_append_eavec(s, prefix, eas) + + @param s: qstring * + @param prefix: char const * + @param eas: eavec_t const & + +Help on class merge_node_info_t in module ida_merge: + +class merge_node_info_t(builtins.object) + | Proxy of C++ merge_node_info2_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, name, tag, nds_flags, node_helper=None) -> merge_node_info_t + | + | @param name: char const * + | @param tag: uchar + | @param nds_flags: uint32 + | @param node_helper: merge_node_helper_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_merge_node_info_t(...) + | delete_merge_node_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | nds_flags + | nds_flags + | + | node_helper + | node_helper + | + | tag + | tag + | + | thisown + | The membership flag + +Help on class moddata_diff_helper_t in module ida_merge: + +class moddata_diff_helper_t(builtins.object) + | Proxy of C++ moddata_diff_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _module_name, _netnode_name, _fields) -> moddata_diff_helper_t + | + | @param _module_name: char const * + | @param _netnode_name: char const * + | @param _fields: idbattr_info_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_moddata_diff_helper_t(...) + | delete_moddata_diff_helper_t(self) + | + | get_struc_ptr(self, *args) -> 'void *' + | get_struc_ptr(self, arg0, arg1, arg2) -> void * + | + | @param arg0: merge_data_t & + | @param arg1: diff_source_idx_t + | @param arg2: idbattr_info_t const & + | + | merge_ending(self, *args) -> 'void' + | merge_ending(self, arg0, arg1) + | + | @param arg0: diff_source_idx_t + | @param arg1: void * + | + | merge_starting(self, *args) -> 'void' + | merge_starting(self, arg0, arg1) + | + | @param arg0: diff_source_idx_t + | @param arg1: void * + | + | print_diffpos_details(self, *args) -> 'void' + | print_diffpos_details(self, arg0, arg1) + | + | @param arg0: qstrvec_t * + | @param arg1: idbattr_info_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | additional_mh_flags + | additional_mh_flags + | + | fields + | fields + | + | module_name + | module_name + | + | netnode_name + | netnode_name + | + | nfields + | nfields + | + | thisown + | The membership flag + +Module "ida_mergemod"s docstring: +""" +Merge functionality for modules. + +NOTE: this functionality is available in IDA Teams (not IDA Pro) + +This file contains helper classes and convenience functions for module (plugin +or processor module) merging. + +Each module is responsible for merging the data it owns (the module data). At +the very beginning, the merging engine generates the ev_create_merge_handlers +event. Modules should hook to this event to create merge handlers (mergers) that +are responsible for the module data. + +We assume that each module may have: + +* its data structure, derived from plugmod_t or procmod_t. we call this +structure moddata. +* a dedicated netnode (module node), modnode for short. + +Moddata is registered with the IDA kernel using the set_module_data() function, +which returns an integer, moddata_id. moddata_id is used to access the module +data structure during merging, so it is mandatory for all modules that support +merging. + +The following sources of mergeable data are supported: + +1. Data fields inside moddata 2. Values (scalar or binary, including blobs) +stored in the module node 3. Values (scalar or binary, including blobs) stored +in arbitrary netnodes 4. Data fields inside an auxiliary structure (provided by +a special helper) 5. Indexed arrays of data stored in netnodes + +Usually the sources #1-4 are handled by a single merger, which can be +parameterized using the folowing information: + +* moddata_id +* module name +* module node name +* array of field descriptors (idbattr_info_t idpopts_info[], see ida.hpp) + +See plugins/mex1 for an example of such a merger. + +These parameters are stored in a helper class (moddata_diff_helper_t or +derived). The helper class can override the following virtual methods: + +merge_starting - prepare module data for merging (e.g. load data from idb) +merge_ending - opposite to merge_starting (e.g. save merged data to idb) +get_struc_ptr - get pointer to the auxiliary structure (to handle source #4); +this method will be called only if the fields with the IDI_HLPSTRUC bit are +present in the idpopts_info[] array + +For most plugins, the default implementation of moddata_diff_helper_t or the +std_moddata_diff_helper_t helper (presented below) is sufficient. You can find +examples of non-standard helpers in plugins/mex2 and plugins/callgraph. + +The source #5 is handled by a different set of mergers described by an array of +merge_node_info_t entries: a merger per entry. A non-trivial example can be +found in plugins/mex3 and plugins/ex_merge_ldrdata. + +A module can use the create_std_modmerge_handlers() function to create necessary +merge handlers. Please pay attention to the following arguments: + +helper - a helper class responsible for access to the internal module data for +the sources #1-4. It can be used to prepare a pointer to the internal module +structure and load/save data before/after merging (example: plugins/mex2). Im +most cases the default helper class moddata_diff_helper_t can be used. +merge_node_info - array of descriptions for the source #5. Note that the same +module node is used for all array elements. If you need this kind of mergers for +other netnodes, you should add them manually using the +create_nodeval_merge_handler() function (example: plugins/mex3) + +See also module/mergecmn.cpp for procmod-specific functions and macros. + +Glossary: + +modmerger = module merger moddata = module data moddata_id = module data id""" + +Help on function create_std_modmerge_handlers in module ida_mergemod: + +create_std_modmerge_handlers(*args) -> 'void' + create_std_modmerge_handlers(mhp, helper, merge_node_info=None) + convinience function to create merge handlers for modules/plugins + + @param mhp: (C++: merge_handler_params_t &) + @param helper: (C++: moddata_diff_helper_t &) + @param merge_node_info: (C++: const merge_node_info_t *) merge_node_info2_t const * + +Module "ida_moves"s docstring: """ -apply kvps regardless of what's currently in the IDB, possibly -removing some attributes currently present (e.g., name, or prototype -could be lost) """ -ida_lumina.AMDF_UPGRADE -""" -"quality" than what's currently in the IDB - -apply kvps that seem to be of higher -""" - -ida_lumina.PMF_PUSH_MODE_MASK -""" -Conflict resolution mode. -""" -=== ida_lumina EPYDOC INJECTIONS END === Help on class bookmarks_t in module ida_moves: class bookmarks_t(builtins.object) @@ -55474,21 +71227,52 @@ class bookmarks_t(builtins.object) | | erase(*args) -> 'bool' | erase(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | find_index(*args) -> 'uint32' | find_index(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * | | get(*args) -> 'bool' | get(out_entry, out_desc, index, ud) -> bool + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * | | get_desc(*args) -> 'qstring *' | get_desc(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * + | + | get_dirtree_id(*args) -> 'dirtree_id_t' + | get_dirtree_id(e, ud) -> dirtree_id_t + | + | @param e: lochist_entry_t const & + | @param ud: void * | | mark(*args) -> 'uint32' | mark(e, index, title, desc, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * | | size(*args) -> 'uint32' | size(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55506,31 +71290,64 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) -> 'bool' bookmarks_t_erase(e, index, ud) -> bool + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) -> 'uint32' bookmarks_t_find_index(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) -> 'bool' bookmarks_t_get(out_entry, out_desc, index, ud) -> bool + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) -> 'qstring *' bookmarks_t_get_desc(e, index, ud) -> str + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * + +Help on function bookmarks_t_get_dirtree_id in module ida_moves: + +bookmarks_t_get_dirtree_id(*args) -> 'dirtree_id_t' + bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) -> 'uint32' bookmarks_t_mark(e, index, title, desc, ud) -> uint32 + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) -> 'uint32' bookmarks_t_size(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * Help on class graph_location_info_t in module ida_moves: @@ -55541,12 +71358,16 @@ class graph_location_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -55563,16 +71384,16 @@ class graph_location_info_t(builtins.object) | list of weak references to the object (if defined) | | orgx - | graph_location_info_t_orgx_get(self) -> double + | orgx | | orgy - | graph_location_info_t_orgy_get(self) -> double + | orgy | | thisown | The membership flag | | zoom - | graph_location_info_t_zoom_get(self) -> double + | zoom | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55586,16 +71407,16 @@ class lochist_entry_t(builtins.object) | | Methods defined here: | - | __eq__(self, *args) -> 'bool' - | __eq__(self, r) -> bool - | | __init__(self, *args) | __init__(self) -> lochist_entry_t | __init__(self, p, r) -> lochist_entry_t + | + | @param p: place_t const * + | @param r: renderer_info_t const & + | | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | + | @param other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -55604,20 +71425,22 @@ class lochist_entry_t(builtins.object) | | acquire_place(self, *args) -> 'void' | acquire_place(self, in_p) + | + | @param in_p: place_t * | | is_valid(self, *args) -> 'bool' | is_valid(self) -> bool | | place(self, *args) -> 'place_t *' | place(self) -> place_t - | place(self) -> place_t | | renderer_info(self, *args) -> 'renderer_info_t &' | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t | | set_place(self, *args) -> 'void' | set_place(self, p) + | + | @param p: place_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55629,18 +71452,13 @@ class lochist_entry_t(builtins.object) | list of weak references to the object (if defined) | | plce - | lochist_entry_t_plce_get(self) -> place_t + | plce | | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t + | rinfo | | thisown | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None Help on class lochist_t in module ida_moves: @@ -55659,6 +71477,9 @@ class lochist_t(builtins.object) | | back(self, *args) -> 'bool' | back(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | clear(self, *args) -> 'void' | clear(self) @@ -55668,9 +71489,15 @@ class lochist_t(builtins.object) | | fwd(self, *args) -> 'bool' | fwd(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | get(self, *args) -> 'bool' | get(self, out, index) -> bool + | + | @param out: lochist_entry_t * + | @param index: uint32 | | get_current(self, *args) -> 'lochist_entry_t const &' | get_current(self) -> lochist_entry_t @@ -55683,12 +71510,20 @@ class lochist_t(builtins.object) | | init(self, *args) -> 'bool' | init(self, stream_name, _defpos, _ud, _flags) -> bool + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 | | is_history_enabled(self, *args) -> 'bool' | is_history_enabled(self) -> bool | | jump(self, *args) -> 'void' | jump(self, try_to_unhide, e) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & | | netcode(self, *args) -> 'nodeidx_t' | netcode(self) -> nodeidx_t @@ -55698,12 +71533,20 @@ class lochist_t(builtins.object) | | seek(self, *args) -> 'bool' | seek(self, index, try_to_unhide) -> bool + | + | @param index: uint32 + | @param try_to_unhide: bool | | set(self, *args) -> 'void' | set(self, index, e) + | + | @param index: uint32 + | @param e: lochist_entry_t const & | | set_current(self, *args) -> 'void' | set_current(self, e) + | + | @param e: lochist_entry_t const & | | size(self, *args) -> 'uint32' | size(self) -> uint32 @@ -55729,12 +71572,16 @@ class renderer_info_pos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -55751,13 +71598,13 @@ class renderer_info_pos_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_info_pos_t_cx_get(self) -> short + | cx | | cy - | renderer_info_pos_t_cy_get(self) -> short + | cy | | node - | renderer_info_pos_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -55776,21 +71623,27 @@ class renderer_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: renderer_info_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_renderer_info_t(...) | delete_renderer_info_t(self) | - | clear(self, *args) -> 'void' - | clear(self) - | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -55801,13 +71654,13 @@ class renderer_info_t(builtins.object) | list of weak references to the object (if defined) | | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t + | gli | | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t + | pos | | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | thisown | The membership flag @@ -55826,12 +71679,20 @@ class segm_move_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -55848,16 +71709,16 @@ class segm_move_info_t(builtins.object) | list of weak references to the object (if defined) | | _from - | segm_move_info_t__from_get(self) -> ea_t + | _from | | size - | segm_move_info_t_size_get(self) -> size_t + | size | | thisown | The membership flag | | to - | segm_move_info_t_to_get(self) -> ea_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -55873,13 +71734,19 @@ class segm_move_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -55889,30 +71756,42 @@ class segm_move_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & | | __swig_destroy__ = delete_segm_move_info_vec_t(...) | delete_segm_move_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -55925,39 +71804,58 @@ class segm_move_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t | | find(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | find(self, x) -> segm_move_info_t - | find(self, x) -> segm_move_info_t + | + | @param x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) + | + | @param x: segm_move_info_t const & + | | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' @@ -55965,16 +71863,26 @@ class segm_move_info_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -56018,6 +71926,8 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) -> 'segm_move_info_t const *' | find(self, ea) -> segm_move_info_t + | + | @param ea: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -56030,9 +71940,13 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56042,25 +71956,37 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -56073,11 +71999,16 @@ class segm_move_infos_t(segm_move_info_vec_t) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t @@ -56087,21 +72018,34 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) + | + | @param x: segm_move_info_t const & + | | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' @@ -56109,16 +72053,26 @@ class segm_move_infos_t(segm_move_info_vec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -56137,22 +72091,40 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __hash__ = None +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + Help on function get_switch_info in module ida_nalt: get_switch_info(*args) -> 'ssize_t' get_switch_info(out, ea) -> ssize_t + + @param out: switch_info_t * + @param ea: ea_t Help on function add_encoding in module ida_nalt: add_encoding(*args) -> 'int' - add_encoding(encoding) -> int + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. - - Add a new encoding (e.g. "UTF-8"). - - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error Help on class array_parameters_t in module ida_nalt: @@ -56179,13 +72151,13 @@ class array_parameters_t(builtins.object) | list of weak references to the object (if defined) | | alignment - | array_parameters_t_alignment_get(self) -> int32 + | alignment | | flags - | array_parameters_t_flags_get(self) -> int32 + | flags | | lineitems - | array_parameters_t_lineitems_get(self) -> int32 + | lineitems | | thisown | The membership flag @@ -56194,132 +72166,178 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) -> 'void' clr__bnot0(ea) + + @param ea: ea_t Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) -> 'void' clr__bnot1(ea) + + @param ea: ea_t Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) -> 'void' clr__invsign0(ea) + + @param ea: ea_t Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) -> 'void' clr__invsign1(ea) + + @param ea: ea_t Help on function clr_abits in module ida_nalt: clr_abits(*args) -> 'void' clr_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) -> 'void' clr_align_flow(ea) + + @param ea: ea_t Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) -> 'void' clr_colored_item(ea) + + @param ea: ea_t Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) -> 'void' clr_fixed_spd(ea) + + @param ea: ea_t Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) -> 'void' clr_has_lname(ea) + + @param ea: ea_t Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) -> 'void' clr_has_ti(ea) + + @param ea: ea_t Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) -> 'void' clr_has_ti0(ea) + + @param ea: ea_t Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) -> 'void' clr_has_ti1(ea) + + @param ea: ea_t Help on function clr_libitem in module ida_nalt: clr_libitem(*args) -> 'void' clr_libitem(ea) + + @param ea: ea_t Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) -> 'void' clr_lzero0(ea) + + @param ea: ea_t Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) -> 'void' clr_lzero1(ea) + + @param ea: ea_t Help on function clr_noret in module ida_nalt: clr_noret(*args) -> 'void' clr_noret(ea) + + @param ea: ea_t Help on function clr_notcode in module ida_nalt: clr_notcode(*args) -> 'void' clr_notcode(ea) - - Clear not-code mark. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) -> 'void' clr_notproc(ea) + + @param ea: ea_t Help on function clr_retfp in module ida_nalt: clr_retfp(*args) -> 'void' clr_retfp(ea) + + @param ea: ea_t Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) -> 'void' clr_terse_struc(ea) + + @param ea: ea_t Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) -> 'void' clr_tilcmt(ea) + + @param ea: ea_t Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) -> 'void' clr_usemodsp(ea) + + @param ea: ea_t Help on function clr_usersp in module ida_nalt: clr_usersp(*args) -> 'void' clr_usersp(ea) + + @param ea: ea_t Help on function clr_userti in module ida_nalt: clr_userti(*args) -> 'void' clr_userti(ea) + + @param ea: ea_t Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) -> 'void' clr_zstroff(ea) + + @param ea: ea_t Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -56330,9 +72348,13 @@ class custom_data_type_ids_fids_array(builtins.object) | | __getitem__(self, *args) -> 'short const &' | __getitem__(self, i) -> short const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array + | + | @param data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56344,10 +72366,23 @@ class custom_data_type_ids_fids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: short const & | | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) | delete_custom_data_type_ids_fids_array(self) | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -56357,8 +72392,11 @@ class custom_data_type_ids_fids_array(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bytes + | _get_bytes(self) -> bytevec_t + | | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] + | data | | thisown | The membership flag @@ -56381,6 +72419,14 @@ class custom_data_type_ids_t(builtins.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) -> 'wrapped_array_t< int16,8 >' | __getFids(self) -> custom_data_type_ids_fids_array | + | get_dtid(self, *args) -> 'tid_t' + | get_dtid(self) -> tid_t + | + | set(self, *args) -> 'void' + | set(self, tid) + | + | @param tid: tid_t + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -56391,7 +72437,7 @@ class custom_data_type_ids_t(builtins.object) | list of weak references to the object (if defined) | | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 + | dtid | | fids | __getFids(self) -> custom_data_type_ids_fids_array @@ -56403,120 +72449,141 @@ Help on function dbg_get_input_path in module ida_nalt: dbg_get_input_path(*args) -> 'size_t' dbg_get_input_path() -> str - - - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) + Get debugger input file name/path (see LFLG_DBG_NOPATH) Help on function del_absbase in module ida_nalt: del_absbase(*args) -> 'void' del_absbase(ea) + + @param ea: ea_t Help on function del_aflags in module ida_nalt: del_aflags(*args) -> 'void' del_aflags(ea) + + @param ea: ea_t Help on function del_alignment in module ida_nalt: del_alignment(*args) -> 'void' del_alignment(ea) + + @param ea: ea_t Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) -> 'void' del_array_parameters(ea) + + @param ea: ea_t Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) -> 'void' del_custom_data_type_ids(ea) + + @param ea: ea_t Help on function del_encoding in module ida_nalt: del_encoding(*args) -> 'bool' del_encoding(idx) -> bool + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. - - Delete an encoding (1-based) - - - @param idx (C++: int) + @param idx: (C++: int) the encoding index (1-based) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) -> 'void' del_ind_purged(ea) + + @param ea: ea_t Help on function del_item_color in module ida_nalt: del_item_color(*args) -> 'bool' del_item_color(ea) -> bool + + @param ea: ea_t Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) -> 'void' del_op_tinfo(ea, n) + + @param ea: ea_t + @param n: int Help on function del_refinfo in module ida_nalt: del_refinfo(*args) -> 'bool' del_refinfo(ea, n) -> bool + + @param ea: ea_t + @param n: int Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) + + @param ea: ea_t Help on function del_str_type in module ida_nalt: del_str_type(*args) -> 'void' del_str_type(ea) + + @param ea: ea_t Help on function del_switch_info in module ida_nalt: del_switch_info(*args) -> 'void' del_switch_info(ea) + + @param ea: ea_t Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) -> 'void' del_switch_parent(ea) + + @param ea: ea_t Help on function del_tinfo in module ida_nalt: del_tinfo(*args) -> 'void' del_tinfo(ea) + + @param ea: ea_t Help on function delete_imports in module ida_nalt: delete_imports(*args) -> 'void' delete_imports() - - Delete all imported modules information. Help on function ea2node in module ida_nalt: ea2node(*args) -> 'nodeidx_t' ea2node(ea) -> nodeidx_t - - Get netnode for the specified address. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function encoding_from_strtype in module ida_nalt: encoding_from_strtype(*args) -> 'char const *' encoding_from_strtype(strtype) -> char const * + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted - - Get encoding name for this strtype. - - - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -56543,20 +72610,18 @@ class enum_const_t(builtins.object) | list of weak references to the object (if defined) | | serial - | enum_const_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | tid - | enum_const_t_tid_get(self) -> tid_t + | tid Help on function enum_import_names in module ida_nalt: enum_import_names(*args) -> 'int' enum_import_names(mod_index, py_cb) -> int - - Enumerate imports from a specific module. Please refer to ex_imports.py example. @@ -56568,111 +72633,120 @@ Help on function find_custom_refinfo in module ida_nalt: find_custom_refinfo(*args) -> 'int' find_custom_refinfo(name) -> int - - Get id of a custom refinfo type. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_abi_name in module ida_nalt: -get_abi_name(*args) +get_abi_name() Help on function get_absbase in module ida_nalt: get_absbase(*args) -> 'ea_t' get_absbase(ea) -> ea_t + + @param ea: ea_t Help on function get_aflags in module ida_nalt: -get_aflags(*args) -> 'uint32' - get_aflags(ea) -> uint32 +get_aflags(*args) -> 'aflags_t' + get_aflags(ea) -> aflags_t + + @param ea: ea_t Help on function get_alignment in module ida_nalt: get_alignment(*args) -> 'uint32' get_alignment(ea) -> uint32 + + @param ea: ea_t Help on function get_archive_path in module ida_nalt: get_archive_path(*args) -> 'qstring *' get_archive_path() -> str - - Get archive file path from which input file was extracted. Help on function get_array_parameters in module ida_nalt: get_array_parameters(*args) -> 'ssize_t' get_array_parameters(out, ea) -> ssize_t + + @param out: array_parameters_t * + @param ea: ea_t Help on function get_asm_inc_file in module ida_nalt: get_asm_inc_file(*args) -> 'qstring *' get_asm_inc_file() -> str - - Get name of the include file. Help on function get_custom_data_type_ids in module ida_nalt: get_custom_data_type_ids(*args) -> 'int' get_custom_data_type_ids(cdis, ea) -> int + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t Help on function get_custom_refinfo in module ida_nalt: get_custom_refinfo(*args) -> 'custom_refinfo_handler_t const *' get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - - Get definition of a registered custom refinfo type. - - @param crid (C++: int) + @param crid: (C++: int) Help on function get_default_encoding_idx in module ida_nalt: get_default_encoding_idx(*args) -> 'int' get_default_encoding_idx(bpu) -> int - - Get default encoding index for a specific string type. - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument + +Help on function get_elapsed_secs in module ida_nalt: + +get_elapsed_secs(*args) -> 'size_t' + get_elapsed_secs() -> size_t + Get seconds database stayed open. Help on function get_encoding_bpu in module ida_nalt: get_encoding_bpu(*args) -> 'int' get_encoding_bpu(idx) -> int + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) -> 'int' + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - - @param idx: the encoding index (C++: int) + @param encname: (C++: const char *) the encoding name @return: the number of bytes per units (1/2/4); -1 means error Help on function get_encoding_name in module ida_nalt: get_encoding_name(*args) -> 'char const *' get_encoding_name(idx) -> char const * - - Get encoding name for specific index (1-based). - @param idx (C++: int) - @return: NULL if idx is out of bounds + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted Help on function get_encoding_qty in module ida_nalt: get_encoding_qty(*args) -> 'int' get_encoding_qty() -> int - - Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -56680,135 +72754,204 @@ Help on function get_gotea in module ida_nalt: get_gotea(*args) -> 'ea_t' get_gotea() -> ea_t +Help on function get_ida_notepad_text in module ida_nalt: + +get_ida_notepad_text(*args) -> 'qstring *' + get_ida_notepad_text() -> str + Get notepad text. + +Help on function get_idb_ctime in module ida_nalt: + +get_idb_ctime(*args) -> 'time_t' + get_idb_ctime() -> time_t + Get database creation timestamp. + +Help on function get_idb_nopens in module ida_nalt: + +get_idb_nopens(*args) -> 'size_t' + get_idb_nopens() -> size_t + Get number of times the database is opened. + Help on function get_ids_modnode in module ida_nalt: get_ids_modnode(*args) -> 'netnode' get_ids_modnode() -> netnode - - Get ids modnode. Help on function get_imagebase in module ida_nalt: get_imagebase(*args) -> 'ea_t' get_imagebase() -> ea_t - - Get image base address. Help on function get_import_module_name in module ida_nalt: get_import_module_name(*args) -> 'PyObject *' - get_import_module_name(mod_index) -> PyObject * - - + get_import_module_name(mod_index) -> str Returns the name of an imported module given its index + + @param mod_index: int @return: None or the module name Help on function get_import_module_qty in module ida_nalt: get_import_module_qty(*args) -> 'uint' get_import_module_qty() -> uint - - Get number of import modules. Help on function get_ind_purged in module ida_nalt: get_ind_purged(*args) -> 'ea_t' get_ind_purged(ea) -> ea_t + + @param ea: ea_t + +Help on function get_initial_ida_version in module ida_nalt: + +get_initial_ida_version(*args) -> 'qstring *' + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) -> 'ushort' + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' get_input_file_path() -> str - - Get full path of the input file. Help on function get_item_color in module ida_nalt: get_item_color(*args) -> 'bgcolor_t' get_item_color(ea) -> bgcolor_t + + @param ea: ea_t + +Help on function get_loader_format_name in module ida_nalt: + +get_loader_format_name(*args) -> 'qstring *' + get_loader_format_name() -> str + Get file format name for loader modules. Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) -> 'bool' get_op_tinfo(tif, ea, n) -> bool + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int Help on function get_outfile_encoding_idx in module ida_nalt: get_outfile_encoding_idx(*args) -> 'int' get_outfile_encoding_idx() -> int - - - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used Help on function get_refinfo in module ida_nalt: get_refinfo(*args) -> 'bool' get_refinfo(ri, ea, n) -> bool + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int Help on function get_reftype_by_size in module ida_nalt: get_reftype_by_size(*args) -> 'reftype_t' get_reftype_by_size(size) -> reftype_t + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) - - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - - @param size (C++: size_t) + @param size: (C++: size_t) Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' get_root_filename() -> str - - Get file name only of the input file. Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t + + @param ea: ea_t + +Help on function get_srcdbg_paths in module ida_nalt: + +get_srcdbg_paths(*args) -> 'qstring *' + get_srcdbg_paths() -> str + Get source debug paths. + +Help on function get_srcdbg_undesired_paths in module ida_nalt: + +get_srcdbg_undesired_paths(*args) -> 'qstring *' + get_srcdbg_undesired_paths() -> str + Get user-closed source files. Help on function get_str_encoding_idx in module ida_nalt: get_str_encoding_idx(*args) -> 'uchar' get_str_encoding_idx(strtype) -> uchar - - Get index of the string encoding for this string. - - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) -> 'char' get_str_term1(strtype) -> char + + @param strtype: int32 Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) -> 'char' get_str_term2(strtype) -> char + + @param strtype: int32 Help on function get_str_type in module ida_nalt: get_str_type(*args) -> 'uint32' get_str_type(ea) -> uint32 + + @param ea: ea_t Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) -> 'uchar' get_str_type_code(strtype) -> uchar + + @param strtype: int32 + +Help on function get_str_type_prefix_length in module ida_nalt: + +get_str_type_prefix_length(*args) -> 'size_t' + get_str_type_prefix_length(strtype) -> size_t + + @param strtype: int32 + +Help on function get_strid in module ida_nalt: + +get_strid(*args) -> 'tid_t' + get_strid(ea) -> tid_t + + @param ea: ea_t Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) -> 'int' get_strtype_bpu(strtype) -> int + + @param strtype: int32 Help on function get_switch_info in module ida_nalt: @@ -56818,200 +72961,535 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) -> 'ea_t' get_switch_parent(ea) -> ea_t + + @param ea: ea_t Help on function get_tinfo in module ida_nalt: get_tinfo(*args) -> 'bool' get_tinfo(tif, ea) -> bool + + @param tif: tinfo_t * + @param ea: ea_t Help on function getnode in module ida_nalt: getnode(*args) -> 'netnode' getnode(ea) -> netnode + + @param ea: ea_t + +Help on function has_aflag_linnum in module ida_nalt: + +has_aflag_linnum(*args) -> 'bool' + has_aflag_linnum(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_lname in module ida_nalt: + +has_aflag_lname(*args) -> 'bool' + has_aflag_lname(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti in module ida_nalt: + +has_aflag_ti(*args) -> 'bool' + has_aflag_ti(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti0 in module ida_nalt: + +has_aflag_ti0(*args) -> 'bool' + has_aflag_ti0(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti1 in module ida_nalt: + +has_aflag_ti1(*args) -> 'bool' + has_aflag_ti1(flags) -> bool + + @param flags: aflags_t Help on function has_lname in module ida_nalt: has_lname(*args) -> 'bool' has_lname(ea) -> bool + + @param ea: ea_t Help on function has_ti in module ida_nalt: has_ti(*args) -> 'bool' has_ti(ea) -> bool + + @param ea: ea_t Help on function has_ti0 in module ida_nalt: has_ti0(*args) -> 'bool' has_ti0(ea) -> bool + + @param ea: ea_t Help on function has_ti1 in module ida_nalt: has_ti1(*args) -> 'bool' has_ti1(ea) -> bool + + @param ea: ea_t Help on function hide_border in module ida_nalt: hide_border(*args) -> 'void' hide_border(ea) + + @param ea: ea_t Help on function hide_item in module ida_nalt: hide_item(*args) -> 'void' hide_item(ea) + + @param ea: ea_t Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) -> 'bool' is__bnot0(ea) -> bool + + @param ea: ea_t Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) -> 'bool' is__bnot1(ea) -> bool + + @param ea: ea_t Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) -> 'bool' is__invsign0(ea) -> bool + + @param ea: ea_t Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) -> 'bool' is__invsign1(ea) -> bool + + @param ea: ea_t + +Help on function is_aflag__bnot0 in module ida_nalt: + +is_aflag__bnot0(*args) -> 'bool' + is_aflag__bnot0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__bnot1 in module ida_nalt: + +is_aflag__bnot1(*args) -> 'bool' + is_aflag__bnot1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign0 in module ida_nalt: + +is_aflag__invsign0(*args) -> 'bool' + is_aflag__invsign0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign1 in module ida_nalt: + +is_aflag__invsign1(*args) -> 'bool' + is_aflag__invsign1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_align_flow in module ida_nalt: + +is_aflag_align_flow(*args) -> 'bool' + is_aflag_align_flow(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_colored_item in module ida_nalt: + +is_aflag_colored_item(*args) -> 'bool' + is_aflag_colored_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: + +is_aflag_data_guessed_by_hexrays(*args) -> 'bool' + is_aflag_data_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_fixed_spd in module ida_nalt: + +is_aflag_fixed_spd(*args) -> 'bool' + is_aflag_fixed_spd(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: + +is_aflag_func_guessed_by_hexrays(*args) -> 'bool' + is_aflag_func_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_border in module ida_nalt: + +is_aflag_hidden_border(*args) -> 'bool' + is_aflag_hidden_border(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_item in module ida_nalt: + +is_aflag_hidden_item(*args) -> 'bool' + is_aflag_hidden_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_libitem in module ida_nalt: + +is_aflag_libitem(*args) -> 'bool' + is_aflag_libitem(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero0 in module ida_nalt: + +is_aflag_lzero0(*args) -> 'bool' + is_aflag_lzero0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero1 in module ida_nalt: + +is_aflag_lzero1(*args) -> 'bool' + is_aflag_lzero1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_manual_insn in module ida_nalt: + +is_aflag_manual_insn(*args) -> 'bool' + is_aflag_manual_insn(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_noret in module ida_nalt: + +is_aflag_noret(*args) -> 'bool' + is_aflag_noret(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notcode in module ida_nalt: + +is_aflag_notcode(*args) -> 'bool' + is_aflag_notcode(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notproc in module ida_nalt: + +is_aflag_notproc(*args) -> 'bool' + is_aflag_notproc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_public_name in module ida_nalt: + +is_aflag_public_name(*args) -> 'bool' + is_aflag_public_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_retfp in module ida_nalt: + +is_aflag_retfp(*args) -> 'bool' + is_aflag_retfp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_terse_struc in module ida_nalt: + +is_aflag_terse_struc(*args) -> 'bool' + is_aflag_terse_struc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_tilcmt in module ida_nalt: + +is_aflag_tilcmt(*args) -> 'bool' + is_aflag_tilcmt(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: + +is_aflag_type_determined_by_hexrays(*args) -> 'bool' + is_aflag_type_determined_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: + +is_aflag_type_guessed_by_hexrays(*args) -> 'bool' + is_aflag_type_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_ida in module ida_nalt: + +is_aflag_type_guessed_by_ida(*args) -> 'bool' + is_aflag_type_guessed_by_ida(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_usersp in module ida_nalt: + +is_aflag_usersp(*args) -> 'bool' + is_aflag_usersp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_userti in module ida_nalt: + +is_aflag_userti(*args) -> 'bool' + is_aflag_userti(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_weak_name in module ida_nalt: + +is_aflag_weak_name(*args) -> 'bool' + is_aflag_weak_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_zstroff in module ida_nalt: + +is_aflag_zstroff(*args) -> 'bool' + is_aflag_zstroff(flags) -> bool + + @param flags: aflags_t Help on function is_align_flow in module ida_nalt: is_align_flow(*args) -> 'bool' is_align_flow(ea) -> bool + + @param ea: ea_t Help on function is_colored_item in module ida_nalt: is_colored_item(*args) -> 'bool' is_colored_item(ea) -> bool + + @param ea: ea_t + +Help on function is_data_guessed_by_hexrays in module ida_nalt: + +is_data_guessed_by_hexrays(*args) -> 'bool' + is_data_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t Help on function is_finally_visible_item in module ida_nalt: is_finally_visible_item(*args) -> 'bool' is_finally_visible_item(ea) -> bool - - Is instruction visible? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) -> 'bool' is_fixed_spd(ea) -> bool + + @param ea: ea_t + +Help on function is_func_guessed_by_hexrays in module ida_nalt: + +is_func_guessed_by_hexrays(*args) -> 'bool' + is_func_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) -> 'bool' is_hidden_border(ea) -> bool + + @param ea: ea_t Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) -> 'bool' is_hidden_item(ea) -> bool + + @param ea: ea_t Help on function is_libitem in module ida_nalt: is_libitem(*args) -> 'bool' is_libitem(ea) -> bool + + @param ea: ea_t Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) -> 'bool' is_lzero0(ea) -> bool + + @param ea: ea_t Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) -> 'bool' is_lzero1(ea) -> bool + + @param ea: ea_t Help on function is_noret in module ida_nalt: is_noret(*args) -> 'bool' is_noret(ea) -> bool + + @param ea: ea_t Help on function is_notcode in module ida_nalt: is_notcode(*args) -> 'bool' is_notcode(ea) -> bool - - Is the address marked as not-code? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) -> 'bool' is_notproc(ea) -> bool + + @param ea: ea_t Help on function is_pascal in module ida_nalt: is_pascal(*args) -> 'bool' is_pascal(strtype) -> bool + + @param strtype: int32 Help on function is_reftype_target_optional in module ida_nalt: is_reftype_target_optional(*args) -> 'bool' is_reftype_target_optional(type) -> bool - - Can the target be calculated using operand value? - - @param type (C++: reftype_t) + @param type: (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) -> 'bool' is_retfp(ea) -> bool + + @param ea: ea_t Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) -> 'bool' is_terse_struc(ea) -> bool + + @param ea: ea_t Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) -> 'bool' is_tilcmt(ea) -> bool + + @param ea: ea_t + +Help on function is_type_determined_by_hexrays in module ida_nalt: + +is_type_determined_by_hexrays(*args) -> 'bool' + is_type_determined_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_hexrays in module ida_nalt: + +is_type_guessed_by_hexrays(*args) -> 'bool' + is_type_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_ida in module ida_nalt: + +is_type_guessed_by_ida(*args) -> 'bool' + is_type_guessed_by_ida(ea) -> bool + + @param ea: ea_t Help on function is_usersp in module ida_nalt: is_usersp(*args) -> 'bool' is_usersp(ea) -> bool + + @param ea: ea_t Help on function is_userti in module ida_nalt: is_userti(*args) -> 'bool' is_userti(ea) -> bool + + @param ea: ea_t Help on function is_visible_item in module ida_nalt: is_visible_item(*args) -> 'bool' is_visible_item(ea) -> bool - - Test visibility of item at given ea. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) -> 'bool' is_zstroff(ea) -> bool + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) -> 'int32' + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) Help on function node2ea in module ida_nalt: node2ea(*args) -> 'ea_t' node2ea(ndx) -> ea_t + + @param ndx: nodeidx_t Help on class opinfo_t in module ida_nalt: @@ -57038,25 +73516,25 @@ class opinfo_t(builtins.object) | list of weak references to the object (if defined) | | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t + | cd | | ec - | opinfo_t_ec_get(self) -> enum_const_t + | ec | | path - | opinfo_t_path_get(self) -> strpath_t + | path | | ri - | opinfo_t_ri_get(self) -> refinfo_t + | ri | | strtype - | opinfo_t_strtype_get(self) -> int32 + | strtype | | thisown | The membership flag | | tid - | opinfo_t_tid_get(self) -> tid_t + | tid Help on class printop_t in module ida_nalt: @@ -57084,9 +73562,13 @@ class printop_t(builtins.object) | | set_aflags_initialized(self, *args) -> 'void' | set_aflags_initialized(self, v=True) + | + | @param v: bool | | set_ti_initialized(self, *args) -> 'void' | set_ti_initialized(self, v=True) + | + | @param v: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57098,25 +73580,25 @@ class printop_t(builtins.object) | list of weak references to the object (if defined) | | aflags - | printop_t_aflags_get(self) -> flags_t + | aflags | | features - | printop_t_features_get(self) -> uchar + | features | | flags - | printop_t_flags_get(self) -> flags_t + | flags | | is_ti_valid | is_ti_initialized(self) -> bool | | suspop - | printop_t_suspop_get(self) -> int + | suspop | | thisown | The membership flag | | ti - | printop_t_ti_get(self) -> opinfo_t + | ti Help on class refinfo_t in module ida_nalt: @@ -57135,16 +73617,30 @@ class refinfo_t(builtins.object) | | init(self, *args) -> 'void' | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool | + | is_no_ones(self, *args) -> 'bool' + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) -> 'bool' + | is_no_zeros(self) -> bool + | | is_pastend(self, *args) -> 'bool' | is_pastend(self) -> bool | | is_rvaoff(self, *args) -> 'bool' | is_rvaoff(self) -> bool | + | is_selfref(self, *args) -> 'bool' + | is_selfref(self) -> bool + | | is_signed(self, *args) -> 'bool' | is_signed(self) -> bool | @@ -57153,12 +73649,15 @@ class refinfo_t(builtins.object) | | is_target_optional(self, *args) -> 'bool' | is_target_optional(self) -> bool + | < is_reftype_target_optional() | | no_base_xref(self, *args) -> 'bool' | no_base_xref(self) -> bool | | set_type(self, *args) -> 'void' - | set_type(self, t) + | set_type(self, rt) + | + | @param rt: reftype_t | | type(self, *args) -> 'reftype_t' | type(self) -> reftype_t @@ -57173,16 +73672,16 @@ class refinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | refinfo_t_base_get(self) -> ea_t + | base | | flags - | refinfo_t_flags_get(self) -> uint32 + | flags | | target - | refinfo_t_target_get(self) -> ea_t + | target | | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t + | tdelta | | thisown | The membership flag @@ -57190,343 +73689,477 @@ class refinfo_t(builtins.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) -> 'bool' - rename_encoding(idx, encoding) -> bool + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. - - Change name for an encoding (1-based) - - - @param idx (C++: int) - @param encoding (C++: const char *) + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name Help on function retrieve_input_file_crc32 in module ida_nalt: retrieve_input_file_crc32(*args) -> 'uint32' retrieve_input_file_crc32() -> uint32 - - - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' - retrieve_input_file_md5() -> str - - + retrieve_input_file_md5() -> bytes Get input file md5. Help on function retrieve_input_file_sha256 in module ida_nalt: retrieve_input_file_sha256(*args) -> 'uchar [ANY]' - retrieve_input_file_sha256() -> str - - + retrieve_input_file_sha256() -> bytes Get input file sha256. Help on function retrieve_input_file_size in module ida_nalt: -retrieve_input_file_size(*args) -> 'uint32' - retrieve_input_file_size() -> uint32 - - +retrieve_input_file_size(*args) -> 'size_t' + retrieve_input_file_size() -> size_t Get size of input file in bytes. Help on function set__bnot0 in module ida_nalt: set__bnot0(*args) -> 'void' set__bnot0(ea) + + @param ea: ea_t Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) -> 'void' set__bnot1(ea) + + @param ea: ea_t Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) -> 'void' set__invsign0(ea) + + @param ea: ea_t Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) -> 'void' set__invsign1(ea) + + @param ea: ea_t Help on function set_abits in module ida_nalt: set_abits(*args) -> 'void' set_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t Help on function set_absbase in module ida_nalt: set_absbase(*args) -> 'void' set_absbase(ea, x) + + @param ea: ea_t + @param x: ea_t Help on function set_aflags in module ida_nalt: set_aflags(*args) -> 'void' set_aflags(ea, flags) + + @param ea: ea_t + @param flags: aflags_t Help on function set_align_flow in module ida_nalt: set_align_flow(*args) -> 'void' set_align_flow(ea) + + @param ea: ea_t Help on function set_alignment in module ida_nalt: set_alignment(*args) -> 'void' set_alignment(ea, x) + + @param ea: ea_t + @param x: uint32 Help on function set_archive_path in module ida_nalt: set_archive_path(*args) -> 'bool' set_archive_path(file) -> bool - - Set archive file path from which input file was extracted. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) -> 'void' set_array_parameters(ea, _in) + + @param ea: ea_t + @param in: array_parameters_t const * Help on function set_asm_inc_file in module ida_nalt: set_asm_inc_file(*args) -> 'bool' set_asm_inc_file(file) -> bool - - Set name of the include file. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_colored_item in module ida_nalt: set_colored_item(*args) -> 'void' set_colored_item(ea) + + @param ea: ea_t Help on function set_custom_data_type_ids in module ida_nalt: set_custom_data_type_ids(*args) -> 'void' set_custom_data_type_ids(ea, cdis) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * + +Help on function set_data_guessed_by_hexrays in module ida_nalt: + +set_data_guessed_by_hexrays(*args) -> 'void' + set_data_guessed_by_hexrays(ea) + + @param ea: ea_t Help on function set_default_encoding_idx in module ida_nalt: set_default_encoding_idx(*args) -> 'bool' set_default_encoding_idx(bpu, idx) -> bool + Set default encoding for a string type - - set default encoding for a string type - - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 Help on function set_fixed_spd in module ida_nalt: set_fixed_spd(*args) -> 'void' set_fixed_spd(ea) + + @param ea: ea_t + +Help on function set_func_guessed_by_hexrays in module ida_nalt: + +set_func_guessed_by_hexrays(*args) -> 'void' + set_func_guessed_by_hexrays(ea) + + @param ea: ea_t Help on function set_gotea in module ida_nalt: set_gotea(*args) -> 'void' set_gotea(gotea) + + @param gotea: ea_t Help on function set_has_lname in module ida_nalt: set_has_lname(*args) -> 'void' set_has_lname(ea) + + @param ea: ea_t Help on function set_has_ti in module ida_nalt: set_has_ti(*args) -> 'void' set_has_ti(ea) + + @param ea: ea_t Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) -> 'void' set_has_ti0(ea) + + @param ea: ea_t Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) -> 'void' set_has_ti1(ea) + + @param ea: ea_t + +Help on function set_ida_notepad_text in module ida_nalt: + +set_ida_notepad_text(*args) -> 'void' + set_ida_notepad_text(text, size=0) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) Help on function set_ids_modnode in module ida_nalt: set_ids_modnode(*args) -> 'void' set_ids_modnode(id) - - Set ids modnode. - - @param id (C++: netnode) + @param id: (C++: netnode) Help on function set_imagebase in module ida_nalt: set_imagebase(*args) -> 'void' set_imagebase(base) - - Set image base address. - - @param base (C++: ea_t) + @param base: (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) -> 'void' set_item_color(ea, color) + + @param ea: ea_t + @param color: bgcolor_t Help on function set_libitem in module ida_nalt: set_libitem(*args) -> 'void' set_libitem(ea) + + @param ea: ea_t + +Help on function set_loader_format_name in module ida_nalt: + +set_loader_format_name(*args) -> 'void' + set_loader_format_name(name) + Set file format name for loader modules. + + @param name: (C++: const char *) char const * Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) -> 'void' set_lzero0(ea) + + @param ea: ea_t Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) -> 'void' set_lzero1(ea) + + @param ea: ea_t Help on function set_noret in module ida_nalt: set_noret(*args) -> 'void' set_noret(ea) + + @param ea: ea_t Help on function set_notcode in module ida_nalt: set_notcode(*args) -> 'void' set_notcode(ea) - - Mark address so that it cannot be converted to instruction. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) -> 'void' set_notproc(ea) + + @param ea: ea_t Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) -> 'bool' set_op_tinfo(ea, n, tif) -> bool + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * Help on function set_outfile_encoding_idx in module ida_nalt: set_outfile_encoding_idx(*args) -> 'bool' set_outfile_encoding_idx(idx) -> bool - - set encoding to be used when producing files - @param idx: the encoding index idx can be 0 to use the IDB's default - 1-byte-per-unit encoding (C++: int) + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding Help on function set_refinfo in module ida_nalt: set_refinfo(*args) -> 'bool' set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t Help on function set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) -> 'bool' set_refinfo_ex(ea, n, ri) -> bool + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * Help on function set_retfp in module ida_nalt: set_retfp(*args) -> 'void' set_retfp(ea) + + @param ea: ea_t Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' set_root_filename(file) - - Set full path of the input file. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t + +Help on function set_srcdbg_paths in module ida_nalt: + +set_srcdbg_paths(*args) -> 'void' + set_srcdbg_paths(paths) + Set source debug paths. + + @param paths: (C++: const char *) char const * + +Help on function set_srcdbg_undesired_paths in module ida_nalt: + +set_srcdbg_undesired_paths(*args) -> 'void' + set_srcdbg_undesired_paths(paths) + Set user-closed source files. + + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) -> 'int32' + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) Help on function set_str_type in module ida_nalt: set_str_type(*args) -> 'void' set_str_type(ea, x) + + @param ea: ea_t + @param x: uint32 Help on function set_switch_info in module ida_nalt: set_switch_info(*args) -> 'void' set_switch_info(ea, _in) + + @param ea: ea_t + @param in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) -> 'void' set_switch_parent(ea, x) + + @param ea: ea_t + @param x: ea_t Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) -> 'void' set_terse_struc(ea) + + @param ea: ea_t Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) -> 'void' set_tilcmt(ea) + + @param ea: ea_t Help on function set_tinfo in module ida_nalt: set_tinfo(*args) -> 'bool' set_tinfo(ea, tif) -> bool + + @param ea: ea_t + @param tif: tinfo_t const * + +Help on function set_type_determined_by_hexrays in module ida_nalt: + +set_type_determined_by_hexrays(*args) -> 'void' + set_type_determined_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_type_guessed_by_ida in module ida_nalt: + +set_type_guessed_by_ida(*args) -> 'void' + set_type_guessed_by_ida(ea) + + @param ea: ea_t Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) -> 'void' set_usemodsp(ea) + + @param ea: ea_t Help on function set_usersp in module ida_nalt: set_usersp(*args) -> 'void' set_usersp(ea) + + @param ea: ea_t Help on function set_userti in module ida_nalt: set_userti(*args) -> 'void' set_userti(ea) + + @param ea: ea_t Help on function set_visible_item in module ida_nalt: set_visible_item(*args) -> 'void' set_visible_item(ea, visible) - - Change visibility of item at given ea. - - @param ea (C++: ea_t) - @param visible (C++: bool) + @param ea: (C++: ea_t) + @param visible: (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) -> 'void' set_zstroff(ea) + + @param ea: ea_t Help on class strpath_ids_array in module ida_nalt: @@ -57537,9 +74170,13 @@ class strpath_ids_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57551,10 +74188,23 @@ class strpath_ids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_strpath_ids_array(...) | delete_strpath_ids_array(self) | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -57564,8 +74214,11 @@ class strpath_ids_array(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bytes + | _get_bytes(self) -> bytevec_t + | | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ + | data | | thisown | The membership flag @@ -57598,13 +74251,13 @@ class strpath_t(builtins.object) | list of weak references to the object (if defined) | | delta - | strpath_t_delta_get(self) -> adiff_t + | delta | | ids | __getIds(self) -> strpath_ids_array | | len - | strpath_t_len_get(self) -> int + | len | | thisown | The membership flag @@ -57629,15 +74282,25 @@ class switch_info_t(builtins.object) | | _set_values_lowcase(self, *args) -> 'void' | _set_values_lowcase(self, values) + | + | Parameters + | ---------- + | values: ea_t | | assign(self, *args) -> 'void' | assign(self, other) + | + | @param other: switch_info_t const & | | clear(self, *args) -> 'void' | clear(self) | | get_jrange_vrange(self, *args) -> 'bool' | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | get separate parts of the switch + | + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) | | get_jtable_element_size(self, *args) -> 'int' | get_jtable_element_size(self) -> int @@ -57650,6 +74313,7 @@ class switch_info_t(builtins.object) | | get_shift(self, *args) -> 'int' | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. | | get_version(self, *args) -> 'int' | get_version(self) -> int @@ -57678,23 +74342,40 @@ class switch_info_t(builtins.object) | is_subtract(self, *args) -> 'bool' | is_subtract(self) -> bool | + | is_user_defined(self, *args) -> 'bool' + | is_user_defined(self) -> bool + | | set_elbase(self, *args) -> 'void' | set_elbase(self, base) + | + | @param base: ea_t | | set_expr(self, *args) -> 'void' | set_expr(self, r, dt) + | + | @param r: int + | @param dt: op_dtype_t | | set_jtable_element_size(self, *args) -> 'void' | set_jtable_element_size(self, size) + | + | @param size: int | | set_jtable_size(self, *args) -> 'void' | set_jtable_size(self, size) + | + | @param size: int | | set_shift(self, *args) -> 'void' | set_shift(self, shift) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) | | set_vtable_element_size(self, *args) -> 'void' | set_vtable_element_size(self, size) + | + | @param size: int | | use_std_table(self, *args) -> 'bool' | use_std_table(self) -> bool @@ -57709,46 +74390,46 @@ class switch_info_t(builtins.object) | list of weak references to the object (if defined) | | custom - | switch_info_t_custom_get(self) -> uval_t + | custom | | defjump - | switch_info_t_defjump_get(self) -> ea_t + | defjump | | elbase - | switch_info_t_elbase_get(self) -> ea_t + | elbase | | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t + | expr_ea | | flags - | switch_info_t_flags_get(self) -> uint32 + | flags | | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t + | ind_lowcase | | jcases - | switch_info_t_jcases_get(self) -> int + | jcases | | jumps - | switch_info_t_jumps_get(self) -> ea_t + | jumps | | lowcase | _get_values_lowcase(self) -> ea_t | | marks - | switch_info_t_marks_get(self) -> eavec_t * + | marks | | ncases - | switch_info_t_ncases_get(self) -> ushort + | ncases | | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t + | regdtype | | regnum - | switch_info_t_regnum_get(self) -> int + | regnum | | startea - | switch_info_t_startea_get(self) -> ea_t + | startea | | thisown | The membership flag @@ -57765,923 +74446,60 @@ Help on function switch_info_t__from_ptrval__ in module ida_nalt: switch_info_t__from_ptrval__(*args) -> 'switch_info_t *' switch_info_t__from_ptrval__(ptrval) -> switch_info_t + + @param ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) -> 'void' unhide_border(ea) + + @param ea: ea_t Help on function unhide_item in module ida_nalt: unhide_item(*args) -> 'void' unhide_item(ea) + + @param ea: ea_t + +Help on function upd_abits in module ida_nalt: + +upd_abits(*args) -> 'void' + upd_abits(ea, clr_bits, set_bits) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t + +Help on function uses_aflag_modsp in module ida_nalt: + +uses_aflag_modsp(*args) -> 'bool' + uses_aflag_modsp(flags) -> bool + + @param flags: aflags_t Help on function uses_modsp in module ida_nalt: uses_modsp(*args) -> 'bool' uses_modsp(ea) -> bool + + @param ea: ea_t Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) -> 'int' validate_idb_names(do_repair) -> int + + @param do_repair: bool -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -should not be modified by modules - -sp delta value is fixed by analysis. -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ) -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_USEMODSP -""" -example: pop [rsp+N] - -insn modifes SP and uses the modified value -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -(comes from the user or type library) - -the type information is definitive. -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal +Module "ida_name"s docstring: """ +Functions that deal with names. -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -(should by equal to power of 2) +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" -alignment value if the item is 'FF_ALIGN' -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 -""" - -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference the kernel will call \\ph{notify}(ph.custom_offset, -.... that can change all arguments used for calculations. This flag is -useful for custom fixups -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference type -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name -""" - -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTED_EXTLANG -""" -last selected extlang name (from the execute script box) -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -segment will be used) - -elbase is present (otherwise the base of the switch -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -(for sparse switches) - -value table elements are used as indexes into the jump table -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -for first entry in values table) - -jumptable is inversed. (last entry is -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_RESERVED -""" -was: SWI_DEFAULT -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" - -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -otherwise lowcase present - -sparse switch (value table present) -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" - -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === Help on class NearestName in module ida_name: class NearestName(builtins.object) @@ -58719,22 +74537,18 @@ Help on function append_struct_fields in module ida_name: append_struct_fields(*args) -> 'qstring *, adiff_t *' append_struct_fields(disp, n, path, flags, delta, appzero) -> str - - Append names of struct fields to a name if the name is a struct name. - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags64_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? @return: flags of the innermost struct member or the input flags Help on function calc_gtn_flags in module ida_name: @@ -58751,36 +74565,42 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) -> 'qstring *' cleanup_name(ea, name, flags=0) -> str + + @param ea: ea_t + @param name: char const * + @param flags: uint32 Help on function del_debug_names in module ida_name: del_debug_names(*args) -> 'void' del_debug_names(ea1, ea2) + + @param ea1: ea_t + @param ea2: ea_t Help on function del_global_name in module ida_name: del_global_name(*args) -> 'bool' del_global_name(ea) -> bool + + @param ea: ea_t Help on function del_local_name in module ida_name: del_local_name(*args) -> 'bool' del_local_name(ea) -> bool + + @param ea: ea_t Help on function demangle_name in module ida_name: demangle_name(*args) -> 'qstring *' demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - - Demangle a name. - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t Help on class ea_name_t in module ida_name: @@ -58792,6 +74612,9 @@ class ea_name_t(builtins.object) | __init__(self, *args) | __init__(self) -> ea_name_t | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -58808,10 +74631,10 @@ class ea_name_t(builtins.object) | list of weak references to the object (if defined) | | ea - | ea_name_t_ea_get(self) -> ea_t + | ea | | name - | ea_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -58825,10 +74648,14 @@ class ea_name_vec_t(builtins.object) | | __getitem__(self, *args) -> 'ea_name_t const &' | __getitem__(self, i) -> ea_name_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58840,19 +74667,23 @@ class ea_name_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ea_name_t const & | | __swig_destroy__ = delete_ea_name_vec_t(...) | delete_ea_name_vec_t(self) | | at(self, *args) -> 'ea_name_t const &' | at(self, _idx) -> ea_name_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ea_name_t >::const_iterator' | begin(self) -> ea_name_t - | begin(self) -> ea_name_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -58865,11 +74696,16 @@ class ea_name_vec_t(builtins.object) | | end(self, *args) -> 'qvector< ea_name_t >::const_iterator' | end(self) -> ea_name_t - | end(self) -> ea_name_t | | erase(self, *args) -> 'qvector< ea_name_t >::iterator' | erase(self, it) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | | erase(self, first, last) -> ea_name_t + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator | | extract(self, *args) -> 'ea_name_t *' | extract(self) -> ea_name_t @@ -58879,18 +74715,29 @@ class ea_name_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=ea_name_t()) + | + | @param x: ea_name_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ea_name_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ea_name_t >::iterator' | insert(self, it, x) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ea_name_t &' | push_back(self, x) + | + | @param x: ea_name_t const & + | | push_back(self) -> ea_name_t | | qclear(self, *args) -> 'void' @@ -58898,16 +74745,26 @@ class ea_name_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ea_name_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ea_name_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58928,770 +74785,582 @@ Help on function extract_name in module ida_name: extract_name(*args) -> 'qstring *' extract_name(line, x) -> str - - Extract a name or address from the specified string. - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor @return: -1 if cannot extract. otherwise length of the name Help on function force_name in module ida_name: force_name(*args) -> 'bool' force_name(ea, name, flags=0) -> bool + + @param ea: ea_t + @param name: char const * + @param flags: int Help on function get_colored_demangled_name in module ida_name: get_colored_demangled_name(*args) -> 'qstring' get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_colored_long_name in module ida_name: get_colored_long_name(*args) -> 'qstring' get_colored_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function get_colored_name in module ida_name: get_colored_name(*args) -> 'qstring' get_colored_name(ea) -> qstring + + @param ea: ea_t Help on function get_colored_short_name in module ida_name: get_colored_short_name(*args) -> 'qstring' get_colored_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function get_cp_validity in module ida_name: get_cp_validity(*args) -> 'bool' get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range - - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function get_debug_name in module ida_name: get_debug_name(*args) -> 'qstring *' get_debug_name(ea_ptr, how) -> str + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) -> 'ea_t' get_debug_name_ea(name) -> ea_t + + @param name: char const * Help on function get_debug_names in module ida_name: get_debug_names(*args) -> 'PyObject *' get_debug_names(names, ea1, ea2) - get_debug_names(ea1, ea2, return_list=False) -> PyObject * + + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t + + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) -> 'qstring' get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_ea_name in module ida_name: get_ea_name(*args) -> 'qstring' get_ea_name(ea, gtn_flags=0) -> qstring - - Get name at the specified address. - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits @return: success Help on function get_long_name in module ida_name: get_long_name(*args) -> 'qstring' get_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_mangled_name_type in module ida_name: + +get_mangled_name_type(*args) -> 'mangled_name_type_t' + get_mangled_name_type(name) -> mangled_name_type_t + + @param name: char const * Help on function get_name in module ida_name: get_name(*args) -> 'qstring' get_name(ea) -> qstring + + @param ea: ea_t Help on function get_name_base_ea in module ida_name: get_name_base_ea(*args) -> 'ea_t' get_name_base_ea(_from, to) -> ea_t - - Get address of the name used in the expression for the address - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address @return: address of the name used to represent the operand Help on function get_name_color in module ida_name: get_name_color(*args) -> 'color_t' get_name_color(_from, ea) -> color_t - - - Calculate flags for 'get_ea_name()' function. + Calculate flags for get_ea_name() function. Get name color. - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_expr in module ida_name: get_name_expr(*args) -> 'qstring *' get_name_expr(_from, n, ea, off, flags=0x0001) -> str + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. - - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. Help on function get_name_value in module ida_name: get_name_value(*args) -> 'uval_t *' get_name_value(_from, name) -> int + Get value of the name. This function knows about: regular names, enums, special + segments, etc. - - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr @return: Name value result codes Help on function get_nice_colored_name in module ida_name: get_nice_colored_name(*args) -> 'qstring *' get_nice_colored_name(ea, flags=0) -> str + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset - - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - - @param ea (C++: ea_t) - @param flags (C++: int) + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags @return: the length of the generated name in bytes. Help on function get_nlist_ea in module ida_name: get_nlist_ea(*args) -> 'ea_t' get_nlist_ea(idx) -> ea_t - - Get address from the list at 'idx'. - - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_idx in module ida_name: get_nlist_idx(*args) -> 'size_t' get_nlist_idx(ea) -> size_t + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. - - Get index of the name in the listreturns the closest match. may return - idx >= size. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_nlist_name in module ida_name: get_nlist_name(*args) -> 'char const *' get_nlist_name(idx) -> char const * - - Get name using idx. - - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_size in module ida_name: get_nlist_size(*args) -> 'size_t' get_nlist_size() -> size_t - - Get number of names in the list. Help on function get_short_name in module ida_name: get_short_name(*args) -> 'qstring' get_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function get_visible_name in module ida_name: get_visible_name(*args) -> 'qstring' get_visible_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function hide_name in module ida_name: hide_name(*args) -> 'void' hide_name(ea) - - Remove name from the list of names - @param ea: address of the name (C++: ea_t) + @param ea: (C++: ea_t) address of the name Help on function is_ident in module ida_name: is_ident(*args) -> 'bool' is_ident(name) -> bool - - Is a valid name? (including ::MangleChars) - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_ident_cp in module ida_name: is_ident_cp(*args) -> 'bool' is_ident_cp(cp) -> bool + Can a character appear in a name? (present in ::NameChars or ::MangleChars) - - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - - - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_in_nlist in module ida_name: is_in_nlist(*args) -> 'bool' is_in_nlist(ea) -> bool + Is the name included into the name list? - - Is name included into names list? - - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_name_defined_locally in module ida_name: is_name_defined_locally(*args) -> 'bool' is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - - Is the name defined locally in the specified function? - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) @return: true if the name has been defined Help on function is_public_name in module ida_name: is_public_name(*args) -> 'bool' is_public_name(ea) -> bool + + @param ea: ea_t Help on function is_strlit_cp in module ida_name: is_strlit_cp(*args) -> 'bool' is_strlit_cp(cp, specific_ranges=None) -> bool + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) - - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * Help on function is_uname in module ida_name: is_uname(*args) -> 'bool' is_uname(name) -> bool - - Is valid user-specified name? (valid name & !dummy prefix). - @param name: name to test. may be NULL. (C++: const char *) + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_valid_cp in module ida_name: is_valid_cp(*args) -> 'bool' is_valid_cp(cp, kind, data=None) -> bool - - Is the given codepoint acceptable in the given context? - - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) Help on function is_valid_typename in module ida_name: is_valid_typename(*args) -> 'bool' is_valid_typename(name) -> bool - - Is valid type name? - @param name: name to test. may be NULL. (C++: const char *) + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_visible_cp in module ida_name: is_visible_cp(*args) -> 'bool' is_visible_cp(cp) -> bool - - Can a character be displayed in a name? (present in ::NameChars) - - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) -> 'bool' is_weak_name(ea) -> bool + + @param ea: ea_t Help on function make_name_auto in module ida_name: make_name_auto(*args) -> 'bool' make_name_auto(ea) -> bool + + @param ea: ea_t Help on function make_name_non_public in module ida_name: make_name_non_public(*args) -> 'void' make_name_non_public(ea) + + @param ea: ea_t Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) -> 'void' make_name_non_weak(ea) + + @param ea: ea_t Help on function make_name_public in module ida_name: make_name_public(*args) -> 'void' make_name_public(ea) + + @param ea: ea_t Help on function make_name_user in module ida_name: make_name_user(*args) -> 'bool' make_name_user(ea) -> bool + + @param ea: ea_t Help on function make_name_weak in module ida_name: make_name_weak(*args) -> 'void' make_name_weak(ea) + + @param ea: ea_t Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) -> 'void' rebuild_nlist() - - - Rebuild names list. + Rebuild the name list. Help on function reorder_dummy_names in module ida_name: reorder_dummy_names(*args) -> 'void' reorder_dummy_names() - - Renumber dummy names. Help on function set_cp_validity in module ida_name: set_cp_validity(*args) -> 'void' set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range - - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function set_debug_name in module ida_name: set_debug_name(*args) -> 'bool' set_debug_name(ea, name) -> bool + + @param ea: ea_t + @param name: char const * Help on function set_dummy_name in module ida_name: set_dummy_name(*args) -> 'bool' set_dummy_name(_from, ea) -> bool + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). - - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte Help on function set_name in module ida_name: set_name(*args) -> 'bool' set_name(ea, name, flags=0) -> bool + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. - - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, non- - auto. (C++: int) + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed Help on function show_name in module ida_name: show_name(*args) -> 'void' show_name(ea) - - Insert name to the list of names. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function validate_name in module ida_name: validate_name(*args) -> 'PyObject *' validate_name(name, type, flags=0) -> PyObject * + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). - - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered @return: success -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. +Module "ida_netnode"s docstring: """ +Functions that provide the lowest level public interface to the database. +Namely, we use Btree. To learn more about BTree: -ida_name.GETN_APPZERO -""" -append a struct field name if the field offset is zero? +\link{https://en.wikipedia.org/wiki/B-tree} -meaningful only if the name refers to a structure. -""" +We do not use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Initially there is a trivial +mapping of the linear addresses used in the program to netnodes (later this +mapping may be modified using ea2node and node2ea functions; this is used for +fast database rebasings). If we have additional information about an address +(for example, a comment is attached to it), this information is stored in the +corresponding netnode. See nalt.hpp to see how the kernel uses netnodes. Also, +some netnodes have no corresponding linear address (however, they still have an +id). They are used to store information not related to a particular address. -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" +Each netnode _may_ have the following attributes: -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblob/getblob and other blob-related functions. -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" +Advanced info: -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" - -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -delete the hindering item - -if name cannot be set because of a tail byte, -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === Help on function exist in module ida_netnode: exist(*args) -> 'bool' exist(n) -> bool + + @param n: netnode const & Help on class netnode in module ida_netnode: @@ -59702,16 +75371,32 @@ class netnode(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | + | @param n: netnode & + | | __eq__(self, x) -> bool + | + | @param x: nodeidx_t | | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode + | __init__(self, num=nodeidx_t(-1)) -> netnode + | + | @param num: nodeidx_t + | | __init__(self, _name, namlen=0, do_create=False) -> netnode + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | + | @param n: netnode & + | | __ne__(self, x) -> bool + | + | @param x: nodeidx_t | | __repr__ = _swig_repr(self) | @@ -59720,346 +75405,796 @@ class netnode(builtins.object) | | altdel(self, *args) -> 'bool' | altdel(self, alt, tag=atag) -> bool + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success | altdel(self) -> bool | | altdel_all(self, *args) -> 'bool' - | altdel_all(self, tag) -> bool + | altdel_all(self, tag=atag) -> bool + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success | | altdel_ea(self, *args) -> 'bool' | altdel_ea(self, ea, tag=atag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | altdel_idx8(self, *args) -> 'bool' | altdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar | | altfirst(self, *args) -> 'nodeidx_t' | altfirst(self, tag=atag) -> nodeidx_t + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty | | altfirst_idx8(self, *args) -> 'nodeidx_t' | altfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | altlast(self, *args) -> 'nodeidx_t' | altlast(self, tag=atag) -> nodeidx_t + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty | | altlast_idx8(self, *args) -> 'nodeidx_t' | altlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | altnext(self, *args) -> 'nodeidx_t' | altnext(self, cur, tag=atag) -> nodeidx_t + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist | | altnext_idx8(self, *args) -> 'nodeidx_t' | altnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | altprev(self, *args) -> 'nodeidx_t' | altprev(self, cur, tag=atag) -> nodeidx_t + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist | | altprev_idx8(self, *args) -> 'nodeidx_t' | altprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | altset(self, *args) -> 'bool' | altset(self, alt, value, tag=atag) -> bool + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur | | altset_ea(self, *args) -> 'bool' | altset_ea(self, ea, value, tag=atag) -> bool + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar | | altset_idx8(self, *args) -> 'bool' | altset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar | | altshift(self, *args) -> 'size_t' | altshift(self, _from, to, size, tag=atag) -> size_t + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | altval(self, *args) -> 'nodeidx_t' | altval(self, alt, tag=atag) -> nodeidx_t + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes | | altval_ea(self, *args) -> 'nodeidx_t' | altval_ea(self, ea, tag=atag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar | | altval_idx8(self, *args) -> 'nodeidx_t' | altval_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | blobsize(self, *args) -> 'size_t' | blobsize(self, _start, tag) -> size_t + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob | | blobsize_ea(self, *args) -> 'size_t' | blobsize_ea(self, ea, tag) -> size_t + | + | @param ea: ea_t + | @param tag: uchar | | chardel(self, *args) -> 'bool' | chardel(self, alt, tag) -> bool + | + | @param alt: nodeidx_t + | @param tag: uchar | | chardel_ea(self, *args) -> 'bool' | chardel_ea(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | chardel_idx8(self, *args) -> 'bool' | chardel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar | | charfirst(self, *args) -> 'nodeidx_t' | charfirst(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charfirst_idx8(self, *args) -> 'nodeidx_t' | charfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charlast(self, *args) -> 'nodeidx_t' | charlast(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charlast_idx8(self, *args) -> 'nodeidx_t' | charlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charnext(self, *args) -> 'nodeidx_t' | charnext(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar | | charnext_idx8(self, *args) -> 'nodeidx_t' | charnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | charprev(self, *args) -> 'nodeidx_t' | charprev(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar | | charprev_idx8(self, *args) -> 'nodeidx_t' | charprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | charset(self, *args) -> 'bool' | charset(self, alt, val, tag) -> bool + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar | | charset_ea(self, *args) -> 'bool' | charset_ea(self, ea, val, tag) -> bool + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar | | charset_idx8(self, *args) -> 'bool' | charset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar | | charshift(self, *args) -> 'size_t' | charshift(self, _from, to, size, tag) -> size_t + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar | | charval(self, *args) -> 'uchar' | charval(self, alt, tag) -> uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | charval_ea(self, *args) -> 'uchar' | charval_ea(self, ea, tag) -> uchar + | + | @param ea: ea_t + | @param tag: uchar | | charval_idx8(self, *args) -> 'uchar' | charval_idx8(self, alt, tag) -> uchar + | + | @param alt: uchar + | @param tag: uchar | | copyto(self, *args) -> 'size_t' - | copyto(self, target, count=1) -> size_t + | copyto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | create(self, *args) -> 'bool' | create(self, _name, namlen=0) -> bool + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | | create(self) -> bool | | delblob(self, *args) -> 'int' | delblob(self, _start, tag) -> int + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals | | delblob_ea(self, *args) -> 'int' | delblob_ea(self, ea, tag) -> int + | + | @param ea: ea_t + | @param tag: uchar | | delvalue(self, *args) -> 'bool' | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error | | eadel(self, *args) -> 'bool' | eadel(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | eadel_idx8(self, *args) -> 'bool' | eadel_idx8(self, idx, tag) -> bool + | + | @param idx: uchar + | @param tag: uchar | | eaget(self, *args) -> 'ea_t' | eaget(self, ea, tag) -> ea_t + | + | @param ea: ea_t + | @param tag: uchar | | eaget_idx(self, *args) -> 'ea_t' | eaget_idx(self, idx, tag) -> ea_t + | + | @param idx: nodeidx_t + | @param tag: uchar | | eaget_idx8(self, *args) -> 'ea_t' | eaget_idx8(self, idx, tag) -> ea_t + | + | @param idx: uchar + | @param tag: uchar | | easet(self, *args) -> 'bool' | easet(self, ea, addr, tag) -> bool + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) | | easet_idx(self, *args) -> 'bool' | easet_idx(self, idx, addr, tag) -> bool + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar | | easet_idx8(self, *args) -> 'bool' | easet_idx8(self, idx, addr, tag) -> bool + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar | | end(self, *args) -> 'bool' | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | get_name(self, *args) -> 'ssize_t' | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length | | getblob(self, *args) -> 'PyObject *' - | getblob(self, start, tag) -> PyObject * + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise | | getblob_ea(self, *args) -> 'PyObject *' | getblob_ea(self, ea, tag) -> PyObject * + | + | @param ea: ea_t + | @param tag: char | | getclob(self, *args) -> 'PyObject *' - | getclob(self, start, tag) -> PyObject * + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char | | hashdel(self, *args) -> 'bool' | hashdel(self, idx, tag=htag) -> bool + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist | | hashdel_all(self, *args) -> 'bool' | hashdel_all(self, tag=htag) -> bool + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success | | hashfirst(self, *args) -> 'ssize_t' | hashfirst(self, tag=htag) -> ssize_t + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashlast(self, *args) -> 'ssize_t' | hashlast(self, tag=htag) -> ssize_t + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashnext(self, *args) -> 'ssize_t' | hashnext(self, idx, tag=htag) -> ssize_t + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashprev(self, *args) -> 'ssize_t' | hashprev(self, idx, tag=htag) -> ssize_t + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashset(self, *args) -> 'bool' | hashset(self, idx, value, tag=htag) -> bool + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | hashset_buf(self, *args) -> 'bool' | hashset_buf(self, idx, py_str, tag=htag) -> bool + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char | | hashset_idx(self, *args) -> 'bool' | hashset_idx(self, idx, value, tag=htag) -> bool + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar | | hashstr(self, *args) -> 'ssize_t' | hashstr(self, idx, tag=htag) -> ssize_t + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashstr_buf(self, *args) -> 'PyObject *' | hashstr_buf(self, idx, tag=htag) -> PyObject * + | + | @param idx: char const * + | @param tag: char | | hashval(self, *args) -> 'ssize_t' | hashval(self, idx, tag=htag) -> ssize_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes | | hashval_long(self, *args) -> 'nodeidx_t' | hashval_long(self, idx, tag=htag) -> nodeidx_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist | | index(self, *args) -> 'nodeidx_t' | index(self) -> nodeidx_t | | kill(self, *args) -> 'void' | kill(self) + | Delete a netnode with all information attached to it. | | long_value(self, *args) -> 'nodeidx_t' | long_value(self) -> nodeidx_t | | lower_bound(self, *args) -> 'nodeidx_t' | lower_bound(self, cur, tag=stag) -> nodeidx_t + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty | | lower_bound_ea(self, *args) -> 'nodeidx_t' | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar | | lower_bound_idx8(self, *args) -> 'nodeidx_t' | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | moveto(self, *args) -> 'size_t' - | moveto(self, target, count=1) -> size_t + | moveto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | next(self, *args) -> 'bool' | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes | | prev(self, *args) -> 'bool' | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes | | rename(self, *args) -> 'bool' | rename(self, newname, namlen=0) -> bool + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used | | set(self, *args) -> 'bool' | set(self, value) -> bool + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok | | set_long(self, *args) -> 'bool' | set_long(self, x) -> bool + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) | | setblob(self, *args) -> 'bool' | setblob(self, buf, _start, tag) -> bool + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success | | setblob_ea(self, *args) -> 'bool' | setblob_ea(self, buf, ea, tag) -> bool + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar | | start(self, *args) -> 'bool' | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | supdel(self, *args) -> 'bool' | supdel(self, alt, tag=stag) -> bool + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success | supdel(self) -> bool | | supdel_all(self, *args) -> 'bool' | supdel_all(self, tag) -> bool + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success | | supdel_ea(self, *args) -> 'bool' | supdel_ea(self, ea, tag=stag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | supdel_idx8(self, *args) -> 'bool' | supdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar | | supdel_range(self, *args) -> 'int' | supdel_range(self, idx1, idx2, tag) -> int + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements | | supdel_range_idx8(self, *args) -> 'int' | supdel_range_idx8(self, idx1, idx2, tag) -> int + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) | | supfirst(self, *args) -> 'nodeidx_t' | supfirst(self, tag=stag) -> nodeidx_t + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty | | supfirst_idx8(self, *args) -> 'nodeidx_t' | supfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | suplast(self, *args) -> 'nodeidx_t' | suplast(self, tag=stag) -> nodeidx_t + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty | | suplast_idx8(self, *args) -> 'nodeidx_t' | suplast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | supnext(self, *args) -> 'nodeidx_t' | supnext(self, cur, tag=stag) -> nodeidx_t + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist | | supnext_idx8(self, *args) -> 'nodeidx_t' | supnext_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | supprev(self, *args) -> 'nodeidx_t' | supprev(self, cur, tag=stag) -> nodeidx_t + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist | | supprev_idx8(self, *args) -> 'nodeidx_t' | supprev_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | supset(self, *args) -> 'bool' | supset(self, alt, value, tag=stag) -> bool - | supset(self, alt, value, tag=stag) -> bool + | Set value of supval array element. + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | supset_ea(self, *args) -> 'bool' | supset_ea(self, ea, value, tag=stag) -> bool - | supset_ea(self, ea, value, tag=stag) -> bool + | + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar | | supset_idx8(self, *args) -> 'bool' | supset_idx8(self, alt, value, tag) -> bool + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar | | supshift(self, *args) -> 'size_t' | supshift(self, _from, to, size, tag=stag) -> size_t + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | supstr(self, *args) -> 'ssize_t' | supstr(self, alt, tag=stag) -> ssize_t + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) | | supstr_ea(self, *args) -> 'ssize_t' | supstr_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar | | supstr_idx8(self, *args) -> 'ssize_t' | supstr_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar | | supval(self, *args) -> 'ssize_t' | supval(self, alt, tag=stag) -> ssize_t + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist | | supval_ea(self, *args) -> 'ssize_t' | supval_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar | | supval_idx8(self, *args) -> 'ssize_t' | supval_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar | | valobj(self, *args) -> 'ssize_t' | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present | | valstr(self, *args) -> 'ssize_t' | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const | | value_exists(self, *args) -> 'bool' | value_exists(self) -> bool | | ---------------------------------------------------------------------- + | Static methods defined here: + | + | exist(*args) -> 'bool' + | exist(_name) -> bool + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- | Data descriptors defined here: | | __dict__ @@ -60076,245 +76211,258 @@ class netnode(builtins.object) | | __hash__ = None -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE +Help on function netnode_exist in module ida_netnode: + +netnode_exist(*args) -> 'bool' + netnode_exist(_name) -> bool + + @param _name: char const * + +Module "ida_offset"s docstring: """ -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + Help on function add_refinfo_dref in module ida_offset: add_refinfo_dref(*args) -> 'ea_t' add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. - - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - - @param insn: the referencing instruction (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction @return: the target address of the reference Help on function calc_basevalue in module ida_offset: calc_basevalue(*args) -> 'ea_t' calc_basevalue(target, base) -> ea_t - - Calculate the value of the reference base. - - @param target (C++: ea_t) - @param base (C++: ea_t) + @param target: (C++: ea_t) + @param base: (C++: ea_t) Help on function calc_offset_base in module ida_offset: calc_offset_base(*args) -> 'ea_t' calc_offset_base(ea, n) -> ea_t + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. - - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR Help on function calc_probable_base_by_value in module ida_offset: calc_probable_base_by_value(*args) -> 'ea_t' calc_probable_base_by_value(ea, off) -> ea_t + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR - - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - - @param ea (C++: ea_t) - @param off (C++: uval_t) + @param ea: (C++: ea_t) + @param off: (C++: uval_t) Help on function calc_reference_data in module ida_offset: calc_reference_data(*args) -> 'bool' calc_reference_data(target, base, _from, ri, opval) -> bool + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. - - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) @return: success Help on function calc_target in module ida_offset: calc_target(*args) -> 'ea_t' calc_target(_from, opval, ri) -> ea_t + Retrieves refinfo_t structure and calculates the target. + + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & + calc_target(_from, ea, n, opval) -> ea_t - - Calculates the target, using the provided 'refinfo_t' . - - - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t Help on function can_be_off32 in module ida_offset: can_be_off32(*args) -> 'ea_t' can_be_off32(ea) -> ea_t + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. - - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_default_reftype in module ida_offset: get_default_reftype(*args) -> 'reftype_t' get_default_reftype(ea) -> reftype_t - - Get default reference type depending on the segment. - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 Help on function get_offbase in module ida_offset: get_offbase(*args) -> 'ea_t' get_offbase(ea, n) -> ea_t - - Get offset base value - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR Help on function get_offset_expr in module ida_offset: get_offset_expr(*args) -> 'qstring *' get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + See get_offset_expression() - - See 'get_offset_expression()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) Help on function get_offset_expression in module ida_offset: get_offset_expression(*args) -> 'qstring *' get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression Help on function op_offset in module ida_offset: -op_offset(*args) -> 'int' - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_ex in module ida_offset: -op_offset_ex(*args) -> 'int' - op_offset_ex(ea, n, ri) -> int +op_offset_ex(*args) -> 'bool' + op_offset_ex(ea, n, ri) -> bool + Convert operand to a reference. To delete an offset, use clr_op_type() function. - - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information @return: success Help on function op_plain_offset in module ida_offset: op_plain_offset(*args) -> 'bool' op_plain_offset(ea, n, base) -> bool - - Convert operand to a reference with the default reference type. - - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" Help on class __qmutex_t in module ida_pro: @@ -60512,13 +76660,19 @@ class boolvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< bool > const & | | __getitem__(self, *args) -> 'bool const &' | __getitem__(self, i) -> bool const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60527,20 +76681,31 @@ class boolvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bool const & | | __swig_destroy__ = delete_boolvec_t(...) | delete_boolvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bool const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: bool const & | | append = push_back(self, *args) -> 'bool &' | @@ -60568,35 +76733,59 @@ class boolvec_t(builtins.object) | | erase(self, *args) -> 'qvector< bool >::iterator' | erase(self, it) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | | erase(self, first, last) -> qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator | | extract(self, *args) -> 'bool *' | extract(self) -> bool * | | find(self, *args) -> 'qvector< bool >::const_iterator' | find(self, x) -> qvector< bool >::iterator + | + | @param x: bool const & + | | find(self, x) -> qvector< bool >::const_iterator + | + | @param x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bool()) + | + | @param x: bool const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: bool const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: bool * + | @param len: size_t | | insert(self, *args) -> 'qvector< bool >::iterator' | insert(self, it, x) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | @param x: bool const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bool &' | push_back(self, x) + | + | @param x: bool const & + | | push_back(self) -> bool & | | qclear(self, *args) -> 'void' @@ -60604,16 +76793,26 @@ class boolvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bool const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< bool > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -60672,19 +76871,19 @@ class channel_redir_t(builtins.object) | list of weak references to the object (if defined) | | fd - | channel_redir_t_fd_get(self) -> int + | fd | | file - | channel_redir_t_file_get(self) -> qstring * + | file | | flags - | channel_redir_t_flags_get(self) -> int + | flags | | length - | channel_redir_t_length_get(self) -> int + | length | | start - | channel_redir_t_start_get(self) -> int + | start | | thisown | The membership flag @@ -60693,25 +76892,18 @@ Help on function check_process_exit in module ida_pro: check_process_exit(*args) -> 'int' check_process_exit(handle, exit_code, msecs=-1) -> int - - Check whether process has terminated or not. - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - -Help on function clear_bits in module ida_pro: - -clear_bits(*args) -> 'void' - clear_bits(bitmap, low, high) - - - Clear bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code Help on class ea_array in module ida_pro: @@ -60722,14 +76914,21 @@ class ea_array(builtins.object) | | __getitem__(self, *args) -> 'ea_t' | __getitem__(self, index) -> ea_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: ea_t | | __swig_destroy__ = delete_ea_array(...) | delete_ea_array(self) @@ -60742,6 +76941,8 @@ class ea_array(builtins.object) | | frompointer(*args) -> 'ea_array *' | frompointer(t) -> ea_array + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60759,6 +76960,8 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) -> 'ea_array *' ea_array_frompointer(t) -> ea_array + + @param t: ea_t * Help on class ea_pointer in module ida_pro: @@ -60777,6 +76980,8 @@ class ea_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: ea_t | | cast(self, *args) -> 'ea_t *' | cast(self) -> ea_t * @@ -60789,6 +76994,8 @@ class ea_pointer(builtins.object) | | frompointer(*args) -> 'ea_pointer *' | frompointer(t) -> ea_pointer + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60806,19 +77013,19 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) -> 'ea_pointer *' ea_pointer_frompointer(t) -> ea_pointer + + @param t: ea_t * Help on function extend_sign in module ida_pro: extend_sign(*args) -> 'uint64' extend_sign(v, nbytes, sign_extend) -> uint64 + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. - - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -60845,48 +77052,54 @@ class instant_dbgopts_t(builtins.object) | list of weak references to the object (if defined) | | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * + | _pass | | attach - | instant_dbgopts_t_attach_get(self) -> bool + | attach | | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * + | debmod | | env - | instant_dbgopts_t_env_get(self) -> qstring * + | env | | event_id - | instant_dbgopts_t_event_id_get(self) -> int + | event_id | | host - | instant_dbgopts_t_host_get(self) -> qstring * + | host | | pid - | instant_dbgopts_t_pid_get(self) -> int + | pid | | port - | instant_dbgopts_t_port_get(self) -> int + | port | | thisown | The membership flag -Help on class longlongvec_t in module ida_pro: +Help on class int64vec_t in module ida_pro: -class longlongvec_t(builtins.object) +class int64vec_t(builtins.object) | Proxy of C++ qvector< long long > class. | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< long long > const & | | __getitem__(self, *args) -> 'long long const &' | __getitem__(self, i) -> long long const & + | + | @param i: size_t | | __init__(self, *args) - | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t + | __init__(self) -> int64vec_t + | __init__(self, x) -> int64vec_t + | + | @param x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60895,20 +77108,31 @@ class longlongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: long long const & | - | __swig_destroy__ = delete_longlongvec_t(...) - | delete_longlongvec_t(self) + | __swig_destroy__ = delete_int64vec_t(...) + | delete_int64vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: long long const & | | append = push_back(self, *args) -> 'long long &' | @@ -60936,32 +77160,54 @@ class longlongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< long long >::iterator' | erase(self, it) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | | erase(self, first, last) -> qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator | | extract(self, *args) -> 'long long *' | extract(self) -> long long * | | find(self, *args) -> 'qvector< long long >::const_iterator' | find(self, x) -> qvector< long long >::iterator + | + | @param x: long long const & + | | find(self, x) -> qvector< long long >::const_iterator + | + | @param x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< long long >::iterator' | insert(self, it, x) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | @param x: long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'long long &' | push_back(self, x) + | + | @param x: long long const & + | | push_back(self) -> long long & | | qclear(self, *args) -> 'void' @@ -60969,16 +77215,26 @@ class longlongvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: long long const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61017,6 +77273,8 @@ class int_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: int | | cast(self, *args) -> 'int *' | cast(self) -> int * @@ -61029,6 +77287,8 @@ class int_pointer(builtins.object) | | frompointer(*args) -> 'int_pointer *' | frompointer(t) -> int_pointer + | + | @param t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61046,6 +77306,8 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) -> 'int_pointer *' int_pointer_frompointer(t) -> int_pointer + + @param t: int * Help on class intvec_t in module ida_pro: @@ -61056,13 +77318,19 @@ class intvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61071,20 +77339,31 @@ class intvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & | | __swig_destroy__ = delete_intvec_t(...) | delete_intvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | @@ -61112,32 +77391,54 @@ class intvec_t(builtins.object) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) + | + | @param x: int const & + | | push_back(self) -> int & | | qclear(self, *args) -> 'void' @@ -61145,16 +77446,26 @@ class intvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61180,83 +77491,72 @@ Help on function is_control_tty in module ida_pro: is_control_tty(*args) -> 'enum tty_control_t' is_control_tty(fd) -> enum tty_control_t - - Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). - @param fd (C++: int) + @param fd: (C++: int) Help on function is_main_thread in module ida_pro: is_main_thread(*args) -> 'bool' is_main_thread() -> bool - - Are we running in the main thread? Help on function log2ceil in module ida_pro: log2ceil(*args) -> 'int' log2ceil(d64) -> int + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 - - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - - @param d64 (C++: uint64) + @param d64: (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) -> 'int' log2floor(d64) -> int + + @param d64: uint64 Help on function parse_dbgopts in module ida_pro: parse_dbgopts(*args) -> 'bool' parse_dbgopts(ido, r_switch) -> bool + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ - - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * @return: true-ok, false-parse error Help on function qatoll in module ida_pro: qatoll(*args) -> 'int64' qatoll(nptr) -> int64 + + @param nptr: char const * Help on function qcontrol_tty in module ida_pro: qcontrol_tty(*args) -> 'void' qcontrol_tty() - - - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty Help on function qdetach_tty in module ida_pro: qdetach_tty(*args) -> 'void' qdetach_tty() - - - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty Help on function qexit in module ida_pro: qexit(*args) -> 'void' qexit(code) - - Call qatexit functions, shut down UI and kernel, and exit. - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on class qmutex_locker_t in module ida_pro: @@ -61267,6 +77567,8 @@ class qmutex_locker_t(builtins.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t + | + | @param _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -61302,6 +77604,9 @@ class qrefcnt_obj_t(builtins.object) | | release(self, *args) -> 'void' | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61313,7 +77618,7 @@ class qrefcnt_obj_t(builtins.object) | list of weak references to the object (if defined) | | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int + | refcnt | | thisown | The membership flag @@ -61322,21 +77627,33 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) -> 'bool' qstrvec_t_add(_self, s) -> bool + + @param self: PyObject * + @param s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) -> 'PyObject *' qstrvec_t_addressof(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) -> 'bool' qstrvec_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) -> 'bool' qstrvec_t_clear(_self, qclear) -> bool + + @param self: PyObject * + @param qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -61347,97 +77664,134 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) -> 'bool' qstrvec_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) -> 'bool' qstrvec_t_from_list(_self, py_list) -> bool + + @param self: PyObject * + @param py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) -> 'PyObject *' qstrvec_t_get(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) -> 'qstrvec_t *' qstrvec_t_get_clink(_self) -> qstrvec_t * + + @param self: PyObject * Help on function qstrvec_t_get_clink_ptr in module ida_pro: qstrvec_t_get_clink_ptr(*args) -> 'PyObject *' qstrvec_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) -> 'bool' qstrvec_t_insert(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) -> 'bool' qstrvec_t_remove(_self, idx) -> bool + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) -> 'bool' qstrvec_t_set(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) -> 'size_t' qstrvec_t_size(_self) -> size_t + + @param self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) -> 'bool' + qthread_equal(q1, q2) -> bool + Are two threads equal? + + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) Help on function quote_cmdline_arg in module ida_pro: quote_cmdline_arg(*args) -> 'bool' quote_cmdline_arg(arg) -> bool + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell - - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - - @param arg (C++: qstring *) + @param arg: (C++: qstring *) @return: true: modified 'arg' Help on function qvector_reserve in module ida_pro: qvector_reserve(*args) -> 'void *' qvector_reserve(vec, old, cnt, elsize) -> void * - - Change capacity of given qvector. - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element @return: a pointer to the newly allocated array Help on function readbytes in module ida_pro: readbytes(*args) -> 'int' readbytes(h, res, size, mf) -> int - - Read at most 4 bytes from file. - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? @return: 0 on success, nonzero otherwise Help on function reloc_value in module ida_pro: reloc_value(*args) -> 'void' reloc_value(value, size, delta, mf) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) -> 'bool' relocate_relobj(_relobj, ea, mf) -> bool + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool Help on class sel_array in module ida_pro: @@ -61448,14 +77802,21 @@ class sel_array(builtins.object) | | __getitem__(self, *args) -> 'sel_t' | __getitem__(self, index) -> sel_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: sel_t | | __swig_destroy__ = delete_sel_array(...) | delete_sel_array(self) @@ -61468,6 +77829,8 @@ class sel_array(builtins.object) | | frompointer(*args) -> 'sel_array *' | frompointer(t) -> sel_array + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61485,6 +77848,8 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) -> 'sel_array *' sel_array_frompointer(t) -> sel_array + + @param t: sel_t * Help on class sel_pointer in module ida_pro: @@ -61503,6 +77868,8 @@ class sel_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: sel_t | | cast(self, *args) -> 'sel_t *' | cast(self) -> sel_t * @@ -61515,6 +77882,8 @@ class sel_pointer(builtins.object) | | frompointer(*args) -> 'sel_pointer *' | frompointer(t) -> sel_pointer + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61532,19 +77901,8 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) -> 'sel_pointer *' sel_pointer_frompointer(t) -> sel_pointer - -Help on function set_bits in module ida_pro: - -set_bits(*args) -> 'void' - set_bits(bitmap, low, high) - - Set bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param t: sel_t * Help on class sizevec_t in module ida_pro: @@ -61555,13 +77913,19 @@ class sizevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< size_t > const & | | __getitem__(self, *args) -> 'size_t const &' | __getitem__(self, i) -> size_t const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61571,23 +77935,36 @@ class sizevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: size_t const & | | __swig_destroy__ = delete_sizevec_t(...) | delete_sizevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: size_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: size_t const & | | at(self, *args) -> 'size_t const &' | at(self, _idx) -> size_t const & + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -61611,35 +77988,59 @@ class sizevec_t(builtins.object) | | erase(self, *args) -> 'qvector< size_t >::iterator' | erase(self, it) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | | erase(self, first, last) -> qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator | | extract(self, *args) -> 'size_t *' | extract(self) -> size_t * | | find(self, *args) -> 'qvector< size_t >::const_iterator' | find(self, x) -> qvector< size_t >::iterator + | + | @param x: size_t const & + | | find(self, x) -> qvector< size_t >::const_iterator + | + | @param x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=size_t()) + | + | @param x: size_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: size_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: size_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< size_t >::iterator' | insert(self, it, x) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'size_t &' | push_back(self, x) + | + | @param x: size_t const & + | | push_back(self) -> size_t & | | qclear(self, *args) -> 'void' @@ -61647,16 +78048,26 @@ class sizevec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: size_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< size_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61681,11 +78092,10 @@ class sizevec_t(builtins.object) Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * - - + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on class strvec_t in module ida_pro: @@ -61697,10 +78107,14 @@ class strvec_t(builtins.object) | | __getitem__(self, *args) -> 'simpleline_t const &' | __getitem__(self, i) -> simpleline_t const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61711,6 +78125,9 @@ class strvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: simpleline_t const & | | __swig_destroy__ = delete_strvec_t(...) | delete_strvec_t(self) @@ -61741,7 +78158,13 @@ class strvec_t(builtins.object) | | erase(self, *args) -> 'qvector< simpleline_t >::iterator' | erase(self, it) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | | erase(self, first, last) -> qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator | | extract(self, *args) -> 'simpleline_t *' | extract(self) -> simpleline_t * @@ -61751,18 +78174,29 @@ class strvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=simpleline_t()) + | + | @param x: simpleline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: simpleline_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< simpleline_t >::iterator' | insert(self, it, x) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'simpleline_t &' | push_back(self, x) + | + | @param x: simpleline_t const & + | | push_back(self) -> simpleline_t & | | qclear(self, *args) -> 'void' @@ -61770,16 +78204,26 @@ class strvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: simpleline_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< simpleline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61813,6 +78257,8 @@ class sval_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: sval_t | | cast(self, *args) -> 'sval_t *' | cast(self) -> sval_t * @@ -61825,6 +78271,8 @@ class sval_pointer(builtins.object) | | frompointer(*args) -> 'sval_pointer *' | frompointer(t) -> sval_pointer + | + | @param t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61842,6 +78290,8 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) -> 'sval_pointer *' sval_pointer_frompointer(t) -> sval_pointer + + @param t: sval_t * Help on class tid_array in module ida_pro: @@ -61852,14 +78302,21 @@ class tid_array(builtins.object) | | __getitem__(self, *args) -> 'tid_t' | __getitem__(self, index) -> tid_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: tid_t | | __swig_destroy__ = delete_tid_array(...) | delete_tid_array(self) @@ -61872,6 +78329,8 @@ class tid_array(builtins.object) | | frompointer(*args) -> 'tid_array *' | frompointer(t) -> tid_array + | + | @param t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61889,6 +78348,8 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) -> 'tid_array *' tid_array_frompointer(t) -> tid_array + + @param t: tid_t * Help on class uchar_array in module ida_pro: @@ -61899,14 +78360,21 @@ class uchar_array(builtins.object) | | __getitem__(self, *args) -> 'uchar' | __getitem__(self, index) -> uchar + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uchar | | __swig_destroy__ = delete_uchar_array(...) | delete_uchar_array(self) @@ -61919,6 +78387,8 @@ class uchar_array(builtins.object) | | frompointer(*args) -> 'uchar_array *' | frompointer(t) -> uchar_array + | + | @param t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61936,23 +78406,31 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) -> 'uchar_array *' uchar_array_frompointer(t) -> uchar_array + + @param t: uchar * -Help on class ulonglongvec_t in module ida_pro: +Help on class uint64vec_t in module ida_pro: -class ulonglongvec_t(builtins.object) +class uint64vec_t(builtins.object) | Proxy of C++ qvector< unsigned long long > class. | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & | | __getitem__(self, *args) -> 'unsigned long long const &' | __getitem__(self, i) -> unsigned long long const & + | + | @param i: size_t | | __init__(self, *args) - | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t + | __init__(self) -> uint64vec_t + | __init__(self, x) -> uint64vec_t + | + | @param x: qvector< unsigned long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61961,20 +78439,31 @@ class ulonglongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned long long const & | - | __swig_destroy__ = delete_ulonglongvec_t(...) - | delete_ulonglongvec_t(self) + | __swig_destroy__ = delete_uint64vec_t(...) + | delete_uint64vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: unsigned long long const & | | append = push_back(self, *args) -> 'unsigned long long &' | @@ -62002,32 +78491,54 @@ class ulonglongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned long long >::iterator' | erase(self, it) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | | erase(self, first, last) -> qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator | | extract(self, *args) -> 'unsigned long long *' | extract(self) -> unsigned long long * | | find(self, *args) -> 'qvector< unsigned long long >::const_iterator' | find(self, x) -> qvector< unsigned long long >::iterator + | + | @param x: unsigned long long const & + | | find(self, x) -> qvector< unsigned long long >::const_iterator + | + | @param x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: unsigned long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: unsigned long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned long long >::iterator' | insert(self, it, x) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned long long &' | push_back(self, x) + | + | @param x: unsigned long long const & + | | push_back(self) -> unsigned long long & | | qclear(self, *args) -> 'void' @@ -62035,16 +78546,26 @@ class ulonglongvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned long long const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< unsigned long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62075,13 +78596,19 @@ class uintvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & | | __getitem__(self, *args) -> 'unsigned int const &' | __getitem__(self, i) -> unsigned int const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62090,20 +78617,31 @@ class uintvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned int const & | | __swig_destroy__ = delete_uintvec_t(...) | delete_uintvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: unsigned int const & | | append = push_back(self, *args) -> 'unsigned int &' | @@ -62131,32 +78669,54 @@ class uintvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned int >::iterator' | erase(self, it) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | | erase(self, first, last) -> qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator | | extract(self, *args) -> 'unsigned int *' | extract(self) -> unsigned int * | | find(self, *args) -> 'qvector< unsigned int >::const_iterator' | find(self, x) -> qvector< unsigned int >::iterator + | + | @param x: unsigned int const & + | | find(self, x) -> qvector< unsigned int >::const_iterator + | + | @param x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: unsigned int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: unsigned int * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned int >::iterator' | insert(self, it, x) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned int &' | push_back(self, x) + | + | @param x: unsigned int const & + | | push_back(self) -> unsigned int & | | qclear(self, *args) -> 'void' @@ -62164,16 +78724,26 @@ class uintvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned int const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< unsigned int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62204,14 +78774,21 @@ class uval_array(builtins.object) | | __getitem__(self, *args) -> 'uval_t' | __getitem__(self, index) -> uval_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uval_t | | __swig_destroy__ = delete_uval_array(...) | delete_uval_array(self) @@ -62224,6 +78801,8 @@ class uval_array(builtins.object) | | frompointer(*args) -> 'uval_array *' | frompointer(t) -> uval_array + | + | @param t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62241,156 +78820,114 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) -> 'uval_array *' uval_array_frompointer(t) -> uval_array + + @param t: uval_t * Help on function writebytes in module ida_pro: writebytes(*args) -> 'int' writebytes(h, l, size, mf) -> int - - Write at most 4 bytes to file. - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? @return: 0 on success, nonzero otherwise -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. +Module "ida_problems"s docstring: """ +Functions that deal with the list of problems. -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.4. -""" +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === Help on function forget_problem in module ida_problems: forget_problem(*args) -> 'bool' forget_problem(type, ea) -> bool - - Remove an address from a problem list - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address @return: success Help on function get_problem in module ida_problems: get_problem(*args) -> 'ea_t' get_problem(type, lowea) -> ea_t + Get an address from the specified problem list. The address is not removed from + the list. - - Get an address from the specified problem list. The address is not - removed from the list. - - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR Help on function get_problem_desc in module ida_problems: get_problem_desc(*args) -> 'qstring *' get_problem_desc(t, ea) -> str + Get the human-friendly description of the problem, if one was provided to + remember_problem. - - Get the human-friendly description of the problem, if one was provided - to remember_problem. - - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. @return: the message length or -1 if none Help on function get_problem_name in module ida_problems: get_problem_name(*args) -> 'char const *' get_problem_name(type, longname=True) -> char const * - - Get problem list description. - - @param type (C++: problist_id_t) - @param longname (C++: bool) + @param type: (C++: problist_id_t) + @param longname: (C++: bool) Help on function is_problem_present in module ida_problems: is_problem_present(*args) -> 'bool' is_problem_present(t, ea) -> bool - - Check if the specified address is present in the problem list. - - @param t (C++: problist_id_t) - @param ea (C++: ea_t) + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) Help on function remember_problem in module ida_problems: remember_problem(*args) -> 'void' remember_problem(type, ea, msg=None) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. - - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. Help on function was_ida_decision in module ida_problems: was_ida_decision(*args) -> 'bool' was_ida_decision(ea) -> bool + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" Help on class array_of_rangesets in module ida_range: @@ -62401,13 +78938,19 @@ class array_of_rangesets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & | | __getitem__(self, *args) -> 'rangeset_t const &' | __getitem__(self, i) -> rangeset_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62417,30 +78960,42 @@ class array_of_rangesets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rangeset_t const & | | __swig_destroy__ = delete_array_of_rangesets(...) | delete_array_of_rangesets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rangeset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: rangeset_t const & | | at(self, *args) -> 'rangeset_t const &' | at(self, _idx) -> rangeset_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rangeset_t >::const_iterator' | begin(self) -> rangeset_t - | begin(self) -> rangeset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -62453,39 +79008,58 @@ class array_of_rangesets(builtins.object) | | end(self, *args) -> 'qvector< rangeset_t >::const_iterator' | end(self) -> rangeset_t - | end(self) -> rangeset_t | | erase(self, *args) -> 'qvector< rangeset_t >::iterator' | erase(self, it) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | | erase(self, first, last) -> rangeset_t + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator | | extract(self, *args) -> 'rangeset_t *' | extract(self) -> rangeset_t | | find(self, *args) -> 'qvector< rangeset_t >::const_iterator' | find(self, x) -> rangeset_t - | find(self, x) -> rangeset_t + | + | @param x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rangeset_t()) + | + | @param x: rangeset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: rangeset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: rangeset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rangeset_t >::iterator' | insert(self, it, x) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rangeset_t &' | push_back(self, x) + | + | @param x: rangeset_t const & + | | push_back(self) -> rangeset_t | | qclear(self, *args) -> 'void' @@ -62493,16 +79067,26 @@ class array_of_rangesets(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rangeset_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< rangeset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62533,19 +79117,30 @@ class range_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | __repr__ = _swig_repr(self) | @@ -62557,28 +79152,49 @@ class range_t(builtins.object) | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62589,15 +79205,11 @@ class range_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag @@ -62611,9 +79223,9 @@ Help on function range_t_print in module ida_range: range_t_print(*args) -> 'size_t' range_t_print(cb) -> str - - Helper function. Should not be called directly! + + @param cb: range_t const * Help on class rangeset_t in module ida_range: @@ -62624,13 +79236,20 @@ class rangeset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, aset) -> bool + | + | @param aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t | __init__(self, range) -> rangeset_t + | + | @param range: range_t const & + | | __init__(self, ivs) -> rangeset_t + | + | @param ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62639,6 +79258,8 @@ class rangeset_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, aset) -> bool + | + | @param aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -62650,77 +79271,156 @@ class rangeset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, range) -> bool + | Add each element of 'aset' to the set. + | + | @param range: range_t const & + | + | @return: false if no elements were added (the set was unchanged) | add(self, start, _end) -> bool + | + | @param start: ea_t + | @param _end: ea_t + | | add(self, aset) -> bool + | + | @param aset: rangeset_t const & | | begin(self, *args) -> 'rangeset_t::iterator' | begin(self) -> range_t - | begin(self) -> range_t + | Get an iterator that points to the first element in the set. | | cached_range(self, *args) -> 'range_t const *' | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element | | clear(self, *args) -> 'void' | clear(self) + | Delete all elements from the set. See qvector::clear() | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) + | + | @param ea: ea_t + | | contains(self, aset) -> bool + | + | @param aset: rangeset_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Does the set have zero elements. | | end(self, *args) -> 'rangeset_t::iterator' | end(self) -> range_t - | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) | | find_range(self, *args) -> 'range_t const *' | find_range(self, ea) -> range_t + | Get the element from the set that contains 'ea'. + | + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element | | getrange(self, *args) -> 'range_t const &' | getrange(self, idx) -> range_t + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, range) -> bool + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() + | + | @param range: range_t const & + | | has_common(self, aset) -> bool + | + | @param aset: rangeset_t const & | | includes(self, *args) -> 'bool' | includes(self, range) -> bool + | Is every ea in 'range' contained in the rangeset? + | + | @param range: (C++: const range_t &) range_t const & | | intersect(self, *args) -> 'bool' | intersect(self, aset) -> bool + | Set the rangeset to its intersection with 'aset'. + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged | | is_equal(self, *args) -> 'bool' | is_equal(self, aset) -> bool + | Do this rangeset and 'aset' have identical elements? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, aset) -> bool + | Is every element in the rangeset contained in an element of 'aset'? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | lastrange(self, *args) -> 'range_t const &' | lastrange(self) -> range_t + | Get the last range_t in the set. | | next_addr(self, *args) -> 'ea_t' | next_addr(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | next_range(self, *args) -> 'ea_t' | next_range(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) | | nranges(self, *args) -> 'size_t' | nranges(self) -> size_t + | Get the number of range_t elements in the set. | | prev_addr(self, *args) -> 'ea_t' | prev_addr(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | prev_range(self, *args) -> 'ea_t' | prev_range(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) | | sub(self, *args) -> 'bool' | sub(self, range) -> bool + | Subtract each range in 'aset' from the set + | + | @param range: range_t const & + | + | @return: false if nothing was subtracted (the set was unchanged) | sub(self, ea) -> bool + | + | @param ea: ea_t + | | sub(self, aset) -> bool + | + | @param aset: rangeset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62748,13 +79448,19 @@ class rangevec_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62764,30 +79470,42 @@ class rangevec_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | __swig_destroy__ = delete_rangevec_base_t(...) | delete_rangevec_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -62800,39 +79518,58 @@ class rangevec_base_t(builtins.object) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -62840,16 +79577,26 @@ class rangevec_base_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62902,9 +79649,13 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62914,25 +79665,37 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -62945,39 +79708,58 @@ class rangevec_t(rangevec_base_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -62985,16 +79767,26 @@ class rangevec_t(rangevec_base_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63013,62 +79805,63 @@ class rangevec_t(rangevec_base_t) | | __hash__ = None +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + Help on function reg_data_type in module ida_registry: reg_data_type(*args) -> 'regval_type_t' reg_data_type(name, subkey=None) -> regval_type_t - - Get data type of a given value. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name @return: false if the [key+]value doesn't exist Help on function reg_delete in module ida_registry: reg_delete(*args) -> 'bool' reg_delete(name, subkey=None) -> bool - - Delete a value from the registry. - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key @return: success Help on function reg_delete_subkey in module ida_registry: reg_delete_subkey(*args) -> 'bool' reg_delete_subkey(name) -> bool - - Delete a key from the registry. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_delete_tree in module ida_registry: reg_delete_tree(*args) -> 'bool' reg_delete_tree(name) -> bool - - Delete a subtree from the registry. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_exists in module ida_registry: reg_exists(*args) -> 'bool' reg_exists(name, subkey=None) -> bool - - Is there already a value with the given name? - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key Help on function reg_flush in module ida_registry: @@ -63083,520 +79876,448 @@ reg_load(*args) -> 'void' Help on function reg_read_binary in module ida_registry: reg_read_binary(*args) -> 'PyObject *' - reg_read_binary(name, subkey=None) -> PyObject * - - + reg_read_binary(name, subkey=None) -> bytes or None Read binary data from the registry. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if 'data' is not large enough to hold all data present. - in this case 'data' is left untouched. + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success Help on function reg_read_bool in module ida_registry: reg_read_bool(*args) -> 'bool' reg_read_bool(name, defval, subkey=None) -> bool - - Read boolean value from the registry. - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name @return: boolean read from registry, or 'defval' if the read failed Help on function reg_read_int in module ida_registry: reg_read_int(*args) -> 'int' reg_read_int(name, defval, subkey=None) -> int - - Read integer value from the registry. - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed Help on function reg_read_string in module ida_registry: reg_read_string(*args) -> 'PyObject *' - reg_read_string(name, subkey=None, _def=None) -> PyObject * - - + reg_read_string(name, subkey=None, _def=None) -> str Read a string from the registry. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * @return: success Help on function reg_read_strlist in module ida_registry: reg_read_strlist(*args) -> 'qstrvec_t *' reg_read_strlist(subkey) - - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . + reg_update_strlist(). - @param subkey (C++: const char *) + @param subkey: (C++: const char *) char const * Help on function reg_subkey_exists in module ida_registry: reg_subkey_exists(*args) -> 'bool' reg_subkey_exists(name) -> bool - - Is there already a key with the given name? - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) -> 'PyObject *' - reg_subkey_subkeys(name) -> PyObject * - - + reg_subkey_subkeys(name) -> [str, ...] Get all subkey names of given key. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) -> 'PyObject *' - reg_subkey_values(name) -> PyObject * - - + reg_subkey_values(name) -> [str, ...] Get all value names under given key. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_update_filestrlist in module ida_registry: reg_update_filestrlist(*args) -> 'void' reg_update_filestrlist(subkey, add, maxrecs, rem=None) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. - - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * Help on function reg_update_strlist in module ida_registry: reg_update_strlist(*args) -> 'void' reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - - Update list of strings associated with given key. - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' Help on function reg_write_binary in module ida_registry: reg_write_binary(*args) -> 'PyObject *' reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - - Write binary data to the registry. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name Help on function reg_write_bool in module ida_registry: reg_write_bool(*args) -> 'void' reg_write_bool(name, value, subkey=None) - - Write boolean value to the registry. - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name Help on function reg_write_int in module ida_registry: reg_write_int(*args) -> 'void' reg_write_int(name, value, subkey=None) - - Write integer value to the registry. - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name Help on function reg_write_string in module ida_registry: reg_write_string(*args) -> 'void' reg_write_string(name, utf8, subkey=None) - - Write a string to the registry. - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME +Help on function set_registry_root in module ida_registry: + +set_registry_root(*args) -> 'bool' + set_registry_root(name) -> bool + + @param name: char const * + +Module "ida_search"s docstring: """ -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === +Middle-level search functions. + +They all are controlled by Search flags""" + Help on function find_binary in module ida_search: find_binary(*args) -> 'ea_t' find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t + Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' find_code(ea, sflag) -> ea_t - - Find next code address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' find_data(ea, sflag) -> ea_t - - Find next data address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' find_defined(ea, sflag) -> ea_t - - Find next ea that is the start of an instruction or data. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_error in module ida_search: find_error(*args) -> 'int *' find_error(ea, sflag) -> ea_t - - Find next error or problem. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' - find_imm(newEA, sflag, srchValue) -> ea_t - - + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_not_func in module ida_search: find_not_func(*args) -> 'ea_t' find_not_func(ea, sflag) -> ea_t - - Find next code address that does not belong to a function. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_notype in module ida_search: find_notype(*args) -> 'int *' find_notype(ea, sflag) -> ea_t - - Find next operand without any type info. + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_reg_access in module ida_search: + +find_reg_access(*args) -> 'ea_t' + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + Find access to a register. - @param ea (C++: ea_t) - @param sflag (C++: int) + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' find_suspop(ea, sflag) -> ea_t - - Find next suspicious operand. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module ida_search: find_text(*args) -> 'ea_t' find_text(start_ea, y, x, ustr, sflag) -> ea_t + See search() - - See 'search()' - - - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' find_unknown(ea, sflag) -> ea_t - - Find next unexplored address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function search_down in module ida_search: search_down(*args) -> 'bool' search_down(sflag) -> bool + Is the SEARCH_DOWN bit set? - - Is the 'SEARCH_DOWN' bit set? - - - @param sflag (C++: int) + @param sflag: (C++: int) -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if Ctrl-Break wass pressed during search +Module "ida_segment"s docstring: """ +Functions that deal with segments. -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is -ida_search.SEARCH_NEXT -""" -for other find_.. functions it is implicitly set +(start address of segment - segment base linear address) -useful only for 'search()' and find_binary(). -""" +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" -ida_search.SEARCH_NOBRK -""" -don't test for ctrl-break to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -don't display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (only supported for txt search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" -=== ida_search EPYDOC INJECTIONS END === Help on function add_segm in module ida_segment: add_segm(*args) -> 'bool' add_segm(para, start, end, name, sclass, flags=0) -> bool - - - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or another segment base address. - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segm_ex in module ida_segment: add_segm_ex(*args) -> 'bool' - add_segm_ex(s, name, sclass, flags) -> bool + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. - - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. - - @param s: pointer to filled segment structure. segment selector should - have proper mapping (see set_selector() ). if - s.start_ea== BADADDR then s.start_ea <- get_segm_base(&s) - if s.end_ea== BADADDR , then a segment up to the next - segment will be created (if the next segment doesn't exist, - then 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and the new - segment would overlap the next segment, s.end_ea is adjusted - properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segment_translation in module ida_segment: add_segment_translation(*args) -> 'bool' add_segment_translation(segstart, mappedseg) -> bool - - Add segment translation. - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function allocate_selector in module ida_segment: allocate_selector(*args) -> 'sel_t' allocate_selector(segbase) -> sel_t + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. - - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - - @param segbase: a new segment base paragraph (C++: ea_t) + @param segbase: (C++: ea_t) a new segment base paragraph @return: the allocated selector number Help on function change_segment_status in module ida_segment: change_segment_status(*args) -> 'int' change_segment_status(s, is_deb_segm) -> int + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. - - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment @return: Change segment status result codes Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' del_segm(ea, flags) -> bool - - Delete a segment. - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_segment_translations in module ida_segment: del_segment_translations(*args) -> 'void' del_segment_translations(segstart) - - Delete the translation list - @param segstart: start address of the segment to delete translation - list (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to delete translation list Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function find_free_selector in module ida_segment: find_free_selector(*args) -> 'sel_t' find_free_selector() -> sel_t - - Find first unused selector. @return: a number >= 1 @@ -63605,349 +80326,277 @@ Help on function find_selector in module ida_segment: find_selector(*args) -> 'sel_t' find_selector(base) -> sel_t - - Find a selector that has mapping to the specified paragraph. - @param base: paragraph to search in the translation table (C++: ea_t) + @param base: (C++: ea_t) paragraph to search in the translation table @return: selector value or base Help on function get_defsr in module ida_segment: get_defsr(*args) -> 'sel_t' get_defsr(s, reg) -> sel_t + Deprecated, use instead: + value = s.defsr[reg] + + @param s: segment_t * + @param reg: int Help on function get_first_seg in module ida_segment: get_first_seg(*args) -> 'segment_t *' get_first_seg() -> segment_t - - Get pointer to the first segment. Help on function get_group_selector in module ida_segment: get_group_selector(*args) -> 'sel_t' get_group_selector(grpsel) -> sel_t - - Get common selector for a group of segments. - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found Help on function get_last_seg in module ida_segment: get_last_seg(*args) -> 'segment_t *' get_last_seg() -> segment_t - - Get pointer to the last segment. Help on function get_next_seg in module ida_segment: get_next_seg(*args) -> 'segment_t *' get_next_seg(ea) -> segment_t - - Get pointer to the next segment. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_seg in module ida_segment: get_prev_seg(*args) -> 'segment_t *' get_prev_seg(ea) -> segment_t - - Get pointer to the previous segment. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_segm_base in module ida_segment: get_segm_base(*args) -> 'ea_t' get_segm_base(s) -> ea_t + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) - - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address Help on function get_segm_by_name in module ida_segment: get_segm_by_name(*args) -> 'segment_t *' get_segm_by_name(name) -> segment_t + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. - - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure Help on function get_segm_by_sel in module ida_segment: get_segm_by_sel(*args) -> 'segment_t *' get_segm_by_sel(selector) -> segment_t + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. - - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr Help on function get_segm_class in module ida_segment: get_segm_class(*args) -> 'qstring *' get_segm_class(s) -> str - - Get segment class. Segment class is arbitrary text (max 8 characters). - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) Help on function get_segm_name in module ida_segment: get_segm_name(*args) -> 'qstring *' get_segm_name(s, flags=0) -> str - - Get true segment name by pointer to segment. - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) Help on function get_segm_num in module ida_segment: get_segm_num(*args) -> 'int' get_segm_num(ea) -> int - - Get number of segment by address. - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) Help on function get_segm_para in module ida_segment: get_segm_para(*args) -> 'ea_t' get_segm_para(s) -> ea_t + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). - - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph Help on function get_segm_qty in module ida_segment: get_segm_qty(*args) -> 'int' get_segm_qty() -> int - - Get number of segments. Help on function get_segment_alignment in module ida_segment: get_segment_alignment(*args) -> 'char const *' get_segment_alignment(align) -> char const * - - Get text representation of segment alignment code. - @param align (C++: uchar) + @param align: (C++: uchar) @return: text digestable by IBM PC assembler. Help on function get_segment_cmt in module ida_segment: get_segment_cmt(*args) -> 'qstring *' get_segment_cmt(s, repeatable) -> str - - Get segment comment. - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. @return: size of comment or -1 Help on function get_segment_combination in module ida_segment: get_segment_combination(*args) -> 'char const *' get_segment_combination(comb) -> char const * - - Get text representation of segment combination code. - @param comb (C++: uchar) + @param comb: (C++: uchar) @return: text digestable by IBM PC assembler. Help on function get_segment_translations in module ida_segment: get_segment_translations(*args) -> 'ssize_t' get_segment_translations(transmap, segstart) -> ssize_t - - Get segment translation list. - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. Help on function get_selector_qty in module ida_segment: -get_selector_qty(*args) -> 'int' - get_selector_qty() -> int - - +get_selector_qty(*args) -> 'size_t' + get_selector_qty() -> size_t Get number of defined selectors. Help on function get_visible_segm_name in module ida_segment: get_visible_segm_name(*args) -> 'qstring *' get_visible_segm_name(s) -> str - - Get segment name by pointer to segment. - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) Help on function getn_selector in module ida_segment: getn_selector(*args) -> 'sel_t *, ea_t *' getn_selector(n) -> bool + Get description of selector (0..get_selector_qty()-1) - - Get description of selector (0.. 'get_selector_qty()' -1) - - - @param n (C++: int) + @param n: (C++: int) Help on function getnseg in module ida_segment: getnseg(*args) -> 'segment_t *' getnseg(n) -> segment_t + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) - - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure Help on function getseg in module ida_segment: getseg(*args) -> 'segment_t *' getseg(ea) -> segment_t - - Get pointer to segment by linear address. - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure Help on function is_finally_visible_segm in module ida_segment: is_finally_visible_segm(*args) -> 'bool' is_finally_visible_segm(s) -> bool + See SFL_HIDDEN, SCF_SHHID_SEGM. - - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - - - @param s (C++: segment_t *) + @param s: (C++: segment_t *) Help on function is_miniidb in module ida_segment: is_miniidb(*args) -> 'bool' is_miniidb() -> bool - - Is the database a miniidb created by the debugger?. - @return: true if the database contains no segments or only debugger - segments + @return: true if the database contains no segments or only debugger segments Help on function is_segm_locked in module ida_segment: is_segm_locked(*args) -> 'bool' is_segm_locked(segm) -> bool - - Is a segment pointer locked? - - @param segm (C++: const segment_t *) + @param segm: (C++: const segment_t *) segment_t const * Help on function is_spec_ea in module ida_segment: is_spec_ea(*args) -> 'bool' is_spec_ea(ea) -> bool + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) - - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address Help on function is_spec_segm in module ida_segment: is_spec_segm(*args) -> 'bool' is_spec_segm(seg_type) -> bool + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) - - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - - @param seg_type (C++: uchar) + @param seg_type: (C++: uchar) Help on function is_visible_segm in module ida_segment: is_visible_segm(*args) -> 'bool' is_visible_segm(s) -> bool + See SFL_HIDDEN. - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) + @param s: (C++: segment_t *) Help on function lock_segm in module ida_segment: lock_segm(*args) -> 'void' lock_segm(segm, lock) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. - - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param segm (C++: const segment_t *) - @param lock (C++: bool) + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) Help on class lock_segment in module ida_segment: @@ -63958,6 +80607,8 @@ class lock_segment(builtins.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment + | + | @param _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -63980,85 +80631,135 @@ Help on function move_segm in module ida_segment: move_segm(*args) -> 'int' move_segm(s, to, flags=0) -> int + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. - - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags @return: Move segment result codes Help on function move_segm_start in module ida_segment: move_segm_start(*args) -> 'bool' move_segm_start(ea, newstart, mode) -> bool - - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' rebase_program(delta, flags) -> int - - Rebase the whole program by 'delta' bytes. - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database @return: Move segment result codes Help on function segm_adjust_diff in module ida_segment: segm_adjust_diff(*args) -> 'adiff_t' segm_adjust_diff(s, delta) -> adiff_t - - Truncate and sign extend a delta depending on the segment. - - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) Help on function segm_adjust_ea in module ida_segment: segm_adjust_ea(*args) -> 'ea_t' segm_adjust_ea(s, ea) -> ea_t - - Truncate an address depending on the segment. - - @param s (C++: const segment_t *) - @param ea (C++: ea_t) + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) + +Help on class segment_defsr_array in module ida_segment: + +class segment_defsr_array(builtins.object) + | Proxy of C++ wrapped_array_t< sel_t,SREG_NUM > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> segment_defsr_array + | + | @param data: unsigned-ea-like-numeric-type (&)[SREG_NUM]↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_segment_defsr_array(...) + | delete_segment_defsr_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag Help on class segment_t in module ida_segment: @@ -64080,11 +80781,16 @@ class segment_t(ida_range.range_t) | __swig_destroy__ = delete_segment_t(...) | delete_segment_t(self) | + | _segment_t__getDefsr = __getDefsr(self, *args) -> 'wrapped_array_t< sel_t,SREG_NUM >' + | __getDefsr(self) -> segment_defsr_array + | | abits(self, *args) -> 'int' | abits(self) -> int + | Get number of address bits. | | abytes(self, *args) -> 'int' | abytes(self) -> int + | Get number of address bytes. | | clr_comorg(self, *args) -> 'void' | clr_comorg(self) @@ -64095,6 +80801,18 @@ class segment_t(ida_range.range_t) | comorg(self, *args) -> 'bool' | comorg(self) -> bool | + | is_16bit(self, *args) -> 'bool' + | is_16bit(self) -> bool + | Is a 16-bit segment? + | + | is_32bit(self, *args) -> 'bool' + | is_32bit(self) -> bool + | Is a 32-bit segment? + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | Is a 64-bit segment? + | | is_header_segm(self, *args) -> 'bool' | is_header_segm(self) -> bool | @@ -64115,121 +80833,161 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) -> 'void' | set_debugger_segm(self, debseg) + | + | @param debseg: bool | | set_header_segm(self, *args) -> 'void' | set_header_segm(self, on) + | + | @param on: bool | | set_hidden_segtype(self, *args) -> 'void' | set_hidden_segtype(self, hide) + | + | @param hide: bool | | set_loader_segm(self, *args) -> 'void' | set_loader_segm(self, ldrseg) + | + | @param ldrseg: bool | | set_ob_ok(self, *args) -> 'void' | set_ob_ok(self) | | set_visible_segm(self, *args) -> 'void' | set_visible_segm(self, visible) + | + | @param visible: bool | | update(self, *args) -> 'bool' | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success | - | use32(self, *args) -> 'bool' - | use32(self) -> bool - | - | use64(self, *args) -> 'bool' - | use64(self) -> bool + | use64 = is_64bit(self, *args) -> 'bool' | | ---------------------------------------------------------------------- | Data descriptors defined here: | | align - | segment_t_align_get(self) -> uchar + | align | | bitness - | segment_t_bitness_get(self) -> uchar + | bitness | | color - | segment_t_color_get(self) -> bgcolor_t + | color | | comb - | segment_t_comb_get(self) -> uchar + | comb | | defsr - | segment_t_defsr_get(self) -> sel_t [16] + | __getDefsr(self) -> segment_defsr_array | | end_ea - | segment_t_end_ea_get(self) -> ea_t + | end_ea | | flags - | segment_t_flags_get(self) -> ushort + | flags | | name - | segment_t_name_get(self) -> uval_t + | name | | orgbase - | segment_t_orgbase_get(self) -> uval_t + | orgbase | | perm - | segment_t_perm_get(self) -> uchar + | perm | | sclass - | segment_t_sclass_get(self) -> uval_t + | sclass | | sel - | segment_t_sel_get(self) -> sel_t + | sel | | start_ea - | segment_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag | | type - | segment_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -64240,10 +80998,6 @@ class segment_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | - | startEA - | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: | @@ -64253,878 +81007,380 @@ Help on function segtype in module ida_segment: segtype(*args) -> 'uchar' segtype(ea) -> uchar - - Get segment type. - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' Help on function sel2ea in module ida_segment: sel2ea(*args) -> 'ea_t' sel2ea(selector) -> ea_t - - Get mapping of a selector as a linear address. - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); Help on function sel2para in module ida_segment: sel2para(*args) -> 'ea_t' sel2para(selector) -> ea_t - - Get mapping of a selector. - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. Help on function set_defsr in module ida_segment: set_defsr(*args) -> 'void' set_defsr(s, reg, value) + Deprecated, use instead: + s.defsr[reg] = value + + @param s: segment_t * + @param reg: int + @param value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) -> 'int' set_group_selector(grp, sel) -> int + Create a new group of segments (used OMF files). - - Initialize groups. The kernel calls this function at the start of - work.Create a new group of segments (used OMF files). - - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. @return: 1 ok + 0 too many groups (see MAX_GROUPS) Help on function set_segm_addressing in module ida_segment: set_segm_addressing(*args) -> 'bool' set_segm_addressing(s, bitness) -> bool + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment - - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment @return: success Help on function set_segm_base in module ida_segment: set_segm_base(*args) -> 'bool' set_segm_base(s, newbase) -> bool - - Internal function. - - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) Help on function set_segm_class in module ida_segment: set_segm_class(*args) -> 'int' set_segm_class(s, sclass, flags=0) -> int - - Set segment class. - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @param flags: (C++: int) Add segment flags + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr Help on function set_segm_end in module ida_segment: set_segm_end(*args) -> 'bool' set_segm_end(ea, newend, flags) -> bool + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. - - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segm_name in module ida_segment: set_segm_name(*args) -> 'int' set_segm_name(s, name, flags=0) -> int + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. - - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr Help on function set_segm_start in module ida_segment: set_segm_start(*args) -> 'bool' set_segm_start(ea, newstart, flags) -> bool + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. - - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segment_cmt in module ida_segment: set_segment_cmt(*args) -> 'void' set_segment_cmt(s, cmt, repeatable) - - Set segment comment. - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. Help on function set_segment_translations in module ida_segment: set_segment_translations(*args) -> 'bool' set_segment_translations(segstart, transmap) -> bool - - Set new translation list. - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_visible_segm in module ida_segment: set_visible_segm(*args) -> 'void' set_visible_segm(s, visible) + See SFL_HIDDEN. - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) - @param visible (C++: bool) + @param s: (C++: segment_t *) + @param visible: (C++: bool) Help on function setup_selector in module ida_segment: setup_selector(*args) -> 'sel_t' setup_selector(segbase) -> sel_t + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. - - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - - @param segbase: a new segment base paragraph (C++: ea_t) + @param segbase: (C++: ea_t) a new segment base paragraph @return: the allocated selector number Help on function std_out_segm_footer in module ida_segment: std_out_segm_footer(*args) -> 'void' std_out_segm_footer(ctx, seg) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. - - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' - take_memory_snapshot(only_loader_segs) -> bool - - + take_memory_snapshot(type) -> bool Take a memory snapshot of the running process. - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) @return: success Help on function update_segm in module ida_segment: update_segm(*args) -> 'bool' update_segm(s) -> bool + + @param s: segment_t * -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' -""" - -ida_segment.ADDSEG_NOTRUNC -""" -destroy/truncate old segments instead. - -don't truncate the new segment at the beginning of the next segment if -they overlap. -""" - -ida_segment.ADDSEG_OR_DIE -""" - 'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new segment -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -is too big) - -not enough memory (might be because the segment -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok +Module "ida_segregs"s docstring: """ +Functions that deal with the segment registers. -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -valid for 'move_segm()' - -loader segments will overwrite any existing debugger segments when -moved. -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -(for 'set_segm_start()' ) - -don't move info from the start of segment to the new start address -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols -""" +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" - -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -no instructions are allowed - -segment with 'extern' definitions. -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -boundary. - -Relocatable, aligned on a double word (4-byte) -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -segment. - -Private. Do not combine with any other program -""" - -ida_segment.scPub -""" -the alignment requirement. - -Public. Combine by appending at an offset that meets -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -byte alignment. - -Stack. Combine as for C=2. This combine type forces -""" -=== ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: copy_sreg_ranges(*args) -> 'void' copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - - Duplicate segment register ranges. - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() Help on function del_sreg_range in module ida_segregs: del_sreg_range(*args) -> 'bool' del_sreg_range(ea, rg) -> bool + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. - - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number @return: success Help on function get_prev_sreg_range in module ida_segregs: get_prev_sreg_range(*args) -> 'bool' get_prev_sreg_range(out, ea, rg) -> bool + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) - - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number @return: success Help on function get_sreg in module ida_segregs: get_sreg(*args) -> 'sel_t' get_sreg(ea, rg) -> sel_t + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. - - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. Help on function get_sreg_range in module ida_segregs: get_sreg_range(*args) -> 'bool' get_sreg_range(out, ea, rg) -> bool - - Get segment register range by linear address. - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number @return: success Help on function get_sreg_range_num in module ida_segregs: get_sreg_range_num(*args) -> 'int' get_sreg_range_num(ea, rg) -> int - - Get number of segment register range by address. - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) Help on function get_sreg_ranges_qty in module ida_segregs: get_sreg_ranges_qty(*args) -> 'size_t' get_sreg_ranges_qty(rg) -> size_t - - Get number of segment register ranges. - @param rg: the segment register number (C++: int) + @param rg: (C++: int) the segment register number Help on function getn_sreg_range in module ida_segregs: getn_sreg_range(*args) -> 'bool' getn_sreg_range(out, rg, n) -> bool - - Get segment register range by its number. - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) @return: success Help on function set_default_dataseg in module ida_segregs: set_default_dataseg(*args) -> 'void' set_default_dataseg(ds_sel) - - Set default value of DS register for all segments. - - @param ds_sel (C++: sel_t) + @param ds_sel: (C++: sel_t) Help on function set_default_sreg_value in module ida_segregs: set_default_sreg_value(*args) -> 'bool' set_default_sreg_value(sg, rg, value) -> bool - - Set default value of a segment register for a segment. - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. @return: success Help on function set_sreg_at_next_code in module ida_segregs: set_sreg_at_next_code(*args) -> 'void' set_sreg_at_next_code(ea1, ea2, rg, value) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value Help on function split_sreg_range in module ida_segregs: split_sreg_range(*args) -> 'bool' split_sreg_range(ea, rg, v, tag, silent=False) -> bool + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. - - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure @return: success Help on class sreg_range_t in module ida_segregs: @@ -65151,56 +81407,85 @@ class sreg_range_t(ida_range.range_t) | Data descriptors defined here: | | tag - | sreg_range_t_tag_get(self) -> uchar + | tag | | thisown | The membership flag | | val - | sreg_range_t_val_get(self) -> sel_t + | val | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -65211,86 +81496,127 @@ class sreg_range_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: | | __hash__ = None -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto -""" -the value is determined by IDA +Module "ida_srclang"s docstring: """ +Third-party compiler support.""" -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" +Help on function parse_decls_for_srclang in module ida_srclang: -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" +parse_decls_for_srclang(*args) -> 'int' + parse_decls_for_srclang(lang, til, input, is_path) -> int + Parse type declarations in the specified language + + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source -ida_segregs.SR_user +Help on function parse_decls_with_parser in module ida_srclang: + +parse_decls_with_parser(*args) -> 'int' + parse_decls_with_parser(parser_name, til, input, is_path) -> int + Parse type declarations using the parser with the specified name + + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source + +Help on function select_parser_by_name in module ida_srclang: + +select_parser_by_name(*args) -> 'bool' + select_parser_by_name(name) -> bool + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name + +Help on function select_parser_by_srclang in module ida_srclang: + +select_parser_by_srclang(*args) -> 'bool' + select_parser_by_srclang(lang) -> bool + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found + +Help on function set_parser_argv in module ida_srclang: + +set_parser_argv(*args) -> 'int' + set_parser_argv(parser_name, argv) -> int + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success + +Module "ida_strlist"s docstring: """ -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === +Functions that deal with the string list. + +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. + +The users of this list should call build_strlist() if they need an up-to-date +version.""" + Help on function build_strlist in module ida_strlist: build_strlist(*args) -> 'void' build_strlist() - - - Build the string list. You should initialize options before this call - using the restore_config() or setup_strings_window() methods. + Rebuild the string list. Help on function clear_strlist in module ida_strlist: clear_strlist(*args) -> 'void' clear_strlist() - - Clear the string list. Help on function get_strlist_item in module ida_strlist: get_strlist_item(*args) -> 'bool' get_strlist_item(si, n) -> bool + Get nth element of the string list (n=0..get_strlist_qty()-1) - - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - - - @param si (C++: string_info_t *) - @param n (C++: size_t) + @param si: (C++: string_info_t *) + @param n: (C++: size_t) Help on function get_strlist_options in module ida_strlist: -get_strlist_options(*args) -> 'strwinsetup_t *' +get_strlist_options(*args) -> 'strwinsetup_t const *' get_strlist_options() -> strwinsetup_t - - - Get access to the static string list options. + Get the static string list options. Help on function get_strlist_qty in module ida_strlist: get_strlist_qty(*args) -> 'size_t' get_strlist_qty() -> size_t - - - Get number of elements in the string list. + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. Help on class string_info_t in module ida_strlist: @@ -65300,11 +81626,14 @@ class string_info_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -65321,16 +81650,16 @@ class string_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | string_info_t_ea_get(self) -> ea_t + | ea | | length - | string_info_t_length_get(self) -> int + | length | | thisown | The membership flag | | type - | string_info_t_type_get(self) -> int + | type Help on class strwinsetup_t in module ida_strlist: @@ -65352,9 +81681,10 @@ class strwinsetup_t(builtins.object) | | _set_strtypes(self, *args) -> 'PyObject *' | _set_strtypes(self, py_t) -> PyObject * - | - | is_initialized(self, *args) -> 'bool' - | is_initialized(self) -> bool + | + | Parameters + | ---------- + | py_t: PyObject * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65366,16 +81696,16 @@ class strwinsetup_t(builtins.object) | list of weak references to the object (if defined) | | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar + | display_only_existing_strings | | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar + | ignore_heads | | minlen - | strwinsetup_t_minlen_get(self) -> sval_t + | minlen | | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar + | only_7bit | | strtypes | _get_strtypes(self) -> PyObject * @@ -65383,548 +81713,493 @@ class strwinsetup_t(builtins.object) | thisown | The membership flag +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + Help on function add_struc in module ida_struct: add_struc(*args) -> 'tid_t' add_struc(idx, name, is_union=False) -> tid_t + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". - - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) Help on function add_struc_member in module ida_struct: add_struc_member(*args) -> 'struc_error_t' add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - - Add member to existing structure. - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags64_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure Help on function del_member_tinfo in module ida_struct: del_member_tinfo(*args) -> 'bool' del_member_tinfo(sptr, mptr) -> bool - - Delete tinfo for given member. - - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) Help on function del_struc in module ida_struct: del_struc(*args) -> 'bool' del_struc(sptr) -> bool - - Delete a structure type. - - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function del_struc_member in module ida_struct: del_struc_member(*args) -> 'bool' del_struc_member(sptr, offset) -> bool - - Delete member at given offset. - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) Help on function del_struc_members in module ida_struct: del_struc_members(*args) -> 'int' del_struc_members(sptr, off1, off2) -> int - - Delete members which occupy range of offsets (off1..off2). - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) @return: number of deleted members or -1 on error +Help on class dyn_member_ref_array in module ida_struct: + +class dyn_member_ref_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< member_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'member_t const &' + | __getitem__(self, i) -> member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | + | @param _data: member_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: member_t const & + | + | __swig_destroy__ = delete_dyn_member_ref_array(...) + | delete_dyn_member_ref_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + Help on function expand_struc in module ida_struct: expand_struc(*args) -> 'bool' expand_struc(sptr, offset, delta, recalc=True) -> bool - - Expand/Shrink structure type. - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) Help on function get_best_fit_member in module ida_struct: get_best_fit_member(*args) -> 'member_t *' get_best_fit_member(sptr, offset) -> member_t + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). - - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' get_first_struc_idx() -> uval_t - - Get index of first structure. - @return: BADADDR if no known structures, 0 otherwise + @return: BADADDR if no known structures, 0 otherwise + +Help on function get_innermost_member in module ida_struct: + +get_innermost_member(*args) -> 'PyObject *' + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) + Get the innermost member at the given offset + + @param sptr: the starting structure + @param offset: offset into the starting structure + @return: - None on failure + - tuple(member_t, struct_t, offset) + where member_t: a member in SPTR (it is not a structure), + struct_t: the innermost structure, + offset: remaining offset into the returned member Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' get_last_struc_idx() -> uval_t - - Get index of last structure. - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_max_offset in module ida_struct: get_max_offset(*args) -> 'ea_t' get_max_offset(sptr) -> ea_t + For unions: returns number of members, for structs: returns size of structure. - - For unions: returns number of members, for structs: returns size of - structure. - - - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function get_member in module ida_struct: get_member(*args) -> 'member_t *' get_member(sptr, offset) -> member_t - - Get member at given offset. - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_by_fullname in module ida_struct: get_member_by_fullname(*args) -> 'struc_t **' get_member_by_fullname(fullname) -> member_t - - Get a member by its fully qualified name, "struct.field". - - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_by_id in module ida_struct: get_member_by_id(*args) -> 'qstring *, struc_t **' get_member_by_id(mid) -> member_t + Check if the specified member id points to a struct member. convenience + function. - - Check if the specified member id points to a struct member. - - - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_by_name in module ida_struct: get_member_by_name(*args) -> 'member_t *' get_member_by_name(sptr, membername) -> member_t - - Get a member by its name, like "field44". - - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * Help on function get_member_cmt in module ida_struct: get_member_cmt(*args) -> 'qstring *' get_member_cmt(mid, repeatable) -> str - - Get comment of structure member. - - @param mid (C++: tid_t) - @param repeatable (C++: bool) + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_member_fullname in module ida_struct: get_member_fullname(*args) -> 'qstring *' get_member_fullname(mid) -> str - - Get a member's fully qualified name, "struct.field". - - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_id in module ida_struct: get_member_id(*args) -> 'tid_t' get_member_id(sptr, offset) -> tid_t - - Get member id at given offset. - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_name in module ida_struct: get_member_name(*args) -> 'qstring *' get_member_name(mid) -> str - - Get name of structure member. - - - @param mid (C++: tid_t) + @param mid: tid_t Help on function get_member_size in module ida_struct: get_member_size(*args) -> 'asize_t' - get_member_size(nonnul_mptr) -> asize_t + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. - - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . + @param NONNULL_mptr: (C++: const member_t *) member_t const * Help on function get_member_struc in module ida_struct: get_member_struc(*args) -> 'struc_t *' get_member_struc(fullname) -> struc_t - - Get containing structure of member by its full name "struct.field". - - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_tinfo in module ida_struct: get_member_tinfo(*args) -> 'bool' get_member_tinfo(tif, mptr) -> bool - - Get tinfo for given member. - - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_next_member_idx in module ida_struct: get_next_member_idx(*args) -> 'ssize_t' get_next_member_idx(sptr, off) -> ssize_t - - Get the next member idx, if it does not exist, return -1. - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' get_next_struc_idx(idx) -> uval_t - - Get next struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_or_guess_member_tinfo in module ida_struct: get_or_guess_member_tinfo(*args) -> 'bool' get_or_guess_member_tinfo(tif, mptr) -> bool - - Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_prev_member_idx in module ida_struct: get_prev_member_idx(*args) -> 'ssize_t' get_prev_member_idx(sptr, off) -> ssize_t - - Get the prev member idx, if it does not exist, return -1. - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' get_prev_struc_idx(idx) -> uval_t - - Get previous struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_sptr in module ida_struct: get_sptr(*args) -> 'struc_t *' get_sptr(mptr) -> struc_t - - Get child struct if member is a struct. - - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_struc in module ida_struct: get_struc(*args) -> 'struc_t *' get_struc(id) -> struc_t - - Get pointer to struct type info. - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' get_struc_by_idx(idx) -> tid_t - - Get struct id by struct number. - - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' get_struc_cmt(id, repeatable) -> str - - Get struct comment. - - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_first_offset in module ida_struct: get_struc_first_offset(*args) -> 'ea_t' get_struc_first_offset(sptr) -> ea_t - - Get offset of first member. - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' get_struc_id(name) -> tid_t - - Get struct id by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' get_struc_idx(id) -> uval_t - - Get internal number of the structure. - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_last_offset in module ida_struct: get_struc_last_offset(*args) -> 'ea_t' get_struc_last_offset(sptr) -> ea_t - - Get offset of last member. - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' get_struc_name(id, flags=0) -> str - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + @param id: tid_t + @param flags: int Help on function get_struc_next_offset in module ida_struct: get_struc_next_offset(*args) -> 'ea_t' get_struc_next_offset(sptr, offset) -> ea_t - - Get offset of member with smallest offset larger than 'offset'. - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset Help on function get_struc_prev_offset in module ida_struct: get_struc_prev_offset(*args) -> 'ea_t' get_struc_prev_offset(sptr, offset) -> ea_t - - Get offset of member with largest offset less than 'offset'. - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' get_struc_qty() -> size_t - - Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + get_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) + @param id: tid_t Help on function is_anonymous_member_name in module ida_struct: is_anonymous_member_name(*args) -> 'bool' is_anonymous_member_name(name) -> bool - - Is member name prefixed with "anonymous"? - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_dummy_member_name in module ida_struct: is_dummy_member_name(*args) -> 'bool' is_dummy_member_name(name) -> bool - - Is member name an auto-generated name? - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_member_id in module ida_struct: is_member_id(*args) -> 'bool' is_member_id(mid) -> bool - - Is a member id? - - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function is_special_member in module ida_struct: is_special_member(*args) -> 'bool' is_special_member(id) -> bool - - Is a special member with the name beginning with ' '? - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_union in module ida_struct: is_union(*args) -> 'bool' is_union(id) -> bool - - Is a union? - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_varmember in module ida_struct: is_varmember(*args) -> 'bool' is_varmember(mptr) -> bool - - Is variable size member? - - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function is_varstr in module ida_struct: is_varstr(*args) -> 'bool' is_varstr(id) -> bool - - Is variable size structure? - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on class member_t in module ida_struct: @@ -65943,27 +82218,39 @@ class member_t(builtins.object) | | by_til(self, *args) -> 'bool' | by_til(self) -> bool + | Was the member created due to the type system? + | + | get_size(self, *args) -> 'asize_t' + | get_size(self) -> asize_t + | Get member size. | | get_soff(self, *args) -> 'ea_t' | get_soff(self) -> ea_t + | Get start offset (for unions - returns 0) | | has_ti(self, *args) -> 'bool' | has_ti(self) -> bool + | Has type information? | | has_union(self, *args) -> 'bool' | has_union(self) -> bool + | Has members of type "union"? | | is_baseclass(self, *args) -> 'bool' | is_baseclass(self) -> bool + | Is a base class member? | | is_destructor(self, *args) -> 'bool' | is_destructor(self) -> bool + | Is a virtual destructor? | | is_dupname(self, *args) -> 'bool' | is_dupname(self) -> bool + | Duplicate name was resolved during import? | | unimem(self, *args) -> 'bool' | unimem(self) -> bool + | Is a member of a union? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65975,19 +82262,19 @@ class member_t(builtins.object) | list of weak references to the object (if defined) | | eoff - | member_t_eoff_get(self) -> ea_t + | eoff | | flag - | member_t_flag_get(self) -> flags_t + | flag | | id - | member_t_id_get(self) -> tid_t + | id | | props - | member_t_props_get(self) -> uint32 + | props | | soff - | member_t_soff_get(self) -> ea_t + | soff | | thisown | The membership flag @@ -65996,166 +82283,128 @@ Help on function retrieve_member_info in module ida_struct: retrieve_member_info(*args) -> 'opinfo_t *' retrieve_member_info(buf, mptr) -> opinfo_t - - Get operand type info for member. - - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function save_struc in module ida_struct: save_struc(*args) -> 'void' save_struc(sptr, may_update_ltypes=True) - - Update struct information in the database (internal function) - - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) Help on function set_member_cmt in module ida_struct: set_member_cmt(*args) -> 'bool' set_member_cmt(mptr, cmt, repeatable) -> bool - - Set member comment. - - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_member_name in module ida_struct: set_member_name(*args) -> 'bool' set_member_name(sptr, offset, name) -> bool - - Set name of member at given offset. - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * Help on function set_member_tinfo in module ida_struct: set_member_tinfo(*args) -> 'smt_code_t' set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - - Set tinfo for given member. - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags Help on function set_member_type in module ida_struct: set_member_type(*args) -> 'bool' set_member_type(sptr, offset, flag, mt, nbytes) -> bool + Set type of member at given offset (also see add_struc_member()) - - Set type of member at given offset (also see 'add_struc_member()' ) - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags64_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) Help on function set_struc_align in module ida_struct: set_struc_align(*args) -> 'bool' set_struc_align(sptr, shift) -> bool + Set structure alignment (SF_ALIGN) - - Set structure alignment ( 'SF_ALIGN' ) - - - @param sptr (C++: struc_t *) - @param shift (C++: int) + @param sptr: (C++: struc_t *) + @param shift: (C++: int) Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' set_struc_cmt(id, cmt, repeatable) -> bool - - Set structure comment. - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_hidden in module ida_struct: set_struc_hidden(*args) -> 'void' set_struc_hidden(sptr, is_hidden) - - Hide/unhide a struct type. - - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) Help on function set_struc_idx in module ida_struct: set_struc_idx(*args) -> 'bool' set_struc_idx(sptr, idx) -> bool + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). - - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) Help on function set_struc_listed in module ida_struct: set_struc_listed(*args) -> 'void' set_struc_listed(sptr, is_listed) - - Add/remove a struct type from the struct list. - - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' set_struc_name(id, name) -> bool - - Set structure name. - - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function stroff_as_size in module ida_struct: stroff_as_size(*args) -> 'bool' stroff_as_size(plen, sptr, value) -> bool - - Should display a structure offset expression as the structure size? - - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) Help on class struc_t in module ida_struct: @@ -66164,6 +82413,9 @@ class struc_t(builtins.object) | | Methods defined here: | + | __get_members__(self, *args) -> 'dynamic_wrapped_array_t< member_t >' + | __get_members__(self) -> dyn_member_ref_array + | | __init__(self, *args, **kwargs) | Initialize self. See help(type(self)) for accurate signature. | @@ -66174,39 +82426,74 @@ class struc_t(builtins.object) | | from_til(self, *args) -> 'bool' | from_til(self) -> bool + | Does structure come from a type library? | | get_alignment(self, *args) -> 'int' | get_alignment(self) -> int + | See SF_ALIGN. | - | get_member(self, *args) -> 'member_t *' - | get_member(self, index) -> member_t + | get_last_member(self, *args) -> 'member_t const *' + | get_last_member(self) -> member_t + | + | get_member(self, index) | | has_union(self, *args) -> 'bool' | has_union(self) -> bool + | Has members of type "union"? | | is_choosable(self, *args) -> 'bool' | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) -> 'bool' + | is_copyof(self) -> bool + | Is copied from a local type? | | is_frame(self, *args) -> 'bool' | is_frame(self) -> bool + | Is this structure a function frame? | | is_ghost(self, *args) -> 'bool' | is_ghost(self) -> bool + | Is a ghost copy of a local type? | | is_hidden(self, *args) -> 'bool' | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) -> 'bool' + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) -> 'bool' + | is_synced(self) -> bool + | Is synced with a local type? | | is_union(self, *args) -> 'bool' | is_union(self) -> bool + | Is a union? | | is_varstr(self, *args) -> 'bool' | is_varstr(self) -> bool + | Is variable size structure? + | + | like_union(self, *args) -> 'bool' + | like_union(self) -> bool + | Is a union or contains members of type "union"? | | set_alignment(self, *args) -> 'void' | set_alignment(self, shift) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) | | set_ghost(self, *args) -> 'void' | set_ghost(self, _is_ghost) + | + | @param _is_ghost: bool + | + | unsync(self, *args) -> 'void' + | unsync(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66218,22 +82505,22 @@ class struc_t(builtins.object) | list of weak references to the object (if defined) | | age - | struc_t_age_get(self) -> ushort + | age | | id - | struc_t_id_get(self) -> tid_t + | id | | members - | struc_t_members_get(self) -> member_t + | __get_members__(self) -> dyn_member_ref_array | | memqty - | struc_t_memqty_get(self) -> uint32 + | memqty | | ordinal - | struc_t_ordinal_get(self) -> int32 + | ordinal | | props - | struc_t_props_get(self) -> uint32 + | props | | thisown | The membership flag @@ -66249,6 +82536,8 @@ class struct_field_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -66257,6 +82546,9 @@ class struct_field_visitor_t(builtins.object) | | visit_field(self, *args) -> 'int' | visit_field(self, sptr, mptr) -> int + | + | @param sptr: struc_t * + | @param mptr: member_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66273,153 +82565,39 @@ class struct_field_visitor_t(builtins.object) Help on function visit_stroff_fields in module ida_struct: visit_stroff_fields(*args) -> 'adiff_t *' - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t + visit_stroff_fields(sfv, path, disp, appzero) -> flags64_t + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. - - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class +Module "ida_tryblks"s docstring: """ +Architecture independent exception handling info. -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. -ida_struct.MF_DTOR -""" -a special member representing destructor -""" +See examples in tests/input/src/eh_tests.""" -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -varunions are prohibited! - -is a union? -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === Help on function add_tryblk in module ida_tryblks: add_tryblk(*args) -> 'int' add_tryblk(tb) -> int - - Add one try block information. - @param tb: try block to add. (C++: const tryblk_t &) + @param tb: (C++: const tryblk_t &) try block to add. @return: error code; 0 means good Help on class catch_t in module ida_tryblks: @@ -66448,13 +82626,13 @@ class catch_t(try_handler_t) | Data descriptors defined here: | | obj - | catch_t_obj_get(self) -> sval_t + | obj | | thisown | The membership flag | | type_id - | catch_t_type_id_get(self) -> sval_t + | type_id | | ---------------------------------------------------------------------- | Methods inherited from try_handler_t: @@ -66466,19 +82644,23 @@ class catch_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66488,25 +82670,37 @@ class catch_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66516,39 +82710,58 @@ class catch_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -66556,16 +82769,26 @@ class catch_t(try_handler_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66593,13 +82816,19 @@ class catchvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< catch_t > const & | | __getitem__(self, *args) -> 'catch_t const &' | __getitem__(self, i) -> catch_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66609,30 +82838,42 @@ class catchvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: catch_t const & | | __swig_destroy__ = delete_catchvec_t(...) | delete_catchvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: catch_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: catch_t const & | | at(self, *args) -> 'catch_t const &' | at(self, _idx) -> catch_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< catch_t >::const_iterator' | begin(self) -> catch_t - | begin(self) -> catch_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66645,39 +82886,58 @@ class catchvec_t(builtins.object) | | end(self, *args) -> 'qvector< catch_t >::const_iterator' | end(self) -> catch_t - | end(self) -> catch_t | | erase(self, *args) -> 'qvector< catch_t >::iterator' | erase(self, it) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | | erase(self, first, last) -> catch_t + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator | | extract(self, *args) -> 'catch_t *' | extract(self) -> catch_t | | find(self, *args) -> 'qvector< catch_t >::const_iterator' | find(self, x) -> catch_t - | find(self, x) -> catch_t + | + | @param x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=catch_t()) + | + | @param x: catch_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: catch_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: catch_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< catch_t >::iterator' | insert(self, it, x) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'catch_t &' | push_back(self, x) + | + | @param x: catch_t const & + | | push_back(self) -> catch_t | | qclear(self, *args) -> 'void' @@ -66685,16 +82945,26 @@ class catchvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: catch_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< catch_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66720,37 +82990,39 @@ Help on function del_tryblks in module ida_tryblks: del_tryblks(*args) -> 'void' del_tryblks(range) - - Delete try block information in the specified range. - @param range: the range to be cleared (C++: const range_t &) + @param range: (C++: const range_t &) the range to be cleared Help on function find_syseh in module ida_tryblks: find_syseh(*args) -> 'ea_t' find_syseh(ea) -> ea_t - - Find the start address of the system eh region including the argument. - @param ea: search address (C++: ea_t) + @param ea: (C++: ea_t) search address @return: start address of surrounding tryblk, otherwise BADADDR Help on function get_tryblks in module ida_tryblks: get_tryblks(*args) -> 'size_t' get_tryblks(tbv, range) -> size_t + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. - - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change @return: number of found try blocks +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) -> 'bool' + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() + Help on class seh_t in module ida_tryblks: class seh_t(try_handler_t) @@ -66780,10 +83052,10 @@ class seh_t(try_handler_t) | Data descriptors defined here: | | filter - | seh_t_filter_get(self) -> rangevec_t + | filter | | seh_code - | seh_t_seh_code_get(self) -> ea_t + | seh_code | | thisown | The membership flag @@ -66792,19 +83064,23 @@ class seh_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66814,25 +83090,37 @@ class seh_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66842,39 +83130,58 @@ class seh_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -66882,16 +83189,26 @@ class seh_t(try_handler_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66938,10 +83255,10 @@ class try_handler_t(ida_range.rangevec_t) | Data descriptors defined here: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | thisown | The membership flag @@ -66951,9 +83268,13 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66963,25 +83284,37 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66991,39 +83324,58 @@ class try_handler_t(ida_range.rangevec_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -67031,16 +83383,26 @@ class try_handler_t(ida_range.rangevec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67075,6 +83437,8 @@ class tryblk_t(ida_range.rangevec_t) | __init__(self, *args) | __init__(self) -> tryblk_t | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -67112,7 +83476,7 @@ class tryblk_t(ida_range.rangevec_t) | Data descriptors defined here: | | level - | tryblk_t_level_get(self) -> uchar + | level | | thisown | The membership flag @@ -67122,9 +83486,13 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67134,64 +83502,95 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -67199,16 +83598,26 @@ class tryblk_t(ida_range.rangevec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67236,13 +83645,19 @@ class tryblks_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & | | __getitem__(self, *args) -> 'tryblk_t const &' | __getitem__(self, i) -> tryblk_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67252,30 +83667,42 @@ class tryblks_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tryblk_t const & | | __swig_destroy__ = delete_tryblks_t(...) | delete_tryblks_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: tryblk_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: tryblk_t const & | | at(self, *args) -> 'tryblk_t const &' | at(self, _idx) -> tryblk_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tryblk_t >::const_iterator' | begin(self) -> tryblk_t - | begin(self) -> tryblk_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -67288,39 +83715,58 @@ class tryblks_t(builtins.object) | | end(self, *args) -> 'qvector< tryblk_t >::const_iterator' | end(self) -> tryblk_t - | end(self) -> tryblk_t | | erase(self, *args) -> 'qvector< tryblk_t >::iterator' | erase(self, it) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | | erase(self, first, last) -> tryblk_t + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator | | extract(self, *args) -> 'tryblk_t *' | extract(self) -> tryblk_t | | find(self, *args) -> 'qvector< tryblk_t >::const_iterator' | find(self, x) -> tryblk_t - | find(self, x) -> tryblk_t + | + | @param x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=tryblk_t()) + | + | @param x: tryblk_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: tryblk_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: tryblk_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tryblk_t >::iterator' | insert(self, it, x) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tryblk_t &' | push_back(self, x) + | + | @param x: tryblk_t const & + | | push_back(self) -> tryblk_t | | qclear(self, *args) -> 'void' @@ -67328,16 +83774,26 @@ class tryblks_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tryblk_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< tryblk_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67359,80 +83815,72 @@ class tryblks_t(builtins.object) | | __hash__ = None -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block +Module "ida_typeinf"s docstring: """ +Describes the type information records in IDA. -ida_tryblks.TBERR_END -""" -bad end address -""" +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" +Help on function f in module ida_idaapi: -ida_tryblks.TBERR_OK -""" -ok -""" +f() -ida_tryblks.TBERR_ORDER -""" -bad address order -""" +Help on swigvarlink object: + +<class 'swigvarlink'> +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(builtins.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | Implement setattr(self, name, value). + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === Help on function add_til in module ida_typeinf: add_til(*args) -> 'int' add_til(name, flags) -> int + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. - - Load a til file. - - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes Help on function alloc_type_ordinal in module ida_typeinf: alloc_type_ordinal(*args) -> 'uint32' alloc_type_ordinal(ti) -> uint32 + alloc_type_ordinals(ti, 1) - - \call2{alloc_type_ordinals,ti,1} - - - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function alloc_type_ordinals in module ida_typeinf: alloc_type_ordinals(*args) -> 'uint32' alloc_type_ordinals(ti, qty) -> uint32 - - Allocate a range of ordinal numbers for new types. - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate @return: the first ordinal. 0 means failure. Help on class aloc_visitor_t in module ida_typeinf: @@ -67446,6 +83894,8 @@ class aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -67454,6 +83904,10 @@ class aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67471,141 +83925,121 @@ Help on function append_abi_opts in module ida_typeinf: append_abi_opts(*args) -> 'bool' append_abi_opts(abi_opts, user_level=False) -> bool + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... - - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) @return: success Help on function append_argloc in module ida_typeinf: append_argloc(*args) -> 'bool' append_argloc(out, vloc) -> bool + Serialize argument location - - Serialize argument location. - - - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) -> 'bool' append_tinfo_covered(out, typid, offset) -> bool + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 Help on function apply_callee_tinfo in module ida_typeinf: apply_callee_tinfo(*args) -> 'bool' apply_callee_tinfo(caller, tif) -> bool + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. - - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info @return: success Help on function apply_cdecl in module ida_typeinf: apply_cdecl(*args) -> 'bool' apply_cdecl(til, ea, decl, flags=0) -> bool + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() - - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) @return: success Help on function apply_named_type in module ida_typeinf: apply_named_type(*args) -> 'bool' apply_named_type(ea, name) -> bool - - Apply the specified named type to the address. - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" @return: success Help on function apply_once_tinfo_and_name in module ida_typeinf: apply_once_tinfo_and_name(*args) -> 'bool' apply_once_tinfo_and_name(dea, tif, name) -> bool + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. - - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address @return: success Help on function apply_tinfo in module ida_typeinf: apply_tinfo(*args) -> 'bool' apply_tinfo(ea, tif, flags) -> bool + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. - - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags @return: success Help on function apply_tinfo_to_stkarg in module ida_typeinf: apply_tinfo_to_stkarg(*args) -> 'bool' apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} + processor_t::use_stkarg_type - @param insn (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * Help on function apply_type in module ida_typeinf: apply_type(*args) -> 'bool' - apply_type(ti, _type, _fields, ea, flags) -> bool - - + apply_type(ti, type, fields, ea, flags) -> bool Apply the specified type to the address + @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) + @param type: type_t const * + @param fields: p_list const * @param ea: the address of the object @param flags: combination of TINFO_... constants or 0 @return: Boolean @@ -67619,25 +84053,39 @@ class argloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: argloc_t const & | | __repr__ = _swig_repr(self) | @@ -67646,143 +84094,244 @@ class argloc_t(builtins.object) | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg1(self, *args) -> 'int' | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67815,10 +84364,15 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t + | + | @param a: argloc_t const & + | | __init__(self) -> argpart_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: argpart_t const & | | __repr__ = _swig_repr(self) | @@ -67827,21 +84381,26 @@ class argpart_t(argloc_t) | | bad_offset(self, *args) -> 'bool' | bad_offset(self) -> bool + | Does this argpart have a valid offset? | | bad_size(self, *args) -> 'bool' | bad_size(self) -> bool + | Does this argpart have a valid size? | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | off - | argpart_t_off_get(self) -> ushort + | off | | size - | argpart_t_size_get(self) -> ushort + | size | | thisown | The membership flag @@ -67851,155 +84410,263 @@ class argpart_t(argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: argloc_t const & | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg1(self, *args) -> 'int' | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -68024,13 +84691,19 @@ class argpartvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68040,30 +84713,42 @@ class argpartvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & | | __swig_destroy__ = delete_argpartvec_t(...) | delete_argpartvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68076,39 +84761,58 @@ class argpartvec_t(builtins.object) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | find(self, x) -> argpart_t + | + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) + | + | @param x: argpart_t const & + | | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' @@ -68116,16 +84820,26 @@ class argpartvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68147,6 +84861,75 @@ class argpartvec_t(builtins.object) | | __hash__ = None +Help on class argtinfo_helper_t in module ida_typeinf: + +class argtinfo_helper_t(builtins.object) + | Proxy of C++ argtinfo_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> argtinfo_helper_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argtinfo_helper_t(...) + | delete_argtinfo_helper_t(self) + | + | has_delay_slot(self, *args) -> 'bool' + | has_delay_slot(self, arg0) -> bool + | The call instruction with a delay slot?. + | + | @param arg0: ea_t + | + | is_stkarg_load(self, *args) -> 'bool' + | is_stkarg_load(self, insn, src, dst) -> bool + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) + | + | set_op_tinfo(self, *args) -> 'bool' + | set_op_tinfo(self, insn, x, tif, name) -> bool + | Set the operand type as specified. + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | + | use_arg_tinfos(self, *args) -> 'void' + | use_arg_tinfos(self, caller, fti, rargs) + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag + Help on class array_type_data_t in module ida_typeinf: class array_type_data_t(builtins.object) @@ -68156,6 +84939,9 @@ class array_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t + | + | @param b: size_t + | @param n: size_t | | __repr__ = _swig_repr(self) | @@ -68164,6 +84950,9 @@ class array_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | set this = r and r = this + | + | @param r: (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68175,13 +84964,13 @@ class array_type_data_t(builtins.object) | list of weak references to the object (if defined) | | base - | array_type_data_t_base_get(self) -> uint32 + | base | | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t + | elem_type | | nelems - | array_type_data_t_nelems_get(self) -> uint32 + | nelems | | thisown | The membership flag @@ -68190,13 +84979,10 @@ Help on function begin_type_updating in module ida_typeinf: begin_type_updating(*args) -> 'void' begin_type_updating(utp) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() - - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - - @param utp (C++: update_type_t) + @param utp: (C++: update_type_t) enum update_type_t Help on class bitfield_type_data_t in module ida_typeinf: @@ -68207,24 +84993,40 @@ class bitfield_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -68233,9 +85035,13 @@ class bitfield_type_data_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: bitfield_type_data_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: bitfield_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68247,16 +85053,16 @@ class bitfield_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool + | is_unsigned | | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar + | nbytes | | thisown | The membership flag | | width - | bitfield_type_data_t_width_get(self) -> uchar + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -68267,45 +85073,42 @@ Help on function calc_c_cpp_name in module ida_typeinf: calc_c_cpp_name(*args) -> 'qstring *' calc_c_cpp_name(name, type, ccn_flags) -> str - - Get C or C++ form of the name. - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags Help on function calc_number_of_children in module ida_typeinf: calc_number_of_children(*args) -> 'int' calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). - - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines Help on function calc_tinfo_gaps in module ida_typeinf: calc_tinfo_gaps(*args) -> 'bool' calc_tinfo_gaps(out, typid) -> bool + + @param out: rangeset_t * + @param typid: uint32 Help on function calc_type_size in module ida_typeinf: calc_type_size(*args) -> 'PyObject *' calc_type_size(ti, tp) -> PyObject * - - Returns the size of a type + @param ti: Type info. 'None' can be passed. @param tp: type string - @return: - - None on failure + @return: - None on failure - The size of the type Help on class callregs_t in module ida_typeinf: @@ -68318,29 +85121,52 @@ class callregs_t(builtins.object) | __init__(self, *args) | __init__(self) -> callregs_t | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_callregs_t(...) | delete_callregs_t(self) | + | by_slots(self, *args) -> 'bool' + | by_slots(self) -> bool + | | init_regs(self, *args) -> 'void' | init_regs(self, cc) + | Init policy & registers for given CC. + | + | @param cc: (C++: cm_t) | | reginds(self, *args) -> 'bool' | reginds(self, gp_ind, fp_ind, r) -> bool + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) | | reset(self, *args) -> 'void' | reset(self) + | Set policy and registers to invalid values. | | set(self, *args) -> 'void' | set(self, _policy, gprs, fprs) + | Init policy & registers (arrays are -1-terminated) + | + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) -> 'int' | regcount(cc) -> int + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68352,16 +85178,16 @@ class callregs_t(builtins.object) | list of weak references to the object (if defined) | | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * + | fpregs | | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * + | gpregs | | nregs - | callregs_t_nregs_get(self) -> int + | nregs | | policy - | callregs_t_policy_get(self) -> argreg_policy_t + | policy | | thisown | The membership flag @@ -68370,80 +85196,74 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) -> 'int' callregs_t_regcount(cc) -> int + + @param cc: cm_t Help on function choose_local_tinfo in module ida_typeinf: choose_local_tinfo(*args) -> 'uint32' choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - - Choose a type from the local type library. - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_local_tinfo_and_delta in module ida_typeinf: choose_local_tinfo_and_delta(*args) -> 'uint32' choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + Choose a type from the local type library and specify the pointer shift value. - - Choose a type from the local type library and specify the pointer - shift value. - - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_named_type in module ida_typeinf: choose_named_type(*args) -> 'bool' choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - - Choose a type from a type library. - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) @return: false if nothing is chosen, otherwise true Help on function clear_tinfo_t in module ida_typeinf: clear_tinfo_t(*args) -> 'void' clear_tinfo_t(_this) + + @param _this: tinfo_t * Help on function compact_til in module ida_typeinf: compact_til(*args) -> 'bool' compact_til(ti) -> bool - - Collect garbage in til. Must be called before storing the til. - @param ti (C++: til_t *) + @param ti: (C++: til_t *) @return: true if any memory was freed Help on function compare_tinfo in module ida_typeinf: compare_tinfo(*args) -> 'bool' compare_tinfo(t1, t2, tcflags) -> bool + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -68456,6 +85276,8 @@ class const_aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -68464,6 +85286,10 @@ class const_aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t const & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68481,149 +85307,153 @@ Help on function convert_pt_flags_to_hti in module ida_typeinf: convert_pt_flags_to_hti(*args) -> 'int' convert_pt_flags_to_hti(pt_flags) -> int + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) - - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - - @param pt_flags (C++: int) + @param pt_flags: (C++: int) Help on function copy_named_type in module ida_typeinf: copy_named_type(*args) -> 'uint32' copy_named_type(dsttil, srctil, name) -> uint32 + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. - - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy @return: ordinal number of the copied type. 0 means error Help on function copy_tinfo_t in module ida_typeinf: copy_tinfo_t(*args) -> 'void' copy_tinfo_t(_this, r) + + @param _this: tinfo_t * + @param r: tinfo_t const & Help on function create_numbered_type_name in module ida_typeinf: create_numbered_type_name(*args) -> 'qstring *' create_numbered_type_name(ord) -> str + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length - - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - - @param ord (C++: int32) + @param ord: (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) -> 'bool' create_tinfo(_this, bt, bt2, ptr) -> bool + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * Help on function default_compiler in module ida_typeinf: default_compiler(*args) -> 'comp_t' default_compiler() -> comp_t - - - Get compiler specified by \varmem{inf,idainfo,cc}. + Get compiler specified by inf.cc. Help on function del_named_type in module ida_typeinf: del_named_type(*args) -> 'bool' del_named_type(ti, name, ntf_flags) -> bool - - Delete information about a symbol. - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types @return: success Help on function del_numbered_type in module ida_typeinf: del_numbered_type(*args) -> 'bool' del_numbered_type(ti, ordinal) -> bool - - Delete a numbered type. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) Help on function del_til in module ida_typeinf: del_til(*args) -> 'bool' del_til(name) -> bool - - Unload a til file. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) -> 'bool' del_tinfo_attr(tif, key, make_copy) -> bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool + +Help on function del_vftable_ea in module ida_typeinf: + +del_vftable_ea(*args) -> 'bool' + del_vftable_ea(ordinal) -> bool + Delete the address of a vftable instance for a vftable type. + + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success Help on function deref_ptr in module ida_typeinf: deref_ptr(*args) -> 'bool' deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - - Dereference a pointer. - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) @return: success Help on function deserialize_tinfo in module ida_typeinf: deserialize_tinfo(*args) -> 'bool' deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) -> 'char const *' dstr_tinfo(tif) -> char const * + + @param tif: tinfo_t const * Help on function dump_func_type_data in module ida_typeinf: dump_func_type_data(*args) -> 'qstring *' dump_func_type_data(fti, praloc_bits) -> str + Use func_type_data_t::dump() - - Use 'func_type_data_t::dump()' - - - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) Help on function end_type_updating in module ida_typeinf: end_type_updating(*args) -> 'void' end_type_updating(utp) - - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) + begin_type_updating()) - - @param utp (C++: update_type_t) + @param utp: (C++: update_type_t) enum update_type_t Help on class enum_member_t in module ida_typeinf: @@ -68634,12 +85464,16 @@ class enum_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: enum_member_t const & | | __repr__ = _swig_repr(self) | @@ -68648,6 +85482,8 @@ class enum_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: enum_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68659,16 +85495,16 @@ class enum_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | enum_member_t_cmt_get(self) -> qstring * + | cmt | | name - | enum_member_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | enum_member_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -68684,13 +85520,19 @@ class enum_member_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68700,30 +85542,42 @@ class enum_member_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & | | __swig_destroy__ = delete_enum_member_vec_t(...) | delete_enum_member_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68736,39 +85590,58 @@ class enum_member_vec_t(builtins.object) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) + | + | @param x: enum_member_t const & + | | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' @@ -68776,16 +85649,26 @@ class enum_member_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< enum_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68821,6 +85704,8 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | + | @param _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -68850,18 +85735,21 @@ class enum_type_data_t(enum_member_vec_t) | | swap(self, *args) -> 'void' | swap(self, r) + | swap two instances + | + | @param r: (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bte - | enum_type_data_t_bte_get(self) -> bte_t + | bte | | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * + | group_sizes | | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 + | taenum_bits | | thisown | The membership flag @@ -68871,9 +85759,13 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68883,25 +85775,37 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68914,39 +85818,58 @@ class enum_type_data_t(enum_member_vec_t) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) + | + | @param x: enum_member_t const & + | | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' @@ -68954,10 +85877,18 @@ class enum_type_data_t(enum_member_vec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -68982,84 +85913,77 @@ class enum_type_data_t(enum_member_vec_t) Help on function extract_argloc in module ida_typeinf: extract_argloc(*args) -> 'bool' - extract_argloc(vloc, ptype, is_retval) -> bool + extract_argloc(vloc, ptype, forbid_stkoff) -> bool + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack - - Deserialize argument location. - - - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param is_retval (C++: bool) + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) Help on function find_tinfo_udt_member in module ida_typeinf: find_tinfo_udt_member(*args) -> 'int' find_tinfo_udt_member(udm, typid, strmem_flags) -> int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int Help on function first_named_type in module ida_typeinf: first_named_type(*args) -> 'char const *' first_named_type(ti, ntf_flags) -> char const * + Enumerate types. - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. Help on function for_all_arglocs in module ida_typeinf: for_all_arglocs(*args) -> 'int' for_all_arglocs(vv, vloc, size, off=0) -> int - - Compress larger argloc types and initiate the aloc visitor. - - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) Help on function for_all_const_arglocs in module ida_typeinf: for_all_const_arglocs(*args) -> 'int' for_all_const_arglocs(vv, vloc, size, off=0) -> int + See for_all_arglocs() - - See 'for_all_arglocs()' - - - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) Help on function free_til in module ida_typeinf: free_til(*args) -> 'void' free_til(ti) - - Free memory allocated by til. - - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function func_has_stkframe_hole in module ida_typeinf: func_has_stkframe_hole(*args) -> 'bool' func_has_stkframe_hole(ea, fti) -> bool + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. - - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & Help on class func_type_data_t in module ida_typeinf: @@ -69083,12 +86007,33 @@ class func_type_data_t(funcargvec_t) | | dump(self, *args) -> 'bool' | dump(self, praloc_bits=0x02) -> bool + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) | | get_call_method(self, *args) -> 'int' | get_call_method(self) -> int | | guess_cc(self, *args) -> 'cm_t' | guess_cc(self, purged, cc_flags) -> cm_t + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | + | is_ctor(self, *args) -> 'bool' + | is_ctor(self) -> bool + | + | is_dtor(self, *args) -> 'bool' + | is_dtor(self) -> bool + | + | is_golang_cc(self, *args) -> 'bool' + | is_golang_cc(self) -> bool | | is_high(self, *args) -> 'bool' | is_high(self) -> bool @@ -69099,32 +86044,40 @@ class func_type_data_t(funcargvec_t) | is_pure(self, *args) -> 'bool' | is_pure(self) -> bool | + | is_static(self, *args) -> 'bool' + | is_static(self) -> bool + | | is_vararg_cc(self, *args) -> 'bool' | is_vararg_cc(self) -> bool | + | is_virtual(self, *args) -> 'bool' + | is_virtual(self) -> bool + | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: func_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cc - | func_type_data_t_cc_get(self) -> cm_t + | cc | | flags - | func_type_data_t_flags_get(self) -> int + | flags | | retloc - | func_type_data_t_retloc_get(self) -> argloc_t + | retloc | | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t + | rettype | | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t + | spoiled | | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t + | stkargs | | thisown | The membership flag @@ -69134,9 +86087,13 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69146,25 +86103,37 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69177,39 +86146,58 @@ class func_type_data_t(funcargvec_t) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) + | + | @param x: funcarg_t const & + | | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' @@ -69217,10 +86205,18 @@ class func_type_data_t(funcargvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -69251,12 +86247,16 @@ class funcarg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -69273,22 +86273,22 @@ class funcarg_t(builtins.object) | list of weak references to the object (if defined) | | argloc - | funcarg_t_argloc_get(self) -> argloc_t + | argloc | | cmt - | funcarg_t_cmt_get(self) -> qstring * + | cmt | | flags - | funcarg_t_flags_get(self) -> uint32 + | flags | | name - | funcarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | funcarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -69304,13 +86304,19 @@ class funcargvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69320,30 +86326,42 @@ class funcargvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & | | __swig_destroy__ = delete_funcargvec_t(...) | delete_funcargvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69356,39 +86374,58 @@ class funcargvec_t(builtins.object) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) + | + | @param x: funcarg_t const & + | | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' @@ -69396,16 +86433,26 @@ class funcargvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< funcarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69431,46 +86478,46 @@ Help on function gcc_layout in module ida_typeinf: gcc_layout(*args) -> 'bool' gcc_layout() -> bool - - Should use the struct/union layout as done by gcc? Help on function gen_decorate_name in module ida_typeinf: gen_decorate_name(*args) -> 'qstring *' gen_decorate_name(name, mangle, cc, type) -> str + Generic function for decorate_name() (may be used in IDP modules) - - Generic function for 'decorate_name()' (may be used in IDP modules) - - - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * Help on function gen_use_arg_tinfos in module ida_typeinf: gen_use_arg_tinfos(*args) -> 'void' gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * + +Help on function gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) -> 'void' + gen_use_arg_tinfos2(_this, caller, fti, rargs) + Do not call this function directly, use argtinfo_helper_t. - The main function using these callbacks: - - - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) Help on function get_abi_name in module ida_typeinf: get_abi_name(*args) -> 'qstring *' get_abi_name() -> str - - Get ABI name. @return: length of the name (>=0) @@ -69479,20 +86526,16 @@ Help on function get_alias_target in module ida_typeinf: get_alias_target(*args) -> 'uint32' get_alias_target(ti, ordinal) -> uint32 + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. - - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_arg_addrs in module ida_typeinf: get_arg_addrs(*args) -> 'PyObject *' get_arg_addrs(caller) -> PyObject * - - Retrieve addresses of argument initialization instructions @param caller: the address of the call instruction @@ -69502,288 +86545,292 @@ Help on function get_base_type in module ida_typeinf: get_base_type(*args) -> 'type_t' get_base_type(t) -> type_t + Get get basic type bits (TYPE_BASE_MASK) - - Get get basic type bits ( 'TYPE_BASE_MASK' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function get_c_header_path in module ida_typeinf: get_c_header_path(*args) -> 'qstring *' get_c_header_path() -> str - - Get the include directory path of the target compiler. Help on function get_c_macros in module ida_typeinf: get_c_macros(*args) -> 'qstring *' get_c_macros() -> str - - Get predefined macros for the target compiler. Help on function get_comp in module ida_typeinf: get_comp(*args) -> 'comp_t' get_comp(comp) -> comp_t - - Get compiler bits. - - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function get_compiler_abbr in module ida_typeinf: get_compiler_abbr(*args) -> 'char const *' get_compiler_abbr(id) -> char const * - - Get abbreviated compiler name. - - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compiler_name in module ida_typeinf: get_compiler_name(*args) -> 'char const *' get_compiler_name(id) -> char const * - - Get full compiler name. - - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compilers in module ida_typeinf: get_compilers(*args) -> 'void' get_compilers(ids, names, abbrs) - - Get names of all built-in compilers. - - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) Help on function get_enum_member_expr in module ida_typeinf: get_enum_member_expr(*args) -> 'qstring *' get_enum_member_expr(tif, serial, value) -> str + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. - - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet @return: success Help on function get_full_type in module ida_typeinf: get_full_type(*args) -> 'type_t' get_full_type(t) -> type_t + Get basic type bits + type flags (TYPE_FULL_MASK) + @param t: (C++: type_t) + +Help on function get_idainfo64_by_type in module ida_typeinf: + +get_idainfo64_by_type(*args) -> 'size_t *, opinfo_t *, size_t *' + get_idainfo64_by_type(out_flags, tif) -> bool + Extract information from a tinfo_t. - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - - - @param t (C++: type_t) + @param out_flags: (C++: flags64_t *) description of type using flags64_t + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idainfo_by_type in module ida_typeinf: get_idainfo_by_type(*args) -> 'size_t *, flags_t *, opinfo_t *, size_t *' get_idainfo_by_type(tif) -> bool + Extract information from a tinfo_t. - - Extract information from a 'tinfo_t' . - - @param tif: the type to inspect (C++: const tinfo_t &) + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idati in module ida_typeinf: get_idati(*args) -> 'til_t const *' get_idati() -> til_t - - - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. Help on function get_named_type in module ida_typeinf: get_named_type(*args) -> 'PyObject *' - get_named_type(til, name, ntf_flags) -> PyObject * - - + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) Get a type data by its name. + @param til: the type library @param name: the type name @param ntf_flags: a combination of NTF_* constants - @return: - None on failure + @return: None on failure tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) -> 'PyObject *' - get_named_type64(til, name, ntf_flags) -> PyObject * + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. - - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. - - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function get_numbered_type in module ida_typeinf: get_numbered_type(*args) -> 'PyObject *' - get_numbered_type(til, ordinal) -> PyObject * - - + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) Retrieve a type by its ordinal number. - - @param ordinal (C++: uint32) + @param til: til_t const * + @param ordinal: (C++: uint32) Help on function get_numbered_type_name in module ida_typeinf: get_numbered_type_name(*args) -> 'char const *' get_numbered_type_name(ti, ordinal) -> char const * + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr - - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_ordinal_from_idb_type in module ida_typeinf: get_ordinal_from_idb_type(*args) -> 'int' get_ordinal_from_idb_type(name, type) -> int + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types - - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - - @param name (C++: const char *) - @param type (C++: const type_t *) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * Help on function get_ordinal_qty in module ida_typeinf: get_ordinal_qty(*args) -> 'uint32' get_ordinal_qty(ti) -> uint32 - - Get number of allocated ordinals. - @param ti (C++: const til_t *) + @param ti: (C++: const til_t *) til_t const * @return: uint32(-1) if failed Help on function get_scalar_bt in module ida_typeinf: get_scalar_bt(*args) -> 'type_t' get_scalar_bt(size) -> type_t + + @param size: int Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) -> 'bool' get_stock_tinfo(tif, id) -> bool + + @param tif: tinfo_t * + @param id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) -> 'bool' get_tinfo_attr(typid, key, bv, all_attrs) -> bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool Help on function get_tinfo_attrs in module ida_typeinf: get_tinfo_attrs(*args) -> 'bool' get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool Help on function get_tinfo_details in module ida_typeinf: get_tinfo_details(*args) -> 'bool' get_tinfo_details(typid, bt2, buf) -> bool + + @param typid: uint32 + @param bt2: type_t + @param buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) -> 'size_t' get_tinfo_pdata(outptr, typid, what) -> size_t + + @param outptr: void * + @param typid: uint32 + @param what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) -> 'size_t' get_tinfo_property(typid, gta_prop) -> size_t + + @param typid: uint32 + @param gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) -> 'size_t' get_tinfo_size(p_effalign, typid, gts_code) -> size_t + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int Help on function get_type_flags in module ida_typeinf: get_type_flags(*args) -> 'type_t' get_type_flags(t) -> type_t + Get type flags (TYPE_FLAGS_MASK) - - Get type flags ( 'TYPE_FLAGS_MASK' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function get_type_ordinal in module ida_typeinf: get_type_ordinal(*args) -> 'int32' get_type_ordinal(ti, name) -> int32 - - Get type ordinal by its name. + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + +Help on function get_vftable_ea in module ida_typeinf: + +get_vftable_ea(*args) -> 'ea_t' + get_vftable_ea(ordinal) -> ea_t + Get address of a virtual function table. - @param ti (C++: const til_t *) - @param name (C++: const char *) + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. + +Help on function get_vftable_ordinal in module ida_typeinf: + +get_vftable_ordinal(*args) -> 'uint32' + get_vftable_ordinal(vftable_ea) -> uint32 + Get ordinal number of the virtual function table. + + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. Help on function guess_func_cc in module ida_typeinf: guess_func_cc(*args) -> 'cm_t' guess_func_cc(fti, npurged, cc_flags) -> cm_t + Use func_type_data_t::guess_cc() - - Use 'func_type_data_t::guess_cc()' - - - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) Help on function guess_tinfo in module ida_typeinf: guess_tinfo(*args) -> 'int' guess_tinfo(tif, id) -> int + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. - - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes Help on class ida_lowertype_helper_t in module ida_typeinf: @@ -69799,6 +86846,10 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int | | __repr__ = _swig_repr(self) | @@ -69807,9 +86858,15 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, arg3) -> int + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69828,744 +86885,656 @@ class ida_lowertype_helper_t(lowertype_helper_t) Help on function idc_get_local_type in module ida_typeinf: -idc_get_local_type(*args) -> 'int' - idc_get_local_type(ordinal, flags, buf, maxsize) -> int +idc_get_local_type(*args) -> 'size_t' + idc_get_local_type(ordinal, flags) -> str + + @param ordinal: int + @param flags: int Help on function idc_get_local_type_name in module ida_typeinf: idc_get_local_type_name(*args) -> 'size_t' idc_get_local_type_name(ordinal) -> str + + @param ordinal: int Help on function idc_get_local_type_raw in module ida_typeinf: idc_get_local_type_raw(*args) -> 'PyObject *' - idc_get_local_type_raw(ordinal) -> PyObject * + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) -> 'size_t' idc_get_type(ea) -> str + + @param ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) -> 'PyObject *' idc_get_type_raw(ea) -> PyObject * + + @param ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) -> 'size_t' idc_guess_type(ea) -> str + + @param ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) -> 'PyObject *' - idc_parse_decl(ti, decl, flags) -> PyObject * + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) -> 'int' idc_parse_types(input, flags) -> int + + @param input: char const * + @param flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) -> 'PyObject *' - idc_print_type(_type, _fields, name, flags) -> PyObject * + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) -> 'int' idc_set_local_type(ordinal, dcl, flags) -> int + + @param ordinal: int + @param dcl: char const * + @param flags: int Help on function import_type in module ida_typeinf: import_type(*args) -> 'tid_t' import_type(til, idx, name, flags=0) -> tid_t - - Copy a named type from til to idb. - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t Help on function is_autosync in module ida_typeinf: is_autosync(*args) -> 'bool' is_autosync(name, type) -> bool - is_autosync(name, tif) -> bool - - Is the specified idb type automatically synchronized? + @param name: (C++: const char *) char const * + @param type: type_t const * - @param name (C++: const char *) - @param type (C++: const type_t *) + is_autosync(name, tif) -> bool + + @param name: char const * + @param tif: tinfo_t const & Help on function is_code_far in module ida_typeinf: is_code_far(*args) -> 'bool' is_code_far(cm) -> bool - - Does the given model specify far code?. - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_comp_unsure in module ida_typeinf: is_comp_unsure(*args) -> 'comp_t' is_comp_unsure(comp) -> comp_t + See COMP_UNSURE. - - See 'COMP_UNSURE' . - - - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function is_data_far in module ida_typeinf: is_data_far(*args) -> 'bool' is_data_far(cm) -> bool - - Does the given model specify far data?. - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_gcc in module ida_typeinf: is_gcc(*args) -> 'bool' is_gcc() -> bool - - - Is the target compiler 'COMP_GNU' ? + Is the target compiler COMP_GNU? Help on function is_gcc32 in module ida_typeinf: is_gcc32(*args) -> 'bool' is_gcc32() -> bool - - Is the target compiler 32 bit gcc? Help on function is_gcc64 in module ida_typeinf: is_gcc64(*args) -> 'bool' is_gcc64() -> bool - - Is the target compiler 64 bit gcc? +Help on function is_golang_cc in module ida_typeinf: + +is_golang_cc(*args) -> 'bool' + is_golang_cc(cc) -> bool + GO language calling convention (return value in stack)? + + @param cc: (C++: cm_t) + Help on function is_ordinal_name in module ida_typeinf: is_ordinal_name(*args) -> 'bool' is_ordinal_name(name, ord=None) -> bool + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) - - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - - @param name (C++: const char *) - @param ord (C++: uint32 *) + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) Help on function is_purging_cc in module ida_typeinf: is_purging_cc(*args) -> 'bool' is_purging_cc(cm) -> bool + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code - - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_restype_enum in module ida_typeinf: is_restype_enum(*args) -> 'bool' is_restype_enum(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) -> 'bool' is_restype_struct(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) -> 'bool' is_restype_struni(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) -> 'bool' is_restype_void(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_sdacl_byte in module ida_typeinf: is_sdacl_byte(*args) -> 'bool' is_sdacl_byte(t) -> bool + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) - - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_tah_byte in module ida_typeinf: is_tah_byte(*args) -> 'bool' is_tah_byte(t) -> bool + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) - - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_arithmetic in module ida_typeinf: is_type_arithmetic(*args) -> 'bool' is_type_arithmetic(t) -> bool - - Is the type an arithmetic type? (floating or integral) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_array in module ida_typeinf: is_type_array(*args) -> 'bool' is_type_array(t) -> bool + See BT_ARRAY. - - See 'BT_ARRAY' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_bitfld in module ida_typeinf: is_type_bitfld(*args) -> 'bool' is_type_bitfld(t) -> bool + See BT_BITFIELD. - - See 'BT_BITFIELD' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_bool in module ida_typeinf: is_type_bool(*args) -> 'bool' is_type_bool(t) -> bool + See BTF_BOOL. - - See 'BTF_BOOL' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_char in module ida_typeinf: is_type_char(*args) -> 'bool' is_type_char(t) -> bool + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_complex in module ida_typeinf: is_type_complex(*args) -> 'bool' is_type_complex(t) -> bool + See BT_COMPLEX. - - See 'BT_COMPLEX' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_const in module ida_typeinf: is_type_const(*args) -> 'bool' is_type_const(t) -> bool + See BTM_CONST. - - See 'BTM_CONST' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_double in module ida_typeinf: is_type_double(*args) -> 'bool' is_type_double(t) -> bool + See BTF_DOUBLE. - - See 'BTF_DOUBLE' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_enum in module ida_typeinf: is_type_enum(*args) -> 'bool' is_type_enum(t) -> bool + See BTF_ENUM. - - See 'BTF_ENUM' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_arithmetic in module ida_typeinf: is_type_ext_arithmetic(*args) -> 'bool' is_type_ext_arithmetic(t) -> bool - - Is the type an extended arithmetic type? (arithmetic or enum) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_integral in module ida_typeinf: is_type_ext_integral(*args) -> 'bool' is_type_ext_integral(t) -> bool - - Is the type an extended integral type? (integral or enum) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_float in module ida_typeinf: is_type_float(*args) -> 'bool' is_type_float(t) -> bool + See BTF_FLOAT. - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_floating in module ida_typeinf: is_type_floating(*args) -> 'bool' is_type_floating(t) -> bool - - Is the type a floating point type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_func in module ida_typeinf: is_type_func(*args) -> 'bool' is_type_func(t) -> bool + See BT_FUNC. - - See 'BT_FUNC' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int in module ida_typeinf: is_type_int(*args) -> 'bool' is_type_int(bt) -> bool + Does the type_t specify one of the basic types in Basic type: integer? - - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - - - @param bt (C++: type_t) + @param bt: (C++: type_t) Help on function is_type_int128 in module ida_typeinf: is_type_int128(*args) -> 'bool' is_type_int128(t) -> bool + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int16 in module ida_typeinf: is_type_int16(*args) -> 'bool' is_type_int16(t) -> bool + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int32 in module ida_typeinf: is_type_int32(*args) -> 'bool' is_type_int32(t) -> bool + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int64 in module ida_typeinf: is_type_int64(*args) -> 'bool' is_type_int64(t) -> bool + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_integral in module ida_typeinf: is_type_integral(*args) -> 'bool' is_type_integral(t) -> bool - - Is the type an integral type (char/short/int/long/bool)? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ldouble in module ida_typeinf: is_type_ldouble(*args) -> 'bool' is_type_ldouble(t) -> bool + See BTF_LDOUBLE. - - See 'BTF_LDOUBLE' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_paf in module ida_typeinf: is_type_paf(*args) -> 'bool' is_type_paf(t) -> bool - - Is the type a pointer, array, or function type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_partial in module ida_typeinf: is_type_partial(*args) -> 'bool' is_type_partial(t) -> bool + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) - - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ptr in module ida_typeinf: is_type_ptr(*args) -> 'bool' is_type_ptr(t) -> bool + See BT_PTR. - - See 'BT_PTR' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ptr_or_array in module ida_typeinf: is_type_ptr_or_array(*args) -> 'bool' is_type_ptr_or_array(t) -> bool - - Is the type a pointer or array type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struct in module ida_typeinf: is_type_struct(*args) -> 'bool' is_type_struct(t) -> bool + See BTF_STRUCT. - - See 'BTF_STRUCT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struni in module ida_typeinf: is_type_struni(*args) -> 'bool' is_type_struni(t) -> bool - - Is the type a struct or union? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_sue in module ida_typeinf: is_type_sue(*args) -> 'bool' is_type_sue(t) -> bool - - Is the type a struct/union/enum? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_tbyte in module ida_typeinf: is_type_tbyte(*args) -> 'bool' is_type_tbyte(t) -> bool + See BTF_FLOAT. - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_typedef in module ida_typeinf: is_type_typedef(*args) -> 'bool' is_type_typedef(t) -> bool + See BTF_TYPEDEF. - - See 'BTF_TYPEDEF' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uchar in module ida_typeinf: is_type_uchar(*args) -> 'bool' is_type_uchar(t) -> bool + See BTF_UCHAR. - - See 'BTF_UCHAR' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint in module ida_typeinf: is_type_uint(*args) -> 'bool' is_type_uint(t) -> bool + See BTF_UINT. - - See 'BTF_UINT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint128 in module ida_typeinf: is_type_uint128(*args) -> 'bool' is_type_uint128(t) -> bool + See BTF_UINT128. - - See 'BTF_UINT128' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint16 in module ida_typeinf: is_type_uint16(*args) -> 'bool' is_type_uint16(t) -> bool + See BTF_UINT16. - - See 'BTF_UINT16' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint32 in module ida_typeinf: is_type_uint32(*args) -> 'bool' is_type_uint32(t) -> bool + See BTF_UINT32. - - See 'BTF_UINT32' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint64 in module ida_typeinf: is_type_uint64(*args) -> 'bool' is_type_uint64(t) -> bool + See BTF_UINT64. - - See 'BTF_UINT64' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_union in module ida_typeinf: is_type_union(*args) -> 'bool' is_type_union(t) -> bool + See BTF_UNION. - - See 'BTF_UNION' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_unknown in module ida_typeinf: is_type_unknown(*args) -> 'bool' is_type_unknown(t) -> bool + See BT_UNKNOWN. - - See 'BT_UNKNOWN' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_void in module ida_typeinf: is_type_void(*args) -> 'bool' is_type_void(t) -> bool + See BTF_VOID. - - See 'BTF_VOID' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_volatile in module ida_typeinf: is_type_volatile(*args) -> 'bool' is_type_volatile(t) -> bool + See BTM_VOLATILE. - - See 'BTM_VOLATILE' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_typeid_last in module ida_typeinf: is_typeid_last(*args) -> 'bool' is_typeid_last(t) -> bool + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) - - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_user_cc in module ida_typeinf: is_user_cc(*args) -> 'bool' is_user_cc(cm) -> bool - - Does the calling convention specify argument locations explicitly? - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_vararg_cc in module ida_typeinf: is_vararg_cc(*args) -> 'bool' is_vararg_cc(cm) -> bool - - Does the calling convention use ellipsis? - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) -> 'int' lexcompare_tinfo(t1, t2, arg3) -> int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int Help on function load_til in module ida_typeinf: load_til(*args) -> 'qstring *' load_til(name, tildir=None) -> til_t + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. - - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf Help on function load_til_header in module ida_typeinf: load_til_header(*args) -> 'qstring *' load_til_header(tildir, name) -> til_t - - Get human-readable til description. - - @param tildir (C++: const char *) - @param name (C++: const char *) + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * Help on function lower_type in module ida_typeinf: lower_type(*args) -> 'int' lower_type(til, tif, name=None, _helper=None) -> int - - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) Help on class lowertype_helper_t in module ida_typeinf: @@ -70584,9 +87553,15 @@ class lowertype_helper_t(builtins.object) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, candidate_data) -> int + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70604,96 +87579,88 @@ Help on function new_til in module ida_typeinf: new_til(*args) -> 'til_t *' new_til(name, desc) -> til_t - - Initialize a til. - - @param name (C++: const char *) - @param desc (C++: const char *) + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * Help on function next_named_type in module ida_typeinf: next_named_type(*args) -> 'char const *' next_named_type(ti, name, ntf_flags) -> char const * + Enumerate types. - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param name: (C++: const char *) the current name. the name that follows this one will be returned. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. Help on function optimize_argloc in module ida_typeinf: optimize_argloc(*args) -> 'bool' optimize_argloc(vloc, size, gaps) -> bool + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal - - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * Help on function pack_idcobj_to_bv in module ida_typeinf: pack_idcobj_to_bv(*args) -> 'error_t' pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it - - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) Help on function pack_idcobj_to_idb in module ida_typeinf: pack_idcobj_to_idb(*args) -> 'error_t' pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - - Write a typed idc object to the database. - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) Help on function pack_object_to_bv in module ida_typeinf: pack_object_to_bv(*args) -> 'PyObject *' - pack_object_to_bv(py_obj, ti, _type, _fields, base_ea, pio_flags=0) -> PyObject * - - + pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * Packs a typed object to a string + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param base_ea: base ea used to relocate the pointers in the packed object @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure + @return: tuple(0, err_code) on failure tuple(1, packed_buf) on success Help on function pack_object_to_idb in module ida_typeinf: pack_object_to_idb(*args) -> 'PyObject *' - pack_object_to_idb(py_obj, ti, _type, _fields, ea, pio_flags=0) -> PyObject * - - + pack_object_to_idb(py_obj, ti, type, fields, ea, pio_flags=0) -> PyObject * Write a typed object to the database. Raises an exception if wrong parameters were passed or conversion fails Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param ea: ea to be used while packing @param pio_flags: flags used while unpacking @@ -70702,35 +87669,31 @@ Help on function parse_decl in module ida_typeinf: parse_decl(*args) -> 'qstring *' parse_decl(tif, til, decl, flags) -> str + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! - - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL Help on function parse_decls in module ida_typeinf: parse_decls(*args) -> 'int' parse_decls(til, input, printer, hti_flags) -> int + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. - - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags @return: number of errors, 0 means ok. Help on class predicate_t in module ida_typeinf: @@ -70744,6 +87707,8 @@ class predicate_t(builtins.object) | | __init__(self, *args) | __init__(self) -> predicate_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -70752,6 +87717,11 @@ class predicate_t(builtins.object) | | should_display(self, *args) -> 'bool' | should_display(self, til, name, type, fields) -> bool + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70769,44 +87739,49 @@ Help on function print_argloc in module ida_typeinf: print_argloc(*args) -> 'size_t' print_argloc(vloc, size=0, vflags=0) -> str - - Convert an argloc to human readable form. - - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) Help on function print_decls in module ida_typeinf: print_decls(*args) -> 'PyObject *' - print_decls(printer, til, py_ordinals, flags) -> PyObject * + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for using in + a header file. This is the reverse parse_decls(). - - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . - - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param pdf_flags: (C++: uint32) flags for the algorithm. A combination of PDF_ constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. Help on function print_tinfo in module ida_typeinf: print_tinfo(*args) -> 'qstring *' print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * Help on function print_type in module ida_typeinf: print_type(*args) -> 'qstring *' print_type(ea, prtype_flags) -> str - - Get type declaration for the specified address. - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags @return: success Help on class ptr_type_data_t in module ida_typeinf: @@ -70818,12 +87793,21 @@ class ptr_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ptr_type_data_t const & | | __init__(self, *args) | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -70832,12 +87816,16 @@ class ptr_type_data_t(builtins.object) | | is_code_ptr(self, *args) -> 'bool' | is_code_ptr(self) -> bool + | Are we pointing to code? | | is_shifted(self, *args) -> 'bool' | is_shifted(self) -> bool | | swap(self, *args) -> 'void' | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70849,22 +87837,22 @@ class ptr_type_data_t(builtins.object) | list of weak references to the object (if defined) | | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar + | based_ptr_size | | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t + | closure | | delta - | ptr_type_data_t_delta_get(self) -> int32 + | delta | | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t + | obj_type | | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t + | parent | | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar + | taptr_bits | | thisown | The membership flag @@ -70878,6 +87866,10 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) -> 'uint64' read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 + + @param typid: uint32 + @param v: uint64 + @param bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -70888,13 +87880,19 @@ class reginfovec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & | | __getitem__(self, *args) -> 'reg_info_t const &' | __getitem__(self, i) -> reg_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70903,20 +87901,31 @@ class reginfovec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_info_t const & | | __swig_destroy__ = delete_reginfovec_t(...) | delete_reginfovec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: reg_info_t const & | | append = push_back(self, *args) -> 'reg_info_t &' | @@ -70927,7 +87936,6 @@ class reginfovec_t(builtins.object) | | begin(self, *args) -> 'qvector< reg_info_t >::const_iterator' | begin(self) -> reg_info_t - | begin(self) -> reg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -70940,39 +87948,58 @@ class reginfovec_t(builtins.object) | | end(self, *args) -> 'qvector< reg_info_t >::const_iterator' | end(self) -> reg_info_t - | end(self) -> reg_info_t | | erase(self, *args) -> 'qvector< reg_info_t >::iterator' | erase(self, it) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | | erase(self, first, last) -> reg_info_t + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator | | extract(self, *args) -> 'reg_info_t *' | extract(self) -> reg_info_t | | find(self, *args) -> 'qvector< reg_info_t >::const_iterator' | find(self, x) -> reg_info_t - | find(self, x) -> reg_info_t + | + | @param x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_info_t()) + | + | @param x: reg_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: reg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: reg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_info_t >::iterator' | insert(self, it, x) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_info_t &' | push_back(self, x) + | + | @param x: reg_info_t const & + | | push_back(self) -> reg_info_t | | qclear(self, *args) -> 'void' @@ -70980,16 +88007,26 @@ class reginfovec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< reg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71039,16 +88076,16 @@ class regobj_t(builtins.object) | list of weak references to the object (if defined) | | regidx - | regobj_t_regidx_get(self) -> int + | regidx | | relocate - | regobj_t_relocate_get(self) -> int + | relocate | | thisown | The membership flag | | value - | regobj_t_value_get(self) -> bytevec_t * + | value Help on class regobjs_t in module ida_typeinf: @@ -71081,6 +88118,8 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71090,16 +88129,20 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -71112,11 +88155,16 @@ class regobjs_t(regobjvec_t) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -71126,18 +88174,29 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) + | + | @param x: regobj_t const & + | | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' @@ -71145,16 +88204,26 @@ class regobjs_t(regobjvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71177,10 +88246,14 @@ class regobjvec_t(builtins.object) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71192,19 +88265,23 @@ class regobjvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & | | __swig_destroy__ = delete_regobjvec_t(...) | delete_regobjvec_t(self) | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -71217,11 +88294,16 @@ class regobjvec_t(builtins.object) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -71231,18 +88313,29 @@ class regobjvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) + | + | @param x: regobj_t const & + | | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' @@ -71250,16 +88343,26 @@ class regobjvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71280,49 +88383,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) -> 'bool' remove_abi_opts(abi_opts, user_level=False) -> bool + + @param abi_opts: char const * + @param user_level: bool Help on function remove_pointer in module ida_typeinf: remove_pointer(*args) -> 'tinfo_t' remove_pointer(tif) -> tinfo_t - - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - - @param tif (C++: const tinfo_t &) + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) -> 'PyObject *' - remove_tinfo_pointer(tif, name, til) -> PyObject * + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. - - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. - - @param tif (C++: tinfo_t *) - @param til (C++: const til_t *) + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * Help on function replace_ordinal_typerefs in module ida_typeinf: replace_ordinal_typerefs(*args) -> 'int' replace_ordinal_typerefs(til, tif) -> int + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. - - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) -> 'type_t const *' resolve_typedef(til, type) -> type_t const * + + @param til: til_t const * + @param type: type_t const * Help on class rrel_t in module ida_typeinf: @@ -71349,10 +88452,10 @@ class rrel_t(builtins.object) | list of weak references to the object (if defined) | | off - | rrel_t_off_get(self) -> sval_t + | off | | reg - | rrel_t_reg_get(self) -> int + | reg | | thisown | The membership flag @@ -71361,6 +88464,12 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) -> 'tinfo_code_t' save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -71393,9 +88502,13 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71405,25 +88518,37 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -71436,39 +88561,58 @@ class scattered_aloc_t(argpartvec_t) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | find(self, x) -> argpart_t + | + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) + | + | @param x: argpart_t const & + | | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' @@ -71476,16 +88620,26 @@ class scattered_aloc_t(argpartvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71508,124 +88662,139 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) -> 'uint32' score_tinfo(tif) -> uint32 + + @param tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) -> 'bool' serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int Help on function set_abi_name in module ida_typeinf: set_abi_name(*args) -> 'bool' set_abi_name(abiname, user_level=False) -> bool + Set abi name (see Compiler IDs) - - Set abi name (see 'Compiler IDs' ) - - - @param abiname (C++: const char *) - @param user_level (C++: bool) + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) Help on function set_c_header_path in module ida_typeinf: set_c_header_path(*args) -> 'void' set_c_header_path(incdir) - - Set include directory path the target compiler. - - @param incdir (C++: const char *) + @param incdir: (C++: const char *) char const * Help on function set_c_macros in module ida_typeinf: set_c_macros(*args) -> 'void' set_c_macros(macros) - - Set predefined macros for the target compiler. - - @param macros (C++: const char *) + @param macros: (C++: const char *) char const * Help on function set_compiler in module ida_typeinf: set_compiler(*args) -> 'bool' set_compiler(cc, flags, abiname=None) -> bool - - Change current compiler. - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name @return: success Help on function set_compiler_id in module ida_typeinf: set_compiler_id(*args) -> 'bool' set_compiler_id(id, abiname=None) -> bool + Set the compiler id (see Compiler IDs) - - Set the compiler id (see 'Compiler IDs' ) - - - @param id (C++: comp_t) - @param abiname (C++: const char *) + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) -> 'bool' set_compiler_string(compstr, user_level) -> bool + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success Help on function set_numbered_type in module ida_typeinf: set_numbered_type(*args) -> 'tinfo_code_t' set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. - - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * Help on function set_tinfo_attr in module ida_typeinf: set_tinfo_attr(*args) -> 'bool' set_tinfo_attr(tif, ta, may_overwrite) -> bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) -> 'bool' set_tinfo_attrs(tif, ta) -> bool + + @param tif: tinfo_t * + @param ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) -> 'size_t' set_tinfo_property(tif, sta_prop, x) -> size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t Help on function set_type_alias in module ida_typeinf: set_type_alias(*args) -> 'bool' set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) + +Help on function set_vftable_ea in module ida_typeinf: + +set_vftable_ea(*args) -> 'bool' + set_vftable_ea(ordinal, vftable_ea) -> bool + Set the address of a vftable instance for a vftable type. - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success Help on class simd_info_t in module ida_typeinf: @@ -71636,6 +88805,10 @@ class simd_info_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t | | __repr__ = _swig_repr(self) | @@ -71644,6 +88817,8 @@ class simd_info_t(builtins.object) | | match_pattern(self, *args) -> 'bool' | match_pattern(self, pattern) -> bool + | + | @param pattern: simd_info_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71655,38 +88830,80 @@ class simd_info_t(builtins.object) | list of weak references to the object (if defined) | | memtype - | simd_info_t_memtype_get(self) -> type_t + | memtype | | name - | simd_info_t_name_get(self) -> char const * + | name | | size - | simd_info_t_size_get(self) -> uint16 + | size | | thisown | The membership flag | | tif - | simd_info_t_tif_get(self) -> tinfo_t + | tif + +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(builtins.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkarg_area_info_t(...) + | delete_stkarg_area_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag Help on function store_til in module ida_typeinf: store_til(*args) -> 'bool' store_til(ti, tildir, name) -> bool + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). - - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til @return: success +Help on function switch_to_golang in module ida_typeinf: + +switch_to_golang(*args) -> 'void' + switch_to_golang() + switch to GOLANG calling convention (to be used as default CC) + Help on class text_sink_t in module ida_typeinf: class text_sink_t(builtins.object) @@ -71698,6 +88915,8 @@ class text_sink_t(builtins.object) | | __init__(self, *args) | __init__(self) -> text_sink_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -71706,6 +88925,10 @@ class text_sink_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, str) -> int + | + | Parameters + | ---------- + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71728,6 +88951,9 @@ class til_symbol_t(builtins.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t + | + | @param n: char const * + | @param t: til_t const * | | __repr__ = _swig_repr(self) | @@ -71744,13 +88970,13 @@ class til_symbol_t(builtins.object) | list of weak references to the object (if defined) | | name - | til_symbol_t_name_get(self) -> char const * + | name | | thisown | The membership flag | | til - | til_symbol_t_til_get(self) -> til_t + | til Help on class til_t in module ida_typeinf: @@ -71769,12 +88995,17 @@ class til_t(builtins.object) | | base(self, *args) -> 'til_t *' | base(self, n) -> til_t + | tils that our til is based on + | + | @param n: int | | is_dirty(self, *args) -> 'bool' | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) | | set_dirty(self, *args) -> 'void' | set_dirty(self) + | Mark the til as modified (TIL_MOD) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71786,28 +89017,28 @@ class til_t(builtins.object) | list of weak references to the object (if defined) | | cc - | til_t_cc_get(self) -> compiler_info_t + | cc | | desc - | til_t_desc_get(self) -> char * + | desc | | flags - | til_t_flags_get(self) -> uint32 + | flags | | name - | til_t_name_get(self) -> char * + | name | | nbases - | til_t_nbases_get(self) -> int + | nbases | | nrefs - | til_t_nrefs_get(self) -> int + | nrefs | | nstreams - | til_t_nstreams_get(self) -> int + | nstreams | | streams - | til_t_streams_get(self) -> til_stream_t ** + | streams | | thisown | The membership flag @@ -71821,26 +89052,43 @@ class tinfo_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: tinfo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: tinfo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t | __init__(self, decl_type) -> tinfo_t + | + | @param decl_type: type_t + | | __init__(self, r) -> tinfo_t + | + | @param r: tinfo_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: tinfo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: tinfo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -71852,27 +89100,53 @@ class tinfo_t(builtins.object) | | _print(self, *args) -> 'bool' | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) -> 'bool' | append_covered(self, out, offset=0) -> bool + | Calculate set of covered bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) delta in bytes to add to all calculations. used internally during + | recurion. | | calc_gaps(self, *args) -> 'bool' | calc_gaps(self, out) -> bool + | Calculate set of padding bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. | | calc_purged_bytes(self, *args) -> 'int' | calc_purged_bytes(self) -> int | | calc_score(self, *args) -> 'uint32' | calc_score(self) -> uint32 + | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) -> 'bool' | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) | | change_sign(self, *args) -> 'bool' | change_sign(self, sign) -> bool + | Change the type sign. Works only for the types that may have sign. + | + | @param sign: (C++: type_sign_t) | | clear(self, *args) -> 'void' | clear(self) + | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) -> 'void' | clr_const(self) @@ -71885,72 +89159,170 @@ class tinfo_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: tinfo_t const & | | compare_with(self, *args) -> 'bool' | compare_with(self, r, tcflags=0) -> bool + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) | | convert_array_to_ptr(self, *args) -> 'bool' | convert_array_to_ptr(self) -> bool + | Convert an array into a pointer. type[] => type * | | copy(self, *args) -> 'tinfo_t' | copy(self) -> tinfo_t | | create_array(self, *args) -> 'bool' | create_array(self, p, decl_type=BT_ARRAY) -> bool + | + | @param p: array_type_data_t const & + | @param decl_type: type_t + | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t | | create_bitfield(self, *args) -> 'bool' | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t + | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t | | create_enum(self, *args) -> 'bool' | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | + | @param p: enum_type_data_t & + | @param decl_type: type_t | | create_forward_decl(self, *args) -> 'tinfo_code_t' | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) | | create_func(self, *args) -> 'bool' | create_func(self, p, decl_type=BT_FUNC) -> bool + | + | @param p: func_type_data_t & + | @param decl_type: type_t | | create_ptr(self, *args) -> 'bool' | create_ptr(self, p, decl_type=BT_PTR) -> bool + | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t + | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t | | create_simple_type(self, *args) -> 'bool' | create_simple_type(self, decl_type) -> bool + | + | @param decl_type: type_t | | create_typedef(self, *args) -> 'void' | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool + | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool + | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t | | create_udt(self, *args) -> 'bool' | create_udt(self, p, decl_type) -> bool + | + | @param p: udt_type_data_t & + | @param decl_type: type_t | | del_attr(self, *args) -> 'bool' | del_attr(self, key, make_copy=True) -> bool + | Del a type attribute. typerefs cannot be modified by this function. + | + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) | | del_attrs(self, *args) -> 'void' | del_attrs(self) + | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) -> 'bool' | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | Deserialize a type string into a tinfo_t object. + | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** + | | deserialize(self, til, type, fields, cmts=None) -> bool + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * + | Function to facilitate debugging. | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? | | equals_to(self, *args) -> 'bool' | equals_to(self, r) -> bool + | + | @param r: tinfo_t const & | | find_udt_member(self, *args) -> 'int' | find_udt_member(self, udm, strmem_flags) -> int + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) -> 'bool' | get_array_details(self, ai) -> bool + | Get the array specific info. + | + | @param ai: (C++: array_type_data_t *) | | get_array_element(self, *args) -> 'tinfo_t' | get_array_element(self) -> tinfo_t @@ -71959,454 +89331,737 @@ class tinfo_t(builtins.object) | get_array_nelems(self) -> int | | get_attr(self, *args) -> 'PyObject *' - | get_attr(self, key, all_attrs=True) -> PyObject * + | get_attr(self, key, all_attrs=True) -> str or None + | Get a type attribute. + | + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) | | get_attrs(self, *args) -> 'bool' | get_attrs(self, tav, all_attrs=False) -> bool + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) | | get_bitfield_details(self, *args) -> 'bool' | get_bitfield_details(self, bi) -> bool + | Get the bitfield specific info. + | + | @param bi: (C++: bitfield_type_data_t *) | | get_declalign(self, *args) -> 'uchar' | get_declalign(self) -> uchar + | Get declared alignment of the type. | | get_decltype(self, *args) -> 'type_t' | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. | | get_enum_base_type(self, *args) -> 'type_t' | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert | | get_enum_details(self, *args) -> 'bool' | get_enum_details(self, ei) -> bool + | Get the enum specific info. + | + | @param ei: (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) -> 'uint32' | get_final_ordinal(self) -> uint32 + | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) -> 'bool' | get_final_type_name(self) -> bool + | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 | | get_func_details(self, *args) -> 'bool' | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) -> 'bool' + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist | | get_modifiers(self, *args) -> 'type_t' | get_modifiers(self) -> type_t | | get_named_type(self, *args) -> 'bool' | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference | | get_nargs(self, *args) -> 'int' | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) | | get_next_type_name(self, *args) -> 'bool' | get_next_type_name(self) -> bool + | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure | | get_nth_arg(self, *args) -> 'tinfo_t' | get_nth_arg(self, n) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) | | get_numbered_type(self, *args) -> 'bool' | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code | | get_onemember_type(self, *args) -> 'tinfo_t' | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. | | get_ordinal(self, *args) -> 'uint32' | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) | | get_pointed_object(self, *args) -> 'tinfo_t' | get_pointed_object(self) -> tinfo_t | | get_ptr_details(self, *args) -> 'bool' | get_ptr_details(self, pi) -> bool + | Get the pointer info. + | + | @param pi: (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) -> 'tinfo_t' | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. | | get_ptrarr_objsize(self, *args) -> 'int' | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 | | get_realtype(self, *args) -> 'type_t' | get_realtype(self, full=False) -> type_t + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) | | get_rettype(self, *args) -> 'tinfo_t' | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type | | get_sign(self, *args) -> 'type_sign_t' | get_sign(self) -> type_sign_t + | Get type sign. | | get_size(self, *args) -> 'size_t' | get_size(self, p_effalign=None, gts_code=0) -> size_t + | Get the type size in bytes. + | + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems | | get_til(self, *args) -> 'til_t const *' | get_til(self) -> til_t + | Get the type library for tinfo_t. | | get_type_name(self, *args) -> 'bool' | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). | | get_udt_details(self, *args) -> 'bool' | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | Get the udt specific info. + | + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t | | get_udt_nmembers(self, *args) -> 'int' | get_udt_nmembers(self) -> int + | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) -> 'size_t' | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() | | has_details(self, *args) -> 'bool' | has_details(self) -> bool + | Does this type refer to a nontrivial type? | | has_vftable(self, *args) -> 'bool' | has_vftable(self) -> bool + | Has a vftable? | | is_anonymous_udt(self, *args) -> 'bool' | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ | | is_arithmetic(self, *args) -> 'bool' | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) | | is_array(self, *args) -> 'bool' | is_array(self) -> bool + | is_type_array(get_realtype()) | | is_bitfield(self, *args) -> 'bool' | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) | | is_bool(self, *args) -> 'bool' | is_bool(self) -> bool + | is_type_bool(get_realtype()) | | is_castable_to(self, *args) -> 'bool' | is_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & | | is_char(self, *args) -> 'bool' | is_char(self) -> bool + | is_type_char(get_realtype()) | | is_complex(self, *args) -> 'bool' | is_complex(self) -> bool + | is_type_complex(get_realtype()) | | is_const(self, *args) -> 'bool' | is_const(self) -> bool + | is_type_const(get_realtype()) | | is_correct(self, *args) -> 'bool' | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. | | is_decl_array(self, *args) -> 'bool' | is_decl_array(self) -> bool + | is_type_array(get_decltype()) | | is_decl_bitfield(self, *args) -> 'bool' | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) | | is_decl_bool(self, *args) -> 'bool' | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) | | is_decl_char(self, *args) -> 'bool' | is_decl_char(self) -> bool + | is_type_char(get_decltype()) | | is_decl_complex(self, *args) -> 'bool' | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) | | is_decl_const(self, *args) -> 'bool' | is_decl_const(self) -> bool + | is_type_const(get_decltype()) | | is_decl_double(self, *args) -> 'bool' | is_decl_double(self) -> bool + | is_type_double(get_decltype()) | | is_decl_enum(self, *args) -> 'bool' | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) | | is_decl_float(self, *args) -> 'bool' | is_decl_float(self) -> bool + | is_type_float(get_decltype()) | | is_decl_floating(self, *args) -> 'bool' | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) | | is_decl_func(self, *args) -> 'bool' | is_decl_func(self) -> bool + | is_type_func(get_decltype()) | | is_decl_int(self, *args) -> 'bool' | is_decl_int(self) -> bool + | is_type_int(get_decltype()) | | is_decl_int128(self, *args) -> 'bool' | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) | | is_decl_int16(self, *args) -> 'bool' | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) | | is_decl_int32(self, *args) -> 'bool' | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) | | is_decl_int64(self, *args) -> 'bool' | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) | | is_decl_last(self, *args) -> 'bool' | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) | | is_decl_ldouble(self, *args) -> 'bool' | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) | | is_decl_paf(self, *args) -> 'bool' | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) | | is_decl_partial(self, *args) -> 'bool' | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) | | is_decl_ptr(self, *args) -> 'bool' | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) | | is_decl_struct(self, *args) -> 'bool' | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) | | is_decl_sue(self, *args) -> 'bool' | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) | | is_decl_tbyte(self, *args) -> 'bool' | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) | | is_decl_typedef(self, *args) -> 'bool' | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) | | is_decl_uchar(self, *args) -> 'bool' | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) | | is_decl_udt(self, *args) -> 'bool' | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) | | is_decl_uint(self, *args) -> 'bool' | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) | | is_decl_uint128(self, *args) -> 'bool' | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) | | is_decl_uint16(self, *args) -> 'bool' | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) | | is_decl_uint32(self, *args) -> 'bool' | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) | | is_decl_uint64(self, *args) -> 'bool' | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) | | is_decl_union(self, *args) -> 'bool' | is_decl_union(self) -> bool + | is_type_union(get_decltype()) | | is_decl_unknown(self, *args) -> 'bool' | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) | | is_decl_void(self, *args) -> 'bool' | is_decl_void(self) -> bool + | is_type_void(get_decltype()) | | is_decl_volatile(self, *args) -> 'bool' | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) | | is_double(self, *args) -> 'bool' | is_double(self) -> bool + | is_type_double(get_realtype()) | | is_empty_udt(self, *args) -> 'bool' | is_empty_udt(self) -> bool + | Is an empty struct/union? (has no fields) | | is_enum(self, *args) -> 'bool' | is_enum(self) -> bool + | is_type_enum(get_realtype()) | | is_ext_arithmetic(self, *args) -> 'bool' | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) | | is_ext_integral(self, *args) -> 'bool' | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) | | is_float(self, *args) -> 'bool' | is_float(self) -> bool + | is_type_float(get_realtype()) | | is_floating(self, *args) -> 'bool' | is_floating(self) -> bool + | is_type_floating(get_realtype()) | | is_forward_decl(self, *args) -> 'bool' | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist | | is_from_subtil(self, *args) -> 'bool' | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database | | is_func(self, *args) -> 'bool' | is_func(self) -> bool + | is_type_func(get_realtype()) | | is_funcptr(self, *args) -> 'bool' | is_funcptr(self) -> bool + | Is this pointer to a function? | | is_high_func(self, *args) -> 'bool' | is_high_func(self) -> bool | | is_int(self, *args) -> 'bool' | is_int(self) -> bool + | is_type_int(get_realtype()) | | is_int128(self, *args) -> 'bool' | is_int128(self) -> bool + | is_type_int128(get_realtype()) | | is_int16(self, *args) -> 'bool' | is_int16(self) -> bool + | is_type_int16(get_realtype()) | | is_int32(self, *args) -> 'bool' | is_int32(self) -> bool + | is_type_int32(get_realtype()) | | is_int64(self, *args) -> 'bool' | is_int64(self) -> bool + | is_type_int64(get_realtype()) | | is_integral(self, *args) -> 'bool' | is_integral(self) -> bool + | is_type_integral(get_realtype()) | | is_ldouble(self, *args) -> 'bool' | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) | | is_manually_castable_to(self, *args) -> 'bool' | is_manually_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & | | is_one_fpval(self, *args) -> 'bool' | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. | | is_paf(self, *args) -> 'bool' | is_paf(self) -> bool + | is_type_paf(get_realtype()) | | is_partial(self, *args) -> 'bool' | is_partial(self) -> bool + | is_type_partial(get_realtype()) | | is_ptr(self, *args) -> 'bool' | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) | | is_ptr_or_array(self, *args) -> 'bool' | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) | | is_purging_cc(self, *args) -> 'bool' | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) | | is_pvoid(self, *args) -> 'bool' | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. | | is_scalar(self, *args) -> 'bool' | is_scalar(self) -> bool + | Does the type represent a single number? | | is_shifted_ptr(self, *args) -> 'bool' | is_shifted_ptr(self) -> bool + | Is a shifted pointer? | | is_signed(self, *args) -> 'bool' | is_signed(self) -> bool + | Is this a signed type? | | is_small_udt(self, *args) -> 'bool' | is_small_udt(self) -> bool + | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) -> 'bool' | is_sse_type(self) -> bool + | Is a SSE vector type? | | is_struct(self, *args) -> 'bool' | is_struct(self) -> bool + | is_type_struct(get_realtype()) | | is_sue(self, *args) -> 'bool' | is_sue(self) -> bool + | is_type_sue(get_realtype()) | | is_tbyte(self, *args) -> 'bool' | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) | | is_typeref(self, *args) -> 'bool' | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. | | is_uchar(self, *args) -> 'bool' | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool + | is_type_struni(get_realtype()) | | is_uint(self, *args) -> 'bool' | is_uint(self) -> bool + | is_type_uint(get_realtype()) | | is_uint128(self, *args) -> 'bool' | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) | | is_uint16(self, *args) -> 'bool' | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) | | is_uint32(self, *args) -> 'bool' | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) | | is_uint64(self, *args) -> 'bool' | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) | | is_union(self, *args) -> 'bool' | is_union(self) -> bool + | is_type_union(get_realtype()) | | is_unknown(self, *args) -> 'bool' | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) | | is_unsigned(self, *args) -> 'bool' | is_unsigned(self) -> bool + | Is this an unsigned type? | | is_user_cc(self, *args) -> 'bool' | is_user_cc(self) -> bool + | is_user_cc(get_cc()) | | is_vararg_cc(self, *args) -> 'bool' | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) | | is_varstruct(self, *args) -> 'bool' | is_varstruct(self) -> bool + | Is a variable-size structure? | | is_vftable(self, *args) -> 'bool' | is_vftable(self) -> bool + | Is a vftable type? | | is_void(self, *args) -> 'bool' | is_void(self) -> bool + | is_type_void(get_realtype()) | | is_volatile(self, *args) -> 'bool' | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) | | is_well_defined(self, *args) -> 'bool' | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) | | present(self, *args) -> 'bool' | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) | | read_bitfield_value(self, *args) -> 'uint64' | read_bitfield_value(self, v, bitoff) -> uint64 + | + | @param v: uint64 + | @param bitoff: int | | remove_ptr_or_array(self, *args) -> 'bool' | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) -> 'bool' | requires_qualifier(self, name, offset) -> bool + | Requires full qualifier? (name is not unique) + | + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) field offset in bits + | @return: if the name is not unique, returns true | | serialize(self, *args) -> 'PyObject *' - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. + | + | @param sudt_flags: (C++: int) | | set_attr(self, *args) -> 'bool' | set_attr(self, ta, may_overwrite=True) -> bool + | Set a type attribute. If necessary, a new typid will be created. + | + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) | | set_attrs(self, *args) -> 'bool' | set_attrs(self, tav) -> bool + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) -> 'void' | set_const(self) | | set_declalign(self, *args) -> 'bool' | set_declalign(self, declalign) -> bool + | Set declared alignment of the type. + | + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) -> 'bool' + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty | | set_modifiers(self, *args) -> 'void' | set_modifiers(self, mod) + | + | @param mod: type_t | | set_named_type(self, *args) -> 'tinfo_code_t' | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_numbered_type(self, *args) -> 'tinfo_code_t' | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * | | set_symbol_type(self, *args) -> 'tinfo_code_t' | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_volatile(self, *args) -> 'void' | set_volatile(self) | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: tinfo_t &) | | write_bitfield_value(self, *args) -> 'uint64' | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) -> 'tinfo_t' | get_stock(id) -> tinfo_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72429,6 +90084,8 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) -> 'tinfo_t' tinfo_t_get_stock(id) -> tinfo_t + + @param id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -72441,6 +90098,8 @@ class tinfo_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t + | + | @param s: int | | __repr__ = _swig_repr(self) | @@ -72449,12 +90108,28 @@ class tinfo_visitor_t(builtins.object) | | apply_to(self, *args) -> 'int' | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | Call this function to initiate the traversal. + | + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | prune_now(self, *args) -> 'void' | prune_now(self) + | To refuse to visit children of the current type, use this: | | visit_type(self, *args) -> 'int' | visit_type(self, out, tif, name, cmt) -> int + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72466,7 +90141,7 @@ class tinfo_visitor_t(builtins.object) | list of weak references to the object (if defined) | | state - | tinfo_visitor_t_state_get(self) -> int + | state | | thisown | The membership flag @@ -72480,12 +90155,16 @@ class type_attr_t(builtins.object) | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -72502,13 +90181,13 @@ class type_attr_t(builtins.object) | list of weak references to the object (if defined) | | key - | type_attr_t_key_get(self) -> qstring * + | key | | thisown | The membership flag | | value - | type_attr_t_value_get(self) -> bytevec_t * + | value Help on class type_attrs_t in module ida_typeinf: @@ -72519,10 +90198,14 @@ class type_attrs_t(builtins.object) | | __getitem__(self, *args) -> 'type_attr_t const &' | __getitem__(self, i) -> type_attr_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72534,19 +90217,23 @@ class type_attrs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: type_attr_t const & | | __swig_destroy__ = delete_type_attrs_t(...) | delete_type_attrs_t(self) | | at(self, *args) -> 'type_attr_t const &' | at(self, _idx) -> type_attr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< type_attr_t >::const_iterator' | begin(self) -> type_attr_t - | begin(self) -> type_attr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -72559,11 +90246,16 @@ class type_attrs_t(builtins.object) | | end(self, *args) -> 'qvector< type_attr_t >::const_iterator' | end(self) -> type_attr_t - | end(self) -> type_attr_t | | erase(self, *args) -> 'qvector< type_attr_t >::iterator' | erase(self, it) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | | erase(self, first, last) -> type_attr_t + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator | | extract(self, *args) -> 'type_attr_t *' | extract(self) -> type_attr_t @@ -72573,18 +90265,29 @@ class type_attrs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=type_attr_t()) + | + | @param x: type_attr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: type_attr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< type_attr_t >::iterator' | insert(self, it, x) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'type_attr_t &' | push_back(self, x) + | + | @param x: type_attr_t const & + | | push_back(self) -> type_attr_t | | qclear(self, *args) -> 'void' @@ -72592,16 +90295,26 @@ class type_attrs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: type_attr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< type_attr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72650,12 +90363,21 @@ class type_mods_t(builtins.object) | | set_new_cmt(self, *args) -> 'void' | set_new_cmt(self, c) + | + | @param c: qstring const & | | set_new_name(self, *args) -> 'void' | set_new_name(self, n) + | + | @param n: qstring const & | | set_new_type(self, *args) -> 'void' | set_new_type(self, t) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72667,19 +90389,19 @@ class type_mods_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | type_mods_t_cmt_get(self) -> qstring * + | cmt | | flags - | type_mods_t_flags_get(self) -> int + | flags | | name - | type_mods_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | type_mods_t_type_get(self) -> tinfo_t + | type Help on class typedef_type_data_t in module ida_typeinf: @@ -72690,7 +90412,16 @@ class typedef_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool + | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool | | __repr__ = _swig_repr(self) | @@ -72699,6 +90430,8 @@ class typedef_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: typedef_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72710,16 +90443,22 @@ class typedef_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool + | is_ordref + | + | name + | name + | + | ordinal + | ordinal | | resolve - | typedef_type_data_t_resolve_get(self) -> bool + | resolve | | thisown | The membership flag | | til - | typedef_type_data_t_til_get(self) -> til_t + | til Help on class udt_member_t in module ida_typeinf: @@ -72730,15 +90469,21 @@ class udt_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: udt_member_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -72751,6 +90496,9 @@ class udt_member_t(builtins.object) | clr_baseclass(self, *args) -> 'void' | clr_baseclass(self) | + | clr_method(self, *args) -> 'void' + | clr_method(self) + | | clr_unaligned(self, *args) -> 'void' | clr_unaligned(self) | @@ -72772,6 +90520,9 @@ class udt_member_t(builtins.object) | is_bitfield(self, *args) -> 'bool' | is_bitfield(self) -> bool | + | is_method(self, *args) -> 'bool' + | is_method(self) -> bool + | | is_unaligned(self, *args) -> 'bool' | is_unaligned(self) -> bool | @@ -72787,6 +90538,9 @@ class udt_member_t(builtins.object) | set_baseclass(self, *args) -> 'void' | set_baseclass(self) | + | set_method(self, *args) -> 'void' + | set_method(self) + | | set_unaligned(self, *args) -> 'void' | set_unaligned(self) | @@ -72798,6 +90552,8 @@ class udt_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: udt_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72809,31 +90565,31 @@ class udt_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | udt_member_t_cmt_get(self) -> qstring * + | cmt | | effalign - | udt_member_t_effalign_get(self) -> int + | effalign | | fda - | udt_member_t_fda_get(self) -> uchar + | fda | | name - | udt_member_t_name_get(self) -> qstring * + | name | | offset - | udt_member_t_offset_get(self) -> uint64 + | offset | | size - | udt_member_t_size_get(self) -> uint64 + | size | | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 + | tafld_bits | | thisown | The membership flag | | type - | udt_member_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -72848,6 +90604,7 @@ class udt_type_data_t(udtmembervec_t) | Method resolution order: | udt_type_data_t | udtmembervec_t + | udtmembervec_template_t | builtins.object | | Methods defined here: @@ -72865,6 +90622,8 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) -> 'bool' | is_last_baseclass(self, idx) -> bool + | + | @param idx: size_t | | is_msstruct(self, *args) -> 'bool' | is_msstruct(self) -> bool @@ -72875,44 +90634,53 @@ class udt_type_data_t(udtmembervec_t) | is_vftable(self, *args) -> 'bool' | is_vftable(self) -> bool | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: udt_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | effalign - | udt_type_data_t_effalign_get(self) -> uint32 + | effalign | | is_union - | udt_type_data_t_is_union_get(self) -> bool + | is_union | | pack - | udt_type_data_t_pack_get(self) -> uchar + | pack | | sda - | udt_type_data_t_sda_get(self) -> uchar + | sda | | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 + | taudt_bits | | thisown | The membership flag | | total_size - | udt_type_data_t_total_size_get(self) -> size_t + | total_size | | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t + | unpadded_size | | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: + | Methods inherited from udtmembervec_template_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72922,25 +90690,37 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -72953,39 +90733,58 @@ class udt_type_data_t(udtmembervec_t) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) + | + | @param x: udt_member_t const & + | | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' @@ -72993,10 +90792,18 @@ class udt_type_data_t(udtmembervec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -73005,7 +90812,7 @@ class udt_type_data_t(udtmembervec_t) | truncate(self) | | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: + | Data descriptors inherited from udtmembervec_template_t: | | __dict__ | dictionary for instance variables (if defined) @@ -73014,26 +90821,48 @@ class udt_type_data_t(udtmembervec_t) | list of weak references to the object (if defined) | | ---------------------------------------------------------------------- - | Data and other attributes inherited from udtmembervec_t: + | Data and other attributes inherited from udtmembervec_template_t: | | __hash__ = None Help on class udtmembervec_t in module ida_typeinf: -class udtmembervec_t(builtins.object) - | Proxy of C++ qvector< udt_member_t > class. +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | builtins.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udtmembervec_t(...) + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73043,30 +90872,37 @@ class udtmembervec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_udtmembervec_t(...) - | delete_udtmembervec_t(self) + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -73079,39 +90915,58 @@ class udtmembervec_t(builtins.object) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) + | + | @param x: udt_member_t const & + | | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' @@ -73119,16 +90974,202 @@ class udtmembervec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(builtins.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | __swig_destroy__ = delete_udtmembervec_template_t(...) + | delete_udtmembervec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73154,53 +91195,58 @@ Help on function unpack_idcobj_from_bv in module ida_typeinf: unpack_idcobj_from_bv(*args) -> 'error_t' unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - - Read a typed idc object from the byte vector. - - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) Help on function unpack_idcobj_from_idb in module ida_typeinf: unpack_idcobj_from_idb(*args) -> 'error_t' unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - - Collection of register objects. Read a typed idc object from the database - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) Help on function unpack_object_from_bv in module ida_typeinf: unpack_object_from_bv(*args) -> 'PyObject *' - unpack_object_from_bv(ti, _type, _fields, bytes, pio_flags=0) -> PyObject * - - + unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * Unpacks a buffer into an object. Returns the error_t returned by idaapi.pack_object_to_idb + @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param bytes: the bytes to unpack @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure + @return: - tuple(0, err) on failure - tuple(1, obj) on success Help on function unpack_object_from_idb in module ida_typeinf: unpack_object_from_idb(*args) -> 'PyObject *' - unpack_object_from_idb(ti, _type, _fields, ea, pio_flags=0) -> PyObject * + unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int + +Help on function use_golang_cc in module ida_typeinf: + +use_golang_cc(*args) -> 'bool' + use_golang_cc() -> bool + is GOLANG calling convention used by default? Help on class valstr_t in module ida_typeinf: @@ -73227,19 +91273,19 @@ class valstr_t(builtins.object) | list of weak references to the object (if defined) | | info - | valstr_t_info_get(self) -> valinfo_t * + | info | | length - | valstr_t_length_get(self) -> size_t + | length | | members - | valstr_t_members_get(self) -> valstrs_t + | members | | oneline - | valstr_t_oneline_get(self) -> qstring * + | oneline | | props - | valstr_t_props_get(self) -> int + | props | | thisown | The membership flag @@ -73275,6 +91321,8 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73284,16 +91332,20 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -73306,11 +91358,16 @@ class valstrs_t(valstrvec_t) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -73320,18 +91377,29 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) + | + | @param x: valstr_t const & + | | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' @@ -73339,16 +91407,26 @@ class valstrs_t(valstrvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73371,10 +91449,14 @@ class valstrvec_t(builtins.object) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73386,19 +91468,23 @@ class valstrvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & | | __swig_destroy__ = delete_valstrvec_t(...) | delete_valstrvec_t(self) | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -73411,11 +91497,16 @@ class valstrvec_t(builtins.object) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -73425,18 +91516,29 @@ class valstrvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) + | + | @param x: valstr_t const & + | | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' @@ -73444,16 +91546,26 @@ class valstrvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73474,1021 +91586,94 @@ Help on function verify_argloc in module ida_typeinf: verify_argloc(*args) -> 'int' verify_argloc(vloc, size, gaps) -> int + Verify argloc_t. - - Verify 'argloc_t' . - - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) + @param vloc: (C++: const argloc_t &) argloc to verify + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered @return: 0 if ok, otherwise an interr code. Help on function verify_tinfo in module ida_typeinf: verify_tinfo(*args) -> 'int' verify_tinfo(typid) -> int + + @param typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) -> 'int' visit_subtypes(visitor, out, tif, name, cmt) -> int + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * Help on function write_tinfo_bitfield_value in module ida_typeinf: write_tinfo_bitfield_value(*args) -> 'uint64' write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -(stkargs and retloc too) - -info about argument locations has been calculated -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -otherwise "input" contains a C declaration - -"input" is file name, -""" - -ida_typeinf.HTI_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK -""" - -ida_typeinf.NTF_FIXNAME -""" -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" - 'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" - 'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if union - nb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by number- in: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by name- in: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offset- in: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.- in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type. - in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -to match the offsets and size info - -recalculate field alignments, struct packing, etc -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === Help on function calc_dataseg in module ida_ua: calc_dataseg(*args) -> 'ea_t' calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. - - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - - @param insn (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) Help on function can_decode in module ida_ua: can_decode(*args) -> 'bool' can_decode(ea) -> bool - - Can the bytes at address 'ea' be decoded as instruction? - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address @return: whether or not the contents at that address could be a valid instruction @@ -74496,194 +91681,174 @@ Help on function construct_macro in module ida_ua: construct_macro(*args) -> 'bool' construct_macro(insn, enable, build_macro) -> bool - - See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * + +Help on function construct_macro2 in module ida_ua: + +construct_macro2(*args) -> 'bool' + construct_macro2(_this, insn, enable) -> bool + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction @return: the length of the instruction or 0 Help on function create_outctx in module ida_ua: create_outctx(*args) -> 'outctx_base_t *' create_outctx(ea, F=0, suspop=0) -> outctx_base_t - - Create a new output context. To delete it, just use "delete pctx" - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param suspop: (C++: int) Help on function decode_insn in module ida_ua: decode_insn(*args) -> 'int' decode_insn(out, ea) -> int + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. - - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address @return: the length of the (possible) instruction or 0 Help on function decode_preceding_insn in module ida_ua: decode_preceding_insn(*args) -> 'PyObject *' - decode_preceding_insn(out, ea) -> PyObject * - - + decode_preceding_insn(out, ea) -> (int, int) Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea + @param out: instruction storage + @param ea: current ea @return: tuple(preceeding_ea or BADADDR, farref = Boolean) Help on function decode_prev_insn in module ida_ua: decode_prev_insn(*args) -> 'ea_t' decode_prev_insn(out, ea) -> ea_t - - Decode previous instruction if it exists, fill 'out'. - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) Help on function get_dtype_by_size in module ida_ua: get_dtype_by_size(*args) -> 'int' get_dtype_by_size(size) -> int + Get op_t::dtype from size. - - Get 'op_t::dtype' from size. - - - @param size (C++: asize_t) + @param size: (C++: asize_t) Help on function get_dtype_flag in module ida_ua: -get_dtype_flag(*args) -> 'flags_t' - get_dtype_flag(dtype) -> flags_t +get_dtype_flag(*args) -> 'flags64_t' + get_dtype_flag(dtype) -> flags64_t + Get flags for op_t::dtype field. - - Get flags for 'op_t::dtype' field. - - - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_dtype_size in module ida_ua: get_dtype_size(*args) -> 'size_t' get_dtype_size(dtype) -> size_t - - Get size of opt_::dtype field. - - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_immvals in module ida_ua: get_immvals(*args) -> 'PyObject *' - get_immvals(ea, n, F=0) -> PyObject * + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. - - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. - - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function get_lookback in module ida_ua: get_lookback(*args) -> 'int' get_lookback() -> int - - - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) Help on function get_printable_immvals in module ida_ua: get_printable_immvals(*args) -> 'PyObject *' get_printable_immvals(ea, n, F=0) -> PyObject * - - Get immediate ready-to-print values at the specified address - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) - -Help on function guess_table_address in module ida_ua: - -guess_table_address(*args) -> 'ea_t' - guess_table_address(insn) -> ea_t - - - Guess the jump table address (ibm pc specific) - - - @param insn (C++: const insn_t &) - -Help on function guess_table_size in module ida_ua: - -guess_table_size(*args) -> 'asize_t' - guess_table_size(insn, jump_table) -> asize_t - - - Guess the jump table size. - - - @param insn (C++: const insn_t &) - @param jump_table (C++: ea_t) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) -> 'void' insn_add_cref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) -> 'void' insn_add_dref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t Help on function insn_add_off_drefs in module ida_ua: insn_add_off_drefs(*args) -> 'ea_t' insn_add_off_drefs(insn, x, type, outf) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) -> 'bool' insn_create_stkvar(insn, x, v, flags) -> bool + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int Help on class insn_t in module ida_ua: @@ -74692,18 +91857,20 @@ class insn_t(builtins.object) | | Methods defined here: | - | __get_auxpref__(self, *args) -> 'uint16' - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self, *args) -> 'uint32' + | __get_auxpref__(self) -> uint32 | | __get_operand__(self, *args) -> 'op_t *' | __get_operand__(self, n) -> op_t + | + | @param n: int | | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' | __get_ops__(self) -> operands_array | | __getitem__(self, idx) | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t + | @return: op_t: Returns an operand of type op_t | | __init__(self, *args) | __init__(self) -> insn_t @@ -74714,33 +91881,91 @@ class insn_t(builtins.object) | | __set_auxpref__(self, *args) -> 'void' | __set_auxpref__(self, v) + | + | @param v: uint32 | | __swig_destroy__ = delete_insn_t(...) | delete_insn_t(self) | | add_cref(self, *args) -> 'void' | add_cref(self, to, opoff, type) + | Add a code cross-reference from the instruction. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref | | add_dref(self, *args) -> 'void' | add_dref(self, to, opoff, type) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref | | add_off_drefs(self, *args) -> 'ea_t' | add_off_drefs(self, x, type, outf) -> ea_t + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses | | assign(self, *args) -> 'void' | assign(self, other) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) -> 'bool' | create_op_data(self, ea_, opoff, dtype) -> bool + | Convenient alias. + | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t + | | create_op_data(self, ea_, op) -> bool + | + | @param ea_: ea_t + | @param op: op_t const & | | create_stkvar(self, *args) -> 'bool' | create_stkvar(self, x, v, flags_) -> bool + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable | | get_canon_feature(self, *args) -> 'uint32' + | get_canon_feature(self, ph) -> uint32 + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | | get_canon_feature(self) -> uint32 | | get_canon_mnem(self, *args) -> 'char const *' + | get_canon_mnem(self, ph) -> char const + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | | get_canon_mnem(self) -> char const * | | get_next_byte(self, *args) -> 'uint8' @@ -74757,12 +91982,19 @@ class insn_t(builtins.object) | | is_64bit(self, *args) -> 'bool' | is_64bit(self) -> bool + | Belongs to a 64bit segment? | | is_canon_insn(self, *args) -> 'bool' + | is_canon_insn(self, ph) -> bool + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | | is_canon_insn(self) -> bool | | is_macro(self, *args) -> 'bool' | is_macro(self) -> bool + | Is a macro instruction? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74779,6 +92011,10 @@ class insn_t(builtins.object) | | Op6 | + | Op7 + | + | Op8 + | | __dict__ | dictionary for instance variables (if defined) | @@ -74786,34 +92022,40 @@ class insn_t(builtins.object) | list of weak references to the object (if defined) | | auxpref - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 + | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 | | cs - | insn_t_cs_get(self) -> ea_t + | cs | | ea - | insn_t_ea_get(self) -> ea_t + | ea | | flags - | insn_t_flags_get(self) -> int16 + | flags | | insnpref - | insn_t_insnpref_get(self) -> char + | insnpref | | ip - | insn_t_ip_get(self) -> ea_t + | ip | | itype - | insn_t_itype_get(self) -> uint16 + | itype | | ops | __get_ops__(self) -> operands_array | | segpref - | insn_t_segpref_get(self) -> char + | segpref | | size - | insn_t_size_get(self) -> uint16 + | size | | thisown | The membership flag @@ -74822,50 +92064,109 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) -> 'insn_t *' insn_t__from_ptrval__(ptrval) -> insn_t + + @param ptrval: size_t Help on function is_floating_dtype in module ida_ua: is_floating_dtype(*args) -> 'bool' is_floating_dtype(dtype) -> bool - - Is a floating type operand? - - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) + +Help on class macro_constructor_t in module ida_ua: + +class macro_constructor_t(builtins.object) + | Proxy of C++ macro_constructor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> macro_constructor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_macro_constructor_t(...) + | delete_macro_constructor_t(self) + | + | build_macro(self, *args) -> 'bool' + | build_macro(self, insn, may_go_forward) -> bool + | Try to extend the instruction. + | + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag Help on function map_code_ea in module ida_ua: map_code_ea(*args) -> 'ea_t' map_code_ea(insn, addr, opnum) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + map_code_ea(insn, op) -> ea_t - - Map a code address. This function takes into account the segment - translations. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_data_ea in module ida_ua: map_data_ea(*args) -> 'ea_t' map_data_ea(insn, addr, opnum=-1) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + map_data_ea(insn, op) -> ea_t - - Map a data address. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) -> 'ea_t' map_ea(insn, op, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool + map_ea(insn, addr, opnum, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool Help on class op_t in module ida_ua: @@ -74883,6 +92184,9 @@ class op_t(builtins.object) | __get_specval__(self, *args) -> 'ea_t' | __get_specval__(self) -> ea_t | + | __get_value64__(self, *args) -> 'uint64' + | __get_value64__(self) -> uint64 + | | __get_value__(self, *args) -> 'ea_t' | __get_value__(self) -> ea_t | @@ -74893,39 +92197,63 @@ class op_t(builtins.object) | | __set_addr__(self, *args) -> 'void' | __set_addr__(self, v) + | + | @param v: ea_t | | __set_reg_phrase__(self, *args) -> 'void' | __set_reg_phrase__(self, r) + | + | @param r: uint16 | | __set_specval__(self, *args) -> 'void' | __set_specval__(self, v) + | + | @param v: ea_t + | + | __set_value64__(self, *args) -> 'void' + | __set_value64__(self, v) + | + | @param v: uint64 | | __set_value__(self, *args) -> 'void' | __set_value__(self, v) + | + | @param v: ea_t | | __swig_destroy__ = delete_op_t(...) | delete_op_t(self) | | assign(self, *args) -> 'void' | assign(self, other) + | + | @param other: op_t const & | | clr_shown(self, *args) -> 'void' | clr_shown(self) + | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) -> 'bool' | is_imm(self, v) -> bool + | Is immediate operand? + | + | @param v: (C++: uval_t) | | is_reg(self, *args) -> 'bool' | is_reg(self, r) -> bool + | Is register operand? + | + | @param r: (C++: int) | | set_shown(self, *args) -> 'void' | set_shown(self) + | Set operand to be shown. | | shown(self, *args) -> 'bool' | shown(self) -> bool + | Is operand set to be shown? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74940,19 +92268,19 @@ class op_t(builtins.object) | __get_addr__(self) -> ea_t | | dtype - | op_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | op_t_flags_get(self) -> uchar + | flags | | n - | op_t_n_get(self) -> uchar + | n | | offb - | op_t_offb_get(self) -> char + | offb | | offo - | op_t_offo_get(self) -> char + | offo | | phrase | __get_reg_phrase__(self) -> uint16 @@ -74961,16 +92289,16 @@ class op_t(builtins.object) | __get_reg_phrase__(self) -> uint16 | | specflag1 - | op_t_specflag1_get(self) -> char + | specflag1 | | specflag2 - | op_t_specflag2_get(self) -> char + | specflag2 | | specflag3 - | op_t_specflag3_get(self) -> char + | specflag3 | | specflag4 - | op_t_specflag4_get(self) -> char + | specflag4 | | specval | __get_specval__(self) -> ea_t @@ -74979,15 +92307,20 @@ class op_t(builtins.object) | The membership flag | | type - | op_t_type_get(self) -> optype_t + | type | | value | __get_value__(self) -> ea_t + | + | value64 + | __get_value64__(self) -> uint64 Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) -> 'op_t *' op_t__from_ptrval__(ptrval) -> op_t + + @param ptrval: size_t Help on class operands_array in module ida_ua: @@ -74998,9 +92331,13 @@ class operands_array(builtins.object) | | __getitem__(self, *args) -> 'op_t const &' | __getitem__(self, i) -> op_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array + | + | @param data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75012,10 +92349,23 @@ class operands_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: op_t const & | | __swig_destroy__ = delete_operands_array(...) | delete_operands_array(self) | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -75025,8 +92375,11 @@ class operands_array(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bytes + | _get_bytes(self) -> bytevec_t + | | data - | operands_array_data_get(self) -> op_t (&)[8] + | data | | thisown | The membership flag @@ -75054,9 +92407,20 @@ class outctx_base_t(builtins.object) | | flush_buf(self, *args) -> 'bool' | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -75066,33 +92430,79 @@ class outctx_base_t(builtins.object) | | gen_block_cmt(self, *args) -> 'bool' | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) -> 'bool' | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -75102,72 +92512,155 @@ class outctx_base_t(builtins.object) | | out_addr_tag(self, *args) -> 'void' | out_addr_tag(self, ea) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) | | out_btoa(self, *args) -> 'void' | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) -> 'void' | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) | - | out_value(self, *args) -> 'flags_t' - | out_value(self, x, outf=0) -> flags_t + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -75177,15 +92670,25 @@ class outctx_base_t(builtins.object) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | + | @param on: bool | | setup_outctx(self, *args) -> 'void' | setup_outctx(self, prefix, makeline_flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75197,13 +92700,13 @@ class outctx_base_t(builtins.object) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf | | thisown | The membership flag @@ -75212,6 +92715,8 @@ Help on function outctx_base_t__from_ptrval__ in module ida_ua: outctx_base_t__from_ptrval__(*args) -> 'outctx_base_t *' outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t + + @param ptrval: size_t Help on class outctx_t in module ida_ua: @@ -75232,12 +92737,20 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) -> 'void' | gen_func_footer(self, pfn) + | + | @param pfn: func_t const * | | gen_func_header(self, *args) -> 'void' | gen_func_header(self, pfn) + | + | @param pfn: func_t * | | gen_header(self, *args) -> 'void' | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * | | gen_header_extra(self, *args) -> 'void' | gen_header_extra(self) @@ -75245,65 +92758,131 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self, *args) -> 'bool' | gen_xref_lines(self) -> bool | + | out_btoa(self, *args) -> 'void' + | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) + | | out_custom_mnem(self, *args) -> 'void' | out_custom_mnem(self, mnem, width=8, postfix=None) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' | | out_data(self, *args) -> 'void' | out_data(self, analyze_only) + | + | @param analyze_only: bool | | out_immchar_cmts(self, *args) -> 'void' | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. | | out_mnem(self, *args) -> 'void' | out_mnem(self, width=8, postfix=None) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic | | out_mnemonic(self, *args) -> 'void' | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. | | out_one_operand(self, *args) -> 'bool' | out_one_operand(self, n) -> bool + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden | | out_specea(self, *args) -> 'bool' | out_specea(self, segtype) -> bool + | + | @param segtype: uchar | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_bin_state(self, *args) -> 'void' | set_bin_state(self, value) + | + | @param value: int | | setup_outctx(self, *args) -> 'void' | setup_outctx(self, prefix, flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | ash + | ash + | | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t + | bin_ea | | bin_state - | outctx_t_bin_state_get(self) -> char + | bin_state | | bin_width - | outctx_t_bin_width_get(self) -> int + | bin_width | | curlabel - | outctx_t_curlabel_get(self) -> qstring * + | curlabel | | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int + | gl_bpsize | | insn - | outctx_t_insn_get(self) -> insn_t + | insn + | + | ph + | ph + | + | prefix_ea + | prefix_ea + | + | procmod + | procmod + | + | saved_immvals + | saved_immvals | | thisown | The membership flag | | wif - | outctx_t_wif_get(self) -> printop_t + | wif | | ---------------------------------------------------------------------- | Methods inherited from outctx_base_t: @@ -75319,9 +92898,20 @@ class outctx_t(outctx_base_t) | | flush_buf(self, *args) -> 'bool' | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -75331,30 +92921,76 @@ class outctx_t(outctx_base_t) | | gen_block_cmt(self, *args) -> 'bool' | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -75364,66 +93000,138 @@ class outctx_t(outctx_base_t) | | out_addr_tag(self, *args) -> 'void' | out_addr_tag(self, ea) - | - | out_btoa(self, *args) -> 'void' - | out_btoa(self, Word, radix=0) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) | | out_char(self, *args) -> 'void' | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) | - | out_value(self, *args) -> 'flags_t' - | out_value(self, x, outf=0) -> flags_t + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -75433,12 +93141,18 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | + | @param on: bool | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -75450,343 +93164,83 @@ class outctx_t(outctx_base_t) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) -> 'outctx_t *' outctx_t__from_ptrval__(ptrval) -> outctx_t + + @param ptrval: size_t Help on function print_insn_mnem in module ida_ua: print_insn_mnem(*args) -> 'qstring *' print_insn_mnem(ea) -> str - - Print instruction mnemonics. - @param ea: linear address of the instruction (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction @return: success Help on function print_operand in module ida_ua: print_operand(*args) -> 'qstring *' print_operand(ea, n, getn_flags=0, newtype=None) -> str + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) - - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) Name expression flags Currently only GETN_NODUMMY is + accepted. + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type @return: success -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error +Module "ida_xref"s docstring: """ +Functions that deal with cross-references. -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) -ida_ua.FCBF_ERR_REPL -""" -of a hex representation of the problematic byte +The source address of a cross-reference must be an item head (is_head) or a +structure member id. -in case of an error, use a CP_REPLCHAR instead -""" +Cross-references are automatically sorted.""" -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" - -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -currently works only for floating point numbers - -do not suppress leading spaces -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' add_cref(frm, to, type) -> bool - - Create a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type @return: success Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' add_dref(frm, to, type) -> bool - - Create a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type @return: success (may fail if user-defined xref exists from->to) Help on function calc_switch_cases in module ida_xref: calc_switch_cases(*args) -> 'cases_and_targets_t *' calc_switch_cases(ea, si) -> cases_and_targets_t - - Get information about a switch's cases. The returned information can be used as follows: @@ -75827,10 +93281,10 @@ class cases_and_targets_t(builtins.object) | list of weak references to the object (if defined) | | cases - | cases_and_targets_t_cases_get(self) -> casevec_t + | cases | | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * + | targets | | thisown | The membership flag @@ -75844,13 +93298,19 @@ class casevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75859,20 +93319,31 @@ class casevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ | | __swig_destroy__ = delete_casevec_t(...) | delete_casevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | @@ -75900,35 +93371,59 @@ class casevec_t(builtins.object) | | erase(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | extract(self, *args) -> 'qvector< signed-ea-like-numeric-type > *'↗ | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ | | find(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | push_back(self, x) + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ | | qclear(self, *args) -> 'void' @@ -75936,16 +93431,26 @@ class casevec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -75971,8 +93476,6 @@ Help on function create_switch_table in module ida_xref: create_switch_table(*args) -> 'bool' create_switch_table(ea, si) -> bool - - Create switch table from the switch information @param ea: address of the 'indirect jump' instruction @@ -75984,8 +93487,6 @@ Help on function create_switch_xrefs in module ida_xref: create_switch_xrefs(*args) -> 'bool' create_switch_xrefs(ea, si) -> bool - - This function creates xrefs from the indirect jump. Usually there is no need to call this function directly because the kernel @@ -76000,184 +93501,166 @@ create_switch_xrefs(*args) -> 'bool' Help on function del_cref in module ida_xref: -del_cref(*args) -> 'int' - del_cref(frm, to, expand) -> int - - +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' del_dref(frm, to) - - Delete a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) -> 'void' delete_switch_table(jump_ea, si) + + @param jump_ea: ea_t + @param si: switch_info_t const & Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' get_first_dref_from(frm) -> ea_t - - Get first data referenced from the specified address. - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' get_first_dref_to(to) -> ea_t - - Get address of instruction/data referencing to the specified data. - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t + + @param to: ea_t Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' get_next_cref_from(frm, current) -> ea_t - - Get next instruction referenced from the specified instruction. - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' get_next_cref_to(to, current) -> ea_t - - Get next instruction referencing to the specified instruction. - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' get_next_dref_from(frm, current) -> ea_t - - Get next data referenced from the specified address. - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' get_next_dref_to(to, current) -> ea_t - - Get address of instruction/data referencing to the specified data - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t Help on function has_external_refs in module ida_xref: has_external_refs(*args) -> 'bool' has_external_refs(pfn, ea) -> bool + Does 'ea' have references from outside of 'pfn'? - - Has a location external to the function references? - - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -76194,19 +93677,61 @@ class xrefblk_t(builtins.object) | __swig_destroy__ = delete_xrefblk_t(...) | delete_xrefblk_t(self) | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | | first_from(self, *args) -> 'bool' | first_from(self, _from, flags) -> bool + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) | | first_to(self, *args) -> 'bool' | first_to(self, _to, flags) -> bool + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) | | next_from(self, *args) -> 'bool' | next_from(self) -> bool + | Get xref from '_from' that comes after '_to'. | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int | | next_to(self, *args) -> 'bool' | next_to(self) -> bool + | Get xref to '_to' that comes after '_from'. | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76218,79 +93743,44 @@ class xrefblk_t(builtins.object) | list of weak references to the object (if defined) | | frm - | xrefblk_t_frm_get(self) -> ea_t + | frm | | iscode - | xrefblk_t_iscode_get(self) -> uchar + | iscode | | thisown | The membership flag | | to - | xrefblk_t_to_get(self) -> ea_t + | to | | type - | xrefblk_t_type_get(self) -> uchar + | type | | user - | xrefblk_t_user_get(self) -> uchar + | user Help on function xrefchar in module ida_xref: xrefchar(*args) -> 'char' xrefchar(xrtype) -> char - - Get character describing the xref type. - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL +Module "idc"s docstring: """ -return all references +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. """ -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === Help on function AddSeg in module idc: AddSeg(startea, endea, base, use32, align, comb) @@ -76311,6 +93801,11 @@ class DeprecatedIDCError(builtins.Exception) | builtins.BaseException | builtins.object | + | Methods defined here: + | + | add_note = dummy_replacement() + | + | ---------------------------------------------------------------------- | Data descriptors defined here: | | __weakref__ @@ -76382,13 +93877,11 @@ Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' get_cmt(ea, rptble) -> str - - Get an indented comment. - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? @return: size of comment or -1 Help on function GetDisasm in module idc: @@ -76447,15 +93940,6 @@ LoadFile(filepath, pos, ea, size) Help on function MakeVar in module idc: MakeVar(ea) - Mark the location as "variable" - - @param ea: address to mark - - @return: None - - @note: All that IDA does is to mark the location as "variable". - Nothing else, no additional analysis is performed. - This function may disappear in the future. Help on function SaveFile in module idc: @@ -76617,6 +94101,13 @@ __l2m1(v) 'signed long' version of -1, then return -1. Otherwise, return 'v'. +Help on function __m1tol in module idc: + +__m1tol(v) + Long -1 to BADNODE: If the 'v' appears to be the + 'signed long' version of -1, then return BADNODE. + Otherwise, return 'v'. + Help on function __warn_once_deprecated_proto_confusion in module idc: __warn_once_deprecated_proto_confusion(what, alternative) @@ -76626,6 +94117,10 @@ Help on function _get_modules in module idc: _get_modules() INTERNAL: Enumerate process modules +Help on function _import_module_flag_sets in module idc: + +_import_module_flag_sets(module, prefixes) + Help on function add_auto_stkpnt in module idc: add_auto_stkpnt(func_ea, ea, delta) @@ -76641,38 +94136,28 @@ Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + add_bpt(bpt) -> bool - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + @param bpt: bpt_t const & Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' add_cref(frm, to, type) -> bool - - Create a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type @return: success Help on function add_default_til in module idc: @@ -76687,32 +94172,28 @@ Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' add_dref(frm, to, type) -> bool - - Create a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type @return: success (may fail if user-defined xref exists from->to) Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' add_entry(ord, ea, name, makecode, flags=0) -> bool - - Add an entry point to the list of entry points. - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* @return: success (currently always true) Help on function add_enum in module idc: @@ -76755,43 +94236,37 @@ Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address @return: success Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color @return: success Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name @return: IDC hotkey error codes Help on function add_segm_ex in module idc: @@ -76818,16 +94293,13 @@ Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. @return: success Help on function add_struc in module idc: @@ -76886,13 +94358,10 @@ Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' add_user_stkpnt(ea, delta) -> bool - - Add user-defined SP register change point. - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP @return: success Help on function append_func_tail in module idc: @@ -76925,21 +94394,22 @@ apply_type(ea, py_type, flags=1) Help on function ask_seg in module ida_kernwin: 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 Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' ask_yn(deflt, format) -> int - - Display a dialog box and get choice from "Yes", "No", "Cancel". - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function atoa in module idc: @@ -76958,56 +94428,50 @@ Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' auto_wait() -> bool - - Process everything in the queues and return true. - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function batch in module idc: @@ -77063,12 +94527,10 @@ Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' check_bpt(ea) -> int - - Check the breakpoint at the specified address. - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -77091,14 +94553,14 @@ Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' create_align(ea, length, alignment) -> bool + Create an alignment item. - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_array in module idc: @@ -77122,35 +94584,28 @@ Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' create_custdata(ea, length, dtid, fid, force=False) -> bool - - Convert to custom data type. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. @return: success Help on function create_double in module idc: @@ -77184,16 +94639,14 @@ Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction @return: the length of the instruction or 0 Help on function create_oword in module idc: @@ -77283,17 +94736,14 @@ Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' define_exception(code, name, desc, flags) -> char const * - - Convenience function: define new exception code. - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function define_local_var in module idc: @@ -77328,50 +94778,44 @@ Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) + @param bptloc: bpt_location_t const & Help on function del_cref in module ida_xref: -del_cref(*args) -> 'int' - del_cref(frm, to, expand) -> int - - +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' del_dref(frm, to) - - Delete a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' del_enum(id) - - Delete an enum type. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module idc: @@ -77391,27 +94835,25 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' del_fixup(source) - - Delete fixup information. - - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' del_func(ea) -> bool - - Delete a function. - @param ea: any address in the function entry chunk (C++: ea_t) + @param ea: (C++: ea_t) any address in the function entry chunk @return: success Help on function del_hash_string in module idc: @@ -77428,11 +94870,9 @@ Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' del_hidden_range(ea) -> bool - - Delete hidden range. - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range @return: success Help on function del_idc_hotkey in module ida_kernwin: @@ -77440,69 +94880,58 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) + @param hotkey: char const * Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails @return: true on sucessful operation, otherwise false Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' del_segm(ea, flags) -> bool - - Delete a segment. - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) + + @param ea: ea_t Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) -> 'bool' del_sourcefile(ea) -> bool - - Delete information about the source file. - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address @return: success Help on function del_stkpnt in module idc: @@ -77571,24 +95000,29 @@ Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' - diff_trace_file(nonnul_filename) -> bool - - + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function enable_tracing in module idc: @@ -77604,8 +95038,6 @@ Help on function error in module ida_kernwin: error(*args) -> 'void' error(format) - - Display a fatal message in a message box and quit IDA @param format: message to print @@ -77626,10 +95058,8 @@ Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function expand_struc in module idc: @@ -77656,43 +95086,34 @@ filelength(handle) Help on function find_binary in module idc: -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) +find_binary(ea, flag, searchstr, radix=16) Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' find_code(ea, sflag) -> ea_t - - Find next code address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' find_data(ea, sflag) -> ea_t - - Find next data address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' find_defined(ea, sflag) -> ea_t - - Find next ea that is the start of an instruction or data. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_func_end in module idc: @@ -77708,15 +95129,12 @@ find_func_end(ea) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' - find_imm(newEA, sflag, srchValue) -> ea_t - - + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_selector in module idc: @@ -77734,29 +95152,23 @@ Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' find_suspop(ea, sflag) -> ea_t - - Find next suspicious operand. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module idc: -find_text(ea, flag, y, x, searchstr, from_bc695=False) +find_text(ea, flag, y, x, searchstr) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' find_unknown(ea, sflag) -> ea_t - - Find next unexplored address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function first_func_chunk in module idc: @@ -77930,11 +95342,15 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + + @param slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + + @param slot: int32 Help on function get_bpt_attr in module idc: @@ -77959,28 +95375,23 @@ Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bytes in module idc: @@ -78000,14 +95411,12 @@ Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_color in module idc: @@ -78030,23 +95439,18 @@ Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -78057,88 +95461,69 @@ Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' get_entry(ord) -> ea_t - - Get entry point address by its ordinal - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' get_entry_name(ord) -> str - - Get name of the entry point by its ordinal. - @param ord: ordinal number of entry point (C++: uval_t) + @param ord: (C++: uval_t) ordinal number of entry point @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' get_entry_ordinal(idx) -> uval_t - - Get ordinal number of an entry point. - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' get_entry_qty() -> size_t - - Get number of entry points. Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' get_enum(name) -> enum_t - - Get enum by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' get_enum_cmt(id, repeatable) -> str - - Get enum comment. - - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: -get_enum_flag(*args) -> 'flags_t' - get_enum_flag(id) -> flags_t +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' get_enum_idx(id) -> uval_t + Get the index in the list of enums. - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module idc: @@ -78158,23 +95543,17 @@ Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' get_enum_member_bmask(id) -> bmask_t - - Get bitmask of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' get_enum_member_by_name(name) -> const_t - - Get a reference to an enum member by its name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module idc: @@ -78190,12 +95569,9 @@ Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' get_enum_member_enum(id) -> enum_t - - Get the parent enum of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module idc: @@ -78210,53 +95586,38 @@ Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' get_enum_member_value(id) -> uval_t - - Get value of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' get_enum_name(id) -> str - - Get name of enum. - - - @param id (C++: enum_t) + @param id: enum_t Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' get_enum_size(id) -> size_t - - Get the number of the members of the enum. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -78355,6 +95716,9 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int Help on function get_fchunk_attr in module idc: @@ -78370,75 +95734,63 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' - get_first_bmask(id) -> bmask_t - - + get_first_bmask(enum_id) -> bmask_t Get first bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum (bitfield) @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' get_first_dref_from(frm) -> ea_t - - Get first data referenced from the specified address. - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' get_first_dref_to(to) -> ea_t - - Get address of instruction/data referencing to the specified data. - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -78455,11 +95807,15 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t + + @param to: ea_t Help on function get_first_hash_key in module idc: @@ -78519,11 +95875,9 @@ Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' get_first_struc_idx() -> uval_t - - Get index of first structure. - @return: BADADDR if no known structures, 0 otherwise + @return: BADADDR if no known structures, 0 otherwise Help on function get_fixup_target_dis in module idc: @@ -78579,12 +95933,10 @@ Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' get_forced_operand(ea, n) -> str - - Get forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) @return: size of forced operand or -1 Help on function get_frame_args_size in module idc: @@ -78648,13 +96000,11 @@ get_frame_size(ea) Help on function get_full_flags in module ida_bytes: -get_full_flags(*args) -> 'flags_t' - get_full_flags(ea) -> flags_t - - +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t Get flags value for address 'ea'. - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: 0 if address is not present in the program Help on function get_func_attr in module idc: @@ -78740,38 +96090,31 @@ get_idb_path() Help on function get_inf_attr in module idc: get_inf_attr(attr) + Deprecated. Please ida_ida.inf_get_* instead. Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' get_input_file_path() -> str - - Get full path of the input file. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_size in module idc: @@ -78785,12 +96128,10 @@ get_item_size(ea) Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' - get_last_bmask(id) -> bmask_t - - + get_last_bmask(enum_id) -> bmask_t Get last bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -78848,12 +96189,9 @@ Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' get_last_struc_idx() -> uval_t - - Get index of last structure. - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_local_tinfo in module idc: @@ -78867,11 +96205,9 @@ Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' get_manual_insn(ea) -> str - - Retrieve the user-specified string for the manual instruction. - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item @return: size of manual instruction or -1 Help on function get_member_cmt in module idc: @@ -79046,17 +96382,14 @@ Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_ea_simple in module idc: @@ -79071,76 +96404,61 @@ get_name_ea_simple(name) Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' - get_next_bmask(id, bmask) -> bmask_t - - + get_next_bmask(enum_id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' get_next_cref_from(frm, current) -> ea_t - - Get next instruction referenced from the specified instruction. - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' get_next_cref_to(to, current) -> ea_t - - Get next instruction referencing to the specified instruction. - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' get_next_dref_from(frm, current) -> ea_t - - Get next data referenced from the specified address. - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' get_next_dref_to(to, current) -> ea_t - - Get address of instruction/data referencing to the specified data - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_enum_member in module idc: @@ -79170,21 +96488,25 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' get_next_fixup_ea(ea) -> ea_t - - Find next address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the next address with fixup information, or BADADDR Help on function get_next_func in module idc: @@ -79265,12 +96587,10 @@ Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' get_next_struc_idx(idx) -> uval_t - - Get next struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_numbered_type_name in module idc: @@ -79322,25 +96642,21 @@ Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' - get_prev_bmask(id, bmask) -> bmask_t - - + get_prev_bmask(enum_id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module idc: @@ -79371,11 +96687,9 @@ Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' get_prev_fixup_ea(ea) -> ea_t - - Find previous address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the previous address with fixup information, or BADADDR Help on function get_prev_func in module idc: @@ -79437,91 +96751,80 @@ Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' get_prev_struc_idx(idx) -> uval_t - - Get previous struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) + @param proclist: (C++: procinfo_vec_t *) array with information about each running process @return: number of processes or -1 on error Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) -Help on function get_reg_value in module idc: +Help on function get_reg_val in module ida_dbg: -get_reg_value(name) - Get register value +get_reg_val(*args) -> 'PyObject *' + get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. - @param name: the register name + @param regname: (C++: const char *) char const * + @param regval: regval_t * - @note: The debugger should be running. otherwise the function fails - the register name should be valid. - It is not necessary to use this function to get register values - because a register name in the script will do too. + get_reg_val(regname, ival) -> bool - @return: register value (integer or floating point) + @param regname: char const * + @param ival: uint64 * + + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' get_root_filename() -> str - - Get file name only of the input file. Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' get_screen_ea() -> ea_t - - - Get the address at the screen cursor ( 'ui_screenea' ) + Get the address at the screen cursor (ui_screenea) Help on function get_segm_attr in module idc: @@ -79574,20 +96877,20 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t + + @param ea: ea_t Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) -> 'char const *' get_sourcefile(ea, bounds=None) -> char const * - - Get name of source file occupying the given address. - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function get_sp_delta in module idc: @@ -79630,10 +96933,8 @@ Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} @return: Step trace options @@ -79660,82 +96961,67 @@ Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' get_struc_by_idx(idx) -> tid_t - - Get struct id by struct number. - - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' get_struc_cmt(id, repeatable) -> str - - Get struct comment. - - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' get_struc_id(name) -> tid_t - - Get struct id by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' get_struc_idx(id) -> uval_t - - Get internal number of the structure. - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' get_struc_name(id, flags=0) -> str - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + @param id: tid_t + @param flags: int Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' get_struc_qty() -> size_t - - Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + get_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) + @param id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t + + @param n: int Help on function get_tev_reg_mem in module ida_dbg: @@ -79753,10 +97039,8 @@ Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_val in module ida_dbg: @@ -79766,20 +97050,22 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_tinfo in module idc: @@ -79793,12 +97079,9 @@ Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' get_trace_file_desc(filename) -> str - - Get the file header of the specified trace file. - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_type in module idc: @@ -79813,40 +97096,34 @@ Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_xref_type in module idc: @@ -79859,39 +97136,31 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> enum_t + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) + @param idx: (C++: size_t) Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function guess_type in module idc: @@ -79987,12 +97256,10 @@ Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_byte in module idc: @@ -80154,12 +97421,9 @@ Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' is_valid_trace_file(filename) -> bool - - Is the specified file a valid trace file for the current database? - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function is_word in module idc: @@ -80169,44 +97433,45 @@ Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success jumpto(custom_viewer, place, x, y) -> bool - - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' load_and_run_plugin(name, arg) -> bool - - Load & run a plugin. - - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function loadfile in module idc: @@ -80245,9 +97510,7 @@ move_segm(ea, to, flags) Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * - - + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -80261,12 +97524,10 @@ Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' next_addr(ea) -> ea_t - - Get next address in the program (i.e. next address which has flags). - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -80295,144 +97556,114 @@ Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' next_not_tail(ea) -> ea_t - - Get address of next non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' op_bin(ea, n) -> bool + set op type to bin_flag() - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' op_chr(ea, n) -> bool + set op type to char_flag() - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' op_dec(ea, n) -> bool + set op type to dec_flag() - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' op_flt(ea, n) -> bool + set op type to flt_flag() - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' op_hex(ea, n) -> bool + set op type to hex_flag() - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' set_forced_operand(ea, n, op) -> bool - - Set forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand @return: success Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' op_num(ea, n) -> bool + set op type to num_flag() - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' op_oct(ea, n) -> bool + set op type to oct_flag() - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_offset in module ida_offset: -op_offset(*args) -> 'int' - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_high16 in module idc: @@ -80493,27 +97724,23 @@ Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stroff in module idc: @@ -80554,68 +97781,74 @@ Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' put_dbg_byte(ea, x) -> bool - - Change one byte of the debugged process memory. - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value @return: true if the process memory has been modified Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function plan_and_wait in module idc: @@ -80632,25 +97865,19 @@ Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' plan_to_apply_idasgn(fname) -> int - - Add a signature file to the list of planned signature files. - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' prev_addr(ea) -> ea_t - - Get previous address in the program. - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -80667,12 +97894,10 @@ Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' prev_not_tail(ea) -> ea_t - - Get address of previous non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -80684,37 +97909,6 @@ print_decls(ordinals, flags) @return: string containing the type definitions -Help on _Feature in module __future__ object: - -class _Feature(builtins.object) - | Methods defined here: - | - | __init__(self, optionalRelease, mandatoryRelease, compiler_flag) - | Initialize self. See help(type(self)) for accurate signature. - | - | __repr__(self) - | Return repr(self). - | - | getMandatoryRelease(self) - | Return release in which this feature will become mandatory. - | - | This is a 5-tuple, of the same form as sys.version_info, or, if - | the feature was dropped, is None. - | - | getOptionalRelease(self) - | Return first release in which this feature was recognized. - | - | This is a 5-tuple, of the same form as sys.version_info. - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on function print_insn_mnem in module idc: print_insn_mnem(ea) @@ -80742,11 +97936,7 @@ print_operand(ea, n) Help on function process_config_line in module idc: process_config_line(directive) - Parse one or more ida.cfg config directives - @param directive: directives to process, for example: PACK_DATABASE=2 - - @note: If the directives are erroneous, a fatal error will be generated. - The settings are permanent: effective for the current session and the next ones + Obsolete. Please use ida_idp.process_config_directive(). Help on function process_ui_action in module idc: @@ -80761,16 +97951,21 @@ Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * Help on function qexit in module ida_pro: qexit(*args) -> 'void' qexit(code) - - Call qatexit functions, shut down UI and kernel, and exit. - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on function qsleep in module idc: @@ -80800,11 +97995,11 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function read_dbg_qword in module idc: @@ -80852,49 +98047,44 @@ Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' rebase_program(delta, flags) -> int - - Rebase the whole program by 'delta' bytes. - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database @return: Move segment result codes Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' recalc_spd(cur_ea) -> bool - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * - - Refreshes the debugger memory + @return: Nothing Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_choosers in module ida_kernwin: @@ -80925,15 +98115,12 @@ Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' rename_entry(ord, name, flags=0) -> bool - - Rename entry point. - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* @return: success Help on function resume_process in module idc: @@ -80944,19 +98131,18 @@ Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' resume_thread(tid) -> int - - Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' - retrieve_input_file_md5() -> str - - + retrieve_input_file_md5() -> bytes Get input file md5. Help on function rotate_byte in module idc: @@ -80989,20 +98175,14 @@ Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_database in module idc: @@ -81017,13 +98197,10 @@ Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' save_trace_file(filename, description) -> bool - - Save the current trace in the specified file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function savefile in module idc: @@ -81045,14 +98222,12 @@ Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) + @param tid: (C++: thid_t) ID of the thread to select @return: false if the thread doesn't exist. Help on function selector_by_name in module idc: @@ -81158,14 +98333,13 @@ Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' set_cmt(ea, comm, rptble) -> bool - - Set an indented comment. - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? @return: success Help on function set_color in module idc: @@ -81182,18 +98356,18 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(nonnul_cond) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' set_debugger_options(options) -> uint - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' + combination Debugger options - @param options (C++: uint) + @param options: (C++: uint) @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -81211,98 +98385,75 @@ Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' set_enum_bf(id, bf) -> bool - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' set_enum_cmt(id, cmt, repeatable) -> bool - - Set comment for enum type. - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' set_enum_member_cmt(id, cmt, repeatable) -> bool - - Set comment for enum member. - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' set_enum_name(id, name) -> bool - - Set name of enum type. - - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' set_enum_width(id, width) -> bool + See comment for get_enum_width() - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) + @param id: (C++: enum_t) + @param width: (C++: int) Help on function set_fchunk_attr in module idc: @@ -81375,12 +98526,10 @@ Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' set_func_end(ea, newend) -> bool - - Move function chunk end address. - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function @return: success Help on function set_func_flags in module idc: @@ -81419,16 +98568,15 @@ Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' set_ida_state(st) -> idastate_t - - Change IDA status indicator value - @param st: - new indicator status (C++: idastate_t) + @param st: (C++: idastate_t) - new indicator status @return: old indicator status Help on function set_inf_attr in module idc: set_inf_attr(attr, value) + Deprecated. Please ida_ida.inf_set_* instead. Help on function set_local_type in module idc: @@ -81447,13 +98595,10 @@ Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' set_manual_insn(ea, manual_insn) - - Set manual instruction string. - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_member_cmt in module idc: @@ -81522,14 +98667,12 @@ Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ @return: success Help on function set_reg_value in module idc: @@ -81548,25 +98691,20 @@ Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' set_root_filename(file) - - Set full path of the input file. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_segm_addressing in module idc: @@ -81656,61 +98794,56 @@ Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' change_storage_type(start_ea, end_ea, stt) -> error_t - - Change flag storage type for address range. - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) @return: error code Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' set_struc_cmt(id, cmt, repeatable) -> bool - - Set structure comment. - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_idx in module idc: @@ -81729,13 +98862,10 @@ Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' set_struc_name(id, name) -> bool - - Set structure name. - - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function set_tail_owner in module idc: @@ -81753,25 +98883,19 @@ Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' set_target_assembler(asmnum) -> bool - - Set target assembler. - @param asmnum: number of assembler in the current processor module - (C++: int) + @param asmnum: (C++: int) number of assembler in the current processor module @return: success Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' set_trace_file_desc(filename, description) -> bool - - Change the description of the specified trace file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function split_sreg_range in module idc: @@ -81791,49 +98915,43 @@ Help on function start_process in module ida_dbg: start_process(*args) -> 'int' start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function strlen in module idc: @@ -81851,40 +98969,37 @@ Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' - take_memory_snapshot(only_loader_segs) -> bool - - + take_memory_snapshot(type) -> bool Take a memory snapshot of the running process. - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) @return: success Help on function to_ea in module idc: @@ -81907,18 +99022,20 @@ Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) -> 'void' update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * Help on function update_hidden_range in module idc: @@ -81978,24 +99095,19 @@ Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function warning in module ida_kernwin: warning(*args) -> 'void' warning(format) - - Display a message in a message box @param message: message to print (formatting is done in Python) @@ -82031,3 +99143,17001 @@ Help on function xtol in module idc: xtol(s) + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable GFE_IDB_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. but never use the debugger memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable FUNC_OUTLINE in module ida_funcs: + + Outlined code, not a real function. + +Documentation on variable FUNC_REANALYZE in module ida_funcs: + + Function frame changed, request to reanalyze the function after the last insn is + analyzed. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable FC_OUTLINES in module ida_gdl: + + include outlined code (with FUNC_OUTLINE) + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + 16-bit functions cannot be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant (user representation) + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable IPROP_UNMERGED in module ida_hexrays: + + 'goto' instruction was transformed info 'call' + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile. if not null, then function mode. + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + snippet mode: ranges to decompile. function mode: list of outlined ranges + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_HAS_OUTLINES in module ida_hexrays: + + calls to outlined code have been inlined + +Documentation on variable MBA2_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable MBA2_PROP_COMPLEX in module ida_hexrays: + + allow propagation of more complex variable definitions + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant (user representation) + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable DECOMP_VOID_MBA in module ida_hexrays: + + return empty mba object (to be used with gen_microcode) + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + Motorola SREC (S-record) + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X Mach-O. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable idbattr_info_t.name in module ida_ida: + + human-readable name + +Documentation on variable idbattr_info_t.offset in module ida_ida: + + field position: offset within a structure (IDI_STRUCFLD) altval or supval index + (IDI_NODEVAL) hashval name (IDI_NODEVAL+IDI_HASH) + +Documentation on variable idbattr_info_t.width in module ida_ida: + + field width in bytes + +Documentation on variable idbattr_info_t.bitmask in module ida_ida: + + mask for bitfields (0-not bitfield) + +Documentation on variable idbattr_info_t.tag in module ida_ida: + + tag of node value (if IDI_NODEVAL is set) + +Documentation on variable idbattr_info_t.vmap in module ida_ida: + + array value=>name (terminated by empty element) + +Documentation on variable idbattr_info_t.individual_node in module ida_ida: + + individual node name (nullptr - use default) + +Documentation on variable idbattr_info_t.maxsize in module ida_ida: + + max bytes reserved for storage in netnode + +Documentation on variable IDI_STRUCFLD in module ida_ida: + + structure field (opposite to IDI_NODEVAL) + +Documentation on variable IDI_SCALAR in module ida_ida: + + scalar value (default) + +Documentation on variable IDI_CSTR in module ida_ida: + + string + +Documentation on variable IDI_QSTRING in module ida_ida: + + qstring + +Documentation on variable IDI_BYTEARRAY in module ida_ida: + + byte array: binary representation + +Documentation on variable IDI_EA_HEX in module ida_ida: + + default representation: hex or "BADADDR" + +Documentation on variable IDI_DEC in module ida_ida: + + show as decimal + +Documentation on variable IDI_HEX in module ida_ida: + + show as hexadecimal + +Documentation on variable IDI_INC in module ida_ida: + + stored value is incremented (scalars only) + +Documentation on variable IDI_MAP_VAL in module ida_ida: + + apply ea2node() to value + +Documentation on variable IDI_HASH in module ida_ida: + + hashed node field, hash name in offset + +Documentation on variable IDI_HLPSTRUC in module ida_ida: + + call helper for pointer to structure + +Documentation on variable IDI_READONLY in module ida_ida: + + read-only field (cannot be modified) + +Documentation on variable IDI_BITMAP in module ida_ida: + + bitmap field: interpret bitmask as bit number + +Documentation on variable IDI_ONOFF in module ida_ida: + + show boolean as on/off (not true/false) + +Documentation on variable IDI_NOMERGE in module ida_ida: + + field should not be merged as part of INF + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable debugger_t.version in module ida_idd: + + Expected kernel version, should be IDD_INTERFACE_VERSION + +Documentation on variable debugger_t.name in module ida_idd: + + Short debugger name like win32 or linux. + +Documentation on variable debugger_t.id in module ida_idd: + + one of Debugger API module id + +Documentation on variable debugger_t.processor in module ida_idd: + + Required processor name. Used for instant debugging to load the correct + processor module + +Documentation on variable debugger_t.flags2 in module ida_idd: + + Debugger module features + +Documentation on variable debugger_t.default_regclasses in module ida_idd: + + Mask of default printed register classes. + +Documentation on variable debugger_t.memory_page_size in module ida_idd: + + Size of a memory page. Usually 4K. + +Documentation on variable debugger_t.bpt_size in module ida_idd: + + Size of the software breakpoint instruction in bytes. + +Documentation on variable debugger_t.filetype in module ida_idd: + + Input file type for the instant debugger. This value will be used after + attaching to a new process. + +Documentation on variable debugger_t.resume_modes in module ida_idd: + + Resume modes + +Documentation on variable debugger_t.ev_init_debugger in module ida_idd: + + Initialize debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_term_debugger in module ida_idd: + + Terminate debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_get_processes in module ida_idd: + + Return information about the running processes. This event is generated in the + main thread. Available if DBG_HAS_GET_PROCESSES is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_start_process in module ida_idd: + + Start an executable to debug. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_CRC, DRC_FAILED, DRC_NETERR, DRC_NOFILE + +Documentation on variable debugger_t.ev_attach_process in module ida_idd: + + Attach to an existing running process. event_id should be equal to -1 if not + attaching to a crashed process. This event is generated in debthread. Available + if DBG_HAS_ATTACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_detach_process in module ida_idd: + + Detach from the debugged process. May be generated while the process is running + or suspended. Must detach from the process in any case. The kernel will + repeatedly call get_debug_event() until PROCESS_DETACHED is received. In this + mode, all other events will be automatically handled and process will be + resumed. This event is generated from debthread. Available if + DBG_HAS_DETACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debapp_attrs in module ida_idd: + + Retrieve process- and debugger-specific runtime attributes. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_rebase_if_required_to in module ida_idd: + + Rebase database if the debugged program has been rebased by the system. This + event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_request_pause in module ida_idd: + + Prepare to pause the process. Normally the next get_debug_event() will pause the + process If the process is sleeping, then the pause will not occur until the + process wakes up. If the debugger module does not react to this event, then it + will be impossible to pause the program. This event is generated in debthread. + Available if DBG_HAS_REQUEST_PAUSE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_exit_process in module ida_idd: + + Stop the process. May be generated while the process is running or suspended. + Must terminate the process in any case. The kernel will repeatedly call + get_debug_event() until PROCESS_EXITED is received. In this mode, all other + events will be automatically handled and process will be resumed. This event is + generated in debthread. Must be implemented. + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debug_event in module ida_idd: + + Get a pending debug event and suspend the process. This event will be generated + regularly by IDA. This event is generated in debthread. IMPORTANT: the + BREAKPOINT/EXCEPTION/STEP events must be reported only after reporting other + pending events for a thread. Must be implemented. + + @retval ignored + +Documentation on variable debugger_t.ev_resume in module ida_idd: + + Continue after handling the event. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_set_exception_info in module ida_idd: + + Set exception handling. This event is generated in debthread or the main thread. + Available if DBG_HAS_SET_EXCEPTION_INFO is set + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_suspended in module ida_idd: + + This event will be generated by the kernel each time it has suspended the + debugger process and refreshed the database. The debugger module may add + information to the database if it wants. + + The reason for introducing this event is that when an event line LOAD_DLL + happens, the database does not reflect the memory state yet and therefore we + can't add information about the dll into the database in the get_debug_event() + event. Only when the kernel has adjusted the database we can do it. Example: for + imported PE DLLs we will add the exported event names to the database. + + This event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_thread_suspend in module ida_idd: + + Suspend a running thread Available if DBG_HAS_THREAD_SUSPEND is set + +Documentation on variable debugger_t.ev_thread_continue in module ida_idd: + + Resume a suspended thread Available if DBG_HAS_THREAD_CONTINUE is set + +Documentation on variable debugger_t.ev_set_resume_mode in module ida_idd: + + Specify resume action Available if DBG_HAS_SET_RESUME_MODE is set + +Documentation on variable debugger_t.ev_read_registers in module ida_idd: + + Read thread registers. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_write_register in module ida_idd: + + Write one thread register. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_thread_get_sreg_base in module ida_idd: + + Get information about the base of a segment register. Currently used by the IBM + PC module to resolve references like fs:0. This event is generated in debthread. + Available if DBG_HAS_THREAD_GET_SREG_BASE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_memory_info in module ida_idd: + + Get information on the memory ranges. The debugger module fills 'ranges'. The + returned vector must be sorted. This event is generated in debthread. Must be + implemented. + + @retval DRC_OK: new memory layout is returned + @retval DRC_FAILED,DRC_NETERR,DRC_NOPROC,DRC_NOCHG,DRC_IDBSEG + +Documentation on variable debugger_t.ev_read_memory in module ida_idd: + + Read process memory. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NOPROC + +Documentation on variable debugger_t.ev_write_memory in module ida_idd: + + Write process memory. This event is generated in debthread. + + @retval DRC_OK,DRC_FAILED,DRC_NOPROC + +Documentation on variable debugger_t.ev_check_bpt in module ida_idd: + + Is it possible to set breakpoint? This event is generated in debthread or in the + main thread if debthread is not running yet. It is generated to verify hardware + breakpoints. Available if DBG_HAS_CHECK_BPT is set + + @return: DRC_OK, DRC_NONE + +Documentation on variable debugger_t.ev_update_bpts in module ida_idd: + + Add/del breakpoints. bpts array contains nadd bpts to add, followed by ndel bpts + to del. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_update_lowcnds in module ida_idd: + + Update low-level (server side) breakpoint conditions. This event is generated in + debthread. + + @return: DRC_OK, DRC_NETERR + +Documentation on variable debugger_t.ev_open_file in module ida_idd: + + @retval (int): handle + @retval -1: error + +Documentation on variable debugger_t.ev_close_file in module ida_idd: + + @return: ignored + +Documentation on variable debugger_t.ev_read_file in module ida_idd: + + @retval number: of read bytes + +Documentation on variable debugger_t.ev_write_file in module ida_idd: + + @retval number: of written bytes + +Documentation on variable debugger_t.ev_map_address in module ida_idd: + + Map process address. The debugger module may ignore this event. This event is + generated in debthread. IDA will generate this event only if DBG_HAS_MAP_ADDRESS + is set. + + @return: DRC_NONE, DRC_OK see MAPPED + +Documentation on variable debugger_t.ev_get_debmod_extensions in module ida_idd: + + Get pointer to debugger specific events. This event returns a pointer to a + structure that holds pointers to debugger module specific events. For + information on the structure layout, please check the corresponding debugger + module. Most debugger modules return nullptr because they do not have any + extensions. Available extensions may be generated from plugins. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK see EXT + +Documentation on variable debugger_t.ev_update_call_stack in module ida_idd: + + Calculate the call stack trace for the given thread. This event is generated + when the process is suspended and should fill the 'trace' object with the + information about the current call stack. If this event returns DRC_NONE, IDA + will try to invoke a processor-specific mechanism (see + processor_t::ev_update_call_stack). If the current processor module does not + implement stack tracing, then IDA will fall back to a generic algorithm (based + on the frame pointer chain) to calculate the trace. This event is ideal if the + debugging targets manage stack frames in a peculiar way, requiring special + analysis. This event is generated in the main thread. Available if + DBG_HAS_UPDATE_CALL_STACK is set + + @retval DRC_NONE: false or not implemented + @return: DRC_OK success + +Documentation on variable debugger_t.ev_appcall in module ida_idd: + + Call application function. This event calls a function from the debugged + application. This event is generated in debthread Available if HAS_APPCALL is + set + + @retval DRC_NONE + @retval DRC_OK,see: BLOB_EA + +Documentation on variable debugger_t.ev_cleanup_appcall in module ida_idd: + + Cleanup after appcall(). The debugger module must keep the stack blob in the + memory until this event is generated. It will be generated by the kernel for + each successful appcall(). There is an exception: if APPCALL_MANUAL, IDA may not + call cleanup_appcall. If the user selects to terminate a manual appcall, then + cleanup_appcall will be generated. Otherwise, the debugger module should + terminate the appcall when the generated event returns. This event is generated + in debthread. Available if HAS_APPCALL is set + + @retval DRC_EVENTS: success, there are pending events + @retval DRC_OK: success + @retval DRC_FAILED: failed + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_eval_lowcnd in module ida_idd: + + Evaluate a low level breakpoint condition at 'ea'. Other evaluation errors are + displayed in a dialog box. This call is used by IDA when the process has already + been temporarily suspended for some reason and IDA has to decide whether the + process should be resumed or definitely suspended because of a breakpoint with a + low level condition. This event is generated in debthread. + + @retval DRC_OK: condition is satisfied + @retval DRC_FAILED: not satisfied + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_send_ioctl in module ida_idd: + + Perform a debugger-specific event. This event is generated in debthread + + @retval DRC_... + +Documentation on variable debugger_t.ev_dbg_enable_trace in module ida_idd: + + Enable/Disable tracing. The kernel will generated this event if the debugger + plugin set DBG_FLAG_TRACER_MODULE. TRACE_FLAGS can be a set of #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE. This event is generated in the main + thread. + + @return: DRC_OK, DRC_FAILED, DRC_NONE + +Documentation on variable debugger_t.ev_is_tracing_enabled in module ida_idd: + + Is tracing enabled? The kernel will generated this event if the debugger plugin + set DBG_FLAG_TRACER_MODULE. TRACE_BIT can be one of the following: #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE + + @retval DRC_OK: bit is set + @retval DRC_NONE: bit is not set or not implemented + +Documentation on variable debugger_t.ev_rexec in module ida_idd: + + Execute a command on the remote computer. Available if DBG_HAS_REXEC is set + + @return: (int) exit code + +Documentation on variable debugger_t.ev_get_srcinfo_path in module ida_idd: + + Get the path to a file containing source debug info for the given module. This + allows srcinfo providers to call into the debugger when looking for debug info. + It is useful in certain cases like the iOS debugger, which is a remote debugger + but the remote debugserver does not provide dwarf info. So, we allow the + debugger client to decide where to look for debug info locally. + + @return: DRC_NONE, DRC_OK result stored in PATH + +Documentation on variable debugger_t.ev_bin_search in module ida_idd: + + Search for a binary pattern in the program. + + @return: DRC_OK EA contains the binary pattern address + @retval DRC_FAILED: not found + @retval DRC_NONE: not implemented + @retval DRC_NETERR,DRC_ERROR + +Documentation on variable debugger_t.registers in module ida_idd: + + Array of registers. Use regs() to access it. + +Documentation on variable debugger_t.nregs in module ida_idd: + + Number of registers. + +Documentation on variable debugger_t.regclasses in module ida_idd: + + Array of register class names. + +Documentation on variable debugger_t.bpt_bytes in module ida_idd: + + A software breakpoint instruction. + +Documentation on variable DEBUGGER_ID_X86_IA32_WIN32_USER in module ida_idd: + + Userland win32 processes (win32 debugging APIs) + +Documentation on variable DEBUGGER_ID_X86_IA32_LINUX_USER in module ida_idd: + + Userland linux processes (ptrace()) + +Documentation on variable DEBUGGER_ID_X86_IA32_MACOSX_USER in module ida_idd: + + Userland MAC OS X processes. + +Documentation on variable DEBUGGER_ID_ARM_IPHONE_USER in module ida_idd: + + iPhone 1.x + +Documentation on variable DEBUGGER_ID_X86_IA32_BOCHS in module ida_idd: + + BochsDbg.exe 32. + +Documentation on variable DEBUGGER_ID_6811_EMULATOR in module ida_idd: + + MC6812 emulator (beta) + +Documentation on variable DEBUGGER_ID_GDB_USER in module ida_idd: + + GDB remote. + +Documentation on variable DEBUGGER_ID_WINDBG in module ida_idd: + + WinDBG using Microsoft Debug engine. + +Documentation on variable DEBUGGER_ID_X86_DOSBOX_EMULATOR in module ida_idd: + + Dosbox MS-DOS emulator. + +Documentation on variable DEBUGGER_ID_ARM_LINUX_USER in module ida_idd: + + Userland arm linux. + +Documentation on variable DEBUGGER_ID_TRACE_REPLAYER in module ida_idd: + + Fake debugger to replay recorded traces. + +Documentation on variable DEBUGGER_ID_X86_PIN_TRACER in module ida_idd: + + PIN Tracer module. + +Documentation on variable DEBUGGER_ID_DALVIK_USER in module ida_idd: + + Dalvik. + +Documentation on variable DEBUGGER_ID_XNU_USER in module ida_idd: + + XNU Kernel. + +Documentation on variable DEBUGGER_ID_ARM_MACOS_USER in module ida_idd: + + Userland arm MAC OS. + +Documentation on variable DBG_FLAG_REMOTE in module ida_idd: + + Remote debugger (requires remote host name unless DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_NOHOST in module ida_idd: + + Remote debugger with does not require network params (host/port/pass). (a unique + device connected to the machine) + +Documentation on variable DBG_FLAG_FAKE_ATTACH in module ida_idd: + + PROCESS_ATTACHED is a fake event and does not suspend the execution + +Documentation on variable DBG_FLAG_HWDATBPT_ONE in module ida_idd: + + Hardware data breakpoints are one byte size by default + +Documentation on variable DBG_FLAG_CAN_CONT_BPT in module ida_idd: + + Debugger knows to continue from a bpt. This flag also means that the debugger + module hides breakpoints from ida upon read_memory + +Documentation on variable DBG_FLAG_NEEDPORT in module ida_idd: + + Remote debugger requires port number (to be used with DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_DONT_DISTURB in module ida_idd: + + Debugger can handle only get_debug_event(), request_pause(), exit_process() when + the debugged process is running. The kernel may also call service functions + (file I/O, map_address, etc) + +Documentation on variable DBG_FLAG_SAFE in module ida_idd: + + The debugger is safe (probably because it just emulates the application without + really running it) + +Documentation on variable DBG_FLAG_CLEAN_EXIT in module ida_idd: + + IDA must suspend the application and remove all breakpoints before terminating + the application. Usually this is not required because the application memory + disappears upon termination. + +Documentation on variable DBG_FLAG_USE_SREGS in module ida_idd: + + Take segment register values into account (non flat memory) + +Documentation on variable DBG_FLAG_NOSTARTDIR in module ida_idd: + + Debugger module doesn't use startup directory. + +Documentation on variable DBG_FLAG_NOPARAMETERS in module ida_idd: + + Debugger module doesn't use commandline parameters. + +Documentation on variable DBG_FLAG_NOPASSWORD in module ida_idd: + + Remote debugger doesn't use password. + +Documentation on variable DBG_FLAG_CONNSTRING in module ida_idd: + + Display "Connection string" instead of "Hostname" and hide the "Port" field. + +Documentation on variable DBG_FLAG_SMALLBLKS in module ida_idd: + + If set, IDA uses 256-byte blocks for caching memory contents. Otherwise, + 1024-byte blocks are used + +Documentation on variable DBG_FLAG_MANMEMINFO in module ida_idd: + + If set, manual memory region manipulation commands will be available. Use this + bit for debugger modules that cannot return memory layout information + +Documentation on variable DBG_FLAG_EXITSHOTOK in module ida_idd: + + IDA may take a memory snapshot at PROCESS_EXITED event. + +Documentation on variable DBG_FLAG_VIRTHREADS in module ida_idd: + + Thread IDs may be shuffled after each debug event. (to be used for virtual + threads that represent cpus for windbg kmode) + +Documentation on variable DBG_FLAG_LOWCNDS in module ida_idd: + + Low level breakpoint conditions are supported. + +Documentation on variable DBG_FLAG_DEBTHREAD in module ida_idd: + + Supports creation of a separate thread in ida for the debugger (the debthread). + Most debugger functions will be called from debthread (exceptions are marked + below) The debugger module may directly call only THREAD_SAFE functions. To call + other functions please use execute_sync(). The debthread significantly increases + debugging speed, especially if debug events occur frequently. + +Documentation on variable DBG_FLAG_DEBUG_DLL in module ida_idd: + + Can debug standalone DLLs. For example, Bochs debugger can debug any snippet of + code + +Documentation on variable DBG_FLAG_FAKE_MEMORY in module ida_idd: + + get_memory_info()/read_memory()/write_memory() work with the idb. (there is no + real process to read from, as for the replayer module) the kernel will not call + these functions if this flag is set. however, third party plugins may call them, + they must be implemented. + +Documentation on variable DBG_FLAG_ANYSIZE_HWBPT in module ida_idd: + + The debugger supports arbitrary size hardware breakpoints. + +Documentation on variable DBG_FLAG_TRACER_MODULE in module ida_idd: + + The module is a tracer, not a full featured debugger module. + +Documentation on variable DBG_FLAG_PREFER_SWBPTS in module ida_idd: + + Prefer to use software breakpoints. + +Documentation on variable DBG_FLAG_LAZY_WATCHPTS in module ida_idd: + + Watchpoints are triggered before the offending instruction is executed. The + debugger must temporarily disable the watchpoint and single-step before + resuming. + +Documentation on variable DBG_FLAG_FAST_STEP in module ida_idd: + + Do not refresh memory layout info after single stepping. + +Documentation on variable DBG_HAS_GET_PROCESSES in module ida_idd: + + supports ev_get_processes + +Documentation on variable DBG_HAS_ATTACH_PROCESS in module ida_idd: + + supports ev_attach_process + +Documentation on variable DBG_HAS_DETACH_PROCESS in module ida_idd: + + supports ev_detach_process + +Documentation on variable DBG_HAS_REQUEST_PAUSE in module ida_idd: + + supports ev_request_pause + +Documentation on variable DBG_HAS_SET_EXCEPTION_INFO in module ida_idd: + + supports ev_set_exception_info + +Documentation on variable DBG_HAS_THREAD_SUSPEND in module ida_idd: + + supports ev_thread_suspend + +Documentation on variable DBG_HAS_THREAD_CONTINUE in module ida_idd: + + supports ev_thread_continue + +Documentation on variable DBG_HAS_SET_RESUME_MODE in module ida_idd: + + supports ev_set_resume_mode. Cannot be set inside the + debugger_t::init_debugger() + +Documentation on variable DBG_HAS_THREAD_GET_SREG_BASE in module ida_idd: + + supports ev_thread_get_sreg_base + +Documentation on variable DBG_HAS_CHECK_BPT in module ida_idd: + + supports ev_check_bpt + +Documentation on variable DBG_HAS_OPEN_FILE in module ida_idd: + + supports ev_open_file, ev_close_file, ev_read_file, ev_write_file + +Documentation on variable DBG_HAS_UPDATE_CALL_STACK in module ida_idd: + + supports ev_update_call_stack + +Documentation on variable DBG_HAS_APPCALL in module ida_idd: + + supports ev_appcall, ev_cleanup_appcall + +Documentation on variable DBG_HAS_REXEC in module ida_idd: + + supports ev_rexec + +Documentation on variable DBG_HAS_MAP_ADDRESS in module ida_idd: + + supports ev_map_address. Avoid using this bit, especially together with + DBG_FLAG_DEBTHREAD because it may cause big slow downs + +Documentation on variable DBG_RESMOD_STEP_INTO in module ida_idd: + + RESMOD_INTO is available + +Documentation on variable DBG_RESMOD_STEP_OVER in module ida_idd: + + RESMOD_OVER is available + +Documentation on variable DBG_RESMOD_STEP_OUT in module ida_idd: + + RESMOD_OUT is available + +Documentation on variable DBG_RESMOD_STEP_SRCINTO in module ida_idd: + + RESMOD_SRCINTO is available + +Documentation on variable DBG_RESMOD_STEP_SRCOVER in module ida_idd: + + RESMOD_SRCOVER is available + +Documentation on variable DBG_RESMOD_STEP_SRCOUT in module ida_idd: + + RESMOD_SRCOUT is available + +Documentation on variable DBG_RESMOD_STEP_USER in module ida_idd: + + RESMOD_USER is available + +Documentation on variable DBG_RESMOD_STEP_HANDLE in module ida_idd: + + RESMOD_HANDLE is available + +Documentation on variable DBG_PROC_IS_DLL in module ida_idd: + + database contains a dll (not exe) + +Documentation on variable DBG_PROC_IS_GUI in module ida_idd: + + using gui version of ida + +Documentation on variable DBG_PROC_32BIT in module ida_idd: + + application is 32-bit + +Documentation on variable DBG_PROC_64BIT in module ida_idd: + + application is 64-bit + +Documentation on variable DBG_NO_TRACE in module ida_idd: + + do not trace the application (mac/linux) + +Documentation on variable DBG_HIDE_WINDOW in module ida_idd: + + application should be hidden on startup (windows) + +Documentation on variable DBG_SUSPENDED in module ida_idd: + + application should be suspended on startup (mac) + +Documentation on variable BPT_OK in module ida_idd: + + breakpoint can be set + +Documentation on variable BPT_INTERNAL_ERR in module ida_idd: + + interr occurred when verifying breakpoint + +Documentation on variable BPT_BAD_TYPE in module ida_idd: + + bpt type is not supported + +Documentation on variable BPT_BAD_ALIGN in module ida_idd: + + alignment is invalid + +Documentation on variable BPT_BAD_ADDR in module ida_idd: + + ea is invalid + +Documentation on variable BPT_BAD_LEN in module ida_idd: + + bpt len is invalid + +Documentation on variable BPT_TOO_MANY in module ida_idd: + + reached max number of supported breakpoints + +Documentation on variable BPT_READ_ERROR in module ida_idd: + + failed to read memory at bpt ea + +Documentation on variable BPT_WRITE_ERROR in module ida_idd: + + failed to write memory at bpt ea + +Documentation on variable BPT_SKIP in module ida_idd: + + update_bpts(): do not process bpt + +Documentation on variable BPT_PAGE_OK in module ida_idd: + + update_bpts(): ok, added a page bpt + +Documentation on variable APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run. debugger_t::cleanup_appcall will not be + generated by ida! + +Documentation on variable APPCALL_DEBEV in module ida_idd: + + Return debug event information. + +Documentation on variable APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout. If timed out, errbuf will contain "timeout". See + SET_APPCALL_TIMEOUT and GET_APPCALL_TIMEOUT + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_ENSURE_SEP in module ida_kernwin: + + make sure there is a separator before the action + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CH2_LAZY_LOADED in module ida_kernwin: + + The chooser is lazy-loaded; it receives the callback do_lazy_load_dir() (only + meaningful when CH_HAS_DIRTREE is set) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name. If a chooser column has this flag set and implements + chooser_base_t::get_ea(), rows background colors will be automatically set to + match the navigator's "Library function", "Lumina function" and "External + symbol" colors + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_stdact_desc_t.version in module ida_kernwin: + + to support the backward compatibility + +Documentation on variable chooser_stdact_desc_t.label in module ida_kernwin: + + see action_desc_t + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: + "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom labels of the standard actions. Used to replace labels for these + actions. + An empty name means that the default name will be used. + @note: Availability of these actions is determined by the CH_CAN_... flags. The + label, icon and other action attributes can be overwritten in the action + description returned by get_stdact_descs() + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable ADF_CHECKABLE in module ida_kernwin: + + action is checkable + +Documentation on variable ADF_CHECKED in module ida_kernwin: + + starts in a checked state (requires ADF_CHECKABLE) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable PMF_PUSH_MODE_MASK in module ida_lumina: + + Conflict resolution mode. + +Documentation on variable AMDF_UPGRADE in module ida_lumina: + + apply kvps that seem to be of higher "quality" than what's currently in the IDB + +Documentation on variable AMDF_FORCE in module ida_lumina: + + apply kvps regardless of what's currently in the IDB, possibly removing some + attributes currently present (e.g., name, or prototype could be lost) + +Documentation on variable MERGE_KIND_NETNODE in module ida_merge: + + netnode (no merging, to be used in idbunits) + +Documentation on variable MERGE_KIND_AUTOQ in module ida_merge: + + auto queues + +Documentation on variable MERGE_KIND_INF in module ida_merge: + + merge the inf variable (global settings) + +Documentation on variable MERGE_KIND_ENCODINGS in module ida_merge: + + merge encodings + +Documentation on variable MERGE_KIND_ENCODINGS2 in module ida_merge: + + merge default encodings + +Documentation on variable MERGE_KIND_SCRIPTS2 in module ida_merge: + + merge scripts common info + +Documentation on variable MERGE_KIND_SCRIPTS in module ida_merge: + + merge scripts + +Documentation on variable MERGE_KIND_CUSTDATA in module ida_merge: + + merge custom data type and formats + +Documentation on variable MERGE_KIND_ENUMS in module ida_merge: + + merge enums + +Documentation on variable MERGE_KIND_STRUCTS in module ida_merge: + + merge structs (globally: add/delete structs entirely) + +Documentation on variable MERGE_KIND_TILS in module ida_merge: + + merge type libraries + +Documentation on variable MERGE_KIND_TINFO in module ida_merge: + + merge tinfo + +Documentation on variable MERGE_KIND_STRMEM in module ida_merge: + + merge struct members + +Documentation on variable MERGE_KIND_UDTMEM in module ida_merge: + + merge UDT members (local types) + +Documentation on variable MERGE_KIND_GHSTRCMT in module ida_merge: + + merge ghost structure comment + +Documentation on variable MERGE_KIND_STRMEMCMT in module ida_merge: + + merge member comments for ghost struc + +Documentation on variable MERGE_KIND_SELECTORS in module ida_merge: + + merge selectors + +Documentation on variable MERGE_KIND_STT in module ida_merge: + + merge flag storage types + +Documentation on variable MERGE_KIND_SEGMENTS in module ida_merge: + + merge segments + +Documentation on variable MERGE_KIND_SEGGRPS in module ida_merge: + + merge segment groups + +Documentation on variable MERGE_KIND_SEGREGS in module ida_merge: + + merge segment registers + +Documentation on variable MERGE_KIND_ORPHANS in module ida_merge: + + merge orphan bytes + +Documentation on variable MERGE_KIND_BYTEVAL in module ida_merge: + + merge byte values + +Documentation on variable MERGE_KIND_FIXUPS in module ida_merge: + + merge fixups + +Documentation on variable MERGE_KIND_MAPPING in module ida_merge: + + merge manual memory mapping + +Documentation on variable MERGE_KIND_EXPORTS in module ida_merge: + + merge exports + +Documentation on variable MERGE_KIND_IMPORTS in module ida_merge: + + merge imports + +Documentation on variable MERGE_KIND_PATCHES in module ida_merge: + + merge patched bytes + +Documentation on variable MERGE_KIND_FLAGS in module ida_merge: + + merge flags64_t + +Documentation on variable MERGE_KIND_EXTRACMT in module ida_merge: + + merge extra next or prev lines + +Documentation on variable MERGE_KIND_AFLAGS_EA in module ida_merge: + + merge aflags for mapped EA + +Documentation on variable MERGE_KIND_IGNOREMICRO in module ida_merge: + + IM ("$ ignore micro") flags. + +Documentation on variable MERGE_KIND_HIDDENRANGES in module ida_merge: + + merge hidden ranges + +Documentation on variable MERGE_KIND_SOURCEFILES in module ida_merge: + + merge source files ranges + +Documentation on variable MERGE_KIND_FUNC in module ida_merge: + + merge func info + +Documentation on variable MERGE_KIND_FRAMEMGR in module ida_merge: + + merge frames (globally: add/delete frames entirely) + +Documentation on variable MERGE_KIND_FRAME in module ida_merge: + + merge function frame info (frame members) + +Documentation on variable MERGE_KIND_STKPNTS in module ida_merge: + + merge SP change points + +Documentation on variable MERGE_KIND_FLOWS in module ida_merge: + + merge flows + +Documentation on variable MERGE_KIND_CREFS in module ida_merge: + + merge crefs + +Documentation on variable MERGE_KIND_DREFS in module ida_merge: + + merge drefs + +Documentation on variable MERGE_KIND_BPTS in module ida_merge: + + merge breakpoints + +Documentation on variable MERGE_KIND_WATCHPOINTS in module ida_merge: + + merge watchpoints + +Documentation on variable MERGE_KIND_BOOKMARKS in module ida_merge: + + merge bookmarks + +Documentation on variable MERGE_KIND_TRYBLKS in module ida_merge: + + merge try blocks + +Documentation on variable MERGE_KIND_DIRTREE in module ida_merge: + + merge std dirtrees + +Documentation on variable MERGE_KIND_VFTABLES in module ida_merge: + + merge vftables + +Documentation on variable MERGE_KIND_SIGNATURES in module ida_merge: + + signatures + +Documentation on variable MERGE_KIND_PROBLEMS in module ida_merge: + + problems + +Documentation on variable MERGE_KIND_UI in module ida_merge: + + UI. + +Documentation on variable MERGE_KIND_NOTEPAD in module ida_merge: + + notepad + +Documentation on variable MERGE_KIND_LOADER in module ida_merge: + + loader data + +Documentation on variable MERGE_KIND_DEBUGGER in module ida_merge: + + debugger data + +Documentation on variable MERGE_KIND_DBG_MEMREGS in module ida_merge: + + manual memory regions (debugger) + +Documentation on variable MERGE_KIND_LAST in module ida_merge: + + last predefined merge handler type. please note that there can be more merge + handler types, registered by plugins and processor modules. + +Documentation on variable MERGE_KIND_END in module ida_merge: + + insert to the end of handler list, valid for + merge_handler_params_t::insert_after + +Documentation on variable merge_data_t.dbctx_ids in module ida_merge: + + local, remote, base ids + +Documentation on variable merge_data_t.nbases in module ida_merge: + + number of database participating in merge process, maybe 2 or 3 + +Documentation on variable merge_data_t.ev_handlers in module ida_merge: + + event handlers + +Documentation on variable merge_handler_params_t.kind in module ida_merge: + + merge handler kind merge_kind_t + +Documentation on variable merge_handler_params_t.insert_after in module ida_merge: + + desired position inside 'handlers' merge_kind_t + +Documentation on variable MH_LISTEN in module ida_merge: + + merge handler will receive merge events + +Documentation on variable MH_TERSE in module ida_merge: + + do not display equal lines in the merge results table + +Documentation on variable MH_UI_NODETAILS in module ida_merge: + + ida will not show the diffpos details + +Documentation on variable MH_UI_COMPLEX in module ida_merge: + + diffpos details won't be displayed in the diffpos chooser + +Documentation on variable MH_UI_DP_NOLINEDIFF in module ida_merge: + + Detail pane: do not show differences inside the line. + +Documentation on variable MH_UI_DP_SHORTNAME in module ida_merge: + + Detail pane: use the first part of a complex diffpos name as the tree node name. + +Documentation on variable MH_UI_INDENT in module ida_merge: + + preserve indent for diffpos name in diffpos chooser + +Documentation on variable MH_UI_SPLITNAME in module ida_merge: + + ida will split the diffpos name by 7-bit ASCII char to create chooser columns + +Documentation on variable MH_UI_CHAR_MASK in module ida_merge: + + 7-bit ASCII split character + +Documentation on variable MH_UI_COMMANAME in module ida_merge: + + ida will split the diffpos name by ',' to create chooser columns + +Documentation on variable MH_UI_COLONNAME in module ida_merge: + + ida will split the diffpos name by ':' to create chooser columns + +Documentation on variable moddata_diff_helper_t.module_name in module ida_merge: + + will be used as a prefix for field desc + +Documentation on variable moddata_diff_helper_t.netnode_name in module ida_merge: + + name of netnode with module data attributes + +Documentation on variable moddata_diff_helper_t.fields in module ida_merge: + + module data attribute descriptions + +Documentation on variable moddata_diff_helper_t.nfields in module ida_merge: + + number of descriptions + +Documentation on variable moddata_diff_helper_t.additional_mh_flags in module ida_merge: + + additional merge handler flags + +Documentation on variable NDS_IS_BOOL in module ida_merge: + + boolean value + +Documentation on variable NDS_IS_EA in module ida_merge: + + EA value. + +Documentation on variable NDS_IS_RELATIVE in module ida_merge: + + value is relative to index (stored as delta) + +Documentation on variable NDS_IS_STR in module ida_merge: + + string value + +Documentation on variable NDS_SUPVAL in module ida_merge: + + stored as netnode supvals (not scalar) + +Documentation on variable NDS_BLOB in module ida_merge: + + stored as netnode blobs + +Documentation on variable NDS_EV_RANGE in module ida_merge: + + enable default handling of mev_modified_ranges, mev_deleting_segm + +Documentation on variable NDS_EV_FUNC in module ida_merge: + + enable default handling of mev_added_func/mev_deleting_func + +Documentation on variable NDS_MAP_IDX in module ida_merge: + + apply ea2node() to index (==NETMAP_IDX) + +Documentation on variable NDS_MAP_VAL in module ida_merge: + + apply ea2node() to value. Along with NDS_INC it gives effect of NETMAP_VAL, + examples: altval_ea : NDS_MAP_IDX charval : NDS_VAL8 charval_ea: + NDS_MAP_IDX|NDS_VAL8 eaget : NDS_MAP_IDX|NDS_MAP_VAL|NDS_INC + +Documentation on variable NDS_VAL8 in module ida_merge: + + use 8-bit values (==NETMAP_V8) + +Documentation on variable NDS_INC in module ida_merge: + + stored value is incremented (scalars only) + +Documentation on variable merge_node_info_t.name in module ida_merge: + + name of the array (label) + +Documentation on variable merge_node_info_t.tag in module ida_merge: + + a tag used to access values in the netnode + +Documentation on variable merge_node_info_t.nds_flags in module ida_merge: + + node value attributes (a combination of nds_flags_t) + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They are used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable REFINFO_SELFREF in module ida_nalt: + + the self-based reference; refinfo_t::base will be forced to the reference + address + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_CHECK in module ida_name: + + Fail if the name contains invalid characters. + +Documentation on variable SN_NOCHECK in module ida_name: + + Replace invalid characters silently. If this bit is set, all invalid chars (not + in NameChars or MangleChars) will be replaced by '_' List of valid characters is + defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v8.2. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Default key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SEARCH_USESEL in module ida_search: + + query the UI for a possible current selection to limit the search to + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_INVAL in module ida_segment: + + Invalid argument (delta/target does not fit the address space) + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable SNAP_ALL_SEG in module ida_segment: + + Take a snapshot of all segments. + +Documentation on variable SNAP_LOAD_SEG in module ida_segment: + + Take a snapshot of loader segments. + +Documentation on variable SNAP_CUR_SEG in module ida_segment: + + Take a snapshot of current segment. + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/pydoc_injections_pro3.txt b/pydoc_injections_pro3.txt new file mode 100644 index 0000000..70367e8 --- /dev/null +++ b/pydoc_injections_pro3.txt @@ -0,0 +1,114752 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + +Help on function auto_apply_tail in module ida_auto: + +auto_apply_tail(*args) -> 'void' + auto_apply_tail(tail_ea, parent_ea) + Plan to apply the tail_ea chunk to the parent + + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. + +Help on function auto_apply_type in module ida_auto: + +auto_apply_type(*args) -> 'void' + auto_apply_type(caller, callee) + Plan to apply the callee's type to the calling point. + + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) + +Help on function auto_cancel in module ida_auto: + +auto_cancel(*args) -> 'void' + auto_cancel(ea1, ea2) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + +Help on class auto_display_t in module ida_auto: + +class auto_display_t(builtins.object) + | Proxy of C++ auto_display_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> auto_display_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_auto_display_t(...) + | delete_auto_display_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | state + | state + | + | thisown + | The membership flag + | + | type + | type + +Help on function auto_get in module ida_auto: + +auto_get(*args) -> 'ea_t' + auto_get(type, lowEA, highEA) -> ea_t + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. + + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) + +Help on function auto_is_ok in module ida_auto: + +auto_is_ok(*args) -> 'bool' + auto_is_ok() -> bool + Are all queues empty? (i.e. has autoanalysis finished?). + +Help on function auto_make_code in module ida_auto: + +auto_make_code(*args) -> 'void' + auto_make_code(ea) + Plan to make code. + + @param ea: (C++: ea_t) + +Help on function auto_make_proc in module ida_auto: + +auto_make_proc(*args) -> 'void' + auto_make_proc(ea) + Plan to make code&function. + + @param ea: (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) -> 'bool' + auto_make_step(ea1, ea2) -> bool + Analyze one address in the specified range and return true. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. + +Help on function auto_mark in module ida_auto: + +auto_mark(*args) -> 'void' + auto_mark(ea, type) + Put single address into a queue. Queues keep addresses sorted. + + @param ea: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_mark_range in module ida_auto: + +auto_mark_range(*args) -> 'void' + auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_recreate_insn in module ida_auto: + +auto_recreate_insn(*args) -> 'int' + auto_recreate_insn(ea) -> int + Try to create instruction + + @param ea: (C++: ea_t) linear address of callee + @return: the length of the instruction or 0 + +Help on function auto_unmark in module ida_auto: + +auto_unmark(*args) -> 'void' + auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_wait in module ida_auto: + +auto_wait(*args) -> 'bool' + auto_wait() -> bool + Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) + +Help on function auto_wait_range in module ida_auto: + +auto_wait_range(*args) -> 'ssize_t' + auto_wait_range(ea1, ea2) -> ssize_t + Process everything in the specified range and return true. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) + +Help on function enable_auto in module ida_auto: + +enable_auto(*args) -> 'bool' + enable_auto(enable) -> bool + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO + + @param enable: (C++: bool) + @return: old state + +Help on function get_auto_display in module ida_auto: + +get_auto_display(*args) -> 'bool' + get_auto_display(auto_display) -> bool + Get structure which holds the autoanalysis indicator contents. + + @param auto_display: (C++: auto_display_t *) + +Help on function get_auto_state in module ida_auto: + +get_auto_state(*args) -> 'atype_t' + get_auto_state() -> atype_t + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). + +Help on function is_auto_enabled in module ida_auto: + +is_auto_enabled(*args) -> 'bool' + is_auto_enabled() -> bool + Get autoanalyzer state. + +Help on function may_create_stkvars in module ida_auto: + +may_create_stkvars(*args) -> 'bool' + may_create_stkvars() -> bool + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. + +Help on function may_trace_sp in module ida_auto: + +may_trace_sp(*args) -> 'bool' + may_trace_sp() -> bool + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. + +Help on function peek_auto_queue in module ida_auto: + +peek_auto_queue(*args) -> 'ea_t' + peek_auto_queue(low_ea, type) -> ea_t + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. + + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR + +Help on function plan_and_wait in module ida_auto: + +plan_and_wait(*args) -> 'int' + plan_and_wait(ea1, ea2, final_pass=True) -> int + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) + +Help on function plan_ea in module ida_auto: + +plan_ea(*args) -> 'void' + plan_ea(ea) + Plan to perform reanalysis. + + @param ea: (C++: ea_t) + +Help on function plan_range in module ida_auto: + +plan_range(*args) -> 'void' + plan_range(sEA, eEA) + Plan to perform reanalysis. + + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) + +Help on function reanalyze_callers in module ida_auto: + +reanalyze_callers(*args) -> 'void' + reanalyze_callers(ea, noret) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. + + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. + +Help on function revert_ida_decisions in module ida_auto: + +revert_ida_decisions(*args) -> 'void' + revert_ida_decisions(ea1, ea2) + Delete all analysis info that IDA generated for for the given range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + +Help on function set_auto_state in module ida_auto: + +set_auto_state(*args) -> 'atype_t' + set_auto_state(new_state) -> atype_t + Set current state of autoanalyzer. + + @param new_state: (C++: atype_t) new state of autoanalyzer + @return: previous state + +Help on function set_ida_state in module ida_auto: + +set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t + Change IDA status indicator value + + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status + +Help on function show_addr in module ida_auto: + +show_addr(*args) -> 'void' + show_addr(ea) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". + + @param ea: (C++: ea_t) - linear address to display + +Help on function show_auto in module ida_auto: + +show_auto(*args) -> 'void' + show_auto(ea, type=AU_NONE) + Change autoanalysis indicator value. + + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" + +Help on class bitrange_t in module ida_bitrange: + +class bitrange_t(builtins.object) + | Proxy of C++ bitrange_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_bitrange_t(...) + | delete_bitrange_t(self) + | + | apply_mask(self, *args) -> 'bool' + | apply_mask(self, subrange) -> bool + | Apply mask to a bitrange + | + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success + | + | bitoff(self, *args) -> 'uint' + | bitoff(self) -> uint + | Get offset of 1st bit. + | + | bitsize(self, *args) -> 'uint' + | bitsize(self) -> uint + | Get size of the value in bits. + | + | bytesize(self, *args) -> 'uint' + | bytesize(self) -> uint + | Size of the value in bytes. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitrange_t const & + | + | create_union(self, *args) -> 'void' + | create_union(self, r) + | Create union of 2 ranges including the hole between them. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the bitrange empty? + | + | extract(self, *args) -> 'bool' + | extract(self, src, is_mf) -> bool + | + | @param src: void const * + | @param is_mf: bool + | + | has_common(self, *args) -> 'bool' + | has_common(self, r) -> bool + | Does have common bits with another bitrange? + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | init(self, *args) -> 'void' + | init(self, bit_ofs, size_in_bits) + | Initialize offset and size to given values. + | + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) + | + | inject(self, *args) -> 'bool' + | inject(self, dst, src, is_mf) -> bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Intersect two ranges. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | mask64(self, *args) -> 'uint64' + | mask64(self) -> uint64 + | Convert to mask of 64 bits. + | + | reset(self, *args) -> 'void' + | reset(self) + | Make the bitrange empty. + | + | shift_down(self, *args) -> 'void' + | shift_down(self, cnt) + | Shift range down (left) + | + | @param cnt: (C++: uint) + | + | shift_up(self, *args) -> 'void' + | shift_up(self, cnt) + | Shift range up (right) + | + | @param cnt: (C++: uint) + | + | sub(self, *args) -> 'bool' + | sub(self, r) -> bool + | Subtract a bitrange. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" + +Help on function __walk_types_and_formats in module ida_bytes: + +__walk_types_and_formats(formats, type_action, format_action, installing) + # ----------------------------------------------------------------------- + +Help on function add_byte in module ida_bytes: + +add_byte(*args) -> 'void' + add_byte(ea, value) + Add a value to one byte of the program. This function works for wide byte + processors too. + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value + +Help on function add_dword in module ida_bytes: + +add_dword(*args) -> 'void' + add_dword(ea, value) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value + +Help on function add_hidden_range in module ida_bytes: + +add_hidden_range(*args) -> 'bool' + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color + @return: success + +Help on function add_mapping in module ida_bytes: + +add_mapping(*args) -> 'bool' + add_mapping(_from, to, size) -> bool + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. + + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range + @return: success + +Help on function add_qword in module ida_bytes: + +add_qword(*args) -> 'void' + add_qword(ea, value) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value + +Help on function add_word in module ida_bytes: + +add_word(*args) -> 'void' + add_word(ea, value) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value + +Help on function align_flag in module ida_bytes: + +align_flag(*args) -> 'flags64_t' + align_flag() -> flags64_t + Get a flags64_t representing an alignment directive. + +Help on function append_cmt in module ida_bytes: + +append_cmt(*args) -> 'bool' + append_cmt(ea, str, rptble) -> bool + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. + + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? + @return: success + +Help on function attach_custom_data_format in module ida_bytes: + +attach_custom_data_format(*args) -> 'bool' + attach_custom_data_format(dtid, dfid) -> bool + Attach the data format to the data type. + + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type + +Help on function bin_flag in module ida_bytes: + +bin_flag(*args) -> 'flags64_t' + bin_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on function bin_search in module ida_bytes: + +bin_search(*args) -> 'ea_t' + bin_search(start_ea, end_ea, data, flags) -> ea_t + Search for a set of bytes in the program + + @param start_ea: linear address, start of range to search + @param end_ea: linear address, end of range to search (exclusive) + @param data: the prepared data to search for (see parse_binpat_str()) + @param flags: combination of BIN_SEARCH_* flags + @return: the address of a match, or ida_idaapi.BADADDR if not found + bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) -> 'size_t *' + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. + +Help on function byte_flag in module ida_bytes: + +byte_flag(*args) -> 'flags64_t' + byte_flag() -> flags64_t + Get a flags64_t representing a byte. + +Help on function bytesize in module ida_bytes: + +bytesize(*args) -> 'int' + bytesize(ea) -> int + Get number of bytes required to store a byte at the given address. + + @param ea: (C++: ea_t) + +Help on function calc_def_align in module ida_bytes: + +calc_def_align(*args) -> 'int' + calc_def_align(ea, mina, maxa) -> int + Calculate the default alignment exponent. + + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. + +Help on function calc_dflags in module ida_bytes: + +calc_dflags(*args) -> 'flags64_t' + calc_dflags(f, force) -> flags64_t + + @param f: flags64_t + @param force: bool + +Help on function calc_max_align in module ida_bytes: + +calc_max_align(*args) -> 'int' + calc_max_align(endea) -> int + Calculate the maximal possible alignment exponent. + + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range + +Help on function calc_max_item_end in module ida_bytes: + +calc_max_item_end(*args) -> 'ea_t' + calc_max_item_end(ea, how=15) -> ea_t + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. + + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. + +Help on function calc_min_align in module ida_bytes: + +calc_min_align(*args) -> 'int' + calc_min_align(length) -> int + Calculate the minimal possible alignment exponent. + + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range + +Help on function can_define_item in module ida_bytes: + +can_define_item(*args) -> 'bool' + can_define_item(ea, length, flags) -> bool + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. + + @param ea: (C++: ea_t) start of the range for the new item + @param length: (C++: asize_t) length of the new item in bytes + @param flags: (C++: flags64_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') + +Help on function change_storage_type in module ida_bytes: + +change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t + Change flag storage type for address range. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code + +Help on function char_flag in module ida_bytes: + +char_flag(*args) -> 'flags64_t' + char_flag() -> flags64_t + see Bits: instruction operand types + +Help on function chunk_size in module ida_bytes: + +chunk_size(*args) -> 'asize_t' + chunk_size(ea) -> asize_t + Get size of the contiguous address block containing 'ea'. + + @param ea: (C++: ea_t) + @return: 0 if 'ea' doesn't belong to the program. + +Help on function chunk_start in module ida_bytes: + +chunk_start(*args) -> 'ea_t' + chunk_start(ea) -> ea_t + Get start of the contiguous address block containing 'ea'. + + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. + +Help on function clr_lzero in module ida_bytes: + +clr_lzero(*args) -> 'bool' + clr_lzero(ea, n) -> bool + Clear toggle lzero bit. This function reset the display of leading zeroes for + the specified operand to the default. If the default is not to display leading + zeroes, leading zeroes will not be displayed, as vice versa. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function clr_op_type in module ida_bytes: + +clr_op_type(*args) -> 'bool' + clr_op_type(ea, n) -> bool + Remove operand representation information. (set operand representation to be + 'undefined') + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function code_flag in module ida_bytes: + +code_flag(*args) -> 'flags64_t' + code_flag() -> flags64_t + FF_CODE + +Help on class compiled_binpat_t in module ida_bytes: + +class compiled_binpat_t(builtins.object) + | Proxy of C++ compiled_binpat_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_compiled_binpat_t(...) + | delete_compiled_binpat_t(self) + | + | all_bytes_defined(self, *args) -> 'bool' + | all_bytes_defined(self) -> bool + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | bytes + | + | encidx + | encidx + | + | mask + | mask + | + | strlits + | strlits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class compiled_binpat_vec_t in module ida_bytes: + +class compiled_binpat_vec_t(builtins.object) + | Proxy of C++ qvector< compiled_binpat_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __getitem__(self, *args) -> 'compiled_binpat_t const &' + | __getitem__(self, i) -> compiled_binpat_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_vec_t + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: compiled_binpat_t const & + | + | __swig_destroy__ = delete_compiled_binpat_vec_t(...) + | delete_compiled_binpat_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: compiled_binpat_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | at(self, *args) -> 'compiled_binpat_t const &' + | at(self, _idx) -> compiled_binpat_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | begin(self) -> compiled_binpat_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | end(self) -> compiled_binpat_t + | + | erase(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | erase(self, it) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | + | erase(self, first, last) -> compiled_binpat_t + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator + | + | extract(self, *args) -> 'compiled_binpat_t *' + | extract(self) -> compiled_binpat_t + | + | find(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | find(self, x) -> compiled_binpat_t + | + | @param x: compiled_binpat_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=compiled_binpat_t()) + | + | @param x: compiled_binpat_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: compiled_binpat_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | insert(self, it, x) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'compiled_binpat_t &' + | push_back(self, x) + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< compiled_binpat_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function create_16bit_data in module ida_bytes: + +create_16bit_data(*args) -> 'bool' + create_16bit_data(ea, length) -> bool + Convert to 16-bit quantity (take the byte size into account) + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + +Help on function create_32bit_data in module ida_bytes: + +create_32bit_data(*args) -> 'bool' + create_32bit_data(ea, length) -> bool + Convert to 32-bit quantity (take the byte size into account) + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + +Help on function create_align in module ida_bytes: + +create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool + Create an alignment item. + + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success + +Help on function create_byte in module ida_bytes: + +create_byte(*args) -> 'bool' + create_byte(ea, length, force=False) -> bool + Convert to byte. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_custdata in module ida_bytes: + +create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool + Convert to custom data type. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) + +Help on function create_data in module ida_bytes: + +create_data(*args) -> 'bool' + create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success + +Help on function create_double in module ida_bytes: + +create_double(*args) -> 'bool' + create_double(ea, length, force=False) -> bool + Convert to double. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_dword in module ida_bytes: + +create_dword(*args) -> 'bool' + create_dword(ea, length, force=False) -> bool + Convert to dword. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_float in module ida_bytes: + +create_float(*args) -> 'bool' + create_float(ea, length, force=False) -> bool + Convert to float. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_oword in module ida_bytes: + +create_oword(*args) -> 'bool' + create_oword(ea, length, force=False) -> bool + Convert to octaword/xmm word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_packed_real in module ida_bytes: + +create_packed_real(*args) -> 'bool' + create_packed_real(ea, length, force=False) -> bool + Convert to packed decimal real. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_qword in module ida_bytes: + +create_qword(*args) -> 'bool' + create_qword(ea, length, force=False) -> bool + Convert to quadword. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_strlit in module ida_bytes: + +create_strlit(*args) -> 'bool' + create_strlit(start, len, strtype) -> bool + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case + + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes + @return: success + +Help on function create_struct in module ida_bytes: + +create_struct(*args) -> 'bool' + create_struct(ea, length, tid, force=False) -> bool + Convert to struct. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) + +Help on function create_tbyte in module ida_bytes: + +create_tbyte(*args) -> 'bool' + create_tbyte(ea, length, force=False) -> bool + Convert to tbyte. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_word in module ida_bytes: + +create_word(*args) -> 'bool' + create_word(ea, length, force=False) -> bool + Convert to word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_yword in module ida_bytes: + +create_yword(*args) -> 'bool' + create_yword(ea, length, force=False) -> bool + Convert to ymm word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_zword in module ida_bytes: + +create_zword(*args) -> 'bool' + create_zword(ea, length, force=False) -> bool + Convert to zmm word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function cust_flag in module ida_bytes: + +cust_flag(*args) -> 'flags64_t' + cust_flag() -> flags64_t + Get a flags64_t representing custom type data. + +Help on function custfmt_flag in module ida_bytes: + +custfmt_flag(*args) -> 'flags64_t' + custfmt_flag() -> flags64_t + see Bits: instruction operand types + +Help on class data_format_t in module ida_bytes: + +class data_format_t(builtins.object) + | Proxy of C++ data_format_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | Initialize self. See help(type(self)) for accurate signature. + | + | __real__init__ = __init__(self, *args) + | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_data_format_t(...) + | delete_data_format_t(self) + | + | _data_format_t__get_id = __get_id(self, *args) -> 'int' + | __get_id(self) -> int + | + | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool + | Should this format be shown in UI menus + | + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hotkey + | hotkey + | + | id + | __get_id(self) -> int + | + | menu_name + | menu_name + | + | name + | name + | + | props + | props + | + | text_width + | text_width + | + | thisown + | The membership flag + | + | value_size + | value_size + +Help on class data_type_t in module ida_bytes: + +class data_type_t(builtins.object) + | Proxy of C++ data_type_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | Initialize self. See help(type(self)) for accurate signature. + | + | __real__init__ = __init__(self, *args) + | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_data_type_t(...) + | delete_data_type_t(self) + | + | _data_type_t__get_id = __get_id(self, *args) -> 'int' + | __get_id(self) -> int + | + | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool + | Should this type be shown in UI menus + | + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | asm_keyword + | asm_keyword + | + | hotkey + | hotkey + | + | id + | __get_id(self) -> int + | + | menu_name + | menu_name + | + | name + | name + | + | props + | props + | + | thisown + | The membership flag + | + | value_size + | value_size + +Help on function dec_flag in module ida_bytes: + +dec_flag(*args) -> 'flags64_t' + dec_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on function del_hidden_range in module ida_bytes: + +del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool + Delete hidden range. + + @param ea: (C++: ea_t) any address in the hidden range + @return: success + +Help on function del_items in module ida_bytes: + +del_items(*args) -> 'bool' + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false + +Help on function del_mapping in module ida_bytes: + +del_mapping(*args) -> 'void' + del_mapping(ea) + Delete memory mapping range. + + @param ea: (C++: ea_t) any address in the mapped range + +Help on function del_value in module ida_bytes: + +del_value(*args) -> 'void' + del_value(ea) + Delete byte value from flags. The corresponding byte becomes uninitialized. + + @param ea: (C++: ea_t) + +Help on function detach_custom_data_format in module ida_bytes: + +detach_custom_data_format(*args) -> 'bool' + detach_custom_data_format(dtid, dfid) -> bool + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. + + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type + +Help on function disable_flags in module ida_bytes: + +disable_flags(*args) -> 'error_t' + disable_flags(start_ea, end_ea) -> error_t + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @return: 0 if ok, otherwise return error code + +Help on function double_flag in module ida_bytes: + +double_flag(*args) -> 'flags64_t' + double_flag() -> flags64_t + Get a flags64_t representing a double. + +Help on function dword_flag in module ida_bytes: + +dword_flag(*args) -> 'flags64_t' + dword_flag() -> flags64_t + Get a flags64_t representing a double word. + +Help on function enable_flags in module ida_bytes: + +enable_flags(*args) -> 'error_t' + enable_flags(start_ea, end_ea, stt) -> error_t + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: 0 if ok, otherwise an error code + +Help on function enum_flag in module ida_bytes: + +enum_flag(*args) -> 'flags64_t' + enum_flag() -> flags64_t + see Bits: instruction operand types + +Help on function equal_bytes in module ida_bytes: + +equal_bytes(*args) -> 'bool' + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool + Compare 'len' bytes of the program starting from 'ea' with 'image'. + + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal + +Help on function f_has_cmt in module ida_bytes: + +f_has_cmt(*args) -> 'bool' + f_has_cmt(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * + +Help on function f_has_dummy_name in module ida_bytes: + +f_has_dummy_name(*args) -> 'bool' + f_has_dummy_name(f, arg2) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param f: (C++: flags64_t) + @param arg2: void * + +Help on function f_has_extra_cmts in module ida_bytes: + +f_has_extra_cmts(*args) -> 'bool' + f_has_extra_cmts(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * + +Help on function f_has_name in module ida_bytes: + +f_has_name(*args) -> 'bool' + f_has_name(f, arg2) -> bool + Does the current byte have non-trivial (non-dummy) name? + + @param f: (C++: flags64_t) + @param arg2: void * + +Help on function f_has_user_name in module ida_bytes: + +f_has_user_name(*args) -> 'bool' + f_has_user_name(F, arg2) -> bool + Does the current byte have user-specified name? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_has_xref in module ida_bytes: + +f_has_xref(*args) -> 'bool' + f_has_xref(f, arg2) -> bool + Does the current byte have cross-references to it? + + @param f: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_align in module ida_bytes: + +f_is_align(*args) -> 'bool' + f_is_align(F, arg2) -> bool + See is_align() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_byte in module ida_bytes: + +f_is_byte(*args) -> 'bool' + f_is_byte(F, arg2) -> bool + See is_byte() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_code in module ida_bytes: + +f_is_code(*args) -> 'bool' + f_is_code(F, arg2) -> bool + Does flag denote start of an instruction? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_custom in module ida_bytes: + +f_is_custom(*args) -> 'bool' + f_is_custom(F, arg2) -> bool + See is_custom() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_data in module ida_bytes: + +f_is_data(*args) -> 'bool' + f_is_data(F, arg2) -> bool + Does flag denote start of data? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_double in module ida_bytes: + +f_is_double(*args) -> 'bool' + f_is_double(F, arg2) -> bool + See is_double() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_dword in module ida_bytes: + +f_is_dword(*args) -> 'bool' + f_is_dword(F, arg2) -> bool + See is_dword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_float in module ida_bytes: + +f_is_float(*args) -> 'bool' + f_is_float(F, arg2) -> bool + See is_float() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_head in module ida_bytes: + +f_is_head(*args) -> 'bool' + f_is_head(F, arg2) -> bool + Does flag denote start of instruction OR data? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_not_tail in module ida_bytes: + +f_is_not_tail(*args) -> 'bool' + f_is_not_tail(F, arg2) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_oword in module ida_bytes: + +f_is_oword(*args) -> 'bool' + f_is_oword(F, arg2) -> bool + See is_oword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_pack_real in module ida_bytes: + +f_is_pack_real(*args) -> 'bool' + f_is_pack_real(F, arg2) -> bool + See is_pack_real() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_qword in module ida_bytes: + +f_is_qword(*args) -> 'bool' + f_is_qword(F, arg2) -> bool + See is_qword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_strlit in module ida_bytes: + +f_is_strlit(*args) -> 'bool' + f_is_strlit(F, arg2) -> bool + See is_strlit() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_struct in module ida_bytes: + +f_is_struct(*args) -> 'bool' + f_is_struct(F, arg2) -> bool + See is_struct() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_tail in module ida_bytes: + +f_is_tail(*args) -> 'bool' + f_is_tail(F, arg2) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_tbyte in module ida_bytes: + +f_is_tbyte(*args) -> 'bool' + f_is_tbyte(F, arg2) -> bool + See is_tbyte() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_word in module ida_bytes: + +f_is_word(*args) -> 'bool' + f_is_word(F, arg2) -> bool + See is_word() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_yword in module ida_bytes: + +f_is_yword(*args) -> 'bool' + f_is_yword(F, arg2) -> bool + See is_yword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function find_byte in module ida_bytes: + +find_byte(*args) -> 'ea_t' + find_byte(sEA, size, value, bin_search_flags) -> ea_t + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 + + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR + +Help on function find_byter in module ida_bytes: + +find_byter(*args) -> 'ea_t' + find_byter(sEA, size, value, bin_search_flags) -> ea_t + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 + + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR + +Help on function find_custom_data_format in module ida_bytes: + +find_custom_data_format(*args) -> 'int' + find_custom_data_format(name) -> int + Get id of a custom data format. + + @param name: (C++: const char *) name of the custom data format + @return: id or -1 + +Help on function find_custom_data_type in module ida_bytes: + +find_custom_data_type(*args) -> 'int' + find_custom_data_type(name) -> int + Get id of a custom data type. + + @param name: (C++: const char *) name of the custom data type + @return: id or -1 + +Help on function find_free_chunk in module ida_bytes: + +find_free_chunk(*args) -> 'ea_t' + find_free_chunk(start, size, alignment) -> ea_t + Search for a hole in the addressing space of the program. + + @param start: (C++: ea_t) Address to start searching from + @param size: (C++: asize_t) Size of the desired empty range + @param alignment: (C++: asize_t) Alignment bitmask, must be a pow2-1. (for example, 0xF would + align the returned range to 16 bytes). + @return: Start of the found empty range or BADADDR + +Help on function float_flag in module ida_bytes: + +float_flag(*args) -> 'flags64_t' + float_flag() -> flags64_t + Get a flags64_t representing a float. + +Help on function flt_flag in module ida_bytes: + +flt_flag(*args) -> 'flags64_t' + flt_flag() -> flags64_t + see Bits: instruction operand types + +Help on function free_chunk in module ida_bytes: + +free_chunk(*args) -> 'ea_t' + free_chunk(bottom, size, step) -> ea_t + + @param bottom: ea_t + @param size: asize_t + @param step: int32 + +Help on function get_16bit in module ida_bytes: + +get_16bit(*args) -> 'uint32' + get_16bit(ea) -> uint32 + Get 16bits of the program at 'ea'. + + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() + +Help on function get_32bit in module ida_bytes: + +get_32bit(*args) -> 'uint32' + get_32bit(ea) -> uint32 + Get not more than 32bits of the program at 'ea'. + + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); + +Help on function get_64bit in module ida_bytes: + +get_64bit(*args) -> 'uint64' + get_64bit(ea) -> uint64 + Get not more than 64bits of the program at 'ea'. + + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); + +Help on function get_8bit in module ida_bytes: + +get_8bit(*args) -> 'PyObject *' + get_8bit(ea, v, nbit) -> PyObject * + + @param ea: ea_t + @param v: uint32 + @param nbit: int + +Help on function get_byte in module ida_bytes: + +get_byte(*args) -> 'uchar' + get_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_bytes in module ida_bytes: + +get_bytes(*args) -> 'PyObject *' + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None + Get the specified number of bytes of the program. + + @param ea: program address + @param size: number of bytes to return + @param gmb_flags: int + @return: the bytes (as a str), or None in case of failure + +Help on function get_bytes_and_mask in module ida_bytes: + +get_bytes_and_mask(*args) -> 'PyObject *' + get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * + Get the specified number of bytes of the program, and a bitmask + specifying what bytes are defined and what bytes are not. + + @param ea: program address + @param size: number of bytes to return + @param gmb_flags: int + @return: a tuple (bytes, mask), or None in case of failure. + Both 'bytes' and 'mask' are 'str' instances. + +Help on function get_cmt in module ida_bytes: + +get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str + Get an indented comment. + + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 + +Help on function get_custom_data_format in module ida_bytes: + +get_custom_data_format(*args) -> 'data_format_t const *' + get_custom_data_format(dfid) -> data_format_t + Get definition of a registered custom data format. + + @param dfid: (C++: int) data format id + @return: data format definition or nullptr + +Help on function get_custom_data_formats in module ida_bytes: + +get_custom_data_formats(*args) -> 'int' + get_custom_data_formats(out, dtid) -> int + Get list of attached custom data formats for the specified data type. + + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id + @return: number of returned custom data formats. if error, returns -1 + +Help on function get_custom_data_type in module ida_bytes: + +get_custom_data_type(*args) -> 'data_type_t const *' + get_custom_data_type(dtid) -> data_type_t + Get definition of a registered custom data type. + + @param dtid: (C++: int) data type id + @return: data type definition or nullptr + +Help on function get_custom_data_types in module ida_bytes: + +get_custom_data_types(*args) -> 'int' + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int + Get list of registered custom data type ids. + + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size + @return: number of custom data types with the specified size limits + +Help on function get_data_elsize in module ida_bytes: + +get_data_elsize(*args) -> 'asize_t' + get_data_elsize(ea, F, ti=None) -> asize_t + Get size of data type specified in flags 'F'. + + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... + +Help on function get_data_value in module ida_bytes: + +get_data_value(*args) -> 'bool' + get_data_value(v, ea, size) -> bool + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) + + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used + @return: success + +Help on function get_db_byte in module ida_bytes: + +get_db_byte(*args) -> 'uchar' + get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) + +Help on function get_default_radix in module ida_bytes: + +get_default_radix(*args) -> 'int' + get_default_radix() -> int + Get default base of number for the current processor. + + @return: 2, 8, 10, 16 + +Help on function get_dword in module ida_bytes: + +get_dword(*args) -> 'uint32' + get_dword(ea) -> uint32 + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_enum_id in module ida_bytes: + +get_enum_id(*args) -> 'uchar *' + get_enum_id(ea, n) -> enum_t + Get enum id of 'enum' operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE + +Help on function get_first_hidden_range in module ida_bytes: + +get_first_hidden_range(*args) -> 'hidden_range_t *' + get_first_hidden_range() -> hidden_range_t + Get pointer to the first hidden range. + + @return: ptr to hidden range or nullptr + +Help on function get_flags in module ida_bytes: + +get_flags(*args) -> 'flags64_t' + get_flags(ea) -> flags64_t + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + + @param ea: (C++: ea_t) + +Help on function get_flags_by_size in module ida_bytes: + +get_flags_by_size(*args) -> 'flags64_t' + get_flags_by_size(size) -> flags64_t + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 + + @param size: (C++: size_t) + +Help on function get_flags_ex in module ida_bytes: + +get_flags_ex(*args) -> 'flags64_t' + get_flags_ex(ea, how) -> flags64_t + Get flags for the specified address, extended form. + + @param ea: (C++: ea_t) + @param how: (C++: int) + +Help on function get_forced_operand in module ida_bytes: + +get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str + Get forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 + +Help on function get_full_data_elsize in module ida_bytes: + +get_full_data_elsize(*args) -> 'asize_t' + get_full_data_elsize(ea, F, ti=None) -> asize_t + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * + +Help on function get_full_flags in module ida_bytes: + +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t + Get flags value for address 'ea'. + + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program + +Help on function get_hidden_range in module ida_bytes: + +get_hidden_range(*args) -> 'hidden_range_t *' + get_hidden_range(ea) -> hidden_range_t + Get pointer to hidden range structure, in: linear address. + + @param ea: (C++: ea_t) any address in the hidden range + +Help on function get_hidden_range_num in module ida_bytes: + +get_hidden_range_num(*args) -> 'int' + get_hidden_range_num(ea) -> int + Get number of a hidden range. + + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) + +Help on function get_hidden_range_qty in module ida_bytes: + +get_hidden_range_qty(*args) -> 'int' + get_hidden_range_qty() -> int + Get number of hidden ranges. + +Help on function get_item_end in module ida_bytes: + +get_item_end(*args) -> 'ea_t' + get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) + +Help on function get_item_flag in module ida_bytes: + +get_item_flag(*args) -> 'flags64_t' + get_item_flag(_from, n, ea, appzero) -> flags64_t + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. + + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. + @return: flags or 0 (if failed) + +Help on function get_item_head in module ida_bytes: + +get_item_head(*args) -> 'ea_t' + get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) + +Help on function get_item_size in module ida_bytes: + +get_item_size(*args) -> 'asize_t' + get_item_size(ea) -> asize_t + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. + + @param ea: (C++: ea_t) + +Help on function get_last_hidden_range in module ida_bytes: + +get_last_hidden_range(*args) -> 'hidden_range_t *' + get_last_hidden_range() -> hidden_range_t + Get pointer to the last hidden range. + + @return: ptr to hidden range or nullptr + +Help on function get_manual_insn in module ida_bytes: + +get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str + Retrieve the user-specified string for the manual instruction. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 + +Help on function get_mapping in module ida_bytes: + +get_mapping(*args) -> 'ea_t *, ea_t *, asize_t *' + get_mapping(n) -> bool + Get memory mapping range by its number. + + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' + +Help on function get_mappings_qty in module ida_bytes: + +get_mappings_qty(*args) -> 'size_t' + get_mappings_qty() -> size_t + Get number of mappings. + +Help on function get_max_strlit_length in module ida_bytes: + +get_max_strlit_length(*args) -> 'size_t' + get_max_strlit_length(ea, strtype, options=0) -> size_t + Determine maximum length of string literal. + + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options + @return: length of the string in octets (octet==8bit) + +Help on function get_next_hidden_range in module ida_bytes: + +get_next_hidden_range(*args) -> 'hidden_range_t *' + get_next_hidden_range(ea) -> hidden_range_t + Get pointer to next hidden range. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist + +Help on function get_octet in module ida_bytes: + +get_octet(*args) -> 'PyObject *' + get_octet(ea, v, nbit) -> (int, int, int, int) + + @param ea: ea_t + @param v: uint64 + @param nbit: int + +Help on function get_octet2 in module ida_bytes: + +get_octet2(*args) -> 'uchar *' + get_octet2(ogen) -> bool + + @param ogen: octet_generator_t * + +Help on function get_opinfo in module ida_bytes: + +get_opinfo(*args) -> 'opinfo_t *' + get_opinfo(buf, ea, n, flags) -> opinfo_t + Get additional information about an operand representation. + + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags64_t) flags of the item + @return: nullptr if no additional representation information + +Help on function get_optype_flags0 in module ida_bytes: + +get_optype_flags0(*args) -> 'flags64_t' + get_optype_flags0(F) -> flags64_t + Get flags for first operand. + + @param F: (C++: flags64_t) + +Help on function get_optype_flags1 in module ida_bytes: + +get_optype_flags1(*args) -> 'flags64_t' + get_optype_flags1(F) -> flags64_t + Get flags for second operand. + + @param F: (C++: flags64_t) + +Help on function get_original_byte in module ida_bytes: + +get_original_byte(*args) -> 'uint64' + get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) + +Help on function get_original_dword in module ida_bytes: + +get_original_dword(*args) -> 'uint64' + get_original_dword(ea) -> uint64 + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_original_qword in module ida_bytes: + +get_original_qword(*args) -> 'uint64' + get_original_qword(ea) -> uint64 + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_original_word in module ida_bytes: + +get_original_word(*args) -> 'uint64' + get_original_word(ea) -> uint64 + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_predef_insn_cmt in module ida_bytes: + +get_predef_insn_cmt(*args) -> 'qstring *' + get_predef_insn_cmt(ins) -> str + Get predefined comment. + + @param ins: (C++: const insn_t &) current instruction information + @return: size of comment or -1 + +Help on function get_prev_hidden_range in module ida_bytes: + +get_prev_hidden_range(*args) -> 'hidden_range_t *' + get_prev_hidden_range(ea) -> hidden_range_t + Get pointer to previous hidden range. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist + +Help on function get_qword in module ida_bytes: + +get_qword(*args) -> 'uint64' + get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_radix in module ida_bytes: + +get_radix(*args) -> 'int' + get_radix(F, n) -> int + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() + + @param F: (C++: flags64_t) flags + @param n: (C++: int) number of operand (0, 1, -1) + @return: 2, 8, 10, 16 + +Help on function get_strlit_contents in module ida_bytes: + +get_strlit_contents(*args) -> 'PyObject *' + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. + It works even if the string has not been created in the database yet. + + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. + + @param ea: linear address of the string + @param py_len: length of the string in bytes (including terminating 0) + @param type: type of the string. Represents both the character encoding, + <u>and</u> the 'type' of string at the given location. + @param flags: combination of STRCONV_..., to perform output conversion. + @return: a bytes-filled str object. + +Help on function get_stroff_path in module ida_bytes: + +get_stroff_path(*args) -> 'int' + get_stroff_path(path, delta, ea, n) -> int + Get struct path of operand. + + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: length of strpath + +Help on function get_wide_byte in module ida_bytes: + +get_wide_byte(*args) -> 'uint64' + get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) + +Help on function get_wide_dword in module ida_bytes: + +get_wide_dword(*args) -> 'uint64' + get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) + +Help on function get_wide_word in module ida_bytes: + +get_wide_word(*args) -> 'uint64' + get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_word in module ida_bytes: + +get_word(*args) -> 'ushort' + get_word(ea) -> ushort + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_zero_ranges in module ida_bytes: + +get_zero_ranges(*args) -> 'bool' + get_zero_ranges(zranges, range) -> bool + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. + + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges + @return: true if the result is a non-empty set + +Help on function getn_hidden_range in module ida_bytes: + +getn_hidden_range(*args) -> 'hidden_range_t *' + getn_hidden_range(n) -> hidden_range_t + Get pointer to hidden range structure, in: number of hidden range. + + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 + +Help on function has_any_name in module ida_bytes: + +has_any_name(*args) -> 'bool' + has_any_name(F) -> bool + Does the current byte have any name? + + @param F: (C++: flags64_t) + +Help on function has_auto_name in module ida_bytes: + +has_auto_name(*args) -> 'bool' + has_auto_name(F) -> bool + Does the current byte have auto-generated (no special prefix) name? + + @param F: (C++: flags64_t) + +Help on function has_cmt in module ida_bytes: + +has_cmt(*args) -> 'bool' + has_cmt(F) -> bool + Does the current byte have an indented comment? + + @param F: (C++: flags64_t) + +Help on function has_dummy_name in module ida_bytes: + +has_dummy_name(*args) -> 'bool' + has_dummy_name(F) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param F: (C++: flags64_t) + +Help on function has_extra_cmts in module ida_bytes: + +has_extra_cmts(*args) -> 'bool' + has_extra_cmts(F) -> bool + Does the current byte have additional anterior or posterior lines? + + @param F: (C++: flags64_t) + +Help on function has_immd in module ida_bytes: + +has_immd(*args) -> 'bool' + has_immd(F) -> bool + Has immediate value? + + @param F: (C++: flags64_t) + +Help on function has_name in module ida_bytes: + +has_name(*args) -> 'bool' + has_name(F) -> bool + Does the current byte have non-trivial (non-dummy) name? + + @param F: (C++: flags64_t) + +Help on function has_user_name in module ida_bytes: + +has_user_name(*args) -> 'bool' + has_user_name(F) -> bool + Does the current byte have user-specified name? + + @param F: (C++: flags64_t) + +Help on function has_value in module ida_bytes: + +has_value(*args) -> 'bool' + has_value(F) -> bool + Do flags contain byte value? + + @param F: (C++: flags64_t) + +Help on function has_xref in module ida_bytes: + +has_xref(*args) -> 'bool' + has_xref(F) -> bool + Does the current byte have cross-references to it? + + @param F: (C++: flags64_t) + +Help on function hex_flag in module ida_bytes: + +hex_flag(*args) -> 'flags64_t' + hex_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on class hidden_range_t in module ida_bytes: + +class hidden_range_t(ida_range.range_t) + | Proxy of C++ hidden_range_t class. + | + | Method resolution order: + | hidden_range_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> hidden_range_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_hidden_range_t(...) + | delete_hidden_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | color + | color + | + | description + | description + | + | footer + | footer + | + | header + | header + | + | thisown + | The membership flag + | + | visible + | visible + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function is_align in module ida_bytes: + +is_align(*args) -> 'bool' + is_align(F) -> bool + FF_ALIGN + + @param F: (C++: flags64_t) + +Help on function is_attached_custom_data_format in module ida_bytes: + +is_attached_custom_data_format(*args) -> 'bool' + is_attached_custom_data_format(dtid, dfid) -> bool + Is the custom data format attached to the custom data type? + + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false + +Help on function is_bnot in module ida_bytes: + +is_bnot(*args) -> 'bool' + is_bnot(ea, F, n) -> bool + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_byte in module ida_bytes: + +is_byte(*args) -> 'bool' + is_byte(F) -> bool + FF_BYTE + + @param F: (C++: flags64_t) + +Help on function is_char in module ida_bytes: + +is_char(*args) -> 'bool' + is_char(F, n) -> bool + is character constant? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_char0 in module ida_bytes: + +is_char0(*args) -> 'bool' + is_char0(F) -> bool + Is the first operand character constant? (example: push 'a') + + @param F: (C++: flags64_t) + +Help on function is_char1 in module ida_bytes: + +is_char1(*args) -> 'bool' + is_char1(F) -> bool + Is the second operand character constant? (example: mov al, 'a') + + @param F: (C++: flags64_t) + +Help on function is_code in module ida_bytes: + +is_code(*args) -> 'bool' + is_code(F) -> bool + Does flag denote start of an instruction? + + @param F: (C++: flags64_t) + +Help on function is_custfmt in module ida_bytes: + +is_custfmt(*args) -> 'bool' + is_custfmt(F, n) -> bool + is custom data format? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_custfmt0 in module ida_bytes: + +is_custfmt0(*args) -> 'bool' + is_custfmt0(F) -> bool + Does the first operand use a custom data representation? + + @param F: (C++: flags64_t) + +Help on function is_custfmt1 in module ida_bytes: + +is_custfmt1(*args) -> 'bool' + is_custfmt1(F) -> bool + Does the second operand use a custom data representation? + + @param F: (C++: flags64_t) + +Help on function is_custom in module ida_bytes: + +is_custom(*args) -> 'bool' + is_custom(F) -> bool + FF_CUSTOM + + @param F: (C++: flags64_t) + +Help on function is_data in module ida_bytes: + +is_data(*args) -> 'bool' + is_data(F) -> bool + Does flag denote start of data? + + @param F: (C++: flags64_t) + +Help on function is_defarg in module ida_bytes: + +is_defarg(*args) -> 'bool' + is_defarg(F, n) -> bool + is defined? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_defarg0 in module ida_bytes: + +is_defarg0(*args) -> 'bool' + is_defarg0(F) -> bool + Is the first operand defined? Initially operand has no defined representation. + + @param F: (C++: flags64_t) + +Help on function is_defarg1 in module ida_bytes: + +is_defarg1(*args) -> 'bool' + is_defarg1(F) -> bool + Is the second operand defined? Initially operand has no defined representation. + + @param F: (C++: flags64_t) + +Help on function is_double in module ida_bytes: + +is_double(*args) -> 'bool' + is_double(F) -> bool + FF_DOUBLE + + @param F: (C++: flags64_t) + +Help on function is_dword in module ida_bytes: + +is_dword(*args) -> 'bool' + is_dword(F) -> bool + FF_DWORD + + @param F: (C++: flags64_t) + +Help on function is_enum in module ida_bytes: + +is_enum(*args) -> 'bool' + is_enum(F, n) -> bool + is enum? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_enum0 in module ida_bytes: + +is_enum0(*args) -> 'bool' + is_enum0(F) -> bool + Is the first operand a symbolic constant (enum member)? + + @param F: (C++: flags64_t) + +Help on function is_enum1 in module ida_bytes: + +is_enum1(*args) -> 'bool' + is_enum1(F) -> bool + Is the second operand a symbolic constant (enum member)? + + @param F: (C++: flags64_t) + +Help on function is_float in module ida_bytes: + +is_float(*args) -> 'bool' + is_float(F) -> bool + FF_FLOAT + + @param F: (C++: flags64_t) + +Help on function is_float0 in module ida_bytes: + +is_float0(*args) -> 'bool' + is_float0(F) -> bool + Is the first operand a floating point number? + + @param F: (C++: flags64_t) + +Help on function is_float1 in module ida_bytes: + +is_float1(*args) -> 'bool' + is_float1(F) -> bool + Is the second operand a floating point number? + + @param F: (C++: flags64_t) + +Help on function is_flow in module ida_bytes: + +is_flow(*args) -> 'bool' + is_flow(F) -> bool + Does the previous instruction exist and pass execution flow to the current byte? + + @param F: (C++: flags64_t) + +Help on function is_fltnum in module ida_bytes: + +is_fltnum(*args) -> 'bool' + is_fltnum(F, n) -> bool + is floating point number? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_forced_operand in module ida_bytes: + +is_forced_operand(*args) -> 'bool' + is_forced_operand(ea, n) -> bool + Is operand manually defined?. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + +Help on function is_func in module ida_bytes: + +is_func(*args) -> 'bool' + is_func(F) -> bool + Is function start? + + @param F: (C++: flags64_t) + +Help on function is_head in module ida_bytes: + +is_head(*args) -> 'bool' + is_head(F) -> bool + Does flag denote start of instruction OR data? + + @param F: (C++: flags64_t) + +Help on function is_invsign in module ida_bytes: + +is_invsign(*args) -> 'bool' + is_invsign(ea, F, n) -> bool + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_loaded in module ida_bytes: + +is_loaded(*args) -> 'bool' + is_loaded(ea) -> bool + Does the specified address have a byte value (is initialized?) + + @param ea: (C++: ea_t) + +Help on function is_lzero in module ida_bytes: + +is_lzero(*args) -> 'bool' + is_lzero(ea, n) -> bool + Display leading zeroes? Display leading zeroes in operands. The global switch + for the leading zeroes is in idainfo::s_genflags Note: the leading zeroes + doesn't work if for the target assembler octal numbers start with 0. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function is_manual in module ida_bytes: + +is_manual(*args) -> 'bool' + is_manual(F, n) -> bool + is forced operand? (use is_forced_operand()) + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_manual_insn in module ida_bytes: + +is_manual_insn(*args) -> 'bool' + is_manual_insn(ea) -> bool + Is the instruction overridden? + + @param ea: (C++: ea_t) linear address of the instruction or data item + +Help on function is_mapped in module ida_bytes: + +is_mapped(*args) -> 'bool' + is_mapped(ea) -> bool + Is the specified address 'ea' present in the program? + + @param ea: (C++: ea_t) + +Help on function is_not_tail in module ida_bytes: + +is_not_tail(*args) -> 'bool' + is_not_tail(F) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + +Help on function is_numop in module ida_bytes: + +is_numop(*args) -> 'bool' + is_numop(F, n) -> bool + is number (bin, oct, dec, hex)? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_numop0 in module ida_bytes: + +is_numop0(*args) -> 'bool' + is_numop0(F) -> bool + Is the first operand a number (i.e. binary, octal, decimal or hex?) + + @param F: (C++: flags64_t) + +Help on function is_numop1 in module ida_bytes: + +is_numop1(*args) -> 'bool' + is_numop1(F) -> bool + Is the second operand a number (i.e. binary, octal, decimal or hex?) + + @param F: (C++: flags64_t) + +Help on function is_off in module ida_bytes: + +is_off(*args) -> 'bool' + is_off(F, n) -> bool + is offset? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_off0 in module ida_bytes: + +is_off0(*args) -> 'bool' + is_off0(F) -> bool + Is the first operand offset? (example: push offset xxx) + + @param F: (C++: flags64_t) + +Help on function is_off1 in module ida_bytes: + +is_off1(*args) -> 'bool' + is_off1(F) -> bool + Is the second operand offset? (example: mov ax, offset xxx) + + @param F: (C++: flags64_t) + +Help on function is_oword in module ida_bytes: + +is_oword(*args) -> 'bool' + is_oword(F) -> bool + FF_OWORD + + @param F: (C++: flags64_t) + +Help on function is_pack_real in module ida_bytes: + +is_pack_real(*args) -> 'bool' + is_pack_real(F) -> bool + FF_PACKREAL + + @param F: (C++: flags64_t) + +Help on function is_qword in module ida_bytes: + +is_qword(*args) -> 'bool' + is_qword(F) -> bool + FF_QWORD + + @param F: (C++: flags64_t) + +Help on function is_same_data_type in module ida_bytes: + +is_same_data_type(*args) -> 'bool' + is_same_data_type(F1, F2) -> bool + Do the given flags specify the same data type? + + @param F1: (C++: flags64_t) + @param F2: (C++: flags64_t) + +Help on function is_seg in module ida_bytes: + +is_seg(*args) -> 'bool' + is_seg(F, n) -> bool + is segment? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_seg0 in module ida_bytes: + +is_seg0(*args) -> 'bool' + is_seg0(F) -> bool + Is the first operand segment selector? (example: push seg seg001) + + @param F: (C++: flags64_t) + +Help on function is_seg1 in module ida_bytes: + +is_seg1(*args) -> 'bool' + is_seg1(F) -> bool + Is the second operand segment selector? (example: mov dx, seg dseg) + + @param F: (C++: flags64_t) + +Help on function is_stkvar in module ida_bytes: + +is_stkvar(*args) -> 'bool' + is_stkvar(F, n) -> bool + is stack variable? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_stkvar0 in module ida_bytes: + +is_stkvar0(*args) -> 'bool' + is_stkvar0(F) -> bool + Is the first operand a stack variable? + + @param F: (C++: flags64_t) + +Help on function is_stkvar1 in module ida_bytes: + +is_stkvar1(*args) -> 'bool' + is_stkvar1(F) -> bool + Is the second operand a stack variable? + + @param F: (C++: flags64_t) + +Help on function is_strlit in module ida_bytes: + +is_strlit(*args) -> 'bool' + is_strlit(F) -> bool + FF_STRLIT + + @param F: (C++: flags64_t) + +Help on function is_stroff in module ida_bytes: + +is_stroff(*args) -> 'bool' + is_stroff(F, n) -> bool + is struct offset? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_stroff0 in module ida_bytes: + +is_stroff0(*args) -> 'bool' + is_stroff0(F) -> bool + Is the first operand an offset within a struct? + + @param F: (C++: flags64_t) + +Help on function is_stroff1 in module ida_bytes: + +is_stroff1(*args) -> 'bool' + is_stroff1(F) -> bool + Is the second operand an offset within a struct? + + @param F: (C++: flags64_t) + +Help on function is_struct in module ida_bytes: + +is_struct(*args) -> 'bool' + is_struct(F) -> bool + FF_STRUCT + + @param F: (C++: flags64_t) + +Help on function is_suspop in module ida_bytes: + +is_suspop(*args) -> 'bool' + is_suspop(ea, F, n) -> bool + is suspicious operand? + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_tail in module ida_bytes: + +is_tail(*args) -> 'bool' + is_tail(F) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + +Help on function is_tbyte in module ida_bytes: + +is_tbyte(*args) -> 'bool' + is_tbyte(F) -> bool + FF_TBYTE + + @param F: (C++: flags64_t) + +Help on function is_unknown in module ida_bytes: + +is_unknown(*args) -> 'bool' + is_unknown(F) -> bool + Does flag denote unexplored byte? + + @param F: (C++: flags64_t) + +Help on function is_varsize_item in module ida_bytes: + +is_varsize_item(*args) -> 'int' + is_varsize_item(ea, F, ti=None, itemsize=None) -> int + Is the item at 'ea' variable size?. + + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) + +Help on function is_word in module ida_bytes: + +is_word(*args) -> 'bool' + is_word(F) -> bool + FF_WORD + + @param F: (C++: flags64_t) + +Help on function is_yword in module ida_bytes: + +is_yword(*args) -> 'bool' + is_yword(F) -> bool + FF_YWORD + + @param F: (C++: flags64_t) + +Help on function is_zword in module ida_bytes: + +is_zword(*args) -> 'bool' + is_zword(F) -> bool + FF_ZWORD + + @param F: (C++: flags64_t) + +Help on function leading_zero_important in module ida_bytes: + +leading_zero_important(*args) -> 'bool' + leading_zero_important(ea, n) -> bool + Check if leading zeroes are important. + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function nbits in module ida_bytes: + +nbits(*args) -> 'int' + nbits(ea) -> int + Get number of bits in a byte at the given address. + + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, + otherwise the result depends on the segment type + +Help on function next_addr in module ida_bytes: + +next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t + Get next address in the program (i.e. next address which has flags). + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function next_chunk in module ida_bytes: + +next_chunk(*args) -> 'ea_t' + next_chunk(ea) -> ea_t + Get the first address of next contiguous chunk in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. + +Help on function next_head in module ida_bytes: + +next_head(*args) -> 'ea_t' + next_head(ea, maxea) -> ea_t + Get start of next defined item. + + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. + +Help on function next_inited in module ida_bytes: + +next_inited(*args) -> 'ea_t' + next_inited(ea, maxea) -> ea_t + Find the next initialized address. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) + +Help on function next_not_tail in module ida_bytes: + +next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t + Get address of next non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function next_that in module ida_bytes: + +next_that(*args) -> 'ea_t' + next_that(ea, maxea, testf) -> ea_t + Find next address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). + + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address + @return: the found address or BADADDR. + +Help on function next_unknown in module ida_bytes: + +next_unknown(*args) -> 'ea_t' + next_unknown(ea, maxea) -> ea_t + Similar to next_that(), but will find the next address that is unexplored. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) + +Help on function next_visea in module ida_bytes: + +next_visea(*args) -> 'ea_t' + next_visea(ea) -> ea_t + Get next visible address. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function num_flag in module ida_bytes: + +num_flag(*args) -> 'flags64_t' + num_flag() -> flags64_t + Get number of default base (bin, oct, dec, hex) + +Help on function oct_flag in module ida_bytes: + +oct_flag(*args) -> 'flags64_t' + oct_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on class octet_generator_t in module ida_bytes: + +class octet_generator_t(builtins.object) + | Proxy of C++ octet_generator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> octet_generator_t + | + | @param _ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_octet_generator_t(...) + | delete_octet_generator_t(self) + | + | invert_byte_order(self, *args) -> 'void' + | invert_byte_order(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | avail_bits + | avail_bits + | + | ea + | ea + | + | high_byte_first + | high_byte_first + | + | thisown + | The membership flag + | + | value + | value + +Help on function off_flag in module ida_bytes: + +off_flag(*args) -> 'flags64_t' + off_flag() -> flags64_t + see Bits: instruction operand types + +Help on function op_adds_xrefs in module ida_bytes: + +op_adds_xrefs(*args) -> 'bool' + op_adds_xrefs(F, n) -> bool + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function op_bin in module ida_bytes: + +op_bin(*args) -> 'bool' + op_bin(ea, n) -> bool + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_chr in module ida_bytes: + +op_chr(*args) -> 'bool' + op_chr(ea, n) -> bool + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_custfmt in module ida_bytes: + +op_custfmt(*args) -> 'bool' + op_custfmt(ea, n, fid) -> bool + Set custom data format for operand (fid-custom data format id) + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) + +Help on function op_dec in module ida_bytes: + +op_dec(*args) -> 'bool' + op_dec(ea, n) -> bool + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_enum in module ida_bytes: + +op_enum(*args) -> 'bool' + op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success + +Help on function op_flt in module ida_bytes: + +op_flt(*args) -> 'bool' + op_flt(ea, n) -> bool + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_hex in module ida_bytes: + +op_hex(*args) -> 'bool' + op_hex(ea, n) -> bool + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_num in module ida_bytes: + +op_num(*args) -> 'bool' + op_num(ea, n) -> bool + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_oct in module ida_bytes: + +op_oct(*args) -> 'bool' + op_oct(ea, n) -> bool + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_seg in module ida_bytes: + +op_seg(*args) -> 'bool' + op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stkvar in module ida_bytes: + +op_stkvar(*args) -> 'bool' + op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stroff in module ida_bytes: + +op_stroff(*args) -> 'bool' + op_stroff(insn, n, path, path_len, delta) -> bool + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data + + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. + @return: success + +Help on function oword_flag in module ida_bytes: + +oword_flag(*args) -> 'flags64_t' + oword_flag() -> flags64_t + Get a flags64_t representing a octaword. + +Help on function packreal_flag in module ida_bytes: + +packreal_flag(*args) -> 'flags64_t' + packreal_flag() -> flags64_t + Get a flags64_t representing a packed decimal real. + +Help on function parse_binpat_str in module ida_bytes: + +parse_binpat_str(*args) -> 'qstring *' + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: + - numbers (numeric base is determined by 'radix') + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes + - "..." string constants + - 'x' single-character constants + - ? variable bytes + + Note that string constants are surrounded with double quotes. + + Here are a few examples (assuming base 16): + CD 21 - bytes 0xCD, 0x21 + 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) + "Hello", 0 - the null terminated string "Hello" + L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 + B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 + + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". + +Help on function patch_byte in module ida_bytes: + +patch_byte(*args) -> 'bool' + patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_bytes in module ida_bytes: + +patch_bytes(*args) -> 'void' + patch_bytes(ea, buf) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes + +Help on function patch_dword in module ida_bytes: + +patch_dword(*args) -> 'bool' + patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_qword in module ida_bytes: + +patch_qword(*args) -> 'bool' + patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_word in module ida_bytes: + +patch_word(*args) -> 'bool' + patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function prev_addr in module ida_bytes: + +prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t + Get previous address in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function prev_chunk in module ida_bytes: + +prev_chunk(*args) -> 'ea_t' + prev_chunk(ea) -> ea_t + Get the last address of previous contiguous chunk in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. + +Help on function prev_head in module ida_bytes: + +prev_head(*args) -> 'ea_t' + prev_head(ea, minea) -> ea_t + Get start of previous defined item. + + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. + +Help on function prev_inited in module ida_bytes: + +prev_inited(*args) -> 'ea_t' + prev_inited(ea, minea) -> ea_t + Find the previous initialized address. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) + +Help on function prev_not_tail in module ida_bytes: + +prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t + Get address of previous non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function prev_that in module ida_bytes: + +prev_that(*args) -> 'ea_t' + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). + + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. + +Help on function prev_unknown in module ida_bytes: + +prev_unknown(*args) -> 'ea_t' + prev_unknown(ea, minea) -> ea_t + Similar to prev_that(), but will find the previous address that is unexplored. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) + +Help on function prev_visea in module ida_bytes: + +prev_visea(*args) -> 'ea_t' + prev_visea(ea) -> ea_t + Get previous visible address. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function print_strlit_type in module ida_bytes: + +print_strlit_type(*args) -> 'PyObject *' + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. + + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants + @return: length of generated text + +Help on function put_byte in module ida_bytes: + +put_byte(*args) -> 'bool' + put_byte(ea, x) -> bool + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value + @return: true if the database has been modified + +Help on function put_bytes in module ida_bytes: + +put_bytes(*args) -> 'void' + put_bytes(ea, buf) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes + +Help on function put_dword in module ida_bytes: + +put_dword(*args) -> 'void' + put_dword(ea, x) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. + +Help on function put_qword in module ida_bytes: + +put_qword(*args) -> 'void' + put_qword(ea, x) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value + +Help on function put_word in module ida_bytes: + +put_word(*args) -> 'void' + put_word(ea, x) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function qword_flag in module ida_bytes: + +qword_flag(*args) -> 'flags64_t' + qword_flag() -> flags64_t + Get a flags64_t representing a quad word. + +Help on function register_custom_data_format in module ida_bytes: + +register_custom_data_format(*args) -> 'int' + register_custom_data_format(py_df) -> int + Registers a custom data format with a given data type. + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register + > 0 data format id + +Help on function register_custom_data_type in module ida_bytes: + +register_custom_data_type(*args) -> 'int' + register_custom_data_type(py_dt) -> int + Registers a custom data type. + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register + > 0 data type id + +Help on function register_data_types_and_formats in module ida_bytes: + +register_data_types_and_formats(formats) + Registers multiple data types and formats at once. + To register one type/format at a time use register_custom_data_type/register_custom_data_format + + It employs a special table of types and formats described below: + + The 'formats' is a list of tuples. If a tuple has one element then it is the format to be registered with dtid=0 + If the tuple has more than one element, then tuple[0] is the data type and tuple[1:] are the data formats. For example: + many_formats = [ + (pascal_data_type(), pascal_data_format()), + (simplevm_data_type(), simplevm_data_format()), + (makedword_data_format(),), + (simplevm_data_format(),) + ] + The first two tuples describe data types and their associated formats. + The last two tuples describe two data formats to be used with built-in data types. + The data format may be attached to several data types. The id of the + data format is stored in the first data_format_t object. For example: + assert many_formats[1][1] != -1 + assert many_formats[2][0] != -1 + assert many_formats[3][0] == -1 + +Help on function revert_byte in module ida_bytes: + +revert_byte(*args) -> 'bool' + revert_byte(ea) -> bool + Revert patched byte + @retval true: byte was patched before and reverted now + + @param ea: (C++: ea_t) + +Help on function seg_flag in module ida_bytes: + +seg_flag(*args) -> 'flags64_t' + seg_flag() -> flags64_t + see Bits: instruction operand types + +Help on function set_cmt in module ida_bytes: + +set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool + Set an indented comment. + + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success + +Help on function set_forced_operand in module ida_bytes: + +set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool + Set forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success + +Help on function set_immd in module ida_bytes: + +set_immd(*args) -> 'bool' + set_immd(ea) -> bool + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set + + @param ea: (C++: ea_t) + +Help on function set_lzero in module ida_bytes: + +set_lzero(*args) -> 'bool' + set_lzero(ea, n) -> bool + Set toggle lzero bit. This function changes the display of leading zeroes for + the specified operand. If the default is not to display leading zeroes, this + function will display them and vice versa. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function set_manual_insn in module ida_bytes: + +set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) + Set manual instruction string. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing + +Help on function set_op_type in module ida_bytes: + +set_op_type(*args) -> 'bool' + set_op_type(ea, type, n) -> bool + (internal function) change representation of operand(s). + + @param ea: (C++: ea_t) linear address + @param type: (C++: flags64_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) + +Help on function set_opinfo in module ida_bytes: + +set_opinfo(*args) -> 'bool' + set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. + + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags64_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events + @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. + +Help on function stkvar_flag in module ida_bytes: + +stkvar_flag(*args) -> 'flags64_t' + stkvar_flag() -> flags64_t + see Bits: instruction operand types + +Help on function strlit_flag in module ida_bytes: + +strlit_flag(*args) -> 'flags64_t' + strlit_flag() -> flags64_t + Get a flags64_t representing a string literal. + +Help on function stroff_flag in module ida_bytes: + +stroff_flag(*args) -> 'flags64_t' + stroff_flag() -> flags64_t + see Bits: instruction operand types + +Help on function stru_flag in module ida_bytes: + +stru_flag(*args) -> 'flags64_t' + stru_flag() -> flags64_t + Get a flags64_t representing a struct. + +Help on function tbyte_flag in module ida_bytes: + +tbyte_flag(*args) -> 'flags64_t' + tbyte_flag() -> flags64_t + Get a flags64_t representing a tbyte. + +Help on function toggle_bnot in module ida_bytes: + +toggle_bnot(*args) -> 'bool' + toggle_bnot(ea, n) -> bool + Toggle binary negation of operand. also see is_bnot() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function toggle_lzero in module ida_bytes: + +toggle_lzero(*args) -> 'bool' + toggle_lzero(ea, n) -> bool + Toggle lzero bit. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function toggle_sign in module ida_bytes: + +toggle_sign(*args) -> 'bool' + toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function unregister_custom_data_format in module ida_bytes: + +unregister_custom_data_format(*args) -> 'bool' + unregister_custom_data_format(dfid) -> bool + Unregisters a custom data format + + @param dfid: data format id + @return: Boolean + +Help on function unregister_custom_data_type in module ida_bytes: + +unregister_custom_data_type(*args) -> 'bool' + unregister_custom_data_type(dtid) -> bool + Unregisters a custom data type. + + @param dtid: the data type id + @return: Boolean + +Help on function unregister_data_types_and_formats in module ida_bytes: + +unregister_data_types_and_formats(formats) + As opposed to register_data_types_and_formats(), this function + unregisters multiple data types and formats at once. + +Help on function update_hidden_range in module ida_bytes: + +update_hidden_range(*args) -> 'bool' + update_hidden_range(ha) -> bool + Update hidden range information in the database. You cannot use this function to + change the range boundaries + + @param ha: (C++: const hidden_range_t *) range to update + @return: success + +Help on function use_mapping in module ida_bytes: + +use_mapping(*args) -> 'ea_t' + use_mapping(ea) -> ea_t + Translate address according to current mappings. + + @param ea: (C++: ea_t) address to translate + @return: translated address + +Help on function visit_patched_bytes in module ida_bytes: + +visit_patched_bytes(*args) -> 'int' + visit_patched_bytes(ea1, ea2, py_callable) -> int + Enumerates patched bytes in the given range and invokes a callable + + @param ea1: start address + @param ea2: end address + @param py_callable: a Python callable with the following prototype: + callable(ea, fpos, org_val, patch_val). + If the callable returns non-zero then that value will be + returned to the caller and the enumeration will be + interrupted. + @return: Zero if the enumeration was successful or the return + value of the callback if enumeration was interrupted. + +Help on function word_flag in module ida_bytes: + +word_flag(*args) -> 'flags64_t' + word_flag() -> flags64_t + Get a flags64_t representing a word. + +Help on function yword_flag in module ida_bytes: + +yword_flag(*args) -> 'flags64_t' + yword_flag() -> flags64_t + Get a flags64_t representing a ymm word. + +Help on function zword_flag in module ida_bytes: + +zword_flag(*args) -> 'flags64_t' + zword_flag() -> flags64_t + Get a flags64_t representing a zmm word. + +Module "ida_dbg"s docstring: +""" +Contains functions to control the debugging of a process. + +See Debugger functions for a complete explanation of these functions. + +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" + +Help on class DBG_Hooks in module ida_dbg: + +class DBG_Hooks(builtins.object) + | Proxy of C++ DBG_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> DBG_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_DBG_Hooks(...) + | delete_DBG_Hooks(self) + | + | dbg_bpt(self, *args) -> 'int' + | dbg_bpt(self, tid, bptea) -> int + | A user defined breakpoint was reached. + | + | @param tid: (thid_t) + | @param bptea: (::ea_t) + | + | dbg_bpt_changed(self, *args) -> 'void' + | dbg_bpt_changed(self, bptev_code, bpt) + | Breakpoint has been changed. + | + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) + | + | dbg_exception(self, *args) -> 'int' + | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * + | + | dbg_finished_loading_bpts(self, *args) -> 'void' + | dbg_finished_loading_bpts(self) + | Finished loading breakpoint info from idb. + | + | dbg_information(self, *args) -> 'void' + | dbg_information(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * + | + | dbg_library_load(self, *args) -> 'void' + | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t + | + | dbg_library_unload(self, *args) -> 'void' + | dbg_library_unload(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * + | + | dbg_process_attach(self, *args) -> 'void' + | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t + | + | dbg_process_detach(self, *args) -> 'void' + | dbg_process_detach(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | + | dbg_process_exit(self, *args) -> 'void' + | dbg_process_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int + | + | dbg_process_start(self, *args) -> 'void' + | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t + | + | dbg_request_error(self, *args) -> 'void' + | dbg_request_error(self, failed_command, failed_dbg_notification) + | An error occurred during the processing of a request. + | + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) + | + | dbg_run_to(self, *args) -> 'void' + | dbg_run_to(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | + | dbg_started_loading_bpts(self, *args) -> 'void' + | dbg_started_loading_bpts(self) + | Started loading breakpoint info from idb. + | + | dbg_step_into(self, *args) -> 'void' + | dbg_step_into(self) + | + | dbg_step_over(self, *args) -> 'void' + | dbg_step_over(self) + | + | dbg_step_until_ret(self, *args) -> 'void' + | dbg_step_until_ret(self) + | + | dbg_suspend_process(self, *args) -> 'void' + | dbg_suspend_process(self) + | The process is now suspended. + | + | dbg_thread_exit(self, *args) -> 'void' + | dbg_thread_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int + | + | dbg_thread_start(self, *args) -> 'void' + | dbg_thread_start(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | + | dbg_trace(self, *args) -> 'int' + | dbg_trace(self, tid, ip) -> int + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function add_bpt in module ida_dbg: + +add_bpt(*args) -> 'bool' + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + + add_bpt(bpt) -> bool + + @param bpt: bpt_t const & + +Help on function add_path_mapping in module ida_dbg: + +add_path_mapping(*args) -> 'void' + add_path_mapping(src, dst) + + @param src: char const * + @param dst: char const * + +Help on function add_virt_module in module ida_dbg: + +add_virt_module(*args) -> 'bool' + add_virt_module(mod) -> bool + + @param mod: modinfo_t const * + +Help on function attach_process in module ida_dbg: + +attach_process(*args) -> 'int' + attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process + +Help on class bpt_location_t in module ida_dbg: + +class bpt_location_t(builtins.object) + | Proxy of C++ bpt_location_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __init__(self, *args) + | __init__(self) -> bpt_location_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bpt_location_t(...) + | delete_bpt_location_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & + | + | ea(self, *args) -> 'ea_t' + | ea(self) -> ea_t + | Get address (BPLT_ABS) + | + | is_empty_path(self, *args) -> 'bool' + | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) + | + | lineno(self, *args) -> 'int' + | lineno(self) -> int + | Get line number (BPLT_SRC) + | + | offset(self, *args) -> 'uval_t' + | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) + | + | path(self, *args) -> 'char const *' + | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) + | + | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) + | Specify an absolute address location. + | + | @param a: (C++: ea_t) + | + | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, _offset) + | Specify a relative address location. + | + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) + | + | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, _lineno) + | Specify a source level location. + | + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) + | + | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, _symbol, _offset=0) + | Specify a symbolic location. + | + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) + | + | symbol(self, *args) -> 'char const *' + | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) + | + | type(self, *args) -> 'bpt_loctype_t' + | type(self) -> bpt_loctype_t + | Get bpt type. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | index + | index + | + | info + | info + | + | loctype + | loctype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class bpt_t in module ida_dbg: + +class bpt_t(builtins.object) + | Proxy of C++ bpt_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bpt_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bpt_t(...) + | delete_bpt_t(self) + | + | badbpt(self, *args) -> 'bool' + | badbpt(self) -> bool + | Failed to write bpt to process memory? + | + | enabled(self, *args) -> 'bool' + | enabled(self) -> bool + | Is breakpoint enabled? + | + | get_cnd_elang_idx(self, *args) -> 'size_t' + | get_cnd_elang_idx(self) -> size_t + | + | get_size(self, *args) -> 'int' + | get_size(self) -> int + | Get bpt size. + | + | is_absbpt(self, *args) -> 'bool' + | is_absbpt(self) -> bool + | Is absolute address breakpoint? + | + | is_active(self, *args) -> 'bool' + | is_active(self) -> bool + | Written completely to process? + | + | is_compiled(self, *args) -> 'bool' + | is_compiled(self) -> bool + | Condition has been compiled? + | + | is_hwbpt(self, *args) -> 'bool' + | is_hwbpt(self) -> bool + | Is hardware breakpoint? + | + | is_inactive(self, *args) -> 'bool' + | is_inactive(self) -> bool + | Not written to process at all? + | + | is_low_level(self, *args) -> 'bool' + | is_low_level(self) -> bool + | Is bpt condition calculated at low level? + | + | is_page_bpt(self, *args) -> 'bool' + | is_page_bpt(self) -> bool + | Page breakpoint? + | + | is_partially_active(self, *args) -> 'bool' + | is_partially_active(self) -> bool + | Written partially to process? + | + | is_relbpt(self, *args) -> 'bool' + | is_relbpt(self) -> bool + | Is relative address breakpoint? + | + | is_srcbpt(self, *args) -> 'bool' + | is_srcbpt(self) -> bool + | Is source level breakpoint? + | + | is_symbpt(self, *args) -> 'bool' + | is_symbpt(self) -> bool + | Is symbolic breakpoint? + | + | is_tracemodebpt(self, *args) -> 'bool' + | is_tracemodebpt(self) -> bool + | Does breakpoint trace anything? + | + | is_traceoffbpt(self, *args) -> 'bool' + | is_traceoffbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing disabled? + | + | is_traceonbpt(self, *args) -> 'bool' + | is_traceonbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing enabled? + | + | listbpt(self, *args) -> 'bool' + | listbpt(self) -> bool + | Include in the bpt list? + | + | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) + | Set bpt location to an absolute address. + | + | @param a: (C++: ea_t) + | + | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, o) + | Set bpt location to a relative address. + | + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) + | + | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, lineno) + | Set bpt location to a source line. + | + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) + | + | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, sym, o) + | Set bpt location to a symbol. + | + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) + | + | set_trace_action(self, *args) -> 'bool' + | set_trace_action(self, enable, trace_types) -> bool + | Configure tracing options. + | + | @param enable: (C++: bool) + | @param trace_types: (C++: int) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bptid + | bptid + | + | cb + | cb + | + | cndidx + | cndidx + | + | condition + | condition + | + | ea + | ea + | + | elang + | elang + | + | flags + | flags + | + | loc + | loc + | + | pass_count + | pass_count + | + | pid + | pid + | + | props + | props + | + | size + | size + | + | thisown + | The membership flag + | + | tid + | tid + | + | type + | type + +Help on class bpt_vec_t in module ida_dbg: + +class bpt_vec_t(builtins.object) + | Proxy of C++ qvector< bpt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'bpt_t const &' + | __getitem__(self, i) -> bpt_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> bpt_vec_t + | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bpt_t const & + | + | __swig_destroy__ = delete_bpt_vec_t(...) + | delete_bpt_vec_t(self) + | + | at(self, *args) -> 'bpt_t const &' + | at(self, _idx) -> bpt_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< bpt_t >::const_iterator' + | begin(self) -> bpt_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< bpt_t >::const_iterator' + | end(self) -> bpt_t + | + | erase(self, *args) -> 'qvector< bpt_t >::iterator' + | erase(self, it) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | + | erase(self, first, last) -> bpt_t + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator + | + | extract(self, *args) -> 'bpt_t *' + | extract(self) -> bpt_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=bpt_t()) + | + | @param x: bpt_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: bpt_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< bpt_t >::iterator' + | insert(self, it, x) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'bpt_t &' + | push_back(self, x) + | + | @param x: bpt_t const & + | + | push_back(self) -> bpt_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bpt_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< bpt_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(builtins.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddrs_t(...) + | delete_bptaddrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + +Help on function bring_debugger_to_front in module ida_dbg: + +bring_debugger_to_front(*args) -> 'void' + bring_debugger_to_front() + +Help on function check_bpt in module ida_dbg: + +check_bpt(*args) -> 'int' + check_bpt(ea) -> int + Check the breakpoint at the specified address. + + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes + +Help on function choose_trace_file in module ida_dbg: + +choose_trace_file(*args) -> 'qstring *' + choose_trace_file() -> str + Show the choose trace dialog. + +Help on function clear_requests_queue in module ida_dbg: + +clear_requests_queue(*args) -> 'void' + clear_requests_queue() + Clear the queue of waiting requests. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. + +Help on function clear_trace in module ida_dbg: + +clear_trace(*args) -> 'void' + clear_trace() + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + +Help on function collect_stack_trace in module ida_dbg: + +collect_stack_trace(*args) -> 'bool' + collect_stack_trace(tid, trace) -> bool + + @param tid: thid_t + @param trace: call_stack_t * + +Help on function continue_process in module ida_dbg: + +continue_process(*args) -> 'bool' + continue_process() -> bool + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. + +Help on function create_source_viewer in module ida_dbg: + +create_source_viewer(*args) -> 'source_view_t *' + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * + Create a source code view. + + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) + +Help on function dbg_add_bpt_tev in module ida_dbg: + +dbg_add_bpt_tev(*args) -> 'bool' + dbg_add_bpt_tev(tid, ea, bp) -> bool + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) + @return: false if the operation failed, true otherwise + +Help on function dbg_add_call_tev in module ida_dbg: + +dbg_add_call_tev(*args) -> 'void' + dbg_add_call_tev(tid, caller, callee) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) + +Help on function dbg_add_debug_event in module ida_dbg: + +dbg_add_debug_event(*args) -> 'void' + dbg_add_debug_event(event) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param event: (C++: debug_event_t *) + +Help on function dbg_add_insn_tev in module ida_dbg: + +dbg_add_insn_tev(*args) -> 'bool' + dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t + @return: false if the operation failed, true otherwise + +Help on function dbg_add_many_tevs in module ida_dbg: + +dbg_add_many_tevs(*args) -> 'bool' + dbg_add_many_tevs(new_tevs) -> bool + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object + +Help on function dbg_add_ret_tev in module ida_dbg: + +dbg_add_ret_tev(*args) -> 'void' + dbg_add_ret_tev(tid, ret_insn, return_to) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) + +Help on function dbg_add_tev in module ida_dbg: + +dbg_add_tev(*args) -> 'void' + dbg_add_tev(type, tid, address) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) + +Help on function dbg_add_thread in module ida_dbg: + +dbg_add_thread(*args) -> 'void' + dbg_add_thread(tid) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param tid: (C++: thid_t) + +Help on function dbg_bin_search in module ida_dbg: + +dbg_bin_search(*args) -> 'unsigned-ea-like-numeric-type *, qstring *'↗ + dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int + +Help on function dbg_can_query in module ida_dbg: + +dbg_can_query(*args) -> 'bool' + dbg_can_query() -> bool + This function can be used to check if the debugger can be queried: + - debugger is loaded + - process is suspended + - process is not suspended but can take requests. In this case some requests like + memory read/write, bpt management succeed and register querying will fail. + Check if idaapi.get_process_state() < 0 to tell if the process is suspended + + @return: Boolean + +Help on function dbg_del_thread in module ida_dbg: + +dbg_del_thread(*args) -> 'void' + dbg_del_thread(tid) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + +Help on function dbg_is_loaded in module ida_dbg: + +dbg_is_loaded(*args) -> 'bool' + dbg_is_loaded() -> bool + Checks if a debugger is loaded + + @return: Boolean + +Help on function define_exception in module ida_dbg: + +define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * + Convenience function: define new exception code. + + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds + +Help on function del_bpt in module ida_dbg: + +del_bpt(*args) -> 'bool' + del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + del_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function del_bptgrp in module ida_dbg: + +del_bptgrp(*args) -> 'bool' + del_bptgrp(name) -> bool + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success + +Help on function del_virt_module in module ida_dbg: + +del_virt_module(*args) -> 'bool' + del_virt_module(base) -> bool + + @param base: ea_t const + +Help on function detach_process in module ida_dbg: + +detach_process(*args) -> 'bool' + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} + +Help on function diff_trace_file in module ida_dbg: + +diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool + Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * + +Help on function disable_bblk_trace in module ida_dbg: + +disable_bblk_trace(*args) -> 'bool' + disable_bblk_trace() -> bool + +Help on function disable_bpt in module ida_dbg: + +disable_bpt(*args) -> 'bool' + disable_bpt(ea) -> bool + + @param ea: ea_t + + disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function disable_func_trace in module ida_dbg: + +disable_func_trace(*args) -> 'bool' + disable_func_trace() -> bool + +Help on function disable_insn_trace in module ida_dbg: + +disable_insn_trace(*args) -> 'bool' + disable_insn_trace() -> bool + +Help on function disable_step_trace in module ida_dbg: + +disable_step_trace(*args) -> 'bool' + disable_step_trace() -> bool + +Help on function edit_manual_regions in module ida_dbg: + +edit_manual_regions(*args) -> 'void' + edit_manual_regions() + +Help on function enable_bblk_trace in module ida_dbg: + +enable_bblk_trace(*args) -> 'bool' + enable_bblk_trace(enable=True) -> bool + + @param enable: bool + +Help on function enable_bpt in module ida_dbg: + +enable_bpt(*args) -> 'bool' + enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) -> 'int' + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated + +Help on function enable_func_trace in module ida_dbg: + +enable_func_trace(*args) -> 'bool' + enable_func_trace(enable=True) -> bool + + @param enable: bool + +Help on function enable_insn_trace in module ida_dbg: + +enable_insn_trace(*args) -> 'bool' + enable_insn_trace(enable=True) -> bool + + @param enable: bool + +Help on function enable_manual_regions in module ida_dbg: + +enable_manual_regions(*args) -> 'void' + enable_manual_regions(enable) + + @param enable: bool + +Help on function enable_step_trace in module ida_dbg: + +enable_step_trace(*args) -> 'bool' + enable_step_trace(enable=1) -> bool + + @param enable: int + +Help on class eval_ctx_t in module ida_dbg: + +class eval_ctx_t(builtins.object) + | Proxy of C++ eval_ctx_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> eval_ctx_t + | + | @param _ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_eval_ctx_t(...) + | delete_eval_ctx_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | thisown + | The membership flag + +Help on function exist_bpt in module ida_dbg: + +exist_bpt(*args) -> 'bool' + exist_bpt(ea) -> bool + Does a breakpoint exist at the given location? + + @param ea: (C++: ea_t) + +Help on function exit_process in module ida_dbg: + +exit_process(*args) -> 'bool' + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} + +Help on function find_bpt in module ida_dbg: + +find_bpt(*args) -> 'bool' + find_bpt(bptloc, bpt) -> bool + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found + +Help on function get_bblk_trace_options in module ida_dbg: + +get_bblk_trace_options(*args) -> 'int' + get_bblk_trace_options() -> int + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} + +Help on function get_bpt in module ida_dbg: + +get_bpt(*args) -> 'bool' + get_bpt(ea, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. + @return: false if no breakpoint exists + +Help on function get_bpt_group in module ida_dbg: + +get_bpt_group(*args) -> 'qstring *' + get_bpt_group(bptloc) -> str + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success + +Help on function get_bpt_qty in module ida_dbg: + +get_bpt_qty(*args) -> 'int' + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_bpt_tev_ea in module ida_dbg: + +get_bpt_tev_ea(*args) -> 'ea_t' + get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. + +Help on function get_bptloc_string in module ida_dbg: + +get_bptloc_string(*args) -> 'char const *' + get_bptloc_string(i) -> char const * + + @param i: int + +Help on function get_call_tev_callee in module ida_dbg: + +get_call_tev_callee(*args) -> 'ea_t' + get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. + +Help on function get_current_source_file in module ida_dbg: + +get_current_source_file(*args) -> 'qstring *' + get_current_source_file() -> str + +Help on function get_current_source_line in module ida_dbg: + +get_current_source_line(*args) -> 'int' + get_current_source_line() -> int + +Help on function get_current_thread in module ida_dbg: + +get_current_thread(*args) -> 'thid_t' + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_dbg_byte in module ida_dbg: + +get_dbg_byte(*args) -> 'uint32 *' + get_dbg_byte(ea) -> bool + Get one byte of the debugged process memory. + + @param ea: (C++: ea_t) linear address + @return: true success + false address inaccessible or debugger not running + +Help on function get_dbg_memory_info in module ida_dbg: + +get_dbg_memory_info(*args) -> 'int' + get_dbg_memory_info(ranges) -> int + + @param ranges: meminfo_vec_t * + +Help on function get_dbg_reg_info in module ida_dbg: + +get_dbg_reg_info(*args) -> 'bool' + get_dbg_reg_info(regname, ri) -> bool + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) + +Help on function get_debug_event in module ida_dbg: + +get_debug_event(*args) -> 'debug_event_t const *' + get_debug_event() -> debug_event_t + Get the current debugger event. + +Help on function get_debugger_event_cond in module ida_dbg: + +get_debugger_event_cond(*args) -> 'char const *' + get_debugger_event_cond() -> char const * + +Help on function get_first_module in module ida_dbg: + +get_first_module(*args) -> 'bool' + get_first_module(modinfo) -> bool + + @param modinfo: modinfo_t * + +Help on function get_func_trace_options in module ida_dbg: + +get_func_trace_options(*args) -> 'int' + get_func_trace_options() -> int + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} + +Help on function get_global_var in module ida_dbg: + +get_global_var(*args) -> 'bool' + get_global_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * + +Help on function get_grp_bpts in module ida_dbg: + +get_grp_bpts(*args) -> 'ssize_t' + get_grp_bpts(bpts, grp_name) -> ssize_t + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bpts: (C++: bpt_vec_t *) : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector + +Help on function get_insn_tev_reg_mem in module ida_dbg: + +get_insn_tev_reg_mem(*args) -> 'bool' + get_insn_tev_reg_mem(n, memmap) -> bool + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result + @return: false if not an instruction event or no memory is available + +Help on function get_insn_tev_reg_result in module ida_dbg: + +get_insn_tev_reg_result(*args) -> 'bool' + get_insn_tev_reg_result(n, regname, regval) -> bool + + @param n: int + @param regname: char const * + @param regval: regval_t * + +Help on function get_insn_tev_reg_val in module ida_dbg: + +get_insn_tev_reg_val(*args) -> 'bool' + get_insn_tev_reg_val(n, regname, regval) -> bool + + @param n: int + @param regname: char const * + @param regval: regval_t * + +Help on function get_insn_trace_options in module ida_dbg: + +get_insn_trace_options(*args) -> 'int' + get_insn_trace_options() -> int + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} + +Help on function get_ip_val in module ida_dbg: + +get_ip_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ + get_ip_val() -> bool + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. + +Help on function get_local_var in module ida_dbg: + +get_local_var(*args) -> 'bool' + get_local_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * + +Help on function get_local_vars in module ida_dbg: + +get_local_vars(*args) -> 'bool' + get_local_vars(prov, ea, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * + +Help on function get_manual_regions in module ida_dbg: + +get_manual_regions(*args) -> 'PyObject *' + get_manual_regions(ranges) + Returns the manual memory regions + + @param ranges: meminfo_vec_t * + + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None + +Help on function get_module_info in module ida_dbg: + +get_module_info(*args) -> 'bool' + get_module_info(ea, modinfo) -> bool + + @param ea: ea_t + @param modinfo: modinfo_t * + +Help on function get_next_module in module ida_dbg: + +get_next_module(*args) -> 'bool' + get_next_module(modinfo) -> bool + + @param modinfo: modinfo_t * + +Help on function get_process_options in module ida_dbg: + +get_process_options(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' + get_process_options() + Get process options. Any of the arguments may be nullptr + +Help on function get_process_state in module ida_dbg: + +get_process_state(*args) -> 'int' + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states + +Help on function get_processes in module ida_dbg: + +get_processes(*args) -> 'ssize_t' + get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) array with information about each running process + @return: number of processes or -1 on error + +Help on function get_reg_val in module ida_dbg: + +get_reg_val(*args) -> 'PyObject *' + get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. + + @param regname: (C++: const char *) char const * + @param regval: regval_t * + + get_reg_val(regname, ival) -> bool + + @param regname: char const * + @param ival: uint64 * + + get_reg_val(regname) -> bool, float, int + + @param regname: char const * + +Help on function get_reg_vals in module ida_dbg: + +get_reg_vals(*args) -> 'regvals_t *' + get_reg_vals(tid, clsmask=-1) -> regvals_t + Fetch live registers values for the thread + + @param tid: The ID of the thread to read registers for + @param clsmask: An OR'ed mask of register classes to + read values for (can be used to speed up the + retrieval process) + + @return: a regvals_t instance (empty if an error occurs) + +Help on function get_ret_tev_return in module ida_dbg: + +get_ret_tev_return(*args) -> 'ea_t' + get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. + +Help on function get_running_notification in module ida_dbg: + +get_running_notification(*args) -> 'dbg_notification_t' + get_running_notification() -> dbg_notification_t + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @return: dbg_null if no running request + +Help on function get_running_request in module ida_dbg: + +get_running_request(*args) -> 'ui_notification_t' + get_running_request() -> ui_notification_t + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: ui_null if no running request + +Help on function get_sp_val in module ida_dbg: + +get_sp_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ + get_sp_val() -> bool + Get value of the SP register for the current thread. Requires a suspended + debugger. + +Help on function get_srcinfo_provider in module ida_dbg: + +get_srcinfo_provider(*args) -> 'srcinfo_provider_t *' + get_srcinfo_provider(name) -> srcinfo_provider_t * + + @param name: char const * + +Help on function get_step_trace_options in module ida_dbg: + +get_step_trace_options(*args) -> 'int' + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options + +Help on function get_tev_ea in module ida_dbg: + +get_tev_ea(*args) -> 'ea_t' + get_tev_ea(n) -> ea_t + + @param n: int + +Help on function get_tev_event in module ida_dbg: + +get_tev_event(*args) -> 'bool' + get_tev_event(n, d) -> bool + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". + +Help on function get_tev_info in module ida_dbg: + +get_tev_info(*args) -> 'bool' + get_tev_info(n, tev_info) -> bool + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result + @return: success + +Help on function get_tev_memory_info in module ida_dbg: + +get_tev_memory_info(*args) -> 'bool' + get_tev_memory_info(n, mi) -> bool + Get the memory layout, if any, for the specified tev object. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". + +Help on function get_tev_qty in module ida_dbg: + +get_tev_qty(*args) -> 'int' + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + +Help on function get_tev_reg_mem in module ida_dbg: + +get_tev_reg_mem(tev, idx) + +Help on function get_tev_reg_mem_ea in module ida_dbg: + +get_tev_reg_mem_ea(tev, idx) + +Help on function get_tev_reg_mem_qty in module ida_dbg: + +get_tev_reg_mem_qty(tev) + +Help on function get_tev_reg_val in module ida_dbg: + +get_tev_reg_val(tev, reg) + +Help on function get_tev_tid in module ida_dbg: + +get_tev_tid(*args) -> 'int' + get_tev_tid(n) -> int + + @param n: int + +Help on function get_tev_type in module ida_dbg: + +get_tev_type(*args) -> 'int' + get_tev_type(n) -> int + + @param n: int + +Help on function get_thread_qty in module ida_dbg: + +get_thread_qty(*args) -> 'int' + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_trace_base_address in module ida_dbg: + +get_trace_base_address(*args) -> 'ea_t' + get_trace_base_address() -> ea_t + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @return: the base address of the currently loaded trace + +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) -> 'void' + get_trace_dynamic_register_set(idaregs) + Get dynamic register set of current trace. + + @param idaregs: (C++: dynamic_register_set_t *) + +Help on function get_trace_file_desc in module ida_dbg: + +get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str + Get the file header of the specified trace file. + + @param filename: (C++: const char *) char const * + +Help on function get_trace_platform in module ida_dbg: + +get_trace_platform(*args) -> 'char const *' + get_trace_platform() -> char const * + Get platform name of current trace. + +Help on function getn_bpt in module ida_dbg: + +getn_bpt(*args) -> 'bool' + getn_bpt(n, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. + @return: false if no breakpoint exists + +Help on function getn_thread in module ida_dbg: + +getn_thread(*args) -> 'thid_t' + getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. + +Help on function getn_thread_name in module ida_dbg: + +getn_thread_name(*args) -> 'char const *' + getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. + +Help on function graph_trace in module ida_dbg: + +graph_trace(*args) -> 'bool' + graph_trace() -> bool + Show the trace callgraph. + +Help on function handle_debug_event in module ida_dbg: + +handle_debug_event(*args) -> 'int' + handle_debug_event(ev, rqflags) -> int + + @param ev: debug_event_t const * + @param rqflags: int + +Help on function hide_all_bpts in module ida_dbg: + +hide_all_bpts(*args) -> 'int' + hide_all_bpts() -> int + +Help on function internal_get_sreg_base in module ida_dbg: + +internal_get_sreg_base(*args) -> 'ea_t' + internal_get_sreg_base(tid, sreg_value) -> ea_t + Get the sreg base, for the given thread. + + @param tid: thid_t + @param sreg_value: int + @return: The sreg base, or BADADDR on failure. + +Help on function internal_ioctl in module ida_dbg: + +internal_ioctl(*args) -> 'int' + internal_ioctl(fn, buf, poutbuf, poutsize) -> int + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * + +Help on function invalidate_dbg_state in module ida_dbg: + +invalidate_dbg_state(*args) -> 'int' + invalidate_dbg_state(dbginv) -> int + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) + +Help on function invalidate_dbgmem_config in module ida_dbg: + +invalidate_dbgmem_config(*args) -> 'void' + invalidate_dbgmem_config() + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) + +Help on function invalidate_dbgmem_contents in module ida_dbg: + +invalidate_dbgmem_contents(*args) -> 'void' + invalidate_dbgmem_contents(ea, size) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) + +Help on function is_bblk_trace_enabled in module ida_dbg: + +is_bblk_trace_enabled(*args) -> 'bool' + is_bblk_trace_enabled() -> bool + +Help on function is_debugger_busy in module ida_dbg: + +is_debugger_busy(*args) -> 'bool' + is_debugger_busy() -> bool + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger + +Help on function is_debugger_memory in module ida_dbg: + +is_debugger_memory(*args) -> 'bool' + is_debugger_memory(ea) -> bool + Is the address mapped to debugger memory? + + @param ea: (C++: ea_t) + +Help on function is_debugger_on in module ida_dbg: + +is_debugger_on(*args) -> 'bool' + is_debugger_on() -> bool + Is the debugger currently running? + +Help on function is_func_trace_enabled in module ida_dbg: + +is_func_trace_enabled(*args) -> 'bool' + is_func_trace_enabled() -> bool + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + +Help on function is_insn_trace_enabled in module ida_dbg: + +is_insn_trace_enabled(*args) -> 'bool' + is_insn_trace_enabled() -> bool + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + +Help on function is_reg_custom in module ida_dbg: + +is_reg_custom(*args) -> 'bool' + is_reg_custom(regname) -> bool + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * + +Help on function is_reg_float in module ida_dbg: + +is_reg_float(*args) -> 'bool' + is_reg_float(regname) -> bool + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * + +Help on function is_reg_integer in module ida_dbg: + +is_reg_integer(*args) -> 'bool' + is_reg_integer(regname) -> bool + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * + +Help on function is_request_running in module ida_dbg: + +is_request_running(*args) -> 'bool' + is_request_running() -> bool + Is a request currently running? + +Help on function is_step_trace_enabled in module ida_dbg: + +is_step_trace_enabled(*args) -> 'bool' + is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + +Help on function is_valid_dstate in module ida_dbg: + +is_valid_dstate(*args) -> 'bool' + is_valid_dstate(state) -> bool + + @param state: int + +Help on function is_valid_trace_file in module ida_dbg: + +is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool + Is the specified file a valid trace file for the current database? + + @param filename: (C++: const char *) char const * + +Help on function list_bptgrps in module ida_dbg: + +list_bptgrps(*args) -> 'PyObject *' + list_bptgrps(bptgrps) -> size_t + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param bptgrps: (C++: qstrvec_t *) list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] + +Help on function load_debugger in module ida_dbg: + +load_debugger(*args) -> 'bool' + load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool + +Help on function load_trace_file in module ida_dbg: + +load_trace_file(*args) -> 'qstring *' + load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * + +Help on class memreg_info_t in module ida_dbg: + +class memreg_info_t(builtins.object) + | Proxy of C++ memreg_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> memreg_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_memreg_info_t(...) + | delete_memreg_info_t(self) + | + | get_bytes(self, *args) -> 'PyObject *' + | get_bytes(self) -> PyObject * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | get_bytes(self) -> PyObject * + | + | ea + | ea + | + | thisown + | The membership flag + +Help on class memreg_infos_t in module ida_dbg: + +class memreg_infos_t(builtins.object) + | Proxy of C++ qvector< memreg_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'memreg_info_t const &' + | __getitem__(self, i) -> memreg_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> memreg_infos_t + | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memreg_info_t const & + | + | __swig_destroy__ = delete_memreg_infos_t(...) + | delete_memreg_infos_t(self) + | + | at(self, *args) -> 'memreg_info_t const &' + | at(self, _idx) -> memreg_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memreg_info_t >::const_iterator' + | begin(self) -> memreg_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memreg_info_t >::const_iterator' + | end(self) -> memreg_info_t + | + | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' + | erase(self, it) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | + | erase(self, first, last) -> memreg_info_t + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator + | + | extract(self, *args) -> 'memreg_info_t *' + | extract(self) -> memreg_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memreg_info_t()) + | + | @param x: memreg_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memreg_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' + | insert(self, it, x) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memreg_info_t &' + | push_back(self, x) + | + | @param x: memreg_info_t const & + | + | push_back(self) -> memreg_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memreg_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memreg_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function set_bpt_group in module ida_dbg: + +set_bpt_group(*args) -> 'bool' + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success + +Help on function put_dbg_byte in module ida_dbg: + +put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool + Change one byte of the debugged process memory. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified + +Help on function read_dbg_memory in module ida_dbg: + +read_dbg_memory(*args) -> 'ssize_t' + read_dbg_memory(ea, buffer, size) -> ssize_t + + @param ea: ea_t + @param buffer: void * + @param size: size_t + +Help on function refresh_debugger_memory in module ida_dbg: + +refresh_debugger_memory(*args) -> 'PyObject *' + refresh_debugger_memory() -> PyObject * + Refreshes the debugger memory + + @return: Nothing + +Help on function rename_bptgrp in module ida_dbg: + +rename_bptgrp(*args) -> 'bool' + rename_bptgrp(old_name, new_name) -> bool + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success + +Help on function request_add_bpt in module ida_dbg: + +request_add_bpt(*args) -> 'bool' + request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Post an add_bpt(const bpt_t &) request. + + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t + + request_add_bpt(bpt) -> bool + + @param bpt: bpt_t const & + +Help on function request_attach_process in module ida_dbg: + +request_attach_process(*args) -> 'int' + request_attach_process(pid, event_id) -> int + Post an attach_process() request. + + @param pid: (C++: pid_t) + @param event_id: (C++: int) + +Help on function request_clear_trace in module ida_dbg: + +request_clear_trace(*args) -> 'void' + request_clear_trace() + Post a clear_trace() request. + +Help on function request_continue_process in module ida_dbg: + +request_continue_process(*args) -> 'bool' + request_continue_process() -> bool + Post a continue_process() request. + @note: This requires an explicit call to run_requests() + +Help on function request_del_bpt in module ida_dbg: + +request_del_bpt(*args) -> 'bool' + request_del_bpt(ea) -> bool + Post a del_bpt(const bpt_location_t &) request. + + @param ea: ea_t + + request_del_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function request_detach_process in module ida_dbg: + +request_detach_process(*args) -> 'bool' + request_detach_process() -> bool + Post a detach_process() request. + +Help on function request_disable_bblk_trace in module ida_dbg: + +request_disable_bblk_trace(*args) -> 'bool' + request_disable_bblk_trace() -> bool + +Help on function request_disable_bpt in module ida_dbg: + +request_disable_bpt(*args) -> 'bool' + request_disable_bpt(ea) -> bool + + @param ea: ea_t + + request_disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function request_disable_func_trace in module ida_dbg: + +request_disable_func_trace(*args) -> 'bool' + request_disable_func_trace() -> bool + +Help on function request_disable_insn_trace in module ida_dbg: + +request_disable_insn_trace(*args) -> 'bool' + request_disable_insn_trace() -> bool + +Help on function request_disable_step_trace in module ida_dbg: + +request_disable_step_trace(*args) -> 'bool' + request_disable_step_trace() -> bool + +Help on function request_enable_bblk_trace in module ida_dbg: + +request_enable_bblk_trace(*args) -> 'bool' + request_enable_bblk_trace(enable=True) -> bool + + @param enable: bool + +Help on function request_enable_bpt in module ida_dbg: + +request_enable_bpt(*args) -> 'bool' + request_enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + + request_enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function request_enable_func_trace in module ida_dbg: + +request_enable_func_trace(*args) -> 'bool' + request_enable_func_trace(enable=True) -> bool + + @param enable: bool + +Help on function request_enable_insn_trace in module ida_dbg: + +request_enable_insn_trace(*args) -> 'bool' + request_enable_insn_trace(enable=True) -> bool + + @param enable: bool + +Help on function request_enable_step_trace in module ida_dbg: + +request_enable_step_trace(*args) -> 'bool' + request_enable_step_trace(enable=1) -> bool + + @param enable: int + +Help on function request_exit_process in module ida_dbg: + +request_exit_process(*args) -> 'bool' + request_exit_process() -> bool + Post an exit_process() request. + +Help on function request_resume_thread in module ida_dbg: + +request_resume_thread(*args) -> 'int' + request_resume_thread(tid) -> int + Post a resume_thread() request. + + @param tid: (C++: thid_t) + +Help on function request_run_to in module ida_dbg: + +request_run_to(*args) -> 'bool' + request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + Post a run_to() request. + + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) + +Help on function request_select_thread in module ida_dbg: + +request_select_thread(*args) -> 'bool' + request_select_thread(tid) -> bool + Post a select_thread() request. + + @param tid: (C++: thid_t) + +Help on function request_set_bblk_trace_options in module ida_dbg: + +request_set_bblk_trace_options(*args) -> 'void' + request_set_bblk_trace_options(options) + Post a set_bblk_trace_options() request. + + @param options: (C++: int) + +Help on function request_set_func_trace_options in module ida_dbg: + +request_set_func_trace_options(*args) -> 'void' + request_set_func_trace_options(options) + Post a set_func_trace_options() request. + + @param options: (C++: int) + +Help on function request_set_insn_trace_options in module ida_dbg: + +request_set_insn_trace_options(*args) -> 'void' + request_set_insn_trace_options(options) + Post a set_insn_trace_options() request. + + @param options: (C++: int) + +Help on function request_set_reg_val in module ida_dbg: + +request_set_reg_val(*args) -> 'PyObject *' + request_set_reg_val(regname, o) -> PyObject * + Post a set_reg_val() request. + + @param regname: (C++: const char *) char const * + @param o: PyObject * + +Help on function request_set_resume_mode in module ida_dbg: + +request_set_resume_mode(*args) -> 'bool' + request_set_resume_mode(tid, mode) -> bool + Post a set_resume_mode() request. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t + +Help on function request_set_step_trace_options in module ida_dbg: + +request_set_step_trace_options(*args) -> 'void' + request_set_step_trace_options(options) + Post a set_step_trace_options() request. + + @param options: (C++: int) + +Help on function request_start_process in module ida_dbg: + +request_start_process(*args) -> 'int' + request_start_process(path=None, args=None, sdir=None) -> int + Post a start_process() request. + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + +Help on function request_step_into in module ida_dbg: + +request_step_into(*args) -> 'bool' + request_step_into() -> bool + Post a step_into() request. + +Help on function request_step_over in module ida_dbg: + +request_step_over(*args) -> 'bool' + request_step_over() -> bool + Post a step_over() request. + +Help on function request_step_until_ret in module ida_dbg: + +request_step_until_ret(*args) -> 'bool' + request_step_until_ret() -> bool + Post a step_until_ret() request. + +Help on function request_suspend_process in module ida_dbg: + +request_suspend_process(*args) -> 'bool' + request_suspend_process() -> bool + Post a suspend_process() request. + +Help on function request_suspend_thread in module ida_dbg: + +request_suspend_thread(*args) -> 'int' + request_suspend_thread(tid) -> int + Post a suspend_thread() request. + + @param tid: (C++: thid_t) + +Help on function resume_thread in module ida_dbg: + +resume_thread(*args) -> 'int' + resume_thread(tid) -> int + Resume thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on function retrieve_exceptions in module ida_dbg: + +retrieve_exceptions(*args) -> 'excvec_t *' + retrieve_exceptions() -> excvec_t + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited + +Help on function run_requests in module ida_dbg: + +run_requests(*args) -> 'bool' + run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} + + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. + +Help on function run_to in module ida_dbg: + +run_to(*args) -> 'bool' + run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. + +Help on function save_trace_file in module ida_dbg: + +save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool + Save the current trace in the specified file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function select_thread in module ida_dbg: + +select_thread(*args) -> 'bool' + select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. + +Help on function send_dbg_command in module ida_dbg: + +send_dbg_command(command) + Send a direct command to the debugger backend, and + retrieve the result as a string. + + Note: any double-quotes in 'command' must be backslash-escaped. + Note: this only works with some debugger backends: Bochs, WinDbg, GDB. + + Returns: (True, <result string>) on success, or (False, <Error message string>) on failure + +Help on function set_bblk_trace_options in module ida_dbg: + +set_bblk_trace_options(*args) -> 'void' + set_bblk_trace_options(options) + Modify basic block tracing options (see BT_LOG_INSTS) + + @param options: (C++: int) + +Help on function set_bptloc_group in module ida_dbg: + +set_bptloc_group(*args) -> 'bool' + set_bptloc_group(bptloc, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success + +Help on function set_bptloc_string in module ida_dbg: + +set_bptloc_string(*args) -> 'int' + set_bptloc_string(s) -> int + + @param s: char const * + +Help on function set_debugger_event_cond in module ida_dbg: + +set_debugger_event_cond(*args) -> 'void' + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * + +Help on function set_debugger_options in module ida_dbg: + +set_debugger_options(*args) -> 'uint' + set_debugger_options(options) -> uint + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options + +Help on function set_func_trace_options in module ida_dbg: + +set_func_trace_options(*args) -> 'void' + set_func_trace_options(options) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function set_highlight_trace_options in module ida_dbg: + +set_highlight_trace_options(*args) -> 'void' + set_highlight_trace_options(hilight, color, diff) + Set highlight trace parameters. + + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) + +Help on function set_insn_trace_options in module ida_dbg: + +set_insn_trace_options(*args) -> 'void' + set_insn_trace_options(options) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function set_manual_regions in module ida_dbg: + +set_manual_regions(*args) -> 'void' + set_manual_regions(ranges) + + @param ranges: meminfo_vec_t const * + +Help on function set_process_options in module ida_dbg: + +set_process_options(*args) -> 'void' + set_process_options(path, args, sdir, host, _pass, port) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) + +Help on function set_process_state in module ida_dbg: + +set_process_state(*args) -> 'int' + set_process_state(newstate, p_thid, dbginv) -> int + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) + +Help on function set_reg_val in module ida_dbg: + +set_reg_val(*args) -> 'PyObject *' + set_reg_val(regname, o) -> PyObject + Write a register value to the current thread. + + @param regname: (C++: const char *) char const * + @param o: PyObject * + + set_reg_val(tid, regidx, o) -> bool, int + + @param tid: thid_t + @param regidx: int + @param o: PyObject * + +Help on function set_remote_debugger in module ida_dbg: + +set_remote_debugger(*args) -> 'void' + set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used + +Help on function set_resume_mode in module ida_dbg: + +set_resume_mode(*args) -> 'bool' + set_resume_mode(tid, mode) -> bool + How to resume the application. Set resume mode but do not resume process. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t + +Help on function set_step_trace_options in module ida_dbg: + +set_step_trace_options(*args) -> 'void' + set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function set_trace_base_address in module ida_dbg: + +set_trace_base_address(*args) -> 'void' + set_trace_base_address(ea) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) + +Help on function set_trace_dynamic_register_set in module ida_dbg: + +set_trace_dynamic_register_set(*args) -> 'void' + set_trace_dynamic_register_set(idaregs) + Set dynamic register set of current trace. + + @param idaregs: (C++: dynamic_register_set_t &) + +Help on function set_trace_file_desc in module ida_dbg: + +set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool + Change the description of the specified trace file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function set_trace_platform in module ida_dbg: + +set_trace_platform(*args) -> 'void' + set_trace_platform(platform) + Set platform name of current trace. + + @param platform: (C++: const char *) char const * + +Help on function set_trace_size in module ida_dbg: + +set_trace_size(*args) -> 'bool' + set_trace_size(size) -> bool + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! + +Help on function srcdbg_request_step_into in module ida_dbg: + +srcdbg_request_step_into(*args) -> 'bool' + srcdbg_request_step_into() -> bool + +Help on function srcdbg_request_step_over in module ida_dbg: + +srcdbg_request_step_over(*args) -> 'bool' + srcdbg_request_step_over() -> bool + +Help on function srcdbg_request_step_until_ret in module ida_dbg: + +srcdbg_request_step_until_ret(*args) -> 'bool' + srcdbg_request_step_until_ret() -> bool + +Help on function srcdbg_step_into in module ida_dbg: + +srcdbg_step_into(*args) -> 'bool' + srcdbg_step_into() -> bool + +Help on function srcdbg_step_over in module ida_dbg: + +srcdbg_step_over(*args) -> 'bool' + srcdbg_step_over() -> bool + +Help on function srcdbg_step_until_ret in module ida_dbg: + +srcdbg_step_until_ret(*args) -> 'bool' + srcdbg_step_until_ret() -> bool + +Help on function start_process in module ida_dbg: + +start_process(*args) -> 'int' + start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started + +Help on function step_into in module ida_dbg: + +step_into(*args) -> 'bool' + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} + +Help on function step_over in module ida_dbg: + +step_over(*args) -> 'bool' + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} + +Help on function step_until_ret in module ida_dbg: + +step_until_ret(*args) -> 'bool' + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} + +Help on function store_exceptions in module ida_dbg: + +store_exceptions(*args) -> 'bool' + store_exceptions() -> bool + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback + +Help on function suspend_process in module ida_dbg: + +suspend_process(*args) -> 'bool' + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. + +Help on function suspend_thread in module ida_dbg: + +suspend_thread(*args) -> 'int' + suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on class tev_info_reg_t in module ida_dbg: + +class tev_info_reg_t(builtins.object) + | Proxy of C++ tev_info_reg_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> tev_info_reg_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tev_info_reg_t(...) + | delete_tev_info_reg_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | info + | info + | + | registers + | registers + | + | thisown + | The membership flag + +Help on class tev_info_t in module ida_dbg: + +class tev_info_t(builtins.object) + | Proxy of C++ tev_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> tev_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tev_info_t(...) + | delete_tev_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | thisown + | The membership flag + | + | tid + | tid + | + | type + | type + +Help on class tev_reg_value_t in module ida_dbg: + +class tev_reg_value_t(builtins.object) + | Proxy of C++ tev_reg_value_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | + | @param _reg_idx: int + | @param _value: uint64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tev_reg_value_t(...) + | delete_tev_reg_value_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reg_idx + | reg_idx + | + | thisown + | The membership flag + | + | value + | value + +Help on class tev_reg_values_t in module ida_dbg: + +class tev_reg_values_t(builtins.object) + | Proxy of C++ qvector< tev_reg_value_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'tev_reg_value_t const &' + | __getitem__(self, i) -> tev_reg_value_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> tev_reg_values_t + | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_reg_value_t const & + | + | __swig_destroy__ = delete_tev_reg_values_t(...) + | delete_tev_reg_values_t(self) + | + | at(self, *args) -> 'tev_reg_value_t const &' + | at(self, _idx) -> tev_reg_value_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' + | begin(self) -> tev_reg_value_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' + | end(self) -> tev_reg_value_t + | + | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' + | erase(self, it) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | + | erase(self, first, last) -> tev_reg_value_t + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator + | + | extract(self, *args) -> 'tev_reg_value_t *' + | extract(self) -> tev_reg_value_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=tev_reg_value_t()) + | + | @param x: tev_reg_value_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: tev_reg_value_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' + | insert(self, it, x) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'tev_reg_value_t &' + | push_back(self, x) + | + | @param x: tev_reg_value_t const & + | + | push_back(self) -> tev_reg_value_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< tev_reg_value_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class tevinforeg_vec_t in module ida_dbg: + +class tevinforeg_vec_t(builtins.object) + | Proxy of C++ qvector< tev_info_reg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'tev_info_reg_t const &' + | __getitem__(self, i) -> tev_info_reg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> tevinforeg_vec_t + | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_info_reg_t const & + | + | __swig_destroy__ = delete_tevinforeg_vec_t(...) + | delete_tevinforeg_vec_t(self) + | + | at(self, *args) -> 'tev_info_reg_t const &' + | at(self, _idx) -> tev_info_reg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' + | begin(self) -> tev_info_reg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' + | end(self) -> tev_info_reg_t + | + | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' + | erase(self, it) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | + | erase(self, first, last) -> tev_info_reg_t + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator + | + | extract(self, *args) -> 'tev_info_reg_t *' + | extract(self) -> tev_info_reg_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=tev_info_reg_t()) + | + | @param x: tev_info_reg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: tev_info_reg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' + | insert(self, it, x) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'tev_info_reg_t &' + | push_back(self, x) + | + | @param x: tev_info_reg_t const & + | + | push_back(self) -> tev_info_reg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< tev_info_reg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function update_bpt in module ida_dbg: + +update_bpt(*args) -> 'bool' + update_bpt(bpt) -> bool + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed + + @param bpt: (C++: const bpt_t *) bpt_t const * + +Help on function wait_for_next_event in module ida_dbg: + +wait_for_next_event(*args) -> 'dbg_event_code_t' + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) + +Help on function write_dbg_memory in module ida_dbg: + +write_dbg_memory(*args) -> 'ssize_t' + write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t + +Module "ida_dirtree"s docstring: +""" +Types involved in grouping of item into folders. + +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). + +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). + +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc + +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" + +Help on class direntry_t in module ida_dirtree: + +class direntry_t(builtins.object) + | Proxy of C++ direntry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __init__(self, *args) + | __init__(self, i=BADIDX, d=False) -> direntry_t + | + | @param i: uval_t + | @param d: bool + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_direntry_t(...) + | delete_direntry_t(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | isdir + | isdir + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | BADIDX = unsigned-ea-like-numeric-type(-1) + | + | ROOTIDX = 0 + | + | __hash__ = None + +Help on class direntry_vec_t in module ida_dirtree: + +class direntry_vec_t(builtins.object) + | Proxy of C++ qvector< direntry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __getitem__(self, *args) -> 'direntry_t const &' + | __getitem__(self, i) -> direntry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> direntry_vec_t + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: direntry_t const & + | + | __swig_destroy__ = delete_direntry_vec_t(...) + | delete_direntry_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: direntry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: direntry_t const & + | + | at(self, *args) -> 'direntry_t const &' + | at(self, _idx) -> direntry_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' + | begin(self) -> direntry_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< direntry_t >::const_iterator' + | end(self) -> direntry_t + | + | erase(self, *args) -> 'qvector< direntry_t >::iterator' + | erase(self, it) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | + | erase(self, first, last) -> direntry_t + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator + | + | extract(self, *args) -> 'direntry_t *' + | extract(self) -> direntry_t + | + | find(self, *args) -> 'qvector< direntry_t >::const_iterator' + | find(self, x) -> direntry_t + | + | @param x: direntry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=direntry_t()) + | + | @param x: direntry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: direntry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: direntry_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< direntry_t >::iterator' + | insert(self, it, x) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'direntry_t &' + | push_back(self, x) + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: direntry_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< direntry_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirspec_t in module ida_dirtree: + +class dirspec_t(builtins.object) + | Proxy of C++ dirspec_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, nm=None, f=0) -> dirspec_t + | + | @param nm: char const * + | @param f: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirspec_t(...) + | delete_dirspec_t(self) + | + | get_attrs(self, *args) -> 'qstring' + | get_attrs(self, inode) -> qstring + | + | @param inode: inode_t + | + | get_inode(self, *args) -> 'inode_t' + | get_inode(self, dirpath, name) -> inode_t + | get the entry inode in the specified directory + | + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode + | + | get_name(self, *args) -> 'bool' + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool + | get the entry name. for example, the structure name + | + | @param inode: (C++: inode_t) inode number of the entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. + | + | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool + | rename the entry + | + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success + | + | unlink_inode(self, *args) -> 'void' + | unlink_inode(self, inode) + | + | @param inode: (C++: inode_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | id + | id + | + | nodename + | id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | DSF_INODE_EA = 1 + | + | DSF_PRIVRANGE = 2 + +Help on class dirtree_cursor_t in module ida_dirtree: + +class dirtree_cursor_t(builtins.object) + | Proxy of C++ dirtree_cursor_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __init__(self, *args) + | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t + | + | @param _parent: diridx_t + | @param _rank: size_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_cursor_t(...) + | delete_dirtree_cursor_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: dirtree_cursor_t const & + | + | is_root_cursor(self, *args) -> 'bool' + | is_root_cursor(self) -> bool + | + | set_root_cursor(self, *args) -> 'void' + | set_root_cursor(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | root_cursor(*args) -> 'dirtree_cursor_t' + | root_cursor() -> dirtree_cursor_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | parent + | parent + | + | rank + | rank + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function dirtree_cursor_t_root_cursor in module ida_dirtree: + +dirtree_cursor_t_root_cursor(*args) -> 'dirtree_cursor_t' + dirtree_cursor_t_root_cursor() -> dirtree_cursor_t + +Help on class dirtree_cursor_vec_t in module ida_dirtree: + +class dirtree_cursor_vec_t(builtins.object) + | Proxy of C++ qvector< dirtree_cursor_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> dirtree_cursor_vec_t + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | __swig_destroy__ = delete_dirtree_cursor_vec_t(...) + | delete_dirtree_cursor_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirtree_iterator_t in module ida_dirtree: + +class dirtree_iterator_t(builtins.object) + | Proxy of C++ dirtree_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_iterator_t(...) + | delete_dirtree_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cursor + | cursor + | + | pattern + | pattern + | + | thisown + | The membership flag + +Help on class dirtree_selection_t in module ida_dirtree: + +class dirtree_selection_t(dirtree_cursor_vec_t) + | Proxy of C++ dirtree_selection_t class. + | + | Method resolution order: + | dirtree_selection_t + | dirtree_cursor_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_selection_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_selection_t(...) + | delete_dirtree_selection_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from dirtree_cursor_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from dirtree_cursor_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from dirtree_cursor_vec_t: + | + | __hash__ = None + +Help on class dirtree_t in module ida_dirtree: + +class dirtree_t(builtins.object) + | Proxy of C++ dirtree_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ds) -> dirtree_t + | + | @param ds: dirspec_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_t(...) + | delete_dirtree_t(self) + | + | change_rank(self, *args) -> 'dterr_t' + | change_rank(self, path, rank_delta) -> dterr_t + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param rank_delta: (C++: ssize_t) the amount of the change. positive numbers mean to move down + | in the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. + | + | chdir(self, *args) -> 'dterr_t' + | chdir(self, path) -> dterr_t + | Change current directory + | + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) -> 'dirtree_cursor_t' + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param de: (C++: const direntry_t &) directory entry + | @return: cursor corresponding to the directory entry + | + | findfirst(self, *args) -> 'bool' + | findfirst(self, ff, pattern) -> bool + | Start iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success + | + | findnext(self, *args) -> 'bool' + | findnext(self, ff) -> bool + | Continue iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success + | + | get_abspath(self, *args) -> 'qstring' + | get_abspath(self, cursor) -> qstring + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. + | + | @param cursor: dirtree_cursor_t const & + | + | @return: path. empty path means wrong directory part of RELPATH + | get_abspath(self, relpath) -> qstring + | + | @param relpath: char const * + | + | get_dir_size(self, *args) -> 'ssize_t' + | get_dir_size(self, diridx) -> ssize_t + | Get dir size + | + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 + | + | get_entry_attrs(self, *args) -> 'qstring' + | get_entry_attrs(self, de) -> qstring + | Get entry attributes + | + | @param de: (C++: const direntry_t &) directory entry + | @return: name + | + | get_entry_name(self, *args) -> 'qstring' + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring + | Get entry name + | + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name + | + | get_id(self, *args) -> 'char const *' + | get_id(self) -> char const * + | netnode name + | + | get_nodename = get_id(self, *args) -> 'char const *' + | + | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | get_parent_cursor(self, cursor) -> dirtree_cursor_t + | Get parent cursor. + | + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent + | + | get_rank(self, *args) -> 'ssize_t' + | get_rank(self, diridx, de) -> ssize_t + | Get ordering rank of an item. + | + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error + | + | getcwd(self, *args) -> 'qstring' + | getcwd(self) -> qstring + | Get current directory + | + | @return: the current working directory + | + | isdir(self, *args) -> 'bool' + | isdir(self, de) -> bool + | + | @param de: direntry_t const & + | + | isdir(self, path) -> bool + | + | @param path: char const * + | + | isfile(self, *args) -> 'bool' + | isfile(self, de) -> bool + | + | @param de: direntry_t const & + | + | isfile(self, path) -> bool + | + | @param path: char const * + | + | link(self, *args) -> 'dterr_t' + | link(self, path) -> dterr_t + | Add an inode into the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | link(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | load(self, *args) -> 'bool' + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. + | + | mkdir(self, *args) -> 'dterr_t' + | mkdir(self, path) -> dterr_t + | Create a directory. + | + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code + | + | notify_dirtree(self, *args) -> 'void' + | notify_dirtree(self, added, inode) + | Notify dirtree about a change of an inode. + | + | @param added: (C++: bool) are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question + | + | rename(self, *args) -> 'dterr_t' + | rename(self, _from, to) -> dterr_t + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item + | + | resolve_cursor(self, *args) -> 'direntry_t' + | resolve_cursor(self, cursor) -> direntry_t + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() + | + | resolve_path(self, *args) -> 'direntry_t' + | resolve_path(self, path) -> direntry_t + | Resolve path + | + | @param path: (C++: const char *) to analyze + | @return: directory entry + | + | rmdir(self, *args) -> 'dterr_t' + | rmdir(self, path) -> dterr_t + | Remove a directory. + | + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code + | + | save(self, *args) -> 'bool' + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. + | + | set_id(self, *args) -> 'void' + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) -> 'void' + | + | traverse(self, *args) -> 'ssize_t' + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned + | + | unlink(self, *args) -> 'dterr_t' + | unlink(self, path) -> dterr_t + | Remove an inode from the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | unlink(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | errstr(*args) -> 'char const *' + | errstr(err) -> char const * + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function dirtree_t_errstr in module ida_dirtree: + +dirtree_t_errstr(*args) -> 'char const *' + dirtree_t_errstr(err) -> char const * + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(builtins.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_visitor_t(...) + | delete_dirtree_visitor_t(self) + | + | visit(self, *args) -> 'ssize_t' + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_std_dirtree in module ida_dirtree: + +get_std_dirtree(*args) -> 'dirtree_t *' + get_std_dirtree(id) -> dirtree_t + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" + +Help on function choose_ioport_device2 in module ida_diskio: + +choose_ioport_device2(*args) -> 'bool' + choose_ioport_device2(_device, file, parse_params) -> bool + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * + +Help on class choose_ioport_parser_t in module ida_diskio: + +class choose_ioport_parser_t(builtins.object) + | Proxy of C++ choose_ioport_parser_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> choose_ioport_parser_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_choose_ioport_parser_t(...) + | delete_choose_ioport_parser_t(self) + | + | parse(self, *args) -> 'bool' + | parse(self, param, line) -> bool + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function close_linput in module ida_diskio: + +close_linput(*args) -> 'void' + close_linput(li) + Close loader input. + + @param li: (C++: linput_t *) + +Help on function create_bytearray_linput in module ida_diskio: + +create_bytearray_linput(*args) -> 'linput_t *' + create_bytearray_linput(s) -> linput_t * + Trivial memory linput. + + @param s: qstring const & + +Help on function create_generic_linput in module ida_diskio: + +create_generic_linput(*args) -> 'linput_t *' + create_generic_linput(gl) -> linput_t * + Create a generic linput + + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" + +Help on function create_memory_linput in module ida_diskio: + +create_memory_linput(*args) -> 'linput_t *' + create_memory_linput(start, size) -> linput_t * + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. + + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 + +Help on function eclose in module ida_diskio: + +eclose(*args) -> 'void' + eclose(fp) + + @param fp: FILE * + +Help on function enumerate_files in module ida_diskio: + +enumerate_files(*args) -> 'PyObject *' + enumerate_files(path, fname, callback) -> PyObject * + Enumerate files in the specified directory while the callback returns 0. + + @param path: directory to enumerate files in + @param fname: mask of file names to enumerate + @param callback: a callable object that takes the filename as + its first argument and it returns 0 to continue + enumeration or non-zero to stop enumeration. + @return: None in case of script errors + tuple(code, fname) : If the callback returns non-zero + +Help on function enumerate_files2 in module ida_diskio: + +enumerate_files2(*args) -> 'int' + enumerate_files2(answer, answer_size, path, fname, fv) -> int + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & + +Help on class file_enumerator_t in module ida_diskio: + +class file_enumerator_t(builtins.object) + | Proxy of C++ file_enumerator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> file_enumerator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_file_enumerator_t(...) + | delete_file_enumerator_t(self) + | + | visit_file(self, *args) -> 'int' + | visit_file(self, file) -> int + | + | @param file: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function fopenA in module ida_diskio: + +fopenA(*args) -> 'FILE *' + fopenA(file) -> FILE * + Open a file for append in text mode, deny none. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenM in module ida_diskio: + +fopenM(*args) -> 'FILE *' + fopenM(file) -> FILE * + Open a file for read/write in binary mode, deny write. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenRB in module ida_diskio: + +fopenRB(*args) -> 'FILE *' + fopenRB(file) -> FILE * + Open a file for read in binary mode, deny none. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenRT in module ida_diskio: + +fopenRT(*args) -> 'FILE *' + fopenRT(file) -> FILE * + Open a file for read in text mode, deny none. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenWB in module ida_diskio: + +fopenWB(*args) -> 'FILE *' + fopenWB(file) -> FILE * + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenWT in module ida_diskio: + +fopenWT(*args) -> 'FILE *' + fopenWT(file) -> FILE * + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on class generic_linput_t in module ida_diskio: + +class generic_linput_t(builtins.object) + | Proxy of C++ generic_linput_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_generic_linput_t(...) + | delete_generic_linput_t(self) + | + | read(self, *args) -> 'ssize_t' + | read(self, off, buffer, nbytes) -> ssize_t + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blocksize + | blocksize + | + | filesize + | filesize + | + | thisown + | The membership flag + +Help on function get_ida_subdirs in module ida_diskio: + +get_ida_subdirs(*args) -> 'qstrvec_t *' + get_ida_subdirs(subdir, flags=0) -> int + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: + - [$IDAUSR/subdir (0..N entries)] + - $IDADIR/subdir + + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits + @return: number of directories appended to 'dirs' + +Help on function get_linput_type in module ida_diskio: + +get_linput_type(*args) -> 'linput_type_t' + get_linput_type(li) -> linput_type_t + Get linput type. + + @param li: (C++: linput_t *) + +Help on function get_special_folder in module ida_diskio: + +get_special_folder(*args) -> 'size_t' + get_special_folder(csidl) -> str + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size + + @param csidl: (C++: int) + +Help on function get_user_idadir in module ida_diskio: + +get_user_idadir(*args) -> 'char const *' + get_user_idadir() -> char const * + Get user ida related directory. + - if $IDAUSR is defined: + - the first element in $IDAUSR + - else + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + +Help on function getsysfile in module ida_diskio: + +getsysfile(*args) -> 'char const *' + getsysfile(filename, subdir) -> str + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. + + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. + +Help on function idadir in module ida_diskio: + +idadir(*args) -> 'char const *' + idadir(subdir) -> char const * + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) + + @param subdir: (C++: const char *) char const * + +Help on class ioports_fallback_t in module ida_diskio: + +class ioports_fallback_t(builtins.object) + | Proxy of C++ ioports_fallback_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ioports_fallback_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ioports_fallback_t(...) + | delete_ioports_fallback_t(self) + | + | handle(self, *args) -> 'bool' + | handle(self, ports, line) -> bool + | + | @param ports: ioports_t const & + | @param line: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function open_linput in module ida_diskio: + +open_linput(*args) -> 'linput_t *' + open_linput(file, remote) -> linput_t * + Open loader input. + + @param file: (C++: const char *) char const * + @param remote: (C++: bool) + +Help on function qlgetz in module ida_diskio: + +qlgetz(*args) -> 'size_t' + qlgetz(li, fpos) -> str + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + + @param li: (C++: linput_t *) + @param fpos: (C++: int64) + +Help on function read_ioports2 in module ida_diskio: + +read_ioports2(*args) -> 'ssize_t' + read_ioports2(ports, device, file, callback=None) -> ssize_t + + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * + +Module "ida_entry"s docstring: +""" +Functions that deal with entry points. + +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" + +Help on function add_entry in module ida_entry: + +add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool + Add an entry point to the list of entry points. + + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) + +Help on function get_entry in module ida_entry: + +get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t + Get entry point address by its ordinal + + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR + +Help on function get_entry_forwarder in module ida_entry: + +get_entry_forwarder(*args) -> 'qstring *' + get_entry_forwarder(ord) -> str + Get forwarder name for the entry point by its ordinal. + + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry forwarder name or -1 + +Help on function get_entry_name in module ida_entry: + +get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str + Get name of the entry point by its ordinal. + + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 + +Help on function get_entry_ordinal in module ida_entry: + +get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t + Get ordinal number of an entry point. + + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. + +Help on function get_entry_qty in module ida_entry: + +get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t + Get number of entry points. + +Help on function rename_entry in module ida_entry: + +rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool + Rename entry point. + + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success + +Help on function set_entry_forwarder in module ida_entry: + +set_entry_forwarder(*args) -> 'bool' + set_entry_forwarder(ord, name, flags=0) -> bool + Set forwarder name for ordinal. + + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* + @return: success + +Module "ida_enum"s docstring: +""" +Assembly level enum management. + +Enums and bitfields are represented as enum_t.""" + +Help on function add_enum in module ida_enum: + +add_enum(*args) -> 'enum_t' + add_enum(idx, name, flag) -> enum_t + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" + + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags64_t) + +Help on function add_enum_member in module ida_enum: + +add_enum_member(*args) -> 'int' + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int + Add member to enum type. + + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes + +Help on function del_enum in module ida_enum: + +del_enum(*args) -> 'void' + del_enum(id) + Delete an enum type. + + @param id: (C++: enum_t) + +Help on function del_enum_member in module ida_enum: + +del_enum_member(*args) -> 'bool' + del_enum_member(id, value, serial, bmask) -> bool + Delete member of enum type. + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) + +Help on class enum_member_visitor_t in module ida_enum: + +class enum_member_visitor_t(builtins.object) + | Proxy of C++ enum_member_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> enum_member_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_member_visitor_t(...) + | delete_enum_member_visitor_t(self) + | + | visit_enum_member(self, *args) -> 'int' + | visit_enum_member(self, cid, value) -> int + | Implements action to take when enum member is visited. + | + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function for_all_enum_members in module ida_enum: + +for_all_enum_members(*args) -> 'int' + for_all_enum_members(id, cv) -> int + Visit all members of a given enum. + + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) + +Help on function get_bmask_cmt in module ida_enum: + +get_bmask_cmt(*args) -> 'qstring *' + get_bmask_cmt(id, bmask, repeatable) -> str + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool + +Help on function get_bmask_name in module ida_enum: + +get_bmask_name(*args) -> 'qstring *' + get_bmask_name(id, bmask) -> str + + @param id: enum_t + @param bmask: bmask_t + +Help on function get_enum in module ida_enum: + +get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t + Get enum by name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_cmt in module ida_enum: + +get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str + Get enum comment. + + @param id: (C++: enum_t) + @param repeatable: (C++: bool) + +Help on function get_enum_flag in module ida_enum: + +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) + +Help on function get_enum_idx in module ida_enum: + +get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t + Get the index in the list of enums. + + @param id: (C++: enum_t) + +Help on function get_enum_member in module ida_enum: + +get_enum_member(*args) -> 'const_t' + get_enum_member(id, value, serial, mask) -> const_t + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) + +Help on function get_enum_member_bmask in module ida_enum: + +get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t + Get bitmask of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_by_name in module ida_enum: + +get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t + Get a reference to an enum member by its name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_member_cmt in module ida_enum: + +get_enum_member_cmt(*args) -> 'qstring *' + get_enum_member_cmt(id, repeatable) -> str + Get enum member's comment. + + @param id: (C++: const_t) + @param repeatable: (C++: bool) + +Help on function get_enum_member_enum in module ida_enum: + +get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t + Get the parent enum of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_name in module ida_enum: + +get_enum_member_name(*args) -> 'qstring *' + get_enum_member_name(id) -> str + Get name of an enum member by const_t. + + @param id: (C++: const_t) + +Help on function get_enum_member_serial in module ida_enum: + +get_enum_member_serial(*args) -> 'uchar' + get_enum_member_serial(cid) -> uchar + Get serial number of an enum member. + + @param cid: (C++: const_t) + +Help on function get_enum_member_value in module ida_enum: + +get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t + Get value of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_name in module ida_enum: + +get_enum_name(*args) -> 'qstring *' + get_enum_name(id) -> str + + @param id: enum_t + +Help on function get_enum_name2 in module ida_enum: + +get_enum_name2(*args) -> 'qstring *' + get_enum_name2(id, flags=0) -> str + Get name of enum + + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags + +Help on function get_enum_qty in module ida_enum: + +get_enum_qty(*args) -> 'size_t' + get_enum_qty() -> size_t + Get number of declared enum_t types. + +Help on function get_enum_size in module ida_enum: + +get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t + Get the number of the members of the enum. + + @param id: (C++: enum_t) + +Help on function get_enum_type_ordinal in module ida_enum: + +get_enum_type_ordinal(*args) -> 'int32' + get_enum_type_ordinal(id) -> int32 + Get corresponding type ordinal number. + + @param id: (C++: enum_t) + +Help on function get_enum_width in module ida_enum: + +get_enum_width(*args) -> 'size_t' + get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) + +Help on function get_first_bmask in module ida_enum: + +get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(enum_id) -> bmask_t + Get first bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK + +Help on function get_first_enum_member in module ida_enum: + +get_first_enum_member(*args) -> 'uval_t' + get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t + +Help on function get_first_serial_enum_member in module ida_enum: + +get_first_serial_enum_member(*args) -> 'uchar *' + get_first_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_last_bmask in module ida_enum: + +get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(enum_id) -> bmask_t + Get last bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @return: the biggest bitmask for enum, or DEFMASK + +Help on function get_last_enum_member in module ida_enum: + +get_last_enum_member(*args) -> 'uval_t' + get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t + +Help on function get_last_serial_enum_member in module ida_enum: + +get_last_serial_enum_member(*args) -> 'uchar *' + get_last_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_next_bmask in module ida_enum: + +get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(enum_id, bmask) -> bmask_t + Get next bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK + +Help on function get_next_enum_member in module ida_enum: + +get_next_enum_member(*args) -> 'uval_t' + get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_next_serial_enum_member in module ida_enum: + +get_next_serial_enum_member(*args) -> 'uchar *' + get_next_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t + +Help on function get_prev_bmask in module ida_enum: + +get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(enum_id, bmask) -> bmask_t + Get prev bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK + +Help on function get_prev_enum_member in module ida_enum: + +get_prev_enum_member(*args) -> 'uval_t' + get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_prev_serial_enum_member in module ida_enum: + +get_prev_serial_enum_member(*args) -> 'uchar *' + get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t + +Help on function getn_enum in module ida_enum: + +getn_enum(*args) -> 'enum_t' + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) + +Help on function is_bf in module ida_enum: + +is_bf(*args) -> 'bool' + is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) + +Help on function is_enum_fromtil in module ida_enum: + +is_enum_fromtil(*args) -> 'bool' + is_enum_fromtil(id) -> bool + Does enum come from type library? + + @param id: (C++: enum_t) + +Help on function is_enum_hidden in module ida_enum: + +is_enum_hidden(*args) -> 'bool' + is_enum_hidden(id) -> bool + Is enum collapsed? + + @param id: (C++: enum_t) + +Help on function is_ghost_enum in module ida_enum: + +is_ghost_enum(*args) -> 'bool' + is_ghost_enum(id) -> bool + Is a ghost copy of a local type? + + @param id: (C++: enum_t) + +Help on function is_one_bit_mask in module ida_enum: + +is_one_bit_mask(*args) -> 'bool' + is_one_bit_mask(mask) -> bool + Is bitmask one bit? + + @param mask: (C++: bmask_t) + +Help on function set_bmask_cmt in module ida_enum: + +set_bmask_cmt(*args) -> 'bool' + set_bmask_cmt(id, bmask, cmt, repeatable) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool + +Help on function set_bmask_name in module ida_enum: + +set_bmask_name(*args) -> 'bool' + set_bmask_name(id, bmask, name) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * + +Help on function set_enum_bf in module ida_enum: + +set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool + Set 'bitfield' bit of enum (i.e. convert it to a bitfield) + + @param id: (C++: enum_t) + @param bf: (C++: bool) + +Help on function set_enum_cmt in module ida_enum: + +set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool + Set comment for enum type. + + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_flag in module ida_enum: + +set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool + Set data representation flags. + + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) + +Help on function set_enum_fromtil in module ida_enum: + +set_enum_fromtil(*args) -> 'bool' + set_enum_fromtil(id, fromtil) -> bool + Specify that enum comes from a type library. + + @param id: (C++: enum_t) + @param fromtil: (C++: bool) + +Help on function set_enum_ghost in module ida_enum: + +set_enum_ghost(*args) -> 'bool' + set_enum_ghost(id, ghost) -> bool + Specify that enum is a ghost copy of a local type. + + @param id: (C++: enum_t) + @param ghost: (C++: bool) + +Help on function set_enum_hidden in module ida_enum: + +set_enum_hidden(*args) -> 'bool' + set_enum_hidden(id, hidden) -> bool + Collapse enum. + + @param id: (C++: enum_t) + @param hidden: (C++: bool) + +Help on function set_enum_idx in module ida_enum: + +set_enum_idx(*args) -> 'bool' + set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) + +Help on function set_enum_member_cmt in module ida_enum: + +set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool + Set comment for enum member. + + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_member_name in module ida_enum: + +set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool + Set name of enum member. + + @param id: (C++: const_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_name in module ida_enum: + +set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool + Set name of enum type. + + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_type_ordinal in module ida_enum: + +set_enum_type_ordinal(*args) -> 'void' + set_enum_type_ordinal(id, ord) + Set corresponding type ordinal number. + + @param id: (C++: enum_t) + @param ord: (C++: int32) + +Help on function set_enum_width in module ida_enum: + +set_enum_width(*args) -> 'bool' + set_enum_width(id, width) -> bool + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) + +Module "ida_expr"s docstring: +""" +Functions that deal with C-like expressions and built-in IDC language. + +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" + +Help on class _IdcFunction in module ida_expr: + +class _IdcFunction(builtins.object) + | Internal class that calls pyw_call_idc_func() with a context + | + | Methods defined here: + | + | __call__(self, args, res) + | Call self as a function. + | + | __init__(self, ctxptr) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fp_ptr + +Help on function add_idc_class in module ida_expr: + +add_idc_class(*args) -> 'idc_class_t *' + add_idc_class(name, super=None) -> idc_class_t * + Create a new IDC class. + + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. + +Help on function add_idc_func in module ida_expr: + +add_idc_func(name, fp, args, defvals=(), flags=0) + Extends the IDC language by exposing a new IDC function that is backed up by a Python function + + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); + + @note: If the function already exists, it will be replaced by the new function + @return: success + +Help on function add_idc_gvar in module ida_expr: + +add_idc_gvar(*args) -> 'idc_value_t *' + add_idc_gvar(name) -> idc_value_t + Add global IDC variable. + + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. + +Help on function compile_idc_file in module ida_expr: + +compile_idc_file(*args) -> 'qstring *' + compile_idc_file(nonnul_line) -> str + + @param nonnul_line: char const * + +Help on function compile_idc_snippet in module ida_expr: + +compile_idc_snippet(*args) -> 'qstring *' + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str + Compile text with IDC statements. + + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf + +Help on function compile_idc_text in module ida_expr: + +compile_idc_text(*args) -> 'qstring *' + compile_idc_text(nonnul_line) -> str + + @param nonnul_line: char const * + +Help on function copy_idcv in module ida_expr: + +copy_idcv(*args) -> 'error_t' + copy_idcv(dst, src) -> error_t + Copy 'src' to 'dst'. For idc objects only a reference is copied. + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & + +Help on function create_idcv_ref in module ida_expr: + +create_idcv_ref(*args) -> 'bool' + create_idcv_ref(ref, v) -> bool + Create a variable reference. Currently only references to global variables can + be created. + + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference + @return: success + +Help on function deep_copy_idcv in module ida_expr: + +deep_copy_idcv(*args) -> 'error_t' + deep_copy_idcv(dst, src) -> error_t + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & + +Help on function del_idc_func in module ida_expr: + +del_idc_func(name) + Unregisters the specified IDC function + + Delete an IDC function + +Help on function del_idcv_attr in module ida_expr: + +del_idcv_attr(*args) -> 'error_t' + del_idcv_attr(obj, attr) -> error_t + Delete an object attribute. + + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name + @return: error code, eOk on success + +Help on function deref_idcv in module ida_expr: + +deref_idcv(*args) -> 'idc_value_t *' + deref_idcv(v, vref_flags) -> idc_value_t + Dereference a VT_REF variable. + + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, + qerrno is set to eExecBadRef "Illegal variable reference" + +Help on function eval_expr in module ida_expr: + +eval_expr(*args) -> 'qstring *' + eval_expr(rv, where, line) -> str + Compile and calculate an expression. + + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf + +Help on function eval_idc_expr in module ida_expr: + +eval_idc_expr(*args) -> 'qstring *' + eval_idc_expr(rv, where, line) -> str + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. + + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * + +Help on function exec_idc_script in module ida_expr: + +exec_idc_script(*args) -> 'qstring *' + exec_idc_script(result, path, func, args, argsnum) -> str + Compile and execute IDC function(s) from file. + + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf + +Help on function exec_system_script in module ida_expr: + +exec_system_script(*args) -> 'bool' + exec_system_script(file, complain_if_no_file=True) -> bool + Compile and execute "main" function from system file. + + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed + +Help on function find_idc_class in module ida_expr: + +find_idc_class(*args) -> 'idc_class_t *' + find_idc_class(name) -> idc_class_t * + Find an existing IDC class by its name. + + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() + +Help on function find_idc_func in module ida_expr: + +find_idc_func(*args) -> 'qstring *' + find_idc_func(prefix, n=0) -> str + + @param prefix: char const * + @param n: int + +Help on function find_idc_gvar in module ida_expr: + +find_idc_gvar(*args) -> 'idc_value_t *' + find_idc_gvar(name) -> idc_value_t + Find an existing global IDC variable by its name. + + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner + +Help on function first_idcv_attr in module ida_expr: + +first_idcv_attr(*args) -> 'char const *' + first_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * + +Help on function free_idcv in module ida_expr: + +free_idcv(*args) -> 'void' + free_idcv(v) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 + + @param v: (C++: idc_value_t *) + +Help on function get_idc_filename in module ida_expr: + +get_idc_filename(*args) -> 'char const *' + get_idc_filename(file) -> str + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. + + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf + +Help on function get_idcv_attr in module ida_expr: + +get_idcv_attr(*args) -> 'error_t' + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t + Get an object attribute. + + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist + @return: error code, eOk on success + +Help on function get_idcv_class_name in module ida_expr: + +get_idcv_class_name(*args) -> 'qstring *' + get_idcv_class_name(obj) -> str + Retrieves the IDC object class name. + + @param obj: (C++: const idc_value_t *) class instance variable + @return: error code, eOk on success + +Help on function get_idcv_slice in module ida_expr: + +get_idcv_slice(*args) -> 'error_t' + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t + Get slice. + + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk if success + +Help on class highlighter_cbs_t in module ida_expr: + +class highlighter_cbs_t(builtins.object) + | Proxy of C++ highlighter_cbs_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> highlighter_cbs_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_highlighter_cbs_t(...) + | delete_highlighter_cbs_t(self) + | + | cur_block_state(self, *args) -> 'int32' + | cur_block_state(self) -> int32 + | + | prev_block_state(self, *args) -> 'int32' + | prev_block_state(self) -> int32 + | + | set_block_state(self, *args) -> 'void' + | set_block_state(self, arg0) + | + | @param arg0: int32 + | + | set_style(self, *args) -> 'void' + | set_style(self, arg0, arg1, arg2) + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class idc_global_t in module ida_expr: + +class idc_global_t(builtins.object) + | Proxy of C++ idc_global_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idc_global_t + | __init__(self, n) -> idc_global_t + | + | @param n: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idc_global_t(...) + | delete_idc_global_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | value + | value + +Help on class idc_value_t in module ida_expr: + +class idc_value_t(builtins.object) + | Proxy of C++ idc_value_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, n=0) -> idc_value_t + | + | @param n: sval_t + | + | __init__(self, r) -> idc_value_t + | + | @param r: idc_value_t const & + | + | __init__(self, _str) -> idc_value_t + | + | @param _str: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idc_value_t(...) + | delete_idc_value_t(self) + | + | _create_empty_string(self, *args) -> 'void' + | _create_empty_string(self) + | + | c_str(self, *args) -> 'char const *' + | c_str(self) -> char const * + | VT_STR + | + | clear(self, *args) -> 'void' + | clear(self) + | See free_idcv() + | + | create_empty_string(self, *args) -> 'void' + | create_empty_string(self) + | + | is_convertible(self, *args) -> 'bool' + | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. + | + | is_integral(self, *args) -> 'bool' + | is_integral(self) -> bool + | Does value represent a whole number? + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | Does value represent the integer 0? + | + | qstr(self, *args) -> 'qstring const &' + | qstr(self) -> qstring + | VT_STR + | qstr(self) -> qstring const & + | + | set_float(self, *args) -> 'void' + | set_float(self, f) + | + | @param f: fpvalue_t const & + | + | set_int64(self, *args) -> 'void' + | set_int64(self, v) + | + | @param v: int64 + | + | set_long(self, *args) -> 'void' + | set_long(self, v) + | + | @param v: sval_t + | + | set_pvoid(self, *args) -> 'void' + | set_pvoid(self, p) + | + | @param p: void * + | + | set_string(self, *args) -> 'void' + | set_string(self, _str, len) + | + | @param _str: char const * + | @param len: size_t + | + | set_string(self, _str) + | + | @param _str: char const * + | + | swap(self, *args) -> 'void' + | swap(self, v) + | Set this = r and v = this. + | + | @param v: (C++: idc_value_t &) + | + | u_str(self, *args) -> 'uchar const *' + | u_str(self) -> uchar const * + | VT_STR + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | e + | e + | + | funcidx + | funcidx + | + | i64 + | i64 + | + | num + | num + | + | obj + | obj + | + | pvoid + | pvoid + | + | reserve + | reserve + | + | str + | + | thisown + | The membership flag + | + | vtype + | vtype + +Help on class idc_values_t in module ida_expr: + +class idc_values_t(builtins.object) + | Proxy of C++ qvector< idc_value_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'idc_value_t const &' + | __getitem__(self, i) -> idc_value_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> idc_values_t + | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: idc_value_t const & + | + | __swig_destroy__ = delete_idc_values_t(...) + | delete_idc_values_t(self) + | + | at(self, *args) -> 'idc_value_t const &' + | at(self, _idx) -> idc_value_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< idc_value_t >::const_iterator' + | begin(self) -> idc_value_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< idc_value_t >::const_iterator' + | end(self) -> idc_value_t + | + | erase(self, *args) -> 'qvector< idc_value_t >::iterator' + | erase(self, it) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | + | erase(self, first, last) -> idc_value_t + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator + | + | extract(self, *args) -> 'idc_value_t *' + | extract(self) -> idc_value_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=idc_value_t()) + | + | @param x: idc_value_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: idc_value_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< idc_value_t >::iterator' + | insert(self, it, x) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'idc_value_t &' + | push_back(self, x) + | + | @param x: idc_value_t const & + | + | push_back(self) -> idc_value_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: idc_value_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< idc_value_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function idcv_float in module ida_expr: + +idcv_float(*args) -> 'error_t' + idcv_float(v) -> error_t + Convert IDC variable to a floating point. + + @param v: (C++: idc_value_t *) + +Help on function idcv_int64 in module ida_expr: + +idcv_int64(*args) -> 'error_t' + idcv_int64(v) -> error_t + Convert IDC variable to a 64bit number. + + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to int64 + +Help on function idcv_long in module ida_expr: + +idcv_long(*args) -> 'error_t' + idcv_long(v) -> error_t + Convert IDC variable to a long (32/64bit) number. + + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to long + +Help on function idcv_num in module ida_expr: + +idcv_num(*args) -> 'error_t' + idcv_num(v) -> error_t + Convert IDC variable to a long number. + + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string + +Help on function idcv_object in module ida_expr: + +idcv_object(*args) -> 'error_t' + idcv_object(v, icls=None) -> error_t + Create an IDC object. The original value of 'v' is discarded (freed). + + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() + @return: always eOk + +Help on function idcv_string in module ida_expr: + +idcv_string(*args) -> 'error_t' + idcv_string(v) -> error_t + Convert IDC variable to a text string. + + @param v: (C++: idc_value_t *) + +Help on function last_idcv_attr in module ida_expr: + +last_idcv_attr(*args) -> 'char const *' + last_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * + +Help on function move_idcv in module ida_expr: + +move_idcv(*args) -> 'error_t' + move_idcv(dst, src) -> error_t + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. + + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) + +Help on function next_idcv_attr in module ida_expr: + +next_idcv_attr(*args) -> 'char const *' + next_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * + +Help on function prev_idcv_attr in module ida_expr: + +prev_idcv_attr(*args) -> 'char const *' + prev_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * + +Help on function print_idcv in module ida_expr: + +print_idcv(*args) -> 'qstring *' + print_idcv(v, name=None, indent=0) -> str + Get text representation of idc_value_t. + + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) + +Help on function py_add_idc_func in module ida_expr: + +py_add_idc_func(*args) -> 'bool' + py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int + +Help on function py_get_call_idc_func in module ida_expr: + +py_get_call_idc_func(*args) -> 'size_t' + py_get_call_idc_func() -> size_t + +Help on function pyw_convert_defvals in module ida_expr: + +pyw_convert_defvals(*args) -> 'bool' + pyw_convert_defvals(out, py_seq) -> bool + + @param out: idc_values_t * + @param py_seq: PyObject * + +Help on function pyw_register_idc_func in module ida_expr: + +pyw_register_idc_func(*args) -> 'size_t' + pyw_register_idc_func(name, args, py_fp) -> size_t + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * + +Help on function pyw_unregister_idc_func in module ida_expr: + +pyw_unregister_idc_func(*args) -> 'bool' + pyw_unregister_idc_func(ctxptr) -> bool + + @param ctxptr: size_t + +Help on function set_header_path in module ida_expr: + +set_header_path(*args) -> 'bool' + set_header_path(path, add) -> bool + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. + + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory + +Help on function set_idcv_attr in module ida_expr: + +set_idcv_attr(*args) -> 'error_t' + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t + Set an object attribute. + + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class + @return: error code, eOk on success + +Help on function set_idcv_slice in module ida_expr: + +set_idcv_slice(*args) -> 'error_t' + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t + Set slice. + + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk on success + +Help on function swap_idcvs in module ida_expr: + +swap_idcvs(*args) -> 'void' + swap_idcvs(v1, v2) + Swap 2 variables. + + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) + +Help on function throw_idc_exception in module ida_expr: + +throw_idc_exception(*args) -> 'error_t' + throw_idc_exception(r, desc) -> error_t + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); + + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description + @return: eExecThrow + +Module "ida_fixup"s docstring: +""" +Functions that deal with fixup information. + +A loader should setup fixup information using set_fixup().""" + +Help on function calc_fixup_size in module ida_fixup: + +calc_fixup_size(*args) -> 'int' + calc_fixup_size(type) -> int + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error + + @param type: (C++: fixup_type_t) + +Help on function contains_fixups in module ida_fixup: + +contains_fixups(*args) -> 'bool' + contains_fixups(ea, size) -> bool + Does the specified address range contain any fixup information? + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) + +Help on function del_fixup in module ida_fixup: + +del_fixup(*args) -> 'void' + del_fixup(source) + Delete fixup information. + + @param source: (C++: ea_t) + +Help on function exists_fixup in module ida_fixup: + +exists_fixup(*args) -> 'bool' + exists_fixup(source) -> bool + Check that a fixup exists at the given address. + + @param source: (C++: ea_t) + +Help on function find_custom_fixup in module ida_fixup: + +find_custom_fixup(*args) -> 'fixup_type_t' + find_custom_fixup(name) -> fixup_type_t + Get id of a custom fixup handler. + + @param name: (C++: const char *) name of the custom fixup handler + @return: id with FIXUP_CUSTOM bit set or 0 + +Help on class fixup_data_t in module ida_fixup: + +class fixup_data_t(builtins.object) + | Proxy of C++ fixup_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> fixup_data_t + | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_fixup_data_t(...) + | delete_fixup_data_t(self) + | + | calc_size(self, *args) -> 'int' + | calc_size(self) -> int + | calc_fixup_size() + | + | clr_extdef(self, *args) -> 'void' + | clr_extdef(self) + | + | clr_unused(self, *args) -> 'void' + | clr_unused(self) + | + | get(self, *args) -> 'bool' + | get(self, source) -> bool + | get_fixup() + | + | @param source: (C++: ea_t) + | + | get_base(self, *args) -> 'ea_t' + | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL + | + | get_desc(self, *args) -> 'char const *' + | get_desc(self, source) -> char const * + | get_fixup_desc() + | + | @param source: (C++: ea_t) + | + | get_flags(self, *args) -> 'uint32' + | get_flags(self) -> uint32 + | Fixup flags Fixup flags. + | + | get_handler(self, *args) -> 'fixup_handler_t const *' + | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() + | + | get_type(self, *args) -> 'fixup_type_t' + | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. + | + | get_value(self, *args) -> 'uval_t' + | get_value(self, ea) -> uval_t + | get_fixup_value() + | + | @param ea: (C++: ea_t) + | + | has_base(self, *args) -> 'bool' + | has_base(self) -> bool + | Is fixup relative? + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | is_fixup_custom() + | + | is_extdef(self, *args) -> 'bool' + | is_extdef(self) -> bool + | + | is_unused(self, *args) -> 'bool' + | is_unused(self) -> bool + | + | patch_value(self, *args) -> 'bool' + | patch_value(self, ea) -> bool + | patch_fixup_value() + | + | @param ea: (C++: ea_t) + | + | set(self, *args) -> 'void' + | set(self, source) + | set_fixup() + | + | @param source: (C++: ea_t) + | + | set_base(self, *args) -> 'void' + | set_base(self, new_base) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) + | + | set_extdef(self, *args) -> 'void' + | set_extdef(self) + | + | set_sel(self, *args) -> 'void' + | set_sel(self, seg) + | + | @param seg: segment_t const * + | + | set_target_sel(self, *args) -> 'void' + | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. + | + | set_type(self, *args) -> 'void' + | set_type(self, type_) + | + | @param type_: fixup_type_t + | + | set_type_and_flags(self, *args) -> 'void' + | set_type_and_flags(self, type_, flags_=0) + | + | @param type_: fixup_type_t + | @param flags_: uint32 + | + | set_unused(self, *args) -> 'void' + | set_unused(self) + | + | was_created(self, *args) -> 'bool' + | was_created(self) -> bool + | Is fixup artificial? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | displacement + | displacement + | + | off + | off + | + | sel + | sel + | + | thisown + | The membership flag + +Help on class fixup_info_t in module ida_fixup: + +class fixup_info_t(builtins.object) + | Proxy of C++ fixup_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> fixup_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_fixup_info_t(...) + | delete_fixup_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | fd + | fd + | + | thisown + | The membership flag + +Help on function gen_fix_fixups in module ida_fixup: + +gen_fix_fixups(*args) -> 'void' + gen_fix_fixups(_from, to, size) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). + + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) + +Help on function get_first_fixup_ea in module ida_fixup: + +get_first_fixup_ea(*args) -> 'ea_t' + get_first_fixup_ea() -> ea_t + Get the first address with fixup information + + @return: the first address with fixup information, or BADADDR + +Help on function get_fixup in module ida_fixup: + +get_fixup(*args) -> 'bool' + get_fixup(fd, source) -> bool + Get fixup information. + + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) + +Help on function get_fixup_desc in module ida_fixup: + +get_fixup_desc(*args) -> 'fixup_data_t const &' + get_fixup_desc(source, fd) -> str + Get FIXUP description comment. + + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & + +Help on function get_fixup_handler in module ida_fixup: + +get_fixup_handler(*args) -> 'fixup_handler_t const *' + get_fixup_handler(type) -> fixup_handler_t const * + Get handler of standard or custom fixup. + + @param type: (C++: fixup_type_t) + +Help on function get_fixup_value in module ida_fixup: + +get_fixup_value(*args) -> 'uval_t' + get_fixup_value(ea, type) -> uval_t + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. + + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value + +Help on function get_fixups in module ida_fixup: + +get_fixups(*args) -> 'bool' + get_fixups(out, ea, size) -> bool + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t + +Help on function get_next_fixup_ea in module ida_fixup: + +get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t + Find next address with fixup information + + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR + +Help on function get_prev_fixup_ea in module ida_fixup: + +get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t + Find previous address with fixup information + + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR + +Help on function handle_fixups_in_macro in module ida_fixup: + +handle_fixups_in_macro(*args) -> 'bool' + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the + apply() callback of a custom fixup. + + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) + +Help on function is_fixup_custom in module ida_fixup: + +is_fixup_custom(*args) -> 'bool' + is_fixup_custom(type) -> bool + Is fixup processed by processor module? + + @param type: (C++: fixup_type_t) + +Help on function patch_fixup_value in module ida_fixup: + +patch_fixup_value(*args) -> 'bool' + patch_fixup_value(ea, fd) -> bool + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. + + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. + +Help on function set_fixup in module ida_fixup: + +set_fixup(*args) -> 'void' + set_fixup(source, fd) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. + + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data + +Module "ida_fpro"s docstring: +""" +System independent counterparts of FILE* related functions from Clib. + +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. + +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. + +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" + +Help on class qfile_t in module ida_fpro: + +class qfile_t(builtins.object) + | A helper class to work with FILE related functions. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, rhs) -> qfile_t + | + | @param rhs: qfile_t const & + | + | __init__(self, pycapsule=None) -> qfile_t + | + | @param pycapsule: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qfile_t(...) + | delete_qfile_t(self) + | + | close(self, *args) -> 'void' + | close(self) + | Closes the file + | + | filename(self, *args) -> 'PyObject *' + | filename(self) -> PyObject * + | + | flush(self, *args) -> 'int' + | flush(self) -> int + | + | get_byte(self, *args) -> 'PyObject *' + | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte + | + | get_fp(self, *args) -> 'FILE *' + | get_fp(self) -> FILE * + | + | gets(self, *args) -> 'PyObject *' + | gets(self, size) -> PyObject * + | Reads a line from the input file. Returns the read line or None + | + | @param size: int + | + | open(self, *args) -> 'bool' + | open(self, filename, mode) -> bool + | Opens a file + | + | @param filename: the file name + | @param mode: The mode string, ala fopen() style + | @return: Boolean + | + | opened(self, *args) -> 'bool' + | opened(self) -> bool + | Checks if the file is opened or not + | + | put_byte(self, *args) -> 'int' + | put_byte(self, chr) -> int + | Writes a single byte to the file + | + | @param chr: int + | + | puts(self, *args) -> 'int' + | puts(self, str) -> int + | + | @param str: char const * + | + | read(self, *args) -> 'PyObject *' + | read(self, size) -> PyObject * + | Reads from the file. Returns the buffer or None + | + | @param size: int + | + | readbytes(self, *args) -> 'PyObject *' + | readbytes(self, size, big_endian) -> PyObject * + | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool + | + | seek(self, *args) -> 'int' + | seek(self, offset, whence=SEEK_SET) -> int + | Set input source position + | + | @param offset: int64 + | @param whence: int + | @return: the new position (not 0 as fseek!) + | + | size(self, *args) -> 'int64' + | size(self) -> int64 + | + | tell(self, *args) -> 'int64' + | tell(self) -> int64 + | Returns the current position + | + | write(self, *args) -> 'int' + | write(self, py_buf) -> int + | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * + | + | writebytes(self, *args) -> 'int' + | writebytes(self, py_buf, big_endian) -> int + | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | from_capsule(*args) -> 'qfile_t *' + | from_capsule(pycapsule) -> qfile_t + | + | @param pycapsule: PyObject * + | + | from_fp(*args) -> 'qfile_t *' + | from_fp(fp) -> qfile_t + | + | @param fp: FILE * + | + | tmpfile(*args) -> 'qfile_t *' + | tmpfile() -> qfile_t + | A static method to construct an instance using a temporary file + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __idc_cvt_id__ + | __idc_cvt_id__ + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function qfile_t_from_capsule in module ida_fpro: + +qfile_t_from_capsule(*args) -> 'qfile_t *' + qfile_t_from_capsule(pycapsule) -> qfile_t + + @param pycapsule: PyObject * + +Help on function qfile_t_from_fp in module ida_fpro: + +qfile_t_from_fp(*args) -> 'qfile_t *' + qfile_t_from_fp(fp) -> qfile_t + + @param fp: FILE * + +Help on function qfile_t_tmpfile in module ida_fpro: + +qfile_t_tmpfile(*args) -> 'qfile_t *' + qfile_t_tmpfile() -> qfile_t + +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + +Help on function add_auto_stkpnt in module ida_frame: + +add_auto_stkpnt(*args) -> 'bool' + add_auto_stkpnt(pfn, ea, delta) -> bool + Add automatic SP register change point. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success + +Help on function add_frame in module ida_frame: + +add_frame(*args) -> 'bool' + add_frame(pfn, frsize, frregs, argsize) -> bool + Add function frame. + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) + +Help on function add_regvar in module ida_frame: + +add_regvar(*args) -> 'int' + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int + Define a register variable. + + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition + @return: Register variable error codes + +Help on function add_user_stkpnt in module ida_frame: + +add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool + Add user-defined SP register change point. + + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success + +Help on function build_stkvar_name in module ida_frame: + +build_stkvar_name(*args) -> 'qstring *' + build_stkvar_name(pfn, v) -> str + Build automatic stack variable name. + + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset + @return: length of stack variable name or -1 + +Help on function build_stkvar_xrefs in module ida_frame: + +build_stkvar_xrefs(*args) -> 'void' + build_stkvar_xrefs(out, pfn, mptr) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. + + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. + +Help on function calc_stkvar_struc_offset in module ida_frame: + +calc_stkvar_struc_offset(*args) -> 'ea_t' + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t + Calculate offset of stack variable in the frame structure. + + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) + +Help on function define_stkvar in module ida_frame: + +define_stkvar(*args) -> 'bool' + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool + Define/redefine a stack variable. + + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags64_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable + @return: success + +Help on function del_frame in module ida_frame: + +del_frame(*args) -> 'bool' + del_frame(pfn) -> bool + Delete a function frame. + + @param pfn: (C++: func_t *) pointer to function structure + @return: success + +Help on function del_regvar in module ida_frame: + +del_regvar(*args) -> 'int' + del_regvar(pfn, ea1, ea2, canon) -> int + Delete a register variable definition. + + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @return: Register variable error codes + +Help on function del_stkpnt in module ida_frame: + +del_stkpnt(*args) -> 'bool' + del_stkpnt(pfn, ea) -> bool + Delete SP register change point. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: success + +Help on function delete_unreferenced_stkvars in module ida_frame: + +delete_unreferenced_stkvars(*args) -> 'int' + delete_unreferenced_stkvars(pfn) -> int + + @param pfn: func_t * + +Help on function delete_wrong_stkvar_ops in module ida_frame: + +delete_wrong_stkvar_ops(*args) -> 'int' + delete_wrong_stkvar_ops(pfn) -> int + + @param pfn: func_t * + +Help on function find_regvar in module ida_frame: + +find_regvar(*args) -> 'regvar_t *' + find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + Find a register variable definition. + + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + + @return: nullptr-not found, otherwise ptr to regvar_t + find_regvar(pfn, ea, canon) -> regvar_t + + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * + +Help on function frame_off_args in module ida_frame: + +frame_off_args(*args) -> 'ea_t' + frame_off_args(pfn) -> ea_t + Get starting address of arguments section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function frame_off_lvars in module ida_frame: + +frame_off_lvars(*args) -> 'ea_t' + frame_off_lvars(pfn) -> ea_t + Get start address of local variables section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function frame_off_retaddr in module ida_frame: + +frame_off_retaddr(*args) -> 'ea_t' + frame_off_retaddr(pfn) -> ea_t + Get starting address of return address section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function frame_off_savregs in module ida_frame: + +frame_off_savregs(*args) -> 'ea_t' + frame_off_savregs(pfn) -> ea_t + Get starting address of saved registers section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function free_regvar in module ida_frame: + +free_regvar(*args) -> 'void' + free_regvar(v) + + @param v: regvar_t * + +Help on function get_effective_spd in module ida_frame: + +get_effective_spd(*args) -> 'sval_t' + get_effective_spd(pfn, ea) -> sval_t + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 or the difference, usually a negative number + +Help on function get_frame in module ida_frame: + +get_frame(*args) -> 'struc_t *' + get_frame(pfn) -> struc_t + Get pointer to function frame. + + @param pfn: func_t const * + + get_frame(ea) -> struc_t * + + @param ea: ea_t + +Help on function get_frame_part in module ida_frame: + +get_frame_part(*args) -> 'void' + get_frame_part(range, pfn, part) + Get offsets of the frame part in the frame. + + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part + +Help on function get_frame_retsize in module ida_frame: + +get_frame_retsize(*args) -> 'int' + get_frame_retsize(pfn) -> int + Get size of function return address. + + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + +Help on function get_frame_size in module ida_frame: + +get_frame_size(*args) -> 'asize_t' + get_frame_size(pfn) -> asize_t + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. + + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr + @return: size of frame in bytes or zero + +Help on function get_func_by_frame in module ida_frame: + +get_func_by_frame(*args) -> 'ea_t' + get_func_by_frame(frame_id) -> ea_t + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 + + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR + +Help on function get_min_spd_ea in module ida_frame: + +get_min_spd_ea(*args) -> 'ea_t' + get_min_spd_ea(pfn) -> ea_t + + @param pfn: func_t * + +Help on function get_sp_delta in module ida_frame: + +get_sp_delta(*args) -> 'sval_t' + get_sp_delta(pfn, ea) -> sval_t + Get modification of SP made at the specified location + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. + +Help on function get_spd in module ida_frame: + +get_spd(*args) -> 'sval_t' + get_spd(pfn, ea) -> sval_t + Get difference between the initial and current values of ESP. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. + +Help on function get_stkvar in module ida_frame: + +get_stkvar(*args) -> 'PyObject *' + get_stkvar(insn, op, v) -> (member_t, int) or None + Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: reference to instruction operand + @param v: immediate value in the operand (usually op.addr) + @return: - None on failure + - tuple(member_t, actval) + where actval: actual value used to fetch stack variable + +Help on function has_regvar in module ida_frame: + +has_regvar(*args) -> 'bool' + has_regvar(pfn, ea) -> bool + Is there a register variable definition? + + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address + +Help on function is_funcarg_off in module ida_frame: + +is_funcarg_off(*args) -> 'bool' + is_funcarg_off(pfn, frameoff) -> bool + + @param pfn: func_t const * + @param frameoff: uval_t + +Help on function lvar_off in module ida_frame: + +lvar_off(*args) -> 'sval_t' + lvar_off(pfn, frameoff) -> sval_t + + @param pfn: func_t const * + @param frameoff: uval_t + +Help on function recalc_spd in module ida_frame: + +recalc_spd(*args) -> 'bool' + recalc_spd(cur_ea) -> bool + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed + +Help on class regvar_t in module ida_frame: + +class regvar_t(ida_range.range_t) + | Proxy of C++ regvar_t class. + | + | Method resolution order: + | regvar_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regvar_t + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regvar_t(...) + | delete_regvar_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regvar_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | canon + | canon + | + | cmt + | cmt + | + | thisown + | The membership flag + | + | user + | user + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function rename_regvar in module ida_frame: + +rename_regvar(*args) -> 'int' + rename_regvar(pfn, v, user) -> int + Rename a register variable. + + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register + @return: Register variable error codes + +Help on function set_frame_size in module ida_frame: + +set_frame_size(*args) -> 'bool' + set_frame_size(pfn, frsize, frregs, argsize) -> bool + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return + @return: success + +Help on function set_purged in module ida_frame: + +set_purged(*args) -> 'bool' + set_purged(ea, nbytes, override_old_value) -> bool + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. + + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes + @return: success + +Help on function set_regvar_cmt in module ida_frame: + +set_regvar_cmt(*args) -> 'int' + set_regvar_cmt(pfn, v, cmt) -> int + Set comment for a register variable. + + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment + @return: Register variable error codes + +Help on function soff_to_fpoff in module ida_frame: + +soff_to_fpoff(*args) -> 'sval_t' + soff_to_fpoff(pfn, soff) -> sval_t + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). + + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) + +Help on class stkpnt_t in module ida_frame: + +class stkpnt_t(builtins.object) + | Proxy of C++ stkpnt_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __init__(self, *args) + | __init__(self) -> stkpnt_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkpnt_t(...) + | delete_stkpnt_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: stkpnt_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | spd + | spd + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class stkpnts_t in module ida_frame: + +class stkpnts_t(builtins.object) + | Proxy of C++ stkpnts_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __init__(self, *args) + | __init__(self) -> stkpnts_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkpnts_t(...) + | delete_stkpnts_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: stkpnts_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function update_fpd in module ida_frame: + +update_fpd(*args) -> 'bool' + update_fpd(pfn, fpd) -> bool + Update frame pointer delta. + + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. + @return: success + +Help on class xreflist_entry_t in module ida_frame: + +class xreflist_entry_t(builtins.object) + | Proxy of C++ xreflist_entry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __init__(self, *args) + | __init__(self) -> xreflist_entry_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_xreflist_entry_t(...) + | delete_xreflist_entry_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: xreflist_entry_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | opnum + | opnum + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class xreflist_t in module ida_frame: + +class xreflist_t(builtins.object) + | Proxy of C++ qvector< xreflist_entry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & + | + | __getitem__(self, *args) -> 'xreflist_entry_t const &' + | __getitem__(self, i) -> xreflist_entry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> xreflist_t + | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: xreflist_entry_t const & + | + | __swig_destroy__ = delete_xreflist_t(...) + | delete_xreflist_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: xreflist_entry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: xreflist_entry_t const & + | + | at(self, *args) -> 'xreflist_entry_t const &' + | at(self, _idx) -> xreflist_entry_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' + | begin(self) -> xreflist_entry_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' + | end(self) -> xreflist_entry_t + | + | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' + | erase(self, it) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | + | erase(self, first, last) -> xreflist_entry_t + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator + | + | extract(self, *args) -> 'xreflist_entry_t *' + | extract(self) -> xreflist_entry_t + | + | find(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' + | find(self, x) -> xreflist_entry_t + | + | @param x: xreflist_entry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=xreflist_entry_t()) + | + | @param x: xreflist_entry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: xreflist_entry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: xreflist_entry_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' + | insert(self, it, x) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'xreflist_entry_t &' + | push_back(self, x) + | + | @param x: xreflist_entry_t const & + | + | push_back(self) -> xreflist_entry_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< xreflist_entry_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_funcs"s docstring: +""" +Routines for working with functions within the disassembled program. + +This file also contains routines for working with library signatures (e.g. +FLIRT). + +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. + +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" + +Help on function add_func in module ida_funcs: + +add_func(*args) -> 'bool' + add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success + +Help on function add_func_ex in module ida_funcs: + +add_func_ex(*args) -> 'bool' + add_func_ex(pfn) -> bool + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). + + @param pfn: (C++: func_t *) ptr to filled function structure + @return: success + +Help on function add_regarg in module ida_funcs: + +add_regarg(*args) -> 'void' + add_regarg(pfn, reg, tif, name) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * + +Help on function append_func_tail in module ida_funcs: + +append_func_tail(*args) -> 'bool' + append_func_tail(pfn, ea1, ea2) -> bool + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. + + @param pfn: (C++: func_t *) pointer to the function + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. + +Help on function apply_idasgn_to in module ida_funcs: + +apply_idasgn_to(*args) -> 'int' + apply_idasgn_to(signame, ea, is_startup) -> int + Apply a signature file to the specified address. + + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. + @return: Library function codes + +Help on function apply_startup_sig in module ida_funcs: + +apply_startup_sig(*args) -> 'bool' + apply_startup_sig(ea, startup) -> bool + Apply a startup signature file to the specified address. + + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension + @return: true if successfully applied the signature + +Help on function calc_func_size in module ida_funcs: + +calc_func_size(*args) -> 'asize_t' + calc_func_size(pfn) -> asize_t + Calculate function size. This function takes into account all fragments of the + function. + + @param pfn: (C++: func_t *) ptr to function structure + +Help on function calc_idasgn_state in module ida_funcs: + +calc_idasgn_state(*args) -> 'int' + calc_idasgn_state(n) -> int + Get state of a signature in the list of planned signatures + + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG + +Help on function calc_thunk_func_target in module ida_funcs: + +calc_thunk_func_target(*args) + calc_thunk_func_target(pfn) -> ea_t + Calculate target of a thunk function. + + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR + +Help on function del_func in module ida_funcs: + +del_func(*args) -> 'bool' + del_func(ea) -> bool + Delete a function. + + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success + +Help on function del_idasgn in module ida_funcs: + +del_idasgn(*args) -> 'int' + del_idasgn(n) -> int + Remove signature from the list of planned signatures. + + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED + +Help on class dyn_ea_array in module ida_funcs: + +class dyn_ea_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< ea_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_dyn_ea_array(...) + | delete_dyn_ea_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_range_array in module ida_funcs: + +class dyn_range_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< range_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | + | @param _data: range_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | __swig_destroy__ = delete_dyn_range_array(...) + | delete_dyn_range_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regarg_array in module ida_funcs: + +class dyn_regarg_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regarg_t const &' + | __getitem__(self, i) -> regarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | + | @param _data: regarg_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regarg_t const & + | + | __swig_destroy__ = delete_dyn_regarg_array(...) + | delete_dyn_regarg_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regvar_array in module ida_funcs: + +class dyn_regvar_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regvar_t const &' + | __getitem__(self, i) -> regvar_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | + | @param _data: regvar_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regvar_t const & + | + | __swig_destroy__ = delete_dyn_regvar_array(...) + | delete_dyn_regvar_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_stkpnt_array in module ida_funcs: + +class dyn_stkpnt_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'stkpnt_t const &' + | __getitem__(self, i) -> stkpnt_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | + | @param _data: stkpnt_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: stkpnt_t const & + | + | __swig_destroy__ = delete_dyn_stkpnt_array(...) + | delete_dyn_stkpnt_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on function f_any in module ida_funcs: + +f_any(*args) -> 'bool' + f_any(arg1, arg2) -> bool + Helper function to accept any address. + + @param arg1: flags64_t + @param arg2: void * + +Help on function find_func_bounds in module ida_funcs: + +find_func_bounds(*args) -> 'int' + find_func_bounds(nfn, flags) -> int + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. + + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags + @return: Find function bounds result codes + +Help on function free_regarg in module ida_funcs: + +free_regarg(*args) -> 'void' + free_regarg(v) + + @param v: regarg_t * + +Help on function func_contains in module ida_funcs: + +func_contains(*args) -> 'bool' + func_contains(pfn, ea) -> bool + Does the given function contain the given address? + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) + +Help on function func_does_return in module ida_funcs: + +func_does_return(*args) -> 'bool' + func_does_return(callee) -> bool + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. + + @param callee: (C++: ea_t) + +Help on class func_item_iterator_t in module ida_funcs: + +class func_item_iterator_t(builtins.object) + | Proxy of C++ func_item_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_item_iterator_t + | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items + | + | __next__(self, *args) -> 'bool' + | __next__(self, func) -> bool + | + | @param func: testf_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_item_iterator_t(...) + | delete_func_item_iterator_t(self) + | + | addresses(self) + | Provide an iterator on addresses contained within the function + | + | chunk(self, *args) -> 'range_t const &' + | chunk(self) -> range_t + | + | code_items(self) + | Provide an iterator on code items contained within the function + | + | current(self, *args) -> 'ea_t' + | current(self) -> ea_t + | + | data_items(self) + | Provide an iterator on data items contained within the function + | + | decode_preceding_insn(self, *args) -> 'bool' + | decode_preceding_insn(self, visited, p_farref, out) -> bool + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * + | + | decode_prev_insn(self, *args) -> 'bool' + | decode_prev_insn(self, out) -> bool + | + | @param out: insn_t * + | + | first(self, *args) -> 'bool' + | first(self) -> bool + | + | head_items(self) + | Provide an iterator on item heads contained within the function + | + | last(self, *args) -> 'bool' + | last(self) -> bool + | + | next = __next__(self, *args) -> 'bool' + | + | next_addr(self, *args) -> 'bool' + | next_addr(self) -> bool + | + | next_code(self, *args) -> 'bool' + | next_code(self) -> bool + | + | next_data(self, *args) -> 'bool' + | next_data(self) -> bool + | + | next_head(self, *args) -> 'bool' + | next_head(self) -> bool + | + | next_not_tail(self, *args) -> 'bool' + | next_not_tail(self) -> bool + | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | + | prev(self, *args) -> 'bool' + | prev(self, func) -> bool + | + | @param func: testf_t * + | + | prev_addr(self, *args) -> 'bool' + | prev_addr(self) -> bool + | + | prev_code(self, *args) -> 'bool' + | prev_code(self) -> bool + | + | prev_data(self, *args) -> 'bool' + | prev_data(self) -> bool + | + | prev_head(self, *args) -> 'bool' + | prev_head(self) -> bool + | + | prev_not_tail(self, *args) -> 'bool' + | prev_not_tail(self) -> bool + | + | set(self, *args) -> 'bool' + | set(self, pfn, _ea=BADADDR) -> bool + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) + | + | set_range(self, *args) -> 'bool' + | set_range(self, ea1, ea2) -> bool + | Set an arbitrary range. + | + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) -> 'bool' + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) -> 'bool' + | succ_code(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function func_parent_iterator_set in module ida_funcs: + +func_parent_iterator_set(*args) -> 'bool' + func_parent_iterator_set(fpi, pfn) -> bool + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * + +Help on class func_parent_iterator_t in module ida_funcs: + +class func_parent_iterator_t(builtins.object) + | Proxy of C++ func_parent_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_parent_iterator_t + | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents + | + | __next__(self, *args) -> 'bool' + | __next__(self) -> bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_parent_iterator_t(...) + | delete_func_parent_iterator_t(self) + | + | first(self, *args) -> 'bool' + | first(self) -> bool + | + | last(self, *args) -> 'bool' + | last(self) -> bool + | + | next = __next__(self, *args) -> 'bool' + | + | parent(self, *args) -> 'ea_t' + | parent(self) -> ea_t + | + | prev(self, *args) -> 'bool' + | prev(self) -> bool + | + | reset_fnt(self, *args) -> 'void' + | reset_fnt(self, _fnt) + | + | @param _fnt: func_t * + | + | set(self, *args) -> 'bool' + | set(self, _fnt) -> bool + | + | @param _fnt: func_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_t in module ida_funcs: + +class func_t(ida_range.range_t) + | Proxy of C++ func_t class. + | + | Method resolution order: + | func_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __get_points__(self, *args) -> 'dynamic_wrapped_array_t< stkpnt_t >' + | __get_points__(self) -> dyn_stkpnt_array + | + | __get_referers__(self, *args) -> 'dynamic_wrapped_array_t< ea_t >' + | __get_referers__(self) -> dyn_ea_array + | + | __get_regargs__(self, *args) -> 'dynamic_wrapped_array_t< regarg_t >' + | __get_regargs__(self) -> dyn_regarg_array + | + | __get_regvars__(self, *args) -> 'dynamic_wrapped_array_t< regvar_t >' + | __get_regvars__(self) -> dyn_regvar_array + | + | __get_tails__(self, *args) -> 'dynamic_wrapped_array_t< range_t >' + | __get_tails__(self) -> dyn_range_array + | + | __init__(self, *args) + | __init__(self, start=0, end=0, f=0) -> func_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags64_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_t(...) + | delete_func_t(self) + | + | addresses(self) + | Alias for func_item_iterator_t(self).addresses() + | + | analyzed_sp(self, *args) -> 'bool' + | analyzed_sp(self) -> bool + | Has SP-analysis been performed? + | + | code_items(self) + | Alias for func_item_iterator_t(self).code_items() + | + | data_items(self) + | Alias for func_item_iterator_t(self).data_items() + | + | does_return(self, *args) -> 'bool' + | does_return(self) -> bool + | Does function return? + | + | head_items(self) + | Alias for func_item_iterator_t(self).head_items() + | + | is_far(self, *args) -> 'bool' + | is_far(self) -> bool + | Is a far function? + | + | need_prolog_analysis(self, *args) -> 'bool' + | need_prolog_analysis(self) -> bool + | Needs prolog analysis? + | + | not_tails(self) + | Alias for func_item_iterator_t(self).not_tails() + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | argsize + | argsize + | + | color + | color + | + | flags + | flags + | + | fpd + | fpd + | + | frame + | frame + | + | frregs + | frregs + | + | frsize + | frsize + | + | owner + | owner + | + | pntqty + | pntqty + | + | points + | __get_points__(self) -> dyn_stkpnt_array + | + | referers + | __get_referers__(self) -> dyn_ea_array + | + | refqty + | refqty + | + | regargqty + | regargqty + | + | regargs + | __get_regargs__(self) -> dyn_regarg_array + | + | regvarqty + | regvarqty + | + | regvars + | __get_regvars__(self) -> dyn_regvar_array + | + | tailqty + | tailqty + | + | tails + | __get_tails__(self) -> dyn_range_array + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function func_t__from_ptrval__ in module ida_funcs: + +func_t__from_ptrval__(*args) -> 'func_t *' + func_t__from_ptrval__(ptrval) -> func_t + + @param ptrval: size_t + +Help on function func_tail_iterator_set in module ida_funcs: + +func_tail_iterator_set(*args) -> 'bool' + func_tail_iterator_set(fti, pfn, ea) -> bool + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t + +Help on function func_tail_iterator_set_ea in module ida_funcs: + +func_tail_iterator_set_ea(*args) -> 'bool' + func_tail_iterator_set_ea(fti, ea) -> bool + + @param fti: func_tail_iterator_t * + @param ea: ea_t + +Help on class func_tail_iterator_t in module ida_funcs: + +class func_tail_iterator_t(builtins.object) + | Proxy of C++ func_tail_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_tail_iterator_t + | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails + | + | __next__(self, *args) -> 'bool' + | __next__(self) -> bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_tail_iterator_t(...) + | delete_func_tail_iterator_t(self) + | + | chunk(self, *args) -> 'range_t const &' + | chunk(self) -> range_t + | + | first(self, *args) -> 'bool' + | first(self) -> bool + | + | last(self, *args) -> 'bool' + | last(self) -> bool + | + | main(self, *args) -> 'bool' + | main(self) -> bool + | + | next = __next__(self, *args) -> 'bool' + | + | prev(self, *args) -> 'bool' + | prev(self) -> bool + | + | set(self, *args) -> 'bool' + | set(self, _pfn, ea=BADADDR) -> bool + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | set_ea(self, *args) -> 'bool' + | set_ea(self, ea) -> bool + | + | @param ea: ea_t + | + | set_range(self, *args) -> 'bool' + | set_range(self, ea1, ea2) -> bool + | + | @param ea1: ea_t + | @param ea2: ea_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_current_idasgn in module ida_funcs: + +get_current_idasgn(*args) -> 'int' + get_current_idasgn() -> int + Get number of the the current signature. + + @return: 0..n-1 + +Help on function get_fchunk in module ida_funcs: + +get_fchunk(*args) -> 'func_t *' + get_fchunk(ea) -> func_t + Get pointer to function chunk structure by address. + + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. + +Help on function get_fchunk_num in module ida_funcs: + +get_fchunk_num(*args) -> 'int' + get_fchunk_num(ea) -> int + Get ordinal number of a function chunk in the global list of function chunks. + + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. + +Help on function get_fchunk_qty in module ida_funcs: + +get_fchunk_qty(*args) -> 'size_t' + get_fchunk_qty() -> size_t + Get total number of function chunks in the program. + +Help on function get_fchunk_referer in module ida_funcs: + +get_fchunk_referer(*args) -> 'ea_t' + get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t + +Help on function get_func in module ida_funcs: + +get_func(*args) -> 'func_t *' + get_func(ea) -> func_t + Get pointer to function structure by address. + + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. + +Help on function get_func_bitness in module ida_funcs: + +get_func_bitness(*args) -> 'int' + get_func_bitness(pfn) -> int + Get function bitness (which is equal to the function segment bitness). + pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 + + @param pfn: (C++: const func_t *) func_t const * + +Help on function get_func_bits in module ida_funcs: + +get_func_bits(*args) -> 'int' + get_func_bits(pfn) -> int + Get number of bits in the function addressing. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function get_func_bytes in module ida_funcs: + +get_func_bytes(*args) -> 'int' + get_func_bytes(pfn) -> int + Get number of bytes in the function addressing. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function get_func_chunknum in module ida_funcs: + +get_func_chunknum(*args) -> 'int' + get_func_chunknum(pfn, ea) -> int + Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) + +Help on function get_func_cmt in module ida_funcs: + +get_func_cmt(*args) -> 'qstring *' + get_func_cmt(pfn, repeatable) -> str + Get function comment. + + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. + +Help on function get_func_name in module ida_funcs: + +get_func_name(*args) -> 'qstring *' + get_func_name(ea) -> str + Get function name. + + @param ea: (C++: ea_t) any address in the function + @return: length of the function name + +Help on function get_func_num in module ida_funcs: + +get_func_num(*args) -> 'int' + get_func_num(ea) -> int + Get ordinal number of a function. + + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. + +Help on function get_func_qty in module ida_funcs: + +get_func_qty(*args) -> 'size_t' + get_func_qty() -> size_t + Get total number of functions in the program. + +Help on function get_func_ranges in module ida_funcs: + +get_func_ranges(*args) -> 'ea_t' + get_func_ranges(ranges, pfn) -> ea_t + Get function ranges. + + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure + @return: end address of the last function range (BADADDR-error) + +Help on function get_idasgn_desc in module ida_funcs: + +get_idasgn_desc(*args) -> 'PyObject *' + get_idasgn_desc(n) -> (str, str) + Get information about a signature in the list. + It returns: (name of signature, names of optional libraries) + + See also: get_idasgn_desc_with_matches + + @param n: number of signature in the list (0..get_idasgn_qty()-1) + @return: None on failure or tuple(signame, optlibs) + +Help on function get_idasgn_desc_with_matches in module ida_funcs: + +get_idasgn_desc_with_matches(*args) -> 'PyObject *' + get_idasgn_desc_with_matches(n) -> (str, str, int) + Get information about a signature in the list. + It returns: (name of signature, names of optional libraries, number of matches) + + @param n: number of signature in the list (0..get_idasgn_qty()-1) + @return: None on failure or tuple(signame, optlibs, nmatches) + +Help on function get_idasgn_qty in module ida_funcs: + +get_idasgn_qty(*args) -> 'int' + get_idasgn_qty() -> int + Get number of signatures in the list of planned and applied signatures. + + @return: 0..n + +Help on function get_idasgn_title in module ida_funcs: + +get_idasgn_title(*args) -> 'qstring *' + get_idasgn_title(name) -> str + Get full description of the signature by its short name. + + @param name: (C++: const char *) short name of a signature + @return: size of signature description or -1 + +Help on function get_next_fchunk in module ida_funcs: + +get_next_fchunk(*args) -> 'func_t *' + get_next_fchunk(ea) -> func_t + Get pointer to the next function chunk in the global list. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist + +Help on function get_next_func in module ida_funcs: + +get_next_func(*args) -> 'func_t *' + get_next_func(ea) -> func_t + Get pointer to the next function. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist + +Help on function get_next_func_addr in module ida_funcs: + +get_next_func_addr(*args) -> 'ea_t' + get_next_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t + +Help on function get_prev_fchunk in module ida_funcs: + +get_prev_fchunk(*args) -> 'func_t *' + get_prev_fchunk(ea) -> func_t + Get pointer to the previous function chunk in the global list. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist + +Help on function get_prev_func in module ida_funcs: + +get_prev_func(*args) -> 'func_t *' + get_prev_func(ea) -> func_t + Get pointer to the previous function. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist + +Help on function get_prev_func_addr in module ida_funcs: + +get_prev_func_addr(*args) -> 'ea_t' + get_prev_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t + +Help on function getn_fchunk in module ida_funcs: + +getn_fchunk(*args) -> 'func_t *' + getn_fchunk(n) -> func_t + Get pointer to function chunk structure by number. + + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. + +Help on function getn_func in module ida_funcs: + +getn_func(*args) -> 'func_t *' + getn_func(n) -> func_t + Get pointer to function structure by number. + + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. + +Help on function is_finally_visible_func in module ida_funcs: + +is_finally_visible_func(*args) -> 'bool' + is_finally_visible_func(pfn) -> bool + Is the function visible (event after considering SCF_SHHID_FUNC)? + + @param pfn: (C++: func_t *) + +Help on function is_func_entry in module ida_funcs: + +is_func_entry(*args) -> 'bool' + is_func_entry(pfn) -> bool + Does function describe a function entry chunk? + + @param pfn: (C++: const func_t *) func_t const * + +Help on function is_func_locked in module ida_funcs: + +is_func_locked(*args) -> 'bool' + is_func_locked(pfn) -> bool + Is the function pointer locked? + + @param pfn: (C++: const func_t *) func_t const * + +Help on function is_func_tail in module ida_funcs: + +is_func_tail(*args) -> 'bool' + is_func_tail(pfn) -> bool + Does function describe a function tail chunk? + + @param pfn: (C++: const func_t *) func_t const * + +Help on function is_same_func in module ida_funcs: + +is_same_func(*args) -> 'bool' + is_same_func(ea1, ea2) -> bool + Do two addresses belong to the same function? + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + +Help on function is_visible_func in module ida_funcs: + +is_visible_func(*args) -> 'bool' + is_visible_func(pfn) -> bool + Is the function visible (not hidden)? + + @param pfn: (C++: func_t *) + +Help on class lock_func in module ida_funcs: + +class lock_func(builtins.object) + | Proxy of C++ lock_func class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _pfn) -> lock_func + | + | @param _pfn: func_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lock_func(...) + | delete_lock_func(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function lock_func_range in module ida_funcs: + +lock_func_range(*args) -> 'void' + lock_func_range(pfn, lock) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) + +Help on function plan_to_apply_idasgn in module ida_funcs: + +plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int + Add a signature file to the list of planned signature files. + + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures + +Help on function read_regargs in module ida_funcs: + +read_regargs(*args) -> 'void' + read_regargs(pfn) + + @param pfn: func_t * + +Help on function reanalyze_function in module ida_funcs: + +reanalyze_function(*args) -> 'void' + reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. + + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. + +Help on function reanalyze_noret_flag in module ida_funcs: + +reanalyze_noret_flag(*args) -> 'bool' + reanalyze_noret_flag(ea) -> bool + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. + + @param ea: (C++: ea_t) + +Help on class regarg_t in module ida_funcs: + +class regarg_t(builtins.object) + | Proxy of C++ regarg_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regarg_t + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regarg_t(...) + | delete_regarg_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regarg_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | reg + | reg + | + | thisown + | The membership flag + | + | type + | type + +Help on function remove_func_tail in module ida_funcs: + +remove_func_tail(*args) -> 'bool' + remove_func_tail(pfn, tail_ea) -> bool + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. + + @param pfn: (C++: func_t *) pointer to the function + @param tail_ea: (C++: ea_t) any address inside the tail to remove + +Help on function set_func_cmt in module ida_funcs: + +set_func_cmt(*args) -> 'bool' + set_func_cmt(pfn, cmt, repeatable) -> bool + Set function comment. This function works with function chunks too. + + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? + +Help on function set_func_end in module ida_funcs: + +set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool + Move function chunk end address. + + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success + +Help on function set_func_name_if_jumpfunc in module ida_funcs: + +set_func_name_if_jumpfunc(*args) -> 'int' + set_func_name_if_jumpfunc(pfn, oldname) -> int + Give a meaningful name to function if it consists of only 'jump' instruction. + + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. + @return: success + +Help on function set_func_start in module ida_funcs: + +set_func_start(*args) -> 'int' + set_func_start(ea, newstart) -> int + Move function chunk start address. + + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function + @return: Function move result codes + +Help on function set_noret_insn in module ida_funcs: + +set_noret_insn(*args) -> 'bool' + set_noret_insn(insn_ea, noret) -> bool + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() + + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) + @return: true if the instruction 'noret' flag has been changed + +Help on function set_tail_owner in module ida_funcs: + +set_tail_owner(*args) -> 'bool' + set_tail_owner(fnt, new_owner) -> bool + Set a new owner of a function tail. The new owner function must be already + referring to the tail (after append_func_tail). + + @param fnt: (C++: func_t *) pointer to the function tail + @param new_owner: (C++: ea_t) the entry point of the new owner function + +Help on function set_visible_func in module ida_funcs: + +set_visible_func(*args) -> 'void' + set_visible_func(pfn, visible) + Set visibility of function. + + @param pfn: (C++: func_t *) + @param visible: (C++: bool) + +Help on function try_to_add_libfunc in module ida_funcs: + +try_to_add_libfunc(*args) -> 'int' + try_to_add_libfunc(ea) -> int + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. + + @param ea: (C++: ea_t) any address in the program + @return: Library function codes + +Help on function update_func in module ida_funcs: + +update_func(*args) -> 'bool' + update_func(pfn) -> bool + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. + + @param pfn: (C++: func_t *) ptr to function structure + @return: success + +Module "ida_gdl"s docstring: +""" +Low level graph drawing operations.""" + +Help on class BasicBlock in module ida_gdl: + +class BasicBlock(builtins.object) + | Basic block class. It is returned by the Flowchart class + | + | Methods defined here: + | + | __init__(self, id, bb, fc) + | Initialize self. See help(type(self)) for accurate signature. + | + | preds(self) + | Iterates the predecessors list + | + | succs(self) + | Iterates the successors list + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class FlowChart in module ida_gdl: + +class FlowChart(builtins.object) + | Flowchart class used to determine basic blocks. + | Check ex_gdl_qflow_chart.py for sample usage. + | + | Methods defined here: + | + | __getitem__(self, index) + | Returns a basic block + | + | @return: BasicBlock + | + | __init__(self, f=None, bounds=None, flags=0) + | Constructor + | @param f: A func_t type, use get_func(ea) to get a reference + | @param bounds: A tuple of the form (start, end). Used if "f" is None + | @param flags: one of the FC_xxxx flags. + | + | __iter__(self) + | + | _getitem(self, index) + | + | refresh(self) + | Refreshes the flow chart + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | size + +Help on class cancellable_graph_t in module ida_gdl: + +class cancellable_graph_t(gdl_graph_t) + | Proxy of C++ cancellable_graph_t class. + | + | Method resolution order: + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> cancellable_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cancellable_graph_t(...) + | delete_cancellable_graph_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cancelled + | cancelled + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function display_gdl in module ida_gdl: + +display_gdl(*args) -> 'int' + display_gdl(fname) -> int + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. + + @param fname: (C++: const char *) char const * + @return: error code from os, 0 if ok + +Help on class gdl_graph_t in module ida_gdl: + +class gdl_graph_t(builtins.object) + | Proxy of C++ gdl_graph_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function gen_complex_call_chart in module ida_gdl: + +gen_complex_call_chart(*args) -> 'bool' + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool + Build and display a complex xref graph. + + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen + +Help on function gen_flow_graph in module ida_gdl: + +gen_flow_graph(*args) -> 'bool' + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool + Build and display a flow graph. + + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen + +Help on function gen_gdl in module ida_gdl: + +gen_gdl(*args) -> 'void' + gen_gdl(g, fname) + Create GDL file for graph. + + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * + +Help on function gen_simple_call_chart in module ida_gdl: + +gen_simple_call_chart(*args) -> 'bool' + gen_simple_call_chart(filename, wait, title, gflags) -> bool + Build and display a simple function call graph. + + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen + +Help on function is_noret_block in module ida_gdl: + +is_noret_block(*args) -> 'bool' + is_noret_block(btype) -> bool + Does this block never return? + + @param btype: (C++: fc_block_type_t) enum fc_block_type_t + +Help on function is_ret_block in module ida_gdl: + +is_ret_block(*args) -> 'bool' + is_ret_block(btype) -> bool + Does this block return? + + @param btype: (C++: fc_block_type_t) enum fc_block_type_t + +Help on class node_iterator in module ida_gdl: + +class node_iterator(builtins.object) + | Proxy of C++ node_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: node_iterator const & + | + | __init__(self, *args) + | __init__(self, _g, n) -> node_iterator + | + | @param _g: gdl_graph_t const * + | @param n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: node_iterator const & + | + | __ref__(self, *args) -> 'int' + | __ref__(self) -> int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_node_iterator(...) + | delete_node_iterator(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qbasic_block_t in module ida_gdl: + +class qbasic_block_t(ida_range.range_t) + | Proxy of C++ qbasic_block_t class. + | + | Method resolution order: + | qbasic_block_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> qbasic_block_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qbasic_block_t(...) + | delete_qbasic_block_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on class qflow_chart_t in module ida_gdl: + +class qflow_chart_t(cancellable_graph_t) + | Proxy of C++ qflow_chart_t class. + | + | Method resolution order: + | qflow_chart_t + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'qbasic_block_t *' + | __getitem__(self, n) -> qbasic_block_t + | + | @param n: int + | + | __init__(self, *args) + | __init__(self) -> qflow_chart_t + | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qflow_chart_t(...) + | delete_qflow_chart_t(self) + | + | append_to_flowchart(self, *args) -> 'void' + | append_to_flowchart(self, ea1, ea2) + | + | @param ea1: ea_t + | @param ea2: ea_t + | + | calc_block_type(self, *args) -> 'fc_block_type_t' + | calc_block_type(self, blknum) -> fc_block_type_t + | + | @param blknum: size_t + | + | create(self, *args) -> 'void' + | create(self, _title, _pfn, _ea1, _ea2, _flags) + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int + | + | create(self, _title, ranges, _flags) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | is_noret_block(self, *args) -> 'bool' + | is_noret_block(self, blknum) -> bool + | + | @param blknum: size_t + | + | is_ret_block(self, *args) -> 'bool' + | is_ret_block(self, blknum) -> bool + | + | @param blknum: size_t + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_names(self, *args) -> 'bool' + | print_names(self) -> bool + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | refresh(self, *args) -> 'void' + | refresh(self) + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bounds + | bounds + | + | flags + | flags + | + | nproper + | nproper + | + | pfn + | pfn + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from cancellable_graph_t: + | + | __disown__(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cancellable_graph_t: + | + | cancelled + | cancelled + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Module "ida_graph"s docstring: +""" +Graph view management.""" + +Help on class GraphViewer in module ida_graph: + +class GraphViewer(ida_kernwin.CustomIDAMemo) + | Proxy of C++ View_Hooks class. + | + | Method resolution order: + | GraphViewer + | ida_kernwin.CustomIDAMemo + | ida_kernwin.View_Hooks + | builtins.object + | + | Methods defined here: + | + | AddCommand(self, title, shortcut) + | + | AddEdge(self, src_node, dest_node) + | Creates an edge between two given node ids + | + | AddNode(self, obj) + | Creates a node associated with the given object and returns the node id + | + | Clear(self) + | Clears all the nodes and edges + | + | Close(self) + | Closes the graph. + | It is possible to call Show() again (which will recreate the graph) + | + | Count(self) + | Returns the node count + | + | OnCommand(self, cmd_id) + | + | OnPopup(self, widget, popup_handle) + | + | OnRefresh(self) + | Event called when the graph is refreshed or first created. + | From this event you are supposed to create nodes and edges. + | This callback is mandatory. + | + | @note: ***It is important to clear previous nodes before adding nodes.*** + | @return: Returning True tells the graph viewer to use the items. Otherwise old items will be used. + | + | Select(self, node_id) + | Selects a node on the graph + | + | Show(self) + | Shows an existing graph or creates a new one + | + | @return: Boolean + | + | __getitem__(self, idx) + | Returns a reference to the object associated with this node id + | + | __init__(self, title, close_open=False) + | Constructs the GraphView object. + | Please do not remove or rename the private fields + | + | @param title: The title of the graph window + | @param close_open: Should it attempt to close an existing graph (with same title) before creating this graph? + | + | __iter__(self) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | UI_Hooks_Trampoline = <class 'ida_graph.GraphViewer.UI_Hooks_Trampolin... + | Proxy of C++ UI_Hooks class. + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_kernwin.CustomIDAMemo: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods inherited from ida_kernwin.CustomIDAMemo: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_kernwin.View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_kernwin.View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class TPointDouble in module ida_graph: + +class TPointDouble(builtins.object) + | Proxy of C++ TPointDouble class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: TPointDouble const & + | + | __init__(self, *args) + | __init__(self) -> TPointDouble + | __init__(self, a, b) -> TPointDouble + | + | @param a: double + | @param b: double + | + | __init__(self, r) -> TPointDouble + | + | @param r: point_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: TPointDouble const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_TPointDouble(...) + | delete_TPointDouble(self) + | + | add(self, *args) -> 'void' + | add(self, r) + | + | @param r: TPointDouble const & + | + | negate(self, *args) -> 'void' + | negate(self) + | + | sub(self, *args) -> 'void' + | sub(self, r) + | + | @param r: TPointDouble const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class abstract_graph_t in module ida_graph: + +class abstract_graph_t(ida_gdl.gdl_graph_t) + | Proxy of C++ abstract_graph_t class. + | + | Method resolution order: + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_abstract_graph_t(...) + | delete_abstract_graph_t(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function calc_dist in module ida_graph: + +calc_dist(*args) -> 'double' + calc_dist(p, q) -> double + Calculate distance between p and q. + + @param p: (C++: point_t) + @param q: (C++: point_t) + +Help on function clr_node_info in module ida_graph: + +clr_node_info(*args) -> 'void' + clr_node_info(gid, node, flags) + Clear node info for the given node. + + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared + +Help on function create_disasm_graph in module ida_graph: + +create_disasm_graph(*args) -> 'mutable_graph_t *' + create_disasm_graph(ea) -> mutable_graph_t + Create a graph using an arbitrary set of ranges. + + @param ea: ea_t + + create_disasm_graph(ranges) -> mutable_graph_t + + @param ranges: rangevec_t const & + +Help on function create_graph_viewer in module ida_graph: + +create_graph_viewer(*args) -> 'graph_viewer_t *' + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * + Create a custom graph viewer. + + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) the parent widget of the graph viewer + @return: new viewer + +Help on function create_mutable_graph in module ida_graph: + +create_mutable_graph(*args) -> 'mutable_graph_t *' + create_mutable_graph(id) -> mutable_graph_t + Create a new empty graph with given id. + + @param id: (C++: uval_t) + +Help on function create_user_graph_place in module ida_graph: + +create_user_graph_place(*args) -> 'user_graph_place_t *' + create_user_graph_place(node, lnnum) -> user_graph_place_t + Get a copy of a user_graph_place_t (returns a pointer to static storage) + + @param node: (C++: int) + @param lnnum: (C++: int) + +Help on function del_node_info in module ida_graph: + +del_node_info(*args) -> 'void' + del_node_info(gid, node) + Delete the node_info_t for the given node. + + @param gid: (C++: graph_id_t) + @param node: (C++: int) + +Help on function delete_mutable_graph in module ida_graph: + +delete_mutable_graph(*args) -> 'void' + delete_mutable_graph(g) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it + + @param g: (C++: mutable_graph_t *) + +Help on class edge_info_t in module ida_graph: + +class edge_info_t(builtins.object) + | Proxy of C++ edge_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> edge_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_info_t(...) + | delete_edge_info_t(self) + | + | reverse_layout(self, *args) -> 'void' + | reverse_layout(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | color + | color + | + | dstoff + | dstoff + | + | layout + | layout + | + | srcoff + | srcoff + | + | thisown + | The membership flag + | + | width + | width + +Help on class edge_infos_wrapper_t in module ida_graph: + +class edge_infos_wrapper_t(builtins.object) + | Proxy of C++ edge_infos_wrapper_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ptr + | ptr + | + | thisown + | The membership flag + +Help on class edge_layout_point_t in module ida_graph: + +class edge_layout_point_t(builtins.object) + | Proxy of C++ edge_layout_point_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: edge_layout_point_t const & + | + | __init__(self, *args) + | __init__(self) -> edge_layout_point_t + | __init__(self, _e, _pidx) -> edge_layout_point_t + | + | @param _e: edge_t const & + | @param _pidx: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: edge_layout_point_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_layout_point_t(...) + | delete_edge_layout_point_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: edge_layout_point_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | e + | e + | + | pidx + | pidx + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class edge_segment_t in module ida_graph: + +class edge_segment_t(builtins.object) + | Proxy of C++ edge_segment_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> edge_segment_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: edge_segment_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_segment_t(...) + | delete_edge_segment_t(self) + | + | length(self, *args) -> 'size_t' + | length(self) -> size_t + | + | toright(self, *args) -> 'bool' + | toright(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | e + | e + | + | nseg + | nseg + | + | thisown + | The membership flag + | + | x0 + | x0 + | + | x1 + | x1 + +Help on class edge_t in module ida_graph: + +class edge_t(builtins.object) + | Proxy of C++ edge_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, y) -> bool + | + | @param y: edge_t const & + | + | __init__(self, *args) + | __init__(self) -> edge_t + | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, y) -> bool + | + | @param y: edge_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, y) -> bool + | + | @param y: edge_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_t(...) + | delete_edge_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dst + | dst + | + | src + | src + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function get_graph_viewer in module ida_graph: + +get_graph_viewer(*args) -> 'graph_viewer_t *' + get_graph_viewer(parent) -> graph_viewer_t * + Get custom graph viewer for given form. + + @param parent: (C++: TWidget *) + +Help on function get_node_info in module ida_graph: + +get_node_info(*args) -> 'bool' + get_node_info(out, gid, node) -> bool + Get node info. + + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @return: success + +Help on function get_viewer_graph in module ida_graph: + +get_viewer_graph(*args) -> 'mutable_graph_t *' + get_viewer_graph(gv) -> mutable_graph_t + Get graph object for given custom graph viewer. + + @param gv: (C++: graph_viewer_t *) + +Help on class graph_item_t in module ida_graph: + +class graph_item_t(builtins.object) + | Proxy of C++ graph_item_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> graph_item_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_item_t(...) + | delete_graph_item_t(self) + | + | is_edge(self, *args) -> 'bool' + | is_edge(self) -> bool + | + | is_node(self, *args) -> 'bool' + | is_node(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | b + | b + | + | e + | e + | + | elp + | elp + | + | n + | n + | + | p + | p + | + | thisown + | The membership flag + | + | type + | type + +Help on class graph_node_visitor_t in module ida_graph: + +class graph_node_visitor_t(builtins.object) + | Proxy of C++ graph_node_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> graph_node_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_node_visitor_t(...) + | delete_graph_node_visitor_t(self) + | + | is_forbidden_edge(self, *args) -> 'bool' + | is_forbidden_edge(self, arg0, arg1) -> bool + | Should the edge between 'n' and 'm' be ignored? + | + | @param arg0: int + | @param arg1: int + | + | is_visited(self, *args) -> 'bool' + | is_visited(self, n) -> bool + | Have we already visited the given node? + | + | @param n: (C++: int) + | + | reinit(self, *args) -> 'void' + | reinit(self) + | Reset visited nodes. + | + | set_visited(self, *args) -> 'void' + | set_visited(self, n) + | Mark node as visited. + | + | @param n: (C++: int) + | + | visit_node(self, *args) -> 'int' + | visit_node(self, arg0) -> int + | Implements action to take when a node is visited. + | + | @param arg0: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class graph_path_visitor_t in module ida_graph: + +class graph_path_visitor_t(builtins.object) + | Proxy of C++ graph_path_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> graph_path_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_path_visitor_t(...) + | delete_graph_path_visitor_t(self) + | + | walk_backward(self, *args) -> 'int' + | walk_backward(self, arg0) -> int + | + | @param arg0: int + | + | walk_forward(self, *args) -> 'int' + | walk_forward(self, arg0) -> int + | + | @param arg0: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | path + | path + | + | prune + | prune + | + | thisown + | The membership flag + +Help on class graph_visitor_t in module ida_graph: + +class graph_visitor_t(builtins.object) + | Proxy of C++ graph_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> graph_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_visitor_t(...) + | delete_graph_visitor_t(self) + | + | visit_edge(self, *args) -> 'int' + | visit_edge(self, arg2, arg3) -> int + | + | @param arg2: edge_t + | @param arg3: edge_info_t * + | + | visit_node(self, *args) -> 'int' + | visit_node(self, arg2, arg3) -> int + | + | @param arg2: int + | @param arg3: rect_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class group_crinfo_t in module ida_graph: + +class group_crinfo_t(builtins.object) + | Proxy of C++ group_crinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> group_crinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_group_crinfo_t(...) + | delete_group_crinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nodes + | nodes + | + | text + | text + | + | thisown + | The membership flag + +Help on class interval_t in module ida_graph: + +class interval_t(builtins.object) + | Proxy of C++ interval_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: interval_t const & + | + | __init__(self, *args) + | __init__(self) -> interval_t + | __init__(self, y0, y1) -> interval_t + | + | @param y0: int + | @param y1: int + | + | __init__(self, s) -> interval_t + | + | @param s: edge_segment_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: interval_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_interval_t(...) + | delete_interval_t(self) + | + | contains(self, *args) -> 'bool' + | contains(self, x) -> bool + | + | @param x: int + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | + | @param r: interval_t const & + | + | length(self, *args) -> 'int' + | length(self) -> int + | + | make_union(self, *args) -> 'void' + | make_union(self, r) + | + | @param r: interval_t const & + | + | move_by(self, *args) -> 'void' + | move_by(self, shift) + | + | @param shift: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x0 + | x0 + | + | x1 + | x1 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mutable_graph_t in module ida_graph: + +class mutable_graph_t(abstract_graph_t) + | Proxy of C++ mutable_graph_t class. + | + | Method resolution order: + | mutable_graph_t + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mutable_graph_t(...) + | delete_mutable_graph_t(self) + | + | add_edge(self, *args) -> 'bool' + | add_edge(self, i, j, ei) -> bool + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * + | + | add_node(self, *args) -> 'int' + | add_node(self, r) -> int + | Add a node, possibly with a specific geometry + | + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node + | + | calc_group_ea(self, *args) -> 'ea_t' + | calc_group_ea(self, arg2) -> ea_t + | + | @param arg2: intvec_t const & + | + | change_group_visibility(self, *args) -> 'bool' + | change_group_visibility(self, group, expand) -> bool + | Expand/collapse a group node + | + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success + | + | create_digraph_layout(self, *args) -> 'bool' + | create_digraph_layout(self) -> bool + | + | create_group(self, *args) -> 'int' + | create_group(self, nodes) -> int + | Create a new group node, that will contain all the nodes in 'nodes'. + | + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error + | + | del_custom_layout(self, *args) -> 'void' + | del_custom_layout(self) + | + | del_edge(self, *args) -> 'bool' + | del_edge(self, i, j) -> bool + | + | @param i: int + | @param j: int + | + | del_node(self, *args) -> 'ssize_t' + | del_node(self, n) -> ssize_t + | Delete a node + | + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges + | + | delete_group(self, *args) -> 'bool' + | delete_group(self, group) -> bool + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | Is the node visible? + | + | @param node: (C++: int) the node number + | @return: success + | + | get_custom_layout(self, *args) -> 'bool' + | get_custom_layout(self) -> bool + | + | get_first_subgraph_node(self, *args) -> 'int' + | get_first_subgraph_node(self, group) -> int + | + | @param group: int + | + | get_graph_groups(self, *args) -> 'bool' + | get_graph_groups(self) -> bool + | + | get_next_subgraph_node(self, *args) -> 'int' + | get_next_subgraph_node(self, group, current) -> int + | + | @param group: int + | @param current: int + | + | get_node_group(self, *args) -> 'int' + | get_node_group(self, node) -> int + | + | @param node: int + | + | get_node_representative(self, *args) -> 'int' + | get_node_representative(self, node) -> int + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group + | + | is_collapsed_node(self, *args) -> 'bool' + | is_collapsed_node(self, node) -> bool + | + | @param node: int + | + | is_deleted_node(self, *args) -> 'bool' + | is_deleted_node(self, node) -> bool + | + | @param node: int + | + | is_displayable_node(self, *args) -> 'bool' + | is_displayable_node(self, node) -> bool + | + | @param node: int + | + | is_dot_node(self, *args) -> 'bool' + | is_dot_node(self, node) -> bool + | + | @param node: int + | + | is_group_node(self, *args) -> 'bool' + | is_group_node(self, node) -> bool + | + | @param node: int + | + | is_simple_node(self, *args) -> 'bool' + | is_simple_node(self, node) -> bool + | + | @param node: int + | + | is_subgraph_node(self, *args) -> 'bool' + | is_subgraph_node(self, node) -> bool + | + | @param node: int + | + | is_uncollapsed_node(self, *args) -> 'bool' + | is_uncollapsed_node(self, node) -> bool + | + | @param node: int + | + | is_user_graph(self, *args) -> 'bool' + | is_user_graph(self) -> bool + | + | is_visible_node(self, *args) -> 'bool' + | is_visible_node(self, node) -> bool + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes + | + | npred(self, *args) -> 'int' + | npred(self, b) -> int + | + | @param b: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, b) -> int + | + | @param b: int + | + | pred(self, *args) -> 'int' + | pred(self, b, i) -> int + | + | @param b: int + | @param i: int + | + | predset(self, *args) -> 'intvec_t const &' + | predset(self, b) -> intvec_t const & + | + | @param b: int + | + | redo_layout(self, *args) -> 'bool' + | redo_layout(self) -> bool + | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success + | + | refresh(self, *args) -> 'bool' + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success + | + | replace_edge(self, *args) -> 'bool' + | replace_edge(self, i, j, x, y) -> bool + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int + | + | reset(self, *args) -> 'void' + | reset(self) + | + | resize(self, *args) -> 'void' + | resize(self, n) + | Resize the graph to 'n' nodes + | + | @param n: (C++: int) the new size + | + | set_custom_layout(self, *args) -> 'void' + | set_custom_layout(self) + | + | set_deleted_node(self, *args) -> 'void' + | set_deleted_node(self, node) + | + | @param node: int + | + | set_edge(self, *args) -> 'bool' + | set_edge(self, e, ei) -> bool + | + | @param e: edge_t + | @param ei: edge_info_t const * + | + | set_graph_groups(self, *args) -> 'void' + | set_graph_groups(self) + | + | set_node_group(self, *args) -> 'void' + | set_node_group(self, node, group) + | + | @param node: int + | @param group: int + | + | set_nrect(self, *args) -> 'bool' + | set_nrect(self, n, r) -> bool + | + | @param n: int + | @param r: rect_t const & + | + | size(self, *args) -> 'int' + | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph + | + | succ(self, *args) -> 'int' + | succ(self, b, i) -> int + | + | @param b: int + | @param i: int + | + | succset(self, *args) -> 'intvec_t const &' + | succset(self, b) -> intvec_t const & + | + | @param b: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | belongs + | belongs + | + | edges + | edges + | + | gid + | gid + | + | node_flags + | node_flags + | + | nodes + | nodes + | + | org_preds + | org_preds + | + | org_succs + | org_succs + | + | preds + | preds + | + | succs + | succs + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from abstract_graph_t: + | + | __disown__(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from abstract_graph_t: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class node_info_t in module ida_graph: + +class node_info_t(builtins.object) + | Proxy of C++ node_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> node_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_node_info_t(...) + | delete_node_info_t(self) + | + | get_flags_for_valid(self, *args) -> 'uint32' + | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. + | + | valid_bg_color(self, *args) -> 'bool' + | valid_bg_color(self) -> bool + | Has valid bg_color? + | + | valid_ea(self, *args) -> 'bool' + | valid_ea(self) -> bool + | Has valid ea? + | + | valid_flags(self, *args) -> 'bool' + | valid_flags(self) -> bool + | Has valid flags? + | + | valid_frame_color(self, *args) -> 'bool' + | valid_frame_color(self) -> bool + | Has valid frame_color? + | + | valid_text(self, *args) -> 'bool' + | valid_text(self) -> bool + | Has non-empty text? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bg_color + | bg_color + | + | ea + | ea + | + | flags + | flags + | + | frame_color + | frame_color + | + | text + | text + | + | thisown + | The membership flag + +Help on class node_layout_t in module ida_graph: + +class node_layout_t(builtins.object) + | Proxy of C++ qvector< rect_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< rect_t > const & + | + | __getitem__(self, *args) -> 'rect_t const &' + | __getitem__(self, i) -> rect_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> node_layout_t + | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< rect_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rect_t const & + | + | __swig_destroy__ = delete_node_layout_t(...) + | delete_node_layout_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rect_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: rect_t const & + | + | at(self, *args) -> 'rect_t const &' + | at(self, _idx) -> rect_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< rect_t >::const_iterator' + | begin(self) -> rect_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< rect_t >::const_iterator' + | end(self) -> rect_t + | + | erase(self, *args) -> 'qvector< rect_t >::iterator' + | erase(self, it) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | + | erase(self, first, last) -> rect_t + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator + | + | extract(self, *args) -> 'rect_t *' + | extract(self) -> rect_t + | + | find(self, *args) -> 'qvector< rect_t >::const_iterator' + | find(self, x) -> rect_t + | + | @param x: rect_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=rect_t()) + | + | @param x: rect_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: rect_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: rect_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< rect_t >::iterator' + | insert(self, it, x) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'rect_t &' + | push_back(self, x) + | + | @param x: rect_t const & + | + | push_back(self) -> rect_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rect_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< rect_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class node_ordering_t in module ida_graph: + +class node_ordering_t(builtins.object) + | Proxy of C++ node_ordering_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> node_ordering_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_node_ordering_t(...) + | delete_node_ordering_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | clr(self, *args) -> 'bool' + | clr(self, _node) -> bool + | + | @param _node: int + | + | node(self, *args) -> 'int' + | node(self, _order) -> int + | + | @param _order: size_t + | + | order(self, *args) -> 'int' + | order(self, _node) -> int + | + | @param _node: int + | + | resize(self, *args) -> 'void' + | resize(self, n) + | + | @param n: int + | + | set(self, *args) -> 'void' + | set(self, _node, num) + | + | @param _node: int + | @param num: int + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class point_t in module ida_graph: + +class point_t(builtins.object) + | Proxy of C++ point_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: point_t const & + | + | __init__(self, *args) + | __init__(self) -> point_t + | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: point_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_point_t(...) + | delete_point_t(self) + | + | add(self, *args) -> 'point_t &' + | add(self, r) -> point_t + | + | @param r: point_t const & + | + | negate(self, *args) -> 'void' + | negate(self) + | + | sub(self, *args) -> 'point_t &' + | sub(self, r) -> point_t + | + | @param r: point_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class pointseq_t in module ida_graph: + +class pointseq_t(pointvec_t) + | Proxy of C++ pointseq_t class. + | + | Method resolution order: + | pointseq_t + | pointvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pointseq_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pointseq_t(...) + | delete_pointseq_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from pointvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __getitem__(self, *args) -> 'point_t const &' + | __getitem__(self, i) -> point_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: point_t const & + | + | at(self, *args) -> 'point_t const &' + | at(self, _idx) -> point_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< point_t >::const_iterator' + | begin(self) -> point_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< point_t >::const_iterator' + | end(self) -> point_t + | + | erase(self, *args) -> 'qvector< point_t >::iterator' + | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | + | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator + | + | extract(self, *args) -> 'point_t *' + | extract(self) -> point_t + | + | find(self, *args) -> 'qvector< point_t >::const_iterator' + | find(self, x) -> point_t + | + | @param x: point_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=point_t()) + | + | @param x: point_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: point_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< point_t >::iterator' + | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'point_t &' + | push_back(self, x) + | + | @param x: point_t const & + | + | push_back(self) -> point_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< point_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pointvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pointvec_t: + | + | __hash__ = None + +Help on class pointvec_t in module ida_graph: + +class pointvec_t(builtins.object) + | Proxy of C++ qvector< point_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __getitem__(self, *args) -> 'point_t const &' + | __getitem__(self, i) -> point_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> pointvec_t + | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & + | + | __swig_destroy__ = delete_pointvec_t(...) + | delete_pointvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: point_t const & + | + | at(self, *args) -> 'point_t const &' + | at(self, _idx) -> point_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< point_t >::const_iterator' + | begin(self) -> point_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< point_t >::const_iterator' + | end(self) -> point_t + | + | erase(self, *args) -> 'qvector< point_t >::iterator' + | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | + | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator + | + | extract(self, *args) -> 'point_t *' + | extract(self) -> point_t + | + | find(self, *args) -> 'qvector< point_t >::const_iterator' + | find(self, x) -> point_t + | + | @param x: point_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=point_t()) + | + | @param x: point_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: point_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< point_t >::iterator' + | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'point_t &' + | push_back(self, x) + | + | @param x: point_t const & + | + | push_back(self) -> point_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< point_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function pyg_close in module ida_graph: + +pyg_close(*args) -> 'void' + pyg_close(_self) + + @param self: PyObject * + +Help on function pyg_select_node in module ida_graph: + +pyg_select_node(*args) -> 'void' + pyg_select_node(_self, nid) + + @param self: PyObject * + @param nid: int + +Help on function pyg_show in module ida_graph: + +pyg_show(*args) -> 'bool' + pyg_show(_self) -> bool + + @param self: PyObject * + +Help on class rect_t in module ida_graph: + +class rect_t(builtins.object) + | Proxy of C++ rect_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: rect_t const & + | + | __init__(self, *args) + | __init__(self) -> rect_t + | __init__(self, l, t, r, b) -> rect_t + | + | @param l: int + | @param t: int + | @param r: int + | @param b: int + | + | __init__(self, p0, p1) -> rect_t + | + | @param p0: point_t const & + | @param p1: point_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: rect_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rect_t(...) + | delete_rect_t(self) + | + | area(self, *args) -> 'int' + | area(self) -> int + | + | bottomright(self, *args) -> 'point_t' + | bottomright(self) -> point_t + | + | center(self, *args) -> 'point_t' + | center(self) -> point_t + | + | contains(self, *args) -> 'bool' + | contains(self, p) -> bool + | + | @param p: point_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | grow(self, *args) -> 'void' + | grow(self, delta) + | + | @param delta: int + | + | height(self, *args) -> 'int' + | height(self) -> int + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | + | @param r: rect_t const & + | + | is_intersection_empty(self, *args) -> 'bool' + | is_intersection_empty(self, r) -> bool + | + | @param r: rect_t const & + | + | make_union(self, *args) -> 'void' + | make_union(self, r) + | + | @param r: rect_t const & + | + | move_by(self, *args) -> 'void' + | move_by(self, p) + | + | @param p: point_t const & + | + | move_to(self, *args) -> 'void' + | move_to(self, p) + | + | @param p: point_t const & + | + | topleft(self, *args) -> 'point_t' + | topleft(self) -> point_t + | + | width(self, *args) -> 'int' + | width(self) -> int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bottom + | bottom + | + | left + | left + | + | right + | right + | + | thisown + | The membership flag + | + | top + | top + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function refresh_viewer in module ida_graph: + +refresh_viewer(*args) -> 'void' + refresh_viewer(gv) + Redraw the graph in the given view. + + @param gv: (C++: graph_viewer_t *) + +Help on class row_info_t in module ida_graph: + +class row_info_t(builtins.object) + | Proxy of C++ row_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> row_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_row_info_t(...) + | delete_row_info_t(self) + | + | height(self, *args) -> 'int' + | height(self) -> int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bottom + | bottom + | + | nodes + | nodes + | + | thisown + | The membership flag + | + | top + | top + +Help on class screen_graph_selection_base_t in module ida_graph: + +class screen_graph_selection_base_t(builtins.object) + | Proxy of C++ qvector< selection_item_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __getitem__(self, *args) -> 'selection_item_t const &' + | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> screen_graph_selection_base_t + | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & + | + | __swig_destroy__ = delete_screen_graph_selection_base_t(...) + | delete_screen_graph_selection_base_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & + | + | at(self, *args) -> 'selection_item_t const &' + | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | begin(self) -> selection_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | end(self) -> selection_item_t + | + | erase(self, *args) -> 'qvector< selection_item_t >::iterator' + | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | + | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator + | + | extract(self, *args) -> 'selection_item_t *' + | extract(self) -> selection_item_t + | + | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: selection_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< selection_item_t >::iterator' + | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'selection_item_t &' + | push_back(self, x) + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< selection_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class screen_graph_selection_t in module ida_graph: + +class screen_graph_selection_t(screen_graph_selection_base_t) + | Proxy of C++ screen_graph_selection_t class. + | + | Method resolution order: + | screen_graph_selection_t + | screen_graph_selection_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> screen_graph_selection_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_screen_graph_selection_t(...) + | delete_screen_graph_selection_t(self) + | + | add(self, *args) -> 'void' + | add(self, s) + | + | @param s: screen_graph_selection_t const & + | + | add_node(self, *args) -> 'void' + | add_node(self, node) + | + | @param node: int + | + | add_point(self, *args) -> 'void' + | add_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int + | + | del_node(self, *args) -> 'void' + | del_node(self, node) + | + | @param node: int + | + | del_point(self, *args) -> 'void' + | del_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int + | + | has(self, *args) -> 'bool' + | has(self, item) -> bool + | + | @param item: selection_item_t const & + | + | items_count(self, *args) -> 'size_t' + | items_count(self, look_for_nodes) -> size_t + | + | @param look_for_nodes: bool + | + | nodes_count(self, *args) -> 'size_t' + | nodes_count(self) -> size_t + | + | points_count(self, *args) -> 'size_t' + | points_count(self) -> size_t + | + | sub(self, *args) -> 'void' + | sub(self, s) + | + | @param s: screen_graph_selection_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from screen_graph_selection_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __getitem__(self, *args) -> 'selection_item_t const &' + | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & + | + | at(self, *args) -> 'selection_item_t const &' + | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | begin(self) -> selection_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | end(self) -> selection_item_t + | + | erase(self, *args) -> 'qvector< selection_item_t >::iterator' + | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | + | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator + | + | extract(self, *args) -> 'selection_item_t *' + | extract(self) -> selection_item_t + | + | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< selection_item_t >::iterator' + | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'selection_item_t &' + | push_back(self, x) + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< selection_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from screen_graph_selection_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from screen_graph_selection_base_t: + | + | __hash__ = None + +Help on class selection_item_t in module ida_graph: + +class selection_item_t(builtins.object) + | Proxy of C++ selection_item_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: selection_item_t const & + | + | __init__(self, *args) + | __init__(self) -> selection_item_t + | __init__(self, n) -> selection_item_t + | + | @param n: int + | + | __init__(self, _elp) -> selection_item_t + | + | @param _elp: edge_layout_point_t & + | + | __init__(self, e, idx) -> selection_item_t + | + | @param e: edge_t + | @param idx: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: selection_item_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: selection_item_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_selection_item_t(...) + | delete_selection_item_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: selection_item_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | elp + | elp + | + | is_node + | is_node + | + | node + | node + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function set_node_info in module ida_graph: + +set_node_info(*args) -> 'void' + set_node_info(gid, node, ni, flags) + Set node info. + + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used + +Help on function set_viewer_graph in module ida_graph: + +set_viewer_graph(*args) -> 'void' + set_viewer_graph(gv, g) + Set the underlying graph object for the given viewer. + + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) + +Help on class user_graph_place_t in module ida_graph: + +class user_graph_place_t(builtins.object) + | Proxy of C++ user_graph_place_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_graph_place_t(...) + | delete_user_graph_place_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | node + | node + | + | thisown + | The membership flag + +Help on function viewer_attach_menu_item in module ida_graph: + +viewer_attach_menu_item(*args) -> 'bool' + viewer_attach_menu_item(g, name) -> bool + Attach a previously-registered action to the view's context menu. See + kernwin.hpp for how to register actions. + + @param g: (C++: graph_viewer_t *) graph viewer + @param name: (C++: const char *) action name + @return: success + +Help on function viewer_center_on in module ida_graph: + +viewer_center_on(*args) -> 'void' + viewer_center_on(gv, node) + Center the graph view on the given node. + + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) + +Help on function viewer_create_groups in module ida_graph: + +viewer_create_groups(*args) -> 'bool' + viewer_create_groups(gv, out_group_nodes, gi) -> bool + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. + + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & + +Help on function viewer_del_node_info in module ida_graph: + +viewer_del_node_info(*args) -> 'void' + viewer_del_node_info(gv, n) + Delete node info for node in given viewer (see del_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + +Help on function viewer_delete_groups in module ida_graph: + +viewer_delete_groups(*args) -> 'bool' + viewer_delete_groups(gv, groups, new_current=-1) -> bool + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) + +Help on function viewer_fit_window in module ida_graph: + +viewer_fit_window(*args) -> 'void' + viewer_fit_window(gv) + Fit graph viewer to its parent form. + + @param gv: (C++: graph_viewer_t *) + +Help on function viewer_get_curnode in module ida_graph: + +viewer_get_curnode(*args) -> 'int' + viewer_get_curnode(gv) -> int + Get number of currently selected node (-1 if none) + + @param gv: (C++: graph_viewer_t *) + +Help on function viewer_get_gli in module ida_graph: + +viewer_get_gli(*args) -> 'bool' + viewer_get_gli(out, gv, flags=0) -> bool + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. + + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) + +Help on function viewer_get_node_info in module ida_graph: + +viewer_get_node_info(*args) -> 'bool' + viewer_get_node_info(gv, out, n) -> bool + Get node info for node in given viewer (see get_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) + +Help on function viewer_get_selection in module ida_graph: + +viewer_get_selection(*args) -> 'bool' + viewer_get_selection(gv, sgs) -> bool + Get currently selected items for graph viewer. + + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) + +Help on function viewer_set_gli in module ida_graph: + +viewer_set_gli(*args) -> 'void' + viewer_set_gli(gv, gli, flags=0) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. + + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) + +Help on function viewer_set_groups_visibility in module ida_graph: + +viewer_set_groups_visibility(*args) -> 'bool' + viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) + +Help on function viewer_set_node_info in module ida_graph: + +viewer_set_node_info(*args) -> 'void' + viewer_set_node_info(gv, n, ni, flags) + Set node info for node in given viewer (see set_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) + +Help on function viewer_set_titlebar_height in module ida_graph: + +viewer_set_titlebar_height(*args) -> 'int' + viewer_set_titlebar_height(gv, height) -> int + Set height of node title bars (grcode_set_titlebar_height) + + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) + +Module "ida_hexrays"s docstring: +""" +""" + +Help on class DecompilationFailure in module ida_hexrays: + +class DecompilationFailure(builtins.Exception) + | Common base class for all non-exit exceptions. + | + | Method resolution order: + | DecompilationFailure + | builtins.Exception + | builtins.BaseException + | builtins.object + | + | Methods defined here: + | + | add_note = dummy_replacement() + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.Exception: + | + | __init__(self, /, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __new__(*args, **kwargs) from builtins.type + | Create and return a new object. See help(type) for accurate signature. + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.BaseException: + | + | __delattr__(self, name, /) + | Implement delattr(self, name). + | + | __getattribute__(self, name, /) + | Return getattr(self, name). + | + | __reduce__(...) + | helper for pickle + | + | __repr__(self, /) + | Return repr(self). + | + | __setattr__(self, name, value, /) + | Implement setattr(self, name, value). + | + | __setstate__(...) + | + | __str__(self, /) + | Return str(self). + | + | with_traceback(...) + | Exception.with_traceback(tb) -- + | set self.__traceback__ to tb and return self. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from builtins.BaseException: + | + | __cause__ + | exception cause + | + | __context__ + | exception context + | + | __dict__ + | + | __suppress_context__ + | + | __traceback__ + | + | args + +Help on class Hexrays_Hooks in module ida_hexrays: + +class Hexrays_Hooks(builtins.object) + | Proxy of C++ Hexrays_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_Hexrays_Hooks(...) + | delete_Hexrays_Hooks(self) + | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | + | close_pseudocode(self, *args) -> 'int' + | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) + | + | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) + | + | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one + | + | create_hint(self, *args) -> 'PyObject *' + | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints + | + | curpos(self, *args) -> 'int' + | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) + | + | double_click(self, *args) -> 'int' + | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) + | + | func_printed(self, *args) -> 'int' + | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) + | + | glbopt(self, *args) -> 'int' + | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | interr(self, *args) -> 'int' + | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) + | + | keyboard(self, *args) -> 'int' + | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | + | maturity(self, *args) -> 'int' + | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) + | + | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | open_pseudocode(self, *args) -> 'int' + | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) + | + | populating_popup(self, *args) -> 'int' + | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) + | + | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes + | + | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | print_func(self, *args) -> 'int' + | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. + | + | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code + | + | refresh_pseudocode(self, *args) -> 'int' + | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier + | + | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) + | + | right_click(self, *args) -> 'int' + | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) + | + | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code + | + | structural(self, *args) -> 'int' + | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) + | + | switch_pseudocode(self, *args) -> 'int' + | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) + | + | text_ready(self, *args) -> 'int' + | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __cbhooks_t in module ida_hexrays: + +class __cbhooks_t(Hexrays_Hooks) + | Proxy of C++ Hexrays_Hooks class. + | + | Method resolution order: + | __cbhooks_t + | Hexrays_Hooks + | builtins.object + | + | Methods defined here: + | + | __init__(self, callback) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | close_pseudocode(self, *args) + | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) + | + | create_hint(self, *args) + | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints + | + | curpos(self, *args) + | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) + | + | double_click(self, *args) + | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | func_printed(self, *args) + | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) + | + | interr(self, *args) + | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) + | + | keyboard(self, *args) + | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | maturity(self, *args) + | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) + | + | open_pseudocode(self, *args) + | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) + | + | populating_popup(self, *args) + | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) + | + | print_func(self, *args) + | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. + | + | refresh_pseudocode(self, *args) + | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier + | + | right_click(self, *args) + | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) + | + | switch_pseudocode(self, *args) + | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) + | + | text_ready(self, *args) + | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | instances = [] + | + | ---------------------------------------------------------------------- + | Methods inherited from Hexrays_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_Hexrays_Hooks(...) + | delete_Hexrays_Hooks(self) + | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | + | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) + | + | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) + | + | glbopt(self, *args) -> 'int' + | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | + | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes + | + | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code + | + | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) + | + | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code + | + | structural(self, *args) -> 'int' + | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from Hexrays_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function _call_with_transferrable_ownership in module ida_hexrays: + +_call_with_transferrable_ownership(fun, *args) + # Object ownership + +Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: + +_kludge_force_declare_TPopupMenu(*args) -> 'void' + _kludge_force_declare_TPopupMenu(arg1) + + Parameters + ---------- + arg1: TPopupMenu const * + +Help on function _ll_call_helper in module ida_hexrays: + +_ll_call_helper(*args) -> 'cexpr_t *' + _ll_call_helper(rettype, args, format) -> cexpr_t + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * + +Help on function _ll_create_helper in module ida_hexrays: + +_ll_create_helper(*args) -> 'cexpr_t *' + _ll_create_helper(standalone, type, format) -> cexpr_t + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * + +Help on function _ll_dereference in module ida_hexrays: + +_ll_dereference(*args) -> 'cexpr_t *' + _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool + +Help on function _ll_lnot in module ida_hexrays: + +_ll_lnot(*args) -> 'cexpr_t *' + _ll_lnot(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + +Help on function _ll_make_num in module ida_hexrays: + +_ll_make_num(*args) -> 'cexpr_t *' + _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int + +Help on function _ll_make_ref in module ida_hexrays: + +_ll_make_ref(*args) -> 'cexpr_t *' + _ll_make_ref(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + +Help on function _ll_new_block in module ida_hexrays: + +_ll_new_block(*args) -> 'cinsn_t *' + _ll_new_block() -> cinsn_t + +Help on function _map_as_dict in module ida_hexrays: + +_map_as_dict(maptype, name, keytype, valuetype) + # dictify all dict-like types + +Help on function accepts_small_udts in module ida_hexrays: + +accepts_small_udts(*args) -> 'bool' + accepts_small_udts(op) -> bool + Is the operator allowed on small structure or union? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function accepts_udts in module ida_hexrays: + +accepts_udts(*args) -> 'bool' + accepts_udts(op) -> bool + + @param op: enum ctype_t + +Help on function arglocs_overlap in module ida_hexrays: + +arglocs_overlap(*args) -> 'bool' + arglocs_overlap(loc1, w1, loc2, w2) -> bool + Do two arglocs overlap? + + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) + +Help on class array_of_bitsets in module ida_hexrays: + +class array_of_bitsets(builtins.object) + | Proxy of C++ qvector< bitset_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & + | + | __getitem__(self, *args) -> 'bitset_t const &' + | __getitem__(self, i) -> bitset_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> array_of_bitsets + | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bitset_t const & + | + | __swig_destroy__ = delete_array_of_bitsets(...) + | delete_array_of_bitsets(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bitset_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: bitset_t const & + | + | at(self, *args) -> 'bitset_t const &' + | at(self, _idx) -> bitset_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< bitset_t >::const_iterator' + | begin(self) -> bitset_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< bitset_t >::const_iterator' + | end(self) -> bitset_t + | + | erase(self, *args) -> 'qvector< bitset_t >::iterator' + | erase(self, it) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | + | erase(self, first, last) -> bitset_t + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator + | + | extract(self, *args) -> 'bitset_t *' + | extract(self) -> bitset_t + | + | find(self, *args) -> 'qvector< bitset_t >::const_iterator' + | find(self, x) -> bitset_t + | + | @param x: bitset_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=bitset_t()) + | + | @param x: bitset_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: bitset_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: bitset_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< bitset_t >::iterator' + | insert(self, it, x) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'bitset_t &' + | push_back(self, x) + | + | @param x: bitset_t const & + | + | push_back(self) -> bitset_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bitset_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< bitset_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class array_of_ivlsets in module ida_hexrays: + +class array_of_ivlsets(builtins.object) + | Proxy of C++ qvector< ivlset_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & + | + | __getitem__(self, *args) -> 'ivlset_t const &' + | __getitem__(self, i) -> ivlset_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> array_of_ivlsets + | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ivlset_t const & + | + | __swig_destroy__ = delete_array_of_ivlsets(...) + | delete_array_of_ivlsets(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ivlset_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ivlset_t const & + | + | at(self, *args) -> 'ivlset_t const &' + | at(self, _idx) -> ivlset_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ivlset_t >::const_iterator' + | begin(self) -> ivlset_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ivlset_t >::const_iterator' + | end(self) -> ivlset_t + | + | erase(self, *args) -> 'qvector< ivlset_t >::iterator' + | erase(self, it) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | + | erase(self, first, last) -> ivlset_t + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator + | + | extract(self, *args) -> 'ivlset_t *' + | extract(self) -> ivlset_t + | + | find(self, *args) -> 'qvector< ivlset_t >::const_iterator' + | find(self, x) -> ivlset_t + | + | @param x: ivlset_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ivlset_t()) + | + | @param x: ivlset_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ivlset_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ivlset_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ivlset_t >::iterator' + | insert(self, it, x) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ivlset_t &' + | push_back(self, x) + | + | @param x: ivlset_t const & + | + | push_back(self) -> ivlset_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ivlset_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ivlset_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function asgop in module ida_hexrays: + +asgop(*args) -> 'ctype_t' + asgop(cop) -> ctype_t + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. + + @param cop: (C++: ctype_t) enum ctype_t + +Help on function asgop_revert in module ida_hexrays: + +asgop_revert(*args) -> 'ctype_t' + asgop_revert(cop) -> ctype_t + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add + + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. + +Help on class bit_bound_t in module ida_hexrays: + +class bit_bound_t(builtins.object) + | Proxy of C++ bit_bound_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, n=0, s=0) -> bit_bound_t + | + | @param n: int + | @param s: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bit_bound_t(...) + | delete_bit_bound_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nbits + | nbits + | + | sbits + | sbits + | + | thisown + | The membership flag + +Help on class bitset_t in module ida_hexrays: + +class bitset_t(builtins.object) + | Proxy of C++ bitset_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __init__(self, *args) + | __init__(self) -> bitset_t + | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __len__ = count(self, *args) -> 'int' + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bitset_t(...) + | delete_bitset_t(self) + | + | add(self, *args) -> 'bool' + | add(self, bit) -> bool + | + | @param bit: int + | + | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | add(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | back(self, *args) -> 'int' + | back(self) -> int + | + | begin(self, *args) -> 'bitset_t::iterator' + | begin(self) -> iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitset_t const & + | + | copy(self, *args) -> 'bitset_t &' + | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & + | + | count(self, *args) -> 'int' + | count(self) -> int + | count(self, bit) -> int + | + | @param bit: int + | + | cut_at(self, *args) -> 'bool' + | cut_at(self, maxbit) -> bool + | + | @param maxbit: int + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'bitset_t::iterator' + | end(self) -> iterator + | + | fill_with_ones(self, *args) -> 'void' + | fill_with_ones(self, maxbit) + | + | @param maxbit: int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | has(self, *args) -> 'bool' + | has(self, bit) -> bool + | + | @param bit: int + | + | has_all(self, *args) -> 'bool' + | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_any(self, *args) -> 'bool' + | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_common(self, *args) -> 'bool' + | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | inc(self, *args) -> 'void' + | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int + | + | includes(self, *args) -> 'bool' + | includes(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | itat(self, *args) -> 'bitset_t::iterator' + | itat(self, n) -> iterator + | + | @param n: int + | + | itv(self, *args) -> 'int' + | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator + | + | last(self, *args) -> 'int' + | last(self) -> int + | + | shift_down(self, *args) -> 'void' + | shift_down(self, shift) + | + | @param shift: int + | + | sub(self, *args) -> 'bool' + | sub(self, bit) -> bool + | + | @param bit: int + | + | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | sub(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: bitset_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function block_chains_begin in module ida_hexrays: + +block_chains_begin(*args) -> 'block_chains_iterator_t' + block_chains_begin(set) -> block_chains_iterator_t + Get iterator pointing to the beginning of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + +Help on function block_chains_clear in module ida_hexrays: + +block_chains_clear(*args) -> 'void' + block_chains_clear(set) + Clear block_chains_t. + + @param set: (C++: block_chains_t *) + +Help on function block_chains_end in module ida_hexrays: + +block_chains_end(*args) -> 'block_chains_iterator_t' + block_chains_end(set) -> block_chains_iterator_t + Get iterator pointing to the end of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + +Help on function block_chains_erase in module ida_hexrays: + +block_chains_erase(*args) -> 'void' + block_chains_erase(set, p) + Erase current element from block_chains_t. + + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_find in module ida_hexrays: + +block_chains_find(*args) -> 'block_chains_iterator_t' + block_chains_find(set, val) -> block_chains_iterator_t + Find the specified key in set block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & + +Help on function block_chains_free in module ida_hexrays: + +block_chains_free(*args) -> 'void' + block_chains_free(set) + Delete block_chains_t instance. + + @param set: (C++: block_chains_t *) + +Help on function block_chains_get in module ida_hexrays: + +block_chains_get(*args) -> 'chain_t &' + block_chains_get(p) -> chain_t + Get reference to the current set value. + + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_insert in module ida_hexrays: + +block_chains_insert(*args) -> 'block_chains_iterator_t' + block_chains_insert(set, val) -> block_chains_iterator_t + Insert new (chain_t) into set block_chains_t. + + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & + +Help on class block_chains_iterator_t in module ida_hexrays: + +class block_chains_iterator_t(builtins.object) + | Proxy of C++ block_chains_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> block_chains_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_block_chains_iterator_t(...) + | delete_block_chains_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function block_chains_new in module ida_hexrays: + +block_chains_new(*args) -> 'block_chains_t *' + block_chains_new() -> block_chains_t + Create a new block_chains_t instance. + +Help on function block_chains_next in module ida_hexrays: + +block_chains_next(*args) -> 'block_chains_iterator_t' + block_chains_next(p) -> block_chains_iterator_t + Move to the next element. + + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_prev in module ida_hexrays: + +block_chains_prev(*args) -> 'block_chains_iterator_t' + block_chains_prev(p) -> block_chains_iterator_t + Move to the previous element. + + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_size in module ida_hexrays: + +block_chains_size(*args) -> 'size_t' + block_chains_size(set) -> size_t + Get size of block_chains_t. + + @param set: (C++: block_chains_t *) + +Help on class block_chains_t in module ida_hexrays: + +class block_chains_t(builtins.object) + | Proxy of C++ block_chains_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> block_chains_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_block_chains_t(...) + | delete_block_chains_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | get_chain(self, *args) -> 'chain_t *' + | get_chain(self, k, width=1) -> chain_t + | + | @param k: voff_t const & + | @param width: int + | + | get_chain(self, ch) -> chain_t + | + | @param ch: chain_t const & + | + | get_reg_chain(self, *args) -> 'chain_t *' + | get_reg_chain(self, reg, width=1) -> chain_t + | + | @param reg: mreg_t + | @param width: int + | + | get_stk_chain(self, *args) -> 'chain_t *' + | get_stk_chain(self, off, width=1) -> chain_t + | + | @param off: sval_t + | @param width: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class block_chains_vec_t in module ida_hexrays: + +class block_chains_vec_t(builtins.object) + | Proxy of C++ qvector< block_chains_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'block_chains_t const &' + | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> block_chains_vec_t + | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & + | + | __swig_destroy__ = delete_block_chains_vec_t(...) + | delete_block_chains_vec_t(self) + | + | at(self, *args) -> 'block_chains_t const &' + | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | begin(self) -> block_chains_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | end(self) -> block_chains_t + | + | erase(self, *args) -> 'qvector< block_chains_t >::iterator' + | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | + | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator + | + | extract(self, *args) -> 'block_chains_t *' + | extract(self) -> block_chains_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< block_chains_t >::iterator' + | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'block_chains_t &' + | push_back(self, x) + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< block_chains_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function boundaries_begin in module ida_hexrays: + +boundaries_begin(*args) -> 'boundaries_iterator_t' + boundaries_begin(map) -> boundaries_iterator_t + Get iterator pointing to the beginning of boundaries_t. + + @param map: (C++: const boundaries_t *) boundaries_t const * + +Help on function boundaries_clear in module ida_hexrays: + +boundaries_clear(*args) -> 'void' + boundaries_clear(map) + Clear boundaries_t. + + @param map: (C++: boundaries_t *) + +Help on function boundaries_end in module ida_hexrays: + +boundaries_end(*args) -> 'boundaries_iterator_t' + boundaries_end(map) -> boundaries_iterator_t + Get iterator pointing to the end of boundaries_t. + + @param map: (C++: const boundaries_t *) boundaries_t const * + +Help on function boundaries_erase in module ida_hexrays: + +boundaries_erase(*args) -> 'void' + boundaries_erase(map, p) + Erase current element from boundaries_t. + + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_find in module ida_hexrays: + +boundaries_find(*args) -> 'boundaries_iterator_t' + boundaries_find(map, key) -> boundaries_iterator_t + Find the specified key in boundaries_t. + + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * + +Help on function boundaries_first in module ida_hexrays: + +boundaries_first(*args) -> 'cinsn_t *const &' + boundaries_first(p) -> cinsn_t + Get reference to the current map key. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_free in module ida_hexrays: + +boundaries_free(*args) -> 'void' + boundaries_free(map) + Delete boundaries_t instance. + + @param map: (C++: boundaries_t *) + +Help on function boundaries_insert in module ida_hexrays: + +boundaries_insert(*args) -> 'boundaries_iterator_t' + boundaries_insert(map, key, val) -> boundaries_iterator_t + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. + + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & + +Help on class boundaries_iterator_t in module ida_hexrays: + +class boundaries_iterator_t(builtins.object) + | Proxy of C++ boundaries_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> boundaries_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_boundaries_iterator_t(...) + | delete_boundaries_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function boundaries_new in module ida_hexrays: + +boundaries_new(*args) -> 'boundaries_t *' + boundaries_new() -> boundaries_t + Create a new boundaries_t instance. + +Help on function boundaries_next in module ida_hexrays: + +boundaries_next(*args) -> 'boundaries_iterator_t' + boundaries_next(p) -> boundaries_iterator_t + Move to the next element. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_prev in module ida_hexrays: + +boundaries_prev(*args) -> 'boundaries_iterator_t' + boundaries_prev(p) -> boundaries_iterator_t + Move to the previous element. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_second in module ida_hexrays: + +boundaries_second(*args) -> 'rangeset_t &' + boundaries_second(p) -> rangeset_t + Get reference to the current map value. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_size in module ida_hexrays: + +boundaries_size(*args) -> 'size_t' + boundaries_size(map) -> size_t + Get size of boundaries_t. + + @param map: (C++: boundaries_t *) + +Help on class boundaries_t in module ida_hexrays: + +class boundaries_t(builtins.object) + | Proxy of C++ std::map< cinsn_t *,rangeset_t > class. + | + | Methods defined here: + | + | __begin = boundaries_begin(...) + | boundaries_begin(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | + | __clear = boundaries_clear(...) + | boundaries_clear(map) + | + | Parameters + | ---------- + | map: boundaries_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = boundaries_end(...) + | boundaries_end(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | + | __erase = boundaries_erase(...) + | boundaries_erase(map, p) + | + | Parameters + | ---------- + | map: boundaries_t * + | p: boundaries_iterator_t + | + | __find = boundaries_find(...) + | boundaries_find(map, key) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | key: cinsn_t const * + | + | __first = boundaries_first(...) + | boundaries_first(p) -> cinsn_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> boundaries_t + | + | __insert = boundaries_insert(...) + | boundaries_insert(map, key, val) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t * + | key: cinsn_t const * + | val: rangeset_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = boundaries_next(...) + | boundaries_next(p) -> boundaries_iterator_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = boundaries_second(...) + | boundaries_second(p) -> rangeset_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = boundaries_size(...) + | boundaries_size(map) -> size_t + | + | Parameters + | ---------- + | map: boundaries_t * + | + | __swig_destroy__ = delete_boundaries_t(...) + | delete_boundaries_t(self) + | + | at(self, *args) -> 'rangeset_t &' + | at(self, _Keyval) -> rangeset_t + | + | @param _Keyval: cinsn_t *const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.cinsn_t'> + | Proxy of C++ cinsn_t class. + | + | valuetype = <class 'ida_range.rangeset_t'> + | Proxy of C++ rangeset_t class. + +Help on function call_helper in module ida_hexrays: + +call_helper(rettype, args, *rest) + Create a helper call. + +Help on class carg_t in module ida_hexrays: + +class carg_t(cexpr_t) + | Proxy of C++ carg_t class. + | + | Method resolution order: + | carg_t + | cexpr_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: carg_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: carg_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: carg_t const & + | + | __init__(self, *args) + | __init__(self) -> carg_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: carg_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: carg_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: carg_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_carg_t(...) + | delete_carg_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: carg_t const & + | + | consume_cexpr(self, *args) -> 'void' + | consume_cexpr(self, e) + | + | @param e: cexpr_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | formal_type + | formal_type + | + | is_vararg + | is_vararg + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cexpr_t: + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_a(self, *args) -> 'carglist_t *' + | _get_a(self) -> carglist_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_insn(self, *args) -> 'cinsn_t *' + | _get_insn(self) -> cinsn_t + | + | _get_m(self, *args) -> 'int' + | _get_m(self) -> int + | + | _get_n(self, *args) -> 'cnumber_t *' + | _get_n(self) -> cnumber_t + | + | _get_obj_ea(self, *args) -> 'ea_t' + | _get_obj_ea(self) -> ea_t + | + | _get_ptrsize(self, *args) -> 'int' + | _get_ptrsize(self) -> int + | + | _get_refwidth(self, *args) -> 'int' + | _get_refwidth(self) -> int + | + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * + | + | _get_x(self, *args) -> 'cexpr_t *' + | _get_x(self) -> cexpr_t + | + | _get_y(self, *args) -> 'cexpr_t *' + | _get_y(self) -> cexpr_t + | + | _get_z(self, *args) -> 'cexpr_t *' + | _get_z(self) -> cexpr_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_insn(self, *args) -> 'void' + | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * + | + | _set_m(self, *args) -> 'void' + | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_n(self, *args) -> 'void' + | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * + | + | _set_obj_ea(self, *args) -> 'void' + | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_ptrsize(self, *args) -> 'void' + | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_refwidth(self, *args) -> 'void' + | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_string(self, *args) -> 'void' + | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_x(self, *args) -> 'void' + | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_y(self, *args) -> 'void' + | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_z(self, *args) -> 'void' + | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | assign(self, *args) -> 'cexpr_t &' + | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & + | + | calc_type(self, *args) -> 'void' + | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. + | + | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) + | + | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) + | + | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? + | + | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP + | + | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | equal_effect(self, *args) -> 'bool' + | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal + | + | find_num_op(self, *args) -> 'cexpr_t *' + | find_num_op(self) -> cexpr_t + | + | find_op(self, *args) -> 'cexpr_t *' + | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t + | + | get_1num_op(self, *args) -> 'bool' + | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** + | + | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. + | + | get_high_nbit_bound(self, *args) -> 'bit_bound_t' + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero + | + | get_low_nbit_bound(self, *args) -> 'int' + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. + | + | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. + | + | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t + | Get expression sign. + | + | get_v(self, *args) -> 'var_ref_t *' + | get_v(self) -> var_ref_t + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. + | + | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. + | + | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. + | + | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent + | + | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) + | + | is_cstr(self, *args) -> 'bool' + | is_cstr(self) -> bool + | + | is_fpop(self, *args) -> 'bool' + | is_fpop(self) -> bool + | + | is_jumpout(self, *args) -> 'bool' + | is_jumpout(self) -> bool + | + | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool + | Check if the expression is a negative number. + | + | is_nice_cond(self, *args) -> 'bool' + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. + | + | is_nice_expr(self, *args) -> 'bool' + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. + | + | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. + | + | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. + | + | is_odd_lvalue(self, *args) -> 'bool' + | is_odd_lvalue(self) -> bool + | + | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool + | Is expression signed? + | + | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool + | Is expression unsigned? + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool + | Check if the expression is a zero. + | + | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool + | May the expression be a pointer? + | + | numval(self, *args) -> 'uint64' + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign + | + | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. + | + | set_cpadone(self, *args) -> 'void' + | set_cpadone(self) + | + | set_v(self, *args) -> 'void' + | set_v(self, v) + | + | @param v: var_ref_t const * + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cexpr_t & + | + | theother(self, *args) -> 'cexpr_t *' + | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cexpr_t: + | + | a + | + | exflags + | exflags + | + | fpc + | + | helper + | + | insn + | + | m + | + | n + | + | obj_ea + | + | operands + | return a dictionary with the operands of a cexpr_t. + | + | opname + | + | ptrsize + | + | refwidth + | + | string + | + | type + | type + | + | v + | + | x + | + | y + | + | z + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from cexpr_t: + | + | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cexpr + | cexpr + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on class carglist_t in module ida_hexrays: + +class carglist_t(qvector_carg_t) + | Proxy of C++ carglist_t class. + | + | Method resolution order: + | carglist_t + | qvector_carg_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __init__(self, *args) + | __init__(self) -> carglist_t + | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_carglist_t(...) + | delete_carglist_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: carglist_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | flags + | + | functype + | functype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_carg_t: + | + | __getitem__(self, *args) -> 'carg_t const &' + | __getitem__(self, i) -> carg_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: carg_t const & + | + | append = push_back(self, *args) -> 'carg_t &' + | push_back(self, x) + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t + | + | at = __getitem__(self, *args) -> 'carg_t const &' + | __getitem__(self, i) -> carg_t + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< carg_t >::const_iterator' + | begin(self) -> carg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< carg_t >::const_iterator' + | end(self) -> carg_t + | + | erase(self, *args) -> 'qvector< carg_t >::iterator' + | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | + | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator + | + | extract(self, *args) -> 'carg_t *' + | extract(self) -> carg_t + | + | find(self, *args) -> 'qvector< carg_t >::const_iterator' + | find(self, x) -> carg_t + | + | @param x: carg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=carg_t()) + | + | @param x: carg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: carg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< carg_t >::iterator' + | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'carg_t &' + | push_back(self, x) + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< carg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_carg_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class casm_t in module ida_hexrays: + +class casm_t(ida_pro.eavec_t)↗ + | Proxy of C++ casm_t class. + | + | Method resolution order: + | casm_t + | ida_pro.eavec_t↗ + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: casm_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: casm_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: casm_t const & + | + | __init__(self, *args) + | __init__(self, ea) -> casm_t + | + | @param ea: ea_t + | + | __init__(self, r) -> casm_t + | + | @param r: casm_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: casm_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: casm_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: casm_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_casm_t(...) + | delete_casm_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: casm_t const & + | + | one_insn(self, *args) -> 'bool' + | one_insn(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_pro.eavec_t:↗ + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ + | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | + | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ + | begin(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | begin(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ + | end(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | end(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | erase(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ + | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | extract(self, *args) -> 'unsigned-ea-like-numeric-type *'↗ + | extract(self) -> unsigned-ea-like-numeric-type *↗ + | + | find(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ + | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t + | + | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ + | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ + | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_pro.eavec_t:↗ + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class cblock_t in module ida_hexrays: + +class cblock_t(cinsn_list_t) + | Proxy of C++ cblock_t class. + | + | Method resolution order: + | cblock_t + | cinsn_list_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __init__(self, *args) + | __init__(self) -> cblock_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cblock_t(...) + | delete_cblock_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cblock_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cinsn_list_t: + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cinsn_list_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class ccase_t in module ida_hexrays: + +class ccase_t(cinsn_t) + | Proxy of C++ ccase_t class. + | + | Method resolution order: + | ccase_t + | cinsn_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __init__(self, *args) + | __init__(self) -> ccase_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ccase_t(...) + | delete_ccase_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ccase_t const & + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | value(self, *args) -> 'uint64 const &' + | value(self, i) -> uint64 const & + | + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | values + | values + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cinsn_t: + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_casm(self, *args) -> 'casm_t *' + | _get_casm(self) -> casm_t + | + | _get_cblock(self, *args) -> 'cblock_t *' + | _get_cblock(self) -> cblock_t + | + | _get_cdo(self, *args) -> 'cdo_t *' + | _get_cdo(self) -> cdo_t + | + | _get_cexpr(self, *args) -> 'cexpr_t *' + | _get_cexpr(self) -> cexpr_t + | + | _get_cfor(self, *args) -> 'cfor_t *' + | _get_cfor(self) -> cfor_t + | + | _get_cgoto(self, *args) -> 'cgoto_t *' + | _get_cgoto(self) -> cgoto_t + | + | _get_cif(self, *args) -> 'cif_t *' + | _get_cif(self) -> cif_t + | + | _get_creturn(self, *args) -> 'creturn_t *' + | _get_creturn(self) -> creturn_t + | + | _get_cswitch(self, *args) -> 'cswitch_t *' + | _get_cswitch(self) -> cswitch_t + | + | _get_cwhile(self, *args) -> 'cwhile_t *' + | _get_cwhile(self) -> cwhile_t + | + | _print(self, *args) -> 'void' + | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * + | + | _set_casm(self, *args) -> 'void' + | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * + | + | _set_cblock(self, *args) -> 'void' + | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * + | + | _set_cdo(self, *args) -> 'void' + | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * + | + | _set_cexpr(self, *args) -> 'void' + | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_cfor(self, *args) -> 'void' + | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * + | + | _set_cgoto(self, *args) -> 'void' + | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * + | + | _set_cif(self, *args) -> 'void' + | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * + | + | _set_creturn(self, *args) -> 'void' + | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * + | + | _set_cswitch(self, *args) -> 'void' + | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * + | + | _set_cwhile(self, *args) -> 'void' + | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * + | + | assign(self, *args) -> 'cinsn_t &' + | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. + | + | collect_free_breaks(self, *args) -> 'bool' + | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found + | + | collect_free_continues(self, *args) -> 'bool' + | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found + | + | contains_free_break(self, *args) -> 'bool' + | contains_free_break(self) -> bool + | Check if the statement has free break statements. + | + | contains_free_continue(self, *args) -> 'bool' + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE + | + | create_if(self, *args) -> 'cif_t &' + | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | is_epilog(self) + | + | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) + | + | new_insn(self, *args) -> 'cinsn_t &' + | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cinsn_t & + | + | zero(self, *args) -> 'void' + | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. + | + | ---------------------------------------------------------------------- + | Static methods inherited from cinsn_t: + | + | insn_is_epilog(*args) -> 'bool' + | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cinsn_t: + | + | casm + | + | cblock + | + | cdo + | + | cexpr + | + | cfor + | + | cgoto + | + | cif + | + | creturn + | + | cswitch + | + | cwhile + | + | details + | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. + | + | opname + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from cinsn_t: + | + | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on class ccases_t in module ida_hexrays: + +class ccases_t(qvector_ccase_t) + | Proxy of C++ ccases_t class. + | + | Method resolution order: + | ccases_t + | qvector_ccase_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __init__(self, *args) + | __init__(self) -> ccases_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ccases_t(...) + | delete_ccases_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ccases_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_ccase_t: + | + | __getitem__(self, *args) -> 'ccase_t const &' + | __getitem__(self, i) -> ccase_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ccase_t const & + | + | append = push_back(self, *args) -> 'ccase_t &' + | push_back(self, x) + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t + | + | at = __getitem__(self, *args) -> 'ccase_t const &' + | __getitem__(self, i) -> ccase_t + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' + | begin(self) -> ccase_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ccase_t >::const_iterator' + | end(self) -> ccase_t + | + | erase(self, *args) -> 'qvector< ccase_t >::iterator' + | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | + | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator + | + | extract(self, *args) -> 'ccase_t *' + | extract(self) -> ccase_t + | + | find(self, *args) -> 'qvector< ccase_t >::const_iterator' + | find(self, x) -> ccase_t + | + | @param x: ccase_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ccase_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ccase_t >::iterator' + | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ccase_t &' + | push_back(self, x) + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ccase_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_ccase_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class cdg_insn_iterator_t in module ida_hexrays: + +class cdg_insn_iterator_t(builtins.object) + | Proxy of C++ cdg_insn_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, mba_) -> cdg_insn_iterator_t + | + | @param mba_: mba_t const * + | + | __init__(self, r) -> cdg_insn_iterator_t + | + | @param r: cdg_insn_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cdg_insn_iterator_t(...) + | delete_cdg_insn_iterator_t(self) + | + | dslot_with_xrefs(self, *args) -> 'bool' + | dslot_with_xrefs(self) -> bool + | + | has_dslot(self, *args) -> 'bool' + | has_dslot(self) -> bool + | + | is_severed_dslot(self, *args) -> 'bool' + | is_severed_dslot(self) -> bool + | + | next(self, *args) -> 'merror_t' + | next(self, ins) -> merror_t + | + | @param ins: insn_t * + | + | ok(self, *args) -> 'bool' + | ok(self) -> bool + | + | start(self, *args) -> 'void' + | start(self, rng) + | + | @param rng: range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dslot + | dslot + | + | dslot_insn + | dslot_insn + | + | ea + | ea + | + | end + | end + | + | is_likely_dslot + | is_likely_dslot + | + | mba + | mba + | + | severed_branch + | severed_branch + | + | thisown + | The membership flag + +Help on class cdo_t in module ida_hexrays: + +class cdo_t(cloop_t) + | Proxy of C++ cdo_t class. + | + | Method resolution order: + | cdo_t + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __init__(self, *args) + | __init__(self) -> cdo_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cdo_t(...) + | delete_cdo_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cdo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cloop_t: + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cloop_t: + | + | body + | body + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class ceinsn_t in module ida_hexrays: + +class ceinsn_t(builtins.object) + | Proxy of C++ ceinsn_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ceinsn_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ceinsn_t(...) + | delete_ceinsn_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + | + | thisown + | The membership flag + +Help on function cexpr_operands in module ida_hexrays: + +cexpr_operands(self) + return a dictionary with the operands of a cexpr_t. + +Help on class cexpr_t in module ida_hexrays: + +class cexpr_t(citem_t) + | Proxy of C++ cexpr_t class. + | + | Method resolution order: + | cexpr_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __init__(self, *args) + | __init__(self) -> cexpr_t + | __init__(self, cexpr_op, _x) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y, _z) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * + | + | __init__(self, r) -> cexpr_t + | + | @param r: cexpr_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cexpr_t(...) + | delete_cexpr_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_a(self, *args) -> 'carglist_t *' + | _get_a(self) -> carglist_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_insn(self, *args) -> 'cinsn_t *' + | _get_insn(self) -> cinsn_t + | + | _get_m(self, *args) -> 'int' + | _get_m(self) -> int + | + | _get_n(self, *args) -> 'cnumber_t *' + | _get_n(self) -> cnumber_t + | + | _get_obj_ea(self, *args) -> 'ea_t' + | _get_obj_ea(self) -> ea_t + | + | _get_ptrsize(self, *args) -> 'int' + | _get_ptrsize(self) -> int + | + | _get_refwidth(self, *args) -> 'int' + | _get_refwidth(self) -> int + | + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * + | + | _get_x(self, *args) -> 'cexpr_t *' + | _get_x(self) -> cexpr_t + | + | _get_y(self, *args) -> 'cexpr_t *' + | _get_y(self) -> cexpr_t + | + | _get_z(self, *args) -> 'cexpr_t *' + | _get_z(self) -> cexpr_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_insn(self, *args) -> 'void' + | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * + | + | _set_m(self, *args) -> 'void' + | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_n(self, *args) -> 'void' + | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * + | + | _set_obj_ea(self, *args) -> 'void' + | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_ptrsize(self, *args) -> 'void' + | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_refwidth(self, *args) -> 'void' + | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_string(self, *args) -> 'void' + | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_x(self, *args) -> 'void' + | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_y(self, *args) -> 'void' + | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_z(self, *args) -> 'void' + | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | assign(self, *args) -> 'cexpr_t &' + | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & + | + | calc_type(self, *args) -> 'void' + | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cexpr_t const & + | + | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) + | + | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) + | + | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? + | + | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP + | + | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | equal_effect(self, *args) -> 'bool' + | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal + | + | find_num_op(self, *args) -> 'cexpr_t *' + | find_num_op(self) -> cexpr_t + | + | find_op(self, *args) -> 'cexpr_t *' + | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t + | + | get_1num_op(self, *args) -> 'bool' + | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** + | + | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. + | + | get_high_nbit_bound(self, *args) -> 'bit_bound_t' + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero + | + | get_low_nbit_bound(self, *args) -> 'int' + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. + | + | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. + | + | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t + | Get expression sign. + | + | get_v(self, *args) -> 'var_ref_t *' + | get_v(self) -> var_ref_t + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. + | + | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. + | + | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. + | + | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent + | + | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) + | + | is_cstr(self, *args) -> 'bool' + | is_cstr(self) -> bool + | + | is_fpop(self, *args) -> 'bool' + | is_fpop(self) -> bool + | + | is_jumpout(self, *args) -> 'bool' + | is_jumpout(self) -> bool + | + | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool + | Check if the expression is a negative number. + | + | is_nice_cond(self, *args) -> 'bool' + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. + | + | is_nice_expr(self, *args) -> 'bool' + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. + | + | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. + | + | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. + | + | is_odd_lvalue(self, *args) -> 'bool' + | is_odd_lvalue(self) -> bool + | + | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool + | Is expression signed? + | + | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool + | Is expression unsigned? + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool + | Check if the expression is a zero. + | + | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool + | May the expression be a pointer? + | + | numval(self, *args) -> 'uint64' + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign + | + | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. + | + | set_cpadone(self, *args) -> 'void' + | set_cpadone(self) + | + | set_v(self, *args) -> 'void' + | set_v(self, v) + | + | @param v: var_ref_t const * + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cexpr_t & + | + | theother(self, *args) -> 'cexpr_t *' + | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | a + | + | exflags + | exflags + | + | fpc + | + | helper + | + | insn + | + | m + | + | n + | + | obj_ea + | + | operands + | return a dictionary with the operands of a cexpr_t. + | + | opname + | + | ptrsize + | + | refwidth + | + | string + | + | thisown + | The membership flag + | + | type + | type + | + | v + | + | x + | + | y + | + | z + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cexpr + | cexpr + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on class cfor_t in module ida_hexrays: + +class cfor_t(cloop_t) + | Proxy of C++ cfor_t class. + | + | Method resolution order: + | cfor_t + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __init__(self, *args) + | __init__(self) -> cfor_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cfor_t(...) + | delete_cfor_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cfor_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | init + | init + | + | step + | step + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cloop_t: + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cloop_t: + | + | body + | body + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class cfunc_parentee_t in module ida_hexrays: + +class cfunc_parentee_t(ctree_parentee_t) + | Proxy of C++ cfunc_parentee_t class. + | + | Method resolution order: + | cfunc_parentee_t + | ctree_parentee_t + | ctree_visitor_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, f, post=False) -> cfunc_parentee_t + | + | @param f: cfunc_t * + | @param post: bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cfunc_parentee_t(...) + | delete_cfunc_parentee_t(self) + | + | calc_rvalue_type(self, *args) -> 'bool' + | calc_rvalue_type(self, target, e) -> bool + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | func + | func + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ctree_parentee_t: + | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | + | recalc_parent_types(self, *args) -> 'bool' + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. + | + | ---------------------------------------------------------------------- + | Methods inherited from ctree_visitor_t: + | + | apply_to(self, *args) -> 'int' + | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | apply_to_exprs(self, *args) -> 'int' + | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | clr_prune(self, *args) -> 'void' + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. + | + | clr_restart(self, *args) -> 'void' + | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. + | + | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool + | Should the leave...() functions be called? + | + | leave_expr(self, *args) -> 'int' + | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | leave_insn(self, *args) -> 'int' + | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool + | Should the parent information by maintained? + | + | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool + | Should the traversal skip the children of the current item? + | + | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool + | Should the traversal restart? + | + | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool + | Should all expressions be automatically pruned? + | + | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. + | + | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. + | + | set_restart(self, *args) -> 'void' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() + | + | visit_expr(self, *args) -> 'int' + | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | visit_insn(self, *args) -> 'int' + | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ctree_visitor_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cv_flags + | cv_flags + | + | parents + | parents + +Help on class cfunc_t in module ida_hexrays: + +class cfunc_t(builtins.object) + | Proxy of C++ cfunc_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_cfunc_t(...) + | delete_cfunc_t(self) + | + | build_c_tree(self, *args) -> 'void' + | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. + | + | del_orphan_cmts(self, *args) -> 'int' + | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. + | + | find_item_coords(self, *args) -> 'PyObject *' + | find_item_coords(self, item, px, py) -> bool + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | + | find_item_coords(self, item) -> PyObject * + | + | @param item: citem_t const * + | + | find_label(self, *args) -> 'citem_t *' + | find_label(self, label) -> citem_t + | Find the label. + | + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. + | + | gather_derefs(self, *args) -> 'bool' + | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * + | + | get_boundaries(self, *args) -> 'boundaries_t &' + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. + | + | get_eamap(self, *args) -> 'eamap_t &' + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. + | + | get_func_type(self, *args) -> 'bool' + | get_func_type(self, type) -> bool + | Get the function type. + | + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure + | + | get_line_item(self, *args) -> 'bool' + | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item + | + | get_lvars(self, *args) -> 'lvars_t *' + | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. + | + | get_pseudocode(self, *args) -> 'strvec_t const &' + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. + | + | get_stkoff_delta(self, *args) -> 'sval_t' + | get_stkoff_delta(self) -> sval_t + | Get stack offset delta. The local variable stack offsets retrieved by + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() + | + | get_user_cmt(self, *args) -> 'char const *' + | get_user_cmt(self, loc, rt) -> char const * + | Retrieve a user defined comment. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr + | + | get_user_iflags(self, *args) -> 'int32' + | get_user_iflags(self, loc) -> int32 + | Retrieve citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 + | + | get_user_union_selection(self, *args) -> 'bool' + | get_user_union_selection(self, ea, path) -> bool + | Retrieve a user defined union field selection. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr + | + | get_warnings(self, *args) -> 'hexwarns_t &' + | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings + | + | has_orphan_cmts(self, *args) -> 'bool' + | has_orphan_cmts(self) -> bool + | Check if there are orphan comments. + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | + | print_dcl(self, *args) -> 'void' + | print_dcl(self) + | Print function prototype. + | + | print_func(self, *args) -> 'void' + | print_func(self, vp) + | Print function text. + | + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. + | + | refresh_func_ctext(self, *args) -> 'void' + | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. + | + | release(self, *args) -> 'void' + | release(self) + | + | remove_unused_labels(self, *args) -> 'void' + | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. + | + | save_user_cmts(self, *args) -> 'void' + | save_user_cmts(self) + | Save user-defined comments into the database. + | + | save_user_iflags(self, *args) -> 'void' + | save_user_iflags(self) + | Save user-defined iflags into the database. + | + | save_user_labels(self, *args) -> 'void' + | save_user_labels(self) + | Save user-defined labels into the database. + | + | save_user_numforms(self, *args) -> 'void' + | save_user_numforms(self) + | Save user-defined number formats into the database. + | + | save_user_unions(self, *args) -> 'void' + | save_user_unions(self) + | Save user-defined union field selections into the database. + | + | set_user_cmt(self, *args) -> 'void' + | set_user_cmt(self, loc, cmt) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. + | + | set_user_iflags(self, *args) -> 'void' + | set_user_iflags(self, loc, iflags) + | Set citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags + | + | set_user_union_selection(self, *args) -> 'void' + | set_user_union_selection(self, ea, path) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. + | + | verify(self, *args) -> 'void' + | verify(self, aul, even_without_debugger) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argidx + | argidx + | + | arguments + | + | body + | body + | + | boundaries + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. + | + | eamap + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. + | + | entry_ea + | entry_ea + | + | hdrlines + | hdrlines + | + | lvars + | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. + | + | maturity + | maturity + | + | mba + | mba + | + | numforms + | numforms + | + | pseudocode + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. + | + | refcnt + | refcnt + | + | statebits + | statebits + | + | thisown + | The membership flag + | + | treeitems + | treeitems + | + | type + | Get the function's return type tinfo_t object. + | + | user_cmts + | user_cmts + | + | user_iflags + | user_iflags + | + | user_labels + | user_labels + | + | user_unions + | user_unions + | + | warnings + | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings + +Help on function cfunc_type in module ida_hexrays: + +cfunc_type(self) + Get the function's return type tinfo_t object. + +Help on class cfuncptr_t in module ida_hexrays: + +class cfuncptr_t(builtins.object) + | Proxy of C++ qrefcnt_t< cfunc_t > class. + | + | Methods defined here: + | + | __deref__(self, *args) -> 'cfunc_t *' + | __deref__(self) -> cfunc_t + | + | __eq__ lambda self, other + | + | __init__(self, *args) + | __init__(self, p) -> cfuncptr_t + | + | @param p: cfunc_t * + | + | __init__(self, r) -> cfuncptr_t + | + | @param r: qrefcnt_t< cfunc_t > const & + | + | __ptrval__(self, *args) -> 'size_t' + | __ptrval__(self) -> size_t + | + | __ref__(self, *args) -> 'cfunc_t &' + | __ref__(self) -> cfunc_t + | + | __repr__ = _swig_repr(self) + | + | __str__ lambda self + | + | __swig_destroy__ = delete_cfuncptr_t(...) + | delete_cfuncptr_t(self) + | + | build_c_tree(self, *args) -> 'void' + | build_c_tree(self) + | + | del_orphan_cmts(self, *args) -> 'int' + | del_orphan_cmts(self) -> int + | + | find_item_coords(self, *args) -> 'PyObject *' + | find_item_coords(self, item, px, py) -> bool + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * + | + | find_label(self, *args) -> 'citem_t *' + | find_label(self, label) -> citem_t + | + | @param label: int + | + | gather_derefs(self, *args) -> 'bool' + | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * + | + | get_boundaries(self, *args) -> 'boundaries_t &' + | get_boundaries(self) -> boundaries_t + | + | get_eamap(self, *args) -> 'eamap_t &' + | get_eamap(self) -> eamap_t + | + | get_func_type(self, *args) -> 'bool' + | get_func_type(self, type) -> bool + | + | @param type: tinfo_t * + | + | get_line_item(self, *args) -> 'bool' + | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * + | + | get_lvars(self, *args) -> 'lvars_t *' + | get_lvars(self) -> lvars_t + | + | get_pseudocode(self, *args) -> 'strvec_t const &' + | get_pseudocode(self) -> strvec_t + | + | get_stkoff_delta(self, *args) -> 'sval_t' + | get_stkoff_delta(self) -> sval_t + | + | get_user_cmt(self, *args) -> 'char const *' + | get_user_cmt(self, loc, rt) -> char const * + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t + | + | get_user_iflags(self, *args) -> 'int32' + | get_user_iflags(self, loc) -> int32 + | + | @param loc: citem_locator_t const & + | + | get_user_union_selection(self, *args) -> 'bool' + | get_user_union_selection(self, ea, path) -> bool + | + | @param ea: ea_t + | @param path: intvec_t * + | + | get_warnings(self, *args) -> 'hexwarns_t &' + | get_warnings(self) -> hexwarns_t + | + | has_orphan_cmts(self, *args) -> 'bool' + | has_orphan_cmts(self) -> bool + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | + | print_dcl(self, *args) -> 'void' + | print_dcl(self) + | + | print_func(self, *args) -> 'void' + | print_func(self, vp) + | + | @param vp: vc_printer_t & + | + | refresh_func_ctext(self, *args) -> 'void' + | refresh_func_ctext(self) + | + | release(self, *args) -> 'void' + | release(self) + | + | remove_unused_labels(self, *args) -> 'void' + | remove_unused_labels(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | save_user_cmts(self, *args) -> 'void' + | save_user_cmts(self) + | + | save_user_iflags(self, *args) -> 'void' + | save_user_iflags(self) + | + | save_user_labels(self, *args) -> 'void' + | save_user_labels(self) + | + | save_user_numforms(self, *args) -> 'void' + | save_user_numforms(self) + | + | save_user_unions(self, *args) -> 'void' + | save_user_unions(self) + | + | set_user_cmt(self, *args) -> 'void' + | set_user_cmt(self, loc, cmt) + | + | @param loc: treeloc_t const & + | @param cmt: char const * + | + | set_user_iflags(self, *args) -> 'void' + | set_user_iflags(self, loc, iflags) + | + | @param loc: citem_locator_t const & + | @param iflags: int32 + | + | set_user_union_selection(self, *args) -> 'void' + | set_user_union_selection(self, ea, path) + | + | @param ea: ea_t + | @param path: intvec_t const & + | + | verify(self, *args) -> 'void' + | verify(self, aul, even_without_debugger) + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argidx + | argidx + | + | arguments + | + | body + | body + | + | boundaries + | + | eamap + | + | entry_ea + | entry_ea + | + | hdrlines + | hdrlines + | + | lvars + | + | maturity + | maturity + | + | mba + | mba + | + | numforms + | numforms + | + | pseudocode + | + | refcnt + | refcnt + | + | statebits + | statebits + | + | thisown + | The membership flag + | + | treeitems + | treeitems + | + | type + | + | user_cmts + | user_cmts + | + | user_iflags + | user_iflags + | + | user_labels + | user_labels + | + | user_unions + | user_unions + | + | warnings + +Help on class cgoto_t in module ida_hexrays: + +class cgoto_t(builtins.object) + | Proxy of C++ cgoto_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __init__(self, *args) + | __init__(self) -> cgoto_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cgoto_t(...) + | delete_cgoto_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cgoto_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | label_num + | label_num + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class chain_keeper_t in module ida_hexrays: + +class chain_keeper_t(builtins.object) + | Proxy of C++ chain_keeper_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _gc) -> chain_keeper_t + | + | @param _gc: graph_chains_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chain_keeper_t(...) + | delete_chain_keeper_t(self) + | + | back(self, *args) -> 'block_chains_t &' + | back(self) -> block_chains_t + | + | for_all_chains(self, *args) -> 'int' + | for_all_chains(self, cv, gca) -> int + | + | @param cv: chain_visitor_t & + | @param gca: int + | + | front(self, *args) -> 'block_chains_t &' + | front(self) -> block_chains_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class chain_t in module ida_hexrays: + +class chain_t(ida_pro.intvec_t) + | Proxy of C++ chain_t class. + | + | Method resolution order: + | chain_t + | ida_pro.intvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> chain_t + | __init__(self, t, off, w=1, v=-1) -> chain_t + | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int + | + | __init__(self, _k, w=1) -> chain_t + | + | @param _k: voff_t const & + | @param w: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: chain_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chain_t(...) + | delete_chain_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | append_list(self, *args) -> 'void' + | append_list(self, mba, list) + | Append the contents of the chain to the specified list of locations. + | + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) + | + | clear_varnum(self, *args) -> 'void' + | clear_varnum(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | endoff(self, *args) -> 'voff_t const' + | endoff(self) -> voff_t + | + | get_reg(self, *args) -> 'mreg_t' + | get_reg(self) -> mreg_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | + | includes(self, *args) -> 'bool' + | includes(self, r) -> bool + | + | @param r: chain_t const & + | + | is_fake(self, *args) -> 'bool' + | is_fake(self) -> bool + | + | is_inited(self, *args) -> 'bool' + | is_inited(self) -> bool + | + | is_overlapped(self, *args) -> 'bool' + | is_overlapped(self) -> bool + | + | is_passreg(self, *args) -> 'bool' + | is_passreg(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_replaced(self, *args) -> 'bool' + | is_replaced(self) -> bool + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | + | is_term(self, *args) -> 'bool' + | is_term(self) -> bool + | + | key(self, *args) -> 'voff_t const &' + | key(self) -> voff_t + | + | overlap(self, *args) -> 'bool' + | overlap(self, r) -> bool + | + | @param r: chain_t const & + | + | set_inited(self, *args) -> 'void' + | set_inited(self, b) + | + | @param b: bool + | + | set_overlapped(self, *args) -> 'void' + | set_overlapped(self, b) + | + | @param b: bool + | + | set_replaced(self, *args) -> 'void' + | set_replaced(self, b) + | + | @param b: bool + | + | set_term(self, *args) -> 'void' + | set_term(self, b) + | + | @param b: bool + | + | set_value(self, *args) -> 'void' + | set_value(self, r) + | + | @param r: chain_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | flags + | + | thisown + | The membership flag + | + | varnum + | varnum + | + | width + | width + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_pro.intvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __getitem__(self, *args) -> 'int const &' + | __getitem__(self, i) -> int const & + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: int const & + | + | append = push_back(self, *args) -> 'int &' + | push_back(self, x) + | + | @param x: int const & + | + | push_back(self) -> int & + | + | at = __getitem__(self, *args) -> 'int const &' + | __getitem__(self, i) -> int const & + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< int >::const_iterator' + | begin(self) -> qvector< int >::iterator + | begin(self) -> qvector< int >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< int >::const_iterator' + | end(self) -> qvector< int >::iterator + | end(self) -> qvector< int >::const_iterator + | + | erase(self, *args) -> 'qvector< int >::iterator' + | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | + | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator + | + | extract(self, *args) -> 'int *' + | extract(self) -> int * + | + | find(self, *args) -> 'qvector< int >::const_iterator' + | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | + | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: int const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: int * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< int >::iterator' + | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'int &' + | push_back(self, x) + | + | @param x: int const & + | + | push_back(self) -> int & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< int > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_pro.intvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_pro.intvec_t: + | + | __hash__ = None + +Help on class chain_visitor_t in module ida_hexrays: + +class chain_visitor_t(builtins.object) + | Proxy of C++ chain_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> chain_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chain_visitor_t(...) + | delete_chain_visitor_t(self) + | + | visit_chain(self, *args) -> 'int' + | visit_chain(self, nblock, ch) -> int + | + | @param nblock: int + | @param ch: chain_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | parent + | parent + | + | thisown + | The membership flag + +Help on function checkout_hexrays_license in module ida_hexrays: + +checkout_hexrays_license(*args) -> 'bool' + checkout_hexrays_license(silent) -> bool + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. + + @param silent: (C++: bool) silently fail if the license cannot be checked out. + @return: false if failed + +Help on class cif_t in module ida_hexrays: + +class cif_t(ceinsn_t) + | Proxy of C++ cif_t class. + | + | Method resolution order: + | cif_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cif_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cif_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cif_t const & + | + | __init__(self, *args) + | __init__(self) -> cif_t + | __init__(self, r) -> cif_t + | + | @param r: cif_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cif_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cif_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cif_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cif_t(...) + | delete_cif_t(self) + | + | assign(self, *args) -> 'cif_t &' + | assign(self, r) -> cif_t + | + | @param r: cif_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cif_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ielse + | ielse + | + | ithen + | ithen + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on function cinsn_details in module ida_hexrays: + +cinsn_details(self) + return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. + +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(builtins.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | __swig_destroy__ = delete_cinsn_list_t(...) + | delete_cinsn_list_t(self) + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(builtins.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) -> 'void' + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_list_t_iterator(...) + | delete_cinsn_list_t_iterator(self) + | + | next = __next__(self, *args) -> 'void' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_t in module ida_hexrays: + +class cinsn_t(citem_t) + | Proxy of C++ cinsn_t class. + | + | Method resolution order: + | cinsn_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __init__(self, *args) + | __init__(self) -> cinsn_t + | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_t(...) + | delete_cinsn_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_casm(self, *args) -> 'casm_t *' + | _get_casm(self) -> casm_t + | + | _get_cblock(self, *args) -> 'cblock_t *' + | _get_cblock(self) -> cblock_t + | + | _get_cdo(self, *args) -> 'cdo_t *' + | _get_cdo(self) -> cdo_t + | + | _get_cexpr(self, *args) -> 'cexpr_t *' + | _get_cexpr(self) -> cexpr_t + | + | _get_cfor(self, *args) -> 'cfor_t *' + | _get_cfor(self) -> cfor_t + | + | _get_cgoto(self, *args) -> 'cgoto_t *' + | _get_cgoto(self) -> cgoto_t + | + | _get_cif(self, *args) -> 'cif_t *' + | _get_cif(self) -> cif_t + | + | _get_creturn(self, *args) -> 'creturn_t *' + | _get_creturn(self) -> creturn_t + | + | _get_cswitch(self, *args) -> 'cswitch_t *' + | _get_cswitch(self) -> cswitch_t + | + | _get_cwhile(self, *args) -> 'cwhile_t *' + | _get_cwhile(self) -> cwhile_t + | + | _print(self, *args) -> 'void' + | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * + | + | _set_casm(self, *args) -> 'void' + | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * + | + | _set_cblock(self, *args) -> 'void' + | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * + | + | _set_cdo(self, *args) -> 'void' + | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * + | + | _set_cexpr(self, *args) -> 'void' + | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_cfor(self, *args) -> 'void' + | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * + | + | _set_cgoto(self, *args) -> 'void' + | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * + | + | _set_cif(self, *args) -> 'void' + | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * + | + | _set_creturn(self, *args) -> 'void' + | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * + | + | _set_cswitch(self, *args) -> 'void' + | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * + | + | _set_cwhile(self, *args) -> 'void' + | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * + | + | assign(self, *args) -> 'cinsn_t &' + | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. + | + | collect_free_breaks(self, *args) -> 'bool' + | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found + | + | collect_free_continues(self, *args) -> 'bool' + | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cinsn_t const & + | + | contains_free_break(self, *args) -> 'bool' + | contains_free_break(self) -> bool + | Check if the statement has free break statements. + | + | contains_free_continue(self, *args) -> 'bool' + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE + | + | create_if(self, *args) -> 'cif_t &' + | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | is_epilog(self) + | + | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) + | + | new_insn(self, *args) -> 'cinsn_t &' + | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cinsn_t & + | + | zero(self, *args) -> 'void' + | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | insn_is_epilog(*args) -> 'bool' + | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | casm + | + | cblock + | + | cdo + | + | cexpr + | + | cfor + | + | cgoto + | + | cif + | + | creturn + | + | cswitch + | + | cwhile + | + | details + | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. + | + | opname + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on function cinsn_t_insn_is_epilog in module ida_hexrays: + +cinsn_t_insn_is_epilog(*args) -> 'bool' + cinsn_t_insn_is_epilog(insn) -> bool + + @param insn: cinsn_t const * + +Help on class cinsnptrvec_t in module ida_hexrays: + +class cinsnptrvec_t(builtins.object) + | Proxy of C++ qvector< cinsn_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & + | + | __getitem__(self, *args) -> 'cinsn_t *const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsnptrvec_t + | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t *const & + | + | __swig_destroy__ = delete_cinsnptrvec_t(...) + | delete_cinsnptrvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: cinsn_t *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: cinsn_t *const & + | + | append = push_back(self, *args) -> 'cinsn_t *&' + | + | at = __getitem__(self, *args) -> 'cinsn_t *const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< cinsn_t * >::const_iterator' + | begin(self) -> qvector< cinsn_t * >::iterator + | begin(self) -> qvector< cinsn_t * >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< cinsn_t * >::const_iterator' + | end(self) -> qvector< cinsn_t * >::iterator + | end(self) -> qvector< cinsn_t * >::const_iterator + | + | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' + | erase(self, it) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | + | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator + | + | extract(self, *args) -> 'cinsn_t **' + | extract(self) -> cinsn_t ** + | + | find(self, *args) -> 'qvector< cinsn_t * >::const_iterator' + | find(self, x) -> qvector< cinsn_t * >::iterator + | + | @param x: cinsn_t *const & + | + | find(self, x) -> qvector< cinsn_t * >::const_iterator + | + | @param x: cinsn_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: cinsn_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: cinsn_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' + | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'cinsn_t *&' + | push_back(self, x) + | + | @param x: cinsn_t *const & + | + | push_back(self) -> cinsn_t *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: cinsn_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< cinsn_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class citem_cmt_t in module ida_hexrays: + +class citem_cmt_t(builtins.object) + | Proxy of C++ citem_cmt_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> citem_cmt_t + | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'char const *' + | __str__(self) -> char const * + | + | __swig_destroy__ = delete_citem_cmt_t(...) + | delete_citem_cmt_t(self) + | + | c_str(self, *args) -> 'char const *' + | c_str(self) -> char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | used + | used + +Help on class citem_locator_t in module ida_hexrays: + +class citem_locator_t(builtins.object) + | Proxy of C++ citem_locator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __init__(self, *args) + | __init__(self, _ea, _op) -> citem_locator_t + | + | @param _ea: ea_t + | @param _op: enum ctype_t + | + | __init__(self, i) -> citem_locator_t + | + | @param i: citem_t const * + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_citem_locator_t(...) + | delete_citem_locator_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: citem_locator_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | op + | op + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class citem_t in module ida_hexrays: + +class citem_t(builtins.object) + | Proxy of C++ citem_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_citem_t(...) + | delete_citem_t(self) + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print item into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. + | + | replace_by(self, o) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cexpr + | cexpr + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | thisown + | The membership flag + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on function citem_to_specific_type in module ida_hexrays: + +citem_to_specific_type(self) + cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on function clear_cached_cfuncs in module ida_hexrays: + +clear_cached_cfuncs(*args) -> 'void' + clear_cached_cfuncs() + Flush all cached decompilation results. + +Help on class cloop_t in module ida_hexrays: + +class cloop_t(ceinsn_t) + | Proxy of C++ cloop_t class. + | + | Method resolution order: + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> cloop_t + | __init__(self, b) -> cloop_t + | + | @param b: cinsn_t * + | + | __init__(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cloop_t(...) + | delete_cloop_t(self) + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | body + | body + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) -> 'void' + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. + +Help on function close_pseudocode in module ida_hexrays: + +close_pseudocode(*args) -> 'bool' + close_pseudocode(f) -> bool + Close pseudocode window. + + @param f: (C++: TWidget *) pointer to window + @return: false if failed + +Help on class cnumber_t in module ida_hexrays: + +class cnumber_t(builtins.object) + | Proxy of C++ cnumber_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __init__(self, *args) + | __init__(self, _opnum=0) -> cnumber_t + | + | @param _opnum: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cnumber_t(...) + | delete_cnumber_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, type, parent=None, nice_stroff=None) + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * + | + | assign(self, *args) -> 'void' + | assign(self, v, nbytes, sign) + | Assign new value + | + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cnumber_t const & + | + | value(self, *args) -> 'uint64' + | value(self, type) -> uint64 + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _value + | _value + | + | nf + | nf + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class codegen_t in module ida_hexrays: + +class codegen_t(builtins.object) + | Proxy of C++ codegen_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_codegen_t(...) + | delete_codegen_t(self) + | + | analyze_prolog(self, *args) -> 'merror_t' + | analyze_prolog(self, fc, reachable) -> merror_t + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code + | + | emit(self, *args) -> 'minsn_t *' + | emit(self, code, width, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int + | + | emit(self, code, l, r, d) -> minsn_t + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * + | + | emit_micro_mvm(self, *args) -> 'minsn_t *' + | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant takes a data type not a size. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) + | + | gen_micro(self, *args) -> 'merror_t' + | gen_micro(self) -> merror_t + | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal + | + | load_effective_address(self, *args) -> 'mreg_t' + | load_effective_address(self, n, flags=0) -> mreg_t + | Generate microcode to calculate the address of a memory operand. + | + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) + | + | load_operand(self, *args) -> 'mreg_t' + | load_operand(self, opnum, flags=0) -> mreg_t + | Generate microcode to load one operand. + | + | @param opnum: (C++: int) number of INSN operand + | @param flags: (C++: int) reserved for future use + | @return: register containing the operand. + | + | microgen_completed(self, *args) -> 'void' + | microgen_completed(self) + | This method is called when the microcode generation is done. + | + | prepare_gen_micro(self, *args) -> 'merror_t' + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal + | + | store_operand(self, *args) -> 'bool' + | store_operand(self, n, mop, flags=0, outins=None) -> bool + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ignore_micro + | ignore_micro + | + | ii + | ii + | + | insn + | insn + | + | mb + | mb + | + | mba + | mba + | + | thisown + | The membership flag + +Help on function convert_to_user_call in module ida_hexrays: + +convert_to_user_call(*args) -> 'merror_t' + convert_to_user_call(udc, cdg) -> merror_t + try to generate user-defined call for an instruction + + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) + +Help on function create_cfunc in module ida_hexrays: + +create_cfunc(*args) -> 'cfuncptr_t' + create_cfunc(mba) -> cfuncptr_t + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. + +Help on function create_empty_mba in module ida_hexrays: + +create_empty_mba(*args) -> 'mba_t *' + create_empty_mba(mbr, hf=None) -> mba_t + Create an empty microcode object. + + @param mbr: (C++: const mba_ranges_t &) mba_ranges_t const & + @param hf: (C++: hexrays_failure_t *) + +Help on function create_field_name in module ida_hexrays: + +create_field_name(*args) -> 'qstring' + create_field_name(type, offset=BADADDR) -> qstring + + @param type: tinfo_t const & + @param offset: uval_t + +Help on function create_helper in module ida_hexrays: + +create_helper(*args) + Create a helper object.. + +Help on function create_typedef in module ida_hexrays: + +create_typedef(*args) -> 'tinfo_t' + create_typedef(name) -> tinfo_t + Create a reference to an ordinal type. + + @param name: char const * + + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. + create_typedef(n) -> tinfo_t + + @param n: int + +Help on class creturn_t in module ida_hexrays: + +class creturn_t(ceinsn_t) + | Proxy of C++ creturn_t class. + | + | Method resolution order: + | creturn_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __init__(self, *args) + | __init__(self) -> creturn_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_creturn_t(...) + | delete_creturn_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: creturn_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class cswitch_t in module ida_hexrays: + +class cswitch_t(ceinsn_t) + | Proxy of C++ cswitch_t class. + | + | Method resolution order: + | cswitch_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __init__(self, *args) + | __init__(self) -> cswitch_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cswitch_t(...) + | delete_cswitch_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cswitch_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cases + | cases + | + | mvnf + | mvnf + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class ctext_position_t in module ida_hexrays: + +class ctext_position_t(builtins.object) + | Proxy of C++ ctext_position_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __init__(self, *args) + | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | + | @param _lnnum: int + | @param _x: int + | @param _y: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctext_position_t(...) + | delete_ctext_position_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ctext_position_t const & + | + | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ctree_anchor_t in module ida_hexrays: + +class ctree_anchor_t(builtins.object) + | Proxy of C++ ctree_anchor_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ctree_anchor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_anchor_t(...) + | delete_ctree_anchor_t(self) + | + | get_index(self, *args) -> 'int' + | get_index(self) -> int + | + | get_itp(self, *args) -> 'item_preciser_t' + | get_itp(self) -> item_preciser_t + | + | is_blkcmt_anchor(self, *args) -> 'bool' + | is_blkcmt_anchor(self) -> bool + | + | is_citem_anchor(self, *args) -> 'bool' + | is_citem_anchor(self) -> bool + | + | is_itp_anchor(self, *args) -> 'bool' + | is_itp_anchor(self) -> bool + | + | is_lvar_anchor(self, *args) -> 'bool' + | is_lvar_anchor(self) -> bool + | + | is_valid_anchor(self, *args) -> 'bool' + | is_valid_anchor(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | value + | value + +Help on class ctree_item_t in module ida_hexrays: + +class ctree_item_t(builtins.object) + | Proxy of C++ ctree_item_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ctree_item_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_item_t(...) + | delete_ctree_item_t(self) + | + | _get_e(self, *args) -> 'cexpr_t *' + | _get_e(self) -> cexpr_t + | + | _get_f(self, *args) -> 'cfunc_t *' + | _get_f(self) -> cfunc_t + | + | _get_i(self, *args) -> 'cinsn_t *' + | _get_i(self) -> cinsn_t + | + | _get_it(self, *args) -> 'citem_t *' + | _get_it(self) -> citem_t + | + | _get_l(self, *args) -> 'lvar_t *' + | _get_l(self) -> lvar_t + | + | _print(self, *args) -> 'void' + | _print(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed + | + | get_label_num(self, *args) -> 'int' + | get_label_num(self, gln_flags) -> int + | Get label number of the current item. + | + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label + | + | get_lvar(self, *args) -> 'lvar_t *' + | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed + | + | get_memptr(self, *args) -> 'member_t *' + | get_memptr(self, p_sptr=None) -> member_t * + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed + | + | is_citem(self, *args) -> 'bool' + | is_citem(self) -> bool + | Is the current item is a ctree item? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | citype + | citype + | + | e + | + | f + | + | i + | + | it + | + | l + | + | loc + | loc + | + | thisown + | The membership flag + +Help on class ctree_items_t in module ida_hexrays: + +class ctree_items_t(builtins.object) + | Proxy of C++ qvector< citem_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & + | + | __getitem__(self, *args) -> 'citem_t *const &' + | __getitem__(self, i) -> citem_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> ctree_items_t + | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: citem_t *const & + | + | __swig_destroy__ = delete_ctree_items_t(...) + | delete_ctree_items_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: citem_t *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: citem_t *const & + | + | append = push_back(self, *args) -> 'citem_t *&' + | + | at = __getitem__(self, *args) -> 'citem_t *const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< citem_t * >::const_iterator' + | begin(self) -> qvector< citem_t * >::iterator + | begin(self) -> qvector< citem_t * >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< citem_t * >::const_iterator' + | end(self) -> qvector< citem_t * >::iterator + | end(self) -> qvector< citem_t * >::const_iterator + | + | erase(self, *args) -> 'qvector< citem_t * >::iterator' + | erase(self, it) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | + | erase(self, first, last) -> qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator + | + | extract(self, *args) -> 'citem_t **' + | extract(self) -> citem_t ** + | + | find(self, *args) -> 'qvector< citem_t * >::const_iterator' + | find(self, x) -> qvector< citem_t * >::iterator + | + | @param x: citem_t *const & + | + | find(self, x) -> qvector< citem_t * >::const_iterator + | + | @param x: citem_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: citem_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: citem_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< citem_t * >::iterator' + | insert(self, it, x) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'citem_t *&' + | push_back(self, x) + | + | @param x: citem_t *const & + | + | push_back(self) -> citem_t *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: citem_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< citem_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ctree_parentee_t in module ida_hexrays: + +class ctree_parentee_t(ctree_visitor_t) + | Proxy of C++ ctree_parentee_t class. + | + | Method resolution order: + | ctree_parentee_t + | ctree_visitor_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, post=False) -> ctree_parentee_t + | + | @param post: bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_parentee_t(...) + | delete_ctree_parentee_t(self) + | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | + | recalc_parent_types(self, *args) -> 'bool' + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ctree_visitor_t: + | + | apply_to(self, *args) -> 'int' + | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | apply_to_exprs(self, *args) -> 'int' + | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | clr_prune(self, *args) -> 'void' + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. + | + | clr_restart(self, *args) -> 'void' + | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. + | + | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool + | Should the leave...() functions be called? + | + | leave_expr(self, *args) -> 'int' + | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | leave_insn(self, *args) -> 'int' + | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool + | Should the parent information by maintained? + | + | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool + | Should the traversal skip the children of the current item? + | + | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool + | Should the traversal restart? + | + | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool + | Should all expressions be automatically pruned? + | + | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. + | + | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. + | + | set_restart(self, *args) -> 'void' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() + | + | visit_expr(self, *args) -> 'int' + | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | visit_insn(self, *args) -> 'int' + | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ctree_visitor_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cv_flags + | cv_flags + | + | parents + | parents + +Help on class ctree_visitor_t in module ida_hexrays: + +class ctree_visitor_t(builtins.object) + | Proxy of C++ ctree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags) -> ctree_visitor_t + | + | @param _flags: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_visitor_t(...) + | delete_ctree_visitor_t(self) + | + | apply_to(self, *args) -> 'int' + | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | apply_to_exprs(self, *args) -> 'int' + | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | clr_prune(self, *args) -> 'void' + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. + | + | clr_restart(self, *args) -> 'void' + | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. + | + | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool + | Should the leave...() functions be called? + | + | leave_expr(self, *args) -> 'int' + | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | leave_insn(self, *args) -> 'int' + | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool + | Should the parent information by maintained? + | + | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool + | Should the traversal skip the children of the current item? + | + | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool + | Should the traversal restart? + | + | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool + | Should all expressions be automatically pruned? + | + | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. + | + | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. + | + | set_restart(self, *args) -> 'void' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() + | + | visit_expr(self, *args) -> 'int' + | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | visit_insn(self, *args) -> 'int' + | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cv_flags + | cv_flags + | + | parents + | parents + | + | thisown + | The membership flag + +Help on class cwhile_t in module ida_hexrays: + +class cwhile_t(cloop_t) + | Proxy of C++ cwhile_t class. + | + | Method resolution order: + | cwhile_t + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __init__(self, *args) + | __init__(self) -> cwhile_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cwhile_t(...) + | delete_cwhile_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cwhile_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cloop_t: + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cloop_t: + | + | body + | body + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on function debug_hexrays_ctree in module ida_hexrays: + +debug_hexrays_ctree(*args) -> 'void' + debug_hexrays_ctree(level, msg) + + @param level: int + @param msg: char const * + +Help on function decompile in module ida_hexrays: + +decompile(ea, hf=None, flags=0) + Decompile a function. + + @param ea an address belonging to the function, or an ida_funcs.func_t object + @param hf extended error information (if failed) + @param flags decomp_flags bitwise combination of `DECOMP_...` bits + @return the decompilation result (a `ida_hexrays.cfunc_t` wrapper), or None + +Help on function decompile_func in module ida_hexrays: + +decompile_func(*args) -> 'cfuncptr_t' + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + Decompile a function. Multiple decompilations of the same function return the + same object. + + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. + +Help on function decompile_many in module ida_hexrays: + +decompile_many(*args) -> 'bool' + decompile_many(outfile, funcaddrs, flags) -> bool + Batch decompilation. Decompile all or the specified functions + + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation + +Help on function dereference in module ida_hexrays: + +dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression + +Help on function dstr in module ida_hexrays: + +dstr(*args) -> 'char const *' + dstr(tif) -> char const * + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" + + @param tif: (C++: const tinfo_t *) tinfo_t const * + +Help on function dummy_ptrtype in module ida_hexrays: + +dummy_ptrtype(*args) -> 'tinfo_t' + dummy_ptrtype(ptrsize, isfp) -> tinfo_t + Generate a dummy pointer type + + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? + +Help on function eamap_begin in module ida_hexrays: + +eamap_begin(*args) -> 'eamap_iterator_t' + eamap_begin(map) -> eamap_iterator_t + Get iterator pointing to the beginning of eamap_t. + + @param map: (C++: const eamap_t *) eamap_t const * + +Help on function eamap_clear in module ida_hexrays: + +eamap_clear(*args) -> 'void' + eamap_clear(map) + Clear eamap_t. + + @param map: (C++: eamap_t *) + +Help on function eamap_end in module ida_hexrays: + +eamap_end(*args) -> 'eamap_iterator_t' + eamap_end(map) -> eamap_iterator_t + Get iterator pointing to the end of eamap_t. + + @param map: (C++: const eamap_t *) eamap_t const * + +Help on function eamap_erase in module ida_hexrays: + +eamap_erase(*args) -> 'void' + eamap_erase(map, p) + Erase current element from eamap_t. + + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) + +Help on function eamap_find in module ida_hexrays: + +eamap_find(*args) -> 'eamap_iterator_t' + eamap_find(map, key) -> eamap_iterator_t + Find the specified key in eamap_t. + + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & + +Help on function eamap_first in module ida_hexrays: + +eamap_first(*args) -> 'ea_t const &' + eamap_first(p) -> ea_t const & + Get reference to the current map key. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_free in module ida_hexrays: + +eamap_free(*args) -> 'void' + eamap_free(map) + Delete eamap_t instance. + + @param map: (C++: eamap_t *) + +Help on function eamap_insert in module ida_hexrays: + +eamap_insert(*args) -> 'eamap_iterator_t' + eamap_insert(map, key, val) -> eamap_iterator_t + Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. + + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & + +Help on class eamap_iterator_t in module ida_hexrays: + +class eamap_iterator_t(builtins.object) + | Proxy of C++ eamap_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: eamap_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> eamap_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: eamap_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_eamap_iterator_t(...) + | delete_eamap_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function eamap_new in module ida_hexrays: + +eamap_new(*args) -> 'eamap_t *' + eamap_new() -> eamap_t + Create a new eamap_t instance. + +Help on function eamap_next in module ida_hexrays: + +eamap_next(*args) -> 'eamap_iterator_t' + eamap_next(p) -> eamap_iterator_t + Move to the next element. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_prev in module ida_hexrays: + +eamap_prev(*args) -> 'eamap_iterator_t' + eamap_prev(p) -> eamap_iterator_t + Move to the previous element. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_second in module ida_hexrays: + +eamap_second(*args) -> 'cinsnptrvec_t &' + eamap_second(p) -> cinsnptrvec_t + Get reference to the current map value. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_size in module ida_hexrays: + +eamap_size(*args) -> 'size_t' + eamap_size(map) -> size_t + Get size of eamap_t. + + @param map: (C++: eamap_t *) + +Help on class eamap_t in module ida_hexrays: + +class eamap_t(builtins.object) + | Proxy of C++ std::map< ea_t,cinsnptrvec_t > class. + | + | Methods defined here: + | + | __begin = eamap_begin(...) + | eamap_begin(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | + | __clear = eamap_clear(...) + | eamap_clear(map) + | + | Parameters + | ---------- + | map: eamap_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = eamap_end(...) + | eamap_end(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | + | __erase = eamap_erase(...) + | eamap_erase(map, p) + | + | Parameters + | ---------- + | map: eamap_t * + | p: eamap_iterator_t + | + | __find = eamap_find(...) + | eamap_find(map, key) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | key: ea_t const & + | + | __first = eamap_first(...) + | eamap_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: eamap_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> eamap_t + | + | __insert = eamap_insert(...) + | eamap_insert(map, key, val) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t * + | key: ea_t const & + | val: cinsnptrvec_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = eamap_next(...) + | eamap_next(p) -> eamap_iterator_t + | + | Parameters + | ---------- + | p: eamap_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = eamap_second(...) + | eamap_second(p) -> cinsnptrvec_t + | + | Parameters + | ---------- + | p: eamap_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = eamap_size(...) + | eamap_size(map) -> size_t + | + | Parameters + | ---------- + | map: eamap_t * + | + | __swig_destroy__ = delete_eamap_t(...) + | delete_eamap_t(self) + | + | at(self, *args) -> 'cinsnptrvec_t &' + | at(self, _Keyval) -> cinsnptrvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'int'> + | int(x=0) -> integer + | int(x, base=10) -> integer + | + | Convert a number or string to an integer, or return 0 if no arguments + | are given. If x is a number, return x.__int__(). For floating point + | numbers, this truncates towards zero. + | + | If x is not a number or if base is given, then x must be a string, + | bytes, or bytearray instance representing an integer literal in the + | given base. The literal can be preceded by '+' or '-' and be surrounded + | by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. + | Base 0 means to interpret the base from the string as an integer literal. + | >>> int('0b100', base=0) + | 4 + | + | valuetype = <class 'ida_hexrays.cinsnptrvec_t'> + | Proxy of C++ qvector< cinsn_t * > class. + +Help on class fnumber_t in module ida_hexrays: + +class fnumber_t(builtins.object) + | Proxy of C++ fnumber_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __init__(self, *args) + | __init__(self) -> fnumber_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_fnumber_t(...) + | delete_fnumber_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: fnumber_t const & + | + | dereference_const_uint16(self, *args) -> 'uint16 const *' + | dereference_const_uint16(self) -> uint16 const * + | + | dereference_uint16(self, *args) -> 'uint16 *' + | dereference_uint16(self) -> uint16 * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fnum + | fnum + | + | nbytes + | nbytes + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class gco_info_t in module ida_hexrays: + +class gco_info_t(builtins.object) + | Proxy of C++ gco_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> gco_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_gco_info_t(...) + | delete_gco_info_t(self) + | + | append_to_list(self, *args) -> 'bool' + | append_to_list(self, list, mba) -> bool + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object + | + | cvt_to_ivl(self, *args) -> 'vivl_t' + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). + | + | is_def(self, *args) -> 'bool' + | is_def(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_use(self, *args) -> 'bool' + | is_use(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | name + | name + | + | regnum + | regnum + | + | size + | size + | + | stkoff + | stkoff + | + | thisown + | The membership flag + +Help on function gen_microcode in module ida_hexrays: + +gen_microcode(*args) -> 'mba_t *' + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t + Generate microcode of an arbitrary code snippet + + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. + +Help on function get_ctype_name in module ida_hexrays: + +get_ctype_name(*args) -> 'char const *' + get_ctype_name(op) -> char const * + + @param op: enum ctype_t + +Help on function get_current_operand in module ida_hexrays: + +get_current_operand(*args) -> 'bool' + get_current_operand(out) -> bool + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. + + @param out: (C++: gco_info_t *) [out]: output buffer + +Help on function get_float_type in module ida_hexrays: + +get_float_type(*args) -> 'tinfo_t' + get_float_type(width) -> tinfo_t + Get a type of a floating point value with the specified width + + @param width: (C++: int) width of the desired type + @return: type info object + +Help on function get_hexrays_version in module ida_hexrays: + +get_hexrays_version(*args) -> 'char const *' + get_hexrays_version() -> char const * + Get decompiler version. The returned string is of the form + <major>.<minor>.<revision>.<build-date> + + @return: pointer to version string. For example: "2.0.0.140605" + +Help on function get_int_type_by_width_and_sign in module ida_hexrays: + +get_int_type_by_width_and_sign(*args) -> 'tinfo_t' + get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. + + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type + +Help on function get_member_type in module ida_hexrays: + +get_member_type(*args) -> 'bool' + get_member_type(mptr, type) -> bool + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. + + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. + @return: false if failed + +Help on function get_merror_desc in module ida_hexrays: + +get_merror_desc(*args) -> 'qstring *' + get_merror_desc(code, mba) -> str + Get textual description of an error code + + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array + @return: the error address + +Help on function get_mreg_name in module ida_hexrays: + +get_mreg_name(*args) -> 'qstring *' + get_mreg_name(reg, width, ud=None) -> str + Get the microregister name. + + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. + +Help on function get_op_signness in module ida_hexrays: + +get_op_signness(*args) -> 'type_sign_t' + get_op_signness(op) -> type_sign_t + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. + + @param op: (C++: ctype_t) enum ctype_t + +Help on function get_signed_mcode in module ida_hexrays: + +get_signed_mcode(*args) -> 'mcode_t' + get_signed_mcode(code) -> mcode_t + + @param code: enum mcode_t + +Help on function get_temp_regs in module ida_hexrays: + +get_temp_regs(*args) -> 'mlist_t const &' + get_temp_regs() -> mlist_t + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. + +Help on function get_type in module ida_hexrays: + +get_type(*args) -> 'bool' + get_type(id, tif, guess) -> bool + Get a global type. Global types are types of addressable objects and + struct/union/enum types + + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider + @return: success + +Help on function get_unk_type in module ida_hexrays: + +get_unk_type(*args) -> 'tinfo_t' + get_unk_type(size) -> tinfo_t + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. + + @param size: (C++: int) size of the type in bytes + +Help on function get_unsigned_mcode in module ida_hexrays: + +get_unsigned_mcode(*args) -> 'mcode_t' + get_unsigned_mcode(code) -> mcode_t + + @param code: enum mcode_t + +Help on function get_widget_vdui in module ida_hexrays: + +get_widget_vdui(*args) -> 'vdui_t *' + get_widget_vdui(f) -> vdui_t + Get the vdui_t instance associated to the TWidget + + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr + +Help on function getb_reginsn in module ida_hexrays: + +getb_reginsn(*args) -> 'minsn_t *' + getb_reginsn(ins) -> minsn_t + + @param ins: minsn_t * + +Help on function getf_reginsn in module ida_hexrays: + +getf_reginsn(*args) -> 'minsn_t *' + getf_reginsn(ins) -> minsn_t + + @param ins: minsn_t * + +Help on class graph_chains_t in module ida_hexrays: + +class graph_chains_t(block_chains_vec_t) + | Proxy of C++ graph_chains_t class. + | + | Method resolution order: + | graph_chains_t + | block_chains_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> graph_chains_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_chains_t(...) + | delete_graph_chains_t(self) + | + | acquire(self, *args) -> 'void' + | acquire(self) + | Lock the chains. + | + | for_all_chains(self, *args) -> 'int' + | for_all_chains(self, cv, gca_flags) -> int + | Visit all chains + | + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits + | + | is_locked(self, *args) -> 'bool' + | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. + | + | release(self, *args) -> 'void' + | release(self) + | Unlock the chains. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: graph_chains_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from block_chains_vec_t: + | + | __getitem__(self, *args) -> 'block_chains_t const &' + | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & + | + | at(self, *args) -> 'block_chains_t const &' + | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | begin(self) -> block_chains_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | end(self) -> block_chains_t + | + | erase(self, *args) -> 'qvector< block_chains_t >::iterator' + | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | + | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator + | + | extract(self, *args) -> 'block_chains_t *' + | extract(self) -> block_chains_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< block_chains_t >::iterator' + | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'block_chains_t &' + | push_back(self, x) + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from block_chains_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function has_cached_cfunc in module ida_hexrays: + +has_cached_cfunc(*args) -> 'bool' + has_cached_cfunc(ea) -> bool + Do we have a cached decompilation result for 'ea'? + + @param ea: (C++: ea_t) + +Help on function has_mcode_seloff in module ida_hexrays: + +has_mcode_seloff(*args) -> 'bool' + has_mcode_seloff(op) -> bool + + @param op: enum mcode_t + +Help on function hexrays_alloc in module ida_hexrays: + +hexrays_alloc(*args) -> 'void *' + hexrays_alloc(size) -> void * + + @param size: size_t + +Help on class hexrays_failure_t in module ida_hexrays: + +class hexrays_failure_t(builtins.object) + | Proxy of C++ hexrays_failure_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> hexrays_failure_t + | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | + | __init__(self, c, ea, buf) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & + | + | __repr__ = _swig_repr(self) + | + | __str__ lambda self + | + | __swig_destroy__ = delete_hexrays_failure_t(...) + | delete_hexrays_failure_t(self) + | + | desc(self, *args) -> 'qstring' + | desc(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | code + | code + | + | errea + | errea + | + | str + | str + | + | thisown + | The membership flag + +Help on function hexrays_free in module ida_hexrays: + +hexrays_free(*args) -> 'void' + hexrays_free(ptr) + + @param ptr: void * + +Help on class hexwarn_t in module ida_hexrays: + +class hexwarn_t(builtins.object) + | Proxy of C++ hexwarn_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __init__(self, *args) + | __init__(self) -> hexwarn_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_hexwarn_t(...) + | delete_hexwarn_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: hexwarn_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | id + | id + | + | text + | text + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class hexwarns_t in module ida_hexrays: + +class hexwarns_t(builtins.object) + | Proxy of C++ qvector< hexwarn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & + | + | __getitem__(self, *args) -> 'hexwarn_t const &' + | __getitem__(self, i) -> hexwarn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> hexwarns_t + | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: hexwarn_t const & + | + | __swig_destroy__ = delete_hexwarns_t(...) + | delete_hexwarns_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: hexwarn_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: hexwarn_t const & + | + | append = push_back(self, *args) -> 'hexwarn_t &' + | + | at = __getitem__(self, *args) -> 'hexwarn_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< hexwarn_t >::const_iterator' + | begin(self) -> hexwarn_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< hexwarn_t >::const_iterator' + | end(self) -> hexwarn_t + | + | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' + | erase(self, it) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | + | erase(self, first, last) -> hexwarn_t + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator + | + | extract(self, *args) -> 'hexwarn_t *' + | extract(self) -> hexwarn_t + | + | find(self, *args) -> 'qvector< hexwarn_t >::const_iterator' + | find(self, x) -> hexwarn_t + | + | @param x: hexwarn_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=hexwarn_t()) + | + | @param x: hexwarn_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: hexwarn_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: hexwarn_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' + | insert(self, it, x) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'hexwarn_t &' + | push_back(self, x) + | + | @param x: hexwarn_t const & + | + | push_back(self) -> hexwarn_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: hexwarn_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< hexwarn_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class history_item_t in module ida_hexrays: + +class history_item_t(ctext_position_t) + | Proxy of C++ history_item_t class. + | + | Method resolution order: + | history_item_t + | ctext_position_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int + | + | __init__(self, _ea, p) -> history_item_t + | + | @param _ea: ea_t + | @param p: ctext_position_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_history_item_t(...) + | delete_history_item_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ea + | ea + | + | end + | end + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ctext_position_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ctext_position_t const & + | + | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ctext_position_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ctext_position_t: + | + | __hash__ = None + +Help on class history_t in module ida_hexrays: + +class history_t(qvector_history_t) + | Proxy of C++ qstack< history_item_t > class. + | + | Method resolution order: + | history_t + | qvector_history_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> history_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_history_t(...) + | delete_history_t(self) + | + | append = push_back(self, *args) -> 'history_item_t &' + | push_back(self, x) + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t + | + | at = __getitem__(self, *args) -> 'history_item_t const &' + | __getitem__(self, i) -> history_item_t + | + | @param i: size_t + | + | pop(self, *args) -> 'history_item_t' + | pop(self) -> history_item_t + | + | push(self, *args) -> 'void' + | push(self, v) + | + | @param v: history_item_t const & + | + | top(self, *args) -> 'history_item_t &' + | top(self) -> history_item_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_history_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __getitem__(self, *args) -> 'history_item_t const &' + | __getitem__(self, i) -> history_item_t + | + | @param i: size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: history_item_t const & + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' + | begin(self) -> history_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< history_item_t >::const_iterator' + | end(self) -> history_item_t + | + | erase(self, *args) -> 'qvector< history_item_t >::iterator' + | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | + | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator + | + | extract(self, *args) -> 'history_item_t *' + | extract(self) -> history_item_t + | + | find(self, *args) -> 'qvector< history_item_t >::const_iterator' + | find(self, x) -> history_item_t + | + | @param x: history_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: history_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< history_item_t >::iterator' + | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'history_item_t &' + | push_back(self, x) + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< history_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_history_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from qvector_history_t: + | + | __hash__ = None + +Help on function init_hexrays_plugin in module ida_hexrays: + +init_hexrays_plugin(*args) -> 'bool' + init_hexrays_plugin(flags=0) -> bool + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. + + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin + +Help on function install_hexrays_callback in module ida_hexrays: + +install_hexrays_callback(callback) + Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed + +Help on function install_microcode_filter in module ida_hexrays: + +install_microcode_filter(*args) -> 'bool' + install_microcode_filter(filter, install=True) -> bool + register/unregister non-standard microcode generator + + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success + +Help on function is_additive in module ida_hexrays: + +is_additive(*args) -> 'bool' + is_additive(op) -> bool + Is additive operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_assignment in module ida_hexrays: + +is_assignment(*args) -> 'bool' + is_assignment(op) -> bool + Is assignment operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_binary in module ida_hexrays: + +is_binary(*args) -> 'bool' + is_binary(op) -> bool + Is binary operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_bitop in module ida_hexrays: + +is_bitop(*args) -> 'bool' + is_bitop(op) -> bool + Is bit related operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_bool_type in module ida_hexrays: + +is_bool_type(*args) -> 'bool' + is_bool_type(type) -> bool + Is a boolean type? + + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a boolean type + +Help on function is_break_consumer in module ida_hexrays: + +is_break_consumer(*args) -> 'bool' + is_break_consumer(op) -> bool + Does a break statement influence the specified statement code? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_commutative in module ida_hexrays: + +is_commutative(*args) -> 'bool' + is_commutative(op) -> bool + Is commutative operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_inplace_def in module ida_hexrays: + +is_inplace_def(*args) -> 'bool' + is_inplace_def(type) -> bool + Is struct/union/enum definition (not declaration)? + + @param type: (C++: const tinfo_t &) tinfo_t const & + +Help on function is_kreg in module ida_hexrays: + +is_kreg(*args) -> 'bool' + is_kreg(r) -> bool + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() + + @param r: (C++: mreg_t) + +Help on function is_logical in module ida_hexrays: + +is_logical(*args) -> 'bool' + is_logical(op) -> bool + Is logical operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_loop in module ida_hexrays: + +is_loop(*args) -> 'bool' + is_loop(op) -> bool + Is loop statement code? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_lvalue in module ida_hexrays: + +is_lvalue(*args) -> 'bool' + is_lvalue(op) -> bool + Is Lvalue operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_may_access in module ida_hexrays: + +is_may_access(*args) -> 'bool' + is_may_access(maymust) -> bool + + @param maymust: maymust_t + +Help on function is_mcode_addsub in module ida_hexrays: + +is_mcode_addsub(*args) -> 'bool' + is_mcode_addsub(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_call in module ida_hexrays: + +is_mcode_call(*args) -> 'bool' + is_mcode_call(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_commutative in module ida_hexrays: + +is_mcode_commutative(*args) -> 'bool' + is_mcode_commutative(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_convertible_to_jmp in module ida_hexrays: + +is_mcode_convertible_to_jmp(*args) -> 'bool' + is_mcode_convertible_to_jmp(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_convertible_to_set in module ida_hexrays: + +is_mcode_convertible_to_set(*args) -> 'bool' + is_mcode_convertible_to_set(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_divmod in module ida_hexrays: + +is_mcode_divmod(*args) -> 'bool' + is_mcode_divmod(op) -> bool + + @param op: enum mcode_t + +Help on function is_mcode_fpu in module ida_hexrays: + +is_mcode_fpu(*args) -> 'bool' + is_mcode_fpu(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_j1 in module ida_hexrays: + +is_mcode_j1(*args) -> 'bool' + is_mcode_j1(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_jcond in module ida_hexrays: + +is_mcode_jcond(*args) -> 'bool' + is_mcode_jcond(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_propagatable in module ida_hexrays: + +is_mcode_propagatable(*args) -> 'bool' + is_mcode_propagatable(mcode) -> bool + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. + + @param mcode: (C++: mcode_t) enum mcode_t + +Help on function is_mcode_set in module ida_hexrays: + +is_mcode_set(*args) -> 'bool' + is_mcode_set(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_set1 in module ida_hexrays: + +is_mcode_set1(*args) -> 'bool' + is_mcode_set1(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_shift in module ida_hexrays: + +is_mcode_shift(*args) -> 'bool' + is_mcode_shift(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_xdsu in module ida_hexrays: + +is_mcode_xdsu(*args) -> 'bool' + is_mcode_xdsu(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_multiplicative in module ida_hexrays: + +is_multiplicative(*args) -> 'bool' + is_multiplicative(op) -> bool + Is multiplicative operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_nonbool_type in module ida_hexrays: + +is_nonbool_type(*args) -> 'bool' + is_nonbool_type(type) -> bool + Is definitely a non-boolean type? + + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) + +Help on function is_paf in module ida_hexrays: + +is_paf(*args) -> 'bool' + is_paf(t) -> bool + Is a pointer, array, or function type? + + @param t: (C++: type_t) + +Help on function is_prepost in module ida_hexrays: + +is_prepost(*args) -> 'bool' + is_prepost(op) -> bool + Is pre/post increment/decrement operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_ptr_or_array in module ida_hexrays: + +is_ptr_or_array(*args) -> 'bool' + is_ptr_or_array(t) -> bool + Is a pointer or array type? + + @param t: (C++: type_t) + +Help on function is_relational in module ida_hexrays: + +is_relational(*args) -> 'bool' + is_relational(op) -> bool + Is comparison operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_signed_mcode in module ida_hexrays: + +is_signed_mcode(*args) -> 'bool' + is_signed_mcode(code) -> bool + + @param code: enum mcode_t + +Help on function is_small_udt in module ida_hexrays: + +is_small_udt(*args) -> 'bool' + is_small_udt(tif) -> bool + Is a small structure or union? + + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. + +Help on function is_type_correct in module ida_hexrays: + +is_type_correct(*args) -> 'bool' + is_type_correct(ptr) -> bool + Verify a type string. + + @param ptr: (C++: const type_t *) type_t const * + @return: true if type string is correct + +Help on function is_unary in module ida_hexrays: + +is_unary(*args) -> 'bool' + is_unary(op) -> bool + Is unary operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_unsigned_mcode in module ida_hexrays: + +is_unsigned_mcode(*args) -> 'bool' + is_unsigned_mcode(code) -> bool + + @param code: enum mcode_t + +Help on class iterator in module ida_hexrays: + +class iterator(builtins.object) + | Proxy of C++ bitset_t::iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | + | @param n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __ref__(self, *args) -> 'int' + | __ref__(self) -> int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_iterator(...) + | delete_iterator(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ivl_t in module ida_hexrays: + +class ivl_t(uval_ivl_t) + | Proxy of C++ ivl_t class. + | + | Method resolution order: + | ivl_t + | uval_ivl_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __init__(self, *args) + | __init__(self, _off=0, _size=0) -> ivl_t + | + | @param _off: uval_t + | @param _size: uval_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ivl_t(...) + | delete_ivl_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ivl_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, off2) -> bool + | + | @param off2: uval_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | extend_to_cover(self, *args) -> 'bool' + | extend_to_cover(self, r) -> bool + | + | @param r: ivl_t const & + | + | includes(self, *args) -> 'bool' + | includes(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | + | @param r: ivl_t const & + | + | overlap(self, *args) -> 'bool' + | overlap(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from uval_ivl_t: + | + | end(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | end(self) -> unsigned-ea-like-numeric-type↗ + | + | last(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | last(self) -> unsigned-ea-like-numeric-type↗ + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from uval_ivl_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | size + | size + +Help on class ivl_with_name_t in module ida_hexrays: + +class ivl_with_name_t(builtins.object) + | Proxy of C++ ivl_with_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ivl_with_name_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ivl_with_name_t(...) + | delete_ivl_with_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ivl + | ivl + | + | part + | part + | + | thisown + | The membership flag + | + | whole + | whole + +Help on class ivlset_t in module ida_hexrays: + +class ivlset_t(uval_ivl_ivlset_t) + | Proxy of C++ ivlset_t class. + | + | Method resolution order: + | ivlset_t + | uval_ivl_ivlset_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __init__(self, *args) + | __init__(self) -> ivlset_t + | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ivlset_t(...) + | delete_ivlset_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | add(self, *args) -> 'bool' + | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | add(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | + | add(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | addmasked(self, *args) -> 'bool' + | addmasked(self, ivs, mask) -> bool + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ivlset_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, off) -> bool + | + | @param off: uval_t + | + | count(self, *args) -> 'asize_t' + | count(self) -> asize_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | has_common(self, *args) -> 'bool' + | has_common(self, ivl, strict=False) -> bool + | + | @param ivl: ivl_t const & + | @param strict: bool + | + | has_common(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | includes(self, *args) -> 'bool' + | includes(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | sub(self, *args) -> 'bool' + | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | sub(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | + | sub(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from uval_ivl_ivlset_t: + | + | all_values(self, *args) -> 'bool' + | all_values(self) -> bool + | + | begin(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | getivl(self, *args) -> 'ivl_t const &' + | getivl(self, idx) -> ivl_t + | + | @param idx: int + | + | lastivl(self, *args) -> 'ivl_t const &' + | lastivl(self) -> ivl_t + | + | nivls(self, *args) -> 'size_t' + | nivls(self) -> size_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | set_all_values(self, *args) -> 'void' + | set_all_values(self) + | + | single_value(self, *args) -> 'bool' + | single_value(self) -> bool + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from uval_ivl_ivlset_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function jcnd2set in module ida_hexrays: + +jcnd2set(*args) -> 'mcode_t' + jcnd2set(code) -> mcode_t + + @param code: enum mcode_t + +Help on function lexcompare in module ida_hexrays: + +lexcompare(*args) -> 'int' + lexcompare(a, b) -> int + + @param a: mop_t const & + @param b: mop_t const & + +Help on function lnot in module ida_hexrays: + +lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. + +Help on function locate_lvar in module ida_hexrays: + +locate_lvar(*args) -> 'bool' + locate_lvar(out, func_ea, varname) -> bool + Find a variable by name. + + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. + +Help on class lvar_locator_t in module ida_hexrays: + +class lvar_locator_t(builtins.object) + | Proxy of C++ lvar_locator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __init__(self, *args) + | __init__(self) -> lvar_locator_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_locator_t(...) + | delete_lvar_locator_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: lvar_locator_t const & + | + | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t + | Get the register number of the variable. + | + | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) + | + | get_scattered(self, *args) -> 'scattered_aloc_t &' + | get_scattered(self) -> scattered_aloc_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | Is variable located on one register? + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | Is variable located on two registers? + | + | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool + | Is variable located on register(s)? + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is variable scattered? + | + | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool + | Is variable located on the stack? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | defea + | defea + | + | location + | location + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function lvar_mapping_begin in module ida_hexrays: + +lvar_mapping_begin(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_begin(map) -> lvar_mapping_iterator_t + Get iterator pointing to the beginning of lvar_mapping_t. + + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + +Help on function lvar_mapping_clear in module ida_hexrays: + +lvar_mapping_clear(*args) -> 'void' + lvar_mapping_clear(map) + Clear lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + +Help on function lvar_mapping_end in module ida_hexrays: + +lvar_mapping_end(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_end(map) -> lvar_mapping_iterator_t + Get iterator pointing to the end of lvar_mapping_t. + + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + +Help on function lvar_mapping_erase in module ida_hexrays: + +lvar_mapping_erase(*args) -> 'void' + lvar_mapping_erase(map, p) + Erase current element from lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_find in module ida_hexrays: + +lvar_mapping_find(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_find(map, key) -> lvar_mapping_iterator_t + Find the specified key in lvar_mapping_t. + + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + +Help on function lvar_mapping_first in module ida_hexrays: + +lvar_mapping_first(*args) -> 'lvar_locator_t const &' + lvar_mapping_first(p) -> lvar_locator_t + Get reference to the current map key. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_free in module ida_hexrays: + +lvar_mapping_free(*args) -> 'void' + lvar_mapping_free(map) + Delete lvar_mapping_t instance. + + @param map: (C++: lvar_mapping_t *) + +Help on function lvar_mapping_insert in module ida_hexrays: + +lvar_mapping_insert(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & + +Help on class lvar_mapping_iterator_t in module ida_hexrays: + +class lvar_mapping_iterator_t(builtins.object) + | Proxy of C++ lvar_mapping_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> lvar_mapping_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_mapping_iterator_t(...) + | delete_lvar_mapping_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function lvar_mapping_new in module ida_hexrays: + +lvar_mapping_new(*args) -> 'lvar_mapping_t *' + lvar_mapping_new() -> lvar_mapping_t + Create a new lvar_mapping_t instance. + +Help on function lvar_mapping_next in module ida_hexrays: + +lvar_mapping_next(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_next(p) -> lvar_mapping_iterator_t + Move to the next element. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_prev in module ida_hexrays: + +lvar_mapping_prev(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_prev(p) -> lvar_mapping_iterator_t + Move to the previous element. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_second in module ida_hexrays: + +lvar_mapping_second(*args) -> 'lvar_locator_t &' + lvar_mapping_second(p) -> lvar_locator_t + Get reference to the current map value. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_size in module ida_hexrays: + +lvar_mapping_size(*args) -> 'size_t' + lvar_mapping_size(map) -> size_t + Get size of lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + +Help on class lvar_mapping_t in module ida_hexrays: + +class lvar_mapping_t(builtins.object) + | Proxy of C++ std::map< lvar_locator_t,lvar_locator_t > class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lvar_mapping_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_mapping_t(...) + | delete_lvar_mapping_t(self) + | + | at(self, *args) -> 'lvar_locator_t &' + | at(self, _Keyval) -> lvar_locator_t + | + | @param _Keyval: lvar_locator_t const & + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lvar_ref_t in module ida_hexrays: + +class lvar_ref_t(builtins.object) + | Proxy of C++ lvar_ref_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __init__(self, *args) + | __init__(self, m, i, o=0) -> lvar_ref_t + | + | @param m: mba_t * + | @param i: int + | @param o: sval_t + | + | __init__(self, r) -> lvar_ref_t + | + | @param r: lvar_ref_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_ref_t(...) + | delete_lvar_ref_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: lvar_ref_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lvar_ref_t & + | + | var(self, *args) -> 'lvar_t &' + | var(self) -> lvar_t + | Retrieve the referenced variable. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | mba + | mba + | + | off + | off + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lvar_saved_info_t in module ida_hexrays: + +class lvar_saved_info_t(builtins.object) + | Proxy of C++ lvar_saved_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & + | + | __init__(self, *args) + | __init__(self) -> lvar_saved_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_saved_info_t(...) + | delete_lvar_saved_info_t(self) + | + | clear_keep(self, *args) -> 'void' + | clear_keep(self) + | + | clr_forced_lvar(self, *args) -> 'void' + | clr_forced_lvar(self) + | + | clr_nomap_lvar(self, *args) -> 'void' + | clr_nomap_lvar(self) + | + | clr_noptr_lvar(self, *args) -> 'void' + | clr_noptr_lvar(self) + | + | clr_unused_lvar(self, *args) -> 'void' + | clr_unused_lvar(self) + | + | has_info(self, *args) -> 'bool' + | has_info(self) -> bool + | + | is_forced_lvar(self, *args) -> 'bool' + | is_forced_lvar(self) -> bool + | + | is_kept(self, *args) -> 'bool' + | is_kept(self) -> bool + | + | is_nomap_lvar(self, *args) -> 'bool' + | is_nomap_lvar(self) -> bool + | + | is_noptr_lvar(self, *args) -> 'bool' + | is_noptr_lvar(self) -> bool + | + | is_unused_lvar(self, *args) -> 'bool' + | is_unused_lvar(self) -> bool + | + | set_forced_lvar(self, *args) -> 'void' + | set_forced_lvar(self) + | + | set_keep(self, *args) -> 'void' + | set_keep(self) + | + | set_nomap_lvar(self, *args) -> 'void' + | set_nomap_lvar(self) + | + | set_noptr_lvar(self, *args) -> 'void' + | set_noptr_lvar(self) + | + | set_unused_lvar(self, *args) -> 'void' + | set_unused_lvar(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | flags + | flags + | + | ll + | ll + | + | name + | name + | + | size + | size + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lvar_saved_infos_t in module ida_hexrays: + +class lvar_saved_infos_t(builtins.object) + | Proxy of C++ qvector< lvar_saved_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & + | + | __getitem__(self, *args) -> 'lvar_saved_info_t const &' + | __getitem__(self, i) -> lvar_saved_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> lvar_saved_infos_t + | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_saved_info_t const & + | + | __swig_destroy__ = delete_lvar_saved_infos_t(...) + | delete_lvar_saved_infos_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lvar_saved_info_t const & + | + | append = push_back(self, *args) -> 'lvar_saved_info_t &' + | + | at = __getitem__(self, *args) -> 'lvar_saved_info_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' + | begin(self) -> lvar_saved_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' + | end(self) -> lvar_saved_info_t + | + | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' + | erase(self, it) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | + | erase(self, first, last) -> lvar_saved_info_t + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator + | + | extract(self, *args) -> 'lvar_saved_info_t *' + | extract(self) -> lvar_saved_info_t + | + | find(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' + | find(self, x) -> lvar_saved_info_t + | + | @param x: lvar_saved_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lvar_saved_info_t()) + | + | @param x: lvar_saved_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lvar_saved_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lvar_saved_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' + | insert(self, it, x) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lvar_saved_info_t &' + | push_back(self, x) + | + | @param x: lvar_saved_info_t const & + | + | push_back(self) -> lvar_saved_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lvar_saved_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lvar_t in module ida_hexrays: + +class lvar_t(lvar_locator_t) + | Proxy of C++ lvar_t class. + | + | Method resolution order: + | lvar_t + | lvar_locator_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> lvar_locator_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_t(...) + | delete_lvar_t(self) + | + | accepts_type(self, *args) -> 'bool' + | accepts_type(self, t, may_change_thisarg=False) -> bool + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) + | + | append_list(self, *args) -> 'void' + | append_list(self, mba, lst, pad_if_scattered=False) + | Append local variable to mlist. + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) if true, append padding bytes in case of scattered lvar + | + | clear_used(self, *args) -> 'void' + | clear_used(self) + | + | clr_arg_var(self, *args) -> 'void' + | clr_arg_var(self) + | + | clr_automapped(self, *args) -> 'void' + | clr_automapped(self) + | + | clr_decl_unused(self, *args) -> 'void' + | clr_decl_unused(self) + | + | clr_dummy_arg(self, *args) -> 'void' + | clr_dummy_arg(self) + | + | clr_fake_var(self, *args) -> 'void' + | clr_fake_var(self) + | + | clr_floating_var(self, *args) -> 'void' + | clr_floating_var(self) + | + | clr_forced_var(self, *args) -> 'void' + | clr_forced_var(self) + | + | clr_mapdst_var(self, *args) -> 'void' + | clr_mapdst_var(self) + | + | clr_mreg_done(self, *args) -> 'void' + | clr_mreg_done(self) + | + | clr_noptr_var(self, *args) -> 'void' + | clr_noptr_var(self) + | + | clr_notarg(self, *args) -> 'void' + | clr_notarg(self) + | + | clr_overlapped_var(self, *args) -> 'void' + | clr_overlapped_var(self) + | + | clr_shared(self, *args) -> 'void' + | clr_shared(self) + | + | clr_spoiled_var(self, *args) -> 'void' + | clr_spoiled_var(self) + | + | clr_thisarg(self, *args) -> 'void' + | clr_thisarg(self) + | + | clr_unknown_width(self, *args) -> 'void' + | clr_unknown_width(self) + | + | clr_used_byref(self, *args) -> 'void' + | clr_used_byref(self) + | + | clr_user_info(self, *args) -> 'void' + | clr_user_info(self) + | + | clr_user_name(self, *args) -> 'void' + | clr_user_name(self) + | + | clr_user_type(self, *args) -> 'void' + | clr_user_type(self) + | + | has_common(self, *args) -> 'bool' + | has_common(self, v) -> bool + | Do variables overlap? + | + | @param v: (C++: const lvar_t &) lvar_t const & + | + | has_common_bit(self, *args) -> 'bool' + | has_common_bit(self, loc, width2) -> bool + | Does the variable overlap with the specified location? + | + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) + | + | has_regname(self, *args) -> 'bool' + | has_regname(self) -> bool + | Has a register name? (like _RAX) + | + | in_asm(self, *args) -> 'bool' + | in_asm(self) -> bool + | Is variable used in an instruction translated into __asm? + | + | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mba) -> bool + | Is the variable aliasable? + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) + | + | is_automapped(self, *args) -> 'bool' + | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? + | + | is_decl_unused(self, *args) -> 'bool' + | is_decl_unused(self) -> bool + | Was declared as __unused by the user? See CVAR_UNUSED. + | + | is_dummy_arg(self, *args) -> 'bool' + | is_dummy_arg(self) -> bool + | Is a dummy argument (added to fill a hole in the argument list) + | + | is_forced_var(self, *args) -> 'bool' + | is_forced_var(self) -> bool + | Is a forced variable? + | + | is_noptr_var(self, *args) -> 'bool' + | is_noptr_var(self) -> bool + | Variable type should not be a pointer. + | + | is_notarg(self, *args) -> 'bool' + | is_notarg(self) -> bool + | Is a local variable? (local variable cannot be an input argument) + | + | is_shared(self, *args) -> 'bool' + | is_shared(self) -> bool + | Is lvar mapped to several chains. + | + | is_thisarg(self, *args) -> 'bool' + | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) -> 'bool' + | is_used_byref(self) -> bool + | Was the address of the variable taken? + | + | set_arg_var(self, *args) -> 'void' + | set_arg_var(self) + | + | set_automapped(self, *args) -> 'void' + | set_automapped(self) + | + | set_decl_unused(self, *args) -> 'void' + | set_decl_unused(self) + | + | set_dummy_arg(self, *args) -> 'void' + | set_dummy_arg(self) + | + | set_fake_var(self, *args) -> 'void' + | set_fake_var(self) + | + | set_final_lvar_type(self, *args) -> 'void' + | set_final_lvar_type(self, t) + | Set final variable type. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | + | set_floating_var(self, *args) -> 'void' + | set_floating_var(self) + | + | set_forced_var(self, *args) -> 'void' + | set_forced_var(self) + | + | set_lvar_type(self, *args) -> 'bool' + | set_lvar_type(self, t, may_fail=False) -> bool + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success + | + | set_mapdst_var(self, *args) -> 'void' + | set_mapdst_var(self) + | + | set_mreg_done(self, *args) -> 'void' + | set_mreg_done(self) + | + | set_non_typed(self, *args) -> 'void' + | set_non_typed(self) + | + | set_noptr_var(self, *args) -> 'void' + | set_noptr_var(self) + | + | set_notarg(self, *args) -> 'void' + | set_notarg(self) + | + | set_overlapped_var(self, *args) -> 'void' + | set_overlapped_var(self) + | + | set_shared(self, *args) -> 'void' + | set_shared(self) + | + | set_spoiled_var(self, *args) -> 'void' + | set_spoiled_var(self) + | + | set_thisarg(self, *args) -> 'void' + | set_thisarg(self) + | + | set_typed(self, *args) -> 'void' + | set_typed(self) + | + | set_unknown_width(self, *args) -> 'void' + | set_unknown_width(self) + | + | set_used(self, *args) -> 'void' + | set_used(self) + | + | set_used_byref(self, *args) -> 'void' + | set_used_byref(self) + | + | set_user_name(self, *args) -> 'void' + | set_user_name(self) + | + | set_user_type(self, *args) -> 'void' + | set_user_type(self) + | + | set_width(self, *args) -> 'bool' + | set_width(self, w, svw_flags=0) -> bool + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success + | + | type(self, *args) -> 'tinfo_t &' + | type(self) -> tinfo_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cmt + | cmt + | + | defblk + | defblk + | + | divisor + | divisor + | + | has_nice_name + | has_nice_name(self) -> bool + | Does the variable have a nice name? + | + | has_user_info + | has_user_info(self) -> bool + | Has any user-defined information? + | + | has_user_name + | has_user_name(self) -> bool + | Has user-defined name? + | + | has_user_type + | has_user_type(self) -> bool + | Has user-defined type? + | + | is_arg_var + | is_arg_var(self) -> bool + | Is the function argument? + | + | is_fake_var + | is_fake_var(self) -> bool + | Is fake return variable? + | + | is_floating_var + | is_floating_var(self) -> bool + | Used by a fpu insn? + | + | is_mapdst_var + | is_mapdst_var(self) -> bool + | Other variable(s) map to this var? + | + | is_overlapped_var + | is_overlapped_var(self) -> bool + | Is overlapped variable? + | + | is_result_var + | is_result_var(self) -> bool + | Is the function result? + | + | is_spoiled_var + | is_spoiled_var(self) -> bool + | Is spoiled var? (meaningful only during lvar allocation) + | + | is_unknown_width + | is_unknown_width(self) -> bool + | Do we know the width of the variable? + | + | mreg_done + | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? + | + | name + | name + | + | thisown + | The membership flag + | + | tif + | tif + | + | typed + | typed(self) -> bool + | Has the variable a type? + | + | used + | used(self) -> bool + | Is the variable used in the code? + | + | width + | width + | + | ---------------------------------------------------------------------- + | Methods inherited from lvar_locator_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: lvar_locator_t const & + | + | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t + | Get the register number of the variable. + | + | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) + | + | get_scattered(self, *args) -> 'scattered_aloc_t &' + | get_scattered(self) -> scattered_aloc_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | Is variable located on one register? + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | Is variable located on two registers? + | + | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool + | Is variable located on register(s)? + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is variable scattered? + | + | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool + | Is variable located on the stack? + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from lvar_locator_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | defea + | defea + | + | location + | location + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from lvar_locator_t: + | + | __hash__ = None + +Help on class lvar_uservec_t in module ida_hexrays: + +class lvar_uservec_t(builtins.object) + | Proxy of C++ lvar_uservec_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lvar_uservec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_uservec_t(...) + | delete_lvar_uservec_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | find_info(self, *args) -> 'lvar_saved_info_t *' + | find_info(self, vloc) -> lvar_saved_info_t + | find saved user settings for given var + | + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & + | + | keep_info(self, *args) -> 'void' + | keep_info(self, v) + | Preserve user settings for given var. + | + | @param v: (C++: const lvar_t &) lvar_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lvar_uservec_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lmaps + | lmaps + | + | lvvec + | lvvec + | + | stkoff_delta + | stkoff_delta + | + | thisown + | The membership flag + | + | ulv_flags + | ulv_flags + +Help on class lvars_t in module ida_hexrays: + +class lvars_t(qvector_lvar_t) + | Proxy of C++ lvars_t class. + | + | Method resolution order: + | lvars_t + | qvector_lvar_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lvars_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvars_t(...) + | delete_lvars_t(self) + | + | find(self, *args) -> 'lvar_t *' + | find(self, ll) -> lvar_t + | Find variable at the specified location. + | + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr + | + | find_input_lvar(self, *args) -> 'int' + | find_input_lvar(self, argloc, _size) -> int + | Find input variable at the specified location. + | + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. + | + | find_lvar(self, *args) -> 'int' + | find_lvar(self, location, width, defblk=-1) -> int + | Find variable at the specified location. + | + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. + | + | find_stkvar(self, *args) -> 'int' + | find_stkvar(self, spoff, width) -> int + | Find stack variable at the specified location. + | + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_lvar_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __getitem__(self, *args) -> 'lvar_t const &' + | __getitem__(self, i) -> lvar_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lvar_t const & + | + | append = push_back(self, *args) -> 'lvar_t &' + | push_back(self, x) + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t + | + | at = __getitem__(self, *args) -> 'lvar_t const &' + | __getitem__(self, i) -> lvar_t + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' + | begin(self) -> lvar_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lvar_t >::const_iterator' + | end(self) -> lvar_t + | + | erase(self, *args) -> 'qvector< lvar_t >::iterator' + | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | + | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator + | + | extract(self, *args) -> 'lvar_t *' + | extract(self) -> lvar_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lvar_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lvar_t >::iterator' + | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lvar_t &' + | push_back(self, x) + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lvar_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_lvar_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from qvector_lvar_t: + | + | __hash__ = None + +Help on function make_num in module ida_hexrays: + +make_num(*args) + Create a number expression + +Help on function make_pointer in module ida_hexrays: + +make_pointer(*args) -> 'tinfo_t' + make_pointer(type) -> tinfo_t + Create a pointer type. This function performs the following conversion: "type" + -> "type*" + + @param type: (C++: const tinfo_t &) object type. + @return: "type*". for example, if 'char' is passed as the argument, + +Help on function make_ref in module ida_hexrays: + +make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. + +Help on function mark_cfunc_dirty in module ida_hexrays: + +mark_cfunc_dirty(*args) -> 'bool' + mark_cfunc_dirty(ea, close_views=False) -> bool + Flush the cached decompilation results. Erases a cache entry for the specified + function. + + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function + @return: if a cache entry existed. + +Help on class mba_range_iterator_t in module ida_hexrays: + +class mba_range_iterator_t(builtins.object) + | Proxy of C++ mba_range_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mba_range_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mba_range_iterator_t(...) + | delete_mba_range_iterator_t(self) + | + | chunk(self, *args) -> 'range_t const &' + | chunk(self) -> range_t + | + | is_snippet(self, *args) -> 'bool' + | is_snippet(self) -> bool + | + | next(self, *args) -> 'bool' + | next(self) -> bool + | + | set(self, *args) -> 'bool' + | set(self, mbr) -> bool + | + | @param mbr: mba_ranges_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fii + | fii + | + | rii + | rii + | + | thisown + | The membership flag + +Help on class mba_ranges_t in module ida_hexrays: + +class mba_ranges_t(builtins.object) + | Proxy of C++ mba_ranges_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _pfn=None) -> mba_ranges_t + | + | @param _pfn: func_t * + | + | __init__(self, r) -> mba_ranges_t + | + | @param r: rangevec_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mba_ranges_t(...) + | delete_mba_ranges_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | + | is_snippet(self, *args) -> 'bool' + | is_snippet(self) -> bool + | + | start(self, *args) -> 'ea_t' + | start(self) -> ea_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | pfn + | pfn + | + | ranges + | ranges + | + | thisown + | The membership flag + +Help on class mba_t in module ida_hexrays: + +class mba_t(builtins.object) + | Proxy of C++ mba_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mba_t(...) + | delete_mba_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _print(self, *args) -> 'void' + | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & + | + | _register(self, *args) -> 'void' + | _register(self) + | + | alloc_fict_ea(self, *args) -> 'ea_t' + | alloc_fict_ea(self, real_ea) -> ea_t + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) -> 'mreg_t' + | alloc_kreg(self, size, check_size=True) -> mreg_t + | Allocate a kernel register. + | + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. + | + | alloc_lvars(self, *args) -> 'void' + | alloc_lvars(self) + | Allocate local variables. Must be called only immediately after + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. + | + | analyze_calls(self, *args) -> 'int' + | analyze_calls(self, acflags) -> int + | Analyze calls and determine calling conventions. + | + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. + | + | arg(self, *args) -> 'lvar_t const &' + | arg(self, n) -> lvar_t + | + | @param n: int + | + | argbase(self, *args) -> 'sval_t' + | argbase(self) -> sval_t + | + | argidx_ok(self, *args) -> 'bool' + | argidx_ok(self) -> bool + | + | argidx_sorted(self, *args) -> 'bool' + | argidx_sorted(self) -> bool + | + | bad_call_sp_detected(self, *args) -> 'bool' + | bad_call_sp_detected(self) -> bool + | + | build_graph(self, *args) -> 'merror_t' + | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code + | + | calc_shins_flags(self, *args) -> 'int' + | calc_shins_flags(self) -> int + | + | callinfo_built(self, *args) -> 'bool' + | callinfo_built(self) -> bool + | + | chain_varnums_ok(self, *args) -> 'bool' + | chain_varnums_ok(self) -> bool + | + | clr_cdtr(self, *args) -> 'void' + | clr_cdtr(self) + | + | clr_mba_flags(self, *args) -> 'void' + | clr_mba_flags(self, f) + | + | @param f: int + | + | clr_mba_flags2(self, *args) -> 'void' + | clr_mba_flags2(self, f) + | + | @param f: int + | + | code16_bit_removed(self, *args) -> 'bool' + | code16_bit_removed(self) -> bool + | + | combine_blocks(self, *args) -> 'bool' + | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks + | + | common_stkvars_stkargs(self, *args) -> 'bool' + | common_stkvars_stkargs(self) -> bool + | + | copy_block(self, *args) -> 'mblock_t *' + | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy + | + | create_helper_call(self, *args) -> 'minsn_t *' + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t + | Create a call of a helper function. + | + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error + | + | deleted_pairs(self, *args) -> 'bool' + | deleted_pairs(self) -> bool + | + | display_numaddrs(self, *args) -> 'bool' + | display_numaddrs(self) -> bool + | + | display_valnums(self, *args) -> 'bool' + | display_valnums(self) -> bool + | + | dump(self, *args) -> 'void' + | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. + | + | dump_mba(self, *args) -> 'void' + | dump_mba(self, _verify, title) + | + | @param _verify: bool + | @param title: char const * + | + | find_mop(self, *args) -> 'mop_t *' + | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand. BADADDR means to accept any address. + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. + | + | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits all instruction and + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int + | Visit all operands of all instructions. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | for_all_topinsns(self, *args) -> 'int' + | for_all_topinsns(self, mv) -> int + | Visit all top level instructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) -> 'void' + | free_kreg(self, reg, size) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes + | + | generated_asserts(self, *args) -> 'bool' + | generated_asserts(self) -> bool + | + | get_args_region(self, *args) -> 'ivl_t const &' + | get_args_region(self) -> ivl_t + | + | get_curfunc(self, *args) -> 'func_t *' + | get_curfunc(self) -> func_t * + | + | get_graph(self, *args) -> 'mbl_graph_t *' + | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. + | + | get_ida_argloc(self, *args) -> 'argloc_t' + | get_ida_argloc(self, v) -> argloc_t + | + | @param v: lvar_t const & + | + | get_lvars_region(self, *args) -> 'ivl_t const &' + | get_lvars_region(self) -> ivl_t + | + | get_mba_flags(self, *args) -> 'int' + | get_mba_flags(self) -> int + | + | get_mba_flags2(self, *args) -> 'int' + | get_mba_flags2(self) -> int + | + | get_mblock(self, *args) -> 'mblock_t *' + | get_mblock(self, n) -> mblock_t + | + | @param n: int + | + | get_shadow_region(self, *args) -> 'ivl_t const &' + | get_shadow_region(self) -> ivl_t + | + | get_stack_region(self, *args) -> 'ivl_t' + | get_stack_region(self) -> ivl_t + | + | get_std_region(self, *args) -> 'ivl_t const &' + | get_std_region(self, idx) -> ivl_t + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t + | + | graph_insns(self, *args) -> 'bool' + | graph_insns(self) -> bool + | + | has_bad_sp(self, *args) -> 'bool' + | has_bad_sp(self) -> bool + | + | has_outlines(self, *args) -> 'bool' + | has_outlines(self) -> bool + | + | has_over_chains(self, *args) -> 'bool' + | has_over_chains(self) -> bool + | + | has_passregs(self, *args) -> 'bool' + | has_passregs(self) -> bool + | + | has_stack_retval(self, *args) -> 'bool' + | has_stack_retval(self) -> bool + | + | idaloc2vd(self, *args) -> 'vdloc_t' + | idaloc2vd(self, loc, width) -> vdloc_t + | + | @param loc: argloc_t const & + | @param width: int + | + | insert_block(self, *args) -> 'mblock_t *' + | insert_block(self, bblk) -> mblock_t + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block + | + | is_cdtr(self, *args) -> 'bool' + | is_cdtr(self) -> bool + | + | is_ctr(self, *args) -> 'bool' + | is_ctr(self) -> bool + | + | is_dtr(self, *args) -> 'bool' + | is_dtr(self) -> bool + | + | is_pattern(self, *args) -> 'bool' + | is_pattern(self) -> bool + | + | is_snippet(self, *args) -> 'bool' + | is_snippet(self) -> bool + | + | is_stkarg(self, *args) -> 'bool' + | is_stkarg(self, v) -> bool + | + | @param v: lvar_t const & + | + | is_thunk(self, *args) -> 'bool' + | is_thunk(self) -> bool + | + | loaded_gdl(self, *args) -> 'bool' + | loaded_gdl(self) -> bool + | + | lvar_names_ok(self, *args) -> 'bool' + | lvar_names_ok(self) -> bool + | + | lvars_allocated(self, *args) -> 'bool' + | lvars_allocated(self) -> bool + | + | lvars_renamed(self, *args) -> 'bool' + | lvars_renamed(self) -> bool + | + | map_fict_ea(self, *args) -> 'ea_t' + | map_fict_ea(self, fict_ea) -> ea_t + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address + | + | mark_chains_dirty(self, *args) -> 'void' + | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. + | + | may_refine_rettype(self, *args) -> 'bool' + | may_refine_rettype(self) -> bool + | + | optimize_global(self, *args) -> 'merror_t' + | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code + | + | optimize_local(self, *args) -> 'int' + | optimize_local(self, locopt_bits) -> int + | Optimize each basic block locally + | + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. + | + | optimized(self, *args) -> 'bool' + | optimized(self) -> bool + | + | precise_defeas(self, *args) -> 'bool' + | precise_defeas(self) -> bool + | + | prop_complex(self, *args) -> 'bool' + | prop_complex(self) -> bool + | + | propagated_asserts(self, *args) -> 'bool' + | propagated_asserts(self) -> bool + | + | really_alloc(self, *args) -> 'bool' + | really_alloc(self) -> bool + | + | regargs_is_not_aligned(self, *args) -> 'bool' + | regargs_is_not_aligned(self) -> bool + | + | remove_block(self, *args) -> 'bool' + | remove_block(self, blk) -> bool + | Delete a block. + | + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable + | + | remove_empty_and_unreachable_blocks(self, *args) -> 'bool' + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. + | + | returns_fpval(self, *args) -> 'bool' + | returns_fpval(self) -> bool + | + | rtype_refined(self, *args) -> 'bool' + | rtype_refined(self) -> bool + | + | save_snapshot(self, *args) -> 'void' + | save_snapshot(self, description) + | Create and save microcode snapshot. + | + | @param description: (C++: const char *) char const * + | + | saverest_done(self, *args) -> 'bool' + | saverest_done(self) -> bool + | + | serialize(self, *args) -> 'void' + | serialize(self) + | Serialize mbl array into a sequence of bytes. + | + | set_maturity(self, *args) -> 'bool' + | set_maturity(self, mat) -> bool + | Set maturity level. + | + | @param mat: (C++: mba_maturity_t) new maturity level + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. + | + | set_mba_flags(self, *args) -> 'void' + | set_mba_flags(self, f) + | + | @param f: int + | + | set_mba_flags2(self, *args) -> 'void' + | set_mba_flags2(self, f) + | + | @param f: int + | + | short_display(self, *args) -> 'bool' + | short_display(self) -> bool + | + | should_beautify(self, *args) -> 'bool' + | should_beautify(self) -> bool + | + | show_reduction(self, *args) -> 'bool' + | show_reduction(self) -> bool + | + | stkoff_ida2vd(self, *args) -> 'sval_t' + | stkoff_ida2vd(self, off) -> sval_t + | + | @param off: sval_t + | + | stkoff_vd2ida(self, *args) -> 'sval_t' + | stkoff_vd2ida(self, off) -> sval_t + | + | @param off: sval_t + | + | term(self, *args) -> 'void' + | term(self) + | + | use_frame(self, *args) -> 'bool' + | use_frame(self) -> bool + | + | use_wingraph32(self, *args) -> 'bool' + | use_wingraph32(self) -> bool + | + | valranges_done(self, *args) -> 'bool' + | valranges_done(self) -> bool + | + | vd2idaloc(self, *args) -> 'argloc_t' + | vd2idaloc(self, loc, width, spd) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t + | + | vd2idaloc(self, loc, width) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int + | + | verify(self, *args) -> 'void' + | verify(self, always) + | Verify microcode consistency. + | + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. If the + | microcode is inconsistent, this function will generate an + | internal error. We provide the source code of this function in + | the plugins/hexrays_sdk/verifier directory for your reference. + | + | write_to_const_detected(self, *args) -> 'bool' + | write_to_const_detected(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | deserialize(*args) -> 'mba_t *' + | deserialize(bytes) -> mba_t + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | aliased_args + | aliased_args + | + | aliased_memory + | aliased_memory + | + | aliased_vars + | aliased_vars + | + | argidx + | argidx + | + | blocks + | blocks + | + | cc + | cc + | + | consumed_argregs + | consumed_argregs + | + | deprecated_idb_node + | deprecated_idb_node + | + | entry_ea + | entry_ea + | + | error_ea + | error_ea + | + | error_strarg + | error_strarg + | + | final_type + | final_type + | + | first_epilog_ea + | first_epilog_ea + | + | fpd + | fpd + | + | frregs + | frregs + | + | frsize + | frsize + | + | fti_flags + | fti_flags + | + | fullsize + | fullsize + | + | gotoff_stkvars + | gotoff_stkvars + | + | idb_node + | + | idb_spoiled + | idb_spoiled + | + | idb_type + | idb_type + | + | inargoff + | inargoff + | + | label + | label + | + | last_prolog_ea + | last_prolog_ea + | + | maturity + | maturity + | + | mbr + | mbr + | + | minargref + | minargref + | + | minstkref + | minstkref + | + | minstkref_ea + | minstkref_ea + | + | natural + | natural + | + | nodel_memory + | nodel_memory + | + | notes + | notes + | + | npurged + | npurged + | + | occurred_warns + | occurred_warns + | + | pfn_flags + | pfn_flags + | + | qty + | qty + | + | reqmat + | reqmat + | + | restricted_memory + | restricted_memory + | + | retsize + | retsize + | + | retvaridx + | retvaridx + | + | shadow_args + | shadow_args + | + | spd_adjust + | spd_adjust + | + | spoiled_list + | spoiled_list + | + | stacksize + | stacksize + | + | std_ivls + | std_ivls + | + | thisown + | The membership flag + | + | tmpstk_size + | tmpstk_size + | + | vars + | vars + +Help on function mba_t_deserialize in module ida_hexrays: + +mba_t_deserialize(*args) -> 'mba_t *' + mba_t_deserialize(bytes) -> mba_t + + @param bytes: uchar const * + +Help on class mbl_graph_t in module ida_hexrays: + +class mbl_graph_t(simple_graph_t) + | Proxy of C++ mbl_graph_t class. + | + | Method resolution order: + | mbl_graph_t + | simple_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | get_chain_stamp(self, *args) -> 'int' + | get_chain_stamp(self) -> int + | + | get_du(self, *args) -> 'graph_chains_t *' + | get_du(self, gctype) -> graph_chains_t + | Get def-use chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | get_mblock(self, *args) -> 'mblock_t *' + | get_mblock(self, n) -> mblock_t + | + | @param n: int + | + | get_ud(self, *args) -> 'graph_chains_t *' + | get_ud(self, gctype) -> graph_chains_t + | Get use-def chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | is_du_chain_dirty(self, *args) -> 'bool' + | is_du_chain_dirty(self, gctype) -> bool + | Is the def-use chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | is_redefined_globally(self, *args) -> 'bool' + | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST redefined in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) + | + | is_ud_chain_dirty(self, *args) -> 'bool' + | is_ud_chain_dirty(self, gctype) -> bool + | Is the use-def chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | is_used_globally(self, *args) -> 'bool' + | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST used in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from simple_graph_t: + | + | colored_gdl_edges + | colored_gdl_edges + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class mblock_t in module ida_hexrays: + +class mblock_t(builtins.object) + | Proxy of C++ mblock_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mblock_t(...) + | delete_mblock_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & + | + | append_def_list(self, *args) -> 'void' + | append_def_list(self, list, op, maymust) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | + | append_use_list(self, *args) -> 'void' + | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. + | + | build_def_list(self, *args) -> 'mlist_t' + | build_def_list(self, ins, maymust) -> mlist_t + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list + | + | build_lists(self, *args) -> 'int' + | build_lists(self, kill_deads) -> int + | Build def-use lists and eliminate deads. + | + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. + | + | build_use_list(self, *args) -> 'mlist_t' + | build_use_list(self, ins, maymust) -> mlist_t + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list + | + | dump(self, *args) -> 'void' + | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info + | + | dump_block(self, *args) -> 'void' + | dump_block(self, title) + | + | @param title: char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | find_access(self, *args) -> 'minsn_t *' + | find_access(self, op, parent, mend, fdflags) -> minsn_t + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param parent: (C++: minsn_t **) ptr to ptr to a top level instruction. denotes the beginning of + | the search range. + | @param mend: (C++: const minsn_t *) end instruction of the range (must be a top level insn) mend is + | excluded from the range. it can be specified as nullptr. parent and + | mend must belong to the same block. + | @param fdflags: (C++: int) combination of bits for mblock_t::find_access bits + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. + | + | find_def(self, *args) -> 'minsn_t *' + | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int + | + | find_first_use(self, *args) -> 'minsn_t *' + | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t + | + | find_redefinition(self, *args) -> 'minsn_t *' + | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t + | + | find_use(self, *args) -> 'minsn_t *' + | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int + | + | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits subinstructions too. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int + | Visit all operands. This function visit subinstruction operands too. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() + | + | for_all_uses(self, *args) -> 'int' + | for_all_uses(self, list, i1, i2, mmv) -> int + | Visit all operands that use LIST. + | + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() + | + | get_reginsn_qty(self, *args) -> 'size_t' + | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. + | + | get_valranges(self, *args) -> 'bool' + | get_valranges(self, res, vivl, vrflags) -> bool + | Find possible values for an instruction. + | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits + | get_valranges(self, res, vivl, m, vrflags) -> bool + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int + | + | insert_into_block(self, *args) -> 'minsn_t *' + | insert_into_block(self, nm, om) -> minsn_t + | Insert instruction into the doubly linked list + | + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM + | + | is_branch(self, *args) -> 'bool' + | is_branch(self) -> bool + | + | is_call_block(self, *args) -> 'bool' + | is_call_block(self) -> bool + | + | is_nway(self, *args) -> 'bool' + | is_nway(self) -> bool + | + | is_redefined(self, *args) -> 'bool' + | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list redefined by the specified instructions? + | + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? + | + | is_rhs_redefined(self, *args) -> 'bool' + | is_rhs_redefined(self, ins, i1, i2) -> bool + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | + | is_simple_goto_block(self, *args) -> 'bool' + | is_simple_goto_block(self) -> bool + | + | is_simple_jcnd_block(self, *args) -> 'bool' + | is_simple_jcnd_block(self) -> bool + | + | is_unknown_call(self, *args) -> 'bool' + | is_unknown_call(self) -> bool + | + | is_used(self, *args) -> 'bool' + | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list used by the specified instruction range? + | + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? + | + | lists_dirty(self, *args) -> 'bool' + | lists_dirty(self) -> bool + | + | lists_ready(self, *args) -> 'bool' + | lists_ready(self) -> bool + | + | make_lists_ready(self, *args) -> 'int' + | make_lists_ready(self) -> int + | + | make_nop(self, *args) -> 'void' + | make_nop(self, m) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) + | + | mark_lists_dirty(self, *args) -> 'void' + | mark_lists_dirty(self) + | + | needs_propagation(self, *args) -> 'bool' + | needs_propagation(self) -> bool + | + | npred(self, *args) -> 'int' + | npred(self) -> int + | Get number of block predecessors. + | + | nsucc(self, *args) -> 'int' + | nsucc(self) -> int + | Get number of block successors. + | + | optimize_block(self, *args) -> 'int' + | optimize_block(self) -> int + | Optimize a basic block. Usually there is no need to call this function + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block + | + | optimize_insn(self, *args) -> 'int' + | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | Optimize one instruction in the context of the block. + | + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() + | + | optimize_useless_jump(self, *args) -> 'int' + | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block + | + | pred(self, *args) -> 'int' + | pred(self, n) -> int + | + | @param n: int + | + | preds(self) + | Iterates the list of predecessor blocks + | + | remove_from_block(self, *args) -> 'minsn_t *' + | remove_from_block(self, m) -> minsn_t + | Remove instruction from the doubly linked list + | + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction + | + | request_demote64(self, *args) -> 'void' + | request_demote64(self) + | + | request_propagation(self, *args) -> 'void' + | request_propagation(self) + | + | succ(self, *args) -> 'int' + | succ(self, n) -> int + | + | @param n: int + | + | succs(self) + | Iterates the list of successor blocks + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dead_at_start + | dead_at_start + | + | dnu + | dnu + | + | end + | end + | + | flags + | flags + | + | head + | head + | + | maxbsp + | maxbsp + | + | maybdef + | maybdef + | + | maybuse + | maybuse + | + | mba + | mba + | + | minbargref + | minbargref + | + | minbstkref + | minbstkref + | + | mustbdef + | mustbdef + | + | mustbuse + | mustbuse + | + | nextb + | nextb + | + | predset + | predset + | + | prevb + | prevb + | + | serial + | serial + | + | start + | start + | + | succset + | succset + | + | tail + | tail + | + | thisown + | The membership flag + | + | type + | type + +Help on class mcallarg_t in module ida_hexrays: + +class mcallarg_t(mop_t) + | Proxy of C++ mcallarg_t class. + | + | Method resolution order: + | mcallarg_t + | mop_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mcallarg_t + | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mcallarg_t(...) + | delete_mcallarg_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | copy_mop(self, *args) -> 'void' + | copy_mop(self, op) + | + | @param op: mop_t const & + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | make_int(self, *args) -> 'void' + | make_int(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int + | + | make_uint(self, *args) -> 'void' + | make_uint(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int + | + | set_regarg(self, *args) -> 'void' + | set_regarg(self, mr, sz, tif) + | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & + | + | set_regarg(self, mr, tif) + | + | @param mr: mreg_t + | @param tif: tinfo_t const & + | + | set_regarg(self, mr, dt, sign=type_unsigned) + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | argloc + | argloc + | + | ea + | ea + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Methods inherited from mop_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_t(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_a(self, *args) -> 'mop_addr_t *' + | _get_a(self) -> mop_addr_t + | + | _get_b(self, *args) -> 'int' + | _get_b(self) -> int + | + | _get_c(self, *args) -> 'mcases_t *' + | _get_c(self) -> mcases_t + | + | _get_cstr(self, *args) -> 'char const *' + | _get_cstr(self) -> char const * + | + | _get_d(self, *args) -> 'minsn_t *' + | _get_d(self) -> minsn_t + | + | _get_f(self, *args) -> 'mcallinfo_t *' + | _get_f(self) -> mcallinfo_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_g(self, *args) -> 'ea_t' + | _get_g(self) -> ea_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_l(self, *args) -> 'lvar_ref_t *' + | _get_l(self) -> lvar_ref_t + | + | _get_nnn(self, *args) -> 'mnumber_t *' + | _get_nnn(self) -> mnumber_t + | + | _get_pair(self, *args) -> 'mop_pair_t *' + | _get_pair(self) -> mop_pair_t + | + | _get_r(self, *args) -> 'mreg_t' + | _get_r(self) -> mreg_t + | + | _get_s(self, *args) -> 'stkvar_ref_t *' + | _get_s(self) -> stkvar_ref_t + | + | _get_scif(self, *args) -> 'scif_t *' + | _get_scif(self) -> scif_t + | + | _get_t(self, *args) -> 'mopt_t' + | _get_t(self) -> mopt_t + | + | _make_blkref(self, *args) -> 'void' + | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int + | + | _make_callinfo(self, *args) -> 'void' + | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * + | + | _make_cases(self, *args) -> 'void' + | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * + | + | _make_gvar(self, *args) -> 'void' + | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t + | + | _make_insn(self, *args) -> 'void' + | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * + | + | _make_lvar(self, *args) -> 'void' + | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t + | + | _make_pair(self, *args) -> 'void' + | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * + | + | _make_reg(self, *args) -> 'void' + | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | + | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int + | + | _make_stkvar(self, *args) -> 'void' + | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t + | + | _make_strlit(self, *args) -> 'void' + | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * + | + | _set_b(self, *args) -> 'void' + | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_c(self, *args) -> 'void' + | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * + | + | _set_cstr(self, *args) -> 'void' + | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_d(self, *args) -> 'void' + | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * + | + | _set_f(self, *args) -> 'void' + | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_g(self, *args) -> 'void' + | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_l(self, *args) -> 'void' + | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * + | + | _set_nnn(self, *args) -> 'void' + | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * + | + | _set_pair(self, *args) -> 'void' + | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * + | + | _set_r(self, *args) -> 'void' + | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t + | + | _set_s(self, *args) -> 'void' + | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * + | + | _set_scif(self, *args) -> 'void' + | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * + | + | _set_t(self, *args) -> 'void' + | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t + | + | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) + | + | apply_xds(self, *args) -> 'void' + | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | apply_xdu(self, *args) -> 'void' + | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | assign(self, *args) -> 'mop_t &' + | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | change_size(self, *args) -> 'bool' + | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success + | + | create_from_insn(self, *args) -> 'void' + | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. + | + | create_from_ivlset(self, *args) -> 'bool' + | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_mlist(self, *args) -> 'bool' + | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_scattered_vdloc(self, *args) -> 'void' + | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success + | + | create_from_vdloc(self, *args) -> 'void' + | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success + | + | double_size(self, *args) -> 'bool' + | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | erase(self, *args) -> 'void' + | erase(self) + | + | erase_but_keep_size(self, *args) -> 'void' + | erase_but_keep_size(self) + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? + | + | for_all_scattered_submops(self, *args) -> 'int' + | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object + | + | get_insn(self, *args) -> 'minsn_t *' + | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t + | + | get_stkoff(self, *args) -> 'bool' + | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? + | + | is01(self, *args) -> 'bool' + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. + | + | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool + | Is a list of arguments? + | + | is_bit_reg(self, *args) -> 'bool' + | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool + | + | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool + | Is a condition code? + | + | is_ccflags(self, *args) -> 'bool' + | is_ccflags(self) -> bool + | + | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n + | + | is_equal_to(self, *args) -> 'bool' + | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool + | + | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) + | + | is_glbaddr(self, *args) -> 'bool' + | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t + | + | is_impptr_done(self, *args) -> 'bool' + | is_impptr_done(self) -> bool + | + | is_insn(self, *args) -> 'bool' + | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t + | + | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool + | + | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) + | + | is_negative_constant(self, *args) -> 'bool' + | is_negative_constant(self) -> bool + | + | is_one(self, *args) -> 'bool' + | is_one(self) -> bool + | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | + | is_positive_constant(self, *args) -> 'bool' + | is_positive_constant(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | + | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is a scattered operand? + | + | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits + | + | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool + | Is address of a stack variable? + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | + | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & + | + | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) + | + | make_first_half(self, *args) -> 'bool' + | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success + | + | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) + | + | make_helper(self, *args) -> 'void' + | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * + | + | make_high_half(self, *args) -> 'bool' + | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_insn(self, *args) -> 'void' + | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) + | + | make_low_half(self, *args) -> 'bool' + | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction + | + | make_reg(self, *args) -> 'void' + | make_reg(self, reg) + | + | @param reg: mreg_t + | + | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int + | + | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg + | + | make_second_half(self, *args) -> 'bool' + | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? + | + | preserve_side_effects(self, *args) -> 'bool' + | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them + | + | probably_floating(self, *args) -> 'bool' + | probably_floating(self) -> bool + | + | replace_by(self, o) + | + | set_impptr_done(self, *args) -> 'void' + | set_impptr_done(self) + | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | + | set_udt(self, *args) -> 'void' + | set_udt(self) + | + | set_undef_val(self, *args) -> 'void' + | set_undef_val(self) + | + | shift_mop(self, *args) -> 'bool' + | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success + | + | signed_value(self, *args) -> 'int64' + | signed_value(self) -> int64 + | + | swap(self, *args) -> 'void' + | swap(self, rop) + | + | @param rop: mop_t & + | + | unsigned_value(self, *args) -> 'uint64' + | unsigned_value(self) -> uint64 + | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | + | value(self, *args) -> 'uint64' + | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) + | + | zero(self, *args) -> 'void' + | zero(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from mop_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a + | + | b + | + | c + | + | cstr + | + | d + | + | f + | + | fpc + | + | g + | + | helper + | + | l + | + | meminfo + | + | nnn + | + | obj_id + | _obj_id(self) -> PyObject * + | + | oprops + | oprops + | + | pair + | + | r + | + | s + | + | scif + | + | size + | size + | + | t + | _get_t(self) -> mopt_t + | + | valnum + | valnum + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from mop_t: + | + | __hash__ = None + +Help on class mcallargs_t in module ida_hexrays: + +class mcallargs_t(builtins.object) + | Proxy of C++ qvector< mcallarg_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & + | + | __getitem__(self, *args) -> 'mcallarg_t const &' + | __getitem__(self, i) -> mcallarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> mcallargs_t + | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mcallarg_t const & + | + | __swig_destroy__ = delete_mcallargs_t(...) + | delete_mcallargs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mcallarg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: mcallarg_t const & + | + | at(self, *args) -> 'mcallarg_t const &' + | at(self, _idx) -> mcallarg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< mcallarg_t >::const_iterator' + | begin(self) -> mcallarg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< mcallarg_t >::const_iterator' + | end(self) -> mcallarg_t + | + | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' + | erase(self, it) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | + | erase(self, first, last) -> mcallarg_t + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator + | + | extract(self, *args) -> 'mcallarg_t *' + | extract(self) -> mcallarg_t + | + | find(self, *args) -> 'qvector< mcallarg_t >::const_iterator' + | find(self, x) -> mcallarg_t + | + | @param x: mcallarg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=mcallarg_t()) + | + | @param x: mcallarg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: mcallarg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: mcallarg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' + | insert(self, it, x) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'mcallarg_t &' + | push_back(self, x) + | + | @param x: mcallarg_t const & + | + | push_back(self) -> mcallarg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mcallarg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< mcallarg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mcallinfo_t in module ida_hexrays: + +class mcallinfo_t(builtins.object) + | Proxy of C++ mcallinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | + | @param _callee: ea_t + | @param _sargs: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mcallinfo_t(...) + | delete_mcallinfo_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, size=-1, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | size: int + | shins_flags: int + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | get_type(self, *args) -> 'tinfo_t' + | get_type(self) -> tinfo_t + | + | is_vararg(self, *args) -> 'bool' + | is_vararg(self) -> bool + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, f) -> int + | + | @param f: mcallinfo_t const & + | + | set_type(self, *args) -> 'bool' + | set_type(self, type) -> bool + | + | @param type: tinfo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | args + | args + | + | call_spd + | call_spd + | + | callee + | callee + | + | cc + | cc + | + | dead_regs + | dead_regs + | + | flags + | flags + | + | fti_attrs + | fti_attrs + | + | pass_regs + | pass_regs + | + | retregs + | retregs + | + | return_argloc + | return_argloc + | + | return_regs + | return_regs + | + | return_type + | return_type + | + | role + | role + | + | solid_args + | solid_args + | + | spoiled + | spoiled + | + | stkargs_top + | stkargs_top + | + | thisown + | The membership flag + | + | visible_memory + | visible_memory + +Help on class mcases_t in module ida_hexrays: + +class mcases_t(builtins.object) + | Proxy of C++ mcases_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __init__(self, *args) + | __init__(self) -> mcases_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mcases_t(...) + | delete_mcases_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: mcases_t const & + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | resize(self, *args) -> 'void' + | resize(self, s) + | + | @param s: int + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: mcases_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | targets + | targets + | + | thisown + | The membership flag + | + | values + | values + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function mcode_modifies_d in module ida_hexrays: + +mcode_modifies_d(*args) -> 'bool' + mcode_modifies_d(mcode) -> bool + + @param mcode: enum mcode_t + +Help on class microcode_filter_t in module ida_hexrays: + +class microcode_filter_t(builtins.object) + | Proxy of C++ microcode_filter_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> microcode_filter_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_microcode_filter_t(...) + | delete_microcode_filter_t(self) + | + | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | match(self, *args) -> 'bool' + | match(self, cdg) -> bool + | check if the filter object is to be applied + | + | @param cdg: (C++: codegen_t &) + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class minsn_t in module ida_hexrays: + +class minsn_t(builtins.object) + | Proxy of C++ minsn_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> minsn_t + | + | @param _ea: ea_t + | + | __init__(self, m) -> minsn_t + | + | @param m: minsn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, ri) -> bool + | + | @param ri: minsn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_minsn_t(...) + | delete_minsn_t(self) + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_ownership_transferrable(self, v) + | + | _make_nop(self, *args) -> 'void' + | _make_nop(self) + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _minsn_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _minsn_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | _register(self, *args) -> 'void' + | _register(self) + | + | clr_assert(self, *args) -> 'void' + | clr_assert(self) + | + | clr_combinable(self, *args) -> 'void' + | clr_combinable(self) + | + | clr_combined(self, *args) -> 'void' + | clr_combined(self) + | + | clr_fpinsn(self, *args) -> 'void' + | clr_fpinsn(self) + | + | clr_ignlowsrc(self, *args) -> 'void' + | clr_ignlowsrc(self) + | + | clr_multimov(self, *args) -> 'void' + | clr_multimov(self) + | + | clr_noret_icall(self, *args) -> 'void' + | clr_noret_icall(self) + | + | clr_propagatable(self, *args) -> 'void' + | clr_propagatable(self) + | + | clr_tailcall(self, *args) -> 'void' + | clr_tailcall(self) + | + | contains_call(self, *args) -> 'bool' + | contains_call(self, with_helpers=False) -> bool + | Does the instruction contain a call? + | + | @param with_helpers: (C++: bool) + | + | contains_opcode(self, *args) -> 'bool' + | contains_opcode(self, mcode) -> bool + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | + | @param mcode: (C++: mcode_t) opcode to search for. + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, bytes, format_version) -> bool + | Deserialize an instruction + | + | @param bytes: (C++: const uchar *) pointer to serialized data + | @param format_version: (C++: int) serialization format version. this value is returned by + | minsn_t::serialize() + | @return: success + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. + | + | equal_insns(self, *args) -> 'bool' + | equal_insns(self, m, eqflags) -> bool + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | find_call(self, *args) -> 'minsn_t *' + | find_call(self, with_helpers=False) -> minsn_t + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | + | @param with_helpers: (C++: bool) consider helper calls as well? + | + | find_ins_op(self, *args) -> 'minsn_t *' + | find_ins_op(self, op=m_nop) -> minsn_t + | + | @param op: enum mcode_t + | + | find_num_op(self, *args) -> 'mop_t *' + | find_num_op(self) -> mop_t + | + | find_opcode(self, *args) -> 'minsn_t *' + | find_opcode(self, mcode) -> minsn_t + | + | @param mcode: enum mcode_t + | + | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | get_role(self, *args) -> 'funcrole_t' + | get_role(self) -> funcrole_t + | Get the function role of a call. + | + | get_split_size(self, *args) -> 'int' + | get_split_size(self) -> int + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Does the instruction have a side effect? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. + | + | is_after(self, *args) -> 'bool' + | is_after(self, m) -> bool + | Is the instruction after the specified one? + | + | @param m: (C++: const minsn_t *) the instruction to compare against in the list + | + | is_alloca(self, *args) -> 'bool' + | is_alloca(self) -> bool + | + | is_assert(self, *args) -> 'bool' + | is_assert(self) -> bool + | + | is_between(self, *args) -> 'bool' + | is_between(self, m1, m2) -> bool + | Is the instruction in the specified range of instructions? + | + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. + | + | is_bswap(self, *args) -> 'bool' + | is_bswap(self) -> bool + | + | is_cleaning_pop(self, *args) -> 'bool' + | is_cleaning_pop(self) -> bool + | + | is_combinable(self, *args) -> 'bool' + | is_combinable(self) -> bool + | + | is_combined(self, *args) -> 'bool' + | is_combined(self) -> bool + | + | is_extstx(self, *args) -> 'bool' + | is_extstx(self) -> bool + | + | is_farcall(self, *args) -> 'bool' + | is_farcall(self) -> bool + | + | is_fpinsn(self, *args) -> 'bool' + | is_fpinsn(self) -> bool + | + | is_helper(self, *args) -> 'bool' + | is_helper(self, name) -> bool + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * + | + | is_ignlowsrc(self, *args) -> 'bool' + | is_ignlowsrc(self) -> bool + | + | is_inverted_jx(self, *args) -> 'bool' + | is_inverted_jx(self) -> bool + | + | is_like_move(self, *args) -> 'bool' + | is_like_move(self) -> bool + | + | is_mbarrier(self, *args) -> 'bool' + | is_mbarrier(self) -> bool + | + | is_memcpy(self, *args) -> 'bool' + | is_memcpy(self) -> bool + | + | is_memset(self, *args) -> 'bool' + | is_memset(self) -> bool + | + | is_mov(self, *args) -> 'bool' + | is_mov(self) -> bool + | + | is_multimov(self, *args) -> 'bool' + | is_multimov(self) -> bool + | + | is_noret_call(self, *args) -> 'bool' + | is_noret_call(self, flags=0) -> bool + | Is a non-returing call? + | + | @param flags: (C++: int) combination of NORET_... bits + | + | is_optional(self, *args) -> 'bool' + | is_optional(self) -> bool + | + | is_persistent(self, *args) -> 'bool' + | is_persistent(self) -> bool + | + | is_propagatable(self, *args) -> 'bool' + | is_propagatable(self) -> bool + | + | is_readflags(self, *args) -> 'bool' + | is_readflags(self) -> bool + | + | is_tailcall(self, *args) -> 'bool' + | is_tailcall(self) -> bool + | + | is_unknown_call(self, *args) -> 'bool' + | is_unknown_call(self) -> bool + | Is an unknown call? Unknown calls are calls without the argument list + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block + | + | is_wild_match(self, *args) -> 'bool' + | is_wild_match(self) -> bool + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, ri) -> int + | + | @param ri: minsn_t const & + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the instruction to use aliased memory? + | + | modifies_d(self, *args) -> 'bool' + | modifies_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. + | + | modifies_pair_mop(self, *args) -> 'bool' + | modifies_pair_mop(self) -> bool + | + | optimize_solo(self, *args) -> 'int' + | optimize_solo(self, optflags=0) -> int + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() + | + | optimize_subtree(self, *args) -> 'int' + | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) + | + | replace_by(self, o) + | + | serialize(self, *args) -> 'int' + | serialize(self, b) -> int + | Serialize an instruction + | + | @param b: (C++: bytevec_t *) the output buffer + | @return: the serialization format that was used to store info + | + | set_assert(self, *args) -> 'void' + | set_assert(self) + | + | set_cleaning_pop(self, *args) -> 'void' + | set_cleaning_pop(self) + | + | set_combinable(self, *args) -> 'void' + | set_combinable(self) + | + | set_extstx(self, *args) -> 'void' + | set_extstx(self) + | + | set_farcall(self, *args) -> 'void' + | set_farcall(self) + | + | set_fpinsn(self, *args) -> 'void' + | set_fpinsn(self) + | + | set_ignlowsrc(self, *args) -> 'void' + | set_ignlowsrc(self) + | + | set_inverted_jx(self, *args) -> 'void' + | set_inverted_jx(self) + | + | set_mbarrier(self, *args) -> 'void' + | set_mbarrier(self) + | + | set_multimov(self, *args) -> 'void' + | set_multimov(self) + | + | set_noret_icall(self, *args) -> 'void' + | set_noret_icall(self) + | + | set_optional(self, *args) -> 'void' + | set_optional(self) + | + | set_persistent(self, *args) -> 'void' + | set_persistent(self) + | + | set_split_size(self, *args) -> 'void' + | set_split_size(self, s) + | + | @param s: int + | + | set_tailcall(self, *args) -> 'void' + | set_tailcall(self) + | + | set_unmerged(self, *args) -> 'void' + | set_unmerged(self) + | + | set_wild_match(self, *args) -> 'void' + | set_wild_match(self) + | + | setaddr(self, *args) -> 'void' + | setaddr(self, new_ea) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) + | + | swap(self, *args) -> 'void' + | swap(self, m) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) + | + | was_noret_icall(self, *args) -> 'bool' + | was_noret_icall(self) -> bool + | + | was_split(self, *args) -> 'bool' + | was_split(self) -> bool + | + | was_unmerged(self, *args) -> 'bool' + | was_unmerged(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | d + | d + | + | ea + | ea + | + | iprops + | iprops + | + | l + | l + | + | meminfo + | + | next + | next + | + | obj_id + | _obj_id(self) -> PyObject * + | + | opcode + | opcode + | + | prev + | prev + | + | r + | r + | + | thisown + | The membership flag + +Help on class minsn_visitor_t in module ida_hexrays: + +class minsn_visitor_t(op_parent_info_t) + | Proxy of C++ minsn_visitor_t class. + | + | Method resolution order: + | minsn_visitor_t + | op_parent_info_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_minsn_visitor_t(...) + | delete_minsn_visitor_t(self) + | + | visit_minsn(self, *args) -> 'int' + | visit_minsn(self) -> int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from op_parent_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blk + | blk + | + | curins + | curins + | + | mba + | mba + | + | topins + | topins + +Help on class mlist_mop_visitor_t in module ida_hexrays: + +class mlist_mop_visitor_t(builtins.object) + | Proxy of C++ mlist_mop_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> mlist_mop_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mlist_mop_visitor_t(...) + | delete_mlist_mop_visitor_t(self) + | + | visit_mop(self, *args) -> 'int' + | visit_mop(self, op) -> int + | + | @param op: mop_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | changed + | changed + | + | curins + | curins + | + | list + | list + | + | thisown + | The membership flag + | + | topins + | topins + +Help on class mlist_t in module ida_hexrays: + +class mlist_t(builtins.object) + | Proxy of C++ mlist_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __init__(self, *args) + | __init__(self) -> mlist_t + | __init__(self, ivl) -> mlist_t + | + | @param ivl: ivl_t const & + | + | __init__(self, r, size) -> mlist_t + | + | @param r: mreg_t + | @param size: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mlist_t(...) + | delete_mlist_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | add(self, *args) -> 'bool' + | add(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | add(self, r) -> bool + | + | @param r: rlist_t const & + | + | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | add(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | addmem(self, *args) -> 'bool' + | addmem(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: mlist_t const & + | + | count(self, *args) -> 'asize_t' + | count(self) -> asize_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | has(self, *args) -> 'bool' + | has(self, r) -> bool + | + | @param r: mreg_t + | + | has_all(self, *args) -> 'bool' + | has_all(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | has_any(self, *args) -> 'bool' + | has_any(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | has_common(self, *args) -> 'bool' + | has_common(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | has_memory(self, *args) -> 'bool' + | has_memory(self) -> bool + | + | includes(self, *args) -> 'bool' + | includes(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | sub(self, *args) -> 'bool' + | sub(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | sub(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: mlist_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | mem + | mem + | + | reg + | reg + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mnumber_t in module ida_hexrays: + +class mnumber_t(operand_locator_t) + | Proxy of C++ mnumber_t class. + | + | Method resolution order: + | mnumber_t + | operand_locator_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __init__(self, *args) + | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mnumber_t(...) + | delete_mnumber_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: mnumber_t const & + | + | update_value(self, *args) -> 'void' + | update_value(self, val64) + | + | @param val64: uint64 + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | org_value + | org_value + | + | thisown + | The membership flag + | + | value + | value + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from operand_locator_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | opnum + | opnum + +Help on function modify_user_lvar_info in module ida_hexrays: + +modify_user_lvar_info(*args) -> 'bool' + modify_user_lvar_info(func_ea, mli_flags, info) -> bool + Modify saved local variable settings of one variable. + + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs + @return: true if modified, false if invalid MLI_FLAGS passed + +Help on function modify_user_lvars in module ida_hexrays: + +modify_user_lvars(*args) -> 'bool' + modify_user_lvars(entry_ea, mlv) -> bool + Modify saved local variable settings. + + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier + @return: true if modified variables + +Help on class mop_addr_t in module ida_hexrays: + +class mop_addr_t(mop_t) + | Proxy of C++ mop_addr_t class. + | + | Method resolution order: + | mop_addr_t + | mop_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mop_addr_t + | __init__(self, ra) -> mop_addr_t + | + | @param ra: mop_addr_t const & + | + | __init__(self, ra, isz, osz) -> mop_addr_t + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_addr_t(...) + | delete_mop_addr_t(self) + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, ra) -> int + | + | @param ra: mop_addr_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | insize + | insize + | + | outsize + | outsize + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from mop_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_t(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_a(self, *args) -> 'mop_addr_t *' + | _get_a(self) -> mop_addr_t + | + | _get_b(self, *args) -> 'int' + | _get_b(self) -> int + | + | _get_c(self, *args) -> 'mcases_t *' + | _get_c(self) -> mcases_t + | + | _get_cstr(self, *args) -> 'char const *' + | _get_cstr(self) -> char const * + | + | _get_d(self, *args) -> 'minsn_t *' + | _get_d(self) -> minsn_t + | + | _get_f(self, *args) -> 'mcallinfo_t *' + | _get_f(self) -> mcallinfo_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_g(self, *args) -> 'ea_t' + | _get_g(self) -> ea_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_l(self, *args) -> 'lvar_ref_t *' + | _get_l(self) -> lvar_ref_t + | + | _get_nnn(self, *args) -> 'mnumber_t *' + | _get_nnn(self) -> mnumber_t + | + | _get_pair(self, *args) -> 'mop_pair_t *' + | _get_pair(self) -> mop_pair_t + | + | _get_r(self, *args) -> 'mreg_t' + | _get_r(self) -> mreg_t + | + | _get_s(self, *args) -> 'stkvar_ref_t *' + | _get_s(self) -> stkvar_ref_t + | + | _get_scif(self, *args) -> 'scif_t *' + | _get_scif(self) -> scif_t + | + | _get_t(self, *args) -> 'mopt_t' + | _get_t(self) -> mopt_t + | + | _make_blkref(self, *args) -> 'void' + | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int + | + | _make_callinfo(self, *args) -> 'void' + | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * + | + | _make_cases(self, *args) -> 'void' + | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * + | + | _make_gvar(self, *args) -> 'void' + | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t + | + | _make_insn(self, *args) -> 'void' + | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * + | + | _make_lvar(self, *args) -> 'void' + | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t + | + | _make_pair(self, *args) -> 'void' + | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * + | + | _make_reg(self, *args) -> 'void' + | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | + | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int + | + | _make_stkvar(self, *args) -> 'void' + | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t + | + | _make_strlit(self, *args) -> 'void' + | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * + | + | _set_b(self, *args) -> 'void' + | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_c(self, *args) -> 'void' + | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * + | + | _set_cstr(self, *args) -> 'void' + | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_d(self, *args) -> 'void' + | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * + | + | _set_f(self, *args) -> 'void' + | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_g(self, *args) -> 'void' + | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_l(self, *args) -> 'void' + | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * + | + | _set_nnn(self, *args) -> 'void' + | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * + | + | _set_pair(self, *args) -> 'void' + | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * + | + | _set_r(self, *args) -> 'void' + | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t + | + | _set_s(self, *args) -> 'void' + | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * + | + | _set_scif(self, *args) -> 'void' + | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * + | + | _set_t(self, *args) -> 'void' + | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t + | + | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) + | + | apply_xds(self, *args) -> 'void' + | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | apply_xdu(self, *args) -> 'void' + | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | assign(self, *args) -> 'mop_t &' + | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | change_size(self, *args) -> 'bool' + | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success + | + | create_from_insn(self, *args) -> 'void' + | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. + | + | create_from_ivlset(self, *args) -> 'bool' + | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_mlist(self, *args) -> 'bool' + | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_scattered_vdloc(self, *args) -> 'void' + | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success + | + | create_from_vdloc(self, *args) -> 'void' + | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success + | + | double_size(self, *args) -> 'bool' + | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | erase(self, *args) -> 'void' + | erase(self) + | + | erase_but_keep_size(self, *args) -> 'void' + | erase_but_keep_size(self) + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? + | + | for_all_scattered_submops(self, *args) -> 'int' + | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object + | + | get_insn(self, *args) -> 'minsn_t *' + | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t + | + | get_stkoff(self, *args) -> 'bool' + | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? + | + | is01(self, *args) -> 'bool' + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. + | + | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool + | Is a list of arguments? + | + | is_bit_reg(self, *args) -> 'bool' + | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool + | + | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool + | Is a condition code? + | + | is_ccflags(self, *args) -> 'bool' + | is_ccflags(self) -> bool + | + | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n + | + | is_equal_to(self, *args) -> 'bool' + | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool + | + | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) + | + | is_glbaddr(self, *args) -> 'bool' + | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t + | + | is_impptr_done(self, *args) -> 'bool' + | is_impptr_done(self) -> bool + | + | is_insn(self, *args) -> 'bool' + | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t + | + | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool + | + | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) + | + | is_negative_constant(self, *args) -> 'bool' + | is_negative_constant(self) -> bool + | + | is_one(self, *args) -> 'bool' + | is_one(self) -> bool + | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | + | is_positive_constant(self, *args) -> 'bool' + | is_positive_constant(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | + | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is a scattered operand? + | + | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits + | + | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool + | Is address of a stack variable? + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | + | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero + | + | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) + | + | make_first_half(self, *args) -> 'bool' + | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success + | + | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) + | + | make_helper(self, *args) -> 'void' + | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * + | + | make_high_half(self, *args) -> 'bool' + | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_insn(self, *args) -> 'void' + | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) + | + | make_low_half(self, *args) -> 'bool' + | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction + | + | make_reg(self, *args) -> 'void' + | make_reg(self, reg) + | + | @param reg: mreg_t + | + | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int + | + | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg + | + | make_second_half(self, *args) -> 'bool' + | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? + | + | preserve_side_effects(self, *args) -> 'bool' + | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them + | + | probably_floating(self, *args) -> 'bool' + | probably_floating(self) -> bool + | + | replace_by(self, o) + | + | set_impptr_done(self, *args) -> 'void' + | set_impptr_done(self) + | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | + | set_udt(self, *args) -> 'void' + | set_udt(self) + | + | set_undef_val(self, *args) -> 'void' + | set_undef_val(self) + | + | shift_mop(self, *args) -> 'bool' + | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success + | + | signed_value(self, *args) -> 'int64' + | signed_value(self) -> int64 + | + | swap(self, *args) -> 'void' + | swap(self, rop) + | + | @param rop: mop_t & + | + | unsigned_value(self, *args) -> 'uint64' + | unsigned_value(self) -> uint64 + | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | + | value(self, *args) -> 'uint64' + | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) + | + | zero(self, *args) -> 'void' + | zero(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from mop_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a + | + | b + | + | c + | + | cstr + | + | d + | + | f + | + | fpc + | + | g + | + | helper + | + | l + | + | meminfo + | + | nnn + | + | obj_id + | _obj_id(self) -> PyObject * + | + | oprops + | oprops + | + | pair + | + | r + | + | s + | + | scif + | + | size + | size + | + | t + | _get_t(self) -> mopt_t + | + | valnum + | valnum + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from mop_t: + | + | __hash__ = None + +Help on class mop_pair_t in module ida_hexrays: + +class mop_pair_t(builtins.object) + | Proxy of C++ mop_pair_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mop_pair_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_pair_t(...) + | delete_mop_pair_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hop + | hop + | + | lop + | lop + | + | thisown + | The membership flag + +Help on class mop_t in module ida_hexrays: + +class mop_t(builtins.object) + | Proxy of C++ mop_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __init__(self, *args) + | __init__(self) -> mop_t + | __init__(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | __init__(self, _r, _s) -> mop_t + | + | @param _r: mreg_t + | @param _s: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_t(...) + | delete_mop_t(self) + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_t(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_a(self, *args) -> 'mop_addr_t *' + | _get_a(self) -> mop_addr_t + | + | _get_b(self, *args) -> 'int' + | _get_b(self) -> int + | + | _get_c(self, *args) -> 'mcases_t *' + | _get_c(self) -> mcases_t + | + | _get_cstr(self, *args) -> 'char const *' + | _get_cstr(self) -> char const * + | + | _get_d(self, *args) -> 'minsn_t *' + | _get_d(self) -> minsn_t + | + | _get_f(self, *args) -> 'mcallinfo_t *' + | _get_f(self) -> mcallinfo_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_g(self, *args) -> 'ea_t' + | _get_g(self) -> ea_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_l(self, *args) -> 'lvar_ref_t *' + | _get_l(self) -> lvar_ref_t + | + | _get_nnn(self, *args) -> 'mnumber_t *' + | _get_nnn(self) -> mnumber_t + | + | _get_pair(self, *args) -> 'mop_pair_t *' + | _get_pair(self) -> mop_pair_t + | + | _get_r(self, *args) -> 'mreg_t' + | _get_r(self) -> mreg_t + | + | _get_s(self, *args) -> 'stkvar_ref_t *' + | _get_s(self) -> stkvar_ref_t + | + | _get_scif(self, *args) -> 'scif_t *' + | _get_scif(self) -> scif_t + | + | _get_t(self, *args) -> 'mopt_t' + | _get_t(self) -> mopt_t + | + | _make_blkref(self, *args) -> 'void' + | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int + | + | _make_callinfo(self, *args) -> 'void' + | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * + | + | _make_cases(self, *args) -> 'void' + | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * + | + | _make_gvar(self, *args) -> 'void' + | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t + | + | _make_insn(self, *args) -> 'void' + | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * + | + | _make_lvar(self, *args) -> 'void' + | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t + | + | _make_pair(self, *args) -> 'void' + | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * + | + | _make_reg(self, *args) -> 'void' + | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | + | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int + | + | _make_stkvar(self, *args) -> 'void' + | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t + | + | _make_strlit(self, *args) -> 'void' + | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * + | + | _set_b(self, *args) -> 'void' + | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_c(self, *args) -> 'void' + | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * + | + | _set_cstr(self, *args) -> 'void' + | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_d(self, *args) -> 'void' + | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * + | + | _set_f(self, *args) -> 'void' + | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_g(self, *args) -> 'void' + | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_l(self, *args) -> 'void' + | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * + | + | _set_nnn(self, *args) -> 'void' + | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * + | + | _set_pair(self, *args) -> 'void' + | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * + | + | _set_r(self, *args) -> 'void' + | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t + | + | _set_s(self, *args) -> 'void' + | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * + | + | _set_scif(self, *args) -> 'void' + | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * + | + | _set_t(self, *args) -> 'void' + | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t + | + | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) + | + | apply_xds(self, *args) -> 'void' + | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | apply_xdu(self, *args) -> 'void' + | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | assign(self, *args) -> 'mop_t &' + | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | change_size(self, *args) -> 'bool' + | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success + | + | create_from_insn(self, *args) -> 'void' + | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. + | + | create_from_ivlset(self, *args) -> 'bool' + | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_mlist(self, *args) -> 'bool' + | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_scattered_vdloc(self, *args) -> 'void' + | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success + | + | create_from_vdloc(self, *args) -> 'void' + | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success + | + | double_size(self, *args) -> 'bool' + | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | erase(self, *args) -> 'void' + | erase(self) + | + | erase_but_keep_size(self, *args) -> 'void' + | erase_but_keep_size(self) + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? + | + | for_all_scattered_submops(self, *args) -> 'int' + | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object + | + | get_insn(self, *args) -> 'minsn_t *' + | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t + | + | get_stkoff(self, *args) -> 'bool' + | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? + | + | is01(self, *args) -> 'bool' + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. + | + | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool + | Is a list of arguments? + | + | is_bit_reg(self, *args) -> 'bool' + | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool + | + | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool + | Is a condition code? + | + | is_ccflags(self, *args) -> 'bool' + | is_ccflags(self) -> bool + | + | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n + | + | is_equal_to(self, *args) -> 'bool' + | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool + | + | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) + | + | is_glbaddr(self, *args) -> 'bool' + | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t + | + | is_impptr_done(self, *args) -> 'bool' + | is_impptr_done(self) -> bool + | + | is_insn(self, *args) -> 'bool' + | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t + | + | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool + | + | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) + | + | is_negative_constant(self, *args) -> 'bool' + | is_negative_constant(self) -> bool + | + | is_one(self, *args) -> 'bool' + | is_one(self) -> bool + | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | + | is_positive_constant(self, *args) -> 'bool' + | is_positive_constant(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | + | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is a scattered operand? + | + | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits + | + | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool + | Is address of a stack variable? + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | + | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & + | + | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) + | + | make_first_half(self, *args) -> 'bool' + | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success + | + | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) + | + | make_helper(self, *args) -> 'void' + | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * + | + | make_high_half(self, *args) -> 'bool' + | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_insn(self, *args) -> 'void' + | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) + | + | make_low_half(self, *args) -> 'bool' + | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction + | + | make_reg(self, *args) -> 'void' + | make_reg(self, reg) + | + | @param reg: mreg_t + | + | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int + | + | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg + | + | make_second_half(self, *args) -> 'bool' + | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? + | + | preserve_side_effects(self, *args) -> 'bool' + | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them + | + | probably_floating(self, *args) -> 'bool' + | probably_floating(self) -> bool + | + | replace_by(self, o) + | + | set_impptr_done(self, *args) -> 'void' + | set_impptr_done(self) + | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | + | set_udt(self, *args) -> 'void' + | set_udt(self) + | + | set_undef_val(self, *args) -> 'void' + | set_undef_val(self) + | + | shift_mop(self, *args) -> 'bool' + | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success + | + | signed_value(self, *args) -> 'int64' + | signed_value(self) -> int64 + | + | swap(self, *args) -> 'void' + | swap(self, rop) + | + | @param rop: mop_t & + | + | unsigned_value(self, *args) -> 'uint64' + | unsigned_value(self) -> uint64 + | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | + | value(self, *args) -> 'uint64' + | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) + | + | zero(self, *args) -> 'void' + | zero(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a + | + | b + | + | c + | + | cstr + | + | d + | + | f + | + | fpc + | + | g + | + | helper + | + | l + | + | meminfo + | + | nnn + | + | obj_id + | _obj_id(self) -> PyObject * + | + | oprops + | oprops + | + | pair + | + | r + | + | s + | + | scif + | + | size + | size + | + | t + | _get_t(self) -> mopt_t + | + | thisown + | The membership flag + | + | valnum + | valnum + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mop_visitor_t in module ida_hexrays: + +class mop_visitor_t(op_parent_info_t) + | Proxy of C++ mop_visitor_t class. + | + | Method resolution order: + | mop_visitor_t + | op_parent_info_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_visitor_t(...) + | delete_mop_visitor_t(self) + | + | visit_mop(self, *args) -> 'int' + | visit_mop(self, op, type, is_target) -> int + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | prune + | prune + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from op_parent_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blk + | blk + | + | curins + | curins + | + | mba + | mba + | + | topins + | topins + +Help on class mopvec_t in module ida_hexrays: + +class mopvec_t(builtins.object) + | Proxy of C++ qvector< mop_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< mop_t > const & + | + | __getitem__(self, *args) -> 'mop_t const &' + | __getitem__(self, i) -> mop_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> mopvec_t + | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< mop_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mop_t const & + | + | __swig_destroy__ = delete_mopvec_t(...) + | delete_mopvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mop_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: mop_t const & + | + | at(self, *args) -> 'mop_t const &' + | at(self, _idx) -> mop_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< mop_t >::const_iterator' + | begin(self) -> mop_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< mop_t >::const_iterator' + | end(self) -> mop_t + | + | erase(self, *args) -> 'qvector< mop_t >::iterator' + | erase(self, it) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | + | erase(self, first, last) -> mop_t + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator + | + | extract(self, *args) -> 'mop_t *' + | extract(self) -> mop_t + | + | find(self, *args) -> 'qvector< mop_t >::const_iterator' + | find(self, x) -> mop_t + | + | @param x: mop_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=mop_t()) + | + | @param x: mop_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: mop_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: mop_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< mop_t >::iterator' + | insert(self, it, x) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'mop_t &' + | push_back(self, x) + | + | @param x: mop_t const & + | + | push_back(self) -> mop_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mop_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< mop_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function mreg2reg in module ida_hexrays: + +mreg2reg(*args) -> 'int' + mreg2reg(reg, width) -> int + Map a microregister to a processor register. + + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes + @return: processor register id or -1 + +Help on function must_mcode_close_block in module ida_hexrays: + +must_mcode_close_block(*args) -> 'bool' + must_mcode_close_block(mcode, including_calls) -> bool + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. + + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. + +Help on function negate_mcode_relation in module ida_hexrays: + +negate_mcode_relation(*args) -> 'mcode_t' + negate_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t + +Help on function negated_relation in module ida_hexrays: + +negated_relation(*args) -> 'ctype_t' + negated_relation(op) -> ctype_t + Negate a comparison operator. For example, cot_sge becomes cot_slt. + + @param op: (C++: ctype_t) enum ctype_t + +Help on function new_block in module ida_hexrays: + +new_block() + Create a new block-statement. + +Help on class number_format_t in module ida_hexrays: + +class number_format_t(builtins.object) + | Proxy of C++ number_format_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _opnum=0) -> number_format_t + | + | @param _opnum: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_number_format_t(...) + | delete_number_format_t(self) + | + | get_radix(self, *args) -> 'int' + | get_radix(self) -> int + | Get number radix + | + | @return: 2,8,10, or 16 + | + | has_unmutable_type(self, *args) -> 'bool' + | has_unmutable_type(self) -> bool + | + | is_char(self, *args) -> 'bool' + | is_char(self) -> bool + | Is a character constant? + | + | is_dec(self, *args) -> 'bool' + | is_dec(self) -> bool + | Is a decimal number? + | + | is_enum(self, *args) -> 'bool' + | is_enum(self) -> bool + | Is a symbolic constant? + | + | is_fixed(self, *args) -> 'bool' + | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler + | + | is_hex(self, *args) -> 'bool' + | is_hex(self) -> bool + | Is a hexadecimal number? + | + | is_numop(self, *args) -> 'bool' + | is_numop(self) -> bool + | Is a number? + | + | is_oct(self, *args) -> 'bool' + | is_oct(self) -> bool + | Is a octal number? + | + | is_stroff(self, *args) -> 'bool' + | is_stroff(self) -> bool + | Is a structure field offset? + | + | needs_to_be_inverted(self, *args) -> 'bool' + | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | opnum + | opnum + | + | org_nbytes + | org_nbytes + | + | props + | props + | + | serial + | serial + | + | thisown + | The membership flag + | + | type_name + | type_name + +Help on class op_parent_info_t in module ida_hexrays: + +class op_parent_info_t(builtins.object) + | Proxy of C++ op_parent_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_op_parent_info_t(...) + | delete_op_parent_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blk + | blk + | + | curins + | curins + | + | mba + | mba + | + | thisown + | The membership flag + | + | topins + | topins + +Help on function op_uses_x in module ida_hexrays: + +op_uses_x(*args) -> 'bool' + op_uses_x(op) -> bool + Does operator use the 'x' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function op_uses_y in module ida_hexrays: + +op_uses_y(*args) -> 'bool' + op_uses_y(op) -> bool + Does operator use the 'y' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function op_uses_z in module ida_hexrays: + +op_uses_z(*args) -> 'bool' + op_uses_z(op) -> bool + Does operator use the 'z' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function open_pseudocode in module ida_hexrays: + +open_pseudocode(*args) -> 'vdui_t *' + open_pseudocode(ea, flags) -> vdui_t + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. + + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags + @return: false if failed + +Help on class operand_locator_t in module ida_hexrays: + +class operand_locator_t(builtins.object) + | Proxy of C++ operand_locator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __init__(self, *args) + | __init__(self, _ea, _opnum) -> operand_locator_t + | + | @param _ea: ea_t + | @param _opnum: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_operand_locator_t(...) + | delete_operand_locator_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: operand_locator_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | opnum + | opnum + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class optblock_t in module ida_hexrays: + +class optblock_t(builtins.object) + | Proxy of C++ optblock_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> optblock_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_optblock_t(...) + | delete_optblock_t(self) + | + | func(self, *args) -> 'int' + | func(self, blk) -> int + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. + | + | install(self, *args) -> 'void' + | install(self) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class optinsn_t in module ida_hexrays: + +class optinsn_t(builtins.object) + | Proxy of C++ optinsn_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> optinsn_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_optinsn_t(...) + | delete_optinsn_t(self) + | + | func(self, *args) -> 'int' + | func(self, blk, ins, optflags) -> int + | Optimize an instruction. + | + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) + | + | install(self, *args) -> 'void' + | install(self) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function parse_user_call in module ida_hexrays: + +parse_user_call(*args) -> 'bool' + parse_user_call(udc, decl, silent) -> bool + Convert function type declaration into internal structure + + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type + @return: success + +Help on function partial_type_num in module ida_hexrays: + +partial_type_num(*args) -> 'int' + partial_type_num(type) -> int + Calculate number of partial subtypes. + + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. + +Help on function print_vdloc in module ida_hexrays: + +print_vdloc(*args) -> 'qstring *' + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. + + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) + +Help on function property_op_to_typename in module ida_hexrays: + +property_op_to_typename(self) + +Help on class qstring_printer_t in module ida_hexrays: + +class qstring_printer_t(vc_printer_t) + | Proxy of C++ qstring_printer_t class. + | + | Method resolution order: + | qstring_printer_t + | vc_printer_t + | vd_printer_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, f, tags) -> qstring_printer_t + | + | @param f: cfunc_t const * + | @param tags: bool + | + | __repr__ = _swig_repr(self) + | + | _print(self, *args) -> 'int' + | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * + | + | get_s(self, *args) -> 'qstring' + | get_s(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | s + | + | thisown + | The membership flag + | + | with_tags + | with_tags + | + | ---------------------------------------------------------------------- + | Methods inherited from vc_printer_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_vc_printer_t(...) + | delete_vc_printer_t(self) + | + | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vc_printer_t: + | + | func + | func + | + | lastchar + | lastchar + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vd_printer_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hdrlines + | hdrlines + | + | tmpbuf + | tmpbuf + +Help on function qswap in module ida_hexrays: + +qswap(*args) -> 'void' + qswap(a, b) + + @param a: cinsn_t & + @param b: cinsn_t & + +Help on class qvector_carg_t in module ida_hexrays: + +class qvector_carg_t(builtins.object) + | Proxy of C++ qvector< carg_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< carg_t > const & + | + | __getitem__(self, *args) -> 'carg_t const &' + | __getitem__(self, i) -> carg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_carg_t + | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< carg_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & + | + | __swig_destroy__ = delete_qvector_carg_t(...) + | delete_qvector_carg_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: carg_t const & + | + | append = push_back(self, *args) -> 'carg_t &' + | + | at = __getitem__(self, *args) -> 'carg_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< carg_t >::const_iterator' + | begin(self) -> carg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< carg_t >::const_iterator' + | end(self) -> carg_t + | + | erase(self, *args) -> 'qvector< carg_t >::iterator' + | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | + | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator + | + | extract(self, *args) -> 'carg_t *' + | extract(self) -> carg_t + | + | find(self, *args) -> 'qvector< carg_t >::const_iterator' + | find(self, x) -> carg_t + | + | @param x: carg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=carg_t()) + | + | @param x: carg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: carg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< carg_t >::iterator' + | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'carg_t &' + | push_back(self, x) + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< carg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qvector_ccase_t in module ida_hexrays: + +class qvector_ccase_t(builtins.object) + | Proxy of C++ qvector< ccase_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & + | + | __getitem__(self, *args) -> 'ccase_t const &' + | __getitem__(self, i) -> ccase_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_ccase_t + | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & + | + | __swig_destroy__ = delete_qvector_ccase_t(...) + | delete_qvector_ccase_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ccase_t const & + | + | append = push_back(self, *args) -> 'ccase_t &' + | + | at = __getitem__(self, *args) -> 'ccase_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' + | begin(self) -> ccase_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ccase_t >::const_iterator' + | end(self) -> ccase_t + | + | erase(self, *args) -> 'qvector< ccase_t >::iterator' + | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | + | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator + | + | extract(self, *args) -> 'ccase_t *' + | extract(self) -> ccase_t + | + | find(self, *args) -> 'qvector< ccase_t >::const_iterator' + | find(self, x) -> ccase_t + | + | @param x: ccase_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ccase_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ccase_t >::iterator' + | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ccase_t &' + | push_back(self, x) + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ccase_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qvector_history_t in module ida_hexrays: + +class qvector_history_t(builtins.object) + | Proxy of C++ qvector< history_item_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __getitem__(self, *args) -> 'history_item_t const &' + | __getitem__(self, i) -> history_item_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_history_t + | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & + | + | __swig_destroy__ = delete_qvector_history_t(...) + | delete_qvector_history_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: history_item_t const & + | + | at(self, *args) -> 'history_item_t const &' + | at(self, _idx) -> history_item_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' + | begin(self) -> history_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< history_item_t >::const_iterator' + | end(self) -> history_item_t + | + | erase(self, *args) -> 'qvector< history_item_t >::iterator' + | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | + | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator + | + | extract(self, *args) -> 'history_item_t *' + | extract(self) -> history_item_t + | + | find(self, *args) -> 'qvector< history_item_t >::const_iterator' + | find(self, x) -> history_item_t + | + | @param x: history_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: history_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< history_item_t >::iterator' + | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'history_item_t &' + | push_back(self, x) + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< history_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qvector_lvar_t in module ida_hexrays: + +class qvector_lvar_t(builtins.object) + | Proxy of C++ qvector< lvar_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __getitem__(self, *args) -> 'lvar_t const &' + | __getitem__(self, i) -> lvar_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_lvar_t + | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & + | + | __swig_destroy__ = delete_qvector_lvar_t(...) + | delete_qvector_lvar_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lvar_t const & + | + | append = push_back(self, *args) -> 'lvar_t &' + | + | at = __getitem__(self, *args) -> 'lvar_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' + | begin(self) -> lvar_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lvar_t >::const_iterator' + | end(self) -> lvar_t + | + | erase(self, *args) -> 'qvector< lvar_t >::iterator' + | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | + | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator + | + | extract(self, *args) -> 'lvar_t *' + | extract(self) -> lvar_t + | + | find(self, *args) -> 'qvector< lvar_t >::const_iterator' + | find(self, x) -> lvar_t + | + | @param x: lvar_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lvar_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lvar_t >::iterator' + | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lvar_t &' + | push_back(self, x) + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lvar_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function reg2mreg in module ida_hexrays: + +reg2mreg(*args) -> 'mreg_t' + reg2mreg(reg) -> mreg_t + Map a processor register to a microregister. + + @param reg: (C++: int) processor register number + @return: microregister register id or mr_none + +Help on function remitem in module ida_hexrays: + +remitem(*args) -> 'void' + remitem(e) + + @param e: citem_t const * + +Help on function remove_hexrays_callback in module ida_hexrays: + +remove_hexrays_callback(callback) + Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. + +Help on function rename_lvar in module ida_hexrays: + +rename_lvar(*args) -> 'bool' + rename_lvar(func_ea, oldname, newname) -> bool + Rename a local variable. + + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. + +Help on function restore_user_cmts in module ida_hexrays: + +restore_user_cmts(*args) -> 'user_cmts_t *' + restore_user_cmts(func_ea) -> user_cmts_t + Restore user defined comments from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() + +Help on function restore_user_defined_calls in module ida_hexrays: + +restore_user_defined_calls(*args) -> 'bool' + restore_user_defined_calls(udcalls, func_ea) -> bool + Restore user defined function calls from the database. + + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success + +Help on function restore_user_iflags in module ida_hexrays: + +restore_user_iflags(*args) -> 'user_iflags_t *' + restore_user_iflags(func_ea) -> user_iflags_t + Restore user defined citem iflags from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() + +Help on function restore_user_labels in module ida_hexrays: + +restore_user_labels(*args) -> 'user_labels_t *' + restore_user_labels(func_ea) -> user_labels_t + Restore user defined labels from the database. + + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() + +Help on function restore_user_labels2 in module ida_hexrays: + +restore_user_labels2(*args) -> 'user_labels_t *' + restore_user_labels2(func_ea, func=None) -> user_labels_t + + @param func_ea: ea_t + @param func: cfunc_t const * + +Help on function restore_user_lvar_settings in module ida_hexrays: + +restore_user_lvar_settings(*args) -> 'bool' + restore_user_lvar_settings(lvinf, func_ea) -> bool + Restore user defined local variable settings in the database. + + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success + +Help on function restore_user_numforms in module ida_hexrays: + +restore_user_numforms(*args) -> 'user_numforms_t *' + restore_user_numforms(func_ea) -> user_numforms_t + Restore user defined number formats from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() + +Help on function restore_user_unions in module ida_hexrays: + +restore_user_unions(*args) -> 'user_unions_t *' + restore_user_unions(func_ea) -> user_unions_t + Restore user defined union field selections from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() + +Help on class rlist_t in module ida_hexrays: + +class rlist_t(bitset_t) + | Proxy of C++ rlist_t class. + | + | Method resolution order: + | rlist_t + | bitset_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> rlist_t + | __init__(self, m) -> rlist_t + | + | @param m: rlist_t const & + | + | __init__(self, reg, width) -> rlist_t + | + | @param reg: mreg_t + | @param width: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rlist_t(...) + | delete_rlist_t(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from bitset_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __len__ = count(self, *args) -> 'int' + | count(self) -> int + | count(self, bit) -> int + | + | @param bit: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitset_t const & + | + | add(self, *args) -> 'bool' + | add(self, bit) -> bool + | + | @param bit: int + | + | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | add(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | back(self, *args) -> 'int' + | back(self) -> int + | + | begin(self, *args) -> 'bitset_t::iterator' + | begin(self) -> iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitset_t const & + | + | copy(self, *args) -> 'bitset_t &' + | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & + | + | count(self, *args) -> 'int' + | count(self) -> int + | count(self, bit) -> int + | + | @param bit: int + | + | cut_at(self, *args) -> 'bool' + | cut_at(self, maxbit) -> bool + | + | @param maxbit: int + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'bitset_t::iterator' + | end(self) -> iterator + | + | fill_with_ones(self, *args) -> 'void' + | fill_with_ones(self, maxbit) + | + | @param maxbit: int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | has(self, *args) -> 'bool' + | has(self, bit) -> bool + | + | @param bit: int + | + | has_all(self, *args) -> 'bool' + | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_any(self, *args) -> 'bool' + | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_common(self, *args) -> 'bool' + | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | inc(self, *args) -> 'void' + | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int + | + | includes(self, *args) -> 'bool' + | includes(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | itat(self, *args) -> 'bitset_t::iterator' + | itat(self, n) -> iterator + | + | @param n: int + | + | itv(self, *args) -> 'int' + | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator + | + | last(self, *args) -> 'int' + | last(self) -> int + | + | shift_down(self, *args) -> 'void' + | shift_down(self, shift) + | + | @param shift: int + | + | sub(self, *args) -> 'bool' + | sub(self, bit) -> bool + | + | @param bit: int + | + | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | sub(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: bitset_t & + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from bitset_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from bitset_t: + | + | __hash__ = None + +Help on function save_user_cmts in module ida_hexrays: + +save_user_cmts(*args) -> 'void' + save_user_cmts(func_ea, user_cmts) + Save user defined comments into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments + +Help on function save_user_defined_calls in module ida_hexrays: + +save_user_defined_calls(*args) -> 'void' + save_user_defined_calls(func_ea, udcalls) + Save user defined local function calls into the database. + + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls + +Help on function save_user_iflags in module ida_hexrays: + +save_user_iflags(*args) -> 'void' + save_user_iflags(func_ea, iflags) + Save user defined citem iflags into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags + +Help on function save_user_labels in module ida_hexrays: + +save_user_labels(*args) -> 'void' + save_user_labels(func_ea, user_labels) + Save user defined labels into the database. + + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels + +Help on function save_user_labels2 in module ida_hexrays: + +save_user_labels2(*args) -> 'void' + save_user_labels2(func_ea, user_labels, func=None) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * + +Help on function save_user_lvar_settings in module ida_hexrays: + +save_user_lvar_settings(*args) -> 'void' + save_user_lvar_settings(func_ea, lvinf) + Save user defined local variable settings into the database. + + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables + +Help on function save_user_numforms in module ida_hexrays: + +save_user_numforms(*args) -> 'void' + save_user_numforms(func_ea, numforms) + Save user defined number formats into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments + +Help on function save_user_unions in module ida_hexrays: + +save_user_unions(*args) -> 'void' + save_user_unions(func_ea, unions) + Save user defined union field selections into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections + +Help on class scif_t in module ida_hexrays: + +class scif_t(vdloc_t) + | Proxy of C++ scif_t class. + | + | Method resolution order: + | scif_t + | vdloc_t + | ida_typeinf.argloc_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _mba, tif, n=None) -> scif_t + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scif_t(...) + | delete_scif_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | mba + | mba + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Methods inherited from vdloc_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: vdloc_t const & + | + | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, r1) + | + | @param r1: int + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from vdloc_t: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_typeinf.argloc_t: + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_typeinf.argloc_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class scif_visitor_t in module ida_hexrays: + +class scif_visitor_t(builtins.object) + | Proxy of C++ scif_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> scif_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scif_visitor_t(...) + | delete_scif_visitor_t(self) + | + | visit_scif_mop(self, *args) -> 'int' + | visit_scif_mop(self, r, off) -> int + | + | @param r: mop_t const & + | @param off: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function select_udt_by_offset in module ida_hexrays: + +select_udt_by_offset(*args) -> 'int' + select_udt_by_offset(udts, ops, applicator) -> int + Select UDT + + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) callback will be called to apply the selection for every + operand + +Help on function send_database in module ida_hexrays: + +send_database(*args) -> 'void' + send_database(err, silent) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. + + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. + +Help on function set2jcnd in module ida_hexrays: + +set2jcnd(*args) -> 'mcode_t' + set2jcnd(code) -> mcode_t + + @param code: enum mcode_t + +Help on function set_type in module ida_hexrays: + +set_type(*args) -> 'bool' + set_type(id, tif, source, force=False) -> bool + Set a global type. + + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. + @return: success + +Help on class simple_graph_t in module ida_hexrays: + +class simple_graph_t(ida_gdl.gdl_graph_t) + | Proxy of C++ simple_graph_t class. + | + | Method resolution order: + | simple_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | colored_gdl_edges + | colored_gdl_edges + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class stkvar_ref_t in module ida_hexrays: + +class stkvar_ref_t(builtins.object) + | Proxy of C++ stkvar_ref_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __init__(self, *args) + | __init__(self, m, o) -> stkvar_ref_t + | + | @param m: mba_t * + | @param o: sval_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkvar_ref_t(...) + | delete_stkvar_ref_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: stkvar_ref_t const & + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off=None) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: stkvar_ref_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | mba + | mba + | + | off + | off + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function swap_mcode_relation in module ida_hexrays: + +swap_mcode_relation(*args) -> 'mcode_t' + swap_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t + +Help on function swapped_relation in module ida_hexrays: + +swapped_relation(*args) -> 'ctype_t' + swapped_relation(op) -> ctype_t + Swap a comparison operator. For example, cot_sge becomes cot_sle. + + @param op: (C++: ctype_t) enum ctype_t + +Help on function term_hexrays_plugin in module ida_hexrays: + +term_hexrays_plugin(*args) -> 'void' + term_hexrays_plugin() + Stop working with hex-rays decompiler. + +Help on class treeloc_t in module ida_hexrays: + +class treeloc_t(builtins.object) + | Proxy of C++ treeloc_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: treeloc_t const & + | + | __init__(self, *args) + | __init__(self) -> treeloc_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: treeloc_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_treeloc_t(...) + | delete_treeloc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | itp + | itp + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class udc_filter_t in module ida_hexrays: + +class udc_filter_t(microcode_filter_t) + | Proxy of C++ udc_filter_t class. + | + | Method resolution order: + | udc_filter_t + | microcode_filter_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> udc_filter_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udc_filter_t(...) + | delete_udc_filter_t(self) + | + | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | init(self, *args) -> 'bool' + | init(self, decl) -> bool + | + | @param decl: char const * + | + | install(self, *args) -> 'void' + | install(self) + | + | match(self, *args) -> 'bool' + | match(self, cdg) -> bool + | return true if the filter object should be applied to given instruction + | + | @param cdg: (C++: codegen_t &) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from microcode_filter_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function udcall_map_begin in module ida_hexrays: + +udcall_map_begin(*args) -> 'udcall_map_iterator_t' + udcall_map_begin(map) -> udcall_map_iterator_t + Get iterator pointing to the beginning of udcall_map_t. + + @param map: (C++: const udcall_map_t *) udcall_map_t const * + +Help on function udcall_map_clear in module ida_hexrays: + +udcall_map_clear(*args) -> 'void' + udcall_map_clear(map) + Clear udcall_map_t. + + @param map: (C++: udcall_map_t *) + +Help on function udcall_map_end in module ida_hexrays: + +udcall_map_end(*args) -> 'udcall_map_iterator_t' + udcall_map_end(map) -> udcall_map_iterator_t + Get iterator pointing to the end of udcall_map_t. + + @param map: (C++: const udcall_map_t *) udcall_map_t const * + +Help on function udcall_map_erase in module ida_hexrays: + +udcall_map_erase(*args) -> 'void' + udcall_map_erase(map, p) + Erase current element from udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_find in module ida_hexrays: + +udcall_map_find(*args) -> 'udcall_map_iterator_t' + udcall_map_find(map, key) -> udcall_map_iterator_t + Find the specified key in udcall_map_t. + + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & + +Help on function udcall_map_first in module ida_hexrays: + +udcall_map_first(*args) -> 'ea_t const &' + udcall_map_first(p) -> ea_t const & + Get reference to the current map key. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_free in module ida_hexrays: + +udcall_map_free(*args) -> 'void' + udcall_map_free(map) + Delete udcall_map_t instance. + + @param map: (C++: udcall_map_t *) + +Help on function udcall_map_insert in module ida_hexrays: + +udcall_map_insert(*args) -> 'udcall_map_iterator_t' + udcall_map_insert(map, key, val) -> udcall_map_iterator_t + Insert new (ea_t, udcall_t) pair into udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & + +Help on class udcall_map_iterator_t in module ida_hexrays: + +class udcall_map_iterator_t(builtins.object) + | Proxy of C++ udcall_map_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> udcall_map_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udcall_map_iterator_t(...) + | delete_udcall_map_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function udcall_map_new in module ida_hexrays: + +udcall_map_new(*args) -> 'udcall_map_t *' + udcall_map_new() -> udcall_map_t * + Create a new udcall_map_t instance. + +Help on function udcall_map_next in module ida_hexrays: + +udcall_map_next(*args) -> 'udcall_map_iterator_t' + udcall_map_next(p) -> udcall_map_iterator_t + Move to the next element. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_prev in module ida_hexrays: + +udcall_map_prev(*args) -> 'udcall_map_iterator_t' + udcall_map_prev(p) -> udcall_map_iterator_t + Move to the previous element. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_second in module ida_hexrays: + +udcall_map_second(*args) -> 'udcall_t &' + udcall_map_second(p) -> udcall_t + Get reference to the current map value. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_size in module ida_hexrays: + +udcall_map_size(*args) -> 'size_t' + udcall_map_size(map) -> size_t + Get size of udcall_map_t. + + @param map: (C++: udcall_map_t *) + +Help on class udcall_t in module ida_hexrays: + +class udcall_t(builtins.object) + | Proxy of C++ udcall_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __init__(self, *args) + | __init__(self) -> udcall_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udcall_t(...) + | delete_udcall_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: udcall_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | tif + | tif + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ui_stroff_applicator_t in module ida_hexrays: + +class ui_stroff_applicator_t(builtins.object) + | Proxy of C++ ui_stroff_applicator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ui_stroff_applicator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ui_stroff_applicator_t(...) + | delete_ui_stroff_applicator_t(self) + | + | apply(self, *args) -> 'bool' + | apply(self, opnum, path, top_tif, spath) -> bool + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class ui_stroff_op_t in module ida_hexrays: + +class ui_stroff_op_t(builtins.object) + | Proxy of C++ ui_stroff_op_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & + | + | __init__(self, *args) + | __init__(self) -> ui_stroff_op_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ui_stroff_op_t(...) + | delete_ui_stroff_op_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | offset + | offset + | + | text + | text + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ui_stroff_ops_t in module ida_hexrays: + +class ui_stroff_ops_t(builtins.object) + | Proxy of C++ qvector< ui_stroff_op_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & + | + | __getitem__(self, *args) -> 'ui_stroff_op_t const &' + | __getitem__(self, i) -> ui_stroff_op_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> ui_stroff_ops_t + | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ui_stroff_op_t const & + | + | __swig_destroy__ = delete_ui_stroff_ops_t(...) + | delete_ui_stroff_ops_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ui_stroff_op_t const & + | + | append = push_back(self, *args) -> 'ui_stroff_op_t &' + | + | at = __getitem__(self, *args) -> 'ui_stroff_op_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' + | begin(self) -> ui_stroff_op_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' + | end(self) -> ui_stroff_op_t + | + | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' + | erase(self, it) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | + | erase(self, first, last) -> ui_stroff_op_t + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator + | + | extract(self, *args) -> 'ui_stroff_op_t *' + | extract(self) -> ui_stroff_op_t + | + | find(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' + | find(self, x) -> ui_stroff_op_t + | + | @param x: ui_stroff_op_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ui_stroff_op_t()) + | + | @param x: ui_stroff_op_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ui_stroff_op_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ui_stroff_op_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' + | insert(self, it, x) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ui_stroff_op_t &' + | push_back(self, x) + | + | @param x: ui_stroff_op_t const & + | + | push_back(self) -> ui_stroff_op_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ui_stroff_op_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_cmts_begin in module ida_hexrays: + +user_cmts_begin(*args) -> 'user_cmts_iterator_t' + user_cmts_begin(map) -> user_cmts_iterator_t + Get iterator pointing to the beginning of user_cmts_t. + + @param map: (C++: const user_cmts_t *) user_cmts_t const * + +Help on function user_cmts_clear in module ida_hexrays: + +user_cmts_clear(*args) -> 'void' + user_cmts_clear(map) + Clear user_cmts_t. + + @param map: (C++: user_cmts_t *) + +Help on function user_cmts_end in module ida_hexrays: + +user_cmts_end(*args) -> 'user_cmts_iterator_t' + user_cmts_end(map) -> user_cmts_iterator_t + Get iterator pointing to the end of user_cmts_t. + + @param map: (C++: const user_cmts_t *) user_cmts_t const * + +Help on function user_cmts_erase in module ida_hexrays: + +user_cmts_erase(*args) -> 'void' + user_cmts_erase(map, p) + Erase current element from user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_find in module ida_hexrays: + +user_cmts_find(*args) -> 'user_cmts_iterator_t' + user_cmts_find(map, key) -> user_cmts_iterator_t + Find the specified key in user_cmts_t. + + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & + +Help on function user_cmts_first in module ida_hexrays: + +user_cmts_first(*args) -> 'treeloc_t const &' + user_cmts_first(p) -> treeloc_t + Get reference to the current map key. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_free in module ida_hexrays: + +user_cmts_free(*args) -> 'void' + user_cmts_free(map) + Delete user_cmts_t instance. + + @param map: (C++: user_cmts_t *) + +Help on function user_cmts_insert in module ida_hexrays: + +user_cmts_insert(*args) -> 'user_cmts_iterator_t' + user_cmts_insert(map, key, val) -> user_cmts_iterator_t + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & + +Help on class user_cmts_iterator_t in module ida_hexrays: + +class user_cmts_iterator_t(builtins.object) + | Proxy of C++ user_cmts_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_cmts_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_cmts_iterator_t(...) + | delete_user_cmts_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_cmts_new in module ida_hexrays: + +user_cmts_new(*args) -> 'user_cmts_t *' + user_cmts_new() -> user_cmts_t + Create a new user_cmts_t instance. + +Help on function user_cmts_next in module ida_hexrays: + +user_cmts_next(*args) -> 'user_cmts_iterator_t' + user_cmts_next(p) -> user_cmts_iterator_t + Move to the next element. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_prev in module ida_hexrays: + +user_cmts_prev(*args) -> 'user_cmts_iterator_t' + user_cmts_prev(p) -> user_cmts_iterator_t + Move to the previous element. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_second in module ida_hexrays: + +user_cmts_second(*args) -> 'citem_cmt_t &' + user_cmts_second(p) -> citem_cmt_t + Get reference to the current map value. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_size in module ida_hexrays: + +user_cmts_size(*args) -> 'size_t' + user_cmts_size(map) -> size_t + Get size of user_cmts_t. + + @param map: (C++: user_cmts_t *) + +Help on class user_cmts_t in module ida_hexrays: + +class user_cmts_t(builtins.object) + | Proxy of C++ std::map< treeloc_t,citem_cmt_t > class. + | + | Methods defined here: + | + | __begin = user_cmts_begin(...) + | user_cmts_begin(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | + | __clear = user_cmts_clear(...) + | user_cmts_clear(map) + | + | Parameters + | ---------- + | map: user_cmts_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_cmts_end(...) + | user_cmts_end(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | + | __erase = user_cmts_erase(...) + | user_cmts_erase(map, p) + | + | Parameters + | ---------- + | map: user_cmts_t * + | p: user_cmts_iterator_t + | + | __find = user_cmts_find(...) + | user_cmts_find(map, key) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | key: treeloc_t const & + | + | __first = user_cmts_first(...) + | user_cmts_first(p) -> treeloc_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_cmts_t + | + | __insert = user_cmts_insert(...) + | user_cmts_insert(map, key, val) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t * + | key: treeloc_t const & + | val: citem_cmt_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_cmts_next(...) + | user_cmts_next(p) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_cmts_second(...) + | user_cmts_second(p) -> citem_cmt_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_cmts_size(...) + | user_cmts_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_cmts_t * + | + | __swig_destroy__ = delete_user_cmts_t(...) + | delete_user_cmts_t(self) + | + | at(self, *args) -> 'citem_cmt_t &' + | at(self, _Keyval) -> citem_cmt_t + | + | @param _Keyval: treeloc_t const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.treeloc_t'> + | Proxy of C++ treeloc_t class. + | + | valuetype = <class 'ida_hexrays.citem_cmt_t'> + | Proxy of C++ citem_cmt_t class. + +Help on function user_iflags_begin in module ida_hexrays: + +user_iflags_begin(*args) -> 'user_iflags_iterator_t' + user_iflags_begin(map) -> user_iflags_iterator_t + Get iterator pointing to the beginning of user_iflags_t. + + @param map: (C++: const user_iflags_t *) user_iflags_t const * + +Help on function user_iflags_clear in module ida_hexrays: + +user_iflags_clear(*args) -> 'void' + user_iflags_clear(map) + Clear user_iflags_t. + + @param map: (C++: user_iflags_t *) + +Help on function user_iflags_end in module ida_hexrays: + +user_iflags_end(*args) -> 'user_iflags_iterator_t' + user_iflags_end(map) -> user_iflags_iterator_t + Get iterator pointing to the end of user_iflags_t. + + @param map: (C++: const user_iflags_t *) user_iflags_t const * + +Help on function user_iflags_erase in module ida_hexrays: + +user_iflags_erase(*args) -> 'void' + user_iflags_erase(map, p) + Erase current element from user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_find in module ida_hexrays: + +user_iflags_find(*args) -> 'user_iflags_iterator_t' + user_iflags_find(map, key) -> user_iflags_iterator_t + Find the specified key in user_iflags_t. + + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & + +Help on function user_iflags_first in module ida_hexrays: + +user_iflags_first(*args) -> 'citem_locator_t const &' + user_iflags_first(p) -> citem_locator_t + Get reference to the current map key. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_free in module ida_hexrays: + +user_iflags_free(*args) -> 'void' + user_iflags_free(map) + Delete user_iflags_t instance. + + @param map: (C++: user_iflags_t *) + +Help on function user_iflags_insert in module ida_hexrays: + +user_iflags_insert(*args) -> 'user_iflags_iterator_t' + user_iflags_insert(map, key, val) -> user_iflags_iterator_t + Insert new (citem_locator_t, int32) pair into user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & + +Help on class user_iflags_iterator_t in module ida_hexrays: + +class user_iflags_iterator_t(builtins.object) + | Proxy of C++ user_iflags_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_iflags_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_iflags_iterator_t(...) + | delete_user_iflags_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_iflags_new in module ida_hexrays: + +user_iflags_new(*args) -> 'user_iflags_t *' + user_iflags_new() -> user_iflags_t + Create a new user_iflags_t instance. + +Help on function user_iflags_next in module ida_hexrays: + +user_iflags_next(*args) -> 'user_iflags_iterator_t' + user_iflags_next(p) -> user_iflags_iterator_t + Move to the next element. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_prev in module ida_hexrays: + +user_iflags_prev(*args) -> 'user_iflags_iterator_t' + user_iflags_prev(p) -> user_iflags_iterator_t + Move to the previous element. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_second in module ida_hexrays: + +user_iflags_second(*args) -> 'int32 const &' + user_iflags_second(p) -> int32 const & + Get reference to the current map value. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_size in module ida_hexrays: + +user_iflags_size(*args) -> 'size_t' + user_iflags_size(map) -> size_t + Get size of user_iflags_t. + + @param map: (C++: user_iflags_t *) + +Help on class user_iflags_t in module ida_hexrays: + +class user_iflags_t(builtins.object) + | Proxy of C++ std::map< citem_locator_t,int32 > class. + | + | Methods defined here: + | + | __begin = user_iflags_begin(...) + | user_iflags_begin(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | + | __clear = user_iflags_clear(...) + | user_iflags_clear(map) + | + | Parameters + | ---------- + | map: user_iflags_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_iflags_end(...) + | user_iflags_end(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | + | __erase = user_iflags_erase(...) + | user_iflags_erase(map, p) + | + | Parameters + | ---------- + | map: user_iflags_t * + | p: user_iflags_iterator_t + | + | __find = user_iflags_find(...) + | user_iflags_find(map, key) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | key: citem_locator_t const & + | + | __first = user_iflags_first(...) + | user_iflags_first(p) -> citem_locator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_iflags_t + | + | __insert = user_iflags_insert(...) + | user_iflags_insert(map, key, val) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | key: citem_locator_t const & + | val: int32 const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_iflags_next(...) + | user_iflags_next(p) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_iflags_second(...) + | user_iflags_second(p) -> int32 const & + | + | Parameters + | ---------- + | p: user_iflags_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_iflags_size(...) + | user_iflags_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | + | __swig_destroy__ = delete_user_iflags_t(...) + | delete_user_iflags_t(self) + | + | at(self, *args) -> 'int &' + | at(self, _Keyval) -> int & + | + | @param _Keyval: citem_locator_t const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.citem_locator_t'> + | Proxy of C++ citem_locator_t class. + | + | valuetype = <class 'int'> + | int(x=0) -> integer + | int(x, base=10) -> integer + | + | Convert a number or string to an integer, or return 0 if no arguments + | are given. If x is a number, return x.__int__(). For floating point + | numbers, this truncates towards zero. + | + | If x is not a number or if base is given, then x must be a string, + | bytes, or bytearray instance representing an integer literal in the + | given base. The literal can be preceded by '+' or '-' and be surrounded + | by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. + | Base 0 means to interpret the base from the string as an integer literal. + | >>> int('0b100', base=0) + | 4 + +Help on function user_labels_begin in module ida_hexrays: + +user_labels_begin(*args) -> 'user_labels_iterator_t' + user_labels_begin(map) -> user_labels_iterator_t + Get iterator pointing to the beginning of user_labels_t. + + @param map: (C++: const user_labels_t *) user_labels_t const * + +Help on function user_labels_clear in module ida_hexrays: + +user_labels_clear(*args) -> 'void' + user_labels_clear(map) + Clear user_labels_t. + + @param map: (C++: user_labels_t *) + +Help on function user_labels_end in module ida_hexrays: + +user_labels_end(*args) -> 'user_labels_iterator_t' + user_labels_end(map) -> user_labels_iterator_t + Get iterator pointing to the end of user_labels_t. + + @param map: (C++: const user_labels_t *) user_labels_t const * + +Help on function user_labels_erase in module ida_hexrays: + +user_labels_erase(*args) -> 'void' + user_labels_erase(map, p) + Erase current element from user_labels_t. + + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_find in module ida_hexrays: + +user_labels_find(*args) -> 'user_labels_iterator_t' + user_labels_find(map, key) -> user_labels_iterator_t + Find the specified key in user_labels_t. + + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & + +Help on function user_labels_first in module ida_hexrays: + +user_labels_first(*args) -> 'int const &' + user_labels_first(p) -> int const & + Get reference to the current map key. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_free in module ida_hexrays: + +user_labels_free(*args) -> 'void' + user_labels_free(map) + Delete user_labels_t instance. + + @param map: (C++: user_labels_t *) + +Help on function user_labels_insert in module ida_hexrays: + +user_labels_insert(*args) -> 'user_labels_iterator_t' + user_labels_insert(map, key, val) -> user_labels_iterator_t + Insert new (int, qstring) pair into user_labels_t. + + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & + +Help on class user_labels_iterator_t in module ida_hexrays: + +class user_labels_iterator_t(builtins.object) + | Proxy of C++ user_labels_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_labels_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_labels_iterator_t(...) + | delete_user_labels_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_labels_new in module ida_hexrays: + +user_labels_new(*args) -> 'user_labels_t *' + user_labels_new() -> user_labels_t + Create a new user_labels_t instance. + +Help on function user_labels_next in module ida_hexrays: + +user_labels_next(*args) -> 'user_labels_iterator_t' + user_labels_next(p) -> user_labels_iterator_t + Move to the next element. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_prev in module ida_hexrays: + +user_labels_prev(*args) -> 'user_labels_iterator_t' + user_labels_prev(p) -> user_labels_iterator_t + Move to the previous element. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_second in module ida_hexrays: + +user_labels_second(*args) -> 'qstring &' + user_labels_second(p) -> qstring & + Get reference to the current map value. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_size in module ida_hexrays: + +user_labels_size(*args) -> 'size_t' + user_labels_size(map) -> size_t + Get size of user_labels_t. + + @param map: (C++: user_labels_t *) + +Help on class user_labels_t in module ida_hexrays: + +class user_labels_t(builtins.object) + | Proxy of C++ std::map< int,qstring > class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> user_labels_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_labels_t(...) + | delete_user_labels_t(self) + | + | at(self, *args) -> '_qstring< char > &' + | at(self, _Keyval) -> _qstring< char > & + | + | @param _Keyval: int const & + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class user_lvar_modifier_t in module ida_hexrays: + +class user_lvar_modifier_t(builtins.object) + | Proxy of C++ user_lvar_modifier_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> user_lvar_modifier_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_lvar_modifier_t(...) + | delete_user_lvar_modifier_t(self) + | + | modify_lvars(self, *args) -> 'bool' + | modify_lvars(self, lvinf) -> bool + | Modify lvar settings. Returns: true-modified + | + | @param lvinf: (C++: lvar_uservec_t *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function user_numforms_begin in module ida_hexrays: + +user_numforms_begin(*args) -> 'user_numforms_iterator_t' + user_numforms_begin(map) -> user_numforms_iterator_t + Get iterator pointing to the beginning of user_numforms_t. + + @param map: (C++: const user_numforms_t *) user_numforms_t const * + +Help on function user_numforms_clear in module ida_hexrays: + +user_numforms_clear(*args) -> 'void' + user_numforms_clear(map) + Clear user_numforms_t. + + @param map: (C++: user_numforms_t *) + +Help on function user_numforms_end in module ida_hexrays: + +user_numforms_end(*args) -> 'user_numforms_iterator_t' + user_numforms_end(map) -> user_numforms_iterator_t + Get iterator pointing to the end of user_numforms_t. + + @param map: (C++: const user_numforms_t *) user_numforms_t const * + +Help on function user_numforms_erase in module ida_hexrays: + +user_numforms_erase(*args) -> 'void' + user_numforms_erase(map, p) + Erase current element from user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_find in module ida_hexrays: + +user_numforms_find(*args) -> 'user_numforms_iterator_t' + user_numforms_find(map, key) -> user_numforms_iterator_t + Find the specified key in user_numforms_t. + + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & + +Help on function user_numforms_first in module ida_hexrays: + +user_numforms_first(*args) -> 'operand_locator_t const &' + user_numforms_first(p) -> operand_locator_t + Get reference to the current map key. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_free in module ida_hexrays: + +user_numforms_free(*args) -> 'void' + user_numforms_free(map) + Delete user_numforms_t instance. + + @param map: (C++: user_numforms_t *) + +Help on function user_numforms_insert in module ida_hexrays: + +user_numforms_insert(*args) -> 'user_numforms_iterator_t' + user_numforms_insert(map, key, val) -> user_numforms_iterator_t + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & + +Help on class user_numforms_iterator_t in module ida_hexrays: + +class user_numforms_iterator_t(builtins.object) + | Proxy of C++ user_numforms_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_numforms_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_numforms_iterator_t(...) + | delete_user_numforms_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_numforms_new in module ida_hexrays: + +user_numforms_new(*args) -> 'user_numforms_t *' + user_numforms_new() -> user_numforms_t + Create a new user_numforms_t instance. + +Help on function user_numforms_next in module ida_hexrays: + +user_numforms_next(*args) -> 'user_numforms_iterator_t' + user_numforms_next(p) -> user_numforms_iterator_t + Move to the next element. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_prev in module ida_hexrays: + +user_numforms_prev(*args) -> 'user_numforms_iterator_t' + user_numforms_prev(p) -> user_numforms_iterator_t + Move to the previous element. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_second in module ida_hexrays: + +user_numforms_second(*args) -> 'number_format_t &' + user_numforms_second(p) -> number_format_t + Get reference to the current map value. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_size in module ida_hexrays: + +user_numforms_size(*args) -> 'size_t' + user_numforms_size(map) -> size_t + Get size of user_numforms_t. + + @param map: (C++: user_numforms_t *) + +Help on class user_numforms_t in module ida_hexrays: + +class user_numforms_t(builtins.object) + | Proxy of C++ std::map< operand_locator_t,number_format_t > class. + | + | Methods defined here: + | + | __begin = user_numforms_begin(...) + | user_numforms_begin(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | + | __clear = user_numforms_clear(...) + | user_numforms_clear(map) + | + | Parameters + | ---------- + | map: user_numforms_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_numforms_end(...) + | user_numforms_end(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | + | __erase = user_numforms_erase(...) + | user_numforms_erase(map, p) + | + | Parameters + | ---------- + | map: user_numforms_t * + | p: user_numforms_iterator_t + | + | __find = user_numforms_find(...) + | user_numforms_find(map, key) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | key: operand_locator_t const & + | + | __first = user_numforms_first(...) + | user_numforms_first(p) -> operand_locator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_numforms_t + | + | __insert = user_numforms_insert(...) + | user_numforms_insert(map, key, val) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t * + | key: operand_locator_t const & + | val: number_format_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_numforms_next(...) + | user_numforms_next(p) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_numforms_second(...) + | user_numforms_second(p) -> number_format_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_numforms_size(...) + | user_numforms_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_numforms_t * + | + | __swig_destroy__ = delete_user_numforms_t(...) + | delete_user_numforms_t(self) + | + | at(self, *args) -> 'number_format_t &' + | at(self, _Keyval) -> number_format_t + | + | @param _Keyval: operand_locator_t const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.operand_locator_t'> + | Proxy of C++ operand_locator_t class. + | + | valuetype = <class 'ida_hexrays.number_format_t'> + | Proxy of C++ number_format_t class. + +Help on function user_unions_begin in module ida_hexrays: + +user_unions_begin(*args) -> 'user_unions_iterator_t' + user_unions_begin(map) -> user_unions_iterator_t + Get iterator pointing to the beginning of user_unions_t. + + @param map: (C++: const user_unions_t *) user_unions_t const * + +Help on function user_unions_clear in module ida_hexrays: + +user_unions_clear(*args) -> 'void' + user_unions_clear(map) + Clear user_unions_t. + + @param map: (C++: user_unions_t *) + +Help on function user_unions_end in module ida_hexrays: + +user_unions_end(*args) -> 'user_unions_iterator_t' + user_unions_end(map) -> user_unions_iterator_t + Get iterator pointing to the end of user_unions_t. + + @param map: (C++: const user_unions_t *) user_unions_t const * + +Help on function user_unions_erase in module ida_hexrays: + +user_unions_erase(*args) -> 'void' + user_unions_erase(map, p) + Erase current element from user_unions_t. + + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_find in module ida_hexrays: + +user_unions_find(*args) -> 'user_unions_iterator_t' + user_unions_find(map, key) -> user_unions_iterator_t + Find the specified key in user_unions_t. + + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & + +Help on function user_unions_first in module ida_hexrays: + +user_unions_first(*args) -> 'ea_t const &' + user_unions_first(p) -> ea_t const & + Get reference to the current map key. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_free in module ida_hexrays: + +user_unions_free(*args) -> 'void' + user_unions_free(map) + Delete user_unions_t instance. + + @param map: (C++: user_unions_t *) + +Help on function user_unions_insert in module ida_hexrays: + +user_unions_insert(*args) -> 'user_unions_iterator_t' + user_unions_insert(map, key, val) -> user_unions_iterator_t + Insert new (ea_t, intvec_t) pair into user_unions_t. + + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & + +Help on class user_unions_iterator_t in module ida_hexrays: + +class user_unions_iterator_t(builtins.object) + | Proxy of C++ user_unions_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_unions_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_unions_iterator_t(...) + | delete_user_unions_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_unions_new in module ida_hexrays: + +user_unions_new(*args) -> 'user_unions_t *' + user_unions_new() -> user_unions_t + Create a new user_unions_t instance. + +Help on function user_unions_next in module ida_hexrays: + +user_unions_next(*args) -> 'user_unions_iterator_t' + user_unions_next(p) -> user_unions_iterator_t + Move to the next element. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_prev in module ida_hexrays: + +user_unions_prev(*args) -> 'user_unions_iterator_t' + user_unions_prev(p) -> user_unions_iterator_t + Move to the previous element. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_second in module ida_hexrays: + +user_unions_second(*args) -> 'intvec_t &' + user_unions_second(p) -> intvec_t + Get reference to the current map value. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_size in module ida_hexrays: + +user_unions_size(*args) -> 'size_t' + user_unions_size(map) -> size_t + Get size of user_unions_t. + + @param map: (C++: user_unions_t *) + +Help on class user_unions_t in module ida_hexrays: + +class user_unions_t(builtins.object) + | Proxy of C++ std::map< ea_t,intvec_t > class. + | + | Methods defined here: + | + | __begin = user_unions_begin(...) + | user_unions_begin(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | + | __clear = user_unions_clear(...) + | user_unions_clear(map) + | + | Parameters + | ---------- + | map: user_unions_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_unions_end(...) + | user_unions_end(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | + | __erase = user_unions_erase(...) + | user_unions_erase(map, p) + | + | Parameters + | ---------- + | map: user_unions_t * + | p: user_unions_iterator_t + | + | __find = user_unions_find(...) + | user_unions_find(map, key) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | key: ea_t const & + | + | __first = user_unions_first(...) + | user_unions_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: user_unions_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_unions_t + | + | __insert = user_unions_insert(...) + | user_unions_insert(map, key, val) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t * + | key: ea_t const & + | val: intvec_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_unions_next(...) + | user_unions_next(p) -> user_unions_iterator_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_unions_second(...) + | user_unions_second(p) -> intvec_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_unions_size(...) + | user_unions_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_unions_t * + | + | __swig_destroy__ = delete_user_unions_t(...) + | delete_user_unions_t(self) + | + | at(self, *args) -> 'qvector< int > &' + | at(self, _Keyval) -> intvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = (<class 'int'>,) + | + | valuetype = <class 'ida_pro.intvec_t'> + | Proxy of C++ qvector< int > class. + +Help on class uval_ivl_ivlset_t in module ida_hexrays: + +class uval_ivl_ivlset_t(builtins.object) + | Proxy of C++ ivlset_tpl< ivl_t,uval_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, v) -> bool + | + | @param v: ivl_t const & + | + | __init__(self, *args) + | __init__(self) -> uval_ivl_ivlset_t + | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, v) -> bool + | + | @param v: ivl_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_uval_ivl_ivlset_t(...) + | delete_uval_ivl_ivlset_t(self) + | + | all_values(self, *args) -> 'bool' + | all_values(self) -> bool + | + | begin(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | getivl(self, *args) -> 'ivl_t const &' + | getivl(self, idx) -> ivl_t + | + | @param idx: int + | + | lastivl(self, *args) -> 'ivl_t const &' + | lastivl(self) -> ivl_t + | + | nivls(self, *args) -> 'size_t' + | nivls(self) -> size_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | set_all_values(self, *args) -> 'void' + | set_all_values(self) + | + | single_value(self, *args) -> 'bool' + | single_value(self) -> bool + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class uval_ivl_t in module ida_hexrays: + +class uval_ivl_t(builtins.object) + | Proxy of C++ ivl_tpl< uval_t > class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _off, _size) -> uval_ivl_t + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_uval_ivl_t(...) + | delete_uval_ivl_t(self) + | + | end(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | end(self) -> unsigned-ea-like-numeric-type↗ + | + | last(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | last(self) -> unsigned-ea-like-numeric-type↗ + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | size + | size + | + | thisown + | The membership flag + +Help on class valrng_t in module ida_hexrays: + +class valrng_t(builtins.object) + | Proxy of C++ valrng_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __init__(self, *args) + | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | + | @param size_: int + | + | __init__(self, r) -> valrng_t + | + | @param r: valrng_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_valrng_t(...) + | delete_valrng_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | _register(self, *args) -> 'void' + | _register(self) + | + | all_values(self, *args) -> 'bool' + | all_values(self) -> bool + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: valrng_t const & + | + | cvt_to_cmp(self, *args) -> 'bool' + | cvt_to_cmp(self, strict) -> bool + | + | @param strict: bool + | + | cvt_to_single_value(self, *args) -> 'bool' + | cvt_to_single_value(self) -> bool + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | get_size(self, *args) -> 'int' + | get_size(self) -> int + | + | has(self, *args) -> 'bool' + | has(self, v) -> bool + | + | @param v: uvlr_t + | + | intersect_with(self, *args) -> 'bool' + | intersect_with(self, r) -> bool + | + | @param r: valrng_t const & + | + | inverse(self, *args) -> 'void' + | inverse(self) + | + | is_unknown(self, *args) -> 'bool' + | is_unknown(self) -> bool + | + | max_svalue(self, *args) -> 'uvlr_t' + | max_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | + | max_svalue(self) -> uvlr_t + | + | max_value(self, *args) -> 'uvlr_t' + | max_value(self, size_) -> uvlr_t + | + | @param size_: int + | + | max_value(self) -> uvlr_t + | + | min_svalue(self, *args) -> 'uvlr_t' + | min_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | + | min_svalue(self) -> uvlr_t + | + | reduce_size(self, *args) -> 'bool' + | reduce_size(self, new_size) -> bool + | + | @param new_size: int + | + | set_all(self, *args) -> 'void' + | set_all(self) + | + | set_cmp(self, *args) -> 'void' + | set_cmp(self, cmp, _value) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t + | + | set_eq(self, *args) -> 'void' + | set_eq(self, v) + | + | @param v: uvlr_t + | + | set_none(self, *args) -> 'void' + | set_none(self) + | + | set_unk(self, *args) -> 'void' + | set_unk(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: valrng_t & + | + | unite_with(self, *args) -> 'bool' + | unite_with(self, r) -> bool + | + | @param r: valrng_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class var_ref_t in module ida_hexrays: + +class var_ref_t(builtins.object) + | Proxy of C++ var_ref_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __init__(self, *args) + | __init__(self) -> var_ref_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_var_ref_t(...) + | delete_var_ref_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: var_ref_t const & + | + | getv(self, *args) -> 'lvar_t &' + | getv(self) -> lvar_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | mba + | mba + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class vc_printer_t in module ida_hexrays: + +class vc_printer_t(vd_printer_t) + | Proxy of C++ vc_printer_t class. + | + | Method resolution order: + | vc_printer_t + | vd_printer_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, f) -> vc_printer_t + | + | @param f: cfunc_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vc_printer_t(...) + | delete_vc_printer_t(self) + | + | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | func + | func + | + | lastchar + | lastchar + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from vd_printer_t: + | + | _print(self, *args) -> 'int' + | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vd_printer_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hdrlines + | hdrlines + | + | tmpbuf + | tmpbuf + +Help on class vd_failure_t in module ida_hexrays: + +class vd_failure_t(builtins.object) + | Proxy of C++ vd_failure_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> vd_failure_t + | __init__(self, code, ea, buf=None) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | + | __init__(self, code, ea, buf) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & + | + | __init__(self, _hf) -> vd_failure_t + | + | @param _hf: hexrays_failure_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vd_failure_t(...) + | delete_vd_failure_t(self) + | + | desc(self, *args) -> 'qstring' + | desc(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hf + | hf + | + | thisown + | The membership flag + +Help on class vd_interr_t in module ida_hexrays: + +class vd_interr_t(vd_failure_t) + | Proxy of C++ vd_interr_t class. + | + | Method resolution order: + | vd_interr_t + | vd_failure_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ea, buf) -> vd_interr_t + | + | @param ea: ea_t + | @param buf: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vd_interr_t(...) + | delete_vd_interr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from vd_failure_t: + | + | desc(self, *args) -> 'qstring' + | desc(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vd_failure_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hf + | hf + +Help on class vd_printer_t in module ida_hexrays: + +class vd_printer_t(builtins.object) + | Proxy of C++ vd_printer_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> vd_printer_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vd_printer_t(...) + | delete_vd_printer_t(self) + | + | _print(self, *args) -> 'int' + | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hdrlines + | hdrlines + | + | thisown + | The membership flag + | + | tmpbuf + | tmpbuf + +Help on class vdloc_t in module ida_hexrays: + +class vdloc_t(ida_typeinf.argloc_t) + | Proxy of C++ vdloc_t class. + | + | Method resolution order: + | vdloc_t + | ida_typeinf.argloc_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __init__(self, *args) + | __init__(self) -> vdloc_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vdloc_t(...) + | delete_vdloc_t(self) + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: vdloc_t const & + | + | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, r1) + | + | @param r1: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_typeinf.argloc_t: + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_typeinf.argloc_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class vdui_t in module ida_hexrays: + +class vdui_t(builtins.object) + | Proxy of C++ vdui_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vdui_t(...) + | delete_vdui_t(self) + | + | calc_cmt_type(self, *args) -> 'cmt_type_t' + | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types + | + | clear(self, *args) -> 'void' + | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. + | + | collapse_item(self, *args) -> 'bool' + | collapse_item(self, hide) -> bool + | Collapse/uncollapse item. This function collapses the current item. + | + | @param hide: (C++: bool) + | @return: false if failed. + | + | collapse_lvars(self, *args) -> 'bool' + | collapse_lvars(self, hide) -> bool + | Collapse/uncollapse local variable declarations. + | + | @param hide: (C++: bool) + | @return: false if failed. + | + | ctree_to_disasm(self, *args) -> 'bool' + | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed + | + | del_orphan_cmts(self, *args) -> 'bool' + | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true + | + | edit_cmt(self, *args) -> 'bool' + | edit_cmt(self, loc) -> bool + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled + | + | edit_func_cmt(self, *args) -> 'bool' + | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled + | + | get_current_item(self, *args) -> 'bool' + | get_current_item(self, idv) -> bool + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed + | + | get_current_label(self, *args) -> 'int' + | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called + | + | get_number(self, *args) -> 'cnumber_t *' + | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. + | + | in_ctree(self, *args) -> 'bool' + | in_ctree(self) -> bool + | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area + | + | invert_bits(self, *args) -> 'bool' + | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. + | + | invert_sign(self, *args) -> 'bool' + | invert_sign(self) -> bool + | Negate a number. This function negates the current number. + | + | @return: false if failed. + | + | jump_enter(self, *args) -> 'bool' + | jump_enter(self, idv, omflags) -> bool + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info + | + | map_lvar(self, *args) -> 'bool' + | map_lvar(self, frm, to) -> bool + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed + | + | refresh_cpos(self, *args) -> 'bool' + | refresh_cpos(self, idv) -> bool + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed + | + | refresh_ctext(self, *args) -> 'void' + | refresh_ctext(self, activate=True) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) + | + | refresh_view(self, *args) -> 'void' + | refresh_view(self, redo_mba) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() + | + | rename_global(self, *args) -> 'bool' + | rename_global(self, ea) -> bool + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled + | + | rename_label(self, *args) -> 'bool' + | rename_label(self, label) -> bool + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled + | + | rename_lvar(self, *args) -> 'bool' + | rename_lvar(self, v, name, is_user_name) -> bool + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed + | + | rename_strmem(self, *args) -> 'bool' + | rename_strmem(self, sptr, mptr) -> bool + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled + | + | set_global_type(self, *args) -> 'bool' + | set_global_type(self, ea) -> bool + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled + | + | set_locked(self, *args) -> 'bool' + | set_locked(self, v) -> bool + | + | @param v: bool + | + | set_lvar_cmt(self, *args) -> 'bool' + | set_lvar_cmt(self, v, cmt) -> bool + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed + | + | set_lvar_type(self, *args) -> 'bool' + | set_lvar_type(self, v, type) -> bool + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed + | + | set_noptr_lvar(self, *args) -> 'bool' + | set_noptr_lvar(self, v) -> bool + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed + | + | set_num_enum(self, *args) -> 'bool' + | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled + | + | set_num_radix(self, *args) -> 'bool' + | set_num_radix(self, base) -> bool + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed + | + | set_num_stroff(self, *args) -> 'bool' + | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled + | + | set_strmem_type(self, *args) -> 'bool' + | set_strmem_type(self, sptr, mptr) -> bool + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled + | + | set_valid(self, *args) -> 'void' + | set_valid(self, v) + | + | @param v: bool + | + | set_visible(self, *args) -> 'void' + | set_visible(self, v) + | + | @param v: bool + | + | split_item(self, *args) -> 'bool' + | split_item(self, split) -> bool + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. + | + | switch_to(self, *args) -> 'void' + | switch_to(self, f, activate) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? + | + | ui_edit_lvar_cmt(self, *args) -> 'bool' + | ui_edit_lvar_cmt(self, v) -> bool + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_map_lvar(self, *args) -> 'bool' + | ui_map_lvar(self, v) -> bool + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_rename_lvar(self, *args) -> 'bool' + | ui_rename_lvar(self, v) -> bool + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_set_call_type(self, *args) -> 'bool' + | ui_set_call_type(self, e) -> bool + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled + | + | ui_set_lvar_type(self, *args) -> 'bool' + | ui_set_lvar_type(self, v) -> bool + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_unmap_lvar(self, *args) -> 'bool' + | ui_unmap_lvar(self, v) -> bool + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. + | + | visible(self, *args) -> 'bool' + | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cfunc + | cfunc + | + | cpos + | cpos + | + | ct + | ct + | + | flags + | flags + | + | head + | head + | + | item + | item + | + | last_code + | last_code + | + | mba + | mba + | + | tail + | tail + | + | thisown + | The membership flag + | + | toplevel + | toplevel + | + | view_idx + | view_idx + +Help on class vivl_t in module ida_hexrays: + +class vivl_t(voff_t) + | Proxy of C++ vivl_t class. + | + | Method resolution order: + | vivl_t + | voff_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __eq__(self, mop) -> bool + | + | @param mop: mop_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __init__(self, *args) + | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | + | __init__(self, ch) -> vivl_t + | + | @param ch: chain_t const & + | + | __init__(self, op) -> vivl_t + | + | @param op: mop_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vivl_t(...) + | delete_vivl_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: vivl_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, voff2) -> bool + | Does our value interval contain the specified value offset? + | + | @param voff2: (C++: const voff_t &) voff_t const & + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | extend_to_cover(self, *args) -> 'bool' + | extend_to_cover(self, r) -> bool + | Extend a value interval using another value interval of the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success + | + | includes(self, *args) -> 'bool' + | includes(self, r) -> bool + | Does our value interval include another? + | + | @param r: (C++: const vivl_t &) vivl_t const & + | + | intersect(self, *args) -> 'uval_t' + | intersect(self, r) -> uval_t + | Intersect value intervals the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection + | + | overlap(self, *args) -> 'bool' + | overlap(self, r) -> bool + | Do two value intervals overlap? + | + | @param r: (C++: const vivl_t &) vivl_t const & + | + | set(self, *args) -> 'void' + | set(self, _type, _off, _size=0) + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | + | set(self, voff, _size) + | + | @param voff: voff_t const & + | @param _size: int + | + | set_reg(self, *args) -> 'void' + | set_reg(self, mreg, sz=0) + | + | @param mreg: mreg_t + | @param sz: int + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, stkoff, sz=0) + | + | @param stkoff: sval_t + | @param sz: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | size + | size + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from voff_t: + | + | add(self, *args) -> 'voff_t' + | add(self, width) -> voff_t + | + | @param width: int + | + | defined(self, *args) -> 'bool' + | defined(self) -> bool + | + | diff(self, *args) -> 'sval_t' + | diff(self, r) -> sval_t + | + | @param r: voff_t const & + | + | get_reg(self, *args) -> 'mreg_t' + | get_reg(self) -> mreg_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | + | inc(self, *args) -> 'void' + | inc(self, delta) + | + | @param delta: sval_t + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | + | undef(self, *args) -> 'void' + | undef(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from voff_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | type + | type + +Help on class voff_t in module ida_hexrays: + +class voff_t(builtins.object) + | Proxy of C++ voff_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: voff_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: voff_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: voff_t const & + | + | __init__(self, *args) + | __init__(self) -> voff_t + | __init__(self, _type, _off) -> voff_t + | + | @param _type: mopt_t + | @param _off: sval_t + | + | __init__(self, op) -> voff_t + | + | @param op: mop_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: voff_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: voff_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: voff_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_voff_t(...) + | delete_voff_t(self) + | + | add(self, *args) -> 'voff_t' + | add(self, width) -> voff_t + | + | @param width: int + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: voff_t const & + | + | defined(self, *args) -> 'bool' + | defined(self) -> bool + | + | diff(self, *args) -> 'sval_t' + | diff(self, r) -> sval_t + | + | @param r: voff_t const & + | + | get_reg(self, *args) -> 'mreg_t' + | get_reg(self) -> mreg_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | + | inc(self, *args) -> 'void' + | inc(self, delta) + | + | @param delta: sval_t + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | + | set(self, *args) -> 'void' + | set(self, _type, _off) + | + | @param _type: mopt_t + | @param _off: sval_t + | + | set_reg(self, *args) -> 'void' + | set_reg(self, mreg) + | + | @param mreg: mreg_t + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, stkoff) + | + | @param stkoff: sval_t + | + | undef(self, *args) -> 'void' + | undef(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_ida"s docstring: +""" +Contains the inf structure definition and some functions common to the whole IDA +project. + +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. + +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" + +Help on function __make_idainfo_accessors in module ida_ida: + +__make_idainfo_accessors(attr, getter_name=None, setter_name=None) + +Help on function __make_idainfo_bound in module ida_ida: + +__make_idainfo_bound(func, attr) + +Help on function __make_idainfo_getter in module ida_ida: + +__make_idainfo_getter(name) + +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + +Help on function __wrap_hooks_callback in module ida_ida: + +__wrap_hooks_callback(klass, new_name, old_name, do_call) + +Help on function calc_default_idaplace_flags in module ida_ida: + +calc_default_idaplace_flags(*args) -> 'int' + calc_default_idaplace_flags() -> int + Get default disassembly line options. + +Help on class compiler_info_t in module ida_ida: + +class compiler_info_t(builtins.object) + | Proxy of C++ compiler_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> compiler_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_compiler_info_t(...) + | delete_compiler_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cm + | cm + | + | defalign + | defalign + | + | id + | id + | + | size_b + | size_b + | + | size_e + | size_e + | + | size_i + | size_i + | + | size_l + | size_l + | + | size_ldbl + | size_ldbl + | + | size_ll + | size_ll + | + | size_s + | size_s + | + | thisown + | The membership flag + +Help on function delinf in module ida_ida: + +delinf(*args) -> 'bool' + delinf(tag) -> bool + Undefine a program specific information + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success + +Help on function get_dbctx_id in module ida_ida: + +get_dbctx_id(*args) -> 'ssize_t' + get_dbctx_id() -> ssize_t + Get the current database context ID + + @return: the database context ID, or -1 if no current database + +Help on function get_dbctx_qty in module ida_ida: + +get_dbctx_qty(*args) -> 'size_t' + get_dbctx_qty() -> size_t + Get number of database contexts + + @return: number of database contexts + +Help on function getinf_str in module ida_ida: + +getinf_str(*args) -> 'qstring *' + getinf_str(tag) -> str + Get program specific information (a non-scalar value) + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) + +Help on class idainfo in module ida_ida: + +class idainfo(builtins.object) + | Proxy of C++ idainfo class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | _get_lflags(self, *args) -> 'uint32' + | _get_lflags(self) -> uint32 + | + | _set_lflags(self, *args) -> 'void' + | _set_lflags(self, _f) + | + | Parameters + | ---------- + | _f: uint32 + | + | big_arg_align = __func(self, *args) + | + | gen_lzero = __func(self, *args) + | + | gen_null = __func(self, *args) + | + | gen_tryblks = __func(self, *args) + | + | get_abiname(self, *args) -> 'qstring' + | get_abiname(self) -> qstring + | + | get_demname_form = __func(self, *args) + | + | get_pack_mode = __func(self, *args) + | + | is_32bit = __func(self, *args) + | + | is_64bit = __func(self, *args) + | + | is_auto_enabled = __func(self, *args) + | + | is_be = __func(self, *args) + | + | is_dll = __func(self, *args) + | + | is_flat_off32 = __func(self, *args) + | + | is_graph_view = __func(self, *args) + | + | is_hard_float = __func(self, *args) + | + | is_kernel_mode = __func(self, *args) + | + | is_mem_aligned4 = __func(self, *args) + | + | is_snapshot = __func(self, *args) + | + | is_wide_high_byte_first = __func(self, *args) + | + | like_binary = __func(self, *args) + | + | line_pref_with_seg = __func(self, *args) + | + | loading_idc = __func(self, *args) + | + | map_stkargs = __func(self, *args) + | + | pack_stkargs = __func(self, *args) + | + | readonly_idb = __func(self, *args) + | + | set_64bit = __func(self, *args) + | + | set_auto_enabled = __func(self, *args) + | + | set_be = __func(self, *args) + | + | set_gen_lzero = __func(self, *args) + | + | set_gen_null = __func(self, *args) + | + | set_gen_tryblks = __func(self, *args) + | + | set_graph_view = __func(self, *args) + | + | set_line_pref_with_seg = __func(self, *args) + | + | set_pack_mode = __func(self, *args) + | + | set_show_auto = __func(self, *args) + | + | set_show_line_pref = __func(self, *args) + | + | set_show_void = __func(self, *args) + | + | set_wide_high_byte_first = __func(self, *args) + | + | show_auto = __func(self, *args) + | + | show_line_pref = __func(self, *args) + | + | show_void = __func(self, *args) + | + | stack_ldbl = __func(self, *args) + | + | stack_varargs = __func(self, *args) + | + | use_allasm = __func(self, *args) + | + | use_gcc_layout = __func(self, *args) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | abibits + | abibits + | + | abiname + | get_abiname(self) -> qstring + | + | af + | af + | + | af2 + | af2 + | + | appcall_options + | appcall_options + | + | apptype + | apptype + | + | asmtype + | asmtype + | + | baseaddr + | baseaddr + | + | bin_prefix_size + | bin_prefix_size + | + | cc + | cc + | + | cmt_indent + | cmt_indent + | + | database_change_count + | database_change_count + | + | datatypes + | datatypes + | + | demnames + | demnames + | + | filetype + | filetype + | + | highoff + | highoff + | + | indent + | indent + | + | lenxref + | lenxref + | + | lflags + | _get_lflags(self) -> uint32 + | + | listnames + | listnames + | + | long_demnames + | long_demnames + | + | lowoff + | lowoff + | + | main + | main + | + | margin + | margin + | + | maxEA + | + | max_autoname_len + | max_autoname_len + | + | max_ea + | max_ea + | + | maxref + | maxref + | + | minEA + | + | min_ea + | min_ea + | + | nametype + | nametype + | + | omax_ea + | omax_ea + | + | omin_ea + | omin_ea + | + | ostype + | ostype + | + | outflags + | outflags + | + | procName + | + | procname + | procname + | + | refcmtnum + | refcmtnum + | + | s_cmtflg + | s_cmtflg + | + | s_genflags + | s_genflags + | + | s_limiter + | s_limiter + | + | s_prefflag + | s_prefflag + | + | s_xrefflag + | s_xrefflag + | + | short_demnames + | short_demnames + | + | specsegs + | specsegs + | + | start_cs + | start_cs + | + | start_ea + | start_ea + | + | start_ip + | start_ip + | + | start_sp + | start_sp + | + | start_ss + | start_ss + | + | strlit_break + | strlit_break + | + | strlit_flags + | strlit_flags + | + | strlit_pref + | strlit_pref + | + | strlit_sernum + | strlit_sernum + | + | strlit_zeroes + | strlit_zeroes + | + | strtype + | strtype + | + | tag + | tag + | + | thisown + | The membership flag + | + | type_xrefnum + | type_xrefnum + | + | version + | version + | + | xrefnum + | xrefnum + +Help on function inf_big_arg_align in module ida_ida: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + + inf_big_arg_align() -> bool + +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) -> 'uchar' + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) -> 'bool' + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + +Help on function inf_gen_lzero in module ida_ida: + +inf_gen_lzero(*args) -> 'bool' + inf_gen_lzero() -> bool + +Help on function inf_gen_null in module ida_ida: + +inf_gen_null(*args) -> 'bool' + inf_gen_null() -> bool + +Help on function inf_gen_tryblks in module ida_ida: + +inf_gen_tryblks(*args) -> 'bool' + inf_gen_tryblks() -> bool + +Help on function inf_get_demname_form in module ida_ida: + +inf_get_demname_form(*args) -> 'uchar' + inf_get_demname_form() -> uchar + Get DEMNAM_MASK bits of #demnames. + +Help on function inf_get_pack_mode in module ida_ida: + +inf_get_pack_mode(*args) -> 'int' + inf_get_pack_mode() -> int + +Help on function idainfo_is_32bit in module ida_ida: + +idainfo_is_32bit() + +Help on function inf_is_64bit in module ida_ida: + +inf_is_64bit(*args) -> 'bool' + inf_is_64bit() -> bool + +Help on function inf_is_auto_enabled in module ida_ida: + +inf_is_auto_enabled(*args) -> 'bool' + inf_is_auto_enabled() -> bool + +Help on function inf_is_be in module ida_ida: + +inf_is_be(*args) -> 'bool' + inf_is_be() -> bool + +Help on function inf_is_dll in module ida_ida: + +inf_is_dll(*args) -> 'bool' + inf_is_dll() -> bool + +Help on function inf_is_flat_off32 in module ida_ida: + +inf_is_flat_off32(*args) -> 'bool' + inf_is_flat_off32() -> bool + +Help on function inf_is_graph_view in module ida_ida: + +inf_is_graph_view(*args) -> 'bool' + inf_is_graph_view() -> bool + +Help on function inf_is_hard_float in module ida_ida: + +inf_is_hard_float(*args) -> 'bool' + inf_is_hard_float() -> bool + +Help on function inf_is_kernel_mode in module ida_ida: + +inf_is_kernel_mode(*args) -> 'bool' + inf_is_kernel_mode() -> bool + +Help on function inf_is_mem_aligned4 in module ida_ida: + +inf_is_mem_aligned4(*args) -> 'bool' + inf_is_mem_aligned4() -> bool + +Help on function inf_is_snapshot in module ida_ida: + +inf_is_snapshot(*args) -> 'bool' + inf_is_snapshot() -> bool + +Help on function inf_is_wide_high_byte_first in module ida_ida: + +inf_is_wide_high_byte_first(*args) -> 'bool' + inf_is_wide_high_byte_first() -> bool + +Help on function inf_like_binary in module ida_ida: + +inf_like_binary(*args) -> 'bool' + inf_like_binary() -> bool + +Help on function inf_line_pref_with_seg in module ida_ida: + +inf_line_pref_with_seg(*args) -> 'bool' + inf_line_pref_with_seg() -> bool + +Help on function inf_loading_idc in module ida_ida: + +inf_loading_idc(*args) -> 'bool' + inf_loading_idc() -> bool + +Help on function inf_map_stkargs in module ida_ida: + +inf_map_stkargs(*args) -> 'bool' + inf_map_stkargs() -> bool + +Help on function inf_pack_stkargs in module ida_ida: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + + inf_pack_stkargs() -> bool + +Help on function inf_readonly_idb in module ida_ida: + +inf_readonly_idb(*args) -> 'bool' + inf_readonly_idb() -> bool + +Help on function inf_set_64bit in module ida_ida: + +inf_set_64bit(*args) -> 'bool' + inf_set_64bit(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_auto_enabled in module ida_ida: + +inf_set_auto_enabled(*args) -> 'bool' + inf_set_auto_enabled(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_be in module ida_ida: + +inf_set_be(*args) -> 'bool' + inf_set_be(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_lzero in module ida_ida: + +inf_set_gen_lzero(*args) -> 'bool' + inf_set_gen_lzero(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_null in module ida_ida: + +inf_set_gen_null(*args) -> 'bool' + inf_set_gen_null(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_tryblks in module ida_ida: + +inf_set_gen_tryblks(*args) -> 'bool' + inf_set_gen_tryblks(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_graph_view in module ida_ida: + +inf_set_graph_view(*args) -> 'bool' + inf_set_graph_view(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_line_pref_with_seg in module ida_ida: + +inf_set_line_pref_with_seg(*args) -> 'bool' + inf_set_line_pref_with_seg(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_pack_mode in module ida_ida: + +inf_set_pack_mode(*args) -> 'int' + inf_set_pack_mode(pack_mode) -> int + + @param pack_mode: int + +Help on function inf_set_show_auto in module ida_ida: + +inf_set_show_auto(*args) -> 'bool' + inf_set_show_auto(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_line_pref in module ida_ida: + +inf_set_show_line_pref(*args) -> 'bool' + inf_set_show_line_pref(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_void in module ida_ida: + +inf_set_show_void(*args) -> 'bool' + inf_set_show_void(_v=True) -> bool + + @param _v: bool + +Help on function <lambda> in module ida_ida: + +<lambda> lambda *args + +Help on function inf_set_wide_high_byte_first in module ida_ida: + +inf_set_wide_high_byte_first(*args) -> 'bool' + inf_set_wide_high_byte_first(_v=True) -> bool + + @param _v: bool + +Help on function inf_show_auto in module ida_ida: + +inf_show_auto(*args) -> 'bool' + inf_show_auto() -> bool + +Help on function inf_show_line_pref in module ida_ida: + +inf_show_line_pref(*args) -> 'bool' + inf_show_line_pref() -> bool + +Help on function inf_show_void in module ida_ida: + +inf_show_void(*args) -> 'bool' + inf_show_void() -> bool + +Help on function inf_stack_ldbl in module ida_ida: + +inf_stack_ldbl(*args) -> 'bool' + inf_stack_ldbl() -> bool + +Help on function inf_stack_varargs in module ida_ida: + +inf_stack_varargs(*args) -> 'bool' + inf_stack_varargs() -> bool + +Help on function inf_use_allasm in module ida_ida: + +inf_use_allasm(*args) -> 'bool' + inf_use_allasm() -> bool + +Help on function inf_use_gcc_layout in module ida_ida: + +inf_use_gcc_layout(*args) -> 'bool' + inf_use_gcc_layout() -> bool + +Help on function inf_abi_set_by_user in module ida_ida: + +inf_abi_set_by_user(*args) -> 'bool' + inf_abi_set_by_user() -> bool + +Help on function inf_allow_non_matched_ops in module ida_ida: + +inf_allow_non_matched_ops(*args) -> 'bool' + inf_allow_non_matched_ops() -> bool + +Help on function inf_allow_sigmulti in module ida_ida: + +inf_allow_sigmulti(*args) -> 'bool' + inf_allow_sigmulti() -> bool + +Help on function inf_append_sigcmt in module ida_ida: + +inf_append_sigcmt(*args) -> 'bool' + inf_append_sigcmt() -> bool + +Help on function inf_check_manual_ops in module ida_ida: + +inf_check_manual_ops(*args) -> 'bool' + inf_check_manual_ops() -> bool + +Help on function inf_check_unicode_strlits in module ida_ida: + +inf_check_unicode_strlits(*args) -> 'bool' + inf_check_unicode_strlits() -> bool + +Help on function inf_coagulate_code in module ida_ida: + +inf_coagulate_code(*args) -> 'bool' + inf_coagulate_code() -> bool + +Help on function inf_coagulate_data in module ida_ida: + +inf_coagulate_data(*args) -> 'bool' + inf_coagulate_data() -> bool + +Help on function inf_compress_idb in module ida_ida: + +inf_compress_idb(*args) -> 'bool' + inf_compress_idb() -> bool + +Help on function inf_create_all_xrefs in module ida_ida: + +inf_create_all_xrefs(*args) -> 'bool' + inf_create_all_xrefs() -> bool + +Help on function inf_create_func_from_call in module ida_ida: + +inf_create_func_from_call(*args) -> 'bool' + inf_create_func_from_call() -> bool + +Help on function inf_create_func_from_ptr in module ida_ida: + +inf_create_func_from_ptr(*args) -> 'bool' + inf_create_func_from_ptr() -> bool + +Help on function inf_create_func_tails in module ida_ida: + +inf_create_func_tails(*args) -> 'bool' + inf_create_func_tails() -> bool + +Help on function inf_create_jump_tables in module ida_ida: + +inf_create_jump_tables(*args) -> 'bool' + inf_create_jump_tables() -> bool + +Help on function inf_create_off_on_dref in module ida_ida: + +inf_create_off_on_dref(*args) -> 'bool' + inf_create_off_on_dref() -> bool + +Help on function inf_create_off_using_fixup in module ida_ida: + +inf_create_off_using_fixup(*args) -> 'bool' + inf_create_off_using_fixup() -> bool + +Help on function inf_create_strlit_on_xref in module ida_ida: + +inf_create_strlit_on_xref(*args) -> 'bool' + inf_create_strlit_on_xref() -> bool + +Help on function inf_data_offset in module ida_ida: + +inf_data_offset(*args) -> 'bool' + inf_data_offset() -> bool + +Help on function inf_dbg_no_store_path in module ida_ida: + +inf_dbg_no_store_path(*args) -> 'bool' + inf_dbg_no_store_path() -> bool + +Help on function inf_decode_fpp in module ida_ida: + +inf_decode_fpp(*args) -> 'bool' + inf_decode_fpp() -> bool + +Help on function inf_del_no_xref_insns in module ida_ida: + +inf_del_no_xref_insns(*args) -> 'bool' + inf_del_no_xref_insns() -> bool + +Help on function inf_final_pass in module ida_ida: + +inf_final_pass(*args) -> 'bool' + inf_final_pass() -> bool + +Help on function inf_full_sp_ana in module ida_ida: + +inf_full_sp_ana(*args) -> 'bool' + inf_full_sp_ana() -> bool + +Help on function inf_gen_assume in module ida_ida: + +inf_gen_assume(*args) -> 'bool' + inf_gen_assume() -> bool + +Help on function inf_gen_org in module ida_ida: + +inf_gen_org(*args) -> 'bool' + inf_gen_org() -> bool + +Help on function inf_get_abibits in module ida_ida: + +inf_get_abibits(*args) -> 'uint32' + inf_get_abibits() -> uint32 + +Help on function inf_get_af in module ida_ida: + +inf_get_af(*args) -> 'uint32' + inf_get_af() -> uint32 + +Help on function inf_get_af2 in module ida_ida: + +inf_get_af2(*args) -> 'uint32' + inf_get_af2() -> uint32 + +Help on function inf_get_af2_low in module ida_ida: + +inf_get_af2_low(*args) -> 'ushort' + inf_get_af2_low() -> ushort + Get/set low 16bit half of inf.af2. + +Help on function inf_get_af_high in module ida_ida: + +inf_get_af_high(*args) -> 'ushort' + inf_get_af_high() -> ushort + +Help on function inf_get_af_low in module ida_ida: + +inf_get_af_low(*args) -> 'ushort' + inf_get_af_low() -> ushort + Get/set low/high 16bit halves of inf.af. + +Help on function inf_get_app_bitness in module ida_ida: + +inf_get_app_bitness(*args) -> 'uint' + inf_get_app_bitness() -> uint + +Help on function inf_get_appcall_options in module ida_ida: + +inf_get_appcall_options(*args) -> 'uint32' + inf_get_appcall_options() -> uint32 + +Help on function inf_get_apptype in module ida_ida: + +inf_get_apptype(*args) -> 'ushort' + inf_get_apptype() -> ushort + +Help on function inf_get_asmtype in module ida_ida: + +inf_get_asmtype(*args) -> 'uchar' + inf_get_asmtype() -> uchar + +Help on function inf_get_baseaddr in module ida_ida: + +inf_get_baseaddr(*args) -> 'uval_t' + inf_get_baseaddr() -> uval_t + +Help on function inf_get_bin_prefix_size in module ida_ida: + +inf_get_bin_prefix_size(*args) -> 'short' + inf_get_bin_prefix_size() -> short + +Help on function inf_get_cc in module ida_ida: + +inf_get_cc(*args) -> 'bool' + inf_get_cc(out) -> bool + + @param out: compiler_info_t * + +Help on function inf_get_cc_cm in module ida_ida: + +inf_get_cc_cm(*args) -> 'cm_t' + inf_get_cc_cm() -> cm_t + +Help on function inf_get_cc_defalign in module ida_ida: + +inf_get_cc_defalign(*args) -> 'uchar' + inf_get_cc_defalign() -> uchar + +Help on function inf_get_cc_id in module ida_ida: + +inf_get_cc_id(*args) -> 'comp_t' + inf_get_cc_id() -> comp_t + +Help on function inf_get_cc_size_b in module ida_ida: + +inf_get_cc_size_b(*args) -> 'uchar' + inf_get_cc_size_b() -> uchar + +Help on function inf_get_cc_size_e in module ida_ida: + +inf_get_cc_size_e(*args) -> 'uchar' + inf_get_cc_size_e() -> uchar + +Help on function inf_get_cc_size_i in module ida_ida: + +inf_get_cc_size_i(*args) -> 'uchar' + inf_get_cc_size_i() -> uchar + +Help on function inf_get_cc_size_l in module ida_ida: + +inf_get_cc_size_l(*args) -> 'uchar' + inf_get_cc_size_l() -> uchar + +Help on function inf_get_cc_size_ldbl in module ida_ida: + +inf_get_cc_size_ldbl(*args) -> 'uchar' + inf_get_cc_size_ldbl() -> uchar + +Help on function inf_get_cc_size_ll in module ida_ida: + +inf_get_cc_size_ll(*args) -> 'uchar' + inf_get_cc_size_ll() -> uchar + +Help on function inf_get_cc_size_s in module ida_ida: + +inf_get_cc_size_s(*args) -> 'uchar' + inf_get_cc_size_s() -> uchar + +Help on function inf_get_cmtflg in module ida_ida: + +inf_get_cmtflg(*args) -> 'uchar' + inf_get_cmtflg() -> uchar + +Help on function inf_get_database_change_count in module ida_ida: + +inf_get_database_change_count(*args) -> 'uint32' + inf_get_database_change_count() -> uint32 + +Help on function inf_get_datatypes in module ida_ida: + +inf_get_datatypes(*args) -> 'uval_t' + inf_get_datatypes() -> uval_t + +Help on function inf_get_demnames in module ida_ida: + +inf_get_demnames(*args) -> 'uchar' + inf_get_demnames() -> uchar + +Help on function inf_get_filetype in module ida_ida: + +inf_get_filetype(*args) -> 'filetype_t' + inf_get_filetype() -> filetype_t + +Help on function inf_get_genflags in module ida_ida: + +inf_get_genflags(*args) -> 'ushort' + inf_get_genflags() -> ushort + +Help on function inf_get_highoff in module ida_ida: + +inf_get_highoff(*args) -> 'ea_t' + inf_get_highoff() -> ea_t + +Help on function inf_get_indent in module ida_ida: + +inf_get_indent(*args) -> 'uchar' + inf_get_indent() -> uchar + +Help on function inf_get_lenxref in module ida_ida: + +inf_get_lenxref(*args) -> 'ushort' + inf_get_lenxref() -> ushort + +Help on function inf_get_lflags in module ida_ida: + +inf_get_lflags(*args) -> 'uint32' + inf_get_lflags() -> uint32 + +Help on function inf_get_limiter in module ida_ida: + +inf_get_limiter(*args) -> 'uchar' + inf_get_limiter() -> uchar + +Help on function inf_get_listnames in module ida_ida: + +inf_get_listnames(*args) -> 'uchar' + inf_get_listnames() -> uchar + +Help on function inf_get_long_demnames in module ida_ida: + +inf_get_long_demnames(*args) -> 'uint32' + inf_get_long_demnames() -> uint32 + +Help on function inf_get_lowoff in module ida_ida: + +inf_get_lowoff(*args) -> 'ea_t' + inf_get_lowoff() -> ea_t + +Help on function inf_get_main in module ida_ida: + +inf_get_main(*args) -> 'ea_t' + inf_get_main() -> ea_t + +Help on function inf_get_margin in module ida_ida: + +inf_get_margin(*args) -> 'ushort' + inf_get_margin() -> ushort + +Help on function inf_get_max_autoname_len in module ida_ida: + +inf_get_max_autoname_len(*args) -> 'ushort' + inf_get_max_autoname_len() -> ushort + +Help on function inf_get_max_ea in module ida_ida: + +inf_get_max_ea(*args) -> 'ea_t' + inf_get_max_ea() -> ea_t + +Help on function inf_get_maxref in module ida_ida: + +inf_get_maxref(*args) -> 'uval_t' + inf_get_maxref() -> uval_t + +Help on function inf_get_min_ea in module ida_ida: + +inf_get_min_ea(*args) -> 'ea_t' + inf_get_min_ea() -> ea_t + +Help on function inf_get_nametype in module ida_ida: + +inf_get_nametype(*args) -> 'char' + inf_get_nametype() -> char + +Help on function inf_get_netdelta in module ida_ida: + +inf_get_netdelta(*args) -> 'sval_t' + inf_get_netdelta() -> sval_t + +Help on function inf_get_omax_ea in module ida_ida: + +inf_get_omax_ea(*args) -> 'ea_t' + inf_get_omax_ea() -> ea_t + +Help on function inf_get_omin_ea in module ida_ida: + +inf_get_omin_ea(*args) -> 'ea_t' + inf_get_omin_ea() -> ea_t + +Help on function inf_get_ostype in module ida_ida: + +inf_get_ostype(*args) -> 'ushort' + inf_get_ostype() -> ushort + +Help on function inf_get_outflags in module ida_ida: + +inf_get_outflags(*args) -> 'uint32' + inf_get_outflags() -> uint32 + +Help on function inf_get_prefflag in module ida_ida: + +inf_get_prefflag(*args) -> 'uchar' + inf_get_prefflag() -> uchar + +Help on function inf_get_privrange in module ida_ida: + +inf_get_privrange(*args) -> 'range_t' + inf_get_privrange(out) -> bool + + @param out: range_t * + + inf_get_privrange() -> range_t + +Help on function inf_get_privrange_end_ea in module ida_ida: + +inf_get_privrange_end_ea(*args) -> 'ea_t' + inf_get_privrange_end_ea() -> ea_t + +Help on function inf_get_privrange_start_ea in module ida_ida: + +inf_get_privrange_start_ea(*args) -> 'ea_t' + inf_get_privrange_start_ea() -> ea_t + +Help on function inf_get_procname in module ida_ida: + +inf_get_procname(*args) -> 'size_t' + inf_get_procname() -> str + +Help on function inf_get_refcmtnum in module ida_ida: + +inf_get_refcmtnum(*args) -> 'uchar' + inf_get_refcmtnum() -> uchar + +Help on function inf_get_short_demnames in module ida_ida: + +inf_get_short_demnames(*args) -> 'uint32' + inf_get_short_demnames() -> uint32 + +Help on function inf_get_specsegs in module ida_ida: + +inf_get_specsegs(*args) -> 'uchar' + inf_get_specsegs() -> uchar + +Help on function inf_get_start_cs in module ida_ida: + +inf_get_start_cs(*args) -> 'sel_t' + inf_get_start_cs() -> sel_t + +Help on function inf_get_start_ea in module ida_ida: + +inf_get_start_ea(*args) -> 'ea_t' + inf_get_start_ea() -> ea_t + +Help on function inf_get_start_ip in module ida_ida: + +inf_get_start_ip(*args) -> 'ea_t' + inf_get_start_ip() -> ea_t + +Help on function inf_get_start_sp in module ida_ida: + +inf_get_start_sp(*args) -> 'ea_t' + inf_get_start_sp() -> ea_t + +Help on function inf_get_start_ss in module ida_ida: + +inf_get_start_ss(*args) -> 'sel_t' + inf_get_start_ss() -> sel_t + +Help on function inf_get_strlit_break in module ida_ida: + +inf_get_strlit_break(*args) -> 'uchar' + inf_get_strlit_break() -> uchar + +Help on function inf_get_strlit_flags in module ida_ida: + +inf_get_strlit_flags(*args) -> 'uchar' + inf_get_strlit_flags() -> uchar + +Help on function inf_get_strlit_pref in module ida_ida: + +inf_get_strlit_pref(*args) -> 'size_t' + inf_get_strlit_pref() -> str + +Help on function inf_get_strlit_sernum in module ida_ida: + +inf_get_strlit_sernum(*args) -> 'uval_t' + inf_get_strlit_sernum() -> uval_t + +Help on function inf_get_strlit_zeroes in module ida_ida: + +inf_get_strlit_zeroes(*args) -> 'char' + inf_get_strlit_zeroes() -> char + +Help on function inf_get_strtype in module ida_ida: + +inf_get_strtype(*args) -> 'int32' + inf_get_strtype() -> int32 + +Help on function inf_get_type_xrefnum in module ida_ida: + +inf_get_type_xrefnum(*args) -> 'uchar' + inf_get_type_xrefnum() -> uchar + +Help on function inf_get_version in module ida_ida: + +inf_get_version(*args) -> 'ushort' + inf_get_version() -> ushort + +Help on function inf_get_xrefflag in module ida_ida: + +inf_get_xrefflag(*args) -> 'uchar' + inf_get_xrefflag() -> uchar + +Help on function inf_get_xrefnum in module ida_ida: + +inf_get_xrefnum(*args) -> 'uchar' + inf_get_xrefnum() -> uchar + +Help on function inf_guess_func_type in module ida_ida: + +inf_guess_func_type(*args) -> 'bool' + inf_guess_func_type() -> bool + +Help on function inf_handle_eh in module ida_ida: + +inf_handle_eh(*args) -> 'bool' + inf_handle_eh() -> bool + +Help on function inf_handle_rtti in module ida_ida: + +inf_handle_rtti(*args) -> 'bool' + inf_handle_rtti() -> bool + +Help on function inf_hide_comments in module ida_ida: + +inf_hide_comments(*args) -> 'bool' + inf_hide_comments() -> bool + +Help on function inf_hide_libfuncs in module ida_ida: + +inf_hide_libfuncs(*args) -> 'bool' + inf_hide_libfuncs() -> bool + +Help on function inf_huge_arg_align in module ida_ida: + +inf_huge_arg_align(*args) -> 'bool' + inf_huge_arg_align() -> bool + +Help on function inf_inc_database_change_count in module ida_ida: + +inf_inc_database_change_count(*args) -> 'void' + inf_inc_database_change_count(cnt=1) + + @param cnt: int + +Help on function inf_is_16bit in module ida_ida: + +inf_is_16bit(*args) -> 'bool' + inf_is_16bit() -> bool + +Help on function inf_is_32bit_exactly in module ida_ida: + +inf_is_32bit_exactly(*args) -> 'bool' + inf_is_32bit_exactly() -> bool + +Help on function inf_is_32bit_or_higher in module ida_ida: + +inf_is_32bit_or_higher(*args) -> 'bool' + inf_is_32bit_or_higher() -> bool + +Help on function inf_is_limiter_empty in module ida_ida: + +inf_is_limiter_empty(*args) -> 'bool' + inf_is_limiter_empty() -> bool + +Help on function inf_is_limiter_thick in module ida_ida: + +inf_is_limiter_thick(*args) -> 'bool' + inf_is_limiter_thick() -> bool + +Help on function inf_is_limiter_thin in module ida_ida: + +inf_is_limiter_thin(*args) -> 'bool' + inf_is_limiter_thin() -> bool + +Help on function inf_macros_enabled in module ida_ida: + +inf_macros_enabled(*args) -> 'bool' + inf_macros_enabled() -> bool + +Help on function inf_mark_code in module ida_ida: + +inf_mark_code(*args) -> 'bool' + inf_mark_code() -> bool + +Help on function inf_no_store_user_info in module ida_ida: + +inf_no_store_user_info(*args) -> 'bool' + inf_no_store_user_info() -> bool + +Help on function inf_noflow_to_data in module ida_ida: + +inf_noflow_to_data(*args) -> 'bool' + inf_noflow_to_data() -> bool + +Help on function inf_noret_ana in module ida_ida: + +inf_noret_ana(*args) -> 'bool' + inf_noret_ana() -> bool + +Help on function inf_op_offset in module ida_ida: + +inf_op_offset(*args) -> 'bool' + inf_op_offset() -> bool + +Help on function inf_pack_idb in module ida_ida: + +inf_pack_idb(*args) -> 'bool' + inf_pack_idb() -> bool + +Help on function inf_postinc_strlit_sernum in module ida_ida: + +inf_postinc_strlit_sernum(*args) -> 'uval_t' + inf_postinc_strlit_sernum(cnt=1) -> uval_t + + @param cnt: uval_t + +Help on function inf_prefix_show_funcoff in module ida_ida: + +inf_prefix_show_funcoff(*args) -> 'bool' + inf_prefix_show_funcoff() -> bool + +Help on function inf_prefix_show_segaddr in module ida_ida: + +inf_prefix_show_segaddr(*args) -> 'bool' + inf_prefix_show_segaddr() -> bool + +Help on function inf_prefix_show_stack in module ida_ida: + +inf_prefix_show_stack(*args) -> 'bool' + inf_prefix_show_stack() -> bool + +Help on function inf_prefix_truncate_opcode_bytes in module ida_ida: + +inf_prefix_truncate_opcode_bytes(*args) -> 'bool' + inf_prefix_truncate_opcode_bytes() -> bool + +Help on function inf_propagate_regargs in module ida_ida: + +inf_propagate_regargs(*args) -> 'bool' + inf_propagate_regargs() -> bool + +Help on function inf_propagate_stkargs in module ida_ida: + +inf_propagate_stkargs(*args) -> 'bool' + inf_propagate_stkargs() -> bool + +Help on function inf_rename_jumpfunc in module ida_ida: + +inf_rename_jumpfunc(*args) -> 'bool' + inf_rename_jumpfunc() -> bool + +Help on function inf_rename_nullsub in module ida_ida: + +inf_rename_nullsub(*args) -> 'bool' + inf_rename_nullsub() -> bool + +Help on function inf_set_32bit in module ida_ida: + +inf_set_32bit(*args) -> 'bool' + inf_set_32bit(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_abi_set_by_user in module ida_ida: + +inf_set_abi_set_by_user(*args) -> 'bool' + inf_set_abi_set_by_user(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_abibits in module ida_ida: + +inf_set_abibits(*args) -> 'bool' + inf_set_abibits(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_af in module ida_ida: + +inf_set_af(*args) -> 'bool' + inf_set_af(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_af2 in module ida_ida: + +inf_set_af2(*args) -> 'bool' + inf_set_af2(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_af2_low in module ida_ida: + +inf_set_af2_low(*args) -> 'void' + inf_set_af2_low(saf) + + @param saf: ushort + +Help on function inf_set_af_high in module ida_ida: + +inf_set_af_high(*args) -> 'void' + inf_set_af_high(saf2) + + @param saf2: ushort + +Help on function inf_set_af_low in module ida_ida: + +inf_set_af_low(*args) -> 'void' + inf_set_af_low(saf) + + @param saf: ushort + +Help on function inf_set_allow_non_matched_ops in module ida_ida: + +inf_set_allow_non_matched_ops(*args) -> 'bool' + inf_set_allow_non_matched_ops(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_allow_sigmulti in module ida_ida: + +inf_set_allow_sigmulti(*args) -> 'bool' + inf_set_allow_sigmulti(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_app_bitness in module ida_ida: + +inf_set_app_bitness(*args) -> 'void' + inf_set_app_bitness(bitness) + + @param bitness: uint + +Help on function inf_set_appcall_options in module ida_ida: + +inf_set_appcall_options(*args) -> 'bool' + inf_set_appcall_options(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_append_sigcmt in module ida_ida: + +inf_set_append_sigcmt(*args) -> 'bool' + inf_set_append_sigcmt(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_apptype in module ida_ida: + +inf_set_apptype(*args) -> 'bool' + inf_set_apptype(_v) -> bool + + @param _v: ushort + +Help on function inf_set_asmtype in module ida_ida: + +inf_set_asmtype(*args) -> 'bool' + inf_set_asmtype(_v) -> bool + + @param _v: uchar + +Help on function inf_set_baseaddr in module ida_ida: + +inf_set_baseaddr(*args) -> 'bool' + inf_set_baseaddr(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_big_arg_align in module ida_ida: + +inf_set_big_arg_align(*args) -> 'bool' + inf_set_big_arg_align(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_bin_prefix_size in module ida_ida: + +inf_set_bin_prefix_size(*args) -> 'bool' + inf_set_bin_prefix_size(_v) -> bool + + @param _v: short + +Help on function inf_set_cc in module ida_ida: + +inf_set_cc(*args) -> 'bool' + inf_set_cc(_v) -> bool + + @param _v: compiler_info_t const & + +Help on function inf_set_cc_cm in module ida_ida: + +inf_set_cc_cm(*args) -> 'bool' + inf_set_cc_cm(_v) -> bool + + @param _v: cm_t + +Help on function inf_set_cc_defalign in module ida_ida: + +inf_set_cc_defalign(*args) -> 'bool' + inf_set_cc_defalign(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_id in module ida_ida: + +inf_set_cc_id(*args) -> 'bool' + inf_set_cc_id(_v) -> bool + + @param _v: comp_t + +Help on function inf_set_cc_size_b in module ida_ida: + +inf_set_cc_size_b(*args) -> 'bool' + inf_set_cc_size_b(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_e in module ida_ida: + +inf_set_cc_size_e(*args) -> 'bool' + inf_set_cc_size_e(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_i in module ida_ida: + +inf_set_cc_size_i(*args) -> 'bool' + inf_set_cc_size_i(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_l in module ida_ida: + +inf_set_cc_size_l(*args) -> 'bool' + inf_set_cc_size_l(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_ldbl in module ida_ida: + +inf_set_cc_size_ldbl(*args) -> 'bool' + inf_set_cc_size_ldbl(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_ll in module ida_ida: + +inf_set_cc_size_ll(*args) -> 'bool' + inf_set_cc_size_ll(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_s in module ida_ida: + +inf_set_cc_size_s(*args) -> 'bool' + inf_set_cc_size_s(_v) -> bool + + @param _v: uchar + +Help on function inf_set_check_manual_ops in module ida_ida: + +inf_set_check_manual_ops(*args) -> 'bool' + inf_set_check_manual_ops(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_check_unicode_strlits in module ida_ida: + +inf_set_check_unicode_strlits(*args) -> 'bool' + inf_set_check_unicode_strlits(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_cmtflg in module ida_ida: + +inf_set_cmtflg(*args) -> 'bool' + inf_set_cmtflg(_v) -> bool + + @param _v: uchar + +Help on function inf_set_coagulate_code in module ida_ida: + +inf_set_coagulate_code(*args) -> 'bool' + inf_set_coagulate_code(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_coagulate_data in module ida_ida: + +inf_set_coagulate_data(*args) -> 'bool' + inf_set_coagulate_data(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_compress_idb in module ida_ida: + +inf_set_compress_idb(*args) -> 'bool' + inf_set_compress_idb(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_all_xrefs in module ida_ida: + +inf_set_create_all_xrefs(*args) -> 'bool' + inf_set_create_all_xrefs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_func_from_call in module ida_ida: + +inf_set_create_func_from_call(*args) -> 'bool' + inf_set_create_func_from_call(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_func_from_ptr in module ida_ida: + +inf_set_create_func_from_ptr(*args) -> 'bool' + inf_set_create_func_from_ptr(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_func_tails in module ida_ida: + +inf_set_create_func_tails(*args) -> 'bool' + inf_set_create_func_tails(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_jump_tables in module ida_ida: + +inf_set_create_jump_tables(*args) -> 'bool' + inf_set_create_jump_tables(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_off_on_dref in module ida_ida: + +inf_set_create_off_on_dref(*args) -> 'bool' + inf_set_create_off_on_dref(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_off_using_fixup in module ida_ida: + +inf_set_create_off_using_fixup(*args) -> 'bool' + inf_set_create_off_using_fixup(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_strlit_on_xref in module ida_ida: + +inf_set_create_strlit_on_xref(*args) -> 'bool' + inf_set_create_strlit_on_xref(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_data_offset in module ida_ida: + +inf_set_data_offset(*args) -> 'bool' + inf_set_data_offset(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_database_change_count in module ida_ida: + +inf_set_database_change_count(*args) -> 'bool' + inf_set_database_change_count(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_datatypes in module ida_ida: + +inf_set_datatypes(*args) -> 'bool' + inf_set_datatypes(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_dbg_no_store_path in module ida_ida: + +inf_set_dbg_no_store_path(*args) -> 'bool' + inf_set_dbg_no_store_path(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_decode_fpp in module ida_ida: + +inf_set_decode_fpp(*args) -> 'bool' + inf_set_decode_fpp(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_del_no_xref_insns in module ida_ida: + +inf_set_del_no_xref_insns(*args) -> 'bool' + inf_set_del_no_xref_insns(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_demnames in module ida_ida: + +inf_set_demnames(*args) -> 'bool' + inf_set_demnames(_v) -> bool + + @param _v: uchar + +Help on function inf_set_dll in module ida_ida: + +inf_set_dll(*args) -> 'bool' + inf_set_dll(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_filetype in module ida_ida: + +inf_set_filetype(*args) -> 'bool' + inf_set_filetype(_v) -> bool + + @param _v: enum filetype_t + +Help on function inf_set_final_pass in module ida_ida: + +inf_set_final_pass(*args) -> 'bool' + inf_set_final_pass(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_flat_off32 in module ida_ida: + +inf_set_flat_off32(*args) -> 'bool' + inf_set_flat_off32(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_full_sp_ana in module ida_ida: + +inf_set_full_sp_ana(*args) -> 'bool' + inf_set_full_sp_ana(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_assume in module ida_ida: + +inf_set_gen_assume(*args) -> 'bool' + inf_set_gen_assume(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_org in module ida_ida: + +inf_set_gen_org(*args) -> 'bool' + inf_set_gen_org(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_genflags in module ida_ida: + +inf_set_genflags(*args) -> 'bool' + inf_set_genflags(_v) -> bool + + @param _v: ushort + +Help on function inf_set_guess_func_type in module ida_ida: + +inf_set_guess_func_type(*args) -> 'bool' + inf_set_guess_func_type(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_handle_eh in module ida_ida: + +inf_set_handle_eh(*args) -> 'bool' + inf_set_handle_eh(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_handle_rtti in module ida_ida: + +inf_set_handle_rtti(*args) -> 'bool' + inf_set_handle_rtti(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_hard_float in module ida_ida: + +inf_set_hard_float(*args) -> 'bool' + inf_set_hard_float(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_hide_comments in module ida_ida: + +inf_set_hide_comments(*args) -> 'bool' + inf_set_hide_comments(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_hide_libfuncs in module ida_ida: + +inf_set_hide_libfuncs(*args) -> 'bool' + inf_set_hide_libfuncs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_highoff in module ida_ida: + +inf_set_highoff(*args) -> 'bool' + inf_set_highoff(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_huge_arg_align in module ida_ida: + +inf_set_huge_arg_align(*args) -> 'bool' + inf_set_huge_arg_align(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_indent in module ida_ida: + +inf_set_indent(*args) -> 'bool' + inf_set_indent(_v) -> bool + + @param _v: uchar + +Help on function inf_set_kernel_mode in module ida_ida: + +inf_set_kernel_mode(*args) -> 'bool' + inf_set_kernel_mode(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_lenxref in module ida_ida: + +inf_set_lenxref(*args) -> 'bool' + inf_set_lenxref(_v) -> bool + + @param _v: ushort + +Help on function inf_set_lflags in module ida_ida: + +inf_set_lflags(*args) -> 'bool' + inf_set_lflags(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_limiter in module ida_ida: + +inf_set_limiter(*args) -> 'bool' + inf_set_limiter(_v) -> bool + + @param _v: uchar + +Help on function inf_set_limiter_empty in module ida_ida: + +inf_set_limiter_empty(*args) -> 'bool' + inf_set_limiter_empty(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_limiter_thick in module ida_ida: + +inf_set_limiter_thick(*args) -> 'bool' + inf_set_limiter_thick(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_limiter_thin in module ida_ida: + +inf_set_limiter_thin(*args) -> 'bool' + inf_set_limiter_thin(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_listnames in module ida_ida: + +inf_set_listnames(*args) -> 'bool' + inf_set_listnames(_v) -> bool + + @param _v: uchar + +Help on function inf_set_loading_idc in module ida_ida: + +inf_set_loading_idc(*args) -> 'bool' + inf_set_loading_idc(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_long_demnames in module ida_ida: + +inf_set_long_demnames(*args) -> 'bool' + inf_set_long_demnames(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_lowoff in module ida_ida: + +inf_set_lowoff(*args) -> 'bool' + inf_set_lowoff(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_macros_enabled in module ida_ida: + +inf_set_macros_enabled(*args) -> 'bool' + inf_set_macros_enabled(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_main in module ida_ida: + +inf_set_main(*args) -> 'bool' + inf_set_main(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_map_stkargs in module ida_ida: + +inf_set_map_stkargs(*args) -> 'bool' + inf_set_map_stkargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_margin in module ida_ida: + +inf_set_margin(*args) -> 'bool' + inf_set_margin(_v) -> bool + + @param _v: ushort + +Help on function inf_set_mark_code in module ida_ida: + +inf_set_mark_code(*args) -> 'bool' + inf_set_mark_code(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_max_autoname_len in module ida_ida: + +inf_set_max_autoname_len(*args) -> 'bool' + inf_set_max_autoname_len(_v) -> bool + + @param _v: ushort + +Help on function inf_set_max_ea in module ida_ida: + +inf_set_max_ea(*args) -> 'bool' + inf_set_max_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_maxref in module ida_ida: + +inf_set_maxref(*args) -> 'bool' + inf_set_maxref(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_mem_aligned4 in module ida_ida: + +inf_set_mem_aligned4(*args) -> 'bool' + inf_set_mem_aligned4(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_min_ea in module ida_ida: + +inf_set_min_ea(*args) -> 'bool' + inf_set_min_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_nametype in module ida_ida: + +inf_set_nametype(*args) -> 'bool' + inf_set_nametype(_v) -> bool + + @param _v: char + +Help on function inf_set_netdelta in module ida_ida: + +inf_set_netdelta(*args) -> 'bool' + inf_set_netdelta(_v) -> bool + + @param _v: sval_t + +Help on function inf_set_no_store_user_info in module ida_ida: + +inf_set_no_store_user_info(*args) -> 'bool' + inf_set_no_store_user_info(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_noflow_to_data in module ida_ida: + +inf_set_noflow_to_data(*args) -> 'bool' + inf_set_noflow_to_data(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_noret_ana in module ida_ida: + +inf_set_noret_ana(*args) -> 'bool' + inf_set_noret_ana(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_omax_ea in module ida_ida: + +inf_set_omax_ea(*args) -> 'bool' + inf_set_omax_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_omin_ea in module ida_ida: + +inf_set_omin_ea(*args) -> 'bool' + inf_set_omin_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_op_offset in module ida_ida: + +inf_set_op_offset(*args) -> 'bool' + inf_set_op_offset(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_ostype in module ida_ida: + +inf_set_ostype(*args) -> 'bool' + inf_set_ostype(_v) -> bool + + @param _v: ushort + +Help on function inf_set_outflags in module ida_ida: + +inf_set_outflags(*args) -> 'bool' + inf_set_outflags(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_pack_idb in module ida_ida: + +inf_set_pack_idb(*args) -> 'bool' + inf_set_pack_idb(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_pack_stkargs in module ida_ida: + +inf_set_pack_stkargs(*args) -> 'bool' + inf_set_pack_stkargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefflag in module ida_ida: + +inf_set_prefflag(*args) -> 'bool' + inf_set_prefflag(_v) -> bool + + @param _v: uchar + +Help on function inf_set_prefix_show_funcoff in module ida_ida: + +inf_set_prefix_show_funcoff(*args) -> 'bool' + inf_set_prefix_show_funcoff(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefix_show_segaddr in module ida_ida: + +inf_set_prefix_show_segaddr(*args) -> 'bool' + inf_set_prefix_show_segaddr(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefix_show_stack in module ida_ida: + +inf_set_prefix_show_stack(*args) -> 'bool' + inf_set_prefix_show_stack(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: + +inf_set_prefix_truncate_opcode_bytes(*args) -> 'bool' + inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_privrange in module ida_ida: + +inf_set_privrange(*args) -> 'bool' + inf_set_privrange(_v) -> bool + + @param _v: range_t const & + +Help on function inf_set_privrange_end_ea in module ida_ida: + +inf_set_privrange_end_ea(*args) -> 'bool' + inf_set_privrange_end_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_privrange_start_ea in module ida_ida: + +inf_set_privrange_start_ea(*args) -> 'bool' + inf_set_privrange_start_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_procname in module ida_ida: + +inf_set_procname(*args) -> 'bool' + inf_set_procname(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t + +Help on function inf_set_propagate_regargs in module ida_ida: + +inf_set_propagate_regargs(*args) -> 'bool' + inf_set_propagate_regargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_propagate_stkargs in module ida_ida: + +inf_set_propagate_stkargs(*args) -> 'bool' + inf_set_propagate_stkargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_readonly_idb in module ida_ida: + +inf_set_readonly_idb(*args) -> 'bool' + inf_set_readonly_idb(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_refcmtnum in module ida_ida: + +inf_set_refcmtnum(*args) -> 'bool' + inf_set_refcmtnum(_v) -> bool + + @param _v: uchar + +Help on function inf_set_rename_jumpfunc in module ida_ida: + +inf_set_rename_jumpfunc(*args) -> 'bool' + inf_set_rename_jumpfunc(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_rename_nullsub in module ida_ida: + +inf_set_rename_nullsub(*args) -> 'bool' + inf_set_rename_nullsub(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_short_demnames in module ida_ida: + +inf_set_short_demnames(*args) -> 'bool' + inf_set_short_demnames(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_should_create_stkvars in module ida_ida: + +inf_set_should_create_stkvars(*args) -> 'bool' + inf_set_should_create_stkvars(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_should_trace_sp in module ida_ida: + +inf_set_should_trace_sp(*args) -> 'bool' + inf_set_should_trace_sp(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_all_comments in module ida_ida: + +inf_set_show_all_comments(*args) -> 'bool' + inf_set_show_all_comments(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_hidden_funcs in module ida_ida: + +inf_set_show_hidden_funcs(*args) -> 'bool' + inf_set_show_hidden_funcs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_hidden_insns in module ida_ida: + +inf_set_show_hidden_insns(*args) -> 'bool' + inf_set_show_hidden_insns(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_hidden_segms in module ida_ida: + +inf_set_show_hidden_segms(*args) -> 'bool' + inf_set_show_hidden_segms(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_repeatables in module ida_ida: + +inf_set_show_repeatables(*args) -> 'bool' + inf_set_show_repeatables(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_src_linnum in module ida_ida: + +inf_set_show_src_linnum(*args) -> 'bool' + inf_set_show_src_linnum(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_fncoff in module ida_ida: + +inf_set_show_xref_fncoff(*args) -> 'bool' + inf_set_show_xref_fncoff(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_seg in module ida_ida: + +inf_set_show_xref_seg(*args) -> 'bool' + inf_set_show_xref_seg(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_tmarks in module ida_ida: + +inf_set_show_xref_tmarks(*args) -> 'bool' + inf_set_show_xref_tmarks(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_val in module ida_ida: + +inf_set_show_xref_val(*args) -> 'bool' + inf_set_show_xref_val(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_snapshot in module ida_ida: + +inf_set_snapshot(*args) -> 'bool' + inf_set_snapshot(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_specsegs in module ida_ida: + +inf_set_specsegs(*args) -> 'bool' + inf_set_specsegs(_v) -> bool + + @param _v: uchar + +Help on function inf_set_stack_ldbl in module ida_ida: + +inf_set_stack_ldbl(*args) -> 'bool' + inf_set_stack_ldbl(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_stack_varargs in module ida_ida: + +inf_set_stack_varargs(*args) -> 'bool' + inf_set_stack_varargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_start_cs in module ida_ida: + +inf_set_start_cs(*args) -> 'bool' + inf_set_start_cs(_v) -> bool + + @param _v: sel_t + +Help on function inf_set_start_ea in module ida_ida: + +inf_set_start_ea(*args) -> 'bool' + inf_set_start_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_start_ip in module ida_ida: + +inf_set_start_ip(*args) -> 'bool' + inf_set_start_ip(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_start_sp in module ida_ida: + +inf_set_start_sp(*args) -> 'bool' + inf_set_start_sp(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_start_ss in module ida_ida: + +inf_set_start_ss(*args) -> 'bool' + inf_set_start_ss(_v) -> bool + + @param _v: sel_t + +Help on function inf_set_strlit_autocmt in module ida_ida: + +inf_set_strlit_autocmt(*args) -> 'bool' + inf_set_strlit_autocmt(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_break in module ida_ida: + +inf_set_strlit_break(*args) -> 'bool' + inf_set_strlit_break(_v) -> bool + + @param _v: uchar + +Help on function inf_set_strlit_flags in module ida_ida: + +inf_set_strlit_flags(*args) -> 'bool' + inf_set_strlit_flags(_v) -> bool + + @param _v: uchar + +Help on function inf_set_strlit_name_bit in module ida_ida: + +inf_set_strlit_name_bit(*args) -> 'bool' + inf_set_strlit_name_bit(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_names in module ida_ida: + +inf_set_strlit_names(*args) -> 'bool' + inf_set_strlit_names(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_pref in module ida_ida: + +inf_set_strlit_pref(*args) -> 'bool' + inf_set_strlit_pref(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t + +Help on function inf_set_strlit_savecase in module ida_ida: + +inf_set_strlit_savecase(*args) -> 'bool' + inf_set_strlit_savecase(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_serial_names in module ida_ida: + +inf_set_strlit_serial_names(*args) -> 'bool' + inf_set_strlit_serial_names(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_sernum in module ida_ida: + +inf_set_strlit_sernum(*args) -> 'bool' + inf_set_strlit_sernum(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_strlit_zeroes in module ida_ida: + +inf_set_strlit_zeroes(*args) -> 'bool' + inf_set_strlit_zeroes(_v) -> bool + + @param _v: char + +Help on function inf_set_strtype in module ida_ida: + +inf_set_strtype(*args) -> 'bool' + inf_set_strtype(_v) -> bool + + @param _v: int32 + +Help on function inf_set_trace_flow in module ida_ida: + +inf_set_trace_flow(*args) -> 'bool' + inf_set_trace_flow(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_truncate_on_del in module ida_ida: + +inf_set_truncate_on_del(*args) -> 'bool' + inf_set_truncate_on_del(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_type_xrefnum in module ida_ida: + +inf_set_type_xrefnum(*args) -> 'bool' + inf_set_type_xrefnum(_v) -> bool + + @param _v: uchar + +Help on function inf_set_unicode_strlits in module ida_ida: + +inf_set_unicode_strlits(*args) -> 'bool' + inf_set_unicode_strlits(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_use_allasm in module ida_ida: + +inf_set_use_allasm(*args) -> 'bool' + inf_set_use_allasm(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_use_flirt in module ida_ida: + +inf_set_use_flirt(*args) -> 'bool' + inf_set_use_flirt(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_use_gcc_layout in module ida_ida: + +inf_set_use_gcc_layout(*args) -> 'bool' + inf_set_use_gcc_layout(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_version in module ida_ida: + +inf_set_version(*args) -> 'bool' + inf_set_version(_v) -> bool + + @param _v: ushort + +Help on function inf_set_xrefflag in module ida_ida: + +inf_set_xrefflag(*args) -> 'bool' + inf_set_xrefflag(_v) -> bool + + @param _v: uchar + +Help on function inf_set_xrefnum in module ida_ida: + +inf_set_xrefnum(*args) -> 'bool' + inf_set_xrefnum(_v) -> bool + + @param _v: uchar + +Help on function inf_should_create_stkvars in module ida_ida: + +inf_should_create_stkvars(*args) -> 'bool' + inf_should_create_stkvars() -> bool + +Help on function inf_should_trace_sp in module ida_ida: + +inf_should_trace_sp(*args) -> 'bool' + inf_should_trace_sp() -> bool + +Help on function inf_show_all_comments in module ida_ida: + +inf_show_all_comments(*args) -> 'bool' + inf_show_all_comments() -> bool + +Help on function inf_show_hidden_funcs in module ida_ida: + +inf_show_hidden_funcs(*args) -> 'bool' + inf_show_hidden_funcs() -> bool + +Help on function inf_show_hidden_insns in module ida_ida: + +inf_show_hidden_insns(*args) -> 'bool' + inf_show_hidden_insns() -> bool + +Help on function inf_show_hidden_segms in module ida_ida: + +inf_show_hidden_segms(*args) -> 'bool' + inf_show_hidden_segms() -> bool + +Help on function inf_show_repeatables in module ida_ida: + +inf_show_repeatables(*args) -> 'bool' + inf_show_repeatables() -> bool + +Help on function inf_show_src_linnum in module ida_ida: + +inf_show_src_linnum(*args) -> 'bool' + inf_show_src_linnum() -> bool + +Help on function inf_show_xref_fncoff in module ida_ida: + +inf_show_xref_fncoff(*args) -> 'bool' + inf_show_xref_fncoff() -> bool + +Help on function inf_show_xref_seg in module ida_ida: + +inf_show_xref_seg(*args) -> 'bool' + inf_show_xref_seg() -> bool + +Help on function inf_show_xref_tmarks in module ida_ida: + +inf_show_xref_tmarks(*args) -> 'bool' + inf_show_xref_tmarks() -> bool + +Help on function inf_show_xref_val in module ida_ida: + +inf_show_xref_val(*args) -> 'bool' + inf_show_xref_val() -> bool + +Help on function inf_strlit_autocmt in module ida_ida: + +inf_strlit_autocmt(*args) -> 'bool' + inf_strlit_autocmt() -> bool + +Help on function inf_strlit_name_bit in module ida_ida: + +inf_strlit_name_bit(*args) -> 'bool' + inf_strlit_name_bit() -> bool + +Help on function inf_strlit_names in module ida_ida: + +inf_strlit_names(*args) -> 'bool' + inf_strlit_names() -> bool + +Help on function inf_strlit_savecase in module ida_ida: + +inf_strlit_savecase(*args) -> 'bool' + inf_strlit_savecase() -> bool + +Help on function inf_strlit_serial_names in module ida_ida: + +inf_strlit_serial_names(*args) -> 'bool' + inf_strlit_serial_names() -> bool + +Help on function inf_test_mode in module ida_ida: + +inf_test_mode(*args) -> 'bool' + inf_test_mode() -> bool + +Help on function inf_trace_flow in module ida_ida: + +inf_trace_flow(*args) -> 'bool' + inf_trace_flow() -> bool + +Help on function inf_truncate_on_del in module ida_ida: + +inf_truncate_on_del(*args) -> 'bool' + inf_truncate_on_del() -> bool + +Help on function inf_unicode_strlits in module ida_ida: + +inf_unicode_strlits(*args) -> 'bool' + inf_unicode_strlits() -> bool + +Help on function inf_use_flirt in module ida_ida: + +inf_use_flirt(*args) -> 'bool' + inf_use_flirt() -> bool + +Help on function is_database_busy in module ida_ida: + +is_database_busy(*args) -> 'bool' + is_database_busy() -> bool + Check if the database is busy (e.g. performing some critical operations and + cannot be safely accessed) + +Help on function is_filetype_like_binary in module ida_ida: + +is_filetype_like_binary(*args) -> 'bool' + is_filetype_like_binary(ft) -> bool + Is unstructured input file? + + @param ft: (C++: filetype_t) enum filetype_t + +Help on function <lambda> in module ida_ida: + +<lambda> lambda *args + +Help on function switch_dbctx in module ida_ida: + +switch_dbctx(*args) -> 'dbctx_t *' + switch_dbctx(idx) -> dbctx_t * + Switch to the database with the provided context ID + + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr + +Help on function to_ea in module ida_ida: + +to_ea(*args) -> 'ea_t' + to_ea(reg_cs, reg_ip) -> ea_t + Convert (sel,off) value to a linear address. + + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) + +Module "ida_idaapi"s docstring: +"""None""" + +Help on class CustomIDAMemo in module ida_kernwin: + +class CustomIDAMemo(View_Hooks) + | Proxy of C++ View_Hooks class. + | + | Method resolution order: + | CustomIDAMemo + | View_Hooks + | builtins.object + | + | Methods defined here: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | __init__(self) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on __IDAPython_Completion_Util in module ida_idaapi object: + +class __IDAPython_Completion_Util(builtins.object) + | Internal utility class for auto-completion support + | + | Methods defined here: + | + | __call__(self, line, x) + | Call self as a function. + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | debug(self, *args) + | + | dir_namespace(self, m, prefix) + | + | get_candidates(self, qname, line, match_syntax_char) + | + | maybe_extend_syntactically(self, ns, name, line, syntax_char) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | QNAME_PAT = re.compile('([a-zA-Z_]([a-zA-Z0-9_\\.]*)?)') + +Help on function IDAPython_ExecScript in module ida_idaapi: + +IDAPython_ExecScript(path, g, print_error=True) + Run the specified script. + + This function is used by the low-level plugin code. + +Help on function IDAPython_ExecSystem in module ida_idaapi: + +IDAPython_ExecSystem(cmd) + Executes a command with popen(). + +Help on function IDAPython_FormatExc in module ida_idaapi: + +IDAPython_FormatExc(etype, value=None, tb=None, limit=None) + This function is used to format an exception given the + values returned by a PyErr_Fetch() + +Help on function IDAPython_LoadProcMod in module ida_idaapi: + +IDAPython_LoadProcMod(path, g, print_error=True) + Load processor module. + +Help on function IDAPython_UnLoadProcMod in module ida_idaapi: + +IDAPython_UnLoadProcMod(script, g, print_error=True) + Unload processor module. + +Help on class IDAPython_displayhook in module ida_idaapi: + +class IDAPython_displayhook(builtins.object) + | # ------------------------------------------------------------ + | + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | _print_hex(self, x) + | + | displayhook(self, item) + | + | format_item(self, num_printer, storage, item) + | + | format_seq(self, num_printer, storage, item, opn, cls) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class PyIdc_cvt_int64__ in module ida_idaapi: + +class PyIdc_cvt_int64__(pyidc_cvt_helper__) + | Helper class for explicitly representing VT_INT64 values + | + | Method resolution order: + | PyIdc_cvt_int64__ + | pyidc_cvt_helper__ + | builtins.object + | + | Methods defined here: + | + | _PyIdc_cvt_int64____op = __op(self, op_n, other, rev=False) + | + | __add__(self, other) + | + | __div__(self, other) + | + | __init__(self, v) + | Initialize self. See help(type(self)) for accurate signature. + | + | __mul__(self, other) + | + | __radd__(self, other) + | + | __rdiv__(self, other) + | + | __rmul__(self, other) + | + | __rsub__(self, other) + | + | __sub__(self, other) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | _PyIdc_cvt_int64____op_table = {0: <function PyIdc_cvt_int64__.<lambda... + | + | ---------------------------------------------------------------------- + | Methods inherited from pyidc_cvt_helper__: + | + | _pyidc_cvt_helper____get_value = __get_value(self) + | + | _pyidc_cvt_helper____set_value = __set_value(self, v) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pyidc_cvt_helper__: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | value + +Help on class PyIdc_cvt_refclass__ in module ida_idaapi: + +class PyIdc_cvt_refclass__(pyidc_cvt_helper__) + | Helper class for representing references to immutable objects + | + | Method resolution order: + | PyIdc_cvt_refclass__ + | pyidc_cvt_helper__ + | builtins.object + | + | Methods defined here: + | + | __init__(self, v) + | Initialize self. See help(type(self)) for accurate signature. + | + | cstr(self) + | Returns the string as a C string (up to the zero termination) + | + | ---------------------------------------------------------------------- + | Methods inherited from pyidc_cvt_helper__: + | + | _pyidc_cvt_helper____get_value = __get_value(self) + | + | _pyidc_cvt_helper____set_value = __set_value(self, v) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pyidc_cvt_helper__: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | value + +Help on function TRUNC in module ida_idaapi: + +TRUNC(ea) + Truncate EA for the current application bitness + +Help on IDAPython_displayhook in module ida_idaapi object: + +class IDAPython_displayhook(builtins.object) + | # ------------------------------------------------------------ + | + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | _print_hex(self, x) + | + | displayhook(self, item) + | + | format_item(self, num_printer, storage, item) + | + | format_seq(self, num_printer, storage, item, opn, cls) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class __IDAPython_Completion_Util in module ida_idaapi: + +class __IDAPython_Completion_Util(builtins.object) + | Internal utility class for auto-completion support + | + | Methods defined here: + | + | __call__(self, line, x) + | Call self as a function. + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | debug(self, *args) + | + | dir_namespace(self, m, prefix) + | + | get_candidates(self, qname, line, match_syntax_char) + | + | maybe_extend_syntactically(self, ns, name, line, syntax_char) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | QNAME_PAT = re.compile('([a-zA-Z_]([a-zA-Z0-9_\\.]*)?)') + +Help on function __install_excepthook in module ida_idaapi: + +__install_excepthook() + # Since version 5.5, PyQt5 doesn't simply print the PyQt exceptions by default + # anymore: https://github.com/baoboa/pyqt5/commit/1e1d8a3ba677ef3e47b916b8a5b9c281d0f8e4b5#diff-848704a82f6a6e3a13112145ce32ac69L63 + # The default behavior now is that qFatal() is called, causing the application + # to abort(). + # We do not want that to happen in IDA, and simply having a sys.excepthook + # that is different from sys.__excepthook__ is enough for PyQt5 to return + # to the previous behavior + +Help on function _bounded_getitem_iterator in module ida_idaapi: + +_bounded_getitem_iterator(self) + Helper function, to be set as __iter__ method for qvector-, or array-based classes. + +Help on function _listify_types in module ida_idaapi: + +_listify_types(*classes) + +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + +Help on function _qvector_back in module ida_idaapi: + +_qvector_back(self) + # ----------------------------------------------------------------------- + +Help on function _qvector_front in module ida_idaapi: + +_qvector_front(self) + # ----------------------------------------------------------------------- + +Help on function _replace_module_function in module ida_idaapi: + +_replace_module_function(replacement) + +Help on function _utf8_native in module ida_idaapi: + +_utf8_native(utf8) + +Help on function as_UTF16 in module ida_idaapi: + +as_UTF16(s) + Convenience function to convert a string into appropriate unicode format + +Help on function as_cstr in module ida_idaapi: + +as_cstr(val) + Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) + It scans for the first \x00 and returns the string value up to that point. + +Help on function as_int32 in module ida_idaapi: + +as_int32(v) + Returns a number as a signed int32 number + +Help on function as_signed in module ida_idaapi: + +as_signed(v, nbits=32) + Returns a number as signed. The number of bits are specified by the user. + The MSB holds the sign. + +Help on function as_uint32 in module ida_idaapi: + +as_uint32(v) + Returns a number as an unsigned int32 number + +Help on function copy_bits in module ida_idaapi: + +copy_bits(v, s, e=-1) + Copy bits from a value + @param v: the value + @param s: starting bit (0-based) + @param e: ending bit + +Help on function disable_script_timeout in module ida_idaapi: + +disable_script_timeout(*args) -> 'void' + disable_script_timeout() + Disables the script timeout and hides the script wait box. + Calling L{set_script_timeout} will not have any effects until the script is compiled and executed again + + @return: None + +Help on function enable_extlang_python in module ida_idaapi: + +enable_extlang_python(*args) -> 'void' + enable_extlang_python(enable) + Enables or disables Python extlang. + When enabled, all expressions will be evaluated by Python. + + @param enable: Set to True to enable, False otherwise + +Help on function enable_python_cli in module ida_idaapi: + +enable_python_cli(*args) -> 'void' + enable_python_cli(enable) + + @param enable: bool + +Help on function format_basestring in module ida_idaapi: + +format_basestring(*args) -> 'PyObject *' + format_basestring(_in) -> str + + @param _in: PyObject * + +Help on function get_inf_structure in module ida_idaapi: + +get_inf_structure(*args) -> 'idainfo *' + get_inf_structure() -> idainfo + Returns the global variable 'inf' (an instance of idainfo structure, see ida.hpp) + +Help on class loader_input_t in module ida_idaapi: + +class loader_input_t(builtins.object) + | A helper class to work with linput_t related functions. + | This class is also used by file loaders scripts. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, pycapsule=None) -> loader_input_t + | + | @param pycapsule: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_loader_input_t(...) + | delete_loader_input_t(self) + | + | close(self, *args) -> 'void' + | close(self) + | Closes the file + | + | file2base(self, *args) -> 'int' + | file2base(self, pos, ea1, ea2, patchable) -> int + | Load portion of file into the database + | This function will include (ea1..ea2) into the addressing space of the + | program (make it enabled) + | + | @param pos: position in the file + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param patchable: should the kernel remember correspondance of + | file offsets to linear addresses. + | @return: 1-ok,0-read error, a warning is displayed + | + | filename(self, *args) -> 'PyObject *' + | filename(self) -> PyObject * + | + | get_byte(self, *args) -> 'PyObject *' + | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte + | + | get_linput(self, *args) -> 'linput_t *' + | get_linput(self) -> linput_t * + | + | gets(self, *args) -> 'PyObject *' + | gets(self, len) -> str + | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t + | + | getz(self, *args) -> 'PyObject *' + | getz(self, sz, fpos=-1) -> PyObject * + | Returns a zero terminated string at the given position + | + | @param sz: maximum size of the string + | @param fpos: if != -1 then seek will be performed before reading + | @return: The string or None on failure. + | + | open(self, *args) -> 'bool' + | open(self, filename, remote=False) -> bool + | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool + | @return: Boolean + | + | open_memory(self, *args) -> 'bool' + | open_memory(self, start, size=0) -> bool + | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) + | This linput will use dbg->read_memory() to read data + | + | @param start: starting address of the input + | @param size: size of the memory range to represent as linput + | if unknown, may be passed as 0 + | + | opened(self, *args) -> 'bool' + | opened(self) -> bool + | Checks if the file is opened or not + | + | read(self, *args) -> 'PyObject *' + | read(self, size) -> bytes or None + | Reads from the file. Returns the buffer or None + | + | @param size: size_t + | + | readbytes(self, *args) -> 'PyObject *' + | readbytes(self, size, big_endian) -> PyObject * + | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool + | + | seek(self, *args) -> 'int64' + | seek(self, pos, whence=SEEK_SET) -> int64 + | Set input source position + | + | @param pos: int64 + | @param whence: int + | @return: the new position (not 0 as fseek!) + | + | set_linput(self, *args) -> 'void' + | set_linput(self, linput) + | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * + | + | size(self, *args) -> 'int64' + | size(self) -> int64 + | + | tell(self, *args) -> 'int64' + | tell(self) -> int64 + | Returns the current position + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | from_capsule(*args) -> 'loader_input_t *' + | from_capsule(pycapsule) -> loader_input_t + | + | @param pycapsule: PyObject * + | + | from_fp(*args) -> 'loader_input_t *' + | from_fp(fp) -> loader_input_t + | A static method to construct an instance from a FILE* + | + | @param fp: FILE * + | + | from_linput(*args) -> 'loader_input_t *' + | from_linput(linput) -> loader_input_t + | + | @param linput: linput_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __idc_cvt_id__ + | __idc_cvt_id__ + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function loader_input_t_from_capsule in module ida_idaapi: + +loader_input_t_from_capsule(*args) -> 'loader_input_t *' + loader_input_t_from_capsule(pycapsule) -> loader_input_t + + @param pycapsule: PyObject * + +Help on function loader_input_t_from_fp in module ida_idaapi: + +loader_input_t_from_fp(*args) -> 'loader_input_t *' + loader_input_t_from_fp(fp) -> loader_input_t + + @param fp: FILE * + +Help on function loader_input_t_from_linput in module ida_idaapi: + +loader_input_t_from_linput(*args) -> 'loader_input_t *' + loader_input_t_from_linput(linput) -> loader_input_t + + @param linput: linput_t * + +Help on function notify_when in module ida_idaapi: + +notify_when(when, callback) + Register a callback that will be called when an event happens. + @param when: one of NW_XXXX constants + @param callback: This callback prototype varies depending on the 'when' parameter: + The general callback format: + def notify_when_callback(nw_code) + In the case of NW_OPENIDB: + def notify_when_callback(nw_code, is_old_database) + @return: Boolean + +Help on class object_t in module ida_idaapi: + +class object_t(builtins.object) + | Helper class used to initialize empty objects + | + | Methods defined here: + | + | __getitem__(self, idx) + | Allow access to object attributes by index (like dictionaries) + | + | __init__(self, **kwds) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function parse_command_line3 in module ida_idaapi: + +parse_command_line3(*args) -> 'PyObject *' + parse_command_line3(cmdline) -> PyObject * + + @param cmdline: char const * + +Help on class plugin_t in module ida_idaapi: + +class plugin_t(pyidc_opaque_object_t) + | Base class for all scripted plugins. + | + | Method resolution order: + | plugin_t + | pyidc_opaque_object_t + | builtins.object + | + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on class plugmod_t in module ida_idaapi: + +class plugmod_t(pyidc_opaque_object_t) + | Base class for all scripted multi-plugins. + | + | Method resolution order: + | plugmod_t + | pyidc_opaque_object_t + | builtins.object + | + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on class py_clinked_object_t in module ida_idaapi: + +class py_clinked_object_t(pyidc_opaque_object_t) + | This is a utility and base class for C linked objects + | + | Method resolution order: + | py_clinked_object_t + | pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | __del__(self) + | Delete the link upon object destruction (only if not static) + | + | __init__(self, lnk=None) + | Initialize self. See help(type(self)) for accurate signature. + | + | _create_clink(self) + | Overwrite me. + | Creates a new clink + | @return: PyCapsule representing the C link + | + | _del_clink(self, lnk) + | Overwrite me. + | This method deletes the link + | + | _free(self) + | Explicitly delete the link (only if not static) + | + | _get_clink_ptr(self) + | Overwrite me. + | Returns the C link pointer as a 64bit number + | + | assign(self, other) + | Overwrite me. + | This method allows you to assign an instance contents to anothers + | @return: Boolean + | + | copy(self) + | Returns a new copy of this class + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | clink + | + | clink_ptr + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on function pycim_get_widget in module ida_idaapi: + +pycim_get_widget(*args) -> 'TWidget *' + pycim_get_widget(_self) -> TWidget * + + @param self: PyObject * + +Help on function pycim_view_close in module ida_idaapi: + +pycim_view_close(*args) -> 'void' + pycim_view_close(_self) + + @param self: PyObject * + +Help on function pygc_create_groups in module ida_idaapi: + +pygc_create_groups(*args) -> 'PyObject *' + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * + +Help on function pygc_delete_groups in module ida_idaapi: + +pygc_delete_groups(*args) -> 'PyObject *' + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * + +Help on function pygc_refresh in module ida_idaapi: + +pygc_refresh(*args) -> 'void' + pygc_refresh(_self) + + @param self: PyObject * + +Help on function pygc_set_groups_visibility in module ida_idaapi: + +pygc_set_groups_visibility(*args) -> 'PyObject *' + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * + +Help on class pyidc_cvt_helper__ in module ida_idaapi: + +class pyidc_cvt_helper__(builtins.object) + | This is a special helper object that helps detect which kind + | of object is this python object wrapping and how to convert it + | back and from IDC. + | This object is characterized by its special attribute and its value + | + | Methods defined here: + | + | __init__(self, cvt_id, value) + | Initialize self. See help(type(self)) for accurate signature. + | + | _pyidc_cvt_helper____get_value = __get_value(self) + | + | _pyidc_cvt_helper____set_value = __set_value(self, v) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | value + +Help on class pyidc_opaque_object_t in module ida_idaapi: + +class pyidc_opaque_object_t(builtins.object) + | This is the base class for all Python<->IDC opaque objects + | + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __idc_cvt_id__ = 2 + +Help on function replfun in module ida_idaapi: + +replfun(func) + +Help on function require in module ida_idaapi: + +require(modulename, package=None) + Load, or reload a module. + + When under heavy development, a user's tool might consist of multiple + modules. If those are imported using the standard 'import' mechanism, + there is no guarantee that the Python implementation will re-read + and re-evaluate the module's Python code. In fact, it usually doesn't. + What should be done instead is 'reload()'-ing that module. + + This is a simple helper function that will do just that: In case the + module doesn't exist, it 'import's it, and if it does exist, + 'reload()'s it. + + The importing module (i.e., the module calling require()) will have + the loaded module bound to its globals(), under the name 'modulename'. + (If require() is called from the command line, the importing module + will be '__main__'.) + + For more information, see: <http://www.hexblog.com/?p=749>. + +Help on function set_script_timeout in module ida_idaapi: + +set_script_timeout(*args) -> 'int' + set_script_timeout(timeout) -> int + Changes the script timeout value. The script wait box dialog will be hidden and shown again when the timeout elapses. + See also L{disable_script_timeout}. + + @param timeout: This value is in seconds. + If this value is set to zero then the script will never timeout. + @return: Returns the old timeout value + +Help on function struct_unpack in module ida_idaapi: + +struct_unpack(buffer, signed=False, offs=0) + Unpack a buffer given its length and offset using struct.unpack_from(). + This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' + If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. + +Module "ida_idc"s docstring: +"""None""" + +Help on function get_mark_comment in module ida_idc: + +get_mark_comment(*args) -> 'PyObject *' + get_mark_comment(slot) -> PyObject * + + @param slot: int32 + +Help on function get_marked_pos in module ida_idc: + +get_marked_pos(*args) -> 'ea_t' + get_marked_pos(slot) -> ea_t + + @param slot: int32 + +Help on function mark_position in module ida_idc: + +mark_position(*args) -> 'void' + mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" + +Help on Appcall__ in module ida_idd object: + +class Appcall__(builtins.object) + | # ----------------------------------------------------------------------- + | + | Methods defined here: + | + | _Appcall____get_consts = __get_consts(self) + | + | __getattr__(self, name_or_ea) + | Allows you to call functions as if they were member functions (by returning a callable object) + | + | __getitem__(self, idx) + | Use self[func_name] syntax if the function name contains invalid characters for an attribute name + | See __getattr___ + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | UTF16(s) + | + | _Appcall____name_or_ea = __name_or_ea(name_or_ea) + | Function that accepts a name or an ea and checks if the address is enabled. + | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name + | @return: - Returns the resolved EA or + | - Raises an exception if the address is not enabled + | + | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) + | Function that accepts a tinfo_t object or type declaration as a string + | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object + | @return: - Returns the tinfo_t object + | - Raises an exception if the declaration cannot be parsed + | + | array(type_name) + | Defines an array type. Later you need to pack() / unpack() + | + | buffer(str=None, size=0, fill='\x00') + | Creates a string buffer. The returned value (r) will be a byref object. + | Use r.value to get the contents and r.size to get the buffer's size + | + | byref(val) + | Method to create references to immutable objects + | Currently we support references to int/strings + | Objects need not be passed by reference (this will be done automatically) + | + | cleanup_appcall(tid=0) + | Equivalent to IDC's CleanupAppcall() + | + | cstr(val) + | + | get_appcall_options() + | Return the global Appcall options + | + | int64(v) + | Whenever a 64bit number is needed use this method to construct an object + | + | obj(**kwds) + | Returns an empty object or objects with attributes as passed via its keywords arguments + | + | proto(name_or_ea, proto_or_tinfo, flags=None) + | Allows you to instantiate an appcall (callable object) with the desired prototype + | @param name_or_ea: The name of the function (will be resolved with LocByName()) + | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object + | @return: - On failure it raises an exception if the prototype could not be parsed + | or the address is not resolvable + | - Returns a callbable Appcall instance with the given prototypes and flags + | + | set_appcall_options(opt) + | Method to change the Appcall options globally (not per Appcall) + | + | typedobj(typedecl_or_tinfo, ea=None) + | Returns an appcall object for a type (can be given as tinfo_t object or + | as a string declaration) + | One can then use retrieve() member method + | @param ea: Optional parameter that later can be used to retrieve the type + | @return: Appcall object or raises ValueError exception + | + | unicode = UTF16(s) + | + | valueof(name, default=0) + | Returns the numeric value of a given name string. + | If the name could not be resolved then the default value will be returned + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | Consts + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | APPCALL_DEBEV = 2 + | + | APPCALL_MANUAL = 1 + | + | APPCALL_TIMEOUT = 4 + | + | __name__ = 'Appcall__' + +Help on class Appcall__ in module ida_idd: + +class Appcall__(builtins.object) + | # ----------------------------------------------------------------------- + | + | Methods defined here: + | + | _Appcall____get_consts = __get_consts(self) + | + | __getattr__(self, name_or_ea) + | Allows you to call functions as if they were member functions (by returning a callable object) + | + | __getitem__(self, idx) + | Use self[func_name] syntax if the function name contains invalid characters for an attribute name + | See __getattr___ + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | UTF16(s) + | + | _Appcall____name_or_ea = __name_or_ea(name_or_ea) + | Function that accepts a name or an ea and checks if the address is enabled. + | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name + | @return: - Returns the resolved EA or + | - Raises an exception if the address is not enabled + | + | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) + | Function that accepts a tinfo_t object or type declaration as a string + | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object + | @return: - Returns the tinfo_t object + | - Raises an exception if the declaration cannot be parsed + | + | array(type_name) + | Defines an array type. Later you need to pack() / unpack() + | + | buffer(str=None, size=0, fill='\x00') + | Creates a string buffer. The returned value (r) will be a byref object. + | Use r.value to get the contents and r.size to get the buffer's size + | + | byref(val) + | Method to create references to immutable objects + | Currently we support references to int/strings + | Objects need not be passed by reference (this will be done automatically) + | + | cleanup_appcall(tid=0) + | Equivalent to IDC's CleanupAppcall() + | + | cstr(val) + | + | get_appcall_options() + | Return the global Appcall options + | + | int64(v) + | Whenever a 64bit number is needed use this method to construct an object + | + | obj(**kwds) + | Returns an empty object or objects with attributes as passed via its keywords arguments + | + | proto(name_or_ea, proto_or_tinfo, flags=None) + | Allows you to instantiate an appcall (callable object) with the desired prototype + | @param name_or_ea: The name of the function (will be resolved with LocByName()) + | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object + | @return: - On failure it raises an exception if the prototype could not be parsed + | or the address is not resolvable + | - Returns a callbable Appcall instance with the given prototypes and flags + | + | set_appcall_options(opt) + | Method to change the Appcall options globally (not per Appcall) + | + | typedobj(typedecl_or_tinfo, ea=None) + | Returns an appcall object for a type (can be given as tinfo_t object or + | as a string declaration) + | One can then use retrieve() member method + | @param ea: Optional parameter that later can be used to retrieve the type + | @return: Appcall object or raises ValueError exception + | + | unicode = UTF16(s) + | + | valueof(name, default=0) + | Returns the numeric value of a given name string. + | If the name could not be resolved then the default value will be returned + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | Consts + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | APPCALL_DEBEV = 2 + | + | APPCALL_MANUAL = 1 + | + | APPCALL_TIMEOUT = 4 + | + | __name__ = 'Appcall__' + +Help on class Appcall_array__ in module ida_idd: + +class Appcall_array__(builtins.object) + | This class is used with Appcall.array() method + | + | Methods defined here: + | + | __init__(self, tp) + | Initialize self. See help(type(self)) for accurate signature. + | + | pack(self, L) + | Packs a list or tuple into a byref buffer + | + | try_to_convert_to_list(self, obj) + | Is this object a list? We check for the existance of attribute zero and attribute self.size-1 + | + | unpack(self, buf, as_list=True) + | Unpacks an array back into a list or an object + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class Appcall_callable__ in module ida_idd: + +class Appcall_callable__(builtins.object) + | Helper class to issue appcalls using a natural syntax: + | appcall.FunctionNameInTheDatabase(arguments, ....) + | or + | appcall["Function@8"](arguments, ...) + | or + | f8 = appcall["Function@8"] + | f8(arg1, arg2, ...) + | or + | o = appcall.obj() + | i = byref(5) + | appcall.funcname(arg1, i, "hello", o) + | + | Methods defined here: + | + | _Appcall_callable____get_ea = __get_ea(self) + | + | _Appcall_callable____get_fields = __get_fields(self) + | + | _Appcall_callable____get_options = __get_options(self) + | + | _Appcall_callable____get_size = __get_size(self) + | + | _Appcall_callable____get_tif = __get_tif(self) + | + | _Appcall_callable____get_timeout = __get_timeout(self) + | + | _Appcall_callable____get_type = __get_type(self) + | + | _Appcall_callable____set_ea = __set_ea(self, val) + | + | _Appcall_callable____set_options = __set_options(self, v) + | + | _Appcall_callable____set_timeout = __set_timeout(self, v) + | + | __call__(self, *args) + | Make object callable. We redirect execution to idaapi.appcall() + | + | __init__(self, ea, tinfo_or_typestr=None, fields=None) + | Initializes an appcall with a given function ea + | + | retrieve(self, src=None, flags=0) + | Unpacks a typed object from the database if an ea is given or from a string if a string was passed + | @param src: the address of the object or a string + | @return: Returns a tuple of boolean and object or error number (Bool, Error | Object). + | + | store(self, obj, dest_ea=None, base_ea=0, flags=0) + | Packs an object into a given ea if provided or into a string if no address was passed. + | @param obj: The object to pack + | @param dest_ea: If packing to idb this will be the store location + | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers + | + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) + | - If packing to the database then a return code is returned (0 is success) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | + | fields + | + | options + | + | size + | + | tif + | + | timeout + | + | type + +Help on class Appcall_consts__ in module ida_idd: + +class Appcall_consts__(builtins.object) + | Helper class used by Appcall.Consts attribute + | It is used to retrieve constants via attribute access + | + | Methods defined here: + | + | __getattr__(self, attr) + | + | __init__(self, default=None) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function appcall in module ida_idd: + +appcall(*args) -> 'PyObject *' + appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * + +Help on class bptaddr_t in module ida_idd: + +class bptaddr_t(builtins.object) + | Proxy of C++ bptaddr_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddr_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddr_t(...) + | delete_bptaddr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hea + | hea + | + | kea + | kea + | + | thisown + | The membership flag + +Help on class call_stack_info_t in module ida_idd: + +class call_stack_info_t(builtins.object) + | Proxy of C++ call_stack_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: call_stack_info_t const & + | + | __init__(self, *args) + | __init__(self) -> call_stack_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: call_stack_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_call_stack_info_t(...) + | delete_call_stack_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | callea + | callea + | + | fp + | fp + | + | funcea + | funcea + | + | funcok + | funcok + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class call_stack_info_vec_t in module ida_idd: + +class call_stack_info_vec_t(builtins.object) + | Proxy of C++ qvector< call_stack_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __getitem__(self, *args) -> 'call_stack_info_t const &' + | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> call_stack_info_vec_t + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & + | + | __swig_destroy__ = delete_call_stack_info_vec_t(...) + | delete_call_stack_info_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | at(self, *args) -> 'call_stack_info_t const &' + | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | begin(self) -> call_stack_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | end(self) -> call_stack_info_t + | + | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | + | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator + | + | extract(self, *args) -> 'call_stack_info_t *' + | extract(self) -> call_stack_info_t + | + | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'call_stack_info_t &' + | push_back(self, x) + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class call_stack_t in module ida_idd: + +class call_stack_t(call_stack_info_vec_t) + | Proxy of C++ call_stack_t class. + | + | Method resolution order: + | call_stack_t + | call_stack_info_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> call_stack_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_call_stack_t(...) + | delete_call_stack_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from call_stack_info_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __getitem__(self, *args) -> 'call_stack_info_t const &' + | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | at(self, *args) -> 'call_stack_info_t const &' + | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | begin(self) -> call_stack_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | end(self) -> call_stack_info_t + | + | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | + | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator + | + | extract(self, *args) -> 'call_stack_info_t *' + | extract(self) -> call_stack_info_t + | + | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'call_stack_info_t &' + | push_back(self, x) + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from call_stack_info_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from call_stack_info_vec_t: + | + | __hash__ = None + +Help on function can_exc_continue in module ida_idd: + +can_exc_continue(*args) -> 'bool' + can_exc_continue(ev) -> bool + + @param ev: debug_event_t const * + +Help on function cleanup_appcall in module ida_idd: + +cleanup_appcall(*args) -> 'error_t' + cleanup_appcall(tid) -> error_t + Cleanup after manual appcall. + + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code + +Help on function dbg_appcall in module ida_idd: + +dbg_appcall(*args) -> 'error_t' + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t + Call a function from the debugged application. + + @param retval: (C++: idc_value_t *) function return value + * for APPCALL_MANUAL, r will hold the new stack point value + * for APPCALL_DEBEV, r will hold the exception information upon failure and the + return code will be eExecThrow + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code + +Help on built-in function dbg_can_query in module _ida_dbg: + +dbg_can_query(...) + dbg_can_query() -> bool + +Help on function dbg_get_memory_info in module ida_idd: + +dbg_get_memory_info(*args) -> 'PyObject *' + dbg_get_memory_info() -> PyObject * + This function returns the memory configuration of a debugged process. + + @return: None if no debugger is active + tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) + +Help on function dbg_get_name in module ida_idd: + +dbg_get_name(*args) -> 'PyObject *' + dbg_get_name() -> PyObject * + This function returns the current debugger's name. + + @return: Debugger name or None if no debugger is active + +Help on function dbg_get_registers in module ida_idd: + +dbg_get_registers(*args) -> 'PyObject *' + dbg_get_registers() -> PyObject * + This function returns the register definition from the currently loaded debugger. + Basically, it returns an array of structure similar to to idd.hpp / register_info_t + + @return: None if no debugger is loaded + tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) + The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) + +Help on function dbg_get_thread_sreg_base in module ida_idd: + +dbg_get_thread_sreg_base(*args) -> 'PyObject *' + dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * + Returns the segment register base value + + @param tid: thread id + @param sreg_value: segment register (selector) value + @return: - The base as an 'ea' + - Or None on failure + +Help on function dbg_read_memory in module ida_idd: + +dbg_read_memory(*args) -> 'PyObject *' + dbg_read_memory(ea, sz) -> PyObject * + Reads from the debugee's memory at the specified ea + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) + - Or None on failure + +Help on function dbg_write_memory in module ida_idd: + +dbg_write_memory(*args) -> 'PyObject *' + dbg_write_memory(ea, buf) -> bool + Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & + @return: Boolean + +Help on class debapp_attrs_t in module ida_idd: + +class debapp_attrs_t(builtins.object) + | Proxy of C++ debapp_attrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debapp_attrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debapp_attrs_t(...) + | delete_debapp_attrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | addrsize + | addrsize + | + | cbsize + | cbsize + | + | is_be + | is_be + | + | platform + | platform + | + | thisown + | The membership flag + +Help on class debug_event_t in module ida_idd: + +class debug_event_t(builtins.object) + | Proxy of C++ debug_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debug_event_t + | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debug_event_t(...) + | delete_debug_event_t(self) + | + | bpt(self, *args) -> 'bptaddr_t const &' + | bpt(self) -> bptaddr_t + | + | bpt_ea(self, *args) -> 'ea_t' + | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. + | + | clear(self, *args) -> 'void' + | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT + | + | clear_all(self, *args) -> 'void' + | clear_all(self) + | + | copy(self, *args) -> 'debug_event_t &' + | copy(self, r) -> debug_event_t + | + | @param r: debug_event_t const & + | + | eid(self, *args) -> 'event_id_t' + | eid(self) -> event_id_t + | Event code. + | + | exc(self, *args) -> 'excinfo_t const &' + | exc(self) -> excinfo_t + | + | exit_code(self, *args) -> 'int const &' + | exit_code(self) -> int const & + | + | info(self, *args) -> 'qstring const &' + | info(self) -> qstring + | info(self) -> qstring const & + | + | modinfo(self, *args) -> 'modinfo_t const &' + | modinfo(self) -> modinfo_t + | + | set_bpt(self, *args) -> 'bptaddr_t &' + | set_bpt(self) -> bptaddr_t + | + | set_eid(self, *args) -> 'void' + | set_eid(self, id) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t + | + | set_exception(self, *args) -> 'excinfo_t &' + | set_exception(self) -> excinfo_t + | + | set_exit_code(self, *args) -> 'void' + | set_exit_code(self, id, code) + | + | @param id: enum event_id_t + | @param code: int + | + | set_info(self, *args) -> 'qstring &' + | set_info(self, id) -> qstring & + | + | @param id: enum event_id_t + | + | set_modinfo(self, *args) -> 'modinfo_t &' + | set_modinfo(self, id) -> modinfo_t + | + | @param id: enum event_id_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | handled + | handled + | + | pid + | pid + | + | thisown + | The membership flag + | + | tid + | tid + +Help on class debugger_t in module ida_idd: + +class debugger_t(builtins.object) + | Proxy of C++ debugger_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debugger_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debugger_t(...) + | delete_debugger_t(self) + | + | _debugger_t__get_bpt_bytes = __get_bpt_bytes(self, *args) -> 'bytevec_t' + | __get_bpt_bytes(self) -> bytevec_t + | + | _debugger_t__get_nregs = __get_nregs(self, *args) -> 'int' + | __get_nregs(self) -> int + | + | _debugger_t__get_regclasses = __get_regclasses(self, *args) -> 'PyObject *' + | __get_regclasses(self) -> PyObject * + | + | _debugger_t__get_registers = __get_registers(self, *args) -> 'dynamic_wrapped_array_t< register_info_t >' + | __get_registers(self) -> dyn_register_info_array + | + | attach_process(self, *args) -> 'drc_t' + | attach_process(self, pid, event_id, dbg_proc_flags) -> drc_t + | + | @param pid: pid_t + | @param event_id: int + | @param dbg_proc_flags: uint32 + | + | bin_search(self, *args) -> 'drc_t' + | bin_search(self, start_ea, end_ea, data, srch_flags) -> drc_t + | + | @param start_ea: ea_t + | @param end_ea: ea_t + | @param data: compiled_binpat_vec_t const & + | @param srch_flags: int + | + | cache_block_size(self, *args) -> 'size_t' + | cache_block_size(self) -> size_t + | + | can_continue_from_bpt(self, *args) -> 'bool' + | can_continue_from_bpt(self) -> bool + | + | can_debug_standalone_dlls(self, *args) -> 'bool' + | can_debug_standalone_dlls(self) -> bool + | + | check_bpt(self, *args) -> 'drc_t' + | check_bpt(self, bptvc, type, ea, len) -> drc_t + | + | @param bptvc: int * + | @param type: bpttype_t + | @param ea: ea_t + | @param len: int + | + | cleanup_appcall(self, *args) -> 'drc_t' + | cleanup_appcall(self, tid) -> drc_t + | + | @param tid: thid_t + | + | close_file(self, *args) -> 'void' + | close_file(self, fn) + | + | @param fn: int + | + | dbg_enable_trace(self, *args) -> 'bool' + | dbg_enable_trace(self, tid, enable, trace_flags) -> bool + | + | @param tid: thid_t + | @param enable: bool + | @param trace_flags: int + | + | detach_process(self, *args) -> 'drc_t' + | detach_process(self) -> drc_t + | + | eval_lowcnd(self, *args) -> 'drc_t' + | eval_lowcnd(self, tid, ea) -> drc_t + | + | @param tid: thid_t + | @param ea: ea_t + | + | exit_process(self, *args) -> 'drc_t' + | exit_process(self) -> drc_t + | + | fake_memory(self, *args) -> 'bool' + | fake_memory(self) -> bool + | + | get_debapp_attrs(self, *args) -> 'bool' + | get_debapp_attrs(self, out_pattrs) -> bool + | + | @param out_pattrs: debapp_attrs_t * + | + | get_debmod_extensions(self, *args) -> 'void const *' + | get_debmod_extensions(self) -> void const * + | + | get_debug_event(self, *args) -> 'gdecode_t' + | get_debug_event(self, event, timeout_ms) -> gdecode_t + | + | @param event: debug_event_t * + | @param timeout_ms: int + | + | get_memory_info(self, *args) -> 'drc_t' + | get_memory_info(self, ranges) -> drc_t + | + | @param ranges: meminfo_vec_t & + | + | get_processes(self, *args) -> 'drc_t' + | get_processes(self, procs) -> drc_t + | + | @param procs: procinfo_vec_t * + | + | get_srcinfo_path(self, *args) -> 'bool' + | get_srcinfo_path(self, path, base) -> bool + | + | @param path: qstring * + | @param base: ea_t + | + | has_appcall(self, *args) -> 'bool' + | has_appcall(self) -> bool + | + | has_attach_process(self, *args) -> 'bool' + | has_attach_process(self) -> bool + | + | has_check_bpt(self, *args) -> 'bool' + | has_check_bpt(self) -> bool + | + | has_detach_process(self, *args) -> 'bool' + | has_detach_process(self) -> bool + | + | has_get_processes(self, *args) -> 'bool' + | has_get_processes(self) -> bool + | + | has_map_address(self, *args) -> 'bool' + | has_map_address(self) -> bool + | + | has_open_file(self, *args) -> 'bool' + | has_open_file(self) -> bool + | + | has_request_pause(self, *args) -> 'bool' + | has_request_pause(self) -> bool + | + | has_rexec(self, *args) -> 'bool' + | has_rexec(self) -> bool + | + | has_set_exception_info(self, *args) -> 'bool' + | has_set_exception_info(self) -> bool + | + | has_set_resume_mode(self, *args) -> 'bool' + | has_set_resume_mode(self) -> bool + | + | has_soft_bpt(self, *args) -> 'bool' + | has_soft_bpt(self) -> bool + | + | has_thread_continue(self, *args) -> 'bool' + | has_thread_continue(self) -> bool + | + | has_thread_get_sreg_base(self, *args) -> 'bool' + | has_thread_get_sreg_base(self) -> bool + | + | has_thread_suspend(self, *args) -> 'bool' + | has_thread_suspend(self) -> bool + | + | has_update_call_stack(self, *args) -> 'bool' + | has_update_call_stack(self) -> bool + | + | init_debugger(self, *args) -> 'bool' + | init_debugger(self, hostname, portnum, password) -> bool + | + | @param hostname: char const * + | @param portnum: int + | @param password: char const * + | + | is_remote(self, *args) -> 'bool' + | is_remote(self) -> bool + | + | is_resmod_avail(self, *args) -> 'bool' + | is_resmod_avail(self, resmod) -> bool + | + | @param resmod: int + | + | is_safe(self, *args) -> 'bool' + | is_safe(self) -> bool + | + | is_tracing_enabled(self, *args) -> 'bool' + | is_tracing_enabled(self, tid, tracebit) -> bool + | + | @param tid: thid_t + | @param tracebit: int + | + | map_address(self, *args) -> 'ea_t' + | map_address(self, off, regs, regnum) -> ea_t + | + | @param off: ea_t + | @param regs: regval_t const * + | @param regnum: int + | + | may_disturb(self, *args) -> 'bool' + | may_disturb(self) -> bool + | + | may_take_exit_snapshot(self, *args) -> 'bool' + | may_take_exit_snapshot(self) -> bool + | + | must_have_hostname(self, *args) -> 'bool' + | must_have_hostname(self) -> bool + | + | open_file(self, *args) -> 'int' + | open_file(self, file, fsize, readonly) -> int + | + | @param file: char const * + | @param fsize: uint64 * + | @param readonly: bool + | + | read_file(self, *args) -> 'ssize_t' + | read_file(self, fn, off, buf, size) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void * + | @param size: size_t + | + | read_memory(self, *args) -> 'drc_t' + | read_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void * + | @param size: size_t + | + | read_registers(self, *args) -> 'drc_t' + | read_registers(self, tid, clsmask, values) -> drc_t + | + | @param tid: thid_t + | @param clsmask: int + | @param values: regval_t * + | + | rebase_if_required_to(self, *args) -> 'void' + | rebase_if_required_to(self, new_base) + | + | @param new_base: ea_t + | + | regs(self, *args) -> 'register_info_t &' + | regs(self, idx) -> register_info_t + | + | @param idx: int + | + | request_pause(self, *args) -> 'drc_t' + | request_pause(self) -> drc_t + | + | resume(self, *args) -> 'drc_t' + | resume(self, event) -> drc_t + | + | @param event: debug_event_t const * + | + | rexec(self, *args) -> 'int' + | rexec(self, cmdline) -> int + | + | @param cmdline: char const * + | + | send_ioctl(self, *args) -> 'drc_t' + | send_ioctl(self, fn, buf, poutbuf, poutsize) -> drc_t + | + | @param fn: int + | @param buf: void const * + | @param poutbuf: void ** + | @param poutsize: ssize_t * + | + | set_exception_info(self, *args) -> 'void' + | set_exception_info(self, info, qty) + | + | @param info: exception_info_t const * + | @param qty: int + | + | set_resume_mode(self, *args) -> 'drc_t' + | set_resume_mode(self, tid, resmod) -> drc_t + | + | @param tid: thid_t + | @param resmod: enum resume_mode_t + | + | start_process(self, *args) -> 'drc_t' + | start_process(self, path, args, startdir, dbg_proc_flags, input_path, input_file_crc32) -> drc_t + | + | @param path: char const * + | @param args: char const * + | @param startdir: char const * + | @param dbg_proc_flags: uint32 + | @param input_path: char const * + | @param input_file_crc32: uint32 + | + | supports_debthread(self, *args) -> 'bool' + | supports_debthread(self) -> bool + | + | supports_lowcnds(self, *args) -> 'bool' + | supports_lowcnds(self) -> bool + | + | suspended(self, *args) -> 'void' + | suspended(self, dlls_added, thr_names=None) + | + | @param dlls_added: bool + | @param thr_names: thread_name_vec_t * + | + | term_debugger(self, *args) -> 'bool' + | term_debugger(self) -> bool + | + | thread_continue(self, *args) -> 'drc_t' + | thread_continue(self, tid) -> drc_t + | + | @param tid: thid_t + | + | thread_get_sreg_base(self, *args) -> 'drc_t' + | thread_get_sreg_base(self, answer, tid, sreg_value) -> drc_t + | + | @param answer: ea_t * + | @param tid: thid_t + | @param sreg_value: int + | + | thread_suspend(self, *args) -> 'drc_t' + | thread_suspend(self, tid) -> drc_t + | + | @param tid: thid_t + | + | update_bpts(self, *args) -> 'drc_t' + | update_bpts(self, nbpts, bpts, nadd, ndel) -> drc_t + | + | @param nbpts: int * + | @param bpts: update_bpt_info_t * + | @param nadd: int + | @param ndel: int + | + | update_call_stack(self, *args) -> 'drc_t' + | update_call_stack(self, tid, trace) -> drc_t + | + | @param tid: thid_t + | @param trace: call_stack_t * + | + | update_lowcnds(self, *args) -> 'drc_t' + | update_lowcnds(self, nupdated, lowcnds, nlowcnds) -> drc_t + | + | @param nupdated: int * + | @param lowcnds: lowcnd_t const * + | @param nlowcnds: int + | + | use_memregs(self, *args) -> 'bool' + | use_memregs(self) -> bool + | + | use_sregs(self, *args) -> 'bool' + | use_sregs(self) -> bool + | + | virtual_threads(self, *args) -> 'bool' + | virtual_threads(self) -> bool + | + | write_file(self, *args) -> 'ssize_t' + | write_file(self, fn, off, buf) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void const * + | + | write_memory(self, *args) -> 'drc_t' + | write_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void const * + | @param size: size_t + | + | write_register(self, *args) -> 'drc_t' + | write_register(self, tid, regidx, value) -> drc_t + | + | @param tid: thid_t + | @param regidx: int + | @param value: regval_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt_bytes + | __get_bpt_bytes(self) -> bytevec_t + | + | bpt_size + | bpt_size + | + | default_regclasses + | default_regclasses + | + | filetype + | filetype + | + | flags + | flags + | + | flags2 + | flags2 + | + | id + | id + | + | memory_page_size + | memory_page_size + | + | name + | name + | + | nregs + | __get_nregs(self) -> int + | + | processor + | processor + | + | regclasses + | __get_regclasses(self) -> PyObject * + | + | registers + | __get_registers(self) -> dyn_register_info_array + | + | resume_modes + | resume_modes + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_appcall = 33 + | + | ev_attach_process = 4 + | + | ev_bin_search = 41 + | + | ev_check_bpt = 23 + | + | ev_cleanup_appcall = 34 + | + | ev_close_file = 27 + | + | ev_dbg_enable_trace = 37 + | + | ev_detach_process = 5 + | + | ev_eval_lowcnd = 35 + | + | ev_exit_process = 9 + | + | ev_get_debapp_attrs = 6 + | + | ev_get_debmod_extensions = 31 + | + | ev_get_debug_event = 10 + | + | ev_get_memory_info = 20 + | + | ev_get_processes = 2 + | + | ev_get_srcinfo_path = 40 + | + | ev_init_debugger = 0 + | + | ev_is_tracing_enabled = 38 + | + | ev_map_address = 30 + | + | ev_open_file = 26 + | + | ev_read_file = 28 + | + | ev_read_memory = 21 + | + | ev_read_registers = 17 + | + | ev_rebase_if_required_to = 7 + | + | ev_request_pause = 8 + | + | ev_resume = 11 + | + | ev_rexec = 39 + | + | ev_send_ioctl = 36 + | + | ev_set_exception_info = 12 + | + | ev_set_resume_mode = 16 + | + | ev_start_process = 3 + | + | ev_suspended = 13 + | + | ev_term_debugger = 1 + | + | ev_thread_continue = 15 + | + | ev_thread_get_sreg_base = 19 + | + | ev_thread_suspend = 14 + | + | ev_update_bpts = 24 + | + | ev_update_call_stack = 32 + | + | ev_update_lowcnds = 25 + | + | ev_write_file = 29 + | + | ev_write_memory = 22 + | + | ev_write_register = 18 + +Help on class dyn_register_info_array in module ida_idd: + +class dyn_register_info_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< register_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'register_info_t const &' + | __getitem__(self, i) -> register_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_register_info_array + | + | @param _data: register_info_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: register_info_t const & + | + | __swig_destroy__ = delete_dyn_register_info_array(...) + | delete_dyn_register_info_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class exception_info_t in module ida_idd: + +class exception_info_t(builtins.object) + | Proxy of C++ exception_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> exception_info_t + | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_exception_info_t(...) + | delete_exception_info_t(self) + | + | break_on(self, *args) -> 'bool' + | break_on(self) -> bool + | Should we break on the exception? + | + | handle(self, *args) -> 'bool' + | handle(self) -> bool + | Should we handle the exception? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | code + | code + | + | desc + | desc + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + +Help on class excinfo_t in module ida_idd: + +class excinfo_t(builtins.object) + | Proxy of C++ excinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> excinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_excinfo_t(...) + | delete_excinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | can_cont + | can_cont + | + | code + | code + | + | ea + | ea + | + | info + | info + | + | thisown + | The membership flag + +Help on class excvec_t in module ida_idd: + +class excvec_t(builtins.object) + | Proxy of C++ qvector< exception_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'exception_info_t const &' + | __getitem__(self, i) -> exception_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> excvec_t + | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: exception_info_t const & + | + | __swig_destroy__ = delete_excvec_t(...) + | delete_excvec_t(self) + | + | at(self, *args) -> 'exception_info_t const &' + | at(self, _idx) -> exception_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< exception_info_t >::const_iterator' + | begin(self) -> exception_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< exception_info_t >::const_iterator' + | end(self) -> exception_info_t + | + | erase(self, *args) -> 'qvector< exception_info_t >::iterator' + | erase(self, it) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | + | erase(self, first, last) -> exception_info_t + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator + | + | extract(self, *args) -> 'exception_info_t *' + | extract(self) -> exception_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=exception_info_t()) + | + | @param x: exception_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: exception_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< exception_info_t >::iterator' + | insert(self, it, x) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'exception_info_t &' + | push_back(self, x) + | + | @param x: exception_info_t const & + | + | push_back(self) -> exception_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: exception_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< exception_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_dbg in module ida_idd: + +get_dbg(*args) -> 'debugger_t *' + get_dbg() -> debugger_t + +Help on function get_event_bpt_hea in module ida_idd: + +get_event_bpt_hea(*args) -> 'ea_t' + get_event_bpt_hea(ev) -> ea_t + + @param ev: debug_event_t const * + +Help on function get_event_exc_code in module ida_idd: + +get_event_exc_code(*args) -> 'uint' + get_event_exc_code(ev) -> uint + + @param ev: debug_event_t const * + +Help on function get_event_exc_ea in module ida_idd: + +get_event_exc_ea(*args) -> 'ea_t' + get_event_exc_ea(ev) -> ea_t + + @param ev: debug_event_t const * + +Help on function get_event_exc_info in module ida_idd: + +get_event_exc_info(*args) -> 'size_t' + get_event_exc_info(ev) -> str + + @param ev: debug_event_t const * + +Help on function get_event_info in module ida_idd: + +get_event_info(*args) -> 'size_t' + get_event_info(ev) -> str + + @param ev: debug_event_t const * + +Help on function get_event_module_base in module ida_idd: + +get_event_module_base(*args) -> 'ea_t' + get_event_module_base(ev) -> ea_t + + @param ev: debug_event_t const * + +Help on function get_event_module_name in module ida_idd: + +get_event_module_name(*args) -> 'size_t' + get_event_module_name(ev) -> str + + @param ev: debug_event_t const * + +Help on function get_event_module_size in module ida_idd: + +get_event_module_size(*args) -> 'asize_t' + get_event_module_size(ev) -> asize_t + + @param ev: debug_event_t const * + +Help on class meminfo_vec_t in module ida_idd: + +class meminfo_vec_t(meminfo_vec_template_t) + | Proxy of C++ meminfo_vec_t class. + | + | Method resolution order: + | meminfo_vec_t + | meminfo_vec_template_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_meminfo_vec_t(...) + | delete_meminfo_vec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from meminfo_vec_template_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __getitem__(self, *args) -> 'memory_info_t const &' + | __getitem__(self, i) -> memory_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memory_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & + | + | at(self, *args) -> 'memory_info_t const &' + | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | begin(self) -> memory_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | end(self) -> memory_info_t + | + | erase(self, *args) -> 'qvector< memory_info_t >::iterator' + | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | + | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator + | + | extract(self, *args) -> 'memory_info_t *' + | extract(self) -> memory_info_t + | + | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: memory_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memory_info_t >::iterator' + | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memory_info_t &' + | push_back(self, x) + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memory_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from meminfo_vec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from meminfo_vec_template_t: + | + | __hash__ = None + +Help on class meminfo_vec_template_t in module ida_idd: + +class meminfo_vec_template_t(builtins.object) + | Proxy of C++ qvector< memory_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __getitem__(self, *args) -> 'memory_info_t const &' + | __getitem__(self, i) -> memory_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_template_t + | __init__(self, x) -> meminfo_vec_template_t + | + | @param x: qvector< memory_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memory_info_t const & + | + | __swig_destroy__ = delete_meminfo_vec_template_t(...) + | delete_meminfo_vec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & + | + | at(self, *args) -> 'memory_info_t const &' + | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | begin(self) -> memory_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | end(self) -> memory_info_t + | + | erase(self, *args) -> 'qvector< memory_info_t >::iterator' + | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | + | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator + | + | extract(self, *args) -> 'memory_info_t *' + | extract(self) -> memory_info_t + | + | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: memory_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memory_info_t >::iterator' + | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memory_info_t &' + | push_back(self, x) + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memory_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class memory_info_t in module ida_idd: + +class memory_info_t(ida_range.range_t) + | Proxy of C++ memory_info_t class. + | + | Method resolution order: + | memory_info_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: memory_info_t const & + | + | __init__(self, *args) + | __init__(self) -> memory_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: memory_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_memory_info_t(...) + | delete_memory_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bitness + | bitness + | + | name + | name + | + | perm + | perm + | + | sbase + | sbase + | + | sclass + | sclass + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + +Help on class modinfo_t in module ida_idd: + +class modinfo_t(builtins.object) + | Proxy of C++ modinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> modinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_modinfo_t(...) + | delete_modinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | base + | base + | + | name + | name + | + | rebase_to + | rebase_to + | + | size + | size + | + | thisown + | The membership flag + +Help on class process_info_t in module ida_idd: + +class process_info_t(builtins.object) + | Proxy of C++ process_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> process_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_process_info_t(...) + | delete_process_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | pid + | pid + | + | thisown + | The membership flag + +Help on class procinfo_vec_t in module ida_idd: + +class procinfo_vec_t(builtins.object) + | Proxy of C++ qvector< process_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'process_info_t const &' + | __getitem__(self, i) -> process_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> procinfo_vec_t + | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: process_info_t const & + | + | __swig_destroy__ = delete_procinfo_vec_t(...) + | delete_procinfo_vec_t(self) + | + | at(self, *args) -> 'process_info_t const &' + | at(self, _idx) -> process_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< process_info_t >::const_iterator' + | begin(self) -> process_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< process_info_t >::const_iterator' + | end(self) -> process_info_t + | + | erase(self, *args) -> 'qvector< process_info_t >::iterator' + | erase(self, it) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | + | erase(self, first, last) -> process_info_t + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator + | + | extract(self, *args) -> 'process_info_t *' + | extract(self) -> process_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=process_info_t()) + | + | @param x: process_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: process_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< process_info_t >::iterator' + | insert(self, it, x) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'process_info_t &' + | push_back(self, x) + | + | @param x: process_info_t const & + | + | push_back(self) -> process_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: process_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< process_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class register_info_t in module ida_idd: + +class register_info_t(builtins.object) + | Proxy of C++ register_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> register_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_register_info_t(...) + | delete_register_info_t(self) + | + | _register_info_t__get_bit_strings = __get_bit_strings(self, *args) -> 'PyObject *' + | __get_bit_strings(self) -> PyObject * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bit_strings + | __get_bit_strings(self) -> PyObject * + | + | default_bit_strings_mask + | default_bit_strings_mask + | + | dtype + | dtype + | + | flags + | flags + | + | name + | name + | + | register_class + | register_class + | + | thisown + | The membership flag + +Help on class regval_t in module ida_idd: + +class regval_t(builtins.object) + | Proxy of C++ regval_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: regval_t const & + | + | __init__(self, *args) + | __init__(self) -> regval_t + | __init__(self, r) -> regval_t + | + | @param r: regval_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: regval_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regval_t(...) + | delete_regval_t(self) + | + | bytes(self, *args) -> 'bytevec_t const &' + | bytes(self) -> bytevec_t + | Get const custom value. + | bytes(self) -> bytevec_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | Clear register value. + | + | get_data(self, *args) -> 'void const *' + | get_data(self) + | Get const pointer to value. + | get_data(self) -> void const * + | + | get_data_size(self, *args) -> 'size_t' + | get_data_size(self) -> size_t + | Get size of value. + | + | pyval(self, *args) -> 'PyObject *' + | pyval(self, dtype) -> PyObject * + | + | @param dtype: op_dtype_t + | + | set_bytes(self, *args) -> 'bytevec_t &' + | set_bytes(self, data, size) + | Initialize this regval to an empty custom value. + | + | @param data: uchar const * + | @param size: size_t + | + | set_bytes(self, v) + | + | @param v: bytevec_t const & + | + | set_bytes(self) -> bytevec_t & + | + | set_float(self, *args) -> 'void' + | set_float(self, x) + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & + | + | set_int(self, *args) -> 'void' + | set_int(self, x) + | Set int value (ival) + | + | @param x: (C++: uint64) + | + | set_pyval(self, *args) -> 'bool' + | set_pyval(self, o, dtype) -> bool + | + | @param o: PyObject * + | @param dtype: op_dtype_t + | + | set_unavailable(self, *args) -> 'void' + | set_unavailable(self) + | Mark as unavailable. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: regval_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fval + | fval + | + | ival + | ival + | + | rvtype + | rvtype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class regvals_t in module ida_idd: + +class regvals_t(builtins.object) + | Proxy of C++ qvector< regval_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __getitem__(self, *args) -> 'regval_t const &' + | __getitem__(self, i) -> regval_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> regvals_t + | __init__(self, x) -> regvals_t + | + | @param x: qvector< regval_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regval_t const & + | + | __swig_destroy__ = delete_regvals_t(...) + | delete_regvals_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: regval_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: regval_t const & + | + | at(self, *args) -> 'regval_t const &' + | at(self, _idx) -> regval_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regval_t >::const_iterator' + | begin(self) -> regval_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regval_t >::const_iterator' + | end(self) -> regval_t + | + | erase(self, *args) -> 'qvector< regval_t >::iterator' + | erase(self, it) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | + | erase(self, first, last) -> regval_t + | + | @param first: qvector< regval_t >::iterator + | @param last: qvector< regval_t >::iterator + | + | extract(self, *args) -> 'regval_t *' + | extract(self) -> regval_t + | + | find(self, *args) -> 'qvector< regval_t >::const_iterator' + | find(self, x) -> regval_t + | + | @param x: regval_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regval_t()) + | + | @param x: regval_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: regval_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regval_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regval_t >::iterator' + | insert(self, it, x) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | @param x: regval_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regval_t &' + | push_back(self, x) + | + | @param x: regval_t const & + | + | push_back(self) -> regval_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regval_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regval_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class scattered_segm_t in module ida_idd: + +class scattered_segm_t(ida_range.range_t) + | Proxy of C++ scattered_segm_t class. + | + | Method resolution order: + | scattered_segm_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> scattered_segm_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scattered_segm_t(...) + | delete_scattered_segm_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | name + | name + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function set_debug_event_code in module ida_idd: + +set_debug_event_code(*args) -> 'void' + set_debug_event_code(ev, id) + + @param ev: debug_event_t * + @param id: enum event_id_t + +Help on class thread_name_t in module ida_idd: + +class thread_name_t(builtins.object) + | Proxy of C++ thread_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> thread_name_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_thread_name_t(...) + | delete_thread_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | tid + | tid + +Module "ida_idp"s docstring: +""" +Contains definition of the interface to IDP modules. + +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph + +These structures contain information about target processor and assembler +features. + +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events + +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" + +Help on function AssembleLine in module ida_idp: + +AssembleLine(*args) -> 'PyObject *' + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes + Assemble an instruction to a string (display a warning if an error is found) + + @param ea: linear address of instruction + @param cs: cs of instruction + @param ip: ip of instruction + @param use32: is 32bit segment + @param nonnul_line: char const * + @return: - None on failure + - or a string containing the assembled instruction + +Help on class IDB_Hooks in module ida_idp: + +class IDB_Hooks(builtins.object) + | Proxy of C++ IDB_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDB_Hooks(...) + | delete_IDB_Hooks(self) + | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | + | allsegs_moved(self, *args) -> 'void' + | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) + | + | auto_empty(self, *args) -> 'void' + | auto_empty(self) + | + | auto_empty_finally(self, *args) -> 'void' + | auto_empty_finally(self) + | + | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. + | + | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) + | + | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) + | + | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) + | + | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) + | + | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info + | + | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) + | + | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) + | + | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) + | + | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) + | + | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) + | + | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | closebase(self, *args) -> 'void' + | closebase(self) + | The database will be closed now. + | + | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | + | compiler_changed(self, *args) -> 'void' + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? + | + | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) + | + | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) + | + | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) + | + | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) + | + | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) + | + | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) + | + | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) + | + | determined_main(self, *args) -> 'void' + | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function + | + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) + | + | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | + | enum_created(self, *args) -> 'void' + | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) + | + | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) + | + | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) + | + | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) + | + | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) + | + | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index + | + | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) + | + | flow_chart_created(self, *args) -> 'void' + | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) + | + | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) + | + | func_added(self, *args) -> 'void' + | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) + | + | func_noret_changed(self, *args) -> 'void' + | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) + | + | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) + | + | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) + | + | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | idasgn_loaded(self, *args) -> 'void' + | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) + | + | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. + | + | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) + | + | loader_finished(self, *args) -> 'void' + | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) + | + | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) + | Local types have been changed. + | + | make_code(self, *args) -> 'void' + | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) + | + | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) + | + | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | + | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | renamed(self, *args) -> 'void' + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr + | + | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) + | + | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) + | + | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) + | + | savebase(self, *args) -> 'void' + | savebase(self) + | The database is being saved. + | + | segm_added(self, *args) -> 'void' + | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm + | + | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) + | + | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) + | + | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) + | + | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) + | + | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved + | + | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) + | + | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) + | + | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) + | + | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) + | + | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags + | + | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | + | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) + | + | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) + | + | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) + | + | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) + | + | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) + | + | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) + | + | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed + | + | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) + | + | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) + | + | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | upgraded(self, *args) -> 'void' + | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class IDP_Hooks in module ida_idp: + +class IDP_Hooks(builtins.object) + | Proxy of C++ IDP_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDP_Hooks(...) + | delete_IDP_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue + | + | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue + | + | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_adjust_libfunc_ea(self, *args) -> 'int' + | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. + | + | ev_adjust_refinfo(self, *args) -> 'int' + | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted + | + | ev_ana_insn(self, *args) -> 'bool' + | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. + | + | ev_analyze_prolog(self, *args) -> 'int' + | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm + | + | ev_assemble(self, *args) -> 'PyObject *' + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). + | + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes + | + | ev_auto_queue_empty(self, *args) -> 'int' + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally + | + | ev_calc_arglocs(self, *args) -> 'int' + | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) + | + | ev_calc_next_eas(self, *args) -> 'int' + | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) + | + | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented + | + | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error + | + | ev_calc_spdelta(self, *args) -> 'int' + | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_calc_step_over(self, *args) -> 'int' + | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed + | + | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs + | + | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int + | Reserved. + | + | ev_can_have_type(self, *args) -> 'int' + | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed + | + | ev_cmp_operands(self, *args) -> 'int' + | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented + | + | ev_coagulate(self, *args) -> 'int' + | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes + | + | ev_coagulate_dref(self, *args) -> 'int' + | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue + | + | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored + | + | ev_create_func_frame(self, *args) -> 'int' + | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 + | + | ev_create_switch_xrefs(self, *args) -> 'int' + | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM + | + | ev_creating_segm(self, *args) -> 'int' + | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created + | + | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue + | + | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue + | + | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. + | + | ev_demangle_name(self, *args) -> 'PyObject *' + | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! + | + | ev_emu_insn(self, *args) -> 'bool' + | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction + | + | ev_endbinary(self, *args) -> 'int' + | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? + | + | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo + | + | ev_equal_reglocs(self, *args) -> 'int' + | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented + | + | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error + | + | ev_find_op_value(self, *args) -> 'PyObject *' + | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_find_reg_value(self, *args) -> 'PyObject *' + | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_func_bounds(self, *args) -> 'int' + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void + | + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void + | + | ev_gen_map_file(self, *args) -> 'int' + | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error + | + | ev_gen_regvar_def(self, *args) -> 'int' + | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented + | + | ev_gen_src_file_lnnum(self, *args) -> 'int' + | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented + | + | ev_gen_stkvar_def(self, *args) -> 'int' + | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_abi_info(self, *args) -> 'int' + | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok + | + | ev_get_autocmt(self, *args) -> 'PyObject *' + | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case + | + | ev_get_bg_color(self, *args) -> 'int' + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set + | + | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented + | + | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode + | + | ev_get_dbr_opnum(self, *args) -> 'int' + | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_default_enum_size(self, *args) -> 'int' + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead + | + | ev_get_frame_retsize(self, *args) -> 'int' + | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_macro_insn_head(self, *args) -> 'int' + | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_operand_string(self, *args) -> 'PyObject *' + | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented + | + | ev_get_reg_info(self, *args) -> 'int' + | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented + | + | ev_get_reg_name(self, *args) -> 'PyObject *' + | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success + | + | ev_get_simd_types(self, *args) -> 'int' + | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types + | + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented + | + | ev_get_stkvar_scale_factor(self, *args) -> 'int' + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback + | + | ev_getreg(self, *args) -> 'int' + | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) + | + | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure + | + | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no + | + | ev_is_align_insn(self, *args) -> 'int' + | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction + | + | ev_is_alloca_probe(self, *args) -> 'int' + | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no + | + | ev_is_basic_block_end(self, *args) -> 'int' + | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_call_insn(self, *args) -> 'int' + | ev_is_call_insn(self, insn) -> int + | Is the instruction a "call"? + | + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented + | + | ev_is_far_jump(self, *args) -> 'int' + | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no + | + | ev_is_indirect_jump(self, *args) -> 'int' + | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes + | + | ev_is_insn_table_jump(self, *args) -> 'int' + | ev_is_insn_table_jump(self) -> int + | Reserved. + | + | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' + | + | ev_is_ret_insn(self, *args) -> 'int' + | ev_is_ret_insn(self, insn, strict) -> int + | Is the instruction a "return"? + | + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_sane_insn(self, *args) -> 'int' + | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. + | + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program + | + | ev_is_sp_based(self, *args) -> 'int' + | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok + | + | ev_is_switch(self, *args) -> 'int' + | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented + | + | ev_last_cb_before_loader(self, *args) -> 'int' + | ev_last_cb_before_loader(self) -> int + | + | ev_loader(self, *args) -> 'int' + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders + | + | ev_lower_func_type(self, *args) -> 'int' + | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti + | + | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer + | + | ev_may_be_func(self, *args) -> 'int' + | ev_may_be_func(self, insn, state) -> int + | Can a function start here? + | + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) + | + | ev_may_show_sreg(self, *args) -> 'int' + | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented + | + | ev_moving_segm(self, *args) -> 'int' + | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop + | + | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed + | + | ev_newbinary(self, *args) -> 'int' + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load + | + | ev_newfile(self, *args) -> 'int' + | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_newprc(self, *args) -> 'int' + | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit + | + | ev_next_exec_insn(self, *args) -> 'int' + | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_oldfile(self, *args) -> 'int' + | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_out_assumes(self, *args) -> 'int' + | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_data(self, *args) -> 'int' + | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_footer(self, *args) -> 'int' + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_header(self, *args) -> 'int' + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_insn(self, *args) -> 'bool' + | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_label(self, *args) -> 'int' + | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue + | + | ev_out_mnem(self, *args) -> 'int' + | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented + | + | ev_out_operand(self, *args) -> 'bool' + | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden + | + | ev_out_segend(self, *args) -> 'int' + | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_segstart(self, *args) -> 'int' + | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_special_item(self, *args) -> 'int' + | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) + | + | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown + | + | ev_rename(self, *args) -> 'int' + | ev_rename(self, ea, new_name) -> int + | The kernel is going to rename a byte. + | + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name + | + | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | + | ev_set_code16_mode(self, *args) -> 'int' + | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode + | + | ev_set_idp_options(self, *args) -> 'int' + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) + | + | ev_set_proc_options(self, *args) -> 'int' + | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string + | + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void + | + | ev_str2reg(self, *args) -> 'int' + | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded + | + | ev_term(self, *args) -> 'int' + | ev_term(self) -> int + | The IDP module is being unloaded. + | + | ev_treat_hindering_item(self, *args) -> 'int' + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item + | + | ev_undefine(self, *args) -> 'int' + | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. + | + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented + | + | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented + | + | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented + | + | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction + | + | ev_validate_flirt_func(self, *args) -> 'int' + | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated + | + | ev_verify_noreturn(self, *args) -> 'int' + | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag + | + | ev_verify_sp(self, *args) -> 'int' + | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __ph in module ida_idp: + +class __ph(builtins.object) + | # ---------------------------------------------------------------------- + | + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cnbits + | + | dnbits + | + | flag + | + | icode_return + | + | id + | + | instruc + | + | instruc_end + | + | instruc_start + | + | reg_code_sreg + | + | reg_data_sreg + | + | reg_first_sreg + | + | reg_last_sreg + | + | regnames + | + | segreg_size + | + | tbyte_size + | + | version + +Help on class _idp_cvar_t in module ida_idp: + +class _idp_cvar_t(builtins.object) + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ash + +Help on class _notify_when_dispatcher_t in module ida_idp: + +class _notify_when_dispatcher_t(builtins.object) + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | _find(self, fun) + | + | dispatch(self, slot, *args) + | + | notify_when(self, when, fun) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | _IDB_Hooks = <class 'ida_idp._notify_when_dispatcher_t._IDB_Hooks'> + | Proxy of C++ IDB_Hooks class. + | + | _IDP_Hooks = <class 'ida_idp._notify_when_dispatcher_t._IDP_Hooks'> + | Proxy of C++ IDP_Hooks class. + | + | _callback_t = <class 'ida_idp._notify_when_dispatcher_t._callback_t'> + +Help on class _processor_t in module ida_idp: + +class _processor_t(builtins.object) + | Proxy of C++ processor_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> _processor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete__processor_t(...) + | delete__processor_t(self) + | + | calcrel_in_bits(self, *args) -> 'bool' + | calcrel_in_bits(self) -> bool + | + | cbsize(self, *args) -> 'int' + | cbsize(self) -> int + | + | dbsize(self, *args) -> 'int' + | dbsize(self) -> int + | + | delay_slot_insn(self, *args) -> 'bool' + | delay_slot_insn(self, ea, bexec, fexec) -> bool + | + | Parameters + | ---------- + | ea: ea_t * + | bexec: bool * + | fexec: bool * + | + | get_default_segm_bitness(self, *args) -> 'int' + | get_default_segm_bitness(self, is_64bit_app) -> int + | + | Parameters + | ---------- + | is_64bit_app: bool + | + | get_proc_index(self, *args) -> 'int' + | get_proc_index(self) -> int + | + | get_stkvar_scale(self, *args) -> 'int' + | get_stkvar_scale(self) -> int + | + | has_code16_bit(self, *args) -> 'bool' + | has_code16_bit(self) -> bool + | + | has_idp_opts(self, *args) -> 'bool' + | has_idp_opts(self) -> bool + | + | has_realcvt(self, *args) -> 'bool' + | has_realcvt(self) -> bool + | + | has_segregs(self, *args) -> 'bool' + | has_segregs(self) -> bool + | + | privrange_changed(self, *args) -> 'ssize_t' + | privrange_changed(self, old_privrange, delta) -> ssize_t + | + | Parameters + | ---------- + | old_privrange: range_t const & + | delta: adiff_t + | + | sizeof_ldbl(self, *args) -> 'size_t' + | sizeof_ldbl(self) -> size_t + | + | stkup(self, *args) -> 'bool' + | stkup(self) -> bool + | + | supports_calcrel(self, *args) -> 'bool' + | supports_calcrel(self) -> bool + | + | supports_macros(self, *args) -> 'bool' + | supports_macros(self) -> bool + | + | ti(self, *args) -> 'bool' + | ti(self) -> bool + | + | use32(self, *args) -> 'bool' + | use32(self) -> bool + | + | use64(self, *args) -> 'bool' + | use64(self) -> bool + | + | use_mappings(self, *args) -> 'bool' + | use_mappings(self) -> bool + | + | use_tbyte(self, *args) -> 'bool' + | use_tbyte(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | add_cref(*args) -> 'ssize_t' + | add_cref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum cref_t + | + | add_dref(*args) -> 'ssize_t' + | add_dref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum dref_t + | + | adjust_argloc(*args) -> 'ssize_t' + | adjust_argloc(argloc, type, size) -> ssize_t + | + | Parameters + | ---------- + | argloc: argloc_t * + | type: tinfo_t const * + | size: int + | + | adjust_libfunc_ea(*args) -> 'ssize_t' + | adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + | + | Parameters + | ---------- + | sig: idasgn_t const & + | libfun: libfunc_t const & + | ea: ea_t * + | + | adjust_refinfo(*args) -> 'ssize_t' + | adjust_refinfo(ri, ea, n, fd) -> ssize_t + | + | Parameters + | ---------- + | ri: refinfo_t * + | ea: ea_t + | n: int + | fd: fixup_data_t const & + | + | ana_insn(*args) -> 'ssize_t' + | ana_insn(out) -> ssize_t + | + | Parameters + | ---------- + | out: insn_t * + | + | analyze_prolog(*args) -> 'ssize_t' + | analyze_prolog(fct_ea) -> ssize_t + | + | Parameters + | ---------- + | fct_ea: ea_t + | + | arch_changed(*args) -> 'ssize_t' + | arch_changed() -> ssize_t + | + | arg_addrs_ready(*args) -> 'ssize_t' + | arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + | + | Parameters + | ---------- + | caller: ea_t + | n: int + | tif: tinfo_t const & + | addrs: ea_t * + | + | asm_installed(*args) -> 'ssize_t' + | asm_installed(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | assemble(*args) -> 'ssize_t' + | assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + | + | Parameters + | ---------- + | _bin: uchar * + | ea: ea_t + | cs: ea_t + | ip: ea_t + | _use32: bool + | line: char const * + | + | auto_queue_empty(*args) -> 'void' + | auto_queue_empty(type) + | + | Parameters + | ---------- + | type: int + | + | calc_arglocs(*args) -> 'ssize_t' + | calc_arglocs(fti) -> ssize_t + | + | Parameters + | ---------- + | fti: func_type_data_t * + | + | calc_cdecl_purged_bytes(*args) -> 'ssize_t' + | calc_cdecl_purged_bytes(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | calc_next_eas(*args) -> 'ssize_t' + | calc_next_eas(res, insn, over) -> ssize_t + | + | Parameters + | ---------- + | res: eavec_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | over: bool + | + | calc_purged_bytes(*args) -> 'ssize_t' + | calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + | + | Parameters + | ---------- + | p_purged_bytes: int * + | fti: func_type_data_t const & + | + | calc_retloc(*args) -> 'ssize_t' + | calc_retloc(retloc, rettype, cc) -> ssize_t + | + | Parameters + | ---------- + | retloc: argloc_t * + | rettype: tinfo_t const & + | cc: cm_t + | + | calc_spdelta(*args) -> 'ssize_t' + | calc_spdelta(spdelta, ins) -> ssize_t + | + | Parameters + | ---------- + | spdelta: sval_t * + | ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | calc_step_over(*args) -> 'ssize_t' + | calc_step_over(target, ip) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ip: ea_t + | + | calc_switch_cases(*args) -> 'ssize_t' + | calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + | + | Parameters + | ---------- + | casevec: void * + | targets: eavec_t * + | insn_ea: ea_t + | si: switch_info_t const & + | + | calc_varglocs(*args) -> 'ssize_t' + | calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + | + | Parameters + | ---------- + | ftd: func_type_data_t * + | regs: regobjs_t * + | stkargs: relobj_t * + | nfixed: int + | + | calcrel(*args) -> 'bytevec_t *, size_t *' + | calcrel(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | can_have_type(*args) -> 'ssize_t' + | can_have_type(op) -> ssize_t + | + | Parameters + | ---------- + | op: op_t const & + | + | clean_tbit(*args) -> 'ssize_t' + | clean_tbit(ea, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | cmp_operands(*args) -> 'ssize_t' + | cmp_operands(op1, op2) -> ssize_t + | + | Parameters + | ---------- + | op1: op_t const & + | op2: op_t const & + | + | coagulate(*args) -> 'ssize_t' + | coagulate(start_ea) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | + | coagulate_dref(*args) -> 'ssize_t' + | coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | may_define: bool + | code_ea: ea_t * + | + | create_flat_group(*args) -> 'ssize_t' + | create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + | + | Parameters + | ---------- + | image_base: ea_t + | bitness: int + | dataseg_sel: sel_t + | + | create_func_frame(*args) -> 'ssize_t' + | create_func_frame(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | create_merge_handlers(*args) -> 'ssize_t' + | create_merge_handlers(md) -> ssize_t + | + | Parameters + | ---------- + | md: merge_data_t * + | + | create_switch_xrefs(*args) -> 'ssize_t' + | create_switch_xrefs(jumpea, si) -> ssize_t + | + | Parameters + | ---------- + | jumpea: ea_t + | si: switch_info_t const & + | + | creating_segm(*args) -> 'ssize_t' + | creating_segm(seg) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | + | decorate_name(*args) -> 'ssize_t' + | decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + | + | Parameters + | ---------- + | outbuf: qstring * + | name: char const * + | mangle: bool + | cc: cm_t + | type: tinfo_t const & + | + | del_cref(*args) -> 'ssize_t' + | del_cref(_from, to, expand) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | expand: bool + | + | del_dref(*args) -> 'ssize_t' + | del_dref(_from, to) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | + | demangle_name(*args) -> 'int' + | demangle_name(res, name, disable_mask, demreq) -> ssize_t + | + | Parameters + | ---------- + | res: int32 * + | name: char const * + | disable_mask: uint32 + | demreq: int + | + | emu_insn(*args) -> 'ssize_t' + | emu_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | endbinary(*args) -> 'ssize_t' + | endbinary(ok) -> ssize_t + | + | Parameters + | ---------- + | ok: bool + | + | equal_reglocs(*args) -> 'ssize_t' + | equal_reglocs(a1, a2) -> ssize_t + | + | Parameters + | ---------- + | a1: argloc_t const & + | a2: argloc_t const & + | + | extract_address(*args) -> 'ssize_t' + | extract_address(out_ea, screen_ea, string, x) -> ssize_t + | + | Parameters + | ---------- + | out_ea: ea_t * + | screen_ea: ea_t + | string: char const * + | x: size_t + | + | find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_op_value(insn, op) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | op: int + | + | find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_reg_value(insn, reg) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | reg: int + | + | func_bounds(*args) -> 'ssize_t' + | func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + | + | Parameters + | ---------- + | possible_return_code: int * + | pfn: func_t * + | max_func_end_ea: ea_t + | + | gen_asm_or_lst(*args) -> 'ssize_t' + | gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + | + | Parameters + | ---------- + | starting: bool + | fp: FILE * + | is_asm: bool + | flags: int + | outline: void * + | + | gen_map_file(*args) -> 'ssize_t' + | gen_map_file(nlines, fp) -> ssize_t + | + | Parameters + | ---------- + | nlines: int * + | fp: FILE * + | + | gen_regvar_def(*args) -> 'ssize_t' + | gen_regvar_def(ctx, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | v: regvar_t * + | + | gen_src_file_lnnum(*args) -> 'ssize_t' + | gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | file: char const * + | lnnum: size_t + | + | gen_stkvar_def(*args) -> 'ssize_t' + | gen_stkvar_def(ctx, mptr, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | mptr: member_t const * + | v: sval_t + | + | get_abi_info(*args) -> 'ssize_t' + | get_abi_info(abi_names, abi_opts, comp) -> ssize_t + | + | Parameters + | ---------- + | abi_names: qstrvec_t * + | abi_opts: qstrvec_t * + | comp: comp_t + | + | get_autocmt(*args) -> 'qstring *' + | get_autocmt(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_bg_color(*args) -> 'ssize_t' + | get_bg_color(color, ea) -> ssize_t + | + | Parameters + | ---------- + | color: bgcolor_t * + | ea: ea_t + | + | get_cc_regs(*args) -> 'ssize_t' + | get_cc_regs(regs, cc) -> ssize_t + | + | Parameters + | ---------- + | regs: callregs_t * + | cc: cm_t + | + | get_code16_mode(*args) -> 'bool' + | get_code16_mode(ea) -> bool + | + | Parameters + | ---------- + | ea: ea_t + | + | get_dbr_opnum(*args) -> 'ssize_t' + | get_dbr_opnum(opnum, insn) -> ssize_t + | + | Parameters + | ---------- + | opnum: int * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_frame_retsize(*args) -> 'ssize_t' + | get_frame_retsize(retsize, pfn) -> ssize_t + | + | Parameters + | ---------- + | retsize: int * + | pfn: func_t const * + | + | get_idd_opinfo(*args) -> 'ssize_t' + | get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | opinf: idd_opinfo_t * + | ea: ea_t + | n: int + | thread_id: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | get_macro_insn_head(*args) -> 'ssize_t' + | get_macro_insn_head(head, ip) -> ssize_t + | + | Parameters + | ---------- + | head: ea_t * + | ip: ea_t + | + | get_operand_string(*args) -> 'qstring *' + | get_operand_string(insn, opnum) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | opnum: int + | + | get_reg_accesses(*args) -> 'ssize_t' + | get_reg_accesses(accvec, insn, flags) -> ssize_t + | + | Parameters + | ---------- + | accvec: reg_accesses_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | flags: int + | + | get_reg_info(*args) -> 'char const *' + | get_reg_info(regname, bitrange) -> char const * + | + | Parameters + | ---------- + | regname: char const * + | bitrange: bitrange_t * + | + | get_reg_name(*args) -> 'qstring *' + | get_reg_name(reg, width, reghi) -> ssize_t + | + | Parameters + | ---------- + | reg: int + | width: size_t + | reghi: int + | + | get_simd_types(*args) -> 'ssize_t' + | get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + | + | Parameters + | ---------- + | out: void * + | simd_attrs: simd_info_t const * + | argloc: argloc_t const * + | create_tifs: bool + | + | get_stkarg_area_info(*args) -> 'ssize_t' + | get_stkarg_area_info(out, cc) -> ssize_t + | + | Parameters + | ---------- + | out: stkarg_area_info_t * + | cc: cm_t + | + | get_stkvar_scale_factor(*args) -> 'ssize_t' + | get_stkvar_scale_factor() -> ssize_t + | + | getreg(*args) -> 'ssize_t' + | getreg(rv, regnum) -> ssize_t + | + | Parameters + | ---------- + | rv: uval_t * + | regnum: int + | + | init(*args) -> 'ssize_t' + | init(idp_modname) -> ssize_t + | + | Parameters + | ---------- + | idp_modname: char const * + | + | insn_reads_tbit(*args) -> 'ssize_t' + | insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | is_align_insn(*args) -> 'ssize_t' + | is_align_insn(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_alloca_probe(*args) -> 'ssize_t' + | is_alloca_probe(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_basic_block_end(*args) -> 'ssize_t' + | is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | call_insn_stops_block: bool + | + | is_call_insn(*args) -> 'ssize_t' + | is_call_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_cond_insn(*args) -> 'ssize_t' + | is_cond_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_control_flow_guard(*args) -> 'ssize_t' + | is_control_flow_guard(p_reg, insn) -> ssize_t + | + | Parameters + | ---------- + | p_reg: int * + | insn: insn_t const * + | + | is_far_jump(*args) -> 'ssize_t' + | is_far_jump(icode) -> ssize_t + | + | Parameters + | ---------- + | icode: int + | + | is_indirect_jump(*args) -> 'ssize_t' + | is_indirect_jump(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_jump_func(*args) -> 'ssize_t' + | is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | jump_target: ea_t * + | func_pointer: ea_t * + | + | is_ret_insn(*args) -> 'ssize_t' + | is_ret_insn(insn, strict) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | strict: bool + | + | is_sane_insn(*args) -> 'ssize_t' + | is_sane_insn(insn, no_crefs) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | no_crefs: int + | + | is_sp_based(*args) -> 'ssize_t' + | is_sp_based(insn, x) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | x: op_t const & + | + | is_switch(*args) -> 'ssize_t' + | is_switch(si, insn) -> ssize_t + | + | Parameters + | ---------- + | si: switch_info_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | loader_elf_machine(*args) -> 'ssize_t' + | loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + | + | Parameters + | ---------- + | li: linput_t * + | machine_type: int + | p_procname: char const ** + | p_pd: proc_def_t ** + | ldr: elf_loader_t * + | reader: reader_t * + | + | lower_func_type(*args) -> 'ssize_t' + | lower_func_type(argnums, fti) -> ssize_t + | + | Parameters + | ---------- + | argnums: intvec_t * + | fti: func_type_data_t * + | + | max_ptr_size(*args) -> 'ssize_t' + | max_ptr_size() -> ssize_t + | + | may_be_func(*args) -> 'ssize_t' + | may_be_func(insn, state) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | state: int + | + | may_show_sreg(*args) -> 'ssize_t' + | may_show_sreg(current_ea) -> ssize_t + | + | Parameters + | ---------- + | current_ea: ea_t + | + | moving_segm(*args) -> 'ssize_t' + | moving_segm(seg, to, flags) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | to: ea_t + | flags: int + | + | newasm(*args) -> 'ssize_t' + | newasm(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | newbinary(*args) -> 'ssize_t' + | newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + | + | Parameters + | ---------- + | filename: char const * + | fileoff: qoff64_t + | basepara: ea_t + | binoff: ea_t + | nbytes: uint64 + | + | newfile(*args) -> 'ssize_t' + | newfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | newprc(*args) -> 'ssize_t' + | newprc(pnum, keep_cfg) -> ssize_t + | + | Parameters + | ---------- + | pnum: int + | keep_cfg: bool + | + | next_exec_insn(*args) -> 'ssize_t' + | next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ea: ea_t + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | notify(*args) -> 'ssize_t' + | notify(event_code) -> ssize_t + | + | Parameters + | ---------- + | event_code: enum processor_t::event_t + | + | oldfile(*args) -> 'ssize_t' + | oldfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | out_assumes(*args) -> 'ssize_t' + | out_assumes(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_data(*args) -> 'ssize_t' + | out_data(ctx, analyze_only) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | analyze_only: bool + | + | out_footer(*args) -> 'ssize_t' + | out_footer(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_header(*args) -> 'ssize_t' + | out_header(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_insn(*args) -> 'ssize_t' + | out_insn(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_label(*args) -> 'ssize_t' + | out_label(ctx, colored_name) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | colored_name: char const * + | + | out_mnem(*args) -> 'ssize_t' + | out_mnem(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_operand(*args) -> 'ssize_t' + | out_operand(ctx, op) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | op: op_t const & + | + | out_segend(*args) -> 'ssize_t' + | out_segend(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_segstart(*args) -> 'ssize_t' + | out_segstart(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_special_item(*args) -> 'ssize_t' + | out_special_item(ctx, segtype) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | segtype: uchar + | + | realcvt(*args) -> 'fpvalue_error_t' + | realcvt(m, e, swt) -> fpvalue_error_t + | + | Parameters + | ---------- + | m: void * + | e: fpvalue_t * + | swt: uint16 + | + | rename(*args) -> 'ssize_t' + | rename(ea, new_name, flags) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | new_name: char const * + | flags: int + | + | set_code16_mode(*args) -> 'ssize_t' + | set_code16_mode(ea, code16=True) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | code16: bool + | + | set_idp_options(*args) -> 'char const *' + | set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + | + | Parameters + | ---------- + | keyword: char const * + | vtype: int + | value: void const * + | idb_loaded: bool + | + | set_proc_options(*args) -> 'ssize_t' + | set_proc_options(options, confidence) -> ssize_t + | + | Parameters + | ---------- + | options: char const * + | confidence: int + | + | setup_til(*args) -> 'ssize_t' + | setup_til() -> ssize_t + | + | str2reg(*args) -> 'ssize_t' + | str2reg(regname) -> ssize_t + | + | Parameters + | ---------- + | regname: char const * + | + | term(*args) -> 'ssize_t' + | term() -> ssize_t + | + | treat_hindering_item(*args) -> 'ssize_t' + | treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + | + | Parameters + | ---------- + | hindering_item_ea: ea_t + | new_item_flags: flags64_t + | new_item_ea: ea_t + | new_item_length: asize_t + | + | undefine(*args) -> 'ssize_t' + | undefine(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | update_call_stack(*args) -> 'ssize_t' + | update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | stack: call_stack_t * + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | use_arg_types(*args) -> 'ssize_t' + | use_arg_types(ea, fti, rargs) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | fti: func_type_data_t * + | rargs: void * + | + | use_regarg_type(*args) -> 'ssize_t' + | use_regarg_type(idx, ea, rargs) -> ssize_t + | + | Parameters + | ---------- + | idx: int * + | ea: ea_t + | rargs: void * + | + | use_stkarg_type(*args) -> 'ssize_t' + | use_stkarg_type(ea, arg) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | arg: funcarg_t const & + | + | validate_flirt_func(*args) -> 'ssize_t' + | validate_flirt_func(start_ea, funcname) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | funcname: char const * + | + | verify_noreturn(*args) -> 'ssize_t' + | verify_noreturn(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | verify_sp(*args) -> 'ssize_t' + | verify_sp(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_add_cref = 64 + | + | ev_add_dref = 65 + | + | ev_adjust_argloc = 2013 + | + | ev_adjust_libfunc_ea = 73 + | + | ev_adjust_refinfo = 50 + | + | ev_ana_insn = 10 + | + | ev_analyze_prolog = 81 + | + | ev_arch_changed = 2021 + | + | ev_arg_addrs_ready = 2019 + | + | ev_asm_installed = 91 + | + | ev_assemble = 74 + | + | ev_auto_queue_empty = 71 + | + | ev_broadcast = 94 + | + | ev_calc_arglocs = 2011 + | + | ev_calc_cdecl_purged_bytes = 2008 + | + | ev_calc_next_eas = 1002 + | + | ev_calc_purged_bytes = 2009 + | + | ev_calc_retloc = 2010 + | + | ev_calc_spdelta = 82 + | + | ev_calc_step_over = 1001 + | + | ev_calc_switch_cases = 42 + | + | ev_calc_varglocs = 2012 + | + | ev_calcrel = 83 + | + | ev_can_have_type = 48 + | + | ev_clean_tbit = 1006 + | + | ev_cmp_operands = 49 + | + | ev_coagulate = 28 + | + | ev_coagulate_dref = 68 + | + | ev_create_flat_group = 79 + | + | ev_create_func_frame = 60 + | + | ev_create_merge_handlers = 95 + | + | ev_create_switch_xrefs = 43 + | + | ev_creating_segm = 26 + | + | ev_decorate_name = 2020 + | + | ev_del_cref = 66 + | + | ev_del_dref = 67 + | + | ev_delay_slot_insn = 46 + | + | ev_demangle_name = 63 + | + | ev_emu_insn = 11 + | + | ev_endbinary = 7 + | + | ev_ending_undo = 87 + | + | ev_equal_reglocs = 2015 + | + | ev_extract_address = 75 + | + | ev_find_op_value = 85 + | + | ev_find_reg_value = 84 + | + | ev_func_bounds = 57 + | + | ev_gen_asm_or_lst = 77 + | + | ev_gen_map_file = 78 + | + | ev_gen_regvar_def = 24 + | + | ev_gen_src_file_lnnum = 25 + | + | ev_gen_stkvar_def = 23 + | + | ev_get_abi_info = 2001 + | + | ev_get_autocmt = 54 + | + | ev_get_bg_color = 55 + | + | ev_get_cc_regs = 2004 + | + | ev_get_code16_mode = 89 + | + | ev_get_dbr_opnum = 1004 + | + | ev_get_default_enum_size = 2003 + | + | ev_get_frame_retsize = 61 + | + | ev_get_idd_opinfo = 1007 + | + | ev_get_macro_insn_head = 1003 + | + | ev_get_operand_string = 51 + | + | ev_get_procmod = 90 + | + | ev_get_reg_accesses = 92 + | + | ev_get_reg_info = 1008 + | + | ev_get_reg_name = 52 + | + | ev_get_simd_types = 2007 + | + | ev_get_stkarg_area_info = 2022 + | + | ev_get_stkvar_scale_factor = 62 + | + | ev_getreg = 80 + | + | ev_init = 0 + | + | ev_insn_reads_tbit = 1005 + | + | ev_is_align_insn = 44 + | + | ev_is_alloca_probe = 45 + | + | ev_is_basic_block_end = 38 + | + | ev_is_call_insn = 35 + | + | ev_is_cond_insn = 34 + | + | ev_is_control_flow_guard = 93 + | + | ev_is_far_jump = 32 + | + | ev_is_indirect_jump = 39 + | + | ev_is_insn_table_jump = 40 + | + | ev_is_jump_func = 56 + | + | ev_is_ret_insn = 36 + | + | ev_is_sane_insn = 33 + | + | ev_is_sp_based = 47 + | + | ev_is_switch = 41 + | + | ev_last_cb_before_debugger = 97 + | + | ev_last_cb_before_loader = 2023 + | + | ev_last_cb_before_type_callbacks = 1010 + | + | ev_loader = 3000 + | + | ev_loader_elf_machine = 70 + | + | ev_lower_func_type = 2014 + | + | ev_max_ptr_size = 2002 + | + | ev_may_be_func = 37 + | + | ev_may_show_sreg = 69 + | + | ev_moving_segm = 27 + | + | ev_newasm = 3 + | + | ev_newbinary = 6 + | + | ev_newfile = 4 + | + | ev_newprc = 2 + | + | ev_next_exec_insn = 1000 + | + | ev_obsolete1 = 2005 + | + | ev_obsolete2 = 2006 + | + | ev_oldfile = 5 + | + | ev_out_assumes = 16 + | + | ev_out_data = 20 + | + | ev_out_footer = 13 + | + | ev_out_header = 12 + | + | ev_out_insn = 17 + | + | ev_out_label = 21 + | + | ev_out_mnem = 18 + | + | ev_out_operand = 19 + | + | ev_out_segend = 15 + | + | ev_out_segstart = 14 + | + | ev_out_special_item = 22 + | + | ev_privrange_changed = 96 + | + | ev_realcvt = 76 + | + | ev_rename = 31 + | + | ev_replaying_undo = 86 + | + | ev_set_code16_mode = 88 + | + | ev_set_idp_options = 8 + | + | ev_set_proc_options = 9 + | + | ev_setup_til = 2000 + | + | ev_str2reg = 53 + | + | ev_term = 1 + | + | ev_treat_hindering_item = 30 + | + | ev_undefine = 29 + | + | ev_update_call_stack = 1009 + | + | ev_use_arg_types = 2018 + | + | ev_use_regarg_type = 2017 + | + | ev_use_stkarg_type = 2016 + | + | ev_validate_flirt_func = 72 + | + | ev_verify_noreturn = 59 + | + | ev_verify_sp = 58 + +Help on class _processor_t_Trampoline_IDB_Hooks in module ida_idp: + +class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) + | Proxy of C++ IDB_Hooks class. + | + | Method resolution order: + | _processor_t_Trampoline_IDB_Hooks + | IDB_Hooks + | builtins.object + | + | Methods defined here: + | + | __init__(self, proc) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) + | + | _processor_t_Trampoline_IDB_Hooks__make_parent_caller = __make_parent_caller(self, key) + | + | ---------------------------------------------------------------------- + | Methods inherited from IDB_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDB_Hooks(...) + | delete_IDB_Hooks(self) + | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | + | allsegs_moved(self, *args) -> 'void' + | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) + | + | auto_empty(self, *args) -> 'void' + | auto_empty(self) + | + | auto_empty_finally(self, *args) -> 'void' + | auto_empty_finally(self) + | + | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. + | + | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) + | + | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) + | + | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) + | + | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) + | + | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info + | + | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) + | + | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) + | + | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) + | + | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) + | + | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) + | + | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | closebase(self, *args) -> 'void' + | closebase(self) + | The database will be closed now. + | + | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | + | compiler_changed(self, *args) -> 'void' + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? + | + | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) + | + | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) + | + | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) + | + | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) + | + | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) + | + | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) + | + | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) + | + | determined_main(self, *args) -> 'void' + | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function + | + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) + | + | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | + | enum_created(self, *args) -> 'void' + | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) + | + | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) + | + | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) + | + | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) + | + | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) + | + | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index + | + | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) + | + | flow_chart_created(self, *args) -> 'void' + | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) + | + | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) + | + | func_added(self, *args) -> 'void' + | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) + | + | func_noret_changed(self, *args) -> 'void' + | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) + | + | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) + | + | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) + | + | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | idasgn_loaded(self, *args) -> 'void' + | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) + | + | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. + | + | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) + | + | loader_finished(self, *args) -> 'void' + | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) + | + | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) + | Local types have been changed. + | + | make_code(self, *args) -> 'void' + | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) + | + | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) + | + | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | + | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | renamed(self, *args) -> 'void' + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr + | + | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) + | + | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) + | + | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) + | + | savebase(self, *args) -> 'void' + | savebase(self) + | The database is being saved. + | + | segm_added(self, *args) -> 'void' + | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm + | + | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) + | + | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) + | + | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) + | + | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) + | + | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved + | + | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) + | + | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) + | + | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) + | + | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) + | + | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags + | + | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | + | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) + | + | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) + | + | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) + | + | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) + | + | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) + | + | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) + | + | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed + | + | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) + | + | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) + | + | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | upgraded(self, *args) -> 'void' + | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from IDB_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function _processor_t_add_cref in module ida_idp: + +_processor_t_add_cref(*args) -> 'ssize_t' + _processor_t_add_cref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum cref_t + +Help on function _processor_t_add_dref in module ida_idp: + +_processor_t_add_dref(*args) -> 'ssize_t' + _processor_t_add_dref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum dref_t + +Help on function _processor_t_adjust_argloc in module ida_idp: + +_processor_t_adjust_argloc(*args) -> 'ssize_t' + _processor_t_adjust_argloc(argloc, type, size) -> ssize_t + + Parameters + ---------- + argloc: argloc_t * + type: tinfo_t const * + size: int + +Help on function _processor_t_adjust_libfunc_ea in module ida_idp: + +_processor_t_adjust_libfunc_ea(*args) -> 'ssize_t' + _processor_t_adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + + Parameters + ---------- + sig: idasgn_t const & + libfun: libfunc_t const & + ea: ea_t * + +Help on function _processor_t_adjust_refinfo in module ida_idp: + +_processor_t_adjust_refinfo(*args) -> 'ssize_t' + _processor_t_adjust_refinfo(ri, ea, n, fd) -> ssize_t + + Parameters + ---------- + ri: refinfo_t * + ea: ea_t + n: int + fd: fixup_data_t const & + +Help on function _processor_t_ana_insn in module ida_idp: + +_processor_t_ana_insn(*args) -> 'ssize_t' + _processor_t_ana_insn(out) -> ssize_t + + Parameters + ---------- + out: insn_t * + +Help on function _processor_t_analyze_prolog in module ida_idp: + +_processor_t_analyze_prolog(*args) -> 'ssize_t' + _processor_t_analyze_prolog(fct_ea) -> ssize_t + + Parameters + ---------- + fct_ea: ea_t + +Help on function _processor_t_arch_changed in module ida_idp: + +_processor_t_arch_changed(*args) -> 'ssize_t' + _processor_t_arch_changed() -> ssize_t + +Help on function _processor_t_arg_addrs_ready in module ida_idp: + +_processor_t_arg_addrs_ready(*args) -> 'ssize_t' + _processor_t_arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + + Parameters + ---------- + caller: ea_t + n: int + tif: tinfo_t const & + addrs: ea_t * + +Help on function _processor_t_asm_installed in module ida_idp: + +_processor_t_asm_installed(*args) -> 'ssize_t' + _processor_t_asm_installed(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_assemble in module ida_idp: + +_processor_t_assemble(*args) -> 'ssize_t' + _processor_t_assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + + Parameters + ---------- + _bin: uchar * + ea: ea_t + cs: ea_t + ip: ea_t + _use32: bool + line: char const * + +Help on function _processor_t_auto_queue_empty in module ida_idp: + +_processor_t_auto_queue_empty(*args) -> 'void' + _processor_t_auto_queue_empty(type) + + Parameters + ---------- + type: int + +Help on function _processor_t_calc_arglocs in module ida_idp: + +_processor_t_calc_arglocs(*args) -> 'ssize_t' + _processor_t_calc_arglocs(fti) -> ssize_t + + Parameters + ---------- + fti: func_type_data_t * + +Help on function _processor_t_calc_cdecl_purged_bytes in module ida_idp: + +_processor_t_calc_cdecl_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_cdecl_purged_bytes(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_calc_next_eas in module ida_idp: + +_processor_t_calc_next_eas(*args) -> 'ssize_t' + _processor_t_calc_next_eas(res, insn, over) -> ssize_t + + Parameters + ---------- + res: eavec_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + over: bool + +Help on function _processor_t_calc_purged_bytes in module ida_idp: + +_processor_t_calc_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + + Parameters + ---------- + p_purged_bytes: int * + fti: func_type_data_t const & + +Help on function _processor_t_calc_retloc in module ida_idp: + +_processor_t_calc_retloc(*args) -> 'ssize_t' + _processor_t_calc_retloc(retloc, rettype, cc) -> ssize_t + + Parameters + ---------- + retloc: argloc_t * + rettype: tinfo_t const & + cc: cm_t + +Help on function _processor_t_calc_spdelta in module ida_idp: + +_processor_t_calc_spdelta(*args) -> 'ssize_t' + _processor_t_calc_spdelta(spdelta, ins) -> ssize_t + + Parameters + ---------- + spdelta: sval_t * + ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_calc_step_over in module ida_idp: + +_processor_t_calc_step_over(*args) -> 'ssize_t' + _processor_t_calc_step_over(target, ip) -> ssize_t + + Parameters + ---------- + target: ea_t * + ip: ea_t + +Help on function _processor_t_calc_switch_cases in module ida_idp: + +_processor_t_calc_switch_cases(*args) -> 'ssize_t' + _processor_t_calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + + Parameters + ---------- + casevec: void * + targets: eavec_t * + insn_ea: ea_t + si: switch_info_t const & + +Help on function _processor_t_calc_varglocs in module ida_idp: + +_processor_t_calc_varglocs(*args) -> 'ssize_t' + _processor_t_calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + + Parameters + ---------- + ftd: func_type_data_t * + regs: regobjs_t * + stkargs: relobj_t * + nfixed: int + +Help on function _processor_t_calcrel in module ida_idp: + +_processor_t_calcrel(*args) -> 'bytevec_t *, size_t *' + _processor_t_calcrel(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_can_have_type in module ida_idp: + +_processor_t_can_have_type(*args) -> 'ssize_t' + _processor_t_can_have_type(op) -> ssize_t + + Parameters + ---------- + op: op_t const & + +Help on function _processor_t_clean_tbit in module ida_idp: + +_processor_t_clean_tbit(*args) -> 'ssize_t' + _processor_t_clean_tbit(ea, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + ea: ea_t + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_cmp_operands in module ida_idp: + +_processor_t_cmp_operands(*args) -> 'ssize_t' + _processor_t_cmp_operands(op1, op2) -> ssize_t + + Parameters + ---------- + op1: op_t const & + op2: op_t const & + +Help on function _processor_t_coagulate in module ida_idp: + +_processor_t_coagulate(*args) -> 'ssize_t' + _processor_t_coagulate(start_ea) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + +Help on function _processor_t_coagulate_dref in module ida_idp: + +_processor_t_coagulate_dref(*args) -> 'ssize_t' + _processor_t_coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + may_define: bool + code_ea: ea_t * + +Help on function _processor_t_create_flat_group in module ida_idp: + +_processor_t_create_flat_group(*args) -> 'ssize_t' + _processor_t_create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + + Parameters + ---------- + image_base: ea_t + bitness: int + dataseg_sel: sel_t + +Help on function _processor_t_create_func_frame in module ida_idp: + +_processor_t_create_func_frame(*args) -> 'ssize_t' + _processor_t_create_func_frame(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_create_merge_handlers in module ida_idp: + +_processor_t_create_merge_handlers(*args) -> 'ssize_t' + _processor_t_create_merge_handlers(md) -> ssize_t + + Parameters + ---------- + md: merge_data_t * + +Help on function _processor_t_create_switch_xrefs in module ida_idp: + +_processor_t_create_switch_xrefs(*args) -> 'ssize_t' + _processor_t_create_switch_xrefs(jumpea, si) -> ssize_t + + Parameters + ---------- + jumpea: ea_t + si: switch_info_t const & + +Help on function _processor_t_creating_segm in module ida_idp: + +_processor_t_creating_segm(*args) -> 'ssize_t' + _processor_t_creating_segm(seg) -> ssize_t + + Parameters + ---------- + seg: segment_t * + +Help on function _processor_t_decorate_name in module ida_idp: + +_processor_t_decorate_name(*args) -> 'ssize_t' + _processor_t_decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + + Parameters + ---------- + outbuf: qstring * + name: char const * + mangle: bool + cc: cm_t + type: tinfo_t const & + +Help on function _processor_t_del_cref in module ida_idp: + +_processor_t_del_cref(*args) -> 'ssize_t' + _processor_t_del_cref(_from, to, expand) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + expand: bool + +Help on function _processor_t_del_dref in module ida_idp: + +_processor_t_del_dref(*args) -> 'ssize_t' + _processor_t_del_dref(_from, to) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + +Help on function _processor_t_demangle_name in module ida_idp: + +_processor_t_demangle_name(*args) -> 'int' + _processor_t_demangle_name(res, name, disable_mask, demreq) -> ssize_t + + Parameters + ---------- + res: int32 * + name: char const * + disable_mask: uint32 + demreq: int + +Help on function _processor_t_emu_insn in module ida_idp: + +_processor_t_emu_insn(*args) -> 'ssize_t' + _processor_t_emu_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_endbinary in module ida_idp: + +_processor_t_endbinary(*args) -> 'ssize_t' + _processor_t_endbinary(ok) -> ssize_t + + Parameters + ---------- + ok: bool + +Help on function _processor_t_equal_reglocs in module ida_idp: + +_processor_t_equal_reglocs(*args) -> 'ssize_t' + _processor_t_equal_reglocs(a1, a2) -> ssize_t + + Parameters + ---------- + a1: argloc_t const & + a2: argloc_t const & + +Help on function _processor_t_extract_address in module ida_idp: + +_processor_t_extract_address(*args) -> 'ssize_t' + _processor_t_extract_address(out_ea, screen_ea, string, x) -> ssize_t + + Parameters + ---------- + out_ea: ea_t * + screen_ea: ea_t + string: char const * + x: size_t + +Help on function _processor_t_find_op_value in module ida_idp: + +_processor_t_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_op_value(insn, op) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + op: int + +Help on function _processor_t_find_reg_value in module ida_idp: + +_processor_t_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_reg_value(insn, reg) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + reg: int + +Help on function _processor_t_func_bounds in module ida_idp: + +_processor_t_func_bounds(*args) -> 'ssize_t' + _processor_t_func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + + Parameters + ---------- + possible_return_code: int * + pfn: func_t * + max_func_end_ea: ea_t + +Help on function _processor_t_gen_asm_or_lst in module ida_idp: + +_processor_t_gen_asm_or_lst(*args) -> 'ssize_t' + _processor_t_gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + + Parameters + ---------- + starting: bool + fp: FILE * + is_asm: bool + flags: int + outline: void * + +Help on function _processor_t_gen_map_file in module ida_idp: + +_processor_t_gen_map_file(*args) -> 'ssize_t' + _processor_t_gen_map_file(nlines, fp) -> ssize_t + + Parameters + ---------- + nlines: int * + fp: FILE * + +Help on function _processor_t_gen_regvar_def in module ida_idp: + +_processor_t_gen_regvar_def(*args) -> 'ssize_t' + _processor_t_gen_regvar_def(ctx, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + v: regvar_t * + +Help on function _processor_t_gen_src_file_lnnum in module ida_idp: + +_processor_t_gen_src_file_lnnum(*args) -> 'ssize_t' + _processor_t_gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + file: char const * + lnnum: size_t + +Help on function _processor_t_gen_stkvar_def in module ida_idp: + +_processor_t_gen_stkvar_def(*args) -> 'ssize_t' + _processor_t_gen_stkvar_def(ctx, mptr, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + mptr: member_t const * + v: sval_t + +Help on function _processor_t_get_abi_info in module ida_idp: + +_processor_t_get_abi_info(*args) -> 'ssize_t' + _processor_t_get_abi_info(abi_names, abi_opts, comp) -> ssize_t + + Parameters + ---------- + abi_names: qstrvec_t * + abi_opts: qstrvec_t * + comp: comp_t + +Help on function _processor_t_get_autocmt in module ida_idp: + +_processor_t_get_autocmt(*args) -> 'qstring *' + _processor_t_get_autocmt(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_bg_color in module ida_idp: + +_processor_t_get_bg_color(*args) -> 'ssize_t' + _processor_t_get_bg_color(color, ea) -> ssize_t + + Parameters + ---------- + color: bgcolor_t * + ea: ea_t + +Help on function _processor_t_get_cc_regs in module ida_idp: + +_processor_t_get_cc_regs(*args) -> 'ssize_t' + _processor_t_get_cc_regs(regs, cc) -> ssize_t + + Parameters + ---------- + regs: callregs_t * + cc: cm_t + +Help on function _processor_t_get_code16_mode in module ida_idp: + +_processor_t_get_code16_mode(*args) -> 'bool' + _processor_t_get_code16_mode(ea) -> bool + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_get_dbr_opnum in module ida_idp: + +_processor_t_get_dbr_opnum(*args) -> 'ssize_t' + _processor_t_get_dbr_opnum(opnum, insn) -> ssize_t + + Parameters + ---------- + opnum: int * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_frame_retsize in module ida_idp: + +_processor_t_get_frame_retsize(*args) -> 'ssize_t' + _processor_t_get_frame_retsize(retsize, pfn) -> ssize_t + + Parameters + ---------- + retsize: int * + pfn: func_t const * + +Help on function _processor_t_get_idd_opinfo in module ida_idp: + +_processor_t_get_idd_opinfo(*args) -> 'ssize_t' + _processor_t_get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + opinf: idd_opinfo_t * + ea: ea_t + n: int + thread_id: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_get_macro_insn_head in module ida_idp: + +_processor_t_get_macro_insn_head(*args) -> 'ssize_t' + _processor_t_get_macro_insn_head(head, ip) -> ssize_t + + Parameters + ---------- + head: ea_t * + ip: ea_t + +Help on function _processor_t_get_operand_string in module ida_idp: + +_processor_t_get_operand_string(*args) -> 'qstring *' + _processor_t_get_operand_string(insn, opnum) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + opnum: int + +Help on function _processor_t_get_reg_accesses in module ida_idp: + +_processor_t_get_reg_accesses(*args) -> 'ssize_t' + _processor_t_get_reg_accesses(accvec, insn, flags) -> ssize_t + + Parameters + ---------- + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + flags: int + +Help on function _processor_t_get_reg_info in module ida_idp: + +_processor_t_get_reg_info(*args) -> 'char const *' + _processor_t_get_reg_info(regname, bitrange) -> char const * + + Parameters + ---------- + regname: char const * + bitrange: bitrange_t * + +Help on function _processor_t_get_reg_name in module ida_idp: + +_processor_t_get_reg_name(*args) -> 'qstring *' + _processor_t_get_reg_name(reg, width, reghi) -> ssize_t + + Parameters + ---------- + reg: int + width: size_t + reghi: int + +Help on function _processor_t_get_simd_types in module ida_idp: + +_processor_t_get_simd_types(*args) -> 'ssize_t' + _processor_t_get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + + Parameters + ---------- + out: void * + simd_attrs: simd_info_t const * + argloc: argloc_t const * + create_tifs: bool + +Help on function _processor_t_get_stkarg_area_info in module ida_idp: + +_processor_t_get_stkarg_area_info(*args) -> 'ssize_t' + _processor_t_get_stkarg_area_info(out, cc) -> ssize_t + + Parameters + ---------- + out: stkarg_area_info_t * + cc: cm_t + +Help on function _processor_t_get_stkvar_scale_factor in module ida_idp: + +_processor_t_get_stkvar_scale_factor(*args) -> 'ssize_t' + _processor_t_get_stkvar_scale_factor() -> ssize_t + +Help on function _processor_t_getreg in module ida_idp: + +_processor_t_getreg(*args) -> 'ssize_t' + _processor_t_getreg(rv, regnum) -> ssize_t + + Parameters + ---------- + rv: uval_t * + regnum: int + +Help on function _processor_t_init in module ida_idp: + +_processor_t_init(*args) -> 'ssize_t' + _processor_t_init(idp_modname) -> ssize_t + + Parameters + ---------- + idp_modname: char const * + +Help on function _processor_t_insn_reads_tbit in module ida_idp: + +_processor_t_insn_reads_tbit(*args) -> 'ssize_t' + _processor_t_insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_is_align_insn in module ida_idp: + +_processor_t_is_align_insn(*args) -> 'ssize_t' + _processor_t_is_align_insn(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_alloca_probe in module ida_idp: + +_processor_t_is_alloca_probe(*args) -> 'ssize_t' + _processor_t_is_alloca_probe(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_basic_block_end in module ida_idp: + +_processor_t_is_basic_block_end(*args) -> 'ssize_t' + _processor_t_is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + call_insn_stops_block: bool + +Help on function _processor_t_is_call_insn in module ida_idp: + +_processor_t_is_call_insn(*args) -> 'ssize_t' + _processor_t_is_call_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_cond_insn in module ida_idp: + +_processor_t_is_cond_insn(*args) -> 'ssize_t' + _processor_t_is_cond_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_control_flow_guard in module ida_idp: + +_processor_t_is_control_flow_guard(*args) -> 'ssize_t' + _processor_t_is_control_flow_guard(p_reg, insn) -> ssize_t + + Parameters + ---------- + p_reg: int * + insn: insn_t const * + +Help on function _processor_t_is_far_jump in module ida_idp: + +_processor_t_is_far_jump(*args) -> 'ssize_t' + _processor_t_is_far_jump(icode) -> ssize_t + + Parameters + ---------- + icode: int + +Help on function _processor_t_is_indirect_jump in module ida_idp: + +_processor_t_is_indirect_jump(*args) -> 'ssize_t' + _processor_t_is_indirect_jump(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_jump_func in module ida_idp: + +_processor_t_is_jump_func(*args) -> 'ssize_t' + _processor_t_is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + + Parameters + ---------- + pfn: func_t * + jump_target: ea_t * + func_pointer: ea_t * + +Help on function _processor_t_is_ret_insn in module ida_idp: + +_processor_t_is_ret_insn(*args) -> 'ssize_t' + _processor_t_is_ret_insn(insn, strict) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + strict: bool + +Help on function _processor_t_is_sane_insn in module ida_idp: + +_processor_t_is_sane_insn(*args) -> 'ssize_t' + _processor_t_is_sane_insn(insn, no_crefs) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + no_crefs: int + +Help on function _processor_t_is_sp_based in module ida_idp: + +_processor_t_is_sp_based(*args) -> 'ssize_t' + _processor_t_is_sp_based(insn, x) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + +Help on function _processor_t_is_switch in module ida_idp: + +_processor_t_is_switch(*args) -> 'ssize_t' + _processor_t_is_switch(si, insn) -> ssize_t + + Parameters + ---------- + si: switch_info_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_loader_elf_machine in module ida_idp: + +_processor_t_loader_elf_machine(*args) -> 'ssize_t' + _processor_t_loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + + Parameters + ---------- + li: linput_t * + machine_type: int + p_procname: char const ** + p_pd: proc_def_t ** + ldr: elf_loader_t * + reader: reader_t * + +Help on function _processor_t_lower_func_type in module ida_idp: + +_processor_t_lower_func_type(*args) -> 'ssize_t' + _processor_t_lower_func_type(argnums, fti) -> ssize_t + + Parameters + ---------- + argnums: intvec_t * + fti: func_type_data_t * + +Help on function _processor_t_max_ptr_size in module ida_idp: + +_processor_t_max_ptr_size(*args) -> 'ssize_t' + _processor_t_max_ptr_size() -> ssize_t + +Help on function _processor_t_may_be_func in module ida_idp: + +_processor_t_may_be_func(*args) -> 'ssize_t' + _processor_t_may_be_func(insn, state) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + state: int + +Help on function _processor_t_may_show_sreg in module ida_idp: + +_processor_t_may_show_sreg(*args) -> 'ssize_t' + _processor_t_may_show_sreg(current_ea) -> ssize_t + + Parameters + ---------- + current_ea: ea_t + +Help on function _processor_t_moving_segm in module ida_idp: + +_processor_t_moving_segm(*args) -> 'ssize_t' + _processor_t_moving_segm(seg, to, flags) -> ssize_t + + Parameters + ---------- + seg: segment_t * + to: ea_t + flags: int + +Help on function _processor_t_newasm in module ida_idp: + +_processor_t_newasm(*args) -> 'ssize_t' + _processor_t_newasm(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_newbinary in module ida_idp: + +_processor_t_newbinary(*args) -> 'ssize_t' + _processor_t_newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + + Parameters + ---------- + filename: char const * + fileoff: qoff64_t + basepara: ea_t + binoff: ea_t + nbytes: uint64 + +Help on function _processor_t_newfile in module ida_idp: + +_processor_t_newfile(*args) -> 'ssize_t' + _processor_t_newfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_newprc in module ida_idp: + +_processor_t_newprc(*args) -> 'ssize_t' + _processor_t_newprc(pnum, keep_cfg) -> ssize_t + + Parameters + ---------- + pnum: int + keep_cfg: bool + +Help on function _processor_t_next_exec_insn in module ida_idp: + +_processor_t_next_exec_insn(*args) -> 'ssize_t' + _processor_t_next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + target: ea_t * + ea: ea_t + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_notify in module ida_idp: + +_processor_t_notify(*args) -> 'ssize_t' + _processor_t_notify(event_code) -> ssize_t + + Parameters + ---------- + event_code: enum processor_t::event_t + +Help on function _processor_t_oldfile in module ida_idp: + +_processor_t_oldfile(*args) -> 'ssize_t' + _processor_t_oldfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_out_assumes in module ida_idp: + +_processor_t_out_assumes(*args) -> 'ssize_t' + _processor_t_out_assumes(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_data in module ida_idp: + +_processor_t_out_data(*args) -> 'ssize_t' + _processor_t_out_data(ctx, analyze_only) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + analyze_only: bool + +Help on function _processor_t_out_footer in module ida_idp: + +_processor_t_out_footer(*args) -> 'ssize_t' + _processor_t_out_footer(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_header in module ida_idp: + +_processor_t_out_header(*args) -> 'ssize_t' + _processor_t_out_header(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_insn in module ida_idp: + +_processor_t_out_insn(*args) -> 'ssize_t' + _processor_t_out_insn(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_label in module ida_idp: + +_processor_t_out_label(*args) -> 'ssize_t' + _processor_t_out_label(ctx, colored_name) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + colored_name: char const * + +Help on function _processor_t_out_mnem in module ida_idp: + +_processor_t_out_mnem(*args) -> 'ssize_t' + _processor_t_out_mnem(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_operand in module ida_idp: + +_processor_t_out_operand(*args) -> 'ssize_t' + _processor_t_out_operand(ctx, op) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + op: op_t const & + +Help on function _processor_t_out_segend in module ida_idp: + +_processor_t_out_segend(*args) -> 'ssize_t' + _processor_t_out_segend(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_segstart in module ida_idp: + +_processor_t_out_segstart(*args) -> 'ssize_t' + _processor_t_out_segstart(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_special_item in module ida_idp: + +_processor_t_out_special_item(*args) -> 'ssize_t' + _processor_t_out_special_item(ctx, segtype) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + segtype: uchar + +Help on function _processor_t_realcvt in module ida_idp: + +_processor_t_realcvt(*args) -> 'fpvalue_error_t' + _processor_t_realcvt(m, e, swt) -> fpvalue_error_t + + Parameters + ---------- + m: void * + e: fpvalue_t * + swt: uint16 + +Help on function _processor_t_rename in module ida_idp: + +_processor_t_rename(*args) -> 'ssize_t' + _processor_t_rename(ea, new_name, flags) -> ssize_t + + Parameters + ---------- + ea: ea_t + new_name: char const * + flags: int + +Help on function _processor_t_set_code16_mode in module ida_idp: + +_processor_t_set_code16_mode(*args) -> 'ssize_t' + _processor_t_set_code16_mode(ea, code16=True) -> ssize_t + + Parameters + ---------- + ea: ea_t + code16: bool + +Help on function _processor_t_set_idp_options in module ida_idp: + +_processor_t_set_idp_options(*args) -> 'char const *' + _processor_t_set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + + Parameters + ---------- + keyword: char const * + vtype: int + value: void const * + idb_loaded: bool + +Help on function _processor_t_set_proc_options in module ida_idp: + +_processor_t_set_proc_options(*args) -> 'ssize_t' + _processor_t_set_proc_options(options, confidence) -> ssize_t + + Parameters + ---------- + options: char const * + confidence: int + +Help on function _processor_t_setup_til in module ida_idp: + +_processor_t_setup_til(*args) -> 'ssize_t' + _processor_t_setup_til() -> ssize_t + +Help on function _processor_t_str2reg in module ida_idp: + +_processor_t_str2reg(*args) -> 'ssize_t' + _processor_t_str2reg(regname) -> ssize_t + + Parameters + ---------- + regname: char const * + +Help on function _processor_t_term in module ida_idp: + +_processor_t_term(*args) -> 'ssize_t' + _processor_t_term() -> ssize_t + +Help on function _processor_t_treat_hindering_item in module ida_idp: + +_processor_t_treat_hindering_item(*args) -> 'ssize_t' + _processor_t_treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + + Parameters + ---------- + hindering_item_ea: ea_t + new_item_flags: flags64_t + new_item_ea: ea_t + new_item_length: asize_t + +Help on function _processor_t_undefine in module ida_idp: + +_processor_t_undefine(*args) -> 'ssize_t' + _processor_t_undefine(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_update_call_stack in module ida_idp: + +_processor_t_update_call_stack(*args) -> 'ssize_t' + _processor_t_update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + stack: call_stack_t * + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_use_arg_types in module ida_idp: + +_processor_t_use_arg_types(*args) -> 'ssize_t' + _processor_t_use_arg_types(ea, fti, rargs) -> ssize_t + + Parameters + ---------- + ea: ea_t + fti: func_type_data_t * + rargs: void * + +Help on function _processor_t_use_regarg_type in module ida_idp: + +_processor_t_use_regarg_type(*args) -> 'ssize_t' + _processor_t_use_regarg_type(idx, ea, rargs) -> ssize_t + + Parameters + ---------- + idx: int * + ea: ea_t + rargs: void * + +Help on function _processor_t_use_stkarg_type in module ida_idp: + +_processor_t_use_stkarg_type(*args) -> 'ssize_t' + _processor_t_use_stkarg_type(ea, arg) -> ssize_t + + Parameters + ---------- + ea: ea_t + arg: funcarg_t const & + +Help on function _processor_t_validate_flirt_func in module ida_idp: + +_processor_t_validate_flirt_func(*args) -> 'ssize_t' + _processor_t_validate_flirt_func(start_ea, funcname) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + funcname: char const * + +Help on function _processor_t_verify_noreturn in module ida_idp: + +_processor_t_verify_noreturn(*args) -> 'ssize_t' + _processor_t_verify_noreturn(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_verify_sp in module ida_idp: + +_processor_t_verify_sp(*args) -> 'ssize_t' + _processor_t_verify_sp(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on class asm_t in module ida_idp: + +class asm_t(builtins.object) + | Proxy of C++ asm_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> asm_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_asm_t(...) + | delete_asm_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a_align + | a_align + | + | a_ascii + | a_ascii + | + | a_band + | a_band + | + | a_bnot + | a_bnot + | + | a_bor + | a_bor + | + | a_bss + | a_bss + | + | a_byte + | a_byte + | + | a_comdef + | a_comdef + | + | a_curip + | a_curip + | + | a_double + | a_double + | + | a_dups + | a_dups + | + | a_dword + | a_dword + | + | a_equ + | a_equ + | + | a_extrn + | a_extrn + | + | a_float + | a_float + | + | a_include_fmt + | a_include_fmt + | + | a_mod + | a_mod + | + | a_oword + | a_oword + | + | a_packreal + | a_packreal + | + | a_public + | a_public + | + | a_qword + | a_qword + | + | a_rva + | a_rva + | + | a_seg + | a_seg + | + | a_shl + | a_shl + | + | a_shr + | a_shr + | + | a_sizeof_fmt + | a_sizeof_fmt + | + | a_tbyte + | a_tbyte + | + | a_vstruc_fmt + | a_vstruc_fmt + | + | a_weak + | a_weak + | + | a_word + | a_word + | + | a_xor + | a_xor + | + | a_yword + | a_yword + | + | a_zword + | a_zword + | + | accsep + | accsep + | + | ascsep + | ascsep + | + | cmnt + | cmnt + | + | cmnt2 + | cmnt2 + | + | end + | end + | + | esccodes + | esccodes + | + | flag + | flag + | + | flag2 + | flag2 + | + | header + | header + | + | help + | help + | + | high16 + | high16 + | + | high8 + | high8 + | + | lbrace + | lbrace + | + | low16 + | low16 + | + | low8 + | low8 + | + | name + | name + | + | origin + | origin + | + | rbrace + | rbrace + | + | thisown + | The membership flag + | + | uflag + | uflag + +Help on function assemble in module ida_idp: + +assemble(*args) -> 'bool' + assemble(ea, cs, ip, use32, line) -> bool + Assemble an instruction into the database (display a warning if an error is found) + + @param ea: linear address of instruction + @param cs: cs of instruction + @param ip: ip of instruction + @param use32: is 32bit segment? + @param line: line to assemble + + @return: Boolean. True on success. + +Help on function cfg_get_cc_header_path in module ida_idp: + +cfg_get_cc_header_path(*args) -> 'char const *' + cfg_get_cc_header_path(compid) -> char const * + + @param compid: comp_t + +Help on function cfg_get_cc_parm in module ida_idp: + +cfg_get_cc_parm(*args) -> 'char const *' + cfg_get_cc_parm(compid, name) -> char const * + + @param compid: comp_t + @param name: char const * + +Help on function cfg_get_cc_predefined_macros in module ida_idp: + +cfg_get_cc_predefined_macros(*args) -> 'char const *' + cfg_get_cc_predefined_macros(compid) -> char const * + + @param compid: comp_t + +Help on function delay_slot_insn in module ida_idp: + +delay_slot_insn(*args) -> 'bool' + delay_slot_insn(ea, bexec, fexec) -> bool + + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * + +Help on function gen_idb_event in module ida_idp: + +gen_idb_event(*args) -> 'void' + gen_idb_event(code) + the kernel will use this function to generate idb_events + + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t + +Help on function get_ash in module ida_idp: + +get_ash(*args) -> 'asm_t *' + get_ash() -> asm_t + +Help on function get_idb_notifier_addr in module ida_idp: + +get_idb_notifier_addr(*args) -> 'PyObject *' + get_idb_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * + +Help on function get_idb_notifier_ud_addr in module ida_idp: + +get_idb_notifier_ud_addr(*args) -> 'PyObject *' + get_idb_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDB_Hooks * + +Help on function get_idp_name in module ida_idp: + +get_idp_name(*args) -> 'size_t' + get_idp_name() -> str + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr + +Help on function get_idp_notifier_addr in module ida_idp: + +get_idp_notifier_addr(*args) -> 'PyObject *' + get_idp_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * + +Help on function get_idp_notifier_ud_addr in module ida_idp: + +get_idp_notifier_ud_addr(*args) -> 'PyObject *' + get_idp_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDP_Hooks * + +Help on function get_ph in module ida_idp: + +get_ph(*args) -> 'processor_t *' + get_ph() -> _processor_t + +Help on function get_reg_info in module ida_idp: + +get_reg_info(*args) -> 'char const *' + get_reg_info(regname, bitrange) -> char const * + + @param regname: char const * + @param bitrange: bitrange_t * + +Help on function get_reg_name in module ida_idp: + +get_reg_name(*args) -> 'qstring *' + get_reg_name(reg, width, reghi=-1) -> str + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead + + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair + @return: length of register name in bytes or -1 if failure + +Help on function has_cf_chg in module ida_idp: + +has_cf_chg(*args) -> 'bool' + has_cf_chg(feature, opnum) -> bool + Does an instruction with the specified feature modify the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) + +Help on function has_cf_use in module ida_idp: + +has_cf_use(*args) -> 'bool' + has_cf_use(feature, opnum) -> bool + Does an instruction with the specified feature use a value of the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) + +Help on function has_insn_feature in module ida_idp: + +has_insn_feature(*args) -> 'bool' + has_insn_feature(icode, bit) -> bool + Does the specified instruction have the specified feature? + + @param icode: (C++: uint16) + @param bit: (C++: uint32) + +Help on function is_align_insn in module ida_idp: + +is_align_insn(*args) -> 'int' + is_align_insn(ea) -> int + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. + + @param ea: (C++: ea_t) + +Help on function is_basic_block_end in module ida_idp: + +is_basic_block_end(*args) -> 'bool' + is_basic_block_end(insn, call_insn_stops_block) -> bool + Is the instruction the end of a basic block? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) + +Help on function is_call_insn in module ida_idp: + +is_call_insn(*args) -> 'bool' + is_call_insn(insn) -> bool + Is the instruction a "call"? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function is_indirect_jump_insn in module ida_idp: + +is_indirect_jump_insn(*args) -> 'bool' + is_indirect_jump_insn(insn) -> bool + Is the instruction an indirect jump? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function is_ret_insn in module ida_idp: + +is_ret_insn(*args) -> 'bool' + is_ret_insn(insn, strict=True) -> bool + Is the instruction a "return"? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(builtins.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_num_range_t(...) + | delete_num_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + +Help on class params_t in module ida_idp: + +class params_t(builtins.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_params_t(...) + | delete_params_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag + +Help on function parse_reg_name in module ida_idp: + +parse_reg_name(*args) -> 'bool' + parse_reg_name(ri, regname) -> bool + Get register info by name. + + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register + @return: success + +Help on __ph in module ida_idp object: + +class __ph(builtins.object) + | # ---------------------------------------------------------------------- + | + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cnbits + | + | dnbits + | + | flag + | + | icode_return + | + | id + | + | instruc + | + | instruc_end + | + | instruc_start + | + | reg_code_sreg + | + | reg_data_sreg + | + | reg_first_sreg + | + | reg_last_sreg + | + | regnames + | + | segreg_size + | + | tbyte_size + | + | version + +Help on function ph_calcrel in module ida_idp: + +ph_calcrel(*args) -> 'bytevec_t *, size_t *' + ph_calcrel(ea) + + @param ea: ea_t + +Help on function ph_find_op_value in module ida_idp: + +ph_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + ph_find_op_value(insn, op) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int + +Help on function ph_find_reg_value in module ida_idp: + +ph_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + ph_find_reg_value(insn, reg) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int + +Help on function ph_get_cnbits in module ida_idp: + +ph_get_cnbits(*args) -> 'size_t' + ph_get_cnbits() -> size_t + Returns the 'ph.cnbits' + +Help on function ph_get_dnbits in module ida_idp: + +ph_get_dnbits(*args) -> 'size_t' + ph_get_dnbits() -> size_t + Returns the 'ph.dnbits' + +Help on function ph_get_flag in module ida_idp: + +ph_get_flag(*args) -> 'size_t' + ph_get_flag() -> size_t + Returns the 'ph.flag' + +Help on function ph_get_icode_return in module ida_idp: + +ph_get_icode_return(*args) -> 'size_t' + ph_get_icode_return() -> size_t + Returns the 'ph.icode_return' + +Help on function ph_get_id in module ida_idp: + +ph_get_id(*args) -> 'size_t' + ph_get_id() -> size_t + Returns the 'ph.id' field + +Help on function ph_get_instruc in module ida_idp: + +ph_get_instruc(*args) -> 'PyObject *' + ph_get_instruc() -> [(str, int), ...] + Returns a list of tuples (instruction_name, instruction_feature) containing the + instructions list as defined in he processor module + +Help on function ph_get_instruc_end in module ida_idp: + +ph_get_instruc_end(*args) -> 'size_t' + ph_get_instruc_end() -> size_t + Returns the 'ph.instruc_end' + +Help on function ph_get_instruc_start in module ida_idp: + +ph_get_instruc_start(*args) -> 'size_t' + ph_get_instruc_start() -> size_t + Returns the 'ph.instruc_start' + +Help on function ph_get_operand_info in module ida_idp: + +ph_get_operand_info(*args) -> 'PyObject *' + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None + Returns the operand information given an ea and operand number. + + @param ea: address + @param n: operand number + + @return: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size). + Please refer to idd_opinfo_t structure in the SDK. + +Help on function ph_get_reg_accesses in module ida_idp: + +ph_get_reg_accesses(*args) -> 'ssize_t' + ph_get_reg_accesses(accvec, insn, flags) -> ssize_t + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int + +Help on function ph_get_reg_code_sreg in module ida_idp: + +ph_get_reg_code_sreg(*args) -> 'size_t' + ph_get_reg_code_sreg() -> size_t + Returns the 'ph.reg_code_sreg' + +Help on function ph_get_reg_data_sreg in module ida_idp: + +ph_get_reg_data_sreg(*args) -> 'size_t' + ph_get_reg_data_sreg() -> size_t + Returns the 'ph.reg_data_sreg' + +Help on function ph_get_reg_first_sreg in module ida_idp: + +ph_get_reg_first_sreg(*args) -> 'size_t' + ph_get_reg_first_sreg() -> size_t + Returns the 'ph.reg_first_sreg' + +Help on function ph_get_reg_last_sreg in module ida_idp: + +ph_get_reg_last_sreg(*args) -> 'size_t' + ph_get_reg_last_sreg() -> size_t + Returns the 'ph.reg_last_sreg' + +Help on function ph_get_regnames in module ida_idp: + +ph_get_regnames(*args) -> 'PyObject *' + ph_get_regnames() -> [str, ...] + Returns the list of register names as defined in the processor module + +Help on function ph_get_segreg_size in module ida_idp: + +ph_get_segreg_size(*args) -> 'size_t' + ph_get_segreg_size() -> size_t + Returns the 'ph.segreg_size' + +Help on function ph_get_tbyte_size in module ida_idp: + +ph_get_tbyte_size(*args) -> 'size_t' + ph_get_tbyte_size() -> size_t + Returns the 'ph.tbyte_size' field as defined in he processor module + +Help on function ph_get_version in module ida_idp: + +ph_get_version(*args) -> 'size_t' + ph_get_version() -> size_t + Returns the 'ph.version' + +Help on function process_config_directive in module ida_idp: + +process_config_directive(*args) -> 'void' + process_config_directive(directive, priority=2) + + @param directive: char const * + @param priority: int + +Help on class processor_t in module ida_idp: + +class processor_t(IDP_Hooks) + | Proxy of C++ IDP_Hooks class. + | + | Method resolution order: + | processor_t + | IDP_Hooks + | builtins.object + | + | Methods defined here: + | + | __init__(self) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _get_idb_notifier_addr(self) + | + | _get_idb_notifier_ud_addr(self) + | + | _get_idp_notifier_addr(self) + | + | _get_idp_notifier_ud_addr(self) + | + | _get_notify(self, what, unimp_val=0, imp_forced_val=None, add_prefix=True, mandatory_impl=None) + | This helper is used to implement backward-compatibility + | of pre IDA 7.3 processor_t interfaces. + | + | _make_forced_value_wrapper(self, val, meth=None) + | + | _make_int_returning_wrapper(self, meth, intval=0) + | + | auto_empty(self, *args) + | + | auto_empty_finally(self, *args) + | + | closebase(self, *args) + | + | compiler_changed(self, *args) + | + | deleting_func(self, pfn) + | + | determined_main(self, *args) + | + | ev_ana_insn(self, *args) + | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. + | + | ev_assemble(self, *args) + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). + | + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes + | + | ev_auto_queue_empty(self, *args) + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally + | + | ev_calc_step_over(self, target, ip) + | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_can_have_type(self, *args) + | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_cmp_operands(self, *args) + | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented + | + | ev_coagulate(self, *args) + | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes + | + | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) + | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue + | + | ev_create_func_frame(self, pfn) + | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_create_switch_xrefs(self, *args) + | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM + | + | ev_creating_segm(self, s) + | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created + | + | ev_emu_insn(self, *args) + | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction + | + | ev_endbinary(self, *args) + | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? + | + | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void + | + | ev_gen_map_file(self, nlines, fp) + | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error + | + | ev_gen_regvar_def(self, ctx, v) + | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented + | + | ev_gen_src_file_lnnum(self, *args) + | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented + | + | ev_get_autocmt(self, *args) + | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case + | + | ev_get_frame_retsize(self, frsize, pfn) + | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_operand_string(self, buf, insn, opnum) + | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero + | + | ev_is_align_insn(self, *args) + | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction + | + | ev_is_alloca_probe(self, *args) + | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no + | + | ev_is_basic_block_end(self, *args) + | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_call_insn(self, *args) + | ev_is_call_insn(self, insn) -> int + | Is the instruction a "call"? + | + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_far_jump(self, *args) + | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no + | + | ev_is_indirect_jump(self, *args) + | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes + | + | ev_is_insn_table_jump(self, *args) + | ev_is_insn_table_jump(self) -> int + | Reserved. + | + | ev_is_ret_insn(self, *args) + | ev_is_ret_insn(self, insn, strict) -> int + | Is the instruction a "return"? + | + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_sane_insn(self, *args) + | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. + | + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program + | + | ev_is_sp_based(self, mode, insn, op) + | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok + | + | ev_is_switch(self, *args) + | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented + | + | ev_may_be_func(self, *args) + | ev_may_be_func(self, insn, state) -> int + | Can a function start here? + | + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) + | + | ev_may_show_sreg(self, *args) + | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented + | + | ev_moving_segm(self, s, to_ea, flags) + | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop + | + | ev_newbinary(self, *args) + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load + | + | ev_newfile(self, *args) + | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_newprc(self, *args) + | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit + | + | ev_oldfile(self, *args) + | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_out_assumes(self, *args) + | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_data(self, *args) + | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_footer(self, *args) + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_header(self, *args) + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_insn(self, *args) + | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_label(self, *args) + | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue + | + | ev_out_mnem(self, *args) + | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented + | + | ev_out_operand(self, *args) + | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden + | + | ev_out_segend(self, ctx, s) + | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_segstart(self, ctx, s) + | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_special_item(self, *args) + | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_rename(self, *args) + | ev_rename(self, ea, new_name) -> int + | The kernel is going to rename a byte. + | + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name + | + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) + | + | ev_set_proc_options(self, *args) + | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string + | + | ev_str2reg(self, *args) + | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded + | + | ev_treat_hindering_item(self, *args) + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item + | + | ev_undefine(self, *args) + | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. + | + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted + | + | ev_validate_flirt_func(self, *args) + | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated + | + | ev_verify_noreturn(self, pfn) + | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag + | + | ev_verify_sp(self, pfn) + | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer + | + | func_added(self, pfn) + | + | get_auxpref(self, insn) + | This function returns insn.auxpref value + | + | get_idpdesc(self) + | This function must be present and should return the list of + | short processor names similar to the one in ph.psnames. + | This method can be overridden to return to the kernel a different IDP description. + | + | get_uFlag(self) + | Use this utility function to retrieve the 'uFlag' global variable + | + | idasgn_loaded(self, *args) + | + | kernel_config_loaded(self, *args) + | + | make_code(self, *args) + | + | make_data(self, *args) + | + | renamed(self, *args) + | + | savebase(self, *args) + | + | segm_moved(self, from_ea, to_ea, size, changed_netmap) + | + | set_func_end(self, *args) + | + | set_func_start(self, *args) + | + | sgr_changed(self, *args) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __idc_cvt_id__ = 2 + | + | ---------------------------------------------------------------------- + | Methods inherited from IDP_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDP_Hooks(...) + | delete_IDP_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue + | + | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue + | + | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_adjust_libfunc_ea(self, *args) -> 'int' + | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. + | + | ev_adjust_refinfo(self, *args) -> 'int' + | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted + | + | ev_analyze_prolog(self, *args) -> 'int' + | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm + | + | ev_calc_arglocs(self, *args) -> 'int' + | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) + | + | ev_calc_next_eas(self, *args) -> 'int' + | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) + | + | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented + | + | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error + | + | ev_calc_spdelta(self, *args) -> 'int' + | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed + | + | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs + | + | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int + | Reserved. + | + | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed + | + | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 + | + | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue + | + | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue + | + | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. + | + | ev_demangle_name(self, *args) -> 'PyObject *' + | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! + | + | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo + | + | ev_equal_reglocs(self, *args) -> 'int' + | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented + | + | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error + | + | ev_find_op_value(self, *args) -> 'PyObject *' + | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_find_reg_value(self, *args) -> 'PyObject *' + | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void + | + | ev_gen_stkvar_def(self, *args) -> 'int' + | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_abi_info(self, *args) -> 'int' + | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok + | + | ev_get_bg_color(self, *args) -> 'int' + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set + | + | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented + | + | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode + | + | ev_get_dbr_opnum(self, *args) -> 'int' + | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_default_enum_size(self, *args) -> 'int' + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead + | + | ev_get_macro_insn_head(self, *args) -> 'int' + | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented + | + | ev_get_reg_info(self, *args) -> 'int' + | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented + | + | ev_get_reg_name(self, *args) -> 'PyObject *' + | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success + | + | ev_get_simd_types(self, *args) -> 'int' + | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types + | + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented + | + | ev_get_stkvar_scale_factor(self, *args) -> 'int' + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback + | + | ev_getreg(self, *args) -> 'int' + | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) + | + | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure + | + | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no + | + | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented + | + | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' + | + | ev_last_cb_before_loader(self, *args) -> 'int' + | ev_last_cb_before_loader(self) -> int + | + | ev_loader(self, *args) -> 'int' + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders + | + | ev_lower_func_type(self, *args) -> 'int' + | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti + | + | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer + | + | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed + | + | ev_next_exec_insn(self, *args) -> 'int' + | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) + | + | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown + | + | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | + | ev_set_code16_mode(self, *args) -> 'int' + | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode + | + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void + | + | ev_term(self, *args) -> 'int' + | ev_term(self) -> int + | The IDP module is being unloaded. + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented + | + | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented + | + | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented + | + | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from IDP_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class reg_access_t in module ida_idp: + +class reg_access_t(builtins.object) + | Proxy of C++ reg_access_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_access_t(...) + | delete_reg_access_t(self) + | + | have_common_bits(self, *args) -> 'bool' + | have_common_bits(self, r) -> bool + | + | @param r: reg_access_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | access_type + | + | opnum + | opnum + | + | range + | range + | + | regnum + | regnum + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_access_vec_t in module ida_idp: + +class reg_access_vec_t(builtins.object) + | Proxy of C++ qvector< reg_access_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | __swig_destroy__ = delete_reg_access_vec_t(...) + | delete_reg_access_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_accesses_t in module ida_idp: + +class reg_accesses_t(reg_access_vec_t) + | Proxy of C++ reg_accesses_t class. + | + | Method resolution order: + | reg_accesses_t + | reg_access_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> reg_accesses_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_accesses_t(...) + | delete_reg_accesses_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from reg_access_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from reg_access_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from reg_access_vec_t: + | + | __hash__ = None + +Help on class reg_info_t in module ida_idp: + +class reg_info_t(builtins.object) + | Proxy of C++ reg_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_info_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_info_t(...) + | delete_reg_info_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: reg_info_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reg + | reg + | + | size + | size + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function register_cfgopts in module ida_idp: + +register_cfgopts(*args) -> 'bool' + register_cfgopts(opts, nopts, cb=None, obj=None) -> bool + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * + +Help on function set_processor_type in module ida_idp: + +set_processor_type(*args) -> 'bool' + set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success + +Help on function set_target_assembler in module ida_idp: + +set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool + Set target assembler. + + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success + +Help on function sizeof_ldbl in module ida_idp: + +sizeof_ldbl(*args) -> 'size_t' + sizeof_ldbl() -> size_t + +Help on function str2reg in module ida_idp: + +str2reg(*args) -> 'int' + str2reg(p) -> int + Get any reg number (-1 on error) + + @param p: (C++: const char *) char const * + +Module "ida_ieee"s docstring: +""" +IEEE floating point functions.""" + +Help on function ecleaz in module ida_ieee: + +ecleaz(*args) -> 'void' + ecleaz(x) + + @param x: unsigned short [(6+3)] + +Help on class fpvalue_shorts_array_t in module ida_ieee: + +class fpvalue_shorts_array_t(builtins.object) + | Proxy of C++ wrapped_array_t< uint16,FPVAL_NWORDS > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned short const &' + | __getitem__(self, i) -> unsigned short const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> fpvalue_shorts_array_t + | + | @param data: unsigned short (&)[FPVAL_NWORDS] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned short const & + | + | __swig_destroy__ = delete_fpvalue_shorts_array_t(...) + | delete_fpvalue_shorts_array_t(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class fpvalue_t in module ida_ieee: + +class fpvalue_t(builtins.object) + | Proxy of C++ fpvalue_t class. + | + | Methods defined here: + | + | __add__(self, *args) -> 'fpvalue_t' + | __add__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __getitem__(self, i) + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __init__(self, *args) + | __init__(self) -> fpvalue_t + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __mul__(self, *args) -> 'fpvalue_t' + | __mul__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, i, v) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __sub__(self, *args) -> 'fpvalue_t' + | __sub__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __swig_destroy__ = delete_fpvalue_t(...) + | delete_fpvalue_t(self) + | + | __truediv__(self, *args) -> 'fpvalue_t' + | __truediv__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | _get_10bytes(self, *args) -> 'void' + | _get_10bytes(self) + | + | _get_bytes(self, *args) -> 'void' + | _get_bytes(self) + | + | _get_float(self, *args) -> 'double' + | _get_float(self) -> double + | + | _get_shorts(self, *args) -> 'wrapped_array_t< uint16,FPVAL_NWORDS >' + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | _set_10bytes(self, *args) -> 'void' + | _set_10bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec10_t const & + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec12_t const & + | + | _set_float(self, *args) -> 'void' + | _set_float(self, v) + | + | Parameters + | ---------- + | v: double + | + | assign(self, *args) -> 'void' + | assign(self, r) + | + | @param r: fpvalue_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: fpvalue_t const & + | + | eabs(self, *args) -> 'void' + | eabs(self) + | Calculate absolute value. + | + | fadd(self, *args) -> 'fpvalue_error_t' + | fadd(self, y) -> fpvalue_error_t + | Arithmetic operations. + | + | @param y: (C++: const fpvalue_t &) fpvalue_t const & + | + | fdiv(self, *args) -> 'fpvalue_error_t' + | fdiv(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | fmul(self, *args) -> 'fpvalue_error_t' + | fmul(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | from_10bytes(self, *args) -> 'fpvalue_error_t' + | from_10bytes(self, fpval) -> fpvalue_error_t + | Conversions for 10-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_12bytes(self, *args) -> 'fpvalue_error_t' + | from_12bytes(self, fpval) -> fpvalue_error_t + | Conversions for 12-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_int64(self, *args) -> 'void' + | from_int64(self, x) + | + | @param x: int64 + | + | from_str(self, *args) -> 'fpvalue_error_t' + | from_str(self, p) -> fpvalue_error_t + | Convert string to IEEE. + | + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. + | + | from_sval(self, *args) -> 'void' + | from_sval(self, x) + | Convert integer to IEEE. + | + | @param x: (C++: sval_t) + | + | from_uint64(self, *args) -> 'void' + | from_uint64(self, x) + | + | @param x: uint64 + | + | fsub(self, *args) -> 'fpvalue_error_t' + | fsub(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | get_kind(self, *args) -> 'fpvalue_kind_t' + | get_kind(self) -> fpvalue_kind_t + | Get value kind. + | + | is_negative(self, *args) -> 'bool' + | is_negative(self) -> bool + | Is negative value? + | + | mul_pow2(self, *args) -> 'fpvalue_error_t' + | mul_pow2(self, power_of_2) -> fpvalue_error_t + | Multiply by a power of 2. + | + | @param power_of_2: (C++: int32) + | + | negate(self, *args) -> 'void' + | negate(self) + | Negate. + | + | to_10bytes(self, *args) -> 'fpvalue_error_t' + | to_10bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_12bytes(self, *args) -> 'fpvalue_error_t' + | to_12bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_int64(self, *args) -> 'fpvalue_error_t' + | to_int64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | to_str(self, *args) -> 'void' + | to_str(self, mode) + | Convert IEEE to string. + | + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS + | + | to_sval(self, *args) -> 'fpvalue_error_t' + | to_sval(self, round=False) -> fpvalue_error_t + | Convert IEEE to integer (+-0.5 if round) + | + | @param round: (C++: bool) + | + | to_uint64(self, *args) -> 'fpvalue_error_t' + | to_uint64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | _10bytes + | _get_10bytes(self) + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) + | + | float + | _get_float(self) -> double + | + | int64 + | + | shorts + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | sval + | + | thisown + | The membership flag + | + | uint64 + | + | w + | w + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_kernwin"s docstring: +""" +Defines the interface between the kernel and the UI. + +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.""" + +Help on class Choose in module ida_kernwin: + +class Choose(builtins.object) + | Chooser wrapper class. + | + | Some constants are defined in this class. + | Please refer to kernwin.hpp for more information. + | + | Methods defined here: + | + | 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 + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnEditLine(self, sel) + | User asked to edit an element. + | + | @param 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()) + | @param 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 + | + | @param n: index of the element + | @return: an icon ID + | + | OnGetLine(self, n) + | Get data for an element + | + | This callback is mandatory + | + | @param n: the index to fetch data for + | @return: a list of strings + | + | OnGetLineAttr(self, n) + | Get attributes for an element + | + | @param 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 + | + | @param 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 + | + | @param 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 + | + | @param 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. + | + | @param 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. + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectLine(self, sel) + | User pressed the enter key, or double-clicked a selection + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectionChange(self, sel) + | Selection changed + | + | @param sel: the new selection + | + | Refresh(self) + | Causes the refresh callback to trigger + | + | Show(self, modal=False) + | Activates or creates a chooser window + | @param 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; + | + | __init__(self, 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) + | Constructs a chooser window. + | @param title: The chooser title + | @param 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] ] + | @param flags: One of CH_XXXX constants + | @param flags2: One of CH2_XXXX constants + | @param deflt: The index of the default item (0-based) for single + | selection choosers or the list of indexes for multi selection + | chooser + | @param popup_names: List of new captions to replace this list + | ["Insert", "Delete", "Edit", "Refresh"] + | @param icon: Icon index (the icon should exist in ida resources or + | an index to a custom loaded icon) + | @param x1: , y1, x2, y2: The default location (for txt-version) + | @param embedded: Create as embedded chooser + | @param width: Embedded chooser width + | @param height: Embedded chooser height + | @param forbidden_cb: Explicitly forbidden callbacks + | + | adjust_last_item(self, n) + | Helper for OnDeleteLine() and OnRefresh() callbacks. + | They can be finished by the following line: + | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) + | @param line: number of the remaining select item + | @return: list of selected lines numbers (one element or empty) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ALL_CHANGED = 1 + | + | ALREADY_EXISTS = -3 + | + | CHCOL_DEC = 196608 + | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | + | CHCOL_EA = 262144 + | + | CHCOL_FNAME = 327680 + | + | CHCOL_FORMAT = 458752 + | + | CHCOL_HEX = 131072 + | + | CHCOL_INODENAME = 4194304 + | + | CHCOL_PATH = 65536 + | + | CHCOL_PLAIN = 0 + | + | CH_ATTRS = 32 + | + | CH_BUILTIN_MASK = 33030144 + | + | CH_BUILTIN_SHIFT = 19 + | + | CH_CAN_DEL = 512 + | + | CH_CAN_EDIT = 1024 + | + | CH_CAN_INS = 256 + | + | CH_CAN_REFRESH = 2048 + | + | CH_FORCE_DEFAULT = 128 + | + | CH_HAS_DIFF = 268435456 + | + | CH_HAS_DIRTREE = 33554432 + | + | CH_MODAL = 1 + | + | CH_MULTI = 4 + | + | CH_NOBTNS = 16 + | + | CH_NOIDB = 64 + | + | CH_NO_STATUS_BAR = 65536 + | + | CH_QFLT = 4096 + | + | CH_QFTYP_DEFAULT = 0 + | + | CH_QFTYP_FUZZY = 32768 + | + | CH_QFTYP_MASK = 57344 + | + | CH_QFTYP_NORMAL = 8192 + | + | CH_QFTYP_REGEX = 24576 + | + | CH_QFTYP_SHIFT = 13 + | + | CH_QFTYP_WHOLE_WORDS = 16384 + | + | CH_RENAME_IS_EDIT = 262144 + | + | CH_RESTORE = 131072 + | + | EMPTY_CHOOSER = -2 + | + | NOTHING_CHANGED = 0 + | + | NO_ATTR = -4 + | + | NO_SELECTION = -1 + | + | SELECTION_CHANGED = 2 + | + | UI_Hooks_Trampoline = <class 'ida_kernwin.Choose.UI_Hooks_Trampoline'> + | Proxy of C++ UI_Hooks class. + +Help on class CustomIDAMemo in module ida_kernwin: + +class CustomIDAMemo(View_Hooks) + | Proxy of C++ View_Hooks class. + | + | Method resolution order: + | CustomIDAMemo + | View_Hooks + | builtins.object + | + | Methods defined here: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | __init__(self) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class Form in module ida_kernwin: + +class Form(builtins.object) + | # ----------------------------------------------------------------------- + | + | Methods defined here: + | + | Add(self, name, ctrl, mkattr=True) + | Low level function. Prefer AddControls() to this function. + | This function adds one control to the form. + | + | @param name: Control name + | @param ctrl: Control object + | @param 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 + | @param controls: The control dictionary + | + | Close(self, close_normally) + | Close the form + | @param 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.) + | + | @param 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 + | @param 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 + | @param ctrl: Form control instance + | @param 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 + | + | _AddGroup(self, Group, mkattr=True) + | Internal function. + | This function expands the group item names and creates individual group item controls + | + | @param Group: The group class (checkbox or radio group class) + | + | _ChkCompiled(self) + | + | __getitem__(self, name) + | Returns a control object by name + | + | __init__(self, 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). + | + | @param form: The form string + | @param controls: A dictionary containing the control name as a _key_ and control object as _value_ + | + | _reset(self) + | Resets the Form class state variables + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | ControlToFieldTypeIdAndSize(ctrl) + | Converts a control object to a tuple containing the field id + | and the associated buffer size + | + | _ParseFormTitle(form) + | Parses the form's title from the form text + | + | create_string_buffer(value, size=None) + | + | fieldtype_to_ctype(tp, i64=False) + | Factory method returning a ctype class corresponding to the field type string + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ButtonInput = <class 'ida_kernwin.Form.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 = <class 'ida_kernwin.Form.ChkGroupControl'> + | Checkbox group control class. + | It holds a set of checkbox controls + | + | ChkGroupItemControl = <class 'ida_kernwin.Form.ChkGroupItemControl'> + | Checkbox group item control + | + | ColorInput = <class 'ida_kernwin.Form.ColorInput'> + | Color button input control + | + | Control = <class 'ida_kernwin.Form.Control'> + | + | + | DirInput = <class 'ida_kernwin.Form.DirInput'> + | Directory browsing control + | + | DropdownListControl = <class 'ida_kernwin.Form.DropdownListControl'> + | Dropdown control + | This control allows manipulating a dropdown control + | + | EmbeddedChooserControl = <class 'ida_kernwin.Form.EmbeddedChooserContr... + | Embedded chooser control. + | This control links to a Chooser2 control created with the 'embedded=True' + | + | FT_ADDR = '$' + | + | FT_ASCII = 'A' + | + | FT_BIN = 'Y' + | + | FT_BUTTON = 'B' + | + | FT_CHAR = 'H' + | + | FT_CHKGRP = 'C' + | + | FT_CHKGRP2 = 'c' + | + | FT_COLOR = 'K' + | + | FT_DEC = 'D' + | + | FT_DIR = 'F' + | + | FT_DROPDOWN_LIST = 'b' + | + | FT_ECHOOSER = 'E' + | + | FT_FILE = 'f' + | + | FT_FORMCHG = '%/' + | + | FT_HEX = 'N' + | + | FT_HTML_LABEL = 'h' + | + | FT_IDENT = 'I' + | + | FT_INT64 = 'l' + | + | FT_MULTI_LINE_TEXT = 't' + | + | FT_OCT = 'O' + | + | FT_RADGRP = 'R' + | + | FT_RADGRP2 = 'r' + | + | FT_RAWHEX = 'M' + | + | FT_SEG = 'S' + | + | FT_SHEX = 'n' + | + | FT_TYPE = 'T' + | + | FT_UINT64 = 'L' + | + | FileInput = <class 'ida_kernwin.Form.FileInput'> + | File Open/Save input control + | + | FormChangeCb = <class 'ida_kernwin.Form.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 = <class 'ida_kernwin.Form.GroupControl'> + | Base class for group controls + | + | GroupItemControl = <class 'ida_kernwin.Form.GroupItemControl'> + | Base class for group control items + | + | InputControl = <class 'ida_kernwin.Form.InputControl'> + | Generic form input control. + | It could be numeric control, string control, directory/file browsing, etc... + | + | LabelControl = <class 'ida_kernwin.Form.LabelControl'> + | Base class for static label control + | + | MultiLineTextControl = <class 'ida_kernwin.Form.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 = <class 'ida_kernwin.Form.NumericArgument'> + | Argument representing various integer arguments (ushort, uint32, uint64, etc...) + | @param tp: One of Form.FT_XXX + | + | NumericInput = <class 'ida_kernwin.Form.NumericInput'> + | A composite class serving as a base numeric input control class + | + | NumericLabel = <class 'ida_kernwin.Form.NumericLabel'> + | Numeric label control + | + | RadGroupControl = <class 'ida_kernwin.Form.RadGroupControl'> + | Radiobox group control class. + | It holds a set of radiobox controls + | + | RadGroupItemControl = <class 'ida_kernwin.Form.RadGroupItemControl'> + | Radiobox group item control + | + | StringArgument = <class 'ida_kernwin.Form.StringArgument'> + | Argument representing a character buffer + | + | StringInput = <class 'ida_kernwin.Form.StringInput'> + | Base string input control class. + | This class also constructs a StringArgument + | + | StringLabel = <class 'ida_kernwin.Form.StringLabel'> + | String label control + | + | _FT_USHORT = '_US' + +Help on class IDAViewWrapper in module ida_kernwin: + +class IDAViewWrapper(CustomIDAMemo) + | 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.) + | + | Method resolution order: + | IDAViewWrapper + | CustomIDAMemo + | View_Hooks + | builtins.object + | + | Methods defined here: + | + | Bind(self) + | + | Unbind(self) + | + | __init__(self, title) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | ---------------------------------------------------------------------- + | Methods inherited from CustomIDAMemo: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods inherited from CustomIDAMemo: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class PluginForm in module ida_kernwin: + +class PluginForm(builtins.object) + | PluginForm class. + | + | This form can be used to host additional controls. Please check the PyQt example. + | + | Methods defined here: + | + | Close(self, options) + | Closes the form. + | + | @param 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 + | + | @param caption: The form caption + | @param options: One of PluginForm.WOPN_ constants + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | FormToPyQtWidget = TWidgetToPyQtWidget(tw, ctx=<module '__main__' (built-in)>) + | Convert a TWidget* to a QWidget to be used by PyQt + | + | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules + | + | FormToPySideWidget = TWidgetToPySideWidget(tw, ctx=<module '__main__' (built-in)>) + | Use this method to convert a TWidget* to a QWidget to be used by PySide + | + | @param 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 + | + | @param 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 + | + | @param 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 + | + | @param ctx: Context. Reference to a module that already imported QtWidgets module + | + | _ensure_widget_deps(ctx) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | VALID_CAPSULE_NAME = b'$valid$' + | + | WCLS_CLOSE_LATER = 8 + | + | WCLS_DELETE_LATER = 8 + | + | WCLS_DONT_SAVE_SIZE = 4 + | + | WCLS_NO_CONTEXT = 2 + | + | WCLS_SAVE = 1 + | + | WOPN_CENTERED = 32 + | + | WOPN_CREATE_ONLY = {} + | + | WOPN_DP_BEFORE = 2097152 + | + | WOPN_DP_BOTTOM = 524288 + | + | WOPN_DP_FLOATING = 8388608 + | + | WOPN_DP_INSIDE = 1048576 + | + | WOPN_DP_INSIDE_BEFORE = 3145728 + | + | WOPN_DP_LEFT = 65536 + | + | WOPN_DP_RIGHT = 262144 + | + | WOPN_DP_SZHINT = 16777216 + | + | WOPN_DP_TAB = 4194304 + | + | WOPN_DP_TAB_BEFORE = 6291456 + | + | WOPN_DP_TOP = 131072 + | + | WOPN_MDI = 1 + | + | WOPN_MENU = 16 + | + | WOPN_ONTOP = 8 + | + | WOPN_PERSIST = 64 + | + | WOPN_RESTORE = 4 + | + | WOPN_TAB = 2 + +Help on function TWidget__from_ptrval__ in module ida_kernwin: + +TWidget__from_ptrval__(*args) -> 'TWidget *' + TWidget__from_ptrval__(ptrval) -> TWidget * + + @param ptrval: size_t + +Help on class UI_Hooks in module ida_kernwin: + +class UI_Hooks(builtins.object) + | Proxy of C++ UI_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> UI_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __real_database_closed = database_closed(self, *args) -> 'void' + | 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(). + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_UI_Hooks(...) + | delete_UI_Hooks(self) + | + | create_desktop_widget(self, *args) -> 'PyObject *' + | create_desktop_widget(self, title, cfg) -> PyObject * + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null + | + | current_widget_changed(self, *args) -> 'void' + | current_widget_changed(self, widget, prev_widget) + | The currently-active TWidget changed. + | + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) + | + | database_closed = __wrapper(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, *args) -> 'void' + | database_inited(self, is_new_database, idc_script) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param 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, *args) -> 'void' + | debugger_menu_change(self, enable) + | debugger menu modification detected + | + | @param 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, *args) -> 'void' + | desktop_applied(self, name, from_idb, type) + | a desktop has been applied + | + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) + | + | destroying_plugmod(self, *args) -> 'void' + | destroying_plugmod(self, plugmod, entry) + | The plugin object is about to be destroyed + | + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) + | + | destroying_procmod(self, *args) -> 'void' + | destroying_procmod(self, procmod) + | The processor module is about to be destroyed + | + | @param procmod: (const procmod_t *) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> str + | + | @param assert_all_reimplemented: bool + | + | finish_populating_widget_popup(self, *args) -> '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(). + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) + | + | get_chooser_item_attrs(self, *args) -> '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() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) + | + | get_custom_viewer_hint(self, *args) -> '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 + | + | @param viewer: (TWidget*) viewer + | @param 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, *args) -> '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 + | + | @param ea: (::ea_t) + | @return: true if generated a hint + | + | get_item_hint(self, *args) -> '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 + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint + | + | get_lines_rendering_info(self, *args) -> 'void' + | get_lines_rendering_info(self, out, widget, info) + | get lines rendering information + | + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) + | + | get_widget_config(self, *args) -> '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) + | + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | idcstart(self, *args) -> 'void' + | idcstart(self) + | Start of IDC engine work. + | + | idcstop(self, *args) -> 'void' + | idcstop(self) + | Stop of IDC engine work. + | + | initing_database(self, *args) -> '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, *args) -> 'void' + | plugin_loaded(self, plugin_info) + | The plugin was loaded in memory. + | + | @param plugin_info: (const plugin_info_t *) + | + | plugin_unloading(self, *args) -> 'void' + | plugin_unloading(self, plugin_info) + | The plugin is about to be unloaded + | + | @param plugin_info: (const plugin_info_t *) + | + | populating_widget_popup(self, *args) -> '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.) + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) + | + | postprocess_action(self, *args) -> 'void' + | postprocess_action(self) + | an ida ui action has been handled + | + | preprocess_action(self, *args) -> 'int' + | preprocess_action(self, name) -> int + | ida ui is about to handle a user action. + | + | @param 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, *args) -> '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, *args) -> 'void' + | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. + | + | resume(self, *args) -> 'void' + | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it + | + | saved(self, *args) -> '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. + | + | @param path: (const char *) the database path + | + | saving(self, *args) -> '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, *args) -> 'void' + | screen_ea_changed(self, ea, prev_ea) + | The "current address" changed + | + | @param ea: (ea_t) + | @param prev_ea: (ea_t) + | + | set_widget_config(self, *args) -> 'void' + | set_widget_config(self, widget, cfg) + | set the widget configuration + | + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) + | + | suspend(self, *args) -> 'void' + | suspend(self) + | Suspend graphical interface. Only the text version. Interface should respond + | to it. + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | updated_actions(self, *args) -> 'void' + | updated_actions(self) + | IDA is done updating actions. + | + | updating_actions(self, *args) -> '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. + | + | @param ctx: (action_update_ctx_t *) + | + | widget_closing(self, *args) -> '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 + | + | @param widget: (TWidget *) + | + | widget_invisible(self, *args) -> 'void' + | widget_invisible(self, widget) + | TWidget is being closed. Use this event to destroy the window controls + | + | @param widget: (TWidget *) + | + | widget_visible(self, *args) -> 'void' + | widget_visible(self, widget) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class View_Hooks in module ida_kernwin: + +class View_Hooks(builtins.object) + | Proxy of C++ View_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | dump_state(self, *args) -> 'PyObject *' + | dump_state(self, assert_all_reimplemented=False) -> PyObject * + | + | @param assert_all_reimplemented: bool + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_activated(self, *args) -> 'void' + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, *args) -> 'void' + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, *args) -> 'void' + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | view_curpos(self, *args) -> 'void' + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, *args) -> 'void' + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, *args) -> 'void' + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, *args) -> 'void' + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, *args) -> '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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, *args) -> 'void' + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, *args) -> '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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, *args) -> 'void' + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function __call_form_callable in module ida_kernwin: + +__call_form_callable(call, *args) + +Help on class __qtimer_t in module ida_kernwin: + +class __qtimer_t(builtins.object) + | Proxy of C++ __qtimer_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qtimer_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qtimer_t(...) + | delete___qtimer_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function _ask_addr in module ida_kernwin: + +_ask_addr(*args) -> 'ea_t *' + _ask_addr(addr, format) -> bool + + Parameters + ---------- + addr: ea_t * + format: char const * + +Help on function _ask_long in module ida_kernwin: + +_ask_long(*args) -> 'sval_t *' + _ask_long(value, format) -> bool + + Parameters + ---------- + value: sval_t * + format: char const * + +Help on function _ask_seg in module ida_kernwin: + +_ask_seg(*args) -> 'sel_t *' + _ask_seg(sel, format) -> bool + + Parameters + ---------- + sel: sel_t * + format: char const * + +Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: + +_kludge_force_declare_dirspec_t(*args) -> 'void' + _kludge_force_declare_dirspec_t(arg1) + + Parameters + ---------- + arg1: dirspec_t const * + +Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: + +_kludge_force_declare_dirtree_t(*args) -> 'void' + _kludge_force_declare_dirtree_t(arg1) + + Parameters + ---------- + arg1: dirtree_t const * + +Help on class action_ctx_base_cur_sel_t in module ida_kernwin: + +class action_ctx_base_cur_sel_t(builtins.object) + | Proxy of C++ action_ctx_base_cur_sel_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_cur_sel_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_cur_sel_t(...) + | delete_action_ctx_base_cur_sel_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _from + | _from + | + | thisown + | The membership flag + | + | to + | to + +Help on class action_ctx_base_source_t in module ida_kernwin: + +class action_ctx_base_source_t(builtins.object) + | Proxy of C++ action_ctx_base_source_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_source_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_source_t(...) + | delete_action_ctx_base_source_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | chooser + | chooser + | + | thisown + | The membership flag + +Help on class action_ctx_base_t in module ida_kernwin: + +class action_ctx_base_t(builtins.object) + | Proxy of C++ action_ctx_base_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_t(...) + | delete_action_ctx_base_t(self) + | + | has_flag(self, *args) -> 'bool' + | has_flag(self, flag) -> bool + | Check if the given flag is set. + | + | @param flag: (C++: uint32) + | + | reset(self, *args) -> 'void' + | reset(self) + | Invalidate all context info. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action + | action + | + | chooser_selection + | chooser_selection + | + | cur_ea + | cur_ea + | + | cur_enum + | cur_enum + | + | cur_enum_member + | cur_enum_member + | + | cur_extracted_ea + | cur_value + | + | cur_fchunk + | cur_fchunk + | + | cur_flags + | cur_flags + | + | cur_func + | cur_func + | + | cur_seg + | cur_seg + | + | cur_sel + | cur_sel + | + | cur_strmem + | cur_strmem + | + | cur_struc + | cur_struc + | + | cur_value + | cur_value + | + | dirtree_selection + | dirtree_selection + | + | focus + | focus + | + | form + | + | form_title + | + | form_type + | + | graph_selection + | graph_selection + | + | regname + | regname + | + | source + | source + | + | thisown + | The membership flag + | + | widget + | widget + | + | widget_title + | widget_title + | + | widget_type + | widget_type + +Help on class action_desc_t in module ida_kernwin: + +class action_desc_t(builtins.object) + | Proxy of C++ action_desc_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_desc_t(...) + | delete_action_desc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | flags + | flags + | + | icon + | icon + | + | label + | label + | + | name + | name + | + | owner + | owner + | + | shortcut + | shortcut + | + | thisown + | The membership flag + | + | tooltip + | tooltip + +Help on class action_handler_t in module ida_kernwin: + +class action_handler_t(builtins.object) + | # ---------------------------------------------------------------------- + | + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | 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. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function activate_widget in module ida_kernwin: + +activate_widget(*args) -> 'void' + activate_widget(widget, take_focus) + Activate widget (only gui version) (ui_activate_widget). + + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget + +Help on function add_hotkey in module ida_kernwin: + +add_hotkey(*args) -> 'PyObject *' + add_hotkey(hotkey, pyfunc) -> PyCapsule + Associates a function call with a hotkey. + Callable pyfunc will be called each time the hotkey is pressed + + @param hotkey: The hotkey + @param pyfunc: Callable + + @return: Context object on success or None on failure. + +Help on function add_idc_hotkey in module ida_kernwin: + +add_idc_hotkey(*args) -> 'int' + add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes + +Help on function add_spaces in module ida_kernwin: + +add_spaces(*args) -> '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'. + + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string + @return: pointer to the end of input string + +Help on function addon_count in module ida_kernwin: + +addon_count(*args) -> 'int' + addon_count() -> int + Get number of installed addons. + +Help on class addon_info_t in module ida_kernwin: + +class addon_info_t(builtins.object) + | Proxy of C++ addon_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> addon_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_addon_info_t(...) + | delete_addon_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | custom_data + | custom_data + | + | custom_size + | custom_size + | + | freeform + | freeform + | + | id + | id + | + | name + | name + | + | producer + | producer + | + | thisown + | The membership flag + | + | url + | url + | + | version + | version + +Help on function analyzer_options in module ida_kernwin: + +analyzer_options(*args) -> 'void' + analyzer_options() + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) + +Help on function ask_addr in module ida_kernwin: + +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 + +Help on function ask_buttons in module ida_kernwin: + +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 + + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param 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) + +Help on function ask_file in module ida_kernwin: + +ask_file(*args) -> 'char *' + ask_file(for_saving, defval, format) -> char * + + @param for_saving: bool + @param defval: char const * + @param format: char const * + +Help on function ask_for_feedback in module ida_kernwin: + +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}. + + @param format: (C++: const char *) the reason why the input file is bad + +Help on function ask_form in module ida_kernwin: + +ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + <title>" 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 + +Help on function ask_ident in module ida_kernwin: + +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. + + @return: false if the user cancelled the dialog, otherwise returns true. + +Help on function ask_long in module ida_kernwin: + +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. + +Help on function ask_seg in module ida_kernwin: + +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 + +Help on function ask_str in module ida_kernwin: + +ask_str(*args) -> 'PyObject *' + ask_str(defval, hist, prompt) -> str or None + Asks for a long text + + @param defval: The default value + @param hist: history id + @param prompt: The prompt value + @return: None or the entered string + +Help on function ask_text in module ida_kernwin: + +ask_text(*args) -> 'PyObject *' + ask_text(max_size, defval, prompt) -> str + Asks for a long text + + @param max_size: Maximum text length, 0 for unlimited + @param defval: The default value + @param prompt: The prompt value + @return: None or the entered string + +Help on function ask_yn in module ida_kernwin: + +ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int + Display a dialog box and get choice from "Yes", "No", "Cancel". + + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. + +Help on function attach_action_to_menu in module ida_kernwin: + +attach_action_to_menu(*args) -> '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). + + @param 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 + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position + @return: success + +Help on function attach_action_to_popup in module ida_kernwin: + +attach_action_to_popup(*args) -> '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'. + + @param widget: (C++: TWidget *) target widget + @param 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'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) + @return: success + +Help on function attach_action_to_toolbar in module ida_kernwin: + +attach_action_to_toolbar(*args) -> 'bool' + attach_action_to_toolbar(toolbar_name, name) -> bool + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success + +Help on function attach_dynamic_action_to_popup in module ida_kernwin: + +attach_dynamic_action_to_popup(*args) -> '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) + + @param unused: deprecated; should be None + @param popup_handle: target popup + @param desc: action description of type action_desc_t + @param popuppath: can be None + @param flags: a combination of SETMENU_ constants + @return: success + +Help on function banner in module ida_kernwin: + +banner(*args) -> 'bool' + banner(wait) -> bool + Show a banner dialog box (ui_banner). + + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed + +Help on function beep in module ida_kernwin: + +beep(*args) -> 'void' + beep(beep_type=beep_default) + Issue a beeping sound (ui_beep). + + @param beep_type: (C++: beep_t) + +Help on function call_nav_colorizer in module ida_kernwin: + +call_nav_colorizer(*args) -> 'uint32' + call_nav_colorizer(dict, ea, nbytes) -> uint32 + To be used with the IDA-provided colorizer, that is + returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t + +Help on function cancel_exec_request in module ida_kernwin: + +cancel_exec_request(*args) -> 'bool' + cancel_exec_request(req_id) -> bool + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. + +Help on function cancel_thread_exec_requests in module ida_kernwin: + +cancel_thread_exec_requests(*args) -> 'int' + cancel_thread_exec_requests(tid) -> int + Try to cancel asynchronous exec requests created by the specified thread. + + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. + +Help on function choose_activate in module ida_kernwin: + +choose_activate(*args) -> 'void' + choose_activate(_self) + + @param self: PyObject * + +Help on function choose_choose in module ida_kernwin: + +choose_choose(*args) -> 'PyObject *' + choose_choose(_self) -> PyObject * + + @param self: PyObject * + +Help on function choose_close in module ida_kernwin: + +choose_close(*args) -> 'void' + choose_close(_self) + + @param self: PyObject * + +Help on function choose_create_embedded_chobj in module ida_kernwin: + +choose_create_embedded_chobj(*args) -> 'PyObject *' + choose_create_embedded_chobj(_self) -> PyObject * + + @param self: PyObject * + +Help on function choose_entry in module ida_kernwin: + +choose_entry(*args) -> 'ea_t' + choose_entry(title) -> ea_t + Choose an entry point (ui_choose, chtype_entry). + + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected + +Help on function choose_enum in module ida_kernwin: + +choose_enum(*args) -> 'enum_t' + choose_enum(title, default_id) -> enum_t + Choose an enum (ui_choose, chtype_enum). + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected + +Help on function choose_enum_by_value in module ida_kernwin: + +choose_enum_by_value(*args) -> 'uchar *' + choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + 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. + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found + +Help on function choose_find in module ida_kernwin: + +choose_find(*args) -> 'PyObject *' + choose_find(title) -> MyChoose or None + + @param title: char const * + +Help on function choose_func in module ida_kernwin: + +choose_func(*args) -> 'func_t *' + choose_func(title, default_ea) -> func_t * + Choose a function (ui_choose, chtype_func). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected + +Help on function choose_get_widget in module ida_kernwin: + +choose_get_widget(*args) -> 'TWidget *' + choose_get_widget(_self) -> TWidget * + + @param self: PyObject * + +Help on function choose_idasgn in module ida_kernwin: + +choose_idasgn(*args) -> 'PyObject *' + choose_idasgn() -> PyObject * + Opens the signature chooser + + @return: None or the selected signature name + +Help on function choose_name in module ida_kernwin: + +choose_name(*args) -> 'ea_t' + choose_name(title) -> ea_t + Choose a name (ui_choose, chtype_name). + + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected + +Help on function choose_refresh in module ida_kernwin: + +choose_refresh(*args) -> 'void' + choose_refresh(_self) + + @param self: PyObject * + +Help on function choose_segm in module ida_kernwin: + +choose_segm(*args) -> 'segment_t *' + choose_segm(title, default_ea) -> segment_t * + Choose a segment (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected + +Help on function choose_srcp in module ida_kernwin: + +choose_srcp(*args) -> 'sreg_range_t *' + choose_srcp(title) -> sreg_range_t * + Choose a segment register change point (ui_choose, chtype_srcp). + + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected + +Help on function choose_stkvar_xref in module ida_kernwin: + +choose_stkvar_xref(*args) -> 'ea_t' + choose_stkvar_xref(pfn, mptr) -> ea_t + Choose an xref to a stack variable (ui_choose, chtype_name). + + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable + @return: ea of the selected xref, BADADDR if none selected + +Help on function choose_struc in module ida_kernwin: + +choose_struc(*args) -> 'struc_t *' + choose_struc(title) -> struc_t * + Choose a structure (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected + +Help on function choose_til in module ida_kernwin: + +choose_til(*args) -> '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 + +Help on function choose_xref in module ida_kernwin: + +choose_xref(*args) -> 'ea_t' + choose_xref(to) -> ea_t + Choose an xref to an address (ui_choose, chtype_xref). + + @param to: (C++: ea_t) referenced address + @return: ea of selected xref, BADADDR if none selected + +Help on class chooser_base_t in module ida_kernwin: + +class chooser_base_t(builtins.object) + | Proxy of C++ chooser_base_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | ask_item_attrs(self, *args) -> 'bool' + | ask_item_attrs(self) -> bool + | should chooser generate ui_get_chooser_item_attrs events? + | + | can_del(self, *args) -> 'bool' + | can_del(self) -> bool + | + | can_edit(self, *args) -> 'bool' + | can_edit(self) -> bool + | + | can_filter(self, *args) -> 'bool' + | can_filter(self) -> bool + | + | can_ins(self, *args) -> 'bool' + | can_ins(self) -> bool + | is an operation allowed? + | + | can_refresh(self, *args) -> 'bool' + | can_refresh(self) -> bool + | + | can_sort(self, *args) -> 'bool' + | can_sort(self) -> bool + | + | get_builtin_number(self, *args) -> 'uint' + | get_builtin_number(self) -> uint + | get number of the built-in chooser + | + | get_count(self, *args) -> 'size_t' + | get_count(self) -> size_t + | get the number of elements in the chooser + | + | get_ea(self, *args) -> '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()) + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address + | + | get_quick_filter_initial_mode(self, *args) -> 'int' + | get_quick_filter_initial_mode(self) -> int + | + | get_row(self, *args) -> 'PyObject *' + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) + | get a description of an element. + | + | @param n: (C++: size_t) element number (0..get_count()-1) + | + | has_diff_capability(self, *args) -> 'bool' + | has_diff_capability(self) -> bool + | + | has_dirtree(self, *args) -> 'bool' + | has_dirtree(self) -> bool + | + | is_dirtree_persisted(self, *args) -> 'bool' + | is_dirtree_persisted(self) -> bool + | + | is_force_default(self, *args) -> 'bool' + | is_force_default(self) -> bool + | should selection of the already opened non-modal chooser be changed? + | + | is_lazy_loaded(self, *args) -> 'bool' + | is_lazy_loaded(self) -> bool + | + | is_modal(self, *args) -> 'bool' + | is_modal(self) -> bool + | is choose modal? + | + | is_multi(self, *args) -> 'bool' + | is_multi(self) -> bool + | is multi-selection allowed? + | + | is_noidb(self, *args) -> 'bool' + | is_noidb(self) -> bool + | can use the chooser before opening the database? + | + | is_quick_filter_visible_initially(self, *args) -> 'bool' + | is_quick_filter_visible_initially(self) -> bool + | + | is_same(self, *args) -> 'bool' + | is_same(self, other) -> bool + | do the current and the given objects hold the same data? + | + | @param other: (C++: const chooser_base_t *) chooser_base_t const * + | + | is_status_bar_hidden(self, *args) -> 'bool' + | is_status_bar_hidden(self) -> bool + | + | popup_allowed(self, *args) -> 'bool' + | popup_allowed(self, stdact_idx) -> bool + | is a standard action allowed? + | + | @param stdact_idx: (C++: int) + | + | should_rename_trigger_edit(self, *args) -> 'bool' + | should_rename_trigger_edit(self) -> bool + | + | should_restore_geometry(self, *args) -> 'bool' + | should_restore_geometry(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | columns + | columns + | + | deflt_col + | deflt_col + | + | header + | header + | + | height + | height + | + | icon + | icon + | + | popup_names + | popup_names + | + | thisown + | The membership flag + | + | title + | title + | + | width + | width + | + | widths + | widths + | + | x0 + | x0 + | + | x1 + | x1 + | + | y0 + | y0 + | + | y1 + | y1 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | NSTDPOPUPS = 4 + | + | POPUP_DEL = 1 + | + | POPUP_EDIT = 2 + | + | POPUP_INS = 0 + | + | POPUP_REFRESH = 3 + +Help on class chooser_item_attrs_t in module ida_kernwin: + +class chooser_item_attrs_t(builtins.object) + | Proxy of C++ chooser_item_attrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> chooser_item_attrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chooser_item_attrs_t(...) + | delete_chooser_item_attrs_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | color + | color + | + | flags + | flags + | + | thisown + | The membership flag + +Help on class chooser_stdact_desc_t in module ida_kernwin: + +class chooser_stdact_desc_t(builtins.object) + | Proxy of C++ chooser_stdact_desc_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _label=None, _tooltip=None, _icon=-1) -> chooser_stdact_desc_t + | + | @param _label: char const * + | @param _tooltip: char const * + | @param _icon: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chooser_stdact_desc_t(...) + | delete_chooser_stdact_desc_t(self) + | + | ucb(self, *args) -> '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. + | + | @param arg0: action_update_ctx_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | icon + | icon + | + | label + | label + | + | thisown + | The membership flag + | + | tooltip + | tooltip + | + | version + | version + +Help on function clear_refresh_request in module ida_kernwin: + +clear_refresh_request(*args) -> 'void' + clear_refresh_request(mask) + + @param mask: uint64 + +Help on class cli_t in module ida_kernwin: + +class cli_t(ida_idaapi.pyidc_opaque_object_t) + | cli_t wrapper class. + | + | This class allows you to implement your own command line interface handlers. + | + | Method resolution order: + | cli_t + | ida_idaapi.pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | OnCompleteLine(self, prefix, n, line, prefix_start) + | The user pressed Tab. Find a completion number N for prefix PREFIX + | + | This callback is optional. + | + | @param prefix: Line prefix at prefix_start (string) + | @param n: completion number (int) + | @param line: the current line (string) + | @param 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. + | + | @param 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. + | + | @param line: current input line + | @param x: current x coordinate of the cursor + | @param sellen: current selection length (usually 0) + | @param vkey: virtual key code. if the key has been handled, it should be returned as zero + | @param 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) + | + | __del__(self) + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | register(self, flags=0, sname=None, lname=None, hint=None) + | Registers the CLI. + | + | @param flags: Feature bits. No bits are defined yet, must be 0 + | @param sname: Short name (displayed on the button) + | @param lname: Long name (displayed in the menu) + | @param hint: Hint for the input line + | + | @return: Boolean: True-Success, False-Failed + | + | unregister(self) + | Unregisters the CLI (if it was registered) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on function close_chooser in module ida_kernwin: + +close_chooser(*args) -> 'bool' + close_chooser(title) -> bool + Close a non-modal chooser (ui_close_chooser). + + @param title: (C++: const char *) window title of chooser to close + @return: success + +Help on function close_widget in module ida_kernwin: + +close_widget(*args) -> 'void' + close_widget(widget, options) + Close widget (ui_close_widget, only gui version). + + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags + +Help on function clr_cancelled in module ida_kernwin: + +clr_cancelled(*args) -> 'void' + clr_cancelled() + Clear "Cancelled" flag (ui_clr_cancelled) + +Help on function create_code_viewer in module ida_kernwin: + +create_code_viewer(*args) -> '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. + + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer + +Help on function create_empty_widget in module ida_kernwin: + +create_empty_widget(*args) -> 'TWidget *' + create_empty_widget(title, icon=-1) -> TWidget * + Create an empty widget, serving as a container for custom user widgets + + @param title: (C++: const char *) char const * + @param icon: (C++: int) + +Help on function create_menu in module ida_kernwin: + +create_menu(*args) -> '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. + + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted + @return: success + +Help on function create_toolbar in module ida_kernwin: + +create_toolbar(*args) -> 'bool' + create_toolbar(name, label, before=None, flags=0) -> bool + Create a toolbar with the given name, label and optional position + + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position + @return: success + +Help on function custom_viewer_jump in module ida_kernwin: + +custom_viewer_jump(*args) -> 'bool' + custom_viewer_jump(v, loc, flags=0) -> bool + Append 'loc' to the viewer's history, and cause the viewer to display it. + + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values + @return: success + +Help on function del_hotkey in module ida_kernwin: + +del_hotkey(*args) -> 'bool' + del_hotkey(pyctx) -> bool + Deletes a previously registered function hotkey + + @param ctx: Hotkey context previously returned by add_hotkey() + + @return: Boolean. + +Help on function del_idc_hotkey in module ida_kernwin: + +del_idc_hotkey(*args) -> 'bool' + del_idc_hotkey(hotkey) -> bool + + @param hotkey: char const * + +Help on function delete_menu in module ida_kernwin: + +delete_menu(*args) -> 'bool' + delete_menu(name) -> bool + Delete an existing menu + + @param name: (C++: const char *) name of menu + @return: success + +Help on function delete_toolbar in module ida_kernwin: + +delete_toolbar(*args) -> 'bool' + delete_toolbar(name) -> bool + Delete an existing toolbar + + @param name: (C++: const char *) name of toolbar + @return: success + +Help on function detach_action_from_menu in module ida_kernwin: + +detach_action_from_menu(*args) -> 'bool' + detach_action_from_menu(menupath, name) -> bool + Detach an action from the menu (ui_detach_action_from_menu). + + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name + @return: success + +Help on function detach_action_from_popup in module ida_kernwin: + +detach_action_from_popup(*args) -> '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. + + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name + +Help on function detach_action_from_toolbar in module ida_kernwin: + +detach_action_from_toolbar(*args) -> 'bool' + detach_action_from_toolbar(toolbar_name, name) -> bool + Detach an action from the toolbar (ui_detach_action_from_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success + +Help on class disabled_script_timeout_t in module ida_kernwin: + +class disabled_script_timeout_t(builtins.object) + | Methods defined here: + | + | __enter__(self) + | + | __exit__(self, type, value, tb) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class disasm_line_t in module ida_kernwin: + +class disasm_line_t(builtins.object) + | Proxy of C++ disasm_line_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> disasm_line_t + | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_disasm_line_t(...) + | delete_disasm_line_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | bg_color + | bg_color + | + | is_default + | is_default + | + | line + | line + | + | prefix_color + | prefix_color + | + | thisown + | The membership flag + +Help on class disasm_text_t in module ida_kernwin: + +class disasm_text_t(builtins.object) + | Proxy of C++ qvector< disasm_line_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'disasm_line_t const &' + | __getitem__(self, i) -> disasm_line_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> disasm_text_t + | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: disasm_line_t const & + | + | __swig_destroy__ = delete_disasm_text_t(...) + | delete_disasm_text_t(self) + | + | at(self, *args) -> 'disasm_line_t const &' + | at(self, _idx) -> disasm_line_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< disasm_line_t >::const_iterator' + | begin(self) -> disasm_line_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< disasm_line_t >::iterator + | + | erase(self, first, last) -> disasm_line_t + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator + | + | extract(self, *args) -> 'disasm_line_t *' + | extract(self) -> disasm_line_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=disasm_line_t()) + | + | @param x: disasm_line_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: disasm_line_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' + | insert(self, it, x) -> disasm_line_t + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'disasm_line_t &' + | push_back(self, x) + | + | @param x: disasm_line_t const & + | + | push_back(self) -> disasm_line_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: disasm_line_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< disasm_line_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function display_copyright_warning in module ida_kernwin: + +display_copyright_warning(*args) -> 'bool' + display_copyright_warning() -> bool + Display copyright warning (ui_copywarn). + + @return: yes/no + +Help on function display_widget in module ida_kernwin: + +display_widget(*args) -> 'void' + display_widget(widget, options, dest_ctrl=None) + Display a widget, dock it if not done before + + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param 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 + +Help on function ea2str in module ida_kernwin: + +ea2str(*args) -> 'size_t' + ea2str(ea) -> str + Convert linear address to UTF-8 string. + + @param ea: (C++: ea_t) + +Help on function ea_viewer_history_push_and_jump in module ida_kernwin: + +ea_viewer_history_push_and_jump(*args) -> '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. + + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address + +Help on function enable_chooser_item_attrs in module ida_kernwin: + +enable_chooser_item_attrs(*args) -> '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. + + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) + @return: success + +Help on class enumplace_t in module ida_kernwin: + +class enumplace_t(place_t) + | Proxy of C++ enumplace_t class. + | + | Method resolution order: + | enumplace_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enumplace_t(...) + | delete_enumplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bmask + | bmask + | + | idx + | idx + | + | serial + | serial + | + | thisown + | The membership flag + | + | value + | value + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on function error in module ida_kernwin: + +error(*args) -> 'void' + error(format) + Display a fatal message in a message box and quit IDA + + @param format: message to print + +Help on function execute_sync in module ida_kernwin: + +execute_sync(*args) -> 'int' + execute_sync(py_callable, reqf) -> int + Executes a function in the context of the main thread. + If the current thread not the main thread, then the call is queued and + executed afterwards. + + @param py_callable: A python callable object, must return an integer value + @param reqf: one of MFF_ flags + @return: -1 or the return value of the callable + +Help on function execute_ui_requests in module ida_kernwin: + +execute_ui_requests(*args) -> 'bool' + execute_ui_requests(py_list) -> bool + Inserts a list of callables into the UI message processing queue. + When the UI is ready it will call one callable. + A callable can request to be called more than once if it returns True. + + @param 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 + +Help on function find_widget in module ida_kernwin: + +find_widget(*args) -> '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! + + @param 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 + +Help on function formchgcbfa_close in module ida_kernwin: + +formchgcbfa_close(*args) -> 'void' + formchgcbfa_close(p_fa, close_normally) + + @param p_fa: size_t + @param close_normally: int + +Help on function formchgcbfa_enable_field in module ida_kernwin: + +formchgcbfa_enable_field(*args) -> 'bool' + formchgcbfa_enable_field(p_fa, fid, enable) -> bool + + @param p_fa: size_t + @param fid: int + @param enable: bool + +Help on function formchgcbfa_get_field_value in module ida_kernwin: + +formchgcbfa_get_field_value(*args) -> 'PyObject *' + formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t + +Help on function formchgcbfa_get_focused_field in module ida_kernwin: + +formchgcbfa_get_focused_field(*args) -> 'int' + formchgcbfa_get_focused_field(p_fa) -> int + + @param p_fa: size_t + +Help on function formchgcbfa_move_field in module ida_kernwin: + +formchgcbfa_move_field(*args) -> 'bool' + formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int + +Help on function formchgcbfa_refresh_field in module ida_kernwin: + +formchgcbfa_refresh_field(*args) -> 'void' + formchgcbfa_refresh_field(p_fa, fid) + + @param p_fa: size_t + @param fid: int + +Help on function formchgcbfa_set_field_value in module ida_kernwin: + +formchgcbfa_set_field_value(*args) -> 'bool' + formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * + +Help on function formchgcbfa_set_focused_field in module ida_kernwin: + +formchgcbfa_set_focused_field(*args) -> 'bool' + formchgcbfa_set_focused_field(p_fa, fid) -> bool + + @param p_fa: size_t + @param fid: int + +Help on function formchgcbfa_show_field in module ida_kernwin: + +formchgcbfa_show_field(*args) -> 'bool' + formchgcbfa_show_field(p_fa, fid, show) -> bool + + @param p_fa: size_t + @param fid: int + @param show: bool + +Help on function free_custom_icon in module ida_kernwin: + +free_custom_icon(*args) -> 'void' + free_custom_icon(icon_id) + Frees an icon loaded with load_custom_icon() + + @param icon_id: int + +Help on function gen_disasm_text in module ida_kernwin: + +gen_disasm_text(*args) -> 'void' + gen_disasm_text(text, ea1, ea2, truncate_lines) + Generate disassembly text for a range. + + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) + +Help on function get_action_checkable in module ida_kernwin: + +get_action_checkable(*args) -> 'bool *' + get_action_checkable(name) -> bool + Get an action's checkability (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_checked in module ida_kernwin: + +get_action_checked(*args) -> 'bool *' + get_action_checked(name) -> bool + Get an action's checked state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_icon in module ida_kernwin: + +get_action_icon(*args) -> 'int *' + get_action_icon(name) -> bool + Get an action's icon (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_label in module ida_kernwin: + +get_action_label(*args) -> 'qstring *' + get_action_label(name) -> str + Get an action's label (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_shortcut in module ida_kernwin: + +get_action_shortcut(*args) -> 'qstring *' + get_action_shortcut(name) -> str + Get an action's shortcut (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_state in module ida_kernwin: + +get_action_state(*args) -> 'action_state_t *' + get_action_state(name) -> bool + Get an action's state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_tooltip in module ida_kernwin: + +get_action_tooltip(*args) -> 'qstring *' + get_action_tooltip(name) -> str + Get an action's tooltip (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_visibility in module ida_kernwin: + +get_action_visibility(*args) -> 'bool *' + get_action_visibility(name) -> bool + Get an action's visibility (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_active_modal_widget in module ida_kernwin: + +get_active_modal_widget(*args) -> '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 + +Help on function get_addon_info in module ida_kernwin: + +get_addon_info(*args) -> '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 + + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) + @return: false if not found + +Help on function get_addon_info_idx in module ida_kernwin: + +get_addon_info_idx(*args) -> '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 + + @param index: (C++: int) + @param info: (C++: addon_info_t *) + @return: false if index is out of range + +Help on function get_chooser_data in module ida_kernwin: + +get_chooser_data(*args) -> '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. + + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) + +Help on function get_chooser_obj in module ida_kernwin: + +get_chooser_obj(*args) -> '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. + + @param chooser_caption: (C++: const char *) char const * + @return: the object that was used to create the chooser + +Help on function get_curline in module ida_kernwin: + +get_curline(*args) -> '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) + +Help on function get_current_viewer in module ida_kernwin: + +get_current_viewer(*args) -> 'TWidget *' + get_current_viewer() -> TWidget * + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) + +Help on function get_current_widget in module ida_kernwin: + +get_current_widget(*args) -> 'TWidget *' + get_current_widget() -> TWidget * + Get a pointer to the current widget (ui_get_current_widget). + +Help on function get_cursor in module ida_kernwin: + +get_cursor(*args) -> '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 + +Help on function get_custom_viewer_curline in module ida_kernwin: + +get_custom_viewer_curline(*args) -> '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 + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + @return: pointer to contents of current line + +Help on function get_custom_viewer_location in module ida_kernwin: + +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). + + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) + +Help on function get_custom_viewer_place in module ida_kernwin: + +get_custom_viewer_place(*args) -> '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() + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) -> 'int' + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line + + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param 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 + +Help on function get_ea_viewer_history_info in module ida_kernwin: + +get_ea_viewer_history_info(*args) -> 'bool' + get_ea_viewer_history_info(nback, nfwd, v) -> bool + Get information about what's in the history (ui_ea_viewer_history_info). + + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise + +Help on function get_hexdump_ea in module ida_kernwin: + +get_hexdump_ea(*args) -> 'ea_t' + get_hexdump_ea(hexdump_num) -> ea_t + Get the current address in a hex view. + + @param hexdump_num: (C++: int) number of hexview window + +Help on function get_highlight in module ida_kernwin: + +get_highlight(*args) -> 'PyObject *' + get_highlight(v, in_flags=0) -> (str, int) or None + Returns the currently highlighted identifier and flags + + @param v: The UI widget to operate on + @param 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. + +Help on function get_kernel_version in module ida_kernwin: + +get_kernel_version(*args) -> 'size_t' + get_kernel_version() -> str + Get IDA kernel version (in a string like "5.1"). + +Help on function get_key_code in module ida_kernwin: + +get_key_code(*args) -> 'ushort' + get_key_code(keyname) -> ushort + Get keyboard key code by its name (ui_get_key_code) + + @param keyname: (C++: const char *) char const * + +Help on function get_navband_ea in module ida_kernwin: + +get_navband_ea(*args) -> 'ea_t' + get_navband_ea(pixel) -> ea_t + Translate the pixel position on the navigation band, into an address. + + @param pixel: (C++: int) + +Help on function get_navband_pixel in module ida_kernwin: + +get_navband_pixel(*args) -> 'bool *' + get_navband_pixel(ea) -> int + Maps an address, onto a pixel coordinate within the navigation band + + @param ea: The address to map + @return: a list [pixel, is_vertical] + +Help on function get_opnum in module ida_kernwin: + +get_opnum(*args) -> 'int' + get_opnum() -> int + Get current operand number, -1 means no operand (ui_get_opnum) + +Help on function get_output_curline in module ida_kernwin: + +get_output_curline(*args) -> 'qstring *' + get_output_curline(mouse) -> str + Get current line of output window (ui_get_output_curline). + + @param mouse: (C++: bool) current for mouse pointer? + @return: false if output contains no text + +Help on function get_output_cursor in module ida_kernwin: + +get_output_cursor(*args) -> '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 + +Help on function get_output_selected_text in module ida_kernwin: + +get_output_selected_text(*args) -> 'qstring *' + get_output_selected_text() -> str + Returns selected text from output window (ui_get_output_selected_text). + + @return: true if there is a selection + +Help on function get_place_class in module ida_kernwin: + +get_place_class(*args) -> '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(). + + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found + +Help on function get_place_class_id in module ida_kernwin: + +get_place_class_id(*args) -> 'int' + get_place_class_id(name) -> int + Get the place class ID for the place that has been registered as 'name'. + + @param name: (C++: const char *) the class name + @return: the place class ID, or -1 if not found + +Help on function get_place_class_template in module ida_kernwin: + +get_place_class_template(*args) -> 'place_t const *' + get_place_class_template(id) -> place_t + See get_place_class() + + @param id: (C++: int) + +Help on function get_registered_actions in module ida_kernwin: + +get_registered_actions(*args) -> 'PyObject *' + get_registered_actions() -> [str, ...] + Get a list of all currently-registered actions + +Help on function get_screen_ea in module ida_kernwin: + +get_screen_ea(*args) -> 'ea_t' + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) + +Help on function get_synced_group in module ida_kernwin: + +get_synced_group(*args) -> 'synced_group_t const *' + get_synced_group(w) -> synced_group_t + Get the group of widgets/registers this view is synchronized with + + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr + +Help on function get_tab_size in module ida_kernwin: + +get_tab_size(*args) -> 'int' + get_tab_size(path) -> int + Get the size of a tab in spaces (ui_get_tab_size). + + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) -> '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) + + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event + +Help on function get_user_strlist_options in module ida_kernwin: + +get_user_strlist_options(*args) -> 'void' + get_user_strlist_options(out) + + @param out: strwinsetup_t * + +Help on function get_view_renderer_type in module ida_kernwin: + +get_view_renderer_type(*args) -> '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) + + @param v: (C++: TWidget *) + +Help on function get_viewer_place_type in module ida_kernwin: + +get_viewer_place_type(*args) -> '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). + + @param viewer: (C++: TWidget *) + +Help on function get_viewer_user_data in module ida_kernwin: + +get_viewer_user_data(*args) -> 'void *' + get_viewer_user_data(viewer) -> void * + Get the user data from a custom viewer (ui_get_viewer_user_data) + + @param viewer: (C++: TWidget *) + +Help on function get_widget_title in module ida_kernwin: + +get_widget_title(*args) -> 'qstring *' + get_widget_title(widget) -> str + Get the TWidget's title (ui_get_widget_title). + + @param widget: (C++: TWidget *) + +Help on function get_widget_type in module ida_kernwin: + +get_widget_type(*args) -> 'twidget_type_t' + get_widget_type(widget) -> twidget_type_t + Get the type of the TWidget * (ui_get_widget_type). + + @param widget: (C++: TWidget *) + +Help on function get_window_id in module ida_kernwin: + +get_window_id(*args) -> 'void *' + get_window_id(name=None) -> void * + Get the system-specific window ID (GUI version only) + + @param name: (C++: const char *) name of the window (nullptr means the main IDA window) + @return: the low-level window ID + +Help on function hide_wait_box in module ida_kernwin: + +hide_wait_box(*args) -> 'void' + hide_wait_box() + Hide the "Please wait dialog box". + +Help on class idaplace_t in module ida_kernwin: + +class idaplace_t(place_t) + | Proxy of C++ idaplace_t class. + | + | Method resolution order: + | idaplace_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idaplace_t(...) + | delete_idaplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ea + | ea + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on function info in module ida_kernwin: + +info(*args) -> 'void' + info(format) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_keyboard_data_t(...) + | delete_input_event_keyboard_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_mouse_data_t(...) + | delete_input_event_mouse_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_shortcut_data_t(...) + | delete_input_event_shortcut_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(builtins.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_t(...) + | delete_input_event_t(self) + | + | _source_as_size(self, *args) -> 'size_t' + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) -> 'size_t' + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag + +Help on function install_command_interpreter in module ida_kernwin: + +install_command_interpreter(*args) -> 'int' + install_command_interpreter(py_obj) -> int + Install command line interpreter (ui_install_cli) + + @param py_obj: PyObject * + +Help on function internal_register_place_class in module ida_kernwin: + +internal_register_place_class(*args) -> 'int' + internal_register_place_class(tmplate, flags, owner, sdk_version) -> int + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int + +Help on function is_action_enabled in module ida_kernwin: + +is_action_enabled(*args) -> 'bool' + is_action_enabled(s) -> bool + Check if the given action state is one of AST_ENABLE*. + + @param s: (C++: action_state_t) enum action_state_t + +Help on function is_chooser_widget in module ida_kernwin: + +is_chooser_widget(*args) -> 'bool' + is_chooser_widget(t) -> bool + Does the given widget type specify a chooser widget? + + @param t: (C++: twidget_type_t) + +Help on function is_idaq in module ida_kernwin: + +is_idaq(*args) -> 'bool' + is_idaq() -> bool + Returns True or False depending if IDAPython is hosted by IDAQ + +Help on function is_idaview in module ida_kernwin: + +is_idaview(*args) -> 'bool' + is_idaview(v) -> bool + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) + +Help on function is_msg_inited in module ida_kernwin: + +is_msg_inited(*args) -> 'bool' + is_msg_inited() -> bool + Can we use msg() functions? + +Help on function is_place_class_ea_capable in module ida_kernwin: + +is_place_class_ea_capable(*args) -> 'bool' + is_place_class_ea_capable(id) -> bool + See get_place_class() + + @param id: (C++: int) + +Help on function is_refresh_requested in module ida_kernwin: + +is_refresh_requested(*args) -> 'bool' + is_refresh_requested(mask) -> bool + Get a refresh request state + + @param mask: (C++: uint64) Window refresh flags + @return: the state (set or cleared) + +Help on class jobj_wrapper_t in module ida_kernwin: + +class jobj_wrapper_t(builtins.object) + | Proxy of C++ jobj_wrapper_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | get_dict(self, *args) -> 'PyObject *' + | get_dict(self) -> dict + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function jumpto in module ida_kernwin: + +jumpto(*args) -> 'bool' + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success + jumpto(custom_viewer, place, x, y) -> bool + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int + +Help on function l_compare2 in module ida_kernwin: + +l_compare2(*args) -> 'int' + l_compare2(t1, t2, ud) -> int + + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * + +Help on class line_rendering_output_entries_refs_t in module ida_kernwin: + +class line_rendering_output_entries_refs_t(builtins.object) + | Proxy of C++ qvector< line_rendering_output_entry_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __getitem__(self, *args) -> 'line_rendering_output_entry_t *const &' + | __getitem__(self, i) -> line_rendering_output_entry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & + | + | __swig_destroy__ = delete_line_rendering_output_entries_refs_t(...) + | delete_line_rendering_output_entries_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) -> 'void' + | _internal_push_back(self, e) + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | at(self, *args) -> 'line_rendering_output_entry_t *const &' + | at(self, _idx) -> line_rendering_output_entry_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: line_rendering_output_entry_t *const & + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | + | @param x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, e) + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< line_rendering_output_entry_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class line_rendering_output_entry_t in module ida_kernwin: + +class line_rendering_output_entry_t(builtins.object) + | Proxy of C++ line_rendering_output_entry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_line_rendering_output_entry_t(...) + | delete_line_rendering_output_entry_t(self) + | + | is_bg_color_direct(self, *args) -> 'bool' + | is_bg_color_direct(self) -> bool + | + | is_bg_color_empty(self, *args) -> 'bool' + | is_bg_color_empty(self) -> bool + | + | is_bg_color_key(self, *args) -> 'bool' + | is_bg_color_key(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bg_color + | bg_color + | + | cpx + | cpx + | + | flags + | flags + | + | line + | line + | + | nchars + | nchars + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class linearray_t in module ida_kernwin: + +class linearray_t(builtins.object) + | Proxy of C++ linearray_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ud) -> linearray_t + | + | @param _ud: void * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_linearray_t(...) + | delete_linearray_t(self) + | + | beginning(self, *args) -> 'bool' + | beginning(self) -> bool + | Are we at the beginning? + | + | down(self, *args) -> 'qstring const *' + | down(self) -> qstring const * + | Get a line from down direction. place is ok BEFORE + | + | ending(self, *args) -> 'bool' + | ending(self) -> bool + | + | get_bg_color(self, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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. + | + | @param 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, *args) -> 'void' + | set_userdata(self, userd) + | Change the user data. + | + | @param userd: (C++: void *) + | + | up(self, *args) -> 'qstring const *' + | up(self) -> qstring const * + | Get a line from up direction. place is ok AFTER + | + | userdata(self, *args) -> 'void *' + | userdata(self) -> void * + | Get pointer to user data. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lines_rendering_input_t in module ida_kernwin: + +class lines_rendering_input_t(builtins.object) + | Proxy of C++ lines_rendering_input_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_input_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_input_t(...) + | delete_lines_rendering_input_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | sections_lines + | sections_lines + | + | sync_group + | sync_group + | + | thisown + | The membership flag + +Help on class lines_rendering_output_t in module ida_kernwin: + +class lines_rendering_output_t(builtins.object) + | Proxy of C++ lines_rendering_output_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_output_t(...) + | delete_lines_rendering_output_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lines_rendering_output_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | entries + | entries + | + | flags + | flags + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function load_custom_icon in module ida_kernwin: + +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 + +Help on function load_dbg_dbginfo in module ida_kernwin: + +load_dbg_dbginfo(*args) -> 'bool' + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool + Load debugging information from a file. + + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window + +Help on function lookup_key_code in module ida_kernwin: + +lookup_key_code(*args) -> 'ushort' + lookup_key_code(key, shift, is_qt) -> ushort + Get shortcut code previously created by ui_get_key_code. + + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? + +Help on function msg in module ida_kernwin: + +msg(*args) -> '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. + + @param message: message to print (formatting is done in Python) + + This function can be used to debug IDAPython scripts + +Help on function msg_clear in module ida_kernwin: + +msg_clear(*args) -> 'void' + msg_clear() + Clear the "Output" window. + +Help on function msg_get_lines in module ida_kernwin: + +msg_get_lines(*args) -> 'PyObject *' + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) + + @param count: (C++: int) The number of lines to retrieve. -1 means: all + +Help on function msg_save in module ida_kernwin: + +msg_save(*args) -> 'bool' + msg_save(path) -> bool + Save the "Output" window contents into a file + + @param 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 + +Help on function nomem in module ida_kernwin: + +nomem(*args) -> 'void' + nomem(format) + + @param format: char const * + +Help on function open_bookmarks_window in module ida_kernwin: + +open_bookmarks_window(*args) -> 'TWidget *' + open_bookmarks_window(w) -> TWidget * + Open the bookmarks window (ui_open_builtin). + + @param 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 + +Help on function open_bpts_window in module ida_kernwin: + +open_bpts_window(*args) -> 'TWidget *' + open_bpts_window(ea) -> TWidget * + Open the breakpoints window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_calls_window in module ida_kernwin: + +open_calls_window(*args) -> 'TWidget *' + open_calls_window(ea) -> TWidget * + Open the function calls window (ui_open_builtin). + + @param ea: (C++: ea_t) + @return: pointer to resulting window + +Help on function open_disasm_window in module ida_kernwin: + +open_disasm_window(*args) -> 'TWidget *' + open_disasm_window(window_title, ranges=None) -> TWidget * + Open a disassembly view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges + @return: pointer to resulting window + +Help on function open_enums_window in module ida_kernwin: + +open_enums_window(*args) -> 'TWidget *' + open_enums_window(const_id=BADADDR) -> TWidget * + Open the enums window (ui_open_builtin). + + @param const_id: (C++: tid_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_exports_window in module ida_kernwin: + +open_exports_window(*args) -> 'TWidget *' + open_exports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_form in module ida_kernwin: + +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 + +Help on function open_frame_window in module ida_kernwin: + +open_frame_window(*args) -> 'TWidget *' + open_frame_window(pfn, offset) -> TWidget * + Open the frame window for the given function (ui_open_builtin). + + @param pfn: (C++: func_t *) function to analyze + @param 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 + +Help on function open_funcs_window in module ida_kernwin: + +open_funcs_window(*args) -> 'TWidget *' + open_funcs_window(ea) -> TWidget * + Open the 'Functions' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_hexdump_window in module ida_kernwin: + +open_hexdump_window(*args) -> 'TWidget *' + open_hexdump_window(window_title) -> TWidget * + Open a hexdump view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @return: pointer to resulting window + +Help on function open_imports_window in module ida_kernwin: + +open_imports_window(*args) -> 'TWidget *' + open_imports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_loctypes_window in module ida_kernwin: + +open_loctypes_window(*args) -> 'TWidget *' + open_loctypes_window(ordinal) -> TWidget * + Open the local types window (ui_open_builtin). + + @param ordinal: (C++: int) ordinal of type to select by default + @return: pointer to resulting window + +Help on function open_modules_window in module ida_kernwin: + +open_modules_window(*args) -> 'TWidget *' + open_modules_window() -> TWidget * + Open the modules window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_names_window in module ida_kernwin: + +open_names_window(*args) -> 'TWidget *' + open_names_window(ea) -> TWidget * + Open the names window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_navband_window in module ida_kernwin: + +open_navband_window(*args) -> 'TWidget *' + open_navband_window(ea, zoom) -> TWidget * + Open the navigation band window (ui_open_builtin). + + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level + @return: pointer to resulting window + +Help on function open_notepad_window in module ida_kernwin: + +open_notepad_window(*args) -> 'TWidget *' + open_notepad_window() -> TWidget * + Open the notepad window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_problems_window in module ida_kernwin: + +open_problems_window(*args) -> 'TWidget *' + open_problems_window(ea) -> TWidget * + Open the problems window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_segments_window in module ida_kernwin: + +open_segments_window(*args) -> 'TWidget *' + open_segments_window(ea) -> TWidget * + Open the segments window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_segregs_window in module ida_kernwin: + +open_segregs_window(*args) -> 'TWidget *' + open_segregs_window(ea) -> TWidget * + Open the segment registers window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_selectors_window in module ida_kernwin: + +open_selectors_window(*args) -> 'TWidget *' + open_selectors_window() -> TWidget * + Open the selectors window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_signatures_window in module ida_kernwin: + +open_signatures_window(*args) -> 'TWidget *' + open_signatures_window() -> TWidget * + Open the signatures window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_stack_window in module ida_kernwin: + +open_stack_window(*args) -> 'TWidget *' + open_stack_window() -> TWidget * + Open the call stack window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_strings_window in module ida_kernwin: + +open_strings_window(*args) -> 'TWidget *' + open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + Open the 'Strings' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) + @return: pointer to resulting window + +Help on function open_structs_window in module ida_kernwin: + +open_structs_window(*args) -> 'TWidget *' + open_structs_window(id=BADADDR, offset=0) -> TWidget * + Open the structs window (ui_open_builtin). + + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window + +Help on function open_threads_window in module ida_kernwin: + +open_threads_window(*args) -> 'TWidget *' + open_threads_window() -> TWidget * + Open the threads window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_tils_window in module ida_kernwin: + +open_tils_window(*args) -> 'TWidget *' + open_tils_window() -> TWidget * + Open the type libraries window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_trace_window in module ida_kernwin: + +open_trace_window(*args) -> 'TWidget *' + open_trace_window() -> TWidget * + Open the tracing window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_url in module ida_kernwin: + +open_url(*args) -> 'void' + open_url(url) + Open the given url (ui_open_url) + + @param url: (C++: const char *) char const * + +Help on function open_xrefs_window in module ida_kernwin: + +open_xrefs_window(*args) -> 'TWidget *' + open_xrefs_window(ea) -> TWidget * + Open the cross references window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on class place_t in module ida_kernwin: + +class place_t(builtins.object) + | Proxy of C++ place_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_place_t(...) + | delete_place_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + | + | thisown + | The membership flag + +Help on function place_t_as_enumplace_t in module ida_kernwin: + +place_t_as_enumplace_t(*args) -> 'enumplace_t *' + place_t_as_enumplace_t(p) -> enumplace_t + + @param p: place_t * + +Help on function place_t_as_idaplace_t in module ida_kernwin: + +place_t_as_idaplace_t(*args) -> 'idaplace_t *' + place_t_as_idaplace_t(p) -> idaplace_t + + @param p: place_t * + +Help on function place_t_as_simpleline_place_t in module ida_kernwin: + +place_t_as_simpleline_place_t(*args) -> 'simpleline_place_t *' + place_t_as_simpleline_place_t(p) -> simpleline_place_t + + @param p: place_t * + +Help on function place_t_as_structplace_t in module ida_kernwin: + +place_t_as_structplace_t(*args) -> 'structplace_t *' + place_t_as_structplace_t(p) -> structplace_t + + @param p: place_t * + +Help on function plgform_close in module ida_kernwin: + +plgform_close(*args) -> 'void' + plgform_close(py_link, options) + + @param py_link: PyObject * + @param options: int + +Help on function plgform_get_widget in module ida_kernwin: + +plgform_get_widget(*args) -> 'TWidget *' + plgform_get_widget(py_link) -> TWidget * + + @param py_link: PyObject * + +Help on function plgform_new in module ida_kernwin: + +plgform_new(*args) -> 'PyObject *' + plgform_new() -> PyObject * + +Help on function plgform_show in module ida_kernwin: + +plgform_show(*args) -> 'bool' + plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int + +Help on function process_ui_action in module ida_kernwin: + +process_ui_action(*args) -> 'bool' + process_ui_action(name, flags=0) -> bool + Invokes an IDA UI action by name + + @param name: action name + @param flags: int + @return: Boolean + +Help on function py_chooser_base_t_get_row in module ida_kernwin: + +py_chooser_base_t_get_row(*args) -> 'PyObject *' + py_chooser_base_t_get_row(chobj, n) -> PyObject * + + @param chobj: chooser_base_t const * + @param n: size_t + +Help on function py_get_ask_form in module ida_kernwin: + +py_get_ask_form(*args) -> 'size_t' + py_get_ask_form() -> size_t + +Help on function py_get_open_form in module ida_kernwin: + +py_get_open_form(*args) -> 'size_t' + py_get_open_form() -> size_t + +Help on function py_load_custom_icon_data in module ida_kernwin: + +py_load_custom_icon_data(*args) -> 'int' + py_load_custom_icon_data(data, format) -> int + + @param data: PyObject * + @param format: char const * + +Help on function py_load_custom_icon_fn in module ida_kernwin: + +py_load_custom_icon_fn(*args) -> 'int' + py_load_custom_icon_fn(filename) -> int + + @param filename: char const * + +Help on function py_register_compiled_form in module ida_kernwin: + +py_register_compiled_form(*args) -> 'void' + py_register_compiled_form(py_form) + + @param py_form: PyObject * + +Help on function py_unregister_compiled_form in module ida_kernwin: + +py_unregister_compiled_form(*args) -> 'void' + py_unregister_compiled_form(py_form) + + @param py_form: PyObject * + +Help on function pyidag_bind in module ida_kernwin: + +pyidag_bind(*args) -> 'bool' + pyidag_bind(_self) -> bool + + @param self: PyObject * + +Help on function pyidag_unbind in module ida_kernwin: + +pyidag_unbind(*args) -> 'bool' + pyidag_unbind(_self) -> bool + + @param self: PyObject * + +Help on function pyscv_add_line in module ida_kernwin: + +pyscv_add_line(*args) -> 'bool' + pyscv_add_line(py_this, py_sl) -> bool + + @param py_this: PyObject * + @param py_sl: PyObject * + +Help on function pyscv_clear_lines in module ida_kernwin: + +pyscv_clear_lines(*args) -> 'PyObject *' + pyscv_clear_lines(py_this) -> PyObject * + + @param py_this: PyObject * + +Help on function pyscv_close in module ida_kernwin: + +pyscv_close(*args) -> 'void' + pyscv_close(py_this) + + @param py_this: PyObject * + +Help on function pyscv_count in module ida_kernwin: + +pyscv_count(*args) -> 'size_t' + pyscv_count(py_this) -> size_t + + @param py_this: PyObject * + +Help on function pyscv_del_line in module ida_kernwin: + +pyscv_del_line(*args) -> 'bool' + pyscv_del_line(py_this, nline) -> bool + + @param py_this: PyObject * + @param nline: size_t + +Help on function pyscv_edit_line in module ida_kernwin: + +pyscv_edit_line(*args) -> 'bool' + pyscv_edit_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * + +Help on function pyscv_get_current_line in module ida_kernwin: + +pyscv_get_current_line(*args) -> 'PyObject *' + pyscv_get_current_line(py_this, mouse, notags) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool + +Help on function pyscv_get_current_word in module ida_kernwin: + +pyscv_get_current_word(*args) -> 'PyObject *' + pyscv_get_current_word(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + +Help on function pyscv_get_line in module ida_kernwin: + +pyscv_get_line(*args) -> 'PyObject *' + pyscv_get_line(py_this, nline) -> PyObject * + + @param py_this: PyObject * + @param nline: size_t + +Help on function pyscv_get_pos in module ida_kernwin: + +pyscv_get_pos(*args) -> 'PyObject *' + pyscv_get_pos(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + +Help on function pyscv_get_selection in module ida_kernwin: + +pyscv_get_selection(*args) -> 'PyObject *' + pyscv_get_selection(py_this) -> PyObject * + + @param py_this: PyObject * + +Help on function pyscv_get_widget in module ida_kernwin: + +pyscv_get_widget(*args) -> 'TWidget *' + pyscv_get_widget(py_this) -> TWidget * + + @param py_this: PyObject * + +Help on function pyscv_init in module ida_kernwin: + +pyscv_init(*args) -> 'PyObject *' + pyscv_init(py_link, title) -> PyObject * + + @param py_link: PyObject * + @param title: char const * + +Help on function pyscv_insert_line in module ida_kernwin: + +pyscv_insert_line(*args) -> 'bool' + pyscv_insert_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * + +Help on function pyscv_is_focused in module ida_kernwin: + +pyscv_is_focused(*args) -> 'bool' + pyscv_is_focused(py_this) -> bool + + @param py_this: PyObject * + +Help on function pyscv_jumpto in module ida_kernwin: + +pyscv_jumpto(*args) -> 'bool' + pyscv_jumpto(py_this, ln, x, y) -> bool + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int + +Help on function pyscv_patch_line in module ida_kernwin: + +pyscv_patch_line(*args) -> 'bool' + pyscv_patch_line(py_this, nline, offs, value) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int + +Help on function pyscv_refresh in module ida_kernwin: + +pyscv_refresh(*args) -> 'bool' + pyscv_refresh(py_this) -> bool + + @param py_this: PyObject * + +Help on function pyscv_show in module ida_kernwin: + +pyscv_show(*args) -> 'bool' + pyscv_show(py_this) -> bool + + @param py_this: PyObject * + +Help on function qcleanline in module ida_kernwin: + +qcleanline(*args) -> 'qstring *' + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str + Performs some cleanup operations to a line. + + @param 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 + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM + @return: length of line + +Help on class quick_widget_commands_t in module ida_kernwin: + +class quick_widget_commands_t(builtins.object) + | # ---------------------------------------------------------------------- + | # This provides an alternative to register_action()+attach_action_to_popup_menu() + | + | Methods defined here: + | + | __init__(self, callback) + | Initialize self. See help(type(self)) for accurate signature. + | + | add(self, caption, flags, menu_index, icon, emb, shortcut) + | + | populate_popup(self, widget, popup) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | _ah_t = <class 'ida_kernwin.quick_widget_commands_t._ah_t'> + | + | + | _cmd_t = <class 'ida_kernwin.quick_widget_commands_t._cmd_t'> + +Help on function read_range_selection in module ida_kernwin: + +read_range_selection(*args) -> '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() + + @param 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 + +Help on function read_selection in module ida_kernwin: + +read_selection(*args) -> 'bool' + read_selection(v, p1, p2) -> bool + Read the user selection, and store its information in p0 (from) and p1 (to). + + This can be used as follows: + + + >>> p0 = idaapi.twinpos_t() + p1 = idaapi.twinpos_t() + view = idaapi.get_current_viewer() + idaapi.read_selection(view, p0, p1) + + + At that point, p0 and p1 hold information for the selection. + But, the 'at' property of p0 and p1 is not properly typed. + To specialize it, call #place() on it, passing it the view + they were retrieved from. Like so: + + + >>> place0 = p0.place(view) + place1 = p1.place(view) + + + This will effectively "cast" the place into a specialized type, + holding proper information, depending on the view type (e.g., + disassembly, structures, enums, ...) + + @param view: The view to retrieve the selection for. + @param p1: Storage for the "to" part of the selection. + @param p1: Storage for the "to" part of the selection. + @return: a bool value indicating success. + +Help on function refresh_chooser in module ida_kernwin: + +refresh_chooser(*args) -> 'bool' + refresh_chooser(title) -> bool + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). + + @param title: (C++: const char *) title of chooser + @return: success + +Help on function refresh_choosers in module ida_kernwin: + +refresh_choosers(*args) -> 'void' + refresh_choosers() + +Help on function refresh_custom_viewer in module ida_kernwin: + +refresh_custom_viewer(*args) -> 'void' + refresh_custom_viewer(custom_viewer) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) + +Help on function refresh_idaview in module ida_kernwin: + +refresh_idaview(*args) -> 'void' + refresh_idaview() + Refresh marked windows (ui_refreshmarked) + +Help on function refresh_idaview_anyway in module ida_kernwin: + +refresh_idaview_anyway(*args) -> 'void' + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead + +Help on function refresh_navband in module ida_kernwin: + +refresh_navband(*args) -> 'void' + refresh_navband(force) + Refresh navigation band if changed (ui_refresh_navband). + + @param force: (C++: bool) refresh regardless + +Help on function register_action in module ida_kernwin: + +register_action(*args) -> '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. + + @param desc: (C++: const action_desc_t &) action to register + @return: success + +Help on function register_addon in module ida_kernwin: + +register_addon(*args) -> '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 + + @param info: (C++: const addon_info_t *) addon_info_t const * + +Help on function register_and_attach_to_menu in module ida_kernwin: + +register_and_attach_to_menu(*args) -> '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. + + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) + +Help on function register_timer in module ida_kernwin: + +register_timer(*args) -> 'PyObject *' + register_timer(interval, py_callback) -> PyCapsule + Register a timer + + @param interval: Interval in milliseconds + @param 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 + +Help on function remove_command_interpreter in module ida_kernwin: + +remove_command_interpreter(*args) -> 'void' + remove_command_interpreter(cli_idx) + Remove command line interpreter (ui_install_cli) + + @param cli_idx: int + +Help on class renderer_pos_info_t in module ida_kernwin: + +class renderer_pos_info_t(builtins.object) + | Proxy of C++ renderer_pos_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & + | + | __init__(self, *args) + | __init__(self) -> renderer_pos_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_renderer_pos_info_t(...) + | delete_renderer_pos_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cx + | cx + | + | cy + | cy + | + | node + | node + | + | sx + | sx + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function repaint_custom_viewer in module ida_kernwin: + +repaint_custom_viewer(*args) -> 'void' + repaint_custom_viewer(custom_viewer) + Repaint the given widget immediately (ui_repaint_qwidget) + + @param custom_viewer: (C++: TWidget *) + +Help on function replace_wait_box in module ida_kernwin: + +replace_wait_box(*args) -> 'void' + replace_wait_box(format) + Replace the label of "Please wait dialog box". + + @param format: (C++: const char *) char const * + +Help on function request_refresh in module ida_kernwin: + +request_refresh(*args) -> 'void' + request_refresh(mask, cnd=True) + Request a refresh of a builtin window. + + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function restore_database_snapshot in module ida_kernwin: + +restore_database_snapshot(*args) -> '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. + + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param 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. + +Help on class section_lines_refs_t in module ida_kernwin: + +class section_lines_refs_t(builtins.object) + | Proxy of C++ qvector< twinline_t const * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) -> 'twinline_t const *const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const *const & + | + | __swig_destroy__ = delete_section_lines_refs_t(...) + | delete_section_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: twinline_t const *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | at(self, *args) -> 'twinline_t const *const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t const * >::iterator + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: twinline_t const *const & + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | + | @param x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t const ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t const *&' + | push_back(self, x) + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t const * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class sections_lines_refs_t in module ida_kernwin: + +class sections_lines_refs_t(builtins.object) + | Proxy of C++ qvector< section_lines_refs_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) -> 'section_lines_refs_t const &' + | __getitem__(self, i) -> section_lines_refs_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: section_lines_refs_t const & + | + | __swig_destroy__ = delete_sections_lines_refs_t(...) + | delete_sections_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: section_lines_refs_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | at(self, *args) -> 'section_lines_refs_t const &' + | at(self, _idx) -> section_lines_refs_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< section_lines_refs_t >::iterator + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: section_lines_refs_t const & + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | + | @param x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=section_lines_refs_t()) + | + | @param x: section_lines_refs_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: section_lines_refs_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'section_lines_refs_t &' + | push_back(self, x) + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< section_lines_refs_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function set_cancelled in module ida_kernwin: + +set_cancelled(*args) -> 'void' + set_cancelled() + Set "Cancelled" flag (ui_set_cancelled) + +Help on function set_code_viewer_handler in module ida_kernwin: + +set_code_viewer_handler(*args) -> '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). + + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param 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 + +Help on function set_code_viewer_is_source in module ida_kernwin: + +set_code_viewer_is_source(*args) -> '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). + + @param code_viewer: (C++: TWidget *) + +Help on function set_code_viewer_line_handlers in module ida_kernwin: + +set_code_viewer_line_handlers(*args) -> '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 + + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) + +Help on function set_code_viewer_lines_alignment in module ida_kernwin: + +set_code_viewer_lines_alignment(*args) -> 'bool' + set_code_viewer_lines_alignment(code_viewer, align) -> bool + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) + +Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: + +set_code_viewer_lines_icon_margin(*args) -> '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). + + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) + +Help on function set_code_viewer_lines_radix in module ida_kernwin: + +set_code_viewer_lines_radix(*args) -> 'bool' + set_code_viewer_lines_radix(code_viewer, radix) -> bool + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) + +Help on function set_code_viewer_user_data in module ida_kernwin: + +set_code_viewer_user_data(*args) -> 'bool' + set_code_viewer_user_data(code_viewer, ud) -> bool + Set the user data on a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) + +Help on function set_custom_viewer_qt_aware in module ida_kernwin: + +set_custom_viewer_qt_aware(*args) -> 'bool' + set_custom_viewer_qt_aware(custom_viewer) -> bool + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) + + @param custom_viewer: (C++: TWidget *) + +Help on function set_dock_pos in module ida_kernwin: + +set_dock_pos(*args) -> 'bool' + set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool + Sets the dock orientation of a window relatively to another window. + + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int + @return: Boolean + + Example: + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window + +Help on function set_highlight in module ida_kernwin: + +set_highlight(*args) -> 'bool' + set_highlight(viewer, str, flags) -> bool + Set the highlighted identifier in the viewer (ui_set_highlight). + + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) + @return: false if an error occurred + +Help on function set_nav_colorizer in module ida_kernwin: + +set_nav_colorizer(*args) -> '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) + + @param new_py_colorizer: PyObject * + +Help on function set_view_renderer_type in module ida_kernwin: + +set_view_renderer_type(*args) -> 'void' + set_view_renderer_type(v, rt) + Set the type of renderer to use in a view (ui_set_renderer_type) + + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t + +Help on function show_wait_box in module ida_kernwin: + +show_wait_box(*args) -> '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. + + @param message: char const * + +Help on class simplecustviewer_t in module ida_kernwin: + +class simplecustviewer_t(builtins.object) + | The base class for implementing simple custom viewers + | + | Methods defined here: + | + | 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 + | + | @param 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. + | @param mouse: Current line at mouse pos + | @param 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 + | @param 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 + | @param 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. + | @param 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 close, then it will call Create() for you + | @return: Boolean + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | _simplecustviewer_t__make_sl_arg = __make_sl_arg(line, fgcolor=None, bgcolor=None) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | UI_Hooks_Trampoline = <class 'ida_kernwin.simplecustviewer_t.UI_Hooks_... + | Proxy of C++ UI_Hooks class. + +Help on class simpleline_place_t in module ida_kernwin: + +class simpleline_place_t(place_t) + | Proxy of C++ simpleline_place_t class. + | + | Method resolution order: + | simpleline_place_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simpleline_place_t(...) + | delete_simpleline_place_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | n + | n + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on class simpleline_t in module ida_kernwin: + +class simpleline_t(builtins.object) + | Proxy of C++ simpleline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> simpleline_t + | __init__(self, c, str) -> simpleline_t + | + | @param c: color_t + | @param str: char const * + | + | __init__(self, str) -> simpleline_t + | + | @param str: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simpleline_t(...) + | delete_simpleline_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bgcolor + | bgcolor + | + | color + | color + | + | line + | line + | + | thisown + | The membership flag + +Help on function str2ea in module ida_kernwin: + +str2ea(*args) -> 'ea_t' + str2ea(str, screenEA=BADADDR) -> ea_t + Converts a string express to EA. The expression evaluator may be called as well. + + @param str: char const * + @param screenEA: ea_t + @return: BADADDR or address value + +Help on function str2user in module ida_pro: + +str2user(*args) -> 'PyObject *' + str2user(str) -> str or None + Insert C-style escape characters to string + + @param str: char const * + @return: new string with escape characters inserted + +Help on function strarray in module ida_kernwin: + +strarray(*args) -> '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 "". + + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) + +Help on class strarray_t in module ida_kernwin: + +class strarray_t(builtins.object) + | Proxy of C++ strarray_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> strarray_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_strarray_t(...) + | delete_strarray_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | code + | code + | + | text + | text + | + | thisown + | The membership flag + +Help on class structplace_t in module ida_kernwin: + +class structplace_t(place_t) + | Proxy of C++ structplace_t class. + | + | Method resolution order: + | structplace_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_structplace_t(...) + | delete_structplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | idx + | idx + | + | offset + | offset + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on class sync_source_t in module ida_kernwin: + +class sync_source_t(builtins.object) + | Proxy of C++ sync_source_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, _o) -> bool + | + | @param _o: sync_source_t const & + | + | __init__(self, *args) + | __init__(self, _view) -> sync_source_t + | + | @param _view: TWidget const * + | + | __init__(self, _regname) -> sync_source_t + | + | @param _regname: char const * + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, _o) -> bool + | + | @param _o: sync_source_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sync_source_t(...) + | delete_sync_source_t(self) + | + | get_register(self, *args) -> 'char const *' + | get_register(self) -> char const * + | + | get_widget(self, *args) -> 'TWidget const *' + | get_widget(self) -> TWidget const * + | + | is_register(self, *args) -> 'bool' + | is_register(self) -> bool + | + | is_widget(self, *args) -> 'bool' + | is_widget(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class sync_source_vec_t in module ida_kernwin: + +class sync_source_vec_t(builtins.object) + | Proxy of C++ qvector< sync_source_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | __swig_destroy__ = delete_sync_source_vec_t(...) + | delete_sync_source_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: sync_source_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function sync_sources in module ida_kernwin: + +sync_sources(*args) -> 'bool' + sync_sources(what, _with, sync) -> bool + [Un]synchronize sources + + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) + @return: success + +Help on class synced_group_t in module ida_kernwin: + +class synced_group_t(sync_source_vec_t) + | Proxy of C++ synced_group_t class. + | + | Method resolution order: + | synced_group_t + | sync_source_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> synced_group_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_synced_group_t(...) + | delete_synced_group_t(self) + | + | has(self, *args) -> 'bool' + | has(self, ss) -> bool + | + | @param ss: sync_source_t const & + | + | has_register(self, *args) -> 'bool' + | has_register(self, r) -> bool + | + | @param r: char const * + | + | has_widget(self, *args) -> 'bool' + | has_widget(self, v) -> bool + | + | @param v: TWidget const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from sync_source_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from sync_source_vec_t: + | + | __hash__ = None + +Help on function take_database_snapshot in module ida_kernwin: + +take_database_snapshot(*args) -> 'PyObject *' + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). + + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id + @return: success + +Help on class text_t in module ida_kernwin: + +class text_t(builtins.object) + | Proxy of C++ qvector< twinline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'twinline_t const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const & + | + | __swig_destroy__ = delete_text_t(...) + | delete_text_t(self) + | + | at(self, *args) -> 'twinline_t const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' + | begin(self) -> twinline_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t >::iterator + | + | erase(self, first, last) -> twinline_t + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator + | + | extract(self, *args) -> 'twinline_t *' + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=twinline_t()) + | + | @param x: twinline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t >::iterator' + | insert(self, it, x) -> twinline_t + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t &' + | push_back(self, x) + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class textctrl_info_t in module ida_kernwin: + +class textctrl_info_t(ida_idaapi.py_clinked_object_t) + | Class representing textctrl_info_t + | + | Method resolution order: + | textctrl_info_t + | ida_idaapi.py_clinked_object_t + | ida_idaapi.pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | __get_flags__(self) + | Returns the flags value + | + | __get_tabsize__(self) + | Returns the tabsize value + | + | __init__(self, text='', flags=0, tabsize=0) + | Initialize self. See help(type(self)) for accurate signature. + | + | __set_flags__(self, flags) + | Sets the flags value + | + | __set_tabsize__(self, tabsize) + | Sets the tabsize value + | + | _create_clink(self) + | Overwrite me. + | Creates a new clink + | @return: PyCapsule representing the C link + | + | _del_clink(self, lnk) + | Overwrite me. + | This method deletes the link + | + | _get_clink_ptr(self) + | Overwrite me. + | Returns the C link pointer as a 64bit number + | + | _textctrl_info_t__get_text = __get_text(self) + | Sets the text value + | + | _textctrl_info_t__set_text = __set_text(self, s) + | Sets the text value + | + | assign(self, other) + | Copies the contents of 'other' to 'self' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | Returns the flags value + | + | tabsize + | Returns the tabsize value + | + | text + | Sets the text value + | + | value + | Sets the text value + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | TXTF_ACCEPTTABS = 2 + | + | TXTF_AUTOINDENT = 1 + | + | TXTF_FIXEDFONT = 32 + | + | TXTF_MODIFIED = 16 + | + | TXTF_READONLY = 4 + | + | TXTF_SELECTED = 8 + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_idaapi.py_clinked_object_t: + | + | __del__(self) + | Delete the link upon object destruction (only if not static) + | + | _free(self) + | Explicitly delete the link (only if not static) + | + | copy(self) + | Returns a new copy of this class + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.py_clinked_object_t: + | + | clink + | + | clink_ptr + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on function textctrl_info_t_assign in module ida_kernwin: + +textctrl_info_t_assign(*args) -> 'bool' + textctrl_info_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * + +Help on function textctrl_info_t_create in module ida_kernwin: + +textctrl_info_t_create(*args) -> 'PyObject *' + textctrl_info_t_create() -> PyObject * + +Help on function textctrl_info_t_destroy in module ida_kernwin: + +textctrl_info_t_destroy(*args) -> 'bool' + textctrl_info_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * + +Help on function textctrl_info_t_get_clink in module ida_kernwin: + +textctrl_info_t_get_clink(*args) -> 'textctrl_info_t *' + textctrl_info_t_get_clink(_self) -> textctrl_info_t * + + @param self: PyObject * + +Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: + +textctrl_info_t_get_clink_ptr(*args) -> 'PyObject *' + textctrl_info_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * + +Help on function textctrl_info_t_get_flags in module ida_kernwin: + +textctrl_info_t_get_flags(*args) -> 'unsigned int' + textctrl_info_t_get_flags(_self) -> unsigned int + + @param self: PyObject * + +Help on function textctrl_info_t_get_tabsize in module ida_kernwin: + +textctrl_info_t_get_tabsize(*args) -> 'unsigned int' + textctrl_info_t_get_tabsize(_self) -> unsigned int + + @param self: PyObject * + +Help on function textctrl_info_t_get_text in module ida_kernwin: + +textctrl_info_t_get_text(*args) -> 'char const *' + textctrl_info_t_get_text(_self) -> char const * + + @param self: PyObject * + +Help on function textctrl_info_t_set_flags in module ida_kernwin: + +textctrl_info_t_set_flags(*args) -> 'bool' + textctrl_info_t_set_flags(_self, flags) -> bool + + @param self: PyObject * + @param flags: unsigned int + +Help on function textctrl_info_t_set_tabsize in module ida_kernwin: + +textctrl_info_t_set_tabsize(*args) -> 'bool' + textctrl_info_t_set_tabsize(_self, tabsize) -> bool + + @param self: PyObject * + @param tabsize: unsigned int + +Help on function textctrl_info_t_set_text in module ida_kernwin: + +textctrl_info_t_set_text(*args) -> 'bool' + textctrl_info_t_set_text(_self, s) -> bool + + @param self: PyObject * + @param s: char const * + +Help on class twinline_t in module ida_kernwin: + +class twinline_t(builtins.object) + | Proxy of C++ twinline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinline_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_twinline_t(...) + | delete_twinline_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | bg_color + | bg_color + | + | is_default + | is_default + | + | line + | line + | + | prefix_color + | prefix_color + | + | thisown + | The membership flag + +Help on class twinpos_t in module ida_kernwin: + +class twinpos_t(builtins.object) + | Proxy of C++ twinpos_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinpos_t + | __init__(self, t) -> twinpos_t + | + | @param t: place_t * + | + | __init__(self, t, x0) -> twinpos_t + | + | @param t: place_t * + | @param x0: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_twinpos_t(...) + | delete_twinpos_t(self) + | + | place(self, view) + | + | place_as_enumplace_t(self) + | + | place_as_idaplace_t(self) + | + | place_as_simpleline_place_t(self) + | + | place_as_structplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | thisown + | The membership flag + | + | x + | x + +Help on function ui_load_new_file in module ida_kernwin: + +ui_load_new_file(*args) -> 'bool' + ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + Display a load file dialog and load file (ui_load_file). + + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param 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 + +Help on class ui_requests_t in module ida_kernwin: + +class ui_requests_t(builtins.object) + | Proxy of C++ ui_requests_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ui_requests_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ui_requests_t(...) + | delete_ui_requests_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function ui_run_debugger in module ida_kernwin: + +ui_run_debugger(*args) -> 'bool' + ui_run_debugger(dbgopts, exename, argc, argv) -> bool + Load a debugger plugin and run the specified program (ui_run_dbg). + + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector + @return: success + +Help on function unmark_selection in module ida_kernwin: + +unmark_selection(*args) -> 'void' + unmark_selection() + Unmark selection (ui_unmarksel) + +Help on function unregister_action in module ida_kernwin: + +unregister_action(*args) -> 'bool' + unregister_action(name) -> bool + Delete a previously-registered action (ui_unregister_action). + + @param name: (C++: const char *) name of action + @return: success + +Help on function unregister_timer in module ida_kernwin: + +unregister_timer(*args) -> 'bool' + unregister_timer(py_timerctx) -> bool + Unregister a timer + + @param 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. + +Help on function update_action_checkable in module ida_kernwin: + +update_action_checkable(*args) -> 'bool' + update_action_checkable(name, checkable) -> bool + Update an action's checkability (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability + @return: success + +Help on function update_action_checked in module ida_kernwin: + +update_action_checked(*args) -> 'bool' + update_action_checked(name, checked) -> bool + Update an action's checked state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state + @return: success + +Help on function update_action_icon in module ida_kernwin: + +update_action_icon(*args) -> 'bool' + update_action_icon(name, icon) -> bool + Update an action's icon (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id + @return: success + +Help on function update_action_label in module ida_kernwin: + +update_action_label(*args) -> 'bool' + update_action_label(name, label) -> bool + Update an action's label (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label + @return: success + +Help on function update_action_shortcut in module ida_kernwin: + +update_action_shortcut(*args) -> 'bool' + update_action_shortcut(name, shortcut) -> bool + Update an action's shortcut (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut + @return: success + +Help on function update_action_state in module ida_kernwin: + +update_action_state(*args) -> 'bool' + update_action_state(name, state) -> bool + Update an action's state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state + @return: success + +Help on function update_action_tooltip in module ida_kernwin: + +update_action_tooltip(*args) -> 'bool' + update_action_tooltip(name, tooltip) -> bool + Update an action's tooltip (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip + @return: success + +Help on function update_action_visibility in module ida_kernwin: + +update_action_visibility(*args) -> 'bool' + update_action_visibility(name, visible) -> bool + Update an action's visibility (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility + @return: success + +Help on function user_cancelled in module ida_kernwin: + +user_cancelled(*args) -> '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 + +Help on class view_mouse_event_location_t in module ida_kernwin: + +class view_mouse_event_location_t(builtins.object) + | Proxy of C++ view_mouse_event_location_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> view_mouse_event_location_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_view_mouse_event_location_t(...) + | delete_view_mouse_event_location_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | item + | item + | + | thisown + | The membership flag + +Help on class view_mouse_event_t in module ida_kernwin: + +class view_mouse_event_t(builtins.object) + | Proxy of C++ view_mouse_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> view_mouse_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_view_mouse_event_t(...) + | delete_view_mouse_event_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | location + | location + | + | renderer_pos + | renderer_pos + | + | rtype + | rtype + | + | state + | state + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on function warning in module ida_kernwin: + +warning(*args) -> 'void' + warning(format) + Display a message in a message box + + @param 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 + +Module "ida_lines"s docstring: +""" +High level functions that deal with the generation of the disassembled text +lines. + +This file also contains definitions for the syntax highlighting. + +Finally there are functions that deal with anterior/posterior user-defined +lines.""" + +Help on function COLSTR in module ida_lines: + +COLSTR(str, tag) + Utility function to create a colored line + @param str: The string + @param tag: Color tag constant. One of SCOLOR_XXXX + +Help on function add_extra_cmt in module ida_lines: + +add_extra_cmt(*args) -> 'bool' + add_extra_cmt(ea, isprev, format) -> bool + Add anterior/posterior comment line(s). + + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success + +Help on function add_extra_line in module ida_lines: + +add_extra_line(*args) -> 'bool' + add_extra_line(ea, isprev, format) -> bool + Add anterior/posterior non-comment line(s). + + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + @return: true if success + +Help on function add_pgm_cmt in module ida_lines: + +add_pgm_cmt(*args) -> 'bool' + add_pgm_cmt(format) -> bool + Add anterior comment line(s) at the start of program. + + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success + +Help on function add_sourcefile in module ida_lines: + +add_sourcefile(*args) -> 'bool' + add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success + +Help on function calc_bg_color in module ida_lines: + +calc_bg_color(*args) -> 'bgcolor_t' + calc_bg_color(ea) -> bgcolor_t + Get background color for line at 'ea' + + @param ea: (C++: ea_t) + @return: RGB color + +Help on function calc_prefix_color in module ida_lines: + +calc_prefix_color(*args) -> 'color_t' + calc_prefix_color(ea) -> color_t + Get prefix color for line at 'ea' + + @param ea: (C++: ea_t) + @return: Line prefix colors + +Help on function create_encoding_helper in module ida_lines: + +create_encoding_helper(*args) -> 'encoder_t *' + create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t + +Help on function del_extra_cmt in module ida_lines: + +del_extra_cmt(*args) -> 'void' + del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int + +Help on function del_sourcefile in module ida_lines: + +del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool + Delete information about the source file. + + @param ea: (C++: ea_t) linear address + @return: success + +Help on function delete_extra_cmts in module ida_lines: + +delete_extra_cmts(*args) -> 'void' + delete_extra_cmts(ea, what) + + @param ea: ea_t + @param what: int + +Help on function generate_disasm_line in module ida_lines: + +generate_disasm_line(*args) -> 'qstring *' + generate_disasm_line(ea, flags=0) -> str + + @param ea: ea_t + @param flags: int + +Help on function generate_disassembly in module ida_lines: + +generate_disassembly(*args) -> 'PyObject *' + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) + Generate disassembly lines (many lines) and put them into a buffer + + @param ea: address to generate disassembly for + @param max_lines: how many lines max to generate + @param as_stack: Display undefined items as 2/4/8 bytes + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines + +Help on function get_extra_cmt in module ida_lines: + +get_extra_cmt(*args) -> 'int' + get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int + +Help on function get_first_free_extra_cmtidx in module ida_lines: + +get_first_free_extra_cmtidx(*args) -> 'int' + get_first_free_extra_cmtidx(ea, start) -> int + + @param ea: ea_t + @param start: int + +Help on function get_sourcefile in module ida_lines: + +get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * + Get name of source file occupying the given address. + + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name + +Help on function install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) -> 'bool' + install_user_defined_prefix(prefix_len, udp, owner) -> bool + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded + +Help on function requires_color_esc in module ida_lines: + +requires_color_esc(c) + Checks if the given character requires escaping + Is the given char a color escape character? + +Help on function set_user_defined_prefix in module ida_lines: + +set_user_defined_prefix(*args) -> 'PyObject *' + set_user_defined_prefix(width, pycb) -> bool + Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * + +Help on function tag_addr in module ida_lines: + +tag_addr(*args) -> 'PyObject *' + tag_addr(ea) -> PyObject * + Insert an address mark into a string. + + @param ea: (C++: ea_t) address to include + +Help on function tag_advance in module ida_lines: + +tag_advance(*args) -> 'int' + tag_advance(line, cnt) -> int + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer + +Help on function tag_remove in module ida_lines: + +tag_remove(*args) -> 'PyObject *' + tag_remove(nonnul_instr) -> str + + @param nonnul_instr: char const * + +Help on function tag_skipcode in module ida_lines: + +tag_skipcode(*args) -> 'int' + tag_skipcode(line) -> int + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer + +Help on function tag_skipcodes in module ida_lines: + +tag_skipcodes(*args) -> 'int' + tag_skipcodes(line) -> int + Move the pointer past all color codes. + + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr + +Help on function tag_strlen in module ida_lines: + +tag_strlen(*args) -> 'ssize_t' + tag_strlen(line) -> ssize_t + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error + +Help on function update_extra_cmt in module ida_lines: + +update_extra_cmt(*args) -> 'void' + update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * + +Help on class user_defined_prefix_t in module ida_lines: + +class user_defined_prefix_t(builtins.object) + | Proxy of C++ user_defined_prefix_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, prefix_len, owner) -> user_defined_prefix_t + | + | @param prefix_len: size_t + | @param owner: void const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_defined_prefix_t(...) + | delete_user_defined_prefix_t(self) + | + | get_user_defined_prefix(self, *args) -> 'void' + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | This callback must be overridden by the derived class. + | + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param lnnum: (C++: int) number of the current line (each address may have several listing + | lines for it). 0 means the very first line for the current + | address. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Module "ida_loader"s docstring: +""" +Definitions of IDP, LDR, PLUGIN module interfaces. + +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) + +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t + +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> + +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> + +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" + +Help on function base2file in module ida_loader: + +base2file(*args) -> 'int' + base2file(fp, pos, ea1, ea2) -> int + Unload database to a binary file. This function works for wide byte processors + too. + + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) + @return: 1-ok(always), write error leads to immediate exit + +Help on function build_snapshot_tree in module ida_loader: + +build_snapshot_tree(*args) -> 'bool' + build_snapshot_tree(root) -> bool + Build the snapshot tree. + + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. + @return: success + +Help on function clr_database_flag in module ida_loader: + +clr_database_flag(*args) -> 'void' + clr_database_flag(dbfl) + + @param dbfl: uint32 + +Help on function extract_module_from_archive in module ida_loader: + +extract_module_from_archive(*args) -> 'PyObject *' + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. + + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) + +Help on function file2base in module ida_loader: + +file2base(*args) -> 'int' + file2base(li, pos, ea1, ea2, patchable) -> int + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). + + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + +Help on function find_plugin in module ida_loader: + +find_plugin(*args) -> 'plugin_t *' + find_plugin(name, load_if_needed=False) -> plugin_t * + Find a user-defined plugin and optionally load it. + + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it + @return: pointer to plugin description block + +Help on function flush_buffers in module ida_loader: + +flush_buffers(*args) -> 'int' + flush_buffers() -> int + Flush buffers to the disk. + +Help on function gen_exe_file in module ida_loader: + +gen_exe_file(*args) -> 'int' + gen_exe_file(fp) -> int + Generate an exe file (unload the database in binary form). + + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed + +Help on function gen_file in module ida_loader: + +gen_file(*args) -> 'int' + gen_file(otype, fp, ea1, ea2, flags) -> int + Generate an output file. + + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok + @return: number of the generated lines. -1 if an error occurred + +Help on function get_basic_file_type in module ida_loader: + +get_basic_file_type(*args) -> 'filetype_t' + get_basic_file_type(li) -> filetype_t + Get the input file type. This function can recognize libraries and zip files. + + @param li: (C++: linput_t *) + +Help on function get_elf_debug_file_directory in module ida_loader: + +get_elf_debug_file_directory(*args) -> 'char const *' + get_elf_debug_file_directory() -> char const * + Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. + +Help on function get_file_type_name in module ida_loader: + +get_file_type_name(*args) -> 'size_t' + get_file_type_name() -> str + Get name of the current file type. The current file type is kept in + idainfo::filetype. + + @return: size of answer, this function always succeeds + +Help on function get_fileregion_ea in module ida_loader: + +get_fileregion_ea(*args) -> 'ea_t' + get_fileregion_ea(offset) -> ea_t + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR + + @param offset: (C++: qoff64_t) + +Help on function get_fileregion_offset in module ida_loader: + +get_fileregion_offset(*args) -> 'qoff64_t' + get_fileregion_offset(ea) -> qoff64_t + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. + + @param ea: (C++: ea_t) + +Help on function get_path in module ida_loader: + +get_path(*args) -> 'char const *' + get_path(pt) -> char const * + Get the file path + + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr + +Help on function get_plugin_options in module ida_loader: + +get_plugin_options(*args) -> 'char const *' + get_plugin_options(plugin) -> char const * + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified + + @param plugin: (C++: const char *) char const * + +Help on class idp_desc_t in module ida_loader: + +class idp_desc_t(builtins.object) + | Proxy of C++ idp_desc_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idp_desc_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idp_desc_t(...) + | delete_idp_desc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | checked + | checked + | + | family + | family + | + | is_script + | is_script + | + | mtime + | mtime + | + | names + | names + | + | path + | path + | + | thisown + | The membership flag + +Help on class idp_name_t in module ida_loader: + +class idp_name_t(builtins.object) + | Proxy of C++ idp_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idp_name_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idp_name_t(...) + | delete_idp_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hidden + | hidden + | + | lname + | lname + | + | sname + | sname + | + | thisown + | The membership flag + +Help on function is_database_flag in module ida_loader: + +is_database_flag(*args) -> 'bool' + is_database_flag(dbfl) -> bool + Get the current database flag + + @param dbfl: (C++: uint32) flag Database flags + @return: the state of the flag (set or cleared) + +Help on function is_trusted_idb in module ida_loader: + +is_trusted_idb(*args) -> 'bool' + is_trusted_idb() -> bool + Is the database considered as trusted? + +Help on function load_and_run_plugin in module ida_loader: + +load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool + Load & run a plugin. + + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) + +Help on function load_binary_file in module ida_loader: + +load_binary_file(*args) -> 'bool' + load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + Load a binary file into the database. This function usually is called from ui. + + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) + +Help on function load_ids_module in module ida_loader: + +load_ids_module(*args) -> 'int' + load_ids_module(fname) -> int + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. + + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed + +Help on function load_plugin in module ida_loader: + +load_plugin(*args) -> 'PyObject *' + load_plugin(name) -> PyCapsule or None + Loads a plugin + + @param name: char const * + @return: - None if plugin could not be loaded + - An opaque object representing the loaded plugin + +Help on class loader_t in module ida_loader: + +class loader_t(builtins.object) + | Proxy of C++ loader_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> loader_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_loader_t(...) + | delete_loader_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | thisown + | The membership flag + | + | version + | version + +Help on function mem2base in module ida_loader: + +mem2base(*args) -> 'int' + mem2base(py_mem, ea, fpos=-1) -> int + Load database from the memory. + + @param py_mem: the buffer + @param ea: start linear addresses + @param fpos: position in the input file the data is taken from. + if == -1, then no file position correspond to the data. + @return: - Returns zero if the passed buffer was not a string + - Otherwise 1 is returned + +Help on class plugin_info_t in module ida_loader: + +class plugin_info_t(builtins.object) + | Proxy of C++ plugin_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> plugin_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_plugin_info_t(...) + | delete_plugin_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | arg + | arg + | + | comment + | comment + | + | dllmem + | dllmem + | + | entry + | entry + | + | flags + | flags + | + | hotkey + | hotkey + | + | name + | name + | + | next + | next + | + | org_hotkey + | org_hotkey + | + | org_name + | org_name + | + | path + | path + | + | thisown + | The membership flag + +Help on function process_archive in module ida_loader: + +process_archive(*args) -> 'qstring *' + process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter 'loader' is a pointer + to load_info_t structure. + + @param temp_file: (C++: qstring *) + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) load_info_t const * + +Help on class qvector_snapshotvec_t in module ida_loader: + +class qvector_snapshotvec_t(builtins.object) + | Proxy of C++ qvector< snapshot_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & + | + | __getitem__(self, *args) -> 'snapshot_t *const &' + | __getitem__(self, i) -> snapshot_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_snapshotvec_t + | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: snapshot_t *const & + | + | __swig_destroy__ = delete_qvector_snapshotvec_t(...) + | delete_qvector_snapshotvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: snapshot_t *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: snapshot_t *const & + | + | at(self, *args) -> 'snapshot_t *const &' + | at(self, _idx) -> snapshot_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< snapshot_t * >::const_iterator' + | begin(self) -> qvector< snapshot_t * >::iterator + | begin(self) -> qvector< snapshot_t * >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< snapshot_t * >::const_iterator' + | end(self) -> qvector< snapshot_t * >::iterator + | end(self) -> qvector< snapshot_t * >::const_iterator + | + | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' + | erase(self, it) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | + | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator + | + | extract(self, *args) -> 'snapshot_t **' + | extract(self) -> snapshot_t ** + | + | find(self, *args) -> 'qvector< snapshot_t * >::const_iterator' + | find(self, x) -> qvector< snapshot_t * >::iterator + | + | @param x: snapshot_t *const & + | + | find(self, x) -> qvector< snapshot_t * >::const_iterator + | + | @param x: snapshot_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: snapshot_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: snapshot_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' + | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'snapshot_t *&' + | push_back(self, x) + | + | @param x: snapshot_t *const & + | + | push_back(self) -> snapshot_t *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: snapshot_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< snapshot_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function reload_file in module ida_loader: + +reload_file(*args) -> 'bool' + reload_file(file, is_remote) -> bool + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. + + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? + @return: success + +Help on function run_plugin in module ida_loader: + +run_plugin(*args) -> 'bool' + run_plugin(plg, arg) -> bool + Runs a plugin + + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t + @return: Boolean + +Help on function save_database in module ida_loader: + +save_database(*args) -> 'bool' + save_database(outfile, flags, root=None, attr=None) -> bool + Save current database using a new file name. + + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. + @return: success + +Help on function set_database_flag in module ida_loader: + +set_database_flag(*args) -> 'void' + set_database_flag(dbfl, cnd=True) + Set or clear database flag + + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) -> 'void' + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) -> 'void' + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry + +Help on function set_path in module ida_loader: + +set_path(*args) -> 'void' + set_path(pt, path) + Set the file path + + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path + +Help on class snapshot_t in module ida_loader: + +class snapshot_t(builtins.object) + | Proxy of C++ snapshot_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __init__(self, *args) + | __init__(self) -> snapshot_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_snapshot_t(...) + | delete_snapshot_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | children + | children + | + | desc + | desc + | + | filename + | filename + | + | flags + | flags + | + | id + | id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_lumina"s docstring: +""" +""" + +Help on function apply_metadata in module ida_lumina: + +apply_metadata(*args) -> 'void' + apply_metadata(ea, fi, flags=0) + + @param ea: ea_t + @param fi: func_info_t const & + @param flags: uint32 + +Help on function backup_metadata in module ida_lumina: + +backup_metadata(*args) -> 'bool' + backup_metadata(ea) -> bool + + @param ea: ea_t + +Help on function calc_func_metadata in module ida_lumina: + +calc_func_metadata(*args) -> 'md5_t *' + calc_func_metadata(out_fi, pfn, append_metadata=None) -> asize_t + + @param out_fi: func_info_t * + @param pfn: func_t const * + @param append_metadata: metadata_appender_t * + +Help on function create_simple_diff_handler in module ida_lumina: + +create_simple_diff_handler(*args) -> 'simple_diff_handler_t *' + create_simple_diff_handler() -> simple_diff_handler_t + +Help on function create_simple_idb_diff_handler in module ida_lumina: + +create_simple_idb_diff_handler(*args) -> 'simple_idb_diff_handler_t *' + create_simple_idb_diff_handler(pfn) -> simple_idb_diff_handler_t + + @param pfn: func_t const * + +Help on function diff_metadata in module ida_lumina: + +diff_metadata(*args) -> 'bool' + diff_metadata(handler, left, right, flags=0) -> bool + + @param handler: func_md_diff_handler_t & + @param left: func_info_t const & + @param right: func_info_t const & + @param flags: uint32 + +Help on class extra_cmt_t in module ida_lumina: + +class extra_cmt_t(insn_site_t) + | Proxy of C++ extra_cmt_t class. + | + | Method resolution order: + | extra_cmt_t + | insn_site_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> extra_cmt_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_extra_cmt_t(...) + | delete_extra_cmt_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | next + | next + | + | prev + | prev + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from insn_site_t: + | + | toea(self, *args) -> 'ea_t' + | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from insn_site_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fchunk_nr + | fchunk_nr + | + | fchunk_off + | fchunk_off + +Help on class extra_cmts_t in module ida_lumina: + +class extra_cmts_t(builtins.object) + | Proxy of C++ qvector< extra_cmt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'extra_cmt_t const &' + | __getitem__(self, i) -> extra_cmt_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> extra_cmts_t + | __init__(self, x) -> extra_cmts_t + | + | @param x: qvector< extra_cmt_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: extra_cmt_t const & + | + | __swig_destroy__ = delete_extra_cmts_t(...) + | delete_extra_cmts_t(self) + | + | at(self, *args) -> 'extra_cmt_t const &' + | at(self, _idx) -> extra_cmt_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< extra_cmt_t >::const_iterator' + | begin(self) -> extra_cmt_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< extra_cmt_t >::const_iterator' + | end(self) -> extra_cmt_t + | + | erase(self, *args) -> 'qvector< extra_cmt_t >::iterator' + | erase(self, it) -> extra_cmt_t + | + | @param it: qvector< extra_cmt_t >::iterator + | + | erase(self, first, last) -> extra_cmt_t + | + | @param first: qvector< extra_cmt_t >::iterator + | @param last: qvector< extra_cmt_t >::iterator + | + | extract(self, *args) -> 'extra_cmt_t *' + | extract(self) -> extra_cmt_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=extra_cmt_t()) + | + | @param x: extra_cmt_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: extra_cmt_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< extra_cmt_t >::iterator' + | insert(self, it, x) -> extra_cmt_t + | + | @param it: qvector< extra_cmt_t >::iterator + | @param x: extra_cmt_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'extra_cmt_t &' + | push_back(self, x) + | + | @param x: extra_cmt_t const & + | + | push_back(self) -> extra_cmt_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: extra_cmt_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< extra_cmt_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function extract_extra_cmts_from_metadata in module ida_lumina: + +extract_extra_cmts_from_metadata(*args) -> 'void' + extract_extra_cmts_from_metadata(out, ptr) + + @param out: extra_cmts_t * + @param ptr: uchar const * + +Help on function extract_frame_desc_from_metadata in module ida_lumina: + +extract_frame_desc_from_metadata(*args) -> 'void' + extract_frame_desc_from_metadata(out, ptr) + + @param out: frame_desc_t * + @param ptr: uchar const * + +Help on function extract_insn_cmts_from_metadata in module ida_lumina: + +extract_insn_cmts_from_metadata(*args) -> 'void' + extract_insn_cmts_from_metadata(out, ptr) + + @param out: insn_cmts_t * + @param ptr: uchar const * + +Help on function extract_insn_opreprs_from_metadata in module ida_lumina: + +extract_insn_opreprs_from_metadata(*args) -> 'void' + extract_insn_opreprs_from_metadata(out, ptr) + + @param out: insn_ops_reprs_t * + @param ptr: uchar const * + +Help on function extract_type_from_metadata in module ida_lumina: + +extract_type_from_metadata(*args) -> 'bool' + extract_type_from_metadata(out, _in) -> bool + + @param out: tinfo_t * + @param in: bytevec_t const & + +Help on function extract_user_stkpnts_from_metadata in module ida_lumina: + +extract_user_stkpnts_from_metadata(*args) -> 'void' + extract_user_stkpnts_from_metadata(out, ptr) + + @param out: user_stkpnts_t * + @param ptr: uchar const * + +Help on class frame_desc_t in module ida_lumina: + +class frame_desc_t(builtins.object) + | Proxy of C++ frame_desc_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __frsize=0, __argsize=asize_t(-1), __frregs=0, __members=frame_mems_t()) -> frame_desc_t + | + | @param __frsize: sval_t + | @param __argsize: asize_t + | @param __frregs: ushort + | @param __members: frame_mems_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_frame_desc_t(...) + | delete_frame_desc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argsize + | argsize + | + | frregs + | frregs + | + | frsize + | frsize + | + | members + | members + | + | thisown + | The membership flag + +Help on class frame_mem_t in module ida_lumina: + +class frame_mem_t(builtins.object) + | Proxy of C++ frame_mem_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __name=None, __type=serialized_tinfo(), __cmt=None, __rptcmt=None, __offset=ea64_t(-1), __info=oprepr_t(), __nbytes=asize_t(-1)) -> frame_mem_t + | + | @param __name: char const * + | @param __type: serialized_tinfo + | @param __cmt: char const * + | @param __rptcmt: char const * + | @param __offset: ea64_t + | @param __info: oprepr_t + | @param __nbytes: asize_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_frame_mem_t(...) + | delete_frame_mem_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | info + | info + | + | name + | name + | + | nbytes + | nbytes + | + | offset + | offset + | + | rptcmt + | rptcmt + | + | thisown + | The membership flag + | + | type + | type + +Help on class frame_mems_t in module ida_lumina: + +class frame_mems_t(builtins.object) + | Proxy of C++ qvector< frame_mem_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'frame_mem_t const &' + | __getitem__(self, i) -> frame_mem_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> frame_mems_t + | __init__(self, x) -> frame_mems_t + | + | @param x: qvector< frame_mem_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: frame_mem_t const & + | + | __swig_destroy__ = delete_frame_mems_t(...) + | delete_frame_mems_t(self) + | + | at(self, *args) -> 'frame_mem_t const &' + | at(self, _idx) -> frame_mem_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< frame_mem_t >::const_iterator' + | begin(self) -> frame_mem_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< frame_mem_t >::const_iterator' + | end(self) -> frame_mem_t + | + | erase(self, *args) -> 'qvector< frame_mem_t >::iterator' + | erase(self, it) -> frame_mem_t + | + | @param it: qvector< frame_mem_t >::iterator + | + | erase(self, first, last) -> frame_mem_t + | + | @param first: qvector< frame_mem_t >::iterator + | @param last: qvector< frame_mem_t >::iterator + | + | extract(self, *args) -> 'frame_mem_t *' + | extract(self) -> frame_mem_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=frame_mem_t()) + | + | @param x: frame_mem_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: frame_mem_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< frame_mem_t >::iterator' + | insert(self, it, x) -> frame_mem_t + | + | @param it: qvector< frame_mem_t >::iterator + | @param x: frame_mem_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'frame_mem_t &' + | push_back(self, x) + | + | @param x: frame_mem_t const & + | + | push_back(self) -> frame_mem_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: frame_mem_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< frame_mem_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_info_and_frequency_t in module ida_lumina: + +class func_info_and_frequency_t(func_info_t) + | Proxy of C++ func_info_and_frequency_t class. + | + | Method resolution order: + | func_info_and_frequency_t + | func_info_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __frequency=0) -> func_info_and_frequency_t + | + | @param __frequency: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_info_and_frequency_t(...) + | delete_func_info_and_frequency_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | frequency + | frequency + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | metadata + | metadata + | + | name + | name + | + | size + | size + +Help on class func_info_and_frequency_vec_t in module ida_lumina: + +class func_info_and_frequency_vec_t(builtins.object) + | Proxy of C++ qvector< func_info_and_frequency_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'func_info_and_frequency_t const &' + | __getitem__(self, i) -> func_info_and_frequency_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> func_info_and_frequency_vec_t + | __init__(self, x) -> func_info_and_frequency_vec_t + | + | @param x: qvector< func_info_and_frequency_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_and_frequency_t const & + | + | __swig_destroy__ = delete_func_info_and_frequency_vec_t(...) + | delete_func_info_and_frequency_vec_t(self) + | + | at(self, *args) -> 'func_info_and_frequency_t const &' + | at(self, _idx) -> func_info_and_frequency_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< func_info_and_frequency_t >::const_iterator' + | begin(self) -> func_info_and_frequency_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< func_info_and_frequency_t >::const_iterator' + | end(self) -> func_info_and_frequency_t + | + | erase(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' + | erase(self, it) -> func_info_and_frequency_t + | + | @param it: qvector< func_info_and_frequency_t >::iterator + | + | erase(self, first, last) -> func_info_and_frequency_t + | + | @param first: qvector< func_info_and_frequency_t >::iterator + | @param last: qvector< func_info_and_frequency_t >::iterator + | + | extract(self, *args) -> 'func_info_and_frequency_t *' + | extract(self) -> func_info_and_frequency_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=func_info_and_frequency_t()) + | + | @param x: func_info_and_frequency_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: func_info_and_frequency_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' + | insert(self, it, x) -> func_info_and_frequency_t + | + | @param it: qvector< func_info_and_frequency_t >::iterator + | @param x: func_info_and_frequency_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'func_info_and_frequency_t &' + | push_back(self, x) + | + | @param x: func_info_and_frequency_t const & + | + | push_back(self) -> func_info_and_frequency_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_and_frequency_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< func_info_and_frequency_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_info_and_pattern_t in module ida_lumina: + +class func_info_and_pattern_t(func_info_t) + | Proxy of C++ func_info_and_pattern_t class. + | + | Method resolution order: + | func_info_and_pattern_t + | func_info_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __pattern_id=pattern_id_t()) -> func_info_and_pattern_t + | + | @param __pattern_id: pattern_id_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_info_and_pattern_t(...) + | delete_func_info_and_pattern_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | pattern_id + | pattern_id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | metadata + | metadata + | + | name + | name + | + | size + | size + +Help on class func_info_and_pattern_vec_t in module ida_lumina: + +class func_info_and_pattern_vec_t(builtins.object) + | Proxy of C++ qvector< func_info_and_pattern_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'func_info_and_pattern_t const &' + | __getitem__(self, i) -> func_info_and_pattern_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> func_info_and_pattern_vec_t + | __init__(self, x) -> func_info_and_pattern_vec_t + | + | @param x: qvector< func_info_and_pattern_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_and_pattern_t const & + | + | __swig_destroy__ = delete_func_info_and_pattern_vec_t(...) + | delete_func_info_and_pattern_vec_t(self) + | + | at(self, *args) -> 'func_info_and_pattern_t const &' + | at(self, _idx) -> func_info_and_pattern_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< func_info_and_pattern_t >::const_iterator' + | begin(self) -> func_info_and_pattern_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< func_info_and_pattern_t >::const_iterator' + | end(self) -> func_info_and_pattern_t + | + | erase(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' + | erase(self, it) -> func_info_and_pattern_t + | + | @param it: qvector< func_info_and_pattern_t >::iterator + | + | erase(self, first, last) -> func_info_and_pattern_t + | + | @param first: qvector< func_info_and_pattern_t >::iterator + | @param last: qvector< func_info_and_pattern_t >::iterator + | + | extract(self, *args) -> 'func_info_and_pattern_t *' + | extract(self) -> func_info_and_pattern_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=func_info_and_pattern_t()) + | + | @param x: func_info_and_pattern_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: func_info_and_pattern_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' + | insert(self, it, x) -> func_info_and_pattern_t + | + | @param it: qvector< func_info_and_pattern_t >::iterator + | @param x: func_info_and_pattern_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'func_info_and_pattern_t &' + | push_back(self, x) + | + | @param x: func_info_and_pattern_t const & + | + | push_back(self) -> func_info_and_pattern_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_and_pattern_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< func_info_and_pattern_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_info_base_t in module ida_lumina: + +class func_info_base_t(builtins.object) + | Proxy of C++ func_info_base_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __name=None, __metadata=metadata_t()) -> func_info_base_t + | + | @param __name: char const * + | @param __metadata: metadata_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_info_base_t(...) + | delete_func_info_base_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | metadata + | metadata + | + | name + | name + | + | thisown + | The membership flag + +Help on class func_info_pattern_and_frequency_t in module ida_lumina: + +class func_info_pattern_and_frequency_t(func_info_and_pattern_t) + | Proxy of C++ func_info_pattern_and_frequency_t class. + | + | Method resolution order: + | func_info_pattern_and_frequency_t + | func_info_and_pattern_t + | func_info_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __frequency=0) -> func_info_pattern_and_frequency_t + | + | @param __frequency: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_info_pattern_and_frequency_t(...) + | delete_func_info_pattern_and_frequency_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | frequency + | frequency + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_and_pattern_t: + | + | pattern_id + | pattern_id + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | metadata + | metadata + | + | name + | name + | + | size + | size + +Help on class func_info_pattern_and_frequency_vec_t in module ida_lumina: + +class func_info_pattern_and_frequency_vec_t(builtins.object) + | Proxy of C++ qvector< func_info_pattern_and_frequency_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'func_info_pattern_and_frequency_t const &' + | __getitem__(self, i) -> func_info_pattern_and_frequency_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> func_info_pattern_and_frequency_vec_t + | __init__(self, x) -> func_info_pattern_and_frequency_vec_t + | + | @param x: qvector< func_info_pattern_and_frequency_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_pattern_and_frequency_t const & + | + | __swig_destroy__ = delete_func_info_pattern_and_frequency_vec_t(...) + | delete_func_info_pattern_and_frequency_vec_t(self) + | + | at(self, *args) -> 'func_info_pattern_and_frequency_t const &' + | at(self, _idx) -> func_info_pattern_and_frequency_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::const_iterator' + | begin(self) -> func_info_pattern_and_frequency_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::const_iterator' + | end(self) -> func_info_pattern_and_frequency_t + | + | erase(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' + | erase(self, it) -> func_info_pattern_and_frequency_t + | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator + | + | erase(self, first, last) -> func_info_pattern_and_frequency_t + | + | @param first: qvector< func_info_pattern_and_frequency_t >::iterator + | @param last: qvector< func_info_pattern_and_frequency_t >::iterator + | + | extract(self, *args) -> 'func_info_pattern_and_frequency_t *' + | extract(self) -> func_info_pattern_and_frequency_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=func_info_pattern_and_frequency_t()) + | + | @param x: func_info_pattern_and_frequency_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: func_info_pattern_and_frequency_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' + | insert(self, it, x) -> func_info_pattern_and_frequency_t + | + | @param it: qvector< func_info_pattern_and_frequency_t >::iterator + | @param x: func_info_pattern_and_frequency_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'func_info_pattern_and_frequency_t &' + | push_back(self, x) + | + | @param x: func_info_pattern_and_frequency_t const & + | + | push_back(self) -> func_info_pattern_and_frequency_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_pattern_and_frequency_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< func_info_pattern_and_frequency_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_info_t in module ida_lumina: + +class func_info_t(builtins.object) + | Proxy of C++ func_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __name=None, __size=0, __metadata=metadata_t()) -> func_info_t + | + | @param __name: char const * + | @param __size: uint32 + | @param __metadata: metadata_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_info_t(...) + | delete_func_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | metadata + | metadata + | + | name + | name + | + | size + | size + | + | thisown + | The membership flag + +Help on class func_info_vec_t in module ida_lumina: + +class func_info_vec_t(builtins.object) + | Proxy of C++ qvector< func_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'func_info_t const &' + | __getitem__(self, i) -> func_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> func_info_vec_t + | __init__(self, x) -> func_info_vec_t + | + | @param x: qvector< func_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: func_info_t const & + | + | __swig_destroy__ = delete_func_info_vec_t(...) + | delete_func_info_vec_t(self) + | + | at(self, *args) -> 'func_info_t const &' + | at(self, _idx) -> func_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< func_info_t >::const_iterator' + | begin(self) -> func_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< func_info_t >::const_iterator' + | end(self) -> func_info_t + | + | erase(self, *args) -> 'qvector< func_info_t >::iterator' + | erase(self, it) -> func_info_t + | + | @param it: qvector< func_info_t >::iterator + | + | erase(self, first, last) -> func_info_t + | + | @param first: qvector< func_info_t >::iterator + | @param last: qvector< func_info_t >::iterator + | + | extract(self, *args) -> 'func_info_t *' + | extract(self) -> func_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=func_info_t()) + | + | @param x: func_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: func_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< func_info_t >::iterator' + | insert(self, it, x) -> func_info_t + | + | @param it: qvector< func_info_t >::iterator + | @param x: func_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'func_info_t &' + | push_back(self, x) + | + | @param x: func_info_t const & + | + | push_back(self) -> func_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: func_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< func_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_md_diff_handler_t in module ida_lumina: + +class func_md_diff_handler_t(builtins.object) + | Proxy of C++ func_md_diff_handler_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> func_md_diff_handler_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_md_diff_handler_t(...) + | delete_func_md_diff_handler_t(self) + | + | on_comment_changed(self, *args) -> 'void' + | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool + | + | on_extra_comment_changed(self, *args) -> 'void' + | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool + | + | on_frame_member_changed(self, *args) -> 'void' + | on_frame_member_changed(self, offset, l, r) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * + | + | on_function_comment_changed(self, *args) -> 'void' + | on_function_comment_changed(self, l, r, rep) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool + | + | on_insn_ops_repr_changed(self, *args) -> 'void' + | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * + | + | on_name_changed(self, *args) -> 'void' + | on_name_changed(self, l, r) + | + | @param l: qstring const * + | @param r: qstring const * + | + | on_proto_changed(self, *args) -> 'void' + | on_proto_changed(self, l, r) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & + | + | on_score_changed(self, *args) -> 'void' + | on_score_changed(self, l, r) + | + | @param l: uint32 + | @param r: uint32 + | + | on_user_stkpnt_changed(self, *args) -> 'void' + | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_lumina_rpc_packet_t_index_from_base in module ida_lumina: + +get_lumina_rpc_packet_t_index_from_base(*args) -> 'uchar' + get_lumina_rpc_packet_t_index_from_base(code) -> uchar + + @param code: enum lumina_rpc_packet_t + +Help on function get_server_connection in module ida_lumina: + +get_server_connection(*args) -> 'lumina_client_t *' + get_server_connection() -> lumina_client_t + +Help on function get_server_connection2 in module ida_lumina: + +get_server_connection2(*args) -> 'lumina_client_t *' + get_server_connection2(flags) -> lumina_client_t + + @param flags: int + +Help on function has_backup_metadata in module ida_lumina: + +has_backup_metadata(*args) -> 'bool' + has_backup_metadata(ea) -> bool + + @param ea: ea_t + +Help on class input_file_t in module ida_lumina: + +class input_file_t(builtins.object) + | Proxy of C++ input_file_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __path=None, __md5=md5_t()) -> input_file_t + | + | @param __path: char const * + | @param __md5: md5_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_file_t(...) + | delete_input_file_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | md5 + | md5 + | + | path + | path + | + | thisown + | The membership flag + +Help on class insn_cmt_t in module ida_lumina: + +class insn_cmt_t(insn_site_t) + | Proxy of C++ insn_cmt_t class. + | + | Method resolution order: + | insn_cmt_t + | insn_site_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> insn_cmt_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_insn_cmt_t(...) + | delete_insn_cmt_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cmt + | cmt + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from insn_site_t: + | + | toea(self, *args) -> 'ea_t' + | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from insn_site_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fchunk_nr + | fchunk_nr + | + | fchunk_off + | fchunk_off + +Help on class insn_cmts_t in module ida_lumina: + +class insn_cmts_t(builtins.object) + | Proxy of C++ qvector< insn_cmt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'insn_cmt_t const &' + | __getitem__(self, i) -> insn_cmt_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> insn_cmts_t + | __init__(self, x) -> insn_cmts_t + | + | @param x: qvector< insn_cmt_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: insn_cmt_t const & + | + | __swig_destroy__ = delete_insn_cmts_t(...) + | delete_insn_cmts_t(self) + | + | at(self, *args) -> 'insn_cmt_t const &' + | at(self, _idx) -> insn_cmt_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< insn_cmt_t >::const_iterator' + | begin(self) -> insn_cmt_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< insn_cmt_t >::const_iterator' + | end(self) -> insn_cmt_t + | + | erase(self, *args) -> 'qvector< insn_cmt_t >::iterator' + | erase(self, it) -> insn_cmt_t + | + | @param it: qvector< insn_cmt_t >::iterator + | + | erase(self, first, last) -> insn_cmt_t + | + | @param first: qvector< insn_cmt_t >::iterator + | @param last: qvector< insn_cmt_t >::iterator + | + | extract(self, *args) -> 'insn_cmt_t *' + | extract(self) -> insn_cmt_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=insn_cmt_t()) + | + | @param x: insn_cmt_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: insn_cmt_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< insn_cmt_t >::iterator' + | insert(self, it, x) -> insn_cmt_t + | + | @param it: qvector< insn_cmt_t >::iterator + | @param x: insn_cmt_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'insn_cmt_t &' + | push_back(self, x) + | + | @param x: insn_cmt_t const & + | + | push_back(self) -> insn_cmt_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: insn_cmt_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< insn_cmt_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class insn_ops_repr_t in module ida_lumina: + +class insn_ops_repr_t(insn_site_t) + | Proxy of C++ insn_ops_repr_t class. + | + | Method resolution order: + | insn_ops_repr_t + | insn_site_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> insn_ops_repr_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_insn_ops_repr_t(...) + | delete_insn_ops_repr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | flags + | + | op0 + | op0 + | + | op1 + | op1 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from insn_site_t: + | + | toea(self, *args) -> 'ea_t' + | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from insn_site_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fchunk_nr + | fchunk_nr + | + | fchunk_off + | fchunk_off + +Help on class insn_ops_reprs_t in module ida_lumina: + +class insn_ops_reprs_t(builtins.object) + | Proxy of C++ qvector< insn_ops_repr_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'insn_ops_repr_t const &' + | __getitem__(self, i) -> insn_ops_repr_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> insn_ops_reprs_t + | __init__(self, x) -> insn_ops_reprs_t + | + | @param x: qvector< insn_ops_repr_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: insn_ops_repr_t const & + | + | __swig_destroy__ = delete_insn_ops_reprs_t(...) + | delete_insn_ops_reprs_t(self) + | + | at(self, *args) -> 'insn_ops_repr_t const &' + | at(self, _idx) -> insn_ops_repr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< insn_ops_repr_t >::const_iterator' + | begin(self) -> insn_ops_repr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< insn_ops_repr_t >::const_iterator' + | end(self) -> insn_ops_repr_t + | + | erase(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' + | erase(self, it) -> insn_ops_repr_t + | + | @param it: qvector< insn_ops_repr_t >::iterator + | + | erase(self, first, last) -> insn_ops_repr_t + | + | @param first: qvector< insn_ops_repr_t >::iterator + | @param last: qvector< insn_ops_repr_t >::iterator + | + | extract(self, *args) -> 'insn_ops_repr_t *' + | extract(self) -> insn_ops_repr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=insn_ops_repr_t()) + | + | @param x: insn_ops_repr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: insn_ops_repr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' + | insert(self, it, x) -> insn_ops_repr_t + | + | @param it: qvector< insn_ops_repr_t >::iterator + | @param x: insn_ops_repr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'insn_ops_repr_t &' + | push_back(self, x) + | + | @param x: insn_ops_repr_t const & + | + | push_back(self) -> insn_ops_repr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: insn_ops_repr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< insn_ops_repr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class insn_site_t in module ida_lumina: + +class insn_site_t(builtins.object) + | Proxy of C++ insn_site_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> insn_site_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_insn_site_t(...) + | delete_insn_site_t(self) + | + | toea(self, *args) -> 'ea_t' + | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fchunk_nr + | fchunk_nr + | + | fchunk_off + | fchunk_off + | + | thisown + | The membership flag + +Help on class lumina_client_t in module ida_lumina: + +class lumina_client_t(builtins.object) + | Proxy of C++ lumina_client_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_client_t(...) + | delete_lumina_client_t(self) + | + | del_history(self, *args) -> 'bool' + | del_history(self, funcs) -> bool + | + | @param funcs: eavec_t const & + | + | get_pop(self, *args) -> 'pkt_get_pop_result_t *' + | get_pop(self, nresults=10) -> pkt_get_pop_result_t + | + | @param nresults: uint32 + | + | is_pattern_id(self, *args) -> 'bool' + | is_pattern_id(self, pid, md5) -> bool + | + | @param pid: pattern_id_t const & + | @param md5: md5_t const & + | + | pull_md(self, *args) -> 'pkt_pull_md_result_t *' + | pull_md(self, pattern_ids, pull_md_flags=0) -> pkt_pull_md_result_t + | + | @param pattern_ids: pattern_ids_t & + | @param pull_md_flags: uint32 + | + | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t + | + | @param funcs: eavec_t * + | @param pull_md_flags: uint32 + | + | push_md(self, *args) -> 'bool' + | push_md(self, result, opts, append_metadata=None, flags=0) -> bool + | + | @param result: push_md_result_t * + | @param opts: push_md_opts_t const & + | @param append_metadata: metadata_appender_t * + | @param flags: uint32 + | + | set_pattern_id_md5(self, *args) -> 'void' + | set_pattern_id_md5(self, out, md5) + | + | @param out: pattern_id_t * + | @param md5: md5_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lumina_info_t in module ida_lumina: + +class lumina_info_t(builtins.object) + | Proxy of C++ lumina_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __client=peer_conn_t(), __server=lumina_server_info_t()) -> lumina_info_t + | + | @param __client: peer_conn_t + | @param __server: lumina_server_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_info_t(...) + | delete_lumina_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | client + | client + | + | server + | server + | + | thisown + | The membership flag + +Help on class lumina_op_res_vec_t in module ida_lumina: + +class lumina_op_res_vec_t(builtins.object) + | Proxy of C++ qvector< lumina_op_res_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lumina_op_res_t > const & + | + | __getitem__(self, *args) -> 'lumina_op_res_t const &' + | __getitem__(self, i) -> lumina_op_res_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> lumina_op_res_vec_t + | __init__(self, x) -> lumina_op_res_vec_t + | + | @param x: qvector< lumina_op_res_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lumina_op_res_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lumina_op_res_t const & + | + | __swig_destroy__ = delete_lumina_op_res_vec_t(...) + | delete_lumina_op_res_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lumina_op_res_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lumina_op_res_t const & + | + | at(self, *args) -> 'lumina_op_res_t const &' + | at(self, _idx) -> lumina_op_res_t const & + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lumina_op_res_t >::const_iterator' + | begin(self) -> qvector< lumina_op_res_t >::iterator + | begin(self) -> qvector< lumina_op_res_t >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lumina_op_res_t >::const_iterator' + | end(self) -> qvector< lumina_op_res_t >::iterator + | end(self) -> qvector< lumina_op_res_t >::const_iterator + | + | erase(self, *args) -> 'qvector< lumina_op_res_t >::iterator' + | erase(self, it) -> qvector< lumina_op_res_t >::iterator + | + | @param it: qvector< lumina_op_res_t >::iterator + | + | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator + | + | @param first: qvector< lumina_op_res_t >::iterator + | @param last: qvector< lumina_op_res_t >::iterator + | + | extract(self, *args) -> 'lumina_op_res_t *' + | extract(self) -> lumina_op_res_t * + | + | find(self, *args) -> 'qvector< lumina_op_res_t >::const_iterator' + | find(self, x) -> qvector< lumina_op_res_t >::iterator + | + | @param x: lumina_op_res_t const & + | + | find(self, x) -> qvector< lumina_op_res_t >::const_iterator + | + | @param x: lumina_op_res_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lumina_op_res_t()) + | + | @param x: lumina_op_res_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lumina_op_res_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lumina_op_res_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lumina_op_res_t >::iterator' + | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator + | + | @param it: qvector< lumina_op_res_t >::iterator + | @param x: lumina_op_res_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lumina_op_res_t &' + | push_back(self, x) + | + | @param x: lumina_op_res_t const & + | + | push_back(self) -> lumina_op_res_t & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lumina_op_res_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lumina_op_res_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lumina_server_info_t in module ida_lumina: + +class lumina_server_info_t(builtins.object) + | Proxy of C++ lumina_server_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __macaddr=None, __verstr=None, __start_time=0, __current_time=0) -> lumina_server_info_t + | + | @param __macaddr: char const * + | @param __verstr: char const * + | @param __start_time: utc_timestamp_t + | @param __current_time: utc_timestamp_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_server_info_t(...) + | delete_lumina_server_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | current_time + | current_time + | + | macaddr + | macaddr + | + | start_time + | start_time + | + | thisown + | The membership flag + | + | verstr + | verstr + +Help on class lumina_user_t in module ida_lumina: + +class lumina_user_t(builtins.object) + | Proxy of C++ lumina_user_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __license_info=user_license_info_t(), __name=None, __karma=0, __last_active=0, __features=0) -> lumina_user_t + | + | @param __license_info: user_license_info_t + | @param __name: char const * + | @param __karma: int + | @param __last_active: utc_timestamp_t + | @param __features: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lumina_user_t(...) + | delete_lumina_user_t(self) + | + | can_del_history(self, *args) -> 'bool' + | can_del_history(self) -> bool + | + | is_admin(self, *args) -> 'bool' + | is_admin(self) -> bool + | + | set_can_del_history(self, *args) -> 'void' + | set_can_del_history(self, v=True) + | + | @param v: bool + | + | set_is_admin(self, *args) -> 'void' + | set_is_admin(self, v=True) + | + | @param v: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | features + | features + | + | karma + | karma + | + | last_active + | last_active + | + | license_info + | license_info + | + | name + | name + | + | thisown + | The membership flag + +Help on class md_type_parts_t in module ida_lumina: + +class md_type_parts_t(builtins.object) + | Proxy of C++ md_type_parts_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: md_type_parts_t const & + | + | __init__(self, *args) + | __init__(self) -> md_type_parts_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: md_type_parts_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_md_type_parts_t(...) + | delete_md_type_parts_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fields + | fields + | + | thisown + | The membership flag + | + | type + | type + | + | userti + | userti + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class metadata_iterator_t in module ida_lumina: + +class metadata_iterator_t(builtins.object) + | Proxy of C++ metadata_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _md) -> metadata_iterator_t + | + | @param _md: metadata_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_metadata_iterator_t(...) + | delete_metadata_iterator_t(self) + | + | data_end(self, *args) -> 'uchar const *' + | data_end(self) -> uchar const * + | + | next(self, *args) -> 'bool' + | next(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | data + | data + | + | key + | key + | + | size + | size + | + | thisown + | The membership flag + +Help on function new_packet in module ida_lumina: + +new_packet(*args) -> 'rpc_packet_data_t *' + new_packet(code, ptr=None, len=0, version=-1) -> rpc_packet_data_t * + + @param code: uchar + @param ptr: uchar const * + @param len: size_t + @param version: int + +Help on class oprepr_t in module ida_lumina: + +class oprepr_t(builtins.object) + | Proxy of C++ oprepr_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> oprepr_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_oprepr_t(...) + | delete_oprepr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | opinfo + | opinfo + | + | thisown + | The membership flag + +Help on class pattern_id_t in module ida_lumina: + +class pattern_id_t(builtins.object) + | Proxy of C++ pattern_id_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __type=PAT_TYPE_UNKNOWN, __data=bytevec_t()) -> pattern_id_t + | + | @param __type: enum pattern_type_t + | @param __data: bytevec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pattern_id_t(...) + | delete_pattern_id_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | data + | data + | + | thisown + | The membership flag + | + | type + | type + +Help on class peer_conn_t in module ida_lumina: + +class peer_conn_t(builtins.object) + | Proxy of C++ peer_conn_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __session_id=0, __peer_name=None, __user=lumina_user_t(), __established=0) -> peer_conn_t + | + | @param __session_id: uint32 + | @param __peer_name: char const * + | @param __user: lumina_user_t + | @param __established: utc_timestamp_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_peer_conn_t(...) + | delete_peer_conn_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | established + | established + | + | peer_name + | peer_name + | + | session_id + | session_id + | + | thisown + | The membership flag + | + | user + | user + +Help on class pkt_get_lumina_info_result_t in module ida_lumina: + +class pkt_get_lumina_info_result_t(builtins.object) + | Proxy of C++ pkt_get_lumina_info_result_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_get_lumina_info_result_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_get_lumina_info_result_t(...) + | delete_pkt_get_lumina_info_result_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | info + | info + | + | thisown + | The membership flag + +Help on class pkt_get_lumina_info_t in module ida_lumina: + +class pkt_get_lumina_info_t(builtins.object) + | Proxy of C++ pkt_get_lumina_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_get_lumina_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_get_lumina_info_t(...) + | delete_pkt_get_lumina_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class pkt_get_pop_result_t in module ida_lumina: + +class pkt_get_pop_result_t(builtins.object) + | Proxy of C++ pkt_get_pop_result_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_get_pop_result_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_get_pop_result_t(...) + | delete_pkt_get_pop_result_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | results + | results + | + | thisown + | The membership flag + +Help on class pkt_get_pop_t in module ida_lumina: + +class pkt_get_pop_t(builtins.object) + | Proxy of C++ pkt_get_pop_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_get_pop_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_get_pop_t(...) + | delete_pkt_get_pop_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nresults + | nresults + | + | thisown + | The membership flag + +Help on class pkt_helo_t in module ida_lumina: + +class pkt_helo_t(builtins.object) + | Proxy of C++ pkt_helo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_helo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_helo_t(...) + | delete_pkt_helo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | client_version + | client_version + | + | key + | key + | + | license_id + | license_id + | + | password + | password + | + | record_conv + | record_conv + | + | thisown + | The membership flag + | + | username + | username + +Help on class pkt_pull_md_result_t in module ida_lumina: + +class pkt_pull_md_result_t(builtins.object) + | Proxy of C++ pkt_pull_md_result_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_pull_md_result_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_pull_md_result_t(...) + | delete_pkt_pull_md_result_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | codes + | codes + | + | results + | results + | + | thisown + | The membership flag + +Help on class pkt_pull_md_t in module ida_lumina: + +class pkt_pull_md_t(builtins.object) + | Proxy of C++ pkt_pull_md_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_pull_md_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_pull_md_t(...) + | delete_pkt_pull_md_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | keys + | keys + | + | pattern_ids + | pattern_ids + | + | thisown + | The membership flag + +Help on class pkt_push_md_result_t in module ida_lumina: + +class pkt_push_md_result_t(builtins.object) + | Proxy of C++ pkt_push_md_result_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_push_md_result_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_push_md_result_t(...) + | delete_pkt_push_md_result_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | codes + | codes + | + | thisown + | The membership flag + +Help on class pkt_push_md_t in module ida_lumina: + +class pkt_push_md_t(builtins.object) + | Proxy of C++ pkt_push_md_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_push_md_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_push_md_t(...) + | delete_pkt_push_md_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | contents + | contents + | + | ea64s + | ea64s + | + | flags + | flags + | + | hostname + | hostname + | + | idb + | idb + | + | input + | input + | + | thisown + | The membership flag + +Help on class pkt_rpc_fail_t in module ida_lumina: + +class pkt_rpc_fail_t(builtins.object) + | Proxy of C++ pkt_rpc_fail_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_rpc_fail_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_rpc_fail_t(...) + | delete_pkt_rpc_fail_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | error + | error + | + | result + | result + | + | thisown + | The membership flag + +Help on class pkt_rpc_notify_t in module ida_lumina: + +class pkt_rpc_notify_t(builtins.object) + | Proxy of C++ pkt_rpc_notify_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_rpc_notify_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_rpc_notify_t(...) + | delete_pkt_rpc_notify_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | text + | text + | + | thisown + | The membership flag + | + | type + | type + +Help on class pkt_rpc_ok_t in module ida_lumina: + +class pkt_rpc_ok_t(builtins.object) + | Proxy of C++ pkt_rpc_ok_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pkt_rpc_ok_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pkt_rpc_ok_t(...) + | delete_pkt_rpc_ok_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class pop_fun_t in module ida_lumina: + +class pop_fun_t(func_info_pattern_and_frequency_t) + | Proxy of C++ pop_fun_t class. + | + | Method resolution order: + | pop_fun_t + | func_info_pattern_and_frequency_t + | func_info_and_pattern_t + | func_info_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __hostname=None, __input=input_file_t(), __ea64=ea64_t(-1)) -> pop_fun_t + | + | @param __hostname: char const * + | @param __input: input_file_t + | @param __ea64: ea64_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pop_fun_t(...) + | delete_pop_fun_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ea64 + | ea64 + | + | hostname + | hostname + | + | input + | input + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_pattern_and_frequency_t: + | + | frequency + | frequency + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_and_pattern_t: + | + | pattern_id + | pattern_id + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | metadata + | metadata + | + | name + | name + | + | size + | size + +Help on class push_md_opts_t in module ida_lumina: + +class push_md_opts_t(builtins.object) + | Proxy of C++ push_md_opts_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, mfs=size_t(-1)) -> push_md_opts_t + | + | @param mfs: size_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_push_md_opts_t(...) + | delete_push_md_opts_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | eas + | eas + | + | min_func_size + | min_func_size + | + | thisown + | The membership flag + +Help on class push_md_result_t in module ida_lumina: + +class push_md_result_t(builtins.object) + | Proxy of C++ push_md_result_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> push_md_result_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_push_md_result_t(...) + | delete_push_md_result_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | codes + | codes + | + | contents + | contents + | + | eas + | eas + | + | thisown + | The membership flag + +Help on function revert_metadata in module ida_lumina: + +revert_metadata(*args) -> 'bool' + revert_metadata(ea) -> bool + + @param ea: ea_t + +Help on function score_metadata in module ida_lumina: + +score_metadata(*args) -> 'uint32' + score_metadata(fi) -> uint32 + + @param fi: func_info_t const & + +Help on class serialized_tinfo in module ida_lumina: + +class serialized_tinfo(builtins.object) + | Proxy of C++ serialized_tinfo class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __type=None, __fields=None) -> serialized_tinfo + | + | @param __type: type_t const * + | @param __fields: type_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_serialized_tinfo(...) + | delete_serialized_tinfo(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fields + | fields + | + | thisown + | The membership flag + | + | type + | type + +Help on class simple_diff_handler_t in module ida_lumina: + +class simple_diff_handler_t(func_md_diff_handler_t) + | Proxy of C++ simple_diff_handler_t class. + | + | Method resolution order: + | simple_diff_handler_t + | func_md_diff_handler_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> func_md_diff_handler_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simple_diff_handler_t(...) + | delete_simple_diff_handler_t(self) + | + | on_comment_changed(self, *args) -> 'void' + | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool + | + | on_extra_comment_changed(self, *args) -> 'void' + | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool + | + | on_frame_member_changed(self, *args) -> 'void' + | on_frame_member_changed(self, offset, l, r) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * + | + | on_function_comment_changed(self, *args) -> 'void' + | on_function_comment_changed(self, l, r, rep) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool + | + | on_insn_ops_repr_changed(self, *args) -> 'void' + | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * + | + | on_name_changed(self, *args) -> 'void' + | on_name_changed(self, l, r) + | + | @param l: qstring const * + | @param r: qstring const * + | + | on_proto_changed(self, *args) -> 'void' + | on_proto_changed(self, l, r) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & + | + | on_score_changed(self, *args) -> 'void' + | on_score_changed(self, l, r) + | + | @param l: uint32 + | @param r: uint32 + | + | on_user_stkpnt_changed(self, *args) -> 'void' + | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | indent + | indent + | + | lines + | lines + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from func_md_diff_handler_t: + | + | __disown__(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_md_diff_handler_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class simple_idb_diff_handler_t in module ida_lumina: + +class simple_idb_diff_handler_t(simple_diff_handler_t) + | Proxy of C++ simple_idb_diff_handler_t class. + | + | Method resolution order: + | simple_idb_diff_handler_t + | simple_diff_handler_t + | func_md_diff_handler_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> func_md_diff_handler_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simple_idb_diff_handler_t(...) + | delete_simple_idb_diff_handler_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | header_generated + | header_generated + | + | pfn + | pfn + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from simple_diff_handler_t: + | + | on_comment_changed(self, *args) -> 'void' + | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool + | + | on_extra_comment_changed(self, *args) -> 'void' + | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: qstring const * + | @param r: qstring const * + | @param is_prev: bool + | + | on_frame_member_changed(self, *args) -> 'void' + | on_frame_member_changed(self, offset, l, r) + | + | @param offset: uint32 + | @param l: frame_mem_t const * + | @param r: frame_mem_t const * + | + | on_function_comment_changed(self, *args) -> 'void' + | on_function_comment_changed(self, l, r, rep) + | + | @param l: qstring const * + | @param r: qstring const * + | @param rep: bool + | + | on_insn_ops_repr_changed(self, *args) -> 'void' + | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: insn_ops_repr_t const * + | @param r: insn_ops_repr_t const * + | + | on_name_changed(self, *args) -> 'void' + | on_name_changed(self, l, r) + | + | @param l: qstring const * + | @param r: qstring const * + | + | on_proto_changed(self, *args) -> 'void' + | on_proto_changed(self, l, r) + | + | @param l: md_type_parts_t const & + | @param r: md_type_parts_t const & + | + | on_score_changed(self, *args) -> 'void' + | on_score_changed(self, l, r) + | + | @param l: uint32 + | @param r: uint32 + | + | on_user_stkpnt_changed(self, *args) -> 'void' + | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | + | @param fchunk_nr: uint32 + | @param fchunk_off: uint32 + | @param l: int64 const * + | @param r: int64 const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from simple_diff_handler_t: + | + | indent + | indent + | + | lines + | lines + | + | ---------------------------------------------------------------------- + | Methods inherited from func_md_diff_handler_t: + | + | __disown__(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from func_md_diff_handler_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class skipped_func_t in module ida_lumina: + +class skipped_func_t(builtins.object) + | Proxy of C++ skipped_func_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __pattern_id=pattern_id_t(), __count=0) -> skipped_func_t + | + | @param __pattern_id: pattern_id_t + | @param __count: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_skipped_func_t(...) + | delete_skipped_func_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | pattern_id + | pattern_id + | + | thisown + | The membership flag + +Help on class skipped_funcs_t in module ida_lumina: + +class skipped_funcs_t(builtins.object) + | Proxy of C++ qvector< skipped_func_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'skipped_func_t const &' + | __getitem__(self, i) -> skipped_func_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> skipped_funcs_t + | __init__(self, x) -> skipped_funcs_t + | + | @param x: qvector< skipped_func_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: skipped_func_t const & + | + | __swig_destroy__ = delete_skipped_funcs_t(...) + | delete_skipped_funcs_t(self) + | + | at(self, *args) -> 'skipped_func_t const &' + | at(self, _idx) -> skipped_func_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< skipped_func_t >::const_iterator' + | begin(self) -> skipped_func_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< skipped_func_t >::const_iterator' + | end(self) -> skipped_func_t + | + | erase(self, *args) -> 'qvector< skipped_func_t >::iterator' + | erase(self, it) -> skipped_func_t + | + | @param it: qvector< skipped_func_t >::iterator + | + | erase(self, first, last) -> skipped_func_t + | + | @param first: qvector< skipped_func_t >::iterator + | @param last: qvector< skipped_func_t >::iterator + | + | extract(self, *args) -> 'skipped_func_t *' + | extract(self) -> skipped_func_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=skipped_func_t()) + | + | @param x: skipped_func_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: skipped_func_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< skipped_func_t >::iterator' + | insert(self, it, x) -> skipped_func_t + | + | @param it: qvector< skipped_func_t >::iterator + | @param x: skipped_func_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'skipped_func_t &' + | push_back(self, x) + | + | @param x: skipped_func_t const & + | + | push_back(self) -> skipped_func_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: skipped_func_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< skipped_func_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function split_metadata in module ida_lumina: + +split_metadata(*args) -> 'PyObject *' + split_metadata(md) -> dict + + @param md: metadata_t const & + +Help on class user_license_info_t in module ida_lumina: + +class user_license_info_t(builtins.object) + | Proxy of C++ user_license_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, __id=None, __name=None, __email=None) -> user_license_info_t + | + | @param __id: char const * + | @param __name: char const * + | @param __email: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_license_info_t(...) + | delete_user_license_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | email + | email + | + | id + | id + | + | name + | name + | + | thisown + | The membership flag + +Help on class user_stkpnt_t in module ida_lumina: + +class user_stkpnt_t(insn_site_t) + | Proxy of C++ user_stkpnt_t class. + | + | Method resolution order: + | user_stkpnt_t + | insn_site_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> user_stkpnt_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_stkpnt_t(...) + | delete_user_stkpnt_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | delta + | delta + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from insn_site_t: + | + | toea(self, *args) -> 'ea_t' + | toea(self, pfn) -> ea_t + | + | @param pfn: func_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from insn_site_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fchunk_nr + | fchunk_nr + | + | fchunk_off + | fchunk_off + +Help on class user_stkpnts_t in module ida_lumina: + +class user_stkpnts_t(builtins.object) + | Proxy of C++ qvector< user_stkpnt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'user_stkpnt_t const &' + | __getitem__(self, i) -> user_stkpnt_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> user_stkpnts_t + | __init__(self, x) -> user_stkpnts_t + | + | @param x: qvector< user_stkpnt_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: user_stkpnt_t const & + | + | __swig_destroy__ = delete_user_stkpnts_t(...) + | delete_user_stkpnts_t(self) + | + | at(self, *args) -> 'user_stkpnt_t const &' + | at(self, _idx) -> user_stkpnt_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< user_stkpnt_t >::const_iterator' + | begin(self) -> user_stkpnt_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< user_stkpnt_t >::const_iterator' + | end(self) -> user_stkpnt_t + | + | erase(self, *args) -> 'qvector< user_stkpnt_t >::iterator' + | erase(self, it) -> user_stkpnt_t + | + | @param it: qvector< user_stkpnt_t >::iterator + | + | erase(self, first, last) -> user_stkpnt_t + | + | @param first: qvector< user_stkpnt_t >::iterator + | @param last: qvector< user_stkpnt_t >::iterator + | + | extract(self, *args) -> 'user_stkpnt_t *' + | extract(self) -> user_stkpnt_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=user_stkpnt_t()) + | + | @param x: user_stkpnt_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: user_stkpnt_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< user_stkpnt_t >::iterator' + | insert(self, it, x) -> user_stkpnt_t + | + | @param it: qvector< user_stkpnt_t >::iterator + | @param x: user_stkpnt_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'user_stkpnt_t &' + | push_back(self, x) + | + | @param x: user_stkpnt_t const & + | + | push_back(self) -> user_stkpnt_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: user_stkpnt_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< user_stkpnt_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Module "ida_moves"s docstring: +""" +""" + +Help on class bookmarks_t in module ida_moves: + +class bookmarks_t(builtins.object) + | Proxy of C++ bookmarks_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | erase(*args) -> 'bool' + | erase(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * + | + | find_index(*args) -> 'uint32' + | find_index(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * + | + | get(*args) -> 'bool' + | get(out_entry, out_desc, index, ud) -> bool + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * + | + | get_desc(*args) -> 'qstring *' + | get_desc(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * + | + | get_dirtree_id(*args) -> 'dirtree_id_t' + | get_dirtree_id(e, ud) -> dirtree_id_t + | + | @param e: lochist_entry_t const & + | @param ud: void * + | + | mark(*args) -> 'uint32' + | mark(e, index, title, desc, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * + | + | size(*args) -> 'uint32' + | size(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function bookmarks_t_erase in module ida_moves: + +bookmarks_t_erase(*args) -> 'bool' + bookmarks_t_erase(e, index, ud) -> bool + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * + +Help on function bookmarks_t_find_index in module ida_moves: + +bookmarks_t_find_index(*args) -> 'uint32' + bookmarks_t_find_index(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * + +Help on function bookmarks_t_get in module ida_moves: + +bookmarks_t_get(*args) -> 'bool' + bookmarks_t_get(out_entry, out_desc, index, ud) -> bool + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * + +Help on function bookmarks_t_get_desc in module ida_moves: + +bookmarks_t_get_desc(*args) -> 'qstring *' + bookmarks_t_get_desc(e, index, ud) -> str + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * + +Help on function bookmarks_t_get_dirtree_id in module ida_moves: + +bookmarks_t_get_dirtree_id(*args) -> 'dirtree_id_t' + bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t + + @param e: lochist_entry_t const & + @param ud: void * + +Help on function bookmarks_t_mark in module ida_moves: + +bookmarks_t_mark(*args) -> 'uint32' + bookmarks_t_mark(e, index, title, desc, ud) -> uint32 + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * + +Help on function bookmarks_t_size in module ida_moves: + +bookmarks_t_size(*args) -> 'uint32' + bookmarks_t_size(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * + +Help on class graph_location_info_t in module ida_moves: + +class graph_location_info_t(builtins.object) + | Proxy of C++ graph_location_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: graph_location_info_t const & + | + | __init__(self, *args) + | __init__(self) -> graph_location_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: graph_location_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_location_info_t(...) + | delete_graph_location_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | orgx + | orgx + | + | orgy + | orgy + | + | thisown + | The membership flag + | + | zoom + | zoom + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lochist_entry_t in module ida_moves: + +class lochist_entry_t(builtins.object) + | Proxy of C++ lochist_entry_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lochist_entry_t + | __init__(self, p, r) -> lochist_entry_t + | + | @param p: place_t const * + | @param r: renderer_info_t const & + | + | __init__(self, other) -> lochist_entry_t + | + | @param other: lochist_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lochist_entry_t(...) + | delete_lochist_entry_t(self) + | + | acquire_place(self, *args) -> 'void' + | acquire_place(self, in_p) + | + | @param in_p: place_t * + | + | is_valid(self, *args) -> 'bool' + | is_valid(self) -> bool + | + | place(self, *args) -> 'place_t *' + | place(self) -> place_t + | + | renderer_info(self, *args) -> 'renderer_info_t &' + | renderer_info(self) -> renderer_info_t + | + | set_place(self, *args) -> 'void' + | set_place(self, p) + | + | @param p: place_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | plce + | plce + | + | rinfo + | rinfo + | + | thisown + | The membership flag + +Help on class lochist_t in module ida_moves: + +class lochist_t(builtins.object) + | Proxy of C++ lochist_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lochist_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lochist_t(...) + | delete_lochist_t(self) + | + | back(self, *args) -> 'bool' + | back(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool + | + | clear(self, *args) -> 'void' + | clear(self) + | + | current_index(self, *args) -> 'uint32' + | current_index(self) -> uint32 + | + | fwd(self, *args) -> 'bool' + | fwd(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool + | + | get(self, *args) -> 'bool' + | get(self, out, index) -> bool + | + | @param out: lochist_entry_t * + | @param index: uint32 + | + | get_current(self, *args) -> 'lochist_entry_t const &' + | get_current(self) -> lochist_entry_t + | + | get_place_id(self, *args) -> 'int' + | get_place_id(self) -> int + | + | get_template_place(self, *args) -> 'place_t const *' + | get_template_place(self) -> place_t + | + | init(self, *args) -> 'bool' + | init(self, stream_name, _defpos, _ud, _flags) -> bool + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 + | + | is_history_enabled(self, *args) -> 'bool' + | is_history_enabled(self) -> bool + | + | jump(self, *args) -> 'void' + | jump(self, try_to_unhide, e) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & + | + | netcode(self, *args) -> 'nodeidx_t' + | netcode(self) -> nodeidx_t + | + | save(self, *args) -> 'void' + | save(self) + | + | seek(self, *args) -> 'bool' + | seek(self, index, try_to_unhide) -> bool + | + | @param index: uint32 + | @param try_to_unhide: bool + | + | set(self, *args) -> 'void' + | set(self, index, e) + | + | @param index: uint32 + | @param e: lochist_entry_t const & + | + | set_current(self, *args) -> 'void' + | set_current(self, e) + | + | @param e: lochist_entry_t const & + | + | size(self, *args) -> 'uint32' + | size(self) -> uint32 + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class renderer_info_pos_t in module ida_moves: + +class renderer_info_pos_t(builtins.object) + | Proxy of C++ renderer_info_pos_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & + | + | __init__(self, *args) + | __init__(self) -> renderer_info_pos_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_renderer_info_pos_t(...) + | delete_renderer_info_pos_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cx + | cx + | + | cy + | cy + | + | node + | node + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class renderer_info_t in module ida_moves: + +class renderer_info_t(builtins.object) + | Proxy of C++ renderer_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: renderer_info_t const & + | + | __init__(self, *args) + | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: renderer_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_renderer_info_t(...) + | delete_renderer_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | gli + | gli + | + | pos + | pos + | + | rtype + | rtype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class segm_move_info_t in module ida_moves: + +class segm_move_info_t(builtins.object) + | Proxy of C++ segm_move_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: segm_move_info_t const & + | + | __init__(self, *args) + | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: segm_move_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_segm_move_info_t(...) + | delete_segm_move_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _from + | _from + | + | size + | size + | + | thisown + | The membership flag + | + | to + | to + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class segm_move_info_vec_t in module ida_moves: + +class segm_move_info_vec_t(builtins.object) + | Proxy of C++ qvector< segm_move_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __getitem__(self, *args) -> 'segm_move_info_t const &' + | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> segm_move_info_vec_t + | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & + | + | __swig_destroy__ = delete_segm_move_info_vec_t(...) + | delete_segm_move_info_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | at(self, *args) -> 'segm_move_info_t const &' + | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | begin(self) -> segm_move_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | end(self) -> segm_move_info_t + | + | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | + | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator + | + | extract(self, *args) -> 'segm_move_info_t *' + | extract(self) -> segm_move_info_t + | + | find(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | find(self, x) -> segm_move_info_t + | + | @param x: segm_move_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'segm_move_info_t &' + | push_back(self, x) + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class segm_move_infos_t in module ida_moves: + +class segm_move_infos_t(segm_move_info_vec_t) + | Proxy of C++ segm_move_infos_t class. + | + | Method resolution order: + | segm_move_infos_t + | segm_move_info_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> segm_move_infos_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_segm_move_infos_t(...) + | delete_segm_move_infos_t(self) + | + | find(self, *args) -> 'segm_move_info_t const *' + | find(self, ea) -> segm_move_info_t + | + | @param ea: ea_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from segm_move_info_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __getitem__(self, *args) -> 'segm_move_info_t const &' + | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | at(self, *args) -> 'segm_move_info_t const &' + | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | begin(self) -> segm_move_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | end(self) -> segm_move_info_t + | + | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | + | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator + | + | extract(self, *args) -> 'segm_move_info_t *' + | extract(self) -> segm_move_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'segm_move_info_t &' + | push_back(self, x) + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from segm_move_info_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from segm_move_info_vec_t: + | + | __hash__ = None + +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + +Help on function get_switch_info in module ida_nalt: + +get_switch_info(*args) -> 'ssize_t' + get_switch_info(out, ea) -> ssize_t + + @param out: switch_info_t * + @param ea: ea_t + +Help on function add_encoding in module ida_nalt: + +add_encoding(*args) -> 'int' + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. + + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error + +Help on class array_parameters_t in module ida_nalt: + +class array_parameters_t(builtins.object) + | Proxy of C++ array_parameters_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> array_parameters_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_array_parameters_t(...) + | delete_array_parameters_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | alignment + | alignment + | + | flags + | flags + | + | lineitems + | lineitems + | + | thisown + | The membership flag + +Help on function clr__bnot0 in module ida_nalt: + +clr__bnot0(*args) -> 'void' + clr__bnot0(ea) + + @param ea: ea_t + +Help on function clr__bnot1 in module ida_nalt: + +clr__bnot1(*args) -> 'void' + clr__bnot1(ea) + + @param ea: ea_t + +Help on function clr__invsign0 in module ida_nalt: + +clr__invsign0(*args) -> 'void' + clr__invsign0(ea) + + @param ea: ea_t + +Help on function clr__invsign1 in module ida_nalt: + +clr__invsign1(*args) -> 'void' + clr__invsign1(ea) + + @param ea: ea_t + +Help on function clr_abits in module ida_nalt: + +clr_abits(*args) -> 'void' + clr_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t + +Help on function clr_align_flow in module ida_nalt: + +clr_align_flow(*args) -> 'void' + clr_align_flow(ea) + + @param ea: ea_t + +Help on function clr_colored_item in module ida_nalt: + +clr_colored_item(*args) -> 'void' + clr_colored_item(ea) + + @param ea: ea_t + +Help on function clr_fixed_spd in module ida_nalt: + +clr_fixed_spd(*args) -> 'void' + clr_fixed_spd(ea) + + @param ea: ea_t + +Help on function clr_has_lname in module ida_nalt: + +clr_has_lname(*args) -> 'void' + clr_has_lname(ea) + + @param ea: ea_t + +Help on function clr_has_ti in module ida_nalt: + +clr_has_ti(*args) -> 'void' + clr_has_ti(ea) + + @param ea: ea_t + +Help on function clr_has_ti0 in module ida_nalt: + +clr_has_ti0(*args) -> 'void' + clr_has_ti0(ea) + + @param ea: ea_t + +Help on function clr_has_ti1 in module ida_nalt: + +clr_has_ti1(*args) -> 'void' + clr_has_ti1(ea) + + @param ea: ea_t + +Help on function clr_libitem in module ida_nalt: + +clr_libitem(*args) -> 'void' + clr_libitem(ea) + + @param ea: ea_t + +Help on function clr_lzero0 in module ida_nalt: + +clr_lzero0(*args) -> 'void' + clr_lzero0(ea) + + @param ea: ea_t + +Help on function clr_lzero1 in module ida_nalt: + +clr_lzero1(*args) -> 'void' + clr_lzero1(ea) + + @param ea: ea_t + +Help on function clr_noret in module ida_nalt: + +clr_noret(*args) -> 'void' + clr_noret(ea) + + @param ea: ea_t + +Help on function clr_notcode in module ida_nalt: + +clr_notcode(*args) -> 'void' + clr_notcode(ea) + Clear not-code mark. + + @param ea: (C++: ea_t) + +Help on function clr_notproc in module ida_nalt: + +clr_notproc(*args) -> 'void' + clr_notproc(ea) + + @param ea: ea_t + +Help on function clr_retfp in module ida_nalt: + +clr_retfp(*args) -> 'void' + clr_retfp(ea) + + @param ea: ea_t + +Help on function clr_terse_struc in module ida_nalt: + +clr_terse_struc(*args) -> 'void' + clr_terse_struc(ea) + + @param ea: ea_t + +Help on function clr_tilcmt in module ida_nalt: + +clr_tilcmt(*args) -> 'void' + clr_tilcmt(ea) + + @param ea: ea_t + +Help on function clr_usemodsp in module ida_nalt: + +clr_usemodsp(*args) -> 'void' + clr_usemodsp(ea) + + @param ea: ea_t + +Help on function clr_usersp in module ida_nalt: + +clr_usersp(*args) -> 'void' + clr_usersp(ea) + + @param ea: ea_t + +Help on function clr_userti in module ida_nalt: + +clr_userti(*args) -> 'void' + clr_userti(ea) + + @param ea: ea_t + +Help on function clr_zstroff in module ida_nalt: + +clr_zstroff(*args) -> 'void' + clr_zstroff(ea) + + @param ea: ea_t + +Help on class custom_data_type_ids_fids_array in module ida_nalt: + +class custom_data_type_ids_fids_array(builtins.object) + | Proxy of C++ wrapped_array_t< int16,8 > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'short const &' + | __getitem__(self, i) -> short const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> custom_data_type_ids_fids_array + | + | @param data: short (&)[8] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: short const & + | + | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) + | delete_custom_data_type_ids_fids_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class custom_data_type_ids_t in module ida_nalt: + +class custom_data_type_ids_t(builtins.object) + | Proxy of C++ custom_data_type_ids_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> custom_data_type_ids_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_custom_data_type_ids_t(...) + | delete_custom_data_type_ids_t(self) + | + | _custom_data_type_ids_t__getFids = __getFids(self, *args) -> 'wrapped_array_t< int16,8 >' + | __getFids(self) -> custom_data_type_ids_fids_array + | + | get_dtid(self, *args) -> 'tid_t' + | get_dtid(self) -> tid_t + | + | set(self, *args) -> 'void' + | set(self, tid) + | + | @param tid: tid_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dtid + | dtid + | + | fids + | __getFids(self) -> custom_data_type_ids_fids_array + | + | thisown + | The membership flag + +Help on function dbg_get_input_path in module ida_nalt: + +dbg_get_input_path(*args) -> 'size_t' + dbg_get_input_path() -> str + Get debugger input file name/path (see LFLG_DBG_NOPATH) + +Help on function del_absbase in module ida_nalt: + +del_absbase(*args) -> 'void' + del_absbase(ea) + + @param ea: ea_t + +Help on function del_aflags in module ida_nalt: + +del_aflags(*args) -> 'void' + del_aflags(ea) + + @param ea: ea_t + +Help on function del_alignment in module ida_nalt: + +del_alignment(*args) -> 'void' + del_alignment(ea) + + @param ea: ea_t + +Help on function del_array_parameters in module ida_nalt: + +del_array_parameters(*args) -> 'void' + del_array_parameters(ea) + + @param ea: ea_t + +Help on function del_custom_data_type_ids in module ida_nalt: + +del_custom_data_type_ids(*args) -> 'void' + del_custom_data_type_ids(ea) + + @param ea: ea_t + +Help on function del_encoding in module ida_nalt: + +del_encoding(*args) -> 'bool' + del_encoding(idx) -> bool + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. + + @param idx: (C++: int) the encoding index (1-based) + +Help on function del_ind_purged in module ida_nalt: + +del_ind_purged(*args) -> 'void' + del_ind_purged(ea) + + @param ea: ea_t + +Help on function del_item_color in module ida_nalt: + +del_item_color(*args) -> 'bool' + del_item_color(ea) -> bool + + @param ea: ea_t + +Help on function del_op_tinfo in module ida_nalt: + +del_op_tinfo(*args) -> 'void' + del_op_tinfo(ea, n) + + @param ea: ea_t + @param n: int + +Help on function del_refinfo in module ida_nalt: + +del_refinfo(*args) -> 'bool' + del_refinfo(ea, n) -> bool + + @param ea: ea_t + @param n: int + +Help on function del_source_linnum in module ida_nalt: + +del_source_linnum(*args) -> 'void' + del_source_linnum(ea) + + @param ea: ea_t + +Help on function del_str_type in module ida_nalt: + +del_str_type(*args) -> 'void' + del_str_type(ea) + + @param ea: ea_t + +Help on function del_switch_info in module ida_nalt: + +del_switch_info(*args) -> 'void' + del_switch_info(ea) + + @param ea: ea_t + +Help on function del_switch_parent in module ida_nalt: + +del_switch_parent(*args) -> 'void' + del_switch_parent(ea) + + @param ea: ea_t + +Help on function del_tinfo in module ida_nalt: + +del_tinfo(*args) -> 'void' + del_tinfo(ea) + + @param ea: ea_t + +Help on function delete_imports in module ida_nalt: + +delete_imports(*args) -> 'void' + delete_imports() + Delete all imported modules information. + +Help on function ea2node in module ida_nalt: + +ea2node(*args) -> 'nodeidx_t' + ea2node(ea) -> nodeidx_t + Get netnode for the specified address. + + @param ea: (C++: ea_t) + +Help on function encoding_from_strtype in module ida_nalt: + +encoding_from_strtype(*args) -> 'char const *' + encoding_from_strtype(strtype) -> char const * + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted + + @param strtype: (C++: int32) + +Help on class enum_const_t in module ida_nalt: + +class enum_const_t(builtins.object) + | Proxy of C++ enum_const_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> enum_const_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_const_t(...) + | delete_enum_const_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | serial + | serial + | + | thisown + | The membership flag + | + | tid + | tid + +Help on function enum_import_names in module ida_nalt: + +enum_import_names(*args) -> 'int' + enum_import_names(mod_index, py_cb) -> int + Enumerate imports from a specific module. + Please refer to ex_imports.py example. + + @param mod_index: The module index + @param callback: A callable object that will be invoked with an ea, name (could be None) and ordinal. + @return: 1-finished ok, -1 on error, otherwise callback return value (<=0) + +Help on function find_custom_refinfo in module ida_nalt: + +find_custom_refinfo(*args) -> 'int' + find_custom_refinfo(name) -> int + Get id of a custom refinfo type. + + @param name: (C++: const char *) char const * + +Help on function get_abi_name in module ida_nalt: + +get_abi_name() + +Help on function get_absbase in module ida_nalt: + +get_absbase(*args) -> 'ea_t' + get_absbase(ea) -> ea_t + + @param ea: ea_t + +Help on function get_aflags in module ida_nalt: + +get_aflags(*args) -> 'aflags_t' + get_aflags(ea) -> aflags_t + + @param ea: ea_t + +Help on function get_alignment in module ida_nalt: + +get_alignment(*args) -> 'uint32' + get_alignment(ea) -> uint32 + + @param ea: ea_t + +Help on function get_archive_path in module ida_nalt: + +get_archive_path(*args) -> 'qstring *' + get_archive_path() -> str + Get archive file path from which input file was extracted. + +Help on function get_array_parameters in module ida_nalt: + +get_array_parameters(*args) -> 'ssize_t' + get_array_parameters(out, ea) -> ssize_t + + @param out: array_parameters_t * + @param ea: ea_t + +Help on function get_asm_inc_file in module ida_nalt: + +get_asm_inc_file(*args) -> 'qstring *' + get_asm_inc_file() -> str + Get name of the include file. + +Help on function get_custom_data_type_ids in module ida_nalt: + +get_custom_data_type_ids(*args) -> 'int' + get_custom_data_type_ids(cdis, ea) -> int + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t + +Help on function get_custom_refinfo in module ida_nalt: + +get_custom_refinfo(*args) -> 'custom_refinfo_handler_t const *' + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * + Get definition of a registered custom refinfo type. + + @param crid: (C++: int) + +Help on function get_default_encoding_idx in module ida_nalt: + +get_default_encoding_idx(*args) -> 'int' + get_default_encoding_idx(bpu) -> int + Get default encoding index for a specific string type. + + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument + +Help on function get_elapsed_secs in module ida_nalt: + +get_elapsed_secs(*args) -> 'size_t' + get_elapsed_secs() -> size_t + Get seconds database stayed open. + +Help on function get_encoding_bpu in module ida_nalt: + +get_encoding_bpu(*args) -> 'int' + get_encoding_bpu(idx) -> int + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) -> 'int' + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding + + @param encname: (C++: const char *) the encoding name + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_name in module ida_nalt: + +get_encoding_name(*args) -> 'char const *' + get_encoding_name(idx) -> char const * + Get encoding name for specific index (1-based). + + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted + +Help on function get_encoding_qty in module ida_nalt: + +get_encoding_qty(*args) -> 'int' + get_encoding_qty() -> int + Get total number of encodings (counted from 0) + +Help on function get_gotea in module ida_nalt: + +get_gotea(*args) -> 'ea_t' + get_gotea() -> ea_t + +Help on function get_ida_notepad_text in module ida_nalt: + +get_ida_notepad_text(*args) -> 'qstring *' + get_ida_notepad_text() -> str + Get notepad text. + +Help on function get_idb_ctime in module ida_nalt: + +get_idb_ctime(*args) -> 'time_t' + get_idb_ctime() -> time_t + Get database creation timestamp. + +Help on function get_idb_nopens in module ida_nalt: + +get_idb_nopens(*args) -> 'size_t' + get_idb_nopens() -> size_t + Get number of times the database is opened. + +Help on function get_ids_modnode in module ida_nalt: + +get_ids_modnode(*args) -> 'netnode' + get_ids_modnode() -> netnode + Get ids modnode. + +Help on function get_imagebase in module ida_nalt: + +get_imagebase(*args) -> 'ea_t' + get_imagebase() -> ea_t + Get image base address. + +Help on function get_import_module_name in module ida_nalt: + +get_import_module_name(*args) -> 'PyObject *' + get_import_module_name(mod_index) -> str + Returns the name of an imported module given its index + + @param mod_index: int + @return: None or the module name + +Help on function get_import_module_qty in module ida_nalt: + +get_import_module_qty(*args) -> 'uint' + get_import_module_qty() -> uint + Get number of import modules. + +Help on function get_ind_purged in module ida_nalt: + +get_ind_purged(*args) -> 'ea_t' + get_ind_purged(ea) -> ea_t + + @param ea: ea_t + +Help on function get_initial_ida_version in module ida_nalt: + +get_initial_ida_version(*args) -> 'qstring *' + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) -> 'ushort' + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) + +Help on function get_input_file_path in module ida_nalt: + +get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str + Get full path of the input file. + +Help on function get_item_color in module ida_nalt: + +get_item_color(*args) -> 'bgcolor_t' + get_item_color(ea) -> bgcolor_t + + @param ea: ea_t + +Help on function get_loader_format_name in module ida_nalt: + +get_loader_format_name(*args) -> 'qstring *' + get_loader_format_name() -> str + Get file format name for loader modules. + +Help on function get_op_tinfo in module ida_nalt: + +get_op_tinfo(*args) -> 'bool' + get_op_tinfo(tif, ea, n) -> bool + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int + +Help on function get_outfile_encoding_idx in module ida_nalt: + +get_outfile_encoding_idx(*args) -> 'int' + get_outfile_encoding_idx() -> int + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used + +Help on function get_refinfo in module ida_nalt: + +get_refinfo(*args) -> 'bool' + get_refinfo(ri, ea, n) -> bool + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int + +Help on function get_reftype_by_size in module ida_nalt: + +get_reftype_by_size(*args) -> 'reftype_t' + get_reftype_by_size(size) -> reftype_t + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) + + @param size: (C++: size_t) + +Help on function get_root_filename in module ida_nalt: + +get_root_filename(*args) -> 'size_t' + get_root_filename() -> str + Get file name only of the input file. + +Help on function get_source_linnum in module ida_nalt: + +get_source_linnum(*args) -> 'uval_t' + get_source_linnum(ea) -> uval_t + + @param ea: ea_t + +Help on function get_srcdbg_paths in module ida_nalt: + +get_srcdbg_paths(*args) -> 'qstring *' + get_srcdbg_paths() -> str + Get source debug paths. + +Help on function get_srcdbg_undesired_paths in module ida_nalt: + +get_srcdbg_undesired_paths(*args) -> 'qstring *' + get_srcdbg_undesired_paths() -> str + Get user-closed source files. + +Help on function get_str_encoding_idx in module ida_nalt: + +get_str_encoding_idx(*args) -> 'uchar' + get_str_encoding_idx(strtype) -> uchar + Get index of the string encoding for this string. + + @param strtype: (C++: int32) + +Help on function get_str_term1 in module ida_nalt: + +get_str_term1(*args) -> 'char' + get_str_term1(strtype) -> char + + @param strtype: int32 + +Help on function get_str_term2 in module ida_nalt: + +get_str_term2(*args) -> 'char' + get_str_term2(strtype) -> char + + @param strtype: int32 + +Help on function get_str_type in module ida_nalt: + +get_str_type(*args) -> 'uint32' + get_str_type(ea) -> uint32 + + @param ea: ea_t + +Help on function get_str_type_code in module ida_nalt: + +get_str_type_code(*args) -> 'uchar' + get_str_type_code(strtype) -> uchar + + @param strtype: int32 + +Help on function get_str_type_prefix_length in module ida_nalt: + +get_str_type_prefix_length(*args) -> 'size_t' + get_str_type_prefix_length(strtype) -> size_t + + @param strtype: int32 + +Help on function get_strid in module ida_nalt: + +get_strid(*args) -> 'tid_t' + get_strid(ea) -> tid_t + + @param ea: ea_t + +Help on function get_strtype_bpu in module ida_nalt: + +get_strtype_bpu(*args) -> 'int' + get_strtype_bpu(strtype) -> int + + @param strtype: int32 + +Help on function get_switch_info in module ida_nalt: + +get_switch_info(*args) + +Help on function get_switch_parent in module ida_nalt: + +get_switch_parent(*args) -> 'ea_t' + get_switch_parent(ea) -> ea_t + + @param ea: ea_t + +Help on function get_tinfo in module ida_nalt: + +get_tinfo(*args) -> 'bool' + get_tinfo(tif, ea) -> bool + + @param tif: tinfo_t * + @param ea: ea_t + +Help on function getnode in module ida_nalt: + +getnode(*args) -> 'netnode' + getnode(ea) -> netnode + + @param ea: ea_t + +Help on function has_aflag_linnum in module ida_nalt: + +has_aflag_linnum(*args) -> 'bool' + has_aflag_linnum(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_lname in module ida_nalt: + +has_aflag_lname(*args) -> 'bool' + has_aflag_lname(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti in module ida_nalt: + +has_aflag_ti(*args) -> 'bool' + has_aflag_ti(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti0 in module ida_nalt: + +has_aflag_ti0(*args) -> 'bool' + has_aflag_ti0(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti1 in module ida_nalt: + +has_aflag_ti1(*args) -> 'bool' + has_aflag_ti1(flags) -> bool + + @param flags: aflags_t + +Help on function has_lname in module ida_nalt: + +has_lname(*args) -> 'bool' + has_lname(ea) -> bool + + @param ea: ea_t + +Help on function has_ti in module ida_nalt: + +has_ti(*args) -> 'bool' + has_ti(ea) -> bool + + @param ea: ea_t + +Help on function has_ti0 in module ida_nalt: + +has_ti0(*args) -> 'bool' + has_ti0(ea) -> bool + + @param ea: ea_t + +Help on function has_ti1 in module ida_nalt: + +has_ti1(*args) -> 'bool' + has_ti1(ea) -> bool + + @param ea: ea_t + +Help on function hide_border in module ida_nalt: + +hide_border(*args) -> 'void' + hide_border(ea) + + @param ea: ea_t + +Help on function hide_item in module ida_nalt: + +hide_item(*args) -> 'void' + hide_item(ea) + + @param ea: ea_t + +Help on function is__bnot0 in module ida_nalt: + +is__bnot0(*args) -> 'bool' + is__bnot0(ea) -> bool + + @param ea: ea_t + +Help on function is__bnot1 in module ida_nalt: + +is__bnot1(*args) -> 'bool' + is__bnot1(ea) -> bool + + @param ea: ea_t + +Help on function is__invsign0 in module ida_nalt: + +is__invsign0(*args) -> 'bool' + is__invsign0(ea) -> bool + + @param ea: ea_t + +Help on function is__invsign1 in module ida_nalt: + +is__invsign1(*args) -> 'bool' + is__invsign1(ea) -> bool + + @param ea: ea_t + +Help on function is_aflag__bnot0 in module ida_nalt: + +is_aflag__bnot0(*args) -> 'bool' + is_aflag__bnot0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__bnot1 in module ida_nalt: + +is_aflag__bnot1(*args) -> 'bool' + is_aflag__bnot1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign0 in module ida_nalt: + +is_aflag__invsign0(*args) -> 'bool' + is_aflag__invsign0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign1 in module ida_nalt: + +is_aflag__invsign1(*args) -> 'bool' + is_aflag__invsign1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_align_flow in module ida_nalt: + +is_aflag_align_flow(*args) -> 'bool' + is_aflag_align_flow(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_colored_item in module ida_nalt: + +is_aflag_colored_item(*args) -> 'bool' + is_aflag_colored_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: + +is_aflag_data_guessed_by_hexrays(*args) -> 'bool' + is_aflag_data_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_fixed_spd in module ida_nalt: + +is_aflag_fixed_spd(*args) -> 'bool' + is_aflag_fixed_spd(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: + +is_aflag_func_guessed_by_hexrays(*args) -> 'bool' + is_aflag_func_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_border in module ida_nalt: + +is_aflag_hidden_border(*args) -> 'bool' + is_aflag_hidden_border(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_item in module ida_nalt: + +is_aflag_hidden_item(*args) -> 'bool' + is_aflag_hidden_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_libitem in module ida_nalt: + +is_aflag_libitem(*args) -> 'bool' + is_aflag_libitem(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero0 in module ida_nalt: + +is_aflag_lzero0(*args) -> 'bool' + is_aflag_lzero0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero1 in module ida_nalt: + +is_aflag_lzero1(*args) -> 'bool' + is_aflag_lzero1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_manual_insn in module ida_nalt: + +is_aflag_manual_insn(*args) -> 'bool' + is_aflag_manual_insn(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_noret in module ida_nalt: + +is_aflag_noret(*args) -> 'bool' + is_aflag_noret(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notcode in module ida_nalt: + +is_aflag_notcode(*args) -> 'bool' + is_aflag_notcode(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notproc in module ida_nalt: + +is_aflag_notproc(*args) -> 'bool' + is_aflag_notproc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_public_name in module ida_nalt: + +is_aflag_public_name(*args) -> 'bool' + is_aflag_public_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_retfp in module ida_nalt: + +is_aflag_retfp(*args) -> 'bool' + is_aflag_retfp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_terse_struc in module ida_nalt: + +is_aflag_terse_struc(*args) -> 'bool' + is_aflag_terse_struc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_tilcmt in module ida_nalt: + +is_aflag_tilcmt(*args) -> 'bool' + is_aflag_tilcmt(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: + +is_aflag_type_determined_by_hexrays(*args) -> 'bool' + is_aflag_type_determined_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: + +is_aflag_type_guessed_by_hexrays(*args) -> 'bool' + is_aflag_type_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_ida in module ida_nalt: + +is_aflag_type_guessed_by_ida(*args) -> 'bool' + is_aflag_type_guessed_by_ida(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_usersp in module ida_nalt: + +is_aflag_usersp(*args) -> 'bool' + is_aflag_usersp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_userti in module ida_nalt: + +is_aflag_userti(*args) -> 'bool' + is_aflag_userti(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_weak_name in module ida_nalt: + +is_aflag_weak_name(*args) -> 'bool' + is_aflag_weak_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_zstroff in module ida_nalt: + +is_aflag_zstroff(*args) -> 'bool' + is_aflag_zstroff(flags) -> bool + + @param flags: aflags_t + +Help on function is_align_flow in module ida_nalt: + +is_align_flow(*args) -> 'bool' + is_align_flow(ea) -> bool + + @param ea: ea_t + +Help on function is_colored_item in module ida_nalt: + +is_colored_item(*args) -> 'bool' + is_colored_item(ea) -> bool + + @param ea: ea_t + +Help on function is_data_guessed_by_hexrays in module ida_nalt: + +is_data_guessed_by_hexrays(*args) -> 'bool' + is_data_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_finally_visible_item in module ida_nalt: + +is_finally_visible_item(*args) -> 'bool' + is_finally_visible_item(ea) -> bool + Is instruction visible? + + @param ea: (C++: ea_t) + +Help on function is_fixed_spd in module ida_nalt: + +is_fixed_spd(*args) -> 'bool' + is_fixed_spd(ea) -> bool + + @param ea: ea_t + +Help on function is_func_guessed_by_hexrays in module ida_nalt: + +is_func_guessed_by_hexrays(*args) -> 'bool' + is_func_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_hidden_border in module ida_nalt: + +is_hidden_border(*args) -> 'bool' + is_hidden_border(ea) -> bool + + @param ea: ea_t + +Help on function is_hidden_item in module ida_nalt: + +is_hidden_item(*args) -> 'bool' + is_hidden_item(ea) -> bool + + @param ea: ea_t + +Help on function is_libitem in module ida_nalt: + +is_libitem(*args) -> 'bool' + is_libitem(ea) -> bool + + @param ea: ea_t + +Help on function is_lzero0 in module ida_nalt: + +is_lzero0(*args) -> 'bool' + is_lzero0(ea) -> bool + + @param ea: ea_t + +Help on function is_lzero1 in module ida_nalt: + +is_lzero1(*args) -> 'bool' + is_lzero1(ea) -> bool + + @param ea: ea_t + +Help on function is_noret in module ida_nalt: + +is_noret(*args) -> 'bool' + is_noret(ea) -> bool + + @param ea: ea_t + +Help on function is_notcode in module ida_nalt: + +is_notcode(*args) -> 'bool' + is_notcode(ea) -> bool + Is the address marked as not-code? + + @param ea: (C++: ea_t) + +Help on function is_notproc in module ida_nalt: + +is_notproc(*args) -> 'bool' + is_notproc(ea) -> bool + + @param ea: ea_t + +Help on function is_pascal in module ida_nalt: + +is_pascal(*args) -> 'bool' + is_pascal(strtype) -> bool + + @param strtype: int32 + +Help on function is_reftype_target_optional in module ida_nalt: + +is_reftype_target_optional(*args) -> 'bool' + is_reftype_target_optional(type) -> bool + Can the target be calculated using operand value? + + @param type: (C++: reftype_t) + +Help on function is_retfp in module ida_nalt: + +is_retfp(*args) -> 'bool' + is_retfp(ea) -> bool + + @param ea: ea_t + +Help on function is_terse_struc in module ida_nalt: + +is_terse_struc(*args) -> 'bool' + is_terse_struc(ea) -> bool + + @param ea: ea_t + +Help on function is_tilcmt in module ida_nalt: + +is_tilcmt(*args) -> 'bool' + is_tilcmt(ea) -> bool + + @param ea: ea_t + +Help on function is_type_determined_by_hexrays in module ida_nalt: + +is_type_determined_by_hexrays(*args) -> 'bool' + is_type_determined_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_hexrays in module ida_nalt: + +is_type_guessed_by_hexrays(*args) -> 'bool' + is_type_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_ida in module ida_nalt: + +is_type_guessed_by_ida(*args) -> 'bool' + is_type_guessed_by_ida(ea) -> bool + + @param ea: ea_t + +Help on function is_usersp in module ida_nalt: + +is_usersp(*args) -> 'bool' + is_usersp(ea) -> bool + + @param ea: ea_t + +Help on function is_userti in module ida_nalt: + +is_userti(*args) -> 'bool' + is_userti(ea) -> bool + + @param ea: ea_t + +Help on function is_visible_item in module ida_nalt: + +is_visible_item(*args) -> 'bool' + is_visible_item(ea) -> bool + Test visibility of item at given ea. + + @param ea: (C++: ea_t) + +Help on function is_zstroff in module ida_nalt: + +is_zstroff(*args) -> 'bool' + is_zstroff(ea) -> bool + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) -> 'int32' + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) + +Help on function node2ea in module ida_nalt: + +node2ea(*args) -> 'ea_t' + node2ea(ndx) -> ea_t + + @param ndx: nodeidx_t + +Help on class opinfo_t in module ida_nalt: + +class opinfo_t(builtins.object) + | Proxy of C++ opinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> opinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_opinfo_t(...) + | delete_opinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cd + | cd + | + | ec + | ec + | + | path + | path + | + | ri + | ri + | + | strtype + | strtype + | + | thisown + | The membership flag + | + | tid + | tid + +Help on class printop_t in module ida_nalt: + +class printop_t(builtins.object) + | Proxy of C++ printop_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> printop_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_printop_t(...) + | delete_printop_t(self) + | + | get_ti(self, *args) -> 'opinfo_t const *' + | get_ti(self) -> opinfo_t + | + | is_aflags_initialized(self, *args) -> 'bool' + | is_aflags_initialized(self) -> bool + | + | is_ti_initialized(self, *args) -> 'bool' + | is_ti_initialized(self) -> bool + | + | set_aflags_initialized(self, *args) -> 'void' + | set_aflags_initialized(self, v=True) + | + | @param v: bool + | + | set_ti_initialized(self, *args) -> 'void' + | set_ti_initialized(self, v=True) + | + | @param v: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | aflags + | aflags + | + | features + | features + | + | flags + | flags + | + | is_ti_valid + | is_ti_initialized(self) -> bool + | + | suspop + | suspop + | + | thisown + | The membership flag + | + | ti + | ti + +Help on class refinfo_t in module ida_nalt: + +class refinfo_t(builtins.object) + | Proxy of C++ refinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> refinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_refinfo_t(...) + | delete_refinfo_t(self) + | + | init(self, *args) -> 'void' + | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | + | is_no_ones(self, *args) -> 'bool' + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) -> 'bool' + | is_no_zeros(self) -> bool + | + | is_pastend(self, *args) -> 'bool' + | is_pastend(self) -> bool + | + | is_rvaoff(self, *args) -> 'bool' + | is_rvaoff(self) -> bool + | + | is_selfref(self, *args) -> 'bool' + | is_selfref(self) -> bool + | + | is_signed(self, *args) -> 'bool' + | is_signed(self) -> bool + | + | is_subtract(self, *args) -> 'bool' + | is_subtract(self) -> bool + | + | is_target_optional(self, *args) -> 'bool' + | is_target_optional(self) -> bool + | < is_reftype_target_optional() + | + | no_base_xref(self, *args) -> 'bool' + | no_base_xref(self) -> bool + | + | set_type(self, *args) -> 'void' + | set_type(self, rt) + | + | @param rt: reftype_t + | + | type(self, *args) -> 'reftype_t' + | type(self) -> reftype_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | base + | base + | + | flags + | flags + | + | target + | target + | + | tdelta + | tdelta + | + | thisown + | The membership flag + +Help on function rename_encoding in module ida_nalt: + +rename_encoding(*args) -> 'bool' + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. + + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name + +Help on function retrieve_input_file_crc32 in module ida_nalt: + +retrieve_input_file_crc32(*args) -> 'uint32' + retrieve_input_file_crc32() -> uint32 + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. + +Help on function retrieve_input_file_md5 in module ida_nalt: + +retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes + Get input file md5. + +Help on function retrieve_input_file_sha256 in module ida_nalt: + +retrieve_input_file_sha256(*args) -> 'uchar [ANY]' + retrieve_input_file_sha256() -> bytes + Get input file sha256. + +Help on function retrieve_input_file_size in module ida_nalt: + +retrieve_input_file_size(*args) -> 'size_t' + retrieve_input_file_size() -> size_t + Get size of input file in bytes. + +Help on function set__bnot0 in module ida_nalt: + +set__bnot0(*args) -> 'void' + set__bnot0(ea) + + @param ea: ea_t + +Help on function set__bnot1 in module ida_nalt: + +set__bnot1(*args) -> 'void' + set__bnot1(ea) + + @param ea: ea_t + +Help on function set__invsign0 in module ida_nalt: + +set__invsign0(*args) -> 'void' + set__invsign0(ea) + + @param ea: ea_t + +Help on function set__invsign1 in module ida_nalt: + +set__invsign1(*args) -> 'void' + set__invsign1(ea) + + @param ea: ea_t + +Help on function set_abits in module ida_nalt: + +set_abits(*args) -> 'void' + set_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t + +Help on function set_absbase in module ida_nalt: + +set_absbase(*args) -> 'void' + set_absbase(ea, x) + + @param ea: ea_t + @param x: ea_t + +Help on function set_aflags in module ida_nalt: + +set_aflags(*args) -> 'void' + set_aflags(ea, flags) + + @param ea: ea_t + @param flags: aflags_t + +Help on function set_align_flow in module ida_nalt: + +set_align_flow(*args) -> 'void' + set_align_flow(ea) + + @param ea: ea_t + +Help on function set_alignment in module ida_nalt: + +set_alignment(*args) -> 'void' + set_alignment(ea, x) + + @param ea: ea_t + @param x: uint32 + +Help on function set_archive_path in module ida_nalt: + +set_archive_path(*args) -> 'bool' + set_archive_path(file) -> bool + Set archive file path from which input file was extracted. + + @param file: (C++: const char *) char const * + +Help on function set_array_parameters in module ida_nalt: + +set_array_parameters(*args) -> 'void' + set_array_parameters(ea, _in) + + @param ea: ea_t + @param in: array_parameters_t const * + +Help on function set_asm_inc_file in module ida_nalt: + +set_asm_inc_file(*args) -> 'bool' + set_asm_inc_file(file) -> bool + Set name of the include file. + + @param file: (C++: const char *) char const * + +Help on function set_colored_item in module ida_nalt: + +set_colored_item(*args) -> 'void' + set_colored_item(ea) + + @param ea: ea_t + +Help on function set_custom_data_type_ids in module ida_nalt: + +set_custom_data_type_ids(*args) -> 'void' + set_custom_data_type_ids(ea, cdis) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * + +Help on function set_data_guessed_by_hexrays in module ida_nalt: + +set_data_guessed_by_hexrays(*args) -> 'void' + set_data_guessed_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_default_encoding_idx in module ida_nalt: + +set_default_encoding_idx(*args) -> 'bool' + set_default_encoding_idx(bpu, idx) -> bool + Set default encoding for a string type + + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 + +Help on function set_fixed_spd in module ida_nalt: + +set_fixed_spd(*args) -> 'void' + set_fixed_spd(ea) + + @param ea: ea_t + +Help on function set_func_guessed_by_hexrays in module ida_nalt: + +set_func_guessed_by_hexrays(*args) -> 'void' + set_func_guessed_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_gotea in module ida_nalt: + +set_gotea(*args) -> 'void' + set_gotea(gotea) + + @param gotea: ea_t + +Help on function set_has_lname in module ida_nalt: + +set_has_lname(*args) -> 'void' + set_has_lname(ea) + + @param ea: ea_t + +Help on function set_has_ti in module ida_nalt: + +set_has_ti(*args) -> 'void' + set_has_ti(ea) + + @param ea: ea_t + +Help on function set_has_ti0 in module ida_nalt: + +set_has_ti0(*args) -> 'void' + set_has_ti0(ea) + + @param ea: ea_t + +Help on function set_has_ti1 in module ida_nalt: + +set_has_ti1(*args) -> 'void' + set_has_ti1(ea) + + @param ea: ea_t + +Help on function set_ida_notepad_text in module ida_nalt: + +set_ida_notepad_text(*args) -> 'void' + set_ida_notepad_text(text, size=0) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) + +Help on function set_ids_modnode in module ida_nalt: + +set_ids_modnode(*args) -> 'void' + set_ids_modnode(id) + Set ids modnode. + + @param id: (C++: netnode) + +Help on function set_imagebase in module ida_nalt: + +set_imagebase(*args) -> 'void' + set_imagebase(base) + Set image base address. + + @param base: (C++: ea_t) + +Help on function set_item_color in module ida_nalt: + +set_item_color(*args) -> 'void' + set_item_color(ea, color) + + @param ea: ea_t + @param color: bgcolor_t + +Help on function set_libitem in module ida_nalt: + +set_libitem(*args) -> 'void' + set_libitem(ea) + + @param ea: ea_t + +Help on function set_loader_format_name in module ida_nalt: + +set_loader_format_name(*args) -> 'void' + set_loader_format_name(name) + Set file format name for loader modules. + + @param name: (C++: const char *) char const * + +Help on function set_lzero0 in module ida_nalt: + +set_lzero0(*args) -> 'void' + set_lzero0(ea) + + @param ea: ea_t + +Help on function set_lzero1 in module ida_nalt: + +set_lzero1(*args) -> 'void' + set_lzero1(ea) + + @param ea: ea_t + +Help on function set_noret in module ida_nalt: + +set_noret(*args) -> 'void' + set_noret(ea) + + @param ea: ea_t + +Help on function set_notcode in module ida_nalt: + +set_notcode(*args) -> 'void' + set_notcode(ea) + Mark address so that it cannot be converted to instruction. + + @param ea: (C++: ea_t) + +Help on function set_notproc in module ida_nalt: + +set_notproc(*args) -> 'void' + set_notproc(ea) + + @param ea: ea_t + +Help on function set_op_tinfo in module ida_nalt: + +set_op_tinfo(*args) -> 'bool' + set_op_tinfo(ea, n, tif) -> bool + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * + +Help on function set_outfile_encoding_idx in module ida_nalt: + +set_outfile_encoding_idx(*args) -> 'bool' + set_outfile_encoding_idx(idx) -> bool + set encoding to be used when producing files + + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding + +Help on function set_refinfo in module ida_nalt: + +set_refinfo(*args) -> 'bool' + set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t + +Help on function set_refinfo_ex in module ida_nalt: + +set_refinfo_ex(*args) -> 'bool' + set_refinfo_ex(ea, n, ri) -> bool + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * + +Help on function set_retfp in module ida_nalt: + +set_retfp(*args) -> 'void' + set_retfp(ea) + + @param ea: ea_t + +Help on function set_root_filename in module ida_nalt: + +set_root_filename(*args) -> 'void' + set_root_filename(file) + Set full path of the input file. + + @param file: (C++: const char *) char const * + +Help on function set_source_linnum in module ida_nalt: + +set_source_linnum(*args) -> 'void' + set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t + +Help on function set_srcdbg_paths in module ida_nalt: + +set_srcdbg_paths(*args) -> 'void' + set_srcdbg_paths(paths) + Set source debug paths. + + @param paths: (C++: const char *) char const * + +Help on function set_srcdbg_undesired_paths in module ida_nalt: + +set_srcdbg_undesired_paths(*args) -> 'void' + set_srcdbg_undesired_paths(paths) + Set user-closed source files. + + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) -> 'int32' + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) + +Help on function set_str_type in module ida_nalt: + +set_str_type(*args) -> 'void' + set_str_type(ea, x) + + @param ea: ea_t + @param x: uint32 + +Help on function set_switch_info in module ida_nalt: + +set_switch_info(*args) -> 'void' + set_switch_info(ea, _in) + + @param ea: ea_t + @param in: switch_info_t const & + +Help on function set_switch_parent in module ida_nalt: + +set_switch_parent(*args) -> 'void' + set_switch_parent(ea, x) + + @param ea: ea_t + @param x: ea_t + +Help on function set_terse_struc in module ida_nalt: + +set_terse_struc(*args) -> 'void' + set_terse_struc(ea) + + @param ea: ea_t + +Help on function set_tilcmt in module ida_nalt: + +set_tilcmt(*args) -> 'void' + set_tilcmt(ea) + + @param ea: ea_t + +Help on function set_tinfo in module ida_nalt: + +set_tinfo(*args) -> 'bool' + set_tinfo(ea, tif) -> bool + + @param ea: ea_t + @param tif: tinfo_t const * + +Help on function set_type_determined_by_hexrays in module ida_nalt: + +set_type_determined_by_hexrays(*args) -> 'void' + set_type_determined_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_type_guessed_by_ida in module ida_nalt: + +set_type_guessed_by_ida(*args) -> 'void' + set_type_guessed_by_ida(ea) + + @param ea: ea_t + +Help on function set_usemodsp in module ida_nalt: + +set_usemodsp(*args) -> 'void' + set_usemodsp(ea) + + @param ea: ea_t + +Help on function set_usersp in module ida_nalt: + +set_usersp(*args) -> 'void' + set_usersp(ea) + + @param ea: ea_t + +Help on function set_userti in module ida_nalt: + +set_userti(*args) -> 'void' + set_userti(ea) + + @param ea: ea_t + +Help on function set_visible_item in module ida_nalt: + +set_visible_item(*args) -> 'void' + set_visible_item(ea, visible) + Change visibility of item at given ea. + + @param ea: (C++: ea_t) + @param visible: (C++: bool) + +Help on function set_zstroff in module ida_nalt: + +set_zstroff(*args) -> 'void' + set_zstroff(ea) + + @param ea: ea_t + +Help on class strpath_ids_array in module ida_nalt: + +class strpath_ids_array(builtins.object) + | Proxy of C++ wrapped_array_t< tid_t,32 > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> strpath_ids_array + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_strpath_ids_array(...) + | delete_strpath_ids_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class strpath_t in module ida_nalt: + +class strpath_t(builtins.object) + | Proxy of C++ strpath_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> strpath_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_strpath_t(...) + | delete_strpath_t(self) + | + | _strpath_t__getIds = __getIds(self, *args) -> 'wrapped_array_t< tid_t,32 >' + | __getIds(self) -> strpath_ids_array + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | delta + | delta + | + | ids + | __getIds(self) -> strpath_ids_array + | + | len + | len + | + | thisown + | The membership flag + +Help on class switch_info_t in module ida_nalt: + +class switch_info_t(builtins.object) + | Proxy of C++ switch_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> switch_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_switch_info_t(...) + | delete_switch_info_t(self) + | + | _get_values_lowcase(self, *args) -> 'ea_t' + | _get_values_lowcase(self) -> ea_t + | + | _set_values_lowcase(self, *args) -> 'void' + | _set_values_lowcase(self, values) + | + | Parameters + | ---------- + | values: ea_t + | + | assign(self, *args) -> 'void' + | assign(self, other) + | + | @param other: switch_info_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | + | get_jrange_vrange(self, *args) -> 'bool' + | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | get separate parts of the switch + | + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) + | + | get_jtable_element_size(self, *args) -> 'int' + | get_jtable_element_size(self) -> int + | + | get_jtable_size(self, *args) -> 'int' + | get_jtable_size(self) -> int + | + | get_lowcase(self, *args) -> 'sval_t' + | get_lowcase(self) -> sval_t + | + | get_shift(self, *args) -> 'int' + | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. + | + | get_version(self, *args) -> 'int' + | get_version(self) -> int + | + | get_vtable_element_size(self, *args) -> 'int' + | get_vtable_element_size(self) -> int + | + | has_default(self, *args) -> 'bool' + | has_default(self) -> bool + | + | has_elbase(self, *args) -> 'bool' + | has_elbase(self) -> bool + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | + | is_indirect(self, *args) -> 'bool' + | is_indirect(self) -> bool + | + | is_nolowcase(self, *args) -> 'bool' + | is_nolowcase(self) -> bool + | + | is_sparse(self, *args) -> 'bool' + | is_sparse(self) -> bool + | + | is_subtract(self, *args) -> 'bool' + | is_subtract(self) -> bool + | + | is_user_defined(self, *args) -> 'bool' + | is_user_defined(self) -> bool + | + | set_elbase(self, *args) -> 'void' + | set_elbase(self, base) + | + | @param base: ea_t + | + | set_expr(self, *args) -> 'void' + | set_expr(self, r, dt) + | + | @param r: int + | @param dt: op_dtype_t + | + | set_jtable_element_size(self, *args) -> 'void' + | set_jtable_element_size(self, size) + | + | @param size: int + | + | set_jtable_size(self, *args) -> 'void' + | set_jtable_size(self, size) + | + | @param size: int + | + | set_shift(self, *args) -> 'void' + | set_shift(self, shift) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) + | + | set_vtable_element_size(self, *args) -> 'void' + | set_vtable_element_size(self, size) + | + | @param size: int + | + | use_std_table(self, *args) -> 'bool' + | use_std_table(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | custom + | custom + | + | defjump + | defjump + | + | elbase + | elbase + | + | expr_ea + | expr_ea + | + | flags + | flags + | + | ind_lowcase + | ind_lowcase + | + | jcases + | jcases + | + | jumps + | jumps + | + | lowcase + | _get_values_lowcase(self) -> ea_t + | + | marks + | marks + | + | ncases + | ncases + | + | regdtype + | regdtype + | + | regnum + | regnum + | + | startea + | startea + | + | thisown + | The membership flag + | + | values + | _get_values_lowcase(self) -> ea_t + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | SWITCH_INFO_VERSION = 2 + +Help on function switch_info_t__from_ptrval__ in module ida_nalt: + +switch_info_t__from_ptrval__(*args) -> 'switch_info_t *' + switch_info_t__from_ptrval__(ptrval) -> switch_info_t + + @param ptrval: size_t + +Help on function unhide_border in module ida_nalt: + +unhide_border(*args) -> 'void' + unhide_border(ea) + + @param ea: ea_t + +Help on function unhide_item in module ida_nalt: + +unhide_item(*args) -> 'void' + unhide_item(ea) + + @param ea: ea_t + +Help on function upd_abits in module ida_nalt: + +upd_abits(*args) -> 'void' + upd_abits(ea, clr_bits, set_bits) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t + +Help on function uses_aflag_modsp in module ida_nalt: + +uses_aflag_modsp(*args) -> 'bool' + uses_aflag_modsp(flags) -> bool + + @param flags: aflags_t + +Help on function uses_modsp in module ida_nalt: + +uses_modsp(*args) -> 'bool' + uses_modsp(ea) -> bool + + @param ea: ea_t + +Help on function validate_idb_names in module ida_nalt: + +validate_idb_names(*args) -> 'int' + validate_idb_names(do_repair) -> int + + @param do_repair: bool + +Module "ida_name"s docstring: +""" +Functions that deal with names. + +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" + +Help on class NearestName in module ida_name: + +class NearestName(builtins.object) + | Utility class to help find the nearest name in a given ea/name dictionary + | + | Methods defined here: + | + | __getitem__(self, index) + | Returns the tupple (ea, name, index) + | + | __init__(self, ea_names) + | Initialize self. See help(type(self)) for accurate signature. + | + | __iter__(self) + | + | _get_item(self, index) + | + | find(self, ea) + | Returns a tupple (ea, name, pos) that is the nearest to the passed ea + | If no name is matched then None is returned + | + | update(self, ea_names) + | Updates the ea/names map + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function append_struct_fields in module ida_name: + +append_struct_fields(*args) -> 'qstring *, adiff_t *' + append_struct_fields(disp, n, path, flags, delta, appzero) -> str + Append names of struct fields to a name if the name is a struct name. + + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags64_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? + @return: flags of the innermost struct member or the input flags + +Help on function calc_gtn_flags in module ida_name: + +calc_gtn_flags(fromaddr, ea) + Calculate flags for get_ea_name() function + + @param fromaddr: the referring address. May be BADADDR. + @param ea: linear address + + @return: flags + +Help on function cleanup_name in module ida_name: + +cleanup_name(*args) -> 'qstring *' + cleanup_name(ea, name, flags=0) -> str + + @param ea: ea_t + @param name: char const * + @param flags: uint32 + +Help on function del_debug_names in module ida_name: + +del_debug_names(*args) -> 'void' + del_debug_names(ea1, ea2) + + @param ea1: ea_t + @param ea2: ea_t + +Help on function del_global_name in module ida_name: + +del_global_name(*args) -> 'bool' + del_global_name(ea) -> bool + + @param ea: ea_t + +Help on function del_local_name in module ida_name: + +del_local_name(*args) -> 'bool' + del_local_name(ea) -> bool + + @param ea: ea_t + +Help on function demangle_name in module ida_name: + +demangle_name(*args) -> 'qstring *' + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str + Demangle a name. + + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t + +Help on class ea_name_t in module ida_name: + +class ea_name_t(builtins.object) + | Proxy of C++ ea_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ea_name_t + | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ea_name_t(...) + | delete_ea_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | name + | name + | + | thisown + | The membership flag + +Help on class ea_name_vec_t in module ida_name: + +class ea_name_vec_t(builtins.object) + | Proxy of C++ qvector< ea_name_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'ea_name_t const &' + | __getitem__(self, i) -> ea_name_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> ea_name_vec_t + | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ea_name_t const & + | + | __swig_destroy__ = delete_ea_name_vec_t(...) + | delete_ea_name_vec_t(self) + | + | at(self, *args) -> 'ea_name_t const &' + | at(self, _idx) -> ea_name_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ea_name_t >::const_iterator' + | begin(self) -> ea_name_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ea_name_t >::const_iterator' + | end(self) -> ea_name_t + | + | erase(self, *args) -> 'qvector< ea_name_t >::iterator' + | erase(self, it) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | + | erase(self, first, last) -> ea_name_t + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator + | + | extract(self, *args) -> 'ea_name_t *' + | extract(self) -> ea_name_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ea_name_t()) + | + | @param x: ea_name_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ea_name_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ea_name_t >::iterator' + | insert(self, it, x) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ea_name_t &' + | push_back(self, x) + | + | @param x: ea_name_t const & + | + | push_back(self) -> ea_name_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ea_name_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ea_name_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function extract_name in module ida_name: + +extract_name(*args) -> 'qstring *' + extract_name(line, x) -> str + Extract a name or address from the specified string. + + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor + @return: -1 if cannot extract. otherwise length of the name + +Help on function force_name in module ida_name: + +force_name(*args) -> 'bool' + force_name(ea, name, flags=0) -> bool + + @param ea: ea_t + @param name: char const * + @param flags: int + +Help on function get_colored_demangled_name in module ida_name: + +get_colored_demangled_name(*args) -> 'qstring' + get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int + +Help on function get_colored_long_name in module ida_name: + +get_colored_long_name(*args) -> 'qstring' + get_colored_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_colored_name in module ida_name: + +get_colored_name(*args) -> 'qstring' + get_colored_name(ea) -> qstring + + @param ea: ea_t + +Help on function get_colored_short_name in module ida_name: + +get_colored_short_name(*args) -> 'qstring' + get_colored_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_cp_validity in module ida_name: + +get_cp_validity(*args) -> 'bool' + get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) + +Help on function get_debug_name in module ida_name: + +get_debug_name(*args) -> 'qstring *' + get_debug_name(ea_ptr, how) -> str + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t + +Help on function get_debug_name_ea in module ida_name: + +get_debug_name_ea(*args) -> 'ea_t' + get_debug_name_ea(name) -> ea_t + + @param name: char const * + +Help on function get_debug_names in module ida_name: + +get_debug_names(*args) -> 'PyObject *' + get_debug_names(names, ea1, ea2) + + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t + + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool + +Help on function get_demangled_name in module ida_name: + +get_demangled_name(*args) -> 'qstring' + get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int + +Help on function get_ea_name in module ida_name: + +get_ea_name(*args) -> 'qstring' + get_ea_name(ea, gtn_flags=0) -> qstring + Get name at the specified address. + + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits + @return: success + +Help on function get_long_name in module ida_name: + +get_long_name(*args) -> 'qstring' + get_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_mangled_name_type in module ida_name: + +get_mangled_name_type(*args) -> 'mangled_name_type_t' + get_mangled_name_type(name) -> mangled_name_type_t + + @param name: char const * + +Help on function get_name in module ida_name: + +get_name(*args) -> 'qstring' + get_name(ea) -> qstring + + @param ea: ea_t + +Help on function get_name_base_ea in module ida_name: + +get_name_base_ea(*args) -> 'ea_t' + get_name_base_ea(_from, to) -> ea_t + Get address of the name used in the expression for the address + + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address + @return: address of the name used to represent the operand + +Help on function get_name_color in module ida_name: + +get_name_color(*args) -> 'color_t' + get_name_color(_from, ea) -> color_t + Calculate flags for get_ea_name() function. + + Get name color. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address + +Help on function get_name_ea in module ida_name: + +get_name_ea(*args) -> 'ea_t' + get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. + + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR + +Help on function get_name_expr in module ida_name: + +get_name_expr(*args) -> 'qstring *' + get_name_expr(_from, n, ea, off, flags=0x0001) -> str + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. + + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. + +Help on function get_name_value in module ida_name: + +get_name_value(*args) -> 'uval_t *' + get_name_value(_from, name) -> int + Get value of the name. This function knows about: regular names, enums, special + segments, etc. + + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr + @return: Name value result codes + +Help on function get_nice_colored_name in module ida_name: + +get_nice_colored_name(*args) -> 'qstring *' + get_nice_colored_name(ea, flags=0) -> str + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset + + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags + @return: the length of the generated name in bytes. + +Help on function get_nlist_ea in module ida_name: + +get_nlist_ea(*args) -> 'ea_t' + get_nlist_ea(idx) -> ea_t + Get address from the list at 'idx'. + + @param idx: (C++: size_t) + +Help on function get_nlist_idx in module ida_name: + +get_nlist_idx(*args) -> 'size_t' + get_nlist_idx(ea) -> size_t + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. + + @param ea: (C++: ea_t) + +Help on function get_nlist_name in module ida_name: + +get_nlist_name(*args) -> 'char const *' + get_nlist_name(idx) -> char const * + Get name using idx. + + @param idx: (C++: size_t) + +Help on function get_nlist_size in module ida_name: + +get_nlist_size(*args) -> 'size_t' + get_nlist_size() -> size_t + Get number of names in the list. + +Help on function get_short_name in module ida_name: + +get_short_name(*args) -> 'qstring' + get_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_visible_name in module ida_name: + +get_visible_name(*args) -> 'qstring' + get_visible_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function hide_name in module ida_name: + +hide_name(*args) -> 'void' + hide_name(ea) + Remove name from the list of names + + @param ea: (C++: ea_t) address of the name + +Help on function is_ident in module ida_name: + +is_ident(*args) -> 'bool' + is_ident(name) -> bool + Is a valid name? (including ::MangleChars) + + @param name: (C++: const char *) char const * + +Help on function is_ident_cp in module ida_name: + +is_ident_cp(*args) -> 'bool' + is_ident_cp(cp) -> bool + Can a character appear in a name? (present in ::NameChars or ::MangleChars) + + @param cp: (C++: wchar32_t) + +Help on function is_in_nlist in module ida_name: + +is_in_nlist(*args) -> 'bool' + is_in_nlist(ea) -> bool + Is the name included into the name list? + + @param ea: (C++: ea_t) + +Help on function is_name_defined_locally in module ida_name: + +is_name_defined_locally(*args) -> 'bool' + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool + Is the name defined locally in the specified function? + + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) + @return: true if the name has been defined + +Help on function is_public_name in module ida_name: + +is_public_name(*args) -> 'bool' + is_public_name(ea) -> bool + + @param ea: ea_t + +Help on function is_strlit_cp in module ida_name: + +is_strlit_cp(*args) -> 'bool' + is_strlit_cp(cp, specific_ranges=None) -> bool + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) + + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * + +Help on function is_uname in module ida_name: + +is_uname(*args) -> 'bool' + is_uname(name) -> bool + Is valid user-specified name? (valid name & !dummy prefix). + + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no + +Help on function is_valid_cp in module ida_name: + +is_valid_cp(*args) -> 'bool' + is_valid_cp(cp, kind, data=None) -> bool + Is the given codepoint acceptable in the given context? + + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) + +Help on function is_valid_typename in module ida_name: + +is_valid_typename(*args) -> 'bool' + is_valid_typename(name) -> bool + Is valid type name? + + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no + +Help on function is_visible_cp in module ida_name: + +is_visible_cp(*args) -> 'bool' + is_visible_cp(cp) -> bool + Can a character be displayed in a name? (present in ::NameChars) + + @param cp: (C++: wchar32_t) + +Help on function is_weak_name in module ida_name: + +is_weak_name(*args) -> 'bool' + is_weak_name(ea) -> bool + + @param ea: ea_t + +Help on function make_name_auto in module ida_name: + +make_name_auto(*args) -> 'bool' + make_name_auto(ea) -> bool + + @param ea: ea_t + +Help on function make_name_non_public in module ida_name: + +make_name_non_public(*args) -> 'void' + make_name_non_public(ea) + + @param ea: ea_t + +Help on function make_name_non_weak in module ida_name: + +make_name_non_weak(*args) -> 'void' + make_name_non_weak(ea) + + @param ea: ea_t + +Help on function make_name_public in module ida_name: + +make_name_public(*args) -> 'void' + make_name_public(ea) + + @param ea: ea_t + +Help on function make_name_user in module ida_name: + +make_name_user(*args) -> 'bool' + make_name_user(ea) -> bool + + @param ea: ea_t + +Help on function make_name_weak in module ida_name: + +make_name_weak(*args) -> 'void' + make_name_weak(ea) + + @param ea: ea_t + +Help on function rebuild_nlist in module ida_name: + +rebuild_nlist(*args) -> 'void' + rebuild_nlist() + Rebuild the name list. + +Help on function reorder_dummy_names in module ida_name: + +reorder_dummy_names(*args) -> 'void' + reorder_dummy_names() + Renumber dummy names. + +Help on function set_cp_validity in module ida_name: + +set_cp_validity(*args) -> 'void' + set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) + +Help on function set_debug_name in module ida_name: + +set_debug_name(*args) -> 'bool' + set_debug_name(ea, name) -> bool + + @param ea: ea_t + @param name: char const * + +Help on function set_dummy_name in module ida_name: + +set_dummy_name(*args) -> 'bool' + set_dummy_name(_from, ea) -> bool + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). + + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte + +Help on function set_name in module ida_name: + +set_name(*args) -> 'bool' + set_name(ea, name, flags=0) -> bool + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. + + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed + +Help on function show_name in module ida_name: + +show_name(*args) -> 'void' + show_name(ea) + Insert name to the list of names. + + @param ea: (C++: ea_t) + +Help on function validate_name in module ida_name: + +validate_name(*args) -> 'PyObject *' + validate_name(name, type, flags=0) -> PyObject * + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). + + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered + @return: success + +Module "ida_netnode"s docstring: +""" +Functions that provide the lowest level public interface to the database. +Namely, we use Btree. To learn more about BTree: + +\link{https://en.wikipedia.org/wiki/B-tree} + +We do not use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. + +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Initially there is a trivial +mapping of the linear addresses used in the program to netnodes (later this +mapping may be modified using ea2node and node2ea functions; this is used for +fast database rebasings). If we have additional information about an address +(for example, a comment is attached to it), this information is stored in the +corresponding netnode. See nalt.hpp to see how the kernel uses netnodes. Also, +some netnodes have no corresponding linear address (however, they still have an +id). They are used to store information not related to a particular address. + +Each netnode _may_ have the following attributes: + +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) + +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. + +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined + +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblob/getblob and other blob-related functions. + +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: + +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. + +Advanced info: + +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" + +Help on function exist in module ida_netnode: + +exist(*args) -> 'bool' + exist(n) -> bool + + @param n: netnode const & + +Help on class netnode in module ida_netnode: + +class netnode(builtins.object) + | Proxy of C++ netnode class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: netnode & + | + | __eq__(self, x) -> bool + | + | @param x: nodeidx_t + | + | __init__(self, *args) + | __init__(self, num=nodeidx_t(-1)) -> netnode + | + | @param num: nodeidx_t + | + | __init__(self, _name, namlen=0, do_create=False) -> netnode + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: netnode & + | + | __ne__(self, x) -> bool + | + | @param x: nodeidx_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_netnode(...) + | delete_netnode(self) + | + | altdel(self, *args) -> 'bool' + | altdel(self, alt, tag=atag) -> bool + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | altdel(self) -> bool + | + | altdel_all(self, *args) -> 'bool' + | altdel_all(self, tag=atag) -> bool + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success + | + | altdel_ea(self, *args) -> 'bool' + | altdel_ea(self, ea, tag=atag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | altdel_idx8(self, *args) -> 'bool' + | altdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar + | + | altfirst(self, *args) -> 'nodeidx_t' + | altfirst(self, tag=atag) -> nodeidx_t + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty + | + | altfirst_idx8(self, *args) -> 'nodeidx_t' + | altfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | altlast(self, *args) -> 'nodeidx_t' + | altlast(self, tag=atag) -> nodeidx_t + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty + | + | altlast_idx8(self, *args) -> 'nodeidx_t' + | altlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | altnext(self, *args) -> 'nodeidx_t' + | altnext(self, cur, tag=atag) -> nodeidx_t + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist + | + | altnext_idx8(self, *args) -> 'nodeidx_t' + | altnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | altprev(self, *args) -> 'nodeidx_t' + | altprev(self, cur, tag=atag) -> nodeidx_t + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist + | + | altprev_idx8(self, *args) -> 'nodeidx_t' + | altprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | altset(self, *args) -> 'bool' + | altset(self, alt, value, tag=atag) -> bool + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur + | + | altset_ea(self, *args) -> 'bool' + | altset_ea(self, ea, value, tag=atag) -> bool + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar + | + | altset_idx8(self, *args) -> 'bool' + | altset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar + | + | altshift(self, *args) -> 'size_t' + | altshift(self, _from, to, size, tag=atag) -> size_t + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements + | + | altval(self, *args) -> 'nodeidx_t' + | altval(self, alt, tag=atag) -> nodeidx_t + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes + | + | altval_ea(self, *args) -> 'nodeidx_t' + | altval_ea(self, ea, tag=atag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar + | + | altval_idx8(self, *args) -> 'nodeidx_t' + | altval_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | blobsize(self, *args) -> 'size_t' + | blobsize(self, _start, tag) -> size_t + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob + | + | blobsize_ea(self, *args) -> 'size_t' + | blobsize_ea(self, ea, tag) -> size_t + | + | @param ea: ea_t + | @param tag: uchar + | + | chardel(self, *args) -> 'bool' + | chardel(self, alt, tag) -> bool + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | chardel_ea(self, *args) -> 'bool' + | chardel_ea(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | chardel_idx8(self, *args) -> 'bool' + | chardel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar + | + | charfirst(self, *args) -> 'nodeidx_t' + | charfirst(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charfirst_idx8(self, *args) -> 'nodeidx_t' + | charfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charlast(self, *args) -> 'nodeidx_t' + | charlast(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charlast_idx8(self, *args) -> 'nodeidx_t' + | charlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charnext(self, *args) -> 'nodeidx_t' + | charnext(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar + | + | charnext_idx8(self, *args) -> 'nodeidx_t' + | charnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | charprev(self, *args) -> 'nodeidx_t' + | charprev(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar + | + | charprev_idx8(self, *args) -> 'nodeidx_t' + | charprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | charset(self, *args) -> 'bool' + | charset(self, alt, val, tag) -> bool + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar + | + | charset_ea(self, *args) -> 'bool' + | charset_ea(self, ea, val, tag) -> bool + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar + | + | charset_idx8(self, *args) -> 'bool' + | charset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar + | + | charshift(self, *args) -> 'size_t' + | charshift(self, _from, to, size, tag) -> size_t + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar + | + | charval(self, *args) -> 'uchar' + | charval(self, alt, tag) -> uchar + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | charval_ea(self, *args) -> 'uchar' + | charval_ea(self, ea, tag) -> uchar + | + | @param ea: ea_t + | @param tag: uchar + | + | charval_idx8(self, *args) -> 'uchar' + | charval_idx8(self, alt, tag) -> uchar + | + | @param alt: uchar + | @param tag: uchar + | + | copyto(self, *args) -> 'size_t' + | copyto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t + | + | create(self, *args) -> 'bool' + | create(self, _name, namlen=0) -> bool + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | + | create(self) -> bool + | + | delblob(self, *args) -> 'int' + | delblob(self, _start, tag) -> int + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals + | + | delblob_ea(self, *args) -> 'int' + | delblob_ea(self, ea, tag) -> int + | + | @param ea: ea_t + | @param tag: uchar + | + | delvalue(self, *args) -> 'bool' + | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error + | + | eadel(self, *args) -> 'bool' + | eadel(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | eadel_idx8(self, *args) -> 'bool' + | eadel_idx8(self, idx, tag) -> bool + | + | @param idx: uchar + | @param tag: uchar + | + | eaget(self, *args) -> 'ea_t' + | eaget(self, ea, tag) -> ea_t + | + | @param ea: ea_t + | @param tag: uchar + | + | eaget_idx(self, *args) -> 'ea_t' + | eaget_idx(self, idx, tag) -> ea_t + | + | @param idx: nodeidx_t + | @param tag: uchar + | + | eaget_idx8(self, *args) -> 'ea_t' + | eaget_idx8(self, idx, tag) -> ea_t + | + | @param idx: uchar + | @param tag: uchar + | + | easet(self, *args) -> 'bool' + | easet(self, ea, addr, tag) -> bool + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) + | + | easet_idx(self, *args) -> 'bool' + | easet_idx(self, idx, addr, tag) -> bool + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar + | + | easet_idx8(self, *args) -> 'bool' + | easet_idx8(self, idx, addr, tag) -> bool + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar + | + | end(self, *args) -> 'bool' + | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty + | + | get_name(self, *args) -> 'ssize_t' + | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length + | + | getblob(self, *args) -> 'PyObject *' + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise + | + | getblob_ea(self, *args) -> 'PyObject *' + | getblob_ea(self, ea, tag) -> PyObject * + | + | @param ea: ea_t + | @param tag: char + | + | getclob(self, *args) -> 'PyObject *' + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char + | + | hashdel(self, *args) -> 'bool' + | hashdel(self, idx, tag=htag) -> bool + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist + | + | hashdel_all(self, *args) -> 'bool' + | hashdel_all(self, tag=htag) -> bool + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success + | + | hashfirst(self, *args) -> 'ssize_t' + | hashfirst(self, tag=htag) -> ssize_t + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) + | + | hashlast(self, *args) -> 'ssize_t' + | hashlast(self, tag=htag) -> ssize_t + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) + | + | hashnext(self, *args) -> 'ssize_t' + | hashnext(self, idx, tag=htag) -> ssize_t + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) + | + | hashprev(self, *args) -> 'ssize_t' + | hashprev(self, idx, tag=htag) -> ssize_t + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) + | + | hashset(self, *args) -> 'bool' + | hashset(self, idx, value, tag=htag) -> bool + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error + | + | hashset_buf(self, *args) -> 'bool' + | hashset_buf(self, idx, py_str, tag=htag) -> bool + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char + | + | hashset_idx(self, *args) -> 'bool' + | hashset_idx(self, idx, value, tag=htag) -> bool + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar + | + | hashstr(self, *args) -> 'ssize_t' + | hashstr(self, idx, tag=htag) -> ssize_t + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) + | + | hashstr_buf(self, *args) -> 'PyObject *' + | hashstr_buf(self, idx, tag=htag) -> PyObject * + | + | @param idx: char const * + | @param tag: char + | + | hashval(self, *args) -> 'ssize_t' + | hashval(self, idx, tag=htag) -> ssize_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes + | + | hashval_long(self, *args) -> 'nodeidx_t' + | hashval_long(self, idx, tag=htag) -> nodeidx_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist + | + | index(self, *args) -> 'nodeidx_t' + | index(self) -> nodeidx_t + | + | kill(self, *args) -> 'void' + | kill(self) + | Delete a netnode with all information attached to it. + | + | long_value(self, *args) -> 'nodeidx_t' + | long_value(self) -> nodeidx_t + | + | lower_bound(self, *args) -> 'nodeidx_t' + | lower_bound(self, cur, tag=stag) -> nodeidx_t + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty + | + | lower_bound_ea(self, *args) -> 'nodeidx_t' + | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar + | + | lower_bound_idx8(self, *args) -> 'nodeidx_t' + | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | moveto(self, *args) -> 'size_t' + | moveto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t + | + | next(self, *args) -> 'bool' + | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes + | + | prev(self, *args) -> 'bool' + | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes + | + | rename(self, *args) -> 'bool' + | rename(self, newname, namlen=0) -> bool + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used + | + | set(self, *args) -> 'bool' + | set(self, value) -> bool + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok + | + | set_long(self, *args) -> 'bool' + | set_long(self, x) -> bool + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) + | + | setblob(self, *args) -> 'bool' + | setblob(self, buf, _start, tag) -> bool + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success + | + | setblob_ea(self, *args) -> 'bool' + | setblob_ea(self, buf, ea, tag) -> bool + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar + | + | start(self, *args) -> 'bool' + | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty + | + | supdel(self, *args) -> 'bool' + | supdel(self, alt, tag=stag) -> bool + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | supdel(self) -> bool + | + | supdel_all(self, *args) -> 'bool' + | supdel_all(self, tag) -> bool + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success + | + | supdel_ea(self, *args) -> 'bool' + | supdel_ea(self, ea, tag=stag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | supdel_idx8(self, *args) -> 'bool' + | supdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar + | + | supdel_range(self, *args) -> 'int' + | supdel_range(self, idx1, idx2, tag) -> int + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements + | + | supdel_range_idx8(self, *args) -> 'int' + | supdel_range_idx8(self, idx1, idx2, tag) -> int + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) + | + | supfirst(self, *args) -> 'nodeidx_t' + | supfirst(self, tag=stag) -> nodeidx_t + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty + | + | supfirst_idx8(self, *args) -> 'nodeidx_t' + | supfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | suplast(self, *args) -> 'nodeidx_t' + | suplast(self, tag=stag) -> nodeidx_t + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty + | + | suplast_idx8(self, *args) -> 'nodeidx_t' + | suplast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | supnext(self, *args) -> 'nodeidx_t' + | supnext(self, cur, tag=stag) -> nodeidx_t + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist + | + | supnext_idx8(self, *args) -> 'nodeidx_t' + | supnext_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | supprev(self, *args) -> 'nodeidx_t' + | supprev(self, cur, tag=stag) -> nodeidx_t + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist + | + | supprev_idx8(self, *args) -> 'nodeidx_t' + | supprev_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | supset(self, *args) -> 'bool' + | supset(self, alt, value, tag=stag) -> bool + | Set value of supval array element. + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error + | + | supset_ea(self, *args) -> 'bool' + | supset_ea(self, ea, value, tag=stag) -> bool + | + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar + | + | supset_idx8(self, *args) -> 'bool' + | supset_idx8(self, alt, value, tag) -> bool + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar + | + | supshift(self, *args) -> 'size_t' + | supshift(self, _from, to, size, tag=stag) -> size_t + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements + | + | supstr(self, *args) -> 'ssize_t' + | supstr(self, alt, tag=stag) -> ssize_t + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | + | supstr_ea(self, *args) -> 'ssize_t' + | supstr_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar + | + | supstr_idx8(self, *args) -> 'ssize_t' + | supstr_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar + | + | supval(self, *args) -> 'ssize_t' + | supval(self, alt, tag=stag) -> ssize_t + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist + | + | supval_ea(self, *args) -> 'ssize_t' + | supval_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar + | + | supval_idx8(self, *args) -> 'ssize_t' + | supval_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar + | + | valobj(self, *args) -> 'ssize_t' + | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present + | + | valstr(self, *args) -> 'ssize_t' + | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const + | + | value_exists(self, *args) -> 'bool' + | value_exists(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | exist(*args) -> 'bool' + | exist(_name) -> bool + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function netnode_exist in module ida_netnode: + +netnode_exist(*args) -> 'bool' + netnode_exist(_name) -> bool + + @param _name: char const * + +Module "ida_offset"s docstring: +""" +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + +Help on function add_refinfo_dref in module ida_offset: + +add_refinfo_dref(*args) -> 'ea_t' + add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. + + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction + @return: the target address of the reference + +Help on function calc_basevalue in module ida_offset: + +calc_basevalue(*args) -> 'ea_t' + calc_basevalue(target, base) -> ea_t + Calculate the value of the reference base. + + @param target: (C++: ea_t) + @param base: (C++: ea_t) + +Help on function calc_offset_base in module ida_offset: + +calc_offset_base(*args) -> 'ea_t' + calc_offset_base(ea, n) -> ea_t + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. + + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR + +Help on function calc_probable_base_by_value in module ida_offset: + +calc_probable_base_by_value(*args) -> 'ea_t' + calc_probable_base_by_value(ea, off) -> ea_t + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR + + @param ea: (C++: ea_t) + @param off: (C++: uval_t) + +Help on function calc_reference_data in module ida_offset: + +calc_reference_data(*args) -> 'bool' + calc_reference_data(target, base, _from, ri, opval) -> bool + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. + + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @return: success + +Help on function calc_target in module ida_offset: + +calc_target(*args) -> 'ea_t' + calc_target(_from, opval, ri) -> ea_t + Retrieves refinfo_t structure and calculates the target. + + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & + + calc_target(_from, ea, n, opval) -> ea_t + + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t + +Help on function can_be_off32 in module ida_offset: + +can_be_off32(*args) -> 'ea_t' + can_be_off32(ea) -> ea_t + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. + + @param ea: (C++: ea_t) + +Help on function get_default_reftype in module ida_offset: + +get_default_reftype(*args) -> 'reftype_t' + get_default_reftype(ea) -> reftype_t + Get default reference type depending on the segment. + + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 + +Help on function get_offbase in module ida_offset: + +get_offbase(*args) -> 'ea_t' + get_offbase(ea, n) -> ea_t + Get offset base value + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR + +Help on function get_offset_expr in module ida_offset: + +get_offset_expr(*args) -> 'qstring *' + get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + See get_offset_expression() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) + +Help on function get_offset_expression in module ida_offset: + +get_offset_expression(*args) -> 'qstring *' + get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array + + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression + +Help on function op_offset in module ida_offset: + +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) + +Help on function op_offset_ex in module ida_offset: + +op_offset_ex(*args) -> 'bool' + op_offset_ex(ea, n, ri) -> bool + Convert operand to a reference. To delete an offset, use clr_op_type() function. + + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information + @return: success + +Help on function op_plain_offset in module ida_offset: + +op_plain_offset(*args) -> 'bool' + op_plain_offset(ea, n, base) -> bool + Convert operand to a reference with the default reference type. + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" + +Help on class __qmutex_t in module ida_pro: + +class __qmutex_t(builtins.object) + | Proxy of C++ __qmutex_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qmutex_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qmutex_t(...) + | delete___qmutex_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __qsemaphore_t in module ida_pro: + +class __qsemaphore_t(builtins.object) + | Proxy of C++ __qsemaphore_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qsemaphore_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qsemaphore_t(...) + | delete___qsemaphore_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __qthread_t in module ida_pro: + +class __qthread_t(builtins.object) + | Proxy of C++ __qthread_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qthread_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qthread_t(...) + | delete___qthread_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class _qstrvec_t in module ida_pro: + +class _qstrvec_t(ida_idaapi.py_clinked_object_t) + | WARNING: It is very unlikely an IDAPython user should ever, ever + | have to use this type. It should only be used for IDAPython internals. + | + | For example, in py_askusingform.py, we ctypes-expose to the IDA + | kernel & UI a qstrvec instance, in case a DropdownListControl is + | constructed. + | That's because that's what ask_form expects, and we have no + | choice but to make a DropdownListControl hold a qstrvec_t. + | This is, afaict, the only situation where a Python + | _qstrvec_t is required. + | + | Method resolution order: + | _qstrvec_t + | ida_idaapi.py_clinked_object_t + | ida_idaapi.pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | __getitem__(self, idx) + | Gets the string at the given index + | + | __init__(self, items=None) + | Initialize self. See help(type(self)) for accurate signature. + | + | __setitem__(self, idx, s) + | Sets string at the given index + | + | _create_clink(self) + | Overwrite me. + | Creates a new clink + | @return: PyCapsule representing the C link + | + | _del_clink(self, lnk) + | Overwrite me. + | This method deletes the link + | + | _get_clink_ptr(self) + | Overwrite me. + | Returns the C link pointer as a 64bit number + | + | _qstrvec_t__get_size = __get_size(self) + | + | add(self, s) + | Add a string to the vector + | + | addressof(self, idx) + | Returns the address (as number) of the qstring at the given index + | + | assign(self, other) + | Copies the contents of 'other' to 'self' + | + | clear(self, qclear=False) + | Clears all strings from the vector. + | @param qclear: Just reset the size but do not actually free the memory + | + | from_list(self, lst) + | Populates the vector from a Python string list + | + | insert(self, idx, s) + | Insert a string into the vector + | + | remove(self, idx) + | Removes a string from the vector + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | size + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_idaapi.py_clinked_object_t: + | + | __del__(self) + | Delete the link upon object destruction (only if not static) + | + | _free(self) + | Explicitly delete the link (only if not static) + | + | copy(self) + | Returns a new copy of this class + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.py_clinked_object_t: + | + | clink + | + | clink_ptr + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on class boolvec_t in module ida_pro: + +class boolvec_t(builtins.object) + | Proxy of C++ qvector< bool > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< bool > const & + | + | __getitem__(self, *args) -> 'bool const &' + | __getitem__(self, i) -> bool const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> boolvec_t + | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< bool > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bool const & + | + | __swig_destroy__ = delete_boolvec_t(...) + | delete_boolvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bool const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: bool const & + | + | append = push_back(self, *args) -> 'bool &' + | + | at = __getitem__(self, *args) -> 'bool const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< bool >::const_iterator' + | begin(self) -> qvector< bool >::iterator + | begin(self) -> qvector< bool >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< bool >::const_iterator' + | end(self) -> qvector< bool >::iterator + | end(self) -> qvector< bool >::const_iterator + | + | erase(self, *args) -> 'qvector< bool >::iterator' + | erase(self, it) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | + | erase(self, first, last) -> qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator + | + | extract(self, *args) -> 'bool *' + | extract(self) -> bool * + | + | find(self, *args) -> 'qvector< bool >::const_iterator' + | find(self, x) -> qvector< bool >::iterator + | + | @param x: bool const & + | + | find(self, x) -> qvector< bool >::const_iterator + | + | @param x: bool const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=bool()) + | + | @param x: bool const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: bool const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: bool * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< bool >::iterator' + | insert(self, it, x) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | @param x: bool const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'bool &' + | push_back(self, x) + | + | @param x: bool const & + | + | push_back(self) -> bool & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bool const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< bool > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class channel_redir_t in module ida_pro: + +class channel_redir_t(builtins.object) + | Proxy of C++ channel_redir_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> channel_redir_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_channel_redir_t(...) + | delete_channel_redir_t(self) + | + | is_append(self, *args) -> 'bool' + | is_append(self) -> bool + | + | is_input(self, *args) -> 'bool' + | is_input(self) -> bool + | + | is_output(self, *args) -> 'bool' + | is_output(self) -> bool + | + | is_quoted(self, *args) -> 'bool' + | is_quoted(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fd + | fd + | + | file + | file + | + | flags + | flags + | + | length + | length + | + | start + | start + | + | thisown + | The membership flag + +Help on function check_process_exit in module ida_pro: + +check_process_exit(*args) -> 'int' + check_process_exit(handle, exit_code, msecs=-1) -> int + Check whether process has terminated or not. + + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code + +Help on class ea_array in module ida_pro: + +class ea_array(builtins.object) + | Proxy of C++ ea_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'ea_t' + | __getitem__(self, index) -> ea_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> ea_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: ea_t + | + | __swig_destroy__ = delete_ea_array(...) + | delete_ea_array(self) + | + | cast(self, *args) -> 'ea_t *' + | cast(self) -> ea_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'ea_array *' + | frompointer(t) -> ea_array + | + | @param t: ea_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function ea_array_frompointer in module ida_pro: + +ea_array_frompointer(*args) -> 'ea_array *' + ea_array_frompointer(t) -> ea_array + + @param t: ea_t * + +Help on class ea_pointer in module ida_pro: + +class ea_pointer(builtins.object) + | Proxy of C++ ea_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ea_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ea_pointer(...) + | delete_ea_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: ea_t + | + | cast(self, *args) -> 'ea_t *' + | cast(self) -> ea_t * + | + | value(self, *args) -> 'ea_t' + | value(self) -> ea_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'ea_pointer *' + | frompointer(t) -> ea_pointer + | + | @param t: ea_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function ea_pointer_frompointer in module ida_pro: + +ea_pointer_frompointer(*args) -> 'ea_pointer *' + ea_pointer_frompointer(t) -> ea_pointer + + @param t: ea_t * + +Help on function extend_sign in module ida_pro: + +extend_sign(*args) -> 'uint64' + extend_sign(v, nbytes, sign_extend) -> uint64 + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. + + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) + +Help on class instant_dbgopts_t in module ida_pro: + +class instant_dbgopts_t(builtins.object) + | Proxy of C++ instant_dbgopts_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> instant_dbgopts_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_instant_dbgopts_t(...) + | delete_instant_dbgopts_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _pass + | _pass + | + | attach + | attach + | + | debmod + | debmod + | + | env + | env + | + | event_id + | event_id + | + | host + | host + | + | pid + | pid + | + | port + | port + | + | thisown + | The membership flag + +Help on class int64vec_t in module ida_pro: + +class int64vec_t(builtins.object) + | Proxy of C++ qvector< long long > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< long long > const & + | + | __getitem__(self, *args) -> 'long long const &' + | __getitem__(self, i) -> long long const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> int64vec_t + | __init__(self, x) -> int64vec_t + | + | @param x: qvector< long long > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< long long > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: long long const & + | + | __swig_destroy__ = delete_int64vec_t(...) + | delete_int64vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: long long const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: long long const & + | + | append = push_back(self, *args) -> 'long long &' + | + | at = __getitem__(self, *args) -> 'long long const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< long long >::const_iterator' + | begin(self) -> qvector< long long >::iterator + | begin(self) -> qvector< long long >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< long long >::const_iterator' + | end(self) -> qvector< long long >::iterator + | end(self) -> qvector< long long >::const_iterator + | + | erase(self, *args) -> 'qvector< long long >::iterator' + | erase(self, it) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | + | erase(self, first, last) -> qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator + | + | extract(self, *args) -> 'long long *' + | extract(self) -> long long * + | + | find(self, *args) -> 'qvector< long long >::const_iterator' + | find(self, x) -> qvector< long long >::iterator + | + | @param x: long long const & + | + | find(self, x) -> qvector< long long >::const_iterator + | + | @param x: long long const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: long long const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: long long * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< long long >::iterator' + | insert(self, it, x) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | @param x: long long const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'long long &' + | push_back(self, x) + | + | @param x: long long const & + | + | push_back(self) -> long long & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: long long const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< long long > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class int_pointer in module ida_pro: + +class int_pointer(builtins.object) + | Proxy of C++ int_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> int_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_int_pointer(...) + | delete_int_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: int + | + | cast(self, *args) -> 'int *' + | cast(self) -> int * + | + | value(self, *args) -> 'int' + | value(self) -> int + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'int_pointer *' + | frompointer(t) -> int_pointer + | + | @param t: int * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function int_pointer_frompointer in module ida_pro: + +int_pointer_frompointer(*args) -> 'int_pointer *' + int_pointer_frompointer(t) -> int_pointer + + @param t: int * + +Help on class intvec_t in module ida_pro: + +class intvec_t(builtins.object) + | Proxy of C++ qvector< int > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __getitem__(self, *args) -> 'int const &' + | __getitem__(self, i) -> int const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> intvec_t + | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & + | + | __swig_destroy__ = delete_intvec_t(...) + | delete_intvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: int const & + | + | append = push_back(self, *args) -> 'int &' + | + | at = __getitem__(self, *args) -> 'int const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< int >::const_iterator' + | begin(self) -> qvector< int >::iterator + | begin(self) -> qvector< int >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< int >::const_iterator' + | end(self) -> qvector< int >::iterator + | end(self) -> qvector< int >::const_iterator + | + | erase(self, *args) -> 'qvector< int >::iterator' + | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | + | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator + | + | extract(self, *args) -> 'int *' + | extract(self) -> int * + | + | find(self, *args) -> 'qvector< int >::const_iterator' + | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | + | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: int const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: int * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< int >::iterator' + | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'int &' + | push_back(self, x) + | + | @param x: int const & + | + | push_back(self) -> int & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< int > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function is_control_tty in module ida_pro: + +is_control_tty(*args) -> 'enum tty_control_t' + is_control_tty(fd) -> enum tty_control_t + Check if the current process is the owner of the TTY specified by 'fd' + (typically an opened descriptor to /dev/tty). + + @param fd: (C++: int) + +Help on function is_main_thread in module ida_pro: + +is_main_thread(*args) -> 'bool' + is_main_thread() -> bool + Are we running in the main thread? + +Help on function log2ceil in module ida_pro: + +log2ceil(*args) -> 'int' + log2ceil(d64) -> int + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 + + @param d64: (C++: uint64) + +Help on function log2floor in module ida_pro: + +log2floor(*args) -> 'int' + log2floor(d64) -> int + + @param d64: uint64 + +Help on function parse_dbgopts in module ida_pro: + +parse_dbgopts(*args) -> 'bool' + parse_dbgopts(ido, r_switch) -> bool + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ + + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * + @return: true-ok, false-parse error + +Help on function qatoll in module ida_pro: + +qatoll(*args) -> 'int64' + qatoll(nptr) -> int64 + + @param nptr: char const * + +Help on function qcontrol_tty in module ida_pro: + +qcontrol_tty(*args) -> 'void' + qcontrol_tty() + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty + +Help on function qdetach_tty in module ida_pro: + +qdetach_tty(*args) -> 'void' + qdetach_tty() + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty + +Help on function qexit in module ida_pro: + +qexit(*args) -> 'void' + qexit(code) + Call qatexit functions, shut down UI and kernel, and exit. + + @param code: (C++: int) exit code + +Help on class qmutex_locker_t in module ida_pro: + +class qmutex_locker_t(builtins.object) + | Proxy of C++ qmutex_locker_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _lock) -> qmutex_locker_t + | + | @param _lock: qmutex_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qmutex_locker_t(...) + | delete_qmutex_locker_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class qrefcnt_obj_t in module ida_pro: + +class qrefcnt_obj_t(builtins.object) + | Proxy of C++ qrefcnt_obj_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qrefcnt_obj_t(...) + | delete_qrefcnt_obj_t(self) + | + | release(self, *args) -> 'void' + | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | refcnt + | refcnt + | + | thisown + | The membership flag + +Help on function qstrvec_t_add in module ida_pro: + +qstrvec_t_add(*args) -> 'bool' + qstrvec_t_add(_self, s) -> bool + + @param self: PyObject * + @param s: char const * + +Help on function qstrvec_t_addressof in module ida_pro: + +qstrvec_t_addressof(*args) -> 'PyObject *' + qstrvec_t_addressof(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t + +Help on function qstrvec_t_assign in module ida_pro: + +qstrvec_t_assign(*args) -> 'bool' + qstrvec_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * + +Help on function qstrvec_t_clear in module ida_pro: + +qstrvec_t_clear(*args) -> 'bool' + qstrvec_t_clear(_self, qclear) -> bool + + @param self: PyObject * + @param qclear: bool + +Help on function qstrvec_t_create in module ida_pro: + +qstrvec_t_create(*args) -> 'PyObject *' + qstrvec_t_create() -> PyObject * + +Help on function qstrvec_t_destroy in module ida_pro: + +qstrvec_t_destroy(*args) -> 'bool' + qstrvec_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * + +Help on function qstrvec_t_from_list in module ida_pro: + +qstrvec_t_from_list(*args) -> 'bool' + qstrvec_t_from_list(_self, py_list) -> bool + + @param self: PyObject * + @param py_list: PyObject * + +Help on function qstrvec_t_get in module ida_pro: + +qstrvec_t_get(*args) -> 'PyObject *' + qstrvec_t_get(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t + +Help on function qstrvec_t_get_clink in module ida_pro: + +qstrvec_t_get_clink(*args) -> 'qstrvec_t *' + qstrvec_t_get_clink(_self) -> qstrvec_t * + + @param self: PyObject * + +Help on function qstrvec_t_get_clink_ptr in module ida_pro: + +qstrvec_t_get_clink_ptr(*args) -> 'PyObject *' + qstrvec_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * + +Help on function qstrvec_t_insert in module ida_pro: + +qstrvec_t_insert(*args) -> 'bool' + qstrvec_t_insert(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * + +Help on function qstrvec_t_remove in module ida_pro: + +qstrvec_t_remove(*args) -> 'bool' + qstrvec_t_remove(_self, idx) -> bool + + @param self: PyObject * + @param idx: size_t + +Help on function qstrvec_t_set in module ida_pro: + +qstrvec_t_set(*args) -> 'bool' + qstrvec_t_set(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * + +Help on function qstrvec_t_size in module ida_pro: + +qstrvec_t_size(*args) -> 'size_t' + qstrvec_t_size(_self) -> size_t + + @param self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) -> 'bool' + qthread_equal(q1, q2) -> bool + Are two threads equal? + + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) + +Help on function quote_cmdline_arg in module ida_pro: + +quote_cmdline_arg(*args) -> 'bool' + quote_cmdline_arg(arg) -> bool + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell + + @param arg: (C++: qstring *) + @return: true: modified 'arg' + +Help on function qvector_reserve in module ida_pro: + +qvector_reserve(*args) -> 'void *' + qvector_reserve(vec, old, cnt, elsize) -> void * + Change capacity of given qvector. + + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element + @return: a pointer to the newly allocated array + +Help on function readbytes in module ida_pro: + +readbytes(*args) -> 'int' + readbytes(h, res, size, mf) -> int + Read at most 4 bytes from file. + + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise + +Help on function reloc_value in module ida_pro: + +reloc_value(*args) -> 'void' + reloc_value(value, size, delta, mf) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool + +Help on function relocate_relobj in module ida_pro: + +relocate_relobj(*args) -> 'bool' + relocate_relobj(_relobj, ea, mf) -> bool + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool + +Help on class sel_array in module ida_pro: + +class sel_array(builtins.object) + | Proxy of C++ sel_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'sel_t' + | __getitem__(self, index) -> sel_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> sel_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: sel_t + | + | __swig_destroy__ = delete_sel_array(...) + | delete_sel_array(self) + | + | cast(self, *args) -> 'sel_t *' + | cast(self) -> sel_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'sel_array *' + | frompointer(t) -> sel_array + | + | @param t: sel_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function sel_array_frompointer in module ida_pro: + +sel_array_frompointer(*args) -> 'sel_array *' + sel_array_frompointer(t) -> sel_array + + @param t: sel_t * + +Help on class sel_pointer in module ida_pro: + +class sel_pointer(builtins.object) + | Proxy of C++ sel_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> sel_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sel_pointer(...) + | delete_sel_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: sel_t + | + | cast(self, *args) -> 'sel_t *' + | cast(self) -> sel_t * + | + | value(self, *args) -> 'sel_t' + | value(self) -> sel_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'sel_pointer *' + | frompointer(t) -> sel_pointer + | + | @param t: sel_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function sel_pointer_frompointer in module ida_pro: + +sel_pointer_frompointer(*args) -> 'sel_pointer *' + sel_pointer_frompointer(t) -> sel_pointer + + @param t: sel_t * + +Help on class sizevec_t in module ida_pro: + +class sizevec_t(builtins.object) + | Proxy of C++ qvector< size_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< size_t > const & + | + | __getitem__(self, *args) -> 'size_t const &' + | __getitem__(self, i) -> size_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sizevec_t + | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< size_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: size_t const & + | + | __swig_destroy__ = delete_sizevec_t(...) + | delete_sizevec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: size_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: size_t const & + | + | at(self, *args) -> 'size_t const &' + | at(self, _idx) -> size_t const & + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< size_t >::const_iterator' + | begin(self) -> qvector< size_t >::iterator + | begin(self) -> qvector< size_t >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< size_t >::const_iterator' + | end(self) -> qvector< size_t >::iterator + | end(self) -> qvector< size_t >::const_iterator + | + | erase(self, *args) -> 'qvector< size_t >::iterator' + | erase(self, it) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | + | erase(self, first, last) -> qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator + | + | extract(self, *args) -> 'size_t *' + | extract(self) -> size_t * + | + | find(self, *args) -> 'qvector< size_t >::const_iterator' + | find(self, x) -> qvector< size_t >::iterator + | + | @param x: size_t const & + | + | find(self, x) -> qvector< size_t >::const_iterator + | + | @param x: size_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=size_t()) + | + | @param x: size_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: size_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: size_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< size_t >::iterator' + | insert(self, it, x) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'size_t &' + | push_back(self, x) + | + | @param x: size_t const & + | + | push_back(self) -> size_t & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: size_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< size_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function str2user in module ida_pro: + +str2user(*args) -> 'PyObject *' + str2user(str) -> str or None + Insert C-style escape characters to string + + @param str: char const * + @return: new string with escape characters inserted + +Help on class strvec_t in module ida_pro: + +class strvec_t(builtins.object) + | Proxy of C++ qvector< simpleline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'simpleline_t const &' + | __getitem__(self, i) -> simpleline_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> strvec_t + | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: simpleline_t const & + | + | __swig_destroy__ = delete_strvec_t(...) + | delete_strvec_t(self) + | + | append = push_back(self, *args) -> 'simpleline_t &' + | + | at = __getitem__(self, *args) -> 'simpleline_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< simpleline_t >::const_iterator' + | begin(self) -> qvector< simpleline_t >::iterator + | begin(self) -> qvector< simpleline_t >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< simpleline_t >::const_iterator' + | end(self) -> qvector< simpleline_t >::iterator + | end(self) -> qvector< simpleline_t >::const_iterator + | + | erase(self, *args) -> 'qvector< simpleline_t >::iterator' + | erase(self, it) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | + | erase(self, first, last) -> qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator + | + | extract(self, *args) -> 'simpleline_t *' + | extract(self) -> simpleline_t * + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=simpleline_t()) + | + | @param x: simpleline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: simpleline_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< simpleline_t >::iterator' + | insert(self, it, x) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'simpleline_t &' + | push_back(self, x) + | + | @param x: simpleline_t const & + | + | push_back(self) -> simpleline_t & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: simpleline_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< simpleline_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class sval_pointer in module ida_pro: + +class sval_pointer(builtins.object) + | Proxy of C++ sval_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> sval_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sval_pointer(...) + | delete_sval_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: sval_t + | + | cast(self, *args) -> 'sval_t *' + | cast(self) -> sval_t * + | + | value(self, *args) -> 'sval_t' + | value(self) -> sval_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'sval_pointer *' + | frompointer(t) -> sval_pointer + | + | @param t: sval_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function sval_pointer_frompointer in module ida_pro: + +sval_pointer_frompointer(*args) -> 'sval_pointer *' + sval_pointer_frompointer(t) -> sval_pointer + + @param t: sval_t * + +Help on class tid_array in module ida_pro: + +class tid_array(builtins.object) + | Proxy of C++ tid_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'tid_t' + | __getitem__(self, index) -> tid_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> tid_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: tid_t + | + | __swig_destroy__ = delete_tid_array(...) + | delete_tid_array(self) + | + | cast(self, *args) -> 'tid_t *' + | cast(self) -> tid_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'tid_array *' + | frompointer(t) -> tid_array + | + | @param t: tid_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function tid_array_frompointer in module ida_pro: + +tid_array_frompointer(*args) -> 'tid_array *' + tid_array_frompointer(t) -> tid_array + + @param t: tid_t * + +Help on class uchar_array in module ida_pro: + +class uchar_array(builtins.object) + | Proxy of C++ uchar_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'uchar' + | __getitem__(self, index) -> uchar + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> uchar_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uchar + | + | __swig_destroy__ = delete_uchar_array(...) + | delete_uchar_array(self) + | + | cast(self, *args) -> 'uchar *' + | cast(self) -> uchar * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'uchar_array *' + | frompointer(t) -> uchar_array + | + | @param t: uchar * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function uchar_array_frompointer in module ida_pro: + +uchar_array_frompointer(*args) -> 'uchar_array *' + uchar_array_frompointer(t) -> uchar_array + + @param t: uchar * + +Help on class uint64vec_t in module ida_pro: + +class uint64vec_t(builtins.object) + | Proxy of C++ qvector< unsigned long long > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & + | + | __getitem__(self, *args) -> 'unsigned long long const &' + | __getitem__(self, i) -> unsigned long long const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> uint64vec_t + | __init__(self, x) -> uint64vec_t + | + | @param x: qvector< unsigned long long > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned long long const & + | + | __swig_destroy__ = delete_uint64vec_t(...) + | delete_uint64vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned long long const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: unsigned long long const & + | + | append = push_back(self, *args) -> 'unsigned long long &' + | + | at = __getitem__(self, *args) -> 'unsigned long long const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< unsigned long long >::const_iterator' + | begin(self) -> qvector< unsigned long long >::iterator + | begin(self) -> qvector< unsigned long long >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< unsigned long long >::const_iterator' + | end(self) -> qvector< unsigned long long >::iterator + | end(self) -> qvector< unsigned long long >::const_iterator + | + | erase(self, *args) -> 'qvector< unsigned long long >::iterator' + | erase(self, it) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | + | erase(self, first, last) -> qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator + | + | extract(self, *args) -> 'unsigned long long *' + | extract(self) -> unsigned long long * + | + | find(self, *args) -> 'qvector< unsigned long long >::const_iterator' + | find(self, x) -> qvector< unsigned long long >::iterator + | + | @param x: unsigned long long const & + | + | find(self, x) -> qvector< unsigned long long >::const_iterator + | + | @param x: unsigned long long const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: unsigned long long const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: unsigned long long * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< unsigned long long >::iterator' + | insert(self, it, x) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'unsigned long long &' + | push_back(self, x) + | + | @param x: unsigned long long const & + | + | push_back(self) -> unsigned long long & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned long long const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< unsigned long long > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class uintvec_t in module ida_pro: + +class uintvec_t(builtins.object) + | Proxy of C++ qvector< unsigned int > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & + | + | __getitem__(self, *args) -> 'unsigned int const &' + | __getitem__(self, i) -> unsigned int const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> uintvec_t + | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned int const & + | + | __swig_destroy__ = delete_uintvec_t(...) + | delete_uintvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned int const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: unsigned int const & + | + | append = push_back(self, *args) -> 'unsigned int &' + | + | at = __getitem__(self, *args) -> 'unsigned int const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< unsigned int >::const_iterator' + | begin(self) -> qvector< unsigned int >::iterator + | begin(self) -> qvector< unsigned int >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< unsigned int >::const_iterator' + | end(self) -> qvector< unsigned int >::iterator + | end(self) -> qvector< unsigned int >::const_iterator + | + | erase(self, *args) -> 'qvector< unsigned int >::iterator' + | erase(self, it) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | + | erase(self, first, last) -> qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator + | + | extract(self, *args) -> 'unsigned int *' + | extract(self) -> unsigned int * + | + | find(self, *args) -> 'qvector< unsigned int >::const_iterator' + | find(self, x) -> qvector< unsigned int >::iterator + | + | @param x: unsigned int const & + | + | find(self, x) -> qvector< unsigned int >::const_iterator + | + | @param x: unsigned int const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: unsigned int const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: unsigned int * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< unsigned int >::iterator' + | insert(self, it, x) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'unsigned int &' + | push_back(self, x) + | + | @param x: unsigned int const & + | + | push_back(self) -> unsigned int & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned int const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< unsigned int > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class uval_array in module ida_pro: + +class uval_array(builtins.object) + | Proxy of C++ uval_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'uval_t' + | __getitem__(self, index) -> uval_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> uval_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uval_t + | + | __swig_destroy__ = delete_uval_array(...) + | delete_uval_array(self) + | + | cast(self, *args) -> 'uval_t *' + | cast(self) -> uval_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'uval_array *' + | frompointer(t) -> uval_array + | + | @param t: uval_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function uval_array_frompointer in module ida_pro: + +uval_array_frompointer(*args) -> 'uval_array *' + uval_array_frompointer(t) -> uval_array + + @param t: uval_t * + +Help on function writebytes in module ida_pro: + +writebytes(*args) -> 'int' + writebytes(h, l, size, mf) -> int + Write at most 4 bytes to file. + + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise + +Module "ida_problems"s docstring: +""" +Functions that deal with the list of problems. + +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. + +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. + +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" + +Help on function forget_problem in module ida_problems: + +forget_problem(*args) -> 'bool' + forget_problem(type, ea) -> bool + Remove an address from a problem list + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @return: success + +Help on function get_problem in module ida_problems: + +get_problem(*args) -> 'ea_t' + get_problem(type, lowea) -> ea_t + Get an address from the specified problem list. The address is not removed from + the list. + + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR + +Help on function get_problem_desc in module ida_problems: + +get_problem_desc(*args) -> 'qstring *' + get_problem_desc(t, ea) -> str + Get the human-friendly description of the problem, if one was provided to + remember_problem. + + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. + @return: the message length or -1 if none + +Help on function get_problem_name in module ida_problems: + +get_problem_name(*args) -> 'char const *' + get_problem_name(type, longname=True) -> char const * + Get problem list description. + + @param type: (C++: problist_id_t) + @param longname: (C++: bool) + +Help on function is_problem_present in module ida_problems: + +is_problem_present(*args) -> 'bool' + is_problem_present(t, ea) -> bool + Check if the specified address is present in the problem list. + + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) + +Help on function remember_problem in module ida_problems: + +remember_problem(*args) -> 'void' + remember_problem(type, ea, msg=None) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. + +Help on function was_ida_decision in module ida_problems: + +was_ida_decision(*args) -> 'bool' + was_ida_decision(ea) -> bool + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" + +Help on class array_of_rangesets in module ida_range: + +class array_of_rangesets(builtins.object) + | Proxy of C++ qvector< rangeset_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & + | + | __getitem__(self, *args) -> 'rangeset_t const &' + | __getitem__(self, i) -> rangeset_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> array_of_rangesets + | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rangeset_t const & + | + | __swig_destroy__ = delete_array_of_rangesets(...) + | delete_array_of_rangesets(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rangeset_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: rangeset_t const & + | + | at(self, *args) -> 'rangeset_t const &' + | at(self, _idx) -> rangeset_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< rangeset_t >::const_iterator' + | begin(self) -> rangeset_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< rangeset_t >::const_iterator' + | end(self) -> rangeset_t + | + | erase(self, *args) -> 'qvector< rangeset_t >::iterator' + | erase(self, it) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | + | erase(self, first, last) -> rangeset_t + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator + | + | extract(self, *args) -> 'rangeset_t *' + | extract(self) -> rangeset_t + | + | find(self, *args) -> 'qvector< rangeset_t >::const_iterator' + | find(self, x) -> rangeset_t + | + | @param x: rangeset_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=rangeset_t()) + | + | @param x: rangeset_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: rangeset_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: rangeset_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< rangeset_t >::iterator' + | insert(self, it, x) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'rangeset_t &' + | push_back(self, x) + | + | @param x: rangeset_t const & + | + | push_back(self) -> rangeset_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rangeset_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< rangeset_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class range_t in module ida_range: + +class range_t(builtins.object) + | Proxy of C++ range_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __init__(self, *args) + | __init__(self) -> range_t + | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_range_t(...) + | delete_range_t(self) + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function range_t_print in module ida_range: + +range_t_print(*args) -> 'size_t' + range_t_print(cb) -> str + Helper function. Should not be called directly! + + @param cb: range_t const * + +Help on class rangeset_t in module ida_range: + +class rangeset_t(builtins.object) + | Proxy of C++ rangeset_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | __getitem__(self, idx) + | + | __init__(self, *args) + | __init__(self) -> rangeset_t + | __init__(self, range) -> rangeset_t + | + | @param range: range_t const & + | + | __init__(self, ivs) -> rangeset_t + | + | @param ivs: rangeset_t const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = nranges(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rangeset_t(...) + | delete_rangeset_t(self) + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | add(self, *args) -> 'bool' + | add(self, range) -> bool + | Add each element of 'aset' to the set. + | + | @param range: range_t const & + | + | @return: false if no elements were added (the set was unchanged) + | add(self, start, _end) -> bool + | + | @param start: ea_t + | @param _end: ea_t + | + | add(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | begin(self, *args) -> 'rangeset_t::iterator' + | begin(self) -> range_t + | Get an iterator that points to the first element in the set. + | + | cached_range(self, *args) -> 'range_t const *' + | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element + | + | clear(self, *args) -> 'void' + | clear(self) + | Delete all elements from the set. See qvector::clear() + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) + | + | @param ea: ea_t + | + | contains(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Does the set have zero elements. + | + | end(self, *args) -> 'rangeset_t::iterator' + | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) + | + | find_range(self, *args) -> 'range_t const *' + | find_range(self, ea) -> range_t + | Get the element from the set that contains 'ea'. + | + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element + | + | getrange(self, *args) -> 'range_t const &' + | getrange(self, idx) -> range_t + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) + | + | has_common(self, *args) -> 'bool' + | has_common(self, range) -> bool + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() + | + | @param range: range_t const & + | + | has_common(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | includes(self, *args) -> 'bool' + | includes(self, range) -> bool + | Is every ea in 'range' contained in the rangeset? + | + | @param range: (C++: const range_t &) range_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, aset) -> bool + | Set the rangeset to its intersection with 'aset'. + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged + | + | is_equal(self, *args) -> 'bool' + | is_equal(self, aset) -> bool + | Do this rangeset and 'aset' have identical elements? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, aset) -> bool + | Is every element in the rangeset contained in an element of 'aset'? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | + | lastrange(self, *args) -> 'range_t const &' + | lastrange(self) -> range_t + | Get the last range_t in the set. + | + | next_addr(self, *args) -> 'ea_t' + | next_addr(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) + | + | next_range(self, *args) -> 'ea_t' + | next_range(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) + | + | nranges(self, *args) -> 'size_t' + | nranges(self) -> size_t + | Get the number of range_t elements in the set. + | + | prev_addr(self, *args) -> 'ea_t' + | prev_addr(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) + | + | prev_range(self, *args) -> 'ea_t' + | prev_range(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) + | + | sub(self, *args) -> 'bool' + | sub(self, range) -> bool + | Subtract each range in 'aset' from the set + | + | @param range: range_t const & + | + | @return: false if nothing was subtracted (the set was unchanged) + | sub(self, ea) -> bool + | + | @param ea: ea_t + | + | sub(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class rangevec_base_t in module ida_range: + +class rangevec_base_t(builtins.object) + | Proxy of C++ qvector< range_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> rangevec_base_t + | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | __swig_destroy__ = delete_rangevec_base_t(...) + | delete_rangevec_base_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class rangevec_t in module ida_range: + +class rangevec_t(rangevec_base_t) + | Proxy of C++ rangevec_t class. + | + | Method resolution order: + | rangevec_t + | rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> rangevec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rangevec_t(...) + | delete_rangevec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from rangevec_base_t: + | + | __hash__ = None + +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + +Help on function reg_data_type in module ida_registry: + +reg_data_type(*args) -> 'regval_type_t' + reg_data_type(name, subkey=None) -> regval_type_t + Get data type of a given value. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: false if the [key+]value doesn't exist + +Help on function reg_delete in module ida_registry: + +reg_delete(*args) -> 'bool' + reg_delete(name, subkey=None) -> bool + Delete a value from the registry. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + @return: success + +Help on function reg_delete_subkey in module ida_registry: + +reg_delete_subkey(*args) -> 'bool' + reg_delete_subkey(name) -> bool + Delete a key from the registry. + + @param name: (C++: const char *) char const * + +Help on function reg_delete_tree in module ida_registry: + +reg_delete_tree(*args) -> 'bool' + reg_delete_tree(name) -> bool + Delete a subtree from the registry. + + @param name: (C++: const char *) char const * + +Help on function reg_exists in module ida_registry: + +reg_exists(*args) -> 'bool' + reg_exists(name, subkey=None) -> bool + Is there already a value with the given name? + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + +Help on function reg_flush in module ida_registry: + +reg_flush(*args) -> 'void' + reg_flush() + +Help on function reg_load in module ida_registry: + +reg_load(*args) -> 'void' + reg_load() + +Help on function reg_read_binary in module ida_registry: + +reg_read_binary(*args) -> 'PyObject *' + reg_read_binary(name, subkey=None) -> bytes or None + Read binary data from the registry. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success + +Help on function reg_read_bool in module ida_registry: + +reg_read_bool(*args) -> 'bool' + reg_read_bool(name, defval, subkey=None) -> bool + Read boolean value from the registry. + + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name + @return: boolean read from registry, or 'defval' if the read failed + +Help on function reg_read_int in module ida_registry: + +reg_read_int(*args) -> 'int' + reg_read_int(name, defval, subkey=None) -> int + Read integer value from the registry. + + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed + +Help on function reg_read_string in module ida_registry: + +reg_read_string(*args) -> 'PyObject *' + reg_read_string(name, subkey=None, _def=None) -> str + Read a string from the registry. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * + @return: success + +Help on function reg_read_strlist in module ida_registry: + +reg_read_strlist(*args) -> 'qstrvec_t *' + reg_read_strlist(subkey) + Retrieve all string values associated with the given key. Also see + reg_update_strlist(). + + @param subkey: (C++: const char *) char const * + +Help on function reg_subkey_exists in module ida_registry: + +reg_subkey_exists(*args) -> 'bool' + reg_subkey_exists(name) -> bool + Is there already a key with the given name? + + @param name: (C++: const char *) char const * + +Help on function reg_subkey_subkeys in module ida_registry: + +reg_subkey_subkeys(*args) -> 'PyObject *' + reg_subkey_subkeys(name) -> [str, ...] + Get all subkey names of given key. + + @param name: (C++: const char *) char const * + +Help on function reg_subkey_values in module ida_registry: + +reg_subkey_values(*args) -> 'PyObject *' + reg_subkey_values(name) -> [str, ...] + Get all value names under given key. + + @param name: (C++: const char *) char const * + +Help on function reg_update_filestrlist in module ida_registry: + +reg_update_filestrlist(*args) -> 'void' + reg_update_filestrlist(subkey, add, maxrecs, rem=None) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. + + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * + +Help on function reg_update_strlist in module ida_registry: + +reg_update_strlist(*args) -> 'void' + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) + Update list of strings associated with given key. + + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' + +Help on function reg_write_binary in module ida_registry: + +reg_write_binary(*args) -> 'PyObject *' + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * + Write binary data to the registry. + + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name + +Help on function reg_write_bool in module ida_registry: + +reg_write_bool(*args) -> 'void' + reg_write_bool(name, value, subkey=None) + Write boolean value to the registry. + + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name + +Help on function reg_write_int in module ida_registry: + +reg_write_int(*args) -> 'void' + reg_write_int(name, value, subkey=None) + Write integer value to the registry. + + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name + +Help on function reg_write_string in module ida_registry: + +reg_write_string(*args) -> 'void' + reg_write_string(name, utf8, subkey=None) + Write a string to the registry. + + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name + +Help on function set_registry_root in module ida_registry: + +set_registry_root(*args) -> 'bool' + set_registry_root(name) -> bool + + @param name: char const * + +Module "ida_search"s docstring: +""" +Middle-level search functions. + +They all are controlled by Search flags""" + +Help on function find_binary in module ida_search: + +find_binary(*args) -> 'ea_t' + find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t + Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int + +Help on function find_code in module ida_search: + +find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t + Find next code address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_data in module ida_search: + +find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t + Find next data address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_defined in module ida_search: + +find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t + Find next ea that is the start of an instruction or data. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_error in module ida_search: + +find_error(*args) -> 'int *' + find_error(ea, sflag) -> ea_t + Find next error or problem. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_imm in module ida_search: + +find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t + Find next immediate operand with the given value. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) + +Help on function find_not_func in module ida_search: + +find_not_func(*args) -> 'ea_t' + find_not_func(ea, sflag) -> ea_t + Find next code address that does not belong to a function. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_notype in module ida_search: + +find_notype(*args) -> 'int *' + find_notype(ea, sflag) -> ea_t + Find next operand without any type info. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_reg_access in module ida_search: + +find_reg_access(*args) -> 'ea_t' + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + Find access to a register. + + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. + +Help on function find_suspop in module ida_search: + +find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t + Find next suspicious operand. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_text in module ida_search: + +find_text(*args) -> 'ea_t' + find_text(start_ea, y, x, ustr, sflag) -> ea_t + See search() + + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) + +Help on function find_unknown in module ida_search: + +find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t + Find next unexplored address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function search_down in module ida_search: + +search_down(*args) -> 'bool' + search_down(sflag) -> bool + Is the SEARCH_DOWN bit set? + + @param sflag: (C++: int) + +Module "ida_segment"s docstring: +""" +Functions that deal with segments. + +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. + +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. + +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is + +(start address of segment - segment base linear address) + +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" + +Help on function add_segm in module ida_segment: + +add_segm(*args) -> 'bool' + add_segm(para, start, end, name, sclass, flags=0) -> bool + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. + + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function add_segm_ex in module ida_segment: + +add_segm_ex(*args) -> 'bool' + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. + + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function add_segment_translation in module ida_segment: + +add_segment_translation(*args) -> 'bool' + add_segment_translation(segstart, mappedseg) -> bool + Add segment translation. + + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart + +Help on function allocate_selector in module ida_segment: + +allocate_selector(*args) -> 'sel_t' + allocate_selector(segbase) -> sel_t + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number + +Help on function change_segment_status in module ida_segment: + +change_segment_status(*args) -> 'int' + change_segment_status(s, is_deb_segm) -> int + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. + + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment + @return: Change segment status result codes + +Help on function del_segm in module ida_segment: + +del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool + Delete a segment. + + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. + +Help on function del_segment_translations in module ida_segment: + +del_segment_translations(*args) -> 'void' + del_segment_translations(segstart) + Delete the translation list + + @param segstart: (C++: ea_t) start address of the segment to delete translation list + +Help on function del_selector in module ida_segment: + +del_selector(*args) -> 'void' + del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table + +Help on function find_free_selector in module ida_segment: + +find_free_selector(*args) -> 'sel_t' + find_free_selector() -> sel_t + Find first unused selector. + + @return: a number >= 1 + +Help on function find_selector in module ida_segment: + +find_selector(*args) -> 'sel_t' + find_selector(base) -> sel_t + Find a selector that has mapping to the specified paragraph. + + @param base: (C++: ea_t) paragraph to search in the translation table + @return: selector value or base + +Help on function get_defsr in module ida_segment: + +get_defsr(*args) -> 'sel_t' + get_defsr(s, reg) -> sel_t + Deprecated, use instead: + value = s.defsr[reg] + + @param s: segment_t * + @param reg: int + +Help on function get_first_seg in module ida_segment: + +get_first_seg(*args) -> 'segment_t *' + get_first_seg() -> segment_t + Get pointer to the first segment. + +Help on function get_group_selector in module ida_segment: + +get_group_selector(*args) -> 'sel_t' + get_group_selector(grpsel) -> sel_t + Get common selector for a group of segments. + + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found + +Help on function get_last_seg in module ida_segment: + +get_last_seg(*args) -> 'segment_t *' + get_last_seg() -> segment_t + Get pointer to the last segment. + +Help on function get_next_seg in module ida_segment: + +get_next_seg(*args) -> 'segment_t *' + get_next_seg(ea) -> segment_t + Get pointer to the next segment. + + @param ea: (C++: ea_t) + +Help on function get_prev_seg in module ida_segment: + +get_prev_seg(*args) -> 'segment_t *' + get_prev_seg(ea) -> segment_t + Get pointer to the previous segment. + + @param ea: (C++: ea_t) + +Help on function get_segm_base in module ida_segment: + +get_segm_base(*args) -> 'ea_t' + get_segm_base(s) -> ea_t + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address + +Help on function get_segm_by_name in module ida_segment: + +get_segm_by_name(*args) -> 'segment_t *' + get_segm_by_name(name) -> segment_t + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. + + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure + +Help on function get_segm_by_sel in module ida_segment: + +get_segm_by_sel(*args) -> 'segment_t *' + get_segm_by_sel(selector) -> segment_t + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. + + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr + +Help on function get_segm_class in module ida_segment: + +get_segm_class(*args) -> 'qstring *' + get_segm_class(s) -> str + Get segment class. Segment class is arbitrary text (max 8 characters). + + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) + +Help on function get_segm_name in module ida_segment: + +get_segm_name(*args) -> 'qstring *' + get_segm_name(s, flags=0) -> str + Get true segment name by pointer to segment. + + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) + +Help on function get_segm_num in module ida_segment: + +get_segm_num(*args) -> 'int' + get_segm_num(ea) -> int + Get number of segment by address. + + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) + +Help on function get_segm_para in module ida_segment: + +get_segm_para(*args) -> 'ea_t' + get_segm_para(s) -> ea_t + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph + +Help on function get_segm_qty in module ida_segment: + +get_segm_qty(*args) -> 'int' + get_segm_qty() -> int + Get number of segments. + +Help on function get_segment_alignment in module ida_segment: + +get_segment_alignment(*args) -> 'char const *' + get_segment_alignment(align) -> char const * + Get text representation of segment alignment code. + + @param align: (C++: uchar) + @return: text digestable by IBM PC assembler. + +Help on function get_segment_cmt in module ida_segment: + +get_segment_cmt(*args) -> 'qstring *' + get_segment_cmt(s, repeatable) -> str + Get segment comment. + + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. + @return: size of comment or -1 + +Help on function get_segment_combination in module ida_segment: + +get_segment_combination(*args) -> 'char const *' + get_segment_combination(comb) -> char const * + Get text representation of segment combination code. + + @param comb: (C++: uchar) + @return: text digestable by IBM PC assembler. + +Help on function get_segment_translations in module ida_segment: + +get_segment_translations(*args) -> 'ssize_t' + get_segment_translations(transmap, segstart) -> ssize_t + Get segment translation list. + + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. + +Help on function get_selector_qty in module ida_segment: + +get_selector_qty(*args) -> 'size_t' + get_selector_qty() -> size_t + Get number of defined selectors. + +Help on function get_visible_segm_name in module ida_segment: + +get_visible_segm_name(*args) -> 'qstring *' + get_visible_segm_name(s) -> str + Get segment name by pointer to segment. + + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) + +Help on function getn_selector in module ida_segment: + +getn_selector(*args) -> 'sel_t *, ea_t *' + getn_selector(n) -> bool + Get description of selector (0..get_selector_qty()-1) + + @param n: (C++: int) + +Help on function getnseg in module ida_segment: + +getnseg(*args) -> 'segment_t *' + getnseg(n) -> segment_t + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) + + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure + +Help on function getseg in module ida_segment: + +getseg(*args) -> 'segment_t *' + getseg(ea) -> segment_t + Get pointer to segment by linear address. + + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure + +Help on function is_finally_visible_segm in module ida_segment: + +is_finally_visible_segm(*args) -> 'bool' + is_finally_visible_segm(s) -> bool + See SFL_HIDDEN, SCF_SHHID_SEGM. + + @param s: (C++: segment_t *) + +Help on function is_miniidb in module ida_segment: + +is_miniidb(*args) -> 'bool' + is_miniidb() -> bool + Is the database a miniidb created by the debugger?. + + @return: true if the database contains no segments or only debugger segments + +Help on function is_segm_locked in module ida_segment: + +is_segm_locked(*args) -> 'bool' + is_segm_locked(segm) -> bool + Is a segment pointer locked? + + @param segm: (C++: const segment_t *) segment_t const * + +Help on function is_spec_ea in module ida_segment: + +is_spec_ea(*args) -> 'bool' + is_spec_ea(ea) -> bool + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) + + @param ea: (C++: ea_t) linear address + +Help on function is_spec_segm in module ida_segment: + +is_spec_segm(*args) -> 'bool' + is_spec_segm(seg_type) -> bool + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) + + @param seg_type: (C++: uchar) + +Help on function is_visible_segm in module ida_segment: + +is_visible_segm(*args) -> 'bool' + is_visible_segm(s) -> bool + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + +Help on function lock_segm in module ida_segment: + +lock_segm(*args) -> 'void' + lock_segm(segm, lock) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) + +Help on class lock_segment in module ida_segment: + +class lock_segment(builtins.object) + | Proxy of C++ lock_segment class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _segm) -> lock_segment + | + | @param _segm: segment_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lock_segment(...) + | delete_lock_segment(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function move_segm in module ida_segment: + +move_segm(*args) -> 'int' + move_segm(s, to, flags=0) -> int + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. + + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags + @return: Move segment result codes + +Help on function move_segm_start in module ida_segment: + +move_segm_start(*args) -> 'bool' + move_segm_start(ea, newstart, mode) -> bool + Move segment start. The main difference between this function and + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function rebase_program in module ida_segment: + +rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int + Rebase the whole program by 'delta' bytes. + + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes + +Help on function segm_adjust_diff in module ida_segment: + +segm_adjust_diff(*args) -> 'adiff_t' + segm_adjust_diff(s, delta) -> adiff_t + Truncate and sign extend a delta depending on the segment. + + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) + +Help on function segm_adjust_ea in module ida_segment: + +segm_adjust_ea(*args) -> 'ea_t' + segm_adjust_ea(s, ea) -> ea_t + Truncate an address depending on the segment. + + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) + +Help on class segment_defsr_array in module ida_segment: + +class segment_defsr_array(builtins.object) + | Proxy of C++ wrapped_array_t< sel_t,SREG_NUM > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> segment_defsr_array + | + | @param data: unsigned-ea-like-numeric-type (&)[SREG_NUM]↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_segment_defsr_array(...) + | delete_segment_defsr_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class segment_t in module ida_segment: + +class segment_t(ida_range.range_t) + | Proxy of C++ segment_t class. + | + | Method resolution order: + | segment_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> segment_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_segment_t(...) + | delete_segment_t(self) + | + | _segment_t__getDefsr = __getDefsr(self, *args) -> 'wrapped_array_t< sel_t,SREG_NUM >' + | __getDefsr(self) -> segment_defsr_array + | + | abits(self, *args) -> 'int' + | abits(self) -> int + | Get number of address bits. + | + | abytes(self, *args) -> 'int' + | abytes(self) -> int + | Get number of address bytes. + | + | clr_comorg(self, *args) -> 'void' + | clr_comorg(self) + | + | clr_ob_ok(self, *args) -> 'void' + | clr_ob_ok(self) + | + | comorg(self, *args) -> 'bool' + | comorg(self) -> bool + | + | is_16bit(self, *args) -> 'bool' + | is_16bit(self) -> bool + | Is a 16-bit segment? + | + | is_32bit(self, *args) -> 'bool' + | is_32bit(self) -> bool + | Is a 32-bit segment? + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | Is a 64-bit segment? + | + | is_header_segm(self, *args) -> 'bool' + | is_header_segm(self) -> bool + | + | is_hidden_segtype(self, *args) -> 'bool' + | is_hidden_segtype(self) -> bool + | + | is_loader_segm(self, *args) -> 'bool' + | is_loader_segm(self) -> bool + | + | is_visible_segm(self, *args) -> 'bool' + | is_visible_segm(self) -> bool + | + | ob_ok(self, *args) -> 'bool' + | ob_ok(self) -> bool + | + | set_comorg(self, *args) -> 'void' + | set_comorg(self) + | + | set_debugger_segm(self, *args) -> 'void' + | set_debugger_segm(self, debseg) + | + | @param debseg: bool + | + | set_header_segm(self, *args) -> 'void' + | set_header_segm(self, on) + | + | @param on: bool + | + | set_hidden_segtype(self, *args) -> 'void' + | set_hidden_segtype(self, hide) + | + | @param hide: bool + | + | set_loader_segm(self, *args) -> 'void' + | set_loader_segm(self, ldrseg) + | + | @param ldrseg: bool + | + | set_ob_ok(self, *args) -> 'void' + | set_ob_ok(self) + | + | set_visible_segm(self, *args) -> 'void' + | set_visible_segm(self, visible) + | + | @param visible: bool + | + | update(self, *args) -> 'bool' + | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success + | + | use64 = is_64bit(self, *args) -> 'bool' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | align + | align + | + | bitness + | bitness + | + | color + | color + | + | comb + | comb + | + | defsr + | __getDefsr(self) -> segment_defsr_array + | + | end_ea + | end_ea + | + | flags + | flags + | + | name + | name + | + | orgbase + | orgbase + | + | perm + | perm + | + | sclass + | sclass + | + | sel + | sel + | + | start_ea + | start_ea + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function segtype in module ida_segment: + +segtype(*args) -> 'uchar' + segtype(ea) -> uchar + Get segment type. + + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' + +Help on function sel2ea in module ida_segment: + +sel2ea(*args) -> 'ea_t' + sel2ea(selector) -> ea_t + Get mapping of a selector as a linear address. + + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); + +Help on function sel2para in module ida_segment: + +sel2para(*args) -> 'ea_t' + sel2para(selector) -> ea_t + Get mapping of a selector. + + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. + +Help on function set_defsr in module ida_segment: + +set_defsr(*args) -> 'void' + set_defsr(s, reg, value) + Deprecated, use instead: + s.defsr[reg] = value + + @param s: segment_t * + @param reg: int + @param value: sel_t + +Help on function set_group_selector in module ida_segment: + +set_group_selector(*args) -> 'int' + set_group_selector(grp, sel) -> int + Create a new group of segments (used OMF files). + + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. + @return: 1 ok + 0 too many groups (see MAX_GROUPS) + +Help on function set_segm_addressing in module ida_segment: + +set_segm_addressing(*args) -> 'bool' + set_segm_addressing(s, bitness) -> bool + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment + + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment + @return: success + +Help on function set_segm_base in module ida_segment: + +set_segm_base(*args) -> 'bool' + set_segm_base(s, newbase) -> bool + Internal function. + + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) + +Help on function set_segm_class in module ida_segment: + +set_segm_class(*args) -> 'int' + set_segm_class(s, sclass, flags=0) -> int + Set segment class. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @param flags: (C++: int) Add segment flags + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr + +Help on function set_segm_end in module ida_segment: + +set_segm_end(*args) -> 'bool' + set_segm_end(ea, newend, flags) -> bool + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function set_segm_name in module ida_segment: + +set_segm_name(*args) -> 'int' + set_segm_name(s, name, flags=0) -> int + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr + +Help on function set_segm_start in module ida_segment: + +set_segm_start(*args) -> 'bool' + set_segm_start(ea, newstart, flags) -> bool + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function set_segment_cmt in module ida_segment: + +set_segment_cmt(*args) -> 'void' + set_segment_cmt(s, cmt, repeatable) + Set segment comment. + + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. + +Help on function set_segment_translations in module ida_segment: + +set_segment_translations(*args) -> 'bool' + set_segment_translations(segstart, transmap) -> bool + Set new translation list. + + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart + +Help on function set_selector in module ida_segment: + +set_selector(*args) -> 'int' + set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) + +Help on function set_visible_segm in module ida_segment: + +set_visible_segm(*args) -> 'void' + set_visible_segm(s, visible) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + @param visible: (C++: bool) + +Help on function setup_selector in module ida_segment: + +setup_selector(*args) -> 'sel_t' + setup_selector(segbase) -> sel_t + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number + +Help on function std_out_segm_footer in module ida_segment: + +std_out_segm_footer(*args) -> 'void' + std_out_segm_footer(ctx, seg) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. + + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) + +Help on function take_memory_snapshot in module ida_segment: + +take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(type) -> bool + Take a memory snapshot of the running process. + + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) + @return: success + +Help on function update_segm in module ida_segment: + +update_segm(*args) -> 'bool' + update_segm(s) -> bool + + @param s: segment_t * + +Module "ida_segregs"s docstring: +""" +Functions that deal with the segment registers. + +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" + +Help on function copy_sreg_ranges in module ida_segregs: + +copy_sreg_ranges(*args) -> 'void' + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) + Duplicate segment register ranges. + + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() + +Help on function del_sreg_range in module ida_segregs: + +del_sreg_range(*args) -> 'bool' + del_sreg_range(ea, rg) -> bool + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. + + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number + @return: success + +Help on function get_prev_sreg_range in module ida_segregs: + +get_prev_sreg_range(*args) -> 'bool' + get_prev_sreg_range(out, ea, rg) -> bool + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success + +Help on function get_sreg in module ida_segregs: + +get_sreg(*args) -> 'sel_t' + get_sreg(ea, rg) -> sel_t + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. + + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. + +Help on function get_sreg_range in module ida_segregs: + +get_sreg_range(*args) -> 'bool' + get_sreg_range(out, ea, rg) -> bool + Get segment register range by linear address. + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success + +Help on function get_sreg_range_num in module ida_segregs: + +get_sreg_range_num(*args) -> 'int' + get_sreg_range_num(ea, rg) -> int + Get number of segment register range by address. + + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) + +Help on function get_sreg_ranges_qty in module ida_segregs: + +get_sreg_ranges_qty(*args) -> 'size_t' + get_sreg_ranges_qty(rg) -> size_t + Get number of segment register ranges. + + @param rg: (C++: int) the segment register number + +Help on function getn_sreg_range in module ida_segregs: + +getn_sreg_range(*args) -> 'bool' + getn_sreg_range(out, rg, n) -> bool + Get segment register range by its number. + + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) + @return: success + +Help on function set_default_dataseg in module ida_segregs: + +set_default_dataseg(*args) -> 'void' + set_default_dataseg(ds_sel) + Set default value of DS register for all segments. + + @param ds_sel: (C++: sel_t) + +Help on function set_default_sreg_value in module ida_segregs: + +set_default_sreg_value(*args) -> 'bool' + set_default_sreg_value(sg, rg, value) -> bool + Set default value of a segment register for a segment. + + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. + @return: success + +Help on function set_sreg_at_next_code in module ida_segregs: + +set_sreg_at_next_code(*args) -> 'void' + set_sreg_at_next_code(ea1, ea2, rg, value) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. + + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value + +Help on function split_sreg_range in module ida_segregs: + +split_sreg_range(*args) -> 'bool' + split_sreg_range(ea, rg, v, tag, silent=False) -> bool + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. + + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure + @return: success + +Help on class sreg_range_t in module ida_segregs: + +class sreg_range_t(ida_range.range_t) + | Proxy of C++ sreg_range_t class. + | + | Method resolution order: + | sreg_range_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> sreg_range_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sreg_range_t(...) + | delete_sreg_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | tag + | tag + | + | thisown + | The membership flag + | + | val + | val + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Module "ida_srclang"s docstring: +""" +Third-party compiler support.""" + +Help on function parse_decls_for_srclang in module ida_srclang: + +parse_decls_for_srclang(*args) -> 'int' + parse_decls_for_srclang(lang, til, input, is_path) -> int + Parse type declarations in the specified language + + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source + +Help on function parse_decls_with_parser in module ida_srclang: + +parse_decls_with_parser(*args) -> 'int' + parse_decls_with_parser(parser_name, til, input, is_path) -> int + Parse type declarations using the parser with the specified name + + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source + +Help on function select_parser_by_name in module ida_srclang: + +select_parser_by_name(*args) -> 'bool' + select_parser_by_name(name) -> bool + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name + +Help on function select_parser_by_srclang in module ida_srclang: + +select_parser_by_srclang(*args) -> 'bool' + select_parser_by_srclang(lang) -> bool + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found + +Help on function set_parser_argv in module ida_srclang: + +set_parser_argv(*args) -> 'int' + set_parser_argv(parser_name, argv) -> int + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success + +Module "ida_strlist"s docstring: +""" +Functions that deal with the string list. + +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. + +The users of this list should call build_strlist() if they need an up-to-date +version.""" + +Help on function build_strlist in module ida_strlist: + +build_strlist(*args) -> 'void' + build_strlist() + Rebuild the string list. + +Help on function clear_strlist in module ida_strlist: + +clear_strlist(*args) -> 'void' + clear_strlist() + Clear the string list. + +Help on function get_strlist_item in module ida_strlist: + +get_strlist_item(*args) -> 'bool' + get_strlist_item(si, n) -> bool + Get nth element of the string list (n=0..get_strlist_qty()-1) + + @param si: (C++: string_info_t *) + @param n: (C++: size_t) + +Help on function get_strlist_options in module ida_strlist: + +get_strlist_options(*args) -> 'strwinsetup_t const *' + get_strlist_options() -> strwinsetup_t + Get the static string list options. + +Help on function get_strlist_qty in module ida_strlist: + +get_strlist_qty(*args) -> 'size_t' + get_strlist_qty() -> size_t + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. + +Help on class string_info_t in module ida_strlist: + +class string_info_t(builtins.object) + | Proxy of C++ string_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: string_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_string_info_t(...) + | delete_string_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | length + | length + | + | thisown + | The membership flag + | + | type + | type + +Help on class strwinsetup_t in module ida_strlist: + +class strwinsetup_t(builtins.object) + | Proxy of C++ strwinsetup_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> strwinsetup_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_strwinsetup_t(...) + | delete_strwinsetup_t(self) + | + | _get_strtypes(self, *args) -> 'PyObject *' + | _get_strtypes(self) -> PyObject * + | + | _set_strtypes(self, *args) -> 'PyObject *' + | _set_strtypes(self, py_t) -> PyObject * + | + | Parameters + | ---------- + | py_t: PyObject * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | display_only_existing_strings + | display_only_existing_strings + | + | ignore_heads + | ignore_heads + | + | minlen + | minlen + | + | only_7bit + | only_7bit + | + | strtypes + | _get_strtypes(self) -> PyObject * + | + | thisown + | The membership flag + +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + +Help on function add_struc in module ida_struct: + +add_struc(*args) -> 'tid_t' + add_struc(idx, name, is_union=False) -> tid_t + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". + + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) + +Help on function add_struc_member in module ida_struct: + +add_struc_member(*args) -> 'struc_error_t' + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t + Add member to existing structure. + + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags64_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure + +Help on function del_member_tinfo in module ida_struct: + +del_member_tinfo(*args) -> 'bool' + del_member_tinfo(sptr, mptr) -> bool + Delete tinfo for given member. + + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) + +Help on function del_struc in module ida_struct: + +del_struc(*args) -> 'bool' + del_struc(sptr) -> bool + Delete a structure type. + + @param sptr: (C++: struc_t *) + +Help on function del_struc_member in module ida_struct: + +del_struc_member(*args) -> 'bool' + del_struc_member(sptr, offset) -> bool + Delete member at given offset. + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + +Help on function del_struc_members in module ida_struct: + +del_struc_members(*args) -> 'int' + del_struc_members(sptr, off1, off2) -> int + Delete members which occupy range of offsets (off1..off2). + + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) + @return: number of deleted members or -1 on error + +Help on class dyn_member_ref_array in module ida_struct: + +class dyn_member_ref_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< member_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'member_t const &' + | __getitem__(self, i) -> member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | + | @param _data: member_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: member_t const & + | + | __swig_destroy__ = delete_dyn_member_ref_array(...) + | delete_dyn_member_ref_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on function expand_struc in module ida_struct: + +expand_struc(*args) -> 'bool' + expand_struc(sptr, offset, delta, recalc=True) -> bool + Expand/Shrink structure type. + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) + +Help on function get_best_fit_member in module ida_struct: + +get_best_fit_member(*args) -> 'member_t *' + get_best_fit_member(sptr, offset) -> member_t + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) + +Help on function get_first_struc_idx in module ida_struct: + +get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t + Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise + +Help on function get_innermost_member in module ida_struct: + +get_innermost_member(*args) -> 'PyObject *' + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) + Get the innermost member at the given offset + + @param sptr: the starting structure + @param offset: offset into the starting structure + @return: - None on failure + - tuple(member_t, struct_t, offset) + where member_t: a member in SPTR (it is not a structure), + struct_t: the innermost structure, + offset: remaining offset into the returned member + +Help on function get_last_struc_idx in module ida_struct: + +get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t + Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise + +Help on function get_max_offset in module ida_struct: + +get_max_offset(*args) -> 'ea_t' + get_max_offset(sptr) -> ea_t + For unions: returns number of members, for structs: returns size of structure. + + @param sptr: (C++: struc_t *) + +Help on function get_member in module ida_struct: + +get_member(*args) -> 'member_t *' + get_member(sptr, offset) -> member_t + Get member at given offset. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) + +Help on function get_member_by_fullname in module ida_struct: + +get_member_by_fullname(*args) -> 'struc_t **' + get_member_by_fullname(fullname) -> member_t + Get a member by its fully qualified name, "struct.field". + + @param fullname: (C++: const char *) char const * + +Help on function get_member_by_id in module ida_struct: + +get_member_by_id(*args) -> 'qstring *, struc_t **' + get_member_by_id(mid) -> member_t + Check if the specified member id points to a struct member. convenience + function. + + @param mid: (C++: tid_t) + +Help on function get_member_by_name in module ida_struct: + +get_member_by_name(*args) -> 'member_t *' + get_member_by_name(sptr, membername) -> member_t + Get a member by its name, like "field44". + + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * + +Help on function get_member_cmt in module ida_struct: + +get_member_cmt(*args) -> 'qstring *' + get_member_cmt(mid, repeatable) -> str + Get comment of structure member. + + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) + +Help on function get_member_fullname in module ida_struct: + +get_member_fullname(*args) -> 'qstring *' + get_member_fullname(mid) -> str + Get a member's fully qualified name, "struct.field". + + @param mid: (C++: tid_t) + +Help on function get_member_id in module ida_struct: + +get_member_id(*args) -> 'tid_t' + get_member_id(sptr, offset) -> tid_t + Get member id at given offset. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) + +Help on function get_member_name in module ida_struct: + +get_member_name(*args) -> 'qstring *' + get_member_name(mid) -> str + + @param mid: tid_t + +Help on function get_member_size in module ida_struct: + +get_member_size(*args) -> 'asize_t' + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. + + @param NONNULL_mptr: (C++: const member_t *) member_t const * + +Help on function get_member_struc in module ida_struct: + +get_member_struc(*args) -> 'struc_t *' + get_member_struc(fullname) -> struc_t + Get containing structure of member by its full name "struct.field". + + @param fullname: (C++: const char *) char const * + +Help on function get_member_tinfo in module ida_struct: + +get_member_tinfo(*args) -> 'bool' + get_member_tinfo(tif, mptr) -> bool + Get tinfo for given member. + + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * + +Help on function get_next_member_idx in module ida_struct: + +get_next_member_idx(*args) -> 'ssize_t' + get_next_member_idx(sptr, off) -> ssize_t + Get the next member idx, if it does not exist, return -1. + + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) + +Help on function get_next_struc_idx in module ida_struct: + +get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t + Get next struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ + +Help on function get_or_guess_member_tinfo in module ida_struct: + +get_or_guess_member_tinfo(*args) -> 'bool' + get_or_guess_member_tinfo(tif, mptr) -> bool + Try to get tinfo for given member - if failed, generate a tinfo using + information about the member id from the disassembly + + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * + +Help on function get_prev_member_idx in module ida_struct: + +get_prev_member_idx(*args) -> 'ssize_t' + get_prev_member_idx(sptr, off) -> ssize_t + Get the prev member idx, if it does not exist, return -1. + + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) + +Help on function get_prev_struc_idx in module ida_struct: + +get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t + Get previous struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 + +Help on function get_sptr in module ida_struct: + +get_sptr(*args) -> 'struc_t *' + get_sptr(mptr) -> struc_t + Get child struct if member is a struct. + + @param mptr: (C++: const member_t *) member_t const * + +Help on function get_struc in module ida_struct: + +get_struc(*args) -> 'struc_t *' + get_struc(id) -> struc_t + Get pointer to struct type info. + + @param id: (C++: tid_t) + +Help on function get_struc_by_idx in module ida_struct: + +get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t + Get struct id by struct number. + + @param idx: (C++: uval_t) + +Help on function get_struc_cmt in module ida_struct: + +get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str + Get struct comment. + + @param id: (C++: tid_t) + @param repeatable: (C++: bool) + +Help on function get_struc_first_offset in module ida_struct: + +get_struc_first_offset(*args) -> 'ea_t' + get_struc_first_offset(sptr) -> ea_t + Get offset of first member. + + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 + +Help on function get_struc_id in module ida_struct: + +get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t + Get struct id by name. + + @param name: (C++: const char *) char const * + +Help on function get_struc_idx in module ida_struct: + +get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t + Get internal number of the structure. + + @param id: (C++: tid_t) + +Help on function get_struc_last_offset in module ida_struct: + +get_struc_last_offset(*args) -> 'ea_t' + get_struc_last_offset(sptr) -> ea_t + Get offset of last member. + + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 + +Help on function get_struc_name in module ida_struct: + +get_struc_name(*args) -> 'qstring *' + get_struc_name(id, flags=0) -> str + + @param id: tid_t + @param flags: int + +Help on function get_struc_next_offset in module ida_struct: + +get_struc_next_offset(*args) -> 'ea_t' + get_struc_next_offset(sptr, offset) -> ea_t + Get offset of member with smallest offset larger than 'offset'. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset + +Help on function get_struc_prev_offset in module ida_struct: + +get_struc_prev_offset(*args) -> 'ea_t' + get_struc_prev_offset(sptr, offset) -> ea_t + Get offset of member with largest offset less than 'offset'. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset + +Help on function get_struc_qty in module ida_struct: + +get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t + Get number of known structures. + +Help on function get_struc_size in module ida_struct: + +get_struc_size(*args) -> 'asize_t' + get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + + get_struc_size(id) -> asize_t + + @param id: tid_t + +Help on function is_anonymous_member_name in module ida_struct: + +is_anonymous_member_name(*args) -> 'bool' + is_anonymous_member_name(name) -> bool + Is member name prefixed with "anonymous"? + + @param name: (C++: const char *) char const * + +Help on function is_dummy_member_name in module ida_struct: + +is_dummy_member_name(*args) -> 'bool' + is_dummy_member_name(name) -> bool + Is member name an auto-generated name? + + @param name: (C++: const char *) char const * + +Help on function is_member_id in module ida_struct: + +is_member_id(*args) -> 'bool' + is_member_id(mid) -> bool + Is a member id? + + @param mid: (C++: tid_t) + +Help on function is_special_member in module ida_struct: + +is_special_member(*args) -> 'bool' + is_special_member(id) -> bool + Is a special member with the name beginning with ' '? + + @param id: (C++: tid_t) + +Help on function is_union in module ida_struct: + +is_union(*args) -> 'bool' + is_union(id) -> bool + Is a union? + + @param id: (C++: tid_t) + +Help on function is_varmember in module ida_struct: + +is_varmember(*args) -> 'bool' + is_varmember(mptr) -> bool + Is variable size member? + + @param mptr: (C++: const member_t *) member_t const * + +Help on function is_varstr in module ida_struct: + +is_varstr(*args) -> 'bool' + is_varstr(id) -> bool + Is variable size structure? + + @param id: (C++: tid_t) + +Help on class member_t in module ida_struct: + +class member_t(builtins.object) + | Proxy of C++ member_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> member_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_member_t(...) + | delete_member_t(self) + | + | by_til(self, *args) -> 'bool' + | by_til(self) -> bool + | Was the member created due to the type system? + | + | get_size(self, *args) -> 'asize_t' + | get_size(self) -> asize_t + | Get member size. + | + | get_soff(self, *args) -> 'ea_t' + | get_soff(self) -> ea_t + | Get start offset (for unions - returns 0) + | + | has_ti(self, *args) -> 'bool' + | has_ti(self) -> bool + | Has type information? + | + | has_union(self, *args) -> 'bool' + | has_union(self) -> bool + | Has members of type "union"? + | + | is_baseclass(self, *args) -> 'bool' + | is_baseclass(self) -> bool + | Is a base class member? + | + | is_destructor(self, *args) -> 'bool' + | is_destructor(self) -> bool + | Is a virtual destructor? + | + | is_dupname(self, *args) -> 'bool' + | is_dupname(self) -> bool + | Duplicate name was resolved during import? + | + | unimem(self, *args) -> 'bool' + | unimem(self) -> bool + | Is a member of a union? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | eoff + | eoff + | + | flag + | flag + | + | id + | id + | + | props + | props + | + | soff + | soff + | + | thisown + | The membership flag + +Help on function retrieve_member_info in module ida_struct: + +retrieve_member_info(*args) -> 'opinfo_t *' + retrieve_member_info(buf, mptr) -> opinfo_t + Get operand type info for member. + + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * + +Help on function save_struc in module ida_struct: + +save_struc(*args) -> 'void' + save_struc(sptr, may_update_ltypes=True) + Update struct information in the database (internal function) + + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) + +Help on function set_member_cmt in module ida_struct: + +set_member_cmt(*args) -> 'bool' + set_member_cmt(mptr, cmt, repeatable) -> bool + Set member comment. + + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_member_name in module ida_struct: + +set_member_name(*args) -> 'bool' + set_member_name(sptr, offset, name) -> bool + Set name of member at given offset. + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * + +Help on function set_member_tinfo in module ida_struct: + +set_member_tinfo(*args) -> 'smt_code_t' + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t + Set tinfo for given member. + + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags + +Help on function set_member_type in module ida_struct: + +set_member_type(*args) -> 'bool' + set_member_type(sptr, offset, flag, mt, nbytes) -> bool + Set type of member at given offset (also see add_struc_member()) + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags64_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) + +Help on function set_struc_align in module ida_struct: + +set_struc_align(*args) -> 'bool' + set_struc_align(sptr, shift) -> bool + Set structure alignment (SF_ALIGN) + + @param sptr: (C++: struc_t *) + @param shift: (C++: int) + +Help on function set_struc_cmt in module ida_struct: + +set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool + Set structure comment. + + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_struc_hidden in module ida_struct: + +set_struc_hidden(*args) -> 'void' + set_struc_hidden(sptr, is_hidden) + Hide/unhide a struct type. + + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) + +Help on function set_struc_idx in module ida_struct: + +set_struc_idx(*args) -> 'bool' + set_struc_idx(sptr, idx) -> bool + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). + + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) + +Help on function set_struc_listed in module ida_struct: + +set_struc_listed(*args) -> 'void' + set_struc_listed(sptr, is_listed) + Add/remove a struct type from the struct list. + + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) + +Help on function set_struc_name in module ida_struct: + +set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool + Set structure name. + + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * + +Help on function stroff_as_size in module ida_struct: + +stroff_as_size(*args) -> 'bool' + stroff_as_size(plen, sptr, value) -> bool + Should display a structure offset expression as the structure size? + + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) + +Help on class struc_t in module ida_struct: + +class struc_t(builtins.object) + | Proxy of C++ struc_t class. + | + | Methods defined here: + | + | __get_members__(self, *args) -> 'dynamic_wrapped_array_t< member_t >' + | __get_members__(self) -> dyn_member_ref_array + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_struc_t(...) + | delete_struc_t(self) + | + | from_til(self, *args) -> 'bool' + | from_til(self) -> bool + | Does structure come from a type library? + | + | get_alignment(self, *args) -> 'int' + | get_alignment(self) -> int + | See SF_ALIGN. + | + | get_last_member(self, *args) -> 'member_t const *' + | get_last_member(self) -> member_t + | + | get_member(self, index) + | + | has_union(self, *args) -> 'bool' + | has_union(self) -> bool + | Has members of type "union"? + | + | is_choosable(self, *args) -> 'bool' + | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) -> 'bool' + | is_copyof(self) -> bool + | Is copied from a local type? + | + | is_frame(self, *args) -> 'bool' + | is_frame(self) -> bool + | Is this structure a function frame? + | + | is_ghost(self, *args) -> 'bool' + | is_ghost(self) -> bool + | Is a ghost copy of a local type? + | + | is_hidden(self, *args) -> 'bool' + | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) -> 'bool' + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) -> 'bool' + | is_synced(self) -> bool + | Is synced with a local type? + | + | is_union(self, *args) -> 'bool' + | is_union(self) -> bool + | Is a union? + | + | is_varstr(self, *args) -> 'bool' + | is_varstr(self) -> bool + | Is variable size structure? + | + | like_union(self, *args) -> 'bool' + | like_union(self) -> bool + | Is a union or contains members of type "union"? + | + | set_alignment(self, *args) -> 'void' + | set_alignment(self, shift) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) + | + | set_ghost(self, *args) -> 'void' + | set_ghost(self, _is_ghost) + | + | @param _is_ghost: bool + | + | unsync(self, *args) -> 'void' + | unsync(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | age + | age + | + | id + | id + | + | members + | __get_members__(self) -> dyn_member_ref_array + | + | memqty + | memqty + | + | ordinal + | ordinal + | + | props + | props + | + | thisown + | The membership flag + +Help on class struct_field_visitor_t in module ida_struct: + +class struct_field_visitor_t(builtins.object) + | Proxy of C++ struct_field_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> struct_field_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_struct_field_visitor_t(...) + | delete_struct_field_visitor_t(self) + | + | visit_field(self, *args) -> 'int' + | visit_field(self, sptr, mptr) -> int + | + | @param sptr: struc_t * + | @param mptr: member_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function visit_stroff_fields in module ida_struct: + +visit_stroff_fields(*args) -> 'adiff_t *' + visit_stroff_fields(sfv, path, disp, appzero) -> flags64_t + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. + + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? + +Module "ida_tryblks"s docstring: +""" +Architecture independent exception handling info. + +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. + +See examples in tests/input/src/eh_tests.""" + +Help on function add_tryblk in module ida_tryblks: + +add_tryblk(*args) -> 'int' + add_tryblk(tb) -> int + Add one try block information. + + @param tb: (C++: const tryblk_t &) try block to add. + @return: error code; 0 means good + +Help on class catch_t in module ida_tryblks: + +class catch_t(try_handler_t) + | Proxy of C++ catch_t class. + | + | Method resolution order: + | catch_t + | try_handler_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> catch_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_catch_t(...) + | delete_catch_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | obj + | obj + | + | thisown + | The membership flag + | + | type_id + | type_id + | + | ---------------------------------------------------------------------- + | Methods inherited from try_handler_t: + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from try_handler_t: + | + | disp + | disp + | + | fpreg + | fpreg + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class catchvec_t in module ida_tryblks: + +class catchvec_t(builtins.object) + | Proxy of C++ qvector< catch_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< catch_t > const & + | + | __getitem__(self, *args) -> 'catch_t const &' + | __getitem__(self, i) -> catch_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> catchvec_t + | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< catch_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: catch_t const & + | + | __swig_destroy__ = delete_catchvec_t(...) + | delete_catchvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: catch_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: catch_t const & + | + | at(self, *args) -> 'catch_t const &' + | at(self, _idx) -> catch_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< catch_t >::const_iterator' + | begin(self) -> catch_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< catch_t >::const_iterator' + | end(self) -> catch_t + | + | erase(self, *args) -> 'qvector< catch_t >::iterator' + | erase(self, it) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | + | erase(self, first, last) -> catch_t + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator + | + | extract(self, *args) -> 'catch_t *' + | extract(self) -> catch_t + | + | find(self, *args) -> 'qvector< catch_t >::const_iterator' + | find(self, x) -> catch_t + | + | @param x: catch_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=catch_t()) + | + | @param x: catch_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: catch_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: catch_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< catch_t >::iterator' + | insert(self, it, x) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'catch_t &' + | push_back(self, x) + | + | @param x: catch_t const & + | + | push_back(self) -> catch_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: catch_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< catch_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function del_tryblks in module ida_tryblks: + +del_tryblks(*args) -> 'void' + del_tryblks(range) + Delete try block information in the specified range. + + @param range: (C++: const range_t &) the range to be cleared + +Help on function find_syseh in module ida_tryblks: + +find_syseh(*args) -> 'ea_t' + find_syseh(ea) -> ea_t + Find the start address of the system eh region including the argument. + + @param ea: (C++: ea_t) search address + @return: start address of surrounding tryblk, otherwise BADADDR + +Help on function get_tryblks in module ida_tryblks: + +get_tryblks(*args) -> 'size_t' + get_tryblks(tbv, range) -> size_t + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. + + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change + @return: number of found try blocks + +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) -> 'bool' + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() + +Help on class seh_t in module ida_tryblks: + +class seh_t(try_handler_t) + | Proxy of C++ seh_t class. + | + | Method resolution order: + | seh_t + | try_handler_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> seh_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_seh_t(...) + | delete_seh_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | filter + | filter + | + | seh_code + | seh_code + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from try_handler_t: + | + | disp + | disp + | + | fpreg + | fpreg + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class try_handler_t in module ida_tryblks: + +class try_handler_t(ida_range.rangevec_t) + | Proxy of C++ try_handler_t class. + | + | Method resolution order: + | try_handler_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> try_handler_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_try_handler_t(...) + | delete_try_handler_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | disp + | disp + | + | fpreg + | fpreg + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class tryblk_t in module ida_tryblks: + +class tryblk_t(ida_range.rangevec_t) + | Proxy of C++ tryblk_t class. + | + | Method resolution order: + | tryblk_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> tryblk_t + | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tryblk_t(...) + | delete_tryblk_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | cpp(self, *args) -> 'catchvec_t &' + | cpp(self) -> catchvec_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | get_kind(self, *args) -> 'uchar' + | get_kind(self) -> uchar + | + | is_cpp(self, *args) -> 'bool' + | is_cpp(self) -> bool + | + | is_seh(self, *args) -> 'bool' + | is_seh(self) -> bool + | + | seh(self, *args) -> 'seh_t &' + | seh(self) -> seh_t + | + | set_cpp(self, *args) -> 'catchvec_t &' + | set_cpp(self) -> catchvec_t + | + | set_seh(self, *args) -> 'seh_t &' + | set_seh(self) -> seh_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | level + | level + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class tryblks_t in module ida_tryblks: + +class tryblks_t(builtins.object) + | Proxy of C++ qvector< tryblk_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & + | + | __getitem__(self, *args) -> 'tryblk_t const &' + | __getitem__(self, i) -> tryblk_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> tryblks_t + | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tryblk_t const & + | + | __swig_destroy__ = delete_tryblks_t(...) + | delete_tryblks_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: tryblk_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: tryblk_t const & + | + | at(self, *args) -> 'tryblk_t const &' + | at(self, _idx) -> tryblk_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< tryblk_t >::const_iterator' + | begin(self) -> tryblk_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< tryblk_t >::const_iterator' + | end(self) -> tryblk_t + | + | erase(self, *args) -> 'qvector< tryblk_t >::iterator' + | erase(self, it) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | + | erase(self, first, last) -> tryblk_t + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator + | + | extract(self, *args) -> 'tryblk_t *' + | extract(self) -> tryblk_t + | + | find(self, *args) -> 'qvector< tryblk_t >::const_iterator' + | find(self, x) -> tryblk_t + | + | @param x: tryblk_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=tryblk_t()) + | + | @param x: tryblk_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: tryblk_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: tryblk_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< tryblk_t >::iterator' + | insert(self, it, x) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'tryblk_t &' + | push_back(self, x) + | + | @param x: tryblk_t const & + | + | push_back(self) -> tryblk_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tryblk_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< tryblk_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_typeinf"s docstring: +""" +Describes the type information records in IDA. + +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. + +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. + +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" + +Help on function f in module ida_idaapi: + +f() + +Help on swigvarlink object: + +<class 'swigvarlink'> +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(builtins.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | Implement setattr(self, name, value). + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function add_til in module ida_typeinf: + +add_til(*args) -> 'int' + add_til(name, flags) -> int + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. + + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes + +Help on function alloc_type_ordinal in module ida_typeinf: + +alloc_type_ordinal(*args) -> 'uint32' + alloc_type_ordinal(ti) -> uint32 + alloc_type_ordinals(ti, 1) + + @param ti: (C++: til_t *) + +Help on function alloc_type_ordinals in module ida_typeinf: + +alloc_type_ordinals(*args) -> 'uint32' + alloc_type_ordinals(ti, qty) -> uint32 + Allocate a range of ordinal numbers for new types. + + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate + @return: the first ordinal. 0 means failure. + +Help on class aloc_visitor_t in module ida_typeinf: + +class aloc_visitor_t(builtins.object) + | Proxy of C++ aloc_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> aloc_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_aloc_visitor_t(...) + | delete_aloc_visitor_t(self) + | + | visit_location(self, *args) -> 'int' + | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t & + | @param off: int + | @param size: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function append_abi_opts in module ida_typeinf: + +append_abi_opts(*args) -> 'bool' + append_abi_opts(abi_opts, user_level=False) -> bool + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... + + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) + @return: success + +Help on function append_argloc in module ida_typeinf: + +append_argloc(*args) -> 'bool' + append_argloc(out, vloc) -> bool + Serialize argument location + + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & + +Help on function append_tinfo_covered in module ida_typeinf: + +append_tinfo_covered(*args) -> 'bool' + append_tinfo_covered(out, typid, offset) -> bool + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 + +Help on function apply_callee_tinfo in module ida_typeinf: + +apply_callee_tinfo(*args) -> 'bool' + apply_callee_tinfo(caller, tif) -> bool + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. + + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info + @return: success + +Help on function apply_cdecl in module ida_typeinf: + +apply_cdecl(*args) -> 'bool' + apply_cdecl(til, ea, decl, flags=0) -> bool + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() + + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) + @return: success + +Help on function apply_named_type in module ida_typeinf: + +apply_named_type(*args) -> 'bool' + apply_named_type(ea, name) -> bool + Apply the specified named type to the address. + + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" + @return: success + +Help on function apply_once_tinfo_and_name in module ida_typeinf: + +apply_once_tinfo_and_name(*args) -> 'bool' + apply_once_tinfo_and_name(dea, tif, name) -> bool + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. + + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address + @return: success + +Help on function apply_tinfo in module ida_typeinf: + +apply_tinfo(*args) -> 'bool' + apply_tinfo(ea, tif, flags) -> bool + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. + + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags + @return: success + +Help on function apply_tinfo_to_stkarg in module ida_typeinf: + +apply_tinfo_to_stkarg(*args) -> 'bool' + apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool + Helper function for the processor modules. to be called from + processor_t::use_stkarg_type + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * + +Help on function apply_type in module ida_typeinf: + +apply_type(*args) -> 'bool' + apply_type(ti, type, fields, ea, flags) -> bool + Apply the specified type to the address + + @param ti: Type info library. 'None' can be used. + @param type: type_t const * + @param fields: p_list const * + @param ea: the address of the object + @param flags: combination of TINFO_... constants or 0 + @return: Boolean + +Help on class argloc_t in module ida_typeinf: + +class argloc_t(builtins.object) + | Proxy of C++ argloc_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __init__(self, *args) + | __init__(self) -> argloc_t + | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argloc_t(...) + | delete_argloc_t(self) + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: argloc_t const & + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class argpart_t in module ida_typeinf: + +class argpart_t(argloc_t) + | Proxy of C++ argpart_t class. + | + | Method resolution order: + | argpart_t + | argloc_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, a) -> argpart_t + | + | @param a: argloc_t const & + | + | __init__(self) -> argpart_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: argpart_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argpart_t(...) + | delete_argpart_t(self) + | + | bad_offset(self, *args) -> 'bool' + | bad_offset(self) -> bool + | Does this argpart have a valid offset? + | + | bad_size(self, *args) -> 'bool' + | bad_size(self) -> bool + | Does this argpart have a valid size? + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: argpart_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | off + | off + | + | size + | size + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from argloc_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: argloc_t const & + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: argloc_t const & + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from argloc_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from argloc_t: + | + | __hash__ = None + +Help on class argpartvec_t in module ida_typeinf: + +class argpartvec_t(builtins.object) + | Proxy of C++ qvector< argpart_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __getitem__(self, *args) -> 'argpart_t const &' + | __getitem__(self, i) -> argpart_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> argpartvec_t + | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & + | + | __swig_destroy__ = delete_argpartvec_t(...) + | delete_argpartvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: argpart_t const & + | + | at(self, *args) -> 'argpart_t const &' + | at(self, _idx) -> argpart_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' + | begin(self) -> argpart_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< argpart_t >::const_iterator' + | end(self) -> argpart_t + | + | erase(self, *args) -> 'qvector< argpart_t >::iterator' + | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | + | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator + | + | extract(self, *args) -> 'argpart_t *' + | extract(self) -> argpart_t + | + | find(self, *args) -> 'qvector< argpart_t >::const_iterator' + | find(self, x) -> argpart_t + | + | @param x: argpart_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: argpart_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< argpart_t >::iterator' + | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'argpart_t &' + | push_back(self, x) + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< argpart_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class argtinfo_helper_t in module ida_typeinf: + +class argtinfo_helper_t(builtins.object) + | Proxy of C++ argtinfo_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> argtinfo_helper_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argtinfo_helper_t(...) + | delete_argtinfo_helper_t(self) + | + | has_delay_slot(self, *args) -> 'bool' + | has_delay_slot(self, arg0) -> bool + | The call instruction with a delay slot?. + | + | @param arg0: ea_t + | + | is_stkarg_load(self, *args) -> 'bool' + | is_stkarg_load(self, insn, src, dst) -> bool + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) + | + | set_op_tinfo(self, *args) -> 'bool' + | set_op_tinfo(self, insn, x, tif, name) -> bool + | Set the operand type as specified. + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | + | use_arg_tinfos(self, *args) -> 'void' + | use_arg_tinfos(self, caller, fti, rargs) + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag + +Help on class array_type_data_t in module ida_typeinf: + +class array_type_data_t(builtins.object) + | Proxy of C++ array_type_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, b=0, n=0) -> array_type_data_t + | + | @param b: size_t + | @param n: size_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_array_type_data_t(...) + | delete_array_type_data_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | set this = r and r = this + | + | @param r: (C++: array_type_data_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | base + | base + | + | elem_type + | elem_type + | + | nelems + | nelems + | + | thisown + | The membership flag + +Help on function begin_type_updating in module ida_typeinf: + +begin_type_updating(*args) -> 'void' + begin_type_updating(utp) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() + + @param utp: (C++: update_type_t) enum update_type_t + +Help on class bitfield_type_data_t in module ida_typeinf: + +class bitfield_type_data_t(builtins.object) + | Proxy of C++ bitfield_type_data_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __init__(self, *args) + | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bitfield_type_data_t(...) + | delete_bitfield_type_data_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitfield_type_data_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: bitfield_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | is_unsigned + | is_unsigned + | + | nbytes + | nbytes + | + | thisown + | The membership flag + | + | width + | width + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function calc_c_cpp_name in module ida_typeinf: + +calc_c_cpp_name(*args) -> 'qstring *' + calc_c_cpp_name(name, type, ccn_flags) -> str + Get C or C++ form of the name. + + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags + +Help on function calc_number_of_children in module ida_typeinf: + +calc_number_of_children(*args) -> 'int' + calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). + + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines + +Help on function calc_tinfo_gaps in module ida_typeinf: + +calc_tinfo_gaps(*args) -> 'bool' + calc_tinfo_gaps(out, typid) -> bool + + @param out: rangeset_t * + @param typid: uint32 + +Help on function calc_type_size in module ida_typeinf: + +calc_type_size(*args) -> 'PyObject *' + calc_type_size(ti, tp) -> PyObject * + Returns the size of a type + + @param ti: Type info. 'None' can be passed. + @param tp: type string + @return: - None on failure + - The size of the type + +Help on class callregs_t in module ida_typeinf: + +class callregs_t(builtins.object) + | Proxy of C++ callregs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> callregs_t + | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_callregs_t(...) + | delete_callregs_t(self) + | + | by_slots(self, *args) -> 'bool' + | by_slots(self) -> bool + | + | init_regs(self, *args) -> 'void' + | init_regs(self, cc) + | Init policy & registers for given CC. + | + | @param cc: (C++: cm_t) + | + | reginds(self, *args) -> 'bool' + | reginds(self, gp_ind, fp_ind, r) -> bool + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) + | + | reset(self, *args) -> 'void' + | reset(self) + | Set policy and registers to invalid values. + | + | set(self, *args) -> 'void' + | set(self, _policy, gprs, fprs) + | Init policy & registers (arrays are -1-terminated) + | + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | regcount(*args) -> 'int' + | regcount(cc) -> int + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fpregs + | fpregs + | + | gpregs + | gpregs + | + | nregs + | nregs + | + | policy + | policy + | + | thisown + | The membership flag + +Help on function callregs_t_regcount in module ida_typeinf: + +callregs_t_regcount(*args) -> 'int' + callregs_t_regcount(cc) -> int + + @param cc: cm_t + +Help on function choose_local_tinfo in module ida_typeinf: + +choose_local_tinfo(*args) -> 'uint32' + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 + Choose a type from the local type library. + + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number + +Help on function choose_local_tinfo_and_delta in module ida_typeinf: + +choose_local_tinfo_and_delta(*args) -> 'uint32' + choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + Choose a type from the local type library and specify the pointer shift value. + + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number + +Help on function choose_named_type in module ida_typeinf: + +choose_named_type(*args) -> 'bool' + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool + Choose a type from a type library. + + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) + @return: false if nothing is chosen, otherwise true + +Help on function clear_tinfo_t in module ida_typeinf: + +clear_tinfo_t(*args) -> 'void' + clear_tinfo_t(_this) + + @param _this: tinfo_t * + +Help on function compact_til in module ida_typeinf: + +compact_til(*args) -> 'bool' + compact_til(ti) -> bool + Collect garbage in til. Must be called before storing the til. + + @param ti: (C++: til_t *) + @return: true if any memory was freed + +Help on function compare_tinfo in module ida_typeinf: + +compare_tinfo(*args) -> 'bool' + compare_tinfo(t1, t2, tcflags) -> bool + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int + +Help on class const_aloc_visitor_t in module ida_typeinf: + +class const_aloc_visitor_t(builtins.object) + | Proxy of C++ const_aloc_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> const_aloc_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_const_aloc_visitor_t(...) + | delete_const_aloc_visitor_t(self) + | + | visit_location(self, *args) -> 'int' + | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t const & + | @param off: int + | @param size: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function convert_pt_flags_to_hti in module ida_typeinf: + +convert_pt_flags_to_hti(*args) -> 'int' + convert_pt_flags_to_hti(pt_flags) -> int + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) + + @param pt_flags: (C++: int) + +Help on function copy_named_type in module ida_typeinf: + +copy_named_type(*args) -> 'uint32' + copy_named_type(dsttil, srctil, name) -> uint32 + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. + + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy + @return: ordinal number of the copied type. 0 means error + +Help on function copy_tinfo_t in module ida_typeinf: + +copy_tinfo_t(*args) -> 'void' + copy_tinfo_t(_this, r) + + @param _this: tinfo_t * + @param r: tinfo_t const & + +Help on function create_numbered_type_name in module ida_typeinf: + +create_numbered_type_name(*args) -> 'qstring *' + create_numbered_type_name(ord) -> str + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length + + @param ord: (C++: int32) + +Help on function create_tinfo in module ida_typeinf: + +create_tinfo(*args) -> 'bool' + create_tinfo(_this, bt, bt2, ptr) -> bool + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * + +Help on function default_compiler in module ida_typeinf: + +default_compiler(*args) -> 'comp_t' + default_compiler() -> comp_t + Get compiler specified by inf.cc. + +Help on function del_named_type in module ida_typeinf: + +del_named_type(*args) -> 'bool' + del_named_type(ti, name, ntf_flags) -> bool + Delete information about a symbol. + + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types + @return: success + +Help on function del_numbered_type in module ida_typeinf: + +del_numbered_type(*args) -> 'bool' + del_numbered_type(ti, ordinal) -> bool + Delete a numbered type. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + +Help on function del_til in module ida_typeinf: + +del_til(*args) -> 'bool' + del_til(name) -> bool + Unload a til file. + + @param name: (C++: const char *) char const * + +Help on function del_tinfo_attr in module ida_typeinf: + +del_tinfo_attr(*args) -> 'bool' + del_tinfo_attr(tif, key, make_copy) -> bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool + +Help on function del_vftable_ea in module ida_typeinf: + +del_vftable_ea(*args) -> 'bool' + del_vftable_ea(ordinal) -> bool + Delete the address of a vftable instance for a vftable type. + + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success + +Help on function deref_ptr in module ida_typeinf: + +deref_ptr(*args) -> 'bool' + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool + Dereference a pointer. + + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) + @return: success + +Help on function deserialize_tinfo in module ida_typeinf: + +deserialize_tinfo(*args) -> 'bool' + deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** + +Help on function dstr_tinfo in module ida_typeinf: + +dstr_tinfo(*args) -> 'char const *' + dstr_tinfo(tif) -> char const * + + @param tif: tinfo_t const * + +Help on function dump_func_type_data in module ida_typeinf: + +dump_func_type_data(*args) -> 'qstring *' + dump_func_type_data(fti, praloc_bits) -> str + Use func_type_data_t::dump() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) + +Help on function end_type_updating in module ida_typeinf: + +end_type_updating(*args) -> 'void' + end_type_updating(utp) + Mark the end of a large update operation on the types (see + begin_type_updating()) + + @param utp: (C++: update_type_t) enum update_type_t + +Help on class enum_member_t in module ida_typeinf: + +class enum_member_t(builtins.object) + | Proxy of C++ enum_member_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: enum_member_t const & + | + | __init__(self, *args) + | __init__(self) -> enum_member_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: enum_member_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_member_t(...) + | delete_enum_member_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: enum_member_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | name + | name + | + | thisown + | The membership flag + | + | value + | value + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class enum_member_vec_t in module ida_typeinf: + +class enum_member_vec_t(builtins.object) + | Proxy of C++ qvector< enum_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __getitem__(self, *args) -> 'enum_member_t const &' + | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> enum_member_vec_t + | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & + | + | __swig_destroy__ = delete_enum_member_vec_t(...) + | delete_enum_member_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & + | + | at(self, *args) -> 'enum_member_t const &' + | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | begin(self) -> enum_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | end(self) -> enum_member_t + | + | erase(self, *args) -> 'qvector< enum_member_t >::iterator' + | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | + | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator + | + | extract(self, *args) -> 'enum_member_t *' + | extract(self) -> enum_member_t + | + | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: enum_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< enum_member_t >::iterator' + | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'enum_member_t &' + | push_back(self, x) + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< enum_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class enum_type_data_t in module ida_typeinf: + +class enum_type_data_t(enum_member_vec_t) + | Proxy of C++ enum_type_data_t class. + | + | Method resolution order: + | enum_type_data_t + | enum_member_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | + | @param _bte: bte_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_type_data_t(...) + | delete_enum_type_data_t(self) + | + | calc_mask(self, *args) -> 'uint64' + | calc_mask(self) -> uint64 + | + | calc_nbytes(self, *args) -> 'int' + | calc_nbytes(self) -> int + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | + | is_char(self, *args) -> 'bool' + | is_char(self) -> bool + | + | is_hex(self, *args) -> 'bool' + | is_hex(self) -> bool + | + | is_sdec(self, *args) -> 'bool' + | is_sdec(self) -> bool + | + | is_udec(self, *args) -> 'bool' + | is_udec(self) -> bool + | + | swap(self, *args) -> 'void' + | swap(self, r) + | swap two instances + | + | @param r: (C++: enum_type_data_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bte + | bte + | + | group_sizes + | group_sizes + | + | taenum_bits + | taenum_bits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from enum_member_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __getitem__(self, *args) -> 'enum_member_t const &' + | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & + | + | at(self, *args) -> 'enum_member_t const &' + | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | begin(self) -> enum_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | end(self) -> enum_member_t + | + | erase(self, *args) -> 'qvector< enum_member_t >::iterator' + | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | + | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator + | + | extract(self, *args) -> 'enum_member_t *' + | extract(self) -> enum_member_t + | + | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: enum_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< enum_member_t >::iterator' + | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'enum_member_t &' + | push_back(self, x) + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from enum_member_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from enum_member_vec_t: + | + | __hash__ = None + +Help on function extract_argloc in module ida_typeinf: + +extract_argloc(*args) -> 'bool' + extract_argloc(vloc, ptype, forbid_stkoff) -> bool + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack + + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) + +Help on function find_tinfo_udt_member in module ida_typeinf: + +find_tinfo_udt_member(*args) -> 'int' + find_tinfo_udt_member(udm, typid, strmem_flags) -> int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int + +Help on function first_named_type in module ida_typeinf: + +first_named_type(*args) -> 'char const *' + first_named_type(ti, ntf_flags) -> char const * + Enumerate types. + + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. + +Help on function for_all_arglocs in module ida_typeinf: + +for_all_arglocs(*args) -> 'int' + for_all_arglocs(vv, vloc, size, off=0) -> int + Compress larger argloc types and initiate the aloc visitor. + + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) + +Help on function for_all_const_arglocs in module ida_typeinf: + +for_all_const_arglocs(*args) -> 'int' + for_all_const_arglocs(vv, vloc, size, off=0) -> int + See for_all_arglocs() + + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) + +Help on function free_til in module ida_typeinf: + +free_til(*args) -> 'void' + free_til(ti) + Free memory allocated by til. + + @param ti: (C++: til_t *) + +Help on function func_has_stkframe_hole in module ida_typeinf: + +func_has_stkframe_hole(*args) -> 'bool' + func_has_stkframe_hole(ea, fti) -> bool + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. + + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + +Help on class func_type_data_t in module ida_typeinf: + +class func_type_data_t(funcargvec_t) + | Proxy of C++ func_type_data_t class. + | + | Method resolution order: + | func_type_data_t + | funcargvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_type_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_type_data_t(...) + | delete_func_type_data_t(self) + | + | dump(self, *args) -> 'bool' + | dump(self, praloc_bits=0x02) -> bool + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) + | + | get_call_method(self, *args) -> 'int' + | get_call_method(self) -> int + | + | guess_cc(self, *args) -> 'cm_t' + | guess_cc(self, purged, cc_flags) -> cm_t + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | + | is_ctor(self, *args) -> 'bool' + | is_ctor(self) -> bool + | + | is_dtor(self, *args) -> 'bool' + | is_dtor(self) -> bool + | + | is_golang_cc(self, *args) -> 'bool' + | is_golang_cc(self) -> bool + | + | is_high(self, *args) -> 'bool' + | is_high(self) -> bool + | + | is_noret(self, *args) -> 'bool' + | is_noret(self) -> bool + | + | is_pure(self, *args) -> 'bool' + | is_pure(self) -> bool + | + | is_static(self, *args) -> 'bool' + | is_static(self) -> bool + | + | is_vararg_cc(self, *args) -> 'bool' + | is_vararg_cc(self) -> bool + | + | is_virtual(self, *args) -> 'bool' + | is_virtual(self) -> bool + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: func_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cc + | cc + | + | flags + | flags + | + | retloc + | retloc + | + | rettype + | rettype + | + | spoiled + | spoiled + | + | stkargs + | stkargs + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from funcargvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __getitem__(self, *args) -> 'funcarg_t const &' + | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & + | + | at(self, *args) -> 'funcarg_t const &' + | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | begin(self) -> funcarg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | end(self) -> funcarg_t + | + | erase(self, *args) -> 'qvector< funcarg_t >::iterator' + | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | + | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator + | + | extract(self, *args) -> 'funcarg_t *' + | extract(self) -> funcarg_t + | + | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: funcarg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< funcarg_t >::iterator' + | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'funcarg_t &' + | push_back(self, x) + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from funcargvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from funcargvec_t: + | + | __hash__ = None + +Help on class funcarg_t in module ida_typeinf: + +class funcarg_t(builtins.object) + | Proxy of C++ funcarg_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: funcarg_t const & + | + | __init__(self, *args) + | __init__(self) -> funcarg_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: funcarg_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_funcarg_t(...) + | delete_funcarg_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argloc + | argloc + | + | cmt + | cmt + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class funcargvec_t in module ida_typeinf: + +class funcargvec_t(builtins.object) + | Proxy of C++ qvector< funcarg_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __getitem__(self, *args) -> 'funcarg_t const &' + | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> funcargvec_t + | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & + | + | __swig_destroy__ = delete_funcargvec_t(...) + | delete_funcargvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & + | + | at(self, *args) -> 'funcarg_t const &' + | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | begin(self) -> funcarg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | end(self) -> funcarg_t + | + | erase(self, *args) -> 'qvector< funcarg_t >::iterator' + | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | + | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator + | + | extract(self, *args) -> 'funcarg_t *' + | extract(self) -> funcarg_t + | + | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: funcarg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< funcarg_t >::iterator' + | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'funcarg_t &' + | push_back(self, x) + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< funcarg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function gcc_layout in module ida_typeinf: + +gcc_layout(*args) -> 'bool' + gcc_layout() -> bool + Should use the struct/union layout as done by gcc? + +Help on function gen_decorate_name in module ida_typeinf: + +gen_decorate_name(*args) -> 'qstring *' + gen_decorate_name(name, mangle, cc, type) -> str + Generic function for decorate_name() (may be used in IDP modules) + + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * + +Help on function gen_use_arg_tinfos in module ida_typeinf: + +gen_use_arg_tinfos(*args) -> 'void' + gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) + + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * + +Help on function gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) -> 'void' + gen_use_arg_tinfos2(_this, caller, fti, rargs) + Do not call this function directly, use argtinfo_helper_t. + + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) + +Help on function get_abi_name in module ida_typeinf: + +get_abi_name(*args) -> 'qstring *' + get_abi_name() -> str + Get ABI name. + + @return: length of the name (>=0) + +Help on function get_alias_target in module ida_typeinf: + +get_alias_target(*args) -> 'uint32' + get_alias_target(ti, ordinal) -> uint32 + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) + +Help on function get_arg_addrs in module ida_typeinf: + +get_arg_addrs(*args) -> 'PyObject *' + get_arg_addrs(caller) -> PyObject * + Retrieve addresses of argument initialization instructions + + @param caller: the address of the call instruction + @return: list of instruction addresses + +Help on function get_base_type in module ida_typeinf: + +get_base_type(*args) -> 'type_t' + get_base_type(t) -> type_t + Get get basic type bits (TYPE_BASE_MASK) + + @param t: (C++: type_t) + +Help on function get_c_header_path in module ida_typeinf: + +get_c_header_path(*args) -> 'qstring *' + get_c_header_path() -> str + Get the include directory path of the target compiler. + +Help on function get_c_macros in module ida_typeinf: + +get_c_macros(*args) -> 'qstring *' + get_c_macros() -> str + Get predefined macros for the target compiler. + +Help on function get_comp in module ida_typeinf: + +get_comp(*args) -> 'comp_t' + get_comp(comp) -> comp_t + Get compiler bits. + + @param comp: (C++: comp_t) + +Help on function get_compiler_abbr in module ida_typeinf: + +get_compiler_abbr(*args) -> 'char const *' + get_compiler_abbr(id) -> char const * + Get abbreviated compiler name. + + @param id: (C++: comp_t) + +Help on function get_compiler_name in module ida_typeinf: + +get_compiler_name(*args) -> 'char const *' + get_compiler_name(id) -> char const * + Get full compiler name. + + @param id: (C++: comp_t) + +Help on function get_compilers in module ida_typeinf: + +get_compilers(*args) -> 'void' + get_compilers(ids, names, abbrs) + Get names of all built-in compilers. + + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) + +Help on function get_enum_member_expr in module ida_typeinf: + +get_enum_member_expr(*args) -> 'qstring *' + get_enum_member_expr(tif, serial, value) -> str + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. + + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet + @return: success + +Help on function get_full_type in module ida_typeinf: + +get_full_type(*args) -> 'type_t' + get_full_type(t) -> type_t + Get basic type bits + type flags (TYPE_FULL_MASK) + + @param t: (C++: type_t) + +Help on function get_idainfo64_by_type in module ida_typeinf: + +get_idainfo64_by_type(*args) -> 'size_t *, opinfo_t *, size_t *' + get_idainfo64_by_type(out_flags, tif) -> bool + Extract information from a tinfo_t. + + @param out_flags: (C++: flags64_t *) description of type using flags64_t + @param tif: (C++: const tinfo_t &) the type to inspect + +Help on function get_idainfo_by_type in module ida_typeinf: + +get_idainfo_by_type(*args) -> 'size_t *, flags_t *, opinfo_t *, size_t *' + get_idainfo_by_type(tif) -> bool + Extract information from a tinfo_t. + + @param tif: (C++: const tinfo_t &) the type to inspect + +Help on function get_idati in module ida_typeinf: + +get_idati(*args) -> 'til_t const *' + get_idati() -> til_t + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. + +Help on function get_named_type in module ida_typeinf: + +get_named_type(*args) -> 'PyObject *' + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) + Get a type data by its name. + + @param til: the type library + @param name: the type name + @param ntf_flags: a combination of NTF_* constants + @return: None on failure + tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success + +Help on function get_named_type64 in module ida_typeinf: + +get_named_type64(*args) -> 'PyObject *' + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. + + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) + +Help on function get_numbered_type in module ida_typeinf: + +get_numbered_type(*args) -> 'PyObject *' + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) + Retrieve a type by its ordinal number. + + @param til: til_t const * + @param ordinal: (C++: uint32) + +Help on function get_numbered_type_name in module ida_typeinf: + +get_numbered_type_name(*args) -> 'char const *' + get_numbered_type_name(ti, ordinal) -> char const * + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) + +Help on function get_ordinal_from_idb_type in module ida_typeinf: + +get_ordinal_from_idb_type(*args) -> 'int' + get_ordinal_from_idb_type(name, type) -> int + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types + + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + +Help on function get_ordinal_qty in module ida_typeinf: + +get_ordinal_qty(*args) -> 'uint32' + get_ordinal_qty(ti) -> uint32 + Get number of allocated ordinals. + + @param ti: (C++: const til_t *) til_t const * + @return: uint32(-1) if failed + +Help on function get_scalar_bt in module ida_typeinf: + +get_scalar_bt(*args) -> 'type_t' + get_scalar_bt(size) -> type_t + + @param size: int + +Help on function get_stock_tinfo in module ida_typeinf: + +get_stock_tinfo(*args) -> 'bool' + get_stock_tinfo(tif, id) -> bool + + @param tif: tinfo_t * + @param id: enum stock_type_id_t + +Help on function get_tinfo_attr in module ida_typeinf: + +get_tinfo_attr(*args) -> 'bool' + get_tinfo_attr(typid, key, bv, all_attrs) -> bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool + +Help on function get_tinfo_attrs in module ida_typeinf: + +get_tinfo_attrs(*args) -> 'bool' + get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool + +Help on function get_tinfo_details in module ida_typeinf: + +get_tinfo_details(*args) -> 'bool' + get_tinfo_details(typid, bt2, buf) -> bool + + @param typid: uint32 + @param bt2: type_t + @param buf: void * + +Help on function get_tinfo_pdata in module ida_typeinf: + +get_tinfo_pdata(*args) -> 'size_t' + get_tinfo_pdata(outptr, typid, what) -> size_t + + @param outptr: void * + @param typid: uint32 + @param what: int + +Help on function get_tinfo_property in module ida_typeinf: + +get_tinfo_property(*args) -> 'size_t' + get_tinfo_property(typid, gta_prop) -> size_t + + @param typid: uint32 + @param gta_prop: int + +Help on function get_tinfo_size in module ida_typeinf: + +get_tinfo_size(*args) -> 'size_t' + get_tinfo_size(p_effalign, typid, gts_code) -> size_t + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int + +Help on function get_type_flags in module ida_typeinf: + +get_type_flags(*args) -> 'type_t' + get_type_flags(t) -> type_t + Get type flags (TYPE_FLAGS_MASK) + + @param t: (C++: type_t) + +Help on function get_type_ordinal in module ida_typeinf: + +get_type_ordinal(*args) -> 'int32' + get_type_ordinal(ti, name) -> int32 + Get type ordinal by its name. + + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + +Help on function get_vftable_ea in module ida_typeinf: + +get_vftable_ea(*args) -> 'ea_t' + get_vftable_ea(ordinal) -> ea_t + Get address of a virtual function table. + + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. + +Help on function get_vftable_ordinal in module ida_typeinf: + +get_vftable_ordinal(*args) -> 'uint32' + get_vftable_ordinal(vftable_ea) -> uint32 + Get ordinal number of the virtual function table. + + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. + +Help on function guess_func_cc in module ida_typeinf: + +guess_func_cc(*args) -> 'cm_t' + guess_func_cc(fti, npurged, cc_flags) -> cm_t + Use func_type_data_t::guess_cc() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) + +Help on function guess_tinfo in module ida_typeinf: + +guess_tinfo(*args) -> 'int' + guess_tinfo(tif, id) -> int + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. + + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes + +Help on class ida_lowertype_helper_t in module ida_typeinf: + +class ida_lowertype_helper_t(lowertype_helper_t) + | Proxy of C++ ida_lowertype_helper_t class. + | + | Method resolution order: + | ida_lowertype_helper_t + | lowertype_helper_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ida_lowertype_helper_t(...) + | delete_ida_lowertype_helper_t(self) + | + | func_has_stkframe_hole(self, *args) -> 'bool' + | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & + | + | get_func_purged_bytes(self, *args) -> 'int' + | get_func_purged_bytes(self, candidate, arg3) -> int + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from lowertype_helper_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function idc_get_local_type in module ida_typeinf: + +idc_get_local_type(*args) -> 'size_t' + idc_get_local_type(ordinal, flags) -> str + + @param ordinal: int + @param flags: int + +Help on function idc_get_local_type_name in module ida_typeinf: + +idc_get_local_type_name(*args) -> 'size_t' + idc_get_local_type_name(ordinal) -> str + + @param ordinal: int + +Help on function idc_get_local_type_raw in module ida_typeinf: + +idc_get_local_type_raw(*args) -> 'PyObject *' + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int + +Help on function idc_get_type in module ida_typeinf: + +idc_get_type(*args) -> 'size_t' + idc_get_type(ea) -> str + + @param ea: ea_t + +Help on function idc_get_type_raw in module ida_typeinf: + +idc_get_type_raw(*args) -> 'PyObject *' + idc_get_type_raw(ea) -> PyObject * + + @param ea: ea_t + +Help on function idc_guess_type in module ida_typeinf: + +idc_guess_type(*args) -> 'size_t' + idc_guess_type(ea) -> str + + @param ea: ea_t + +Help on function idc_parse_decl in module ida_typeinf: + +idc_parse_decl(*args) -> 'PyObject *' + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int + +Help on function idc_parse_types in module ida_typeinf: + +idc_parse_types(*args) -> 'int' + idc_parse_types(input, flags) -> int + + @param input: char const * + @param flags: int + +Help on function idc_print_type in module ida_typeinf: + +idc_print_type(*args) -> 'PyObject *' + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int + +Help on function idc_set_local_type in module ida_typeinf: + +idc_set_local_type(*args) -> 'int' + idc_set_local_type(ordinal, dcl, flags) -> int + + @param ordinal: int + @param dcl: char const * + @param flags: int + +Help on function import_type in module ida_typeinf: + +import_type(*args) -> 'tid_t' + import_type(til, idx, name, flags=0) -> tid_t + Copy a named type from til to idb. + + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + +Help on function is_autosync in module ida_typeinf: + +is_autosync(*args) -> 'bool' + is_autosync(name, type) -> bool + Is the specified idb type automatically synchronized? + + @param name: (C++: const char *) char const * + @param type: type_t const * + + is_autosync(name, tif) -> bool + + @param name: char const * + @param tif: tinfo_t const & + +Help on function is_code_far in module ida_typeinf: + +is_code_far(*args) -> 'bool' + is_code_far(cm) -> bool + Does the given model specify far code?. + + @param cm: (C++: cm_t) + +Help on function is_comp_unsure in module ida_typeinf: + +is_comp_unsure(*args) -> 'comp_t' + is_comp_unsure(comp) -> comp_t + See COMP_UNSURE. + + @param comp: (C++: comp_t) + +Help on function is_data_far in module ida_typeinf: + +is_data_far(*args) -> 'bool' + is_data_far(cm) -> bool + Does the given model specify far data?. + + @param cm: (C++: cm_t) + +Help on function is_gcc in module ida_typeinf: + +is_gcc(*args) -> 'bool' + is_gcc() -> bool + Is the target compiler COMP_GNU? + +Help on function is_gcc32 in module ida_typeinf: + +is_gcc32(*args) -> 'bool' + is_gcc32() -> bool + Is the target compiler 32 bit gcc? + +Help on function is_gcc64 in module ida_typeinf: + +is_gcc64(*args) -> 'bool' + is_gcc64() -> bool + Is the target compiler 64 bit gcc? + +Help on function is_golang_cc in module ida_typeinf: + +is_golang_cc(*args) -> 'bool' + is_golang_cc(cc) -> bool + GO language calling convention (return value in stack)? + + @param cc: (C++: cm_t) + +Help on function is_ordinal_name in module ida_typeinf: + +is_ordinal_name(*args) -> 'bool' + is_ordinal_name(name, ord=None) -> bool + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) + + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) + +Help on function is_purging_cc in module ida_typeinf: + +is_purging_cc(*args) -> 'bool' + is_purging_cc(cm) -> bool + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code + + @param cm: (C++: cm_t) + +Help on function is_restype_enum in module ida_typeinf: + +is_restype_enum(*args) -> 'bool' + is_restype_enum(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_restype_struct in module ida_typeinf: + +is_restype_struct(*args) -> 'bool' + is_restype_struct(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_restype_struni in module ida_typeinf: + +is_restype_struni(*args) -> 'bool' + is_restype_struni(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_restype_void in module ida_typeinf: + +is_restype_void(*args) -> 'bool' + is_restype_void(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_sdacl_byte in module ida_typeinf: + +is_sdacl_byte(*args) -> 'bool' + is_sdacl_byte(t) -> bool + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) + +Help on function is_tah_byte in module ida_typeinf: + +is_tah_byte(*args) -> 'bool' + is_tah_byte(t) -> bool + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) + +Help on function is_type_arithmetic in module ida_typeinf: + +is_type_arithmetic(*args) -> 'bool' + is_type_arithmetic(t) -> bool + Is the type an arithmetic type? (floating or integral) + + @param t: (C++: type_t) + +Help on function is_type_array in module ida_typeinf: + +is_type_array(*args) -> 'bool' + is_type_array(t) -> bool + See BT_ARRAY. + + @param t: (C++: type_t) + +Help on function is_type_bitfld in module ida_typeinf: + +is_type_bitfld(*args) -> 'bool' + is_type_bitfld(t) -> bool + See BT_BITFIELD. + + @param t: (C++: type_t) + +Help on function is_type_bool in module ida_typeinf: + +is_type_bool(*args) -> 'bool' + is_type_bool(t) -> bool + See BTF_BOOL. + + @param t: (C++: type_t) + +Help on function is_type_char in module ida_typeinf: + +is_type_char(*args) -> 'bool' + is_type_char(t) -> bool + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_complex in module ida_typeinf: + +is_type_complex(*args) -> 'bool' + is_type_complex(t) -> bool + See BT_COMPLEX. + + @param t: (C++: type_t) + +Help on function is_type_const in module ida_typeinf: + +is_type_const(*args) -> 'bool' + is_type_const(t) -> bool + See BTM_CONST. + + @param t: (C++: type_t) + +Help on function is_type_double in module ida_typeinf: + +is_type_double(*args) -> 'bool' + is_type_double(t) -> bool + See BTF_DOUBLE. + + @param t: (C++: type_t) + +Help on function is_type_enum in module ida_typeinf: + +is_type_enum(*args) -> 'bool' + is_type_enum(t) -> bool + See BTF_ENUM. + + @param t: (C++: type_t) + +Help on function is_type_ext_arithmetic in module ida_typeinf: + +is_type_ext_arithmetic(*args) -> 'bool' + is_type_ext_arithmetic(t) -> bool + Is the type an extended arithmetic type? (arithmetic or enum) + + @param t: (C++: type_t) + +Help on function is_type_ext_integral in module ida_typeinf: + +is_type_ext_integral(*args) -> 'bool' + is_type_ext_integral(t) -> bool + Is the type an extended integral type? (integral or enum) + + @param t: (C++: type_t) + +Help on function is_type_float in module ida_typeinf: + +is_type_float(*args) -> 'bool' + is_type_float(t) -> bool + See BTF_FLOAT. + + @param t: (C++: type_t) + +Help on function is_type_floating in module ida_typeinf: + +is_type_floating(*args) -> 'bool' + is_type_floating(t) -> bool + Is the type a floating point type? + + @param t: (C++: type_t) + +Help on function is_type_func in module ida_typeinf: + +is_type_func(*args) -> 'bool' + is_type_func(t) -> bool + See BT_FUNC. + + @param t: (C++: type_t) + +Help on function is_type_int in module ida_typeinf: + +is_type_int(*args) -> 'bool' + is_type_int(bt) -> bool + Does the type_t specify one of the basic types in Basic type: integer? + + @param bt: (C++: type_t) + +Help on function is_type_int128 in module ida_typeinf: + +is_type_int128(*args) -> 'bool' + is_type_int128(t) -> bool + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_int16 in module ida_typeinf: + +is_type_int16(*args) -> 'bool' + is_type_int16(t) -> bool + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_int32 in module ida_typeinf: + +is_type_int32(*args) -> 'bool' + is_type_int32(t) -> bool + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_int64 in module ida_typeinf: + +is_type_int64(*args) -> 'bool' + is_type_int64(t) -> bool + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_integral in module ida_typeinf: + +is_type_integral(*args) -> 'bool' + is_type_integral(t) -> bool + Is the type an integral type (char/short/int/long/bool)? + + @param t: (C++: type_t) + +Help on function is_type_ldouble in module ida_typeinf: + +is_type_ldouble(*args) -> 'bool' + is_type_ldouble(t) -> bool + See BTF_LDOUBLE. + + @param t: (C++: type_t) + +Help on function is_type_paf in module ida_typeinf: + +is_type_paf(*args) -> 'bool' + is_type_paf(t) -> bool + Is the type a pointer, array, or function type? + + @param t: (C++: type_t) + +Help on function is_type_partial in module ida_typeinf: + +is_type_partial(*args) -> 'bool' + is_type_partial(t) -> bool + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) + + @param t: (C++: type_t) + +Help on function is_type_ptr in module ida_typeinf: + +is_type_ptr(*args) -> 'bool' + is_type_ptr(t) -> bool + See BT_PTR. + + @param t: (C++: type_t) + +Help on function is_type_ptr_or_array in module ida_typeinf: + +is_type_ptr_or_array(*args) -> 'bool' + is_type_ptr_or_array(t) -> bool + Is the type a pointer or array type? + + @param t: (C++: type_t) + +Help on function is_type_struct in module ida_typeinf: + +is_type_struct(*args) -> 'bool' + is_type_struct(t) -> bool + See BTF_STRUCT. + + @param t: (C++: type_t) + +Help on function is_type_struni in module ida_typeinf: + +is_type_struni(*args) -> 'bool' + is_type_struni(t) -> bool + Is the type a struct or union? + + @param t: (C++: type_t) + +Help on function is_type_sue in module ida_typeinf: + +is_type_sue(*args) -> 'bool' + is_type_sue(t) -> bool + Is the type a struct/union/enum? + + @param t: (C++: type_t) + +Help on function is_type_tbyte in module ida_typeinf: + +is_type_tbyte(*args) -> 'bool' + is_type_tbyte(t) -> bool + See BTF_FLOAT. + + @param t: (C++: type_t) + +Help on function is_type_typedef in module ida_typeinf: + +is_type_typedef(*args) -> 'bool' + is_type_typedef(t) -> bool + See BTF_TYPEDEF. + + @param t: (C++: type_t) + +Help on function is_type_uchar in module ida_typeinf: + +is_type_uchar(*args) -> 'bool' + is_type_uchar(t) -> bool + See BTF_UCHAR. + + @param t: (C++: type_t) + +Help on function is_type_uint in module ida_typeinf: + +is_type_uint(*args) -> 'bool' + is_type_uint(t) -> bool + See BTF_UINT. + + @param t: (C++: type_t) + +Help on function is_type_uint128 in module ida_typeinf: + +is_type_uint128(*args) -> 'bool' + is_type_uint128(t) -> bool + See BTF_UINT128. + + @param t: (C++: type_t) + +Help on function is_type_uint16 in module ida_typeinf: + +is_type_uint16(*args) -> 'bool' + is_type_uint16(t) -> bool + See BTF_UINT16. + + @param t: (C++: type_t) + +Help on function is_type_uint32 in module ida_typeinf: + +is_type_uint32(*args) -> 'bool' + is_type_uint32(t) -> bool + See BTF_UINT32. + + @param t: (C++: type_t) + +Help on function is_type_uint64 in module ida_typeinf: + +is_type_uint64(*args) -> 'bool' + is_type_uint64(t) -> bool + See BTF_UINT64. + + @param t: (C++: type_t) + +Help on function is_type_union in module ida_typeinf: + +is_type_union(*args) -> 'bool' + is_type_union(t) -> bool + See BTF_UNION. + + @param t: (C++: type_t) + +Help on function is_type_unknown in module ida_typeinf: + +is_type_unknown(*args) -> 'bool' + is_type_unknown(t) -> bool + See BT_UNKNOWN. + + @param t: (C++: type_t) + +Help on function is_type_void in module ida_typeinf: + +is_type_void(*args) -> 'bool' + is_type_void(t) -> bool + See BTF_VOID. + + @param t: (C++: type_t) + +Help on function is_type_volatile in module ida_typeinf: + +is_type_volatile(*args) -> 'bool' + is_type_volatile(t) -> bool + See BTM_VOLATILE. + + @param t: (C++: type_t) + +Help on function is_typeid_last in module ida_typeinf: + +is_typeid_last(*args) -> 'bool' + is_typeid_last(t) -> bool + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) + + @param t: (C++: type_t) + +Help on function is_user_cc in module ida_typeinf: + +is_user_cc(*args) -> 'bool' + is_user_cc(cm) -> bool + Does the calling convention specify argument locations explicitly? + + @param cm: (C++: cm_t) + +Help on function is_vararg_cc in module ida_typeinf: + +is_vararg_cc(*args) -> 'bool' + is_vararg_cc(cm) -> bool + Does the calling convention use ellipsis? + + @param cm: (C++: cm_t) + +Help on function lexcompare_tinfo in module ida_typeinf: + +lexcompare_tinfo(*args) -> 'int' + lexcompare_tinfo(t1, t2, arg3) -> int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int + +Help on function load_til in module ida_typeinf: + +load_til(*args) -> 'qstring *' + load_til(name, tildir=None) -> til_t + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. + + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf + +Help on function load_til_header in module ida_typeinf: + +load_til_header(*args) -> 'qstring *' + load_til_header(tildir, name) -> til_t + Get human-readable til description. + + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * + +Help on function lower_type in module ida_typeinf: + +lower_type(*args) -> 'int' + lower_type(til, tif, name=None, _helper=None) -> int + Lower type. Inspect the type and lower all function subtypes using + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. + + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) + +Help on class lowertype_helper_t in module ida_typeinf: + +class lowertype_helper_t(builtins.object) + | Proxy of C++ lowertype_helper_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lowertype_helper_t(...) + | delete_lowertype_helper_t(self) + | + | func_has_stkframe_hole(self, *args) -> 'bool' + | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & + | + | get_func_purged_bytes(self, *args) -> 'int' + | get_func_purged_bytes(self, candidate, candidate_data) -> int + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function new_til in module ida_typeinf: + +new_til(*args) -> 'til_t *' + new_til(name, desc) -> til_t + Initialize a til. + + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * + +Help on function next_named_type in module ida_typeinf: + +next_named_type(*args) -> 'char const *' + next_named_type(ti, name, ntf_flags) -> char const * + Enumerate types. + + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param name: (C++: const char *) the current name. the name that follows this one will be returned. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. + +Help on function optimize_argloc in module ida_typeinf: + +optimize_argloc(*args) -> 'bool' + optimize_argloc(vloc, size, gaps) -> bool + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal + + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * + +Help on function pack_idcobj_to_bv in module ida_typeinf: + +pack_idcobj_to_bv(*args) -> 'error_t' + pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) + +Help on function pack_idcobj_to_idb in module ida_typeinf: + +pack_idcobj_to_idb(*args) -> 'error_t' + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t + Write a typed idc object to the database. + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) + +Help on function pack_object_to_bv in module ida_typeinf: + +pack_object_to_bv(*args) -> 'PyObject *' + pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * + Packs a typed object to a string + + @param py_obj: PyObject * + @param ti: Type info. 'None' can be passed. + @param type: type_t const * + @param fields: fields string (may be empty or None) + @param base_ea: base ea used to relocate the pointers in the packed object + @param pio_flags: flags used while unpacking + @return: tuple(0, err_code) on failure + tuple(1, packed_buf) on success + +Help on function pack_object_to_idb in module ida_typeinf: + +pack_object_to_idb(*args) -> 'PyObject *' + pack_object_to_idb(py_obj, ti, type, fields, ea, pio_flags=0) -> PyObject * + Write a typed object to the database. + Raises an exception if wrong parameters were passed or conversion fails + Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * + @param ti: Type info. 'None' can be passed. + @param type: type_t const * + @param fields: fields string (may be empty or None) + @param ea: ea to be used while packing + @param pio_flags: flags used while unpacking + +Help on function parse_decl in module ida_typeinf: + +parse_decl(*args) -> 'qstring *' + parse_decl(tif, til, decl, flags) -> str + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! + + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL + +Help on function parse_decls in module ida_typeinf: + +parse_decls(*args) -> 'int' + parse_decls(til, input, printer, hti_flags) -> int + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. + + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags + @return: number of errors, 0 means ok. + +Help on class predicate_t in module ida_typeinf: + +class predicate_t(builtins.object) + | Proxy of C++ predicate_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> predicate_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_predicate_t(...) + | delete_predicate_t(self) + | + | should_display(self, *args) -> 'bool' + | should_display(self, til, name, type, fields) -> bool + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function print_argloc in module ida_typeinf: + +print_argloc(*args) -> 'size_t' + print_argloc(vloc, size=0, vflags=0) -> str + Convert an argloc to human readable form. + + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) + +Help on function print_decls in module ida_typeinf: + +print_decls(*args) -> 'PyObject *' + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for using in + a header file. This is the reverse parse_decls(). + + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param pdf_flags: (C++: uint32) flags for the algorithm. A combination of PDF_ constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. + +Help on function print_tinfo in module ida_typeinf: + +print_tinfo(*args) -> 'qstring *' + print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * + +Help on function print_type in module ida_typeinf: + +print_type(*args) -> 'qstring *' + print_type(ea, prtype_flags) -> str + Get type declaration for the specified address. + + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags + @return: success + +Help on class ptr_type_data_t in module ida_typeinf: + +class ptr_type_data_t(builtins.object) + | Proxy of C++ ptr_type_data_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ptr_type_data_t const & + | + | __init__(self, *args) + | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ptr_type_data_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ptr_type_data_t(...) + | delete_ptr_type_data_t(self) + | + | is_code_ptr(self, *args) -> 'bool' + | is_code_ptr(self) -> bool + | Are we pointing to code? + | + | is_shifted(self, *args) -> 'bool' + | is_shifted(self) -> bool + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: ptr_type_data_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | based_ptr_size + | based_ptr_size + | + | closure + | closure + | + | delta + | delta + | + | obj_type + | obj_type + | + | parent + | parent + | + | taptr_bits + | taptr_bits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function read_tinfo_bitfield_value in module ida_typeinf: + +read_tinfo_bitfield_value(*args) -> 'uint64' + read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 + + @param typid: uint32 + @param v: uint64 + @param bitoff: int + +Help on class reginfovec_t in module ida_typeinf: + +class reginfovec_t(builtins.object) + | Proxy of C++ qvector< reg_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & + | + | __getitem__(self, *args) -> 'reg_info_t const &' + | __getitem__(self, i) -> reg_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> reginfovec_t + | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_info_t const & + | + | __swig_destroy__ = delete_reginfovec_t(...) + | delete_reginfovec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_info_t const & + | + | append = push_back(self, *args) -> 'reg_info_t &' + | + | at = __getitem__(self, *args) -> 'reg_info_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_info_t >::const_iterator' + | begin(self) -> reg_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_info_t >::const_iterator' + | end(self) -> reg_info_t + | + | erase(self, *args) -> 'qvector< reg_info_t >::iterator' + | erase(self, it) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | + | erase(self, first, last) -> reg_info_t + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator + | + | extract(self, *args) -> 'reg_info_t *' + | extract(self) -> reg_info_t + | + | find(self, *args) -> 'qvector< reg_info_t >::const_iterator' + | find(self, x) -> reg_info_t + | + | @param x: reg_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_info_t()) + | + | @param x: reg_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_info_t >::iterator' + | insert(self, it, x) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_info_t &' + | push_back(self, x) + | + | @param x: reg_info_t const & + | + | push_back(self) -> reg_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class regobj_t in module ida_typeinf: + +class regobj_t(builtins.object) + | Proxy of C++ regobj_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regobj_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regobj_t(...) + | delete_regobj_t(self) + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | regidx + | regidx + | + | relocate + | relocate + | + | thisown + | The membership flag + | + | value + | value + +Help on class regobjs_t in module ida_typeinf: + +class regobjs_t(regobjvec_t) + | Proxy of C++ regobjs_t class. + | + | Method resolution order: + | regobjs_t + | regobjvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regobjs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regobjs_t(...) + | delete_regobjs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from regobjvec_t: + | + | __getitem__(self, *args) -> 'regobj_t const &' + | __getitem__(self, i) -> regobj_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & + | + | at(self, *args) -> 'regobj_t const &' + | at(self, _idx) -> regobj_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' + | begin(self) -> regobj_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regobj_t >::const_iterator' + | end(self) -> regobj_t + | + | erase(self, *args) -> 'qvector< regobj_t >::iterator' + | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | + | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator + | + | extract(self, *args) -> 'regobj_t *' + | extract(self) -> regobj_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regobj_t >::iterator' + | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regobj_t &' + | push_back(self, x) + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regobj_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from regobjvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class regobjvec_t in module ida_typeinf: + +class regobjvec_t(builtins.object) + | Proxy of C++ qvector< regobj_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regobj_t const &' + | __getitem__(self, i) -> regobj_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> regobjvec_t + | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & + | + | __swig_destroy__ = delete_regobjvec_t(...) + | delete_regobjvec_t(self) + | + | at(self, *args) -> 'regobj_t const &' + | at(self, _idx) -> regobj_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' + | begin(self) -> regobj_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regobj_t >::const_iterator' + | end(self) -> regobj_t + | + | erase(self, *args) -> 'qvector< regobj_t >::iterator' + | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | + | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator + | + | extract(self, *args) -> 'regobj_t *' + | extract(self) -> regobj_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regobj_t >::iterator' + | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regobj_t &' + | push_back(self, x) + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regobj_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function remove_abi_opts in module ida_typeinf: + +remove_abi_opts(*args) -> 'bool' + remove_abi_opts(abi_opts, user_level=False) -> bool + + @param abi_opts: char const * + @param user_level: bool + +Help on function remove_pointer in module ida_typeinf: + +remove_pointer(*args) -> 'tinfo_t' + remove_pointer(tif) -> tinfo_t + + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() + +Help on function remove_tinfo_pointer in module ida_typeinf: + +remove_tinfo_pointer(*args) -> 'PyObject *' + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. + + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * + +Help on function replace_ordinal_typerefs in module ida_typeinf: + +replace_ordinal_typerefs(*args) -> 'int' + replace_ordinal_typerefs(til, tif) -> int + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. + + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure + +Help on function resolve_typedef in module ida_typeinf: + +resolve_typedef(*args) -> 'type_t const *' + resolve_typedef(til, type) -> type_t const * + + @param til: til_t const * + @param type: type_t const * + +Help on class rrel_t in module ida_typeinf: + +class rrel_t(builtins.object) + | Proxy of C++ rrel_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> rrel_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rrel_t(...) + | delete_rrel_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | reg + | reg + | + | thisown + | The membership flag + +Help on function save_tinfo in module ida_typeinf: + +save_tinfo(*args) -> 'tinfo_code_t' + save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int + +Help on class scattered_aloc_t in module ida_typeinf: + +class scattered_aloc_t(argpartvec_t) + | Proxy of C++ scattered_aloc_t class. + | + | Method resolution order: + | scattered_aloc_t + | argpartvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> scattered_aloc_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scattered_aloc_t(...) + | delete_scattered_aloc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from argpartvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __getitem__(self, *args) -> 'argpart_t const &' + | __getitem__(self, i) -> argpart_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: argpart_t const & + | + | at(self, *args) -> 'argpart_t const &' + | at(self, _idx) -> argpart_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' + | begin(self) -> argpart_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< argpart_t >::const_iterator' + | end(self) -> argpart_t + | + | erase(self, *args) -> 'qvector< argpart_t >::iterator' + | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | + | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator + | + | extract(self, *args) -> 'argpart_t *' + | extract(self) -> argpart_t + | + | find(self, *args) -> 'qvector< argpart_t >::const_iterator' + | find(self, x) -> argpart_t + | + | @param x: argpart_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: argpart_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< argpart_t >::iterator' + | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'argpart_t &' + | push_back(self, x) + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< argpart_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from argpartvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from argpartvec_t: + | + | __hash__ = None + +Help on function score_tinfo in module ida_typeinf: + +score_tinfo(*args) -> 'uint32' + score_tinfo(tif) -> uint32 + + @param tif: tinfo_t const * + +Help on function serialize_tinfo in module ida_typeinf: + +serialize_tinfo(*args) -> 'bool' + serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int + +Help on function set_abi_name in module ida_typeinf: + +set_abi_name(*args) -> 'bool' + set_abi_name(abiname, user_level=False) -> bool + Set abi name (see Compiler IDs) + + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) + +Help on function set_c_header_path in module ida_typeinf: + +set_c_header_path(*args) -> 'void' + set_c_header_path(incdir) + Set include directory path the target compiler. + + @param incdir: (C++: const char *) char const * + +Help on function set_c_macros in module ida_typeinf: + +set_c_macros(*args) -> 'void' + set_c_macros(macros) + Set predefined macros for the target compiler. + + @param macros: (C++: const char *) char const * + +Help on function set_compiler in module ida_typeinf: + +set_compiler(*args) -> 'bool' + set_compiler(cc, flags, abiname=None) -> bool + Change current compiler. + + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name + @return: success + +Help on function set_compiler_id in module ida_typeinf: + +set_compiler_id(*args) -> 'bool' + set_compiler_id(id, abiname=None) -> bool + Set the compiler id (see Compiler IDs) + + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * + +Help on function set_compiler_string in module ida_typeinf: + +set_compiler_string(*args) -> 'bool' + set_compiler_string(compstr, user_level) -> bool + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success + +Help on function set_numbered_type in module ida_typeinf: + +set_numbered_type(*args) -> 'tinfo_code_t' + set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * + +Help on function set_tinfo_attr in module ida_typeinf: + +set_tinfo_attr(*args) -> 'bool' + set_tinfo_attr(tif, ta, may_overwrite) -> bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool + +Help on function set_tinfo_attrs in module ida_typeinf: + +set_tinfo_attrs(*args) -> 'bool' + set_tinfo_attrs(tif, ta) -> bool + + @param tif: tinfo_t * + @param ta: type_attrs_t * + +Help on function set_tinfo_property in module ida_typeinf: + +set_tinfo_property(*args) -> 'size_t' + set_tinfo_property(tif, sta_prop, x) -> size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t + +Help on function set_type_alias in module ida_typeinf: + +set_type_alias(*args) -> 'bool' + set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) + +Help on function set_vftable_ea in module ida_typeinf: + +set_vftable_ea(*args) -> 'bool' + set_vftable_ea(ordinal, vftable_ea) -> bool + Set the address of a vftable instance for a vftable type. + + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success + +Help on class simd_info_t in module ida_typeinf: + +class simd_info_t(builtins.object) + | Proxy of C++ simd_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simd_info_t(...) + | delete_simd_info_t(self) + | + | match_pattern(self, *args) -> 'bool' + | match_pattern(self, pattern) -> bool + | + | @param pattern: simd_info_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | memtype + | memtype + | + | name + | name + | + | size + | size + | + | thisown + | The membership flag + | + | tif + | tif + +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(builtins.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkarg_area_info_t(...) + | delete_stkarg_area_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag + +Help on function store_til in module ida_typeinf: + +store_til(*args) -> 'bool' + store_til(ti, tildir, name) -> bool + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). + + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @return: success + +Help on function switch_to_golang in module ida_typeinf: + +switch_to_golang(*args) -> 'void' + switch_to_golang() + switch to GOLANG calling convention (to be used as default CC) + +Help on class text_sink_t in module ida_typeinf: + +class text_sink_t(builtins.object) + | Proxy of C++ text_sink_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> text_sink_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_text_sink_t(...) + | delete_text_sink_t(self) + | + | _print(self, *args) -> 'int' + | _print(self, str) -> int + | + | Parameters + | ---------- + | str: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class til_symbol_t in module ida_typeinf: + +class til_symbol_t(builtins.object) + | Proxy of C++ til_symbol_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, n=None, t=None) -> til_symbol_t + | + | @param n: char const * + | @param t: til_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_til_symbol_t(...) + | delete_til_symbol_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | til + | til + +Help on class til_t in module ida_typeinf: + +class til_t(builtins.object) + | Proxy of C++ til_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> til_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_til_t(...) + | delete_til_t(self) + | + | base(self, *args) -> 'til_t *' + | base(self, n) -> til_t + | tils that our til is based on + | + | @param n: int + | + | is_dirty(self, *args) -> 'bool' + | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) + | + | set_dirty(self, *args) -> 'void' + | set_dirty(self) + | Mark the til as modified (TIL_MOD) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cc + | cc + | + | desc + | desc + | + | flags + | flags + | + | name + | name + | + | nbases + | nbases + | + | nrefs + | nrefs + | + | nstreams + | nstreams + | + | streams + | streams + | + | thisown + | The membership flag + +Help on class tinfo_t in module ida_typeinf: + +class tinfo_t(builtins.object) + | Proxy of C++ tinfo_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __init__(self, *args) + | __init__(self) -> tinfo_t + | __init__(self, decl_type) -> tinfo_t + | + | @param decl_type: type_t + | + | __init__(self, r) -> tinfo_t + | + | @param r: tinfo_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_tinfo_t(...) + | delete_tinfo_t(self) + | + | _print(self, *args) -> 'bool' + | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * + | + | append_covered(self, *args) -> 'bool' + | append_covered(self, out, offset=0) -> bool + | Calculate set of covered bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) delta in bytes to add to all calculations. used internally during + | recurion. + | + | calc_gaps(self, *args) -> 'bool' + | calc_gaps(self, out) -> bool + | Calculate set of padding bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. + | + | calc_purged_bytes(self, *args) -> 'int' + | calc_purged_bytes(self) -> int + | + | calc_score(self, *args) -> 'uint32' + | calc_score(self) -> uint32 + | Calculate the type score (the higher - the nicer is the type) + | + | calc_udt_aligns(self, *args) -> 'bool' + | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) + | + | change_sign(self, *args) -> 'bool' + | change_sign(self, sign) -> bool + | Change the type sign. Works only for the types that may have sign. + | + | @param sign: (C++: type_sign_t) + | + | clear(self, *args) -> 'void' + | clear(self) + | Clear contents of this tinfo, and remove from the type system. + | + | clr_const(self, *args) -> 'void' + | clr_const(self) + | + | clr_const_volatile(self, *args) -> 'void' + | clr_const_volatile(self) + | + | clr_volatile(self, *args) -> 'void' + | clr_volatile(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: tinfo_t const & + | + | compare_with(self, *args) -> 'bool' + | compare_with(self, r, tcflags=0) -> bool + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) + | + | convert_array_to_ptr(self, *args) -> 'bool' + | convert_array_to_ptr(self) -> bool + | Convert an array into a pointer. type[] => type * + | + | copy(self, *args) -> 'tinfo_t' + | copy(self) -> tinfo_t + | + | create_array(self, *args) -> 'bool' + | create_array(self, p, decl_type=BT_ARRAY) -> bool + | + | @param p: array_type_data_t const & + | @param decl_type: type_t + | + | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t + | + | create_bitfield(self, *args) -> 'bool' + | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t + | + | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t + | + | create_enum(self, *args) -> 'bool' + | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | + | @param p: enum_type_data_t & + | @param decl_type: type_t + | + | create_forward_decl(self, *args) -> 'tinfo_code_t' + | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) + | + | create_func(self, *args) -> 'bool' + | create_func(self, p, decl_type=BT_FUNC) -> bool + | + | @param p: func_type_data_t & + | @param decl_type: type_t + | + | create_ptr(self, *args) -> 'bool' + | create_ptr(self, p, decl_type=BT_PTR) -> bool + | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t + | + | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t + | + | create_simple_type(self, *args) -> 'bool' + | create_simple_type(self, decl_type) -> bool + | + | @param decl_type: type_t + | + | create_typedef(self, *args) -> 'void' + | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool + | + | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool + | + | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t + | + | create_udt(self, *args) -> 'bool' + | create_udt(self, p, decl_type) -> bool + | + | @param p: udt_type_data_t & + | @param decl_type: type_t + | + | del_attr(self, *args) -> 'bool' + | del_attr(self, key, make_copy=True) -> bool + | Del a type attribute. typerefs cannot be modified by this function. + | + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) + | + | del_attrs(self, *args) -> 'void' + | del_attrs(self) + | Del all type attributes. typerefs cannot be modified by this function. + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | Deserialize a type string into a tinfo_t object. + | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** + | + | deserialize(self, til, type, fields, cmts=None) -> bool + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | Function to facilitate debugging. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? + | + | equals_to(self, *args) -> 'bool' + | equals_to(self, r) -> bool + | + | @param r: tinfo_t const & + | + | find_udt_member(self, *args) -> 'int' + | find_udt_member(self, udm, strmem_flags) -> int + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 + | + | get_array_details(self, *args) -> 'bool' + | get_array_details(self, ai) -> bool + | Get the array specific info. + | + | @param ai: (C++: array_type_data_t *) + | + | get_array_element(self, *args) -> 'tinfo_t' + | get_array_element(self) -> tinfo_t + | + | get_array_nelems(self, *args) -> 'int' + | get_array_nelems(self) -> int + | + | get_attr(self, *args) -> 'PyObject *' + | get_attr(self, key, all_attrs=True) -> str or None + | Get a type attribute. + | + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) + | + | get_attrs(self, *args) -> 'bool' + | get_attrs(self, tav, all_attrs=False) -> bool + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) + | + | get_bitfield_details(self, *args) -> 'bool' + | get_bitfield_details(self, bi) -> bool + | Get the bitfield specific info. + | + | @param bi: (C++: bitfield_type_data_t *) + | + | get_declalign(self, *args) -> 'uchar' + | get_declalign(self) -> uchar + | Get declared alignment of the type. + | + | get_decltype(self, *args) -> 'type_t' + | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. + | + | get_enum_base_type(self, *args) -> 'type_t' + | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert + | + | get_enum_details(self, *args) -> 'bool' + | get_enum_details(self, ei) -> bool + | Get the enum specific info. + | + | @param ei: (C++: enum_type_data_t *) + | + | get_final_ordinal(self, *args) -> 'uint32' + | get_final_ordinal(self) -> uint32 + | Get final type ordinal (0 is none) + | + | get_final_type_name(self, *args) -> 'bool' + | get_final_type_name(self) -> bool + | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 + | + | get_func_details(self, *args) -> 'bool' + | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) -> 'bool' + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist + | + | get_modifiers(self, *args) -> 'type_t' + | get_modifiers(self) -> type_t + | + | get_named_type(self, *args) -> 'bool' + | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference + | + | get_nargs(self, *args) -> 'int' + | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) + | + | get_next_type_name(self, *args) -> 'bool' + | get_next_type_name(self) -> bool + | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure + | + | get_nth_arg(self, *args) -> 'tinfo_t' + | get_nth_arg(self, n) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) + | + | get_numbered_type(self, *args) -> 'bool' + | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code + | + | get_onemember_type(self, *args) -> 'tinfo_t' + | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. + | + | get_ordinal(self, *args) -> 'uint32' + | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) + | + | get_pointed_object(self, *args) -> 'tinfo_t' + | get_pointed_object(self) -> tinfo_t + | + | get_ptr_details(self, *args) -> 'bool' + | get_ptr_details(self, pi) -> bool + | Get the pointer info. + | + | @param pi: (C++: ptr_type_data_t *) + | + | get_ptrarr_object(self, *args) -> 'tinfo_t' + | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. + | + | get_ptrarr_objsize(self, *args) -> 'int' + | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 + | + | get_realtype(self, *args) -> 'type_t' + | get_realtype(self, full=False) -> type_t + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) + | + | get_rettype(self, *args) -> 'tinfo_t' + | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type + | + | get_sign(self, *args) -> 'type_sign_t' + | get_sign(self) -> type_sign_t + | Get type sign. + | + | get_size(self, *args) -> 'size_t' + | get_size(self, p_effalign=None, gts_code=0) -> size_t + | Get the type size in bytes. + | + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems + | + | get_til(self, *args) -> 'til_t const *' + | get_til(self) -> til_t + | Get the type library for tinfo_t. + | + | get_type_name(self, *args) -> 'bool' + | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). + | + | get_udt_details(self, *args) -> 'bool' + | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | Get the udt specific info. + | + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t + | + | get_udt_nmembers(self, *args) -> 'int' + | get_udt_nmembers(self) -> int + | Get number of udt members. -1-error. + | + | get_unpadded_size(self, *args) -> 'size_t' + | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() + | + | has_details(self, *args) -> 'bool' + | has_details(self) -> bool + | Does this type refer to a nontrivial type? + | + | has_vftable(self, *args) -> 'bool' + | has_vftable(self) -> bool + | Has a vftable? + | + | is_anonymous_udt(self, *args) -> 'bool' + | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ + | + | is_arithmetic(self, *args) -> 'bool' + | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) + | + | is_array(self, *args) -> 'bool' + | is_array(self) -> bool + | is_type_array(get_realtype()) + | + | is_bitfield(self, *args) -> 'bool' + | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) + | + | is_bool(self, *args) -> 'bool' + | is_bool(self) -> bool + | is_type_bool(get_realtype()) + | + | is_castable_to(self, *args) -> 'bool' + | is_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & + | + | is_char(self, *args) -> 'bool' + | is_char(self) -> bool + | is_type_char(get_realtype()) + | + | is_complex(self, *args) -> 'bool' + | is_complex(self) -> bool + | is_type_complex(get_realtype()) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | is_type_const(get_realtype()) + | + | is_correct(self, *args) -> 'bool' + | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. + | + | is_decl_array(self, *args) -> 'bool' + | is_decl_array(self) -> bool + | is_type_array(get_decltype()) + | + | is_decl_bitfield(self, *args) -> 'bool' + | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) + | + | is_decl_bool(self, *args) -> 'bool' + | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) + | + | is_decl_char(self, *args) -> 'bool' + | is_decl_char(self) -> bool + | is_type_char(get_decltype()) + | + | is_decl_complex(self, *args) -> 'bool' + | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) + | + | is_decl_const(self, *args) -> 'bool' + | is_decl_const(self) -> bool + | is_type_const(get_decltype()) + | + | is_decl_double(self, *args) -> 'bool' + | is_decl_double(self) -> bool + | is_type_double(get_decltype()) + | + | is_decl_enum(self, *args) -> 'bool' + | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) + | + | is_decl_float(self, *args) -> 'bool' + | is_decl_float(self) -> bool + | is_type_float(get_decltype()) + | + | is_decl_floating(self, *args) -> 'bool' + | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) + | + | is_decl_func(self, *args) -> 'bool' + | is_decl_func(self) -> bool + | is_type_func(get_decltype()) + | + | is_decl_int(self, *args) -> 'bool' + | is_decl_int(self) -> bool + | is_type_int(get_decltype()) + | + | is_decl_int128(self, *args) -> 'bool' + | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) + | + | is_decl_int16(self, *args) -> 'bool' + | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) + | + | is_decl_int32(self, *args) -> 'bool' + | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) + | + | is_decl_int64(self, *args) -> 'bool' + | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) + | + | is_decl_last(self, *args) -> 'bool' + | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) + | + | is_decl_ldouble(self, *args) -> 'bool' + | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) + | + | is_decl_paf(self, *args) -> 'bool' + | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) + | + | is_decl_partial(self, *args) -> 'bool' + | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) + | + | is_decl_ptr(self, *args) -> 'bool' + | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) + | + | is_decl_struct(self, *args) -> 'bool' + | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) + | + | is_decl_sue(self, *args) -> 'bool' + | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) + | + | is_decl_tbyte(self, *args) -> 'bool' + | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) + | + | is_decl_typedef(self, *args) -> 'bool' + | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) + | + | is_decl_uchar(self, *args) -> 'bool' + | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) + | + | is_decl_udt(self, *args) -> 'bool' + | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) + | + | is_decl_uint(self, *args) -> 'bool' + | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) + | + | is_decl_uint128(self, *args) -> 'bool' + | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) + | + | is_decl_uint16(self, *args) -> 'bool' + | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) + | + | is_decl_uint32(self, *args) -> 'bool' + | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) + | + | is_decl_uint64(self, *args) -> 'bool' + | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) + | + | is_decl_union(self, *args) -> 'bool' + | is_decl_union(self) -> bool + | is_type_union(get_decltype()) + | + | is_decl_unknown(self, *args) -> 'bool' + | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) + | + | is_decl_void(self, *args) -> 'bool' + | is_decl_void(self) -> bool + | is_type_void(get_decltype()) + | + | is_decl_volatile(self, *args) -> 'bool' + | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) + | + | is_double(self, *args) -> 'bool' + | is_double(self) -> bool + | is_type_double(get_realtype()) + | + | is_empty_udt(self, *args) -> 'bool' + | is_empty_udt(self) -> bool + | Is an empty struct/union? (has no fields) + | + | is_enum(self, *args) -> 'bool' + | is_enum(self) -> bool + | is_type_enum(get_realtype()) + | + | is_ext_arithmetic(self, *args) -> 'bool' + | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) + | + | is_ext_integral(self, *args) -> 'bool' + | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) + | + | is_float(self, *args) -> 'bool' + | is_float(self) -> bool + | is_type_float(get_realtype()) + | + | is_floating(self, *args) -> 'bool' + | is_floating(self) -> bool + | is_type_floating(get_realtype()) + | + | is_forward_decl(self, *args) -> 'bool' + | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist + | + | is_from_subtil(self, *args) -> 'bool' + | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database + | + | is_func(self, *args) -> 'bool' + | is_func(self) -> bool + | is_type_func(get_realtype()) + | + | is_funcptr(self, *args) -> 'bool' + | is_funcptr(self) -> bool + | Is this pointer to a function? + | + | is_high_func(self, *args) -> 'bool' + | is_high_func(self) -> bool + | + | is_int(self, *args) -> 'bool' + | is_int(self) -> bool + | is_type_int(get_realtype()) + | + | is_int128(self, *args) -> 'bool' + | is_int128(self) -> bool + | is_type_int128(get_realtype()) + | + | is_int16(self, *args) -> 'bool' + | is_int16(self) -> bool + | is_type_int16(get_realtype()) + | + | is_int32(self, *args) -> 'bool' + | is_int32(self) -> bool + | is_type_int32(get_realtype()) + | + | is_int64(self, *args) -> 'bool' + | is_int64(self) -> bool + | is_type_int64(get_realtype()) + | + | is_integral(self, *args) -> 'bool' + | is_integral(self) -> bool + | is_type_integral(get_realtype()) + | + | is_ldouble(self, *args) -> 'bool' + | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) + | + | is_manually_castable_to(self, *args) -> 'bool' + | is_manually_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & + | + | is_one_fpval(self, *args) -> 'bool' + | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. + | + | is_paf(self, *args) -> 'bool' + | is_paf(self) -> bool + | is_type_paf(get_realtype()) + | + | is_partial(self, *args) -> 'bool' + | is_partial(self) -> bool + | is_type_partial(get_realtype()) + | + | is_ptr(self, *args) -> 'bool' + | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) + | + | is_ptr_or_array(self, *args) -> 'bool' + | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) + | + | is_purging_cc(self, *args) -> 'bool' + | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) + | + | is_pvoid(self, *args) -> 'bool' + | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. + | + | is_scalar(self, *args) -> 'bool' + | is_scalar(self) -> bool + | Does the type represent a single number? + | + | is_shifted_ptr(self, *args) -> 'bool' + | is_shifted_ptr(self) -> bool + | Is a shifted pointer? + | + | is_signed(self, *args) -> 'bool' + | is_signed(self) -> bool + | Is this a signed type? + | + | is_small_udt(self, *args) -> 'bool' + | is_small_udt(self) -> bool + | Is a small udt? (can fit a register or a pair of registers) + | + | is_sse_type(self, *args) -> 'bool' + | is_sse_type(self) -> bool + | Is a SSE vector type? + | + | is_struct(self, *args) -> 'bool' + | is_struct(self) -> bool + | is_type_struct(get_realtype()) + | + | is_sue(self, *args) -> 'bool' + | is_sue(self) -> bool + | is_type_sue(get_realtype()) + | + | is_tbyte(self, *args) -> 'bool' + | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) + | + | is_typeref(self, *args) -> 'bool' + | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. + | + | is_uchar(self, *args) -> 'bool' + | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | is_type_struni(get_realtype()) + | + | is_uint(self, *args) -> 'bool' + | is_uint(self) -> bool + | is_type_uint(get_realtype()) + | + | is_uint128(self, *args) -> 'bool' + | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) + | + | is_uint16(self, *args) -> 'bool' + | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) + | + | is_uint32(self, *args) -> 'bool' + | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) + | + | is_uint64(self, *args) -> 'bool' + | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) + | + | is_union(self, *args) -> 'bool' + | is_union(self) -> bool + | is_type_union(get_realtype()) + | + | is_unknown(self, *args) -> 'bool' + | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) + | + | is_unsigned(self, *args) -> 'bool' + | is_unsigned(self) -> bool + | Is this an unsigned type? + | + | is_user_cc(self, *args) -> 'bool' + | is_user_cc(self) -> bool + | is_user_cc(get_cc()) + | + | is_vararg_cc(self, *args) -> 'bool' + | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) + | + | is_varstruct(self, *args) -> 'bool' + | is_varstruct(self) -> bool + | Is a variable-size structure? + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | Is a vftable type? + | + | is_void(self, *args) -> 'bool' + | is_void(self) -> bool + | is_type_void(get_realtype()) + | + | is_volatile(self, *args) -> 'bool' + | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) + | + | is_well_defined(self, *args) -> 'bool' + | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) + | + | present(self, *args) -> 'bool' + | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) + | + | read_bitfield_value(self, *args) -> 'uint64' + | read_bitfield_value(self, v, bitoff) -> uint64 + | + | @param v: uint64 + | @param bitoff: int + | + | remove_ptr_or_array(self, *args) -> 'bool' + | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true + | + | requires_qualifier(self, *args) -> 'bool' + | requires_qualifier(self, name, offset) -> bool + | Requires full qualifier? (name is not unique) + | + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) field offset in bits + | @return: if the name is not unique, returns true + | + | serialize(self, *args) -> 'PyObject *' + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. + | + | @param sudt_flags: (C++: int) + | + | set_attr(self, *args) -> 'bool' + | set_attr(self, ta, may_overwrite=True) -> bool + | Set a type attribute. If necessary, a new typid will be created. + | + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) + | + | set_attrs(self, *args) -> 'bool' + | set_attrs(self, tav) -> bool + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes + | + | set_const(self, *args) -> 'void' + | set_const(self) + | + | set_declalign(self, *args) -> 'bool' + | set_declalign(self, declalign) -> bool + | Set declared alignment of the type. + | + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) -> 'bool' + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty + | + | set_modifiers(self, *args) -> 'void' + | set_modifiers(self, mod) + | + | @param mod: type_t + | + | set_named_type(self, *args) -> 'tinfo_code_t' + | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int + | + | set_numbered_type(self, *args) -> 'tinfo_code_t' + | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * + | + | set_symbol_type(self, *args) -> 'tinfo_code_t' + | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int + | + | set_volatile(self, *args) -> 'void' + | set_volatile(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: tinfo_t &) + | + | write_bitfield_value(self, *args) -> 'uint64' + | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | get_stock(*args) -> 'tinfo_t' + | get_stock(id) -> tinfo_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function tinfo_t_get_stock in module ida_typeinf: + +tinfo_t_get_stock(*args) -> 'tinfo_t' + tinfo_t_get_stock(id) -> tinfo_t + + @param id: enum stock_type_id_t + +Help on class tinfo_visitor_t in module ida_typeinf: + +class tinfo_visitor_t(builtins.object) + | Proxy of C++ tinfo_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, s=0) -> tinfo_visitor_t + | + | @param s: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tinfo_visitor_t(...) + | delete_tinfo_visitor_t(self) + | + | apply_to(self, *args) -> 'int' + | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | Call this function to initiate the traversal. + | + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | To refuse to visit children of the current type, use this: + | + | visit_type(self, *args) -> 'int' + | visit_type(self, out, tif, name, cmt) -> int + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | state + | state + | + | thisown + | The membership flag + +Help on class type_attr_t in module ida_typeinf: + +class type_attr_t(builtins.object) + | Proxy of C++ type_attr_t class. + | + | Methods defined here: + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: type_attr_t const & + | + | __init__(self, *args) + | __init__(self) -> type_attr_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: type_attr_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_type_attr_t(...) + | delete_type_attr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | thisown + | The membership flag + | + | value + | value + +Help on class type_attrs_t in module ida_typeinf: + +class type_attrs_t(builtins.object) + | Proxy of C++ qvector< type_attr_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'type_attr_t const &' + | __getitem__(self, i) -> type_attr_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> type_attrs_t + | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: type_attr_t const & + | + | __swig_destroy__ = delete_type_attrs_t(...) + | delete_type_attrs_t(self) + | + | at(self, *args) -> 'type_attr_t const &' + | at(self, _idx) -> type_attr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< type_attr_t >::const_iterator' + | begin(self) -> type_attr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< type_attr_t >::const_iterator' + | end(self) -> type_attr_t + | + | erase(self, *args) -> 'qvector< type_attr_t >::iterator' + | erase(self, it) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | + | erase(self, first, last) -> type_attr_t + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator + | + | extract(self, *args) -> 'type_attr_t *' + | extract(self) -> type_attr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=type_attr_t()) + | + | @param x: type_attr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: type_attr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< type_attr_t >::iterator' + | insert(self, it, x) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'type_attr_t &' + | push_back(self, x) + | + | @param x: type_attr_t const & + | + | push_back(self) -> type_attr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: type_attr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< type_attr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class type_mods_t in module ida_typeinf: + +class type_mods_t(builtins.object) + | Proxy of C++ type_mods_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> type_mods_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_type_mods_t(...) + | delete_type_mods_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | has_cmt(self, *args) -> 'bool' + | has_cmt(self) -> bool + | + | has_info(self, *args) -> 'bool' + | has_info(self) -> bool + | + | has_name(self, *args) -> 'bool' + | has_name(self) -> bool + | + | has_type(self, *args) -> 'bool' + | has_type(self) -> bool + | + | set_new_cmt(self, *args) -> 'void' + | set_new_cmt(self, c) + | + | @param c: qstring const & + | + | set_new_name(self, *args) -> 'void' + | set_new_name(self, n) + | + | @param n: qstring const & + | + | set_new_type(self, *args) -> 'void' + | set_new_type(self, t) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + +Help on class typedef_type_data_t in module ida_typeinf: + +class typedef_type_data_t(builtins.object) + | Proxy of C++ typedef_type_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool + | + | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_typedef_type_data_t(...) + | delete_typedef_type_data_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: typedef_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | is_ordref + | is_ordref + | + | name + | name + | + | ordinal + | ordinal + | + | resolve + | resolve + | + | thisown + | The membership flag + | + | til + | til + +Help on class udt_member_t in module ida_typeinf: + +class udt_member_t(builtins.object) + | Proxy of C++ udt_member_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: udt_member_t const & + | + | __init__(self, *args) + | __init__(self) -> udt_member_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: udt_member_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: udt_member_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udt_member_t(...) + | delete_udt_member_t(self) + | + | begin(self, *args) -> 'uint64' + | begin(self) -> uint64 + | + | clr_baseclass(self, *args) -> 'void' + | clr_baseclass(self) + | + | clr_method(self, *args) -> 'void' + | clr_method(self) + | + | clr_unaligned(self, *args) -> 'void' + | clr_unaligned(self) + | + | clr_vftable(self, *args) -> 'void' + | clr_vftable(self) + | + | clr_virtbase(self, *args) -> 'void' + | clr_virtbase(self) + | + | end(self, *args) -> 'uint64' + | end(self) -> uint64 + | + | is_anonymous_udm(self, *args) -> 'bool' + | is_anonymous_udm(self) -> bool + | + | is_baseclass(self, *args) -> 'bool' + | is_baseclass(self) -> bool + | + | is_bitfield(self, *args) -> 'bool' + | is_bitfield(self) -> bool + | + | is_method(self, *args) -> 'bool' + | is_method(self) -> bool + | + | is_unaligned(self, *args) -> 'bool' + | is_unaligned(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | is_virtbase(self, *args) -> 'bool' + | is_virtbase(self) -> bool + | + | is_zero_bitfield(self, *args) -> 'bool' + | is_zero_bitfield(self) -> bool + | + | set_baseclass(self, *args) -> 'void' + | set_baseclass(self) + | + | set_method(self, *args) -> 'void' + | set_method(self) + | + | set_unaligned(self, *args) -> 'void' + | set_unaligned(self) + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | set_virtbase(self, *args) -> 'void' + | set_virtbase(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: udt_member_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | effalign + | effalign + | + | fda + | fda + | + | name + | name + | + | offset + | offset + | + | size + | size + | + | tafld_bits + | tafld_bits + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class udt_type_data_t in module ida_typeinf: + +class udt_type_data_t(udtmembervec_t) + | Proxy of C++ udt_type_data_t class. + | + | Method resolution order: + | udt_type_data_t + | udtmembervec_t + | udtmembervec_template_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> udt_type_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udt_type_data_t(...) + | delete_udt_type_data_t(self) + | + | is_cppobj(self, *args) -> 'bool' + | is_cppobj(self) -> bool + | + | is_last_baseclass(self, *args) -> 'bool' + | is_last_baseclass(self, idx) -> bool + | + | @param idx: size_t + | + | is_msstruct(self, *args) -> 'bool' + | is_msstruct(self) -> bool + | + | is_unaligned(self, *args) -> 'bool' + | is_unaligned(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: udt_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | effalign + | effalign + | + | is_union + | is_union + | + | pack + | pack + | + | sda + | sda + | + | taudt_bits + | taudt_bits + | + | thisown + | The membership flag + | + | total_size + | total_size + | + | unpadded_size + | unpadded_size + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_t in module ida_typeinf: + +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udtmembervec_t(...) + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(builtins.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | __swig_destroy__ = delete_udtmembervec_template_t(...) + | delete_udtmembervec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function unpack_idcobj_from_bv in module ida_typeinf: + +unpack_idcobj_from_bv(*args) -> 'error_t' + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t + Read a typed idc object from the byte vector. + + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) + +Help on function unpack_idcobj_from_idb in module ida_typeinf: + +unpack_idcobj_from_idb(*args) -> 'error_t' + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t + Collection of register objects. + + Read a typed idc object from the database + + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) + +Help on function unpack_object_from_bv in module ida_typeinf: + +unpack_object_from_bv(*args) -> 'PyObject *' + unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * + Unpacks a buffer into an object. + Returns the error_t returned by idaapi.pack_object_to_idb + + @param ti: Type info. 'None' can be passed. + @param type: type_t const * + @param fields: fields string (may be empty or None) + @param bytes: the bytes to unpack + @param pio_flags: flags used while unpacking + @return: - tuple(0, err) on failure + - tuple(1, obj) on success + +Help on function unpack_object_from_idb in module ida_typeinf: + +unpack_object_from_idb(*args) -> 'PyObject *' + unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int + +Help on function use_golang_cc in module ida_typeinf: + +use_golang_cc(*args) -> 'bool' + use_golang_cc() -> bool + is GOLANG calling convention used by default? + +Help on class valstr_t in module ida_typeinf: + +class valstr_t(builtins.object) + | Proxy of C++ valstr_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> valstr_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_valstr_t(...) + | delete_valstr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | info + | info + | + | length + | length + | + | members + | members + | + | oneline + | oneline + | + | props + | props + | + | thisown + | The membership flag + +Help on class valstrs_t in module ida_typeinf: + +class valstrs_t(valstrvec_t) + | Proxy of C++ valstrs_t class. + | + | Method resolution order: + | valstrs_t + | valstrvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> valstrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_valstrs_t(...) + | delete_valstrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from valstrvec_t: + | + | __getitem__(self, *args) -> 'valstr_t const &' + | __getitem__(self, i) -> valstr_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & + | + | at(self, *args) -> 'valstr_t const &' + | at(self, _idx) -> valstr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' + | begin(self) -> valstr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< valstr_t >::const_iterator' + | end(self) -> valstr_t + | + | erase(self, *args) -> 'qvector< valstr_t >::iterator' + | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | + | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator + | + | extract(self, *args) -> 'valstr_t *' + | extract(self) -> valstr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< valstr_t >::iterator' + | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'valstr_t &' + | push_back(self, x) + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< valstr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from valstrvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class valstrvec_t in module ida_typeinf: + +class valstrvec_t(builtins.object) + | Proxy of C++ qvector< valstr_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'valstr_t const &' + | __getitem__(self, i) -> valstr_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> valstrvec_t + | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & + | + | __swig_destroy__ = delete_valstrvec_t(...) + | delete_valstrvec_t(self) + | + | at(self, *args) -> 'valstr_t const &' + | at(self, _idx) -> valstr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' + | begin(self) -> valstr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< valstr_t >::const_iterator' + | end(self) -> valstr_t + | + | erase(self, *args) -> 'qvector< valstr_t >::iterator' + | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | + | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator + | + | extract(self, *args) -> 'valstr_t *' + | extract(self) -> valstr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< valstr_t >::iterator' + | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'valstr_t &' + | push_back(self, x) + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< valstr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function verify_argloc in module ida_typeinf: + +verify_argloc(*args) -> 'int' + verify_argloc(vloc, size, gaps) -> int + Verify argloc_t. + + @param vloc: (C++: const argloc_t &) argloc to verify + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered + @return: 0 if ok, otherwise an interr code. + +Help on function verify_tinfo in module ida_typeinf: + +verify_tinfo(*args) -> 'int' + verify_tinfo(typid) -> int + + @param typid: uint32 + +Help on function visit_subtypes in module ida_typeinf: + +visit_subtypes(*args) -> 'int' + visit_subtypes(visitor, out, tif, name, cmt) -> int + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * + +Help on function write_tinfo_bitfield_value in module ida_typeinf: + +write_tinfo_bitfield_value(*args) -> 'uint64' + write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" + +Help on function calc_dataseg in module ida_ua: + +calc_dataseg(*args) -> 'ea_t' + calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) + +Help on function can_decode in module ida_ua: + +can_decode(*args) -> 'bool' + can_decode(ea) -> bool + Can the bytes at address 'ea' be decoded as instruction? + + @param ea: (C++: ea_t) linear address + @return: whether or not the contents at that address could be a valid + instruction + +Help on function construct_macro in module ida_ua: + +construct_macro(*args) -> 'bool' + construct_macro(insn, enable, build_macro) -> bool + See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * + +Help on function construct_macro2 in module ida_ua: + +construct_macro2(*args) -> 'bool' + construct_macro2(_this, insn, enable) -> bool + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool + +Help on function create_insn in module ida_ua: + +create_insn(*args) -> 'int' + create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 + +Help on function create_outctx in module ida_ua: + +create_outctx(*args) -> 'outctx_base_t *' + create_outctx(ea, F=0, suspop=0) -> outctx_base_t + Create a new output context. To delete it, just use "delete pctx" + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param suspop: (C++: int) + +Help on function decode_insn in module ida_ua: + +decode_insn(*args) -> 'int' + decode_insn(out, ea) -> int + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address + @return: the length of the (possible) instruction or 0 + +Help on function decode_preceding_insn in module ida_ua: + +decode_preceding_insn(*args) -> 'PyObject *' + decode_preceding_insn(out, ea) -> (int, int) + Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() + + @param out: instruction storage + @param ea: current ea + @return: tuple(preceeding_ea or BADADDR, farref = Boolean) + +Help on function decode_prev_insn in module ida_ua: + +decode_prev_insn(*args) -> 'ea_t' + decode_prev_insn(out, ea) -> ea_t + Decode previous instruction if it exists, fill 'out'. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) + +Help on function get_dtype_by_size in module ida_ua: + +get_dtype_by_size(*args) -> 'int' + get_dtype_by_size(size) -> int + Get op_t::dtype from size. + + @param size: (C++: asize_t) + +Help on function get_dtype_flag in module ida_ua: + +get_dtype_flag(*args) -> 'flags64_t' + get_dtype_flag(dtype) -> flags64_t + Get flags for op_t::dtype field. + + @param dtype: (C++: op_dtype_t) + +Help on function get_dtype_size in module ida_ua: + +get_dtype_size(*args) -> 'size_t' + get_dtype_size(dtype) -> size_t + Get size of opt_::dtype field. + + @param dtype: (C++: op_dtype_t) + +Help on function get_immvals in module ida_ua: + +get_immvals(*args) -> 'PyObject *' + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. + + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) + +Help on function get_lookback in module ida_ua: + +get_lookback(*args) -> 'int' + get_lookback() -> int + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) + +Help on function get_printable_immvals in module ida_ua: + +get_printable_immvals(*args) -> 'PyObject *' + get_printable_immvals(ea, n, F=0) -> PyObject * + Get immediate ready-to-print values at the specified address + + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) + +Help on function insn_add_cref in module ida_ua: + +insn_add_cref(*args) -> 'void' + insn_add_cref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t + +Help on function insn_add_dref in module ida_ua: + +insn_add_dref(*args) -> 'void' + insn_add_dref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t + +Help on function insn_add_off_drefs in module ida_ua: + +insn_add_off_drefs(*args) -> 'ea_t' + insn_add_off_drefs(insn, x, type, outf) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int + +Help on function insn_create_stkvar in module ida_ua: + +insn_create_stkvar(*args) -> 'bool' + insn_create_stkvar(insn, x, v, flags) -> bool + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int + +Help on class insn_t in module ida_ua: + +class insn_t(builtins.object) + | Proxy of C++ insn_t class. + | + | Methods defined here: + | + | __get_auxpref__(self, *args) -> 'uint32' + | __get_auxpref__(self) -> uint32 + | + | __get_operand__(self, *args) -> 'op_t *' + | __get_operand__(self, n) -> op_t + | + | @param n: int + | + | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' + | __get_ops__(self) -> operands_array + | + | __getitem__(self, idx) + | Operands can be accessed directly as indexes + | @return: op_t: Returns an operand of type op_t + | + | __init__(self, *args) + | __init__(self) -> insn_t + | + | __iter__(self) + | + | __repr__ = _swig_repr(self) + | + | __set_auxpref__(self, *args) -> 'void' + | __set_auxpref__(self, v) + | + | @param v: uint32 + | + | __swig_destroy__ = delete_insn_t(...) + | delete_insn_t(self) + | + | add_cref(self, *args) -> 'void' + | add_cref(self, to, opoff, type) + | Add a code cross-reference from the instruction. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref + | + | add_dref(self, *args) -> 'void' + | add_dref(self, to, opoff, type) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref + | + | add_off_drefs(self, *args) -> 'ea_t' + | add_off_drefs(self, x, type, outf) -> ea_t + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses + | + | assign(self, *args) -> 'void' + | assign(self, other) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | create_op_data(self, *args) -> 'bool' + | create_op_data(self, ea_, opoff, dtype) -> bool + | Convenient alias. + | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t + | + | create_op_data(self, ea_, op) -> bool + | + | @param ea_: ea_t + | @param op: op_t const & + | + | create_stkvar(self, *args) -> 'bool' + | create_stkvar(self, x, v, flags_) -> bool + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable + | + | get_canon_feature(self, *args) -> 'uint32' + | get_canon_feature(self, ph) -> uint32 + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_feature(self) -> uint32 + | + | get_canon_mnem(self, *args) -> 'char const *' + | get_canon_mnem(self, ph) -> char const + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_mnem(self) -> char const * + | + | get_next_byte(self, *args) -> 'uint8' + | get_next_byte(self) -> uint8 + | + | get_next_dword(self, *args) -> 'uint32' + | get_next_dword(self) -> uint32 + | + | get_next_qword(self, *args) -> 'uint64' + | get_next_qword(self) -> uint64 + | + | get_next_word(self, *args) -> 'uint16' + | get_next_word(self) -> uint16 + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | Belongs to a 64bit segment? + | + | is_canon_insn(self, *args) -> 'bool' + | is_canon_insn(self, ph) -> bool + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | is_canon_insn(self) -> bool + | + | is_macro(self, *args) -> 'bool' + | is_macro(self) -> bool + | Is a macro instruction? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | Op1 + | + | Op2 + | + | Op3 + | + | Op4 + | + | Op5 + | + | Op6 + | + | Op7 + | + | Op8 + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | auxpref + | __get_auxpref__(self) -> uint32 + | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | + | cs + | cs + | + | ea + | ea + | + | flags + | flags + | + | insnpref + | insnpref + | + | ip + | ip + | + | itype + | itype + | + | ops + | __get_ops__(self) -> operands_array + | + | segpref + | segpref + | + | size + | size + | + | thisown + | The membership flag + +Help on function insn_t__from_ptrval__ in module ida_ua: + +insn_t__from_ptrval__(*args) -> 'insn_t *' + insn_t__from_ptrval__(ptrval) -> insn_t + + @param ptrval: size_t + +Help on function is_floating_dtype in module ida_ua: + +is_floating_dtype(*args) -> 'bool' + is_floating_dtype(dtype) -> bool + Is a floating type operand? + + @param dtype: (C++: op_dtype_t) + +Help on class macro_constructor_t in module ida_ua: + +class macro_constructor_t(builtins.object) + | Proxy of C++ macro_constructor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> macro_constructor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_macro_constructor_t(...) + | delete_macro_constructor_t(self) + | + | build_macro(self, *args) -> 'bool' + | build_macro(self, insn, may_go_forward) -> bool + | Try to extend the instruction. + | + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag + +Help on function map_code_ea in module ida_ua: + +map_code_ea(*args) -> 'ea_t' + map_code_ea(insn, addr, opnum) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + + map_code_ea(insn, op) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + +Help on function map_data_ea in module ida_ua: + +map_data_ea(*args) -> 'ea_t' + map_data_ea(insn, addr, opnum=-1) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + + map_data_ea(insn, op) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + +Help on function map_ea in module ida_ua: + +map_ea(*args) -> 'ea_t' + map_ea(insn, op, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool + + map_ea(insn, addr, opnum, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool + +Help on class op_t in module ida_ua: + +class op_t(builtins.object) + | Proxy of C++ op_t class. + | + | Methods defined here: + | + | __get_addr__(self, *args) -> 'ea_t' + | __get_addr__(self) -> ea_t + | + | __get_reg_phrase__(self, *args) -> 'uint16' + | __get_reg_phrase__(self) -> uint16 + | + | __get_specval__(self, *args) -> 'ea_t' + | __get_specval__(self) -> ea_t + | + | __get_value64__(self, *args) -> 'uint64' + | __get_value64__(self) -> uint64 + | + | __get_value__(self, *args) -> 'ea_t' + | __get_value__(self) -> ea_t + | + | __init__(self, *args) + | __init__(self) -> op_t + | + | __repr__ = _swig_repr(self) + | + | __set_addr__(self, *args) -> 'void' + | __set_addr__(self, v) + | + | @param v: ea_t + | + | __set_reg_phrase__(self, *args) -> 'void' + | __set_reg_phrase__(self, r) + | + | @param r: uint16 + | + | __set_specval__(self, *args) -> 'void' + | __set_specval__(self, v) + | + | @param v: ea_t + | + | __set_value64__(self, *args) -> 'void' + | __set_value64__(self, v) + | + | @param v: uint64 + | + | __set_value__(self, *args) -> 'void' + | __set_value__(self, v) + | + | @param v: ea_t + | + | __swig_destroy__ = delete_op_t(...) + | delete_op_t(self) + | + | assign(self, *args) -> 'void' + | assign(self, other) + | + | @param other: op_t const & + | + | clr_shown(self, *args) -> 'void' + | clr_shown(self) + | Set operand to hidden. + | + | has_reg(self, r) + | Checks if the operand accesses the given processor register + | + | is_imm(self, *args) -> 'bool' + | is_imm(self, v) -> bool + | Is immediate operand? + | + | @param v: (C++: uval_t) + | + | is_reg(self, *args) -> 'bool' + | is_reg(self, r) -> bool + | Is register operand? + | + | @param r: (C++: int) + | + | set_shown(self, *args) -> 'void' + | set_shown(self) + | Set operand to be shown. + | + | shown(self, *args) -> 'bool' + | shown(self) -> bool + | Is operand set to be shown? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | addr + | __get_addr__(self) -> ea_t + | + | dtype + | dtype + | + | flags + | flags + | + | n + | n + | + | offb + | offb + | + | offo + | offo + | + | phrase + | __get_reg_phrase__(self) -> uint16 + | + | reg + | __get_reg_phrase__(self) -> uint16 + | + | specflag1 + | specflag1 + | + | specflag2 + | specflag2 + | + | specflag3 + | specflag3 + | + | specflag4 + | specflag4 + | + | specval + | __get_specval__(self) -> ea_t + | + | thisown + | The membership flag + | + | type + | type + | + | value + | __get_value__(self) -> ea_t + | + | value64 + | __get_value64__(self) -> uint64 + +Help on function op_t__from_ptrval__ in module ida_ua: + +op_t__from_ptrval__(*args) -> 'op_t *' + op_t__from_ptrval__(ptrval) -> op_t + + @param ptrval: size_t + +Help on class operands_array in module ida_ua: + +class operands_array(builtins.object) + | Proxy of C++ wrapped_array_t< op_t,8 > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'op_t const &' + | __getitem__(self, i) -> op_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> operands_array + | + | @param data: op_t (&)[8] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: op_t const & + | + | __swig_destroy__ = delete_operands_array(...) + | delete_operands_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class outctx_base_t in module ida_ua: + +class outctx_base_t(builtins.object) + | Proxy of C++ outctx_base_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | close_comment(self, *args) -> 'void' + | close_comment(self) + | + | clr_gen_label(self, *args) -> 'void' + | clr_gen_label(self) + | + | display_voids(self, *args) -> 'bool' + | display_voids(self) -> bool + | + | flush_buf(self, *args) -> 'bool' + | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) + | + | flush_outbuf(self, *args) -> 'bool' + | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) + | + | forbid_annotations(self, *args) -> 'int' + | forbid_annotations(self) -> int + | + | force_code(self, *args) -> 'bool' + | force_code(self) -> bool + | + | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached + | + | gen_border_line(self, *args) -> 'bool' + | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached + | + | gen_cmt_line(self, *args) -> 'bool' + | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_collapsed_line(self, *args) -> 'bool' + | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line(self, *args) -> 'bool' + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line_without_annotations(self, *args) -> 'void' + | gen_empty_line_without_annotations(self) + | + | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached + | + | gen_xref_lines(self, *args) -> 'bool' + | gen_xref_lines(self) -> bool + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * + | + | init_lines_array(self, *args) -> 'void' + | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int + | + | multiline(self, *args) -> 'bool' + | multiline(self) -> bool + | + | only_main_line(self, *args) -> 'bool' + | only_main_line(self) -> bool + | + | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) + | + | out_btoa(self, *args) -> 'void' + | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) + | + | out_char(self, *args) -> 'void' + | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) + | + | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) + | + | out_colored_register_line(self, *args) -> 'void' + | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * + | + | out_keyword(self, *args) -> 'void' + | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * + | + | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) + | + | out_long(self, *args) -> 'void' + | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) + | + | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced + | + | out_printf(self, *args) -> 'void' + | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended + | + | out_register(self, *args) -> 'void' + | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * + | + | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) + | + | out_symbol(self, *args) -> 'void' + | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) + | + | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value + | + | print_label_now(self, *args) -> 'bool' + | print_label_now(self) -> bool + | + | restore_ctxflags(self, *args) -> 'void' + | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int + | + | retrieve_cmt(self, *args) -> 'ssize_t' + | retrieve_cmt(self) -> ssize_t + | + | retrieve_name(self, *args) -> 'ssize_t' + | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * + | + | set_comment_addr(self, *args) -> 'void' + | set_comment_addr(self, ea) + | + | @param ea: ea_t + | + | set_dlbind_opnd(self, *args) -> 'void' + | set_dlbind_opnd(self) + | + | set_gen_cmt(self, *args) -> 'void' + | set_gen_cmt(self, on=True) + | + | @param on: bool + | + | set_gen_demangled_label(self, *args) -> 'void' + | set_gen_demangled_label(self) + | + | set_gen_label(self, *args) -> 'void' + | set_gen_label(self) + | + | set_gen_xrefs(self, *args) -> 'void' + | set_gen_xrefs(self, on=True) + | + | @param on: bool + | + | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, makeline_flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) + | + | stack_view(self, *args) -> 'bool' + | stack_view(self) -> bool + | + | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | default_lnnum + | default_lnnum + | + | insn_ea + | insn_ea + | + | outbuf + | outbuf + | + | thisown + | The membership flag + +Help on function outctx_base_t__from_ptrval__ in module ida_ua: + +outctx_base_t__from_ptrval__(*args) -> 'outctx_base_t *' + outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t + + @param ptrval: size_t + +Help on class outctx_t in module ida_ua: + +class outctx_t(outctx_base_t) + | Proxy of C++ outctx_t class. + | + | Method resolution order: + | outctx_t + | outctx_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | gen_func_footer(self, *args) -> 'void' + | gen_func_footer(self, pfn) + | + | @param pfn: func_t const * + | + | gen_func_header(self, *args) -> 'void' + | gen_func_header(self, pfn) + | + | @param pfn: func_t * + | + | gen_header(self, *args) -> 'void' + | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * + | + | gen_header_extra(self, *args) -> 'void' + | gen_header_extra(self) + | + | gen_xref_lines(self, *args) -> 'bool' + | gen_xref_lines(self) -> bool + | + | out_btoa(self, *args) -> 'void' + | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) + | + | out_custom_mnem(self, *args) -> 'void' + | out_custom_mnem(self, mnem, width=8, postfix=None) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' + | + | out_data(self, *args) -> 'void' + | out_data(self, analyze_only) + | + | @param analyze_only: bool + | + | out_immchar_cmts(self, *args) -> 'void' + | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. + | + | out_mnem(self, *args) -> 'void' + | out_mnem(self, width=8, postfix=None) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic + | + | out_mnemonic(self, *args) -> 'void' + | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. + | + | out_one_operand(self, *args) -> 'bool' + | out_one_operand(self, n) -> bool + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden + | + | out_specea(self, *args) -> 'bool' + | out_specea(self, segtype) -> bool + | + | @param segtype: uchar + | + | retrieve_cmt(self, *args) -> 'ssize_t' + | retrieve_cmt(self) -> ssize_t + | + | retrieve_name(self, *args) -> 'ssize_t' + | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * + | + | set_bin_state(self, *args) -> 'void' + | set_bin_state(self, value) + | + | @param value: int + | + | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param flags: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ash + | ash + | + | bin_ea + | bin_ea + | + | bin_state + | bin_state + | + | bin_width + | bin_width + | + | curlabel + | curlabel + | + | gl_bpsize + | gl_bpsize + | + | insn + | insn + | + | ph + | ph + | + | prefix_ea + | prefix_ea + | + | procmod + | procmod + | + | saved_immvals + | saved_immvals + | + | thisown + | The membership flag + | + | wif + | wif + | + | ---------------------------------------------------------------------- + | Methods inherited from outctx_base_t: + | + | close_comment(self, *args) -> 'void' + | close_comment(self) + | + | clr_gen_label(self, *args) -> 'void' + | clr_gen_label(self) + | + | display_voids(self, *args) -> 'bool' + | display_voids(self) -> bool + | + | flush_buf(self, *args) -> 'bool' + | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) + | + | flush_outbuf(self, *args) -> 'bool' + | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) + | + | forbid_annotations(self, *args) -> 'int' + | forbid_annotations(self) -> int + | + | force_code(self, *args) -> 'bool' + | force_code(self) -> bool + | + | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached + | + | gen_border_line(self, *args) -> 'bool' + | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached + | + | gen_cmt_line(self, *args) -> 'bool' + | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_collapsed_line(self, *args) -> 'bool' + | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line(self, *args) -> 'bool' + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line_without_annotations(self, *args) -> 'void' + | gen_empty_line_without_annotations(self) + | + | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * + | + | init_lines_array(self, *args) -> 'void' + | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int + | + | multiline(self, *args) -> 'bool' + | multiline(self) -> bool + | + | only_main_line(self, *args) -> 'bool' + | only_main_line(self) -> bool + | + | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) + | + | out_char(self, *args) -> 'void' + | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) + | + | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) + | + | out_colored_register_line(self, *args) -> 'void' + | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * + | + | out_keyword(self, *args) -> 'void' + | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * + | + | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) + | + | out_long(self, *args) -> 'void' + | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) + | + | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced + | + | out_printf(self, *args) -> 'void' + | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended + | + | out_register(self, *args) -> 'void' + | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * + | + | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) + | + | out_symbol(self, *args) -> 'void' + | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) + | + | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value + | + | print_label_now(self, *args) -> 'bool' + | print_label_now(self) -> bool + | + | restore_ctxflags(self, *args) -> 'void' + | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int + | + | set_comment_addr(self, *args) -> 'void' + | set_comment_addr(self, ea) + | + | @param ea: ea_t + | + | set_dlbind_opnd(self, *args) -> 'void' + | set_dlbind_opnd(self) + | + | set_gen_cmt(self, *args) -> 'void' + | set_gen_cmt(self, on=True) + | + | @param on: bool + | + | set_gen_demangled_label(self, *args) -> 'void' + | set_gen_demangled_label(self) + | + | set_gen_label(self, *args) -> 'void' + | set_gen_label(self) + | + | set_gen_xrefs(self, *args) -> 'void' + | set_gen_xrefs(self, on=True) + | + | @param on: bool + | + | stack_view(self, *args) -> 'bool' + | stack_view(self) -> bool + | + | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from outctx_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | default_lnnum + | default_lnnum + | + | insn_ea + | insn_ea + | + | outbuf + | outbuf + +Help on function outctx_t__from_ptrval__ in module ida_ua: + +outctx_t__from_ptrval__(*args) -> 'outctx_t *' + outctx_t__from_ptrval__(ptrval) -> outctx_t + + @param ptrval: size_t + +Help on function print_insn_mnem in module ida_ua: + +print_insn_mnem(*args) -> 'qstring *' + print_insn_mnem(ea) -> str + Print instruction mnemonics. + + @param ea: (C++: ea_t) linear address of the instruction + @return: success + +Help on function print_operand in module ida_ua: + +print_operand(*args) -> 'qstring *' + print_operand(ea, n, getn_flags=0, newtype=None) -> str + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) + + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) Name expression flags Currently only GETN_NODUMMY is + accepted. + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type + @return: success + +Module "ida_xref"s docstring: +""" +Functions that deal with cross-references. + +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) + +The source address of a cross-reference must be an item head (is_head) or a +structure member id. + +Cross-references are automatically sorted.""" + +Help on function add_cref in module ida_xref: + +add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool + Create a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success + +Help on function add_dref in module ida_xref: + +add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool + Create a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) + +Help on function calc_switch_cases in module ida_xref: + +calc_switch_cases(*args) -> 'cases_and_targets_t *' + calc_switch_cases(ea, si) -> cases_and_targets_t + Get information about a switch's cases. + + The returned information can be used as follows: + + for idx in range(len(results.cases)): + cur_case = results.cases[idx] + for cidx in range(len(cur_case)): + print("case: %d" % cur_case[cidx]) + print(" goto 0x%x" % results.targets[idx]) + + @param ea: address of the 'indirect jump' instruction + @param si: switch information + + @return: a structure with 2 members: 'cases', and 'targets'. + +Help on class cases_and_targets_t in module ida_xref: + +class cases_and_targets_t(builtins.object) + | Proxy of C++ cases_and_targets_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> cases_and_targets_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cases_and_targets_t(...) + | delete_cases_and_targets_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cases + | cases + | + | targets + | targets + | + | thisown + | The membership flag + +Help on class casevec_t in module ida_xref: + +class casevec_t(builtins.object) + | Proxy of C++ qvector< qvector< sval_t > > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ + | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> casevec_t + | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ + | + | __swig_destroy__ = delete_casevec_t(...) + | delete_casevec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ + | + | at = __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ + | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ + | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | erase(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ + | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | extract(self, *args) -> 'qvector< signed-ea-like-numeric-type > *'↗ + | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ + | + | find(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ + | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t + | + | insert(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ + | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ + | push_back(self, x) + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function create_switch_table in module ida_xref: + +create_switch_table(*args) -> 'bool' + create_switch_table(ea, si) -> bool + Create switch table from the switch information + + @param ea: address of the 'indirect jump' instruction + @param si: switch information + + @return: Boolean + +Help on function create_switch_xrefs in module ida_xref: + +create_switch_xrefs(*args) -> 'bool' + create_switch_xrefs(ea, si) -> bool + This function creates xrefs from the indirect jump. + + Usually there is no need to call this function directly because the kernel + will call it for switch tables + + Note: Custom switch information are not supported yet. + + @param ea: address of the 'indirect jump' instruction + @param si: switch information + + @return: Boolean + +Help on function del_cref in module ida_xref: + +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool + Delete a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted + +Help on function del_dref in module ida_xref: + +del_dref(*args) -> 'void' + del_dref(frm, to) + Delete a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + +Help on function delete_switch_table in module ida_xref: + +delete_switch_table(*args) -> 'void' + delete_switch_table(jump_ea, si) + + @param jump_ea: ea_t + @param si: switch_info_t const & + +Help on function get_first_cref_from in module ida_xref: + +get_first_cref_from(*args) -> 'ea_t' + get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. + +Help on function get_first_cref_to in module ida_xref: + +get_first_cref_to(*args) -> 'ea_t' + get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. + +Help on function get_first_dref_from in module ida_xref: + +get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t + Get first data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. + +Help on function get_first_dref_to in module ida_xref: + +get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t + Get address of instruction/data referencing to the specified data. + + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. + +Help on function get_first_fcref_from in module ida_xref: + +get_first_fcref_from(*args) -> 'ea_t' + get_first_fcref_from(frm) -> ea_t + + @param from: ea_t + +Help on function get_first_fcref_to in module ida_xref: + +get_first_fcref_to(*args) -> 'ea_t' + get_first_fcref_to(to) -> ea_t + + @param to: ea_t + +Help on function get_next_cref_from in module ida_xref: + +get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t + Get next instruction referenced from the specified instruction. + + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. + +Help on function get_next_cref_to in module ida_xref: + +get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t + Get next instruction referencing to the specified instruction. + + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. + +Help on function get_next_dref_from in module ida_xref: + +get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t + Get next data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. + +Help on function get_next_dref_to in module ida_xref: + +get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t + Get address of instruction/data referencing to the specified data + + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. + +Help on function get_next_fcref_from in module ida_xref: + +get_next_fcref_from(*args) -> 'ea_t' + get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t + +Help on function get_next_fcref_to in module ida_xref: + +get_next_fcref_to(*args) -> 'ea_t' + get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t + +Help on function has_external_refs in module ida_xref: + +has_external_refs(*args) -> 'bool' + has_external_refs(pfn, ea) -> bool + Does 'ea' have references from outside of 'pfn'? + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) + +Help on class xrefblk_t in module ida_xref: + +class xrefblk_t(builtins.object) + | Proxy of C++ xrefblk_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> xrefblk_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_xrefblk_t(...) + | delete_xrefblk_t(self) + | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | + | first_from(self, *args) -> 'bool' + | first_from(self, _from, flags) -> bool + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) + | + | first_to(self, *args) -> 'bool' + | first_to(self, _to, flags) -> bool + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) + | + | next_from(self, *args) -> 'bool' + | next_from(self) -> bool + | Get xref from '_from' that comes after '_to'. + | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | next_to(self, *args) -> 'bool' + | next_to(self) -> bool + | Get xref to '_to' that comes after '_from'. + | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | frm + | frm + | + | iscode + | iscode + | + | thisown + | The membership flag + | + | to + | to + | + | type + | type + | + | user + | user + +Help on function xrefchar in module ida_xref: + +xrefchar(*args) -> 'char' + xrefchar(xrtype) -> char + Get character describing the xref type. + + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value + +Module "idc"s docstring: +""" +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. +""" + +Help on function AddSeg in module idc: + +AddSeg(startea, endea, base, use32, align, comb) + +Help on function AutoMark in module idc: + +AutoMark(ea, qtype) + Plan to analyze an address + +Help on class DeprecatedIDCError in module idc: + +class DeprecatedIDCError(builtins.Exception) + | Exception for deprecated function calls + | + | Method resolution order: + | DeprecatedIDCError + | builtins.Exception + | builtins.BaseException + | builtins.object + | + | Methods defined here: + | + | add_note = dummy_replacement() + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.Exception: + | + | __init__(self, /, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __new__(*args, **kwargs) from builtins.type + | Create and return a new object. See help(type) for accurate signature. + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.BaseException: + | + | __delattr__(self, name, /) + | Implement delattr(self, name). + | + | __getattribute__(self, name, /) + | Return getattr(self, name). + | + | __reduce__(...) + | helper for pickle + | + | __repr__(self, /) + | Return repr(self). + | + | __setattr__(self, name, value, /) + | Implement setattr(self, name, value). + | + | __setstate__(...) + | + | __str__(self, /) + | Return str(self). + | + | with_traceback(...) + | Exception.with_traceback(tb) -- + | set self.__traceback__ to tb and return self. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from builtins.BaseException: + | + | __cause__ + | exception cause + | + | __context__ + | exception context + | + | __dict__ + | + | __suppress_context__ + | + | __traceback__ + | + | args + +Help on function EVAL_FAILURE in module idc: + +EVAL_FAILURE(code) + Check the result of eval_idc() for evaluation failures + + @param code: result of eval_idc() + + @return: True if there was an evaluation error + +Help on function get_cmt in module ida_bytes: + +get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str + Get an indented comment. + + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 + +Help on function GetDisasm in module idc: + +GetDisasm(ea) + Get disassembly line + + @param ea: linear address of instruction + + @return: "" - could not decode instruction at the specified location + + @note: this function may not return exactly the same mnemonics + as you see on the screen. + +Help on function GetDouble in module idc: + +GetDouble(ea) + Get value of a floating point number (8 bytes) + This function assumes number stored using IEEE format + and in the same endianness as integers. + + @param ea: linear address + + @return: double + +Help on function GetFloat in module idc: + +GetFloat(ea) + Get value of a floating point number (4 bytes) + This function assumes number stored using IEEE format + and in the same endianness as integers. + + @param ea: linear address + + @return: float + +Help on function GetLocalType in module idc: + +GetLocalType(ordinal, flags) + Retrieve a local type declaration + @param flags: any of PRTYPE_* constants + @return: local type as a C declaration or "" + +Help on function LoadFile in module idc: + +LoadFile(filepath, pos, ea, size) + Load file into IDA database + + @param filepath: path to input file + @param pos: position in the file + @param ea: linear address to load + @param size: number of bytes to load + + @return: 0 - error, 1 - ok + +Help on function MakeVar in module idc: + +MakeVar(ea) + +Help on function SaveFile in module idc: + +SaveFile(filepath, pos, ea, size) + Save from IDA database to file + + @param filepath: path to output file + @param pos: position in the file + @param ea: linear address to save from + @param size: number of bytes to save + + @return: 0 - error, 1 - ok + +Help on function SetPrcsr in module idc: + +SetPrcsr(processor) + +Help on function SetType in module idc: + +SetType(ea, newtype) + Set type of function/variable + + @param ea: the address of the object + @param newtype: the type string in C declaration form. + Must contain the closing ';' + if specified as an empty string, then the + item associated with 'ea' will be deleted. + + @return: 1-ok, 0-failed. + +Help on function SizeOf in module idc: + +SizeOf(typestr) + Returns the size of the type. It is equivalent to IDC's sizeof(). + Use name, tp, fld = idc.parse_decl() ; SizeOf(tp) to retrieve the size + @return: -1 if typestring is not valid otherwise the size of the type + +Help on function _IDC_GetAttr in module idc: + +_IDC_GetAttr(obj, attrmap, attroffs) + Internal function to generically get object attributes + Do not use unless you know what you are doing + +Help on function _IDC_SetAttr in module idc: + +_IDC_SetAttr(obj, attrmap, attroffs, value) + Internal function to generically set object attributes + Do not use unless you know what you are doing + +Help on function __DbgValue in module idc: + +__DbgValue(ea, len) + +Help on function __GetArrayById in module idc: + +__GetArrayById(array_id) + Get an array, by its ID. + + This (internal) wrapper around 'idaaip.netnode(array_id)' + will ensure a certain safety around the retrieval of + arrays (by catching quite unexpect[ed|able] exceptions, + and making sure we don't create & use `transient' netnodes). + + @param array_id: A positive, valid array ID. + +Help on class __dummy_netnode in module idc: + +class __dummy_netnode(builtins.object) + | Implements, in an "always failing" fashion, the + | netnode functions that are necessary for the + | array-related functions. + | + | The sole purpose of this singleton class is to + | serve as a placeholder for netnode-manipulating + | functions, that don't want to each have to perform + | checks on the existence of the netnode. + | (..in other words: it avoids a bunch of if/else's). + | + | See __GetArrayById() for more info. + | + | Methods defined here: + | + | altdel(self, *args) + | + | altfirst(self, *args) + | + | altlast(self, *args) + | + | altnext(self, *args) + | + | altprev(self, *args) + | + | altset(self, *args) + | + | altval(self, *args) + | + | hashdel(self, *args) + | + | hashfirst(self, *args) + | + | hashlast(self, *args) + | + | hashnext(self, *args) + | + | hashprev(self, *args) + | + | hashset(self, *args) + | + | hashset_buf(self, *args) + | + | hashset_idx(self, *args) + | + | hashstr(self, *args) + | + | hashstr_buf(self, *args) + | + | hashval(self, *args) + | + | hashval_long(self, *args) + | + | index(self, *args) + | + | kill(self, *args) + | + | rename(self, *args) + | + | supdel(self, *args) + | + | supfirst(self, *args) + | + | suplast(self, *args) + | + | supnext(self, *args) + | + | supprev(self, *args) + | + | supset(self, *args) + | + | supval(self, *args) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | instance = <idc.__dummy_netnode object> + +Help on function __l2m1 in module idc: + +__l2m1(v) + Long to minus 1: If the 'v' appears to be the + 'signed long' version of -1, then return -1. + Otherwise, return 'v'. + +Help on function __m1tol in module idc: + +__m1tol(v) + Long -1 to BADNODE: If the 'v' appears to be the + 'signed long' version of -1, then return BADNODE. + Otherwise, return 'v'. + +Help on function __warn_once_deprecated_proto_confusion in module idc: + +__warn_once_deprecated_proto_confusion(what, alternative) + +Help on function _get_modules in module idc: + +_get_modules() + INTERNAL: Enumerate process modules + +Help on function _import_module_flag_sets in module idc: + +_import_module_flag_sets(module, prefixes) + +Help on function add_auto_stkpnt in module idc: + +add_auto_stkpnt(func_ea, ea, delta) + Add automatical SP register change point + @param func_ea: function start + @param ea: linear address where SP changes + usually this is the end of the instruction which + modifies the stack pointer (insn.ea+insn.size) + @param delta: difference between old and new values of SP + @return: 1-ok, 0-failed + +Help on function add_bpt in module ida_dbg: + +add_bpt(*args) -> 'bool' + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + + add_bpt(bpt) -> bool + + @param bpt: bpt_t const & + +Help on function add_cref in module ida_xref: + +add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool + Create a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success + +Help on function add_default_til in module idc: + +add_default_til(name) + Load a type library + + @param name: name of type library. + @return: 1-ok, 0-failed. + +Help on function add_dref in module ida_xref: + +add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool + Create a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) + +Help on function add_entry in module ida_entry: + +add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool + Add an entry point to the list of entry points. + + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) + +Help on function add_enum in module idc: + +add_enum(idx, name, flag) + Add a new enum type + + @param idx: serial number of the new enum. + If another enum with the same serial number + exists, then all enums with serial + numbers >= the specified idx get their + serial numbers incremented (in other words, + the new enum is put in the middle of the list of enums). + + If idx >= get_enum_qty() or idx == idaapi.BADNODE + then the new enum is created at the end of + the list of enums. + + @param name: name of the enum. + @param flag: flags for representation of numeric constants + in the definition of enum. + + @return: id of new enum or BADADDR + +Help on function add_enum_member in module idc: + +add_enum_member(enum_id, name, value, bmask) + Add a member of enum - a symbolic constant + + @param enum_id: id of enum + @param name: name of symbolic constant. Must be unique in the program. + @param value: value of symbolic constant. + @param bmask: bitmask of the constant + ordinary enums accept only ida_enum.DEFMASK as a bitmask + all bits set in value should be set in bmask too + + @return: 0-ok, otherwise error code (one of ENUM_MEMBER_ERROR_*) + +Help on function add_func in module ida_funcs: + +add_func(*args) -> 'bool' + add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success + +Help on function add_hidden_range in module ida_bytes: + +add_hidden_range(*args) -> 'bool' + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color + @return: success + +Help on function add_idc_hotkey in module ida_kernwin: + +add_idc_hotkey(*args) -> 'int' + add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes + +Help on function add_segm_ex in module idc: + +add_segm_ex(startea, endea, base, use32, align, comb, flags) + Create a new segment + + @param startea: linear address of the start of the segment + @param endea: linear address of the end of the segment + this address will not belong to the segment + 'endea' should be higher than 'startea' + @param base: base paragraph or selector of the segment. + a paragraph is 16byte memory chunk. + If a selector value is specified, the selector should be + already defined. + @param use32: 0: 16bit segment, 1: 32bit segment, 2: 64bit segment + @param align: segment alignment. see below for alignment values + @param comb: segment combination. see below for combination values. + @param flags: combination of ADDSEG_... bits + + @return: 0-failed, 1-ok + +Help on function add_sourcefile in module ida_lines: + +add_sourcefile(*args) -> 'bool' + add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success + +Help on function add_struc in module idc: + +add_struc(index, name, is_union) + Define a new structure type + + @param index: index of new structure type + If another structure has the specified index, + then index of that structure and all other + structures will be incremented, freeing the specifed + index. If index is == -1, then the biggest index + number will be used. + See get_first_struc_idx() for the explanation of + structure indices and IDs. + @param name: name of the new structure type. + @param is_union: 0: structure + 1: union + + @return: -1 if can't define structure type because of + bad structure name: the name is ill-formed or is + already used in the program. + otherwise returns ID of the new structure type + +Help on function add_struc_member in module idc: + +add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, reftype=2) + Add structure member + + @param sid: structure type ID + @param name: name of the new member + @param offset: offset of the new member + -1 means to add at the end of the structure + @param flag: type of the new member. Should be one of + FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA + @param typeid: if is_struct(flag) then typeid specifies the structure id for the member + if is_off0(flag) then typeid specifies the offset base. + if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). + if is_stroff(flag) then typeid specifies the structure id + if is_enum(flag) then typeid specifies the enum id + if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) + Otherwise typeid should be -1. + @param nbytes: number of bytes in the new member + + @param target: target address of the offset expr. You may specify it as + -1, ida will calculate it itself + @param tdelta: offset target delta. usually 0 + @param reftype: see REF_... definitions + + @note: The remaining arguments are allowed only if is_off0(flag) and you want + to specify a complex offset expression + + @return: 0 - ok, otherwise error code (one of STRUC_ERROR_*) + +Help on function add_user_stkpnt in module ida_frame: + +add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool + Add user-defined SP register change point. + + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success + +Help on function append_func_tail in module idc: + +append_func_tail(funcea, ea1, ea2) + Append a function chunk to the function + + @param funcea: any address in the function + @param ea1: start of function tail + @param ea2: end of function tail + @return: 0 if failed, 1 if success + + @note: If a chunk exists at the specified addresses, it must have exactly + the specified boundaries + +Help on function apply_type in module idc: + +apply_type(ea, py_type, flags=1) + Apply the specified type to the address + + @param ea: the address of the object + @param py_type: typeinfo tuple (type, fields) as get_tinfo() returns + or tuple (name, type, fields) as parse_decl() returns + or None + if specified as None, then the + item associated with 'ea' will be deleted. + @param flags: combination of TINFO_... constants or 0 + @return: Boolean + +Help on function ask_seg in module ida_kernwin: + +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 + +Help on function ask_yn in module ida_kernwin: + +ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int + Display a dialog box and get choice from "Yes", "No", "Cancel". + + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. + +Help on function atoa in module idc: + +atoa(ea) + Convert address value to a string + Return address in the form 'seg000:1234' + (the same as in line prefixes) + + @param ea: address to format + +Help on function atol in module idc: + +atol(s) + +Help on function attach_process in module ida_dbg: + +attach_process(*args) -> 'int' + attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process + +Help on function auto_mark_range in module ida_auto: + +auto_mark_range(*args) -> 'void' + auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_unmark in module ida_auto: + +auto_unmark(*args) -> 'void' + auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_wait in module ida_auto: + +auto_wait(*args) -> 'bool' + auto_wait() -> bool + Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) + +Help on function batch in module idc: + +batch(batch) + Enable/disable batch mode of operation + + @param batch: batch mode + 0 - ida will display dialog boxes and wait for the user input + 1 - ida will not display dialog boxes, warnings, etc. + + @return: old balue of batch flag + +Help on function byte_value in module idc: + +byte_value(F) + Get byte value from flags + Get value of byte provided that the byte is initialized. + This macro works ok only for 8-bit byte machines. + +Help on function calc_gtn_flags in module ida_name: + +calc_gtn_flags(fromaddr, ea) + Calculate flags for get_ea_name() function + + @param fromaddr: the referring address. May be BADADDR. + @param ea: linear address + + @return: flags + +Help on function call_system in module idc: + +call_system(command) + Execute an OS command. + + @param command: command line to execute + + @return: error code from OS + + @note: + IDA will wait for the started program to finish. + In order to start the command in parallel, use OS methods. + For example, you may start another program in parallel using + "start" command. + +Help on function can_exc_continue in module idc: + +can_exc_continue() + Can it continue after EXCEPTION event? + + @return: boolean + +Help on function check_bpt in module ida_dbg: + +check_bpt(*args) -> 'int' + check_bpt(ea) -> int + Check the breakpoint at the specified address. + + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes + +Help on function choose_func in module idc: + +choose_func(title) + Ask the user to select a function + + Arguments: + + @param title: title of the dialog box + + @return: -1 - user refused to select a function + otherwise returns the selected function start address + +Help on function clear_trace in module idc: + +clear_trace(filename) + Clear the current trace buffer + +Help on function create_align in module ida_bytes: + +create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool + Create an alignment item. + + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success + +Help on function create_array in module idc: + +create_array(name) + Create array. + + @param name: The array name. + + @return: -1 in case of failure, a valid array_id otherwise. + +Help on function create_byte in module idc: + +create_byte(ea) + Convert the current item to a byte + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_custdata in module ida_bytes: + +create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool + Convert to custom data type. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) + +Help on function create_data in module ida_bytes: + +create_data(*args) -> 'bool' + create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success + +Help on function create_double in module idc: + +create_double(ea) + Convert the current item to a double floating point (8 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_dword in module idc: + +create_dword(ea) + Convert the current item to a double word (4 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_float in module idc: + +create_float(ea) + Convert the current item to a floating point (4 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_insn in module ida_ua: + +create_insn(*args) -> 'int' + create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 + +Help on function create_oword in module idc: + +create_oword(ea) + Convert the current item to an octa word (16 bytes/128 bits) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_pack_real in module idc: + +create_pack_real(ea) + Convert the current item to a packed real (10 or 12 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_qword in module idc: + +create_qword(ea) + Convert the current item to a quadro word (8 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_strlit in module idc: + +create_strlit(ea, endea) + Create a string. + + This function creates a string (the string type is determined by the + value of get_inf_attr(INF_STRTYPE)) + + @param ea: linear address + @param endea: ending address of the string (excluded) + if endea == BADADDR, then length of string will be calculated + by the kernel + + @return: 1-ok, 0-failure + + @note: The type of an existing string is returned by get_str_type() + +Help on function create_struct in module idc: + +create_struct(ea, size, strname) + Convert the current item to a structure instance + + @param ea: linear address + @param size: structure size in bytes. -1 means that the size + will be calculated automatically + @param strname: name of a structure type + + @return: 1-ok, 0-failure + +Help on function create_tbyte in module idc: + +create_tbyte(ea) + Convert the current item to a tbyte (10 or 12 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_word in module idc: + +create_word(ea) + Convert the current item to a word (2 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_yword in module idc: + +create_yword(ea) + Convert the current item to a ymm word (32 bytes/256 bits) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function define_exception in module ida_dbg: + +define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * + Convenience function: define new exception code. + + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds + +Help on function define_local_var in module idc: + +define_local_var(start, end, location, name) + Create a local variable + + @param start: start of address range for the local variable + @param end: end of address range for the local variable + @param location: the variable location in the "[bp+xx]" form where xx is + a number. The location can also be specified as a + register name. + @param name: name of the local variable + + @return: 1-ok, 0-failure + + @note: For the stack variables the end address is ignored. + If there is no function at 'start' then this function. + will fail. + +Help on function del_array_element in module idc: + +del_array_element(tag, array_id, idx) + Delete an array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of an element. + + @return: 1 in case of success, 0 otherwise. + +Help on function del_bpt in module ida_dbg: + +del_bpt(*args) -> 'bool' + del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + del_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function del_cref in module ida_xref: + +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool + Delete a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted + +Help on function del_dref in module ida_xref: + +del_dref(*args) -> 'void' + del_dref(frm, to) + Delete a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + +Help on function del_enum in module ida_enum: + +del_enum(*args) -> 'void' + del_enum(id) + Delete an enum type. + + @param id: (C++: enum_t) + +Help on function del_enum_member in module idc: + +del_enum_member(enum_id, value, serial, bmask) + Delete a member of enum - a symbolic constant + + @param enum_id: id of enum + @param value: value of symbolic constant. + @param serial: serial number of the constant in the + enumeration. See op_enum() for for details. + @param bmask: bitmask of the constant ordinary enums accept + only ida_enum.DEFMASK as a bitmask + + @return: 1-ok, 0-failed + +Help on function del_extra_cmt in module ida_lines: + +del_extra_cmt(*args) -> 'void' + del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int + +Help on function del_fixup in module ida_fixup: + +del_fixup(*args) -> 'void' + del_fixup(source) + Delete fixup information. + + @param source: (C++: ea_t) + +Help on function del_func in module ida_funcs: + +del_func(*args) -> 'bool' + del_func(ea) -> bool + Delete a function. + + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success + +Help on function del_hash_string in module idc: + +del_hash_string(hash_id, key) + Delete a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element + + @return: 1 upon success, 0 otherwise. + +Help on function del_hidden_range in module ida_bytes: + +del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool + Delete hidden range. + + @param ea: (C++: ea_t) any address in the hidden range + @return: success + +Help on function del_idc_hotkey in module ida_kernwin: + +del_idc_hotkey(*args) -> 'bool' + del_idc_hotkey(hotkey) -> bool + + @param hotkey: char const * + +Help on function del_items in module ida_bytes: + +del_items(*args) -> 'bool' + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false + +Help on function del_segm in module ida_segment: + +del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool + Delete a segment. + + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. + +Help on function del_selector in module ida_segment: + +del_selector(*args) -> 'void' + del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table + +Help on function del_source_linnum in module ida_nalt: + +del_source_linnum(*args) -> 'void' + del_source_linnum(ea) + + @param ea: ea_t + +Help on function del_sourcefile in module ida_lines: + +del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool + Delete information about the source file. + + @param ea: (C++: ea_t) linear address + @return: success + +Help on function del_stkpnt in module idc: + +del_stkpnt(func_ea, ea) + Delete SP register change point + + @param func_ea: function start + @param ea: linear address + @return: 1-ok, 0-failed + +Help on function del_struc in module idc: + +del_struc(sid) + Delete a structure type + + @param sid: structure type ID + + @return: 0 if bad structure type ID is passed + 1 otherwise the structure type is deleted. All data + and other structure types referencing to the + deleted structure type will be displayed as array + of bytes. + +Help on function del_struc_member in module idc: + +del_struc_member(sid, member_offset) + Delete structure member + + @param sid: structure type ID + @param member_offset: offset of the member + + @return: != 0 - ok. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + +Help on function delete_all_segments in module idc: + +delete_all_segments() + Delete all segments, instructions, comments, i.e. everything + except values of bytes. + +Help on function delete_array in module idc: + +delete_array(array_id) + Delete array, by its ID. + + @param array_id: The ID of the array to delete. + +Help on function demangle_name in module idc: + +demangle_name(name, disable_mask) + demangle_name a name + + @param name: name to demangle + @param disable_mask: a mask that tells how to demangle the name + it is a good idea to get this mask using + get_inf_attr(INF_SHORT_DN) or get_inf_attr(INF_LONG_DN) + + @return: a demangled name + If the input name cannot be demangled, returns None + +Help on function detach_process in module ida_dbg: + +detach_process(*args) -> 'bool' + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} + +Help on function diff_trace_file in module ida_dbg: + +diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool + Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * + +Help on function enable_bpt in module ida_dbg: + +enable_bpt(*args) -> 'bool' + enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_tracing in module idc: + +enable_tracing(trace_level, enable) + Enable step tracing + + @param trace_level: what kind of trace to modify + @param enable: 0: turn off, 1: turn on + + @return: success + +Help on function error in module ida_kernwin: + +error(*args) -> 'void' + error(format) + Display a fatal message in a message box and quit IDA + + @param format: message to print + +Help on function eval_idc in module idc: + +eval_idc(expr) + Evaluate an IDC expression + + @param expr: an expression + + @return: the expression value. If there are problems, the returned value will be "IDC_FAILURE: xxx" + where xxx is the error description + + @note: Python implementation evaluates IDC only, while IDC can call other registered languages + +Help on function exit_process in module ida_dbg: + +exit_process(*args) -> 'bool' + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} + +Help on function expand_struc in module idc: + +expand_struc(sid, offset, delta, recalc) + Expand or shrink a structure type + @param id: structure type ID + @param offset: offset in the structure + @param delta: how many bytes to add or remove + @param recalc: recalculate the locations where the structure + type is used + @return: != 0 - ok + +Help on function fclose in module idc: + +fclose(handle) + +Help on function fgetc in module idc: + +fgetc(handle) + +Help on function filelength in module idc: + +filelength(handle) + +Help on function find_binary in module idc: + +find_binary(ea, flag, searchstr, radix=16) + +Help on function find_code in module ida_search: + +find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t + Find next code address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_data in module ida_search: + +find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t + Find next data address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_defined in module ida_search: + +find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t + Find next ea that is the start of an instruction or data. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_func_end in module idc: + +find_func_end(ea) + Determine a new function boundaries + + @param ea: starting address of a new function + + @return: if a function already exists, then return its end address. + If a function end cannot be determined, the return BADADDR + otherwise return the end address of the new function + +Help on function find_imm in module ida_search: + +find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t + Find next immediate operand with the given value. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) + +Help on function find_selector in module idc: + +find_selector(val) + Find a selector which has the specifed value + + @param val: value to search for + + @return: the selector number if found, + otherwise the input value (val & 0xFFFF) + + @note: selector values are always in paragraphs + +Help on function find_suspop in module ida_search: + +find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t + Find next suspicious operand. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_text in module idc: + +find_text(ea, flag, y, x, searchstr) + +Help on function find_unknown in module ida_search: + +find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t + Find next unexplored address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function first_func_chunk in module idc: + +first_func_chunk(funcea) + Get the first function chunk of the specified function + + @param funcea: any address in the function + + @return: the function entry point or BADADDR + + @note: This function returns the first (main) chunk of the specified function + +Help on function fopen in module idc: + +fopen(f, mode) + #---------------------------------------------------------------------------- + # F I L E I / O + #---------------------------------------------------------------------------- + +Help on function force_bl_call in module idc: + +force_bl_call(ea) + Force BL instruction to be a call + + @param ea: address of the BL instruction + + @return: 1-ok, 0-failed + +Help on function force_bl_jump in module idc: + +force_bl_jump(ea) + Some ARM compilers in Thumb mode use BL (branch-and-link) + instead of B (branch) for long jumps, since BL has more range. + By default, IDA tries to determine if BL is a jump or a call. + You can override IDA's decision using commands in Edit/Other menu + (Force BL call/Force BL jump) or the following two functions. + + Force BL instruction to be a jump + + @param ea: address of the BL instruction + + @return: 1-ok, 0-failed + +Help on function form in module idc: + +form(format, *args) + +Help on function fprintf in module idc: + +fprintf(handle, format, *args) + +Help on function fputc in module idc: + +fputc(byte, handle) + +Help on function fseek in module idc: + +fseek(handle, offset, origin) + +Help on function ftell in module idc: + +ftell(handle) + +Help on function func_contains in module idc: + +func_contains(func_ea, ea) + Does the given function contain the given address? + + @param func_ea: any address belonging to the function + @param ea: linear address + + @return: success + +Help on function gen_file in module idc: + +gen_file(filetype, path, ea1, ea2, flags) + Generate an output file + + @param filetype: type of output file. One of OFILE_... symbols. See below. + @param path: the output file path (will be overwritten!) + @param ea1: start address. For some file types this argument is ignored + @param ea2: end address. For some file types this argument is ignored + @param flags: bit combination of GENFLG_... + + @returns: number of the generated lines. + -1 if an error occurred + OFILE_EXE: 0-can't generate exe file, 1-ok + +Help on function gen_flow_graph in module idc: + +gen_flow_graph(outfile, title, ea1, ea2, flags) + Generate a flow chart GDL file + + @param outfile: output file name. GDL extension will be used + @param title: graph title + @param ea1: beginning of the range to flow chart + @param ea2: end of the range to flow chart. + @param flags: combination of CHART_... constants + + @note: If ea2 == BADADDR then ea1 is treated as an address within a function. + That function will be flow charted. + +Help on function gen_simple_call_chart in module idc: + +gen_simple_call_chart(outfile, title, flags) + Generate a function call graph GDL file + + @param outfile: output file name. GDL extension will be used + @param title: graph title + @param flags: combination of CHART_GEN_GDL, CHART_WINGRAPH, CHART_NOLIBFUNCS + +Help on function generate_disasm_line in module idc: + +generate_disasm_line(ea, flags) + Get disassembly line + + @param ea: linear address of instruction + + @param flags: combination of the GENDSM_ flags, or 0 + + @return: "" - could not decode instruction at the specified location + + @note: this function may not return exactly the same mnemonics + as you see on the screen. + +Help on function get_array_element in module idc: + +get_array_element(tag, array_id, idx) + Get value of array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of an element. + + @return: Value of the specified array element. Note that + this function may return char or long result. Unexistent + array elements give zero as a result. + +Help on function get_array_id in module idc: + +get_array_id(name) + Get array array_id, by name. + + @param name: The array name. + + @return: -1 in case of failure (i.e., no array with that + name exists), a valid array_id otherwise. + +Help on function get_bmask_cmt in module idc: + +get_bmask_cmt(enum_id, bmask, repeatable) + Get bitmask comment (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + @param repeatable: type of comment, 0-regular, 1-repeatable + + @return: comment attached to bitmask or None + +Help on function get_bmask_name in module idc: + +get_bmask_name(enum_id, bmask) + Get bitmask name (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + + @return: name of bitmask or None + +Help on function get_marked_pos in module ida_idc: + +get_marked_pos(*args) -> 'ea_t' + get_marked_pos(slot) -> ea_t + + @param slot: int32 + +Help on function get_mark_comment in module ida_idc: + +get_mark_comment(*args) -> 'PyObject *' + get_mark_comment(slot) -> PyObject * + + @param slot: int32 + +Help on function get_bpt_attr in module idc: + +get_bpt_attr(ea, bptattr) + Get the characteristics of a breakpoint + + @param ea: any address in the breakpoint range + @param bptattr: the desired attribute code, one of BPTATTR_... constants + + @return: the desired attribute value or -1 + +Help on function get_bpt_ea in module idc: + +get_bpt_ea(n) + Get breakpoint address + + @param n: number of breakpoint, is in range 0..get_bpt_qty()-1 + + @return: address of the breakpoint or BADADDR + +Help on function get_bpt_qty in module ida_dbg: + +get_bpt_qty(*args) -> 'int' + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_bpt_tev_ea in module ida_dbg: + +get_bpt_tev_ea(*args) -> 'ea_t' + get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. + +Help on function get_bytes in module idc: + +get_bytes(ea, size, use_dbg=False) + Return the specified number of bytes of the program + + @param ea: linear address + + @param size: size of buffer in normal 8-bit bytes + + @param use_dbg: if True, use debugger memory, otherwise just the database + + @return: None on failure + otherwise a string containing the read bytes + +Help on function get_call_tev_callee in module ida_dbg: + +get_call_tev_callee(*args) -> 'ea_t' + get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. + +Help on function get_color in module idc: + +get_color(ea, what) + Get item color + + @param ea: address of the item + @param what: type of the item (one of CIC_* constants) + + @return: color code in RGB (hex 0xBBGGRR) + +Help on function get_curline in module idc: + +get_curline() + Get the disassembly line at the cursor + + @return: string + +Help on function get_current_thread in module ida_dbg: + +get_current_thread(*args) -> 'thid_t' + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_db_byte in module ida_bytes: + +get_db_byte(*args) -> 'uchar' + get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) + +Help on function get_debugger_event_cond in module ida_dbg: + +get_debugger_event_cond(*args) -> 'char const *' + get_debugger_event_cond() -> char const * + +Help on function get_entry in module ida_entry: + +get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t + Get entry point address by its ordinal + + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR + +Help on function get_entry_name in module ida_entry: + +get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str + Get name of the entry point by its ordinal. + + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 + +Help on function get_entry_ordinal in module ida_entry: + +get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t + Get ordinal number of an entry point. + + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. + +Help on function get_entry_qty in module ida_entry: + +get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t + Get number of entry points. + +Help on function get_enum in module ida_enum: + +get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t + Get enum by name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_cmt in module ida_enum: + +get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str + Get enum comment. + + @param id: (C++: enum_t) + @param repeatable: (C++: bool) + +Help on function get_enum_flag in module ida_enum: + +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) + +Help on function get_enum_idx in module ida_enum: + +get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t + Get the index in the list of enums. + + @param id: (C++: enum_t) + +Help on function get_enum_member in module idc: + +get_enum_member(enum_id, value, serial, bmask) + Get id of constant + + @param enum_id: id of enum + @param value: value of constant + @param serial: serial number of the constant in the + enumeration. See op_enum() for details. + @param bmask: bitmask of the constant + ordinary enums accept only ida_enum.DEFMASK as a bitmask + + @return: id of constant or -1 if error + +Help on function get_enum_member_bmask in module ida_enum: + +get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t + Get bitmask of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_by_name in module ida_enum: + +get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t + Get a reference to an enum member by its name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_member_cmt in module idc: + +get_enum_member_cmt(const_id, repeatable) + Get comment of a constant + + @param const_id: id of const + @param repeatable: 0:get regular comment, 1:get repeatable comment + + @return: comment string + +Help on function get_enum_member_enum in module ida_enum: + +get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t + Get the parent enum of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_name in module idc: + +get_enum_member_name(const_id) + Get name of a constant + + @param const_id: id of const + + Returns: name of constant + +Help on function get_enum_member_value in module ida_enum: + +get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t + Get value of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_name in module ida_enum: + +get_enum_name(*args) -> 'qstring *' + get_enum_name(id) -> str + + @param id: enum_t + +Help on function get_enum_qty in module ida_enum: + +get_enum_qty(*args) -> 'size_t' + get_enum_qty() -> size_t + Get number of declared enum_t types. + +Help on function get_enum_size in module ida_enum: + +get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t + Get the number of the members of the enum. + + @param id: (C++: enum_t) + +Help on function get_enum_width in module ida_enum: + +get_enum_width(*args) -> 'size_t' + get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) + +Help on function get_event_bpt_hea in module idc: + +get_event_bpt_hea() + Get hardware address for BREAKPOINT event + + @return: hardware address + +Help on function get_event_ea in module idc: + +get_event_ea() + Get ea for debug event + + @return: ea + +Help on function get_event_exc_code in module idc: + +get_event_exc_code() + Get exception code for EXCEPTION event + + @return: exception code + +Help on function get_event_exc_ea in module idc: + +get_event_exc_ea() + Get address for EXCEPTION event + + @return: adress of exception + +Help on function get_event_exc_info in module idc: + +get_event_exc_info() + Get info for EXCEPTION event + + @return: info string + +Help on function get_event_exit_code in module idc: + +get_event_exit_code() + Get exit code for debug event + + @return: exit code for PROCESS_EXITED, THREAD_EXITED events + +Help on function get_event_id in module idc: + +get_event_id() + Get ID of debug event + + @return: event ID + +Help on function get_event_info in module idc: + +get_event_info() + Get debug event info + + @return: event info: for THREAD_STARTED (thread name) + for LIB_UNLOADED (unloaded library name) + for INFORMATION (message to display) + +Help on function get_event_module_base in module idc: + +get_event_module_base() + Get module base for debug event + + @return: module base + +Help on function get_event_module_name in module idc: + +get_event_module_name() + Get module name for debug event + + @return: module name + +Help on function get_event_module_size in module idc: + +get_event_module_size() + Get module size for debug event + + @return: module size + +Help on function get_event_pid in module idc: + +get_event_pid() + Get process ID for debug event + + @return: process ID + +Help on function get_event_tid in module idc: + +get_event_tid() + Get type ID for debug event + + @return: type ID + +Help on function get_extra_cmt in module ida_lines: + +get_extra_cmt(*args) -> 'int' + get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int + +Help on function get_fchunk_attr in module idc: + +get_fchunk_attr(ea, attr) + Get a function chunk attribute + + @param ea: any address in the chunk + @param attr: one of: FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER, FUNCATTR_REFQTY + + @return: desired attribute or -1 + +Help on function get_fchunk_referer in module ida_funcs: + +get_fchunk_referer(*args) -> 'ea_t' + get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t + +Help on function get_first_bmask in module ida_enum: + +get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(enum_id) -> bmask_t + Get first bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK + +Help on function get_first_cref_from in module ida_xref: + +get_first_cref_from(*args) -> 'ea_t' + get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. + +Help on function get_first_cref_to in module ida_xref: + +get_first_cref_to(*args) -> 'ea_t' + get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. + +Help on function get_first_dref_from in module ida_xref: + +get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t + Get first data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. + +Help on function get_first_dref_to in module ida_xref: + +get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t + Get address of instruction/data referencing to the specified data. + + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. + +Help on function get_first_enum_member in module idc: + +get_first_enum_member(enum_id, bmask) + Get first constant in the enum + + @param enum_id: id of enum + @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) + + @return: value of constant or idaapi.BADNODE no constants are defined + All constants are sorted by their values as unsigned longs. + +Help on function get_first_fcref_from in module ida_xref: + +get_first_fcref_from(*args) -> 'ea_t' + get_first_fcref_from(frm) -> ea_t + + @param from: ea_t + +Help on function get_first_fcref_to in module ida_xref: + +get_first_fcref_to(*args) -> 'ea_t' + get_first_fcref_to(to) -> ea_t + + @param to: ea_t + +Help on function get_first_hash_key in module idc: + +get_first_hash_key(hash_id) + Get the first key in the hash. + + @param hash_id: The hash ID. + + @return: the key, 0 otherwise. + +Help on function get_first_index in module idc: + +get_first_index(tag, array_id) + Get index of the first existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + + @return: -1 if the array is empty, otherwise index of first array + element of given type. + +Help on function get_first_member in module idc: + +get_first_member(sid) + Get offset of the first member of a structure + + @param sid: structure type ID + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if structure has no members, + otherwise returns offset of the first member. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_first_module in module idc: + +get_first_module() + Enumerate process modules + + @return: first module's base address or None on failure + +Help on function get_first_seg in module idc: + +get_first_seg() + Get first segment + + @return: address of the start of the first segment + BADADDR - no segments are defined + +Help on function get_first_struc_idx in module ida_struct: + +get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t + Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise + +Help on function get_fixup_target_dis in module idc: + +get_fixup_target_dis(ea) + Get fixup target displacement + + @param ea: address to get information about + + @return: 0 - no fixup at the specified address + otherwise returns fixup target displacement + +Help on function get_fixup_target_flags in module idc: + +get_fixup_target_flags(ea) + Get fixup target flags + + @param ea: address to get information about + + @return: 0 - no fixup at the specified address + otherwise returns fixup target flags + +Help on function get_fixup_target_off in module idc: + +get_fixup_target_off(ea) + Get fixup target offset + + @param ea: address to get information about + + @return: BADADDR - no fixup at the specified address + otherwise returns fixup target offset + +Help on function get_fixup_target_sel in module idc: + +get_fixup_target_sel(ea) + Get fixup target selector + + @param ea: address to get information about + + @return: BADSEL - no fixup at the specified address + otherwise returns fixup target selector + +Help on function get_fixup_target_type in module idc: + +get_fixup_target_type(ea) + Get fixup target type + + @param ea: address to get information about + + @return: 0 - no fixup at the specified address + otherwise returns fixup type + +Help on function get_forced_operand in module ida_bytes: + +get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str + Get forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 + +Help on function get_frame_args_size in module idc: + +get_frame_args_size(ea) + Get size of arguments in function frame which are purged upon return + + @param ea: any address belonging to the function + + @return: Size of function arguments in bytes. + If the function doesn't have a frame, return 0 + If the function does't exist, return -1 + +Help on function get_frame_id in module idc: + +get_frame_id(ea) + Get ID of function frame structure + + @param ea: any address belonging to the function + + @return: ID of function frame or None In order to access stack variables + you need to use structure member manipulaion functions with the + obtained ID. + +Help on function get_frame_lvar_size in module idc: + +get_frame_lvar_size(ea) + Get size of local variables in function frame + + @param ea: any address belonging to the function + + @return: Size of local variables in bytes. + If the function doesn't have a frame, return 0 + If the function does't exist, return None + +Help on function get_frame_regs_size in module idc: + +get_frame_regs_size(ea) + Get size of saved registers in function frame + + @param ea: any address belonging to the function + + @return: Size of saved registers in bytes. + If the function doesn't have a frame, return 0 + This value is used as offset for BP (if FUNC_FRAME is set) + If the function does't exist, return None + +Help on function get_frame_size in module idc: + +get_frame_size(ea) + Get full size of function frame + + @param ea: any address belonging to the function + @returns: Size of function frame in bytes. + This function takes into account size of local + variables + size of saved registers + size of + return address + size of function arguments + If the function doesn't have a frame, return size of + function return address in the stack. + If the function does't exist, return 0 + +Help on function get_full_flags in module ida_bytes: + +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t + Get flags value for address 'ea'. + + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program + +Help on function get_func_attr in module idc: + +get_func_attr(ea, attr) + Get a function attribute + + @param ea: any address belonging to the function + @param attr: one of FUNCATTR_... constants + + @return: BADADDR - error otherwise returns the attribute value + +Help on function get_func_cmt in module idc: + +get_func_cmt(ea, repeatable) + Retrieve function comment + + @param ea: any address belonging to the function + @param repeatable: 1: get repeatable comment + 0: get regular comment + + @return: function comment string + +Help on function get_func_flags in module idc: + +get_func_flags(ea) + Retrieve function flags + + @param ea: any address belonging to the function + + @return: -1 - function doesn't exist otherwise returns the flags + +Help on function get_func_name in module idc: + +get_func_name(ea) + Retrieve function name + + @param ea: any address belonging to the function + + @return: null string - function doesn't exist + otherwise returns function name + +Help on function get_func_off_str in module idc: + +get_func_off_str(ea) + Convert address to 'funcname+offset' string + + @param ea: address to convert + + @return: if the address belongs to a function then return a string + formed as 'name+offset' where 'name' is a function name + 'offset' is offset within the function else return null string + +Help on function get_hash_long in module idc: + +get_hash_long(hash_id, key) + Gets the long value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + + @return: the 32bit or 64bit value of the element, or 0 if no such + element. + +Help on function get_hash_string in module idc: + +get_hash_string(hash_id, key) + Gets the string value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + + @return: the string value of the element, or None if no such + element. + +Help on function get_idb_path in module idc: + +get_idb_path() + Get IDB full path + + This function returns full path of the current IDB database + +Help on function get_inf_attr in module idc: + +get_inf_attr(attr) + Deprecated. Please ida_ida.inf_get_* instead. + +Help on function get_input_file_path in module ida_nalt: + +get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str + Get full path of the input file. + +Help on function get_item_end in module ida_bytes: + +get_item_end(*args) -> 'ea_t' + get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) + +Help on function get_item_head in module ida_bytes: + +get_item_head(*args) -> 'ea_t' + get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) + +Help on function get_item_size in module idc: + +get_item_size(ea) + Get size of instruction or data item in bytes + + @param ea: linear address + + @return: 1..n + +Help on function get_last_bmask in module ida_enum: + +get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(enum_id) -> bmask_t + Get last bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @return: the biggest bitmask for enum, or DEFMASK + +Help on function get_last_enum_member in module idc: + +get_last_enum_member(enum_id, bmask) + Get last constant in the enum + + @param enum_id: id of enum + @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) + + @return: value of constant or idaapi.BADNODE no constants are defined + All constants are sorted by their values + as unsigned longs. + +Help on function get_last_hash_key in module idc: + +get_last_hash_key(hash_id) + Get the last key in the hash. + + @param hash_id: The hash ID. + + @return: the key, 0 otherwise. + +Help on function get_last_index in module idc: + +get_last_index(tag, array_id) + Get index of last existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + + @return: -1 if the array is empty, otherwise index of first array + element of given type. + +Help on function get_last_member in module idc: + +get_last_member(sid) + Get offset of the last member of a structure + + @param sid: structure type ID + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if structure has no members, + otherwise returns offset of the last member. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_last_struc_idx in module ida_struct: + +get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t + Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise + +Help on function get_local_tinfo in module idc: + +get_local_tinfo(ordinal) + Get local type information as 'typeinfo' object + + @param ordinal: slot number (1...NumberOfLocalTypes) + @return: None on failure, or (type, fields) tuple. + +Help on function get_manual_insn in module ida_bytes: + +get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str + Retrieve the user-specified string for the manual instruction. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 + +Help on function get_member_cmt in module idc: + +get_member_cmt(sid, member_offset, repeatable) + Get comment of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + @param repeatable: 1: get repeatable comment + 0: get regular comment + + @return: None if bad structure type ID is passed + or no such member in the structure + otherwise returns comment of the specified member. + +Help on function get_member_flag in module idc: + +get_member_flag(sid, member_offset) + Get type of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: -1 if bad structure type ID is passed + or no such member in the structure + otherwise returns type of the member, see bit + definitions above. If the member type is a structure + then function GetMemberStrid() should be used to + get the structure type id. + +Help on function get_member_id in module idc: + +get_member_id(sid, member_offset) + @param sid: structure type ID + @param member_offset:. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: -1 if bad structure type ID is passed or there is + no member at the specified offset. + otherwise returns the member id. + +Help on function get_member_name in module idc: + +get_member_name(sid, member_offset) + Get name of a member of a structure + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: None if bad structure type ID is passed + or no such member in the structure + otherwise returns name of the specified member. + +Help on function get_member_offset in module idc: + +get_member_offset(sid, member_name) + Get offset of a member of a structure by the member name + + @param sid: structure type ID + @param member_name: name of structure member + + @return: -1 if bad structure type ID is passed + or no such member in the structure + otherwise returns offset of the specified member. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_member_qty in module idc: + +get_member_qty(sid) + Get number of members of a structure + + @param sid: structure type ID + + @return: -1 if bad structure type ID is passed otherwise + returns number of members. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_member_size in module idc: + +get_member_size(sid, member_offset) + Get size of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: None if bad structure type ID is passed, + or no such member in the structure + otherwise returns size of the specified + member in bytes. + +Help on function get_member_strid in module idc: + +get_member_strid(sid, member_offset) + Get structure id of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + @return: -1 if bad structure type ID is passed + or no such member in the structure + otherwise returns structure id of the member. + If the current member is not a structure, returns -1. + +Help on function get_min_spd_ea in module idc: + +get_min_spd_ea(func_ea) + Return the address with the minimal spd (stack pointer delta) + If there are no SP change points, then return BADADDR. + + @param func_ea: function start + @return: BADDADDR - no such function + +Help on function get_module_name in module idc: + +get_module_name(base) + Get process module name + + @param base: the base address of the module + + @return: required info or None + +Help on function get_module_size in module idc: + +get_module_size(base) + Get process module size + + @param base: the base address of the module + + @return: required info or -1 + +Help on function get_name in module idc: + +get_name(ea, gtn_flags=0) + Get name at the specified address + + @param ea: linear address + @param gtn_flags: how exactly the name should be retrieved. + combination of GN_ bits + + @return: "" - byte has no name + +Help on function get_name_ea in module ida_name: + +get_name_ea(*args) -> 'ea_t' + get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. + + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR + +Help on function get_name_ea_simple in module idc: + +get_name_ea_simple(name) + Get linear address of a name + + @param name: name of program byte + + @return: address of the name + BADADDR - No such name + +Help on function get_next_bmask in module ida_enum: + +get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(enum_id, bmask) -> bmask_t + Get next bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK + +Help on function get_next_cref_from in module ida_xref: + +get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t + Get next instruction referenced from the specified instruction. + + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. + +Help on function get_next_cref_to in module ida_xref: + +get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t + Get next instruction referencing to the specified instruction. + + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. + +Help on function get_next_dref_from in module ida_xref: + +get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t + Get next data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. + +Help on function get_next_dref_to in module ida_xref: + +get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t + Get address of instruction/data referencing to the specified data + + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. + +Help on function get_next_enum_member in module idc: + +get_next_enum_member(enum_id, value, bmask) + Get next constant in the enum + + @param enum_id: id of enum + @param bmask: bitmask of the constant ordinary enums accept only ida_enum.DEFMASK as a bitmask + @param value: value of the current constant + + @return: value of a constant with value higher than the specified + value. idaapi.BADNODE no such constants exist. + All constants are sorted by their values as unsigned longs. + +Help on function get_next_fchunk in module idc: + +get_next_fchunk(ea) + Get next function chunk + + @param ea: any address + + @return: the starting address of the next function chunk or BADADDR + + @note: This function enumerates all chunks of all functions in the database + +Help on function get_next_fcref_from in module ida_xref: + +get_next_fcref_from(*args) -> 'ea_t' + get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t + +Help on function get_next_fcref_to in module ida_xref: + +get_next_fcref_to(*args) -> 'ea_t' + get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t + +Help on function get_next_fixup_ea in module ida_fixup: + +get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t + Find next address with fixup information + + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR + +Help on function get_next_func in module idc: + +get_next_func(ea) + Find next function + + @param ea: any address belonging to the function + + @return: BADADDR - no more functions + otherwise returns the next function start address + +Help on function get_next_hash_key in module idc: + +get_next_hash_key(hash_id, key) + Get the next key in the hash. + + @param hash_id: The hash ID. + @param key: The current key. + + @return: the next key, 0 otherwise + +Help on function get_next_index in module idc: + +get_next_index(tag, array_id, idx) + Get index of the next existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of the current element. + + @return: -1 if no more elements, otherwise returns index of the + next array element of given type. + +Help on function get_next_module in module idc: + +get_next_module(base) + Enumerate process modules + + @param base: previous module's base address + + @return: next module's base address or None on failure + +Help on function get_next_offset in module idc: + +get_next_offset(sid, offset) + Get next offset in a structure + + @param sid: structure type ID + @param offset: current offset + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if no (more) offsets in the structure, + otherwise returns next offset in a structure. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + This function returns a member offset or a hole offset. + It will return size of the structure if input + 'offset' belongs to the last member of the structure. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_next_seg in module idc: + +get_next_seg(ea) + Get next segment + + @param ea: linear address + + @return: start of the next segment + BADADDR - no next segment + +Help on function get_next_struc_idx in module ida_struct: + +get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t + Get next struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ + +Help on function get_numbered_type_name in module idc: + +get_numbered_type_name(ordinal) + Retrieve a local type name + + @param ordinal: slot number (1...NumberOfLocalTypes) + + returns: local type name or None + +Help on function get_operand_type in module idc: + +get_operand_type(ea, n) + Get type of instruction operand + + @param ea: linear address of instruction + @param n: number of operand: + 0 - the first operand + 1 - the second operand + + @return: any of o_* constants or -1 on error + +Help on function get_operand_value in module idc: + +get_operand_value(ea, n) + Get number used in the operand + + This function returns an immediate number used in the operand + + @param ea: linear address of instruction + @param n: the operand number + + @return: value + operand is an immediate value => immediate value + operand has a displacement => displacement + operand is a direct memory ref => memory address + operand is a register => register number + operand is a register phrase => phrase number + otherwise => -1 + +Help on function get_ordinal_qty in module idc: + +get_ordinal_qty() + Get number of local types + 1 + + @return: value >= 1. 1 means that there are no local types. + +Help on function get_original_byte in module ida_bytes: + +get_original_byte(*args) -> 'uint64' + get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) + +Help on function get_prev_bmask in module ida_enum: + +get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(enum_id, bmask) -> bmask_t + Get prev bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK + +Help on function get_prev_enum_member in module idc: + +get_prev_enum_member(enum_id, value, bmask) + Get prev constant in the enum + + @param enum_id: id of enum + @param bmask : bitmask of the constant + ordinary enums accept only ida_enum.DEFMASK as a bitmask + @param value: value of the current constant + + @return: value of a constant with value lower than the specified + value. idaapi.BADNODE no such constants exist. + All constants are sorted by their values as unsigned longs. + +Help on function get_prev_fchunk in module idc: + +get_prev_fchunk(ea) + Get previous function chunk + + @param ea: any address + + @return: the starting address of the function chunk or BADADDR + + @note: This function enumerates all chunks of all functions in the database + +Help on function get_prev_fixup_ea in module ida_fixup: + +get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t + Find previous address with fixup information + + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR + +Help on function get_prev_func in module idc: + +get_prev_func(ea) + Find previous function + + @param ea: any address belonging to the function + + @return: BADADDR - no more functions + otherwise returns the previous function start address + +Help on function get_prev_hash_key in module idc: + +get_prev_hash_key(hash_id, key) + Get the previous key in the hash. + + @param hash_id: The hash ID. + @param key: The current key. + + @return: the previous key, 0 otherwise + +Help on function get_prev_index in module idc: + +get_prev_index(tag, array_id, idx) + Get index of the previous existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of the current element. + + @return: -1 if no more elements, otherwise returns index of the + previous array element of given type. + +Help on function get_prev_offset in module idc: + +get_prev_offset(sid, offset) + Get previous offset in a structure + + @param sid: structure type ID + @param offset: current offset + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if no (more) offsets in the structure, + otherwise returns previous offset in a structure. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + This function returns a member offset or a hole offset. + It will return size of the structure if input + 'offset' is bigger than the structure size. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_prev_struc_idx in module ida_struct: + +get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t + Get previous struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 + +Help on function get_process_state in module ida_dbg: + +get_process_state(*args) -> 'int' + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states + +Help on function get_processes in module ida_dbg: + +get_processes(*args) -> 'ssize_t' + get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) array with information about each running process + @return: number of processes or -1 on error + +Help on function get_qword in module ida_bytes: + +get_qword(*args) -> 'uint64' + get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_reg_val in module ida_dbg: + +get_reg_val(*args) -> 'PyObject *' + get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. + + @param regname: (C++: const char *) char const * + @param regval: regval_t * + + get_reg_val(regname, ival) -> bool + + @param regname: char const * + @param ival: uint64 * + + get_reg_val(regname) -> bool, float, int + + @param regname: char const * + +Help on function get_ret_tev_return in module ida_dbg: + +get_ret_tev_return(*args) -> 'ea_t' + get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. + +Help on function get_root_filename in module ida_nalt: + +get_root_filename(*args) -> 'size_t' + get_root_filename() -> str + Get file name only of the input file. + +Help on function get_screen_ea in module ida_kernwin: + +get_screen_ea(*args) -> 'ea_t' + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) + +Help on function get_segm_attr in module idc: + +get_segm_attr(segea, attr) + Get segment attribute + + @param segea: any address within segment + @param attr: one of SEGATTR_... constants + +Help on function get_segm_by_sel in module idc: + +get_segm_by_sel(base) + Get segment by segment base + + @param base: segment base paragraph or selector + + @return: linear address of the start of the segment or BADADDR + if no such segment + +Help on function get_segm_end in module idc: + +get_segm_end(ea) + Get end address of a segment + + @param ea: any address in the segment + + @return: end of segment (an address past end of the segment) + BADADDR - the specified address doesn't belong to any segment + +Help on function get_segm_name in module idc: + +get_segm_name(ea) + Get name of a segment + + @param ea: any address in the segment + + @return: "" - no segment at the specified address + +Help on function get_segm_start in module idc: + +get_segm_start(ea) + Get start address of a segment + + @param ea: any address in the segment + + @return: start of segment + BADADDR - the specified address doesn't belong to any segment + +Help on function get_source_linnum in module ida_nalt: + +get_source_linnum(*args) -> 'uval_t' + get_source_linnum(ea) -> uval_t + + @param ea: ea_t + +Help on function get_sourcefile in module ida_lines: + +get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * + Get name of source file occupying the given address. + + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name + +Help on function get_sp_delta in module idc: + +get_sp_delta(ea) + Get modification of SP made by the instruction + + @param ea: end address of the instruction + i.e.the last address of the instruction+1 + + @return: Get modification of SP made at the specified location + If the specified location doesn't contain a SP change point, return 0 + Otherwise return delta of SP modification + +Help on function get_spd in module idc: + +get_spd(ea) + Get current delta for the stack pointer + + @param ea: end address of the instruction + i.e.the last address of the instruction+1 + + @return: The difference between the original SP upon + entering the function and SP for the specified address + +Help on function get_sreg in module idc: + +get_sreg(ea, reg) + Get value of segment register at the specified address + + @param ea: linear address + @param reg: name of segment register + + @return: the value of the segment register or -1 on error + + @note: The segment registers in 32bit program usually contain selectors, + so to get paragraph pointed to by the segment register you need to + call sel2para() function. + +Help on function get_step_trace_options in module ida_dbg: + +get_step_trace_options(*args) -> 'int' + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options + +Help on function get_str_type in module idc: + +get_str_type(ea) + Get string type + + @param ea: linear address + + @return: One of STRTYPE_... constants + +Help on function get_strlit_contents in module idc: + +get_strlit_contents(ea, length=-1, strtype=0) + Get string contents + @param ea: linear address + @param length: string length. -1 means to calculate the max string length + @param strtype: the string type (one of STRTYPE_... constants) + + @return: string contents or empty string + +Help on function get_struc_by_idx in module ida_struct: + +get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t + Get struct id by struct number. + + @param idx: (C++: uval_t) + +Help on function get_struc_cmt in module ida_struct: + +get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str + Get struct comment. + + @param id: (C++: tid_t) + @param repeatable: (C++: bool) + +Help on function get_struc_id in module ida_struct: + +get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t + Get struct id by name. + + @param name: (C++: const char *) char const * + +Help on function get_struc_idx in module ida_struct: + +get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t + Get internal number of the structure. + + @param id: (C++: tid_t) + +Help on function get_struc_name in module ida_struct: + +get_struc_name(*args) -> 'qstring *' + get_struc_name(id, flags=0) -> str + + @param id: tid_t + @param flags: int + +Help on function get_struc_qty in module ida_struct: + +get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t + Get number of known structures. + +Help on function get_struc_size in module ida_struct: + +get_struc_size(*args) -> 'asize_t' + get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + + get_struc_size(id) -> asize_t + + @param id: tid_t + +Help on function get_tev_ea in module ida_dbg: + +get_tev_ea(*args) -> 'ea_t' + get_tev_ea(n) -> ea_t + + @param n: int + +Help on function get_tev_reg_mem in module ida_dbg: + +get_tev_reg_mem(tev, idx) + +Help on function get_tev_reg_mem_ea in module ida_dbg: + +get_tev_reg_mem_ea(tev, idx) + +Help on function get_tev_reg_mem_qty in module ida_dbg: + +get_tev_reg_mem_qty(tev) + +Help on function get_tev_qty in module ida_dbg: + +get_tev_qty(*args) -> 'int' + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + +Help on function get_tev_reg_val in module ida_dbg: + +get_tev_reg_val(tev, reg) + +Help on function get_tev_tid in module ida_dbg: + +get_tev_tid(*args) -> 'int' + get_tev_tid(n) -> int + + @param n: int + +Help on function get_tev_type in module ida_dbg: + +get_tev_type(*args) -> 'int' + get_tev_type(n) -> int + + @param n: int + +Help on function get_thread_qty in module ida_dbg: + +get_thread_qty(*args) -> 'int' + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_tinfo in module idc: + +get_tinfo(ea) + Get type information of function/variable as 'typeinfo' object + + @param ea: the address of the object + @return: None on failure, or (type, fields) tuple. + +Help on function get_trace_file_desc in module ida_dbg: + +get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str + Get the file header of the specified trace file. + + @param filename: (C++: const char *) char const * + +Help on function get_type in module idc: + +get_type(ea) + Get type of function/variable + + @param ea: the address of the object + + @return: type string or None if failed + +Help on function get_wide_byte in module ida_bytes: + +get_wide_byte(*args) -> 'uint64' + get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) + +Help on function get_wide_dword in module ida_bytes: + +get_wide_dword(*args) -> 'uint64' + get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) + +Help on function get_wide_word in module ida_bytes: + +get_wide_word(*args) -> 'uint64' + get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_xref_type in module idc: + +get_xref_type() + Return type of the last xref obtained by + [RD]first/next[B0] functions. + + @return: constants fl_* or dr_* + +Help on function getn_enum in module ida_enum: + +getn_enum(*args) -> 'enum_t' + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) + +Help on function getn_thread in module ida_dbg: + +getn_thread(*args) -> 'thid_t' + getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. + +Help on function getn_thread_name in module ida_dbg: + +getn_thread_name(*args) -> 'char const *' + getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. + +Help on function guess_type in module idc: + +guess_type(ea) + Guess type of function/variable + + @param ea: the address of the object, can be the structure member id too + + @return: type string or None if failed + +Help on function hasName in module idc: + +hasName(F) + +Help on function hasUserName in module idc: + +hasUserName(F) + +Help on function has_value in module idc: + +has_value(F) + +Help on function here in module idc: + +here() + # Convenience functions: + +Help on function idadir in module idc: + +idadir() + Get IDA directory + + This function returns the directory where IDA.EXE resides + +Help on function import_type in module idc: + +import_type(idx, type_name) + Copy information from type library to database + Copy structure, union, or enum definition from the type library + to the IDA database. + + @param idx: the position of the new type in the list of + types (structures or enums) -1 means at the end of the list + @param type_name: name of type to copy + + @return: BADNODE-failed, otherwise the type id (structure id or enum id) + +Help on function isBin0 in module idc: + +isBin0(F) + +Help on function isBin1 in module idc: + +isBin1(F) + +Help on function isDec0 in module idc: + +isDec0(F) + +Help on function isDec1 in module idc: + +isDec1(F) + +Help on function isExtra in module idc: + +isExtra(F) + +Help on function isHex0 in module idc: + +isHex0(F) + +Help on function isHex1 in module idc: + +isHex1(F) + +Help on function isOct0 in module idc: + +isOct0(F) + +Help on function isOct1 in module idc: + +isOct1(F) + +Help on function isRef in module idc: + +isRef(F) + +Help on function is_align in module idc: + +is_align(F) + +Help on function is_bf in module ida_enum: + +is_bf(*args) -> 'bool' + is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) + +Help on function is_byte in module idc: + +is_byte(F) + +Help on function is_char0 in module idc: + +is_char0(F) + +Help on function is_char1 in module idc: + +is_char1(F) + +Help on function is_code in module idc: + +is_code(F) + +Help on function is_data in module idc: + +is_data(F) + +Help on function is_defarg0 in module idc: + +is_defarg0(F) + +Help on function is_defarg1 in module idc: + +is_defarg1(F) + +Help on function is_double in module idc: + +is_double(F) + +Help on function is_dword in module idc: + +is_dword(F) + +Help on function is_enum0 in module idc: + +is_enum0(F) + +Help on function is_enum1 in module idc: + +is_enum1(F) + +Help on function is_event_handled in module idc: + +is_event_handled() + Is the debug event handled? + + @return: boolean + +Help on function is_float in module idc: + +is_float(F) + +Help on function is_flow in module idc: + +is_flow(F) + +Help on function is_head in module idc: + +is_head(F) + +Help on function is_loaded in module idc: + +is_loaded(ea) + Is the byte initialized? + +Help on function is_manual0 in module idc: + +is_manual0(F) + +Help on function is_manual1 in module idc: + +is_manual1(F) + +Help on function is_mapped in module idc: + +is_mapped(ea) + +Help on function is_off0 in module idc: + +is_off0(F) + +Help on function is_off1 in module idc: + +is_off1(F) + +Help on function is_oword in module idc: + +is_oword(F) + +Help on function is_pack_real in module idc: + +is_pack_real(F) + +Help on function is_qword in module idc: + +is_qword(F) + +Help on function is_seg0 in module idc: + +is_seg0(F) + +Help on function is_seg1 in module idc: + +is_seg1(F) + +Help on function is_stkvar0 in module idc: + +is_stkvar0(F) + +Help on function is_stkvar1 in module idc: + +is_stkvar1(F) + +Help on function is_strlit in module idc: + +is_strlit(F) + +Help on function is_stroff0 in module idc: + +is_stroff0(F) + +Help on function is_stroff1 in module idc: + +is_stroff1(F) + +Help on function is_struct in module idc: + +is_struct(F) + +Help on function is_tail in module idc: + +is_tail(F) + +Help on function is_tbyte in module idc: + +is_tbyte(F) + +Help on function is_union in module idc: + +is_union(sid) + Is a structure a union? + + @param sid: structure type ID + + @return: 1: yes, this is a union id + 0: no + + @note: Unions are a special kind of structures + +Help on function is_unknown in module idc: + +is_unknown(F) + +Help on function is_valid_trace_file in module ida_dbg: + +is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool + Is the specified file a valid trace file for the current database? + + @param filename: (C++: const char *) char const * + +Help on function is_word in module idc: + +is_word(F) + +Help on function jumpto in module ida_kernwin: + +jumpto(*args) -> 'bool' + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success + jumpto(custom_viewer, place, x, y) -> bool + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int + +Help on function load_and_run_plugin in module ida_loader: + +load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool + Load & run a plugin. + + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) + +Help on function load_debugger in module ida_dbg: + +load_debugger(*args) -> 'bool' + load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool + +Help on function load_trace_file in module ida_dbg: + +load_trace_file(*args) -> 'qstring *' + load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * + +Help on function loadfile in module idc: + +loadfile(filepath, pos, ea, size) + +Help on function ltoa in module idc: + +ltoa(n, radix) + +Help on function make_array in module idc: + +make_array(ea, nitems) + Create an array. + + @param ea: linear address + @param nitems: size of array in items + + @note: This function will create an array of the items with the same type as + the type of the item at 'ea'. If the byte at 'ea' is undefined, then + this function will create an array of bytes. + +Help on function move_segm in module idc: + +move_segm(ea, to, flags) + Move a segment to a new address + This function moves all information to the new address + It fixes up address sensitive information in the kernel + The total effect is equal to reloading the segment to the target address + + @param ea: any address within the segment to move + @param to: new segment start address + @param flags: combination MFS_... constants + + @returns: MOVE_SEGM_... error code + +Help on function msg in module ida_kernwin: + +msg(*args) -> '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. + + @param message: message to print (formatting is done in Python) + + This function can be used to debug IDAPython scripts + +Help on function next_addr in module ida_bytes: + +next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t + Get next address in the program (i.e. next address which has flags). + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function next_func_chunk in module idc: + +next_func_chunk(funcea, tailea) + Get the next function chunk of the specified function + + @param funcea: any address in the function + @param tailea: any address in the current chunk + + @return: the starting address of the next function chunk or BADADDR + + @note: This function returns the next chunk of the specified function + +Help on function next_head in module idc: + +next_head(ea, maxea=BADADDR)↗ + Get next defined item (instruction or data) in the program + + @param ea: linear address to start search from + @param maxea: the search will stop at the address + maxea is not included in the search range + + @return: BADADDR - no (more) defined items + +Help on function next_not_tail in module ida_bytes: + +next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t + Get address of next non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function op_bin in module ida_bytes: + +op_bin(*args) -> 'bool' + op_bin(ea, n) -> bool + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_chr in module ida_bytes: + +op_chr(*args) -> 'bool' + op_chr(ea, n) -> bool + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_dec in module ida_bytes: + +op_dec(*args) -> 'bool' + op_dec(ea, n) -> bool + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_enum in module ida_bytes: + +op_enum(*args) -> 'bool' + op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success + +Help on function op_flt in module ida_bytes: + +op_flt(*args) -> 'bool' + op_flt(ea, n) -> bool + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_hex in module ida_bytes: + +op_hex(*args) -> 'bool' + op_hex(ea, n) -> bool + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function set_forced_operand in module ida_bytes: + +set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool + Set forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success + +Help on function op_num in module ida_bytes: + +op_num(*args) -> 'bool' + op_num(ea, n) -> bool + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_oct in module ida_bytes: + +op_oct(*args) -> 'bool' + op_oct(ea, n) -> bool + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_offset in module ida_offset: + +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) + +Help on function op_offset_high16 in module idc: + +op_offset_high16(ea, n, target) + Convert operand to a high offset + High offset is the upper 16bits of an offset. + This type is used by TMS320C6 processors (and probably by other + RISC processors too) + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + @param target: the full value (all 32bits) of the offset + +Help on function op_plain_offset in module idc: + +op_plain_offset(ea, n, base) + Convert operand to an offset + (for the explanations of 'ea' and 'n' please see op_bin()) + + Example: + ======== + + seg000:2000 dw 1234h + + and there is a segment at paragraph 0x1000 and there is a data item + within the segment at 0x1234: + + seg000:1234 MyString db 'Hello, world!',0 + + Then you need to specify a linear address of the segment base to + create a proper offset: + + op_plain_offset(["seg000",0x2000],0,0x10000); + + and you will have: + + seg000:2000 dw offset MyString + + Motorola 680x0 processor have a concept of "outer offsets". + If you want to create an outer offset, you need to combine number + of the operand with the following bit: + + Please note that the outer offsets are meaningful only for + Motorola 680x0. + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + @param base: base of the offset as a linear address + If base == BADADDR then the current operand becomes non-offset + +Help on function op_seg in module ida_bytes: + +op_seg(*args) -> 'bool' + op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stkvar in module ida_bytes: + +op_stkvar(*args) -> 'bool' + op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stroff in module idc: + +op_stroff(ea, n, strid, delta) + Convert operand to an offset in a structure + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + @param strid: id of a structure type + @param delta: struct offset delta. usually 0. denotes the difference + between the structure base and the pointer into the structure. + +Help on function parse_decl in module idc: + +parse_decl(inputtype, flags) + Parse type declaration + + @param inputtype: file name or C declarations (depending on the flags) + @param flags: combination of PT_... constants or 0 + + @return: None on failure or (name, type, fields) tuple + +Help on function parse_decls in module idc: + +parse_decls(inputtype, flags=0) + Parse type declarations + + @param inputtype: file name or C declarations (depending on the flags) + @param flags: combination of PT_... constants or 0 + + @return: number of parsing errors (0 no errors) + +Help on function patch_byte in module ida_bytes: + +patch_byte(*args) -> 'bool' + patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function put_dbg_byte in module ida_dbg: + +put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool + Change one byte of the debugged process memory. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified + +Help on function patch_dword in module ida_bytes: + +patch_dword(*args) -> 'bool' + patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_qword in module ida_bytes: + +patch_qword(*args) -> 'bool' + patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_word in module ida_bytes: + +patch_word(*args) -> 'bool' + patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function plan_and_wait in module idc: + +plan_and_wait(sEA, eEA, final_pass=True) + Perform full analysis of the range + + @param sEA: starting linear address + @param eEA: ending linear address (excluded) + @param final_pass: make the final pass over the specified range + + @return: 1-ok, 0-Ctrl-Break was pressed. + +Help on function plan_to_apply_idasgn in module ida_funcs: + +plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int + Add a signature file to the list of planned signature files. + + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures + +Help on function prev_addr in module ida_bytes: + +prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t + Get previous address in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function prev_head in module idc: + +prev_head(ea, minea=0) + Get previous defined item (instruction or data) in the program + + @param ea: linear address to start search from + @param minea: the search will stop at the address + minea is included in the search range + + @return: BADADDR - no (more) defined items + +Help on function prev_not_tail in module ida_bytes: + +prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t + Get address of previous non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function print_decls in module idc: + +print_decls(ordinals, flags) + Print types in a format suitable for use in a header file + + @param ordinals: comma-separated list of type ordinals + @param flags: combination of PDF_... constants or 0 + + @return: string containing the type definitions + +Help on function print_insn_mnem in module idc: + +print_insn_mnem(ea) + Get instruction mnemonics + + @param ea: linear address of instruction + + @return: "" - no instruction at the specified location + + @note: this function may not return exactly the same mnemonics + as you see on the screen. + +Help on function print_operand in module idc: + +print_operand(ea, n) + Get operand of an instruction or data + + @param ea: linear address of the item + @param n: number of operand: + 0 - the first operand + 1 - the second operand + + @return: the current text representation of operand or "" + +Help on function process_config_line in module idc: + +process_config_line(directive) + Obsolete. Please use ida_idp.process_config_directive(). + +Help on function process_ui_action in module idc: + +process_ui_action(name, flags=0) + Invokes an IDA UI action by name + + @param name: Command name + @param flags: Reserved. Must be zero + @return: Boolean + +Help on function mark_position in module ida_idc: + +mark_position(*args) -> 'void' + mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Help on function qexit in module ida_pro: + +qexit(*args) -> 'void' + qexit(code) + Call qatexit functions, shut down UI and kernel, and exit. + + @param code: (C++: int) exit code + +Help on function qsleep in module idc: + +qsleep(milliseconds) + qsleep the specified number of milliseconds + This function suspends IDA for the specified amount of time + + @param milliseconds: time to sleep + +Help on function read_dbg_byte in module idc: + +read_dbg_byte(ea) + Get value of program byte using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function read_dbg_dword in module idc: + +read_dbg_dword(ea) + Get value of program double-word using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function dbg_read_memory in module ida_idd: + +dbg_read_memory(*args) -> 'PyObject *' + dbg_read_memory(ea, sz) -> PyObject * + Reads from the debugee's memory at the specified ea + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) + - Or None on failure + +Help on function read_dbg_qword in module idc: + +read_dbg_qword(ea) + Get value of program quadro-word using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function read_dbg_word in module idc: + +read_dbg_word(ea) + Get value of program word using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function read_selection_end in module idc: + +read_selection_end() + Get end address of the selected range + + @return: BADADDR - the user has not selected an range + +Help on function read_selection_start in module idc: + +read_selection_start() + Get start address of the selected range + returns BADADDR - the user has not selected an range + +Help on function readlong in module idc: + +readlong(handle, mostfirst) + +Help on function readshort in module idc: + +readshort(handle, mostfirst) + +Help on function readstr in module idc: + +readstr(handle) + +Help on function rebase_program in module ida_segment: + +rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int + Rebase the whole program by 'delta' bytes. + + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes + +Help on function recalc_spd in module ida_frame: + +recalc_spd(*args) -> 'bool' + recalc_spd(cur_ea) -> bool + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed + +Help on function refresh_debugger_memory in module ida_dbg: + +refresh_debugger_memory(*args) -> 'PyObject *' + refresh_debugger_memory() -> PyObject * + Refreshes the debugger memory + + @return: Nothing + +Help on function refresh_idaview_anyway in module ida_kernwin: + +refresh_idaview_anyway(*args) -> 'void' + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead + +Help on function refresh_choosers in module ida_kernwin: + +refresh_choosers(*args) -> 'void' + refresh_choosers() + +Help on function remove_fchunk in module idc: + +remove_fchunk(funcea, tailea) + Remove a function chunk from the function + + @param funcea: any address in the function + @param tailea: any address in the function chunk to remove + + @return: 0 if failed, 1 if success + +Help on function rename_array in module idc: + +rename_array(array_id, newname) + Rename array, by its ID. + + @param id: The ID of the array to rename. + @param newname: The new name of the array. + + @return: 1 in case of success, 0 otherwise + +Help on function rename_entry in module ida_entry: + +rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool + Rename entry point. + + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success + +Help on function resume_process in module idc: + +resume_process() + +Help on function resume_thread in module ida_dbg: + +resume_thread(*args) -> 'int' + resume_thread(tid) -> int + Resume thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on function retrieve_input_file_md5 in module ida_nalt: + +retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes + Get input file md5. + +Help on function rotate_byte in module idc: + +rotate_byte(x, count) + +Help on function rotate_dword in module idc: + +rotate_dword(x, count) + +Help on function rotate_left in module idc: + +rotate_left(value, count, nbits, offset) + Rotate a value to the left (or right) + + @param value: value to rotate + @param count: number of times to rotate. negative counter means + rotate to the right + @param nbits: number of bits to rotate + @param offset: offset of the first bit to rotate + + @return: the value with the specified field rotated + all other bits are not modified + +Help on function rotate_word in module idc: + +rotate_word(x, count) + +Help on function run_to in module ida_dbg: + +run_to(*args) -> 'bool' + run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. + +Help on function save_database in module idc: + +save_database(idbname, flags=0) + Save current database to the specified idb file + + @param idbname: name of the idb file. if empty, the current idb + file will be used. + @param flags: combination of ida_loader.DBFL_... bits or 0 + +Help on function save_trace_file in module ida_dbg: + +save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool + Save the current trace in the specified file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function savefile in module idc: + +savefile(filepath, pos, ea, size) + +Help on function sel2para in module idc: + +sel2para(sel) + Get a selector value + + @param sel: the selector number + + @return: selector value if found + otherwise the input value (sel) + + @note: selector values are always in paragraphs + +Help on function select_thread in module ida_dbg: + +select_thread(*args) -> 'bool' + select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. + +Help on function selector_by_name in module idc: + +selector_by_name(segname) + Get segment selector by name + + @param segname: name of segment + + @return: segment selector or BADADDR + +Help on function send_dbg_command in module idc: + +send_dbg_command(cmd) + Sends a command to the debugger module and returns the output string. + An exception will be raised if the debugger is not running or the current debugger does not export + the 'send_dbg_command' IDC command. + +Help on function set_array_long in module idc: + +set_array_long(array_id, idx, value) + Sets the long value of an array element. + + @param array_id: The array ID. + @param idx: Index of an element. + @param value: 32bit or 64bit value to store in the array + + @return: 1 in case of success, 0 otherwise + +Help on function set_array_params in module idc: + +set_array_params(ea, flags, litems, align) + Set array representation format + + @param ea: linear address + @param flags: combination of AP_... constants or 0 + @param litems: number of items per line. 0 means auto + @param align: element alignment + - -1: do not align + - 0: automatic alignment + - other values: element width + + @return: 1-ok, 0-failure + +Help on function set_array_string in module idc: + +set_array_string(array_id, idx, value) + Sets the string value of an array element. + + @param array_id: The array ID. + @param idx: Index of an element. + @param value: String value to store in the array + + @return: 1 in case of success, 0 otherwise + +Help on function set_bmask_cmt in module idc: + +set_bmask_cmt(enum_id, bmask, cmt, repeatable) + Set bitmask comment (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + @param cmt: comment + repeatable - type of comment, 0-regular, 1-repeatable + + @return: 1-ok, 0-failed + +Help on function set_bmask_name in module idc: + +set_bmask_name(enum_id, bmask, name) + Set bitmask name (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + @param name: name of bitmask + + @return: 1-ok, 0-failed + +Help on function set_bpt_attr in module idc: + +set_bpt_attr(address, bptattr, value) + modifiable characteristics of a breakpoint + + @param address: any address in the breakpoint range + @param bptattr: the attribute code, one of BPTATTR_* constants + BPTATTR_CND is not allowed, see set_bpt_cond() + @param value: the attibute value + + @return: success + +Help on function set_bpt_cond in module idc: + +set_bpt_cond(ea, cnd, is_lowcnd=0) + Set breakpoint condition + + @param ea: any address in the breakpoint range + @param cnd: breakpoint condition + @param is_lowcnd: 0 - regular condition, 1 - low level condition + + @return: success + +Help on function set_cmt in module ida_bytes: + +set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool + Set an indented comment. + + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success + +Help on function set_color in module idc: + +set_color(ea, what, color) + Set item color + + @param ea: address of the item + @param what: type of the item (one of CIC_* constants) + @param color: new color code in RGB (hex 0xBBGGRR) + + @return: success (True or False) + +Help on function set_debugger_event_cond in module ida_dbg: + +set_debugger_event_cond(*args) -> 'void' + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * + +Help on function set_debugger_options in module ida_dbg: + +set_debugger_options(*args) -> 'uint' + set_debugger_options(options) -> uint + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options + +Help on function set_default_sreg_value in module idc: + +set_default_sreg_value(ea, reg, value) + Set default segment register value for a segment + + @param ea: any address in the segment + if no segment is present at the specified address + then all segments will be affected + @param reg: name of segment register + @param value: default value of the segment register. -1-undefined. + +Help on function set_enum_bf in module ida_enum: + +set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool + Set 'bitfield' bit of enum (i.e. convert it to a bitfield) + + @param id: (C++: enum_t) + @param bf: (C++: bool) + +Help on function set_enum_cmt in module ida_enum: + +set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool + Set comment for enum type. + + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_flag in module ida_enum: + +set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool + Set data representation flags. + + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) + +Help on function set_enum_idx in module ida_enum: + +set_enum_idx(*args) -> 'bool' + set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) + +Help on function set_enum_member_cmt in module ida_enum: + +set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool + Set comment for enum member. + + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_member_name in module ida_enum: + +set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool + Set name of enum member. + + @param id: (C++: const_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_name in module ida_enum: + +set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool + Set name of enum type. + + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_width in module ida_enum: + +set_enum_width(*args) -> 'bool' + set_enum_width(id, width) -> bool + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) + +Help on function set_fchunk_attr in module idc: + +set_fchunk_attr(ea, attr, value) + Set a function chunk attribute + + @param ea: any address in the chunk + @param attr: only FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER + @param value: desired value + + @return: 0 if failed, 1 if success + +Help on function set_fixup in module idc: + +set_fixup(ea, fixuptype, fixupflags, targetsel, targetoff, displ) + Set fixup information + + @param ea: address to set fixup information about + @param fixuptype: fixup type. see get_fixup_target_type() + for possible fixup types. + @param fixupflags: fixup flags. see get_fixup_target_flags() + for possible fixup types. + @param targetsel: target selector + @param targetoff: target offset + @param displ: displacement + + @return: none + +Help on function set_flag in module idc: + +set_flag(off, bit, value) + #-------------------------------------------------------------------------- + +Help on function set_frame_size in module idc: + +set_frame_size(ea, lvsize, frregs, argsize) + Make function frame + + @param ea: any address belonging to the function + @param lvsize: size of function local variables + @param frregs: size of saved registers + @param argsize: size of function arguments + + @return: ID of function frame or -1 + If the function did not have a frame, the frame + will be created. Otherwise the frame will be modified + +Help on function set_func_attr in module idc: + +set_func_attr(ea, attr, value) + Set a function attribute + + @param ea: any address belonging to the function + @param attr: one of FUNCATTR_... constants + @param value: new value of the attribute + + @return: 1-ok, 0-failed + +Help on function set_func_cmt in module idc: + +set_func_cmt(ea, cmt, repeatable) + Set function comment + + @param ea: any address belonging to the function + @param cmt: a function comment line + @param repeatable: 1: get repeatable comment + 0: get regular comment + +Help on function set_func_end in module ida_funcs: + +set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool + Move function chunk end address. + + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success + +Help on function set_func_flags in module idc: + +set_func_flags(ea, flags) + Change function flags + + @param ea: any address belonging to the function + @param flags: see get_func_flags() for explanations + + @return: !=0 - ok + +Help on function set_hash_long in module idc: + +set_hash_long(hash_id, key, value) + Sets the long value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + @param value: 32bit or 64bit value to store in the hash + + @return: 1 in case of success, 0 otherwise + +Help on function set_hash_string in module idc: + +set_hash_string(hash_id, key, value) + Sets the string value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + @param value: string value to store in the hash + + @return: 1 in case of success, 0 otherwise + +Help on function set_ida_state in module ida_auto: + +set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t + Change IDA status indicator value + + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status + +Help on function set_inf_attr in module idc: + +set_inf_attr(attr, value) + Deprecated. Please ida_ida.inf_set_* instead. + +Help on function set_local_type in module idc: + +set_local_type(ordinal, input, flags) + Parse one type declaration and store it in the specified slot + + @param ordinal: slot number (1...NumberOfLocalTypes) + -1 means allocate new slot or reuse the slot + of the existing named type + @param input: C declaration. Empty input empties the slot + @param flags: combination of PT_... constants or 0 + + @return: slot number or 0 if error + +Help on function set_manual_insn in module ida_bytes: + +set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) + Set manual instruction string. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing + +Help on function set_member_cmt in module idc: + +set_member_cmt(sid, member_offset, comment, repeatable) + Change structure member comment + + @param sid: structure type ID + @param member_offset: offset of the member + @param comment: new comment of the structure member + @param repeatable: 1: change repeatable comment + 0: change regular comment + + @return: != 0 - ok + +Help on function set_member_name in module idc: + +set_member_name(sid, member_offset, name) + Change structure member name + + @param sid: structure type ID + @param member_offset: offset of the member + @param name: new name of the member + + @return: != 0 - ok. + +Help on function set_member_type in module idc: + +set_member_type(sid, member_offset, flag, typeid, nitems, target=-1, tdelta=0, reftype=2) + Change structure member type + + @param sid: structure type ID + @param member_offset: offset of the member + @param flag: new type of the member. Should be one of + FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA + @param typeid: if is_struct(flag) then typeid specifies the structure id for the member + if is_off0(flag) then typeid specifies the offset base. + if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). + if is_stroff(flag) then typeid specifies the structure id + if is_enum(flag) then typeid specifies the enum id + if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) + Otherwise typeid should be -1. + @param nitems: number of items in the member + + @param target: target address of the offset expr. You may specify it as + -1, ida will calculate it itself + @param tdelta: offset target delta. usually 0 + @param reftype: see REF_... definitions + + @note: The remaining arguments are allowed only if is_off0(flag) and you want + to specify a complex offset expression + + @return: !=0 - ok. + +Help on function set_name in module idc: + +set_name(ea, name, flags=0) + Rename an address + + @param ea: linear address + @param name: new name of address. If name == "", then delete old name + @param flags: combination of SN_... constants + + @return: 1-ok, 0-failure + +Help on function set_processor_type in module ida_idp: + +set_processor_type(*args) -> 'bool' + set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success + +Help on function set_reg_value in module idc: + +set_reg_value(value, name) + Set register value + + @param name: the register name + @param value: new register value + + @note: The debugger should be running + It is not necessary to use this function to set register values. + A register name in the left side of an assignment will do too. + +Help on function set_remote_debugger in module ida_dbg: + +set_remote_debugger(*args) -> 'void' + set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used + +Help on function set_root_filename in module ida_nalt: + +set_root_filename(*args) -> 'void' + set_root_filename(file) + Set full path of the input file. + + @param file: (C++: const char *) char const * + +Help on function set_segm_addressing in module idc: + +set_segm_addressing(ea, bitness) + Change segment addressing + + @param ea: any address in the segment + @param bitness: 0: 16bit, 1: 32bit, 2: 64bit + + @return: success (boolean) + +Help on function set_segm_alignment in module idc: + +set_segm_alignment(ea, alignment) + Change alignment of the segment + + @param ea: any address in the segment + @param alignment: new alignment of the segment (one of the sa... constants) + + @return: success (boolean) + +Help on function set_segm_attr in module idc: + +set_segm_attr(segea, attr, value) + Set segment attribute + + @param segea: any address within segment + @param attr: one of SEGATTR_... constants + + @note: Please note that not all segment attributes are modifiable. + Also some of them should be modified using special functions + like set_segm_addressing, etc. + +Help on function set_segm_class in module idc: + +set_segm_class(ea, segclass) + Change class of the segment + + @param ea: any address in the segment + @param segclass: new class of the segment + + @return: success (boolean) + +Help on function set_segm_combination in module idc: + +set_segm_combination(segea, comb) + Change combination of the segment + + @param segea: any address in the segment + @param comb: new combination of the segment (one of the sc... constants) + + @return: success (boolean) + +Help on function set_segm_name in module idc: + +set_segm_name(ea, name) + Change name of the segment + + @param ea: any address in the segment + @param name: new name of the segment + + @return: success (boolean) + +Help on function set_segm_type in module idc: + +set_segm_type(segea, segtype) + Set segment type + + @param segea: any address within segment + @param segtype: new segment type: + + @return: !=0 - ok + +Help on function set_segment_bounds in module idc: + +set_segment_bounds(ea, startea, endea, flags) + Change segment boundaries + + @param ea: any address in the segment + @param startea: new start address of the segment + @param endea: new end address of the segment + @param flags: combination of SEGMOD_... flags + + @return: boolean success + +Help on function set_selector in module ida_segment: + +set_selector(*args) -> 'int' + set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) + +Help on function set_source_linnum in module ida_nalt: + +set_source_linnum(*args) -> 'void' + set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t + +Help on function set_step_trace_options in module ida_dbg: + +set_step_trace_options(*args) -> 'void' + set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function change_storage_type in module ida_bytes: + +change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t + Change flag storage type for address range. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code + +Help on function set_struc_cmt in module ida_struct: + +set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool + Set structure comment. + + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_struc_idx in module idc: + +set_struc_idx(sid, index) + Change structure index + + @param sid: structure type ID + @param index: new index of the structure + + @return: != 0 - ok + + @note: See get_first_struc_idx() for the explanation of + structure indices and IDs. + +Help on function set_struc_name in module ida_struct: + +set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool + Set structure name. + + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * + +Help on function set_tail_owner in module idc: + +set_tail_owner(tailea, funcea) + Change the function chunk owner + + @param tailea: any address in the function chunk + @param funcea: the starting address of the new owner + + @return: False if failed, True if success + + @note: The new owner must already have the chunk appended before the call + +Help on function set_target_assembler in module ida_idp: + +set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool + Set target assembler. + + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success + +Help on function set_trace_file_desc in module ida_dbg: + +set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool + Change the description of the specified trace file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function split_sreg_range in module idc: + +split_sreg_range(ea, reg, value, tag=2) + Set value of a segment register. + + @param ea: linear address + @param reg: name of a register, like "cs", "ds", "es", etc. + @param value: new value of the segment register. + @param tag: of SR_... constants + + @note: IDA keeps tracks of all the points where segment register change their + values. This function allows you to specify the correct value of a segment + register if IDA is not able to find the corrent value. + +Help on function start_process in module ida_dbg: + +start_process(*args) -> 'int' + start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started + +Help on function step_into in module ida_dbg: + +step_into(*args) -> 'bool' + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} + +Help on function step_over in module ida_dbg: + +step_over(*args) -> 'bool' + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} + +Help on function step_until_ret in module ida_dbg: + +step_until_ret(*args) -> 'bool' + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} + +Help on function strlen in module idc: + +strlen(s) + +Help on function strstr in module idc: + +strstr(s1, s2) + +Help on function substr in module idc: + +substr(s, x1, x2) + +Help on function suspend_process in module ida_dbg: + +suspend_process(*args) -> 'bool' + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. + +Help on function suspend_thread in module ida_dbg: + +suspend_thread(*args) -> 'int' + suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on function take_memory_snapshot in module ida_segment: + +take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(type) -> bool + Take a memory snapshot of the running process. + + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) + @return: success + +Help on function to_ea in module idc: + +to_ea(seg, off) + Return value of expression: ((seg<<4) + off) + +Help on function toggle_bnot in module idc: + +toggle_bnot(ea, n) + Toggle the bitwise not operator for the operand + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + +Help on function toggle_sign in module ida_bytes: + +toggle_sign(*args) -> 'bool' + toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function update_extra_cmt in module ida_lines: + +update_extra_cmt(*args) -> 'void' + update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * + +Help on function update_hidden_range in module idc: + +update_hidden_range(ea, visible) + Set hidden range state + + @param ea: any address belonging to the hidden range + @param visible: new state of the range + + @return: != 0 - ok + +Help on function validate_idb_names in module idc: + +validate_idb_names(do_repair=0) + check consistency of IDB name records + @param do_repair: try to repair netnode header it TRUE + @return: number of inconsistent name records + +Help on function value_is_float in module idc: + +value_is_float(var) + +Help on function value_is_func in module idc: + +value_is_func(var) + +Help on function value_is_int64 in module idc: + +value_is_int64(var) + +Help on function value_is_long in module idc: + +value_is_long(var) + +Help on function value_is_pvoid in module idc: + +value_is_pvoid(var) + +Help on function value_is_string in module idc: + +value_is_string(var) + # List of built-in functions + # -------------------------- + # + # The following conventions are used in this list: + # 'ea' is a linear address + # 'success' is 0 if a function failed, 1 otherwise + # 'void' means that function returns no meaningful value (always 0) + # + # All function parameter conversions are made automatically. + # + # ---------------------------------------------------------------------------- + # M I S C E L L A N E O U S + # ---------------------------------------------------------------------------- + +Help on function wait_for_next_event in module ida_dbg: + +wait_for_next_event(*args) -> 'dbg_event_code_t' + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) + +Help on function warning in module ida_kernwin: + +warning(*args) -> 'void' + warning(format) + Display a message in a message box + + @param 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 + +Help on function write_dbg_memory in module idc: + +write_dbg_memory(ea, data) + Write to debugger memory. + + @param ea: linear address + @param data: string to write + @return: number of written bytes (-1 - network/debugger error) + + Thread-safe function (may be called only from the main thread and debthread) + +Help on function writelong in module idc: + +writelong(handle, dword, mostfirst) + +Help on function writeshort in module idc: + +writeshort(handle, word, mostfirst) + +Help on function writestr in module idc: + +writestr(handle, s) + +Help on function xtol in module idc: + +xtol(s) + + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable GFE_IDB_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. but never use the debugger memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable FUNC_OUTLINE in module ida_funcs: + + Outlined code, not a real function. + +Documentation on variable FUNC_REANALYZE in module ida_funcs: + + Function frame changed, request to reanalyze the function after the last insn is + analyzed. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable FC_OUTLINES in module ida_gdl: + + include outlined code (with FUNC_OUTLINE) + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + 16-bit functions cannot be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant (user representation) + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable IPROP_UNMERGED in module ida_hexrays: + + 'goto' instruction was transformed info 'call' + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile. if not null, then function mode. + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + snippet mode: ranges to decompile. function mode: list of outlined ranges + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_HAS_OUTLINES in module ida_hexrays: + + calls to outlined code have been inlined + +Documentation on variable MBA2_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable MBA2_PROP_COMPLEX in module ida_hexrays: + + allow propagation of more complex variable definitions + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant (user representation) + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable DECOMP_VOID_MBA in module ida_hexrays: + + return empty mba object (to be used with gen_microcode) + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + Motorola SREC (S-record) + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X Mach-O. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable debugger_t.version in module ida_idd: + + Expected kernel version, should be IDD_INTERFACE_VERSION + +Documentation on variable debugger_t.name in module ida_idd: + + Short debugger name like win32 or linux. + +Documentation on variable debugger_t.id in module ida_idd: + + one of Debugger API module id + +Documentation on variable debugger_t.processor in module ida_idd: + + Required processor name. Used for instant debugging to load the correct + processor module + +Documentation on variable debugger_t.flags2 in module ida_idd: + + Debugger module features + +Documentation on variable debugger_t.default_regclasses in module ida_idd: + + Mask of default printed register classes. + +Documentation on variable debugger_t.memory_page_size in module ida_idd: + + Size of a memory page. Usually 4K. + +Documentation on variable debugger_t.bpt_size in module ida_idd: + + Size of the software breakpoint instruction in bytes. + +Documentation on variable debugger_t.filetype in module ida_idd: + + Input file type for the instant debugger. This value will be used after + attaching to a new process. + +Documentation on variable debugger_t.resume_modes in module ida_idd: + + Resume modes + +Documentation on variable debugger_t.ev_init_debugger in module ida_idd: + + Initialize debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_term_debugger in module ida_idd: + + Terminate debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_get_processes in module ida_idd: + + Return information about the running processes. This event is generated in the + main thread. Available if DBG_HAS_GET_PROCESSES is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_start_process in module ida_idd: + + Start an executable to debug. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_CRC, DRC_FAILED, DRC_NETERR, DRC_NOFILE + +Documentation on variable debugger_t.ev_attach_process in module ida_idd: + + Attach to an existing running process. event_id should be equal to -1 if not + attaching to a crashed process. This event is generated in debthread. Available + if DBG_HAS_ATTACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_detach_process in module ida_idd: + + Detach from the debugged process. May be generated while the process is running + or suspended. Must detach from the process in any case. The kernel will + repeatedly call get_debug_event() until PROCESS_DETACHED is received. In this + mode, all other events will be automatically handled and process will be + resumed. This event is generated from debthread. Available if + DBG_HAS_DETACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debapp_attrs in module ida_idd: + + Retrieve process- and debugger-specific runtime attributes. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_rebase_if_required_to in module ida_idd: + + Rebase database if the debugged program has been rebased by the system. This + event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_request_pause in module ida_idd: + + Prepare to pause the process. Normally the next get_debug_event() will pause the + process If the process is sleeping, then the pause will not occur until the + process wakes up. If the debugger module does not react to this event, then it + will be impossible to pause the program. This event is generated in debthread. + Available if DBG_HAS_REQUEST_PAUSE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_exit_process in module ida_idd: + + Stop the process. May be generated while the process is running or suspended. + Must terminate the process in any case. The kernel will repeatedly call + get_debug_event() until PROCESS_EXITED is received. In this mode, all other + events will be automatically handled and process will be resumed. This event is + generated in debthread. Must be implemented. + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debug_event in module ida_idd: + + Get a pending debug event and suspend the process. This event will be generated + regularly by IDA. This event is generated in debthread. IMPORTANT: the + BREAKPOINT/EXCEPTION/STEP events must be reported only after reporting other + pending events for a thread. Must be implemented. + + @retval ignored + +Documentation on variable debugger_t.ev_resume in module ida_idd: + + Continue after handling the event. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_set_exception_info in module ida_idd: + + Set exception handling. This event is generated in debthread or the main thread. + Available if DBG_HAS_SET_EXCEPTION_INFO is set + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_suspended in module ida_idd: + + This event will be generated by the kernel each time it has suspended the + debugger process and refreshed the database. The debugger module may add + information to the database if it wants. + + The reason for introducing this event is that when an event line LOAD_DLL + happens, the database does not reflect the memory state yet and therefore we + can't add information about the dll into the database in the get_debug_event() + event. Only when the kernel has adjusted the database we can do it. Example: for + imported PE DLLs we will add the exported event names to the database. + + This event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_thread_suspend in module ida_idd: + + Suspend a running thread Available if DBG_HAS_THREAD_SUSPEND is set + +Documentation on variable debugger_t.ev_thread_continue in module ida_idd: + + Resume a suspended thread Available if DBG_HAS_THREAD_CONTINUE is set + +Documentation on variable debugger_t.ev_set_resume_mode in module ida_idd: + + Specify resume action Available if DBG_HAS_SET_RESUME_MODE is set + +Documentation on variable debugger_t.ev_read_registers in module ida_idd: + + Read thread registers. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_write_register in module ida_idd: + + Write one thread register. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_thread_get_sreg_base in module ida_idd: + + Get information about the base of a segment register. Currently used by the IBM + PC module to resolve references like fs:0. This event is generated in debthread. + Available if DBG_HAS_THREAD_GET_SREG_BASE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_memory_info in module ida_idd: + + Get information on the memory ranges. The debugger module fills 'ranges'. The + returned vector must be sorted. This event is generated in debthread. Must be + implemented. + + @retval DRC_OK: new memory layout is returned + @retval DRC_FAILED,DRC_NETERR,DRC_NOPROC,DRC_NOCHG,DRC_IDBSEG + +Documentation on variable debugger_t.ev_read_memory in module ida_idd: + + Read process memory. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NOPROC + +Documentation on variable debugger_t.ev_write_memory in module ida_idd: + + Write process memory. This event is generated in debthread. + + @retval DRC_OK,DRC_FAILED,DRC_NOPROC + +Documentation on variable debugger_t.ev_check_bpt in module ida_idd: + + Is it possible to set breakpoint? This event is generated in debthread or in the + main thread if debthread is not running yet. It is generated to verify hardware + breakpoints. Available if DBG_HAS_CHECK_BPT is set + + @return: DRC_OK, DRC_NONE + +Documentation on variable debugger_t.ev_update_bpts in module ida_idd: + + Add/del breakpoints. bpts array contains nadd bpts to add, followed by ndel bpts + to del. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_update_lowcnds in module ida_idd: + + Update low-level (server side) breakpoint conditions. This event is generated in + debthread. + + @return: DRC_OK, DRC_NETERR + +Documentation on variable debugger_t.ev_open_file in module ida_idd: + + @retval (int): handle + @retval -1: error + +Documentation on variable debugger_t.ev_close_file in module ida_idd: + + @return: ignored + +Documentation on variable debugger_t.ev_read_file in module ida_idd: + + @retval number: of read bytes + +Documentation on variable debugger_t.ev_write_file in module ida_idd: + + @retval number: of written bytes + +Documentation on variable debugger_t.ev_map_address in module ida_idd: + + Map process address. The debugger module may ignore this event. This event is + generated in debthread. IDA will generate this event only if DBG_HAS_MAP_ADDRESS + is set. + + @return: DRC_NONE, DRC_OK see MAPPED + +Documentation on variable debugger_t.ev_get_debmod_extensions in module ida_idd: + + Get pointer to debugger specific events. This event returns a pointer to a + structure that holds pointers to debugger module specific events. For + information on the structure layout, please check the corresponding debugger + module. Most debugger modules return nullptr because they do not have any + extensions. Available extensions may be generated from plugins. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK see EXT + +Documentation on variable debugger_t.ev_update_call_stack in module ida_idd: + + Calculate the call stack trace for the given thread. This event is generated + when the process is suspended and should fill the 'trace' object with the + information about the current call stack. If this event returns DRC_NONE, IDA + will try to invoke a processor-specific mechanism (see + processor_t::ev_update_call_stack). If the current processor module does not + implement stack tracing, then IDA will fall back to a generic algorithm (based + on the frame pointer chain) to calculate the trace. This event is ideal if the + debugging targets manage stack frames in a peculiar way, requiring special + analysis. This event is generated in the main thread. Available if + DBG_HAS_UPDATE_CALL_STACK is set + + @retval DRC_NONE: false or not implemented + @return: DRC_OK success + +Documentation on variable debugger_t.ev_appcall in module ida_idd: + + Call application function. This event calls a function from the debugged + application. This event is generated in debthread Available if HAS_APPCALL is + set + + @retval DRC_NONE + @retval DRC_OK,see: BLOB_EA + +Documentation on variable debugger_t.ev_cleanup_appcall in module ida_idd: + + Cleanup after appcall(). The debugger module must keep the stack blob in the + memory until this event is generated. It will be generated by the kernel for + each successful appcall(). There is an exception: if APPCALL_MANUAL, IDA may not + call cleanup_appcall. If the user selects to terminate a manual appcall, then + cleanup_appcall will be generated. Otherwise, the debugger module should + terminate the appcall when the generated event returns. This event is generated + in debthread. Available if HAS_APPCALL is set + + @retval DRC_EVENTS: success, there are pending events + @retval DRC_OK: success + @retval DRC_FAILED: failed + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_eval_lowcnd in module ida_idd: + + Evaluate a low level breakpoint condition at 'ea'. Other evaluation errors are + displayed in a dialog box. This call is used by IDA when the process has already + been temporarily suspended for some reason and IDA has to decide whether the + process should be resumed or definitely suspended because of a breakpoint with a + low level condition. This event is generated in debthread. + + @retval DRC_OK: condition is satisfied + @retval DRC_FAILED: not satisfied + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_send_ioctl in module ida_idd: + + Perform a debugger-specific event. This event is generated in debthread + + @retval DRC_... + +Documentation on variable debugger_t.ev_dbg_enable_trace in module ida_idd: + + Enable/Disable tracing. The kernel will generated this event if the debugger + plugin set DBG_FLAG_TRACER_MODULE. TRACE_FLAGS can be a set of #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE. This event is generated in the main + thread. + + @return: DRC_OK, DRC_FAILED, DRC_NONE + +Documentation on variable debugger_t.ev_is_tracing_enabled in module ida_idd: + + Is tracing enabled? The kernel will generated this event if the debugger plugin + set DBG_FLAG_TRACER_MODULE. TRACE_BIT can be one of the following: #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE + + @retval DRC_OK: bit is set + @retval DRC_NONE: bit is not set or not implemented + +Documentation on variable debugger_t.ev_rexec in module ida_idd: + + Execute a command on the remote computer. Available if DBG_HAS_REXEC is set + + @return: (int) exit code + +Documentation on variable debugger_t.ev_get_srcinfo_path in module ida_idd: + + Get the path to a file containing source debug info for the given module. This + allows srcinfo providers to call into the debugger when looking for debug info. + It is useful in certain cases like the iOS debugger, which is a remote debugger + but the remote debugserver does not provide dwarf info. So, we allow the + debugger client to decide where to look for debug info locally. + + @return: DRC_NONE, DRC_OK result stored in PATH + +Documentation on variable debugger_t.ev_bin_search in module ida_idd: + + Search for a binary pattern in the program. + + @return: DRC_OK EA contains the binary pattern address + @retval DRC_FAILED: not found + @retval DRC_NONE: not implemented + @retval DRC_NETERR,DRC_ERROR + +Documentation on variable debugger_t.registers in module ida_idd: + + Array of registers. Use regs() to access it. + +Documentation on variable debugger_t.nregs in module ida_idd: + + Number of registers. + +Documentation on variable debugger_t.regclasses in module ida_idd: + + Array of register class names. + +Documentation on variable debugger_t.bpt_bytes in module ida_idd: + + A software breakpoint instruction. + +Documentation on variable DEBUGGER_ID_X86_IA32_WIN32_USER in module ida_idd: + + Userland win32 processes (win32 debugging APIs) + +Documentation on variable DEBUGGER_ID_X86_IA32_LINUX_USER in module ida_idd: + + Userland linux processes (ptrace()) + +Documentation on variable DEBUGGER_ID_X86_IA32_MACOSX_USER in module ida_idd: + + Userland MAC OS X processes. + +Documentation on variable DEBUGGER_ID_ARM_IPHONE_USER in module ida_idd: + + iPhone 1.x + +Documentation on variable DEBUGGER_ID_X86_IA32_BOCHS in module ida_idd: + + BochsDbg.exe 32. + +Documentation on variable DEBUGGER_ID_6811_EMULATOR in module ida_idd: + + MC6812 emulator (beta) + +Documentation on variable DEBUGGER_ID_GDB_USER in module ida_idd: + + GDB remote. + +Documentation on variable DEBUGGER_ID_WINDBG in module ida_idd: + + WinDBG using Microsoft Debug engine. + +Documentation on variable DEBUGGER_ID_X86_DOSBOX_EMULATOR in module ida_idd: + + Dosbox MS-DOS emulator. + +Documentation on variable DEBUGGER_ID_ARM_LINUX_USER in module ida_idd: + + Userland arm linux. + +Documentation on variable DEBUGGER_ID_TRACE_REPLAYER in module ida_idd: + + Fake debugger to replay recorded traces. + +Documentation on variable DEBUGGER_ID_X86_PIN_TRACER in module ida_idd: + + PIN Tracer module. + +Documentation on variable DEBUGGER_ID_DALVIK_USER in module ida_idd: + + Dalvik. + +Documentation on variable DEBUGGER_ID_XNU_USER in module ida_idd: + + XNU Kernel. + +Documentation on variable DEBUGGER_ID_ARM_MACOS_USER in module ida_idd: + + Userland arm MAC OS. + +Documentation on variable DBG_FLAG_REMOTE in module ida_idd: + + Remote debugger (requires remote host name unless DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_NOHOST in module ida_idd: + + Remote debugger with does not require network params (host/port/pass). (a unique + device connected to the machine) + +Documentation on variable DBG_FLAG_FAKE_ATTACH in module ida_idd: + + PROCESS_ATTACHED is a fake event and does not suspend the execution + +Documentation on variable DBG_FLAG_HWDATBPT_ONE in module ida_idd: + + Hardware data breakpoints are one byte size by default + +Documentation on variable DBG_FLAG_CAN_CONT_BPT in module ida_idd: + + Debugger knows to continue from a bpt. This flag also means that the debugger + module hides breakpoints from ida upon read_memory + +Documentation on variable DBG_FLAG_NEEDPORT in module ida_idd: + + Remote debugger requires port number (to be used with DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_DONT_DISTURB in module ida_idd: + + Debugger can handle only get_debug_event(), request_pause(), exit_process() when + the debugged process is running. The kernel may also call service functions + (file I/O, map_address, etc) + +Documentation on variable DBG_FLAG_SAFE in module ida_idd: + + The debugger is safe (probably because it just emulates the application without + really running it) + +Documentation on variable DBG_FLAG_CLEAN_EXIT in module ida_idd: + + IDA must suspend the application and remove all breakpoints before terminating + the application. Usually this is not required because the application memory + disappears upon termination. + +Documentation on variable DBG_FLAG_USE_SREGS in module ida_idd: + + Take segment register values into account (non flat memory) + +Documentation on variable DBG_FLAG_NOSTARTDIR in module ida_idd: + + Debugger module doesn't use startup directory. + +Documentation on variable DBG_FLAG_NOPARAMETERS in module ida_idd: + + Debugger module doesn't use commandline parameters. + +Documentation on variable DBG_FLAG_NOPASSWORD in module ida_idd: + + Remote debugger doesn't use password. + +Documentation on variable DBG_FLAG_CONNSTRING in module ida_idd: + + Display "Connection string" instead of "Hostname" and hide the "Port" field. + +Documentation on variable DBG_FLAG_SMALLBLKS in module ida_idd: + + If set, IDA uses 256-byte blocks for caching memory contents. Otherwise, + 1024-byte blocks are used + +Documentation on variable DBG_FLAG_MANMEMINFO in module ida_idd: + + If set, manual memory region manipulation commands will be available. Use this + bit for debugger modules that cannot return memory layout information + +Documentation on variable DBG_FLAG_EXITSHOTOK in module ida_idd: + + IDA may take a memory snapshot at PROCESS_EXITED event. + +Documentation on variable DBG_FLAG_VIRTHREADS in module ida_idd: + + Thread IDs may be shuffled after each debug event. (to be used for virtual + threads that represent cpus for windbg kmode) + +Documentation on variable DBG_FLAG_LOWCNDS in module ida_idd: + + Low level breakpoint conditions are supported. + +Documentation on variable DBG_FLAG_DEBTHREAD in module ida_idd: + + Supports creation of a separate thread in ida for the debugger (the debthread). + Most debugger functions will be called from debthread (exceptions are marked + below) The debugger module may directly call only THREAD_SAFE functions. To call + other functions please use execute_sync(). The debthread significantly increases + debugging speed, especially if debug events occur frequently. + +Documentation on variable DBG_FLAG_DEBUG_DLL in module ida_idd: + + Can debug standalone DLLs. For example, Bochs debugger can debug any snippet of + code + +Documentation on variable DBG_FLAG_FAKE_MEMORY in module ida_idd: + + get_memory_info()/read_memory()/write_memory() work with the idb. (there is no + real process to read from, as for the replayer module) the kernel will not call + these functions if this flag is set. however, third party plugins may call them, + they must be implemented. + +Documentation on variable DBG_FLAG_ANYSIZE_HWBPT in module ida_idd: + + The debugger supports arbitrary size hardware breakpoints. + +Documentation on variable DBG_FLAG_TRACER_MODULE in module ida_idd: + + The module is a tracer, not a full featured debugger module. + +Documentation on variable DBG_FLAG_PREFER_SWBPTS in module ida_idd: + + Prefer to use software breakpoints. + +Documentation on variable DBG_FLAG_LAZY_WATCHPTS in module ida_idd: + + Watchpoints are triggered before the offending instruction is executed. The + debugger must temporarily disable the watchpoint and single-step before + resuming. + +Documentation on variable DBG_FLAG_FAST_STEP in module ida_idd: + + Do not refresh memory layout info after single stepping. + +Documentation on variable DBG_HAS_GET_PROCESSES in module ida_idd: + + supports ev_get_processes + +Documentation on variable DBG_HAS_ATTACH_PROCESS in module ida_idd: + + supports ev_attach_process + +Documentation on variable DBG_HAS_DETACH_PROCESS in module ida_idd: + + supports ev_detach_process + +Documentation on variable DBG_HAS_REQUEST_PAUSE in module ida_idd: + + supports ev_request_pause + +Documentation on variable DBG_HAS_SET_EXCEPTION_INFO in module ida_idd: + + supports ev_set_exception_info + +Documentation on variable DBG_HAS_THREAD_SUSPEND in module ida_idd: + + supports ev_thread_suspend + +Documentation on variable DBG_HAS_THREAD_CONTINUE in module ida_idd: + + supports ev_thread_continue + +Documentation on variable DBG_HAS_SET_RESUME_MODE in module ida_idd: + + supports ev_set_resume_mode. Cannot be set inside the + debugger_t::init_debugger() + +Documentation on variable DBG_HAS_THREAD_GET_SREG_BASE in module ida_idd: + + supports ev_thread_get_sreg_base + +Documentation on variable DBG_HAS_CHECK_BPT in module ida_idd: + + supports ev_check_bpt + +Documentation on variable DBG_HAS_OPEN_FILE in module ida_idd: + + supports ev_open_file, ev_close_file, ev_read_file, ev_write_file + +Documentation on variable DBG_HAS_UPDATE_CALL_STACK in module ida_idd: + + supports ev_update_call_stack + +Documentation on variable DBG_HAS_APPCALL in module ida_idd: + + supports ev_appcall, ev_cleanup_appcall + +Documentation on variable DBG_HAS_REXEC in module ida_idd: + + supports ev_rexec + +Documentation on variable DBG_HAS_MAP_ADDRESS in module ida_idd: + + supports ev_map_address. Avoid using this bit, especially together with + DBG_FLAG_DEBTHREAD because it may cause big slow downs + +Documentation on variable DBG_RESMOD_STEP_INTO in module ida_idd: + + RESMOD_INTO is available + +Documentation on variable DBG_RESMOD_STEP_OVER in module ida_idd: + + RESMOD_OVER is available + +Documentation on variable DBG_RESMOD_STEP_OUT in module ida_idd: + + RESMOD_OUT is available + +Documentation on variable DBG_RESMOD_STEP_SRCINTO in module ida_idd: + + RESMOD_SRCINTO is available + +Documentation on variable DBG_RESMOD_STEP_SRCOVER in module ida_idd: + + RESMOD_SRCOVER is available + +Documentation on variable DBG_RESMOD_STEP_SRCOUT in module ida_idd: + + RESMOD_SRCOUT is available + +Documentation on variable DBG_RESMOD_STEP_USER in module ida_idd: + + RESMOD_USER is available + +Documentation on variable DBG_RESMOD_STEP_HANDLE in module ida_idd: + + RESMOD_HANDLE is available + +Documentation on variable DBG_PROC_IS_DLL in module ida_idd: + + database contains a dll (not exe) + +Documentation on variable DBG_PROC_IS_GUI in module ida_idd: + + using gui version of ida + +Documentation on variable DBG_PROC_32BIT in module ida_idd: + + application is 32-bit + +Documentation on variable DBG_PROC_64BIT in module ida_idd: + + application is 64-bit + +Documentation on variable DBG_NO_TRACE in module ida_idd: + + do not trace the application (mac/linux) + +Documentation on variable DBG_HIDE_WINDOW in module ida_idd: + + application should be hidden on startup (windows) + +Documentation on variable DBG_SUSPENDED in module ida_idd: + + application should be suspended on startup (mac) + +Documentation on variable BPT_OK in module ida_idd: + + breakpoint can be set + +Documentation on variable BPT_INTERNAL_ERR in module ida_idd: + + interr occurred when verifying breakpoint + +Documentation on variable BPT_BAD_TYPE in module ida_idd: + + bpt type is not supported + +Documentation on variable BPT_BAD_ALIGN in module ida_idd: + + alignment is invalid + +Documentation on variable BPT_BAD_ADDR in module ida_idd: + + ea is invalid + +Documentation on variable BPT_BAD_LEN in module ida_idd: + + bpt len is invalid + +Documentation on variable BPT_TOO_MANY in module ida_idd: + + reached max number of supported breakpoints + +Documentation on variable BPT_READ_ERROR in module ida_idd: + + failed to read memory at bpt ea + +Documentation on variable BPT_WRITE_ERROR in module ida_idd: + + failed to write memory at bpt ea + +Documentation on variable BPT_SKIP in module ida_idd: + + update_bpts(): do not process bpt + +Documentation on variable BPT_PAGE_OK in module ida_idd: + + update_bpts(): ok, added a page bpt + +Documentation on variable APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run. debugger_t::cleanup_appcall will not be + generated by ida! + +Documentation on variable APPCALL_DEBEV in module ida_idd: + + Return debug event information. + +Documentation on variable APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout. If timed out, errbuf will contain "timeout". See + SET_APPCALL_TIMEOUT and GET_APPCALL_TIMEOUT + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_ENSURE_SEP in module ida_kernwin: + + make sure there is a separator before the action + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CH2_LAZY_LOADED in module ida_kernwin: + + The chooser is lazy-loaded; it receives the callback do_lazy_load_dir() (only + meaningful when CH_HAS_DIRTREE is set) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name. If a chooser column has this flag set and implements + chooser_base_t::get_ea(), rows background colors will be automatically set to + match the navigator's "Library function", "Lumina function" and "External + symbol" colors + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_stdact_desc_t.version in module ida_kernwin: + + to support the backward compatibility + +Documentation on variable chooser_stdact_desc_t.label in module ida_kernwin: + + see action_desc_t + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: + "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom labels of the standard actions. Used to replace labels for these + actions. + An empty name means that the default name will be used. + @note: Availability of these actions is determined by the CH_CAN_... flags. The + label, icon and other action attributes can be overwritten in the action + description returned by get_stdact_descs() + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable ADF_CHECKABLE in module ida_kernwin: + + action is checkable + +Documentation on variable ADF_CHECKED in module ida_kernwin: + + starts in a checked state (requires ADF_CHECKABLE) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable PMF_PUSH_MODE_MASK in module ida_lumina: + + Conflict resolution mode. + +Documentation on variable AMDF_UPGRADE in module ida_lumina: + + apply kvps that seem to be of higher "quality" than what's currently in the IDB + +Documentation on variable AMDF_FORCE in module ida_lumina: + + apply kvps regardless of what's currently in the IDB, possibly removing some + attributes currently present (e.g., name, or prototype could be lost) + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They are used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable REFINFO_SELFREF in module ida_nalt: + + the self-based reference; refinfo_t::base will be forced to the reference + address + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_CHECK in module ida_name: + + Fail if the name contains invalid characters. + +Documentation on variable SN_NOCHECK in module ida_name: + + Replace invalid characters silently. If this bit is set, all invalid chars (not + in NameChars or MangleChars) will be replaced by '_' List of valid characters is + defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v8.2. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Default key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SEARCH_USESEL in module ida_search: + + query the UI for a possible current selection to limit the search to + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_INVAL in module ida_segment: + + Invalid argument (delta/target does not fit the address space) + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable SNAP_ALL_SEG in module ida_segment: + + Take a snapshot of all segments. + +Documentation on variable SNAP_LOAD_SEG in module ida_segment: + + Take a snapshot of loader segments. + +Documentation on variable SNAP_CUR_SEG in module ida_segment: + + Take a snapshot of current segment. + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/python/idadex.py b/python/idadex.py index 53184ea..97bb518 100644 --- a/python/idadex.py +++ b/python/idadex.py @@ -31,6 +31,10 @@ ushort = uint16 __EA64__ = ida_idaapi.BADADDR == 0xFFFFFFFFFFFFFFFF ea_t = uint64 if __EA64__ else uint32 +# Dalvik indices are stored as uint32 +def to_uint32(v): + return int.from_bytes(v, byteorder='little') & 0xFFFFFFFF + # parse a ctypes struct from byte data in str_ at 'off' def get_struct(str_, off, struct): s = struct() @@ -95,7 +99,7 @@ def unpack_dd(buf, off): def unpack_dq(buf, off): (xl, off) = unpack_dd(buf, off) (xh, off) = unpack_dd(buf, off) - x = (long(xh) << 32) | xl + x = (xh << 32) | xl if x > 0x8000000000000000: x = x - 0x10000000000000000 return (x, off) @@ -286,7 +290,7 @@ class Dex(object): return Dex.as_string(raw) def get_method_idx(self, ea): - return self.nn_cmn.altval(ea, Dex.DEXCMN_METHOD_ID) + return to_uint32(self.nn_cmn.supval_ea(ea, Dex.DEXCMN_METHOD_ID)) def get_method(self, from_ea, method_idx): nn_var = self.get_nn_var(from_ea) diff --git a/python/idautils.py b/python/idautils.py index 581beb6..09eaf84 100644 --- a/python/idautils.py +++ b/python/idautils.py @@ -26,6 +26,7 @@ import ida_name import ida_netnode import ida_segment import ida_strlist +import ida_struct import ida_ua import ida_xref @@ -34,16 +35,6 @@ import types import os import sys -def refs(ea, funcfirst, funcnext): - """ - Generic reference collector - INTERNAL USE ONLY. - """ - ref = funcfirst(ea) - while ref != ida_idaapi.BADADDR: - yield ref - ref = funcnext(ea, ref) - - def CodeRefsTo(ea, flow): """ Get a list of code references to 'ea' @@ -59,10 +50,11 @@ def CodeRefsTo(ea, flow): for ref in CodeRefsTo(get_screen_ea(), 1): print(ref) """ + xref = ida_xref.xrefblk_t() if flow == 1: - return refs(ea, ida_xref.get_first_cref_to, ida_xref.get_next_cref_to) + yield from xref.crefs_to(ea) else: - return refs(ea, ida_xref.get_first_fcref_to, ida_xref.get_next_fcref_to) + yield from xref.fcrefs_to(ea) def CodeRefsFrom(ea, flow): @@ -80,11 +72,11 @@ def CodeRefsFrom(ea, flow): for ref in CodeRefsFrom(get_screen_ea(), 1): print(ref) """ + xref = ida_xref.xrefblk_t() if flow == 1: - return refs(ea, ida_xref.get_first_cref_from, ida_xref.get_next_cref_from) + yield from xref.crefs_from(ea) else: - return refs(ea, ida_xref.get_first_fcref_from, ida_xref.get_next_fcref_from) - + yield from xref.fcrefs_from(ea) def DataRefsTo(ea): """ @@ -99,7 +91,8 @@ def DataRefsTo(ea): for ref in DataRefsTo(get_screen_ea()): print(ref) """ - return refs(ea, ida_xref.get_first_dref_to, ida_xref.get_next_dref_to) + xref = ida_xref.xrefblk_t() + yield from xref.drefs_to(ea) def DataRefsFrom(ea): @@ -115,7 +108,8 @@ def DataRefsFrom(ea): for ref in DataRefsFrom(get_screen_ea()): print(ref) """ - return refs(ea, ida_xref.get_first_dref_from, ida_xref.get_next_dref_from) + xref = ida_xref.xrefblk_t() + yield from xref.drefs_from(ea) # Xref type names table @@ -143,16 +137,6 @@ def XrefTypeName(typecode): assert typecode in _ref_types, "unknown reference type %d" % typecode return _ref_types[typecode] -def _copy_xref(xref): - """ Make a private copy of the xref class to preserve its contents """ - class _xref(object): - pass - - xr = _xref() - for attr in [ 'frm', 'to', 'iscode', 'type', 'user' ]: - setattr(xr, attr, getattr(xref, attr)) - return xr - def XrefsFrom(ea, flags=0): """ @@ -167,10 +151,7 @@ def XrefsFrom(ea, flags=0): 'from', hex(xref.frm), 'to', hex(xref.to)) """ xref = ida_xref.xrefblk_t() - if xref.first_from(ea, flags): - yield _copy_xref(xref) - while xref.next_from(): - yield _copy_xref(xref) + return xref.refs_from(ea, flags) def XrefsTo(ea, flags=0): @@ -186,10 +167,7 @@ def XrefsTo(ea, flags=0): 'from', hex(xref.frm), 'to', hex(xref.to)) """ xref = ida_xref.xrefblk_t() - if xref.first_to(ea, flags): - yield _copy_xref(xref) - while xref.next_to(): - yield _copy_xref(xref) + return xref.refs_to(ea, flags) def Threads(): @@ -252,18 +230,16 @@ def Functions(start=None, end=None): def Chunks(start): """ Get a list of function chunks + See also ida_funcs.func_tail_iterator_t @param start: address of the function - @return: list of funcion chunks (tuples of the form (start_ea, end_ea)) + @return: list of function chunks (tuples of the form (start_ea, end_ea)) belonging to the function """ func_iter = ida_funcs.func_tail_iterator_t( ida_funcs.get_func( start ) ) - status = func_iter.main() - while status: - chunk = func_iter.chunk() + for chunk in func_iter: yield (chunk.start_ea, chunk.end_ea) - status = next(func_iter) def Modules(): @@ -318,19 +294,13 @@ def Entries(): def FuncItems(start): """ Get a list of function items (instruction or data items inside function boundaries) + See also ida_funcs.func_item_iterator_t @param start: address of the function @return: ea of each item in the function """ - func = ida_funcs.get_func(start) - if not func: - return - fii = ida_funcs.func_item_iterator_t() - ok = fii.set(func) - while ok: - yield fii.current() - ok = fii.next_code() + return ida_funcs.func_item_iterator_t(ida_funcs.get_func(start)) def Structs(): @@ -359,14 +329,14 @@ def StructMembers(sid): @note: This will not return 'holes' in structures/stack frames; it only returns defined structure members. """ - m = idc.get_first_member(sid) - if m == -1: + sptr = ida_struct.get_struc(sid) + if sptr is None: raise Exception("No structure with ID: 0x%x" % sid) - while (m != ida_idaapi.BADADDR): - name = idc.get_member_name(sid, m) + for m in sptr.members: + name = idc.get_member_name(sid, m.soff) if name: - yield (m, name, idc.get_member_size(sid, m)) - m = idc.get_next_offset(sid, m) + size = ida_struct.get_member_size(m) + yield (m.soff, name, size) def DecodePrecedingInstruction(ea): @@ -514,7 +484,7 @@ class Strings(object): return self._toseq(True) def clear_cache(self): - """Clears the strings list cache""" + """Clears the string list cache""" ida_strlist.clear_strlist() def __init__(self, default_setup = False): @@ -535,7 +505,7 @@ class Strings(object): def refresh(self): - """Refreshes the strings list""" + """Refreshes the string list""" ida_strlist.build_strlist() self.size = ida_strlist.get_strlist_qty() @@ -552,6 +522,7 @@ class Strings(object): t.minlen = minlen t.only_7bit = only_7bit t.display_only_existing_strings = display_only_existing_strings + t.ignore_heads = ignore_instructions self.refresh() @@ -592,9 +563,14 @@ def GetInstructionList(): return [i[0] for i in ida_idp.ph_get_instruc() if i[0]] # ----------------------------------------------------------------------- -def _Assemble(ea, line): +def Assemble(ea, line): """ - Please refer to Assemble() - INTERNAL USE ONLY + Assembles one or more lines (does not display an message dialogs) + If line is a list then this function will attempt to assemble all the lines + This function will turn on batch mode temporarily so that no messages are displayed on the screen + + @param ea: start address + @return: (False, "Error message") or (True, asm_buf) or (True, [asm_buf1, asm_buf2, asm_buf3]) """ if type(line) in ([bytes] + list(ida_idaapi.string_types)): lines = [line] @@ -616,21 +592,11 @@ def _Assemble(ea, line): ret = ret[0] return (True, ret) +# ----------------------------------------------------------------------- +_Assemble = Assemble -def Assemble(ea, line): - """ - Assembles one or more lines (does not display an message dialogs) - If line is a list then this function will attempt to assemble all the lines - This function will turn on batch mode temporarily so that no messages are displayed on the screen - - @param ea: start address - @return: (False, "Error message") or (True, asm_buf) or (True, [asm_buf1, asm_buf2, asm_buf3]) - """ - old_batch = idc.batch(1) - ret = _Assemble(ea, line) - idc.batch(old_batch) - return ret +# ----------------------------------------------------------------------- def _copy_obj(src, dest, skip_list = None): """ Copy non private/non callable attributes from a class instance to another @@ -689,7 +655,12 @@ class _procregs(object): class _cpu(object): "Simple wrapper around get_reg_value/set_reg_value" def __getattr__(self, name): - return idc.get_reg_value(name) + try: + return idc.get_reg_value(name) + except Exception as ex: + raise AttributeError("_cpu: \"{}\" is not a register;" + " inner exception: [{}] {}" + .format(name, type(ex).__name__, ex)) def __setattr__(self, name, value): return idc.set_reg_value(value, name) diff --git a/python/idc.py b/python/idc.py index 74ebba1..085585d 100644 --- a/python/idc.py +++ b/python/idc.py @@ -70,7 +70,7 @@ import types import sys __EA64__ = ida_idaapi.BADADDR == 0xFFFFFFFFFFFFFFFF -WORDMASK = 0xFFFFFFFFFFFFFFFF if __EA64__ else 0xFFFFFFFF +WORDMASK = 0xFFFFFFFFFFFFFFFF if __EA64__ else 0xFFFFFFFF # just there for bw-compat purposes; please don't use class DeprecatedIDCError(Exception): """ Exception for deprecated function calls @@ -115,8 +115,13 @@ def _IDC_SetAttr(obj, attrmap, attroffs, value): BADADDR = ida_idaapi.BADADDR # Not allowed address value BADSEL = ida_idaapi.BADSEL # Not allowed selector value/number -MAXADDR = ida_ida.MAXADDR & WORDMASK SIZE_MAX = _ida_idaapi.SIZE_MAX +ida_ida.__set_module_dynattrs( + __name__, + { + "MAXADDR" : (lambda: ida_ida.inf_get_privrange_start_ea(), None), + }) + # # Flag bit definitions (for get_full_flags()) # @@ -358,6 +363,7 @@ def rotate_left(value, count, nbits, offset): """ assert offset >= 0, "offset must be >= 0" assert nbits > 0, "nbits must be > 0" + count %= nbits # no need to spin the wheel more than 1 rotation mask = 2**(offset+nbits) - 2**offset tmp = value & mask @@ -549,11 +555,11 @@ def set_name(ea, name, flags=ida_name.SN_CHECK): """ return ida_name.set_name(ea, name, flags) -SN_CHECK = ida_name.SN_CHECK +SN_CHECK = ida_name.SN_CHECK # Fail if the name contains invalid characters. SN_NOCHECK = ida_name.SN_NOCHECK # Don't fail if the name contains invalid characters. - # If this bit is clear, all invalid chars - # (those !is_ident_cp()) will be replaced - # by SUBSTCHAR (usually '_'). + # If this bit is set, all invalid chars + # (not in NameChars or MangleChars) will be replaced + # by '_'. # List of valid characters is defined in ida.cfg SN_PUBLIC = ida_name.SN_PUBLIC # if set, make name public SN_NON_PUBLIC = ida_name.SN_NON_PUBLIC # if set, make name non-public @@ -790,32 +796,11 @@ def define_local_var(start, end, location, name): if m: # Location in the form of [bp+xx] register = ida_idp.str2reg(m.group(1)) - offset = int(m.group(2), 0) - frame = ida_frame.get_frame(func) - - if register == -1 or not frame: + if register == -1: return 0 - offset += func.frsize - member = ida_struct.get_member(frame, offset) - - if member: - # Member already exists, rename it - if ida_struct.set_member_name(frame, offset, name): - return 1 - else: - return 0 - else: - # No member at the offset, create a new one - if ida_struct.add_struc_member( - frame, - name, - offset, - ida_bytes.byte_flag(), - None, 1) == 0: - return 1 - else: - return 0 + offset = int(m.group(2), 0) + return 1 if ida_frame.define_stkvar(func, name, offset, ida_bytes.byte_flag(), None, 1) else 0 else: # Location as simple register name return ida_frame.add_regvar(func, start, end, location, name, None) @@ -1087,7 +1072,7 @@ def gen_file(filetype, path, ea1, ea2, flags): -1 if an error occurred OFILE_EXE: 0-can't generate exe file, 1-ok """ - f = ida_diskio.fopenWT(path) + f = ida_diskio.fopenWB(path) if f: retval = ida_loader.gen_file(filetype, f, ea1, ea2, flags) @@ -1769,15 +1754,13 @@ SEARCH_NOBRK = ida_search.SEARCH_NOBRK # don't test ctrl-break SEARCH_NOSHOW = ida_search.SEARCH_NOSHOW # don't display the search progress -def find_text(ea, flag, y, x, searchstr, from_bc695=False): - if not from_bc695: - __warn_once_deprecated_proto_confusion("find_text", "ida_search.find_text") +def find_text(ea, flag, y, x, searchstr): + __warn_once_deprecated_proto_confusion("find_text", "ida_search.find_text") return ida_search.find_text(ea, y, x, searchstr, flag) -def find_binary(ea, flag, searchstr, radix=16, from_bc695=False): - if not from_bc695: - __warn_once_deprecated_proto_confusion("find_binary", "ida_search.find_binary") +def find_binary(ea, flag, searchstr, radix=16): + __warn_once_deprecated_proto_confusion("find_binary", "ida_search.find_binary") endea = flag & 1 and ida_ida.cvar.inf.max_ea or ida_ida.cvar.inf.min_ea return ida_search.find_binary(ea, endea, searchstr, radix, flag) @@ -1787,13 +1770,9 @@ def find_binary(ea, flag, searchstr, radix=16, from_bc695=False): #---------------------------------------------------------------------------- def process_config_line(directive): """ - Parse one or more ida.cfg config directives - @param directive: directives to process, for example: PACK_DATABASE=2 - - @note: If the directives are erroneous, a fatal error will be generated. - The settings are permanent: effective for the current session and the next ones + Obsolete. Please use ida_idp.process_config_directive(). """ - return eval_idc('process_config_line("%s")' % ida_kernwin.str2user(directive)) + return eval_idc('process_config_directive("%s")' % ida_kernwin.str2user(directive)) # The following functions allow you to set/get common parameters. @@ -1804,29 +1783,7 @@ def process_config_line(directive): INF_VERSION = 0 # short; Version of database INF_PROCNAME = 1 # char[8]; Name of current processor INF_GENFLAGS = 2 # ushort; General flags: -INFFL_AUTO = 0x01 # Autoanalysis is enabled? -INFFL_ALLASM = 0x02 # May use constructs not supported by - # the target assembler -INFFL_LOADIDC = 0x04 # loading an idc file that contains database info -INFFL_NOUSER = 0x08 # do not store user info in the database -INFFL_READONLY = 0x10 # (internal) temporary interdiction to modify the database -INFFL_CHKOPS = 0x20 # check manual operands? -INFFL_NMOPS = 0x40 # allow non-matched operands? -INFFL_GRAPH_VIEW= 0x80 # currently using graph options (\dto{graph}) INF_LFLAGS = 3 # uint32; IDP-dependent flags -LFLG_PC_FPP = 0x00000001 # decode floating point processor - # instructions? -LFLG_PC_FLAT = 0x00000002 # Flat model? -LFLG_64BIT = 0x00000004 # 64-bit program? -LFLG_IS_DLL = 0x00000008 # is dynamic library? -LFLG_FLAT_OFF32= 0x00000010 # treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) -LFLG_MSF = 0x00000020 # byte order: is MSB first? -LFLG_WIDE_HBF = 0x00000040 # bit order of wide bytes: high byte first? -LFLG_DBG_NOPATH= 0x00000080 # do not store input full path -LFLG_SNAPSHOT = 0x00000100 # is memory snapshot? -LFLG_PACK = 0x00000200 # pack the database? -LFLG_COMPRESS = 0x00000400 # compress the database? -LFLG_KERNMODE = 0x00000800 # is kernel mode binary? INF_DATABASE_CHANGE_COUNT= 4 # uint32; database change counter; keeps track of byte and segment modifications INF_CHANGE_COUNTER=INF_DATABASE_CHANGE_COUNT @@ -1877,50 +1834,38 @@ INF_ASMTYPE = 8 # char; target assembler number (0..n) INF_SPECSEGS = 9 INF_AF = 10 # uint32; Analysis flags: -AF_CODE = 0x00000001 # Trace execution flow -AF_MARKCODE = 0x00000002 # Mark typical code sequences as code -AF_JUMPTBL = 0x00000004 # Locate and create jump tables -AF_PURDAT = 0x00000008 # Control flow to data segment is ignored -AF_USED = 0x00000010 # Analyze and create all xrefs -AF_UNK = 0x00000020 # Delete instructions with no xrefs -AF_PROCPTR = 0x00000040 # Create function if data xref data->code32 exists -AF_PROC = 0x00000080 # Create functions if call is present -AF_FTAIL = 0x00000100 # Create function tails -AF_LVAR = 0x00000200 # Create stack variables -AF_STKARG = 0x00000400 # Propagate stack argument information -AF_REGARG = 0x00000800 # Propagate register argument information -AF_TRACE = 0x00001000 # Trace stack pointer -AF_VERSP = 0x00002000 # Perform full SP-analysis. (\ph{verify_sp}) -AF_ANORET = 0x00004000 # Perform 'no-return' analysis -AF_MEMFUNC = 0x00008000 # Try to guess member function types -AF_TRFUNC = 0x00010000 # Truncate functions upon code deletion - -AF_STRLIT = 0x00020000 # Create string literal if data xref exists -AF_CHKUNI = 0x00040000 # Check for unicode strings -AF_FIXUP = 0x00080000 # Create offsets and segments using fixup info -AF_DREFOFF = 0x00100000 # Create offset if data xref to seg32 exists -AF_IMMOFF = 0x00200000 # Convert 32bit instruction operand to offset -AF_DATOFF = 0x00400000 # Automatically convert data to offsets - -AF_FLIRT = 0x00800000 # Use flirt signatures -AF_SIGCMT = 0x01000000 # Append a signature name comment for recognized anonymous library functions -AF_SIGMLT = 0x02000000 # Allow recognition of several copies of the same function -AF_HFLIRT = 0x04000000 # Automatically hide library functions - -AF_JFUNC = 0x08000000 # Rename jump functions as j_... -AF_NULLSUB = 0x10000000 # Rename empty functions as nullsub_... - -AF_DODATA = 0x20000000 # Coagulate data segs at the final pass -AF_DOCODE = 0x40000000 # Coagulate code segs at the final pass -AF_FINAL = 0x80000000 # Final pass of analysis +def _import_module_flag_sets(module, prefixes): + if isinstance(prefixes, str): + prefixes = [prefixes] + for prefix in prefixes: + for key in dir(module): + if key.startswith(prefix): + value = getattr(module, key) + if isinstance(value, ida_idaapi.integer_types): + globals()[key] = value +_import_module_flag_sets( + ida_ida, + [ + "INFFL_", + "LFLG_", + "IDB_", + "AF_", + "AF2_", + "SW_", + "NM_", + "DEMNAM_", + "LN_", + "OFLG_", + "SCF_", + "LMT_", + "PREF_", + "STRF_", + "ABI_", + ]) INF_AF2 = 11 # uint32; Analysis flags 2 -AF2_DOEH = 0x00000001 # Handle EH information -AF2_DORTTI = 0x00000002 # Handle RTTI information -AF2_MACRO = 0x00000004 # Try to combine several instructions into a macro instruction - INF_BASEADDR = 12 # uval_t; base paragraph of the program INF_START_SS = 13 # int32; value of SS at the start INF_START_CS = 14 # int32; value of CS at the start @@ -1963,80 +1908,36 @@ INF_REFCMTNUM = 32 # uchar; number of comment lines to INF_REFCMTS=INF_REFCMTNUM INF_XREFFLAG = 33 # char; xrefs representation: INF_XREFS=INF_XREFFLAG -SW_SEGXRF = 0x01 # show segments in xrefs? -SW_XRFMRK = 0x02 # show xref type marks? -SW_XRFFNC = 0x04 # show function offsets? -SW_XRFVAL = 0x08 # show xref values? (otherwise-"...") # NAMES INF_MAX_AUTONAME_LEN = 34 # ushort; max name length (without zero byte) INF_NAMETYPE = 35 # char; dummy names represenation type -NM_REL_OFF = 0 -NM_PTR_OFF = 1 -NM_NAM_OFF = 2 -NM_REL_EA = 3 -NM_PTR_EA = 4 -NM_NAM_EA = 5 -NM_EA = 6 -NM_EA4 = 7 -NM_EA8 = 8 -NM_SHORT = 9 -NM_SERIAL = 10 INF_SHORT_DEMNAMES = 36 # int32; short form of demangled names INF_SHORT_DN=INF_SHORT_DEMNAMES INF_LONG_DEMNAMES = 37 # int32; long form of demangled names # see demangle.h for definitions INF_LONG_DN=INF_LONG_DEMNAMES INF_DEMNAMES = 38 # char; display demangled names as: -DEMNAM_CMNT = 0 # comments -DEMNAM_NAME = 1 # regular names -DEMNAM_NONE = 2 # don't display -DEMNAM_GCC3 = 4 # assume gcc3 names (valid for gnu compiler) -DEMNAM_FIRST= 8 # override type info INF_LISTNAMES = 39 # uchar; What names should be included in the list? -LN_NORMAL = 0x01 # normal names -LN_PUBLIC = 0x02 # public names -LN_AUTO = 0x04 # autogenerated names -LN_WEAK = 0x08 # weak names # DISASSEMBLY LISTING DETAILS INF_INDENT = 40 # char; Indention for instructions -INF_COMMENT = 41 # char; Indention for comments +INF_CMT_INDENT = 41 # char; Indention for comments +INF_COMMENT = 41 # for compatibility INF_MARGIN = 42 # ushort; max length of data lines INF_LENXREF = 43 # ushort; max length of line with xrefs INF_OUTFLAGS = 44 # uint32; output flags -OFLG_SHOW_VOID = 0x0002 # Display void marks? -OFLG_SHOW_AUTO = 0x0004 # Display autoanalysis indicator? -OFLG_GEN_NULL = 0x0010 # Generate empty lines? -OFLG_SHOW_PREF = 0x0020 # Show line prefixes? -OFLG_PREF_SEG = 0x0040 # line prefixes with segment name? -OFLG_LZERO = 0x0080 # generate leading zeroes in numbers -OFLG_GEN_ORG = 0x0100 # Generate 'org' directives? -OFLG_GEN_ASSUME= 0x0200 # Generate 'assume' directives? -OFLG_GEN_TRYBLKS = 0x0400 # Generate try/catch directives? INF_CMTFLG = 45 # char; comments: INF_CMTFLAG=INF_CMTFLG -SW_RPTCMT = 0x01 # show repeatable comments? -SW_ALLCMT = 0x02 # comment all lines? -SW_NOCMT = 0x04 # no comments at all -SW_LINNUM = 0x08 # show source line numbers INF_LIMITER = 46 # char; Generate borders? INF_BORDER=INF_LIMITER INF_BIN_PREFIX_SIZE = 47 # short; # of instruction bytes to show # in line prefix INF_BINPREF=INF_BIN_PREFIX_SIZE INF_PREFFLAG = 48 # char; line prefix type: -PREF_SEGADR = 0x01 # show segment addresses? -PREF_FNCOFF = 0x02 # show function offsets? -PREF_STACK = 0x04 # show stack pointer? # STRING LITERALS INF_STRLIT_FLAGS= 49 # uchar; string literal flags -STRF_GEN = 0x01 # generate names? -STRF_AUTO = 0x02 # names have 'autogenerated' bit? -STRF_SERIAL = 0x04 # generate serial names? -STRF_COMMENT = 0x10 # generate auto comment for string references? -STRF_SAVECASE = 0x20 # preserve case of strings for identifiers INF_STRLIT_BREAK= 50 # char; string literal line break symbol INF_STRLIT_ZEROES= 51 # char; leading zeroes INF_STRTYPE = 52 # int32; current ascii string type @@ -2079,15 +1980,6 @@ INF_SIZEOF_LONG = INF_CC_SIZE_L INF_SIZEOF_LLONG= INF_CC_SIZE_LL INF_SIZEOF_LDBL = INF_CC_SIZE_LDBL INF_ABIBITS= 67 # uint32; ABI features -ABI_8ALIGN4 = 0x00000001 # 4 byte alignment for 8byte scalars (__int64/double) inside structures? -ABI_PACK_STKARGS = 0x00000002 # do not align stack arguments to stack slots -ABI_BIGARG_ALIGN = 0x00000004 # use natural type alignment for argument if the alignment exceeds native word size (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) -ABI_STACK_LDBL = 0x00000008 # long double areuments are passed on stack -ABI_STACK_VARARGS= 0x00000010 # varargs are always passed on stack (even when there are free registers) -ABI_HARD_FLOAT = 0x00000020 # use the floating-point register set -ABI_SET_BY_USER = 0x00000040 # compiler/abi were set by user flag -ABI_GCC_LAYOUT = 0x00000080 # use gcc layout for udts (used for mingw) -ABI_MAP_STKARGS = 0x00000100 # register arguments are mapped to stack area (and consume stack slots) INF_APPCALL_OPTIONS= 68 # uint32; appcall options _INF_attrs_accessors = { @@ -2110,7 +2002,7 @@ _INF_attrs_accessors = { INF_CC_SIZE_LL : (ida_ida.inf_get_cc_size_ll, ida_ida.inf_set_cc_size_ll), INF_CC_SIZE_S : (ida_ida.inf_get_cc_size_s, ida_ida.inf_set_cc_size_s), INF_CMTFLAG : (ida_ida.inf_get_cmtflg, ida_ida.inf_set_cmtflg), - INF_COMMENT : (ida_ida.inf_get_comment, ida_ida.inf_set_comment), + INF_CMT_INDENT : (ida_ida.inf_get_cmt_indent, ida_ida.inf_set_cmt_indent), INF_DATABASE_CHANGE_COUNT : (ida_ida.inf_get_database_change_count, ida_ida.inf_set_database_change_count), INF_DATATYPES : (ida_ida.inf_get_datatypes, ida_ida.inf_set_datatypes), INF_DEMNAMES : (ida_ida.inf_get_demnames, ida_ida.inf_set_demnames), @@ -2185,6 +2077,12 @@ SETPROC_USER = ida_idp.SETPROC_USER def SetPrcsr(processor): return set_processor_type(processor, SETPROC_USER) +def get_processor_name(): + """ + Get name of the current processor + @return: processor name + """ + return ida_ida.inf_get_procname() set_target_assembler = ida_idp.set_target_assembler @@ -3079,6 +2977,8 @@ FUNC_PURGED_OK = _scope.FUNC_PURGED_OK # 'argsize' field has been valida FUNC_TAIL = _scope.FUNC_TAIL # This is a function tail. # Other bits must be clear # (except FUNC_HIDDEN) +FUNC_LUMINA = _scope.FUNC_LUMINA # Function info is provided by Lumina. +FUNC_OUTLINE = _scope.FUNC_OUTLINE # Outlined code, not a real function. def set_func_flags(ea, flags): @@ -4608,6 +4508,17 @@ def __l2m1(v): return v +def __m1tol(v): + """ + Long -1 to BADNODE: If the 'v' appears to be the + 'signed long' version of -1, then return BADNODE. + Otherwise, return 'v'. + """ + if v == -1: + return ida_netnode.BADNODE + else: + return v + AR_LONG = ida_netnode.atag """Array of longs""" @@ -4855,9 +4766,9 @@ def get_next_index(tag, array_id, idx): node = __GetArrayById(array_id) try: if tag == AR_LONG: - return __l2m1(node.altnext(idx, tag)) + return __l2m1(node.altnext(__m1tol(idx), tag)) elif tag == AR_STR: - return __l2m1(node.supnext(idx, tag)) + return __l2m1(node.supnext(__m1tol(idx), tag)) else: return -1 except OverflowError: @@ -4879,9 +4790,9 @@ def get_prev_index(tag, array_id, idx): node = __GetArrayById(array_id) try: if tag == AR_LONG: - return __l2m1(node.altprev(idx, tag)) + return __l2m1(node.altprev(__m1tol(idx), tag)) elif tag == AR_STR: - return __l2m1(node.supprev(idx, tag)) + return __l2m1(node.supprev(__m1tol(idx), tag)) else: return -1 except OverflowError: @@ -5460,9 +5371,8 @@ get_process_state = ida_dbg.get_process_state DSTATE_SUSP = -1 # process is suspended DSTATE_NOTASK = 0 # no process is currently debugged DSTATE_RUN = 1 # process is running -DSTATE_RUN_WAIT_ATTACH = 2 # process is running, waiting for process properly attached -DSTATE_RUN_WAIT_END = 3 # process is running, but the user asked to kill/detach the process - # remark: in this case, most events are ignored +DSTATE_RUN_WAIT_ATTACH = 2 # deprecated +DSTATE_RUN_WAIT_END = 3 # deprecated """ Get various information about the current debug event @@ -5675,22 +5585,7 @@ define_exception = ida_dbg.define_exception EXC_BREAK = 0x0001 # break on the exception EXC_HANDLE = 0x0002 # should be handled by the debugger? - -def get_reg_value(name): - """ - Get register value - - @param name: the register name - - @note: The debugger should be running. otherwise the function fails - the register name should be valid. - It is not necessary to use this function to get register values - because a register name in the script will do too. - - @return: register value (integer or floating point) - """ - return ida_dbg.get_reg_val(name) - +get_reg_value = ida_dbg.get_reg_val def set_reg_value(value, name): """ @@ -6056,94 +5951,6 @@ def set_flag(off, bit, value): v = v & ~bit set_inf_attr(off, v) -#-------------------------------------------------------------------------- -# Compatibility macros (auto-generated part. Comes first so -# that any re-definition below will override auto-generated part) -if sys.modules["__main__"].IDAPYTHON_COMPAT_695_API: - - # see header.i.in - bc695redef = ida_idaapi.bc695redef - - # although many things have changed in the 'inf' structure, - # let's still try and do the best we can here even though - # some INF_* accessor enumerators don't exist anymore - GetCharPrm=get_inf_attr - GetLongPrm=get_inf_attr - GetShortPrm=get_inf_attr - SetCharPrm=set_inf_attr - SetLongPrm=set_inf_attr - SetShortPrm=set_inf_attr - - #-------------------------------------------------------------------------- - # Compatibility macros (non-auto-generated part) - def CompileEx(inp, isfile): return compile_idc_file(inp) if isfile else compile_idc_text(inp) - - def WriteMap(filepath): - return gen_file(OFILE_MAP, filepath, 0, BADADDR, GENFLG_MAPSEG|GENFLG_MAPNAME) - - def WriteTxt(filepath, ea1, ea2): - return gen_file(OFILE_ASM, filepath, ea1, ea2, 0) - - def WriteExe(filepath): - return gen_file(OFILE_EXE, filepath, 0, BADADDR, 0) - - UTP_STRUCT = ida_typeinf.UTP_STRUCT - UTP_ENUM = ida_typeinf.UTP_ENUM - - - def begin_type_updating(utp): - """ - Begin type updating. Use this function if you - plan to call AddEnumConst or similar type modification functions - many times or from inside a loop - - @param utp: one of UTP_xxxx consts - @return: None - """ - return ida_typeinf.begin_type_updating(utp) - - - def end_type_updating(utp): - """ - End type updating. Refreshes the type system - at the end of type modification operations - - @param utp: one of ida_typeinf.UTP_xxxx consts - @return: None - """ - return ida_typeinf.end_type_updating(utp) - - from idc_bc695 import * - - SendDbgCommand=send_dbg_command - - def MakeFunction(start, end=ida_idaapi.BADADDR): - return ida_funcs.add_func(start, end) - - ApplyType = apply_type - GetManyBytes = get_bytes - GetString = get_strlit_contents - ClearTraceFile = clear_trace - def FindBinary(ea, flag, searchstr, radix=16): - return find_binary(ea, flag, searchstr, radix, from_bc695=True) - def FindText(ea, flag, y, x, text): - return find_text(ea, flag, y, x, text, from_bc695=True) - NextHead = next_head - ParseTypes = parse_decls - PrevHead = prev_head - ProcessUiAction = process_ui_action - SaveBase = save_database - Eval = eval_idc - def MakeStr(ea, endea): - return create_strlit(ea, endea) - - def GetProcessorName(): - return ida_ida.cvar.inf.procname - - def SegStart(ea): return get_segm_start(ea) - def SegEnd(ea): return get_segm_end(ea) - def SetSegmentType(ea, type): return set_segm_type(ea, type) - # Convenience functions: def here(): return get_screen_ea() def is_mapped(ea): return (prev_addr(ea+1)==ea) diff --git a/python/init.py b/python/init.py index 6cd5b75..15eb53e 100644 --- a/python/init.py +++ b/python/init.py @@ -16,6 +16,20 @@ import os import sys import time import warnings +import os +import os.path + +if os.name == 'nt' and \ + sys.version_info.major == 3 and \ + sys.version_info.minor >= 11: + # Python 3.11 has a bug with DLLs directory missing from sys.path + # so add it if it's not there + base = sys.base_exec_prefix + dllspath = os.path.join(base, sys.platlibdir) + if os.path.exists(dllspath) and dllspath not in sys.path: + i = sys.path.index(base) if base in sys.path else len(sys.path) + sys.path.insert(i, dllspath) + # Prepare sys.path so loading of the shared objects works lib_dynload = os.path.join( @@ -55,8 +69,10 @@ except ImportError as e: # ----------------------------------------------------------------------- class IDAPythonStdOut: """ - Dummy file-like class that receives stout and stderr + Dummy file-like class that receives stdout and stderr """ + encoding = "UTF-8" + def write(self, text): # NB: in case 'text' is Unicode, msg() will decode it # and call msg() to print it @@ -105,10 +121,20 @@ sys.stdout = sys.stderr = IDAPythonStdOut() # Initialize the help, with our own stdin wrapper, that'll query the user # ----------------------------------------------------------------------- import pydoc -class IDAPythonHelpPrompter: +class IDAPythonHelpPrompter(object): def readline(self): return ida_kernwin.ask_str('', 0, 'Help topic?') -help = pydoc.Helper(input = IDAPythonHelpPrompter(), output = sys.stdout) + +class IDAPythonHelp(pydoc.Helper): + def __init__(self): + super().__init__(input = IDAPythonHelpPrompter(), output = sys.stdout) + def help(self, *args): + try: + return super().help(*args) + except ImportError as e: + print(e) + +help = IDAPythonHelp() # Assign a default sys.argv sys.argv = [""] @@ -127,11 +153,17 @@ if os.getcwd() in sys.path: if not IDAPYTHON_REMOVE_CWD_SYS_PATH: sys.path.append(os.getcwd()) +# Additional $IDAUSR-derived paths +if IDAPYTHON_IDAUSR_SYSPATH: + idausr_python_list = ida_diskio.get_ida_subdirs("python") + for idausr_python in idausr_python_list: + one = os.path.join(idausr_python, str(sys.version_info.major)) + if one not in sys.path: + sys.path.append(one) + if IDAPYTHON_COMPAT_AUTOIMPORT_MODULES: # Import all the required modules from idaapi import get_user_idadir, cvar, Appcall, Form - if IDAPYTHON_COMPAT_695_API: - from idaapi import Choose2 from idc import * from idautils import * import idaapi diff --git a/python/lumina_model.py b/python/lumina_model.py index df44639..e7263c6 100644 --- a/python/lumina_model.py +++ b/python/lumina_model.py @@ -1,4 +1,6 @@ +import sys + import ida_pro import ida_funcs import ida_lumina @@ -9,12 +11,17 @@ import idautils dquot_escaped_str = ida_pro.str2user +if sys.version_info.major >= 3: + int_types = [int] +else: + int_types = [int, long] + def escaped_bytestr(bts): return "".join(map(lambda b: "\\x%02X" % ord(b), bts)) class func_md_t: def __init__(self, pfn, retrieve=True): - if type(pfn) in [int, long]: + if type(pfn) in int_types: pfn = ida_funcs.get_func(pfn) self.pfn_ea = pfn.start_ea self.func_info = ida_lumina.func_info_t() diff --git a/pywraps.cpp b/pywraps.cpp index 477161c..b737daf 100644 --- a/pywraps.cpp +++ b/pywraps.cpp @@ -85,13 +85,7 @@ ref_t ida_export PyW_SizeVecToPyList(const sizevec_t &vec) PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_list(PyList_New(n)); for ( size_t i = 0; i < n; ++i ) - { -#ifdef PY3 PyList_SetItem(py_list.o, i, PyLong_FromSize_t(vec[i])); -#else - PyList_SetItem(py_list.o, i, PyInt_FromSize_t(vec[i])); -#endif - } return ref_t(py_list); } @@ -106,6 +100,18 @@ ref_t ida_export PyW_UvalVecToPyList(const uvalvec_t &vec) return ref_t(py_list); } +//------------------------------------------------------------------------- +ref_t ida_export PyW_StrVecToPyList(const qstrvec_t &vec) +{ + size_t n = vec.size(); + PYW_GIL_CHECK_LOCKED_SCOPE(); + newref_t py_list(PyList_New(n)); + for ( size_t i = 0; i < n; ++i ) + PyList_SetItem(py_list.o, i, PyUnicode_from_qstring(vec[i])); + return ref_t(py_list); + +} + //------------------------------------------------------------------------- static Py_ssize_t pyvar_walk_list( const ref_t &py_list, @@ -131,18 +137,18 @@ static Py_ssize_t pyvar_walk_list( py_item = newref_t(PySequence_GetItem(o, i)); else py_item = borref_t(PyList_GetItem(o, i)); - bool ok = py_item != NULL && cb(py_item, i, ud) == CIP_OK; + bool ok = py_item && cb(py_item, i, ud) == CIP_OK; if ( ok ) { // We cannot have, at the same time, a 'successful conversion', and // the Python runtime raising an exception. It's up to the callback // implementation to ensure that whatever it did, didn't cause an // error to be set. - QASSERT(30604, PyErr_Occurred() == NULL); + QASSERT(30604, PyErr_Occurred() == nullptr); } else { - if ( PyErr_Occurred() == NULL ) + if ( PyErr_Occurred() == nullptr ) { qstring m; m.sprnt("Sequence item #%d cannot be converted", int(i)); @@ -194,11 +200,10 @@ Py_ssize_t ida_export PyW_PyListToEaVec(eavec_t *out, PyObject *py_list) eavec_t &eavec = *(eavec_t *) ud; ea_t ea = BADADDR; { -#ifdef PY3 if ( PyLong_Check(py_item.o) ) { unsigned long long ull = PyLong_AsUnsignedLongLong(py_item.o); - if ( ull == -1ULL && PyErr_Occurred() != NULL ) + if ( ull == -1ULL && PyErr_Occurred() != nullptr ) return CIP_FAILED; ea = ea_t(ull); } @@ -206,16 +211,6 @@ Py_ssize_t ida_export PyW_PyListToEaVec(eavec_t *out, PyObject *py_list) { return CIP_FAILED; } -#else - if ( PyInt_Check(py_item.o) ) - ea = PyInt_AsUnsignedLongMask(py_item.o); - else if ( PyLong_Check(py_item.o) ) - ea = ea_t(PyLong_AsUnsignedLongLong(py_item.o)); - else - return CIP_FAILED; - if ( PyErr_Occurred() != NULL ) - return CIP_FAILED; -#endif } eavec.push_back(ea); return CIP_OK; @@ -235,11 +230,10 @@ Py_ssize_t ida_export PyW_PyListToEa64Vec(ea64vec_t *out, PyObject *py_list) ea64vec_t &ea64vec = *(ea64vec_t *) ud; ea64_t v = 0; { -#ifdef PY3 if ( PyLong_Check(py_item.o) ) { unsigned long long ull = PyLong_AsUnsignedLongLong(py_item.o); - if ( ull == -1ULL && PyErr_Occurred() != NULL ) + if ( ull == -1ULL && PyErr_Occurred() != nullptr ) return CIP_FAILED; v = uint64(ull); } @@ -247,16 +241,6 @@ Py_ssize_t ida_export PyW_PyListToEa64Vec(ea64vec_t *out, PyObject *py_list) { return CIP_FAILED; } -#else - if ( PyInt_Check(py_item.o) ) - v = PyInt_AsUnsignedLongMask(py_item.o); - else if ( PyLong_Check(py_item.o) ) - v = uint64(PyLong_AsUnsignedLongLong(py_item.o)); - else - return CIP_FAILED; - if ( PyErr_Occurred() != NULL ) - return CIP_FAILED; -#endif } ea64vec.push_back(v); return CIP_OK; @@ -274,9 +258,9 @@ Py_ssize_t ida_export PyW_PyListToStrVec(qstrvec_t *out, PyObject *py_list) static int idaapi cvt(const ref_t &py_item, Py_ssize_t /*i*/, void *ud) { qstrvec_t &strvec = *(qstrvec_t *)ud; - if ( !IDAPyStr_Check(py_item.o) ) + if ( !PyUnicode_Check(py_item.o) ) return CIP_FAILED; - IDAPyStr_AsUTF8(&strvec.push_back(), py_item.o); + PyUnicode_as_qstring(&strvec.push_back(), py_item.o); return CIP_OK; } }; @@ -330,15 +314,31 @@ void ida_export PyW_unregister_compiled_form(PyObject *py_form) //------------------------------------------------------------------------- static void free_compiled_form_instances(void) { + int max_nloop = py_compiled_form_vec.size(); + max_nloop *= 10; // i'm feeling generous today + int cnt = 0; while ( !py_compiled_form_vec.empty() ) { - const ref_t &ref = py_compiled_form_vec[0]; + const ref_t &ref = py_compiled_form_vec.back(); qstring title; if ( !PyW_GetStringAttr(ref.o, "title", &title) ) title = "<unknown title>"; msg("WARNING: Form \"%s\" was not Free()d. Force-freeing.\n", title.c_str()); // Will call 'py_unregister_compiled_form()', and thus trim the vector down. - newref_t unused(PyObject_CallMethod(ref.o, (char *)"Free", "()")); + newref_t result(PyObject_CallMethod(ref.o, (char *)"Free", "()")); + if ( !result && PyErr_Occurred() != nullptr ) + { + msg("WARNING: Couldn't free form object at %p:\n", ref.o); + PyErr_Print(); + py_compiled_form_vec.del(ref); + } + if ( ++cnt >= max_nloop ) + { +#ifdef TESTABLE_BUILD + INTERR(30640); // too many iterations, probably we are looping endlessly +#endif + break; + } } } @@ -353,9 +353,9 @@ static int get_pyidc_cvt_type(PyObject *py_var) // Check if this our special by reference object ref_t attr(PyW_TryGetAttrString(py_var, S_PY_IDCCVT_ID_ATTR)); - if ( attr == NULL || !IDAPyIntOrLong_Check(attr.o) ) + if ( attr == nullptr || !PyLong_Check(attr.o) ) return -1; - return int(IDAPyIntOrLong_AsLong(attr.o)); + return int(PyLong_AsLong(attr.o)); } //------------------------------------------------------------------------- @@ -439,7 +439,7 @@ static const ext_idcfunc_t opaque_dtor_desc = S_PY_IDC_OPAQUE_T ".dtor_name", py_idc_opaque_dtor, py_idc_cvt_helper_dtor_args, - NULL, + nullptr, 0, 0 }; @@ -466,8 +466,8 @@ static int pyvar_to_idcvar2( return CIP_OK; } - // None / NULL - if ( py_var == NULL || py_var.o == Py_None ) + // None / nullptr + if ( py_var == nullptr || py_var.o == Py_None ) { idc_var->set_long(0); } @@ -477,28 +477,16 @@ static int pyvar_to_idcvar2( return CIP_OK; } // String -#ifdef PY3 else if ( PyBytes_Check(py_var.o) ) { idc_var->_set_string(PyBytes_AsString(py_var.o), PyBytes_Size(py_var.o)); } -#else - else if ( PyString_Check(py_var.o) ) - { - idc_var->_set_string(PyString_AsString(py_var.o), PyString_Size(py_var.o)); - } -#endif // Unicode else if ( PyUnicode_Check(py_var.o) ) { -#ifdef PY3 qstring utf8; - IDAPyStr_AsUTF8(&utf8, py_var.o); + PyUnicode_as_qstring(&utf8, py_var.o); idc_var->_set_string(utf8.c_str(), utf8.length()); -#else - newref_t utf8(PyUnicode_AsEncodedString(py_var.o, ENC_UTF8, "strict")); - return pyvar_to_idcvar1(utf8, idc_var, gvar_sn, visited); -#endif } // Boolean else if ( PyBool_Check(py_var.o) ) @@ -509,7 +497,7 @@ static int pyvar_to_idcvar2( else if ( PyFloat_Check(py_var.o) ) { double dresult = PyFloat_AsDouble(py_var.o); - ieee_realcvt((void *)&dresult, idc_var->e, 3); + ieee_realcvt((void *)&dresult, &idc_var->e, 3); idc_var->vtype = VT_FLOAT; } // void* @@ -545,11 +533,7 @@ static int pyvar_to_idcvar2( if ( ok ) { // Form the attribute name -#ifdef PY3 newref_t py_int(PyLong_FromSsize_t(i)); -#else - newref_t py_int(PyInt_FromSsize_t(i)); -#endif ok = PyW_ObjectToString(py_int.o, &attr_name); if ( !ok ) break; @@ -623,7 +607,7 @@ static int pyvar_to_idcvar2( { // Get the value attribute ref_t attr(PyW_TryGetAttrString(py_var.o, S_PY_IDCCVT_VALUE_ATTR)); - if ( attr == NULL ) + if ( attr == nullptr ) return false; idc_var->set_int64(PyLong_AsLongLong(attr.o)); return CIP_OK; @@ -634,12 +618,12 @@ static int pyvar_to_idcvar2( case PY_ICID_BYREF: { // BYREF always require this parameter - if ( gvar_sn == NULL ) + if ( gvar_sn == nullptr ) return CIP_FAILED; // Get the value attribute ref_t attr(PyW_TryGetAttrString(py_var.o, S_PY_IDCCVT_VALUE_ATTR)); - if ( attr == NULL ) + if ( attr == nullptr ) return CIP_FAILED; // Create a global variable @@ -671,21 +655,17 @@ static int pyvar_to_idcvar2( { newref_t py_dir(PyObject_Dir(py_var.o)); Py_ssize_t size = PyList_Size(py_dir.o); - if ( py_dir == NULL || !PyList_Check(py_dir.o) || size == 0 ) + if ( !py_dir || !PyList_Check(py_dir.o) || size == 0 ) return CIP_FAILED; // Create the IDC object idcv_object(idc_var); for ( Py_ssize_t i=0; i < size; i++ ) { borref_t item(PyList_GetItem(py_dir.o, i)); -#ifdef PY3 qstring field_name_buf; - IDAPyStr_AsUTF8(&field_name_buf, item.o); + PyUnicode_as_qstring(&field_name_buf, item.o); const char *field_name = field_name_buf.begin(); -#else - const char *field_name = PyString_AsString(item.o); -#endif - if ( field_name == NULL ) + if ( field_name == nullptr ) continue; size_t len = strlen(field_name); @@ -700,7 +680,7 @@ static int pyvar_to_idcvar2( idc_value_t v; newref_t attr(PyObject_GetAttrString(py_var.o, field_name)); - if ( attr == NULL ) + if ( !attr ) return CIP_FAILED; else if ( pyvar_to_idcvar1(attr, &v, gvar_sn, visited) < CIP_OK ) return CIP_FAILED; @@ -760,9 +740,9 @@ int ida_export idcvar_to_pyvar( switch ( idc_var.vtype ) { case VT_PVOID: - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { - newref_t nr(PyCapsule_New(idc_var.pvoid, VALID_CAPSULE_NAME, NULL)); + newref_t nr(PyCapsule_New(idc_var.pvoid, VALID_CAPSULE_NAME, nullptr)); *py_var = nr; } else @@ -776,14 +756,14 @@ int ida_export idcvar_to_pyvar( bool as_pylong = (flags & PYWCVTF_INT64_AS_UNSIGNED_PYLONG) != 0; if ( as_pylong ) { - QASSERT(30513, *py_var == NULL); // recycling not supported in this case + QASSERT(30513, *py_var == nullptr); // recycling not supported in this case *py_var = newref_t(PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) idc_var.i64)); return CIP_OK; } else { // Recycle? - if ( *py_var != NULL ) + if ( *py_var ) { // Recycling an int64 object? if ( !is_pyidc_cvt_type_int64(py_var->o) ) @@ -793,30 +773,30 @@ int ida_export idcvar_to_pyvar( return CIP_OK; } ref_t py_cls(get_idaapi_attr_by_id(PY_CLSID_CVT_INT64)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) return CIP_FAILED; - *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, PyLong_FromLongLong(idc_var.i64), NULL)); - if ( PyW_GetError() || *py_var == NULL ) + *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, PyLong_FromLongLong(idc_var.i64), nullptr)); + if ( PyW_GetError() || !*py_var ) return CIP_FAILED; } break; } case VT_STR: - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { const qstring &s = idc_var.qstr(); if ( (flags & PYWCVTF_STR_AS_BYTES) != 0 ) - *py_var = newref_t(IDAPyBytes_FromMemAndSize(s.begin(), s.length())); + *py_var = newref_t(PyBytes_FromStringAndSize(s.begin(), s.length())); else - *py_var = newref_t(IDAPyStr_FromUTF8AndSize(s.begin(), s.length())); + *py_var = newref_t(PyUnicode_FromStringAndSize(s.begin(), s.length())); break; } else return CIP_IMMUTABLE; // Cannot recycle immutable object case VT_LONG: // Cannot recycle immutable objects - if ( *py_var != NULL ) + if ( *py_var ) { // Recycling an int64 object? if ( !is_pyidc_cvt_type_int64(py_var->o) ) @@ -828,10 +808,10 @@ int ida_export idcvar_to_pyvar( *py_var = newref_t(cvt_to_pylong(idc_var.num)); break; case VT_FLOAT: - if ( *py_var == NULL ) + if ( !*py_var ) { double x; - if ( ph.realcvt(&x, (uint16 *)idc_var.e, (sizeof(x)/2-1)|010) != 1 ) + if ( processor_t::realcvt(&x, (fpvalue_t*)&idc_var.e, (sizeof(x)/2-1)|010) != 1 ) INTERR(30160); *py_var = newref_t(PyFloat_FromDouble(x)); @@ -842,15 +822,15 @@ int ida_export idcvar_to_pyvar( case VT_REF: { - if ( *py_var == NULL ) + if ( !*py_var ) { ref_t py_cls(get_idaapi_attr_by_id(PY_CLSID_CVT_BYREF)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) return CIP_FAILED; // Create a byref object with None value. We populate it later - *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, Py_None, NULL)); - if ( PyW_GetError() || *py_var == NULL ) + *py_var = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, Py_None, nullptr)); + if ( PyW_GetError() || !*py_var ) return CIP_FAILED; } int t = get_pyidc_cvt_type(py_var->o); @@ -860,12 +840,12 @@ int ida_export idcvar_to_pyvar( // Dereference // (Since we are not using VREF_COPY flag, we can safely const_cast) idc_value_t *dref_v = deref_idcv(const_cast<idc_value_t *>(&idc_var), VREF_LOOP); - if ( dref_v == NULL ) + if ( dref_v == nullptr ) return CIP_FAILED; // Can we recycle the object? ref_t new_py_val(PyW_TryGetAttrString(py_var->o, S_PY_IDCCVT_VALUE_ATTR)); - if ( new_py_val != NULL ) + if ( new_py_val != nullptr ) { // Recycle t = idcvar_to_pyvar(*dref_v, &new_py_val); @@ -903,16 +883,16 @@ int ida_export idcvar_to_pyvar( bool is_dict = false; // Need to create a new object? - if ( *py_var == NULL ) + if ( *py_var == nullptr ) { // Get skeleton class reference ref_t py_cls(get_idaapi_attr_by_id(PY_CLSID_APPCALL_SKEL_OBJ)); - if ( py_cls == NULL ) + if ( py_cls == nullptr ) return CIP_FAILED; // Call constructor - obj = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, NULL)); - if ( PyW_GetError() || obj == NULL ) + obj = newref_t(PyObject_CallFunctionObjArgs(py_cls.o, nullptr)); + if ( PyW_GetError() || !obj ) return CIP_FAILED; } else @@ -925,7 +905,7 @@ int ida_export idcvar_to_pyvar( // Walk the IDC attributes and store into python for ( const char *attr_name = first_idcv_attr(&idc_var); - attr_name != NULL; + attr_name != nullptr; attr_name = next_idcv_attr(&idc_var, attr_name) ) { // Get the attribute @@ -955,7 +935,7 @@ int ida_export idcvar_to_pyvar( //------------------------------------------------------------------------- // Converts IDC arguments to Python argument list or just one tuple -// If 'decref' is NULL then 'pargs' will contain one element which is the tuple +// If 'decref' is nullptr then 'pargs' will contain one element which is the tuple bool ida_export pyw_convert_idc_args( const idc_value_t args[], int nargs, @@ -973,9 +953,9 @@ bool ida_export pyw_convert_idc_args( if ( as_tuple ) { py_tuple = newref_t(PyTuple_New(nargs)); - if ( py_tuple == NULL ) + if ( py_tuple == nullptr ) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) *errbuf = "Failed to create a new tuple to store arguments!"; return false; } @@ -987,7 +967,7 @@ bool ida_export pyw_convert_idc_args( int cvt = idcvar_to_pyvar(args[i], &py_obj, flags); if ( cvt < CIP_OK ) { - if ( errbuf != NULL ) + if ( errbuf != nullptr ) errbuf->sprnt("arg#%d has wrong type %d", i, args[i].vtype); return false; } @@ -1019,6 +999,7 @@ static ref_t compat_idaapi_module; static bool pywraps_initialized = false; #define SWIG_RUNTIME_VERSION "4" +#define SWIG_RUNTIME_DATA "swig_runtime_data" SWIG_RUNTIME_VERSION //------------------------------------------------------------------------ // check if we have a file which is known to be executed automatically @@ -1036,7 +1017,7 @@ static bool pywraps_check_autoscripts(char *buf, size_t bufsize) static const char *const fns[] = { - "swig_runtime_data" SWIG_RUNTIME_VERSION, + SWIG_RUNTIME_DATA, "sitecustomize", "usercustomize" }; @@ -1083,7 +1064,7 @@ static error_t idaapi idc_py_invoke0( { PYW_GIL_GET; PyObject *pyfunc = (PyObject *) argv[0].pvoid; - newref_t py_result(PyObject_CallFunctionObjArgs(pyfunc, NULL)); + newref_t py_result(PyObject_CallFunctionObjArgs(pyfunc, nullptr)); // Report Python error as IDC exception qstring err; @@ -1095,7 +1076,7 @@ static error_t idaapi idc_py_invoke0( static const char idc_py_invoke0_args[] = { VT_PVOID, 0 }; static const ext_idcfunc_t idc_py_invoke0_desc = { - S_PYINVOKE0, idc_py_invoke0, idc_py_invoke0_args, NULL, 0, 0 + S_PYINVOKE0, idc_py_invoke0, idc_py_invoke0_args, nullptr, 0, 0 }; //------------------------------------------------------------------------ @@ -1107,11 +1088,11 @@ static bool init_pywraps() // Take a reference to the idaapi python module // (We need it to create instances of certain classes) - if ( ida_idaapi_module == NULL ) + if ( ida_idaapi_module == nullptr ) { // Take a reference to the module so we can create the needed class instances ida_idaapi_module = PyW_TryImportModule(S_PY_IDA_IDAAPI_MODNAME); - if ( ida_idaapi_module == NULL ) + if ( ida_idaapi_module == nullptr ) return false; } @@ -1120,11 +1101,11 @@ static bool init_pywraps() return false; // IDC opaque class not registered? - if ( get_py_idc_cvt_opaque() == NULL ) + if ( get_py_idc_cvt_opaque() == nullptr ) { // Add the class idc_class_t *idc_cvt_opaque = add_idc_class(S_PY_IDC_OPAQUE_T); - if ( idc_cvt_opaque == NULL ) + if ( idc_cvt_opaque == nullptr ) return false; // Register the dtor function @@ -1165,16 +1146,14 @@ ref_t ida_export create_linked_class_instance( void *lnk) { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_module(PyImport_ImportModule(modname)); ref_t result; - if ( py_module != NULL ) + if ( ref_t py_module = newref_t(PyImport_ImportModule(modname)) ) { - ref_t py_class = PyW_TryGetAttrString(py_module.o, clsname); - if ( py_class != NULL ) + if ( ref_t py_class = ref_t(PyW_TryGetAttrString(py_module.o, clsname)) ) { - newref_t py_lnk(PyCapsule_New(lnk, VALID_CAPSULE_NAME, NULL)); - ref_t py_obj = newref_t(PyObject_CallFunctionObjArgs(py_class.o, py_lnk.o, NULL)); - if ( !PyW_GetError() && py_obj != NULL ) + newref_t py_lnk(PyCapsule_New(lnk, VALID_CAPSULE_NAME, nullptr)); + ref_t py_obj = newref_t(PyObject_CallFunctionObjArgs(py_class.o, py_lnk.o, nullptr)); + if ( !PyW_GetError() && py_obj ) result = py_obj; } } @@ -1187,7 +1166,7 @@ ref_t ida_export create_linked_class_instance( // This function takes a reference to the idaapi module and keeps the reference static ref_t get_idaapi_attr_by_id(const int class_id) { - if ( class_id >= PY_CLSID_LAST || ida_idaapi_module == NULL ) + if ( class_id >= PY_CLSID_LAST || ida_idaapi_module == nullptr ) return ref_t(); // Some class names. The array is parallel with the PY_CLSID_xxx consts @@ -1206,7 +1185,7 @@ static ref_t get_idaapi_attr_by_id(const int class_id) static ref_t get_idaapi_attr(const char *attrname) { PYW_GIL_CHECK_LOCKED_SCOPE(); - return ida_idaapi_module == NULL + return ida_idaapi_module == nullptr ? ref_t() : PyW_TryGetAttrString(ida_idaapi_module.o, attrname); } @@ -1220,13 +1199,13 @@ bool ida_export PyW_GetStringAttr( { PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_attr(PyW_TryGetAttrString(py_obj, attr_name)); - if ( py_attr == NULL ) + if ( py_attr == nullptr ) return false; - return IDAPyStr_Check(py_attr.o) != 0 && IDAPyStr_AsUTF8(str, py_attr.o); + return PyUnicode_Check(py_attr.o) && PyUnicode_as_qstring(str, py_attr.o); } //------------------------------------------------------------------------ -// Returns an attribute or NULL +// Returns an attribute or nullptr // No errors will be set if the attribute did not exist ref_t ida_export PyW_TryGetAttrString(PyObject *py_obj, const char *attr) { @@ -1243,7 +1222,7 @@ ref_t ida_export PyW_TryImportModule(const char *name) { PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t result(PyImport_ImportModule(name)); - if ( result == NULL && PyErr_Occurred() ) + if ( !result && PyErr_Occurred() != nullptr ) PyErr_Clear(); return result; } @@ -1274,19 +1253,15 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) #define SETNUM(numexpr, is64_expr) \ do \ { \ - if ( num != NULL ) \ + if ( num != nullptr ) \ *num = numexpr; \ - if ( is_64 != NULL ) \ + if ( is_64 != nullptr ) \ *is_64 = is64_expr; \ } while ( false ) do { -#ifdef PY3 if ( !PyLong_CheckExact(py_var) ) -#else - if ( !(PyInt_CheckExact(py_var) || PyLong_CheckExact(py_var)) ) -#endif { rc = false; break; @@ -1295,12 +1270,8 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) constexpr bool is_long_64 = sizeof(long) > 4; // Can we convert to C long? -#ifdef PY3 long l = PyLong_AsLong(py_var); -#else - long l = PyInt_AsLong(py_var); -#endif - if ( !PyErr_Occurred() ) + if ( PyErr_Occurred() == nullptr ) { SETNUM(uint64(l), is_long_64); break; @@ -1311,7 +1282,7 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) // Can be fit into a C unsigned long? unsigned long ul = PyLong_AsUnsignedLong(py_var); - if ( !PyErr_Occurred() ) //-V547 '!PyErr_Occurred()' is always false + if ( PyErr_Occurred() == nullptr ) //-V547 'PyErr_Occurred() == nullptr' is always false { SETNUM(uint64(ul), is_long_64); break; @@ -1320,7 +1291,7 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) // Try to parse as int64 PY_LONG_LONG ll = PyLong_AsLongLong(py_var); - if ( !PyErr_Occurred() ) //-V547 '!PyErr_Occurred()' is always false + if ( PyErr_Occurred() == nullptr ) //-V547 'PyErr_Occurred() == nullptr' is always false { SETNUM(uint64(ll), true); break; @@ -1330,7 +1301,7 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) // Try to parse as uint64 unsigned PY_LONG_LONG ull = PyLong_AsUnsignedLongLong(py_var); PyObject *err = PyErr_Occurred(); - if ( err == NULL ) //-V547 'err == 0' is always false + if ( err == nullptr ) //-V547 'err == 0' is always false { SETNUM(uint64(ull), true); break; @@ -1341,11 +1312,11 @@ bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64) { newref_t py_mask(Py_BuildValue("K", 0xFFFFFFFFFFFFFFFFull)); newref_t py_num(PyNumber_And(py_var, py_mask.o)); - if ( py_num != NULL && py_mask != NULL ) + if ( py_num && py_mask ) { PyErr_Clear(); ull = PyLong_AsUnsignedLongLong(py_num.o); - if ( !PyErr_Occurred() ) //-V547 '!PyErr_Occurred()' is always false + if ( PyErr_Occurred() == nullptr ) //-V547 'PyErr_Occurred() == nullptr' is always false { SETNUM(uint64(ull), true); rc = true; @@ -1373,7 +1344,7 @@ bool ida_export PyW_IsSequenceType(PyObject *obj) } Py_ssize_t sz = PySequence_Size(obj); - if ( sz == -1 || PyErr_Occurred() != NULL ) + if ( sz == -1 || PyErr_Occurred() != nullptr ) { PyErr_Clear(); rc = false; @@ -1389,14 +1360,9 @@ bool ida_export PyW_ObjectToString(PyObject *obj, qstring *out) { PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_str(PyObject_Str(obj)); - bool ok = py_str != NULL; -#ifdef PY3 + bool ok = py_str; if ( ok ) - IDAPyStr_AsUTF8(out, py_str.o); -#else - if ( ok ) - *out = PyString_AsString(py_str.o); -#endif + PyUnicode_as_qstring(out, py_str.o); else out->qclear(); return ok; @@ -1409,10 +1375,10 @@ bool ida_export PyW_GetError(qstring *out, bool clear_err) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( PyErr_Occurred() == NULL ) + if ( PyErr_Occurred() == nullptr ) return false; - if ( out != NULL ) + if ( out != nullptr ) { // Get the exception info (this also clears the exception) PyObject *err_type, *err_value, *err_traceback; @@ -1421,22 +1387,22 @@ bool ida_export PyW_GetError(qstring *out, bool clear_err) // Try helper first ref_t py_ret; ref_t py_fmtexc(get_idaapi_attr(S_IDAAPI_FORMATEXC)); - if ( py_fmtexc != NULL ) + if ( py_fmtexc != nullptr ) { py_ret = newref_t(PyObject_CallFunctionObjArgs( py_fmtexc.o, err_type, err_value, err_traceback, - NULL)); + nullptr)); } // and fallback to simple stringification if needed - if ( py_ret == NULL ) + if ( !py_ret ) py_ret = newref_t(PyObject_Str(err_value)); - if ( py_ret != NULL ) - IDAPyStr_AsUTF8(out, py_ret.o); + if ( py_ret ) + PyUnicode_as_qstring(out, py_ret.o); else *out = "IDAPython: unknown error"; @@ -1482,9 +1448,9 @@ void *ida_export pyobj_get_clink(PyObject *pyobj) // Try to query the link attribute ref_t attr(PyW_TryGetAttrString(pyobj, S_CLINK_NAME)); - void *t = attr != NULL && PyCapsule_IsValid(attr.o, VALID_CAPSULE_NAME) + void *t = attr != nullptr && PyCapsule_IsValid(attr.o, VALID_CAPSULE_NAME) ? PyCapsule_GetPointer(attr.o, VALID_CAPSULE_NAME) - : NULL; + : nullptr; return t; } @@ -1493,7 +1459,7 @@ void *ida_export pyobj_get_clink(PyObject *pyobj) //------------------------------------------------------------------------- lookup_entry_t &ida_export lookup_info_t_new_entry(lookup_info_t *_this, py_customidamemo_t *py_view) { - QASSERT(30454, py_view != NULL && !_this->find_by_py_view(NULL, py_view)); + QASSERT(30454, py_view != nullptr && !_this->find_by_py_view(nullptr, py_view)); lookup_entry_t &e = _this->entries.push_back(); e.py_view = py_view; return e; @@ -1503,20 +1469,22 @@ lookup_entry_t &ida_export lookup_info_t_new_entry(lookup_info_t *_this, py_cust void ida_export lookup_info_t_commit(lookup_info_t *_this, lookup_entry_t &e, TWidget *view) { QASSERT(30455, &e >= _this->entries.begin() && &e < _this->entries.end()); - QASSERT(30456, view != NULL && e.py_view != NULL - && !_this->find_by_view(NULL, view) - && _this->find_by_py_view(NULL, e.py_view)); + QASSERT(30456, view != nullptr && e.py_view != nullptr + && !_this->find_by_view(nullptr, view) + && _this->find_by_py_view(nullptr, e.py_view)); e.view = view; } //------------------------------------------------------------------------- -#define FIND_BY__BODY(self, crit, res) \ - for ( lookup_entries_t::const_iterator it = self->entries.begin(); it != self->entries.end(); ++it ) \ +#define FIND_BY__BODY(self, crit, res) \ + for ( lookup_entries_t::const_iterator it = self->entries.begin(); \ + it != self->entries.end(); \ + ++it ) \ { \ const lookup_entry_t &e = *it; \ if ( e.crit == crit ) \ { \ - if ( out_##res != NULL ) \ + if ( out_##res != nullptr ) \ *out_##res = e.res; \ return true; \ } \ @@ -1556,9 +1524,6 @@ bool ida_export lookup_info_t_del_by_py_view( return false; } -//------------------------------------------------------------------------- -lookup_info_t pycim_lookup_info; - //------------------------------------------------------------------------- // py_customidamemo_t //------------------------------------------------------------------------- @@ -1577,22 +1542,22 @@ PyObject *ida_export py_customidamemo_t_create_groups( if ( !PyDict_Check(item.o) ) continue; borref_t nodes(PyDict_GetItemString(item.o, "nodes")); - if ( nodes.o == NULL || !PySequence_Check(nodes.o) ) + if ( !nodes || !PySequence_Check(nodes.o) ) continue; borref_t text(PyDict_GetItemString(item.o, "text")); - if ( text.o == NULL || !IDAPyStr_Check(text.o) ) + if ( !text || !PyUnicode_Check(text.o) ) continue; group_crinfo_t gi; Py_ssize_t nodes_cnt = PySequence_Size(nodes.o); for ( Py_ssize_t k = 0; k < nodes_cnt; ++k ) { newref_t node(PySequence_GetItem(nodes.o, k)); - if ( IDAPyInt_Check(node.o) ) - gi.nodes.add_unique(IDAPyInt_AsLong(node.o)); + if ( PyLong_Check(node.o) ) + gi.nodes.add_unique(PyLong_AsLong(node.o)); } if ( !gi.nodes.empty() ) { - IDAPyStr_AsUTF8(&gi.text, text.o); + PyUnicode_as_qstring(&gi.text, text.o); gis.push_back(gi); } } @@ -1602,7 +1567,7 @@ PyObject *ida_export py_customidamemo_t_create_groups( PyObject *py_groups = PyList_New(0); for ( intvec_t::const_iterator it = groups.begin(); it != groups.end(); ++it ) - PyList_Append(py_groups, IDAPyInt_FromLong(long(*it))); + PyList_Append(py_groups, PyLong_FromLong(long(*it))); return py_groups; } @@ -1613,9 +1578,9 @@ static void pynodes_to_idanodes(intvec_t *idanodes, ref_t pynodes) for ( Py_ssize_t i = 0; i < sz; ++i ) { newref_t item(PySequence_GetItem(pynodes.o, i)); - if ( !IDAPyInt_Check(item.o) ) + if ( !PyLong_Check(item.o) ) continue; - idanodes->add_unique(IDAPyInt_AsLong(item.o)); + idanodes->add_unique(PyLong_AsLong(item.o)); } } @@ -1633,7 +1598,7 @@ PyObject *ida_export py_customidamemo_t_delete_groups( pynodes_to_idanodes(&ida_groups, groups); if ( ida_groups.empty() ) Py_RETURN_NONE; - if ( viewer_delete_groups(_this->view, ida_groups, int(IDAPyInt_AsLong(new_current.o))) ) + if ( viewer_delete_groups(_this->view, ida_groups, int(PyLong_AsLong(new_current.o))) ) Py_RETURN_TRUE; else Py_RETURN_FALSE; @@ -1649,7 +1614,9 @@ PyObject *ida_export py_customidamemo_t_set_groups_visibility( if ( !PySequence_Check(_groups) || !PyBool_Check(_expand) || !PyNumber_Check(_new_current) ) + { Py_RETURN_NONE; + } borref_t groups(_groups); borref_t expand(_expand); borref_t new_current(_new_current); @@ -1657,11 +1624,7 @@ PyObject *ida_export py_customidamemo_t_set_groups_visibility( pynodes_to_idanodes(&ida_groups, groups); if ( ida_groups.empty() ) Py_RETURN_NONE; -#ifdef PY3 if ( viewer_set_groups_visibility(_this->view, ida_groups, expand.o == Py_True, int(PyLong_AsLong(new_current.o))) ) -#else - if ( viewer_set_groups_visibility(_this->view, ida_groups, expand.o == Py_True, int(PyInt_AsLong(new_current.o))) ) -#endif Py_RETURN_TRUE; else Py_RETURN_FALSE; @@ -1670,12 +1633,12 @@ PyObject *ida_export py_customidamemo_t_set_groups_visibility( //------------------------------------------------------------------------- bool ida_export py_customidamemo_t_bind(py_customidamemo_t *_this, PyObject *self, TWidget *view) { - if ( _this->self != NULL || _this->view != NULL ) + if ( _this->self != nullptr || _this->view != nullptr ) return false; PYGLOG("%p: py_customidamemo_t::bind(self=%p, view=%p)\n", _this, _this->self.o, _this->view); PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_cobj(PyCapsule_New(_this, VALID_CAPSULE_NAME, NULL)); + newref_t py_cobj(PyCapsule_New(_this, VALID_CAPSULE_NAME, nullptr)); PyObject_SetAttrString(self, S_M_THIS, py_cobj.o); _this->self = borref_t(self); @@ -1686,14 +1649,14 @@ bool ida_export py_customidamemo_t_bind(py_customidamemo_t *_this, PyObject *sel //------------------------------------------------------------------------- void ida_export py_customidamemo_t_unbind(py_customidamemo_t *_this, bool clear_view) { - if ( _this->self == NULL ) + if ( _this->self == nullptr ) return; PYGLOG("%p: py_customidamemo_t::unbind(); self.o=%p, view=%p\n", _this, _this->self.o, _this->view); PYW_GIL_CHECK_LOCKED_SCOPE(); PyObject_SetAttrString(_this->self.o, S_M_THIS, Py_None); - _this->self = newref_t(NULL); + _this->self = newref_t(nullptr); if ( clear_view ) - _this->view = NULL; + _this->view = nullptr; } //------------------------------------------------------------------------- @@ -1718,13 +1681,13 @@ bool ida_export py_customidamemo_t_collect_pyobject_callbacks( ref_t attr(PyW_TryGetAttrString(o, cbid.name.c_str())); int have = cbid.have; // Mandatory fields not present? - if ( (attr == NULL && have <= 0) + if ( (attr == nullptr && have <= 0) // Mandatory callback fields present but not callable? - || (attr != NULL && have >= 0 && PyCallable_Check(attr.o) == 0) ) + || (attr != nullptr && have >= 0 && PyCallable_Check(attr.o) == 0) ) { return false; } - if ( have > 0 && attr != NULL ) + if ( have > 0 && attr != nullptr ) _this->cb_flags |= have; } @@ -1783,14 +1746,14 @@ static void til_clear_python_tinfo_t_instances(void) } #define DEF_REG_UNREG_REFCOUNTED(Type) \ - void ida_export til_register_python_##Type##_instance(Type *inst) \ + void ida_export til_register_python_##Type##_instance(Type *inst) \ { \ /* Let's add_unique() it, because in the case of tinfo_t, every reference*/ \ /* to an object's tinfo_t property will end up trying to register it. */ \ py_##Type##_vec.add_unique(inst); \ } \ \ - void ida_export til_deregister_python_##Type##_instance(Type *inst) \ + void ida_export til_deregister_python_##Type##_instance(Type *inst) \ { \ qvector<Type*>::iterator found = py_##Type##_vec.find(inst); \ if ( found != py_##Type##_vec.end() ) \ @@ -1848,7 +1811,7 @@ ref_t ida_export try_create_swig_wrapper(ref_t mod, const char *clsname, void *c wname.sprnt("%s__from_ptrval__", clsname); ref_t res; ref_t py_cls_wrapper_inst(PyW_TryGetAttrString(mod.o, wname.c_str())); - if ( py_cls_wrapper_inst != NULL ) + if ( py_cls_wrapper_inst != nullptr ) { uninterruptible_op_t op; res = newref_t(PyObject_CallFunction(py_cls_wrapper_inst.o, "(K)", uint64(cobj))); @@ -1860,22 +1823,16 @@ ref_t ida_export try_create_swig_wrapper(ref_t mod, const char *clsname, void *c ssize_t ida_export get_callable_arg_count(ref_t callable) { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_module(PyImport_ImportModule("inspect")); ssize_t cnt = -1; - if ( py_module != NULL ) + if ( ref_t py_module = newref_t(PyImport_ImportModule("inspect")) ) { -#ifdef PY3 - ref_t py_fun = PyW_TryGetAttrString(py_module.o, "getfullargspec"); -#else - ref_t py_fun = PyW_TryGetAttrString(py_module.o, "getargspec"); -#endif - if ( py_fun != NULL ) + if ( ref_t py_fun = ref_t(PyW_TryGetAttrString(py_module.o, "getfullargspec")) ) { - newref_t py_tuple(PyObject_CallFunctionObjArgs(py_fun.o, callable.o, NULL)); - if ( py_tuple != NULL && PyTuple_Check(py_tuple.o) ) + newref_t py_tuple(PyObject_CallFunctionObjArgs(py_fun.o, callable.o, nullptr)); + if ( py_tuple && PyTuple_Check(py_tuple.o) ) { borref_t py_args(PyTuple_GetItem(py_tuple.o, 0)); - if ( py_args != NULL && PySequence_Check(py_args.o) ) + if ( py_args && PySequence_Check(py_args.o) ) cnt = PySequence_Length(py_args.o); } } @@ -1900,12 +1857,48 @@ struct hook_data_t hook_type_t type; hook_cb_t *cb; void *ud; - bool is_hooks_base; + bool is_hooks_base; // FIXME: what is the meaning of this field and where it is used? }; DECLARE_TYPE_AS_MOVABLE(hook_data_t); typedef qvector<hook_data_t> hook_data_vec_t; static hook_data_vec_t hook_data_vec; +//------------------------------------------------------------------------- +void ida_export idapython_register_hook( + hook_type_t hook_type, + hook_cb_t *cb, + void *user_data, + bool is_hooks_base) +{ + hook_data_t &hd = hook_data_vec.push_back(); + hd.type = hook_type; + hd.cb = cb; + hd.ud = user_data; + hd.is_hooks_base = is_hooks_base; +} + +//------------------------------------------------------------------------- +void ida_export idapython_unregister_hook( + hook_type_t hook_type, + hook_cb_t *cb, + void *user_data) +{ + bool found = false; + for ( size_t i = 0, n = hook_data_vec.size(); i < n; ++i ) + { + const hook_data_t &hd = hook_data_vec[i]; + if ( hd.type == hook_type && hd.cb == cb && hd.ud == user_data ) + { + hook_data_vec.erase(hook_data_vec.begin() + i); + found = true; + break; + } + } +#ifdef TESTABLE_BUILD + QASSERT(30510, found); +#endif // TESTABLE_BUILD +} + //------------------------------------------------------------------------- bool ida_export idapython_hook_to_notification_point( hook_type_t hook_type, @@ -1915,13 +1908,7 @@ bool ida_export idapython_hook_to_notification_point( { bool ok = hook_to_notification_point(hook_type, cb, user_data); if ( ok ) - { - hook_data_t &hd = hook_data_vec.push_back(); - hd.type = hook_type; - hd.cb = cb; - hd.ud = user_data; - hd.is_hooks_base = is_hooks_base; - } + idapython_register_hook(hook_type, cb, user_data, is_hooks_base); return ok; } @@ -1933,22 +1920,7 @@ bool ida_export idapython_unhook_from_notification_point( { bool ok = unhook_from_notification_point(hook_type, cb, user_data) > 0; if ( ok ) - { - bool found = false; - for ( size_t i = 0, n = hook_data_vec.size(); i < n; ++i ) - { - const hook_data_t &hd = hook_data_vec[i]; - if ( hd.type == hook_type && hd.cb == cb && hd.ud == user_data ) - { - hook_data_vec.erase(hook_data_vec.begin() + i); - found = true; - break; - } - } -#ifdef TESTABLE_BUILD - QASSERT(30510, found); -#endif // TESTABLE_BUILD - } + idapython_unregister_hook(hook_type, cb, user_data); return ok; } @@ -1959,7 +1931,7 @@ bool ida_export idapython_convert_cli_completions( int *out_match_end, ref_t py_res) { - bool ok = py_res != NULL + bool ok = py_res != nullptr && PyTuple_Check(py_res.o) && PyTuple_Size(py_res.o) == 3; if ( ok ) @@ -1967,15 +1939,15 @@ bool ida_export idapython_convert_cli_completions( borref_t i0(PyTuple_GetItem(py_res.o, 0)); borref_t i1(PyTuple_GetItem(py_res.o, 1)); borref_t i2(PyTuple_GetItem(py_res.o, 2)); - ok = PyList_Check(i0.o) && IDAPyInt_Check(i1.o) && IDAPyInt_Check(i2.o); + ok = PyList_Check(i0.o) && PyLong_Check(i1.o) && PyLong_Check(i2.o); if ( ok ) { ok = PyW_PyListToStrVec(out_completions, i0.o) > 0; if ( ok ) { - *out_match_start = IDAPyInt_AsLong(i1.o); - *out_match_end = IDAPyInt_AsLong(i2.o); - ok = PyErr_Occurred() == NULL; + *out_match_start = PyLong_AsLong(i1.o); + *out_match_end = PyLong_AsLong(i2.o); + ok = PyErr_Occurred() == nullptr; } else { diff --git a/pywraps.hpp b/pywraps.hpp index 2fa7498..9c5332f 100644 --- a/pywraps.hpp +++ b/pywraps.hpp @@ -12,16 +12,9 @@ #define PY_BV_ASIZE PY_BV_EA #define PY_BV_SEL PY_BV_EA #define PY_BV_SVAL "L" // Convert a C long long to a Python long integer object - -#ifdef PY3 -# define PY_BV_TYPE "y" -# define PY_BV_FIELDS "y" -# define PY_BV_BYTES "y" -#else -# define PY_BV_TYPE "s" -# define PY_BV_FIELDS "s" -# define PY_BV_BYTES "s" -#endif +#define PY_BV_TYPE "y" +#define PY_BV_FIELDS "y" +#define PY_BV_BYTES "y" typedef unsigned PY_LONG_LONG bvea_t; typedef Py_ssize_t bvsz_t; @@ -38,7 +31,7 @@ struct switch_info_t; // "A pointer can be explicitly converted to any integral type large // enough to hold it. The mapping function is implementation-defined." -// — C++03 +// - C++03 // => G++ (and probably MSVC) will typically first sign-extend the pointer. // // int bar(void *p) { return foo(uint64(p)); } @@ -83,6 +76,7 @@ static const char S_HOTKEY[] = "hotkey"; static const char S_EMBEDDED[] = "embedded"; static const char S_POPUP_NAMES[] = "popup_names"; static const char S_FLAGS[] = "flags"; +static const char S_FLAGS2[] = "flags2"; static const char S_VALUE_SIZE[] = "value_size"; static const char S_MAY_CREATE_AT[] = "may_create_at"; static const char S_CALC_ITEM_SIZE[] = "calc_item_size"; @@ -116,6 +110,11 @@ static const char S_ON_GET_ICON[] = "OnGetIcon"; static const char S_ON_GET_LINE_ATTR[] = "OnGetLineAttr"; static const char S_ON_GET_SIZE[] = "OnGetSize"; static const char S_ON_GETTEXT[] = "OnGetText"; +static const char S_ON_GET_EA[] = "OnGetEA"; +static const char S_ON_GET_DIRTREE[] = "OnGetDirTree"; +static const char S_ON_INDEX_TO_INODE[] = "OnIndexToInode"; +static const char S_ON_INDEX_TO_DIFFPOS[] = "OnIndexToDiffpos"; +static const char S_ON_LAZY_LOAD_DIR[] = "OnLazyLoadDir"; static const char S_ON_ACTIVATE[] = "OnActivate"; static const char S_ON_DEACTIVATE[] = "OnDeactivate"; static const char S_ON_SELECT[] = "OnSelect"; @@ -154,6 +153,59 @@ static const char S_PY_IDA_IDAAPI_MODNAME[] = S_IDA_IDAAPI_MODNAME; #define CIP_OK 1 // Success #define CIP_OK_OPAQUE 2 // Success, but the data pointed to by the PyObject* is an opaque object. +//------------------------------------------------------------------------- +inline bool PyUnicode_as_qstring(qstring *out, PyObject *obj) +{ + PyObject *utf8 = PyUnicode_AsUTF8String(obj); + bool ok = utf8 != nullptr; + if ( ok ) + { + char *buffer = nullptr; + Py_ssize_t length = 0; + ok = PyBytes_AsStringAndSize(utf8, &buffer, &length) >= 0; + if ( ok ) + { + out->qclear(); + out->append(buffer, length); + } + } + Py_XDECREF(utf8); + return ok; +} + +//------------------------------------------------------------------------- +inline PyObject *PyUnicode_from_qstring(const qstring &s) +{ + return PyUnicode_FromStringAndSize(s.c_str(), s.length()); +} + +//------------------------------------------------------------------------- +inline bool PyBytes_as_bytevec_t(bytevec_t *out, PyObject *obj) +{ + char *buffer = nullptr; + Py_ssize_t length = 0; + bool ok = PyBytes_AsStringAndSize(obj, &buffer, &length) >= 0; + if ( ok ) + { + out->qclear(); + out->append((const uchar *) buffer, length); + } + return ok; +} + +//------------------------------------------------------------------------- +inline bool PyBytes_as_qtype(qtype *out, PyObject *obj) +{ + bytevec_t bytes; + bool ok = PyBytes_as_bytevec_t(&bytes, obj); + if ( ok ) + { + out->qclear(); + out->append(bytes.begin(), bytes.size()); + } + return ok; +} + //--------------------------------------------------------------------------- class gil_lock_t { @@ -181,19 +233,12 @@ idaman uint32 ida_export_data debug; THREAD_SAFE AS_PRINTF(1, 2) inline int msg(const char *format, ...); #endif // __KERNWIN_HPP -#ifdef PY3 -# ifdef Py_LIMITED_API -# define GIL_CHKCONDFAIL (false) -# else -# define GIL_CHKCONDFAIL (((debug & IDA_DEBUG_PLUGIN) != 0) && !PyGILState_Check()) -# endif +#ifdef Py_LIMITED_API +# define GIL_CHKCONDFAIL (false) #else -# define GIL_CHKCONDFAIL (((debug & IDA_DEBUG_PLUGIN) != 0) \ - && PyGILState_GetThisThreadState() != _PyThreadState_Current) +# define GIL_CHKCONDFAIL (((debug & IDA_DEBUG_PLUGIN) != 0) && !PyGILState_Check()) #endif -#include "idapy.hpp" - #define PYW_GIL_CHECK_LOCKED_SCOPE() \ do \ { \ @@ -245,7 +290,7 @@ struct ref_t { PyObject *o; - ref_t() : o(NULL) {} + ref_t() : o(nullptr) {} ref_t(const ref_t &other) : o(other.o) { incref(); } ~ref_t() { decref(); } ref_t &operator=(const ref_t &other) @@ -269,21 +314,24 @@ struct ref_t PyObject *was = o; o = other.o; incref(); - if ( was != NULL ) + if ( was != nullptr ) Py_DECREF(was); return *this; } - void incref() const { if ( o != NULL ) Py_INCREF(o); } - void decref() const { if ( o != NULL ) { QASSERT(30469, o->ob_refcnt > 0); Py_DECREF(o); } } + void incref() const { if ( o != nullptr ) Py_INCREF(o); } + void decref() const { if ( o != nullptr ) { QASSERT(30469, o->ob_refcnt > 0); Py_DECREF(o); } } bool operator==(PyObject *other) const { return o == other; } bool operator!=(PyObject *other) const { return !((*this) == other); } bool operator==(const ref_t &other) const { return o == other.o; } bool operator!=(const ref_t &other) const { return !((*this) == other); } + operator bool() const { return o != nullptr; } }; +struct borref_t; + //------------------------------------------------------------------------- // A 'new' reference. Typically used when the CPython implementation returns // a PyObject* whose refcnt was already increased, and that the caller is @@ -301,13 +349,15 @@ struct ref_t // --- struct newref_t : public ref_t { - newref_t(); // No. - newref_t(const newref_t &other); // No. - newref_t &operator=(const newref_t &other); // No. + newref_t() = delete; + newref_t(const newref_t &other) = delete; + newref_t &operator=(const newref_t &other) = delete; + newref_t(const borref_t &other) = delete; + newref_t &operator=(const borref_t &other) = delete; newref_t(PyObject *_o) { #ifdef _DEBUG - QASSERT(30409, _o == NULL || _o->ob_refcnt >= 1); + QASSERT(30409, _o == nullptr || _o->ob_refcnt >= 1); #endif o = _o; } @@ -331,9 +381,11 @@ struct newref_t : public ref_t // --- struct borref_t : public ref_t { - borref_t(); // No. - borref_t(const newref_t &other); // No. - borref_t &operator=(const newref_t &other); // No. + borref_t() = delete; + borref_t(const newref_t &other) = delete; + borref_t &operator=(const newref_t &other) = delete; + borref_t(const borref_t &other) = delete; + borref_t &operator=(const borref_t &other) = delete; borref_t(PyObject *_o) { o = _o; @@ -363,11 +415,11 @@ GCC_DIAG_OFF(return-type-c-linkage); #endif -// Tries to import a module and swallows the exception if it fails and returns NULL +// Tries to import a module and swallows the exception if it fails and returns nullptr // Return value: New reference. idaman ref_t ida_export PyW_TryImportModule(const char *name); -// Tries to get an attribute and swallows the exception if it fails and returns NULL +// Tries to get an attribute and swallows the exception if it fails and returns nullptr idaman ref_t ida_export PyW_TryGetAttrString(PyObject *py_var, const char *attr); // Converts a Python number (LONGLONG or normal integer) to an IDC variable (VT_LONG or VT_INT64) @@ -380,13 +432,13 @@ idaman bool ida_export PyW_GetStringAttr( qstring *str); // Deprecated. Please use specific functions instead. -idaman bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64 = NULL); +idaman bool ida_export PyW_GetNumber(PyObject *py_var, uint64 *num, bool *is_64 = nullptr); // Checks if an Python object can be treated like a sequence idaman bool ida_export PyW_IsSequenceType(PyObject *obj); // Returns an error string from the last exception (and clears it) -idaman bool ida_export PyW_GetError(qstring *out = NULL, bool clear_err = true); +idaman bool ida_export PyW_GetError(qstring *out = nullptr, bool clear_err = true); // If an error occurred (it calls PyGetError) it displays it and return TRUE // This function is used when calling callbacks @@ -418,7 +470,7 @@ idaman bool ida_export pyw_convert_idc_args( int nargs, ref_vec_t &pargs, uint32 flags, - qstring *errbuf = NULL); + qstring *errbuf = nullptr); // Converts from IDC to Python // We support converting VT_REF IDC variable types @@ -433,18 +485,19 @@ idaman int ida_export idcvar_to_pyvar( idaman int ida_export pyvar_to_idcvar( const ref_t &py_var, idc_value_t *idc_var, - int *gvar_sn=NULL); + int *gvar_sn=nullptr); //------------------------------------------------------------------------- // Walks a Python list or Sequence and calls the callback idaman Py_ssize_t ida_export pyvar_walk_list( PyObject *py_list, - int (idaapi *cb)(const ref_t &py_item, Py_ssize_t index, void *ud)=NULL, - void *ud = NULL); + int (idaapi *cb)(const ref_t &py_item, Py_ssize_t index, void *ud)=nullptr, + void *ud = nullptr); // Converts a vector to a Python list object idaman ref_t ida_export PyW_SizeVecToPyList(const sizevec_t &vec); idaman ref_t ida_export PyW_UvalVecToPyList(const uvalvec_t &vec); +idaman ref_t ida_export PyW_StrVecToPyList(const qstrvec_t &vec); // Converts a Python list, to a vector of the given type. // An exception will be raised in case: @@ -496,12 +549,12 @@ struct pycall_res_t PyErr_Print(); } - inline bool success() const { return result.o != NULL; } + inline bool success() const { return result.o != nullptr; } newref_t result; private: - pycall_res_t(); // No. + pycall_res_t() = delete; }; #include <loader.hpp> @@ -513,7 +566,7 @@ class lookup_info_t; class py_customidamemo_t; struct lookup_entry_t { - lookup_entry_t() : view(NULL), py_view(NULL) {} + lookup_entry_t() : view(nullptr), py_view(nullptr) {} TWidget *view; py_customidamemo_t *py_view; @@ -585,8 +638,6 @@ private: #define plugin_export_data __attribute__((visibility("default"))) #endif -extern lookup_info_t plugin_export_data pycim_lookup_info; - //------------------------------------------------------------------------- struct pycim_callback_id_t { @@ -669,10 +720,10 @@ class py_customidamemo_t // View events that are bound with 'set_custom_viewer_handler()'. static void idaapi s_on_view_mouse_moved( - TWidget *cv, - int shift, - view_mouse_event_t *e, - void *ud); + TWidget *cv, + int shift, + view_mouse_event_t *e, + void *ud); DECL_CIM_HELPERS(friend); @@ -689,19 +740,8 @@ protected: friend TWidget *pycim_get_widget(PyObject *self); public: - py_customidamemo_t() - : cb_flags(0), - self(newref_t(NULL)), - view(NULL) - { - PYGLOG("%p: py_customidamemo_t()\n", this); - } - virtual ~py_customidamemo_t() - { - PYGLOG("%p: ~py_customidamemo_t()\n", this); - unbind(true); - pycim_lookup_info.del_by_py_view(this); - } + py_customidamemo_t(); + virtual ~py_customidamemo_t(); virtual void refresh() { @@ -723,8 +763,8 @@ inline void *view_extract_this(PyObject *self) { PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_this(PyW_TryGetAttrString(self, S_M_THIS)); - if ( py_this == NULL || !PyCapsule_IsValid(py_this.o, VALID_CAPSULE_NAME) ) - return NULL; + if ( py_this == nullptr || !PyCapsule_IsValid(py_this.o, VALID_CAPSULE_NAME) ) + return nullptr; return PyCapsule_GetPointer(py_this.o, VALID_CAPSULE_NAME); } @@ -746,7 +786,7 @@ DECL_REG_UNREG_REFCOUNTED(udt_type_data_t); // Context structure used by register/unregister timer struct py_timer_ctx_t { - py_timer_ctx_t() : timer_id(NULL) {} + py_timer_ctx_t() : timer_id(nullptr) {} qtimer_t timer_id; ref_t pyfunc; }; @@ -783,7 +823,290 @@ struct new_execution_t }; //------------------------------------------------------------------------- -idaman bool ida_export is_api695_compat_enabled(); +enum run_script_when_t +{ + RSW_UNKNOWN = 0, + RSW_ui_database_inited, // run script after opening database (default) + RSW_ui_ready_to_run, // run script when UI is ready + RSW_on_init, // run script immediately on plugin load (shortly after IDA starts) +}; + +//------------------------------------------------------------------------- +struct idapython_plugin_config_t +{ + struct run_script_t + { + qstring path; + run_script_when_t when; + run_script_t() : when(RSW_UNKNOWN) {} + }; + run_script_t run_script; + uint32 execution_timeout = 0; + bool alert_auto_scripts = true; + bool remove_cwd_sys_path = false; + bool autoimport_compat_idaapi = true; + bool namespace_aware = true; + bool repl_use_sys_displayhook = true; + bool idausr_syspath = true; +}; + +//------------------------------------------------------------------------- +struct idapython_plugin_t : public plugmod_t, public event_listener_t +{ + idapython_plugin_config_t config; + lookup_info_t pycim_lookup_info; + qstring idapython_dir; + qstring requested_plugin_path; +#ifdef __MAC__ + qvector<wchar_t> pyhomepath; +#endif + bool initialized; + bool ui_ready; +#ifdef TESTABLE_BUILD + int user_code_lenient; +#endif + + idapython_plugin_t(); + ~idapython_plugin_t(); + + bool init(); + void parse_plugin_options(); + ref_t get_sys_displayhook(); +#ifdef TESTABLE_BUILD + bool is_user_code_lenient(); +#endif + + virtual bool idaapi run(size_t arg) override; + virtual ssize_t idaapi on_event(ssize_t code, va_list va) override; + + static ssize_t idaapi on_idb_notification(void *, int code, va_list va); + + static idapython_plugin_t *get_instance() { return instance; } + + static bool idaapi extlang_compile_file( + const char *path, + qstring *errbuf) + { + return get_instance()->_extlang_compile_file(path, errbuf); + } + + static bool idaapi extlang_compile_expr( + const char *name, + ea_t current_ea, + const char *expr, + qstring *errbuf) + { + return get_instance()->_extlang_compile_expr(name, current_ea, expr, errbuf); + } + + static bool idaapi extlang_eval_expr( + idc_value_t *rv, + ea_t current_ea, + const char *expr, + qstring *errbuf) + { + return get_instance()->_extlang_eval_expr(rv, current_ea, expr, errbuf); + } + + static bool idaapi extlang_load_procmod( + idc_value_t *procobj, + const char *path, + qstring *errbuf) + { + return get_instance()->_extlang_load_procmod(procobj, path, errbuf); + } + + static bool idaapi extlang_unload_procmod( + const char *path, + qstring *errbuf) + { + return get_instance()->_extlang_unload_procmod(path, errbuf); + } + + static bool idaapi extlang_create_object( + idc_value_t *result, + const char *name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf) + { + return get_instance()->_extlang_create_object(result, name, args, nargs, errbuf); + } + + static bool idaapi extlang_eval_snippet( + const char *str, + qstring *errbuf) + { + return get_instance()->_extlang_eval_snippet(str, errbuf); + } + + static bool idaapi extlang_call_func( + idc_value_t *result, + const char *name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf) + { + return get_instance()->_extlang_call_func(result, name, args, nargs, errbuf); + } + + static bool idaapi extlang_call_method( + idc_value_t *result, + const idc_value_t *idc_obj, + const char *method_name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf) + { + return get_instance()->_extlang_call_method(result, idc_obj, method_name, args, nargs, errbuf); + } + + static bool idaapi extlang_get_attr( + idc_value_t *result, + const idc_value_t *obj, + const char *attr) + { + return get_instance()->_extlang_get_attr(result, obj, attr); + } + + static bool idaapi extlang_set_attr( + idc_value_t *obj, + const char *attr, + const idc_value_t &value) + { + return get_instance()->_extlang_set_attr(obj, attr, value); + } + + static bool idaapi cli_execute_line( + const char *line) + { + return get_instance()->_cli_execute_line(line); + } + + static bool idaapi cli_find_completions( + qstrvec_t *out_completions, + int *out_match_start, + int *out_match_end, + const char *line, + int x) + { + return get_instance()->_cli_find_completions(out_completions, out_match_start, out_match_end, line, x); + } + +private: + bool _extlang_compile_file( + const char *path, + qstring *errbuf); + bool _extlang_compile_expr( + const char *name, + ea_t current_ea, + const char *expr, + qstring *errbuf); + bool _extlang_eval_expr( + idc_value_t *rv, + ea_t current_ea, + const char *expr, + qstring *errbuf); + bool _extlang_load_procmod( + idc_value_t *procobj, + const char *path, + qstring *errbuf); + bool _extlang_unload_procmod( + const char *path, + qstring *errbuf); + bool _extlang_create_object( + idc_value_t *result, + const char *name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf); + bool _extlang_eval_snippet( + const char *str, + qstring *errbuf); + bool _extlang_call_func( + idc_value_t *result, + const char *name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf); + bool _extlang_call_method( + idc_value_t *result, + const idc_value_t *idc_obj, + const char *method_name, + const idc_value_t args[], + size_t nargs, + qstring *errbuf); + bool _extlang_get_attr( + idc_value_t *result, + const idc_value_t *obj, + const char *attr); + bool _extlang_set_attr( + idc_value_t *obj, + const char *attr, + const idc_value_t &value); + + bool _cli_execute_line( + const char *line); + bool _cli_find_completions( + qstrvec_t *out_completions, + int *out_match_start, + int *out_match_end, + const char *line, + int x); + + bool _handle_file( + const char *path, + PyObject *globals, + qstring *errbuf, + const char *idaapi_executor_func_name = S_IDAAPI_EXECSCRIPT, + idc_value_t *second_res = nullptr, + bool want_tuple = false); + + bool _run_user_script(); + + bool _check_python_dir(); + void _prepare_sys_path(); + bool _run_init_py(); + + PyObject *_get_module_globals(const char *modname=nullptr); + PyObject *_get_module_globals_from_path_with_kind( + const char *path, + const char *kind); + PyObject *_get_module_globals_from_path( + const char *path); + + static idapython_plugin_t *instance; +}; + +idaman idapython_plugin_t *ida_export get_plugin_instance(); + +//------------------------------------------------------------------------- +py_customidamemo_t::py_customidamemo_t() + : cb_flags(0), + self(newref_t(nullptr)), + view(nullptr) +{ + PYGLOG("%p: py_customidamemo_t()\n", this); +} + +//------------------------------------------------------------------------- +py_customidamemo_t::~py_customidamemo_t() +{ + PYGLOG("%p: ~py_customidamemo_t()\n", this); + unbind(true); + get_plugin_instance()->pycim_lookup_info.del_by_py_view(this); +} + +//------------------------------------------------------------------------- +idaman void ida_export idapython_register_hook( + hook_type_t hook_type, + hook_cb_t *cb, + void *user_data, + bool is_hooks_base); +idaman void ida_export idapython_unregister_hook( + hook_type_t hook_type, + hook_cb_t *cb, + void *user_data); //------------------------------------------------------------------------- idaman bool ida_export idapython_hook_to_notification_point( @@ -803,16 +1126,52 @@ idaman bool ida_export idapython_unhook_from_notification_point( #define HBF_VOLATILE_METHOD_SET 0x00000002 struct hooks_base_t { + struct idapython_listener_t : public event_listener_t + { + hook_cb_t *cb; + void *ud; + idapython_listener_t(hook_cb_t *_cb, void *_ud) : cb(_cb), ud(_ud) {} + virtual ssize_t idaapi on_event(ssize_t code, va_list va) override + { + return cb(ud, code, va); + } + }; + const char *class_name; qstring identifier; - hook_cb_t *cb; + idapython_listener_t listener; hook_type_t type; uint32 flags; + uint32 hkcb_flags; typedef std::map<int,uchar> has_nondef_map_t; has_nondef_map_t has_nondef; + bool hook_added = false; - bool hook() { return cb != NULL ? idapython_hook_to_notification_point(type, cb, this, true) : false; } - bool unhook() { return cb != NULL ? idapython_unhook_from_notification_point(type, cb, this) : false; } + bool hook() + { + if ( !hook_added + && listener.cb != nullptr + && hook_event_listener(type, &listener, nullptr /*owner*/, hkcb_flags) ) + { + idapython_register_hook(type, listener.cb, this, true); + hook_added = true; + } + return hook_added; + } + bool unhook() + { + if ( hook_added && listener.cb != nullptr ) + { + // there is no need to check the return result of unhook_event_listener, + // if HKCB_GLOBAL flag is not used + // the LISTENER will be freed earlier + // than this method will be called. + unhook_event_listener(type, &listener); + idapython_unregister_hook(type, listener.cb, this); + hook_added = false; + } + return !hook_added; + } bool call_requires_new_execution() const { return (flags & HBF_CALL_WITH_NEW_EXEC) != 0; } bool has_fixed_method_set() const { return (flags & HBF_VOLATILE_METHOD_SET) == 0; } @@ -821,11 +1180,13 @@ struct hooks_base_t const char *_class_name, hook_cb_t *_cb, hook_type_t _type, - uint32 _flags=0) + uint32 _flags, + uint32 _hkcb_flags) : class_name(_class_name), - cb(_cb), + listener(_cb, this), type(_type), - flags(_flags) {} + flags(_flags), + hkcb_flags(_hkcb_flags) {} virtual ~hooks_base_t() { unhook(); } @@ -837,19 +1198,19 @@ struct hooks_base_t protected: void init_director_hooks( - PyObject *self, - const event_code_to_method_name_t *mappings, - size_t count) + PyObject *self, + const event_code_to_method_name_t *mappings, + size_t count) { // identifier { ref_t py_id; if ( PyObject_HasAttrString(self, "id") ) py_id = newref_t(PyObject_GetAttrString(self, "id")); - if ( py_id == NULL || !IDAPyStr_Check(py_id.o) ) + if ( !py_id || !PyUnicode_Check(py_id.o) ) py_id = newref_t(PyObject_Repr(self)); - if ( py_id != NULL && IDAPyStr_Check(py_id.o) ) - IDAPyStr_AsUTF8(&identifier, py_id.o); + if ( py_id && PyUnicode_Check(py_id.o) ) + PyUnicode_as_qstring(&identifier, py_id.o); } // method set @@ -857,20 +1218,20 @@ protected: qstring buf(class_name); QASSERT(30589, !buf.empty()); char *p = qstrchr(buf.begin(), '.'); - QASSERT(30590, p != NULL); + QASSERT(30590, p != nullptr); *p++ = '\0'; newref_t py_mod(PyImport_ImportModule(buf.c_str())); #ifdef TESTABLE_BUILD - QASSERT(30591, py_mod != NULL); + QASSERT(30591, py_mod); #endif - if ( py_mod != NULL ) + if ( py_mod ) { newref_t py_def_class(PyObject_GetAttrString(py_mod.o, p)); newref_t py_this_class(PyObject_GetAttrString(self, "__class__")); #ifdef TESTABLE_BUILD - QASSERT(30592, py_def_class != NULL && py_this_class != NULL); + QASSERT(30592, py_def_class && py_this_class); #endif - if ( py_def_class != NULL && py_this_class != NULL ) + if ( py_def_class && py_this_class ) { for ( size_t i = 0; i < count; ++i ) { @@ -879,20 +1240,14 @@ protected: newref_t py_def_meth(PyObject_GetAttrString(py_def_class.o, cur.method_name)); newref_t py_this_meth(PyObject_GetAttrString(py_this_class.o, cur.method_name)); #ifdef TESTABLE_BUILD - QASSERT(30593, py_def_meth != NULL && py_this_meth != NULL); + QASSERT(30593, py_def_meth && py_this_meth); #endif - if ( py_def_meth != NULL && py_this_meth != NULL ) + if ( py_def_meth && py_this_meth ) { -#ifdef BC695 - if ( PyObject_HasAttrString(py_def_meth.o, "bc695_trampoline") > 0 ) + if ( PyObject_HasAttrString(py_def_meth.o, "__trampoline") > 0 ) _has_nondef = 2; else -#endif -#ifdef PY3 _has_nondef = PyObject_RichCompareBool(py_this_meth.o, py_def_meth.o, Py_EQ) == 0 ? 1 : 0; -#else - _has_nondef = PyObject_Compare(py_this_meth.o, py_def_meth.o) != 0 ? 1 : 0; -#endif } has_nondef[cur.code] = _has_nondef; } @@ -900,34 +1255,33 @@ protected: } } - void ensure_no_method_when_no_695_compat( - PyObject *self, - const char *forbidden_method_name, - const char *replacement_method_name) + void ensure_no_method( + PyObject *self, + const char *forbidden_method_name, + const char *replacement_method_name) { - if ( !is_api695_compat_enabled() ) + if ( PyObject_HasAttrString(self, "__class__") ) { - if ( PyObject_HasAttrString(self, "__class__") ) + newref_t py_this_class(PyObject_GetAttrString(self, "__class__")); + if ( py_this_class + && PyObject_HasAttrString(py_this_class.o, forbidden_method_name) ) { - newref_t py_this_class(PyObject_GetAttrString(self, "__class__")); - if ( py_this_class != NULL - && PyObject_HasAttrString(py_this_class.o, forbidden_method_name) ) - { - msg("WARNING: The method \"%s::%s\" won't be called (it has been replaced with \"%s::%s\")\n", - class_name, forbidden_method_name, class_name, replacement_method_name); - } + msg("WARNING: The method \"%s::%s\" won't be called (it has been replaced with \"%s::%s\")\n", + class_name, forbidden_method_name, class_name, replacement_method_name); } } } - qstring dump_state( + PyObject *dump_state( const event_code_to_method_name_t *mappings, - size_t mappings_size) const + size_t mappings_size, + bool assert_all_reimplemented) const { qstring buf; #ifdef TESTABLE_BUILD + qstrvec_t missing_reimpls; buf.sprnt("%s(this=%p) \"%s\" {type=%d, cb=%p, flags=%x}", - class_name, this, identifier.c_str(), int(type), cb, flags); + class_name, this, identifier.c_str(), int(type), listener.cb, flags); if ( has_fixed_method_set() ) { for ( size_t i = 0; i < mappings_size; ++i ) @@ -935,9 +1289,35 @@ protected: const hooks_base_t::event_code_to_method_name_t &m = mappings[i]; has_nondef_map_t::const_iterator it = has_nondef.find(m.code); if ( it != has_nondef.end() && it->second > 0 ) - buf.cat_sprnt("\n\treimplements \"%s\"%s", - m.method_name, - it->second > 1 ? " (as 6.95 bw-compat)" : ""); + { + const char *how = ""; + if ( it->second == 2 ) + how = " (as compat trampoline)"; + else if ( it->second == 3 ) + how = " (as 6.95 bw-compat)"; + buf.cat_sprnt("\n\treimplements \"%s\"%s", m.method_name, how); + } + else + { + missing_reimpls.push_back(m.method_name); + } + } + const size_t nmr = missing_reimpls.size(); + if ( assert_all_reimplemented && nmr > 0 ) + { + qstring ebuf; + for ( size_t i = 0; i < nmr; ++i ) + { + if ( !ebuf.empty() ) + ebuf.append(", ", 2); + ebuf.append(missing_reimpls[i]); + } + PyErr_Format(PyExc_NotImplementedError, + "%s(this=%p) \"%s\" {type=%d, cb=%p, flags=%x} is " + "missing reimplementations for: \"%s\"", + class_name, this, identifier.c_str(), int(type), listener.cb, + flags, ebuf.c_str()); + return nullptr; } } else @@ -950,8 +1330,9 @@ protected: #else qnotused(mappings); qnotused(mappings_size); + qnotused(assert_all_reimplemented); #endif - return buf; + return PyUnicode_from_qstring(buf); } }; diff --git a/pywraps/py_auto.py b/pywraps/py_auto.py deleted file mode 100644 index 5996d14..0000000 --- a/pywraps/py_auto.py +++ /dev/null @@ -1,14 +0,0 @@ - -#<pycode_BC695(py_auto)> -analyze_area = plan_and_wait -autoCancel = auto_cancel -autoIsOk = auto_is_ok -autoMark = auto_mark -autoUnmark = auto_unmark -autoWait = auto_wait - -noUsed = plan_ea -setStat = set_ida_state -showAddr = show_addr -showAuto = show_auto -#</pycode_BC695(py_auto)> diff --git a/pywraps/py_bytes.hpp b/pywraps/py_bytes.hpp index 103c095..269b218 100644 --- a/pywraps/py_bytes.hpp +++ b/pywraps/py_bytes.hpp @@ -2,25 +2,6 @@ #define __PY_IDA_BYTES__ //<code(py_bytes)> -//------------------------------------------------------------------------ -static bool idaapi py_testf_cb(flags_t flags, void *ud) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_flags(PyLong_FromUnsignedLong(flags)); - newref_t result(PyObject_CallFunctionObjArgs((PyObject *) ud, py_flags.o, NULL)); - return result != NULL && PyObject_IsTrue(result.o); -} - -//------------------------------------------------------------------------ -// Wraps the (next|prev)that() -static ea_t py_npthat(ea_t ea, ea_t bound, PyObject *py_callable, bool next) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !PyCallable_Check(py_callable) ) - return BADADDR; - else - return (next ? next_that : prev_that)(ea, bound, py_testf_cb, py_callable); -} //--------------------------------------------------------------------------- static int idaapi py_visit_patched_bytes_cb( @@ -40,7 +21,7 @@ static int idaapi py_visit_patched_bytes_cb( o, v)); PyW_ShowCbErr("visit_patched_bytes"); - return (py_result != NULL && IDAPyInt_Check(py_result.o)) ? IDAPyInt_AsLong(py_result.o) : 0; + return (py_result && PyLong_Check(py_result.o)) ? PyLong_AsLong(py_result.o) : 0; } //------------------------------------------------------------------------- @@ -63,7 +44,7 @@ static bool py_do_get_bytes( int gmb_flags) { PYW_GIL_CHECK_LOCKED_SCOPE(); - bool has_mask = out_py_mask != NULL; + bool has_mask = out_py_mask != nullptr; do { if ( size <= 0 ) @@ -71,8 +52,8 @@ static bool py_do_get_bytes( // Allocate memory via Python - newref_t py_bytes(IDAPyBytes_FromMemAndSize(NULL, Py_ssize_t(size))); - if ( py_bytes == NULL ) + newref_t py_bytes(PyBytes_FromStringAndSize(nullptr, Py_ssize_t(size))); + if ( !py_bytes ) break; bytevec_t mask; @@ -80,21 +61,21 @@ static bool py_do_get_bytes( mask.resize((size + 7) / 8, 0); // Read bytes - int code = get_bytes(IDAPyBytes_AsString(py_bytes.o), + int code = get_bytes(PyBytes_AsString(py_bytes.o), size, ea, gmb_flags, - has_mask ? mask.begin() : NULL); + has_mask ? mask.begin() : nullptr); if ( code < 0 ) break; // note: specify size, as '0' bytes would otherwise cut the mask short if ( has_mask ) { - newref_t py_mask(IDAPyBytes_FromMemAndSize( + newref_t py_mask(PyBytes_FromStringAndSize( (const char *) mask.begin(), mask.size())); - if ( py_mask == NULL ) + if ( !py_mask ) break; py_mask.incref(); *out_py_mask = py_mask.o; @@ -140,33 +121,6 @@ static int py_visit_patched_bytes(ea_t ea1, ea_t ea2, PyObject *py_callable) return visit_patched_bytes(ea1, ea2, py_visit_patched_bytes_cb, py_callable); } -//------------------------------------------------------------------------ -/* -#<pydoc> -def next_that(ea, maxea, callable): - """ - Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. - - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. - @return: the found address or BADADDR. - """ - pass -#</pydoc> -*/ -static ea_t py_next_that(ea_t ea, ea_t maxea, PyObject *callable) -{ - return py_npthat(ea, maxea, callable, true); -} - -//--------------------------------------------------------------------------- -static ea_t py_prev_that(ea_t ea, ea_t minea, PyObject *callable) -{ - return py_npthat(ea, minea, callable, false); -} - //------------------------------------------------------------------------ /* #<pydoc> @@ -182,8 +136,8 @@ def get_bytes(ea, size): */ static PyObject *py_get_bytes(ea_t ea, unsigned int size, int gmb_flags=GMB_READALL) { - PyObject *py_bytes = NULL; - if ( py_do_get_bytes(&py_bytes, NULL, ea, size, gmb_flags) ) + PyObject *py_bytes = nullptr; + if ( py_do_get_bytes(&py_bytes, nullptr, ea, size, gmb_flags) ) return py_bytes; else Py_RETURN_NONE; @@ -206,8 +160,8 @@ def get_bytes_and_mask(ea, size, mask): */ static PyObject *py_get_bytes_and_mask(ea_t ea, unsigned int size, int gmb_flags=GMB_READALL) { - PyObject *py_bytes = NULL; - PyObject *py_mask = NULL; + PyObject *py_bytes = nullptr; + PyObject *py_mask = nullptr; if ( py_do_get_bytes(&py_bytes, &py_mask, ea, size, gmb_flags) ) return Py_BuildValue("(OO)", py_bytes, py_mask); else @@ -222,14 +176,12 @@ STRCONV_ESCAPE = 0x00000001 # convert non-printable characters to C escapes (\ def get_strlit_contents(ea, len, type, flags = 0): """ - Get bytes contents at location, possibly converted. + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string @param len: length of the string in bytes (including terminating 0) @@ -254,14 +206,14 @@ static PyObject *py_get_strlit_contents( len = uint64(-1); qstring buf; if ( len != uint64(-1) && ea_t(ea + len) < ea - || get_strlit_contents(&buf, ea, len, type, NULL, flags) < 0 ) + || get_strlit_contents(&buf, ea, len, type, nullptr, flags) < 0 ) { Py_RETURN_NONE; } if ( type == STRTYPE_C && buf.length() > 0 && buf.last() == '\0' ) buf.remove_last(); PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_buf(IDAPyBytes_FromMemAndSize(buf.begin(), buf.length())); + newref_t py_buf(PyBytes_FromStringAndSize(buf.begin(), buf.length())); py_buf.incref(); return py_buf.o; } @@ -285,13 +237,13 @@ static ea_t py_bin_search( const size_t len = image.size(); const uchar *mask = imask.begin(); bytevec_t lmask; - if ( mask != NULL ) + if ( mask != nullptr ) { if ( *mask == 0xFF ) { // a value of '0xFF' in the first byte meant "all bytes defined". We - // can thus turn that into a NULL mask. - mask = NULL; + // can thus turn that into a nullptr mask. + mask = nullptr; } else { @@ -328,6 +280,24 @@ static PyObject *py_get_8bit(ea_t ea, uint32 v, int nbit) uchar octet = get_8bit(&ea, &v, &nbit); return Py_BuildValue("(i" PY_BV_EA "ki)", int(uint32(octet)), bvea_t(ea), v, nbit); } + +//------------------------------------------------------------------------- +/* +#<pydoc> +def bin_search(start_ea, end_ea, data, flags): + """ + Search for a set of bytes in the program + + @param start_ea: linear address, start of range to search + @param end_ea: linear address, end of range to search (exclusive) + @param data: the prepared data to search for (see parse_binpat_str()) + @param flags: combination of BIN_SEARCH_* flags + @return: the address of a match, or ida_idaapi.BADADDR if not found + """ + pass +#</pydoc> +*/ + //</inline(py_bytes)> #endif diff --git a/pywraps/py_bytes.py b/pywraps/py_bytes.py deleted file mode 100644 index 5344a06..0000000 --- a/pywraps/py_bytes.py +++ /dev/null @@ -1,230 +0,0 @@ - -#<pycode(py_bytes)> -#</pycode(py_bytes)> - - -#<pycode_BC695(py_bytes)> -ACFOPT_ASCII=0 -ACFOPT_CONVMASK=0 -ACFOPT_ESCAPE=STRCONV_ESCAPE -ACFOPT_UTF16=0 -ACFOPT_UTF8=0 -DOUNK_DELNAMES=DELIT_DELNAMES -DOUNK_EXPAND=DELIT_EXPAND -DOUNK_NOTRUNC=DELIT_NOTRUNC -DOUNK_SIMPLE=DELIT_SIMPLE -FF_ASCI=FF_STRLIT -FF_DWRD=FF_DWORD -FF_OWRD=FF_OWORD -FF_QWRD=FF_QWORD -FF_STRU=FF_STRUCT -FF_TBYT=FF_TBYTE -FF_VAR=0 -FF_YWRD=FF_YWORD -FF_ZWRD=FF_ZWORD -GFE_NOVALUE=0 -add_hidden_area=add_hidden_range -asciflag=strlit_flag -delValue=del_value -del_hidden_area=del_hidden_range -do16bit=create_16bit_data -do32bit=create_32bit_data -doAlign=create_align -doByte=create_byte -doCustomData=create_custdata -doDouble=create_double -doDwrd=create_dword -doExtra=ida_idaapi._BC695.false_p -doFloat=create_float -doImmd=set_immd -doOwrd=create_oword -doPackReal=create_packed_real -doQwrd=create_qword -doStruct=create_struct -doTbyt=create_tbyte -doWord=create_word -doYwrd=create_yword -doZwrd=create_zword -do_data_ex=create_data -do_unknown=del_items -def do_unknown_range(ea, size, flags): - return del_items(ea, flags, size) # swap 2 last args -dwrdflag=dword_flag -f_hasRef=f_has_xref -f_isASCII=f_is_strlit -f_isAlign=f_is_align -f_isByte=f_is_byte -f_isCode=f_is_code -f_isCustom=f_is_custom -f_isData=f_is_data -f_isDouble=f_is_double -f_isDwrd=f_is_dword -f_isFloat=f_is_float -f_isHead=f_is_head -f_isNotTail=f_is_not_tail -f_isOwrd=f_is_oword -f_isPackReal=f_is_pack_real -f_isQwrd=f_is_qword -f_isStruct=f_is_struct -f_isTail=f_is_tail -f_isTbyt=f_is_tbyte -f_isWord=f_is_word -f_isYwrd=f_is_yword -getDefaultRadix=get_default_radix -getFlags=get_full_flags -get_long=get_dword -get_full_byte=get_wide_byte -get_full_word=get_wide_word -get_full_long=get_wide_dword -get_original_long=get_original_dword -put_long=put_dword -patch_long=patch_dword -add_long=add_dword -getRadix=get_radix -get_ascii_contents=get_strlit_contents -get_ascii_contents2=get_strlit_contents -get_flags_novalue=get_flags -get_hidden_area=get_hidden_range -get_hidden_area_num=get_hidden_range_num -get_hidden_area_qty=get_hidden_range_qty -def get_many_bytes(ea, size): - return get_bytes(ea, size) -def get_many_bytes_ex(ea, size): - return get_bytes_and_mask(ea, size) -get_max_ascii_length=get_max_strlit_length -get_next_hidden_area=get_next_hidden_range -get_prev_hidden_area=get_prev_hidden_range -get_zero_areas=get_zero_ranges -getn_hidden_area=getn_hidden_range -hasExtra=has_extra_cmts -hasRef=has_xref -hasValue=has_value -hidden_area_t=hidden_range_t -isASCII=is_strlit -isAlign=is_align -isByte=is_byte -isChar=is_char -isChar0=is_char0 -isChar1=is_char1 -isCode=is_code -isCustFmt=is_custfmt -isCustFmt0=is_custfmt0 -isCustFmt1=is_custfmt1 -isCustom=is_custom -isData=is_data -isDefArg=is_defarg -isDefArg0=is_defarg0 -isDefArg1=is_defarg1 -isDouble=is_double -isDwrd=is_dword -isEnabled=is_mapped -isEnum=is_enum -isEnum0=is_enum0 -isEnum1=is_enum1 -isFloat=is_float -isFloat0=is_float0 -isFloat1=is_float1 -isFlow=is_flow -isFltnum=is_fltnum -isFop=is_forced_operand -isFunc=is_func -isHead=is_head -isImmd=has_immd -isLoaded=is_loaded -isNotTail=is_not_tail -isNum=is_numop -isNum0=is_numop0 -isNum1=is_numop1 -isOff=is_off -isOff0=is_off0 -isOff1=is_off1 -isOwrd=is_oword -isPackReal=is_pack_real -isQwrd=is_qword -isSeg=is_seg -isSeg0=is_seg0 -isSeg1=is_seg1 -isStkvar=is_stkvar -isStkvar0=is_stkvar0 -isStkvar1=is_stkvar1 -isStroff=is_stroff -isStroff0=is_stroff0 -isStroff1=is_stroff1 -isStruct=is_struct -isTail=is_tail -isTbyt=is_tbyte -isUnknown=is_unknown -isVoid=is_suspop -isWord=is_word -isYwrd=is_yword -isZwrd=is_zword -make_ascii_string=create_strlit -noExtra=ida_idaapi._BC695.false_p -noType=clr_op_type -owrdflag=oword_flag -patch_many_bytes=patch_bytes -print_ascii_string_type=print_strlit_type -put_many_bytes=put_bytes -qwrdflag=qword_flag -tbytflag=tbyte_flag -update_hidden_area=update_hidden_range -ywrdflag=yword_flag -zwrdflag=zword_flag -def get_opinfo(*args): - import ida_nalt - if isinstance(args[3], ida_nalt.opinfo_t): # 6.95: ea, n, flags, buf - ea, n, flags, buf = args - else: # 7.00: buf, ea, n, flags - buf, ea, n, flags = args - return _ida_bytes.get_opinfo(buf, ea, n, flags) -def doASCI(ea, length): - import ida_netnode - return create_data(ea, FF_STRLIT, length, ida_netnode.BADNODE) -FF_3BYTE=FF_BYTE -chunksize=chunk_size -chunkstart=chunk_start -do3byte=ida_idaapi._BC695.false_p -f_is3byte=ida_idaapi._BC695.false_p -freechunk=free_chunk -get_3byte=ida_idaapi._BC695.false_p -is3byte=ida_idaapi._BC695.false_p -nextaddr=next_addr -nextchunk=next_chunk -nextthat=next_that -prevaddr=prev_addr -prevchunk=prev_chunk -prevthat=prev_that -tribyteflag=byte_flag -alignflag=align_flag -binflag=bin_flag -byteflag=byte_flag -charflag=char_flag -codeflag=code_flag -custflag=cust_flag -custfmtflag=custfmt_flag -decflag=dec_flag -doubleflag=double_flag -enumflag=enum_flag -floatflag=float_flag -fltflag=flt_flag -hexflag=hex_flag -numflag=num_flag -octflag=oct_flag -offflag=off_flag -packrealflag=packreal_flag -segflag=seg_flag -stkvarflag=stkvar_flag -stroffflag=stroff_flag -struflag=stru_flag -wordflag=word_flag -invalidate_visea_cache=ida_idaapi._BC695.false_p -@bc695redef -def op_stroff(*args): - insn, n, path, path_len, delta = args - import ida_ua - if not isinstance(insn, ida_ua.insn_t): - tmp = ida_ua.insn_t() - ida_ua.decode_insn(tmp, insn) - insn = tmp - return _ida_bytes.op_stroff(insn, n, path, path_len, delta) -#</pycode_BC695(py_bytes)> diff --git a/pywraps/py_bytes_custdata.hpp b/pywraps/py_bytes_custdata.hpp index 058ff0c..0af400a 100644 --- a/pywraps/py_bytes_custdata.hpp +++ b/pywraps/py_bytes_custdata.hpp @@ -14,11 +14,11 @@ class py_custom_data_type_t : public data_type_t int dtid; // The data format id PyObject *py_self; - // may create data? NULL means always may + // may create data? nullptr means always may static bool idaapi s_may_create_at( - void *ud, // user-defined data - ea_t ea, // address of the future item - size_t nbytes) // size of the future item + void *ud, // user-defined data + ea_t ea, // address of the future item + size_t nbytes) // size of the future item { py_custom_data_type_t *_this = (py_custom_data_type_t *)ud; PYW_GIL_GET; @@ -31,16 +31,16 @@ class py_custom_data_type_t : public data_type_t bvsz_t(nbytes))); PyW_ShowCbErr(S_MAY_CREATE_AT); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result && PyObject_IsTrue(py_result.o); } - // !=NULL means variable size datatype + // !=nullptr means variable size datatype static asize_t idaapi s_calc_item_size( - // This function is used to determine - // size of the (possible) item at 'ea' - void *ud, // user-defined data - ea_t ea, // address of the item - asize_t maxsize) // maximal size of the item + // This function is used to determine + // size of the (possible) item at 'ea' + void *ud, // user-defined data + ea_t ea, // address of the item + asize_t maxsize) // maximal size of the item { PYW_GIL_GET; // Returns: 0-no such item can be created/displayed @@ -54,7 +54,7 @@ class py_custom_data_type_t : public data_type_t bvea_t(ea), bvasize_t(maxsize))); - if ( PyW_ShowCbErr(S_CALC_ITEM_SIZE) || py_result == NULL ) + if ( PyW_ShowCbErr(S_CALC_ITEM_SIZE) || !py_result ) return 0; uint64 num = 0; @@ -111,12 +111,12 @@ public: // may_create_at py_attr = PyW_TryGetAttrString(py_self, S_MAY_CREATE_AT); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) may_create_at = s_may_create_at; // calc_item_size py_attr = PyW_TryGetAttrString(py_self, S_CALC_ITEM_SIZE); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) calc_item_size = s_calc_item_size; // Now try to register @@ -136,8 +136,8 @@ public: // dtor to be called, which in turn will call this 'do_unregister' a // second time, but this is no problem since the dtid has already been // unregistered and thus we won't end up in this Py_XDECREF block. + dtid = -1; // modify the object now, otherwise it may get deleted Py_XDECREF(py_self); - dtid = -1; } return ok; } @@ -148,7 +148,7 @@ py_custom_data_type_t *py_custom_data_type_cast(data_type_t *inst) { // The following code seems to not work with gcc. Compiler bug? Not sure, but no time ATM // py_custom_data_type_t *py_inst = (py_custom_data_type_t *) inst; - // py_custom_data_types.has(py_inst) ? py_inst : NULL; + // py_custom_data_types.has(py_inst) ? py_inst : nullptr; if ( py_custom_data_types.has((py_custom_data_type_t *) inst) ) return (py_custom_data_type_t *) inst; else @@ -159,7 +159,7 @@ py_custom_data_type_t *py_custom_data_type_cast(data_type_t *inst) static int py_custom_data_type_t_get_id(data_type_t *_dt) { py_custom_data_type_t *dt = py_custom_data_type_cast(_dt); - return dt != NULL ? dt->get_dtid() : -1; + return dt != nullptr ? dt->get_dtid() : -1; } //------------------------------------------------------------------------- @@ -176,22 +176,22 @@ private: PyObject *py_self; qstring df_name, df_menu_name, df_hotkey; - static bool idaapi s_print( // convert to colored string - void *ud, // user-defined data - qstring *out, // output buffer. may be NULL - const void *value, // value to print. may not be NULL - asize_t size, // size of value in bytes - ea_t current_ea, // current address (BADADDR if unknown) - int operand_num, // current operand number - int dtid) // custom data type id + static bool idaapi s_print( // convert to colored string + void *ud, // user-defined data + qstring *out, // output buffer. may be nullptr + const void *value, // value to print. may not be nullptr + asize_t size, // size of value in bytes + ea_t current_ea, // current address (BADADDR if unknown) + int operand_num, // current operand number + int dtid) // custom data type id { PYW_GIL_GET; // Build a string from the buffer - newref_t py_value(IDAPyBytes_FromMemAndSize( + newref_t py_value(PyBytes_FromStringAndSize( (const char *)value, Py_ssize_t(size))); - if ( py_value == NULL ) + if ( !py_value ) return false; py_custom_data_format_t *_this = (py_custom_data_format_t *) ud; @@ -205,26 +205,26 @@ private: dtid)); // Error while calling the function? - if ( PyW_ShowCbErr(S_PRINTF) || py_result == NULL ) + if ( PyW_ShowCbErr(S_PRINTF) || !py_result ) return false; bool ok = false; - if ( IDAPyStr_Check(py_result.o) ) + if ( PyUnicode_Check(py_result.o) ) { - if ( out != NULL ) - IDAPyStr_AsUTF8(out, py_result.o); + if ( out != nullptr ) + PyUnicode_as_qstring(out, py_result.o); ok = true; } return ok; } - static bool idaapi s_scan( // convert from uncolored string - void *ud, // user-defined data - bytevec_t *value, // output buffer. may be NULL - const char *input, // input string. may not be NULL - ea_t current_ea, // current address (BADADDR if unknown) - int operand_num, // current operand number (-1 if unknown) - qstring *errstr) // buffer for error message + static bool idaapi s_scan( // convert from uncolored string + void *ud, // user-defined data + bytevec_t *value, // output buffer. may be nullptr + const char *input, // input string. may not be nullptr + ea_t current_ea, // current address (BADADDR if unknown) + int operand_num, // current operand number (-1 if unknown) + qstring *errstr) // buffer for error message { PYW_GIL_GET; @@ -239,7 +239,7 @@ private: operand_num)); // Error while calling the function? - if ( PyW_ShowCbErr(S_SCAN) || py_result == NULL ) + if ( PyW_ShowCbErr(S_SCAN) || !py_result ) return false; bool ok = false; @@ -259,12 +259,12 @@ private: if ( ok ) { // Probe-only? Then okay, no need to extract the 'value' - if ( value == NULL ) + if ( value == nullptr ) break; Py_ssize_t len; char *buf; - if ( IDAPyBytes_AsMemAndSize(py_val.o, &buf, &len) != -1 ) + if ( PyBytes_AsStringAndSize(py_val.o, &buf, &len) != -1 ) { value->qclear(); value->append(buf, len); @@ -274,22 +274,22 @@ private: else { // Make sure the user returned (False, String) - if ( py_bool.o != Py_False || !IDAPyStr_Check(py_val.o) ) + if ( py_bool.o != Py_False || !PyUnicode_Check(py_val.o) ) { *errstr = "Invalid return value returned from the Python callback!"; break; } // Get the error message - IDAPyStr_AsUTF8(errstr, py_val.o); + PyUnicode_as_qstring(errstr, py_val.o); } } while ( false ); return ok; } - static void idaapi s_analyze( // analyze custom data format occurrence - void *ud, // user-defined data - ea_t current_ea, // current address (BADADDR if unknown) - int operand_num) // current operand number + static void idaapi s_analyze( // analyze custom data format occurrence + void *ud, // user-defined data + ea_t current_ea, // current address (BADADDR if unknown) + int operand_num) // current operand number // this callback can be used to create // xrefs from the current item. // this callback may be missing. @@ -309,13 +309,13 @@ private: } public: py_custom_data_format_t( - PyObject *py_df, - const char *name, - asize_t value_size, - const char *menu_name, - int props, - const char *hotkey, - int32 text_width) + PyObject *py_df, + const char *name, + asize_t value_size, + const char *menu_name, + int props, + const char *hotkey, + int32 text_width) { memset(this, 0, sizeof(data_format_t)); cbsize = sizeof(data_format_t); @@ -354,17 +354,17 @@ public: // print cb py_attr = PyW_TryGetAttrString(py_self, S_PRINTF); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) print = s_print; // scan cb py_attr = PyW_TryGetAttrString(py_self, S_SCAN); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) scan = s_scan; // analyze cb py_attr = PyW_TryGetAttrString(py_self, S_ANALYZE); - if ( py_attr != NULL && PyCallable_Check(py_attr.o) ) + if ( py_attr != nullptr && PyCallable_Check(py_attr.o) ) analyze = s_analyze; // Now try to register @@ -381,8 +381,8 @@ public: if ( ok ) { // see comment in py_custom_data_type_t::do_unregister() - Py_XDECREF(py_self); dfid = -1; + Py_XDECREF(py_self); } return ok; } @@ -401,17 +401,17 @@ py_custom_data_format_t *py_custom_data_format_cast(data_format_t *inst) static int py_custom_data_format_t_get_id(data_format_t *_df) { py_custom_data_format_t *df = py_custom_data_format_cast(_df); - return df != NULL ? df->get_dfid() : -1; + return df != nullptr ? df->get_dfid() : -1; } //------------------------------------------------------------------------- static void clear_custom_data_types_and_formats() { PYW_GIL_GET; - for ( size_t n = py_custom_data_types.size(); n > 0; --n ) - py_custom_data_types[n-1]->do_unregister(); - for ( size_t n = py_custom_data_formats.size(); n > 0; --n ) - py_custom_data_formats[n-1]->do_unregister(); + for ( ssize_t i=py_custom_data_types.size()-1; i >= 0; --i ) + py_custom_data_types[i]->do_unregister(); + for ( ssize_t i=py_custom_data_formats.size()-1; i >= 0; --i ) + py_custom_data_formats[i]->do_unregister(); } //</code(py_bytes_custdata)> @@ -436,12 +436,12 @@ def register_custom_data_type(dt): static int py_register_custom_data_type(PyObject *py_dt) { ref_t py_attr = PyW_TryGetAttrString(py_dt, "this"); - if ( py_attr == NULL ) + if ( py_attr == nullptr ) return -1; - py_custom_data_type_t *inst = NULL; + py_custom_data_type_t *inst = nullptr; int cvt = SWIG_ConvertPtr(py_attr.o, (void **) &inst, SWIGTYPE_p_data_type_t, 0); - if ( !SWIG_IsOK(cvt) || py_custom_data_type_cast(inst) == NULL ) + if ( !SWIG_IsOK(cvt) || py_custom_data_type_cast(inst) == nullptr ) return -1; return inst->do_register(); } @@ -461,11 +461,11 @@ def unregister_custom_data_type(dtid): static bool py_unregister_custom_data_type(int dtid) { const data_type_t *_dt = get_custom_data_type(dtid); - if ( _dt == NULL ) + if ( _dt == nullptr ) return false; py_custom_data_type_t *dt = py_custom_data_type_cast((data_type_t *) _dt); - bool ok = dt != NULL; + bool ok = dt != nullptr; if ( ok ) ok = dt->do_unregister(); else @@ -490,12 +490,12 @@ def register_custom_data_format(df): static int py_register_custom_data_format(PyObject *py_df) { ref_t py_attr = PyW_TryGetAttrString(py_df, "this"); - if ( py_attr == NULL ) + if ( py_attr == nullptr ) return -1; - py_custom_data_format_t *inst = NULL; + py_custom_data_format_t *inst = nullptr; int cvt = SWIG_ConvertPtr(py_attr.o, (void **) &inst, SWIGTYPE_p_data_format_t, 0); - if ( !SWIG_IsOK(cvt) || py_custom_data_format_cast(inst) == NULL ) + if ( !SWIG_IsOK(cvt) || py_custom_data_format_cast(inst) == nullptr ) return -1; return inst->do_register(); @@ -516,11 +516,11 @@ def unregister_custom_data_format(dfid): static bool py_unregister_custom_data_format(int dfid) { const data_format_t *_df = get_custom_data_format(dfid); - if ( _df == NULL ) + if ( _df == nullptr ) return false; py_custom_data_format_t *df = py_custom_data_format_cast((data_format_t *) _df); - bool ok = df != NULL; + bool ok = df != nullptr; if ( ok ) ok = df->do_unregister(); else diff --git a/pywraps/py_dbg.hpp b/pywraps/py_dbg.hpp index 360ca03..5f64ecb 100644 --- a/pywraps/py_dbg.hpp +++ b/pywraps/py_dbg.hpp @@ -5,54 +5,9 @@ // hookgenDBG:methodsinfo_def -//------------------------------------------------------------------------- -struct _cvt_status_t -{ - PyObject *def_err_class; - const char *def_err_string; - - qstring err_string; - PyObject *err_class; - bool ok; - - _cvt_status_t(PyObject *_def_err_class, const char *_def_err_string) - : def_err_class(_def_err_class), - def_err_string(_def_err_string), - err_class(NULL), - ok(true) {} - - ~_cvt_status_t() - { - if ( !ok ) - { - if ( err_class == NULL ) - { - err_class = def_err_class; - err_string = def_err_string; - } - PyErr_SetString(err_class, err_string.c_str()); - } - } - - qstring &failed(PyObject *_err_class) - { - QASSERT(30587, ok == false); - err_class = _err_class; - return err_string; - } -}; - - //------------------------------------------------------------------------- static bool _to_reg_val(regval_t **out, regval_t *buf, const char *name, PyObject *o) { - if ( o == Py_None ) - return false; - - int cvt = SWIG_ConvertPtr(o, (void **) out, SWIGTYPE_p_regval_t, 0); - if ( SWIG_IsOK(cvt) && *out != NULL ) - return true; - register_info_t ri; if ( !get_dbg_reg_info(name, &ri) ) { @@ -62,172 +17,7 @@ static bool _to_reg_val(regval_t **out, regval_t *buf, const char *name, PyObjec // assume the dtype is DWORD then ri.dtype = dt_dword; } - - struct ida_local cvt_t - { - static bool convert_int(regval_t *lout, PyObject *in, op_dtype_t dt) - { - uint64 u64 = 0; - _cvt_status_t status(PyExc_TypeError, "Expected integer value"); - size_t nbits = 0; - switch ( dt ) - { - case dt_byte: nbits = 8; break; - case dt_word: nbits = 16; break; - default: - case dt_dword: nbits = 32; break; - case dt_qword: nbits = 64; break; - } - status.ok = PyW_GetNumber(in, &u64); - if ( status.ok ) - { - if ( nbits < 64 ) - { - status.ok = u64 < (1ULL << nbits); - if ( !status.ok ) - status.failed(PyExc_ValueError).sprnt("Integer value too large to fit in %" FMT_Z " bits", nbits); - } - } - if ( status.ok ) - lout->set_int(u64); - return status.ok; - } - - static bool convert_float(regval_t *lout, PyObject *in, op_dtype_t) - { - eNE ene; - _cvt_status_t status(PyExc_TypeError, "Expected float value"); - double dbl = PyFloat_AsDouble(in); - status.ok = PyErr_Occurred() == NULL; - if ( status.ok ) - status.ok = ieee_realcvt(&dbl, ene, 003 /*load double*/) == 0; - if ( !status.ok ) - status.failed(PyExc_ValueError).sprnt("Float conversion failed"); - if ( status.ok ) - lout->set_float(ene); - return status.ok; - } - - static bool convert_bytes(regval_t *lout, PyObject *in, op_dtype_t dt) - { - bytevec_t bytes; - _cvt_status_t status(PyExc_TypeError, "Unexpected value"); - size_t nbytes = 0; - switch ( dt ) - { - case dt_byte16: nbytes = 16; break; - case dt_byte32: nbytes = 32; break; - case dt_byte64: nbytes = 64; break; - default: - break; - } - status.ok = nbytes > 0; - Py_ssize_t got; - if ( status.ok ) - { - status.ok = false; - if ( IDAPyBytes_Check(in) ) - { - char *buf; - status.ok = IDAPyBytes_AsMemAndSize(in, &buf, &got) >= 0 && got <= nbytes; - if ( status.ok ) - bytes.append((const uchar *) buf, got); - else - status.failed(PyExc_ValueError).sprnt( - "List of bytes is too long; was expecting at most %d bytes", - int(nbytes)); - } - else if ( IDAPyInt_Check(in) ) - { - uint64 u64 = 0; - status.ok = PyW_GetNumber(in, &u64); - if ( status.ok ) - { - got = sizeof(u64); - bytes.resize(got, 0); - memcpy(bytes.begin(), &u64, got); - } - else - { - if ( PyLong_CheckExact(in) ) - goto TRY_RAW_LONG; - } - } - else if ( PyLong_CheckExact(in) ) - { -TRY_RAW_LONG: - // (possibly very long) int or long value. Apparently it's rather - // safe to use _PyLong_AsByteArray (it's even present in 3.x) - // https://stackoverflow.com/questions/18290507/python-extension-construct-and-inspect-large-integers-efficiently - - // /* _PyLong_AsByteArray: Convert the least-significant 8*n bits of long - // v to a base-256 integer, stored in array bytes. Normally return 0, - // return -1 on error. - // If little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at - // bytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and - // the LSB at bytes[n-1]. - // If is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes - // are filled and there's nothing special about bit 0x80 of the MSB. - // If is_signed is 1/true, bytes is filled with the 2's-complement - // representation of v's value. Bit 0x80 of the MSB is the sign bit. - // Error returns (-1): - // + is_signed is 0 and v < 0. TypeError is set in this case, and bytes - // isn't altered. - // + n isn't big enough to hold the full mathematical value of v. For - // example, if is_signed is 0 and there are more digits in the v than - // fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of - // being large enough to hold a sign bit. OverflowError is set in this - // case, but bytes holds the least-significant n bytes of the true value. - // */ - bytes.resize(nbytes, 0); - status.ok = pylong_to_byte_array( - &bytes, - in, - /*little_endian=*/ true, - /*is_signed=*/ true) >= 0; - if ( status.ok ) - got = nbytes; - else - status.failed(PyExc_ValueError).sprnt( - "Integer value is too large to fit in %d bytes", - int(nbytes)); - } - } - if ( status.ok ) - { - bytes.growfill(nbytes - got, 0); - lout->set_bytes(bytes); - } - return status.ok; - } - }; - - bool ok = false; - regval_t &rv = *buf; - switch ( ri.dtype ) - { - case dt_byte: - case dt_word: - case dt_dword: - case dt_qword: - default: - ok = cvt_t::convert_int(&rv, o, ri.dtype); - break; - case dt_float: - case dt_tbyte: - case dt_double: - case dt_ldbl: - ok = cvt_t::convert_float(&rv, o, ri.dtype); - break; - case dt_byte16: - case dt_byte32: - case dt_byte64: - ok = cvt_t::convert_bytes(&rv, o, ri.dtype); - break; - } - if ( ok ) - *out = &rv; - return ok; + return set_regval_t(out, buf, ri.dtype, o); } //------------------------------------------------------------------------- @@ -238,38 +28,7 @@ static PyObject *_from_reg_val( register_info_t ri; if ( !get_dbg_reg_info(name, &ri) ) // see _to_reg_val() ri.dtype = dt_dword; - - PyObject *res = NULL; - _cvt_status_t status(PyExc_ValueError, "Conversion failed"); - switch ( ri.dtype ) - { - default: - if ( rv.ival <= uint64(LONG_MAX) ) - res = PyInt_FromLong(long(rv.ival)); - else - res = PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) rv.ival); - break; - case dt_float: - case dt_tbyte: - case dt_double: - case dt_ldbl: - { - double dbl; - status.ok = ieee_realcvt(&dbl, (uint16 *) rv.fval, 013 /*store double*/) == 0; - if ( status.ok ) - res = PyFloat_FromDouble(dbl); - } - break; - case dt_byte16: - case dt_byte32: - case dt_byte64: - { - const bytevec_t &b = rv.bytes(); - res = IDAPyBytes_FromMemAndSize((const char *) b.begin(), b.size()); - } - break; - } - return res; + return get_regval_t(rv, ri.dtype); } //</code(py_dbg)> @@ -308,7 +67,7 @@ def dbg_is_loaded(): */ static bool dbg_is_loaded() { - return dbg != NULL; + return dbg != nullptr; } //------------------------------------------------------------------------- @@ -329,7 +88,7 @@ static PyObject *refresh_debugger_memory() invalidate_dbgmem_contents(BADADDR, 0); // Ask the debugger to populate debug names - if ( dbg != NULL ) + if ( dbg != nullptr ) dbg->suspended(true); // Invalidate the cache @@ -344,13 +103,13 @@ struct DBG_Hooks : public hooks_base_t { // hookgenDBG:methodsinfo_decl - DBG_Hooks(uint32 _flags=0) - : hooks_base_t("ida_dbg.DBG_Hooks", DBG_Callback, HT_DBG, _flags) {} + DBG_Hooks(uint32 _flags=0, uint32 _hkcb_flags=HKCB_GLOBAL) + : hooks_base_t("ida_dbg.DBG_Hooks", DBG_Callback, HT_DBG, _flags, _hkcb_flags) {} bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenDBG:methods @@ -408,21 +167,6 @@ static PyObject *py_list_bptgrps() } //------------------------------------------------------------------------ -/* -#<pydoc> -def move_bpt_to_grp(): - """ - Sets new group for the breakpoint - """ - pass -#</pydoc> -*/ -static void move_bpt_to_grp(bpt_t *bpt, const char *grp_name) -{ - PYW_GIL_CHECK_LOCKED_SCOPE(); - set_bpt_group(*bpt, grp_name); -} - /* #<pydoc> def internal_get_sreg_base(): @@ -447,11 +191,11 @@ static ea_t py_internal_get_sreg_base(thid_t tid, int sreg_value) static ssize_t py_write_dbg_memory(ea_t ea, PyObject *py_buf, size_t size=size_t(-1)) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !dbg_can_query() || !IDAPyBytes_Check(py_buf) ) + if ( !dbg_can_query(dbg) || !PyBytes_Check(py_buf) ) return -1; - char *buf = NULL; + char *buf = nullptr; Py_ssize_t sz; - if ( IDAPyBytes_AsMemAndSize(py_buf, &buf, &sz) < 0 ) + if ( PyBytes_AsStringAndSize(py_buf, &buf, &sz) < 0 ) return -1; if ( size == size_t(-1) ) size = size_t(sz); @@ -474,20 +218,26 @@ def dbg_can_query(): #</pydoc> */ +//------------------------------------------------------------------------- +static bool py_dbg_can_query() +{ + return dbg_can_query(dbg); +} + //------------------------------------------------------------------------- static PyObject *py_set_reg_val(const char *regname, PyObject *o) { regval_t buf; regval_t *ptr; if ( !_to_reg_val(&ptr, &buf, regname, o) ) - return NULL; + return nullptr; SWIG_PYTHON_THREAD_BEGIN_ALLOW; bool ok = set_reg_val(regname, ptr); SWIG_PYTHON_THREAD_END_ALLOW; if ( !ok ) { PyErr_SetString(PyExc_Exception, "Failed to set register value"); - return NULL; + return nullptr; } Py_RETURN_TRUE; } @@ -495,23 +245,23 @@ static PyObject *py_set_reg_val(const char *regname, PyObject *o) //------------------------------------------------------------------------- static PyObject *py_set_reg_val(thid_t tid, int regidx, PyObject *o) { - if ( dbg == NULL ) + if ( dbg == nullptr ) { PyErr_SetString(PyExc_Exception, "No debugger loaded"); - return NULL; + return nullptr; } if ( regidx < 0 || regidx >= dbg->nregs ) { qstring buf; buf.sprnt("Bad register index: %d", regidx); PyErr_SetString(PyExc_Exception, buf.c_str()); - return NULL; + return nullptr; } const register_info_t &ri = dbg->regs(regidx); regval_t buf; regval_t *ptr; if ( !_to_reg_val(&ptr, &buf, ri.name, o) ) - return NULL; + return nullptr; SWIG_PYTHON_THREAD_BEGIN_ALLOW; bool ok = set_reg_val(tid, regidx, ptr) > 0; SWIG_PYTHON_THREAD_END_ALLOW; @@ -524,14 +274,14 @@ static PyObject *py_request_set_reg_val(const char *regname, PyObject *o) regval_t buf; regval_t *ptr; if ( !_to_reg_val(&ptr, &buf, regname, o) ) - return NULL; + return nullptr; SWIG_PYTHON_THREAD_BEGIN_ALLOW; bool ok = request_set_reg_val(regname, ptr); SWIG_PYTHON_THREAD_END_ALLOW; if ( !ok ) { PyErr_SetString(PyExc_Exception, "Failed to request set register value"); - return NULL; + return nullptr; } Py_RETURN_TRUE; } @@ -546,10 +296,38 @@ static PyObject *py_get_reg_val(const char *regname) if ( !ok ) { PyErr_SetString(PyExc_Exception, "Failed to retrieve register value"); - return NULL; + return nullptr; } return _from_reg_val(regname, buf); } +//------------------------------------------------------------------------- +/* +#<pydoc> +def get_reg_vals(): + """ + Fetch live registers values for the thread + + @param tid The ID of the thread to read registers for + @param clsmask An OR'ed mask of register classes to + read values for (can be used to speed up the + retrieval process) + + @return: a regvals_t instance (empty if an error occurs) + """ + pass +#</pydoc> +*/ +static regvals_t *py_get_reg_vals(thid_t tid, int clsmask=-1) +{ + regvals_t *rvs = new regvals_t(); + if ( dbg != nullptr ) + { + rvs->resize(dbg->nregs); + if ( get_reg_vals(tid, clsmask, rvs->begin()) != DRC_OK ) + rvs->clear(); + } + return rvs; +} //</inline(py_dbg)> #endif diff --git a/pywraps/py_dbg.py b/pywraps/py_dbg.py index f6373dd..4779419 100644 --- a/pywraps/py_dbg.py +++ b/pywraps/py_dbg.py @@ -55,19 +55,6 @@ def send_dbg_command(command): else: return False, "eval_idc_expr(): wrong return type: %d" % vtype -#</pycode(py_dbg)> +move_bpt_to_grp = set_bpt_group -#<pycode_BC695(py_dbg)> -import ida_idd -def get_process_info(n, pi): - pis = ida_idd.procinfo_vec_t() - cnt = get_processes(pis) - if n >= cnt: - return ida_idd.NO_PROCESS - pi.name = pis[n].name - pi.pid = pis[n].pid - return pi.pid -def get_process_qty(): - pis = ida_idd.procinfo_vec_t() - return get_processes(pis) -#</pycode_BC695(py_dbg)> +#</pycode(py_dbg)> diff --git a/pywraps/py_diskio.hpp b/pywraps/py_diskio.hpp index c63e7ee..0b6ee53 100644 --- a/pywraps/py_diskio.hpp +++ b/pywraps/py_diskio.hpp @@ -9,13 +9,13 @@ int idaapi py_enumerate_files_cb(const char *file, void *ud) // and from the same thread as the one that executes // 'py_enumerate_files'. PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_file(IDAPyStr_FromUTF8(file)); + newref_t py_file(PyUnicode_FromString(file)); newref_t py_ret( PyObject_CallFunctionObjArgs( (PyObject *)ud, py_file.o, - NULL)); - return (py_ret == NULL || !PyNumber_Check(py_ret.o)) ? 1 /* stop enum on failure */ : PyInt_AsLong(py_ret.o); + nullptr)); + return (!py_ret || !PyNumber_Check(py_ret.o)) ? 1 /* stop enum on failure */ : PyInt_AsLong(py_ret.o); } //------------------------------------------------------------------------- @@ -54,12 +54,12 @@ PyObject *py_enumerate_files(PyObject *path, PyObject *fname, PyObject *callback do { - if ( !IDAPyStr_Check(path) || !IDAPyStr_Check(fname) || !PyCallable_Check(callback) ) + if ( !PyUnicode_Check(path) || !PyUnicode_Check(fname) || !PyCallable_Check(callback) ) break; qstring _path; qstring _fname; - if ( !IDAPyStr_AsUTF8(&_path, path) || !IDAPyStr_AsUTF8(&_fname, fname) ) + if ( !PyUnicode_as_qstring(&_path, path) || !PyUnicode_as_qstring(&_fname, fname) ) break; char answer[MAXSTR]; @@ -79,7 +79,7 @@ linput_t *py_create_bytearray_linput(const qstring &s) { qstring *bytes = new qstring(s); linput_t *li = create_bytearray_linput((const uchar *) bytes->c_str(), bytes->length()); - if ( li != NULL ) + if ( li != nullptr ) { bytearray_linput_data_t &ld = bytearray_linput_data_vec.push_back(); ld.bytes = bytes; diff --git a/pywraps/py_diskio.py b/pywraps/py_diskio.py deleted file mode 100644 index 44c7034..0000000 --- a/pywraps/py_diskio.py +++ /dev/null @@ -1,4 +0,0 @@ -#<pycode_BC695(py_diskio)> -create_generic_linput64=create_generic_linput -generic_linput64_t=generic_linput_t -#</pycode_BC695(py_diskio)> diff --git a/pywraps/py_enum.py b/pywraps/py_enum.py deleted file mode 100644 index 11661b3..0000000 --- a/pywraps/py_enum.py +++ /dev/null @@ -1,37 +0,0 @@ -#<pycode_BC695(py_enum)> -CONST_ERROR_ENUM=ENUM_MEMBER_ERROR_NAME -CONST_ERROR_ILLV=ENUM_MEMBER_ERROR_VALUE -CONST_ERROR_MASK=ENUM_MEMBER_ERROR_ENUM -CONST_ERROR_NAME=ENUM_MEMBER_ERROR_MASK -CONST_ERROR_VALUE=ENUM_MEMBER_ERROR_ILLV -add_const=add_enum_member -del_const=del_enum_member -get_const=get_enum_member -get_const_bmask=get_enum_member_bmask -get_const_by_name=get_enum_member_by_name -get_const_cmt=get_enum_member_cmt -get_const_enum=get_enum_member_enum -get_const_name=get_enum_member_name -get_const_serial=get_enum_member_serial -get_const_value=get_enum_member_value -get_first_const=get_first_enum_member -get_first_serial_const=get_first_serial_enum_member -get_last_const=get_last_enum_member -get_last_serial_const=get_last_serial_enum_member -get_next_const=get_next_enum_member -get_next_serial_const=get_next_serial_enum_member -get_prev_const=get_prev_enum_member -get_prev_serial_const=get_prev_serial_enum_member -set_const_cmt=set_enum_member_cmt -set_const_name=set_enum_member_name -def get_next_serial_enum_member(*args): - serial, cid = args[0], args[1] - if serial > 0xFF: - serial, cid = cid, serial - return _ida_enum.get_next_serial_enum_member(serial, cid) -def get_prev_serial_enum_member(*args): - serial, cid = args[0], args[1] - if serial > 0xFF: - serial, cid = cid, serial - return _ida_enum.get_prev_serial_enum_member(serial, cid) -#</pycode_BC695(py_enum)> diff --git a/pywraps/py_expr.hpp b/pywraps/py_expr.hpp index b1ee6a2..d3eb285 100644 --- a/pywraps/py_expr.hpp +++ b/pywraps/py_expr.hpp @@ -40,9 +40,9 @@ static error_t py_call_idc_func( } // Call the Python function - newref_t py_result = PyObject_CallObject( + newref_t py_result(PyObject_CallObject( ctx->py_func.o, - pargs.empty() ? NULL : pargs[0].o); + pargs.empty() ? nullptr : pargs[0].o)); int cvt; error_t err; @@ -107,13 +107,13 @@ typedef qvector<idc_value_t> idc_values_t; //------------------------------------------------------------------------- static bool pyw_convert_defvals(idc_values_t *out, PyObject *py_seq) { - if ( !PySequence_Check(py_seq) ) + if ( out == nullptr || !PySequence_Check(py_seq) ) return false; for ( Py_ssize_t i = 0, n = PySequence_Size(py_seq); i < n; ++i ) { newref_t py_var(PySequence_GetItem(py_seq, i)); idc_value_t &idc_var = out->push_back(); - if ( pyvar_to_idcvar(py_var, &idc_var, NULL) != CIP_OK ) + if ( pyvar_to_idcvar(py_var, &idc_var, nullptr) != CIP_OK ) return false; } return true; diff --git a/pywraps/py_expr.py b/pywraps/py_expr.py index a8b382c..d45f3c4 100644 --- a/pywraps/py_expr.py +++ b/pywraps/py_expr.py @@ -75,14 +75,15 @@ def del_idc_func(name): return _ida_expr.pyw_unregister_idc_func(f.ctxptr) # -------------------------------------------------------------------------- -def add_idc_func(name, fp, args, defvals=None, flags=0): +def add_idc_func(name, fp, args, defvals=(), flags=0): """ Extends the IDC language by exposing a new IDC function that is backed up by a Python function @param name: IDC function name to expose @param fp: Python callable that will receive the arguments and return a tuple. @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param flags: IDC function flags. A combination of EXTFUN_XXX constants + @param defvals: default argument values (optional) + @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) @return: Boolean """ @@ -128,41 +129,3 @@ def add_idc_func(name, fp, args, defvals=None, flags=0): flags) #</pycode(py_expr)> - -#<pycode_BC695(py_expr)> -Compile=compile_idc_file -CompileEx=compile_idc_file -CompileLine=compile_idc_text -VT_STR2=VT_STR -VarCopy=copy_idcv -VarDelAttr=del_idcv_attr -VarDeref=deref_idcv -VarFirstAttr=first_idcv_attr -def VarGetAttr(obj, attr, res, may_use_getattr=False): - return get_idcv_attr(res, obj, attr, may_use_getattr) -VarGetClassName=get_idcv_class_name -VarGetSlice=get_idcv_slice -VarInt64=idcv_int64 -VarLastAttr=last_idcv_attr -VarMove=move_idcv -VarNextAttr=next_idcv_attr -VarObject=idcv_object -VarPrevAttr=prev_idcv_attr -VarPrint=print_idcv -VarRef=create_idcv_ref -VarSetAttr=set_idcv_attr -VarSetSlice=set_idcv_slice -VarString2=idcv_string -VarSwap=swap_idcvs -def calc_idc_expr(where, expr, res): - return eval_idc_expr(res, where, expr) -def calcexpr(where, expr, res): - return eval_expr(res, where, expr) -def dosysfile(complain_if_no_file, fname): - return exec_system_script(fname, complain_if_no_file) -def execute(line): - return eval_idc_snippet(None, line) -py_set_idc_func_ex=py_add_idc_func -def set_idc_func_ex(name, fp=None, args=(), flags=0): - return add_idc_func(name, fp, args, (), flags) -#</pycode_BC695(py_expr)> diff --git a/pywraps/py_fixup.py b/pywraps/py_fixup.py deleted file mode 100644 index b862b0c..0000000 --- a/pywraps/py_fixup.py +++ /dev/null @@ -1,6 +0,0 @@ - -#<pycode_BC695(py_fixup)> -FIXUP_CREATED=FIXUPF_CREATED -FIXUP_EXTDEF=FIXUPF_EXTDEF -FIXUP_REL=FIXUPF_REL -#</pycode_BC695(py_fixup)> diff --git a/pywraps/py_fpro.hpp b/pywraps/py_fpro.hpp index fa96e49..268e6bf 100644 --- a/pywraps/py_fpro.hpp +++ b/pywraps/py_fpro.hpp @@ -96,7 +96,7 @@ private: //-------------------------------------------------------------------------- bool _from_fp(FILE *fp) { - if ( fp == NULL ) + if ( fp == nullptr ) return false; own = false; fn.sprnt("<FILE * %p>", fp); @@ -117,16 +117,16 @@ public: } //-------------------------------------------------------------------------- - qfile_t(PyObject *pycapsule = NULL) + qfile_t(PyObject *pycapsule = nullptr) { - fp = NULL; + fp = nullptr; own = true; fn.qclear(); __idc_cvt_id__ = PY_ICID_OPAQUE; bool ok; { PYW_GIL_CHECK_LOCKED_SCOPE(); - ok = pycapsule != NULL && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME); + ok = pycapsule != nullptr && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME); } if ( ok ) _from_capsule(pycapsule); @@ -135,21 +135,21 @@ public: //-------------------------------------------------------------------------- bool opened() { - return fp != NULL; + return fp != nullptr; } //-------------------------------------------------------------------------- void close() { - if ( fp == NULL ) + if ( fp == nullptr ) return; if ( own ) { - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; qfclose(fp); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; } - fp = NULL; + fp = nullptr; own = true; } @@ -163,10 +163,10 @@ public: bool open(const char *filename, const char *mode) { close(); - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; fp = qfopen(filename, mode); - Py_END_ALLOW_THREADS; - if ( fp == NULL ) + SWIG_PYTHON_THREAD_END_ALLOW; + if ( fp == nullptr ) return false; // Save file name fn = filename; @@ -177,8 +177,8 @@ public: //-------------------------------------------------------------------------- static qfile_t *from_fp(FILE *fp) { - if ( fp == NULL ) - return NULL; + if ( fp == nullptr ) + return nullptr; qfile_t *qf = new qfile_t(); qf->own = false; qf->fn.sprnt("<FILE * %p>", fp); @@ -192,16 +192,16 @@ public: { return PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ? from_fp((FILE *) PyCapsule_GetPointer(pycapsule, VALID_CAPSULE_NAME)) - : NULL; + : nullptr; } //-------------------------------------------------------------------------- static qfile_t *tmpfile() { FILE *fp; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; fp = qtmpfile(); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return from_fp(fp); } @@ -215,9 +215,9 @@ public: int seek(int64 offset, int whence = SEEK_SET) { int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qfseek(fp, offset, whence); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -225,9 +225,9 @@ public: int64 tell() { int64 rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qftell(fp); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -237,20 +237,20 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; PYW_GIL_CHECK_LOCKED_SCOPE(); int r; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; r = freadbytes(fp, buf, size, big_endian); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( r != 0 ) { free(buf); break; } - PyObject *ret = IDAPyStr_FromUTF8AndSize(buf, r); + PyObject *ret = PyUnicode_FromStringAndSize(buf, r); free(buf); return ret; } while ( false ); @@ -263,19 +263,19 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; PYW_GIL_CHECK_LOCKED_SCOPE(); int r; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; r = qfread(fp, buf, size); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( r <= 0 ) { free(buf); break; } - PyObject *ret = IDAPyStr_FromUTF8AndSize(buf, r); + PyObject *ret = PyUnicode_FromStringAndSize(buf, r); free(buf); return ret; } while ( false ); @@ -288,19 +288,19 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; PYW_GIL_CHECK_LOCKED_SCOPE(); char *p; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; p = qfgets(buf, size, fp); - Py_END_ALLOW_THREADS; - if ( p == NULL ) + SWIG_PYTHON_THREAD_END_ALLOW; + if ( p == nullptr ) { free(buf); break; } - PyObject *ret = IDAPyStr_FromUTF8(buf); + PyObject *ret = PyUnicode_FromString(buf); free(buf); return ret; } while ( false ); @@ -313,11 +313,11 @@ public: PYW_GIL_CHECK_LOCKED_SCOPE(); char *buf; Py_ssize_t sz; - IDAPyBytes_AsMemAndSize(py_buf, &buf, &sz); + PyBytes_AsStringAndSize(py_buf, &buf, &sz); int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = fwritebytes(fp, buf, int(sz), big_endian); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -325,16 +325,16 @@ public: int write(PyObject *py_buf) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !IDAPyStr_Check(py_buf) ) + if ( !PyUnicode_Check(py_buf) ) return 0; // Just so that there is no risk that the buffer returned by borref_t py_buf_ref(py_buf); qstring buf; - IDAPyStr_AsUTF8(&buf, py_buf); + PyUnicode_as_qstring(&buf, py_buf); int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qfwrite(fp, buf.c_str(), buf.length()); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -343,9 +343,9 @@ public: { PYW_GIL_CHECK_LOCKED_SCOPE(); int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qfputs(str, fp); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -354,11 +354,11 @@ public: { PYW_GIL_CHECK_LOCKED_SCOPE(); qoff64_t r; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; int pos = qfseek(fp, 0, SEEK_END); r = qftell(fp); qfseek(fp, pos, SEEK_SET); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return r; } @@ -367,9 +367,9 @@ public: { PYW_GIL_CHECK_LOCKED_SCOPE(); int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qflush(fp); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -377,42 +377,30 @@ public: PyObject *filename() { PYW_GIL_CHECK_LOCKED_SCOPE(); - return IDAPyStr_FromUTF8(fn.c_str()); + return PyUnicode_FromString(fn.c_str()); } //-------------------------------------------------------------------------- -#ifdef PY3 PyObject *get_byte() -#else - PyObject *get_char() -#endif { PYW_GIL_CHECK_LOCKED_SCOPE(); int ch; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; ch = qfgetc(fp); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( ch == EOF ) Py_RETURN_NONE; -#ifdef PY3 return Py_BuildValue("i", ch); -#else - return Py_BuildValue("c", ch); -#endif } //-------------------------------------------------------------------------- -#ifdef PY3 int put_byte(int chr) -#else - int put_char(char chr) -#endif { PYW_GIL_CHECK_LOCKED_SCOPE(); int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qfputc(chr, fp); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } }; diff --git a/pywraps/py_frame.hpp b/pywraps/py_frame.hpp index ca8f512..f4d580b 100644 --- a/pywraps/py_frame.hpp +++ b/pywraps/py_frame.hpp @@ -21,11 +21,25 @@ PyObject *py_get_stkvar(const insn_t &insn, const op_t &op, sval_t v) PYW_GIL_CHECK_LOCKED_SCOPE(); sval_t actval; member_t *member = get_stkvar(&actval, insn, op, v); - if ( member == NULL ) + if ( member == nullptr ) Py_RETURN_NONE; return Py_BuildValue("(O" PY_BV_SVAL ")", SWIG_InternalNewPointerObj(SWIG_as_voidptr(member), SWIGTYPE_p_member_t, 0), bvsval_t(actval)); } + +//------------------------------------------------------------------------- +inline bool is_funcarg_off(const func_t *pfn, uval_t frameoff) +{ + processor_t &ph = PH; + return ph.is_funcarg_off(pfn, frameoff); +} + +//------------------------------------------------------------------------- +inline sval_t lvar_off(const func_t *pfn, uval_t frameoff) +{ + processor_t &ph = PH; + return ph.lvar_off(pfn, frameoff); +} //</inline(py_frame)> diff --git a/pywraps/py_frame.py b/pywraps/py_frame.py deleted file mode 100644 index 8b4f240..0000000 --- a/pywraps/py_frame.py +++ /dev/null @@ -1,24 +0,0 @@ - -#<pycode_BC695(py_frame)> -add_auto_stkpnt2=add_auto_stkpnt -# in fact, we cannot simulate add_stkvar[23] here, because we simply -# don't have the insn_t object -- and no way of retrieving it, either, -# since cmd is gone -@bc695redef -def get_stkvar(*args): - if len(args) == 2: - import ida_ua - insn, op, v = ida_ua.cmd, args[0], args[1] - else: - insn, op, v = args - return _ida_frame.get_stkvar(insn, op, v) - -@bc695redef -def get_frame_part(*args): - import ida_funcs - if isinstance(args[0], ida_funcs.func_t): # 6.95: pfn, part, range - rnge, pfn, part = args[2], args[0], args[1] - else: # 7.00: range, pfn, part - rnge, pfn, part = args - return _ida_frame.get_frame_part(rnge, pfn, part) -#</pycode_BC695(py_frame)> diff --git a/pywraps/py_funcs.hpp b/pywraps/py_funcs.hpp index ccde749..20e9d31 100644 --- a/pywraps/py_funcs.hpp +++ b/pywraps/py_funcs.hpp @@ -15,10 +15,10 @@ def get_fchunk_referer(ea, idx): static ea_t get_fchunk_referer(ea_t ea, size_t idx) { func_t *pfn = get_fchunk(ea); - if ( pfn == NULL ) + if ( !is_func_tail(pfn) ) return BADADDR; func_parent_iterator_t dummy(pfn); // read referer info - if ( idx >= pfn->refqty || pfn->referers == NULL ) + if ( idx >= pfn->refqty || pfn->referers == nullptr ) return BADADDR; else return pfn->referers[idx]; diff --git a/pywraps/py_funcs.py b/pywraps/py_funcs.py index fd81561..fa50819 100644 --- a/pywraps/py_funcs.py +++ b/pywraps/py_funcs.py @@ -11,24 +11,3 @@ def calc_thunk_func_target(*args): else: return calc_thunk_func_target.__dict__["orig"](*args) #</pycode(py_funcs)> - -#<pycode_BC695(py_funcs)> -FUNC_STATIC=FUNC_STATICDEF -add_regarg2=add_regarg -clear_func_struct=lambda *args: True -def del_func_cmt(pfn, rpt): - set_func_cmt(pfn, "", rpt) -func_parent_iterator_set2=func_parent_iterator_set -func_setend=set_func_end -func_setstart=set_func_start -func_tail_iterator_set2=func_tail_iterator_set -def get_func_limits(pfn, limits): - import ida_range - rs = ida_range.rangeset_t() - if get_func_ranges(rs, pfn) == ida_idaapi.BADADDR: - return False - limits.start_ea = rs.begin().start_ea - limits.end_ea = rs.begin().end_ea - return True -get_func_name2=get_func_name -#</pycode_BC695(py_funcs)> diff --git a/pywraps/py_gdl.py b/pywraps/py_gdl.py index b312dc8..9339d68 100644 --- a/pywraps/py_gdl.py +++ b/pywraps/py_gdl.py @@ -39,16 +39,6 @@ class BasicBlock(object): for i in range(0, q.nsucc(self.id)): yield self._fc[q.succ(self.id, i)] - try: - if _BC695: - startEA = property(lambda self: self.start_ea, lambda self, ea: setattr(self, "start_ea", ea)) - endEA = property(lambda self: self.end_ea, lambda self, ea: setattr(self, "end_ea", ea)) - else: - startEA = ida_idaapi._make_badattr_property("startEA", "start_ea") - endEA = ida_idaapi._make_badattr_property("endEA", "end_ea") - except: - pass # BC695 not defined at compile-time - # ----------------------------------------------------------------------- class FlowChart(object): """ @@ -60,7 +50,7 @@ class FlowChart(object): Constructor @param f: A func_t type, use get_func(ea) to get a reference @param bounds: A tuple of the form (start, end). Used if "f" is None - @param flags: one of the FC_xxxx flags. One interesting flag is FC_PREDS + @param flags: one of the FC_xxxx flags. """ if (f is None) and (bounds is None or type(bounds) != tuple): raise Exception("Please specifiy either a function or start/end pair") @@ -99,4 +89,6 @@ class FlowChart(object): else: return self._getitem(index) +FC_PREDS = 0 # obsolete bit, do not use + #</pycode(py_gdl)> diff --git a/pywraps/py_graph.hpp b/pywraps/py_graph.hpp index 9c1d0a4..5b16642 100644 --- a/pywraps/py_graph.hpp +++ b/pywraps/py_graph.hpp @@ -7,7 +7,7 @@ class py_graph_t : public py_customidamemo_t typedef py_customidamemo_t inherited; protected: - void collect_class_callbacks_ids(pycim_callbacks_ids_t *out); + void collect_class_callbacks_ids(pycim_callbacks_ids_t *out) override; private: enum @@ -38,7 +38,7 @@ private: { iterator it = find(node_id); if ( it == end() ) - return NULL; + return nullptr; return &it->second; } nodetext_cache_t *add(const int node_id, const char *text, bgcolor_t bgcolor = DEFCOLOR) @@ -59,7 +59,7 @@ private: // don't perform sanity check for 'grcode_destroyed', since if we called // Close() on this object, it'll have been marked for later deletion in the // UI, and thus when we end up here, the view has already been destroyed. - bool found = pycim_lookup_info.find_by_py_view(NULL, (py_graph_t *) obj); + bool found = get_plugin_instance()->pycim_lookup_info.find_by_py_view(nullptr, (py_graph_t *) obj); QASSERT(30453, found || code == grcode_destroyed); if ( found ) { @@ -88,7 +88,7 @@ private: int _on_hint_epilog(char **hint, ref_t result); // graph is being destroyed - void on_graph_destroyed(mutable_graph_t * /*g*/ = NULL) + void on_graph_destroyed(mutable_graph_t * /*g*/ = nullptr) { refresh_needed = true; node_cache.clear(); @@ -120,7 +120,7 @@ private: "i", item2->n)); PyW_ShowCbErr(S_ON_CLICK); - return result == NULL || !PyObject_IsTrue(result.o); + return !result || !PyObject_IsTrue(result.o); } // a graph node has been double clicked @@ -139,13 +139,13 @@ private: "i", item->node)); PyW_ShowCbErr(S_ON_DBL_CLICK); - return result == NULL || !PyObject_IsTrue(result.o); + return !result || !PyObject_IsTrue(result.o); } // a graph viewer got focus void on_gotfocus(graph_viewer_t * /*view*/) { - if ( self.o == NULL ) + if ( !self ) return; PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -153,14 +153,14 @@ private: PyObject_CallMethod( self.o, (char *)S_ON_ACTIVATE, - NULL)); + nullptr)); PyW_ShowCbErr(S_ON_ACTIVATE); } // a graph viewer lost focus void on_lostfocus(graph_viewer_t * /*view*/) { - if ( self.o == NULL ) + if ( !self ) return; PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -168,7 +168,7 @@ private: PyObject_CallMethod( self.o, (char *)S_ON_DEACTIVATE, - NULL)); + nullptr)); PyW_ShowCbErr(S_ON_DEACTIVATE); } @@ -188,9 +188,9 @@ private: "O", py_nodes.o)); PyW_ShowCbErr(S_ON_CREATING_GROUP); - return (py_result == NULL || !IDAPyInt_Check(py_result.o)) + return (!py_result || !PyLong_Check(py_result.o)) ? 1 - : IDAPyInt_AsLong(py_result.o); + : PyLong_AsLong(py_result.o); } // a group is being deleted @@ -213,7 +213,7 @@ private: void show() { TWidget *view; - if ( pycim_lookup_info.find_by_py_view(&view, this) ) + if ( get_plugin_instance()->pycim_lookup_info.find_by_py_view(&view, this) ) display_widget(view, WOPN_DP_TAB); } @@ -228,7 +228,7 @@ private: // will return a place only when a node was previously selected place_t *old_pl = get_custom_viewer_place(view, false, &x, &y); - if ( old_pl != NULL ) + if ( old_pl != nullptr ) { user_graph_place_t *new_pl = (user_graph_place_t *) old_pl->clone(); new_pl->node = nid; @@ -237,7 +237,7 @@ private: } } - virtual void refresh() + virtual void refresh() override { refresh_needed = true; inherited::refresh(); @@ -251,9 +251,9 @@ private: return -1; TWidget *widget = find_widget(title); - if ( widget == NULL ) // create new widget + if ( widget == nullptr ) // create new widget { - lookup_entry_t &e = pycim_lookup_info.new_entry(this); + lookup_entry_t &e = get_plugin_instance()->pycim_lookup_info.new_entry(this); // get a unique graph id netnode id; char grnode[MAXSTR]; @@ -264,11 +264,11 @@ private: graph_viewer_t *pview = create_graph_viewer(title, id, s_callback, this, 0); this->self = ref_t(); display_widget(pview, WOPN_DP_TAB); - newref_t ret(PyObject_CallMethod(self, "hook", NULL)); - if ( pview != NULL ) + newref_t ret(PyObject_CallMethod(self, "hook", nullptr)); + if ( pview != nullptr ) viewer_fit_window(pview); bind(self, pview); - pycim_lookup_info.commit(e, view); + get_plugin_instance()->pycim_lookup_info.commit(e, view); } else { @@ -282,7 +282,7 @@ private: public: py_graph_t() { - // form = NULL; + // form = nullptr; refresh_needed = true; } @@ -292,7 +292,7 @@ public: return; py_graph_t *_this = (py_graph_t *) view_extract_this(self); - if ( _this == NULL || !pycim_lookup_info.find_by_py_view(NULL, _this) ) + if ( _this == nullptr || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(nullptr, _this) ) return; _this->jump_to_node(nid); @@ -302,9 +302,9 @@ public: { TWidget *view; py_graph_t *_this = (py_graph_t *) view_extract_this(self); - if ( _this == NULL || !pycim_lookup_info.find_by_py_view(&view, _this) ) - return NULL; - newref_t ret(PyObject_CallMethod(self, "unhook", NULL)); + if ( _this == nullptr || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(&view, _this) ) + return nullptr; + newref_t ret(PyObject_CallMethod(self, "unhook", nullptr)); close_widget(view, WCLS_CLOSE_LATER); return _this; } @@ -316,19 +316,19 @@ public: py_graph_t *py_graph = (py_graph_t *) view_extract_this(self); // New instance? - if ( py_graph == NULL ) + if ( py_graph == nullptr ) { qstring title; if ( !PyW_GetStringAttr(self, S_M_TITLE, &title) ) - return NULL; + return nullptr; // Form already created? try to get associated py_graph instance // so that we reuse it TWidget *existing = find_widget(title.c_str()); - if ( existing != NULL ) - pycim_lookup_info.find_by_view((py_customidamemo_t**) &py_graph, existing); + if ( existing != nullptr ) + get_plugin_instance()->pycim_lookup_info.find_by_view((py_customidamemo_t**) &py_graph, existing); - if ( py_graph == NULL ) + if ( py_graph == nullptr ) { py_graph = new py_graph_t(); } @@ -341,7 +341,7 @@ public: if ( py_graph->initialize(self, title.c_str()) < 0 ) { delete py_graph; - py_graph = NULL; + py_graph = nullptr; } } else @@ -379,17 +379,17 @@ void py_graph_t::on_user_refresh(mutable_graph_t *g) // Check return value to OnRefresh() call PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t ret(PyObject_CallMethod(self.o, (char *)S_ON_REFRESH, NULL)); + newref_t ret(PyObject_CallMethod(self.o, (char *)S_ON_REFRESH, nullptr)); PyW_ShowCbErr(S_ON_REFRESH); - if ( ret != NULL && PyObject_IsTrue(ret.o) ) + if ( ret != nullptr && PyObject_IsTrue(ret.o) ) { // Refer to the nodes ref_t nodes(PyW_TryGetAttrString(self.o, S_M_NODES)); - if ( ret != NULL && PyList_Check(nodes.o) ) + if ( ret != nullptr && PyList_Check(nodes.o) ) { // Refer to the edges ref_t edges(PyW_TryGetAttrString(self.o, S_M_EDGES)); - if ( ret != NULL && PyList_Check(edges.o) ) + if ( ret != nullptr && PyList_Check(edges.o) ) { // Resize the nodes int max_nodes = abs(int(PyList_Size(nodes.o))); @@ -416,9 +416,9 @@ void py_graph_t::on_user_refresh(mutable_graph_t *g) for ( j=0; j < qnumber(edge_ids); j++ ) { newref_t id(PySequence_GetItem(item.o, j)); - if ( id == NULL || !IDAPyInt_Check(id.o) ) + if ( !id || !PyLong_Check(id.o) ) break; - int v = int(IDAPyInt_AsLong(id.o)); + int v = int(PyLong_AsLong(id.o)); if ( v > max_nodes ) break; edge_ids[j] = v; @@ -429,7 +429,7 @@ void py_graph_t::on_user_refresh(mutable_graph_t *g) break; // Add the edge - g->add_edge(edge_ids[0], edge_ids[1], NULL); + g->add_edge(edge_ids[0], edge_ids[1], nullptr); } } } @@ -441,10 +441,10 @@ bool py_graph_t::on_user_text(mutable_graph_t * /*g*/, int node, const char **st { // If already cached then return the value nodetext_cache_t *c = node_cache.get(node); - if ( c != NULL ) + if ( c != nullptr ) { *str = c->text.c_str(); - if ( bg_color != NULL ) + if ( bg_color != nullptr ) *bg_color = c->bgcolor; return true; } @@ -453,16 +453,16 @@ bool py_graph_t::on_user_text(mutable_graph_t * /*g*/, int node, const char **st PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t result(PyObject_CallMethod(self.o, (char *)S_ON_GETTEXT, "i", node)); PyW_ShowCbErr(S_ON_GETTEXT); - if ( result == NULL ) + if ( !result ) return false; - bgcolor_t cl = bg_color == NULL ? DEFCOLOR : *bg_color; + bgcolor_t cl = bg_color == nullptr ? DEFCOLOR : *bg_color; qstring buf; // User returned a string? - if ( IDAPyStr_Check(result.o) ) + if ( PyUnicode_Check(result.o) ) { - IDAPyStr_AsUTF8(&buf, result.o); + PyUnicode_as_qstring(&buf, result.o); c = node_cache.add(node, buf.c_str(), cl); } // User returned a sequence of text and bgcolor @@ -472,16 +472,16 @@ bool py_graph_t::on_user_text(mutable_graph_t * /*g*/, int node, const char **st newref_t py_str(PySequence_GetItem(result.o, 0)); newref_t py_color(PySequence_GetItem(result.o, 1)); - if ( py_str != NULL && IDAPyStr_Check(py_str.o) ) - IDAPyStr_AsUTF8(&buf, py_str.o); - if ( py_color != NULL && PyNumber_Check(py_color.o) ) + if ( py_str && PyUnicode_Check(py_str.o) ) + PyUnicode_as_qstring(&buf, py_str.o); + if ( py_color && PyNumber_Check(py_color.o) ) cl = bgcolor_t(PyLong_AsUnsignedLong(py_color.o)); c = node_cache.add(node, buf.c_str(), cl); } *str = c->text.c_str(); - if ( bg_color != NULL ) + if ( bg_color != nullptr ) *bg_color = c->bgcolor; return true; @@ -510,11 +510,11 @@ int py_graph_t::_on_hint_epilog(char **hint, ref_t result) { // 'hint' must be allocated by qalloc() or qstrdup() // out: 0-use default hint, 1-use proposed hint - bool ok = result != NULL && IDAPyStr_Check(result.o); + bool ok = result != nullptr && PyUnicode_Check(result.o); if ( ok ) { qstring buf; - IDAPyStr_AsUTF8(&buf, result.o); + PyUnicode_as_qstring(&buf, result.o); *hint = buf.extract(); } return ok; @@ -565,7 +565,7 @@ ssize_t py_graph_t::gr_callback(int code, va_list va) { graph_viewer_t *view = va_arg(va, graph_viewer_t *); selection_item_t *item = va_arg(va, selection_item_t *); - handled = item != NULL && item->is_node; + handled = item != nullptr && item->is_node; if ( handled ) ret = on_dblclicked(view, item); } @@ -657,23 +657,23 @@ ssize_t py_graph_t::gr_callback(int code, va_list va) ret = 0; break; } - //grcode_changed_graph, // new graph has been set - //grcode_user_size, // calculate node size for user-defined graph - //grcode_user_title, // render node title of a user-defined graph - //grcode_user_draw, // render node of a user-defined graph + // grcode_changed_graph, // new graph has been set + // grcode_user_size, // calculate node size for user-defined graph + // grcode_user_title, // render node title of a user-defined graph + // grcode_user_draw, // render node of a user-defined graph return ret; } //------------------------------------------------------------------------- bool pyg_show(PyObject *self) { - return py_graph_t::Show(self) != NULL; + return py_graph_t::Show(self) != nullptr; } void pyg_close(PyObject *self) { py_graph_t *pyg = py_graph_t::Close(self); - if ( pyg != NULL ) + if ( pyg != nullptr ) delete pyg; } diff --git a/pywraps/py_graph.py b/pywraps/py_graph.py index e24b97b..415037f 100644 --- a/pywraps/py_graph.py +++ b/pywraps/py_graph.py @@ -183,11 +183,3 @@ class GraphViewer(ida_kernwin.CustomIDAMemo): # return True #</pydoc> #</pycode(py_graph)> - -#<pycode_BC695(py_graph)> -clr_node_info2=clr_node_info -del_node_info2=del_node_info -get_node_info2=get_node_info -set_node_info2=set_node_info -GraphViewer.GetTForm = GraphViewer.GetWidget -#</pycode_BC695(py_graph)> diff --git a/pywraps/py_hexrays.hpp b/pywraps/py_hexrays.hpp index 008bf92..5c5d40b 100644 --- a/pywraps/py_hexrays.hpp +++ b/pywraps/py_hexrays.hpp @@ -1,18 +1,26 @@ //------------------------------------------------------------------------- //<code(py_hexrays)> +static bool do_not_check_ctree = false; +static bool idapython_exiting = false; #ifdef WITH_HEXRAYS +#define DCLVL_SIMPLE 1 +#define DCLVL_FULL 2 static int _debug_hexrays_ctree = -1; -static bool is_debug_hexrays_ctree() +static int is_debug_hexrays_ctree(int level) { if ( _debug_hexrays_ctree < 0 ) - _debug_hexrays_ctree = qgetenv("IDAPYTHON_DEBUG_HEXRAYS_CTREEE"); - return bool(_debug_hexrays_ctree); + { + qstring tmp; + if ( qgetenv("IDAPYTHON_DEBUG_HEXRAYS_CTREE", &tmp) ) + _debug_hexrays_ctree = atol(tmp.c_str()); + } + return _debug_hexrays_ctree >= level; } //------------------------------------------------------------------------- -static void debug_hexrays_ctree(const char *format, ...) +static void debug_hexrays_ctree(int level, const char *format, ...) { - if ( is_debug_hexrays_ctree() ) + if ( is_debug_hexrays_ctree(level) && format != nullptr ) { va_list va; va_start(va, format); @@ -27,27 +35,29 @@ static void debug_hexrays_ctree(const char *format, ...) // - hexrays is unloaded before IDAPython // - we receive the notification about hexrays going away and: // + call hexrays_unloading__clear_python_clearable_references(); -// + set 'hexdsp = exit_time_dummy_hexdsp' (an NOP hexdsp) -// - we receive 'ui_term', and -// + set 'hexdsp = init_time_dummy_hexdsp' +// + set 'do_not_check_ctree = true' +// - we receive 'ui_database_closed', and +// + use 'idapython_dummy_hexdsp' +// + set 'do_not_check_ctree = false' // - IDAPython is unloaded, and during cleanup of the runtime data, // reachable citem_t's will get destroyed. // => this means we vill receive 'hx_c*t_cleanup' and 'hx_remitem' -// notifications most likely in the init_time_dummy_hexdsp(), -// rather than in exit_time_dummy_hexdsp() -- which is more than -// just a little counter-intuitive. -static void *idaapi init_time_dummy_hexdsp(int code, ...) +// notifications most likely in the idapython_dummy_hexdsp() +static void *idaapi idapython_dummy_hexdsp(int code, ...) { + if ( do_not_check_ctree ) + return nullptr; switch ( code ) { case hx_remitem: case hx_cexpr_t_cleanup: case hx_cinsn_t_cleanup: case hx_mop_t_erase: - case hx_mbl_array_t_term: + case hx_mba_t_term: case hx_valrng_t_clear: + case hx_udc_filter_t_cleanup: { -#ifdef _DEBUG +#ifdef TESTABLE_BUILD va_list va; va_start(va, code); void *item = va_arg(va, void *); @@ -55,15 +65,18 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) if ( code == hx_remitem ) QASSERT(30529, ((cinsn_t *)item)->op == cot_empty || ((cinsn_t *)item)->op == cit_empty); else if ( code == hx_cexpr_t_cleanup ) - QASSERT(30497, ((cexpr_t *)item)->op == cot_empty && ((cexpr_t *)item)->n == NULL); + QASSERT(30497, ((cexpr_t *)item)->op == cot_empty && ((cexpr_t *)item)->n == nullptr); else if ( code == hx_cinsn_t_cleanup ) - QASSERT(30498, ((cinsn_t *)item)->op == cit_empty && ((cinsn_t *)item)->cblock == NULL); + QASSERT(30498, ((cinsn_t *)item)->op == cit_empty && ((cinsn_t *)item)->cblock == nullptr); else if ( code == hx_mop_t_erase ) - QASSERT(30595, ((mop_t *)item)->t == mop_z && ((mop_t *)item)->nnn == NULL); - else if ( code == hx_mbl_array_t_term ) - QASSERT(30596, ((mbl_array_t *)item)->blocks == NULL); + QASSERT(30595, ((mop_t *)item)->t == mop_z && ((mop_t *)item)->nnn == nullptr); + else if ( code == hx_mba_t_term ) + QASSERT(30596, ((mba_t *)item)->blocks == nullptr); else if ( code == hx_valrng_t_clear ) QASSERT(30601, ((valrng_t *)item)->empty()); + else if ( code == hx_udc_filter_t_cleanup ) + QASSERT(30633, ((udc_filter_t *)item)->empty() + && !install_microcode_filter((udc_filter_t *)item, false)); else INTERR(30597); va_end(va); @@ -72,7 +85,7 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) break; case hx_remove_optinsn_handler: { -#ifdef _DEBUG +#ifdef TESTABLE_BUILD static bool in_removal = false; if ( !in_removal ) { @@ -80,7 +93,7 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) va_list va; va_start(va, code); optinsn_t *oi = va_arg(va, optinsn_t *); - QASSERT(30598, remove_optinsn_handler(oi) == false); // must have been removed already + QASSERT(30598, !remove_optinsn_handler(oi)); // must have been removed already in_removal = false; } #endif @@ -88,7 +101,7 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) break; case hx_remove_optblock_handler: { -#ifdef _DEBUG +#ifdef TESTABLE_BUILD static bool in_removal = false; if ( !in_removal ) { @@ -96,13 +109,41 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) va_list va; va_start(va, code); optblock_t *ob = va_arg(va, optblock_t *); - QASSERT(30599, remove_optblock_handler(ob) == false); // must have been removed already + QASSERT(30599, !remove_optblock_handler(ob)); // must have been removed already in_removal = false; } #endif } break; + case hx_install_microcode_filter: + { + va_list va; + va_start(va, code); + microcode_filter_t *mf = va_arg(va, microcode_filter_t *); + bool install = va_argi(va, bool); + if ( install ) + goto BAD_CODE; +#ifdef TESTABLE_BUILD + static bool in_removal = false; + if ( !in_removal ) + { + in_removal = true; + QASSERT(30620, !install_microcode_filter(mf, false)); // must have been removed already + in_removal = false; + } +#else + qnotused(mf); +#endif + } + break; + case hx_hexrays_free: +#ifdef TESTABLE_BUILD + if ( !idapython_exiting ) + goto BAD_CODE; +#endif + break; default: +BAD_CODE: #ifdef _DEBUG if ( under_debugger ) BPT; @@ -110,10 +151,14 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) warning("Hex-Rays Decompiler got called from Python without being loaded"); break; } - return NULL; + return nullptr; } -hexdsp_t *hexdsp = init_time_dummy_hexdsp; +hexdsp_t *get_idapython_hexdsp() +{ + auto hrdsp = get_hexdsp(); + return hrdsp == nullptr ? idapython_dummy_hexdsp : hrdsp; +} #endif // WITH_HEXRAYS #define MODULE_NAME "Hex-Rays Decompiler" // Copied from vd/hexrays.cpp @@ -136,8 +181,8 @@ void delete_qstring_printer_t(qstring_printer_t *qs) //------------------------------------------------------------------------- // A set of objects that were created from IDAPython. This is necessary in // order to delete those objects before the hexrays plugin is unloaded. -// Otherwise, IDAPython will still delete them, but the plugin's 'hexdsp' -// dispatcher function will point to dlclose()'d code. +// Otherwise, IDAPython will still delete them, but the plugin's +// dispatcher function will point to idapython_dummy_hexdsp enum hx_clearable_type_t { hxclr_unknown = 0, @@ -145,12 +190,13 @@ enum hx_clearable_type_t hxclr_cinsn_t, hxclr_cexpr_t, hxclr_cblock_t, - hxclr_mbl_array_t, + hxclr_mba_t, hxclr_mop_t, hxclr_minsn_t, hxclr_optinsn_t, hxclr_optblock_t, hxclr_valrng_t, + hxclr_udc_filter_t, }; struct hx_clearable_t { @@ -161,13 +207,28 @@ DECLARE_TYPE_AS_MOVABLE(hx_clearable_t); typedef qvector<hx_clearable_t> hx_clearables_t; static hx_clearables_t python_clearables; + +//------------------------------------------------------------------------- +static void debug_hexrays_dump_clearable_instances(int level=DCLVL_FULL) +{ + if ( is_debug_hexrays_ctree(level) ) + { + for ( size_t i = 0, n = python_clearables.size(); i < n; ++i ) + { + const hx_clearable_t &hxc = python_clearables[i]; + debug_hexrays_ctree(level, "\t#%3d: %p (%d)\n", int(i), hxc.ptr, int(hxc.type)); + } + } +} + +//------------------------------------------------------------------------- void hexrays_unloading__clear_python_clearable_references(void) { - debug_hexrays_ctree("hexrays_unloading__clear_python_clearable_references()\n"); + debug_hexrays_ctree(DCLVL_SIMPLE, "hexrays_unloading__clear_python_clearable_references()\n"); for ( size_t i = 0, n = python_clearables.size(); i < n; ++i ) { const hx_clearable_t &hxc = python_clearables[i]; - debug_hexrays_ctree("cleaning up %p (%d)\n", hxc.ptr, int(hxc.type)); + debug_hexrays_ctree(DCLVL_SIMPLE, "cleaning up %p (%d)\n", hxc.ptr, int(hxc.type)); switch ( hxc.type ) { case hxclr_cfuncptr: @@ -182,8 +243,8 @@ void hexrays_unloading__clear_python_clearable_references(void) case hxclr_cblock_t: ((cblock_t *) hxc.ptr)->clear(); break; - case hxclr_mbl_array_t: - ((mbl_array_t *) hxc.ptr)->term(); + case hxclr_mba_t: + ((mba_t *) hxc.ptr)->term(); break; case hxclr_mop_t: ((mop_t *) hxc.ptr)->erase(); @@ -200,6 +261,13 @@ void hexrays_unloading__clear_python_clearable_references(void) case hxclr_valrng_t: ((valrng_t *) hxc.ptr)->set_none(); break; + case hxclr_udc_filter_t: + { + udc_filter_t *uf = (udc_filter_t *) hxc.ptr; + install_microcode_filter(uf, false); + uf->cleanup(); + } + break; default: INTERR(30499); } } @@ -210,7 +278,7 @@ void hexrays_register_python_clearable_instance( void *ptr, hx_clearable_type_t type) { - if ( ptr == NULL ) + if ( ptr == nullptr ) return; for ( size_t i = 0, n = python_clearables.size(); i < n; ++i ) if ( python_clearables[i].ptr == ptr ) @@ -218,7 +286,8 @@ void hexrays_register_python_clearable_instance( hx_clearable_t &hxc = python_clearables.push_back(); hxc.ptr = ptr; hxc.type = type; - debug_hexrays_ctree("registered %p\n", hxc.ptr); + debug_hexrays_ctree(DCLVL_SIMPLE, "registered %p\n", hxc.ptr); + debug_hexrays_dump_clearable_instances(DCLVL_FULL); } //------------------------------------------------------------------------- @@ -227,16 +296,18 @@ void hexrays_register_python_clearable_instance( // runtime, or it will be done by the C tree itself later. void hexrays_deregister_python_clearable_instance(void *ptr) { + debug_hexrays_ctree(DCLVL_SIMPLE, "maybe de-registering %p\n", ptr); for ( size_t i = 0, n = python_clearables.size(); i < n; ++i ) { const hx_clearable_t &hxc = python_clearables[i]; if ( hxc.ptr == ptr ) { + debug_hexrays_ctree(DCLVL_SIMPLE, "de-registered %p\n", hxc.ptr); python_clearables.erase(python_clearables.begin() + i); - debug_hexrays_ctree("de-registered %p\n", hxc.ptr); break; } } + debug_hexrays_dump_clearable_instances(DCLVL_FULL); } //------------------------------------------------------------------------- @@ -252,46 +323,23 @@ hx_clearable_type_t hexrays_is_registered_python_clearable_instance( //------------------------------------------------------------------------- // //------------------------------------------------------------------------- -static bool is_hexrays_plugin(const plugin_info_t *pinfo) +static bool is_hexrays_plugin(const plugin_t *entry) { - bool is_hx = false; - if ( pinfo != NULL && pinfo->entry != NULL ) - { - const plugin_t *p = pinfo->entry; - if ( streq(p->wanted_name, MODULE_NAME) ) - is_hx = true; - } - return is_hx; + return entry != nullptr && streq(entry->wanted_name, MODULE_NAME); } //------------------------------------------------------------------------- static void try_init() { init_hexrays_plugin(0); - if ( hexdsp != NULL ) + if ( get_hexdsp() != nullptr ) msg("IDAPython Hex-Rays bindings initialized.\n"); } -//------------------------------------------------------------------------- -static void *idaapi exit_time_dummy_hexdsp(int /*code*/, ...) -{ -/* This callback exists to avoid crashes if the user calls any hexrays functions - after unloading the decompiler. - switch ( code ) - { - case hx_cexpr_t_cleanup: break; - case hx_cinsn_t_cleanup: break; - default: break; - }*/ - return NULL; -} - //------------------------------------------------------------------------- inline bool hexdsp_inited() { - return hexdsp != NULL - && hexdsp != init_time_dummy_hexdsp - && hexdsp != exit_time_dummy_hexdsp; + return get_hexdsp() != nullptr; } //------------------------------------------------------------------------- @@ -304,18 +352,19 @@ static ssize_t idaapi ida_hexrays_ui_notification(void *, int code, va_list va) if ( !hexdsp_inited() ) { const plugin_info_t *pi = va_arg(va, plugin_info_t *); - if ( is_hexrays_plugin(pi) ) + if ( pi != nullptr && is_hexrays_plugin(pi->entry) ) try_init(); } break; - case ui_plugin_unloading: - if ( hexdsp != NULL && hexdsp != init_time_dummy_hexdsp ) + case ui_destroying_plugmod: + if ( get_hexdsp() != nullptr ) { - const plugin_info_t *pi = va_arg(va, plugin_info_t *); - if ( is_hexrays_plugin(pi) ) + /*const plugmod_t *plugmod =*/ va_arg(va, plugmod_t *); + const plugin_t *entry = va_arg(va, plugin_t *); + if ( is_hexrays_plugin(entry) ) { - QASSERT(30500, hexdsp != exit_time_dummy_hexdsp); + QASSERT(30500, !do_not_check_ctree); // Make sure all the refcounted objects are cleared right away. hexrays_unloading__clear_python_clearable_references(); @@ -323,12 +372,12 @@ static ssize_t idaapi ida_hexrays_ui_notification(void *, int code, va_list va) // Make sure all hooks are unhooked hexrays_unloading__unhook_hooks(); - hexdsp = exit_time_dummy_hexdsp; + do_not_check_ctree = true; } } break; - case ui_term: - hexdsp = init_time_dummy_hexdsp; + case ui_database_closed: + do_not_check_ctree = false; break; } return 0; @@ -340,20 +389,33 @@ static void ida_hexrays_init(void) {} //------------------------------------------------------------------------- static void ida_hexrays_term(void) { + idapython_exiting = true; idapython_unhook_from_notification_point( - HT_UI, ida_hexrays_ui_notification, NULL); + HT_UI, ida_hexrays_ui_notification, nullptr); } //------------------------------------------------------------------------- static void ida_hexrays_closebase(void) {} + +//------------------------------------------------------------------------- +static void install_udc_filter(udc_filter_t *instance) +{ + install_microcode_filter(instance, true); +} + +//------------------------------------------------------------------------- +static bool remove_udc_filter(udc_filter_t *instance) +{ + return install_microcode_filter(instance, false); +} //</code(py_hexrays)> //<inline(py_hexrays)> //------------------------------------------------------------------------- -void py_debug_hexrays_ctree(const char *msg) +void py_debug_hexrays_ctree(int level, const char *msg) { - debug_hexrays_ctree(msg); + debug_hexrays_ctree(level, msg); } //--------------------------------------------------------------------- @@ -374,7 +436,7 @@ bool py_init_hexrays_plugin(int flags=0) // the idapython_hr-decompile test.) vdui_t *py_get_widget_vdui(TWidget *f) { - return hexdsp_inited() ? get_widget_vdui(f) : NULL; + return hexdsp_inited() ? get_widget_vdui(f) : nullptr; } //------------------------------------------------------------------------- @@ -399,5 +461,5 @@ void py_term_hexrays_plugin(void) {} //</inline(py_hexrays)> //<init(py_hexrays)> -idapython_hook_to_notification_point(HT_UI, ida_hexrays_ui_notification, NULL, /*is_hooks_base=*/ false); +idapython_hook_to_notification_point(HT_UI, ida_hexrays_ui_notification, nullptr, /*is_hooks_base=*/ false); //</init(py_hexrays)> diff --git a/pywraps/py_hexrays.py b/pywraps/py_hexrays.py index 250806b..c35392e 100644 --- a/pywraps/py_hexrays.py +++ b/pywraps/py_hexrays.py @@ -9,45 +9,25 @@ hexrays_failure_t.__str__ = lambda self: str("%x: %s" % (self.errea, self.desc() # Renamings is_allowed_on_small_struni = accepts_small_udts is_small_struni = is_small_udt +mbl_array_t = mba_t -# --------------------------------------------------------------------- +# NOTE: Strictly for backward-compatibily reasons (i.e., not +# to break existing scripts), and will never be thrown. class DecompilationFailure(Exception): - """ - Raised on a decompilation error. + pass - The associated hexrays_failure_t object is stored in the - 'info' member of this exception. """ - - def __init__(self, info): - Exception.__init__(self, 'Decompilation failed: %s' % (str(info), )) - self.info = info - return - -# --------------------------------------------------------------------- +# NOTE: We need to keep this `decompile` prototype because some +# scripts might be passing arguments by keyword def decompile(ea, hf=None, flags=0): - if isinstance(ea, ida_idaapi.integer_types): - func = ida_funcs.get_func(ea) - if not func: return - elif type(ea) == ida_funcs.func_t: - func = ea - else: - raise RuntimeError('arg 1 of decompile expects either ea_t or cfunc_t argument') + """ + Decompile a function. - if hf is None: - hf = hexrays_failure_t() - - ptr = _ida_hexrays.decompile_func(func, hf, flags) - - if ptr.__deref__() is None: - raise DecompilationFailure(hf) - - return ptr - -# --------------------------------------------------------------------- -# stringify all string types -#qtype.__str__ = qtype.c_str -#qstring.__str__ = qstring.c_str -#citem_cmt_t.__str__ = citem_cmt_t.c_str + @param ea an address belonging to the function, or an ida_funcs.func_t object + @param hf extended error information (if failed) + @param flags decomp_flags bitwise combination of `DECOMP_...` bits + @return the decompilation result (a `ida_hexrays.cfunc_t` wrapper), or None + """ + return decompile_func(ea, hf, flags) # --------------------------------------------------------------------- # listify all list types @@ -156,7 +136,7 @@ def cinsn_details(self): cinsn_t.details = property(cinsn_details) cfuncptr_t.__str__ = lambda self: str(self.__deref__()) -cfuncptr_t.__eq__ = lambda self, other: self.__ptrval__() == other.__ptrval__() +cfuncptr_t.__eq__ = lambda self, other: self.__ptrval__() == other.__ptrval__() if isinstance(other, cfuncptr_t) else False import ida_typeinf def cfunc_type(self): @@ -169,7 +149,7 @@ def cfunc_type(self): cfunc_t.type = property(cfunc_type) cfuncptr_t.type = property(lambda self: self.__deref__().type) -cfunc_t.arguments = property(lambda self: [o for o in self.lvars if o.is_arg_var]) +cfunc_t.arguments = property(lambda self: [self.lvars[i] for i in self.argidx]) cfuncptr_t.arguments = property(lambda self: self.__deref__().arguments) cfunc_t.lvars = property(cfunc_t.get_lvars) @@ -464,10 +444,3 @@ def remove_hexrays_callback(callback): return 0 #</pycode(py_hexrays)> - -#<pycode_BC695(py_hexrays)> -get_tform_vdui=get_widget_vdui -hx_get_tform_vdui=hx_get_widget_vdui -HEXRAYS_API_MAGIC1=(HEXRAYS_API_MAGIC>>32) -HEXRAYS_API_MAGIC2=(HEXRAYS_API_MAGIC&0xFFFFFFFF) -#</pycode_BC695(py_hexrays)> diff --git a/pywraps/py_hexrays_hooks.hpp b/pywraps/py_hexrays_hooks.hpp index c0ee039..a307e51 100644 --- a/pywraps/py_hexrays_hooks.hpp +++ b/pywraps/py_hexrays_hooks.hpp @@ -17,8 +17,8 @@ static void hexrays_unloading__unhook_hooks(void) } //------------------------------------------------------------------------- -Hexrays_Hooks::Hexrays_Hooks(uint32 _flags) - : hooks_base_t("ida_hexrays.Hexrays_Hooks", NULL, hook_type_t(-1), _flags), +Hexrays_Hooks::Hexrays_Hooks(uint32 _flags, uint32 _hkcb_flags) + : hooks_base_t("ida_hexrays.Hexrays_Hooks", nullptr, hook_type_t(-1), _flags, _hkcb_flags), hooked(false) { hexrays_hooks_instances.push_back(this); @@ -50,7 +50,7 @@ struct Hexrays_Hooks : public hooks_base_t bool hooked; - Hexrays_Hooks(uint32 _flags=0); + Hexrays_Hooks(uint32 _flags=0, uint32 _hkcb_flags=HKCB_GLOBAL); virtual ~Hexrays_Hooks(); bool hook() @@ -66,7 +66,7 @@ struct Hexrays_Hooks : public hooks_base_t return !hooked; } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenHEXRAYS:methods @@ -82,24 +82,54 @@ struct Hexrays_Hooks : public hooks_base_t } private: - static ssize_t handle_create_hint_output(PyObject *o, vdui_t *, qstring *out_hint, int *out_implines) + static ssize_t handle_create_hint_output( + PyObject *o, + vdui_t *, + qstring *out_hint, + int *out_implines) { ssize_t rc = 0; - if ( o != NULL && PySequence_Check(o) && PySequence_Size(o) == 3 ) + if ( o != nullptr && PySequence_Check(o) && PySequence_Size(o) == 3 ) { newref_t py_rc(PySequence_GetItem(o, 0)); newref_t py_hint(PySequence_GetItem(o, 1)); newref_t py_implines(PySequence_GetItem(o, 2)); - if ( IDAPyInt_Check(py_rc.o) - && IDAPyStr_Check(py_hint.o) - && IDAPyInt_Check(py_implines.o) - && IDAPyStr_AsUTF8(out_hint, py_hint.o) ) + qstring plugin_hint; + if ( PyLong_Check(py_rc.o) + && PyUnicode_Check(py_hint.o) + && PyLong_Check(py_implines.o) + && PyUnicode_as_qstring(&plugin_hint, py_hint.o) ) { - rc = IDAPyInt_AsLong(py_rc.o); - *out_implines = IDAPyInt_AsLong(py_implines.o); + if ( !out_hint->empty() + && out_hint->last() != '\n' + && !plugin_hint.empty() ) + { + out_hint->append('\n'); + } + out_hint->append(plugin_hint); + rc = PyLong_AsLong(py_rc.o); + if ( rc == 2 ) + rc = 0; + *out_implines += PyLong_AsLong(py_implines.o); } } return rc; } + + static ssize_t handle_build_callinfo_output( + PyObject *o, + mblock_t *, + tinfo_t *, + mcallinfo_t **out_callinfo) + { + if ( o == nullptr || o == Py_None ) + return 0; + mcallinfo_t *mi = nullptr; + const int cvt = SWIG_ConvertPtr(o, (void **) &mi, SWIGTYPE_p_mcallinfo_t, 0); + if ( !SWIG_IsOK(cvt) || mi == nullptr ) + return 0; + *out_callinfo = new mcallinfo_t(*mi); + return 0; + } }; //</inline(py_hexrays_hooks)> diff --git a/pywraps/py_ida.py b/pywraps/py_ida.py index 311fbab..4f0eabf 100644 --- a/pywraps/py_ida.py +++ b/pywraps/py_ida.py @@ -1,4 +1,6 @@ #<pycode(py_ida)> +import sys + def __make_idainfo_bound(func, attr): def __func(self, *args): return func(*args) @@ -45,7 +47,7 @@ idainfo_get_pack_mode = inf_get_pack_mode idainfo_set_pack_mode = inf_set_pack_mode __make_idainfo_accessors(None, "get_pack_mode", "set_pack_mode") -idainfo_is_32bit = inf_is_32bit +def idainfo_is_32bit(): return not inf_is_16bit() # in reality this means "is 32bit or higher" __make_idainfo_getter("is_32bit") idainfo_is_64bit = inf_is_64bit @@ -138,6 +140,11 @@ show_all_comments = inf_show_all_comments show_comments = lambda *args: not inf_hide_comments() show_repeatables = inf_show_repeatables +inf_get_comment = inf_get_cmt_indent +inf_set_comment = inf_set_cmt_indent +idainfo_comment_get = inf_get_cmt_indent +idainfo_comment_set = inf_set_cmt_indent + __make_idainfo_accessors(None, "is_graph_view", "set_graph_view") if ida_idaapi.uses_swig_builtins: @@ -152,41 +159,6 @@ SW_TESTMODE = _scope.SCF_TESTMODE SW_SHHID_ITEM = _scope.SCF_SHHID_ITEM SW_SHHID_FUNC = _scope.SCF_SHHID_FUNC SW_SHHID_SEGM = _scope.SCF_SHHID_SEGM -#</pycode(py_ida)> - - -#<pycode_BC695(py_ida)> -AF2_ANORET=AF_ANORET -AF2_CHKUNI=AF_CHKUNI -AF2_DATOFF=AF_DATOFF -AF2_DOCODE=AF_DOCODE -AF2_DODATA=AF_DODATA -AF2_FTAIL=AF_FTAIL -AF2_HFLIRT=AF_HFLIRT -AF2_JUMPTBL=AF_JUMPTBL -AF2_MEMFUNC=AF_MEMFUNC -AF2_PURDAT=AF_PURDAT -AF2_REGARG=AF_REGARG -AF2_SIGCMT=AF_SIGCMT -AF2_SIGMLT=AF_SIGMLT -AF2_STKARG=AF_STKARG -AF2_TRFUNC=AF_TRFUNC -AF2_VERSP=AF_VERSP -AF_ASCII=AF_STRLIT -ASCF_AUTO=STRF_AUTO -ASCF_COMMENT=STRF_COMMENT -ASCF_GEN=STRF_GEN -ASCF_SAVECASE=STRF_SAVECASE -ASCF_SERIAL=STRF_SERIAL -ASCF_UNICODE=STRF_UNICODE -INFFL_LZERO=OFLG_LZERO -ansi2idb=ida_idaapi._BC695.identity -idb2scr=ida_idaapi._BC695.identity -scr2idb=ida_idaapi._BC695.identity -showAllComments=show_all_comments -showComments=show_comments -showRepeatables=show_repeatables -toEA=to_ea def __wrap_hooks_callback(klass, new_name, old_name, do_call): bkp_name = "__real_%s" % new_name @@ -197,60 +169,44 @@ def __wrap_hooks_callback(klass, new_name, old_name, do_call): rc = do_call(cb, *args) return rc - setattr(klass, bkp_name, getattr(klass, new_name)) - setattr(__wrapper, "bc695_trampoline", True) + new_cb = getattr(klass, new_name) + __wrapper.__doc__ = new_cb.__doc__ + setattr(klass, bkp_name, new_cb) + setattr(__wrapper, "__trampoline", True) setattr(klass, new_name, __wrapper) + return __wrapper -idainfo.ASCIIbreak = idainfo.strlit_break -idainfo.ASCIIpref = idainfo.strlit_pref -idainfo.ASCIIsernum = idainfo.strlit_sernum -idainfo.ASCIIzeroes = idainfo.strlit_zeroes -idainfo.asciiflags = idainfo.strlit_flags -idainfo.beginEA = idainfo.start_ea -idainfo.binSize = idainfo.bin_prefix_size -def my_get_proc_name(self): - return [self.procname, self.procname] -idainfo.get_proc_name = my_get_proc_name -idainfo.graph_view = property(idainfo.is_graph_view, idainfo.set_graph_view) -idainfo.mf = property(idainfo.is_be, idainfo.set_be) -idainfo.namelen = idainfo.max_autoname_len -idainfo.omaxEA = idainfo.omax_ea -idainfo.ominEA = idainfo.omin_ea -def make_outflags_accessors(bit): - def getter(self): - return (self.outflags & bit) != 0 - def setter(self, value): - if value: - self.outflags |= bit - else: - self.outflags &= ~bit - return getter, setter -idainfo.s_assume = property(*make_outflags_accessors(OFLG_GEN_ASSUME)) -idainfo.s_auto = property(idainfo.is_auto_enabled, idainfo.set_auto_enabled) -idainfo.s_null = property(*make_outflags_accessors(OFLG_GEN_NULL)) -idainfo.s_org = property(*make_outflags_accessors(OFLG_GEN_ORG)) -idainfo.s_prefseg = property(*make_outflags_accessors(OFLG_PREF_SEG)) -idainfo.s_showauto = property(*make_outflags_accessors(OFLG_SHOW_AUTO)) -idainfo.s_showpref = property(*make_outflags_accessors(OFLG_SHOW_PREF)) -idainfo.s_void = property(*make_outflags_accessors(OFLG_SHOW_VOID)) -idainfo.startIP = idainfo.start_ip -idainfo.startSP = idainfo.start_sp -def make_lflags_accessors(bit): - def getter(self): - return (self.lflags & bit) != 0 - def setter(self, value): - if value: - self.lflags |= bit - else: - self.lflags &= ~bit - return getter, setter -idainfo.wide_high_byte_first = property(*make_lflags_accessors(LFLG_WIDE_HBF)) -def make_obsolete_accessors(): - def getter(self): - return False - def setter(self, value): - pass - return getter, setter -idainfo.allow_nonmatched_ops = property(*make_obsolete_accessors()) -idainfo.check_manual_ops = property(*make_obsolete_accessors()) -#</pycode_BC695(py_ida)> + +def __set_module_dynattrs(modname, pdict): + import types + class _module_wrapper_t(types.ModuleType): + def __init__(self, orig): + self.orig = orig + def __getattribute__(self, name): + if name in pdict: + return pdict[name][0]() + elif name == "orig": + return types.ModuleType.__getattribute__(self, name) + elif name == "__dict__": + d = self.orig.__dict__ + d = d.copy() + for name in pdict: + d[name] = pdict[name][0]() + return d + else: + return getattr(self.orig, name) + def __setattr__(self, name, value): + if name == "orig": + types.ModuleType.__setattr__(self, name, value) + else: + return setattr(self.orig, name, value) + + sys.modules[modname] = _module_wrapper_t(sys.modules[modname]) + +__set_module_dynattrs( + __name__, + { + "MAXADDR" : (lambda: inf_get_privrange_start_ea(), None), + }) + +#</pycode(py_ida)> diff --git a/pywraps/py_idaapi.hpp.in b/pywraps/py_idaapi.hpp.in index 82aafc2..8a2dbf3 100644 --- a/pywraps/py_idaapi.hpp.in +++ b/pywraps/py_idaapi.hpp.in @@ -6,15 +6,15 @@ #define GET_THIS() py_customidamemo_t *_this = (py_customidamemo_t *) view_extract_this(self) #define CHK_THIS() \ GET_THIS(); \ - if ( _this == NULL ) \ + if ( _this == nullptr ) \ return; #define CHK_THIS_OR_NULL() \ GET_THIS(); \ - if ( _this == NULL ) \ - return NULL; + if ( _this == nullptr ) \ + return nullptr; #define CHK_THIS_OR_NONE() \ GET_THIS(); \ - if ( _this == NULL ) \ + if ( _this == nullptr ) \ Py_RETURN_NONE @@ -50,9 +50,9 @@ PyObject *pygc_set_groups_visibility(PyObject *self, PyObject *groups, PyObject TWidget *pycim_get_widget(PyObject *self) { CHK_THIS_OR_NULL(); - TWidget *widget = NULL; - if ( !pycim_lookup_info.find_by_py_view(&widget, _this) ) - return NULL; + TWidget *widget = nullptr; + if ( !get_plugin_instance()->pycim_lookup_info.find_by_py_view(&widget, _this) ) + return nullptr; return widget; } @@ -77,10 +77,10 @@ void pycim_view_close(PyObject *self) static void _ida_idaapi_notify_init_term(int what) { newref_t py_mod(PyImport_ImportModule("ida_idaapi")); - if ( py_mod != NULL ) + if ( py_mod != nullptr ) { newref_t py_obj(PyObject_GetAttrString(py_mod.o, NOTIFY_DISPATCHER_INSTANCE)); - if ( py_obj != NULL && py_obj.o != Py_None ) + if ( py_obj != nullptr && py_obj.o != Py_None ) PyObject_CallMethod(py_obj.o, NOTIFY_DISPATCHER_DISPATCH_METHOD, "i", what); } } @@ -124,7 +124,7 @@ static PyObject *py_parse_command_line(const char *cmdline) PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t args; - if ( parse_command_line(&args, NULL, cmdline, LP_PATH_WITH_ARGS) == 0 ) + if ( parse_command_line(&args, nullptr, cmdline, LP_PATH_WITH_ARGS) == 0 ) Py_RETURN_NONE; return qstrvec2pylist(args); } @@ -197,33 +197,14 @@ idaman PyObject *ida_export format_basestring(PyObject *_in) // accepts UTF-8 everywhere internally (and this will end up in a // 'msg' call eventually.) qstring utf8; -#ifdef PY3 - if ( !IDAPyStr_AsUTF8(&utf8, _in) ) - return NULL; -#else - PyObject *_pystr; - ref_t _tmp; - if ( PyUnicode_Check(_in) ) - { - _tmp = newref_t(PyUnicode_AsUTF8String(_in)); - if ( _tmp == NULL ) - return _in; - _pystr = _tmp.o; - } - else - { - _pystr = _in; - } - - if ( !IDAPyStr_AsUTF8(&utf8, _pystr) ) - return NULL; -#endif + if ( !PyUnicode_as_qstring(&utf8, _in) ) + return nullptr; char *in_bytes = utf8.begin(); Py_ssize_t in_len = utf8.length(); char quote = '\''; - if ( memchr(in_bytes, '\'', in_len) != NULL - && memchr(in_bytes, '"', in_len) == NULL ) + if ( memchr(in_bytes, '\'', in_len) != nullptr + && memchr(in_bytes, '"', in_len) == nullptr ) { quote = '"'; } @@ -257,7 +238,7 @@ idaman PyObject *ida_export format_basestring(PyObject *_in) buf.append(c); } buf.append(quote); - return IDAPyStr_FromUTF8AndSize(buf.c_str(), buf.length()); + return PyUnicode_FromStringAndSize(buf.c_str(), buf.length()); } /* diff --git a/pywraps/py_idaapi.py b/pywraps/py_idaapi.py index a56cf76..83fa934 100644 --- a/pywraps/py_idaapi.py +++ b/pywraps/py_idaapi.py @@ -99,17 +99,18 @@ SEEK_CUR = 1 # from the current position SEEK_END = 2 # from the file end # Plugin constants -PLUGIN_MOD = 0x0001 -PLUGIN_DRAW = 0x0002 -PLUGIN_SEG = 0x0004 -PLUGIN_UNL = 0x0008 -PLUGIN_HIDE = 0x0010 -PLUGIN_DBG = 0x0020 -PLUGIN_PROC = 0x0040 -PLUGIN_FIX = 0x0080 -PLUGIN_SKIP = 0 -PLUGIN_OK = 1 -PLUGIN_KEEP = 2 +PLUGIN_MOD = 0x0001 +PLUGIN_DRAW = 0x0002 +PLUGIN_SEG = 0x0004 +PLUGIN_UNL = 0x0008 +PLUGIN_HIDE = 0x0010 +PLUGIN_DBG = 0x0020 +PLUGIN_PROC = 0x0040 +PLUGIN_FIX = 0x0080 +PLUGIN_MULTI = 0x0100 +PLUGIN_SKIP = 0 +PLUGIN_OK = 1 +PLUGIN_KEEP = 2 # PyIdc conversion object IDs PY_ICID_INT64 = 0 @@ -230,6 +231,12 @@ def _bounded_getitem_iterator(self): # ----------------------------------------------------------------------- class plugin_t(pyidc_opaque_object_t): """Base class for all scripted plugins.""" + def run(self, arg): pass + def term(self): pass + +# ----------------------------------------------------------------------- +class plugmod_t(pyidc_opaque_object_t): + """Base class for all scripted multi-plugins.""" pass # ----------------------------------------------------------------------- @@ -306,7 +313,7 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__): def as_cstr(val): """ Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) - It scans for the first \x00 and returns the string value up to that point. + It scans for the first \\x00 and returns the string value up to that point. """ if isinstance(val, PyIdc_cvt_refclass__): val = val.value @@ -345,6 +352,12 @@ def as_signed(v, nbits = 32): """ return -(( ~v & ((1 << nbits)-1) ) + 1) if v & (1 << nbits-1) else v +# ---------------------------------------------------------------------- +def TRUNC(ea): + """ Truncate EA for the current application bitness""" + import _ida_ida + return (ea & 0xFFFFFFFFFFFFFFFF) if _ida_ida.inf_is_64bit() else (ea & 0xFFFFFFFF) + # ---------------------------------------------------------------------- def copy_bits(v, s, e=-1): """ @@ -437,32 +450,45 @@ def IDAPython_FormatExc(etype, value=None, tb=None, limit=None): # ------------------------------------------------------------ -def IDAPython_ExecScript(script, g, print_error=True): +def IDAPython_ExecScript(path, g, print_error=True): """ Run the specified script. - It also addresses http://code.google.com/p/idapython/issues/detail?id=42 This function is used by the low-level plugin code. """ - script = _utf8_native(script) - scriptpath = os.path.dirname(script) - if len(scriptpath) and scriptpath not in sys.path: - sys.path.append(scriptpath) + path = _utf8_native(path) + path_dir = os.path.dirname(path) + if len(path_dir) and path_dir not in sys.path: + sys.path.append(path_dir) argv = sys.argv - sys.argv = [ script ] + sys.argv = [path] # Adjust the __file__ path in the globals we pass to the script FILE_ATTR = "__file__" has__file__ = FILE_ATTR in g if has__file__: old__file__ = g[FILE_ATTR] - g[FILE_ATTR] = script + g[FILE_ATTR] = path try: - with open(script) as fin: - code = compile(fin.read(), script, 'exec') + if sys.version_info.major >= 3: + with open(path, "rb") as fin: + raw = fin.read() + encoding = "UTF-8" # UTF-8 by default: https://www.python.org/dev/peps/pep-3120/ + + # Look for a 'coding' comment + encoding_pat = re.compile(r'\s*#.*coding[:=]\s*([-\w.]+).*') + for line in raw.decode("ASCII", errors='replace').split("\n"): + match = encoding_pat.match(line) + if match: + encoding = match.group(1) + break + + code = compile(raw.decode(encoding), path, 'exec') exec(code, g) + else: + execfile(path, g) PY_COMPILE_ERR = None except Exception as e: PY_COMPILE_ERR = "%s\n%s" % (str(e), traceback.format_exc()) @@ -479,23 +505,19 @@ def IDAPython_ExecScript(script, g, print_error=True): return PY_COMPILE_ERR # ------------------------------------------------------------ -def IDAPython_LoadProcMod(script, g, print_error=True): +def IDAPython_LoadProcMod(path, g, print_error=True): """ Load processor module. """ - script = _utf8_native(script) + path = _utf8_native(path) pname = g['__name__'] if g and "__name__" in g else '__main__' parent = sys.modules[pname] - - scriptpath, scriptname = os.path.split(script) - if len(scriptpath) and scriptpath not in sys.path: - sys.path.append(scriptpath) - - procmod_name = os.path.splitext(scriptname)[0] + path_dir, path_fname = os.path.split(path) + procmod_name = os.path.splitext(path_fname)[0] procobj = None fp = None try: - fp, pathname, description = imp.find_module(procmod_name) + fp, pathname, description = imp.find_module(procmod_name, [path_dir]) procmod = imp.load_module(procmod_name, fp, pathname, description) if parent: setattr(parent, procmod_name, procmod) @@ -513,9 +535,8 @@ def IDAPython_LoadProcMod(script, g, print_error=True): if print_error: print(PY_COMPILE_ERR) finally: - if fp: fp.close() - - sys.path.remove(scriptpath) + if fp: + fp.close() return (PY_COMPILE_ERR, procobj) @@ -528,8 +549,8 @@ def IDAPython_UnLoadProcMod(script, g, print_error=True): pname = g['__name__'] if g and "__name__" in g else '__main__' parent = sys.modules[pname] - scriptname = os.path.split(script)[1] - procmod_name = os.path.splitext(scriptname)[0] + script_fname = os.path.split(script)[1] + procmod_name = os.path.splitext(script_fname)[0] if getattr(parent, procmod_name, None): delattr(parent, procmod_name) del sys.modules[procmod_name] @@ -760,33 +781,28 @@ class IDAPython_displayhook: _IDAPython_displayhook = IDAPython_displayhook() sys.displayhook = _IDAPython_displayhook.displayhook -# ----------------------------------- helpers for bw-compat w/ 6.95 API -class __BC695: - def __init__(self): - self.FIXME = "FIXME @arnaud" +def _make_one_time_warning_message(bad_attr, new_attr): + warned = [False] + def f(): + if not warned[0]: + import traceback + # skip two frames to get the actual line which triggered the access + f = sys._getframe().f_back.f_back + traceback.print_stack(f) + print("Please use \"%s\" instead of \"%s\" (\"%s\" is kept for backward-compatibility, and will be removed soon.)" % (new_attr, bad_attr, bad_attr)) + warned[0] = True + return f - def false_p(self, *args): - return False +def _make_missed_695bwcompat_property(bad_attr, new_attr, has_setter): + _notify_bwcompat = _make_one_time_warning_message(bad_attr, new_attr) + def _getter(self): + _notify_bwcompat() + return getattr(self, new_attr) + def _setter(self, v): + _notify_bwcompat() + return setattr(self, new_attr, v) + return property(_getter, _setter if has_setter else None) - def identity(self, arg): - return arg - def dummy(self, *args): - pass - def replace_fun(self, new): - new.__dict__["bc695redef"] = True - _replace_module_function(new) - -_BC695 = __BC695() - -def _make_badattr_property(bad_attr, new_attr): - def _raise(*args): - raise AttributeError("Property %s has been replaced with %s" % (bad_attr, new_attr)) - return property(_raise, _raise) #</pycode(py_idaapi)> - -#<pycode_BC695(py_idaapi)> -pycim_get_tcustom_control=pycim_get_widget -pycim_get_tform=pycim_get_widget -#</pycode_BC695(py_idaapi)> diff --git a/pywraps/py_idaapi_loader_input.hpp b/pywraps/py_idaapi_loader_input.hpp index c702a8f..f672def 100644 --- a/pywraps/py_idaapi_loader_input.hpp +++ b/pywraps/py_idaapi_loader_input.hpp @@ -137,27 +137,27 @@ public: // class from and to IDC. The value of this variable must be set to two int __idc_cvt_id__; //-------------------------------------------------------------------------- - loader_input_t(PyObject *pycapsule = NULL): li(NULL), own(OWN_NONE), __idc_cvt_id__(PY_ICID_OPAQUE) + loader_input_t(PyObject *pycapsule = nullptr): li(nullptr), own(OWN_NONE), __idc_cvt_id__(PY_ICID_OPAQUE) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( pycapsule != NULL && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ) + if ( pycapsule != nullptr && PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ) _from_capsule(pycapsule); } //-------------------------------------------------------------------------- void close() { - if ( li == NULL ) + if ( li == nullptr ) return; PYW_GIL_GET; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; if ( own == OWN_CREATE ) close_linput(li); else if ( own == OWN_FROM_FP ) unmake_linput(li); - Py_END_ALLOW_THREADS; - li = NULL; + SWIG_PYTHON_THREAD_END_ALLOW; + li = nullptr; own = OWN_NONE; } @@ -172,16 +172,16 @@ public: { close(); PYW_GIL_GET; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; li = open_linput(filename, remote); - if ( li != NULL ) + if ( li != nullptr ) { // Save file name fn = filename; own = OWN_CREATE; } - Py_END_ALLOW_THREADS; - return li != NULL; + SWIG_PYTHON_THREAD_END_ALLOW; + return li != nullptr; } //-------------------------------------------------------------------------- @@ -207,7 +207,7 @@ public: { PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !PyCapsule_IsValid(pycapsule, VALID_CAPSULE_NAME) ) - return NULL; + return nullptr; loader_input_t *l = new loader_input_t(); l->_from_capsule(pycapsule); return l; @@ -217,17 +217,17 @@ public: static loader_input_t *from_fp(FILE *fp) { PYW_GIL_GET; - loader_input_t *l = NULL; - Py_BEGIN_ALLOW_THREADS; + loader_input_t *l = nullptr; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; linput_t *fp_li = make_linput(fp); - if ( fp_li != NULL ) + if ( fp_li != nullptr ) { l = new loader_input_t(); l->own = OWN_FROM_FP; l->fn.sprnt("<FILE * %p>", fp); l->li = fp_li; } - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return l; } @@ -242,17 +242,17 @@ public: { PYW_GIL_GET; linput_t *l; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; l = create_memory_linput(start, size); - if ( l != NULL ) + if ( l != nullptr ) { close(); li = l; fn = "<memory>"; own = OWN_CREATE; } - Py_END_ALLOW_THREADS; - return l != NULL; + SWIG_PYTHON_THREAD_END_ALLOW; + return l != nullptr; } //-------------------------------------------------------------------------- @@ -260,9 +260,9 @@ public: { int64 r; PYW_GIL_GET; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; r = qlseek(li, pos, whence); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return r; } @@ -271,9 +271,9 @@ public: { int64 r; PYW_GIL_GET; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; r = qltell(li); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return r; } @@ -284,12 +284,12 @@ public: do { char *buf = (char *) malloc(sz + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; qlgetz(li, fpos, buf, sz); - Py_END_ALLOW_THREADS; - PyObject *ret = IDAPyStr_FromUTF8(buf); + SWIG_PYTHON_THREAD_END_ALLOW; + PyObject *ret = PyUnicode_FromString(buf); free(buf); return ret; } while ( false ); @@ -303,12 +303,12 @@ public: bytevec_t buf; buf.resize(len); bool ok; - Py_BEGIN_ALLOW_THREADS; - ok = qlgets((char *) buf.begin(), buf.size(), li) != NULL; - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; + ok = qlgets((char *) buf.begin(), buf.size(), li) != nullptr; + SWIG_PYTHON_THREAD_END_ALLOW; if ( !ok ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8((const char *) buf.begin()); + return PyUnicode_FromString((const char *) buf.begin()); } //-------------------------------------------------------------------------- @@ -318,18 +318,18 @@ public: bytevec_t buf; buf.resize(size); ssize_t nread; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; nread = qlread(li, (char *) buf.begin(), buf.size()); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( nread <= 0 ) Py_RETURN_NONE; - return IDAPyBytes_FromMemAndSize((const char *) buf.begin(), nread); + return PyBytes_FromStringAndSize((const char *) buf.begin(), nread); } //-------------------------------------------------------------------------- bool opened() { - return li != NULL; + return li != nullptr; } //-------------------------------------------------------------------------- @@ -339,15 +339,15 @@ public: do { char *buf = (char *) malloc(size + 5); - if ( buf == NULL ) + if ( buf == nullptr ) break; int r; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; r = lreadbytes(li, buf, size, big_endian); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( r == -1 ) r = 0; - PyObject *ret = IDAPyStr_FromUTF8AndSize(buf, r); + PyObject *ret = PyUnicode_FromStringAndSize(buf, r); free(buf); return ret; } while ( false ); @@ -358,9 +358,9 @@ public: int file2base(int64 pos, ea_t ea1, ea_t ea2, int patchable) { int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = ::file2base(li, pos, ea1, ea2, patchable); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -368,9 +368,9 @@ public: int64 size() { int64 rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = qlsize(li); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -378,28 +378,20 @@ public: PyObject *filename() { PYW_GIL_CHECK_LOCKED_SCOPE(); - return IDAPyStr_FromUTF8(fn.c_str()); + return PyUnicode_FromString(fn.c_str()); } //-------------------------------------------------------------------------- -#ifdef PY3 PyObject *get_byte() -#else - PyObject *get_char() -#endif { PYW_GIL_CHECK_LOCKED_SCOPE(); int ch; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; ch = qlgetc(li); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( ch == EOF ) Py_RETURN_NONE; -#ifdef PY3 return Py_BuildValue("i", ch); -#else - return Py_BuildValue("c", ch); -#endif } }; //</inline(py_idaapi_loader_input)> diff --git a/pywraps/py_idc.hpp b/pywraps/py_idc.hpp index 248b4f9..6ff0720 100644 --- a/pywraps/py_idc.hpp +++ b/pywraps/py_idc.hpp @@ -15,17 +15,17 @@ inline void mark_position( ri.pos.cx = x; ri.pos.cy = y; lochist_entry_t loc(&ip, ri); - bookmarks_t::mark(loc, slot, NULL, comment, NULL); + bookmarks_t::mark(loc, slot, nullptr, comment, nullptr); } //------------------------------------------------------------------------- inline ea_t get_marked_pos(int32 slot) { - idaplace_t ip(inf.min_ea, 0); + idaplace_t ip(inf_get_min_ea(), 0); renderer_info_t ri; lochist_entry_t loc(&ip, ri); uint32 uslot = uint32(slot); - return bookmarks_t::get(&loc, NULL, &uslot, NULL) + return bookmarks_t::get(&loc, nullptr, &uslot, nullptr) ? loc.place()->toea() : BADADDR; } @@ -34,11 +34,11 @@ inline ea_t get_marked_pos(int32 slot) inline PyObject *get_mark_comment(int32 slot) { qstring desc; - idaplace_t ip(inf.min_ea, 0); + idaplace_t ip(inf_get_min_ea(), 0); renderer_info_t ri; lochist_entry_t loc(&ip, ri); - if ( bookmarks_t::get_desc(&desc, loc, slot, NULL) ) - return IDAPyStr_FromUTF8(desc.c_str()); + if ( bookmarks_t::get_desc(&desc, loc, slot, nullptr) ) + return PyUnicode_FromString(desc.c_str()); else Py_RETURN_NONE; } diff --git a/pywraps/py_idd.hpp b/pywraps/py_idd.hpp index fd14cb3..08368b8 100644 --- a/pywraps/py_idd.hpp +++ b/pywraps/py_idd.hpp @@ -10,13 +10,13 @@ PyObject *py_appcall( PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !PyList_Check(arg_list) ) - return NULL; + return nullptr; const type_t *type = (const type_t *) _type_or_none.begin(); const type_t *fields = (const p_list *) _fields.begin(); tinfo_t tif; - tinfo_t *ptif = NULL; - if ( tif.deserialize(NULL, &type, &fields) ) + tinfo_t *ptif = nullptr; + if ( tif.deserialize(nullptr, &type, &fields) ) ptif = &tif; // Convert Python arguments into IDC values @@ -49,12 +49,12 @@ PyObject *py_appcall( PyErr_SetString( PyExc_ValueError, "PyAppCall: Failed to convert Python values to IDC values"); - return NULL; + return nullptr; } error_t ret; idc_value_t idc_result; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; if ( (debug & IDA_DEBUG_APPCALL) != 0 ) { @@ -78,7 +78,7 @@ PyObject *py_appcall( idc_args.begin(), idc_args.size()); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( ret != eOk ) { @@ -89,13 +89,13 @@ PyObject *py_appcall( ref_t py_appcall_exc; idcvar_to_pyvar(idc_result, &py_appcall_exc); PyErr_SetObject(PyExc_OSError, py_appcall_exc.o); - return NULL; + return nullptr; } // An error in the Appcall? (or an exception but AppCallOptions/DEBEV is not set) else { PyErr_SetString(PyExc_Exception, qstrerror(ret)); - return NULL; + return nullptr; } } @@ -122,7 +122,7 @@ PyObject *py_appcall( if ( idcvar_to_pyvar(idc_args[i], &py_item) == CIP_FAILED ) { PyErr_SetString(PyExc_ValueError, "PyAppCall: Failed while converting IDC values to Python values"); - return NULL; + return nullptr; } } @@ -133,7 +133,7 @@ PyObject *py_appcall( if ( idcvar_to_pyvar(idc_result, &py_result, PYWCVTF_STR_AS_BYTES) <= CIP_IMMUTABLE ) { PyErr_SetString(PyExc_ValueError, "PyAppCall: Failed while converting IDC return value to Python return value"); - return NULL; + return nullptr; } if ( (debug & IDA_DEBUG_APPCALL) != 0 ) { @@ -151,6 +151,12 @@ PyObject *py_appcall( //------------------------------------------------------------------------- //<inline(py_idd)> + +static debugger_t *get_dbg() +{ + return dbg; +} + /* #<pydoc> def dbg_get_registers(): @@ -169,7 +175,7 @@ static PyObject *dbg_get_registers() { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( dbg == NULL ) + if ( dbg == nullptr ) Py_RETURN_NONE; PyObject *py_list = PyList_New(dbg->nregs); @@ -181,14 +187,14 @@ static PyObject *dbg_get_registers() // Does this register have bit strings? // (Make sure it does not use custom formats because bit_string would be the format name) - if ( ri.bit_strings != NULL && (ri.flags & REGISTER_CUSTFMT) == 0 ) + if ( ri.bit_strings != nullptr && (ri.flags & REGISTER_CUSTFMT) == 0 ) { int nbits = (int)b2a_width((int)get_dtype_size(ri.dtype), 0) * 4; py_bits = PyList_New(nbits); for ( int i=0; i < nbits; i++ ) { const char *s = ri.bit_strings[i]; - PyList_SetItem(py_bits, i, IDAPyStr_FromUTF8(s == NULL ? "" : s)); + PyList_SetItem(py_bits, i, PyUnicode_FromString(s == nullptr ? "" : s)); } } else @@ -229,7 +235,7 @@ static PyObject *dbg_get_thread_sreg_base(thid_t tid, int sreg_value) { PYW_GIL_CHECK_LOCKED_SCOPE(); ea_t answer; - if ( !dbg_can_query() || internal_get_sreg_base(&answer, tid, sreg_value) != DRC_OK ) + if ( !dbg_can_query(dbg) || internal_get_sreg_base(&answer, tid, sreg_value) != DRC_OK ) Py_RETURN_NONE; return Py_BuildValue(PY_BV_EA, bvea_t(answer)); } @@ -251,18 +257,18 @@ static PyObject *dbg_read_memory(ea_t ea, size_t sz) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !dbg_can_query() ) + if ( !dbg_can_query(dbg) ) Py_RETURN_NONE; // Create a Python string - PyObject *ret = IDAPyBytes_FromMemAndSize(NULL, Py_ssize_t(sz)); - if ( ret == NULL ) + PyObject *ret = PyBytes_FromStringAndSize(nullptr, Py_ssize_t(sz)); + if ( ret == nullptr ) Py_RETURN_NONE; // Get the internal buffer Py_ssize_t len; char *buf; - IDAPyBytes_AsMemAndSize(ret, &buf, &len); + PyBytes_AsStringAndSize(ret, &buf, &len); if ( size_t(read_dbg_memory(ea, buf, sz)) != sz ) { Py_DECREF(ret); @@ -288,7 +294,7 @@ static PyObject *dbg_write_memory( { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !dbg_can_query() ) + if ( !dbg_can_query(dbg) ) Py_RETURN_NONE; if ( write_dbg_memory(ea, buf.begin(), buf.size()) != buf.size() ) @@ -311,10 +317,10 @@ static PyObject *dbg_get_name() { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( dbg == NULL ) + if ( dbg == nullptr ) Py_RETURN_NONE; else - return IDAPyStr_FromUTF8(dbg->name); + return PyUnicode_FromString(dbg->name); } //------------------------------------------------------------------------- @@ -334,17 +340,17 @@ static PyObject *dbg_get_memory_info() { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( !dbg_can_query() ) + if ( !dbg_can_query(dbg) ) Py_RETURN_NONE; // Invalidate memory meminfo_vec_t ranges; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; invalidate_dbgmem_config(); invalidate_dbgmem_contents(BADADDR, BADADDR); get_dbg_memory_info(&ranges); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return meminfo_vec_t_to_py(ranges); } @@ -358,50 +364,56 @@ PyObject *py_appcall( char get_event_module_name(const debug_event_t *ev, char *buf, size_t bufsize) { + if ( ev == nullptr ) + return false; qstrncpy(buf, ev->modinfo().name.c_str(), bufsize); return true; } ea_t get_event_module_base(const debug_event_t *ev) { - return ev->modinfo().base; + return ev != nullptr ? ev->modinfo().base : BADADDR; } asize_t get_event_module_size(const debug_event_t *ev) { - return ev->modinfo().size; + return ev != nullptr ? ev->modinfo().size : 0; } char get_event_exc_info(const debug_event_t *ev, char *buf, size_t bufsize) { + if ( ev == nullptr ) + return false; qstrncpy(buf, ev->exc().info.c_str(), bufsize); return true; } char get_event_info(const debug_event_t *ev, char *buf, size_t bufsize) { + if ( ev == nullptr ) + return false; qstrncpy(buf, ev->info().c_str(), bufsize); return true; } ea_t get_event_bpt_hea(const debug_event_t *ev) { - return ev->bpt().hea; + return ev != nullptr ? ev->bpt().hea : BADADDR; } uint get_event_exc_code(const debug_event_t *ev) { - return ev->exc().code; + return ev != nullptr ? ev->exc().code : 0; } ea_t get_event_exc_ea(const debug_event_t *ev) { - return ev->exc().ea; + return ev != nullptr ? ev->exc().ea : BADADDR; } bool can_exc_continue(const debug_event_t *ev) { - return ev->exc().can_cont; + return ev != nullptr && ev->exc().can_cont; } //</inline(py_idd)> diff --git a/pywraps/py_idd.py b/pywraps/py_idd.py index e8cc8eb..817510a 100644 --- a/pywraps/py_idd.py +++ b/pywraps/py_idd.py @@ -246,7 +246,7 @@ class Appcall_consts__(object): def __getattr__(self, attr): v = Appcall__.valueof(attr, self.__default) if v is None: - raise ValueError("No constant with name " + attr) + raise AttributeError("No constant with name " + attr) return v # ----------------------------------------------------------------------- @@ -301,7 +301,7 @@ class Appcall__(object): ea = name_or_ea # could not resolve name or invalid address? if ea == _ida_idaapi.BADADDR or not _ida_bytes.is_mapped(ea): - raise ValueError("Undefined function " + name_or_ea) + raise AttributeError("Undefined function " + name_or_ea) return ea @staticmethod @@ -353,7 +353,7 @@ class Appcall__(object): # resolve and raise exception on error ea = self.__name_or_ea(name_or_ea) if ea == _ida_idaapi.BADADDR: - raise ValueError("Undefined function " + name) + raise AttributeError("Undefined function " + name) # Return the callable method return Appcall_callable__(ea) @@ -456,7 +456,3 @@ class Appcall__(object): Appcall = Appcall__() #</pycode(py_idd)> - -#<pycode_BC695(py_idd)> -PROCESS_NO_THREAD=NO_THREAD -#</pycode_BC695(py_idd)> diff --git a/pywraps/py_idp.hpp b/pywraps/py_idp.hpp index dcd48a0..f7b131b 100644 --- a/pywraps/py_idp.hpp +++ b/pywraps/py_idp.hpp @@ -32,10 +32,10 @@ static PyObject *AssembleLine( const char *line) { char buf[MAXSTR]; - int inslen = ph.assemble((uchar *)buf, ea, cs, ip, use32, line); + int inslen = processor_t::assemble((uchar *)buf, ea, cs, ip, use32, line); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( inslen > 0 ) - return IDAPyBytes_FromMemAndSize(buf, inslen); + return PyBytes_FromStringAndSize(buf, inslen); else Py_RETURN_NONE; } @@ -66,14 +66,14 @@ bool assemble( char buf[MAXSTR]; PYW_GIL_CHECK_LOCKED_SCOPE(); bool rc = false; - Py_BEGIN_ALLOW_THREADS; - int inslen = ph.assemble((uchar *)buf, ea, cs, ip, use32, line); + SWIG_PYTHON_THREAD_BEGIN_ALLOW; + int inslen = processor_t::assemble((uchar *)buf, ea, cs, ip, use32, line); if ( inslen > 0 ) { patch_bytes(ea, buf, inslen); rc = true; } - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -89,7 +89,7 @@ def ph_get_id(): */ static size_t ph_get_id() { - return ph.id; + return PH.id; } //------------------------------------------------------------------------- @@ -104,7 +104,7 @@ def ph_get_version(): */ static size_t ph_get_version() { - return ph.version; + return PH.version; } //------------------------------------------------------------------------- @@ -119,7 +119,7 @@ def ph_get_flag(): */ static size_t ph_get_flag() { - return ph.flag; + return PH.flag; } //------------------------------------------------------------------------- @@ -134,7 +134,7 @@ def ph_get_cnbits(): */ static size_t ph_get_cnbits() { - return ph.cnbits; + return PH.cnbits; } //------------------------------------------------------------------------- @@ -149,7 +149,7 @@ def ph_get_dnbits(): */ static size_t ph_get_dnbits() { - return ph.dnbits; + return PH.dnbits; } //------------------------------------------------------------------------- @@ -164,7 +164,7 @@ def ph_get_reg_first_sreg(): */ static size_t ph_get_reg_first_sreg() { - return ph.reg_first_sreg; + return PH.reg_first_sreg; } //------------------------------------------------------------------------- @@ -179,7 +179,7 @@ def ph_get_reg_last_sreg(): */ static size_t ph_get_reg_last_sreg() { - return ph.reg_last_sreg; + return PH.reg_last_sreg; } //------------------------------------------------------------------------- @@ -194,7 +194,7 @@ def ph_get_segreg_size(): */ static size_t ph_get_segreg_size() { - return ph.segreg_size; + return PH.segreg_size; } //------------------------------------------------------------------------- @@ -209,7 +209,7 @@ def ph_get_reg_code_sreg(): */ static size_t ph_get_reg_code_sreg() { - return ph.reg_code_sreg; + return PH.reg_code_sreg; } //------------------------------------------------------------------------- @@ -224,7 +224,7 @@ def ph_get_reg_data_sreg(): */ static size_t ph_get_reg_data_sreg() { - return ph.reg_data_sreg; + return PH.reg_data_sreg; } //------------------------------------------------------------------------- @@ -239,7 +239,7 @@ def ph_get_icode_return(): */ static size_t ph_get_icode_return() { - return ph.icode_return; + return PH.icode_return; } //------------------------------------------------------------------------- @@ -254,7 +254,7 @@ def ph_get_instruc_start(): */ static size_t ph_get_instruc_start() { - return ph.instruc_start; + return PH.instruc_start; } //------------------------------------------------------------------------- @@ -269,7 +269,7 @@ def ph_get_instruc_end(): */ static size_t ph_get_instruc_end() { - return ph.instruc_end; + return PH.instruc_end; } //------------------------------------------------------------------------- @@ -284,7 +284,7 @@ def ph_get_tbyte_size(): */ static size_t ph_get_tbyte_size() { - return ph.tbyte_size; + return PH.tbyte_size; } //------------------------------------------------------------------------- @@ -302,12 +302,13 @@ static PyObject *ph_get_instruc() { Py_ssize_t i = 0; PYW_GIL_CHECK_LOCKED_SCOPE(); - PyObject *py_result = PyTuple_New(ph.instruc_end - ph.instruc_start); + processor_t &ph = PH; + PyObject *py_result = PyList_New(ph.instruc_end - ph.instruc_start); for ( const instruc_t *p = ph.instruc + ph.instruc_start, *end = ph.instruc + ph.instruc_end; p != end; ++p ) { - PyTuple_SetItem(py_result, i++, Py_BuildValue("(sI)", p->name, p->feature)); + PyList_SetItem(py_result, i++, Py_BuildValue("(sI)", p->name, p->feature)); } return py_result; } @@ -325,9 +326,10 @@ def ph_get_regnames(): static PyObject *ph_get_regnames() { PYW_GIL_CHECK_LOCKED_SCOPE(); + processor_t &ph = PH; PyObject *py_result = PyList_New(ph.regs_num); for ( Py_ssize_t i=0; i < ph.regs_num; i++ ) - PyList_SetItem(py_result, i, IDAPyStr_FromUTF8(ph.reg_names[i])); + PyList_SetItem(py_result, i, PyUnicode_FromString(ph.reg_names[i])); return py_result; } @@ -358,10 +360,10 @@ static PyObject *ph_get_operand_info( PYW_GIL_CHECK_LOCKED_SCOPE(); bool ok = false; idd_opinfo_t opinf; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; do { - if ( dbg == NULL || n == - 1 ) + if ( dbg == nullptr || n == - 1 ) break; // Allocate register space @@ -373,20 +375,20 @@ static PyObject *ph_get_operand_info( break; // Call the processor module - if ( ph.notify(ph.ev_get_idd_opinfo, - &opinf, - ea, - n, - tid, - _py_getreg, - regvalues.begin()) == 0 ) + if ( processor_t::notify(processor_t::ev_get_idd_opinfo, + &opinf, + ea, + n, + tid, + _py_getreg, + regvalues.begin()) == 0 ) { break; } ok = true; } while (false); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( ok ) return Py_BuildValue("(i" PY_BV_EA "Kii)", opinf.modified, @@ -399,193 +401,32 @@ static PyObject *ph_get_operand_info( } //------------------------------------------------------------------------- -static void ph_calcrel(bytevec_t *vout, ea_t ea) +static void ph_calcrel(bytevec_t *out_relbits, size_t *out_consumed, ea_t ea) { - ph.calcrel(vout, ea); + processor_t::calcrel(out_relbits, out_consumed, ea); } //------------------------------------------------------------------------- static ssize_t ph_find_reg_value(uval_t *out, const insn_t &insn, int reg) { - return ph.find_reg_value(out, insn, reg); + return processor_t::find_reg_value(out, insn, reg); } //------------------------------------------------------------------------- static ssize_t ph_find_op_value(uval_t *out, const insn_t &insn, int op) { - return ph.find_op_value(out, insn, op); + return processor_t::find_op_value(out, insn, op); } //------------------------------------------------------------------------- -/* -#<pydoc> -class IDP_Hooks(object): - def hook(self): - """ - Creates an IDP hook +static ssize_t ph_get_reg_accesses( + reg_accesses_t *accvec, + const insn_t &insn, + int flags) +{ + return processor_t::get_reg_accesses(accvec, insn, flags); +} - @return: Boolean true on success - """ - pass - - - def unhook(self): - """ - Removes the IDP hook - @return: Boolean true on success - """ - pass - - - def ev_ana_insn(self, insn): - """ - Analyzes and decodes an instruction at insn.ea - - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - - insn.size must be set to the instruction length - - @return: Boolean - - False if the instruction is not recognized - - True if the instruction was decoded. 'insn' should be filled in that case. - """ - pass - - - def ev_out_insn(self, ctx): - """ - Outputs the instruction defined in 'ctx.insn' - - @return: Boolean (whether this instruction can be outputted or not) - """ - pass - - - def ev_emu_insn(self, insn): - """ - Emulate instruction, create cross-references, plan to analyze - subsequent instructions, modify flags etc. Upon entrance to this function - all information about the instruction is in 'insn' structure. - - @return: Boolean (whether this instruction has been emulated or not) - """ - pass - - - def ev_out_operand(self, ctx, op): - """ - Notification to generate operand text. - If False was returned, then the standard operand output function will be called. - - this notification may use out_...() functions to form the operand text - - @return: Boolean (whether the operand has been outputted or not) - """ - pass - - def ev_gen_mnem(self, ctx): - """ - Notification to generate instruction mnemonics. - - @return: - - None: No custom mnemonics. IDA will generate a mnemonic name - - 1: Generated the instruction mnemonics - """ - pass - - - def ev_is_sane_insn(self, insn, no_crefs): - """ - is the instruction sane for the current file type? - @param insn: the instruction - @param no_crefs: - - 1: the instruction has no code refs to it. - ida just tries to convert unexplored bytes - to an instruction (but there is no other - reason to convert them into an instruction) - - 0: the instruction is created because - of some coderef, user request or another - weighty reason. - @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program - """ - pass - - - def ev_may_be_func(self, insn, state): - """ - Can a function start here? - @param insn: the instruction - @param state: autoanalysis phase - 0: creating functions - 1: creating chunks - - @return: integer (probability 0..100) - """ - pass - - - def ev_rename(self, ea, new_name): - """ - The kernel is going to rename a byte. - - @param ea: Address - @param new_name: The new name - - @return: - - If returns value <0, then the kernel should - not rename it. See also the 'renamed' event - """ - pass - - - def ev_undefine(self, ea): - """ - An item in the database (insn or data) is being deleted - @param ea: Address - @return: - - 1 - do not delete srranges at the item end - - 0 - srranges can be deleted - """ - pass - - - def ev_is_call_insn(self, insn): - """ - Is the instruction a "call"? - - @param insn: instruction - @return: 0-unknown, 1-yes, -1-no - """ - pass - - - def ev_is_ret_insn(self, insn, strict): - """ - Is the instruction a "return"? - - @param insn: instruction - @param strict: - True: report only ret instructions - False: include instructions like "leave" which begins the function epilog - @return: 0-unknown, 1-yes, -1-no - """ - pass - - - def ev_assemble(self, ea, cs, ip, use32, line): - """ - Assembles an instruction - - @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction - @param use32: is 32bit segment? - @param line: line to assemble - - @return: - None to let the underlying processor module assemble the line - - or a string containing the assembled buffer - """ - pass - -#</pydoc> -*/ //--------------------------------------------------------------------------- // IDP hooks //--------------------------------------------------------------------------- @@ -600,13 +441,13 @@ struct IDP_Hooks : public hooks_base_t { // hookgenIDP:methodsinfo_decl - IDP_Hooks(uint32 _flags=0) - : hooks_base_t("ida_idp.IDP_Hooks", IDP_Callback, HT_IDP, _flags) {} + IDP_Hooks(uint32 _flags=0, uint32 _hkcb_flags=HKCB_GLOBAL) + : hooks_base_t("ida_idp.IDP_Hooks", IDP_Callback, HT_IDP, _flags, _hkcb_flags) {} bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenIDP:methods @@ -629,11 +470,15 @@ protected: switch ( value_type ) { case IDPOPT_STR: - return IDAPyStr_FromUTF8((const char *) value); + return PyUnicode_FromString((const char *) value); case IDPOPT_NUM: - return IDAPyInt_FromLong(*(const uval_t *) value); +#ifdef __EA64__ + return PyLong_FromLongLong(*(const uval_t *) value); +#else + return PyLong_FromLong(*(const uval_t *) value); +#endif case IDPOPT_BIT: - return IDAPyInt_FromLong(*(const int *) value); + return PyLong_FromLong(*(const int *) value); case IDPOPT_I64: return PyLong_FromLongLong(*(const int64 *) value); default: @@ -647,9 +492,9 @@ private: static ssize_t cm_t_to_ssize_t(cm_t cm) { return ssize_t(cm); } static bool _handle_qstring_output(PyObject *o, qstring *buf) { - bool is_str = o != NULL && IDAPyStr_Check(o); - if ( is_str && buf != NULL ) - IDAPyStr_AsUTF8(buf, o); + bool is_str = o != nullptr && PyUnicode_Check(o); + if ( is_str && buf != nullptr ) + PyUnicode_as_qstring(buf, o); Py_XDECREF(o); return is_str; } @@ -658,20 +503,20 @@ private: return _handle_qstring_output(o, out) && !out->empty() ? 1 : 0; } static ssize_t handle_assemble_output( - PyObject *o, - uchar *bin, - ea_t /*ea*/, - ea_t /*cs*/, - ea_t /*ip*/, - bool /*use32*/, - const char * /*line*/) + PyObject *o, + uchar *bin, + ea_t /*ea*/, + ea_t /*cs*/, + ea_t /*ip*/, + bool /*use32*/, + const char * /*line*/) { ssize_t rc = 0; - if ( o != NULL && IDAPyBytes_Check(o) ) + if ( o != nullptr && PyBytes_Check(o) ) { char *s; Py_ssize_t len = 0; - if ( IDAPyBytes_AsMemAndSize(o, &s, &len) != -1 ) + if ( PyBytes_AsStringAndSize(o, &s, &len) != -1 ) { if ( len > MAXSTR ) len = MAXSTR; @@ -702,11 +547,11 @@ private: && PyBool_Check(py_bexec.o) && PyBool_Check(py_fexec.o) ) { - if ( pea != NULL ) + if ( pea != nullptr ) *pea = nea; - if ( pbexec != NULL ) + if ( pbexec != nullptr ) *pbexec = py_bexec.o == Py_True; - if ( pfexec != NULL ) + if ( pfexec != nullptr ) *pfexec = py_fexec.o == Py_True; return 1; } @@ -720,21 +565,21 @@ private: { newref_t py_rc(PySequence_GetItem(o, 0)); newref_t py_idx(PySequence_GetItem(o, 1)); - if ( IDAPyInt_Check(py_rc.o) && IDAPyInt_Check(py_idx.o) ) + if ( PyLong_Check(py_rc.o) && PyLong_Check(py_idx.o) ) { - rc = IDAPyInt_AsLong(py_rc.o); - *idx = IDAPyInt_AsLong(py_idx.o); + rc = PyLong_AsLong(py_rc.o); + *idx = PyLong_AsLong(py_idx.o); } } return rc; } static ssize_t handle_demangle_name_output( - PyObject *o, - int32 *out_res, - qstring *out, - const char * /*name*/, - uint32 /*disable_mask*/, - demreq_type_t /*demreq*/) + PyObject *o, + int32 *out_res, + qstring *out, + const char * /*name*/, + uint32 /*disable_mask*/, + demreq_type_t /*demreq*/) { ssize_t rc = 0; if ( PySequence_Check(o) && PySequence_Size(o) == 3 ) @@ -743,24 +588,24 @@ private: newref_t py_out(PySequence_GetItem(o, 1)); newref_t py_out_res(PySequence_GetItem(o, 2)); qstring qs; - if ( IDAPyInt_Check(py_rc.o) - && IDAPyInt_Check(py_out_res.o) - && IDAPyStr_Check(py_out.o) - && IDAPyStr_AsUTF8(&qs, py_out.o) ) + if ( PyLong_Check(py_rc.o) + && PyLong_Check(py_out_res.o) + && PyUnicode_Check(py_out.o) + && PyUnicode_as_qstring(&qs, py_out.o) ) { - rc = IDAPyInt_AsLong(py_rc.o); - *out_res = IDAPyInt_AsLong(py_out_res.o); - if ( out != NULL ) + rc = PyLong_AsLong(py_rc.o); + *out_res = PyLong_AsLong(py_out_res.o); + if ( out != nullptr ) out->swap(qs); } } return rc; } static ssize_t handle_find_value_output( - PyObject *o, - uval_t *out, - const insn_t * /*pinsn*/, - int /*reg*/) + PyObject *o, + uval_t *out, + const insn_t * /*pinsn*/, + int /*reg*/) { uint64 num; ssize_t rc = PyW_GetNumber(o, &num); @@ -769,19 +614,19 @@ private: return rc; } static ssize_t handle_get_autocmt_output( - PyObject *o, - qstring *buf, - const insn_t * /*pinsn*/) + PyObject *o, + qstring *buf, + const insn_t * /*pinsn*/) { - return IDAPyStr_Check(o) && IDAPyStr_AsUTF8(buf, o); + return PyUnicode_Check(o) && PyUnicode_as_qstring(buf, o); } static ssize_t handle_get_operand_string_output( - PyObject *o, - qstring *buf, - const insn_t * /*pinsn*/, - int /*opnum*/) + PyObject *o, + qstring *buf, + const insn_t * /*pinsn*/, + int /*opnum*/) { - return IDAPyStr_Check(o) && IDAPyStr_AsUTF8(buf, o); + return PyUnicode_Check(o) && PyUnicode_as_qstring(buf, o); } }; @@ -797,6 +642,27 @@ PyObject *get_idp_notifier_ud_addr(IDP_Hooks *hooks) { return _wrap_addr_in_pycapsule(hooks); } + +//------------------------------------------------------------------------- +inline bool delay_slot_insn(ea_t *ea, bool *bexec, bool *fexec) +{ + processor_t &ph = PH; + return ph.delay_slot_insn(ea, bexec, fexec); +} + +//------------------------------------------------------------------------- +inline const char *get_reg_info(const char *regname, bitrange_t *bitrange) +{ + processor_t &ph = PH; + return ph.get_reg_info(regname, bitrange); +} + +//------------------------------------------------------------------------- +inline size_t sizeof_ldbl(void) +{ + processor_t &ph = PH; + return ph.sizeof_ldbl(); +} //</inline(py_idp)> //------------------------------------------------------------------------- @@ -807,7 +673,7 @@ PyObject *get_idp_notifier_ud_addr(IDP_Hooks *hooks) //------------------------------------------------------------------------- static PyObject *_wrap_addr_in_pycapsule(void *addr) { - return PyCapsule_New(addr, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(addr, VALID_CAPSULE_NAME, nullptr); } //------------------------------------------------------------------------- diff --git a/pywraps/py_idp.py.in b/pywraps/py_idp.py similarity index 69% rename from pywraps/py_idp.py.in rename to pywraps/py_idp.py index e747bdb..d90c8d5 100644 --- a/pywraps/py_idp.py.in +++ b/pywraps/py_idp.py @@ -7,105 +7,10 @@ # ---------------------------------------------------------------------- # processor_t related constants -CUSTOM_INSN_ITYPE = 0x8000 -REG_SPOIL = 0x80000000 - REAL_ERROR_FORMAT = -1 # not supported format for current .idp REAL_ERROR_RANGE = -2 # number too big (small) for store (mem NOT modifyed) REAL_ERROR_BADDATA = -3 # illegal real data for load (IEEE data not filled) -# -# Check whether the operand is relative to stack pointer or frame pointer. -# This function is used to determine how to output a stack variable -# This function may be absent. If it is absent, then all operands -# are sp based by default. -# Define this function only if some stack references use frame pointer -# instead of stack pointer. -# returns flags: -OP_FP_BASED = 0x00000000 # operand is FP based -OP_SP_BASED = 0x00000001 # operand is SP based -OP_SP_ADD = 0x00000000 # operand value is added to the pointer -OP_SP_SUB = 0x00000002 # operand value is substracted from the pointer - -# processor_t.id -${PLFM_DECLS} - -# -# processor_t.flag -# -PR_SEGS = 0x000001 # has segment registers? -PR_USE32 = 0x000002 # supports 32-bit addressing? -PR_DEFSEG32 = 0x000004 # segments are 32-bit by default -PR_RNAMESOK = 0x000008 # allow to user register names for location names -PR_ADJSEGS = 0x000020 # IDA may adjust segments moving their starting/ending addresses. -PR_DEFNUM = 0x0000C0 # default number representation: -PRN_HEX = 0x000000 # hex -PRN_OCT = 0x000040 # octal -PRN_DEC = 0x000080 # decimal -PRN_BIN = 0x0000C0 # binary -PR_WORD_INS = 0x000100 # instruction codes are grouped 2bytes in binrary line prefix -PR_NOCHANGE = 0x000200 # The user can't change segments and code/data attributes (display only) -PR_ASSEMBLE = 0x000400 # Module has a built-in assembler and understands IDP_ASSEMBLE -PR_ALIGN = 0x000800 # All data items should be aligned properly -PR_TYPEINFO = 0x001000 # the processor module supports - # type information callbacks - # ALL OF THEM SHOULD BE IMPLEMENTED! -PR_USE64 = 0x002000 # supports 64-bit addressing? -PR_SGROTHER = 0x004000 # the segment registers don't contain - # the segment selectors, something else -PR_STACK_UP = 0x008000 # the stack grows up -PR_BINMEM = 0x010000 # the processor module provides correct - # segmentation for binary files - # (i.e. it creates additional segments) - # The kernel will not ask the user - # to specify the RAM/ROM sizes -PR_SEGTRANS = 0x020000 # the processor module supports - # the segment translation feature - # (it means it calculates the code - # addresses using the map_code_ea() function) -PR_CHK_XREF = 0x040000 # don't allow near xrefs between segments - # with different bases -PR_NO_SEGMOVE = 0x080000 # the processor module doesn't support move_segm() - # (i.e. the user can't move segments) -PR_USE_ARG_TYPES = 0x200000 # use ph.use_arg_types callback -PR_SCALE_STKVARS = 0x400000 # use ph.get_stkvar_scale callback -PR_DELAYED = 0x800000 # has delayed jumps and calls -PR_ALIGN_INSN = 0x1000000 # allow ida to create alignment instructions - # arbirtrarily. Since these instructions - # might lead to other wrong instructions - # and spoil the listing, IDA does not create - # them by default anymore -PR_PURGING = 0x2000000 # there are calling conventions which may - # purge bytes from the stack -PR_CNDINSNS = 0x4000000 # has conditional instructions -PR_USE_TBYTE = 0x8000000 # BTMT_SPECFLT means _TBYTE type -PR_DEFSEG64 = 0x10000000 # segments are 64-bit by default - - -# ---------------------------------------------------------------------- -# instruc_t related constants - -# -# instruc_t.feature -# -CF_STOP = 0x00001 # Instruction doesn't pass execution to the next instruction -CF_CALL = 0x00002 # CALL instruction (should make a procedure here) -CF_CHG1 = 0x00004 # The instruction modifies the first operand -CF_CHG2 = 0x00008 # The instruction modifies the second operand -CF_CHG3 = 0x00010 # The instruction modifies the third operand -CF_CHG4 = 0x00020 # The instruction modifies 4 operand -CF_CHG5 = 0x00040 # The instruction modifies 5 operand -CF_CHG6 = 0x00080 # The instruction modifies 6 operand -CF_USE1 = 0x00100 # The instruction uses value of the first operand -CF_USE2 = 0x00200 # The instruction uses value of the second operand -CF_USE3 = 0x00400 # The instruction uses value of the third operand -CF_USE4 = 0x00800 # The instruction uses value of the 4 operand -CF_USE5 = 0x01000 # The instruction uses value of the 5 operand -CF_USE6 = 0x02000 # The instruction uses value of the 6 operand -CF_JUMP = 0x04000 # The instruction passes execution using indirect jump or call (thus needs additional analysis) -CF_SHFT = 0x08000 # Bit-shift instruction (shl,shr...) -CF_HLL = 0x10000 # Instruction may be present in a high level language function. - # # Set IDP options constants # @@ -524,51 +429,8 @@ class __ph(object): ph = __ph() +class _idp_cvar_t: + ash = property(lambda self: get_ash()) +cvar = _idp_cvar_t() + #</pycode(py_idp)> - -#<pycode_BC695(py_idp)> -AS_NOTAB=0 -CUSTOM_CMD_ITYPE=CUSTOM_INSN_ITYPE -InstrIsSet=has_insn_feature -NEXTEAS_ANSWER_SIZE=0 -PR_FULL_HIFXP=0 -SETPROC_ALL=SETPROC_LOADER_NON_FATAL -SETPROC_COMPAT=SETPROC_IDB -SETPROC_FATAL=SETPROC_LOADER -area_cmt_changed=range_cmt_changed -changed_stkpnts=stkpnts_changed -changed_struc=struc_align_changed -changing_area_cmt=changing_range_cmt -changing_struc=changing_struc_align -func_tail_removed=func_tail_deleted -get_reg_info2=get_reg_info -ph_get_regCodeSreg=ph_get_reg_code_sreg -ph_get_regDataSreg=ph_get_reg_data_sreg -ph_get_regFirstSreg=ph_get_reg_first_sreg -ph_get_regLastSreg=ph_get_reg_last_sreg -removing_func_tail=deleting_func_tail -segm_attrs_changed=segm_attrs_updated -str2regf=str2reg -def parse_reg_name(*args): - if isinstance(args[1], reg_info_t): # 6.95: regname, reg_info_t - regname, ri = args - else: # 7.00: reg_info_t, regname - ri, regname = args - return _ida_idp.parse_reg_name(ri, regname) - -def __call_IDP_Hooks_auto_queue_empty(cb, qtype): - old_rc = cb(qtype) - if old_rc == 0: # 6.95's queue not empty anymore - rc = -1 # 7.0's queue not empty anymore - else: - rc = old_rc - return rc - -import ida_ida -ida_ida.__wrap_hooks_callback( - IDP_Hooks, - "ev_auto_queue_empty", - "auto_queue_empty", - __call_IDP_Hooks_auto_queue_empty) - -#</pycode_BC695(py_idp)> diff --git a/pywraps/py_idp_idbhooks.hpp b/pywraps/py_idp_idbhooks.hpp index ec44002..bc1e6cc 100644 --- a/pywraps/py_idp_idbhooks.hpp +++ b/pywraps/py_idp_idbhooks.hpp @@ -9,13 +9,13 @@ struct IDB_Hooks : public hooks_base_t { // hookgenIDB:methodsinfo_decl - IDB_Hooks(uint32 _flags=0) - : hooks_base_t("ida_idp.IDB_Hooks", IDB_Callback, HT_IDB, _flags) {} + IDB_Hooks(uint32 _flags=0, uint32 _hkcb_flags=HKCB_GLOBAL) + : hooks_base_t("ida_idp.IDB_Hooks", IDB_Callback, HT_IDB, _flags, _hkcb_flags) {} bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenIDB:methods diff --git a/pywraps/py_ieee.hpp b/pywraps/py_ieee.hpp new file mode 100644 index 0000000..d1b2bea --- /dev/null +++ b/pywraps/py_ieee.hpp @@ -0,0 +1,5 @@ +//<inline(py_ieee)> +typedef bytevec_t bytevec12_t; +typedef bytevec_t bytevec10_t; +//</inline(py_ieee)> + diff --git a/pywraps/py_ieee.py b/pywraps/py_ieee.py new file mode 100644 index 0000000..0cb7edf --- /dev/null +++ b/pywraps/py_ieee.py @@ -0,0 +1,11 @@ + +# Note that we DON'T define EZERO/EONE/ETWO to be fpvalue_t objects, +# because there is no way to make them read-only, which means EZERO +# could represent something entirely different from zero if the +# user mistakenly modifies it. + +#<pycode(py_ieee)> +EZERO = b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +EONE = b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xFF\x3F" +ETWO = b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x40" +#</pycode(py_ieee)> diff --git a/pywraps/py_kernwin.hpp b/pywraps/py_kernwin.hpp index 6e69272..329c934 100644 --- a/pywraps/py_kernwin.hpp +++ b/pywraps/py_kernwin.hpp @@ -10,21 +10,24 @@ // Context structure used by add|del_idc_hotkey() struct py_idchotkey_ctx_t { - qstring hotkey; + qstring action_name; ref_t pyfunc; py_idchotkey_ctx_t( - const char *_hotkey, + const char *_action_name, PyObject *_pyfunc) - : hotkey(_hotkey), + : action_name(_action_name), pyfunc(borref_t(_pyfunc)) {} }; +static ref_t py_colorizer; + +static void py_ss_restore_callback(const char *err_msg, void *userdata); + //------------------------------------------------------------------------ //</decls(py_kernwin)> //------------------------------------------------------------------------ - //------------------------------------------------------------------------ //<inline(py_kernwin)> //------------------------------------------------------------------------ @@ -50,7 +53,7 @@ static PyObject *py_register_timer(int interval, PyObject *py_callback) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( py_callback == NULL || !PyCallable_Check(py_callback) ) + if ( py_callback == nullptr || !PyCallable_Check(py_callback) ) Py_RETURN_NONE; // An inner class hosting the callback method @@ -60,14 +63,14 @@ static PyObject *py_register_timer(int interval, PyObject *py_callback) { PYW_GIL_GET; py_timer_ctx_t *ctx = (py_timer_ctx_t *)ud; - newref_t py_result(PyObject_CallFunctionObjArgs(ctx->pyfunc.o, NULL)); + newref_t py_result(PyObject_CallFunctionObjArgs(ctx->pyfunc.o, nullptr)); int ret = -1; - if ( PyErr_Occurred() ) + if ( PyErr_Occurred() != nullptr ) { msg("Exception in timer callback. This timer will be unregistered.\n"); PyErr_Print(); } - else if ( py_result != NULL ) + else if ( py_result ) { ret = PyLong_AsLong(py_result.o); } @@ -85,9 +88,9 @@ static PyObject *py_register_timer(int interval, PyObject *py_callback) tmr_t::callback, ctx); - if ( ctx->timer_id != NULL ) + if ( ctx->timer_id != nullptr ) { - return PyCapsule_New(ctx, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(ctx, VALID_CAPSULE_NAME, nullptr); } else { @@ -114,11 +117,11 @@ static bool py_unregister_timer(PyObject *py_timerctx) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( py_timerctx == NULL || !PyCapsule_IsValid(py_timerctx, VALID_CAPSULE_NAME) ) + if ( py_timerctx == nullptr || !PyCapsule_IsValid(py_timerctx, VALID_CAPSULE_NAME) ) return false; py_timer_ctx_t *ctx = (py_timer_ctx_t *) PyCapsule_GetPointer(py_timerctx, VALID_CAPSULE_NAME); - if ( ctx == NULL || !unregister_timer(ctx->timer_id) ) + if ( ctx == nullptr || !unregister_timer(ctx->timer_id) ) return false; python_timer_del(ctx); @@ -143,13 +146,13 @@ static PyObject *py_choose_idasgn() { char *name = choose_idasgn(); PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( name == NULL ) + if ( name == nullptr ) { Py_RETURN_NONE; } else { - PyObject *py_str = IDAPyStr_FromUTF8(name); + PyObject *py_str = PyUnicode_FromString(name); qfree(name); return py_str; } @@ -158,21 +161,23 @@ static PyObject *py_choose_idasgn() //------------------------------------------------------------------------ /* #<pydoc> -def get_highlight(): +def get_highlight(v, flags=0): """ Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param 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. """ pass #</pydoc> */ -static PyObject *py_get_highlight(TWidget *v) +static PyObject *py_get_highlight(TWidget *v, uint32 in_flags=0) { qstring buf; uint32 flags; - bool ok = get_highlight(&buf, v, &flags); + bool ok = get_highlight(&buf, v, &flags, in_flags); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !ok ) Py_RETURN_NONE; @@ -191,7 +196,7 @@ static int py_load_custom_icon_data(PyObject *data, const char *format) Py_ssize_t len; char *s; PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( IDAPyBytes_AsMemAndSize(data, &s, &len) == -1 ) + if ( PyBytes_AsStringAndSize(data, &s, &len) == -1 ) return 0; else return load_custom_icon(s, len, format); @@ -248,26 +253,15 @@ def read_selection(view, p0, p1): */ //------------------------------------------------------------------------ -/* -#<pydoc> -def msg(text): - """ - Prints text into IDA's Output window - - @param text: text to print - Can be Unicode, or string in local encoding - @return: number of bytes printed - """ - pass -#</pydoc> -*/ static PyObject *py_msg(PyObject *o) { - const char *utf8 = NULL; + const char *utf8 = nullptr; ref_t py_utf8; if ( PyUnicode_Check(o) ) { py_utf8 = newref_t(PyUnicode_AsUTF8String(o)); + if ( PyErr_Occurred() != nullptr ) + return nullptr; utf8 = PyString_AsString(py_utf8.o); } else if ( PyString_Check(o) ) @@ -277,12 +271,12 @@ static PyObject *py_msg(PyObject *o) else { PyErr_SetString(PyExc_TypeError, "A string expected"); - return NULL; + return nullptr; } int rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = msg("%s", utf8); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return PyInt_FromLong(rc); } @@ -310,7 +304,7 @@ PyObject *py_ask_text(size_t max_size, const char *defval, const char *prompt) PyObject *py_ret; if ( ask_text(&qbuf, max_size, defval, "%s", prompt) ) { - py_ret = IDAPyStr_FromUTF8AndSize(qbuf.begin(), qbuf.length()); + py_ret = PyUnicode_FromStringAndSize(qbuf.begin(), qbuf.length()); } else { @@ -342,7 +336,7 @@ PyObject *py_ask_str(qstring *defval, int hist, const char *prompt) PyObject *py_ret; if ( ask_str(defval, hist, "%s", prompt) ) { - py_ret = IDAPyStr_FromUTF8AndSize(defval->begin(), defval->length()); + py_ret = PyUnicode_FromStringAndSize(defval->begin(), defval->length()); } else { @@ -386,7 +380,7 @@ def process_ui_action(name): */ static bool py_process_ui_action(const char *name, int flags = 0) { - return process_ui_action(name, flags, NULL); + return process_ui_action(name, flags, nullptr); } //------------------------------------------------------------------------ @@ -410,7 +404,7 @@ bool py_del_hotkey(PyObject *pyctx) return false; py_idchotkey_ctx_t *ctx = (py_idchotkey_ctx_t *) PyCapsule_GetPointer(pyctx, VALID_CAPSULE_NAME); - if ( ctx == NULL || !del_idc_hotkey(ctx->hotkey.c_str()) ) + if ( ctx == nullptr || !unregister_action(ctx->action_name.c_str()) ) return false; delete ctx; @@ -441,7 +435,7 @@ PyObject *py_add_hotkey(const char *hotkey, PyObject *pyfunc) PYW_GIL_CHECK_LOCKED_SCOPE(); // Make sure a callable was passed if ( !PyCallable_Check(pyfunc) ) - return NULL; + return nullptr; // Form the function name qstring idc_func_name; @@ -458,7 +452,7 @@ PyObject *py_add_hotkey(const char *hotkey, PyObject *pyfunc) // Now add the global variable idc_value_t *gvar = add_idc_gvar(idc_gvarname.c_str()); - if ( gvar == NULL ) + if ( gvar == nullptr ) break; // The function body will call a registered IDC function that @@ -475,17 +469,17 @@ PyObject *py_add_hotkey(const char *hotkey, PyObject *pyfunc) break; // Create new context - py_idchotkey_ctx_t *ctx = new py_idchotkey_ctx_t(hotkey, pyfunc); + py_idchotkey_ctx_t *ctx = new py_idchotkey_ctx_t(idc_func_name.c_str(), pyfunc); // Bind IDC variable w/ the PyCallable gvar->set_pvoid(pyfunc); // Return the context - return PyCapsule_New(ctx, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(ctx, VALID_CAPSULE_NAME, nullptr); } while (false); } // Cleanup - del_idc_hotkey(hotkey); + unregister_action(idc_func_name.c_str()); Py_RETURN_NONE; } @@ -499,37 +493,7 @@ static PyObject *py_take_database_snapshot(snapshot_t *ss) bool b = take_database_snapshot(ss, &err_msg); // Return (b, err_msg) - return Py_BuildValue("(Ns)", PyBool_FromLong(b), err_msg.empty() ? NULL : err_msg.c_str()); -} - -//------------------------------------------------------------------------ -static void idaapi py_ss_restore_callback(const char *err_msg, void *userdata) -{ - PYW_GIL_GET; - - // userdata is a tuple of ( func, args ) - // func and args are borrowed references from userdata - - PyObject *o = (PyObject *) userdata; - if ( !PyTuple_Check(o) ) - return; - - PyObject *func = PyTuple_GetItem(o, 0); - PyObject *args = PyTuple_GetItem(o, 1); - - // Create arguments tuple for python function - PyObject *cb_args = Py_BuildValue("(sO)", err_msg, args); - - // Call the python function - newref_t result(PyEval_CallObject(func, cb_args)); - - // Free cb_args and userdata - Py_DECREF(cb_args); - Py_DECREF(o); - - // We cannot raise an exception in the callback, just print it. - if ( result == NULL ) - PyErr_Print(); + return Py_BuildValue("(Ns)", PyBool_FromLong(b), err_msg.empty() ? nullptr : err_msg.c_str()); } //------------------------------------------------------------------------- @@ -542,14 +506,14 @@ static PyObject *py_restore_database_snapshot( // If there is no callback, just call the function directly if ( pyfunc_or_none == Py_None ) - return PyBool_FromLong(restore_database_snapshot(ss, NULL, NULL)); + return PyBool_FromLong(restore_database_snapshot(ss, nullptr, nullptr)); // Create a new tuple or increase reference to pytuple_or_none if ( pytuple_or_none == Py_None ) { pytuple_or_none = PyTuple_New(0); - if ( pytuple_or_none == NULL ) - return NULL; + if ( pytuple_or_none == nullptr ) + return nullptr; } else { @@ -620,13 +584,13 @@ static int py_execute_sync(PyObject *py_callable, int reqf) struct py_exec_request_t : exec_request_t { ref_t py_callable; - virtual int idaapi execute() + virtual int idaapi execute() override { PYW_GIL_GET; - newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, NULL)); - int ret = py_result == NULL || !IDAPyInt_Check(py_result.o) + newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, nullptr)); + int ret = !py_result || !PyLong_Check(py_result.o) ? -1 - : IDAPyInt_AsLong(py_result.o); + : PyLong_AsLong(py_result.o); // if the requesting thread decided not to wait for the request to // complete, we have to self-destroy, nobody else will do it if ( (code & MFF_NOWAIT) != 0 ) @@ -652,9 +616,9 @@ static int py_execute_sync(PyObject *py_callable, int reqf) // Release GIL before executing, or if this is running in the // non-main thread, this will wait on the req.sem, while the main // thread might be waiting for the GIL to be available. - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = execute_sync(*req, reqf); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; // destroy the request once it is finished. exception: NOWAIT requests // will be handled in the future, so do not destroy them yet! if ( (reqf & MFF_NOWAIT) == 0 ) @@ -675,7 +639,7 @@ def execute_ui_requests(callable_list): @param callable_list: A list of python callable objects. @note: A callable should return True if it wants to be called more than once. - @return: Boolean. False if the list contains a non callabale item + @return: Boolean. False if the list contains a non callable item """ pass #</pydoc> @@ -689,9 +653,9 @@ static bool py_execute_ui_requests(PyObject *py_list) size_t py_callable_idx; static int idaapi s_py_list_walk_cb( - const ref_t &py_item, - Py_ssize_t /*index*/, - void *ud) + const ref_t &py_item, + Py_ssize_t /*index*/, + void *ud) { PYW_GIL_CHECK_LOCKED_SCOPE(); // Not callable? Terminate iteration @@ -708,15 +672,26 @@ static bool py_execute_ui_requests(PyObject *py_list) { } - virtual bool idaapi run() + virtual bool idaapi run() override { PYW_GIL_GET; // Get callable ref_t py_callable = py_callables.at(py_callable_idx); bool reschedule; - newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, NULL)); - reschedule = py_result != NULL && PyObject_IsTrue(py_result.o); + newref_t py_result(PyObject_CallFunctionObjArgs(py_callable.o, nullptr)); + // execute_ui_requests() will cause this run() code to be executed + // asynchronously. This means that, should an exception have been raised + // in the Python code we just executed, it won't have the possibility of + // trickling all the way up to the Python runtime. + // Since it would interfere with subsequent Python code execution, we + // want to report it right away. + if ( PyErr_Occurred() != nullptr ) + { + PyErr_Print(); + return false; + } + reschedule = py_result != nullptr && PyObject_IsTrue(py_result.o); // No rescheduling? Then advance to the next callable if ( !reschedule ) @@ -749,7 +724,7 @@ static bool py_execute_ui_requests(PyObject *py_list) delete req; return false; } - execute_ui_requests(req, NULL); + execute_ui_requests(req, nullptr); return true; } @@ -760,14 +735,16 @@ def set_dock_pos(src, dest, orient, left = 0, top = 0, right = 0, bottom = 0): """ 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. + @param src: Source docking control @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + @param orient: One of DP_XXXX constants @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window """ pass #</pydoc> @@ -794,59 +771,61 @@ public: PyObject *get_dict() { - newref_t json_module(PyImport_ImportModule("json")); - if ( json_module != NULL ) + do { + newref_t json_module(PyImport_ImportModule("json")); + if ( !json_module ) + break; borref_t json_globals(PyModule_GetDict(json_module.o)); - if ( json_globals != NULL ) + if ( !json_globals ) + break; + borref_t json_loads(PyDict_GetItemString(json_globals.o, "loads")); + if ( !json_loads ) + break; + + qstring clob; + if ( !serialize_json(&clob, o) ) + break; + + if ( ref_t dict = newref_t(PyObject_CallFunction(json_loads.o, "s", clob.c_str())) ) { - borref_t json_loads(PyDict_GetItemString(json_globals.o, "loads")); - if ( json_loads != NULL ) - { - qstring clob; - if ( serialize_json(&clob, o) ) - { - newref_t dict(PyObject_CallFunction(json_loads.o, "s", clob.c_str())); - if ( dict != NULL ) - { - dict.incref(); - return dict.o; - } - } - } + dict.incref(); + return dict.o; } - } + + } while ( false ); Py_RETURN_NONE; } static bool fill_jobj_from_dict(jobj_t *out, PyObject *dict) { - if ( PyDict_Check(dict) ) + do { + if ( !PyDict_Check(dict) ) + break; newref_t json_module(PyImport_ImportModule("json")); - if ( json_module != NULL ) + if ( !json_module ) + break; + borref_t json_globals(PyModule_GetDict(json_module.o)); + if ( !json_globals ) + break; + + borref_t json_dumps(PyDict_GetItemString(json_globals.o, "dumps")); + if ( !json_dumps ) + break; + + newref_t str(PyObject_CallFunction(json_dumps.o, "O", dict)); + qstring buf; + if ( PyUnicode_as_qstring(&buf, str.o) ) { - borref_t json_globals(PyModule_GetDict(json_module.o)); - if ( json_globals != NULL ) + jvalue_t tmp; + if ( parse_json_string(&tmp, buf.c_str()) == eOk ) { - borref_t json_dumps(PyDict_GetItemString(json_globals.o, "dumps")); - if ( json_dumps != NULL ) - { - newref_t str(PyObject_CallFunction(json_dumps.o, "O", dict)); - qstring buf; - if ( IDAPyStr_AsUTF8(&buf, str.o) ) - { - jvalue_t tmp; - if ( parse_json_string(&tmp, buf.c_str()) == eOk ) - { - out->swap(tmp.obj()); - return true; - } - } - } + out->swap(tmp.obj()); + return true; } } - } + } while ( false ); return false; } }; @@ -855,130 +834,17 @@ public: // UI hooks //--------------------------------------------------------------------------- ssize_t idaapi UI_Callback(void *ud, int notification_code, va_list va); -/* -#<pydoc> -class UI_Hooks(object): - def hook(self): - """ - Creates an UI hook - - @return: Boolean true on success - """ - pass - - def unhook(self): - """ - Removes the UI hook - @return: Boolean true on success - """ - pass - - def preprocess_action(self, name): - """ - IDA ui is about to handle a user action - - @param name: ui action name - (these names can be looked up in ida[tg]ui.cfg) - @return: 0-ok, nonzero - a plugin has handled the action - """ - pass - - def postprocess_action(self): - """ - An ida ui action has been handled - - @return: Ignored - """ - pass - - def saving(self): - """ - The kernel is saving the database. - - @return: Ignored - """ - pass - - def saved(self): - """ - The kernel has saved the database. - - @return: Ignored - """ - pass - - def get_ea_hint(self, ea): - """ - The UI wants to display a simple hint for an address in the navigation band - - @param ea: The address - @return: String with the hint or None - """ - pass - - def updating_actions(self, ctx): - """ - The UI is about to batch-update some actions. - - @param ctx: The action_update_ctx_t instance - @return: Ignored - """ - pass - - def updated_actions(self): - """ - The UI is done updating actions. - - @return: Ignored - """ - pass - - def populating_widget_popup(self, widget, popup): - """ - The UI is populating the TWidget's popup menu. - Now is a good time to call idaapi.attach_action_to_popup() - - @param widget: The widget - @param popup: The popup menu. - @return: Ignored - """ - pass - - def finish_populating_widget_popup(self, widget, popup): - """ - The UI is about to be done populating the TWidget's popup menu. - Now is a good time to call idaapi.attach_action_to_popup() - - @param widget: The widget - @param popup: The popup menu. - @return: Ignored - """ - pass - - def term(self): - """ - IDA is terminated and the database is already closed. - The UI may close its windows in this callback. - """ - # if the user forgot to call unhook, do it for him - self.unhook() - - def __term__(self): - self.term() - -#</pydoc> -*/ struct UI_Hooks : public hooks_base_t { // hookgenUI:methodsinfo_decl - UI_Hooks(uint32 _flags=0) - : hooks_base_t("ida_kernwin.UI_Hooks", UI_Callback, HT_UI, _flags) {} + UI_Hooks(uint32 _flags=0, uint32 _hkcb_flags=HKCB_GLOBAL) + : hooks_base_t("ida_kernwin.UI_Hooks", UI_Callback, HT_UI, _flags, _hkcb_flags) {} bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenUI:methods @@ -997,7 +863,7 @@ private: static ssize_t handle_get_ea_hint_output(PyObject *o, qstring *buf, ea_t) { ssize_t rc = 0; - if ( o != NULL && IDAPyStr_Check(o) && IDAPyStr_AsUTF8(buf, o) ) + if ( o != nullptr && PyUnicode_Check(o) && PyUnicode_as_qstring(buf, o) ) rc = 1; Py_XDECREF(o); return rc; @@ -1005,28 +871,30 @@ private: static ssize_t handle_hint_output(PyObject *o, qstring *hint, int *important_lines) { - ssize_t rc = 0; - if ( o != NULL && PyTuple_Check(o) && PyTuple_Size(o) == 2 ) + if ( o != nullptr && PyTuple_Check(o) && PyTuple_Size(o) == 2 ) { borref_t el0(PyTuple_GetItem(o, 0)); - if ( el0 != NULL - && IDAPyStr_Check(el0.o) - && IDAPyStr_AsUTF8(hint, el0.o) - && !hint->empty() ) + qstring plug_hint; + if ( el0 + && PyUnicode_Check(el0.o) + && PyUnicode_as_qstring(&plug_hint, el0.o) + && !plug_hint.empty() ) { borref_t el1(PyTuple_GetItem(o, 1)); - if ( el1 != NULL && IDAPyInt_Check(el1.o) ) + if ( el1 && PyLong_Check(el1.o) ) { - long lns = IDAPyInt_AsLong(el1.o); + long lns = PyLong_AsLong(el1.o); if ( lns > 0 ) { - *important_lines = lns; - rc = 1; + if ( !hint->empty() && hint->last() != '\n' ) + hint->append('\n'); + hint->append(plug_hint); + *important_lines += lns; } } } } - return rc; + return 0; } static ssize_t handle_hint_output(PyObject *o, qstring *hint, ea_t, int, int *important_lines) @@ -1048,9 +916,9 @@ private: { if ( o == Py_None ) return 0; - TWidget *widget = NULL; + TWidget *widget = nullptr; int cvt = SWIG_ConvertPtr(o, (void **) &widget, SWIGTYPE_p_TWidget, 0); - if ( !SWIG_IsOK(cvt) || widget == NULL ) + if ( !SWIG_IsOK(cvt) || widget == nullptr ) return 0; return ssize_t(widget); } @@ -1064,14 +932,18 @@ private: //------------------------------------------------------------------------- bool py_register_action(action_desc_t *desc) { - desc->flags |= ADF_OWN_HANDLER; - bool ok = register_action(*desc); + bool ok = desc != nullptr; if ( ok ) { - // Let's set this to NULL, so when the wrapping Python action_desc_t - // instance is deleted, it doesn't try to delete the handler (See - // kernwin.i's action_desc_t::~action_desc_t()). - desc->handler = NULL; + desc->flags |= ADF_OWN_HANDLER; + ok = register_action(*desc); + if ( ok ) + { + // Let's set this to nullptr, so when the wrapping Python action_desc_t + // instance is deleted, it doesn't try to delete the handler (See + // kernwin.i's action_desc_t::~action_desc_t()). + desc->handler = nullptr; + } } return ok; } @@ -1088,12 +960,12 @@ PyObject *py_get_registered_actions() //------------------------------------------------------------------------- /* #<pydoc> -def py_attach_dynamic_action_to_popup( - widget, +def attach_dynamic_action_to_popup( + unused, popup_handle, desc, popuppath = None, - flags = 0) + flags = 0): """ Create & insert an action into the widget's popup menu (::ui_attach_dynamic_action_to_popup). @@ -1103,7 +975,7 @@ def py_attach_dynamic_action_to_popup( desc = idaapi.action_desc_t(None, 'Dynamic popup action', Handler()) idaapi.attach_dynamic_action_to_popup(form, popup, desc) - @param widget: target widget + @param unused: deprecated; should be None @param popup_handle: target popup @param desc: action description of type action_desc_t @param popuppath: can be None @@ -1114,21 +986,23 @@ def py_attach_dynamic_action_to_popup( #</pydoc> */ bool py_attach_dynamic_action_to_popup( - TWidget *widget, + TWidget *unused, TPopupMenu *popup_handle, action_desc_t *desc, - const char *popuppath = NULL, + const char *popuppath = nullptr, int flags = 0) { + qnotused(unused); + if ( popup_handle == nullptr || desc == nullptr ) + return false; bool ok = attach_dynamic_action_to_popup( - widget, popup_handle, *desc, popuppath, flags); - if ( ok ) - // Set the handler to null, so the desc won't destroy - // it, as it noticed ownership was taken by IDA. - // In addition, we don't need to register into the - // 'py_action_handlers', because IDA will destroy the - // handler as soon as the popup menu is closed. - desc->handler = NULL; + nullptr, popup_handle, *desc, popuppath, flags); + // If attaching + // * succeeded: the action (and its handler) will be deleted after + // the popup is dismissed, + // * fails: the action (and its handler) will be deleted right away + // Therefore, we must always drop ownership. + desc->handler = nullptr; return ok; } @@ -1136,13 +1010,13 @@ bool py_attach_dynamic_action_to_popup( // twinline_t has a dummy destructor, that performs no cleanup. struct disasm_line_t { - disasm_line_t() : at(NULL) {} + disasm_line_t() : at(nullptr) {} ~disasm_line_t() { qfree(at); } disasm_line_t(const disasm_line_t &other) { *this = other; } disasm_line_t &operator=(const disasm_line_t &other) { qfree(at); - at = other.at == NULL ? NULL : other.at->clone(); + at = other.at == nullptr ? nullptr : other.at->clone(); return *this; } place_t *at; @@ -1154,6 +1028,34 @@ struct disasm_line_t DECLARE_TYPE_AS_MOVABLE(disasm_line_t); typedef qvector<disasm_line_t> disasm_text_t; +//------------------------------------------------------------------------- +// tuple(fields, icon, attr) +static PyObject *py_chooser_base_t_get_row( + const chooser_base_t *chobj, + size_t n) +{ + if ( chobj == nullptr ) + { + PyErr_SetString(PyExc_ValueError, "A valid chooser_base_t pointer is expected as first argument"); + return nullptr; + } + qstrvec_t fields; + fields.resize(chobj->columns); + chooser_item_attrs_t *attrs = new chooser_item_attrs_t; + int icon; + chobj->get_row(&fields, &icon, attrs, n); + + PyObject *tuple = PyTuple_New(3); + PyTuple_SetItem(tuple, 0, qstrvec2pylist(fields)); + PyTuple_SetItem(tuple, 1, PyLong_FromLong(icon)); + PyObject *py_attrs = SWIG_NewPointerObj( + SWIG_as_voidptr(attrs), + SWIGTYPE_p_chooser_item_attrs_t, + SWIG_POINTER_OWN); + PyTuple_SetItem(tuple, 2, py_attrs); + return tuple; +} + //------------------------------------------------------------------------- void py_gen_disasm_text(disasm_text_t &text, ea_t ea1, ea_t ea2, bool truncate_lines) { @@ -1203,47 +1105,65 @@ def set_nav_colorizer(callback): */ PyObject *py_set_nav_colorizer(PyObject *new_py_colorizer) { - static ref_t py_colorizer; struct ida_local lambda_t { static uint32 idaapi call_py_colorizer(ea_t ea, asize_t nbytes, void *) { PYW_GIL_GET; - if ( py_colorizer == NULL ) // Shouldn't happen. + if ( !py_colorizer ) // Shouldn't happen. return 0; - newref_t pyres = PyObject_CallFunction( - py_colorizer.o, "KK", - (unsigned long long) ea, - (unsigned long long) nbytes); + newref_t pyres(PyObject_CallFunction( + py_colorizer.o, "KK", + (unsigned long long) ea, + (unsigned long long) nbytes)); PyW_ShowCbErr("nav_colorizer"); - if ( pyres.o == NULL ) - return 0; - if ( !PyLong_Check(pyres.o) ) + uint32 rc = 0; + bool ok = pyres && PyLong_Check(pyres.o); + if ( ok ) + { + int overflow = 0; + const long l = PyLong_AsLongAndOverflow(pyres.o, &overflow); + ok = PyErr_Occurred() == nullptr; + if ( ok ) + { + if ( l == -1 && overflow != 0 ) + ok = false; + else + rc = uint32(l); + } + else + { + PyErr_Print(); + } + } + + if ( !ok ) { static bool warned = false; if ( !warned ) { - msg("WARNING: set_nav_colorizer() callback must return a 'long'.\n"); + msg("WARNING: set_nav_colorizer() callback must return an " + "unsigned 'long', that can be converted into a 32-bit " + "unsigned integer.\n"); warned = true; } - return 0; } - return PyLong_AsLong(pyres.o); + return rc; } }; // Always perform the call to set_nav_colorizer(): that has side-effects // (e.g., updating the legend.) - bool first_install = py_colorizer == NULL; + bool first_install = py_colorizer == nullptr; py_colorizer = borref_t(new_py_colorizer); - nav_colorizer_t *was_fun = NULL; - void *was_ud = NULL; - set_nav_colorizer(&was_fun, &was_ud, lambda_t::call_py_colorizer, NULL); + nav_colorizer_t *was_fun = nullptr; + void *was_ud = nullptr; + set_nav_colorizer(&was_fun, &was_ud, lambda_t::call_py_colorizer, nullptr); if ( !first_install ) Py_RETURN_NONE; - PyObject *was_fun_ptr = PyCapsule_New((void *) was_fun, VALID_CAPSULE_NAME, NULL); - PyObject *was_ud_ptr = PyCapsule_New(was_ud, VALID_CAPSULE_NAME, NULL); + PyObject *was_fun_ptr = PyCapsule_New((void *) was_fun, VALID_CAPSULE_NAME, nullptr); + PyObject *was_ud_ptr = PyCapsule_New(was_ud, VALID_CAPSULE_NAME, nullptr); PyObject *dict = PyDict_New(); PyDict_SetItemString(dict, "fun", was_fun_ptr); PyDict_SetItemString(dict, "ud", was_ud_ptr); @@ -1270,7 +1190,7 @@ uint32 py_call_nav_colorizer( return 0; borref_t py_fun(PyDict_GetItemString(dict, "fun")); borref_t py_ud(PyDict_GetItemString(dict, "ud")); - if ( py_fun == NULL + if ( !py_fun || !PyCapsule_IsValid(py_fun.o, VALID_CAPSULE_NAME) || !PyCapsule_IsValid(py_ud.o, VALID_CAPSULE_NAME) ) { @@ -1278,7 +1198,7 @@ uint32 py_call_nav_colorizer( } nav_colorizer_t *fun = (nav_colorizer_t *) PyCapsule_GetPointer(py_fun.o, VALID_CAPSULE_NAME); void *ud = PyCapsule_GetPointer(py_ud.o, VALID_CAPSULE_NAME); - if ( fun == NULL ) + if ( fun == nullptr ) return 0; return fun(ea, nbytes, ud); } @@ -1332,18 +1252,27 @@ static TWidget *TWidget__from_ptrval__(size_t ptrval) return (TWidget *) ptrval; } +// we limit the the number of spaces that can be added to 512k +#define MAX_SPACES_ADDED 524288 //------------------------------------------------------------------------- static PyObject *py_add_spaces(const char *s, size_t len) { qstring qbuf(s); const size_t slen = tag_strlen(qbuf.c_str()); - const size_t delta = qbuf.length() - slen; - if ( len > slen ) - qbuf.resize(len + delta); + const size_t nlen = qbuf.length() - slen + len; + if ( len > slen && nlen < MAX_SPACES_ADDED ) + { + qbuf.resize(nlen); + } + else + { + if ( s == nullptr ) + qbuf.resize(1); + } // we use the actual 'size' because we know that // 'add_spaces()' will add a terminating zero anyway add_spaces(qbuf.begin(), qbuf.size(), len); - return IDAPyStr_FromUTF8(qbuf.c_str()); + return PyUnicode_FromString(qbuf.c_str()); } //------------------------------------------------------------------------- @@ -1390,7 +1319,7 @@ bool idaapi py_menu_item_callback(void *userdata) newref_t result(PyEval_CallObject(func, args)); // We cannot raise an exception in the callback, just print it. - if ( result == NULL ) + if ( result == nullptr ) { PyErr_Print(); return false; @@ -1399,11 +1328,53 @@ bool idaapi py_menu_item_callback(void *userdata) return PyObject_IsTrue(result.o) != 0; } +//------------------------------------------------------------------------- +static void ida_kernwin_init(void) {} + +//------------------------------------------------------------------------- +static void ida_kernwin_term(void) +{ + py_colorizer = ref_t(); +} + +//------------------------------------------------------------------------- +static void ida_kernwin_closebase(void) {} + +//------------------------------------------------------------------------ +static void py_ss_restore_callback(const char *err_msg, void *userdata) +{ + PYW_GIL_GET; + + // userdata is a tuple of ( func, args ) + // func and args are borrowed references from userdata + + PyObject *o = (PyObject *) userdata; + if ( o == nullptr || !PyTuple_Check(o) ) + return; + + PyObject *func = PyTuple_GetItem(o, 0); + PyObject *args = PyTuple_GetItem(o, 1); + + // Create arguments tuple for python function + PyObject *cb_args = Py_BuildValue("(sO)", err_msg, args); + + // Call the python function + newref_t result(PyEval_CallObject(func, cb_args)); + + // Free cb_args and userdata + Py_DECREF(cb_args); + Py_DECREF(o); + + // We cannot raise an exception in the callback, just print it. + if ( !result ) + PyErr_Print(); +} + /* #<pydoc> def get_navband_pixel(ea): """ - Maps an address, onto a pixel coordinate within the navband + Maps an address, onto a pixel coordinate within the navigation band @param ea: The address to map @return: a list [pixel, is_vertical] diff --git a/pywraps/py_kernwin.py b/pywraps/py_kernwin.py index ef9fcbe..f98d5d6 100644 --- a/pywraps/py_kernwin.py +++ b/pywraps/py_kernwin.py @@ -1,17 +1,5 @@ # ----------------------------------------------------------------------- #<pycode(py_kernwin)> -DP_LEFT = 0x0001 -DP_TOP = 0x0002 -DP_RIGHT = 0x0004 -DP_BOTTOM = 0x0008 -DP_INSIDE = 0x0010 -# if not before, then it is after -# (use DP_INSIDE | DP_BEFORE to insert a tab before a given tab) -# this flag alone cannot be used to determine orientation -DP_BEFORE = 0x0020 -# used with combination of other flags -DP_TAB = 0x0040 -DP_FLOATING = 0x0080 # ---------------------------------------------------------------------- def load_custom_icon(file_name=None, data=None, format=None): @@ -124,7 +112,7 @@ class quick_widget_commands_t: cmd.shortcut, None, cmd.icon) - attach_dynamic_action_to_popup(widget, popup, desc) + attach_dynamic_action_to_popup(None, popup, desc) class disabled_script_timeout_t(object): def __enter__(self): @@ -135,364 +123,17 @@ class disabled_script_timeout_t(object): import _ida_idaapi _ida_idaapi.set_script_timeout(self.was_timeout) +import ida_ida +ida_ida.__wrap_hooks_callback( + UI_Hooks, + "database_closed", + "term", + lambda cb, *args: cb(*args)) + + # ---------------------------------------------------------------------- # bw-compat/deprecated. You shouldn't rely on this in new code from ida_pro import str2user +SETMENU_IF_ENABLED = 4 #</pycode(py_kernwin)> - -#<pycode_BC695(py_kernwin)> -AST_DISABLE_FOR_FORM=AST_DISABLE_FOR_WIDGET -AST_ENABLE_FOR_FORM=AST_ENABLE_FOR_WIDGET -CB_CLOSE_IDB=CB_INVISIBLE -chtype_generic2=chtype_generic -chtype_segreg=chtype_srcp -close_tform=close_widget -find_tform=find_widget -get_current_tform=get_current_widget -def get_highlighted_identifier(): - thing = get_highlight(get_current_viewer()) - if thing and thing[1]: - return thing[0] -get_tform_title=get_widget_title -get_tform_type=get_widget_type -is_chooser_tform=is_chooser_widget -open_tform=display_widget -pyscv_get_tcustom_control=pyscv_get_widget -pyscv_get_tform=pyscv_get_widget -__read_selection70 = read_selection -def read_selection(*args): - if len(args) == 0: - # bw-compat - t0, t1, view = twinpos_t(), twinpos_t(), get_current_viewer() - sel = __read_selection70(view, t0, t1) - import ida_idaapi - a0, a1 = ida_idaapi.BADADDR, ida_idaapi.BADADDR - if sel: - a0, a1 = t0.place(view).toea(), t1.place(view).toea() - return sel, a0, a1 - else: - return __read_selection70(*args) - -readsel2=read_selection -switchto_tform=activate_widget -umsg=msg - -import ida_ida -def __wrap_uihooks_callback(name, do_call): - return ida_ida.__wrap_hooks_callback(UI_Hooks, name, name.replace("widget", "tform"), do_call) - - -__wrap_uihooks_callback("widget_visible", lambda cb, *args: cb(args[0], args[0])) -__wrap_uihooks_callback("widget_invisible", lambda cb, *args: cb(args[0], args[0])) -__wrap_uihooks_callback("populating_widget_popup", lambda cb, *args: cb(*args)) -__wrap_uihooks_callback("finish_populating_widget_popup", lambda cb, *args: cb(*args)) -__wrap_uihooks_callback("current_widget_changed", lambda cb, *args: cb(*args)) - -AskUsingForm=ask_form -HIST_ADDR=0 -HIST_NUM=0 -KERNEL_VERSION_MAGIC1=0 -KERNEL_VERSION_MAGIC2=0 -OpenForm=open_form -_askaddr=_ida_kernwin._ask_addr -_asklong=_ida_kernwin._ask_long -_askseg=_ida_kernwin._ask_seg -askaddr=ask_addr -askbuttons_c=ask_buttons -askfile_c=ask_file -def askfile2_c(forsave, defdir, filters, fmt): - if filters: - fmt = "FILTER %s\n%s" % (filters, fmt) - return ask_file(forsave, defdir, fmt) -askident=ask_ident -asklong=ask_long -def askqstr(defval, fmt): - return ask_str(defval, 0, fmt) -askseg=ask_seg -def askstr(hist, defval, fmt): - return ask_str(defval, hist, fmt) -asktext=ask_text -askyn_c=ask_yn -choose2_activate=choose_activate -choose2_close=choose_close -#choose2_create=choose_create -choose2_find=choose_find -#choose2_get_embedded=_choose_get_embedded_chobj_pointer -choose2_get_embedded_selection=lambda *args: None -choose2_refresh=choose_refresh -clearBreak=clr_cancelled -py_get_AskUsingForm=py_get_ask_form -py_get_OpenForm=py_get_open_form -setBreak=set_cancelled -wasBreak=user_cancelled -refresh_lists=refresh_choosers - - -# ------------------------------------------------------- -class Choose2(object): - """v.6.95 compatible chooser wrapper class.""" - - CH_MODAL = 0x01 - CH_MULTI = 0x04 - CH_MULTI_EDIT = 0x08 - """ - The OnEditLine() callback will be called for all - selected items using the START_SEL/END_SEL - protocol. - This bit implies #CH_MULTI. - """ - CH_NOBTNS = 0x10 - CH_ATTRS = 0x20 - CH_NOIDB = 0x40 - CH_BUILTIN_SHIFT = 19 - CH_BUILTIN_MASK = 0x1F << CH_BUILTIN_SHIFT - - # column flags (are specified in the widths array) - CHCOL_PLAIN = 0x00000000 - CHCOL_PATH = 0x00010000 - CHCOL_HEX = 0x00020000 - CHCOL_DEC = 0x00030000 - CHCOL_FORMAT = 0x00070000 - - # special values of the chooser index - NO_SELECTION = -1 - """there is no selected item""" - START_SEL = -2 - """before calling the first selected item""" - END_SEL = -3 - """after calling the last selected item""" - - - # the v.7.0 chooser object implementing the v.6.95 chooser - class ChooseWrapper(Choose): - - def __init__(self, v695_chooser): - self.link = v695_chooser - # check what non-base callbacks we have - forbidden_cb = 0 - for cb in [("OnInsertLine", Choose.CHOOSE_HAVE_INS ), - ("OnDeleteLine", Choose.CHOOSE_HAVE_DEL ), - ("OnEditLine", Choose.CHOOSE_HAVE_EDIT ), - ("OnSelectLine", Choose.CHOOSE_HAVE_ENTER ), - ("OnRefresh", Choose.CHOOSE_HAVE_REFRESH), - ("OnSelectionChange", Choose.CHOOSE_HAVE_SELECT)]: - if not hasattr(self.link, cb[0]) or \ - not callable(getattr(self.link, cb[0])): - forbidden_cb |= cb[1] - Choose.__init__( - self, self.link.title, self.link.cols, - forbidden_cb = forbidden_cb) - - # redirect base callbacks to the v.6.95 chooser - def __getattr__(self, attr): - if attr in ["OnGetSize", - "OnGetLine", - "OnGetIcon", - "OnGetLineAttr", - "OnClose"]: - return getattr(self.link, attr) - return getattr(self.link, attr) - - def Show(self, modal = False): - # set `flags` and `deflt` - self.flags = self.link.flags - if self.link.deflt == -1: - self.deflt = 0 - else: - self.deflt = self.link.deflt - 1 - self.flags |= Choose.CH_FORCE_DEFAULT - if (self.flags & Choose.CH_MULTI) != 0: - self.deflt = [self.deflt] - # copy simple attributes from v.6.95 - for attr in ["title", "cols", "popup_names", "icon", - "x1", "y1", "x2", "y2", - "embedded", "width", "height"]: - if hasattr(self.link, attr): - setattr(self, attr, getattr(self.link, attr)) - else: - delattr(self, attr) - return Choose.Show(self, modal) - - def OnInsertLine(self, n): - # assert: hasattr(self.link, "OnInsertLine") - self.link.OnInsertLine() - # we preserve the selection - return (Choose.ALL_CHANGED, n) - if (self.link.flags & Choose2.CH_MULTI) == 0: - return (Choose.ALL_CHANGED, n) - else: - return [Choose.ALL_CHANGED] + n - - def OnDeleteLine(self, n): - # assert: hasattr(self.link, "OnDeleteLine") - res = None - if (self.link.flags & Choose2.CH_MULTI) == 0: - res = self.link.OnDeleteLine(n) - else: - # assert: n is iterable and n - # call the callback multiple times - self.link.OnDeleteLine(Choose2.START_SEL) - res = None - for idx in n: - new_idx = self.link.OnDeleteLine(idx) - if res == None: - res = new_idx - self.link.OnDeleteLine(Choose2.END_SEL) - return [Choose.ALL_CHANGED] + self.adjust_last_item(res) - - def OnEditLine(self, n): - # assert: hasattr(self.link, "OnEditLine") - if (self.link.flags & Choose2.CH_MULTI) == 0: - self.link.OnEditLine(n) - return (Choose.ALL_CHANGED, n) # preserve the selection - # assert: n is iterable and n - if (self.link.flags & Choose2.CH_MULTI_EDIT) == 0: - self.link.OnEditLine(n[0]) - return [Choose.ALL_CHANGED] + n # preserve the selection - # call the callback multiple times - self.link.OnEditLine(Choose2.START_SEL) - for idx in n: - self.link.OnEditLine(idx) - self.link.OnEditLine(Choose2.END_SEL) - return [Choose.ALL_CHANGED] + n # preserve the selection - - def OnSelectLine(self, n): - # assert: hasattr(self.link, "OnSelectLine") - if (self.link.flags & Choose2.CH_MULTI) == 0: - self.link.OnSelectLine(n) - return (Choose.ALL_CHANGED, n) - # assert: n is iterable and n - self.link.OnSelectLine(n[0]) - return [Choose.ALL_CHANGED] + n # preserve the selection - - def OnRefresh(self, n): - # assert: hasattr(self.link, "OnRefresh") - if (self.link.flags & Choose2.CH_MULTI) != 0: - # ignore all but the first item - n = n[0] if n else Choose.NO_SELECTION - res = self.link.OnRefresh(n) - return (Choose.ALL_CHANGED, res) - - def OnSelectionChange(self, n): - # assert: hasattr(self.link, "OnSelectionChange") - if (self.link.flags & Choose2.CH_MULTI) == 0: - n = [n] if n != Choose.NO_SELECTION else [] - self.link.OnSelectionChange(n) - - def OnPopup(self, widget, popup_handle): - self.link._quick_commands.populate_popup(widget, popup_handle) - - - def __init__(self, title, cols, flags=0, popup_names=None, - icon=-1, x1=-1, y1=-1, x2=-1, y2=-1, deflt=-1, - embedded=False, width=None, height=None): - """ - Constructs a chooser window. - @param title: The chooser title - @param cols: a list of colums; each list item is a list of two items - example: [ ["Address", 10 | Choose2.CHCOL_HEX], - ["Name", 30 | Choose2.CHCOL_PLAIN] ] - @param flags: One of CH_XXXX constants - @param deflt: Default starting item (1-based). - 0 means that no item is selected, - -1 means that the first item selected for a new window and - that the selection is not updated for an existing window - @param popup_names: list of new captions to replace this list - ["Insert", "Delete", "Edit", "Refresh"] - @param icon: Icon index (the icon should exist in ida resources or - an index to a custom loaded icon) - @param x1, y1, x2, y2: The default location (for txt-version) - @param embedded: Create as embedded chooser - @param width: Embedded chooser width - @param height: Embedded chooser height - """ - # remember attributes - self.title = title - self.flags = flags - self.cols = cols - self.deflt = deflt - self.popup_names = popup_names - self.icon = icon - self.x1 = x1 - self.y1 = y1 - self.x2 = x2 - self.y2 = y2 - self.embedded = embedded - self.width = width - self.height = height - # construct the v.7.0 chooser object - self.chobj = Choose2.ChooseWrapper(self) - def _qccb(ctx, cmd_id): - for idx in ctx.chooser_selection: - self.OnCommand(idx, cmd_id) - self._quick_commands = quick_widget_commands_t(_qccb) - - - # redirect methods to the v.7.0 chooser - def __getattr__(self, attr): - if attr not in ["GetEmbSelection", - "Activate", - "Refresh", - "Close", - "GetWidget"]: - raise AttributeError(attr) - return getattr(self.chobj, attr) - - - def Embedded(self): - """ - Creates an embedded chooser (as opposed to Show()) - @return: Returns 1 on success - """ - return 1 if self.chobj.Embedded() == 0 else 0 - - - def Show(self, modal=False): - """ - Activates or creates a chooser window - @param modal: Display as modal dialog - @return: For modal choosers it will return the selected item index (0-based) - or -1 in the case of error, - For non-modal choosers it will return 0 - or -1 if the chooser was already open and is active now - """ - ret = self.chobj.Show(modal) - return -1 if ret < 0 else ret - - - def AddCommand(self, - caption, - flags = _ida_kernwin.CHOOSER_POPUP_MENU, - menu_index = -1, - icon = -1, - emb=None, - shortcut=None): - # Use the 'emb' as a sentinel. It will be passed the correct value - # from the EmbeddedChooserControl - if self.embedded and ((emb is None) or (emb != 2002)): - raise RuntimeError("Please add a command through " - "EmbeddedChooserControl.AddCommand()") - return self._quick_commands.add( - caption=caption, - flags=flags, - menu_index=menu_index, - icon=icon, - emb=emb, - shortcut=shortcut) - - # callbacks - # def OnGetSize(self): - # def OnGetLine(self, n): - # def OnGetIcon(self, n): - # def OnGetLineAttr(self, n): - # def OnInsertLine(self): - # def OnDeleteLine(self, n): - # def OnEditLine(self, n): - # def OnSelectLine(self, n): - # def OnRefresh(self, n): - # def OnSelectionChange(self, sel_list): - # def OnClose(self): - # def OnCommand(self, n, cmd_id): -#</pycode_BC695(py_kernwin)> - diff --git a/pywraps/py_kernwin_askform.hpp b/pywraps/py_kernwin_askform.hpp index 60a0f6f..e5caf7d 100644 --- a/pywraps/py_kernwin_askform.hpp +++ b/pywraps/py_kernwin_askform.hpp @@ -13,7 +13,7 @@ static bool textctrl_info_t_assign(PyObject *self, PyObject *other) { textctrl_info_t *lhs = textctrl_info_t_get_clink(self); textctrl_info_t *rhs = textctrl_info_t_get_clink(other); - if ( lhs == NULL || rhs == NULL ) + if ( lhs == nullptr || rhs == nullptr ) return false; *lhs = *rhs; @@ -24,7 +24,7 @@ static bool textctrl_info_t_assign(PyObject *self, PyObject *other) static bool textctrl_info_t_set_text(PyObject *self, const char *s) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - if ( ti == NULL ) + if ( ti == nullptr ) return false; ti->text = s; return true; @@ -34,14 +34,14 @@ static bool textctrl_info_t_set_text(PyObject *self, const char *s) static const char *textctrl_info_t_get_text(PyObject *self) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - return ti == NULL ? "" : ti->text.c_str(); + return ti == nullptr ? "" : ti->text.c_str(); } //------------------------------------------------------------------------- static bool textctrl_info_t_set_flags(PyObject *self, unsigned int flags) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - if ( ti == NULL ) + if ( ti == nullptr ) return false; ti->flags = flags; return true; @@ -51,14 +51,14 @@ static bool textctrl_info_t_set_flags(PyObject *self, unsigned int flags) static unsigned int textctrl_info_t_get_flags(PyObject *self) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - return ti == NULL ? 0 : ti->flags; + return ti == nullptr ? 0 : ti->flags; } //------------------------------------------------------------------------- static bool textctrl_info_t_set_tabsize(PyObject *self, unsigned int tabsize) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - if ( ti == NULL ) + if ( ti == nullptr ) return false; ti->tabsize = tabsize; return true; @@ -68,7 +68,7 @@ static bool textctrl_info_t_set_tabsize(PyObject *self, unsigned int tabsize) static unsigned int textctrl_info_t_get_tabsize(PyObject *self) { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(self); - return ti == NULL ? 0 : ti->tabsize; + return ti == nullptr ? 0 : ti->tabsize; } //--------------------------------------------------------------------------- @@ -151,7 +151,7 @@ static PyObject *formchgcbfa_get_field_value( { qstring val; if ( fa->get_combobox_value(fid, &val) ) - return IDAPyStr_FromUTF8(val.c_str()); + return PyUnicode_FromString(val.c_str()); } break; @@ -184,7 +184,7 @@ static PyObject *formchgcbfa_get_field_value( { char val[MAXSTR]; if ( fa->get_string_value(fid, val, sizeof(val)) ) - return IDAPyStr_FromUTF8(val); + return PyUnicode_FromString(val); break; } // string input @@ -193,7 +193,7 @@ static PyObject *formchgcbfa_get_field_value( qstring val; val.resize(sz + 1); if ( fa->get_string_value(fid, val.begin(), val.size()) ) - return IDAPyStr_FromUTF8(val.begin()); + return PyUnicode_FromString(val.begin()); break; } case 5: @@ -215,7 +215,7 @@ static PyObject *formchgcbfa_get_field_value( sel_t sel; sval_t sval; uval_t uval; - ulonglong ull; + uint64 ull; } u; switch ( sz ) { @@ -268,10 +268,10 @@ static bool formchgcbfa_set_field_value( // dropdown list case 8: // Editable dropdown list - if ( IDAPyStr_Check(py_val) ) + if ( PyUnicode_Check(py_val) ) { qstring val; - IDAPyStr_AsUTF8(&val, py_val); + PyUnicode_as_qstring(&val, py_val); return fa->set_combobox_value(fid, &val); } // Readonly dropdown list @@ -286,7 +286,7 @@ static bool formchgcbfa_set_field_value( case 7: { textctrl_info_t *ti = (textctrl_info_t *)pyobj_get_clink(py_val); - return ti == NULL ? false : fa->set_text_value(fid, ti); + return ti != nullptr && fa->set_text_value(fid, ti); } // button - uint32 case 4: @@ -305,7 +305,7 @@ static bool formchgcbfa_set_field_value( case 1: { qstring val; - IDAPyStr_AsUTF8(&val, py_val); + PyUnicode_as_qstring(&val, py_val); return fa->set_string_value(fid, val.c_str()); } // intvec_t diff --git a/pywraps/py_kernwin_askform.py b/pywraps/py_kernwin_askform.py index c78e92e..45a1907 100644 --- a/pywraps/py_kernwin_askform.py +++ b/pywraps/py_kernwin_askform.py @@ -179,13 +179,13 @@ class Form(object): Factory method returning a ctype class corresponding to the field type string """ if tp in (Form.FT_SEG, Form.FT_HEX, Form.FT_RAWHEX, Form.FT_ADDR): - return ctypes.c_ulonglong if i64 else ctypes.c_ulong + return ctypes.c_uint64 if i64 else ctypes.c_ulong elif tp in (Form.FT_SHEX, Form.FT_DEC, Form.FT_OCT, Form.FT_BIN, Form.FT_CHAR): - return ctypes.c_longlong if i64 else ctypes.c_long + return ctypes.c_int64 if i64 else ctypes.c_long elif tp == Form.FT_UINT64: - return ctypes.c_ulonglong + return ctypes.c_uint64 elif tp == Form.FT_INT64: - return ctypes.c_longlong + return ctypes.c_int64 elif tp == Form.FT_COLOR: return ctypes.c_ulong elif tp == Form._FT_USHORT: @@ -302,7 +302,7 @@ class Form(object): """ String label control """ - def __init__(self, value, tp=None, size=1024): + def __init__(self, value, tp=None, size=ida_pro.MAXSTR): """ Type field can be one of: A - ascii string @@ -473,22 +473,30 @@ class Form(object): Generic form input control. It could be numeric control, string control, directory/file browsing, etc... """ - def __init__(self, tp, width, swidth, hlp = None): + def __init__(self, + tp, + width, + swidth, + hlp=None, + is_relative_offset=False): """ - @param width: Display width - @param swidth: String width + @param width: The maximum possible number of characters that + can be entered into the input field + @param swidth: The width of visible part of the input field """ Form.Control.__init__(self) self.tp = tp self.width = width - self.switdh = swidth + self.swidth = swidth self.hlp = hlp + self.is_relative_offset = is_relative_offset def get_tag(self): - return "%s%d:%s:%s:%s" % ( + return "%s%d:%s%s:%s:%s" % ( self.tp, self.id, + "+" if self.is_relative_offset else "", self.width, - self.switdh, + self.swidth, ":" if self.hlp is None else self.hlp) def is_input_field(self): @@ -499,10 +507,17 @@ class Form(object): """ A composite class serving as a base numeric input control class """ - def __init__(self, tp=None, value=0, width=50, swidth=10, hlp=None): + def __init__(self, + tp=None, + value=0, + width=50, + swidth=10, + hlp=None, + is_relative_offset=False): if tp is None: tp = Form.FT_HEX - Form.InputControl.__init__(self, tp, width, swidth, hlp) + Form.InputControl.__init__(self, + tp, width, swidth, hlp, is_relative_offset) Form.NumericArgument.__init__(self, self.tp, value) @@ -524,7 +539,7 @@ class Form(object): """ def __init__(self, tp=None, - width=1024, + width=ida_pro.MAXSTR, swidth=40, hlp=None, value=None, @@ -1356,7 +1371,7 @@ class Form(object): elif isinstance(ctrl, (Form.GroupItemControl, Form.GroupControl)): return (2, 0) elif isinstance(ctrl, Form.StringLabel): - return (3, min(_ida_kernwin.MAXSTR, ctrl.size)) + return (3, min(ida_pro.MAXSTR, ctrl.size)) elif isinstance(ctrl, Form.ColorInput): return (4, 0) elif isinstance(ctrl, Form.NumericInput): @@ -1368,13 +1383,19 @@ class Form(object): raise NotImplementedError("Not yet implemented") # -------------------------------------------------------------------------- -# Instantiate ask_form function pointer +# Instantiate ask_form/open_form function pointers try: import ctypes - # Setup the numeric argument size +# Setup the numeric argument size Form.NumericArgument.DefI64 = _ida_idaapi.BADADDR == 0xFFFFFFFFFFFFFFFF - __ask_form_callable = ctypes.CFUNCTYPE(ctypes.c_long)(_ida_kernwin.py_get_ask_form()) - __open_form_callable = ctypes.CFUNCTYPE(ctypes.c_long)(_ida_kernwin.py_get_open_form()) +# int ask_form(const char *form, ...) + __ask_form_callable = ctypes.CFUNCTYPE(ctypes.c_int)(_ida_kernwin.py_get_ask_form()) +# specify types of the fixed arguments explicitly so that varargs are passed correctly on arm macOS +# https://bugs.python.org/issue42880 + __ask_form_callable.argtypes = [ ctypes.c_char_p ] +# TWidget *open_form(const char *form, uint32 flags, ...) + __open_form_callable = ctypes.CFUNCTYPE(ctypes.c_void_p )(_ida_kernwin.py_get_open_form()) + __open_form_callable.argtypes = [ ctypes.c_char_p, ctypes.c_uint32 ] except: def __ask_form_callable(*args): warning("ask_form() needs ctypes library in order to work") @@ -1396,6 +1417,8 @@ def ask_form(*args): return __call_form_callable(__ask_form_callable, *args) def open_form(*args): + if len(args) == 1: + args = (args[0], 0) # add default flags return __call_form_callable(__open_form_callable, *args) #</pycode(py_kernwin_askform)> diff --git a/pywraps/py_kernwin_choose.hpp b/pywraps/py_kernwin_choose.hpp index ab3f39b..9972562 100644 --- a/pywraps/py_kernwin_choose.hpp +++ b/pywraps/py_kernwin_choose.hpp @@ -8,55 +8,76 @@ template <class T> static void py_get_int(PyObject *self, T *prm, const char *name) { ref_t attr(PyW_TryGetAttrString(self, name)); - if ( attr != NULL && attr.o != Py_None ) + if ( attr != nullptr && attr.o != Py_None ) *prm = T(PyInt_AsLong(attr.o)); } enum feature_t { - CFEAT_INIT = 0x0001, - CFEAT_GETICON = 0x0002, - CFEAT_GETATTR = 0x0004, - CFEAT_INS = 0x0008, - CFEAT_DEL = 0x0010, - CFEAT_EDIT = 0x0020, - CFEAT_ENTER = 0x0040, - CFEAT_REFRESH = 0x0080, - CFEAT_SELECT = 0x0100, - CFEAT_ONCLOSE = 0x0200, - CFEAT_EMBEDDED = 0x0400, + CFEAT_INIT = 0x0001, + CFEAT_GETICON = 0x0002, + CFEAT_GETATTR = 0x0004, + CFEAT_INS = 0x0008, + CFEAT_DEL = 0x0010, + CFEAT_EDIT = 0x0020, + CFEAT_ENTER = 0x0040, + CFEAT_REFRESH = 0x0080, + CFEAT_SELECT = 0x0100, + CFEAT_ONCLOSE = 0x0200, + CFEAT_EMBEDDED = 0x0400, + CFEAT_GETEA = 0x0800, + CFEAT_GETDIRTREE = 0x1000, + CFEAT_INDEX2INODE = 0x2000, + CFEAT_INDEX2DIFFPOS = 0x4000, + CFEAT_LAZYLOADDIR = 0x8000, }; //------------------------------------------------------------------------ // we do not use virtual subclasses so we use #define for common code #define DEFINE_COMMON_CALLBACKS \ - virtual const void *get_obj_id(size_t *len) const ida_override \ + virtual const void *get_obj_id(size_t *len) const override \ { \ return mixin_get_obj_id(len); \ } \ - virtual void *get_chooser_obj() ida_override \ + virtual void *get_chooser_obj() override \ { \ return mixin_get_chooser_obj(); \ } \ - virtual bool idaapi init() ida_override \ + virtual bool idaapi init() override \ { \ return mixin_init(this); \ } \ - virtual size_t idaapi get_count() const ida_override \ + virtual size_t idaapi get_count() const override \ { \ return mixin_get_count(); \ } \ virtual void idaapi get_row( \ - qstrvec_t *cols, \ - int *icon_, \ - chooser_item_attrs_t *attrs, \ - size_t n) const ida_override \ + qstrvec_t *cols, \ + int *icon_, \ + chooser_item_attrs_t *attrs, \ + size_t n) const override \ { \ mixin_get_row(cols, icon_, attrs, n, this); \ } \ - virtual void idaapi closed() ida_override \ + virtual void idaapi closed() override \ { \ mixin_closed(this); \ + } \ + virtual ea_t idaapi get_ea(size_t n) const override \ + { \ + return mixin_get_ea(n); \ + } \ + virtual dirtree_t *idaapi get_dirtree() override \ + { \ + return mixin_get_dirtree(this); \ + } \ + virtual inode_t idaapi index_to_inode(size_t n) const override \ + { \ + return mixin_index_to_inode(n); \ + } \ + virtual diffpos_t idaapi index_to_diffpos(size_t n) const override \ + { \ + return mixin_index_to_diffpos(n); \ } @@ -72,6 +93,7 @@ struct py_chooser_props_t // See CHOOSE_xxxx uint32 features; uint32 flags; + uint16 flags2; py_chooser_props_t() : features(0), flags(0) {} @@ -84,28 +106,33 @@ struct py_chooser_props_t popup_names.swap(o.popup_names); qswap(features, o.features); qswap(flags, o.flags); + qswap(flags2, o.flags2); } bool has_feature(feature_t f) const { return (features & f) == f; } + static bool is_valid_cb( + PyObject *o, + const char *name); + static bool do_extract_from_pyobject( - py_chooser_props_t *out, - PyObject *o, - bool title_only, - qstring *errbuf); + py_chooser_props_t *out, + PyObject *o, + bool title_only, + qstring *errbuf); static bool extract_from_pyobject( - py_chooser_props_t *out, - PyObject *o, - qstring *errbuf) + py_chooser_props_t *out, + PyObject *o, + qstring *errbuf) { return do_extract_from_pyobject(out, o, /*title_only=*/ false, errbuf); } static bool get_title_from_pyobject( - qstring *out, - PyObject *o, - qstring *errbuf) + qstring *out, + PyObject *o, + qstring *errbuf) { py_chooser_props_t props; bool ok = do_extract_from_pyobject(&props, o, /*title_only=*/ true, errbuf); @@ -115,6 +142,57 @@ struct py_chooser_props_t } }; +//------------------------------------------------------------------------- +bool py_chooser_props_t::is_valid_cb( + PyObject *o, + const char *name) +{ + newref_t py_o_class(PyObject_GetAttrString(o, "__class__")); + bool ok = py_o_class; +#ifdef TESTABLE_BUILD + QASSERT(30706, ok); +#endif + if ( ok ) + { + newref_t py_oclass_meth(PyObject_GetAttrString(py_o_class.o, name)); + ok = py_oclass_meth && PyCallable_Check(py_oclass_meth.o); +#ifdef TESTABLE_BUILD + QASSERT(30707, ok); +#endif + if ( ok ) + { + newref_t py_ida_kernwin(PyImport_ImportModule("ida_kernwin")); + ok = py_ida_kernwin; +#ifdef TESTABLE_BUILD + QASSERT(30708, ok); +#endif + if ( ok ) + { + newref_t py_chooser(PyObject_GetAttrString(py_ida_kernwin.o, "Choose")); + ok = py_chooser; +#ifdef TESTABLE_BUILD + QASSERT(30709, ok); +#endif + if ( ok ) + { + newref_t py_def_cb(PyObject_GetAttrString(py_chooser.o, name)); + ok = py_def_cb; +#ifdef TESTABLE_BUILD + QASSERT(30710, ok); +#endif + if ( ok ) + { + ok = PyObject_RichCompareBool(py_def_cb.o, /*cb_attr*/py_oclass_meth.o, Py_EQ) == 0; + // if ( ok ) + // msg("HAS NON-DEF: %s\n", name); + } + } + } + } + } + return ok; +} + //------------------------------------------------------------------------- bool py_chooser_props_t::do_extract_from_pyobject( py_chooser_props_t *out, @@ -136,19 +214,25 @@ bool py_chooser_props_t::do_extract_from_pyobject( // Get flags out->flags = 0; ref_t flags_attr(PyW_TryGetAttrString(o, S_FLAGS)); - if ( flags_attr == NULL ) + if ( flags_attr == nullptr ) RETERR("Missing or invalid mandatory '%s' attribute", S_FLAGS); - if ( IDAPyInt_Check(flags_attr.o) ) - out->flags = uint32(IDAPyInt_AsLong(flags_attr.o)); + if ( PyLong_Check(flags_attr.o) ) + out->flags = uint32(PyLong_AsLong(flags_attr.o)); // instruct TChooser destructor to delete this chooser when widget // closes out->flags &= ~CH_KEEP; + // Optionally get the extended flags + out->flags2 = 0; + ref_t flags2_attr(PyW_TryGetAttrString(o, S_FLAGS2)); + if ( flags2_attr != nullptr && PyLong_Check(flags2_attr.o) ) + out->flags2 = uint16(PyLong_AsLong(flags2_attr.o)); + // Get columns int ncols = -1; ref_t cols_attr(PyW_TryGetAttrString(o, "cols")); - if ( cols_attr != NULL ) + if ( cols_attr != nullptr ) ncols = int(PyList_Size(cols_attr.o)); if ( ncols < 1 ) RETERR("Missing or invalid mandatory '%s' attribute", S_COLS); @@ -161,28 +245,25 @@ bool py_chooser_props_t::do_extract_from_pyobject( { // get list item: [name, width] borref_t list(PyList_GetItem(cols_attr.o, i)); - borref_t v(PyList_GetItem(list.o, 0)); - // Extract string - if ( v != NULL ) - IDAPyStr_AsUTF8(&out->header_strings[i], v.o); + if ( ref_t v = borref_t(PyList_GetItem(list.o, 0)) ) + PyUnicode_as_qstring(&out->header_strings[i], v.o); out->header[i] = out->header_strings[i].c_str(); // Extract width int width; - borref_t v2(PyList_GetItem(list.o, 1)); // No width? Guess width from column title - if ( v2 == NULL ) - width = ::qustrlen(out->header_strings[i].c_str()); - else + if ( ref_t v2 = borref_t(PyList_GetItem(list.o, 1)) ) width = PyInt_AsLong(v2.o); + else + width = ::qustrlen(out->header_strings[i].c_str()); out->widths[i] = width; } // Get popup names // An array of 4 strings: ("Insert", "Delete", "Edit", "Refresh") ref_t pn_attr(PyW_TryGetAttrString(o, S_POPUP_NAMES)); - if ( pn_attr != NULL && PyList_Check(pn_attr.o) ) + if ( pn_attr != nullptr && PyList_Check(pn_attr.o) ) { Py_ssize_t npopups = PyList_Size(pn_attr.o); if ( npopups > chooser_base_t::NSTDPOPUPS ) @@ -190,7 +271,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( for ( Py_ssize_t i = 0; i < npopups; ++i ) { qstring &buf = out->popup_names.push_back(); - IDAPyStr_AsUTF8(&buf, PyList_GetItem(pn_attr.o, i)); + PyUnicode_as_qstring(&buf, PyList_GetItem(pn_attr.o, i)); } } @@ -200,36 +281,42 @@ bool py_chooser_props_t::do_extract_from_pyobject( const char *name; unsigned int have; // 0 = mandatory callback int chooser_t_flags; + int chooser_t_flags2; } callbacks[] = { - { S_ON_INIT, CFEAT_INIT, 0 }, - { S_ON_GET_SIZE, 0 }, - { S_ON_GET_LINE, 0 }, - { S_ON_GET_ICON, CFEAT_GETICON, 0 }, - { S_ON_GET_LINE_ATTR, CFEAT_GETATTR, 0 }, - { S_ON_INSERT_LINE, CFEAT_INS, CH_CAN_INS }, - { S_ON_DELETE_LINE, CFEAT_DEL, CH_CAN_DEL }, - { S_ON_EDIT_LINE, CFEAT_EDIT, CH_CAN_EDIT }, - { S_ON_SELECT_LINE, CFEAT_ENTER, 0 }, - { S_ON_REFRESH, CFEAT_REFRESH, CH_CAN_REFRESH }, - { S_ON_SELECTION_CHANGE, CFEAT_SELECT, 0 }, - { S_ON_CLOSE, CFEAT_ONCLOSE, 0 }, + { S_ON_INIT, CFEAT_INIT, 0, 0 }, + { S_ON_GET_SIZE, 0, 0 }, + { S_ON_GET_LINE, 0, 0 }, + { S_ON_GET_ICON, CFEAT_GETICON, 0, 0 }, + { S_ON_GET_LINE_ATTR, CFEAT_GETATTR, 0, 0 }, + { S_ON_INSERT_LINE, CFEAT_INS, CH_CAN_INS, 0 }, + { S_ON_DELETE_LINE, CFEAT_DEL, CH_CAN_DEL, 0 }, + { S_ON_EDIT_LINE, CFEAT_EDIT, CH_CAN_EDIT, 0 }, + { S_ON_SELECT_LINE, CFEAT_ENTER, 0, 0 }, + { S_ON_REFRESH, CFEAT_REFRESH, CH_CAN_REFRESH, 0 }, + { S_ON_SELECTION_CHANGE, CFEAT_SELECT, 0, 0 }, + { S_ON_CLOSE, CFEAT_ONCLOSE, 0, 0 }, + { S_ON_GET_EA, CFEAT_GETEA, 0, 0 }, + { S_ON_GET_DIRTREE, CFEAT_GETDIRTREE, CH_HAS_DIRTREE, 0 }, + { S_ON_INDEX_TO_INODE, CFEAT_INDEX2INODE, CH_HAS_DIRTREE, 0 }, + { S_ON_INDEX_TO_DIFFPOS, CFEAT_INDEX2DIFFPOS, CH_HAS_DIFF, 0 }, + { S_ON_LAZY_LOAD_DIR, CFEAT_LAZYLOADDIR, CH_HAS_DIRTREE, CH2_LAZY_LOADED }, }; // we can forbid some callbacks explicitly uint32 forbidden_cb = 0; ref_t forbidden_cb_attr(PyW_TryGetAttrString(o, "forbidden_cb")); - if ( forbidden_cb_attr != NULL && IDAPyInt_Check(forbidden_cb_attr.o) ) - forbidden_cb = uint32(IDAPyInt_AsLong(forbidden_cb_attr.o)); + if ( forbidden_cb_attr != nullptr && PyLong_Check(forbidden_cb_attr.o) ) + forbidden_cb = uint32(PyLong_AsLong(forbidden_cb_attr.o)); out->features = 0; for ( int i = 0; i < qnumber(callbacks); ++i ) { - ref_t cb_attr(PyW_TryGetAttrString(o, callbacks[i].name)); - bool have_cb = cb_attr != NULL && PyCallable_Check(cb_attr.o); - if ( have_cb && (forbidden_cb & callbacks[i].have) == 0 ) + if ( (forbidden_cb & callbacks[i].have) == 0 + && is_valid_cb(o, callbacks[i].name) ) { out->features |= callbacks[i].have; out->flags |= callbacks[i].chooser_t_flags; + out->flags2 |= callbacks[i].chooser_t_flags2; } else { @@ -241,7 +328,7 @@ bool py_chooser_props_t::do_extract_from_pyobject( // Check if *embedded ref_t emb_attr(PyW_TryGetAttrString(o, S_EMBEDDED)); - if ( emb_attr != NULL && PyObject_IsTrue(emb_attr.o) == 1 ) + if ( emb_attr != nullptr && PyObject_IsTrue(emb_attr.o) == 1 ) out->features |= CFEAT_EMBEDDED; #undef RETERR @@ -253,23 +340,31 @@ bool py_chooser_props_t::do_extract_from_pyobject( struct py_chooser_mixin_t { ref_t self; // link to actual Python object + ref_t dirspec; + ref_t dirtree; py_chooser_props_t props; py_chooser_mixin_t(PyObject *_self, py_chooser_props_t &_props) : self(borref_t(_self)) { + _instances.add_unique(this); props.swap(_props); } ~py_chooser_mixin_t() { PYW_GIL_GET; - self = newref_t(NULL); + self = newref_t(nullptr); + dirspec = newref_t(nullptr); + dirtree = newref_t(nullptr); + _instances.del(this); } bool has_feature(feature_t f) const { return props.has_feature(f); } static chooser_base_t *create_concrete_instance( - py_chooser_props_t &props, - PyObject *o); + py_chooser_props_t &props, + PyObject *o); + + static py_chooser_mixin_t *find_by_pyobj(PyObject *o); protected: const void *mixin_get_obj_id(size_t *len) const { *len = sizeof(self.o); return self.o; } @@ -277,23 +372,34 @@ protected: bool mixin_init(chooser_base_t *chobj); size_t mixin_get_count() const; void mixin_get_row( - qstrvec_t *cols, - int *icon_, - chooser_item_attrs_t *attrs, - size_t n, - const chooser_base_t *chobj) const; + qstrvec_t *cols, + int *icon_, + chooser_item_attrs_t *attrs, + size_t n, + const chooser_base_t *chobj) const; void mixin_closed(chooser_base_t *chobj); + ea_t mixin_get_ea(size_t n) const; + dirtree_t *mixin_get_dirtree(const chooser_base_t *chobj); + inode_t mixin_index_to_inode(size_t n) const; + diffpos_t mixin_index_to_diffpos(size_t n) const; void mixin_init_chooser_base_from_props(chooser_base_t *cb); + bool mixin_lazy_load_dir(dirtree_t *dt, const qstring &dir_path); + +private: + static qvector<py_chooser_mixin_t*> _instances; }; +//------------------------------------------------------------------------- +qvector<py_chooser_mixin_t*> py_chooser_mixin_t::_instances; + //------------------------------------------------------------------------- bool py_chooser_mixin_t::mixin_init(chooser_base_t *chobj) { if ( !has_feature(CFEAT_INIT) ) return chobj->chooser_base_t::init(); PYW_GIL_GET; - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_INIT, NULL)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_INIT, nullptr)); + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return chobj->chooser_base_t::init(); return bool(PyInt_AsLong(pyres.result.o)); } @@ -302,8 +408,8 @@ bool py_chooser_mixin_t::mixin_init(chooser_base_t *chobj) size_t py_chooser_mixin_t::mixin_get_count() const { PYW_GIL_GET; - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_GET_SIZE, NULL)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_GET_SIZE, nullptr)); + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return 0; return size_t(PyInt_AsLong(pyres.result.o)); } @@ -324,26 +430,25 @@ void py_chooser_mixin_t::mixin_get_row( PyObject_CallMethod( self.o, (char *)S_ON_GET_LINE, "i", int(n))); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; - if ( list.result != NULL ) + if ( list.result != nullptr ) { if ( PySequence_Check(list.result.o) ) { // Go over the List returned by Python and convert to C strings for ( int i = chobj->columns - 1; i >= 0; --i ) { - newref_t item(PySequence_GetItem(list.result.o, Py_ssize_t(i))); - if ( item != NULL ) + if ( ref_t item = newref_t(PySequence_GetItem(list.result.o, Py_ssize_t(i))) ) { - if ( !IDAPyStr_Check(item.o) ) + if ( !PyUnicode_Check(item.o) ) { PyErr_Format( PyExc_TypeError, "Expected 'str' data for row %" FMT_Z ", column %d", n, i); break; } - IDAPyStr_AsUTF8(&cols->at(i), item.o); + PyUnicode_as_qstring(&cols->at(i), item.o); } } } @@ -354,7 +459,7 @@ void py_chooser_mixin_t::mixin_get_row( "Expected 'list' for row %" FMT_Z, n); } } - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; *icon_ = chobj->icon; @@ -364,9 +469,9 @@ void py_chooser_mixin_t::mixin_get_row( PyObject_CallMethod( self.o, (char *)S_ON_GET_ICON, "i", int(n))); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return; - if ( pyres.result != NULL ) + if ( pyres.result != nullptr ) *icon_ = PyInt_AsLong(pyres.result.o); } @@ -376,15 +481,18 @@ void py_chooser_mixin_t::mixin_get_row( PyObject_CallMethod( self.o, (char *)S_ON_GET_LINE_ATTR, "i", int(n))); - if ( PyErr_Occurred() != NULL ) - return; - if ( pyres.result != NULL && PyList_Check(pyres.result.o) ) + if ( PyErr_Occurred() == nullptr && pyres.result != nullptr && PySequence_Check(pyres.result.o) ) { - PyObject *item; - if ( (item = PyList_GetItem(pyres.result.o, 0)) != NULL ) - attrs->color = PyInt_AsLong(item); - if ( (item = PyList_GetItem(pyres.result.o, 1)) != NULL ) - attrs->flags = PyInt_AsLong(item); + { + newref_t item(PySequence_GetItem(pyres.result.o, 0)); + if ( item && PyLong_Check(item.o) ) + attrs->color = PyLong_AsUnsignedLong(item.o); + } + { + newref_t item(PySequence_GetItem(pyres.result.o, 1)); + if ( item && PyLong_Check(item.o) ) + attrs->flags = PyInt_AsLong(item.o); + } } } } @@ -395,7 +503,7 @@ void py_chooser_mixin_t::mixin_closed(chooser_base_t *chobj) PYW_GIL_GET; if ( has_feature(CFEAT_ONCLOSE) ) { - pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_CLOSE, NULL)); + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_CLOSE, nullptr)); } else { @@ -407,13 +515,104 @@ void py_chooser_mixin_t::mixin_closed(chooser_base_t *chobj) newref_t tramp(PyObject_GetAttrString(self.o, "ui_hooks_trampoline")); if ( tramp.o != Py_None ) { - newref_t unhook_res(PyObject_CallMethod(tramp.o, "unhook", NULL)); + newref_t unhook_res(PyObject_CallMethod(tramp.o, "unhook", nullptr)); } } PyObject_DelAttrString(self.o, "ui_hooks_trampoline"); } } +//------------------------------------------------------------------------- +ea_t py_chooser_mixin_t::mixin_get_ea(size_t n) const +{ + ea_t ea = BADADDR; + if ( has_feature(CFEAT_GETEA) ) + { + PYW_GIL_GET; + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_GET_EA, PY_BV_SZ, Py_ssize_t(n))); + if ( pyres.result != nullptr ) + { + uint64 u64; + if ( PyW_GetNumber(pyres.result.o, &u64) ) + ea = ea_t(u64); + } + } + return ea; +} + +//------------------------------------------------------------------------- +dirtree_t *py_chooser_mixin_t::mixin_get_dirtree(const chooser_base_t * /*chobj*/) +{ + if ( !has_feature(CFEAT_GETDIRTREE) ) + return nullptr; + PYW_GIL_GET; + + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_GET_DIRTREE, nullptr)); + if ( pyres.result == nullptr ) + return nullptr; + + if ( !PyTuple_Check(pyres.result.o) || PyTuple_Size(pyres.result.o) != 2 ) + { +GET_DIRTREE_BAD_RESULT: + PyErr_Format(PyExc_TypeError, "%s must return a tuple (dirspec_t, dirtree_t)", S_ON_GET_DIRTREE); + return nullptr; + } + + { + borref_t py_dirspec(PyTuple_GetItem(pyres.result.o, 0)); + dirspec_t *dirspec_ptr = nullptr; + if ( !SWIG_IsOK(SWIG_ConvertPtr(py_dirspec.o, (void **) &dirspec_ptr, SWIGTYPE_p_dirspec_t, 0)) ) + goto GET_DIRTREE_BAD_RESULT; + dirspec = py_dirspec; + } + + dirtree_t *dirtree_ptr = nullptr; + { + borref_t py_dirtree(PyTuple_GetItem(pyres.result.o, 1)); + if ( !SWIG_IsOK(SWIG_ConvertPtr(py_dirtree.o, (void **) &dirtree_ptr, SWIGTYPE_p_dirtree_t, 0)) ) + goto GET_DIRTREE_BAD_RESULT; + dirtree = py_dirtree; + } + + return dirtree_ptr; +} + +//------------------------------------------------------------------------- +inode_t py_chooser_mixin_t::mixin_index_to_inode(size_t n) const +{ + inode_t inode = BADADDR; + if ( has_feature(CFEAT_INDEX2INODE) ) + { + PYW_GIL_GET; + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_INDEX_TO_INODE, PY_BV_SZ, Py_ssize_t(n))); + if ( pyres.result != nullptr ) + { + uint64 u64; + if ( PyW_GetNumber(pyres.result.o, &u64) ) + inode = inode_t(u64); + } + } + return inode; +} + +//------------------------------------------------------------------------- +diffpos_t py_chooser_mixin_t::mixin_index_to_diffpos(size_t n) const +{ + diffpos_t diffpos = diffpos_t(-1); // BADDIFF; + if ( has_feature(CFEAT_INDEX2DIFFPOS) ) + { + PYW_GIL_GET; + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_INDEX_TO_DIFFPOS, PY_BV_SZ, Py_ssize_t(n))); + if ( pyres.result != nullptr ) + { + uint64 u64; + if ( PyW_GetNumber(pyres.result.o, &u64) ) + diffpos = diffpos_t(u64); + } + } + return diffpos; +} + //------------------------------------------------------------------------- void py_chooser_mixin_t::mixin_init_chooser_base_from_props( chooser_base_t *cb) @@ -422,6 +621,20 @@ void py_chooser_mixin_t::mixin_init_chooser_base_from_props( cb->popup_names[i] = props.popup_names[i].begin(); } +//------------------------------------------------------------------------- +bool py_chooser_mixin_t::mixin_lazy_load_dir( + dirtree_t *dt, + const qstring &dir_path) +{ + if ( !has_feature(CFEAT_LAZYLOADDIR) ) + return false; + PYW_GIL_GET; + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *)S_ON_LAZY_LOAD_DIR, "s", dir_path.c_str())); // TODO: pass the dirtree_t (presumably using PyObject_CallFunctionObjArgs) + if ( pyres.result == nullptr || pyres.result.o == Py_None ) + return false; + return bool(PyInt_AsLong(pyres.result.o)); +} + //------------------------------------------------------------------------ // chooser class without multi-selection class py_chooser_t : public chooser_t, public py_chooser_mixin_t @@ -432,9 +645,9 @@ class py_chooser_t : public chooser_t, public py_chooser_mixin_t return false; PYW_GIL_GET; pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) name, "i", n)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return false; - if ( out != NULL ) + if ( out != nullptr ) { // [ changed, idx ] cbret_t ret; @@ -442,14 +655,14 @@ class py_chooser_t : public chooser_t, public py_chooser_mixin_t { { newref_t item(PySequence_GetItem(pyres.result.o, 0)); - if ( item.o != NULL && IDAPyInt_Check(item.o) ) - ret.changed = cbres_t(IDAPyInt_AsLong(item.o)); + if ( item && PyLong_Check(item.o) ) + ret.changed = cbres_t(PyLong_AsLong(item.o)); } if ( ret.changed != NOTHING_CHANGED ) { newref_t item(PySequence_GetItem(pyres.result.o, 1)); - if ( item.o != NULL && IDAPyInt_Check(item.o) ) - ret.idx = ssize_t(IDAPyInt_AsSsize_t(item.o)); + if ( item && PyLong_Check(item.o) ) + ret.idx = ssize_t(PyLong_AsSsize_t(item.o)); } } *out = ret; @@ -464,7 +677,8 @@ public: props_.widths.size(), props_.widths.begin(), props_.header.begin(), - props_.title.c_str()), + props_.title.c_str(), + props_.flags2), py_chooser_mixin_t(self_, props_) { mixin_init_chooser_base_from_props(this); @@ -472,39 +686,46 @@ public: DEFINE_COMMON_CALLBACKS - virtual cbret_t idaapi ins(ssize_t n) ida_override + virtual cbret_t idaapi ins(ssize_t n) override { cbret_t res; return _call(&res, CFEAT_INS, S_ON_INSERT_LINE, int(n)) ? res : chooser_t::ins(n); } - virtual cbret_t idaapi del(size_t n) ida_override + virtual cbret_t idaapi del(size_t n) override { cbret_t res; return _call(&res, CFEAT_DEL, S_ON_DELETE_LINE, int(n)) ? res : chooser_t::del(n); } - virtual cbret_t idaapi edit(size_t n) ida_override + virtual cbret_t idaapi edit(size_t n) override { cbret_t res; return _call(&res, CFEAT_EDIT, S_ON_EDIT_LINE, int(n)) ? res : chooser_t::edit(n); } - virtual cbret_t idaapi enter(size_t n) ida_override + virtual cbret_t idaapi enter(size_t n) override { cbret_t res; return _call(&res, CFEAT_ENTER, S_ON_SELECT_LINE, int(n)) ? res : chooser_t::enter(n); } - virtual cbret_t idaapi refresh(ssize_t n) ida_override + virtual cbret_t idaapi refresh(ssize_t n) override { cbret_t res; return _call(&res, CFEAT_REFRESH, S_ON_REFRESH, int(n)) ? res : chooser_t::refresh(n); } - virtual void idaapi select(ssize_t n) const ida_override + virtual void idaapi select(ssize_t n) const override { - _call(NULL, CFEAT_SELECT, S_ON_SELECTION_CHANGE, int(n)); + _call(nullptr, CFEAT_SELECT, S_ON_SELECTION_CHANGE, int(n)); + } + + virtual bool idaapi do_lazy_load_dir( + dirtree_t *dt, + const qstring &dir_path) override + { + return mixin_lazy_load_dir(dt, dir_path); } }; @@ -519,7 +740,7 @@ class py_chooser_multi_t : public chooser_multi_t, public py_chooser_mixin_t PYW_GIL_GET; ref_t py_list(PyW_SizeVecToPyList(*sel)); pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) name, "O", py_list.o)); - if ( pyres.result == NULL || pyres.result.o == Py_None ) + if ( pyres.result == nullptr || pyres.result.o == Py_None ) return false; // [ changed, idx, ... ] cbres_t res; @@ -535,7 +756,7 @@ class py_chooser_multi_t : public chooser_multi_t, public py_chooser_mixin_t res = cbres_t(sel->front()); sel->erase(sel->begin()); } - if ( out != NULL ) + if ( out != nullptr ) *out = res; return true; } @@ -547,7 +768,8 @@ public: props_.widths.size(), props_.widths.begin(), props_.header.begin(), - props_.title.c_str()), + props_.title.c_str(), + props_.flags2), py_chooser_mixin_t(self_, props_) { mixin_init_chooser_base_from_props(this); @@ -555,40 +777,47 @@ public: DEFINE_COMMON_CALLBACKS - virtual cbres_t idaapi ins(sizevec_t *sel) ida_override + virtual cbres_t idaapi ins(sizevec_t *sel) override { cbres_t res = NOTHING_CHANGED; return _call(&res, CFEAT_INS, S_ON_INSERT_LINE, sel) ? res : chooser_multi_t::ins(sel); } - virtual cbres_t idaapi del(sizevec_t *sel) ida_override + virtual cbres_t idaapi del(sizevec_t *sel) override { cbres_t res = NOTHING_CHANGED; return _call(&res, CFEAT_DEL, S_ON_DELETE_LINE, sel) ? res : chooser_multi_t::del(sel); } - virtual cbres_t idaapi edit(sizevec_t *sel) ida_override + virtual cbres_t idaapi edit(sizevec_t *sel) override { cbres_t res = NOTHING_CHANGED; return _call(&res, CFEAT_EDIT, S_ON_EDIT_LINE, sel) ? res : chooser_multi_t::edit(sel); } - virtual cbres_t idaapi enter(sizevec_t *sel) ida_override + virtual cbres_t idaapi enter(sizevec_t *sel) override { cbres_t res = NOTHING_CHANGED; return _call(&res, CFEAT_ENTER, S_ON_SELECT_LINE, sel) ? res : chooser_multi_t::enter(sel); } - virtual cbres_t idaapi refresh(sizevec_t *sel) ida_override + virtual cbres_t idaapi refresh(sizevec_t *sel) override { cbres_t res = NOTHING_CHANGED; return _call(&res, CFEAT_REFRESH, S_ON_REFRESH, sel) ? res : chooser_multi_t::refresh(sel); } - virtual void idaapi select(const sizevec_t &_sel) const ida_override + virtual void idaapi select(const sizevec_t &_sel) const override { sizevec_t sel = _sel; - _call(NULL, CFEAT_SELECT, S_ON_SELECTION_CHANGE, &sel); + _call(nullptr, CFEAT_SELECT, S_ON_SELECTION_CHANGE, &sel); + } + + virtual bool idaapi do_lazy_load_dir( + dirtree_t *dt, + const qstring &dir_path) override + { + return mixin_lazy_load_dir(dt, dir_path); } }; @@ -597,7 +826,7 @@ chooser_base_t *py_chooser_mixin_t::create_concrete_instance( py_chooser_props_t &props, PyObject *o) { - chooser_base_t *chobj = NULL; + chooser_base_t *chobj = nullptr; if ( (props.flags & CH_MULTI) == 0 ) chobj = new py_chooser_t(o, props); else @@ -620,6 +849,16 @@ chooser_base_t *py_chooser_mixin_t::create_concrete_instance( return chobj; } +//------------------------------------------------------------------------- +py_chooser_mixin_t * py_chooser_mixin_t::find_by_pyobj( + PyObject *o) +{ + for ( auto m : _instances ) + if ( m->mixin_get_chooser_obj() == o ) + return m; + return nullptr; +} + //------------------------------------------------------------------------- PyObject *choose_choose(PyObject *self) { @@ -628,7 +867,7 @@ PyObject *choose_choose(PyObject *self) if ( !py_chooser_props_t::extract_from_pyobject(&props, self, &errbuf) ) { PyErr_SetString(PyExc_AttributeError, errbuf.c_str()); - return NULL; + return nullptr; } chooser_base_t *chobj = py_chooser_mixin_t::create_concrete_instance(props, self); @@ -645,7 +884,7 @@ PyObject *choose_choose(PyObject *self) // Get *deflt sizevec_t deflt; ref_t deflt_attr(PyW_TryGetAttrString(self, "deflt")); - if ( deflt_attr != NULL + if ( deflt_attr != nullptr && PyList_Check(deflt_attr.o) && PyW_PyListToSizeVec(&deflt, deflt_attr.o) < 0 ) { @@ -680,14 +919,14 @@ TWidget *choose_get_widget(PyObject *self) qstring title, errbuf; return py_chooser_props_t::get_title_from_pyobject(&title, self, &errbuf) ? find_widget(title.c_str()) - : NULL; + : nullptr; } //------------------------------------------------------------------------ void choose_activate(PyObject *self) { TWidget *w = choose_get_widget(self); - if ( w != NULL ) + if ( w != nullptr ) activate_widget(w, true); } @@ -707,7 +946,7 @@ PyObject *choose_create_embedded_chobj(PyObject *self) else { PyErr_SetString(PyExc_AttributeError, errbuf.c_str()); - return NULL; + return nullptr; } return PyLong_FromUnsignedLongLong(ptr); } @@ -716,7 +955,9 @@ PyObject *choose_create_embedded_chobj(PyObject *self) PyObject *choose_find(const char *title) { PyObject *o = static_cast<PyObject*>(::get_chooser_obj(title)); - if ( o == NULL ) + if ( o == nullptr ) + Py_RETURN_NONE; + if ( py_chooser_mixin_t::find_by_pyobj(o) == nullptr ) Py_RETURN_NONE; Py_INCREF(o); return o; @@ -725,6 +966,16 @@ PyObject *choose_find(const char *title) //--------------------------------------------------------------------------- //<inline(py_kernwin_choose)> + +#define CHOOSER_NO_SELECTION 0x01 +#define CHOOSER_MULTI_SELECTION 0x02 +#define CHOOSER_POPUP_MENU 0x04 + + // The following are obsolete, only present for bw-compat +#define CHOOSER_MENU_EDIT 0 +#define CHOOSER_MENU_JUMP 1 +#define CHOOSER_MENU_SEARCH 2 + PyObject *choose_find(const char *title); void choose_refresh(PyObject *self); void choose_close(PyObject *self); @@ -740,7 +991,7 @@ PyObject *py_get_chooser_data(const char *chooser_caption, int n) Py_RETURN_NONE; PyObject *py_list = PyList_New(data.size()); for ( size_t i = 0; i < data.size(); ++i ) - PyList_SetItem(py_list, i, IDAPyStr_FromUTF8(data[i].c_str())); + PyList_SetItem(py_list, i, PyUnicode_FromString(data[i].c_str())); return py_list; } diff --git a/pywraps/py_kernwin_choose.py b/pywraps/py_kernwin_choose.py index e0b0743..4647b93 100644 --- a/pywraps/py_kernwin_choose.py +++ b/pywraps/py_kernwin_choose.py @@ -62,17 +62,31 @@ class Choose(object): CH_RESTORE = _ida_kernwin.CH_RESTORE """restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only)""" + CH_RENAME_IS_EDIT = _ida_kernwin.CH_RENAME_IS_EDIT + """triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row.""" + CH_BUILTIN_SHIFT = _ida_kernwin.CH_BUILTIN_SHIFT CH_BUILTIN_MASK = _ida_kernwin.CH_BUILTIN_MASK + """The chooser can provide a dirtree_t, meaning a tree-like structure + can be provided to the user (instead of a flat table)""" + CH_HAS_DIRTREE = _ida_kernwin.CH_HAS_DIRTREE + + """The chooser can be used in a diffing/merging workflow""" + CH_HAS_DIFF = _ida_kernwin.CH_HAS_DIFF + # column flags (are specified in the widths array) - CHCOL_PLAIN = _ida_kernwin.CHCOL_PLAIN - CHCOL_PATH = _ida_kernwin.CHCOL_PATH - CHCOL_HEX = _ida_kernwin.CHCOL_HEX - CHCOL_DEC = _ida_kernwin.CHCOL_DEC - CHCOL_EA = _ida_kernwin.CHCOL_EA - CHCOL_FNAME = _ida_kernwin.CHCOL_FNAME - CHCOL_FORMAT = _ida_kernwin.CHCOL_FORMAT + CHCOL_PLAIN = _ida_kernwin.CHCOL_PLAIN + CHCOL_PATH = _ida_kernwin.CHCOL_PATH + CHCOL_HEX = _ida_kernwin.CHCOL_HEX + CHCOL_DEC = _ida_kernwin.CHCOL_DEC + CHCOL_EA = _ida_kernwin.CHCOL_EA + CHCOL_FNAME = _ida_kernwin.CHCOL_FNAME + CHCOL_FORMAT = _ida_kernwin.CHCOL_FORMAT + CHCOL_DEFHIDDEN = _ida_kernwin.CHCOL_DEFHIDDEN + CHCOL_DRAGHINT = _ida_kernwin.CHCOL_DRAGHINT + CHCOL_INODENAME = _ida_kernwin.CHCOL_INODENAME # special values of the chooser index NO_SELECTION = -1 @@ -89,18 +103,6 @@ class Choose(object): ALL_CHANGED = 1 SELECTION_CHANGED = 2 - # to construct `forbidden_cb` - CHOOSE_HAVE_INIT = 0x0001 - CHOOSE_HAVE_GETICON = 0x0002 - CHOOSE_HAVE_GETATTR = 0x0004 - CHOOSE_HAVE_INS = 0x0008 - CHOOSE_HAVE_DEL = 0x0010 - CHOOSE_HAVE_EDIT = 0x0020 - CHOOSE_HAVE_ENTER = 0x0040 - CHOOSE_HAVE_REFRESH = 0x0080 - CHOOSE_HAVE_SELECT = 0x0100 - CHOOSE_HAVE_ONCLOSE = 0x0200 - class UI_Hooks_Trampoline(UI_Hooks): def __init__(self, v): UI_Hooks.__init__(self) @@ -119,7 +121,7 @@ class Choose(object): icon=-1, x1=-1, y1=-1, x2=-1, y2=-1, deflt = None, embedded = False, width = None, height = None, - forbidden_cb = 0): + forbidden_cb = 0, flags2 = 0): """ Constructs a chooser window. @param title: The chooser title @@ -127,6 +129,7 @@ class Choose(object): example: [ ["Address", 10 | Choose.CHCOL_HEX], ["Name", 30 | Choose.CHCOL_PLAIN] ] @param flags: One of CH_XXXX constants + @param flags2: One of CH2_XXXX constants @param deflt: The index of the default item (0-based) for single selection choosers or the list of indexes for multi selection chooser @@ -142,6 +145,7 @@ class Choose(object): """ self.title = title self.flags = flags + self.flags2 = flags2 self.cols = cols if deflt == None: deflt = 0 if (flags & Choose.CH_MULTI) == 0 else [0] @@ -248,7 +252,7 @@ class Choose(object): @param: line number of the remaining select item @return: list of selected lines numbers (one element or empty) """ - cnt = self.OnGetSize(); + cnt = self.OnGetSize() if cnt == 0: return [] # take in account deleting of the last item(s) @@ -274,4 +278,171 @@ class Choose(object): def OnPopup(self, widget, popup_handle): self._quick_commands.populate_popup(widget, popup_handle) + def OnInit(self): + """ + Initialize the chooser and populate it. + + This callback is optional + """ + pass + + def OnGetSize(self): + """ + Get the number of elements in the chooser. + + This callback is mandatory + + @return the number of elements + """ + pass + + def OnGetLine(self, n): + """ + Get data for an element + + This callback is mandatory + + @param n the index to fetch data for + @return a list of strings + """ + pass + + def OnGetIcon(self, n): + """ + Get an icon to associate with the first cell of an element + + @param n index of the element + @return an icon ID + """ + pass + + def OnGetLineAttr(self, n): + """ + Get attributes for an element + + @param n index of the element + @return a tuple (color, flags) + """ + pass + + def OnInsertLine(self, sel): + """ + User asked to insert an element + + @param sel the current selection + @return a tuple (changed, selection) + """ + pass + + def OnDeleteLine(self, sel): + """ + User deleted an element + + @param sel the current selection + @return a tuple (changed, selection) + """ + pass + + def OnEditLine(self, sel): + """ + User asked to edit an element. + + @param sel the current selection + @return a tuple (changed, selection) + """ + pass + + def OnSelectLine(self, sel): + """ + User pressed the enter key, or double-clicked a selection + + @param sel the current selection + @return a tuple (changed, selection) + """ + pass + + def OnSelectionChange(self, sel): + """ + Selection changed + + @param sel the new selection + """ + pass + + def OnRefresh(self, sel): + """ + The chooser needs to be refreshed. + It returns the new positions of the selected items. + + @param sel the current selection + @return a tuple (changed, selection) + """ + pass + + def OnClose(self): + """ + The chooser window is closed. + """ + pass + + def 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()) + @param n element number (0-based) + @return the effective address, ida_idaapi.BADADDR if the element has no address + """ + pass + + def 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 + """ + pass + + def OnIndexToInode(self, n): + """ + Map an element index to a dirtree_t inode + + This callback is mandatory if CH_HAS_DIRTREE is specified + + @param n index of the element + @return the inode number + """ + pass + + def OnIndexToDiffpos(self, n): + """ + Map an element index to a diffpos_t + + This callback is mandatory if CH_HAS_DIFF is specified + + @param n index of the element + @return the diffpos + """ + pass + + def 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. + + @param path an absolute dirtree path to the directory that is being expanded + @return success + """ + pass + #</pycode(py_kernwin_choose)> diff --git a/pywraps/py_kernwin_cli.hpp b/pywraps/py_kernwin_cli.hpp index 4a66186..58ec0d7 100644 --- a/pywraps/py_kernwin_cli.hpp +++ b/pywraps/py_kernwin_cli.hpp @@ -80,7 +80,7 @@ private: "s", line)); PyW_ShowCbErr(S_ON_EXECUTE_LINE); - return result != NULL && PyObject_IsTrue(result.o); + return result && PyObject_IsTrue(result.o); } //-------------------------------------------------------------------------- @@ -96,11 +96,11 @@ private: // Returns: true-modified input line or x coordinate or selection length // This callback is optional bool on_keydown( - qstring *line, - int *p_x, - int *p_sellen, - int *vk_key, - int shift) + qstring *line, + int *p_x, + int *p_sellen, + int *vk_key, + int shift) { PYW_GIL_GET; newref_t result( @@ -114,7 +114,7 @@ private: *vk_key, shift)); - bool ok = result != NULL && PyTuple_Check(result.o); + bool ok = result && PyTuple_Check(result.o); PyW_ShowCbErr(S_ON_KEYDOWN); @@ -124,8 +124,8 @@ private: if ( sz > 0 ) { borref_t _r(PyTuple_GetItem(result.o, 0)); - if ( _r != NULL && IDAPyStr_Check(_r.o) ) - IDAPyStr_AsUTF8(line, _r.o); + if ( _r && PyUnicode_Check(_r.o) ) + PyUnicode_as_qstring(line, _r.o); } #define GET_TUPLE_ENTRY(col, PyThingy, AsThingy, out) \ @@ -134,7 +134,7 @@ private: if ( sz > col ) \ { \ borref_t _r(PyTuple_GetItem(result.o, col)); \ - if ( _r != NULL && PyThingy##_Check(_r.o) ) \ + if ( _r && PyThingy##_Check(_r.o) ) \ *out = PyThingy##_##AsThingy(_r.o); \ } \ } while ( false ) @@ -154,11 +154,11 @@ private: // Returns: true if generated a new completion // This callback is optional bool on_complete_line( - qstring *completion, - const char *prefix, - int n, - const char *line, - int x) + qstring *completion, + const char *prefix, + int n, + const char *line, + int x) { PYW_GIL_GET; newref_t result( @@ -171,10 +171,10 @@ private: line, x)); - bool ok = result != NULL && IDAPyStr_Check(result.o); + bool ok = result && PyUnicode_Check(result.o); PyW_ShowCbErr(S_ON_COMPLETE_LINE); if ( ok ) - IDAPyStr_AsUTF8(completion, result.o); + PyUnicode_as_qstring(completion, result.o); return ok; } @@ -182,11 +182,11 @@ private: // Find completions // This callback is optional bool on_find_completions( - qstrvec_t *out_completions, - int *out_match_start, - int *out_match_end, - const char *line, - int x) + qstrvec_t *out_completions, + int *out_match_start, + int *out_match_end, + const char *line, + int x) { PYW_GIL_GET; newref_t py_res( @@ -197,7 +197,7 @@ private: line, x)); PyW_ShowCbErr(S_ON_FIND_COMPLETIONS); - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) return false; return idapython_convert_cli_completions( out_completions, out_match_start, out_match_end, py_res); @@ -218,10 +218,10 @@ public: // Find an empty slot for ( cli_idx = 0; cli_idx < MAX_PY_CLI; ++cli_idx ) { - if ( py_clis[cli_idx] == NULL ) + if ( py_clis[cli_idx] == nullptr ) break; } - py_cli_t *py_cli = NULL; + py_cli_t *py_cli = nullptr; do { // No free slots? @@ -237,7 +237,7 @@ public: // Store 'flags' { ref_t flags_attr(PyW_TryGetAttrString(py_obj, S_FLAGS)); - if ( flags_attr == NULL ) + if ( flags_attr == nullptr ) py_cli->cli.flags = 0; else py_cli->cli.flags = PyLong_AsLong(flags_attr.o); @@ -262,9 +262,9 @@ public: if ( !PyObject_HasAttrString(py_obj, S_ON_EXECUTE_LINE) ) break; py_cli->cli.execute_line = py_cli_cbs[cli_idx].execute_line; - py_cli->cli.unused = (void *) (PyObject_HasAttrString(py_obj, S_ON_COMPLETE_LINE) ? py_cli_cbs[cli_idx].complete_line : NULL); - py_cli->cli.keydown = PyObject_HasAttrString(py_obj, S_ON_KEYDOWN) ? py_cli_cbs[cli_idx].keydown : NULL; - py_cli->cli.find_completions = PyObject_HasAttrString(py_obj, S_ON_FIND_COMPLETIONS) ? py_cli_cbs[cli_idx].find_completions : NULL; + py_cli->cli.unused = (void *) (PyObject_HasAttrString(py_obj, S_ON_COMPLETE_LINE) ? py_cli_cbs[cli_idx].complete_line : nullptr); + py_cli->cli.keydown = PyObject_HasAttrString(py_obj, S_ON_KEYDOWN) ? py_cli_cbs[cli_idx].keydown : nullptr; + py_cli->cli.find_completions = PyObject_HasAttrString(py_obj, S_ON_FIND_COMPLETIONS) ? py_cli_cbs[cli_idx].find_completions : nullptr; // install CLI install_command_interpreter(&py_cli->cli); @@ -287,7 +287,7 @@ public: static void unbind(int cli_idx) { // Out of bounds or not set? - if ( cli_idx < 0 || cli_idx >= MAX_PY_CLI || py_clis[cli_idx] == NULL ) + if ( cli_idx < 0 || cli_idx >= MAX_PY_CLI || py_clis[cli_idx] == nullptr ) return; py_cli_t *py_cli = py_clis[cli_idx]; @@ -299,12 +299,12 @@ public: delete py_cli; } - py_clis[cli_idx] = NULL; + py_clis[cli_idx] = nullptr; return; } }; -py_cli_t *py_cli_t::py_clis[MAX_PY_CLI] = { NULL }; +py_cli_t *py_cli_t::py_clis[MAX_PY_CLI] = { nullptr }; #define DECL_PY_CLI_CB(CBN) { s_execute_line##CBN, s_complete_line##CBN, s_keydown##CBN } const py_cli_cbs_t py_cli_t::py_cli_cbs[MAX_PY_CLI] = { diff --git a/pywraps/py_kernwin_cli.py b/pywraps/py_kernwin_cli.py index 205490c..6f20f12 100644 --- a/pywraps/py_kernwin_cli.py +++ b/pywraps/py_kernwin_cli.py @@ -13,6 +13,8 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t): self.__cli_idx = -1 self.__clink__ = None + def __del__(self): + self.unregister() def register(self, flags = 0, sname = None, lname = None, hint = None): """ @@ -38,7 +40,6 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t): self.__cli_idx = _ida_kernwin.install_command_interpreter(self) return False if self.__cli_idx < 0 else True - def unregister(self): """ Unregisters the CLI (if it was registered) @@ -50,59 +51,50 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t): self.__cli_idx = -1 return True + def OnExecuteLine(self, line): + """ + The user pressed Enter. The CLI is free to execute the line immediately or ask for more lines. - def __del__(self): - self.unregister() + This callback is mandatory. - # - # Implement these methods in the subclass: - # -#<pydoc> -# def OnExecuteLine(self, line): -# """ -# The user pressed Enter. The CLI is free to execute the line immediately or ask for more lines. -# -# This callback is mandatory. -# -# @param line: typed line(s) -# @return Boolean: True-executed line, False-ask for more lines -# """ -# return True -# -# def OnKeydown(self, line, x, sellen, vkey, shift): -# """ -# A keyboard key has been pressed -# This is a generic callback and the CLI is free to do whatever it wants. -# -# This callback is optional. -# -# @param line: current input line -# @param x: current x coordinate of the cursor -# @param sellen: current selection length (usually 0) -# @param vkey: virtual key code. if the key has been handled, it should be returned as zero -# @param 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) -# """ -# return None -# -# def OnCompleteLine(self, prefix, n, line, prefix_start): -# """ -# The user pressed Tab. Find a completion number N for prefix PREFIX -# -# This callback is optional. -# -# @param prefix: Line prefix at prefix_start (string) -# @param n: completion number (int) -# @param line: the current line (string) -# @param 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 -# """ -# return None -#</pydoc> + @param line: typed line(s) + @return Boolean: True-executed line, False-ask for more lines + """ + return True + + def OnKeydown(self, line, x, sellen, vkey, shift): + """ + A keyboard key has been pressed + This is a generic callback and the CLI is free to do whatever it wants. + + This callback is optional. + + @param line: current input line + @param x: current x coordinate of the cursor + @param sellen: current selection length (usually 0) + @param vkey: virtual key code. if the key has been handled, it should be returned as zero + @param 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) + """ + return None + + def OnCompleteLine(self, prefix, n, line, prefix_start): + """ + The user pressed Tab. Find a completion number N for prefix PREFIX + + This callback is optional. + + @param prefix: Line prefix at prefix_start (string) + @param n: completion number (int) + @param line: the current line (string) + @param 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 + """ + return None #</pycode(py_kernwin_cli)> diff --git a/pywraps/py_kernwin_custview.hpp b/pywraps/py_kernwin_custview.hpp index f723011..e600c6f 100644 --- a/pywraps/py_kernwin_custview.hpp +++ b/pywraps/py_kernwin_custview.hpp @@ -84,12 +84,12 @@ public: simpleline_t *get_line(size_t nline) { - return nline >= lines.size() ? NULL : &lines[nline]; + return nline >= lines.size() ? nullptr : &lines[nline]; } simpleline_t *get_line(place_t *pl) { - return pl == NULL ? NULL : get_line(((simpleline_place_t *)pl)->n); + return pl == nullptr ? nullptr : get_line(((simpleline_place_t *)pl)->n); } size_t count() const @@ -132,10 +132,10 @@ class py_simplecustview_t }; static bool idaapi s_cv_keydown( - TWidget * /*cv*/, - int vk_key, - int shift, - void *ud) + TWidget * /*cv*/, + int vk_key, + int shift, + void *ud) { PYW_GIL_GET; py_simplecustview_t *_this = (py_simplecustview_t *)ud; @@ -183,7 +183,7 @@ class py_simplecustview_t if ( _this->widget != viewer ) return 0; place_t *place = va_arg(va, place_t *); - if ( place == NULL ) + if ( place == nullptr ) return 0; int *important_lines = va_arg(va, int *); return _this->on_hint(place, important_lines, hint) ? 1 : 0; @@ -196,7 +196,7 @@ class py_simplecustview_t break; } // fallthrough... - case ui_term: + case ui_database_closed: idapython_unhook_from_notification_point(HT_UI, s_ui_cb, _this); _this->on_close(); _this->init_vars(); @@ -209,16 +209,16 @@ class py_simplecustview_t //------------------------------------------------------------------------- static bool get_color(uint32 *out, ref_t obj) { - bool ok = PyLong_Check(obj.o); + bool ok = PyLong_Check(obj.o) != 0; if ( ok ) { *out = uint32(PyLong_AsUnsignedLong(obj.o)); } else { - ok = IDAPyInt_Check(obj.o) != 0; + ok = PyLong_Check(obj.o) != 0; if ( ok ) - *out = uint32(IDAPyInt_AsLong(obj.o)); + *out = uint32(PyLong_AsLong(obj.o)); } return ok; } @@ -229,9 +229,9 @@ class py_simplecustview_t { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( IDAPyStr_Check(py) ) + if ( PyUnicode_Check(py) ) { - IDAPyStr_AsUTF8(&sl.line, py); + PyUnicode_as_qstring(&sl.line, py); return true; } Py_ssize_t sz; @@ -239,10 +239,10 @@ class py_simplecustview_t return false; PyObject *py_val = PyTuple_GetItem(py, 0); - if ( !IDAPyStr_Check(py_val) ) + if ( !PyUnicode_Check(py_val) ) return false; - IDAPyStr_AsUTF8(&sl.line, py_val); + PyUnicode_as_qstring(&sl.line, py_val); uint32 col; if ( sz > 1 && get_color(&col, borref_t(PyTuple_GetItem(py, 1))) ) sl.color = color_t(col); @@ -259,7 +259,7 @@ class py_simplecustview_t PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CLICK, "i", shift)); PyW_ShowCbErr(S_ON_CLICK); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -269,7 +269,7 @@ class py_simplecustview_t PYW_GIL_CHECK_LOCKED_SCOPE(); newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_DBL_CLICK, "i", shift)); PyW_ShowCbErr(S_ON_DBL_CLICK); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result != nullptr && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -277,26 +277,26 @@ class py_simplecustview_t void on_curpos_changed() { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CURSOR_POS_CHANGED, NULL)); + newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CURSOR_POS_CHANGED, nullptr)); PyW_ShowCbErr(S_ON_CURSOR_POS_CHANGED); } //-------------------------------------------------------------------------- void on_close() { - if ( py_self != NULL ) + if ( py_self != nullptr ) { // Call the close method if it is there and the object is still bound if ( (features & HAVE_CLOSE) != 0 ) { PYW_GIL_CHECK_LOCKED_SCOPE(); - newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CLOSE, NULL)); + newref_t py_result(PyObject_CallMethod(py_self, (char *)S_ON_CLOSE, nullptr)); PyW_ShowCbErr(S_ON_CLOSE); } // Cleanup Py_DECREF(py_self); - py_self = NULL; + py_self = nullptr; } } @@ -313,7 +313,7 @@ class py_simplecustview_t shift)); PyW_ShowCbErr(S_ON_KEYDOWN); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -329,14 +329,14 @@ class py_simplecustview_t bvsz_t(ln))); PyW_ShowCbErr(S_ON_HINT); - bool ok = py_result != NULL + bool ok = py_result && PyTuple_Check(py_result.o) && PyTuple_Size(py_result.o) == 2; if ( ok ) { - if ( important_lines != NULL ) + if ( important_lines != nullptr ) *important_lines = PyInt_AsLong(PyTuple_GetItem(py_result.o, 0)); - IDAPyStr_AsUTF8(&hint, PyTuple_GetItem(py_result.o, 1)); + PyUnicode_as_qstring(&hint, PyTuple_GetItem(py_result.o, 1)); } return ok; } @@ -352,7 +352,7 @@ class py_simplecustview_t PY_BV_SZ, bvsz_t(menu_id))); PyW_ShowCbErr(S_ON_POPUP_MENU); - return py_result != NULL && PyObject_IsTrue(py_result.o); + return py_result && PyObject_IsTrue(py_result.o); } //-------------------------------------------------------------------------- @@ -365,7 +365,7 @@ class py_simplecustview_t public: py_simplecustview_t() { - py_this = py_self = py_last_link = NULL; + py_this = py_self = py_last_link = nullptr; init_vars(); } ~py_simplecustview_t() {} @@ -376,26 +376,26 @@ public: { data.clear(); features = 0; - widget = NULL; + widget = nullptr; } void close() { - if ( widget != NULL ) + if ( widget != nullptr ) close_widget(widget, WCLS_SAVE | WCLS_CLOSE_LATER); } bool set_range( - const place_t *minplace = NULL, - const place_t *maxplace = NULL) + const place_t *minplace = nullptr, + const place_t *maxplace = nullptr) { - if ( widget == NULL ) + if ( widget == nullptr ) return false; set_custom_viewer_range( widget, - minplace == NULL ? data.get_min() : minplace, - maxplace == NULL ? data.get_max() : maxplace); + minplace == nullptr ? data.get_min() : minplace, + maxplace == nullptr ? data.get_max() : maxplace); return true; } @@ -404,12 +404,12 @@ public: int *x = 0, int *y = 0) { - return widget == NULL ? NULL : get_custom_viewer_place(widget, mouse, x, y); + return widget == nullptr ? nullptr : get_custom_viewer_place(widget, mouse, x, y); } bool refresh() { - if ( widget == NULL ) + if ( widget == nullptr ) return false; refresh_custom_viewer(widget); @@ -420,14 +420,14 @@ public: { // query the cursor position int x, y; - if ( get_place(mouse, &x, &y) == NULL ) + if ( get_place(mouse, &x, &y) == nullptr ) return false; // query the line at the cursor qstring qline; get_current_line(&qline, mouse, true); const char *line = qline.begin(); - if ( line == NULL ) + if ( line == nullptr ) return false; if ( x >= (int)qstrlen(line) ) @@ -464,12 +464,12 @@ public: bool create(const char *_title, int _features) { // Already created? (in the instance) - if ( widget != NULL ) + if ( widget != nullptr ) return true; // Already created? (in IDA windows list) TWidget *found = find_widget(_title); - if ( found != NULL ) + if ( found != nullptr ) return false; title = _title; @@ -496,7 +496,7 @@ public: data.get_min(), data.get_max(), data.get_min(), - (const renderer_info_t *) NULL, + (const renderer_info_t *) nullptr, data.get_ud(), &handlers, this); @@ -558,7 +558,7 @@ public: int x, y; pl = get_place(mouse, &x, &y); PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( pl == NULL ) + if ( pl == nullptr ) Py_RETURN_NONE; return Py_BuildValue("(" PY_BV_SZ "ii)", bvsz_t(data.to_lineno(pl)), x, y); } @@ -568,7 +568,7 @@ public: { simpleline_t *r = data.get_line(nline); PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( r == NULL ) + if ( r == nullptr ) Py_RETURN_NONE; return Py_BuildValue("(sII)", r->line.c_str(), (unsigned int)r->color, (unsigned int)r->bgcolor); } @@ -596,7 +596,7 @@ public: bool init(PyObject *py_link, const char *title) { // Already created? - if ( widget != NULL ) + if ( widget != nullptr ) return true; // Probe callbacks @@ -628,15 +628,15 @@ public: Py_INCREF(py_self); // Return a reference to the C++ instance (only once) - if ( py_this == NULL ) - py_this = PyCapsule_New(this, VALID_CAPSULE_NAME, NULL); + if ( py_this == nullptr ) + py_this = PyCapsule_New(this, VALID_CAPSULE_NAME, nullptr); return true; } bool show() { - if ( widget == NULL && py_last_link != NULL ) + if ( widget == nullptr && py_last_link != nullptr ) { // Re-create the view (with same previous parameters) if ( !init(py_last_link, title.c_str()) ) @@ -644,7 +644,7 @@ public: } // Closed already? - if ( widget == NULL ) + if ( widget == nullptr ) return false; display_widget(widget, WOPN_DP_TAB|WOPN_RESTORE); @@ -653,20 +653,20 @@ public: bool get_selection(size_t *x1, size_t *y1, size_t *x2, size_t *y2) { - if ( widget == NULL ) + if ( widget == nullptr ) return false; twinpos_t p1, p2; if ( !::read_selection(widget, &p1, &p2) ) return false; - if ( y1 != NULL ) + if ( y1 != nullptr ) *y1 = data.to_lineno(p1.at); - if ( y2 != NULL ) + if ( y2 != nullptr ) *y2 = data.to_lineno(p2.at); - if ( x1 != NULL ) + if ( x1 != nullptr ) *x1 = size_t(p1.x); - if ( x2 != NULL ) + if ( x2 != nullptr ) *x2 = p2.x; return true; } @@ -687,7 +687,7 @@ public: PYW_GIL_CHECK_LOCKED_SCOPE(); return PyCapsule_IsValid(py_this, VALID_CAPSULE_NAME) ? (py_simplecustview_t *) PyCapsule_GetPointer(py_this, VALID_CAPSULE_NAME) - : NULL; + : nullptr; } PyObject *get_pythis() @@ -708,6 +708,8 @@ public: PyObject *pyscv_init(PyObject *py_link, const char *title) { PYW_GIL_CHECK_LOCKED_SCOPE(); + if ( py_link == nullptr ) + Py_RETURN_NONE; py_simplecustview_t *_this = new py_simplecustview_t(); bool ok = _this->init(py_link, title); if ( !ok ) @@ -723,7 +725,7 @@ PyObject *pyscv_init(PyObject *py_link, const char *title) bool pyscv_refresh(PyObject *py_this) { DECL_THIS; - return _this != NULL && _this->refresh(); + return _this != nullptr && _this->refresh(); } //-------------------------------------------------------------------------- @@ -731,52 +733,52 @@ PyObject *pyscv_get_current_line(PyObject *py_this, bool mouse, bool notags) { DECL_THIS; PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( _this == NULL ) + if ( _this == nullptr ) Py_RETURN_NONE; qstring line; _this->get_current_line(&line, mouse, notags); if ( line.empty() ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8AndSize(line.c_str(), line.length()); + return PyUnicode_FromStringAndSize(line.c_str(), line.length()); } //-------------------------------------------------------------------------- bool pyscv_is_focused(PyObject *py_this) { DECL_THIS; - return _this != NULL && _this->is_focused(); + return _this != nullptr && _this->is_focused(); } size_t pyscv_count(PyObject *py_this) { DECL_THIS; - return _this == NULL ? 0 : _this->count(); + return _this == nullptr ? 0 : _this->count(); } bool pyscv_show(PyObject *py_this) { DECL_THIS; - return _this != NULL && _this->show(); + return _this != nullptr && _this->show(); } void pyscv_close(PyObject *py_this) { DECL_THIS; - if ( _this != NULL ) + if ( _this != nullptr ) _this->close(); } bool pyscv_jumpto(PyObject *py_this, size_t ln, int x, int y) { DECL_THIS; - return _this != NULL && _this->jumpto(ln, x, y); + return _this != nullptr && _this->jumpto(ln, x, y); } // Returns the line tuple PyObject *pyscv_get_line(PyObject *py_this, size_t nline) { DECL_THIS; - if ( _this == NULL ) + if ( _this == nullptr ) { PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -789,7 +791,7 @@ PyObject *pyscv_get_line(PyObject *py_this, size_t nline) PyObject *pyscv_get_pos(PyObject *py_this, bool mouse) { DECL_THIS; - if ( _this == NULL ) + if ( _this == nullptr ) { PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -801,7 +803,7 @@ PyObject *pyscv_get_pos(PyObject *py_this, bool mouse) PyObject *pyscv_clear_lines(PyObject *py_this) { DECL_THIS; - if ( _this != NULL ) + if ( _this != nullptr ) _this->clear(); PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -812,35 +814,35 @@ PyObject *pyscv_clear_lines(PyObject *py_this) bool pyscv_add_line(PyObject *py_this, PyObject *py_sl) { DECL_THIS; - return _this != NULL && _this->add_line(py_sl); + return _this != nullptr && _this->add_line(py_sl); } //-------------------------------------------------------------------------- bool pyscv_insert_line(PyObject *py_this, size_t nline, PyObject *py_sl) { DECL_THIS; - return _this != NULL && _this->insert_line(nline, py_sl); + return _this != nullptr && _this->insert_line(nline, py_sl); } //-------------------------------------------------------------------------- bool pyscv_patch_line(PyObject *py_this, size_t nline, size_t offs, int value) { DECL_THIS; - return _this != NULL && _this->patch_line(nline, offs, value); + return _this != nullptr && _this->patch_line(nline, offs, value); } //-------------------------------------------------------------------------- bool pyscv_del_line(PyObject *py_this, size_t nline) { DECL_THIS; - return _this != NULL && _this->del_line(nline); + return _this != nullptr && _this->del_line(nline); } //-------------------------------------------------------------------------- PyObject *pyscv_get_selection(PyObject *py_this) { DECL_THIS; - if ( _this == NULL ) + if ( _this == nullptr ) { PYW_GIL_CHECK_LOCKED_SCOPE(); Py_RETURN_NONE; @@ -853,11 +855,11 @@ PyObject *pyscv_get_current_word(PyObject *py_this, bool mouse) { DECL_THIS; PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( _this != NULL ) + if ( _this != nullptr ) { qstring word; if ( _this->get_current_word(mouse, word) ) - return IDAPyStr_FromUTF8(word.c_str()); + return PyUnicode_FromString(word.c_str()); } Py_RETURN_NONE; } @@ -867,14 +869,14 @@ PyObject *pyscv_get_current_word(PyObject *py_this, bool mouse) bool pyscv_edit_line(PyObject *py_this, size_t nline, PyObject *py_sl) { DECL_THIS; - return _this != NULL && _this->edit_line(nline, py_sl); + return _this != nullptr && _this->edit_line(nline, py_sl); } //------------------------------------------------------------------------- TWidget *pyscv_get_widget(PyObject *py_this) { DECL_THIS; - return _this == NULL ? NULL : _this->get_widget(); + return _this == nullptr ? nullptr : _this->get_widget(); } diff --git a/pywraps/py_kernwin_idaview.hpp b/pywraps/py_kernwin_idaview.hpp index 95ca880..4421fab 100644 --- a/pywraps/py_kernwin_idaview.hpp +++ b/pywraps/py_kernwin_idaview.hpp @@ -17,7 +17,7 @@ bool py_idaview_t::Bind(PyObject *self) { // Already a py_idaview_t associated to this object? py_idaview_t *_this = (py_idaview_t *) view_extract_this(self); - if ( _this != NULL ) + if ( _this != nullptr ) return false; qstring title; @@ -26,16 +26,16 @@ bool py_idaview_t::Bind(PyObject *self) // Get the IDAView associated to this TWidget TWidget *widget = find_widget(title.c_str()); - if ( widget == NULL ) + if ( widget == nullptr ) return false; // Get unique py_idaview_t associated to that TWidget py_idaview_t *py_view; - if ( !pycim_lookup_info.find_by_view((py_customidamemo_t**) &py_view, widget) ) + if ( !get_plugin_instance()->pycim_lookup_info.find_by_view((py_customidamemo_t**) &py_view, widget) ) { py_view = new py_idaview_t(); - lookup_entry_t &e = pycim_lookup_info.new_entry(py_view); - pycim_lookup_info.commit(e, widget); + lookup_entry_t &e = get_plugin_instance()->pycim_lookup_info.new_entry(py_view); + get_plugin_instance()->pycim_lookup_info.commit(e, widget); } // Finally, bind: @@ -55,7 +55,7 @@ bool py_idaview_t::Bind(PyObject *self) bool py_idaview_t::Unbind(PyObject *self) { py_idaview_t *_this = (py_idaview_t *) view_extract_this(self); - if ( _this == NULL ) + if ( _this == nullptr ) return false; _this->unbind(true); return true; diff --git a/pywraps/py_kernwin_plgform.hpp b/pywraps/py_kernwin_plgform.hpp index decaf0e..4889c99 100644 --- a/pywraps/py_kernwin_plgform.hpp +++ b/pywraps/py_kernwin_plgform.hpp @@ -24,7 +24,7 @@ class plgform_t PyObject_CallMethod( _this->py_obj.o, (char *)S_ON_CLOSE, "O", - PyCapsule_New(widget, VALID_CAPSULE_NAME, NULL))); + PyCapsule_New(widget, VALID_CAPSULE_NAME, nullptr))); PyW_ShowCbErr(S_ON_CLOSE); } _this->unhook(); @@ -36,7 +36,7 @@ class plgform_t void unhook() { idapython_unhook_from_notification_point(HT_UI, s_callback, this); - widget = NULL; + widget = nullptr; // Call DECREF at last, since it may trigger __del__ PYW_GIL_CHECK_LOCKED_SCOPE(); @@ -44,18 +44,18 @@ class plgform_t } public: - plgform_t() : widget(NULL) {} + plgform_t() : widget(nullptr) {} bool show( - PyObject *obj, - const char *caption, - int options) + PyObject *obj, + const char *caption, + int options) { const bool create_only = options == -1; // Already displayed? TWidget *f = find_widget(caption); - if ( f != NULL ) + if ( f != nullptr ) { // Our form? if ( f == widget ) @@ -71,12 +71,12 @@ public: // Create a form widget = create_empty_widget(caption); - if ( widget == NULL ) + if ( widget == nullptr ) return false; if ( !idapython_hook_to_notification_point(HT_UI, s_callback, this, /*is_hooks_base=*/ false) ) { - widget = NULL; + widget = nullptr; return false; } @@ -92,7 +92,7 @@ public: PyObject_CallMethod( py_obj.o, (char *)S_ON_CREATE, "O", - PyCapsule_New(widget, VALID_CAPSULE_NAME, NULL))); + PyCapsule_New(widget, VALID_CAPSULE_NAME, nullptr))); PyW_ShowCbErr(S_ON_CREATE); if ( !create_only ) @@ -102,7 +102,7 @@ public: void close(int options = 0) { - if ( widget != NULL ) + if ( widget != nullptr ) close_widget(widget, options); } @@ -140,7 +140,7 @@ static bool plgform_show( int options = WOPN_DP_TAB|WOPN_RESTORE) { DECL_PLGFORM; - return plgform != NULL && plgform->show(py_obj, caption, options); + return plgform != nullptr && plgform->show(py_obj, caption, options); } static void plgform_close( @@ -148,7 +148,7 @@ static void plgform_close( int options) { DECL_PLGFORM; - if ( plgform != NULL ) + if ( plgform != nullptr ) plgform->close(options); } @@ -156,7 +156,7 @@ static TWidget *plgform_get_widget( PyObject *py_link) { DECL_PLGFORM; - return plgform != NULL ? plgform->get_widget() : NULL; + return plgform != nullptr ? plgform->get_widget() : nullptr; } #undef DECL_PLGFORM diff --git a/pywraps/py_kernwin_plgform.py b/pywraps/py_kernwin_plgform.py index 23f8c58..5bc1f14 100644 --- a/pywraps/py_kernwin_plgform.py +++ b/pywraps/py_kernwin_plgform.py @@ -13,44 +13,49 @@ class PluginForm(object): WOPN_MDI = 0x01 # no-op WOPN_TAB = 0x02 # no-op - WOPN_RESTORE = 0x04 + WOPN_RESTORE = _ida_kernwin.WOPN_RESTORE """ if the widget is the only widget in a floating area when it is closed, remember that area's geometry. The next time that widget is created as floating (i.e., WOPN_DP_FLOATING) its geometry will be restored (e.g., "Execute script" """ - WOPN_ONTOP = 0x08 # no-op - WOPN_MENU = 0x10 # no-op - WOPN_CENTERED = 0x20 # no-op - WOPN_PERSIST = 0x40 + WOPN_ONTOP = 0x08 # no-op + WOPN_MENU = 0x10 # no-op + WOPN_CENTERED = 0x20 # no-op + WOPN_PERSIST = _ida_kernwin.WOPN_PERSIST """form will persist until explicitly closed with Close()""" - WOPN_DP_LEFT = 0x00010000 + WOPN_DP_LEFT = _ida_kernwin.WOPN_DP_LEFT """ Dock widget to the left of dest_ctrl""" - WOPN_DP_TOP = 0x00020000 + WOPN_DP_TOP = _ida_kernwin.WOPN_DP_TOP """ Dock widget above dest_ctrl""" - WOPN_DP_RIGHT = 0x00040000 + WOPN_DP_RIGHT = _ida_kernwin.WOPN_DP_RIGHT """ Dock widget to the right of dest_ctrl""" - WOPN_DP_BOTTOM = 0x00080000 + WOPN_DP_BOTTOM = _ida_kernwin.WOPN_DP_BOTTOM """ Dock widget below dest_ctrl""" - WOPN_DP_INSIDE = 0x00100000 + WOPN_DP_INSIDE = _ida_kernwin.WOPN_DP_INSIDE """ Create a new tab bar with both widget and dest_ctrl""" - WOPN_DP_TAB = 0x00400000 + WOPN_DP_TAB = _ida_kernwin.WOPN_DP_TAB """ Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar (otherwise the same as #WOPN_DP_INSIDE) """ - WOPN_DP_BEFORE = 0x00200000 + WOPN_DP_BEFORE = _ida_kernwin.WOPN_DP_BEFORE """ place widget before dst_form in the tab bar instead of after used with #WOPN_DP_INSIDE and #WOPN_DP_TAB """ - WOPN_DP_FLOATING=0x00800000 + WOPN_DP_FLOATING = _ida_kernwin.WOPN_DP_FLOATING + """ + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + """ + WOPN_DP_SZHINT = _ida_kernwin.WOPN_DP_SZHINT """ Make widget floating""" - WOPN_DP_INSIDE_BEFORE = WOPN_DP_INSIDE | WOPN_DP_BEFORE - WOPN_DP_TAB_BEFORE = WOPN_DP_TAB | WOPN_DP_BEFORE - + WOPN_DP_INSIDE_BEFORE = _ida_kernwin.WOPN_DP_INSIDE_BEFORE + WOPN_DP_TAB_BEFORE = _ida_kernwin.WOPN_DP_TAB_BEFORE WOPN_CREATE_ONLY = {} @@ -180,32 +185,18 @@ class PluginForm(object): return _ida_kernwin.plgform_get_widget(self.__clink__) - WCLS_SAVE = 0x1 + WCLS_SAVE = _ida_kernwin.WCLS_SAVE """Save state in desktop config""" - WCLS_NO_CONTEXT = 0x2 + WCLS_NO_CONTEXT = _ida_kernwin.WCLS_NO_CONTEXT """Don't change the current context (useful for toolbars)""" - WCLS_DONT_SAVE_SIZE = 0x4 + WCLS_DONT_SAVE_SIZE = _ida_kernwin.WCLS_DONT_SAVE_SIZE """Don't save size of the window""" - WCLS_CLOSE_LATER = 0x8 + WCLS_DELETE_LATER = _ida_kernwin.WCLS_DELETE_LATER """This flag should be used when Close() is called from an event handler""" + + WCLS_CLOSE_LATER = WCLS_DELETE_LATER + #</pycode(py_kernwin_plgform)> - -plg = PluginForm() -plg.Show("This is it") - -#<pycode_BC695(py_kernwin_plgform)> -PluginForm.FORM_MDI = PluginForm.WOPN_MDI -PluginForm.FORM_TAB = PluginForm.WOPN_TAB -PluginForm.FORM_RESTORE = PluginForm.WOPN_RESTORE -PluginForm.FORM_ONTOP = PluginForm.WOPN_ONTOP -PluginForm.FORM_MENU = PluginForm.WOPN_MENU -PluginForm.FORM_CENTERED = PluginForm.WOPN_CENTERED -PluginForm.FORM_PERSIST = PluginForm.WOPN_PERSIST -PluginForm.FORM_SAVE = PluginForm.WCLS_SAVE -PluginForm.FORM_NO_CONTEXT = PluginForm.WCLS_NO_CONTEXT -PluginForm.FORM_DONT_SAVE_SIZE = PluginForm.WCLS_DONT_SAVE_SIZE -PluginForm.FORM_CLOSE_LATER = PluginForm.WCLS_CLOSE_LATER -#</pycode_BC695(py_kernwin_plgform)> diff --git a/pywraps/py_kernwin_viewhooks.hpp b/pywraps/py_kernwin_viewhooks.hpp index 6337eb4..b46e283 100644 --- a/pywraps/py_kernwin_viewhooks.hpp +++ b/pywraps/py_kernwin_viewhooks.hpp @@ -9,13 +9,13 @@ struct View_Hooks : public hooks_base_t { // hookgenVIEW:methodsinfo_decl - View_Hooks(uint32 _flags=0) - : hooks_base_t("ida_kernwin.View_Hooks", View_Callback, HT_VIEW, _flags) {} + View_Hooks(uint32 _flags=0, uint32 _hkcb_flags=HKCB_GLOBAL) + : hooks_base_t("ida_kernwin.View_Hooks", View_Callback, HT_VIEW, _flags, _hkcb_flags) {} bool hook() { return hooks_base_t::hook(); } bool unhook() { return hooks_base_t::unhook(); } #ifdef TESTABLE_BUILD - qstring dump_state() { return hooks_base_t::dump_state(mappings, mappings_size); } + PyObject *dump_state(bool assert_all_reimplemented=false) { return hooks_base_t::dump_state(mappings, mappings_size, assert_all_reimplemented); } #endif // hookgenVIEW:methods diff --git a/pywraps/py_lines.hpp b/pywraps/py_lines.hpp index 1f0640e..6c034a5 100644 --- a/pywraps/py_lines.hpp +++ b/pywraps/py_lines.hpp @@ -3,7 +3,7 @@ //<code(py_lines)> //------------------------------------------------------------------------ -static PyObject *py_get_user_defined_prefix = NULL; +static PyObject *py_get_user_defined_prefix = nullptr; static void idaapi s_py_get_user_defined_prefix( qstring *buf, ea_t ea, @@ -16,12 +16,12 @@ static void idaapi s_py_get_user_defined_prefix( PyObject_CallFunction( py_get_user_defined_prefix, PY_BV_EA "iis" PY_BV_SZ, - bvea_t(ea), lnnum, indent, line)); + bvea_t(ea), lnnum, indent, line, 0)); // Error? Display it // No error? Copy the buffer if ( !PyW_ShowCbErr("py_get_user_defined_prefix") ) - IDAPyStr_AsUTF8(buf, py_ret.o); + PyUnicode_as_qstring(buf, py_ret.o); } //</code(py_lines)> @@ -34,21 +34,7 @@ static void idaapi s_py_get_user_defined_prefix( #<pydoc> def set_user_defined_prefix(width, callback): """ - User-defined line-prefixes are displayed just after the autogenerated - line prefixes. In order to use them, the plugin should call the - following function to specify its width and contents. - @param width: the width of the user-defined prefix - @param callback: a get_user_defined_prefix callback to get the contents of the prefix. - Its arguments: - ea - linear address - lnnum - line number - indent - indent of the line contents (-1 means the default instruction) - indent and is used for instruction itself. see explanations for printf_line() - line - the line to be generated. the line usually contains color tags this argument - can be examined to decide whether to generated the prefix - It returns a buffer of size < bufsize - - In order to remove the callback before unloading the plugin, specify the width = 0 or the callback = None + Deprecated. Please use install_user_defined_prefix() instead """ pass #</pydoc> @@ -62,10 +48,10 @@ static PyObject *py_set_user_defined_prefix(size_t width, PyObject *pycb) Py_XDECREF(py_get_user_defined_prefix); // ...and clear it - py_get_user_defined_prefix = NULL; + py_get_user_defined_prefix = nullptr; // Uninstall user defind prefix - set_user_defined_prefix(0, NULL); + set_user_defined_prefix(0, nullptr); } else if ( PyCallable_Check(pycb) ) { @@ -86,23 +72,12 @@ static PyObject *py_set_user_defined_prefix(size_t width, PyObject *pycb) } //------------------------------------------------------------------------- -/* -#<pydoc> -def tag_remove(colstr): - """ - Remove color escape sequences from a string - @param colstr: the colored string with embedded tags - @return: a new string w/o the tags - """ - pass -#</pydoc> -*/ -PyObject *py_tag_remove(const char *instr) +PyObject *py_tag_remove(const char *str) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstring qbuf; - tag_remove(&qbuf, instr); - return IDAPyStr_FromUTF8(qbuf.c_str()); + tag_remove(&qbuf, str); + return PyUnicode_FromString(qbuf.c_str()); } //------------------------------------------------------------------------- @@ -111,7 +86,7 @@ PyObject *py_tag_addr(ea_t ea) qstring tag; tag_addr(&tag, ea); PYW_GIL_CHECK_LOCKED_SCOPE(); - return IDAPyStr_FromUTF8(tag.begin()); + return PyUnicode_FromString(tag.begin()); } //------------------------------------------------------------------------- @@ -144,8 +119,8 @@ def generate_disassembly(ea, max_lines, as_stack, notags): @param as_stack: Display undefined items as 2/4/8 bytes @return: - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines """ pass #</pydoc> @@ -165,7 +140,7 @@ PyObject *py_generate_disassembly( int lnnum; int nlines = generate_disassembly(&lines, &lnnum, ea, max_lines, as_stack); - newref_t py_tuple(PyTuple_New(nlines)); + newref_t py_list(PyList_New(nlines)); for ( int i=0; i < nlines; i++ ) { const qstring &l = lines[i]; @@ -175,9 +150,9 @@ PyObject *py_generate_disassembly( tag_remove(&qbuf, l); s = qbuf.c_str(); } - PyTuple_SetItem(py_tuple.o, i, IDAPyStr_FromUTF8(s)); + PyList_SetItem(py_list.o, i, PyUnicode_FromString(s)); } - return Py_BuildValue("(iO)", lnnum, py_tuple.o); + return Py_BuildValue("(iO)", lnnum, py_list.o); } //</inline(py_lines)> #endif diff --git a/pywraps/py_lines.py b/pywraps/py_lines.py index 6d88ab2..ba0bf7f 100644 --- a/pywraps/py_lines.py +++ b/pywraps/py_lines.py @@ -5,6 +5,7 @@ import _ida_lines # ---------------- Color escape sequence defitions ------------------------- COLOR_ADDR_SIZE = 16 if _ida_idaapi.BADADDR == 0xFFFFFFFFFFFFFFFF else 8 SCOLOR_FG_MAX = '\x28' # Max color number +cvar = _ida_lines.cvar SCOLOR_OPND1 = chr(cvar.COLOR_ADDR+1) # Instruction operand 1 SCOLOR_OPND2 = chr(cvar.COLOR_ADDR+2) # Instruction operand 2 SCOLOR_OPND3 = chr(cvar.COLOR_ADDR+3) # Instruction operand 3 @@ -34,9 +35,3 @@ def COLSTR(str, tag): return SCOLOR_ON + tag + str + SCOLOR_OFF + tag #</pycode(py_lines)> - -#<pycode_BC695(py_lines)> -COLOR_UTF8=COLOR_ADDR+10 # old value of COLOR_UTF8; shouldn't trigger anything -add_long_cmt=add_extra_cmt -describe=add_extra_line -#</pycode_BC695(py_lines)> diff --git a/pywraps/py_loader.hpp b/pywraps/py_loader.hpp index 65d3d7b..18dfea5 100644 --- a/pywraps/py_loader.hpp +++ b/pywraps/py_loader.hpp @@ -27,7 +27,7 @@ static int py_mem2base(PyObject *py_mem, ea_t ea, qoff64_t fpos = -1) char *buf; { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( IDAPyBytes_AsMemAndSize(py_mem, &buf, &len) == -1 ) + if ( PyBytes_AsStringAndSize(py_mem, &buf, &len) == -1 ) return 0; } @@ -53,11 +53,11 @@ static PyObject *py_load_plugin(const char *name) prepare_programmatic_plugin_load(name); plugin_t *r = load_plugin(name); PYW_GIL_CHECK_LOCKED_SCOPE(); - prepare_programmatic_plugin_load(NULL); - if ( r == NULL ) + prepare_programmatic_plugin_load(nullptr); + if ( r == nullptr ) Py_RETURN_NONE; else - return PyCapsule_New(r, VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(r, VALID_CAPSULE_NAME, nullptr); } //------------------------------------------------------------------------ @@ -72,7 +72,7 @@ def run_plugin(plg): pass #</pydoc> */ -static bool py_run_plugin(PyObject *plg, int arg) +static bool py_run_plugin(PyObject *plg, size_t arg) { PYW_GIL_CHECK_LOCKED_SCOPE(); if ( !PyCapsule_IsValid(plg, VALID_CAPSULE_NAME) ) @@ -83,9 +83,9 @@ static bool py_run_plugin(PyObject *plg, int arg) { plugin_t *p = (plugin_t *) PyCapsule_GetPointer(plg, VALID_CAPSULE_NAME); bool rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; rc = run_plugin(p, arg); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } } @@ -96,22 +96,26 @@ static bool py_load_and_run_plugin(const char *name, size_t arg) if ( qfileexist(name) ) prepare_programmatic_plugin_load(name); bool rc = load_and_run_plugin(name, arg); - prepare_programmatic_plugin_load(NULL); + prepare_programmatic_plugin_load(nullptr); return rc; } //------------------------------------------------------------------------- static PyObject *py_extract_module_from_archive(const char *fname, bool is_remote=false) { - char *temp_file_ptr = NULL; + bool ok = fname != nullptr; + char *temp_file_ptr = nullptr; char fname_buf[QMAXPATH]; - qstrncpy(fname_buf, fname, sizeof(fname_buf)); - bool ok = extract_module_from_archive( - fname_buf, - sizeof(fname_buf), - &temp_file_ptr, - is_remote); - return Py_BuildValue("(ss)", ok ? fname_buf : NULL, ok ? temp_file_ptr : NULL); + if ( ok ) + { + qstrncpy(fname_buf, fname, sizeof(fname_buf)); + ok = extract_module_from_archive( + fname_buf, + sizeof(fname_buf), + &temp_file_ptr, + is_remote); + } + return Py_BuildValue("(ss)", ok ? fname_buf : nullptr, ok ? temp_file_ptr : nullptr); } //</inline(py_loader)> diff --git a/pywraps/py_loader.py b/pywraps/py_loader.py deleted file mode 100644 index fa09b55..0000000 --- a/pywraps/py_loader.py +++ /dev/null @@ -1,11 +0,0 @@ - -#<pycode_BC695(py_loader)> -NEF_TIGHT=0 -@bc695redef -def save_database(outfile, flags=0): - if isinstance(flags, bool): - flags = DBFL_KILL if flags else 0 - return _ida_loader.save_database(outfile, flags) -save_database_ex=save_database -MAX_FILE_FORMAT_NAME=64 -#</pycode_BC695(py_loader)> diff --git a/pywraps/py_lumina.hpp b/pywraps/py_lumina.hpp index 7efcc7b..3a33f54 100644 --- a/pywraps/py_lumina.hpp +++ b/pywraps/py_lumina.hpp @@ -2,15 +2,15 @@ //<inline(py_lumina)> //------------------------------------------------------------------------- -bool py_extract_type_from_metadata(tinfo_t *out, const qstring &in) +bool py_extract_type_from_metadata(tinfo_t *out, const bytevec_t &in) { md_type_parts_t tp; if ( !in.empty() ) { - const uchar *ptr = (uchar *) in.begin(); - const uchar *end = ptr + in.length(); + const uchar *ptr = in.begin(); + const uchar *end = in.end(); extract_type_from_metadata(&tp, ptr, end); - out->deserialize(NULL, &tp.type, &tp.fields); + out->deserialize(nullptr, &tp.type, &tp.fields); } return tp.userti; } @@ -24,7 +24,7 @@ PyObject *py_split_metadata(const metadata_t &md) while ( p.next() ) { newref_t py_key(PyInt_FromLong(p.key)); - newref_t py_value(IDAPyBytes_FromMemAndSize((const char *) p.data, p.size)); + newref_t py_value(PyBytes_FromStringAndSize((const char *) p.data, p.size)); // PyDict_SetItem doesn't "steal" references; hence the 'newref_t's above. PyDict_SetItem(py_dict, py_key.o, py_value.o); } diff --git a/pywraps/py_nalt.hpp b/pywraps/py_nalt.hpp index 2a3a5e9..81dbf46 100644 --- a/pywraps/py_nalt.hpp +++ b/pywraps/py_nalt.hpp @@ -6,7 +6,7 @@ //------------------------------------------------------------------------- // callback for enumerating imports // ea: import address -// name: import name (NULL if imported by ordinal) +// name: import name (nullptr if imported by ordinal) // ord: import ordinal (0 for imports by name) // param: user parameter passed to enum_import_names() // return: 1-ok, 0-stop enumeration @@ -18,15 +18,15 @@ static int idaapi py_import_enum_cb( { // If no name, try to get the name associated with the 'ea'. It may be coming from IDS qstring name_buf; - if ( name == NULL && get_name(&name_buf, ea) > 0 ) + if ( name == nullptr && get_name(&name_buf, ea) > 0 ) name = name_buf.begin(); PYW_GIL_CHECK_LOCKED_SCOPE(); ref_t py_name; - if ( name == NULL ) + if ( name == nullptr ) py_name = borref_t(Py_None); else - py_name = newref_t(IDAPyStr_FromUTF8(name)); + py_name = newref_t(PyUnicode_FromString(name)); newref_t py_ord(Py_BuildValue(PY_BV_UVAL, bvuval_t(ord))); newref_t py_ea(Py_BuildValue(PY_BV_EA, bvea_t(ea))); @@ -36,8 +36,8 @@ static int idaapi py_import_enum_cb( py_ea.o, py_name.o, py_ord.o, - NULL)); - return py_result != NULL && PyObject_IsTrue(py_result.o) ? 1 : 0; + nullptr)); + return py_result && PyObject_IsTrue(py_result.o) ? 1 : 0; } //</code(py_nalt)> @@ -61,7 +61,7 @@ static PyObject *py_get_import_module_name(int mod_index) if ( !get_import_module_name(&qbuf, mod_index) ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8AndSize(qbuf.begin(), qbuf.length()); + return PyUnicode_FromStringAndSize(qbuf.begin(), qbuf.length()); } //------------------------------------------------------------------------- diff --git a/pywraps/py_nalt.py b/pywraps/py_nalt.py index f81e18d..72d018d 100644 --- a/pywraps/py_nalt.py +++ b/pywraps/py_nalt.py @@ -6,116 +6,9 @@ def get_switch_info(*args): else: si, ea = args return None if _real_get_switch_info(si, ea) <= 0 else si -def get_abi_name(*args): +def get_abi_name(): import ida_typeinf - return ida_typeinf.get_abi_name(args) + return ida_typeinf.get_abi_name() +# for backward compatibility +get_initial_version = get_initial_idb_version #</pycode(py_nalt)> - -#<pycode_BC695(py_nalt)> -ASCSTR_LAST=7 -ASCSTR_LEN2=STRTYPE_LEN2 -ASCSTR_LEN4=STRTYPE_LEN4 -ASCSTR_PASCAL=STRTYPE_PASCAL -ASCSTR_TERMCHR=STRTYPE_TERMCHR -ASCSTR_ULEN2=STRTYPE_LEN2_16 -ASCSTR_ULEN4=STRTYPE_LEN4_16 -ASCSTR_UNICODE=STRTYPE_C_16 -ASCSTR_UTF16=STRTYPE_C_16 -ASCSTR_UTF32=STRTYPE_C_32 -REF_VHIGH=V695_REF_VHIGH -REF_VLOW=V695_REF_VLOW -SWI_END_IN_TBL=SWI_DEF_IN_TBL -SWI_BC695_EXTENDED=0x8000 -SWI2_INDIRECT=SWI_INDIRECT >> 16 -SWI2_SUBTRACT=SWI_SUBTRACT >> 16 -import ida_netnode -RIDX_AUTO_PLUGINS=ida_netnode.BADNODE -change_encoding_name=rename_encoding -def del_tinfo2(ea, n=None): - if n is not None: - return del_op_tinfo(ea, n) - else: - return del_tinfo(ea) -get_encodings_count=get_encoding_qty -def get_op_tinfo(*args): - import ida_typeinf - if isinstance(args[2], ida_typeinf.tinfo_t): # 6.95: ea, n, tinfo_t - ea, n, tif = args - else: # 7.00: tinfo_t, ea, n - tif, ea, n = args - return _ida_nalt.get_op_tinfo(tif, ea, n) -get_op_tinfo2=get_op_tinfo -def is_unicode(strtype): - return (strtype & STRWIDTH_MASK) > 0 -set_op_tinfo2=set_op_tinfo -set_tinfo2=set_tinfo -def make_switch_info_t__init__(real_init): - def wrapper(self): - real_init(self) - self.bc695_api = False - return wrapper -switch_info_t.__init__ = make_switch_info_t__init__(switch_info_t.__init__) -switch_info_t.regdtyp = switch_info_t.regdtype -def get_tinfo(*args): - import ida_typeinf - if isinstance(args[1], ida_typeinf.tinfo_t): # 6.95: ea, tinfo_t - ea, tif = args - else: # 7.00: tinfo_t, ea - tif, ea = args - return _ida_nalt.get_tinfo(tif, ea) -get_tinfo2=get_tinfo -def get_refinfo(*args): - if isinstance(args[2], refinfo_t): # 6.95: ea, n, refinfo_t - ea, n, ri = args - else: # 7.00: refinfo_t, ea, n - ri, ea, n = args - return _ida_nalt.get_refinfo(ri, ea, n) - -get_switch_info_ex=get_switch_info -set_switch_info_ex=set_switch_info -del_switch_info_ex=del_switch_info -switch_info_ex_t_assign=_ida_nalt.switch_info_t_assign -switch_info_ex_t_get_custom=_ida_nalt.switch_info_t_custom_get -switch_info_ex_t_get_defjump=_ida_nalt.switch_info_t_defjump_get -switch_info_ex_t_get_elbase=_ida_nalt.switch_info_t_elbase_get -switch_info_ex_t_get_flags=_ida_nalt.switch_info_t_flags_get -switch_info_ex_t_get_ind_lowcase=_ida_nalt.switch_info_t_ind_lowcase_get -switch_info_ex_t_get_jcases=_ida_nalt.switch_info_t_jcases_get -switch_info_ex_t_get_jumps=_ida_nalt.switch_info_t_jumps_get -switch_info_ex_t_get_ncases=_ida_nalt.switch_info_t_ncases_get -switch_info_ex_t_get_regdtyp=_ida_nalt.switch_info_t_regdtype_get -switch_info_ex_t_get_regnum=_ida_nalt.switch_info_t_regnum_get -switch_info_ex_t_get_startea=_ida_nalt.switch_info_t_startea_get -switch_info_ex_t_get_values_lowcase=_ida_nalt.switch_info_t__get_values_lowcase -switch_info_ex_t_set_custom=_ida_nalt.switch_info_t_custom_set -switch_info_ex_t_set_defjump=_ida_nalt.switch_info_t_defjump_set -switch_info_ex_t_set_elbase=_ida_nalt.switch_info_t_elbase_set -switch_info_ex_t_set_flags=_ida_nalt.switch_info_t_flags_set -switch_info_ex_t_set_ind_lowcase=_ida_nalt.switch_info_t_ind_lowcase_set -switch_info_ex_t_set_jcases=_ida_nalt.switch_info_t_jcases_set -switch_info_ex_t_set_jumps=_ida_nalt.switch_info_t_jumps_set -switch_info_ex_t_set_ncases=_ida_nalt.switch_info_t_ncases_set -switch_info_ex_t_set_regdtyp=_ida_nalt.switch_info_t_regdtype_set -switch_info_ex_t_set_regnum=_ida_nalt.switch_info_t_regnum_set -switch_info_ex_t_set_startea=_ida_nalt.switch_info_t_startea_set -switch_info_ex_t_set_values_lowcase=_ida_nalt.switch_info_t__set_values_lowcase - -def __switch_info_t_get_flags__(instance): - return _ida_nalt.switch_info_t_flags_get(instance) | SWI_BC695_EXTENDED -def __switch_info_t_set_flags__(instance, v): - if instance.bc695_api: - v |= (_ida_nalt.switch_info_t_flags_get(instance) & 0xFFFF0000) - _ida_nalt.switch_info_t_flags_set(instance, v) -switch_info_t.flags = property(__switch_info_t_get_flags__, __switch_info_t_set_flags__) - -def __switch_info_t_get_flags2__(instance): - instance.bc695_api = True - return _ida_nalt.switch_info_t_flags_get(instance) >> 16 -def __switch_info_t_set_flags2__(instance, v): - instance.bc695_api = True - flags = _ida_nalt.switch_info_t_flags_get(instance) - instance.flags = (flags & 0xFFFF) | (v << 16) -switch_info_t.flags2 = property(__switch_info_t_get_flags2__, __switch_info_t_set_flags2__) - -switch_info_ex_t=switch_info_t -#</pycode_BC695(py_nalt)> diff --git a/pywraps/py_name.hpp b/pywraps/py_name.hpp index 076e9c2..5fcfffe 100644 --- a/pywraps/py_name.hpp +++ b/pywraps/py_name.hpp @@ -10,17 +10,17 @@ PyObject *get_debug_names(ea_t ea1, ea_t ea2, bool return_list=false) // Get debug names ea_name_vec_t names; PYW_GIL_CHECK_LOCKED_SCOPE(); - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; get_debug_names(&names, ea1, ea2); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; PyObject *dict = Py_BuildValue("{}"); - if ( dict != NULL ) + if ( dict != nullptr ) { ea_t last_ea = BADADDR; - PyObject *list = NULL; + PyObject *list = nullptr; for ( ea_name_vec_t::iterator it = names.begin(); it != names.end(); ++it ) { - PyObject *name_obj = IDAPyStr_FromUTF8(it->name.c_str()); + PyObject *name_obj = PyUnicode_FromString(it->name.c_str()); if ( it->ea != last_ea ) { if ( return_list ) @@ -49,7 +49,7 @@ PyObject *py_validate_name(const char *name, nametype_t type, int flags=0) { qstring qname(name); if ( validate_name(&qname, type, flags) ) - return IDAPyStr_FromUTF8AndSize(qname.c_str(), qname.length()); + return PyUnicode_FromStringAndSize(qname.c_str(), qname.length()); else Py_RETURN_NONE; } diff --git a/pywraps/py_name.py b/pywraps/py_name.py index d180183..e164dd2 100644 --- a/pywraps/py_name.py +++ b/pywraps/py_name.py @@ -70,42 +70,3 @@ def calc_gtn_flags(fromaddr, ea): return gtn_flags #</pycode(py_name)> - -#<pycode_BC695(py_name)> -GN_INSNLOC=0 -@bc695redef -def demangle_name(name, mask, demreq=DQT_FULL): # make flag optional, so demangle_name & demangle_name2 can use it - return _ida_name.demangle_name(name, mask, demreq) -demangle_name2=demangle_name -def do_name_anyway(ea, name, maxlen=0): - return force_name(ea, name) -extract_name2=extract_name -get_debug_name2=get_debug_name -def get_true_name(ea0, ea1=None): - if ea1 is None: - ea = ea0 - else: - ea = ea1 - return get_name(ea) -is_ident_char=is_ident_cp -is_visible_char=is_visible_cp -def make_visible_name(name, sz=0): - if sz > 0: - name = name[0:sz] - return _ida_name.validate_name(name, VNT_VISIBLE) -def validate_name2(name, sz=0): - if sz > 0: - name = name[0:sz] - return _ida_name.validate_name(name, VNT_IDENT) -def validate_name3(name): - return _ida_name.validate_name(name, VNT_IDENT) -isident=is_ident -@bc695redef -def get_name(*args): - if len(args) == 2: - if args[0] != _ida_idaapi.BADADDR: - print("Compatibility get_name(from, ea) was called with non-BADADDR first argument (0x%08x). There is no equivalent in the new API, and the results might be erroneous." % args[0]); - return _ida_name.get_name(args[1]) - else: - return _ida_name.get_name(*args) -#</pycode_BC695(py_name)> diff --git a/pywraps/py_netnode.py b/pywraps/py_netnode.py deleted file mode 100644 index 670d925..0000000 --- a/pywraps/py_netnode.py +++ /dev/null @@ -1,14 +0,0 @@ - -#<pycode_BC695(py_netnode)> -netnode.alt1st = netnode.altfirst -netnode.alt1st_idx8 = netnode.altfirst_idx8 -netnode.altnxt = netnode.altnext -netnode.char1st = netnode.charfirst -netnode.char1st_idx8 = netnode.charfirst_idx8 -netnode.charnxt = netnode.charnext -netnode.hash1st = netnode.hashfirst -netnode.hashnxt = netnode.hashnext -netnode.sup1st = netnode.supfirst -netnode.sup1st_idx8 = netnode.supfirst_idx8 -netnode.supnxt = netnode.supnext -#</pycode_BC695(py_netnode)> diff --git a/pywraps/py_offset.py b/pywraps/py_offset.py deleted file mode 100644 index 93a5903..0000000 --- a/pywraps/py_offset.py +++ /dev/null @@ -1,9 +0,0 @@ - -#<pycode_BC695(py_offset)> -calc_reference_basevalue=calc_basevalue -calc_reference_target=calc_target -def set_offset(ea, n, base): - import ida_idaapi - otype = get_default_reftype(ea) - return op_offset(ea, n, otype, ida_idaapi.BADADDR, base) > 0 -#</pycode_BC695(py_offset)> diff --git a/pywraps/py_pro.hpp b/pywraps/py_pro.hpp index c7720a1..2177841 100644 --- a/pywraps/py_pro.hpp +++ b/pywraps/py_pro.hpp @@ -6,7 +6,7 @@ static bool qstrvec_t_assign(PyObject *self, PyObject *other) { qstrvec_t *lhs = qstrvec_t_get_clink(self); qstrvec_t *rhs = qstrvec_t_get_clink(other); - if ( lhs == NULL || rhs == NULL ) + if ( lhs == nullptr || rhs == nullptr ) return false; *lhs = *rhs; return true; @@ -16,7 +16,7 @@ static PyObject *qstrvec_t_addressof(PyObject *self, size_t idx) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) Py_RETURN_NONE; else return PyLong_FromUnsignedLongLong(size_t(&sv->at(idx))); @@ -29,7 +29,7 @@ static bool qstrvec_t_set( const char *s) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) return false; (*sv)[idx] = s; return true; @@ -41,7 +41,7 @@ static bool qstrvec_t_from_list( { PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t *sv = qstrvec_t_get_clink(self); - return (sv == NULL || !PySequence_Check(py_list)) + return (sv == nullptr || !PySequence_Check(py_list)) ? false : (PyW_PyListToStrVec(sv, py_list) >= 0); } @@ -49,22 +49,22 @@ static bool qstrvec_t_from_list( static size_t qstrvec_t_size(PyObject *self) { qstrvec_t *sv = qstrvec_t_get_clink(self); - return sv == NULL ? 0 : sv->size(); + return sv == nullptr ? 0 : sv->size(); } static PyObject *qstrvec_t_get(PyObject *self, size_t idx) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8(sv->at(idx).c_str()); + return PyUnicode_FromString(sv->at(idx).c_str()); } static bool qstrvec_t_add(PyObject *self, const char *s) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL ) + if ( sv == nullptr ) return false; sv->push_back(s); return true; @@ -73,7 +73,7 @@ static bool qstrvec_t_add(PyObject *self, const char *s) static bool qstrvec_t_clear(PyObject *self, bool qclear) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL ) + if ( sv == nullptr ) return false; if ( qclear ) @@ -90,7 +90,7 @@ static bool qstrvec_t_insert( const char *s) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) return false; sv->insert(sv->begin() + idx, s); return true; @@ -99,7 +99,7 @@ static bool qstrvec_t_insert( static bool qstrvec_t_remove(PyObject *self, size_t idx) { qstrvec_t *sv = qstrvec_t_get_clink(self); - if ( sv == NULL || idx >= sv->size() ) + if ( sv == nullptr || idx >= sv->size() ) return false; sv->erase(sv->begin()+idx); @@ -125,6 +125,6 @@ PyObject *py_str2user(const char *str) Py_RETURN_NONE; qstring retstr; qstr2user(&retstr, str); - return IDAPyStr_FromUTF8(retstr.c_str()); + return PyUnicode_FromString(retstr.c_str()); } //</inline(py_pro)> diff --git a/pywraps/py_pro.py b/pywraps/py_pro.py index 59a6b9e..adf42f8 100644 --- a/pywraps/py_pro.py +++ b/pywraps/py_pro.py @@ -2,11 +2,12 @@ #<pycode(py_pro)> import ida_idaapi -int64vec_t = longlongvec_t -uint64vec_t = ulonglongvec_t +longlongvec_t = int64vec_t +ulonglongvec_t = uint64vec_t + if ida_idaapi.__EA64__: - svalvec_t = longlongvec_t - uvalvec_t = ulonglongvec_t + svalvec_t = int64vec_t + uvalvec_t = uint64vec_t else: svalvec_t = intvec_t uvalvec_t = uintvec_t @@ -15,8 +16,8 @@ eavec_t = uvalvec_t ida_idaapi._listify_types( intvec_t, uintvec_t, - longlongvec_t, - ulonglongvec_t, + int64vec_t, + uint64vec_t, boolvec_t, strvec_t) @@ -97,10 +98,3 @@ class _qstrvec_t(ida_idaapi.py_clinked_object_t): return _ida_pro.qstrvec_t_remove(self, idx) #</pycode(py_pro)> - -#<pycode_BC695(py_pro)> -def strlwr(s): - return str(s).lower() -def strupr(s): - return str(s).upper() -#</pycode_BC695(py_pro)> diff --git a/pywraps/py_problems.py b/pywraps/py_problems.py deleted file mode 100644 index 2e3225c..0000000 --- a/pywraps/py_problems.py +++ /dev/null @@ -1,30 +0,0 @@ -#<pycode_BC695(py_problems)> -import sys -sys.modules["ida_queue"] = sys.modules["ida_problems"] -Q_Qnum=_ida_problems.cvar.PR_END -Q_att=_ida_problems.cvar.PR_ATTN -Q_badstack=_ida_problems.cvar.PR_BADSTACK -Q_collsn=_ida_problems.cvar.PR_COLLISION -Q_decimp=_ida_problems.cvar.PR_DECIMP -Q_disasm=_ida_problems.cvar.PR_DISASM -Q_final=_ida_problems.cvar.PR_FINAL -Q_head=_ida_problems.cvar.PR_HEAD -Q_jumps=_ida_problems.cvar.PR_JUMP -Q_lines=_ida_problems.cvar.PR_MANYLINES -Q_noBase=_ida_problems.cvar.PR_NOBASE -Q_noComm=_ida_problems.cvar.PR_NOCMT -Q_noFop=_ida_problems.cvar.PR_NOFOP -Q_noName=_ida_problems.cvar.PR_NONAME -Q_noRef=_ida_problems.cvar.PR_NOXREFS -Q_noValid=_ida_problems.cvar.PR_ILLADDR -Q_rolled=_ida_problems.cvar.PR_ROLLED -QueueDel=forget_problem -QueueGetMessage=get_problem_desc -QueueGetType=get_problem -QueueIsPresent=is_problem_present -QueueSet=remember_problem -def get_long_queue_name(t): - return get_problem_name(t, True) -def get_short_queue_name(t): - return get_problem_name(t, False) -#</pycode_BC695(py_problems)> diff --git a/pywraps/py_range.py b/pywraps/py_range.py index 4de1722..eb0da33 100644 --- a/pywraps/py_range.py +++ b/pywraps/py_range.py @@ -2,16 +2,3 @@ #<pycode(py_range)> import ida_idaapi #</pycode(py_range)> - -#<pycode_BC695(py_range)> -import sys -sys.modules["ida_area"] = sys.modules["ida_range"] -area_t = range_t -areaset_t = rangeset_t -def __set_startEA(inst, v): - inst.start_ea = v -range_t.startEA = property(lambda self: self.start_ea, __set_startEA) -def __set_endEA(inst, v): - inst.end_ea = v -range_t.endEA = property(lambda self: self.end_ea, __set_endEA) -#</pycode_BC695(py_range)> diff --git a/pywraps/py_registry.hpp b/pywraps/py_registry.hpp index 4ca372b..0a35d15 100644 --- a/pywraps/py_registry.hpp +++ b/pywraps/py_registry.hpp @@ -7,84 +7,78 @@ static PyObject *_py_reg_subkey_children(const char *name, bool subkeys) { PYW_GIL_CHECK_LOCKED_SCOPE(); - PyObject *result = NULL; qstrvec_t children; - Py_BEGIN_ALLOW_THREADS; - if ( reg_subkey_children(&children, name, subkeys) ) - { - result = PyList_New(children.size()); - if ( result != NULL ) - for ( size_t i = 0, n = children.size(); i < n; ++i ) - PyList_SET_ITEM(result, i, IDAPyStr_FromUTF8(children[i].c_str())); - } - Py_END_ALLOW_THREADS; - if ( result == NULL ) + SWIG_PYTHON_THREAD_BEGIN_ALLOW; + bool ok = reg_subkey_children(&children, name, subkeys); + SWIG_PYTHON_THREAD_END_ALLOW; + if ( !ok ) Py_RETURN_NONE; - else - return result; + ref_t result = PyW_StrVecToPyList(children); + result.incref(); + return result.o; } //</code(py_registry)> //<inline(py_registry)> //------------------------------------------------------------------------- -PyObject *py_reg_read_string(const char *name, const char *subkey = NULL, const char *def = NULL) +PyObject *py_reg_read_string(const char *name, const char *subkey = nullptr, const char *def = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstring utf8; - Py_BEGIN_ALLOW_THREADS; - if ( !reg_read_string(&utf8, name, subkey) && def != NULL ) + SWIG_PYTHON_THREAD_BEGIN_ALLOW; + if ( !reg_read_string(&utf8, name, subkey) && def != nullptr ) utf8 = def; - Py_END_ALLOW_THREADS; - return IDAPyStr_FromUTF8(utf8.c_str()); + SWIG_PYTHON_THREAD_END_ALLOW; + return PyUnicode_FromString(utf8.c_str()); } //------------------------------------------------------------------------- -regval_type_t py_reg_data_type(const char *name, const char *subkey = NULL) +regval_type_t py_reg_data_type(const char *name, const char *subkey = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); regval_type_t rt = reg_unknown; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; reg_data_type(&rt, name, subkey); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rt; } //------------------------------------------------------------------------- -PyObject *py_reg_read_binary(const char *name, const char *subkey = NULL) +PyObject *py_reg_read_binary(const char *name, const char *subkey = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); bytevec_t bytes; bool ok; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; ok = reg_read_binary(name, &bytes, subkey); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( ok ) - return IDAPyBytes_FromMemAndSize((const char *) bytes.begin(), bytes.size()); + return PyBytes_FromStringAndSize((const char *) bytes.begin(), bytes.size()); else Py_RETURN_NONE; } //------------------------------------------------------------------------- -PyObject *py_reg_write_binary(const char *name, PyObject *py_bytes, const char *subkey = NULL) +PyObject *py_reg_write_binary(const char *name, PyObject *py_bytes, const char *subkey = nullptr) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( IDAPyBytes_Check(py_bytes) ) + if ( PyBytes_Check(py_bytes) ) { - char *py_bytes_raw = NULL; + char *py_bytes_raw = nullptr; Py_ssize_t py_size = 0; - IDAPyBytes_AsMemAndSize(py_bytes, &py_bytes_raw, &py_size); + PyBytes_AsStringAndSize(py_bytes, &py_bytes_raw, &py_size); bytevec_t bytes; bytes.append(py_bytes_raw, py_size); - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; reg_write_binary(name, bytes.begin(), bytes.size(), subkey); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; Py_RETURN_NONE; } else { PyErr_SetString(PyExc_ValueError, "Bytes string expected!"); - return NULL; + return nullptr; } } diff --git a/pywraps/py_search.hpp b/pywraps/py_search.hpp new file mode 100644 index 0000000..732be71 --- /dev/null +++ b/pywraps/py_search.hpp @@ -0,0 +1,13 @@ +//<inline(py_search)> + +/* +#<pydoc> +def find_binary(arg1, arg2, arg3, arg4, arg5): + """ + Deprecated. Please use ida_bytes.bin_search() instead. + """ + pass +#</pydoc> +*/ + +//</inline(py_search)> diff --git a/pywraps/py_search.py b/pywraps/py_search.py index b63322a..dce9f06 100644 --- a/pywraps/py_search.py +++ b/pywraps/py_search.py @@ -1,4 +1,4 @@ -#<pycode_BC695(py_search)> -find_void=find_suspop -#</pycode_BC695(py_search)> +#<pycode(py_search)> +SEARCH_UNICODE = 0x40 # Deprecated. For find_binary() +#</pycode(py_search)> diff --git a/pywraps/py_segment.hpp b/pywraps/py_segment.hpp index b9e1057..8af08ee 100644 --- a/pywraps/py_segment.hpp +++ b/pywraps/py_segment.hpp @@ -36,14 +36,40 @@ ea_t segment_t_end_ea_get(segment_t *segm) //</code(py_segment)> //<inline(py_segment)> +//-------------------------------------------------------------------------- +/* +#<pydoc> +def get_defsr(s, reg): + """ + Deprecated, use instead: + value = s.defsr[reg] + """ + pass +#</pydoc> +*/ sel_t get_defsr(segment_t *s, int reg) { - return s->defsr[reg]; + return s != nullptr && reg >= 0 && reg < SREG_NUM ? s->defsr[reg] : BADSEL; } + +//-------------------------------------------------------------------------- +/* +#<pydoc> +def set_defsr(s, reg, value): + """ + Deprecated, use instead: + s.defsr[reg] = value + """ + pass +#</pydoc> +*/ void set_defsr(segment_t *s, int reg, sel_t value) { - s->defsr[reg] = value; + if ( s != nullptr && reg >= 0 && reg < SREG_NUM ) + s->defsr[reg] = value; } + +//-------------------------------------------------------------------------- int py_rebase_program(PyObject *delta, int flags) { int rc = MOVE_SEGM_PARAM; diff --git a/pywraps/py_segment.py b/pywraps/py_segment.py deleted file mode 100644 index f0c5180..0000000 --- a/pywraps/py_segment.py +++ /dev/null @@ -1,17 +0,0 @@ - -#<pycode_BC695(py_segment)> -CSS_NOAREA=CSS_NORANGE -SEGDEL_KEEP=SEGMOD_KEEP -SEGDEL_KEEP0=SEGMOD_KEEP0 -SEGDEL_PERM=SEGMOD_KILL -SEGDEL_SILENT=SEGMOD_SILENT -def del_segment_cmt(s, rpt): - set_segment_cmt(s, "", rpt) -ask_selector=sel2para -# In 7.0, those were renamed -# - get_true_segm_name -> get_segm_name -# - get_segm_name -> get_visible_segm_name -# alas, since they have the same prototypes, we cannot do much, -# but redirect all to get_segm_name and hope for the best -get_true_segm_name=get_segm_name -#</pycode_BC695(py_segment)> diff --git a/pywraps/py_segregs.py b/pywraps/py_segregs.py deleted file mode 100644 index f53f274..0000000 --- a/pywraps/py_segregs.py +++ /dev/null @@ -1,42 +0,0 @@ - -#<pycode_BC695(py_segregs)> -import sys -import ida_idaapi -sys.modules["ida_srarea"] = sys.modules["ida_segregs"] -SetDefaultRegisterValue=set_default_sreg_value -copy_srareas=copy_sreg_ranges -def ___looks_like_ea_not_segreg(thing): - # yay heuristics. Not sure how best to do this... - if thing > 0x200: - return True - return sys.version_info.major < 3 and (type(thing) == long) -def del_sreg_range(*args): - if ___looks_like_ea_not_segreg(args[1]): # 6.95: rg, ea - ea, rg = args[1], args[0] - else: # 7.00: ea, rg - ea, rg = args - return _ida_segregs.del_sreg_range(ea, rg) -del_srarea=del_sreg_range -getSR=get_sreg -get_prev_srarea=get_prev_sreg_range -get_srarea2=get_sreg_range -def get_sreg_range_num(*args): - if ___looks_like_ea_not_segreg(args[1]): # 6.95: rg, ea - ea, rg = args[1], args[0] - else: # 7.00: ea, rg - ea, rg = args - return _ida_segregs.get_sreg_range_num(ea, rg) -get_srarea_num=get_sreg_range_num -get_srareas_qty2=get_sreg_ranges_qty -getn_srarea2=getn_sreg_range -is_segreg_locked=ida_idaapi._BC695.false_p -class lock_segreg: - def __init__(): - pass -segreg_area_t=sreg_range_t -splitSRarea1=split_sreg_range -split_srarea=split_sreg_range -get_segreg=get_sreg -set_default_segreg_value=set_default_sreg_value - -#</pycode_BC695(py_segregs)> diff --git a/pywraps/py_strlist.py b/pywraps/py_strlist.py deleted file mode 100644 index 8f6adc1..0000000 --- a/pywraps/py_strlist.py +++ /dev/null @@ -1,4 +0,0 @@ -#<pycode_BC695(py_strlist)> -def refresh_strlist(*args): - build_strlist() -#</pycode_BC695(py_strlist)> diff --git a/pywraps/py_struct.hpp b/pywraps/py_struct.hpp index 03c278a..a0cc1ff 100644 --- a/pywraps/py_struct.hpp +++ b/pywraps/py_struct.hpp @@ -3,6 +3,37 @@ #define __PY_STRUCT__ //<inline(py_struct)> + +//------------------------------------------------------------------------- +/* +#<pydoc> +def get_innermost_member(sptr, offset): + """ + Get the innermost member at the given offset + @param sptr: the starting structure + @param offset: offset into the starting structure + @return: + - None on failure + - tuple(member_t, struct_t, offset) + where member_t: a member in SPTR (it is not a structure), + struct_t: the innermost structure, + offset: remaining offset into the returned member + """ + pass +#</pydoc> +*/ +PyObject *py_get_innermost_member(struc_t *sptr, asize_t offset) +{ + PYW_GIL_CHECK_LOCKED_SCOPE(); + member_t *mptr = get_innermost_member(&sptr, &offset); + if ( mptr == nullptr ) + Py_RETURN_NONE; + return Py_BuildValue("(OO" PY_BV_ASIZE ")", + SWIG_NewPointerObj(SWIG_as_voidptr(mptr), SWIGTYPE_p_member_t, 0), + SWIG_NewPointerObj(SWIG_as_voidptr(sptr), SWIGTYPE_p_struc_t, 0), + bvasize_t(offset)); +} + //</inline(py_struct)> #endif // __PY_STRUCT__ diff --git a/pywraps/py_struct.py b/pywraps/py_struct.py deleted file mode 100644 index 1233d93..0000000 --- a/pywraps/py_struct.py +++ /dev/null @@ -1,28 +0,0 @@ -#<pycode_BC695(py_struct)> -get_member_name2=get_member_name - -def get_member_tinfo(*args): - import ida_typeinf - if isinstance(args[1], ida_typeinf.tinfo_t): # 6.95: mptr, tinfo_t - mptr, tif = args - else: # 7.00: tinfo_t, mptr - tif, mptr = args - return _ida_struct.get_member_tinfo(tif, mptr); - -def get_or_guess_member_tinfo(*args): - import ida_typeinf - if isinstance(args[1], ida_typeinf.tinfo_t): # 6.95: mptr, tinfo_t - mptr, tif = args - else: # 7.00: tinfo_t, mptr - tif, mptr = args - return _ida_struct.get_or_guess_member_tinfo(tif, mptr); - -# note: if needed we might have to re-implement get_member_tinfo() -# and look whether there is a 2nd, 'tinfo_t' parameter (since the -# original get_member_tinfo function has a different signature) -get_member_tinfo2=get_member_tinfo -# same here -get_or_guess_member_tinfo2=get_or_guess_member_tinfo -save_struc2=save_struc -set_member_tinfo2=set_member_tinfo -#</pycode_BC695(py_struct)> diff --git a/pywraps/py_typeinf.hpp b/pywraps/py_typeinf.hpp index ed25aa9..15938b7 100644 --- a/pywraps/py_typeinf.hpp +++ b/pywraps/py_typeinf.hpp @@ -10,7 +10,7 @@ PyObject *idc_parse_decl(til_t *ti, const char *decl, int flags) qtype fields, type; bool ok = parse_decl(&tif, &name, ti, decl, flags); if ( ok ) - ok = tif.serialize(&type, &fields, NULL, SUDT_FAST); + ok = tif.serialize(&type, &fields, nullptr, SUDT_FAST); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( ok ) @@ -39,17 +39,17 @@ def calc_type_size(ti, tp): PyObject *py_calc_type_size(const til_t *ti, PyObject *tp) { PYW_GIL_CHECK_LOCKED_SCOPE(); - if ( IDAPyBytes_Check(tp) ) + if ( PyBytes_Check(tp) ) { // To avoid release of 'data' during Py_BEGIN|END_ALLOW_THREADS section. borref_t tpref(tp); - const type_t *data = (type_t *)IDAPyBytes_AsString(tp); + const type_t *data = (type_t *)PyBytes_AsString(tp); size_t sz; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; tinfo_t tif; - tif.deserialize(ti, &data, NULL, NULL); + tif.deserialize(ti, &data, nullptr, nullptr); sz = tif.get_size(); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( sz != BADSIZE ) return PyInt_FromLong(sz); Py_RETURN_NONE; @@ -57,14 +57,14 @@ PyObject *py_calc_type_size(const til_t *ti, PyObject *tp) else { PyErr_SetString(PyExc_ValueError, "String expected!"); - return NULL; + return nullptr; } } //------------------------------------------------------------------------- /* #<pydoc> -def apply_type(ti, ea, tp_name, py_type, py_fields, flags) +def apply_type(ti, ea, tp_name, py_type, py_fields, flags): """ Apply the specified type to the address @param ti: Type info library. 'None' can be used. @@ -79,21 +79,19 @@ def apply_type(ti, ea, tp_name, py_type, py_fields, flags) */ static bool py_apply_type( til_t *ti, - const bytevec_t &_type, - const bytevec_t &_fields, + const type_t *type, + const p_list *fields, ea_t ea, int flags) { PYW_GIL_CHECK_LOCKED_SCOPE(); - const type_t *type = (const type_t *) _type.begin(); - const p_list *fields = (const p_list *) _fields.begin(); bool rc; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; struc_t *sptr; member_t *mptr = get_member_by_id(ea, &sptr); - if ( type == NULL || type[0] == '\0' ) + if ( type == nullptr || type[0] == '\0' ) { - if ( mptr != NULL ) + if ( mptr != nullptr ) { rc = mptr->has_ti(); if ( rc ) @@ -109,16 +107,16 @@ static bool py_apply_type( else { tinfo_t tif; - rc = tif.deserialize(ti, &type, &fields, NULL); + rc = tif.deserialize(ti, &type, &fields, nullptr); if ( rc ) { - if ( mptr != NULL ) + if ( mptr != nullptr ) rc = set_member_tinfo(sptr, mptr, 0, tif, 0) > SMT_FAILED; else rc = apply_tinfo(ea, tif, flags); } } - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return rc; } @@ -161,26 +159,24 @@ def py_unpack_object_from_idb(ti, tp, fields, ea, pio_flags = 0): */ PyObject *py_unpack_object_from_idb( til_t *ti, - const bytevec_t &_type, - const bytevec_t &_fields, + const type_t *type, + const p_list *fields, ea_t ea, int pio_flags = 0) { PYW_GIL_CHECK_LOCKED_SCOPE(); - const type_t *type = (const type_t *) _type.begin(); - const p_list *fields = (const p_list *) _fields.begin(); idc_value_t idc_obj; error_t err; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; tinfo_t tif; tif.deserialize(ti, &type, &fields); err = unpack_idcobj_from_idb( &idc_obj, tif, ea, - NULL, + nullptr, pio_flags); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; // Unpacking failed? if ( err != eOk ) @@ -218,16 +214,14 @@ def unpack_object_from_bv(ti, tp, fields, bytes, pio_flags = 0): */ PyObject *py_unpack_object_from_bv( til_t *ti, - const bytevec_t &_type, - const bytevec_t &_fields, + const type_t *type, + const p_list *fields, const bytevec_t &bytes, int pio_flags = 0) { - const type_t *type = (const type_t *) _type.begin(); - const p_list *fields = (const p_list *) _fields.begin(); idc_value_t idc_obj; error_t err; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; tinfo_t tif; tif.deserialize(ti, &type, &fields); err = unpack_idcobj_from_bv( @@ -235,7 +229,7 @@ PyObject *py_unpack_object_from_bv( tif, bytes, pio_flags); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; // Unpacking failed? if ( err != eOk ) @@ -272,8 +266,8 @@ def pack_object_to_idb(obj, ti, tp, fields, ea, pio_flags = 0): PyObject *py_pack_object_to_idb( PyObject *py_obj, til_t *ti, - const bytevec_t &_type, - const bytevec_t &_fields, + const type_t *type, + const p_list *fields, ea_t ea, int pio_flags = 0) { @@ -283,19 +277,16 @@ PyObject *py_pack_object_to_idb( idc_value_t idc_obj; borref_t py_obj_ref(py_obj); if ( !pyvar_to_idcvar_or_error(py_obj_ref, &idc_obj) ) - return NULL; - - const type_t *type = (const type_t *) _type.begin(); - const p_list *fields = (const p_list *) _fields.begin(); + return nullptr; // Pack // error_t err; error_t err; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; tinfo_t tif; tif.deserialize(ti, &type, &fields); err = pack_idcobj_to_idb(&idc_obj, tif, ea, pio_flags); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; return PyInt_FromLong(err); } @@ -321,8 +312,8 @@ def pack_object_to_bv(obj, ti, tp, fields, base_ea, pio_flags = 0): PyObject *py_pack_object_to_bv( PyObject *py_obj, til_t *ti, - const bytevec_t &_type, - const bytevec_t &_fields, + const type_t *type, + const p_list *fields, ea_t base_ea, int pio_flags=0) { @@ -332,28 +323,25 @@ PyObject *py_pack_object_to_bv( idc_value_t idc_obj; borref_t py_obj_ref(py_obj); if ( !pyvar_to_idcvar_or_error(py_obj_ref, &idc_obj) ) - return NULL; - - const type_t *type = (const type_t *) _type.begin(); - const p_list *fields = (const p_list *) _fields.begin(); + return nullptr; // Pack relobj_t bytes; error_t err; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; tinfo_t tif; tif.deserialize(ti, &type, &fields); err = pack_idcobj_to_bv( &idc_obj, tif, &bytes, - NULL, + nullptr, pio_flags); if ( err == eOk && !bytes.relocate(base_ea, inf_is_be()) ) err = -1; - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( err == eOk ) - return Py_BuildValue("(i" PY_BV_BYTES "#)", 1, bytes.begin(), bytes.size()); + return Py_BuildValue("(i" PY_BV_BYTES "#)", 1, bytes.begin(), (Py_ssize_t) bytes.size()); else return Py_BuildValue("(ii)", 0, err); } @@ -371,7 +359,7 @@ int idc_parse_types(const char *input, int flags) flags &= ~PT_FILE; } - return parse_decls(NULL, input, (flags & PT_SIL) == 0 ? msg : NULL, hti); + return parse_decls(nullptr, input, (flags & PT_SIL) == 0 ? msg : nullptr, hti); } //------------------------------------------------------------------------- @@ -381,7 +369,7 @@ PyObject *py_idc_get_type_raw(ea_t ea) qtype type, fields; bool ok = get_tinfo(&tif, ea); if ( ok ) - ok = tif.serialize(&type, &fields, NULL, SUDT_FAST); + ok = tif.serialize(&type, &fields, nullptr, SUDT_FAST); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( ok ) return Py_BuildValue("(" PY_BV_TYPE PY_BV_FIELDS ")", (char *)type.c_str(), (char *)fields.c_str()); @@ -394,7 +382,7 @@ PyObject *py_idc_get_local_type_raw(int ordinal) { const type_t *type; const p_list *fields; - bool ok = get_numbered_type(NULL, ordinal, &type, &fields); + bool ok = get_numbered_type(nullptr, ordinal, &type, &fields); PYW_GIL_CHECK_LOCKED_SCOPE(); if ( ok ) return Py_BuildValue("(" PY_BV_TYPE PY_BV_FIELDS ")", (char *)type, (char *)fields); @@ -411,7 +399,7 @@ char *idc_guess_type(ea_t ea, char *buf, size_t bufsize) if ( tif.print(&out) ) return qstrncpy(buf, out.begin(), bufsize); } - return NULL; + return nullptr; } //------------------------------------------------------------------------- @@ -427,80 +415,72 @@ char *idc_get_type(ea_t ea, char *buf, size_t bufsize) return buf; } } - return NULL; + return nullptr; } //------------------------------------------------------------------------- int idc_set_local_type(int ordinal, const char *dcl, int flags) { - if ( dcl == NULL || dcl[0] == '\0' ) + if ( dcl == nullptr || dcl[0] == '\0' ) { - if ( !del_numbered_type(NULL, ordinal) ) + if ( !del_numbered_type(nullptr, ordinal) ) return 0; } else { tinfo_t tif; qstring name; - if ( !parse_decl(&tif, &name, NULL, dcl, flags) ) + if ( !parse_decl(&tif, &name, nullptr, dcl, flags) ) return 0; if ( ordinal <= 0 ) { if ( !name.empty() ) - ordinal = get_type_ordinal(NULL, name.begin()); + ordinal = get_type_ordinal(nullptr, name.begin()); if ( ordinal <= 0 ) - ordinal = alloc_type_ordinal(NULL); + ordinal = alloc_type_ordinal(nullptr); } - if ( tif.set_numbered_type(NULL, ordinal, 0, name.c_str()) != TERR_OK ) + if ( tif.set_numbered_type(nullptr, ordinal, 0, name.c_str()) != TERR_OK ) return 0; } return ordinal; } //------------------------------------------------------------------------- -int idc_get_local_type(int ordinal, int flags, char *buf, size_t maxsize) +int idc_get_local_type(int ordinal, int flags, char *buf, size_t bufsize) { tinfo_t tif; - if ( !tif.get_numbered_type(NULL, ordinal) ) - { - buf[0] = 0; + if ( !tif.get_numbered_type(nullptr, ordinal) ) return false; - } qstring res; - const char *name = get_numbered_type_name(NULL, ordinal); + const char *name = get_numbered_type_name(nullptr, ordinal); if ( !tif.print(&res, name, flags, 2, 40) ) - { - buf[0] = 0; return false; - } - qstrncpy(buf, res.begin(), maxsize); + qstrncpy(buf, res.begin(), bufsize); return true; } //------------------------------------------------------------------------- PyObject *idc_print_type( - const bytevec_t &_type, - const bytevec_t &_fields, + const type_t *type, + const p_list *fields, const char *name, int flags) { PYW_GIL_CHECK_LOCKED_SCOPE(); qstring res; - const type_t *type = (const type_t *) _type.begin(); - const p_list *fields = (const p_list *) _fields.begin(); bool ok; - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; tinfo_t tif; - ok = tif.deserialize(NULL, &type, &fields, NULL) + ok = tif.deserialize(nullptr, &type, &fields, nullptr) && tif.print(&res, name, flags, 2, 40); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; if ( ok ) - return IDAPyStr_FromUTF8(res.begin()); + return PyUnicode_FromString(res.begin()); else Py_RETURN_NONE; } @@ -508,8 +488,8 @@ PyObject *idc_print_type( //------------------------------------------------------------------------- char idc_get_local_type_name(int ordinal, char *buf, size_t bufsize) { - const char *name = get_numbered_type_name(NULL, ordinal); - if ( name == NULL ) + const char *name = get_numbered_type_name(nullptr, ordinal); + if ( name == nullptr ) return false; qstrncpy(buf, name, bufsize); @@ -534,9 +514,9 @@ def get_named_type(til, name, ntf_flags): */ PyObject *py_get_named_type(const til_t *til, const char *name, int ntf_flags) { - const type_t *type = NULL; - const p_list *fields = NULL, *field_cmts = NULL; - const char *cmt = NULL; + const type_t *type = nullptr; + const p_list *fields = nullptr, *field_cmts = nullptr; + const char *cmt = nullptr; sclass_t sclass = sc_unk; uint64 value = 0; int code = get_named_type(til, name, ntf_flags, &type, &fields, &cmt, &field_cmts, &sclass, (uint32 *) &value); @@ -560,10 +540,10 @@ PyObject *py_get_named_type(const til_t *til, const char *name, int ntf_flags) } while ( false ) ADD(PyInt_FromLong(long(code))); - ADD(IDAPyBytes_FromMem((const char *) type)); - ADD_OR_NONE(fields != NULL, IDAPyBytes_FromMem((const char *) fields)); - ADD_OR_NONE(cmt != NULL, IDAPyStr_FromUTF8(cmt)); - ADD_OR_NONE(field_cmts != NULL, IDAPyStr_FromUTF8((const char *) field_cmts)); + ADD(PyBytes_FromString((const char *) type)); + ADD_OR_NONE(fields != nullptr, PyBytes_FromString((const char *) fields)); + ADD_OR_NONE(cmt != nullptr, PyUnicode_FromString(cmt)); + ADD_OR_NONE(field_cmts != nullptr, PyUnicode_FromString((const char *) field_cmts)); ADD(PyInt_FromLong(long(sclass))); if ( (ntf_flags & NTF_64BIT) != 0 ) ADD(PyLong_FromUnsignedLongLong(value)); @@ -586,7 +566,7 @@ PyObject *py_print_decls(text_sink_t &printer, til_t *til, PyObject *py_ordinals if ( !PyList_Check(py_ordinals) ) { PyErr_SetString(PyExc_ValueError, "'ordinals' must be a list"); - return NULL; + return nullptr; } Py_ssize_t nords = PyList_Size(py_ordinals); @@ -595,31 +575,25 @@ PyObject *py_print_decls(text_sink_t &printer, til_t *til, PyObject *py_ordinals for ( Py_ssize_t i = 0; i < nords; ++i ) { borref_t item(PyList_GetItem(py_ordinals, i)); - if ( item == NULL || !IDAPyIntOrLong_Check(item.o) ) + if ( !item || !PyLong_Check(item.o) ) { qstring msg; msg.sprnt("ordinals[%d] is not a valid value", int(i)); PyErr_SetString(PyExc_ValueError, msg.begin()); - return NULL; + return nullptr; } - uint32 ord = IDAPyIntOrLong_AsLong(item.o); + uint32 ord = PyLong_AsLong(item.o); ordinals.push_back(ord); } - return IDAPyInt_FromLong(print_decls(printer, til, ordinals.empty() ? NULL : &ordinals, flags)); + return PyLong_FromLong(print_decls(printer, til, ordinals.empty() ? nullptr : &ordinals, flags)); } -#ifdef BC695 -// dummy idati, to generate the cvar. We'll patch the code so -// it does retrieve the real idati through get_idati() -til_t *idati = NULL; -#endif - //------------------------------------------------------------------------- PyObject *py_remove_tinfo_pointer(tinfo_t *tif, const char *name, const til_t *til) { - const char **pname = name == NULL ? NULL : &name; + const char **pname = name == nullptr ? nullptr : &name; bool rc = remove_tinfo_pointer(tif, pname, til); - return Py_BuildValue("(Os)", PyBool_FromLong(rc), pname != NULL ? *pname : NULL); + return Py_BuildValue("(Os)", PyBool_FromLong(rc), pname != nullptr ? *pname : nullptr); } //------------------------------------------------------------------------- @@ -657,7 +631,7 @@ static PyObject *py_tinfo_t_serialize( if ( (Thing).empty() ) \ Py_INCREF(Py_None); \ else \ - o = IDAPyBytes_FromMem((const char *) (Thing).begin()); \ + o = PyBytes_FromString((const char *) (Thing).begin()); \ PyTuple_SetItem(tuple, ctr, o); \ ++ctr; \ } while ( false ) diff --git a/pywraps/py_typeinf.py b/pywraps/py_typeinf.py index 0fc85ac..39950cd 100644 --- a/pywraps/py_typeinf.py +++ b/pywraps/py_typeinf.py @@ -4,117 +4,23 @@ import ida_idaapi ida_idaapi._listify_types( reginfovec_t) -#</pycode(py_typeinf)> +# +# When turning off BC695, 'idati' would still remain available +# +_real_cvar = cvar +_notify_idati = ida_idaapi._make_one_time_warning_message("idati", "get_idati()") -#<pycode_BC695(py_typeinf)> -BFI_NOCONST=0 -BFI_NOLOCS=0 -NTF_NOIDB=0 -PRVLOC_STKOFF=PRALOC_VERIFY -PRVLOC_VERIFY=PRALOC_STKOFF -TERR_TOOLONGNAME=TERR_WRONGNAME -@bc695redef -def add_til(name, flags=0): - return _ida_typeinf.add_til(name, flags) -add_til2=add_til -def apply_decl(arg0, arg1, arg2=None, arg3=0): - if type(arg0) in ida_idaapi.integer_types: # old apply_cdecl() - return _ida_typeinf.apply_cdecl(cvar.idati, arg0, arg1, 0) - else: - assert(arg2 is not None) - return _ida_typeinf.apply_cdecl(arg0, arg1, arg2, arg3) -apply_cdecl2=apply_decl -apply_tinfo2=apply_tinfo -calc_c_cpp_name4=calc_c_cpp_name -import ida_idaapi -callregs_init_regs=ida_idaapi._BC695.dummy -choose_local_type=choose_local_tinfo -def choose_named_type2(root_til, title, ntf_flags, func, out_sym): - class func_pred_t(predicate_t): - def __init__(self, func): - predicate_t.__init__(self) - self.func = func - def should_display(self, til, name, tp, flds): - return self.func(name, tp, flds) - fp = func_pred_t(func) - return choose_named_type(out_sym, root_til, title, ntf_flags, fp) -deref_ptr2=deref_ptr -extract_varloc=extract_argloc -const_vloc_visitor_t=const_aloc_visitor_t -for_all_const_varlocs=for_all_const_arglocs -for_all_varlocs=for_all_arglocs -def gen_decorate_name3(name, mangle, cc): - return gen_decorate_name(name, mangle, cc, None) # ATM gen_decorate_name doesn't use its tinfo_t -get_enum_member_expr2=get_enum_member_expr -get_idainfo_by_type3=get_idainfo_by_type -def guess_func_tinfo2(pfn, tif): - return guess_tinfo(pfn.start_ea, tif) -@bc695redef -def load_til(name, tildir=None, *args): - # 6.95 C++ prototypes - # idaman til_t *ida_export load_til(const char *tildir, const char *name, char *errbuf, size_t bufsize); - # idaman til_t *ida_export load_til2( const char *name, char *errbuf, size_t bufsize); - # - # 6.95 Python prototypes - # load_til(tildir, name) - # load_til(tildir, name, errbuf, bufsize) - # load_til2(name, errbuf, bufsize=0) - # - # -> it's virtually impossible to tell whether it's load_til2(), - # or load_til() that's called since they both take 2 first string - # arguments. We'll rely the contents of those strings... - if name is None or name == "": # load_til(), with an empty tildir - name = tildir - tildir = "" - return _ida_typeinf.load_til(name, tildir) - else: - return _ida_typeinf.load_til(name, tildir) -load_til2=load_til -lower_type2=lower_type -optimize_varloc=optimize_argloc -def parse_decl2(til, decl, tif, flags): - return _ida_typeinf.parse_decl(tif, til, decl, flags) -@bc695redef -def print_type(ea, flags): - if isinstance(flags, bool): - flags = PRTYPE_1LINE if flags else 0 - return _ida_typeinf.print_type(ea, flags) -def print_type2(ea, flags): - return _ida_typeinf.print_type(ea, flags) -print_type3=_ida_typeinf.print_type -print_varloc=print_argloc -def resolve_typedef2(til, p, *args): - return _ida_typeinf.resolve_typedef(til, p) -scattered_vloc_t=scattered_aloc_t -set_compiler2=set_compiler -varloc_t=argloc_t -varpart_t=argpart_t -verify_varloc=verify_argloc -vloc_visitor_t=aloc_visitor_t -def guess_tinfo(*args): - if isinstance(args[1], tinfo_t): # 6.95: id, tinfo_t - tid, tif = args - else: # 7.00: tinfo_t, id - tif, tid = args - return _ida_typeinf.guess_tinfo(tif, tid) -guess_tinfo2=guess_tinfo -def find_tinfo_udt_member(*args): - if isinstance(args[2], udt_member_t): # 6.95: typid, strmem_flags, udm - typid, strmem_flags, udm = args - else: # 7.00: udm, typid, strmem_flags - udm, typid, strmem_flags = args - return _ida_typeinf.find_tinfo_udt_member(udm, typid, strmem_flags) -def __tinfo_t_find_udt_member(self, *args): - if isinstance(args[1], udt_member_t): # 6.95: strmem_flags, udm - strmem_flags, udm = args - else: # 7.00: udm, strmem_flags - udm, strmem_flags = args - return _ida_typeinf.tinfo_t_find_udt_member(self, udm, strmem_flags) -tinfo_t.find_udt_member=__tinfo_t_find_udt_member -def save_tinfo(*args): - if isinstance(args[4], tinfo_t): # 6.95: til_t, size_t, name, int, tinfo_t - til, _ord, name, ntf_flags, tif = args - else: # 7.00: tinfo_t, til_t, size_t, name, int - tif, til, _ord, name, ntf_flags = args - return _ida_typeinf.save_tinfo(tif, til, _ord, name, ntf_flags) -#</pycode_BC695(py_typeinf)> +class _wrap_cvar(object): + def __getattr__(self, attr): + if attr == "idati": + _notify_idati() + return get_idati() + return getattr(_real_cvar, attr) + + def __setattr__(self, attr, value): + if attr != "idati": + setattr(_real_cvar, attr, value) + +cvar = _wrap_cvar() + +#</pycode(py_typeinf)> diff --git a/pywraps/py_ua.hpp b/pywraps/py_ua.hpp index 16fb92f..dd1de86 100644 --- a/pywraps/py_ua.hpp +++ b/pywraps/py_ua.hpp @@ -53,11 +53,9 @@ bool py_construct_macro(insn_t &insn, bool enable, PyObject *build_macro) { PyObject *py_builder = macro_builders.top().o; ref_t py_res; - ref_t py_mod(PyW_TryImportModule(SWIG_name)); - if ( py_mod != NULL ) + if ( ref_t py_mod = ref_t(PyW_TryImportModule(SWIG_name)) ) { - ref_t py_insn = try_create_swig_wrapper(py_mod, "insn_t", &insn); - if ( py_insn != NULL ) + if ( ref_t py_insn = ref_t(try_create_swig_wrapper(py_mod, "insn_t", &insn)) ) { py_res = newref_t( PyObject_CallFunction( @@ -83,7 +81,7 @@ static int py_get_dtype_by_size(asize_t size) } //------------------------------------------------------------------------- -PyObject *py_get_immvals(ea_t ea, int n, flags_t F=0) +PyObject *py_get_immvals(ea_t ea, int n, flags64_t F=0) { uvalvec_t storage; storage.resize(2 * UA_MAXOP); @@ -97,7 +95,7 @@ PyObject *py_get_immvals(ea_t ea, int n, flags_t F=0) } //------------------------------------------------------------------------- -PyObject *py_get_printable_immvals(ea_t ea, int n, flags_t F=0) +PyObject *py_get_printable_immvals(ea_t ea, int n, flags64_t F=0) { uvalvec_t storage; storage.resize(2 * UA_MAXOP); diff --git a/pywraps/py_ua.py b/pywraps/py_ua.py index c02e8bd..f8bb8ee 100644 --- a/pywraps/py_ua.py +++ b/pywraps/py_ua.py @@ -1,78 +1,3 @@ #<pycode(py_ua)> ua_mnem = print_insn_mnem #</pycode(py_ua)> - -#<pycode_BC695(py_ua)> -import ida_idaapi -def codeSeg(ea, opnum): - insn = insn_t() - if decode_insn(insn, ea): - return _ida_ua.map_code_ea(insn, insn.ops[opnum]) - else: - return ida_idaapi.BADADDR -get_dtyp_by_size=get_dtype_by_size -get_dtyp_flag=get_dtype_flag -get_dtyp_size=get_dtype_size -get_operand_immvals=get_immvals -op_t.dtyp = op_t.dtype -cmd = insn_t() -@bc695redef -def decode_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.decode_insn(tmp, args[0]) - cmd.assign(tmp) - return rc - else: - return _ida_ua.decode_insn(*args) -@bc695redef -def create_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.create_insn(args[0], tmp) - cmd.assign(tmp) - return rc - else: - return _ida_ua.create_insn(*args) -@bc695redef -def decode_prev_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.decode_prev_insn(tmp, args[0]) - cmd.assign(tmp) - return rc - else: - return _ida_ua.decode_prev_insn(*args) -@bc695redef -def decode_preceding_insn(*args): - if len(args) == 1: - tmp = insn_t() - rc = _ida_ua.decode_preceding_insn(tmp, args[0]) - cmd.assign(tmp) - return rc - else: - return _ida_ua.decode_preceding_insn(*args) -import ida_ida -UA_MAXOP=ida_ida.UA_MAXOP -dt_3byte=dt_byte -tbo_123=0 -tbo_132=0 -tbo_213=0 -tbo_231=0 -tbo_312=0 -tbo_321=0 -def ua_add_cref(opoff, to, rtype): - return cmd.add_cref(to, opoff, rtype) -def ua_add_dref(opoff, to, rtype): - return cmd.add_dref(to, opoff, rtype) -def ua_add_off_drefs(x, rtype): - return cmd.add_off_drefs(x, rtype, 0) -def ua_add_off_drefs2(x, rtype, outf): - return cmd.add_off_drefs(x, rtype, outf) -def ua_dodata(ea, dtype): - return cmd.create_op_data(ea, 0, dtype) -def ua_dodata2(opoff, ea, dtype): - return cmd.create_op_data(ea, opoff, dtype) -def ua_stkvar2(x, v, flags): - return cmd.create_stkvar(x, v, flags) -#</pycode_BC695(py_ua)> diff --git a/pywraps/py_xref.hpp b/pywraps/py_xref.hpp index 07f4a8d..5622df1 100644 --- a/pywraps/py_xref.hpp +++ b/pywraps/py_xref.hpp @@ -71,7 +71,7 @@ cases_and_targets_t *py_calc_switch_cases( if ( !calc_switch_cases(&ct->cases, &ct->targets, ea, si) ) { delete ct; - return NULL; + return nullptr; } return ct; } diff --git a/pywraps/sidc.py b/pywraps/sidc.py deleted file mode 100644 index 383d0ce..0000000 --- a/pywraps/sidc.py +++ /dev/null @@ -1,312 +0,0 @@ -# @arnaud drop this file? - -# ---------------------------------------------------------------------- -# -# Misc constants -# -UA_MAXOP = 6 - -# ---------------------------------------------------------------------- -# instruc_t related constants - -# -# instruc_t.feature -# -CF_STOP = 0x00001 # Instruction doesn't pass execution to the next instruction -CF_CALL = 0x00002 # CALL instruction (should make a procedure here) -CF_CHG1 = 0x00004 # The instruction modifies the first operand -CF_CHG2 = 0x00008 # The instruction modifies the second operand -CF_CHG3 = 0x00010 # The instruction modifies the third operand -CF_CHG4 = 0x00020 # The instruction modifies 4 operand -CF_CHG5 = 0x00040 # The instruction modifies 5 operand -CF_CHG6 = 0x00080 # The instruction modifies 6 operand -CF_USE1 = 0x00100 # The instruction uses value of the first operand -CF_USE2 = 0x00200 # The instruction uses value of the second operand -CF_USE3 = 0x00400 # The instruction uses value of the third operand -CF_USE4 = 0x00800 # The instruction uses value of the 4 operand -CF_USE5 = 0x01000 # The instruction uses value of the 5 operand -CF_USE6 = 0x02000 # The instruction uses value of the 6 operand -CF_JUMP = 0x04000 # The instruction passes execution using indirect jump or call (thus needs additional analysis) -CF_SHFT = 0x08000 # Bit-shift instruction (shl,shr...) -CF_HLL = 0x10000 # Instruction may be present in a high level language function. - -# ---------------------------------------------------------------------- -# op_t related constants - -# -# op_t.type -# Description Data field -o_void = 0 # No Operand ---------- -o_reg = 1 # General Register (al,ax,es,ds...) reg -o_mem = 2 # Direct Memory Reference (DATA) addr -o_phrase = 3 # Memory Ref [Base Reg + Index Reg] phrase -o_displ = 4 # Memory Reg [Base Reg + Index Reg + Displacement] phrase+addr -o_imm = 5 # Immediate Value value -o_far = 6 # Immediate Far Address (CODE) addr -o_near = 7 # Immediate Near Address (CODE) addr -o_idpspec0 = 8 # Processor specific type -o_idpspec1 = 9 # Processor specific type -o_idpspec2 = 10 # Processor specific type -o_idpspec3 = 11 # Processor specific type -o_idpspec4 = 12 # Processor specific type -o_idpspec5 = 13 # Processor specific type - # There can be more processor specific types - -# -# op_t.dtype -# -dt_byte = 0 # 8 bit -dt_word = 1 # 16 bit -dt_dword = 2 # 32 bit -dt_float = 3 # 4 byte floating point -dt_double = 4 # 8 byte floating point -dt_tbyte = 5 # variable size (ph.tbyte_size) floating point -dt_packreal = 6 # packed real format for mc68040 -dt_qword = 7 # 64 bit -dt_byte16 = 8 # 128 bit -dt_code = 9 # ptr to code (not used?) -dt_void = 10 # none -dt_fword = 11 # 48 bit -dt_bitfild = 12 # bit field (mc680x0) -dt_string = 13 # pointer to asciiz string -dt_unicode = 14 # pointer to unicode string -dt_ldbl = 15 # long double (which may be different from tbyte) -dt_byte32 = 16 # 256 bit -dt_byte64 = 17 # 512 bit -dt_half = 18 # 2 byte floating point - -# -# op_t.flags -# -OF_NO_BASE_DISP = 0x80 # o_displ: base displacement doesn't exist meaningful only for o_displ type if set, base displacement (x.addr) doesn't exist. -OF_OUTER_DISP = 0x40 # o_displ: outer displacement exists meaningful only for o_displ type if set, outer displacement (x.value) exists. -PACK_FORM_DEF = 0x20 # !o_reg + dt_packreal: packed factor defined -OF_NUMBER = 0x10 # can be output as number only if set, the operand can be converted to a number only -OF_SHOW = 0x08 # should the operand be displayed? if clear, the operand is hidden and should not be displayed - -# -# insn_t.flags -# -INSN_MACRO = 0x01 # macro instruction -INSN_MODMAC = 0x02 # macros: may modify the database to make room for the macro insn - -# ---------------------------------------------------------------------- -# asm_t related constants - -# -# asm_t.flag -# -AS_OFFST = 0x00000001 # offsets are 'offset xxx' ? -AS_COLON = 0x00000002 # create colons after data names ? -AS_UDATA = 0x00000004 # can use '?' in data directives - -AS_2CHRE = 0x00000008 # double char constants are: "xy -AS_NCHRE = 0x00000010 # char constants are: 'x -AS_N2CHR = 0x00000020 # can't have 2 byte char consts - - # ASCII directives: -AS_1TEXT = 0x00000040 # 1 text per line, no bytes -AS_NHIAS = 0x00000080 # no characters with high bit -AS_NCMAS = 0x00000100 # no commas in ascii directives - -AS_HEXFM = 0x00000E00 # format of hex numbers: -ASH_HEXF0 = 0x00000000 # 34h -ASH_HEXF1 = 0x00000200 # h'34 -ASH_HEXF2 = 0x00000400 # 34 -ASH_HEXF3 = 0x00000600 # 0x34 -ASH_HEXF4 = 0x00000800 # $34 -ASH_HEXF5 = 0x00000A00 # <^R > (radix) -AS_DECFM = 0x00003000 # format of dec numbers: -ASD_DECF0 = 0x00000000 # 34 -ASD_DECF1 = 0x00001000 # #34 -ASD_DECF2 = 0x00002000 # 34. -ASD_DECF3 = 0x00003000 # .34 -AS_OCTFM = 0x0001C000 # format of octal numbers: -ASO_OCTF0 = 0x00000000 # 123o -ASO_OCTF1 = 0x00004000 # 0123 -ASO_OCTF2 = 0x00008000 # 123 -ASO_OCTF3 = 0x0000C000 # @123 -ASO_OCTF4 = 0x00010000 # o'123 -ASO_OCTF5 = 0x00014000 # 123q -ASO_OCTF6 = 0x00018000 # ~123 -AS_BINFM = 0x000E0000 # format of binary numbers: -ASB_BINF0 = 0x00000000 # 010101b -ASB_BINF1 = 0x00020000 # ^B010101 -ASB_BINF2 = 0x00040000 # %010101 -ASB_BINF3 = 0x00060000 # 0b1010101 -ASB_BINF4 = 0x00080000 # b'1010101 -ASB_BINF5 = 0x000A0000 # b'1010101' - -AS_UNEQU = 0x00100000 # replace undefined data items - # with EQU (for ANTA's A80) -AS_ONEDUP = 0x00200000 # One array definition per line -AS_NOXRF = 0x00400000 # Disable xrefs during the output file generation -AS_XTRNTYPE = 0x00800000 # Assembler understands type of extrn - # symbols as ":type" suffix -AS_RELSUP = 0x01000000 # Checkarg: 'and','or','xor' operations - # with addresses are possible -AS_LALIGN = 0x02000000 # Labels at "align" keyword - # are supported. -AS_NOCODECLN = 0x04000000 # don't create colons after code names -AS_NOTAB = 0x08000000 # Disable tabulation symbols during the output file generation -AS_NOSPACE = 0x10000000 # No spaces in expressions -AS_ALIGN2 = 0x20000000 # .align directive expects an exponent rather than a power of 2 - # (.align 5 means to align at 32byte boundary) -AS_ASCIIC = 0x40000000 # ascii directive accepts C-like - # escape sequences (\n,\x01 and similar) -AS_ASCIIZ = 0x80000000 # ascii directive inserts implicit - # zero byte at the end - -# ---------------------------------------------------------------------- -# processor_t related constants - -IDP_INTERFACE_VERSION = 76 -CUSTOM_INSN_ITYPE = 0x8000 -REG_SPOIL = 0x80000000 - -REAL_ERROR_FORMAT = -1 # not supported format for current .idp -REAL_ERROR_RANGE = -2 # number too big (small) for store (mem NOT modifyed) -REAL_ERROR_BADDATA = -3 # illegal real data for load (IEEE data not filled) - -# -# Check whether the operand is relative to stack pointer or frame pointer. -# This function is used to determine how to output a stack variable -# This function may be absent. If it is absent, then all operands -# are sp based by default. -# Define this function only if some stack references use frame pointer -# instead of stack pointer. -# returns flags: -OP_FP_BASED = 0x00000000 # operand is FP based -OP_SP_BASED = 0x00000001 # operand is SP based -OP_SP_ADD = 0x00000000 # operand value is added to the pointer -OP_SP_SUB = 0x00000002 # operand value is substracted from the pointer - -# -# processor_t.flag -# -PR_SEGS = 0x000001 # has segment registers? -PR_USE32 = 0x000002 # supports 32-bit addressing? -PR_DEFSEG32 = 0x000004 # segments are 32-bit by default -PR_RNAMESOK = 0x000008 # allow to user register names for location names -PR_ADJSEGS = 0x000020 # IDA may adjust segments moving their starting/ending addresses. -PR_DEFNUM = 0x0000C0 # default number representation: -PRN_HEX = 0x000000 # hex -PRN_OCT = 0x000040 # octal -PRN_DEC = 0x000080 # decimal -PRN_BIN = 0x0000C0 # binary -PR_WORD_INS = 0x000100 # instruction codes are grouped 2bytes in binrary line prefix -PR_NOCHANGE = 0x000200 # The user can't change segments and code/data attributes (display only) -PR_ASSEMBLE = 0x000400 # Module has a built-in assembler and understands IDP_ASSEMBLE -PR_ALIGN = 0x000800 # All data items should be aligned properly -PR_TYPEINFO = 0x001000 # the processor module supports - # type information callbacks - # ALL OF THEM SHOULD BE IMPLEMENTED! -PR_USE64 = 0x002000 # supports 64-bit addressing? -PR_SGROTHER = 0x004000 # the segment registers don't contain - # the segment selectors, something else -PR_STACK_UP = 0x008000 # the stack grows up -PR_BINMEM = 0x010000 # the processor module provides correct - # segmentation for binary files - # (i.e. it creates additional segments) - # The kernel will not ask the user - # to specify the RAM/ROM sizes -PR_SEGTRANS = 0x020000 # the processor module supports - # the segment translation feature - # (it means it calculates the code - # addresses using the map_code_ea() function) -PR_CHK_XREF = 0x040000 # don't allow near xrefs between segments - # with different bases -PR_NO_SEGMOVE = 0x080000 # the processor module doesn't support move_segm() - # (i.e. the user can't move segments) -PR_USE_ARG_TYPES = 0x200000 # use ph.use_arg_types callback -PR_SCALE_STKVARS = 0x400000 # use ph.get_stkvar_scale callback -PR_DELAYED = 0x800000 # has delayed jumps and calls -PR_ALIGN_INSN = 0x1000000 # allow ida to create alignment instructions - # arbirtrarily. Since these instructions - # might lead to other wrong instructions - # and spoil the listing, IDA does not create - # them by default anymore -PR_PURGING = 0x2000000 # there are calling conventions which may - # purge bytes from the stack -PR_CNDINSNS = 0x4000000 # has conditional instructions -PR_USE_TBYTE = 0x8000000 # BTMT_SPECFLT means _TBYTE type -PR_DEFSEG64 = 0x10000000 # segments are 64-bit by default - -# ---------------------------------------------------------------------- -OOF_SIGNMASK = 0x0003 # sign symbol (+/-) output: -OOFS_IFSIGN = 0x0000 # output sign if needed -OOFS_NOSIGN = 0x0001 # don't output sign, forbid the user to change the sign -OOFS_NEEDSIGN = 0x0002 # always out sign (+-) -OOF_SIGNED = 0x0004 # output as signed if < 0 -OOF_NUMBER = 0x0008 # always as a number -OOF_WIDTHMASK = 0x0070 # width of value in bits: -OOFW_IMM = 0x0000 # take from x.dtype -OOFW_8 = 0x0010 # 8 bit width -OOFW_16 = 0x0020 # 16 bit width -OOFW_24 = 0x0030 # 24 bit width -OOFW_32 = 0x0040 # 32 bit width -OOFW_64 = 0x0050 # 32 bit width -OOF_ADDR = 0x0080 # output x.addr, otherwise x.value -OOF_OUTER = 0x0100 # output outer operand -OOF_ZSTROFF = 0x0200 # meaningful only if is_stroff(uFlag) - # append a struct field name if - # the field offset is zero? - # if AFL_ZSTROFF is set, then this flag - # is ignored. -OOF_NOBNOT = 0x0400 # prohibit use of binary not -OOF_SPACES = 0x0800 # do not suppress leading spaces - # currently works only for floating point numbers - - -# ---------------------------------------------------------------------- -class insn_t(object): - def __init__(self, noperands = UA_MAXOP): - self.auxpref = 0 - self.cs = 0 - self.ea = 0 - self.flags = 0 - self.insnpref = 0 - self.ip = 0 - self.itype = 0 - self.n = 0 - self.segpref = 0 - self.size = 0 - self.ops = [] - - # store the number of operands - self.n = noperands - - # create operands - for i in range(0, noperands): - op = op_t() - op.n = i - self.ops.append(op) - setattr(self, 'Op%d' % (i+1), op) - def __getitem__(self, i): - return self.ops[i] - -# ---------------------------------------------------------------------- -class op_t(object): - def __init__(self): - self.addr = 0 - self.dtype = 0 - self.flags = 0 - self.n = 0 - self.offb = 0 - self.offo = 0 - self.reg = 0 - self.specval = 0 - self.specflag1 = 0 - self.specflag2 = 0 - self.specflag3 = 0 - self.specflag4 = 0 - self.type = 0 - self.value = 0 - - # make sure reg and phrase have the same value - def __setattr__(self, name, value): - if name == 'reg' or name == 'phrase': - object.__setattr__(self, 'reg', value) - object.__setattr__(self, 'phrase', value) - else: - object.__setattr__(self, name, value) diff --git a/release_api_contents3.txt b/release_api_contents3.txt index 21114b2..1038360 100644 --- a/release_api_contents3.txt +++ b/release_api_contents3.txt @@ -22,6 +22,7 @@ 'DBG_Hooks_dbg_trace', 'DBG_Hooks_hook', 'DBG_Hooks_unhook', + 'Hexrays_Hooks_build_callinfo', 'Hexrays_Hooks_close_pseudocode', 'Hexrays_Hooks_cmt_changed', 'Hexrays_Hooks_combine', @@ -55,6 +56,7 @@ 'Hexrays_Hooks_switch_pseudocode', 'Hexrays_Hooks_text_ready', 'Hexrays_Hooks_unhook', + 'IDB_Hooks_adding_segm', 'IDB_Hooks_allsegs_moved', 'IDB_Hooks_auto_empty', 'IDB_Hooks_auto_empty_finally', @@ -88,19 +90,30 @@ 'IDB_Hooks_deleting_tryblks', 'IDB_Hooks_destroyed_items', 'IDB_Hooks_determined_main', + 'IDB_Hooks_dirtree_link', + 'IDB_Hooks_dirtree_mkdir', + 'IDB_Hooks_dirtree_move', + 'IDB_Hooks_dirtree_rank', + 'IDB_Hooks_dirtree_rmdir', + 'IDB_Hooks_dirtree_rminode', + 'IDB_Hooks_dirtree_segm_moved', 'IDB_Hooks_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', 'IDB_Hooks_flow_chart_created', 'IDB_Hooks_frame_deleted', 'IDB_Hooks_func_added', + 'IDB_Hooks_func_deleted', 'IDB_Hooks_func_noret_changed', 'IDB_Hooks_func_tail_appended', 'IDB_Hooks_func_tail_deleted', @@ -158,7 +171,9 @@ 'IDP_Hooks_ev_adjust_refinfo', 'IDP_Hooks_ev_ana_insn', 'IDP_Hooks_ev_analyze_prolog', + 'IDP_Hooks_ev_arch_changed', 'IDP_Hooks_ev_arg_addrs_ready', + 'IDP_Hooks_ev_asm_installed', 'IDP_Hooks_ev_assemble', 'IDP_Hooks_ev_auto_queue_empty', 'IDP_Hooks_ev_calc_arglocs', @@ -178,6 +193,7 @@ 'IDP_Hooks_ev_coagulate_dref', 'IDP_Hooks_ev_create_flat_group', 'IDP_Hooks_ev_create_func_frame', + 'IDP_Hooks_ev_create_merge_handlers', 'IDP_Hooks_ev_create_switch_xrefs', 'IDP_Hooks_ev_creating_segm', 'IDP_Hooks_ev_decorate_name', @@ -208,10 +224,12 @@ 'IDP_Hooks_ev_get_frame_retsize', 'IDP_Hooks_ev_get_macro_insn_head', 'IDP_Hooks_ev_get_operand_string', + 'IDP_Hooks_ev_get_procmod', + 'IDP_Hooks_ev_get_reg_accesses', 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -221,6 +239,7 @@ 'IDP_Hooks_ev_is_basic_block_end', 'IDP_Hooks_ev_is_call_insn', 'IDP_Hooks_ev_is_cond_insn', + 'IDP_Hooks_ev_is_control_flow_guard', 'IDP_Hooks_ev_is_far_jump', 'IDP_Hooks_ev_is_indirect_jump', 'IDP_Hooks_ev_is_insn_table_jump', @@ -253,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -260,11 +280,11 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', 'IDP_Hooks_ev_undefine', + 'IDP_Hooks_ev_update_call_stack', 'IDP_Hooks_ev_use_arg_types', 'IDP_Hooks_ev_use_regarg_type', 'IDP_Hooks_ev_use_stkarg_type', @@ -285,17 +305,23 @@ 'TWidget__from_ptrval__', 'UI_Hooks_create_desktop_widget', 'UI_Hooks_current_widget_changed', + 'UI_Hooks_database_closed', 'UI_Hooks_database_inited', 'UI_Hooks_debugger_menu_change', + 'UI_Hooks_desktop_applied', + 'UI_Hooks_destroying_plugmod', + 'UI_Hooks_destroying_procmod', 'UI_Hooks_finish_populating_widget_popup', 'UI_Hooks_get_chooser_item_attrs', 'UI_Hooks_get_custom_viewer_hint', 'UI_Hooks_get_ea_hint', 'UI_Hooks_get_item_hint', + 'UI_Hooks_get_lines_rendering_info', 'UI_Hooks_get_widget_config', 'UI_Hooks_hook', 'UI_Hooks_idcstart', 'UI_Hooks_idcstop', + 'UI_Hooks_initing_database', 'UI_Hooks_plugin_loaded', 'UI_Hooks_plugin_unloading', 'UI_Hooks_populating_widget_popup', @@ -309,7 +335,6 @@ 'UI_Hooks_screen_ea_changed', 'UI_Hooks_set_widget_config', 'UI_Hooks_suspend', - 'UI_Hooks_term', 'UI_Hooks_unhook', 'UI_Hooks_updated_actions', 'UI_Hooks_updating_actions', @@ -336,7 +361,9 @@ '_ask_long__varargs__', '_ask_seg', '_ask_seg__varargs__', - '_kludge_use_TPopupMenu', + '_kludge_force_declare_TPopupMenu', + '_kludge_force_declare_dirspec_t', + '_kludge_force_declare_dirtree_t', '_ll_call_helper', '_ll_call_helper__varargs__', '_ll_create_helper', @@ -346,11 +373,35 @@ '_ll_make_num', '_ll_make_ref', '_ll_new_block', + 'abstract_graph_t_callback_ud_get', + 'abstract_graph_t_callback_ud_set', + 'abstract_graph_t_circle_center_get', + 'abstract_graph_t_circle_center_set', + 'abstract_graph_t_circle_radius_get', + 'abstract_graph_t_circle_radius_set', + 'abstract_graph_t_create_circle_layout', + 'abstract_graph_t_create_tree_layout', + 'abstract_graph_t_current_layout_get', + 'abstract_graph_t_current_layout_set', + 'abstract_graph_t_get_edge', + 'abstract_graph_t_grcall', + 'abstract_graph_t_grcall__varargs__', + 'abstract_graph_t_nrect', + 'abstract_graph_t_rect_edges_made_get', + 'abstract_graph_t_rect_edges_made_set', + 'abstract_graph_t_set_callback', + 'abstract_graph_t_title_get', + 'abstract_graph_t_title_set', 'accepts_small_udts', 'accepts_udts', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', + 'action_ctx_base_cur_sel_t__from_get', + 'action_ctx_base_cur_sel_t__from_set', + 'action_ctx_base_cur_sel_t_reset', + 'action_ctx_base_cur_sel_t_to_get', + 'action_ctx_base_cur_sel_t_to_set', + 'action_ctx_base_source_t_chooser_get', + 'action_ctx_base_source_t_chooser_set', + 'action_ctx_base_source_t_reset', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -358,6 +409,8 @@ 'action_ctx_base_t_cur_ea_get', 'action_ctx_base_t_cur_ea_set', 'action_ctx_base_t_cur_enum_get', + 'action_ctx_base_t_cur_enum_member_get', + 'action_ctx_base_t_cur_enum_member_set', 'action_ctx_base_t_cur_enum_set', 'action_ctx_base_t_cur_fchunk_get', 'action_ctx_base_t_cur_fchunk_set', @@ -367,12 +420,16 @@ 'action_ctx_base_t_cur_func_set', 'action_ctx_base_t_cur_seg_get', 'action_ctx_base_t_cur_seg_set', + 'action_ctx_base_t_cur_sel_get', + 'action_ctx_base_t_cur_sel_set', 'action_ctx_base_t_cur_strmem_get', 'action_ctx_base_t_cur_strmem_set', 'action_ctx_base_t_cur_struc_get', 'action_ctx_base_t_cur_struc_set', 'action_ctx_base_t_cur_value_get', 'action_ctx_base_t_cur_value_set', + 'action_ctx_base_t_dirtree_selection_get', + 'action_ctx_base_t_dirtree_selection_set', 'action_ctx_base_t_focus_get', 'action_ctx_base_t_focus_set', 'action_ctx_base_t_graph_selection_get', @@ -381,6 +438,8 @@ 'action_ctx_base_t_regname_get', 'action_ctx_base_t_regname_set', 'action_ctx_base_t_reset', + 'action_ctx_base_t_source_get', + 'action_ctx_base_t_source_set', 'action_ctx_base_t_widget_get', 'action_ctx_base_t_widget_set', 'action_ctx_base_t_widget_title_get', @@ -505,6 +564,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -519,6 +580,7 @@ 'argloc_t_get_rrel__SWIG_1', 'argloc_t_has_reg', 'argloc_t_has_stkoff', + 'argloc_t_in_stack', 'argloc_t_is_badloc', 'argloc_t_is_custom', 'argloc_t_is_ea', @@ -530,8 +592,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -594,6 +654,12 @@ 'argpartvec_t_size', 'argpartvec_t_swap', 'argpartvec_t_truncate', + 'argtinfo_helper_t_has_delay_slot', + 'argtinfo_helper_t_is_stkarg_load', + 'argtinfo_helper_t_reserved_get', + 'argtinfo_helper_t_reserved_set', + 'argtinfo_helper_t_set_op_tinfo', + 'argtinfo_helper_t_use_arg_tinfos', 'array_of_bitsets___eq__', 'array_of_bitsets___getitem__', 'array_of_bitsets___len__', @@ -803,6 +869,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -861,6 +929,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -871,14 +940,11 @@ 'base2file', 'beep', 'begin_type_updating', - 'bgcolors_t_epilog_color_get', - 'bgcolors_t_epilog_color_set', - 'bgcolors_t_prolog_color_get', - 'bgcolors_t_prolog_color_set', - 'bgcolors_t_switch_color_get', - 'bgcolors_t_switch_color_set', 'bin_flag', 'bin_search', + 'bin_search3', + 'bin_search__SWIG_0', + 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', 'bit_bound_t_nbits_set', 'bit_bound_t_sbits_get', @@ -897,6 +963,30 @@ 'bitfield_type_data_t_swap', 'bitfield_type_data_t_width_get', 'bitfield_type_data_t_width_set', + 'bitrange_t___eq__', + 'bitrange_t___ge__', + 'bitrange_t___gt__', + 'bitrange_t___le__', + 'bitrange_t___lt__', + 'bitrange_t___ne__', + 'bitrange_t___str__', + 'bitrange_t_apply_mask', + 'bitrange_t_bitoff', + 'bitrange_t_bitsize', + 'bitrange_t_bytesize', + 'bitrange_t_compare', + 'bitrange_t_create_union', + 'bitrange_t_empty', + 'bitrange_t_extract', + 'bitrange_t_has_common', + 'bitrange_t_init', + 'bitrange_t_inject', + 'bitrange_t_intersect', + 'bitrange_t_mask64', + 'bitrange_t_reset', + 'bitrange_t_shift_down', + 'bitrange_t_shift_up', + 'bitrange_t_sub', 'bitset_t___eq__', 'bitset_t___ge__', 'bitset_t___gt__', @@ -1003,6 +1093,7 @@ 'bookmarks_t_find_index', 'bookmarks_t_get', 'bookmarks_t_get_desc', + 'bookmarks_t_get_dirtree_id', 'bookmarks_t_mark', 'bookmarks_t_size', 'boolvec_t___eq__', @@ -1089,6 +1180,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1174,6 +1267,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1219,46 +1314,47 @@ 'call_stack_info_t_funcea_set', 'call_stack_info_t_funcok_get', 'call_stack_info_t_funcok_set', - 'call_stack_t___eq__', - 'call_stack_t___getitem__', - 'call_stack_t___len__', - 'call_stack_t___ne__', - 'call_stack_t___setitem__', - 'call_stack_t__del', - 'call_stack_t_add_unique', - 'call_stack_t_at', - 'call_stack_t_begin', - 'call_stack_t_begin__SWIG_0', - 'call_stack_t_begin__SWIG_1', - 'call_stack_t_capacity', - 'call_stack_t_clear', - 'call_stack_t_empty', - 'call_stack_t_end', - 'call_stack_t_end__SWIG_0', - 'call_stack_t_end__SWIG_1', - 'call_stack_t_erase', - 'call_stack_t_erase__SWIG_0', - 'call_stack_t_erase__SWIG_1', - 'call_stack_t_extract', - 'call_stack_t_find', - 'call_stack_t_find__SWIG_0', - 'call_stack_t_find__SWIG_1', - 'call_stack_t_grow', - 'call_stack_t_has', - 'call_stack_t_inject', - 'call_stack_t_insert', - 'call_stack_t_pop_back', - 'call_stack_t_push_back', - 'call_stack_t_push_back__SWIG_0', - 'call_stack_t_push_back__SWIG_1', - 'call_stack_t_qclear', - 'call_stack_t_reserve', - 'call_stack_t_resize', - 'call_stack_t_resize__SWIG_0', - 'call_stack_t_resize__SWIG_1', - 'call_stack_t_size', - 'call_stack_t_swap', - 'call_stack_t_truncate', + 'call_stack_info_vec_t___eq__', + 'call_stack_info_vec_t___getitem__', + 'call_stack_info_vec_t___len__', + 'call_stack_info_vec_t___ne__', + 'call_stack_info_vec_t___setitem__', + 'call_stack_info_vec_t__del', + 'call_stack_info_vec_t_add_unique', + 'call_stack_info_vec_t_at', + 'call_stack_info_vec_t_begin', + 'call_stack_info_vec_t_begin__SWIG_0', + 'call_stack_info_vec_t_begin__SWIG_1', + 'call_stack_info_vec_t_capacity', + 'call_stack_info_vec_t_clear', + 'call_stack_info_vec_t_empty', + 'call_stack_info_vec_t_end', + 'call_stack_info_vec_t_end__SWIG_0', + 'call_stack_info_vec_t_end__SWIG_1', + 'call_stack_info_vec_t_erase', + 'call_stack_info_vec_t_erase__SWIG_0', + 'call_stack_info_vec_t_erase__SWIG_1', + 'call_stack_info_vec_t_extract', + 'call_stack_info_vec_t_find', + 'call_stack_info_vec_t_find__SWIG_0', + 'call_stack_info_vec_t_find__SWIG_1', + 'call_stack_info_vec_t_grow', + 'call_stack_info_vec_t_has', + 'call_stack_info_vec_t_inject', + 'call_stack_info_vec_t_insert', + 'call_stack_info_vec_t_pop_back', + 'call_stack_info_vec_t_push_back', + 'call_stack_info_vec_t_push_back__SWIG_0', + 'call_stack_info_vec_t_push_back__SWIG_1', + 'call_stack_info_vec_t_qclear', + 'call_stack_info_vec_t_reserve', + 'call_stack_info_vec_t_resize', + 'call_stack_info_vec_t_resize__SWIG_0', + 'call_stack_info_vec_t_resize__SWIG_1', + 'call_stack_info_vec_t_size', + 'call_stack_info_vec_t_swap', + 'call_stack_info_vec_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1277,6 +1373,9 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', + 'cancellable_graph_t_cancelled_get', + 'cancellable_graph_t_cancelled_set', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1434,10 +1533,13 @@ 'cdg_insn_iterator_t_has_dslot', 'cdg_insn_iterator_t_is_likely_dslot_get', 'cdg_insn_iterator_t_is_likely_dslot_set', - 'cdg_insn_iterator_t_is_separate_dslot_get', - 'cdg_insn_iterator_t_is_separate_dslot_set', + 'cdg_insn_iterator_t_is_severed_dslot', + 'cdg_insn_iterator_t_mba_get', + 'cdg_insn_iterator_t_mba_set', 'cdg_insn_iterator_t_next', 'cdg_insn_iterator_t_ok', + 'cdg_insn_iterator_t_severed_branch_get', + 'cdg_insn_iterator_t_severed_branch_set', 'cdg_insn_iterator_t_start', 'cdo_t___eq__', 'cdo_t___ge__', @@ -1586,6 +1688,7 @@ 'cfunc_t_has_orphan_cmts', 'cfunc_t_hdrlines_get', 'cfunc_t_hdrlines_set', + 'cfunc_t_locked', 'cfunc_t_maturity_get', 'cfunc_t_maturity_set', 'cfunc_t_mba_get', @@ -1650,6 +1753,7 @@ 'cfuncptr_t_has_orphan_cmts', 'cfuncptr_t_hdrlines_get', 'cfuncptr_t_hdrlines_set', + 'cfuncptr_t_locked', 'cfuncptr_t_maturity_get', 'cfuncptr_t_maturity_set', 'cfuncptr_t_mba_get', @@ -1761,6 +1865,8 @@ 'choose_func', 'choose_get_widget', 'choose_idasgn', + 'choose_ioport_device2', + 'choose_ioport_parser_t_parse', 'choose_local_tinfo', 'choose_local_tinfo_and_delta', 'choose_name', @@ -1773,11 +1879,58 @@ 'choose_til', 'choose_trace_file', 'choose_xref', + 'chooser_base_t_ask_item_attrs', + 'chooser_base_t_can_del', + 'chooser_base_t_can_edit', + 'chooser_base_t_can_filter', + 'chooser_base_t_can_ins', + 'chooser_base_t_can_refresh', + 'chooser_base_t_can_sort', + 'chooser_base_t_columns_get', + 'chooser_base_t_deflt_col_get', + 'chooser_base_t_get_builtin_number', + 'chooser_base_t_get_count', + 'chooser_base_t_get_ea', + 'chooser_base_t_get_quick_filter_initial_mode', + 'chooser_base_t_get_row', + 'chooser_base_t_has_diff_capability', + 'chooser_base_t_has_dirtree', + 'chooser_base_t_header_get', + 'chooser_base_t_height_get', + 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', + 'chooser_base_t_is_force_default', + 'chooser_base_t_is_modal', + 'chooser_base_t_is_multi', + 'chooser_base_t_is_noidb', + 'chooser_base_t_is_quick_filter_visible_initially', + 'chooser_base_t_is_same', + 'chooser_base_t_is_status_bar_hidden', + 'chooser_base_t_popup_allowed', + 'chooser_base_t_popup_names_get', + 'chooser_base_t_should_rename_trigger_edit', + 'chooser_base_t_should_restore_geometry', + 'chooser_base_t_title_get', + 'chooser_base_t_width_get', + 'chooser_base_t_widths_get', + 'chooser_base_t_x0_get', + 'chooser_base_t_x1_get', + 'chooser_base_t_y0_get', + 'chooser_base_t_y1_get', 'chooser_item_attrs_t_color_get', 'chooser_item_attrs_t_color_set', 'chooser_item_attrs_t_flags_get', 'chooser_item_attrs_t_flags_set', 'chooser_item_attrs_t_reset', + 'chooser_stdact_desc_t_icon_get', + 'chooser_stdact_desc_t_icon_set', + 'chooser_stdact_desc_t_label_get', + 'chooser_stdact_desc_t_label_set', + 'chooser_stdact_desc_t_tooltip_get', + 'chooser_stdact_desc_t_tooltip_set', + 'chooser_stdact_desc_t_ucb', + 'chooser_stdact_desc_t_version_get', + 'chooser_stdact_desc_t_version_set', 'chunk_size', 'chunk_start', 'cif_t___eq__', @@ -1793,6 +1946,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -1914,7 +2105,6 @@ 'citem_t_swap', 'cleanup_appcall', 'cleanup_name', - 'clear_bits', 'clear_cached_cfuncs', 'clear_refresh_request', 'clear_requests_queue', @@ -1926,6 +2116,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1986,17 +2177,73 @@ 'codegen_t_ii_set', 'codegen_t_insn_get', 'codegen_t_insn_set', + 'codegen_t_load_effective_address', 'codegen_t_load_operand', 'codegen_t_mb_get', 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', + 'codegen_t_prepare_gen_micro', + 'codegen_t_store_operand', 'collect_stack_trace', 'compact_til', 'compare_tinfo', 'compile_idc_file', 'compile_idc_snippet', 'compile_idc_text', + 'compiled_binpat_t___eq__', + 'compiled_binpat_t___ne__', + 'compiled_binpat_t_all_bytes_defined', + 'compiled_binpat_t_bytes_get', + 'compiled_binpat_t_bytes_set', + 'compiled_binpat_t_encidx_get', + 'compiled_binpat_t_encidx_set', + 'compiled_binpat_t_mask_get', + 'compiled_binpat_t_mask_set', + 'compiled_binpat_t_qclear', + 'compiled_binpat_t_strlits_get', + 'compiled_binpat_t_strlits_set', + 'compiled_binpat_vec_t___eq__', + 'compiled_binpat_vec_t___getitem__', + 'compiled_binpat_vec_t___len__', + 'compiled_binpat_vec_t___ne__', + 'compiled_binpat_vec_t___setitem__', + 'compiled_binpat_vec_t__del', + 'compiled_binpat_vec_t_add_unique', + 'compiled_binpat_vec_t_at', + 'compiled_binpat_vec_t_begin', + 'compiled_binpat_vec_t_begin__SWIG_0', + 'compiled_binpat_vec_t_begin__SWIG_1', + 'compiled_binpat_vec_t_capacity', + 'compiled_binpat_vec_t_clear', + 'compiled_binpat_vec_t_empty', + 'compiled_binpat_vec_t_end', + 'compiled_binpat_vec_t_end__SWIG_0', + 'compiled_binpat_vec_t_end__SWIG_1', + 'compiled_binpat_vec_t_erase', + 'compiled_binpat_vec_t_erase__SWIG_0', + 'compiled_binpat_vec_t_erase__SWIG_1', + 'compiled_binpat_vec_t_extract', + 'compiled_binpat_vec_t_find', + 'compiled_binpat_vec_t_find__SWIG_0', + 'compiled_binpat_vec_t_find__SWIG_1', + 'compiled_binpat_vec_t_grow', + 'compiled_binpat_vec_t_has', + 'compiled_binpat_vec_t_inject', + 'compiled_binpat_vec_t_insert', + 'compiled_binpat_vec_t_pop_back', + 'compiled_binpat_vec_t_push_back', + 'compiled_binpat_vec_t_push_back__SWIG_0', + 'compiled_binpat_vec_t_push_back__SWIG_1', + 'compiled_binpat_vec_t_qclear', + 'compiled_binpat_vec_t_reserve', + 'compiled_binpat_vec_t_resize', + 'compiled_binpat_vec_t_resize__SWIG_0', + 'compiled_binpat_vec_t_resize__SWIG_1', + 'compiled_binpat_vec_t_size', + 'compiled_binpat_vec_t_swap', + 'compiled_binpat_vec_t_truncate', 'compiler_info_t_cm_get', 'compiler_info_t_cm_set', 'compiler_info_t_defalign_get', @@ -2019,6 +2266,7 @@ 'compiler_info_t_size_s_set', 'const_aloc_visitor_t_visit_location', 'construct_macro', + 'construct_macro2', 'contains_fixups', 'continue_process', 'convert_pt_flags_to_hti', @@ -2032,6 +2280,7 @@ 'create_align', 'create_byte', 'create_bytearray_linput', + 'create_cfunc', 'create_code_viewer', 'create_custdata', 'create_data', @@ -2051,12 +2300,15 @@ 'create_memory_linput', 'create_menu', 'create_mutable_graph', + 'create_nodeval_merge_handler', + 'create_nodeval_merge_handlers', 'create_numbered_type_name', 'create_outctx', 'create_oword', 'create_packed_real', 'create_qword', 'create_source_viewer', + 'create_std_modmerge_handlers', 'create_strlit', 'create_struct', 'create_switch_table', @@ -2119,11 +2371,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2164,6 +2426,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2191,12 +2454,16 @@ 'custom_data_type_ids_fids_array___getitem__', 'custom_data_type_ids_fids_array___len__', 'custom_data_type_ids_fids_array___setitem__', + 'custom_data_type_ids_fids_array__get_bytes', + 'custom_data_type_ids_fids_array__set_bytes', 'custom_data_type_ids_fids_array_data_get', 'custom_data_type_ids_t___getFids', 'custom_data_type_ids_t_dtid_get', 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', + 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2360,6 +2627,7 @@ 'del_tinfo_attr', 'del_tryblks', 'del_value', + 'del_vftable_ea', 'del_virt_module', 'delay_slot_insn', 'delete_DBG_Hooks', @@ -2373,6 +2641,9 @@ 'delete___qsemaphore_t', 'delete___qthread_t', 'delete___qtimer_t', + 'delete_abstract_graph_t', + 'delete_action_ctx_base_cur_sel_t', + 'delete_action_ctx_base_source_t', 'delete_action_ctx_base_t', 'delete_action_desc_t', 'delete_addon_info_t', @@ -2380,6 +2651,7 @@ 'delete_argloc_t', 'delete_argpart_t', 'delete_argpartvec_t', + 'delete_argtinfo_helper_t', 'delete_array_of_bitsets', 'delete_array_of_ivlsets', 'delete_array_of_rangesets', @@ -2387,9 +2659,9 @@ 'delete_array_type_data_t', 'delete_asm_t', 'delete_auto_display_t', - 'delete_bgcolors_t', 'delete_bit_bound_t', 'delete_bitfield_type_data_t', + 'delete_bitrange_t', 'delete_bitset_t', 'delete_block_chains_iterator_t', 'delete_block_chains_t', @@ -2401,9 +2673,12 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', + 'delete_call_stack_info_vec_t', 'delete_call_stack_t', 'delete_callregs_t', + 'delete_cancellable_graph_t', 'delete_carg_t', 'delete_carglist_t', 'delete_cases_and_targets_t', @@ -2427,8 +2702,12 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', + 'delete_chooser_stdact_desc_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2437,6 +2716,8 @@ 'delete_cloop_t', 'delete_cnumber_t', 'delete_codegen_t', + 'delete_compiled_binpat_t', + 'delete_compiled_binpat_vec_t', 'delete_compiler_info_t', 'delete_const_aloc_visitor_t', 'delete_creturn_t', @@ -2454,8 +2735,23 @@ 'delete_data_type_t', 'delete_debapp_attrs_t', 'delete_debug_event_t', + 'delete_direntry_t', + 'delete_direntry_vec_t', + 'delete_dirspec_t', + 'delete_dirtree_cursor_t', + 'delete_dirtree_cursor_vec_t', + 'delete_dirtree_iterator_t', + 'delete_dirtree_selection_t', + 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', + 'delete_dyn_ea_array', + 'delete_dyn_member_ref_array', + 'delete_dyn_range_array', + 'delete_dyn_regarg_array', + 'delete_dyn_regvar_array', + 'delete_dyn_stkpnt_array', 'delete_ea_array', 'delete_ea_name_t', 'delete_ea_name_vec_t', @@ -2477,10 +2773,12 @@ 'delete_excinfo_t', 'delete_excvec_t', 'delete_extra_cmts', + 'delete_file_enumerator_t', 'delete_fixup_data_t', 'delete_fixup_info_t', - 'delete_fnum_array', 'delete_fnumber_t', + 'delete_fpvalue_shorts_array_t', + 'delete_fpvalue_t', 'delete_func_item_iterator_t', 'delete_func_parent_iterator_t', 'delete_func_t', @@ -2489,6 +2787,7 @@ 'delete_funcarg_t', 'delete_funcargvec_t', 'delete_gco_info_t', + 'delete_gdl_graph_t', 'delete_generic_linput_t', 'delete_graph_chains_t', 'delete_graph_item_t', @@ -2506,28 +2805,41 @@ 'delete_history_t', 'delete_ida_lowertype_helper_t', 'delete_idaplace_t', + 'delete_idbattr_info_t', + 'delete_idbattr_valmap_t', 'delete_idc_global_t', 'delete_idc_value_t', 'delete_idc_values_t', 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_insn_t', 'delete_instant_dbgopts_t', + 'delete_int64vec_t', 'delete_int_pointer', 'delete_interval_t', 'delete_intvec_t', + 'delete_ioports_fallback_t', + 'delete_item_block_locator_t', + 'delete_iterator', 'delete_ivl_t', 'delete_ivl_with_name_t', 'delete_ivlset_t', - 'delete_llabel_t', + 'delete_line_rendering_output_entries_refs_t', + 'delete_line_rendering_output_entry_t', + 'delete_linearray_t', + 'delete_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', 'delete_lochist_t', 'delete_lock_func', 'delete_lock_segment', - 'delete_longlongvec_t', 'delete_lowertype_helper_t', 'delete_lvar_locator_t', 'delete_lvar_mapping_iterator_t', @@ -2538,9 +2850,10 @@ 'delete_lvar_t', 'delete_lvar_uservec_t', 'delete_lvars_t', + 'delete_macro_constructor_t', 'delete_mba_range_iterator_t', 'delete_mba_ranges_t', - 'delete_mbl_array_t', + 'delete_mba_t', 'delete_mblock_t', 'delete_mcallarg_t', 'delete_mcallargs_t', @@ -2552,12 +2865,16 @@ 'delete_memreg_info_t', 'delete_memreg_infos_t', 'delete_menu', + 'delete_merge_handler_params_t', + 'delete_merge_node_helper_t', + 'delete_merge_node_info_t', 'delete_microcode_filter_t', 'delete_minsn_t', 'delete_minsn_visitor_t', 'delete_mlist_mop_visitor_t', 'delete_mlist_t', 'delete_mnumber_t', + 'delete_moddata_diff_helper_t', 'delete_modinfo_t', 'delete_mop_addr_t', 'delete_mop_pair_t', @@ -2571,15 +2888,17 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', + 'delete_octet_generator_t', 'delete_op_parent_info_t', 'delete_op_t', 'delete_operand_locator_t', 'delete_operands_array', - 'delete_operator_info_t', 'delete_opinfo_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_place_t', 'delete_plugin_info_t', 'delete_point_t', @@ -2593,8 +2912,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2602,13 +2919,15 @@ 'delete_qvector_history_t', 'delete_qvector_lvar_t', 'delete_qvector_snapshotvec_t', - 'delete_range_array', 'delete_range_t', 'delete_rangeset_t', 'delete_rangevec_base_t', 'delete_rangevec_t', 'delete_rect_t', 'delete_refinfo_t', + 'delete_reg_access_t', + 'delete_reg_access_vec_t', + 'delete_reg_accesses_t', 'delete_reg_info_t', 'delete_regarg_t', 'delete_reginfovec_t', @@ -2617,7 +2936,6 @@ 'delete_regobjs_t', 'delete_regobjvec_t', 'delete_regval_t', - 'delete_regvar_array', 'delete_regvar_t', 'delete_renderer_info_pos_t', 'delete_renderer_info_t', @@ -2631,9 +2949,12 @@ 'delete_scif_visitor_t', 'delete_screen_graph_selection_base_t', 'delete_screen_graph_selection_t', + 'delete_section_lines_refs_t', + 'delete_sections_lines_refs_t', 'delete_segm_move_info_t', 'delete_segm_move_info_vec_t', 'delete_segm_move_infos_t', + 'delete_segment_defsr_array', 'delete_segment_t', 'delete_seh_t', 'delete_sel_array', @@ -2645,7 +2966,7 @@ 'delete_sizevec_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2662,12 +2983,15 @@ 'delete_switch_info_t', 'delete_switch_table', 'delete_sync_source_t', + 'delete_sync_source_vec_t', + 'delete_synced_group_t', 'delete_tev_info_reg_t', 'delete_tev_info_t', 'delete_tev_reg_value_t', 'delete_tev_reg_values_t', 'delete_tevinforeg_vec_t', 'delete_text_sink_t', + 'delete_text_t', 'delete_thread_name_t', 'delete_tid_array', 'delete_til_symbol_t', @@ -2679,6 +3003,7 @@ 'delete_try_handler_t', 'delete_tryblk_t', 'delete_tryblks_t', + 'delete_twinline_t', 'delete_twinpos_t', 'delete_type_attr_t', 'delete_type_attrs_t', @@ -2691,15 +3016,17 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', 'delete_ui_stroff_ops_t', + 'delete_uint64vec_t', 'delete_uintvec_t', - 'delete_ulonglongvec_t', 'delete_unreferenced_stkvars', 'delete_user_cmts_iterator_t', 'delete_user_cmts_t', + 'delete_user_defined_prefix_t', 'delete_user_graph_place_t', 'delete_user_iflags_iterator_t', 'delete_user_iflags_t', @@ -2732,16 +3059,173 @@ 'delete_xrefblk_t', 'delete_xreflist_entry_t', 'delete_xreflist_t', + 'delinf', 'demangle_name', 'deref_idcv', 'deref_ptr', 'deserialize_tinfo', + 'destroy_moddata_merge_handlers', 'detach_action_from_menu', 'detach_action_from_popup', 'detach_action_from_toolbar', 'detach_custom_data_format', 'detach_process', 'diff_trace_file', + 'direntry_t___eq__', + 'direntry_t___lt__', + 'direntry_t___ne__', + 'direntry_t_idx_get', + 'direntry_t_idx_set', + 'direntry_t_isdir_get', + 'direntry_t_isdir_set', + 'direntry_t_valid', + 'direntry_vec_t___eq__', + 'direntry_vec_t___getitem__', + 'direntry_vec_t___len__', + 'direntry_vec_t___ne__', + 'direntry_vec_t___setitem__', + 'direntry_vec_t__del', + 'direntry_vec_t_add_unique', + 'direntry_vec_t_at', + 'direntry_vec_t_begin', + 'direntry_vec_t_begin__SWIG_0', + 'direntry_vec_t_begin__SWIG_1', + 'direntry_vec_t_capacity', + 'direntry_vec_t_clear', + 'direntry_vec_t_empty', + 'direntry_vec_t_end', + 'direntry_vec_t_end__SWIG_0', + 'direntry_vec_t_end__SWIG_1', + 'direntry_vec_t_erase', + 'direntry_vec_t_erase__SWIG_0', + 'direntry_vec_t_erase__SWIG_1', + 'direntry_vec_t_extract', + 'direntry_vec_t_find', + 'direntry_vec_t_find__SWIG_0', + 'direntry_vec_t_find__SWIG_1', + 'direntry_vec_t_grow', + 'direntry_vec_t_has', + 'direntry_vec_t_inject', + 'direntry_vec_t_insert', + 'direntry_vec_t_pop_back', + 'direntry_vec_t_push_back', + 'direntry_vec_t_push_back__SWIG_0', + 'direntry_vec_t_push_back__SWIG_1', + 'direntry_vec_t_qclear', + 'direntry_vec_t_reserve', + 'direntry_vec_t_resize', + 'direntry_vec_t_resize__SWIG_0', + 'direntry_vec_t_resize__SWIG_1', + 'direntry_vec_t_size', + 'direntry_vec_t_swap', + 'direntry_vec_t_truncate', + 'dirspec_t_flags_get', + 'dirspec_t_flags_set', + 'dirspec_t_get_attrs', + 'dirspec_t_get_inode', + 'dirspec_t_get_name', + 'dirspec_t_id_get', + 'dirspec_t_id_set', + 'dirspec_t_rename_inode', + 'dirspec_t_unlink_inode', + 'dirtree_cursor_t___eq__', + 'dirtree_cursor_t___ge__', + 'dirtree_cursor_t___gt__', + 'dirtree_cursor_t___le__', + 'dirtree_cursor_t___lt__', + 'dirtree_cursor_t___ne__', + 'dirtree_cursor_t_compare', + 'dirtree_cursor_t_is_root_cursor', + 'dirtree_cursor_t_parent_get', + 'dirtree_cursor_t_parent_set', + 'dirtree_cursor_t_rank_get', + 'dirtree_cursor_t_rank_set', + 'dirtree_cursor_t_root_cursor', + 'dirtree_cursor_t_set_root_cursor', + 'dirtree_cursor_t_valid', + 'dirtree_cursor_vec_t___eq__', + 'dirtree_cursor_vec_t___getitem__', + 'dirtree_cursor_vec_t___len__', + 'dirtree_cursor_vec_t___ne__', + 'dirtree_cursor_vec_t___setitem__', + 'dirtree_cursor_vec_t__del', + 'dirtree_cursor_vec_t_add_unique', + 'dirtree_cursor_vec_t_at', + 'dirtree_cursor_vec_t_begin', + 'dirtree_cursor_vec_t_begin__SWIG_0', + 'dirtree_cursor_vec_t_begin__SWIG_1', + 'dirtree_cursor_vec_t_capacity', + 'dirtree_cursor_vec_t_clear', + 'dirtree_cursor_vec_t_empty', + 'dirtree_cursor_vec_t_end', + 'dirtree_cursor_vec_t_end__SWIG_0', + 'dirtree_cursor_vec_t_end__SWIG_1', + 'dirtree_cursor_vec_t_erase', + 'dirtree_cursor_vec_t_erase__SWIG_0', + 'dirtree_cursor_vec_t_erase__SWIG_1', + 'dirtree_cursor_vec_t_extract', + 'dirtree_cursor_vec_t_find', + 'dirtree_cursor_vec_t_find__SWIG_0', + 'dirtree_cursor_vec_t_find__SWIG_1', + 'dirtree_cursor_vec_t_grow', + 'dirtree_cursor_vec_t_has', + 'dirtree_cursor_vec_t_inject', + 'dirtree_cursor_vec_t_insert', + 'dirtree_cursor_vec_t_pop_back', + 'dirtree_cursor_vec_t_push_back', + 'dirtree_cursor_vec_t_push_back__SWIG_0', + 'dirtree_cursor_vec_t_push_back__SWIG_1', + 'dirtree_cursor_vec_t_qclear', + 'dirtree_cursor_vec_t_reserve', + 'dirtree_cursor_vec_t_resize', + 'dirtree_cursor_vec_t_resize__SWIG_0', + 'dirtree_cursor_vec_t_resize__SWIG_1', + 'dirtree_cursor_vec_t_size', + 'dirtree_cursor_vec_t_swap', + 'dirtree_cursor_vec_t_truncate', + 'dirtree_iterator_t_cursor_get', + 'dirtree_iterator_t_cursor_set', + 'dirtree_iterator_t_pattern_get', + 'dirtree_iterator_t_pattern_set', + 'dirtree_t_change_rank', + 'dirtree_t_chdir', + 'dirtree_t_errstr', + 'dirtree_t_find_entry', + 'dirtree_t_findfirst', + 'dirtree_t_findnext', + 'dirtree_t_get_abspath', + 'dirtree_t_get_abspath__SWIG_0', + 'dirtree_t_get_abspath__SWIG_1', + 'dirtree_t_get_dir_size', + 'dirtree_t_get_entry_attrs', + 'dirtree_t_get_entry_name', + 'dirtree_t_get_id', + 'dirtree_t_get_parent_cursor', + 'dirtree_t_get_rank', + 'dirtree_t_getcwd', + 'dirtree_t_isdir', + 'dirtree_t_isdir__SWIG_0', + 'dirtree_t_isdir__SWIG_1', + 'dirtree_t_isfile', + 'dirtree_t_isfile__SWIG_0', + 'dirtree_t_isfile__SWIG_1', + 'dirtree_t_link', + 'dirtree_t_link__SWIG_0', + 'dirtree_t_link__SWIG_1', + 'dirtree_t_load', + 'dirtree_t_mkdir', + 'dirtree_t_notify_dirtree', + 'dirtree_t_rename', + 'dirtree_t_resolve_cursor', + 'dirtree_t_resolve_path', + 'dirtree_t_rmdir', + 'dirtree_t_save', + 'dirtree_t_set_id', + 'dirtree_t_traverse', + 'dirtree_t_unlink', + 'dirtree_t_unlink__SWIG_0', + 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -2799,23 +3283,35 @@ 'disown_IDP_Hooks', 'disown_UI_Hooks', 'disown_View_Hooks', + 'disown_abstract_graph_t', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', + 'disown_cancellable_graph_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', + 'disown_chooser_stdact_desc_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', + 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_t', + 'disown_gdl_graph_t', 'disown_graph_node_visitor_t', 'disown_graph_path_visitor_t', 'disown_graph_visitor_t', 'disown_highlighter_cbs_t', + 'disown_ioports_fallback_t', + 'disown_item_block_locator_t', + 'disown_macro_constructor_t', + 'disown_merge_node_helper_t', 'disown_microcode_filter_t', 'disown_minsn_visitor_t', 'disown_mlist_mop_visitor_t', + 'disown_moddata_diff_helper_t', 'disown_mop_visitor_t', - 'disown_mutable_graph_t', 'disown_optblock_t', 'disown_optinsn_t', 'disown_predicate_t', @@ -2825,6 +3321,7 @@ 'disown_tinfo_visitor_t', 'disown_udc_filter_t', 'disown_ui_stroff_applicator_t', + 'disown_user_defined_prefix_t', 'disown_user_lvar_modifier_t', 'disown_vc_printer_t', 'disown_vd_printer_t', @@ -2837,6 +3334,36 @@ 'dummy_ptrtype', 'dump_func_type_data', 'dword_flag', + 'dyn_ea_array___getitem__', + 'dyn_ea_array___len__', + 'dyn_ea_array___setitem__', + 'dyn_ea_array_count_get', + 'dyn_ea_array_data_get', + 'dyn_member_ref_array___getitem__', + 'dyn_member_ref_array___len__', + 'dyn_member_ref_array___setitem__', + 'dyn_member_ref_array_count_get', + 'dyn_member_ref_array_data_get', + 'dyn_range_array___getitem__', + 'dyn_range_array___len__', + 'dyn_range_array___setitem__', + 'dyn_range_array_count_get', + 'dyn_range_array_data_get', + 'dyn_regarg_array___getitem__', + 'dyn_regarg_array___len__', + 'dyn_regarg_array___setitem__', + 'dyn_regarg_array_count_get', + 'dyn_regarg_array_data_get', + 'dyn_regvar_array___getitem__', + 'dyn_regvar_array___len__', + 'dyn_regvar_array___setitem__', + 'dyn_regvar_array_count_get', + 'dyn_regvar_array_data_get', + 'dyn_stkpnt_array___getitem__', + 'dyn_stkpnt_array___len__', + 'dyn_stkpnt_array___setitem__', + 'dyn_stkpnt_array_count_get', + 'dyn_stkpnt_array_data_get', 'ea2node', 'ea2str', 'ea_array___getitem__', @@ -2903,6 +3430,7 @@ 'eamap_size', 'eamap_t_at', 'eamap_t_size', + 'ecleaz', 'eclose', 'edge_info_t_color_get', 'edge_info_t_color_set', @@ -2949,6 +3477,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -3030,6 +3559,7 @@ 'enum_type_data_t_taenum_bits_get', 'enum_type_data_t_taenum_bits_set', 'enumerate_files', + 'enumerate_files2', 'enumplace_t_bmask_get', 'enumplace_t_bmask_set', 'enumplace_t_idx_get', @@ -3135,6 +3665,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3147,6 +3678,7 @@ 'find_data', 'find_defined', 'find_error', + 'find_free_chunk', 'find_free_selector', 'find_func_bounds', 'find_idc_class', @@ -3156,6 +3688,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3205,13 +3738,8 @@ 'float_flag', 'flt_flag', 'flush_buffers', - 'fnum_array___getitem__', - 'fnum_array___len__', - 'fnum_array___setitem__', - 'fnum_array_data_get', 'fnumber_t___eq__', 'fnumber_t___ge__', - 'fnumber_t___get_fnum', 'fnumber_t___gt__', 'fnumber_t___le__', 'fnumber_t___lt__', @@ -3245,6 +3773,56 @@ 'formchgcbfa_set_field_value', 'formchgcbfa_set_focused_field', 'formchgcbfa_show_field', + 'fpvalue_shorts_array_t___getitem__', + 'fpvalue_shorts_array_t___len__', + 'fpvalue_shorts_array_t___setitem__', + 'fpvalue_shorts_array_t__get_bytes', + 'fpvalue_shorts_array_t__set_bytes', + 'fpvalue_shorts_array_t_data_get', + 'fpvalue_t___add__', + 'fpvalue_t___eq__', + 'fpvalue_t___ge__', + 'fpvalue_t___gt__', + 'fpvalue_t___le__', + 'fpvalue_t___lt__', + 'fpvalue_t___mul__', + 'fpvalue_t___ne__', + 'fpvalue_t___str__', + 'fpvalue_t___sub__', + 'fpvalue_t___truediv__', + 'fpvalue_t__get_10bytes', + 'fpvalue_t__get_bytes', + 'fpvalue_t__get_float', + 'fpvalue_t__get_shorts', + 'fpvalue_t__set_10bytes', + 'fpvalue_t__set_bytes', + 'fpvalue_t__set_float', + 'fpvalue_t_assign', + 'fpvalue_t_clear', + 'fpvalue_t_compare', + 'fpvalue_t_eabs', + 'fpvalue_t_fadd', + 'fpvalue_t_fdiv', + 'fpvalue_t_fmul', + 'fpvalue_t_from_10bytes', + 'fpvalue_t_from_12bytes', + 'fpvalue_t_from_int64', + 'fpvalue_t_from_str', + 'fpvalue_t_from_sval', + 'fpvalue_t_from_uint64', + 'fpvalue_t_fsub', + 'fpvalue_t_get_kind', + 'fpvalue_t_is_negative', + 'fpvalue_t_mul_pow2', + 'fpvalue_t_negate', + 'fpvalue_t_to_10bytes', + 'fpvalue_t_to_12bytes', + 'fpvalue_t_to_int64', + 'fpvalue_t_to_str', + 'fpvalue_t_to_sval', + 'fpvalue_t_to_uint64', + 'fpvalue_t_w_get', + 'fpvalue_t_w_set', 'frame_off_args', 'frame_off_lvars', 'frame_off_retaddr', @@ -3252,14 +3830,12 @@ 'free_chunk', 'free_custom_icon', 'free_idcv', + 'free_regarg', + 'free_regvar', 'free_til', 'func_contains', 'func_does_return', 'func_has_stkframe_hole', - 'func_item_iterator_decode_preceding_insn', - 'func_item_iterator_decode_prev_insn', - 'func_item_iterator_next', - 'func_item_iterator_prev', 'func_item_iterator_t___next__', 'func_item_iterator_t_chunk', 'func_item_iterator_t_current', @@ -3280,6 +3856,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_parent_iterator_set', 'func_parent_iterator_t___next__', 'func_parent_iterator_t_first', @@ -3289,6 +3867,8 @@ 'func_parent_iterator_t_reset_fnt', 'func_parent_iterator_t_set', 'func_t___get_points__', + 'func_t___get_referers__', + 'func_t___get_regargs__', 'func_t___get_regvars__', 'func_t___get_tails__', 'func_t__from_ptrval__', @@ -3309,10 +3889,6 @@ 'func_t_frsize_get', 'func_t_frsize_set', 'func_t_is_far', - 'func_t_llabelqty_get', - 'func_t_llabelqty_set', - 'func_t_llabels_get', - 'func_t_llabels_set', 'func_t_need_prolog_analysis', 'func_t_owner_get', 'func_t_owner_set', @@ -3354,10 +3930,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', + 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -3421,6 +4003,7 @@ 'funcargvec_t_truncate', 'gcc_layout', 'gco_info_t_append_to_list', + 'gco_info_t_cvt_to_ivl', 'gco_info_t_flags_get', 'gco_info_t_flags_set', 'gco_info_t_is_def', @@ -3428,8 +4011,34 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', + 'gdl_graph_t_begin', + 'gdl_graph_t_edge', + 'gdl_graph_t_empty', + 'gdl_graph_t_end', + 'gdl_graph_t_entry', + 'gdl_graph_t_exists', + 'gdl_graph_t_exit', + 'gdl_graph_t_front', + 'gdl_graph_t_get_edge_color', + 'gdl_graph_t_get_node_color', + 'gdl_graph_t_get_node_label', + 'gdl_graph_t_nedge', + 'gdl_graph_t_node_qty', + 'gdl_graph_t_npred', + 'gdl_graph_t_nsucc', + 'gdl_graph_t_pred', + 'gdl_graph_t_print_edge', + 'gdl_graph_t_print_graph_attributes', + 'gdl_graph_t_print_node', + 'gdl_graph_t_print_node_attributes', + 'gdl_graph_t_size', + 'gdl_graph_t_succ', 'gen_complex_call_chart', 'gen_decorate_name', 'gen_disasm_text', @@ -3443,6 +4052,7 @@ 'gen_microcode', 'gen_simple_call_chart', 'gen_use_arg_tinfos', + 'gen_use_arg_tinfos2', 'generate_disasm_line', 'generate_disassembly', 'generic_linput_t_blocksize_get', @@ -3473,6 +4083,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -3524,9 +4135,12 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', + 'get_dbctx_id', + 'get_dbctx_qty', 'get_dbg_byte', 'get_dbg_memory_info', 'get_dbg_reg_info', @@ -3546,11 +4160,14 @@ 'get_dtype_flag', 'get_dtype_size', 'get_dword', + 'get_ea_diffpos_name', 'get_ea_name', 'get_ea_viewer_history_info', 'get_effective_spd', + 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -3651,6 +4268,7 @@ 'get_hidden_range_num', 'get_hidden_range_qty', 'get_highlight', + 'get_ida_notepad_text', 'get_ida_subdirs', 'get_idainfo_by_type', 'get_idasgn_desc', @@ -3658,6 +4276,8 @@ 'get_idasgn_qty', 'get_idasgn_title', 'get_idati', + 'get_idb_ctime', + 'get_idb_nopens', 'get_idb_notifier_addr', 'get_idb_notifier_ud_addr', 'get_idc_filename', @@ -3674,6 +4294,9 @@ 'get_import_module_qty', 'get_ind_purged', 'get_inf_structure', + 'get_initial_ida_version', + 'get_initial_idb_version', + 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', 'get_insn_tev_reg_result', @@ -3695,10 +4318,12 @@ 'get_last_serial_enum_member', 'get_last_struc_idx', 'get_linput_type', + 'get_loader_format_name', 'get_local_var', 'get_local_vars', 'get_long_name', 'get_lookback', + 'get_mangled_name_type', 'get_manual_insn', 'get_manual_regions', 'get_manual_regions__SWIG_0', @@ -3762,6 +4387,7 @@ 'get_numbered_type', 'get_numbered_type_name', 'get_octet', + 'get_octet2', 'get_offbase', 'get_offset_expr', 'get_offset_expression', @@ -3783,6 +4409,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -3847,11 +4474,14 @@ 'get_spd', 'get_special_folder', 'get_sptr', + 'get_srcdbg_paths', + 'get_srcdbg_undesired_paths', 'get_srcinfo_provider', 'get_sreg', 'get_sreg_range', 'get_sreg_range_num', 'get_sreg_ranges_qty', + 'get_std_dirtree', 'get_step_trace_options', 'get_stkvar', 'get_stock_tinfo', @@ -3860,6 +4490,8 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', + 'get_strid', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -3882,6 +4514,7 @@ 'get_struc_size__SWIG_1', 'get_switch_info', 'get_switch_parent', + 'get_synced_group', 'get_tab_size', 'get_temp_regs', 'get_tev_ea', @@ -3900,6 +4533,7 @@ 'get_tinfo_property', 'get_tinfo_size', 'get_trace_base_address', + 'get_trace_dynamic_register_set', 'get_trace_file_desc', 'get_trace_platform', 'get_tryblks', @@ -3909,7 +4543,10 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', + 'get_vftable_ea', + 'get_vftable_ordinal', 'get_view_renderer_type', 'get_viewer_graph', 'get_viewer_place_type', @@ -3927,6 +4564,7 @@ 'get_zero_ranges', 'getb_reginsn', 'getf_reginsn', + 'getinf_str', 'getn_bpt', 'getn_enum', 'getn_fchunk', @@ -3986,10 +4624,14 @@ 'group_crinfo_t_text_get', 'group_crinfo_t_text_set', 'guess_func_cc', - 'guess_table_address', - 'guess_table_size', 'guess_tinfo', 'handle_debug_event', + 'handle_fixups_in_macro', + 'has_aflag_linnum', + 'has_aflag_lname', + 'has_aflag_ti', + 'has_aflag_ti0', + 'has_aflag_ti1', 'has_any_name', 'has_auto_name', 'has_cached_cfunc', @@ -4002,6 +4644,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4122,8 +4765,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4133,9 +4776,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -4186,8 +4826,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -4224,6 +4862,56 @@ 'idainfo_xrefnum_set', 'idaplace_t_ea_get', 'idaplace_t_ea_set', + 'idbattr_info_t___lt__', + 'idbattr_info_t_bitmask_get', + 'idbattr_info_t_bitmask_set', + 'idbattr_info_t_has_individual_node', + 'idbattr_info_t_hashname', + 'idbattr_info_t_idi_flags_get', + 'idbattr_info_t_idi_flags_set', + 'idbattr_info_t_individual_node_get', + 'idbattr_info_t_individual_node_set', + 'idbattr_info_t_is_bitfield', + 'idbattr_info_t_is_bitmap', + 'idbattr_info_t_is_boolean', + 'idbattr_info_t_is_buf_var', + 'idbattr_info_t_is_bytearray', + 'idbattr_info_t_is_cstr', + 'idbattr_info_t_is_decimal', + 'idbattr_info_t_is_hash', + 'idbattr_info_t_is_hexadecimal', + 'idbattr_info_t_is_incremented', + 'idbattr_info_t_is_node_altval', + 'idbattr_info_t_is_node_blob', + 'idbattr_info_t_is_node_supval', + 'idbattr_info_t_is_node_valobj', + 'idbattr_info_t_is_node_var', + 'idbattr_info_t_is_onoff', + 'idbattr_info_t_is_qstring', + 'idbattr_info_t_is_readonly_var', + 'idbattr_info_t_is_scalar_var', + 'idbattr_info_t_is_struc_field', + 'idbattr_info_t_is_val_mapped', + 'idbattr_info_t_maxsize_get', + 'idbattr_info_t_maxsize_set', + 'idbattr_info_t_name_get', + 'idbattr_info_t_name_set', + 'idbattr_info_t_offset_get', + 'idbattr_info_t_offset_set', + 'idbattr_info_t_ridx', + 'idbattr_info_t_str_false', + 'idbattr_info_t_str_true', + 'idbattr_info_t_tag_get', + 'idbattr_info_t_tag_set', + 'idbattr_info_t_use_hlpstruc', + 'idbattr_info_t_vmap_get', + 'idbattr_info_t_vmap_set', + 'idbattr_info_t_width_get', + 'idbattr_info_t_width_set', + 'idbattr_valmap_t_valname_get', + 'idbattr_valmap_t_valname_set', + 'idbattr_valmap_t_value_get', + 'idbattr_valmap_t_value_set', 'idc_get_local_type', 'idc_get_local_type_name', 'idc_get_local_type_raw', @@ -4238,7 +4926,6 @@ 'idc_parse_types', 'idc_print_type', 'idc_set_local_type', - 'idc_value_t___get_e', 'idc_value_t__create_empty_string', 'idc_value_t_c_str', 'idc_value_t_clear', @@ -4336,6 +5023,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -4366,6 +5056,7 @@ 'inf_get_af2_low', 'inf_get_af_high', 'inf_get_af_low', + 'inf_get_app_bitness', 'inf_get_appcall_options', 'inf_get_apptype', 'inf_get_asmtype', @@ -4382,8 +5073,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -4443,7 +5134,9 @@ 'inf_hide_libfuncs', 'inf_huge_arg_align', 'inf_inc_database_change_count', - 'inf_is_32bit', + 'inf_is_16bit', + 'inf_is_32bit_exactly', + 'inf_is_32bit_or_higher', 'inf_is_64bit', 'inf_is_auto_enabled', 'inf_is_be', @@ -4470,6 +5163,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -4513,10 +5209,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -4640,7 +5336,6 @@ 'inf_set_strlit_sernum', 'inf_set_strlit_zeroes', 'inf_set_strtype', - 'inf_set_test_mode', 'inf_set_trace_flow', 'inf_set_truncate_on_del', 'inf_set_type_xrefnum', @@ -4684,6 +5379,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'insn_add_cref', 'insn_add_dref', 'insn_add_off_drefs', @@ -4697,6 +5422,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -4708,7 +5439,11 @@ 'insn_t_flags_get', 'insn_t_flags_set', 'insn_t_get_canon_feature', + 'insn_t_get_canon_feature__SWIG_0', + 'insn_t_get_canon_feature__SWIG_1', 'insn_t_get_canon_mnem', + 'insn_t_get_canon_mnem__SWIG_0', + 'insn_t_get_canon_mnem__SWIG_1', 'insn_t_get_next_byte', 'insn_t_get_next_dword', 'insn_t_get_next_qword', @@ -4719,6 +5454,8 @@ 'insn_t_ip_set', 'insn_t_is_64bit', 'insn_t_is_canon_insn', + 'insn_t_is_canon_insn__SWIG_0', + 'insn_t_is_canon_insn__SWIG_1', 'insn_t_is_macro', 'insn_t_itype_get', 'insn_t_itype_set', @@ -4730,6 +5467,7 @@ 'insn_t_size_set', 'install_command_interpreter', 'install_microcode_filter', + 'install_user_defined_prefix', 'instant_dbgopts_t__pass_get', 'instant_dbgopts_t__pass_set', 'instant_dbgopts_t_attach_get', @@ -4746,6 +5484,45 @@ 'instant_dbgopts_t_pid_set', 'instant_dbgopts_t_port_get', 'instant_dbgopts_t_port_set', + 'int64vec_t___eq__', + 'int64vec_t___getitem__', + 'int64vec_t___len__', + 'int64vec_t___ne__', + 'int64vec_t___setitem__', + 'int64vec_t__del', + 'int64vec_t_add_unique', + 'int64vec_t_at', + 'int64vec_t_begin', + 'int64vec_t_begin__SWIG_0', + 'int64vec_t_begin__SWIG_1', + 'int64vec_t_capacity', + 'int64vec_t_clear', + 'int64vec_t_empty', + 'int64vec_t_end', + 'int64vec_t_end__SWIG_0', + 'int64vec_t_end__SWIG_1', + 'int64vec_t_erase', + 'int64vec_t_erase__SWIG_0', + 'int64vec_t_erase__SWIG_1', + 'int64vec_t_extract', + 'int64vec_t_find', + 'int64vec_t_find__SWIG_0', + 'int64vec_t_find__SWIG_1', + 'int64vec_t_has', + 'int64vec_t_inject', + 'int64vec_t_insert', + 'int64vec_t_pop_back', + 'int64vec_t_push_back', + 'int64vec_t_push_back__SWIG_0', + 'int64vec_t_push_back__SWIG_1', + 'int64vec_t_qclear', + 'int64vec_t_reserve', + 'int64vec_t_resize', + 'int64vec_t_resize__SWIG_0', + 'int64vec_t_resize__SWIG_1', + 'int64vec_t_size', + 'int64vec_t_swap', + 'int64vec_t_truncate', 'int_pointer_assign', 'int_pointer_cast', 'int_pointer_frompointer', @@ -4807,12 +5584,42 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', 'is__invsign1', 'is_action_enabled', 'is_additive', + 'is_aflag__bnot0', + 'is_aflag__bnot1', + 'is_aflag__invsign0', + 'is_aflag__invsign1', + 'is_aflag_align_flow', + 'is_aflag_colored_item', + 'is_aflag_data_guessed_by_hexrays', + 'is_aflag_fixed_spd', + 'is_aflag_func_guessed_by_hexrays', + 'is_aflag_hidden_border', + 'is_aflag_hidden_item', + 'is_aflag_libitem', + 'is_aflag_lzero0', + 'is_aflag_lzero1', + 'is_aflag_manual_insn', + 'is_aflag_noret', + 'is_aflag_notcode', + 'is_aflag_notproc', + 'is_aflag_public_name', + 'is_aflag_retfp', + 'is_aflag_terse_struc', + 'is_aflag_tilcmt', + 'is_aflag_type_determined_by_hexrays', + 'is_aflag_type_guessed_by_hexrays', + 'is_aflag_type_guessed_by_ida', + 'is_aflag_usersp', + 'is_aflag_userti', + 'is_aflag_weak_name', + 'is_aflag_zstroff', 'is_align', 'is_align_flow', 'is_align_insn', @@ -4849,6 +5656,7 @@ 'is_custom', 'is_data', 'is_data_far', + 'is_data_guessed_by_hexrays', 'is_database_flag', 'is_debugger_busy', 'is_debugger_memory', @@ -4856,9 +5664,11 @@ 'is_defarg', 'is_defarg0', 'is_defarg1', + 'is_diff_merge_mode', 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -4879,6 +5689,7 @@ 'is_forced_operand', 'is_func', 'is_func_entry', + 'is_func_guessed_by_hexrays', 'is_func_locked', 'is_func_tail', 'is_func_trace_enabled', @@ -4887,10 +5698,12 @@ 'is_gcc32', 'is_gcc64', 'is_ghost_enum', + 'is_golang_cc', 'is_head', 'is_hidden_border', 'is_hidden_item', 'is_idaq', + 'is_idaview', 'is_ident', 'is_ident_cp', 'is_in_nlist', @@ -5007,6 +5820,7 @@ 'is_type_complex', 'is_type_const', 'is_type_correct', + 'is_type_determined_by_hexrays', 'is_type_double', 'is_type_enum', 'is_type_ext_arithmetic', @@ -5014,6 +5828,8 @@ 'is_type_float', 'is_type_floating', 'is_type_func', + 'is_type_guessed_by_hexrays', + 'is_type_guessed_by_ida', 'is_type_int', 'is_type_int128', 'is_type_int16', @@ -5050,6 +5866,7 @@ 'is_usersp', 'is_userti', 'is_valid_cp', + 'is_valid_dstate', 'is_valid_trace_file', 'is_valid_typename', 'is_vararg_cc', @@ -5065,6 +5882,11 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'item_block_locator_t_get_block_head', + 'item_block_locator_t_setup_blocks', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5116,17 +5938,95 @@ 'jumpto', 'jumpto__SWIG_0', 'jumpto__SWIG_1', + 'l_compare2', 'last_idcv_attr', 'leading_zero_important', 'lexcompare', 'lexcompare_tinfo', + 'line_rendering_output_entries_refs_t___eq__', + 'line_rendering_output_entries_refs_t___getitem__', + 'line_rendering_output_entries_refs_t___len__', + 'line_rendering_output_entries_refs_t___ne__', + 'line_rendering_output_entries_refs_t___setitem__', + 'line_rendering_output_entries_refs_t__del', + 'line_rendering_output_entries_refs_t__internal_push_back', + 'line_rendering_output_entries_refs_t_add_unique', + 'line_rendering_output_entries_refs_t_at', + 'line_rendering_output_entries_refs_t_begin', + 'line_rendering_output_entries_refs_t_begin__SWIG_0', + 'line_rendering_output_entries_refs_t_begin__SWIG_1', + 'line_rendering_output_entries_refs_t_capacity', + 'line_rendering_output_entries_refs_t_clear', + 'line_rendering_output_entries_refs_t_empty', + 'line_rendering_output_entries_refs_t_end', + 'line_rendering_output_entries_refs_t_end__SWIG_0', + 'line_rendering_output_entries_refs_t_end__SWIG_1', + 'line_rendering_output_entries_refs_t_erase', + 'line_rendering_output_entries_refs_t_erase__SWIG_0', + 'line_rendering_output_entries_refs_t_erase__SWIG_1', + 'line_rendering_output_entries_refs_t_extract', + 'line_rendering_output_entries_refs_t_find', + 'line_rendering_output_entries_refs_t_find__SWIG_0', + 'line_rendering_output_entries_refs_t_find__SWIG_1', + 'line_rendering_output_entries_refs_t_has', + 'line_rendering_output_entries_refs_t_inject', + 'line_rendering_output_entries_refs_t_insert', + 'line_rendering_output_entries_refs_t_pop_back', + 'line_rendering_output_entries_refs_t_push_back', + 'line_rendering_output_entries_refs_t_push_back__SWIG_0', + 'line_rendering_output_entries_refs_t_push_back__SWIG_1', + 'line_rendering_output_entries_refs_t_qclear', + 'line_rendering_output_entries_refs_t_reserve', + 'line_rendering_output_entries_refs_t_resize', + 'line_rendering_output_entries_refs_t_resize__SWIG_0', + 'line_rendering_output_entries_refs_t_resize__SWIG_1', + 'line_rendering_output_entries_refs_t_size', + 'line_rendering_output_entries_refs_t_swap', + 'line_rendering_output_entries_refs_t_truncate', + 'line_rendering_output_entry_t___eq__', + 'line_rendering_output_entry_t___ne__', + 'line_rendering_output_entry_t_bg_color_get', + 'line_rendering_output_entry_t_bg_color_set', + 'line_rendering_output_entry_t_cpx_get', + 'line_rendering_output_entry_t_cpx_set', + 'line_rendering_output_entry_t_flags_get', + 'line_rendering_output_entry_t_flags_set', + 'line_rendering_output_entry_t_is_bg_color_direct', + 'line_rendering_output_entry_t_is_bg_color_empty', + 'line_rendering_output_entry_t_is_bg_color_key', + 'line_rendering_output_entry_t_line_get', + 'line_rendering_output_entry_t_line_set', + 'line_rendering_output_entry_t_nchars_get', + 'line_rendering_output_entry_t_nchars_set', + 'linearray_t_beginning', + 'linearray_t_down', + 'linearray_t_ending', + 'linearray_t_get_bg_color', + 'linearray_t_get_dlnnum', + 'linearray_t_get_linecnt', + 'linearray_t_get_pfx_color', + 'linearray_t_get_place', + 'linearray_t_set_place', + 'linearray_t_set_userdata', + 'linearray_t_up', + 'linearray_t_userdata', + 'lines_rendering_input_t_cb_get', + 'lines_rendering_input_t_cb_set', + 'lines_rendering_input_t_sections_lines_get', + 'lines_rendering_input_t_sections_lines_set', + 'lines_rendering_input_t_sync_group_get', + 'lines_rendering_input_t_sync_group_set', + 'lines_rendering_output_t___eq__', + 'lines_rendering_output_t___ne__', + 'lines_rendering_output_t_clear', + 'lines_rendering_output_t_entries_get', + 'lines_rendering_output_t_entries_set', + 'lines_rendering_output_t_flags_get', + 'lines_rendering_output_t_flags_set', + 'lines_rendering_output_t_swap', 'list_bptgrps', 'list_bptgrps__SWIG_0', 'list_bptgrps__SWIG_1', - 'llabel_t_ea_get', - 'llabel_t_ea_set', - 'llabel_t_name_get', - 'llabel_t_name_set', 'load_and_run_plugin', 'load_binary_file', 'load_dbg_dbginfo', @@ -5161,8 +6061,7 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', + 'locate_lvar', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5197,45 +6096,6 @@ 'lock_segm', 'log2ceil', 'log2floor', - 'longlongvec_t___eq__', - 'longlongvec_t___getitem__', - 'longlongvec_t___len__', - 'longlongvec_t___ne__', - 'longlongvec_t___setitem__', - 'longlongvec_t__del', - 'longlongvec_t_add_unique', - 'longlongvec_t_at', - 'longlongvec_t_begin', - 'longlongvec_t_begin__SWIG_0', - 'longlongvec_t_begin__SWIG_1', - 'longlongvec_t_capacity', - 'longlongvec_t_clear', - 'longlongvec_t_empty', - 'longlongvec_t_end', - 'longlongvec_t_end__SWIG_0', - 'longlongvec_t_end__SWIG_1', - 'longlongvec_t_erase', - 'longlongvec_t_erase__SWIG_0', - 'longlongvec_t_erase__SWIG_1', - 'longlongvec_t_extract', - 'longlongvec_t_find', - 'longlongvec_t_find__SWIG_0', - 'longlongvec_t_find__SWIG_1', - 'longlongvec_t_has', - 'longlongvec_t_inject', - 'longlongvec_t_insert', - 'longlongvec_t_pop_back', - 'longlongvec_t_push_back', - 'longlongvec_t_push_back__SWIG_0', - 'longlongvec_t_push_back__SWIG_1', - 'longlongvec_t_qclear', - 'longlongvec_t_reserve', - 'longlongvec_t_resize', - 'longlongvec_t_resize__SWIG_0', - 'longlongvec_t_resize__SWIG_1', - 'longlongvec_t_size', - 'longlongvec_t_swap', - 'longlongvec_t_truncate', 'lookup_key_code', 'lower_type', 'lowertype_helper_t_func_has_stkframe_hole', @@ -5302,6 +6162,7 @@ 'lvar_saved_info_t_clr_forced_lvar', 'lvar_saved_info_t_clr_nomap_lvar', 'lvar_saved_info_t_clr_noptr_lvar', + 'lvar_saved_info_t_clr_unused_lvar', 'lvar_saved_info_t_cmt_get', 'lvar_saved_info_t_cmt_set', 'lvar_saved_info_t_flags_get', @@ -5311,6 +6172,7 @@ 'lvar_saved_info_t_is_kept', 'lvar_saved_info_t_is_nomap_lvar', 'lvar_saved_info_t_is_noptr_lvar', + 'lvar_saved_info_t_is_unused_lvar', 'lvar_saved_info_t_ll_get', 'lvar_saved_info_t_ll_set', 'lvar_saved_info_t_name_get', @@ -5319,6 +6181,7 @@ 'lvar_saved_info_t_set_keep', 'lvar_saved_info_t_set_nomap_lvar', 'lvar_saved_info_t_set_noptr_lvar', + 'lvar_saved_info_t_set_unused_lvar', 'lvar_saved_info_t_size_get', 'lvar_saved_info_t_size_set', 'lvar_saved_info_t_type_get', @@ -5368,6 +6231,7 @@ 'lvar_t_clear_used', 'lvar_t_clr_arg_var', 'lvar_t_clr_automapped', + 'lvar_t_clr_decl_unused', 'lvar_t_clr_dummy_arg', 'lvar_t_clr_fake_var', 'lvar_t_clr_floating_var', @@ -5377,9 +6241,11 @@ 'lvar_t_clr_noptr_var', 'lvar_t_clr_notarg', 'lvar_t_clr_overlapped_var', + 'lvar_t_clr_shared', 'lvar_t_clr_spoiled_var', 'lvar_t_clr_thisarg', 'lvar_t_clr_unknown_width', + 'lvar_t_clr_used_byref', 'lvar_t_clr_user_info', 'lvar_t_clr_user_name', 'lvar_t_clr_user_type', @@ -5396,9 +6262,11 @@ 'lvar_t_has_user_info', 'lvar_t_has_user_name', 'lvar_t_has_user_type', + 'lvar_t_in_asm', 'lvar_t_is_aliasable', 'lvar_t_is_arg_var', 'lvar_t_is_automapped', + 'lvar_t_is_decl_unused', 'lvar_t_is_dummy_arg', 'lvar_t_is_fake_var', 'lvar_t_is_floating_var', @@ -5408,14 +6276,17 @@ 'lvar_t_is_notarg', 'lvar_t_is_overlapped_var', 'lvar_t_is_result_var', + 'lvar_t_is_shared', 'lvar_t_is_spoiled_var', 'lvar_t_is_thisarg', 'lvar_t_is_unknown_width', + 'lvar_t_is_used_byref', 'lvar_t_mreg_done', 'lvar_t_name_get', 'lvar_t_name_set', 'lvar_t_set_arg_var', 'lvar_t_set_automapped', + 'lvar_t_set_decl_unused', 'lvar_t_set_dummy_arg', 'lvar_t_set_fake_var', 'lvar_t_set_final_lvar_type', @@ -5428,11 +6299,13 @@ 'lvar_t_set_noptr_var', 'lvar_t_set_notarg', 'lvar_t_set_overlapped_var', + 'lvar_t_set_shared', 'lvar_t_set_spoiled_var', 'lvar_t_set_thisarg', 'lvar_t_set_typed', 'lvar_t_set_unknown_width', 'lvar_t_set_used', + 'lvar_t_set_used_byref', 'lvar_t_set_user_name', 'lvar_t_set_user_type', 'lvar_t_set_width', @@ -5446,6 +6319,7 @@ 'lvar_t_width_get', 'lvar_t_width_set', 'lvar_uservec_t_clear', + 'lvar_uservec_t_empty', 'lvar_uservec_t_find_info', 'lvar_uservec_t_keep_info', 'lvar_uservec_t_lmaps_get', @@ -5461,6 +6335,9 @@ 'lvars_t_find_input_lvar', 'lvars_t_find_lvar', 'lvars_t_find_stkvar', + 'macro_constructor_t_build_macro', + 'macro_constructor_t_reserved_get', + 'macro_constructor_t_reserved_set', 'make_name_auto', 'make_name_non_public', 'make_name_non_weak', @@ -5468,6 +6345,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -5498,195 +6376,205 @@ 'mba_ranges_t_ranges_get', 'mba_ranges_t_ranges_set', 'mba_ranges_t_start', - 'mbl_array_t__deregister', - 'mbl_array_t__print', - 'mbl_array_t__register', - 'mbl_array_t_aliased_args_get', - 'mbl_array_t_aliased_args_set', - 'mbl_array_t_aliased_memory_get', - 'mbl_array_t_aliased_memory_set', - 'mbl_array_t_aliased_vars_get', - 'mbl_array_t_aliased_vars_set', - 'mbl_array_t_alloc_lvars', - 'mbl_array_t_analyze_calls', - 'mbl_array_t_arg', - 'mbl_array_t_arg__SWIG_0', - 'mbl_array_t_arg__SWIG_1', - 'mbl_array_t_argbase', - 'mbl_array_t_argidx_get', - 'mbl_array_t_argidx_ok', - 'mbl_array_t_argidx_set', - 'mbl_array_t_argidx_sorted', - 'mbl_array_t_bad_call_sp_detected', - 'mbl_array_t_blocks_get', - 'mbl_array_t_blocks_set', - 'mbl_array_t_build_graph', - 'mbl_array_t_calc_shins_flags', - 'mbl_array_t_callinfo_built', - 'mbl_array_t_cc_get', - 'mbl_array_t_cc_set', - 'mbl_array_t_chain_varnums_ok', - 'mbl_array_t_clr_cdtr', - 'mbl_array_t_clr_mba_flags', - 'mbl_array_t_clr_mba_flags2', - 'mbl_array_t_combine_blocks', - 'mbl_array_t_common_stkvars_stkargs', - 'mbl_array_t_consumed_argregs_get', - 'mbl_array_t_consumed_argregs_set', - 'mbl_array_t_copy_block', - 'mbl_array_t_deleted_pairs', - 'mbl_array_t_deserialize', - 'mbl_array_t_display_numaddrs', - 'mbl_array_t_display_valnums', - 'mbl_array_t_dump', - 'mbl_array_t_dump_mba', - 'mbl_array_t_dump_mba__varargs__', - 'mbl_array_t_entry_ea_get', - 'mbl_array_t_entry_ea_set', - 'mbl_array_t_error_ea_get', - 'mbl_array_t_error_ea_set', - 'mbl_array_t_error_strarg_get', - 'mbl_array_t_error_strarg_set', - 'mbl_array_t_final_type_get', - 'mbl_array_t_final_type_set', - 'mbl_array_t_find_mop', - 'mbl_array_t_first_epilog_ea_get', - 'mbl_array_t_first_epilog_ea_set', - 'mbl_array_t_for_all_insns', - 'mbl_array_t_for_all_ops', - 'mbl_array_t_for_all_topinsns', - 'mbl_array_t_fpd_get', - 'mbl_array_t_fpd_set', - 'mbl_array_t_frregs_get', - 'mbl_array_t_frregs_set', - 'mbl_array_t_frsize_get', - 'mbl_array_t_frsize_set', - 'mbl_array_t_fti_flags_get', - 'mbl_array_t_fti_flags_set', - 'mbl_array_t_fullsize_get', - 'mbl_array_t_fullsize_set', - 'mbl_array_t_generated_asserts', - 'mbl_array_t_get_args_region', - 'mbl_array_t_get_curfunc', - 'mbl_array_t_get_graph', - 'mbl_array_t_get_ida_argloc', - 'mbl_array_t_get_lvars_region', - 'mbl_array_t_get_mba_flags', - 'mbl_array_t_get_mba_flags2', - 'mbl_array_t_get_mblock', - 'mbl_array_t_get_mblock__SWIG_0', - 'mbl_array_t_get_mblock__SWIG_1', - 'mbl_array_t_get_shadow_region', - 'mbl_array_t_get_stack_region', - 'mbl_array_t_get_std_region', - 'mbl_array_t_gotoff_stkvars_get', - 'mbl_array_t_gotoff_stkvars_set', - 'mbl_array_t_graph_insns', - 'mbl_array_t_has_bad_sp', - 'mbl_array_t_has_over_chains', - 'mbl_array_t_has_passregs', - 'mbl_array_t_idaloc2vd', - 'mbl_array_t_idb_node_get', - 'mbl_array_t_idb_node_set', - 'mbl_array_t_idb_spoiled_get', - 'mbl_array_t_idb_spoiled_set', - 'mbl_array_t_idb_type_get', - 'mbl_array_t_idb_type_set', - 'mbl_array_t_inargoff_get', - 'mbl_array_t_inargoff_set', - 'mbl_array_t_insert_block', - 'mbl_array_t_is_cdtr', - 'mbl_array_t_is_ctr', - 'mbl_array_t_is_dtr', - 'mbl_array_t_is_pattern', - 'mbl_array_t_is_snippet', - 'mbl_array_t_is_stkarg', - 'mbl_array_t_is_thunk', - 'mbl_array_t_label_get', - 'mbl_array_t_label_set', - 'mbl_array_t_last_prolog_ea_get', - 'mbl_array_t_last_prolog_ea_set', - 'mbl_array_t_loaded_gdl', - 'mbl_array_t_lvar_names_ok', - 'mbl_array_t_lvars_allocated', - 'mbl_array_t_lvars_renamed', - 'mbl_array_t_mark_chains_dirty', - 'mbl_array_t_maturity_get', - 'mbl_array_t_maturity_set', - 'mbl_array_t_may_refine_rettype', - 'mbl_array_t_mbr_get', - 'mbl_array_t_mbr_set', - 'mbl_array_t_minargref_get', - 'mbl_array_t_minargref_set', - 'mbl_array_t_minstkref_ea_get', - 'mbl_array_t_minstkref_ea_set', - 'mbl_array_t_minstkref_get', - 'mbl_array_t_minstkref_set', - 'mbl_array_t_natural_get', - 'mbl_array_t_natural_set', - 'mbl_array_t_nodel_memory_get', - 'mbl_array_t_nodel_memory_set', - 'mbl_array_t_notes_get', - 'mbl_array_t_notes_set', - 'mbl_array_t_npurged_get', - 'mbl_array_t_npurged_set', - 'mbl_array_t_occurred_warns_get', - 'mbl_array_t_occurred_warns_set', - 'mbl_array_t_optimize_global', - 'mbl_array_t_optimize_local', - 'mbl_array_t_optimized', - 'mbl_array_t_pfn_flags_get', - 'mbl_array_t_pfn_flags_set', - 'mbl_array_t_precise_defeas', - 'mbl_array_t_propagated_asserts', - 'mbl_array_t_qty_get', - 'mbl_array_t_qty_set', - 'mbl_array_t_really_alloc', - 'mbl_array_t_regargs_is_not_aligned', - 'mbl_array_t_remove_block', - 'mbl_array_t_remove_empty_blocks', - 'mbl_array_t_reqmat_get', - 'mbl_array_t_reqmat_set', - 'mbl_array_t_restricted_memory_get', - 'mbl_array_t_restricted_memory_set', - 'mbl_array_t_retsize_get', - 'mbl_array_t_retsize_set', - 'mbl_array_t_returns_fpval', - 'mbl_array_t_retvaridx_get', - 'mbl_array_t_retvaridx_set', - 'mbl_array_t_rtype_refined', - 'mbl_array_t_saverest_done', - 'mbl_array_t_serialize', - 'mbl_array_t_set_mba_flags', - 'mbl_array_t_set_mba_flags2', - 'mbl_array_t_shadow_args_get', - 'mbl_array_t_shadow_args_set', - 'mbl_array_t_short_display', - 'mbl_array_t_should_beautify', - 'mbl_array_t_show_reduction', - 'mbl_array_t_spd_adjust_get', - 'mbl_array_t_spd_adjust_set', - 'mbl_array_t_spoiled_list_get', - 'mbl_array_t_spoiled_list_set', - 'mbl_array_t_stacksize_get', - 'mbl_array_t_stacksize_set', - 'mbl_array_t_std_ivls_get', - 'mbl_array_t_std_ivls_set', - 'mbl_array_t_stkoff_ida2vd', - 'mbl_array_t_stkoff_vd2ida', - 'mbl_array_t_term', - 'mbl_array_t_tmpstk_size_get', - 'mbl_array_t_tmpstk_size_set', - 'mbl_array_t_use_frame', - 'mbl_array_t_use_wingraph32', - 'mbl_array_t_valranges_done', - 'mbl_array_t_vars_get', - 'mbl_array_t_vars_set', - 'mbl_array_t_vd2idaloc', - 'mbl_array_t_vd2idaloc__SWIG_0', - 'mbl_array_t_vd2idaloc__SWIG_1', - 'mbl_array_t_verify', - 'mbl_array_t_write_to_const_detected', + 'mba_t__deregister', + 'mba_t__print', + 'mba_t__register', + 'mba_t_aliased_args_get', + 'mba_t_aliased_args_set', + 'mba_t_aliased_memory_get', + 'mba_t_aliased_memory_set', + 'mba_t_aliased_vars_get', + 'mba_t_aliased_vars_set', + 'mba_t_alloc_fict_ea', + 'mba_t_alloc_kreg', + 'mba_t_alloc_lvars', + 'mba_t_analyze_calls', + 'mba_t_arg', + 'mba_t_arg__SWIG_0', + 'mba_t_arg__SWIG_1', + 'mba_t_argbase', + 'mba_t_argidx_get', + 'mba_t_argidx_ok', + 'mba_t_argidx_set', + 'mba_t_argidx_sorted', + 'mba_t_bad_call_sp_detected', + 'mba_t_blocks_get', + 'mba_t_blocks_set', + 'mba_t_build_graph', + 'mba_t_calc_shins_flags', + 'mba_t_callinfo_built', + 'mba_t_cc_get', + 'mba_t_cc_set', + 'mba_t_chain_varnums_ok', + 'mba_t_clr_cdtr', + 'mba_t_clr_mba_flags', + 'mba_t_clr_mba_flags2', + 'mba_t_code16_bit_removed', + 'mba_t_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_create_helper_call', + 'mba_t_deleted_pairs', + 'mba_t_deprecated_idb_node_get', + 'mba_t_deprecated_idb_node_set', + 'mba_t_deserialize', + 'mba_t_display_numaddrs', + 'mba_t_display_valnums', + 'mba_t_dump', + 'mba_t_dump_mba', + 'mba_t_dump_mba__varargs__', + 'mba_t_entry_ea_get', + 'mba_t_entry_ea_set', + 'mba_t_error_ea_get', + 'mba_t_error_ea_set', + 'mba_t_error_strarg_get', + 'mba_t_error_strarg_set', + 'mba_t_final_type_get', + 'mba_t_final_type_set', + 'mba_t_find_mop', + 'mba_t_first_epilog_ea_get', + 'mba_t_first_epilog_ea_set', + 'mba_t_for_all_insns', + 'mba_t_for_all_ops', + 'mba_t_for_all_topinsns', + 'mba_t_fpd_get', + 'mba_t_fpd_set', + 'mba_t_free_kreg', + 'mba_t_frregs_get', + 'mba_t_frregs_set', + 'mba_t_frsize_get', + 'mba_t_frsize_set', + 'mba_t_fti_flags_get', + 'mba_t_fti_flags_set', + 'mba_t_fullsize_get', + 'mba_t_fullsize_set', + 'mba_t_generated_asserts', + 'mba_t_get_args_region', + 'mba_t_get_curfunc', + 'mba_t_get_graph', + 'mba_t_get_ida_argloc', + 'mba_t_get_lvars_region', + 'mba_t_get_mba_flags', + 'mba_t_get_mba_flags2', + 'mba_t_get_mblock', + 'mba_t_get_mblock__SWIG_0', + 'mba_t_get_mblock__SWIG_1', + 'mba_t_get_shadow_region', + 'mba_t_get_stack_region', + 'mba_t_get_std_region', + 'mba_t_gotoff_stkvars_get', + 'mba_t_gotoff_stkvars_set', + 'mba_t_graph_insns', + 'mba_t_has_bad_sp', + 'mba_t_has_outlines', + 'mba_t_has_over_chains', + 'mba_t_has_passregs', + 'mba_t_has_stack_retval', + 'mba_t_idaloc2vd', + 'mba_t_idb_spoiled_get', + 'mba_t_idb_spoiled_set', + 'mba_t_idb_type_get', + 'mba_t_idb_type_set', + 'mba_t_inargoff_get', + 'mba_t_inargoff_set', + 'mba_t_insert_block', + 'mba_t_is_cdtr', + 'mba_t_is_ctr', + 'mba_t_is_dtr', + 'mba_t_is_pattern', + 'mba_t_is_snippet', + 'mba_t_is_stkarg', + 'mba_t_is_thunk', + 'mba_t_label_get', + 'mba_t_label_set', + 'mba_t_last_prolog_ea_get', + 'mba_t_last_prolog_ea_set', + 'mba_t_loaded_gdl', + 'mba_t_lvar_names_ok', + 'mba_t_lvars_allocated', + 'mba_t_lvars_renamed', + 'mba_t_map_fict_ea', + 'mba_t_mark_chains_dirty', + 'mba_t_maturity_get', + 'mba_t_maturity_set', + 'mba_t_may_refine_rettype', + 'mba_t_mbr_get', + 'mba_t_mbr_set', + 'mba_t_minargref_get', + 'mba_t_minargref_set', + 'mba_t_minstkref_ea_get', + 'mba_t_minstkref_ea_set', + 'mba_t_minstkref_get', + 'mba_t_minstkref_set', + 'mba_t_natural_get', + 'mba_t_natural_set', + 'mba_t_nodel_memory_get', + 'mba_t_nodel_memory_set', + 'mba_t_notes_get', + 'mba_t_notes_set', + 'mba_t_npurged_get', + 'mba_t_npurged_set', + 'mba_t_occurred_warns_get', + 'mba_t_occurred_warns_set', + 'mba_t_optimize_global', + 'mba_t_optimize_local', + 'mba_t_optimized', + 'mba_t_pfn_flags_get', + 'mba_t_pfn_flags_set', + 'mba_t_precise_defeas', + 'mba_t_propagated_asserts', + 'mba_t_qty_get', + 'mba_t_qty_set', + 'mba_t_really_alloc', + 'mba_t_regargs_is_not_aligned', + 'mba_t_remove_block', + 'mba_t_remove_empty_and_unreachable_blocks', + 'mba_t_reqmat_get', + 'mba_t_reqmat_set', + 'mba_t_restricted_memory_get', + 'mba_t_restricted_memory_set', + 'mba_t_retsize_get', + 'mba_t_retsize_set', + 'mba_t_returns_fpval', + 'mba_t_retvaridx_get', + 'mba_t_retvaridx_set', + 'mba_t_rtype_refined', + 'mba_t_save_snapshot', + 'mba_t_saverest_done', + 'mba_t_serialize', + 'mba_t_set_maturity', + 'mba_t_set_mba_flags', + 'mba_t_set_mba_flags2', + 'mba_t_shadow_args_get', + 'mba_t_shadow_args_set', + 'mba_t_short_display', + 'mba_t_should_beautify', + 'mba_t_show_reduction', + 'mba_t_spd_adjust_get', + 'mba_t_spd_adjust_set', + 'mba_t_spoiled_list_get', + 'mba_t_spoiled_list_set', + 'mba_t_stacksize_get', + 'mba_t_stacksize_set', + 'mba_t_std_ivls_get', + 'mba_t_std_ivls_set', + 'mba_t_stkoff_ida2vd', + 'mba_t_stkoff_vd2ida', + 'mba_t_term', + 'mba_t_tmpstk_size_get', + 'mba_t_tmpstk_size_set', + 'mba_t_use_frame', + 'mba_t_use_wingraph32', + 'mba_t_valranges_done', + 'mba_t_vars_get', + 'mba_t_vars_set', + 'mba_t_vd2idaloc', + 'mba_t_vd2idaloc__SWIG_0', + 'mba_t_vd2idaloc__SWIG_1', + 'mba_t_verify', + 'mba_t_write_to_const_detected', 'mbl_graph_t_get_chain_stamp', 'mbl_graph_t_get_du', 'mbl_graph_t_get_mblock', @@ -5792,6 +6680,8 @@ 'mcallarg_t_dstr', 'mcallarg_t_ea_get', 'mcallarg_t_ea_set', + 'mcallarg_t_flags_get', + 'mcallarg_t_flags_set', 'mcallarg_t_make_int', 'mcallarg_t_make_uint', 'mcallarg_t_name_get', @@ -5906,6 +6796,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -6006,6 +6897,78 @@ 'memreg_infos_t_size', 'memreg_infos_t_swap', 'memreg_infos_t_truncate', + 'merge_data_t_add_event_handler', + 'merge_data_t_base_id', + 'merge_data_t_compare_merging_tifs', + 'merge_data_t_dbctx_ids_get', + 'merge_data_t_dbctx_ids_set', + 'merge_data_t_ev_handlers_get', + 'merge_data_t_ev_handlers_set', + 'merge_data_t_get_block_head', + 'merge_data_t_has_existing_node', + 'merge_data_t_item_block_locator_get', + 'merge_data_t_item_block_locator_set', + 'merge_data_t_last_udt_related_merger_get', + 'merge_data_t_last_udt_related_merger_set', + 'merge_data_t_local_id', + 'merge_data_t_map_privrange_id', + 'merge_data_t_map_tinfo', + 'merge_data_t_nbases_get', + 'merge_data_t_nbases_set', + 'merge_data_t_remote_id', + 'merge_data_t_remove_event_handler', + 'merge_data_t_set_dbctx_ids', + 'merge_data_t_setup_blocks', + 'merge_handler_params_t_insert_after_get', + 'merge_handler_params_t_insert_after_set', + 'merge_handler_params_t_kind_get', + 'merge_handler_params_t_kind_set', + 'merge_handler_params_t_label_get', + 'merge_handler_params_t_label_set', + 'merge_handler_params_t_md_get', + 'merge_handler_params_t_mh_flags_get', + 'merge_handler_params_t_mh_flags_set', + 'merge_handler_params_t_ui_complex_details', + 'merge_handler_params_t_ui_complex_details__SWIG_0', + 'merge_handler_params_t_ui_complex_details__SWIG_1', + 'merge_handler_params_t_ui_complex_name', + 'merge_handler_params_t_ui_complex_name__SWIG_0', + 'merge_handler_params_t_ui_complex_name__SWIG_1', + 'merge_handler_params_t_ui_dp_shortname', + 'merge_handler_params_t_ui_dp_shortname__SWIG_0', + 'merge_handler_params_t_ui_dp_shortname__SWIG_1', + 'merge_handler_params_t_ui_has_details', + 'merge_handler_params_t_ui_has_details__SWIG_0', + 'merge_handler_params_t_ui_has_details__SWIG_1', + 'merge_handler_params_t_ui_indent', + 'merge_handler_params_t_ui_indent__SWIG_0', + 'merge_handler_params_t_ui_indent__SWIG_1', + 'merge_handler_params_t_ui_linediff', + 'merge_handler_params_t_ui_linediff__SWIG_0', + 'merge_handler_params_t_ui_linediff__SWIG_1', + 'merge_handler_params_t_ui_split_char', + 'merge_handler_params_t_ui_split_char__SWIG_0', + 'merge_handler_params_t_ui_split_char__SWIG_1', + 'merge_handler_params_t_ui_split_str', + 'merge_handler_params_t_ui_split_str__SWIG_0', + 'merge_handler_params_t_ui_split_str__SWIG_1', + 'merge_node_helper_t_append_eavec', + 'merge_node_helper_t_get_column_headers', + 'merge_node_helper_t_get_netnode', + 'merge_node_helper_t_is_mergeable', + 'merge_node_helper_t_map_scalar', + 'merge_node_helper_t_map_string', + 'merge_node_helper_t_print_entry_details', + 'merge_node_helper_t_print_entry_name', + 'merge_node_helper_t_refresh', + 'merge_node_info_t_name_get', + 'merge_node_info_t_name_set', + 'merge_node_info_t_nds_flags_get', + 'merge_node_info_t_nds_flags_set', + 'merge_node_info_t_node_helper_get', + 'merge_node_info_t_node_helper_set', + 'merge_node_info_t_tag_get', + 'merge_node_info_t_tag_set', 'microcode_filter_t_apply', 'microcode_filter_t_match', 'minsn_t___dbg_get_meminfo', @@ -6078,7 +7041,7 @@ 'minsn_t_l_set', 'minsn_t_lexcompare', 'minsn_t_may_use_aliased_memory', - 'minsn_t_modifes_d', + 'minsn_t_modifies_d', 'minsn_t_modifies_pair_mop', 'minsn_t_next_get', 'minsn_t_next_set', @@ -6167,6 +7130,17 @@ 'mnumber_t_update_value', 'mnumber_t_value_get', 'mnumber_t_value_set', + 'moddata_diff_helper_t_fields_get', + 'moddata_diff_helper_t_fields_set', + 'moddata_diff_helper_t_get_struc_ptr', + 'moddata_diff_helper_t_merge_ending', + 'moddata_diff_helper_t_merge_starting', + 'moddata_diff_helper_t_module_name_get', + 'moddata_diff_helper_t_module_name_set', + 'moddata_diff_helper_t_netnode_name_get', + 'moddata_diff_helper_t_netnode_name_set', + 'moddata_diff_helper_t_nfields_get', + 'moddata_diff_helper_t_nfields_set', 'modify_user_lvar_info', 'modify_user_lvars', 'modinfo_t_base_get', @@ -6281,9 +7255,11 @@ 'mop_t_is_insn__SWIG_0', 'mop_t_is_insn__SWIG_1', 'mop_t_is_kreg', + 'mop_t_is_lowaddr', 'mop_t_is_mob', 'mop_t_is_negative_constant', 'mop_t_is_one', + 'mop_t_is_pcval', 'mop_t_is_positive_constant', 'mop_t_is_reg', 'mop_t_is_reg__SWIG_0', @@ -6311,12 +7287,14 @@ 'mop_t_make_reg__SWIG_1', 'mop_t_make_reg_pair', 'mop_t_make_second_half', + 'mop_t_make_stkvar', 'mop_t_may_use_aliased_memory', 'mop_t_oprops_get', 'mop_t_oprops_set', 'mop_t_preserve_side_effects', 'mop_t_probably_floating', 'mop_t_set_impptr_done', + 'mop_t_set_lowaddr', 'mop_t_set_udt', 'mop_t_set_undef_val', 'mop_t_shift_mop', @@ -6327,6 +7305,7 @@ 'mop_t_t_get', 'mop_t_t_set', 'mop_t_unsigned_value', + 'mop_t_update_numop_value', 'mop_t_valnum_get', 'mop_t_valnum_set', 'mop_t_value', @@ -6374,7 +7353,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -6384,21 +7362,23 @@ 'msg_get_lines', 'msg_save', 'must_mcode_close_block', + 'mutable_graph_t_add_edge', + 'mutable_graph_t_add_node', 'mutable_graph_t_belongs_get', 'mutable_graph_t_belongs_set', 'mutable_graph_t_calc_group_ea', 'mutable_graph_t_change_group_visibility', - 'mutable_graph_t_clear', 'mutable_graph_t_create_digraph_layout', 'mutable_graph_t_create_group', 'mutable_graph_t_del_custom_layout', + 'mutable_graph_t_del_edge', + 'mutable_graph_t_del_node', 'mutable_graph_t_delete_group', 'mutable_graph_t_edges_get', 'mutable_graph_t_edges_set', 'mutable_graph_t_empty', 'mutable_graph_t_exists', 'mutable_graph_t_get_custom_layout', - 'mutable_graph_t_get_edge', 'mutable_graph_t_get_first_subgraph_node', 'mutable_graph_t_get_graph_groups', 'mutable_graph_t_get_next_subgraph_node', @@ -6422,9 +7402,6 @@ 'mutable_graph_t_nodes_get', 'mutable_graph_t_nodes_set', 'mutable_graph_t_npred', - 'mutable_graph_t_nrect', - 'mutable_graph_t_nrect__SWIG_0', - 'mutable_graph_t_nrect__SWIG_1', 'mutable_graph_t_nsucc', 'mutable_graph_t_org_preds_get', 'mutable_graph_t_org_preds_set', @@ -6434,12 +7411,17 @@ 'mutable_graph_t_preds_get', 'mutable_graph_t_preds_set', 'mutable_graph_t_predset', + 'mutable_graph_t_redo_layout', + 'mutable_graph_t_refresh', + 'mutable_graph_t_replace_edge', 'mutable_graph_t_reset', + 'mutable_graph_t_resize', 'mutable_graph_t_set_custom_layout', 'mutable_graph_t_set_deleted_node', 'mutable_graph_t_set_edge', 'mutable_graph_t_set_graph_groups', 'mutable_graph_t_set_node_group', + 'mutable_graph_t_set_nrect', 'mutable_graph_t_size', 'mutable_graph_t_succ', 'mutable_graph_t_succs_get', @@ -6511,6 +7493,7 @@ 'netnode_easet_idx', 'netnode_easet_idx8', 'netnode_end', + 'netnode_exist', 'netnode_get_name', 'netnode_getblob', 'netnode_getblob_ea', @@ -6590,6 +7573,9 @@ 'new___qsemaphore_t', 'new___qthread_t', 'new___qtimer_t', + 'new_abstract_graph_t', + 'new_action_ctx_base_cur_sel_t', + 'new_action_ctx_base_source_t', 'new_action_ctx_base_t', 'new_action_desc_t', 'new_addon_info_t', @@ -6603,6 +7589,7 @@ 'new_argpartvec_t', 'new_argpartvec_t__SWIG_0', 'new_argpartvec_t__SWIG_1', + 'new_argtinfo_helper_t', 'new_array_of_bitsets', 'new_array_of_bitsets__SWIG_0', 'new_array_of_bitsets__SWIG_1', @@ -6616,9 +7603,9 @@ 'new_array_type_data_t', 'new_asm_t', 'new_auto_display_t', - 'new_bgcolors_t', 'new_bit_bound_t', 'new_bitfield_type_data_t', + 'new_bitrange_t', 'new_bitset_t', 'new_bitset_t__SWIG_0', 'new_bitset_t__SWIG_1', @@ -6638,13 +7625,16 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', + 'new_call_stack_info_vec_t', + 'new_call_stack_info_vec_t__SWIG_0', + 'new_call_stack_info_vec_t__SWIG_1', 'new_call_stack_t', - 'new_call_stack_t__SWIG_0', - 'new_call_stack_t__SWIG_1', 'new_callregs_t', 'new_callregs_t__SWIG_0', 'new_callregs_t__SWIG_1', + 'new_cancellable_graph_t', 'new_carg_t', 'new_carglist_t', 'new_carglist_t__SWIG_0', @@ -6687,10 +7677,16 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', + 'new_chooser_stdact_desc_t', 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -6704,14 +7700,15 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', + 'new_compiled_binpat_t', + 'new_compiled_binpat_vec_t', + 'new_compiled_binpat_vec_t__SWIG_0', + 'new_compiled_binpat_vec_t__SWIG_1', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -6733,12 +7730,31 @@ 'new_debug_event_t', 'new_debug_event_t__SWIG_0', 'new_debug_event_t__SWIG_1', + 'new_direntry_t', + 'new_direntry_vec_t', + 'new_direntry_vec_t__SWIG_0', + 'new_direntry_vec_t__SWIG_1', + 'new_dirspec_t', + 'new_dirtree_cursor_t', + 'new_dirtree_cursor_vec_t', + 'new_dirtree_cursor_vec_t__SWIG_0', + 'new_dirtree_cursor_vec_t__SWIG_1', + 'new_dirtree_iterator_t', + 'new_dirtree_selection_t', + 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', 'new_disasm_text_t', 'new_disasm_text_t__SWIG_0', 'new_disasm_text_t__SWIG_1', + 'new_dyn_ea_array', + 'new_dyn_member_ref_array', + 'new_dyn_range_array', + 'new_dyn_regarg_array', + 'new_dyn_regvar_array', + 'new_dyn_stkpnt_array', 'new_ea_array', 'new_ea_name_t', 'new_ea_name_t__SWIG_0', @@ -6753,7 +7769,6 @@ 'new_edge_layout_point_t', 'new_edge_layout_point_t__SWIG_0', 'new_edge_layout_point_t__SWIG_1', - 'new_edge_layout_point_t__SWIG_2', 'new_edge_segment_t', 'new_edge_t', 'new_edge_t__SWIG_0', @@ -6773,12 +7788,16 @@ 'new_excvec_t', 'new_excvec_t__SWIG_0', 'new_excvec_t__SWIG_1', + 'new_file_enumerator_t', 'new_fixup_data_t', 'new_fixup_data_t__SWIG_0', 'new_fixup_data_t__SWIG_1', 'new_fixup_info_t', - 'new_fnum_array', 'new_fnumber_t', + 'new_fpvalue_shorts_array_t', + 'new_fpvalue_t', + 'new_fpvalue_t__SWIG_0', + 'new_fpvalue_t__SWIG_1', 'new_func_item_iterator_t', 'new_func_item_iterator_t__SWIG_0', 'new_func_item_iterator_t__SWIG_1', @@ -6795,6 +7814,7 @@ 'new_funcargvec_t__SWIG_0', 'new_funcargvec_t__SWIG_1', 'new_gco_info_t', + 'new_gdl_graph_t', 'new_graph_chains_t', 'new_graph_item_t', 'new_graph_location_info_t', @@ -6817,6 +7837,8 @@ 'new_history_item_t__SWIG_1', 'new_history_t', 'new_ida_lowertype_helper_t', + 'new_idbattr_info_t', + 'new_idbattr_valmap_t', 'new_idc_global_t', 'new_idc_global_t__SWIG_0', 'new_idc_global_t__SWIG_1', @@ -6829,8 +7851,15 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_insn_t', 'new_instant_dbgopts_t', + 'new_int64vec_t', + 'new_int64vec_t__SWIG_0', + 'new_int64vec_t__SWIG_1', 'new_int_pointer', 'new_interval_t', 'new_interval_t__SWIG_0', @@ -6839,12 +7868,23 @@ 'new_intvec_t', 'new_intvec_t__SWIG_0', 'new_intvec_t__SWIG_1', + 'new_ioports_fallback_t', + 'new_item_block_locator_t', + 'new_iterator', 'new_ivl_t', 'new_ivl_with_name_t', 'new_ivlset_t', 'new_ivlset_t__SWIG_0', 'new_ivlset_t__SWIG_1', - 'new_llabel_t', + 'new_line_rendering_output_entries_refs_t', + 'new_line_rendering_output_entries_refs_t__SWIG_0', + 'new_line_rendering_output_entries_refs_t__SWIG_1', + 'new_line_rendering_output_entry_t', + 'new_line_rendering_output_entry_t__SWIG_0', + 'new_line_rendering_output_entry_t__SWIG_1', + 'new_linearray_t', + 'new_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -6854,9 +7894,6 @@ 'new_lochist_t', 'new_lock_func', 'new_lock_segment', - 'new_longlongvec_t', - 'new_longlongvec_t__SWIG_0', - 'new_longlongvec_t__SWIG_1', 'new_lvar_locator_t', 'new_lvar_locator_t__SWIG_0', 'new_lvar_locator_t__SWIG_1', @@ -6871,6 +7908,7 @@ 'new_lvar_saved_infos_t__SWIG_1', 'new_lvar_uservec_t', 'new_lvars_t', + 'new_macro_constructor_t', 'new_mba_range_iterator_t', 'new_mba_ranges_t', 'new_mba_ranges_t__SWIG_0', @@ -6892,6 +7930,9 @@ 'new_memreg_infos_t', 'new_memreg_infos_t__SWIG_0', 'new_memreg_infos_t__SWIG_1', + 'new_merge_handler_params_t', + 'new_merge_node_helper_t', + 'new_merge_node_info_t', 'new_microcode_filter_t', 'new_minsn_t', 'new_minsn_t__SWIG_0', @@ -6903,6 +7944,7 @@ 'new_mlist_t__SWIG_1', 'new_mlist_t__SWIG_2', 'new_mnumber_t', + 'new_moddata_diff_helper_t', 'new_modinfo_t', 'new_mop_addr_t', 'new_mop_addr_t__SWIG_0', @@ -6920,22 +7962,23 @@ 'new_netnode', 'new_netnode__SWIG_0', 'new_netnode__SWIG_1', - 'new_netnode__SWIG_2', 'new_node_info_t', 'new_node_iterator', 'new_node_layout_t', 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', + 'new_octet_generator_t', 'new_op_parent_info_t', 'new_op_t', 'new_operand_locator_t', 'new_operands_array', - 'new_operator_info_t', 'new_opinfo_t', 'new_optblock_t', 'new_optinsn_t', + 'new_params_t', 'new_plugin_info_t', 'new_point_t', 'new_point_t__SWIG_0', @@ -6958,10 +8001,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -6979,7 +8018,6 @@ 'new_qvector_snapshotvec_t', 'new_qvector_snapshotvec_t__SWIG_0', 'new_qvector_snapshotvec_t__SWIG_1', - 'new_range_array', 'new_range_t', 'new_range_t__SWIG_0', 'new_range_t__SWIG_1', @@ -6996,8 +8034,15 @@ 'new_rect_t__SWIG_1', 'new_rect_t__SWIG_2', 'new_refinfo_t', + 'new_reg_access_t', + 'new_reg_access_vec_t', + 'new_reg_access_vec_t__SWIG_0', + 'new_reg_access_vec_t__SWIG_1', + 'new_reg_accesses_t', 'new_reg_info_t', 'new_regarg_t', + 'new_regarg_t__SWIG_0', + 'new_regarg_t__SWIG_1', 'new_reginfovec_t', 'new_reginfovec_t__SWIG_0', 'new_reginfovec_t__SWIG_1', @@ -7010,10 +8055,13 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', + 'new_regvar_t__SWIG_0', + 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -7029,11 +8077,18 @@ 'new_screen_graph_selection_base_t__SWIG_0', 'new_screen_graph_selection_base_t__SWIG_1', 'new_screen_graph_selection_t', + 'new_section_lines_refs_t', + 'new_section_lines_refs_t__SWIG_0', + 'new_section_lines_refs_t__SWIG_1', + 'new_sections_lines_refs_t', + 'new_sections_lines_refs_t__SWIG_0', + 'new_sections_lines_refs_t__SWIG_1', 'new_segm_move_info_t', 'new_segm_move_info_vec_t', 'new_segm_move_info_vec_t__SWIG_0', 'new_segm_move_info_vec_t__SWIG_1', 'new_segm_move_infos_t', + 'new_segment_defsr_array', 'new_segment_t', 'new_seh_t', 'new_sel_array', @@ -7053,14 +8108,12 @@ 'new_sizevec_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -7073,6 +8126,10 @@ 'new_sync_source_t', 'new_sync_source_t__SWIG_0', 'new_sync_source_t__SWIG_1', + 'new_sync_source_vec_t', + 'new_sync_source_vec_t__SWIG_0', + 'new_sync_source_vec_t__SWIG_1', + 'new_synced_group_t', 'new_tev_info_reg_t', 'new_tev_info_t', 'new_tev_reg_value_t', @@ -7083,6 +8140,9 @@ 'new_tevinforeg_vec_t__SWIG_0', 'new_tevinforeg_vec_t__SWIG_1', 'new_text_sink_t', + 'new_text_t', + 'new_text_t__SWIG_0', + 'new_text_t__SWIG_1', 'new_thread_name_t', 'new_tid_array', 'new_til', @@ -7101,6 +8161,9 @@ 'new_tryblks_t', 'new_tryblks_t__SWIG_0', 'new_tryblks_t__SWIG_1', + 'new_twinline_t', + 'new_twinline_t__SWIG_0', + 'new_twinline_t__SWIG_1', 'new_twinpos_t', 'new_twinpos_t__SWIG_0', 'new_twinpos_t__SWIG_1', @@ -7120,22 +8183,24 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', 'new_ui_stroff_ops_t', 'new_ui_stroff_ops_t__SWIG_0', 'new_ui_stroff_ops_t__SWIG_1', + 'new_uint64vec_t', + 'new_uint64vec_t__SWIG_0', + 'new_uint64vec_t__SWIG_1', 'new_uintvec_t', 'new_uintvec_t__SWIG_0', 'new_uintvec_t__SWIG_1', - 'new_ulonglongvec_t', - 'new_ulonglongvec_t__SWIG_0', - 'new_ulonglongvec_t__SWIG_1', 'new_user_cmts_iterator_t', 'new_user_cmts_t', + 'new_user_defined_prefix_t', 'new_user_iflags_iterator_t', 'new_user_iflags_t', 'new_user_labels_iterator_t', @@ -7193,6 +8258,7 @@ 'next_not_tail', 'next_that', 'next_unknown', + 'next_visea', 'node2ea', 'node_info_t_bg_color_get', 'node_info_t_bg_color_set', @@ -7254,16 +8320,23 @@ 'node_layout_t_swap', 'node_layout_t_truncate', 'node_ordering_t_clear', + 'node_ordering_t_clr', 'node_ordering_t_node', + 'node_ordering_t_order', 'node_ordering_t_resize', 'node_ordering_t_set', 'node_ordering_t_size', 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', + 'number_format_t_has_unmutable_type', 'number_format_t_is_char', 'number_format_t_is_dec', 'number_format_t_is_enum', @@ -7284,6 +8357,15 @@ 'number_format_t_type_name_get', 'number_format_t_type_name_set', 'oct_flag', + 'octet_generator_t_avail_bits_get', + 'octet_generator_t_avail_bits_set', + 'octet_generator_t_ea_get', + 'octet_generator_t_ea_set', + 'octet_generator_t_high_byte_first_get', + 'octet_generator_t_high_byte_first_set', + 'octet_generator_t_invert_byte_order', + 'octet_generator_t_value_get', + 'octet_generator_t_value_set', 'off_flag', 'op_adds_xrefs', 'op_bin', @@ -7318,6 +8400,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -7332,6 +8416,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -7342,11 +8430,16 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', + 'open_bookmarks_window', 'open_bpts_window', 'open_calls_window', 'open_disasm_window', @@ -7390,17 +8483,9 @@ 'operands_array___getitem__', 'operands_array___len__', 'operands_array___setitem__', + 'operands_array__get_bytes', + 'operands_array__set_bytes', 'operands_array_data_get', - 'operator_info_t_fixtype_get', - 'operator_info_t_fixtype_set', - 'operator_info_t_flags_get', - 'operator_info_t_flags_set', - 'operator_info_t_precedence_get', - 'operator_info_t_precedence_set', - 'operator_info_t_text_get', - 'operator_info_t_text_set', - 'operator_info_t_valency_get', - 'operator_info_t_valency_set', 'opinfo_t_cd_get', 'opinfo_t_cd_set', 'opinfo_t_ec_get', @@ -7480,6 +8565,8 @@ 'outctx_base_t_stack_view', 'outctx_base_t_term_outctx', 'outctx_t__from_ptrval__', + 'outctx_t_ash_get', + 'outctx_t_ash_set', 'outctx_t_bin_ea_get', 'outctx_t_bin_ea_set', 'outctx_t_bin_state_get', @@ -7504,8 +8591,14 @@ 'outctx_t_out_mnemonic', 'outctx_t_out_one_operand', 'outctx_t_out_specea', + 'outctx_t_ph_get', + 'outctx_t_ph_set', + 'outctx_t_procmod_get', + 'outctx_t_procmod_set', 'outctx_t_retrieve_cmt', 'outctx_t_retrieve_name', + 'outctx_t_saved_immvals_get', + 'outctx_t_saved_immvals_set', 'outctx_t_set_bin_state', 'outctx_t_setup_outctx', 'outctx_t_wif_get', @@ -7516,10 +8609,17 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', + 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', 'parse_decl', 'parse_decls', + 'parse_decls_for_srclang', + 'parse_decls_with_parser', 'parse_reg_name', 'parse_user_call', 'partial_type_num', @@ -7542,6 +8642,7 @@ 'ph_get_instruc_end', 'ph_get_instruc_start', 'ph_get_operand_info', + 'ph_get_reg_accesses', 'ph_get_reg_code_sreg', 'ph_get_reg_data_sreg', 'ph_get_reg_first_sreg', @@ -7559,6 +8660,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -7664,6 +8766,7 @@ 'prev_not_tail', 'prev_that', 'prev_unknown', + 'prev_visea', 'print_argloc', 'print_decls', 'print_idcv', @@ -7689,6 +8792,7 @@ 'printop_t_ti_get', 'printop_t_ti_set', 'process_archive', + 'process_config_directive', 'process_info_t_name_get', 'process_info_t_name_set', 'process_info_t_pid_get', @@ -7750,13 +8854,13 @@ 'put_qword', 'put_word', 'py_add_idc_func', + 'py_chooser_base_t_get_row', 'py_get_ask_form', 'py_get_call_idc_func', 'py_get_open_form', 'py_load_custom_icon_data', 'py_load_custom_icon_fn', 'py_register_compiled_form', - 'py_ss_restore_callback', 'py_unregister_compiled_form', 'pycim_get_widget', 'pycim_view_close', @@ -7846,49 +8950,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___getitem__', - 'qlist_cinsn_t___len__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t___setitem__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_insert__SWIG_4', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_remove', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -7914,6 +8975,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8116,11 +9178,6 @@ 'qvector_snapshotvec_t_swap', 'qvector_snapshotvec_t_truncate', 'qword_flag', - 'range_array___getitem__', - 'range_array___len__', - 'range_array___setitem__', - 'range_array_count_get', - 'range_array_data_get', 'range_t___eq__', 'range_t___gt__', 'range_t___lt__', @@ -8221,6 +9278,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8262,6 +9320,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -8276,12 +9336,64 @@ 'refinfo_t_type', 'refresh_chooser', 'refresh_choosers', + 'refresh_custom_viewer', 'refresh_debugger_memory', 'refresh_idaview', 'refresh_idaview_anyway', 'refresh_navband', 'refresh_viewer', 'reg2mreg', + 'reg_access_t___eq__', + 'reg_access_t___ne__', + 'reg_access_t_access_type_get', + 'reg_access_t_access_type_set', + 'reg_access_t_have_common_bits', + 'reg_access_t_opnum_get', + 'reg_access_t_opnum_set', + 'reg_access_t_range_get', + 'reg_access_t_range_set', + 'reg_access_t_regnum_get', + 'reg_access_t_regnum_set', + 'reg_access_vec_t___eq__', + 'reg_access_vec_t___getitem__', + 'reg_access_vec_t___len__', + 'reg_access_vec_t___ne__', + 'reg_access_vec_t___setitem__', + 'reg_access_vec_t__del', + 'reg_access_vec_t_add_unique', + 'reg_access_vec_t_at', + 'reg_access_vec_t_begin', + 'reg_access_vec_t_begin__SWIG_0', + 'reg_access_vec_t_begin__SWIG_1', + 'reg_access_vec_t_capacity', + 'reg_access_vec_t_clear', + 'reg_access_vec_t_empty', + 'reg_access_vec_t_end', + 'reg_access_vec_t_end__SWIG_0', + 'reg_access_vec_t_end__SWIG_1', + 'reg_access_vec_t_erase', + 'reg_access_vec_t_erase__SWIG_0', + 'reg_access_vec_t_erase__SWIG_1', + 'reg_access_vec_t_extract', + 'reg_access_vec_t_find', + 'reg_access_vec_t_find__SWIG_0', + 'reg_access_vec_t_find__SWIG_1', + 'reg_access_vec_t_grow', + 'reg_access_vec_t_has', + 'reg_access_vec_t_inject', + 'reg_access_vec_t_insert', + 'reg_access_vec_t_pop_back', + 'reg_access_vec_t_push_back', + 'reg_access_vec_t_push_back__SWIG_0', + 'reg_access_vec_t_push_back__SWIG_1', + 'reg_access_vec_t_qclear', + 'reg_access_vec_t_reserve', + 'reg_access_vec_t_resize', + 'reg_access_vec_t_resize__SWIG_0', + 'reg_access_vec_t_resize__SWIG_1', + 'reg_access_vec_t_size', + 'reg_access_vec_t_swap', + 'reg_access_vec_t_truncate', 'reg_data_type', 'reg_delete', 'reg_delete_subkey', @@ -8318,6 +9430,7 @@ 'regarg_t_name_set', 'regarg_t_reg_get', 'regarg_t_reg_set', + 'regarg_t_swap', 'regarg_t_type_get', 'regarg_t_type_set', 'reginfovec_t___eq__', @@ -8363,6 +9476,7 @@ 'register_action', 'register_addon', 'register_and_attach_to_menu', + 'register_cfgopts', 'register_custom_data_format', 'register_custom_data_type', 'register_info_t_bit_strings_get', @@ -8441,15 +9555,11 @@ 'regval_t_set_int', 'regval_t_set_unavailable', 'regval_t_swap', - 'regvar_array___getitem__', - 'regvar_array___len__', - 'regvar_array___setitem__', - 'regvar_array_count_get', - 'regvar_array_data_get', 'regvar_t_canon_get', 'regvar_t_canon_set', 'regvar_t_cmt_get', 'regvar_t_cmt_set', + 'regvar_t_swap', 'regvar_t_user_get', 'regvar_t_user_set', 'reload_file', @@ -8465,6 +9575,7 @@ 'rename_bptgrp', 'rename_encoding', 'rename_entry', + 'rename_lvar', 'rename_regvar', 'renderer_info_pos_t___eq__', 'renderer_info_pos_t___ne__', @@ -8476,7 +9587,6 @@ 'renderer_info_pos_t_node_set', 'renderer_info_t___eq__', 'renderer_info_t___ne__', - 'renderer_info_t_clear', 'renderer_info_t_gli_get', 'renderer_info_t_gli_set', 'renderer_info_t_pos_get', @@ -8545,6 +9655,7 @@ 'restore_user_defined_calls', 'restore_user_iflags', 'restore_user_labels', + 'restore_user_labels2', 'restore_user_lvar_settings', 'restore_user_numforms', 'restore_user_unions', @@ -8580,6 +9691,7 @@ 'save_user_defined_calls', 'save_user_iflags', 'save_user_labels', + 'save_user_labels2', 'save_user_lvar_settings', 'save_user_numforms', 'save_user_unions', @@ -8644,6 +9756,85 @@ 'screen_graph_selection_t_points_count', 'screen_graph_selection_t_sub', 'search_down', + 'section_lines_refs_t___eq__', + 'section_lines_refs_t___getitem__', + 'section_lines_refs_t___len__', + 'section_lines_refs_t___ne__', + 'section_lines_refs_t___setitem__', + 'section_lines_refs_t__del', + 'section_lines_refs_t_add_unique', + 'section_lines_refs_t_at', + 'section_lines_refs_t_begin', + 'section_lines_refs_t_begin__SWIG_0', + 'section_lines_refs_t_begin__SWIG_1', + 'section_lines_refs_t_capacity', + 'section_lines_refs_t_clear', + 'section_lines_refs_t_empty', + 'section_lines_refs_t_end', + 'section_lines_refs_t_end__SWIG_0', + 'section_lines_refs_t_end__SWIG_1', + 'section_lines_refs_t_erase', + 'section_lines_refs_t_erase__SWIG_0', + 'section_lines_refs_t_erase__SWIG_1', + 'section_lines_refs_t_extract', + 'section_lines_refs_t_find', + 'section_lines_refs_t_find__SWIG_0', + 'section_lines_refs_t_find__SWIG_1', + 'section_lines_refs_t_has', + 'section_lines_refs_t_inject', + 'section_lines_refs_t_insert', + 'section_lines_refs_t_pop_back', + 'section_lines_refs_t_push_back', + 'section_lines_refs_t_push_back__SWIG_0', + 'section_lines_refs_t_push_back__SWIG_1', + 'section_lines_refs_t_qclear', + 'section_lines_refs_t_reserve', + 'section_lines_refs_t_resize', + 'section_lines_refs_t_resize__SWIG_0', + 'section_lines_refs_t_resize__SWIG_1', + 'section_lines_refs_t_size', + 'section_lines_refs_t_swap', + 'section_lines_refs_t_truncate', + 'sections_lines_refs_t___eq__', + 'sections_lines_refs_t___getitem__', + 'sections_lines_refs_t___len__', + 'sections_lines_refs_t___ne__', + 'sections_lines_refs_t___setitem__', + 'sections_lines_refs_t__del', + 'sections_lines_refs_t_add_unique', + 'sections_lines_refs_t_at', + 'sections_lines_refs_t_begin', + 'sections_lines_refs_t_begin__SWIG_0', + 'sections_lines_refs_t_begin__SWIG_1', + 'sections_lines_refs_t_capacity', + 'sections_lines_refs_t_clear', + 'sections_lines_refs_t_empty', + 'sections_lines_refs_t_end', + 'sections_lines_refs_t_end__SWIG_0', + 'sections_lines_refs_t_end__SWIG_1', + 'sections_lines_refs_t_erase', + 'sections_lines_refs_t_erase__SWIG_0', + 'sections_lines_refs_t_erase__SWIG_1', + 'sections_lines_refs_t_extract', + 'sections_lines_refs_t_find', + 'sections_lines_refs_t_find__SWIG_0', + 'sections_lines_refs_t_find__SWIG_1', + 'sections_lines_refs_t_grow', + 'sections_lines_refs_t_has', + 'sections_lines_refs_t_inject', + 'sections_lines_refs_t_insert', + 'sections_lines_refs_t_pop_back', + 'sections_lines_refs_t_push_back', + 'sections_lines_refs_t_push_back__SWIG_0', + 'sections_lines_refs_t_push_back__SWIG_1', + 'sections_lines_refs_t_qclear', + 'sections_lines_refs_t_reserve', + 'sections_lines_refs_t_resize', + 'sections_lines_refs_t_resize__SWIG_0', + 'sections_lines_refs_t_resize__SWIG_1', + 'sections_lines_refs_t_size', + 'sections_lines_refs_t_swap', + 'sections_lines_refs_t_truncate', 'seg_flag', 'segm_adjust_diff', 'segm_adjust_ea', @@ -8696,6 +9887,13 @@ 'segm_move_info_vec_t_swap', 'segm_move_info_vec_t_truncate', 'segm_move_infos_t_find', + 'segment_defsr_array___getitem__', + 'segment_defsr_array___len__', + 'segment_defsr_array___setitem__', + 'segment_defsr_array__get_bytes', + 'segment_defsr_array__set_bytes', + 'segment_defsr_array_data_get', + 'segment_t___getDefsr', 'segment_t_abits', 'segment_t_abytes', 'segment_t_align_get', @@ -8715,6 +9913,9 @@ 'segment_t_end_ea_set', 'segment_t_flags_get', 'segment_t_flags_set', + 'segment_t_is_16bit', + 'segment_t_is_32bit', + 'segment_t_is_64bit', 'segment_t_is_header_segm', 'segment_t_is_hidden_segtype', 'segment_t_is_loader_segm', @@ -8742,8 +9943,6 @@ 'segment_t_type_get', 'segment_t_type_set', 'segment_t_update', - 'segment_t_use32', - 'segment_t_use64', 'segtype', 'seh_t_clear', 'seh_t_filter_get', @@ -8760,6 +9959,8 @@ 'sel_pointer_cast', 'sel_pointer_frompointer', 'sel_pointer_value', + 'select_parser_by_name', + 'select_parser_by_srclang', 'select_thread', 'select_udt_by_offset', 'selection_item_t___eq__', @@ -8790,7 +9991,6 @@ 'set_asm_inc_file', 'set_auto_state', 'set_bblk_trace_options', - 'set_bits', 'set_bmask_cmt', 'set_bmask_name', 'set_bpt_group', @@ -8814,6 +10014,7 @@ 'set_cp_validity', 'set_custom_data_type_ids', 'set_custom_viewer_qt_aware', + 'set_data_guessed_by_hexrays', 'set_database_flag', 'set_debug_event_code', 'set_debug_name', @@ -8844,6 +10045,7 @@ 'set_frame_size', 'set_func_cmt', 'set_func_end', + 'set_func_guessed_by_hexrays', 'set_func_name_if_jumpfunc', 'set_func_start', 'set_func_trace_options', @@ -8856,15 +10058,19 @@ 'set_header_path', 'set_highlight', 'set_highlight_trace_options', + 'set_ida_notepad_text', 'set_ida_state', 'set_idcv_attr', 'set_idcv_slice', 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', + 'set_loader_format_name', 'set_lzero', 'set_lzero0', 'set_lzero1', @@ -8886,6 +10092,7 @@ 'set_op_type', 'set_opinfo', 'set_outfile_encoding_idx', + 'set_parser_argv', 'set_path', 'set_process_options', 'set_process_state', @@ -8896,6 +10103,7 @@ 'set_reg_val', 'set_reg_val__SWIG_0', 'set_reg_val__SWIG_1', + 'set_registry_root', 'set_regvar_cmt', 'set_remote_debugger', 'set_resume_mode', @@ -8912,8 +10120,11 @@ 'set_segment_translations', 'set_selector', 'set_source_linnum', + 'set_srcdbg_paths', + 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -8932,15 +10143,19 @@ 'set_tinfo_attrs', 'set_tinfo_property', 'set_trace_base_address', + 'set_trace_dynamic_register_set', 'set_trace_file_desc', 'set_trace_platform', 'set_trace_size', 'set_type', 'set_type_alias', + 'set_type_determined_by_hexrays', + 'set_type_guessed_by_ida', 'set_usemodsp', 'set_user_defined_prefix', 'set_usersp', 'set_userti', + 'set_vftable_ea', 'set_view_renderer_type', 'set_viewer_graph', 'set_visible_func', @@ -9048,11 +10263,14 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9107,6 +10325,8 @@ 'strpath_ids_array___getitem__', 'strpath_ids_array___len__', 'strpath_ids_array___setitem__', + 'strpath_ids_array__get_bytes', + 'strpath_ids_array__set_bytes', 'strpath_ids_array_data_get', 'strpath_t___getIds', 'strpath_t_delta_get', @@ -9116,20 +10336,27 @@ 'strpath_t_len_get', 'strpath_t_len_set', 'stru_flag', + 'struc_t___get_members__', 'struc_t_age_get', 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', - 'struc_t_get_member', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -9140,6 +10367,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -9183,7 +10411,6 @@ 'strwinsetup_t_display_only_existing_strings_set', 'strwinsetup_t_ignore_heads_get', 'strwinsetup_t_ignore_heads_set', - 'strwinsetup_t_is_initialized', 'strwinsetup_t_minlen_get', 'strwinsetup_t_minlen_set', 'strwinsetup_t_only_7bit_get', @@ -9197,6 +10424,7 @@ 'swap_idcvs', 'swap_mcode_relation', 'swapped_relation', + 'switch_dbctx', 'switch_info_t__from_ptrval__', 'switch_info_t__get_values_lowcase', 'switch_info_t__set_values_lowcase', @@ -9228,10 +10456,13 @@ 'switch_info_t_is_nolowcase', 'switch_info_t_is_sparse', 'switch_info_t_is_subtract', + 'switch_info_t_is_user_defined', 'switch_info_t_jcases_get', 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -9249,13 +10480,53 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', + 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', 'sync_source_t_get_register', 'sync_source_t_get_widget', 'sync_source_t_is_register', 'sync_source_t_is_widget', + 'sync_source_vec_t___eq__', + 'sync_source_vec_t___getitem__', + 'sync_source_vec_t___len__', + 'sync_source_vec_t___ne__', + 'sync_source_vec_t___setitem__', + 'sync_source_vec_t__del', + 'sync_source_vec_t_add_unique', + 'sync_source_vec_t_at', + 'sync_source_vec_t_begin', + 'sync_source_vec_t_begin__SWIG_0', + 'sync_source_vec_t_begin__SWIG_1', + 'sync_source_vec_t_capacity', + 'sync_source_vec_t_clear', + 'sync_source_vec_t_empty', + 'sync_source_vec_t_end', + 'sync_source_vec_t_end__SWIG_0', + 'sync_source_vec_t_end__SWIG_1', + 'sync_source_vec_t_erase', + 'sync_source_vec_t_erase__SWIG_0', + 'sync_source_vec_t_erase__SWIG_1', + 'sync_source_vec_t_extract', + 'sync_source_vec_t_find', + 'sync_source_vec_t_find__SWIG_0', + 'sync_source_vec_t_find__SWIG_1', + 'sync_source_vec_t_has', + 'sync_source_vec_t_inject', + 'sync_source_vec_t_insert', + 'sync_source_vec_t_pop_back', + 'sync_source_vec_t_push_back', + 'sync_source_vec_t_qclear', + 'sync_source_vec_t_reserve', + 'sync_source_vec_t_size', + 'sync_source_vec_t_swap', + 'sync_source_vec_t_truncate', 'sync_sources', + 'synced_group_t_has', + 'synced_group_t_has_register', + 'synced_group_t_has_widget', 'tag_addr', 'tag_advance', 'tag_remove', @@ -9345,6 +10616,38 @@ 'tevinforeg_vec_t_swap', 'tevinforeg_vec_t_truncate', 'text_sink_t__print', + 'text_t___getitem__', + 'text_t___len__', + 'text_t___setitem__', + 'text_t_at', + 'text_t_begin', + 'text_t_begin__SWIG_0', + 'text_t_begin__SWIG_1', + 'text_t_capacity', + 'text_t_clear', + 'text_t_empty', + 'text_t_end', + 'text_t_end__SWIG_0', + 'text_t_end__SWIG_1', + 'text_t_erase', + 'text_t_erase__SWIG_0', + 'text_t_erase__SWIG_1', + 'text_t_extract', + 'text_t_grow', + 'text_t_inject', + 'text_t_insert', + 'text_t_pop_back', + 'text_t_push_back', + 'text_t_push_back__SWIG_0', + 'text_t_push_back__SWIG_1', + 'text_t_qclear', + 'text_t_reserve', + 'text_t_resize', + 'text_t_resize__SWIG_0', + 'text_t_resize__SWIG_1', + 'text_t_size', + 'text_t_swap', + 'text_t_truncate', 'textctrl_info_t_assign', 'textctrl_info_t_create', 'textctrl_info_t_destroy', @@ -9450,6 +10753,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -9582,6 +10886,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -9661,8 +10966,16 @@ 'tryblks_t_size', 'tryblks_t_swap', 'tryblks_t_truncate', - 'twinpos_t___eq__', - 'twinpos_t___ne__', + 'twinline_t_at_get', + 'twinline_t_at_set', + 'twinline_t_bg_color_get', + 'twinline_t_bg_color_set', + 'twinline_t_is_default_get', + 'twinline_t_is_default_set', + 'twinline_t_line_get', + 'twinline_t_line_set', + 'twinline_t_prefix_color_get', + 'twinline_t_prefix_color_set', 'twinpos_t_at_get', 'twinpos_t_at_set', 'twinpos_t_x_get', @@ -9723,6 +11036,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -9733,8 +11050,12 @@ 'uchar_array_cast', 'uchar_array_frompointer', 'udc_filter_t_apply', + 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', + 'udc_filter_t_install', 'udc_filter_t_match', + 'udc_filter_t_remove', 'udcall_map_begin', 'udcall_map_clear', 'udcall_map_end', @@ -9759,6 +11080,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -9768,6 +11090,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -9781,6 +11104,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -9790,6 +11114,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -9813,6 +11138,7 @@ 'udt_type_data_t_pack_set', 'udt_type_data_t_sda_get', 'udt_type_data_t_sda_set', + 'udt_type_data_t_set_vftable', 'udt_type_data_t_swap', 'udt_type_data_t_taudt_bits_get', 'udt_type_data_t_taudt_bits_set', @@ -9820,46 +11146,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', @@ -9909,6 +11235,45 @@ 'ui_stroff_ops_t_size', 'ui_stroff_ops_t_swap', 'ui_stroff_ops_t_truncate', + 'uint64vec_t___eq__', + 'uint64vec_t___getitem__', + 'uint64vec_t___len__', + 'uint64vec_t___ne__', + 'uint64vec_t___setitem__', + 'uint64vec_t__del', + 'uint64vec_t_add_unique', + 'uint64vec_t_at', + 'uint64vec_t_begin', + 'uint64vec_t_begin__SWIG_0', + 'uint64vec_t_begin__SWIG_1', + 'uint64vec_t_capacity', + 'uint64vec_t_clear', + 'uint64vec_t_empty', + 'uint64vec_t_end', + 'uint64vec_t_end__SWIG_0', + 'uint64vec_t_end__SWIG_1', + 'uint64vec_t_erase', + 'uint64vec_t_erase__SWIG_0', + 'uint64vec_t_erase__SWIG_1', + 'uint64vec_t_extract', + 'uint64vec_t_find', + 'uint64vec_t_find__SWIG_0', + 'uint64vec_t_find__SWIG_1', + 'uint64vec_t_has', + 'uint64vec_t_inject', + 'uint64vec_t_insert', + 'uint64vec_t_pop_back', + 'uint64vec_t_push_back', + 'uint64vec_t_push_back__SWIG_0', + 'uint64vec_t_push_back__SWIG_1', + 'uint64vec_t_qclear', + 'uint64vec_t_reserve', + 'uint64vec_t_resize', + 'uint64vec_t_resize__SWIG_0', + 'uint64vec_t_resize__SWIG_1', + 'uint64vec_t_size', + 'uint64vec_t_swap', + 'uint64vec_t_truncate', 'uintvec_t___eq__', 'uintvec_t___getitem__', 'uintvec_t___len__', @@ -9948,45 +11313,6 @@ 'uintvec_t_size', 'uintvec_t_swap', 'uintvec_t_truncate', - 'ulonglongvec_t___eq__', - 'ulonglongvec_t___getitem__', - 'ulonglongvec_t___len__', - 'ulonglongvec_t___ne__', - 'ulonglongvec_t___setitem__', - 'ulonglongvec_t__del', - 'ulonglongvec_t_add_unique', - 'ulonglongvec_t_at', - 'ulonglongvec_t_begin', - 'ulonglongvec_t_begin__SWIG_0', - 'ulonglongvec_t_begin__SWIG_1', - 'ulonglongvec_t_capacity', - 'ulonglongvec_t_clear', - 'ulonglongvec_t_empty', - 'ulonglongvec_t_end', - 'ulonglongvec_t_end__SWIG_0', - 'ulonglongvec_t_end__SWIG_1', - 'ulonglongvec_t_erase', - 'ulonglongvec_t_erase__SWIG_0', - 'ulonglongvec_t_erase__SWIG_1', - 'ulonglongvec_t_extract', - 'ulonglongvec_t_find', - 'ulonglongvec_t_find__SWIG_0', - 'ulonglongvec_t_find__SWIG_1', - 'ulonglongvec_t_has', - 'ulonglongvec_t_inject', - 'ulonglongvec_t_insert', - 'ulonglongvec_t_pop_back', - 'ulonglongvec_t_push_back', - 'ulonglongvec_t_push_back__SWIG_0', - 'ulonglongvec_t_push_back__SWIG_1', - 'ulonglongvec_t_qclear', - 'ulonglongvec_t_reserve', - 'ulonglongvec_t_resize', - 'ulonglongvec_t_resize__SWIG_0', - 'ulonglongvec_t_resize__SWIG_1', - 'ulonglongvec_t_size', - 'ulonglongvec_t_swap', - 'ulonglongvec_t_truncate', 'unhide_border', 'unhide_item', 'unmark_selection', @@ -9998,6 +11324,7 @@ 'unregister_custom_data_format', 'unregister_custom_data_type', 'unregister_timer', + 'upd_abits', 'update_action_checkable', 'update_action_checked', 'update_action_icon', @@ -10012,6 +11339,7 @@ 'update_func', 'update_hidden_range', 'update_segm', + 'use_golang_cc', 'use_mapping', 'user_cancelled', 'user_cmts_begin', @@ -10033,6 +11361,7 @@ 'user_cmts_size', 'user_cmts_t_at', 'user_cmts_t_size', + 'user_defined_prefix_t_get_user_defined_prefix', 'user_graph_place_t_node_get', 'user_graph_place_t_node_set', 'user_iflags_begin', @@ -10112,6 +11441,7 @@ 'user_unions_size', 'user_unions_t_at', 'user_unions_t_size', + 'uses_aflag_modsp', 'uses_modsp', 'uval_array___getitem__', 'uval_array___setitem__', @@ -10134,6 +11464,8 @@ 'uval_ivl_ivlset_t_qclear', 'uval_ivl_ivlset_t_set_all_values', 'uval_ivl_ivlset_t_single_value', + 'uval_ivl_ivlset_t_single_value__SWIG_0', + 'uval_ivl_ivlset_t_single_value__SWIG_1', 'uval_ivl_ivlset_t_swap', 'uval_ivl_t_end', 'uval_ivl_t_last', @@ -10230,6 +11562,7 @@ 'var_ref_t___lt__', 'var_ref_t___ne__', 'var_ref_t_compare', + 'var_ref_t_getv', 'var_ref_t_idx_get', 'var_ref_t_idx_set', 'var_ref_t_mba_get', @@ -10437,7 +11770,12 @@ 'xrefblk_t_user_set', 'xrefchar', 'xreflist_entry_t___eq__', + 'xreflist_entry_t___ge__', + 'xreflist_entry_t___gt__', + 'xreflist_entry_t___le__', + 'xreflist_entry_t___lt__', 'xreflist_entry_t___ne__', + 'xreflist_entry_t_compare', 'xreflist_entry_t_ea_get', 'xreflist_entry_t_ea_set', 'xreflist_entry_t_opnum_get', @@ -10485,4 +11823,4 @@ 'xreflist_t_swap', 'xreflist_t_truncate', 'yword_flag', - 'zword_flag']} + 'zword_flag']} \ No newline at end of file diff --git a/release_api_contents2.txt b/release_api_contents_pro3.txt similarity index 83% rename from release_api_contents2.txt rename to release_api_contents_pro3.txt index a1f4ccc..562b25b 100644 --- a/release_api_contents2.txt +++ b/release_api_contents_pro3.txt @@ -22,6 +22,7 @@ 'DBG_Hooks_dbg_trace', 'DBG_Hooks_hook', 'DBG_Hooks_unhook', + 'Hexrays_Hooks_build_callinfo', 'Hexrays_Hooks_close_pseudocode', 'Hexrays_Hooks_cmt_changed', 'Hexrays_Hooks_combine', @@ -55,6 +56,7 @@ 'Hexrays_Hooks_switch_pseudocode', 'Hexrays_Hooks_text_ready', 'Hexrays_Hooks_unhook', + 'IDB_Hooks_adding_segm', 'IDB_Hooks_allsegs_moved', 'IDB_Hooks_auto_empty', 'IDB_Hooks_auto_empty_finally', @@ -88,19 +90,30 @@ 'IDB_Hooks_deleting_tryblks', 'IDB_Hooks_destroyed_items', 'IDB_Hooks_determined_main', + 'IDB_Hooks_dirtree_link', + 'IDB_Hooks_dirtree_mkdir', + 'IDB_Hooks_dirtree_move', + 'IDB_Hooks_dirtree_rank', + 'IDB_Hooks_dirtree_rmdir', + 'IDB_Hooks_dirtree_rminode', + 'IDB_Hooks_dirtree_segm_moved', 'IDB_Hooks_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', 'IDB_Hooks_enum_deleted', + 'IDB_Hooks_enum_flag_changed', 'IDB_Hooks_enum_member_created', 'IDB_Hooks_enum_member_deleted', + 'IDB_Hooks_enum_ordinal_changed', 'IDB_Hooks_enum_renamed', + 'IDB_Hooks_enum_width_changed', 'IDB_Hooks_expanding_struc', 'IDB_Hooks_extlang_changed', 'IDB_Hooks_extra_cmt_changed', 'IDB_Hooks_flow_chart_created', 'IDB_Hooks_frame_deleted', 'IDB_Hooks_func_added', + 'IDB_Hooks_func_deleted', 'IDB_Hooks_func_noret_changed', 'IDB_Hooks_func_tail_appended', 'IDB_Hooks_func_tail_deleted', @@ -158,7 +171,9 @@ 'IDP_Hooks_ev_adjust_refinfo', 'IDP_Hooks_ev_ana_insn', 'IDP_Hooks_ev_analyze_prolog', + 'IDP_Hooks_ev_arch_changed', 'IDP_Hooks_ev_arg_addrs_ready', + 'IDP_Hooks_ev_asm_installed', 'IDP_Hooks_ev_assemble', 'IDP_Hooks_ev_auto_queue_empty', 'IDP_Hooks_ev_calc_arglocs', @@ -178,6 +193,7 @@ 'IDP_Hooks_ev_coagulate_dref', 'IDP_Hooks_ev_create_flat_group', 'IDP_Hooks_ev_create_func_frame', + 'IDP_Hooks_ev_create_merge_handlers', 'IDP_Hooks_ev_create_switch_xrefs', 'IDP_Hooks_ev_creating_segm', 'IDP_Hooks_ev_decorate_name', @@ -208,10 +224,12 @@ 'IDP_Hooks_ev_get_frame_retsize', 'IDP_Hooks_ev_get_macro_insn_head', 'IDP_Hooks_ev_get_operand_string', + 'IDP_Hooks_ev_get_procmod', + 'IDP_Hooks_ev_get_reg_accesses', 'IDP_Hooks_ev_get_reg_info', 'IDP_Hooks_ev_get_reg_name', 'IDP_Hooks_ev_get_simd_types', - 'IDP_Hooks_ev_get_stkarg_offset', + 'IDP_Hooks_ev_get_stkarg_area_info', 'IDP_Hooks_ev_get_stkvar_scale_factor', 'IDP_Hooks_ev_getreg', 'IDP_Hooks_ev_init', @@ -221,6 +239,7 @@ 'IDP_Hooks_ev_is_basic_block_end', 'IDP_Hooks_ev_is_call_insn', 'IDP_Hooks_ev_is_cond_insn', + 'IDP_Hooks_ev_is_control_flow_guard', 'IDP_Hooks_ev_is_far_jump', 'IDP_Hooks_ev_is_indirect_jump', 'IDP_Hooks_ev_is_insn_table_jump', @@ -253,6 +272,7 @@ 'IDP_Hooks_ev_out_segend', 'IDP_Hooks_ev_out_segstart', 'IDP_Hooks_ev_out_special_item', + 'IDP_Hooks_ev_privrange_changed', 'IDP_Hooks_ev_realcvt', 'IDP_Hooks_ev_rename', 'IDP_Hooks_ev_replaying_undo', @@ -260,11 +280,11 @@ 'IDP_Hooks_ev_set_idp_options', 'IDP_Hooks_ev_set_proc_options', 'IDP_Hooks_ev_setup_til', - 'IDP_Hooks_ev_shadow_args_size', 'IDP_Hooks_ev_str2reg', 'IDP_Hooks_ev_term', 'IDP_Hooks_ev_treat_hindering_item', 'IDP_Hooks_ev_undefine', + 'IDP_Hooks_ev_update_call_stack', 'IDP_Hooks_ev_use_arg_types', 'IDP_Hooks_ev_use_regarg_type', 'IDP_Hooks_ev_use_stkarg_type', @@ -285,17 +305,23 @@ 'TWidget__from_ptrval__', 'UI_Hooks_create_desktop_widget', 'UI_Hooks_current_widget_changed', + 'UI_Hooks_database_closed', 'UI_Hooks_database_inited', 'UI_Hooks_debugger_menu_change', + 'UI_Hooks_desktop_applied', + 'UI_Hooks_destroying_plugmod', + 'UI_Hooks_destroying_procmod', 'UI_Hooks_finish_populating_widget_popup', 'UI_Hooks_get_chooser_item_attrs', 'UI_Hooks_get_custom_viewer_hint', 'UI_Hooks_get_ea_hint', 'UI_Hooks_get_item_hint', + 'UI_Hooks_get_lines_rendering_info', 'UI_Hooks_get_widget_config', 'UI_Hooks_hook', 'UI_Hooks_idcstart', 'UI_Hooks_idcstop', + 'UI_Hooks_initing_database', 'UI_Hooks_plugin_loaded', 'UI_Hooks_plugin_unloading', 'UI_Hooks_populating_widget_popup', @@ -309,7 +335,6 @@ 'UI_Hooks_screen_ea_changed', 'UI_Hooks_set_widget_config', 'UI_Hooks_suspend', - 'UI_Hooks_term', 'UI_Hooks_unhook', 'UI_Hooks_updated_actions', 'UI_Hooks_updating_actions', @@ -336,7 +361,9 @@ '_ask_long__varargs__', '_ask_seg', '_ask_seg__varargs__', - '_kludge_use_TPopupMenu', + '_kludge_force_declare_TPopupMenu', + '_kludge_force_declare_dirspec_t', + '_kludge_force_declare_dirtree_t', '_ll_call_helper', '_ll_call_helper__varargs__', '_ll_create_helper', @@ -346,11 +373,35 @@ '_ll_make_num', '_ll_make_ref', '_ll_new_block', + 'abstract_graph_t_callback_ud_get', + 'abstract_graph_t_callback_ud_set', + 'abstract_graph_t_circle_center_get', + 'abstract_graph_t_circle_center_set', + 'abstract_graph_t_circle_radius_get', + 'abstract_graph_t_circle_radius_set', + 'abstract_graph_t_create_circle_layout', + 'abstract_graph_t_create_tree_layout', + 'abstract_graph_t_current_layout_get', + 'abstract_graph_t_current_layout_set', + 'abstract_graph_t_get_edge', + 'abstract_graph_t_grcall', + 'abstract_graph_t_grcall__varargs__', + 'abstract_graph_t_nrect', + 'abstract_graph_t_rect_edges_made_get', + 'abstract_graph_t_rect_edges_made_set', + 'abstract_graph_t_set_callback', + 'abstract_graph_t_title_get', + 'abstract_graph_t_title_set', 'accepts_small_udts', 'accepts_udts', - 'action_ctx_base_t__get_form', - 'action_ctx_base_t__get_form_title', - 'action_ctx_base_t__get_form_type', + 'action_ctx_base_cur_sel_t__from_get', + 'action_ctx_base_cur_sel_t__from_set', + 'action_ctx_base_cur_sel_t_reset', + 'action_ctx_base_cur_sel_t_to_get', + 'action_ctx_base_cur_sel_t_to_set', + 'action_ctx_base_source_t_chooser_get', + 'action_ctx_base_source_t_chooser_set', + 'action_ctx_base_source_t_reset', 'action_ctx_base_t_action_get', 'action_ctx_base_t_action_set', 'action_ctx_base_t_chooser_selection_get', @@ -358,6 +409,8 @@ 'action_ctx_base_t_cur_ea_get', 'action_ctx_base_t_cur_ea_set', 'action_ctx_base_t_cur_enum_get', + 'action_ctx_base_t_cur_enum_member_get', + 'action_ctx_base_t_cur_enum_member_set', 'action_ctx_base_t_cur_enum_set', 'action_ctx_base_t_cur_fchunk_get', 'action_ctx_base_t_cur_fchunk_set', @@ -367,12 +420,16 @@ 'action_ctx_base_t_cur_func_set', 'action_ctx_base_t_cur_seg_get', 'action_ctx_base_t_cur_seg_set', + 'action_ctx_base_t_cur_sel_get', + 'action_ctx_base_t_cur_sel_set', 'action_ctx_base_t_cur_strmem_get', 'action_ctx_base_t_cur_strmem_set', 'action_ctx_base_t_cur_struc_get', 'action_ctx_base_t_cur_struc_set', 'action_ctx_base_t_cur_value_get', 'action_ctx_base_t_cur_value_set', + 'action_ctx_base_t_dirtree_selection_get', + 'action_ctx_base_t_dirtree_selection_set', 'action_ctx_base_t_focus_get', 'action_ctx_base_t_focus_set', 'action_ctx_base_t_graph_selection_get', @@ -381,6 +438,8 @@ 'action_ctx_base_t_regname_get', 'action_ctx_base_t_regname_set', 'action_ctx_base_t_reset', + 'action_ctx_base_t_source_get', + 'action_ctx_base_t_source_set', 'action_ctx_base_t_widget_get', 'action_ctx_base_t_widget_set', 'action_ctx_base_t_widget_title_get', @@ -505,6 +564,8 @@ 'argloc_t__set_reg2', 'argloc_t__set_stkoff', 'argloc_t_advance', + 'argloc_t_align_reg_high', + 'argloc_t_align_stkoff_high', 'argloc_t_atype', 'argloc_t_calc_offset', 'argloc_t_compare', @@ -519,6 +580,7 @@ 'argloc_t_get_rrel__SWIG_1', 'argloc_t_has_reg', 'argloc_t_has_stkoff', + 'argloc_t_in_stack', 'argloc_t_is_badloc', 'argloc_t_is_custom', 'argloc_t_is_ea', @@ -530,8 +592,6 @@ 'argloc_t_is_rrel', 'argloc_t_is_scattered', 'argloc_t_is_stkoff', - 'argloc_t_justify_reg_high', - 'argloc_t_justify_stkoff_right', 'argloc_t_reg1', 'argloc_t_reg2', 'argloc_t_regoff', @@ -594,6 +654,12 @@ 'argpartvec_t_size', 'argpartvec_t_swap', 'argpartvec_t_truncate', + 'argtinfo_helper_t_has_delay_slot', + 'argtinfo_helper_t_is_stkarg_load', + 'argtinfo_helper_t_reserved_get', + 'argtinfo_helper_t_reserved_set', + 'argtinfo_helper_t_set_op_tinfo', + 'argtinfo_helper_t_use_arg_tinfos', 'array_of_bitsets___eq__', 'array_of_bitsets___getitem__', 'array_of_bitsets___len__', @@ -803,6 +869,8 @@ 'asm_t_a_xor_set', 'asm_t_a_yword_get', 'asm_t_a_yword_set', + 'asm_t_a_zword_get', + 'asm_t_a_zword_set', 'asm_t_accsep_get', 'asm_t_accsep_set', 'asm_t_ascsep_get', @@ -861,6 +929,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -871,14 +940,11 @@ 'base2file', 'beep', 'begin_type_updating', - 'bgcolors_t_epilog_color_get', - 'bgcolors_t_epilog_color_set', - 'bgcolors_t_prolog_color_get', - 'bgcolors_t_prolog_color_set', - 'bgcolors_t_switch_color_get', - 'bgcolors_t_switch_color_set', 'bin_flag', 'bin_search', + 'bin_search3', + 'bin_search__SWIG_0', + 'bin_search__SWIG_1', 'bit_bound_t_nbits_get', 'bit_bound_t_nbits_set', 'bit_bound_t_sbits_get', @@ -897,6 +963,30 @@ 'bitfield_type_data_t_swap', 'bitfield_type_data_t_width_get', 'bitfield_type_data_t_width_set', + 'bitrange_t___eq__', + 'bitrange_t___ge__', + 'bitrange_t___gt__', + 'bitrange_t___le__', + 'bitrange_t___lt__', + 'bitrange_t___ne__', + 'bitrange_t___str__', + 'bitrange_t_apply_mask', + 'bitrange_t_bitoff', + 'bitrange_t_bitsize', + 'bitrange_t_bytesize', + 'bitrange_t_compare', + 'bitrange_t_create_union', + 'bitrange_t_empty', + 'bitrange_t_extract', + 'bitrange_t_has_common', + 'bitrange_t_init', + 'bitrange_t_inject', + 'bitrange_t_intersect', + 'bitrange_t_mask64', + 'bitrange_t_reset', + 'bitrange_t_shift_down', + 'bitrange_t_shift_up', + 'bitrange_t_sub', 'bitset_t___eq__', 'bitset_t___ge__', 'bitset_t___gt__', @@ -1003,6 +1093,7 @@ 'bookmarks_t_find_index', 'bookmarks_t_get', 'bookmarks_t_get_desc', + 'bookmarks_t_get_dirtree_id', 'bookmarks_t_mark', 'bookmarks_t_size', 'boolvec_t___eq__', @@ -1089,6 +1180,8 @@ 'bpt_location_t_symbol', 'bpt_location_t_type', 'bpt_t_badbpt', + 'bpt_t_bptid_get', + 'bpt_t_bptid_set', 'bpt_t_cb_get', 'bpt_t_cb_set', 'bpt_t_cndidx_get', @@ -1174,6 +1267,8 @@ 'bptaddr_t_hea_set', 'bptaddr_t_kea_get', 'bptaddr_t_kea_set', + 'bptaddrs_t_bpt_get', + 'bptaddrs_t_bpt_set', 'bring_debugger_to_front', 'build_snapshot_tree', 'build_stkvar_name', @@ -1219,46 +1314,47 @@ 'call_stack_info_t_funcea_set', 'call_stack_info_t_funcok_get', 'call_stack_info_t_funcok_set', - 'call_stack_t___eq__', - 'call_stack_t___getitem__', - 'call_stack_t___len__', - 'call_stack_t___ne__', - 'call_stack_t___setitem__', - 'call_stack_t__del', - 'call_stack_t_add_unique', - 'call_stack_t_at', - 'call_stack_t_begin', - 'call_stack_t_begin__SWIG_0', - 'call_stack_t_begin__SWIG_1', - 'call_stack_t_capacity', - 'call_stack_t_clear', - 'call_stack_t_empty', - 'call_stack_t_end', - 'call_stack_t_end__SWIG_0', - 'call_stack_t_end__SWIG_1', - 'call_stack_t_erase', - 'call_stack_t_erase__SWIG_0', - 'call_stack_t_erase__SWIG_1', - 'call_stack_t_extract', - 'call_stack_t_find', - 'call_stack_t_find__SWIG_0', - 'call_stack_t_find__SWIG_1', - 'call_stack_t_grow', - 'call_stack_t_has', - 'call_stack_t_inject', - 'call_stack_t_insert', - 'call_stack_t_pop_back', - 'call_stack_t_push_back', - 'call_stack_t_push_back__SWIG_0', - 'call_stack_t_push_back__SWIG_1', - 'call_stack_t_qclear', - 'call_stack_t_reserve', - 'call_stack_t_resize', - 'call_stack_t_resize__SWIG_0', - 'call_stack_t_resize__SWIG_1', - 'call_stack_t_size', - 'call_stack_t_swap', - 'call_stack_t_truncate', + 'call_stack_info_vec_t___eq__', + 'call_stack_info_vec_t___getitem__', + 'call_stack_info_vec_t___len__', + 'call_stack_info_vec_t___ne__', + 'call_stack_info_vec_t___setitem__', + 'call_stack_info_vec_t__del', + 'call_stack_info_vec_t_add_unique', + 'call_stack_info_vec_t_at', + 'call_stack_info_vec_t_begin', + 'call_stack_info_vec_t_begin__SWIG_0', + 'call_stack_info_vec_t_begin__SWIG_1', + 'call_stack_info_vec_t_capacity', + 'call_stack_info_vec_t_clear', + 'call_stack_info_vec_t_empty', + 'call_stack_info_vec_t_end', + 'call_stack_info_vec_t_end__SWIG_0', + 'call_stack_info_vec_t_end__SWIG_1', + 'call_stack_info_vec_t_erase', + 'call_stack_info_vec_t_erase__SWIG_0', + 'call_stack_info_vec_t_erase__SWIG_1', + 'call_stack_info_vec_t_extract', + 'call_stack_info_vec_t_find', + 'call_stack_info_vec_t_find__SWIG_0', + 'call_stack_info_vec_t_find__SWIG_1', + 'call_stack_info_vec_t_grow', + 'call_stack_info_vec_t_has', + 'call_stack_info_vec_t_inject', + 'call_stack_info_vec_t_insert', + 'call_stack_info_vec_t_pop_back', + 'call_stack_info_vec_t_push_back', + 'call_stack_info_vec_t_push_back__SWIG_0', + 'call_stack_info_vec_t_push_back__SWIG_1', + 'call_stack_info_vec_t_qclear', + 'call_stack_info_vec_t_reserve', + 'call_stack_info_vec_t_resize', + 'call_stack_info_vec_t_resize__SWIG_0', + 'call_stack_info_vec_t_resize__SWIG_1', + 'call_stack_info_vec_t_size', + 'call_stack_info_vec_t_swap', + 'call_stack_info_vec_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1277,6 +1373,9 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', + 'cancellable_graph_t_cancelled_get', + 'cancellable_graph_t_cancelled_set', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1434,10 +1533,13 @@ 'cdg_insn_iterator_t_has_dslot', 'cdg_insn_iterator_t_is_likely_dslot_get', 'cdg_insn_iterator_t_is_likely_dslot_set', - 'cdg_insn_iterator_t_is_separate_dslot_get', - 'cdg_insn_iterator_t_is_separate_dslot_set', + 'cdg_insn_iterator_t_is_severed_dslot', + 'cdg_insn_iterator_t_mba_get', + 'cdg_insn_iterator_t_mba_set', 'cdg_insn_iterator_t_next', 'cdg_insn_iterator_t_ok', + 'cdg_insn_iterator_t_severed_branch_get', + 'cdg_insn_iterator_t_severed_branch_set', 'cdg_insn_iterator_t_start', 'cdo_t___eq__', 'cdo_t___ge__', @@ -1586,6 +1688,7 @@ 'cfunc_t_has_orphan_cmts', 'cfunc_t_hdrlines_get', 'cfunc_t_hdrlines_set', + 'cfunc_t_locked', 'cfunc_t_maturity_get', 'cfunc_t_maturity_set', 'cfunc_t_mba_get', @@ -1650,6 +1753,7 @@ 'cfuncptr_t_has_orphan_cmts', 'cfuncptr_t_hdrlines_get', 'cfuncptr_t_hdrlines_set', + 'cfuncptr_t_locked', 'cfuncptr_t_maturity_get', 'cfuncptr_t_maturity_set', 'cfuncptr_t_mba_get', @@ -1761,6 +1865,8 @@ 'choose_func', 'choose_get_widget', 'choose_idasgn', + 'choose_ioport_device2', + 'choose_ioport_parser_t_parse', 'choose_local_tinfo', 'choose_local_tinfo_and_delta', 'choose_name', @@ -1773,11 +1879,58 @@ 'choose_til', 'choose_trace_file', 'choose_xref', + 'chooser_base_t_ask_item_attrs', + 'chooser_base_t_can_del', + 'chooser_base_t_can_edit', + 'chooser_base_t_can_filter', + 'chooser_base_t_can_ins', + 'chooser_base_t_can_refresh', + 'chooser_base_t_can_sort', + 'chooser_base_t_columns_get', + 'chooser_base_t_deflt_col_get', + 'chooser_base_t_get_builtin_number', + 'chooser_base_t_get_count', + 'chooser_base_t_get_ea', + 'chooser_base_t_get_quick_filter_initial_mode', + 'chooser_base_t_get_row', + 'chooser_base_t_has_diff_capability', + 'chooser_base_t_has_dirtree', + 'chooser_base_t_header_get', + 'chooser_base_t_height_get', + 'chooser_base_t_icon_get', + 'chooser_base_t_is_dirtree_persisted', + 'chooser_base_t_is_force_default', + 'chooser_base_t_is_modal', + 'chooser_base_t_is_multi', + 'chooser_base_t_is_noidb', + 'chooser_base_t_is_quick_filter_visible_initially', + 'chooser_base_t_is_same', + 'chooser_base_t_is_status_bar_hidden', + 'chooser_base_t_popup_allowed', + 'chooser_base_t_popup_names_get', + 'chooser_base_t_should_rename_trigger_edit', + 'chooser_base_t_should_restore_geometry', + 'chooser_base_t_title_get', + 'chooser_base_t_width_get', + 'chooser_base_t_widths_get', + 'chooser_base_t_x0_get', + 'chooser_base_t_x1_get', + 'chooser_base_t_y0_get', + 'chooser_base_t_y1_get', 'chooser_item_attrs_t_color_get', 'chooser_item_attrs_t_color_set', 'chooser_item_attrs_t_flags_get', 'chooser_item_attrs_t_flags_set', 'chooser_item_attrs_t_reset', + 'chooser_stdact_desc_t_icon_get', + 'chooser_stdact_desc_t_icon_set', + 'chooser_stdact_desc_t_label_get', + 'chooser_stdact_desc_t_label_set', + 'chooser_stdact_desc_t_tooltip_get', + 'chooser_stdact_desc_t_tooltip_set', + 'chooser_stdact_desc_t_ucb', + 'chooser_stdact_desc_t_version_get', + 'chooser_stdact_desc_t_version_set', 'chunk_size', 'chunk_start', 'cif_t___eq__', @@ -1793,6 +1946,44 @@ 'cif_t_ielse_set', 'cif_t_ithen_get', 'cif_t_ithen_set', + 'cinsn_list_t___eq__', + 'cinsn_list_t___getitem__', + 'cinsn_list_t___len__', + 'cinsn_list_t___ne__', + 'cinsn_list_t___setitem__', + 'cinsn_list_t_back', + 'cinsn_list_t_back__SWIG_0', + 'cinsn_list_t_back__SWIG_1', + 'cinsn_list_t_begin', + 'cinsn_list_t_clear', + 'cinsn_list_t_empty', + 'cinsn_list_t_end', + 'cinsn_list_t_erase', + 'cinsn_list_t_front', + 'cinsn_list_t_front__SWIG_0', + 'cinsn_list_t_front__SWIG_1', + 'cinsn_list_t_insert', + 'cinsn_list_t_insert__SWIG_1', + 'cinsn_list_t_insert__SWIG_2', + 'cinsn_list_t_iterator___eq__', + 'cinsn_list_t_iterator___ne__', + 'cinsn_list_t_iterator___next__', + 'cinsn_list_t_iterator_cur_get', + 'cinsn_list_t_pop_back', + 'cinsn_list_t_pop_front', + 'cinsn_list_t_push_back', + 'cinsn_list_t_push_back__SWIG_0', + 'cinsn_list_t_push_back__SWIG_1', + 'cinsn_list_t_push_front', + 'cinsn_list_t_rbegin', + 'cinsn_list_t_rbegin__SWIG_0', + 'cinsn_list_t_rbegin__SWIG_1', + 'cinsn_list_t_remove', + 'cinsn_list_t_rend', + 'cinsn_list_t_rend__SWIG_0', + 'cinsn_list_t_rend__SWIG_1', + 'cinsn_list_t_size', + 'cinsn_list_t_swap', 'cinsn_t___eq__', 'cinsn_t___ge__', 'cinsn_t___gt__', @@ -1914,7 +2105,6 @@ 'citem_t_swap', 'cleanup_appcall', 'cleanup_name', - 'clear_bits', 'clear_cached_cfuncs', 'clear_refresh_request', 'clear_requests_queue', @@ -1926,6 +2116,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1986,17 +2177,73 @@ 'codegen_t_ii_set', 'codegen_t_insn_get', 'codegen_t_insn_set', + 'codegen_t_load_effective_address', 'codegen_t_load_operand', 'codegen_t_mb_get', 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', + 'codegen_t_prepare_gen_micro', + 'codegen_t_store_operand', 'collect_stack_trace', 'compact_til', 'compare_tinfo', 'compile_idc_file', 'compile_idc_snippet', 'compile_idc_text', + 'compiled_binpat_t___eq__', + 'compiled_binpat_t___ne__', + 'compiled_binpat_t_all_bytes_defined', + 'compiled_binpat_t_bytes_get', + 'compiled_binpat_t_bytes_set', + 'compiled_binpat_t_encidx_get', + 'compiled_binpat_t_encidx_set', + 'compiled_binpat_t_mask_get', + 'compiled_binpat_t_mask_set', + 'compiled_binpat_t_qclear', + 'compiled_binpat_t_strlits_get', + 'compiled_binpat_t_strlits_set', + 'compiled_binpat_vec_t___eq__', + 'compiled_binpat_vec_t___getitem__', + 'compiled_binpat_vec_t___len__', + 'compiled_binpat_vec_t___ne__', + 'compiled_binpat_vec_t___setitem__', + 'compiled_binpat_vec_t__del', + 'compiled_binpat_vec_t_add_unique', + 'compiled_binpat_vec_t_at', + 'compiled_binpat_vec_t_begin', + 'compiled_binpat_vec_t_begin__SWIG_0', + 'compiled_binpat_vec_t_begin__SWIG_1', + 'compiled_binpat_vec_t_capacity', + 'compiled_binpat_vec_t_clear', + 'compiled_binpat_vec_t_empty', + 'compiled_binpat_vec_t_end', + 'compiled_binpat_vec_t_end__SWIG_0', + 'compiled_binpat_vec_t_end__SWIG_1', + 'compiled_binpat_vec_t_erase', + 'compiled_binpat_vec_t_erase__SWIG_0', + 'compiled_binpat_vec_t_erase__SWIG_1', + 'compiled_binpat_vec_t_extract', + 'compiled_binpat_vec_t_find', + 'compiled_binpat_vec_t_find__SWIG_0', + 'compiled_binpat_vec_t_find__SWIG_1', + 'compiled_binpat_vec_t_grow', + 'compiled_binpat_vec_t_has', + 'compiled_binpat_vec_t_inject', + 'compiled_binpat_vec_t_insert', + 'compiled_binpat_vec_t_pop_back', + 'compiled_binpat_vec_t_push_back', + 'compiled_binpat_vec_t_push_back__SWIG_0', + 'compiled_binpat_vec_t_push_back__SWIG_1', + 'compiled_binpat_vec_t_qclear', + 'compiled_binpat_vec_t_reserve', + 'compiled_binpat_vec_t_resize', + 'compiled_binpat_vec_t_resize__SWIG_0', + 'compiled_binpat_vec_t_resize__SWIG_1', + 'compiled_binpat_vec_t_size', + 'compiled_binpat_vec_t_swap', + 'compiled_binpat_vec_t_truncate', 'compiler_info_t_cm_get', 'compiler_info_t_cm_set', 'compiler_info_t_defalign_get', @@ -2019,6 +2266,7 @@ 'compiler_info_t_size_s_set', 'const_aloc_visitor_t_visit_location', 'construct_macro', + 'construct_macro2', 'contains_fixups', 'continue_process', 'convert_pt_flags_to_hti', @@ -2032,6 +2280,7 @@ 'create_align', 'create_byte', 'create_bytearray_linput', + 'create_cfunc', 'create_code_viewer', 'create_custdata', 'create_data', @@ -2119,11 +2368,21 @@ 'ctree_item_t__get_l', 'ctree_item_t_citype_get', 'ctree_item_t_citype_set', + 'ctree_item_t_e_get', + 'ctree_item_t_e_set', + 'ctree_item_t_f_get', + 'ctree_item_t_f_set', 'ctree_item_t_get_ea', 'ctree_item_t_get_label_num', 'ctree_item_t_get_lvar', 'ctree_item_t_get_memptr', + 'ctree_item_t_i_get', + 'ctree_item_t_i_set', 'ctree_item_t_is_citem', + 'ctree_item_t_it_get', + 'ctree_item_t_it_set', + 'ctree_item_t_l_get', + 'ctree_item_t_l_set', 'ctree_item_t_loc_get', 'ctree_items_t___eq__', 'ctree_items_t___getitem__', @@ -2164,6 +2423,7 @@ 'ctree_items_t_size', 'ctree_items_t_swap', 'ctree_items_t_truncate', + 'ctree_parentee_t_get_block', 'ctree_parentee_t_recalc_parent_types', 'ctree_visitor_t_apply_to', 'ctree_visitor_t_apply_to_exprs', @@ -2191,12 +2451,16 @@ 'custom_data_type_ids_fids_array___getitem__', 'custom_data_type_ids_fids_array___len__', 'custom_data_type_ids_fids_array___setitem__', + 'custom_data_type_ids_fids_array__get_bytes', + 'custom_data_type_ids_fids_array__set_bytes', 'custom_data_type_ids_fids_array_data_get', 'custom_data_type_ids_t___getFids', 'custom_data_type_ids_t_dtid_get', 'custom_data_type_ids_t_dtid_set', 'custom_data_type_ids_t_fids_get', 'custom_data_type_ids_t_fids_set', + 'custom_data_type_ids_t_get_dtid', + 'custom_data_type_ids_t_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2360,6 +2624,7 @@ 'del_tinfo_attr', 'del_tryblks', 'del_value', + 'del_vftable_ea', 'del_virt_module', 'delay_slot_insn', 'delete_DBG_Hooks', @@ -2373,6 +2638,9 @@ 'delete___qsemaphore_t', 'delete___qthread_t', 'delete___qtimer_t', + 'delete_abstract_graph_t', + 'delete_action_ctx_base_cur_sel_t', + 'delete_action_ctx_base_source_t', 'delete_action_ctx_base_t', 'delete_action_desc_t', 'delete_addon_info_t', @@ -2380,6 +2648,7 @@ 'delete_argloc_t', 'delete_argpart_t', 'delete_argpartvec_t', + 'delete_argtinfo_helper_t', 'delete_array_of_bitsets', 'delete_array_of_ivlsets', 'delete_array_of_rangesets', @@ -2387,9 +2656,9 @@ 'delete_array_type_data_t', 'delete_asm_t', 'delete_auto_display_t', - 'delete_bgcolors_t', 'delete_bit_bound_t', 'delete_bitfield_type_data_t', + 'delete_bitrange_t', 'delete_bitset_t', 'delete_block_chains_iterator_t', 'delete_block_chains_t', @@ -2401,9 +2670,12 @@ 'delete_bpt_t', 'delete_bpt_vec_t', 'delete_bptaddr_t', + 'delete_bptaddrs_t', 'delete_call_stack_info_t', + 'delete_call_stack_info_vec_t', 'delete_call_stack_t', 'delete_callregs_t', + 'delete_cancellable_graph_t', 'delete_carg_t', 'delete_carglist_t', 'delete_cases_and_targets_t', @@ -2427,8 +2699,12 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', + 'delete_chooser_stdact_desc_t', 'delete_cif_t', + 'delete_cinsn_list_t', + 'delete_cinsn_list_t_iterator', 'delete_cinsn_t', 'delete_cinsnptrvec_t', 'delete_citem_cmt_t', @@ -2437,6 +2713,8 @@ 'delete_cloop_t', 'delete_cnumber_t', 'delete_codegen_t', + 'delete_compiled_binpat_t', + 'delete_compiled_binpat_vec_t', 'delete_compiler_info_t', 'delete_const_aloc_visitor_t', 'delete_creturn_t', @@ -2454,8 +2732,23 @@ 'delete_data_type_t', 'delete_debapp_attrs_t', 'delete_debug_event_t', + 'delete_direntry_t', + 'delete_direntry_vec_t', + 'delete_dirspec_t', + 'delete_dirtree_cursor_t', + 'delete_dirtree_cursor_vec_t', + 'delete_dirtree_iterator_t', + 'delete_dirtree_selection_t', + 'delete_dirtree_t', + 'delete_dirtree_visitor_t', 'delete_disasm_line_t', 'delete_disasm_text_t', + 'delete_dyn_ea_array', + 'delete_dyn_member_ref_array', + 'delete_dyn_range_array', + 'delete_dyn_regarg_array', + 'delete_dyn_regvar_array', + 'delete_dyn_stkpnt_array', 'delete_ea_array', 'delete_ea_name_t', 'delete_ea_name_vec_t', @@ -2477,10 +2770,12 @@ 'delete_excinfo_t', 'delete_excvec_t', 'delete_extra_cmts', + 'delete_file_enumerator_t', 'delete_fixup_data_t', 'delete_fixup_info_t', - 'delete_fnum_array', 'delete_fnumber_t', + 'delete_fpvalue_shorts_array_t', + 'delete_fpvalue_t', 'delete_func_item_iterator_t', 'delete_func_parent_iterator_t', 'delete_func_t', @@ -2489,6 +2784,7 @@ 'delete_funcarg_t', 'delete_funcargvec_t', 'delete_gco_info_t', + 'delete_gdl_graph_t', 'delete_generic_linput_t', 'delete_graph_chains_t', 'delete_graph_item_t', @@ -2512,22 +2808,32 @@ 'delete_idp_desc_t', 'delete_idp_name_t', 'delete_imports', + 'delete_input_event_keyboard_data_t', + 'delete_input_event_mouse_data_t', + 'delete_input_event_shortcut_data_t', + 'delete_input_event_t', 'delete_insn_t', 'delete_instant_dbgopts_t', + 'delete_int64vec_t', 'delete_int_pointer', 'delete_interval_t', 'delete_intvec_t', + 'delete_ioports_fallback_t', + 'delete_iterator', 'delete_ivl_t', 'delete_ivl_with_name_t', 'delete_ivlset_t', - 'delete_llabel_t', + 'delete_line_rendering_output_entries_refs_t', + 'delete_line_rendering_output_entry_t', + 'delete_linearray_t', + 'delete_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', 'delete_lochist_t', 'delete_lock_func', 'delete_lock_segment', - 'delete_longlongvec_t', 'delete_lowertype_helper_t', 'delete_lvar_locator_t', 'delete_lvar_mapping_iterator_t', @@ -2538,9 +2844,10 @@ 'delete_lvar_t', 'delete_lvar_uservec_t', 'delete_lvars_t', + 'delete_macro_constructor_t', 'delete_mba_range_iterator_t', 'delete_mba_ranges_t', - 'delete_mbl_array_t', + 'delete_mba_t', 'delete_mblock_t', 'delete_mcallarg_t', 'delete_mcallargs_t', @@ -2571,15 +2878,17 @@ 'delete_node_iterator', 'delete_node_layout_t', 'delete_node_ordering_t', + 'delete_num_range_t', 'delete_number_format_t', + 'delete_octet_generator_t', 'delete_op_parent_info_t', 'delete_op_t', 'delete_operand_locator_t', 'delete_operands_array', - 'delete_operator_info_t', 'delete_opinfo_t', 'delete_optblock_t', 'delete_optinsn_t', + 'delete_params_t', 'delete_place_t', 'delete_plugin_info_t', 'delete_point_t', @@ -2593,8 +2902,6 @@ 'delete_qbasic_block_t', 'delete_qfile_t', 'delete_qflow_chart_t', - 'delete_qlist_cinsn_t', - 'delete_qlist_cinsn_t_iterator', 'delete_qmutex_locker_t', 'delete_qrefcnt_obj_t', 'delete_qvector_carg_t', @@ -2602,13 +2909,15 @@ 'delete_qvector_history_t', 'delete_qvector_lvar_t', 'delete_qvector_snapshotvec_t', - 'delete_range_array', 'delete_range_t', 'delete_rangeset_t', 'delete_rangevec_base_t', 'delete_rangevec_t', 'delete_rect_t', 'delete_refinfo_t', + 'delete_reg_access_t', + 'delete_reg_access_vec_t', + 'delete_reg_accesses_t', 'delete_reg_info_t', 'delete_regarg_t', 'delete_reginfovec_t', @@ -2617,7 +2926,6 @@ 'delete_regobjs_t', 'delete_regobjvec_t', 'delete_regval_t', - 'delete_regvar_array', 'delete_regvar_t', 'delete_renderer_info_pos_t', 'delete_renderer_info_t', @@ -2631,9 +2939,12 @@ 'delete_scif_visitor_t', 'delete_screen_graph_selection_base_t', 'delete_screen_graph_selection_t', + 'delete_section_lines_refs_t', + 'delete_sections_lines_refs_t', 'delete_segm_move_info_t', 'delete_segm_move_info_vec_t', 'delete_segm_move_infos_t', + 'delete_segment_defsr_array', 'delete_segment_t', 'delete_seh_t', 'delete_sel_array', @@ -2645,7 +2956,7 @@ 'delete_sizevec_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', + 'delete_stkarg_area_info_t', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2662,12 +2973,15 @@ 'delete_switch_info_t', 'delete_switch_table', 'delete_sync_source_t', + 'delete_sync_source_vec_t', + 'delete_synced_group_t', 'delete_tev_info_reg_t', 'delete_tev_info_t', 'delete_tev_reg_value_t', 'delete_tev_reg_values_t', 'delete_tevinforeg_vec_t', 'delete_text_sink_t', + 'delete_text_t', 'delete_thread_name_t', 'delete_tid_array', 'delete_til_symbol_t', @@ -2679,6 +2993,7 @@ 'delete_try_handler_t', 'delete_tryblk_t', 'delete_tryblks_t', + 'delete_twinline_t', 'delete_twinpos_t', 'delete_type_attr_t', 'delete_type_attrs_t', @@ -2691,15 +3006,17 @@ 'delete_udt_member_t', 'delete_udt_type_data_t', 'delete_udtmembervec_t', + 'delete_udtmembervec_template_t', 'delete_ui_requests_t', 'delete_ui_stroff_applicator_t', 'delete_ui_stroff_op_t', 'delete_ui_stroff_ops_t', + 'delete_uint64vec_t', 'delete_uintvec_t', - 'delete_ulonglongvec_t', 'delete_unreferenced_stkvars', 'delete_user_cmts_iterator_t', 'delete_user_cmts_t', + 'delete_user_defined_prefix_t', 'delete_user_graph_place_t', 'delete_user_iflags_iterator_t', 'delete_user_iflags_t', @@ -2732,6 +3049,7 @@ 'delete_xrefblk_t', 'delete_xreflist_entry_t', 'delete_xreflist_t', + 'delinf', 'demangle_name', 'deref_idcv', 'deref_ptr', @@ -2742,6 +3060,161 @@ 'detach_custom_data_format', 'detach_process', 'diff_trace_file', + 'direntry_t___eq__', + 'direntry_t___lt__', + 'direntry_t___ne__', + 'direntry_t_idx_get', + 'direntry_t_idx_set', + 'direntry_t_isdir_get', + 'direntry_t_isdir_set', + 'direntry_t_valid', + 'direntry_vec_t___eq__', + 'direntry_vec_t___getitem__', + 'direntry_vec_t___len__', + 'direntry_vec_t___ne__', + 'direntry_vec_t___setitem__', + 'direntry_vec_t__del', + 'direntry_vec_t_add_unique', + 'direntry_vec_t_at', + 'direntry_vec_t_begin', + 'direntry_vec_t_begin__SWIG_0', + 'direntry_vec_t_begin__SWIG_1', + 'direntry_vec_t_capacity', + 'direntry_vec_t_clear', + 'direntry_vec_t_empty', + 'direntry_vec_t_end', + 'direntry_vec_t_end__SWIG_0', + 'direntry_vec_t_end__SWIG_1', + 'direntry_vec_t_erase', + 'direntry_vec_t_erase__SWIG_0', + 'direntry_vec_t_erase__SWIG_1', + 'direntry_vec_t_extract', + 'direntry_vec_t_find', + 'direntry_vec_t_find__SWIG_0', + 'direntry_vec_t_find__SWIG_1', + 'direntry_vec_t_grow', + 'direntry_vec_t_has', + 'direntry_vec_t_inject', + 'direntry_vec_t_insert', + 'direntry_vec_t_pop_back', + 'direntry_vec_t_push_back', + 'direntry_vec_t_push_back__SWIG_0', + 'direntry_vec_t_push_back__SWIG_1', + 'direntry_vec_t_qclear', + 'direntry_vec_t_reserve', + 'direntry_vec_t_resize', + 'direntry_vec_t_resize__SWIG_0', + 'direntry_vec_t_resize__SWIG_1', + 'direntry_vec_t_size', + 'direntry_vec_t_swap', + 'direntry_vec_t_truncate', + 'dirspec_t_flags_get', + 'dirspec_t_flags_set', + 'dirspec_t_get_attrs', + 'dirspec_t_get_inode', + 'dirspec_t_get_name', + 'dirspec_t_id_get', + 'dirspec_t_id_set', + 'dirspec_t_rename_inode', + 'dirspec_t_unlink_inode', + 'dirtree_cursor_t___eq__', + 'dirtree_cursor_t___ge__', + 'dirtree_cursor_t___gt__', + 'dirtree_cursor_t___le__', + 'dirtree_cursor_t___lt__', + 'dirtree_cursor_t___ne__', + 'dirtree_cursor_t_compare', + 'dirtree_cursor_t_is_root_cursor', + 'dirtree_cursor_t_parent_get', + 'dirtree_cursor_t_parent_set', + 'dirtree_cursor_t_rank_get', + 'dirtree_cursor_t_rank_set', + 'dirtree_cursor_t_root_cursor', + 'dirtree_cursor_t_set_root_cursor', + 'dirtree_cursor_t_valid', + 'dirtree_cursor_vec_t___eq__', + 'dirtree_cursor_vec_t___getitem__', + 'dirtree_cursor_vec_t___len__', + 'dirtree_cursor_vec_t___ne__', + 'dirtree_cursor_vec_t___setitem__', + 'dirtree_cursor_vec_t__del', + 'dirtree_cursor_vec_t_add_unique', + 'dirtree_cursor_vec_t_at', + 'dirtree_cursor_vec_t_begin', + 'dirtree_cursor_vec_t_begin__SWIG_0', + 'dirtree_cursor_vec_t_begin__SWIG_1', + 'dirtree_cursor_vec_t_capacity', + 'dirtree_cursor_vec_t_clear', + 'dirtree_cursor_vec_t_empty', + 'dirtree_cursor_vec_t_end', + 'dirtree_cursor_vec_t_end__SWIG_0', + 'dirtree_cursor_vec_t_end__SWIG_1', + 'dirtree_cursor_vec_t_erase', + 'dirtree_cursor_vec_t_erase__SWIG_0', + 'dirtree_cursor_vec_t_erase__SWIG_1', + 'dirtree_cursor_vec_t_extract', + 'dirtree_cursor_vec_t_find', + 'dirtree_cursor_vec_t_find__SWIG_0', + 'dirtree_cursor_vec_t_find__SWIG_1', + 'dirtree_cursor_vec_t_grow', + 'dirtree_cursor_vec_t_has', + 'dirtree_cursor_vec_t_inject', + 'dirtree_cursor_vec_t_insert', + 'dirtree_cursor_vec_t_pop_back', + 'dirtree_cursor_vec_t_push_back', + 'dirtree_cursor_vec_t_push_back__SWIG_0', + 'dirtree_cursor_vec_t_push_back__SWIG_1', + 'dirtree_cursor_vec_t_qclear', + 'dirtree_cursor_vec_t_reserve', + 'dirtree_cursor_vec_t_resize', + 'dirtree_cursor_vec_t_resize__SWIG_0', + 'dirtree_cursor_vec_t_resize__SWIG_1', + 'dirtree_cursor_vec_t_size', + 'dirtree_cursor_vec_t_swap', + 'dirtree_cursor_vec_t_truncate', + 'dirtree_iterator_t_cursor_get', + 'dirtree_iterator_t_cursor_set', + 'dirtree_iterator_t_pattern_get', + 'dirtree_iterator_t_pattern_set', + 'dirtree_t_change_rank', + 'dirtree_t_chdir', + 'dirtree_t_errstr', + 'dirtree_t_find_entry', + 'dirtree_t_findfirst', + 'dirtree_t_findnext', + 'dirtree_t_get_abspath', + 'dirtree_t_get_abspath__SWIG_0', + 'dirtree_t_get_abspath__SWIG_1', + 'dirtree_t_get_dir_size', + 'dirtree_t_get_entry_attrs', + 'dirtree_t_get_entry_name', + 'dirtree_t_get_id', + 'dirtree_t_get_parent_cursor', + 'dirtree_t_get_rank', + 'dirtree_t_getcwd', + 'dirtree_t_isdir', + 'dirtree_t_isdir__SWIG_0', + 'dirtree_t_isdir__SWIG_1', + 'dirtree_t_isfile', + 'dirtree_t_isfile__SWIG_0', + 'dirtree_t_isfile__SWIG_1', + 'dirtree_t_link', + 'dirtree_t_link__SWIG_0', + 'dirtree_t_link__SWIG_1', + 'dirtree_t_load', + 'dirtree_t_mkdir', + 'dirtree_t_notify_dirtree', + 'dirtree_t_rename', + 'dirtree_t_resolve_cursor', + 'dirtree_t_resolve_path', + 'dirtree_t_rmdir', + 'dirtree_t_save', + 'dirtree_t_set_id', + 'dirtree_t_traverse', + 'dirtree_t_unlink', + 'dirtree_t_unlink__SWIG_0', + 'dirtree_t_unlink__SWIG_1', + 'dirtree_visitor_t_visit', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -2799,23 +3272,32 @@ 'disown_IDP_Hooks', 'disown_UI_Hooks', 'disown_View_Hooks', + 'disown_abstract_graph_t', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', + 'disown_cancellable_graph_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', + 'disown_chooser_stdact_desc_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', + 'disown_dirspec_t', + 'disown_dirtree_visitor_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_t', + 'disown_gdl_graph_t', 'disown_graph_node_visitor_t', 'disown_graph_path_visitor_t', 'disown_graph_visitor_t', 'disown_highlighter_cbs_t', + 'disown_ioports_fallback_t', + 'disown_macro_constructor_t', 'disown_microcode_filter_t', 'disown_minsn_visitor_t', 'disown_mlist_mop_visitor_t', 'disown_mop_visitor_t', - 'disown_mutable_graph_t', 'disown_optblock_t', 'disown_optinsn_t', 'disown_predicate_t', @@ -2825,6 +3307,7 @@ 'disown_tinfo_visitor_t', 'disown_udc_filter_t', 'disown_ui_stroff_applicator_t', + 'disown_user_defined_prefix_t', 'disown_user_lvar_modifier_t', 'disown_vc_printer_t', 'disown_vd_printer_t', @@ -2837,6 +3320,36 @@ 'dummy_ptrtype', 'dump_func_type_data', 'dword_flag', + 'dyn_ea_array___getitem__', + 'dyn_ea_array___len__', + 'dyn_ea_array___setitem__', + 'dyn_ea_array_count_get', + 'dyn_ea_array_data_get', + 'dyn_member_ref_array___getitem__', + 'dyn_member_ref_array___len__', + 'dyn_member_ref_array___setitem__', + 'dyn_member_ref_array_count_get', + 'dyn_member_ref_array_data_get', + 'dyn_range_array___getitem__', + 'dyn_range_array___len__', + 'dyn_range_array___setitem__', + 'dyn_range_array_count_get', + 'dyn_range_array_data_get', + 'dyn_regarg_array___getitem__', + 'dyn_regarg_array___len__', + 'dyn_regarg_array___setitem__', + 'dyn_regarg_array_count_get', + 'dyn_regarg_array_data_get', + 'dyn_regvar_array___getitem__', + 'dyn_regvar_array___len__', + 'dyn_regvar_array___setitem__', + 'dyn_regvar_array_count_get', + 'dyn_regvar_array_data_get', + 'dyn_stkpnt_array___getitem__', + 'dyn_stkpnt_array___len__', + 'dyn_stkpnt_array___setitem__', + 'dyn_stkpnt_array_count_get', + 'dyn_stkpnt_array_data_get', 'ea2node', 'ea2str', 'ea_array___getitem__', @@ -2903,6 +3416,7 @@ 'eamap_size', 'eamap_t_at', 'eamap_t_size', + 'ecleaz', 'eclose', 'edge_info_t_color_get', 'edge_info_t_color_set', @@ -2949,6 +3463,7 @@ 'enable_bpt', 'enable_bpt__SWIG_0', 'enable_bpt__SWIG_1', + 'enable_bptgrp', 'enable_chooser_item_attrs', 'enable_extlang_python', 'enable_flags', @@ -3030,6 +3545,7 @@ 'enum_type_data_t_taenum_bits_get', 'enum_type_data_t_taenum_bits_set', 'enumerate_files', + 'enumerate_files2', 'enumplace_t_bmask_get', 'enumplace_t_bmask_set', 'enumplace_t_idx_get', @@ -3135,6 +3651,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3147,6 +3664,7 @@ 'find_data', 'find_defined', 'find_error', + 'find_free_chunk', 'find_free_selector', 'find_func_bounds', 'find_idc_class', @@ -3156,6 +3674,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3205,13 +3724,8 @@ 'float_flag', 'flt_flag', 'flush_buffers', - 'fnum_array___getitem__', - 'fnum_array___len__', - 'fnum_array___setitem__', - 'fnum_array_data_get', 'fnumber_t___eq__', 'fnumber_t___ge__', - 'fnumber_t___get_fnum', 'fnumber_t___gt__', 'fnumber_t___le__', 'fnumber_t___lt__', @@ -3245,6 +3759,56 @@ 'formchgcbfa_set_field_value', 'formchgcbfa_set_focused_field', 'formchgcbfa_show_field', + 'fpvalue_shorts_array_t___getitem__', + 'fpvalue_shorts_array_t___len__', + 'fpvalue_shorts_array_t___setitem__', + 'fpvalue_shorts_array_t__get_bytes', + 'fpvalue_shorts_array_t__set_bytes', + 'fpvalue_shorts_array_t_data_get', + 'fpvalue_t___add__', + 'fpvalue_t___eq__', + 'fpvalue_t___ge__', + 'fpvalue_t___gt__', + 'fpvalue_t___le__', + 'fpvalue_t___lt__', + 'fpvalue_t___mul__', + 'fpvalue_t___ne__', + 'fpvalue_t___str__', + 'fpvalue_t___sub__', + 'fpvalue_t___truediv__', + 'fpvalue_t__get_10bytes', + 'fpvalue_t__get_bytes', + 'fpvalue_t__get_float', + 'fpvalue_t__get_shorts', + 'fpvalue_t__set_10bytes', + 'fpvalue_t__set_bytes', + 'fpvalue_t__set_float', + 'fpvalue_t_assign', + 'fpvalue_t_clear', + 'fpvalue_t_compare', + 'fpvalue_t_eabs', + 'fpvalue_t_fadd', + 'fpvalue_t_fdiv', + 'fpvalue_t_fmul', + 'fpvalue_t_from_10bytes', + 'fpvalue_t_from_12bytes', + 'fpvalue_t_from_int64', + 'fpvalue_t_from_str', + 'fpvalue_t_from_sval', + 'fpvalue_t_from_uint64', + 'fpvalue_t_fsub', + 'fpvalue_t_get_kind', + 'fpvalue_t_is_negative', + 'fpvalue_t_mul_pow2', + 'fpvalue_t_negate', + 'fpvalue_t_to_10bytes', + 'fpvalue_t_to_12bytes', + 'fpvalue_t_to_int64', + 'fpvalue_t_to_str', + 'fpvalue_t_to_sval', + 'fpvalue_t_to_uint64', + 'fpvalue_t_w_get', + 'fpvalue_t_w_set', 'frame_off_args', 'frame_off_lvars', 'frame_off_retaddr', @@ -3252,14 +3816,12 @@ 'free_chunk', 'free_custom_icon', 'free_idcv', + 'free_regarg', + 'free_regvar', 'free_til', 'func_contains', 'func_does_return', 'func_has_stkframe_hole', - 'func_item_iterator_decode_preceding_insn', - 'func_item_iterator_decode_prev_insn', - 'func_item_iterator_next', - 'func_item_iterator_prev', 'func_item_iterator_t___next__', 'func_item_iterator_t_chunk', 'func_item_iterator_t_current', @@ -3280,6 +3842,8 @@ 'func_item_iterator_t_prev_not_tail', 'func_item_iterator_t_set', 'func_item_iterator_t_set_range', + 'func_item_iterator_t_succ', + 'func_item_iterator_t_succ_code', 'func_parent_iterator_set', 'func_parent_iterator_t___next__', 'func_parent_iterator_t_first', @@ -3289,6 +3853,8 @@ 'func_parent_iterator_t_reset_fnt', 'func_parent_iterator_t_set', 'func_t___get_points__', + 'func_t___get_referers__', + 'func_t___get_regargs__', 'func_t___get_regvars__', 'func_t___get_tails__', 'func_t__from_ptrval__', @@ -3309,10 +3875,6 @@ 'func_t_frsize_get', 'func_t_frsize_set', 'func_t_is_far', - 'func_t_llabelqty_get', - 'func_t_llabelqty_set', - 'func_t_llabels_get', - 'func_t_llabels_set', 'func_t_need_prolog_analysis', 'func_t_owner_get', 'func_t_owner_set', @@ -3354,10 +3916,16 @@ 'func_type_data_t_flags_set', 'func_type_data_t_get_call_method', 'func_type_data_t_guess_cc', + 'func_type_data_t_is_const', + 'func_type_data_t_is_ctor', + 'func_type_data_t_is_dtor', + 'func_type_data_t_is_golang_cc', 'func_type_data_t_is_high', 'func_type_data_t_is_noret', 'func_type_data_t_is_pure', + 'func_type_data_t_is_static', 'func_type_data_t_is_vararg_cc', + 'func_type_data_t_is_virtual', 'func_type_data_t_retloc_get', 'func_type_data_t_retloc_set', 'func_type_data_t_rettype_get', @@ -3421,6 +3989,7 @@ 'funcargvec_t_truncate', 'gcc_layout', 'gco_info_t_append_to_list', + 'gco_info_t_cvt_to_ivl', 'gco_info_t_flags_get', 'gco_info_t_flags_set', 'gco_info_t_is_def', @@ -3428,8 +3997,34 @@ 'gco_info_t_is_use', 'gco_info_t_name_get', 'gco_info_t_name_set', + 'gco_info_t_regnum_get', + 'gco_info_t_regnum_set', 'gco_info_t_size_get', 'gco_info_t_size_set', + 'gco_info_t_stkoff_get', + 'gco_info_t_stkoff_set', + 'gdl_graph_t_begin', + 'gdl_graph_t_edge', + 'gdl_graph_t_empty', + 'gdl_graph_t_end', + 'gdl_graph_t_entry', + 'gdl_graph_t_exists', + 'gdl_graph_t_exit', + 'gdl_graph_t_front', + 'gdl_graph_t_get_edge_color', + 'gdl_graph_t_get_node_color', + 'gdl_graph_t_get_node_label', + 'gdl_graph_t_nedge', + 'gdl_graph_t_node_qty', + 'gdl_graph_t_npred', + 'gdl_graph_t_nsucc', + 'gdl_graph_t_pred', + 'gdl_graph_t_print_edge', + 'gdl_graph_t_print_graph_attributes', + 'gdl_graph_t_print_node', + 'gdl_graph_t_print_node_attributes', + 'gdl_graph_t_size', + 'gdl_graph_t_succ', 'gen_complex_call_chart', 'gen_decorate_name', 'gen_disasm_text', @@ -3443,6 +4038,7 @@ 'gen_microcode', 'gen_simple_call_chart', 'gen_use_arg_tinfos', + 'gen_use_arg_tinfos2', 'generate_disasm_line', 'generate_disassembly', 'generic_linput_t_blocksize_get', @@ -3473,6 +4069,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -3524,9 +4121,12 @@ 'get_custom_viewer_curline', 'get_custom_viewer_location', 'get_custom_viewer_place', + 'get_custom_viewer_place_xcoord', 'get_data_elsize', 'get_data_value', 'get_db_byte', + 'get_dbctx_id', + 'get_dbctx_qty', 'get_dbg_byte', 'get_dbg_memory_info', 'get_dbg_reg_info', @@ -3549,8 +4149,10 @@ 'get_ea_name', 'get_ea_viewer_history_info', 'get_effective_spd', + 'get_elapsed_secs', 'get_elf_debug_file_directory', 'get_encoding_bpu', + 'get_encoding_bpu_by_name', 'get_encoding_name', 'get_encoding_qty', 'get_entry', @@ -3651,6 +4253,7 @@ 'get_hidden_range_num', 'get_hidden_range_qty', 'get_highlight', + 'get_ida_notepad_text', 'get_ida_subdirs', 'get_idainfo_by_type', 'get_idasgn_desc', @@ -3658,6 +4261,8 @@ 'get_idasgn_qty', 'get_idasgn_title', 'get_idati', + 'get_idb_ctime', + 'get_idb_nopens', 'get_idb_notifier_addr', 'get_idb_notifier_ud_addr', 'get_idc_filename', @@ -3674,6 +4279,9 @@ 'get_import_module_qty', 'get_ind_purged', 'get_inf_structure', + 'get_initial_ida_version', + 'get_initial_idb_version', + 'get_innermost_member', 'get_input_file_path', 'get_insn_tev_reg_mem', 'get_insn_tev_reg_result', @@ -3695,10 +4303,12 @@ 'get_last_serial_enum_member', 'get_last_struc_idx', 'get_linput_type', + 'get_loader_format_name', 'get_local_var', 'get_local_vars', 'get_long_name', 'get_lookback', + 'get_mangled_name_type', 'get_manual_insn', 'get_manual_regions', 'get_manual_regions__SWIG_0', @@ -3762,6 +4372,7 @@ 'get_numbered_type', 'get_numbered_type_name', 'get_octet', + 'get_octet2', 'get_offbase', 'get_offset_expr', 'get_offset_expression', @@ -3783,6 +4394,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -3847,11 +4459,14 @@ 'get_spd', 'get_special_folder', 'get_sptr', + 'get_srcdbg_paths', + 'get_srcdbg_undesired_paths', 'get_srcinfo_provider', 'get_sreg', 'get_sreg_range', 'get_sreg_range_num', 'get_sreg_ranges_qty', + 'get_std_dirtree', 'get_step_trace_options', 'get_stkvar', 'get_stock_tinfo', @@ -3860,6 +4475,8 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', + 'get_strid', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -3882,6 +4499,7 @@ 'get_struc_size__SWIG_1', 'get_switch_info', 'get_switch_parent', + 'get_synced_group', 'get_tab_size', 'get_temp_regs', 'get_tev_ea', @@ -3900,6 +4518,7 @@ 'get_tinfo_property', 'get_tinfo_size', 'get_trace_base_address', + 'get_trace_dynamic_register_set', 'get_trace_file_desc', 'get_trace_platform', 'get_tryblks', @@ -3909,7 +4528,10 @@ 'get_unk_type', 'get_unsigned_mcode', 'get_user_idadir', + 'get_user_input_event', 'get_user_strlist_options', + 'get_vftable_ea', + 'get_vftable_ordinal', 'get_view_renderer_type', 'get_viewer_graph', 'get_viewer_place_type', @@ -3927,6 +4549,7 @@ 'get_zero_ranges', 'getb_reginsn', 'getf_reginsn', + 'getinf_str', 'getn_bpt', 'getn_enum', 'getn_fchunk', @@ -3986,10 +4609,14 @@ 'group_crinfo_t_text_get', 'group_crinfo_t_text_set', 'guess_func_cc', - 'guess_table_address', - 'guess_table_size', 'guess_tinfo', 'handle_debug_event', + 'handle_fixups_in_macro', + 'has_aflag_linnum', + 'has_aflag_lname', + 'has_aflag_ti', + 'has_aflag_ti0', + 'has_aflag_ti1', 'has_any_name', 'has_auto_name', 'has_cached_cfunc', @@ -4002,6 +4629,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4122,8 +4750,8 @@ 'idainfo_bin_prefix_size_set', 'idainfo_cc_get', 'idainfo_cc_set', - 'idainfo_comment_get', - 'idainfo_comment_set', + 'idainfo_cmt_indent_get', + 'idainfo_cmt_indent_set', 'idainfo_database_change_count_get', 'idainfo_database_change_count_set', 'idainfo_datatypes_get', @@ -4133,9 +4761,6 @@ 'idainfo_filetype_get', 'idainfo_filetype_set', 'idainfo_get_abiname', - 'idainfo_get_maxEA', - 'idainfo_get_minEA', - 'idainfo_get_procName', 'idainfo_highoff_get', 'idainfo_highoff_set', 'idainfo_indent_get', @@ -4186,8 +4811,6 @@ 'idainfo_s_prefflag_set', 'idainfo_s_xrefflag_get', 'idainfo_s_xrefflag_set', - 'idainfo_set_maxEA', - 'idainfo_set_minEA', 'idainfo_short_demnames_get', 'idainfo_short_demnames_set', 'idainfo_specsegs_get', @@ -4238,7 +4861,6 @@ 'idc_parse_types', 'idc_print_type', 'idc_set_local_type', - 'idc_value_t___get_e', 'idc_value_t__create_empty_string', 'idc_value_t_c_str', 'idc_value_t_clear', @@ -4336,6 +4958,9 @@ 'inf_allow_sigmulti', 'inf_append_sigcmt', 'inf_big_arg_align', + 'inf_big_arg_align', + 'inf_big_arg_align__SWIG_1', + 'inf_big_arg_align__SWIG_1', 'inf_check_manual_ops', 'inf_check_unicode_strlits', 'inf_coagulate_code', @@ -4366,6 +4991,7 @@ 'inf_get_af2_low', 'inf_get_af_high', 'inf_get_af_low', + 'inf_get_app_bitness', 'inf_get_appcall_options', 'inf_get_apptype', 'inf_get_asmtype', @@ -4382,8 +5008,8 @@ 'inf_get_cc_size_ldbl', 'inf_get_cc_size_ll', 'inf_get_cc_size_s', + 'inf_get_cmt_indent', 'inf_get_cmtflg', - 'inf_get_comment', 'inf_get_database_change_count', 'inf_get_datatypes', 'inf_get_demname_form', @@ -4443,7 +5069,9 @@ 'inf_hide_libfuncs', 'inf_huge_arg_align', 'inf_inc_database_change_count', - 'inf_is_32bit', + 'inf_is_16bit', + 'inf_is_32bit_exactly', + 'inf_is_32bit_or_higher', 'inf_is_64bit', 'inf_is_auto_enabled', 'inf_is_be', @@ -4470,6 +5098,9 @@ 'inf_op_offset', 'inf_pack_idb', 'inf_pack_stkargs', + 'inf_pack_stkargs', + 'inf_pack_stkargs__SWIG_1', + 'inf_pack_stkargs__SWIG_1', 'inf_postinc_strlit_sernum', 'inf_prefix_show_funcoff', 'inf_prefix_show_segaddr', @@ -4513,10 +5144,10 @@ 'inf_set_cc_size_s', 'inf_set_check_manual_ops', 'inf_set_check_unicode_strlits', + 'inf_set_cmt_indent', 'inf_set_cmtflg', 'inf_set_coagulate_code', 'inf_set_coagulate_data', - 'inf_set_comment', 'inf_set_compress_idb', 'inf_set_create_all_xrefs', 'inf_set_create_func_from_call', @@ -4640,7 +5271,6 @@ 'inf_set_strlit_sernum', 'inf_set_strlit_zeroes', 'inf_set_strtype', - 'inf_set_test_mode', 'inf_set_trace_flow', 'inf_set_truncate_on_del', 'inf_set_type_xrefnum', @@ -4684,6 +5314,36 @@ 'info', 'info__varargs__', 'init_hexrays_plugin', + 'input_event_keyboard_data_t_key_get', + 'input_event_keyboard_data_t_key_set', + 'input_event_keyboard_data_t_text_get', + 'input_event_keyboard_data_t_text_set', + 'input_event_mouse_data_t_button_get', + 'input_event_mouse_data_t_button_set', + 'input_event_mouse_data_t_x_get', + 'input_event_mouse_data_t_x_set', + 'input_event_mouse_data_t_y_get', + 'input_event_mouse_data_t_y_set', + 'input_event_shortcut_data_t_action_name_get', + 'input_event_shortcut_data_t_action_name_set', + 'input_event_t__source_as_size', + 'input_event_t__target_as_size', + 'input_event_t_cb_get', + 'input_event_t_cb_set', + 'input_event_t_keyboard_get', + 'input_event_t_keyboard_set', + 'input_event_t_kind_get', + 'input_event_t_kind_set', + 'input_event_t_modifiers_get', + 'input_event_t_modifiers_set', + 'input_event_t_mouse_get', + 'input_event_t_mouse_set', + 'input_event_t_shortcut_get', + 'input_event_t_shortcut_set', + 'input_event_t_source_get', + 'input_event_t_source_set', + 'input_event_t_target_get', + 'input_event_t_target_set', 'insn_add_cref', 'insn_add_dref', 'insn_add_off_drefs', @@ -4697,6 +5357,12 @@ 'insn_t_add_dref', 'insn_t_add_off_drefs', 'insn_t_assign', + 'insn_t_auxpref_get', + 'insn_t_auxpref_set', + 'insn_t_auxpref_u16_get', + 'insn_t_auxpref_u16_set', + 'insn_t_auxpref_u8_get', + 'insn_t_auxpref_u8_set', 'insn_t_create_op_data', 'insn_t_create_op_data__SWIG_0', 'insn_t_create_op_data__SWIG_1', @@ -4708,7 +5374,11 @@ 'insn_t_flags_get', 'insn_t_flags_set', 'insn_t_get_canon_feature', + 'insn_t_get_canon_feature__SWIG_0', + 'insn_t_get_canon_feature__SWIG_1', 'insn_t_get_canon_mnem', + 'insn_t_get_canon_mnem__SWIG_0', + 'insn_t_get_canon_mnem__SWIG_1', 'insn_t_get_next_byte', 'insn_t_get_next_dword', 'insn_t_get_next_qword', @@ -4719,6 +5389,8 @@ 'insn_t_ip_set', 'insn_t_is_64bit', 'insn_t_is_canon_insn', + 'insn_t_is_canon_insn__SWIG_0', + 'insn_t_is_canon_insn__SWIG_1', 'insn_t_is_macro', 'insn_t_itype_get', 'insn_t_itype_set', @@ -4730,6 +5402,7 @@ 'insn_t_size_set', 'install_command_interpreter', 'install_microcode_filter', + 'install_user_defined_prefix', 'instant_dbgopts_t__pass_get', 'instant_dbgopts_t__pass_set', 'instant_dbgopts_t_attach_get', @@ -4746,6 +5419,45 @@ 'instant_dbgopts_t_pid_set', 'instant_dbgopts_t_port_get', 'instant_dbgopts_t_port_set', + 'int64vec_t___eq__', + 'int64vec_t___getitem__', + 'int64vec_t___len__', + 'int64vec_t___ne__', + 'int64vec_t___setitem__', + 'int64vec_t__del', + 'int64vec_t_add_unique', + 'int64vec_t_at', + 'int64vec_t_begin', + 'int64vec_t_begin__SWIG_0', + 'int64vec_t_begin__SWIG_1', + 'int64vec_t_capacity', + 'int64vec_t_clear', + 'int64vec_t_empty', + 'int64vec_t_end', + 'int64vec_t_end__SWIG_0', + 'int64vec_t_end__SWIG_1', + 'int64vec_t_erase', + 'int64vec_t_erase__SWIG_0', + 'int64vec_t_erase__SWIG_1', + 'int64vec_t_extract', + 'int64vec_t_find', + 'int64vec_t_find__SWIG_0', + 'int64vec_t_find__SWIG_1', + 'int64vec_t_has', + 'int64vec_t_inject', + 'int64vec_t_insert', + 'int64vec_t_pop_back', + 'int64vec_t_push_back', + 'int64vec_t_push_back__SWIG_0', + 'int64vec_t_push_back__SWIG_1', + 'int64vec_t_qclear', + 'int64vec_t_reserve', + 'int64vec_t_resize', + 'int64vec_t_resize__SWIG_0', + 'int64vec_t_resize__SWIG_1', + 'int64vec_t_size', + 'int64vec_t_swap', + 'int64vec_t_truncate', 'int_pointer_assign', 'int_pointer_cast', 'int_pointer_frompointer', @@ -4807,12 +5519,42 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', 'is__invsign1', 'is_action_enabled', 'is_additive', + 'is_aflag__bnot0', + 'is_aflag__bnot1', + 'is_aflag__invsign0', + 'is_aflag__invsign1', + 'is_aflag_align_flow', + 'is_aflag_colored_item', + 'is_aflag_data_guessed_by_hexrays', + 'is_aflag_fixed_spd', + 'is_aflag_func_guessed_by_hexrays', + 'is_aflag_hidden_border', + 'is_aflag_hidden_item', + 'is_aflag_libitem', + 'is_aflag_lzero0', + 'is_aflag_lzero1', + 'is_aflag_manual_insn', + 'is_aflag_noret', + 'is_aflag_notcode', + 'is_aflag_notproc', + 'is_aflag_public_name', + 'is_aflag_retfp', + 'is_aflag_terse_struc', + 'is_aflag_tilcmt', + 'is_aflag_type_determined_by_hexrays', + 'is_aflag_type_guessed_by_hexrays', + 'is_aflag_type_guessed_by_ida', + 'is_aflag_usersp', + 'is_aflag_userti', + 'is_aflag_weak_name', + 'is_aflag_zstroff', 'is_align', 'is_align_flow', 'is_align_insn', @@ -4849,6 +5591,7 @@ 'is_custom', 'is_data', 'is_data_far', + 'is_data_guessed_by_hexrays', 'is_database_flag', 'is_debugger_busy', 'is_debugger_memory', @@ -4859,6 +5602,7 @@ 'is_double', 'is_dummy_member_name', 'is_dword', + 'is_ea_tryblks', 'is_enum', 'is_enum0', 'is_enum1', @@ -4879,6 +5623,7 @@ 'is_forced_operand', 'is_func', 'is_func_entry', + 'is_func_guessed_by_hexrays', 'is_func_locked', 'is_func_tail', 'is_func_trace_enabled', @@ -4887,10 +5632,12 @@ 'is_gcc32', 'is_gcc64', 'is_ghost_enum', + 'is_golang_cc', 'is_head', 'is_hidden_border', 'is_hidden_item', 'is_idaq', + 'is_idaview', 'is_ident', 'is_ident_cp', 'is_in_nlist', @@ -5007,6 +5754,7 @@ 'is_type_complex', 'is_type_const', 'is_type_correct', + 'is_type_determined_by_hexrays', 'is_type_double', 'is_type_enum', 'is_type_ext_arithmetic', @@ -5014,6 +5762,8 @@ 'is_type_float', 'is_type_floating', 'is_type_func', + 'is_type_guessed_by_hexrays', + 'is_type_guessed_by_ida', 'is_type_int', 'is_type_int128', 'is_type_int16', @@ -5050,6 +5800,7 @@ 'is_usersp', 'is_userti', 'is_valid_cp', + 'is_valid_dstate', 'is_valid_trace_file', 'is_valid_typename', 'is_vararg_cc', @@ -5065,6 +5816,9 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5116,17 +5870,95 @@ 'jumpto', 'jumpto__SWIG_0', 'jumpto__SWIG_1', + 'l_compare2', 'last_idcv_attr', 'leading_zero_important', 'lexcompare', 'lexcompare_tinfo', + 'line_rendering_output_entries_refs_t___eq__', + 'line_rendering_output_entries_refs_t___getitem__', + 'line_rendering_output_entries_refs_t___len__', + 'line_rendering_output_entries_refs_t___ne__', + 'line_rendering_output_entries_refs_t___setitem__', + 'line_rendering_output_entries_refs_t__del', + 'line_rendering_output_entries_refs_t__internal_push_back', + 'line_rendering_output_entries_refs_t_add_unique', + 'line_rendering_output_entries_refs_t_at', + 'line_rendering_output_entries_refs_t_begin', + 'line_rendering_output_entries_refs_t_begin__SWIG_0', + 'line_rendering_output_entries_refs_t_begin__SWIG_1', + 'line_rendering_output_entries_refs_t_capacity', + 'line_rendering_output_entries_refs_t_clear', + 'line_rendering_output_entries_refs_t_empty', + 'line_rendering_output_entries_refs_t_end', + 'line_rendering_output_entries_refs_t_end__SWIG_0', + 'line_rendering_output_entries_refs_t_end__SWIG_1', + 'line_rendering_output_entries_refs_t_erase', + 'line_rendering_output_entries_refs_t_erase__SWIG_0', + 'line_rendering_output_entries_refs_t_erase__SWIG_1', + 'line_rendering_output_entries_refs_t_extract', + 'line_rendering_output_entries_refs_t_find', + 'line_rendering_output_entries_refs_t_find__SWIG_0', + 'line_rendering_output_entries_refs_t_find__SWIG_1', + 'line_rendering_output_entries_refs_t_has', + 'line_rendering_output_entries_refs_t_inject', + 'line_rendering_output_entries_refs_t_insert', + 'line_rendering_output_entries_refs_t_pop_back', + 'line_rendering_output_entries_refs_t_push_back', + 'line_rendering_output_entries_refs_t_push_back__SWIG_0', + 'line_rendering_output_entries_refs_t_push_back__SWIG_1', + 'line_rendering_output_entries_refs_t_qclear', + 'line_rendering_output_entries_refs_t_reserve', + 'line_rendering_output_entries_refs_t_resize', + 'line_rendering_output_entries_refs_t_resize__SWIG_0', + 'line_rendering_output_entries_refs_t_resize__SWIG_1', + 'line_rendering_output_entries_refs_t_size', + 'line_rendering_output_entries_refs_t_swap', + 'line_rendering_output_entries_refs_t_truncate', + 'line_rendering_output_entry_t___eq__', + 'line_rendering_output_entry_t___ne__', + 'line_rendering_output_entry_t_bg_color_get', + 'line_rendering_output_entry_t_bg_color_set', + 'line_rendering_output_entry_t_cpx_get', + 'line_rendering_output_entry_t_cpx_set', + 'line_rendering_output_entry_t_flags_get', + 'line_rendering_output_entry_t_flags_set', + 'line_rendering_output_entry_t_is_bg_color_direct', + 'line_rendering_output_entry_t_is_bg_color_empty', + 'line_rendering_output_entry_t_is_bg_color_key', + 'line_rendering_output_entry_t_line_get', + 'line_rendering_output_entry_t_line_set', + 'line_rendering_output_entry_t_nchars_get', + 'line_rendering_output_entry_t_nchars_set', + 'linearray_t_beginning', + 'linearray_t_down', + 'linearray_t_ending', + 'linearray_t_get_bg_color', + 'linearray_t_get_dlnnum', + 'linearray_t_get_linecnt', + 'linearray_t_get_pfx_color', + 'linearray_t_get_place', + 'linearray_t_set_place', + 'linearray_t_set_userdata', + 'linearray_t_up', + 'linearray_t_userdata', + 'lines_rendering_input_t_cb_get', + 'lines_rendering_input_t_cb_set', + 'lines_rendering_input_t_sections_lines_get', + 'lines_rendering_input_t_sections_lines_set', + 'lines_rendering_input_t_sync_group_get', + 'lines_rendering_input_t_sync_group_set', + 'lines_rendering_output_t___eq__', + 'lines_rendering_output_t___ne__', + 'lines_rendering_output_t_clear', + 'lines_rendering_output_t_entries_get', + 'lines_rendering_output_t_entries_set', + 'lines_rendering_output_t_flags_get', + 'lines_rendering_output_t_flags_set', + 'lines_rendering_output_t_swap', 'list_bptgrps', 'list_bptgrps__SWIG_0', 'list_bptgrps__SWIG_1', - 'llabel_t_ea_get', - 'llabel_t_ea_set', - 'llabel_t_name_get', - 'llabel_t_name_set', 'load_and_run_plugin', 'load_binary_file', 'load_dbg_dbginfo', @@ -5144,7 +5976,7 @@ 'loader_input_t_from_capsule', 'loader_input_t_from_fp', 'loader_input_t_from_linput', - 'loader_input_t_get_char', + 'loader_input_t_get_byte', 'loader_input_t_get_linput', 'loader_input_t_gets', 'loader_input_t_getz', @@ -5161,8 +5993,7 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', + 'locate_lvar', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5197,45 +6028,6 @@ 'lock_segm', 'log2ceil', 'log2floor', - 'longlongvec_t___eq__', - 'longlongvec_t___getitem__', - 'longlongvec_t___len__', - 'longlongvec_t___ne__', - 'longlongvec_t___setitem__', - 'longlongvec_t__del', - 'longlongvec_t_add_unique', - 'longlongvec_t_at', - 'longlongvec_t_begin', - 'longlongvec_t_begin__SWIG_0', - 'longlongvec_t_begin__SWIG_1', - 'longlongvec_t_capacity', - 'longlongvec_t_clear', - 'longlongvec_t_empty', - 'longlongvec_t_end', - 'longlongvec_t_end__SWIG_0', - 'longlongvec_t_end__SWIG_1', - 'longlongvec_t_erase', - 'longlongvec_t_erase__SWIG_0', - 'longlongvec_t_erase__SWIG_1', - 'longlongvec_t_extract', - 'longlongvec_t_find', - 'longlongvec_t_find__SWIG_0', - 'longlongvec_t_find__SWIG_1', - 'longlongvec_t_has', - 'longlongvec_t_inject', - 'longlongvec_t_insert', - 'longlongvec_t_pop_back', - 'longlongvec_t_push_back', - 'longlongvec_t_push_back__SWIG_0', - 'longlongvec_t_push_back__SWIG_1', - 'longlongvec_t_qclear', - 'longlongvec_t_reserve', - 'longlongvec_t_resize', - 'longlongvec_t_resize__SWIG_0', - 'longlongvec_t_resize__SWIG_1', - 'longlongvec_t_size', - 'longlongvec_t_swap', - 'longlongvec_t_truncate', 'lookup_key_code', 'lower_type', 'lowertype_helper_t_func_has_stkframe_hole', @@ -5302,6 +6094,7 @@ 'lvar_saved_info_t_clr_forced_lvar', 'lvar_saved_info_t_clr_nomap_lvar', 'lvar_saved_info_t_clr_noptr_lvar', + 'lvar_saved_info_t_clr_unused_lvar', 'lvar_saved_info_t_cmt_get', 'lvar_saved_info_t_cmt_set', 'lvar_saved_info_t_flags_get', @@ -5311,6 +6104,7 @@ 'lvar_saved_info_t_is_kept', 'lvar_saved_info_t_is_nomap_lvar', 'lvar_saved_info_t_is_noptr_lvar', + 'lvar_saved_info_t_is_unused_lvar', 'lvar_saved_info_t_ll_get', 'lvar_saved_info_t_ll_set', 'lvar_saved_info_t_name_get', @@ -5319,6 +6113,7 @@ 'lvar_saved_info_t_set_keep', 'lvar_saved_info_t_set_nomap_lvar', 'lvar_saved_info_t_set_noptr_lvar', + 'lvar_saved_info_t_set_unused_lvar', 'lvar_saved_info_t_size_get', 'lvar_saved_info_t_size_set', 'lvar_saved_info_t_type_get', @@ -5368,6 +6163,7 @@ 'lvar_t_clear_used', 'lvar_t_clr_arg_var', 'lvar_t_clr_automapped', + 'lvar_t_clr_decl_unused', 'lvar_t_clr_dummy_arg', 'lvar_t_clr_fake_var', 'lvar_t_clr_floating_var', @@ -5377,9 +6173,11 @@ 'lvar_t_clr_noptr_var', 'lvar_t_clr_notarg', 'lvar_t_clr_overlapped_var', + 'lvar_t_clr_shared', 'lvar_t_clr_spoiled_var', 'lvar_t_clr_thisarg', 'lvar_t_clr_unknown_width', + 'lvar_t_clr_used_byref', 'lvar_t_clr_user_info', 'lvar_t_clr_user_name', 'lvar_t_clr_user_type', @@ -5396,9 +6194,11 @@ 'lvar_t_has_user_info', 'lvar_t_has_user_name', 'lvar_t_has_user_type', + 'lvar_t_in_asm', 'lvar_t_is_aliasable', 'lvar_t_is_arg_var', 'lvar_t_is_automapped', + 'lvar_t_is_decl_unused', 'lvar_t_is_dummy_arg', 'lvar_t_is_fake_var', 'lvar_t_is_floating_var', @@ -5408,14 +6208,17 @@ 'lvar_t_is_notarg', 'lvar_t_is_overlapped_var', 'lvar_t_is_result_var', + 'lvar_t_is_shared', 'lvar_t_is_spoiled_var', 'lvar_t_is_thisarg', 'lvar_t_is_unknown_width', + 'lvar_t_is_used_byref', 'lvar_t_mreg_done', 'lvar_t_name_get', 'lvar_t_name_set', 'lvar_t_set_arg_var', 'lvar_t_set_automapped', + 'lvar_t_set_decl_unused', 'lvar_t_set_dummy_arg', 'lvar_t_set_fake_var', 'lvar_t_set_final_lvar_type', @@ -5428,11 +6231,13 @@ 'lvar_t_set_noptr_var', 'lvar_t_set_notarg', 'lvar_t_set_overlapped_var', + 'lvar_t_set_shared', 'lvar_t_set_spoiled_var', 'lvar_t_set_thisarg', 'lvar_t_set_typed', 'lvar_t_set_unknown_width', 'lvar_t_set_used', + 'lvar_t_set_used_byref', 'lvar_t_set_user_name', 'lvar_t_set_user_type', 'lvar_t_set_width', @@ -5446,6 +6251,7 @@ 'lvar_t_width_get', 'lvar_t_width_set', 'lvar_uservec_t_clear', + 'lvar_uservec_t_empty', 'lvar_uservec_t_find_info', 'lvar_uservec_t_keep_info', 'lvar_uservec_t_lmaps_get', @@ -5461,6 +6267,9 @@ 'lvars_t_find_input_lvar', 'lvars_t_find_lvar', 'lvars_t_find_stkvar', + 'macro_constructor_t_build_macro', + 'macro_constructor_t_reserved_get', + 'macro_constructor_t_reserved_set', 'make_name_auto', 'make_name_non_public', 'make_name_non_weak', @@ -5468,6 +6277,7 @@ 'make_name_user', 'make_name_weak', 'make_pointer', + 'make_str_type', 'map_code_ea', 'map_code_ea__SWIG_0', 'map_code_ea__SWIG_1', @@ -5498,195 +6308,205 @@ 'mba_ranges_t_ranges_get', 'mba_ranges_t_ranges_set', 'mba_ranges_t_start', - 'mbl_array_t__deregister', - 'mbl_array_t__print', - 'mbl_array_t__register', - 'mbl_array_t_aliased_args_get', - 'mbl_array_t_aliased_args_set', - 'mbl_array_t_aliased_memory_get', - 'mbl_array_t_aliased_memory_set', - 'mbl_array_t_aliased_vars_get', - 'mbl_array_t_aliased_vars_set', - 'mbl_array_t_alloc_lvars', - 'mbl_array_t_analyze_calls', - 'mbl_array_t_arg', - 'mbl_array_t_arg__SWIG_0', - 'mbl_array_t_arg__SWIG_1', - 'mbl_array_t_argbase', - 'mbl_array_t_argidx_get', - 'mbl_array_t_argidx_ok', - 'mbl_array_t_argidx_set', - 'mbl_array_t_argidx_sorted', - 'mbl_array_t_bad_call_sp_detected', - 'mbl_array_t_blocks_get', - 'mbl_array_t_blocks_set', - 'mbl_array_t_build_graph', - 'mbl_array_t_calc_shins_flags', - 'mbl_array_t_callinfo_built', - 'mbl_array_t_cc_get', - 'mbl_array_t_cc_set', - 'mbl_array_t_chain_varnums_ok', - 'mbl_array_t_clr_cdtr', - 'mbl_array_t_clr_mba_flags', - 'mbl_array_t_clr_mba_flags2', - 'mbl_array_t_combine_blocks', - 'mbl_array_t_common_stkvars_stkargs', - 'mbl_array_t_consumed_argregs_get', - 'mbl_array_t_consumed_argregs_set', - 'mbl_array_t_copy_block', - 'mbl_array_t_deleted_pairs', - 'mbl_array_t_deserialize', - 'mbl_array_t_display_numaddrs', - 'mbl_array_t_display_valnums', - 'mbl_array_t_dump', - 'mbl_array_t_dump_mba', - 'mbl_array_t_dump_mba__varargs__', - 'mbl_array_t_entry_ea_get', - 'mbl_array_t_entry_ea_set', - 'mbl_array_t_error_ea_get', - 'mbl_array_t_error_ea_set', - 'mbl_array_t_error_strarg_get', - 'mbl_array_t_error_strarg_set', - 'mbl_array_t_final_type_get', - 'mbl_array_t_final_type_set', - 'mbl_array_t_find_mop', - 'mbl_array_t_first_epilog_ea_get', - 'mbl_array_t_first_epilog_ea_set', - 'mbl_array_t_for_all_insns', - 'mbl_array_t_for_all_ops', - 'mbl_array_t_for_all_topinsns', - 'mbl_array_t_fpd_get', - 'mbl_array_t_fpd_set', - 'mbl_array_t_frregs_get', - 'mbl_array_t_frregs_set', - 'mbl_array_t_frsize_get', - 'mbl_array_t_frsize_set', - 'mbl_array_t_fti_flags_get', - 'mbl_array_t_fti_flags_set', - 'mbl_array_t_fullsize_get', - 'mbl_array_t_fullsize_set', - 'mbl_array_t_generated_asserts', - 'mbl_array_t_get_args_region', - 'mbl_array_t_get_curfunc', - 'mbl_array_t_get_graph', - 'mbl_array_t_get_ida_argloc', - 'mbl_array_t_get_lvars_region', - 'mbl_array_t_get_mba_flags', - 'mbl_array_t_get_mba_flags2', - 'mbl_array_t_get_mblock', - 'mbl_array_t_get_mblock__SWIG_0', - 'mbl_array_t_get_mblock__SWIG_1', - 'mbl_array_t_get_shadow_region', - 'mbl_array_t_get_stack_region', - 'mbl_array_t_get_std_region', - 'mbl_array_t_gotoff_stkvars_get', - 'mbl_array_t_gotoff_stkvars_set', - 'mbl_array_t_graph_insns', - 'mbl_array_t_has_bad_sp', - 'mbl_array_t_has_over_chains', - 'mbl_array_t_has_passregs', - 'mbl_array_t_idaloc2vd', - 'mbl_array_t_idb_node_get', - 'mbl_array_t_idb_node_set', - 'mbl_array_t_idb_spoiled_get', - 'mbl_array_t_idb_spoiled_set', - 'mbl_array_t_idb_type_get', - 'mbl_array_t_idb_type_set', - 'mbl_array_t_inargoff_get', - 'mbl_array_t_inargoff_set', - 'mbl_array_t_insert_block', - 'mbl_array_t_is_cdtr', - 'mbl_array_t_is_ctr', - 'mbl_array_t_is_dtr', - 'mbl_array_t_is_pattern', - 'mbl_array_t_is_snippet', - 'mbl_array_t_is_stkarg', - 'mbl_array_t_is_thunk', - 'mbl_array_t_label_get', - 'mbl_array_t_label_set', - 'mbl_array_t_last_prolog_ea_get', - 'mbl_array_t_last_prolog_ea_set', - 'mbl_array_t_loaded_gdl', - 'mbl_array_t_lvar_names_ok', - 'mbl_array_t_lvars_allocated', - 'mbl_array_t_lvars_renamed', - 'mbl_array_t_mark_chains_dirty', - 'mbl_array_t_maturity_get', - 'mbl_array_t_maturity_set', - 'mbl_array_t_may_refine_rettype', - 'mbl_array_t_mbr_get', - 'mbl_array_t_mbr_set', - 'mbl_array_t_minargref_get', - 'mbl_array_t_minargref_set', - 'mbl_array_t_minstkref_ea_get', - 'mbl_array_t_minstkref_ea_set', - 'mbl_array_t_minstkref_get', - 'mbl_array_t_minstkref_set', - 'mbl_array_t_natural_get', - 'mbl_array_t_natural_set', - 'mbl_array_t_nodel_memory_get', - 'mbl_array_t_nodel_memory_set', - 'mbl_array_t_notes_get', - 'mbl_array_t_notes_set', - 'mbl_array_t_npurged_get', - 'mbl_array_t_npurged_set', - 'mbl_array_t_occurred_warns_get', - 'mbl_array_t_occurred_warns_set', - 'mbl_array_t_optimize_global', - 'mbl_array_t_optimize_local', - 'mbl_array_t_optimized', - 'mbl_array_t_pfn_flags_get', - 'mbl_array_t_pfn_flags_set', - 'mbl_array_t_precise_defeas', - 'mbl_array_t_propagated_asserts', - 'mbl_array_t_qty_get', - 'mbl_array_t_qty_set', - 'mbl_array_t_really_alloc', - 'mbl_array_t_regargs_is_not_aligned', - 'mbl_array_t_remove_block', - 'mbl_array_t_remove_empty_blocks', - 'mbl_array_t_reqmat_get', - 'mbl_array_t_reqmat_set', - 'mbl_array_t_restricted_memory_get', - 'mbl_array_t_restricted_memory_set', - 'mbl_array_t_retsize_get', - 'mbl_array_t_retsize_set', - 'mbl_array_t_returns_fpval', - 'mbl_array_t_retvaridx_get', - 'mbl_array_t_retvaridx_set', - 'mbl_array_t_rtype_refined', - 'mbl_array_t_saverest_done', - 'mbl_array_t_serialize', - 'mbl_array_t_set_mba_flags', - 'mbl_array_t_set_mba_flags2', - 'mbl_array_t_shadow_args_get', - 'mbl_array_t_shadow_args_set', - 'mbl_array_t_short_display', - 'mbl_array_t_should_beautify', - 'mbl_array_t_show_reduction', - 'mbl_array_t_spd_adjust_get', - 'mbl_array_t_spd_adjust_set', - 'mbl_array_t_spoiled_list_get', - 'mbl_array_t_spoiled_list_set', - 'mbl_array_t_stacksize_get', - 'mbl_array_t_stacksize_set', - 'mbl_array_t_std_ivls_get', - 'mbl_array_t_std_ivls_set', - 'mbl_array_t_stkoff_ida2vd', - 'mbl_array_t_stkoff_vd2ida', - 'mbl_array_t_term', - 'mbl_array_t_tmpstk_size_get', - 'mbl_array_t_tmpstk_size_set', - 'mbl_array_t_use_frame', - 'mbl_array_t_use_wingraph32', - 'mbl_array_t_valranges_done', - 'mbl_array_t_vars_get', - 'mbl_array_t_vars_set', - 'mbl_array_t_vd2idaloc', - 'mbl_array_t_vd2idaloc__SWIG_0', - 'mbl_array_t_vd2idaloc__SWIG_1', - 'mbl_array_t_verify', - 'mbl_array_t_write_to_const_detected', + 'mba_t__deregister', + 'mba_t__print', + 'mba_t__register', + 'mba_t_aliased_args_get', + 'mba_t_aliased_args_set', + 'mba_t_aliased_memory_get', + 'mba_t_aliased_memory_set', + 'mba_t_aliased_vars_get', + 'mba_t_aliased_vars_set', + 'mba_t_alloc_fict_ea', + 'mba_t_alloc_kreg', + 'mba_t_alloc_lvars', + 'mba_t_analyze_calls', + 'mba_t_arg', + 'mba_t_arg__SWIG_0', + 'mba_t_arg__SWIG_1', + 'mba_t_argbase', + 'mba_t_argidx_get', + 'mba_t_argidx_ok', + 'mba_t_argidx_set', + 'mba_t_argidx_sorted', + 'mba_t_bad_call_sp_detected', + 'mba_t_blocks_get', + 'mba_t_blocks_set', + 'mba_t_build_graph', + 'mba_t_calc_shins_flags', + 'mba_t_callinfo_built', + 'mba_t_cc_get', + 'mba_t_cc_set', + 'mba_t_chain_varnums_ok', + 'mba_t_clr_cdtr', + 'mba_t_clr_mba_flags', + 'mba_t_clr_mba_flags2', + 'mba_t_code16_bit_removed', + 'mba_t_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_create_helper_call', + 'mba_t_deleted_pairs', + 'mba_t_deprecated_idb_node_get', + 'mba_t_deprecated_idb_node_set', + 'mba_t_deserialize', + 'mba_t_display_numaddrs', + 'mba_t_display_valnums', + 'mba_t_dump', + 'mba_t_dump_mba', + 'mba_t_dump_mba__varargs__', + 'mba_t_entry_ea_get', + 'mba_t_entry_ea_set', + 'mba_t_error_ea_get', + 'mba_t_error_ea_set', + 'mba_t_error_strarg_get', + 'mba_t_error_strarg_set', + 'mba_t_final_type_get', + 'mba_t_final_type_set', + 'mba_t_find_mop', + 'mba_t_first_epilog_ea_get', + 'mba_t_first_epilog_ea_set', + 'mba_t_for_all_insns', + 'mba_t_for_all_ops', + 'mba_t_for_all_topinsns', + 'mba_t_fpd_get', + 'mba_t_fpd_set', + 'mba_t_free_kreg', + 'mba_t_frregs_get', + 'mba_t_frregs_set', + 'mba_t_frsize_get', + 'mba_t_frsize_set', + 'mba_t_fti_flags_get', + 'mba_t_fti_flags_set', + 'mba_t_fullsize_get', + 'mba_t_fullsize_set', + 'mba_t_generated_asserts', + 'mba_t_get_args_region', + 'mba_t_get_curfunc', + 'mba_t_get_graph', + 'mba_t_get_ida_argloc', + 'mba_t_get_lvars_region', + 'mba_t_get_mba_flags', + 'mba_t_get_mba_flags2', + 'mba_t_get_mblock', + 'mba_t_get_mblock__SWIG_0', + 'mba_t_get_mblock__SWIG_1', + 'mba_t_get_shadow_region', + 'mba_t_get_stack_region', + 'mba_t_get_std_region', + 'mba_t_gotoff_stkvars_get', + 'mba_t_gotoff_stkvars_set', + 'mba_t_graph_insns', + 'mba_t_has_bad_sp', + 'mba_t_has_outlines', + 'mba_t_has_over_chains', + 'mba_t_has_passregs', + 'mba_t_has_stack_retval', + 'mba_t_idaloc2vd', + 'mba_t_idb_spoiled_get', + 'mba_t_idb_spoiled_set', + 'mba_t_idb_type_get', + 'mba_t_idb_type_set', + 'mba_t_inargoff_get', + 'mba_t_inargoff_set', + 'mba_t_insert_block', + 'mba_t_is_cdtr', + 'mba_t_is_ctr', + 'mba_t_is_dtr', + 'mba_t_is_pattern', + 'mba_t_is_snippet', + 'mba_t_is_stkarg', + 'mba_t_is_thunk', + 'mba_t_label_get', + 'mba_t_label_set', + 'mba_t_last_prolog_ea_get', + 'mba_t_last_prolog_ea_set', + 'mba_t_loaded_gdl', + 'mba_t_lvar_names_ok', + 'mba_t_lvars_allocated', + 'mba_t_lvars_renamed', + 'mba_t_map_fict_ea', + 'mba_t_mark_chains_dirty', + 'mba_t_maturity_get', + 'mba_t_maturity_set', + 'mba_t_may_refine_rettype', + 'mba_t_mbr_get', + 'mba_t_mbr_set', + 'mba_t_minargref_get', + 'mba_t_minargref_set', + 'mba_t_minstkref_ea_get', + 'mba_t_minstkref_ea_set', + 'mba_t_minstkref_get', + 'mba_t_minstkref_set', + 'mba_t_natural_get', + 'mba_t_natural_set', + 'mba_t_nodel_memory_get', + 'mba_t_nodel_memory_set', + 'mba_t_notes_get', + 'mba_t_notes_set', + 'mba_t_npurged_get', + 'mba_t_npurged_set', + 'mba_t_occurred_warns_get', + 'mba_t_occurred_warns_set', + 'mba_t_optimize_global', + 'mba_t_optimize_local', + 'mba_t_optimized', + 'mba_t_pfn_flags_get', + 'mba_t_pfn_flags_set', + 'mba_t_precise_defeas', + 'mba_t_propagated_asserts', + 'mba_t_qty_get', + 'mba_t_qty_set', + 'mba_t_really_alloc', + 'mba_t_regargs_is_not_aligned', + 'mba_t_remove_block', + 'mba_t_remove_empty_and_unreachable_blocks', + 'mba_t_reqmat_get', + 'mba_t_reqmat_set', + 'mba_t_restricted_memory_get', + 'mba_t_restricted_memory_set', + 'mba_t_retsize_get', + 'mba_t_retsize_set', + 'mba_t_returns_fpval', + 'mba_t_retvaridx_get', + 'mba_t_retvaridx_set', + 'mba_t_rtype_refined', + 'mba_t_save_snapshot', + 'mba_t_saverest_done', + 'mba_t_serialize', + 'mba_t_set_maturity', + 'mba_t_set_mba_flags', + 'mba_t_set_mba_flags2', + 'mba_t_shadow_args_get', + 'mba_t_shadow_args_set', + 'mba_t_short_display', + 'mba_t_should_beautify', + 'mba_t_show_reduction', + 'mba_t_spd_adjust_get', + 'mba_t_spd_adjust_set', + 'mba_t_spoiled_list_get', + 'mba_t_spoiled_list_set', + 'mba_t_stacksize_get', + 'mba_t_stacksize_set', + 'mba_t_std_ivls_get', + 'mba_t_std_ivls_set', + 'mba_t_stkoff_ida2vd', + 'mba_t_stkoff_vd2ida', + 'mba_t_term', + 'mba_t_tmpstk_size_get', + 'mba_t_tmpstk_size_set', + 'mba_t_use_frame', + 'mba_t_use_wingraph32', + 'mba_t_valranges_done', + 'mba_t_vars_get', + 'mba_t_vars_set', + 'mba_t_vd2idaloc', + 'mba_t_vd2idaloc__SWIG_0', + 'mba_t_vd2idaloc__SWIG_1', + 'mba_t_verify', + 'mba_t_write_to_const_detected', 'mbl_graph_t_get_chain_stamp', 'mbl_graph_t_get_du', 'mbl_graph_t_get_mblock', @@ -5792,6 +6612,8 @@ 'mcallarg_t_dstr', 'mcallarg_t_ea_get', 'mcallarg_t_ea_set', + 'mcallarg_t_flags_get', + 'mcallarg_t_flags_set', 'mcallarg_t_make_int', 'mcallarg_t_make_uint', 'mcallarg_t_name_get', @@ -5906,6 +6728,7 @@ 'member_t_eoff_set', 'member_t_flag_get', 'member_t_flag_set', + 'member_t_get_size', 'member_t_get_soff', 'member_t_has_ti', 'member_t_has_union', @@ -6078,7 +6901,7 @@ 'minsn_t_l_set', 'minsn_t_lexcompare', 'minsn_t_may_use_aliased_memory', - 'minsn_t_modifes_d', + 'minsn_t_modifies_d', 'minsn_t_modifies_pair_mop', 'minsn_t_next_get', 'minsn_t_next_set', @@ -6281,9 +7104,11 @@ 'mop_t_is_insn__SWIG_0', 'mop_t_is_insn__SWIG_1', 'mop_t_is_kreg', + 'mop_t_is_lowaddr', 'mop_t_is_mob', 'mop_t_is_negative_constant', 'mop_t_is_one', + 'mop_t_is_pcval', 'mop_t_is_positive_constant', 'mop_t_is_reg', 'mop_t_is_reg__SWIG_0', @@ -6311,12 +7136,14 @@ 'mop_t_make_reg__SWIG_1', 'mop_t_make_reg_pair', 'mop_t_make_second_half', + 'mop_t_make_stkvar', 'mop_t_may_use_aliased_memory', 'mop_t_oprops_get', 'mop_t_oprops_set', 'mop_t_preserve_side_effects', 'mop_t_probably_floating', 'mop_t_set_impptr_done', + 'mop_t_set_lowaddr', 'mop_t_set_udt', 'mop_t_set_undef_val', 'mop_t_shift_mop', @@ -6327,6 +7154,7 @@ 'mop_t_t_get', 'mop_t_t_set', 'mop_t_unsigned_value', + 'mop_t_update_numop_value', 'mop_t_valnum_get', 'mop_t_valnum_set', 'mop_t_value', @@ -6374,7 +7202,6 @@ 'mopvec_t_size', 'mopvec_t_swap', 'mopvec_t_truncate', - 'move_bpt_to_grp', 'move_idcv', 'move_segm', 'move_segm_start', @@ -6384,21 +7211,23 @@ 'msg_get_lines', 'msg_save', 'must_mcode_close_block', + 'mutable_graph_t_add_edge', + 'mutable_graph_t_add_node', 'mutable_graph_t_belongs_get', 'mutable_graph_t_belongs_set', 'mutable_graph_t_calc_group_ea', 'mutable_graph_t_change_group_visibility', - 'mutable_graph_t_clear', 'mutable_graph_t_create_digraph_layout', 'mutable_graph_t_create_group', 'mutable_graph_t_del_custom_layout', + 'mutable_graph_t_del_edge', + 'mutable_graph_t_del_node', 'mutable_graph_t_delete_group', 'mutable_graph_t_edges_get', 'mutable_graph_t_edges_set', 'mutable_graph_t_empty', 'mutable_graph_t_exists', 'mutable_graph_t_get_custom_layout', - 'mutable_graph_t_get_edge', 'mutable_graph_t_get_first_subgraph_node', 'mutable_graph_t_get_graph_groups', 'mutable_graph_t_get_next_subgraph_node', @@ -6422,9 +7251,6 @@ 'mutable_graph_t_nodes_get', 'mutable_graph_t_nodes_set', 'mutable_graph_t_npred', - 'mutable_graph_t_nrect', - 'mutable_graph_t_nrect__SWIG_0', - 'mutable_graph_t_nrect__SWIG_1', 'mutable_graph_t_nsucc', 'mutable_graph_t_org_preds_get', 'mutable_graph_t_org_preds_set', @@ -6434,12 +7260,17 @@ 'mutable_graph_t_preds_get', 'mutable_graph_t_preds_set', 'mutable_graph_t_predset', + 'mutable_graph_t_redo_layout', + 'mutable_graph_t_refresh', + 'mutable_graph_t_replace_edge', 'mutable_graph_t_reset', + 'mutable_graph_t_resize', 'mutable_graph_t_set_custom_layout', 'mutable_graph_t_set_deleted_node', 'mutable_graph_t_set_edge', 'mutable_graph_t_set_graph_groups', 'mutable_graph_t_set_node_group', + 'mutable_graph_t_set_nrect', 'mutable_graph_t_size', 'mutable_graph_t_succ', 'mutable_graph_t_succs_get', @@ -6511,6 +7342,7 @@ 'netnode_easet_idx', 'netnode_easet_idx8', 'netnode_end', + 'netnode_exist', 'netnode_get_name', 'netnode_getblob', 'netnode_getblob_ea', @@ -6560,7 +7392,11 @@ 'netnode_supprev', 'netnode_supprev_idx8', 'netnode_supset', + 'netnode_supset__SWIG_0', + 'netnode_supset__SWIG_1', 'netnode_supset_ea', + 'netnode_supset_ea__SWIG_0', + 'netnode_supset_ea__SWIG_1', 'netnode_supset_idx8', 'netnode_supshift', 'netnode_supstr', @@ -6586,6 +7422,9 @@ 'new___qsemaphore_t', 'new___qthread_t', 'new___qtimer_t', + 'new_abstract_graph_t', + 'new_action_ctx_base_cur_sel_t', + 'new_action_ctx_base_source_t', 'new_action_ctx_base_t', 'new_action_desc_t', 'new_addon_info_t', @@ -6599,6 +7438,7 @@ 'new_argpartvec_t', 'new_argpartvec_t__SWIG_0', 'new_argpartvec_t__SWIG_1', + 'new_argtinfo_helper_t', 'new_array_of_bitsets', 'new_array_of_bitsets__SWIG_0', 'new_array_of_bitsets__SWIG_1', @@ -6612,9 +7452,9 @@ 'new_array_type_data_t', 'new_asm_t', 'new_auto_display_t', - 'new_bgcolors_t', 'new_bit_bound_t', 'new_bitfield_type_data_t', + 'new_bitrange_t', 'new_bitset_t', 'new_bitset_t__SWIG_0', 'new_bitset_t__SWIG_1', @@ -6634,13 +7474,16 @@ 'new_bpt_vec_t__SWIG_0', 'new_bpt_vec_t__SWIG_1', 'new_bptaddr_t', + 'new_bptaddrs_t', 'new_call_stack_info_t', + 'new_call_stack_info_vec_t', + 'new_call_stack_info_vec_t__SWIG_0', + 'new_call_stack_info_vec_t__SWIG_1', 'new_call_stack_t', - 'new_call_stack_t__SWIG_0', - 'new_call_stack_t__SWIG_1', 'new_callregs_t', 'new_callregs_t__SWIG_0', 'new_callregs_t__SWIG_1', + 'new_cancellable_graph_t', 'new_carg_t', 'new_carglist_t', 'new_carglist_t__SWIG_0', @@ -6683,10 +7526,16 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', + 'new_chooser_stdact_desc_t', 'new_cif_t', 'new_cif_t__SWIG_0', 'new_cif_t__SWIG_1', + 'new_cinsn_list_t', + 'new_cinsn_list_t__SWIG_0', + 'new_cinsn_list_t__SWIG_1', + 'new_cinsn_list_t_iterator', 'new_cinsn_t', 'new_cinsn_t__SWIG_0', 'new_cinsn_t__SWIG_1', @@ -6700,14 +7549,15 @@ 'new_citem_locator_t__SWIG_0', 'new_citem_locator_t__SWIG_1', 'new_citem_t', - 'new_citem_t__SWIG_0', - 'new_citem_t__SWIG_1', 'new_cloop_t', 'new_cloop_t__SWIG_0', 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', + 'new_compiled_binpat_t', + 'new_compiled_binpat_vec_t', + 'new_compiled_binpat_vec_t__SWIG_0', + 'new_compiled_binpat_vec_t__SWIG_1', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -6729,12 +7579,31 @@ 'new_debug_event_t', 'new_debug_event_t__SWIG_0', 'new_debug_event_t__SWIG_1', + 'new_direntry_t', + 'new_direntry_vec_t', + 'new_direntry_vec_t__SWIG_0', + 'new_direntry_vec_t__SWIG_1', + 'new_dirspec_t', + 'new_dirtree_cursor_t', + 'new_dirtree_cursor_vec_t', + 'new_dirtree_cursor_vec_t__SWIG_0', + 'new_dirtree_cursor_vec_t__SWIG_1', + 'new_dirtree_iterator_t', + 'new_dirtree_selection_t', + 'new_dirtree_t', + 'new_dirtree_visitor_t', 'new_disasm_line_t', 'new_disasm_line_t__SWIG_0', 'new_disasm_line_t__SWIG_1', 'new_disasm_text_t', 'new_disasm_text_t__SWIG_0', 'new_disasm_text_t__SWIG_1', + 'new_dyn_ea_array', + 'new_dyn_member_ref_array', + 'new_dyn_range_array', + 'new_dyn_regarg_array', + 'new_dyn_regvar_array', + 'new_dyn_stkpnt_array', 'new_ea_array', 'new_ea_name_t', 'new_ea_name_t__SWIG_0', @@ -6749,7 +7618,6 @@ 'new_edge_layout_point_t', 'new_edge_layout_point_t__SWIG_0', 'new_edge_layout_point_t__SWIG_1', - 'new_edge_layout_point_t__SWIG_2', 'new_edge_segment_t', 'new_edge_t', 'new_edge_t__SWIG_0', @@ -6769,12 +7637,16 @@ 'new_excvec_t', 'new_excvec_t__SWIG_0', 'new_excvec_t__SWIG_1', + 'new_file_enumerator_t', 'new_fixup_data_t', 'new_fixup_data_t__SWIG_0', 'new_fixup_data_t__SWIG_1', 'new_fixup_info_t', - 'new_fnum_array', 'new_fnumber_t', + 'new_fpvalue_shorts_array_t', + 'new_fpvalue_t', + 'new_fpvalue_t__SWIG_0', + 'new_fpvalue_t__SWIG_1', 'new_func_item_iterator_t', 'new_func_item_iterator_t__SWIG_0', 'new_func_item_iterator_t__SWIG_1', @@ -6791,6 +7663,7 @@ 'new_funcargvec_t__SWIG_0', 'new_funcargvec_t__SWIG_1', 'new_gco_info_t', + 'new_gdl_graph_t', 'new_graph_chains_t', 'new_graph_item_t', 'new_graph_location_info_t', @@ -6825,8 +7698,15 @@ 'new_idc_values_t__SWIG_1', 'new_idp_desc_t', 'new_idp_name_t', + 'new_input_event_keyboard_data_t', + 'new_input_event_mouse_data_t', + 'new_input_event_shortcut_data_t', + 'new_input_event_t', 'new_insn_t', 'new_instant_dbgopts_t', + 'new_int64vec_t', + 'new_int64vec_t__SWIG_0', + 'new_int64vec_t__SWIG_1', 'new_int_pointer', 'new_interval_t', 'new_interval_t__SWIG_0', @@ -6835,12 +7715,22 @@ 'new_intvec_t', 'new_intvec_t__SWIG_0', 'new_intvec_t__SWIG_1', + 'new_ioports_fallback_t', + 'new_iterator', 'new_ivl_t', 'new_ivl_with_name_t', 'new_ivlset_t', 'new_ivlset_t__SWIG_0', 'new_ivlset_t__SWIG_1', - 'new_llabel_t', + 'new_line_rendering_output_entries_refs_t', + 'new_line_rendering_output_entries_refs_t__SWIG_0', + 'new_line_rendering_output_entries_refs_t__SWIG_1', + 'new_line_rendering_output_entry_t', + 'new_line_rendering_output_entry_t__SWIG_0', + 'new_line_rendering_output_entry_t__SWIG_1', + 'new_linearray_t', + 'new_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -6850,9 +7740,6 @@ 'new_lochist_t', 'new_lock_func', 'new_lock_segment', - 'new_longlongvec_t', - 'new_longlongvec_t__SWIG_0', - 'new_longlongvec_t__SWIG_1', 'new_lvar_locator_t', 'new_lvar_locator_t__SWIG_0', 'new_lvar_locator_t__SWIG_1', @@ -6867,6 +7754,7 @@ 'new_lvar_saved_infos_t__SWIG_1', 'new_lvar_uservec_t', 'new_lvars_t', + 'new_macro_constructor_t', 'new_mba_range_iterator_t', 'new_mba_ranges_t', 'new_mba_ranges_t__SWIG_0', @@ -6916,22 +7804,23 @@ 'new_netnode', 'new_netnode__SWIG_0', 'new_netnode__SWIG_1', - 'new_netnode__SWIG_2', 'new_node_info_t', 'new_node_iterator', 'new_node_layout_t', 'new_node_layout_t__SWIG_0', 'new_node_layout_t__SWIG_1', 'new_node_ordering_t', + 'new_num_range_t', 'new_number_format_t', + 'new_octet_generator_t', 'new_op_parent_info_t', 'new_op_t', 'new_operand_locator_t', 'new_operands_array', - 'new_operator_info_t', 'new_opinfo_t', 'new_optblock_t', 'new_optinsn_t', + 'new_params_t', 'new_plugin_info_t', 'new_point_t', 'new_point_t__SWIG_0', @@ -6954,10 +7843,6 @@ 'new_qflow_chart_t', 'new_qflow_chart_t__SWIG_0', 'new_qflow_chart_t__SWIG_1', - 'new_qlist_cinsn_t', - 'new_qlist_cinsn_t__SWIG_0', - 'new_qlist_cinsn_t__SWIG_1', - 'new_qlist_cinsn_t_iterator', 'new_qmutex_locker_t', 'new_qstring_printer_t', 'new_qvector_carg_t', @@ -6975,7 +7860,6 @@ 'new_qvector_snapshotvec_t', 'new_qvector_snapshotvec_t__SWIG_0', 'new_qvector_snapshotvec_t__SWIG_1', - 'new_range_array', 'new_range_t', 'new_range_t__SWIG_0', 'new_range_t__SWIG_1', @@ -6992,8 +7876,15 @@ 'new_rect_t__SWIG_1', 'new_rect_t__SWIG_2', 'new_refinfo_t', + 'new_reg_access_t', + 'new_reg_access_vec_t', + 'new_reg_access_vec_t__SWIG_0', + 'new_reg_access_vec_t__SWIG_1', + 'new_reg_accesses_t', 'new_reg_info_t', 'new_regarg_t', + 'new_regarg_t__SWIG_0', + 'new_regarg_t__SWIG_1', 'new_reginfovec_t', 'new_reginfovec_t__SWIG_0', 'new_reginfovec_t__SWIG_1', @@ -7006,10 +7897,13 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', + 'new_regvar_t__SWIG_0', + 'new_regvar_t__SWIG_1', 'new_renderer_info_pos_t', 'new_renderer_info_t', + 'new_renderer_info_t__SWIG_0', + 'new_renderer_info_t__SWIG_1', 'new_renderer_pos_info_t', 'new_rlist_t', 'new_rlist_t__SWIG_0', @@ -7025,11 +7919,18 @@ 'new_screen_graph_selection_base_t__SWIG_0', 'new_screen_graph_selection_base_t__SWIG_1', 'new_screen_graph_selection_t', + 'new_section_lines_refs_t', + 'new_section_lines_refs_t__SWIG_0', + 'new_section_lines_refs_t__SWIG_1', + 'new_sections_lines_refs_t', + 'new_sections_lines_refs_t__SWIG_0', + 'new_sections_lines_refs_t__SWIG_1', 'new_segm_move_info_t', 'new_segm_move_info_vec_t', 'new_segm_move_info_vec_t__SWIG_0', 'new_segm_move_info_vec_t__SWIG_1', 'new_segm_move_infos_t', + 'new_segment_defsr_array', 'new_segment_t', 'new_seh_t', 'new_sel_array', @@ -7049,14 +7950,12 @@ 'new_sizevec_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', + 'new_stkarg_area_info_t', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', 'new_strarray_t', 'new_string_info_t', - 'new_string_info_t__SWIG_0', - 'new_string_info_t__SWIG_1', 'new_strpath_ids_array', 'new_strpath_t', 'new_struct_field_visitor_t', @@ -7069,6 +7968,10 @@ 'new_sync_source_t', 'new_sync_source_t__SWIG_0', 'new_sync_source_t__SWIG_1', + 'new_sync_source_vec_t', + 'new_sync_source_vec_t__SWIG_0', + 'new_sync_source_vec_t__SWIG_1', + 'new_synced_group_t', 'new_tev_info_reg_t', 'new_tev_info_t', 'new_tev_reg_value_t', @@ -7079,6 +7982,9 @@ 'new_tevinforeg_vec_t__SWIG_0', 'new_tevinforeg_vec_t__SWIG_1', 'new_text_sink_t', + 'new_text_t', + 'new_text_t__SWIG_0', + 'new_text_t__SWIG_1', 'new_thread_name_t', 'new_tid_array', 'new_til', @@ -7097,6 +8003,9 @@ 'new_tryblks_t', 'new_tryblks_t__SWIG_0', 'new_tryblks_t__SWIG_1', + 'new_twinline_t', + 'new_twinline_t__SWIG_0', + 'new_twinline_t__SWIG_1', 'new_twinpos_t', 'new_twinpos_t__SWIG_0', 'new_twinpos_t__SWIG_1', @@ -7116,22 +8025,24 @@ 'new_udt_member_t', 'new_udt_type_data_t', 'new_udtmembervec_t', - 'new_udtmembervec_t__SWIG_0', - 'new_udtmembervec_t__SWIG_1', + 'new_udtmembervec_template_t', + 'new_udtmembervec_template_t__SWIG_0', + 'new_udtmembervec_template_t__SWIG_1', 'new_ui_requests_t', 'new_ui_stroff_applicator_t', 'new_ui_stroff_op_t', 'new_ui_stroff_ops_t', 'new_ui_stroff_ops_t__SWIG_0', 'new_ui_stroff_ops_t__SWIG_1', + 'new_uint64vec_t', + 'new_uint64vec_t__SWIG_0', + 'new_uint64vec_t__SWIG_1', 'new_uintvec_t', 'new_uintvec_t__SWIG_0', 'new_uintvec_t__SWIG_1', - 'new_ulonglongvec_t', - 'new_ulonglongvec_t__SWIG_0', - 'new_ulonglongvec_t__SWIG_1', 'new_user_cmts_iterator_t', 'new_user_cmts_t', + 'new_user_defined_prefix_t', 'new_user_iflags_iterator_t', 'new_user_iflags_t', 'new_user_labels_iterator_t', @@ -7189,6 +8100,7 @@ 'next_not_tail', 'next_that', 'next_unknown', + 'next_visea', 'node2ea', 'node_info_t_bg_color_get', 'node_info_t_bg_color_set', @@ -7250,16 +8162,23 @@ 'node_layout_t_swap', 'node_layout_t_truncate', 'node_ordering_t_clear', + 'node_ordering_t_clr', 'node_ordering_t_node', + 'node_ordering_t_order', 'node_ordering_t_resize', 'node_ordering_t_set', 'node_ordering_t_size', 'nomem', 'nomem__varargs__', 'num_flag', + 'num_range_t_maxval_get', + 'num_range_t_maxval_set', + 'num_range_t_minval_get', + 'num_range_t_minval_set', 'number_format_t_flags_get', 'number_format_t_flags_set', 'number_format_t_get_radix', + 'number_format_t_has_unmutable_type', 'number_format_t_is_char', 'number_format_t_is_dec', 'number_format_t_is_enum', @@ -7280,6 +8199,15 @@ 'number_format_t_type_name_get', 'number_format_t_type_name_set', 'oct_flag', + 'octet_generator_t_avail_bits_get', + 'octet_generator_t_avail_bits_set', + 'octet_generator_t_ea_get', + 'octet_generator_t_ea_set', + 'octet_generator_t_high_byte_first_get', + 'octet_generator_t_high_byte_first_set', + 'octet_generator_t_invert_byte_order', + 'octet_generator_t_value_get', + 'octet_generator_t_value_set', 'off_flag', 'op_adds_xrefs', 'op_bin', @@ -7314,6 +8242,8 @@ 'op_t___set_specval__', 'op_t___set_value__', 'op_t__from_ptrval__', + 'op_t_addr_get', + 'op_t_addr_set', 'op_t_assign', 'op_t_clr_shown', 'op_t_dtype_get', @@ -7328,6 +8258,10 @@ 'op_t_offb_set', 'op_t_offo_get', 'op_t_offo_set', + 'op_t_phrase_get', + 'op_t_phrase_set', + 'op_t_reg_get', + 'op_t_reg_set', 'op_t_set_shown', 'op_t_shown', 'op_t_specflag1_get', @@ -7338,11 +8272,16 @@ 'op_t_specflag3_set', 'op_t_specflag4_get', 'op_t_specflag4_set', + 'op_t_specval_get', + 'op_t_specval_set', 'op_t_type_get', 'op_t_type_set', + 'op_t_value_get', + 'op_t_value_set', 'op_uses_x', 'op_uses_y', 'op_uses_z', + 'open_bookmarks_window', 'open_bpts_window', 'open_calls_window', 'open_disasm_window', @@ -7386,17 +8325,9 @@ 'operands_array___getitem__', 'operands_array___len__', 'operands_array___setitem__', + 'operands_array__get_bytes', + 'operands_array__set_bytes', 'operands_array_data_get', - 'operator_info_t_fixtype_get', - 'operator_info_t_fixtype_set', - 'operator_info_t_flags_get', - 'operator_info_t_flags_set', - 'operator_info_t_precedence_get', - 'operator_info_t_precedence_set', - 'operator_info_t_text_get', - 'operator_info_t_text_set', - 'operator_info_t_valency_get', - 'operator_info_t_valency_set', 'opinfo_t_cd_get', 'opinfo_t_cd_set', 'opinfo_t_ec_get', @@ -7476,6 +8407,8 @@ 'outctx_base_t_stack_view', 'outctx_base_t_term_outctx', 'outctx_t__from_ptrval__', + 'outctx_t_ash_get', + 'outctx_t_ash_set', 'outctx_t_bin_ea_get', 'outctx_t_bin_ea_set', 'outctx_t_bin_state_get', @@ -7500,8 +8433,14 @@ 'outctx_t_out_mnemonic', 'outctx_t_out_one_operand', 'outctx_t_out_specea', + 'outctx_t_ph_get', + 'outctx_t_ph_set', + 'outctx_t_procmod_get', + 'outctx_t_procmod_set', 'outctx_t_retrieve_cmt', 'outctx_t_retrieve_name', + 'outctx_t_saved_immvals_get', + 'outctx_t_saved_immvals_set', 'outctx_t_set_bin_state', 'outctx_t_setup_outctx', 'outctx_t_wif_get', @@ -7512,10 +8451,17 @@ 'pack_object_to_bv', 'pack_object_to_idb', 'packreal_flag', + 'params_t_p1_get', + 'params_t_p1_set', + 'params_t_p2_get', + 'params_t_p2_set', + 'parse_binpat_str', 'parse_command_line3', 'parse_dbgopts', 'parse_decl', 'parse_decls', + 'parse_decls_for_srclang', + 'parse_decls_with_parser', 'parse_reg_name', 'parse_user_call', 'partial_type_num', @@ -7538,6 +8484,7 @@ 'ph_get_instruc_end', 'ph_get_instruc_start', 'ph_get_operand_info', + 'ph_get_reg_accesses', 'ph_get_reg_code_sreg', 'ph_get_reg_data_sreg', 'ph_get_reg_first_sreg', @@ -7555,6 +8502,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -7660,6 +8608,7 @@ 'prev_not_tail', 'prev_that', 'prev_unknown', + 'prev_visea', 'print_argloc', 'print_decls', 'print_idcv', @@ -7685,6 +8634,7 @@ 'printop_t_ti_get', 'printop_t_ti_set', 'process_archive', + 'process_config_directive', 'process_info_t_name_get', 'process_info_t_name_set', 'process_info_t_pid_get', @@ -7746,13 +8696,13 @@ 'put_qword', 'put_word', 'py_add_idc_func', + 'py_chooser_base_t_get_row', 'py_get_ask_form', 'py_get_call_idc_func', 'py_get_open_form', 'py_load_custom_icon_data', 'py_load_custom_icon_fn', 'py_register_compiled_form', - 'py_ss_restore_callback', 'py_unregister_compiled_form', 'pycim_get_widget', 'pycim_view_close', @@ -7799,12 +8749,12 @@ 'qfile_t_flush', 'qfile_t_from_capsule', 'qfile_t_from_fp', - 'qfile_t_get_char', + 'qfile_t_get_byte', 'qfile_t_get_fp', 'qfile_t_gets', 'qfile_t_open', 'qfile_t_opened', - 'qfile_t_put_char', + 'qfile_t_put_byte', 'qfile_t_puts', 'qfile_t_read', 'qfile_t_readbytes', @@ -7842,49 +8792,6 @@ 'qflow_chart_t_title_get', 'qflow_chart_t_title_set', 'qlgetz', - 'qlist_cinsn_t___eq__', - 'qlist_cinsn_t___getitem__', - 'qlist_cinsn_t___len__', - 'qlist_cinsn_t___ne__', - 'qlist_cinsn_t___setitem__', - 'qlist_cinsn_t_back', - 'qlist_cinsn_t_back__SWIG_0', - 'qlist_cinsn_t_back__SWIG_1', - 'qlist_cinsn_t_begin', - 'qlist_cinsn_t_clear', - 'qlist_cinsn_t_empty', - 'qlist_cinsn_t_end', - 'qlist_cinsn_t_erase', - 'qlist_cinsn_t_erase__SWIG_0', - 'qlist_cinsn_t_erase__SWIG_1', - 'qlist_cinsn_t_erase__SWIG_2', - 'qlist_cinsn_t_front', - 'qlist_cinsn_t_front__SWIG_0', - 'qlist_cinsn_t_front__SWIG_1', - 'qlist_cinsn_t_insert', - 'qlist_cinsn_t_insert__SWIG_0', - 'qlist_cinsn_t_insert__SWIG_1', - 'qlist_cinsn_t_insert__SWIG_3', - 'qlist_cinsn_t_insert__SWIG_4', - 'qlist_cinsn_t_iterator___eq__', - 'qlist_cinsn_t_iterator___ne__', - 'qlist_cinsn_t_iterator___next__', - 'qlist_cinsn_t_iterator_cur_get', - 'qlist_cinsn_t_pop_back', - 'qlist_cinsn_t_pop_front', - 'qlist_cinsn_t_push_back', - 'qlist_cinsn_t_push_back__SWIG_0', - 'qlist_cinsn_t_push_back__SWIG_1', - 'qlist_cinsn_t_push_front', - 'qlist_cinsn_t_rbegin', - 'qlist_cinsn_t_rbegin__SWIG_0', - 'qlist_cinsn_t_rbegin__SWIG_1', - 'qlist_cinsn_t_remove', - 'qlist_cinsn_t_rend', - 'qlist_cinsn_t_rend__SWIG_0', - 'qlist_cinsn_t_rend__SWIG_1', - 'qlist_cinsn_t_size', - 'qlist_cinsn_t_swap', 'qrefcnt_obj_t_refcnt_get', 'qrefcnt_obj_t_refcnt_set', 'qrefcnt_obj_t_release', @@ -7910,6 +8817,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8112,11 +9020,6 @@ 'qvector_snapshotvec_t_swap', 'qvector_snapshotvec_t_truncate', 'qword_flag', - 'range_array___getitem__', - 'range_array___len__', - 'range_array___setitem__', - 'range_array_count_get', - 'range_array_data_get', 'range_t___eq__', 'range_t___gt__', 'range_t___lt__', @@ -8217,6 +9120,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8258,6 +9162,8 @@ 'refinfo_t_flags_set', 'refinfo_t_init', 'refinfo_t_is_custom', + 'refinfo_t_is_no_ones', + 'refinfo_t_is_no_zeros', 'refinfo_t_is_pastend', 'refinfo_t_is_rvaoff', 'refinfo_t_is_signed', @@ -8272,12 +9178,64 @@ 'refinfo_t_type', 'refresh_chooser', 'refresh_choosers', + 'refresh_custom_viewer', 'refresh_debugger_memory', 'refresh_idaview', 'refresh_idaview_anyway', 'refresh_navband', 'refresh_viewer', 'reg2mreg', + 'reg_access_t___eq__', + 'reg_access_t___ne__', + 'reg_access_t_access_type_get', + 'reg_access_t_access_type_set', + 'reg_access_t_have_common_bits', + 'reg_access_t_opnum_get', + 'reg_access_t_opnum_set', + 'reg_access_t_range_get', + 'reg_access_t_range_set', + 'reg_access_t_regnum_get', + 'reg_access_t_regnum_set', + 'reg_access_vec_t___eq__', + 'reg_access_vec_t___getitem__', + 'reg_access_vec_t___len__', + 'reg_access_vec_t___ne__', + 'reg_access_vec_t___setitem__', + 'reg_access_vec_t__del', + 'reg_access_vec_t_add_unique', + 'reg_access_vec_t_at', + 'reg_access_vec_t_begin', + 'reg_access_vec_t_begin__SWIG_0', + 'reg_access_vec_t_begin__SWIG_1', + 'reg_access_vec_t_capacity', + 'reg_access_vec_t_clear', + 'reg_access_vec_t_empty', + 'reg_access_vec_t_end', + 'reg_access_vec_t_end__SWIG_0', + 'reg_access_vec_t_end__SWIG_1', + 'reg_access_vec_t_erase', + 'reg_access_vec_t_erase__SWIG_0', + 'reg_access_vec_t_erase__SWIG_1', + 'reg_access_vec_t_extract', + 'reg_access_vec_t_find', + 'reg_access_vec_t_find__SWIG_0', + 'reg_access_vec_t_find__SWIG_1', + 'reg_access_vec_t_grow', + 'reg_access_vec_t_has', + 'reg_access_vec_t_inject', + 'reg_access_vec_t_insert', + 'reg_access_vec_t_pop_back', + 'reg_access_vec_t_push_back', + 'reg_access_vec_t_push_back__SWIG_0', + 'reg_access_vec_t_push_back__SWIG_1', + 'reg_access_vec_t_qclear', + 'reg_access_vec_t_reserve', + 'reg_access_vec_t_resize', + 'reg_access_vec_t_resize__SWIG_0', + 'reg_access_vec_t_resize__SWIG_1', + 'reg_access_vec_t_size', + 'reg_access_vec_t_swap', + 'reg_access_vec_t_truncate', 'reg_data_type', 'reg_delete', 'reg_delete_subkey', @@ -8314,6 +9272,7 @@ 'regarg_t_name_set', 'regarg_t_reg_get', 'regarg_t_reg_set', + 'regarg_t_swap', 'regarg_t_type_get', 'regarg_t_type_set', 'reginfovec_t___eq__', @@ -8359,6 +9318,7 @@ 'register_action', 'register_addon', 'register_and_attach_to_menu', + 'register_cfgopts', 'register_custom_data_format', 'register_custom_data_type', 'register_info_t_bit_strings_get', @@ -8437,15 +9397,11 @@ 'regval_t_set_int', 'regval_t_set_unavailable', 'regval_t_swap', - 'regvar_array___getitem__', - 'regvar_array___len__', - 'regvar_array___setitem__', - 'regvar_array_count_get', - 'regvar_array_data_get', 'regvar_t_canon_get', 'regvar_t_canon_set', 'regvar_t_cmt_get', 'regvar_t_cmt_set', + 'regvar_t_swap', 'regvar_t_user_get', 'regvar_t_user_set', 'reload_file', @@ -8461,6 +9417,7 @@ 'rename_bptgrp', 'rename_encoding', 'rename_entry', + 'rename_lvar', 'rename_regvar', 'renderer_info_pos_t___eq__', 'renderer_info_pos_t___ne__', @@ -8472,7 +9429,6 @@ 'renderer_info_pos_t_node_set', 'renderer_info_t___eq__', 'renderer_info_t___ne__', - 'renderer_info_t_clear', 'renderer_info_t_gli_get', 'renderer_info_t_gli_set', 'renderer_info_t_pos_get', @@ -8541,6 +9497,7 @@ 'restore_user_defined_calls', 'restore_user_iflags', 'restore_user_labels', + 'restore_user_labels2', 'restore_user_lvar_settings', 'restore_user_numforms', 'restore_user_unions', @@ -8576,6 +9533,7 @@ 'save_user_defined_calls', 'save_user_iflags', 'save_user_labels', + 'save_user_labels2', 'save_user_lvar_settings', 'save_user_numforms', 'save_user_unions', @@ -8640,6 +9598,85 @@ 'screen_graph_selection_t_points_count', 'screen_graph_selection_t_sub', 'search_down', + 'section_lines_refs_t___eq__', + 'section_lines_refs_t___getitem__', + 'section_lines_refs_t___len__', + 'section_lines_refs_t___ne__', + 'section_lines_refs_t___setitem__', + 'section_lines_refs_t__del', + 'section_lines_refs_t_add_unique', + 'section_lines_refs_t_at', + 'section_lines_refs_t_begin', + 'section_lines_refs_t_begin__SWIG_0', + 'section_lines_refs_t_begin__SWIG_1', + 'section_lines_refs_t_capacity', + 'section_lines_refs_t_clear', + 'section_lines_refs_t_empty', + 'section_lines_refs_t_end', + 'section_lines_refs_t_end__SWIG_0', + 'section_lines_refs_t_end__SWIG_1', + 'section_lines_refs_t_erase', + 'section_lines_refs_t_erase__SWIG_0', + 'section_lines_refs_t_erase__SWIG_1', + 'section_lines_refs_t_extract', + 'section_lines_refs_t_find', + 'section_lines_refs_t_find__SWIG_0', + 'section_lines_refs_t_find__SWIG_1', + 'section_lines_refs_t_has', + 'section_lines_refs_t_inject', + 'section_lines_refs_t_insert', + 'section_lines_refs_t_pop_back', + 'section_lines_refs_t_push_back', + 'section_lines_refs_t_push_back__SWIG_0', + 'section_lines_refs_t_push_back__SWIG_1', + 'section_lines_refs_t_qclear', + 'section_lines_refs_t_reserve', + 'section_lines_refs_t_resize', + 'section_lines_refs_t_resize__SWIG_0', + 'section_lines_refs_t_resize__SWIG_1', + 'section_lines_refs_t_size', + 'section_lines_refs_t_swap', + 'section_lines_refs_t_truncate', + 'sections_lines_refs_t___eq__', + 'sections_lines_refs_t___getitem__', + 'sections_lines_refs_t___len__', + 'sections_lines_refs_t___ne__', + 'sections_lines_refs_t___setitem__', + 'sections_lines_refs_t__del', + 'sections_lines_refs_t_add_unique', + 'sections_lines_refs_t_at', + 'sections_lines_refs_t_begin', + 'sections_lines_refs_t_begin__SWIG_0', + 'sections_lines_refs_t_begin__SWIG_1', + 'sections_lines_refs_t_capacity', + 'sections_lines_refs_t_clear', + 'sections_lines_refs_t_empty', + 'sections_lines_refs_t_end', + 'sections_lines_refs_t_end__SWIG_0', + 'sections_lines_refs_t_end__SWIG_1', + 'sections_lines_refs_t_erase', + 'sections_lines_refs_t_erase__SWIG_0', + 'sections_lines_refs_t_erase__SWIG_1', + 'sections_lines_refs_t_extract', + 'sections_lines_refs_t_find', + 'sections_lines_refs_t_find__SWIG_0', + 'sections_lines_refs_t_find__SWIG_1', + 'sections_lines_refs_t_grow', + 'sections_lines_refs_t_has', + 'sections_lines_refs_t_inject', + 'sections_lines_refs_t_insert', + 'sections_lines_refs_t_pop_back', + 'sections_lines_refs_t_push_back', + 'sections_lines_refs_t_push_back__SWIG_0', + 'sections_lines_refs_t_push_back__SWIG_1', + 'sections_lines_refs_t_qclear', + 'sections_lines_refs_t_reserve', + 'sections_lines_refs_t_resize', + 'sections_lines_refs_t_resize__SWIG_0', + 'sections_lines_refs_t_resize__SWIG_1', + 'sections_lines_refs_t_size', + 'sections_lines_refs_t_swap', + 'sections_lines_refs_t_truncate', 'seg_flag', 'segm_adjust_diff', 'segm_adjust_ea', @@ -8692,6 +9729,13 @@ 'segm_move_info_vec_t_swap', 'segm_move_info_vec_t_truncate', 'segm_move_infos_t_find', + 'segment_defsr_array___getitem__', + 'segment_defsr_array___len__', + 'segment_defsr_array___setitem__', + 'segment_defsr_array__get_bytes', + 'segment_defsr_array__set_bytes', + 'segment_defsr_array_data_get', + 'segment_t___getDefsr', 'segment_t_abits', 'segment_t_abytes', 'segment_t_align_get', @@ -8711,6 +9755,9 @@ 'segment_t_end_ea_set', 'segment_t_flags_get', 'segment_t_flags_set', + 'segment_t_is_16bit', + 'segment_t_is_32bit', + 'segment_t_is_64bit', 'segment_t_is_header_segm', 'segment_t_is_hidden_segtype', 'segment_t_is_loader_segm', @@ -8738,8 +9785,6 @@ 'segment_t_type_get', 'segment_t_type_set', 'segment_t_update', - 'segment_t_use32', - 'segment_t_use64', 'segtype', 'seh_t_clear', 'seh_t_filter_get', @@ -8756,6 +9801,8 @@ 'sel_pointer_cast', 'sel_pointer_frompointer', 'sel_pointer_value', + 'select_parser_by_name', + 'select_parser_by_srclang', 'select_thread', 'select_udt_by_offset', 'selection_item_t___eq__', @@ -8786,7 +9833,6 @@ 'set_asm_inc_file', 'set_auto_state', 'set_bblk_trace_options', - 'set_bits', 'set_bmask_cmt', 'set_bmask_name', 'set_bpt_group', @@ -8810,6 +9856,7 @@ 'set_cp_validity', 'set_custom_data_type_ids', 'set_custom_viewer_qt_aware', + 'set_data_guessed_by_hexrays', 'set_database_flag', 'set_debug_event_code', 'set_debug_name', @@ -8840,6 +9887,7 @@ 'set_frame_size', 'set_func_cmt', 'set_func_end', + 'set_func_guessed_by_hexrays', 'set_func_name_if_jumpfunc', 'set_func_start', 'set_func_trace_options', @@ -8852,15 +9900,19 @@ 'set_header_path', 'set_highlight', 'set_highlight_trace_options', + 'set_ida_notepad_text', 'set_ida_state', 'set_idcv_attr', 'set_idcv_slice', 'set_ids_modnode', 'set_imagebase', 'set_immd', + 'set_import_name', + 'set_import_ordinal', 'set_insn_trace_options', 'set_item_color', 'set_libitem', + 'set_loader_format_name', 'set_lzero', 'set_lzero0', 'set_lzero1', @@ -8882,6 +9934,7 @@ 'set_op_type', 'set_opinfo', 'set_outfile_encoding_idx', + 'set_parser_argv', 'set_path', 'set_process_options', 'set_process_state', @@ -8892,6 +9945,7 @@ 'set_reg_val', 'set_reg_val__SWIG_0', 'set_reg_val__SWIG_1', + 'set_registry_root', 'set_regvar_cmt', 'set_remote_debugger', 'set_resume_mode', @@ -8908,8 +9962,11 @@ 'set_segment_translations', 'set_selector', 'set_source_linnum', + 'set_srcdbg_paths', + 'set_srcdbg_undesired_paths', 'set_sreg_at_next_code', 'set_step_trace_options', + 'set_str_encoding_idx', 'set_str_type', 'set_struc_align', 'set_struc_cmt', @@ -8928,15 +9985,19 @@ 'set_tinfo_attrs', 'set_tinfo_property', 'set_trace_base_address', + 'set_trace_dynamic_register_set', 'set_trace_file_desc', 'set_trace_platform', 'set_trace_size', 'set_type', 'set_type_alias', + 'set_type_determined_by_hexrays', + 'set_type_guessed_by_ida', 'set_usemodsp', 'set_user_defined_prefix', 'set_usersp', 'set_userti', + 'set_vftable_ea', 'set_view_renderer_type', 'set_viewer_graph', 'set_visible_func', @@ -9044,11 +10105,14 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', + 'stkarg_area_info_t_cb_get', + 'stkarg_area_info_t_cb_set', + 'stkarg_area_info_t_linkage_area_get', + 'stkarg_area_info_t_linkage_area_set', + 'stkarg_area_info_t_shadow_size_get', + 'stkarg_area_info_t_shadow_size_set', + 'stkarg_area_info_t_stkarg_offset_get', + 'stkarg_area_info_t_stkarg_offset_set', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9103,6 +10167,8 @@ 'strpath_ids_array___getitem__', 'strpath_ids_array___len__', 'strpath_ids_array___setitem__', + 'strpath_ids_array__get_bytes', + 'strpath_ids_array__set_bytes', 'strpath_ids_array_data_get', 'strpath_t___getIds', 'strpath_t_delta_get', @@ -9112,20 +10178,27 @@ 'strpath_t_len_get', 'strpath_t_len_set', 'stru_flag', + 'struc_t___get_members__', 'struc_t_age_get', 'struc_t_age_set', 'struc_t_from_til', 'struc_t_get_alignment', - 'struc_t_get_member', + 'struc_t_get_last_member', + 'struc_t_get_last_member__SWIG_0', + 'struc_t_get_last_member__SWIG_1', 'struc_t_has_union', 'struc_t_id_get', 'struc_t_id_set', 'struc_t_is_choosable', + 'struc_t_is_copyof', 'struc_t_is_frame', 'struc_t_is_ghost', 'struc_t_is_hidden', + 'struc_t_is_mappedto', + 'struc_t_is_synced', 'struc_t_is_union', 'struc_t_is_varstr', + 'struc_t_like_union', 'struc_t_members_get', 'struc_t_members_set', 'struc_t_memqty_get', @@ -9136,6 +10209,7 @@ 'struc_t_props_set', 'struc_t_set_alignment', 'struc_t_set_ghost', + 'struc_t_unsync', 'struct_field_visitor_t_visit_field', 'structplace_t_idx_get', 'structplace_t_idx_set', @@ -9179,7 +10253,6 @@ 'strwinsetup_t_display_only_existing_strings_set', 'strwinsetup_t_ignore_heads_get', 'strwinsetup_t_ignore_heads_set', - 'strwinsetup_t_is_initialized', 'strwinsetup_t_minlen_get', 'strwinsetup_t_minlen_set', 'strwinsetup_t_only_7bit_get', @@ -9193,6 +10266,7 @@ 'swap_idcvs', 'swap_mcode_relation', 'swapped_relation', + 'switch_dbctx', 'switch_info_t__from_ptrval__', 'switch_info_t__get_values_lowcase', 'switch_info_t__set_values_lowcase', @@ -9224,10 +10298,13 @@ 'switch_info_t_is_nolowcase', 'switch_info_t_is_sparse', 'switch_info_t_is_subtract', + 'switch_info_t_is_user_defined', 'switch_info_t_jcases_get', 'switch_info_t_jcases_set', 'switch_info_t_jumps_get', 'switch_info_t_jumps_set', + 'switch_info_t_lowcase_get', + 'switch_info_t_lowcase_set', 'switch_info_t_marks_get', 'switch_info_t_marks_set', 'switch_info_t_ncases_get', @@ -9245,13 +10322,53 @@ 'switch_info_t_startea_get', 'switch_info_t_startea_set', 'switch_info_t_use_std_table', + 'switch_info_t_values_get', + 'switch_info_t_values_set', + 'switch_to_golang', 'sync_source_t___eq__', 'sync_source_t___ne__', 'sync_source_t_get_register', 'sync_source_t_get_widget', 'sync_source_t_is_register', 'sync_source_t_is_widget', + 'sync_source_vec_t___eq__', + 'sync_source_vec_t___getitem__', + 'sync_source_vec_t___len__', + 'sync_source_vec_t___ne__', + 'sync_source_vec_t___setitem__', + 'sync_source_vec_t__del', + 'sync_source_vec_t_add_unique', + 'sync_source_vec_t_at', + 'sync_source_vec_t_begin', + 'sync_source_vec_t_begin__SWIG_0', + 'sync_source_vec_t_begin__SWIG_1', + 'sync_source_vec_t_capacity', + 'sync_source_vec_t_clear', + 'sync_source_vec_t_empty', + 'sync_source_vec_t_end', + 'sync_source_vec_t_end__SWIG_0', + 'sync_source_vec_t_end__SWIG_1', + 'sync_source_vec_t_erase', + 'sync_source_vec_t_erase__SWIG_0', + 'sync_source_vec_t_erase__SWIG_1', + 'sync_source_vec_t_extract', + 'sync_source_vec_t_find', + 'sync_source_vec_t_find__SWIG_0', + 'sync_source_vec_t_find__SWIG_1', + 'sync_source_vec_t_has', + 'sync_source_vec_t_inject', + 'sync_source_vec_t_insert', + 'sync_source_vec_t_pop_back', + 'sync_source_vec_t_push_back', + 'sync_source_vec_t_qclear', + 'sync_source_vec_t_reserve', + 'sync_source_vec_t_size', + 'sync_source_vec_t_swap', + 'sync_source_vec_t_truncate', 'sync_sources', + 'synced_group_t_has', + 'synced_group_t_has_register', + 'synced_group_t_has_widget', 'tag_addr', 'tag_advance', 'tag_remove', @@ -9341,6 +10458,38 @@ 'tevinforeg_vec_t_swap', 'tevinforeg_vec_t_truncate', 'text_sink_t__print', + 'text_t___getitem__', + 'text_t___len__', + 'text_t___setitem__', + 'text_t_at', + 'text_t_begin', + 'text_t_begin__SWIG_0', + 'text_t_begin__SWIG_1', + 'text_t_capacity', + 'text_t_clear', + 'text_t_empty', + 'text_t_end', + 'text_t_end__SWIG_0', + 'text_t_end__SWIG_1', + 'text_t_erase', + 'text_t_erase__SWIG_0', + 'text_t_erase__SWIG_1', + 'text_t_extract', + 'text_t_grow', + 'text_t_inject', + 'text_t_insert', + 'text_t_pop_back', + 'text_t_push_back', + 'text_t_push_back__SWIG_0', + 'text_t_push_back__SWIG_1', + 'text_t_qclear', + 'text_t_reserve', + 'text_t_resize', + 'text_t_resize__SWIG_0', + 'text_t_resize__SWIG_1', + 'text_t_size', + 'text_t_swap', + 'text_t_truncate', 'textctrl_info_t_assign', 'textctrl_info_t_create', 'textctrl_info_t_destroy', @@ -9446,6 +10595,7 @@ 'tinfo_t_get_final_ordinal', 'tinfo_t_get_final_type_name', 'tinfo_t_get_func_details', + 'tinfo_t_get_methods', 'tinfo_t_get_modifiers', 'tinfo_t_get_named_type', 'tinfo_t_get_nargs', @@ -9578,6 +10728,7 @@ 'tinfo_t_set_attrs', 'tinfo_t_set_const', 'tinfo_t_set_declalign', + 'tinfo_t_set_methods', 'tinfo_t_set_modifiers', 'tinfo_t_set_named_type', 'tinfo_t_set_numbered_type', @@ -9657,8 +10808,16 @@ 'tryblks_t_size', 'tryblks_t_swap', 'tryblks_t_truncate', - 'twinpos_t___eq__', - 'twinpos_t___ne__', + 'twinline_t_at_get', + 'twinline_t_at_set', + 'twinline_t_bg_color_get', + 'twinline_t_bg_color_set', + 'twinline_t_is_default_get', + 'twinline_t_is_default_set', + 'twinline_t_line_get', + 'twinline_t_line_set', + 'twinline_t_prefix_color_get', + 'twinline_t_prefix_color_set', 'twinpos_t_at_get', 'twinpos_t_at_set', 'twinpos_t_x_get', @@ -9719,6 +10878,10 @@ 'type_mods_t_type_set', 'typedef_type_data_t_is_ordref_get', 'typedef_type_data_t_is_ordref_set', + 'typedef_type_data_t_name_get', + 'typedef_type_data_t_name_set', + 'typedef_type_data_t_ordinal_get', + 'typedef_type_data_t_ordinal_set', 'typedef_type_data_t_resolve_get', 'typedef_type_data_t_resolve_set', 'typedef_type_data_t_swap', @@ -9729,8 +10892,12 @@ 'uchar_array_cast', 'uchar_array_frompointer', 'udc_filter_t_apply', + 'udc_filter_t_cleanup', + 'udc_filter_t_empty', 'udc_filter_t_init', + 'udc_filter_t_install', 'udc_filter_t_match', + 'udc_filter_t_remove', 'udcall_map_begin', 'udcall_map_clear', 'udcall_map_end', @@ -9755,6 +10922,7 @@ 'udcall_t___lt__', 'udcall_t___ne__', 'udcall_t_compare', + 'udcall_t_empty', 'udcall_t_name_get', 'udcall_t_name_set', 'udcall_t_tif_get', @@ -9764,6 +10932,7 @@ 'udt_member_t___ne__', 'udt_member_t_begin', 'udt_member_t_clr_baseclass', + 'udt_member_t_clr_method', 'udt_member_t_clr_unaligned', 'udt_member_t_clr_vftable', 'udt_member_t_clr_virtbase', @@ -9777,6 +10946,7 @@ 'udt_member_t_is_anonymous_udm', 'udt_member_t_is_baseclass', 'udt_member_t_is_bitfield', + 'udt_member_t_is_method', 'udt_member_t_is_unaligned', 'udt_member_t_is_vftable', 'udt_member_t_is_virtbase', @@ -9786,6 +10956,7 @@ 'udt_member_t_offset_get', 'udt_member_t_offset_set', 'udt_member_t_set_baseclass', + 'udt_member_t_set_method', 'udt_member_t_set_unaligned', 'udt_member_t_set_vftable', 'udt_member_t_set_virtbase', @@ -9809,6 +10980,7 @@ 'udt_type_data_t_pack_set', 'udt_type_data_t_sda_get', 'udt_type_data_t_sda_set', + 'udt_type_data_t_set_vftable', 'udt_type_data_t_swap', 'udt_type_data_t_taudt_bits_get', 'udt_type_data_t_taudt_bits_set', @@ -9816,46 +10988,46 @@ 'udt_type_data_t_total_size_set', 'udt_type_data_t_unpadded_size_get', 'udt_type_data_t_unpadded_size_set', - 'udtmembervec_t___eq__', - 'udtmembervec_t___getitem__', - 'udtmembervec_t___len__', - 'udtmembervec_t___ne__', - 'udtmembervec_t___setitem__', - 'udtmembervec_t__del', - 'udtmembervec_t_add_unique', - 'udtmembervec_t_at', - 'udtmembervec_t_begin', - 'udtmembervec_t_begin__SWIG_0', - 'udtmembervec_t_begin__SWIG_1', - 'udtmembervec_t_capacity', - 'udtmembervec_t_clear', - 'udtmembervec_t_empty', - 'udtmembervec_t_end', - 'udtmembervec_t_end__SWIG_0', - 'udtmembervec_t_end__SWIG_1', - 'udtmembervec_t_erase', - 'udtmembervec_t_erase__SWIG_0', - 'udtmembervec_t_erase__SWIG_1', - 'udtmembervec_t_extract', - 'udtmembervec_t_find', - 'udtmembervec_t_find__SWIG_0', - 'udtmembervec_t_find__SWIG_1', - 'udtmembervec_t_grow', - 'udtmembervec_t_has', - 'udtmembervec_t_inject', - 'udtmembervec_t_insert', - 'udtmembervec_t_pop_back', - 'udtmembervec_t_push_back', - 'udtmembervec_t_push_back__SWIG_0', - 'udtmembervec_t_push_back__SWIG_1', - 'udtmembervec_t_qclear', - 'udtmembervec_t_reserve', - 'udtmembervec_t_resize', - 'udtmembervec_t_resize__SWIG_0', - 'udtmembervec_t_resize__SWIG_1', - 'udtmembervec_t_size', - 'udtmembervec_t_swap', - 'udtmembervec_t_truncate', + 'udtmembervec_template_t___eq__', + 'udtmembervec_template_t___getitem__', + 'udtmembervec_template_t___len__', + 'udtmembervec_template_t___ne__', + 'udtmembervec_template_t___setitem__', + 'udtmembervec_template_t__del', + 'udtmembervec_template_t_add_unique', + 'udtmembervec_template_t_at', + 'udtmembervec_template_t_begin', + 'udtmembervec_template_t_begin__SWIG_0', + 'udtmembervec_template_t_begin__SWIG_1', + 'udtmembervec_template_t_capacity', + 'udtmembervec_template_t_clear', + 'udtmembervec_template_t_empty', + 'udtmembervec_template_t_end', + 'udtmembervec_template_t_end__SWIG_0', + 'udtmembervec_template_t_end__SWIG_1', + 'udtmembervec_template_t_erase', + 'udtmembervec_template_t_erase__SWIG_0', + 'udtmembervec_template_t_erase__SWIG_1', + 'udtmembervec_template_t_extract', + 'udtmembervec_template_t_find', + 'udtmembervec_template_t_find__SWIG_0', + 'udtmembervec_template_t_find__SWIG_1', + 'udtmembervec_template_t_grow', + 'udtmembervec_template_t_has', + 'udtmembervec_template_t_inject', + 'udtmembervec_template_t_insert', + 'udtmembervec_template_t_pop_back', + 'udtmembervec_template_t_push_back', + 'udtmembervec_template_t_push_back__SWIG_0', + 'udtmembervec_template_t_push_back__SWIG_1', + 'udtmembervec_template_t_qclear', + 'udtmembervec_template_t_reserve', + 'udtmembervec_template_t_resize', + 'udtmembervec_template_t_resize__SWIG_0', + 'udtmembervec_template_t_resize__SWIG_1', + 'udtmembervec_template_t_size', + 'udtmembervec_template_t_swap', + 'udtmembervec_template_t_truncate', 'ui_load_new_file', 'ui_run_debugger', 'ui_stroff_applicator_t_apply', @@ -9905,6 +11077,45 @@ 'ui_stroff_ops_t_size', 'ui_stroff_ops_t_swap', 'ui_stroff_ops_t_truncate', + 'uint64vec_t___eq__', + 'uint64vec_t___getitem__', + 'uint64vec_t___len__', + 'uint64vec_t___ne__', + 'uint64vec_t___setitem__', + 'uint64vec_t__del', + 'uint64vec_t_add_unique', + 'uint64vec_t_at', + 'uint64vec_t_begin', + 'uint64vec_t_begin__SWIG_0', + 'uint64vec_t_begin__SWIG_1', + 'uint64vec_t_capacity', + 'uint64vec_t_clear', + 'uint64vec_t_empty', + 'uint64vec_t_end', + 'uint64vec_t_end__SWIG_0', + 'uint64vec_t_end__SWIG_1', + 'uint64vec_t_erase', + 'uint64vec_t_erase__SWIG_0', + 'uint64vec_t_erase__SWIG_1', + 'uint64vec_t_extract', + 'uint64vec_t_find', + 'uint64vec_t_find__SWIG_0', + 'uint64vec_t_find__SWIG_1', + 'uint64vec_t_has', + 'uint64vec_t_inject', + 'uint64vec_t_insert', + 'uint64vec_t_pop_back', + 'uint64vec_t_push_back', + 'uint64vec_t_push_back__SWIG_0', + 'uint64vec_t_push_back__SWIG_1', + 'uint64vec_t_qclear', + 'uint64vec_t_reserve', + 'uint64vec_t_resize', + 'uint64vec_t_resize__SWIG_0', + 'uint64vec_t_resize__SWIG_1', + 'uint64vec_t_size', + 'uint64vec_t_swap', + 'uint64vec_t_truncate', 'uintvec_t___eq__', 'uintvec_t___getitem__', 'uintvec_t___len__', @@ -9944,45 +11155,6 @@ 'uintvec_t_size', 'uintvec_t_swap', 'uintvec_t_truncate', - 'ulonglongvec_t___eq__', - 'ulonglongvec_t___getitem__', - 'ulonglongvec_t___len__', - 'ulonglongvec_t___ne__', - 'ulonglongvec_t___setitem__', - 'ulonglongvec_t__del', - 'ulonglongvec_t_add_unique', - 'ulonglongvec_t_at', - 'ulonglongvec_t_begin', - 'ulonglongvec_t_begin__SWIG_0', - 'ulonglongvec_t_begin__SWIG_1', - 'ulonglongvec_t_capacity', - 'ulonglongvec_t_clear', - 'ulonglongvec_t_empty', - 'ulonglongvec_t_end', - 'ulonglongvec_t_end__SWIG_0', - 'ulonglongvec_t_end__SWIG_1', - 'ulonglongvec_t_erase', - 'ulonglongvec_t_erase__SWIG_0', - 'ulonglongvec_t_erase__SWIG_1', - 'ulonglongvec_t_extract', - 'ulonglongvec_t_find', - 'ulonglongvec_t_find__SWIG_0', - 'ulonglongvec_t_find__SWIG_1', - 'ulonglongvec_t_has', - 'ulonglongvec_t_inject', - 'ulonglongvec_t_insert', - 'ulonglongvec_t_pop_back', - 'ulonglongvec_t_push_back', - 'ulonglongvec_t_push_back__SWIG_0', - 'ulonglongvec_t_push_back__SWIG_1', - 'ulonglongvec_t_qclear', - 'ulonglongvec_t_reserve', - 'ulonglongvec_t_resize', - 'ulonglongvec_t_resize__SWIG_0', - 'ulonglongvec_t_resize__SWIG_1', - 'ulonglongvec_t_size', - 'ulonglongvec_t_swap', - 'ulonglongvec_t_truncate', 'unhide_border', 'unhide_item', 'unmark_selection', @@ -9994,6 +11166,7 @@ 'unregister_custom_data_format', 'unregister_custom_data_type', 'unregister_timer', + 'upd_abits', 'update_action_checkable', 'update_action_checked', 'update_action_icon', @@ -10008,6 +11181,7 @@ 'update_func', 'update_hidden_range', 'update_segm', + 'use_golang_cc', 'use_mapping', 'user_cancelled', 'user_cmts_begin', @@ -10029,6 +11203,7 @@ 'user_cmts_size', 'user_cmts_t_at', 'user_cmts_t_size', + 'user_defined_prefix_t_get_user_defined_prefix', 'user_graph_place_t_node_get', 'user_graph_place_t_node_set', 'user_iflags_begin', @@ -10108,6 +11283,7 @@ 'user_unions_size', 'user_unions_t_at', 'user_unions_t_size', + 'uses_aflag_modsp', 'uses_modsp', 'uval_array___getitem__', 'uval_array___setitem__', @@ -10130,6 +11306,8 @@ 'uval_ivl_ivlset_t_qclear', 'uval_ivl_ivlset_t_set_all_values', 'uval_ivl_ivlset_t_single_value', + 'uval_ivl_ivlset_t_single_value__SWIG_0', + 'uval_ivl_ivlset_t_single_value__SWIG_1', 'uval_ivl_ivlset_t_swap', 'uval_ivl_t_end', 'uval_ivl_t_last', @@ -10226,6 +11404,7 @@ 'var_ref_t___lt__', 'var_ref_t___ne__', 'var_ref_t_compare', + 'var_ref_t_getv', 'var_ref_t_idx_get', 'var_ref_t_idx_set', 'var_ref_t_mba_get', @@ -10433,7 +11612,12 @@ 'xrefblk_t_user_set', 'xrefchar', 'xreflist_entry_t___eq__', + 'xreflist_entry_t___ge__', + 'xreflist_entry_t___gt__', + 'xreflist_entry_t___le__', + 'xreflist_entry_t___lt__', 'xreflist_entry_t___ne__', + 'xreflist_entry_t_compare', 'xreflist_entry_t_ea_get', 'xreflist_entry_t_ea_set', 'xreflist_entry_t_opnum_get', diff --git a/release_pydoc_injections2.txt b/release_pydoc_injections2.txt deleted file mode 100644 index ebe2d75..0000000 --- a/release_pydoc_injections2.txt +++ /dev/null @@ -1,78896 +0,0 @@ -Help on function auto_apply_tail in module ida_auto: - -auto_apply_tail(*args) - auto_apply_tail(tail_ea, parent_ea) - - - Plan to apply the tail_ea chunk to the parent - - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) - -Help on function auto_apply_type in module ida_auto: - -auto_apply_type(*args) - auto_apply_type(caller, callee) - - - Plan to apply the callee's type to the calling point. - - - @param caller (C++: ea_t) - @param callee (C++: ea_t) - -Help on function auto_cancel in module ida_auto: - -auto_cancel(*args) - auto_cancel(ea1, ea2) - - - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - -Help on class auto_display_t in module ida_auto: - -class auto_display_t(__builtin__.object) - | Proxy of C++ auto_display_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> auto_display_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | auto_display_t_ea_get(self) -> ea_t - | - | state - | auto_display_t_state_get(self) -> idastate_t - | - | thisown - | The membership flag - | - | type - | auto_display_t_type_get(self) -> atype_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_auto_display_t> - | delete_auto_display_t(self) - -Help on function auto_get in module ida_auto: - -auto_get(*args) - auto_get(type, lowEA, highEA) -> ea_t - - - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) - -Help on function auto_is_ok in module ida_auto: - -auto_is_ok(*args) - auto_is_ok() -> bool - - - Are all queues empty? (i.e. has autoanalysis finished?). - -Help on function auto_make_code in module ida_auto: - -auto_make_code(*args) - auto_make_code(ea) - - - Plan to make code. - - - @param ea (C++: ea_t) - -Help on function auto_make_proc in module ida_auto: - -auto_make_proc(*args) - auto_make_proc(ea) - - - Plan to make code&function. - - - @param ea (C++: ea_t) - -Help on function auto_mark in module ida_auto: - -auto_mark(*args) - auto_mark(ea, type) - - - Put single address into a queue. Queues keep addresses sorted. - - - @param ea (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_mark_range in module ida_auto: - -auto_mark_range(*args) - auto_mark_range(start, end, type) - - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_recreate_insn in module ida_auto: - -auto_recreate_insn(*args) - auto_recreate_insn(ea) -> int - - - Try to create instruction - - @param ea: linear address of callee (C++: ea_t) - @return: the length of the instruction or 0 - -Help on function auto_unmark in module ida_auto: - -auto_unmark(*args) - auto_unmark(start, end, type) - - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_wait in module ida_auto: - -auto_wait(*args) - auto_wait() -> bool - - - Process everything in the queues and return true. - - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) - -Help on function auto_wait_range in module ida_auto: - -auto_wait_range(*args) - auto_wait_range(ea1, ea2) -> ssize_t - - - Process everything in the specified range and return true. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) - -Help on function enable_auto in module ida_auto: - -enable_auto(*args) - enable_auto(enable) -> bool - - - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - - @param enable (C++: bool) - @return: old state - -Help on function get_auto_display in module ida_auto: - -get_auto_display(*args) - get_auto_display(auto_display) - - - Get structure which holds the autoanalysis indicator contents. - - - @param auto_display (C++: auto_display_t *) - -Help on function get_auto_state in module ida_auto: - -get_auto_state(*args) - get_auto_state() -> atype_t - - - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). - -Help on function is_auto_enabled in module ida_auto: - -is_auto_enabled(*args) - is_auto_enabled() -> bool - - - Get autoanalyzer state. - -Help on function may_create_stkvars in module ida_auto: - -may_create_stkvars(*args) - may_create_stkvars() -> bool - - - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. - -Help on function may_trace_sp in module ida_auto: - -may_trace_sp(*args) - may_trace_sp() -> bool - - - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. - -Help on function peek_auto_queue in module ida_auto: - -peek_auto_queue(*args) - peek_auto_queue(low_ea, type) -> ea_t - - - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR - -Help on function plan_and_wait in module ida_auto: - -plan_and_wait(*args) - plan_and_wait(ea1, ea2, final_pass=True) -> int - - - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) - -Help on function plan_ea in module ida_auto: - -plan_ea(*args) - plan_ea(ea) - - - Plan to perform reanalysis. - - - @param ea (C++: ea_t) - -Help on function plan_range in module ida_auto: - -plan_range(*args) - plan_range(sEA, eEA) - - - Plan to perform reanalysis. - - - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) - -Help on function reanalyze_callers in module ida_auto: - -reanalyze_callers(*args) - reanalyze_callers(ea, noret) - - - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) - -Help on function revert_ida_decisions in module ida_auto: - -revert_ida_decisions(*args) - revert_ida_decisions(ea1, ea2) - - - Delete all analysis info that IDA generated for for the given range. - - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - -Help on function set_auto_state in module ida_auto: - -set_auto_state(*args) - set_auto_state(new_state) -> atype_t - - - Set current state of autoanalyzer. - - @param new_state: new state of autoanalyzer (C++: atype_t) - @return: previous state - -Help on function set_ida_state in module ida_auto: - -set_ida_state(*args) - set_ida_state(st) -> idastate_t - - - Change IDA status indicator value - - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status - -Help on function show_addr in module ida_auto: - -show_addr(*args) - show_addr(ea) - - - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - - @param ea: - linear address to display (C++: ea_t) - -Help on function show_auto in module ida_auto: - -show_auto(*args) - show_auto(ea, type=AU_NONE) - - - Change autoanalysis indicator value. - - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) - -Help on function __walk_types_and_formats in module ida_bytes: - -__walk_types_and_formats(formats, type_action, format_action, installing) - # ----------------------------------------------------------------------- - -Help on function add_byte in module ida_bytes: - -add_byte(*args) - add_byte(ea, value) - - - Add a value to one byte of the program. This function works for wide - byte processors too. - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) - -Help on function add_dword in module ida_bytes: - -add_dword(*args) - add_dword(ea, value) - - - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) - -Help on function add_hidden_range in module ida_bytes: - -add_hidden_range(*args) - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success - -Help on function add_mapping in module ida_bytes: - -add_mapping(*args) - add_mapping(_from, to, size) -> bool - - - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) - @return: success - -Help on function add_qword in module ida_bytes: - -add_qword(*args) - add_qword(ea, value) - - - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) - -Help on function add_word in module ida_bytes: - -add_word(*args) - add_word(ea, value) - - - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) - -Help on function align_flag in module ida_bytes: - -align_flag(*args) - align_flag() -> flags_t - - - Get a flags_t representing an alignment directive. - -Help on function append_cmt in module ida_bytes: - -append_cmt(*args) - append_cmt(ea, str, rptble) -> bool - - - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success - -Help on function attach_custom_data_format in module ida_bytes: - -attach_custom_data_format(*args) - attach_custom_data_format(dtid, dfid) -> bool - - - Attach the data format to the data type. - - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) - -Help on function bin_flag in module ida_bytes: - -bin_flag(*args) - bin_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on function bin_search in module ida_bytes: - -bin_search(*args) - bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t - -Help on function byte_flag in module ida_bytes: - -byte_flag(*args) - byte_flag() -> flags_t - - - Get a flags_t representing a byte. - -Help on function bytesize in module ida_bytes: - -bytesize(*args) - bytesize(ea) -> int - - - Get number of bytes required to store a byte at the given address. - - - @param ea (C++: ea_t) - -Help on function calc_def_align in module ida_bytes: - -calc_def_align(*args) - calc_def_align(ea, mina, maxa) -> int - - - Calculate default alignment. - - - @param ea (C++: ea_t) - @param mina (C++: int) - @param maxa (C++: int) - -Help on function calc_dflags in module ida_bytes: - -calc_dflags(*args) - calc_dflags(f, force) -> flags_t - -Help on function calc_max_align in module ida_bytes: - -calc_max_align(*args) - calc_max_align(endea) -> int - - - Returns: 0..32. - - - @param endea (C++: ea_t) - -Help on function calc_max_item_end in module ida_bytes: - -calc_max_item_end(*args) - calc_max_item_end(ea, how=15) -> ea_t - - - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. - -Help on function calc_min_align in module ida_bytes: - -calc_min_align(*args) - calc_min_align(length) -> int - - - Returns: 1..32. - - - @param length (C++: asize_t) - -Help on function can_define_item in module ida_bytes: - -can_define_item(*args) - can_define_item(ea, length, flags) -> bool - - - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) - @return: 1-yes, 0-no - -Help on function change_storage_type in module ida_bytes: - -change_storage_type(*args) - change_storage_type(start_ea, end_ea, stt) -> error_t - - - Change flag storage type for address range. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code - -Help on function char_flag in module ida_bytes: - -char_flag(*args) - char_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function chunk_size in module ida_bytes: - -chunk_size(*args) - chunk_size(ea) -> asize_t - - - Get size of the contiguous address block containing 'ea'. - - @param ea (C++: ea_t) - @return: 0 if 'ea' doesn't belong to the program. - -Help on function chunk_start in module ida_bytes: - -chunk_start(*args) - chunk_start(ea) -> ea_t - - - Get start of the contiguous address block containing 'ea'. - - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. - -Help on function clr_lzero in module ida_bytes: - -clr_lzero(*args) - clr_lzero(ea, n) -> bool - - - Clear lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function clr_op_type in module ida_bytes: - -clr_op_type(*args) - clr_op_type(ea, n) -> bool - - - Remove operand representation information. (set operand representation - to be 'undefined') - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function code_flag in module ida_bytes: - -code_flag(*args) - code_flag() -> flags_t - - - 'FF_CODE' - -Help on function create_16bit_data in module ida_bytes: - -create_16bit_data(*args) - create_16bit_data(ea, length) -> bool - - - Convert to 16-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - -Help on function create_32bit_data in module ida_bytes: - -create_32bit_data(*args) - create_32bit_data(ea, length) -> bool - - - Convert to 32-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - -Help on function create_align in module ida_bytes: - -create_align(*args) - create_align(ea, length, alignment) -> bool - - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) - -Help on function create_byte in module ida_bytes: - -create_byte(*args) - create_byte(ea, length, force=False) -> bool - - - Convert to byte. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_custdata in module ida_bytes: - -create_custdata(*args) - create_custdata(ea, length, dtid, fid, force=False) -> bool - - - Convert to custom data type. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) - -Help on function create_data in module ida_bytes: - -create_data(*args) - create_data(ea, dataflag, size, tid) -> bool - - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success - -Help on function create_double in module ida_bytes: - -create_double(*args) - create_double(ea, length, force=False) -> bool - - - Convert to double. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_dword in module ida_bytes: - -create_dword(*args) - create_dword(ea, length, force=False) -> bool - - - Convert to dword. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_float in module ida_bytes: - -create_float(*args) - create_float(ea, length, force=False) -> bool - - - Convert to float. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_oword in module ida_bytes: - -create_oword(*args) - create_oword(ea, length, force=False) -> bool - - - Convert to octaword/xmm word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_packed_real in module ida_bytes: - -create_packed_real(*args) - create_packed_real(ea, length, force=False) -> bool - - - Convert to packed decimal real. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_qword in module ida_bytes: - -create_qword(*args) - create_qword(ea, length, force=False) -> bool - - - Convert to quadword. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_strlit in module ida_bytes: - -create_strlit(*args) - create_strlit(start, len, strtype) -> bool - - - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) - @return: success - -Help on function create_struct in module ida_bytes: - -create_struct(*args) - create_struct(ea, length, tid, force=False) -> bool - - - Convert to struct. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) - -Help on function create_tbyte in module ida_bytes: - -create_tbyte(*args) - create_tbyte(ea, length, force=False) -> bool - - - Convert to tbyte. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_word in module ida_bytes: - -create_word(*args) - create_word(ea, length, force=False) -> bool - - - Convert to word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_yword in module ida_bytes: - -create_yword(*args) - create_yword(ea, length, force=False) -> bool - - - Convert to ymm word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function create_zword in module ida_bytes: - -create_zword(*args) - create_zword(ea, length, force=False) -> bool - - - Convert to zmm word. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) - -Help on function cust_flag in module ida_bytes: - -cust_flag(*args) - cust_flag() -> flags_t - - - Get a flags_t representing custom type data. - -Help on function custfmt_flag in module ida_bytes: - -custfmt_flag(*args) - custfmt_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on class data_format_t in module ida_bytes: - -class data_format_t(__builtin__.object) - | Proxy of C++ data_format_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | - | __real__init__ = __init__(self, *args) - | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t - | - | __repr__ = _swig_repr(self) - | - | _data_format_t__get_id = __get_id(self, *args) - | __get_id(self) -> int - | - | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hotkey - | data_format_t_hotkey_get(self) -> char const * - | - | id - | __get_id(self) -> int - | - | menu_name - | data_format_t_menu_name_get(self) -> char const * - | - | name - | data_format_t_name_get(self) -> char const * - | - | props - | data_format_t_props_get(self) -> int - | - | text_width - | data_format_t_text_width_get(self) -> int32 - | - | thisown - | The membership flag - | - | value_size - | data_format_t_value_size_get(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_data_format_t> - | delete_data_format_t(self) - -Help on class data_type_t in module ida_bytes: - -class data_type_t(__builtin__.object) - | Proxy of C++ data_type_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | - | __real__init__ = __init__(self, *args) - | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t - | - | __repr__ = _swig_repr(self) - | - | _data_type_t__get_id = __get_id(self, *args) - | __get_id(self) -> int - | - | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * - | - | hotkey - | data_type_t_hotkey_get(self) -> char const * - | - | id - | __get_id(self) -> int - | - | menu_name - | data_type_t_menu_name_get(self) -> char const * - | - | name - | data_type_t_name_get(self) -> char const * - | - | props - | data_type_t_props_get(self) -> int - | - | thisown - | The membership flag - | - | value_size - | data_type_t_value_size_get(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_data_type_t> - | delete_data_type_t(self) - -Help on function dec_flag in module ida_bytes: - -dec_flag(*args) - dec_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on function del_hidden_range in module ida_bytes: - -del_hidden_range(*args) - del_hidden_range(ea) -> bool - - - Delete hidden range. - - @param ea: any address in the hidden range (C++: ea_t) - @return: success - -Help on function del_items in module ida_bytes: - -del_items(*args) - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false - -Help on function del_mapping in module ida_bytes: - -del_mapping(*args) - del_mapping(ea) - - - Delete memory mapping range. - - @param ea: any address in the mapped range (C++: ea_t) - -Help on function del_value in module ida_bytes: - -del_value(*args) - del_value(ea) - - - Delete byte value from flags. The corresponding byte becomes - uninitialized. - - @param ea (C++: ea_t) - -Help on function detach_custom_data_format in module ida_bytes: - -detach_custom_data_format(*args) - detach_custom_data_format(dtid, dfid) -> bool - - - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) - -Help on function disable_flags in module ida_bytes: - -disable_flags(*args) - disable_flags(start_ea, end_ea) -> error_t - - - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @return: 0 if ok, otherwise return error code - -Help on function double_flag in module ida_bytes: - -double_flag(*args) - double_flag() -> flags_t - - - Get a flags_t representing a double. - -Help on function dword_flag in module ida_bytes: - -dword_flag(*args) - dword_flag() -> flags_t - - - Get a flags_t representing a double word. - -Help on function enable_flags in module ida_bytes: - -enable_flags(*args) - enable_flags(start_ea, end_ea, stt) -> error_t - - - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: 0 if ok, otherwise an error code - -Help on function enum_flag in module ida_bytes: - -enum_flag(*args) - enum_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function equal_bytes in module ida_bytes: - -equal_bytes(*args) - equal_bytes(ea, image, mask, len, sense_case) -> bool - - - Compare 'len' bytes of the program starting from 'ea' with 'image'. - - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == NULL, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) - -Help on function f_has_cmt in module ida_bytes: - -f_has_cmt(*args) - f_has_cmt(f, arg2) -> bool - -Help on function f_has_dummy_name in module ida_bytes: - -f_has_dummy_name(*args) - f_has_dummy_name(f, arg2) -> bool - - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param f (C++: flags_t) - -Help on function f_has_extra_cmts in module ida_bytes: - -f_has_extra_cmts(*args) - f_has_extra_cmts(f, arg2) -> bool - -Help on function f_has_name in module ida_bytes: - -f_has_name(*args) - f_has_name(f, arg2) -> bool - - - Does the current byte have non-trivial (non-dummy) name? - - - @param f (C++: flags_t) - -Help on function f_has_user_name in module ida_bytes: - -f_has_user_name(*args) - f_has_user_name(F, arg2) -> bool - - - Does the current byte have user-specified name? - - - @param F (C++: flags_t) - -Help on function f_has_xref in module ida_bytes: - -f_has_xref(*args) - f_has_xref(f, arg2) -> bool - - - Does the current byte have cross-references to it? - - - @param f (C++: flags_t) - -Help on function f_is_align in module ida_bytes: - -f_is_align(*args) - f_is_align(F, arg2) -> bool - - - See 'is_align()' - - - @param F (C++: flags_t) - -Help on function f_is_byte in module ida_bytes: - -f_is_byte(*args) - f_is_byte(F, arg2) -> bool - - - See 'is_byte()' - - - @param F (C++: flags_t) - -Help on function f_is_code in module ida_bytes: - -f_is_code(*args) - f_is_code(F, arg2) -> bool - - - Does flag denote start of an instruction? - - - @param F (C++: flags_t) - -Help on function f_is_custom in module ida_bytes: - -f_is_custom(*args) - f_is_custom(F, arg2) -> bool - - - See 'is_custom()' - - - @param F (C++: flags_t) - -Help on function f_is_data in module ida_bytes: - -f_is_data(*args) - f_is_data(F, arg2) -> bool - - - Does flag denote start of data? - - - @param F (C++: flags_t) - -Help on function f_is_double in module ida_bytes: - -f_is_double(*args) - f_is_double(F, arg2) -> bool - - - See 'is_double()' - - - @param F (C++: flags_t) - -Help on function f_is_dword in module ida_bytes: - -f_is_dword(*args) - f_is_dword(F, arg2) -> bool - - - See 'is_dword()' - - - @param F (C++: flags_t) - -Help on function f_is_float in module ida_bytes: - -f_is_float(*args) - f_is_float(F, arg2) -> bool - - - See 'is_float()' - - - @param F (C++: flags_t) - -Help on function f_is_head in module ida_bytes: - -f_is_head(*args) - f_is_head(F, arg2) -> bool - - - Does flag denote start of instruction OR data? - - - @param F (C++: flags_t) - -Help on function f_is_not_tail in module ida_bytes: - -f_is_not_tail(*args) - f_is_not_tail(F, arg2) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function f_is_oword in module ida_bytes: - -f_is_oword(*args) - f_is_oword(F, arg2) -> bool - - - See 'is_oword()' - - - @param F (C++: flags_t) - -Help on function f_is_pack_real in module ida_bytes: - -f_is_pack_real(*args) - f_is_pack_real(F, arg2) -> bool - - - See 'is_pack_real()' - - - @param F (C++: flags_t) - -Help on function f_is_qword in module ida_bytes: - -f_is_qword(*args) - f_is_qword(F, arg2) -> bool - - - See 'is_qword()' - - - @param F (C++: flags_t) - -Help on function f_is_strlit in module ida_bytes: - -f_is_strlit(*args) - f_is_strlit(F, arg2) -> bool - - - See 'is_strlit()' - - - @param F (C++: flags_t) - -Help on function f_is_struct in module ida_bytes: - -f_is_struct(*args) - f_is_struct(F, arg2) -> bool - - - See 'is_struct()' - - - @param F (C++: flags_t) - -Help on function f_is_tail in module ida_bytes: - -f_is_tail(*args) - f_is_tail(F, arg2) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function f_is_tbyte in module ida_bytes: - -f_is_tbyte(*args) - f_is_tbyte(F, arg2) -> bool - - - See 'is_tbyte()' - - - @param F (C++: flags_t) - -Help on function f_is_word in module ida_bytes: - -f_is_word(*args) - f_is_word(F, arg2) -> bool - - - See 'is_word()' - - - @param F (C++: flags_t) - -Help on function f_is_yword in module ida_bytes: - -f_is_yword(*args) - f_is_yword(F, arg2) -> bool - - - See 'is_yword()' - - - @param F (C++: flags_t) - -Help on function find_byte in module ida_bytes: - -find_byte(*args) - find_byte(sEA, size, value, bin_search_flags) -> ea_t - - - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR - -Help on function find_byter in module ida_bytes: - -find_byter(*args) - find_byter(sEA, size, value, bin_search_flags) -> ea_t - - - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR - -Help on function find_custom_data_format in module ida_bytes: - -find_custom_data_format(*args) - find_custom_data_format(name) -> int - - - Get id of a custom data format. - - @param name: name of the custom data format (C++: const char *) - @return: id or -1 - -Help on function find_custom_data_type in module ida_bytes: - -find_custom_data_type(*args) - find_custom_data_type(name) -> int - - - Get id of a custom data type. - - @param name: name of the custom data type (C++: const char *) - @return: id or -1 - -Help on function float_flag in module ida_bytes: - -float_flag(*args) - float_flag() -> flags_t - - - Get a flags_t representing a float. - -Help on function flt_flag in module ida_bytes: - -flt_flag(*args) - flt_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function free_chunk in module ida_bytes: - -free_chunk(*args) - free_chunk(bottom, size, step) -> ea_t - - - Search for a hole in the addressing space of the program. - - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR - -Help on function get_16bit in module ida_bytes: - -get_16bit(*args) - get_16bit(ea) -> uint32 - - - Get 16bits of the program at 'ea'. - - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() - -Help on function get_32bit in module ida_bytes: - -get_32bit(*args) - get_32bit(ea) -> uint32 - - - Get not more than 32bits of the program at 'ea'. - - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); - -Help on function get_64bit in module ida_bytes: - -get_64bit(*args) - get_64bit(ea) -> uint64 - - - Get not more than 64bits of the program at 'ea'. - - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); - -Help on function get_8bit in module ida_bytes: - -get_8bit(*args) - get_8bit(ea, v, nbit) -> PyObject * - -Help on function get_byte in module ida_bytes: - -get_byte(*args) - get_byte(ea) -> uchar - - - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_bytes in module ida_bytes: - -get_bytes(*args) - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * - - - Get the specified number of bytes of the program. - @param ea: program address - @param size: number of bytes to return - @return: the bytes (as a str), or None in case of failure - -Help on function get_bytes_and_mask in module ida_bytes: - -get_bytes_and_mask(*args) - get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * - - - Get the specified number of bytes of the program, and a bitmask - specifying what bytes are defined and what bytes are not. - @param ea: program address - @param size: number of bytes to return - @return: a tuple (bytes, mask), or None in case of failure. - Both 'bytes' and 'mask' are 'str' instances. - -Help on function get_cmt in module ida_bytes: - -get_cmt(*args) - get_cmt(ea, rptble) -> str - - - Get an indented comment. - - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 - -Help on function get_custom_data_format in module ida_bytes: - -get_custom_data_format(*args) - get_custom_data_format(dfid) -> data_format_t - - - Get definition of a registered custom data format. - - @param dfid: data format id (C++: int) - @return: data format definition or NULL - -Help on function get_custom_data_formats in module ida_bytes: - -get_custom_data_formats(*args) - get_custom_data_formats(out, dtid) -> int - - - Get list of attached custom data formats for the specified data type. - - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param dtid: data type id (C++: int) - @return: number of returned custom data formats. if error, returns -1 - -Help on function get_custom_data_type in module ida_bytes: - -get_custom_data_type(*args) - get_custom_data_type(dtid) -> data_type_t - - - Get definition of a registered custom data type. - - @param dtid: data type id (C++: int) - @return: data type definition or NULL - -Help on function get_custom_data_types in module ida_bytes: - -get_custom_data_types(*args) - get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - - - Get list of registered custom data type ids. - - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) - @return: number of custom data types with the specified size limits - -Help on function get_data_elsize in module ida_bytes: - -get_data_elsize(*args) - get_data_elsize(ea, F, ti=None) -> asize_t - - - Get size of data type specified in flags 'F'. - - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... - -Help on function get_data_value in module ida_bytes: - -get_data_value(*args) - get_data_value(v, ea, size) -> bool - - - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - - @param v: pointer to the result. may be NULL (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) - @return: success - -Help on function get_db_byte in module ida_bytes: - -get_db_byte(*args) - get_db_byte(ea) -> uchar - - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) - -Help on function get_default_radix in module ida_bytes: - -get_default_radix(*args) - get_default_radix() -> int - - - Get default base of number for the current processor. - - @return: 2, 8, 10, 16 - -Help on function get_dword in module ida_bytes: - -get_dword(*args) - get_dword(ea) -> uint32 - - - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_enum_id in module ida_bytes: - -get_enum_id(*args) - get_enum_id(ea, n) -> enum_t - - - Get enum id of 'enum' operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE - -Help on function get_first_hidden_range in module ida_bytes: - -get_first_hidden_range(*args) - get_first_hidden_range() -> hidden_range_t - - - Get pointer to the first hidden range. - - @return: ptr to hidden range or NULL - -Help on function get_flags in module ida_bytes: - -get_flags(*args) - get_flags(ea) -> flags_t - - - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - - @param ea (C++: ea_t) - -Help on function get_flags_by_size in module ida_bytes: - -get_flags_by_size(*args) - get_flags_by_size(size) -> flags_t - - - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - - @param size (C++: size_t) - -Help on function get_flags_ex in module ida_bytes: - -get_flags_ex(*args) - get_flags_ex(ea, how) -> flags_t - - - Get flags for the specified address, extended form. - - - @param ea (C++: ea_t) - @param how (C++: int) - -Help on function get_forced_operand in module ida_bytes: - -get_forced_operand(*args) - get_forced_operand(ea, n) -> str - - - Get forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 - -Help on function get_full_data_elsize in module ida_bytes: - -get_full_data_elsize(*args) - get_full_data_elsize(ea, F, ti=None) -> asize_t - - - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) - -Help on function get_full_flags in module ida_bytes: - -get_full_flags(*args) - get_full_flags(ea) -> flags_t - - - Get flags value for address 'ea'. - - @param ea (C++: ea_t) - @return: 0 if address is not present in the program - -Help on function get_hidden_range in module ida_bytes: - -get_hidden_range(*args) - get_hidden_range(ea) -> hidden_range_t - - - Get pointer to hidden range structure, in: linear address. - - @param ea: any address in the hidden range (C++: ea_t) - -Help on function get_hidden_range_num in module ida_bytes: - -get_hidden_range_num(*args) - get_hidden_range_num(ea) -> int - - - Get number of a hidden range. - - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) - -Help on function get_hidden_range_qty in module ida_bytes: - -get_hidden_range_qty(*args) - get_hidden_range_qty() -> int - - - Get number of hidden ranges. - -Help on function get_item_end in module ida_bytes: - -get_item_end(*args) - get_item_end(ea) -> ea_t - - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) - -Help on function get_item_flag in module ida_bytes: - -get_item_flag(*args) - get_item_flag(_from, n, ea, appzero) -> flags_t - - - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) - @return: flags or 0 (if failed) - -Help on function get_item_head in module ida_bytes: - -get_item_head(*args) - get_item_head(ea) -> ea_t - - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) - -Help on function get_item_size in module ida_bytes: - -get_item_size(*args) - get_item_size(ea) -> asize_t - - - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - - @param ea (C++: ea_t) - -Help on function get_last_hidden_range in module ida_bytes: - -get_last_hidden_range(*args) - get_last_hidden_range() -> hidden_range_t - - - Get pointer to the last hidden range. - - @return: ptr to hidden range or NULL - -Help on function get_manual_insn in module ida_bytes: - -get_manual_insn(*args) - get_manual_insn(ea) -> str - - - Retrieve the user-specified string for the manual instruction. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 - -Help on function get_mapping in module ida_bytes: - -get_mapping(*args) - get_mapping(n) -> bool - - - Get memory mapping range by its number. - - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size - -Help on function get_mappings_qty in module ida_bytes: - -get_mappings_qty(*args) - get_mappings_qty() -> size_t - - - Get number of mappings. - -Help on function get_max_strlit_length in module ida_bytes: - -get_max_strlit_length(*args) - get_max_strlit_length(ea, strtype, options=0) -> size_t - - - Determine maximum length of string literal. - - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) - @return: length of the string in octets (octet==8bit) - -Help on function get_next_hidden_range in module ida_bytes: - -get_next_hidden_range(*args) - get_next_hidden_range(ea) -> hidden_range_t - - - Get pointer to next hidden range. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if next hidden range doesn't - exist - -Help on function get_octet in module ida_bytes: - -get_octet(*args) - get_octet(ea, v, nbit) -> PyObject * - - - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - - uint64 v; - int nbit = 0; - for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... - } - - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) - -Help on function get_opinfo in module ida_bytes: - -get_opinfo(*args) - get_opinfo(buf, ea, n, flags) -> opinfo_t - - - Get additional information about an operand representation. - - @param buf: buffer to receive the result. may not be NULL (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: NULL if no additional representation information - -Help on function get_optype_flags0 in module ida_bytes: - -get_optype_flags0(*args) - get_optype_flags0(F) -> flags_t - - - Get flags for first operand. - - - @param F (C++: flags_t) - -Help on function get_optype_flags1 in module ida_bytes: - -get_optype_flags1(*args) - get_optype_flags1(F) -> flags_t - - - Get flags for second operand. - - - @param F (C++: flags_t) - -Help on function get_original_byte in module ida_bytes: - -get_original_byte(*args) - get_original_byte(ea) -> uint64 - - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) - -Help on function get_original_dword in module ida_bytes: - -get_original_dword(*args) - get_original_dword(ea) -> uint64 - - - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_original_qword in module ida_bytes: - -get_original_qword(*args) - get_original_qword(ea) -> uint64 - - - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_original_word in module ida_bytes: - -get_original_word(*args) - get_original_word(ea) -> uint64 - - - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_predef_insn_cmt in module ida_bytes: - -get_predef_insn_cmt(*args) - get_predef_insn_cmt(ins) -> str - - - Get predefined comment. - - @param ins: current instruction information (C++: const insn_t &) - @return: size of comment or -1 - -Help on function get_prev_hidden_range in module ida_bytes: - -get_prev_hidden_range(*args) - get_prev_hidden_range(ea) -> hidden_range_t - - - Get pointer to previous hidden range. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if previous hidden range doesn't - exist - -Help on function get_qword in module ida_bytes: - -get_qword(*args) - get_qword(ea) -> uint64 - - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_radix in module ida_bytes: - -get_radix(*args) - get_radix(F, n) -> int - - - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 - -Help on function get_strlit_contents in module ida_bytes: - -get_strlit_contents(*args) - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - - - Get bytes contents at location, possibly converted. - It works even if the string has not been created in the database yet. - - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. - - @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) - @param type: type of the string. Represents both the character encoding, - <u>and</u> the 'type' of string at the given location. - @param flags: combination of STRCONV_..., to perform output conversion. - @return: a bytes-filled str object. - -Help on function get_stroff_path in module ida_bytes: - -get_stroff_path(*args) - get_stroff_path(path, delta, ea, n) -> int - - - Get struct path of operand. - - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: length of strpath - -Help on function get_wide_byte in module ida_bytes: - -get_wide_byte(*args) - get_wide_byte(ea) -> uint64 - - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) - -Help on function get_wide_dword in module ida_bytes: - -get_wide_dword(*args) - get_wide_dword(ea) -> uint64 - - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) - -Help on function get_wide_word in module ida_bytes: - -get_wide_word(*args) - get_wide_word(ea) -> uint64 - - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_word in module ida_bytes: - -get_word(*args) - get_word(ea) -> ushort - - - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_zero_ranges in module ida_bytes: - -get_zero_ranges(*args) - get_zero_ranges(zranges, range) -> bool - - - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - - @param zranges: pointer to the return value. cannot be NULL (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be NULL - means - all ranges (C++: const range_t *) - @return: true if the result is a non-empty set - -Help on function getn_hidden_range in module ida_bytes: - -getn_hidden_range(*args) - getn_hidden_range(n) -> hidden_range_t - - - Get pointer to hidden range structure, in: number of hidden range. - - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) - -Help on function has_any_name in module ida_bytes: - -has_any_name(*args) - has_any_name(F) -> bool - - - Does the current byte have any name? - - - @param F (C++: flags_t) - -Help on function has_auto_name in module ida_bytes: - -has_auto_name(*args) - has_auto_name(F) -> bool - - - Does the current byte have auto-generated (no special prefix) name? - - - @param F (C++: flags_t) - -Help on function has_cmt in module ida_bytes: - -has_cmt(*args) - has_cmt(F) -> bool - - - Does the current byte have an indented comment? - - - @param F (C++: flags_t) - -Help on function has_dummy_name in module ida_bytes: - -has_dummy_name(*args) - has_dummy_name(F) -> bool - - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param F (C++: flags_t) - -Help on function has_extra_cmts in module ida_bytes: - -has_extra_cmts(*args) - has_extra_cmts(F) -> bool - - - Does the current byte have additional anterior or posterior lines? - - - @param F (C++: flags_t) - -Help on function has_immd in module ida_bytes: - -has_immd(*args) - has_immd(F) -> bool - - - Has immediate value? - - - @param F (C++: flags_t) - -Help on function has_name in module ida_bytes: - -has_name(*args) - has_name(F) -> bool - - - Does the current byte have non-trivial (non-dummy) name? - - - @param F (C++: flags_t) - -Help on function has_user_name in module ida_bytes: - -has_user_name(*args) - has_user_name(F) -> bool - - - Does the current byte have user-specified name? - - - @param F (C++: flags_t) - -Help on function has_value in module ida_bytes: - -has_value(*args) - has_value(F) -> bool - - - Do flags contain byte value? - - - @param F (C++: flags_t) - -Help on function has_xref in module ida_bytes: - -has_xref(*args) - has_xref(F) -> bool - - - Does the current byte have cross-references to it? - - - @param F (C++: flags_t) - -Help on function hex_flag in module ida_bytes: - -hex_flag(*args) - hex_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on class hidden_range_t in module ida_bytes: - -class hidden_range_t(ida_range.range_t) - | Proxy of C++ hidden_range_t class. - | - | Method resolution order: - | hidden_range_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> hidden_range_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | color - | hidden_range_t_color_get(self) -> bgcolor_t - | - | description - | hidden_range_t_description_get(self) -> char * - | - | footer - | hidden_range_t_footer_get(self) -> char * - | - | header - | hidden_range_t_header_get(self) -> char * - | - | thisown - | The membership flag - | - | visible - | hidden_range_t_visible_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_hidden_range_t> - | delete_hidden_range_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function is_align in module ida_bytes: - -is_align(*args) - is_align(F) -> bool - - - 'FF_ALIGN' - - - @param F (C++: flags_t) - -Help on function is_attached_custom_data_format in module ida_bytes: - -is_attached_custom_data_format(*args) - is_attached_custom_data_format(dtid, dfid) -> bool - -Help on function is_bnot in module ida_bytes: - -is_bnot(*args) - is_bnot(ea, F, n) -> bool - - - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_byte in module ida_bytes: - -is_byte(*args) - is_byte(F) -> bool - - - 'FF_BYTE' - - - @param F (C++: flags_t) - -Help on function is_char in module ida_bytes: - -is_char(*args) - is_char(F, n) -> bool - - - is character constant? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_char0 in module ida_bytes: - -is_char0(*args) - is_char0(F) -> bool - - - Is the first operand character constant? (example: push 'a') - - - @param F (C++: flags_t) - -Help on function is_char1 in module ida_bytes: - -is_char1(*args) - is_char1(F) -> bool - - - Is the second operand character constant? (example: mov al, 'a') - - - @param F (C++: flags_t) - -Help on function is_code in module ida_bytes: - -is_code(*args) - is_code(F) -> bool - - - Does flag denote start of an instruction? - - - @param F (C++: flags_t) - -Help on function is_custfmt in module ida_bytes: - -is_custfmt(*args) - is_custfmt(F, n) -> bool - - - is custom data format? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_custfmt0 in module ida_bytes: - -is_custfmt0(*args) - is_custfmt0(F) -> bool - - - Does the first operand use a custom data representation? - - - @param F (C++: flags_t) - -Help on function is_custfmt1 in module ida_bytes: - -is_custfmt1(*args) - is_custfmt1(F) -> bool - - - Does the second operand use a custom data representation? - - - @param F (C++: flags_t) - -Help on function is_custom in module ida_bytes: - -is_custom(*args) - is_custom(F) -> bool - - - 'FF_CUSTOM' - - - @param F (C++: flags_t) - -Help on function is_data in module ida_bytes: - -is_data(*args) - is_data(F) -> bool - - - Does flag denote start of data? - - - @param F (C++: flags_t) - -Help on function is_defarg in module ida_bytes: - -is_defarg(*args) - is_defarg(F, n) -> bool - - - is defined? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_defarg0 in module ida_bytes: - -is_defarg0(*args) - is_defarg0(F) -> bool - - - Is the first operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) - -Help on function is_defarg1 in module ida_bytes: - -is_defarg1(*args) - is_defarg1(F) -> bool - - - Is the second operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) - -Help on function is_double in module ida_bytes: - -is_double(*args) - is_double(F) -> bool - - - 'FF_DOUBLE' - - - @param F (C++: flags_t) - -Help on function is_dword in module ida_bytes: - -is_dword(*args) - is_dword(F) -> bool - - - 'FF_DWORD' - - - @param F (C++: flags_t) - -Help on function is_enum in module ida_bytes: - -is_enum(*args) - is_enum(F, n) -> bool - - - is enum? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_enum0 in module ida_bytes: - -is_enum0(*args) - is_enum0(F) -> bool - - - Is the first operand a symbolic constant (enum member)? - - - @param F (C++: flags_t) - -Help on function is_enum1 in module ida_bytes: - -is_enum1(*args) - is_enum1(F) -> bool - - - Is the second operand a symbolic constant (enum member)? - - - @param F (C++: flags_t) - -Help on function is_float in module ida_bytes: - -is_float(*args) - is_float(F) -> bool - - - 'FF_FLOAT' - - - @param F (C++: flags_t) - -Help on function is_float0 in module ida_bytes: - -is_float0(*args) - is_float0(F) -> bool - - - Is the first operand a floating point number? - - - @param F (C++: flags_t) - -Help on function is_float1 in module ida_bytes: - -is_float1(*args) - is_float1(F) -> bool - - - Is the second operand a floating point number? - - - @param F (C++: flags_t) - -Help on function is_flow in module ida_bytes: - -is_flow(*args) - is_flow(F) -> bool - - - Does the previous instruction exist and pass execution flow to the - current byte? - - - @param F (C++: flags_t) - -Help on function is_fltnum in module ida_bytes: - -is_fltnum(*args) - is_fltnum(F, n) -> bool - - - is floating point number? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_forced_operand in module ida_bytes: - -is_forced_operand(*args) - is_forced_operand(ea, n) -> bool - - - Is operand manually defined?. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - -Help on function is_func in module ida_bytes: - -is_func(*args) - is_func(F) -> bool - - - Is function start? - - - @param F (C++: flags_t) - -Help on function is_head in module ida_bytes: - -is_head(*args) - is_head(F) -> bool - - - Does flag denote start of instruction OR data? - - - @param F (C++: flags_t) - -Help on function is_invsign in module ida_bytes: - -is_invsign(*args) - is_invsign(ea, F, n) -> bool - - - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_loaded in module ida_bytes: - -is_loaded(*args) - is_loaded(ea) -> bool - - - Does the specified address have a byte value (is initialized?) - - - @param ea (C++: ea_t) - -Help on function is_lzero in module ida_bytes: - -is_lzero(*args) - is_lzero(ea, n) -> bool - - - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function is_manual in module ida_bytes: - -is_manual(*args) - is_manual(F, n) -> bool - - - is forced operand? (use 'is_forced_operand()' ) - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_manual_insn in module ida_bytes: - -is_manual_insn(*args) - is_manual_insn(ea) -> bool - - - Is the instruction overridden? - - @param ea: linear address of the instruction or data item (C++: ea_t) - -Help on function is_mapped in module ida_bytes: - -is_mapped(*args) - is_mapped(ea) -> bool - - - Is the specified address 'ea' present in the program? - - - @param ea (C++: ea_t) - -Help on function is_not_tail in module ida_bytes: - -is_not_tail(*args) - is_not_tail(F) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function is_numop in module ida_bytes: - -is_numop(*args) - is_numop(F, n) -> bool - - - is number (bin, oct, dec, hex)? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_numop0 in module ida_bytes: - -is_numop0(*args) - is_numop0(F) -> bool - - - Is the first operand a number (i.e. binary, octal, decimal or hex?) - - - @param F (C++: flags_t) - -Help on function is_numop1 in module ida_bytes: - -is_numop1(*args) - is_numop1(F) -> bool - - - Is the second operand a number (i.e. binary, octal, decimal or hex?) - - - @param F (C++: flags_t) - -Help on function is_off in module ida_bytes: - -is_off(*args) - is_off(F, n) -> bool - - - is offset? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_off0 in module ida_bytes: - -is_off0(*args) - is_off0(F) -> bool - - - Is the first operand offset? (example: push offset xxx) - - - @param F (C++: flags_t) - -Help on function is_off1 in module ida_bytes: - -is_off1(*args) - is_off1(F) -> bool - - - Is the second operand offset? (example: mov ax, offset xxx) - - - @param F (C++: flags_t) - -Help on function is_oword in module ida_bytes: - -is_oword(*args) - is_oword(F) -> bool - - - 'FF_OWORD' - - - @param F (C++: flags_t) - -Help on function is_pack_real in module ida_bytes: - -is_pack_real(*args) - is_pack_real(F) -> bool - - - 'FF_PACKREAL' - - - @param F (C++: flags_t) - -Help on function is_qword in module ida_bytes: - -is_qword(*args) - is_qword(F) -> bool - - - 'FF_QWORD' - - - @param F (C++: flags_t) - -Help on function is_same_data_type in module ida_bytes: - -is_same_data_type(*args) - is_same_data_type(F1, F2) -> bool - - - Do the given flags specify the same data type? - - - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) - -Help on function is_seg in module ida_bytes: - -is_seg(*args) - is_seg(F, n) -> bool - - - is segment? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_seg0 in module ida_bytes: - -is_seg0(*args) - is_seg0(F) -> bool - - - Is the first operand segment selector? (example: push seg seg001) - - - @param F (C++: flags_t) - -Help on function is_seg1 in module ida_bytes: - -is_seg1(*args) - is_seg1(F) -> bool - - - Is the second operand segment selector? (example: mov dx, seg dseg) - - - @param F (C++: flags_t) - -Help on function is_stkvar in module ida_bytes: - -is_stkvar(*args) - is_stkvar(F, n) -> bool - - - is stack variable? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_stkvar0 in module ida_bytes: - -is_stkvar0(*args) - is_stkvar0(F) -> bool - - - Is the first operand a stack variable? - - - @param F (C++: flags_t) - -Help on function is_stkvar1 in module ida_bytes: - -is_stkvar1(*args) - is_stkvar1(F) -> bool - - - Is the second operand a stack variable? - - - @param F (C++: flags_t) - -Help on function is_strlit in module ida_bytes: - -is_strlit(*args) - is_strlit(F) -> bool - - - 'FF_STRLIT' - - - @param F (C++: flags_t) - -Help on function is_stroff in module ida_bytes: - -is_stroff(*args) - is_stroff(F, n) -> bool - - - is struct offset? - - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_stroff0 in module ida_bytes: - -is_stroff0(*args) - is_stroff0(F) -> bool - - - Is the first operand an offset within a struct? - - - @param F (C++: flags_t) - -Help on function is_stroff1 in module ida_bytes: - -is_stroff1(*args) - is_stroff1(F) -> bool - - - Is the second operand an offset within a struct? - - - @param F (C++: flags_t) - -Help on function is_struct in module ida_bytes: - -is_struct(*args) - is_struct(F) -> bool - - - 'FF_STRUCT' - - - @param F (C++: flags_t) - -Help on function is_suspop in module ida_bytes: - -is_suspop(*args) - is_suspop(ea, F, n) -> bool - - - is suspicious operand? - - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) - -Help on function is_tail in module ida_bytes: - -is_tail(*args) - is_tail(F) -> bool - - - Does flag denote tail byte? - - - @param F (C++: flags_t) - -Help on function is_tbyte in module ida_bytes: - -is_tbyte(*args) - is_tbyte(F) -> bool - - - 'FF_TBYTE' - - - @param F (C++: flags_t) - -Help on function is_unknown in module ida_bytes: - -is_unknown(*args) - is_unknown(F) -> bool - - - Does flag denote unexplored byte? - - - @param F (C++: flags_t) - -Help on function is_varsize_item in module ida_bytes: - -is_varsize_item(*args) - is_varsize_item(ea, F, ti=None, itemsize=None) -> int - - - Is the item at 'ea' variable size?. - - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @param itemsize: if not NULL and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) - -Help on function is_word in module ida_bytes: - -is_word(*args) - is_word(F) -> bool - - - 'FF_WORD' - - - @param F (C++: flags_t) - -Help on function is_yword in module ida_bytes: - -is_yword(*args) - is_yword(F) -> bool - - - 'FF_YWORD' - - - @param F (C++: flags_t) - -Help on function is_zword in module ida_bytes: - -is_zword(*args) - is_zword(F) -> bool - - - 'FF_ZWORD' - - - @param F (C++: flags_t) - -Help on function leading_zero_important in module ida_bytes: - -leading_zero_important(*args) - leading_zero_important(ea, n) -> bool - - - Check if leading zeroes are important. - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function nbits in module ida_bytes: - -nbits(*args) - nbits(ea) -> int - - - Get number of bits in a byte at the given address. - - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, - otherwise the result depends on the segment type - -Help on function next_addr in module ida_bytes: - -next_addr(*args) - next_addr(ea) -> ea_t - - - Get next address in the program (i.e. next address which has flags). - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function next_chunk in module ida_bytes: - -next_chunk(*args) - next_chunk(ea) -> ea_t - - - Get the first address of next contiguous chunk in the program. - - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. - -Help on function next_head in module ida_bytes: - -next_head(*args) - next_head(ea, maxea) -> ea_t - - - Get start of next defined item. - - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. - -Help on function next_inited in module ida_bytes: - -next_inited(*args) - next_inited(ea, maxea) -> ea_t - - - Find the next initialized address. - - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) - -Help on function next_not_tail in module ida_bytes: - -next_not_tail(*args) - next_not_tail(ea) -> ea_t - - - Get address of next non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function next_that in module ida_bytes: - -next_that(*args) - next_that(ea, maxea, callable) -> ea_t - - - Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. - - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. - @return: the found address or BADADDR. - -Help on function next_unknown in module ida_bytes: - -next_unknown(*args) - next_unknown(ea, maxea) -> ea_t - - - Similar to 'next_that()' , but will find the next address that is - unexplored. - - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) - -Help on function num_flag in module ida_bytes: - -num_flag(*args) - num_flag() -> flags_t - - - Get number of default base (bin, oct, dec, hex) - -Help on function oct_flag in module ida_bytes: - -oct_flag(*args) - oct_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' - -Help on function off_flag in module ida_bytes: - -off_flag(*args) - off_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function op_adds_xrefs in module ida_bytes: - -op_adds_xrefs(*args) - op_adds_xrefs(F, n) -> bool - - - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - - @param F (C++: flags_t) - @param n (C++: int) - -Help on function op_bin in module ida_bytes: - -op_bin(*args) - op_bin(ea, n) -> bool - - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_chr in module ida_bytes: - -op_chr(*args) - op_chr(ea, n) -> bool - - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_custfmt in module ida_bytes: - -op_custfmt(*args) - op_custfmt(ea, n, fid) -> bool - - - Set custom data format for operand (fid-custom data format id) - - - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) - -Help on function op_dec in module ida_bytes: - -op_dec(*args) - op_dec(ea, n) -> bool - - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_enum in module ida_bytes: - -op_enum(*args) - op_enum(ea, n, id, serial) -> bool - - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success - -Help on function op_flt in module ida_bytes: - -op_flt(*args) - op_flt(ea, n) -> bool - - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_hex in module ida_bytes: - -op_hex(*args) - op_hex(ea, n) -> bool - - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_num in module ida_bytes: - -op_num(*args) - op_num(ea, n) -> bool - - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_oct in module ida_bytes: - -op_oct(*args) - op_oct(ea, n) -> bool - - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_seg in module ida_bytes: - -op_seg(*args) - op_seg(ea, n) -> bool - - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stkvar in module ida_bytes: - -op_stkvar(*args) - op_stkvar(ea, n) -> bool - - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stroff in module ida_bytes: - -op_stroff(*args) - op_stroff(insn, n, path, path_len, delta) -> bool - - - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) - @return: success - - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> - -Help on function oword_flag in module ida_bytes: - -oword_flag(*args) - oword_flag() -> flags_t - - - Get a flags_t representing a octaword. - -Help on function packreal_flag in module ida_bytes: - -packreal_flag(*args) - packreal_flag() -> flags_t - - - Get a flags_t representing a packed decimal real. - -Help on function patch_byte in module ida_bytes: - -patch_byte(*args) - patch_byte(ea, x) -> bool - - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_bytes in module ida_bytes: - -patch_bytes(*args) - patch_bytes(ea, buf) - - - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) - -Help on function patch_dword in module ida_bytes: - -patch_dword(*args) - patch_dword(ea, x) -> bool - - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_qword in module ida_bytes: - -patch_qword(*args) - patch_qword(ea, x) -> bool - - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_word in module ida_bytes: - -patch_word(*args) - patch_word(ea, x) -> bool - - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function prev_addr in module ida_bytes: - -prev_addr(*args) - prev_addr(ea) -> ea_t - - - Get previous address in the program. - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function prev_chunk in module ida_bytes: - -prev_chunk(*args) - prev_chunk(ea) -> ea_t - - - Get the last address of previous contiguous chunk in the program. - - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. - -Help on function prev_head in module ida_bytes: - -prev_head(*args) - prev_head(ea, minea) -> ea_t - - - Get start of previous defined item. - - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. - -Help on function prev_inited in module ida_bytes: - -prev_inited(*args) - prev_inited(ea, minea) -> ea_t - - - Find the previous initialized address. - - - @param ea (C++: ea_t) - @param minea (C++: ea_t) - -Help on function prev_not_tail in module ida_bytes: - -prev_not_tail(*args) - prev_not_tail(ea) -> ea_t - - - Get address of previous non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function prev_that in module ida_bytes: - -prev_that(*args) - prev_that(ea, minea, callable) -> ea_t - - - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . - - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - @return: the found address or BADADDR . - -Help on function prev_unknown in module ida_bytes: - -prev_unknown(*args) - prev_unknown(ea, minea) -> ea_t - - - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - - - @param ea (C++: ea_t) - @param minea (C++: ea_t) - -Help on function print_strlit_type in module ida_bytes: - -print_strlit_type(*args) - print_strlit_type(strtype, flags=0) -> PyObject * - - - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. - - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) - @return: length of generated text - -Help on function put_byte in module ida_bytes: - -put_byte(*args) - put_byte(ea, x) -> bool - - - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) - @return: true if the database has been modified - -Help on function put_bytes in module ida_bytes: - -put_bytes(*args) - put_bytes(ea, buf) - - - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) - -Help on function put_dword in module ida_bytes: - -put_dword(*args) - put_dword(ea, x) - - - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) - -Help on function put_qword in module ida_bytes: - -put_qword(*args) - put_qword(ea, x) - - - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) - -Help on function put_word in module ida_bytes: - -put_word(*args) - put_word(ea, x) - - - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function qword_flag in module ida_bytes: - -qword_flag(*args) - qword_flag() -> flags_t - - - Get a flags_t representing a quad word. - -Help on function register_custom_data_format in module ida_bytes: - -register_custom_data_format(*args) - register_custom_data_format(py_df) -> int - - - Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register - > 0 data format id - -Help on function register_custom_data_type in module ida_bytes: - -register_custom_data_type(*args) - register_custom_data_type(py_dt) -> int - - - Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register - > 0 data type id - -Help on function register_data_types_and_formats in module ida_bytes: - -register_data_types_and_formats(formats) - Registers multiple data types and formats at once. - To register one type/format at a time use register_custom_data_type/register_custom_data_format - - It employs a special table of types and formats described below: - - The 'formats' is a list of tuples. If a tuple has one element then it is the format to be registered with dtid=0 - If the tuple has more than one element, then tuple[0] is the data type and tuple[1:] are the data formats. For example: - many_formats = [ - (pascal_data_type(), pascal_data_format()), - (simplevm_data_type(), simplevm_data_format()), - (makedword_data_format(),), - (simplevm_data_format(),) - ] - The first two tuples describe data types and their associated formats. - The last two tuples describe two data formats to be used with built-in data types. - The data format may be attached to several data types. The id of the - data format is stored in the first data_format_t object. For example: - assert many_formats[1][1] != -1 - assert many_formats[2][0] != -1 - assert many_formats[3][0] == -1 - -Help on function revert_byte in module ida_bytes: - -revert_byte(*args) - revert_byte(ea) -> bool - - - Revert patched byte - - @param ea (C++: ea_t) - -Help on function seg_flag in module ida_bytes: - -seg_flag(*args) - seg_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function set_cmt in module ida_bytes: - -set_cmt(*args) - set_cmt(ea, comm, rptble) -> bool - - - Set an indented comment. - - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success - -Help on function set_forced_operand in module ida_bytes: - -set_forced_operand(*args) - set_forced_operand(ea, n, op) -> bool - - - Set forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) - @return: success - -Help on function set_immd in module ida_bytes: - -set_immd(*args) - set_immd(ea) -> bool - - - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - - @param ea (C++: ea_t) - -Help on function set_lzero in module ida_bytes: - -set_lzero(*args) - set_lzero(ea, n) -> bool - - - Set toggle lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function set_manual_insn in module ida_bytes: - -set_manual_insn(*args) - set_manual_insn(ea, manual_insn) - - - Set manual instruction string. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) - -Help on function set_op_type in module ida_bytes: - -set_op_type(*args) - set_op_type(ea, type, n) -> bool - - - (internal function) change representation of operand(s). - - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - -Help on function set_opinfo in module ida_bytes: - -set_opinfo(*args) - set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool - - - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) - @return: success - -Help on function stkvar_flag in module ida_bytes: - -stkvar_flag(*args) - stkvar_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function strlit_flag in module ida_bytes: - -strlit_flag(*args) - strlit_flag() -> flags_t - - - Get a flags_t representing a string literal. - -Help on function stroff_flag in module ida_bytes: - -stroff_flag(*args) - stroff_flag() -> flags_t - - - see 'Bits: instruction operand types' - -Help on function stru_flag in module ida_bytes: - -stru_flag(*args) - stru_flag() -> flags_t - - - Get a flags_t representing a struct. - -Help on function tbyte_flag in module ida_bytes: - -tbyte_flag(*args) - tbyte_flag() -> flags_t - - - Get a flags_t representing a tbyte. - -Help on function toggle_bnot in module ida_bytes: - -toggle_bnot(*args) - toggle_bnot(ea, n) -> bool - - - Toggle binary negation of operand. also see 'is_bnot()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function toggle_lzero in module ida_bytes: - -toggle_lzero(*args) - toggle_lzero(ea, n) -> bool - -Help on function toggle_sign in module ida_bytes: - -toggle_sign(*args) - toggle_sign(ea, n) -> bool - - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function unregister_custom_data_format in module ida_bytes: - -unregister_custom_data_format(*args) - unregister_custom_data_format(dfid) -> bool - - - Unregisters a custom data format - @param dfid: data format id - @return: Boolean - -Help on function unregister_custom_data_type in module ida_bytes: - -unregister_custom_data_type(*args) - unregister_custom_data_type(dtid) -> bool - - - Unregisters a custom data type. - @param dtid: the data type id - @return: Boolean - -Help on function unregister_data_types_and_formats in module ida_bytes: - -unregister_data_types_and_formats(formats) - As opposed to register_data_types_and_formats(), this function - unregisters multiple data types and formats at once. - -Help on function update_hidden_range in module ida_bytes: - -update_hidden_range(*args) - update_hidden_range(ha) -> bool - - - Update hidden range information in the database. You cannot use this - function to change the range boundaries - - @param ha: range to update (C++: const hidden_range_t *) - @return: success - -Help on function use_mapping in module ida_bytes: - -use_mapping(*args) - use_mapping(ea) -> ea_t - - - Translate address according to current mappings. - - @param ea: address to translate (C++: ea_t) - @return: translated address - -Help on function visit_patched_bytes in module ida_bytes: - -visit_patched_bytes(*args) - visit_patched_bytes(ea1, ea2, py_callable) -> int - - - Enumerates patched bytes in the given range and invokes a callable - @param ea1: start address - @param ea2: end address - @param callable: a Python callable with the following prototype: - callable(ea, fpos, org_val, patch_val). - If the callable returns non-zero then that value will be - returned to the caller and the enumeration will be - interrupted. - @return: Zero if the enumeration was successful or the return - value of the callback if enumeration was interrupted. - -Help on function word_flag in module ida_bytes: - -word_flag(*args) - word_flag() -> flags_t - - - Get a flags_t representing a word. - -Help on function yword_flag in module ida_bytes: - -yword_flag(*args) - yword_flag() -> flags_t - - - Get a flags_t representing a ymm word. - -Help on function zword_flag in module ida_bytes: - -zword_flag(*args) - zword_flag() -> flags_t - - - Get a flags_t representing a zmm word. - -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -accumulated length - -if string length is more than 4K, return the -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -Just delete xrefs, ops e.t.c. - -do not undefine the function start. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -even if 'AF_TRFUNC' is set - -don't truncate the current function -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? -""" - -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" - -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" - -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. -""" - -ida_bytes.FF_STRLIT -""" -string literal -""" - -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" - -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -if this bit is not set, fail at first uninited byte - -try to read all bytes -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings window') -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === -Help on class DBG_Hooks in module ida_dbg: - -class DBG_Hooks(__builtin__.object) - | Proxy of C++ DBG_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> DBG_Hooks - | - | __repr__ = _swig_repr(self) - | - | dbg_bpt(self, *args) - | dbg_bpt(self, tid, bptea) -> int - | - | dbg_bpt_changed(self, *args) - | dbg_bpt_changed(self, bptev_code, bpt) - | - | dbg_exception(self, *args) - | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int - | - | dbg_finished_loading_bpts(self, *args) - | dbg_finished_loading_bpts(self) - | - | dbg_information(self, *args) - | dbg_information(self, pid, tid, ea, info) - | - | dbg_library_load(self, *args) - | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | - | dbg_library_unload(self, *args) - | dbg_library_unload(self, pid, tid, ea, info) - | - | dbg_process_attach(self, *args) - | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | - | dbg_process_detach(self, *args) - | dbg_process_detach(self, pid, tid, ea) - | - | dbg_process_exit(self, *args) - | dbg_process_exit(self, pid, tid, ea, exit_code) - | - | dbg_process_start(self, *args) - | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) - | - | dbg_request_error(self, *args) - | dbg_request_error(self, failed_command, failed_dbg_notification) - | - | dbg_run_to(self, *args) - | dbg_run_to(self, pid, tid, ea) - | - | dbg_started_loading_bpts(self, *args) - | dbg_started_loading_bpts(self) - | - | dbg_step_into(self, *args) - | dbg_step_into(self) - | - | dbg_step_over(self, *args) - | dbg_step_over(self) - | - | dbg_step_until_ret(self, *args) - | dbg_step_until_ret(self) - | - | dbg_suspend_process(self, *args) - | dbg_suspend_process(self) - | - | dbg_thread_exit(self, *args) - | dbg_thread_exit(self, pid, tid, ea, exit_code) - | - | dbg_thread_start(self, *args) - | dbg_thread_start(self, pid, tid, ea) - | - | dbg_trace(self, *args) - | dbg_trace(self, tid, ip) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_DBG_Hooks> - | delete_DBG_Hooks(self) - -Help on function add_bpt in module ida_dbg: - -add_bpt(*args) - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - add_bpt(bpt) -> bool - - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) - -Help on function add_path_mapping in module ida_dbg: - -add_path_mapping(*args) - add_path_mapping(src, dst) - -Help on function add_virt_module in module ida_dbg: - -add_virt_module(*args) - add_virt_module(mod) -> bool - -Help on function attach_process in module ida_dbg: - -attach_process(*args) - attach_process(pid=pid_t(-1), event_id=-1) -> int - - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - -Help on class bpt_location_t in module ida_dbg: - -class bpt_location_t(__builtin__.object) - | Proxy of C++ bpt_location_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> bpt_location_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ea(self, *args) - | ea(self) -> ea_t - | - | is_empty_path(self, *args) - | is_empty_path(self) -> bool - | - | lineno(self, *args) - | lineno(self) -> int - | - | offset(self, *args) - | offset(self) -> uval_t - | - | path(self, *args) - | path(self) -> char const * - | - | set_abs_bpt(self, *args) - | set_abs_bpt(self, a) - | - | set_rel_bpt(self, *args) - | set_rel_bpt(self, mod, _offset) - | - | set_src_bpt(self, *args) - | set_src_bpt(self, fn, _lineno) - | - | set_sym_bpt(self, *args) - | set_sym_bpt(self, _symbol, _offset=0) - | - | symbol(self, *args) - | symbol(self) -> char const * - | - | type(self, *args) - | type(self) -> bpt_loctype_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | index - | bpt_location_t_index_get(self) -> int - | - | info - | bpt_location_t_info_get(self) -> ea_t - | - | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bpt_location_t> - | delete_bpt_location_t(self) - -Help on class bpt_t in module ida_dbg: - -class bpt_t(__builtin__.object) - | Proxy of C++ bpt_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bpt_t - | - | __repr__ = _swig_repr(self) - | - | badbpt(self, *args) - | badbpt(self) -> bool - | - | enabled(self, *args) - | enabled(self) -> bool - | - | get_cnd_elang_idx(self, *args) - | get_cnd_elang_idx(self) -> size_t - | - | get_size(self, *args) - | get_size(self) -> int - | - | is_absbpt(self, *args) - | is_absbpt(self) -> bool - | - | is_active(self, *args) - | is_active(self) -> bool - | - | is_compiled(self, *args) - | is_compiled(self) -> bool - | - | is_hwbpt(self, *args) - | is_hwbpt(self) -> bool - | - | is_inactive(self, *args) - | is_inactive(self) -> bool - | - | is_low_level(self, *args) - | is_low_level(self) -> bool - | - | is_page_bpt(self, *args) - | is_page_bpt(self) -> bool - | - | is_partially_active(self, *args) - | is_partially_active(self) -> bool - | - | is_relbpt(self, *args) - | is_relbpt(self) -> bool - | - | is_srcbpt(self, *args) - | is_srcbpt(self) -> bool - | - | is_symbpt(self, *args) - | is_symbpt(self) -> bool - | - | is_tracemodebpt(self, *args) - | is_tracemodebpt(self) -> bool - | - | is_traceoffbpt(self, *args) - | is_traceoffbpt(self) -> bool - | - | is_traceonbpt(self, *args) - | is_traceonbpt(self) -> bool - | - | listbpt(self, *args) - | listbpt(self) -> bool - | - | set_abs_bpt(self, *args) - | set_abs_bpt(self, a) - | - | set_rel_bpt(self, *args) - | set_rel_bpt(self, mod, o) - | - | set_src_bpt(self, *args) - | set_src_bpt(self, fn, lineno) - | - | set_sym_bpt(self, *args) - | set_sym_bpt(self, sym, o) - | - | set_trace_action(self, *args) - | set_trace_action(self, enable, trace_types) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cb - | bpt_t_cb_get(self) -> size_t - | - | cndidx - | bpt_t_cndidx_get(self) -> int - | - | condition - | bpt_t_condition_get(self) -> PyObject * - | - | ea - | bpt_t_ea_get(self) -> ea_t - | - | elang - | bpt_t_elang_get(self) -> PyObject * - | - | flags - | bpt_t_flags_get(self) -> uint32 - | - | loc - | bpt_t_loc_get(self) -> bpt_location_t - | - | pass_count - | bpt_t_pass_count_get(self) -> int - | - | pid - | bpt_t_pid_get(self) -> pid_t - | - | props - | bpt_t_props_get(self) -> uint32 - | - | size - | bpt_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | tid - | bpt_t_tid_get(self) -> thid_t - | - | type - | bpt_t_type_get(self) -> bpttype_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bpt_t> - | delete_bpt_t(self) - -Help on class bpt_vec_t in module ida_dbg: - -class bpt_vec_t(__builtin__.object) - | Proxy of C++ qvector< bpt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> bpt_t - | - | __init__(self, *args) - | __init__(self) -> bpt_vec_t - | __init__(self, x) -> bpt_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> bpt_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> bpt_t - | begin(self) -> bpt_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bpt_t - | end(self) -> bpt_t - | - | erase(self, *args) - | erase(self, it) -> bpt_t - | erase(self, first, last) -> bpt_t - | - | extract(self, *args) - | extract(self) -> bpt_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=bpt_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> bpt_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> bpt_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bpt_vec_t> - | delete_bpt_vec_t(self) - -Help on function bring_debugger_to_front in module ida_dbg: - -bring_debugger_to_front(*args) - bring_debugger_to_front() - -Help on function check_bpt in module ida_dbg: - -check_bpt(*args) - check_bpt(ea) -> int - - - Check the breakpoint at the specified address. - - @param ea (C++: ea_t) - @return: one of Breakpoint status codes - -Help on function choose_trace_file in module ida_dbg: - -choose_trace_file(*args) - choose_trace_file() -> str - - - Show the choose trace dialog. - -Help on function clear_requests_queue in module ida_dbg: - -clear_requests_queue(*args) - clear_requests_queue() - - - Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. - -Help on function clear_trace in module ida_dbg: - -clear_trace(*args) - clear_trace() - - - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - -Help on function collect_stack_trace in module ida_dbg: - -collect_stack_trace(*args) - collect_stack_trace(tid, trace) -> bool - -Help on function continue_process in module ida_dbg: - -continue_process(*args) - continue_process() -> bool - - - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. - -Help on function create_source_viewer in module ida_dbg: - -create_source_viewer(*args) - create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - - - Create a source code view. - - - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) - -Help on function dbg_add_bpt_tev in module ida_dbg: - -dbg_add_bpt_tev(*args) - dbg_add_bpt_tev(tid, ea, bp) -> bool - - - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) - @return: false if the operation failed, true otherwise - -Help on function dbg_add_call_tev in module ida_dbg: - -dbg_add_call_tev(*args) - dbg_add_call_tev(tid, caller, callee) - - - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) - -Help on function dbg_add_debug_event in module ida_dbg: - -dbg_add_debug_event(*args) - dbg_add_debug_event(event) - - - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param event (C++: debug_event_t *) - -Help on function dbg_add_insn_tev in module ida_dbg: - -dbg_add_insn_tev(*args) - dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool - - - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) - @return: false if the operation failed, true otherwise - -Help on function dbg_add_many_tevs in module ida_dbg: - -dbg_add_many_tevs(*args) - dbg_add_many_tevs(new_tevs) -> bool - - - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object - -Help on function dbg_add_ret_tev in module ida_dbg: - -dbg_add_ret_tev(*args) - dbg_add_ret_tev(tid, ret_insn, return_to) - - - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) - -Help on function dbg_add_tev in module ida_dbg: - -dbg_add_tev(*args) - dbg_add_tev(type, tid, address) - - - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) - -Help on function dbg_add_thread in module ida_dbg: - -dbg_add_thread(*args) - dbg_add_thread(tid) - - - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param tid (C++: thid_t) - -Help on function dbg_bin_search in module ida_dbg: - -dbg_bin_search(*args) - dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str - -Help on function dbg_can_query in module ida_dbg: - -dbg_can_query(*args) - dbg_can_query() -> bool - - - This function can be used to check if the debugger can be queried: - - debugger is loaded - - process is suspended - - process is not suspended but can take requests. In this case some requests like - memory read/write, bpt management succeed and register querying will fail. - Check if idaapi.get_process_state() < 0 to tell if the process is suspended - @return: Boolean - -Help on function dbg_del_thread in module ida_dbg: - -dbg_del_thread(*args) - dbg_del_thread(tid) - - - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - -Help on function dbg_is_loaded in module ida_dbg: - -dbg_is_loaded(*args) - dbg_is_loaded() -> bool - - - Checks if a debugger is loaded - @return: Boolean - -Help on function define_exception in module ida_dbg: - -define_exception(*args) - define_exception(code, name, desc, flags) -> char const * - - - Convenience function: define new exception code. - - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds - -Help on function del_bpt in module ida_dbg: - -del_bpt(*args) - del_bpt(ea) -> bool - del_bpt(bptloc) -> bool - - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - -Help on function del_bptgrp in module ida_dbg: - -del_bptgrp(*args) - del_bptgrp(name) -> bool - -Help on function del_virt_module in module ida_dbg: - -del_virt_module(*args) - del_virt_module(base) -> bool - -Help on function detach_process in module ida_dbg: - -detach_process(*args) - detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } - -Help on function diff_trace_file in module ida_dbg: - -diff_trace_file(*args) - diff_trace_file(nonnul_filename) -> bool - - - Show difference between the current trace and the one from 'filename'. - -Help on function disable_bblk_trace in module ida_dbg: - -disable_bblk_trace(*args) - disable_bblk_trace() -> bool - -Help on function disable_bpt in module ida_dbg: - -disable_bpt(*args) - disable_bpt(ea) -> bool - disable_bpt(bptloc) -> bool - -Help on function disable_func_trace in module ida_dbg: - -disable_func_trace(*args) - disable_func_trace() -> bool - -Help on function disable_insn_trace in module ida_dbg: - -disable_insn_trace(*args) - disable_insn_trace() -> bool - -Help on function disable_step_trace in module ida_dbg: - -disable_step_trace(*args) - disable_step_trace() -> bool - -Help on function edit_manual_regions in module ida_dbg: - -edit_manual_regions(*args) - edit_manual_regions() - -Help on function enable_bblk_trace in module ida_dbg: - -enable_bblk_trace(*args) - enable_bblk_trace(enable=True) -> bool - -Help on function enable_bpt in module ida_dbg: - -enable_bpt(*args) - enable_bpt(ea, enable=True) -> bool - enable_bpt(bptloc, enable=True) -> bool - -Help on function enable_func_trace in module ida_dbg: - -enable_func_trace(*args) - enable_func_trace(enable=True) -> bool - -Help on function enable_insn_trace in module ida_dbg: - -enable_insn_trace(*args) - enable_insn_trace(enable=True) -> bool - -Help on function enable_manual_regions in module ida_dbg: - -enable_manual_regions(*args) - enable_manual_regions(enable) - -Help on function enable_step_trace in module ida_dbg: - -enable_step_trace(*args) - enable_step_trace(enable=True) -> bool - -Help on class eval_ctx_t in module ida_dbg: - -class eval_ctx_t(__builtin__.object) - | Proxy of C++ eval_ctx_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _ea) -> eval_ctx_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | eval_ctx_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_eval_ctx_t> - | delete_eval_ctx_t(self) - -Help on function exist_bpt in module ida_dbg: - -exist_bpt(*args) - exist_bpt(ea) -> bool - - - Does a breakpoint exist at the given location? - - - @param ea (C++: ea_t) - -Help on function exit_process in module ida_dbg: - -exit_process(*args) - exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } - -Help on function find_bpt in module ida_dbg: - -find_bpt(*args) - find_bpt(bptloc, bpt) -> bool - - - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) - -Help on function get_bblk_trace_options in module ida_dbg: - -get_bblk_trace_options(*args) - get_bblk_trace_options() -> int - - - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - -Help on function get_bpt in module ida_dbg: - -get_bpt(*args) - get_bpt(ea, bpt) -> bool - - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) - @return: false if no breakpoint exists - -Help on function get_bpt_group in module ida_dbg: - -get_bpt_group(*args) - get_bpt_group(bptloc) -> str - -Help on function get_bpt_qty in module ida_dbg: - -get_bpt_qty(*args) - get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - -Help on function get_bpt_tev_ea in module ida_dbg: - -get_bpt_tev_ea(*args) - get_bpt_tev_ea(n) -> ea_t - - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. - -Help on function get_bptloc_string in module ida_dbg: - -get_bptloc_string(*args) - get_bptloc_string(i) -> char const * - - - Helper function for 'bpt_location_t' . - - - @param i (C++: int) - -Help on function get_call_tev_callee in module ida_dbg: - -get_call_tev_callee(*args) - get_call_tev_callee(n) -> ea_t - - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. - -Help on function get_current_source_file in module ida_dbg: - -get_current_source_file(*args) - get_current_source_file() -> str - -Help on function get_current_source_line in module ida_dbg: - -get_current_source_line(*args) - get_current_source_line() -> int - -Help on function get_current_thread in module ida_dbg: - -get_current_thread(*args) - get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_dbg_byte in module ida_dbg: - -get_dbg_byte(*args) - get_dbg_byte(x, ea) -> bool - - - Get one byte of the debugged process memory. - - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) - @return: true success - -Help on function get_dbg_memory_info in module ida_dbg: - -get_dbg_memory_info(*args) - get_dbg_memory_info(ranges) -> int - -Help on function get_dbg_reg_info in module ida_dbg: - -get_dbg_reg_info(*args) - get_dbg_reg_info(regname, ri) -> bool - - - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param regname (C++: const char *) - @param ri (C++: register_info_t *) - -Help on function get_debug_event in module ida_dbg: - -get_debug_event(*args) - get_debug_event() -> debug_event_t - - - Get the current debugger event. - -Help on function get_debugger_event_cond in module ida_dbg: - -get_debugger_event_cond(*args) - get_debugger_event_cond() -> char const * - -Help on function get_first_module in module ida_dbg: - -get_first_module(*args) - get_first_module(modinfo) -> bool - -Help on function get_func_trace_options in module ida_dbg: - -get_func_trace_options(*args) - get_func_trace_options() -> int - - - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} - -Help on function get_global_var in module ida_dbg: - -get_global_var(*args) - get_global_var(prov, ea, name, out) -> bool - -Help on function get_grp_bpts in module ida_dbg: - -get_grp_bpts(*args) - get_grp_bpts(bpts, grp_name) -> ssize_t - -Help on function get_insn_tev_reg_mem in module ida_dbg: - -get_insn_tev_reg_mem(*args) - get_insn_tev_reg_mem(n, memmap) -> bool - - - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) - @return: false if not an instruction event or no memory is available - -Help on function get_insn_tev_reg_result in module ida_dbg: - -get_insn_tev_reg_result(*args) - get_insn_tev_reg_result(n, regname, regval) -> bool - - - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. - -Help on function get_insn_tev_reg_val in module ida_dbg: - -get_insn_tev_reg_val(*args) - get_insn_tev_reg_val(n, regname, regval) -> bool - - - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. - -Help on function get_insn_trace_options in module ida_dbg: - -get_insn_trace_options(*args) - get_insn_trace_options() -> int - - - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - -Help on function get_ip_val in module ida_dbg: - -get_ip_val(*args) - get_ip_val() -> bool - - - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. - -Help on function get_local_var in module ida_dbg: - -get_local_var(*args) - get_local_var(prov, ea, name, out) -> bool - -Help on function get_local_vars in module ida_dbg: - -get_local_vars(*args) - get_local_vars(prov, ea, out) -> bool - -Help on function get_manual_regions in module ida_dbg: - -get_manual_regions(*args) - get_manual_regions(ranges) - get_manual_regions() -> PyObject * - - - Returns the manual memory regions - @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) - -Help on function get_module_info in module ida_dbg: - -get_module_info(*args) - get_module_info(ea, modinfo) -> bool - -Help on function get_next_module in module ida_dbg: - -get_next_module(*args) - get_next_module(modinfo) -> bool - -Help on function get_process_options in module ida_dbg: - -get_process_options(*args) - get_process_options() - - - Get process options. Any of the arguments may be NULL - -Help on function get_process_state in module ida_dbg: - -get_process_state(*args) - get_process_state() -> int - - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states - -Help on function get_processes in module ida_dbg: - -get_processes(*args) - get_processes(proclist) -> ssize_t - - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error - -Help on function get_reg_val in module ida_dbg: - -get_reg_val(*args) - get_reg_val(regname, regval) -> bool - get_reg_val(regname, ival) -> bool - get_reg_val(regname) -> PyObject * - - - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - @param regval (C++: regval_t *) - -Help on function get_reg_vals in module ida_dbg: - -get_reg_vals(*args) - get_reg_vals(tid, clsmask, values) -> int - -Help on function get_ret_tev_return in module ida_dbg: - -get_ret_tev_return(*args) - get_ret_tev_return(n) -> ea_t - - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. - -Help on function get_running_notification in module ida_dbg: - -get_running_notification(*args) - get_running_notification() -> dbg_notification_t - - - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - - @return: dbg_null if no running request - -Help on function get_running_request in module ida_dbg: - -get_running_request(*args) - get_running_request() -> ui_notification_t - - - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @return: ui_null if no running request - -Help on function get_sp_val in module ida_dbg: - -get_sp_val(*args) - get_sp_val() -> bool - - - Get value of the SP register for the current thread. Requires a - suspended debugger. - -Help on function get_srcinfo_provider in module ida_dbg: - -get_srcinfo_provider(*args) - get_srcinfo_provider(name) -> srcinfo_provider_t * - -Help on function get_step_trace_options in module ida_dbg: - -get_step_trace_options(*args) - get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @return: Step trace options - -Help on function get_tev_ea in module ida_dbg: - -get_tev_ea(*args) - get_tev_ea(n) -> ea_t - -Help on function get_tev_event in module ida_dbg: - -get_tev_event(*args) - get_tev_event(n, d) -> bool - - - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". - -Help on function get_tev_info in module ida_dbg: - -get_tev_info(*args) - get_tev_info(n, tev_info) -> bool - - - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) - @return: success - -Help on function get_tev_memory_info in module ida_dbg: - -get_tev_memory_info(*args) - get_tev_memory_info(n, mi) -> bool - - - Get the memory layout, if any, for the specified tev object. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". - -Help on function get_tev_qty in module ida_dbg: - -get_tev_qty(*args) - get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - -Help on function get_tev_reg_mem in module ida_dbg: - -get_tev_reg_mem(tev, idx) - -Help on function get_tev_reg_mem_ea in module ida_dbg: - -get_tev_reg_mem_ea(tev, idx) - -Help on function get_tev_reg_mem_qty in module ida_dbg: - -get_tev_reg_mem_qty(tev) - -Help on function get_tev_reg_val in module ida_dbg: - -get_tev_reg_val(tev, reg) - -Help on function get_tev_tid in module ida_dbg: - -get_tev_tid(*args) - get_tev_tid(n) -> int - -Help on function get_tev_type in module ida_dbg: - -get_tev_type(*args) - get_tev_type(n) -> int - -Help on function get_thread_qty in module ida_dbg: - -get_thread_qty(*args) - get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_trace_base_address in module ida_dbg: - -get_trace_base_address(*args) - get_trace_base_address() -> ea_t - - - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @return: the base address of the currently loaded trace - -Help on function get_trace_file_desc in module ida_dbg: - -get_trace_file_desc(*args) - get_trace_file_desc(filename) -> str - - - Get the file header of the specified trace file. - - - @param filename (C++: const char *) - -Help on function get_trace_platform in module ida_dbg: - -get_trace_platform(*args) - get_trace_platform() -> char const * - - - Get platform name of current trace. - -Help on function getn_bpt in module ida_dbg: - -getn_bpt(*args) - getn_bpt(n, bpt) -> bool - - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) - @return: false if no breakpoint exists - -Help on function getn_thread in module ida_dbg: - -getn_thread(*args) - getn_thread(n) -> thid_t - - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. - -Help on function getn_thread_name in module ida_dbg: - -getn_thread_name(*args) - getn_thread_name(n) -> char const * - - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. - -Help on function graph_trace in module ida_dbg: - -graph_trace(*args) - graph_trace() -> bool - - - Show the trace callgraph. - -Help on function handle_debug_event in module ida_dbg: - -handle_debug_event(*args) - handle_debug_event(ev, rqflags) -> int - -Help on function hide_all_bpts in module ida_dbg: - -hide_all_bpts(*args) - hide_all_bpts() -> int - -Help on function internal_get_sreg_base in module ida_dbg: - -internal_get_sreg_base(*args) - internal_get_sreg_base(tid, sreg_value) -> ea_t - - - Get the sreg base, for the given thread. - - @return: The sreg base, or BADADDR on failure. - -Help on function internal_ioctl in module ida_dbg: - -internal_ioctl(*args) - internal_ioctl(fn, buf, poutbuf, poutsize) -> int - -Help on function invalidate_dbg_state in module ida_dbg: - -invalidate_dbg_state(*args) - invalidate_dbg_state(dbginv) -> int - - - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) - -Help on function invalidate_dbgmem_config in module ida_dbg: - -invalidate_dbgmem_config(*args) - invalidate_dbgmem_config() - - - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) - -Help on function invalidate_dbgmem_contents in module ida_dbg: - -invalidate_dbgmem_contents(*args) - invalidate_dbgmem_contents(ea, size) - - - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - - @param ea (C++: ea_t) - @param size (C++: asize_t) - -Help on function is_bblk_trace_enabled in module ida_dbg: - -is_bblk_trace_enabled(*args) - is_bblk_trace_enabled() -> bool - -Help on function is_debugger_busy in module ida_dbg: - -is_debugger_busy(*args) - is_debugger_busy() -> bool - - - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger - -Help on function is_debugger_memory in module ida_dbg: - -is_debugger_memory(*args) - is_debugger_memory(ea) -> bool - - - Is the address mapped to debugger memory? - - - @param ea (C++: ea_t) - -Help on function is_debugger_on in module ida_dbg: - -is_debugger_on(*args) - is_debugger_on() -> bool - - - Is the debugger currently running? - -Help on function is_func_trace_enabled in module ida_dbg: - -is_func_trace_enabled(*args) - is_func_trace_enabled() -> bool - - - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - -Help on function is_insn_trace_enabled in module ida_dbg: - -is_insn_trace_enabled(*args) - is_insn_trace_enabled() -> bool - - - Get current state of instructions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - -Help on function is_reg_custom in module ida_dbg: - -is_reg_custom(*args) - is_reg_custom(regname) -> bool - - - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - -Help on function is_reg_float in module ida_dbg: - -is_reg_float(*args) - is_reg_float(regname) -> bool - - - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - -Help on function is_reg_integer in module ida_dbg: - -is_reg_integer(*args) - is_reg_integer(regname) -> bool - - - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) - -Help on function is_request_running in module ida_dbg: - -is_request_running(*args) - is_request_running() -> bool - - - Is a request currently running? - -Help on function is_step_trace_enabled in module ida_dbg: - -is_step_trace_enabled(*args) - is_step_trace_enabled() -> bool - - - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - -Help on function is_valid_trace_file in module ida_dbg: - -is_valid_trace_file(*args) - is_valid_trace_file(filename) -> bool - - - Is the specified file a valid trace file for the current database? - - - @param filename (C++: const char *) - -Help on function list_bptgrps in module ida_dbg: - -list_bptgrps(*args) - list_bptgrps(bptgrps) -> size_t - list_bptgrps() -> PyObject * - -Help on function load_debugger in module ida_dbg: - -load_debugger(*args) - load_debugger(dbgname, use_remote) -> bool - -Help on function load_trace_file in module ida_dbg: - -load_trace_file(*args) - load_trace_file(filename) -> str - - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) - -Help on class memreg_info_t in module ida_dbg: - -class memreg_info_t(__builtin__.object) - | Proxy of C++ memreg_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> memreg_info_t - | - | __repr__ = _swig_repr(self) - | - | get_bytes(self, *args) - | get_bytes(self) -> PyObject * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bytes - | get_bytes(self) -> PyObject * - | - | ea - | memreg_info_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_memreg_info_t> - | delete_memreg_info_t(self) - -Help on class memreg_infos_t in module ida_dbg: - -class memreg_infos_t(__builtin__.object) - | Proxy of C++ qvector< memreg_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> memreg_info_t - | - | __init__(self, *args) - | __init__(self) -> memreg_infos_t - | __init__(self, x) -> memreg_infos_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> memreg_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> memreg_info_t - | end(self) -> memreg_info_t - | - | erase(self, *args) - | erase(self, it) -> memreg_info_t - | erase(self, first, last) -> memreg_info_t - | - | extract(self, *args) - | extract(self) -> memreg_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=memreg_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> memreg_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> memreg_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_memreg_infos_t> - | delete_memreg_infos_t(self) - -Help on function move_bpt_to_grp in module ida_dbg: - -move_bpt_to_grp(*args) - move_bpt_to_grp(bpt, grp_name) - - - Sets new group for the breakpoint - -Help on function put_dbg_byte in module ida_dbg: - -put_dbg_byte(*args) - put_dbg_byte(ea, x) -> bool - - - Change one byte of the debugged process memory. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified - -Help on function read_dbg_memory in module ida_dbg: - -read_dbg_memory(*args) - read_dbg_memory(ea, buffer, size) -> ssize_t - -Help on function refresh_debugger_memory in module ida_dbg: - -refresh_debugger_memory(*args) - refresh_debugger_memory() -> PyObject * - - - Refreshes the debugger memory - @return: Nothing - -Help on function rename_bptgrp in module ida_dbg: - -rename_bptgrp(*args) - rename_bptgrp(old_name, new_name) -> bool - -Help on function request_add_bpt in module ida_dbg: - -request_add_bpt(*args) - request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - request_add_bpt(bpt) -> bool - - - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - - - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) - -Help on function request_attach_process in module ida_dbg: - -request_attach_process(*args) - request_attach_process(pid, event_id) -> int - - - Post an 'attach_process()' request. - - - @param pid (C++: pid_t) - @param event_id (C++: int) - -Help on function request_clear_trace in module ida_dbg: - -request_clear_trace(*args) - request_clear_trace() - - - Post a 'clear_trace()' request. - -Help on function request_continue_process in module ida_dbg: - -request_continue_process(*args) - request_continue_process() -> bool - - - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' - -Help on function request_del_bpt in module ida_dbg: - -request_del_bpt(*args) - request_del_bpt(ea) -> bool - request_del_bpt(bptloc) -> bool - - - Post a 'del_bpt(ea_t)' request. - - - @param ea (C++: ea_t) - -Help on function request_detach_process in module ida_dbg: - -request_detach_process(*args) - request_detach_process() -> bool - - - Post a 'detach_process()' request. - -Help on function request_disable_bblk_trace in module ida_dbg: - -request_disable_bblk_trace(*args) - request_disable_bblk_trace() -> bool - -Help on function request_disable_bpt in module ida_dbg: - -request_disable_bpt(*args) - request_disable_bpt(ea) -> bool - request_disable_bpt(bptloc) -> bool - -Help on function request_disable_func_trace in module ida_dbg: - -request_disable_func_trace(*args) - request_disable_func_trace() -> bool - -Help on function request_disable_insn_trace in module ida_dbg: - -request_disable_insn_trace(*args) - request_disable_insn_trace() -> bool - -Help on function request_disable_step_trace in module ida_dbg: - -request_disable_step_trace(*args) - request_disable_step_trace() -> bool - -Help on function request_enable_bblk_trace in module ida_dbg: - -request_enable_bblk_trace(*args) - request_enable_bblk_trace(enable=True) -> bool - -Help on function request_enable_bpt in module ida_dbg: - -request_enable_bpt(*args) - request_enable_bpt(ea, enable=True) -> bool - request_enable_bpt(bptloc, enable=True) -> bool - -Help on function request_enable_func_trace in module ida_dbg: - -request_enable_func_trace(*args) - request_enable_func_trace(enable=True) -> bool - -Help on function request_enable_insn_trace in module ida_dbg: - -request_enable_insn_trace(*args) - request_enable_insn_trace(enable=True) -> bool - -Help on function request_enable_step_trace in module ida_dbg: - -request_enable_step_trace(*args) - request_enable_step_trace(enable=True) -> bool - -Help on function request_exit_process in module ida_dbg: - -request_exit_process(*args) - request_exit_process() -> bool - - - Post an 'exit_process()' request. - -Help on function request_resume_thread in module ida_dbg: - -request_resume_thread(*args) - request_resume_thread(tid) -> int - - - Post a 'resume_thread()' request. - - - @param tid (C++: thid_t) - -Help on function request_run_to in module ida_dbg: - -request_run_to(*args) - request_run_to(ea, pid=pid_t(-1), tid=0) -> bool - - - Post a 'run_to()' request. - - - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) - -Help on function request_select_thread in module ida_dbg: - -request_select_thread(*args) - request_select_thread(tid) -> bool - - - Post a 'select_thread()' request. - - - @param tid (C++: thid_t) - -Help on function request_set_bblk_trace_options in module ida_dbg: - -request_set_bblk_trace_options(*args) - request_set_bblk_trace_options(options) - - - Post a 'set_bblk_trace_options()' request. - - - @param options (C++: int) - -Help on function request_set_func_trace_options in module ida_dbg: - -request_set_func_trace_options(*args) - request_set_func_trace_options(options) - - - Post a 'set_func_trace_options()' request. - - - @param options (C++: int) - -Help on function request_set_insn_trace_options in module ida_dbg: - -request_set_insn_trace_options(*args) - request_set_insn_trace_options(options) - - - Post a 'set_insn_trace_options()' request. - - - @param options (C++: int) - -Help on function request_set_reg_val in module ida_dbg: - -request_set_reg_val(*args) - request_set_reg_val(regname, o) -> PyObject * - - - Post a 'set_reg_val()' request. - - - @param regname (C++: const char *) - -Help on function request_set_resume_mode in module ida_dbg: - -request_set_resume_mode(*args) - request_set_resume_mode(tid, mode) -> bool - - - Post a 'set_resume_mode()' request. - - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) - -Help on function request_set_step_trace_options in module ida_dbg: - -request_set_step_trace_options(*args) - request_set_step_trace_options(options) - - - Post a 'set_step_trace_options()' request. - - - @param options (C++: int) - -Help on function request_start_process in module ida_dbg: - -request_start_process(*args) - request_start_process(path=None, args=None, sdir=None) -> int - - - Post a 'start_process()' request. - - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - -Help on function request_step_into in module ida_dbg: - -request_step_into(*args) - request_step_into() -> bool - - - Post a 'step_into()' request. - -Help on function request_step_over in module ida_dbg: - -request_step_over(*args) - request_step_over() -> bool - - - Post a 'step_over()' request. - -Help on function request_step_until_ret in module ida_dbg: - -request_step_until_ret(*args) - request_step_until_ret() -> bool - - - Post a 'step_until_ret()' request. - -Help on function request_suspend_process in module ida_dbg: - -request_suspend_process(*args) - request_suspend_process() -> bool - - - Post a 'suspend_process()' request. - -Help on function request_suspend_thread in module ida_dbg: - -request_suspend_thread(*args) - request_suspend_thread(tid) -> int - - - Post a 'suspend_thread()' request. - - - @param tid (C++: thid_t) - -Help on function resume_thread in module ida_dbg: - -resume_thread(*args) - resume_thread(tid) -> int - - - Resume thread. \sq{Type, Synchronous function - available as request, - Notification, none (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on function retrieve_exceptions in module ida_dbg: - -retrieve_exceptions(*args) - retrieve_exceptions() -> excvec_t - - - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited - -Help on function run_requests in module ida_dbg: - -run_requests(*args) - run_requests() -> bool - - - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. - - @return: false if not all requests could be processed (indicates an - asynchronous function was started) - -Help on function run_to in module ida_dbg: - -run_to(*args) - run_to(ea, pid=pid_t(-1), tid=0) -> bool - - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) - -Help on function save_trace_file in module ida_dbg: - -save_trace_file(*args) - save_trace_file(filename, description) -> bool - - - Save the current trace in the specified file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function select_thread in module ida_dbg: - -select_thread(*args) - select_thread(tid) -> bool - - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. - -Help on function send_dbg_command in module ida_dbg: - -send_dbg_command(command) - Send a direct command to the debugger backend, and - retrieve the result as a string. - - Note: any double-quotes in 'command' must be backslash-escaped. - Note: this only works with some debugger backends: Bochs, WinDbg, GDB. - - Returns: (True, <result string>) on success, or (False, <Error message string>) on failure - -Help on function set_bblk_trace_options in module ida_dbg: - -set_bblk_trace_options(*args) - set_bblk_trace_options(options) - - - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - - - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) - set_bpt_group(bpt, grp_name) - -Help on function set_bptloc_group in module ida_dbg: - -set_bptloc_group(*args) - set_bptloc_group(bptloc, grp_name) -> bool - -Help on function set_bptloc_string in module ida_dbg: - -set_bptloc_string(*args) - set_bptloc_string(s) -> int - - - Helper function for 'bpt_location_t' . - - - @param s (C++: const char *) - -Help on function set_debugger_event_cond in module ida_dbg: - -set_debugger_event_cond(*args) - set_debugger_event_cond(nonnul_cond) - -Help on function set_debugger_options in module ida_dbg: - -set_debugger_options(*args) - set_debugger_options(options) -> uint - - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - - @param options (C++: uint) - @return: the old debugger options - -Help on function set_func_trace_options in module ida_dbg: - -set_func_trace_options(*args) - set_func_trace_options(options) - - - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function set_highlight_trace_options in module ida_dbg: - -set_highlight_trace_options(*args) - set_highlight_trace_options(hilight, color, diff) - - - Set highlight trace parameters. - - - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) - -Help on function set_insn_trace_options in module ida_dbg: - -set_insn_trace_options(*args) - set_insn_trace_options(options) - - - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function set_manual_regions in module ida_dbg: - -set_manual_regions(*args) - set_manual_regions(ranges) - -Help on function set_process_options in module ida_dbg: - -set_process_options(*args) - set_process_options(path, args, sdir, host, _pass, port) - - - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - @param port (C++: int) - -Help on function set_process_state in module ida_dbg: - -set_process_state(*args) - set_process_state(newstate, p_thid, dbginv) -> int - - - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) - -Help on function set_reg_val in module ida_dbg: - -set_reg_val(*args) - set_reg_val(regname, o) -> PyObject - set_reg_val(tid, regidx, o) -> PyObject * - - - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} - - @param regname (C++: const char *) - -Help on function set_remote_debugger in module ida_dbg: - -set_remote_debugger(*args) - set_remote_debugger(host, _pass, port=-1) - - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) - -Help on function set_resume_mode in module ida_dbg: - -set_resume_mode(*args) - set_resume_mode(tid, mode) -> bool - - - How to resume the application. Set resume mode but do not resume - process. - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) - -Help on function set_step_trace_options in module ida_dbg: - -set_step_trace_options(*args) - set_step_trace_options(options) - - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function set_trace_base_address in module ida_dbg: - -set_trace_base_address(*args) - set_trace_base_address(ea) - - - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea (C++: ea_t) - -Help on function set_trace_file_desc in module ida_dbg: - -set_trace_file_desc(*args) - set_trace_file_desc(filename, description) -> bool - - - Change the description of the specified trace file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function set_trace_platform in module ida_dbg: - -set_trace_platform(*args) - set_trace_platform(platform) - - - Set platform name of current trace. - - - @param platform (C++: const char *) - -Help on function set_trace_size in module ida_dbg: - -set_trace_size(*args) - set_trace_size(size) -> bool - - - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) - -Help on function srcdbg_request_step_into in module ida_dbg: - -srcdbg_request_step_into(*args) - srcdbg_request_step_into() -> bool - -Help on function srcdbg_request_step_over in module ida_dbg: - -srcdbg_request_step_over(*args) - srcdbg_request_step_over() -> bool - -Help on function srcdbg_request_step_until_ret in module ida_dbg: - -srcdbg_request_step_until_ret(*args) - srcdbg_request_step_until_ret() -> bool - -Help on function srcdbg_step_into in module ida_dbg: - -srcdbg_step_into(*args) - srcdbg_step_into() -> bool - -Help on function srcdbg_step_over in module ida_dbg: - -srcdbg_step_over(*args) - srcdbg_step_over() -> bool - -Help on function srcdbg_step_until_ret in module ida_dbg: - -srcdbg_step_until_ret(*args) - srcdbg_step_until_ret() -> bool - -Help on function start_process in module ida_dbg: - -start_process(*args) - start_process(path=None, args=None, sdir=None) -> int - - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - -Help on function step_into in module ida_dbg: - -step_into(*args) - step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } - -Help on function step_over in module ida_dbg: - -step_over(*args) - step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } - -Help on function step_until_ret in module ida_dbg: - -step_until_ret(*args) - step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } - -Help on function store_exceptions in module ida_dbg: - -store_exceptions(*args) - store_exceptions() -> bool - - - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback - -Help on function suspend_process in module ida_dbg: - -suspend_process(*args) - suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. - -Help on function suspend_thread in module ida_dbg: - -suspend_thread(*args) - suspend_thread(tid) -> int - - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on class tev_info_reg_t in module ida_dbg: - -class tev_info_reg_t(__builtin__.object) - | Proxy of C++ tev_info_reg_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> tev_info_reg_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | info - | tev_info_reg_t_info_get(self) -> tev_info_t - | - | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tev_info_reg_t> - | delete_tev_info_reg_t(self) - -Help on class tev_info_t in module ida_dbg: - -class tev_info_t(__builtin__.object) - | Proxy of C++ tev_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> tev_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | tev_info_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | tid - | tev_info_t_tid_get(self) -> thid_t - | - | type - | tev_info_t_type_get(self) -> tev_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tev_info_t> - | delete_tev_info_t(self) - -Help on class tev_reg_value_t in module ida_dbg: - -class tev_reg_value_t(__builtin__.object) - | Proxy of C++ tev_reg_value_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int - | - | thisown - | The membership flag - | - | value - | tev_reg_value_t_value_get(self) -> regval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tev_reg_value_t> - | delete_tev_reg_value_t(self) - -Help on class tev_reg_values_t in module ida_dbg: - -class tev_reg_values_t(__builtin__.object) - | Proxy of C++ qvector< tev_reg_value_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> tev_reg_value_t - | - | __init__(self, *args) - | __init__(self) -> tev_reg_values_t - | __init__(self, x) -> tev_reg_values_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> tev_reg_value_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t - | - | erase(self, *args) - | erase(self, it) -> tev_reg_value_t - | erase(self, first, last) -> tev_reg_value_t - | - | extract(self, *args) - | extract(self) -> tev_reg_value_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=tev_reg_value_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> tev_reg_value_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> tev_reg_value_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tev_reg_values_t> - | delete_tev_reg_values_t(self) - -Help on class tevinforeg_vec_t in module ida_dbg: - -class tevinforeg_vec_t(__builtin__.object) - | Proxy of C++ qvector< tev_info_reg_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> tev_info_reg_t - | - | __init__(self, *args) - | __init__(self) -> tevinforeg_vec_t - | __init__(self, x) -> tevinforeg_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> tev_info_reg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t - | - | erase(self, *args) - | erase(self, it) -> tev_info_reg_t - | erase(self, first, last) -> tev_info_reg_t - | - | extract(self, *args) - | extract(self) -> tev_info_reg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=tev_info_reg_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> tev_info_reg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> tev_info_reg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tevinforeg_vec_t> - | delete_tevinforeg_vec_t(self) - -Help on function update_bpt in module ida_dbg: - -update_bpt(*args) - update_bpt(bpt) -> bool - - - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - - @param bpt (C++: const bpt_t *) - -Help on function wait_for_next_event in module ida_dbg: - -wait_for_next_event(*args) - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - - - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) - -Help on function write_dbg_memory in module ida_dbg: - -write_dbg_memory(*args) - write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t - -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -only after writing the bpt to the process. - -written to the process as a page bpt. is available -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: -""" - -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" - -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" - -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" - -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts -""" - -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" - -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" - -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" - -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" - -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -instruction tracing will log instructions whose IP doesn't change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds -""" -=== ida_dbg EPYDOC INJECTIONS END === -Help on function close_linput in module ida_diskio: - -close_linput(*args) - close_linput(li) - - - Close loader input. - - - @param li (C++: linput_t *) - -Help on function create_bytearray_linput in module ida_diskio: - -create_bytearray_linput(*args) - create_bytearray_linput(s) -> linput_t * - - - Trivial memory linput. - -Help on function create_generic_linput in module ida_diskio: - -create_generic_linput(*args) - create_generic_linput(gl) -> linput_t * - - - Create a generic linput - - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) - -Help on function create_memory_linput in module ida_diskio: - -create_memory_linput(*args) - create_memory_linput(start, size) -> linput_t * - - - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) - -Help on function eclose in module ida_diskio: - -eclose(*args) - eclose(fp) - -Help on function enumerate_files in module ida_diskio: - -enumerate_files(*args) - enumerate_files(path, fname, callback) -> PyObject * - - - Enumerate files in the specified directory while the callback returns 0. - @param path: directory to enumerate files in - @param fname: mask of file names to enumerate - @param callback: a callable object that takes the filename as - its first argument and it returns 0 to continue - enumeration or non-zero to stop enumeration. - @return: - None in case of script errors - tuple(code, fname) : If the callback returns non-zero - -Help on function fopenA in module ida_diskio: - -fopenA(*args) - fopenA(file) -> FILE * - - - Open a file for append in text mode, deny none. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenM in module ida_diskio: - -fopenM(*args) - fopenM(file) -> FILE * - - - Open a file for read/write in binary mode, deny write. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenRB in module ida_diskio: - -fopenRB(*args) - fopenRB(file) -> FILE * - - - Open a file for read in binary mode, deny none. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenRT in module ida_diskio: - -fopenRT(*args) - fopenRT(file) -> FILE * - - - Open a file for read in text mode, deny none. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenWB in module ida_diskio: - -fopenWB(*args) - fopenWB(file) -> FILE * - - - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - - @param file (C++: const char *) - @return: NULL if failure - -Help on function fopenWT in module ida_diskio: - -fopenWT(*args) - fopenWT(file) -> FILE * - - - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - - @param file (C++: const char *) - @return: NULL if failure - -Help on class generic_linput_t in module ida_diskio: - -class generic_linput_t(__builtin__.object) - | Proxy of C++ generic_linput_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | read(self, *args) - | read(self, off, buffer, nbytes) -> ssize_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 - | - | filesize - | generic_linput_t_filesize_get(self) -> uint64 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_generic_linput_t> - | delete_generic_linput_t(self) - -Help on function get_ida_subdirs in module ida_diskio: - -get_ida_subdirs(*args) - get_ida_subdirs(subdir, flags=0) -> int - - - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - - - [$IDAUSR/subdir (0..N entries)] - - $IDADIR/subdir - - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' - -Help on function get_linput_type in module ida_diskio: - -get_linput_type(*args) - get_linput_type(li) -> linput_type_t - - - Get linput type. - - - @param li (C++: linput_t *) - -Help on function get_special_folder in module ida_diskio: - -get_special_folder(*args) - get_special_folder(csidl) -> str - - - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - - @param csidl (C++: int) - -Help on function get_user_idadir in module ida_diskio: - -get_user_idadir(*args) - get_user_idadir() -> char const * - - - Get user ida related directory. - - - if $IDAUSR is defined: - - the first element in $IDAUSR - - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) - -Help on function getsysfile in module ida_diskio: - -getsysfile(*args) - getsysfile(filename, subdir) -> str - - - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. - -Help on function idadir in module ida_diskio: - -idadir(*args) - idadir(subdir) -> char const * - - - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - - @param subdir (C++: const char *) - -Help on function open_linput in module ida_diskio: - -open_linput(*args) - open_linput(file, remote) -> linput_t * - - - Open loader input. - - - @param file (C++: const char *) - @param remote (C++: bool) - -Help on function qlgetz in module ida_diskio: - -qlgetz(*args) - qlgetz(li, fpos) -> str - - - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - - @param li (C++: linput_t *) - @param fpos (C++: int64) - -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last -""" - -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" - -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === -Help on function add_entry in module ida_entry: - -add_entry(*args) - add_entry(ord, ea, name, makecode, flags=0) -> bool - - - Add an entry point to the list of entry points. - - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) - -Help on function get_entry in module ida_entry: - -get_entry(*args) - get_entry(ord) -> ea_t - - - Get entry point address by its ordinal - - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR - -Help on function get_entry_forwarder in module ida_entry: - -get_entry_forwarder(*args) - get_entry_forwarder(ord) -> str - - - Get forwarder name for the entry point by its ordinal. - - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry forwarder name or -1 - -Help on function get_entry_name in module ida_entry: - -get_entry_name(*args) - get_entry_name(ord) -> str - - - Get name of the entry point by its ordinal. - - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 - -Help on function get_entry_ordinal in module ida_entry: - -get_entry_ordinal(*args) - get_entry_ordinal(idx) -> uval_t - - - Get ordinal number of an entry point. - - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. - -Help on function get_entry_qty in module ida_entry: - -get_entry_qty(*args) - get_entry_qty() -> size_t - - - Get number of entry points. - -Help on function rename_entry in module ida_entry: - -rename_entry(*args) - rename_entry(ord, name, flags=0) -> bool - - - Rename entry point. - - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success - -Help on function set_entry_forwarder in module ida_entry: - -set_entry_forwarder(*args) - set_entry_forwarder(ord, name, flags=0) -> bool - - - Set forwarder name for ordinal. - - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success - -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY -""" - -ida_entry.AEF_NODUMMY -""" -it begins with a dummy suffix. See also AEF_IDBENC - -automatically prepend the name with '_' if -""" - -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === -Help on function add_enum in module ida_enum: - -add_enum(*args) - add_enum(idx, name, flag) -> enum_t - - - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) - -Help on function add_enum_member in module ida_enum: - -add_enum_member(*args) - add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - - - Add member to enum type. - - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes - -Help on function del_enum in module ida_enum: - -del_enum(*args) - del_enum(id) - - - Delete an enum type. - - - @param id (C++: enum_t) - -Help on function del_enum_member in module ida_enum: - -del_enum_member(*args) - del_enum_member(id, value, serial, bmask) -> bool - - - Delete member of enum type. - - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) - -Help on class enum_member_visitor_t in module ida_enum: - -class enum_member_visitor_t(__builtin__.object) - | Proxy of C++ enum_member_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> enum_member_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_enum_member(self, *args) - | visit_enum_member(self, cid, value) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_enum_member_visitor_t> - | delete_enum_member_visitor_t(self) - -Help on function for_all_enum_members in module ida_enum: - -for_all_enum_members(*args) - for_all_enum_members(id, cv) -> int - - - Visit all members of a given enum. - - - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) - -Help on function get_bmask_cmt in module ida_enum: - -get_bmask_cmt(*args) - get_bmask_cmt(id, bmask, repeatable) -> str - -Help on function get_bmask_name in module ida_enum: - -get_bmask_name(*args) - get_bmask_name(id, bmask) -> str - -Help on function get_enum in module ida_enum: - -get_enum(*args) - get_enum(name) -> enum_t - - - Get enum by name. - - - @param name (C++: const char *) - -Help on function get_enum_cmt in module ida_enum: - -get_enum_cmt(*args) - get_enum_cmt(id, repeatable) -> str - - - Get enum comment. - - - @param id (C++: enum_t) - @param repeatable (C++: bool) - -Help on function get_enum_flag in module ida_enum: - -get_enum_flag(*args) - get_enum_flag(id) -> flags_t - - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) - -Help on function get_enum_idx in module ida_enum: - -get_enum_idx(*args) - get_enum_idx(id) -> uval_t - - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) - -Help on function get_enum_member in module ida_enum: - -get_enum_member(*args) - get_enum_member(id, value, serial, mask) -> const_t - - - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) - -Help on function get_enum_member_bmask in module ida_enum: - -get_enum_member_bmask(*args) - get_enum_member_bmask(id) -> bmask_t - - - Get bitmask of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_by_name in module ida_enum: - -get_enum_member_by_name(*args) - get_enum_member_by_name(name) -> const_t - - - Get a reference to an enum member by its name. - - - @param name (C++: const char *) - -Help on function get_enum_member_cmt in module ida_enum: - -get_enum_member_cmt(*args) - get_enum_member_cmt(id, repeatable) -> str - - - Get enum member's comment. - - - @param id (C++: const_t) - @param repeatable (C++: bool) - -Help on function get_enum_member_enum in module ida_enum: - -get_enum_member_enum(*args) - get_enum_member_enum(id) -> enum_t - - - Get the parent enum of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_name in module ida_enum: - -get_enum_member_name(*args) - get_enum_member_name(id) -> str - - - Get name of an enum member by const_t. - - - @param id (C++: const_t) - -Help on function get_enum_member_serial in module ida_enum: - -get_enum_member_serial(*args) - get_enum_member_serial(cid) -> uchar - - - Get serial number of an enum member. - - - @param cid (C++: const_t) - -Help on function get_enum_member_value in module ida_enum: - -get_enum_member_value(*args) - get_enum_member_value(id) -> uval_t - - - Get value of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_name in module ida_enum: - -get_enum_name(*args) - get_enum_name(id) -> str - - - Get name of enum. - - - @param id (C++: enum_t) - -Help on function get_enum_name2 in module ida_enum: - -get_enum_name2(*args) - get_enum_name2(id, flags=0) -> str - - - Get name of enum - - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) - -Help on function get_enum_qty in module ida_enum: - -get_enum_qty(*args) - get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. - -Help on function get_enum_size in module ida_enum: - -get_enum_size(*args) - get_enum_size(id) -> size_t - - - Get the number of the members of the enum. - - - @param id (C++: enum_t) - -Help on function get_enum_type_ordinal in module ida_enum: - -get_enum_type_ordinal(*args) - get_enum_type_ordinal(id) -> int32 - - - Get corresponding type ordinal number. - - - @param id (C++: enum_t) - -Help on function get_enum_width in module ida_enum: - -get_enum_width(*args) - get_enum_width(id) -> size_t - - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) - -Help on function get_first_bmask in module ida_enum: - -get_first_bmask(*args) - get_first_bmask(id) -> bmask_t - - - Get first bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK - -Help on function get_first_enum_member in module ida_enum: - -get_first_enum_member(*args) - get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_first_serial_enum_member in module ida_enum: - -get_first_serial_enum_member(*args) - get_first_serial_enum_member(id, value, bmask) -> const_t - -Help on function get_last_bmask in module ida_enum: - -get_last_bmask(*args) - get_last_bmask(id) -> bmask_t - - - Get last bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK - -Help on function get_last_enum_member in module ida_enum: - -get_last_enum_member(*args) - get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_last_serial_enum_member in module ida_enum: - -get_last_serial_enum_member(*args) - get_last_serial_enum_member(id, value, bmask) -> const_t - -Help on function get_next_bmask in module ida_enum: - -get_next_bmask(*args) - get_next_bmask(id, bmask) -> bmask_t - - - Get next bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK - -Help on function get_next_enum_member in module ida_enum: - -get_next_enum_member(*args) - get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_next_serial_enum_member in module ida_enum: - -get_next_serial_enum_member(*args) - get_next_serial_enum_member(in_out_serial, first_cid) -> const_t - -Help on function get_prev_bmask in module ida_enum: - -get_prev_bmask(*args) - get_prev_bmask(id, bmask) -> bmask_t - - - Get prev bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK - -Help on function get_prev_enum_member in module ida_enum: - -get_prev_enum_member(*args) - get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t - -Help on function get_prev_serial_enum_member in module ida_enum: - -get_prev_serial_enum_member(*args) - get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t - -Help on function getn_enum in module ida_enum: - -getn_enum(*args) - getn_enum(n) -> enum_t - - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) - -Help on function is_bf in module ida_enum: - -is_bf(*args) - is_bf(id) -> bool - - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) - -Help on function is_enum_fromtil in module ida_enum: - -is_enum_fromtil(*args) - is_enum_fromtil(id) -> bool - - - Does enum come from type library? - - - @param id (C++: enum_t) - -Help on function is_enum_hidden in module ida_enum: - -is_enum_hidden(*args) - is_enum_hidden(id) -> bool - - - Is enum collapsed? - - - @param id (C++: enum_t) - -Help on function is_ghost_enum in module ida_enum: - -is_ghost_enum(*args) - is_ghost_enum(id) -> bool - - - Is a ghost copy of a local type? - - - @param id (C++: enum_t) - -Help on function is_one_bit_mask in module ida_enum: - -is_one_bit_mask(*args) - is_one_bit_mask(mask) -> bool - - - Is bitmask one bit? - - - @param mask (C++: bmask_t) - -Help on function set_bmask_cmt in module ida_enum: - -set_bmask_cmt(*args) - set_bmask_cmt(id, bmask, cmt, repeatable) -> bool - -Help on function set_bmask_name in module ida_enum: - -set_bmask_name(*args) - set_bmask_name(id, bmask, name) -> bool - -Help on function set_enum_bf in module ida_enum: - -set_enum_bf(*args) - set_enum_bf(id, bf) -> bool - - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - - @param id (C++: enum_t) - @param bf (C++: bool) - -Help on function set_enum_cmt in module ida_enum: - -set_enum_cmt(*args) - set_enum_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum type. - - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_flag in module ida_enum: - -set_enum_flag(*args) - set_enum_flag(id, flag) -> bool - - - Set data representation flags. - - - @param id (C++: enum_t) - @param flag (C++: flags_t) - -Help on function set_enum_fromtil in module ida_enum: - -set_enum_fromtil(*args) - set_enum_fromtil(id, fromtil) -> bool - - - Specify that enum comes from a type library. - - - @param id (C++: enum_t) - @param fromtil (C++: bool) - -Help on function set_enum_ghost in module ida_enum: - -set_enum_ghost(*args) - set_enum_ghost(id, ghost) -> bool - - - Specify that enum is a ghost copy of a local type. - - - @param id (C++: enum_t) - @param ghost (C++: bool) - -Help on function set_enum_hidden in module ida_enum: - -set_enum_hidden(*args) - set_enum_hidden(id, hidden) -> bool - - - Collapse enum. - - - @param id (C++: enum_t) - @param hidden (C++: bool) - -Help on function set_enum_idx in module ida_enum: - -set_enum_idx(*args) - set_enum_idx(id, idx) -> bool - - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) - -Help on function set_enum_member_cmt in module ida_enum: - -set_enum_member_cmt(*args) - set_enum_member_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum member. - - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_member_name in module ida_enum: - -set_enum_member_name(*args) - set_enum_member_name(id, name) -> bool - - - Set name of enum member. - - - @param id (C++: const_t) - @param name (C++: const char *) - -Help on function set_enum_name in module ida_enum: - -set_enum_name(*args) - set_enum_name(id, name) -> bool - - - Set name of enum type. - - - @param id (C++: enum_t) - @param name (C++: const char *) - -Help on function set_enum_type_ordinal in module ida_enum: - -set_enum_type_ordinal(*args) - set_enum_type_ordinal(id, ord) - - - Set corresponding type ordinal number. - - - @param id (C++: enum_t) - @param ord (C++: int32) - -Help on function set_enum_width in module ida_enum: - -set_enum_width(*args) - set_enum_width(id, width) -> bool - - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) - -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask -""" - -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === -Help on class _IdcFunction in module ida_expr: - -class _IdcFunction(__builtin__.object) - | Internal class that calls pyw_call_idc_func() with a context - | - | Methods defined here: - | - | __call__(self, args, res) - | - | __init__(self, ctxptr) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fp_ptr - -Help on function add_idc_class in module ida_expr: - -add_idc_class(*args) - add_idc_class(name, super=None) -> idc_class_t * - - - Create a new IDC class. - - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. - -Help on function add_idc_func in module ida_expr: - -add_idc_func(name, fp, args, defvals=None, flags=0) - Extends the IDC language by exposing a new IDC function that is backed up by a Python function - - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param flags: IDC function flags. A combination of EXTFUN_XXX constants - - @return: Boolean - - - Add an IDC function. This function does not modify the predefined - kernel functions. Example: - - static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) - { - msg("myfunc is called with arg0=%a and arg1=%s - ", argv[0].num, argv[1].str); - res->num = 5; // let's return 5 - return eOk; - } - static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; - static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, NULL, 0, EXTFUN_BASE }; - - // after this: - add_idc_func(myfunc_desc); - - // there is a new IDC function which can be called like this: - MyFunc5(0x123, "test"); - - If the function already exists, it will be replaced by the new - function - - @return: success - -Help on function add_idc_gvar in module ida_expr: - -add_idc_gvar(*args) - add_idc_gvar(name) -> idc_value_t - - - Add global IDC variable. - - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. - -Help on function compile_idc_file in module ida_expr: - -compile_idc_file(*args) - compile_idc_file(nonnul_line) -> str - -Help on function compile_idc_snippet in module ida_expr: - -compile_idc_snippet(*args) - compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - - - Compile text with IDC statements. - - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) - -Help on function compile_idc_text in module ida_expr: - -compile_idc_text(*args) - compile_idc_text(nonnul_line) -> str - -Help on function copy_idcv in module ida_expr: - -copy_idcv(*args) - copy_idcv(dst, src) -> error_t - - - Copy 'src' to 'dst'. For idc objects only a reference is copied. - - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) - -Help on function create_idcv_ref in module ida_expr: - -create_idcv_ref(*args) - create_idcv_ref(ref, v) -> bool - - - Create a variable reference. Currently only references to global - variables can be created. - - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) - @return: success - -Help on function deep_copy_idcv in module ida_expr: - -deep_copy_idcv(*args) - deep_copy_idcv(dst, src) -> error_t - - - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) - -Help on function del_idc_func in module ida_expr: - -del_idc_func(name) - Unregisters the specified IDC function - - @param name: IDC function name to unregister - - @return: Boolean - - - Delete an IDC function - -Help on function del_idcv_attr in module ida_expr: - -del_idcv_attr(*args) - del_idcv_attr(obj, attr) -> error_t - - - Delete an object attribute. - - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) - @return: error code, eOk on success - -Help on function deref_idcv in module ida_expr: - -deref_idcv(*args) - deref_idcv(v, vref_flags) -> idc_value_t - - - Dereference a 'VT_REF' variable. - - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, - qerrno is set to eExecBadRef "Illegal variable reference" - -Help on function eval_expr in module ida_expr: - -eval_expr(*args) - eval_expr(rv, where, line) -> str - - - Compile and calculate an expression. - - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) - -Help on function eval_idc_expr in module ida_expr: - -eval_idc_expr(*args) - eval_idc_expr(rv, where, line) -> str - - - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) - -Help on function exec_idc_script in module ida_expr: - -exec_idc_script(*args) - exec_idc_script(result, path, func, args, argsnum) -> str - - - Compile and execute IDC function(s) from file. - - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) - -Help on function exec_system_script in module ida_expr: - -exec_system_script(*args) - exec_system_script(file, complain_if_no_file=True) -> bool - - - Compile and execute "main" function from system file. - - @param file: file name with IDC function(s). The file will be searched - in the idc subdir of ida (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) - -Help on function find_idc_class in module ida_expr: - -find_idc_class(*args) - find_idc_class(name) -> idc_class_t * - - - Find an existing IDC class by its name. - - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() - -Help on function find_idc_func in module ida_expr: - -find_idc_func(*args) - find_idc_func(prefix, n=0) -> str - -Help on function find_idc_gvar in module ida_expr: - -find_idc_gvar(*args) - find_idc_gvar(name) -> idc_value_t - - - Find an existing global IDC variable by its name. - - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner - -Help on function first_idcv_attr in module ida_expr: - -first_idcv_attr(*args) - first_idcv_attr(obj) -> char const * - -Help on function free_idcv in module ida_expr: - -free_idcv(*args) - free_idcv(v) - - - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - - @param v (C++: idc_value_t *) - -Help on function get_idc_filename in module ida_expr: - -get_idc_filename(*args) - get_idc_filename(file) -> str - - - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and the current directory. - - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf - -Help on function get_idcv_attr in module ida_expr: - -get_idcv_attr(*args) - get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - - - Get an object attribute. - - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) - @return: error code, eOk on success - -Help on function get_idcv_class_name in module ida_expr: - -get_idcv_class_name(*args) - get_idcv_class_name(obj) -> str - - - Retrieves the IDC object class name. - - @param obj: class instance variable (C++: const idc_value_t *) - @return: error code, eOk on success - -Help on function get_idcv_slice in module ida_expr: - -get_idcv_slice(*args) - get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - - - Get slice. - - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk if success - -Help on class highlighter_cbs_t in module ida_expr: - -class highlighter_cbs_t(__builtin__.object) - | Proxy of C++ highlighter_cbs_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> highlighter_cbs_t - | - | __repr__ = _swig_repr(self) - | - | cur_block_state(self, *args) - | cur_block_state(self) -> int32 - | - | prev_block_state(self, *args) - | prev_block_state(self) -> int32 - | - | set_block_state(self, *args) - | set_block_state(self, arg0) - | - | set_style(self, *args) - | set_style(self, arg0, arg1, arg2) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_highlighter_cbs_t> - | delete_highlighter_cbs_t(self) - -Help on class idc_global_t in module ida_expr: - -class idc_global_t(__builtin__.object) - | Proxy of C++ idc_global_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> idc_global_t - | __init__(self, n) -> idc_global_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | idc_global_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | value - | idc_global_t_value_get(self) -> idc_value_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_idc_global_t> - | delete_idc_global_t(self) - -Help on class idc_value_t in module ida_expr: - -class idc_value_t(__builtin__.object) - | Proxy of C++ idc_value_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, n=0) -> idc_value_t - | __init__(self, r) -> idc_value_t - | __init__(self, _str) -> idc_value_t - | - | __repr__ = _swig_repr(self) - | - | _create_empty_string(self, *args) - | _create_empty_string(self) - | - | _idc_value_t__get_e = __get_e(self, *args) - | __get_e(self) -> wrapped_array_t< ushort,6 > - | - | c_str(self, *args) - | c_str(self) -> char const * - | - | clear(self, *args) - | clear(self) - | - | create_empty_string(self, *args) - | create_empty_string(self) - | - | is_convertible(self, *args) - | is_convertible(self) -> bool - | - | is_integral(self, *args) - | is_integral(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | qstr(self, *args) - | qstr(self) -> qstring - | qstr(self) -> qstring const & - | - | set_float(self, *args) - | set_float(self, f) - | - | set_int64(self, *args) - | set_int64(self, v) - | - | set_long(self, *args) - | set_long(self, v) - | - | set_pvoid(self, *args) - | set_pvoid(self, p) - | - | set_string(self, *args) - | set_string(self, _str, len) - | set_string(self, _str) - | - | swap(self, *args) - | swap(self, v) - | - | u_str(self, *args) - | u_str(self) -> uchar const * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | e - | __get_e(self) -> wrapped_array_t< ushort,6 > - | - | funcidx - | idc_value_t_funcidx_get(self) -> int - | - | i64 - | idc_value_t_i64_get(self) -> int64 - | - | num - | idc_value_t_num_get(self) -> sval_t - | - | obj - | idc_value_t_obj_get(self) -> idc_object_t * - | - | pvoid - | idc_value_t_pvoid_get(self) -> void * - | - | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] - | - | str - | - | thisown - | The membership flag - | - | vtype - | idc_value_t_vtype_get(self) -> char - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_idc_value_t> - | delete_idc_value_t(self) - -Help on class idc_values_t in module ida_expr: - -class idc_values_t(__builtin__.object) - | Proxy of C++ qvector< idc_value_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> idc_value_t - | - | __init__(self, *args) - | __init__(self) -> idc_values_t - | __init__(self, x) -> idc_values_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> idc_value_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> idc_value_t - | begin(self) -> idc_value_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> idc_value_t - | end(self) -> idc_value_t - | - | erase(self, *args) - | erase(self, it) -> idc_value_t - | erase(self, first, last) -> idc_value_t - | - | extract(self, *args) - | extract(self) -> idc_value_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=idc_value_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> idc_value_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> idc_value_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_idc_values_t> - | delete_idc_values_t(self) - -Help on function idcv_float in module ida_expr: - -idcv_float(*args) - idcv_float(v) -> error_t - - - Convert IDC variable to a floating point. - - - @param v (C++: idc_value_t *) - -Help on function idcv_int64 in module ida_expr: - -idcv_int64(*args) - idcv_int64(v) -> error_t - - - Convert IDC variable to a 64bit number. - - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to int64 - -Help on function idcv_long in module ida_expr: - -idcv_long(*args) - idcv_long(v) -> error_t - - - Convert IDC variable to a long (32/64bit) number. - - @param v (C++: idc_value_t *) - @return: v = 0 if impossible to convert to long - -Help on function idcv_num in module ida_expr: - -idcv_num(*args) - idcv_num(v) -> error_t - - - Convert IDC variable to a long number. - - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string - -Help on function idcv_object in module ida_expr: - -idcv_object(*args) - idcv_object(v, icls=None) -> error_t - - - Create an IDC object. The original value of 'v' is discarded (freed). - - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) - @return: always eOk - -Help on function idcv_string in module ida_expr: - -idcv_string(*args) - idcv_string(v) -> error_t - - - Convert IDC variable to a text string. - - - @param v (C++: idc_value_t *) - -Help on function last_idcv_attr in module ida_expr: - -last_idcv_attr(*args) - last_idcv_attr(obj) -> char const * - -Help on function move_idcv in module ida_expr: - -move_idcv(*args) - move_idcv(dst, src) -> error_t - - - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) - -Help on function next_idcv_attr in module ida_expr: - -next_idcv_attr(*args) - next_idcv_attr(obj, attr) -> char const * - -Help on function prev_idcv_attr in module ida_expr: - -prev_idcv_attr(*args) - prev_idcv_attr(obj, attr) -> char const * - -Help on function print_idcv in module ida_expr: - -print_idcv(*args) - print_idcv(v, name=None, indent=0) -> str - - - Get text representation of 'idc_value_t' . - - - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) - -Help on function py_add_idc_func in module ida_expr: - -py_add_idc_func(*args) - py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool - -Help on function py_get_call_idc_func in module ida_expr: - -py_get_call_idc_func(*args) - py_get_call_idc_func() -> size_t - -Help on function pyw_convert_defvals in module ida_expr: - -pyw_convert_defvals(*args) - pyw_convert_defvals(out, py_seq) -> bool - -Help on function pyw_register_idc_func in module ida_expr: - -pyw_register_idc_func(*args) - pyw_register_idc_func(name, args, py_fp) -> size_t - -Help on function pyw_unregister_idc_func in module ida_expr: - -pyw_unregister_idc_func(*args) - pyw_unregister_idc_func(ctxptr) -> bool - -Help on function set_header_path in module ida_expr: - -set_header_path(*args) - set_header_path(path, add) -> bool - - - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) - -Help on function set_idcv_attr in module ida_expr: - -set_idcv_attr(*args) - set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - - - Set an object attribute. - - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) - @return: error code, eOk on success - -Help on function set_idcv_slice in module ida_expr: - -set_idcv_slice(*args) - set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - - - Set slice. - - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) - @return: eOk on success - -Help on function swap_idcvs in module ida_expr: - -swap_idcvs(*args) - swap_idcvs(v1, v2) - - - Swap 2 variables. - - - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) - -Help on function throw_idc_exception in module ida_expr: - -throw_idc_exception(*args) - throw_idc_exception(r, desc) -> error_t - - - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow - -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation -""" - -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" - -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === -Help on function calc_fixup_size in module ida_fixup: - -calc_fixup_size(*args) - calc_fixup_size(type) -> int - - - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - - @param type (C++: fixup_type_t) - -Help on function contains_fixups in module ida_fixup: - -contains_fixups(*args) - contains_fixups(ea, size) -> bool - - - Does the specified address range contain any fixup information? - - - @param ea (C++: ea_t) - @param size (C++: asize_t) - -Help on function del_fixup in module ida_fixup: - -del_fixup(*args) - del_fixup(source) - - - Delete fixup information. - - - @param source (C++: ea_t) - -Help on function exists_fixup in module ida_fixup: - -exists_fixup(*args) - exists_fixup(source) -> bool - - - Check that a fixup exists at the given address. - - - @param source (C++: ea_t) - -Help on function find_custom_fixup in module ida_fixup: - -find_custom_fixup(*args) - find_custom_fixup(name) -> fixup_type_t - - - Get id of a custom fixup handler. - - @param name: name of the custom fixup handler (C++: const char *) - @return: id with FIXUP_CUSTOM bit set or 0 - -Help on class fixup_data_t in module ida_fixup: - -class fixup_data_t(__builtin__.object) - | Proxy of C++ fixup_data_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> fixup_data_t - | __init__(self, type_, flags_=0) -> fixup_data_t - | - | __repr__ = _swig_repr(self) - | - | calc_size(self, *args) - | calc_size(self) -> int - | - | clr_extdef(self, *args) - | clr_extdef(self) - | - | clr_unused(self, *args) - | clr_unused(self) - | - | get(self, *args) - | get(self, source) -> bool - | - | get_base(self, *args) - | get_base(self) -> ea_t - | - | get_desc(self, *args) - | get_desc(self, source) -> char const * - | - | get_flags(self, *args) - | get_flags(self) -> uint32 - | - | get_handler(self, *args) - | get_handler(self) -> fixup_handler_t const * - | - | get_type(self, *args) - | get_type(self) -> fixup_type_t - | - | get_value(self, *args) - | get_value(self, ea) -> uval_t - | - | has_base(self, *args) - | has_base(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_extdef(self, *args) - | is_extdef(self) -> bool - | - | is_unused(self, *args) - | is_unused(self) -> bool - | - | patch_value(self, *args) - | patch_value(self, ea) -> bool - | - | set(self, *args) - | set(self, source) - | - | set_base(self, *args) - | set_base(self, new_base) - | - | set_extdef(self, *args) - | set_extdef(self) - | - | set_sel(self, *args) - | set_sel(self, seg) - | - | set_target_sel(self, *args) - | set_target_sel(self) - | - | set_type(self, *args) - | set_type(self, type_) - | - | set_type_and_flags(self, *args) - | set_type_and_flags(self, type_, flags_=0) - | - | set_unused(self, *args) - | set_unused(self) - | - | was_created(self, *args) - | was_created(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | displacement - | fixup_data_t_displacement_get(self) -> adiff_t - | - | off - | fixup_data_t_off_get(self) -> ea_t - | - | sel - | fixup_data_t_sel_get(self) -> sel_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_fixup_data_t> - | delete_fixup_data_t(self) - -Help on class fixup_info_t in module ida_fixup: - -class fixup_info_t(__builtin__.object) - | Proxy of C++ fixup_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> fixup_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | fixup_info_t_ea_get(self) -> ea_t - | - | fd - | fixup_info_t_fd_get(self) -> fixup_data_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_fixup_info_t> - | delete_fixup_info_t(self) - -Help on function gen_fix_fixups in module ida_fixup: - -gen_fix_fixups(*args) - gen_fix_fixups(_from, to, size) - - - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) - -Help on function get_first_fixup_ea in module ida_fixup: - -get_first_fixup_ea(*args) - get_first_fixup_ea() -> ea_t - - - Get the first address with fixup information - - @return: the first address with fixup information, or BADADDR - -Help on function get_fixup in module ida_fixup: - -get_fixup(*args) - get_fixup(fd, source) -> bool - - - Get fixup information. - - - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) - -Help on function get_fixup_desc in module ida_fixup: - -get_fixup_desc(*args) - get_fixup_desc(source, fd) -> str - - - Get FIXUP description comment. - - - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) - -Help on function get_fixup_handler in module ida_fixup: - -get_fixup_handler(*args) - get_fixup_handler(type) -> fixup_handler_t const * - - - Get handler of standard or custom fixup. - - - @param type (C++: fixup_type_t) - -Help on function get_fixup_value in module ida_fixup: - -get_fixup_value(*args) - get_fixup_value(ea, type) -> uval_t - - - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) - -Help on function get_fixups in module ida_fixup: - -get_fixups(*args) - get_fixups(out, ea, size) -> bool - -Help on function get_next_fixup_ea in module ida_fixup: - -get_next_fixup_ea(*args) - get_next_fixup_ea(ea) -> ea_t - - - Find next address with fixup information - - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR - -Help on function get_prev_fixup_ea in module ida_fixup: - -get_prev_fixup_ea(*args) - get_prev_fixup_ea(ea) -> ea_t - - - Find previous address with fixup information - - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR - -Help on function is_fixup_custom in module ida_fixup: - -is_fixup_custom(*args) - is_fixup_custom(type) -> bool - - - Is fixup processed by processor module? - - - @param type (C++: fixup_type_t) - -Help on function patch_fixup_value in module ida_fixup: - -patch_fixup_value(*args) - patch_fixup_value(ea, fd) -> bool - - - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) - -Help on function set_fixup in module ida_fixup: - -set_fixup(*args) - set_fixup(source, fd) - - - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) - -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file -""" - -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" - -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" - -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" - -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === -Help on class qfile_t in module ida_fpro: - -class qfile_t(__builtin__.object) - | Proxy of C++ qfile_t class. - | - | - | A helper class to work with FILE related functions. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, rhs) -> qfile_t - | __init__(self, pycapsule=None) -> qfile_t - | - | - | Closes the file - | - | __repr__ = _swig_repr(self) - | - | close(self, *args) - | close(self) - | - | filename(self, *args) - | filename(self) -> PyObject * - | - | flush(self, *args) - | flush(self) -> int - | - | - | Reads a single byte from the file. Returns None if EOF or the read byte - | - | get_char(self, *args) - | get_char(self) -> PyObject * - | - | get_fp(self, *args) - | get_fp(self) -> FILE * - | - | gets(self, *args) - | gets(self, size) -> PyObject * - | - | - | Reads a line from the input file. Returns the read line or None - | - | open(self, *args) - | open(self, filename, mode) -> bool - | - | - | Opens a file - | - | @param filename: the file name - | @param mode: The mode string, ala fopen() style - | @return: Boolean - | - | opened(self, *args) - | opened(self) -> bool - | - | - | Checks if the file is opened or not - | - | put_char(self, *args) - | put_char(self, chr) -> int - | - | puts(self, *args) - | puts(self, str) -> int - | - | read(self, *args) - | read(self, size) -> PyObject * - | - | - | Reads from the file. Returns the buffer or None - | - | readbytes(self, *args) - | readbytes(self, size, big_endian) -> PyObject * - | - | - | Similar to read() but it respect the endianness - | - | seek(self, *args) - | seek(self, offset, whence=SEEK_SET) -> int - | - | - | Set input source position - | @return: the new position (not 0 as fseek!) - | - | size(self, *args) - | size(self) -> int64 - | - | tell(self, *args) - | tell(self) -> int64 - | - | - | Returns the current position - | - | write(self, *args) - | write(self, py_buf) -> int - | - | - | Writes to the file. Returns 0 or the number of bytes written - | - | writebytes(self, *args) - | writebytes(self, py_buf, big_endian) -> int - | - | - | Similar to write() but it respect the endianness - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | from_capsule(*args) - | from_capsule(pycapsule) -> qfile_t - | - | from_fp(*args) - | from_fp(fp) -> qfile_t - | - | tmpfile(*args) - | tmpfile() -> qfile_t - | - | - | A static method to construct an instance using a temporary file - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qfile_t> - | delete_qfile_t(self) - -Help on function qfile_t_from_capsule in module ida_fpro: - -qfile_t_from_capsule(*args) - qfile_t_from_capsule(pycapsule) -> qfile_t - -Help on function qfile_t_from_fp in module ida_fpro: - -qfile_t_from_fp(*args) - qfile_t_from_fp(fp) -> qfile_t - -Help on function qfile_t_tmpfile in module ida_fpro: - -qfile_t_tmpfile(*args) - qfile_t_tmpfile() -> qfile_t - -Help on function add_auto_stkpnt in module ida_frame: - -add_auto_stkpnt(*args) - add_auto_stkpnt(pfn, ea, delta) -> bool - - - Add automatic SP register change point. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success - -Help on function add_frame in module ida_frame: - -add_frame(*args) - add_frame(pfn, frsize, frregs, argsize) -> bool - - - Add function frame. - - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) - -Help on function add_regvar in module ida_frame: - -add_regvar(*args) - add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - - - Define a register variable. - - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) - @return: Register variable error codes - -Help on function add_user_stkpnt in module ida_frame: - -add_user_stkpnt(*args) - add_user_stkpnt(ea, delta) -> bool - - - Add user-defined SP register change point. - - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success - -Help on function build_stkvar_name in module ida_frame: - -build_stkvar_name(*args) - build_stkvar_name(pfn, v) -> str - - - Build automatic stack variable name. - - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) - @return: length of stack variable name or -1 - -Help on function build_stkvar_xrefs in module ida_frame: - -build_stkvar_xrefs(*args) - build_stkvar_xrefs(out, pfn, mptr) - - - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) - -Help on function calc_stkvar_struc_offset in module ida_frame: - -calc_stkvar_struc_offset(*args) - calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - - - Calculate offset of stack variable in the frame structure. - - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) - -Help on function define_stkvar in module ida_frame: - -define_stkvar(*args) - define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - - - Define/redefine a stack variable. - - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) - @return: success - -Help on function del_frame in module ida_frame: - -del_frame(*args) - del_frame(pfn) -> bool - - - Delete a function frame. - - @param pfn: pointer to function structure (C++: func_t *) - @return: success - -Help on function del_regvar in module ida_frame: - -del_regvar(*args) - del_regvar(pfn, ea1, ea2, canon) -> int - - - Delete a register variable definition. - - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @return: Register variable error codes - -Help on function del_stkpnt in module ida_frame: - -del_stkpnt(*args) - del_stkpnt(pfn, ea) -> bool - - - Delete SP register change point. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: success - -Help on function delete_unreferenced_stkvars in module ida_frame: - -delete_unreferenced_stkvars(*args) - delete_unreferenced_stkvars(pfn) -> int - -Help on function delete_wrong_stkvar_ops in module ida_frame: - -delete_wrong_stkvar_ops(*args) - delete_wrong_stkvar_ops(pfn) -> int - -Help on function find_regvar in module ida_frame: - -find_regvar(*args) - find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t - find_regvar(pfn, ea, canon) -> regvar_t - - - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t - -Help on function frame_off_args in module ida_frame: - -frame_off_args(*args) - frame_off_args(pfn) -> ea_t - - - Get starting address of arguments section. - - - @param pfn (C++: const func_t *) - -Help on function frame_off_lvars in module ida_frame: - -frame_off_lvars(*args) - frame_off_lvars(pfn) -> ea_t - - - Get start address of local variables section. - - - @param pfn (C++: const func_t *) - -Help on function frame_off_retaddr in module ida_frame: - -frame_off_retaddr(*args) - frame_off_retaddr(pfn) -> ea_t - - - Get starting address of return address section. - - - @param pfn (C++: const func_t *) - -Help on function frame_off_savregs in module ida_frame: - -frame_off_savregs(*args) - frame_off_savregs(pfn) -> ea_t - - - Get starting address of saved registers section. - - - @param pfn (C++: const func_t *) - -Help on function get_effective_spd in module ida_frame: - -get_effective_spd(*args) - get_effective_spd(pfn, ea) -> sval_t - - - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 or the difference, usually a negative number - -Help on function get_frame in module ida_frame: - -get_frame(*args) - get_frame(pfn) -> struc_t - get_frame(ea) -> struc_t * - - - Get pointer to function frame. - - @param pfn: pointer to function structure (C++: const func_t *) - -Help on function get_frame_part in module ida_frame: - -get_frame_part(*args) - get_frame_part(range, pfn, part) - - - Get offsets of the frame part in the frame. - - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) - -Help on function get_frame_retsize in module ida_frame: - -get_frame_retsize(*args) - get_frame_retsize(pfn) -> int - - - Get size of function return address. - - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - -Help on function get_frame_size in module ida_frame: - -get_frame_size(*args) - get_frame_size(pfn) -> asize_t - - - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero - -Help on function get_func_by_frame in module ida_frame: - -get_func_by_frame(*args) - get_func_by_frame(frame_id) -> ea_t - - - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR - -Help on function get_min_spd_ea in module ida_frame: - -get_min_spd_ea(*args) - get_min_spd_ea(pfn) -> ea_t - -Help on function get_sp_delta in module ida_frame: - -get_sp_delta(*args) - get_sp_delta(pfn, ea) -> sval_t - - - Get modification of SP made at the specified location - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. - -Help on function get_spd in module ida_frame: - -get_spd(*args) - get_spd(pfn, ea) -> sval_t - - - Get difference between the initial and current values of ESP. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. - -Help on function get_stkvar in module ida_frame: - -get_stkvar(*args) - get_stkvar(insn, op, v) -> PyObject * - - - Get pointer to stack variable - @param op: reference to instruction operand - @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure - - tuple(member_t, actval) - where actval: actual value used to fetch stack variable - -Help on function has_regvar in module ida_frame: - -has_regvar(*args) - has_regvar(pfn, ea) -> bool - - - Is there a register variable definition? - - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) - -Help on function is_funcarg_off in module ida_frame: - -is_funcarg_off(*args) - is_funcarg_off(pfn, frameoff) -> bool - - - Does the given offset lie within the arguments section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) - -Help on class llabel_t in module ida_frame: - -class llabel_t(__builtin__.object) - | Proxy of C++ llabel_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> llabel_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | llabel_t_ea_get(self) -> ea_t - | - | name - | llabel_t_name_get(self) -> char * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_llabel_t> - | delete_llabel_t(self) - -Help on function lvar_off in module ida_frame: - -lvar_off(*args) - lvar_off(pfn, frameoff) -> sval_t - - - Does the given offset lie within the local variables section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) - -Help on function recalc_spd in module ida_frame: - -recalc_spd(*args) - recalc_spd(cur_ea) -> bool - - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - - @param cur_ea: linear address of the current instruction (C++: ea_t) - -Help on class regvar_t in module ida_frame: - -class regvar_t(ida_range.range_t) - | Proxy of C++ regvar_t class. - | - | Method resolution order: - | regvar_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regvar_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | canon - | regvar_t_canon_get(self) -> char * - | - | cmt - | regvar_t_cmt_get(self) -> char * - | - | thisown - | The membership flag - | - | user - | regvar_t_user_get(self) -> char * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regvar_t> - | delete_regvar_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function rename_regvar in module ida_frame: - -rename_regvar(*args) - rename_regvar(pfn, v, user) -> int - - - Rename a register variable. - - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) - @return: Register variable error codes - -Help on function set_frame_size in module ida_frame: - -set_frame_size(*args) - set_frame_size(pfn, frsize, frregs, argsize) -> bool - - - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) - @return: success - -Help on function set_purged in module ida_frame: - -set_purged(*args) - set_purged(ea, nbytes, override_old_value) -> bool - - - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) - @return: success - -Help on function set_regvar_cmt in module ida_frame: - -set_regvar_cmt(*args) - set_regvar_cmt(pfn, v, cmt) -> int - - - Set comment for a register variable. - - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) - @return: Register variable error codes - -Help on function soff_to_fpoff in module ida_frame: - -soff_to_fpoff(*args) - soff_to_fpoff(pfn, soff) -> sval_t - - - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - - @param pfn (C++: func_t *) - @param soff (C++: uval_t) - -Help on class stkpnt_t in module ida_frame: - -class stkpnt_t(__builtin__.object) - | Proxy of C++ stkpnt_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> stkpnt_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | stkpnt_t_ea_get(self) -> ea_t - | - | spd - | stkpnt_t_spd_get(self) -> sval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_stkpnt_t> - | delete_stkpnt_t(self) - -Help on class stkpnts_t in module ida_frame: - -class stkpnts_t(__builtin__.object) - | Proxy of C++ stkpnts_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> stkpnts_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_stkpnts_t> - | delete_stkpnts_t(self) - -Help on function update_fpd in module ida_frame: - -update_fpd(*args) - update_fpd(pfn, fpd) -> bool - - - Update frame pointer delta. - - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) - @return: success - -Help on class xreflist_entry_t in module ida_frame: - -class xreflist_entry_t(__builtin__.object) - | Proxy of C++ xreflist_entry_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> xreflist_entry_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | xreflist_entry_t_ea_get(self) -> ea_t - | - | opnum - | xreflist_entry_t_opnum_get(self) -> uchar - | - | thisown - | The membership flag - | - | type - | xreflist_entry_t_type_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_xreflist_entry_t> - | delete_xreflist_entry_t(self) - -Help on class xreflist_t in module ida_frame: - -class xreflist_t(__builtin__.object) - | Proxy of C++ qvector< xreflist_entry_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> xreflist_entry_t - | - | __init__(self, *args) - | __init__(self) -> xreflist_t - | __init__(self, x) -> xreflist_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> xreflist_entry_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t - | - | erase(self, *args) - | erase(self, it) -> xreflist_entry_t - | erase(self, first, last) -> xreflist_entry_t - | - | extract(self, *args) - | extract(self) -> xreflist_entry_t - | - | find(self, *args) - | find(self, x) -> xreflist_entry_t - | find(self, x) -> xreflist_entry_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=xreflist_entry_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> xreflist_entry_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> xreflist_entry_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_xreflist_t> - | delete_xreflist_t(self) - -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad -""" - -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" - -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" - -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" - -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === -Help on function add_func in module ida_funcs: - -add_func(*args) - add_func(ea1, ea2=BADADDR) -> bool - - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success - -Help on function add_func_ex in module ida_funcs: - -add_func_ex(*args) - add_func_ex(pfn) -> bool - - - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - - @param pfn: ptr to filled function structure (C++: func_t *) - @return: success - -Help on function add_regarg in module ida_funcs: - -add_regarg(*args) - add_regarg(pfn, reg, tif, name) - -Help on function append_func_tail in module ida_funcs: - -append_func_tail(*args) - append_func_tail(pfn, ea1, ea2) -> bool - - - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) - -Help on function apply_idasgn_to in module ida_funcs: - -apply_idasgn_to(*args) - apply_idasgn_to(signame, ea, is_startup) -> int - - - Apply a signature file to the specified address. - - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) - @return: Library function codes - -Help on function apply_startup_sig in module ida_funcs: - -apply_startup_sig(*args) - apply_startup_sig(ea, startup) -> bool - - - Apply a startup signature file to the specified address. - - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) - @return: true if successfully applied the signature - -Help on function calc_func_size in module ida_funcs: - -calc_func_size(*args) - calc_func_size(pfn) -> asize_t - - - Calculate function size. This function takes into account all - fragments of the function. - - @param pfn: ptr to function structure (C++: func_t *) - -Help on function calc_idasgn_state in module ida_funcs: - -calc_idasgn_state(*args) - calc_idasgn_state(n) -> int - - - Get state of a signature in the list of planned signatures - - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG - -Help on function calc_thunk_func_target in module ida_funcs: - -calc_thunk_func_target(*args) - calc_thunk_func_target(pfn) -> ea_t - - - Calculate target of a thunk function. - - @param pfn: pointer to function (may not be NULL) (C++: func_t *) - @return: the target function or BADADDR - -Help on function del_func in module ida_funcs: - -del_func(*args) - del_func(ea) -> bool - - - Delete a function. - - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success - -Help on function del_idasgn in module ida_funcs: - -del_idasgn(*args) - del_idasgn(n) -> int - - - Remove signature from the list of planned signatures. - - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED - -Help on function f_any in module ida_funcs: - -f_any(*args) - f_any(arg1, arg2) -> bool - - - Helper function to accept any address. - -Help on function find_func_bounds in module ida_funcs: - -find_func_bounds(*args) - find_func_bounds(nfn, flags) -> int - - - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) - @return: Find function bounds result codes - -Help on function func_contains in module ida_funcs: - -func_contains(*args) - func_contains(pfn, ea) -> bool - - - Does the given function contain the given address? - - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - -Help on function func_does_return in module ida_funcs: - -func_does_return(*args) - func_does_return(callee) -> bool - - - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - - @param callee (C++: ea_t) - -Help on function func_item_iterator_decode_preceding_insn in module ida_funcs: - -func_item_iterator_decode_preceding_insn(*args) - func_item_iterator_decode_preceding_insn(fii, visited, p_farref, out) -> bool - -Help on function func_item_iterator_decode_prev_insn in module ida_funcs: - -func_item_iterator_decode_prev_insn(*args) - func_item_iterator_decode_prev_insn(fii, out) -> bool - -Help on function func_item_iterator_next in module ida_funcs: - -func_item_iterator_next(*args) - func_item_iterator_next(fii, testf, ud) -> bool - -Help on function func_item_iterator_prev in module ida_funcs: - -func_item_iterator_prev(*args) - func_item_iterator_prev(fii, testf, ud) -> bool - -Help on class func_item_iterator_t in module ida_funcs: - -class func_item_iterator_t(__builtin__.object) - | Proxy of C++ func_item_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_item_iterator_t - | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t - | - | __next__(self, *args) - | __next__(self, func, ud) -> bool - | - | __repr__ = _swig_repr(self) - | - | chunk(self, *args) - | chunk(self) -> range_t - | - | current(self, *args) - | current(self) -> ea_t - | - | decode_preceding_insn(self, *args) - | decode_preceding_insn(self, visited, p_farref, out) -> bool - | - | decode_prev_insn(self, *args) - | decode_prev_insn(self, out) -> bool - | - | first(self, *args) - | first(self) -> bool - | - | last(self, *args) - | last(self) -> bool - | - | next = __next__(self, *args) - | - | next_addr(self, *args) - | next_addr(self) -> bool - | - | next_code(self, *args) - | next_code(self) -> bool - | - | next_data(self, *args) - | next_data(self) -> bool - | - | next_head(self, *args) - | next_head(self) -> bool - | - | next_not_tail(self, *args) - | next_not_tail(self) -> bool - | - | prev(self, *args) - | prev(self, func, ud) -> bool - | - | prev_addr(self, *args) - | prev_addr(self) -> bool - | - | prev_code(self, *args) - | prev_code(self) -> bool - | - | prev_data(self, *args) - | prev_data(self) -> bool - | - | prev_head(self, *args) - | prev_head(self) -> bool - | - | prev_not_tail(self, *args) - | prev_not_tail(self) -> bool - | - | set(self, *args) - | set(self, pfn, _ea=BADADDR) -> bool - | - | set_range(self, *args) - | set_range(self, ea1, ea2) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_func_item_iterator_t> - | delete_func_item_iterator_t(self) - -Help on function func_parent_iterator_set in module ida_funcs: - -func_parent_iterator_set(*args) - func_parent_iterator_set(fpi, pfn) -> bool - -Help on class func_parent_iterator_t in module ida_funcs: - -class func_parent_iterator_t(__builtin__.object) - | Proxy of C++ func_parent_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_parent_iterator_t - | __init__(self, _fnt) -> func_parent_iterator_t - | - | __next__(self, *args) - | __next__(self) -> bool - | - | __repr__ = _swig_repr(self) - | - | first(self, *args) - | first(self) -> bool - | - | last(self, *args) - | last(self) -> bool - | - | next = __next__(self, *args) - | - | parent(self, *args) - | parent(self) -> ea_t - | - | prev(self, *args) - | prev(self) -> bool - | - | reset_fnt(self, *args) - | reset_fnt(self, _fnt) - | - | set(self, *args) - | set(self, _fnt) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_func_parent_iterator_t> - | delete_func_parent_iterator_t(self) - -Help on class func_t in module ida_funcs: - -class func_t(ida_range.range_t) - | Proxy of C++ func_t class. - | - | Method resolution order: - | func_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __get_points__(self, *args) - | __get_points__(self) -> stkpnt_array - | - | __get_regvars__(self, *args) - | __get_regvars__(self) -> regvar_array - | - | __get_tails__(self, *args) - | __get_tails__(self) -> range_array - | - | __init__(self, *args) - | __init__(self, start=0, end=0, f=0) -> func_t - | - | __repr__ = _swig_repr(self) - | - | analyzed_sp(self, *args) - | analyzed_sp(self) -> bool - | - | does_return(self, *args) - | does_return(self) -> bool - | - | is_far(self, *args) - | is_far(self) -> bool - | - | need_prolog_analysis(self, *args) - | need_prolog_analysis(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | argsize - | func_t_argsize_get(self) -> asize_t - | - | color - | func_t_color_get(self) -> bgcolor_t - | - | flags - | func_t_flags_get(self) -> uint64 - | - | fpd - | func_t_fpd_get(self) -> asize_t - | - | frame - | func_t_frame_get(self) -> uval_t - | - | frregs - | func_t_frregs_get(self) -> ushort - | - | frsize - | func_t_frsize_get(self) -> asize_t - | - | llabelqty - | func_t_llabelqty_get(self) -> int - | - | llabels - | func_t_llabels_get(self) -> llabel_t * - | - | owner - | func_t_owner_get(self) -> ea_t - | - | pntqty - | func_t_pntqty_get(self) -> uint32 - | - | points - | __get_points__(self) -> stkpnt_array - | - | referers - | func_t_referers_get(self) -> ea_t * - | - | refqty - | func_t_refqty_get(self) -> int - | - | regargqty - | func_t_regargqty_get(self) -> int - | - | regargs - | func_t_regargs_get(self) -> regarg_t - | - | regvarqty - | func_t_regvarqty_get(self) -> int - | - | regvars - | __get_regvars__(self) -> regvar_array - | - | tailqty - | func_t_tailqty_get(self) -> int - | - | tails - | __get_tails__(self) -> range_array - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_func_t> - | delete_func_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function func_t__from_ptrval__ in module ida_funcs: - -func_t__from_ptrval__(*args) - func_t__from_ptrval__(ptrval) -> func_t - -Help on function func_tail_iterator_set in module ida_funcs: - -func_tail_iterator_set(*args) - func_tail_iterator_set(fti, pfn, ea) -> bool - -Help on function func_tail_iterator_set_ea in module ida_funcs: - -func_tail_iterator_set_ea(*args) - func_tail_iterator_set_ea(fti, ea) -> bool - -Help on class func_tail_iterator_t in module ida_funcs: - -class func_tail_iterator_t(__builtin__.object) - | Proxy of C++ func_tail_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_tail_iterator_t - | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t - | - | __next__(self, *args) - | __next__(self) -> bool - | - | __repr__ = _swig_repr(self) - | - | chunk(self, *args) - | chunk(self) -> range_t - | - | first(self, *args) - | first(self) -> bool - | - | last(self, *args) - | last(self) -> bool - | - | main(self, *args) - | main(self) -> bool - | - | next = __next__(self, *args) - | - | prev(self, *args) - | prev(self) -> bool - | - | set(self, *args) - | set(self, _pfn, ea=BADADDR) -> bool - | - | set_ea(self, *args) - | set_ea(self, ea) -> bool - | - | set_range(self, *args) - | set_range(self, ea1, ea2) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_func_tail_iterator_t> - | delete_func_tail_iterator_t(self) - -Help on function get_current_idasgn in module ida_funcs: - -get_current_idasgn(*args) - get_current_idasgn() -> int - - - Get number of the the current signature. - - @return: 0..n-1 - -Help on function get_fchunk in module ida_funcs: - -get_fchunk(*args) - get_fchunk(ea) -> func_t - - - Get pointer to function chunk structure by address. - - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. - -Help on function get_fchunk_num in module ida_funcs: - -get_fchunk_num(*args) - get_fchunk_num(ea) -> int - - - Get ordinal number of a function chunk in the global list of function - chunks. - - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. - -Help on function get_fchunk_qty in module ida_funcs: - -get_fchunk_qty(*args) - get_fchunk_qty() -> size_t - - - Get total number of function chunks in the program. - -Help on function get_fchunk_referer in module ida_funcs: - -get_fchunk_referer(*args) - get_fchunk_referer(ea, idx) -> ea_t - -Help on function get_func in module ida_funcs: - -get_func(*args) - get_func(ea) -> func_t - - - Get pointer to function structure by address. - - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. - -Help on function get_func_bitness in module ida_funcs: - -get_func_bitness(*args) - get_func_bitness(pfn) -> int - - - Get function bitness (which is equal to the function segment bitness). - pfn==NULL => returns 0 - - @param pfn (C++: const func_t *) - -Help on function get_func_bits in module ida_funcs: - -get_func_bits(*args) - get_func_bits(pfn) -> int - - - Get number of bits in the function addressing. - - - @param pfn (C++: const func_t *) - -Help on function get_func_bytes in module ida_funcs: - -get_func_bytes(*args) - get_func_bytes(pfn) -> int - - - Get number of bytes in the function addressing. - - - @param pfn (C++: const func_t *) - -Help on function get_func_chunknum in module ida_funcs: - -get_func_chunknum(*args) - get_func_chunknum(pfn, ea) -> int - - - Get the containing tail chunk of 'ea'. - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - -Help on function get_func_cmt in module ida_funcs: - -get_func_cmt(*args) - get_func_cmt(pfn, repeatable) -> str - - - Get function comment. - - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. - -Help on function get_func_name in module ida_funcs: - -get_func_name(*args) - get_func_name(ea) -> str - - - Get function name. - - @param ea: any address in the function (C++: ea_t) - @return: length of the function name - -Help on function get_func_num in module ida_funcs: - -get_func_num(*args) - get_func_num(ea) -> int - - - Get ordinal number of a function. - - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. - -Help on function get_func_qty in module ida_funcs: - -get_func_qty(*args) - get_func_qty() -> size_t - - - Get total number of functions in the program. - -Help on function get_func_ranges in module ida_funcs: - -get_func_ranges(*args) - get_func_ranges(ranges, pfn) -> ea_t - - - Get function ranges. - - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) - @return: end address of the last function range (BADADDR-error) - -Help on function get_idasgn_desc in module ida_funcs: - -get_idasgn_desc(*args) - get_idasgn_desc(n) -> PyObject * - - - Get information about a signature in the list. - It returns: (name of signature, names of optional libraries) - - See also: get_idasgn_desc_with_matches - - @param n: number of signature in the list (0..get_idasgn_qty()-1) - @return: None on failure or tuple(signame, optlibs) - -Help on function get_idasgn_desc_with_matches in module ida_funcs: - -get_idasgn_desc_with_matches(*args) - get_idasgn_desc_with_matches(n) -> PyObject * - - - Get information about a signature in the list. - It returns: (name of signature, names of optional libraries, number of matches) - - @param n: number of signature in the list (0..get_idasgn_qty()-1) - @return: None on failure or tuple(signame, optlibs, nmatches) - -Help on function get_idasgn_qty in module ida_funcs: - -get_idasgn_qty(*args) - get_idasgn_qty() -> int - - - Get number of signatures in the list of planned and applied - signatures. - - @return: 0..n - -Help on function get_idasgn_title in module ida_funcs: - -get_idasgn_title(*args) - get_idasgn_title(name) -> str - - - Get full description of the signature by its short name. - - @param name: short name of a signature (C++: const char *) - @return: size of signature description or -1 - -Help on function get_next_fchunk in module ida_funcs: - -get_next_fchunk(*args) - get_next_fchunk(ea) -> func_t - - - Get pointer to the next function chunk in the global list. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if next function chunk doesn't - exist - -Help on function get_next_func in module ida_funcs: - -get_next_func(*args) - get_next_func(ea) -> func_t - - - Get pointer to the next function. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if next function doesn't exist - -Help on function get_next_func_addr in module ida_funcs: - -get_next_func_addr(*args) - get_next_func_addr(pfn, ea) -> ea_t - -Help on function get_prev_fchunk in module ida_funcs: - -get_prev_fchunk(*args) - get_prev_fchunk(ea) -> func_t - - - Get pointer to the previous function chunk in the global list. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if previous function chunk - doesn't exist - -Help on function get_prev_func in module ida_funcs: - -get_prev_func(*args) - get_prev_func(ea) -> func_t - - - Get pointer to the previous function. - - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if previous function doesn't exist - -Help on function get_prev_func_addr in module ida_funcs: - -get_prev_func_addr(*args) - get_prev_func_addr(pfn, ea) -> ea_t - -Help on function getn_fchunk in module ida_funcs: - -getn_fchunk(*args) - getn_fchunk(n) -> func_t - - - Get pointer to function chunk structure by number. - - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. - -Help on function getn_func in module ida_funcs: - -getn_func(*args) - getn_func(n) -> func_t - - - Get pointer to function structure by number. - - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. - -Help on function is_finally_visible_func in module ida_funcs: - -is_finally_visible_func(*args) - is_finally_visible_func(pfn) -> bool - - - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - - - @param pfn (C++: func_t *) - -Help on function is_func_entry in module ida_funcs: - -is_func_entry(*args) - is_func_entry(pfn) -> bool - - - Does function describe a function entry chunk? - - - @param pfn (C++: const func_t *) - -Help on function is_func_locked in module ida_funcs: - -is_func_locked(*args) - is_func_locked(pfn) -> bool - - - Is the function pointer locked? - - - @param pfn (C++: const func_t *) - -Help on function is_func_tail in module ida_funcs: - -is_func_tail(*args) - is_func_tail(pfn) -> bool - - - Does function describe a function tail chunk? - - - @param pfn (C++: const func_t *) - -Help on function is_same_func in module ida_funcs: - -is_same_func(*args) - is_same_func(ea1, ea2) -> bool - - - Do two addresses belong to the same function? - - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - -Help on function is_visible_func in module ida_funcs: - -is_visible_func(*args) - is_visible_func(pfn) -> bool - - - Is the function visible (not hidden)? - - - @param pfn (C++: func_t *) - -Help on class lock_func in module ida_funcs: - -class lock_func(__builtin__.object) - | Proxy of C++ lock_func class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _pfn) -> lock_func - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lock_func> - | delete_lock_func(self) - -Help on function lock_func_range in module ida_funcs: - -lock_func_range(*args) - lock_func_range(pfn, lock) - - - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param pfn (C++: const func_t *) - @param lock (C++: bool) - -Help on function plan_to_apply_idasgn in module ida_funcs: - -plan_to_apply_idasgn(*args) - plan_to_apply_idasgn(fname) -> int - - - Add a signature file to the list of planned signature files. - - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures - -Help on class range_array in module ida_funcs: - -class range_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< range_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __init__(self, *args) - | __init__(self, _data, _count) -> range_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | range_array_count_get(self) -> size_t - | - | data - | range_array_data_get(self) -> range_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_range_array> - | delete_range_array(self) - -Help on function read_regargs in module ida_funcs: - -read_regargs(*args) - read_regargs(pfn) - -Help on function reanalyze_function in module ida_funcs: - -reanalyze_function(*args) - reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) - - - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) - -Help on function reanalyze_noret_flag in module ida_funcs: - -reanalyze_noret_flag(*args) - reanalyze_noret_flag(ea) -> bool - - - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - - @param ea (C++: ea_t) - -Help on class regarg_t in module ida_funcs: - -class regarg_t(__builtin__.object) - | Proxy of C++ regarg_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regarg_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | regarg_t_name_get(self) -> char * - | - | reg - | regarg_t_reg_get(self) -> int - | - | thisown - | The membership flag - | - | type - | regarg_t_type_get(self) -> type_t * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regarg_t> - | delete_regarg_t(self) - -Help on class regvar_array in module ida_funcs: - -class regvar_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regvar_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> regvar_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | regvar_array_count_get(self) -> size_t - | - | data - | regvar_array_data_get(self) -> regvar_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regvar_array> - | delete_regvar_array(self) - -Help on function remove_func_tail in module ida_funcs: - -remove_func_tail(*args) - remove_func_tail(pfn, tail_ea) -> bool - - - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) - -Help on function set_func_cmt in module ida_funcs: - -set_func_cmt(*args) - set_func_cmt(pfn, cmt, repeatable) -> bool - - - Set function comment. This function works with function chunks too. - - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) - -Help on function set_func_end in module ida_funcs: - -set_func_end(*args) - set_func_end(ea, newend) -> bool - - - Move function chunk end address. - - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success - -Help on function set_func_name_if_jumpfunc in module ida_funcs: - -set_func_name_if_jumpfunc(*args) - set_func_name_if_jumpfunc(pfn, oldname) -> int - - - Give a meaningful name to function if it consists of only 'jump' - instruction. - - @param pfn: pointer to function (may be NULL) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass NULL. (C++: const char *) - @return: success - -Help on function set_func_start in module ida_funcs: - -set_func_start(*args) - set_func_start(ea, newstart) -> int - - - Move function chunk start address. - - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) - @return: Function move result codes - -Help on function set_noret_insn in module ida_funcs: - -set_noret_insn(*args) - set_noret_insn(insn_ea, noret) -> bool - - - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - - @param insn_ea (C++: ea_t) - @param noret (C++: bool) - @return: true if the instruction 'noret' flag has been changed - -Help on function set_tail_owner in module ida_funcs: - -set_tail_owner(*args) - set_tail_owner(fnt, func_start) -> bool - - - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) - -Help on function set_visible_func in module ida_funcs: - -set_visible_func(*args) - set_visible_func(pfn, visible) - - - Set visibility of function. - - - @param pfn (C++: func_t *) - @param visible (C++: bool) - -Help on class stkpnt_array in module ida_funcs: - -class stkpnt_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> stkpnt_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> stkpnt_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | stkpnt_array_count_get(self) -> size_t - | - | data - | stkpnt_array_data_get(self) -> stkpnt_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_stkpnt_array> - | delete_stkpnt_array(self) - -Help on function try_to_add_libfunc in module ida_funcs: - -try_to_add_libfunc(*args) - try_to_add_libfunc(ea) -> int - - - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - - @param ea: any address in the program (C++: ea_t) - @return: Library function codes - -Help on function update_func in module ida_funcs: - -update_func(*args) - update_func(pfn) -> bool - - - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - - @param pfn: ptr to function structure (C++: func_t *) - @return: success - -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_EXIST -""" -its bounds are returned in 'nfn'. - -function exists already. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -just create instructions inside the boundaries. - -do not modify incoming function boundaries, -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -nfn->end_ea will have the address of the unexplored byte. - -function has instructions that pass execution flow to unexplored -bytes. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. -""" - -ida_funcs.FUNC_PROLOG_OK -""" -by last SP-analysis - -Prolog analysis has be performed -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -of the function - -User has specified far-ness -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === -Help on class BasicBlock in module ida_gdl: - -class BasicBlock(__builtin__.object) - | Basic block class. It is returned by the Flowchart class - | - | Methods defined here: - | - | __init__(self, id, bb, fc) - | - | preds(self) - | Iterates the predecessors list - | - | succs(self) - | Iterates the successors list - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | startEA - -Help on class FlowChart in module ida_gdl: - -class FlowChart(__builtin__.object) - | Flowchart class used to determine basic blocks. - | Check ex_gdl_qflow_chart.py for sample usage. - | - | Methods defined here: - | - | __getitem__(self, index) - | Returns a basic block - | - | @return: BasicBlock - | - | __init__(self, f=None, bounds=None, flags=0) - | Constructor - | @param f: A func_t type, use get_func(ea) to get a reference - | @param bounds: A tuple of the form (start, end). Used if "f" is None - | @param flags: one of the FC_xxxx flags. One interesting flag is FC_PREDS - | - | __iter__(self) - | - | _getitem(self, index) - | - | refresh(self) - | Refreshes the flow chart - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | size - -Help on function display_gdl in module ida_gdl: - -display_gdl(*args) - display_gdl(fname) -> int - - - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - - @param fname (C++: const char *) - @return: error code from os, 0 if ok - -Help on function gen_complex_call_chart in module ida_gdl: - -gen_complex_call_chart(*args) - gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - - - Build and display a complex xref graph. - - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen - -Help on function gen_flow_graph in module ida_gdl: - -gen_flow_graph(*args) - gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - - - Build and display a flow graph. - - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen - -Help on function gen_gdl in module ida_gdl: - -gen_gdl(*args) - gen_gdl(g, fname) - - - Create GDL file for graph. - - - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) - -Help on function gen_simple_call_chart in module ida_gdl: - -gen_simple_call_chart(*args) - gen_simple_call_chart(filename, wait, title, gflags) -> bool - - - Build and display a simple function call graph. - - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen - -Help on function is_noret_block in module ida_gdl: - -is_noret_block(*args) - is_noret_block(btype) -> bool - - - Does this block never return? - - - @param btype (C++: fc_block_type_t) - -Help on function is_ret_block in module ida_gdl: - -is_ret_block(*args) - is_ret_block(btype) -> bool - - - Does this block return? - - - @param btype (C++: fc_block_type_t) - -Help on class node_iterator in module ida_gdl: - -class node_iterator(__builtin__.object) - | Proxy of C++ node_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, n) -> bool - | - | __init__(self, *args) - | __init__(self, _g, n) -> node_iterator - | - | __ne__(self, *args) - | __ne__(self, n) -> bool - | - | __ref__(self, *args) - | __ref__(self) -> int - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_node_iterator> - | delete_node_iterator(self) - -Help on class qbasic_block_t in module ida_gdl: - -class qbasic_block_t(ida_range.range_t) - | Proxy of C++ qbasic_block_t class. - | - | Method resolution order: - | qbasic_block_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> qbasic_block_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qbasic_block_t> - | delete_qbasic_block_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on class qflow_chart_t in module ida_gdl: - -class qflow_chart_t(__builtin__.object) - | Proxy of C++ qflow_chart_t class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, n) -> qbasic_block_t - | - | __init__(self, *args) - | __init__(self) -> qflow_chart_t - | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t - | - | __repr__ = _swig_repr(self) - | - | append_to_flowchart(self, *args) - | append_to_flowchart(self, ea1, ea2) - | - | calc_block_type(self, *args) - | calc_block_type(self, blknum) -> fc_block_type_t - | - | create(self, *args) - | create(self, _title, _pfn, _ea1, _ea2, _flags) - | create(self, _title, ranges, _flags) - | - | get_node_label(self, *args) - | get_node_label(self, arg2, arg3, arg4) -> char * - | - | is_noret_block(self, *args) - | is_noret_block(self, blknum) -> bool - | - | is_ret_block(self, *args) - | is_ret_block(self, blknum) -> bool - | - | npred(self, *args) - | npred(self, node) -> int - | - | nsucc(self, *args) - | nsucc(self, node) -> int - | - | pred(self, *args) - | pred(self, node, i) -> int - | - | print_names(self, *args) - | print_names(self) -> bool - | - | print_node_attributes(self, *args) - | print_node_attributes(self, arg2, arg3) - | - | refresh(self, *args) - | refresh(self) - | - | size(self, *args) - | size(self) -> int - | - | succ(self, *args) - | succ(self, node, i) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bounds - | qflow_chart_t_bounds_get(self) -> range_t - | - | flags - | qflow_chart_t_flags_get(self) -> int - | - | nproper - | qflow_chart_t_nproper_get(self) -> int - | - | pfn - | qflow_chart_t_pfn_get(self) -> func_t * - | - | thisown - | The membership flag - | - | title - | qflow_chart_t_title_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qflow_chart_t> - | delete_qflow_chart_t(self) - -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block -""" - -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_PREDS -""" -compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === -Help on class GraphViewer in module ida_graph: - -class GraphViewer(ida_kernwin.CustomIDAMemo) - | Method resolution order: - | GraphViewer - | ida_kernwin.CustomIDAMemo - | ida_kernwin.View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | AddCommand(self, title, shortcut) - | - | AddEdge(self, src_node, dest_node) - | Creates an edge between two given node ids - | - | AddNode(self, obj) - | Creates a node associated with the given object and returns the node id - | - | Clear(self) - | Clears all the nodes and edges - | - | Close(self) - | Closes the graph. - | It is possible to call Show() again (which will recreate the graph) - | - | Count(self) - | Returns the node count - | - | OnCommand(self, cmd_id) - | - | OnPopup(self, widget, popup_handle) - | - | OnRefresh(self) - | Event called when the graph is refreshed or first created. - | From this event you are supposed to create nodes and edges. - | This callback is mandatory. - | - | @note: ***It is important to clear previous nodes before adding nodes.*** - | @return: Returning True tells the graph viewer to use the items. Otherwise old items will be used. - | - | Select(self, node_id) - | Selects a node on the graph - | - | Show(self) - | Shows an existing graph or creates a new one - | - | @return: Boolean - | - | __getitem__(self, idx) - | Returns a reference to the object associated with this node id - | - | __init__(self, title, close_open=False) - | Constructs the GraphView object. - | Please do not remove or rename the private fields - | - | @param title: The title of the graph window - | @param close_open: Should it attempt to close an existing graph (with same title) before creating this graph? - | - | __iter__(self) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | UI_Hooks_Trampoline = <class 'ida_graph.UI_Hooks_Trampoline'> - | - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_kernwin.CustomIDAMemo: - | - | CreateGroups(self, groups_infos) - | Send a request to modify the graph by creating a - | (set of) group(s), and perform an animation. - | - | Each object in the 'groups_infos' list must be of the format: - | { - | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group - | "text" : <string> # The synthetic text for that group - | } - | - | @param groups_infos: A list of objects that describe those groups. - | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). - | - | DelNodesInfos(self, *nodes) - | Delete the properties for the given node(s). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods inherited from ida_kernwin.CustomIDAMemo: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_kernwin.View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_kernwin.View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_kernwin.View_Hooks: - | - | __swig_destroy__ = <built-in function delete_View_Hooks> - | delete_View_Hooks(self) - -Help on class TPointDouble in module ida_graph: - -class TPointDouble(__builtin__.object) - | Proxy of C++ TPointDouble class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> TPointDouble - | __init__(self, a, b) -> TPointDouble - | __init__(self, r) -> TPointDouble - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, r) - | - | negate(self, *args) - | negate(self) - | - | sub(self, *args) - | sub(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | TPointDouble_x_get(self) -> double - | - | y - | TPointDouble_y_get(self) -> double - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_TPointDouble> - | delete_TPointDouble(self) - -Help on function calc_dist in module ida_graph: - -calc_dist(*args) - calc_dist(p, q) -> double - - - Calculate distance between p and q. - - - @param p (C++: point_t) - @param q (C++: point_t) - -Help on function clr_node_info in module ida_graph: - -clr_node_info(*args) - clr_node_info(gid, node, flags) - - - Clear node info for the given node. - - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) - -Help on function create_disasm_graph in module ida_graph: - -create_disasm_graph(*args) - create_disasm_graph(ea) -> mutable_graph_t - create_disasm_graph(ranges) -> mutable_graph_t - - - Create a graph for the function that contains 'ea'. - - - @param ea (C++: ea_t) - -Help on function create_graph_viewer in module ida_graph: - -create_graph_viewer(*args) - create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - - - Create a custom graph viewer. - - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) - @return: new viewer - -Help on function create_mutable_graph in module ida_graph: - -create_mutable_graph(*args) - create_mutable_graph(id) -> mutable_graph_t - - - Create a new empty graph with given id. - - - @param id (C++: uval_t) - -Help on function create_user_graph_place in module ida_graph: - -create_user_graph_place(*args) - create_user_graph_place(node, lnnum) -> user_graph_place_t - - - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - - - @param node (C++: int) - @param lnnum (C++: int) - -Help on function del_node_info in module ida_graph: - -del_node_info(*args) - del_node_info(gid, node) - - - Delete the 'node_info_t' for the given node. - - - @param gid (C++: graph_id_t) - @param node (C++: int) - -Help on function delete_mutable_graph in module ida_graph: - -delete_mutable_graph(*args) - delete_mutable_graph(g) - - - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - - @param g (C++: mutable_graph_t *) - -Help on class edge_info_t in module ida_graph: - -class edge_info_t(__builtin__.object) - | Proxy of C++ edge_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> edge_info_t - | - | __repr__ = _swig_repr(self) - | - | reverse_layout(self, *args) - | reverse_layout(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | color - | edge_info_t_color_get(self) -> bgcolor_t - | - | dstoff - | edge_info_t_dstoff_get(self) -> int - | - | layout - | edge_info_t_layout_get(self) -> pointseq_t - | - | srcoff - | edge_info_t_srcoff_get(self) -> int - | - | thisown - | The membership flag - | - | width - | edge_info_t_width_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_edge_info_t> - | delete_edge_info_t(self) - -Help on class edge_infos_wrapper_t in module ida_graph: - -class edge_infos_wrapper_t(__builtin__.object) - | Proxy of C++ edge_infos_wrapper_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * - | - | thisown - | The membership flag - -Help on class edge_layout_point_t in module ida_graph: - -class edge_layout_point_t(__builtin__.object) - | Proxy of C++ edge_layout_point_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t - | __init__(self, _e, _pidx) -> edge_layout_point_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | e - | edge_layout_point_t_e_get(self) -> edge_t - | - | pidx - | edge_layout_point_t_pidx_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_edge_layout_point_t> - | delete_edge_layout_point_t(self) - -Help on class edge_segment_t in module ida_graph: - -class edge_segment_t(__builtin__.object) - | Proxy of C++ edge_segment_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> edge_segment_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | length(self, *args) - | length(self) -> size_t - | - | toright(self, *args) - | toright(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | e - | edge_segment_t_e_get(self) -> edge_t - | - | nseg - | edge_segment_t_nseg_get(self) -> int - | - | thisown - | The membership flag - | - | x0 - | edge_segment_t_x0_get(self) -> int - | - | x1 - | edge_segment_t_x1_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_edge_segment_t> - | delete_edge_segment_t(self) - -Help on class edge_t in module ida_graph: - -class edge_t(__builtin__.object) - | Proxy of C++ edge_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, y) -> bool - | - | __init__(self, *args) - | __init__(self) -> edge_t - | __init__(self, x, y) -> edge_t - | - | __lt__(self, *args) - | __lt__(self, y) -> bool - | - | __ne__(self, *args) - | __ne__(self, y) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dst - | edge_t_dst_get(self) -> int - | - | src - | edge_t_src_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_edge_t> - | delete_edge_t(self) - -Help on function get_graph_viewer in module ida_graph: - -get_graph_viewer(*args) - get_graph_viewer(parent) -> graph_viewer_t * - - - Get custom graph viewer for given form. - - - @param parent (C++: TWidget *) - -Help on function get_node_info in module ida_graph: - -get_node_info(*args) - get_node_info(out, gid, node) -> bool - - - Get node info. - - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @return: success - -Help on function get_viewer_graph in module ida_graph: - -get_viewer_graph(*args) - get_viewer_graph(gv) -> mutable_graph_t - - - Get graph object for given custom graph viewer. - - - @param gv (C++: graph_viewer_t *) - -Help on class graph_item_t in module ida_graph: - -class graph_item_t(__builtin__.object) - | Proxy of C++ graph_item_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> graph_item_t - | - | __repr__ = _swig_repr(self) - | - | is_edge(self, *args) - | is_edge(self) -> bool - | - | is_node(self, *args) - | is_node(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | b - | graph_item_t_b_get(self) -> int - | - | e - | graph_item_t_e_get(self) -> edge_t - | - | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t - | - | n - | graph_item_t_n_get(self) -> int - | - | p - | graph_item_t_p_get(self) -> point_t - | - | thisown - | The membership flag - | - | type - | graph_item_t_type_get(self) -> graph_item_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_graph_item_t> - | delete_graph_item_t(self) - -Help on class graph_node_visitor_t in module ida_graph: - -class graph_node_visitor_t(__builtin__.object) - | Proxy of C++ graph_node_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> graph_node_visitor_t - | - | __repr__ = _swig_repr(self) - | - | is_forbidden_edge(self, *args) - | is_forbidden_edge(self, arg0, arg1) -> bool - | - | is_visited(self, *args) - | is_visited(self, n) -> bool - | - | reinit(self, *args) - | reinit(self) - | - | set_visited(self, *args) - | set_visited(self, n) - | - | visit_node(self, *args) - | visit_node(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_graph_node_visitor_t> - | delete_graph_node_visitor_t(self) - -Help on class graph_path_visitor_t in module ida_graph: - -class graph_path_visitor_t(__builtin__.object) - | Proxy of C++ graph_path_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> graph_path_visitor_t - | - | __repr__ = _swig_repr(self) - | - | walk_backward(self, *args) - | walk_backward(self, arg0) -> int - | - | walk_forward(self, *args) - | walk_forward(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | path - | graph_path_visitor_t_path_get(self) -> intvec_t * - | - | prune - | graph_path_visitor_t_prune_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_graph_path_visitor_t> - | delete_graph_path_visitor_t(self) - -Help on class graph_visitor_t in module ida_graph: - -class graph_visitor_t(__builtin__.object) - | Proxy of C++ graph_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> graph_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_edge(self, *args) - | visit_edge(self, arg2, arg3) -> int - | - | visit_node(self, *args) - | visit_node(self, arg2, arg3) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_graph_visitor_t> - | delete_graph_visitor_t(self) - -Help on class group_crinfo_t in module ida_graph: - -class group_crinfo_t(__builtin__.object) - | Proxy of C++ group_crinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> group_crinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * - | - | text - | group_crinfo_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_group_crinfo_t> - | delete_group_crinfo_t(self) - -Help on class interval_t in module ida_graph: - -class interval_t(__builtin__.object) - | Proxy of C++ interval_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> interval_t - | __init__(self, y0, y1) -> interval_t - | __init__(self, s) -> interval_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | contains(self, *args) - | contains(self, x) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | intersect(self, *args) - | intersect(self, r) - | - | length(self, *args) - | length(self) -> int - | - | make_union(self, *args) - | make_union(self, r) - | - | move_by(self, *args) - | move_by(self, shift) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x0 - | interval_t_x0_get(self) -> int - | - | x1 - | interval_t_x1_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_interval_t> - | delete_interval_t(self) - -Help on class mutable_graph_t in module ida_graph: - -class mutable_graph_t(__builtin__.object) - | Proxy of C++ mutable_graph_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | calc_group_ea(self, *args) - | calc_group_ea(self, arg0) -> ea_t - | - | change_group_visibility(self, *args) - | change_group_visibility(self, group, expand) -> bool - | - | clear(self, *args) - | clear(self) - | - | create_digraph_layout(self, *args) - | create_digraph_layout(self) -> bool - | - | create_group(self, *args) - | create_group(self, nodes) -> int - | - | del_custom_layout(self, *args) - | del_custom_layout(self) - | - | delete_group(self, *args) - | delete_group(self, group) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | exists(self, *args) - | exists(self, node) -> bool - | - | get_custom_layout(self, *args) - | get_custom_layout(self) -> bool - | - | get_edge(self, *args) - | get_edge(self, e) -> edge_info_t - | - | get_first_subgraph_node(self, *args) - | get_first_subgraph_node(self, group) -> int - | - | get_graph_groups(self, *args) - | get_graph_groups(self) -> bool - | - | get_next_subgraph_node(self, *args) - | get_next_subgraph_node(self, group, current) -> int - | - | get_node_group(self, *args) - | get_node_group(self, node) -> int - | - | get_node_representative(self, *args) - | get_node_representative(self, node) -> int - | - | is_collapsed_node(self, *args) - | is_collapsed_node(self, node) -> bool - | - | is_deleted_node(self, *args) - | is_deleted_node(self, node) -> bool - | - | is_displayable_node(self, *args) - | is_displayable_node(self, node) -> bool - | - | is_dot_node(self, *args) - | is_dot_node(self, node) -> bool - | - | is_group_node(self, *args) - | is_group_node(self, node) -> bool - | - | is_simple_node(self, *args) - | is_simple_node(self, node) -> bool - | - | is_subgraph_node(self, *args) - | is_subgraph_node(self, node) -> bool - | - | is_uncollapsed_node(self, *args) - | is_uncollapsed_node(self, node) -> bool - | - | is_user_graph(self, *args) - | is_user_graph(self) -> bool - | - | is_visible_node(self, *args) - | is_visible_node(self, node) -> bool - | - | node_qty(self, *args) - | node_qty(self) -> int - | - | npred(self, *args) - | npred(self, b) -> int - | - | nrect(self, *args) - | nrect(self, n) -> rect_t - | nrect(self, n) -> rect_t - | - | nsucc(self, *args) - | nsucc(self, b) -> int - | - | pred(self, *args) - | pred(self, b, i) -> int - | - | predset(self, *args) - | predset(self, b) -> intvec_t const & - | - | reset(self, *args) - | reset(self) - | - | set_custom_layout(self, *args) - | set_custom_layout(self) - | - | set_deleted_node(self, *args) - | set_deleted_node(self, node) - | - | set_edge(self, *args) - | set_edge(self, e, ei) -> bool - | - | set_graph_groups(self, *args) - | set_graph_groups(self) - | - | set_node_group(self, *args) - | set_node_group(self, node, group) - | - | size(self, *args) - | size(self) -> int - | - | succ(self, *args) - | succ(self, b, i) -> int - | - | succset(self, *args) - | succset(self, b) -> intvec_t const & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * - | - | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t - | - | gid - | mutable_graph_t_gid_get(self) -> uval_t - | - | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * - | - | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t - | - | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t - | - | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t - | - | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t - | - | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mutable_graph_t> - | delete_mutable_graph_t(self) - -Help on class node_info_t in module ida_graph: - -class node_info_t(__builtin__.object) - | Proxy of C++ node_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> node_info_t - | - | __repr__ = _swig_repr(self) - | - | get_flags_for_valid(self, *args) - | get_flags_for_valid(self) -> uint32 - | - | valid_bg_color(self, *args) - | valid_bg_color(self) -> bool - | - | valid_ea(self, *args) - | valid_ea(self) -> bool - | - | valid_flags(self, *args) - | valid_flags(self) -> bool - | - | valid_frame_color(self, *args) - | valid_frame_color(self) -> bool - | - | valid_text(self, *args) - | valid_text(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t - | - | ea - | node_info_t_ea_get(self) -> ea_t - | - | flags - | node_info_t_flags_get(self) -> uint32 - | - | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t - | - | text - | node_info_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_node_info_t> - | delete_node_info_t(self) - -Help on class node_layout_t in module ida_graph: - -class node_layout_t(__builtin__.object) - | Proxy of C++ qvector< rect_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> rect_t - | - | __init__(self, *args) - | __init__(self) -> node_layout_t - | __init__(self, x) -> node_layout_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> rect_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> rect_t - | begin(self) -> rect_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> rect_t - | end(self) -> rect_t - | - | erase(self, *args) - | erase(self, it) -> rect_t - | erase(self, first, last) -> rect_t - | - | extract(self, *args) - | extract(self) -> rect_t - | - | find(self, *args) - | find(self, x) -> rect_t - | find(self, x) -> rect_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=rect_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> rect_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> rect_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_node_layout_t> - | delete_node_layout_t(self) - -Help on class node_ordering_t in module ida_graph: - -class node_ordering_t(__builtin__.object) - | Proxy of C++ node_ordering_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> node_ordering_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | node(self, *args) - | node(self, _order) -> int - | - | resize(self, *args) - | resize(self, n) - | - | set(self, *args) - | set(self, _node, num) - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_node_ordering_t> - | delete_node_ordering_t(self) - -Help on class point_t in module ida_graph: - -class point_t(__builtin__.object) - | Proxy of C++ point_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> point_t - | __init__(self, _x, _y) -> point_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, r) -> point_t - | - | negate(self, *args) - | negate(self) - | - | sub(self, *args) - | sub(self, r) -> point_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | point_t_x_get(self) -> int - | - | y - | point_t_y_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_point_t> - | delete_point_t(self) - -Help on class pointseq_t in module ida_graph: - -class pointseq_t(pointvec_t) - | Proxy of C++ pointseq_t class. - | - | Method resolution order: - | pointseq_t - | pointvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> pointseq_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_pointseq_t> - | delete_pointseq_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from pointvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> point_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> point_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> point_t - | begin(self) -> point_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> point_t - | end(self) -> point_t - | - | erase(self, *args) - | erase(self, it) -> point_t - | erase(self, first, last) -> point_t - | - | extract(self, *args) - | extract(self) -> point_t - | - | find(self, *args) - | find(self, x) -> point_t - | find(self, x) -> point_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=point_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> point_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> point_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from pointvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class pointvec_t in module ida_graph: - -class pointvec_t(__builtin__.object) - | Proxy of C++ qvector< point_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> point_t - | - | __init__(self, *args) - | __init__(self) -> pointvec_t - | __init__(self, x) -> pointvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> point_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> point_t - | begin(self) -> point_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> point_t - | end(self) -> point_t - | - | erase(self, *args) - | erase(self, it) -> point_t - | erase(self, first, last) -> point_t - | - | extract(self, *args) - | extract(self) -> point_t - | - | find(self, *args) - | find(self, x) -> point_t - | find(self, x) -> point_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=point_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> point_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> point_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_pointvec_t> - | delete_pointvec_t(self) - -Help on function pyg_close in module ida_graph: - -pyg_close(*args) - pyg_close(_self) - -Help on function pyg_select_node in module ida_graph: - -pyg_select_node(*args) - pyg_select_node(_self, nid) - -Help on function pyg_show in module ida_graph: - -pyg_show(*args) - pyg_show(_self) -> bool - -Help on class rect_t in module ida_graph: - -class rect_t(__builtin__.object) - | Proxy of C++ rect_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> rect_t - | __init__(self, l, t, r, b) -> rect_t - | __init__(self, p0, p1) -> rect_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | area(self, *args) - | area(self) -> int - | - | bottomright(self, *args) - | bottomright(self) -> point_t - | - | center(self, *args) - | center(self) -> point_t - | - | contains(self, *args) - | contains(self, p) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | grow(self, *args) - | grow(self, delta) - | - | height(self, *args) - | height(self) -> int - | - | intersect(self, *args) - | intersect(self, r) - | - | is_intersection_empty(self, *args) - | is_intersection_empty(self, r) -> bool - | - | make_union(self, *args) - | make_union(self, r) - | - | move_by(self, *args) - | move_by(self, p) - | - | move_to(self, *args) - | move_to(self, p) - | - | topleft(self, *args) - | topleft(self) -> point_t - | - | width(self, *args) - | width(self) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bottom - | rect_t_bottom_get(self) -> int - | - | left - | rect_t_left_get(self) -> int - | - | right - | rect_t_right_get(self) -> int - | - | thisown - | The membership flag - | - | top - | rect_t_top_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_rect_t> - | delete_rect_t(self) - -Help on function refresh_viewer in module ida_graph: - -refresh_viewer(*args) - refresh_viewer(gv) - - - Redraw the graph in the given view. - - - @param gv (C++: graph_viewer_t *) - -Help on class row_info_t in module ida_graph: - -class row_info_t(__builtin__.object) - | Proxy of C++ row_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> row_info_t - | - | __repr__ = _swig_repr(self) - | - | height(self, *args) - | height(self) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bottom - | row_info_t_bottom_get(self) -> int - | - | nodes - | row_info_t_nodes_get(self) -> intvec_t * - | - | thisown - | The membership flag - | - | top - | row_info_t_top_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_row_info_t> - | delete_row_info_t(self) - -Help on class screen_graph_selection_base_t in module ida_graph: - -class screen_graph_selection_base_t(__builtin__.object) - | Proxy of C++ qvector< selection_item_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> selection_item_t - | - | __init__(self, *args) - | __init__(self) -> screen_graph_selection_base_t - | __init__(self, x) -> screen_graph_selection_base_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> selection_item_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> selection_item_t - | begin(self) -> selection_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> selection_item_t - | end(self) -> selection_item_t - | - | erase(self, *args) - | erase(self, it) -> selection_item_t - | erase(self, first, last) -> selection_item_t - | - | extract(self, *args) - | extract(self) -> selection_item_t - | - | find(self, *args) - | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=selection_item_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> selection_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> selection_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_screen_graph_selection_ba... - | delete_screen_graph_selection_base_t(self) - -Help on class screen_graph_selection_t in module ida_graph: - -class screen_graph_selection_t(screen_graph_selection_base_t) - | Proxy of C++ screen_graph_selection_t class. - | - | Method resolution order: - | screen_graph_selection_t - | screen_graph_selection_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> screen_graph_selection_t - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, s) - | - | add_node(self, *args) - | add_node(self, node) - | - | add_point(self, *args) - | add_point(self, e, idx) - | - | del_node(self, *args) - | del_node(self, node) - | - | del_point(self, *args) - | del_point(self, e, idx) - | - | has(self, *args) - | has(self, item) -> bool - | - | items_count(self, *args) - | items_count(self, look_for_nodes) -> size_t - | - | nodes_count(self, *args) - | nodes_count(self) -> size_t - | - | points_count(self, *args) - | points_count(self) -> size_t - | - | sub(self, *args) - | sub(self, s) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_screen_graph_selection_t> - | delete_screen_graph_selection_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from screen_graph_selection_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> selection_item_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> selection_item_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> selection_item_t - | begin(self) -> selection_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> selection_item_t - | end(self) -> selection_item_t - | - | erase(self, *args) - | erase(self, it) -> selection_item_t - | erase(self, first, last) -> selection_item_t - | - | extract(self, *args) - | extract(self) -> selection_item_t - | - | find(self, *args) - | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=selection_item_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> selection_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> selection_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from screen_graph_selection_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class selection_item_t in module ida_graph: - -class selection_item_t(__builtin__.object) - | Proxy of C++ selection_item_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> selection_item_t - | __init__(self, n) -> selection_item_t - | __init__(self, _elp) -> selection_item_t - | __init__(self, e, idx) -> selection_item_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t - | - | is_node - | selection_item_t_is_node_get(self) -> bool - | - | node - | selection_item_t_node_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_selection_item_t> - | delete_selection_item_t(self) - -Help on function set_node_info in module ida_graph: - -set_node_info(*args) - set_node_info(gid, node, ni, flags) - - - Set node info. - - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) - -Help on function set_viewer_graph in module ida_graph: - -set_viewer_graph(*args) - set_viewer_graph(gv, g) - - - Set the underlying graph object for the given viewer. - - - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) - -Help on class user_graph_place_t in module ida_graph: - -class user_graph_place_t(__builtin__.object) - | Proxy of C++ user_graph_place_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | node - | user_graph_place_t_node_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_graph_place_t> - | delete_user_graph_place_t(self) - -Help on function viewer_attach_menu_item in module ida_graph: - -viewer_attach_menu_item(*args) - viewer_attach_menu_item(g, name) -> bool - - - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. - - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) - @return: success - -Help on function viewer_center_on in module ida_graph: - -viewer_center_on(*args) - viewer_center_on(gv, node) - - - Center the graph view on the given node. - - - @param gv (C++: graph_viewer_t *) - @param node (C++: int) - -Help on function viewer_create_groups in module ida_graph: - -viewer_create_groups(*args) - viewer_create_groups(gv, out_group_nodes, gi) -> bool - - - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around mutable_graph_t::create_group that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) - -Help on function viewer_del_node_info in module ida_graph: - -viewer_del_node_info(*args) - viewer_del_node_info(gv, n) - - - Delete node info for node in given viewer (see 'del_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - -Help on function viewer_delete_groups in module ida_graph: - -viewer_delete_groups(*args) - viewer_delete_groups(gv, groups, new_current=-1) -> bool - - - Wrapper around mutable_graph_t::delete_group. This function will:clone - the current graphattempt deleting the groups in that new graphif - successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) - -Help on function viewer_fit_window in module ida_graph: - -viewer_fit_window(*args) - viewer_fit_window(gv) - - - Fit graph viewer to its parent form. - - - @param gv (C++: graph_viewer_t *) - -Help on function viewer_get_curnode in module ida_graph: - -viewer_get_curnode(*args) - viewer_get_curnode(gv) -> int - - - Get number of currently selected node (-1 if none) - - - @param gv (C++: graph_viewer_t *) - -Help on function viewer_get_gli in module ida_graph: - -viewer_get_gli(*args) - viewer_get_gli(out, gv, flags=0) -> bool - - - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) - -Help on function viewer_get_node_info in module ida_graph: - -viewer_get_node_info(*args) - viewer_get_node_info(gv, out, n) -> bool - - - Get node info for node in given viewer (see 'get_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) - -Help on function viewer_get_selection in module ida_graph: - -viewer_get_selection(*args) - viewer_get_selection(gv, sgs) -> bool - - - Get currently selected items for graph viewer. - - - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) - -Help on function viewer_set_gli in module ida_graph: - -viewer_set_gli(*args) - viewer_set_gli(gv, gli, flags=0) - - - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) - -Help on function viewer_set_groups_visibility in module ida_graph: - -viewer_set_groups_visibility(*args) - viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool - - - Wrapper around mutable_graph_t::change_visibility. This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) - -Help on function viewer_set_node_info in module ida_graph: - -viewer_set_node_info(*args) - viewer_set_node_info(gv, n, ni, flags) - - - Set node info for node in given viewer (see 'set_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) - -Help on function viewer_set_titlebar_height in module ida_graph: - -viewer_set_titlebar_height(*args) - viewer_set_titlebar_height(gv, height) -> int - - - Set height of node title bars ( 'grcode_set_titlebar_height' ) - - - @param gv (C++: graph_viewer_t *) - @param height (C++: int) - -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER -""" -the gli should be set/get as center -""" - -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" - 'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" - 'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" - 'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" - 'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" - 'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === -Help on class DecompilationFailure in module ida_hexrays: - -class DecompilationFailure(exceptions.Exception) - | Raised on a decompilation error. - | - | The associated hexrays_failure_t object is stored in the - | 'info' member of this exception. - | - | Method resolution order: - | DecompilationFailure - | exceptions.Exception - | exceptions.BaseException - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, info) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from exceptions.Exception: - | - | __new__ = <built-in method __new__ of type object> - | T.__new__(S, ...) -> a new object with type S, a subtype of T - | - | ---------------------------------------------------------------------- - | Methods inherited from exceptions.BaseException: - | - | __delattr__(...) - | x.__delattr__('name') <==> del x.name - | - | __getattribute__(...) - | x.__getattribute__('name') <==> x.name - | - | __getitem__(...) - | x.__getitem__(y) <==> x[y] - | - | __getslice__(...) - | x.__getslice__(i, j) <==> x[i:j] - | - | Use of negative indices is not supported. - | - | __reduce__(...) - | - | __repr__(...) - | x.__repr__() <==> repr(x) - | - | __setattr__(...) - | x.__setattr__('name', value) <==> x.name = value - | - | __setstate__(...) - | - | __str__(...) - | x.__str__() <==> str(x) - | - | __unicode__(...) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from exceptions.BaseException: - | - | __dict__ - | - | args - | - | message - -Help on class Hexrays_Hooks in module ida_hexrays: - -class Hexrays_Hooks(__builtin__.object) - | Proxy of C++ Hexrays_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> Hexrays_Hooks - | - | __repr__ = _swig_repr(self) - | - | close_pseudocode(self, *args) - | close_pseudocode(self, vu) -> int - | - | cmt_changed(self, *args) - | cmt_changed(self, cfunc, loc, cmt) -> int - | - | combine(self, *args) - | combine(self, blk, insn) -> int - | - | create_hint(self, *args) - | create_hint(self, vu) -> PyObject * - | - | curpos(self, *args) - | curpos(self, vu) -> int - | - | double_click(self, *args) - | double_click(self, vu, shift_state) -> int - | - | flowchart(self, *args) - | flowchart(self, fc) -> int - | - | func_printed(self, *args) - | func_printed(self, cfunc) -> int - | - | glbopt(self, *args) - | glbopt(self, mba) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | interr(self, *args) - | interr(self, errcode) -> int - | - | keyboard(self, *args) - | keyboard(self, vu, key_code, shift_state) -> int - | - | locopt(self, *args) - | locopt(self, mba) -> int - | - | lvar_cmt_changed(self, *args) - | lvar_cmt_changed(self, vu, v, cmt) -> int - | - | lvar_mapping_changed(self, *args) - | lvar_mapping_changed(self, vu, frm, to) -> int - | - | lvar_name_changed(self, *args) - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | - | lvar_type_changed(self, *args) - | lvar_type_changed(self, vu, v, tinfo) -> int - | - | maturity(self, *args) - | maturity(self, cfunc, new_maturity) -> int - | - | microcode(self, *args) - | microcode(self, mba) -> int - | - | open_pseudocode(self, *args) - | open_pseudocode(self, vu) -> int - | - | populating_popup(self, *args) - | populating_popup(self, widget, popup_handle, vu) -> int - | - | prealloc(self, *args) - | prealloc(self, mba) -> int - | - | preoptimized(self, *args) - | preoptimized(self, mba) -> int - | - | print_func(self, *args) - | print_func(self, cfunc, vp) -> int - | - | prolog(self, *args) - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | - | refresh_pseudocode(self, *args) - | refresh_pseudocode(self, vu) -> int - | - | resolve_stkaddrs(self, *args) - | resolve_stkaddrs(self, mba) -> int - | - | right_click(self, *args) - | right_click(self, vu) -> int - | - | stkpnts(self, *args) - | stkpnts(self, mba, _sps) -> int - | - | structural(self, *args) - | structural(self, ct) -> int - | - | switch_pseudocode(self, *args) - | switch_pseudocode(self, vu) -> int - | - | text_ready(self, *args) - | text_ready(self, vu) -> int - | - | unhook(self, *args) - | unhook(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_Hexrays_Hooks> - | delete_Hexrays_Hooks(self) - -Help on class __cbhooks_t in module ida_hexrays: - -class __cbhooks_t(Hexrays_Hooks) - | Method resolution order: - | __cbhooks_t - | Hexrays_Hooks - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, callback) - | - | close_pseudocode(self, *args) - | - | create_hint(self, *args) - | - | curpos(self, *args) - | - | double_click(self, *args) - | - | func_printed(self, *args) - | - | interr(self, *args) - | - | keyboard(self, *args) - | - | maturity(self, *args) - | - | open_pseudocode(self, *args) - | - | populating_popup(self, *args) - | - | print_func(self, *args) - | - | refresh_pseudocode(self, *args) - | - | right_click(self, *args) - | - | switch_pseudocode(self, *args) - | - | text_ready(self, *args) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | instances = [] - | - | ---------------------------------------------------------------------- - | Methods inherited from Hexrays_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | cmt_changed(self, *args) - | cmt_changed(self, cfunc, loc, cmt) -> int - | - | combine(self, *args) - | combine(self, blk, insn) -> int - | - | flowchart(self, *args) - | flowchart(self, fc) -> int - | - | glbopt(self, *args) - | glbopt(self, mba) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | locopt(self, *args) - | locopt(self, mba) -> int - | - | lvar_cmt_changed(self, *args) - | lvar_cmt_changed(self, vu, v, cmt) -> int - | - | lvar_mapping_changed(self, *args) - | lvar_mapping_changed(self, vu, frm, to) -> int - | - | lvar_name_changed(self, *args) - | lvar_name_changed(self, vu, v, name, is_user_name) -> int - | - | lvar_type_changed(self, *args) - | lvar_type_changed(self, vu, v, tinfo) -> int - | - | microcode(self, *args) - | microcode(self, mba) -> int - | - | prealloc(self, *args) - | prealloc(self, mba) -> int - | - | preoptimized(self, *args) - | preoptimized(self, mba) -> int - | - | prolog(self, *args) - | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int - | - | resolve_stkaddrs(self, *args) - | resolve_stkaddrs(self, mba) -> int - | - | stkpnts(self, *args) - | stkpnts(self, mba, _sps) -> int - | - | structural(self, *args) - | structural(self, ct) -> int - | - | unhook(self, *args) - | unhook(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from Hexrays_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from Hexrays_Hooks: - | - | __swig_destroy__ = <built-in function delete_Hexrays_Hooks> - | delete_Hexrays_Hooks(self) - -Help on function _call_with_transferrable_ownership in module ida_hexrays: - -_call_with_transferrable_ownership(fun, *args) - # Object ownership - -Help on function _kludge_use_TPopupMenu in module ida_hexrays: - -_kludge_use_TPopupMenu(*args) - _kludge_use_TPopupMenu(m) - -Help on function _ll_call_helper in module ida_hexrays: - -_ll_call_helper(*args) - _ll_call_helper(rettype, args, format) -> cexpr_t - -Help on function _ll_create_helper in module ida_hexrays: - -_ll_create_helper(*args) - _ll_create_helper(standalone, type, format) -> cexpr_t - -Help on function _ll_dereference in module ida_hexrays: - -_ll_dereference(*args) - _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t - -Help on function _ll_lnot in module ida_hexrays: - -_ll_lnot(*args) - _ll_lnot(e) -> cexpr_t - -Help on function _ll_make_num in module ida_hexrays: - -_ll_make_num(*args) - _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t - -Help on function _ll_make_ref in module ida_hexrays: - -_ll_make_ref(*args) - _ll_make_ref(e) -> cexpr_t - -Help on function _ll_new_block in module ida_hexrays: - -_ll_new_block(*args) - _ll_new_block() -> cinsn_t - -Help on function _map_as_dict in module ida_hexrays: - -_map_as_dict(maptype, name, keytype, valuetype) - # dictify all dict-like types - -Help on function accepts_small_udts in module ida_hexrays: - -accepts_small_udts(*args) - accepts_small_udts(op) -> bool - - - Is the operator allowed on small structure or union? - - - @param op (C++: ctype_t) - -Help on function accepts_udts in module ida_hexrays: - -accepts_udts(*args) - accepts_udts(op) -> bool - -Help on function arglocs_overlap in module ida_hexrays: - -arglocs_overlap(*args) - arglocs_overlap(loc1, w1, loc2, w2) -> bool - - - Do two arglocs overlap? - - - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) - -Help on class array_of_bitsets in module ida_hexrays: - -class array_of_bitsets(__builtin__.object) - | Proxy of C++ qvector< bitset_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> bitset_t - | - | __init__(self, *args) - | __init__(self) -> array_of_bitsets - | __init__(self, x) -> array_of_bitsets - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> bitset_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> bitset_t - | begin(self) -> bitset_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bitset_t - | end(self) -> bitset_t - | - | erase(self, *args) - | erase(self, it) -> bitset_t - | erase(self, first, last) -> bitset_t - | - | extract(self, *args) - | extract(self) -> bitset_t - | - | find(self, *args) - | find(self, x) -> bitset_t - | find(self, x) -> bitset_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=bitset_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> bitset_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> bitset_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_array_of_bitsets> - | delete_array_of_bitsets(self) - -Help on class array_of_ivlsets in module ida_hexrays: - -class array_of_ivlsets(__builtin__.object) - | Proxy of C++ qvector< ivlset_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ivlset_t - | - | __init__(self, *args) - | __init__(self) -> array_of_ivlsets - | __init__(self, x) -> array_of_ivlsets - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> ivlset_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ivlset_t - | begin(self) -> ivlset_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ivlset_t - | end(self) -> ivlset_t - | - | erase(self, *args) - | erase(self, it) -> ivlset_t - | erase(self, first, last) -> ivlset_t - | - | extract(self, *args) - | extract(self) -> ivlset_t - | - | find(self, *args) - | find(self, x) -> ivlset_t - | find(self, x) -> ivlset_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ivlset_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ivlset_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ivlset_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_array_of_ivlsets> - | delete_array_of_ivlsets(self) - -Help on function asgop in module ida_hexrays: - -asgop(*args) - asgop(cop) -> ctype_t - - - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - - - @param cop (C++: ctype_t) - -Help on function asgop_revert in module ida_hexrays: - -asgop_revert(*args) - asgop_revert(cop) -> ctype_t - - - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. - -Help on class bit_bound_t in module ida_hexrays: - -class bit_bound_t(__builtin__.object) - | Proxy of C++ bit_bound_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, n=0, s=0) -> bit_bound_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | nbits - | bit_bound_t_nbits_get(self) -> int16 - | - | sbits - | bit_bound_t_sbits_get(self) -> int16 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bit_bound_t> - | delete_bit_bound_t(self) - -Help on class bitset_t in module ida_hexrays: - -class bitset_t(__builtin__.object) - | Proxy of C++ bitset_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> bitset_t - | __init__(self, m) -> bitset_t - | - | __iter__(self) - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __len__ = count(self, *args) - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, bit) -> bool - | add(self, bit, width) -> bool - | add(self, ml) -> bool - | - | back(self, *args) - | back(self) -> int - | - | begin(self, *args) - | begin(self) -> bitset_t::iterator - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | copy(self, *args) - | copy(self, m) -> bitset_t - | - | count(self, *args) - | count(self) -> int - | count(self, bit) -> int - | - | cut_at(self, *args) - | cut_at(self, maxbit) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bitset_t::iterator - | - | fill_with_ones(self, *args) - | fill_with_ones(self, maxbit) - | - | front(self, *args) - | front(self) -> int - | - | has(self, *args) - | has(self, bit) -> bool - | - | has_all(self, *args) - | has_all(self, bit, width) -> bool - | - | has_any(self, *args) - | has_any(self, bit, width) -> bool - | - | has_common(self, *args) - | has_common(self, ml) -> bool - | - | inc(self, *args) - | inc(self, p, n=1) - | - | includes(self, *args) - | includes(self, ml) -> bool - | - | intersect(self, *args) - | intersect(self, ml) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, ml) -> bool - | - | itat(self, *args) - | itat(self, n) -> bitset_t::iterator - | - | itv(self, *args) - | itv(self, it) -> int - | - | last(self, *args) - | last(self) -> int - | - | shift_down(self, *args) - | shift_down(self, shift) - | - | sub(self, *args) - | sub(self, bit) -> bool - | sub(self, bit, width) -> bool - | sub(self, ml) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bitset_t> - | delete_bitset_t(self) - -Help on function block_chains_begin in module ida_hexrays: - -block_chains_begin(*args) - block_chains_begin(set) -> block_chains_iterator_t - - - Get iterator pointing to the beginning of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - -Help on function block_chains_clear in module ida_hexrays: - -block_chains_clear(*args) - block_chains_clear(set) - - - Clear 'block_chains_t' . - - - @param set (C++: block_chains_t *) - -Help on function block_chains_end in module ida_hexrays: - -block_chains_end(*args) - block_chains_end(set) -> block_chains_iterator_t - - - Get iterator pointing to the end of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - -Help on function block_chains_erase in module ida_hexrays: - -block_chains_erase(*args) - block_chains_erase(set, p) - - - Erase current element from 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_find in module ida_hexrays: - -block_chains_find(*args) - block_chains_find(set, val) -> block_chains_iterator_t - - - Find the specified key in set 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) - -Help on function block_chains_free in module ida_hexrays: - -block_chains_free(*args) - block_chains_free(set) - - - Delete 'block_chains_t' instance. - - - @param set (C++: block_chains_t *) - -Help on function block_chains_get in module ida_hexrays: - -block_chains_get(*args) - block_chains_get(p) -> chain_t - - - Get reference to the current set value. - - - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_insert in module ida_hexrays: - -block_chains_insert(*args) - block_chains_insert(set, val) -> block_chains_iterator_t - - - Insert new ( 'chain_t' ) into set 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) - -Help on class block_chains_iterator_t in module ida_hexrays: - -class block_chains_iterator_t(__builtin__.object) - | Proxy of C++ block_chains_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> block_chains_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | block_chains_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_block_chains_iterator_t> - | delete_block_chains_iterator_t(self) - -Help on function block_chains_new in module ida_hexrays: - -block_chains_new(*args) - block_chains_new() -> block_chains_t - - - Create a new 'block_chains_t' instance. - -Help on function block_chains_next in module ida_hexrays: - -block_chains_next(*args) - block_chains_next(p) -> block_chains_iterator_t - - - Move to the next element. - - - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_prev in module ida_hexrays: - -block_chains_prev(*args) - block_chains_prev(p) -> block_chains_iterator_t - - - Move to the previous element. - - - @param p (C++: block_chains_iterator_t) - -Help on function block_chains_size in module ida_hexrays: - -block_chains_size(*args) - block_chains_size(set) -> size_t - - - Get size of 'block_chains_t' . - - - @param set (C++: block_chains_t *) - -Help on class block_chains_t in module ida_hexrays: - -class block_chains_t(__builtin__.object) - | Proxy of C++ block_chains_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> block_chains_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | get_chain(self, *args) - | get_chain(self, k, width=1) -> chain_t - | get_chain(self, k, width=1) -> chain_t - | get_chain(self, ch) -> chain_t - | get_chain(self, ch) -> chain_t - | - | get_reg_chain(self, *args) - | get_reg_chain(self, reg, width=1) -> chain_t - | get_reg_chain(self, reg, width=1) -> chain_t - | - | get_stk_chain(self, *args) - | get_stk_chain(self, off, width=1) -> chain_t - | get_stk_chain(self, off, width=1) -> chain_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_block_chains_t> - | delete_block_chains_t(self) - -Help on class block_chains_vec_t in module ida_hexrays: - -class block_chains_vec_t(__builtin__.object) - | Proxy of C++ qvector< block_chains_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> block_chains_t - | - | __init__(self, *args) - | __init__(self) -> block_chains_vec_t - | __init__(self, x) -> block_chains_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> block_chains_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> block_chains_t - | begin(self) -> block_chains_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> block_chains_t - | end(self) -> block_chains_t - | - | erase(self, *args) - | erase(self, it) -> block_chains_t - | erase(self, first, last) -> block_chains_t - | - | extract(self, *args) - | extract(self) -> block_chains_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=block_chains_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> block_chains_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> block_chains_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_block_chains_vec_t> - | delete_block_chains_vec_t(self) - -Help on function boundaries_begin in module ida_hexrays: - -boundaries_begin(*args) - boundaries_begin(map) -> boundaries_iterator_t - - - Get iterator pointing to the beginning of boundaries_t. - - - @param map (C++: const boundaries_t *) - -Help on function boundaries_clear in module ida_hexrays: - -boundaries_clear(*args) - boundaries_clear(map) - - - Clear boundaries_t. - - - @param map (C++: boundaries_t *) - -Help on function boundaries_end in module ida_hexrays: - -boundaries_end(*args) - boundaries_end(map) -> boundaries_iterator_t - - - Get iterator pointing to the end of boundaries_t. - - - @param map (C++: const boundaries_t *) - -Help on function boundaries_erase in module ida_hexrays: - -boundaries_erase(*args) - boundaries_erase(map, p) - - - Erase current element from boundaries_t. - - - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_find in module ida_hexrays: - -boundaries_find(*args) - boundaries_find(map, key) -> boundaries_iterator_t - - - Find the specified key in boundaries_t. - - - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) - -Help on function boundaries_first in module ida_hexrays: - -boundaries_first(*args) - boundaries_first(p) -> cinsn_t - - - Get reference to the current map key. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_free in module ida_hexrays: - -boundaries_free(*args) - boundaries_free(map) - - - Delete boundaries_t instance. - - - @param map (C++: boundaries_t *) - -Help on function boundaries_insert in module ida_hexrays: - -boundaries_insert(*args) - boundaries_insert(map, key, val) -> boundaries_iterator_t - - - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - - - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) - -Help on class boundaries_iterator_t in module ida_hexrays: - -class boundaries_iterator_t(__builtin__.object) - | Proxy of C++ boundaries_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> boundaries_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | boundaries_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_boundaries_iterator_t> - | delete_boundaries_iterator_t(self) - -Help on function boundaries_new in module ida_hexrays: - -boundaries_new(*args) - boundaries_new() -> boundaries_t - - - Create a new boundaries_t instance. - -Help on function boundaries_next in module ida_hexrays: - -boundaries_next(*args) - boundaries_next(p) -> boundaries_iterator_t - - - Move to the next element. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_prev in module ida_hexrays: - -boundaries_prev(*args) - boundaries_prev(p) -> boundaries_iterator_t - - - Move to the previous element. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_second in module ida_hexrays: - -boundaries_second(*args) - boundaries_second(p) -> rangeset_t - - - Get reference to the current map value. - - - @param p (C++: boundaries_iterator_t) - -Help on function boundaries_size in module ida_hexrays: - -boundaries_size(*args) - boundaries_size(map) -> size_t - - - Get size of boundaries_t. - - - @param map (C++: boundaries_t *) - -Help on class boundaries_t in module ida_hexrays: - -class boundaries_t(__builtin__.object) - | Proxy of C++ std::map< cinsn_t *,rangeset_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> boundaries_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> rangeset_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = <built-in function boundaries_begin> - | boundaries_begin(map) -> boundaries_iterator_t - | - | __clear = <built-in function boundaries_clear> - | boundaries_clear(map) - | - | __end = <built-in function boundaries_end> - | boundaries_end(map) -> boundaries_iterator_t - | - | __erase = <built-in function boundaries_erase> - | boundaries_erase(map, p) - | - | __find = <built-in function boundaries_find> - | boundaries_find(map, key) -> boundaries_iterator_t - | - | __first = <built-in function boundaries_first> - | boundaries_first(p) -> cinsn_t - | - | __insert = <built-in function boundaries_insert> - | boundaries_insert(map, key, val) -> boundaries_iterator_t - | - | __next = <built-in function boundaries_next> - | boundaries_next(p) -> boundaries_iterator_t - | - | __second = <built-in function boundaries_second> - | boundaries_second(p) -> rangeset_t - | - | __size = <built-in function boundaries_size> - | boundaries_size(map) -> size_t - | - | __swig_destroy__ = <built-in function delete_boundaries_t> - | delete_boundaries_t(self) - | - | keytype = <class 'ida_hexrays.cinsn_t'> - | Proxy of C++ cinsn_t class. - | - | valuetype = <class 'ida_range.rangeset_t'> - | Proxy of C++ rangeset_t class. - -Help on function call_helper in module ida_hexrays: - -call_helper(rettype, args, *rest) - -Help on class carg_t in module ida_hexrays: - -class carg_t(cexpr_t) - | Proxy of C++ carg_t class. - | - | Method resolution order: - | carg_t - | cexpr_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> carg_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | consume_cexpr(self, *args) - | consume_cexpr(self, e) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | formal_type - | carg_t_formal_type_get(self) -> tinfo_t - | - | is_vararg - | carg_t_is_vararg_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_carg_t> - | delete_carg_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cexpr_t: - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_a(self, *args) - | _get_a(self) -> carglist_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char * - | - | _get_insn(self, *args) - | _get_insn(self) -> cinsn_t - | - | _get_m(self, *args) - | _get_m(self) -> int - | - | _get_n(self, *args) - | _get_n(self) -> cnumber_t - | - | _get_obj_ea(self, *args) - | _get_obj_ea(self) -> ea_t - | - | _get_ptrsize(self, *args) - | _get_ptrsize(self) -> int - | - | _get_refwidth(self, *args) - | _get_refwidth(self) -> int - | - | _get_string(self, *args) - | _get_string(self) -> char * - | - | _get_x(self, *args) - | _get_x(self) -> cexpr_t - | - | _get_y(self, *args) - | _get_y(self) -> cexpr_t - | - | _get_z(self, *args) - | _get_z(self) -> cexpr_t - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_insn(self, *args) - | _set_insn(self, _v) - | - | _set_m(self, *args) - | _set_m(self, _v) - | - | _set_n(self, *args) - | _set_n(self, _v) - | - | _set_obj_ea(self, *args) - | _set_obj_ea(self, _v) - | - | _set_ptrsize(self, *args) - | _set_ptrsize(self, _v) - | - | _set_refwidth(self, *args) - | _set_refwidth(self, _v) - | - | _set_string(self, *args) - | _set_string(self, _v) - | - | _set_x(self, *args) - | _set_x(self, _v) - | - | _set_y(self, *args) - | _set_y(self, _v) - | - | _set_z(self, *args) - | _set_z(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cexpr_t - | - | calc_type(self, *args) - | calc_type(self, recursive) - | - | cleanup(self, *args) - | cleanup(self) - | - | contains_comma(self, *args) - | contains_comma(self, times=1) -> bool - | - | contains_comma_or_insn_or_label(self, *args) - | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, times=1) -> bool - | - | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool - | - | contains_operator(self, *args) - | contains_operator(self, needed_op, times=1) -> bool - | - | cpadone(self, *args) - | cpadone(self) -> bool - | - | equal_effect(self, *args) - | equal_effect(self, r) -> bool - | - | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t - | - | find_op(self, *args) - | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t - | - | get_1num_op(self, *args) - | get_1num_op(self, o1, o2) -> bool - | - | get_const_value(self, *args) - | get_const_value(self) -> bool - | - | get_high_nbit_bound(self, *args) - | get_high_nbit_bound(self) -> bit_bound_t - | - | get_low_nbit_bound(self, *args) - | get_low_nbit_bound(self) -> int - | - | get_ptr_or_array(self, *args) - | get_ptr_or_array(self) -> cexpr_t - | - | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t - | - | get_v(self, *args) - | get_v(self) -> var_ref_t - | - | has_side_effects(self, *args) - | has_side_effects(self) -> bool - | - | is_call_arg_of(self, *args) - | is_call_arg_of(self, parent) -> bool - | - | is_call_object_of(self, *args) - | is_call_object_of(self, parent) -> bool - | - | is_child_of(self, *args) - | is_child_of(self, parent) -> bool - | - | is_const_value(self, *args) - | is_const_value(self, _v) -> bool - | - | is_cstr(self, *args) - | is_cstr(self) -> bool - | - | is_fpop(self, *args) - | is_fpop(self) -> bool - | - | is_jumpout(self, *args) - | is_jumpout(self) -> bool - | - | is_negative_const(self, *args) - | is_negative_const(self) -> bool - | - | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool - | - | is_nice_expr(self, *args) - | is_nice_expr(self) -> bool - | - | is_non_negative_const(self, *args) - | is_non_negative_const(self) -> bool - | - | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool - | - | is_odd_lvalue(self, *args) - | is_odd_lvalue(self) -> bool - | - | is_type_signed(self, *args) - | is_type_signed(self) -> bool - | - | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_zero_const(self, *args) - | is_zero_const(self) -> bool - | - | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool - | - | numval(self, *args) - | numval(self) -> uint64 - | - | print1(self, *args) - | print1(self, func) - | - | put_number(self, *args) - | put_number(self, func, value, nbytes, sign=no_sign) - | - | requires_lvalue(self, *args) - | requires_lvalue(self, child) -> bool - | - | set_cpadone(self, *args) - | set_cpadone(self) - | - | set_v(self, *args) - | set_v(self, v) - | - | set_vftable(self, *args) - | set_vftable(self) - | - | swap(self, *args) - | swap(self, r) - | - | theother(self, *args) - | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cexpr_t: - | - | a - | - | exflags - | cexpr_t_exflags_get(self) -> uint32 - | - | fpc - | - | helper - | - | insn - | - | m - | - | n - | - | obj_ea - | - | operands - | return a dictionary with the operands of a cexpr_t. - | - | opname - | - | ptrsize - | - | refwidth - | - | string - | - | type - | cexpr_t_type_get(self) -> tinfo_t - | - | v - | - | x - | - | y - | - | z - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from cexpr_t: - | - | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cexpr - | citem_t_cexpr_get(self) -> cexpr_t - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on class carglist_t in module ida_hexrays: - -class carglist_t(qvector_carg_t) - | Proxy of C++ carglist_t class. - | - | Method resolution order: - | carglist_t - | qvector_carg_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> carglist_t - | __init__(self, ftype, fl=0) -> carglist_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | carglist_t_flags_get(self) -> int - | - | functype - | carglist_t_functype_get(self) -> tinfo_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_carglist_t> - | delete_carglist_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_carg_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> carg_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> carg_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> carg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> carg_t - | begin(self) -> carg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> carg_t - | end(self) -> carg_t - | - | erase(self, *args) - | erase(self, it) -> carg_t - | erase(self, first, last) -> carg_t - | - | extract(self, *args) - | extract(self) -> carg_t - | - | find(self, *args) - | find(self, x) -> carg_t - | find(self, x) -> carg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=carg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> carg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> carg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_carg_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class casm_t in module ida_hexrays: - -class casm_t(ida_pro.eavec_t)↗ - | Proxy of C++ casm_t class. - | - | Method resolution order: - | casm_t - | ida_pro.eavec_t↗ - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, ea) -> casm_t - | __init__(self, r) -> casm_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | one_insn(self, *args) - | one_insn(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_casm_t> - | delete_casm_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_pro.eavec_t:↗ - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | begin(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | end(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | - | erase(self, *args) - | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | - | extract(self, *args) - | extract(self) -> unsigned-ea-like-numeric-type *↗ - | - | find(self, *args) - | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_pro.eavec_t:↗ - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class cblock_t in module ida_hexrays: - -class cblock_t(qlist_cinsn_t) - | Proxy of C++ cblock_t class. - | - | Method resolution order: - | cblock_t - | qlist_cinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cblock_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cblock_t> - | delete_cblock_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> cinsn_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) - | erase(self, p) - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | insert(self, p) -> qlist< cinsn_t >::iterator - | insert(self, i, v) - | insert(self, p, x) -> qlist_cinsn_t_iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | pop_front(self, *args) - | pop_front(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> cinsn_t - | - | push_front(self, *args) - | push_front(self, x) - | - | rbegin(self, *args) - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) - | remove(self, v) -> bool - | - | rend(self, *args) - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, x) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class ccase_t in module ida_hexrays: - -class ccase_t(cinsn_t) - | Proxy of C++ ccase_t class. - | - | Method resolution order: - | ccase_t - | cinsn_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ccase_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | size(self, *args) - | size(self) -> size_t - | - | value(self, *args) - | value(self, i) -> uint64 const & - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | values - | ccase_t_values_get(self) -> ulonglongvec_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ccase_t> - | delete_ccase_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cinsn_t: - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_casm(self, *args) - | _get_casm(self) -> casm_t - | - | _get_cblock(self, *args) - | _get_cblock(self) -> cblock_t - | - | _get_cdo(self, *args) - | _get_cdo(self) -> cdo_t - | - | _get_cexpr(self, *args) - | _get_cexpr(self) -> cexpr_t - | - | _get_cfor(self, *args) - | _get_cfor(self) -> cfor_t - | - | _get_cgoto(self, *args) - | _get_cgoto(self) -> cgoto_t - | - | _get_cif(self, *args) - | _get_cif(self) -> cif_t - | - | _get_creturn(self, *args) - | _get_creturn(self) -> creturn_t - | - | _get_cswitch(self, *args) - | _get_cswitch(self) -> cswitch_t - | - | _get_cwhile(self, *args) - | _get_cwhile(self) -> cwhile_t - | - | _print(self, *args) - | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_casm(self, *args) - | _set_casm(self, _v) - | - | _set_cblock(self, *args) - | _set_cblock(self, _v) - | - | _set_cdo(self, *args) - | _set_cdo(self, _v) - | - | _set_cexpr(self, *args) - | _set_cexpr(self, _v) - | - | _set_cfor(self, *args) - | _set_cfor(self, _v) - | - | _set_cgoto(self, *args) - | _set_cgoto(self, _v) - | - | _set_cif(self, *args) - | _set_cif(self, _v) - | - | _set_creturn(self, *args) - | _set_creturn(self, _v) - | - | _set_cswitch(self, *args) - | _set_cswitch(self, _v) - | - | _set_cwhile(self, *args) - | _set_cwhile(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cinsn_t - | - | cleanup(self, *args) - | cleanup(self) - | - | collect_free_breaks(self, *args) - | collect_free_breaks(self, breaks) -> bool - | - | collect_free_continues(self, *args) - | collect_free_continues(self, continues) -> bool - | - | contains_free_break(self, *args) - | contains_free_break(self) -> bool - | - | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, type, times=1) -> bool - | - | create_if(self, *args) - | create_if(self, cnd) -> cif_t - | - | is_epilog(self) - | - | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool - | - | new_insn(self, *args) - | new_insn(self, insn_ea) -> cinsn_t - | - | print1(self, *args) - | print1(self, func) - | - | swap(self, *args) - | swap(self, r) - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Static methods inherited from cinsn_t: - | - | insn_is_epilog(*args) - | insn_is_epilog(insn) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cinsn_t: - | - | casm - | - | cblock - | - | cdo - | - | cexpr - | - | cfor - | - | cgoto - | - | cif - | - | creturn - | - | cswitch - | - | cwhile - | - | details - | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. - | - | opname - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from cinsn_t: - | - | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on class ccases_t in module ida_hexrays: - -class ccases_t(qvector_ccase_t) - | Proxy of C++ ccases_t class. - | - | Method resolution order: - | ccases_t - | qvector_ccase_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ccases_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ccases_t> - | delete_ccases_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_ccase_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ccase_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ccase_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> ccase_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ccase_t - | begin(self) -> ccase_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ccase_t - | end(self) -> ccase_t - | - | erase(self, *args) - | erase(self, it) -> ccase_t - | erase(self, first, last) -> ccase_t - | - | extract(self, *args) - | extract(self) -> ccase_t - | - | find(self, *args) - | find(self, x) -> ccase_t - | find(self, x) -> ccase_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ccase_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ccase_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ccase_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_ccase_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class cdg_insn_iterator_t in module ida_hexrays: - -class cdg_insn_iterator_t(__builtin__.object) - | Proxy of C++ cdg_insn_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> cdg_insn_iterator_t - | __init__(self, r) -> cdg_insn_iterator_t - | - | __repr__ = _swig_repr(self) - | - | dslot_with_xrefs(self, *args) - | dslot_with_xrefs(self) -> bool - | - | has_dslot(self, *args) - | has_dslot(self) -> bool - | - | next(self, *args) - | next(self, ins) -> merror_t - | - | ok(self, *args) - | ok(self) -> bool - | - | start(self, *args) - | start(self, rng) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t - | - | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * - | - | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t - | - | end - | cdg_insn_iterator_t_end_get(self) -> ea_t - | - | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool - | - | is_separate_dslot - | cdg_insn_iterator_t_is_separate_dslot_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cdg_insn_iterator_t> - | delete_cdg_insn_iterator_t(self) - -Help on class cdo_t in module ida_hexrays: - -class cdo_t(cloop_t) - | Proxy of C++ cdo_t class. - | - | Method resolution order: - | cdo_t - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cdo_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cdo_t> - | delete_cdo_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cloop_t: - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cloop_t: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class ceinsn_t in module ida_hexrays: - -class ceinsn_t(__builtin__.object) - | Proxy of C++ ceinsn_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ceinsn_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ceinsn_t> - | delete_ceinsn_t(self) - -Help on function cexpr_operands in module ida_hexrays: - -cexpr_operands(self) - return a dictionary with the operands of a cexpr_t. - -Help on class cexpr_t in module ida_hexrays: - -class cexpr_t(citem_t) - | Proxy of C++ cexpr_t class. - | - | Method resolution order: - | cexpr_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t - | __init__(self, cop, _x, _y) -> cexpr_t - | __init__(self, cop, _x, _y, _z) -> cexpr_t - | __init__(self, r) -> cexpr_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_a(self, *args) - | _get_a(self) -> carglist_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char * - | - | _get_insn(self, *args) - | _get_insn(self) -> cinsn_t - | - | _get_m(self, *args) - | _get_m(self) -> int - | - | _get_n(self, *args) - | _get_n(self) -> cnumber_t - | - | _get_obj_ea(self, *args) - | _get_obj_ea(self) -> ea_t - | - | _get_ptrsize(self, *args) - | _get_ptrsize(self) -> int - | - | _get_refwidth(self, *args) - | _get_refwidth(self) -> int - | - | _get_string(self, *args) - | _get_string(self) -> char * - | - | _get_x(self, *args) - | _get_x(self) -> cexpr_t - | - | _get_y(self, *args) - | _get_y(self) -> cexpr_t - | - | _get_z(self, *args) - | _get_z(self) -> cexpr_t - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_insn(self, *args) - | _set_insn(self, _v) - | - | _set_m(self, *args) - | _set_m(self, _v) - | - | _set_n(self, *args) - | _set_n(self, _v) - | - | _set_obj_ea(self, *args) - | _set_obj_ea(self, _v) - | - | _set_ptrsize(self, *args) - | _set_ptrsize(self, _v) - | - | _set_refwidth(self, *args) - | _set_refwidth(self, _v) - | - | _set_string(self, *args) - | _set_string(self, _v) - | - | _set_x(self, *args) - | _set_x(self, _v) - | - | _set_y(self, *args) - | _set_y(self, _v) - | - | _set_z(self, *args) - | _set_z(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cexpr_t - | - | calc_type(self, *args) - | calc_type(self, recursive) - | - | cleanup(self, *args) - | cleanup(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains_comma(self, *args) - | contains_comma(self, times=1) -> bool - | - | contains_comma_or_insn_or_label(self, *args) - | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, times=1) -> bool - | - | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool - | - | contains_operator(self, *args) - | contains_operator(self, needed_op, times=1) -> bool - | - | cpadone(self, *args) - | cpadone(self) -> bool - | - | equal_effect(self, *args) - | equal_effect(self, r) -> bool - | - | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t - | - | find_op(self, *args) - | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t - | - | get_1num_op(self, *args) - | get_1num_op(self, o1, o2) -> bool - | - | get_const_value(self, *args) - | get_const_value(self) -> bool - | - | get_high_nbit_bound(self, *args) - | get_high_nbit_bound(self) -> bit_bound_t - | - | get_low_nbit_bound(self, *args) - | get_low_nbit_bound(self) -> int - | - | get_ptr_or_array(self, *args) - | get_ptr_or_array(self) -> cexpr_t - | - | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t - | - | get_v(self, *args) - | get_v(self) -> var_ref_t - | - | has_side_effects(self, *args) - | has_side_effects(self) -> bool - | - | is_call_arg_of(self, *args) - | is_call_arg_of(self, parent) -> bool - | - | is_call_object_of(self, *args) - | is_call_object_of(self, parent) -> bool - | - | is_child_of(self, *args) - | is_child_of(self, parent) -> bool - | - | is_const_value(self, *args) - | is_const_value(self, _v) -> bool - | - | is_cstr(self, *args) - | is_cstr(self) -> bool - | - | is_fpop(self, *args) - | is_fpop(self) -> bool - | - | is_jumpout(self, *args) - | is_jumpout(self) -> bool - | - | is_negative_const(self, *args) - | is_negative_const(self) -> bool - | - | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool - | - | is_nice_expr(self, *args) - | is_nice_expr(self) -> bool - | - | is_non_negative_const(self, *args) - | is_non_negative_const(self) -> bool - | - | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool - | - | is_odd_lvalue(self, *args) - | is_odd_lvalue(self) -> bool - | - | is_type_signed(self, *args) - | is_type_signed(self) -> bool - | - | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_zero_const(self, *args) - | is_zero_const(self) -> bool - | - | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool - | - | numval(self, *args) - | numval(self) -> uint64 - | - | print1(self, *args) - | print1(self, func) - | - | put_number(self, *args) - | put_number(self, func, value, nbytes, sign=no_sign) - | - | requires_lvalue(self, *args) - | requires_lvalue(self, child) -> bool - | - | set_cpadone(self, *args) - | set_cpadone(self) - | - | set_v(self, *args) - | set_v(self, v) - | - | set_vftable(self, *args) - | set_vftable(self) - | - | swap(self, *args) - | swap(self, r) - | - | theother(self, *args) - | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | a - | - | exflags - | cexpr_t_exflags_get(self) -> uint32 - | - | fpc - | - | helper - | - | insn - | - | m - | - | n - | - | obj_ea - | - | operands - | return a dictionary with the operands of a cexpr_t. - | - | opname - | - | ptrsize - | - | refwidth - | - | string - | - | thisown - | The membership flag - | - | type - | cexpr_t_type_get(self) -> tinfo_t - | - | v - | - | x - | - | y - | - | z - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cexpr_t> - | delete_cexpr_t(self) - | - | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cexpr - | citem_t_cexpr_get(self) -> cexpr_t - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on class cfor_t in module ida_hexrays: - -class cfor_t(cloop_t) - | Proxy of C++ cfor_t class. - | - | Method resolution order: - | cfor_t - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cfor_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | init - | cfor_t_init_get(self) -> cexpr_t - | - | step - | cfor_t_step_get(self) -> cexpr_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cfor_t> - | delete_cfor_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cloop_t: - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cloop_t: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class cfunc_parentee_t in module ida_hexrays: - -class cfunc_parentee_t(ctree_parentee_t) - | Proxy of C++ cfunc_parentee_t class. - | - | Method resolution order: - | cfunc_parentee_t - | ctree_parentee_t - | ctree_visitor_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, f, post=False) -> cfunc_parentee_t - | - | __repr__ = _swig_repr(self) - | - | calc_rvalue_type(self, *args) - | calc_rvalue_type(self, target, e) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | func - | cfunc_parentee_t_func_get(self) -> cfunc_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cfunc_parentee_t> - | delete_cfunc_parentee_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ctree_parentee_t: - | - | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool - | - | ---------------------------------------------------------------------- - | Methods inherited from ctree_visitor_t: - | - | apply_to(self, *args) - | apply_to(self, item, parent) -> int - | - | apply_to_exprs(self, *args) - | apply_to_exprs(self, item, parent) -> int - | - | clr_prune(self, *args) - | clr_prune(self) - | - | clr_restart(self, *args) - | clr_restart(self) - | - | is_postorder(self, *args) - | is_postorder(self) -> bool - | - | leave_expr(self, *args) - | leave_expr(self, arg0) -> int - | - | leave_insn(self, *args) - | leave_insn(self, arg0) -> int - | - | maintain_parents(self, *args) - | maintain_parents(self) -> bool - | - | must_prune(self, *args) - | must_prune(self) -> bool - | - | must_restart(self, *args) - | must_restart(self) -> bool - | - | only_insns(self, *args) - | only_insns(self) -> bool - | - | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t - | - | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t - | - | prune_now(self, *args) - | prune_now(self) - | - | set_restart(self, *args) - | set_restart(self) - | - | visit_expr(self, *args) - | visit_expr(self, arg0) -> int - | - | visit_insn(self, *args) - | visit_insn(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ctree_visitor_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int - | - | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t - -Help on class cfunc_t in module ida_hexrays: - -class cfunc_t(__builtin__.object) - | Proxy of C++ cfunc_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | __str__(self, *args) - | __str__(self) -> qstring - | - | build_c_tree(self, *args) - | build_c_tree(self) - | - | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> int - | - | find_item_coords(self, *args) - | find_item_coords(self, item, px, py) -> bool - | find_item_coords(self, item) -> PyObject * - | - | find_label(self, *args) - | find_label(self, label) -> citem_t - | - | gather_derefs(self, *args) - | gather_derefs(self, ci, udm=None) -> bool - | - | get_boundaries(self, *args) - | get_boundaries(self) -> boundaries_t - | - | get_eamap(self, *args) - | get_eamap(self) -> eamap_t - | - | get_func_type(self, *args) - | get_func_type(self, type) -> bool - | - | get_line_item(self, *args) - | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | - | get_lvars(self, *args) - | get_lvars(self) -> lvars_t - | - | get_pseudocode(self, *args) - | get_pseudocode(self) -> strvec_t - | - | get_stkoff_delta(self, *args) - | get_stkoff_delta(self) -> sval_t - | - | get_user_cmt(self, *args) - | get_user_cmt(self, loc, rt) -> char const * - | - | get_user_iflags(self, *args) - | get_user_iflags(self, loc) -> int32 - | - | get_user_union_selection(self, *args) - | get_user_union_selection(self, ea, path) -> bool - | - | get_warnings(self, *args) - | get_warnings(self) -> hexwarns_t - | - | has_orphan_cmts(self, *args) - | has_orphan_cmts(self) -> bool - | - | print_dcl(self, *args) - | print_dcl(self) - | - | print_func(self, *args) - | print_func(self, vp) - | - | refresh_func_ctext(self, *args) - | refresh_func_ctext(self) - | - | release(self, *args) - | release(self) - | - | remove_unused_labels(self, *args) - | remove_unused_labels(self) - | - | save_user_cmts(self, *args) - | save_user_cmts(self) - | - | save_user_iflags(self, *args) - | save_user_iflags(self) - | - | save_user_labels(self, *args) - | save_user_labels(self) - | - | save_user_numforms(self, *args) - | save_user_numforms(self) - | - | save_user_unions(self, *args) - | save_user_unions(self) - | - | set_user_cmt(self, *args) - | set_user_cmt(self, loc, cmt) - | - | set_user_iflags(self, *args) - | set_user_iflags(self, loc, iflags) - | - | set_user_union_selection(self, *args) - | set_user_union_selection(self, ea, path) - | - | verify(self, *args) - | verify(self, aul, even_without_debugger) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argidx - | cfunc_t_argidx_get(self) -> intvec_t - | - | arguments - | - | body - | cfunc_t_body_get(self) -> cinsn_t - | - | boundaries - | get_boundaries(self) -> boundaries_t - | - | eamap - | get_eamap(self) -> eamap_t - | - | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t - | - | hdrlines - | cfunc_t_hdrlines_get(self) -> int - | - | lvars - | get_lvars(self) -> lvars_t - | - | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t - | - | mba - | cfunc_t_mba_get(self) -> mbl_array_t - | - | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t - | - | pseudocode - | get_pseudocode(self) -> strvec_t - | - | refcnt - | cfunc_t_refcnt_get(self) -> int - | - | statebits - | cfunc_t_statebits_get(self) -> int - | - | thisown - | The membership flag - | - | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t - | - | type - | Get the function's return type tinfo_t object. - | - | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t - | - | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t - | - | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t - | - | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t - | - | warnings - | get_warnings(self) -> hexwarns_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cfunc_t> - | delete_cfunc_t(self) - -Help on function cfunc_type in module ida_hexrays: - -cfunc_type(self) - Get the function's return type tinfo_t object. - -Help on class cfuncptr_t in module ida_hexrays: - -class cfuncptr_t(__builtin__.object) - | Proxy of C++ qrefcnt_t< cfunc_t > class. - | - | Methods defined here: - | - | __deref__(self, *args) - | __deref__(self) -> cfunc_t - | - | __eq__ lambda self, other - | - | __init__(self, *args) - | __init__(self, p) -> cfuncptr_t - | __init__(self, r) -> cfuncptr_t - | - | __ptrval__(self, *args) - | __ptrval__(self) -> size_t - | - | __ref__(self, *args) - | __ref__(self) -> cfunc_t - | - | __repr__ = _swig_repr(self) - | - | __str__ lambda self - | - | build_c_tree(self, *args) - | build_c_tree(self) - | - | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> int - | - | find_item_coords(self, *args) - | find_item_coords(self, item, px, py) -> bool - | find_item_coords(self, item) -> PyObject * - | - | find_label(self, *args) - | find_label(self, label) -> citem_t - | - | gather_derefs(self, *args) - | gather_derefs(self, ci, udm=None) -> bool - | - | get_boundaries(self, *args) - | get_boundaries(self) -> boundaries_t - | - | get_eamap(self, *args) - | get_eamap(self) -> eamap_t - | - | get_func_type(self, *args) - | get_func_type(self, type) -> bool - | - | get_line_item(self, *args) - | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool - | - | get_lvars(self, *args) - | get_lvars(self) -> lvars_t - | - | get_pseudocode(self, *args) - | get_pseudocode(self) -> strvec_t - | - | get_stkoff_delta(self, *args) - | get_stkoff_delta(self) -> sval_t - | - | get_user_cmt(self, *args) - | get_user_cmt(self, loc, rt) -> char const * - | - | get_user_iflags(self, *args) - | get_user_iflags(self, loc) -> int32 - | - | get_user_union_selection(self, *args) - | get_user_union_selection(self, ea, path) -> bool - | - | get_warnings(self, *args) - | get_warnings(self) -> hexwarns_t - | - | has_orphan_cmts(self, *args) - | has_orphan_cmts(self) -> bool - | - | print_dcl(self, *args) - | print_dcl(self) - | - | print_func(self, *args) - | print_func(self, vp) - | - | refresh_func_ctext(self, *args) - | refresh_func_ctext(self) - | - | release(self, *args) - | release(self) - | - | remove_unused_labels(self, *args) - | remove_unused_labels(self) - | - | reset(self, *args) - | reset(self) - | - | save_user_cmts(self, *args) - | save_user_cmts(self) - | - | save_user_iflags(self, *args) - | save_user_iflags(self) - | - | save_user_labels(self, *args) - | save_user_labels(self) - | - | save_user_numforms(self, *args) - | save_user_numforms(self) - | - | save_user_unions(self, *args) - | save_user_unions(self) - | - | set_user_cmt(self, *args) - | set_user_cmt(self, loc, cmt) - | - | set_user_iflags(self, *args) - | set_user_iflags(self, loc, iflags) - | - | set_user_union_selection(self, *args) - | set_user_union_selection(self, ea, path) - | - | verify(self, *args) - | verify(self, aul, even_without_debugger) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t - | - | arguments - | - | body - | cfuncptr_t_body_get(self) -> cinsn_t - | - | boundaries - | - | eamap - | - | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t - | - | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int - | - | lvars - | - | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t - | - | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t - | - | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t - | - | pseudocode - | - | refcnt - | cfuncptr_t_refcnt_get(self) -> int - | - | statebits - | cfuncptr_t_statebits_get(self) -> int - | - | thisown - | The membership flag - | - | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t - | - | type - | - | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t - | - | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t - | - | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t - | - | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t - | - | warnings - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cfuncptr_t> - | delete_cfuncptr_t(self) - -Help on class cgoto_t in module ida_hexrays: - -class cgoto_t(__builtin__.object) - | Proxy of C++ cgoto_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cgoto_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | label_num - | cgoto_t_label_num_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cgoto_t> - | delete_cgoto_t(self) - -Help on class chain_keeper_t in module ida_hexrays: - -class chain_keeper_t(__builtin__.object) - | Proxy of C++ chain_keeper_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _gc) -> chain_keeper_t - | - | __repr__ = _swig_repr(self) - | - | back(self, *args) - | back(self) -> block_chains_t - | - | for_all_chains(self, *args) - | for_all_chains(self, cv, gca) -> int - | - | front(self, *args) - | front(self) -> block_chains_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_chain_keeper_t> - | delete_chain_keeper_t(self) - -Help on class chain_t in module ida_hexrays: - -class chain_t(ida_pro.intvec_t) - | Proxy of C++ chain_t class. - | - | Method resolution order: - | chain_t - | ida_pro.intvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> chain_t - | __init__(self, t, off, w=1, v=-1) -> chain_t - | __init__(self, _k, w=1) -> chain_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | append_list(self, *args) - | append_list(self, list) - | - | clear_varnum(self, *args) - | clear_varnum(self) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | endoff(self, *args) - | endoff(self) -> voff_t - | - | get_reg(self, *args) - | get_reg(self) -> mreg_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | includes(self, *args) - | includes(self, r) -> bool - | - | is_fake(self, *args) - | is_fake(self) -> bool - | - | is_inited(self, *args) - | is_inited(self) -> bool - | - | is_overlapped(self, *args) - | is_overlapped(self) -> bool - | - | is_passreg(self, *args) - | is_passreg(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_replaced(self, *args) - | is_replaced(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | is_term(self, *args) - | is_term(self) -> bool - | - | key(self, *args) - | key(self) -> voff_t - | - | overlap(self, *args) - | overlap(self, r) -> bool - | - | set_inited(self, *args) - | set_inited(self, b) - | - | set_overlapped(self, *args) - | set_overlapped(self, b) - | - | set_replaced(self, *args) - | set_replaced(self, b) - | - | set_term(self, *args) - | set_term(self, b) - | - | set_value(self, *args) - | set_value(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | chain_t_flags_get(self) -> uchar - | - | thisown - | The membership flag - | - | varnum - | chain_t_varnum_get(self) -> int - | - | width - | chain_t_width_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_chain_t> - | delete_chain_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_pro.intvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> int const & - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> int & - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> int const & - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< int >::iterator - | begin(self) -> qvector< int >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< int >::iterator - | end(self) -> qvector< int >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< int >::iterator - | erase(self, first, last) -> qvector< int >::iterator - | - | extract(self, *args) - | extract(self) -> int * - | - | find(self, *args) - | find(self, x) -> qvector< int >::iterator - | find(self, x) -> qvector< int >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< int >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> int & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_pro.intvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class chain_visitor_t in module ida_hexrays: - -class chain_visitor_t(__builtin__.object) - | Proxy of C++ chain_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> chain_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_chain(self, *args) - | visit_chain(self, nblock, ch) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | parent - | chain_visitor_t_parent_get(self) -> block_chains_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_chain_visitor_t> - | delete_chain_visitor_t(self) - -Help on function checkout_hexrays_license in module ida_hexrays: - -checkout_hexrays_license(*args) - checkout_hexrays_license(silent) -> bool - - - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - - @param silent: silently fail if the license can not be checked out. - (C++: bool) - @return: false if failed - -Help on class cif_t in module ida_hexrays: - -class cif_t(ceinsn_t) - | Proxy of C++ cif_t class. - | - | Method resolution order: - | cif_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cif_t - | __init__(self, r) -> cif_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, r) -> cif_t - | - | cleanup(self, *args) - | cleanup(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ielse - | cif_t_ielse_get(self) -> cinsn_t - | - | ithen - | cif_t_ithen_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cif_t> - | delete_cif_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on function cinsn_details in module ida_hexrays: - -cinsn_details(self) - return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. - -Help on class cinsn_t in module ida_hexrays: - -class cinsn_t(citem_t) - | Proxy of C++ cinsn_t class. - | - | Method resolution order: - | cinsn_t - | citem_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cinsn_t - | __init__(self, r) -> cinsn_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _get_casm(self, *args) - | _get_casm(self) -> casm_t - | - | _get_cblock(self, *args) - | _get_cblock(self) -> cblock_t - | - | _get_cdo(self, *args) - | _get_cdo(self) -> cdo_t - | - | _get_cexpr(self, *args) - | _get_cexpr(self) -> cexpr_t - | - | _get_cfor(self, *args) - | _get_cfor(self) -> cfor_t - | - | _get_cgoto(self, *args) - | _get_cgoto(self) -> cgoto_t - | - | _get_cif(self, *args) - | _get_cif(self) -> cif_t - | - | _get_creturn(self, *args) - | _get_creturn(self) -> creturn_t - | - | _get_cswitch(self, *args) - | _get_cswitch(self) -> cswitch_t - | - | _get_cwhile(self, *args) - | _get_cwhile(self) -> cwhile_t - | - | _print(self, *args) - | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) - | - | _register(self, *args) - | _register(self) - | - | _replace_by(self, *args) - | _replace_by(self, r) - | - | _set_casm(self, *args) - | _set_casm(self, _v) - | - | _set_cblock(self, *args) - | _set_cblock(self, _v) - | - | _set_cdo(self, *args) - | _set_cdo(self, _v) - | - | _set_cexpr(self, *args) - | _set_cexpr(self, _v) - | - | _set_cfor(self, *args) - | _set_cfor(self, _v) - | - | _set_cgoto(self, *args) - | _set_cgoto(self, _v) - | - | _set_cif(self, *args) - | _set_cif(self, _v) - | - | _set_creturn(self, *args) - | _set_creturn(self, _v) - | - | _set_cswitch(self, *args) - | _set_cswitch(self, _v) - | - | _set_cwhile(self, *args) - | _set_cwhile(self, _v) - | - | assign(self, *args) - | assign(self, r) -> cinsn_t - | - | cleanup(self, *args) - | cleanup(self) - | - | collect_free_breaks(self, *args) - | collect_free_breaks(self, breaks) -> bool - | - | collect_free_continues(self, *args) - | collect_free_continues(self, continues) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains_free_break(self, *args) - | contains_free_break(self) -> bool - | - | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool - | - | contains_insn(self, *args) - | contains_insn(self, type, times=1) -> bool - | - | create_if(self, *args) - | create_if(self, cnd) -> cif_t - | - | is_epilog(self) - | - | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool - | - | new_insn(self, *args) - | new_insn(self, insn_ea) -> cinsn_t - | - | print1(self, *args) - | print1(self, func) - | - | swap(self, *args) - | swap(self, r) - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | insn_is_epilog(*args) - | insn_is_epilog(insn) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | casm - | - | cblock - | - | cdo - | - | cexpr - | - | cfor - | - | cgoto - | - | cif - | - | creturn - | - | cswitch - | - | cwhile - | - | details - | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. - | - | opname - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cinsn_t> - | delete_cinsn_t(self) - | - | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... - | - | ---------------------------------------------------------------------- - | Methods inherited from citem_t: - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | replace_by(self, o) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from citem_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on function cinsn_t_insn_is_epilog in module ida_hexrays: - -cinsn_t_insn_is_epilog(*args) - cinsn_t_insn_is_epilog(insn) -> bool - -Help on class cinsnptrvec_t in module ida_hexrays: - -class cinsnptrvec_t(__builtin__.object) - | Proxy of C++ qvector< cinsn_t * > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> cinsn_t - | - | __init__(self, *args) - | __init__(self) -> cinsnptrvec_t - | __init__(self, x) -> cinsnptrvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< cinsn_t * >::iterator - | begin(self) -> qvector< cinsn_t * >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< cinsn_t * >::iterator - | end(self) -> qvector< cinsn_t * >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< cinsn_t * >::iterator - | erase(self, first, last) -> qvector< cinsn_t * >::iterator - | - | extract(self, *args) - | extract(self) -> cinsn_t ** - | - | find(self, *args) - | find(self, x) -> qvector< cinsn_t * >::iterator - | find(self, x) -> qvector< cinsn_t * >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< cinsn_t * >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> cinsn_t *& - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cinsnptrvec_t> - | delete_cinsnptrvec_t(self) - -Help on class citem_cmt_t in module ida_hexrays: - -class citem_cmt_t(__builtin__.object) - | Proxy of C++ citem_cmt_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> citem_cmt_t - | __init__(self, s) -> citem_cmt_t - | - | __repr__ = _swig_repr(self) - | - | __str__(self, *args) - | __str__(self) -> char const * - | - | c_str(self, *args) - | c_str(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | used - | citem_cmt_t_used_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_citem_cmt_t> - | delete_citem_cmt_t(self) - -Help on class citem_locator_t in module ida_hexrays: - -class citem_locator_t(__builtin__.object) - | Proxy of C++ citem_locator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _ea, _op) -> citem_locator_t - | __init__(self, i) -> citem_locator_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | citem_locator_t_ea_get(self) -> ea_t - | - | op - | citem_locator_t_op_get(self) -> ctype_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_citem_locator_t> - | delete_citem_locator_t(self) - -Help on class citem_t in module ida_hexrays: - -class citem_t(__builtin__.object) - | Proxy of C++ citem_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> citem_t - | __init__(self, o) -> citem_t - | - | __repr__ = _swig_repr(self) - | - | _acquire_ownership(self, v, acquire) - | - | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_op(self) - | - | _get_op(self, *args) - | _get_op(self) -> ctype_t - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _set_op(self, *args) - | _set_op(self, v) - | - | contains_expr(self, *args) - | contains_expr(self, e) -> bool - | - | contains_label(self, *args) - | contains_label(self) -> bool - | - | find_closest_addr(self, *args) - | find_closest_addr(self, _ea) -> citem_t - | - | find_parent_of(self, *args) - | find_parent_of(self, sitem) -> citem_t - | find_parent_of(self, item) -> citem_t - | - | is_expr(self, *args) - | is_expr(self) -> bool - | - | print1(self, *args) - | print1(self, func) - | - | replace_by(self, o) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cexpr - | citem_t_cexpr_get(self) -> cexpr_t - | - | cinsn - | citem_t_cinsn_get(self) -> cinsn_t - | - | ea - | citem_t_ea_get(self) -> ea_t - | - | index - | citem_t_index_get(self) -> int - | - | label_num - | citem_t_label_num_get(self) -> int - | - | meminfo - | - | obj_id - | _obj_id(self) -> PyObject * - | - | op - | _get_op(self) -> ctype_t - | - | thisown - | The membership flag - | - | to_specific_type - | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_citem_t> - | delete_citem_t(self) - -Help on function citem_to_specific_type in module ida_hexrays: - -citem_to_specific_type(self) - cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. - -Help on function clear_cached_cfuncs in module ida_hexrays: - -clear_cached_cfuncs(*args) - clear_cached_cfuncs() - - - Flush all cached decompilation results. - -Help on class cloop_t in module ida_hexrays: - -class cloop_t(ceinsn_t) - | Proxy of C++ cloop_t class. - | - | Method resolution order: - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> cloop_t - | __init__(self, b) -> cloop_t - | __init__(self, r) -> cloop_t - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cloop_t> - | delete_cloop_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on function close_pseudocode in module ida_hexrays: - -close_pseudocode(*args) - close_pseudocode(f) -> bool - - - Close pseudocode window. - - @param f: pointer to window (C++: TWidget *) - @return: false if failed - -Help on class cnumber_t in module ida_hexrays: - -class cnumber_t(__builtin__.object) - | Proxy of C++ cnumber_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _opnum=0) -> cnumber_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, type, parent=None, nice_stroff=None) - | - | assign(self, *args) - | assign(self, v, nbytes, sign) - | - | compare(self, *args) - | compare(self, r) -> int - | - | value(self, *args) - | value(self, type) -> uint64 - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | _value - | cnumber_t__value_get(self) -> uint64 - | - | nf - | cnumber_t_nf_get(self) -> number_format_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cnumber_t> - | delete_cnumber_t(self) - -Help on class codegen_t in module ida_hexrays: - -class codegen_t(__builtin__.object) - | Proxy of C++ codegen_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, m) -> codegen_t - | - | __repr__ = _swig_repr(self) - | - | analyze_prolog(self, *args) - | analyze_prolog(self, fc, reachable) -> merror_t - | - | emit(self, *args) - | emit(self, code, width, l, r, d, offsize) -> minsn_t - | emit(self, code, l, r, d) -> minsn_t - | - | emit_micro_mvm(self, *args) - | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t - | - | gen_micro(self, *args) - | gen_micro(self) -> merror_t - | - | load_operand(self, *args) - | load_operand(self, opnum) -> mreg_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ignore_micro - | codegen_t_ignore_micro_get(self) -> char - | - | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t - | - | insn - | codegen_t_insn_get(self) -> insn_t * - | - | mb - | codegen_t_mb_get(self) -> mblock_t - | - | mba - | codegen_t_mba_get(self) -> mbl_array_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_codegen_t> - | delete_codegen_t(self) - -Help on function convert_to_user_call in module ida_hexrays: - -convert_to_user_call(*args) - convert_to_user_call(udc, cdg) -> merror_t - - - try to generate user-defined call for an instruction - - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) - -Help on function create_field_name in module ida_hexrays: - -create_field_name(*args) - create_field_name(type, offset=BADADDR) -> qstring - -Help on function create_helper in module ida_hexrays: - -create_helper(*args) - -Help on function create_typedef in module ida_hexrays: - -create_typedef(*args) - create_typedef(name) -> tinfo_t - create_typedef(n) -> tinfo_t - - - Create a reference to a named type. - - @param name: type name (C++: const char *) - @return: type which refers to the specified name. For example, if name - is "DWORD", the type info which refers to "DWORD" is created. - -Help on class creturn_t in module ida_hexrays: - -class creturn_t(ceinsn_t) - | Proxy of C++ creturn_t class. - | - | Method resolution order: - | creturn_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> creturn_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_creturn_t> - | delete_creturn_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class cswitch_t in module ida_hexrays: - -class cswitch_t(ceinsn_t) - | Proxy of C++ cswitch_t class. - | - | Method resolution order: - | cswitch_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cswitch_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cases - | cswitch_t_cases_get(self) -> ccases_t - | - | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cswitch_t> - | delete_cswitch_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on class ctext_position_t in module ida_hexrays: - -class ctext_position_t(__builtin__.object) - | Proxy of C++ ctext_position_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | in_ctree(self, *args) - | in_ctree(self, hdrlines) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | ctext_position_t_lnnum_get(self) -> int - | - | thisown - | The membership flag - | - | x - | ctext_position_t_x_get(self) -> int - | - | y - | ctext_position_t_y_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ctext_position_t> - | delete_ctext_position_t(self) - -Help on class ctree_anchor_t in module ida_hexrays: - -class ctree_anchor_t(__builtin__.object) - | Proxy of C++ ctree_anchor_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ctree_anchor_t - | - | __repr__ = _swig_repr(self) - | - | get_index(self, *args) - | get_index(self) -> int - | - | get_itp(self, *args) - | get_itp(self) -> item_preciser_t - | - | is_blkcmt_anchor(self, *args) - | is_blkcmt_anchor(self) -> bool - | - | is_citem_anchor(self, *args) - | is_citem_anchor(self) -> bool - | - | is_itp_anchor(self, *args) - | is_itp_anchor(self) -> bool - | - | is_lvar_anchor(self, *args) - | is_lvar_anchor(self) -> bool - | - | is_valid_anchor(self, *args) - | is_valid_anchor(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | value - | ctree_anchor_t_value_get(self) -> uval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ctree_anchor_t> - | delete_ctree_anchor_t(self) - -Help on class ctree_item_t in module ida_hexrays: - -class ctree_item_t(__builtin__.object) - | Proxy of C++ ctree_item_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ctree_item_t - | - | __repr__ = _swig_repr(self) - | - | _get_e(self, *args) - | _get_e(self) -> cexpr_t - | - | _get_f(self, *args) - | _get_f(self) -> cfunc_t - | - | _get_i(self, *args) - | _get_i(self) -> cinsn_t - | - | _get_it(self, *args) - | _get_it(self) -> citem_t - | - | _get_l(self, *args) - | _get_l(self) -> lvar_t - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_label_num(self, *args) - | get_label_num(self, gln_flags) -> int - | - | get_lvar(self, *args) - | get_lvar(self) -> lvar_t - | - | get_memptr(self, *args) - | get_memptr(self, p_sptr=None) -> member_t * - | - | is_citem(self, *args) - | is_citem(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t - | - | e - | - | f - | - | i - | - | it - | - | l - | - | loc - | ctree_item_t_loc_get(self) -> treeloc_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ctree_item_t> - | delete_ctree_item_t(self) - -Help on class ctree_items_t in module ida_hexrays: - -class ctree_items_t(__builtin__.object) - | Proxy of C++ qvector< citem_t * > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> citem_t - | - | __init__(self, *args) - | __init__(self) -> ctree_items_t - | __init__(self, x) -> ctree_items_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< citem_t * >::iterator - | begin(self) -> qvector< citem_t * >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< citem_t * >::iterator - | end(self) -> qvector< citem_t * >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< citem_t * >::iterator - | erase(self, first, last) -> qvector< citem_t * >::iterator - | - | extract(self, *args) - | extract(self) -> citem_t ** - | - | find(self, *args) - | find(self, x) -> qvector< citem_t * >::iterator - | find(self, x) -> qvector< citem_t * >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< citem_t * >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> citem_t *& - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ctree_items_t> - | delete_ctree_items_t(self) - -Help on class ctree_parentee_t in module ida_hexrays: - -class ctree_parentee_t(ctree_visitor_t) - | Proxy of C++ ctree_parentee_t class. - | - | Method resolution order: - | ctree_parentee_t - | ctree_visitor_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, post=False) -> ctree_parentee_t - | - | __repr__ = _swig_repr(self) - | - | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ctree_parentee_t> - | delete_ctree_parentee_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ctree_visitor_t: - | - | apply_to(self, *args) - | apply_to(self, item, parent) -> int - | - | apply_to_exprs(self, *args) - | apply_to_exprs(self, item, parent) -> int - | - | clr_prune(self, *args) - | clr_prune(self) - | - | clr_restart(self, *args) - | clr_restart(self) - | - | is_postorder(self, *args) - | is_postorder(self) -> bool - | - | leave_expr(self, *args) - | leave_expr(self, arg0) -> int - | - | leave_insn(self, *args) - | leave_insn(self, arg0) -> int - | - | maintain_parents(self, *args) - | maintain_parents(self) -> bool - | - | must_prune(self, *args) - | must_prune(self) -> bool - | - | must_restart(self, *args) - | must_restart(self) -> bool - | - | only_insns(self, *args) - | only_insns(self) -> bool - | - | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t - | - | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t - | - | prune_now(self, *args) - | prune_now(self) - | - | set_restart(self, *args) - | set_restart(self) - | - | visit_expr(self, *args) - | visit_expr(self, arg0) -> int - | - | visit_insn(self, *args) - | visit_insn(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ctree_visitor_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int - | - | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t - -Help on class ctree_visitor_t in module ida_hexrays: - -class ctree_visitor_t(__builtin__.object) - | Proxy of C++ ctree_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags) -> ctree_visitor_t - | - | __repr__ = _swig_repr(self) - | - | apply_to(self, *args) - | apply_to(self, item, parent) -> int - | - | apply_to_exprs(self, *args) - | apply_to_exprs(self, item, parent) -> int - | - | clr_prune(self, *args) - | clr_prune(self) - | - | clr_restart(self, *args) - | clr_restart(self) - | - | is_postorder(self, *args) - | is_postorder(self) -> bool - | - | leave_expr(self, *args) - | leave_expr(self, arg0) -> int - | - | leave_insn(self, *args) - | leave_insn(self, arg0) -> int - | - | maintain_parents(self, *args) - | maintain_parents(self) -> bool - | - | must_prune(self, *args) - | must_prune(self) -> bool - | - | must_restart(self, *args) - | must_restart(self) -> bool - | - | only_insns(self, *args) - | only_insns(self) -> bool - | - | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t - | - | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t - | - | prune_now(self, *args) - | prune_now(self) - | - | set_restart(self, *args) - | set_restart(self) - | - | visit_expr(self, *args) - | visit_expr(self, arg0) -> int - | - | visit_insn(self, *args) - | visit_insn(self, arg0) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int - | - | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ctree_visitor_t> - | delete_ctree_visitor_t(self) - -Help on class cwhile_t in module ida_hexrays: - -class cwhile_t(cloop_t) - | Proxy of C++ cwhile_t class. - | - | Method resolution order: - | cwhile_t - | cloop_t - | ceinsn_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> cwhile_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cwhile_t> - | delete_cwhile_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from cloop_t: - | - | assign(self, *args) - | assign(self, r) -> cloop_t - | - | cleanup(self, *args) - | cleanup(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from cloop_t: - | - | body - | cloop_t_body_get(self) -> cinsn_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ceinsn_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | expr - | ceinsn_t_expr_get(self) -> cexpr_t - -Help on function debug_hexrays_ctree in module ida_hexrays: - -debug_hexrays_ctree(*args) - debug_hexrays_ctree(msg) - -Help on function decompile in module ida_hexrays: - -decompile(ea, hf=None, flags=0) - # --------------------------------------------------------------------- - -Help on function decompile_func in module ida_hexrays: - -decompile_func(*args) - decompile_func(pfn, hf, flags=0) -> cfuncptr_t - - - Decompile a function. Multiple decompilations of the same function - return the same object. - - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. - -Help on function decompile_many in module ida_hexrays: - -decompile_many(*args) - decompile_many(outfile, funcaddrs, flags) -> bool - - - Batch decompilation. Decompile all or the specified functions - - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation - -Help on function dereference in module ida_hexrays: - -dereference(e, ptrsize, is_float=False) - -Help on function dstr in module ida_hexrays: - -dstr(*args) - dstr(tif) -> char const * - - - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - - @param tif (C++: const tinfo_t *) - -Help on function dummy_ptrtype in module ida_hexrays: - -dummy_ptrtype(*args) - dummy_ptrtype(ptrsize, isfp) -> tinfo_t - - - Generate a dummy pointer type - - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) - -Help on function eamap_begin in module ida_hexrays: - -eamap_begin(*args) - eamap_begin(map) -> eamap_iterator_t - - - Get iterator pointing to the beginning of eamap_t. - - - @param map (C++: const eamap_t *) - -Help on function eamap_clear in module ida_hexrays: - -eamap_clear(*args) - eamap_clear(map) - - - Clear eamap_t. - - - @param map (C++: eamap_t *) - -Help on function eamap_end in module ida_hexrays: - -eamap_end(*args) - eamap_end(map) -> eamap_iterator_t - - - Get iterator pointing to the end of eamap_t. - - - @param map (C++: const eamap_t *) - -Help on function eamap_erase in module ida_hexrays: - -eamap_erase(*args) - eamap_erase(map, p) - - - Erase current element from eamap_t. - - - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) - -Help on function eamap_find in module ida_hexrays: - -eamap_find(*args) - eamap_find(map, key) -> eamap_iterator_t - - - Find the specified key in eamap_t. - - - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) - -Help on function eamap_first in module ida_hexrays: - -eamap_first(*args) - eamap_first(p) -> ea_t const & - - - Get reference to the current map key. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_free in module ida_hexrays: - -eamap_free(*args) - eamap_free(map) - - - Delete eamap_t instance. - - - @param map (C++: eamap_t *) - -Help on function eamap_insert in module ida_hexrays: - -eamap_insert(*args) - eamap_insert(map, key, val) -> eamap_iterator_t - - - Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - - - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) - -Help on class eamap_iterator_t in module ida_hexrays: - -class eamap_iterator_t(__builtin__.object) - | Proxy of C++ eamap_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> eamap_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | eamap_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_eamap_iterator_t> - | delete_eamap_iterator_t(self) - -Help on function eamap_new in module ida_hexrays: - -eamap_new(*args) - eamap_new() -> eamap_t - - - Create a new eamap_t instance. - -Help on function eamap_next in module ida_hexrays: - -eamap_next(*args) - eamap_next(p) -> eamap_iterator_t - - - Move to the next element. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_prev in module ida_hexrays: - -eamap_prev(*args) - eamap_prev(p) -> eamap_iterator_t - - - Move to the previous element. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_second in module ida_hexrays: - -eamap_second(*args) - eamap_second(p) -> cinsnptrvec_t - - - Get reference to the current map value. - - - @param p (C++: eamap_iterator_t) - -Help on function eamap_size in module ida_hexrays: - -eamap_size(*args) - eamap_size(map) -> size_t - - - Get size of eamap_t. - - - @param map (C++: eamap_t *) - -Help on class eamap_t in module ida_hexrays: - -class eamap_t(__builtin__.object) - | Proxy of C++ std::map< ea_t,cinsnptrvec_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> eamap_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> cinsnptrvec_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = <built-in function eamap_begin> - | eamap_begin(map) -> eamap_iterator_t - | - | __clear = <built-in function eamap_clear> - | eamap_clear(map) - | - | __end = <built-in function eamap_end> - | eamap_end(map) -> eamap_iterator_t - | - | __erase = <built-in function eamap_erase> - | eamap_erase(map, p) - | - | __find = <built-in function eamap_find> - | eamap_find(map, key) -> eamap_iterator_t - | - | __first = <built-in function eamap_first> - | eamap_first(p) -> ea_t const & - | - | __insert = <built-in function eamap_insert> - | eamap_insert(map, key, val) -> eamap_iterator_t - | - | __next = <built-in function eamap_next> - | eamap_next(p) -> eamap_iterator_t - | - | __second = <built-in function eamap_second> - | eamap_second(p) -> cinsnptrvec_t - | - | __size = <built-in function eamap_size> - | eamap_size(map) -> size_t - | - | __swig_destroy__ = <built-in function delete_eamap_t> - | delete_eamap_t(self) - | - | keytype = <type 'long'> - | long(x=0) -> long - | long(x, base=10) -> long - | - | Convert a number or string to a long integer, or return 0L if no arguments - | are given. If x is floating point, the conversion truncates towards zero. - | - | If x is not a number or if base is given, then x must be a string or - | Unicode object representing an integer literal in the given base. The - | literal can be preceded by '+' or '-' and be surrounded by whitespace. - | The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to - | interpret the base from the string as an integer literal. - | >>> int('0b100', base=0) - | 4L - | - | valuetype = <class 'ida_hexrays.cinsnptrvec_t'> - | Proxy of C++ qvector< cinsn_t * > class. - -Help on class fnum_array in module ida_hexrays: - -class fnum_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< uint16,6 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned short const & - | - | __init__(self, *args) - | __init__(self, data) -> fnum_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | fnum_array_data_get(self) -> unsigned short (&)[6] - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_fnum_array> - | delete_fnum_array(self) - -Help on class fnumber_t in module ida_hexrays: - -class fnumber_t(__builtin__.object) - | Proxy of C++ fnumber_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> fnumber_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _fnumber_t__get_fnum = __get_fnum(self, *args) - | __get_fnum(self) -> fnum_array - | - | _print(self, *args) - | _print(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | dereference_const_uint16(self, *args) - | dereference_const_uint16(self) -> uint16 const * - | - | dereference_uint16(self, *args) - | dereference_uint16(self) -> uint16 * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fnum - | __get_fnum(self) -> fnum_array - | - | nbytes - | fnumber_t_nbytes_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_fnumber_t> - | delete_fnumber_t(self) - -Help on class gco_info_t in module ida_hexrays: - -class gco_info_t(__builtin__.object) - | Proxy of C++ gco_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> gco_info_t - | - | __repr__ = _swig_repr(self) - | - | append_to_list(self, *args) - | append_to_list(self, list, mba) -> bool - | - | is_def(self, *args) - | is_def(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_use(self, *args) - | is_use(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | gco_info_t_flags_get(self) -> int - | - | name - | gco_info_t_name_get(self) -> qstring * - | - | size - | gco_info_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_gco_info_t> - | delete_gco_info_t(self) - -Help on function gen_microcode in module ida_hexrays: - -gen_microcode(*args) - gen_microcode(mbr, hf, retlist=None, flags=0, reqmat=MMAT_GLBOPT3) -> mbl_array_t - - - Generate microcode of an arbitrary code snippet - - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. - -Help on function get_ctype_name in module ida_hexrays: - -get_ctype_name(*args) - get_ctype_name(op) -> char const * - -Help on function get_current_operand in module ida_hexrays: - -get_current_operand(*args) - get_current_operand(out) -> bool - - - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - return true. - - @param out (C++: gco_info_t *) - -Help on function get_float_type in module ida_hexrays: - -get_float_type(*args) - get_float_type(width) -> tinfo_t - - - Get a type of a floating point value with the specified width - - @param width: width of the desired type (C++: int) - @return: type info object - -Help on function get_hexrays_version in module ida_hexrays: - -get_hexrays_version(*args) - get_hexrays_version() -> char const * - - - Get decompiler version. The returned string is of the form - <major>.<minor>.<revision>.<build-date> - - @return: pointer to version string. For example: "2.0.0.140605" - -Help on function get_int_type_by_width_and_sign in module ida_hexrays: - -get_int_type_by_width_and_sign(*args) - get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t - - - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) - -Help on function get_member_type in module ida_hexrays: - -get_member_type(*args) - get_member_type(mptr, type) -> bool - - - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) - @return: false if failed - -Help on function get_merror_desc in module ida_hexrays: - -get_merror_desc(*args) - get_merror_desc(code, mba) -> str - - - Get textual description of an error code - - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mbl_array_t *) - @return: the error address - -Help on function get_mreg_name in module ida_hexrays: - -get_mreg_name(*args) - get_mreg_name(reg, width, ud=None) -> str - - - Get the microregister name - - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. - -Help on function get_op_signness in module ida_hexrays: - -get_op_signness(*args) - get_op_signness(op) -> type_sign_t - - - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - - - @param op (C++: ctype_t) - -Help on function get_signed_mcode in module ida_hexrays: - -get_signed_mcode(*args) - get_signed_mcode(code) -> mcode_t - -Help on function get_temp_regs in module ida_hexrays: - -get_temp_regs(*args) - get_temp_regs() -> mlist_t - - - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. - -Help on function get_type in module ida_hexrays: - -get_type(*args) - get_type(id, tif, guess) -> bool - - - Get a global type. Global types are types of addressable objects and - struct/union/enum types - - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) - @return: success - -Help on function get_unk_type in module ida_hexrays: - -get_unk_type(*args) - get_unk_type(size) -> tinfo_t - - - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - - @param size: size of the type in bytes (C++: int) - -Help on function get_unsigned_mcode in module ida_hexrays: - -get_unsigned_mcode(*args) - get_unsigned_mcode(code) -> mcode_t - -Help on function get_widget_vdui in module ida_hexrays: - -get_widget_vdui(*args) - get_widget_vdui(f) -> vdui_t - - - Get the 'vdui_t' instance associated to the TWidget - - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL - -Help on function getb_reginsn in module ida_hexrays: - -getb_reginsn(*args) - getb_reginsn(ins) -> minsn_t - - - Skip assertions backward. - - - @param ins (C++: const minsn_t *) - -Help on function getf_reginsn in module ida_hexrays: - -getf_reginsn(*args) - getf_reginsn(ins) -> minsn_t - - - Skip assertions forward. - - - @param ins (C++: const minsn_t *) - -Help on class graph_chains_t in module ida_hexrays: - -class graph_chains_t(block_chains_vec_t) - | Proxy of C++ graph_chains_t class. - | - | Method resolution order: - | graph_chains_t - | block_chains_vec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> graph_chains_t - | - | __repr__ = _swig_repr(self) - | - | acquire(self, *args) - | acquire(self) - | - | for_all_chains(self, *args) - | for_all_chains(self, cv, gca_flags) -> int - | - | is_locked(self, *args) - | is_locked(self) -> bool - | - | release(self, *args) - | release(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_graph_chains_t> - | delete_graph_chains_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from block_chains_vec_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> block_chains_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> block_chains_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> block_chains_t - | begin(self) -> block_chains_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> block_chains_t - | end(self) -> block_chains_t - | - | erase(self, *args) - | erase(self, it) -> block_chains_t - | erase(self, first, last) -> block_chains_t - | - | extract(self, *args) - | extract(self) -> block_chains_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=block_chains_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> block_chains_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> block_chains_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from block_chains_vec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function has_cached_cfunc in module ida_hexrays: - -has_cached_cfunc(*args) - has_cached_cfunc(ea) -> bool - - - Do we have a cached decompilation result for 'ea'? - - - @param ea (C++: ea_t) - -Help on function hexrays_alloc in module ida_hexrays: - -hexrays_alloc(*args) - hexrays_alloc(size) -> void * - -Help on class hexrays_failure_t in module ida_hexrays: - -class hexrays_failure_t(__builtin__.object) - | Proxy of C++ hexrays_failure_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> hexrays_failure_t - | __init__(self, c, ea, buf=None) -> hexrays_failure_t - | __init__(self, c, ea, buf) -> hexrays_failure_t - | - | __repr__ = _swig_repr(self) - | - | __str__ lambda self - | - | desc(self, *args) - | desc(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | code - | hexrays_failure_t_code_get(self) -> merror_t - | - | errea - | hexrays_failure_t_errea_get(self) -> ea_t - | - | str - | hexrays_failure_t_str_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_hexrays_failure_t> - | delete_hexrays_failure_t(self) - -Help on function hexrays_free in module ida_hexrays: - -hexrays_free(*args) - hexrays_free(ptr) - -Help on class hexwarn_t in module ida_hexrays: - -class hexwarn_t(__builtin__.object) - | Proxy of C++ hexwarn_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> hexwarn_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | hexwarn_t_ea_get(self) -> ea_t - | - | id - | hexwarn_t_id_get(self) -> warnid_t - | - | text - | hexwarn_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_hexwarn_t> - | delete_hexwarn_t(self) - -Help on class hexwarns_t in module ida_hexrays: - -class hexwarns_t(__builtin__.object) - | Proxy of C++ qvector< hexwarn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> hexwarn_t - | - | __init__(self, *args) - | __init__(self) -> hexwarns_t - | __init__(self, x) -> hexwarns_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> hexwarn_t - | end(self) -> hexwarn_t - | - | erase(self, *args) - | erase(self, it) -> hexwarn_t - | erase(self, first, last) -> hexwarn_t - | - | extract(self, *args) - | extract(self) -> hexwarn_t - | - | find(self, *args) - | find(self, x) -> hexwarn_t - | find(self, x) -> hexwarn_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=hexwarn_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> hexwarn_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> hexwarn_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_hexwarns_t> - | delete_hexwarns_t(self) - -Help on class history_item_t in module ida_hexrays: - -class history_item_t(ctext_position_t) - | Proxy of C++ history_item_t class. - | - | Method resolution order: - | history_item_t - | ctext_position_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t - | __init__(self, _ea, p) -> history_item_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ea - | history_item_t_ea_get(self) -> ea_t - | - | end - | history_item_t_end_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_history_item_t> - | delete_history_item_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ctext_position_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | in_ctree(self, *args) - | in_ctree(self, hdrlines) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ctext_position_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | ctext_position_t_lnnum_get(self) -> int - | - | x - | ctext_position_t_x_get(self) -> int - | - | y - | ctext_position_t_y_get(self) -> int - -Help on class history_t in module ida_hexrays: - -class history_t(qvector_history_t) - | Proxy of C++ qstack< history_item_t > class. - | - | Method resolution order: - | history_t - | qvector_history_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> history_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> history_item_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> history_item_t - | - | pop(self, *args) - | pop(self) -> history_item_t - | - | push(self, *args) - | push(self, v) - | - | top(self, *args) - | top(self) -> history_item_t - | top(self) -> history_item_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_history_t> - | delete_history_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_history_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> history_item_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> history_item_t - | begin(self) -> history_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> history_item_t - | end(self) -> history_item_t - | - | erase(self, *args) - | erase(self, it) -> history_item_t - | erase(self, first, last) -> history_item_t - | - | extract(self, *args) - | extract(self) -> history_item_t - | - | find(self, *args) - | find(self, x) -> history_item_t - | find(self, x) -> history_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=history_item_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> history_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> history_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_history_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function init_hexrays_plugin in module ida_hexrays: - -init_hexrays_plugin(*args) - init_hexrays_plugin(flags=0) -> bool - - - Initialize your plugin for hex-rays decompiler. This function must be - called before calling any other decompiler function. It initializes - the pointer to the dispatcher. - - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and the dispatcher pointer is - ready to use. - -Help on function install_hexrays_callback in module ida_hexrays: - -install_hexrays_callback(callback) - Deprecated. Please use Hexrays_Hooks instead - -Help on function install_microcode_filter in module ida_hexrays: - -install_microcode_filter(*args) - install_microcode_filter(filter, install=True) - - - register/unregister non-standard microcode generator - - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) - -Help on function is_additive in module ida_hexrays: - -is_additive(*args) - is_additive(op) -> bool - - - Is additive operator? - - - @param op (C++: ctype_t) - -Help on function is_assignment in module ida_hexrays: - -is_assignment(*args) - is_assignment(op) -> bool - - - Is assignment operator? - - - @param op (C++: ctype_t) - -Help on function is_binary in module ida_hexrays: - -is_binary(*args) - is_binary(op) -> bool - - - Is binary operator? - - - @param op (C++: ctype_t) - -Help on function is_bitop in module ida_hexrays: - -is_bitop(*args) - is_bitop(op) -> bool - - - Is bit related operator? - - - @param op (C++: ctype_t) - -Help on function is_bool_type in module ida_hexrays: - -is_bool_type(*args) - is_bool_type(type) -> bool - - - Is a boolean type? - - @param type (C++: const tinfo_t &) - @return: true if the type is a boolean type - -Help on function is_break_consumer in module ida_hexrays: - -is_break_consumer(*args) - is_break_consumer(op) -> bool - - - Does a break statement influence the specified statement code? - - - @param op (C++: ctype_t) - -Help on function is_commutative in module ida_hexrays: - -is_commutative(*args) - is_commutative(op) -> bool - - - Is commutative operator? - - - @param op (C++: ctype_t) - -Help on function is_inplace_def in module ida_hexrays: - -is_inplace_def(*args) - is_inplace_def(type) -> bool - - - Is struct/union/enum definition (not declaration)? - - - @param type (C++: const tinfo_t &) - -Help on function is_kreg in module ida_hexrays: - -is_kreg(*args) - is_kreg(r) -> bool - - - Is a kernel register? - - - @param r (C++: mreg_t) - -Help on function is_logical in module ida_hexrays: - -is_logical(*args) - is_logical(op) -> bool - - - Is logical operator? - - - @param op (C++: ctype_t) - -Help on function is_loop in module ida_hexrays: - -is_loop(*args) - is_loop(op) -> bool - - - Is loop statement code? - - - @param op (C++: ctype_t) - -Help on function is_lvalue in module ida_hexrays: - -is_lvalue(*args) - is_lvalue(op) -> bool - - - Is Lvalue operator? - - - @param op (C++: ctype_t) - -Help on function is_may_access in module ida_hexrays: - -is_may_access(*args) - is_may_access(maymust) -> bool - -Help on function is_mcode_addsub in module ida_hexrays: - -is_mcode_addsub(*args) - is_mcode_addsub(mcode) -> bool - -Help on function is_mcode_call in module ida_hexrays: - -is_mcode_call(*args) - is_mcode_call(mcode) -> bool - -Help on function is_mcode_commutative in module ida_hexrays: - -is_mcode_commutative(*args) - is_mcode_commutative(mcode) -> bool - -Help on function is_mcode_convertible_to_jmp in module ida_hexrays: - -is_mcode_convertible_to_jmp(*args) - is_mcode_convertible_to_jmp(mcode) -> bool - -Help on function is_mcode_convertible_to_set in module ida_hexrays: - -is_mcode_convertible_to_set(*args) - is_mcode_convertible_to_set(mcode) -> bool - -Help on function is_mcode_divmod in module ida_hexrays: - -is_mcode_divmod(*args) - is_mcode_divmod(op) -> bool - -Help on function is_mcode_fpu in module ida_hexrays: - -is_mcode_fpu(*args) - is_mcode_fpu(mcode) -> bool - -Help on function is_mcode_j1 in module ida_hexrays: - -is_mcode_j1(*args) - is_mcode_j1(mcode) -> bool - -Help on function is_mcode_jcond in module ida_hexrays: - -is_mcode_jcond(*args) - is_mcode_jcond(mcode) -> bool - -Help on function is_mcode_propagatable in module ida_hexrays: - -is_mcode_propagatable(*args) - is_mcode_propagatable(mcode) -> bool - - - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - - @param mcode (C++: mcode_t) - -Help on function is_mcode_set in module ida_hexrays: - -is_mcode_set(*args) - is_mcode_set(mcode) -> bool - -Help on function is_mcode_set1 in module ida_hexrays: - -is_mcode_set1(*args) - is_mcode_set1(mcode) -> bool - -Help on function is_mcode_shift in module ida_hexrays: - -is_mcode_shift(*args) - is_mcode_shift(mcode) -> bool - -Help on function is_mcode_xdsu in module ida_hexrays: - -is_mcode_xdsu(*args) - is_mcode_xdsu(mcode) -> bool - -Help on function is_multiplicative in module ida_hexrays: - -is_multiplicative(*args) - is_multiplicative(op) -> bool - - - Is multiplicative operator? - - - @param op (C++: ctype_t) - -Help on function is_nonbool_type in module ida_hexrays: - -is_nonbool_type(*args) - is_nonbool_type(type) -> bool - - - Is definitely a non-boolean type? - - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) - -Help on function is_paf in module ida_hexrays: - -is_paf(*args) - is_paf(t) -> bool - - - Is a pointer, array, or function type? - - - @param t (C++: type_t) - -Help on function is_prepost in module ida_hexrays: - -is_prepost(*args) - is_prepost(op) -> bool - - - Is pre/post increment/decrement operator? - - - @param op (C++: ctype_t) - -Help on function is_ptr_or_array in module ida_hexrays: - -is_ptr_or_array(*args) - is_ptr_or_array(t) -> bool - - - Is a pointer or array type? - - - @param t (C++: type_t) - -Help on function is_relational in module ida_hexrays: - -is_relational(*args) - is_relational(op) -> bool - - - Is comparison operator? - - - @param op (C++: ctype_t) - -Help on function is_signed_mcode in module ida_hexrays: - -is_signed_mcode(*args) - is_signed_mcode(code) -> bool - -Help on function is_small_udt in module ida_hexrays: - -is_small_udt(*args) - is_small_udt(tif) -> bool - - - Is a small structure or union? - - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. - -Help on function is_type_correct in module ida_hexrays: - -is_type_correct(*args) - is_type_correct(ptr) -> bool - - - Verify a type string. - - @param ptr (C++: const type_t *) - @return: true if type string is correct - -Help on function is_unary in module ida_hexrays: - -is_unary(*args) - is_unary(op) -> bool - - - Is unary operator? - - - @param op (C++: ctype_t) - -Help on function is_unsigned_mcode in module ida_hexrays: - -is_unsigned_mcode(*args) - is_unsigned_mcode(code) -> bool - -Help on class ivl_t in module ida_hexrays: - -class ivl_t(uval_ivl_t) - | Proxy of C++ ivl_t class. - | - | Method resolution order: - | ivl_t - | uval_ivl_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _off, _size) -> ivl_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, off2) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | extend_to_cover(self, *args) - | extend_to_cover(self, r) -> bool - | - | includes(self, *args) - | includes(self, ivl) -> bool - | - | intersect(self, *args) - | intersect(self, r) - | - | overlap(self, *args) - | overlap(self, ivl) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ivl_t> - | delete_ivl_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from uval_ivl_t: - | - | end(self, *args) - | end(self) -> unsigned-ea-like-numeric-type↗ - | - | last(self, *args) - | last(self) -> unsigned-ea-like-numeric-type↗ - | - | valid(self, *args) - | valid(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from uval_ivl_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ - | - | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ - -Help on class ivl_with_name_t in module ida_hexrays: - -class ivl_with_name_t(__builtin__.object) - | Proxy of C++ ivl_with_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ivl_with_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t - | - | part - | ivl_with_name_t_part_get(self) -> char const * - | - | thisown - | The membership flag - | - | whole - | ivl_with_name_t_whole_get(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ivl_with_name_t> - | delete_ivl_with_name_t(self) - -Help on class ivlset_t in module ida_hexrays: - -class ivlset_t(uval_ivl_ivlset_t) - | Proxy of C++ ivlset_t class. - | - | Method resolution order: - | ivlset_t - | uval_ivl_ivlset_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ivlset_t - | __init__(self, ivl) -> ivlset_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | add(self, *args) - | add(self, ivl) -> bool - | add(self, ea, size) -> bool - | add(self, ivs) -> bool - | - | addmasked(self, *args) - | addmasked(self, ivs, mask) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, off) -> bool - | - | count(self, *args) - | count(self) -> asize_t - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | has_common(self, *args) - | has_common(self, ivl, strict=False) -> bool - | has_common(self, ivs) -> bool - | - | includes(self, *args) - | includes(self, ivs) -> bool - | - | intersect(self, *args) - | intersect(self, ivs) -> bool - | - | sub(self, *args) - | sub(self, ivl) -> bool - | sub(self, ea, size) -> bool - | sub(self, ivs) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ivlset_t> - | delete_ivlset_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from uval_ivl_ivlset_t: - | - | all_values(self, *args) - | all_values(self) -> bool - | - | begin(self, *args) - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | getivl(self, *args) - | getivl(self, idx) -> ivl_t - | - | lastivl(self, *args) - | lastivl(self) -> ivl_t - | - | nivls(self, *args) - | nivls(self) -> size_t - | - | qclear(self, *args) - | qclear(self) - | - | set_all_values(self, *args) - | set_all_values(self) - | - | single_value(self, *args) - | single_value(self, v) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from uval_ivl_ivlset_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function jcnd2set in module ida_hexrays: - -jcnd2set(*args) - jcnd2set(code) -> mcode_t - -Help on function lexcompare in module ida_hexrays: - -lexcompare(*args) - lexcompare(a, b) -> int - -Help on function lnot in module ida_hexrays: - -lnot(e) - -Help on class lvar_locator_t in module ida_hexrays: - -class lvar_locator_t(__builtin__.object) - | Proxy of C++ lvar_locator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | get_reg1(self, *args) - | get_reg1(self) -> mreg_t - | - | get_reg2(self, *args) - | get_reg2(self) -> mreg_t - | - | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_reg_var(self, *args) - | is_reg_var(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stk_var(self, *args) - | is_stk_var(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | defea - | lvar_locator_t_defea_get(self) -> ea_t - | - | location - | lvar_locator_t_location_get(self) -> vdloc_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_locator_t> - | delete_lvar_locator_t(self) - -Help on function lvar_mapping_begin in module ida_hexrays: - -lvar_mapping_begin(*args) - lvar_mapping_begin(map) -> lvar_mapping_iterator_t - - - Get iterator pointing to the beginning of lvar_mapping_t. - - - @param map (C++: const lvar_mapping_t *) - -Help on function lvar_mapping_clear in module ida_hexrays: - -lvar_mapping_clear(*args) - lvar_mapping_clear(map) - - - Clear lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - -Help on function lvar_mapping_end in module ida_hexrays: - -lvar_mapping_end(*args) - lvar_mapping_end(map) -> lvar_mapping_iterator_t - - - Get iterator pointing to the end of lvar_mapping_t. - - - @param map (C++: const lvar_mapping_t *) - -Help on function lvar_mapping_erase in module ida_hexrays: - -lvar_mapping_erase(*args) - lvar_mapping_erase(map, p) - - - Erase current element from lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_find in module ida_hexrays: - -lvar_mapping_find(*args) - lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - - - Find the specified key in lvar_mapping_t. - - - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - -Help on function lvar_mapping_first in module ida_hexrays: - -lvar_mapping_first(*args) - lvar_mapping_first(p) -> lvar_locator_t - - - Get reference to the current map key. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_free in module ida_hexrays: - -lvar_mapping_free(*args) - lvar_mapping_free(map) - - - Delete lvar_mapping_t instance. - - - @param map (C++: lvar_mapping_t *) - -Help on function lvar_mapping_insert in module ida_hexrays: - -lvar_mapping_insert(*args) - lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t - - - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) - -Help on class lvar_mapping_iterator_t in module ida_hexrays: - -class lvar_mapping_iterator_t(__builtin__.object) - | Proxy of C++ lvar_mapping_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> lvar_mapping_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_mapping_iterator_t> - | delete_lvar_mapping_iterator_t(self) - -Help on function lvar_mapping_new in module ida_hexrays: - -lvar_mapping_new(*args) - lvar_mapping_new() -> lvar_mapping_t - - - Create a new lvar_mapping_t instance. - -Help on function lvar_mapping_next in module ida_hexrays: - -lvar_mapping_next(*args) - lvar_mapping_next(p) -> lvar_mapping_iterator_t - - - Move to the next element. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_prev in module ida_hexrays: - -lvar_mapping_prev(*args) - lvar_mapping_prev(p) -> lvar_mapping_iterator_t - - - Move to the previous element. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_second in module ida_hexrays: - -lvar_mapping_second(*args) - lvar_mapping_second(p) -> lvar_locator_t - - - Get reference to the current map value. - - - @param p (C++: lvar_mapping_iterator_t) - -Help on function lvar_mapping_size in module ida_hexrays: - -lvar_mapping_size(*args) - lvar_mapping_size(map) -> size_t - - - Get size of lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - -Help on class lvar_mapping_t in module ida_hexrays: - -class lvar_mapping_t(__builtin__.object) - | Proxy of C++ std::map< lvar_locator_t,lvar_locator_t > class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lvar_mapping_t - | - | __repr__ = _swig_repr(self) - | - | at(self, *args) - | at(self, _Keyval) -> lvar_locator_t - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_mapping_t> - | delete_lvar_mapping_t(self) - -Help on class lvar_ref_t in module ida_hexrays: - -class lvar_ref_t(__builtin__.object) - | Proxy of C++ lvar_ref_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, m, i, o=0) -> lvar_ref_t - | __init__(self, r) -> lvar_ref_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | swap(self, *args) - | swap(self, r) - | - | var(self, *args) - | var(self) -> lvar_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | idx - | lvar_ref_t_idx_get(self) -> int - | - | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t - | - | off - | lvar_ref_t_off_get(self) -> sval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_ref_t> - | delete_lvar_ref_t(self) - -Help on class lvar_saved_info_t in module ida_hexrays: - -class lvar_saved_info_t(__builtin__.object) - | Proxy of C++ lvar_saved_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> lvar_saved_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear_keep(self, *args) - | clear_keep(self) - | - | clr_forced_lvar(self, *args) - | clr_forced_lvar(self) - | - | clr_nomap_lvar(self, *args) - | clr_nomap_lvar(self) - | - | clr_noptr_lvar(self, *args) - | clr_noptr_lvar(self) - | - | has_info(self, *args) - | has_info(self) -> bool - | - | is_forced_lvar(self, *args) - | is_forced_lvar(self) -> bool - | - | is_kept(self, *args) - | is_kept(self) -> bool - | - | is_nomap_lvar(self, *args) - | is_nomap_lvar(self) -> bool - | - | is_noptr_lvar(self, *args) - | is_noptr_lvar(self) -> bool - | - | set_forced_lvar(self, *args) - | set_forced_lvar(self) - | - | set_keep(self, *args) - | set_keep(self) - | - | set_nomap_lvar(self, *args) - | set_nomap_lvar(self) - | - | set_noptr_lvar(self, *args) - | set_noptr_lvar(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * - | - | flags - | lvar_saved_info_t_flags_get(self) -> int - | - | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t - | - | name - | lvar_saved_info_t_name_get(self) -> qstring * - | - | size - | lvar_saved_info_t_size_get(self) -> ssize_t - | - | thisown - | The membership flag - | - | type - | lvar_saved_info_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_saved_info_t> - | delete_lvar_saved_info_t(self) - -Help on class lvar_saved_infos_t in module ida_hexrays: - -class lvar_saved_infos_t(__builtin__.object) - | Proxy of C++ qvector< lvar_saved_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lvar_saved_info_t - | - | __init__(self, *args) - | __init__(self) -> lvar_saved_infos_t - | __init__(self, x) -> lvar_saved_infos_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t - | - | erase(self, *args) - | erase(self, it) -> lvar_saved_info_t - | erase(self, first, last) -> lvar_saved_info_t - | - | extract(self, *args) - | extract(self) -> lvar_saved_info_t - | - | find(self, *args) - | find(self, x) -> lvar_saved_info_t - | find(self, x) -> lvar_saved_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lvar_saved_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> lvar_saved_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_saved_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_saved_infos_t> - | delete_lvar_saved_infos_t(self) - -Help on class lvar_t in module ida_hexrays: - -class lvar_t(lvar_locator_t) - | Proxy of C++ lvar_t class. - | - | Method resolution order: - | lvar_t - | lvar_locator_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | accepts_type(self, *args) - | accepts_type(self, t, may_change_thisarg=False) -> bool - | - | append_list(self, *args) - | append_list(self, lst, pad_if_scattered=False) - | - | clear_used(self, *args) - | clear_used(self) - | - | clr_arg_var(self, *args) - | clr_arg_var(self) - | - | clr_automapped(self, *args) - | clr_automapped(self) - | - | clr_dummy_arg(self, *args) - | clr_dummy_arg(self) - | - | clr_fake_var(self, *args) - | clr_fake_var(self) - | - | clr_floating_var(self, *args) - | clr_floating_var(self) - | - | clr_forced_var(self, *args) - | clr_forced_var(self) - | - | clr_mapdst_var(self, *args) - | clr_mapdst_var(self) - | - | clr_mreg_done(self, *args) - | clr_mreg_done(self) - | - | clr_noptr_var(self, *args) - | clr_noptr_var(self) - | - | clr_notarg(self, *args) - | clr_notarg(self) - | - | clr_overlapped_var(self, *args) - | clr_overlapped_var(self) - | - | clr_spoiled_var(self, *args) - | clr_spoiled_var(self) - | - | clr_thisarg(self, *args) - | clr_thisarg(self) - | - | clr_unknown_width(self, *args) - | clr_unknown_width(self) - | - | clr_user_info(self, *args) - | clr_user_info(self) - | - | clr_user_name(self, *args) - | clr_user_name(self) - | - | clr_user_type(self, *args) - | clr_user_type(self) - | - | has_common(self, *args) - | has_common(self, v) -> bool - | - | has_common_bit(self, *args) - | has_common_bit(self, loc, width2) -> bool - | - | has_regname(self, *args) - | has_regname(self) -> bool - | - | is_aliasable(self, *args) - | is_aliasable(self, mba) -> bool - | - | is_automapped(self, *args) - | is_automapped(self) -> bool - | - | is_dummy_arg(self, *args) - | is_dummy_arg(self) -> bool - | - | is_forced_var(self, *args) - | is_forced_var(self) -> bool - | - | is_noptr_var(self, *args) - | is_noptr_var(self) -> bool - | - | is_notarg(self, *args) - | is_notarg(self) -> bool - | - | is_thisarg(self, *args) - | is_thisarg(self) -> bool - | - | set_arg_var(self, *args) - | set_arg_var(self) - | - | set_automapped(self, *args) - | set_automapped(self) - | - | set_dummy_arg(self, *args) - | set_dummy_arg(self) - | - | set_fake_var(self, *args) - | set_fake_var(self) - | - | set_final_lvar_type(self, *args) - | set_final_lvar_type(self, t) - | - | set_floating_var(self, *args) - | set_floating_var(self) - | - | set_forced_var(self, *args) - | set_forced_var(self) - | - | set_lvar_type(self, *args) - | set_lvar_type(self, t, may_fail=False) -> bool - | - | set_mapdst_var(self, *args) - | set_mapdst_var(self) - | - | set_mreg_done(self, *args) - | set_mreg_done(self) - | - | set_non_typed(self, *args) - | set_non_typed(self) - | - | set_noptr_var(self, *args) - | set_noptr_var(self) - | - | set_notarg(self, *args) - | set_notarg(self) - | - | set_overlapped_var(self, *args) - | set_overlapped_var(self) - | - | set_spoiled_var(self, *args) - | set_spoiled_var(self) - | - | set_thisarg(self, *args) - | set_thisarg(self) - | - | set_typed(self, *args) - | set_typed(self) - | - | set_unknown_width(self, *args) - | set_unknown_width(self) - | - | set_used(self, *args) - | set_used(self) - | - | set_user_name(self, *args) - | set_user_name(self) - | - | set_user_type(self, *args) - | set_user_type(self) - | - | set_width(self, *args) - | set_width(self, w, svw_flags=0) -> bool - | - | type(self, *args) - | type(self) -> tinfo_t - | type(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cmt - | lvar_t_cmt_get(self) -> qstring * - | - | defblk - | lvar_t_defblk_get(self) -> int - | - | divisor - | lvar_t_divisor_get(self) -> uint64 - | - | has_nice_name - | has_nice_name(self) -> bool - | - | has_user_info - | has_user_info(self) -> bool - | - | has_user_name - | has_user_name(self) -> bool - | - | has_user_type - | has_user_type(self) -> bool - | - | is_arg_var - | is_arg_var(self) -> bool - | - | is_fake_var - | is_fake_var(self) -> bool - | - | is_floating_var - | is_floating_var(self) -> bool - | - | is_mapdst_var - | is_mapdst_var(self) -> bool - | - | is_overlapped_var - | is_overlapped_var(self) -> bool - | - | is_result_var - | is_result_var(self) -> bool - | - | is_spoiled_var - | is_spoiled_var(self) -> bool - | - | is_unknown_width - | is_unknown_width(self) -> bool - | - | mreg_done - | mreg_done(self) -> bool - | - | name - | lvar_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | tif - | lvar_t_tif_get(self) -> tinfo_t - | - | typed - | typed(self) -> bool - | - | used - | used(self) -> bool - | - | width - | lvar_t_width_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_t> - | delete_lvar_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from lvar_locator_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | get_reg1(self, *args) - | get_reg1(self) -> mreg_t - | - | get_reg2(self, *args) - | get_reg2(self) -> mreg_t - | - | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_reg_var(self, *args) - | is_reg_var(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stk_var(self, *args) - | is_stk_var(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from lvar_locator_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | defea - | lvar_locator_t_defea_get(self) -> ea_t - | - | location - | lvar_locator_t_location_get(self) -> vdloc_t - -Help on class lvar_uservec_t in module ida_hexrays: - -class lvar_uservec_t(__builtin__.object) - | Proxy of C++ lvar_uservec_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lvar_uservec_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | find_info(self, *args) - | find_info(self, vloc) -> lvar_saved_info_t - | - | keep_info(self, *args) - | keep_info(self, v) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t - | - | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t - | - | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t - | - | thisown - | The membership flag - | - | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvar_uservec_t> - | delete_lvar_uservec_t(self) - -Help on class lvars_t in module ida_hexrays: - -class lvars_t(qvector_lvar_t) - | Proxy of C++ lvars_t class. - | - | Method resolution order: - | lvars_t - | qvector_lvar_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lvars_t - | - | __repr__ = _swig_repr(self) - | - | find(self, *args) - | find(self, ll) -> lvar_t - | - | find_input_lvar(self, *args) - | find_input_lvar(self, argloc, _size) -> int - | - | find_lvar(self, *args) - | find_lvar(self, location, width, defblk=-1) -> int - | - | find_stkvar(self, *args) - | find_stkvar(self, spoff, width) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lvars_t> - | delete_lvars_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from qvector_lvar_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lvar_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_t - | - | at = __getitem__(self, *args) - | __getitem__(self, i) -> lvar_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> lvar_t - | begin(self) -> lvar_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> lvar_t - | end(self) -> lvar_t - | - | erase(self, *args) - | erase(self, it) -> lvar_t - | erase(self, first, last) -> lvar_t - | - | extract(self, *args) - | extract(self) -> lvar_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lvar_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> lvar_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from qvector_lvar_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function make_num in module ida_hexrays: - -make_num(*args) - -Help on function make_pointer in module ida_hexrays: - -make_pointer(*args) - make_pointer(type) -> tinfo_t - - - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - - @param type: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, - -Help on function make_ref in module ida_hexrays: - -make_ref(e) - -Help on function mark_cfunc_dirty in module ida_hexrays: - -mark_cfunc_dirty(*args) - mark_cfunc_dirty(ea, close_views=False) -> bool - - - Flush the cached decompilation results. Erases a cache entry for the - specified function. - - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) - @return: if a cache entry existed. - -Help on class mba_range_iterator_t in module ida_hexrays: - -class mba_range_iterator_t(__builtin__.object) - | Proxy of C++ mba_range_iterator_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mba_range_iterator_t - | - | __repr__ = _swig_repr(self) - | - | chunk(self, *args) - | chunk(self) -> range_t - | - | is_snippet(self, *args) - | is_snippet(self) -> bool - | - | next(self, *args) - | next(self) -> bool - | - | set(self, *args) - | set(self, mbr) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t - | - | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mba_range_iterator_t> - | delete_mba_range_iterator_t(self) - -Help on class mba_ranges_t in module ida_hexrays: - -class mba_ranges_t(__builtin__.object) - | Proxy of C++ mba_ranges_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _pfn=None) -> mba_ranges_t - | __init__(self, r) -> mba_ranges_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_snippet(self, *args) - | is_snippet(self) -> bool - | - | start(self, *args) - | start(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | pfn - | mba_ranges_t_pfn_get(self) -> func_t * - | - | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mba_ranges_t> - | delete_mba_ranges_t(self) - -Help on class mbl_array_t in module ida_hexrays: - -class mbl_array_t(__builtin__.object) - | Proxy of C++ mbl_array_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _print(self, *args) - | _print(self, vp) - | - | _register(self, *args) - | _register(self) - | - | alloc_lvars(self, *args) - | alloc_lvars(self) - | - | analyze_calls(self, *args) - | analyze_calls(self, acflags) -> int - | - | arg(self, *args) - | arg(self, n) -> lvar_t - | arg(self, n) -> lvar_t - | - | argbase(self, *args) - | argbase(self) -> sval_t - | - | argidx_ok(self, *args) - | argidx_ok(self) -> bool - | - | argidx_sorted(self, *args) - | argidx_sorted(self) -> bool - | - | bad_call_sp_detected(self, *args) - | bad_call_sp_detected(self) -> bool - | - | build_graph(self, *args) - | build_graph(self) -> merror_t - | - | calc_shins_flags(self, *args) - | calc_shins_flags(self) -> int - | - | callinfo_built(self, *args) - | callinfo_built(self) -> bool - | - | chain_varnums_ok(self, *args) - | chain_varnums_ok(self) -> bool - | - | clr_cdtr(self, *args) - | clr_cdtr(self) - | - | clr_mba_flags(self, *args) - | clr_mba_flags(self, f) - | - | clr_mba_flags2(self, *args) - | clr_mba_flags2(self, f) - | - | combine_blocks(self, *args) - | combine_blocks(self) -> bool - | - | common_stkvars_stkargs(self, *args) - | common_stkvars_stkargs(self) -> bool - | - | copy_block(self, *args) - | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t - | - | deleted_pairs(self, *args) - | deleted_pairs(self) -> bool - | - | display_numaddrs(self, *args) - | display_numaddrs(self) -> bool - | - | display_valnums(self, *args) - | display_valnums(self) -> bool - | - | dump(self, *args) - | dump(self) - | - | dump_mba(self, *args) - | dump_mba(self, _verify, title) - | - | find_mop(self, *args) - | find_mop(self, ctx, ea, is_dest, list) -> mop_t - | - | for_all_insns(self, *args) - | for_all_insns(self, mv) -> int - | - | for_all_ops(self, *args) - | for_all_ops(self, mv) -> int - | - | for_all_topinsns(self, *args) - | for_all_topinsns(self, mv) -> int - | - | generated_asserts(self, *args) - | generated_asserts(self) -> bool - | - | get_args_region(self, *args) - | get_args_region(self) -> ivl_t - | - | get_curfunc(self, *args) - | get_curfunc(self) -> func_t * - | - | get_graph(self, *args) - | get_graph(self) -> mbl_graph_t - | - | get_ida_argloc(self, *args) - | get_ida_argloc(self, v) -> argloc_t - | - | get_lvars_region(self, *args) - | get_lvars_region(self) -> ivl_t - | - | get_mba_flags(self, *args) - | get_mba_flags(self) -> int - | - | get_mba_flags2(self, *args) - | get_mba_flags2(self) -> int - | - | get_mblock(self, *args) - | get_mblock(self, n) -> mblock_t - | get_mblock(self, n) -> mblock_t - | - | get_shadow_region(self, *args) - | get_shadow_region(self) -> ivl_t - | - | get_stack_region(self, *args) - | get_stack_region(self) -> ivl_t - | - | get_std_region(self, *args) - | get_std_region(self, idx) -> ivl_t - | - | graph_insns(self, *args) - | graph_insns(self) -> bool - | - | has_bad_sp(self, *args) - | has_bad_sp(self) -> bool - | - | has_over_chains(self, *args) - | has_over_chains(self) -> bool - | - | has_passregs(self, *args) - | has_passregs(self) -> bool - | - | idaloc2vd(self, *args) - | idaloc2vd(self, loc, width) -> vdloc_t - | - | insert_block(self, *args) - | insert_block(self, bblk) -> mblock_t - | - | is_cdtr(self, *args) - | is_cdtr(self) -> bool - | - | is_ctr(self, *args) - | is_ctr(self) -> bool - | - | is_dtr(self, *args) - | is_dtr(self) -> bool - | - | is_pattern(self, *args) - | is_pattern(self) -> bool - | - | is_snippet(self, *args) - | is_snippet(self) -> bool - | - | is_stkarg(self, *args) - | is_stkarg(self, v) -> bool - | - | is_thunk(self, *args) - | is_thunk(self) -> bool - | - | loaded_gdl(self, *args) - | loaded_gdl(self) -> bool - | - | lvar_names_ok(self, *args) - | lvar_names_ok(self) -> bool - | - | lvars_allocated(self, *args) - | lvars_allocated(self) -> bool - | - | lvars_renamed(self, *args) - | lvars_renamed(self) -> bool - | - | mark_chains_dirty(self, *args) - | mark_chains_dirty(self) - | - | may_refine_rettype(self, *args) - | may_refine_rettype(self) -> bool - | - | optimize_global(self, *args) - | optimize_global(self) -> merror_t - | - | optimize_local(self, *args) - | optimize_local(self, locopt_bits) -> int - | - | optimized(self, *args) - | optimized(self) -> bool - | - | precise_defeas(self, *args) - | precise_defeas(self) -> bool - | - | propagated_asserts(self, *args) - | propagated_asserts(self) -> bool - | - | really_alloc(self, *args) - | really_alloc(self) -> bool - | - | regargs_is_not_aligned(self, *args) - | regargs_is_not_aligned(self) -> bool - | - | remove_block(self, *args) - | remove_block(self, blk) -> bool - | - | remove_empty_blocks(self, *args) - | remove_empty_blocks(self) -> bool - | - | returns_fpval(self, *args) - | returns_fpval(self) -> bool - | - | rtype_refined(self, *args) - | rtype_refined(self) -> bool - | - | saverest_done(self, *args) - | saverest_done(self) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | set_mba_flags(self, *args) - | set_mba_flags(self, f) - | - | set_mba_flags2(self, *args) - | set_mba_flags2(self, f) - | - | short_display(self, *args) - | short_display(self) -> bool - | - | should_beautify(self, *args) - | should_beautify(self) -> bool - | - | show_reduction(self, *args) - | show_reduction(self) -> bool - | - | stkoff_ida2vd(self, *args) - | stkoff_ida2vd(self, off) -> sval_t - | - | stkoff_vd2ida(self, *args) - | stkoff_vd2ida(self, off) -> sval_t - | - | term(self, *args) - | term(self) - | - | use_frame(self, *args) - | use_frame(self) -> bool - | - | use_wingraph32(self, *args) - | use_wingraph32(self) -> bool - | - | valranges_done(self, *args) - | valranges_done(self) -> bool - | - | vd2idaloc(self, *args) - | vd2idaloc(self, loc, width, spd) -> argloc_t - | vd2idaloc(self, loc, width) -> argloc_t - | - | verify(self, *args) - | verify(self, always) - | - | write_to_const_detected(self, *args) - | write_to_const_detected(self) -> bool - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | deserialize(*args) - | deserialize(bytes) -> mbl_array_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | aliased_args - | mbl_array_t_aliased_args_get(self) -> ivl_t - | - | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t - | - | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t - | - | argidx - | mbl_array_t_argidx_get(self) -> intvec_t - | - | blocks - | mbl_array_t_blocks_get(self) -> mblock_t - | - | cc - | mbl_array_t_cc_get(self) -> cm_t - | - | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t - | - | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t - | - | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t - | - | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * - | - | final_type - | mbl_array_t_final_type_get(self) -> bool - | - | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t - | - | fpd - | mbl_array_t_fpd_get(self) -> sval_t - | - | frregs - | mbl_array_t_frregs_get(self) -> sval_t - | - | frsize - | mbl_array_t_frsize_get(self) -> sval_t - | - | fti_flags - | mbl_array_t_fti_flags_get(self) -> int - | - | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t - | - | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t - | - | idb_node - | mbl_array_t_idb_node_get(self) -> netnode - | - | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t - | - | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t - | - | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t - | - | label - | mbl_array_t_label_get(self) -> qstring * - | - | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t - | - | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t - | - | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t - | - | minargref - | mbl_array_t_minargref_get(self) -> sval_t - | - | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t - | - | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t - | - | natural - | mbl_array_t_natural_get(self) -> mblock_t ** - | - | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t - | - | notes - | mbl_array_t_notes_get(self) -> hexwarns_t - | - | npurged - | mbl_array_t_npurged_get(self) -> int - | - | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] - | - | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int - | - | qty - | mbl_array_t_qty_get(self) -> int - | - | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t - | - | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t - | - | retsize - | mbl_array_t_retsize_get(self) -> int - | - | retvaridx - | mbl_array_t_retvaridx_get(self) -> int - | - | shadow_args - | mbl_array_t_shadow_args_get(self) -> int - | - | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t - | - | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t - | - | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t - | - | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t - | - | thisown - | The membership flag - | - | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t - | - | vars - | mbl_array_t_vars_get(self) -> lvars_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mbl_array_t> - | delete_mbl_array_t(self) - -Help on function mbl_array_t_deserialize in module ida_hexrays: - -mbl_array_t_deserialize(*args) - mbl_array_t_deserialize(bytes) -> mbl_array_t - -Help on class mbl_graph_t in module ida_hexrays: - -class mbl_graph_t(simple_graph_t) - | Proxy of C++ mbl_graph_t class. - | - | Method resolution order: - | mbl_graph_t - | simple_graph_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | get_chain_stamp(self, *args) - | get_chain_stamp(self) -> int - | - | get_du(self, *args) - | get_du(self, gctype) -> graph_chains_t - | - | get_mblock(self, *args) - | get_mblock(self, n) -> mblock_t - | - | get_ud(self, *args) - | get_ud(self, gctype) -> graph_chains_t - | - | is_du_chain_dirty(self, *args) - | is_du_chain_dirty(self, gctype) -> bool - | - | is_redefined_globally(self, *args) - | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | - | is_ud_chain_dirty(self, *args) - | is_ud_chain_dirty(self, gctype) -> bool - | - | is_used_globally(self, *args) - | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from simple_graph_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool - | - | title - | simple_graph_t_title_get(self) -> qstring * - -Help on class mblock_t in module ida_hexrays: - -class mblock_t(__builtin__.object) - | Proxy of C++ mblock_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, vp) - | - | append_def_list(self, *args) - | append_def_list(self, list, op, maymust) - | - | append_use_list(self, *args) - | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) - | - | build_def_list(self, *args) - | build_def_list(self, ins, maymust) -> mlist_t - | - | build_lists(self, *args) - | build_lists(self, kill_deads) -> int - | - | build_use_list(self, *args) - | build_use_list(self, ins, maymust) -> mlist_t - | - | dump(self, *args) - | dump(self) - | - | dump_block(self, *args) - | dump_block(self, title) - | - | empty(self, *args) - | empty(self) -> bool - | - | find_access(self, *args) - | find_access(self, op, parent, mend, fdflags) -> minsn_t - | - | find_def(self, *args) - | find_def(self, op, p_i1, i2, fdflags) -> minsn_t - | - | find_first_use(self, *args) - | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | - | find_redefinition(self, *args) - | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t - | - | find_use(self, *args) - | find_use(self, op, p_i1, i2, fdflags) -> minsn_t - | - | for_all_insns(self, *args) - | for_all_insns(self, mv) -> int - | - | for_all_ops(self, *args) - | for_all_ops(self, mv) -> int - | - | for_all_uses(self, *args) - | for_all_uses(self, list, i1, i2, mmv) -> int - | - | get_reginsn_qty(self, *args) - | get_reginsn_qty(self) -> size_t - | - | get_valranges(self, *args) - | get_valranges(self, res, vivl, vrflags) -> bool - | get_valranges(self, res, vivl, m, vrflags) -> bool - | - | insert_into_block(self, *args) - | insert_into_block(self, nm, om) -> minsn_t - | - | is_branch(self, *args) - | is_branch(self) -> bool - | - | is_call_block(self, *args) - | is_call_block(self) -> bool - | - | is_nway(self, *args) - | is_nway(self) -> bool - | - | is_redefined(self, *args) - | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | - | is_rhs_redefined(self, *args) - | is_rhs_redefined(self, ins, i1, i2) -> bool - | - | is_simple_goto_block(self, *args) - | is_simple_goto_block(self) -> bool - | - | is_simple_jcnd_block(self, *args) - | is_simple_jcnd_block(self) -> bool - | - | is_unknown_call(self, *args) - | is_unknown_call(self) -> bool - | - | is_used(self, *args) - | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool - | - | lists_dirty(self, *args) - | lists_dirty(self) -> bool - | - | lists_ready(self, *args) - | lists_ready(self) -> bool - | - | make_lists_ready(self, *args) - | make_lists_ready(self) -> int - | - | make_nop(self, *args) - | make_nop(self, m) - | - | mark_lists_dirty(self, *args) - | mark_lists_dirty(self) - | - | needs_propagation(self, *args) - | needs_propagation(self) -> bool - | - | npred(self, *args) - | npred(self) -> int - | - | nsucc(self, *args) - | nsucc(self) -> int - | - | optimize_block(self, *args) - | optimize_block(self) -> int - | - | optimize_insn(self, *args) - | optimize_insn(self, m, optflags=0x0002|0x0004) -> int - | - | optimize_useless_jump(self, *args) - | optimize_useless_jump(self) -> int - | - | pred(self, *args) - | pred(self, n) -> int - | - | preds(self) - | Iterates the list of predecessor blocks - | - | remove_from_block(self, *args) - | remove_from_block(self, m) -> minsn_t - | - | request_demote64(self, *args) - | request_demote64(self) - | - | request_propagation(self, *args) - | request_propagation(self) - | - | succ(self, *args) - | succ(self, n) -> int - | - | succs(self) - | Iterates the list of successor blocks - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t - | - | dnu - | mblock_t_dnu_get(self) -> mlist_t - | - | end - | mblock_t_end_get(self) -> ea_t - | - | flags - | mblock_t_flags_get(self) -> uint32 - | - | head - | mblock_t_head_get(self) -> minsn_t - | - | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t - | - | maybdef - | mblock_t_maybdef_get(self) -> mlist_t - | - | maybuse - | mblock_t_maybuse_get(self) -> mlist_t - | - | mba - | mblock_t_mba_get(self) -> mbl_array_t - | - | minbargref - | mblock_t_minbargref_get(self) -> sval_t - | - | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t - | - | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t - | - | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t - | - | nextb - | mblock_t_nextb_get(self) -> mblock_t - | - | predset - | mblock_t_predset_get(self) -> intvec_t - | - | prevb - | mblock_t_prevb_get(self) -> mblock_t - | - | serial - | mblock_t_serial_get(self) -> int - | - | start - | mblock_t_start_get(self) -> ea_t - | - | succset - | mblock_t_succset_get(self) -> intvec_t - | - | tail - | mblock_t_tail_get(self) -> minsn_t - | - | thisown - | The membership flag - | - | type - | mblock_t_type_get(self) -> mblock_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mblock_t> - | delete_mblock_t(self) - -Help on class mcallarg_t in module ida_hexrays: - -class mcallarg_t(mop_t) - | Proxy of C++ mcallarg_t class. - | - | Method resolution order: - | mcallarg_t - | mop_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mcallarg_t - | __init__(self, rarg) -> mcallarg_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | copy_mop(self, *args) - | copy_mop(self, op) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | make_int(self, *args) - | make_int(self, val, val_ea, opno=0) - | - | make_uint(self, *args) - | make_uint(self, val, val_ea, opno=0) - | - | set_regarg(self, *args) - | set_regarg(self, mr, sz, tif) - | set_regarg(self, mr, tif) - | set_regarg(self, mr, dt, sign=type_unsigned) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | argloc - | mcallarg_t_argloc_get(self) -> argloc_t - | - | ea - | mcallarg_t_ea_get(self) -> ea_t - | - | name - | mcallarg_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | mcallarg_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mcallarg_t> - | delete_mcallarg_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from mop_t: - | - | __eq__(self, *args) - | __eq__(self, rop) -> bool - | - | __lt__(self, *args) - | __lt__(self, rop) -> bool - | - | __ne__(self, *args) - | __ne__(self, rop) -> bool - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_t(self) - | - | _get_a(self, *args) - | _get_a(self) -> mop_addr_t - | - | _get_b(self, *args) - | _get_b(self) -> int - | - | _get_c(self, *args) - | _get_c(self) -> mcases_t - | - | _get_cstr(self, *args) - | _get_cstr(self) -> char const * - | - | _get_d(self, *args) - | _get_d(self) -> minsn_t - | - | _get_f(self, *args) - | _get_f(self) -> mcallinfo_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_g(self, *args) - | _get_g(self) -> ea_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char const * - | - | _get_l(self, *args) - | _get_l(self) -> lvar_ref_t - | - | _get_nnn(self, *args) - | _get_nnn(self) -> mnumber_t - | - | _get_pair(self, *args) - | _get_pair(self) -> mop_pair_t - | - | _get_r(self, *args) - | _get_r(self) -> mreg_t - | - | _get_s(self, *args) - | _get_s(self) -> stkvar_ref_t - | - | _get_scif(self, *args) - | _get_scif(self) -> scif_t - | - | _get_t(self, *args) - | _get_t(self) -> mopt_t - | - | _make_blkref(self, *args) - | _make_blkref(self, blknum) - | - | _make_callinfo(self, *args) - | _make_callinfo(self, fi) - | - | _make_cases(self, *args) - | _make_cases(self, _cases) - | - | _make_gvar(self, *args) - | _make_gvar(self, ea) - | - | _make_insn(self, *args) - | _make_insn(self, ins) - | - | _make_lvar(self, *args) - | _make_lvar(self, mba, idx, off=0) - | - | _make_pair(self, *args) - | _make_pair(self, _pair) - | - | _make_reg(self, *args) - | _make_reg(self, reg) - | _make_reg(self, reg, _size) - | - | _make_stkvar(self, *args) - | _make_stkvar(self, mba, off) - | - | _make_strlit(self, *args) - | _make_strlit(self, str) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _register(self, *args) - | _register(self) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_b(self, *args) - | _set_b(self, _v) - | - | _set_c(self, *args) - | _set_c(self, _v) - | - | _set_cstr(self, *args) - | _set_cstr(self, _v) - | - | _set_d(self, *args) - | _set_d(self, _v) - | - | _set_f(self, *args) - | _set_f(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_g(self, *args) - | _set_g(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_l(self, *args) - | _set_l(self, _v) - | - | _set_nnn(self, *args) - | _set_nnn(self, _v) - | - | _set_pair(self, *args) - | _set_pair(self, _v) - | - | _set_r(self, *args) - | _set_r(self, _v) - | - | _set_s(self, *args) - | _set_s(self, _v) - | - | _set_scif(self, *args) - | _set_scif(self, _v) - | - | _set_t(self, *args) - | _set_t(self, v) - | - | apply_ld_mcode(self, *args) - | apply_ld_mcode(self, mcode, ea, newsize) - | - | apply_xds(self, *args) - | apply_xds(self, ea, newsize) - | - | apply_xdu(self, *args) - | apply_xdu(self, ea, newsize) - | - | assign(self, *args) - | assign(self, rop) -> mop_t - | - | change_size(self, *args) - | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | - | create_from_insn(self, *args) - | create_from_insn(self, m) - | - | create_from_ivlset(self, *args) - | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | - | create_from_mlist(self, *args) - | create_from_mlist(self, mba, lst, fullsize) -> bool - | - | create_from_scattered_vdloc(self, *args) - | create_from_scattered_vdloc(self, mba, name, type, loc) - | - | create_from_vdloc(self, *args) - | create_from_vdloc(self, mba, loc, _size) - | - | double_size(self, *args) - | double_size(self, sideff=WITH_SIDEFF) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | equal_mops(self, *args) - | equal_mops(self, rop, eqflags) -> bool - | - | erase(self, *args) - | erase(self) - | - | erase_but_keep_size(self, *args) - | erase_but_keep_size(self) - | - | for_all_ops(self, *args) - | for_all_ops(self, mv, type=None, is_target=False) -> int - | - | for_all_scattered_submops(self, *args) - | for_all_scattered_submops(self, sv) -> int - | - | get_insn(self, *args) - | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t - | - | get_stkoff(self, *args) - | get_stkoff(self, p_off) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off) -> member_t * - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is01(self, *args) - | is01(self) -> bool - | - | is_arglist(self, *args) - | is_arglist(self) -> bool - | - | is_bit_reg(self, *args) - | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool - | - | is_cc(self, *args) - | is_cc(self) -> bool - | - | is_ccflags(self, *args) - | is_ccflags(self) -> bool - | - | is_constant(self, *args) - | is_constant(self, is_signed=True) -> bool - | - | is_equal_to(self, *args) - | is_equal_to(self, n, is_signed=True) -> bool - | - | is_extended_from(self, *args) - | is_extended_from(self, nbytes, is_signed) -> bool - | - | is_glbaddr(self, *args) - | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool - | - | is_impptr_done(self, *args) - | is_impptr_done(self) -> bool - | - | is_insn(self, *args) - | is_insn(self) -> bool - | is_insn(self, code) -> bool - | - | is_kreg(self, *args) - | is_kreg(self) -> bool - | - | is_mob(self, *args) - | is_mob(self, serial) -> bool - | - | is_negative_constant(self, *args) - | is_negative_constant(self) -> bool - | - | is_one(self, *args) - | is_one(self) -> bool - | - | is_positive_constant(self, *args) - | is_positive_constant(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | is_reg(self, _r) -> bool - | is_reg(self, _r, _size) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_sign_extended_from(self, *args) - | is_sign_extended_from(self, nbytes) -> bool - | - | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | is_zero_extended_from(self, *args) - | is_zero_extended_from(self, nbytes) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, rop) -> int - | - | make_blkref(self, *args) - | make_blkref(self, blknum) - | - | make_first_half(self, *args) - | make_first_half(self, width) -> bool - | - | make_fpnum(self, *args) - | make_fpnum(self, bytes, _size) -> bool - | - | make_gvar(self, *args) - | make_gvar(self, ea) - | - | make_helper(self, *args) - | make_helper(self, name) - | - | make_high_half(self, *args) - | make_high_half(self, width) -> bool - | - | make_insn(self, *args) - | make_insn(self, ins) - | - | make_low_half(self, *args) - | make_low_half(self, width) -> bool - | - | make_number(self, *args) - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | - | make_reg(self, *args) - | make_reg(self, reg) - | make_reg(self, reg, _size) - | - | make_reg_pair(self, *args) - | make_reg_pair(self, loreg, hireg, halfsize) - | - | make_second_half(self, *args) - | make_second_half(self, width) -> bool - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | preserve_side_effects(self, *args) - | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | - | probably_floating(self, *args) - | probably_floating(self) -> bool - | - | replace_by(self, o) - | - | set_impptr_done(self, *args) - | set_impptr_done(self) - | - | set_udt(self, *args) - | set_udt(self) - | - | set_undef_val(self, *args) - | set_undef_val(self) - | - | shift_mop(self, *args) - | shift_mop(self, offset) -> bool - | - | signed_value(self, *args) - | signed_value(self) -> int64 - | - | swap(self, *args) - | swap(self, rop) - | - | unsigned_value(self, *args) - | unsigned_value(self) -> uint64 - | - | value(self, *args) - | value(self, is_signed) -> uint64 - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from mop_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a - | - | b - | - | c - | - | cstr - | - | d - | - | f - | - | fpc - | - | g - | - | helper - | - | l - | - | meminfo - | - | nnn - | - | obj_id - | _obj_id(self) -> PyObject * - | - | oprops - | mop_t_oprops_get(self) -> uint8 - | - | pair - | - | r - | - | s - | - | scif - | - | size - | mop_t_size_get(self) -> int - | - | t - | _get_t(self) -> mopt_t - | - | valnum - | mop_t_valnum_get(self) -> uint16 - -Help on class mcallargs_t in module ida_hexrays: - -class mcallargs_t(__builtin__.object) - | Proxy of C++ qvector< mcallarg_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> mcallarg_t - | - | __init__(self, *args) - | __init__(self) -> mcallargs_t - | __init__(self, x) -> mcallargs_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> mcallarg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> mcallarg_t - | end(self) -> mcallarg_t - | - | erase(self, *args) - | erase(self, it) -> mcallarg_t - | erase(self, first, last) -> mcallarg_t - | - | extract(self, *args) - | extract(self) -> mcallarg_t - | - | find(self, *args) - | find(self, x) -> mcallarg_t - | find(self, x) -> mcallarg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=mcallarg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> mcallarg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> mcallarg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mcallargs_t> - | delete_mcallargs_t(self) - -Help on class mcallinfo_t in module ida_hexrays: - -class mcallinfo_t(__builtin__.object) - | Proxy of C++ mcallinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, size=-1, shins_flags=0x04|0x02) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | get_type(self, *args) - | get_type(self) -> tinfo_t - | - | is_vararg(self, *args) - | is_vararg(self) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, f) -> int - | - | set_type(self, *args) - | set_type(self, type) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | args - | mcallinfo_t_args_get(self) -> mcallargs_t - | - | call_spd - | mcallinfo_t_call_spd_get(self) -> int - | - | callee - | mcallinfo_t_callee_get(self) -> ea_t - | - | cc - | mcallinfo_t_cc_get(self) -> cm_t - | - | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t - | - | flags - | mcallinfo_t_flags_get(self) -> int - | - | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t - | - | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t - | - | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t - | - | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t - | - | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t - | - | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t - | - | role - | mcallinfo_t_role_get(self) -> funcrole_t - | - | solid_args - | mcallinfo_t_solid_args_get(self) -> int - | - | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t - | - | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int - | - | thisown - | The membership flag - | - | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mcallinfo_t> - | delete_mcallinfo_t(self) - -Help on class mcases_t in module ida_hexrays: - -class mcases_t(__builtin__.object) - | Proxy of C++ mcases_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> mcases_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | resize(self, *args) - | resize(self, s) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | targets - | mcases_t_targets_get(self) -> intvec_t - | - | thisown - | The membership flag - | - | values - | mcases_t_values_get(self) -> casevec_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mcases_t> - | delete_mcases_t(self) - -Help on function mcode_modifies_d in module ida_hexrays: - -mcode_modifies_d(*args) - mcode_modifies_d(mcode) -> bool - -Help on class microcode_filter_t in module ida_hexrays: - -class microcode_filter_t(__builtin__.object) - | Proxy of C++ microcode_filter_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> microcode_filter_t - | - | __repr__ = _swig_repr(self) - | - | apply(self, *args) - | apply(self, cdg) -> merror_t - | - | match(self, *args) - | match(self, cdg) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_microcode_filter_t> - | delete_microcode_filter_t(self) - -Help on class minsn_t in module ida_hexrays: - -class minsn_t(__builtin__.object) - | Proxy of C++ minsn_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _ea) -> minsn_t - | __init__(self, m) -> minsn_t - | - | __lt__(self, *args) - | __lt__(self, ri) -> bool - | - | __repr__ = _swig_repr(self) - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _make_nop(self, *args) - | _make_nop(self) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _minsn_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _minsn_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | _register(self, *args) - | _register(self) - | - | clr_assert(self, *args) - | clr_assert(self) - | - | clr_combinable(self, *args) - | clr_combinable(self) - | - | clr_combined(self, *args) - | clr_combined(self) - | - | clr_fpinsn(self, *args) - | clr_fpinsn(self) - | - | clr_ignlowsrc(self, *args) - | clr_ignlowsrc(self) - | - | clr_multimov(self, *args) - | clr_multimov(self) - | - | clr_noret_icall(self, *args) - | clr_noret_icall(self) - | - | clr_propagatable(self, *args) - | clr_propagatable(self) - | - | clr_tailcall(self, *args) - | clr_tailcall(self) - | - | contains_call(self, *args) - | contains_call(self, with_helpers=False) -> bool - | - | contains_opcode(self, *args) - | contains_opcode(self, mcode) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | equal_insns(self, *args) - | equal_insns(self, m, eqflags) -> bool - | - | find_call(self, *args) - | find_call(self, with_helpers=False) -> minsn_t - | - | find_ins_op(self, *args) - | find_ins_op(self, op=m_nop) -> minsn_t - | - | find_num_op(self, *args) - | find_num_op(self) -> mop_t - | - | find_opcode(self, *args) - | find_opcode(self, mcode) -> minsn_t - | find_opcode(self, mcode) -> minsn_t - | - | for_all_insns(self, *args) - | for_all_insns(self, mv) -> int - | - | for_all_ops(self, *args) - | for_all_ops(self, mv) -> int - | - | get_role(self, *args) - | get_role(self) -> funcrole_t - | - | get_split_size(self, *args) - | get_split_size(self) -> int - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is_after(self, *args) - | is_after(self, m) -> bool - | - | is_alloca(self, *args) - | is_alloca(self) -> bool - | - | is_assert(self, *args) - | is_assert(self) -> bool - | - | is_between(self, *args) - | is_between(self, m1, m2) -> bool - | - | is_bswap(self, *args) - | is_bswap(self) -> bool - | - | is_cleaning_pop(self, *args) - | is_cleaning_pop(self) -> bool - | - | is_combinable(self, *args) - | is_combinable(self) -> bool - | - | is_combined(self, *args) - | is_combined(self) -> bool - | - | is_extstx(self, *args) - | is_extstx(self) -> bool - | - | is_farcall(self, *args) - | is_farcall(self) -> bool - | - | is_fpinsn(self, *args) - | is_fpinsn(self) -> bool - | - | is_helper(self, *args) - | is_helper(self, name) -> bool - | - | is_ignlowsrc(self, *args) - | is_ignlowsrc(self) -> bool - | - | is_inverted_jx(self, *args) - | is_inverted_jx(self) -> bool - | - | is_like_move(self, *args) - | is_like_move(self) -> bool - | - | is_mbarrier(self, *args) - | is_mbarrier(self) -> bool - | - | is_memcpy(self, *args) - | is_memcpy(self) -> bool - | - | is_memset(self, *args) - | is_memset(self) -> bool - | - | is_mov(self, *args) - | is_mov(self) -> bool - | - | is_multimov(self, *args) - | is_multimov(self) -> bool - | - | is_noret_call(self, *args) - | is_noret_call(self, ignore_noret_icall=False) -> bool - | - | is_optional(self, *args) - | is_optional(self) -> bool - | - | is_persistent(self, *args) - | is_persistent(self) -> bool - | - | is_propagatable(self, *args) - | is_propagatable(self) -> bool - | - | is_readflags(self, *args) - | is_readflags(self) -> bool - | - | is_tailcall(self, *args) - | is_tailcall(self) -> bool - | - | is_unknown_call(self, *args) - | is_unknown_call(self) -> bool - | - | is_wild_match(self, *args) - | is_wild_match(self) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, ri) -> int - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | modifes_d(self, *args) - | modifes_d(self) -> bool - | - | modifies_pair_mop(self, *args) - | modifies_pair_mop(self) -> bool - | - | optimize_solo(self, *args) - | optimize_solo(self, optflags=0) -> int - | - | optimize_subtree(self, *args) - | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int - | - | replace_by(self, o) - | - | set_assert(self, *args) - | set_assert(self) - | - | set_cleaning_pop(self, *args) - | set_cleaning_pop(self) - | - | set_combinable(self, *args) - | set_combinable(self) - | - | set_extstx(self, *args) - | set_extstx(self) - | - | set_farcall(self, *args) - | set_farcall(self) - | - | set_fpinsn(self, *args) - | set_fpinsn(self) - | - | set_ignlowsrc(self, *args) - | set_ignlowsrc(self) - | - | set_inverted_jx(self, *args) - | set_inverted_jx(self) - | - | set_mbarrier(self, *args) - | set_mbarrier(self) - | - | set_multimov(self, *args) - | set_multimov(self) - | - | set_noret_icall(self, *args) - | set_noret_icall(self) - | - | set_optional(self, *args) - | set_optional(self) - | - | set_persistent(self, *args) - | set_persistent(self) - | - | set_split_size(self, *args) - | set_split_size(self, s) - | - | set_tailcall(self, *args) - | set_tailcall(self) - | - | set_wild_match(self, *args) - | set_wild_match(self) - | - | setaddr(self, *args) - | setaddr(self, new_ea) - | - | swap(self, *args) - | swap(self, m) - | - | was_noret_icall(self, *args) - | was_noret_icall(self) -> bool - | - | was_split(self, *args) - | was_split(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | d - | minsn_t_d_get(self) -> mop_t - | - | ea - | minsn_t_ea_get(self) -> ea_t - | - | iprops - | minsn_t_iprops_get(self) -> int - | - | l - | minsn_t_l_get(self) -> mop_t - | - | meminfo - | - | next - | minsn_t_next_get(self) -> minsn_t - | - | obj_id - | _obj_id(self) -> PyObject * - | - | opcode - | minsn_t_opcode_get(self) -> mcode_t - | - | prev - | minsn_t_prev_get(self) -> minsn_t - | - | r - | minsn_t_r_get(self) -> mop_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_minsn_t> - | delete_minsn_t(self) - -Help on class minsn_visitor_t in module ida_hexrays: - -class minsn_visitor_t(op_parent_info_t) - | Proxy of C++ minsn_visitor_t class. - | - | Method resolution order: - | minsn_visitor_t - | op_parent_info_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_minsn(self, *args) - | visit_minsn(self) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_minsn_visitor_t> - | delete_minsn_visitor_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from op_parent_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blk - | op_parent_info_t_blk_get(self) -> mblock_t - | - | curins - | op_parent_info_t_curins_get(self) -> minsn_t - | - | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t - | - | topins - | op_parent_info_t_topins_get(self) -> minsn_t - -Help on class mlist_mop_visitor_t in module ida_hexrays: - -class mlist_mop_visitor_t(__builtin__.object) - | Proxy of C++ mlist_mop_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> mlist_mop_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_mop(self, *args) - | visit_mop(self, op) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | changed - | mlist_mop_visitor_t_changed_get(self) -> bool - | - | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t - | - | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t - | - | thisown - | The membership flag - | - | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mlist_mop_visitor_t> - | delete_mlist_mop_visitor_t(self) - -Help on class mlist_t in module ida_hexrays: - -class mlist_t(__builtin__.object) - | Proxy of C++ mlist_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> mlist_t - | __init__(self, ivl) -> mlist_t - | __init__(self, r, size) -> mlist_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | add(self, *args) - | add(self, r, size) -> bool - | add(self, r) -> bool - | add(self, ivl) -> bool - | add(self, lst) -> bool - | - | addmem(self, *args) - | addmem(self, ea, size) -> bool - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | count(self, *args) - | count(self) -> asize_t - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | has(self, *args) - | has(self, r) -> bool - | - | has_all(self, *args) - | has_all(self, r, size) -> bool - | - | has_any(self, *args) - | has_any(self, r, size) -> bool - | - | has_common(self, *args) - | has_common(self, lst) -> bool - | - | has_memory(self, *args) - | has_memory(self) -> bool - | - | includes(self, *args) - | includes(self, lst) -> bool - | - | intersect(self, *args) - | intersect(self, lst) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, lst) -> bool - | - | sub(self, *args) - | sub(self, r, size) -> bool - | sub(self, ivl) -> bool - | sub(self, lst) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | mem - | mlist_t_mem_get(self) -> ivlset_t - | - | reg - | mlist_t_reg_get(self) -> rlist_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mlist_t> - | delete_mlist_t(self) - -Help on class mnumber_t in module ida_hexrays: - -class mnumber_t(operand_locator_t) - | Proxy of C++ mnumber_t class. - | - | Method resolution order: - | mnumber_t - | operand_locator_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | update_value(self, *args) - | update_value(self, val64) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | org_value - | mnumber_t_org_value_get(self) -> uint64 - | - | thisown - | The membership flag - | - | value - | mnumber_t_value_get(self) -> uint64 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mnumber_t> - | delete_mnumber_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from operand_locator_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | operand_locator_t_ea_get(self) -> ea_t - | - | opnum - | operand_locator_t_opnum_get(self) -> int - -Help on function modify_user_lvar_info in module ida_hexrays: - -modify_user_lvar_info(*args) - modify_user_lvar_info(func_ea, mli_flags, info) -> bool - - - Modify saved local variable settings. - - @param func_ea (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) - @return: true if modified, false if invalid MLI_FLAGS passed - -Help on function modify_user_lvars in module ida_hexrays: - -modify_user_lvars(*args) - modify_user_lvars(entry_ea, mlv) -> bool - - - Modify saved local variable settings. - - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) - @return: true if modified variables - -Help on class mop_addr_t in module ida_hexrays: - -class mop_addr_t(mop_t) - | Proxy of C++ mop_addr_t class. - | - | Method resolution order: - | mop_addr_t - | mop_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mop_addr_t - | __init__(self, ra) -> mop_addr_t - | __init__(self, ra, isz, osz) -> mop_addr_t - | - | __repr__ = _swig_repr(self) - | - | lexcompare(self, *args) - | lexcompare(self, ra) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | insize - | mop_addr_t_insize_get(self) -> int - | - | outsize - | mop_addr_t_outsize_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mop_addr_t> - | delete_mop_addr_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from mop_t: - | - | __eq__(self, *args) - | __eq__(self, rop) -> bool - | - | __lt__(self, *args) - | __lt__(self, rop) -> bool - | - | __ne__(self, *args) - | __ne__(self, rop) -> bool - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_t(self) - | - | _get_a(self, *args) - | _get_a(self) -> mop_addr_t - | - | _get_b(self, *args) - | _get_b(self) -> int - | - | _get_c(self, *args) - | _get_c(self) -> mcases_t - | - | _get_cstr(self, *args) - | _get_cstr(self) -> char const * - | - | _get_d(self, *args) - | _get_d(self) -> minsn_t - | - | _get_f(self, *args) - | _get_f(self) -> mcallinfo_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_g(self, *args) - | _get_g(self) -> ea_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char const * - | - | _get_l(self, *args) - | _get_l(self) -> lvar_ref_t - | - | _get_nnn(self, *args) - | _get_nnn(self) -> mnumber_t - | - | _get_pair(self, *args) - | _get_pair(self) -> mop_pair_t - | - | _get_r(self, *args) - | _get_r(self) -> mreg_t - | - | _get_s(self, *args) - | _get_s(self) -> stkvar_ref_t - | - | _get_scif(self, *args) - | _get_scif(self) -> scif_t - | - | _get_t(self, *args) - | _get_t(self) -> mopt_t - | - | _make_blkref(self, *args) - | _make_blkref(self, blknum) - | - | _make_callinfo(self, *args) - | _make_callinfo(self, fi) - | - | _make_cases(self, *args) - | _make_cases(self, _cases) - | - | _make_gvar(self, *args) - | _make_gvar(self, ea) - | - | _make_insn(self, *args) - | _make_insn(self, ins) - | - | _make_lvar(self, *args) - | _make_lvar(self, mba, idx, off=0) - | - | _make_pair(self, *args) - | _make_pair(self, _pair) - | - | _make_reg(self, *args) - | _make_reg(self, reg) - | _make_reg(self, reg, _size) - | - | _make_stkvar(self, *args) - | _make_stkvar(self, mba, off) - | - | _make_strlit(self, *args) - | _make_strlit(self, str) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | _register(self, *args) - | _register(self) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_b(self, *args) - | _set_b(self, _v) - | - | _set_c(self, *args) - | _set_c(self, _v) - | - | _set_cstr(self, *args) - | _set_cstr(self, _v) - | - | _set_d(self, *args) - | _set_d(self, _v) - | - | _set_f(self, *args) - | _set_f(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_g(self, *args) - | _set_g(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_l(self, *args) - | _set_l(self, _v) - | - | _set_nnn(self, *args) - | _set_nnn(self, _v) - | - | _set_pair(self, *args) - | _set_pair(self, _v) - | - | _set_r(self, *args) - | _set_r(self, _v) - | - | _set_s(self, *args) - | _set_s(self, _v) - | - | _set_scif(self, *args) - | _set_scif(self, _v) - | - | _set_t(self, *args) - | _set_t(self, v) - | - | apply_ld_mcode(self, *args) - | apply_ld_mcode(self, mcode, ea, newsize) - | - | apply_xds(self, *args) - | apply_xds(self, ea, newsize) - | - | apply_xdu(self, *args) - | apply_xdu(self, ea, newsize) - | - | assign(self, *args) - | assign(self, rop) -> mop_t - | - | change_size(self, *args) - | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | - | create_from_insn(self, *args) - | create_from_insn(self, m) - | - | create_from_ivlset(self, *args) - | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | - | create_from_mlist(self, *args) - | create_from_mlist(self, mba, lst, fullsize) -> bool - | - | create_from_scattered_vdloc(self, *args) - | create_from_scattered_vdloc(self, mba, name, type, loc) - | - | create_from_vdloc(self, *args) - | create_from_vdloc(self, mba, loc, _size) - | - | double_size(self, *args) - | double_size(self, sideff=WITH_SIDEFF) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | equal_mops(self, *args) - | equal_mops(self, rop, eqflags) -> bool - | - | erase(self, *args) - | erase(self) - | - | erase_but_keep_size(self, *args) - | erase_but_keep_size(self) - | - | for_all_ops(self, *args) - | for_all_ops(self, mv, type=None, is_target=False) -> int - | - | for_all_scattered_submops(self, *args) - | for_all_scattered_submops(self, sv) -> int - | - | get_insn(self, *args) - | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t - | - | get_stkoff(self, *args) - | get_stkoff(self, p_off) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off) -> member_t * - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is01(self, *args) - | is01(self) -> bool - | - | is_arglist(self, *args) - | is_arglist(self) -> bool - | - | is_bit_reg(self, *args) - | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool - | - | is_cc(self, *args) - | is_cc(self) -> bool - | - | is_ccflags(self, *args) - | is_ccflags(self) -> bool - | - | is_constant(self, *args) - | is_constant(self, is_signed=True) -> bool - | - | is_equal_to(self, *args) - | is_equal_to(self, n, is_signed=True) -> bool - | - | is_extended_from(self, *args) - | is_extended_from(self, nbytes, is_signed) -> bool - | - | is_glbaddr(self, *args) - | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool - | - | is_impptr_done(self, *args) - | is_impptr_done(self) -> bool - | - | is_insn(self, *args) - | is_insn(self) -> bool - | is_insn(self, code) -> bool - | - | is_kreg(self, *args) - | is_kreg(self) -> bool - | - | is_mob(self, *args) - | is_mob(self, serial) -> bool - | - | is_negative_constant(self, *args) - | is_negative_constant(self) -> bool - | - | is_one(self, *args) - | is_one(self) -> bool - | - | is_positive_constant(self, *args) - | is_positive_constant(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | is_reg(self, _r) -> bool - | is_reg(self, _r, _size) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_sign_extended_from(self, *args) - | is_sign_extended_from(self, nbytes) -> bool - | - | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | is_zero_extended_from(self, *args) - | is_zero_extended_from(self, nbytes) -> bool - | - | make_blkref(self, *args) - | make_blkref(self, blknum) - | - | make_first_half(self, *args) - | make_first_half(self, width) -> bool - | - | make_fpnum(self, *args) - | make_fpnum(self, bytes, _size) -> bool - | - | make_gvar(self, *args) - | make_gvar(self, ea) - | - | make_helper(self, *args) - | make_helper(self, name) - | - | make_high_half(self, *args) - | make_high_half(self, width) -> bool - | - | make_insn(self, *args) - | make_insn(self, ins) - | - | make_low_half(self, *args) - | make_low_half(self, width) -> bool - | - | make_number(self, *args) - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | - | make_reg(self, *args) - | make_reg(self, reg) - | make_reg(self, reg, _size) - | - | make_reg_pair(self, *args) - | make_reg_pair(self, loreg, hireg, halfsize) - | - | make_second_half(self, *args) - | make_second_half(self, width) -> bool - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | preserve_side_effects(self, *args) - | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | - | probably_floating(self, *args) - | probably_floating(self) -> bool - | - | replace_by(self, o) - | - | set_impptr_done(self, *args) - | set_impptr_done(self) - | - | set_udt(self, *args) - | set_udt(self) - | - | set_undef_val(self, *args) - | set_undef_val(self) - | - | shift_mop(self, *args) - | shift_mop(self, offset) -> bool - | - | signed_value(self, *args) - | signed_value(self) -> int64 - | - | swap(self, *args) - | swap(self, rop) - | - | unsigned_value(self, *args) - | unsigned_value(self) -> uint64 - | - | value(self, *args) - | value(self, is_signed) -> uint64 - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from mop_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a - | - | b - | - | c - | - | cstr - | - | d - | - | f - | - | fpc - | - | g - | - | helper - | - | l - | - | meminfo - | - | nnn - | - | obj_id - | _obj_id(self) -> PyObject * - | - | oprops - | mop_t_oprops_get(self) -> uint8 - | - | pair - | - | r - | - | s - | - | scif - | - | size - | mop_t_size_get(self) -> int - | - | t - | _get_t(self) -> mopt_t - | - | valnum - | mop_t_valnum_get(self) -> uint16 - -Help on class mop_pair_t in module ida_hexrays: - -class mop_pair_t(__builtin__.object) - | Proxy of C++ mop_pair_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> mop_pair_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hop - | mop_pair_t_hop_get(self) -> mop_t - | - | lop - | mop_pair_t_lop_get(self) -> mop_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mop_pair_t> - | delete_mop_pair_t(self) - -Help on class mop_t in module ida_hexrays: - -class mop_t(__builtin__.object) - | Proxy of C++ mop_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, rop) -> bool - | - | __init__(self, *args) - | __init__(self) -> mop_t - | __init__(self, rop) -> mop_t - | __init__(self, _r, _s) -> mop_t - | - | __lt__(self, *args) - | __lt__(self, rop) -> bool - | - | __ne__(self, *args) - | __ne__(self, rop) -> bool - | - | __repr__ = _swig_repr(self) - | - | _acquire_ownership(self, v, acquire) - | - | _deregister(self, *args) - | _deregister(self) - | - | _ensure_cond(self, ok, cond_str) - | - | _ensure_no_obj(self, o, attr, attr_is_acquired) - | - | _ensure_no_t(self) - | - | _get_a(self, *args) - | _get_a(self) -> mop_addr_t - | - | _get_b(self, *args) - | _get_b(self) -> int - | - | _get_c(self, *args) - | _get_c(self) -> mcases_t - | - | _get_cstr(self, *args) - | _get_cstr(self) -> char const * - | - | _get_d(self, *args) - | _get_d(self) -> minsn_t - | - | _get_f(self, *args) - | _get_f(self) -> mcallinfo_t - | - | _get_fpc(self, *args) - | _get_fpc(self) -> fnumber_t - | - | _get_g(self, *args) - | _get_g(self) -> ea_t - | - | _get_helper(self, *args) - | _get_helper(self) -> char const * - | - | _get_l(self, *args) - | _get_l(self) -> lvar_ref_t - | - | _get_nnn(self, *args) - | _get_nnn(self) -> mnumber_t - | - | _get_pair(self, *args) - | _get_pair(self) -> mop_pair_t - | - | _get_r(self, *args) - | _get_r(self) -> mreg_t - | - | _get_s(self, *args) - | _get_s(self) -> stkvar_ref_t - | - | _get_scif(self, *args) - | _get_scif(self) -> scif_t - | - | _get_t(self, *args) - | _get_t(self) -> mopt_t - | - | _make_blkref(self, *args) - | _make_blkref(self, blknum) - | - | _make_callinfo(self, *args) - | _make_callinfo(self, fi) - | - | _make_cases(self, *args) - | _make_cases(self, _cases) - | - | _make_gvar(self, *args) - | _make_gvar(self, ea) - | - | _make_insn(self, *args) - | _make_insn(self, ins) - | - | _make_lvar(self, *args) - | _make_lvar(self, mba, idx, off=0) - | - | _make_pair(self, *args) - | _make_pair(self, _pair) - | - | _make_reg(self, *args) - | _make_reg(self, reg) - | _make_reg(self, reg, _size) - | - | _make_stkvar(self, *args) - | _make_stkvar(self, mba, off) - | - | _make_strlit(self, *args) - | _make_strlit(self, str) - | - | _maybe_disown_and_deregister(self) - | - | _meminfo(self) - | - | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) - | __dbg_get_meminfo(self) -> qstring - | - | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) - | __dbg_get_registered_kind(self) -> int - | - | _obj_id(self, *args) - | _obj_id(self) -> PyObject * - | - | _own_and_register(self) - | - | _print(self, *args) - | _print(self, shins_flags=0x04|0x02) - | - | _register(self, *args) - | _register(self) - | - | _set_a(self, *args) - | _set_a(self, _v) - | - | _set_b(self, *args) - | _set_b(self, _v) - | - | _set_c(self, *args) - | _set_c(self, _v) - | - | _set_cstr(self, *args) - | _set_cstr(self, _v) - | - | _set_d(self, *args) - | _set_d(self, _v) - | - | _set_f(self, *args) - | _set_f(self, _v) - | - | _set_fpc(self, *args) - | _set_fpc(self, _v) - | - | _set_g(self, *args) - | _set_g(self, _v) - | - | _set_helper(self, *args) - | _set_helper(self, _v) - | - | _set_l(self, *args) - | _set_l(self, _v) - | - | _set_nnn(self, *args) - | _set_nnn(self, _v) - | - | _set_pair(self, *args) - | _set_pair(self, _v) - | - | _set_r(self, *args) - | _set_r(self, _v) - | - | _set_s(self, *args) - | _set_s(self, _v) - | - | _set_scif(self, *args) - | _set_scif(self, _v) - | - | _set_t(self, *args) - | _set_t(self, v) - | - | apply_ld_mcode(self, *args) - | apply_ld_mcode(self, mcode, ea, newsize) - | - | apply_xds(self, *args) - | apply_xds(self, ea, newsize) - | - | apply_xdu(self, *args) - | apply_xdu(self, ea, newsize) - | - | assign(self, *args) - | assign(self, rop) -> mop_t - | - | change_size(self, *args) - | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool - | - | create_from_insn(self, *args) - | create_from_insn(self, m) - | - | create_from_ivlset(self, *args) - | create_from_ivlset(self, mba, ivs, fullsize) -> bool - | - | create_from_mlist(self, *args) - | create_from_mlist(self, mba, lst, fullsize) -> bool - | - | create_from_scattered_vdloc(self, *args) - | create_from_scattered_vdloc(self, mba, name, type, loc) - | - | create_from_vdloc(self, *args) - | create_from_vdloc(self, mba, loc, _size) - | - | double_size(self, *args) - | double_size(self, sideff=WITH_SIDEFF) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | equal_mops(self, *args) - | equal_mops(self, rop, eqflags) -> bool - | - | erase(self, *args) - | erase(self) - | - | erase_but_keep_size(self, *args) - | erase_but_keep_size(self) - | - | for_all_ops(self, *args) - | for_all_ops(self, mv, type=None, is_target=False) -> int - | - | for_all_scattered_submops(self, *args) - | for_all_scattered_submops(self, sv) -> int - | - | get_insn(self, *args) - | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t - | - | get_stkoff(self, *args) - | get_stkoff(self, p_off) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off) -> member_t * - | - | has_side_effects(self, *args) - | has_side_effects(self, include_ldx_and_divs=False) -> bool - | - | is01(self, *args) - | is01(self) -> bool - | - | is_arglist(self, *args) - | is_arglist(self) -> bool - | - | is_bit_reg(self, *args) - | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool - | - | is_cc(self, *args) - | is_cc(self) -> bool - | - | is_ccflags(self, *args) - | is_ccflags(self) -> bool - | - | is_constant(self, *args) - | is_constant(self, is_signed=True) -> bool - | - | is_equal_to(self, *args) - | is_equal_to(self, n, is_signed=True) -> bool - | - | is_extended_from(self, *args) - | is_extended_from(self, nbytes, is_signed) -> bool - | - | is_glbaddr(self, *args) - | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool - | - | is_impptr_done(self, *args) - | is_impptr_done(self) -> bool - | - | is_insn(self, *args) - | is_insn(self) -> bool - | is_insn(self, code) -> bool - | - | is_kreg(self, *args) - | is_kreg(self) -> bool - | - | is_mob(self, *args) - | is_mob(self, serial) -> bool - | - | is_negative_constant(self, *args) - | is_negative_constant(self) -> bool - | - | is_one(self, *args) - | is_one(self) -> bool - | - | is_positive_constant(self, *args) - | is_positive_constant(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | is_reg(self, _r) -> bool - | is_reg(self, _r, _size) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_sign_extended_from(self, *args) - | is_sign_extended_from(self, nbytes) -> bool - | - | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_undef_val(self, *args) - | is_undef_val(self) -> bool - | - | is_zero(self, *args) - | is_zero(self) -> bool - | - | is_zero_extended_from(self, *args) - | is_zero_extended_from(self, nbytes) -> bool - | - | lexcompare(self, *args) - | lexcompare(self, rop) -> int - | - | make_blkref(self, *args) - | make_blkref(self, blknum) - | - | make_first_half(self, *args) - | make_first_half(self, width) -> bool - | - | make_fpnum(self, *args) - | make_fpnum(self, bytes, _size) -> bool - | - | make_gvar(self, *args) - | make_gvar(self, ea) - | - | make_helper(self, *args) - | make_helper(self, name) - | - | make_high_half(self, *args) - | make_high_half(self, width) -> bool - | - | make_insn(self, *args) - | make_insn(self, ins) - | - | make_low_half(self, *args) - | make_low_half(self, width) -> bool - | - | make_number(self, *args) - | make_number(self, _value, _size, _ea=BADADDR, opnum=0) - | - | make_reg(self, *args) - | make_reg(self, reg) - | make_reg(self, reg, _size) - | - | make_reg_pair(self, *args) - | make_reg_pair(self, loreg, hireg, halfsize) - | - | make_second_half(self, *args) - | make_second_half(self, width) -> bool - | - | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool - | - | preserve_side_effects(self, *args) - | preserve_side_effects(self, blk, top, moved_calls=None) -> bool - | - | probably_floating(self, *args) - | probably_floating(self) -> bool - | - | replace_by(self, o) - | - | set_impptr_done(self, *args) - | set_impptr_done(self) - | - | set_udt(self, *args) - | set_udt(self) - | - | set_undef_val(self, *args) - | set_undef_val(self) - | - | shift_mop(self, *args) - | shift_mop(self, offset) -> bool - | - | signed_value(self, *args) - | signed_value(self) -> int64 - | - | swap(self, *args) - | swap(self, rop) - | - | unsigned_value(self, *args) - | unsigned_value(self) -> uint64 - | - | value(self, *args) - | value(self, is_signed) -> uint64 - | - | zero(self, *args) - | zero(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a - | - | b - | - | c - | - | cstr - | - | d - | - | f - | - | fpc - | - | g - | - | helper - | - | l - | - | meminfo - | - | nnn - | - | obj_id - | _obj_id(self) -> PyObject * - | - | oprops - | mop_t_oprops_get(self) -> uint8 - | - | pair - | - | r - | - | s - | - | scif - | - | size - | mop_t_size_get(self) -> int - | - | t - | _get_t(self) -> mopt_t - | - | thisown - | The membership flag - | - | valnum - | mop_t_valnum_get(self) -> uint16 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mop_t> - | delete_mop_t(self) - -Help on class mop_visitor_t in module ida_hexrays: - -class mop_visitor_t(op_parent_info_t) - | Proxy of C++ mop_visitor_t class. - | - | Method resolution order: - | mop_visitor_t - | op_parent_info_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_mop(self, *args) - | visit_mop(self, op, type, is_target) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | prune - | mop_visitor_t_prune_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mop_visitor_t> - | delete_mop_visitor_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from op_parent_info_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blk - | op_parent_info_t_blk_get(self) -> mblock_t - | - | curins - | op_parent_info_t_curins_get(self) -> minsn_t - | - | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t - | - | topins - | op_parent_info_t_topins_get(self) -> minsn_t - -Help on class mopvec_t in module ida_hexrays: - -class mopvec_t(__builtin__.object) - | Proxy of C++ qvector< mop_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> mop_t - | - | __init__(self, *args) - | __init__(self) -> mopvec_t - | __init__(self, x) -> mopvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> mop_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> mop_t - | begin(self) -> mop_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> mop_t - | end(self) -> mop_t - | - | erase(self, *args) - | erase(self, it) -> mop_t - | erase(self, first, last) -> mop_t - | - | extract(self, *args) - | extract(self) -> mop_t - | - | find(self, *args) - | find(self, x) -> mop_t - | find(self, x) -> mop_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=mop_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> mop_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> mop_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_mopvec_t> - | delete_mopvec_t(self) - -Help on function mreg2reg in module ida_hexrays: - -mreg2reg(*args) - mreg2reg(reg, width) -> int - - - Map a microregister to a processor register. - - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) - @return: processor register id or -1 - -Help on function must_mcode_close_block in module ida_hexrays: - -must_mcode_close_block(*args) - must_mcode_close_block(mcode, including_calls) -> bool - - - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case because - before MMAT_CALLS they are closing opcodes. - Afteer MMAT_CALLS that are not considered as - closing opcodes. (C++: bool) - -Help on function negate_mcode_relation in module ida_hexrays: - -negate_mcode_relation(*args) - negate_mcode_relation(code) -> mcode_t - -Help on function negated_relation in module ida_hexrays: - -negated_relation(*args) - negated_relation(op) -> ctype_t - - - Negate a comparison operator. For example, cot_sge becomes cot_slt. - - - @param op (C++: ctype_t) - -Help on function new_block in module ida_hexrays: - -new_block() - -Help on class number_format_t in module ida_hexrays: - -class number_format_t(__builtin__.object) - | Proxy of C++ number_format_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _opnum=0) -> number_format_t - | - | __repr__ = _swig_repr(self) - | - | get_radix(self, *args) - | get_radix(self) -> int - | - | is_char(self, *args) - | is_char(self) -> bool - | - | is_dec(self, *args) - | is_dec(self) -> bool - | - | is_enum(self, *args) - | is_enum(self) -> bool - | - | is_fixed(self, *args) - | is_fixed(self) -> bool - | - | is_hex(self, *args) - | is_hex(self) -> bool - | - | is_numop(self, *args) - | is_numop(self) -> bool - | - | is_oct(self, *args) - | is_oct(self) -> bool - | - | is_stroff(self, *args) - | is_stroff(self) -> bool - | - | needs_to_be_inverted(self, *args) - | needs_to_be_inverted(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | number_format_t_flags_get(self) -> flags_t - | - | opnum - | number_format_t_opnum_get(self) -> char - | - | org_nbytes - | number_format_t_org_nbytes_get(self) -> char - | - | props - | number_format_t_props_get(self) -> char - | - | serial - | number_format_t_serial_get(self) -> uchar - | - | thisown - | The membership flag - | - | type_name - | number_format_t_type_name_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_number_format_t> - | delete_number_format_t(self) - -Help on class op_parent_info_t in module ida_hexrays: - -class op_parent_info_t(__builtin__.object) - | Proxy of C++ op_parent_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | blk - | op_parent_info_t_blk_get(self) -> mblock_t - | - | curins - | op_parent_info_t_curins_get(self) -> minsn_t - | - | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t - | - | thisown - | The membership flag - | - | topins - | op_parent_info_t_topins_get(self) -> minsn_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_op_parent_info_t> - | delete_op_parent_info_t(self) - -Help on function op_uses_x in module ida_hexrays: - -op_uses_x(*args) - op_uses_x(op) -> bool - - - Does operator use the 'x' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) - -Help on function op_uses_y in module ida_hexrays: - -op_uses_y(*args) - op_uses_y(op) -> bool - - - Does operator use the 'y' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) - -Help on function op_uses_z in module ida_hexrays: - -op_uses_z(*args) - op_uses_z(op) -> bool - - - Does operator use the 'z' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) - -Help on function open_pseudocode in module ida_hexrays: - -open_pseudocode(*args) - open_pseudocode(ea, new_window) -> vdui_t - - - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - - @param ea: function to decompile (C++: ea_t) - @param new_window: 0:reuse existing window; 1:open new window; -1: - reuse existing window if the current view is - pseudocode (C++: int) - @return: false if failed - -Help on class operand_locator_t in module ida_hexrays: - -class operand_locator_t(__builtin__.object) - | Proxy of C++ operand_locator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _ea, _opnum) -> operand_locator_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | operand_locator_t_ea_get(self) -> ea_t - | - | opnum - | operand_locator_t_opnum_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_operand_locator_t> - | delete_operand_locator_t(self) - -Help on class operator_info_t in module ida_hexrays: - -class operator_info_t(__builtin__.object) - | Proxy of C++ operator_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> operator_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fixtype - | operator_info_t_fixtype_get(self) -> uchar - | - | flags - | operator_info_t_flags_get(self) -> uchar - | - | precedence - | operator_info_t_precedence_get(self) -> uchar - | - | text - | operator_info_t_text_get(self) -> char const * - | - | thisown - | The membership flag - | - | valency - | operator_info_t_valency_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_operator_info_t> - | delete_operator_info_t(self) - -Help on class optblock_t in module ida_hexrays: - -class optblock_t(__builtin__.object) - | Proxy of C++ optblock_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> optblock_t - | - | __repr__ = _swig_repr(self) - | - | func(self, *args) - | func(self, blk) -> int - | - | install(self, *args) - | install(self) - | - | remove(self, *args) - | remove(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_optblock_t> - | delete_optblock_t(self) - -Help on class optinsn_t in module ida_hexrays: - -class optinsn_t(__builtin__.object) - | Proxy of C++ optinsn_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> optinsn_t - | - | __repr__ = _swig_repr(self) - | - | func(self, *args) - | func(self, blk, ins) -> int - | - | install(self, *args) - | install(self) - | - | remove(self, *args) - | remove(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_optinsn_t> - | delete_optinsn_t(self) - -Help on function parse_user_call in module ida_hexrays: - -parse_user_call(*args) - parse_user_call(udc, decl, silent) -> bool - - - Convert function type declaration into internal structure - - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) - @return: success - -Help on function partial_type_num in module ida_hexrays: - -partial_type_num(*args) - partial_type_num(type) -> int - - - Calculate number of partial subtypes. - - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. - -Help on function print_vdloc in module ida_hexrays: - -print_vdloc(*args) - print_vdloc(loc, nbytes) - - - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. - - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) - -Help on function property_op_to_typename in module ida_hexrays: - -property_op_to_typename(self) - -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(__builtin__.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> cinsn_t - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) - | erase(self, p) - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | insert(self, p) -> qlist< cinsn_t >::iterator - | insert(self, i, v) - | insert(self, p, x) -> qlist_cinsn_t_iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | pop_front(self, *args) - | pop_front(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> cinsn_t - | - | push_front(self, *args) - | push_front(self, x) - | - | rbegin(self, *args) - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) - | remove(self, v) -> bool - | - | rend(self, *args) - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, x) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qlist_cinsn_t> - | delete_qlist_cinsn_t(self) - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(__builtin__.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) - | __ne__(self, x) -> bool - | - | __next__(self, *args) - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | next = __next__(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qlist_cinsn_t_iterator> - | delete_qlist_cinsn_t_iterator(self) - -Help on class qstring_printer_t in module ida_hexrays: - -class qstring_printer_t(vc_printer_t) - | Proxy of C++ qstring_printer_t class. - | - | Method resolution order: - | qstring_printer_t - | vc_printer_t - | vd_printer_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, f, tags) -> qstring_printer_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, indent, format) -> int - | - | get_s(self, *args) - | get_s(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | s - | - | thisown - | The membership flag - | - | with_tags - | qstring_printer_t_with_tags_get(self) -> bool - | - | ---------------------------------------------------------------------- - | Methods inherited from vc_printer_t: - | - | __disown__(self) - | - | oneliner(self, *args) - | oneliner(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vc_printer_t: - | - | func - | vc_printer_t_func_get(self) -> cfunc_t - | - | lastchar - | vc_printer_t_lastchar_get(self) -> char - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from vc_printer_t: - | - | __swig_destroy__ = <built-in function delete_vc_printer_t> - | delete_vc_printer_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vd_printer_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hdrlines - | vd_printer_t_hdrlines_get(self) -> int - | - | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * - -Help on function qswap in module ida_hexrays: - -qswap(*args) - qswap(a, b) - -Help on class qvector_carg_t in module ida_hexrays: - -class qvector_carg_t(__builtin__.object) - | Proxy of C++ qvector< carg_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> carg_t - | - | __init__(self, *args) - | __init__(self) -> qvector_carg_t - | __init__(self, x) -> qvector_carg_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> carg_t - | begin(self) -> carg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> carg_t - | end(self) -> carg_t - | - | erase(self, *args) - | erase(self, it) -> carg_t - | erase(self, first, last) -> carg_t - | - | extract(self, *args) - | extract(self) -> carg_t - | - | find(self, *args) - | find(self, x) -> carg_t - | find(self, x) -> carg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=carg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> carg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> carg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qvector_carg_t> - | delete_qvector_carg_t(self) - -Help on class qvector_ccase_t in module ida_hexrays: - -class qvector_ccase_t(__builtin__.object) - | Proxy of C++ qvector< ccase_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ccase_t - | - | __init__(self, *args) - | __init__(self) -> qvector_ccase_t - | __init__(self, x) -> qvector_ccase_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ccase_t - | begin(self) -> ccase_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ccase_t - | end(self) -> ccase_t - | - | erase(self, *args) - | erase(self, it) -> ccase_t - | erase(self, first, last) -> ccase_t - | - | extract(self, *args) - | extract(self) -> ccase_t - | - | find(self, *args) - | find(self, x) -> ccase_t - | find(self, x) -> ccase_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ccase_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ccase_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ccase_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qvector_ccase_t> - | delete_qvector_ccase_t(self) - -Help on class qvector_history_t in module ida_hexrays: - -class qvector_history_t(__builtin__.object) - | Proxy of C++ qvector< history_item_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> history_item_t - | - | __init__(self, *args) - | __init__(self) -> qvector_history_t - | __init__(self, x) -> qvector_history_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> history_item_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> history_item_t - | begin(self) -> history_item_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> history_item_t - | end(self) -> history_item_t - | - | erase(self, *args) - | erase(self, it) -> history_item_t - | erase(self, first, last) -> history_item_t - | - | extract(self, *args) - | extract(self) -> history_item_t - | - | find(self, *args) - | find(self, x) -> history_item_t - | find(self, x) -> history_item_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=history_item_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> history_item_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> history_item_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qvector_history_t> - | delete_qvector_history_t(self) - -Help on class qvector_lvar_t in module ida_hexrays: - -class qvector_lvar_t(__builtin__.object) - | Proxy of C++ qvector< lvar_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> lvar_t - | - | __init__(self, *args) - | __init__(self) -> qvector_lvar_t - | __init__(self, x) -> qvector_lvar_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> lvar_t - | begin(self) -> lvar_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> lvar_t - | end(self) -> lvar_t - | - | erase(self, *args) - | erase(self, it) -> lvar_t - | erase(self, first, last) -> lvar_t - | - | extract(self, *args) - | extract(self) -> lvar_t - | - | find(self, *args) - | find(self, x) -> lvar_t - | find(self, x) -> lvar_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=lvar_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> lvar_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> lvar_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qvector_lvar_t> - | delete_qvector_lvar_t(self) - -Help on function reg2mreg in module ida_hexrays: - -reg2mreg(*args) - reg2mreg(reg) -> mreg_t - - - Map a processor register to a microregister. - - @param reg: processor register number (C++: int) - @return: microregister register id or mr_none - -Help on function remitem in module ida_hexrays: - -remitem(*args) - remitem(e) - -Help on function remove_hexrays_callback in module ida_hexrays: - -remove_hexrays_callback(callback) - Deprecated. Please use Hexrays_Hooks instead - -Help on function restore_user_cmts in module ida_hexrays: - -restore_user_cmts(*args) - restore_user_cmts(func_ea) -> user_cmts_t - - - Restore user defined comments from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() - -Help on function restore_user_defined_calls in module ida_hexrays: - -restore_user_defined_calls(*args) - restore_user_defined_calls(udcalls, func_ea) -> bool - - - Restore user defined function calls from the database. - - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success - -Help on function restore_user_iflags in module ida_hexrays: - -restore_user_iflags(*args) - restore_user_iflags(func_ea) -> user_iflags_t - - - Restore user defined citem iflags from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() - -Help on function restore_user_labels in module ida_hexrays: - -restore_user_labels(*args) - restore_user_labels(func_ea) -> user_labels_t - - - Restore user defined labels from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() - -Help on function restore_user_lvar_settings in module ida_hexrays: - -restore_user_lvar_settings(*args) - restore_user_lvar_settings(lvinf, func_ea) -> bool - - - Restore user defined local variable settings in the database. - - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) - @return: success - -Help on function restore_user_numforms in module ida_hexrays: - -restore_user_numforms(*args) - restore_user_numforms(func_ea) -> user_numforms_t - - - Restore user defined number formats from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() - -Help on function restore_user_unions in module ida_hexrays: - -restore_user_unions(*args) - restore_user_unions(func_ea) -> user_unions_t - - - Restore user defined union field selections from the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() - -Help on class rlist_t in module ida_hexrays: - -class rlist_t(bitset_t) - | Proxy of C++ rlist_t class. - | - | Method resolution order: - | rlist_t - | bitset_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> rlist_t - | __init__(self, m) -> rlist_t - | __init__(self, reg, width) -> rlist_t - | - | __repr__ = _swig_repr(self) - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_rlist_t> - | delete_rlist_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from bitset_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __iter__(self) - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __len__ = count(self, *args) - | count(self) -> int - | count(self, bit) -> int - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | add(self, *args) - | add(self, bit) -> bool - | add(self, bit, width) -> bool - | add(self, ml) -> bool - | - | back(self, *args) - | back(self) -> int - | - | begin(self, *args) - | begin(self) -> bitset_t::iterator - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | copy(self, *args) - | copy(self, m) -> bitset_t - | - | count(self, *args) - | count(self) -> int - | count(self, bit) -> int - | - | cut_at(self, *args) - | cut_at(self, maxbit) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> bitset_t::iterator - | - | fill_with_ones(self, *args) - | fill_with_ones(self, maxbit) - | - | front(self, *args) - | front(self) -> int - | - | has(self, *args) - | has(self, bit) -> bool - | - | has_all(self, *args) - | has_all(self, bit, width) -> bool - | - | has_any(self, *args) - | has_any(self, bit, width) -> bool - | - | has_common(self, *args) - | has_common(self, ml) -> bool - | - | inc(self, *args) - | inc(self, p, n=1) - | - | includes(self, *args) - | includes(self, ml) -> bool - | - | intersect(self, *args) - | intersect(self, ml) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, ml) -> bool - | - | itat(self, *args) - | itat(self, n) -> bitset_t::iterator - | - | itv(self, *args) - | itv(self, it) -> int - | - | last(self, *args) - | last(self) -> int - | - | shift_down(self, *args) - | shift_down(self, shift) - | - | sub(self, *args) - | sub(self, bit) -> bool - | sub(self, bit, width) -> bool - | sub(self, ml) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from bitset_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function save_user_cmts in module ida_hexrays: - -save_user_cmts(*args) - save_user_cmts(func_ea, user_cmts) - - - Save user defined comments into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) - -Help on function save_user_defined_calls in module ida_hexrays: - -save_user_defined_calls(*args) - save_user_defined_calls(func_ea, udcalls) - - - Save user defined local function calls into the database. - - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) - -Help on function save_user_iflags in module ida_hexrays: - -save_user_iflags(*args) - save_user_iflags(func_ea, iflags) - - - Save user defined citem iflags into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) - -Help on function save_user_labels in module ida_hexrays: - -save_user_labels(*args) - save_user_labels(func_ea, user_labels) - - - Save user defined labels into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) - -Help on function save_user_lvar_settings in module ida_hexrays: - -save_user_lvar_settings(*args) - save_user_lvar_settings(func_ea, lvinf) - - - Save user defined local variable settings into the database. - - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) - -Help on function save_user_numforms in module ida_hexrays: - -save_user_numforms(*args) - save_user_numforms(func_ea, numforms) - - - Save user defined number formats into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) - -Help on function save_user_unions in module ida_hexrays: - -save_user_unions(*args) - save_user_unions(func_ea, unions) - - - Save user defined union field selections into the database. - - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) - -Help on class scif_t in module ida_hexrays: - -class scif_t(vdloc_t) - | Proxy of C++ scif_t class. - | - | Method resolution order: - | scif_t - | vdloc_t - | ida_typeinf.argloc_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _mba, n, tif) -> scif_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | mba - | scif_t_mba_get(self) -> mbl_array_t - | - | name - | scif_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | scif_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_scif_t> - | delete_scif_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from vdloc_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _set_reg1(self, *args) - | _set_reg1(self, r1) - | - | compare(self, *args) - | compare(self, r) -> int - | - | is_aliasable(self, *args) - | is_aliasable(self, mb, size) -> bool - | - | reg1(self, *args) - | reg1(self) -> int - | - | set_reg1(self, *args) - | set_reg1(self, r1) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_typeinf.argloc_t: - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_typeinf.argloc_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class scif_visitor_t in module ida_hexrays: - -class scif_visitor_t(__builtin__.object) - | Proxy of C++ scif_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> scif_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_scif_mop(self, *args) - | visit_scif_mop(self, r, off) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_scif_visitor_t> - | delete_scif_visitor_t(self) - -Help on function select_udt_by_offset in module ida_hexrays: - -select_udt_by_offset(*args) - select_udt_by_offset(udts, ops, applicator) -> int - - - Select UDT - - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) - -Help on function send_database in module ida_hexrays: - -send_database(*args) - send_database(err, silent) - - - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) - -Help on function set2jcnd in module ida_hexrays: - -set2jcnd(*args) - set2jcnd(code) -> mcode_t - -Help on function set_type in module ida_hexrays: - -set_type(*args) - set_type(id, tif, source, force=False) -> bool - - - Set a global type. - - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) - @return: success - -Help on class simple_graph_t in module ida_hexrays: - -class simple_graph_t(__builtin__.object) - | Proxy of C++ simple_graph_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool - | - | thisown - | The membership flag - | - | title - | simple_graph_t_title_get(self) -> qstring * - -Help on class stkvar_ref_t in module ida_hexrays: - -class stkvar_ref_t(__builtin__.object) - | Proxy of C++ stkvar_ref_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, m, o) -> stkvar_ref_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | get_stkvar(self, *args) - | get_stkvar(self, p_off=None) -> member_t * - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | mba - | stkvar_ref_t_mba_get(self) -> mbl_array_t - | - | off - | stkvar_ref_t_off_get(self) -> sval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_stkvar_ref_t> - | delete_stkvar_ref_t(self) - -Help on function swap_mcode_relation in module ida_hexrays: - -swap_mcode_relation(*args) - swap_mcode_relation(code) -> mcode_t - -Help on function swapped_relation in module ida_hexrays: - -swapped_relation(*args) - swapped_relation(op) -> ctype_t - - - Swap a comparison operator. For example, cot_sge becomes cot_sle. - - - @param op (C++: ctype_t) - -Help on function term_hexrays_plugin in module ida_hexrays: - -term_hexrays_plugin(*args) - term_hexrays_plugin() - - - Stop working with hex-rays decompiler. - -Help on class treeloc_t in module ida_hexrays: - -class treeloc_t(__builtin__.object) - | Proxy of C++ treeloc_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> treeloc_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | treeloc_t_ea_get(self) -> ea_t - | - | itp - | treeloc_t_itp_get(self) -> item_preciser_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_treeloc_t> - | delete_treeloc_t(self) - -Help on class udc_filter_t in module ida_hexrays: - -class udc_filter_t(microcode_filter_t) - | Proxy of C++ udc_filter_t class. - | - | Method resolution order: - | udc_filter_t - | microcode_filter_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> udc_filter_t - | - | __repr__ = _swig_repr(self) - | - | apply(self, *args) - | apply(self, cdg) -> merror_t - | - | init(self, *args) - | init(self, decl) -> bool - | - | match(self, *args) - | match(self, cdg) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_udc_filter_t> - | delete_udc_filter_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from microcode_filter_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function udcall_map_begin in module ida_hexrays: - -udcall_map_begin(*args) - udcall_map_begin(map) -> udcall_map_iterator_t - - - Get iterator pointing to the beginning of udcall_map_t. - - - @param map (C++: const udcall_map_t *) - -Help on function udcall_map_clear in module ida_hexrays: - -udcall_map_clear(*args) - udcall_map_clear(map) - - - Clear udcall_map_t. - - - @param map (C++: udcall_map_t *) - -Help on function udcall_map_end in module ida_hexrays: - -udcall_map_end(*args) - udcall_map_end(map) -> udcall_map_iterator_t - - - Get iterator pointing to the end of udcall_map_t. - - - @param map (C++: const udcall_map_t *) - -Help on function udcall_map_erase in module ida_hexrays: - -udcall_map_erase(*args) - udcall_map_erase(map, p) - - - Erase current element from udcall_map_t. - - - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_find in module ida_hexrays: - -udcall_map_find(*args) - udcall_map_find(map, key) -> udcall_map_iterator_t - - - Find the specified key in udcall_map_t. - - - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) - -Help on function udcall_map_first in module ida_hexrays: - -udcall_map_first(*args) - udcall_map_first(p) -> ea_t const & - - - Get reference to the current map key. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_free in module ida_hexrays: - -udcall_map_free(*args) - udcall_map_free(map) - - - Delete udcall_map_t instance. - - - @param map (C++: udcall_map_t *) - -Help on function udcall_map_insert in module ida_hexrays: - -udcall_map_insert(*args) - udcall_map_insert(map, key, val) -> udcall_map_iterator_t - - - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - - - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) - -Help on class udcall_map_iterator_t in module ida_hexrays: - -class udcall_map_iterator_t(__builtin__.object) - | Proxy of C++ udcall_map_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> udcall_map_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | udcall_map_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_udcall_map_iterator_t> - | delete_udcall_map_iterator_t(self) - -Help on function udcall_map_new in module ida_hexrays: - -udcall_map_new(*args) - udcall_map_new() -> udcall_map_t * - - - Create a new udcall_map_t instance. - -Help on function udcall_map_next in module ida_hexrays: - -udcall_map_next(*args) - udcall_map_next(p) -> udcall_map_iterator_t - - - Move to the next element. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_prev in module ida_hexrays: - -udcall_map_prev(*args) - udcall_map_prev(p) -> udcall_map_iterator_t - - - Move to the previous element. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_second in module ida_hexrays: - -udcall_map_second(*args) - udcall_map_second(p) -> udcall_t - - - Get reference to the current map value. - - - @param p (C++: udcall_map_iterator_t) - -Help on function udcall_map_size in module ida_hexrays: - -udcall_map_size(*args) - udcall_map_size(map) -> size_t - - - Get size of udcall_map_t. - - - @param map (C++: udcall_map_t *) - -Help on class udcall_t in module ida_hexrays: - -class udcall_t(__builtin__.object) - | Proxy of C++ udcall_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> udcall_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | udcall_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | tif - | udcall_t_tif_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_udcall_t> - | delete_udcall_t(self) - -Help on class ui_stroff_applicator_t in module ida_hexrays: - -class ui_stroff_applicator_t(__builtin__.object) - | Proxy of C++ ui_stroff_applicator_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> ui_stroff_applicator_t - | - | __repr__ = _swig_repr(self) - | - | apply(self, *args) - | apply(self, opnum, path, top_tif, spath) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ui_stroff_applicator_t> - | delete_ui_stroff_applicator_t(self) - -Help on class ui_stroff_op_t in module ida_hexrays: - -class ui_stroff_op_t(__builtin__.object) - | Proxy of C++ ui_stroff_op_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> ui_stroff_op_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | offset - | ui_stroff_op_t_offset_get(self) -> uval_t - | - | text - | ui_stroff_op_t_text_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ui_stroff_op_t> - | delete_ui_stroff_op_t(self) - -Help on class ui_stroff_ops_t in module ida_hexrays: - -class ui_stroff_ops_t(__builtin__.object) - | Proxy of C++ qvector< ui_stroff_op_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ui_stroff_op_t - | - | __init__(self, *args) - | __init__(self) -> ui_stroff_ops_t - | __init__(self, x) -> ui_stroff_ops_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t - | - | erase(self, *args) - | erase(self, it) -> ui_stroff_op_t - | erase(self, first, last) -> ui_stroff_op_t - | - | extract(self, *args) - | extract(self) -> ui_stroff_op_t - | - | find(self, *args) - | find(self, x) -> ui_stroff_op_t - | find(self, x) -> ui_stroff_op_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ui_stroff_op_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ui_stroff_op_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ui_stroff_op_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ui_stroff_ops_t> - | delete_ui_stroff_ops_t(self) - -Help on function user_cmts_begin in module ida_hexrays: - -user_cmts_begin(*args) - user_cmts_begin(map) -> user_cmts_iterator_t - - - Get iterator pointing to the beginning of user_cmts_t. - - - @param map (C++: const user_cmts_t *) - -Help on function user_cmts_clear in module ida_hexrays: - -user_cmts_clear(*args) - user_cmts_clear(map) - - - Clear user_cmts_t. - - - @param map (C++: user_cmts_t *) - -Help on function user_cmts_end in module ida_hexrays: - -user_cmts_end(*args) - user_cmts_end(map) -> user_cmts_iterator_t - - - Get iterator pointing to the end of user_cmts_t. - - - @param map (C++: const user_cmts_t *) - -Help on function user_cmts_erase in module ida_hexrays: - -user_cmts_erase(*args) - user_cmts_erase(map, p) - - - Erase current element from user_cmts_t. - - - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_find in module ida_hexrays: - -user_cmts_find(*args) - user_cmts_find(map, key) -> user_cmts_iterator_t - - - Find the specified key in user_cmts_t. - - - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) - -Help on function user_cmts_first in module ida_hexrays: - -user_cmts_first(*args) - user_cmts_first(p) -> treeloc_t - - - Get reference to the current map key. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_free in module ida_hexrays: - -user_cmts_free(*args) - user_cmts_free(map) - - - Delete user_cmts_t instance. - - - @param map (C++: user_cmts_t *) - -Help on function user_cmts_insert in module ida_hexrays: - -user_cmts_insert(*args) - user_cmts_insert(map, key, val) -> user_cmts_iterator_t - - - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - - - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) - -Help on class user_cmts_iterator_t in module ida_hexrays: - -class user_cmts_iterator_t(__builtin__.object) - | Proxy of C++ user_cmts_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_cmts_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_cmts_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_cmts_iterator_t> - | delete_user_cmts_iterator_t(self) - -Help on function user_cmts_new in module ida_hexrays: - -user_cmts_new(*args) - user_cmts_new() -> user_cmts_t - - - Create a new user_cmts_t instance. - -Help on function user_cmts_next in module ida_hexrays: - -user_cmts_next(*args) - user_cmts_next(p) -> user_cmts_iterator_t - - - Move to the next element. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_prev in module ida_hexrays: - -user_cmts_prev(*args) - user_cmts_prev(p) -> user_cmts_iterator_t - - - Move to the previous element. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_second in module ida_hexrays: - -user_cmts_second(*args) - user_cmts_second(p) -> citem_cmt_t - - - Get reference to the current map value. - - - @param p (C++: user_cmts_iterator_t) - -Help on function user_cmts_size in module ida_hexrays: - -user_cmts_size(*args) - user_cmts_size(map) -> size_t - - - Get size of user_cmts_t. - - - @param map (C++: user_cmts_t *) - -Help on class user_cmts_t in module ida_hexrays: - -class user_cmts_t(__builtin__.object) - | Proxy of C++ std::map< treeloc_t,citem_cmt_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_cmts_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> citem_cmt_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = <built-in function user_cmts_begin> - | user_cmts_begin(map) -> user_cmts_iterator_t - | - | __clear = <built-in function user_cmts_clear> - | user_cmts_clear(map) - | - | __end = <built-in function user_cmts_end> - | user_cmts_end(map) -> user_cmts_iterator_t - | - | __erase = <built-in function user_cmts_erase> - | user_cmts_erase(map, p) - | - | __find = <built-in function user_cmts_find> - | user_cmts_find(map, key) -> user_cmts_iterator_t - | - | __first = <built-in function user_cmts_first> - | user_cmts_first(p) -> treeloc_t - | - | __insert = <built-in function user_cmts_insert> - | user_cmts_insert(map, key, val) -> user_cmts_iterator_t - | - | __next = <built-in function user_cmts_next> - | user_cmts_next(p) -> user_cmts_iterator_t - | - | __second = <built-in function user_cmts_second> - | user_cmts_second(p) -> citem_cmt_t - | - | __size = <built-in function user_cmts_size> - | user_cmts_size(map) -> size_t - | - | __swig_destroy__ = <built-in function delete_user_cmts_t> - | delete_user_cmts_t(self) - | - | keytype = <class 'ida_hexrays.treeloc_t'> - | Proxy of C++ treeloc_t class. - | - | valuetype = <class 'ida_hexrays.citem_cmt_t'> - | Proxy of C++ citem_cmt_t class. - -Help on function user_iflags_begin in module ida_hexrays: - -user_iflags_begin(*args) - user_iflags_begin(map) -> user_iflags_iterator_t - - - Get iterator pointing to the beginning of user_iflags_t. - - - @param map (C++: const user_iflags_t *) - -Help on function user_iflags_clear in module ida_hexrays: - -user_iflags_clear(*args) - user_iflags_clear(map) - - - Clear user_iflags_t. - - - @param map (C++: user_iflags_t *) - -Help on function user_iflags_end in module ida_hexrays: - -user_iflags_end(*args) - user_iflags_end(map) -> user_iflags_iterator_t - - - Get iterator pointing to the end of user_iflags_t. - - - @param map (C++: const user_iflags_t *) - -Help on function user_iflags_erase in module ida_hexrays: - -user_iflags_erase(*args) - user_iflags_erase(map, p) - - - Erase current element from user_iflags_t. - - - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_find in module ida_hexrays: - -user_iflags_find(*args) - user_iflags_find(map, key) -> user_iflags_iterator_t - - - Find the specified key in user_iflags_t. - - - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) - -Help on function user_iflags_first in module ida_hexrays: - -user_iflags_first(*args) - user_iflags_first(p) -> citem_locator_t - - - Get reference to the current map key. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_free in module ida_hexrays: - -user_iflags_free(*args) - user_iflags_free(map) - - - Delete user_iflags_t instance. - - - @param map (C++: user_iflags_t *) - -Help on function user_iflags_insert in module ida_hexrays: - -user_iflags_insert(*args) - user_iflags_insert(map, key, val) -> user_iflags_iterator_t - - - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - - - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) - -Help on class user_iflags_iterator_t in module ida_hexrays: - -class user_iflags_iterator_t(__builtin__.object) - | Proxy of C++ user_iflags_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_iflags_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_iflags_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_iflags_iterator_t> - | delete_user_iflags_iterator_t(self) - -Help on function user_iflags_new in module ida_hexrays: - -user_iflags_new(*args) - user_iflags_new() -> user_iflags_t - - - Create a new user_iflags_t instance. - -Help on function user_iflags_next in module ida_hexrays: - -user_iflags_next(*args) - user_iflags_next(p) -> user_iflags_iterator_t - - - Move to the next element. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_prev in module ida_hexrays: - -user_iflags_prev(*args) - user_iflags_prev(p) -> user_iflags_iterator_t - - - Move to the previous element. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_second in module ida_hexrays: - -user_iflags_second(*args) - user_iflags_second(p) -> int32 const & - - - Get reference to the current map value. - - - @param p (C++: user_iflags_iterator_t) - -Help on function user_iflags_size in module ida_hexrays: - -user_iflags_size(*args) - user_iflags_size(map) -> size_t - - - Get size of user_iflags_t. - - - @param map (C++: user_iflags_t *) - -Help on class user_iflags_t in module ida_hexrays: - -class user_iflags_t(__builtin__.object) - | Proxy of C++ std::map< citem_locator_t,int32 > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_iflags_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> int & - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = <built-in function user_iflags_begin> - | user_iflags_begin(map) -> user_iflags_iterator_t - | - | __clear = <built-in function user_iflags_clear> - | user_iflags_clear(map) - | - | __end = <built-in function user_iflags_end> - | user_iflags_end(map) -> user_iflags_iterator_t - | - | __erase = <built-in function user_iflags_erase> - | user_iflags_erase(map, p) - | - | __find = <built-in function user_iflags_find> - | user_iflags_find(map, key) -> user_iflags_iterator_t - | - | __first = <built-in function user_iflags_first> - | user_iflags_first(p) -> citem_locator_t - | - | __insert = <built-in function user_iflags_insert> - | user_iflags_insert(map, key, val) -> user_iflags_iterator_t - | - | __next = <built-in function user_iflags_next> - | user_iflags_next(p) -> user_iflags_iterator_t - | - | __second = <built-in function user_iflags_second> - | user_iflags_second(p) -> int32 const & - | - | __size = <built-in function user_iflags_size> - | user_iflags_size(map) -> size_t - | - | __swig_destroy__ = <built-in function delete_user_iflags_t> - | delete_user_iflags_t(self) - | - | keytype = <class 'ida_hexrays.citem_locator_t'> - | Proxy of C++ citem_locator_t class. - | - | valuetype = <type 'int'> - | int(x=0) -> int or long - | int(x, base=10) -> int or long - | - | Convert a number or string to an integer, or return 0 if no arguments - | are given. If x is floating point, the conversion truncates towards zero. - | If x is outside the integer range, the function returns a long instead. - | - | If x is not a number or if base is given, then x must be a string or - | Unicode object representing an integer literal in the given base. The - | literal can be preceded by '+' or '-' and be surrounded by whitespace. - | The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to - | interpret the base from the string as an integer literal. - | >>> int('0b100', base=0) - | 4 - -Help on function user_labels_begin in module ida_hexrays: - -user_labels_begin(*args) - user_labels_begin(map) -> user_labels_iterator_t - - - Get iterator pointing to the beginning of user_labels_t. - - - @param map (C++: const user_labels_t *) - -Help on function user_labels_clear in module ida_hexrays: - -user_labels_clear(*args) - user_labels_clear(map) - - - Clear user_labels_t. - - - @param map (C++: user_labels_t *) - -Help on function user_labels_end in module ida_hexrays: - -user_labels_end(*args) - user_labels_end(map) -> user_labels_iterator_t - - - Get iterator pointing to the end of user_labels_t. - - - @param map (C++: const user_labels_t *) - -Help on function user_labels_erase in module ida_hexrays: - -user_labels_erase(*args) - user_labels_erase(map, p) - - - Erase current element from user_labels_t. - - - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_find in module ida_hexrays: - -user_labels_find(*args) - user_labels_find(map, key) -> user_labels_iterator_t - - - Find the specified key in user_labels_t. - - - @param map (C++: const user_labels_t *) - @param key (C++: const int &) - -Help on function user_labels_first in module ida_hexrays: - -user_labels_first(*args) - user_labels_first(p) -> int const & - - - Get reference to the current map key. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_free in module ida_hexrays: - -user_labels_free(*args) - user_labels_free(map) - - - Delete user_labels_t instance. - - - @param map (C++: user_labels_t *) - -Help on function user_labels_insert in module ida_hexrays: - -user_labels_insert(*args) - user_labels_insert(map, key, val) -> user_labels_iterator_t - - - Insert new (int, qstring) pair into user_labels_t. - - - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) - -Help on class user_labels_iterator_t in module ida_hexrays: - -class user_labels_iterator_t(__builtin__.object) - | Proxy of C++ user_labels_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_labels_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_labels_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_labels_iterator_t> - | delete_user_labels_iterator_t(self) - -Help on function user_labels_new in module ida_hexrays: - -user_labels_new(*args) - user_labels_new() -> user_labels_t - - - Create a new user_labels_t instance. - -Help on function user_labels_next in module ida_hexrays: - -user_labels_next(*args) - user_labels_next(p) -> user_labels_iterator_t - - - Move to the next element. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_prev in module ida_hexrays: - -user_labels_prev(*args) - user_labels_prev(p) -> user_labels_iterator_t - - - Move to the previous element. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_second in module ida_hexrays: - -user_labels_second(*args) - user_labels_second(p) -> qstring & - - - Get reference to the current map value. - - - @param p (C++: user_labels_iterator_t) - -Help on function user_labels_size in module ida_hexrays: - -user_labels_size(*args) - user_labels_size(map) -> size_t - - - Get size of user_labels_t. - - - @param map (C++: user_labels_t *) - -Help on class user_labels_t in module ida_hexrays: - -class user_labels_t(__builtin__.object) - | Proxy of C++ std::map< int,qstring > class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> user_labels_t - | - | __repr__ = _swig_repr(self) - | - | at(self, *args) - | at(self, _Keyval) -> _qstring< char > & - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_labels_t> - | delete_user_labels_t(self) - -Help on class user_lvar_modifier_t in module ida_hexrays: - -class user_lvar_modifier_t(__builtin__.object) - | Proxy of C++ user_lvar_modifier_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> user_lvar_modifier_t - | - | __repr__ = _swig_repr(self) - | - | modify_lvars(self, *args) - | modify_lvars(self, lvinf) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_lvar_modifier_t> - | delete_user_lvar_modifier_t(self) - -Help on function user_numforms_begin in module ida_hexrays: - -user_numforms_begin(*args) - user_numforms_begin(map) -> user_numforms_iterator_t - - - Get iterator pointing to the beginning of user_numforms_t. - - - @param map (C++: const user_numforms_t *) - -Help on function user_numforms_clear in module ida_hexrays: - -user_numforms_clear(*args) - user_numforms_clear(map) - - - Clear user_numforms_t. - - - @param map (C++: user_numforms_t *) - -Help on function user_numforms_end in module ida_hexrays: - -user_numforms_end(*args) - user_numforms_end(map) -> user_numforms_iterator_t - - - Get iterator pointing to the end of user_numforms_t. - - - @param map (C++: const user_numforms_t *) - -Help on function user_numforms_erase in module ida_hexrays: - -user_numforms_erase(*args) - user_numforms_erase(map, p) - - - Erase current element from user_numforms_t. - - - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_find in module ida_hexrays: - -user_numforms_find(*args) - user_numforms_find(map, key) -> user_numforms_iterator_t - - - Find the specified key in user_numforms_t. - - - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) - -Help on function user_numforms_first in module ida_hexrays: - -user_numforms_first(*args) - user_numforms_first(p) -> operand_locator_t - - - Get reference to the current map key. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_free in module ida_hexrays: - -user_numforms_free(*args) - user_numforms_free(map) - - - Delete user_numforms_t instance. - - - @param map (C++: user_numforms_t *) - -Help on function user_numforms_insert in module ida_hexrays: - -user_numforms_insert(*args) - user_numforms_insert(map, key, val) -> user_numforms_iterator_t - - - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - - - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) - -Help on class user_numforms_iterator_t in module ida_hexrays: - -class user_numforms_iterator_t(__builtin__.object) - | Proxy of C++ user_numforms_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_numforms_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_numforms_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_numforms_iterator_t> - | delete_user_numforms_iterator_t(self) - -Help on function user_numforms_new in module ida_hexrays: - -user_numforms_new(*args) - user_numforms_new() -> user_numforms_t - - - Create a new user_numforms_t instance. - -Help on function user_numforms_next in module ida_hexrays: - -user_numforms_next(*args) - user_numforms_next(p) -> user_numforms_iterator_t - - - Move to the next element. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_prev in module ida_hexrays: - -user_numforms_prev(*args) - user_numforms_prev(p) -> user_numforms_iterator_t - - - Move to the previous element. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_second in module ida_hexrays: - -user_numforms_second(*args) - user_numforms_second(p) -> number_format_t - - - Get reference to the current map value. - - - @param p (C++: user_numforms_iterator_t) - -Help on function user_numforms_size in module ida_hexrays: - -user_numforms_size(*args) - user_numforms_size(map) -> size_t - - - Get size of user_numforms_t. - - - @param map (C++: user_numforms_t *) - -Help on class user_numforms_t in module ida_hexrays: - -class user_numforms_t(__builtin__.object) - | Proxy of C++ std::map< operand_locator_t,number_format_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_numforms_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> number_format_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = <built-in function user_numforms_begin> - | user_numforms_begin(map) -> user_numforms_iterator_t - | - | __clear = <built-in function user_numforms_clear> - | user_numforms_clear(map) - | - | __end = <built-in function user_numforms_end> - | user_numforms_end(map) -> user_numforms_iterator_t - | - | __erase = <built-in function user_numforms_erase> - | user_numforms_erase(map, p) - | - | __find = <built-in function user_numforms_find> - | user_numforms_find(map, key) -> user_numforms_iterator_t - | - | __first = <built-in function user_numforms_first> - | user_numforms_first(p) -> operand_locator_t - | - | __insert = <built-in function user_numforms_insert> - | user_numforms_insert(map, key, val) -> user_numforms_iterator_t - | - | __next = <built-in function user_numforms_next> - | user_numforms_next(p) -> user_numforms_iterator_t - | - | __second = <built-in function user_numforms_second> - | user_numforms_second(p) -> number_format_t - | - | __size = <built-in function user_numforms_size> - | user_numforms_size(map) -> size_t - | - | __swig_destroy__ = <built-in function delete_user_numforms_t> - | delete_user_numforms_t(self) - | - | keytype = <class 'ida_hexrays.operand_locator_t'> - | Proxy of C++ operand_locator_t class. - | - | valuetype = <class 'ida_hexrays.number_format_t'> - | Proxy of C++ number_format_t class. - -Help on function user_unions_begin in module ida_hexrays: - -user_unions_begin(*args) - user_unions_begin(map) -> user_unions_iterator_t - - - Get iterator pointing to the beginning of user_unions_t. - - - @param map (C++: const user_unions_t *) - -Help on function user_unions_clear in module ida_hexrays: - -user_unions_clear(*args) - user_unions_clear(map) - - - Clear user_unions_t. - - - @param map (C++: user_unions_t *) - -Help on function user_unions_end in module ida_hexrays: - -user_unions_end(*args) - user_unions_end(map) -> user_unions_iterator_t - - - Get iterator pointing to the end of user_unions_t. - - - @param map (C++: const user_unions_t *) - -Help on function user_unions_erase in module ida_hexrays: - -user_unions_erase(*args) - user_unions_erase(map, p) - - - Erase current element from user_unions_t. - - - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_find in module ida_hexrays: - -user_unions_find(*args) - user_unions_find(map, key) -> user_unions_iterator_t - - - Find the specified key in user_unions_t. - - - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) - -Help on function user_unions_first in module ida_hexrays: - -user_unions_first(*args) - user_unions_first(p) -> ea_t const & - - - Get reference to the current map key. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_free in module ida_hexrays: - -user_unions_free(*args) - user_unions_free(map) - - - Delete user_unions_t instance. - - - @param map (C++: user_unions_t *) - -Help on function user_unions_insert in module ida_hexrays: - -user_unions_insert(*args) - user_unions_insert(map, key, val) -> user_unions_iterator_t - - - Insert new (ea_t, intvec_t) pair into user_unions_t. - - - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) - -Help on class user_unions_iterator_t in module ida_hexrays: - -class user_unions_iterator_t(__builtin__.object) - | Proxy of C++ user_unions_iterator_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, p) -> bool - | - | __init__(self, *args) - | __init__(self) -> user_unions_iterator_t - | - | __ne__(self, *args) - | __ne__(self, p) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | x - | user_unions_iterator_t_x_get(self) -> iterator_word - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_user_unions_iterator_t> - | delete_user_unions_iterator_t(self) - -Help on function user_unions_new in module ida_hexrays: - -user_unions_new(*args) - user_unions_new() -> user_unions_t - - - Create a new user_unions_t instance. - -Help on function user_unions_next in module ida_hexrays: - -user_unions_next(*args) - user_unions_next(p) -> user_unions_iterator_t - - - Move to the next element. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_prev in module ida_hexrays: - -user_unions_prev(*args) - user_unions_prev(p) -> user_unions_iterator_t - - - Move to the previous element. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_second in module ida_hexrays: - -user_unions_second(*args) - user_unions_second(p) -> intvec_t - - - Get reference to the current map value. - - - @param p (C++: user_unions_iterator_t) - -Help on function user_unions_size in module ida_hexrays: - -user_unions_size(*args) - user_unions_size(map) -> size_t - - - Get size of user_unions_t. - - - @param map (C++: user_unions_t *) - -Help on class user_unions_t in module ida_hexrays: - -class user_unions_t(__builtin__.object) - | Proxy of C++ std::map< ea_t,intvec_t > class. - | - | Methods defined here: - | - | __contains__ = _map___contains__(self, key) - | Returns true if the specified key exists in the . - | - | __delitem__ = _map___delitem__(self, key) - | Removes the value associated with the provided key. - | - | __getitem__ = _map___getitem__(self, key) - | Returns the value associated with the provided key. - | - | __init__(self, *args) - | __init__(self) -> user_unions_t - | - | __iter__ = _map___iter__(self) - | Iterate over dictionary keys. - | - | __len__ = size(self, *args) - | size(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__ = _map___setitem__(self, key, value) - | Returns the value associated with the provided key. - | - | at(self, *args) - | at(self, _Keyval) -> intvec_t - | - | begin lambda self, *args - | - | clear = _map_clear(self) - | - | copy = _map_copy(self) - | - | end lambda self, *args - | - | erase lambda self, *args - | - | find lambda self, *args - | - | first lambda self, *args - | - | get = _map_get(self, key, default=None) - | - | has_key = _map_has_key(self, key) - | - | insert lambda self, *args - | - | items = _map_items(self) - | - | iteritems = _map_iteritems(self) - | - | iterkeys = _map_iterkeys(self) - | - | itervalues = _map_itervalues(self) - | - | keys = _map_keys(self) - | - | next lambda self, *args - | - | pop = _map_pop(self, key) - | Sets the value associated with the provided key. - | - | popitem = _map_popitem(self) - | Sets the value associated with the provided key. - | - | second lambda self, *args - | - | setdefault = _map_setdefault(self, key, default=None) - | Sets the value associated with the provided key. - | - | size lambda self, *args - | - | values = _map_values(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __begin = <built-in function user_unions_begin> - | user_unions_begin(map) -> user_unions_iterator_t - | - | __clear = <built-in function user_unions_clear> - | user_unions_clear(map) - | - | __end = <built-in function user_unions_end> - | user_unions_end(map) -> user_unions_iterator_t - | - | __erase = <built-in function user_unions_erase> - | user_unions_erase(map, p) - | - | __find = <built-in function user_unions_find> - | user_unions_find(map, key) -> user_unions_iterator_t - | - | __first = <built-in function user_unions_first> - | user_unions_first(p) -> ea_t const & - | - | __insert = <built-in function user_unions_insert> - | user_unions_insert(map, key, val) -> user_unions_iterator_t - | - | __next = <built-in function user_unions_next> - | user_unions_next(p) -> user_unions_iterator_t - | - | __second = <built-in function user_unions_second> - | user_unions_second(p) -> intvec_t - | - | __size = <built-in function user_unions_size> - | user_unions_size(map) -> size_t - | - | __swig_destroy__ = <built-in function delete_user_unions_t> - | delete_user_unions_t(self) - | - | keytype = (<type 'int'>, <type 'long'>) - | - | valuetype = <class 'ida_pro.intvec_t'> - | Proxy of C++ qvector< int > class. - -Help on class uval_ivl_ivlset_t in module ida_hexrays: - -class uval_ivl_ivlset_t(__builtin__.object) - | Proxy of C++ ivlset_tpl< ivl_t,uval_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, v) -> bool - | - | __init__(self, *args) - | __init__(self) -> uval_ivl_ivlset_t - | __init__(self, ivl) -> uval_ivl_ivlset_t - | - | __ne__(self, *args) - | __ne__(self, v) -> bool - | - | __repr__ = _swig_repr(self) - | - | all_values(self, *args) - | all_values(self) -> bool - | - | begin(self, *args) - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ - | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ - | - | getivl(self, *args) - | getivl(self, idx) -> ivl_t - | - | lastivl(self, *args) - | lastivl(self) -> ivl_t - | - | nivls(self, *args) - | nivls(self) -> size_t - | - | qclear(self, *args) - | qclear(self) - | - | set_all_values(self, *args) - | set_all_values(self) - | - | single_value(self, *args) - | single_value(self, v) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_uval_ivl_ivlset_t> - | delete_uval_ivl_ivlset_t(self) - -Help on class uval_ivl_t in module ida_hexrays: - -class uval_ivl_t(__builtin__.object) - | Proxy of C++ ivl_tpl< uval_t > class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _off, _size) -> uval_ivl_t - | - | __repr__ = _swig_repr(self) - | - | end(self, *args) - | end(self) -> unsigned-ea-like-numeric-type↗ - | - | last(self, *args) - | last(self) -> unsigned-ea-like-numeric-type↗ - | - | valid(self, *args) - | valid(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ - | - | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_uval_ivl_t> - | delete_uval_ivl_t(self) - -Help on class valrng_t in module ida_hexrays: - -class valrng_t(__builtin__.object) - | Proxy of C++ valrng_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t - | __init__(self, r) -> valrng_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _deregister(self, *args) - | _deregister(self) - | - | _print(self, *args) - | _print(self) - | - | _register(self, *args) - | _register(self) - | - | all_values(self, *args) - | all_values(self) -> bool - | - | compare(self, *args) - | compare(self, r) -> int - | - | cvt_to_cmp(self, *args) - | cvt_to_cmp(self, strict) -> bool - | - | cvt_to_single_value(self, *args) - | cvt_to_single_value(self) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | get_size(self, *args) - | get_size(self) -> int - | - | has(self, *args) - | has(self, v) -> bool - | - | intersect_with(self, *args) - | intersect_with(self, r) -> bool - | - | inverse(self, *args) - | inverse(self) - | - | is_unknown(self, *args) - | is_unknown(self) -> bool - | - | max_svalue(self, *args) - | max_svalue(self, size_) -> uvlr_t - | max_svalue(self) -> uvlr_t - | - | max_value(self, *args) - | max_value(self, size_) -> uvlr_t - | max_value(self) -> uvlr_t - | - | min_svalue(self, *args) - | min_svalue(self, size_) -> uvlr_t - | min_svalue(self) -> uvlr_t - | - | reduce_size(self, *args) - | reduce_size(self, new_size) -> bool - | - | set_all(self, *args) - | set_all(self) - | - | set_cmp(self, *args) - | set_cmp(self, cmp, _value) - | - | set_eq(self, *args) - | set_eq(self, v) - | - | set_none(self, *args) - | set_none(self) - | - | set_unk(self, *args) - | set_unk(self) - | - | swap(self, *args) - | swap(self, r) - | - | unite_with(self, *args) - | unite_with(self, r) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_valrng_t> - | delete_valrng_t(self) - -Help on class var_ref_t in module ida_hexrays: - -class var_ref_t(__builtin__.object) - | Proxy of C++ var_ref_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> var_ref_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | idx - | var_ref_t_idx_get(self) -> int - | - | mba - | var_ref_t_mba_get(self) -> mbl_array_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_var_ref_t> - | delete_var_ref_t(self) - -Help on class vc_printer_t in module ida_hexrays: - -class vc_printer_t(vd_printer_t) - | Proxy of C++ vc_printer_t class. - | - | Method resolution order: - | vc_printer_t - | vd_printer_t - | __builtin__.object - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, f) -> vc_printer_t - | - | __repr__ = _swig_repr(self) - | - | oneliner(self, *args) - | oneliner(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | func - | vc_printer_t_func_get(self) -> cfunc_t - | - | lastchar - | vc_printer_t_lastchar_get(self) -> char - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vc_printer_t> - | delete_vc_printer_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from vd_printer_t: - | - | _print(self, *args) - | _print(self, indent, format) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vd_printer_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hdrlines - | vd_printer_t_hdrlines_get(self) -> int - | - | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * - -Help on class vd_failure_t in module ida_hexrays: - -class vd_failure_t(__builtin__.object) - | Proxy of C++ vd_failure_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> vd_failure_t - | __init__(self, code, ea, buf=None) -> vd_failure_t - | __init__(self, code, ea, buf) -> vd_failure_t - | __init__(self, _hf) -> vd_failure_t - | - | __repr__ = _swig_repr(self) - | - | desc(self, *args) - | desc(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vd_failure_t> - | delete_vd_failure_t(self) - -Help on class vd_interr_t in module ida_hexrays: - -class vd_interr_t(vd_failure_t) - | Proxy of C++ vd_interr_t class. - | - | Method resolution order: - | vd_interr_t - | vd_failure_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, ea, buf) -> vd_interr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vd_interr_t> - | delete_vd_interr_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from vd_failure_t: - | - | desc(self, *args) - | desc(self) -> qstring - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from vd_failure_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t - -Help on class vd_printer_t in module ida_hexrays: - -class vd_printer_t(__builtin__.object) - | Proxy of C++ vd_printer_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> vd_printer_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, indent, format) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hdrlines - | vd_printer_t_hdrlines_get(self) -> int - | - | thisown - | The membership flag - | - | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vd_printer_t> - | delete_vd_printer_t(self) - -Help on class vdloc_t in module ida_hexrays: - -class vdloc_t(ida_typeinf.argloc_t) - | Proxy of C++ vdloc_t class. - | - | Method resolution order: - | vdloc_t - | ida_typeinf.argloc_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> vdloc_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _set_reg1(self, *args) - | _set_reg1(self, r1) - | - | compare(self, *args) - | compare(self, r) -> int - | - | is_aliasable(self, *args) - | is_aliasable(self, mb, size) -> bool - | - | reg1(self, *args) - | reg1(self) -> int - | - | set_reg1(self, *args) - | set_reg1(self, r1) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vdloc_t> - | delete_vdloc_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_typeinf.argloc_t: - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_typeinf.argloc_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class vdui_t in module ida_hexrays: - -class vdui_t(__builtin__.object) - | Proxy of C++ vdui_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | calc_cmt_type(self, *args) - | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t - | - | clear(self, *args) - | clear(self) - | - | collapse_item(self, *args) - | collapse_item(self, hide) -> bool - | - | collapse_lvars(self, *args) - | collapse_lvars(self, hide) -> bool - | - | ctree_to_disasm(self, *args) - | ctree_to_disasm(self) -> bool - | - | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> bool - | - | edit_cmt(self, *args) - | edit_cmt(self, loc) -> bool - | - | edit_func_cmt(self, *args) - | edit_func_cmt(self) -> bool - | - | get_current_item(self, *args) - | get_current_item(self, idv) -> bool - | - | get_current_label(self, *args) - | get_current_label(self) -> int - | - | get_number(self, *args) - | get_number(self) -> cnumber_t - | - | in_ctree(self, *args) - | in_ctree(self) -> bool - | - | invert_bits(self, *args) - | invert_bits(self) -> bool - | - | invert_sign(self, *args) - | invert_sign(self) -> bool - | - | jump_enter(self, *args) - | jump_enter(self, idv, omflags) -> bool - | - | locked(self, *args) - | locked(self) -> bool - | - | map_lvar(self, *args) - | map_lvar(self, frm, to) -> bool - | - | refresh_cpos(self, *args) - | refresh_cpos(self, idv) -> bool - | - | refresh_ctext(self, *args) - | refresh_ctext(self, activate=True) - | - | refresh_view(self, *args) - | refresh_view(self, redo_mba) - | - | rename_global(self, *args) - | rename_global(self, ea) -> bool - | - | rename_label(self, *args) - | rename_label(self, label) -> bool - | - | rename_lvar(self, *args) - | rename_lvar(self, v, name, is_user_name) -> bool - | - | rename_strmem(self, *args) - | rename_strmem(self, sptr, mptr) -> bool - | - | set_global_type(self, *args) - | set_global_type(self, ea) -> bool - | - | set_locked(self, *args) - | set_locked(self, v) -> bool - | - | set_lvar_cmt(self, *args) - | set_lvar_cmt(self, v, cmt) -> bool - | - | set_lvar_type(self, *args) - | set_lvar_type(self, v, type) -> bool - | - | set_noptr_lvar(self, *args) - | set_noptr_lvar(self, v) -> bool - | - | set_num_enum(self, *args) - | set_num_enum(self) -> bool - | - | set_num_radix(self, *args) - | set_num_radix(self, base) -> bool - | - | set_num_stroff(self, *args) - | set_num_stroff(self) -> bool - | - | set_strmem_type(self, *args) - | set_strmem_type(self, sptr, mptr) -> bool - | - | set_valid(self, *args) - | set_valid(self, v) - | - | set_visible(self, *args) - | set_visible(self, v) - | - | split_item(self, *args) - | split_item(self, split) -> bool - | - | switch_to(self, *args) - | switch_to(self, f, activate) - | - | ui_edit_lvar_cmt(self, *args) - | ui_edit_lvar_cmt(self, v) -> bool - | - | ui_map_lvar(self, *args) - | ui_map_lvar(self, v) -> bool - | - | ui_rename_lvar(self, *args) - | ui_rename_lvar(self, v) -> bool - | - | ui_set_call_type(self, *args) - | ui_set_call_type(self, e) -> bool - | - | ui_set_lvar_type(self, *args) - | ui_set_lvar_type(self, v) -> bool - | - | ui_unmap_lvar(self, *args) - | ui_unmap_lvar(self, v) -> bool - | - | valid(self, *args) - | valid(self) -> bool - | - | visible(self, *args) - | visible(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t - | - | cpos - | vdui_t_cpos_get(self) -> ctext_position_t - | - | ct - | vdui_t_ct_get(self) -> TWidget * - | - | flags - | vdui_t_flags_get(self) -> int - | - | head - | vdui_t_head_get(self) -> ctree_item_t - | - | item - | vdui_t_item_get(self) -> ctree_item_t - | - | last_code - | vdui_t_last_code_get(self) -> merror_t - | - | mba - | vdui_t_mba_get(self) -> mbl_array_t - | - | tail - | vdui_t_tail_get(self) -> ctree_item_t - | - | thisown - | The membership flag - | - | toplevel - | vdui_t_toplevel_get(self) -> TWidget * - | - | view_idx - | vdui_t_view_idx_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vdui_t> - | delete_vdui_t(self) - -Help on class vivl_t in module ida_hexrays: - -class vivl_t(voff_t) - | Proxy of C++ vivl_t class. - | - | Method resolution order: - | vivl_t - | voff_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | __eq__(self, mop) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t - | __init__(self, ch) -> vivl_t - | __init__(self, op) -> vivl_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, voff2) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | extend_to_cover(self, *args) - | extend_to_cover(self, r) -> bool - | - | includes(self, *args) - | includes(self, r) -> bool - | - | intersect(self, *args) - | intersect(self, r) -> uval_t - | - | overlap(self, *args) - | overlap(self, r) -> bool - | - | set(self, *args) - | set(self, _type, _off, _size=0) - | set(self, voff, _size) - | - | set_reg(self, *args) - | set_reg(self, mreg, sz=0) - | - | set_stkoff(self, *args) - | set_stkoff(self, stkoff, sz=0) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | size - | vivl_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_vivl_t> - | delete_vivl_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from voff_t: - | - | add(self, *args) - | add(self, width) -> voff_t - | - | defined(self, *args) - | defined(self) -> bool - | - | diff(self, *args) - | diff(self, r) -> sval_t - | - | get_reg(self, *args) - | get_reg(self) -> mreg_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | inc(self, *args) - | inc(self, delta) - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | undef(self, *args) - | undef(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from voff_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | voff_t_off_get(self) -> sval_t - | - | type - | voff_t_type_get(self) -> mopt_t - -Help on class voff_t in module ida_hexrays: - -class voff_t(__builtin__.object) - | Proxy of C++ voff_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> voff_t - | __init__(self, _type, _off) -> voff_t - | __init__(self, op) -> voff_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | add(self, *args) - | add(self, width) -> voff_t - | - | compare(self, *args) - | compare(self, r) -> int - | - | defined(self, *args) - | defined(self) -> bool - | - | diff(self, *args) - | diff(self, r) -> sval_t - | - | get_reg(self, *args) - | get_reg(self) -> mreg_t - | - | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t - | - | inc(self, *args) - | inc(self, delta) - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | set(self, *args) - | set(self, _type, _off) - | - | set_reg(self, *args) - | set_reg(self, mreg) - | - | set_stkoff(self, *args) - | set_stkoff(self, stkoff) - | - | undef(self, *args) - | undef(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | voff_t_off_get(self) -> sval_t - | - | thisown - | The membership flag - | - | type - | voff_t_type_get(self) -> mopt_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_voff_t> - | delete_voff_t(self) - -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -if it becomes useless - -del the jump insn at the end of the block -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -printf- or scanf-style format string - -A variadic function with recognized -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -by function calls and indirect memory access - -ignore possible implicit definitions -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -(example: STM on ARM may transfer multiple registers) - -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -the specified are accepted (used in patterns) - -private block - no instructions except -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" -""" - -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_STROFF -""" -internal bit: used as stroff, valid iff 'is_stroff()' -""" - -ida_hexrays.OPROP_CCFLAGS -""" -condition codes register value -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -do not optimize low/high(ldx) -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. -""" - -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? -""" - -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" - -ida_hexrays.VR_AT_START -""" -at the block start (if M is NULL) - -get value ranges before the instruction or -""" - -ida_hexrays.VR_EXACT -""" -valrng size will be >= vivl.size - -find exact match. if not set, the returned -""" -=== ida_hexrays EPYDOC INJECTIONS END === -Help on function __make_idainfo_accessors in module ida_ida: - -__make_idainfo_accessors(attr, getter_name=None, setter_name=None) - -Help on function __make_idainfo_bound in module ida_ida: - -__make_idainfo_bound(func, attr) - #<pycode(py_ida)> - -Help on function __make_idainfo_getter in module ida_ida: - -__make_idainfo_getter(name) - -Help on function calc_default_idaplace_flags in module ida_ida: - -calc_default_idaplace_flags(*args) - calc_default_idaplace_flags() -> int - - - Get default disassembly line options. - -Help on class compiler_info_t in module ida_ida: - -class compiler_info_t(__builtin__.object) - | Proxy of C++ compiler_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> compiler_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cm - | compiler_info_t_cm_get(self) -> cm_t - | - | defalign - | compiler_info_t_defalign_get(self) -> uchar - | - | id - | compiler_info_t_id_get(self) -> comp_t - | - | size_b - | compiler_info_t_size_b_get(self) -> uchar - | - | size_e - | compiler_info_t_size_e_get(self) -> uchar - | - | size_i - | compiler_info_t_size_i_get(self) -> uchar - | - | size_l - | compiler_info_t_size_l_get(self) -> uchar - | - | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar - | - | size_ll - | compiler_info_t_size_ll_get(self) -> uchar - | - | size_s - | compiler_info_t_size_s_get(self) -> uchar - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_compiler_info_t> - | delete_compiler_info_t(self) - -Help on class idainfo in module ida_ida: - -class idainfo(__builtin__.object) - | Proxy of C++ idainfo class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | big_arg_align = __func(self, *args) - | - | gen_lzero = __func(self, *args) - | - | gen_null = __func(self, *args) - | - | gen_tryblks = __func(self, *args) - | - | get_abiname(self, *args) - | get_abiname(self) -> qstring - | - | get_demname_form = __func(self, *args) - | - | get_maxEA(self, *args) - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) - | get_minEA(self) -> ea_t - | - | get_pack_mode = __func(self, *args) - | - | get_procName(self, *args) - | get_procName(self) -> qstring - | - | is_32bit = __func(self, *args) - | - | is_64bit = __func(self, *args) - | - | is_auto_enabled = __func(self, *args) - | - | is_be = __func(self, *args) - | - | is_dll = __func(self, *args) - | - | is_flat_off32 = __func(self, *args) - | - | is_graph_view = __func(self, *args) - | - | is_hard_float = __func(self, *args) - | - | is_kernel_mode = __func(self, *args) - | - | is_mem_aligned4 = __func(self, *args) - | - | is_snapshot = __func(self, *args) - | - | is_wide_high_byte_first = __func(self, *args) - | - | like_binary = __func(self, *args) - | - | line_pref_with_seg = __func(self, *args) - | - | loading_idc = __func(self, *args) - | - | map_stkargs = __func(self, *args) - | - | pack_stkargs = __func(self, *args) - | - | readonly_idb = __func(self, *args) - | - | set_64bit = __func(self, *args) - | - | set_auto_enabled = __func(self, *args) - | - | set_be = __func(self, *args) - | - | set_gen_lzero = __func(self, *args) - | - | set_gen_null = __func(self, *args) - | - | set_gen_tryblks = __func(self, *args) - | - | set_graph_view = __func(self, *args) - | - | set_line_pref_with_seg = __func(self, *args) - | - | set_maxEA(self, *args) - | set_maxEA(self, ea) - | - | set_minEA(self, *args) - | set_minEA(self, ea) - | - | set_pack_mode = __func(self, *args) - | - | set_show_auto = __func(self, *args) - | - | set_show_line_pref = __func(self, *args) - | - | set_show_void = __func(self, *args) - | - | set_wide_high_byte_first = __func(self, *args) - | - | show_auto = __func(self, *args) - | - | show_line_pref = __func(self, *args) - | - | show_void = __func(self, *args) - | - | stack_ldbl = __func(self, *args) - | - | stack_varargs = __func(self, *args) - | - | use_allasm = __func(self, *args) - | - | use_gcc_layout = __func(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | abibits - | idainfo_abibits_get(self) -> uint32 - | - | abiname - | get_abiname(self) -> qstring - | - | af - | idainfo_af_get(self) -> uint32 - | - | af2 - | idainfo_af2_get(self) -> uint32 - | - | appcall_options - | idainfo_appcall_options_get(self) -> uint32 - | - | apptype - | idainfo_apptype_get(self) -> ushort - | - | asmtype - | idainfo_asmtype_get(self) -> uchar - | - | baseaddr - | idainfo_baseaddr_get(self) -> uval_t - | - | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short - | - | cc - | idainfo_cc_get(self) -> compiler_info_t - | - | comment - | idainfo_comment_get(self) -> uchar - | - | database_change_count - | idainfo_database_change_count_get(self) -> uint32 - | - | datatypes - | idainfo_datatypes_get(self) -> uval_t - | - | demnames - | idainfo_demnames_get(self) -> uchar - | - | filetype - | idainfo_filetype_get(self) -> ushort - | - | highoff - | idainfo_highoff_get(self) -> ea_t - | - | indent - | idainfo_indent_get(self) -> uchar - | - | lenxref - | idainfo_lenxref_get(self) -> ushort - | - | lflags - | idainfo_lflags_get(self) -> uint32 - | - | listnames - | idainfo_listnames_get(self) -> uchar - | - | long_demnames - | idainfo_long_demnames_get(self) -> uint32 - | - | lowoff - | idainfo_lowoff_get(self) -> ea_t - | - | main - | idainfo_main_get(self) -> ea_t - | - | margin - | idainfo_margin_get(self) -> ushort - | - | maxEA - | get_maxEA(self) -> ea_t - | - | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort - | - | max_ea - | idainfo_max_ea_get(self) -> ea_t - | - | maxref - | idainfo_maxref_get(self) -> uval_t - | - | minEA - | get_minEA(self) -> ea_t - | - | min_ea - | idainfo_min_ea_get(self) -> ea_t - | - | nametype - | idainfo_nametype_get(self) -> char - | - | omax_ea - | idainfo_omax_ea_get(self) -> ea_t - | - | omin_ea - | idainfo_omin_ea_get(self) -> ea_t - | - | ostype - | idainfo_ostype_get(self) -> ushort - | - | outflags - | idainfo_outflags_get(self) -> uint32 - | - | procName - | get_procName(self) -> qstring - | - | procname - | idainfo_procname_get(self) -> char [16] - | - | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar - | - | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar - | - | s_genflags - | idainfo_s_genflags_get(self) -> ushort - | - | s_limiter - | idainfo_s_limiter_get(self) -> uchar - | - | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar - | - | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar - | - | short_demnames - | idainfo_short_demnames_get(self) -> uint32 - | - | specsegs - | idainfo_specsegs_get(self) -> uchar - | - | start_cs - | idainfo_start_cs_get(self) -> sel_t - | - | start_ea - | idainfo_start_ea_get(self) -> ea_t - | - | start_ip - | idainfo_start_ip_get(self) -> ea_t - | - | start_sp - | idainfo_start_sp_get(self) -> ea_t - | - | start_ss - | idainfo_start_ss_get(self) -> sel_t - | - | strlit_break - | idainfo_strlit_break_get(self) -> uchar - | - | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar - | - | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] - | - | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t - | - | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char - | - | strtype - | idainfo_strtype_get(self) -> int32 - | - | tag - | idainfo_tag_get(self) -> char [3] - | - | thisown - | The membership flag - | - | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar - | - | version - | idainfo_version_get(self) -> ushort - | - | xrefnum - | idainfo_xrefnum_get(self) -> uchar - -Help on function inf_big_arg_align in module ida_ida: - -inf_big_arg_align(*args) - inf_big_arg_align() -> bool - -Help on function inf_gen_lzero in module ida_ida: - -inf_gen_lzero(*args) - inf_gen_lzero() -> bool - -Help on function inf_gen_null in module ida_ida: - -inf_gen_null(*args) - inf_gen_null() -> bool - -Help on function inf_gen_tryblks in module ida_ida: - -inf_gen_tryblks(*args) - inf_gen_tryblks() -> bool - -Help on function inf_get_demname_form in module ida_ida: - -inf_get_demname_form(*args) - inf_get_demname_form() -> uchar - - - Get 'DEMNAM_MASK' bits of #demnames. - -Help on function inf_get_pack_mode in module ida_ida: - -inf_get_pack_mode(*args) - inf_get_pack_mode() -> int - -Help on function inf_is_32bit in module ida_ida: - -inf_is_32bit(*args) - inf_is_32bit() -> bool - -Help on function inf_is_64bit in module ida_ida: - -inf_is_64bit(*args) - inf_is_64bit() -> bool - -Help on function inf_is_auto_enabled in module ida_ida: - -inf_is_auto_enabled(*args) - inf_is_auto_enabled() -> bool - -Help on function inf_is_be in module ida_ida: - -inf_is_be(*args) - inf_is_be() -> bool - -Help on function inf_is_dll in module ida_ida: - -inf_is_dll(*args) - inf_is_dll() -> bool - -Help on function inf_is_flat_off32 in module ida_ida: - -inf_is_flat_off32(*args) - inf_is_flat_off32() -> bool - -Help on function inf_is_graph_view in module ida_ida: - -inf_is_graph_view(*args) - inf_is_graph_view() -> bool - -Help on function inf_is_hard_float in module ida_ida: - -inf_is_hard_float(*args) - inf_is_hard_float() -> bool - -Help on function inf_is_kernel_mode in module ida_ida: - -inf_is_kernel_mode(*args) - inf_is_kernel_mode() -> bool - -Help on function inf_is_mem_aligned4 in module ida_ida: - -inf_is_mem_aligned4(*args) - inf_is_mem_aligned4() -> bool - -Help on function inf_is_snapshot in module ida_ida: - -inf_is_snapshot(*args) - inf_is_snapshot() -> bool - -Help on function inf_is_wide_high_byte_first in module ida_ida: - -inf_is_wide_high_byte_first(*args) - inf_is_wide_high_byte_first() -> bool - -Help on function inf_like_binary in module ida_ida: - -inf_like_binary(*args) - inf_like_binary() -> bool - -Help on function inf_line_pref_with_seg in module ida_ida: - -inf_line_pref_with_seg(*args) - inf_line_pref_with_seg() -> bool - -Help on function inf_loading_idc in module ida_ida: - -inf_loading_idc(*args) - inf_loading_idc() -> bool - -Help on function inf_map_stkargs in module ida_ida: - -inf_map_stkargs(*args) - inf_map_stkargs() -> bool - -Help on function inf_pack_stkargs in module ida_ida: - -inf_pack_stkargs(*args) - inf_pack_stkargs() -> bool - -Help on function inf_readonly_idb in module ida_ida: - -inf_readonly_idb(*args) - inf_readonly_idb() -> bool - -Help on function inf_set_64bit in module ida_ida: - -inf_set_64bit(*args) - inf_set_64bit(_v=True) -> bool - -Help on function inf_set_auto_enabled in module ida_ida: - -inf_set_auto_enabled(*args) - inf_set_auto_enabled(_v=True) -> bool - -Help on function inf_set_be in module ida_ida: - -inf_set_be(*args) - inf_set_be(_v=True) -> bool - -Help on function inf_set_gen_lzero in module ida_ida: - -inf_set_gen_lzero(*args) - inf_set_gen_lzero(_v=True) -> bool - -Help on function inf_set_gen_null in module ida_ida: - -inf_set_gen_null(*args) - inf_set_gen_null(_v=True) -> bool - -Help on function inf_set_gen_tryblks in module ida_ida: - -inf_set_gen_tryblks(*args) - inf_set_gen_tryblks(_v=True) -> bool - -Help on function inf_set_graph_view in module ida_ida: - -inf_set_graph_view(*args) - inf_set_graph_view(_v=True) -> bool - -Help on function inf_set_line_pref_with_seg in module ida_ida: - -inf_set_line_pref_with_seg(*args) - inf_set_line_pref_with_seg(_v=True) -> bool - -Help on function inf_set_pack_mode in module ida_ida: - -inf_set_pack_mode(*args) - inf_set_pack_mode(pack_mode) -> int - -Help on function inf_set_show_auto in module ida_ida: - -inf_set_show_auto(*args) - inf_set_show_auto(_v=True) -> bool - -Help on function inf_set_show_line_pref in module ida_ida: - -inf_set_show_line_pref(*args) - inf_set_show_line_pref(_v=True) -> bool - -Help on function inf_set_show_void in module ida_ida: - -inf_set_show_void(*args) - inf_set_show_void(_v=True) -> bool - -Help on function <lambda> in module ida_ida: - -<lambda> lambda *args - -Help on function inf_set_wide_high_byte_first in module ida_ida: - -inf_set_wide_high_byte_first(*args) - inf_set_wide_high_byte_first(_v=True) -> bool - -Help on function inf_show_auto in module ida_ida: - -inf_show_auto(*args) - inf_show_auto() -> bool - -Help on function inf_show_line_pref in module ida_ida: - -inf_show_line_pref(*args) - inf_show_line_pref() -> bool - -Help on function inf_show_void in module ida_ida: - -inf_show_void(*args) - inf_show_void() -> bool - -Help on function inf_stack_ldbl in module ida_ida: - -inf_stack_ldbl(*args) - inf_stack_ldbl() -> bool - -Help on function inf_stack_varargs in module ida_ida: - -inf_stack_varargs(*args) - inf_stack_varargs() -> bool - -Help on function inf_use_allasm in module ida_ida: - -inf_use_allasm(*args) - inf_use_allasm() -> bool - -Help on function inf_use_gcc_layout in module ida_ida: - -inf_use_gcc_layout(*args) - inf_use_gcc_layout() -> bool - -Help on function inf_abi_set_by_user in module ida_ida: - -inf_abi_set_by_user(*args) - inf_abi_set_by_user() -> bool - -Help on function inf_allow_non_matched_ops in module ida_ida: - -inf_allow_non_matched_ops(*args) - inf_allow_non_matched_ops() -> bool - -Help on function inf_allow_sigmulti in module ida_ida: - -inf_allow_sigmulti(*args) - inf_allow_sigmulti() -> bool - -Help on function inf_append_sigcmt in module ida_ida: - -inf_append_sigcmt(*args) - inf_append_sigcmt() -> bool - -Help on function inf_check_manual_ops in module ida_ida: - -inf_check_manual_ops(*args) - inf_check_manual_ops() -> bool - -Help on function inf_check_unicode_strlits in module ida_ida: - -inf_check_unicode_strlits(*args) - inf_check_unicode_strlits() -> bool - -Help on function inf_coagulate_code in module ida_ida: - -inf_coagulate_code(*args) - inf_coagulate_code() -> bool - -Help on function inf_coagulate_data in module ida_ida: - -inf_coagulate_data(*args) - inf_coagulate_data() -> bool - -Help on function inf_compress_idb in module ida_ida: - -inf_compress_idb(*args) - inf_compress_idb() -> bool - -Help on function inf_create_all_xrefs in module ida_ida: - -inf_create_all_xrefs(*args) - inf_create_all_xrefs() -> bool - -Help on function inf_create_func_from_call in module ida_ida: - -inf_create_func_from_call(*args) - inf_create_func_from_call() -> bool - -Help on function inf_create_func_from_ptr in module ida_ida: - -inf_create_func_from_ptr(*args) - inf_create_func_from_ptr() -> bool - -Help on function inf_create_func_tails in module ida_ida: - -inf_create_func_tails(*args) - inf_create_func_tails() -> bool - -Help on function inf_create_jump_tables in module ida_ida: - -inf_create_jump_tables(*args) - inf_create_jump_tables() -> bool - -Help on function inf_create_off_on_dref in module ida_ida: - -inf_create_off_on_dref(*args) - inf_create_off_on_dref() -> bool - -Help on function inf_create_off_using_fixup in module ida_ida: - -inf_create_off_using_fixup(*args) - inf_create_off_using_fixup() -> bool - -Help on function inf_create_strlit_on_xref in module ida_ida: - -inf_create_strlit_on_xref(*args) - inf_create_strlit_on_xref() -> bool - -Help on function inf_data_offset in module ida_ida: - -inf_data_offset(*args) - inf_data_offset() -> bool - -Help on function inf_dbg_no_store_path in module ida_ida: - -inf_dbg_no_store_path(*args) - inf_dbg_no_store_path() -> bool - -Help on function inf_decode_fpp in module ida_ida: - -inf_decode_fpp(*args) - inf_decode_fpp() -> bool - -Help on function inf_del_no_xref_insns in module ida_ida: - -inf_del_no_xref_insns(*args) - inf_del_no_xref_insns() -> bool - -Help on function inf_final_pass in module ida_ida: - -inf_final_pass(*args) - inf_final_pass() -> bool - -Help on function inf_full_sp_ana in module ida_ida: - -inf_full_sp_ana(*args) - inf_full_sp_ana() -> bool - -Help on function inf_gen_assume in module ida_ida: - -inf_gen_assume(*args) - inf_gen_assume() -> bool - -Help on function inf_gen_org in module ida_ida: - -inf_gen_org(*args) - inf_gen_org() -> bool - -Help on function inf_get_abibits in module ida_ida: - -inf_get_abibits(*args) - inf_get_abibits() -> uint32 - -Help on function inf_get_af in module ida_ida: - -inf_get_af(*args) - inf_get_af() -> uint32 - -Help on function inf_get_af2 in module ida_ida: - -inf_get_af2(*args) - inf_get_af2() -> uint32 - -Help on function inf_get_af2_low in module ida_ida: - -inf_get_af2_low(*args) - inf_get_af2_low() -> ushort - - - Get/set low 16bit half of inf.af2. - -Help on function inf_get_af_high in module ida_ida: - -inf_get_af_high(*args) - inf_get_af_high() -> ushort - -Help on function inf_get_af_low in module ida_ida: - -inf_get_af_low(*args) - inf_get_af_low() -> ushort - - - Get/set low/high 16bit halves of inf.af. - -Help on function inf_get_appcall_options in module ida_ida: - -inf_get_appcall_options(*args) - inf_get_appcall_options() -> uint32 - -Help on function inf_get_apptype in module ida_ida: - -inf_get_apptype(*args) - inf_get_apptype() -> ushort - -Help on function inf_get_asmtype in module ida_ida: - -inf_get_asmtype(*args) - inf_get_asmtype() -> uchar - -Help on function inf_get_baseaddr in module ida_ida: - -inf_get_baseaddr(*args) - inf_get_baseaddr() -> uval_t - -Help on function inf_get_bin_prefix_size in module ida_ida: - -inf_get_bin_prefix_size(*args) - inf_get_bin_prefix_size() -> short - -Help on function inf_get_cc in module ida_ida: - -inf_get_cc(*args) - inf_get_cc(out) -> bool - -Help on function inf_get_cc_cm in module ida_ida: - -inf_get_cc_cm(*args) - inf_get_cc_cm() -> cm_t - -Help on function inf_get_cc_defalign in module ida_ida: - -inf_get_cc_defalign(*args) - inf_get_cc_defalign() -> uchar - -Help on function inf_get_cc_id in module ida_ida: - -inf_get_cc_id(*args) - inf_get_cc_id() -> comp_t - -Help on function inf_get_cc_size_b in module ida_ida: - -inf_get_cc_size_b(*args) - inf_get_cc_size_b() -> uchar - -Help on function inf_get_cc_size_e in module ida_ida: - -inf_get_cc_size_e(*args) - inf_get_cc_size_e() -> uchar - -Help on function inf_get_cc_size_i in module ida_ida: - -inf_get_cc_size_i(*args) - inf_get_cc_size_i() -> uchar - -Help on function inf_get_cc_size_l in module ida_ida: - -inf_get_cc_size_l(*args) - inf_get_cc_size_l() -> uchar - -Help on function inf_get_cc_size_ldbl in module ida_ida: - -inf_get_cc_size_ldbl(*args) - inf_get_cc_size_ldbl() -> uchar - -Help on function inf_get_cc_size_ll in module ida_ida: - -inf_get_cc_size_ll(*args) - inf_get_cc_size_ll() -> uchar - -Help on function inf_get_cc_size_s in module ida_ida: - -inf_get_cc_size_s(*args) - inf_get_cc_size_s() -> uchar - -Help on function inf_get_cmtflg in module ida_ida: - -inf_get_cmtflg(*args) - inf_get_cmtflg() -> uchar - -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) - inf_get_comment() -> uchar - -Help on function inf_get_database_change_count in module ida_ida: - -inf_get_database_change_count(*args) - inf_get_database_change_count() -> uint32 - -Help on function inf_get_datatypes in module ida_ida: - -inf_get_datatypes(*args) - inf_get_datatypes() -> uval_t - -Help on function inf_get_demnames in module ida_ida: - -inf_get_demnames(*args) - inf_get_demnames() -> uchar - -Help on function inf_get_filetype in module ida_ida: - -inf_get_filetype(*args) - inf_get_filetype() -> filetype_t - -Help on function inf_get_genflags in module ida_ida: - -inf_get_genflags(*args) - inf_get_genflags() -> ushort - -Help on function inf_get_highoff in module ida_ida: - -inf_get_highoff(*args) - inf_get_highoff() -> ea_t - -Help on function inf_get_indent in module ida_ida: - -inf_get_indent(*args) - inf_get_indent() -> uchar - -Help on function inf_get_lenxref in module ida_ida: - -inf_get_lenxref(*args) - inf_get_lenxref() -> ushort - -Help on function inf_get_lflags in module ida_ida: - -inf_get_lflags(*args) - inf_get_lflags() -> uint32 - -Help on function inf_get_limiter in module ida_ida: - -inf_get_limiter(*args) - inf_get_limiter() -> uchar - -Help on function inf_get_listnames in module ida_ida: - -inf_get_listnames(*args) - inf_get_listnames() -> uchar - -Help on function inf_get_long_demnames in module ida_ida: - -inf_get_long_demnames(*args) - inf_get_long_demnames() -> uint32 - -Help on function inf_get_lowoff in module ida_ida: - -inf_get_lowoff(*args) - inf_get_lowoff() -> ea_t - -Help on function inf_get_main in module ida_ida: - -inf_get_main(*args) - inf_get_main() -> ea_t - -Help on function inf_get_margin in module ida_ida: - -inf_get_margin(*args) - inf_get_margin() -> ushort - -Help on function inf_get_max_autoname_len in module ida_ida: - -inf_get_max_autoname_len(*args) - inf_get_max_autoname_len() -> ushort - -Help on function inf_get_max_ea in module ida_ida: - -inf_get_max_ea(*args) - inf_get_max_ea() -> ea_t - -Help on function inf_get_maxref in module ida_ida: - -inf_get_maxref(*args) - inf_get_maxref() -> uval_t - -Help on function inf_get_min_ea in module ida_ida: - -inf_get_min_ea(*args) - inf_get_min_ea() -> ea_t - -Help on function inf_get_nametype in module ida_ida: - -inf_get_nametype(*args) - inf_get_nametype() -> char - -Help on function inf_get_netdelta in module ida_ida: - -inf_get_netdelta(*args) - inf_get_netdelta() -> sval_t - -Help on function inf_get_omax_ea in module ida_ida: - -inf_get_omax_ea(*args) - inf_get_omax_ea() -> ea_t - -Help on function inf_get_omin_ea in module ida_ida: - -inf_get_omin_ea(*args) - inf_get_omin_ea() -> ea_t - -Help on function inf_get_ostype in module ida_ida: - -inf_get_ostype(*args) - inf_get_ostype() -> ushort - -Help on function inf_get_outflags in module ida_ida: - -inf_get_outflags(*args) - inf_get_outflags() -> uint32 - -Help on function inf_get_prefflag in module ida_ida: - -inf_get_prefflag(*args) - inf_get_prefflag() -> uchar - -Help on function inf_get_privrange in module ida_ida: - -inf_get_privrange(*args) - inf_get_privrange(out) -> bool - inf_get_privrange() -> range_t - -Help on function inf_get_privrange_end_ea in module ida_ida: - -inf_get_privrange_end_ea(*args) - inf_get_privrange_end_ea() -> ea_t - -Help on function inf_get_privrange_start_ea in module ida_ida: - -inf_get_privrange_start_ea(*args) - inf_get_privrange_start_ea() -> ea_t - -Help on function inf_get_procname in module ida_ida: - -inf_get_procname(*args) - inf_get_procname() -> str - -Help on function inf_get_refcmtnum in module ida_ida: - -inf_get_refcmtnum(*args) - inf_get_refcmtnum() -> uchar - -Help on function inf_get_short_demnames in module ida_ida: - -inf_get_short_demnames(*args) - inf_get_short_demnames() -> uint32 - -Help on function inf_get_specsegs in module ida_ida: - -inf_get_specsegs(*args) - inf_get_specsegs() -> uchar - -Help on function inf_get_start_cs in module ida_ida: - -inf_get_start_cs(*args) - inf_get_start_cs() -> sel_t - -Help on function inf_get_start_ea in module ida_ida: - -inf_get_start_ea(*args) - inf_get_start_ea() -> ea_t - -Help on function inf_get_start_ip in module ida_ida: - -inf_get_start_ip(*args) - inf_get_start_ip() -> ea_t - -Help on function inf_get_start_sp in module ida_ida: - -inf_get_start_sp(*args) - inf_get_start_sp() -> ea_t - -Help on function inf_get_start_ss in module ida_ida: - -inf_get_start_ss(*args) - inf_get_start_ss() -> sel_t - -Help on function inf_get_strlit_break in module ida_ida: - -inf_get_strlit_break(*args) - inf_get_strlit_break() -> uchar - -Help on function inf_get_strlit_flags in module ida_ida: - -inf_get_strlit_flags(*args) - inf_get_strlit_flags() -> uchar - -Help on function inf_get_strlit_pref in module ida_ida: - -inf_get_strlit_pref(*args) - inf_get_strlit_pref() -> str - -Help on function inf_get_strlit_sernum in module ida_ida: - -inf_get_strlit_sernum(*args) - inf_get_strlit_sernum() -> uval_t - -Help on function inf_get_strlit_zeroes in module ida_ida: - -inf_get_strlit_zeroes(*args) - inf_get_strlit_zeroes() -> char - -Help on function inf_get_strtype in module ida_ida: - -inf_get_strtype(*args) - inf_get_strtype() -> int32 - -Help on function inf_get_type_xrefnum in module ida_ida: - -inf_get_type_xrefnum(*args) - inf_get_type_xrefnum() -> uchar - -Help on function inf_get_version in module ida_ida: - -inf_get_version(*args) - inf_get_version() -> ushort - -Help on function inf_get_xrefflag in module ida_ida: - -inf_get_xrefflag(*args) - inf_get_xrefflag() -> uchar - -Help on function inf_get_xrefnum in module ida_ida: - -inf_get_xrefnum(*args) - inf_get_xrefnum() -> uchar - -Help on function inf_guess_func_type in module ida_ida: - -inf_guess_func_type(*args) - inf_guess_func_type() -> bool - -Help on function inf_handle_eh in module ida_ida: - -inf_handle_eh(*args) - inf_handle_eh() -> bool - -Help on function inf_handle_rtti in module ida_ida: - -inf_handle_rtti(*args) - inf_handle_rtti() -> bool - -Help on function inf_hide_comments in module ida_ida: - -inf_hide_comments(*args) - inf_hide_comments() -> bool - -Help on function inf_hide_libfuncs in module ida_ida: - -inf_hide_libfuncs(*args) - inf_hide_libfuncs() -> bool - -Help on function inf_huge_arg_align in module ida_ida: - -inf_huge_arg_align(*args) - inf_huge_arg_align() -> bool - -Help on function inf_inc_database_change_count in module ida_ida: - -inf_inc_database_change_count(*args) - inf_inc_database_change_count(cnt=1) - -Help on function inf_is_limiter_empty in module ida_ida: - -inf_is_limiter_empty(*args) - inf_is_limiter_empty() -> bool - -Help on function inf_is_limiter_thick in module ida_ida: - -inf_is_limiter_thick(*args) - inf_is_limiter_thick() -> bool - -Help on function inf_is_limiter_thin in module ida_ida: - -inf_is_limiter_thin(*args) - inf_is_limiter_thin() -> bool - -Help on function inf_macros_enabled in module ida_ida: - -inf_macros_enabled(*args) - inf_macros_enabled() -> bool - -Help on function inf_mark_code in module ida_ida: - -inf_mark_code(*args) - inf_mark_code() -> bool - -Help on function inf_no_store_user_info in module ida_ida: - -inf_no_store_user_info(*args) - inf_no_store_user_info() -> bool - -Help on function inf_noflow_to_data in module ida_ida: - -inf_noflow_to_data(*args) - inf_noflow_to_data() -> bool - -Help on function inf_noret_ana in module ida_ida: - -inf_noret_ana(*args) - inf_noret_ana() -> bool - -Help on function inf_op_offset in module ida_ida: - -inf_op_offset(*args) - inf_op_offset() -> bool - -Help on function inf_pack_idb in module ida_ida: - -inf_pack_idb(*args) - inf_pack_idb() -> bool - -Help on function inf_postinc_strlit_sernum in module ida_ida: - -inf_postinc_strlit_sernum(*args) - inf_postinc_strlit_sernum(cnt=1) -> uval_t - -Help on function inf_prefix_show_funcoff in module ida_ida: - -inf_prefix_show_funcoff(*args) - inf_prefix_show_funcoff() -> bool - -Help on function inf_prefix_show_segaddr in module ida_ida: - -inf_prefix_show_segaddr(*args) - inf_prefix_show_segaddr() -> bool - -Help on function inf_prefix_show_stack in module ida_ida: - -inf_prefix_show_stack(*args) - inf_prefix_show_stack() -> bool - -Help on function inf_prefix_truncate_opcode_bytes in module ida_ida: - -inf_prefix_truncate_opcode_bytes(*args) - inf_prefix_truncate_opcode_bytes() -> bool - -Help on function inf_propagate_regargs in module ida_ida: - -inf_propagate_regargs(*args) - inf_propagate_regargs() -> bool - -Help on function inf_propagate_stkargs in module ida_ida: - -inf_propagate_stkargs(*args) - inf_propagate_stkargs() -> bool - -Help on function inf_rename_jumpfunc in module ida_ida: - -inf_rename_jumpfunc(*args) - inf_rename_jumpfunc() -> bool - -Help on function inf_rename_nullsub in module ida_ida: - -inf_rename_nullsub(*args) - inf_rename_nullsub() -> bool - -Help on function inf_set_32bit in module ida_ida: - -inf_set_32bit(*args) - inf_set_32bit(_v=True) -> bool - -Help on function inf_set_abi_set_by_user in module ida_ida: - -inf_set_abi_set_by_user(*args) - inf_set_abi_set_by_user(_v=True) -> bool - -Help on function inf_set_abibits in module ida_ida: - -inf_set_abibits(*args) - inf_set_abibits(_v) -> bool - -Help on function inf_set_af in module ida_ida: - -inf_set_af(*args) - inf_set_af(_v) -> bool - -Help on function inf_set_af2 in module ida_ida: - -inf_set_af2(*args) - inf_set_af2(_v) -> bool - -Help on function inf_set_af2_low in module ida_ida: - -inf_set_af2_low(*args) - inf_set_af2_low(saf) - -Help on function inf_set_af_high in module ida_ida: - -inf_set_af_high(*args) - inf_set_af_high(saf2) - -Help on function inf_set_af_low in module ida_ida: - -inf_set_af_low(*args) - inf_set_af_low(saf) - -Help on function inf_set_allow_non_matched_ops in module ida_ida: - -inf_set_allow_non_matched_ops(*args) - inf_set_allow_non_matched_ops(_v=True) -> bool - -Help on function inf_set_allow_sigmulti in module ida_ida: - -inf_set_allow_sigmulti(*args) - inf_set_allow_sigmulti(_v=True) -> bool - -Help on function inf_set_appcall_options in module ida_ida: - -inf_set_appcall_options(*args) - inf_set_appcall_options(_v) -> bool - -Help on function inf_set_append_sigcmt in module ida_ida: - -inf_set_append_sigcmt(*args) - inf_set_append_sigcmt(_v=True) -> bool - -Help on function inf_set_apptype in module ida_ida: - -inf_set_apptype(*args) - inf_set_apptype(_v) -> bool - -Help on function inf_set_asmtype in module ida_ida: - -inf_set_asmtype(*args) - inf_set_asmtype(_v) -> bool - -Help on function inf_set_baseaddr in module ida_ida: - -inf_set_baseaddr(*args) - inf_set_baseaddr(_v) -> bool - -Help on function inf_set_big_arg_align in module ida_ida: - -inf_set_big_arg_align(*args) - inf_set_big_arg_align(_v=True) -> bool - -Help on function inf_set_bin_prefix_size in module ida_ida: - -inf_set_bin_prefix_size(*args) - inf_set_bin_prefix_size(_v) -> bool - -Help on function inf_set_cc in module ida_ida: - -inf_set_cc(*args) - inf_set_cc(_v) -> bool - -Help on function inf_set_cc_cm in module ida_ida: - -inf_set_cc_cm(*args) - inf_set_cc_cm(_v) -> bool - -Help on function inf_set_cc_defalign in module ida_ida: - -inf_set_cc_defalign(*args) - inf_set_cc_defalign(_v) -> bool - -Help on function inf_set_cc_id in module ida_ida: - -inf_set_cc_id(*args) - inf_set_cc_id(_v) -> bool - -Help on function inf_set_cc_size_b in module ida_ida: - -inf_set_cc_size_b(*args) - inf_set_cc_size_b(_v) -> bool - -Help on function inf_set_cc_size_e in module ida_ida: - -inf_set_cc_size_e(*args) - inf_set_cc_size_e(_v) -> bool - -Help on function inf_set_cc_size_i in module ida_ida: - -inf_set_cc_size_i(*args) - inf_set_cc_size_i(_v) -> bool - -Help on function inf_set_cc_size_l in module ida_ida: - -inf_set_cc_size_l(*args) - inf_set_cc_size_l(_v) -> bool - -Help on function inf_set_cc_size_ldbl in module ida_ida: - -inf_set_cc_size_ldbl(*args) - inf_set_cc_size_ldbl(_v) -> bool - -Help on function inf_set_cc_size_ll in module ida_ida: - -inf_set_cc_size_ll(*args) - inf_set_cc_size_ll(_v) -> bool - -Help on function inf_set_cc_size_s in module ida_ida: - -inf_set_cc_size_s(*args) - inf_set_cc_size_s(_v) -> bool - -Help on function inf_set_check_manual_ops in module ida_ida: - -inf_set_check_manual_ops(*args) - inf_set_check_manual_ops(_v=True) -> bool - -Help on function inf_set_check_unicode_strlits in module ida_ida: - -inf_set_check_unicode_strlits(*args) - inf_set_check_unicode_strlits(_v=True) -> bool - -Help on function inf_set_cmtflg in module ida_ida: - -inf_set_cmtflg(*args) - inf_set_cmtflg(_v) -> bool - -Help on function inf_set_coagulate_code in module ida_ida: - -inf_set_coagulate_code(*args) - inf_set_coagulate_code(_v=True) -> bool - -Help on function inf_set_coagulate_data in module ida_ida: - -inf_set_coagulate_data(*args) - inf_set_coagulate_data(_v=True) -> bool - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) - inf_set_comment(_v) -> bool - -Help on function inf_set_compress_idb in module ida_ida: - -inf_set_compress_idb(*args) - inf_set_compress_idb(_v=True) -> bool - -Help on function inf_set_create_all_xrefs in module ida_ida: - -inf_set_create_all_xrefs(*args) - inf_set_create_all_xrefs(_v=True) -> bool - -Help on function inf_set_create_func_from_call in module ida_ida: - -inf_set_create_func_from_call(*args) - inf_set_create_func_from_call(_v=True) -> bool - -Help on function inf_set_create_func_from_ptr in module ida_ida: - -inf_set_create_func_from_ptr(*args) - inf_set_create_func_from_ptr(_v=True) -> bool - -Help on function inf_set_create_func_tails in module ida_ida: - -inf_set_create_func_tails(*args) - inf_set_create_func_tails(_v=True) -> bool - -Help on function inf_set_create_jump_tables in module ida_ida: - -inf_set_create_jump_tables(*args) - inf_set_create_jump_tables(_v=True) -> bool - -Help on function inf_set_create_off_on_dref in module ida_ida: - -inf_set_create_off_on_dref(*args) - inf_set_create_off_on_dref(_v=True) -> bool - -Help on function inf_set_create_off_using_fixup in module ida_ida: - -inf_set_create_off_using_fixup(*args) - inf_set_create_off_using_fixup(_v=True) -> bool - -Help on function inf_set_create_strlit_on_xref in module ida_ida: - -inf_set_create_strlit_on_xref(*args) - inf_set_create_strlit_on_xref(_v=True) -> bool - -Help on function inf_set_data_offset in module ida_ida: - -inf_set_data_offset(*args) - inf_set_data_offset(_v=True) -> bool - -Help on function inf_set_database_change_count in module ida_ida: - -inf_set_database_change_count(*args) - inf_set_database_change_count(_v) -> bool - -Help on function inf_set_datatypes in module ida_ida: - -inf_set_datatypes(*args) - inf_set_datatypes(_v) -> bool - -Help on function inf_set_dbg_no_store_path in module ida_ida: - -inf_set_dbg_no_store_path(*args) - inf_set_dbg_no_store_path(_v=True) -> bool - -Help on function inf_set_decode_fpp in module ida_ida: - -inf_set_decode_fpp(*args) - inf_set_decode_fpp(_v=True) -> bool - -Help on function inf_set_del_no_xref_insns in module ida_ida: - -inf_set_del_no_xref_insns(*args) - inf_set_del_no_xref_insns(_v=True) -> bool - -Help on function inf_set_demnames in module ida_ida: - -inf_set_demnames(*args) - inf_set_demnames(_v) -> bool - -Help on function inf_set_dll in module ida_ida: - -inf_set_dll(*args) - inf_set_dll(_v=True) -> bool - -Help on function inf_set_filetype in module ida_ida: - -inf_set_filetype(*args) - inf_set_filetype(_v) -> bool - -Help on function inf_set_final_pass in module ida_ida: - -inf_set_final_pass(*args) - inf_set_final_pass(_v=True) -> bool - -Help on function inf_set_flat_off32 in module ida_ida: - -inf_set_flat_off32(*args) - inf_set_flat_off32(_v=True) -> bool - -Help on function inf_set_full_sp_ana in module ida_ida: - -inf_set_full_sp_ana(*args) - inf_set_full_sp_ana(_v=True) -> bool - -Help on function inf_set_gen_assume in module ida_ida: - -inf_set_gen_assume(*args) - inf_set_gen_assume(_v=True) -> bool - -Help on function inf_set_gen_org in module ida_ida: - -inf_set_gen_org(*args) - inf_set_gen_org(_v=True) -> bool - -Help on function inf_set_genflags in module ida_ida: - -inf_set_genflags(*args) - inf_set_genflags(_v) -> bool - -Help on function inf_set_guess_func_type in module ida_ida: - -inf_set_guess_func_type(*args) - inf_set_guess_func_type(_v=True) -> bool - -Help on function inf_set_handle_eh in module ida_ida: - -inf_set_handle_eh(*args) - inf_set_handle_eh(_v=True) -> bool - -Help on function inf_set_handle_rtti in module ida_ida: - -inf_set_handle_rtti(*args) - inf_set_handle_rtti(_v=True) -> bool - -Help on function inf_set_hard_float in module ida_ida: - -inf_set_hard_float(*args) - inf_set_hard_float(_v=True) -> bool - -Help on function inf_set_hide_comments in module ida_ida: - -inf_set_hide_comments(*args) - inf_set_hide_comments(_v=True) -> bool - -Help on function inf_set_hide_libfuncs in module ida_ida: - -inf_set_hide_libfuncs(*args) - inf_set_hide_libfuncs(_v=True) -> bool - -Help on function inf_set_highoff in module ida_ida: - -inf_set_highoff(*args) - inf_set_highoff(_v) -> bool - -Help on function inf_set_huge_arg_align in module ida_ida: - -inf_set_huge_arg_align(*args) - inf_set_huge_arg_align(_v=True) -> bool - -Help on function inf_set_indent in module ida_ida: - -inf_set_indent(*args) - inf_set_indent(_v) -> bool - -Help on function inf_set_kernel_mode in module ida_ida: - -inf_set_kernel_mode(*args) - inf_set_kernel_mode(_v=True) -> bool - -Help on function inf_set_lenxref in module ida_ida: - -inf_set_lenxref(*args) - inf_set_lenxref(_v) -> bool - -Help on function inf_set_lflags in module ida_ida: - -inf_set_lflags(*args) - inf_set_lflags(_v) -> bool - -Help on function inf_set_limiter in module ida_ida: - -inf_set_limiter(*args) - inf_set_limiter(_v) -> bool - -Help on function inf_set_limiter_empty in module ida_ida: - -inf_set_limiter_empty(*args) - inf_set_limiter_empty(_v=True) -> bool - -Help on function inf_set_limiter_thick in module ida_ida: - -inf_set_limiter_thick(*args) - inf_set_limiter_thick(_v=True) -> bool - -Help on function inf_set_limiter_thin in module ida_ida: - -inf_set_limiter_thin(*args) - inf_set_limiter_thin(_v=True) -> bool - -Help on function inf_set_listnames in module ida_ida: - -inf_set_listnames(*args) - inf_set_listnames(_v) -> bool - -Help on function inf_set_loading_idc in module ida_ida: - -inf_set_loading_idc(*args) - inf_set_loading_idc(_v=True) -> bool - -Help on function inf_set_long_demnames in module ida_ida: - -inf_set_long_demnames(*args) - inf_set_long_demnames(_v) -> bool - -Help on function inf_set_lowoff in module ida_ida: - -inf_set_lowoff(*args) - inf_set_lowoff(_v) -> bool - -Help on function inf_set_macros_enabled in module ida_ida: - -inf_set_macros_enabled(*args) - inf_set_macros_enabled(_v=True) -> bool - -Help on function inf_set_main in module ida_ida: - -inf_set_main(*args) - inf_set_main(_v) -> bool - -Help on function inf_set_map_stkargs in module ida_ida: - -inf_set_map_stkargs(*args) - inf_set_map_stkargs(_v=True) -> bool - -Help on function inf_set_margin in module ida_ida: - -inf_set_margin(*args) - inf_set_margin(_v) -> bool - -Help on function inf_set_mark_code in module ida_ida: - -inf_set_mark_code(*args) - inf_set_mark_code(_v=True) -> bool - -Help on function inf_set_max_autoname_len in module ida_ida: - -inf_set_max_autoname_len(*args) - inf_set_max_autoname_len(_v) -> bool - -Help on function inf_set_max_ea in module ida_ida: - -inf_set_max_ea(*args) - inf_set_max_ea(_v) -> bool - -Help on function inf_set_maxref in module ida_ida: - -inf_set_maxref(*args) - inf_set_maxref(_v) -> bool - -Help on function inf_set_mem_aligned4 in module ida_ida: - -inf_set_mem_aligned4(*args) - inf_set_mem_aligned4(_v=True) -> bool - -Help on function inf_set_min_ea in module ida_ida: - -inf_set_min_ea(*args) - inf_set_min_ea(_v) -> bool - -Help on function inf_set_nametype in module ida_ida: - -inf_set_nametype(*args) - inf_set_nametype(_v) -> bool - -Help on function inf_set_netdelta in module ida_ida: - -inf_set_netdelta(*args) - inf_set_netdelta(_v) -> bool - -Help on function inf_set_no_store_user_info in module ida_ida: - -inf_set_no_store_user_info(*args) - inf_set_no_store_user_info(_v=True) -> bool - -Help on function inf_set_noflow_to_data in module ida_ida: - -inf_set_noflow_to_data(*args) - inf_set_noflow_to_data(_v=True) -> bool - -Help on function inf_set_noret_ana in module ida_ida: - -inf_set_noret_ana(*args) - inf_set_noret_ana(_v=True) -> bool - -Help on function inf_set_omax_ea in module ida_ida: - -inf_set_omax_ea(*args) - inf_set_omax_ea(_v) -> bool - -Help on function inf_set_omin_ea in module ida_ida: - -inf_set_omin_ea(*args) - inf_set_omin_ea(_v) -> bool - -Help on function inf_set_op_offset in module ida_ida: - -inf_set_op_offset(*args) - inf_set_op_offset(_v=True) -> bool - -Help on function inf_set_ostype in module ida_ida: - -inf_set_ostype(*args) - inf_set_ostype(_v) -> bool - -Help on function inf_set_outflags in module ida_ida: - -inf_set_outflags(*args) - inf_set_outflags(_v) -> bool - -Help on function inf_set_pack_idb in module ida_ida: - -inf_set_pack_idb(*args) - inf_set_pack_idb(_v=True) -> bool - -Help on function inf_set_pack_stkargs in module ida_ida: - -inf_set_pack_stkargs(*args) - inf_set_pack_stkargs(_v=True) -> bool - -Help on function inf_set_prefflag in module ida_ida: - -inf_set_prefflag(*args) - inf_set_prefflag(_v) -> bool - -Help on function inf_set_prefix_show_funcoff in module ida_ida: - -inf_set_prefix_show_funcoff(*args) - inf_set_prefix_show_funcoff(_v=True) -> bool - -Help on function inf_set_prefix_show_segaddr in module ida_ida: - -inf_set_prefix_show_segaddr(*args) - inf_set_prefix_show_segaddr(_v=True) -> bool - -Help on function inf_set_prefix_show_stack in module ida_ida: - -inf_set_prefix_show_stack(*args) - inf_set_prefix_show_stack(_v=True) -> bool - -Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: - -inf_set_prefix_truncate_opcode_bytes(*args) - inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool - -Help on function inf_set_privrange in module ida_ida: - -inf_set_privrange(*args) - inf_set_privrange(_v) -> bool - -Help on function inf_set_privrange_end_ea in module ida_ida: - -inf_set_privrange_end_ea(*args) - inf_set_privrange_end_ea(_v) -> bool - -Help on function inf_set_privrange_start_ea in module ida_ida: - -inf_set_privrange_start_ea(*args) - inf_set_privrange_start_ea(_v) -> bool - -Help on function inf_set_procname in module ida_ida: - -inf_set_procname(*args) - inf_set_procname(_v, len=size_t(-1)) -> bool - -Help on function inf_set_propagate_regargs in module ida_ida: - -inf_set_propagate_regargs(*args) - inf_set_propagate_regargs(_v=True) -> bool - -Help on function inf_set_propagate_stkargs in module ida_ida: - -inf_set_propagate_stkargs(*args) - inf_set_propagate_stkargs(_v=True) -> bool - -Help on function inf_set_readonly_idb in module ida_ida: - -inf_set_readonly_idb(*args) - inf_set_readonly_idb(_v=True) -> bool - -Help on function inf_set_refcmtnum in module ida_ida: - -inf_set_refcmtnum(*args) - inf_set_refcmtnum(_v) -> bool - -Help on function inf_set_rename_jumpfunc in module ida_ida: - -inf_set_rename_jumpfunc(*args) - inf_set_rename_jumpfunc(_v=True) -> bool - -Help on function inf_set_rename_nullsub in module ida_ida: - -inf_set_rename_nullsub(*args) - inf_set_rename_nullsub(_v=True) -> bool - -Help on function inf_set_short_demnames in module ida_ida: - -inf_set_short_demnames(*args) - inf_set_short_demnames(_v) -> bool - -Help on function inf_set_should_create_stkvars in module ida_ida: - -inf_set_should_create_stkvars(*args) - inf_set_should_create_stkvars(_v=True) -> bool - -Help on function inf_set_should_trace_sp in module ida_ida: - -inf_set_should_trace_sp(*args) - inf_set_should_trace_sp(_v=True) -> bool - -Help on function inf_set_show_all_comments in module ida_ida: - -inf_set_show_all_comments(*args) - inf_set_show_all_comments(_v=True) -> bool - -Help on function inf_set_show_hidden_funcs in module ida_ida: - -inf_set_show_hidden_funcs(*args) - inf_set_show_hidden_funcs(_v=True) -> bool - -Help on function inf_set_show_hidden_insns in module ida_ida: - -inf_set_show_hidden_insns(*args) - inf_set_show_hidden_insns(_v=True) -> bool - -Help on function inf_set_show_hidden_segms in module ida_ida: - -inf_set_show_hidden_segms(*args) - inf_set_show_hidden_segms(_v=True) -> bool - -Help on function inf_set_show_repeatables in module ida_ida: - -inf_set_show_repeatables(*args) - inf_set_show_repeatables(_v=True) -> bool - -Help on function inf_set_show_src_linnum in module ida_ida: - -inf_set_show_src_linnum(*args) - inf_set_show_src_linnum(_v=True) -> bool - -Help on function inf_set_show_xref_fncoff in module ida_ida: - -inf_set_show_xref_fncoff(*args) - inf_set_show_xref_fncoff(_v=True) -> bool - -Help on function inf_set_show_xref_seg in module ida_ida: - -inf_set_show_xref_seg(*args) - inf_set_show_xref_seg(_v=True) -> bool - -Help on function inf_set_show_xref_tmarks in module ida_ida: - -inf_set_show_xref_tmarks(*args) - inf_set_show_xref_tmarks(_v=True) -> bool - -Help on function inf_set_show_xref_val in module ida_ida: - -inf_set_show_xref_val(*args) - inf_set_show_xref_val(_v=True) -> bool - -Help on function inf_set_snapshot in module ida_ida: - -inf_set_snapshot(*args) - inf_set_snapshot(_v=True) -> bool - -Help on function inf_set_specsegs in module ida_ida: - -inf_set_specsegs(*args) - inf_set_specsegs(_v) -> bool - -Help on function inf_set_stack_ldbl in module ida_ida: - -inf_set_stack_ldbl(*args) - inf_set_stack_ldbl(_v=True) -> bool - -Help on function inf_set_stack_varargs in module ida_ida: - -inf_set_stack_varargs(*args) - inf_set_stack_varargs(_v=True) -> bool - -Help on function inf_set_start_cs in module ida_ida: - -inf_set_start_cs(*args) - inf_set_start_cs(_v) -> bool - -Help on function inf_set_start_ea in module ida_ida: - -inf_set_start_ea(*args) - inf_set_start_ea(_v) -> bool - -Help on function inf_set_start_ip in module ida_ida: - -inf_set_start_ip(*args) - inf_set_start_ip(_v) -> bool - -Help on function inf_set_start_sp in module ida_ida: - -inf_set_start_sp(*args) - inf_set_start_sp(_v) -> bool - -Help on function inf_set_start_ss in module ida_ida: - -inf_set_start_ss(*args) - inf_set_start_ss(_v) -> bool - -Help on function inf_set_strlit_autocmt in module ida_ida: - -inf_set_strlit_autocmt(*args) - inf_set_strlit_autocmt(_v=True) -> bool - -Help on function inf_set_strlit_break in module ida_ida: - -inf_set_strlit_break(*args) - inf_set_strlit_break(_v) -> bool - -Help on function inf_set_strlit_flags in module ida_ida: - -inf_set_strlit_flags(*args) - inf_set_strlit_flags(_v) -> bool - -Help on function inf_set_strlit_name_bit in module ida_ida: - -inf_set_strlit_name_bit(*args) - inf_set_strlit_name_bit(_v=True) -> bool - -Help on function inf_set_strlit_names in module ida_ida: - -inf_set_strlit_names(*args) - inf_set_strlit_names(_v=True) -> bool - -Help on function inf_set_strlit_pref in module ida_ida: - -inf_set_strlit_pref(*args) - inf_set_strlit_pref(_v, len=size_t(-1)) -> bool - -Help on function inf_set_strlit_savecase in module ida_ida: - -inf_set_strlit_savecase(*args) - inf_set_strlit_savecase(_v=True) -> bool - -Help on function inf_set_strlit_serial_names in module ida_ida: - -inf_set_strlit_serial_names(*args) - inf_set_strlit_serial_names(_v=True) -> bool - -Help on function inf_set_strlit_sernum in module ida_ida: - -inf_set_strlit_sernum(*args) - inf_set_strlit_sernum(_v) -> bool - -Help on function inf_set_strlit_zeroes in module ida_ida: - -inf_set_strlit_zeroes(*args) - inf_set_strlit_zeroes(_v) -> bool - -Help on function inf_set_strtype in module ida_ida: - -inf_set_strtype(*args) - inf_set_strtype(_v) -> bool - -Help on function inf_set_test_mode in module ida_ida: - -inf_set_test_mode(*args) - inf_set_test_mode(_v=True) -> bool - -Help on function inf_set_trace_flow in module ida_ida: - -inf_set_trace_flow(*args) - inf_set_trace_flow(_v=True) -> bool - -Help on function inf_set_truncate_on_del in module ida_ida: - -inf_set_truncate_on_del(*args) - inf_set_truncate_on_del(_v=True) -> bool - -Help on function inf_set_type_xrefnum in module ida_ida: - -inf_set_type_xrefnum(*args) - inf_set_type_xrefnum(_v) -> bool - -Help on function inf_set_unicode_strlits in module ida_ida: - -inf_set_unicode_strlits(*args) - inf_set_unicode_strlits(_v=True) -> bool - -Help on function inf_set_use_allasm in module ida_ida: - -inf_set_use_allasm(*args) - inf_set_use_allasm(_v=True) -> bool - -Help on function inf_set_use_flirt in module ida_ida: - -inf_set_use_flirt(*args) - inf_set_use_flirt(_v=True) -> bool - -Help on function inf_set_use_gcc_layout in module ida_ida: - -inf_set_use_gcc_layout(*args) - inf_set_use_gcc_layout(_v=True) -> bool - -Help on function inf_set_version in module ida_ida: - -inf_set_version(*args) - inf_set_version(_v) -> bool - -Help on function inf_set_xrefflag in module ida_ida: - -inf_set_xrefflag(*args) - inf_set_xrefflag(_v) -> bool - -Help on function inf_set_xrefnum in module ida_ida: - -inf_set_xrefnum(*args) - inf_set_xrefnum(_v) -> bool - -Help on function inf_should_create_stkvars in module ida_ida: - -inf_should_create_stkvars(*args) - inf_should_create_stkvars() -> bool - -Help on function inf_should_trace_sp in module ida_ida: - -inf_should_trace_sp(*args) - inf_should_trace_sp() -> bool - -Help on function inf_show_all_comments in module ida_ida: - -inf_show_all_comments(*args) - inf_show_all_comments() -> bool - -Help on function inf_show_hidden_funcs in module ida_ida: - -inf_show_hidden_funcs(*args) - inf_show_hidden_funcs() -> bool - -Help on function inf_show_hidden_insns in module ida_ida: - -inf_show_hidden_insns(*args) - inf_show_hidden_insns() -> bool - -Help on function inf_show_hidden_segms in module ida_ida: - -inf_show_hidden_segms(*args) - inf_show_hidden_segms() -> bool - -Help on function inf_show_repeatables in module ida_ida: - -inf_show_repeatables(*args) - inf_show_repeatables() -> bool - -Help on function inf_show_src_linnum in module ida_ida: - -inf_show_src_linnum(*args) - inf_show_src_linnum() -> bool - -Help on function inf_show_xref_fncoff in module ida_ida: - -inf_show_xref_fncoff(*args) - inf_show_xref_fncoff() -> bool - -Help on function inf_show_xref_seg in module ida_ida: - -inf_show_xref_seg(*args) - inf_show_xref_seg() -> bool - -Help on function inf_show_xref_tmarks in module ida_ida: - -inf_show_xref_tmarks(*args) - inf_show_xref_tmarks() -> bool - -Help on function inf_show_xref_val in module ida_ida: - -inf_show_xref_val(*args) - inf_show_xref_val() -> bool - -Help on function inf_strlit_autocmt in module ida_ida: - -inf_strlit_autocmt(*args) - inf_strlit_autocmt() -> bool - -Help on function inf_strlit_name_bit in module ida_ida: - -inf_strlit_name_bit(*args) - inf_strlit_name_bit() -> bool - -Help on function inf_strlit_names in module ida_ida: - -inf_strlit_names(*args) - inf_strlit_names() -> bool - -Help on function inf_strlit_savecase in module ida_ida: - -inf_strlit_savecase(*args) - inf_strlit_savecase() -> bool - -Help on function inf_strlit_serial_names in module ida_ida: - -inf_strlit_serial_names(*args) - inf_strlit_serial_names() -> bool - -Help on function inf_test_mode in module ida_ida: - -inf_test_mode(*args) - inf_test_mode() -> bool - -Help on function inf_trace_flow in module ida_ida: - -inf_trace_flow(*args) - inf_trace_flow() -> bool - -Help on function inf_truncate_on_del in module ida_ida: - -inf_truncate_on_del(*args) - inf_truncate_on_del() -> bool - -Help on function inf_unicode_strlits in module ida_ida: - -inf_unicode_strlits(*args) - inf_unicode_strlits() -> bool - -Help on function inf_use_flirt in module ida_ida: - -inf_use_flirt(*args) - inf_use_flirt() -> bool - -Help on function is_filetype_like_binary in module ida_ida: - -is_filetype_like_binary(*args) - is_filetype_like_binary(ft) -> bool - - - Is unstructured input file? - - - @param ft (C++: filetype_t) - -Help on function <lambda> in module ida_ida: - -<lambda> lambda *args - -Help on function to_ea in module ida_ida: - -to_ea(*args) - to_ea(reg_cs, reg_ip) -> ea_t - - - Convert (sel,off) value to a linear address. - - - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) - -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" - -ida_ida.ABI_BIGARG_ALIGN -""" -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - -use natural type alignment for argument if the alignment exceeds -native word size -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -the target assembler - -may use constructs not supported by -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === -Help on class CustomIDAMemo in module ida_kernwin: - -class CustomIDAMemo(View_Hooks) - | #<pycode(py_kernwin_viewhooks)> - | # ----------------------------------------------------------------------- - | # CustomIDAMemo - | # ----------------------------------------------------------------------- - | - | Method resolution order: - | CustomIDAMemo - | View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | CreateGroups(self, groups_infos) - | Send a request to modify the graph by creating a - | (set of) group(s), and perform an animation. - | - | Each object in the 'groups_infos' list must be of the format: - | { - | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group - | "text" : <string> # The synthetic text for that group - | } - | - | @param groups_infos: A list of objects that describe those groups. - | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). - | - | DelNodesInfos(self, *nodes) - | Delete the properties for the given node(s). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | __init__(self) - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from View_Hooks: - | - | __swig_destroy__ = <built-in function delete_View_Hooks> - | delete_View_Hooks(self) - -Help on __IDAPython_Completion_Util in module ida_idaapi object: - -class __IDAPython_Completion_Util(__builtin__.object) - | Internal utility class for auto-completion support - | - | Methods defined here: - | - | __call__(self, line, x) - | - | __init__(self) - | - | debug(self, *args) - | - | dir_namespace(self, m, prefix) - | - | get_candidates(self, qname, line, match_syntax_char) - | - | maybe_extend_syntactically(self, ns, name, line, syntax_char) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | QNAME_PAT = <_sre.SRE_Pattern object> - -Help on function IDAPython_ExecScript in module ida_idaapi: - -IDAPython_ExecScript(script, g, print_error=True) - Run the specified script. - It also addresses http://code.google.com/p/idapython/issues/detail?id=42 - - This function is used by the low-level plugin code. - -Help on function IDAPython_ExecSystem in module ida_idaapi: - -IDAPython_ExecSystem(cmd) - Executes a command with popen(). - -Help on function IDAPython_FormatExc in module ida_idaapi: - -IDAPython_FormatExc(etype, value=None, tb=None, limit=None) - This function is used to format an exception given the - values returned by a PyErr_Fetch() - -Help on function IDAPython_LoadProcMod in module ida_idaapi: - -IDAPython_LoadProcMod(script, g, print_error=True) - Load processor module. - -Help on function IDAPython_UnLoadProcMod in module ida_idaapi: - -IDAPython_UnLoadProcMod(script, g, print_error=True) - Unload processor module. - -Help on class IDAPython_displayhook in module ida_idaapi: - -class IDAPython_displayhook - | # ------------------------------------------------------------ - | - | Methods defined here: - | - | __init__(self) - | - | _print_hex(self, x) - | - | displayhook(self, item) - | - | format_item(self, num_printer, storage, item) - | - | format_seq(self, num_printer, storage, item, opn, cls) - -Help on class PyIdc_cvt_int64__ in module ida_idaapi: - -class PyIdc_cvt_int64__(pyidc_cvt_helper__) - | Helper class for explicitly representing VT_INT64 values - | - | Method resolution order: - | PyIdc_cvt_int64__ - | pyidc_cvt_helper__ - | __builtin__.object - | - | Methods defined here: - | - | _PyIdc_cvt_int64____op = __op(self, op_n, other, rev=False) - | - | __add__(self, other) - | - | __div__(self, other) - | - | __init__(self, v) - | - | __mul__(self, other) - | - | __radd__(self, other) - | - | __rdiv__(self, other) - | - | __rmul__(self, other) - | - | __rsub__(self, other) - | - | __sub__(self, other) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | _PyIdc_cvt_int64____op_table = {0: <function <lambda>>, 1: <function <... - | - | ---------------------------------------------------------------------- - | Methods inherited from pyidc_cvt_helper__: - | - | _pyidc_cvt_helper____get_value = __get_value(self) - | - | _pyidc_cvt_helper____set_value = __set_value(self, v) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from pyidc_cvt_helper__: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | value - -Help on class PyIdc_cvt_refclass__ in module ida_idaapi: - -class PyIdc_cvt_refclass__(pyidc_cvt_helper__) - | Helper class for representing references to immutable objects - | - | Method resolution order: - | PyIdc_cvt_refclass__ - | pyidc_cvt_helper__ - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, v) - | - | cstr(self) - | Returns the string as a C string (up to the zero termination) - | - | ---------------------------------------------------------------------- - | Methods inherited from pyidc_cvt_helper__: - | - | _pyidc_cvt_helper____get_value = __get_value(self) - | - | _pyidc_cvt_helper____set_value = __set_value(self, v) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from pyidc_cvt_helper__: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | value - -Help on instance of __BC695 in module ida_idaapi: - -class __BC695 - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - -Help on instance of IDAPython_displayhook in module ida_idaapi: - -class IDAPython_displayhook - | # ------------------------------------------------------------ - | - | Methods defined here: - | - | __init__(self) - | - | _print_hex(self, x) - | - | displayhook(self, item) - | - | format_item(self, num_printer, storage, item) - | - | format_seq(self, num_printer, storage, item, opn, cls) - -Help on class __BC695 in module ida_idaapi: - -class __BC695 - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - -Help on class __IDAPython_Completion_Util in module ida_idaapi: - -class __IDAPython_Completion_Util(__builtin__.object) - | Internal utility class for auto-completion support - | - | Methods defined here: - | - | __call__(self, line, x) - | - | __init__(self) - | - | debug(self, *args) - | - | dir_namespace(self, m, prefix) - | - | get_candidates(self, qname, line, match_syntax_char) - | - | maybe_extend_syntactically(self, ns, name, line, syntax_char) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | QNAME_PAT = <_sre.SRE_Pattern object> - -Help on function __install_excepthook in module ida_idaapi: - -__install_excepthook() - # Since version 5.5, PyQt5 doesn't simply print the PyQt exceptions by default - # anymore: https://github.com/baoboa/pyqt5/commit/1e1d8a3ba677ef3e47b916b8a5b9c281d0f8e4b5#diff-848704a82f6a6e3a13112145ce32ac69L63 - # The default behavior now is that qFatal() is called, causing the application - # to abort(). - # We do not want that to happen in IDA, and simply having a sys.excepthook - # that is different from sys.__excepthook__ is enough for PyQt5 to return - # to the previous behavior - -Help on function _bounded_getitem_iterator in module ida_idaapi: - -_bounded_getitem_iterator(self) - Helper function, to be set as __iter__ method for qvector-, or array-based classes. - -Help on function _listify_types in module ida_idaapi: - -_listify_types(*classes) - -Help on function _qvector_back in module ida_idaapi: - -_qvector_back(self) - # ----------------------------------------------------------------------- - -Help on function _qvector_front in module ida_idaapi: - -_qvector_front(self) - # ----------------------------------------------------------------------- - -Help on function _replace_module_function in module ida_idaapi: - -_replace_module_function(replacement) - -Help on function _utf8_native in module ida_idaapi: - -_utf8_native(utf8) - -Help on function as_UTF16 in module ida_idaapi: - -as_UTF16(s) - Convenience function to convert a string into appropriate unicode format - -Help on function as_cstr in module ida_idaapi: - -as_cstr(val) - Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) - It scans for the first � and returns the string value up to that point. - -Help on function as_int32 in module ida_idaapi: - -as_int32(v) - Returns a number as a signed int32 number - -Help on function as_signed in module ida_idaapi: - -as_signed(v, nbits=32) - Returns a number as signed. The number of bits are specified by the user. - The MSB holds the sign. - -Help on function as_uint32 in module ida_idaapi: - -as_uint32(v) - Returns a number as an unsigned int32 number - -Help on function copy_bits in module ida_idaapi: - -copy_bits(v, s, e=-1) - Copy bits from a value - @param v: the value - @param s: starting bit (0-based) - @param e: ending bit - -Help on function disable_script_timeout in module ida_idaapi: - -disable_script_timeout(*args) - disable_script_timeout() - - - Disables the script timeout and hides the script wait box. - Calling L{set_script_timeout} will not have any effects until the script is compiled and executed again - - @return: None - -Help on function enable_extlang_python in module ida_idaapi: - -enable_extlang_python(*args) - enable_extlang_python(enable) - - - Enables or disables Python extlang. - When enabled, all expressions will be evaluated by Python. - @param enable: Set to True to enable, False otherwise - -Help on function enable_python_cli in module ida_idaapi: - -enable_python_cli(*args) - enable_python_cli(enable) - -Help on function format_basestring in module ida_idaapi: - -format_basestring(*args) - format_basestring(_in) -> PyObject * - -Help on function get_inf_structure in module ida_idaapi: - -get_inf_structure(*args) - get_inf_structure() -> idainfo - - - Returns the global variable 'inf' (an instance of idainfo structure, see ida.hpp) - -Help on class loader_input_t in module ida_idaapi: - -class loader_input_t(__builtin__.object) - | Proxy of C++ loader_input_t class. - | - | - | A helper class to work with linput_t related functions. - | This class is also used by file loaders scripts. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, pycapsule=None) -> loader_input_t - | - | - | Closes the file - | - | __repr__ = _swig_repr(self) - | - | close(self, *args) - | close(self) - | - | file2base(self, *args) - | file2base(self, pos, ea1, ea2, patchable) -> int - | - | - | Load portion of file into the database - | This function will include (ea1..ea2) into the addressing space of the - | program (make it enabled) - | @param li: pointer ot input source - | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses - | @param patchable: should the kernel remember correspondance of - | file offsets to linear addresses. - | @return: 1-ok,0-read error, a warning is displayed - | - | filename(self, *args) - | filename(self) -> PyObject * - | - | get_char(self, *args) - | get_char(self) -> PyObject * - | - | get_linput(self, *args) - | get_linput(self) -> linput_t * - | - | gets(self, *args) - | gets(self, len) -> PyObject * - | - | - | Reads a line from the input file. Returns the read line or None - | - | getz(self, *args) - | getz(self, sz, fpos=-1) -> PyObject * - | - | - | Returns a zero terminated string at the given position - | @param sz: maximum size of the string - | @param fpos: if != -1 then seek will be performed before reading - | @return: The string or None on failure. - | - | open(self, *args) - | open(self, filename, remote=False) -> bool - | - | - | Opens a file (or a remote file) - | @return: Boolean - | - | open_memory(self, *args) - | open_memory(self, start, size=0) -> bool - | - | - | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) - | This linput will use dbg->read_memory() to read data - | @param start: starting address of the input - | @param size: size of the memory range to represent as linput - | if unknown, may be passed as 0 - | - | opened(self, *args) - | opened(self) -> bool - | - | - | Checks if the file is opened or not - | - | read(self, *args) - | read(self, size) -> PyObject * - | - | - | Reads from the file. Returns the buffer or None - | - | readbytes(self, *args) - | readbytes(self, size, big_endian) -> PyObject * - | - | - | Similar to read() but it respect the endianness - | - | seek(self, *args) - | seek(self, pos, whence=SEEK_SET) -> int64 - | - | - | Set input source position - | @return: the new position (not 0 as fseek!) - | - | set_linput(self, *args) - | set_linput(self, linput) - | - | - | Links the current loader_input_t instance to a linput_t instance - | - | size(self, *args) - | size(self) -> int64 - | - | tell(self, *args) - | tell(self) -> int64 - | - | - | Returns the current position - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | from_capsule(*args) - | from_capsule(pycapsule) -> loader_input_t - | - | from_fp(*args) - | from_fp(fp) -> loader_input_t - | - | - | A static method to construct an instance from a FILE* - | - | from_linput(*args) - | from_linput(linput) -> loader_input_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_loader_input_t> - | delete_loader_input_t(self) - -Help on function loader_input_t_from_capsule in module ida_idaapi: - -loader_input_t_from_capsule(*args) - loader_input_t_from_capsule(pycapsule) -> loader_input_t - -Help on function loader_input_t_from_fp in module ida_idaapi: - -loader_input_t_from_fp(*args) - loader_input_t_from_fp(fp) -> loader_input_t - -Help on function loader_input_t_from_linput in module ida_idaapi: - -loader_input_t_from_linput(*args) - loader_input_t_from_linput(linput) -> loader_input_t - -Help on function notify_when in module ida_idaapi: - -notify_when(when, callback) - Register a callback that will be called when an event happens. - @param when: one of NW_XXXX constants - @param callback: This callback prototype varies depending on the 'when' parameter: - The general callback format: - def notify_when_callback(nw_code) - In the case of NW_OPENIDB: - def notify_when_callback(nw_code, is_old_database) - @return: Boolean - -Help on class object_t in module ida_idaapi: - -class object_t(__builtin__.object) - | Helper class used to initialize empty objects - | - | Methods defined here: - | - | __getitem__(self, idx) - | Allow access to object attributes by index (like dictionaries) - | - | __init__(self, **kwds) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function parse_command_line3 in module ida_idaapi: - -parse_command_line3(*args) - parse_command_line3(cmdline) -> PyObject * - -Help on class plugin_t in module ida_idaapi: - -class plugin_t(pyidc_opaque_object_t) - | Base class for all scripted plugins. - | - | Method resolution order: - | plugin_t - | pyidc_opaque_object_t - | __builtin__.object - | - | Data descriptors inherited from pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on class py_clinked_object_t in module ida_idaapi: - -class py_clinked_object_t(pyidc_opaque_object_t) - | This is a utility and base class for C linked objects - | - | Method resolution order: - | py_clinked_object_t - | pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __del__(self) - | Delete the link upon object destruction (only if not static) - | - | __init__(self, lnk=None) - | - | _create_clink(self) - | Overwrite me. - | Creates a new clink - | @return: PyCapsule representing the C link - | - | _del_clink(self, lnk) - | Overwrite me. - | This method deletes the link - | - | _free(self) - | Explicitly delete the link (only if not static) - | - | _get_clink_ptr(self) - | Overwrite me. - | Returns the C link pointer as a 64bit number - | - | assign(self, other) - | Overwrite me. - | This method allows you to assign an instance contents to anothers - | @return: Boolean - | - | copy(self) - | Returns a new copy of this class - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | clink - | - | clink_ptr - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on function pycim_get_widget in module ida_idaapi: - -pycim_get_widget(*args) - pycim_get_widget(_self) -> TWidget * - -Help on function pycim_view_close in module ida_idaapi: - -pycim_view_close(*args) - pycim_view_close(_self) - -Help on function pygc_create_groups in module ida_idaapi: - -pygc_create_groups(*args) - pygc_create_groups(_self, groups_infos) -> PyObject * - -Help on function pygc_delete_groups in module ida_idaapi: - -pygc_delete_groups(*args) - pygc_delete_groups(_self, groups, new_current) -> PyObject * - -Help on function pygc_refresh in module ida_idaapi: - -pygc_refresh(*args) - pygc_refresh(_self) - -Help on function pygc_set_groups_visibility in module ida_idaapi: - -pygc_set_groups_visibility(*args) - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * - -Help on class pyidc_cvt_helper__ in module ida_idaapi: - -class pyidc_cvt_helper__(__builtin__.object) - | This is a special helper object that helps detect which kind - | of object is this python object wrapping and how to convert it - | back and from IDC. - | This object is characterized by its special attribute and its value - | - | Methods defined here: - | - | __init__(self, cvt_id, value) - | - | _pyidc_cvt_helper____get_value = __get_value(self) - | - | _pyidc_cvt_helper____set_value = __set_value(self, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | value - -Help on class pyidc_opaque_object_t in module ida_idaapi: - -class pyidc_opaque_object_t(__builtin__.object) - | This is the base class for all Python<->IDC opaque objects - | - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __idc_cvt_id__ = 2 - -Help on function replfun in module ida_idaapi: - -replfun(func) - -Help on function require in module ida_idaapi: - -require(modulename, package=None) - Load, or reload a module. - - When under heavy development, a user's tool might consist of multiple - modules. If those are imported using the standard 'import' mechanism, - there is no guarantee that the Python implementation will re-read - and re-evaluate the module's Python code. In fact, it usually doesn't. - What should be done instead is 'reload()'-ing that module. - - This is a simple helper function that will do just that: In case the - module doesn't exist, it 'import's it, and if it does exist, - 'reload()'s it. - - The importing module (i.e., the module calling require()) will have - the loaded module bound to its globals(), under the name 'modulename'. - (If require() is called from the command line, the importing module - will be '__main__'.) - - For more information, see: <http://www.hexblog.com/?p=749>. - -Help on function set_script_timeout in module ida_idaapi: - -set_script_timeout(*args) - set_script_timeout(timeout) -> int - - - Changes the script timeout value. The script wait box dialog will be hidden and shown again when the timeout elapses. - See also L{disable_script_timeout}. - - @param timeout: This value is in seconds. - If this value is set to zero then the script will never timeout. - @return: Returns the old timeout value - -Help on function struct_unpack in module ida_idaapi: - -struct_unpack(buffer, signed=False, offs=0) - Unpack a buffer given its length and offset using struct.unpack_from(). - This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' - If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. - -Help on function get_mark_comment in module ida_idc: - -get_mark_comment(*args) - get_mark_comment(slot) -> PyObject * - -Help on function get_marked_pos in module ida_idc: - -get_marked_pos(*args) - get_marked_pos(slot) -> ea_t - -Help on function mark_position in module ida_idc: - -mark_position(*args) - mark_position(ea, lnnum, x, y, slot, comment) - -Help on Appcall__ in module ida_idd object: - -class Appcall__(__builtin__.object) - | # ----------------------------------------------------------------------- - | - | Methods defined here: - | - | _Appcall____get_consts = __get_consts(self) - | - | __getattr__(self, name_or_ea) - | Allows you to call functions as if they were member functions (by returning a callable object) - | - | __getitem__(self, idx) - | Use self[func_name] syntax if the function name contains invalid characters for an attribute name - | See __getattr___ - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | UTF16(s) - | - | _Appcall____name_or_ea = __name_or_ea(name_or_ea) - | Function that accepts a name or an ea and checks if the address is enabled. - | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or - | - Raises an exception if the address is not enabled - | - | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) - | Function that accepts a tinfo_t object or type declaration as a string - | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object - | - Raises an exception if the declaration cannot be parsed - | - | array(type_name) - | Defines an array type. Later you need to pack() / unpack() - | - | buffer(str=None, size=0, fill='\x00') - | Creates a string buffer. The returned value (r) will be a byref object. - | Use r.value to get the contents and r.size to get the buffer's size - | - | byref(val) - | Method to create references to immutable objects - | Currently we support references to int/strings - | Objects need not be passed by reference (this will be done automatically) - | - | cleanup_appcall(tid=0) - | Equivalent to IDC's CleanupAppcall() - | - | cstr(val) - | - | get_appcall_options() - | Return the global Appcall options - | - | int64(v) - | Whenever a 64bit number is needed use this method to construct an object - | - | obj(**kwds) - | Returns an empty object or objects with attributes as passed via its keywords arguments - | - | proto(name_or_ea, proto_or_tinfo, flags=None) - | Allows you to instantiate an appcall (callable object) with the desired prototype - | @param name_or_ea: The name of the function (will be resolved with LocByName()) - | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed - | or the address is not resolvable - | - Returns a callbable Appcall instance with the given prototypes and flags - | - | set_appcall_options(opt) - | Method to change the Appcall options globally (not per Appcall) - | - | typedobj(typedecl_or_tinfo, ea=None) - | Returns an appcall object for a type (can be given as tinfo_t object or - | as a string declaration) - | One can then use retrieve() member method - | @param ea: Optional parameter that later can be used to retrieve the type - | @return: Appcall object or raises ValueError exception - | - | unicode = UTF16(s) - | - | valueof(name, default=0) - | Returns the numeric value of a given name string. - | If the name could not be resolved then the default value will be returned - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | Consts - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | APPCALL_DEBEV = 2 - | - | APPCALL_MANUAL = 1 - | - | APPCALL_TIMEOUT = 4 - | - | __name__ = 'Appcall__' - -Help on class Appcall__ in module ida_idd: - -class Appcall__(__builtin__.object) - | # ----------------------------------------------------------------------- - | - | Methods defined here: - | - | _Appcall____get_consts = __get_consts(self) - | - | __getattr__(self, name_or_ea) - | Allows you to call functions as if they were member functions (by returning a callable object) - | - | __getitem__(self, idx) - | Use self[func_name] syntax if the function name contains invalid characters for an attribute name - | See __getattr___ - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | UTF16(s) - | - | _Appcall____name_or_ea = __name_or_ea(name_or_ea) - | Function that accepts a name or an ea and checks if the address is enabled. - | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or - | - Raises an exception if the address is not enabled - | - | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) - | Function that accepts a tinfo_t object or type declaration as a string - | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object - | - Raises an exception if the declaration cannot be parsed - | - | array(type_name) - | Defines an array type. Later you need to pack() / unpack() - | - | buffer(str=None, size=0, fill='\x00') - | Creates a string buffer. The returned value (r) will be a byref object. - | Use r.value to get the contents and r.size to get the buffer's size - | - | byref(val) - | Method to create references to immutable objects - | Currently we support references to int/strings - | Objects need not be passed by reference (this will be done automatically) - | - | cleanup_appcall(tid=0) - | Equivalent to IDC's CleanupAppcall() - | - | cstr(val) - | - | get_appcall_options() - | Return the global Appcall options - | - | int64(v) - | Whenever a 64bit number is needed use this method to construct an object - | - | obj(**kwds) - | Returns an empty object or objects with attributes as passed via its keywords arguments - | - | proto(name_or_ea, proto_or_tinfo, flags=None) - | Allows you to instantiate an appcall (callable object) with the desired prototype - | @param name_or_ea: The name of the function (will be resolved with LocByName()) - | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed - | or the address is not resolvable - | - Returns a callbable Appcall instance with the given prototypes and flags - | - | set_appcall_options(opt) - | Method to change the Appcall options globally (not per Appcall) - | - | typedobj(typedecl_or_tinfo, ea=None) - | Returns an appcall object for a type (can be given as tinfo_t object or - | as a string declaration) - | One can then use retrieve() member method - | @param ea: Optional parameter that later can be used to retrieve the type - | @return: Appcall object or raises ValueError exception - | - | unicode = UTF16(s) - | - | valueof(name, default=0) - | Returns the numeric value of a given name string. - | If the name could not be resolved then the default value will be returned - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | Consts - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | APPCALL_DEBEV = 2 - | - | APPCALL_MANUAL = 1 - | - | APPCALL_TIMEOUT = 4 - | - | __name__ = 'Appcall__' - -Help on class Appcall_array__ in module ida_idd: - -class Appcall_array__(__builtin__.object) - | This class is used with Appcall.array() method - | - | Methods defined here: - | - | __init__(self, tp) - | - | pack(self, L) - | Packs a list or tuple into a byref buffer - | - | try_to_convert_to_list(self, obj) - | Is this object a list? We check for the existance of attribute zero and attribute self.size-1 - | - | unpack(self, buf, as_list=True) - | Unpacks an array back into a list or an object - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class Appcall_callable__ in module ida_idd: - -class Appcall_callable__(__builtin__.object) - | Helper class to issue appcalls using a natural syntax: - | appcall.FunctionNameInTheDatabase(arguments, ....) - | or - | appcall["Function@8"](arguments, ...) - | or - | f8 = appcall["Function@8"] - | f8(arg1, arg2, ...) - | or - | o = appcall.obj() - | i = byref(5) - | appcall.funcname(arg1, i, "hello", o) - | - | Methods defined here: - | - | _Appcall_callable____get_ea = __get_ea(self) - | - | _Appcall_callable____get_fields = __get_fields(self) - | - | _Appcall_callable____get_options = __get_options(self) - | - | _Appcall_callable____get_size = __get_size(self) - | - | _Appcall_callable____get_tif = __get_tif(self) - | - | _Appcall_callable____get_timeout = __get_timeout(self) - | - | _Appcall_callable____get_type = __get_type(self) - | - | _Appcall_callable____set_ea = __set_ea(self, val) - | - | _Appcall_callable____set_options = __set_options(self, v) - | - | _Appcall_callable____set_timeout = __set_timeout(self, v) - | - | __call__(self, *args) - | Make object callable. We redirect execution to idaapi.appcall() - | - | __init__(self, ea, tinfo_or_typestr=None, fields=None) - | Initializes an appcall with a given function ea - | - | retrieve(self, src=None, flags=0) - | Unpacks a typed object from the database if an ea is given or from a string if a string was passed - | @param src: the address of the object or a string - | @return: Returns a tuple of boolean and object or error number (Bool, Error | Object). - | - | store(self, obj, dest_ea=None, base_ea=0, flags=0) - | Packs an object into a given ea if provided or into a string if no address was passed. - | @param obj: The object to pack - | @param dest_ea: If packing to idb this will be the store location - | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers - | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) - | - If packing to the database then a return code is returned (0 is success) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | - | fields - | - | options - | - | size - | - | tif - | - | timeout - | - | type - -Help on class Appcall_consts__ in module ida_idd: - -class Appcall_consts__(__builtin__.object) - | Helper class used by Appcall.Consts attribute - | It is used to retrieve constants via attribute access - | - | Methods defined here: - | - | __getattr__(self, attr) - | - | __init__(self, default=None) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function appcall in module ida_idd: - -appcall(*args) - appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * - -Help on class bptaddr_t in module ida_idd: - -class bptaddr_t(__builtin__.object) - | Proxy of C++ bptaddr_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bptaddr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hea - | bptaddr_t_hea_get(self) -> ea_t - | - | kea - | bptaddr_t_kea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bptaddr_t> - | delete_bptaddr_t(self) - -Help on class call_stack_info_t in module ida_idd: - -class call_stack_info_t(__builtin__.object) - | Proxy of C++ call_stack_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> call_stack_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | callea - | call_stack_info_t_callea_get(self) -> ea_t - | - | fp - | call_stack_info_t_fp_get(self) -> ea_t - | - | funcea - | call_stack_info_t_funcea_get(self) -> ea_t - | - | funcok - | call_stack_info_t_funcok_get(self) -> bool - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_call_stack_info_t> - | delete_call_stack_info_t(self) - -Help on class call_stack_t in module ida_idd: - -class call_stack_t(__builtin__.object) - | Proxy of C++ qvector< call_stack_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> call_stack_info_t - | - | __init__(self, *args) - | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> call_stack_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t - | - | erase(self, *args) - | erase(self, it) -> call_stack_info_t - | erase(self, first, last) -> call_stack_info_t - | - | extract(self, *args) - | extract(self) -> call_stack_info_t - | - | find(self, *args) - | find(self, x) -> call_stack_info_t - | find(self, x) -> call_stack_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=call_stack_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> call_stack_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> call_stack_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_call_stack_t> - | delete_call_stack_t(self) - -Help on function can_exc_continue in module ida_idd: - -can_exc_continue(*args) - can_exc_continue(ev) -> bool - -Help on function cleanup_appcall in module ida_idd: - -cleanup_appcall(*args) - cleanup_appcall(tid) -> error_t - - - Cleanup after manual appcall. - - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code - -Help on function dbg_appcall in module ida_idd: - -dbg_appcall(*args) - dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - - - Call a function from the debugged application. - - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code - -Help on built-in function dbg_can_query in module _ida_dbg: - -dbg_can_query(...) - dbg_can_query() -> bool - -Help on function dbg_get_memory_info in module ida_idd: - -dbg_get_memory_info(*args) - dbg_get_memory_info() -> PyObject * - - - This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active - tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) - -Help on function dbg_get_name in module ida_idd: - -dbg_get_name(*args) - dbg_get_name() -> PyObject * - - - This function returns the current debugger's name. - @return: Debugger name or None if no debugger is active - -Help on function dbg_get_registers in module ida_idd: - -dbg_get_registers(*args) - dbg_get_registers() -> PyObject * - - - This function returns the register definition from the currently loaded debugger. - Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded - tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) - The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) - -Help on function dbg_get_thread_sreg_base in module ida_idd: - -dbg_get_thread_sreg_base(*args) - dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * - - - Returns the segment register base value - @param tid: thread id - @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' - - Or None on failure - -Help on function dbg_read_memory in module ida_idd: - -dbg_read_memory(*args) - dbg_read_memory(ea, sz) -> PyObject * - - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) - - Or None on failure - -Help on function dbg_write_memory in module ida_idd: - -dbg_write_memory(*args) - dbg_write_memory(ea, buf) -> PyObject * - - - Writes a buffer to the debugee's memory - @return: Boolean - -Help on class debapp_attrs_t in module ida_idd: - -class debapp_attrs_t(__builtin__.object) - | Proxy of C++ debapp_attrs_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> debapp_attrs_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | addrsize - | debapp_attrs_t_addrsize_get(self) -> int - | - | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 - | - | is_be - | debapp_attrs_t_is_be_get(self) -> int - | - | platform - | debapp_attrs_t_platform_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_debapp_attrs_t> - | delete_debapp_attrs_t(self) - -Help on class debug_event_t in module ida_idd: - -class debug_event_t(__builtin__.object) - | Proxy of C++ debug_event_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> debug_event_t - | __init__(self, r) -> debug_event_t - | - | __repr__ = _swig_repr(self) - | - | bpt(self, *args) - | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t - | - | bpt_ea(self, *args) - | bpt_ea(self) -> ea_t - | - | clear(self, *args) - | clear(self) - | - | clear_all(self, *args) - | clear_all(self) - | - | copy(self, *args) - | copy(self, r) -> debug_event_t - | - | eid(self, *args) - | eid(self) -> event_id_t - | - | exc(self, *args) - | exc(self) -> excinfo_t - | exc(self) -> excinfo_t - | - | exit_code(self, *args) - | exit_code(self) -> int const & - | - | info(self, *args) - | info(self) -> qstring - | info(self) -> qstring const & - | - | modinfo(self, *args) - | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t - | - | set_bpt(self, *args) - | set_bpt(self) -> bptaddr_t - | - | set_eid(self, *args) - | set_eid(self, id) - | - | set_exception(self, *args) - | set_exception(self) -> excinfo_t - | - | set_exit_code(self, *args) - | set_exit_code(self, id, code) - | - | set_info(self, *args) - | set_info(self, id) -> qstring & - | - | set_modinfo(self, *args) - | set_modinfo(self, id) -> modinfo_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | debug_event_t_ea_get(self) -> ea_t - | - | handled - | debug_event_t_handled_get(self) -> bool - | - | pid - | debug_event_t_pid_get(self) -> pid_t - | - | thisown - | The membership flag - | - | tid - | debug_event_t_tid_get(self) -> thid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_debug_event_t> - | delete_debug_event_t(self) - -Help on class exception_info_t in module ida_idd: - -class exception_info_t(__builtin__.object) - | Proxy of C++ exception_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> exception_info_t - | __init__(self, _code, _flags, _name, _desc) -> exception_info_t - | - | __repr__ = _swig_repr(self) - | - | break_on(self, *args) - | break_on(self) -> bool - | - | handle(self, *args) - | handle(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | code - | exception_info_t_code_get(self) -> uint - | - | desc - | exception_info_t_desc_get(self) -> qstring * - | - | flags - | exception_info_t_flags_get(self) -> uint32 - | - | name - | exception_info_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_exception_info_t> - | delete_exception_info_t(self) - -Help on class excinfo_t in module ida_idd: - -class excinfo_t(__builtin__.object) - | Proxy of C++ excinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> excinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | can_cont - | excinfo_t_can_cont_get(self) -> bool - | - | code - | excinfo_t_code_get(self) -> uint32 - | - | ea - | excinfo_t_ea_get(self) -> ea_t - | - | info - | excinfo_t_info_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_excinfo_t> - | delete_excinfo_t(self) - -Help on class excvec_t in module ida_idd: - -class excvec_t(__builtin__.object) - | Proxy of C++ qvector< exception_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> exception_info_t - | - | __init__(self, *args) - | __init__(self) -> excvec_t - | __init__(self, x) -> excvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> exception_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> exception_info_t - | begin(self) -> exception_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> exception_info_t - | end(self) -> exception_info_t - | - | erase(self, *args) - | erase(self, it) -> exception_info_t - | erase(self, first, last) -> exception_info_t - | - | extract(self, *args) - | extract(self) -> exception_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=exception_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> exception_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> exception_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_excvec_t> - | delete_excvec_t(self) - -Help on function get_event_bpt_hea in module ida_idd: - -get_event_bpt_hea(*args) - get_event_bpt_hea(ev) -> ea_t - -Help on function get_event_exc_code in module ida_idd: - -get_event_exc_code(*args) - get_event_exc_code(ev) -> uint - -Help on function get_event_exc_ea in module ida_idd: - -get_event_exc_ea(*args) - get_event_exc_ea(ev) -> ea_t - -Help on function get_event_exc_info in module ida_idd: - -get_event_exc_info(*args) - get_event_exc_info(ev) -> str - -Help on function get_event_info in module ida_idd: - -get_event_info(*args) - get_event_info(ev) -> str - -Help on function get_event_module_base in module ida_idd: - -get_event_module_base(*args) - get_event_module_base(ev) -> ea_t - -Help on function get_event_module_name in module ida_idd: - -get_event_module_name(*args) - get_event_module_name(ev) -> str - -Help on function get_event_module_size in module ida_idd: - -get_event_module_size(*args) - get_event_module_size(ev) -> asize_t - -Help on class meminfo_vec_t in module ida_idd: - -class meminfo_vec_t(__builtin__.object) - | Proxy of C++ qvector< memory_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> memory_info_t - | - | __init__(self, *args) - | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> memory_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> memory_info_t - | begin(self) -> memory_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> memory_info_t - | end(self) -> memory_info_t - | - | erase(self, *args) - | erase(self, it) -> memory_info_t - | erase(self, first, last) -> memory_info_t - | - | extract(self, *args) - | extract(self) -> memory_info_t - | - | find(self, *args) - | find(self, x) -> memory_info_t - | find(self, x) -> memory_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=memory_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> memory_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> memory_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_meminfo_vec_t> - | delete_meminfo_vec_t(self) - -Help on class memory_info_t in module ida_idd: - -class memory_info_t(ida_range.range_t) - | Proxy of C++ memory_info_t class. - | - | Method resolution order: - | memory_info_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> memory_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bitness - | memory_info_t_bitness_get(self) -> uchar - | - | name - | memory_info_t_name_get(self) -> qstring * - | - | perm - | memory_info_t_perm_get(self) -> uchar - | - | sbase - | memory_info_t_sbase_get(self) -> ea_t - | - | sclass - | memory_info_t_sclass_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_memory_info_t> - | delete_memory_info_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on class modinfo_t in module ida_idd: - -class modinfo_t(__builtin__.object) - | Proxy of C++ modinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> modinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | base - | modinfo_t_base_get(self) -> ea_t - | - | name - | modinfo_t_name_get(self) -> qstring * - | - | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t - | - | size - | modinfo_t_size_get(self) -> asize_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_modinfo_t> - | delete_modinfo_t(self) - -Help on class process_info_t in module ida_idd: - -class process_info_t(__builtin__.object) - | Proxy of C++ process_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> process_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | process_info_t_name_get(self) -> qstring * - | - | pid - | process_info_t_pid_get(self) -> pid_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_process_info_t> - | delete_process_info_t(self) - -Help on class procinfo_vec_t in module ida_idd: - -class procinfo_vec_t(__builtin__.object) - | Proxy of C++ qvector< process_info_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> process_info_t - | - | __init__(self, *args) - | __init__(self) -> procinfo_vec_t - | __init__(self, x) -> procinfo_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> process_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> process_info_t - | begin(self) -> process_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> process_info_t - | end(self) -> process_info_t - | - | erase(self, *args) - | erase(self, it) -> process_info_t - | erase(self, first, last) -> process_info_t - | - | extract(self, *args) - | extract(self) -> process_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=process_info_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> process_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> process_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_procinfo_vec_t> - | delete_procinfo_vec_t(self) - -Help on class register_info_t in module ida_idd: - -class register_info_t(__builtin__.object) - | Proxy of C++ register_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> register_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * - | - | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t - | - | dtype - | register_info_t_dtype_get(self) -> op_dtype_t - | - | flags - | register_info_t_flags_get(self) -> uint32 - | - | name - | register_info_t_name_get(self) -> char const * - | - | register_class - | register_info_t_register_class_get(self) -> register_class_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_register_info_t> - | delete_register_info_t(self) - -Help on class regval_t in module ida_idd: - -class regval_t(__builtin__.object) - | Proxy of C++ regval_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> regval_t - | __init__(self, r) -> regval_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | bytes(self, *args) - | bytes(self) -> bytevec_t - | bytes(self) -> bytevec_t const & - | - | clear(self, *args) - | clear(self) - | - | get_data(self, *args) - | get_data(self) - | get_data(self) -> void const * - | - | get_data_size(self, *args) - | get_data_size(self) -> size_t - | - | set_bytes(self, *args) - | set_bytes(self, data, size) - | set_bytes(self, v) - | set_bytes(self) -> bytevec_t & - | - | set_float(self, *args) - | set_float(self, x) - | - | set_int(self, *args) - | set_int(self, x) - | - | set_unavailable(self, *args) - | set_unavailable(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fval - | regval_t_fval_get(self) -> uint16 [6] - | - | ival - | regval_t_ival_get(self) -> uint64 - | - | rvtype - | regval_t_rvtype_get(self) -> int32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regval_t> - | delete_regval_t(self) - -Help on class scattered_segm_t in module ida_idd: - -class scattered_segm_t(ida_range.range_t) - | Proxy of C++ scattered_segm_t class. - | - | Method resolution order: - | scattered_segm_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> scattered_segm_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | name - | scattered_segm_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_scattered_segm_t> - | delete_scattered_segm_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -Help on function set_debug_event_code in module ida_idd: - -set_debug_event_code(*args) - set_debug_event_code(ev, id) - -Help on class thread_name_t in module ida_idd: - -class thread_name_t(__builtin__.object) - | Proxy of C++ thread_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> thread_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | thread_name_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | tid - | thread_name_t_tid_get(self) -> thid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_thread_name_t> - | delete_thread_name_t(self) - -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception -""" - -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" - -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" - -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" - -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" - -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -other values mean custom data type - -unavailable -""" -=== ida_idd EPYDOC INJECTIONS END === -Help on function AssembleLine in module ida_idp: - -AssembleLine(*args) - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * - - - Assemble an instruction to a string (display a warning if an error is found) - - @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction - @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure - - or a string containing the assembled instruction - -Help on class IDB_Hooks in module ida_idp: - -class IDB_Hooks(__builtin__.object) - | Proxy of C++ IDB_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> IDB_Hooks - | - | __repr__ = _swig_repr(self) - | - | allsegs_moved(self, *args) - | allsegs_moved(self, info) - | - | auto_empty(self, *args) - | auto_empty(self) - | - | auto_empty_finally(self, *args) - | auto_empty_finally(self) - | - | bookmark_changed(self, *args) - | bookmark_changed(self, index, pos, desc) - | - | byte_patched(self, *args) - | byte_patched(self, ea, old_value) - | - | callee_addr_changed(self, *args) - | callee_addr_changed(self, ea, callee) - | - | changing_cmt(self, *args) - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | - | changing_enum_bf(self, *args) - | changing_enum_bf(self, id, new_bf) - | - | changing_enum_cmt(self, *args) - | changing_enum_cmt(self, id, repeatable, newcmt) - | - | changing_op_ti(self, *args) - | changing_op_ti(self, ea, n, new_type, new_fnames) - | - | changing_op_type(self, *args) - | changing_op_type(self, ea, n, opinfo) - | - | changing_range_cmt(self, *args) - | changing_range_cmt(self, kind, a, cmt, repeatable) - | - | changing_segm_class(self, *args) - | changing_segm_class(self, s) - | - | changing_segm_end(self, *args) - | changing_segm_end(self, s, new_end, segmod_flags) - | - | changing_segm_name(self, *args) - | changing_segm_name(self, s, oldname) - | - | changing_segm_start(self, *args) - | changing_segm_start(self, s, new_start, segmod_flags) - | - | changing_struc_align(self, *args) - | changing_struc_align(self, sptr) - | - | changing_struc_cmt(self, *args) - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | - | changing_struc_member(self, *args) - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | - | changing_ti(self, *args) - | changing_ti(self, ea, new_type, new_fnames) - | - | closebase(self, *args) - | closebase(self) - | - | cmt_changed(self, *args) - | cmt_changed(self, ea, repeatable_cmt) - | - | compiler_changed(self, *args) - | compiler_changed(self) - | - | deleting_enum(self, *args) - | deleting_enum(self, id) - | - | deleting_enum_member(self, *args) - | deleting_enum_member(self, id, cid) - | - | deleting_func(self, *args) - | deleting_func(self, pfn) - | - | deleting_func_tail(self, *args) - | deleting_func_tail(self, pfn, tail) - | - | deleting_segm(self, *args) - | deleting_segm(self, start_ea) - | - | deleting_struc(self, *args) - | deleting_struc(self, sptr) - | - | deleting_struc_member(self, *args) - | deleting_struc_member(self, sptr, mptr) - | - | deleting_tryblks(self, *args) - | deleting_tryblks(self, range) - | - | destroyed_items(self, *args) - | destroyed_items(self, ea1, ea2, will_disable_range) - | - | determined_main(self, *args) - | determined_main(self, main) - | - | enum_bf_changed(self, *args) - | enum_bf_changed(self, id) - | - | enum_cmt_changed(self, *args) - | enum_cmt_changed(self, id, repeatable) - | - | enum_created(self, *args) - | enum_created(self, id) - | - | enum_deleted(self, *args) - | enum_deleted(self, id) - | - | enum_member_created(self, *args) - | enum_member_created(self, id, cid) - | - | enum_member_deleted(self, *args) - | enum_member_deleted(self, id, cid) - | - | enum_renamed(self, *args) - | enum_renamed(self, id) - | - | expanding_struc(self, *args) - | expanding_struc(self, sptr, offset, delta) - | - | extlang_changed(self, *args) - | extlang_changed(self, kind, el, idx) - | - | extra_cmt_changed(self, *args) - | extra_cmt_changed(self, ea, line_idx, cmt) - | - | flow_chart_created(self, *args) - | flow_chart_created(self, fc) - | - | frame_deleted(self, *args) - | frame_deleted(self, pfn) - | - | func_added(self, *args) - | func_added(self, pfn) - | - | func_noret_changed(self, *args) - | func_noret_changed(self, pfn) - | - | func_tail_appended(self, *args) - | func_tail_appended(self, pfn, tail) - | - | func_tail_deleted(self, *args) - | func_tail_deleted(self, pfn, tail_ea) - | - | func_updated(self, *args) - | func_updated(self, pfn) - | - | hook(self, *args) - | hook(self) -> bool - | - | idasgn_loaded(self, *args) - | idasgn_loaded(self, short_sig_name) - | - | item_color_changed(self, *args) - | item_color_changed(self, ea, color) - | - | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) - | - | loader_finished(self, *args) - | loader_finished(self, li, neflags, filetypename) - | - | local_types_changed(self, *args) - | local_types_changed(self) - | - | make_code(self, *args) - | make_code(self, insn) - | - | make_data(self, *args) - | make_data(self, ea, flags, tid, len) - | - | op_ti_changed(self, *args) - | op_ti_changed(self, ea, n, type, fnames) - | - | op_type_changed(self, *args) - | op_type_changed(self, ea, n) - | - | range_cmt_changed(self, *args) - | range_cmt_changed(self, kind, a, cmt, repeatable) - | - | renamed(self, *args) - | renamed(self, ea, new_name, local_name) - | - | renaming_enum(self, *args) - | renaming_enum(self, id, is_enum, newname) - | - | renaming_struc(self, *args) - | renaming_struc(self, id, oldname, newname) - | - | renaming_struc_member(self, *args) - | renaming_struc_member(self, sptr, mptr, newname) - | - | savebase(self, *args) - | savebase(self) - | - | segm_added(self, *args) - | segm_added(self, s) - | - | segm_attrs_updated(self, *args) - | segm_attrs_updated(self, s) - | - | segm_class_changed(self, *args) - | segm_class_changed(self, s, sclass) - | - | segm_deleted(self, *args) - | segm_deleted(self, start_ea, end_ea) - | - | segm_end_changed(self, *args) - | segm_end_changed(self, s, oldend) - | - | segm_moved(self, *args) - | segm_moved(self, _from, to, size, changed_netmap) - | - | segm_name_changed(self, *args) - | segm_name_changed(self, s, name) - | - | segm_start_changed(self, *args) - | segm_start_changed(self, s, oldstart) - | - | set_func_end(self, *args) - | set_func_end(self, pfn, new_end) - | - | set_func_start(self, *args) - | set_func_start(self, pfn, new_start) - | - | sgr_changed(self, *args) - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | - | sgr_deleted(self, *args) - | sgr_deleted(self, start_ea, end_ea, regnum) - | - | stkpnts_changed(self, *args) - | stkpnts_changed(self, pfn) - | - | struc_align_changed(self, *args) - | struc_align_changed(self, sptr) - | - | struc_cmt_changed(self, *args) - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | - | struc_created(self, *args) - | struc_created(self, struc_id) - | - | struc_deleted(self, *args) - | struc_deleted(self, struc_id) - | - | struc_expanded(self, *args) - | struc_expanded(self, sptr) - | - | struc_member_changed(self, *args) - | struc_member_changed(self, sptr, mptr) - | - | struc_member_created(self, *args) - | struc_member_created(self, sptr, mptr) - | - | struc_member_deleted(self, *args) - | struc_member_deleted(self, sptr, member_id, offset) - | - | struc_member_renamed(self, *args) - | struc_member_renamed(self, sptr, mptr) - | - | struc_renamed(self, *args) - | struc_renamed(self, sptr) - | - | tail_owner_changed(self, *args) - | tail_owner_changed(self, tail, owner_func, old_owner) - | - | thunk_func_created(self, *args) - | thunk_func_created(self, pfn) - | - | ti_changed(self, *args) - | ti_changed(self, ea, type, fnames) - | - | tryblks_updated(self, *args) - | tryblks_updated(self, tbv) - | - | unhook(self, *args) - | unhook(self) -> bool - | - | updating_tryblks(self, *args) - | updating_tryblks(self, tbv) - | - | upgraded(self, *args) - | upgraded(self, _from) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_IDB_Hooks> - | delete_IDB_Hooks(self) - -Help on class IDP_Hooks in module ida_idp: - -class IDP_Hooks(__builtin__.object) - | Proxy of C++ IDP_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> IDP_Hooks - | - | __repr__ = _swig_repr(self) - | - | ev_add_cref(self, *args) - | ev_add_cref(self, _from, to, type) -> int - | - | ev_add_dref(self, *args) - | ev_add_dref(self, _from, to, type) -> int - | - | ev_adjust_argloc(self, *args) - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | - | ev_adjust_libfunc_ea(self, *args) - | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | - | ev_adjust_refinfo(self, *args) - | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | - | ev_ana_insn(self, *args) - | ev_ana_insn(self, out) -> bool - | - | - | Analyzes and decodes an instruction at insn.ea - | - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - | - insn.size must be set to the instruction length - | - | @return: Boolean - | - False if the instruction is not recognized - | - True if the instruction was decoded. 'insn' should be filled in that case. - | - | ev_analyze_prolog(self, *args) - | ev_analyze_prolog(self, ea) -> int - | - | ev_arg_addrs_ready(self, *args) - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | - | ev_assemble(self, *args) - | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * - | - | - | Assembles an instruction - | - | @param ea: linear address of instruction - | @param cs: cs of instruction - | @param ip: ip of instruction - | @param use32: is 32bit segment? - | @param line: line to assemble - | - | @return: - None to let the underlying processor module assemble the line - | - or a string containing the assembled buffer - | - | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) - | - | ev_calc_arglocs(self, *args) - | ev_calc_arglocs(self, fti) -> int - | - | ev_calc_cdecl_purged_bytes(self, *args) - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | - | ev_calc_next_eas(self, *args) - | ev_calc_next_eas(self, res, insn, over) -> int - | - | ev_calc_purged_bytes(self, *args) - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | - | ev_calc_retloc(self, *args) - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | - | ev_calc_spdelta(self, *args) - | ev_calc_spdelta(self, spdelta, insn) -> int - | - | ev_calc_step_over(self, *args) - | ev_calc_step_over(self, target, ip) -> int - | - | ev_calc_switch_cases(self, *args) - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | - | ev_calc_varglocs(self, *args) - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | - | ev_calcrel(self, *args) - | ev_calcrel(self) -> int - | - | ev_can_have_type(self, *args) - | ev_can_have_type(self, op) -> int - | - | ev_clean_tbit(self, *args) - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | - | ev_cmp_operands(self, *args) - | ev_cmp_operands(self, op1, op2) -> int - | - | ev_coagulate(self, *args) - | ev_coagulate(self, start_ea) -> int - | - | ev_coagulate_dref(self, *args) - | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int - | - | ev_create_flat_group(self, *args) - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | - | ev_create_func_frame(self, *args) - | ev_create_func_frame(self, pfn) -> int - | - | ev_create_switch_xrefs(self, *args) - | ev_create_switch_xrefs(self, jumpea, si) -> int - | - | ev_creating_segm(self, *args) - | ev_creating_segm(self, seg) -> int - | - | ev_decorate_name(self, *args) - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | - | ev_del_cref(self, *args) - | ev_del_cref(self, _from, to, expand) -> int - | - | ev_del_dref(self, *args) - | ev_del_dref(self, _from, to) -> int - | - | ev_delay_slot_insn(self, *args) - | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | - | ev_demangle_name(self, *args) - | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | - | ev_emu_insn(self, *args) - | ev_emu_insn(self, insn) -> bool - | - | - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this function - | all information about the instruction is in 'insn' structure. - | - | @return: Boolean (whether this instruction has been emulated or not) - | - | ev_endbinary(self, *args) - | ev_endbinary(self, ok) -> int - | - | ev_ending_undo(self, *args) - | ev_ending_undo(self, action_name, is_undo) -> int - | - | ev_equal_reglocs(self, *args) - | ev_equal_reglocs(self, a1, a2) -> int - | - | ev_extract_address(self, *args) - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | - | ev_find_op_value(self, *args) - | ev_find_op_value(self, pinsn, opn) -> PyObject * - | - | ev_find_reg_value(self, *args) - | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | - | ev_func_bounds(self, *args) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) - | - | ev_gen_asm_or_lst(self, *args) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) - | - | ev_gen_map_file(self, *args) - | ev_gen_map_file(self, nlines, fp) -> int - | - | ev_gen_regvar_def(self, *args) - | ev_gen_regvar_def(self, outctx, v) -> int - | - | ev_gen_src_file_lnnum(self, *args) - | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int - | - | ev_gen_stkvar_def(self, *args) - | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | - | ev_get_abi_info(self, *args) - | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | - | ev_get_autocmt(self, *args) - | ev_get_autocmt(self, insn) -> PyObject * - | - | ev_get_bg_color(self, *args) - | ev_get_bg_color(self, ea) -> int or None - | - | ev_get_cc_regs(self, *args) - | ev_get_cc_regs(self, regs, cc) -> int - | - | ev_get_code16_mode(self, *args) - | ev_get_code16_mode(self, ea) -> int - | - | ev_get_dbr_opnum(self, *args) - | ev_get_dbr_opnum(self, opnum, insn) -> int - | - | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int - | - | ev_get_frame_retsize(self, *args) - | ev_get_frame_retsize(self, frsize, pfn) -> int - | - | ev_get_macro_insn_head(self, *args) - | ev_get_macro_insn_head(self, head, ip) -> int - | - | ev_get_operand_string(self, *args) - | ev_get_operand_string(self, insn, opnum) -> PyObject * - | - | ev_get_reg_info(self, *args) - | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | - | ev_get_reg_name(self, *args) - | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | - | ev_get_simd_types(self, *args) - | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | - | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int - | - | ev_get_stkvar_scale_factor(self, *args) - | ev_get_stkvar_scale_factor(self) -> int - | - | ev_getreg(self, *args) - | ev_getreg(self, regval, regnum) -> int - | - | ev_init(self, *args) - | ev_init(self, idp_modname) -> int - | - | ev_insn_reads_tbit(self, *args) - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | - | ev_is_align_insn(self, *args) - | ev_is_align_insn(self, ea) -> int - | - | ev_is_alloca_probe(self, *args) - | ev_is_alloca_probe(self, ea) -> int - | - | ev_is_basic_block_end(self, *args) - | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int - | - | ev_is_call_insn(self, *args) - | ev_is_call_insn(self, insn) -> int - | - | - | Is the instruction a "call"? - | - | @param insn: instruction - | @return: 0-unknown, 1-yes, -1-no - | - | ev_is_cond_insn(self, *args) - | ev_is_cond_insn(self, insn) -> int - | - | ev_is_far_jump(self, *args) - | ev_is_far_jump(self, icode) -> int - | - | ev_is_indirect_jump(self, *args) - | ev_is_indirect_jump(self, insn) -> int - | - | ev_is_insn_table_jump(self, *args) - | ev_is_insn_table_jump(self, insn) -> int - | - | ev_is_jump_func(self, *args) - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | - | ev_is_ret_insn(self, *args) - | ev_is_ret_insn(self, insn, strict) -> int - | - | - | Is the instruction a "return"? - | - | @param insn: instruction - | @param strict: - True: report only ret instructions - | False: include instructions like "leave" which begins the function epilog - | @return: 0-unknown, 1-yes, -1-no - | - | ev_is_sane_insn(self, *args) - | ev_is_sane_insn(self, insn, no_crefs) -> int - | - | - | is the instruction sane for the current file type? - | @param insn: the instruction - | @param no_crefs: - | - 1: the instruction has no code refs to it. - | ida just tries to convert unexplored bytes - | to an instruction (but there is no other - | reason to convert them into an instruction) - | - 0: the instruction is created because - | of some coderef, user request or another - | weighty reason. - | @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program - | - | ev_is_sp_based(self, *args) - | ev_is_sp_based(self, mode, insn, op) -> int - | - | ev_is_switch(self, *args) - | ev_is_switch(self, si, insn) -> int - | - | ev_last_cb_before_loader(self, *args) - | ev_last_cb_before_loader(self) -> int - | - | ev_loader(self, *args) - | ev_loader(self) -> int - | - | ev_lower_func_type(self, *args) - | ev_lower_func_type(self, argnums, fti) -> int - | - | ev_max_ptr_size(self, *args) - | ev_max_ptr_size(self) -> int - | - | ev_may_be_func(self, *args) - | ev_may_be_func(self, insn, state) -> int - | - | - | Can a function start here? - | @param insn: the instruction - | @param state: autoanalysis phase - | 0: creating functions - | 1: creating chunks - | - | @return: integer (probability 0..100) - | - | ev_may_show_sreg(self, *args) - | ev_may_show_sreg(self, current_ea) -> int - | - | ev_moving_segm(self, *args) - | ev_moving_segm(self, seg, to, flags) -> int - | - | ev_newasm(self, *args) - | ev_newasm(self, asmnum) -> int - | - | ev_newbinary(self, *args) - | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int - | - | ev_newfile(self, *args) - | ev_newfile(self, fname) -> int - | - | ev_newprc(self, *args) - | ev_newprc(self, pnum, keep_cfg) -> int - | - | ev_next_exec_insn(self, *args) - | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | - | ev_oldfile(self, *args) - | ev_oldfile(self, fname) -> int - | - | ev_out_assumes(self, *args) - | ev_out_assumes(self, outctx) -> int - | - | ev_out_data(self, *args) - | ev_out_data(self, outctx, analyze_only) -> int - | - | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) - | - | ev_out_header(self, *args) - | ev_out_header(self, outctx) - | - | ev_out_insn(self, *args) - | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) - | - | ev_out_label(self, *args) - | ev_out_label(self, outctx, colored_name) -> int - | - | ev_out_mnem(self, *args) - | ev_out_mnem(self, outctx) -> int - | - | ev_out_operand(self, *args) - | ev_out_operand(self, outctx, op) -> bool - | - | - | Notification to generate operand text. - | If False was returned, then the standard operand output function will be called. - | - | this notification may use out_...() functions to form the operand text - | - | @return: Boolean (whether the operand has been outputted or not) - | - | ev_out_segend(self, *args) - | ev_out_segend(self, outctx, seg) -> int - | - | ev_out_segstart(self, *args) - | ev_out_segstart(self, outctx, seg) -> int - | - | ev_out_special_item(self, *args) - | ev_out_special_item(self, outctx, segtype) -> int - | - | ev_realcvt(self, *args) - | ev_realcvt(self, m, e, swt) -> int - | - | ev_rename(self, *args) - | ev_rename(self, ea, new_name) -> int - | - | - | The kernel is going to rename a byte. - | - | @param ea: Address - | @param new_name: The new name - | - | @return: - | - If returns value <0, then the kernel should - | not rename it. See also the 'renamed' event - | - | ev_replaying_undo(self, *args) - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | - | ev_set_code16_mode(self, *args) - | ev_set_code16_mode(self, ea, code16) -> int - | - | ev_set_idp_options(self, *args) - | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int - | - | ev_set_proc_options(self, *args) - | ev_set_proc_options(self, options, confidence) -> int - | - | ev_setup_til(self, *args) - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | - | ev_str2reg(self, *args) - | ev_str2reg(self, regname) -> int - | - | ev_term(self, *args) - | ev_term(self) -> int - | - | ev_treat_hindering_item(self, *args) - | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int - | - | ev_undefine(self, *args) - | ev_undefine(self, ea) -> int - | - | - | An item in the database (insn or data) is being deleted - | @param ea: Address - | @return: - | - 1 - do not delete srranges at the item end - | - 0 - srranges can be deleted - | - | ev_use_arg_types(self, *args) - | ev_use_arg_types(self, ea, fti, rargs) -> int - | - | ev_use_regarg_type(self, *args) - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | - | ev_use_stkarg_type(self, *args) - | ev_use_stkarg_type(self, ea, arg) -> int - | - | ev_validate_flirt_func(self, *args) - | ev_validate_flirt_func(self, start_ea, funcname) -> int - | - | ev_verify_noreturn(self, *args) - | ev_verify_noreturn(self, pfn) -> int - | - | ev_verify_sp(self, *args) - | ev_verify_sp(self, pfn) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success - | - | unhook(self, *args) - | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_IDP_Hooks> - | delete_IDP_Hooks(self) - -Help on class __ph in module ida_idp: - -class __ph(__builtin__.object) - | # ---------------------------------------------------------------------- - | - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cnbits - | - | dnbits - | - | flag - | - | icode_return - | - | id - | - | instruc - | - | instruc_end - | - | instruc_start - | - | reg_code_sreg - | - | reg_data_sreg - | - | reg_first_sreg - | - | reg_last_sreg - | - | regnames - | - | segreg_size - | - | tbyte_size - | - | version - -Help on class _notify_when_dispatcher_t in module ida_idp: - -class _notify_when_dispatcher_t - | Methods defined here: - | - | __init__(self) - | - | _find(self, fun) - | - | dispatch(self, slot, *args) - | - | notify_when(self, when, fun) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | _IDB_Hooks = <class 'ida_idp._IDB_Hooks'> - | - | - | _IDP_Hooks = <class 'ida_idp._IDP_Hooks'> - | - | - | _callback_t = <class ida_idp._callback_t> - -Help on class _processor_t_Trampoline_IDB_Hooks in module ida_idp: - -class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) - | Method resolution order: - | _processor_t_Trampoline_IDB_Hooks - | IDB_Hooks - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, proc) - | - | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) - | - | _processor_t_Trampoline_IDB_Hooks__make_parent_caller = __make_parent_caller(self, key) - | - | ---------------------------------------------------------------------- - | Methods inherited from IDB_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | allsegs_moved(self, *args) - | allsegs_moved(self, info) - | - | auto_empty(self, *args) - | auto_empty(self) - | - | auto_empty_finally(self, *args) - | auto_empty_finally(self) - | - | bookmark_changed(self, *args) - | bookmark_changed(self, index, pos, desc) - | - | byte_patched(self, *args) - | byte_patched(self, ea, old_value) - | - | callee_addr_changed(self, *args) - | callee_addr_changed(self, ea, callee) - | - | changing_cmt(self, *args) - | changing_cmt(self, ea, repeatable_cmt, newcmt) - | - | changing_enum_bf(self, *args) - | changing_enum_bf(self, id, new_bf) - | - | changing_enum_cmt(self, *args) - | changing_enum_cmt(self, id, repeatable, newcmt) - | - | changing_op_ti(self, *args) - | changing_op_ti(self, ea, n, new_type, new_fnames) - | - | changing_op_type(self, *args) - | changing_op_type(self, ea, n, opinfo) - | - | changing_range_cmt(self, *args) - | changing_range_cmt(self, kind, a, cmt, repeatable) - | - | changing_segm_class(self, *args) - | changing_segm_class(self, s) - | - | changing_segm_end(self, *args) - | changing_segm_end(self, s, new_end, segmod_flags) - | - | changing_segm_name(self, *args) - | changing_segm_name(self, s, oldname) - | - | changing_segm_start(self, *args) - | changing_segm_start(self, s, new_start, segmod_flags) - | - | changing_struc_align(self, *args) - | changing_struc_align(self, sptr) - | - | changing_struc_cmt(self, *args) - | changing_struc_cmt(self, struc_id, repeatable, newcmt) - | - | changing_struc_member(self, *args) - | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) - | - | changing_ti(self, *args) - | changing_ti(self, ea, new_type, new_fnames) - | - | closebase(self, *args) - | closebase(self) - | - | cmt_changed(self, *args) - | cmt_changed(self, ea, repeatable_cmt) - | - | compiler_changed(self, *args) - | compiler_changed(self) - | - | deleting_enum(self, *args) - | deleting_enum(self, id) - | - | deleting_enum_member(self, *args) - | deleting_enum_member(self, id, cid) - | - | deleting_func(self, *args) - | deleting_func(self, pfn) - | - | deleting_func_tail(self, *args) - | deleting_func_tail(self, pfn, tail) - | - | deleting_segm(self, *args) - | deleting_segm(self, start_ea) - | - | deleting_struc(self, *args) - | deleting_struc(self, sptr) - | - | deleting_struc_member(self, *args) - | deleting_struc_member(self, sptr, mptr) - | - | deleting_tryblks(self, *args) - | deleting_tryblks(self, range) - | - | destroyed_items(self, *args) - | destroyed_items(self, ea1, ea2, will_disable_range) - | - | determined_main(self, *args) - | determined_main(self, main) - | - | enum_bf_changed(self, *args) - | enum_bf_changed(self, id) - | - | enum_cmt_changed(self, *args) - | enum_cmt_changed(self, id, repeatable) - | - | enum_created(self, *args) - | enum_created(self, id) - | - | enum_deleted(self, *args) - | enum_deleted(self, id) - | - | enum_member_created(self, *args) - | enum_member_created(self, id, cid) - | - | enum_member_deleted(self, *args) - | enum_member_deleted(self, id, cid) - | - | enum_renamed(self, *args) - | enum_renamed(self, id) - | - | expanding_struc(self, *args) - | expanding_struc(self, sptr, offset, delta) - | - | extlang_changed(self, *args) - | extlang_changed(self, kind, el, idx) - | - | extra_cmt_changed(self, *args) - | extra_cmt_changed(self, ea, line_idx, cmt) - | - | flow_chart_created(self, *args) - | flow_chart_created(self, fc) - | - | frame_deleted(self, *args) - | frame_deleted(self, pfn) - | - | func_added(self, *args) - | func_added(self, pfn) - | - | func_noret_changed(self, *args) - | func_noret_changed(self, pfn) - | - | func_tail_appended(self, *args) - | func_tail_appended(self, pfn, tail) - | - | func_tail_deleted(self, *args) - | func_tail_deleted(self, pfn, tail_ea) - | - | func_updated(self, *args) - | func_updated(self, pfn) - | - | hook(self, *args) - | hook(self) -> bool - | - | idasgn_loaded(self, *args) - | idasgn_loaded(self, short_sig_name) - | - | item_color_changed(self, *args) - | item_color_changed(self, ea, color) - | - | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) - | - | loader_finished(self, *args) - | loader_finished(self, li, neflags, filetypename) - | - | local_types_changed(self, *args) - | local_types_changed(self) - | - | make_code(self, *args) - | make_code(self, insn) - | - | make_data(self, *args) - | make_data(self, ea, flags, tid, len) - | - | op_ti_changed(self, *args) - | op_ti_changed(self, ea, n, type, fnames) - | - | op_type_changed(self, *args) - | op_type_changed(self, ea, n) - | - | range_cmt_changed(self, *args) - | range_cmt_changed(self, kind, a, cmt, repeatable) - | - | renamed(self, *args) - | renamed(self, ea, new_name, local_name) - | - | renaming_enum(self, *args) - | renaming_enum(self, id, is_enum, newname) - | - | renaming_struc(self, *args) - | renaming_struc(self, id, oldname, newname) - | - | renaming_struc_member(self, *args) - | renaming_struc_member(self, sptr, mptr, newname) - | - | savebase(self, *args) - | savebase(self) - | - | segm_added(self, *args) - | segm_added(self, s) - | - | segm_attrs_updated(self, *args) - | segm_attrs_updated(self, s) - | - | segm_class_changed(self, *args) - | segm_class_changed(self, s, sclass) - | - | segm_deleted(self, *args) - | segm_deleted(self, start_ea, end_ea) - | - | segm_end_changed(self, *args) - | segm_end_changed(self, s, oldend) - | - | segm_moved(self, *args) - | segm_moved(self, _from, to, size, changed_netmap) - | - | segm_name_changed(self, *args) - | segm_name_changed(self, s, name) - | - | segm_start_changed(self, *args) - | segm_start_changed(self, s, oldstart) - | - | set_func_end(self, *args) - | set_func_end(self, pfn, new_end) - | - | set_func_start(self, *args) - | set_func_start(self, pfn, new_start) - | - | sgr_changed(self, *args) - | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) - | - | sgr_deleted(self, *args) - | sgr_deleted(self, start_ea, end_ea, regnum) - | - | stkpnts_changed(self, *args) - | stkpnts_changed(self, pfn) - | - | struc_align_changed(self, *args) - | struc_align_changed(self, sptr) - | - | struc_cmt_changed(self, *args) - | struc_cmt_changed(self, struc_id, repeatable_cmt) - | - | struc_created(self, *args) - | struc_created(self, struc_id) - | - | struc_deleted(self, *args) - | struc_deleted(self, struc_id) - | - | struc_expanded(self, *args) - | struc_expanded(self, sptr) - | - | struc_member_changed(self, *args) - | struc_member_changed(self, sptr, mptr) - | - | struc_member_created(self, *args) - | struc_member_created(self, sptr, mptr) - | - | struc_member_deleted(self, *args) - | struc_member_deleted(self, sptr, member_id, offset) - | - | struc_member_renamed(self, *args) - | struc_member_renamed(self, sptr, mptr) - | - | struc_renamed(self, *args) - | struc_renamed(self, sptr) - | - | tail_owner_changed(self, *args) - | tail_owner_changed(self, tail, owner_func, old_owner) - | - | thunk_func_created(self, *args) - | thunk_func_created(self, pfn) - | - | ti_changed(self, *args) - | ti_changed(self, ea, type, fnames) - | - | tryblks_updated(self, *args) - | tryblks_updated(self, tbv) - | - | unhook(self, *args) - | unhook(self) -> bool - | - | updating_tryblks(self, *args) - | updating_tryblks(self, tbv) - | - | upgraded(self, *args) - | upgraded(self, _from) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from IDB_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from IDB_Hooks: - | - | __swig_destroy__ = <built-in function delete_IDB_Hooks> - | delete_IDB_Hooks(self) - -Help on class asm_t in module ida_idp: - -class asm_t(__builtin__.object) - | Proxy of C++ asm_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> asm_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | a_align - | asm_t_a_align_get(self) -> char const * - | - | a_ascii - | asm_t_a_ascii_get(self) -> char const * - | - | a_band - | asm_t_a_band_get(self) -> char const * - | - | a_bnot - | asm_t_a_bnot_get(self) -> char const * - | - | a_bor - | asm_t_a_bor_get(self) -> char const * - | - | a_bss - | asm_t_a_bss_get(self) -> char const * - | - | a_byte - | asm_t_a_byte_get(self) -> char const * - | - | a_comdef - | asm_t_a_comdef_get(self) -> char const * - | - | a_curip - | asm_t_a_curip_get(self) -> char const * - | - | a_double - | asm_t_a_double_get(self) -> char const * - | - | a_dups - | asm_t_a_dups_get(self) -> char const * - | - | a_dword - | asm_t_a_dword_get(self) -> char const * - | - | a_equ - | asm_t_a_equ_get(self) -> char const * - | - | a_extrn - | asm_t_a_extrn_get(self) -> char const * - | - | a_float - | asm_t_a_float_get(self) -> char const * - | - | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * - | - | a_mod - | asm_t_a_mod_get(self) -> char const * - | - | a_oword - | asm_t_a_oword_get(self) -> char const * - | - | a_packreal - | asm_t_a_packreal_get(self) -> char const * - | - | a_public - | asm_t_a_public_get(self) -> char const * - | - | a_qword - | asm_t_a_qword_get(self) -> char const * - | - | a_rva - | asm_t_a_rva_get(self) -> char const * - | - | a_seg - | asm_t_a_seg_get(self) -> char const * - | - | a_shl - | asm_t_a_shl_get(self) -> char const * - | - | a_shr - | asm_t_a_shr_get(self) -> char const * - | - | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * - | - | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * - | - | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * - | - | a_weak - | asm_t_a_weak_get(self) -> char const * - | - | a_word - | asm_t_a_word_get(self) -> char const * - | - | a_xor - | asm_t_a_xor_get(self) -> char const * - | - | a_yword - | asm_t_a_yword_get(self) -> char const * - | - | accsep - | asm_t_accsep_get(self) -> char - | - | ascsep - | asm_t_ascsep_get(self) -> char - | - | cmnt - | asm_t_cmnt_get(self) -> char const * - | - | cmnt2 - | asm_t_cmnt2_get(self) -> char const * - | - | end - | asm_t_end_get(self) -> char const * - | - | esccodes - | asm_t_esccodes_get(self) -> char const * - | - | flag - | asm_t_flag_get(self) -> uint32 - | - | flag2 - | asm_t_flag2_get(self) -> uint32 - | - | header - | asm_t_header_get(self) -> char const *const * - | - | help - | asm_t_help_get(self) -> help_t - | - | high16 - | asm_t_high16_get(self) -> char const * - | - | high8 - | asm_t_high8_get(self) -> char const * - | - | lbrace - | asm_t_lbrace_get(self) -> char - | - | low16 - | asm_t_low16_get(self) -> char const * - | - | low8 - | asm_t_low8_get(self) -> char const * - | - | name - | asm_t_name_get(self) -> char const * - | - | origin - | asm_t_origin_get(self) -> char const * - | - | rbrace - | asm_t_rbrace_get(self) -> char - | - | thisown - | The membership flag - | - | uflag - | asm_t_uflag_get(self) -> uint16 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_asm_t> - | delete_asm_t(self) - -Help on function assemble in module ida_idp: - -assemble(*args) - assemble(ea, cs, ip, use32, line) -> bool - - - Assemble an instruction into the database (display a warning if an error is found) - @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction - @param use32: is 32bit segment? - @param line: line to assemble - - @return: Boolean. True on success. - -Help on function cfg_get_cc_header_path in module ida_idp: - -cfg_get_cc_header_path(*args) - cfg_get_cc_header_path(compid) -> char const * - -Help on function cfg_get_cc_parm in module ida_idp: - -cfg_get_cc_parm(*args) - cfg_get_cc_parm(compid, name) -> char const * - -Help on function cfg_get_cc_predefined_macros in module ida_idp: - -cfg_get_cc_predefined_macros(*args) - cfg_get_cc_predefined_macros(compid) -> char const * - -Help on function delay_slot_insn in module ida_idp: - -delay_slot_insn(*args) - delay_slot_insn(ea, bexec, fexec) -> bool - - - Helper function to get the delay slot instruction. - - - @param ea (C++: ea_t *) - @param bexec (C++: bool *) - @param fexec (C++: bool *) - -Help on function gen_idb_event in module ida_idp: - -gen_idb_event(*args) - gen_idb_event(code) - - - the kernel will use this function to generate idb_events - - - @param code (C++: idb_event::event_code_t) - -Help on function get_idb_notifier_addr in module ida_idp: - -get_idb_notifier_addr(*args) - get_idb_notifier_addr(arg1) -> PyObject * - -Help on function get_idb_notifier_ud_addr in module ida_idp: - -get_idb_notifier_ud_addr(*args) - get_idb_notifier_ud_addr(hooks) -> PyObject * - -Help on function get_idp_name in module ida_idp: - -get_idp_name(*args) - get_idp_name() -> str - - - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL - -Help on function get_idp_notifier_addr in module ida_idp: - -get_idp_notifier_addr(*args) - get_idp_notifier_addr(arg1) -> PyObject * - -Help on function get_idp_notifier_ud_addr in module ida_idp: - -get_idp_notifier_ud_addr(*args) - get_idp_notifier_ud_addr(hooks) -> PyObject * - -Help on function get_reg_info in module ida_idp: - -get_reg_info(*args) - get_reg_info(regname, bitrange) -> char const * - - - Get register information - useful for registers like al, ah, dil, etc. - - @param regname (C++: const char *) - @param bitrange (C++: bitrange_t *) - @return: NULL no such register - -Help on function get_reg_name in module ida_idp: - -get_reg_name(*args) - get_reg_name(reg, width, reghi=-1) -> str - - - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) - @return: length of register name in bytes or -1 if failure - -Help on function has_cf_chg in module ida_idp: - -has_cf_chg(*args) - has_cf_chg(feature, opnum) -> bool - - - Does an instruction with the specified feature modify the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) - -Help on function has_cf_use in module ida_idp: - -has_cf_use(*args) - has_cf_use(feature, opnum) -> bool - - - Does an instruction with the specified feature use a value of the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) - -Help on function has_insn_feature in module ida_idp: - -has_insn_feature(*args) - has_insn_feature(icode, bit) -> bool - - - Does the specified instruction have the specified feature? - - - @param icode (C++: int) - @param bit (C++: uint32) - -Help on function is_align_insn in module ida_idp: - -is_align_insn(*args) - is_align_insn(ea) -> int - - - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - - @param ea (C++: ea_t) - -Help on function is_basic_block_end in module ida_idp: - -is_basic_block_end(*args) - is_basic_block_end(insn, call_insn_stops_block) -> bool - - - Is the instruction the end of a basic block? - - - @param insn (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) - -Help on function is_call_insn in module ida_idp: - -is_call_insn(*args) - is_call_insn(insn) -> bool - - - Is the instruction a "call"? - - - @param insn (C++: const insn_t &) - -Help on function is_indirect_jump_insn in module ida_idp: - -is_indirect_jump_insn(*args) - is_indirect_jump_insn(insn) -> bool - - - Is the instruction an indirect jump? - - - @param insn (C++: const insn_t &) - -Help on function is_ret_insn in module ida_idp: - -is_ret_insn(*args) - is_ret_insn(insn, strict=True) -> bool - - - Is the instruction a "return"? - - - @param insn (C++: const insn_t &) - @param strict (C++: bool) - -Help on function parse_reg_name in module ida_idp: - -parse_reg_name(*args) - parse_reg_name(ri, regname) -> bool - - - Get register info by name. - - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) - @return: success - -Help on __ph in module ida_idp object: - -class __ph(__builtin__.object) - | # ---------------------------------------------------------------------- - | - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cnbits - | - | dnbits - | - | flag - | - | icode_return - | - | id - | - | instruc - | - | instruc_end - | - | instruc_start - | - | reg_code_sreg - | - | reg_data_sreg - | - | reg_first_sreg - | - | reg_last_sreg - | - | regnames - | - | segreg_size - | - | tbyte_size - | - | version - -Help on function ph_calcrel in module ida_idp: - -ph_calcrel(*args) - ph_calcrel(ea) - -Help on function ph_find_op_value in module ida_idp: - -ph_find_op_value(*args) - ph_find_op_value(insn, op) -> ssize_t - -Help on function ph_find_reg_value in module ida_idp: - -ph_find_reg_value(*args) - ph_find_reg_value(insn, reg) -> ssize_t - -Help on function ph_get_cnbits in module ida_idp: - -ph_get_cnbits(*args) - ph_get_cnbits() -> size_t - - - Returns the 'ph.cnbits' - -Help on function ph_get_dnbits in module ida_idp: - -ph_get_dnbits(*args) - ph_get_dnbits() -> size_t - - - Returns the 'ph.dnbits' - -Help on function ph_get_flag in module ida_idp: - -ph_get_flag(*args) - ph_get_flag() -> size_t - - - Returns the 'ph.flag' - -Help on function ph_get_icode_return in module ida_idp: - -ph_get_icode_return(*args) - ph_get_icode_return() -> size_t - - - Returns the 'ph.icode_return' - -Help on function ph_get_id in module ida_idp: - -ph_get_id(*args) - ph_get_id() -> size_t - - - Returns the 'ph.id' field - -Help on function ph_get_instruc in module ida_idp: - -ph_get_instruc(*args) - ph_get_instruc() -> PyObject * - - - Returns a list of tuples (instruction_name, instruction_feature) containing the - instructions list as defined in he processor module - -Help on function ph_get_instruc_end in module ida_idp: - -ph_get_instruc_end(*args) - ph_get_instruc_end() -> size_t - - - Returns the 'ph.instruc_end' - -Help on function ph_get_instruc_start in module ida_idp: - -ph_get_instruc_start(*args) - ph_get_instruc_start() -> size_t - - - Returns the 'ph.instruc_start' - -Help on function ph_get_operand_info in module ida_idp: - -ph_get_operand_info(*args) - ph_get_operand_info(ea, n) -> PyObject * - - - Returns the operand information given an ea and operand number. - - @param ea: address - @param n: operand number - - @return: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size). - Please refer to idd_opinfo_t structure in the SDK. - -Help on function ph_get_reg_code_sreg in module ida_idp: - -ph_get_reg_code_sreg(*args) - ph_get_reg_code_sreg() -> size_t - - - Returns the 'ph.reg_code_sreg' - -Help on function ph_get_reg_data_sreg in module ida_idp: - -ph_get_reg_data_sreg(*args) - ph_get_reg_data_sreg() -> size_t - - - Returns the 'ph.reg_data_sreg' - -Help on function ph_get_reg_first_sreg in module ida_idp: - -ph_get_reg_first_sreg(*args) - ph_get_reg_first_sreg() -> size_t - - - Returns the 'ph.reg_first_sreg' - -Help on function ph_get_reg_last_sreg in module ida_idp: - -ph_get_reg_last_sreg(*args) - ph_get_reg_last_sreg() -> size_t - - - Returns the 'ph.reg_last_sreg' - -Help on function ph_get_regnames in module ida_idp: - -ph_get_regnames(*args) - ph_get_regnames() -> PyObject * - - - Returns the list of register names as defined in the processor module - -Help on function ph_get_segreg_size in module ida_idp: - -ph_get_segreg_size(*args) - ph_get_segreg_size() -> size_t - - - Returns the 'ph.segreg_size' - -Help on function ph_get_tbyte_size in module ida_idp: - -ph_get_tbyte_size(*args) - ph_get_tbyte_size() -> size_t - - - Returns the 'ph.tbyte_size' field as defined in he processor module - -Help on function ph_get_version in module ida_idp: - -ph_get_version(*args) - ph_get_version() -> size_t - - - Returns the 'ph.version' - -Help on class processor_t in module ida_idp: - -class processor_t(IDP_Hooks) - | Method resolution order: - | processor_t - | IDP_Hooks - | __builtin__.object - | - | Methods defined here: - | - | __init__(self) - | - | _get_idb_notifier_addr(self) - | - | _get_idb_notifier_ud_addr(self) - | - | _get_idp_notifier_addr(self) - | - | _get_idp_notifier_ud_addr(self) - | - | _get_notify(self, what, unimp_val=0, imp_forced_val=None, add_prefix=True, mandatory_impl=None) - | This helper is used to implement backward-compatibility - | of pre IDA 7.3 processor_t interfaces. - | - | _make_forced_value_wrapper(self, val, meth=None) - | - | _make_int_returning_wrapper(self, meth, intval=0) - | - | auto_empty(self, *args) - | - | auto_empty_finally(self, *args) - | - | closebase(self, *args) - | - | compiler_changed(self, *args) - | - | deleting_func(self, pfn) - | - | determined_main(self, *args) - | - | ev_ana_insn(self, *args) - | - | ev_assemble(self, *args) - | - | ev_auto_queue_empty(self, *args) - | - | ev_calc_step_over(self, target, ip) - | - | ev_can_have_type(self, *args) - | - | ev_cmp_operands(self, *args) - | - | ev_coagulate(self, *args) - | - | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) - | - | ev_create_func_frame(self, pfn) - | - | ev_create_switch_xrefs(self, *args) - | - | ev_creating_segm(self, s) - | - | ev_emu_insn(self, *args) - | - | ev_endbinary(self, *args) - | - | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | - | ev_gen_map_file(self, nlines, fp) - | - | ev_gen_regvar_def(self, ctx, v) - | - | ev_gen_src_file_lnnum(self, *args) - | - | ev_get_autocmt(self, *args) - | - | ev_get_frame_retsize(self, frsize, pfn) - | - | ev_get_operand_string(self, buf, insn, opnum) - | - | ev_is_align_insn(self, *args) - | - | ev_is_alloca_probe(self, *args) - | - | ev_is_basic_block_end(self, *args) - | - | ev_is_call_insn(self, *args) - | - | ev_is_far_jump(self, *args) - | - | ev_is_indirect_jump(self, *args) - | - | ev_is_insn_table_jump(self, *args) - | - | ev_is_ret_insn(self, *args) - | - | ev_is_sane_insn(self, *args) - | - | ev_is_sp_based(self, mode, insn, op) - | - | ev_is_switch(self, *args) - | - | ev_may_be_func(self, *args) - | - | ev_may_show_sreg(self, *args) - | - | ev_moving_segm(self, s, to_ea, flags) - | - | ev_newbinary(self, *args) - | - | ev_newfile(self, *args) - | - | ev_newprc(self, *args) - | - | ev_oldfile(self, *args) - | - | ev_out_assumes(self, *args) - | - | ev_out_data(self, *args) - | - | ev_out_footer(self, *args) - | - | ev_out_header(self, *args) - | - | ev_out_insn(self, *args) - | - | ev_out_label(self, *args) - | - | ev_out_mnem(self, *args) - | - | ev_out_operand(self, *args) - | - | ev_out_segend(self, ctx, s) - | - | ev_out_segstart(self, ctx, s) - | - | ev_out_special_item(self, *args) - | - | ev_rename(self, *args) - | - | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) - | - | ev_set_proc_options(self, *args) - | - | ev_str2reg(self, *args) - | - | ev_treat_hindering_item(self, *args) - | - | ev_undefine(self, *args) - | - | ev_validate_flirt_func(self, *args) - | - | ev_verify_noreturn(self, pfn) - | - | ev_verify_sp(self, pfn) - | - | func_added(self, pfn) - | - | get_auxpref(self, insn) - | This function returns insn.auxpref value - | - | get_idpdesc(self) - | This function must be present and should return the list of - | short processor names similar to the one in ph.psnames. - | This method can be overridden to return to the kernel a different IDP description. - | - | get_uFlag(self) - | Use this utility function to retrieve the 'uFlag' global variable - | - | idasgn_loaded(self, *args) - | - | kernel_config_loaded(self, *args) - | - | make_code(self, *args) - | - | make_data(self, *args) - | - | renamed(self, *args) - | - | savebase(self, *args) - | - | segm_moved(self, from_ea, to_ea, size, changed_netmap) - | - | set_func_end(self, *args) - | - | set_func_start(self, *args) - | - | sgr_changed(self, *args) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __idc_cvt_id__ = 2 - | - | ---------------------------------------------------------------------- - | Methods inherited from IDP_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | ev_add_cref(self, *args) - | ev_add_cref(self, _from, to, type) -> int - | - | ev_add_dref(self, *args) - | ev_add_dref(self, _from, to, type) -> int - | - | ev_adjust_argloc(self, *args) - | ev_adjust_argloc(self, argloc, optional_type, size) -> int - | - | ev_adjust_libfunc_ea(self, *args) - | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int - | - | ev_adjust_refinfo(self, *args) - | ev_adjust_refinfo(self, ri, ea, n, fd) -> int - | - | ev_analyze_prolog(self, *args) - | ev_analyze_prolog(self, ea) -> int - | - | ev_arg_addrs_ready(self, *args) - | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int - | - | ev_calc_arglocs(self, *args) - | ev_calc_arglocs(self, fti) -> int - | - | ev_calc_cdecl_purged_bytes(self, *args) - | ev_calc_cdecl_purged_bytes(self, ea) -> int - | - | ev_calc_next_eas(self, *args) - | ev_calc_next_eas(self, res, insn, over) -> int - | - | ev_calc_purged_bytes(self, *args) - | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int - | - | ev_calc_retloc(self, *args) - | ev_calc_retloc(self, retloc, rettype, cc) -> int - | - | ev_calc_spdelta(self, *args) - | ev_calc_spdelta(self, spdelta, insn) -> int - | - | ev_calc_switch_cases(self, *args) - | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int - | - | ev_calc_varglocs(self, *args) - | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int - | - | ev_calcrel(self, *args) - | ev_calcrel(self) -> int - | - | ev_clean_tbit(self, *args) - | ev_clean_tbit(self, ea, getreg, regvalues) -> int - | - | ev_create_flat_group(self, *args) - | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int - | - | ev_decorate_name(self, *args) - | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * - | - | ev_del_cref(self, *args) - | ev_del_cref(self, _from, to, expand) -> int - | - | ev_del_dref(self, *args) - | ev_del_dref(self, _from, to) -> int - | - | ev_delay_slot_insn(self, *args) - | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * - | - | ev_demangle_name(self, *args) - | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * - | - | ev_ending_undo(self, *args) - | ev_ending_undo(self, action_name, is_undo) -> int - | - | ev_equal_reglocs(self, *args) - | ev_equal_reglocs(self, a1, a2) -> int - | - | ev_extract_address(self, *args) - | ev_extract_address(self, out_ea, screen_ea, string, position) -> int - | - | ev_find_op_value(self, *args) - | ev_find_op_value(self, pinsn, opn) -> PyObject * - | - | ev_find_reg_value(self, *args) - | ev_find_reg_value(self, pinsn, reg) -> PyObject * - | - | ev_gen_asm_or_lst(self, *args) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) - | - | ev_gen_stkvar_def(self, *args) - | ev_gen_stkvar_def(self, outctx, mptr, v) -> int - | - | ev_get_abi_info(self, *args) - | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int - | - | ev_get_bg_color(self, *args) - | ev_get_bg_color(self, ea) -> int or None - | - | ev_get_cc_regs(self, *args) - | ev_get_cc_regs(self, regs, cc) -> int - | - | ev_get_code16_mode(self, *args) - | ev_get_code16_mode(self, ea) -> int - | - | ev_get_dbr_opnum(self, *args) - | ev_get_dbr_opnum(self, opnum, insn) -> int - | - | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int - | - | ev_get_macro_insn_head(self, *args) - | ev_get_macro_insn_head(self, head, ip) -> int - | - | ev_get_reg_info(self, *args) - | ev_get_reg_info(self, main_regname, bitrange, regname) -> int - | - | ev_get_reg_name(self, *args) - | ev_get_reg_name(self, reg, width, reghi) -> PyObject * - | - | ev_get_simd_types(self, *args) - | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int - | - | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int - | - | ev_get_stkvar_scale_factor(self, *args) - | ev_get_stkvar_scale_factor(self) -> int - | - | ev_getreg(self, *args) - | ev_getreg(self, regval, regnum) -> int - | - | ev_init(self, *args) - | ev_init(self, idp_modname) -> int - | - | ev_insn_reads_tbit(self, *args) - | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int - | - | ev_is_cond_insn(self, *args) - | ev_is_cond_insn(self, insn) -> int - | - | ev_is_jump_func(self, *args) - | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int - | - | ev_last_cb_before_loader(self, *args) - | ev_last_cb_before_loader(self) -> int - | - | ev_loader(self, *args) - | ev_loader(self) -> int - | - | ev_lower_func_type(self, *args) - | ev_lower_func_type(self, argnums, fti) -> int - | - | ev_max_ptr_size(self, *args) - | ev_max_ptr_size(self) -> int - | - | ev_newasm(self, *args) - | ev_newasm(self, asmnum) -> int - | - | ev_next_exec_insn(self, *args) - | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int - | - | ev_realcvt(self, *args) - | ev_realcvt(self, m, e, swt) -> int - | - | ev_replaying_undo(self, *args) - | ev_replaying_undo(self, action_name, vec, is_undo) -> int - | - | ev_set_code16_mode(self, *args) - | ev_set_code16_mode(self, ea, code16) -> int - | - | ev_setup_til(self, *args) - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int - | - | ev_term(self, *args) - | ev_term(self) -> int - | - | ev_use_arg_types(self, *args) - | ev_use_arg_types(self, ea, fti, rargs) -> int - | - | ev_use_regarg_type(self, *args) - | ev_use_regarg_type(self, ea, rargs) -> PyObject * - | - | ev_use_stkarg_type(self, *args) - | ev_use_stkarg_type(self, ea, arg) -> int - | - | hook(self, *args) - | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success - | - | unhook(self, *args) - | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from IDP_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from IDP_Hooks: - | - | __swig_destroy__ = <built-in function delete_IDP_Hooks> - | delete_IDP_Hooks(self) - -Help on class reg_info_t in module ida_idp: - -class reg_info_t(__builtin__.object) - | Proxy of C++ reg_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> reg_info_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | reg - | reg_info_t_reg_get(self) -> int - | - | size - | reg_info_t_size_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_reg_info_t> - | delete_reg_info_t(self) - -Help on function set_processor_type in module ida_idp: - -set_processor_type(*args) - set_processor_type(procname, level) -> bool - - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success - -Help on function set_target_assembler in module ida_idp: - -set_target_assembler(*args) - set_target_assembler(asmnum) -> bool - - - Set target assembler. - - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success - -Help on function sizeof_ldbl in module ida_idp: - -sizeof_ldbl(*args) - sizeof_ldbl() -> size_t - - - Get size of long double. - -Help on function str2reg in module ida_idp: - -str2reg(*args) - str2reg(p) -> int - - - Get any reg number (-1 on error) - - - @param p (C++: const char *) - -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -Meaningful only for wide byte processors. - -One symbol per processor byte -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings -""" - -ida_idp.AS2_TERSESTR -""" -NAME<fld,fld,...> is supported. - -'terse' structure initialization form -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 -""" - -ida_idp.AS_ASCIIC -""" -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_HLL -""" -language function. - -Instruction may be present in a high level -""" - -ida_idp.CF_JUMP -""" -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -next instruction - -Instruction doesn't pass execution to the -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. -""" - -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -(display only) - -The user can't change segments and code/data attributes -""" - -ida_idp.PR_NO_SEGMOVE -""" -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback -""" - -ida_idp.PR_USE_TBYTE -""" - 'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === -Help on class Choose in module ida_kernwin: - -class Choose(__builtin__.object) - | Chooser wrapper class. - | - | Some constants are defined in this class. - | Please refer to kernwin.hpp for more information. - | - | Methods defined here: - | - | 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. - | - | OnPopup(self, widget, popup_handle) - | - | Refresh(self) - | Causes the refresh callback to trigger - | - | Show(self, modal=False) - | Activates or creates a chooser window - | @param 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; - | - | __init__(self, 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) - | Constructs a chooser window. - | @param title: The chooser title - | @param 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] ] - | @param flags: One of CH_XXXX constants - | @param deflt: The index of the default item (0-based) for single - | selection choosers or the list of indexes for multi selection - | chooser - | @param popup_names: List of new captions to replace this list - | ["Insert", "Delete", "Edit", "Refresh"] - | @param icon: Icon index (the icon should exist in ida resources or - | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) - | @param embedded: Create as embedded chooser - | @param width: Embedded chooser width - | @param height: Embedded chooser height - | @param forbidden_cb: Explicitly forbidden callbacks - | - | adjust_last_item(self, n) - | Helper for OnDeleteLine() and OnRefresh() callbacks. - | They can be finished by the following line: - | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item - | @return: list of selected lines numbers (one element or empty) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | ALL_CHANGED = 1 - | - | ALREADY_EXISTS = -3 - | - | CHCOL_DEC = 196608 - | - | CHCOL_EA = 262144 - | - | CHCOL_FNAME = 327680 - | - | CHCOL_FORMAT = 458752 - | - | CHCOL_HEX = 131072 - | - | CHCOL_PATH = 65536 - | - | CHCOL_PLAIN = 0 - | - | CHOOSE_HAVE_DEL = 16 - | - | CHOOSE_HAVE_EDIT = 32 - | - | CHOOSE_HAVE_ENTER = 64 - | - | CHOOSE_HAVE_GETATTR = 4 - | - | CHOOSE_HAVE_GETICON = 2 - | - | CHOOSE_HAVE_INIT = 1 - | - | CHOOSE_HAVE_INS = 8 - | - | CHOOSE_HAVE_ONCLOSE = 512 - | - | CHOOSE_HAVE_REFRESH = 128 - | - | CHOOSE_HAVE_SELECT = 256 - | - | CH_ATTRS = 32 - | - | CH_BUILTIN_MASK = 33030144 - | - | CH_BUILTIN_SHIFT = 19 - | - | CH_CAN_DEL = 512 - | - | CH_CAN_EDIT = 1024 - | - | CH_CAN_INS = 256 - | - | CH_CAN_REFRESH = 2048 - | - | CH_FORCE_DEFAULT = 128 - | - | CH_MODAL = 1 - | - | CH_MULTI = 4 - | - | CH_NOBTNS = 16 - | - | CH_NOIDB = 64 - | - | CH_NO_STATUS_BAR = 65536 - | - | CH_QFLT = 4096 - | - | CH_QFTYP_DEFAULT = 0 - | - | CH_QFTYP_FUZZY = 32768 - | - | CH_QFTYP_MASK = 57344 - | - | CH_QFTYP_NORMAL = 8192 - | - | CH_QFTYP_REGEX = 24576 - | - | CH_QFTYP_SHIFT = 13 - | - | CH_QFTYP_WHOLE_WORDS = 16384 - | - | CH_RESTORE = 131072 - | - | EMPTY_CHOOSER = -2 - | - | NOTHING_CHANGED = 0 - | - | NO_ATTR = -4 - | - | NO_SELECTION = -1 - | - | SELECTION_CHANGED = 2 - | - | UI_Hooks_Trampoline = <class 'ida_kernwin.UI_Hooks_Trampoline'> - -Help on class CustomIDAMemo in module ida_kernwin: - -class CustomIDAMemo(View_Hooks) - | #<pycode(py_kernwin_viewhooks)> - | # ----------------------------------------------------------------------- - | # CustomIDAMemo - | # ----------------------------------------------------------------------- - | - | Method resolution order: - | CustomIDAMemo - | View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | CreateGroups(self, groups_infos) - | Send a request to modify the graph by creating a - | (set of) group(s), and perform an animation. - | - | Each object in the 'groups_infos' list must be of the format: - | { - | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group - | "text" : <string> # The synthetic text for that group - | } - | - | @param groups_infos: A list of objects that describe those groups. - | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). - | - | DelNodesInfos(self, *nodes) - | Delete the properties for the given node(s). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | __init__(self) - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from View_Hooks: - | - | __swig_destroy__ = <built-in function delete_View_Hooks> - | delete_View_Hooks(self) - -Help on class Form in module ida_kernwin: - -class Form(__builtin__.object) - | # ----------------------------------------------------------------------- - | - | Methods defined here: - | - | Add(self, name, ctrl, mkattr=True) - | Low level function. Prefer AddControls() to this function. - | This function adds one control to the form. - | - | @param name: Control name - | @param ctrl: Control object - | @param 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 - | @param controls: The control dictionary - | - | Close(self, close_normally) - | Close the form - | @param 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.) - | - | @param 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 - | @param 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 - | @param ctrl: Form control instance - | @param 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 - | - | _AddGroup(self, Group, mkattr=True) - | Internal function. - | This function expands the group item names and creates individual group item controls - | - | @param Group: The group class (checkbox or radio group class) - | - | _ChkCompiled(self) - | - | __getitem__(self, name) - | Returns a control object by name - | - | __init__(self, 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). - | - | @param form: The form string - | @param controls: A dictionary containing the control name as a _key_ and control object as _value_ - | - | _reset(self) - | Resets the Form class state variables - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | ControlToFieldTypeIdAndSize(ctrl) - | Converts a control object to a tuple containing the field id - | and the associated buffer size - | - | _ParseFormTitle(form) - | Parses the form's title from the form text - | - | create_string_buffer(value, size=None) - | - | fieldtype_to_ctype(tp, i64=False) - | Factory method returning a ctype class corresponding to the field type string - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | ButtonInput = <class 'ida_kernwin.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 = <class 'ida_kernwin.ChkGroupControl'> - | Checkbox group control class. - | It holds a set of checkbox controls - | - | ChkGroupItemControl = <class 'ida_kernwin.ChkGroupItemControl'> - | Checkbox group item control - | - | ColorInput = <class 'ida_kernwin.ColorInput'> - | Color button input control - | - | Control = <class 'ida_kernwin.Control'> - | - | - | DirInput = <class 'ida_kernwin.DirInput'> - | Directory browsing control - | - | DropdownListControl = <class 'ida_kernwin.DropdownListControl'> - | Dropdown control - | This control allows manipulating a dropdown control - | - | EmbeddedChooserControl = <class 'ida_kernwin.EmbeddedChooserControl'> - | Embedded chooser control. - | This control links to a Chooser2 control created with the 'embedded=True' - | - | FT_ADDR = '$' - | - | FT_ASCII = 'A' - | - | FT_BIN = 'Y' - | - | FT_BUTTON = 'B' - | - | FT_CHAR = 'H' - | - | FT_CHKGRP = 'C' - | - | FT_CHKGRP2 = 'c' - | - | FT_COLOR = 'K' - | - | FT_DEC = 'D' - | - | FT_DIR = 'F' - | - | FT_DROPDOWN_LIST = 'b' - | - | FT_ECHOOSER = 'E' - | - | FT_FILE = 'f' - | - | FT_FORMCHG = '%/' - | - | FT_HEX = 'N' - | - | FT_HTML_LABEL = 'h' - | - | FT_IDENT = 'I' - | - | FT_INT64 = 'l' - | - | FT_MULTI_LINE_TEXT = 't' - | - | FT_OCT = 'O' - | - | FT_RADGRP = 'R' - | - | FT_RADGRP2 = 'r' - | - | FT_RAWHEX = 'M' - | - | FT_SEG = 'S' - | - | FT_SHEX = 'n' - | - | FT_TYPE = 'T' - | - | FT_UINT64 = 'L' - | - | FileInput = <class 'ida_kernwin.FileInput'> - | File Open/Save input control - | - | FormChangeCb = <class 'ida_kernwin.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 = <class 'ida_kernwin.GroupControl'> - | Base class for group controls - | - | GroupItemControl = <class 'ida_kernwin.GroupItemControl'> - | Base class for group control items - | - | InputControl = <class 'ida_kernwin.InputControl'> - | Generic form input control. - | It could be numeric control, string control, directory/file browsing, etc... - | - | LabelControl = <class 'ida_kernwin.LabelControl'> - | Base class for static label control - | - | MultiLineTextControl = <class 'ida_kernwin.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 = <class 'ida_kernwin.NumericArgument'> - | Argument representing various integer arguments (ushort, uint32, uint64, etc...) - | @param tp: One of Form.FT_XXX - | - | NumericInput = <class 'ida_kernwin.NumericInput'> - | A composite class serving as a base numeric input control class - | - | NumericLabel = <class 'ida_kernwin.NumericLabel'> - | Numeric label control - | - | RadGroupControl = <class 'ida_kernwin.RadGroupControl'> - | Radiobox group control class. - | It holds a set of radiobox controls - | - | RadGroupItemControl = <class 'ida_kernwin.RadGroupItemControl'> - | Radiobox group item control - | - | StringArgument = <class 'ida_kernwin.StringArgument'> - | Argument representing a character buffer - | - | StringInput = <class 'ida_kernwin.StringInput'> - | Base string input control class. - | This class also constructs a StringArgument - | - | StringLabel = <class 'ida_kernwin.StringLabel'> - | String label control - | - | _FT_USHORT = '_US' - -Help on class IDAViewWrapper in module ida_kernwin: - -class IDAViewWrapper(CustomIDAMemo) - | 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.) - | - | Method resolution order: - | IDAViewWrapper - | CustomIDAMemo - | View_Hooks - | __builtin__.object - | - | Methods defined here: - | - | Bind(self) - | - | Unbind(self) - | - | __init__(self, title) - | - | ---------------------------------------------------------------------- - | Methods inherited from CustomIDAMemo: - | - | CreateGroups(self, groups_infos) - | Send a request to modify the graph by creating a - | (set of) group(s), and perform an animation. - | - | Each object in the 'groups_infos' list must be of the format: - | { - | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group - | "text" : <string> # The synthetic text for that group - | } - | - | @param groups_infos: A list of objects that describe those groups. - | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). - | - | DelNodesInfos(self, *nodes) - | Delete the properties for the given node(s). - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param 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. - | - | @param ni: A node_info_t instance - | @param 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. - | - | @param 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. - | - | @param groups: A list of group node numbers. - | @param expand: True to expand the group, False otherwise. - | @param 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) - | - | @param node_index: The node index. - | @param node_info: An idaapi.node_info_t instance. - | @param 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}) - | - | @param values: A dictionary of 'int -> node_info_t' objects. - | - | _get_cb(self, view, cb_name) - | - | _get_cb_arity(self, cb) - | - | _graph_item_tuple(self, ve) - | - | view_activated(self, view) - | - | view_click(self, view, ve) - | - | view_close(self, view, *args) - | - | view_curpos(self, view, *args) - | - | view_dblclick(self, view, ve) - | - | view_deactivated(self, view) - | - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, view, ve) - | - | view_mouse_over(self, view, ve) - | - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Static methods inherited from CustomIDAMemo: - | - | _dummy_cb(*args) - | - | ---------------------------------------------------------------------- - | Methods inherited from View_Hooks: - | - | __disown__(self) - | - | __repr__ = _swig_repr(self) - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_created(self, *args) - | view_created(self, view) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from View_Hooks: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from View_Hooks: - | - | __swig_destroy__ = <built-in function delete_View_Hooks> - | delete_View_Hooks(self) - -Help on class PluginForm in module ida_kernwin: - -class PluginForm(__builtin__.object) - | PluginForm class. - | - | This form can be used to host additional controls. Please check the PyQt example. - | - | Methods defined here: - | - | Close(self, options) - | Closes the form. - | - | @param 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 - | - | @param caption: The form caption - | @param options: One of PluginForm.WOPN_ constants - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | FormToPyQtWidget = TWidgetToPyQtWidget(tw, ctx=<module '__main__' from 'tools/dumpdoc.py'>) - | Convert a TWidget* to a QWidget to be used by PyQt - | - | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules - | - | FormToPySideWidget = TWidgetToPySideWidget(tw, ctx=<module '__main__' from 'tools/dumpdoc.py'>) - | Use this method to convert a TWidget* to a QWidget to be used by PySide - | - | @param ctx: Context. Reference to a module that already imported QtWidgets module - | - | QtWidgetToTWidget(w, ctx=<module '__main__' from 'tools/dumpdoc.py'>) - | Convert a QWidget to a TWidget* to be used by IDA - | - | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules - | - | TWidgetToPyQtWidget(tw, ctx=<module '__main__' from 'tools/dumpdoc.py'>) - | Convert a TWidget* to a QWidget to be used by PyQt - | - | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules - | - | TWidgetToPySideWidget(tw, ctx=<module '__main__' from 'tools/dumpdoc.py'>) - | Use this method to convert a TWidget* to a QWidget to be used by PySide - | - | @param ctx: Context. Reference to a module that already imported QtWidgets module - | - | _ensure_widget_deps(ctx) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | VALID_CAPSULE_NAME = '$valid$' - | - | WCLS_CLOSE_LATER = 8 - | - | WCLS_DONT_SAVE_SIZE = 4 - | - | WCLS_NO_CONTEXT = 2 - | - | WCLS_SAVE = 1 - | - | WOPN_CENTERED = 32 - | - | WOPN_CREATE_ONLY = {} - | - | WOPN_DP_BEFORE = 2097152 - | - | WOPN_DP_BOTTOM = 524288 - | - | WOPN_DP_FLOATING = 8388608 - | - | WOPN_DP_INSIDE = 1048576 - | - | WOPN_DP_INSIDE_BEFORE = 3145728 - | - | WOPN_DP_LEFT = 65536 - | - | WOPN_DP_RIGHT = 262144 - | - | WOPN_DP_TAB = 4194304 - | - | WOPN_DP_TAB_BEFORE = 6291456 - | - | WOPN_DP_TOP = 131072 - | - | WOPN_MDI = 1 - | - | WOPN_MENU = 16 - | - | WOPN_ONTOP = 8 - | - | WOPN_PERSIST = 64 - | - | WOPN_RESTORE = 4 - | - | WOPN_TAB = 2 - -Help on function TWidget__from_ptrval__ in module ida_kernwin: - -TWidget__from_ptrval__(*args) - TWidget__from_ptrval__(ptrval) -> TWidget * - -Help on class UI_Hooks in module ida_kernwin: - -class UI_Hooks(__builtin__.object) - | Proxy of C++ UI_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> UI_Hooks - | - | __repr__ = _swig_repr(self) - | - | create_desktop_widget(self, *args) - | create_desktop_widget(self, title, cfg) -> PyObject * - | - | current_widget_changed(self, *args) - | current_widget_changed(self, widget, prev_widget) - | - | database_inited(self, *args) - | database_inited(self, is_new_database, idc_script) - | - | debugger_menu_change(self, *args) - | debugger_menu_change(self, enable) - | - | finish_populating_widget_popup(self, *args) - | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | The UI is about to be done populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored - | - | get_chooser_item_attrs(self, *args) - | get_chooser_item_attrs(self, chooser, n, attrs) - | - | get_custom_viewer_hint(self, *args) - | get_custom_viewer_hint(self, viewer, place) -> PyObject * - | - | get_ea_hint(self, *args) - | get_ea_hint(self, ea) -> PyObject * - | - | - | The UI wants to display a simple hint for an address in the navigation band - | - | @param ea: The address - | @return: String with the hint or None - | - | get_item_hint(self, *args) - | get_item_hint(self, ea, max_lines) -> PyObject * - | - | get_widget_config(self, *args) - | get_widget_config(self, widget, cfg) -> PyObject * - | - | hook(self, *args) - | hook(self) -> bool - | - | - | Creates an UI hook - | - | @return: Boolean true on success - | - | idcstart(self, *args) - | idcstart(self) - | - | idcstop(self, *args) - | idcstop(self) - | - | plugin_loaded(self, *args) - | plugin_loaded(self, plugin_info) - | - | plugin_unloading(self, *args) - | plugin_unloading(self, plugin_info) - | - | populating_widget_popup(self, *args) - | populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | The UI is populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored - | - | postprocess_action(self, *args) - | postprocess_action(self) - | - | - | An ida ui action has been handled - | - | @return: Ignored - | - | preprocess_action(self, *args) - | preprocess_action(self, name) -> int - | - | - | IDA ui is about to handle a user action - | - | @param name: ui action name - | (these names can be looked up in ida[tg]ui.cfg) - | @return: 0-ok, nonzero - a plugin has handled the action - | - | range(self, *args) - | range(self) - | - | ready_to_run(self, *args) - | ready_to_run(self) - | - | resume(self, *args) - | resume(self) - | - | saved(self, *args) - | saved(self) - | - | - | The kernel has saved the database. - | - | @return: Ignored - | - | saving(self, *args) - | saving(self) - | - | - | The kernel is saving the database. - | - | @return: Ignored - | - | screen_ea_changed(self, *args) - | screen_ea_changed(self, ea, prev_ea) - | - | set_widget_config(self, *args) - | set_widget_config(self, widget, cfg) - | - | suspend(self, *args) - | suspend(self) - | - | term(self, *args) - | term(self) - | - | - | IDA is terminated and the database is already closed. - | The UI may close its windows in this callback. - | - | unhook(self, *args) - | unhook(self) -> bool - | - | - | Removes the UI hook - | @return: Boolean true on success - | - | updated_actions(self, *args) - | updated_actions(self) - | - | - | The UI is done updating actions. - | - | @return: Ignored - | - | updating_actions(self, *args) - | updating_actions(self, ctx) - | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored - | - | widget_closing(self, *args) - | widget_closing(self, widget) - | - | widget_invisible(self, *args) - | widget_invisible(self, widget) - | - | widget_visible(self, *args) - | widget_visible(self, widget) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_UI_Hooks> - | delete_UI_Hooks(self) - -Help on class View_Hooks in module ida_kernwin: - -class View_Hooks(__builtin__.object) - | Proxy of C++ View_Hooks class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, _flags=0) -> View_Hooks - | - | __repr__ = _swig_repr(self) - | - | hook(self, *args) - | hook(self) -> bool - | - | unhook(self, *args) - | unhook(self) -> bool - | - | view_activated(self, *args) - | view_activated(self, view) - | - | view_click(self, *args) - | view_click(self, view, event) - | - | view_close(self, *args) - | view_close(self, view) - | - | view_created(self, *args) - | view_created(self, view) - | - | view_curpos(self, *args) - | view_curpos(self, view) - | - | view_dblclick(self, *args) - | view_dblclick(self, view, event) - | - | view_deactivated(self, *args) - | view_deactivated(self, view) - | - | view_keydown(self, *args) - | view_keydown(self, view, key, state) - | - | view_loc_changed(self, *args) - | view_loc_changed(self, view, now, was) - | - | view_mouse_moved(self, *args) - | view_mouse_moved(self, view, event) - | - | view_mouse_over(self, *args) - | view_mouse_over(self, view, event) - | - | view_switched(self, *args) - | view_switched(self, view, rt) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_View_Hooks> - | delete_View_Hooks(self) - -Help on function __call_form_callable in module ida_kernwin: - -__call_form_callable(call, *args) - -Help on class __qtimer_t in module ida_kernwin: - -class __qtimer_t(__builtin__.object) - | Proxy of C++ __qtimer_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qtimer_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete___qtimer_t> - | delete___qtimer_t(self) - -Help on function _ask_addr in module ida_kernwin: - -_ask_addr(*args) - _ask_addr(addr, format) -> bool - -Help on function _ask_long in module ida_kernwin: - -_ask_long(*args) - _ask_long(value, format) -> bool - -Help on function _ask_seg in module ida_kernwin: - -_ask_seg(*args) - _ask_seg(sel, format) -> bool - -Help on class action_ctx_base_t in module ida_kernwin: - -class action_ctx_base_t(__builtin__.object) - | Proxy of C++ action_ctx_base_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> action_ctx_base_t - | - | __repr__ = _swig_repr(self) - | - | _get_form(self, *args) - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) - | _get_form_type(self) -> twidget_type_t - | - | has_flag(self, *args) - | has_flag(self, flag) -> bool - | - | reset(self, *args) - | reset(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | action - | action_ctx_base_t_action_get(self) -> char const * - | - | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * - | - | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t - | - | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t - | - | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t - | - | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * - | - | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 - | - | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * - | - | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * - | - | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * - | - | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * - | - | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t - | - | focus - | action_ctx_base_t_focus_get(self) -> TWidget * - | - | form - | _get_form(self) -> TWidget * - | - | form_title - | _get_form_title(self) -> qstring - | - | form_type - | _get_form_type(self) -> twidget_type_t - | - | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * - | - | regname - | action_ctx_base_t_regname_get(self) -> char const * - | - | thisown - | The membership flag - | - | widget - | action_ctx_base_t_widget_get(self) -> TWidget * - | - | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * - | - | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_action_ctx_base_t> - | delete_action_ctx_base_t(self) - -Help on class action_desc_t in module ida_kernwin: - -class action_desc_t(__builtin__.object) - | Proxy of C++ action_desc_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cb - | action_desc_t_cb_get(self) -> int - | - | flags - | action_desc_t_flags_get(self) -> int - | - | icon - | action_desc_t_icon_get(self) -> int - | - | label - | action_desc_t_label_get(self) -> char const * - | - | name - | action_desc_t_name_get(self) -> char const * - | - | owner - | action_desc_t_owner_get(self) -> plugin_t const * - | - | shortcut - | action_desc_t_shortcut_get(self) -> char const * - | - | thisown - | The membership flag - | - | tooltip - | action_desc_t_tooltip_get(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_action_desc_t> - | delete_action_desc_t(self) - -Help on class action_handler_t in module ida_kernwin: - -class action_handler_t(__builtin__.object) - | # ---------------------------------------------------------------------- - | - | Methods defined here: - | - | __init__(self) - | - | activate(self, ctx) - | - | update(self, ctx) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function activate_widget in module ida_kernwin: - -activate_widget(*args) - activate_widget(widget, take_focus) - - - Activate widget (only gui version) ( 'ui_activate_widget' ). - - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) - -Help on function add_hotkey in module ida_kernwin: - -add_hotkey(*args) - add_hotkey(hotkey, pyfunc) -> PyObject * - - - Associates a function call with a hotkey. - Callable pyfunc will be called each time the hotkey is pressed - - @param hotkey: The hotkey - @param pyfunc: Callable - - @return: Context object on success or None on failure. - -Help on function add_idc_hotkey in module ida_kernwin: - -add_idc_hotkey(*args) - add_idc_hotkey(hotkey, idcfunc) -> int - - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes - -Help on function add_spaces in module ida_kernwin: - -add_spaces(*args) - add_spaces(s, len) -> PyObject * - - - Add space characters to the colored string so that its length will be - at least 'len' characters. Don't trim the string if it is longer than - 'len'. - - @param len: the desired length of the string (C++: ssize_t) - @return: pointer to the end of input string - -Help on function addon_count in module ida_kernwin: - -addon_count(*args) - addon_count() -> int - - - Get number of installed addons. - -Help on class addon_info_t in module ida_kernwin: - -class addon_info_t(__builtin__.object) - | Proxy of C++ addon_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> addon_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cb - | addon_info_t_cb_get(self) -> size_t - | - | custom_data - | addon_info_t_custom_data_get(self) -> void const * - | - | custom_size - | addon_info_t_custom_size_get(self) -> size_t - | - | freeform - | addon_info_t_freeform_get(self) -> char const * - | - | id - | addon_info_t_id_get(self) -> char const * - | - | name - | addon_info_t_name_get(self) -> char const * - | - | producer - | addon_info_t_producer_get(self) -> char const * - | - | thisown - | The membership flag - | - | url - | addon_info_t_url_get(self) -> char const * - | - | version - | addon_info_t_version_get(self) -> char const * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_addon_info_t> - | delete_addon_info_t(self) - -Help on function analyzer_options in module ida_kernwin: - -analyzer_options(*args) - analyzer_options() - - - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) - -Help on function ask_addr in module ida_kernwin: - -ask_addr(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_buttons in module ida_kernwin: - -ask_buttons(*args) - ask_buttons(Yes, No, Cancel, deflt, format) -> int - - - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) - -Help on function ask_file in module ida_kernwin: - -ask_file(*args) - ask_file(for_saving, defval, format) -> char * - -Help on function ask_for_feedback in module ida_kernwin: - -ask_for_feedback(*args) - ask_for_feedback(format) - - - Show a message box asking to send the input file tosupport@hex- - rays.com. - - @param format: the reason why the input file is bad (C++: const char - *) - -Help on function ask_form in module ida_kernwin: - -ask_form(*args) - -Help on function ask_ident in module ida_kernwin: - -ask_ident(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_long in module ida_kernwin: - -ask_long(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_seg in module ida_kernwin: - -ask_seg(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_str in module ida_kernwin: - -ask_str(*args) - ask_str(defval, hist, prompt) -> PyObject * - - - Asks for a long text - - @param hist: history id - @param defval: The default value - @param prompt: The prompt value - @return: None or the entered string - -Help on function ask_text in module ida_kernwin: - -ask_text(*args) - ask_text(max_size, defval, prompt) -> PyObject * - - - Asks for a long text - - @param max_size: Maximum text length, 0 for unlimited - @param defval: The default value - @param prompt: The prompt value - @return: None or the entered string - -Help on function ask_yn in module ida_kernwin: - -ask_yn(*args) - ask_yn(deflt, format) -> int - - - Display a dialog box and get choice from "Yes", "No", "Cancel". - - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . - -Help on function attach_action_to_menu in module ida_kernwin: - -attach_action_to_menu(*args) - attach_action_to_menu(menupath, name, flags) -> bool - - - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). - - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) - @return: success - -Help on function attach_action_to_popup in module ida_kernwin: - -attach_action_to_popup(*args) - 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'. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) - @return: success - -Help on function attach_action_to_toolbar in module ida_kernwin: - -attach_action_to_toolbar(*args) - attach_action_to_toolbar(toolbar_name, name) -> bool - - - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success - -Help on function attach_dynamic_action_to_popup in module ida_kernwin: - -attach_dynamic_action_to_popup(*args) - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool - - - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) - @return: success - -Help on function banner in module ida_kernwin: - -banner(*args) - banner(wait) -> bool - - - Show a banner dialog box ( 'ui_banner' ). - - @param wait: time to wait before closing (C++: int) - -Help on function beep in module ida_kernwin: - -beep(*args) - beep(beep_type=beep_default) - - - Issue a beeping sound ( 'ui_beep' ). - - @param beep_type: beep_t (C++: beep_t) - -Help on function call_nav_colorizer in module ida_kernwin: - -call_nav_colorizer(*args) - 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(). - -Help on function cancel_exec_request in module ida_kernwin: - -cancel_exec_request(*args) - cancel_exec_request(req_id) -> bool - - - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - - @param req_id: request id (C++: int) - -Help on function choose_activate in module ida_kernwin: - -choose_activate(*args) - choose_activate(_self) - -Help on function choose_choose in module ida_kernwin: - -choose_choose(*args) - choose_choose(_self) -> PyObject * - -Help on function choose_close in module ida_kernwin: - -choose_close(*args) - choose_close(_self) - -Help on function choose_create_embedded_chobj in module ida_kernwin: - -choose_create_embedded_chobj(*args) - choose_create_embedded_chobj(_self) -> PyObject * - -Help on function choose_entry in module ida_kernwin: - -choose_entry(*args) - choose_entry(title) -> ea_t - - - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected - -Help on function choose_enum in module ida_kernwin: - -choose_enum(*args) - choose_enum(title, default_id) -> enum_t - - - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected - -Help on function choose_enum_by_value in module ida_kernwin: - -choose_enum_by_value(*args) - choose_enum_by_value(title, default_id, value, nbytes) -> enum_t - - - 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. - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uval_t) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found - -Help on function choose_find in module ida_kernwin: - -choose_find(*args) - choose_find(title) -> PyObject * - -Help on function choose_func in module ida_kernwin: - -choose_func(*args) - choose_func(title, default_ea) -> func_t * - - - Choose a function ( 'ui_choose' , 'chtype_func' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected - -Help on function choose_get_widget in module ida_kernwin: - -choose_get_widget(*args) - choose_get_widget(_self) -> TWidget * - -Help on function choose_idasgn in module ida_kernwin: - -choose_idasgn(*args) - choose_idasgn() -> PyObject * - - - Opens the signature chooser - - @return: None or the selected signature name - -Help on function choose_name in module ida_kernwin: - -choose_name(*args) - choose_name(title) -> ea_t - - - Choose a name ( 'ui_choose' , 'chtype_name' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected - -Help on function choose_refresh in module ida_kernwin: - -choose_refresh(*args) - choose_refresh(_self) - -Help on function choose_segm in module ida_kernwin: - -choose_segm(*args) - choose_segm(title, default_ea) -> segment_t * - - - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected - -Help on function choose_srcp in module ida_kernwin: - -choose_srcp(*args) - choose_srcp(title) -> sreg_range_t * - - - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected - -Help on function choose_stkvar_xref in module ida_kernwin: - -choose_stkvar_xref(*args) - choose_stkvar_xref(pfn, mptr) -> ea_t - - - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) - @return: ea of the selected xref, BADADDR if none selected - -Help on function choose_struc in module ida_kernwin: - -choose_struc(*args) - choose_struc(title) -> struc_t * - - - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected - -Help on function choose_til in module ida_kernwin: - -choose_til(*args) - choose_til() -> str - - - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). - -Help on function choose_xref in module ida_kernwin: - -choose_xref(*args) - choose_xref(to) -> ea_t - - - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - - @param to: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected - -Help on class chooser_item_attrs_t in module ida_kernwin: - -class chooser_item_attrs_t(__builtin__.object) - | Proxy of C++ chooser_item_attrs_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> chooser_item_attrs_t - | - | __repr__ = _swig_repr(self) - | - | reset(self, *args) - | reset(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t - | - | flags - | chooser_item_attrs_t_flags_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_chooser_item_attrs_t> - | delete_chooser_item_attrs_t(self) - -Help on function clear_refresh_request in module ida_kernwin: - -clear_refresh_request(*args) - clear_refresh_request(mask) - -Help on class cli_t in module ida_kernwin: - -class cli_t(ida_idaapi.pyidc_opaque_object_t) - | cli_t wrapper class. - | - | This class allows you to implement your own command line interface handlers. - | - | Method resolution order: - | cli_t - | ida_idaapi.pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __del__(self) - | - | __init__(self) - | - | register(self, flags=0, sname=None, lname=None, hint=None) - | Registers the CLI. - | - | @param flags: Feature bits. No bits are defined yet, must be 0 - | @param sname: Short name (displayed on the button) - | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line - | - | @return Boolean: True-Success, False-Failed - | - | unregister(self) - | Unregisters the CLI (if it was registered) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on function close_chooser in module ida_kernwin: - -close_chooser(*args) - close_chooser(title) -> bool - - - Close a non-modal chooser ( 'ui_close_chooser' ). - - @param title: window title of chooser to close (C++: const char *) - @return: success - -Help on function close_widget in module ida_kernwin: - -close_widget(*args) - close_widget(widget, options) - - - Close widget ( 'ui_close_widget' , only gui version). - - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) - -Help on function clr_cancelled in module ida_kernwin: - -clr_cancelled(*args) - clr_cancelled() - - - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) - -Help on function create_code_viewer in module ida_kernwin: - -create_code_viewer(*args) - 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. - - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) - -Help on function create_empty_widget in module ida_kernwin: - -create_empty_widget(*args) - create_empty_widget(title, icon=-1) -> TWidget * - - - Create an empty widget, serving as a container for custom user widgets - - @param title (C++: const char *) - @param icon (C++: int) - -Help on function create_menu in module ida_kernwin: - -create_menu(*args) - 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-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - - // The new 'My menu' submenu will appear in the 'Comments' submenu - // before the 'Enter comment..." command - create_menu("(...)", "My menu", "Edit/Comments/Enter comment..."); - - or - - // The new 'My menu' submenu will appear at the end of the - // 'Comments' submenu. - create_menu("(...)", "My menu", "Edit/Comments/"); - - If the above fails, the new menu will be appended to the menubar. - - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) - @return: success - -Help on function create_toolbar in module ida_kernwin: - -create_toolbar(*args) - create_toolbar(name, label, before=None, flags=0) -> bool - - - Create a toolbar with the given name, label and optional position - - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) - @return: success - -Help on function custom_viewer_jump in module ida_kernwin: - -custom_viewer_jump(*args) - custom_viewer_jump(v, loc, flags=0) -> bool - - - Append 'loc' to the viewer's history, and cause the viewer to display - it. - - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) - @return: success - -Help on function del_hotkey in module ida_kernwin: - -del_hotkey(*args) - del_hotkey(pyctx) -> bool - - - Deletes a previously registered function hotkey - - @param ctx: Hotkey context previously returned by add_hotkey() - - @return: Boolean. - -Help on function del_idc_hotkey in module ida_kernwin: - -del_idc_hotkey(*args) - del_idc_hotkey(hotkey) -> bool - - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - -Help on function delete_menu in module ida_kernwin: - -delete_menu(*args) - delete_menu(name) -> bool - - - Delete an existing menu - - @param name: name of menu (C++: const char *) - @return: success - -Help on function delete_toolbar in module ida_kernwin: - -delete_toolbar(*args) - delete_toolbar(name) -> bool - - - Delete an existing toolbar - - @param name: name of toolbar (C++: const char *) - @return: success - -Help on function detach_action_from_menu in module ida_kernwin: - -detach_action_from_menu(*args) - detach_action_from_menu(menupath, name) -> bool - - - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) - @return: success - -Help on function detach_action_from_popup in module ida_kernwin: - -detach_action_from_popup(*args) - 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. - - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) - -Help on function detach_action_from_toolbar in module ida_kernwin: - -detach_action_from_toolbar(*args) - detach_action_from_toolbar(toolbar_name, name) -> bool - - - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) - @return: success - -Help on class disabled_script_timeout_t in module ida_kernwin: - -class disabled_script_timeout_t(__builtin__.object) - | Methods defined here: - | - | __enter__(self) - | - | __exit__(self, type, value, tb) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class disasm_line_t in module ida_kernwin: - -class disasm_line_t(__builtin__.object) - | Proxy of C++ disasm_line_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> disasm_line_t - | __init__(self, other) -> disasm_line_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | at - | disasm_line_t_at_get(self) -> place_t - | - | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t - | - | is_default - | disasm_line_t_is_default_get(self) -> bool - | - | line - | disasm_line_t_line_get(self) -> qstring * - | - | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_disasm_line_t> - | delete_disasm_line_t(self) - -Help on class disasm_text_t in module ida_kernwin: - -class disasm_text_t(__builtin__.object) - | Proxy of C++ qvector< disasm_line_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> disasm_line_t - | - | __init__(self, *args) - | __init__(self) -> disasm_text_t - | __init__(self, x) -> disasm_text_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> disasm_line_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> disasm_line_t - | end(self) -> disasm_line_t - | - | erase(self, *args) - | erase(self, it) -> disasm_line_t - | erase(self, first, last) -> disasm_line_t - | - | extract(self, *args) - | extract(self) -> disasm_line_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=disasm_line_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> disasm_line_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> disasm_line_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_disasm_text_t> - | delete_disasm_text_t(self) - -Help on function display_copyright_warning in module ida_kernwin: - -display_copyright_warning(*args) - display_copyright_warning() -> bool - - - Display copyright warning ( 'ui_copywarn' ). - - @return: yes/no - -Help on function display_widget in module ida_kernwin: - -display_widget(*args) - display_widget(widget, options, dest_ctrl=None) - - - Display a widget, dock it if not done before - - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) - -Help on function ea2str in module ida_kernwin: - -ea2str(*args) - ea2str(ea) -> str - - - Convert linear address to UTF-8 string. - - - @param ea (C++: ea_t) - -Help on function ea_viewer_history_push_and_jump in module ida_kernwin: - -ea_viewer_history_push_and_jump(*args) - 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. - - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) - -Help on function enable_chooser_item_attrs in module ida_kernwin: - -enable_chooser_item_attrs(*args) - 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_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - - @param chooser_caption (C++: const char *) - @param enable (C++: bool) - @return: success - -Help on class enumplace_t in module ida_kernwin: - -class enumplace_t(place_t) - | Proxy of C++ enumplace_t class. - | - | Method resolution order: - | enumplace_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bmask - | enumplace_t_bmask_get(self) -> bmask_t - | - | idx - | enumplace_t_idx_get(self) -> size_t - | - | serial - | enumplace_t_serial_get(self) -> uchar - | - | thisown - | The membership flag - | - | value - | enumplace_t_value_get(self) -> uval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_enumplace_t> - | delete_enumplace_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on function error in module ida_kernwin: - -error(*args) - error(format) - - - Display a fatal message in a message box and quit IDA - - @param format: message to print - -Help on function execute_sync in module ida_kernwin: - -execute_sync(*args) - execute_sync(py_callable, reqf) -> int - - - Executes a function in the context of the main thread. - If the current thread not the main thread, then the call is queued and - executed afterwards. - - @param callable: A python callable object, must return an integer value - @param reqf: one of MFF_ flags - @return: -1 or the return value of the callable - -Help on function execute_ui_requests in module ida_kernwin: - -execute_ui_requests(*args) - 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. - - @param callable_list: A list of python callable objects. - @note: A callable should return True if it wants to be called more than once. - @return: Boolean. False if the list contains a non callabale item - -Help on function find_widget in module ida_kernwin: - -find_widget(*args) - 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! - - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found - -Help on function formchgcbfa_close in module ida_kernwin: - -formchgcbfa_close(*args) - formchgcbfa_close(p_fa, close_normally) - -Help on function formchgcbfa_enable_field in module ida_kernwin: - -formchgcbfa_enable_field(*args) - formchgcbfa_enable_field(p_fa, fid, enable) -> bool - -Help on function formchgcbfa_get_field_value in module ida_kernwin: - -formchgcbfa_get_field_value(*args) - formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * - -Help on function formchgcbfa_get_focused_field in module ida_kernwin: - -formchgcbfa_get_focused_field(*args) - formchgcbfa_get_focused_field(p_fa) -> int - -Help on function formchgcbfa_move_field in module ida_kernwin: - -formchgcbfa_move_field(*args) - formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool - -Help on function formchgcbfa_refresh_field in module ida_kernwin: - -formchgcbfa_refresh_field(*args) - formchgcbfa_refresh_field(p_fa, fid) - -Help on function formchgcbfa_set_field_value in module ida_kernwin: - -formchgcbfa_set_field_value(*args) - formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool - -Help on function formchgcbfa_set_focused_field in module ida_kernwin: - -formchgcbfa_set_focused_field(*args) - formchgcbfa_set_focused_field(p_fa, fid) -> bool - -Help on function formchgcbfa_show_field in module ida_kernwin: - -formchgcbfa_show_field(*args) - formchgcbfa_show_field(p_fa, fid, show) -> bool - -Help on function free_custom_icon in module ida_kernwin: - -free_custom_icon(*args) - free_custom_icon(icon_id) - - - Frees an icon loaded with load_custom_icon() - -Help on function gen_disasm_text in module ida_kernwin: - -gen_disasm_text(*args) - gen_disasm_text(text, ea1, ea2, truncate_lines) - - - Generate disassembly text for a range. - - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) - -Help on function get_action_checkable in module ida_kernwin: - -get_action_checkable(*args) - get_action_checkable(name) -> bool - - - Get an action's checkability ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_checked in module ida_kernwin: - -get_action_checked(*args) - get_action_checked(name) -> bool - - - Get an action's checked state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_icon in module ida_kernwin: - -get_action_icon(*args) - get_action_icon(name) -> bool - - - Get an action's icon ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_label in module ida_kernwin: - -get_action_label(*args) - get_action_label(name) -> str - - - Get an action's label ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_shortcut in module ida_kernwin: - -get_action_shortcut(*args) - get_action_shortcut(name) -> str - - - Get an action's shortcut ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_state in module ida_kernwin: - -get_action_state(*args) - get_action_state(name) -> bool - - - Get an action's state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_tooltip in module ida_kernwin: - -get_action_tooltip(*args) - get_action_tooltip(name) -> str - - - Get an action's tooltip ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_action_visibility in module ida_kernwin: - -get_action_visibility(*args) - get_action_visibility(name) -> bool - - - Get an action's visibility ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) - @return: success - -Help on function get_active_modal_widget in module ida_kernwin: - -get_active_modal_widget(*args) - 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 NULL even if it is currently shown. - - @return: TWidget * the active modal widget, or NULL - -Help on function get_addon_info in module ida_kernwin: - -get_addon_info(*args) - 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 - - @param id (C++: const char *) - @param info (C++: addon_info_t *) - @return: false if not found - -Help on function get_addon_info_idx in module ida_kernwin: - -get_addon_info_idx(*args) - 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 - - @param index (C++: int) - @param info (C++: addon_info_t *) - @return: false if index is out of range - -Help on function get_chooser_data in module ida_kernwin: - -get_chooser_data(*args) - get_chooser_data(chooser_caption, n) -> PyObject * - - - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. - - @param chooser_caption (C++: const char *) - @param n (C++: int) - -Help on function get_chooser_obj in module ida_kernwin: - -get_chooser_obj(*args) - get_chooser_obj(chooser_caption) -> void * - - - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This is object is chooser-specific. - - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser - -Help on function get_curline in module ida_kernwin: - -get_curline(*args) - 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) - -Help on function get_current_viewer in module ida_kernwin: - -get_current_viewer(*args) - get_current_viewer() -> TWidget * - - - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) - -Help on function get_current_widget in module ida_kernwin: - -get_current_widget(*args) - get_current_widget() -> TWidget * - - - Get a pointer to the current widget ( 'ui_get_current_widget' ). - -Help on function get_cursor in module ida_kernwin: - -get_cursor(*args) - get_cursor() -> bool - - - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based - -Help on function get_custom_viewer_curline in module ida_kernwin: - -get_custom_viewer_curline(*args) - 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 - - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line - -Help on function get_custom_viewer_location in module ida_kernwin: - -get_custom_viewer_location(*args) - get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool - - - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - - - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) - -Help on function get_custom_viewer_place in module ida_kernwin: - -get_custom_viewer_place(*args) - 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()' - - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - -Help on function get_ea_viewer_history_info in module ida_kernwin: - -get_ea_viewer_history_info(*args) - get_ea_viewer_history_info(nback, nfwd, v) -> bool - - - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) - -Help on function get_hexdump_ea in module ida_kernwin: - -get_hexdump_ea(*args) - get_hexdump_ea(hexdump_num) -> ea_t - - - Get the current address in a hex view. - - @param hexdump_num: number of hexview window (C++: int) - -Help on function get_highlight in module ida_kernwin: - -get_highlight(*args) - get_highlight(v) -> PyObject * - - - Returns the currently highlighted identifier and flags - - @return: a tuple (text, flags), or None if nothing - is highlighted or in case of error. - -Help on function get_kernel_version in module ida_kernwin: - -get_kernel_version(*args) - get_kernel_version() -> str - - - Get IDA kernel version (in a string like "5.1"). - -Help on function get_key_code in module ida_kernwin: - -get_key_code(*args) - get_key_code(keyname) -> ushort - - - Get keyboard key code by its name ( 'ui_get_key_code' ) - - - @param keyname (C++: const char *) - -Help on function get_navband_ea in module ida_kernwin: - -get_navband_ea(*args) - get_navband_ea(pixel) -> ea_t - - - Translate the pixel position on the navigation band, into an address. - - - @param pixel (C++: int) - -Help on function get_navband_pixel in module ida_kernwin: - -get_navband_pixel(*args) - get_navband_pixel(ea) -> int - - - Maps an address, onto a pixel coordinate within the navband - - @param ea: The address to map - @return: a list [pixel, is_vertical] - -Help on function get_opnum in module ida_kernwin: - -get_opnum(*args) - get_opnum() -> int - - - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) - -Help on function get_output_curline in module ida_kernwin: - -get_output_curline(*args) - get_output_curline(mouse) -> str - - - Get current line of output window ( 'ui_get_output_curline' ). - - @param mouse: current for mouse pointer? (C++: bool) - @return: false if output contains no text - -Help on function get_output_cursor in module ida_kernwin: - -get_output_cursor(*args) - get_output_cursor() -> bool - - - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible - -Help on function get_output_selected_text in module ida_kernwin: - -get_output_selected_text(*args) - get_output_selected_text() -> str - - - Returns selected text from output window ( - 'ui_get_output_selected_text' ). - - @return: true if there is a selection - -Help on function get_place_class in module ida_kernwin: - -get_place_class(*args) - 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()' . - - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found - -Help on function get_place_class_id in module ida_kernwin: - -get_place_class_id(*args) - get_place_class_id(name) -> int - - - Get the place class ID for the place that has been registered as - 'name'. - - @param name: the class name (C++: const char *) - @return: the place class ID, or -1 if not found - -Help on function get_place_class_template in module ida_kernwin: - -get_place_class_template(*args) - get_place_class_template(id) -> place_t - - - See 'get_place_class()' - - - @param id (C++: int) - -Help on function get_registered_actions in module ida_kernwin: - -get_registered_actions(*args) - get_registered_actions() -> PyObject * - - - Get a list of all currently-registered actions - -Help on function get_screen_ea in module ida_kernwin: - -get_screen_ea(*args) - get_screen_ea() -> ea_t - - - Get the address at the screen cursor ( 'ui_screenea' ) - -Help on function get_tab_size in module ida_kernwin: - -get_tab_size(*args) - get_tab_size(path) -> int - - - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) - -Help on function get_user_strlist_options in module ida_kernwin: - -get_user_strlist_options(*args) - get_user_strlist_options(out) - -Help on function get_view_renderer_type in module ida_kernwin: - -get_view_renderer_type(*args) - 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' ) - - - @param v (C++: TWidget *) - -Help on function get_viewer_place_type in module ida_kernwin: - -get_viewer_place_type(*args) - 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' ). - - - @param viewer (C++: TWidget *) - -Help on function get_viewer_user_data in module ida_kernwin: - -get_viewer_user_data(*args) - get_viewer_user_data(viewer) -> void * - - - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - - - @param viewer (C++: TWidget *) - -Help on function get_widget_title in module ida_kernwin: - -get_widget_title(*args) - get_widget_title(widget) -> str - - - Get the TWidget's title ( 'ui_get_widget_title' ). - - - @param widget (C++: TWidget *) - -Help on function get_widget_type in module ida_kernwin: - -get_widget_type(*args) - get_widget_type(widget) -> twidget_type_t - - - Get the type of the TWidget * ( 'ui_get_widget_type' ). - - - @param widget (C++: TWidget *) - -Help on function get_window_id in module ida_kernwin: - -get_window_id(*args) - get_window_id(name=None) -> void * - - - Get the system-specific window ID (GUI version only) - - @param name (C++: const char *) - @return: the low-level window ID - -Help on function hide_wait_box in module ida_kernwin: - -hide_wait_box(*args) - hide_wait_box() - - - Hide the "Please wait dialog box". - -Help on class idaplace_t in module ida_kernwin: - -class idaplace_t(place_t) - | Proxy of C++ idaplace_t class. - | - | Method resolution order: - | idaplace_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | ea - | idaplace_t_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_idaplace_t> - | delete_idaplace_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on function info in module ida_kernwin: - -info(*args) - info(format) - -Help on function install_command_interpreter in module ida_kernwin: - -install_command_interpreter(*args) - install_command_interpreter(py_obj) -> int - - - Install command line interpreter ( 'ui_install_cli' ) - -Help on function internal_register_place_class in module ida_kernwin: - -internal_register_place_class(*args) - internal_register_place_class(tmplate, flags, owner, sdk_version) -> int - -Help on function is_action_enabled in module ida_kernwin: - -is_action_enabled(*args) - is_action_enabled(s) -> bool - - - Check if the given action state is one of AST_ENABLE*. - - - @param s (C++: action_state_t) - -Help on function is_chooser_widget in module ida_kernwin: - -is_chooser_widget(*args) - is_chooser_widget(t) -> bool - - - Does the given widget type specify a chooser widget? - - - @param t (C++: twidget_type_t) - -Help on function is_idaq in module ida_kernwin: - -is_idaq(*args) - is_idaq() -> bool - - - Returns True or False depending if IDAPython is hosted by IDAQ - -Help on function is_msg_inited in module ida_kernwin: - -is_msg_inited(*args) - is_msg_inited() -> bool - - - Can we use msg() functions? - -Help on function is_place_class_ea_capable in module ida_kernwin: - -is_place_class_ea_capable(*args) - is_place_class_ea_capable(id) -> bool - - - See 'get_place_class()' - - - @param id (C++: int) - -Help on function is_refresh_requested in module ida_kernwin: - -is_refresh_requested(*args) - is_refresh_requested(mask) -> bool - - - Get a refresh request state - - @param mask: Window refresh flags (C++: uint64) - @return: the state (set or cleared) - -Help on class jobj_wrapper_t in module ida_kernwin: - -class jobj_wrapper_t(__builtin__.object) - | Proxy of C++ jobj_wrapper_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | get_dict(self, *args) - | get_dict(self) -> PyObject * - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - -Help on function jumpto in module ida_kernwin: - -jumpto(*args) - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - jumpto(custom_viewer, place, x, y) -> bool - - - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success - -Help on function load_custom_icon in module ida_kernwin: - -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. - - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format - - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it - - - Load an icon from a file ( 'ui_load_custom_icon_file' ). Also see - 'load_custom_icon(const void *, unsigned int, const char *)' - - @return: icon id - -Help on function load_dbg_dbginfo in module ida_kernwin: - -load_dbg_dbginfo(*args) - load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - - - Load debugging information from a file. - - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) - -Help on function lookup_key_code in module ida_kernwin: - -lookup_key_code(*args) - lookup_key_code(key, shift, is_qt) -> ushort - - - Get shortcut code previously created by 'ui_get_key_code' . - - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) - -Help on function msg in module ida_kernwin: - -msg(*args) - msg(o) -> PyObject * - - - Display an UTF-8 string in the message window - - The result of the stringification of the arguments - will be treated as an UTF-8 string. - - @param message: message to print (formatting is done in Python) - - This function can be used to debug IDAPython scripts - -Help on function msg_clear in module ida_kernwin: - -msg_clear(*args) - msg_clear() - - - Clear the "Output window". - -Help on function msg_get_lines in module ida_kernwin: - -msg_get_lines(*args) - msg_get_lines(count=-1) -> PyObject * - - - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) - - @param count: The number of lines to retrieve. -1 means: all (C++: - int) - -Help on function msg_save in module ida_kernwin: - -msg_save(*args) - msg_save(path) -> bool - - - Save the "Output window" contents into a file - - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) - @return: success - -Help on function nomem in module ida_kernwin: - -nomem(*args) - nomem(format) - -Help on function open_bpts_window in module ida_kernwin: - -open_bpts_window(*args) - open_bpts_window(ea) -> TWidget * - - - Open the breakpoints window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_calls_window in module ida_kernwin: - -open_calls_window(*args) - open_calls_window(ea) -> TWidget * - - - Open the function calls window ( 'ui_open_builtin' ). - - @param ea (C++: ea_t) - @return: pointer to resulting window - -Help on function open_disasm_window in module ida_kernwin: - -open_disasm_window(*args) - open_disasm_window(window_title, ranges=None) -> TWidget * - - - Open a disassembly view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) - @return: pointer to resulting window - -Help on function open_enums_window in module ida_kernwin: - -open_enums_window(*args) - open_enums_window(const_id=BADADDR) -> TWidget * - - - Open the enums window ( 'ui_open_builtin' ). - - @param const_id: index of entry to select by default (C++: tid_t) - @return: pointer to resulting window - -Help on function open_exports_window in module ida_kernwin: - -open_exports_window(*args) - open_exports_window(ea) -> TWidget * - - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_form in module ida_kernwin: - -open_form(*args) - -Help on function open_frame_window in module ida_kernwin: - -open_frame_window(*args) - open_frame_window(pfn, offset) -> TWidget * - - - Open the frame window for the given function ( 'ui_open_builtin' ). - - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise - -Help on function open_funcs_window in module ida_kernwin: - -open_funcs_window(*args) - open_funcs_window(ea) -> TWidget * - - - Open the functions window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_hexdump_window in module ida_kernwin: - -open_hexdump_window(*args) - open_hexdump_window(window_title) -> TWidget * - - - Open a hexdump view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) - @return: pointer to resulting window - -Help on function open_imports_window in module ida_kernwin: - -open_imports_window(*args) - open_imports_window(ea) -> TWidget * - - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_loctypes_window in module ida_kernwin: - -open_loctypes_window(*args) - open_loctypes_window(ordinal) -> TWidget * - - - Open the local types window ( 'ui_open_builtin' ). - - @param ordinal: ordinal of type to select by default (C++: int) - @return: pointer to resulting window - -Help on function open_modules_window in module ida_kernwin: - -open_modules_window(*args) - open_modules_window() -> TWidget * - - - Open the modules window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_names_window in module ida_kernwin: - -open_names_window(*args) - open_names_window(ea) -> TWidget * - - - Open the names window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_navband_window in module ida_kernwin: - -open_navband_window(*args) - open_navband_window(ea, zoom) -> TWidget * - - - Open the navigation band window ( 'ui_open_builtin' ). - - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) - @return: pointer to resulting window - -Help on function open_notepad_window in module ida_kernwin: - -open_notepad_window(*args) - open_notepad_window() -> TWidget * - - - Open the notepad window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_problems_window in module ida_kernwin: - -open_problems_window(*args) - open_problems_window(ea) -> TWidget * - - - Open the problems window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_segments_window in module ida_kernwin: - -open_segments_window(*args) - open_segments_window(ea) -> TWidget * - - - Open the segments window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_segregs_window in module ida_kernwin: - -open_segregs_window(*args) - open_segregs_window(ea) -> TWidget * - - - Open the segment registers window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on function open_selectors_window in module ida_kernwin: - -open_selectors_window(*args) - open_selectors_window() -> TWidget * - - - Open the selectors window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_signatures_window in module ida_kernwin: - -open_signatures_window(*args) - open_signatures_window() -> TWidget * - - - Open the signatures window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_stack_window in module ida_kernwin: - -open_stack_window(*args) - open_stack_window() -> TWidget * - - - Open the call stack window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_strings_window in module ida_kernwin: - -open_strings_window(*args) - open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * - - - Open the strings window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) - @return: pointer to resulting window - -Help on function open_structs_window in module ida_kernwin: - -open_structs_window(*args) - open_structs_window(id=BADADDR, offset=0) -> TWidget * - - - Open the structs window ( 'ui_open_builtin' ). - - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window - -Help on function open_threads_window in module ida_kernwin: - -open_threads_window(*args) - open_threads_window() -> TWidget * - - - Open the threads window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_tils_window in module ida_kernwin: - -open_tils_window(*args) - open_tils_window() -> TWidget * - - - Open the type libraries window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_trace_window in module ida_kernwin: - -open_trace_window(*args) - open_trace_window() -> TWidget * - - - Open the trace window ( 'ui_open_builtin' ). - - @return: pointer to resulting window - -Help on function open_url in module ida_kernwin: - -open_url(*args) - open_url(url) - - - Open the given url ( 'ui_open_url' ) - - - @param url (C++: const char *) - -Help on function open_xrefs_window in module ida_kernwin: - -open_xrefs_window(*args) - open_xrefs_window(ea) -> TWidget * - - - Open the cross references window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window - -Help on class place_t in module ida_kernwin: - -class place_t(__builtin__.object) - | Proxy of C++ place_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_place_t> - | delete_place_t(self) - -Help on function place_t_as_enumplace_t in module ida_kernwin: - -place_t_as_enumplace_t(*args) - place_t_as_enumplace_t(p) -> enumplace_t - -Help on function place_t_as_idaplace_t in module ida_kernwin: - -place_t_as_idaplace_t(*args) - place_t_as_idaplace_t(p) -> idaplace_t - -Help on function place_t_as_simpleline_place_t in module ida_kernwin: - -place_t_as_simpleline_place_t(*args) - place_t_as_simpleline_place_t(p) -> simpleline_place_t - -Help on function place_t_as_structplace_t in module ida_kernwin: - -place_t_as_structplace_t(*args) - place_t_as_structplace_t(p) -> structplace_t - -Help on function plgform_close in module ida_kernwin: - -plgform_close(*args) - plgform_close(py_link, options) - -Help on function plgform_get_widget in module ida_kernwin: - -plgform_get_widget(*args) - plgform_get_widget(py_link) -> TWidget * - -Help on function plgform_new in module ida_kernwin: - -plgform_new(*args) - plgform_new() -> PyObject * - -Help on function plgform_show in module ida_kernwin: - -plgform_show(*args) - plgform_show(py_link, py_obj, caption, options=WOPN_DP_TAB|WOPN_RESTORE) -> bool - -Help on function process_ui_action in module ida_kernwin: - -process_ui_action(*args) - process_ui_action(name, flags=0) -> bool - - - Invokes an IDA UI action by name - - @param name: action name - @return: Boolean - -Help on function py_get_ask_form in module ida_kernwin: - -py_get_ask_form(*args) - py_get_ask_form() -> size_t - -Help on function py_get_open_form in module ida_kernwin: - -py_get_open_form(*args) - py_get_open_form() -> size_t - -Help on function py_load_custom_icon_data in module ida_kernwin: - -py_load_custom_icon_data(*args) - py_load_custom_icon_data(data, format) -> int - -Help on function py_load_custom_icon_fn in module ida_kernwin: - -py_load_custom_icon_fn(*args) - py_load_custom_icon_fn(filename) -> int - -Help on function py_register_compiled_form in module ida_kernwin: - -py_register_compiled_form(*args) - py_register_compiled_form(py_form) - -Help on function py_ss_restore_callback in module ida_kernwin: - -py_ss_restore_callback(*args) - py_ss_restore_callback(err_msg, userdata) - -Help on function py_unregister_compiled_form in module ida_kernwin: - -py_unregister_compiled_form(*args) - py_unregister_compiled_form(py_form) - -Help on function pyidag_bind in module ida_kernwin: - -pyidag_bind(*args) - pyidag_bind(_self) -> bool - -Help on function pyidag_unbind in module ida_kernwin: - -pyidag_unbind(*args) - pyidag_unbind(_self) -> bool - -Help on function pyscv_add_line in module ida_kernwin: - -pyscv_add_line(*args) - pyscv_add_line(py_this, py_sl) -> bool - -Help on function pyscv_clear_lines in module ida_kernwin: - -pyscv_clear_lines(*args) - pyscv_clear_lines(py_this) -> PyObject * - -Help on function pyscv_close in module ida_kernwin: - -pyscv_close(*args) - pyscv_close(py_this) - -Help on function pyscv_count in module ida_kernwin: - -pyscv_count(*args) - pyscv_count(py_this) -> size_t - -Help on function pyscv_del_line in module ida_kernwin: - -pyscv_del_line(*args) - pyscv_del_line(py_this, nline) -> bool - -Help on function pyscv_edit_line in module ida_kernwin: - -pyscv_edit_line(*args) - pyscv_edit_line(py_this, nline, py_sl) -> bool - -Help on function pyscv_get_current_line in module ida_kernwin: - -pyscv_get_current_line(*args) - pyscv_get_current_line(py_this, mouse, notags) -> PyObject * - -Help on function pyscv_get_current_word in module ida_kernwin: - -pyscv_get_current_word(*args) - pyscv_get_current_word(py_this, mouse) -> PyObject * - -Help on function pyscv_get_line in module ida_kernwin: - -pyscv_get_line(*args) - pyscv_get_line(py_this, nline) -> PyObject * - -Help on function pyscv_get_pos in module ida_kernwin: - -pyscv_get_pos(*args) - pyscv_get_pos(py_this, mouse) -> PyObject * - -Help on function pyscv_get_selection in module ida_kernwin: - -pyscv_get_selection(*args) - pyscv_get_selection(py_this) -> PyObject * - -Help on function pyscv_get_widget in module ida_kernwin: - -pyscv_get_widget(*args) - pyscv_get_widget(py_this) -> TWidget * - -Help on function pyscv_init in module ida_kernwin: - -pyscv_init(*args) - pyscv_init(py_link, title) -> PyObject * - -Help on function pyscv_insert_line in module ida_kernwin: - -pyscv_insert_line(*args) - pyscv_insert_line(py_this, nline, py_sl) -> bool - -Help on function pyscv_is_focused in module ida_kernwin: - -pyscv_is_focused(*args) - pyscv_is_focused(py_this) -> bool - -Help on function pyscv_jumpto in module ida_kernwin: - -pyscv_jumpto(*args) - pyscv_jumpto(py_this, ln, x, y) -> bool - -Help on function pyscv_patch_line in module ida_kernwin: - -pyscv_patch_line(*args) - pyscv_patch_line(py_this, nline, offs, value) -> bool - -Help on function pyscv_refresh in module ida_kernwin: - -pyscv_refresh(*args) - pyscv_refresh(py_this) -> bool - -Help on function pyscv_show in module ida_kernwin: - -pyscv_show(*args) - pyscv_show(py_this) -> bool - -Help on function qcleanline in module ida_kernwin: - -qcleanline(*args) - qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - - - Performs some cleanup operations to a line. - - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) - @return: length of line - -Help on class quick_widget_commands_t in module ida_kernwin: - -class quick_widget_commands_t - | # ---------------------------------------------------------------------- - | # This provides an alternative to register_action()+attach_action_to_popup_menu() - | - | Methods defined here: - | - | __init__(self, callback) - | - | add(self, caption, flags, menu_index, icon, emb, shortcut) - | - | populate_popup(self, widget, popup) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | _ah_t = <class 'ida_kernwin._ah_t'> - | - | - | _cmd_t = <class ida_kernwin._cmd_t> - -Help on function read_range_selection in module ida_kernwin: - -read_range_selection(*args) - read_range_selection(v) -> bool - - - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) - -Help on function read_selection in module ida_kernwin: - -read_selection(*args) - 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, ...) - - @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. - @param p1: Storage for the "to" part of the selection. - @return: a bool value indicating success. - -Help on function refresh_chooser in module ida_kernwin: - -refresh_chooser(*args) - refresh_chooser(title) -> bool - - - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - - @param title: title of chooser (C++: const char *) - @return: success - -Help on function refresh_choosers in module ida_kernwin: - -refresh_choosers(*args) - refresh_choosers() - -Help on function refresh_idaview in module ida_kernwin: - -refresh_idaview(*args) - refresh_idaview() - - - Refresh marked windows ( 'ui_refreshmarked' ) - -Help on function refresh_idaview_anyway in module ida_kernwin: - -refresh_idaview_anyway(*args) - refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead - -Help on function refresh_navband in module ida_kernwin: - -refresh_navband(*args) - refresh_navband(force) - - - Refresh navigation band if changed ( 'ui_refresh_navband' ). - - @param force: refresh regardless (C++: bool) - -Help on function register_action in module ida_kernwin: - -register_action(*args) - 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. - - @param desc: action to register (C++: const action_desc_t &) - @return: success - -Help on function register_addon in module ida_kernwin: - -register_addon(*args) - 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 - - @param info (C++: const addon_info_t *) - -Help on function register_and_attach_to_menu in module ida_kernwin: - -register_and_attach_to_menu(*args) - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner) -> 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. - - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: const plugin_t *) - -Help on function register_timer in module ida_kernwin: - -register_timer(*args) - register_timer(interval, py_callback) -> PyObject * - - - Register a timer - - @param interval: Interval in milliseconds - @param 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 - -Help on function remove_command_interpreter in module ida_kernwin: - -remove_command_interpreter(*args) - remove_command_interpreter(cli_idx) - - - Remove command line interpreter ( 'ui_install_cli' ) - -Help on class renderer_pos_info_t in module ida_kernwin: - -class renderer_pos_info_t(__builtin__.object) - | Proxy of C++ renderer_pos_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> renderer_pos_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cx - | renderer_pos_info_t_cx_get(self) -> short - | - | cy - | renderer_pos_info_t_cy_get(self) -> short - | - | node - | renderer_pos_info_t_node_get(self) -> int - | - | sx - | renderer_pos_info_t_sx_get(self) -> short - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_renderer_pos_info_t> - | delete_renderer_pos_info_t(self) - -Help on function repaint_custom_viewer in module ida_kernwin: - -repaint_custom_viewer(*args) - repaint_custom_viewer(custom_viewer) - - - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - - - @param custom_viewer (C++: TWidget *) - -Help on function replace_wait_box in module ida_kernwin: - -replace_wait_box(*args) - replace_wait_box(format) - - - Replace the label of "Please wait dialog box". - - - @param format (C++: const char *) - -Help on function request_refresh in module ida_kernwin: - -request_refresh(*args) - request_refresh(mask, cnd=True) - - - Request a refresh of a builtin window. - - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) - -Help on function restore_database_snapshot in module ida_kernwin: - -restore_database_snapshot(*args) - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * - - - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. - - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - @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. - -Help on function set_cancelled in module ida_kernwin: - -set_cancelled(*args) - set_cancelled() - - - Set "Cancelled" flag ( 'ui_set_cancelled' ) - -Help on function set_code_viewer_handler in module ida_kernwin: - -set_code_viewer_handler(*args) - 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' - ). - - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) - @return: old value of the handler or data - -Help on function set_code_viewer_is_source in module ida_kernwin: - -set_code_viewer_is_source(*args) - 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' ). - - - @param code_viewer (C++: TWidget *) - -Help on function set_code_viewer_line_handlers in module ida_kernwin: - -set_code_viewer_line_handlers(*args) - 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 - NULL - - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) - -Help on function set_code_viewer_lines_alignment in module ida_kernwin: - -set_code_viewer_lines_alignment(*args) - set_code_viewer_lines_alignment(code_viewer, align) -> bool - - - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param align (C++: int) - -Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: - -set_code_viewer_lines_icon_margin(*args) - 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' ). - - - @param code_viewer (C++: TWidget *) - @param margin (C++: int) - -Help on function set_code_viewer_lines_radix in module ida_kernwin: - -set_code_viewer_lines_radix(*args) - set_code_viewer_lines_radix(code_viewer, radix) -> bool - - - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param radix (C++: int) - -Help on function set_code_viewer_user_data in module ida_kernwin: - -set_code_viewer_user_data(*args) - set_code_viewer_user_data(code_viewer, ud) -> bool - - - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) - -Help on function set_custom_viewer_qt_aware in module ida_kernwin: - -set_custom_viewer_qt_aware(*args) - set_custom_viewer_qt_aware(custom_viewer) -> bool - - - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - - - @param custom_viewer (C++: TWidget *) - -Help on function set_dock_pos in module ida_kernwin: - -set_dock_pos(*args) - 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. - - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows - @return: Boolean - - Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window - -Help on function set_highlight in module ida_kernwin: - -set_highlight(*args) - set_highlight(viewer, str, flags) -> bool - - - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) - @return: false if an error occurred - -Help on function set_nav_colorizer in module ida_kernwin: - -set_nav_colorizer(*args) - set_nav_colorizer(new_py_colorizer) -> PyObject * - - - Set a new colorizer for the navigation band. - - The 'callback' is a function of 2 arguments: - - ea (the EA to colorize for) - - nbytes (the number of bytes at that EA) - and must return a 'long' value. - - The previous colorizer is returned, allowing - the new 'callback' to use 'call_nav_colorizer' - with it. - - Note that the previous colorizer is returned - only the first time set_nav_colorizer() is called: - due to the way the colorizers API is defined in C, - it is impossible to chain more than 2 colorizers - in IDAPython: the original, IDA-provided colorizer, - and a user-provided one. - - Example: colorizer inverting the color provided by the IDA colorizer: - def my_colorizer(ea, nbytes): - global ida_colorizer - orig = idaapi.call_nav_colorizer(ida_colorizer, ea, nbytes) - return long(~orig) - - ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) - -Help on function set_view_renderer_type in module ida_kernwin: - -set_view_renderer_type(*args) - set_view_renderer_type(v, rt) - - - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - - - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) - -Help on function show_wait_box in module ida_kernwin: - -show_wait_box(*args) - show_wait_box(message) - - - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. - -Help on class simplecustviewer_t in module ida_kernwin: - -class simplecustviewer_t(__builtin__.object) - | The base class for implementing simple custom viewers - | - | Methods defined here: - | - | 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 - | - | @param 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. - | @param mouse: Current line at mouse pos - | @param 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 - | @param 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 - | @param 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. - | @param 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 close, then it will call Create() for you - | @return: Boolean - | - | __init__(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | _simplecustviewer_t__make_sl_arg = __make_sl_arg(line, fgcolor=None, bgcolor=None) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | UI_Hooks_Trampoline = <class 'ida_kernwin.UI_Hooks_Trampoline'> - -Help on class simpleline_place_t in module ida_kernwin: - -class simpleline_place_t(place_t) - | Proxy of C++ simpleline_place_t class. - | - | Method resolution order: - | simpleline_place_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | n - | simpleline_place_t_n_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_simpleline_place_t> - | delete_simpleline_place_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on class simpleline_t in module ida_kernwin: - -class simpleline_t(__builtin__.object) - | Proxy of C++ simpleline_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> simpleline_t - | __init__(self, c, str) -> simpleline_t - | __init__(self, str) -> simpleline_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t - | - | color - | simpleline_t_color_get(self) -> color_t - | - | line - | simpleline_t_line_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_simpleline_t> - | delete_simpleline_t(self) - -Help on function str2ea in module ida_kernwin: - -str2ea(*args) - str2ea(str, screenEA=BADADDR) -> ea_t - - - Converts a string express to EA. The expression evaluator may be called as well. - - @return: BADADDR or address value - -Help on function str2user in module ida_pro: - -str2user(*args) - str2user(str) -> PyObject * - - - Insert C-style escape characters to string - - @return: new string with escape characters inserted - -Help on function strarray in module ida_kernwin: - -strarray(*args) - 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 "". - - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) - -Help on class strarray_t in module ida_kernwin: - -class strarray_t(__builtin__.object) - | Proxy of C++ strarray_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> strarray_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | code - | strarray_t_code_get(self) -> int - | - | text - | strarray_t_text_get(self) -> char const * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_strarray_t> - | delete_strarray_t(self) - -Help on class structplace_t in module ida_kernwin: - -class structplace_t(place_t) - | Proxy of C++ structplace_t class. - | - | Method resolution order: - | structplace_t - | place_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | idx - | structplace_t_idx_get(self) -> uval_t - | - | offset - | structplace_t_offset_get(self) -> uval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_structplace_t> - | delete_structplace_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from place_t: - | - | _print(self, *args) - | _print(self, out_buf, ud) - | - | adjust(self, *args) - | adjust(self, ud) - | - | beginning(self, *args) - | beginning(self, ud) -> bool - | - | clone(self, *args) - | clone(self) -> place_t - | - | compare(self, *args) - | compare(self, t2) -> int - | - | copyfrom(self, *args) - | copyfrom(self, _from) - | - | deserialize(self, *args) - | deserialize(self, _in) -> bool - | - | ending(self, *args) - | ending(self, ud) -> bool - | - | enter(self, *args) - | enter(self, arg2) -> place_t - | - | generate(self, *args) - | generate(self, ud, maxsize) -> PyObject * - | - | id(self, *args) - | id(self) -> int - | - | leave(self, *args) - | leave(self, arg2) - | - | makeplace(self, *args) - | makeplace(self, ud, x, lnnum) -> place_t - | - | name(self, *args) - | name(self) -> char const * - | - | next(self, *args) - | next(self, ud) -> bool - | - | prev(self, *args) - | prev(self, ud) -> bool - | - | rebase(self, *args) - | rebase(self, arg2) -> bool - | - | serialize(self, *args) - | serialize(self) - | - | toea(self, *args) - | toea(self) -> ea_t - | - | touval(self, *args) - | touval(self, ud) -> uval_t - | - | ---------------------------------------------------------------------- - | Static methods inherited from place_t: - | - | as_enumplace_t(*args) - | as_enumplace_t(p) -> enumplace_t - | - | as_idaplace_t(*args) - | as_idaplace_t(p) -> idaplace_t - | - | as_simpleline_place_t(*args) - | as_simpleline_place_t(p) -> simpleline_place_t - | - | as_structplace_t(*args) - | as_structplace_t(p) -> structplace_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from place_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | lnnum - | place_t_lnnum_get(self) -> int - -Help on class sync_source_t in module ida_kernwin: - -class sync_source_t(__builtin__.object) - | Proxy of C++ sync_source_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, _o) -> bool - | - | __init__(self, *args) - | __init__(self, _view) -> sync_source_t - | __init__(self, _regname) -> sync_source_t - | - | __ne__(self, *args) - | __ne__(self, _o) -> bool - | - | __repr__ = _swig_repr(self) - | - | get_register(self, *args) - | get_register(self) -> char const * - | - | get_widget(self, *args) - | get_widget(self) -> TWidget const * - | - | is_register(self, *args) - | is_register(self) -> bool - | - | is_widget(self, *args) - | is_widget(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_sync_source_t> - | delete_sync_source_t(self) - -Help on function sync_sources in module ida_kernwin: - -sync_sources(*args) - sync_sources(what, _with, sync) -> bool - - - [Un]synchronize sources - - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) - @return: success - -Help on function take_database_snapshot in module ida_kernwin: - -take_database_snapshot(*args) - take_database_snapshot(ss) -> PyObject * - - - Take a database snapshot ( 'ui_take_database_snapshot' ). - - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success - -Help on class textctrl_info_t in module ida_kernwin: - -class textctrl_info_t(ida_idaapi.py_clinked_object_t) - | Class representing textctrl_info_t - | - | Method resolution order: - | textctrl_info_t - | ida_idaapi.py_clinked_object_t - | ida_idaapi.pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __get_flags__(self) - | Returns the flags value - | - | __get_tabsize__(self) - | Returns the tabsize value - | - | __init__(self, text='', flags=0, tabsize=0) - | - | __set_flags__(self, flags) - | Sets the flags value - | - | __set_tabsize__(self, tabsize) - | Sets the tabsize value - | - | _create_clink(self) - | - | _del_clink(self, lnk) - | - | _get_clink_ptr(self) - | - | _textctrl_info_t__get_text = __get_text(self) - | Sets the text value - | - | _textctrl_info_t__set_text = __set_text(self, s) - | Sets the text value - | - | assign(self, other) - | Copies the contents of 'other' to 'self' - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | flags - | Returns the flags value - | - | tabsize - | Returns the tabsize value - | - | text - | Sets the text value - | - | value - | Sets the text value - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | TXTF_ACCEPTTABS = 2 - | - | TXTF_AUTOINDENT = 1 - | - | TXTF_FIXEDFONT = 32 - | - | TXTF_MODIFIED = 16 - | - | TXTF_READONLY = 4 - | - | TXTF_SELECTED = 8 - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_idaapi.py_clinked_object_t: - | - | __del__(self) - | Delete the link upon object destruction (only if not static) - | - | _free(self) - | Explicitly delete the link (only if not static) - | - | copy(self) - | Returns a new copy of this class - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.py_clinked_object_t: - | - | clink - | - | clink_ptr - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on function textctrl_info_t_assign in module ida_kernwin: - -textctrl_info_t_assign(*args) - textctrl_info_t_assign(_self, other) -> bool - -Help on function textctrl_info_t_create in module ida_kernwin: - -textctrl_info_t_create(*args) - textctrl_info_t_create() -> PyObject * - -Help on function textctrl_info_t_destroy in module ida_kernwin: - -textctrl_info_t_destroy(*args) - textctrl_info_t_destroy(py_obj) -> bool - -Help on function textctrl_info_t_get_clink in module ida_kernwin: - -textctrl_info_t_get_clink(*args) - textctrl_info_t_get_clink(_self) -> textctrl_info_t * - -Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: - -textctrl_info_t_get_clink_ptr(*args) - textctrl_info_t_get_clink_ptr(_self) -> PyObject * - -Help on function textctrl_info_t_get_flags in module ida_kernwin: - -textctrl_info_t_get_flags(*args) - textctrl_info_t_get_flags(_self) -> unsigned int - -Help on function textctrl_info_t_get_tabsize in module ida_kernwin: - -textctrl_info_t_get_tabsize(*args) - textctrl_info_t_get_tabsize(_self) -> unsigned int - -Help on function textctrl_info_t_get_text in module ida_kernwin: - -textctrl_info_t_get_text(*args) - textctrl_info_t_get_text(_self) -> char const * - -Help on function textctrl_info_t_set_flags in module ida_kernwin: - -textctrl_info_t_set_flags(*args) - textctrl_info_t_set_flags(_self, flags) -> bool - -Help on function textctrl_info_t_set_tabsize in module ida_kernwin: - -textctrl_info_t_set_tabsize(*args) - textctrl_info_t_set_tabsize(_self, tabsize) -> bool - -Help on function textctrl_info_t_set_text in module ida_kernwin: - -textctrl_info_t_set_text(*args) - textctrl_info_t_set_text(_self, s) -> bool - -Help on class twinpos_t in module ida_kernwin: - -class twinpos_t(__builtin__.object) - | Proxy of C++ twinpos_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> twinpos_t - | __init__(self, t) -> twinpos_t - | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | place(self, view) - | - | place_as_enumplace_t(self) - | - | place_as_idaplace_t(self) - | - | place_as_simpleline_place_t(self) - | - | place_as_structplace_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | at - | twinpos_t_at_get(self) -> place_t - | - | thisown - | The membership flag - | - | x - | twinpos_t_x_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_twinpos_t> - | delete_twinpos_t(self) - -Help on function ui_load_new_file in module ida_kernwin: - -ui_load_new_file(*args) - ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool - - - Display a load file dialog and load file ( 'ui_load_file' ). - - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) - -Help on class ui_requests_t in module ida_kernwin: - -class ui_requests_t(__builtin__.object) - | Proxy of C++ ui_requests_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ui_requests_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ui_requests_t> - | delete_ui_requests_t(self) - -Help on function ui_run_debugger in module ida_kernwin: - -ui_run_debugger(*args) - ui_run_debugger(dbgopts, exename, argc, argv) -> bool - - - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) - @return: success - -Help on function unmark_selection in module ida_kernwin: - -unmark_selection(*args) - unmark_selection() - - - Unmark selection ( 'ui_unmarksel' ) - -Help on function unregister_action in module ida_kernwin: - -unregister_action(*args) - unregister_action(name) -> bool - - - Delete a previously-registered action ( 'ui_unregister_action' ). - - @param name: name of action (C++: const char *) - @return: success - -Help on function unregister_timer in module ida_kernwin: - -unregister_timer(*args) - unregister_timer(py_timerctx) -> bool - - - Unregister a timer - - @param 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. - -Help on function update_action_checkable in module ida_kernwin: - -update_action_checkable(*args) - update_action_checkable(name, checkable) -> bool - - - Update an action's checkability ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success - -Help on function update_action_checked in module ida_kernwin: - -update_action_checked(*args) - update_action_checked(name, checked) -> bool - - - Update an action's checked state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) - @return: success - -Help on function update_action_icon in module ida_kernwin: - -update_action_icon(*args) - update_action_icon(name, icon) -> bool - - - Update an action's icon ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) - @return: success - -Help on function update_action_label in module ida_kernwin: - -update_action_label(*args) - update_action_label(name, label) -> bool - - - Update an action's label ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) - @return: success - -Help on function update_action_shortcut in module ida_kernwin: - -update_action_shortcut(*args) - update_action_shortcut(name, shortcut) -> bool - - - Update an action's shortcut ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) - @return: success - -Help on function update_action_state in module ida_kernwin: - -update_action_state(*args) - update_action_state(name, state) -> bool - - - Update an action's state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) - @return: success - -Help on function update_action_tooltip in module ida_kernwin: - -update_action_tooltip(*args) - update_action_tooltip(name, tooltip) -> bool - - - Update an action's tooltip ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) - @return: success - -Help on function update_action_visibility in module ida_kernwin: - -update_action_visibility(*args) - update_action_visibility(name, visible) -> bool - - - Update an action's visibility ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) - @return: success - -Help on function user_cancelled in module ida_kernwin: - -user_cancelled(*args) - user_cancelled() -> bool - - - Test the ctrl-break flag ( 'ui_test_cancelled' ). - -Help on class view_mouse_event_location_t in module ida_kernwin: - -class view_mouse_event_location_t(__builtin__.object) - | Proxy of C++ view_mouse_event_location_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> view_mouse_event_location_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t - | - | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_view_mouse_event_location... - | delete_view_mouse_event_location_t(self) - -Help on class view_mouse_event_t in module ida_kernwin: - -class view_mouse_event_t(__builtin__.object) - | Proxy of C++ view_mouse_event_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> view_mouse_event_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | button - | view_mouse_event_t_button_get(self) -> vme_button_t - | - | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t - | - | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t - | - | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t - | - | state - | view_mouse_event_t_state_get(self) -> view_event_state_t - | - | thisown - | The membership flag - | - | x - | view_mouse_event_t_x_get(self) -> uint32 - | - | y - | view_mouse_event_t_y_get(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_view_mouse_event_t> - | delete_view_mouse_event_t(self) - -Help on function warning in module ida_kernwin: - -warning(*args) - warning(format) - - - Display a message in a message box - - @param 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 - -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_NO_UNDO -""" -useful for actions that do not modify the database. - -the action does not create an undo point. -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -trace view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CHOOSER_MENU_EDIT -""" -Values of the 'menu_index' parameter. - -Obsolete. Please don't use -""" - -ida_kernwin.CHOOSER_MENU_JUMP -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MENU_SEARCH -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MULTI_SELECTION -""" -enable for multiple selections. A callback of type -'chooser_multi_cb_t' will be called for all selected items. -""" - -ida_kernwin.CHOOSER_NO_SELECTION -""" -Flags. - -enable even if there's no selected item. 'n' will be NO_SELECTION for -a callback. -""" - -ida_kernwin.CHOOSER_POPUP_MENU -""" -Add command to the popup menu. -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.DP_BEFORE -""" -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. -""" - -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) -""" - -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" - -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" - -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -trace view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. 'execute_sync()' returns the request -id in this case. it can be used in 'cancel_exec_request()' . This flag -can be used to delay the code execution until the next UI loop run -even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -in the navigation history - -do not remember the current address -""" - -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" -=== ida_kernwin EPYDOC INJECTIONS END === -Help on function COLSTR in module ida_lines: - -COLSTR(str, tag) - Utility function to create a colored line - @param str: The string - @param tag: Color tag constant. One of SCOLOR_XXXX - -Help on function add_extra_cmt in module ida_lines: - -add_extra_cmt(*args) - add_extra_cmt(ea, isprev, format) -> bool - - - Add anterior/posterior comment line(s). - - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success - -Help on function add_extra_line in module ida_lines: - -add_extra_line(*args) - add_extra_line(ea, isprev, format) -> bool - - - Add anterior/posterior non-comment line(s). - - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) - @return: true if success - -Help on function add_pgm_cmt in module ida_lines: - -add_pgm_cmt(*args) - add_pgm_cmt(format) -> bool - - - Add anterior comment line(s) at the start of program. - - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) - @return: true if success - -Help on function add_sourcefile in module ida_lines: - -add_sourcefile(*args) - add_sourcefile(ea1, ea2, filename) -> bool - - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success - -Help on class bgcolors_t in module ida_lines: - -class bgcolors_t(__builtin__.object) - | Proxy of C++ bgcolors_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bgcolors_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | epilog_color - | bgcolors_t_epilog_color_get(self) -> bgcolor_t - | - | prolog_color - | bgcolors_t_prolog_color_get(self) -> bgcolor_t - | - | switch_color - | bgcolors_t_switch_color_get(self) -> bgcolor_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bgcolors_t> - | delete_bgcolors_t(self) - -Help on function calc_bg_color in module ida_lines: - -calc_bg_color(*args) - calc_bg_color(ea) -> bgcolor_t - - - Get background color for line at 'ea' - - @param ea (C++: ea_t) - @return: RGB color - -Help on function calc_prefix_color in module ida_lines: - -calc_prefix_color(*args) - calc_prefix_color(ea) -> color_t - - - Get prefix color for line at 'ea' - - @param ea (C++: ea_t) - @return: Line prefix colors - -Help on function create_encoding_helper in module ida_lines: - -create_encoding_helper(*args) - create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - -Help on function del_extra_cmt in module ida_lines: - -del_extra_cmt(*args) - del_extra_cmt(ea, what) - -Help on function del_sourcefile in module ida_lines: - -del_sourcefile(*args) - del_sourcefile(ea) -> bool - - - Delete information about the source file. - - @param ea: linear address (C++: ea_t) - @return: success - -Help on function delete_extra_cmts in module ida_lines: - -delete_extra_cmts(*args) - delete_extra_cmts(ea, what) - -Help on function generate_disasm_line in module ida_lines: - -generate_disasm_line(*args) - generate_disasm_line(ea, flags=0) -> str - -Help on function generate_disassembly in module ida_lines: - -generate_disassembly(*args) - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * - - - Generate disassembly lines (many lines) and put them into a buffer - - @param ea: address to generate disassembly for - @param max_lines: how many lines max to generate - @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines - -Help on function get_extra_cmt in module ida_lines: - -get_extra_cmt(*args) - get_extra_cmt(ea, what) -> ssize_t - -Help on function get_first_free_extra_cmtidx in module ida_lines: - -get_first_free_extra_cmtidx(*args) - get_first_free_extra_cmtidx(ea, start) -> int - -Help on function get_sourcefile in module ida_lines: - -get_sourcefile(*args) - get_sourcefile(ea, bounds=None) -> char const * - - - Get name of source file occupying the given address. - - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name - -Help on function requires_color_esc in module ida_lines: - -requires_color_esc(c) - Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean - - - Is the given char a color escape character? - -Help on function set_user_defined_prefix in module ida_lines: - -set_user_defined_prefix(*args) - set_user_defined_prefix(width, pycb) -> PyObject * - - - User-defined line-prefixes are displayed just after the autogenerated - line prefixes. In order to use them, the plugin should call the - following function to specify its width and contents. - @param width: the width of the user-defined prefix - @param callback: a get_user_defined_prefix callback to get the contents of the prefix. - Its arguments: - ea - linear address - lnnum - line number - indent - indent of the line contents (-1 means the default instruction) - indent and is used for instruction itself. see explanations for printf_line() - line - the line to be generated. the line usually contains color tags this argument - can be examined to decide whether to generated the prefix - It returns a buffer of size < bufsize - - In order to remove the callback before unloading the plugin, specify the width = 0 or the callback = None - -Help on function tag_addr in module ida_lines: - -tag_addr(*args) - tag_addr(ea) -> PyObject * - - - Insert an address mark into a string. - - @param ea: address to include (C++: ea_t) - -Help on function tag_advance in module ida_lines: - -tag_advance(*args) - tag_advance(line, cnt) -> int - - - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer - -Help on function tag_remove in module ida_lines: - -tag_remove(*args) - tag_remove(nonnul_instr) -> PyObject * - - - Remove color escape sequences from a string - @param colstr: the colored string with embedded tags - @return: a new string w/o the tags - -Help on function tag_skipcode in module ida_lines: - -tag_skipcode(*args) - tag_skipcode(line) -> int - - - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - - @param line (C++: const char *) - @return: moved pointer - -Help on function tag_skipcodes in module ida_lines: - -tag_skipcodes(*args) - tag_skipcodes(line) -> int - - - Move the pointer past all color codes. - - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL - -Help on function tag_strlen in module ida_lines: - -tag_strlen(*args) - tag_strlen(line) -> ssize_t - - - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error - -Help on function update_extra_cmt in module ida_lines: - -update_extra_cmt(*args) - update_extra_cmt(ea, what, str) - -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) -""" - -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" - -ida_lines.COLOR_CODE -""" -Single instruction. -""" - -ida_lines.COLOR_CURITEM -""" -Current item. -""" - -ida_lines.COLOR_CURLINE -""" -Current line. -""" - -ida_lines.COLOR_DATA -""" -Data bytes. -""" - -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Followed by a color code ( 'color_t' ). - -Escape character (OFF). -""" - -ida_lines.COLOR_ON -""" -Followed by a color code ( 'color_t' ). - -Escape character (ON). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. -""" - -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" - -ida_lines.SCOLOR_MACRO -""" -Macro. -""" - -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" - -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" - -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" - -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === -Help on function base2file in module ida_loader: - -base2file(*args) - base2file(fp, pos, ea1, ea2) -> int - - - Unload database to a binary file. This function works for wide byte - processors too. - - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) - @return: 1-ok(always), write error leads to immediate exit - -Help on function build_snapshot_tree in module ida_loader: - -build_snapshot_tree(*args) - build_snapshot_tree(root) -> bool - - - Build the snapshot tree. - - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) - @return: success - -Help on function clr_database_flag in module ida_loader: - -clr_database_flag(*args) - clr_database_flag(dbfl) - -Help on function extract_module_from_archive in module ida_loader: - -extract_module_from_archive(*args) - extract_module_from_archive(fname, is_remote=False) -> PyObject * - - - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. - - @param is_remote: is the input file remote? (C++: bool) - -Help on function file2base in module ida_loader: - -file2base(*args) - file2base(li, pos, ea1, ea2, patchable) -> int - - - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it enabled) - - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) - -Help on function find_plugin in module ida_loader: - -find_plugin(*args) - find_plugin(name, load_if_needed=False) -> plugin_t * - - - Find a user-defined plugin and optionally load it. - - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) - @return: pointer to plugin description block - -Help on function flush_buffers in module ida_loader: - -flush_buffers(*args) - flush_buffers() -> int - - - Flush buffers to the disk. - -Help on function gen_exe_file in module ida_loader: - -gen_exe_file(*args) - gen_exe_file(fp) -> int - - - Generate an exe file (unload the database in binary form). - - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file - -Help on function gen_file in module ida_loader: - -gen_file(*args) - gen_file(otype, fp, ea1, ea2, flags) -> int - - - Generate an output file. 'OFILE_EXE' : - - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) - @return: number of the generated lines. -1 if an error occurred - -Help on function get_basic_file_type in module ida_loader: - -get_basic_file_type(*args) - get_basic_file_type(li) -> filetype_t - - - Get the input file type. This function can recognize libraries and zip - files. - - @param li (C++: linput_t *) - -Help on function get_elf_debug_file_directory in module ida_loader: - -get_elf_debug_file_directory(*args) - get_elf_debug_file_directory() -> char const * - - - Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. - -Help on function get_file_type_name in module ida_loader: - -get_file_type_name(*args) - get_file_type_name() -> str - - - Get name of the current file type. The current file type is kept in - \inf{filetype}. - - @return: size of answer, this function always succeeds - -Help on function get_fileregion_ea in module ida_loader: - -get_fileregion_ea(*args) - get_fileregion_ea(offset) -> ea_t - - - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - - @param offset (C++: qoff64_t) - -Help on function get_fileregion_offset in module ida_loader: - -get_fileregion_offset(*args) - get_fileregion_offset(ea) -> qoff64_t - - - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - - @param ea (C++: ea_t) - -Help on function get_path in module ida_loader: - -get_path(*args) - get_path(pt) -> char const * - - - Get the file path - - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL - -Help on function get_plugin_options in module ida_loader: - -get_plugin_options(*args) - get_plugin_options(plugin) -> char const * - - - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - - @param plugin (C++: const char *) - -Help on class idp_desc_t in module ida_loader: - -class idp_desc_t(__builtin__.object) - | Proxy of C++ idp_desc_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> idp_desc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | checked - | idp_desc_t_checked_get(self) -> bool - | - | family - | idp_desc_t_family_get(self) -> qstring * - | - | is_script - | idp_desc_t_is_script_get(self) -> bool - | - | mtime - | idp_desc_t_mtime_get(self) -> time_t - | - | names - | idp_desc_t_names_get(self) -> idp_names_t * - | - | path - | idp_desc_t_path_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_idp_desc_t> - | delete_idp_desc_t(self) - -Help on class idp_name_t in module ida_loader: - -class idp_name_t(__builtin__.object) - | Proxy of C++ idp_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> idp_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | hidden - | idp_name_t_hidden_get(self) -> bool - | - | lname - | idp_name_t_lname_get(self) -> qstring * - | - | sname - | idp_name_t_sname_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_idp_name_t> - | delete_idp_name_t(self) - -Help on function is_database_flag in module ida_loader: - -is_database_flag(*args) - is_database_flag(dbfl) -> bool - - - Get the current database flag - - @param dbfl: flag Database flags (C++: uint32) - @return: the state of the flag (set or cleared) - -Help on function is_trusted_idb in module ida_loader: - -is_trusted_idb(*args) - is_trusted_idb() -> bool - - - Is the database considered as trusted? - -Help on function load_and_run_plugin in module ida_loader: - -load_and_run_plugin(*args) - load_and_run_plugin(name, arg) -> bool - - - Load & run a plugin. - - - @param name (C++: const char *) - @param arg (C++: size_t) - -Help on function load_binary_file in module ida_loader: - -load_binary_file(*args) - load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool - - - Load a binary file into the database. This function usually is called - from ui. - - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) - -Help on function load_ids_module in module ida_loader: - -load_ids_module(*args) - load_ids_module(fname) -> int - - - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - - @param fname: name of file to apply (C++: char *) - -Help on function load_plugin in module ida_loader: - -load_plugin(*args) - load_plugin(name) -> PyObject * - - - Loads a plugin - @return: - - None if plugin could not be loaded - - An opaque object representing the loaded plugin - -Help on class loader_t in module ida_loader: - -class loader_t(__builtin__.object) - | Proxy of C++ loader_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> loader_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | flags - | loader_t_flags_get(self) -> uint32 - | - | thisown - | The membership flag - | - | version - | loader_t_version_get(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_loader_t> - | delete_loader_t(self) - -Help on function mem2base in module ida_loader: - -mem2base(*args) - mem2base(py_mem, ea, fpos=-1) -> int - - - Load database from the memory. - @param mem: the buffer - @param ea: start linear addresses - @param fpos: position in the input file the data is taken from. - if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string - - Otherwise 1 is returned - -Help on class plugin_info_t in module ida_loader: - -class plugin_info_t(__builtin__.object) - | Proxy of C++ plugin_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> plugin_info_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | arg - | plugin_info_t_arg_get(self) -> size_t - | - | comment - | plugin_info_t_comment_get(self) -> char * - | - | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * - | - | entry - | plugin_info_t_entry_get(self) -> plugin_t * - | - | flags - | plugin_info_t_flags_get(self) -> int - | - | hotkey - | plugin_info_t_hotkey_get(self) -> ushort - | - | name - | plugin_info_t_name_get(self) -> char * - | - | next - | plugin_info_t_next_get(self) -> plugin_info_t - | - | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort - | - | org_name - | plugin_info_t_org_name_get(self) -> char * - | - | path - | plugin_info_t_path_get(self) -> char * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_plugin_info_t> - | delete_plugin_info_t(self) - -Help on function process_archive in module ida_loader: - -process_archive(*args) - process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str - - - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) - -Help on class qvector_snapshotvec_t in module ida_loader: - -class qvector_snapshotvec_t(__builtin__.object) - | Proxy of C++ qvector< snapshot_t * > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> snapshot_t - | - | __init__(self, *args) - | __init__(self) -> qvector_snapshotvec_t - | __init__(self, x) -> qvector_snapshotvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> snapshot_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< snapshot_t * >::iterator - | begin(self) -> qvector< snapshot_t * >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< snapshot_t * >::iterator - | end(self) -> qvector< snapshot_t * >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< snapshot_t * >::iterator - | erase(self, first, last) -> qvector< snapshot_t * >::iterator - | - | extract(self, *args) - | extract(self) -> snapshot_t ** - | - | find(self, *args) - | find(self, x) -> qvector< snapshot_t * >::iterator - | find(self, x) -> qvector< snapshot_t * >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< snapshot_t * >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> snapshot_t *& - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qvector_snapshotvec_t> - | delete_qvector_snapshotvec_t(self) - -Help on function reload_file in module ida_loader: - -reload_file(*args) - reload_file(file, is_remote) -> bool - - - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) - @return: success - -Help on function run_plugin in module ida_loader: - -run_plugin(*args) - run_plugin(plg, arg) -> bool - - - Runs a plugin - @param plg: A plugin object (returned by load_plugin()) - @return: Boolean - -Help on function save_database in module ida_loader: - -save_database(*args) - save_database(outfile, flags, root=None, attr=None) -> bool - - - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) - @return: success - -Help on function set_database_flag in module ida_loader: - -set_database_flag(*args) - set_database_flag(dbfl, cnd=True) - - - Set or clear database flag - - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) - -Help on function set_path in module ida_loader: - -set_path(*args) - set_path(pt, path) - - - Set the file path - - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) - -Help on class snapshot_t in module ida_loader: - -class snapshot_t(__builtin__.object) - | Proxy of C++ snapshot_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> snapshot_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t - | - | desc - | snapshot_t_desc_get(self) -> char [128] - | - | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] - | - | flags - | snapshot_t_flags_get(self) -> uint16 - | - | id - | snapshot_t_id_get(self) -> qtime64_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_snapshot_t> - | delete_snapshot_t(self) - -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE -""" -Specify that a file format is served by archive loader See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -form in the file. - -the data is kept in some encoded -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" - 'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" - 'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" - 'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" - 'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" - 'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -load as a code segment - -for 'load_binary_file()' : -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -into the database. - -This is the first file loaded -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place: - don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === -Help on class bookmarks_t in module ida_moves: - -class bookmarks_t(__builtin__.object) - | Proxy of C++ bookmarks_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | erase(*args) - | erase(e, index, ud) -> bool - | - | find_index(*args) - | find_index(e, ud) -> uint32 - | - | get(*args) - | get(out_entry, out_desc, index, ud) -> bool - | - | get_desc(*args) - | get_desc(e, index, ud) -> bool - | - | mark(*args) - | mark(e, index, title, desc, ud) -> uint32 - | - | size(*args) - | size(e, ud) -> uint32 - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - -Help on function bookmarks_t_erase in module ida_moves: - -bookmarks_t_erase(*args) - bookmarks_t_erase(e, index, ud) -> bool - -Help on function bookmarks_t_find_index in module ida_moves: - -bookmarks_t_find_index(*args) - bookmarks_t_find_index(e, ud) -> uint32 - -Help on function bookmarks_t_get in module ida_moves: - -bookmarks_t_get(*args) - bookmarks_t_get(out_entry, out_desc, index, ud) -> bool - -Help on function bookmarks_t_get_desc in module ida_moves: - -bookmarks_t_get_desc(*args) - bookmarks_t_get_desc(e, index, ud) -> str - -Help on function bookmarks_t_mark in module ida_moves: - -bookmarks_t_mark(*args) - bookmarks_t_mark(e, index, title, desc, ud) -> uint32 - -Help on function bookmarks_t_size in module ida_moves: - -bookmarks_t_size(*args) - bookmarks_t_size(e, ud) -> uint32 - -Help on class graph_location_info_t in module ida_moves: - -class graph_location_info_t(__builtin__.object) - | Proxy of C++ graph_location_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> graph_location_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | orgx - | graph_location_info_t_orgx_get(self) -> double - | - | orgy - | graph_location_info_t_orgy_get(self) -> double - | - | thisown - | The membership flag - | - | zoom - | graph_location_info_t_zoom_get(self) -> double - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_graph_location_info_t> - | delete_graph_location_info_t(self) - -Help on class lochist_entry_t in module ida_moves: - -class lochist_entry_t(__builtin__.object) - | Proxy of C++ lochist_entry_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> lochist_entry_t - | __init__(self, p, r) -> lochist_entry_t - | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | acquire_place(self, *args) - | acquire_place(self, in_p) - | - | is_valid(self, *args) - | is_valid(self) -> bool - | - | place(self, *args) - | place(self) -> place_t - | place(self) -> place_t - | - | renderer_info(self, *args) - | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t - | - | set_place(self, *args) - | set_place(self, p) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | plce - | lochist_entry_t_plce_get(self) -> place_t - | - | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lochist_entry_t> - | delete_lochist_entry_t(self) - -Help on class lochist_t in module ida_moves: - -class lochist_t(__builtin__.object) - | Proxy of C++ lochist_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> lochist_t - | - | __repr__ = _swig_repr(self) - | - | back(self, *args) - | back(self, cnt, try_to_unhide) -> bool - | - | clear(self, *args) - | clear(self) - | - | current_index(self, *args) - | current_index(self) -> uint32 - | - | fwd(self, *args) - | fwd(self, cnt, try_to_unhide) -> bool - | - | get(self, *args) - | get(self, out, index) -> bool - | - | get_current(self, *args) - | get_current(self) -> lochist_entry_t - | - | get_place_id(self, *args) - | get_place_id(self) -> int - | - | get_template_place(self, *args) - | get_template_place(self) -> place_t - | - | init(self, *args) - | init(self, stream_name, _defpos, _ud, _flags) -> bool - | - | is_history_enabled(self, *args) - | is_history_enabled(self) -> bool - | - | jump(self, *args) - | jump(self, try_to_unhide, e) - | - | netcode(self, *args) - | netcode(self) -> nodeidx_t - | - | save(self, *args) - | save(self) - | - | seek(self, *args) - | seek(self, index, try_to_unhide) -> bool - | - | set(self, *args) - | set(self, index, e) - | - | set_current(self, *args) - | set_current(self, e) - | - | size(self, *args) - | size(self) -> uint32 - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lochist_t> - | delete_lochist_t(self) - -Help on class renderer_info_pos_t in module ida_moves: - -class renderer_info_pos_t(__builtin__.object) - | Proxy of C++ renderer_info_pos_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> renderer_info_pos_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cx - | renderer_info_pos_t_cx_get(self) -> short - | - | cy - | renderer_info_pos_t_cy_get(self) -> short - | - | node - | renderer_info_pos_t_node_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_renderer_info_pos_t> - | delete_renderer_info_pos_t(self) - -Help on class renderer_info_t in module ida_moves: - -class renderer_info_t(__builtin__.object) - | Proxy of C++ renderer_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> renderer_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t - | - | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t - | - | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_renderer_info_t> - | delete_renderer_info_t(self) - -Help on class segm_move_info_t in module ida_moves: - -class segm_move_info_t(__builtin__.object) - | Proxy of C++ segm_move_info_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | _from - | segm_move_info_t__from_get(self) -> ea_t - | - | size - | segm_move_info_t_size_get(self) -> size_t - | - | thisown - | The membership flag - | - | to - | segm_move_info_t_to_get(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_segm_move_info_t> - | delete_segm_move_info_t(self) - -Help on class segm_move_info_vec_t in module ida_moves: - -class segm_move_info_vec_t(__builtin__.object) - | Proxy of C++ qvector< segm_move_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> segm_move_info_t - | - | __init__(self, *args) - | __init__(self) -> segm_move_info_vec_t - | __init__(self, x) -> segm_move_info_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> segm_move_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t - | - | erase(self, *args) - | erase(self, it) -> segm_move_info_t - | erase(self, first, last) -> segm_move_info_t - | - | extract(self, *args) - | extract(self) -> segm_move_info_t - | - | find(self, *args) - | find(self, x) -> segm_move_info_t - | find(self, x) -> segm_move_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=segm_move_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> segm_move_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> segm_move_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_segm_move_info_vec_t> - | delete_segm_move_info_vec_t(self) - -Help on class segm_move_infos_t in module ida_moves: - -class segm_move_infos_t(segm_move_info_vec_t) - | Proxy of C++ segm_move_infos_t class. - | - | Method resolution order: - | segm_move_infos_t - | segm_move_info_vec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> segm_move_infos_t - | - | __repr__ = _swig_repr(self) - | - | find(self, *args) - | find(self, ea) -> segm_move_info_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_segm_move_infos_t> - | delete_segm_move_infos_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from segm_move_info_vec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> segm_move_info_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> segm_move_info_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t - | - | erase(self, *args) - | erase(self, it) -> segm_move_info_t - | erase(self, first, last) -> segm_move_info_t - | - | extract(self, *args) - | extract(self) -> segm_move_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=segm_move_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> segm_move_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> segm_move_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from segm_move_info_vec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function get_switch_info in module ida_nalt: - -get_switch_info(*args) - get_switch_info(out, ea) -> ssize_t - -Help on function add_encoding in module ida_nalt: - -add_encoding(*args) - add_encoding(encoding) -> int - - - Add a new encoding (e.g. "UTF-8"). - - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index - -Help on class array_parameters_t in module ida_nalt: - -class array_parameters_t(__builtin__.object) - | Proxy of C++ array_parameters_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> array_parameters_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | alignment - | array_parameters_t_alignment_get(self) -> int32 - | - | flags - | array_parameters_t_flags_get(self) -> int32 - | - | lineitems - | array_parameters_t_lineitems_get(self) -> int32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_array_parameters_t> - | delete_array_parameters_t(self) - -Help on function clr__bnot0 in module ida_nalt: - -clr__bnot0(*args) - clr__bnot0(ea) - -Help on function clr__bnot1 in module ida_nalt: - -clr__bnot1(*args) - clr__bnot1(ea) - -Help on function clr__invsign0 in module ida_nalt: - -clr__invsign0(*args) - clr__invsign0(ea) - -Help on function clr__invsign1 in module ida_nalt: - -clr__invsign1(*args) - clr__invsign1(ea) - -Help on function clr_abits in module ida_nalt: - -clr_abits(*args) - clr_abits(ea, bits) - -Help on function clr_align_flow in module ida_nalt: - -clr_align_flow(*args) - clr_align_flow(ea) - -Help on function clr_colored_item in module ida_nalt: - -clr_colored_item(*args) - clr_colored_item(ea) - -Help on function clr_fixed_spd in module ida_nalt: - -clr_fixed_spd(*args) - clr_fixed_spd(ea) - -Help on function clr_has_lname in module ida_nalt: - -clr_has_lname(*args) - clr_has_lname(ea) - -Help on function clr_has_ti in module ida_nalt: - -clr_has_ti(*args) - clr_has_ti(ea) - -Help on function clr_has_ti0 in module ida_nalt: - -clr_has_ti0(*args) - clr_has_ti0(ea) - -Help on function clr_has_ti1 in module ida_nalt: - -clr_has_ti1(*args) - clr_has_ti1(ea) - -Help on function clr_libitem in module ida_nalt: - -clr_libitem(*args) - clr_libitem(ea) - -Help on function clr_lzero0 in module ida_nalt: - -clr_lzero0(*args) - clr_lzero0(ea) - -Help on function clr_lzero1 in module ida_nalt: - -clr_lzero1(*args) - clr_lzero1(ea) - -Help on function clr_noret in module ida_nalt: - -clr_noret(*args) - clr_noret(ea) - -Help on function clr_notcode in module ida_nalt: - -clr_notcode(*args) - clr_notcode(ea) - - - Clear not-code mark. - - - @param ea (C++: ea_t) - -Help on function clr_notproc in module ida_nalt: - -clr_notproc(*args) - clr_notproc(ea) - -Help on function clr_retfp in module ida_nalt: - -clr_retfp(*args) - clr_retfp(ea) - -Help on function clr_terse_struc in module ida_nalt: - -clr_terse_struc(*args) - clr_terse_struc(ea) - -Help on function clr_tilcmt in module ida_nalt: - -clr_tilcmt(*args) - clr_tilcmt(ea) - -Help on function clr_usemodsp in module ida_nalt: - -clr_usemodsp(*args) - clr_usemodsp(ea) - -Help on function clr_usersp in module ida_nalt: - -clr_usersp(*args) - clr_usersp(ea) - -Help on function clr_userti in module ida_nalt: - -clr_userti(*args) - clr_userti(ea) - -Help on function clr_zstroff in module ida_nalt: - -clr_zstroff(*args) - clr_zstroff(ea) - -Help on class custom_data_type_ids_fids_array in module ida_nalt: - -class custom_data_type_ids_fids_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< int16,8 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> short const & - | - | __init__(self, *args) - | __init__(self, data) -> custom_data_type_ids_fids_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_custom_data_type_ids_fids... - | delete_custom_data_type_ids_fids_array(self) - -Help on class custom_data_type_ids_t in module ida_nalt: - -class custom_data_type_ids_t(__builtin__.object) - | Proxy of C++ custom_data_type_ids_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> custom_data_type_ids_t - | - | __repr__ = _swig_repr(self) - | - | _custom_data_type_ids_t__getFids = __getFids(self, *args) - | __getFids(self) -> custom_data_type_ids_fids_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 - | - | fids - | __getFids(self) -> custom_data_type_ids_fids_array - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_custom_data_type_ids_t> - | delete_custom_data_type_ids_t(self) - -Help on function dbg_get_input_path in module ida_nalt: - -dbg_get_input_path(*args) - dbg_get_input_path() -> str - - - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) - -Help on function del_absbase in module ida_nalt: - -del_absbase(*args) - del_absbase(ea) - -Help on function del_aflags in module ida_nalt: - -del_aflags(*args) - del_aflags(ea) - -Help on function del_alignment in module ida_nalt: - -del_alignment(*args) - del_alignment(ea) - -Help on function del_array_parameters in module ida_nalt: - -del_array_parameters(*args) - del_array_parameters(ea) - -Help on function del_custom_data_type_ids in module ida_nalt: - -del_custom_data_type_ids(*args) - del_custom_data_type_ids(ea) - -Help on function del_encoding in module ida_nalt: - -del_encoding(*args) - del_encoding(idx) -> bool - - - Delete an encoding (1-based) - - - @param idx (C++: int) - -Help on function del_ind_purged in module ida_nalt: - -del_ind_purged(*args) - del_ind_purged(ea) - -Help on function del_item_color in module ida_nalt: - -del_item_color(*args) - del_item_color(ea) -> bool - -Help on function del_op_tinfo in module ida_nalt: - -del_op_tinfo(*args) - del_op_tinfo(ea, n) - -Help on function del_refinfo in module ida_nalt: - -del_refinfo(*args) - del_refinfo(ea, n) -> bool - -Help on function del_source_linnum in module ida_nalt: - -del_source_linnum(*args) - del_source_linnum(ea) - -Help on function del_str_type in module ida_nalt: - -del_str_type(*args) - del_str_type(ea) - -Help on function del_switch_info in module ida_nalt: - -del_switch_info(*args) - del_switch_info(ea) - -Help on function del_switch_parent in module ida_nalt: - -del_switch_parent(*args) - del_switch_parent(ea) - -Help on function del_tinfo in module ida_nalt: - -del_tinfo(*args) - del_tinfo(ea) - -Help on function delete_imports in module ida_nalt: - -delete_imports(*args) - delete_imports() - - - Delete all imported modules information. - -Help on function ea2node in module ida_nalt: - -ea2node(*args) - ea2node(ea) -> nodeidx_t - - - Get netnode for the specified address. - - - @param ea (C++: ea_t) - -Help on function encoding_from_strtype in module ida_nalt: - -encoding_from_strtype(*args) - encoding_from_strtype(strtype) -> char const * - - - Get encoding name for this strtype. - - - @param strtype (C++: int32) - -Help on class enum_const_t in module ida_nalt: - -class enum_const_t(__builtin__.object) - | Proxy of C++ enum_const_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> enum_const_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | serial - | enum_const_t_serial_get(self) -> uchar - | - | thisown - | The membership flag - | - | tid - | enum_const_t_tid_get(self) -> tid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_enum_const_t> - | delete_enum_const_t(self) - -Help on function enum_import_names in module ida_nalt: - -enum_import_names(*args) - enum_import_names(mod_index, py_cb) -> int - - - Enumerate imports from a specific module. - Please refer to ex_imports.py example. - - @param mod_index: The module index - @param callback: A callable object that will be invoked with an ea, name (could be None) and ordinal. - @return: 1-finished ok, -1 on error, otherwise callback return value (<=0) - -Help on function find_custom_refinfo in module ida_nalt: - -find_custom_refinfo(*args) - find_custom_refinfo(name) -> int - - - Get id of a custom refinfo type. - - - @param name (C++: const char *) - -Help on function get_abi_name in module ida_nalt: - -get_abi_name(*args) - -Help on function get_absbase in module ida_nalt: - -get_absbase(*args) - get_absbase(ea) -> ea_t - -Help on function get_aflags in module ida_nalt: - -get_aflags(*args) - get_aflags(ea) -> uint32 - -Help on function get_alignment in module ida_nalt: - -get_alignment(*args) - get_alignment(ea) -> uint32 - -Help on function get_archive_path in module ida_nalt: - -get_archive_path(*args) - get_archive_path() -> str - - - Get archive file path from which input file was extracted. - -Help on function get_array_parameters in module ida_nalt: - -get_array_parameters(*args) - get_array_parameters(out, ea) -> ssize_t - -Help on function get_asm_inc_file in module ida_nalt: - -get_asm_inc_file(*args) - get_asm_inc_file() -> str - - - Get name of the include file. - -Help on function get_custom_data_type_ids in module ida_nalt: - -get_custom_data_type_ids(*args) - get_custom_data_type_ids(cdis, ea) -> int - -Help on function get_custom_refinfo in module ida_nalt: - -get_custom_refinfo(*args) - get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - - - Get definition of a registered custom refinfo type. - - - @param crid (C++: int) - -Help on function get_default_encoding_idx in module ida_nalt: - -get_default_encoding_idx(*args) - get_default_encoding_idx(bpu) -> int - - - Get default encoding index for a specific string type. - - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) - -Help on function get_encoding_bpu in module ida_nalt: - -get_encoding_bpu(*args) - get_encoding_bpu(idx) -> int - - - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - - @param idx: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error - -Help on function get_encoding_name in module ida_nalt: - -get_encoding_name(*args) - get_encoding_name(idx) -> char const * - - - Get encoding name for specific index (1-based). - - @param idx (C++: int) - @return: NULL if idx is out of bounds - -Help on function get_encoding_qty in module ida_nalt: - -get_encoding_qty(*args) - get_encoding_qty() -> int - - - Get total number of encodings (counted from 0) - -Help on function get_gotea in module ida_nalt: - -get_gotea(*args) - get_gotea() -> ea_t - -Help on function get_ids_modnode in module ida_nalt: - -get_ids_modnode(*args) - get_ids_modnode() -> netnode - - - Get ids modnode. - -Help on function get_imagebase in module ida_nalt: - -get_imagebase(*args) - get_imagebase() -> ea_t - - - Get image base address. - -Help on function get_import_module_name in module ida_nalt: - -get_import_module_name(*args) - get_import_module_name(mod_index) -> PyObject * - - - Returns the name of an imported module given its index - @return: None or the module name - -Help on function get_import_module_qty in module ida_nalt: - -get_import_module_qty(*args) - get_import_module_qty() -> uint - - - Get number of import modules. - -Help on function get_ind_purged in module ida_nalt: - -get_ind_purged(*args) - get_ind_purged(ea) -> ea_t - -Help on function get_input_file_path in module ida_nalt: - -get_input_file_path(*args) - get_input_file_path() -> str - - - Get full path of the input file. - -Help on function get_item_color in module ida_nalt: - -get_item_color(*args) - get_item_color(ea) -> bgcolor_t - -Help on function get_op_tinfo in module ida_nalt: - -get_op_tinfo(*args) - get_op_tinfo(tif, ea, n) -> bool - -Help on function get_outfile_encoding_idx in module ida_nalt: - -get_outfile_encoding_idx(*args) - get_outfile_encoding_idx() -> int - - - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used - -Help on function get_refinfo in module ida_nalt: - -get_refinfo(*args) - get_refinfo(ri, ea, n) -> bool - -Help on function get_reftype_by_size in module ida_nalt: - -get_reftype_by_size(*args) - get_reftype_by_size(size) -> reftype_t - - - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - - @param size (C++: size_t) - -Help on function get_root_filename in module ida_nalt: - -get_root_filename(*args) - get_root_filename() -> str - - - Get file name only of the input file. - -Help on function get_source_linnum in module ida_nalt: - -get_source_linnum(*args) - get_source_linnum(ea) -> uval_t - -Help on function get_str_encoding_idx in module ida_nalt: - -get_str_encoding_idx(*args) - get_str_encoding_idx(strtype) -> uchar - - - Get index of the string encoding for this string. - - - @param strtype (C++: int32) - -Help on function get_str_term1 in module ida_nalt: - -get_str_term1(*args) - get_str_term1(strtype) -> char - -Help on function get_str_term2 in module ida_nalt: - -get_str_term2(*args) - get_str_term2(strtype) -> char - -Help on function get_str_type in module ida_nalt: - -get_str_type(*args) - get_str_type(ea) -> uint32 - -Help on function get_str_type_code in module ida_nalt: - -get_str_type_code(*args) - get_str_type_code(strtype) -> uchar - -Help on function get_strtype_bpu in module ida_nalt: - -get_strtype_bpu(*args) - get_strtype_bpu(strtype) -> int - -Help on function get_switch_info in module ida_nalt: - -get_switch_info(*args) - -Help on function get_switch_parent in module ida_nalt: - -get_switch_parent(*args) - get_switch_parent(ea) -> ea_t - -Help on function get_tinfo in module ida_nalt: - -get_tinfo(*args) - get_tinfo(tif, ea) -> bool - -Help on function getnode in module ida_nalt: - -getnode(*args) - getnode(ea) -> netnode - -Help on function has_lname in module ida_nalt: - -has_lname(*args) - has_lname(ea) -> bool - -Help on function has_ti in module ida_nalt: - -has_ti(*args) - has_ti(ea) -> bool - -Help on function has_ti0 in module ida_nalt: - -has_ti0(*args) - has_ti0(ea) -> bool - -Help on function has_ti1 in module ida_nalt: - -has_ti1(*args) - has_ti1(ea) -> bool - -Help on function hide_border in module ida_nalt: - -hide_border(*args) - hide_border(ea) - -Help on function hide_item in module ida_nalt: - -hide_item(*args) - hide_item(ea) - -Help on function is__bnot0 in module ida_nalt: - -is__bnot0(*args) - is__bnot0(ea) -> bool - -Help on function is__bnot1 in module ida_nalt: - -is__bnot1(*args) - is__bnot1(ea) -> bool - -Help on function is__invsign0 in module ida_nalt: - -is__invsign0(*args) - is__invsign0(ea) -> bool - -Help on function is__invsign1 in module ida_nalt: - -is__invsign1(*args) - is__invsign1(ea) -> bool - -Help on function is_align_flow in module ida_nalt: - -is_align_flow(*args) - is_align_flow(ea) -> bool - -Help on function is_colored_item in module ida_nalt: - -is_colored_item(*args) - is_colored_item(ea) -> bool - -Help on function is_finally_visible_item in module ida_nalt: - -is_finally_visible_item(*args) - is_finally_visible_item(ea) -> bool - - - Is instruction visible? - - - @param ea (C++: ea_t) - -Help on function is_fixed_spd in module ida_nalt: - -is_fixed_spd(*args) - is_fixed_spd(ea) -> bool - -Help on function is_hidden_border in module ida_nalt: - -is_hidden_border(*args) - is_hidden_border(ea) -> bool - -Help on function is_hidden_item in module ida_nalt: - -is_hidden_item(*args) - is_hidden_item(ea) -> bool - -Help on function is_libitem in module ida_nalt: - -is_libitem(*args) - is_libitem(ea) -> bool - -Help on function is_lzero0 in module ida_nalt: - -is_lzero0(*args) - is_lzero0(ea) -> bool - -Help on function is_lzero1 in module ida_nalt: - -is_lzero1(*args) - is_lzero1(ea) -> bool - -Help on function is_noret in module ida_nalt: - -is_noret(*args) - is_noret(ea) -> bool - -Help on function is_notcode in module ida_nalt: - -is_notcode(*args) - is_notcode(ea) -> bool - - - Is the address marked as not-code? - - - @param ea (C++: ea_t) - -Help on function is_notproc in module ida_nalt: - -is_notproc(*args) - is_notproc(ea) -> bool - -Help on function is_pascal in module ida_nalt: - -is_pascal(*args) - is_pascal(strtype) -> bool - -Help on function is_reftype_target_optional in module ida_nalt: - -is_reftype_target_optional(*args) - is_reftype_target_optional(type) -> bool - - - Can the target be calculated using operand value? - - - @param type (C++: reftype_t) - -Help on function is_retfp in module ida_nalt: - -is_retfp(*args) - is_retfp(ea) -> bool - -Help on function is_terse_struc in module ida_nalt: - -is_terse_struc(*args) - is_terse_struc(ea) -> bool - -Help on function is_tilcmt in module ida_nalt: - -is_tilcmt(*args) - is_tilcmt(ea) -> bool - -Help on function is_usersp in module ida_nalt: - -is_usersp(*args) - is_usersp(ea) -> bool - -Help on function is_userti in module ida_nalt: - -is_userti(*args) - is_userti(ea) -> bool - -Help on function is_visible_item in module ida_nalt: - -is_visible_item(*args) - is_visible_item(ea) -> bool - - - Test visibility of item at given ea. - - - @param ea (C++: ea_t) - -Help on function is_zstroff in module ida_nalt: - -is_zstroff(*args) - is_zstroff(ea) -> bool - -Help on function node2ea in module ida_nalt: - -node2ea(*args) - node2ea(ndx) -> ea_t - -Help on class opinfo_t in module ida_nalt: - -class opinfo_t(__builtin__.object) - | Proxy of C++ opinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> opinfo_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t - | - | ec - | opinfo_t_ec_get(self) -> enum_const_t - | - | path - | opinfo_t_path_get(self) -> strpath_t - | - | ri - | opinfo_t_ri_get(self) -> refinfo_t - | - | strtype - | opinfo_t_strtype_get(self) -> int32 - | - | thisown - | The membership flag - | - | tid - | opinfo_t_tid_get(self) -> tid_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_opinfo_t> - | delete_opinfo_t(self) - -Help on class printop_t in module ida_nalt: - -class printop_t(__builtin__.object) - | Proxy of C++ printop_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> printop_t - | - | __repr__ = _swig_repr(self) - | - | get_ti(self, *args) - | get_ti(self) -> opinfo_t - | - | is_aflags_initialized(self, *args) - | is_aflags_initialized(self) -> bool - | - | is_ti_initialized(self, *args) - | is_ti_initialized(self) -> bool - | - | set_aflags_initialized(self, *args) - | set_aflags_initialized(self, v=True) - | - | set_ti_initialized(self, *args) - | set_ti_initialized(self, v=True) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | aflags - | printop_t_aflags_get(self) -> flags_t - | - | features - | printop_t_features_get(self) -> uchar - | - | flags - | printop_t_flags_get(self) -> flags_t - | - | is_ti_valid - | is_ti_initialized(self) -> bool - | - | suspop - | printop_t_suspop_get(self) -> int - | - | thisown - | The membership flag - | - | ti - | printop_t_ti_get(self) -> opinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_printop_t> - | delete_printop_t(self) - -Help on class refinfo_t in module ida_nalt: - -class refinfo_t(__builtin__.object) - | Proxy of C++ refinfo_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> refinfo_t - | - | __repr__ = _swig_repr(self) - | - | init(self, *args) - | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_pastend(self, *args) - | is_pastend(self) -> bool - | - | is_rvaoff(self, *args) - | is_rvaoff(self) -> bool - | - | is_signed(self, *args) - | is_signed(self) -> bool - | - | is_subtract(self, *args) - | is_subtract(self) -> bool - | - | is_target_optional(self, *args) - | is_target_optional(self) -> bool - | - | no_base_xref(self, *args) - | no_base_xref(self) -> bool - | - | set_type(self, *args) - | set_type(self, t) - | - | type(self, *args) - | type(self) -> reftype_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | base - | refinfo_t_base_get(self) -> ea_t - | - | flags - | refinfo_t_flags_get(self) -> uint32 - | - | target - | refinfo_t_target_get(self) -> ea_t - | - | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_refinfo_t> - | delete_refinfo_t(self) - -Help on function rename_encoding in module ida_nalt: - -rename_encoding(*args) - rename_encoding(idx, encoding) -> bool - - - Change name for an encoding (1-based) - - - @param idx (C++: int) - @param encoding (C++: const char *) - -Help on function retrieve_input_file_crc32 in module ida_nalt: - -retrieve_input_file_crc32(*args) - retrieve_input_file_crc32() -> uint32 - - - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. - -Help on function retrieve_input_file_md5 in module ida_nalt: - -retrieve_input_file_md5(*args) - retrieve_input_file_md5() -> str - - - Get input file md5. - -Help on function retrieve_input_file_sha256 in module ida_nalt: - -retrieve_input_file_sha256(*args) - retrieve_input_file_sha256() -> str - - - Get input file sha256. - -Help on function retrieve_input_file_size in module ida_nalt: - -retrieve_input_file_size(*args) - retrieve_input_file_size() -> uint32 - - - Get size of input file in bytes. - -Help on function set__bnot0 in module ida_nalt: - -set__bnot0(*args) - set__bnot0(ea) - -Help on function set__bnot1 in module ida_nalt: - -set__bnot1(*args) - set__bnot1(ea) - -Help on function set__invsign0 in module ida_nalt: - -set__invsign0(*args) - set__invsign0(ea) - -Help on function set__invsign1 in module ida_nalt: - -set__invsign1(*args) - set__invsign1(ea) - -Help on function set_abits in module ida_nalt: - -set_abits(*args) - set_abits(ea, bits) - -Help on function set_absbase in module ida_nalt: - -set_absbase(*args) - set_absbase(ea, x) - -Help on function set_aflags in module ida_nalt: - -set_aflags(*args) - set_aflags(ea, flags) - -Help on function set_align_flow in module ida_nalt: - -set_align_flow(*args) - set_align_flow(ea) - -Help on function set_alignment in module ida_nalt: - -set_alignment(*args) - set_alignment(ea, x) - -Help on function set_archive_path in module ida_nalt: - -set_archive_path(*args) - set_archive_path(file) -> bool - - - Set archive file path from which input file was extracted. - - - @param file (C++: const char *) - -Help on function set_array_parameters in module ida_nalt: - -set_array_parameters(*args) - set_array_parameters(ea, _in) - -Help on function set_asm_inc_file in module ida_nalt: - -set_asm_inc_file(*args) - set_asm_inc_file(file) -> bool - - - Set name of the include file. - - - @param file (C++: const char *) - -Help on function set_colored_item in module ida_nalt: - -set_colored_item(*args) - set_colored_item(ea) - -Help on function set_custom_data_type_ids in module ida_nalt: - -set_custom_data_type_ids(*args) - set_custom_data_type_ids(ea, cdis) - -Help on function set_default_encoding_idx in module ida_nalt: - -set_default_encoding_idx(*args) - set_default_encoding_idx(bpu, idx) -> bool - - - set default encoding for a string type - - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) - -Help on function set_fixed_spd in module ida_nalt: - -set_fixed_spd(*args) - set_fixed_spd(ea) - -Help on function set_gotea in module ida_nalt: - -set_gotea(*args) - set_gotea(gotea) - -Help on function set_has_lname in module ida_nalt: - -set_has_lname(*args) - set_has_lname(ea) - -Help on function set_has_ti in module ida_nalt: - -set_has_ti(*args) - set_has_ti(ea) - -Help on function set_has_ti0 in module ida_nalt: - -set_has_ti0(*args) - set_has_ti0(ea) - -Help on function set_has_ti1 in module ida_nalt: - -set_has_ti1(*args) - set_has_ti1(ea) - -Help on function set_ids_modnode in module ida_nalt: - -set_ids_modnode(*args) - set_ids_modnode(id) - - - Set ids modnode. - - - @param id (C++: netnode) - -Help on function set_imagebase in module ida_nalt: - -set_imagebase(*args) - set_imagebase(base) - - - Set image base address. - - - @param base (C++: ea_t) - -Help on function set_item_color in module ida_nalt: - -set_item_color(*args) - set_item_color(ea, color) - -Help on function set_libitem in module ida_nalt: - -set_libitem(*args) - set_libitem(ea) - -Help on function set_lzero0 in module ida_nalt: - -set_lzero0(*args) - set_lzero0(ea) - -Help on function set_lzero1 in module ida_nalt: - -set_lzero1(*args) - set_lzero1(ea) - -Help on function set_noret in module ida_nalt: - -set_noret(*args) - set_noret(ea) - -Help on function set_notcode in module ida_nalt: - -set_notcode(*args) - set_notcode(ea) - - - Mark address so that it cannot be converted to instruction. - - - @param ea (C++: ea_t) - -Help on function set_notproc in module ida_nalt: - -set_notproc(*args) - set_notproc(ea) - -Help on function set_op_tinfo in module ida_nalt: - -set_op_tinfo(*args) - set_op_tinfo(ea, n, tif) -> bool - -Help on function set_outfile_encoding_idx in module ida_nalt: - -set_outfile_encoding_idx(*args) - set_outfile_encoding_idx(idx) -> bool - - - set encoding to be used when producing files - - @param idx: the encoding index idx can be 0 to use the IDB's default 1 - -byte-per-unit encoding (C++: int) - -Help on function set_refinfo in module ida_nalt: - -set_refinfo(*args) - set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool - -Help on function set_refinfo_ex in module ida_nalt: - -set_refinfo_ex(*args) - set_refinfo_ex(ea, n, ri) -> bool - -Help on function set_retfp in module ida_nalt: - -set_retfp(*args) - set_retfp(ea) - -Help on function set_root_filename in module ida_nalt: - -set_root_filename(*args) - set_root_filename(file) - - - Set full path of the input file. - - - @param file (C++: const char *) - -Help on function set_source_linnum in module ida_nalt: - -set_source_linnum(*args) - set_source_linnum(ea, lnnum) - -Help on function set_str_type in module ida_nalt: - -set_str_type(*args) - set_str_type(ea, x) - -Help on function set_switch_info in module ida_nalt: - -set_switch_info(*args) - set_switch_info(ea, _in) - -Help on function set_switch_parent in module ida_nalt: - -set_switch_parent(*args) - set_switch_parent(ea, x) - -Help on function set_terse_struc in module ida_nalt: - -set_terse_struc(*args) - set_terse_struc(ea) - -Help on function set_tilcmt in module ida_nalt: - -set_tilcmt(*args) - set_tilcmt(ea) - -Help on function set_tinfo in module ida_nalt: - -set_tinfo(*args) - set_tinfo(ea, tif) -> bool - -Help on function set_usemodsp in module ida_nalt: - -set_usemodsp(*args) - set_usemodsp(ea) - -Help on function set_usersp in module ida_nalt: - -set_usersp(*args) - set_usersp(ea) - -Help on function set_userti in module ida_nalt: - -set_userti(*args) - set_userti(ea) - -Help on function set_visible_item in module ida_nalt: - -set_visible_item(*args) - set_visible_item(ea, visible) - - - Change visibility of item at given ea. - - - @param ea (C++: ea_t) - @param visible (C++: bool) - -Help on function set_zstroff in module ida_nalt: - -set_zstroff(*args) - set_zstroff(ea) - -Help on class strpath_ids_array in module ida_nalt: - -class strpath_ids_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< tid_t,32 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ - | - | __init__(self, *args) - | __init__(self, data) -> strpath_ids_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_strpath_ids_array> - | delete_strpath_ids_array(self) - -Help on class strpath_t in module ida_nalt: - -class strpath_t(__builtin__.object) - | Proxy of C++ strpath_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> strpath_t - | - | __repr__ = _swig_repr(self) - | - | _strpath_t__getIds = __getIds(self, *args) - | __getIds(self) -> strpath_ids_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | delta - | strpath_t_delta_get(self) -> adiff_t - | - | ids - | __getIds(self) -> strpath_ids_array - | - | len - | strpath_t_len_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_strpath_t> - | delete_strpath_t(self) - -Help on class switch_info_t in module ida_nalt: - -class switch_info_t(__builtin__.object) - | Proxy of C++ switch_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> switch_info_t - | - | __repr__ = _swig_repr(self) - | - | _get_values_lowcase(self, *args) - | _get_values_lowcase(self) -> ea_t - | - | _set_values_lowcase(self, *args) - | _set_values_lowcase(self, values) - | - | assign(self, *args) - | assign(self, other) - | - | clear(self, *args) - | clear(self) - | - | get_jrange_vrange(self, *args) - | get_jrange_vrange(self, jrange=None, vrange=None) -> bool - | - | get_jtable_element_size(self, *args) - | get_jtable_element_size(self) -> int - | - | get_jtable_size(self, *args) - | get_jtable_size(self) -> int - | - | get_lowcase(self, *args) - | get_lowcase(self) -> sval_t - | - | get_shift(self, *args) - | get_shift(self) -> int - | - | get_version(self, *args) - | get_version(self) -> int - | - | get_vtable_element_size(self, *args) - | get_vtable_element_size(self) -> int - | - | has_default(self, *args) - | has_default(self) -> bool - | - | has_elbase(self, *args) - | has_elbase(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_indirect(self, *args) - | is_indirect(self) -> bool - | - | is_nolowcase(self, *args) - | is_nolowcase(self) -> bool - | - | is_sparse(self, *args) - | is_sparse(self) -> bool - | - | is_subtract(self, *args) - | is_subtract(self) -> bool - | - | set_elbase(self, *args) - | set_elbase(self, base) - | - | set_expr(self, *args) - | set_expr(self, r, dt) - | - | set_jtable_element_size(self, *args) - | set_jtable_element_size(self, size) - | - | set_jtable_size(self, *args) - | set_jtable_size(self, size) - | - | set_shift(self, *args) - | set_shift(self, shift) - | - | set_vtable_element_size(self, *args) - | set_vtable_element_size(self, size) - | - | use_std_table(self, *args) - | use_std_table(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | custom - | switch_info_t_custom_get(self) -> uval_t - | - | defjump - | switch_info_t_defjump_get(self) -> ea_t - | - | elbase - | switch_info_t_elbase_get(self) -> ea_t - | - | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t - | - | flags - | switch_info_t_flags_get(self) -> uint32 - | - | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t - | - | jcases - | switch_info_t_jcases_get(self) -> int - | - | jumps - | switch_info_t_jumps_get(self) -> ea_t - | - | lowcase - | _get_values_lowcase(self) -> ea_t - | - | marks - | switch_info_t_marks_get(self) -> eavec_t * - | - | ncases - | switch_info_t_ncases_get(self) -> ushort - | - | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t - | - | regnum - | switch_info_t_regnum_get(self) -> int - | - | startea - | switch_info_t_startea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | values - | _get_values_lowcase(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | SWITCH_INFO_VERSION = 2 - | - | __swig_destroy__ = <built-in function delete_switch_info_t> - | delete_switch_info_t(self) - -Help on function switch_info_t__from_ptrval__ in module ida_nalt: - -switch_info_t__from_ptrval__(*args) - switch_info_t__from_ptrval__(ptrval) -> switch_info_t - -Help on function unhide_border in module ida_nalt: - -unhide_border(*args) - unhide_border(ea) - -Help on function unhide_item in module ida_nalt: - -unhide_item(*args) - unhide_item(ea) - -Help on function uses_modsp in module ida_nalt: - -uses_modsp(*args) - uses_modsp(ea) -> bool - -Help on function validate_idb_names in module ida_nalt: - -validate_idb_names(*args) - validate_idb_names(do_repair) -> int - -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -should not be modified by modules - -sp delta value is fixed by analysis. -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ) -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_USEMODSP -""" -example: pop [rsp+N] - -insn modifes SP and uses the modified value -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -(comes from the user or type library) - -the type information is definitive. -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal -""" - -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -(should by equal to power of 2) - -alignment value if the item is 'FF_ALIGN' -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 -""" - -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference the kernel will call \\ph{notify}(ph.custom_offset, -.... that can change all arguments used for calculations. This flag is -useful for custom fixups -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference type -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name -""" - -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTED_EXTLANG -""" -last selected extlang name (from the execute script box) -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -segment will be used) - -elbase is present (otherwise the base of the switch -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -(for sparse switches) - -value table elements are used as indexes into the jump table -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -for first entry in values table) - -jumptable is inversed. (last entry is -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_RESERVED -""" -was: SWI_DEFAULT -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" - -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -otherwise lowcase present - -sparse switch (value table present) -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" - -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === -Help on class NearestName in module ida_name: - -class NearestName(__builtin__.object) - | Utility class to help find the nearest name in a given ea/name dictionary - | - | Methods defined here: - | - | __getitem__(self, index) - | Returns the tupple (ea, name, index) - | - | __init__(self, ea_names) - | - | __iter__(self) - | - | _get_item(self, index) - | - | find(self, ea) - | Returns a tupple (ea, name, pos) that is the nearest to the passed ea - | If no name is matched then None is returned - | - | update(self, ea_names) - | Updates the ea/names map - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function append_struct_fields in module ida_name: - -append_struct_fields(*args) - append_struct_fields(disp, n, path, flags, delta, appzero) -> str - - - Append names of struct fields to a name if the name is a struct name. - - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) - @return: flags of the innermost struct member or the input flags - -Help on function calc_gtn_flags in module ida_name: - -calc_gtn_flags(fromaddr, ea) - Calculate flags for get_ea_name() function - - @param fromaddr: the referring address. May be BADADDR. - @param ea: linear address - - @return: flags - -Help on function cleanup_name in module ida_name: - -cleanup_name(*args) - cleanup_name(ea, name, flags=0) -> str - -Help on function del_debug_names in module ida_name: - -del_debug_names(*args) - del_debug_names(ea1, ea2) - -Help on function del_global_name in module ida_name: - -del_global_name(*args) - del_global_name(ea) -> bool - -Help on function del_local_name in module ida_name: - -del_local_name(*args) - del_local_name(ea) -> bool - -Help on function demangle_name in module ida_name: - -demangle_name(*args) - demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - - - Demangle a name. - - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp - -Help on class ea_name_t in module ida_name: - -class ea_name_t(__builtin__.object) - | Proxy of C++ ea_name_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ea_name_t - | __init__(self, _ea, _name) -> ea_name_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | ea_name_t_ea_get(self) -> ea_t - | - | name - | ea_name_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ea_name_t> - | delete_ea_name_t(self) - -Help on class ea_name_vec_t in module ida_name: - -class ea_name_vec_t(__builtin__.object) - | Proxy of C++ qvector< ea_name_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> ea_name_t - | - | __init__(self, *args) - | __init__(self) -> ea_name_vec_t - | __init__(self, x) -> ea_name_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> ea_name_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> ea_name_t - | begin(self) -> ea_name_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> ea_name_t - | end(self) -> ea_name_t - | - | erase(self, *args) - | erase(self, it) -> ea_name_t - | erase(self, first, last) -> ea_name_t - | - | extract(self, *args) - | extract(self) -> ea_name_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=ea_name_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> ea_name_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> ea_name_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ea_name_vec_t> - | delete_ea_name_vec_t(self) - -Help on function extract_name in module ida_name: - -extract_name(*args) - extract_name(line, x) -> str - - - Extract a name or address from the specified string. - - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) - @return: -1 if cannot extract. otherwise length of the name - -Help on function force_name in module ida_name: - -force_name(*args) - force_name(ea, name, flags=0) -> bool - -Help on function get_colored_demangled_name in module ida_name: - -get_colored_demangled_name(*args) - get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - -Help on function get_colored_long_name in module ida_name: - -get_colored_long_name(*args) - get_colored_long_name(ea, gtn_flags=0) -> qstring - -Help on function get_colored_name in module ida_name: - -get_colored_name(*args) - get_colored_name(ea) -> qstring - -Help on function get_colored_short_name in module ida_name: - -get_colored_short_name(*args) - get_colored_short_name(ea, gtn_flags=0) -> qstring - -Help on function get_cp_validity in module ida_name: - -get_cp_validity(*args) - get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool - - - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - -Help on function get_debug_name in module ida_name: - -get_debug_name(*args) - get_debug_name(ea_ptr, how) -> str - -Help on function get_debug_name_ea in module ida_name: - -get_debug_name_ea(*args) - get_debug_name_ea(name) -> ea_t - -Help on function get_debug_names in module ida_name: - -get_debug_names(*args) - get_debug_names(names, ea1, ea2) - get_debug_names(ea1, ea2, return_list=False) -> PyObject * - -Help on function get_demangled_name in module ida_name: - -get_demangled_name(*args) - get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring - -Help on function get_ea_name in module ida_name: - -get_ea_name(*args) - get_ea_name(ea, gtn_flags=0) -> qstring - - - Get name at the specified address. - - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) - @return: success - -Help on function get_long_name in module ida_name: - -get_long_name(*args) - get_long_name(ea, gtn_flags=0) -> qstring - -Help on function get_name in module ida_name: - -get_name(*args) - get_name(ea) -> qstring - -Help on function get_name_base_ea in module ida_name: - -get_name_base_ea(*args) - get_name_base_ea(_from, to) -> ea_t - - - Get address of the name used in the expression for the address - - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) - @return: address of the name used to represent the operand - -Help on function get_name_color in module ida_name: - -get_name_color(*args) - get_name_color(_from, ea) -> color_t - - - Calculate flags for 'get_ea_name()' function. - - Get name color. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) - -Help on function get_name_ea in module ida_name: - -get_name_ea(*args) - get_name_ea(_from, name) -> ea_t - - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR - -Help on function get_name_expr in module ida_name: - -get_name_expr(*args) - get_name_expr(_from, n, ea, off, flags=0x0001) -> str - - - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. - -Help on function get_name_value in module ida_name: - -get_name_value(*args) - get_name_value(_from, name) -> int - - - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: Name value result codes - -Help on function get_nice_colored_name in module ida_name: - -get_nice_colored_name(*args) - get_nice_colored_name(ea, flags=0) -> str - - - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - - @param ea (C++: ea_t) - @param flags (C++: int) - @return: the length of the generated name in bytes. - -Help on function get_nlist_ea in module ida_name: - -get_nlist_ea(*args) - get_nlist_ea(idx) -> ea_t - - - Get address from the list at 'idx'. - - - @param idx (C++: size_t) - -Help on function get_nlist_idx in module ida_name: - -get_nlist_idx(*args) - get_nlist_idx(ea) -> size_t - - - Get index of the name in the listreturns the closest match. may return - idx >= size. - - @param ea (C++: ea_t) - -Help on function get_nlist_name in module ida_name: - -get_nlist_name(*args) - get_nlist_name(idx) -> char const * - - - Get name using idx. - - - @param idx (C++: size_t) - -Help on function get_nlist_size in module ida_name: - -get_nlist_size(*args) - get_nlist_size() -> size_t - - - Get number of names in the list. - -Help on function get_short_name in module ida_name: - -get_short_name(*args) - get_short_name(ea, gtn_flags=0) -> qstring - -Help on function get_visible_name in module ida_name: - -get_visible_name(*args) - get_visible_name(ea, gtn_flags=0) -> qstring - -Help on function hide_name in module ida_name: - -hide_name(*args) - hide_name(ea) - - - Remove name from the list of names - - @param ea: address of the name (C++: ea_t) - -Help on function is_ident in module ida_name: - -is_ident(*args) - is_ident(name) -> bool - - - Is a valid name? (including ::MangleChars) - - - @param name (C++: const char *) - -Help on function is_ident_cp in module ida_name: - -is_ident_cp(*args) - is_ident_cp(cp) -> bool - - - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - - - @param cp (C++: wchar32_t) - -Help on function is_in_nlist in module ida_name: - -is_in_nlist(*args) - is_in_nlist(ea) -> bool - - - Is name included into names list? - - - @param ea (C++: ea_t) - -Help on function is_name_defined_locally in module ida_name: - -is_name_defined_locally(*args) - is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - - - Is the name defined locally in the specified function? - - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) - @return: true if the name has been defined - -Help on function is_public_name in module ida_name: - -is_public_name(*args) - is_public_name(ea) -> bool - -Help on function is_strlit_cp in module ida_name: - -is_strlit_cp(*args) - is_strlit_cp(cp, specific_ranges=None) -> bool - - - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) - -Help on function is_uname in module ida_name: - -is_uname(*args) - is_uname(name) -> bool - - - Is valid user-specified name? (valid name & !dummy prefix). - - @param name: name to test. may be NULL. (C++: const char *) - -Help on function is_valid_cp in module ida_name: - -is_valid_cp(*args) - is_valid_cp(cp, kind, data=None) -> bool - - - Is the given codepoint acceptable in the given context? - - - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) - -Help on function is_valid_typename in module ida_name: - -is_valid_typename(*args) - is_valid_typename(name) -> bool - - - Is valid type name? - - @param name: name to test. may be NULL. (C++: const char *) - -Help on function is_visible_cp in module ida_name: - -is_visible_cp(*args) - is_visible_cp(cp) -> bool - - - Can a character be displayed in a name? (present in ::NameChars) - - - @param cp (C++: wchar32_t) - -Help on function is_weak_name in module ida_name: - -is_weak_name(*args) - is_weak_name(ea) -> bool - -Help on function make_name_auto in module ida_name: - -make_name_auto(*args) - make_name_auto(ea) -> bool - -Help on function make_name_non_public in module ida_name: - -make_name_non_public(*args) - make_name_non_public(ea) - -Help on function make_name_non_weak in module ida_name: - -make_name_non_weak(*args) - make_name_non_weak(ea) - -Help on function make_name_public in module ida_name: - -make_name_public(*args) - make_name_public(ea) - -Help on function make_name_user in module ida_name: - -make_name_user(*args) - make_name_user(ea) -> bool - -Help on function make_name_weak in module ida_name: - -make_name_weak(*args) - make_name_weak(ea) - -Help on function rebuild_nlist in module ida_name: - -rebuild_nlist(*args) - rebuild_nlist() - - - Rebuild names list. - -Help on function reorder_dummy_names in module ida_name: - -reorder_dummy_names(*args) - reorder_dummy_names() - - - Renumber dummy names. - -Help on function set_cp_validity in module ida_name: - -set_cp_validity(*args) - set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) - - - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) - -Help on function set_debug_name in module ida_name: - -set_debug_name(*args) - set_debug_name(ea, name) -> bool - -Help on function set_dummy_name in module ida_name: - -set_dummy_name(*args) - set_dummy_name(_from, ea) -> bool - - - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) - -Help on function set_name in module ida_name: - -set_name(*args) - set_name(ea, name, flags=0) -> bool - - - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, non- - auto. (C++: int) - -Help on function show_name in module ida_name: - -show_name(*args) - show_name(ea) - - - Insert name to the list of names. - - - @param ea (C++: ea_t) - -Help on function validate_name in module ida_name: - -validate_name(*args) - validate_name(name, type, flags=0) -> PyObject * - - - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) - @return: success - -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. -""" - -ida_name.GETN_APPZERO -""" -append a struct field name if the field offset is zero? - -meaningful only if the name refers to a structure. -""" - -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" - -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" - -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" - -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" - -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" - -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" - -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" - -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" - -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" - -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" - -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" - -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -delete the hindering item - -if name cannot be set because of a tail byte, -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === -Help on function exist in module ida_netnode: - -exist(*args) - exist(n) -> bool - -Help on class netnode in module ida_netnode: - -class netnode(__builtin__.object) - | Proxy of C++ netnode class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, n) -> bool - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode - | __init__(self, _name, namlen=0, do_create=False) -> netnode - | - | __ne__(self, *args) - | __ne__(self, n) -> bool - | __ne__(self, x) -> bool - | - | __repr__ = _swig_repr(self) - | - | altdel(self, *args) - | altdel(self, alt, tag=atag) -> bool - | altdel(self) -> bool - | - | altdel_all(self, *args) - | altdel_all(self, tag) -> bool - | - | altdel_ea(self, *args) - | altdel_ea(self, ea, tag=atag) -> bool - | - | altdel_idx8(self, *args) - | altdel_idx8(self, alt, tag) -> bool - | - | altfirst(self, *args) - | altfirst(self, tag=atag) -> nodeidx_t - | - | altfirst_idx8(self, *args) - | altfirst_idx8(self, tag) -> nodeidx_t - | - | altlast(self, *args) - | altlast(self, tag=atag) -> nodeidx_t - | - | altlast_idx8(self, *args) - | altlast_idx8(self, tag) -> nodeidx_t - | - | altnext(self, *args) - | altnext(self, cur, tag=atag) -> nodeidx_t - | - | altnext_idx8(self, *args) - | altnext_idx8(self, cur, tag) -> nodeidx_t - | - | altprev(self, *args) - | altprev(self, cur, tag=atag) -> nodeidx_t - | - | altprev_idx8(self, *args) - | altprev_idx8(self, cur, tag) -> nodeidx_t - | - | altset(self, *args) - | altset(self, alt, value, tag=atag) -> bool - | - | altset_ea(self, *args) - | altset_ea(self, ea, value, tag=atag) -> bool - | - | altset_idx8(self, *args) - | altset_idx8(self, alt, val, tag) -> bool - | - | altshift(self, *args) - | altshift(self, _from, to, size, tag=atag) -> size_t - | - | altval(self, *args) - | altval(self, alt, tag=atag) -> nodeidx_t - | - | altval_ea(self, *args) - | altval_ea(self, ea, tag=atag) -> nodeidx_t - | - | altval_idx8(self, *args) - | altval_idx8(self, alt, tag) -> nodeidx_t - | - | blobsize(self, *args) - | blobsize(self, _start, tag) -> size_t - | - | blobsize_ea(self, *args) - | blobsize_ea(self, ea, tag) -> size_t - | - | chardel(self, *args) - | chardel(self, alt, tag) -> bool - | - | chardel_ea(self, *args) - | chardel_ea(self, ea, tag) -> bool - | - | chardel_idx8(self, *args) - | chardel_idx8(self, alt, tag) -> bool - | - | charfirst(self, *args) - | charfirst(self, tag) -> nodeidx_t - | - | charfirst_idx8(self, *args) - | charfirst_idx8(self, tag) -> nodeidx_t - | - | charlast(self, *args) - | charlast(self, tag) -> nodeidx_t - | - | charlast_idx8(self, *args) - | charlast_idx8(self, tag) -> nodeidx_t - | - | charnext(self, *args) - | charnext(self, cur, tag) -> nodeidx_t - | - | charnext_idx8(self, *args) - | charnext_idx8(self, cur, tag) -> nodeidx_t - | - | charprev(self, *args) - | charprev(self, cur, tag) -> nodeidx_t - | - | charprev_idx8(self, *args) - | charprev_idx8(self, cur, tag) -> nodeidx_t - | - | charset(self, *args) - | charset(self, alt, val, tag) -> bool - | - | charset_ea(self, *args) - | charset_ea(self, ea, val, tag) -> bool - | - | charset_idx8(self, *args) - | charset_idx8(self, alt, val, tag) -> bool - | - | charshift(self, *args) - | charshift(self, _from, to, size, tag) -> size_t - | - | charval(self, *args) - | charval(self, alt, tag) -> uchar - | - | charval_ea(self, *args) - | charval_ea(self, ea, tag) -> uchar - | - | charval_idx8(self, *args) - | charval_idx8(self, alt, tag) -> uchar - | - | copyto(self, *args) - | copyto(self, target, count=1) -> size_t - | - | create(self, *args) - | create(self, _name, namlen=0) -> bool - | create(self) -> bool - | - | delblob(self, *args) - | delblob(self, _start, tag) -> int - | - | delblob_ea(self, *args) - | delblob_ea(self, ea, tag) -> int - | - | delvalue(self, *args) - | delvalue(self) -> bool - | - | eadel(self, *args) - | eadel(self, ea, tag) -> bool - | - | eadel_idx8(self, *args) - | eadel_idx8(self, idx, tag) -> bool - | - | eaget(self, *args) - | eaget(self, ea, tag) -> ea_t - | - | eaget_idx(self, *args) - | eaget_idx(self, idx, tag) -> ea_t - | - | eaget_idx8(self, *args) - | eaget_idx8(self, idx, tag) -> ea_t - | - | easet(self, *args) - | easet(self, ea, addr, tag) -> bool - | - | easet_idx(self, *args) - | easet_idx(self, idx, addr, tag) -> bool - | - | easet_idx8(self, *args) - | easet_idx8(self, idx, addr, tag) -> bool - | - | end(self, *args) - | end(self) -> bool - | - | get_name(self, *args) - | get_name(self) -> ssize_t - | - | getblob(self, *args) - | getblob(self, start, tag) -> PyObject * - | - | getblob_ea(self, *args) - | getblob_ea(self, ea, tag) -> PyObject * - | - | getclob(self, *args) - | getclob(self, start, tag) -> PyObject * - | - | hashdel(self, *args) - | hashdel(self, idx, tag=htag) -> bool - | - | hashdel_all(self, *args) - | hashdel_all(self, tag=htag) -> bool - | - | hashfirst(self, *args) - | hashfirst(self, tag=htag) -> ssize_t - | - | hashlast(self, *args) - | hashlast(self, tag=htag) -> ssize_t - | - | hashnext(self, *args) - | hashnext(self, idx, tag=htag) -> ssize_t - | - | hashprev(self, *args) - | hashprev(self, idx, tag=htag) -> ssize_t - | - | hashset(self, *args) - | hashset(self, idx, value, tag=htag) -> bool - | - | hashset_buf(self, *args) - | hashset_buf(self, idx, py_str, tag=htag) -> bool - | - | hashset_idx(self, *args) - | hashset_idx(self, idx, value, tag=htag) -> bool - | - | hashstr(self, *args) - | hashstr(self, idx, tag=htag) -> ssize_t - | - | hashstr_buf(self, *args) - | hashstr_buf(self, idx, tag=htag) -> PyObject * - | - | hashval(self, *args) - | hashval(self, idx, tag=htag) -> ssize_t - | - | hashval_long(self, *args) - | hashval_long(self, idx, tag=htag) -> nodeidx_t - | - | index(self, *args) - | index(self) -> nodeidx_t - | - | kill(self, *args) - | kill(self) - | - | long_value(self, *args) - | long_value(self) -> nodeidx_t - | - | lower_bound(self, *args) - | lower_bound(self, cur, tag=stag) -> nodeidx_t - | - | lower_bound_ea(self, *args) - | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t - | - | lower_bound_idx8(self, *args) - | lower_bound_idx8(self, alt, tag) -> nodeidx_t - | - | moveto(self, *args) - | moveto(self, target, count=1) -> size_t - | - | next(self, *args) - | next(self) -> bool - | - | prev(self, *args) - | prev(self) -> bool - | - | rename(self, *args) - | rename(self, newname, namlen=0) -> bool - | - | set(self, *args) - | set(self, value) -> bool - | - | set_long(self, *args) - | set_long(self, x) -> bool - | - | setblob(self, *args) - | setblob(self, buf, _start, tag) -> bool - | - | setblob_ea(self, *args) - | setblob_ea(self, buf, ea, tag) -> bool - | - | start(self, *args) - | start(self) -> bool - | - | supdel(self, *args) - | supdel(self, alt, tag=stag) -> bool - | supdel(self) -> bool - | - | supdel_all(self, *args) - | supdel_all(self, tag) -> bool - | - | supdel_ea(self, *args) - | supdel_ea(self, ea, tag=stag) -> bool - | - | supdel_idx8(self, *args) - | supdel_idx8(self, alt, tag) -> bool - | - | supdel_range(self, *args) - | supdel_range(self, idx1, idx2, tag) -> int - | - | supdel_range_idx8(self, *args) - | supdel_range_idx8(self, idx1, idx2, tag) -> int - | - | supfirst(self, *args) - | supfirst(self, tag=stag) -> nodeidx_t - | - | supfirst_idx8(self, *args) - | supfirst_idx8(self, tag) -> nodeidx_t - | - | suplast(self, *args) - | suplast(self, tag=stag) -> nodeidx_t - | - | suplast_idx8(self, *args) - | suplast_idx8(self, tag) -> nodeidx_t - | - | supnext(self, *args) - | supnext(self, cur, tag=stag) -> nodeidx_t - | - | supnext_idx8(self, *args) - | supnext_idx8(self, alt, tag) -> nodeidx_t - | - | supprev(self, *args) - | supprev(self, cur, tag=stag) -> nodeidx_t - | - | supprev_idx8(self, *args) - | supprev_idx8(self, alt, tag) -> nodeidx_t - | - | supset(self, *args) - | supset(self, alt, value, tag=stag) -> bool - | - | supset_ea(self, *args) - | supset_ea(self, ea, value, tag=stag) -> bool - | - | supset_idx8(self, *args) - | supset_idx8(self, alt, value, tag) -> bool - | - | supshift(self, *args) - | supshift(self, _from, to, size, tag=stag) -> size_t - | - | supstr(self, *args) - | supstr(self, alt, tag=stag) -> ssize_t - | - | supstr_ea(self, *args) - | supstr_ea(self, ea, tag=stag) -> ssize_t - | - | supstr_idx8(self, *args) - | supstr_idx8(self, alt, tag) -> ssize_t - | - | supval(self, *args) - | supval(self, alt, tag=stag) -> ssize_t - | - | supval_ea(self, *args) - | supval_ea(self, ea, tag=stag) -> ssize_t - | - | supval_idx8(self, *args) - | supval_idx8(self, alt, tag) -> ssize_t - | - | valobj(self, *args) - | valobj(self) -> ssize_t - | - | valstr(self, *args) - | valstr(self) -> ssize_t - | - | value_exists(self, *args) - | value_exists(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_netnode> - | delete_netnode(self) - -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE -""" -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === -Help on function add_refinfo_dref in module ida_offset: - -add_refinfo_dref(*args) - add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t - - - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - - @param insn: the referencing instruction (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) - @return: the target address of the reference - -Help on function calc_basevalue in module ida_offset: - -calc_basevalue(*args) - calc_basevalue(target, base) -> ea_t - - - Calculate the value of the reference base. - - - @param target (C++: ea_t) - @param base (C++: ea_t) - -Help on function calc_offset_base in module ida_offset: - -calc_offset_base(*args) - calc_offset_base(ea, n) -> ea_t - - - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR - -Help on function calc_probable_base_by_value in module ida_offset: - -calc_probable_base_by_value(*args) - calc_probable_base_by_value(ea, off) -> ea_t - - - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - - @param ea (C++: ea_t) - @param off (C++: uval_t) - -Help on function calc_reference_data in module ida_offset: - -calc_reference_data(*args) - calc_reference_data(target, base, _from, ri, opval) -> bool - - - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @return: success - -Help on function calc_target in module ida_offset: - -calc_target(*args) - calc_target(_from, opval, ri) -> ea_t - calc_target(_from, ea, n, opval) -> ea_t - - - Calculates the target, using the provided 'refinfo_t' . - - - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) - -Help on function can_be_off32 in module ida_offset: - -can_be_off32(*args) - can_be_off32(ea) -> ea_t - - - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - - @param ea (C++: ea_t) - -Help on function get_default_reftype in module ida_offset: - -get_default_reftype(*args) - get_default_reftype(ea) -> reftype_t - - - Get default reference type depending on the segment. - - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 - -Help on function get_offbase in module ida_offset: - -get_offbase(*args) - get_offbase(ea, n) -> ea_t - - - Get offset base value - - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR - -Help on function get_offset_expr in module ida_offset: - -get_offset_expr(*args) - get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str - - - See 'get_offset_expression()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) - -Help on function get_offset_expression in module ida_offset: - -get_offset_expression(*args) - get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str - - - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) - -Help on function op_offset in module ida_offset: - -op_offset(*args) - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int - - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) - -Help on function op_offset_ex in module ida_offset: - -op_offset_ex(*args) - op_offset_ex(ea, n, ri) -> int - - - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) - @return: success - -Help on function op_plain_offset in module ida_offset: - -op_plain_offset(*args) - op_plain_offset(ea, n, base) -> bool - - - Convert operand to a reference with the default reference type. - - - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) - -Help on class __qmutex_t in module ida_pro: - -class __qmutex_t(__builtin__.object) - | Proxy of C++ __qmutex_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qmutex_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete___qmutex_t> - | delete___qmutex_t(self) - -Help on class __qsemaphore_t in module ida_pro: - -class __qsemaphore_t(__builtin__.object) - | Proxy of C++ __qsemaphore_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qsemaphore_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete___qsemaphore_t> - | delete___qsemaphore_t(self) - -Help on class __qthread_t in module ida_pro: - -class __qthread_t(__builtin__.object) - | Proxy of C++ __qthread_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> __qthread_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete___qthread_t> - | delete___qthread_t(self) - -Help on class _qstrvec_t in module ida_pro: - -class _qstrvec_t(ida_idaapi.py_clinked_object_t) - | WARNING: It is very unlikely an IDAPython user should ever, ever - | have to use this type. It should only be used for IDAPython internals. - | - | For example, in py_askusingform.py, we ctypes-expose to the IDA - | kernel & UI a qstrvec instance, in case a DropdownListControl is - | constructed. - | That's because that's what ask_form expects, and we have no - | choice but to make a DropdownListControl hold a qstrvec_t. - | This is, afaict, the only situation where a Python - | _qstrvec_t is required. - | - | Method resolution order: - | _qstrvec_t - | ida_idaapi.py_clinked_object_t - | ida_idaapi.pyidc_opaque_object_t - | __builtin__.object - | - | Methods defined here: - | - | __getitem__(self, idx) - | Gets the string at the given index - | - | __init__(self, items=None) - | - | __setitem__(self, idx, s) - | Sets string at the given index - | - | _create_clink(self) - | - | _del_clink(self, lnk) - | - | _get_clink_ptr(self) - | - | _qstrvec_t__get_size = __get_size(self) - | - | add(self, s) - | Add a string to the vector - | - | addressof(self, idx) - | Returns the address (as number) of the qstring at the given index - | - | assign(self, other) - | Copies the contents of 'other' to 'self' - | - | clear(self, qclear=False) - | Clears all strings from the vector. - | @param qclear: Just reset the size but do not actually free the memory - | - | from_list(self, lst) - | Populates the vector from a Python string list - | - | insert(self, idx, s) - | Insert a string into the vector - | - | remove(self, idx) - | Removes a string from the vector - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | size - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_idaapi.py_clinked_object_t: - | - | __del__(self) - | Delete the link upon object destruction (only if not static) - | - | _free(self) - | Explicitly delete the link (only if not static) - | - | copy(self) - | Returns a new copy of this class - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.py_clinked_object_t: - | - | clink - | - | clink_ptr - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: - | - | __idc_cvt_id__ = 2 - -Help on class boolvec_t in module ida_pro: - -class boolvec_t(__builtin__.object) - | Proxy of C++ qvector< bool > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> bool const & - | - | __init__(self, *args) - | __init__(self) -> boolvec_t - | __init__(self, x) -> boolvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< bool >::iterator - | begin(self) -> qvector< bool >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< bool >::iterator - | end(self) -> qvector< bool >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< bool >::iterator - | erase(self, first, last) -> qvector< bool >::iterator - | - | extract(self, *args) - | extract(self) -> bool * - | - | find(self, *args) - | find(self, x) -> qvector< bool >::iterator - | find(self, x) -> qvector< bool >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=bool()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< bool >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> bool & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_boolvec_t> - | delete_boolvec_t(self) - -Help on class channel_redir_t in module ida_pro: - -class channel_redir_t(__builtin__.object) - | Proxy of C++ channel_redir_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> channel_redir_t - | - | __repr__ = _swig_repr(self) - | - | is_append(self, *args) - | is_append(self) -> bool - | - | is_input(self, *args) - | is_input(self) -> bool - | - | is_output(self, *args) - | is_output(self) -> bool - | - | is_quoted(self, *args) - | is_quoted(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fd - | channel_redir_t_fd_get(self) -> int - | - | file - | channel_redir_t_file_get(self) -> qstring * - | - | flags - | channel_redir_t_flags_get(self) -> int - | - | length - | channel_redir_t_length_get(self) -> int - | - | start - | channel_redir_t_start_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_channel_redir_t> - | delete_channel_redir_t(self) - -Help on function check_process_exit in module ida_pro: - -check_process_exit(*args) - check_process_exit(handle, exit_code, msecs=-1) -> int - - - Check whether process has terminated or not. - - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - -Help on function clear_bits in module ida_pro: - -clear_bits(*args) - clear_bits(bitmap, low, high) - - - Clear bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) - -Help on class ea_array in module ida_pro: - -class ea_array(__builtin__.object) - | Proxy of C++ ea_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> ea_t - | - | __init__(self, *args) - | __init__(self, nelements) -> ea_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> ea_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> ea_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ea_array> - | delete_ea_array(self) - -Help on function ea_array_frompointer in module ida_pro: - -ea_array_frompointer(*args) - ea_array_frompointer(t) -> ea_array - -Help on class ea_pointer in module ida_pro: - -class ea_pointer(__builtin__.object) - | Proxy of C++ ea_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> ea_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> ea_t * - | - | value(self, *args) - | value(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> ea_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ea_pointer> - | delete_ea_pointer(self) - -Help on function ea_pointer_frompointer in module ida_pro: - -ea_pointer_frompointer(*args) - ea_pointer_frompointer(t) -> ea_pointer - -Help on function extend_sign in module ida_pro: - -extend_sign(*args) - extend_sign(v, nbytes, sign_extend) -> uint64 - - - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) - -Help on class instant_dbgopts_t in module ida_pro: - -class instant_dbgopts_t(__builtin__.object) - | Proxy of C++ instant_dbgopts_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> instant_dbgopts_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * - | - | attach - | instant_dbgopts_t_attach_get(self) -> bool - | - | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * - | - | env - | instant_dbgopts_t_env_get(self) -> qstring * - | - | event_id - | instant_dbgopts_t_event_id_get(self) -> int - | - | host - | instant_dbgopts_t_host_get(self) -> qstring * - | - | pid - | instant_dbgopts_t_pid_get(self) -> int - | - | port - | instant_dbgopts_t_port_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_instant_dbgopts_t> - | delete_instant_dbgopts_t(self) - -Help on class longlongvec_t in module ida_pro: - -class longlongvec_t(__builtin__.object) - | Proxy of C++ qvector< long long > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> long long const & - | - | __init__(self, *args) - | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< long long >::iterator - | begin(self) -> qvector< long long >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< long long >::iterator - | end(self) -> qvector< long long >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< long long >::iterator - | erase(self, first, last) -> qvector< long long >::iterator - | - | extract(self, *args) - | extract(self) -> long long * - | - | find(self, *args) - | find(self, x) -> qvector< long long >::iterator - | find(self, x) -> qvector< long long >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< long long >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> long long & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_longlongvec_t> - | delete_longlongvec_t(self) - -Help on class int_pointer in module ida_pro: - -class int_pointer(__builtin__.object) - | Proxy of C++ int_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> int_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> int * - | - | value(self, *args) - | value(self) -> int - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> int_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_int_pointer> - | delete_int_pointer(self) - -Help on function int_pointer_frompointer in module ida_pro: - -int_pointer_frompointer(*args) - int_pointer_frompointer(t) -> int_pointer - -Help on class intvec_t in module ida_pro: - -class intvec_t(__builtin__.object) - | Proxy of C++ qvector< int > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> int const & - | - | __init__(self, *args) - | __init__(self) -> intvec_t - | __init__(self, x) -> intvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< int >::iterator - | begin(self) -> qvector< int >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< int >::iterator - | end(self) -> qvector< int >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< int >::iterator - | erase(self, first, last) -> qvector< int >::iterator - | - | extract(self, *args) - | extract(self) -> int * - | - | find(self, *args) - | find(self, x) -> qvector< int >::iterator - | find(self, x) -> qvector< int >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< int >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> int & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_intvec_t> - | delete_intvec_t(self) - -Help on function is_control_tty in module ida_pro: - -is_control_tty(*args) - is_control_tty(fd) -> enum tty_control_t - - - Check if the current process is the owner of the TTY specified by 'fd' - (typically an opened descriptor to /dev/tty). - - @param fd (C++: int) - -Help on function is_main_thread in module ida_pro: - -is_main_thread(*args) - is_main_thread() -> bool - - - Are we running in the main thread? - -Help on function log2ceil in module ida_pro: - -log2ceil(*args) - log2ceil(d64) -> int - - - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - - @param d64 (C++: uint64) - -Help on function log2floor in module ida_pro: - -log2floor(*args) - log2floor(d64) -> int - -Help on function parse_dbgopts in module ida_pro: - -parse_dbgopts(*args) - parse_dbgopts(ido, r_switch) -> bool - - - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error - -Help on function qatoll in module ida_pro: - -qatoll(*args) - qatoll(nptr) -> int64 - -Help on function qcontrol_tty in module ida_pro: - -qcontrol_tty(*args) - qcontrol_tty() - - - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty - -Help on function qdetach_tty in module ida_pro: - -qdetach_tty(*args) - qdetach_tty() - - - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty - -Help on function qexit in module ida_pro: - -qexit(*args) - qexit(code) - - - Call qatexit functions, shut down UI and kernel, and exit. - - @param code: exit code (C++: int) - -Help on class qmutex_locker_t in module ida_pro: - -class qmutex_locker_t(__builtin__.object) - | Proxy of C++ qmutex_locker_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _lock) -> qmutex_locker_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qmutex_locker_t> - | delete_qmutex_locker_t(self) - -Help on class qrefcnt_obj_t in module ida_pro: - -class qrefcnt_obj_t(__builtin__.object) - | Proxy of C++ qrefcnt_obj_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | release(self, *args) - | release(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_qrefcnt_obj_t> - | delete_qrefcnt_obj_t(self) - -Help on function qstrvec_t_add in module ida_pro: - -qstrvec_t_add(*args) - qstrvec_t_add(_self, s) -> bool - -Help on function qstrvec_t_addressof in module ida_pro: - -qstrvec_t_addressof(*args) - qstrvec_t_addressof(_self, idx) -> PyObject * - -Help on function qstrvec_t_assign in module ida_pro: - -qstrvec_t_assign(*args) - qstrvec_t_assign(_self, other) -> bool - -Help on function qstrvec_t_clear in module ida_pro: - -qstrvec_t_clear(*args) - qstrvec_t_clear(_self, qclear) -> bool - -Help on function qstrvec_t_create in module ida_pro: - -qstrvec_t_create(*args) - qstrvec_t_create() -> PyObject * - -Help on function qstrvec_t_destroy in module ida_pro: - -qstrvec_t_destroy(*args) - qstrvec_t_destroy(py_obj) -> bool - -Help on function qstrvec_t_from_list in module ida_pro: - -qstrvec_t_from_list(*args) - qstrvec_t_from_list(_self, py_list) -> bool - -Help on function qstrvec_t_get in module ida_pro: - -qstrvec_t_get(*args) - qstrvec_t_get(_self, idx) -> PyObject * - -Help on function qstrvec_t_get_clink in module ida_pro: - -qstrvec_t_get_clink(*args) - qstrvec_t_get_clink(_self) -> qstrvec_t * - -Help on function qstrvec_t_get_clink_ptr in module ida_pro: - -qstrvec_t_get_clink_ptr(*args) - qstrvec_t_get_clink_ptr(_self) -> PyObject * - -Help on function qstrvec_t_insert in module ida_pro: - -qstrvec_t_insert(*args) - qstrvec_t_insert(_self, idx, s) -> bool - -Help on function qstrvec_t_remove in module ida_pro: - -qstrvec_t_remove(*args) - qstrvec_t_remove(_self, idx) -> bool - -Help on function qstrvec_t_set in module ida_pro: - -qstrvec_t_set(*args) - qstrvec_t_set(_self, idx, s) -> bool - -Help on function qstrvec_t_size in module ida_pro: - -qstrvec_t_size(*args) - qstrvec_t_size(_self) -> size_t - -Help on function quote_cmdline_arg in module ida_pro: - -quote_cmdline_arg(*args) - quote_cmdline_arg(arg) -> bool - - - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - - @param arg (C++: qstring *) - @return: true: modified 'arg' - -Help on function qvector_reserve in module ida_pro: - -qvector_reserve(*args) - qvector_reserve(vec, old, cnt, elsize) -> void * - - - Change capacity of given qvector. - - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) - @return: a pointer to the newly allocated array - -Help on function readbytes in module ida_pro: - -readbytes(*args) - readbytes(h, res, size, mf) -> int - - - Read at most 4 bytes from file. - - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise - -Help on function reloc_value in module ida_pro: - -reloc_value(*args) - reloc_value(value, size, delta, mf) - -Help on function relocate_relobj in module ida_pro: - -relocate_relobj(*args) - relocate_relobj(_relobj, ea, mf) -> bool - -Help on class sel_array in module ida_pro: - -class sel_array(__builtin__.object) - | Proxy of C++ sel_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> sel_t - | - | __init__(self, *args) - | __init__(self, nelements) -> sel_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> sel_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> sel_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_sel_array> - | delete_sel_array(self) - -Help on function sel_array_frompointer in module ida_pro: - -sel_array_frompointer(*args) - sel_array_frompointer(t) -> sel_array - -Help on class sel_pointer in module ida_pro: - -class sel_pointer(__builtin__.object) - | Proxy of C++ sel_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> sel_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> sel_t * - | - | value(self, *args) - | value(self) -> sel_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> sel_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_sel_pointer> - | delete_sel_pointer(self) - -Help on function sel_pointer_frompointer in module ida_pro: - -sel_pointer_frompointer(*args) - sel_pointer_frompointer(t) -> sel_pointer - -Help on function set_bits in module ida_pro: - -set_bits(*args) - set_bits(bitmap, low, high) - - - Set bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) - -Help on class sizevec_t in module ida_pro: - -class sizevec_t(__builtin__.object) - | Proxy of C++ qvector< size_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> size_t const & - | - | __init__(self, *args) - | __init__(self) -> sizevec_t - | __init__(self, x) -> sizevec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> size_t const & - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< size_t >::iterator - | begin(self) -> qvector< size_t >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< size_t >::iterator - | end(self) -> qvector< size_t >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< size_t >::iterator - | erase(self, first, last) -> qvector< size_t >::iterator - | - | extract(self, *args) - | extract(self) -> size_t * - | - | find(self, *args) - | find(self, x) -> qvector< size_t >::iterator - | find(self, x) -> qvector< size_t >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=size_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< size_t >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> size_t & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_sizevec_t> - | delete_sizevec_t(self) - -Help on function str2user in module ida_pro: - -str2user(*args) - str2user(str) -> PyObject * - - - Insert C-style escape characters to string - - @return: new string with escape characters inserted - -Help on class strvec_t in module ida_pro: - -class strvec_t(__builtin__.object) - | Proxy of C++ qvector< simpleline_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> simpleline_t const & - | - | __init__(self, *args) - | __init__(self) -> strvec_t - | __init__(self, x) -> strvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< simpleline_t >::iterator - | begin(self) -> qvector< simpleline_t >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< simpleline_t >::iterator - | end(self) -> qvector< simpleline_t >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< simpleline_t >::iterator - | erase(self, first, last) -> qvector< simpleline_t >::iterator - | - | extract(self, *args) - | extract(self) -> simpleline_t * - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=simpleline_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< simpleline_t >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> simpleline_t & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_strvec_t> - | delete_strvec_t(self) - -Help on class sval_pointer in module ida_pro: - -class sval_pointer(__builtin__.object) - | Proxy of C++ sval_pointer class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> sval_pointer - | - | __repr__ = _swig_repr(self) - | - | assign(self, *args) - | assign(self, value) - | - | cast(self, *args) - | cast(self) -> sval_t * - | - | value(self, *args) - | value(self) -> sval_t - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> sval_pointer - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_sval_pointer> - | delete_sval_pointer(self) - -Help on function sval_pointer_frompointer in module ida_pro: - -sval_pointer_frompointer(*args) - sval_pointer_frompointer(t) -> sval_pointer - -Help on class tid_array in module ida_pro: - -class tid_array(__builtin__.object) - | Proxy of C++ tid_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> tid_t - | - | __init__(self, *args) - | __init__(self, nelements) -> tid_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> tid_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> tid_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tid_array> - | delete_tid_array(self) - -Help on function tid_array_frompointer in module ida_pro: - -tid_array_frompointer(*args) - tid_array_frompointer(t) -> tid_array - -Help on class uchar_array in module ida_pro: - -class uchar_array(__builtin__.object) - | Proxy of C++ uchar_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> uchar - | - | __init__(self, *args) - | __init__(self, nelements) -> uchar_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> uchar * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> uchar_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_uchar_array> - | delete_uchar_array(self) - -Help on function uchar_array_frompointer in module ida_pro: - -uchar_array_frompointer(*args) - uchar_array_frompointer(t) -> uchar_array - -Help on class ulonglongvec_t in module ida_pro: - -class ulonglongvec_t(__builtin__.object) - | Proxy of C++ qvector< unsigned long long > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned long long const & - | - | __init__(self, *args) - | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< unsigned long long >::iterator - | begin(self) -> qvector< unsigned long long >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< unsigned long long >::iterator - | end(self) -> qvector< unsigned long long >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< unsigned long long >::iterator - | erase(self, first, last) -> qvector< unsigned long long >::iterator - | - | extract(self, *args) - | extract(self) -> unsigned long long * - | - | find(self, *args) - | find(self, x) -> qvector< unsigned long long >::iterator - | find(self, x) -> qvector< unsigned long long >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< unsigned long long >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned long long & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ulonglongvec_t> - | delete_ulonglongvec_t(self) - -Help on class uintvec_t in module ida_pro: - -class uintvec_t(__builtin__.object) - | Proxy of C++ qvector< unsigned int > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> unsigned int const & - | - | __init__(self, *args) - | __init__(self) -> uintvec_t - | __init__(self, x) -> uintvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< unsigned int >::iterator - | begin(self) -> qvector< unsigned int >::const_iterator - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< unsigned int >::iterator - | end(self) -> qvector< unsigned int >::const_iterator - | - | erase(self, *args) - | erase(self, it) -> qvector< unsigned int >::iterator - | erase(self, first, last) -> qvector< unsigned int >::iterator - | - | extract(self, *args) - | extract(self) -> unsigned int * - | - | find(self, *args) - | find(self, x) -> qvector< unsigned int >::iterator - | find(self, x) -> qvector< unsigned int >::const_iterator - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< unsigned int >::iterator - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> unsigned int & - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_uintvec_t> - | delete_uintvec_t(self) - -Help on class uval_array in module ida_pro: - -class uval_array(__builtin__.object) - | Proxy of C++ uval_array class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, index) -> uval_t - | - | __init__(self, *args) - | __init__(self, nelements) -> uval_array - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, index, value) - | - | cast(self, *args) - | cast(self) -> uval_t * - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | frompointer(*args) - | frompointer(t) -> uval_array - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_uval_array> - | delete_uval_array(self) - -Help on function uval_array_frompointer in module ida_pro: - -uval_array_frompointer(*args) - uval_array_frompointer(t) -> uval_array - -Help on function writebytes in module ida_pro: - -writebytes(*args) - writebytes(h, l, size, mf) -> int - - - Write at most 4 bytes to file. - - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) - @return: 0 on success, nonzero otherwise - -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. -""" - -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.4. -""" - -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" - -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === -Help on function forget_problem in module ida_problems: - -forget_problem(*args) - forget_problem(type, ea) -> bool - - - Remove an address from a problem list - - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @return: success - -Help on function get_problem in module ida_problems: - -get_problem(*args) - get_problem(type, lowea) -> ea_t - - - Get an address from the specified problem list. The address is not - removed from the list. - - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR - -Help on function get_problem_desc in module ida_problems: - -get_problem_desc(*args) - get_problem_desc(t, ea) -> str - - - Get the human-friendly description of the problem, if one was provided - to remember_problem. - - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) - @return: the message length or -1 if none - -Help on function get_problem_name in module ida_problems: - -get_problem_name(*args) - get_problem_name(type, longname=True) -> char const * - - - Get problem list description. - - - @param type (C++: problist_id_t) - @param longname (C++: bool) - -Help on function is_problem_present in module ida_problems: - -is_problem_present(*args) - is_problem_present(t, ea) -> bool - - - Check if the specified address is present in the problem list. - - - @param t (C++: problist_id_t) - @param ea (C++: ea_t) - -Help on function remember_problem in module ida_problems: - -remember_problem(*args) - remember_problem(type, ea, msg=None) - - - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) - -Help on function was_ida_decision in module ida_problems: - -was_ida_decision(*args) - was_ida_decision(ea) -> bool - -Help on class array_of_rangesets in module ida_range: - -class array_of_rangesets(__builtin__.object) - | Proxy of C++ qvector< rangeset_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> rangeset_t - | - | __init__(self, *args) - | __init__(self) -> array_of_rangesets - | __init__(self, x) -> array_of_rangesets - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> rangeset_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> rangeset_t - | begin(self) -> rangeset_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> rangeset_t - | end(self) -> rangeset_t - | - | erase(self, *args) - | erase(self, it) -> rangeset_t - | erase(self, first, last) -> rangeset_t - | - | extract(self, *args) - | extract(self) -> rangeset_t - | - | find(self, *args) - | find(self, x) -> rangeset_t - | find(self, x) -> rangeset_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=rangeset_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> rangeset_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> rangeset_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_array_of_rangesets> - | delete_array_of_rangesets(self) - -Help on class range_t in module ida_range: - -class range_t(__builtin__.object) - | Proxy of C++ range_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> range_t - | __init__(self, ea1, ea2) -> range_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_range_t> - | delete_range_t(self) - -Help on function range_t_print in module ida_range: - -range_t_print(*args) - range_t_print(cb) -> str - - - Helper function. Should not be called directly! - -Help on class rangeset_t in module ida_range: - -class rangeset_t(__builtin__.object) - | Proxy of C++ rangeset_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, aset) -> bool - | - | __getitem__(self, idx) - | - | __init__(self, *args) - | __init__(self) -> rangeset_t - | __init__(self, range) -> rangeset_t - | __init__(self, ivs) -> rangeset_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = nranges(self, *args) - | - | __ne__(self, *args) - | __ne__(self, aset) -> bool - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self) -> size_t - | - | add(self, *args) - | add(self, range) -> bool - | add(self, start, _end) -> bool - | add(self, aset) -> bool - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | cached_range(self, *args) - | cached_range(self) -> range_t - | - | clear(self, *args) - | clear(self) - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, aset) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | find_range(self, *args) - | find_range(self, ea) -> range_t - | - | getrange(self, *args) - | getrange(self, idx) -> range_t - | - | has_common(self, *args) - | has_common(self, range) -> bool - | has_common(self, aset) -> bool - | - | includes(self, *args) - | includes(self, range) -> bool - | - | intersect(self, *args) - | intersect(self, aset) -> bool - | - | is_equal(self, *args) - | is_equal(self, aset) -> bool - | - | is_subset_of(self, *args) - | is_subset_of(self, aset) -> bool - | - | lastrange(self, *args) - | lastrange(self) -> range_t - | - | next_addr(self, *args) - | next_addr(self, ea) -> ea_t - | - | next_range(self, *args) - | next_range(self, ea) -> ea_t - | - | nranges(self, *args) - | nranges(self) -> size_t - | - | prev_addr(self, *args) - | prev_addr(self, ea) -> ea_t - | - | prev_range(self, *args) - | prev_range(self, ea) -> ea_t - | - | sub(self, *args) - | sub(self, range) -> bool - | sub(self, ea) -> bool - | sub(self, aset) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_rangeset_t> - | delete_rangeset_t(self) - -Help on class rangevec_base_t in module ida_range: - -class rangevec_base_t(__builtin__.object) - | Proxy of C++ qvector< range_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __init__(self, *args) - | __init__(self) -> rangevec_base_t - | __init__(self, x) -> rangevec_base_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_rangevec_base_t> - | delete_rangevec_base_t(self) - -Help on class rangevec_t in module ida_range: - -class rangevec_t(rangevec_base_t) - | Proxy of C++ rangevec_t class. - | - | Method resolution order: - | rangevec_t - | rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> rangevec_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_rangevec_t> - | delete_rangevec_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function reg_data_type in module ida_registry: - -reg_data_type(*args) - reg_data_type(name, subkey=None) -> regval_type_t - - - Get data type of a given value. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if the [key+]value doesn't exist - -Help on function reg_delete in module ida_registry: - -reg_delete(*args) - reg_delete(name, subkey=None) -> bool - - - Delete a value from the registry. - - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - @return: success - -Help on function reg_delete_subkey in module ida_registry: - -reg_delete_subkey(*args) - reg_delete_subkey(name) -> bool - - - Delete a key from the registry. - - - @param name (C++: const char *) - -Help on function reg_delete_tree in module ida_registry: - -reg_delete_tree(*args) - reg_delete_tree(name) -> bool - - - Delete a subtree from the registry. - - - @param name (C++: const char *) - -Help on function reg_exists in module ida_registry: - -reg_exists(*args) - reg_exists(name, subkey=None) -> bool - - - Is there already a value with the given name? - - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) - -Help on function reg_flush in module ida_registry: - -reg_flush(*args) - reg_flush() - -Help on function reg_load in module ida_registry: - -reg_load(*args) - reg_load() - -Help on function reg_read_binary in module ida_registry: - -reg_read_binary(*args) - reg_read_binary(name, subkey=None) -> PyObject * - - - Read binary data from the registry. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if 'data' is not large enough to hold all data present. - in this case 'data' is left untouched. - -Help on function reg_read_bool in module ida_registry: - -reg_read_bool(*args) - reg_read_bool(name, defval, subkey=None) -> bool - - - Read boolean value from the registry. - - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) - @return: boolean read from registry, or 'defval' if the read failed - -Help on function reg_read_int in module ida_registry: - -reg_read_int(*args) - reg_read_int(name, defval, subkey=None) -> int - - - Read integer value from the registry. - - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed - -Help on function reg_read_string in module ida_registry: - -reg_read_string(*args) - reg_read_string(name, subkey=None, _def=None) -> PyObject * - - - Read a string from the registry. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: success - -Help on function reg_read_strlist in module ida_registry: - -reg_read_strlist(*args) - reg_read_strlist(subkey) - - - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . - - @param subkey (C++: const char *) - -Help on function reg_subkey_exists in module ida_registry: - -reg_subkey_exists(*args) - reg_subkey_exists(name) -> bool - - - Is there already a key with the given name? - - - @param name (C++: const char *) - -Help on function reg_subkey_subkeys in module ida_registry: - -reg_subkey_subkeys(*args) - reg_subkey_subkeys(name) -> PyObject * - - - Get all subkey names of given key. - - - @param name (C++: const char *) - -Help on function reg_subkey_values in module ida_registry: - -reg_subkey_values(*args) - reg_subkey_values(name) -> PyObject * - - - Get all value names under given key. - - - @param name (C++: const char *) - -Help on function reg_update_filestrlist in module ida_registry: - -reg_update_filestrlist(*args) - reg_update_filestrlist(subkey, add, maxrecs, rem=None) - - - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) - -Help on function reg_update_strlist in module ida_registry: - -reg_update_strlist(*args) - reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - - - Update list of strings associated with given key. - - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) - -Help on function reg_write_binary in module ida_registry: - -reg_write_binary(*args) - reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - - - Write binary data to the registry. - - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - -Help on function reg_write_bool in module ida_registry: - -reg_write_bool(*args) - reg_write_bool(name, value, subkey=None) - - - Write boolean value to the registry. - - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) - -Help on function reg_write_int in module ida_registry: - -reg_write_int(*args) - reg_write_int(name, value, subkey=None) - - - Write integer value to the registry. - - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) - -Help on function reg_write_string in module ida_registry: - -reg_write_string(*args) - reg_write_string(name, utf8, subkey=None) - - - Write a string to the registry. - - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) - -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME -""" -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === -Help on function find_binary in module ida_search: - -find_binary(*args) - find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t - -Help on function find_code in module ida_search: - -find_code(*args) - find_code(ea, sflag) -> ea_t - - - Find next code address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_data in module ida_search: - -find_data(*args) - find_data(ea, sflag) -> ea_t - - - Find next data address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_defined in module ida_search: - -find_defined(*args) - find_defined(ea, sflag) -> ea_t - - - Find next ea that is the start of an instruction or data. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_error in module ida_search: - -find_error(*args) - find_error(ea, sflag) -> ea_t - - - Find next error or problem. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_imm in module ida_search: - -find_imm(*args) - find_imm(newEA, sflag, srchValue) -> ea_t - - - Find next immediate operand with the given value. - - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) - -Help on function find_not_func in module ida_search: - -find_not_func(*args) - find_not_func(ea, sflag) -> ea_t - - - Find next code address that does not belong to a function. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_notype in module ida_search: - -find_notype(*args) - find_notype(ea, sflag) -> ea_t - - - Find next operand without any type info. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_suspop in module ida_search: - -find_suspop(*args) - find_suspop(ea, sflag) -> ea_t - - - Find next suspicious operand. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_text in module ida_search: - -find_text(*args) - find_text(start_ea, y, x, ustr, sflag) -> ea_t - - - See 'search()' - - - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) - -Help on function find_unknown in module ida_search: - -find_unknown(*args) - find_unknown(ea, sflag) -> ea_t - - - Find next unexplored address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function search_down in module ida_search: - -search_down(*args) - search_down(sflag) -> bool - - - Is the 'SEARCH_DOWN' bit set? - - - @param sflag (C++: int) - -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if Ctrl-Break wass pressed during search -""" - -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" - -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" - -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" - -ida_search.SEARCH_NEXT -""" -for other find_.. functions it is implicitly set - -useful only for 'search()' and find_binary(). -""" - -ida_search.SEARCH_NOBRK -""" -don't test for ctrl-break to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -don't display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (only supported for txt search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" -=== ida_search EPYDOC INJECTIONS END === -Help on function add_segm in module ida_segment: - -add_segm(*args) - add_segm(para, start, end, name, sclass, flags=0) -> bool - - - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or - another segment base address. - - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) - -Help on function add_segm_ex in module ida_segment: - -add_segm_ex(*args) - add_segm_ex(s, name, sclass, flags) -> bool - - - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. - - @param s: pointer to filled segment structure. segment selector should - have proper mapping (see set_selector() ). if - s.start_ea== BADADDR then s.start_ea <- get_segm_base(&s) - if s.end_ea== BADADDR , then a segment up to the next - segment will be created (if the next segment doesn't exist, - then 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and the new - segment would overlap the next segment, s.end_ea is adjusted - properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) - -Help on function add_segment_translation in module ida_segment: - -add_segment_translation(*args) - add_segment_translation(segstart, mappedseg) -> bool - - - Add segment translation. - - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) - -Help on function allocate_selector in module ida_segment: - -allocate_selector(*args) - allocate_selector(segbase) -> sel_t - - - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number - -Help on function change_segment_status in module ida_segment: - -change_segment_status(*args) - change_segment_status(s, is_deb_segm) -> int - - - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes - -Help on function del_segm in module ida_segment: - -del_segm(*args) - del_segm(ea, flags) -> bool - - - Delete a segment. - - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function del_segment_translations in module ida_segment: - -del_segment_translations(*args) - del_segment_translations(segstart) - - - Delete the translation list - - @param segstart: start address of the segment to delete translation - list (C++: ea_t) - -Help on function del_selector in module ida_segment: - -del_selector(*args) - del_selector(selector) - - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) - -Help on function find_free_selector in module ida_segment: - -find_free_selector(*args) - find_free_selector() -> sel_t - - - Find first unused selector. - - @return: a number >= 1 - -Help on function find_selector in module ida_segment: - -find_selector(*args) - find_selector(base) -> sel_t - - - Find a selector that has mapping to the specified paragraph. - - @param base: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base - -Help on function get_defsr in module ida_segment: - -get_defsr(*args) - get_defsr(s, reg) -> sel_t - -Help on function get_first_seg in module ida_segment: - -get_first_seg(*args) - get_first_seg() -> segment_t - - - Get pointer to the first segment. - -Help on function get_group_selector in module ida_segment: - -get_group_selector(*args) - get_group_selector(grpsel) -> sel_t - - - Get common selector for a group of segments. - - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found - -Help on function get_last_seg in module ida_segment: - -get_last_seg(*args) - get_last_seg() -> segment_t - - - Get pointer to the last segment. - -Help on function get_next_seg in module ida_segment: - -get_next_seg(*args) - get_next_seg(ea) -> segment_t - - - Get pointer to the next segment. - - - @param ea (C++: ea_t) - -Help on function get_prev_seg in module ida_segment: - -get_prev_seg(*args) - get_prev_seg(ea) -> segment_t - - - Get pointer to the previous segment. - - - @param ea (C++: ea_t) - -Help on function get_segm_base in module ida_segment: - -get_segm_base(*args) - get_segm_base(s) -> ea_t - - - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address - -Help on function get_segm_by_name in module ida_segment: - -get_segm_by_name(*args) - get_segm_by_name(name) -> segment_t - - - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure - -Help on function get_segm_by_sel in module ida_segment: - -get_segm_by_sel(*args) - get_segm_by_sel(selector) -> segment_t - - - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL - -Help on function get_segm_class in module ida_segment: - -get_segm_class(*args) - get_segm_class(s) -> str - - - Get segment class. Segment class is arbitrary text (max 8 characters). - - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) - -Help on function get_segm_name in module ida_segment: - -get_segm_name(*args) - get_segm_name(s, flags=0) -> str - - - Get true segment name by pointer to segment. - - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) - -Help on function get_segm_num in module ida_segment: - -get_segm_num(*args) - get_segm_num(ea) -> int - - - Get number of segment by address. - - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) - -Help on function get_segm_para in module ida_segment: - -get_segm_para(*args) - get_segm_para(s) -> ea_t - - - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph - -Help on function get_segm_qty in module ida_segment: - -get_segm_qty(*args) - get_segm_qty() -> int - - - Get number of segments. - -Help on function get_segment_alignment in module ida_segment: - -get_segment_alignment(*args) - get_segment_alignment(align) -> char const * - - - Get text representation of segment alignment code. - - @param align (C++: uchar) - @return: text digestable by IBM PC assembler. - -Help on function get_segment_cmt in module ida_segment: - -get_segment_cmt(*args) - get_segment_cmt(s, repeatable) -> str - - - Get segment comment. - - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) - @return: size of comment or -1 - -Help on function get_segment_combination in module ida_segment: - -get_segment_combination(*args) - get_segment_combination(comb) -> char const * - - - Get text representation of segment combination code. - - @param comb (C++: uchar) - @return: text digestable by IBM PC assembler. - -Help on function get_segment_translations in module ida_segment: - -get_segment_translations(*args) - get_segment_translations(transmap, segstart) -> ssize_t - - - Get segment translation list. - - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. - -Help on function get_selector_qty in module ida_segment: - -get_selector_qty(*args) - get_selector_qty() -> int - - - Get number of defined selectors. - -Help on function get_visible_segm_name in module ida_segment: - -get_visible_segm_name(*args) - get_visible_segm_name(s) -> str - - - Get segment name by pointer to segment. - - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) - -Help on function getn_selector in module ida_segment: - -getn_selector(*args) - getn_selector(n) -> bool - - - Get description of selector (0.. 'get_selector_qty()' -1) - - - @param n (C++: int) - -Help on function getnseg in module ida_segment: - -getnseg(*args) - getnseg(n) -> segment_t - - - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure - -Help on function getseg in module ida_segment: - -getseg(*args) - getseg(ea) -> segment_t - - - Get pointer to segment by linear address. - - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure - -Help on function is_finally_visible_segm in module ida_segment: - -is_finally_visible_segm(*args) - is_finally_visible_segm(s) -> bool - - - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - - - @param s (C++: segment_t *) - -Help on function is_miniidb in module ida_segment: - -is_miniidb(*args) - is_miniidb() -> bool - - - Is the database a miniidb created by the debugger?. - - @return: true if the database contains no segments or only debugger - segments - -Help on function is_segm_locked in module ida_segment: - -is_segm_locked(*args) - is_segm_locked(segm) -> bool - - - Is a segment pointer locked? - - - @param segm (C++: const segment_t *) - -Help on function is_spec_ea in module ida_segment: - -is_spec_ea(*args) - is_spec_ea(ea) -> bool - - - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - - @param ea: linear address (C++: ea_t) - -Help on function is_spec_segm in module ida_segment: - -is_spec_segm(*args) - is_spec_segm(seg_type) -> bool - - - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - - @param seg_type (C++: uchar) - -Help on function is_visible_segm in module ida_segment: - -is_visible_segm(*args) - is_visible_segm(s) -> bool - - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) - -Help on function lock_segm in module ida_segment: - -lock_segm(*args) - lock_segm(segm, lock) - - - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param segm (C++: const segment_t *) - @param lock (C++: bool) - -Help on class lock_segment in module ida_segment: - -class lock_segment(__builtin__.object) - | Proxy of C++ lock_segment class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _segm) -> lock_segment - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lock_segment> - | delete_lock_segment(self) - -Help on function move_segm in module ida_segment: - -move_segm(*args) - move_segm(s, to, flags=0) -> int - - - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) - @return: Move segment result codes - -Help on function move_segm_start in module ida_segment: - -move_segm_start(*args) - move_segm_start(ea, newstart, mode) -> bool - - - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) - -Help on function rebase_program in module ida_segment: - -rebase_program(*args) - rebase_program(delta, flags) -> int - - - Rebase the whole program by 'delta' bytes. - - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes - -Help on function segm_adjust_diff in module ida_segment: - -segm_adjust_diff(*args) - segm_adjust_diff(s, delta) -> adiff_t - - - Truncate and sign extend a delta depending on the segment. - - - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) - -Help on function segm_adjust_ea in module ida_segment: - -segm_adjust_ea(*args) - segm_adjust_ea(s, ea) -> ea_t - - - Truncate an address depending on the segment. - - - @param s (C++: const segment_t *) - @param ea (C++: ea_t) - -Help on class segment_t in module ida_segment: - -class segment_t(ida_range.range_t) - | Proxy of C++ segment_t class. - | - | Method resolution order: - | segment_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> segment_t - | - | __repr__ = _swig_repr(self) - | - | abits(self, *args) - | abits(self) -> int - | - | abytes(self, *args) - | abytes(self) -> int - | - | clr_comorg(self, *args) - | clr_comorg(self) - | - | clr_ob_ok(self, *args) - | clr_ob_ok(self) - | - | comorg(self, *args) - | comorg(self) -> bool - | - | is_header_segm(self, *args) - | is_header_segm(self) -> bool - | - | is_hidden_segtype(self, *args) - | is_hidden_segtype(self) -> bool - | - | is_loader_segm(self, *args) - | is_loader_segm(self) -> bool - | - | is_visible_segm(self, *args) - | is_visible_segm(self) -> bool - | - | ob_ok(self, *args) - | ob_ok(self) -> bool - | - | set_comorg(self, *args) - | set_comorg(self) - | - | set_debugger_segm(self, *args) - | set_debugger_segm(self, debseg) - | - | set_header_segm(self, *args) - | set_header_segm(self, on) - | - | set_hidden_segtype(self, *args) - | set_hidden_segtype(self, hide) - | - | set_loader_segm(self, *args) - | set_loader_segm(self, ldrseg) - | - | set_ob_ok(self, *args) - | set_ob_ok(self) - | - | set_visible_segm(self, *args) - | set_visible_segm(self, visible) - | - | update(self, *args) - | update(self) -> bool - | - | use32(self, *args) - | use32(self) -> bool - | - | use64(self, *args) - | use64(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | align - | segment_t_align_get(self) -> uchar - | - | bitness - | segment_t_bitness_get(self) -> uchar - | - | color - | segment_t_color_get(self) -> bgcolor_t - | - | comb - | segment_t_comb_get(self) -> uchar - | - | defsr - | segment_t_defsr_get(self) -> sel_t [16] - | - | end_ea - | segment_t_end_ea_get(self) -> ea_t - | - | flags - | segment_t_flags_get(self) -> ushort - | - | name - | segment_t_name_get(self) -> uval_t - | - | orgbase - | segment_t_orgbase_get(self) -> uval_t - | - | perm - | segment_t_perm_get(self) -> uchar - | - | sclass - | segment_t_sclass_get(self) -> uval_t - | - | sel - | segment_t_sel_get(self) -> sel_t - | - | start_ea - | segment_t_start_ea_get(self) -> ea_t - | - | thisown - | The membership flag - | - | type - | segment_t_type_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_segment_t> - | delete_segment_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | startEA - -Help on function segtype in module ida_segment: - -segtype(*args) - segtype(ea) -> uchar - - - Get segment type. - - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' - -Help on function sel2ea in module ida_segment: - -sel2ea(*args) - sel2ea(selector) -> ea_t - - - Get mapping of a selector as a linear address. - - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); - -Help on function sel2para in module ida_segment: - -sel2para(*args) - sel2para(selector) -> ea_t - - - Get mapping of a selector. - - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. - -Help on function set_defsr in module ida_segment: - -set_defsr(*args) - set_defsr(s, reg, value) - -Help on function set_group_selector in module ida_segment: - -set_group_selector(*args) - set_group_selector(grp, sel) -> int - - - Initialize groups. The kernel calls this function at the start of - work.Create a new group of segments (used OMF files). - - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) - @return: 1 ok - -Help on function set_segm_addressing in module ida_segment: - -set_segm_addressing(*args) - set_segm_addressing(s, bitness) -> bool - - - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) - @return: success - -Help on function set_segm_base in module ida_segment: - -set_segm_base(*args) - set_segm_base(s, newbase) -> bool - - - Internal function. - - - @param s (C++: segment_t *) - @param newbase (C++: ea_t) - -Help on function set_segm_class in module ida_segment: - -set_segm_class(*args) - set_segm_class(s, sclass, flags=0) -> int - - - Set segment class. - - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) - -Help on function set_segm_end in module ida_segment: - -set_segm_end(*args) - set_segm_end(ea, newend, flags) -> bool - - - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function set_segm_name in module ida_segment: - -set_segm_name(*args) - set_segm_name(s, name, flags=0) -> int - - - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) - -Help on function set_segm_start in module ida_segment: - -set_segm_start(*args) - set_segm_start(ea, newstart, flags) -> bool - - - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function set_segment_cmt in module ida_segment: - -set_segment_cmt(*args) - set_segment_cmt(s, cmt, repeatable) - - - Set segment comment. - - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) - -Help on function set_segment_translations in module ida_segment: - -set_segment_translations(*args) - set_segment_translations(segstart, transmap) -> bool - - - Set new translation list. - - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) - -Help on function set_selector in module ida_segment: - -set_selector(*args) - set_selector(selector, paragraph) -> int - - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - -Help on function set_visible_segm in module ida_segment: - -set_visible_segm(*args) - set_visible_segm(s, visible) - - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) - @param visible (C++: bool) - -Help on function setup_selector in module ida_segment: - -setup_selector(*args) - setup_selector(segbase) -> sel_t - - - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - - @param segbase: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number - -Help on function std_out_segm_footer in module ida_segment: - -std_out_segm_footer(*args) - std_out_segm_footer(ctx, seg) - - - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) - -Help on function take_memory_snapshot in module ida_segment: - -take_memory_snapshot(*args) - take_memory_snapshot(only_loader_segs) -> bool - - - Take a memory snapshot of the running process. - - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success - -Help on function update_segm in module ida_segment: - -update_segm(*args) - update_segm(s) -> bool - -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' -""" - -ida_segment.ADDSEG_NOTRUNC -""" -destroy/truncate old segments instead. - -don't truncate the new segment at the beginning of the next segment if -they overlap. -""" - -ida_segment.ADDSEG_OR_DIE -""" - 'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new segment -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -is too big) - -not enough memory (might be because the segment -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok -""" - -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -valid for 'move_segm()' - -loader segments will overwrite any existing debugger segments when -moved. -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -(for 'set_segm_start()' ) - -don't move info from the start of segment to the new start address -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols -""" - -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" - -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -no instructions are allowed - -segment with 'extern' definitions. -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -boundary. - -Relocatable, aligned on a double word (4-byte) -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -segment. - -Private. Do not combine with any other program -""" - -ida_segment.scPub -""" -the alignment requirement. - -Public. Combine by appending at an offset that meets -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -byte alignment. - -Stack. Combine as for C=2. This combine type forces -""" -=== ida_segment EPYDOC INJECTIONS END === -Help on function copy_sreg_ranges in module ida_segregs: - -copy_sreg_ranges(*args) - copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - - - Duplicate segment register ranges. - - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) - -Help on function del_sreg_range in module ida_segregs: - -del_sreg_range(*args) - del_sreg_range(ea, rg) -> bool - - - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success - -Help on function get_prev_sreg_range in module ida_segregs: - -get_prev_sreg_range(*args) - get_prev_sreg_range(out, ea, rg) -> bool - - - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success - -Help on function get_sreg in module ida_segregs: - -get_sreg(*args) - get_sreg(ea, rg) -> sel_t - - - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. - -Help on function get_sreg_range in module ida_segregs: - -get_sreg_range(*args) - get_sreg_range(out, ea, rg) -> bool - - - Get segment register range by linear address. - - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success - -Help on function get_sreg_range_num in module ida_segregs: - -get_sreg_range_num(*args) - get_sreg_range_num(ea, rg) -> int - - - Get number of segment register range by address. - - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) - -Help on function get_sreg_ranges_qty in module ida_segregs: - -get_sreg_ranges_qty(*args) - get_sreg_ranges_qty(rg) -> size_t - - - Get number of segment register ranges. - - @param rg: the segment register number (C++: int) - -Help on function getn_sreg_range in module ida_segregs: - -getn_sreg_range(*args) - getn_sreg_range(out, rg, n) -> bool - - - Get segment register range by its number. - - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) - @return: success - -Help on function set_default_dataseg in module ida_segregs: - -set_default_dataseg(*args) - set_default_dataseg(ds_sel) - - - Set default value of DS register for all segments. - - - @param ds_sel (C++: sel_t) - -Help on function set_default_sreg_value in module ida_segregs: - -set_default_sreg_value(*args) - set_default_sreg_value(sg, rg, value) -> bool - - - Set default value of a segment register for a segment. - - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) - @return: success - -Help on function set_sreg_at_next_code in module ida_segregs: - -set_sreg_at_next_code(*args) - set_sreg_at_next_code(ea1, ea2, rg, value) - - - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) - -Help on function split_sreg_range in module ida_segregs: - -split_sreg_range(*args) - split_sreg_range(ea, rg, v, tag, silent=False) -> bool - - - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) - @return: success - -Help on class sreg_range_t in module ida_segregs: - -class sreg_range_t(ida_range.range_t) - | Proxy of C++ sreg_range_t class. - | - | Method resolution order: - | sreg_range_t - | ida_range.range_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> sreg_range_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | tag - | sreg_range_t_tag_get(self) -> uchar - | - | thisown - | The membership flag - | - | val - | sreg_range_t_val_get(self) -> sel_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_sreg_range_t> - | delete_sreg_range_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.range_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _print(self, *args) - | _print(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | contains(self, *args) - | contains(self, ea) -> bool - | contains(self, r) -> bool - | - | empty(self, *args) - | empty(self) -> bool - | - | extend(self, *args) - | extend(self, ea) - | - | intersect(self, *args) - | intersect(self, r) - | - | overlaps(self, *args) - | overlaps(self, r) -> bool - | - | size(self, *args) - | size(self) -> asize_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.range_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | endEA - | - | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA - | - | start_ea - | range_t_start_ea_get(self) -> ea_t - -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto -""" -the value is determined by IDA -""" - -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" - -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" - -ida_segregs.SR_user -""" -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === -Help on function build_strlist in module ida_strlist: - -build_strlist(*args) - build_strlist() - - - Build the string list. You should initialize options before this call - using the restore_config() or setup_strings_window() methods. - -Help on function clear_strlist in module ida_strlist: - -clear_strlist(*args) - clear_strlist() - - - Clear the string list. - -Help on function get_strlist_item in module ida_strlist: - -get_strlist_item(*args) - get_strlist_item(si, n) -> bool - - - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - - - @param si (C++: string_info_t *) - @param n (C++: size_t) - -Help on function get_strlist_options in module ida_strlist: - -get_strlist_options(*args) - get_strlist_options() -> strwinsetup_t - - - Get access to the static string list options. - -Help on function get_strlist_qty in module ida_strlist: - -get_strlist_qty(*args) - get_strlist_qty() -> size_t - - - Get number of elements in the string list. - -Help on class string_info_t in module ida_strlist: - -class string_info_t(__builtin__.object) - | Proxy of C++ string_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | string_info_t_ea_get(self) -> ea_t - | - | length - | string_info_t_length_get(self) -> int - | - | thisown - | The membership flag - | - | type - | string_info_t_type_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_string_info_t> - | delete_string_info_t(self) - -Help on class strwinsetup_t in module ida_strlist: - -class strwinsetup_t(__builtin__.object) - | Proxy of C++ strwinsetup_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> strwinsetup_t - | - | __repr__ = _swig_repr(self) - | - | _get_strtypes(self, *args) - | _get_strtypes(self) -> PyObject * - | - | _set_strtypes(self, *args) - | _set_strtypes(self, py_t) -> PyObject * - | - | is_initialized(self, *args) - | is_initialized(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar - | - | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar - | - | minlen - | strwinsetup_t_minlen_get(self) -> sval_t - | - | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar - | - | strtypes - | _get_strtypes(self) -> PyObject * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_strwinsetup_t> - | delete_strwinsetup_t(self) - -Help on function add_struc in module ida_struct: - -add_struc(*args) - add_struc(idx, name, is_union=False) -> tid_t - - - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) - -Help on function add_struc_member in module ida_struct: - -add_struc_member(*args) - add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - - - Add member to existing structure. - - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) - -Help on function del_member_tinfo in module ida_struct: - -del_member_tinfo(*args) - del_member_tinfo(sptr, mptr) -> bool - - - Delete tinfo for given member. - - - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) - -Help on function del_struc in module ida_struct: - -del_struc(*args) - del_struc(sptr) -> bool - - - Delete a structure type. - - - @param sptr (C++: struc_t *) - -Help on function del_struc_member in module ida_struct: - -del_struc_member(*args) - del_struc_member(sptr, offset) -> bool - - - Delete member at given offset. - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - -Help on function del_struc_members in module ida_struct: - -del_struc_members(*args) - del_struc_members(sptr, off1, off2) -> int - - - Delete members which occupy range of offsets (off1..off2). - - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) - @return: number of deleted members or -1 on error - -Help on function expand_struc in module ida_struct: - -expand_struc(*args) - expand_struc(sptr, offset, delta, recalc=True) -> bool - - - Expand/Shrink structure type. - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) - -Help on function get_best_fit_member in module ida_struct: - -get_best_fit_member(*args) - get_best_fit_member(sptr, offset) -> member_t - - - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) - -Help on function get_first_struc_idx in module ida_struct: - -get_first_struc_idx(*args) - get_first_struc_idx() -> uval_t - - - Get index of first structure. - - @return: BADADDR if no known structures, 0 otherwise - -Help on function get_last_struc_idx in module ida_struct: - -get_last_struc_idx(*args) - get_last_struc_idx() -> uval_t - - - Get index of last structure. - - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise - -Help on function get_max_offset in module ida_struct: - -get_max_offset(*args) - get_max_offset(sptr) -> ea_t - - - For unions: returns number of members, for structs: returns size of - structure. - - - @param sptr (C++: struc_t *) - -Help on function get_member in module ida_struct: - -get_member(*args) - get_member(sptr, offset) -> member_t - - - Get member at given offset. - - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) - -Help on function get_member_by_fullname in module ida_struct: - -get_member_by_fullname(*args) - get_member_by_fullname(fullname) -> member_t - - - Get a member by its fully qualified name, "struct.field". - - - @param fullname (C++: const char *) - -Help on function get_member_by_id in module ida_struct: - -get_member_by_id(*args) - get_member_by_id(mid) -> member_t - - - Check if the specified member id points to a struct member. - - - @param mid (C++: tid_t) - -Help on function get_member_by_name in module ida_struct: - -get_member_by_name(*args) - get_member_by_name(sptr, membername) -> member_t - - - Get a member by its name, like "field44". - - - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) - -Help on function get_member_cmt in module ida_struct: - -get_member_cmt(*args) - get_member_cmt(mid, repeatable) -> str - - - Get comment of structure member. - - - @param mid (C++: tid_t) - @param repeatable (C++: bool) - -Help on function get_member_fullname in module ida_struct: - -get_member_fullname(*args) - get_member_fullname(mid) -> str - - - Get a member's fully qualified name, "struct.field". - - - @param mid (C++: tid_t) - -Help on function get_member_id in module ida_struct: - -get_member_id(*args) - get_member_id(sptr, offset) -> tid_t - - - Get member id at given offset. - - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) - -Help on function get_member_name in module ida_struct: - -get_member_name(*args) - get_member_name(mid) -> str - - - Get name of structure member. - - - @param mid (C++: tid_t) - -Help on function get_member_size in module ida_struct: - -get_member_size(*args) - get_member_size(nonnul_mptr) -> asize_t - - - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . - -Help on function get_member_struc in module ida_struct: - -get_member_struc(*args) - get_member_struc(fullname) -> struc_t - - - Get containing structure of member by its full name "struct.field". - - - @param fullname (C++: const char *) - -Help on function get_member_tinfo in module ida_struct: - -get_member_tinfo(*args) - get_member_tinfo(tif, mptr) -> bool - - - Get tinfo for given member. - - - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) - -Help on function get_next_member_idx in module ida_struct: - -get_next_member_idx(*args) - get_next_member_idx(sptr, off) -> ssize_t - - - Get the next member idx, if it does not exist, return -1. - - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) - -Help on function get_next_struc_idx in module ida_struct: - -get_next_struc_idx(*args) - get_next_struc_idx(idx) -> uval_t - - - Get next struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ - -Help on function get_or_guess_member_tinfo in module ida_struct: - -get_or_guess_member_tinfo(*args) - get_or_guess_member_tinfo(tif, mptr) -> bool - - - Try to get tinfo for given member - if failed, generate a tinfo using - information about the member id from the disassembly - - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) - -Help on function get_prev_member_idx in module ida_struct: - -get_prev_member_idx(*args) - get_prev_member_idx(sptr, off) -> ssize_t - - - Get the prev member idx, if it does not exist, return -1. - - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) - -Help on function get_prev_struc_idx in module ida_struct: - -get_prev_struc_idx(*args) - get_prev_struc_idx(idx) -> uval_t - - - Get previous struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 - -Help on function get_sptr in module ida_struct: - -get_sptr(*args) - get_sptr(mptr) -> struc_t - - - Get child struct if member is a struct. - - - @param mptr (C++: const member_t *) - -Help on function get_struc in module ida_struct: - -get_struc(*args) - get_struc(id) -> struc_t - - - Get pointer to struct type info. - - - @param id (C++: tid_t) - -Help on function get_struc_by_idx in module ida_struct: - -get_struc_by_idx(*args) - get_struc_by_idx(idx) -> tid_t - - - Get struct id by struct number. - - - @param idx (C++: uval_t) - -Help on function get_struc_cmt in module ida_struct: - -get_struc_cmt(*args) - get_struc_cmt(id, repeatable) -> str - - - Get struct comment. - - - @param id (C++: tid_t) - @param repeatable (C++: bool) - -Help on function get_struc_first_offset in module ida_struct: - -get_struc_first_offset(*args) - get_struc_first_offset(sptr) -> ea_t - - - Get offset of first member. - - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 - -Help on function get_struc_id in module ida_struct: - -get_struc_id(*args) - get_struc_id(name) -> tid_t - - - Get struct id by name. - - - @param name (C++: const char *) - -Help on function get_struc_idx in module ida_struct: - -get_struc_idx(*args) - get_struc_idx(id) -> uval_t - - - Get internal number of the structure. - - - @param id (C++: tid_t) - -Help on function get_struc_last_offset in module ida_struct: - -get_struc_last_offset(*args) - get_struc_last_offset(sptr) -> ea_t - - - Get offset of last member. - - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 - -Help on function get_struc_name in module ida_struct: - -get_struc_name(*args) - get_struc_name(id, flags=0) -> str - - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) - -Help on function get_struc_next_offset in module ida_struct: - -get_struc_next_offset(*args) - get_struc_next_offset(sptr, offset) -> ea_t - - - Get offset of member with smallest offset larger than 'offset'. - - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset - -Help on function get_struc_prev_offset in module ida_struct: - -get_struc_prev_offset(*args) - get_struc_prev_offset(sptr, offset) -> ea_t - - - Get offset of member with largest offset less than 'offset'. - - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset - -Help on function get_struc_qty in module ida_struct: - -get_struc_qty(*args) - get_struc_qty() -> size_t - - - Get number of known structures. - -Help on function get_struc_size in module ida_struct: - -get_struc_size(*args) - get_struc_size(sptr) -> asize_t - get_struc_size(id) -> asize_t - - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) - -Help on function is_anonymous_member_name in module ida_struct: - -is_anonymous_member_name(*args) - is_anonymous_member_name(name) -> bool - - - Is member name prefixed with "anonymous"? - - - @param name (C++: const char *) - -Help on function is_dummy_member_name in module ida_struct: - -is_dummy_member_name(*args) - is_dummy_member_name(name) -> bool - - - Is member name an auto-generated name? - - - @param name (C++: const char *) - -Help on function is_member_id in module ida_struct: - -is_member_id(*args) - is_member_id(mid) -> bool - - - Is a member id? - - - @param mid (C++: tid_t) - -Help on function is_special_member in module ida_struct: - -is_special_member(*args) - is_special_member(id) -> bool - - - Is a special member with the name beginning with ' '? - - - @param id (C++: tid_t) - -Help on function is_union in module ida_struct: - -is_union(*args) - is_union(id) -> bool - - - Is a union? - - - @param id (C++: tid_t) - -Help on function is_varmember in module ida_struct: - -is_varmember(*args) - is_varmember(mptr) -> bool - - - Is variable size member? - - - @param mptr (C++: const member_t *) - -Help on function is_varstr in module ida_struct: - -is_varstr(*args) - is_varstr(id) -> bool - - - Is variable size structure? - - - @param id (C++: tid_t) - -Help on class member_t in module ida_struct: - -class member_t(__builtin__.object) - | Proxy of C++ member_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> member_t - | - | __repr__ = _swig_repr(self) - | - | by_til(self, *args) - | by_til(self) -> bool - | - | get_soff(self, *args) - | get_soff(self) -> ea_t - | - | has_ti(self, *args) - | has_ti(self) -> bool - | - | has_union(self, *args) - | has_union(self) -> bool - | - | is_baseclass(self, *args) - | is_baseclass(self) -> bool - | - | is_destructor(self, *args) - | is_destructor(self) -> bool - | - | is_dupname(self, *args) - | is_dupname(self) -> bool - | - | unimem(self, *args) - | unimem(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | eoff - | member_t_eoff_get(self) -> ea_t - | - | flag - | member_t_flag_get(self) -> flags_t - | - | id - | member_t_id_get(self) -> tid_t - | - | props - | member_t_props_get(self) -> uint32 - | - | soff - | member_t_soff_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_member_t> - | delete_member_t(self) - -Help on function retrieve_member_info in module ida_struct: - -retrieve_member_info(*args) - retrieve_member_info(buf, mptr) -> opinfo_t - - - Get operand type info for member. - - - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) - -Help on function save_struc in module ida_struct: - -save_struc(*args) - save_struc(sptr, may_update_ltypes=True) - - - Update struct information in the database (internal function) - - - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) - -Help on function set_member_cmt in module ida_struct: - -set_member_cmt(*args) - set_member_cmt(mptr, cmt, repeatable) -> bool - - - Set member comment. - - - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_member_name in module ida_struct: - -set_member_name(*args) - set_member_name(sptr, offset, name) -> bool - - - Set name of member at given offset. - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) - -Help on function set_member_tinfo in module ida_struct: - -set_member_tinfo(*args) - set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - - - Set tinfo for given member. - - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) - -Help on function set_member_type in module ida_struct: - -set_member_type(*args) - set_member_type(sptr, offset, flag, mt, nbytes) -> bool - - - Set type of member at given offset (also see 'add_struc_member()' ) - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) - -Help on function set_struc_align in module ida_struct: - -set_struc_align(*args) - set_struc_align(sptr, shift) -> bool - - - Set structure alignment ( 'SF_ALIGN' ) - - - @param sptr (C++: struc_t *) - @param shift (C++: int) - -Help on function set_struc_cmt in module ida_struct: - -set_struc_cmt(*args) - set_struc_cmt(id, cmt, repeatable) -> bool - - - Set structure comment. - - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_struc_hidden in module ida_struct: - -set_struc_hidden(*args) - set_struc_hidden(sptr, is_hidden) - - - Hide/unhide a struct type. - - - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) - -Help on function set_struc_idx in module ida_struct: - -set_struc_idx(*args) - set_struc_idx(sptr, idx) -> bool - - - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) - -Help on function set_struc_listed in module ida_struct: - -set_struc_listed(*args) - set_struc_listed(sptr, is_listed) - - - Add/remove a struct type from the struct list. - - - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) - -Help on function set_struc_name in module ida_struct: - -set_struc_name(*args) - set_struc_name(id, name) -> bool - - - Set structure name. - - - @param id (C++: tid_t) - @param name (C++: const char *) - -Help on function stroff_as_size in module ida_struct: - -stroff_as_size(*args) - stroff_as_size(plen, sptr, value) -> bool - - - Should display a structure offset expression as the structure size? - - - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) - -Help on class struc_t in module ida_struct: - -class struc_t(__builtin__.object) - | Proxy of C++ struc_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | from_til(self, *args) - | from_til(self) -> bool - | - | get_alignment(self, *args) - | get_alignment(self) -> int - | - | get_member(self, *args) - | get_member(self, index) -> member_t - | - | has_union(self, *args) - | has_union(self) -> bool - | - | is_choosable(self, *args) - | is_choosable(self) -> bool - | - | is_frame(self, *args) - | is_frame(self) -> bool - | - | is_ghost(self, *args) - | is_ghost(self) -> bool - | - | is_hidden(self, *args) - | is_hidden(self) -> bool - | - | is_union(self, *args) - | is_union(self) -> bool - | - | is_varstr(self, *args) - | is_varstr(self) -> bool - | - | set_alignment(self, *args) - | set_alignment(self, shift) - | - | set_ghost(self, *args) - | set_ghost(self, _is_ghost) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | age - | struc_t_age_get(self) -> ushort - | - | id - | struc_t_id_get(self) -> tid_t - | - | members - | struc_t_members_get(self) -> member_t - | - | memqty - | struc_t_memqty_get(self) -> uint32 - | - | ordinal - | struc_t_ordinal_get(self) -> int32 - | - | props - | struc_t_props_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_struc_t> - | delete_struc_t(self) - -Help on class struct_field_visitor_t in module ida_struct: - -class struct_field_visitor_t(__builtin__.object) - | Proxy of C++ struct_field_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> struct_field_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_field(self, *args) - | visit_field(self, sptr, mptr) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_struct_field_visitor_t> - | delete_struct_field_visitor_t(self) - -Help on function visit_stroff_fields in module ida_struct: - -visit_stroff_fields(*args) - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t - - - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) - -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class -""" - -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" - -ida_struct.MF_DTOR -""" -a special member representing destructor -""" - -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -varunions are prohibited! - -is a union? -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === -Help on function add_tryblk in module ida_tryblks: - -add_tryblk(*args) - add_tryblk(tb) -> int - - - Add one try block information. - - @param tb: try block to add. (C++: const tryblk_t &) - @return: error code; 0 means good - -Help on class catch_t in module ida_tryblks: - -class catch_t(try_handler_t) - | Proxy of C++ catch_t class. - | - | Method resolution order: - | catch_t - | try_handler_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> catch_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | obj - | catch_t_obj_get(self) -> sval_t - | - | thisown - | The membership flag - | - | type_id - | catch_t_type_id_get(self) -> sval_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_catch_t> - | delete_catch_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from try_handler_t: - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from try_handler_t: - | - | disp - | try_handler_t_disp_get(self) -> sval_t - | - | fpreg - | try_handler_t_fpreg_get(self) -> int - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class catchvec_t in module ida_tryblks: - -class catchvec_t(__builtin__.object) - | Proxy of C++ qvector< catch_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> catch_t - | - | __init__(self, *args) - | __init__(self) -> catchvec_t - | __init__(self, x) -> catchvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> catch_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> catch_t - | begin(self) -> catch_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> catch_t - | end(self) -> catch_t - | - | erase(self, *args) - | erase(self, it) -> catch_t - | erase(self, first, last) -> catch_t - | - | extract(self, *args) - | extract(self) -> catch_t - | - | find(self, *args) - | find(self, x) -> catch_t - | find(self, x) -> catch_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=catch_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> catch_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> catch_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_catchvec_t> - | delete_catchvec_t(self) - -Help on function del_tryblks in module ida_tryblks: - -del_tryblks(*args) - del_tryblks(range) - - - Delete try block information in the specified range. - - @param range: the range to be cleared (C++: const range_t &) - -Help on function find_syseh in module ida_tryblks: - -find_syseh(*args) - find_syseh(ea) -> ea_t - - - Find the start address of the system eh region including the argument. - - @param ea: search address (C++: ea_t) - @return: start address of surrounding tryblk, otherwise BADADDR - -Help on function get_tryblks in module ida_tryblks: - -get_tryblks(*args) - get_tryblks(tbv, range) -> size_t - - - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks - -Help on class seh_t in module ida_tryblks: - -class seh_t(try_handler_t) - | Proxy of C++ seh_t class. - | - | Method resolution order: - | seh_t - | try_handler_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> seh_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | filter - | seh_t_filter_get(self) -> rangevec_t - | - | seh_code - | seh_t_seh_code_get(self) -> ea_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_seh_t> - | delete_seh_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from try_handler_t: - | - | disp - | try_handler_t_disp_get(self) -> sval_t - | - | fpreg - | try_handler_t_fpreg_get(self) -> int - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class try_handler_t in module ida_tryblks: - -class try_handler_t(ida_range.rangevec_t) - | Proxy of C++ try_handler_t class. - | - | Method resolution order: - | try_handler_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> try_handler_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | disp - | try_handler_t_disp_get(self) -> sval_t - | - | fpreg - | try_handler_t_fpreg_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_try_handler_t> - | delete_try_handler_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class tryblk_t in module ida_tryblks: - -class tryblk_t(ida_range.rangevec_t) - | Proxy of C++ tryblk_t class. - | - | Method resolution order: - | tryblk_t - | ida_range.rangevec_t - | ida_range.rangevec_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> tryblk_t - | __init__(self, r) -> tryblk_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | cpp(self, *args) - | cpp(self) -> catchvec_t - | - | empty(self, *args) - | empty(self) -> bool - | - | get_kind(self, *args) - | get_kind(self) -> uchar - | - | is_cpp(self, *args) - | is_cpp(self) -> bool - | - | is_seh(self, *args) - | is_seh(self) -> bool - | - | seh(self, *args) - | seh(self) -> seh_t - | - | set_cpp(self, *args) - | set_cpp(self) -> catchvec_t - | - | set_seh(self, *args) - | set_seh(self) -> seh_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | level - | tryblk_t_level_get(self) -> uchar - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tryblk_t> - | delete_tryblk_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from ida_range.rangevec_base_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> range_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> range_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | end(self, *args) - | end(self) -> range_t - | end(self) -> range_t - | - | erase(self, *args) - | erase(self, it) -> range_t - | erase(self, first, last) -> range_t - | - | extract(self, *args) - | extract(self) -> range_t - | - | find(self, *args) - | find(self, x) -> range_t - | find(self, x) -> range_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=range_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> range_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> range_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from ida_range.rangevec_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class tryblks_t in module ida_tryblks: - -class tryblks_t(__builtin__.object) - | Proxy of C++ qvector< tryblk_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> tryblk_t - | - | __init__(self, *args) - | __init__(self) -> tryblks_t - | __init__(self, x) -> tryblks_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> tryblk_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> tryblk_t - | begin(self) -> tryblk_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> tryblk_t - | end(self) -> tryblk_t - | - | erase(self, *args) - | erase(self, it) -> tryblk_t - | erase(self, first, last) -> tryblk_t - | - | extract(self, *args) - | extract(self) -> tryblk_t - | - | find(self, *args) - | find(self, x) -> tryblk_t - | find(self, x) -> tryblk_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=tryblk_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> tryblk_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> tryblk_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tryblks_t> - | delete_tryblks_t(self) - -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block -""" - -ida_tryblks.TBERR_END -""" -bad end address -""" - -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" - -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" - -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" - -ida_tryblks.TBERR_OK -""" -ok -""" - -ida_tryblks.TBERR_ORDER -""" -bad address order -""" - -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === -Help on function add_til in module ida_typeinf: - -add_til(*args) - add_til(name, flags) -> int - - - Load a til file. - - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes - -Help on function alloc_type_ordinal in module ida_typeinf: - -alloc_type_ordinal(*args) - alloc_type_ordinal(ti) -> uint32 - - - \call2{alloc_type_ordinals,ti,1} - - - @param ti (C++: til_t *) - -Help on function alloc_type_ordinals in module ida_typeinf: - -alloc_type_ordinals(*args) - alloc_type_ordinals(ti, qty) -> uint32 - - - Allocate a range of ordinal numbers for new types. - - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) - @return: the first ordinal. 0 means failure. - -Help on class aloc_visitor_t in module ida_typeinf: - -class aloc_visitor_t(__builtin__.object) - | Proxy of C++ aloc_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> aloc_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_location(self, *args) - | visit_location(self, v, off, size) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_aloc_visitor_t> - | delete_aloc_visitor_t(self) - -Help on function append_abi_opts in module ida_typeinf: - -append_abi_opts(*args) - append_abi_opts(abi_opts, user_level=False) -> bool - - - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) - @return: success - -Help on function append_argloc in module ida_typeinf: - -append_argloc(*args) - append_argloc(out, vloc) -> bool - - - Serialize argument location. - - - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) - -Help on function append_tinfo_covered in module ida_typeinf: - -append_tinfo_covered(*args) - append_tinfo_covered(out, typid, offset) -> bool - -Help on function apply_callee_tinfo in module ida_typeinf: - -apply_callee_tinfo(*args) - apply_callee_tinfo(caller, tif) -> bool - - - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) - @return: success - -Help on function apply_cdecl in module ida_typeinf: - -apply_cdecl(*args) - apply_cdecl(til, ea, decl, flags=0) -> bool - - - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) - @return: success - -Help on function apply_named_type in module ida_typeinf: - -apply_named_type(*args) - apply_named_type(ea, name) -> bool - - - Apply the specified named type to the address. - - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) - @return: success - -Help on function apply_once_tinfo_and_name in module ida_typeinf: - -apply_once_tinfo_and_name(*args) - apply_once_tinfo_and_name(dea, tif, name) -> bool - - - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) - @return: success - -Help on function apply_tinfo in module ida_typeinf: - -apply_tinfo(*args) - apply_tinfo(ea, tif, flags) -> bool - - - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) - @return: success - -Help on function apply_tinfo_to_stkarg in module ida_typeinf: - -apply_tinfo_to_stkarg(*args) - apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - - - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} - - @param insn (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) - -Help on function apply_type in module ida_typeinf: - -apply_type(*args) - apply_type(ti, _type, _fields, ea, flags) -> bool - - - Apply the specified type to the address - @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) - @param ea: the address of the object - @param flags: combination of TINFO_... constants or 0 - @return: Boolean - -Help on class argloc_t in module ida_typeinf: - -class argloc_t(__builtin__.object) - | Proxy of C++ argloc_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> argloc_t - | __init__(self, r) -> argloc_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg1(self, *args) - | _set_reg1(self, reg, off=0) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | compare(self, *args) - | compare(self, r) -> int - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg1(self, *args) - | reg1(self) -> int - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg1(self, *args) - | set_reg1(self, reg, off=0) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_argloc_t> - | delete_argloc_t(self) - -Help on class argpart_t in module ida_typeinf: - -class argpart_t(argloc_t) - | Proxy of C++ argpart_t class. - | - | Method resolution order: - | argpart_t - | argloc_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, a) -> argpart_t - | __init__(self) -> argpart_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | bad_offset(self, *args) - | bad_offset(self) -> bool - | - | bad_size(self, *args) - | bad_size(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | off - | argpart_t_off_get(self) -> ushort - | - | size - | argpart_t_size_get(self) -> ushort - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_argpart_t> - | delete_argpart_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from argloc_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | _consume_rrel(self, *args) - | _consume_rrel(self, p) -> bool - | - | _consume_scattered(self, *args) - | _consume_scattered(self, p) -> bool - | - | _set_badloc(self, *args) - | _set_badloc(self) - | - | _set_biggest(self, *args) - | _set_biggest(self, ct, data) - | - | _set_custom(self, *args) - | _set_custom(self, ct, pdata) - | - | _set_ea(self, *args) - | _set_ea(self, _ea) - | - | _set_reg1(self, *args) - | _set_reg1(self, reg, off=0) - | - | _set_reg2(self, *args) - | _set_reg2(self, _reg1, _reg2) - | - | _set_stkoff(self, *args) - | _set_stkoff(self, off) - | - | advance(self, *args) - | advance(self, delta) -> bool - | - | atype(self, *args) - | atype(self) -> argloc_type_t - | - | calc_offset(self, *args) - | calc_offset(self) -> sval_t - | - | compare(self, *args) - | compare(self, r) -> int - | - | consume_rrel(self, *args) - | consume_rrel(self, p) - | - | consume_scattered(self, *args) - | consume_scattered(self, p) - | - | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t - | - | get_custom(self, *args) - | get_custom(self) -> void * - | - | get_ea(self, *args) - | get_ea(self) -> ea_t - | - | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 - | - | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t - | - | has_reg(self, *args) - | has_reg(self) -> bool - | - | has_stkoff(self, *args) - | has_stkoff(self) -> bool - | - | is_badloc(self, *args) - | is_badloc(self) -> bool - | - | is_custom(self, *args) - | is_custom(self) -> bool - | - | is_ea(self, *args) - | is_ea(self) -> bool - | - | is_fragmented(self, *args) - | is_fragmented(self) -> bool - | - | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool - | - | is_reg(self, *args) - | is_reg(self) -> bool - | - | is_reg1(self, *args) - | is_reg1(self) -> bool - | - | is_reg2(self, *args) - | is_reg2(self) -> bool - | - | is_rrel(self, *args) - | is_rrel(self) -> bool - | - | is_scattered(self, *args) - | is_scattered(self) -> bool - | - | is_stkoff(self, *args) - | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) - | justify_stkoff_right(self, size, _slotsize) - | - | reg1(self, *args) - | reg1(self) -> int - | - | reg2(self, *args) - | reg2(self) -> int - | - | regoff(self, *args) - | regoff(self) -> int - | - | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t - | - | set_badloc(self, *args) - | set_badloc(self) - | - | set_ea(self, *args) - | set_ea(self, _ea) - | - | set_reg1(self, *args) - | set_reg1(self, reg, off=0) - | - | set_reg2(self, *args) - | set_reg2(self, _reg1, _reg2) - | - | set_stkoff(self, *args) - | set_stkoff(self, off) - | - | stkoff(self, *args) - | stkoff(self) -> sval_t - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from argloc_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class argpartvec_t in module ida_typeinf: - -class argpartvec_t(__builtin__.object) - | Proxy of C++ qvector< argpart_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> argpart_t - | - | __init__(self, *args) - | __init__(self) -> argpartvec_t - | __init__(self, x) -> argpartvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> argpart_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> argpart_t - | begin(self) -> argpart_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> argpart_t - | end(self) -> argpart_t - | - | erase(self, *args) - | erase(self, it) -> argpart_t - | erase(self, first, last) -> argpart_t - | - | extract(self, *args) - | extract(self) -> argpart_t - | - | find(self, *args) - | find(self, x) -> argpart_t - | find(self, x) -> argpart_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=argpart_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> argpart_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> argpart_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_argpartvec_t> - | delete_argpartvec_t(self) - -Help on class array_type_data_t in module ida_typeinf: - -class array_type_data_t(__builtin__.object) - | Proxy of C++ array_type_data_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, b=0, n=0) -> array_type_data_t - | - | __repr__ = _swig_repr(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | base - | array_type_data_t_base_get(self) -> uint32 - | - | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t - | - | nelems - | array_type_data_t_nelems_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_array_type_data_t> - | delete_array_type_data_t(self) - -Help on function begin_type_updating in module ida_typeinf: - -begin_type_updating(*args) - begin_type_updating(utp) - - - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - - @param utp (C++: update_type_t) - -Help on class bitfield_type_data_t in module ida_typeinf: - -class bitfield_type_data_t(__builtin__.object) - | Proxy of C++ bitfield_type_data_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool - | - | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar - | - | thisown - | The membership flag - | - | width - | bitfield_type_data_t_width_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_bitfield_type_data_t> - | delete_bitfield_type_data_t(self) - -Help on function calc_c_cpp_name in module ida_typeinf: - -calc_c_cpp_name(*args) - calc_c_cpp_name(name, type, ccn_flags) -> str - - - Get C or C++ form of the name. - - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) - -Help on function calc_number_of_children in module ida_typeinf: - -calc_number_of_children(*args) - calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int - - - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) - -Help on function calc_tinfo_gaps in module ida_typeinf: - -calc_tinfo_gaps(*args) - calc_tinfo_gaps(out, typid) -> bool - -Help on function calc_type_size in module ida_typeinf: - -calc_type_size(*args) - calc_type_size(ti, tp) -> PyObject * - - - Returns the size of a type - @param ti: Type info. 'None' can be passed. - @param tp: type string - @return: - - None on failure - - The size of the type - -Help on class callregs_t in module ida_typeinf: - -class callregs_t(__builtin__.object) - | Proxy of C++ callregs_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> callregs_t - | __init__(self, cc) -> callregs_t - | - | __repr__ = _swig_repr(self) - | - | init_regs(self, *args) - | init_regs(self, cc) - | - | reginds(self, *args) - | reginds(self, gp_ind, fp_ind, r) -> bool - | - | reset(self, *args) - | reset(self) - | - | set(self, *args) - | set(self, _policy, gprs, fprs) - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | regcount(*args) - | regcount(cc) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * - | - | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * - | - | nregs - | callregs_t_nregs_get(self) -> int - | - | policy - | callregs_t_policy_get(self) -> argreg_policy_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_callregs_t> - | delete_callregs_t(self) - -Help on function callregs_t_regcount in module ida_typeinf: - -callregs_t_regcount(*args) - callregs_t_regcount(cc) -> int - -Help on function choose_local_tinfo in module ida_typeinf: - -choose_local_tinfo(*args) - choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - - - Choose a type from the local type library. - - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number - -Help on function choose_local_tinfo_and_delta in module ida_typeinf: - -choose_local_tinfo_and_delta(*args) - choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 - - - Choose a type from the local type library and specify the pointer - shift value. - - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) - @return: == 0 means nothing is chosen, otherwise an ordinal number - -Help on function choose_named_type in module ida_typeinf: - -choose_named_type(*args) - choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - - - Choose a type from a type library. - - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) - @return: false if nothing is chosen, otherwise true - -Help on function clear_tinfo_t in module ida_typeinf: - -clear_tinfo_t(*args) - clear_tinfo_t(_this) - -Help on function compact_til in module ida_typeinf: - -compact_til(*args) - compact_til(ti) -> bool - - - Collect garbage in til. Must be called before storing the til. - - @param ti (C++: til_t *) - @return: true if any memory was freed - -Help on function compare_tinfo in module ida_typeinf: - -compare_tinfo(*args) - compare_tinfo(t1, t2, tcflags) -> bool - -Help on class const_aloc_visitor_t in module ida_typeinf: - -class const_aloc_visitor_t(__builtin__.object) - | Proxy of C++ const_aloc_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> const_aloc_visitor_t - | - | __repr__ = _swig_repr(self) - | - | visit_location(self, *args) - | visit_location(self, v, off, size) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_const_aloc_visitor_t> - | delete_const_aloc_visitor_t(self) - -Help on function convert_pt_flags_to_hti in module ida_typeinf: - -convert_pt_flags_to_hti(*args) - convert_pt_flags_to_hti(pt_flags) -> int - - - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - - @param pt_flags (C++: int) - -Help on function copy_named_type in module ida_typeinf: - -copy_named_type(*args) - copy_named_type(dsttil, srctil, name) -> uint32 - - - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) - @return: ordinal number of the copied type. 0 means error - -Help on function copy_tinfo_t in module ida_typeinf: - -copy_tinfo_t(*args) - copy_tinfo_t(_this, r) - -Help on function create_numbered_type_name in module ida_typeinf: - -create_numbered_type_name(*args) - create_numbered_type_name(ord) -> str - - - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - - @param ord (C++: int32) - -Help on function create_tinfo in module ida_typeinf: - -create_tinfo(*args) - create_tinfo(_this, bt, bt2, ptr) -> bool - -Help on function default_compiler in module ida_typeinf: - -default_compiler(*args) - default_compiler() -> comp_t - - - Get compiler specified by \varmem{inf,idainfo,cc}. - -Help on function del_named_type in module ida_typeinf: - -del_named_type(*args) - del_named_type(ti, name, ntf_flags) -> bool - - - Delete information about a symbol. - - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @return: success - -Help on function del_numbered_type in module ida_typeinf: - -del_numbered_type(*args) - del_numbered_type(ti, ordinal) -> bool - - - Delete a numbered type. - - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - -Help on function del_til in module ida_typeinf: - -del_til(*args) - del_til(name) -> bool - - - Unload a til file. - - - @param name (C++: const char *) - -Help on function del_tinfo_attr in module ida_typeinf: - -del_tinfo_attr(*args) - del_tinfo_attr(tif, key, make_copy) -> bool - -Help on function deref_ptr in module ida_typeinf: - -deref_ptr(*args) - deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - - - Dereference a pointer. - - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) - @return: success - -Help on function deserialize_tinfo in module ida_typeinf: - -deserialize_tinfo(*args) - deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool - -Help on function dstr_tinfo in module ida_typeinf: - -dstr_tinfo(*args) - dstr_tinfo(tif) -> char const * - -Help on function dump_func_type_data in module ida_typeinf: - -dump_func_type_data(*args) - dump_func_type_data(fti, praloc_bits) -> str - - - Use 'func_type_data_t::dump()' - - - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) - -Help on function end_type_updating in module ida_typeinf: - -end_type_updating(*args) - end_type_updating(utp) - - - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) - - - @param utp (C++: update_type_t) - -Help on class enum_member_t in module ida_typeinf: - -class enum_member_t(__builtin__.object) - | Proxy of C++ enum_member_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> enum_member_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | enum_member_t_cmt_get(self) -> qstring * - | - | name - | enum_member_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | value - | enum_member_t_value_get(self) -> uint64 - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_enum_member_t> - | delete_enum_member_t(self) - -Help on class enum_member_vec_t in module ida_typeinf: - -class enum_member_vec_t(__builtin__.object) - | Proxy of C++ qvector< enum_member_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> enum_member_t - | - | __init__(self, *args) - | __init__(self) -> enum_member_vec_t - | __init__(self, x) -> enum_member_vec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> enum_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> enum_member_t - | begin(self) -> enum_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> enum_member_t - | end(self) -> enum_member_t - | - | erase(self, *args) - | erase(self, it) -> enum_member_t - | erase(self, first, last) -> enum_member_t - | - | extract(self, *args) - | extract(self) -> enum_member_t - | - | find(self, *args) - | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=enum_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> enum_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> enum_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_enum_member_vec_t> - | delete_enum_member_vec_t(self) - -Help on class enum_type_data_t in module ida_typeinf: - -class enum_type_data_t(enum_member_vec_t) - | Proxy of C++ enum_type_data_t class. - | - | Method resolution order: - | enum_type_data_t - | enum_member_vec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t - | - | __repr__ = _swig_repr(self) - | - | calc_mask(self, *args) - | calc_mask(self) -> uint64 - | - | calc_nbytes(self, *args) - | calc_nbytes(self) -> int - | - | is_64bit(self, *args) - | is_64bit(self) -> bool - | - | is_char(self, *args) - | is_char(self) -> bool - | - | is_hex(self, *args) - | is_hex(self) -> bool - | - | is_sdec(self, *args) - | is_sdec(self) -> bool - | - | is_udec(self, *args) - | is_udec(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bte - | enum_type_data_t_bte_get(self) -> bte_t - | - | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * - | - | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_enum_type_data_t> - | delete_enum_type_data_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from enum_member_vec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> enum_member_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> enum_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> enum_member_t - | begin(self) -> enum_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> enum_member_t - | end(self) -> enum_member_t - | - | erase(self, *args) - | erase(self, it) -> enum_member_t - | erase(self, first, last) -> enum_member_t - | - | extract(self, *args) - | extract(self) -> enum_member_t - | - | find(self, *args) - | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=enum_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> enum_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> enum_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from enum_member_vec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function extract_argloc in module ida_typeinf: - -extract_argloc(*args) - extract_argloc(vloc, ptype, is_retval) -> bool - - - Deserialize argument location. - - - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param is_retval (C++: bool) - -Help on function find_tinfo_udt_member in module ida_typeinf: - -find_tinfo_udt_member(*args) - find_tinfo_udt_member(udm, typid, strmem_flags) -> int - -Help on function first_named_type in module ida_typeinf: - -first_named_type(*args) - first_named_type(ti, ntf_flags) -> char const * - - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) - -Help on function for_all_arglocs in module ida_typeinf: - -for_all_arglocs(*args) - for_all_arglocs(vv, vloc, size, off=0) -> int - - - Compress larger argloc types and initiate the aloc visitor. - - - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) - -Help on function for_all_const_arglocs in module ida_typeinf: - -for_all_const_arglocs(*args) - for_all_const_arglocs(vv, vloc, size, off=0) -> int - - - See 'for_all_arglocs()' - - - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) - -Help on function free_til in module ida_typeinf: - -free_til(*args) - free_til(ti) - - - Free memory allocated by til. - - - @param ti (C++: til_t *) - -Help on function func_has_stkframe_hole in module ida_typeinf: - -func_has_stkframe_hole(*args) - func_has_stkframe_hole(ea, fti) -> bool - - - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) - -Help on class func_type_data_t in module ida_typeinf: - -class func_type_data_t(funcargvec_t) - | Proxy of C++ func_type_data_t class. - | - | Method resolution order: - | func_type_data_t - | funcargvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> func_type_data_t - | - | __repr__ = _swig_repr(self) - | - | dump(self, *args) - | dump(self, praloc_bits=0x02) -> bool - | - | get_call_method(self, *args) - | get_call_method(self) -> int - | - | guess_cc(self, *args) - | guess_cc(self, purged, cc_flags) -> cm_t - | - | is_high(self, *args) - | is_high(self) -> bool - | - | is_noret(self, *args) - | is_noret(self) -> bool - | - | is_pure(self, *args) - | is_pure(self) -> bool - | - | is_vararg_cc(self, *args) - | is_vararg_cc(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | cc - | func_type_data_t_cc_get(self) -> cm_t - | - | flags - | func_type_data_t_flags_get(self) -> int - | - | retloc - | func_type_data_t_retloc_get(self) -> argloc_t - | - | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t - | - | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t - | - | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_func_type_data_t> - | delete_func_type_data_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from funcargvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> funcarg_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> funcarg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> funcarg_t - | begin(self) -> funcarg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> funcarg_t - | end(self) -> funcarg_t - | - | erase(self, *args) - | erase(self, it) -> funcarg_t - | erase(self, first, last) -> funcarg_t - | - | extract(self, *args) - | extract(self) -> funcarg_t - | - | find(self, *args) - | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=funcarg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> funcarg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> funcarg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from funcargvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class funcarg_t in module ida_typeinf: - -class funcarg_t(__builtin__.object) - | Proxy of C++ funcarg_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> funcarg_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | argloc - | funcarg_t_argloc_get(self) -> argloc_t - | - | cmt - | funcarg_t_cmt_get(self) -> qstring * - | - | flags - | funcarg_t_flags_get(self) -> uint32 - | - | name - | funcarg_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | funcarg_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_funcarg_t> - | delete_funcarg_t(self) - -Help on class funcargvec_t in module ida_typeinf: - -class funcargvec_t(__builtin__.object) - | Proxy of C++ qvector< funcarg_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> funcarg_t - | - | __init__(self, *args) - | __init__(self) -> funcargvec_t - | __init__(self, x) -> funcargvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> funcarg_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> funcarg_t - | begin(self) -> funcarg_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> funcarg_t - | end(self) -> funcarg_t - | - | erase(self, *args) - | erase(self, it) -> funcarg_t - | erase(self, first, last) -> funcarg_t - | - | extract(self, *args) - | extract(self) -> funcarg_t - | - | find(self, *args) - | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=funcarg_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> funcarg_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> funcarg_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_funcargvec_t> - | delete_funcargvec_t(self) - -Help on function gcc_layout in module ida_typeinf: - -gcc_layout(*args) - gcc_layout() -> bool - - - Should use the struct/union layout as done by gcc? - -Help on function gen_decorate_name in module ida_typeinf: - -gen_decorate_name(*args) - gen_decorate_name(name, mangle, cc, type) -> str - - - Generic function for 'decorate_name()' (may be used in IDP modules) - - - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) - -Help on function gen_use_arg_tinfos in module ida_typeinf: - -gen_use_arg_tinfos(*args) - gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) - - - The main function using these callbacks: - - - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) - -Help on function get_abi_name in module ida_typeinf: - -get_abi_name(*args) - get_abi_name() -> str - - - Get ABI name. - - @return: length of the name (>=0) - -Help on function get_alias_target in module ida_typeinf: - -get_alias_target(*args) - get_alias_target(ti, ordinal) -> uint32 - - - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) - -Help on function get_arg_addrs in module ida_typeinf: - -get_arg_addrs(*args) - get_arg_addrs(caller) -> PyObject * - - - Retrieve addresses of argument initialization instructions - - @param caller: the address of the call instruction - @return: list of instruction addresses - -Help on function get_base_type in module ida_typeinf: - -get_base_type(*args) - get_base_type(t) -> type_t - - - Get get basic type bits ( 'TYPE_BASE_MASK' ) - - - @param t (C++: type_t) - -Help on function get_c_header_path in module ida_typeinf: - -get_c_header_path(*args) - get_c_header_path() -> str - - - Get the include directory path of the target compiler. - -Help on function get_c_macros in module ida_typeinf: - -get_c_macros(*args) - get_c_macros() -> str - - - Get predefined macros for the target compiler. - -Help on function get_comp in module ida_typeinf: - -get_comp(*args) - get_comp(comp) -> comp_t - - - Get compiler bits. - - - @param comp (C++: comp_t) - -Help on function get_compiler_abbr in module ida_typeinf: - -get_compiler_abbr(*args) - get_compiler_abbr(id) -> char const * - - - Get abbreviated compiler name. - - - @param id (C++: comp_t) - -Help on function get_compiler_name in module ida_typeinf: - -get_compiler_name(*args) - get_compiler_name(id) -> char const * - - - Get full compiler name. - - - @param id (C++: comp_t) - -Help on function get_compilers in module ida_typeinf: - -get_compilers(*args) - get_compilers(ids, names, abbrs) - - - Get names of all built-in compilers. - - - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) - -Help on function get_enum_member_expr in module ida_typeinf: - -get_enum_member_expr(*args) - get_enum_member_expr(tif, serial, value) -> str - - - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) - @return: success - -Help on function get_full_type in module ida_typeinf: - -get_full_type(*args) - get_full_type(t) -> type_t - - - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - - - @param t (C++: type_t) - -Help on function get_idainfo_by_type in module ida_typeinf: - -get_idainfo_by_type(*args) - get_idainfo_by_type(tif) -> bool - - - Extract information from a 'tinfo_t' . - - @param tif: the type to inspect (C++: const tinfo_t &) - -Help on function get_idati in module ida_typeinf: - -get_idati(*args) - get_idati() -> til_t - - - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. - -Help on function get_named_type in module ida_typeinf: - -get_named_type(*args) - get_named_type(til, name, ntf_flags) -> PyObject * - - - Get a type data by its name. - @param til: the type library - @param name: the type name - @param ntf_flags: a combination of NTF_* constants - @return: - None on failure - tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success - -Help on function get_named_type64 in module ida_typeinf: - -get_named_type64(*args) - get_named_type64(til, name, ntf_flags) -> PyObject * - - - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. - - @param name (C++: const char *) - @param ntf_flags (C++: int) - -Help on function get_numbered_type in module ida_typeinf: - -get_numbered_type(*args) - get_numbered_type(til, ordinal) -> PyObject * - - - Retrieve a type by its ordinal number. - - - @param ordinal (C++: uint32) - -Help on function get_numbered_type_name in module ida_typeinf: - -get_numbered_type_name(*args) - get_numbered_type_name(ti, ordinal) -> char const * - - - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) - -Help on function get_ordinal_from_idb_type in module ida_typeinf: - -get_ordinal_from_idb_type(*args) - get_ordinal_from_idb_type(name, type) -> int - - - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - - @param name (C++: const char *) - @param type (C++: const type_t *) - -Help on function get_ordinal_qty in module ida_typeinf: - -get_ordinal_qty(*args) - get_ordinal_qty(ti) -> uint32 - - - Get number of allocated ordinals. - - @param ti (C++: const til_t *) - @return: uint32(-1) if failed - -Help on function get_scalar_bt in module ida_typeinf: - -get_scalar_bt(*args) - get_scalar_bt(size) -> type_t - -Help on function get_stock_tinfo in module ida_typeinf: - -get_stock_tinfo(*args) - get_stock_tinfo(tif, id) -> bool - -Help on function get_tinfo_attr in module ida_typeinf: - -get_tinfo_attr(*args) - get_tinfo_attr(typid, key, bv, all_attrs) -> bool - -Help on function get_tinfo_attrs in module ida_typeinf: - -get_tinfo_attrs(*args) - get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool - -Help on function get_tinfo_details in module ida_typeinf: - -get_tinfo_details(*args) - get_tinfo_details(typid, bt2, buf) -> bool - -Help on function get_tinfo_pdata in module ida_typeinf: - -get_tinfo_pdata(*args) - get_tinfo_pdata(outptr, typid, what) -> size_t - -Help on function get_tinfo_property in module ida_typeinf: - -get_tinfo_property(*args) - get_tinfo_property(typid, gta_prop) -> size_t - -Help on function get_tinfo_size in module ida_typeinf: - -get_tinfo_size(*args) - get_tinfo_size(p_effalign, typid, gts_code) -> size_t - -Help on function get_type_flags in module ida_typeinf: - -get_type_flags(*args) - get_type_flags(t) -> type_t - - - Get type flags ( 'TYPE_FLAGS_MASK' ) - - - @param t (C++: type_t) - -Help on function get_type_ordinal in module ida_typeinf: - -get_type_ordinal(*args) - get_type_ordinal(ti, name) -> int32 - - - Get type ordinal by its name. - - - @param ti (C++: const til_t *) - @param name (C++: const char *) - -Help on function guess_func_cc in module ida_typeinf: - -guess_func_cc(*args) - guess_func_cc(fti, npurged, cc_flags) -> cm_t - - - Use 'func_type_data_t::guess_cc()' - - - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) - -Help on function guess_tinfo in module ida_typeinf: - -guess_tinfo(*args) - guess_tinfo(tif, id) -> int - - - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes - -Help on class ida_lowertype_helper_t in module ida_typeinf: - -class ida_lowertype_helper_t(lowertype_helper_t) - | Proxy of C++ ida_lowertype_helper_t class. - | - | Method resolution order: - | ida_lowertype_helper_t - | lowertype_helper_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t - | - | __repr__ = _swig_repr(self) - | - | func_has_stkframe_hole(self, *args) - | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | - | get_func_purged_bytes(self, *args) - | get_func_purged_bytes(self, candidate, arg3) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ida_lowertype_helper_t> - | delete_ida_lowertype_helper_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from lowertype_helper_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function idc_get_local_type in module ida_typeinf: - -idc_get_local_type(*args) - idc_get_local_type(ordinal, flags, buf, maxsize) -> int - -Help on function idc_get_local_type_name in module ida_typeinf: - -idc_get_local_type_name(*args) - idc_get_local_type_name(ordinal) -> str - -Help on function idc_get_local_type_raw in module ida_typeinf: - -idc_get_local_type_raw(*args) - idc_get_local_type_raw(ordinal) -> PyObject * - -Help on function idc_get_type in module ida_typeinf: - -idc_get_type(*args) - idc_get_type(ea) -> str - -Help on function idc_get_type_raw in module ida_typeinf: - -idc_get_type_raw(*args) - idc_get_type_raw(ea) -> PyObject * - -Help on function idc_guess_type in module ida_typeinf: - -idc_guess_type(*args) - idc_guess_type(ea) -> str - -Help on function idc_parse_decl in module ida_typeinf: - -idc_parse_decl(*args) - idc_parse_decl(ti, decl, flags) -> PyObject * - -Help on function idc_parse_types in module ida_typeinf: - -idc_parse_types(*args) - idc_parse_types(input, flags) -> int - -Help on function idc_print_type in module ida_typeinf: - -idc_print_type(*args) - idc_print_type(_type, _fields, name, flags) -> PyObject * - -Help on function idc_set_local_type in module ida_typeinf: - -idc_set_local_type(*args) - idc_set_local_type(ordinal, dcl, flags) -> int - -Help on function import_type in module ida_typeinf: - -import_type(*args) - import_type(til, idx, name, flags=0) -> tid_t - - - Copy a named type from til to idb. - - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error - -Help on function is_autosync in module ida_typeinf: - -is_autosync(*args) - is_autosync(name, type) -> bool - is_autosync(name, tif) -> bool - - - Is the specified idb type automatically synchronized? - - - @param name (C++: const char *) - @param type (C++: const type_t *) - -Help on function is_code_far in module ida_typeinf: - -is_code_far(*args) - is_code_far(cm) -> bool - - - Does the given model specify far code?. - - - @param cm (C++: cm_t) - -Help on function is_comp_unsure in module ida_typeinf: - -is_comp_unsure(*args) - is_comp_unsure(comp) -> comp_t - - - See 'COMP_UNSURE' . - - - @param comp (C++: comp_t) - -Help on function is_data_far in module ida_typeinf: - -is_data_far(*args) - is_data_far(cm) -> bool - - - Does the given model specify far data?. - - - @param cm (C++: cm_t) - -Help on function is_gcc in module ida_typeinf: - -is_gcc(*args) - is_gcc() -> bool - - - Is the target compiler 'COMP_GNU' ? - -Help on function is_gcc32 in module ida_typeinf: - -is_gcc32(*args) - is_gcc32() -> bool - - - Is the target compiler 32 bit gcc? - -Help on function is_gcc64 in module ida_typeinf: - -is_gcc64(*args) - is_gcc64() -> bool - - - Is the target compiler 64 bit gcc? - -Help on function is_ordinal_name in module ida_typeinf: - -is_ordinal_name(*args) - is_ordinal_name(name, ord=None) -> bool - - - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - - @param name (C++: const char *) - @param ord (C++: uint32 *) - -Help on function is_purging_cc in module ida_typeinf: - -is_purging_cc(*args) - is_purging_cc(cm) -> bool - - - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - - @param cm (C++: cm_t) - -Help on function is_restype_enum in module ida_typeinf: - -is_restype_enum(*args) - is_restype_enum(til, type) -> bool - -Help on function is_restype_struct in module ida_typeinf: - -is_restype_struct(*args) - is_restype_struct(til, type) -> bool - -Help on function is_restype_struni in module ida_typeinf: - -is_restype_struni(*args) - is_restype_struni(til, type) -> bool - -Help on function is_restype_void in module ida_typeinf: - -is_restype_void(*args) - is_restype_void(til, type) -> bool - -Help on function is_sdacl_byte in module ida_typeinf: - -is_sdacl_byte(*args) - is_sdacl_byte(t) -> bool - - - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - - @param t (C++: type_t) - -Help on function is_tah_byte in module ida_typeinf: - -is_tah_byte(*args) - is_tah_byte(t) -> bool - - - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - - @param t (C++: type_t) - -Help on function is_type_arithmetic in module ida_typeinf: - -is_type_arithmetic(*args) - is_type_arithmetic(t) -> bool - - - Is the type an arithmetic type? (floating or integral) - - - @param t (C++: type_t) - -Help on function is_type_array in module ida_typeinf: - -is_type_array(*args) - is_type_array(t) -> bool - - - See 'BT_ARRAY' . - - - @param t (C++: type_t) - -Help on function is_type_bitfld in module ida_typeinf: - -is_type_bitfld(*args) - is_type_bitfld(t) -> bool - - - See 'BT_BITFIELD' . - - - @param t (C++: type_t) - -Help on function is_type_bool in module ida_typeinf: - -is_type_bool(*args) - is_type_bool(t) -> bool - - - See 'BTF_BOOL' . - - - @param t (C++: type_t) - -Help on function is_type_char in module ida_typeinf: - -is_type_char(*args) - is_type_char(t) -> bool - - - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_complex in module ida_typeinf: - -is_type_complex(*args) - is_type_complex(t) -> bool - - - See 'BT_COMPLEX' . - - - @param t (C++: type_t) - -Help on function is_type_const in module ida_typeinf: - -is_type_const(*args) - is_type_const(t) -> bool - - - See 'BTM_CONST' . - - - @param t (C++: type_t) - -Help on function is_type_double in module ida_typeinf: - -is_type_double(*args) - is_type_double(t) -> bool - - - See 'BTF_DOUBLE' . - - - @param t (C++: type_t) - -Help on function is_type_enum in module ida_typeinf: - -is_type_enum(*args) - is_type_enum(t) -> bool - - - See 'BTF_ENUM' . - - - @param t (C++: type_t) - -Help on function is_type_ext_arithmetic in module ida_typeinf: - -is_type_ext_arithmetic(*args) - is_type_ext_arithmetic(t) -> bool - - - Is the type an extended arithmetic type? (arithmetic or enum) - - - @param t (C++: type_t) - -Help on function is_type_ext_integral in module ida_typeinf: - -is_type_ext_integral(*args) - is_type_ext_integral(t) -> bool - - - Is the type an extended integral type? (integral or enum) - - - @param t (C++: type_t) - -Help on function is_type_float in module ida_typeinf: - -is_type_float(*args) - is_type_float(t) -> bool - - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) - -Help on function is_type_floating in module ida_typeinf: - -is_type_floating(*args) - is_type_floating(t) -> bool - - - Is the type a floating point type? - - - @param t (C++: type_t) - -Help on function is_type_func in module ida_typeinf: - -is_type_func(*args) - is_type_func(t) -> bool - - - See 'BT_FUNC' . - - - @param t (C++: type_t) - -Help on function is_type_int in module ida_typeinf: - -is_type_int(*args) - is_type_int(bt) -> bool - - - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - - - @param bt (C++: type_t) - -Help on function is_type_int128 in module ida_typeinf: - -is_type_int128(*args) - is_type_int128(t) -> bool - - - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_int16 in module ida_typeinf: - -is_type_int16(*args) - is_type_int16(t) -> bool - - - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_int32 in module ida_typeinf: - -is_type_int32(*args) - is_type_int32(t) -> bool - - - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_int64 in module ida_typeinf: - -is_type_int64(*args) - is_type_int64(t) -> bool - - - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) - -Help on function is_type_integral in module ida_typeinf: - -is_type_integral(*args) - is_type_integral(t) -> bool - - - Is the type an integral type (char/short/int/long/bool)? - - - @param t (C++: type_t) - -Help on function is_type_ldouble in module ida_typeinf: - -is_type_ldouble(*args) - is_type_ldouble(t) -> bool - - - See 'BTF_LDOUBLE' . - - - @param t (C++: type_t) - -Help on function is_type_paf in module ida_typeinf: - -is_type_paf(*args) - is_type_paf(t) -> bool - - - Is the type a pointer, array, or function type? - - - @param t (C++: type_t) - -Help on function is_type_partial in module ida_typeinf: - -is_type_partial(*args) - is_type_partial(t) -> bool - - - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - - - @param t (C++: type_t) - -Help on function is_type_ptr in module ida_typeinf: - -is_type_ptr(*args) - is_type_ptr(t) -> bool - - - See 'BT_PTR' . - - - @param t (C++: type_t) - -Help on function is_type_ptr_or_array in module ida_typeinf: - -is_type_ptr_or_array(*args) - is_type_ptr_or_array(t) -> bool - - - Is the type a pointer or array type? - - - @param t (C++: type_t) - -Help on function is_type_struct in module ida_typeinf: - -is_type_struct(*args) - is_type_struct(t) -> bool - - - See 'BTF_STRUCT' . - - - @param t (C++: type_t) - -Help on function is_type_struni in module ida_typeinf: - -is_type_struni(*args) - is_type_struni(t) -> bool - - - Is the type a struct or union? - - - @param t (C++: type_t) - -Help on function is_type_sue in module ida_typeinf: - -is_type_sue(*args) - is_type_sue(t) -> bool - - - Is the type a struct/union/enum? - - - @param t (C++: type_t) - -Help on function is_type_tbyte in module ida_typeinf: - -is_type_tbyte(*args) - is_type_tbyte(t) -> bool - - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) - -Help on function is_type_typedef in module ida_typeinf: - -is_type_typedef(*args) - is_type_typedef(t) -> bool - - - See 'BTF_TYPEDEF' . - - - @param t (C++: type_t) - -Help on function is_type_uchar in module ida_typeinf: - -is_type_uchar(*args) - is_type_uchar(t) -> bool - - - See 'BTF_UCHAR' . - - - @param t (C++: type_t) - -Help on function is_type_uint in module ida_typeinf: - -is_type_uint(*args) - is_type_uint(t) -> bool - - - See 'BTF_UINT' . - - - @param t (C++: type_t) - -Help on function is_type_uint128 in module ida_typeinf: - -is_type_uint128(*args) - is_type_uint128(t) -> bool - - - See 'BTF_UINT128' . - - - @param t (C++: type_t) - -Help on function is_type_uint16 in module ida_typeinf: - -is_type_uint16(*args) - is_type_uint16(t) -> bool - - - See 'BTF_UINT16' . - - - @param t (C++: type_t) - -Help on function is_type_uint32 in module ida_typeinf: - -is_type_uint32(*args) - is_type_uint32(t) -> bool - - - See 'BTF_UINT32' . - - - @param t (C++: type_t) - -Help on function is_type_uint64 in module ida_typeinf: - -is_type_uint64(*args) - is_type_uint64(t) -> bool - - - See 'BTF_UINT64' . - - - @param t (C++: type_t) - -Help on function is_type_union in module ida_typeinf: - -is_type_union(*args) - is_type_union(t) -> bool - - - See 'BTF_UNION' . - - - @param t (C++: type_t) - -Help on function is_type_unknown in module ida_typeinf: - -is_type_unknown(*args) - is_type_unknown(t) -> bool - - - See 'BT_UNKNOWN' . - - - @param t (C++: type_t) - -Help on function is_type_void in module ida_typeinf: - -is_type_void(*args) - is_type_void(t) -> bool - - - See 'BTF_VOID' . - - - @param t (C++: type_t) - -Help on function is_type_volatile in module ida_typeinf: - -is_type_volatile(*args) - is_type_volatile(t) -> bool - - - See 'BTM_VOLATILE' . - - - @param t (C++: type_t) - -Help on function is_typeid_last in module ida_typeinf: - -is_typeid_last(*args) - is_typeid_last(t) -> bool - - - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - - @param t (C++: type_t) - -Help on function is_user_cc in module ida_typeinf: - -is_user_cc(*args) - is_user_cc(cm) -> bool - - - Does the calling convention specify argument locations explicitly? - - - @param cm (C++: cm_t) - -Help on function is_vararg_cc in module ida_typeinf: - -is_vararg_cc(*args) - is_vararg_cc(cm) -> bool - - - Does the calling convention use ellipsis? - - - @param cm (C++: cm_t) - -Help on function lexcompare_tinfo in module ida_typeinf: - -lexcompare_tinfo(*args) - lexcompare_tinfo(t1, t2, arg3) -> int - -Help on function load_til in module ida_typeinf: - -load_til(*args) - load_til(name, tildir=None) -> til_t - - - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf - -Help on function load_til_header in module ida_typeinf: - -load_til_header(*args) - load_til_header(tildir, name) -> til_t - - - Get human-readable til description. - - - @param tildir (C++: const char *) - @param name (C++: const char *) - -Help on function lower_type in module ida_typeinf: - -lower_type(*args) - lower_type(til, tif, name=None, _helper=None) -> int - - - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. - - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) - -Help on class lowertype_helper_t in module ida_typeinf: - -class lowertype_helper_t(__builtin__.object) - | Proxy of C++ lowertype_helper_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | func_has_stkframe_hole(self, *args) - | func_has_stkframe_hole(self, candidate, candidate_data) -> bool - | - | get_func_purged_bytes(self, *args) - | get_func_purged_bytes(self, candidate, candidate_data) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_lowertype_helper_t> - | delete_lowertype_helper_t(self) - -Help on function new_til in module ida_typeinf: - -new_til(*args) - new_til(name, desc) -> til_t - - - Initialize a til. - - - @param name (C++: const char *) - @param desc (C++: const char *) - -Help on function next_named_type in module ida_typeinf: - -next_named_type(*args) - next_named_type(ti, name, ntf_flags) -> char const * - - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) - -Help on function optimize_argloc in module ida_typeinf: - -optimize_argloc(*args) - optimize_argloc(vloc, size, gaps) -> bool - - - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) - -Help on function pack_idcobj_to_bv in module ida_typeinf: - -pack_idcobj_to_bv(*args) - pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t - - - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) - -Help on function pack_idcobj_to_idb in module ida_typeinf: - -pack_idcobj_to_idb(*args) - pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - - - Write a typed idc object to the database. - - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) - -Help on function pack_object_to_bv in module ida_typeinf: - -pack_object_to_bv(*args) - pack_object_to_bv(py_obj, ti, _type, _fields, base_ea, pio_flags=0) -> PyObject * - - - Packs a typed object to a string - @param ti: Type info. 'None' can be passed. - @param tp: type string - @param fields: fields string (may be empty or None) - @param base_ea: base ea used to relocate the pointers in the packed object - @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure - tuple(1, packed_buf) on success - -Help on function pack_object_to_idb in module ida_typeinf: - -pack_object_to_idb(*args) - pack_object_to_idb(py_obj, ti, _type, _fields, ea, pio_flags=0) -> PyObject * - - - Write a typed object to the database. - Raises an exception if wrong parameters were passed or conversion fails - Returns the error_t returned by idaapi.pack_object_to_idb - @param ti: Type info. 'None' can be passed. - @param tp: type string - @param fields: fields string (may be empty or None) - @param ea: ea to be used while packing - @param pio_flags: flags used while unpacking - -Help on function parse_decl in module ida_typeinf: - -parse_decl(*args) - parse_decl(tif, til, decl, flags) -> str - - - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) - -Help on function parse_decls in module ida_typeinf: - -parse_decls(*args) - parse_decls(til, input, printer, hti_flags) -> int - - - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) - @return: number of errors, 0 means ok. - -Help on class predicate_t in module ida_typeinf: - -class predicate_t(__builtin__.object) - | Proxy of C++ predicate_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> predicate_t - | - | __repr__ = _swig_repr(self) - | - | should_display(self, *args) - | should_display(self, til, name, type, fields) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_predicate_t> - | delete_predicate_t(self) - -Help on function print_argloc in module ida_typeinf: - -print_argloc(*args) - print_argloc(vloc, size=0, vflags=0) -> str - - - Convert an argloc to human readable form. - - - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) - -Help on function print_decls in module ida_typeinf: - -print_decls(*args) - print_decls(printer, til, py_ordinals, flags) -> PyObject * - - - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . - - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) - -Help on function print_tinfo in module ida_typeinf: - -print_tinfo(*args) - print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str - -Help on function print_type in module ida_typeinf: - -print_type(*args) - print_type(ea, prtype_flags) -> str - - - Get type declaration for the specified address. - - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) - @return: success - -Help on class ptr_type_data_t in module ida_typeinf: - -class ptr_type_data_t(__builtin__.object) - | Proxy of C++ ptr_type_data_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | is_code_ptr(self, *args) - | is_code_ptr(self) -> bool - | - | is_shifted(self, *args) - | is_shifted(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar - | - | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t - | - | delta - | ptr_type_data_t_delta_get(self) -> int32 - | - | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t - | - | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t - | - | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_ptr_type_data_t> - | delete_ptr_type_data_t(self) - -Help on function read_tinfo_bitfield_value in module ida_typeinf: - -read_tinfo_bitfield_value(*args) - read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 - -Help on class reginfovec_t in module ida_typeinf: - -class reginfovec_t(__builtin__.object) - | Proxy of C++ qvector< reg_info_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> reg_info_t - | - | __init__(self, *args) - | __init__(self) -> reginfovec_t - | __init__(self, x) -> reginfovec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> reg_info_t - | begin(self) -> reg_info_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> reg_info_t - | end(self) -> reg_info_t - | - | erase(self, *args) - | erase(self, it) -> reg_info_t - | erase(self, first, last) -> reg_info_t - | - | extract(self, *args) - | extract(self) -> reg_info_t - | - | find(self, *args) - | find(self, x) -> reg_info_t - | find(self, x) -> reg_info_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=reg_info_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> reg_info_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> reg_info_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_reginfovec_t> - | delete_reginfovec_t(self) - -Help on class regobj_t in module ida_typeinf: - -class regobj_t(__builtin__.object) - | Proxy of C++ regobj_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regobj_t - | - | __repr__ = _swig_repr(self) - | - | size(self, *args) - | size(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | regidx - | regobj_t_regidx_get(self) -> int - | - | relocate - | regobj_t_relocate_get(self) -> int - | - | thisown - | The membership flag - | - | value - | regobj_t_value_get(self) -> bytevec_t * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regobj_t> - | delete_regobj_t(self) - -Help on class regobjs_t in module ida_typeinf: - -class regobjs_t(regobjvec_t) - | Proxy of C++ regobjs_t class. - | - | Method resolution order: - | regobjs_t - | regobjvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> regobjs_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regobjs_t> - | delete_regobjs_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from regobjvec_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regobj_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> regobj_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> regobj_t - | begin(self) -> regobj_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> regobj_t - | end(self) -> regobj_t - | - | erase(self, *args) - | erase(self, it) -> regobj_t - | erase(self, first, last) -> regobj_t - | - | extract(self, *args) - | extract(self) -> regobj_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=regobj_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> regobj_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> regobj_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from regobjvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class regobjvec_t in module ida_typeinf: - -class regobjvec_t(__builtin__.object) - | Proxy of C++ qvector< regobj_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regobj_t - | - | __init__(self, *args) - | __init__(self) -> regobjvec_t - | __init__(self, x) -> regobjvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> regobj_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> regobj_t - | begin(self) -> regobj_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> regobj_t - | end(self) -> regobj_t - | - | erase(self, *args) - | erase(self, it) -> regobj_t - | erase(self, first, last) -> regobj_t - | - | extract(self, *args) - | extract(self) -> regobj_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=regobj_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> regobj_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> regobj_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_regobjvec_t> - | delete_regobjvec_t(self) - -Help on function remove_abi_opts in module ida_typeinf: - -remove_abi_opts(*args) - remove_abi_opts(abi_opts, user_level=False) -> bool - -Help on function remove_pointer in module ida_typeinf: - -remove_pointer(*args) - remove_pointer(tif) -> tinfo_t - - - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - - @param tif (C++: const tinfo_t &) - -Help on function remove_tinfo_pointer in module ida_typeinf: - -remove_tinfo_pointer(*args) - remove_tinfo_pointer(tif, name, til) -> PyObject * - - - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. - - @param tif (C++: tinfo_t *) - @param til (C++: const til_t *) - -Help on function replace_ordinal_typerefs in module ida_typeinf: - -replace_ordinal_typerefs(*args) - replace_ordinal_typerefs(til, tif) -> int - - - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) - -Help on function resolve_typedef in module ida_typeinf: - -resolve_typedef(*args) - resolve_typedef(til, type) -> type_t const * - -Help on class rrel_t in module ida_typeinf: - -class rrel_t(__builtin__.object) - | Proxy of C++ rrel_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> rrel_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | off - | rrel_t_off_get(self) -> sval_t - | - | reg - | rrel_t_reg_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_rrel_t> - | delete_rrel_t(self) - -Help on function save_tinfo in module ida_typeinf: - -save_tinfo(*args) - save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t - -Help on class scattered_aloc_t in module ida_typeinf: - -class scattered_aloc_t(argpartvec_t) - | Proxy of C++ scattered_aloc_t class. - | - | Method resolution order: - | scattered_aloc_t - | argpartvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> scattered_aloc_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_scattered_aloc_t> - | delete_scattered_aloc_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from argpartvec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> argpart_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> argpart_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> argpart_t - | begin(self) -> argpart_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> argpart_t - | end(self) -> argpart_t - | - | erase(self, *args) - | erase(self, it) -> argpart_t - | erase(self, first, last) -> argpart_t - | - | extract(self, *args) - | extract(self) -> argpart_t - | - | find(self, *args) - | find(self, x) -> argpart_t - | find(self, x) -> argpart_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=argpart_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> argpart_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> argpart_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from argpartvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on function score_tinfo in module ida_typeinf: - -score_tinfo(*args) - score_tinfo(tif) -> uint32 - -Help on function serialize_tinfo in module ida_typeinf: - -serialize_tinfo(*args) - serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool - -Help on function set_abi_name in module ida_typeinf: - -set_abi_name(*args) - set_abi_name(abiname, user_level=False) -> bool - - - Set abi name (see 'Compiler IDs' ) - - - @param abiname (C++: const char *) - @param user_level (C++: bool) - -Help on function set_c_header_path in module ida_typeinf: - -set_c_header_path(*args) - set_c_header_path(incdir) - - - Set include directory path the target compiler. - - - @param incdir (C++: const char *) - -Help on function set_c_macros in module ida_typeinf: - -set_c_macros(*args) - set_c_macros(macros) - - - Set predefined macros for the target compiler. - - - @param macros (C++: const char *) - -Help on function set_compiler in module ida_typeinf: - -set_compiler(*args) - set_compiler(cc, flags, abiname=None) -> bool - - - Change current compiler. - - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) - @return: success - -Help on function set_compiler_id in module ida_typeinf: - -set_compiler_id(*args) - set_compiler_id(id, abiname=None) -> bool - - - Set the compiler id (see 'Compiler IDs' ) - - - @param id (C++: comp_t) - @param abiname (C++: const char *) - -Help on function set_compiler_string in module ida_typeinf: - -set_compiler_string(*args) - set_compiler_string(compstr, user_level) -> bool - -Help on function set_numbered_type in module ida_typeinf: - -set_numbered_type(*args) - set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t - - - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) - -Help on function set_tinfo_attr in module ida_typeinf: - -set_tinfo_attr(*args) - set_tinfo_attr(tif, ta, may_overwrite) -> bool - -Help on function set_tinfo_attrs in module ida_typeinf: - -set_tinfo_attrs(*args) - set_tinfo_attrs(tif, ta) -> bool - -Help on function set_tinfo_property in module ida_typeinf: - -set_tinfo_property(*args) - set_tinfo_property(tif, sta_prop, x) -> size_t - -Help on function set_type_alias in module ida_typeinf: - -set_type_alias(*args) - set_type_alias(ti, src_ordinal, dst_ordinal) -> bool - - - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) - -Help on class simd_info_t in module ida_typeinf: - -class simd_info_t(__builtin__.object) - | Proxy of C++ simd_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t - | - | __repr__ = _swig_repr(self) - | - | match_pattern(self, *args) - | match_pattern(self, pattern) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | memtype - | simd_info_t_memtype_get(self) -> type_t - | - | name - | simd_info_t_name_get(self) -> char const * - | - | size - | simd_info_t_size_get(self) -> uint16 - | - | thisown - | The membership flag - | - | tif - | simd_info_t_tif_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_simd_info_t> - | delete_simd_info_t(self) - -Help on function store_til in module ida_typeinf: - -store_til(*args) - store_til(ti, tildir, name) -> bool - - - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @return: success - -Help on class text_sink_t in module ida_typeinf: - -class text_sink_t(__builtin__.object) - | Proxy of C++ text_sink_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self) -> text_sink_t - | - | __repr__ = _swig_repr(self) - | - | _print(self, *args) - | _print(self, str) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_text_sink_t> - | delete_text_sink_t(self) - -Help on class til_symbol_t in module ida_typeinf: - -class til_symbol_t(__builtin__.object) - | Proxy of C++ til_symbol_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, n=None, t=None) -> til_symbol_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | name - | til_symbol_t_name_get(self) -> char const * - | - | thisown - | The membership flag - | - | til - | til_symbol_t_til_get(self) -> til_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_til_symbol_t> - | delete_til_symbol_t(self) - -Help on class til_t in module ida_typeinf: - -class til_t(__builtin__.object) - | Proxy of C++ til_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> til_t - | - | __repr__ = _swig_repr(self) - | - | base(self, *args) - | base(self, n) -> til_t - | - | is_dirty(self, *args) - | is_dirty(self) -> bool - | - | set_dirty(self, *args) - | set_dirty(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cc - | til_t_cc_get(self) -> compiler_info_t - | - | desc - | til_t_desc_get(self) -> char * - | - | flags - | til_t_flags_get(self) -> uint32 - | - | name - | til_t_name_get(self) -> char * - | - | nbases - | til_t_nbases_get(self) -> int - | - | nrefs - | til_t_nrefs_get(self) -> int - | - | nstreams - | til_t_nstreams_get(self) -> int - | - | streams - | til_t_streams_get(self) -> til_stream_t ** - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_til_t> - | delete_til_t(self) - -Help on class tinfo_t in module ida_typeinf: - -class tinfo_t(__builtin__.object) - | Proxy of C++ tinfo_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __gt__(self, *args) - | __gt__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> tinfo_t - | __init__(self, decl_type) -> tinfo_t - | __init__(self, r) -> tinfo_t - | - | __le__(self, *args) - | __le__(self, r) -> bool - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __str__(self, *args) - | __str__(self) -> qstring - | - | _print(self, *args) - | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool - | - | append_covered(self, *args) - | append_covered(self, out, offset=0) -> bool - | - | calc_gaps(self, *args) - | calc_gaps(self, out) -> bool - | - | calc_purged_bytes(self, *args) - | calc_purged_bytes(self) -> int - | - | calc_score(self, *args) - | calc_score(self) -> uint32 - | - | calc_udt_aligns(self, *args) - | calc_udt_aligns(self, sudt_flags=0x0004) -> bool - | - | change_sign(self, *args) - | change_sign(self, sign) -> bool - | - | clear(self, *args) - | clear(self) - | - | clr_const(self, *args) - | clr_const(self) - | - | clr_const_volatile(self, *args) - | clr_const_volatile(self) - | - | clr_volatile(self, *args) - | clr_volatile(self) - | - | compare(self, *args) - | compare(self, r) -> int - | - | compare_with(self, *args) - | compare_with(self, r, tcflags=0) -> bool - | - | convert_array_to_ptr(self, *args) - | convert_array_to_ptr(self) -> bool - | - | copy(self, *args) - | copy(self) -> tinfo_t - | - | create_array(self, *args) - | create_array(self, p, decl_type=BT_ARRAY) -> bool - | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool - | - | create_bitfield(self, *args) - | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool - | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool - | - | create_enum(self, *args) - | create_enum(self, p, decl_type=BTF_ENUM) -> bool - | - | create_forward_decl(self, *args) - | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t - | - | create_func(self, *args) - | create_func(self, p, decl_type=BT_FUNC) -> bool - | - | create_ptr(self, *args) - | create_ptr(self, p, decl_type=BT_PTR) -> bool - | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool - | - | create_simple_type(self, *args) - | create_simple_type(self, decl_type) -> bool - | - | create_typedef(self, *args) - | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool - | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) - | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) - | - | create_udt(self, *args) - | create_udt(self, p, decl_type) -> bool - | - | del_attr(self, *args) - | del_attr(self, key, make_copy=True) -> bool - | - | del_attrs(self, *args) - | del_attrs(self) - | - | deserialize(self, *args) - | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool - | deserialize(self, til, type, fields, cmts=None) -> bool - | - | dstr(self, *args) - | dstr(self) -> char const * - | - | empty(self, *args) - | empty(self) -> bool - | - | equals_to(self, *args) - | equals_to(self, r) -> bool - | - | find_udt_member(self, *args) - | find_udt_member(self, udm, strmem_flags) -> int - | - | get_array_details(self, *args) - | get_array_details(self, ai) -> bool - | - | get_array_element(self, *args) - | get_array_element(self) -> tinfo_t - | - | get_array_nelems(self, *args) - | get_array_nelems(self) -> int - | - | get_attr(self, *args) - | get_attr(self, key, all_attrs=True) -> PyObject * - | - | get_attrs(self, *args) - | get_attrs(self, tav, all_attrs=False) -> bool - | - | get_bitfield_details(self, *args) - | get_bitfield_details(self, bi) -> bool - | - | get_declalign(self, *args) - | get_declalign(self) -> uchar - | - | get_decltype(self, *args) - | get_decltype(self) -> type_t - | - | get_enum_base_type(self, *args) - | get_enum_base_type(self) -> type_t - | - | get_enum_details(self, *args) - | get_enum_details(self, ei) -> bool - | - | get_final_ordinal(self, *args) - | get_final_ordinal(self) -> uint32 - | - | get_final_type_name(self, *args) - | get_final_type_name(self) -> bool - | - | get_func_details(self, *args) - | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool - | - | get_modifiers(self, *args) - | get_modifiers(self) -> type_t - | - | get_named_type(self, *args) - | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool - | - | get_nargs(self, *args) - | get_nargs(self) -> int - | - | get_next_type_name(self, *args) - | get_next_type_name(self) -> bool - | - | get_nth_arg(self, *args) - | get_nth_arg(self, n) -> tinfo_t - | - | get_numbered_type(self, *args) - | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool - | - | get_onemember_type(self, *args) - | get_onemember_type(self) -> tinfo_t - | - | get_ordinal(self, *args) - | get_ordinal(self) -> uint32 - | - | get_pointed_object(self, *args) - | get_pointed_object(self) -> tinfo_t - | - | get_ptr_details(self, *args) - | get_ptr_details(self, pi) -> bool - | - | get_ptrarr_object(self, *args) - | get_ptrarr_object(self) -> tinfo_t - | - | get_ptrarr_objsize(self, *args) - | get_ptrarr_objsize(self) -> int - | - | get_realtype(self, *args) - | get_realtype(self, full=False) -> type_t - | - | get_rettype(self, *args) - | get_rettype(self) -> tinfo_t - | - | get_sign(self, *args) - | get_sign(self) -> type_sign_t - | - | get_size(self, *args) - | get_size(self, p_effalign=None, gts_code=0) -> size_t - | - | get_til(self, *args) - | get_til(self) -> til_t - | - | get_type_name(self, *args) - | get_type_name(self) -> bool - | - | get_udt_details(self, *args) - | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool - | - | get_udt_nmembers(self, *args) - | get_udt_nmembers(self) -> int - | - | get_unpadded_size(self, *args) - | get_unpadded_size(self) -> size_t - | - | has_details(self, *args) - | has_details(self) -> bool - | - | has_vftable(self, *args) - | has_vftable(self) -> bool - | - | is_anonymous_udt(self, *args) - | is_anonymous_udt(self) -> bool - | - | is_arithmetic(self, *args) - | is_arithmetic(self) -> bool - | - | is_array(self, *args) - | is_array(self) -> bool - | - | is_bitfield(self, *args) - | is_bitfield(self) -> bool - | - | is_bool(self, *args) - | is_bool(self) -> bool - | - | is_castable_to(self, *args) - | is_castable_to(self, target) -> bool - | - | is_char(self, *args) - | is_char(self) -> bool - | - | is_complex(self, *args) - | is_complex(self) -> bool - | - | is_const(self, *args) - | is_const(self) -> bool - | - | is_correct(self, *args) - | is_correct(self) -> bool - | - | is_decl_array(self, *args) - | is_decl_array(self) -> bool - | - | is_decl_bitfield(self, *args) - | is_decl_bitfield(self) -> bool - | - | is_decl_bool(self, *args) - | is_decl_bool(self) -> bool - | - | is_decl_char(self, *args) - | is_decl_char(self) -> bool - | - | is_decl_complex(self, *args) - | is_decl_complex(self) -> bool - | - | is_decl_const(self, *args) - | is_decl_const(self) -> bool - | - | is_decl_double(self, *args) - | is_decl_double(self) -> bool - | - | is_decl_enum(self, *args) - | is_decl_enum(self) -> bool - | - | is_decl_float(self, *args) - | is_decl_float(self) -> bool - | - | is_decl_floating(self, *args) - | is_decl_floating(self) -> bool - | - | is_decl_func(self, *args) - | is_decl_func(self) -> bool - | - | is_decl_int(self, *args) - | is_decl_int(self) -> bool - | - | is_decl_int128(self, *args) - | is_decl_int128(self) -> bool - | - | is_decl_int16(self, *args) - | is_decl_int16(self) -> bool - | - | is_decl_int32(self, *args) - | is_decl_int32(self) -> bool - | - | is_decl_int64(self, *args) - | is_decl_int64(self) -> bool - | - | is_decl_last(self, *args) - | is_decl_last(self) -> bool - | - | is_decl_ldouble(self, *args) - | is_decl_ldouble(self) -> bool - | - | is_decl_paf(self, *args) - | is_decl_paf(self) -> bool - | - | is_decl_partial(self, *args) - | is_decl_partial(self) -> bool - | - | is_decl_ptr(self, *args) - | is_decl_ptr(self) -> bool - | - | is_decl_struct(self, *args) - | is_decl_struct(self) -> bool - | - | is_decl_sue(self, *args) - | is_decl_sue(self) -> bool - | - | is_decl_tbyte(self, *args) - | is_decl_tbyte(self) -> bool - | - | is_decl_typedef(self, *args) - | is_decl_typedef(self) -> bool - | - | is_decl_uchar(self, *args) - | is_decl_uchar(self) -> bool - | - | is_decl_udt(self, *args) - | is_decl_udt(self) -> bool - | - | is_decl_uint(self, *args) - | is_decl_uint(self) -> bool - | - | is_decl_uint128(self, *args) - | is_decl_uint128(self) -> bool - | - | is_decl_uint16(self, *args) - | is_decl_uint16(self) -> bool - | - | is_decl_uint32(self, *args) - | is_decl_uint32(self) -> bool - | - | is_decl_uint64(self, *args) - | is_decl_uint64(self) -> bool - | - | is_decl_union(self, *args) - | is_decl_union(self) -> bool - | - | is_decl_unknown(self, *args) - | is_decl_unknown(self) -> bool - | - | is_decl_void(self, *args) - | is_decl_void(self) -> bool - | - | is_decl_volatile(self, *args) - | is_decl_volatile(self) -> bool - | - | is_double(self, *args) - | is_double(self) -> bool - | - | is_empty_udt(self, *args) - | is_empty_udt(self) -> bool - | - | is_enum(self, *args) - | is_enum(self) -> bool - | - | is_ext_arithmetic(self, *args) - | is_ext_arithmetic(self) -> bool - | - | is_ext_integral(self, *args) - | is_ext_integral(self) -> bool - | - | is_float(self, *args) - | is_float(self) -> bool - | - | is_floating(self, *args) - | is_floating(self) -> bool - | - | is_forward_decl(self, *args) - | is_forward_decl(self) -> bool - | - | is_from_subtil(self, *args) - | is_from_subtil(self) -> bool - | - | is_func(self, *args) - | is_func(self) -> bool - | - | is_funcptr(self, *args) - | is_funcptr(self) -> bool - | - | is_high_func(self, *args) - | is_high_func(self) -> bool - | - | is_int(self, *args) - | is_int(self) -> bool - | - | is_int128(self, *args) - | is_int128(self) -> bool - | - | is_int16(self, *args) - | is_int16(self) -> bool - | - | is_int32(self, *args) - | is_int32(self) -> bool - | - | is_int64(self, *args) - | is_int64(self) -> bool - | - | is_integral(self, *args) - | is_integral(self) -> bool - | - | is_ldouble(self, *args) - | is_ldouble(self) -> bool - | - | is_manually_castable_to(self, *args) - | is_manually_castable_to(self, target) -> bool - | - | is_one_fpval(self, *args) - | is_one_fpval(self) -> bool - | - | is_paf(self, *args) - | is_paf(self) -> bool - | - | is_partial(self, *args) - | is_partial(self) -> bool - | - | is_ptr(self, *args) - | is_ptr(self) -> bool - | - | is_ptr_or_array(self, *args) - | is_ptr_or_array(self) -> bool - | - | is_purging_cc(self, *args) - | is_purging_cc(self) -> bool - | - | is_pvoid(self, *args) - | is_pvoid(self) -> bool - | - | is_scalar(self, *args) - | is_scalar(self) -> bool - | - | is_shifted_ptr(self, *args) - | is_shifted_ptr(self) -> bool - | - | is_signed(self, *args) - | is_signed(self) -> bool - | - | is_small_udt(self, *args) - | is_small_udt(self) -> bool - | - | is_sse_type(self, *args) - | is_sse_type(self) -> bool - | - | is_struct(self, *args) - | is_struct(self) -> bool - | - | is_sue(self, *args) - | is_sue(self) -> bool - | - | is_tbyte(self, *args) - | is_tbyte(self) -> bool - | - | is_typeref(self, *args) - | is_typeref(self) -> bool - | - | is_uchar(self, *args) - | is_uchar(self) -> bool - | - | is_udt(self, *args) - | is_udt(self) -> bool - | - | is_uint(self, *args) - | is_uint(self) -> bool - | - | is_uint128(self, *args) - | is_uint128(self) -> bool - | - | is_uint16(self, *args) - | is_uint16(self) -> bool - | - | is_uint32(self, *args) - | is_uint32(self) -> bool - | - | is_uint64(self, *args) - | is_uint64(self) -> bool - | - | is_union(self, *args) - | is_union(self) -> bool - | - | is_unknown(self, *args) - | is_unknown(self) -> bool - | - | is_unsigned(self, *args) - | is_unsigned(self) -> bool - | - | is_user_cc(self, *args) - | is_user_cc(self) -> bool - | - | is_vararg_cc(self, *args) - | is_vararg_cc(self) -> bool - | - | is_varstruct(self, *args) - | is_varstruct(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_void(self, *args) - | is_void(self) -> bool - | - | is_volatile(self, *args) - | is_volatile(self) -> bool - | - | is_well_defined(self, *args) - | is_well_defined(self) -> bool - | - | present(self, *args) - | present(self) -> bool - | - | read_bitfield_value(self, *args) - | read_bitfield_value(self, v, bitoff) -> uint64 - | - | remove_ptr_or_array(self, *args) - | remove_ptr_or_array(self) -> bool - | - | requires_qualifier(self, *args) - | requires_qualifier(self, name, offset) -> bool - | - | serialize(self, *args) - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * - | - | set_attr(self, *args) - | set_attr(self, ta, may_overwrite=True) -> bool - | - | set_attrs(self, *args) - | set_attrs(self, tav) -> bool - | - | set_const(self, *args) - | set_const(self) - | - | set_declalign(self, *args) - | set_declalign(self, declalign) -> bool - | - | set_modifiers(self, *args) - | set_modifiers(self, mod) - | - | set_named_type(self, *args) - | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | - | set_numbered_type(self, *args) - | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t - | - | set_symbol_type(self, *args) - | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t - | - | set_volatile(self, *args) - | set_volatile(self) - | - | swap(self, *args) - | swap(self, r) - | - | write_bitfield_value(self, *args) - | write_bitfield_value(self, dst, v, bitoff) -> uint64 - | - | ---------------------------------------------------------------------- - | Static methods defined here: - | - | get_stock(*args) - | get_stock(id) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tinfo_t> - | delete_tinfo_t(self) - -Help on function tinfo_t_get_stock in module ida_typeinf: - -tinfo_t_get_stock(*args) - tinfo_t_get_stock(id) -> tinfo_t - -Help on class tinfo_visitor_t in module ida_typeinf: - -class tinfo_visitor_t(__builtin__.object) - | Proxy of C++ tinfo_visitor_t class. - | - | Methods defined here: - | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, s=0) -> tinfo_visitor_t - | - | __repr__ = _swig_repr(self) - | - | apply_to(self, *args) - | apply_to(self, tif, out=None, name=None, cmt=None) -> int - | - | prune_now(self, *args) - | prune_now(self) - | - | visit_type(self, *args) - | visit_type(self, out, tif, name, cmt) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | state - | tinfo_visitor_t_state_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_tinfo_visitor_t> - | delete_tinfo_visitor_t(self) - -Help on class type_attr_t in module ida_typeinf: - -class type_attr_t(__builtin__.object) - | Proxy of C++ type_attr_t class. - | - | Methods defined here: - | - | __ge__(self, *args) - | __ge__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> type_attr_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | key - | type_attr_t_key_get(self) -> qstring * - | - | thisown - | The membership flag - | - | value - | type_attr_t_value_get(self) -> bytevec_t * - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_type_attr_t> - | delete_type_attr_t(self) - -Help on class type_attrs_t in module ida_typeinf: - -class type_attrs_t(__builtin__.object) - | Proxy of C++ qvector< type_attr_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> type_attr_t - | - | __init__(self, *args) - | __init__(self) -> type_attrs_t - | __init__(self, x) -> type_attrs_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> type_attr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> type_attr_t - | begin(self) -> type_attr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> type_attr_t - | end(self) -> type_attr_t - | - | erase(self, *args) - | erase(self, it) -> type_attr_t - | erase(self, first, last) -> type_attr_t - | - | extract(self, *args) - | extract(self) -> type_attr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=type_attr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> type_attr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> type_attr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_type_attrs_t> - | delete_type_attrs_t(self) - -Help on class type_mods_t in module ida_typeinf: - -class type_mods_t(__builtin__.object) - | Proxy of C++ type_mods_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> type_mods_t - | - | __repr__ = _swig_repr(self) - | - | clear(self, *args) - | clear(self) - | - | has_cmt(self, *args) - | has_cmt(self) -> bool - | - | has_info(self, *args) - | has_info(self) -> bool - | - | has_name(self, *args) - | has_name(self) -> bool - | - | has_type(self, *args) - | has_type(self) -> bool - | - | set_new_cmt(self, *args) - | set_new_cmt(self, c) - | - | set_new_name(self, *args) - | set_new_name(self, n) - | - | set_new_type(self, *args) - | set_new_type(self, t) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | type_mods_t_cmt_get(self) -> qstring * - | - | flags - | type_mods_t_flags_get(self) -> int - | - | name - | type_mods_t_name_get(self) -> qstring * - | - | thisown - | The membership flag - | - | type - | type_mods_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_type_mods_t> - | delete_type_mods_t(self) - -Help on class typedef_type_data_t in module ida_typeinf: - -class typedef_type_data_t(__builtin__.object) - | Proxy of C++ typedef_type_data_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t - | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t - | - | __repr__ = _swig_repr(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool - | - | resolve - | typedef_type_data_t_resolve_get(self) -> bool - | - | thisown - | The membership flag - | - | til - | typedef_type_data_t_til_get(self) -> til_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_typedef_type_data_t> - | delete_typedef_type_data_t(self) - -Help on class udt_member_t in module ida_typeinf: - -class udt_member_t(__builtin__.object) - | Proxy of C++ udt_member_t class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __init__(self, *args) - | __init__(self) -> udt_member_t - | - | __lt__(self, *args) - | __lt__(self, r) -> bool - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | begin(self, *args) - | begin(self) -> uint64 - | - | clr_baseclass(self, *args) - | clr_baseclass(self) - | - | clr_unaligned(self, *args) - | clr_unaligned(self) - | - | clr_vftable(self, *args) - | clr_vftable(self) - | - | clr_virtbase(self, *args) - | clr_virtbase(self) - | - | end(self, *args) - | end(self) -> uint64 - | - | is_anonymous_udm(self, *args) - | is_anonymous_udm(self) -> bool - | - | is_baseclass(self, *args) - | is_baseclass(self) -> bool - | - | is_bitfield(self, *args) - | is_bitfield(self) -> bool - | - | is_unaligned(self, *args) - | is_unaligned(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | is_virtbase(self, *args) - | is_virtbase(self) -> bool - | - | is_zero_bitfield(self, *args) - | is_zero_bitfield(self) -> bool - | - | set_baseclass(self, *args) - | set_baseclass(self) - | - | set_unaligned(self, *args) - | set_unaligned(self) - | - | set_vftable(self, *args) - | set_vftable(self) - | - | set_virtbase(self, *args) - | set_virtbase(self) - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cmt - | udt_member_t_cmt_get(self) -> qstring * - | - | effalign - | udt_member_t_effalign_get(self) -> int - | - | fda - | udt_member_t_fda_get(self) -> uchar - | - | name - | udt_member_t_name_get(self) -> qstring * - | - | offset - | udt_member_t_offset_get(self) -> uint64 - | - | size - | udt_member_t_size_get(self) -> uint64 - | - | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 - | - | thisown - | The membership flag - | - | type - | udt_member_t_type_get(self) -> tinfo_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_udt_member_t> - | delete_udt_member_t(self) - -Help on class udt_type_data_t in module ida_typeinf: - -class udt_type_data_t(udtmembervec_t) - | Proxy of C++ udt_type_data_t class. - | - | Method resolution order: - | udt_type_data_t - | udtmembervec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> udt_type_data_t - | - | __repr__ = _swig_repr(self) - | - | is_cppobj(self, *args) - | is_cppobj(self) -> bool - | - | is_last_baseclass(self, *args) - | is_last_baseclass(self, idx) -> bool - | - | is_msstruct(self, *args) - | is_msstruct(self) -> bool - | - | is_unaligned(self, *args) - | is_unaligned(self) -> bool - | - | is_vftable(self, *args) - | is_vftable(self) -> bool - | - | swap(self, *args) - | swap(self, r) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | effalign - | udt_type_data_t_effalign_get(self) -> uint32 - | - | is_union - | udt_type_data_t_is_union_get(self) -> bool - | - | pack - | udt_type_data_t_pack_get(self) -> uchar - | - | sda - | udt_type_data_t_sda_get(self) -> uchar - | - | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 - | - | thisown - | The membership flag - | - | total_size - | udt_type_data_t_total_size_get(self) -> size_t - | - | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_udt_type_data_t> - | delete_udt_type_data_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> udt_member_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> udt_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> udt_member_t - | begin(self) -> udt_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> udt_member_t - | end(self) -> udt_member_t - | - | erase(self, *args) - | erase(self, it) -> udt_member_t - | erase(self, first, last) -> udt_member_t - | - | extract(self, *args) - | extract(self) -> udt_member_t - | - | find(self, *args) - | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=udt_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> udt_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> udt_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class udtmembervec_t in module ida_typeinf: - -class udtmembervec_t(__builtin__.object) - | Proxy of C++ qvector< udt_member_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> udt_member_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | at(self, *args) - | at(self, _idx) -> udt_member_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> udt_member_t - | begin(self) -> udt_member_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> udt_member_t - | end(self) -> udt_member_t - | - | erase(self, *args) - | erase(self, it) -> udt_member_t - | erase(self, first, last) -> udt_member_t - | - | extract(self, *args) - | extract(self) -> udt_member_t - | - | find(self, *args) - | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=udt_member_t()) - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> udt_member_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> udt_member_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_udtmembervec_t> - | delete_udtmembervec_t(self) - -Help on function unpack_idcobj_from_bv in module ida_typeinf: - -unpack_idcobj_from_bv(*args) - unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - - - Read a typed idc object from the byte vector. - - - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) - -Help on function unpack_idcobj_from_idb in module ida_typeinf: - -unpack_idcobj_from_idb(*args) - unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - - - Collection of register objects. - - Read a typed idc object from the database - - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) - -Help on function unpack_object_from_bv in module ida_typeinf: - -unpack_object_from_bv(*args) - unpack_object_from_bv(ti, _type, _fields, bytes, pio_flags=0) -> PyObject * - - - Unpacks a buffer into an object. - Returns the error_t returned by idaapi.pack_object_to_idb - @param ti: Type info. 'None' can be passed. - @param tp: type string - @param fields: fields string (may be empty or None) - @param bytes: the bytes to unpack - @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure - - tuple(1, obj) on success - -Help on function unpack_object_from_idb in module ida_typeinf: - -unpack_object_from_idb(*args) - unpack_object_from_idb(ti, _type, _fields, ea, pio_flags=0) -> PyObject * - -Help on class valstr_t in module ida_typeinf: - -class valstr_t(__builtin__.object) - | Proxy of C++ valstr_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> valstr_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | info - | valstr_t_info_get(self) -> valinfo_t * - | - | length - | valstr_t_length_get(self) -> size_t - | - | members - | valstr_t_members_get(self) -> valstrs_t - | - | oneline - | valstr_t_oneline_get(self) -> qstring * - | - | props - | valstr_t_props_get(self) -> int - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_valstr_t> - | delete_valstr_t(self) - -Help on class valstrs_t in module ida_typeinf: - -class valstrs_t(valstrvec_t) - | Proxy of C++ valstrs_t class. - | - | Method resolution order: - | valstrs_t - | valstrvec_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> valstrs_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_valstrs_t> - | delete_valstrs_t(self) - | - | ---------------------------------------------------------------------- - | Methods inherited from valstrvec_t: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> valstr_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> valstr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> valstr_t - | begin(self) -> valstr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> valstr_t - | end(self) -> valstr_t - | - | erase(self, *args) - | erase(self, it) -> valstr_t - | erase(self, first, last) -> valstr_t - | - | extract(self, *args) - | extract(self) -> valstr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=valstr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> valstr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> valstr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from valstrvec_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - -Help on class valstrvec_t in module ida_typeinf: - -class valstrvec_t(__builtin__.object) - | Proxy of C++ qvector< valstr_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> valstr_t - | - | __init__(self, *args) - | __init__(self) -> valstrvec_t - | __init__(self, x) -> valstrvec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | at(self, *args) - | at(self, _idx) -> valstr_t - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> valstr_t - | begin(self) -> valstr_t - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> valstr_t - | end(self) -> valstr_t - | - | erase(self, *args) - | erase(self, it) -> valstr_t - | erase(self, first, last) -> valstr_t - | - | extract(self, *args) - | extract(self) -> valstr_t - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=valstr_t()) - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> valstr_t - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> valstr_t - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_valstrvec_t> - | delete_valstrvec_t(self) - -Help on function verify_argloc in module ida_typeinf: - -verify_argloc(*args) - verify_argloc(vloc, size, gaps) -> int - - - Verify 'argloc_t' . - - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) - @return: 0 if ok, otherwise an interr code. - -Help on function verify_tinfo in module ida_typeinf: - -verify_tinfo(*args) - verify_tinfo(typid) -> int - -Help on function visit_subtypes in module ida_typeinf: - -visit_subtypes(*args) - visit_subtypes(visitor, out, tif, name, cmt) -> int - -Help on function write_tinfo_bitfield_value in module ida_typeinf: - -write_tinfo_bitfield_value(*args) - write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 - -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -(stkargs and retloc too) - -info about argument locations has been calculated -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -otherwise "input" contains a C declaration - -"input" is file name, -""" - -ida_typeinf.HTI_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK -""" - -ida_typeinf.NTF_FIXNAME -""" -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" - 'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" - 'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if union - nb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by number- in: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by name- in: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offset- in: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.- in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type. - in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -to match the offsets and size info - -recalculate field alignments, struct packing, etc -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === -Help on function calc_dataseg in module ida_ua: - -calc_dataseg(*args) - calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t - - - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - - @param insn (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) - -Help on function can_decode in module ida_ua: - -can_decode(*args) - can_decode(ea) -> bool - - - Can the bytes at address 'ea' be decoded as instruction? - - @param ea: linear address (C++: ea_t) - @return: whether or not the contents at that address could be a valid - instruction - -Help on function construct_macro in module ida_ua: - -construct_macro(*args) - construct_macro(insn, enable, build_macro) -> bool - - - See ua.hpp's construct_macro(). - -Help on function create_insn in module ida_ua: - -create_insn(*args) - create_insn(ea, out=None) -> int - - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 - -Help on function create_outctx in module ida_ua: - -create_outctx(*args) - create_outctx(ea, F=0, suspop=0) -> outctx_base_t - - - Create a new output context. To delete it, just use "delete pctx" - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) - -Help on function decode_insn in module ida_ua: - -decode_insn(*args) - decode_insn(out, ea) -> int - - - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 - -Help on function decode_preceding_insn in module ida_ua: - -decode_preceding_insn(*args) - decode_preceding_insn(out, ea) -> PyObject * - - - Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea - @param out: instruction storage - @return: tuple(preceeding_ea or BADADDR, farref = Boolean) - -Help on function decode_prev_insn in module ida_ua: - -decode_prev_insn(*args) - decode_prev_insn(out, ea) -> ea_t - - - Decode previous instruction if it exists, fill 'out'. - - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) - -Help on function get_dtype_by_size in module ida_ua: - -get_dtype_by_size(*args) - get_dtype_by_size(size) -> int - - - Get 'op_t::dtype' from size. - - - @param size (C++: asize_t) - -Help on function get_dtype_flag in module ida_ua: - -get_dtype_flag(*args) - get_dtype_flag(dtype) -> flags_t - - - Get flags for 'op_t::dtype' field. - - - @param dtype (C++: op_dtype_t) - -Help on function get_dtype_size in module ida_ua: - -get_dtype_size(*args) - get_dtype_size(dtype) -> size_t - - - Get size of opt_::dtype field. - - - @param dtype (C++: op_dtype_t) - -Help on function get_immvals in module ida_ua: - -get_immvals(*args) - get_immvals(ea, n, F=0) -> PyObject * - - - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. - - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) - -Help on function get_lookback in module ida_ua: - -get_lookback(*args) - get_lookback() -> int - - - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) - -Help on function get_printable_immvals in module ida_ua: - -get_printable_immvals(*args) - get_printable_immvals(ea, n, F=0) -> PyObject * - - - Get immediate ready-to-print values at the specified address - - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) - -Help on function guess_table_address in module ida_ua: - -guess_table_address(*args) - guess_table_address(insn) -> ea_t - - - Guess the jump table address (ibm pc specific) - - - @param insn (C++: const insn_t &) - -Help on function guess_table_size in module ida_ua: - -guess_table_size(*args) - guess_table_size(insn, jump_table) -> asize_t - - - Guess the jump table size. - - - @param insn (C++: const insn_t &) - @param jump_table (C++: ea_t) - -Help on function insn_add_cref in module ida_ua: - -insn_add_cref(*args) - insn_add_cref(insn, to, opoff, type) - -Help on function insn_add_dref in module ida_ua: - -insn_add_dref(*args) - insn_add_dref(insn, to, opoff, type) - -Help on function insn_add_off_drefs in module ida_ua: - -insn_add_off_drefs(*args) - insn_add_off_drefs(insn, x, type, outf) -> ea_t - -Help on function insn_create_stkvar in module ida_ua: - -insn_create_stkvar(*args) - insn_create_stkvar(insn, x, v, flags) -> bool - -Help on class insn_t in module ida_ua: - -class insn_t(__builtin__.object) - | Proxy of C++ insn_t class. - | - | Methods defined here: - | - | __get_auxpref__(self, *args) - | __get_auxpref__(self) -> uint32 - | - | __get_operand__(self, *args) - | __get_operand__(self, n) -> op_t - | - | __get_ops__(self, *args) - | __get_ops__(self) -> operands_array - | - | __getitem__(self, idx) - | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t - | - | __init__(self, *args) - | __init__(self) -> insn_t - | - | __iter__(self) - | - | __repr__ = _swig_repr(self) - | - | __set_auxpref__(self, *args) - | __set_auxpref__(self, v) - | - | add_cref(self, *args) - | add_cref(self, to, opoff, type) - | - | add_dref(self, *args) - | add_dref(self, to, opoff, type) - | - | add_off_drefs(self, *args) - | add_off_drefs(self, x, type, outf) -> ea_t - | - | assign(self, *args) - | assign(self, other) - | - | create_op_data(self, *args) - | create_op_data(self, ea_, opoff, dtype) -> bool - | create_op_data(self, ea_, op) -> bool - | - | create_stkvar(self, *args) - | create_stkvar(self, x, v, flags_) -> bool - | - | get_canon_feature(self, *args) - | get_canon_feature(self) -> uint32 - | - | get_canon_mnem(self, *args) - | get_canon_mnem(self) -> char const * - | - | get_next_byte(self, *args) - | get_next_byte(self) -> uint8 - | - | get_next_dword(self, *args) - | get_next_dword(self) -> uint32 - | - | get_next_qword(self, *args) - | get_next_qword(self) -> uint64 - | - | get_next_word(self, *args) - | get_next_word(self) -> uint16 - | - | is_64bit(self, *args) - | is_64bit(self) -> bool - | - | is_canon_insn(self, *args) - | is_canon_insn(self) -> bool - | - | is_macro(self, *args) - | is_macro(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | Op1 - | - | Op2 - | - | Op3 - | - | Op4 - | - | Op5 - | - | Op6 - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | auxpref - | __get_auxpref__(self) -> uint32 - | - | cs - | insn_t_cs_get(self) -> ea_t - | - | ea - | insn_t_ea_get(self) -> ea_t - | - | flags - | insn_t_flags_get(self) -> int16 - | - | insnpref - | insn_t_insnpref_get(self) -> char - | - | ip - | insn_t_ip_get(self) -> ea_t - | - | itype - | insn_t_itype_get(self) -> uint16 - | - | ops - | __get_ops__(self) -> operands_array - | - | segpref - | insn_t_segpref_get(self) -> char - | - | size - | insn_t_size_get(self) -> uint16 - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_insn_t> - | delete_insn_t(self) - -Help on function insn_t__from_ptrval__ in module ida_ua: - -insn_t__from_ptrval__(*args) - insn_t__from_ptrval__(ptrval) -> insn_t - -Help on function is_floating_dtype in module ida_ua: - -is_floating_dtype(*args) - is_floating_dtype(dtype) -> bool - - - Is a floating type operand? - - - @param dtype (C++: op_dtype_t) - -Help on function map_code_ea in module ida_ua: - -map_code_ea(*args) - map_code_ea(insn, addr, opnum) -> ea_t - map_code_ea(insn, op) -> ea_t - - - Map a code address. This function takes into account the segment - translations. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) - -Help on function map_data_ea in module ida_ua: - -map_data_ea(*args) - map_data_ea(insn, addr, opnum=-1) -> ea_t - map_data_ea(insn, op) -> ea_t - - - Map a data address. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) - -Help on function map_ea in module ida_ua: - -map_ea(*args) - map_ea(insn, op, iscode) -> ea_t - map_ea(insn, addr, opnum, iscode) -> ea_t - -Help on class op_t in module ida_ua: - -class op_t(__builtin__.object) - | Proxy of C++ op_t class. - | - | Methods defined here: - | - | __get_addr__(self, *args) - | __get_addr__(self) -> ea_t - | - | __get_reg_phrase__(self, *args) - | __get_reg_phrase__(self) -> uint16 - | - | __get_specval__(self, *args) - | __get_specval__(self) -> ea_t - | - | __get_value__(self, *args) - | __get_value__(self) -> ea_t - | - | __init__(self, *args) - | __init__(self) -> op_t - | - | __repr__ = _swig_repr(self) - | - | __set_addr__(self, *args) - | __set_addr__(self, v) - | - | __set_reg_phrase__(self, *args) - | __set_reg_phrase__(self, r) - | - | __set_specval__(self, *args) - | __set_specval__(self, v) - | - | __set_value__(self, *args) - | __set_value__(self, v) - | - | assign(self, *args) - | assign(self, other) - | - | clr_shown(self, *args) - | clr_shown(self) - | - | has_reg(self, r) - | Checks if the operand accesses the given processor register - | - | is_imm(self, *args) - | is_imm(self, v) -> bool - | - | is_reg(self, *args) - | is_reg(self, r) -> bool - | - | set_shown(self, *args) - | set_shown(self) - | - | shown(self, *args) - | shown(self) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | addr - | __get_addr__(self) -> ea_t - | - | dtype - | op_t_dtype_get(self) -> op_dtype_t - | - | flags - | op_t_flags_get(self) -> uchar - | - | n - | op_t_n_get(self) -> uchar - | - | offb - | op_t_offb_get(self) -> char - | - | offo - | op_t_offo_get(self) -> char - | - | phrase - | __get_reg_phrase__(self) -> uint16 - | - | reg - | __get_reg_phrase__(self) -> uint16 - | - | specflag1 - | op_t_specflag1_get(self) -> char - | - | specflag2 - | op_t_specflag2_get(self) -> char - | - | specflag3 - | op_t_specflag3_get(self) -> char - | - | specflag4 - | op_t_specflag4_get(self) -> char - | - | specval - | __get_specval__(self) -> ea_t - | - | thisown - | The membership flag - | - | type - | op_t_type_get(self) -> optype_t - | - | value - | __get_value__(self) -> ea_t - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_op_t> - | delete_op_t(self) - -Help on function op_t__from_ptrval__ in module ida_ua: - -op_t__from_ptrval__(*args) - op_t__from_ptrval__(ptrval) -> op_t - -Help on class operands_array in module ida_ua: - -class operands_array(__builtin__.object) - | Proxy of C++ wrapped_array_t< op_t,8 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> op_t - | - | __init__(self, *args) - | __init__(self, data) -> operands_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | operands_array_data_get(self) -> op_t (&)[8] - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_operands_array> - | delete_operands_array(self) - -Help on class outctx_base_t in module ida_ua: - -class outctx_base_t(__builtin__.object) - | Proxy of C++ outctx_base_t class. - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | close_comment(self, *args) - | close_comment(self) - | - | clr_gen_label(self, *args) - | clr_gen_label(self) - | - | display_voids(self, *args) - | display_voids(self) -> bool - | - | flush_buf(self, *args) - | flush_buf(self, buf, indent=-1) -> bool - | - | flush_outbuf(self, *args) - | flush_outbuf(self, indent=-1) -> bool - | - | forbid_annotations(self, *args) - | forbid_annotations(self) -> int - | - | force_code(self, *args) - | force_code(self) -> bool - | - | gen_block_cmt(self, *args) - | gen_block_cmt(self, cmt, color) -> bool - | - | gen_border_line(self, *args) - | gen_border_line(self, solid=False) -> bool - | - | gen_cmt_line(self, *args) - | gen_cmt_line(self, format) -> bool - | - | gen_collapsed_line(self, *args) - | gen_collapsed_line(self, format) -> bool - | - | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool - | - | gen_empty_line_without_annotations(self, *args) - | gen_empty_line_without_annotations(self) - | - | gen_printf(self, *args) - | gen_printf(self, indent, format) -> bool - | - | gen_xref_lines(self, *args) - | gen_xref_lines(self) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | - | init_lines_array(self, *args) - | init_lines_array(self, answers, maxsize) - | - | multiline(self, *args) - | multiline(self) -> bool - | - | only_main_line(self, *args) - | only_main_line(self) -> bool - | - | out_addr_tag(self, *args) - | out_addr_tag(self, ea) - | - | out_btoa(self, *args) - | out_btoa(self, Word, radix=0) - | - | out_char(self, *args) - | out_char(self, c) - | - | out_chars(self, *args) - | out_chars(self, c, n) - | - | out_colored_register_line(self, *args) - | out_colored_register_line(self, str) - | - | out_keyword(self, *args) - | out_keyword(self, str) - | - | out_line(self, *args) - | out_line(self, str, color=0) - | - | out_long(self, *args) - | out_long(self, v, radix) - | - | out_name_expr(self, *args) - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | - | out_printf(self, *args) - | out_printf(self, format) - | - | out_register(self, *args) - | out_register(self, str) - | - | out_spaces(self, *args) - | out_spaces(self, len) - | - | out_symbol(self, *args) - | out_symbol(self, c) - | - | out_tagoff(self, *args) - | out_tagoff(self, tag) - | - | out_tagon(self, *args) - | out_tagon(self, tag) - | - | out_value(self, *args) - | out_value(self, x, outf=0) -> flags_t - | - | print_label_now(self, *args) - | print_label_now(self) -> bool - | - | restore_ctxflags(self, *args) - | restore_ctxflags(self, saved_flags) - | - | retrieve_cmt(self, *args) - | retrieve_cmt(self) -> ssize_t - | - | retrieve_name(self, *args) - | retrieve_name(self, arg2, arg3) -> ssize_t - | - | set_comment_addr(self, *args) - | set_comment_addr(self, ea) - | - | set_dlbind_opnd(self, *args) - | set_dlbind_opnd(self) - | - | set_gen_cmt(self, *args) - | set_gen_cmt(self, on=True) - | - | set_gen_demangled_label(self, *args) - | set_gen_demangled_label(self) - | - | set_gen_label(self, *args) - | set_gen_label(self) - | - | set_gen_xrefs(self, *args) - | set_gen_xrefs(self, on=True) - | - | setup_outctx(self, *args) - | setup_outctx(self, prefix, makeline_flags) - | - | stack_view(self, *args) - | stack_view(self) -> bool - | - | term_outctx(self, *args) - | term_outctx(self, prefix=None) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int - | - | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t - | - | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * - | - | thisown - | The membership flag - -Help on function outctx_base_t__from_ptrval__ in module ida_ua: - -outctx_base_t__from_ptrval__(*args) - outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t - -Help on class outctx_t in module ida_ua: - -class outctx_t(outctx_base_t) - | Proxy of C++ outctx_t class. - | - | Method resolution order: - | outctx_t - | outctx_base_t - | __builtin__.object - | - | Methods defined here: - | - | __init__(self, *args, **kwargs) - | - | __repr__ = _swig_repr(self) - | - | gen_func_footer(self, *args) - | gen_func_footer(self, pfn) - | - | gen_func_header(self, *args) - | gen_func_header(self, pfn) - | - | gen_header(self, *args) - | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) - | - | gen_header_extra(self, *args) - | gen_header_extra(self) - | - | gen_xref_lines(self, *args) - | gen_xref_lines(self) -> bool - | - | out_custom_mnem(self, *args) - | out_custom_mnem(self, mnem, width=8, postfix=None) - | - | out_data(self, *args) - | out_data(self, analyze_only) - | - | out_immchar_cmts(self, *args) - | out_immchar_cmts(self) - | - | out_mnem(self, *args) - | out_mnem(self, width=8, postfix=None) - | - | out_mnemonic(self, *args) - | out_mnemonic(self) - | - | out_one_operand(self, *args) - | out_one_operand(self, n) -> bool - | - | out_specea(self, *args) - | out_specea(self, segtype) -> bool - | - | retrieve_cmt(self, *args) - | retrieve_cmt(self) -> ssize_t - | - | retrieve_name(self, *args) - | retrieve_name(self, arg2, arg3) -> ssize_t - | - | set_bin_state(self, *args) - | set_bin_state(self, value) - | - | setup_outctx(self, *args) - | setup_outctx(self, prefix, flags) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t - | - | bin_state - | outctx_t_bin_state_get(self) -> char - | - | bin_width - | outctx_t_bin_width_get(self) -> int - | - | curlabel - | outctx_t_curlabel_get(self) -> qstring * - | - | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int - | - | insn - | outctx_t_insn_get(self) -> insn_t - | - | thisown - | The membership flag - | - | wif - | outctx_t_wif_get(self) -> printop_t - | - | ---------------------------------------------------------------------- - | Methods inherited from outctx_base_t: - | - | close_comment(self, *args) - | close_comment(self) - | - | clr_gen_label(self, *args) - | clr_gen_label(self) - | - | display_voids(self, *args) - | display_voids(self) -> bool - | - | flush_buf(self, *args) - | flush_buf(self, buf, indent=-1) -> bool - | - | flush_outbuf(self, *args) - | flush_outbuf(self, indent=-1) -> bool - | - | forbid_annotations(self, *args) - | forbid_annotations(self) -> int - | - | force_code(self, *args) - | force_code(self) -> bool - | - | gen_block_cmt(self, *args) - | gen_block_cmt(self, cmt, color) -> bool - | - | gen_border_line(self, *args) - | gen_border_line(self, solid=False) -> bool - | - | gen_cmt_line(self, *args) - | gen_cmt_line(self, format) -> bool - | - | gen_collapsed_line(self, *args) - | gen_collapsed_line(self, format) -> bool - | - | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool - | - | gen_empty_line_without_annotations(self, *args) - | gen_empty_line_without_annotations(self) - | - | gen_printf(self, *args) - | gen_printf(self, indent, format) -> bool - | - | get_stkvar(self, *args) - | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * - | - | init_lines_array(self, *args) - | init_lines_array(self, answers, maxsize) - | - | multiline(self, *args) - | multiline(self) -> bool - | - | only_main_line(self, *args) - | only_main_line(self) -> bool - | - | out_addr_tag(self, *args) - | out_addr_tag(self, ea) - | - | out_btoa(self, *args) - | out_btoa(self, Word, radix=0) - | - | out_char(self, *args) - | out_char(self, c) - | - | out_chars(self, *args) - | out_chars(self, c, n) - | - | out_colored_register_line(self, *args) - | out_colored_register_line(self, str) - | - | out_keyword(self, *args) - | out_keyword(self, str) - | - | out_line(self, *args) - | out_line(self, str, color=0) - | - | out_long(self, *args) - | out_long(self, v, radix) - | - | out_name_expr(self, *args) - | out_name_expr(self, x, ea, off=BADADDR) -> bool - | - | out_printf(self, *args) - | out_printf(self, format) - | - | out_register(self, *args) - | out_register(self, str) - | - | out_spaces(self, *args) - | out_spaces(self, len) - | - | out_symbol(self, *args) - | out_symbol(self, c) - | - | out_tagoff(self, *args) - | out_tagoff(self, tag) - | - | out_tagon(self, *args) - | out_tagon(self, tag) - | - | out_value(self, *args) - | out_value(self, x, outf=0) -> flags_t - | - | print_label_now(self, *args) - | print_label_now(self) -> bool - | - | restore_ctxflags(self, *args) - | restore_ctxflags(self, saved_flags) - | - | set_comment_addr(self, *args) - | set_comment_addr(self, ea) - | - | set_dlbind_opnd(self, *args) - | set_dlbind_opnd(self) - | - | set_gen_cmt(self, *args) - | set_gen_cmt(self, on=True) - | - | set_gen_demangled_label(self, *args) - | set_gen_demangled_label(self) - | - | set_gen_label(self, *args) - | set_gen_label(self) - | - | set_gen_xrefs(self, *args) - | set_gen_xrefs(self, on=True) - | - | stack_view(self, *args) - | stack_view(self) -> bool - | - | term_outctx(self, *args) - | term_outctx(self, prefix=None) -> int - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from outctx_base_t: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int - | - | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t - | - | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * - -Help on function outctx_t__from_ptrval__ in module ida_ua: - -outctx_t__from_ptrval__(*args) - outctx_t__from_ptrval__(ptrval) -> outctx_t - -Help on function print_insn_mnem in module ida_ua: - -print_insn_mnem(*args) - print_insn_mnem(ea) -> str - - - Print instruction mnemonics. - - @param ea: linear address of the instruction (C++: ea_t) - @return: success - -Help on function print_operand in module ida_ua: - -print_operand(*args) - print_operand(ea, n, getn_flags=0, newtype=None) -> str - - - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) - @return: success - -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error -""" - -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" - -ida_ua.FCBF_ERR_REPL -""" -of a hex representation of the problematic byte - -in case of an error, use a CP_REPLCHAR instead -""" - -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" - -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -currently works only for floating point numbers - -do not suppress leading spaces -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === -Help on function add_cref in module ida_xref: - -add_cref(*args) - add_cref(frm, to, type) -> bool - - - Create a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success - -Help on function add_dref in module ida_xref: - -add_dref(*args) - add_dref(frm, to, type) -> bool - - - Create a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) - -Help on function calc_switch_cases in module ida_xref: - -calc_switch_cases(*args) - calc_switch_cases(ea, si) -> cases_and_targets_t - - - Get information about a switch's cases. - - The returned information can be used as follows: - - for idx in range(len(results.cases)): - cur_case = results.cases[idx] - for cidx in range(len(cur_case)): - print("case: %d" % cur_case[cidx]) - print(" goto 0x%x" % results.targets[idx]) - - @param ea: address of the 'indirect jump' instruction - @param si: switch information - - @return: a structure with 2 members: 'cases', and 'targets'. - -Help on class cases_and_targets_t in module ida_xref: - -class cases_and_targets_t(__builtin__.object) - | Proxy of C++ cases_and_targets_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> cases_and_targets_t - | - | __repr__ = _swig_repr(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cases - | cases_and_targets_t_cases_get(self) -> casevec_t - | - | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_cases_and_targets_t> - | delete_cases_and_targets_t(self) - -Help on class casevec_t in module ida_xref: - -class casevec_t(__builtin__.object) - | Proxy of C++ qvector< qvector< sval_t > > class. - | - | Methods defined here: - | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | - | __getitem__(self, *args) - | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ - | - | __init__(self, *args) - | __init__(self) -> casevec_t - | __init__(self, x) -> casevec_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__ = size(self, *args) - | - | __ne__(self, *args) - | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) - | __setitem__(self, i, v) - | - | _del(self, *args) - | _del(self, x) -> bool - | - | add_unique(self, *args) - | add_unique(self, x) -> bool - | - | append = push_back(self, *args) - | - | at = __getitem__(self, *args) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) - | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | - | capacity(self, *args) - | capacity(self) -> size_t - | - | clear(self, *args) - | clear(self) - | - | empty(self, *args) - | empty(self) -> bool - | - | end(self, *args) - | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | - | erase(self, *args) - | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | - | extract(self, *args) - | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ - | - | find(self, *args) - | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | grow(self, *args) - | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ - | - | has(self, *args) - | has(self, x) -> bool - | - | inject(self, *args) - | inject(self, s, len) - | - | insert(self, *args) - | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ - | - | pop_back(self, *args) - | pop_back(self) - | - | push_back(self, *args) - | push_back(self, x) - | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ - | - | qclear(self, *args) - | qclear(self) - | - | reserve(self, *args) - | reserve(self, cnt) - | - | resize(self, *args) - | resize(self, _newsize, x) - | resize(self, _newsize) - | - | size(self, *args) - | size(self) -> size_t - | - | swap(self, *args) - | swap(self, r) - | - | truncate(self, *args) - | truncate(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_casevec_t> - | delete_casevec_t(self) - -Help on function create_switch_table in module ida_xref: - -create_switch_table(*args) - create_switch_table(ea, si) -> bool - - - Create switch table from the switch information - - @param ea: address of the 'indirect jump' instruction - @param si: switch information - - @return: Boolean - -Help on function create_switch_xrefs in module ida_xref: - -create_switch_xrefs(*args) - create_switch_xrefs(ea, si) -> bool - - - This function creates xrefs from the indirect jump. - - Usually there is no need to call this function directly because the kernel - will call it for switch tables - - Note: Custom switch information are not supported yet. - - @param ea: address of the 'indirect jump' instruction - @param si: switch information - - @return: Boolean - -Help on function del_cref in module ida_xref: - -del_cref(*args) - del_cref(frm, to, expand) -> int - - - Delete a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - -Help on function del_dref in module ida_xref: - -del_dref(*args) - del_dref(frm, to) - - - Delete a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - -Help on function delete_switch_table in module ida_xref: - -delete_switch_table(*args) - delete_switch_table(jump_ea, si) - -Help on function get_first_cref_from in module ida_xref: - -get_first_cref_from(*args) - get_first_cref_from(frm) -> ea_t - - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . - -Help on function get_first_cref_to in module ida_xref: - -get_first_cref_to(*args) - get_first_cref_to(to) -> ea_t - - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_first_dref_from in module ida_xref: - -get_first_dref_from(*args) - get_first_dref_from(frm) -> ea_t - - - Get first data referenced from the specified address. - - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. - -Help on function get_first_dref_to in module ida_xref: - -get_first_dref_to(*args) - get_first_dref_to(to) -> ea_t - - - Get address of instruction/data referencing to the specified data. - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_first_fcref_from in module ida_xref: - -get_first_fcref_from(*args) - get_first_fcref_from(frm) -> ea_t - -Help on function get_first_fcref_to in module ida_xref: - -get_first_fcref_to(*args) - get_first_fcref_to(to) -> ea_t - -Help on function get_next_cref_from in module ida_xref: - -get_next_cref_from(*args) - get_next_cref_from(frm, current) -> ea_t - - - Get next instruction referenced from the specified instruction. - - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. - -Help on function get_next_cref_to in module ida_xref: - -get_next_cref_to(*args) - get_next_cref_to(to, current) -> ea_t - - - Get next instruction referencing to the specified instruction. - - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_next_dref_from in module ida_xref: - -get_next_dref_from(*args) - get_next_dref_from(frm, current) -> ea_t - - - Get next data referenced from the specified address. - - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference - -Help on function get_next_dref_to in module ida_xref: - -get_next_dref_to(*args) - get_next_dref_to(to, current) -> ea_t - - - Get address of instruction/data referencing to the specified data - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_next_fcref_from in module ida_xref: - -get_next_fcref_from(*args) - get_next_fcref_from(frm, current) -> ea_t - -Help on function get_next_fcref_to in module ida_xref: - -get_next_fcref_to(*args) - get_next_fcref_to(to, current) -> ea_t - -Help on function has_external_refs in module ida_xref: - -has_external_refs(*args) - has_external_refs(pfn, ea) -> bool - - - Has a location external to the function references? - - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) - -Help on class xrefblk_t in module ida_xref: - -class xrefblk_t(__builtin__.object) - | Proxy of C++ xrefblk_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> xrefblk_t - | - | __repr__ = _swig_repr(self) - | - | first_from(self, *args) - | first_from(self, _from, flags) -> bool - | - | first_to(self, *args) - | first_to(self, _to, flags) -> bool - | - | next_from(self, *args) - | next_from(self) -> bool - | next_from(self, _from, _to, flags) -> bool - | - | next_to(self, *args) - | next_to(self) -> bool - | next_to(self, _from, _to, flags) -> bool - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | frm - | xrefblk_t_frm_get(self) -> ea_t - | - | iscode - | xrefblk_t_iscode_get(self) -> uchar - | - | thisown - | The membership flag - | - | to - | xrefblk_t_to_get(self) -> ea_t - | - | type - | xrefblk_t_type_get(self) -> uchar - | - | user - | xrefblk_t_user_get(self) -> uchar - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = <built-in function delete_xrefblk_t> - | delete_xrefblk_t(self) - -Help on function xrefchar in module ida_xref: - -xrefchar(*args) - xrefchar(xrtype) -> char - - - Get character describing the xref type. - - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) - -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL -""" -return all references -""" - -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === -Help on function AddSeg in module idc: - -AddSeg(startea, endea, base, use32, align, comb) - -Help on function AutoMark in module idc: - -AutoMark(ea, qtype) - Plan to analyze an address - -Help on class DeprecatedIDCError in module idc: - -class DeprecatedIDCError(exceptions.Exception) - | Exception for deprecated function calls - | - | Method resolution order: - | DeprecatedIDCError - | exceptions.Exception - | exceptions.BaseException - | __builtin__.object - | - | Data descriptors defined here: - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Methods inherited from exceptions.Exception: - | - | __init__(...) - | x.__init__(...) initializes x; see help(type(x)) for signature - | - | ---------------------------------------------------------------------- - | Data and other attributes inherited from exceptions.Exception: - | - | __new__ = <built-in method __new__ of type object> - | T.__new__(S, ...) -> a new object with type S, a subtype of T - | - | ---------------------------------------------------------------------- - | Methods inherited from exceptions.BaseException: - | - | __delattr__(...) - | x.__delattr__('name') <==> del x.name - | - | __getattribute__(...) - | x.__getattribute__('name') <==> x.name - | - | __getitem__(...) - | x.__getitem__(y) <==> x[y] - | - | __getslice__(...) - | x.__getslice__(i, j) <==> x[i:j] - | - | Use of negative indices is not supported. - | - | __reduce__(...) - | - | __repr__(...) - | x.__repr__() <==> repr(x) - | - | __setattr__(...) - | x.__setattr__('name', value) <==> x.name = value - | - | __setstate__(...) - | - | __str__(...) - | x.__str__() <==> str(x) - | - | __unicode__(...) - | - | ---------------------------------------------------------------------- - | Data descriptors inherited from exceptions.BaseException: - | - | __dict__ - | - | args - | - | message - -Help on function EVAL_FAILURE in module idc: - -EVAL_FAILURE(code) - Check the result of eval_idc() for evaluation failures - - @param code: result of eval_idc() - - @return: True if there was an evaluation error - -Help on function get_cmt in module ida_bytes: - -get_cmt(*args) - get_cmt(ea, rptble) -> str - - - Get an indented comment. - - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) - @return: size of comment or -1 - -Help on function GetDisasm in module idc: - -GetDisasm(ea) - Get disassembly line - - @param ea: linear address of instruction - - @return: "" - could not decode instruction at the specified location - - @note: this function may not return exactly the same mnemonics - as you see on the screen. - -Help on function GetDouble in module idc: - -GetDouble(ea) - Get value of a floating point number (8 bytes) - This function assumes number stored using IEEE format - and in the same endianness as integers. - - @param ea: linear address - - @return: double - -Help on function GetFloat in module idc: - -GetFloat(ea) - Get value of a floating point number (4 bytes) - This function assumes number stored using IEEE format - and in the same endianness as integers. - - @param ea: linear address - - @return: float - -Help on function GetLocalType in module idc: - -GetLocalType(ordinal, flags) - Retrieve a local type declaration - @param flags: any of PRTYPE_* constants - @return: local type as a C declaration or "" - -Help on function LoadFile in module idc: - -LoadFile(filepath, pos, ea, size) - Load file into IDA database - - @param filepath: path to input file - @param pos: position in the file - @param ea: linear address to load - @param size: number of bytes to load - - @return: 0 - error, 1 - ok - -Help on function MakeVar in module idc: - -MakeVar(ea) - -Help on function SaveFile in module idc: - -SaveFile(filepath, pos, ea, size) - Save from IDA database to file - - @param filepath: path to output file - @param pos: position in the file - @param ea: linear address to save from - @param size: number of bytes to save - - @return: 0 - error, 1 - ok - -Help on function SetPrcsr in module idc: - -SetPrcsr(processor) - -Help on function SetType in module idc: - -SetType(ea, newtype) - Set type of function/variable - - @param ea: the address of the object - @param newtype: the type string in C declaration form. - Must contain the closing ';' - if specified as an empty string, then the - item associated with 'ea' will be deleted. - - @return: 1-ok, 0-failed. - -Help on function SizeOf in module idc: - -SizeOf(typestr) - Returns the size of the type. It is equivalent to IDC's sizeof(). - Use name, tp, fld = idc.parse_decl() ; SizeOf(tp) to retrieve the size - @return: -1 if typestring is not valid otherwise the size of the type - -Help on function _IDC_GetAttr in module idc: - -_IDC_GetAttr(obj, attrmap, attroffs) - Internal function to generically get object attributes - Do not use unless you know what you are doing - -Help on function _IDC_SetAttr in module idc: - -_IDC_SetAttr(obj, attrmap, attroffs, value) - Internal function to generically set object attributes - Do not use unless you know what you are doing - -Help on function __DbgValue in module idc: - -__DbgValue(ea, len) - -Help on function __GetArrayById in module idc: - -__GetArrayById(array_id) - Get an array, by its ID. - - This (internal) wrapper around 'idaaip.netnode(array_id)' - will ensure a certain safety around the retrieval of - arrays (by catching quite unexpect[ed|able] exceptions, - and making sure we don't create & use `transient' netnodes). - - @param array_id: A positive, valid array ID. - -Help on class __dummy_netnode in module idc: - -class __dummy_netnode(__builtin__.object) - | Implements, in an "always failing" fashion, the - | netnode functions that are necessary for the - | array-related functions. - | - | The sole purpose of this singleton class is to - | serve as a placeholder for netnode-manipulating - | functions, that don't want to each have to perform - | checks on the existence of the netnode. - | (..in other words: it avoids a bunch of if/else's). - | - | See __GetArrayById() for more info. - | - | Methods defined here: - | - | altdel(self, *args) - | - | altfirst(self, *args) - | - | altlast(self, *args) - | - | altnext(self, *args) - | - | altprev(self, *args) - | - | altset(self, *args) - | - | altval(self, *args) - | - | hashdel(self, *args) - | - | hashfirst(self, *args) - | - | hashlast(self, *args) - | - | hashnext(self, *args) - | - | hashprev(self, *args) - | - | hashset(self, *args) - | - | hashset_buf(self, *args) - | - | hashset_idx(self, *args) - | - | hashstr(self, *args) - | - | hashstr_buf(self, *args) - | - | hashval(self, *args) - | - | hashval_long(self, *args) - | - | index(self, *args) - | - | kill(self, *args) - | - | rename(self, *args) - | - | supdel(self, *args) - | - | supfirst(self, *args) - | - | suplast(self, *args) - | - | supnext(self, *args) - | - | supprev(self, *args) - | - | supset(self, *args) - | - | supval(self, *args) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | instance = <idc.__dummy_netnode object> - -Help on function __l2m1 in module idc: - -__l2m1(v) - Long to minus 1: If the 'v' appears to be the - 'signed long' version of -1, then return -1. - Otherwise, return 'v'. - -Help on function __warn_once_deprecated_proto_confusion in module idc: - -__warn_once_deprecated_proto_confusion(what, alternative) - -Help on function _get_modules in module idc: - -_get_modules() - INTERNAL: Enumerate process modules - -Help on function add_auto_stkpnt in module idc: - -add_auto_stkpnt(func_ea, ea, delta) - Add automatical SP register change point - @param func_ea: function start - @param ea: linear address where SP changes - usually this is the end of the instruction which - modifies the stack pointer (insn.ea+insn.size) - @param delta: difference between old and new values of SP - @return: 1-ok, 0-failed - -Help on function add_bpt in module ida_dbg: - -add_bpt(*args) - add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool - add_bpt(bpt) -> bool - - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) - -Help on function add_cref in module ida_xref: - -add_cref(*args) - add_cref(frm, to, type) -> bool - - - Create a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) - @return: success - -Help on function add_default_til in module idc: - -add_default_til(name) - Load a type library - - @param name: name of type library. - @return: 1-ok, 0-failed. - -Help on function add_dref in module ida_xref: - -add_dref(*args) - add_dref(frm, to, type) -> bool - - - Create a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) - @return: success (may fail if user-defined xref exists from->to) - -Help on function add_entry in module ida_entry: - -add_entry(*args) - add_entry(ord, ea, name, makecode, flags=0) -> bool - - - Add an entry point to the list of entry points. - - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) - @return: success (currently always true) - -Help on function add_enum in module idc: - -add_enum(idx, name, flag) - Add a new enum type - - @param idx: serial number of the new enum. - If another enum with the same serial number - exists, then all enums with serial - numbers >= the specified idx get their - serial numbers incremented (in other words, - the new enum is put in the middle of the list of enums). - - If idx >= get_enum_qty() or idx == idaapi.BADNODE - then the new enum is created at the end of - the list of enums. - - @param name: name of the enum. - @param flag: flags for representation of numeric constants - in the definition of enum. - - @return: id of new enum or BADADDR - -Help on function add_enum_member in module idc: - -add_enum_member(enum_id, name, value, bmask) - Add a member of enum - a symbolic constant - - @param enum_id: id of enum - @param name: name of symbolic constant. Must be unique in the program. - @param value: value of symbolic constant. - @param bmask: bitmask of the constant - ordinary enums accept only ida_enum.DEFMASK as a bitmask - all bits set in value should be set in bmask too - - @return: 0-ok, otherwise error code (one of ENUM_MEMBER_ERROR_*) - -Help on function add_func in module ida_funcs: - -add_func(*args) - add_func(ea1, ea2=BADADDR) -> bool - - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success - -Help on function add_hidden_range in module ida_bytes: - -add_hidden_range(*args) - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool - - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) - @return: success - -Help on function add_idc_hotkey in module ida_kernwin: - -add_idc_hotkey(*args) - add_idc_hotkey(hotkey, idcfunc) -> int - - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes - -Help on function add_segm_ex in module idc: - -add_segm_ex(startea, endea, base, use32, align, comb, flags) - Create a new segment - - @param startea: linear address of the start of the segment - @param endea: linear address of the end of the segment - this address will not belong to the segment - 'endea' should be higher than 'startea' - @param base: base paragraph or selector of the segment. - a paragraph is 16byte memory chunk. - If a selector value is specified, the selector should be - already defined. - @param use32: 0: 16bit segment, 1: 32bit segment, 2: 64bit segment - @param align: segment alignment. see below for alignment values - @param comb: segment combination. see below for combination values. - @param flags: combination of ADDSEG_... bits - - @return: 0-failed, 1-ok - -Help on function add_sourcefile in module ida_lines: - -add_sourcefile(*args) - add_sourcefile(ea1, ea2, filename) -> bool - - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) - @return: success - -Help on function add_struc in module idc: - -add_struc(index, name, is_union) - Define a new structure type - - @param index: index of new structure type - If another structure has the specified index, - then index of that structure and all other - structures will be incremented, freeing the specifed - index. If index is == -1, then the biggest index - number will be used. - See get_first_struc_idx() for the explanation of - structure indices and IDs. - @param name: name of the new structure type. - @param is_union: 0: structure - 1: union - - @return: -1 if can't define structure type because of - bad structure name: the name is ill-formed or is - already used in the program. - otherwise returns ID of the new structure type - -Help on function add_struc_member in module idc: - -add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, reftype=2) - Add structure member - - @param sid: structure type ID - @param name: name of the new member - @param offset: offset of the new member - -1 means to add at the end of the structure - @param flag: type of the new member. Should be one of - FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA - @param typeid: if is_struct(flag) then typeid specifies the structure id for the member - if is_off0(flag) then typeid specifies the offset base. - if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). - if is_stroff(flag) then typeid specifies the structure id - if is_enum(flag) then typeid specifies the enum id - if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) - Otherwise typeid should be -1. - @param nbytes: number of bytes in the new member - - @param target: target address of the offset expr. You may specify it as - -1, ida will calculate it itself - @param tdelta: offset target delta. usually 0 - @param reftype: see REF_... definitions - - @note: The remaining arguments are allowed only if is_off0(flag) and you want - to specify a complex offset expression - - @return: 0 - ok, otherwise error code (one of STRUC_ERROR_*) - -Help on function add_user_stkpnt in module ida_frame: - -add_user_stkpnt(*args) - add_user_stkpnt(ea, delta) -> bool - - - Add user-defined SP register change point. - - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) - @return: success - -Help on function append_func_tail in module idc: - -append_func_tail(funcea, ea1, ea2) - Append a function chunk to the function - - @param funcea: any address in the function - @param ea1: start of function tail - @param ea2: end of function tail - @return: 0 if failed, 1 if success - - @note: If a chunk exists at the specified addresses, it must have exactly - the specified boundaries - -Help on function apply_type in module idc: - -apply_type(ea, py_type, flags=1) - Apply the specified type to the address - - @param ea: the address of the object - @param py_type: typeinfo tuple (type, fields) as get_tinfo() returns - or tuple (name, type, fields) as parse_decl() returns - or None - if specified as None, then the - item associated with 'ea' will be deleted. - @param flags: combination of TINFO_... constants or 0 - @return: Boolean - -Help on function ask_seg in module ida_kernwin: - -ask_seg(defval, format) - # ---------------------------------------------------------------------- - -Help on function ask_yn in module ida_kernwin: - -ask_yn(*args) - ask_yn(deflt, format) -> int - - - Display a dialog box and get choice from "Yes", "No", "Cancel". - - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . - -Help on function atoa in module idc: - -atoa(ea) - Convert address value to a string - Return address in the form 'seg000:1234' - (the same as in line prefixes) - - @param ea: address to format - -Help on function atol in module idc: - -atol(s) - -Help on function attach_process in module ida_dbg: - -attach_process(*args) - attach_process(pid=pid_t(-1), event_id=-1) -> int - - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) - -Help on function auto_mark_range in module ida_auto: - -auto_mark_range(*args) - auto_mark_range(start, end, type) - - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_unmark in module ida_auto: - -auto_unmark(*args) - auto_unmark(start, end, type) - - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) - -Help on function auto_wait in module ida_auto: - -auto_wait(*args) - auto_wait() -> bool - - - Process everything in the queues and return true. - - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) - -Help on function batch in module idc: - -batch(batch) - Enable/disable batch mode of operation - - @param batch: batch mode - 0 - ida will display dialog boxes and wait for the user input - 1 - ida will not display dialog boxes, warnings, etc. - - @return: old balue of batch flag - -Help on function byte_value in module idc: - -byte_value(F) - Get byte value from flags - Get value of byte provided that the byte is initialized. - This macro works ok only for 8-bit byte machines. - -Help on function calc_gtn_flags in module ida_name: - -calc_gtn_flags(fromaddr, ea) - Calculate flags for get_ea_name() function - - @param fromaddr: the referring address. May be BADADDR. - @param ea: linear address - - @return: flags - -Help on function call_system in module idc: - -call_system(command) - Execute an OS command. - - @param command: command line to execute - - @return: error code from OS - - @note: - IDA will wait for the started program to finish. - In order to start the command in parallel, use OS methods. - For example, you may start another program in parallel using - "start" command. - -Help on function can_exc_continue in module idc: - -can_exc_continue() - Can it continue after EXCEPTION event? - - @return: boolean - -Help on function check_bpt in module ida_dbg: - -check_bpt(*args) - check_bpt(ea) -> int - - - Check the breakpoint at the specified address. - - @param ea (C++: ea_t) - @return: one of Breakpoint status codes - -Help on function choose_func in module idc: - -choose_func(title) - Ask the user to select a function - - Arguments: - - @param title: title of the dialog box - - @return: -1 - user refused to select a function - otherwise returns the selected function start address - -Help on function clear_trace in module idc: - -clear_trace(filename) - Clear the current trace buffer - -Help on function create_align in module ida_bytes: - -create_align(*args) - create_align(ea, length, alignment) -> bool - - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) - -Help on function create_array in module idc: - -create_array(name) - Create array. - - @param name: The array name. - - @return: -1 in case of failure, a valid array_id otherwise. - -Help on function create_byte in module idc: - -create_byte(ea) - Convert the current item to a byte - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_custdata in module ida_bytes: - -create_custdata(*args) - create_custdata(ea, length, dtid, fid, force=False) -> bool - - - Convert to custom data type. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) - -Help on function create_data in module ida_bytes: - -create_data(*args) - create_data(ea, dataflag, size, tid) -> bool - - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) - @return: success - -Help on function create_double in module idc: - -create_double(ea) - Convert the current item to a double floating point (8 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_dword in module idc: - -create_dword(ea) - Convert the current item to a double word (4 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_float in module idc: - -create_float(ea) - Convert the current item to a floating point (4 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_insn in module ida_ua: - -create_insn(*args) - create_insn(ea, out=None) -> int - - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 - -Help on function create_oword in module idc: - -create_oword(ea) - Convert the current item to an octa word (16 bytes/128 bits) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_pack_real in module idc: - -create_pack_real(ea) - Convert the current item to a packed real (10 or 12 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_qword in module idc: - -create_qword(ea) - Convert the current item to a quadro word (8 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_strlit in module idc: - -create_strlit(ea, endea) - Create a string. - - This function creates a string (the string type is determined by the - value of get_inf_attr(INF_STRTYPE)) - - @param ea: linear address - @param endea: ending address of the string (excluded) - if endea == BADADDR, then length of string will be calculated - by the kernel - - @return: 1-ok, 0-failure - - @note: The type of an existing string is returned by get_str_type() - -Help on function create_struct in module idc: - -create_struct(ea, size, strname) - Convert the current item to a structure instance - - @param ea: linear address - @param size: structure size in bytes. -1 means that the size - will be calculated automatically - @param strname: name of a structure type - - @return: 1-ok, 0-failure - -Help on function create_tbyte in module idc: - -create_tbyte(ea) - Convert the current item to a tbyte (10 or 12 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_word in module idc: - -create_word(ea) - Convert the current item to a word (2 bytes) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function create_yword in module idc: - -create_yword(ea) - Convert the current item to a ymm word (32 bytes/256 bits) - - @param ea: linear address - - @return: 1-ok, 0-failure - -Help on function define_exception in module ida_dbg: - -define_exception(*args) - define_exception(code, name, desc, flags) -> char const * - - - Convenience function: define new exception code. - - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds - -Help on function define_local_var in module idc: - -define_local_var(start, end, location, name) - Create a local variable - - @param start: start of address range for the local variable - @param end: end of address range for the local variable - @param location: the variable location in the "[bp+xx]" form where xx is - a number. The location can also be specified as a - register name. - @param name: name of the local variable - - @return: 1-ok, 0-failure - - @note: For the stack variables the end address is ignored. - If there is no function at 'start' then this function. - will fail. - -Help on function del_array_element in module idc: - -del_array_element(tag, array_id, idx) - Delete an array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of an element. - - @return: 1 in case of success, 0 otherwise. - -Help on function del_bpt in module ida_dbg: - -del_bpt(*args) - del_bpt(ea) -> bool - del_bpt(bptloc) -> bool - - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - -Help on function del_cref in module ida_xref: - -del_cref(*args) - del_cref(frm, to, expand) -> int - - - Delete a code cross-reference. - - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) - -Help on function del_dref in module ida_xref: - -del_dref(*args) - del_dref(frm, to) - - - Delete a data cross-reference. - - @param to: linear address of referenced data (C++: ea_t) - -Help on function del_enum in module ida_enum: - -del_enum(*args) - del_enum(id) - - - Delete an enum type. - - - @param id (C++: enum_t) - -Help on function del_enum_member in module idc: - -del_enum_member(enum_id, value, serial, bmask) - Delete a member of enum - a symbolic constant - - @param enum_id: id of enum - @param value: value of symbolic constant. - @param serial: serial number of the constant in the - enumeration. See op_enum() for for details. - @param bmask: bitmask of the constant ordinary enums accept - only ida_enum.DEFMASK as a bitmask - - @return: 1-ok, 0-failed - -Help on function del_extra_cmt in module ida_lines: - -del_extra_cmt(*args) - del_extra_cmt(ea, what) - -Help on function del_fixup in module ida_fixup: - -del_fixup(*args) - del_fixup(source) - - - Delete fixup information. - - - @param source (C++: ea_t) - -Help on function del_func in module ida_funcs: - -del_func(*args) - del_func(ea) -> bool - - - Delete a function. - - @param ea: any address in the function entry chunk (C++: ea_t) - @return: success - -Help on function del_hash_string in module idc: - -del_hash_string(hash_id, key) - Delete a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element - - @return: 1 upon success, 0 otherwise. - -Help on function del_hidden_range in module ida_bytes: - -del_hidden_range(*args) - del_hidden_range(ea) -> bool - - - Delete hidden range. - - @param ea: any address in the hidden range (C++: ea_t) - @return: success - -Help on function del_idc_hotkey in module ida_kernwin: - -del_idc_hotkey(*args) - del_idc_hotkey(hotkey) -> bool - - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - -Help on function del_items in module ida_bytes: - -del_items(*args) - del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool - - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) - @return: true on sucessful operation, otherwise false - -Help on function del_segm in module ida_segment: - -del_segm(*args) - del_segm(ea, flags) -> bool - - - Delete a segment. - - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) - -Help on function del_selector in module ida_segment: - -del_selector(*args) - del_selector(selector) - - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) - -Help on function del_source_linnum in module ida_nalt: - -del_source_linnum(*args) - del_source_linnum(ea) - -Help on function del_sourcefile in module ida_lines: - -del_sourcefile(*args) - del_sourcefile(ea) -> bool - - - Delete information about the source file. - - @param ea: linear address (C++: ea_t) - @return: success - -Help on function del_stkpnt in module idc: - -del_stkpnt(func_ea, ea) - Delete SP register change point - - @param func_ea: function start - @param ea: linear address - @return: 1-ok, 0-failed - -Help on function del_struc in module idc: - -del_struc(sid) - Delete a structure type - - @param sid: structure type ID - - @return: 0 if bad structure type ID is passed - 1 otherwise the structure type is deleted. All data - and other structure types referencing to the - deleted structure type will be displayed as array - of bytes. - -Help on function del_struc_member in module idc: - -del_struc_member(sid, member_offset) - Delete structure member - - @param sid: structure type ID - @param member_offset: offset of the member - - @return: != 0 - ok. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - -Help on function delete_all_segments in module idc: - -delete_all_segments() - Delete all segments, instructions, comments, i.e. everything - except values of bytes. - -Help on function delete_array in module idc: - -delete_array(array_id) - Delete array, by its ID. - - @param array_id: The ID of the array to delete. - -Help on function demangle_name in module idc: - -demangle_name(name, disable_mask) - demangle_name a name - - @param name: name to demangle - @param disable_mask: a mask that tells how to demangle the name - it is a good idea to get this mask using - get_inf_attr(INF_SHORT_DN) or get_inf_attr(INF_LONG_DN) - - @return: a demangled name - If the input name cannot be demangled, returns None - -Help on function detach_process in module ida_dbg: - -detach_process(*args) - detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } - -Help on function diff_trace_file in module ida_dbg: - -diff_trace_file(*args) - diff_trace_file(nonnul_filename) -> bool - - - Show difference between the current trace and the one from 'filename'. - -Help on function enable_bpt in module ida_dbg: - -enable_bpt(*args) - enable_bpt(ea, enable=True) -> bool - enable_bpt(bptloc, enable=True) -> bool - -Help on function enable_tracing in module idc: - -enable_tracing(trace_level, enable) - Enable step tracing - - @param trace_level: what kind of trace to modify - @param enable: 0: turn off, 1: turn on - - @return: success - -Help on function error in module ida_kernwin: - -error(*args) - error(format) - - - Display a fatal message in a message box and quit IDA - - @param format: message to print - -Help on function eval_idc in module idc: - -eval_idc(expr) - Evaluate an IDC expression - - @param expr: an expression - - @return: the expression value. If there are problems, the returned value will be "IDC_FAILURE: xxx" - where xxx is the error description - - @note: Python implementation evaluates IDC only, while IDC can call other registered languages - -Help on function exit_process in module ida_dbg: - -exit_process(*args) - exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } - -Help on function expand_struc in module idc: - -expand_struc(sid, offset, delta, recalc) - Expand or shrink a structure type - @param id: structure type ID - @param offset: offset in the structure - @param delta: how many bytes to add or remove - @param recalc: recalculate the locations where the structure - type is used - @return: != 0 - ok - -Help on function fclose in module idc: - -fclose(handle) - -Help on function fgetc in module idc: - -fgetc(handle) - -Help on function filelength in module idc: - -filelength(handle) - -Help on function find_binary in module idc: - -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) - -Help on function find_code in module ida_search: - -find_code(*args) - find_code(ea, sflag) -> ea_t - - - Find next code address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_data in module ida_search: - -find_data(*args) - find_data(ea, sflag) -> ea_t - - - Find next data address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_defined in module ida_search: - -find_defined(*args) - find_defined(ea, sflag) -> ea_t - - - Find next ea that is the start of an instruction or data. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_func_end in module idc: - -find_func_end(ea) - Determine a new function boundaries - - @param ea: starting address of a new function - - @return: if a function already exists, then return its end address. - If a function end cannot be determined, the return BADADDR - otherwise return the end address of the new function - -Help on function find_imm in module ida_search: - -find_imm(*args) - find_imm(newEA, sflag, srchValue) -> ea_t - - - Find next immediate operand with the given value. - - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) - -Help on function find_selector in module idc: - -find_selector(val) - Find a selector which has the specifed value - - @param val: value to search for - - @return: the selector number if found, - otherwise the input value (val & 0xFFFF) - - @note: selector values are always in paragraphs - -Help on function find_suspop in module ida_search: - -find_suspop(*args) - find_suspop(ea, sflag) -> ea_t - - - Find next suspicious operand. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function find_text in module idc: - -find_text(ea, flag, y, x, searchstr, from_bc695=False) - -Help on function find_unknown in module ida_search: - -find_unknown(*args) - find_unknown(ea, sflag) -> ea_t - - - Find next unexplored address. - - - @param ea (C++: ea_t) - @param sflag (C++: int) - -Help on function first_func_chunk in module idc: - -first_func_chunk(funcea) - Get the first function chunk of the specified function - - @param funcea: any address in the function - - @return: the function entry point or BADADDR - - @note: This function returns the first (main) chunk of the specified function - -Help on function fopen in module idc: - -fopen(f, mode) - #---------------------------------------------------------------------------- - # F I L E I / O - #---------------------------------------------------------------------------- - -Help on function force_bl_call in module idc: - -force_bl_call(ea) - Force BL instruction to be a call - - @param ea: address of the BL instruction - - @return: 1-ok, 0-failed - -Help on function force_bl_jump in module idc: - -force_bl_jump(ea) - Some ARM compilers in Thumb mode use BL (branch-and-link) - instead of B (branch) for long jumps, since BL has more range. - By default, IDA tries to determine if BL is a jump or a call. - You can override IDA's decision using commands in Edit/Other menu - (Force BL call/Force BL jump) or the following two functions. - - Force BL instruction to be a jump - - @param ea: address of the BL instruction - - @return: 1-ok, 0-failed - -Help on function form in module idc: - -form(format, *args) - -Help on function fprintf in module idc: - -fprintf(handle, format, *args) - -Help on function fputc in module idc: - -fputc(byte, handle) - -Help on function fseek in module idc: - -fseek(handle, offset, origin) - -Help on function ftell in module idc: - -ftell(handle) - -Help on function func_contains in module idc: - -func_contains(func_ea, ea) - Does the given function contain the given address? - - @param func_ea: any address belonging to the function - @param ea: linear address - - @return: success - -Help on function gen_file in module idc: - -gen_file(filetype, path, ea1, ea2, flags) - Generate an output file - - @param filetype: type of output file. One of OFILE_... symbols. See below. - @param path: the output file path (will be overwritten!) - @param ea1: start address. For some file types this argument is ignored - @param ea2: end address. For some file types this argument is ignored - @param flags: bit combination of GENFLG_... - - @returns: number of the generated lines. - -1 if an error occurred - OFILE_EXE: 0-can't generate exe file, 1-ok - -Help on function gen_flow_graph in module idc: - -gen_flow_graph(outfile, title, ea1, ea2, flags) - Generate a flow chart GDL file - - @param outfile: output file name. GDL extension will be used - @param title: graph title - @param ea1: beginning of the range to flow chart - @param ea2: end of the range to flow chart. - @param flags: combination of CHART_... constants - - @note: If ea2 == BADADDR then ea1 is treated as an address within a function. - That function will be flow charted. - -Help on function gen_simple_call_chart in module idc: - -gen_simple_call_chart(outfile, title, flags) - Generate a function call graph GDL file - - @param outfile: output file name. GDL extension will be used - @param title: graph title - @param flags: combination of CHART_GEN_GDL, CHART_WINGRAPH, CHART_NOLIBFUNCS - -Help on function generate_disasm_line in module idc: - -generate_disasm_line(ea, flags) - Get disassembly line - - @param ea: linear address of instruction - - @param flags: combination of the GENDSM_ flags, or 0 - - @return: "" - could not decode instruction at the specified location - - @note: this function may not return exactly the same mnemonics - as you see on the screen. - -Help on function get_array_element in module idc: - -get_array_element(tag, array_id, idx) - Get value of array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of an element. - - @return: Value of the specified array element. Note that - this function may return char or long result. Unexistent - array elements give zero as a result. - -Help on function get_array_id in module idc: - -get_array_id(name) - Get array array_id, by name. - - @param name: The array name. - - @return: -1 in case of failure (i.e., no array with that - name exists), a valid array_id otherwise. - -Help on function get_bmask_cmt in module idc: - -get_bmask_cmt(enum_id, bmask, repeatable) - Get bitmask comment (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - @param repeatable: type of comment, 0-regular, 1-repeatable - - @return: comment attached to bitmask or None - -Help on function get_bmask_name in module idc: - -get_bmask_name(enum_id, bmask) - Get bitmask name (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - - @return: name of bitmask or None - -Help on function get_marked_pos in module ida_idc: - -get_marked_pos(*args) - get_marked_pos(slot) -> ea_t - -Help on function get_mark_comment in module ida_idc: - -get_mark_comment(*args) - get_mark_comment(slot) -> PyObject * - -Help on function get_bpt_attr in module idc: - -get_bpt_attr(ea, bptattr) - Get the characteristics of a breakpoint - - @param ea: any address in the breakpoint range - @param bptattr: the desired attribute code, one of BPTATTR_... constants - - @return: the desired attribute value or -1 - -Help on function get_bpt_ea in module idc: - -get_bpt_ea(n) - Get breakpoint address - - @param n: number of breakpoint, is in range 0..get_bpt_qty()-1 - - @return: address of the breakpoint or BADADDR - -Help on function get_bpt_qty in module ida_dbg: - -get_bpt_qty(*args) - get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - -Help on function get_bpt_tev_ea in module ida_dbg: - -get_bpt_tev_ea(*args) - get_bpt_tev_ea(n) -> ea_t - - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. - -Help on function get_bytes in module idc: - -get_bytes(ea, size, use_dbg=False) - Return the specified number of bytes of the program - - @param ea: linear address - - @param size: size of buffer in normal 8-bit bytes - - @param use_dbg: if True, use debugger memory, otherwise just the database - - @return: None on failure - otherwise a string containing the read bytes - -Help on function get_call_tev_callee in module ida_dbg: - -get_call_tev_callee(*args) - get_call_tev_callee(n) -> ea_t - - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. - -Help on function get_color in module idc: - -get_color(ea, what) - Get item color - - @param ea: address of the item - @param what: type of the item (one of CIC_* constants) - - @return: color code in RGB (hex 0xBBGGRR) - -Help on function get_curline in module idc: - -get_curline() - Get the disassembly line at the cursor - - @return: string - -Help on function get_current_thread in module ida_dbg: - -get_current_thread(*args) - get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_db_byte in module ida_bytes: - -get_db_byte(*args) - get_db_byte(ea) -> uchar - - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) - -Help on function get_debugger_event_cond in module ida_dbg: - -get_debugger_event_cond(*args) - get_debugger_event_cond() -> char const * - -Help on function get_entry in module ida_entry: - -get_entry(*args) - get_entry(ord) -> ea_t - - - Get entry point address by its ordinal - - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR - -Help on function get_entry_name in module ida_entry: - -get_entry_name(*args) - get_entry_name(ord) -> str - - - Get name of the entry point by its ordinal. - - @param ord: ordinal number of entry point (C++: uval_t) - @return: size of entry name or -1 - -Help on function get_entry_ordinal in module ida_entry: - -get_entry_ordinal(*args) - get_entry_ordinal(idx) -> uval_t - - - Get ordinal number of an entry point. - - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) - @return: ordinal number or 0. - -Help on function get_entry_qty in module ida_entry: - -get_entry_qty(*args) - get_entry_qty() -> size_t - - - Get number of entry points. - -Help on function get_enum in module ida_enum: - -get_enum(*args) - get_enum(name) -> enum_t - - - Get enum by name. - - - @param name (C++: const char *) - -Help on function get_enum_cmt in module ida_enum: - -get_enum_cmt(*args) - get_enum_cmt(id, repeatable) -> str - - - Get enum comment. - - - @param id (C++: enum_t) - @param repeatable (C++: bool) - -Help on function get_enum_flag in module ida_enum: - -get_enum_flag(*args) - get_enum_flag(id) -> flags_t - - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) - -Help on function get_enum_idx in module ida_enum: - -get_enum_idx(*args) - get_enum_idx(id) -> uval_t - - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) - -Help on function get_enum_member in module idc: - -get_enum_member(enum_id, value, serial, bmask) - Get id of constant - - @param enum_id: id of enum - @param value: value of constant - @param serial: serial number of the constant in the - enumeration. See op_enum() for details. - @param bmask: bitmask of the constant - ordinary enums accept only ida_enum.DEFMASK as a bitmask - - @return: id of constant or -1 if error - -Help on function get_enum_member_bmask in module ida_enum: - -get_enum_member_bmask(*args) - get_enum_member_bmask(id) -> bmask_t - - - Get bitmask of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_by_name in module ida_enum: - -get_enum_member_by_name(*args) - get_enum_member_by_name(name) -> const_t - - - Get a reference to an enum member by its name. - - - @param name (C++: const char *) - -Help on function get_enum_member_cmt in module idc: - -get_enum_member_cmt(const_id, repeatable) - Get comment of a constant - - @param const_id: id of const - @param repeatable: 0:get regular comment, 1:get repeatable comment - - @return: comment string - -Help on function get_enum_member_enum in module ida_enum: - -get_enum_member_enum(*args) - get_enum_member_enum(id) -> enum_t - - - Get the parent enum of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_member_name in module idc: - -get_enum_member_name(const_id) - Get name of a constant - - @param const_id: id of const - - Returns: name of constant - -Help on function get_enum_member_value in module ida_enum: - -get_enum_member_value(*args) - get_enum_member_value(id) -> uval_t - - - Get value of an enum member. - - - @param id (C++: const_t) - -Help on function get_enum_name in module ida_enum: - -get_enum_name(*args) - get_enum_name(id) -> str - - - Get name of enum. - - - @param id (C++: enum_t) - -Help on function get_enum_qty in module ida_enum: - -get_enum_qty(*args) - get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. - -Help on function get_enum_size in module ida_enum: - -get_enum_size(*args) - get_enum_size(id) -> size_t - - - Get the number of the members of the enum. - - - @param id (C++: enum_t) - -Help on function get_enum_width in module ida_enum: - -get_enum_width(*args) - get_enum_width(id) -> size_t - - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) - -Help on function get_event_bpt_hea in module idc: - -get_event_bpt_hea() - Get hardware address for BREAKPOINT event - - @return: hardware address - -Help on function get_event_ea in module idc: - -get_event_ea() - Get ea for debug event - - @return: ea - -Help on function get_event_exc_code in module idc: - -get_event_exc_code() - Get exception code for EXCEPTION event - - @return: exception code - -Help on function get_event_exc_ea in module idc: - -get_event_exc_ea() - Get address for EXCEPTION event - - @return: adress of exception - -Help on function get_event_exc_info in module idc: - -get_event_exc_info() - Get info for EXCEPTION event - - @return: info string - -Help on function get_event_exit_code in module idc: - -get_event_exit_code() - Get exit code for debug event - - @return: exit code for PROCESS_EXITED, THREAD_EXITED events - -Help on function get_event_id in module idc: - -get_event_id() - Get ID of debug event - - @return: event ID - -Help on function get_event_info in module idc: - -get_event_info() - Get debug event info - - @return: event info: for THREAD_STARTED (thread name) - for LIB_UNLOADED (unloaded library name) - for INFORMATION (message to display) - -Help on function get_event_module_base in module idc: - -get_event_module_base() - Get module base for debug event - - @return: module base - -Help on function get_event_module_name in module idc: - -get_event_module_name() - Get module name for debug event - - @return: module name - -Help on function get_event_module_size in module idc: - -get_event_module_size() - Get module size for debug event - - @return: module size - -Help on function get_event_pid in module idc: - -get_event_pid() - Get process ID for debug event - - @return: process ID - -Help on function get_event_tid in module idc: - -get_event_tid() - Get type ID for debug event - - @return: type ID - -Help on function get_extra_cmt in module ida_lines: - -get_extra_cmt(*args) - get_extra_cmt(ea, what) -> ssize_t - -Help on function get_fchunk_attr in module idc: - -get_fchunk_attr(ea, attr) - Get a function chunk attribute - - @param ea: any address in the chunk - @param attr: one of: FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER, FUNCATTR_REFQTY - - @return: desired attribute or -1 - -Help on function get_fchunk_referer in module ida_funcs: - -get_fchunk_referer(*args) - get_fchunk_referer(ea, idx) -> ea_t - -Help on function get_first_bmask in module ida_enum: - -get_first_bmask(*args) - get_first_bmask(id) -> bmask_t - - - Get first bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK - -Help on function get_first_cref_from in module ida_xref: - -get_first_cref_from(*args) - get_first_cref_from(frm) -> ea_t - - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . - -Help on function get_first_cref_to in module ida_xref: - -get_first_cref_to(*args) - get_first_cref_to(to) -> ea_t - - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_first_dref_from in module ida_xref: - -get_first_dref_from(*args) - get_first_dref_from(frm) -> ea_t - - - Get first data referenced from the specified address. - - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. - -Help on function get_first_dref_to in module ida_xref: - -get_first_dref_to(*args) - get_first_dref_to(to) -> ea_t - - - Get address of instruction/data referencing to the specified data. - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_first_enum_member in module idc: - -get_first_enum_member(enum_id, bmask) - Get first constant in the enum - - @param enum_id: id of enum - @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) - - @return: value of constant or idaapi.BADNODE no constants are defined - All constants are sorted by their values as unsigned longs. - -Help on function get_first_fcref_from in module ida_xref: - -get_first_fcref_from(*args) - get_first_fcref_from(frm) -> ea_t - -Help on function get_first_fcref_to in module ida_xref: - -get_first_fcref_to(*args) - get_first_fcref_to(to) -> ea_t - -Help on function get_first_hash_key in module idc: - -get_first_hash_key(hash_id) - Get the first key in the hash. - - @param hash_id: The hash ID. - - @return: the key, 0 otherwise. - -Help on function get_first_index in module idc: - -get_first_index(tag, array_id) - Get index of the first existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - - @return: -1 if the array is empty, otherwise index of first array - element of given type. - -Help on function get_first_member in module idc: - -get_first_member(sid) - Get offset of the first member of a structure - - @param sid: structure type ID - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if structure has no members, - otherwise returns offset of the first member. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_first_module in module idc: - -get_first_module() - Enumerate process modules - - @return: first module's base address or None on failure - -Help on function get_first_seg in module idc: - -get_first_seg() - Get first segment - - @return: address of the start of the first segment - BADADDR - no segments are defined - -Help on function get_first_struc_idx in module ida_struct: - -get_first_struc_idx(*args) - get_first_struc_idx() -> uval_t - - - Get index of first structure. - - @return: BADADDR if no known structures, 0 otherwise - -Help on function get_fixup_target_dis in module idc: - -get_fixup_target_dis(ea) - Get fixup target displacement - - @param ea: address to get information about - - @return: 0 - no fixup at the specified address - otherwise returns fixup target displacement - -Help on function get_fixup_target_flags in module idc: - -get_fixup_target_flags(ea) - Get fixup target flags - - @param ea: address to get information about - - @return: 0 - no fixup at the specified address - otherwise returns fixup target flags - -Help on function get_fixup_target_off in module idc: - -get_fixup_target_off(ea) - Get fixup target offset - - @param ea: address to get information about - - @return: BADADDR - no fixup at the specified address - otherwise returns fixup target offset - -Help on function get_fixup_target_sel in module idc: - -get_fixup_target_sel(ea) - Get fixup target selector - - @param ea: address to get information about - - @return: BADSEL - no fixup at the specified address - otherwise returns fixup target selector - -Help on function get_fixup_target_type in module idc: - -get_fixup_target_type(ea) - Get fixup target type - - @param ea: address to get information about - - @return: 0 - no fixup at the specified address - otherwise returns fixup type - -Help on function get_forced_operand in module ida_bytes: - -get_forced_operand(*args) - get_forced_operand(ea, n) -> str - - - Get forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @return: size of forced operand or -1 - -Help on function get_frame_args_size in module idc: - -get_frame_args_size(ea) - Get size of arguments in function frame which are purged upon return - - @param ea: any address belonging to the function - - @return: Size of function arguments in bytes. - If the function doesn't have a frame, return 0 - If the function does't exist, return -1 - -Help on function get_frame_id in module idc: - -get_frame_id(ea) - Get ID of function frame structure - - @param ea: any address belonging to the function - - @return: ID of function frame or None In order to access stack variables - you need to use structure member manipulaion functions with the - obtained ID. - -Help on function get_frame_lvar_size in module idc: - -get_frame_lvar_size(ea) - Get size of local variables in function frame - - @param ea: any address belonging to the function - - @return: Size of local variables in bytes. - If the function doesn't have a frame, return 0 - If the function does't exist, return None - -Help on function get_frame_regs_size in module idc: - -get_frame_regs_size(ea) - Get size of saved registers in function frame - - @param ea: any address belonging to the function - - @return: Size of saved registers in bytes. - If the function doesn't have a frame, return 0 - This value is used as offset for BP (if FUNC_FRAME is set) - If the function does't exist, return None - -Help on function get_frame_size in module idc: - -get_frame_size(ea) - Get full size of function frame - - @param ea: any address belonging to the function - @returns: Size of function frame in bytes. - This function takes into account size of local - variables + size of saved registers + size of - return address + size of function arguments - If the function doesn't have a frame, return size of - function return address in the stack. - If the function does't exist, return 0 - -Help on function get_full_flags in module ida_bytes: - -get_full_flags(*args) - get_full_flags(ea) -> flags_t - - - Get flags value for address 'ea'. - - @param ea (C++: ea_t) - @return: 0 if address is not present in the program - -Help on function get_func_attr in module idc: - -get_func_attr(ea, attr) - Get a function attribute - - @param ea: any address belonging to the function - @param attr: one of FUNCATTR_... constants - - @return: BADADDR - error otherwise returns the attribute value - -Help on function get_func_cmt in module idc: - -get_func_cmt(ea, repeatable) - Retrieve function comment - - @param ea: any address belonging to the function - @param repeatable: 1: get repeatable comment - 0: get regular comment - - @return: function comment string - -Help on function get_func_flags in module idc: - -get_func_flags(ea) - Retrieve function flags - - @param ea: any address belonging to the function - - @return: -1 - function doesn't exist otherwise returns the flags - -Help on function get_func_name in module idc: - -get_func_name(ea) - Retrieve function name - - @param ea: any address belonging to the function - - @return: null string - function doesn't exist - otherwise returns function name - -Help on function get_func_off_str in module idc: - -get_func_off_str(ea) - Convert address to 'funcname+offset' string - - @param ea: address to convert - - @return: if the address belongs to a function then return a string - formed as 'name+offset' where 'name' is a function name - 'offset' is offset within the function else return null string - -Help on function get_hash_long in module idc: - -get_hash_long(hash_id, key) - Gets the long value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - - @return: the 32bit or 64bit value of the element, or 0 if no such - element. - -Help on function get_hash_string in module idc: - -get_hash_string(hash_id, key) - Gets the string value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - - @return: the string value of the element, or None if no such - element. - -Help on function get_idb_path in module idc: - -get_idb_path() - Get IDB full path - - This function returns full path of the current IDB database - -Help on function get_inf_attr in module idc: - -get_inf_attr(attr) - Deprecated. Please ida_ida.inf_get_* instead. - -Help on function get_input_file_path in module ida_nalt: - -get_input_file_path(*args) - get_input_file_path() -> str - - - Get full path of the input file. - -Help on function get_item_end in module ida_bytes: - -get_item_end(*args) - get_item_end(ea) -> ea_t - - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) - -Help on function get_item_head in module ida_bytes: - -get_item_head(*args) - get_item_head(ea) -> ea_t - - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) - -Help on function get_item_size in module idc: - -get_item_size(ea) - Get size of instruction or data item in bytes - - @param ea: linear address - - @return: 1..n - -Help on function get_last_bmask in module ida_enum: - -get_last_bmask(*args) - get_last_bmask(id) -> bmask_t - - - Get last bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK - -Help on function get_last_enum_member in module idc: - -get_last_enum_member(enum_id, bmask) - Get last constant in the enum - - @param enum_id: id of enum - @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) - - @return: value of constant or idaapi.BADNODE no constants are defined - All constants are sorted by their values - as unsigned longs. - -Help on function get_last_hash_key in module idc: - -get_last_hash_key(hash_id) - Get the last key in the hash. - - @param hash_id: The hash ID. - - @return: the key, 0 otherwise. - -Help on function get_last_index in module idc: - -get_last_index(tag, array_id) - Get index of last existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - - @return: -1 if the array is empty, otherwise index of first array - element of given type. - -Help on function get_last_member in module idc: - -get_last_member(sid) - Get offset of the last member of a structure - - @param sid: structure type ID - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if structure has no members, - otherwise returns offset of the last member. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_last_struc_idx in module ida_struct: - -get_last_struc_idx(*args) - get_last_struc_idx() -> uval_t - - - Get index of last structure. - - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise - -Help on function get_local_tinfo in module idc: - -get_local_tinfo(ordinal) - Get local type information as 'typeinfo' object - - @param ordinal: slot number (1...NumberOfLocalTypes) - @return: None on failure, or (type, fields) tuple. - -Help on function get_manual_insn in module ida_bytes: - -get_manual_insn(*args) - get_manual_insn(ea) -> str - - - Retrieve the user-specified string for the manual instruction. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @return: size of manual instruction or -1 - -Help on function get_member_cmt in module idc: - -get_member_cmt(sid, member_offset, repeatable) - Get comment of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - @param repeatable: 1: get repeatable comment - 0: get regular comment - - @return: None if bad structure type ID is passed - or no such member in the structure - otherwise returns comment of the specified member. - -Help on function get_member_flag in module idc: - -get_member_flag(sid, member_offset) - Get type of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: -1 if bad structure type ID is passed - or no such member in the structure - otherwise returns type of the member, see bit - definitions above. If the member type is a structure - then function GetMemberStrid() should be used to - get the structure type id. - -Help on function get_member_id in module idc: - -get_member_id(sid, member_offset) - @param sid: structure type ID - @param member_offset:. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: -1 if bad structure type ID is passed or there is - no member at the specified offset. - otherwise returns the member id. - -Help on function get_member_name in module idc: - -get_member_name(sid, member_offset) - Get name of a member of a structure - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: None if bad structure type ID is passed - or no such member in the structure - otherwise returns name of the specified member. - -Help on function get_member_offset in module idc: - -get_member_offset(sid, member_name) - Get offset of a member of a structure by the member name - - @param sid: structure type ID - @param member_name: name of structure member - - @return: -1 if bad structure type ID is passed - or no such member in the structure - otherwise returns offset of the specified member. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_member_qty in module idc: - -get_member_qty(sid) - Get number of members of a structure - - @param sid: structure type ID - - @return: -1 if bad structure type ID is passed otherwise - returns number of members. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_member_size in module idc: - -get_member_size(sid, member_offset) - Get size of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - - @return: None if bad structure type ID is passed, - or no such member in the structure - otherwise returns size of the specified - member in bytes. - -Help on function get_member_strid in module idc: - -get_member_strid(sid, member_offset) - Get structure id of a member - - @param sid: structure type ID - @param member_offset: member offset. The offset can be - any offset in the member. For example, - is a member is 4 bytes long and starts - at offset 2, then 2,3,4,5 denote - the same structure member. - @return: -1 if bad structure type ID is passed - or no such member in the structure - otherwise returns structure id of the member. - If the current member is not a structure, returns -1. - -Help on function get_min_spd_ea in module idc: - -get_min_spd_ea(func_ea) - Return the address with the minimal spd (stack pointer delta) - If there are no SP change points, then return BADADDR. - - @param func_ea: function start - @return: BADDADDR - no such function - -Help on function get_module_name in module idc: - -get_module_name(base) - Get process module name - - @param base: the base address of the module - - @return: required info or None - -Help on function get_module_size in module idc: - -get_module_size(base) - Get process module size - - @param base: the base address of the module - - @return: required info or -1 - -Help on function get_name in module idc: - -get_name(ea, gtn_flags=0) - Get name at the specified address - - @param ea: linear address - @param gtn_flags: how exactly the name should be retrieved. - combination of GN_ bits - - @return: "" - byte has no name - -Help on function get_name_ea in module ida_name: - -get_name_ea(*args) - get_name_ea(_from, name) -> ea_t - - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR - -Help on function get_name_ea_simple in module idc: - -get_name_ea_simple(name) - Get linear address of a name - - @param name: name of program byte - - @return: address of the name - BADADDR - No such name - -Help on function get_next_bmask in module ida_enum: - -get_next_bmask(*args) - get_next_bmask(id, bmask) -> bmask_t - - - Get next bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK - -Help on function get_next_cref_from in module ida_xref: - -get_next_cref_from(*args) - get_next_cref_from(frm, current) -> ea_t - - - Get next instruction referenced from the specified instruction. - - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. - -Help on function get_next_cref_to in module ida_xref: - -get_next_cref_to(*args) - get_next_cref_to(to, current) -> ea_t - - - Get next instruction referencing to the specified instruction. - - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. - -Help on function get_next_dref_from in module ida_xref: - -get_next_dref_from(*args) - get_next_dref_from(frm, current) -> ea_t - - - Get next data referenced from the specified address. - - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference - -Help on function get_next_dref_to in module ida_xref: - -get_next_dref_to(*args) - get_next_dref_to(to, current) -> ea_t - - - Get address of instruction/data referencing to the specified data - - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. - -Help on function get_next_enum_member in module idc: - -get_next_enum_member(enum_id, value, bmask) - Get next constant in the enum - - @param enum_id: id of enum - @param bmask: bitmask of the constant ordinary enums accept only ida_enum.DEFMASK as a bitmask - @param value: value of the current constant - - @return: value of a constant with value higher than the specified - value. idaapi.BADNODE no such constants exist. - All constants are sorted by their values as unsigned longs. - -Help on function get_next_fchunk in module idc: - -get_next_fchunk(ea) - Get next function chunk - - @param ea: any address - - @return: the starting address of the next function chunk or BADADDR - - @note: This function enumerates all chunks of all functions in the database - -Help on function get_next_fcref_from in module ida_xref: - -get_next_fcref_from(*args) - get_next_fcref_from(frm, current) -> ea_t - -Help on function get_next_fcref_to in module ida_xref: - -get_next_fcref_to(*args) - get_next_fcref_to(to, current) -> ea_t - -Help on function get_next_fixup_ea in module ida_fixup: - -get_next_fixup_ea(*args) - get_next_fixup_ea(ea) -> ea_t - - - Find next address with fixup information - - @param ea: current address (C++: ea_t) - @return: the next address with fixup information, or BADADDR - -Help on function get_next_func in module idc: - -get_next_func(ea) - Find next function - - @param ea: any address belonging to the function - - @return: BADADDR - no more functions - otherwise returns the next function start address - -Help on function get_next_hash_key in module idc: - -get_next_hash_key(hash_id, key) - Get the next key in the hash. - - @param hash_id: The hash ID. - @param key: The current key. - - @return: the next key, 0 otherwise - -Help on function get_next_index in module idc: - -get_next_index(tag, array_id, idx) - Get index of the next existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of the current element. - - @return: -1 if no more elements, otherwise returns index of the - next array element of given type. - -Help on function get_next_module in module idc: - -get_next_module(base) - Enumerate process modules - - @param base: previous module's base address - - @return: next module's base address or None on failure - -Help on function get_next_offset in module idc: - -get_next_offset(sid, offset) - Get next offset in a structure - - @param sid: structure type ID - @param offset: current offset - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if no (more) offsets in the structure, - otherwise returns next offset in a structure. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - This function returns a member offset or a hole offset. - It will return size of the structure if input - 'offset' belongs to the last member of the structure. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_next_seg in module idc: - -get_next_seg(ea) - Get next segment - - @param ea: linear address - - @return: start of the next segment - BADADDR - no next segment - -Help on function get_next_struc_idx in module ida_struct: - -get_next_struc_idx(*args) - get_next_struc_idx(idx) -> uval_t - - - Get next struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ - -Help on function get_numbered_type_name in module idc: - -get_numbered_type_name(ordinal) - Retrieve a local type name - - @param ordinal: slot number (1...NumberOfLocalTypes) - - returns: local type name or None - -Help on function get_operand_type in module idc: - -get_operand_type(ea, n) - Get type of instruction operand - - @param ea: linear address of instruction - @param n: number of operand: - 0 - the first operand - 1 - the second operand - - @return: any of o_* constants or -1 on error - -Help on function get_operand_value in module idc: - -get_operand_value(ea, n) - Get number used in the operand - - This function returns an immediate number used in the operand - - @param ea: linear address of instruction - @param n: the operand number - - @return: value - operand is an immediate value => immediate value - operand has a displacement => displacement - operand is a direct memory ref => memory address - operand is a register => register number - operand is a register phrase => phrase number - otherwise => -1 - -Help on function get_ordinal_qty in module idc: - -get_ordinal_qty() - Get number of local types + 1 - - @return: value >= 1. 1 means that there are no local types. - -Help on function get_original_byte in module ida_bytes: - -get_original_byte(*args) - get_original_byte(ea) -> uint64 - - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) - -Help on function get_prev_bmask in module ida_enum: - -get_prev_bmask(*args) - get_prev_bmask(id, bmask) -> bmask_t - - - Get prev bitmask in the enum (bitfield) - - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK - -Help on function get_prev_enum_member in module idc: - -get_prev_enum_member(enum_id, value, bmask) - Get prev constant in the enum - - @param enum_id: id of enum - @param bmask : bitmask of the constant - ordinary enums accept only ida_enum.DEFMASK as a bitmask - @param value: value of the current constant - - @return: value of a constant with value lower than the specified - value. idaapi.BADNODE no such constants exist. - All constants are sorted by their values as unsigned longs. - -Help on function get_prev_fchunk in module idc: - -get_prev_fchunk(ea) - Get previous function chunk - - @param ea: any address - - @return: the starting address of the function chunk or BADADDR - - @note: This function enumerates all chunks of all functions in the database - -Help on function get_prev_fixup_ea in module ida_fixup: - -get_prev_fixup_ea(*args) - get_prev_fixup_ea(ea) -> ea_t - - - Find previous address with fixup information - - @param ea: current address (C++: ea_t) - @return: the previous address with fixup information, or BADADDR - -Help on function get_prev_func in module idc: - -get_prev_func(ea) - Find previous function - - @param ea: any address belonging to the function - - @return: BADADDR - no more functions - otherwise returns the previous function start address - -Help on function get_prev_hash_key in module idc: - -get_prev_hash_key(hash_id, key) - Get the previous key in the hash. - - @param hash_id: The hash ID. - @param key: The current key. - - @return: the previous key, 0 otherwise - -Help on function get_prev_index in module idc: - -get_prev_index(tag, array_id, idx) - Get index of the previous existing array element. - - @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR - @param array_id: The array ID. - @param idx: Index of the current element. - - @return: -1 if no more elements, otherwise returns index of the - previous array element of given type. - -Help on function get_prev_offset in module idc: - -get_prev_offset(sid, offset) - Get previous offset in a structure - - @param sid: structure type ID - @param offset: current offset - - @return: -1 if bad structure type ID is passed, - ida_idaapi.BADADDR if no (more) offsets in the structure, - otherwise returns previous offset in a structure. - - @note: IDA allows 'holes' between members of a - structure. It treats these 'holes' - as unnamed arrays of bytes. - This function returns a member offset or a hole offset. - It will return size of the structure if input - 'offset' is bigger than the structure size. - - @note: Union members are, in IDA's internals, located - at subsequent byte offsets: member 0 -> offset 0x0, - member 1 -> offset 0x1, etc... - -Help on function get_prev_struc_idx in module ida_struct: - -get_prev_struc_idx(*args) - get_prev_struc_idx(idx) -> uval_t - - - Get previous struct index. - - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 - -Help on function get_process_state in module ida_dbg: - -get_process_state(*args) - get_process_state() -> int - - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states - -Help on function get_processes in module ida_dbg: - -get_processes(*args) - get_processes(proclist) -> ssize_t - - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) - @return: number of processes or -1 on error - -Help on function get_qword in module ida_bytes: - -get_qword(*args) - get_qword(ea) -> uint64 - - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) - -Help on function get_reg_value in module idc: - -get_reg_value(name) - Get register value - - @param name: the register name - - @note: The debugger should be running. otherwise the function fails - the register name should be valid. - It is not necessary to use this function to get register values - because a register name in the script will do too. - - @return: register value (integer or floating point) - -Help on function get_ret_tev_return in module ida_dbg: - -get_ret_tev_return(*args) - get_ret_tev_return(n) -> ea_t - - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. - -Help on function get_root_filename in module ida_nalt: - -get_root_filename(*args) - get_root_filename() -> str - - - Get file name only of the input file. - -Help on function get_screen_ea in module ida_kernwin: - -get_screen_ea(*args) - get_screen_ea() -> ea_t - - - Get the address at the screen cursor ( 'ui_screenea' ) - -Help on function get_segm_attr in module idc: - -get_segm_attr(segea, attr) - Get segment attribute - - @param segea: any address within segment - @param attr: one of SEGATTR_... constants - -Help on function get_segm_by_sel in module idc: - -get_segm_by_sel(base) - Get segment by segment base - - @param base: segment base paragraph or selector - - @return: linear address of the start of the segment or BADADDR - if no such segment - -Help on function get_segm_end in module idc: - -get_segm_end(ea) - Get end address of a segment - - @param ea: any address in the segment - - @return: end of segment (an address past end of the segment) - BADADDR - the specified address doesn't belong to any segment - -Help on function get_segm_name in module idc: - -get_segm_name(ea) - Get name of a segment - - @param ea: any address in the segment - - @return: "" - no segment at the specified address - -Help on function get_segm_start in module idc: - -get_segm_start(ea) - Get start address of a segment - - @param ea: any address in the segment - - @return: start of segment - BADADDR - the specified address doesn't belong to any segment - -Help on function get_source_linnum in module ida_nalt: - -get_source_linnum(*args) - get_source_linnum(ea) -> uval_t - -Help on function get_sourcefile in module ida_lines: - -get_sourcefile(*args) - get_sourcefile(ea, bounds=None) -> char const * - - - Get name of source file occupying the given address. - - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name - -Help on function get_sp_delta in module idc: - -get_sp_delta(ea) - Get modification of SP made by the instruction - - @param ea: end address of the instruction - i.e.the last address of the instruction+1 - - @return: Get modification of SP made at the specified location - If the specified location doesn't contain a SP change point, return 0 - Otherwise return delta of SP modification - -Help on function get_spd in module idc: - -get_spd(ea) - Get current delta for the stack pointer - - @param ea: end address of the instruction - i.e.the last address of the instruction+1 - - @return: The difference between the original SP upon - entering the function and SP for the specified address - -Help on function get_sreg in module idc: - -get_sreg(ea, reg) - Get value of segment register at the specified address - - @param ea: linear address - @param reg: name of segment register - - @return: the value of the segment register or -1 on error - - @note: The segment registers in 32bit program usually contain selectors, - so to get paragraph pointed to by the segment register you need to - call sel2para() function. - -Help on function get_step_trace_options in module ida_dbg: - -get_step_trace_options(*args) - get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @return: Step trace options - -Help on function get_str_type in module idc: - -get_str_type(ea) - Get string type - - @param ea: linear address - - @return: One of STRTYPE_... constants - -Help on function get_strlit_contents in module idc: - -get_strlit_contents(ea, length=-1, strtype=0) - Get string contents - @param ea: linear address - @param length: string length. -1 means to calculate the max string length - @param strtype: the string type (one of STRTYPE_... constants) - - @return: string contents or empty string - -Help on function get_struc_by_idx in module ida_struct: - -get_struc_by_idx(*args) - get_struc_by_idx(idx) -> tid_t - - - Get struct id by struct number. - - - @param idx (C++: uval_t) - -Help on function get_struc_cmt in module ida_struct: - -get_struc_cmt(*args) - get_struc_cmt(id, repeatable) -> str - - - Get struct comment. - - - @param id (C++: tid_t) - @param repeatable (C++: bool) - -Help on function get_struc_id in module ida_struct: - -get_struc_id(*args) - get_struc_id(name) -> tid_t - - - Get struct id by name. - - - @param name (C++: const char *) - -Help on function get_struc_idx in module ida_struct: - -get_struc_idx(*args) - get_struc_idx(id) -> uval_t - - - Get internal number of the structure. - - - @param id (C++: tid_t) - -Help on function get_struc_name in module ida_struct: - -get_struc_name(*args) - get_struc_name(id, flags=0) -> str - - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) - -Help on function get_struc_qty in module ida_struct: - -get_struc_qty(*args) - get_struc_qty() -> size_t - - - Get number of known structures. - -Help on function get_struc_size in module ida_struct: - -get_struc_size(*args) - get_struc_size(sptr) -> asize_t - get_struc_size(id) -> asize_t - - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) - -Help on function get_tev_ea in module ida_dbg: - -get_tev_ea(*args) - get_tev_ea(n) -> ea_t - -Help on function get_tev_reg_mem in module ida_dbg: - -get_tev_reg_mem(tev, idx) - -Help on function get_tev_reg_mem_ea in module ida_dbg: - -get_tev_reg_mem_ea(tev, idx) - -Help on function get_tev_reg_mem_qty in module ida_dbg: - -get_tev_reg_mem_qty(tev) - -Help on function get_tev_qty in module ida_dbg: - -get_tev_qty(*args) - get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - -Help on function get_tev_reg_val in module ida_dbg: - -get_tev_reg_val(tev, reg) - -Help on function get_tev_tid in module ida_dbg: - -get_tev_tid(*args) - get_tev_tid(n) -> int - -Help on function get_tev_type in module ida_dbg: - -get_tev_type(*args) - get_tev_type(n) -> int - -Help on function get_thread_qty in module ida_dbg: - -get_thread_qty(*args) - get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - -Help on function get_tinfo in module idc: - -get_tinfo(ea) - Get type information of function/variable as 'typeinfo' object - - @param ea: the address of the object - @return: None on failure, or (type, fields) tuple. - -Help on function get_trace_file_desc in module ida_dbg: - -get_trace_file_desc(*args) - get_trace_file_desc(filename) -> str - - - Get the file header of the specified trace file. - - - @param filename (C++: const char *) - -Help on function get_type in module idc: - -get_type(ea) - Get type of function/variable - - @param ea: the address of the object - - @return: type string or None if failed - -Help on function get_wide_byte in module ida_bytes: - -get_wide_byte(*args) - get_wide_byte(ea) -> uint64 - - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) - -Help on function get_wide_dword in module ida_bytes: - -get_wide_dword(*args) - get_wide_dword(ea) -> uint64 - - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) - -Help on function get_wide_word in module ida_bytes: - -get_wide_word(*args) - get_wide_word(ea) -> uint64 - - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - -Help on function get_xref_type in module idc: - -get_xref_type() - Return type of the last xref obtained by - [RD]first/next[B0] functions. - - @return: constants fl_* or dr_* - -Help on function getn_enum in module ida_enum: - -getn_enum(*args) - getn_enum(n) -> enum_t - - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) - -Help on function getn_thread in module ida_dbg: - -getn_thread(*args) - getn_thread(n) -> thid_t - - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. - -Help on function getn_thread_name in module ida_dbg: - -getn_thread_name(*args) - getn_thread_name(n) -> char const * - - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. - -Help on function guess_type in module idc: - -guess_type(ea) - Guess type of function/variable - - @param ea: the address of the object, can be the structure member id too - - @return: type string or None if failed - -Help on function hasName in module idc: - -hasName(F) - -Help on function hasUserName in module idc: - -hasUserName(F) - -Help on function has_value in module idc: - -has_value(F) - -Help on function here in module idc: - -here() - # Convenience functions: - -Help on function idadir in module idc: - -idadir() - Get IDA directory - - This function returns the directory where IDA.EXE resides - -Help on function import_type in module idc: - -import_type(idx, type_name) - Copy information from type library to database - Copy structure, union, or enum definition from the type library - to the IDA database. - - @param idx: the position of the new type in the list of - types (structures or enums) -1 means at the end of the list - @param type_name: name of type to copy - - @return: BADNODE-failed, otherwise the type id (structure id or enum id) - -Help on function isBin0 in module idc: - -isBin0(F) - -Help on function isBin1 in module idc: - -isBin1(F) - -Help on function isDec0 in module idc: - -isDec0(F) - -Help on function isDec1 in module idc: - -isDec1(F) - -Help on function isExtra in module idc: - -isExtra(F) - -Help on function isHex0 in module idc: - -isHex0(F) - -Help on function isHex1 in module idc: - -isHex1(F) - -Help on function isOct0 in module idc: - -isOct0(F) - -Help on function isOct1 in module idc: - -isOct1(F) - -Help on function isRef in module idc: - -isRef(F) - -Help on function is_align in module idc: - -is_align(F) - -Help on function is_bf in module ida_enum: - -is_bf(*args) - is_bf(id) -> bool - - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) - -Help on function is_byte in module idc: - -is_byte(F) - -Help on function is_char0 in module idc: - -is_char0(F) - -Help on function is_char1 in module idc: - -is_char1(F) - -Help on function is_code in module idc: - -is_code(F) - -Help on function is_data in module idc: - -is_data(F) - -Help on function is_defarg0 in module idc: - -is_defarg0(F) - -Help on function is_defarg1 in module idc: - -is_defarg1(F) - -Help on function is_double in module idc: - -is_double(F) - -Help on function is_dword in module idc: - -is_dword(F) - -Help on function is_enum0 in module idc: - -is_enum0(F) - -Help on function is_enum1 in module idc: - -is_enum1(F) - -Help on function is_event_handled in module idc: - -is_event_handled() - Is the debug event handled? - - @return: boolean - -Help on function is_float in module idc: - -is_float(F) - -Help on function is_flow in module idc: - -is_flow(F) - -Help on function is_head in module idc: - -is_head(F) - -Help on function is_loaded in module idc: - -is_loaded(ea) - Is the byte initialized? - -Help on function is_manual0 in module idc: - -is_manual0(F) - -Help on function is_manual1 in module idc: - -is_manual1(F) - -Help on function is_mapped in module idc: - -is_mapped(ea) - -Help on function is_off0 in module idc: - -is_off0(F) - -Help on function is_off1 in module idc: - -is_off1(F) - -Help on function is_oword in module idc: - -is_oword(F) - -Help on function is_pack_real in module idc: - -is_pack_real(F) - -Help on function is_qword in module idc: - -is_qword(F) - -Help on function is_seg0 in module idc: - -is_seg0(F) - -Help on function is_seg1 in module idc: - -is_seg1(F) - -Help on function is_stkvar0 in module idc: - -is_stkvar0(F) - -Help on function is_stkvar1 in module idc: - -is_stkvar1(F) - -Help on function is_strlit in module idc: - -is_strlit(F) - -Help on function is_stroff0 in module idc: - -is_stroff0(F) - -Help on function is_stroff1 in module idc: - -is_stroff1(F) - -Help on function is_struct in module idc: - -is_struct(F) - -Help on function is_tail in module idc: - -is_tail(F) - -Help on function is_tbyte in module idc: - -is_tbyte(F) - -Help on function is_union in module idc: - -is_union(sid) - Is a structure a union? - - @param sid: structure type ID - - @return: 1: yes, this is a union id - 0: no - - @note: Unions are a special kind of structures - -Help on function is_unknown in module idc: - -is_unknown(F) - -Help on function is_valid_trace_file in module ida_dbg: - -is_valid_trace_file(*args) - is_valid_trace_file(filename) -> bool - - - Is the specified file a valid trace file for the current database? - - - @param filename (C++: const char *) - -Help on function is_word in module idc: - -is_word(F) - -Help on function jumpto in module ida_kernwin: - -jumpto(*args) - jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool - jumpto(custom_viewer, place, x, y) -> bool - - - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success - -Help on function load_and_run_plugin in module ida_loader: - -load_and_run_plugin(*args) - load_and_run_plugin(name, arg) -> bool - - - Load & run a plugin. - - - @param name (C++: const char *) - @param arg (C++: size_t) - -Help on function load_debugger in module ida_dbg: - -load_debugger(*args) - load_debugger(dbgname, use_remote) -> bool - -Help on function load_trace_file in module ida_dbg: - -load_trace_file(*args) - load_trace_file(filename) -> str - - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) - -Help on function loadfile in module idc: - -loadfile(filepath, pos, ea, size) - -Help on function ltoa in module idc: - -ltoa(n, radix) - -Help on function make_array in module idc: - -make_array(ea, nitems) - Create an array. - - @param ea: linear address - @param nitems: size of array in items - - @note: This function will create an array of the items with the same type as - the type of the item at 'ea'. If the byte at 'ea' is undefined, then - this function will create an array of bytes. - -Help on function move_segm in module idc: - -move_segm(ea, to, flags) - Move a segment to a new address - This function moves all information to the new address - It fixes up address sensitive information in the kernel - The total effect is equal to reloading the segment to the target address - - @param ea: any address within the segment to move - @param to: new segment start address - @param flags: combination MFS_... constants - - @returns: MOVE_SEGM_... error code - -Help on function msg in module ida_kernwin: - -msg(*args) - msg(o) -> PyObject * - - - Display an UTF-8 string in the message window - - The result of the stringification of the arguments - will be treated as an UTF-8 string. - - @param message: message to print (formatting is done in Python) - - This function can be used to debug IDAPython scripts - -Help on function next_addr in module ida_bytes: - -next_addr(*args) - next_addr(ea) -> ea_t - - - Get next address in the program (i.e. next address which has flags). - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function next_func_chunk in module idc: - -next_func_chunk(funcea, tailea) - Get the next function chunk of the specified function - - @param funcea: any address in the function - @param tailea: any address in the current chunk - - @return: the starting address of the next function chunk or BADADDR - - @note: This function returns the next chunk of the specified function - -Help on function next_head in module idc: - -next_head(ea, maxea=BADADDR)↗ - Get next defined item (instruction or data) in the program - - @param ea: linear address to start search from - @param maxea: the search will stop at the address - maxea is not included in the search range - - @return: BADADDR - no (more) defined items - -Help on function next_not_tail in module ida_bytes: - -next_not_tail(*args) - next_not_tail(ea) -> ea_t - - - Get address of next non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function op_bin in module ida_bytes: - -op_bin(*args) - op_bin(ea, n) -> bool - - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_chr in module ida_bytes: - -op_chr(*args) - op_chr(ea, n) -> bool - - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_dec in module ida_bytes: - -op_dec(*args) - op_dec(ea, n) -> bool - - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_enum in module ida_bytes: - -op_enum(*args) - op_enum(ea, n, id, serial) -> bool - - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) - @return: success - -Help on function op_flt in module ida_bytes: - -op_flt(*args) - op_flt(ea, n) -> bool - - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_hex in module ida_bytes: - -op_hex(*args) - op_hex(ea, n) -> bool - - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function set_forced_operand in module ida_bytes: - -set_forced_operand(*args) - set_forced_operand(ea, n, op) -> bool - - - Set forced operand. - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) - @return: success - -Help on function op_num in module ida_bytes: - -op_num(*args) - op_num(ea, n) -> bool - - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_oct in module ida_bytes: - -op_oct(*args) - op_oct(ea, n) -> bool - - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function op_offset in module ida_offset: - -op_offset(*args) - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int - - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) - -Help on function op_offset_high16 in module idc: - -op_offset_high16(ea, n, target) - Convert operand to a high offset - High offset is the upper 16bits of an offset. - This type is used by TMS320C6 processors (and probably by other - RISC processors too) - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - @param target: the full value (all 32bits) of the offset - -Help on function op_plain_offset in module idc: - -op_plain_offset(ea, n, base) - Convert operand to an offset - (for the explanations of 'ea' and 'n' please see op_bin()) - - Example: - ======== - - seg000:2000 dw 1234h - - and there is a segment at paragraph 0x1000 and there is a data item - within the segment at 0x1234: - - seg000:1234 MyString db 'Hello, world!',0 - - Then you need to specify a linear address of the segment base to - create a proper offset: - - op_plain_offset(["seg000",0x2000],0,0x10000); - - and you will have: - - seg000:2000 dw offset MyString - - Motorola 680x0 processor have a concept of "outer offsets". - If you want to create an outer offset, you need to combine number - of the operand with the following bit: - - Please note that the outer offsets are meaningful only for - Motorola 680x0. - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - @param base: base of the offset as a linear address - If base == BADADDR then the current operand becomes non-offset - -Help on function op_seg in module ida_bytes: - -op_seg(*args) - op_seg(ea, n) -> bool - - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stkvar in module ida_bytes: - -op_stkvar(*args) - op_stkvar(ea, n) -> bool - - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success - -Help on function op_stroff in module idc: - -op_stroff(ea, n, strid, delta) - Convert operand to an offset in a structure - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - @param strid: id of a structure type - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the structure. - -Help on function parse_decl in module idc: - -parse_decl(inputtype, flags) - Parse type declaration - - @param inputtype: file name or C declarations (depending on the flags) - @param flags: combination of PT_... constants or 0 - - @return: None on failure or (name, type, fields) tuple - -Help on function parse_decls in module idc: - -parse_decls(inputtype, flags=0) - Parse type declarations - - @param inputtype: file name or C declarations (depending on the flags) - @param flags: combination of PT_... constants or 0 - - @return: number of parsing errors (0 no errors) - -Help on function patch_byte in module ida_bytes: - -patch_byte(*args) - patch_byte(ea, x) -> bool - - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function put_dbg_byte in module ida_dbg: - -put_dbg_byte(*args) - put_dbg_byte(ea, x) -> bool - - - Change one byte of the debugged process memory. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) - @return: true if the process memory has been modified - -Help on function patch_dword in module ida_bytes: - -patch_dword(*args) - patch_dword(ea, x) -> bool - - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_qword in module ida_bytes: - -patch_qword(*args) - patch_qword(ea, x) -> bool - - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function patch_word in module ida_bytes: - -patch_word(*args) - patch_word(ea, x) -> bool - - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) - -Help on function plan_and_wait in module idc: - -plan_and_wait(sEA, eEA, final_pass=True) - Perform full analysis of the range - - @param sEA: starting linear address - @param eEA: ending linear address (excluded) - @param final_pass: make the final pass over the specified range - - @return: 1-ok, 0-Ctrl-Break was pressed. - -Help on function plan_to_apply_idasgn in module ida_funcs: - -plan_to_apply_idasgn(*args) - plan_to_apply_idasgn(fname) -> int - - - Add a signature file to the list of planned signature files. - - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures - -Help on function prev_addr in module ida_bytes: - -prev_addr(*args) - prev_addr(ea) -> ea_t - - - Get previous address in the program. - - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. - -Help on function prev_head in module idc: - -prev_head(ea, minea=0) - Get previous defined item (instruction or data) in the program - - @param ea: linear address to start search from - @param minea: the search will stop at the address - minea is included in the search range - - @return: BADADDR - no (more) defined items - -Help on function prev_not_tail in module ida_bytes: - -prev_not_tail(*args) - prev_not_tail(ea) -> ea_t - - - Get address of previous non-tail byte. - - @param ea (C++: ea_t) - @return: BADADDR if none exists. - -Help on function print_decls in module idc: - -print_decls(ordinals, flags) - Print types in a format suitable for use in a header file - - @param ordinals: comma-separated list of type ordinals - @param flags: combination of PDF_... constants or 0 - - @return: string containing the type definitions - -Help on instance of _Feature in module __future__: - -class _Feature - | Methods defined here: - | - | __init__(self, optionalRelease, mandatoryRelease, compiler_flag) - | - | __repr__(self) - | - | getMandatoryRelease(self) - | Return release in which this feature will become mandatory. - | - | This is a 5-tuple, of the same form as sys.version_info, or, if - | the feature was dropped, is None. - | - | getOptionalRelease(self) - | Return first release in which this feature was recognized. - | - | This is a 5-tuple, of the same form as sys.version_info. - -Help on function print_insn_mnem in module idc: - -print_insn_mnem(ea) - Get instruction mnemonics - - @param ea: linear address of instruction - - @return: "" - no instruction at the specified location - - @note: this function may not return exactly the same mnemonics - as you see on the screen. - -Help on function print_operand in module idc: - -print_operand(ea, n) - Get operand of an instruction or data - - @param ea: linear address of the item - @param n: number of operand: - 0 - the first operand - 1 - the second operand - - @return: the current text representation of operand or "" - -Help on function process_config_line in module idc: - -process_config_line(directive) - Parse one or more ida.cfg config directives - @param directive: directives to process, for example: PACK_DATABASE=2 - - @note: If the directives are erroneous, a fatal error will be generated. - The settings are permanent: effective for the current session and the next ones - -Help on function process_ui_action in module idc: - -process_ui_action(name, flags=0) - Invokes an IDA UI action by name - - @param name: Command name - @param flags: Reserved. Must be zero - @return: Boolean - -Help on function mark_position in module ida_idc: - -mark_position(*args) - mark_position(ea, lnnum, x, y, slot, comment) - -Help on function qexit in module ida_pro: - -qexit(*args) - qexit(code) - - - Call qatexit functions, shut down UI and kernel, and exit. - - @param code: exit code (C++: int) - -Help on function qsleep in module idc: - -qsleep(milliseconds) - qsleep the specified number of milliseconds - This function suspends IDA for the specified amount of time - - @param milliseconds: time to sleep - -Help on function read_dbg_byte in module idc: - -read_dbg_byte(ea) - Get value of program byte using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function read_dbg_dword in module idc: - -read_dbg_dword(ea) - Get value of program double-word using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function dbg_read_memory in module ida_idd: - -dbg_read_memory(*args) - dbg_read_memory(ea, sz) -> PyObject * - - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) - - Or None on failure - -Help on function read_dbg_qword in module idc: - -read_dbg_qword(ea) - Get value of program quadro-word using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function read_dbg_word in module idc: - -read_dbg_word(ea) - Get value of program word using the debugger memory - - @param ea: linear address - @return: The value or None on failure. - -Help on function read_selection_end in module idc: - -read_selection_end() - Get end address of the selected range - - @return: BADADDR - the user has not selected an range - -Help on function read_selection_start in module idc: - -read_selection_start() - Get start address of the selected range - returns BADADDR - the user has not selected an range - -Help on function readlong in module idc: - -readlong(handle, mostfirst) - -Help on function readshort in module idc: - -readshort(handle, mostfirst) - -Help on function readstr in module idc: - -readstr(handle) - -Help on function rebase_program in module ida_segment: - -rebase_program(*args) - rebase_program(delta, flags) -> int - - - Rebase the whole program by 'delta' bytes. - - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) - @return: Move segment result codes - -Help on function recalc_spd in module ida_frame: - -recalc_spd(*args) - recalc_spd(cur_ea) -> bool - - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. - - @param cur_ea: linear address of the current instruction (C++: ea_t) - -Help on function refresh_debugger_memory in module ida_dbg: - -refresh_debugger_memory(*args) - refresh_debugger_memory() -> PyObject * - - - Refreshes the debugger memory - @return: Nothing - -Help on function refresh_idaview_anyway in module ida_kernwin: - -refresh_idaview_anyway(*args) - refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead - -Help on function refresh_choosers in module ida_kernwin: - -refresh_choosers(*args) - refresh_choosers() - -Help on function remove_fchunk in module idc: - -remove_fchunk(funcea, tailea) - Remove a function chunk from the function - - @param funcea: any address in the function - @param tailea: any address in the function chunk to remove - - @return: 0 if failed, 1 if success - -Help on function rename_array in module idc: - -rename_array(array_id, newname) - Rename array, by its ID. - - @param id: The ID of the array to rename. - @param newname: The new name of the array. - - @return: 1 in case of success, 0 otherwise - -Help on function rename_entry in module ida_entry: - -rename_entry(*args) - rename_entry(ord, name, flags=0) -> bool - - - Rename entry point. - - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) - @return: success - -Help on function resume_process in module idc: - -resume_process() - -Help on function resume_thread in module ida_dbg: - -resume_thread(*args) - resume_thread(tid) -> int - - - Resume thread. \sq{Type, Synchronous function - available as request, - Notification, none (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on function retrieve_input_file_md5 in module ida_nalt: - -retrieve_input_file_md5(*args) - retrieve_input_file_md5() -> str - - - Get input file md5. - -Help on function rotate_byte in module idc: - -rotate_byte(x, count) - -Help on function rotate_dword in module idc: - -rotate_dword(x, count) - -Help on function rotate_left in module idc: - -rotate_left(value, count, nbits, offset) - Rotate a value to the left (or right) - - @param value: value to rotate - @param count: number of times to rotate. negative counter means - rotate to the right - @param nbits: number of bits to rotate - @param offset: offset of the first bit to rotate - - @return: the value with the specified field rotated - all other bits are not modified - -Help on function rotate_word in module idc: - -rotate_word(x, count) - -Help on function run_to in module ida_dbg: - -run_to(*args) - run_to(ea, pid=pid_t(-1), tid=0) -> bool - - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) - -Help on function save_database in module idc: - -save_database(idbname, flags=0) - Save current database to the specified idb file - - @param idbname: name of the idb file. if empty, the current idb - file will be used. - @param flags: combination of ida_loader.DBFL_... bits or 0 - -Help on function save_trace_file in module ida_dbg: - -save_trace_file(*args) - save_trace_file(filename, description) -> bool - - - Save the current trace in the specified file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function savefile in module idc: - -savefile(filepath, pos, ea, size) - -Help on function sel2para in module idc: - -sel2para(sel) - Get a selector value - - @param sel: the selector number - - @return: selector value if found - otherwise the input value (sel) - - @note: selector values are always in paragraphs - -Help on function select_thread in module ida_dbg: - -select_thread(*args) - select_thread(tid) -> bool - - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. - -Help on function selector_by_name in module idc: - -selector_by_name(segname) - Get segment selector by name - - @param segname: name of segment - - @return: segment selector or BADADDR - -Help on function send_dbg_command in module idc: - -send_dbg_command(cmd) - Sends a command to the debugger module and returns the output string. - An exception will be raised if the debugger is not running or the current debugger does not export - the 'send_dbg_command' IDC command. - -Help on function set_array_long in module idc: - -set_array_long(array_id, idx, value) - Sets the long value of an array element. - - @param array_id: The array ID. - @param idx: Index of an element. - @param value: 32bit or 64bit value to store in the array - - @return: 1 in case of success, 0 otherwise - -Help on function set_array_params in module idc: - -set_array_params(ea, flags, litems, align) - Set array representation format - - @param ea: linear address - @param flags: combination of AP_... constants or 0 - @param litems: number of items per line. 0 means auto - @param align: element alignment - - -1: do not align - - 0: automatic alignment - - other values: element width - - @return: 1-ok, 0-failure - -Help on function set_array_string in module idc: - -set_array_string(array_id, idx, value) - Sets the string value of an array element. - - @param array_id: The array ID. - @param idx: Index of an element. - @param value: String value to store in the array - - @return: 1 in case of success, 0 otherwise - -Help on function set_bmask_cmt in module idc: - -set_bmask_cmt(enum_id, bmask, cmt, repeatable) - Set bitmask comment (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - @param cmt: comment - repeatable - type of comment, 0-regular, 1-repeatable - - @return: 1-ok, 0-failed - -Help on function set_bmask_name in module idc: - -set_bmask_name(enum_id, bmask, name) - Set bitmask name (only for bitfields) - - @param enum_id: id of enum - @param bmask: bitmask of the constant - @param name: name of bitmask - - @return: 1-ok, 0-failed - -Help on function set_bpt_attr in module idc: - -set_bpt_attr(address, bptattr, value) - modifiable characteristics of a breakpoint - - @param address: any address in the breakpoint range - @param bptattr: the attribute code, one of BPTATTR_* constants - BPTATTR_CND is not allowed, see set_bpt_cond() - @param value: the attibute value - - @return: success - -Help on function set_bpt_cond in module idc: - -set_bpt_cond(ea, cnd, is_lowcnd=0) - Set breakpoint condition - - @param ea: any address in the breakpoint range - @param cnd: breakpoint condition - @param is_lowcnd: 0 - regular condition, 1 - low level condition - - @return: success - -Help on function set_cmt in module ida_bytes: - -set_cmt(*args) - set_cmt(ea, comm, rptble) -> bool - - - Set an indented comment. - - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) - @return: success - -Help on function set_color in module idc: - -set_color(ea, what, color) - Set item color - - @param ea: address of the item - @param what: type of the item (one of CIC_* constants) - @param color: new color code in RGB (hex 0xBBGGRR) - - @return: success (True or False) - -Help on function set_debugger_event_cond in module ida_dbg: - -set_debugger_event_cond(*args) - set_debugger_event_cond(nonnul_cond) - -Help on function set_debugger_options in module ida_dbg: - -set_debugger_options(*args) - set_debugger_options(options) -> uint - - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' - - @param options (C++: uint) - @return: the old debugger options - -Help on function set_default_sreg_value in module idc: - -set_default_sreg_value(ea, reg, value) - Set default segment register value for a segment - - @param ea: any address in the segment - if no segment is present at the specified address - then all segments will be affected - @param reg: name of segment register - @param value: default value of the segment register. -1-undefined. - -Help on function set_enum_bf in module ida_enum: - -set_enum_bf(*args) - set_enum_bf(id, bf) -> bool - - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - - @param id (C++: enum_t) - @param bf (C++: bool) - -Help on function set_enum_cmt in module ida_enum: - -set_enum_cmt(*args) - set_enum_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum type. - - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_flag in module ida_enum: - -set_enum_flag(*args) - set_enum_flag(id, flag) -> bool - - - Set data representation flags. - - - @param id (C++: enum_t) - @param flag (C++: flags_t) - -Help on function set_enum_idx in module ida_enum: - -set_enum_idx(*args) - set_enum_idx(id, idx) -> bool - - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) - -Help on function set_enum_member_cmt in module ida_enum: - -set_enum_member_cmt(*args) - set_enum_member_cmt(id, cmt, repeatable) -> bool - - - Set comment for enum member. - - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_enum_member_name in module ida_enum: - -set_enum_member_name(*args) - set_enum_member_name(id, name) -> bool - - - Set name of enum member. - - - @param id (C++: const_t) - @param name (C++: const char *) - -Help on function set_enum_name in module ida_enum: - -set_enum_name(*args) - set_enum_name(id, name) -> bool - - - Set name of enum type. - - - @param id (C++: enum_t) - @param name (C++: const char *) - -Help on function set_enum_width in module ida_enum: - -set_enum_width(*args) - set_enum_width(id, width) -> bool - - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) - -Help on function set_fchunk_attr in module idc: - -set_fchunk_attr(ea, attr, value) - Set a function chunk attribute - - @param ea: any address in the chunk - @param attr: only FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER - @param value: desired value - - @return: 0 if failed, 1 if success - -Help on function set_fixup in module idc: - -set_fixup(ea, fixuptype, fixupflags, targetsel, targetoff, displ) - Set fixup information - - @param ea: address to set fixup information about - @param fixuptype: fixup type. see get_fixup_target_type() - for possible fixup types. - @param fixupflags: fixup flags. see get_fixup_target_flags() - for possible fixup types. - @param targetsel: target selector - @param targetoff: target offset - @param displ: displacement - - @return: none - -Help on function set_flag in module idc: - -set_flag(off, bit, value) - #-------------------------------------------------------------------------- - -Help on function set_frame_size in module idc: - -set_frame_size(ea, lvsize, frregs, argsize) - Make function frame - - @param ea: any address belonging to the function - @param lvsize: size of function local variables - @param frregs: size of saved registers - @param argsize: size of function arguments - - @return: ID of function frame or -1 - If the function did not have a frame, the frame - will be created. Otherwise the frame will be modified - -Help on function set_func_attr in module idc: - -set_func_attr(ea, attr, value) - Set a function attribute - - @param ea: any address belonging to the function - @param attr: one of FUNCATTR_... constants - @param value: new value of the attribute - - @return: 1-ok, 0-failed - -Help on function set_func_cmt in module idc: - -set_func_cmt(ea, cmt, repeatable) - Set function comment - - @param ea: any address belonging to the function - @param cmt: a function comment line - @param repeatable: 1: get repeatable comment - 0: get regular comment - -Help on function set_func_end in module ida_funcs: - -set_func_end(*args) - set_func_end(ea, newend) -> bool - - - Move function chunk end address. - - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) - @return: success - -Help on function set_func_flags in module idc: - -set_func_flags(ea, flags) - Change function flags - - @param ea: any address belonging to the function - @param flags: see get_func_flags() for explanations - - @return: !=0 - ok - -Help on function set_hash_long in module idc: - -set_hash_long(hash_id, key, value) - Sets the long value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - @param value: 32bit or 64bit value to store in the hash - - @return: 1 in case of success, 0 otherwise - -Help on function set_hash_string in module idc: - -set_hash_string(hash_id, key, value) - Sets the string value of a hash element. - - @param hash_id: The hash ID. - @param key: Key of an element. - @param value: string value to store in the hash - - @return: 1 in case of success, 0 otherwise - -Help on function set_ida_state in module ida_auto: - -set_ida_state(*args) - set_ida_state(st) -> idastate_t - - - Change IDA status indicator value - - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status - -Help on function set_inf_attr in module idc: - -set_inf_attr(attr, value) - Deprecated. Please ida_ida.inf_set_* instead. - -Help on function set_local_type in module idc: - -set_local_type(ordinal, input, flags) - Parse one type declaration and store it in the specified slot - - @param ordinal: slot number (1...NumberOfLocalTypes) - -1 means allocate new slot or reuse the slot - of the existing named type - @param input: C declaration. Empty input empties the slot - @param flags: combination of PT_... constants or 0 - - @return: slot number or 0 if error - -Help on function set_manual_insn in module ida_bytes: - -set_manual_insn(*args) - set_manual_insn(ea, manual_insn) - - - Set manual instruction string. - - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) - -Help on function set_member_cmt in module idc: - -set_member_cmt(sid, member_offset, comment, repeatable) - Change structure member comment - - @param sid: structure type ID - @param member_offset: offset of the member - @param comment: new comment of the structure member - @param repeatable: 1: change repeatable comment - 0: change regular comment - - @return: != 0 - ok - -Help on function set_member_name in module idc: - -set_member_name(sid, member_offset, name) - Change structure member name - - @param sid: structure type ID - @param member_offset: offset of the member - @param name: new name of the member - - @return: != 0 - ok. - -Help on function set_member_type in module idc: - -set_member_type(sid, member_offset, flag, typeid, nitems, target=-1, tdelta=0, reftype=2) - Change structure member type - - @param sid: structure type ID - @param member_offset: offset of the member - @param flag: new type of the member. Should be one of - FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA - @param typeid: if is_struct(flag) then typeid specifies the structure id for the member - if is_off0(flag) then typeid specifies the offset base. - if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). - if is_stroff(flag) then typeid specifies the structure id - if is_enum(flag) then typeid specifies the enum id - if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) - Otherwise typeid should be -1. - @param nitems: number of items in the member - - @param target: target address of the offset expr. You may specify it as - -1, ida will calculate it itself - @param tdelta: offset target delta. usually 0 - @param reftype: see REF_... definitions - - @note: The remaining arguments are allowed only if is_off0(flag) and you want - to specify a complex offset expression - - @return: !=0 - ok. - -Help on function set_name in module idc: - -set_name(ea, name, flags=0) - Rename an address - - @param ea: linear address - @param name: new name of address. If name == "", then delete old name - @param flags: combination of SN_... constants - - @return: 1-ok, 0-failure - -Help on function set_processor_type in module ida_idp: - -set_processor_type(*args) - set_processor_type(procname, level) -> bool - - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success - -Help on function set_reg_value in module idc: - -set_reg_value(value, name) - Set register value - - @param name: the register name - @param value: new register value - - @note: The debugger should be running - It is not necessary to use this function to set register values. - A register name in the left side of an assignment will do too. - -Help on function set_remote_debugger in module ida_dbg: - -set_remote_debugger(*args) - set_remote_debugger(host, _pass, port=-1) - - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) - -Help on function set_root_filename in module ida_nalt: - -set_root_filename(*args) - set_root_filename(file) - - - Set full path of the input file. - - - @param file (C++: const char *) - -Help on function set_segm_addressing in module idc: - -set_segm_addressing(ea, bitness) - Change segment addressing - - @param ea: any address in the segment - @param bitness: 0: 16bit, 1: 32bit, 2: 64bit - - @return: success (boolean) - -Help on function set_segm_alignment in module idc: - -set_segm_alignment(ea, alignment) - Change alignment of the segment - - @param ea: any address in the segment - @param alignment: new alignment of the segment (one of the sa... constants) - - @return: success (boolean) - -Help on function set_segm_attr in module idc: - -set_segm_attr(segea, attr, value) - Set segment attribute - - @param segea: any address within segment - @param attr: one of SEGATTR_... constants - - @note: Please note that not all segment attributes are modifiable. - Also some of them should be modified using special functions - like set_segm_addressing, etc. - -Help on function set_segm_class in module idc: - -set_segm_class(ea, segclass) - Change class of the segment - - @param ea: any address in the segment - @param segclass: new class of the segment - - @return: success (boolean) - -Help on function set_segm_combination in module idc: - -set_segm_combination(segea, comb) - Change combination of the segment - - @param segea: any address in the segment - @param comb: new combination of the segment (one of the sc... constants) - - @return: success (boolean) - -Help on function set_segm_name in module idc: - -set_segm_name(ea, name) - Change name of the segment - - @param ea: any address in the segment - @param name: new name of the segment - - @return: success (boolean) - -Help on function set_segm_type in module idc: - -set_segm_type(segea, segtype) - Set segment type - - @param segea: any address within segment - @param segtype: new segment type: - - @return: !=0 - ok - -Help on function set_segment_bounds in module idc: - -set_segment_bounds(ea, startea, endea, flags) - Change segment boundaries - - @param ea: any address in the segment - @param startea: new start address of the segment - @param endea: new end address of the segment - @param flags: combination of SEGMOD_... flags - - @return: boolean success - -Help on function set_selector in module ida_segment: - -set_selector(*args) - set_selector(selector, paragraph) -> int - - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) - -Help on function set_source_linnum in module ida_nalt: - -set_source_linnum(*args) - set_source_linnum(ea, lnnum) - -Help on function set_step_trace_options in module ida_dbg: - -set_step_trace_options(*args) - set_step_trace_options(options) - - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) - -Help on function change_storage_type in module ida_bytes: - -change_storage_type(*args) - change_storage_type(start_ea, end_ea, stt) -> error_t - - - Change flag storage type for address range. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) - @return: error code - -Help on function set_struc_cmt in module ida_struct: - -set_struc_cmt(*args) - set_struc_cmt(id, cmt, repeatable) -> bool - - - Set structure comment. - - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) - -Help on function set_struc_idx in module idc: - -set_struc_idx(sid, index) - Change structure index - - @param sid: structure type ID - @param index: new index of the structure - - @return: != 0 - ok - - @note: See get_first_struc_idx() for the explanation of - structure indices and IDs. - -Help on function set_struc_name in module ida_struct: - -set_struc_name(*args) - set_struc_name(id, name) -> bool - - - Set structure name. - - - @param id (C++: tid_t) - @param name (C++: const char *) - -Help on function set_tail_owner in module idc: - -set_tail_owner(tailea, funcea) - Change the function chunk owner - - @param tailea: any address in the function chunk - @param funcea: the starting address of the new owner - - @return: False if failed, True if success - - @note: The new owner must already have the chunk appended before the call - -Help on function set_target_assembler in module ida_idp: - -set_target_assembler(*args) - set_target_assembler(asmnum) -> bool - - - Set target assembler. - - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success - -Help on function set_trace_file_desc in module ida_dbg: - -set_trace_file_desc(*args) - set_trace_file_desc(filename, description) -> bool - - - Change the description of the specified trace file. - - - @param filename (C++: const char *) - @param description (C++: const char *) - -Help on function split_sreg_range in module idc: - -split_sreg_range(ea, reg, value, tag=2) - Set value of a segment register. - - @param ea: linear address - @param reg: name of a register, like "cs", "ds", "es", etc. - @param value: new value of the segment register. - @param tag: of SR_... constants - - @note: IDA keeps tracks of all the points where segment register change their - values. This function allows you to specify the correct value of a segment - register if IDA is not able to find the corrent value. - -Help on function start_process in module ida_dbg: - -start_process(*args) - start_process(path=None, args=None, sdir=None) -> int - - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) - -Help on function step_into in module ida_dbg: - -step_into(*args) - step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } - -Help on function step_over in module ida_dbg: - -step_over(*args) - step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } - -Help on function step_until_ret in module ida_dbg: - -step_until_ret(*args) - step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } - -Help on function strlen in module idc: - -strlen(s) - -Help on function strstr in module idc: - -strstr(s1, s2) - -Help on function substr in module idc: - -substr(s, x1, x2) - -Help on function suspend_process in module ida_dbg: - -suspend_process(*args) - suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. - -Help on function suspend_thread in module ida_dbg: - -suspend_thread(*args) - suspend_thread(tid) -> int - - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) - -Help on function take_memory_snapshot in module ida_segment: - -take_memory_snapshot(*args) - take_memory_snapshot(only_loader_segs) -> bool - - - Take a memory snapshot of the running process. - - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success - -Help on function to_ea in module idc: - -to_ea(seg, off) - Return value of expression: ((seg<<4) + off) - -Help on function toggle_bnot in module idc: - -toggle_bnot(ea, n) - Toggle the bitwise not operator for the operand - - @param ea: linear address - @param n: number of operand - - 0 - the first operand - - 1 - the second, third and all other operands - - -1 - all operands - -Help on function toggle_sign in module ida_bytes: - -toggle_sign(*args) - toggle_sign(ea, n) -> bool - - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) - -Help on function update_extra_cmt in module ida_lines: - -update_extra_cmt(*args) - update_extra_cmt(ea, what, str) - -Help on function update_hidden_range in module idc: - -update_hidden_range(ea, visible) - Set hidden range state - - @param ea: any address belonging to the hidden range - @param visible: new state of the range - - @return: != 0 - ok - -Help on function validate_idb_names in module idc: - -validate_idb_names(do_repair=0) - check consistency of IDB name records - @param do_repair: try to repair netnode header it TRUE - @return: number of inconsistent name records - -Help on function value_is_float in module idc: - -value_is_float(var) - -Help on function value_is_func in module idc: - -value_is_func(var) - -Help on function value_is_int64 in module idc: - -value_is_int64(var) - -Help on function value_is_long in module idc: - -value_is_long(var) - -Help on function value_is_pvoid in module idc: - -value_is_pvoid(var) - -Help on function value_is_string in module idc: - -value_is_string(var) - # List of built-in functions - # -------------------------- - # - # The following conventions are used in this list: - # 'ea' is a linear address - # 'success' is 0 if a function failed, 1 otherwise - # 'void' means that function returns no meaningful value (always 0) - # - # All function parameter conversions are made automatically. - # - # ---------------------------------------------------------------------------- - # M I S C E L L A N E O U S - # ---------------------------------------------------------------------------- - -Help on function wait_for_next_event in module ida_dbg: - -wait_for_next_event(*args) - wait_for_next_event(wfne, timeout) -> dbg_event_code_t - - - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) - -Help on function warning in module ida_kernwin: - -warning(*args) - warning(format) - - - Display a message in a message box - - @param 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 - -Help on function write_dbg_memory in module idc: - -write_dbg_memory(ea, data) - Write to debugger memory. - - @param ea: linear address - @param data: string to write - @return: number of written bytes (-1 - network/debugger error) - - Thread-safe function (may be called only from the main thread and debthread) - -Help on function writelong in module idc: - -writelong(handle, dword, mostfirst) - -Help on function writeshort in module idc: - -writeshort(handle, word, mostfirst) - -Help on function writestr in module idc: - -writestr(handle, s) - -Help on function xtol in module idc: - -xtol(s) - diff --git a/release_pydoc_injections3.txt b/release_pydoc_injections3.txt index 058ae4c..b81059a 100644 --- a/release_pydoc_injections3.txt +++ b/release_pydoc_injections3.txt @@ -1,41 +1,54 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + Help on function auto_apply_tail in module ida_auto: auto_apply_tail(*args) -> 'void' auto_apply_tail(tail_ea, parent_ea) - - Plan to apply the tail_ea chunk to the parent - @param tail_ea: linear address of start of tail (C++: ea_t) - @param parent_ea: linear address within parent. If BADADDR, - automatically try to find parent via xrefs. (C++: - ea_t) + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. Help on function auto_apply_type in module ida_auto: auto_apply_type(*args) -> 'void' auto_apply_type(caller, callee) - - Plan to apply the callee's type to the calling point. - - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function auto_cancel in module ida_auto: auto_cancel(*args) -> 'void' auto_cancel(ea1, ea2) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. - - Remove an address range (ea1..ea2) from queues 'AU_CODE' , 'AU_PROC' , - 'AU_USED' . To remove an address range from other queues use - 'auto_unmark()' function. 'ea1' may be higher than 'ea2', the kernel - will swap them in this case. 'ea2' doesn't belong to the range. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -62,319 +75,445 @@ class auto_display_t(builtins.object) | list of weak references to the object (if defined) | | ea - | auto_display_t_ea_get(self) -> ea_t + | ea | | state - | auto_display_t_state_get(self) -> idastate_t + | state | | thisown | The membership flag | | type - | auto_display_t_type_get(self) -> atype_t + | type Help on function auto_get in module ida_auto: auto_get(*args) -> 'ea_t' auto_get(type, lowEA, highEA) -> ea_t + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. - - Retrieve an address from queues regarding their priority. Returns - 'BADADDR' if no addresses not lower than 'lowEA' and less than - 'highEA' are found in the queues. Otherwise *type will have queue - type. - - @param type (C++: atype_t *) - @param lowEA (C++: ea_t) - @param highEA (C++: ea_t) + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) Help on function auto_is_ok in module ida_auto: auto_is_ok(*args) -> 'bool' auto_is_ok() -> bool - - Are all queues empty? (i.e. has autoanalysis finished?). Help on function auto_make_code in module ida_auto: auto_make_code(*args) -> 'void' auto_make_code(ea) - - Plan to make code. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function auto_make_proc in module ida_auto: auto_make_proc(*args) -> 'void' auto_make_proc(ea) - - Plan to make code&function. + @param ea: (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) -> 'bool' + auto_make_step(ea1, ea2) -> bool + Analyze one address in the specified range and return true. - @param ea (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. Help on function auto_mark in module ida_auto: auto_mark(*args) -> 'void' auto_mark(ea, type) - - Put single address into a queue. Queues keep addresses sorted. - - @param ea (C++: ea_t) - @param type (C++: atype_t) + @param ea: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_recreate_insn in module ida_auto: auto_recreate_insn(*args) -> 'int' auto_recreate_insn(ea) -> int - - Try to create instruction - @param ea: linear address of callee (C++: ea_t) + @param ea: (C++: ea_t) linear address of callee @return: the length of the instruction or 0 Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' auto_wait() -> bool - - Process everything in the queues and return true. - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function auto_wait_range in module ida_auto: auto_wait_range(*args) -> 'ssize_t' auto_wait_range(ea1, ea2) -> ssize_t - - Process everything in the specified range and return true. - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @return: number of autoanalysis steps made. -1 if the user clicked - cancel. (the wait box must be displayed by the caller if - desired) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) Help on function enable_auto in module ida_auto: enable_auto(*args) -> 'bool' enable_auto(enable) -> bool + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO - - Temporarily enable/disable autoanalyzer. Not user-facing, but rather - because IDA sometimes need to turn AA on/off regardless of - inf.s_genflags:INFFL_AUTO - - @param enable (C++: bool) + @param enable: (C++: bool) @return: old state Help on function get_auto_display in module ida_auto: -get_auto_display(*args) -> 'void' - get_auto_display(auto_display) - - +get_auto_display(*args) -> 'bool' + get_auto_display(auto_display) -> bool Get structure which holds the autoanalysis indicator contents. - - @param auto_display (C++: auto_display_t *) + @param auto_display: (C++: auto_display_t *) Help on function get_auto_state in module ida_auto: get_auto_state(*args) -> 'atype_t' get_auto_state() -> atype_t - - - Get current state of autoanalyzer. If auto_state == 'AU_NONE' , IDA is - currently not running the analysis (it could be temporarily - interrupted to perform the user's requests, for example). + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). Help on function is_auto_enabled in module ida_auto: is_auto_enabled(*args) -> 'bool' is_auto_enabled() -> bool - - Get autoanalyzer state. Help on function may_create_stkvars in module ida_auto: may_create_stkvars(*args) -> 'bool' may_create_stkvars() -> bool - - - Is it allowed to create stack variables automatically?. This function - should be used by IDP modules before creating stack vars. + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. Help on function may_trace_sp in module ida_auto: may_trace_sp(*args) -> 'bool' may_trace_sp() -> bool - - - Is it allowed to trace stack pointer automatically?. This function - should be used by IDP modules before tracing sp. + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. Help on function peek_auto_queue in module ida_auto: peek_auto_queue(*args) -> 'ea_t' peek_auto_queue(low_ea, type) -> ea_t + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. - - Peek into a queue 'type' for an address not lower than 'low_ea'. Do - not remove address from the queue. - - @param low_ea (C++: ea_t) - @param type (C++: atype_t) - @return: the address or BADADDR + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR Help on function plan_and_wait in module ida_auto: plan_and_wait(*args) -> 'int' plan_and_wait(ea1, ea2, final_pass=True) -> int + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed - - Analyze the specified range. Try to create instructions where - possible. Make the final pass over the specified range if specified. - This function doesn't return until the range is analyzed. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) Help on function plan_ea in module ida_auto: plan_ea(*args) -> 'void' plan_ea(ea) - - Plan to perform reanalysis. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function plan_range in module ida_auto: plan_range(*args) -> 'void' plan_range(sEA, eEA) - - Plan to perform reanalysis. - - @param sEA (C++: ea_t) - @param eEA (C++: ea_t) + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) Help on function reanalyze_callers in module ida_auto: reanalyze_callers(*args) -> 'void' reanalyze_callers(ea, noret) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. - - Plan to reanalyze callers of the specified address. This function will - add to 'AU_USED' queue all instructions that call (not jump to) the - specified address. - - @param ea: linear address of callee (C++: ea_t) - @param noret: !=0: the callee doesn't return, mark to undefine - subsequent instructions in the caller. 0: do nothing. - (C++: bool) + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. Help on function revert_ida_decisions in module ida_auto: revert_ida_decisions(*args) -> 'void' revert_ida_decisions(ea1, ea2) - - Delete all analysis info that IDA generated for for the given range. - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function set_auto_state in module ida_auto: set_auto_state(*args) -> 'atype_t' set_auto_state(new_state) -> atype_t - - Set current state of autoanalyzer. - @param new_state: new state of autoanalyzer (C++: atype_t) + @param new_state: (C++: atype_t) new state of autoanalyzer @return: previous state Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' set_ida_state(st) -> idastate_t - - Change IDA status indicator value - @param st: - new indicator status (C++: idastate_t) + @param st: (C++: idastate_t) - new indicator status @return: old indicator status Help on function show_addr in module ida_auto: show_addr(*args) -> 'void' show_addr(ea) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". - - Show an address on the autoanalysis indicator. The address is - displayed in the form " @:12345678". - - @param ea: - linear address to display (C++: ea_t) + @param ea: (C++: ea_t) - linear address to display Help on function show_auto in module ida_auto: show_auto(*args) -> 'void' show_auto(ea, type=AU_NONE) - - Change autoanalysis indicator value. - @param ea: linear address being analyzed (C++: ea_t) - @param type: autoanalysis type (see Autoanalysis queues ) (C++: - atype_t) + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" + +Help on class bitrange_t in module ida_bitrange: + +class bitrange_t(builtins.object) + | Proxy of C++ bitrange_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_bitrange_t(...) + | delete_bitrange_t(self) + | + | apply_mask(self, *args) -> 'bool' + | apply_mask(self, subrange) -> bool + | Apply mask to a bitrange + | + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success + | + | bitoff(self, *args) -> 'uint' + | bitoff(self) -> uint + | Get offset of 1st bit. + | + | bitsize(self, *args) -> 'uint' + | bitsize(self) -> uint + | Get size of the value in bits. + | + | bytesize(self, *args) -> 'uint' + | bytesize(self) -> uint + | Size of the value in bytes. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitrange_t const & + | + | create_union(self, *args) -> 'void' + | create_union(self, r) + | Create union of 2 ranges including the hole between them. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the bitrange empty? + | + | extract(self, *args) -> 'bool' + | extract(self, src, is_mf) -> bool + | + | @param src: void const * + | @param is_mf: bool + | + | has_common(self, *args) -> 'bool' + | has_common(self, r) -> bool + | Does have common bits with another bitrange? + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | init(self, *args) -> 'void' + | init(self, bit_ofs, size_in_bits) + | Initialize offset and size to given values. + | + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) + | + | inject(self, *args) -> 'bool' + | inject(self, dst, src, is_mf) -> bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Intersect two ranges. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | mask64(self, *args) -> 'uint64' + | mask64(self) -> uint64 + | Convert to mask of 64 bits. + | + | reset(self, *args) -> 'void' + | reset(self) + | Make the bitrange empty. + | + | shift_down(self, *args) -> 'void' + | shift_down(self, cnt) + | Shift range down (left) + | + | @param cnt: (C++: uint) + | + | shift_up(self, *args) -> 'void' + | shift_up(self, cnt) + | Shift range up (right) + | + | @param cnt: (C++: uint) + | + | sub(self, *args) -> 'bool' + | sub(self, r) -> bool + | Subtract a bitrange. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" Help on function __walk_types_and_formats in module ida_bytes: @@ -385,574 +524,741 @@ Help on function add_byte in module ida_bytes: add_byte(*args) -> 'void' add_byte(ea, value) + Add a value to one byte of the program. This function works for wide byte + processors too. - - Add a value to one byte of the program. This function works for wide - byte processors too. - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value Help on function add_dword in module ida_bytes: add_dword(*args) -> 'void' add_dword(ea, value) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 - - Add a value to one dword of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()}this function works incorrectly if - \ph{nbits} > 16 - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color @return: success Help on function add_mapping in module ida_bytes: add_mapping(*args) -> 'bool' add_mapping(_from, to, size) -> bool + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. - - IDA supports memory mapping. References to the addresses from the - mapped range use data and meta-data from the mapping range.You should - set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory - mapping range. - - @param _from: start of the mapped range (nonexistent address) (C++: - ea_t) - @param to: start of the mapping range (existent address) (C++: ea_t) - @param size: size of the range (C++: asize_t) + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range @return: success Help on function add_qword in module ida_bytes: add_qword(*args) -> 'void' add_qword(ea, value) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() - - Add a value to one qword of the program. This function does not work - for wide byte processors. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function add_word in module ida_bytes: add_word(*args) -> 'void' add_word(ea, value) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() - - Add a value to one word of the program. This function works for wide - byte processors too. This function takes into account order of bytes - specified in \inf{is_be()} - - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value Help on function align_flag in module ida_bytes: -align_flag(*args) -> 'flags_t' - align_flag() -> flags_t - - - Get a flags_t representing an alignment directive. +align_flag(*args) -> 'flags64_t' + align_flag() -> flags64_t + Get a flags64_t representing an alignment directive. Help on function append_cmt in module ida_bytes: append_cmt(*args) -> 'bool' append_cmt(ea, str, rptble) -> bool + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. - - Append to an indented comment. Creates a new comment if none exists. - Appends a newline character and the specified string otherwise. - - @param ea: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? @return: success Help on function attach_custom_data_format in module ida_bytes: attach_custom_data_format(*args) -> 'bool' attach_custom_data_format(dtid, dfid) -> bool - - Attach the data format to the data type. - @param dtid: data type id that can use the data format. 0 means all - standard data types. Such data formats can be applied to - any data item or instruction operands. For instruction - operands, the data_format_t::value_size check is not - performed by the kernel. (C++: int) - @param dfid: data format id (C++: int) + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type Help on function bin_flag in module ida_bytes: -bin_flag(*args) -> 'flags_t' - bin_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +bin_flag(*args) -> 'flags64_t' + bin_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function bin_search in module ida_bytes: bin_search(*args) -> 'ea_t' + bin_search(start_ea, end_ea, data, flags) -> ea_t + Search for a set of bytes in the program + + @param start_ea: linear address, start of range to search + @param end_ea: linear address, end of range to search (exclusive) + @param data: the prepared data to search for (see parse_binpat_str()) + @param flags: combination of BIN_SEARCH_* flags + @return: the address of a match, or ida_idaapi.BADADDR if not found bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) -> 'size_t *' + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. Help on function byte_flag in module ida_bytes: -byte_flag(*args) -> 'flags_t' - byte_flag() -> flags_t - - - Get a flags_t representing a byte. +byte_flag(*args) -> 'flags64_t' + byte_flag() -> flags64_t + Get a flags64_t representing a byte. Help on function bytesize in module ida_bytes: bytesize(*args) -> 'int' bytesize(ea) -> int - - Get number of bytes required to store a byte at the given address. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function calc_def_align in module ida_bytes: calc_def_align(*args) -> 'int' calc_def_align(ea, mina, maxa) -> int + Calculate the default alignment exponent. - - Calculate default alignment. - - - @param ea (C++: ea_t) - @param mina (C++: int) - @param maxa (C++: int) + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. Help on function calc_dflags in module ida_bytes: -calc_dflags(*args) -> 'flags_t' - calc_dflags(f, force) -> flags_t +calc_dflags(*args) -> 'flags64_t' + calc_dflags(f, force) -> flags64_t + + @param f: flags64_t + @param force: bool Help on function calc_max_align in module ida_bytes: calc_max_align(*args) -> 'int' calc_max_align(endea) -> int + Calculate the maximal possible alignment exponent. - - Returns: 0..32. - - - @param endea (C++: ea_t) + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range Help on function calc_max_item_end in module ida_bytes: calc_max_item_end(*args) -> 'ea_t' calc_max_item_end(ea, how=15) -> ea_t + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. - - Calculate maximal reasonable end address of a new item. This function - will limit the item with the current segment bounds. - - @param ea: linear address (C++: ea_t) - @param how: when to stop the search. A combination of Item end search - flags (C++: int) - @return: end of new item. If it is not possible to create an item, it - will return 'ea'. + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. Help on function calc_min_align in module ida_bytes: calc_min_align(*args) -> 'int' calc_min_align(length) -> int + Calculate the minimal possible alignment exponent. - - Returns: 1..32. - - - @param length (C++: asize_t) + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range Help on function can_define_item in module ida_bytes: can_define_item(*args) -> 'bool' can_define_item(ea, length, flags) -> bool + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. - - Can define item (instruction/data) of the specified 'length', starting - at 'ea'?if there is an item starting at 'ea', this function ignores - itthis function converts to unexplored all encountered data items with - fixup information. Should be fixed in the future.a new item would - cross segment boundariesa new item would overlap with existing items - (except items specified by 'flags') - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param flags: if not 0, then the kernel will ignore the data types - specified by the flags and destroy them. For example: - 1000 dw 5 1002 db 5 ; undef - 1003 db 5 ; undef 1004 dw 5 - 1006 dd 5 can_define_item(1000, 6, 0) - - false because of dw at 1004 can_define_item(1000, - 6, word_flag()) - true, word at 1004 is destroyed (C++: - flags_t) + @param ea: (C++: ea_t) start of the range for the new item + @param length: (C++: asize_t) length of the new item in bytes + @param flags: (C++: flags64_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' change_storage_type(start_ea, end_ea, stt) -> error_t - - Change flag storage type for address range. - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) @return: error code Help on function char_flag in module ida_bytes: -char_flag(*args) -> 'flags_t' - char_flag() -> flags_t - - - see 'Bits: instruction operand types' +char_flag(*args) -> 'flags64_t' + char_flag() -> flags64_t + see Bits: instruction operand types Help on function chunk_size in module ida_bytes: chunk_size(*args) -> 'asize_t' chunk_size(ea) -> asize_t - - Get size of the contiguous address block containing 'ea'. - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: 0 if 'ea' doesn't belong to the program. Help on function chunk_start in module ida_bytes: chunk_start(*args) -> 'ea_t' chunk_start(ea) -> ea_t - - Get start of the contiguous address block containing 'ea'. - @param ea (C++: ea_t) - @return: BADADDR if 'ea' doesn't belong to the program. + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. Help on function clr_lzero in module ida_bytes: clr_lzero(*args) -> 'bool' clr_lzero(ea, n) -> bool + Clear toggle lzero bit. This function reset the display of leading zeroes for + the specified operand to the default. If the default is not to display leading + zeroes, leading zeroes will not be displayed, as vice versa. - - Clear lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function clr_op_type in module ida_bytes: clr_op_type(*args) -> 'bool' clr_op_type(ea, n) -> bool + Remove operand representation information. (set operand representation to be + 'undefined') - - Remove operand representation information. (set operand representation - to be 'undefined') - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function code_flag in module ida_bytes: -code_flag(*args) -> 'flags_t' - code_flag() -> flags_t - - - 'FF_CODE' +code_flag(*args) -> 'flags64_t' + code_flag() -> flags64_t + FF_CODE + +Help on class compiled_binpat_t in module ida_bytes: + +class compiled_binpat_t(builtins.object) + | Proxy of C++ compiled_binpat_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_compiled_binpat_t(...) + | delete_compiled_binpat_t(self) + | + | all_bytes_defined(self, *args) -> 'bool' + | all_bytes_defined(self) -> bool + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | bytes + | + | encidx + | encidx + | + | mask + | mask + | + | strlits + | strlits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class compiled_binpat_vec_t in module ida_bytes: + +class compiled_binpat_vec_t(builtins.object) + | Proxy of C++ qvector< compiled_binpat_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __getitem__(self, *args) -> 'compiled_binpat_t const &' + | __getitem__(self, i) -> compiled_binpat_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_vec_t + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: compiled_binpat_t const & + | + | __swig_destroy__ = delete_compiled_binpat_vec_t(...) + | delete_compiled_binpat_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: compiled_binpat_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | at(self, *args) -> 'compiled_binpat_t const &' + | at(self, _idx) -> compiled_binpat_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | begin(self) -> compiled_binpat_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | end(self) -> compiled_binpat_t + | + | erase(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | erase(self, it) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | + | erase(self, first, last) -> compiled_binpat_t + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator + | + | extract(self, *args) -> 'compiled_binpat_t *' + | extract(self) -> compiled_binpat_t + | + | find(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | find(self, x) -> compiled_binpat_t + | + | @param x: compiled_binpat_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=compiled_binpat_t()) + | + | @param x: compiled_binpat_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: compiled_binpat_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | insert(self, it, x) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'compiled_binpat_t &' + | push_back(self, x) + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< compiled_binpat_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function create_16bit_data in module ida_bytes: create_16bit_data(*args) -> 'bool' create_16bit_data(ea, length) -> bool + Convert to 16-bit quantity (take the byte size into account) - - Convert to 16-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_32bit_data in module ida_bytes: create_32bit_data(*args) -> 'bool' create_32bit_data(ea, length) -> bool + Convert to 32-bit quantity (take the byte size into account) - - Convert to 32-bit quantity (take byte size into account) - - - @param ea (C++: ea_t) - @param length (C++: asize_t) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' create_align(ea, length, alignment) -> bool + Create an alignment item. - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_byte in module ida_bytes: create_byte(*args) -> 'bool' create_byte(ea, length, force=False) -> bool - - Convert to byte. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' create_custdata(ea, length, dtid, fid, force=False) -> bool - - Convert to custom data type. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. @return: success Help on function create_double in module ida_bytes: create_double(*args) -> 'bool' create_double(ea, length, force=False) -> bool - - Convert to double. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_dword in module ida_bytes: create_dword(*args) -> 'bool' create_dword(ea, length, force=False) -> bool - - Convert to dword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_float in module ida_bytes: create_float(*args) -> 'bool' create_float(ea, length, force=False) -> bool - - Convert to float. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_oword in module ida_bytes: create_oword(*args) -> 'bool' create_oword(ea, length, force=False) -> bool - - Convert to octaword/xmm word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_packed_real in module ida_bytes: create_packed_real(*args) -> 'bool' create_packed_real(ea, length, force=False) -> bool - - Convert to packed decimal real. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_qword in module ida_bytes: create_qword(*args) -> 'bool' create_qword(ea, length, force=False) -> bool - - Convert to quadword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_strlit in module ida_bytes: create_strlit(*args) -> 'bool' create_strlit(start, len, strtype) -> bool + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case - - Convert to string literal and give a meaningful name. 'start' may be - higher than 'end', the kernel will swap them in this case - - @param start: starting address (C++: ea_t) - @param len: length of the string in bytes. if 0, then - get_max_strlit_length() will be used to determine the - length (C++: size_t) - @param strtype: string type. one of String type codes (C++: int32) + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes @return: success Help on function create_struct in module ida_bytes: create_struct(*args) -> 'bool' create_struct(ea, length, tid, force=False) -> bool - - Convert to struct. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param tid (C++: tid_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) Help on function create_tbyte in module ida_bytes: create_tbyte(*args) -> 'bool' create_tbyte(ea, length, force=False) -> bool - - Convert to tbyte. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_word in module ida_bytes: create_word(*args) -> 'bool' create_word(ea, length, force=False) -> bool - - Convert to word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_yword in module ida_bytes: create_yword(*args) -> 'bool' create_yword(ea, length, force=False) -> bool - - Convert to ymm word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function create_zword in module ida_bytes: create_zword(*args) -> 'bool' create_zword(ea, length, force=False) -> bool - - Convert to zmm word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) Help on function cust_flag in module ida_bytes: -cust_flag(*args) -> 'flags_t' - cust_flag() -> flags_t - - - Get a flags_t representing custom type data. +cust_flag(*args) -> 'flags64_t' + cust_flag() -> flags64_t + Get a flags64_t representing custom type data. Help on function custfmt_flag in module ida_bytes: -custfmt_flag(*args) -> 'flags_t' - custfmt_flag() -> flags_t - - - see 'Bits: instruction operand types' +custfmt_flag(*args) -> 'flags64_t' + custfmt_flag() -> flags64_t + see Bits: instruction operand types Help on class data_format_t in module ida_bytes: @@ -966,6 +1272,14 @@ class data_format_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 | | __repr__ = _swig_repr(self) | @@ -977,6 +1291,9 @@ class data_format_t(builtins.object) | | is_present_in_menus(self, *args) -> 'bool' | is_present_in_menus(self) -> bool + | Should this format be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -988,28 +1305,28 @@ class data_format_t(builtins.object) | list of weak references to the object (if defined) | | hotkey - | data_format_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_format_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_format_t_name_get(self) -> char const * + | name | | props - | data_format_t_props_get(self) -> int + | props | | text_width - | data_format_t_text_width_get(self) -> int32 + | text_width | | thisown | The membership flag | | value_size - | data_format_t_value_size_get(self) -> asize_t + | value_size Help on class data_type_t in module ida_bytes: @@ -1023,6 +1340,14 @@ class data_type_t(builtins.object) | | __real__init__ = __init__(self, *args) | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int | | __repr__ = _swig_repr(self) | @@ -1034,6 +1359,9 @@ class data_type_t(builtins.object) | | is_present_in_menus(self, *args) -> 'bool' | is_present_in_menus(self) -> bool + | Should this type be shown in UI menus + | + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1045,599 +1373,525 @@ class data_type_t(builtins.object) | list of weak references to the object (if defined) | | asm_keyword - | data_type_t_asm_keyword_get(self) -> char const * + | asm_keyword | | hotkey - | data_type_t_hotkey_get(self) -> char const * + | hotkey | | id | __get_id(self) -> int | | menu_name - | data_type_t_menu_name_get(self) -> char const * + | menu_name | | name - | data_type_t_name_get(self) -> char const * + | name | | props - | data_type_t_props_get(self) -> int + | props | | thisown | The membership flag | | value_size - | data_type_t_value_size_get(self) -> asize_t + | value_size Help on function dec_flag in module ida_bytes: -dec_flag(*args) -> 'flags_t' - dec_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +dec_flag(*args) -> 'flags64_t' + dec_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' del_hidden_range(ea) -> bool - - Delete hidden range. - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range @return: success Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails @return: true on sucessful operation, otherwise false Help on function del_mapping in module ida_bytes: del_mapping(*args) -> 'void' del_mapping(ea) - - Delete memory mapping range. - @param ea: any address in the mapped range (C++: ea_t) + @param ea: (C++: ea_t) any address in the mapped range Help on function del_value in module ida_bytes: del_value(*args) -> 'void' del_value(ea) + Delete byte value from flags. The corresponding byte becomes uninitialized. - - Delete byte value from flags. The corresponding byte becomes - uninitialized. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function detach_custom_data_format in module ida_bytes: detach_custom_data_format(*args) -> 'bool' detach_custom_data_format(dtid, dfid) -> bool + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. - - Detach the data format from the data type. Unregistering a custom data - type detaches all attached data formats, no need to detach them - explicitly. You still need unregister them. Unregistering a custom - data format detaches it from all attached data types. - - @param dtid: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type Help on function disable_flags in module ida_bytes: disable_flags(*args) -> 'error_t' disable_flags(start_ea, end_ea) -> error_t + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). - - Deallocate flags for address range. Exit with an error message if not - enough disk space (this may occur too). - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. @return: 0 if ok, otherwise return error code Help on function double_flag in module ida_bytes: -double_flag(*args) -> 'flags_t' - double_flag() -> flags_t - - - Get a flags_t representing a double. +double_flag(*args) -> 'flags64_t' + double_flag() -> flags64_t + Get a flags64_t representing a double. Help on function dword_flag in module ida_bytes: -dword_flag(*args) -> 'flags_t' - dword_flag() -> flags_t - - - Get a flags_t representing a double word. +dword_flag(*args) -> 'flags64_t' + dword_flag() -> flags64_t + Get a flags64_t representing a double word. Help on function enable_flags in module ida_bytes: enable_flags(*args) -> 'error_t' enable_flags(start_ea, end_ea, stt) -> error_t + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. - - Allocate flags for address range. This function does not change the - storage type of existing ranges. Exit with an error message if not - enough disk space. - - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) @return: 0 if ok, otherwise an error code Help on function enum_flag in module ida_bytes: -enum_flag(*args) -> 'flags_t' - enum_flag() -> flags_t - - - see 'Bits: instruction operand types' +enum_flag(*args) -> 'flags64_t' + enum_flag() -> flags64_t + see Bits: instruction operand types Help on function equal_bytes in module ida_bytes: equal_bytes(*args) -> 'bool' - equal_bytes(ea, image, mask, len, sense_case) -> bool - - + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'. - @param ea: linear address (C++: ea_t) - @param image: bytes to compare with (C++: const uchar *) - @param mask: array of 1/0 bytes, it's length is 'len'. 1 means to - perform the comparison of the corresponding byte. 0 means - not to perform. if mask == NULL, then all bytes of - 'image' will be compared. if mask == SKIP_FF_MASK then - 0xFF bytes will be skipped (C++: const uchar *) - @param len: length of block to compare in bytes. (C++: size_t) - @param sense_case: case-sensitive comparison? (C++: bool) + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) -> 'bool' f_has_cmt(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * Help on function f_has_dummy_name in module ida_bytes: f_has_dummy_name(*args) -> 'bool' f_has_dummy_name(f, arg2) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param f (C++: flags_t) + @param f: (C++: flags64_t) + @param arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) -> 'bool' f_has_extra_cmts(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * Help on function f_has_name in module ida_bytes: f_has_name(*args) -> 'bool' f_has_name(f, arg2) -> bool - - Does the current byte have non-trivial (non-dummy) name? - - @param f (C++: flags_t) + @param f: (C++: flags64_t) + @param arg2: void * Help on function f_has_user_name in module ida_bytes: f_has_user_name(*args) -> 'bool' f_has_user_name(F, arg2) -> bool - - Does the current byte have user-specified name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_has_xref in module ida_bytes: f_has_xref(*args) -> 'bool' f_has_xref(f, arg2) -> bool - - Does the current byte have cross-references to it? - - @param f (C++: flags_t) + @param f: (C++: flags64_t) + @param arg2: void * Help on function f_is_align in module ida_bytes: f_is_align(*args) -> 'bool' f_is_align(F, arg2) -> bool + See is_align() - - See 'is_align()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_byte in module ida_bytes: f_is_byte(*args) -> 'bool' f_is_byte(F, arg2) -> bool + See is_byte() - - See 'is_byte()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_code in module ida_bytes: f_is_code(*args) -> 'bool' f_is_code(F, arg2) -> bool - - Does flag denote start of an instruction? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_custom in module ida_bytes: f_is_custom(*args) -> 'bool' f_is_custom(F, arg2) -> bool + See is_custom() - - See 'is_custom()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_data in module ida_bytes: f_is_data(*args) -> 'bool' f_is_data(F, arg2) -> bool - - Does flag denote start of data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_double in module ida_bytes: f_is_double(*args) -> 'bool' f_is_double(F, arg2) -> bool + See is_double() - - See 'is_double()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_dword in module ida_bytes: f_is_dword(*args) -> 'bool' f_is_dword(F, arg2) -> bool + See is_dword() - - See 'is_dword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_float in module ida_bytes: f_is_float(*args) -> 'bool' f_is_float(F, arg2) -> bool + See is_float() - - See 'is_float()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_head in module ida_bytes: f_is_head(*args) -> 'bool' f_is_head(F, arg2) -> bool - - Does flag denote start of instruction OR data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_not_tail in module ida_bytes: f_is_not_tail(*args) -> 'bool' f_is_not_tail(F, arg2) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_oword in module ida_bytes: f_is_oword(*args) -> 'bool' f_is_oword(F, arg2) -> bool + See is_oword() - - See 'is_oword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_pack_real in module ida_bytes: f_is_pack_real(*args) -> 'bool' f_is_pack_real(F, arg2) -> bool + See is_pack_real() - - See 'is_pack_real()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_qword in module ida_bytes: f_is_qword(*args) -> 'bool' f_is_qword(F, arg2) -> bool + See is_qword() - - See 'is_qword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_strlit in module ida_bytes: f_is_strlit(*args) -> 'bool' f_is_strlit(F, arg2) -> bool + See is_strlit() - - See 'is_strlit()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_struct in module ida_bytes: f_is_struct(*args) -> 'bool' f_is_struct(F, arg2) -> bool + See is_struct() - - See 'is_struct()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_tail in module ida_bytes: f_is_tail(*args) -> 'bool' f_is_tail(F, arg2) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_tbyte in module ida_bytes: f_is_tbyte(*args) -> 'bool' f_is_tbyte(F, arg2) -> bool + See is_tbyte() - - See 'is_tbyte()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_word in module ida_bytes: f_is_word(*args) -> 'bool' f_is_word(F, arg2) -> bool + See is_word() - - See 'is_word()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function f_is_yword in module ida_bytes: f_is_yword(*args) -> 'bool' f_is_yword(F, arg2) -> bool + See is_yword() - - See 'is_yword()' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) + @param arg2: void * Help on function find_byte in module ida_bytes: find_byte(*args) -> 'ea_t' find_byte(sEA, size, value, bin_search_flags) -> ea_t + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - - Find forward a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 - - @param sEA: linear address (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_byter in module ida_bytes: find_byter(*args) -> 'ea_t' find_byter(sEA, size, value, bin_search_flags) -> ea_t + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - - Find reverse a byte with the specified value (only 8-bit value from - the database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 - - @param sEA: the lower address of the search range (C++: ea_t) - @param size: number of bytes to inspect (C++: asize_t) - @param value: value to find (C++: uchar) - @param bin_search_flags: combination of Search flags (C++: int) - @return: address of byte or BADADDR + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR Help on function find_custom_data_format in module ida_bytes: find_custom_data_format(*args) -> 'int' find_custom_data_format(name) -> int - - Get id of a custom data format. - @param name: name of the custom data format (C++: const char *) + @param name: (C++: const char *) name of the custom data format @return: id or -1 Help on function find_custom_data_type in module ida_bytes: find_custom_data_type(*args) -> 'int' find_custom_data_type(name) -> int - - Get id of a custom data type. - @param name: name of the custom data type (C++: const char *) + @param name: (C++: const char *) name of the custom data type @return: id or -1 +Help on function find_free_chunk in module ida_bytes: + +find_free_chunk(*args) -> 'ea_t' + find_free_chunk(start, size, alignment) -> ea_t + Search for a hole in the addressing space of the program. + + @param start: (C++: ea_t) Address to start searching from + @param size: (C++: asize_t) Size of the desired empty range + @param alignment: (C++: asize_t) Alignment bitmask, must be a pow2-1. (for example, 0xF would + align the returned range to 16 bytes). + @return: Start of the found empty range or BADADDR + Help on function float_flag in module ida_bytes: -float_flag(*args) -> 'flags_t' - float_flag() -> flags_t - - - Get a flags_t representing a float. +float_flag(*args) -> 'flags64_t' + float_flag() -> flags64_t + Get a flags64_t representing a float. Help on function flt_flag in module ida_bytes: -flt_flag(*args) -> 'flags_t' - flt_flag() -> flags_t - - - see 'Bits: instruction operand types' +flt_flag(*args) -> 'flags64_t' + flt_flag() -> flags64_t + see Bits: instruction operand types Help on function free_chunk in module ida_bytes: free_chunk(*args) -> 'ea_t' free_chunk(bottom, size, step) -> ea_t - - Search for a hole in the addressing space of the program. - - @param bottom: address to start searching (C++: ea_t) - @param size: size of desired block (C++: asize_t) - @param step: bit mask for the start of hole (0xF would align hole to a - paragraph). if 'step' is negative, the bottom address - with be aligned. otherwise the kernel will try to use it - as is and align it only when the hole is too small. (C++: - int32) - @return: start of the hole or BADADDR + @param bottom: ea_t + @param size: asize_t + @param step: int32 Help on function get_16bit in module ida_bytes: get_16bit(*args) -> 'uint32' get_16bit(ea) -> uint32 - - Get 16bits of the program at 'ea'. - @param ea (C++: ea_t) - @return: 1 byte (getFullByte()) if the current processor has 16-bit - byte, otherwise return get_word() + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() Help on function get_32bit in module ida_bytes: get_32bit(*args) -> 'uint32' get_32bit(ea) -> uint32 - - Get not more than 32bits of the program at 'ea'. - @param ea (C++: ea_t) - @return: 32 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_dword(ea); if ( nbits <= 16) return - get_wide_word(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); Help on function get_64bit in module ida_bytes: get_64bit(*args) -> 'uint64' get_64bit(ea) -> uint64 - - Get not more than 64bits of the program at 'ea'. - @param ea (C++: ea_t) - @return: 64 bit value, depending on \ph{nbits}: if ( nbits <= 8 ) - return get_qword(ea); if ( nbits <= 16) return - get_wide_dword(ea); return get_wide_byte(ea); + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); Help on function get_8bit in module ida_bytes: get_8bit(*args) -> 'PyObject *' get_8bit(ea, v, nbit) -> PyObject * + + @param ea: ea_t + @param v: uint32 + @param nbit: int Help on function get_byte in module ida_bytes: get_byte(*args) -> 'uchar' get_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. - - Get one byte (8-bit) of the program at 'ea'. This function works only - for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_bytes in module ida_bytes: get_bytes(*args) -> 'PyObject *' - get_bytes(ea, size, gmb_flags=0x01) -> PyObject * - - + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: the bytes (as a str), or None in case of failure Help on function get_bytes_and_mask in module ida_bytes: get_bytes_and_mask(*args) -> 'PyObject *' get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * - - Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not. + @param ea: program address @param size: number of bytes to return + @param gmb_flags: int @return: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances. @@ -1645,113 +1899,94 @@ Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' get_cmt(ea, rptble) -> str - - Get an indented comment. - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? @return: size of comment or -1 Help on function get_custom_data_format in module ida_bytes: get_custom_data_format(*args) -> 'data_format_t const *' get_custom_data_format(dfid) -> data_format_t - - Get definition of a registered custom data format. - @param dfid: data format id (C++: int) - @return: data format definition or NULL + @param dfid: (C++: int) data format id + @return: data format definition or nullptr Help on function get_custom_data_formats in module ida_bytes: get_custom_data_formats(*args) -> 'int' get_custom_data_formats(out, dtid) -> int - - Get list of attached custom data formats for the specified data type. - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param dtid: data type id (C++: int) + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id @return: number of returned custom data formats. if error, returns -1 Help on function get_custom_data_type in module ida_bytes: get_custom_data_type(*args) -> 'data_type_t const *' get_custom_data_type(dtid) -> data_type_t - - Get definition of a registered custom data type. - @param dtid: data type id (C++: int) - @return: data type definition or NULL + @param dtid: (C++: int) data type id + @return: data type definition or nullptr Help on function get_custom_data_types in module ida_bytes: get_custom_data_types(*args) -> 'int' get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int - - Get list of registered custom data type ids. - @param out: buffer for the output. may be NULL (C++: intvec_t *) - @param min_size: minimum value size (C++: asize_t) - @param max_size: maximum value size (C++: asize_t) + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size @return: number of custom data types with the specified size limits Help on function get_data_elsize in module ida_bytes: get_data_elsize(*args) -> 'asize_t' get_data_elsize(ea, F, ti=None) -> asize_t - - Get size of data type specified in flags 'F'. - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @return: byte : 1 word : 2 etc... + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... Help on function get_data_value in module ida_bytes: get_data_value(*args) -> 'bool' get_data_value(v, ea, size) -> bool + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) - - Get the value at of the item at 'ea'. This function works with - entities up to sizeof(ea_t) (bytes, word, etc) - - @param v: pointer to the result. may be NULL (C++: uval_t *) - @param ea: linear address (C++: ea_t) - @param size: size of data to read. If 0, then the item type at 'ea' - will be used (C++: asize_t) + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used @return: success Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_default_radix in module ida_bytes: get_default_radix(*args) -> 'int' get_default_radix() -> int - - Get default base of number for the current processor. @return: 2, 8, 10, 16 @@ -1760,430 +1995,344 @@ Help on function get_dword in module ida_bytes: get_dword(*args) -> 'uint32' get_dword(ea) -> uint32 + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one dword (32-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_enum_id in module ida_bytes: get_enum_id(*args) -> 'uchar *' get_enum_id(ea, n) -> enum_t - - Get enum id of 'enum' operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: id of enum or BADNODE + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE Help on function get_first_hidden_range in module ida_bytes: get_first_hidden_range(*args) -> 'hidden_range_t *' get_first_hidden_range() -> hidden_range_t - - Get pointer to the first hidden range. - @return: ptr to hidden range or NULL + @return: ptr to hidden range or nullptr Help on function get_flags in module ida_bytes: -get_flags(*args) -> 'flags_t' - get_flags(ea) -> flags_t +get_flags(*args) -> 'flags64_t' + get_flags(ea) -> flags64_t + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. - - get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote - debugging because the kernel needs to read the process memory. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_flags_by_size in module ida_bytes: -get_flags_by_size(*args) -> 'flags_t' - get_flags_by_size(size) -> flags_t +get_flags_by_size(*args) -> 'flags64_t' + get_flags_by_size(size) -> flags64_t + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 - - Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. - For other sizes returns 0 - - @param size (C++: size_t) + @param size: (C++: size_t) Help on function get_flags_ex in module ida_bytes: -get_flags_ex(*args) -> 'flags_t' - get_flags_ex(ea, how) -> flags_t - - +get_flags_ex(*args) -> 'flags64_t' + get_flags_ex(ea, how) -> flags64_t Get flags for the specified address, extended form. - - @param ea (C++: ea_t) - @param how (C++: int) + @param ea: (C++: ea_t) + @param how: (C++: int) Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' get_forced_operand(ea, n) -> str - - Get forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) @return: size of forced operand or -1 Help on function get_full_data_elsize in module ida_bytes: get_full_data_elsize(*args) -> 'asize_t' get_full_data_elsize(ea, F, ti=None) -> asize_t + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes - - Get full size of data type specified in flags 'F'. takes into account - processors with wide bytes e.g. returns 2 for a byte element with - 16-bit bytes - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param ti (C++: const opinfo_t *) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * Help on function get_full_flags in module ida_bytes: -get_full_flags(*args) -> 'flags_t' - get_full_flags(ea) -> flags_t - - +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t Get flags value for address 'ea'. - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: 0 if address is not present in the program Help on function get_hidden_range in module ida_bytes: get_hidden_range(*args) -> 'hidden_range_t *' get_hidden_range(ea) -> hidden_range_t - - Get pointer to hidden range structure, in: linear address. - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range Help on function get_hidden_range_num in module ida_bytes: get_hidden_range_num(*args) -> 'int' get_hidden_range_num(ea) -> int - - Get number of a hidden range. - @param ea: any address in the hidden range (C++: ea_t) - @return: number of hidden range (0.. get_hidden_range_qty() -1) + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) Help on function get_hidden_range_qty in module ida_bytes: get_hidden_range_qty(*args) -> 'int' get_hidden_range_qty() -> int - - Get number of hidden ranges. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_flag in module ida_bytes: -get_item_flag(*args) -> 'flags_t' - get_item_flag(_from, n, ea, appzero) -> flags_t +get_item_flag(*args) -> 'flags64_t' + get_item_flag(_from, n, ea, appzero) -> flags64_t + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. - - Get flag of the item at 'ea' even if it is a tail byte of some array - or structure. This function is used to get flags of structure members - or array elements. - - @param _from: linear address of the instruction which refers to 'ea' - (C++: ea_t) - @param n: number of operand which refers to 'ea' (C++: int) - @param ea: the referenced address (C++: ea_t) - @param appzero: append a struct field name if the field offset is - zero? meaningful only if the name refers to a - structure. (C++: bool) + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. @return: flags or 0 (if failed) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_size in module ida_bytes: get_item_size(*args) -> 'asize_t' get_item_size(ea) -> asize_t + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. - - Get size of item (instruction/data) in bytes. Unexplored bytes have - length of 1 byte. This function never returns 0. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_last_hidden_range in module ida_bytes: get_last_hidden_range(*args) -> 'hidden_range_t *' get_last_hidden_range() -> hidden_range_t - - Get pointer to the last hidden range. - @return: ptr to hidden range or NULL + @return: ptr to hidden range or nullptr Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' get_manual_insn(ea) -> str - - Retrieve the user-specified string for the manual instruction. - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item @return: size of manual instruction or -1 Help on function get_mapping in module ida_bytes: get_mapping(*args) -> 'ea_t *, ea_t *, asize_t *' get_mapping(n) -> bool - - Get memory mapping range by its number. - @param n: number of mapping range (0.. get_mappings_qty() -1) (C++: - size_t) - @return: false if the specified range doesn't exist, otherwise returns - from , to , size + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' Help on function get_mappings_qty in module ida_bytes: get_mappings_qty(*args) -> 'size_t' get_mappings_qty() -> size_t - - Get number of mappings. Help on function get_max_strlit_length in module ida_bytes: get_max_strlit_length(*args) -> 'size_t' get_max_strlit_length(ea, strtype, options=0) -> size_t - - Determine maximum length of string literal. - @param ea: starting address (C++: ea_t) - @param strtype: string type. one of String type codes (C++: int32) - @param options: combination of string literal length options (C++: - int) + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options @return: length of the string in octets (octet==8bit) Help on function get_next_hidden_range in module ida_bytes: get_next_hidden_range(*args) -> 'hidden_range_t *' get_next_hidden_range(ea) -> hidden_range_t - - Get pointer to next hidden range. - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if next hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist Help on function get_octet in module ida_bytes: get_octet(*args) -> 'PyObject *' - get_octet(ea, v, nbit) -> PyObject * + get_octet(ea, v, nbit) -> (int, int, int, int) + @param ea: ea_t + @param v: uint64 + @param nbit: int + +Help on function get_octet2 in module ida_bytes: + +get_octet2(*args) -> 'uchar *' + get_octet2(ogen) -> bool - Get 8 bits of the program at 'ea'. The main usage of this function is - to iterate range of bytes. Here is an example: - - uint64 v; - int nbit = 0; - for ( ... ) { - uchar byte = get_octet(&ea, &v, &nbit); - ... - } - - 'ea' is incremented each time when a new byte is read. In the above - example, it will be incremented in the first loop iteration. - - @param ea (C++: ea_t *) - @param v (C++: uint64 *) - @param nbit (C++: int *) + @param ogen: octet_generator_t * Help on function get_opinfo in module ida_bytes: get_opinfo(*args) -> 'opinfo_t *' get_opinfo(buf, ea, n, flags) -> opinfo_t - - Get additional information about an operand representation. - @param buf: buffer to receive the result. may not be NULL (C++: - opinfo_t *) - @param ea: linear address of item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flags: flags of the item (C++: flags_t) - @return: NULL if no additional representation information + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags64_t) flags of the item + @return: nullptr if no additional representation information Help on function get_optype_flags0 in module ida_bytes: -get_optype_flags0(*args) -> 'flags_t' - get_optype_flags0(F) -> flags_t - - +get_optype_flags0(*args) -> 'flags64_t' + get_optype_flags0(F) -> flags64_t Get flags for first operand. - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function get_optype_flags1 in module ida_bytes: -get_optype_flags1(*args) -> 'flags_t' - get_optype_flags1(F) -> flags_t - - +get_optype_flags1(*args) -> 'flags64_t' + get_optype_flags1(F) -> flags64_t Get flags for second operand. - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_original_dword in module ida_bytes: get_original_dword(*args) -> 'uint64' get_original_dword(ea) -> uint64 + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() - - Get original dword (that was before patching) This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_original_qword in module ida_bytes: get_original_qword(*args) -> 'uint64' get_original_qword(ea) -> uint64 + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() - - Get original qword value (that was before patching) This function - DOESN'T work for wide byte processors too. This function takes into - account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_original_word in module ida_bytes: get_original_word(*args) -> 'uint64' get_original_word(ea) -> uint64 + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() - - Get original word value (that was before patching). This function - works for wide byte processors too. This function takes into account - order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_predef_insn_cmt in module ida_bytes: get_predef_insn_cmt(*args) -> 'qstring *' get_predef_insn_cmt(ins) -> str - - Get predefined comment. - @param ins: current instruction information (C++: const insn_t &) + @param ins: (C++: const insn_t &) current instruction information @return: size of comment or -1 Help on function get_prev_hidden_range in module ida_bytes: get_prev_hidden_range(*args) -> 'hidden_range_t *' get_prev_hidden_range(ea) -> hidden_range_t - - Get pointer to previous hidden range. - @param ea: any address in the program (C++: ea_t) - @return: ptr to hidden range or NULL if previous hidden range doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_radix in module ida_bytes: get_radix(*args) -> 'int' get_radix(F, n) -> int + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() - - Get radix of the operand, in: flags. If the operand is not a number, - returns 'get_default_radix()' - - @param F: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param F: (C++: flags64_t) flags + @param n: (C++: int) number of operand (0, 1, -1) @return: 2, 8, 10, 16 Help on function get_strlit_contents in module ida_bytes: get_strlit_contents(*args) -> 'PyObject *' - get_strlit_contents(ea, py_len, type, flags=0) -> PyObject * - - - Get bytes contents at location, possibly converted. + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. It works even if the string has not been created in the database yet. - Note that this will <b>always</b> return a simple string of bytes - (i.e., a 'str' instance), and not a string of unicode characters. - - If you want auto-conversion to unicode strings (that is: real strings), - you should probably be using the idautils.Strings class. + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. @param ea: linear address of the string - @param len: length of the string in bytes (including terminating 0) + @param py_len: length of the string in bytes (including terminating 0) @param type: type of the string. Represents both the character encoding, <u>and</u> the 'type' of string at the given location. @param flags: combination of STRCONV_..., to perform output conversion. @@ -2193,215 +2342,165 @@ Help on function get_stroff_path in module ida_bytes: get_stroff_path(*args) -> 'int' get_stroff_path(path, delta, ea, n) -> int - - Get struct path of operand. - @param path: buffer for structure path (strpath). see nalt.hpp for - more info. (C++: tid_t *) - @param delta: struct offset delta (C++: adiff_t *) - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: length of strpath Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_word in module ida_bytes: get_word(*args) -> 'ushort' get_word(ea) -> ushort + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one word (16-bit) of the program at 'ea'. This function takes into - account order of bytes specified in \inf{is_be()} This function works - only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_zero_ranges in module ida_bytes: get_zero_ranges(*args) -> 'bool' get_zero_ranges(zranges, range) -> bool + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. - - Return set of ranges with zero initialized bytes. The returned set - includes only big zero initialized ranges (at least >1KB). Some zero - initialized byte ranges may be not included. Only zero bytes that use - the sparse storage method (STT_MM) are reported. - - @param zranges: pointer to the return value. cannot be NULL (C++: - rangeset_t *) - @param range: the range of addresses to verify. can be NULL - means - all ranges (C++: const range_t *) + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges @return: true if the result is a non-empty set Help on function getn_hidden_range in module ida_bytes: getn_hidden_range(*args) -> 'hidden_range_t *' getn_hidden_range(n) -> hidden_range_t - - Get pointer to hidden range structure, in: number of hidden range. - @param n: number of hidden range, is in range 0.. - get_hidden_range_qty() -1 (C++: int) + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 Help on function has_any_name in module ida_bytes: has_any_name(*args) -> 'bool' has_any_name(F) -> bool - - Does the current byte have any name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_auto_name in module ida_bytes: has_auto_name(*args) -> 'bool' has_auto_name(F) -> bool - - Does the current byte have auto-generated (no special prefix) name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_cmt in module ida_bytes: has_cmt(*args) -> 'bool' has_cmt(F) -> bool - - Does the current byte have an indented comment? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_dummy_name in module ida_bytes: has_dummy_name(*args) -> 'bool' has_dummy_name(F) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? - - Does the current byte have dummy (auto-generated, with special prefix) - name? - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_extra_cmts in module ida_bytes: has_extra_cmts(*args) -> 'bool' has_extra_cmts(F) -> bool - - Does the current byte have additional anterior or posterior lines? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_immd in module ida_bytes: has_immd(*args) -> 'bool' has_immd(F) -> bool - - Has immediate value? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_name in module ida_bytes: has_name(*args) -> 'bool' has_name(F) -> bool - - Does the current byte have non-trivial (non-dummy) name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_user_name in module ida_bytes: has_user_name(*args) -> 'bool' has_user_name(F) -> bool - - Does the current byte have user-specified name? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_value in module ida_bytes: has_value(*args) -> 'bool' has_value(F) -> bool - - Do flags contain byte value? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function has_xref in module ida_bytes: has_xref(*args) -> 'bool' has_xref(F) -> bool - - Does the current byte have cross-references to it? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function hex_flag in module ida_bytes: -hex_flag(*args) -> 'flags_t' - hex_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +hex_flag(*args) -> 'flags64_t' + hex_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() Help on class hidden_range_t in module ida_bytes: @@ -2427,65 +2526,94 @@ class hidden_range_t(ida_range.range_t) | Data descriptors defined here: | | color - | hidden_range_t_color_get(self) -> bgcolor_t + | color | | description - | hidden_range_t_description_get(self) -> char * + | description | | footer - | hidden_range_t_footer_get(self) -> char * + | footer | | header - | hidden_range_t_header_get(self) -> char * + | header | | thisown | The membership flag | | visible - | hidden_range_t_visible_get(self) -> bool + | visible | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2496,15 +2624,11 @@ class hidden_range_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -2515,1342 +2639,1150 @@ Help on function is_align in module ida_bytes: is_align(*args) -> 'bool' is_align(F) -> bool + FF_ALIGN - - 'FF_ALIGN' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_attached_custom_data_format in module ida_bytes: is_attached_custom_data_format(*args) -> 'bool' is_attached_custom_data_format(dtid, dfid) -> bool + Is the custom data format attached to the custom data type? + + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false Help on function is_bnot in module ida_bytes: is_bnot(*args) -> 'bool' is_bnot(ea, F, n) -> bool + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function - - Should we negate the operand?. \ash{a_bnot} should be defined in the - idp module in order to work with this function - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_byte in module ida_bytes: is_byte(*args) -> 'bool' is_byte(F) -> bool + FF_BYTE - - 'FF_BYTE' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_char in module ida_bytes: is_char(*args) -> 'bool' is_char(F, n) -> bool - - is character constant? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_char0 in module ida_bytes: is_char0(*args) -> 'bool' is_char0(F) -> bool - - Is the first operand character constant? (example: push 'a') - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_char1 in module ida_bytes: is_char1(*args) -> 'bool' is_char1(F) -> bool - - Is the second operand character constant? (example: mov al, 'a') - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_code in module ida_bytes: is_code(*args) -> 'bool' is_code(F) -> bool - - Does flag denote start of an instruction? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_custfmt in module ida_bytes: is_custfmt(*args) -> 'bool' is_custfmt(F, n) -> bool - - is custom data format? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_custfmt0 in module ida_bytes: is_custfmt0(*args) -> 'bool' is_custfmt0(F) -> bool - - Does the first operand use a custom data representation? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_custfmt1 in module ida_bytes: is_custfmt1(*args) -> 'bool' is_custfmt1(F) -> bool - - Does the second operand use a custom data representation? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_custom in module ida_bytes: is_custom(*args) -> 'bool' is_custom(F) -> bool + FF_CUSTOM - - 'FF_CUSTOM' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_data in module ida_bytes: is_data(*args) -> 'bool' is_data(F) -> bool - - Does flag denote start of data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_defarg in module ida_bytes: is_defarg(*args) -> 'bool' is_defarg(F, n) -> bool - - is defined? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_defarg0 in module ida_bytes: is_defarg0(*args) -> 'bool' is_defarg0(F) -> bool + Is the first operand defined? Initially operand has no defined representation. - - Is the first operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_defarg1 in module ida_bytes: is_defarg1(*args) -> 'bool' is_defarg1(F) -> bool + Is the second operand defined? Initially operand has no defined representation. - - Is the second operand defined? Initially operand has no defined - representation. - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_double in module ida_bytes: is_double(*args) -> 'bool' is_double(F) -> bool + FF_DOUBLE - - 'FF_DOUBLE' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_dword in module ida_bytes: is_dword(*args) -> 'bool' is_dword(F) -> bool + FF_DWORD - - 'FF_DWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_enum in module ida_bytes: is_enum(*args) -> 'bool' is_enum(F, n) -> bool - - is enum? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_enum0 in module ida_bytes: is_enum0(*args) -> 'bool' is_enum0(F) -> bool - - Is the first operand a symbolic constant (enum member)? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_enum1 in module ida_bytes: is_enum1(*args) -> 'bool' is_enum1(F) -> bool - - Is the second operand a symbolic constant (enum member)? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_float in module ida_bytes: is_float(*args) -> 'bool' is_float(F) -> bool + FF_FLOAT - - 'FF_FLOAT' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_float0 in module ida_bytes: is_float0(*args) -> 'bool' is_float0(F) -> bool - - Is the first operand a floating point number? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_float1 in module ida_bytes: is_float1(*args) -> 'bool' is_float1(F) -> bool - - Is the second operand a floating point number? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_flow in module ida_bytes: is_flow(*args) -> 'bool' is_flow(F) -> bool + Does the previous instruction exist and pass execution flow to the current byte? - - Does the previous instruction exist and pass execution flow to the - current byte? - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_fltnum in module ida_bytes: is_fltnum(*args) -> 'bool' is_fltnum(F, n) -> bool - - is floating point number? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_forced_operand in module ida_bytes: is_forced_operand(*args) -> 'bool' is_forced_operand(ea, n) -> bool - - Is operand manually defined?. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) Help on function is_func in module ida_bytes: is_func(*args) -> 'bool' is_func(F) -> bool - - Is function start? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_head in module ida_bytes: is_head(*args) -> 'bool' is_head(F) -> bool - - Does flag denote start of instruction OR data? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_invsign in module ida_bytes: is_invsign(*args) -> 'bool' is_invsign(ea, F, n) -> bool + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands - - Should sign of n-th operand inverted during output?. allowed values of - n: 0-first operand, 1-other operands - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_loaded in module ida_bytes: is_loaded(*args) -> 'bool' is_loaded(ea) -> bool - - Does the specified address have a byte value (is initialized?) - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_lzero in module ida_bytes: is_lzero(*args) -> 'bool' is_lzero(ea, n) -> bool + Display leading zeroes? Display leading zeroes in operands. The global switch + for the leading zeroes is in idainfo::s_genflags Note: the leading zeroes + doesn't work if for the target assembler octal numbers start with 0. - - Display leading zeroes in operands. The global switch for the leading - zeroes is in \inf{s_genflags} The leading zeroes doesn't work if the - octal numbers start with 0 Display leading zeroes? (takes into account - \inf{s_genflags}) - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function is_manual in module ida_bytes: is_manual(*args) -> 'bool' is_manual(F, n) -> bool + is forced operand? (use is_forced_operand()) - - is forced operand? (use 'is_forced_operand()' ) - - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_manual_insn in module ida_bytes: is_manual_insn(*args) -> 'bool' is_manual_insn(ea) -> bool - - Is the instruction overridden? - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item Help on function is_mapped in module ida_bytes: is_mapped(*args) -> 'bool' is_mapped(ea) -> bool - - Is the specified address 'ea' present in the program? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_not_tail in module ida_bytes: is_not_tail(*args) -> 'bool' is_not_tail(F) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_numop in module ida_bytes: is_numop(*args) -> 'bool' is_numop(F, n) -> bool - - is number (bin, oct, dec, hex)? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_numop0 in module ida_bytes: is_numop0(*args) -> 'bool' is_numop0(F) -> bool - - Is the first operand a number (i.e. binary, octal, decimal or hex?) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_numop1 in module ida_bytes: is_numop1(*args) -> 'bool' is_numop1(F) -> bool - - Is the second operand a number (i.e. binary, octal, decimal or hex?) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_off in module ida_bytes: is_off(*args) -> 'bool' is_off(F, n) -> bool - - is offset? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_off0 in module ida_bytes: is_off0(*args) -> 'bool' is_off0(F) -> bool - - Is the first operand offset? (example: push offset xxx) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_off1 in module ida_bytes: is_off1(*args) -> 'bool' is_off1(F) -> bool - - Is the second operand offset? (example: mov ax, offset xxx) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_oword in module ida_bytes: is_oword(*args) -> 'bool' is_oword(F) -> bool + FF_OWORD - - 'FF_OWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) -> 'bool' is_pack_real(F) -> bool + FF_PACKREAL - - 'FF_PACKREAL' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_qword in module ida_bytes: is_qword(*args) -> 'bool' is_qword(F) -> bool + FF_QWORD - - 'FF_QWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_same_data_type in module ida_bytes: is_same_data_type(*args) -> 'bool' is_same_data_type(F1, F2) -> bool - - Do the given flags specify the same data type? - - @param F1 (C++: flags_t) - @param F2 (C++: flags_t) + @param F1: (C++: flags64_t) + @param F2: (C++: flags64_t) Help on function is_seg in module ida_bytes: is_seg(*args) -> 'bool' is_seg(F, n) -> bool - - is segment? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_seg0 in module ida_bytes: is_seg0(*args) -> 'bool' is_seg0(F) -> bool - - Is the first operand segment selector? (example: push seg seg001) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_seg1 in module ida_bytes: is_seg1(*args) -> 'bool' is_seg1(F) -> bool - - Is the second operand segment selector? (example: mov dx, seg dseg) - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stkvar in module ida_bytes: is_stkvar(*args) -> 'bool' is_stkvar(F, n) -> bool - - is stack variable? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_stkvar0 in module ida_bytes: is_stkvar0(*args) -> 'bool' is_stkvar0(F) -> bool - - Is the first operand a stack variable? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stkvar1 in module ida_bytes: is_stkvar1(*args) -> 'bool' is_stkvar1(F) -> bool - - Is the second operand a stack variable? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) -> 'bool' is_strlit(F) -> bool + FF_STRLIT - - 'FF_STRLIT' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stroff in module ida_bytes: is_stroff(*args) -> 'bool' is_stroff(F, n) -> bool - - is struct offset? - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_stroff0 in module ida_bytes: is_stroff0(*args) -> 'bool' is_stroff0(F) -> bool - - Is the first operand an offset within a struct? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_stroff1 in module ida_bytes: is_stroff1(*args) -> 'bool' is_stroff1(F) -> bool - - Is the second operand an offset within a struct? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_struct in module ida_bytes: is_struct(*args) -> 'bool' is_struct(F) -> bool + FF_STRUCT - - 'FF_STRUCT' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_suspop in module ida_bytes: is_suspop(*args) -> 'bool' is_suspop(ea, F, n) -> bool - - is suspicious operand? - - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function is_tail in module ida_bytes: is_tail(*args) -> 'bool' is_tail(F) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) -> 'bool' is_tbyte(F) -> bool + FF_TBYTE - - 'FF_TBYTE' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_unknown in module ida_bytes: is_unknown(*args) -> 'bool' is_unknown(F) -> bool - - Does flag denote unexplored byte? - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_varsize_item in module ida_bytes: is_varsize_item(*args) -> 'int' is_varsize_item(ea, F, ti=None, itemsize=None) -> int - - Is the item at 'ea' variable size?. - @param ea: linear address of the item (C++: ea_t) - @param F: flags (C++: flags_t) - @param ti: additional information about the data type. For example, if - the current item is a structure instance, then ti->tid is - structure id. Otherwise is ignored (may be NULL). If - specified as NULL, will be automatically retrieved from the - database (C++: const opinfo_t *) - @param itemsize: if not NULL and the item is varsize, itemsize will - contain the calculated item size (for struct types, - the minimal size is returned) (C++: asize_t *) + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) Help on function is_word in module ida_bytes: is_word(*args) -> 'bool' is_word(F) -> bool + FF_WORD - - 'FF_WORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_yword in module ida_bytes: is_yword(*args) -> 'bool' is_yword(F) -> bool + FF_YWORD - - 'FF_YWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function is_zword in module ida_bytes: is_zword(*args) -> 'bool' is_zword(F) -> bool + FF_ZWORD - - 'FF_ZWORD' - - - @param F (C++: flags_t) + @param F: (C++: flags64_t) Help on function leading_zero_important in module ida_bytes: leading_zero_important(*args) -> 'bool' leading_zero_important(ea, n) -> bool - - Check if leading zeroes are important. - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function nbits in module ida_bytes: nbits(*args) -> 'int' nbits(ea) -> int - - Get number of bits in a byte at the given address. - @param ea (C++: ea_t) - @return: \ph{dnbits()} if the address doesn't belong to a segment, + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, otherwise the result depends on the segment type Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' next_addr(ea) -> ea_t - - Get next address in the program (i.e. next address which has flags). - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_chunk in module ida_bytes: next_chunk(*args) -> 'ea_t' next_chunk(ea) -> ea_t - - Get the first address of next contiguous chunk in the program. - @param ea (C++: ea_t) - @return: BADADDR if next chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. Help on function next_head in module ida_bytes: next_head(*args) -> 'ea_t' next_head(ea, maxea) -> ea_t - - Get start of next defined item. - @param ea: begin search at this address (C++: ea_t) - @param maxea: not included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. Help on function next_inited in module ida_bytes: next_inited(*args) -> 'ea_t' next_inited(ea, maxea) -> ea_t - - Find the next initialized address. - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' next_not_tail(ea) -> ea_t - - Get address of next non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function next_that in module ida_bytes: next_that(*args) -> 'ea_t' - next_that(ea, maxea, callable) -> ea_t - - + next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'. - Start searching from address 'ea'+1 and inspect bytes up to 'maxea'. - maxea is not included in the search range. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). - @param callable: a Python callable with the following prototype: - callable(flags). Return True to stop enumeration. + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address @return: the found address or BADADDR. Help on function next_unknown in module ida_bytes: next_unknown(*args) -> 'ea_t' next_unknown(ea, maxea) -> ea_t + Similar to next_that(), but will find the next address that is unexplored. + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) + +Help on function next_visea in module ida_bytes: + +next_visea(*args) -> 'ea_t' + next_visea(ea) -> ea_t + Get next visible address. - Similar to 'next_that()' , but will find the next address that is - unexplored. - - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function num_flag in module ida_bytes: -num_flag(*args) -> 'flags_t' - num_flag() -> flags_t - - +num_flag(*args) -> 'flags64_t' + num_flag() -> flags64_t Get number of default base (bin, oct, dec, hex) Help on function oct_flag in module ida_bytes: -oct_flag(*args) -> 'flags_t' - oct_flag() -> flags_t - - - Get number flag of the base, regardless of current processor - better - to use 'num_flag()' +oct_flag(*args) -> 'flags64_t' + oct_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on class octet_generator_t in module ida_bytes: + +class octet_generator_t(builtins.object) + | Proxy of C++ octet_generator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> octet_generator_t + | + | @param _ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_octet_generator_t(...) + | delete_octet_generator_t(self) + | + | invert_byte_order(self, *args) -> 'void' + | invert_byte_order(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | avail_bits + | avail_bits + | + | ea + | ea + | + | high_byte_first + | high_byte_first + | + | thisown + | The membership flag + | + | value + | value Help on function off_flag in module ida_bytes: -off_flag(*args) -> 'flags_t' - off_flag() -> flags_t - - - see 'Bits: instruction operand types' +off_flag(*args) -> 'flags64_t' + off_flag() -> flags64_t + see Bits: instruction operand types Help on function op_adds_xrefs in module ida_bytes: op_adds_xrefs(*args) -> 'bool' op_adds_xrefs(F, n) -> bool + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs - - Should processor module create xrefs from the operand?. Currently - 'offset' and 'structure offset' operands create xrefs - - @param F (C++: flags_t) - @param n (C++: int) + @param F: (C++: flags64_t) + @param n: (C++: int) Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' op_bin(ea, n) -> bool + set op type to bin_flag() - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' op_chr(ea, n) -> bool + set op type to char_flag() - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_custfmt in module ida_bytes: op_custfmt(*args) -> 'bool' op_custfmt(ea, n, fid) -> bool - - Set custom data format for operand (fid-custom data format id) - - @param ea (C++: ea_t) - @param n (C++: int) - @param fid (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' op_dec(ea, n) -> bool + set op type to dec_flag() - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' op_flt(ea, n) -> bool + set op type to flt_flag() - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' op_hex(ea, n) -> bool + set op type to hex_flag() - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' op_num(ea, n) -> bool + set op type to num_flag() - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' op_oct(ea, n) -> bool + set op type to oct_flag() - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stroff in module ida_bytes: op_stroff(*args) -> 'bool' op_stroff(insn, n, path, path_len, delta) -> bool + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data - - Set operand representation to be 'struct offset'. If applied to - unexplored bytes, converts them to 16/32bit word data - - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand (0, 1, -1) (C++: int) - @param path: structure path (strpath). see nalt.hpp for more info. - (C++: const tid_t *) - @param path_len: length of the structure path (C++: int) - @param delta: struct offset delta. usually 0. denotes the difference - between the structure base and the pointer into the - structure. (C++: adiff_t) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. @return: success - - Example: - Python> - Python> ins = ida_ua.insn_t() - Python> if ida_ua.decode_insn(ins, some_address): - Python> path_len = 1 - Python> path = ida_pro.tid_array(path_len) - Python> path[0] = ida_struct.get_struc_id("my_stucture_t") - Python> ida_bytes.op_stroff(ins, 0, path.cast(), path_len, 0) - Python> Help on function oword_flag in module ida_bytes: -oword_flag(*args) -> 'flags_t' - oword_flag() -> flags_t - - - Get a flags_t representing a octaword. +oword_flag(*args) -> 'flags64_t' + oword_flag() -> flags64_t + Get a flags64_t representing a octaword. Help on function packreal_flag in module ida_bytes: -packreal_flag(*args) -> 'flags_t' - packreal_flag() -> flags_t +packreal_flag(*args) -> 'flags64_t' + packreal_flag() -> flags64_t + Get a flags64_t representing a packed decimal real. + +Help on function parse_binpat_str in module ida_bytes: + +parse_binpat_str(*args) -> 'qstring *' + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: + - numbers (numeric base is determined by 'radix') + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes + - "..." string constants + - 'x' single-character constants + - ? variable bytes + Note that string constants are surrounded with double quotes. - Get a flags_t representing a packed decimal real. + Here are a few examples (assuming base 16): + CD 21 - bytes 0xCD, 0x21 + 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) + "Hello", 0 - the null terminated string "Hello" + L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 + B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 + + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_bytes in module ida_bytes: patch_bytes(*args) -> 'void' patch_bytes(ea, buf) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). - - Patch the specified number of bytes of the program. Original values of - bytes are saved and are available with get_original...() functions. - See also 'put_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' prev_addr(ea) -> ea_t - - Get previous address in the program. - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_chunk in module ida_bytes: prev_chunk(*args) -> 'ea_t' prev_chunk(ea) -> ea_t - - Get the last address of previous contiguous chunk in the program. - @param ea (C++: ea_t) - @return: BADADDR if previous chunk doesn't exist. + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. Help on function prev_head in module ida_bytes: prev_head(*args) -> 'ea_t' prev_head(ea, minea) -> ea_t - - Get start of previous defined item. - @param ea: begin search at this address (C++: ea_t) - @param minea: included in the search range (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. Help on function prev_inited in module ida_bytes: prev_inited(*args) -> 'ea_t' prev_inited(ea, minea) -> ea_t - - Find the previous initialized address. - - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' prev_not_tail(ea) -> ea_t - - Get address of previous non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function prev_that in module ida_bytes: prev_that(*args) -> 'ea_t' - prev_that(ea, minea, callable) -> ea_t + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). - - Find previous address with a flag satisfying the function 'testf'.do - not pass 'is_unknown()' to this function to find unexplored bytes It - will fail under the debugger. To find unexplored bytes, use - 'prev_unknown()' . - - @param ea: start searching from this address - 1. (C++: ea_t) - @param minea: included in the search range. (C++: ea_t) - @return: the found address or BADADDR . + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. Help on function prev_unknown in module ida_bytes: prev_unknown(*args) -> 'ea_t' prev_unknown(ea, minea) -> ea_t + Similar to prev_that(), but will find the previous address that is unexplored. + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) + +Help on function prev_visea in module ida_bytes: + +prev_visea(*args) -> 'ea_t' + prev_visea(ea) -> ea_t + Get previous visible address. - Similar to 'prev_that()' , but will find the previous address that is - unexplored. - - - @param ea (C++: ea_t) - @param minea (C++: ea_t) + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) -> 'PyObject *' - print_strlit_type(strtype, flags=0) -> PyObject * + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. - - Get string type information: the string type name (possibly decorated - with hotkey markers), and the tooltip. - - @param strtype: the string type (C++: int32) - @param flags: or'ed PSTF_* constants (C++: int) + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants @return: length of generated text Help on function put_byte in module ida_bytes: put_byte(*args) -> 'bool' put_byte(ea, x) -> bool + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. - - Set value of one byte of the program. This function modifies the - database. If the debugger is active then the debugged process memory - is patched too.The original value of the byte is completely lost and - can't be recovered by the 'get_original_byte()' function. See also - 'put_dbg_byte()' to write to the process memory directly when the - debugger is active. This function can handle wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value @return: true if the database has been modified Help on function put_bytes in module ida_bytes: put_bytes(*args) -> 'void' put_bytes(ea, buf) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). - - Modify the specified number of bytes of the program. This function - does not save the original values of bytes. See also 'patch_bytes()' . - - @param ea: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes Help on function put_dword in module ida_bytes: put_dword(*args) -> 'void' put_dword(ea, x) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. - - Set value of one dword of the program. This function takes into - account order of bytes specified in \inf{is_be()} This function works - for wide byte processors too.the original value of the dword is - completely lost and can't be recovered by the 'get_original_dword()' - function. - - @param ea: linear address (C++: ea_t) - @param x: dword value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. Help on function put_qword in module ida_bytes: put_qword(*args) -> 'void' put_qword(ea, x) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. - - Set value of one qword (8 bytes) of the program. This function takes - into account order of bytes specified in \inf{is_be()} This function - DOESN'T works for wide byte processors. - - @param ea: linear address (C++: ea_t) - @param x: qword value (C++: uint64) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value Help on function put_word in module ida_bytes: put_word(*args) -> 'void' put_word(ea, x) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value - - Set value of one word of the program. This function takes into account - order of bytes specified in \inf{is_be()} This function works for wide - byte processors too.The original value of the word is completely lost - and can't be recovered by the 'get_original_word()' function. ea - - linear address x - word value - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function qword_flag in module ida_bytes: -qword_flag(*args) -> 'flags_t' - qword_flag() -> flags_t - - - Get a flags_t representing a quad word. +qword_flag(*args) -> 'flags64_t' + qword_flag() -> flags64_t + Get a flags64_t representing a quad word. Help on function register_custom_data_format in module ida_bytes: register_custom_data_format(*args) -> 'int' register_custom_data_format(py_df) -> int - - Registers a custom data format with a given data type. - @param df: an instance of data_format_t - @return: - < 0 if failed to register + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register > 0 data format id Help on function register_custom_data_type in module ida_bytes: register_custom_data_type(*args) -> 'int' register_custom_data_type(py_dt) -> int - - Registers a custom data type. - @param dt: an instance of the data_type_t class - @return: - < 0 if failed to register + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register > 0 data type id Help on function register_data_types_and_formats in module ida_bytes: @@ -3881,190 +3813,169 @@ Help on function revert_byte in module ida_bytes: revert_byte(*args) -> 'bool' revert_byte(ea) -> bool - - Revert patched byte + @retval true: byte was patched before and reverted now - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function seg_flag in module ida_bytes: -seg_flag(*args) -> 'flags_t' - seg_flag() -> flags_t - - - see 'Bits: instruction operand types' +seg_flag(*args) -> 'flags64_t' + seg_flag() -> flags64_t + see Bits: instruction operand types Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' set_cmt(ea, comm, rptble) -> bool - - Set an indented comment. - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? @return: success Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' set_forced_operand(ea, n, op) -> bool - - Set forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand @return: success Help on function set_immd in module ida_bytes: set_immd(*args) -> 'bool' set_immd(ea) -> bool + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set - - Set 'has immediate operand' flag. Returns true if the 'FF_IMMD' bit - was not set and now is set - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_lzero in module ida_bytes: set_lzero(*args) -> 'bool' set_lzero(ea, n) -> bool + Set toggle lzero bit. This function changes the display of leading zeroes for + the specified operand. If the default is not to display leading zeroes, this + function will display them and vice versa. - - Set toggle lzero bit. - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' set_manual_insn(ea, manual_insn) - - Set manual instruction string. - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_op_type in module ida_bytes: set_op_type(*args) -> 'bool' set_op_type(ea, type, n) -> bool - - (internal function) change representation of operand(s). - @param ea: linear address (C++: ea_t) - @param type: new flag value (should be obtained from char_flag() , - num_flag() and similar functions) (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param type: (C++: flags64_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) Help on function set_opinfo in module ida_bytes: set_opinfo(*args) -> 'bool' set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. - - Set additional information about an operand representation. This - function is a low level one. Only the kernel should use it. - - @param ea: linear address of the item (C++: ea_t) - @param n: number of operand, 0 or 1 (C++: int) - @param flag: flags of the item (C++: flags_t) - @param ti: additional representation information (C++: const opinfo_t - *) - @param suppress_events: do not generate changing_op_type and - op_type_changed events (C++: bool) + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags64_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. Help on function stkvar_flag in module ida_bytes: -stkvar_flag(*args) -> 'flags_t' - stkvar_flag() -> flags_t - - - see 'Bits: instruction operand types' +stkvar_flag(*args) -> 'flags64_t' + stkvar_flag() -> flags64_t + see Bits: instruction operand types Help on function strlit_flag in module ida_bytes: -strlit_flag(*args) -> 'flags_t' - strlit_flag() -> flags_t - - - Get a flags_t representing a string literal. +strlit_flag(*args) -> 'flags64_t' + strlit_flag() -> flags64_t + Get a flags64_t representing a string literal. Help on function stroff_flag in module ida_bytes: -stroff_flag(*args) -> 'flags_t' - stroff_flag() -> flags_t - - - see 'Bits: instruction operand types' +stroff_flag(*args) -> 'flags64_t' + stroff_flag() -> flags64_t + see Bits: instruction operand types Help on function stru_flag in module ida_bytes: -stru_flag(*args) -> 'flags_t' - stru_flag() -> flags_t - - - Get a flags_t representing a struct. +stru_flag(*args) -> 'flags64_t' + stru_flag() -> flags64_t + Get a flags64_t representing a struct. Help on function tbyte_flag in module ida_bytes: -tbyte_flag(*args) -> 'flags_t' - tbyte_flag() -> flags_t - - - Get a flags_t representing a tbyte. +tbyte_flag(*args) -> 'flags64_t' + tbyte_flag() -> flags64_t + Get a flags64_t representing a tbyte. Help on function toggle_bnot in module ida_bytes: toggle_bnot(*args) -> 'bool' toggle_bnot(ea, n) -> bool + Toggle binary negation of operand. also see is_bnot() - - Toggle binary negation of operand. also see 'is_bnot()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function toggle_lzero in module ida_bytes: toggle_lzero(*args) -> 'bool' toggle_lzero(ea, n) -> bool + Toggle lzero bit. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function unregister_custom_data_format in module ida_bytes: unregister_custom_data_format(*args) -> 'bool' unregister_custom_data_format(dfid) -> bool - - Unregisters a custom data format + @param dfid: data format id @return: Boolean @@ -4072,9 +3983,8 @@ Help on function unregister_custom_data_type in module ida_bytes: unregister_custom_data_type(*args) -> 'bool' unregister_custom_data_type(dtid) -> bool - - Unregisters a custom data type. + @param dtid: the data type id @return: Boolean @@ -4088,35 +3998,30 @@ Help on function update_hidden_range in module ida_bytes: update_hidden_range(*args) -> 'bool' update_hidden_range(ha) -> bool + Update hidden range information in the database. You cannot use this function to + change the range boundaries - - Update hidden range information in the database. You cannot use this - function to change the range boundaries - - @param ha: range to update (C++: const hidden_range_t *) + @param ha: (C++: const hidden_range_t *) range to update @return: success Help on function use_mapping in module ida_bytes: use_mapping(*args) -> 'ea_t' use_mapping(ea) -> ea_t - - Translate address according to current mappings. - @param ea: address to translate (C++: ea_t) + @param ea: (C++: ea_t) address to translate @return: translated address Help on function visit_patched_bytes in module ida_bytes: visit_patched_bytes(*args) -> 'int' visit_patched_bytes(ea1, ea2, py_callable) -> int - - Enumerates patched bytes in the given range and invokes a callable + @param ea1: start address @param ea2: end address - @param callable: a Python callable with the following prototype: + @param py_callable: a Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be @@ -4126,580 +4031,31 @@ visit_patched_bytes(*args) -> 'int' Help on function word_flag in module ida_bytes: -word_flag(*args) -> 'flags_t' - word_flag() -> flags_t - - - Get a flags_t representing a word. +word_flag(*args) -> 'flags64_t' + word_flag() -> flags64_t + Get a flags64_t representing a word. Help on function yword_flag in module ida_bytes: -yword_flag(*args) -> 'flags_t' - yword_flag() -> flags_t - - - Get a flags_t representing a ymm word. +yword_flag(*args) -> 'flags64_t' + yword_flag() -> flags64_t + Get a flags64_t representing a ymm word. Help on function zword_flag in module ida_bytes: -zword_flag(*args) -> 'flags_t' - zword_flag() -> flags_t - - - Get a flags_t representing a zmm word. +zword_flag(*args) -> 'flags64_t' + zword_flag() -> flags64_t + Get a flags64_t representing a zmm word. -=== ida_bytes EPYDOC INJECTIONS === -ida_bytes.ALOPT_IGNCLT -""" -if set, don't stop at codepoints that are not part of the current -'culture'; accept all those that are graphical (this is typically used -used by user-initiated actions creating string literals.) -""" - -ida_bytes.ALOPT_IGNHEADS -""" -don't stop if another data item is encountered. only the byte values -will be used to determine the string length. if not set, a defined -data item or instruction will truncate the string -""" - -ida_bytes.ALOPT_IGNPRINT -""" -if set, don't stop at non-printable codepoints, but only at the -terminating character (or not unicode-mapped character (e.g., 0x8f in -CP1252)) -""" - -ida_bytes.ALOPT_MAX4K -""" -accumulated length - -if string length is more than 4K, return the -""" - -ida_bytes.BIN_SEARCH_BACKWARD -""" -search backward for bytes -""" - -ida_bytes.BIN_SEARCH_CASE -""" -case sensitive -""" - -ida_bytes.BIN_SEARCH_FORWARD -""" -search forward for bytes -""" - -ida_bytes.BIN_SEARCH_INITED -""" -find_byte, find_byter: any initilized value -""" - -ida_bytes.BIN_SEARCH_NOBREAK -""" -don't check for Ctrl-Break -""" - -ida_bytes.BIN_SEARCH_NOCASE -""" -case insensitive -""" - -ida_bytes.BIN_SEARCH_NOSHOW -""" -don't show search progress or update screen -""" - -ida_bytes.DELIT_DELNAMES -""" -delete any names at the specified address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_EXPAND -""" -propagate undefined items; for example if removing an instruction -removes all references to the next instruction, then plan to convert -to unexplored the next instruction too. -""" - -ida_bytes.DELIT_KEEPFUNC -""" -Just delete xrefs, ops e.t.c. - -do not undefine the function start. -""" - -ida_bytes.DELIT_NOCMT -""" -reject to delete if a comment is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_NOTRUNC -""" -even if 'AF_TRFUNC' is set - -don't truncate the current function -""" - -ida_bytes.DELIT_NOUNAME -""" -reject to delete if a user name is in address range (except for the -starting address). this bit is valid if nbytes > 1 -""" - -ida_bytes.DELIT_SIMPLE -""" -simply undefine the specified item(s) -""" - -ida_bytes.DTP_NODUP -""" -do not use dup construct -""" - -ida_bytes.DT_TYPE -""" -Mask for DATA typing. -""" - -ida_bytes.FF_0CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_0CUST -""" -Custom representation? -""" - -ida_bytes.FF_0ENUM -""" -Enumeration? -""" - -ida_bytes.FF_0FLT -""" -Floating point number? -""" - -ida_bytes.FF_0FOP -""" -Forced operand? -""" - -ida_bytes.FF_0NUMB -""" -Binary number? +Module "ida_dbg"s docstring: """ +Contains functions to control the debugging of a process. -ida_bytes.FF_0NUMD -""" -Decimal number? -""" - -ida_bytes.FF_0NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_0NUMO -""" -Octal number? -""" - -ida_bytes.FF_0OFF -""" -Offset? -""" - -ida_bytes.FF_0SEG -""" -Segment? -""" - -ida_bytes.FF_0STK -""" -Stack variable? -""" - -ida_bytes.FF_0STRO -""" -Struct offset? -""" +See Debugger functions for a complete explanation of these functions. -ida_bytes.FF_0VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_1CHAR -""" -Char ('x')? -""" - -ida_bytes.FF_1CUST -""" -Custom representation? -""" - -ida_bytes.FF_1ENUM -""" -Enumeration? -""" - -ida_bytes.FF_1FLT -""" -Floating point number? -""" - -ida_bytes.FF_1FOP -""" -Forced operand? -""" - -ida_bytes.FF_1NUMB -""" -Binary number? -""" - -ida_bytes.FF_1NUMD -""" -Decimal number? -""" - -ida_bytes.FF_1NUMH -""" -Hexadecimal number? -""" - -ida_bytes.FF_1NUMO -""" -Octal number? -""" - -ida_bytes.FF_1OFF -""" -Offset? -""" - -ida_bytes.FF_1SEG -""" -Segment? -""" - -ida_bytes.FF_1STK -""" -Stack variable? -""" - -ida_bytes.FF_1STRO -""" -Struct offset? -""" - -ida_bytes.FF_1VOID -""" -Void (unknown)? -""" - -ida_bytes.FF_ALIGN -""" -alignment directive -""" - -ida_bytes.FF_BNOT -""" -Bitwise negation of operands. -""" - -ida_bytes.FF_BYTE -""" -byte -""" - -ida_bytes.FF_CODE -""" -Code ? -""" - -ida_bytes.FF_COMM -""" -Has comment ? -""" +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" -ida_bytes.FF_CUSTOM -""" -custom data type -""" - -ida_bytes.FF_DATA -""" -Data ? -""" - -ida_bytes.FF_DOUBLE -""" -double -""" - -ida_bytes.FF_DWORD -""" -double word -""" - -ida_bytes.FF_FLOAT -""" -float -""" - -ida_bytes.FF_FLOW -""" -Exec flow from prev instruction. -""" - -ida_bytes.FF_FUNC -""" -function start? -""" - -ida_bytes.FF_IMMD -""" -Has Immediate value ? -""" - -ida_bytes.FF_IVL -""" -Byte has value ? -""" - -ida_bytes.FF_JUMP -""" -Has jump table or switch_info? -""" - -ida_bytes.FF_LABL -""" -Has dummy name? -""" - -ida_bytes.FF_LINE -""" -Has next or prev lines ? -""" - -ida_bytes.FF_NAME -""" -Has name ? -""" - -ida_bytes.FF_OWORD -""" -octaword/xmm word (16 bytes/128 bits) -""" - -ida_bytes.FF_PACKREAL -""" -packed decimal real -""" - -ida_bytes.FF_QWORD -""" -quadro word -""" - -ida_bytes.FF_REF -""" -has references -""" - -ida_bytes.FF_SIGN -""" -Inverted sign of operands. -""" - -ida_bytes.FF_STRLIT -""" -string literal -""" - -ida_bytes.FF_STRUCT -""" -struct variable -""" - -ida_bytes.FF_TAIL -""" -Tail ? -""" - -ida_bytes.FF_TBYTE -""" -tbyte -""" - -ida_bytes.FF_UNK -""" -Unknown ? -""" - -ida_bytes.FF_UNUSED -""" -unused bit (was used for variable bytes) -""" - -ida_bytes.FF_WORD -""" -word -""" - -ida_bytes.FF_YWORD -""" -ymm word (32 bytes/256 bits) -""" - -ida_bytes.FF_ZWORD -""" -zmm word (64 bytes/512 bits) -""" - -ida_bytes.GFE_VALUE -""" -get flags with 'FF_IVL' & 'MS_VAL' . It is much slower under remote -debugging because the kernel needs to read the process memory. -""" - -ida_bytes.GMB_READALL -""" -if this bit is not set, fail at first uninited byte - -try to read all bytes -""" - -ida_bytes.GMB_WAITBOX -""" -show wait box (may return -1 in this case) -""" - -ida_bytes.ITEM_END_FIXUP -""" -stop at the first fixup -""" - -ida_bytes.ITEM_END_INITED -""" -stop when initialization changes i.e.if is_loaded(ea): stop if -uninitialized byte is encounteredif !is_loaded(ea): stop if -initialized byte is encountered -""" - -ida_bytes.ITEM_END_NAME -""" -stop at the first named location -""" - -ida_bytes.ITEM_END_XREF -""" -stop at the first referenced location -""" - -ida_bytes.MS_0TYPE -""" -Mask for 1st arg typing. -""" - -ida_bytes.MS_1TYPE -""" -Mask for the type of other operands. -""" - -ida_bytes.MS_CLS -""" -Mask for typing. -""" - -ida_bytes.MS_CODE -""" -Mask for code bits. -""" - -ida_bytes.MS_COMM -""" -Mask of common bits. -""" - -ida_bytes.MS_VAL -""" -Mask for byte value. -""" - -ida_bytes.OPND_ALL -""" -all operands -""" - -ida_bytes.OPND_MASK -""" -mask for operand number -""" - -ida_bytes.OPND_OUTER -""" -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). -""" - -ida_bytes.PSTF_ENC -""" -if encoding is specified, append it -""" - -ida_bytes.PSTF_HOTKEY -""" -have hotkey markers part of the name -""" - -ida_bytes.PSTF_TBRIEF -""" -use brief name (e.g., in the 'Strings window') -""" - -ida_bytes.PSTF_TINLIN -""" -use 'inline' name (e.g., in the structures comments) -""" - -ida_bytes.PSTF_TMASK -""" -type mask -""" - -ida_bytes.PSTF_TNORM -""" -use normal name -""" - -ida_bytes.STRCONV_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" - -ida_bytes.STRCONV_INCLLEN -""" -for Pascal-style strings, include the prefixing length byte(s) as -C-escaped sequence -""" - -ida_bytes.STRCONV_REPLCHAR -""" -convert non-printable characters to the Unicode replacement character -(U+FFFD) -""" -=== ida_bytes EPYDOC INJECTIONS END === Help on class DBG_Hooks in module ida_dbg: class DBG_Hooks(builtins.object) @@ -4710,7 +4066,10 @@ class DBG_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> DBG_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> DBG_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | @@ -4719,45 +4078,122 @@ class DBG_Hooks(builtins.object) | | dbg_bpt(self, *args) -> 'int' | dbg_bpt(self, tid, bptea) -> int + | A user defined breakpoint was reached. + | + | @param tid: (thid_t) + | @param bptea: (::ea_t) | | dbg_bpt_changed(self, *args) -> 'void' | dbg_bpt_changed(self, bptev_code, bpt) + | Breakpoint has been changed. + | + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) | | dbg_exception(self, *args) -> 'int' | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * | | dbg_finished_loading_bpts(self, *args) -> 'void' | dbg_finished_loading_bpts(self) + | Finished loading breakpoint info from idb. | | dbg_information(self, *args) -> 'void' | dbg_information(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_library_load(self, *args) -> 'void' | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_library_unload(self, *args) -> 'void' | dbg_library_unload(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * | | dbg_process_attach(self, *args) -> 'void' | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_process_detach(self, *args) -> 'void' | dbg_process_detach(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t | | dbg_process_exit(self, *args) -> 'void' | dbg_process_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_process_start(self, *args) -> 'void' | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t | | dbg_request_error(self, *args) -> 'void' | dbg_request_error(self, failed_command, failed_dbg_notification) + | An error occurred during the processing of a request. + | + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) | | dbg_run_to(self, *args) -> 'void' | dbg_run_to(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_started_loading_bpts(self, *args) -> 'void' | dbg_started_loading_bpts(self) + | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) -> 'void' | dbg_step_into(self) @@ -4770,15 +4206,33 @@ class DBG_Hooks(builtins.object) | | dbg_suspend_process(self, *args) -> 'void' | dbg_suspend_process(self) + | The process is now suspended. | | dbg_thread_exit(self, *args) -> 'void' | dbg_thread_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int | | dbg_thread_start(self, *args) -> 'void' | dbg_thread_start(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t | | dbg_trace(self, *args) -> 'int' | dbg_trace(self, tid, ip) -> int + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -4802,53 +4256,51 @@ Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + add_bpt(bpt) -> bool - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + @param bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) -> 'void' add_path_mapping(src, dst) + + @param src: char const * + @param dst: char const * Help on function add_virt_module in module ida_dbg: add_virt_module(*args) -> 'bool' add_virt_module(mod) -> bool + + @param mod: modinfo_t const * Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on class bpt_location_t in module ida_dbg: @@ -4859,24 +4311,36 @@ class bpt_location_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bpt_location_t const & | | __repr__ = _swig_repr(self) | @@ -4885,39 +4349,67 @@ class bpt_location_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & | | ea(self, *args) -> 'ea_t' | ea(self) -> ea_t + | Get address (BPLT_ABS) | | is_empty_path(self, *args) -> 'bool' | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) | | lineno(self, *args) -> 'int' | lineno(self) -> int + | Get line number (BPLT_SRC) | | offset(self, *args) -> 'uval_t' | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) | | path(self, *args) -> 'char const *' | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) | | set_abs_bpt(self, *args) -> 'void' | set_abs_bpt(self, a) + | Specify an absolute address location. + | + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' | set_rel_bpt(self, mod, _offset) + | Specify a relative address location. + | + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' | set_src_bpt(self, fn, _lineno) + | Specify a source level location. + | + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' | set_sym_bpt(self, _symbol, _offset=0) + | Specify a symbolic location. + | + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) | | symbol(self, *args) -> 'char const *' | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) | | type(self, *args) -> 'bpt_loctype_t' | type(self) -> bpt_loctype_t + | Get bpt type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4929,13 +4421,13 @@ class bpt_location_t(builtins.object) | list of weak references to the object (if defined) | | index - | bpt_location_t_index_get(self) -> int + | index | | info - | bpt_location_t_info_get(self) -> ea_t + | info | | loctype - | bpt_location_t_loctype_get(self) -> bpt_loctype_t + | loctype | | thisown | The membership flag @@ -4962,75 +4454,112 @@ class bpt_t(builtins.object) | | badbpt(self, *args) -> 'bool' | badbpt(self) -> bool + | Failed to write bpt to process memory? | | enabled(self, *args) -> 'bool' | enabled(self) -> bool + | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) -> 'size_t' | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) -> 'int' | get_size(self) -> int + | Get bpt size. | | is_absbpt(self, *args) -> 'bool' | is_absbpt(self) -> bool + | Is absolute address breakpoint? | | is_active(self, *args) -> 'bool' | is_active(self) -> bool + | Written completely to process? | | is_compiled(self, *args) -> 'bool' | is_compiled(self) -> bool + | Condition has been compiled? | | is_hwbpt(self, *args) -> 'bool' | is_hwbpt(self) -> bool + | Is hardware breakpoint? | | is_inactive(self, *args) -> 'bool' | is_inactive(self) -> bool + | Not written to process at all? | | is_low_level(self, *args) -> 'bool' | is_low_level(self) -> bool + | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) -> 'bool' | is_page_bpt(self) -> bool + | Page breakpoint? | | is_partially_active(self, *args) -> 'bool' | is_partially_active(self) -> bool + | Written partially to process? | | is_relbpt(self, *args) -> 'bool' | is_relbpt(self) -> bool + | Is relative address breakpoint? | | is_srcbpt(self, *args) -> 'bool' | is_srcbpt(self) -> bool + | Is source level breakpoint? | | is_symbpt(self, *args) -> 'bool' | is_symbpt(self) -> bool + | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) -> 'bool' | is_tracemodebpt(self) -> bool + | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) -> 'bool' | is_traceoffbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) -> 'bool' | is_traceonbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) -> 'bool' | listbpt(self) -> bool + | Include in the bpt list? | | set_abs_bpt(self, *args) -> 'void' | set_abs_bpt(self, a) + | Set bpt location to an absolute address. + | + | @param a: (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' | set_rel_bpt(self, mod, o) + | Set bpt location to a relative address. + | + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' | set_src_bpt(self, fn, lineno) + | Set bpt location to a source line. + | + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) | | set_sym_bpt(self, *args) -> 'void' | set_sym_bpt(self, sym, o) + | Set bpt location to a symbol. + | + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) | | set_trace_action(self, *args) -> 'bool' | set_trace_action(self, enable, trace_types) -> bool + | Configure tracing options. + | + | @param enable: (C++: bool) + | @param trace_types: (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -5041,47 +4570,50 @@ class bpt_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bptid + | bptid + | | cb - | bpt_t_cb_get(self) -> size_t + | cb | | cndidx - | bpt_t_cndidx_get(self) -> int + | cndidx | | condition - | bpt_t_condition_get(self) -> PyObject * + | condition | | ea - | bpt_t_ea_get(self) -> ea_t + | ea | | elang - | bpt_t_elang_get(self) -> PyObject * + | elang | | flags - | bpt_t_flags_get(self) -> uint32 + | flags | | loc - | bpt_t_loc_get(self) -> bpt_location_t + | loc | | pass_count - | bpt_t_pass_count_get(self) -> int + | pass_count | | pid - | bpt_t_pid_get(self) -> pid_t + | pid | | props - | bpt_t_props_get(self) -> uint32 + | props | | size - | bpt_t_size_get(self) -> int + | size | | thisown | The membership flag | | tid - | bpt_t_tid_get(self) -> thid_t + | tid | | type - | bpt_t_type_get(self) -> bpttype_t + | type Help on class bpt_vec_t in module ida_dbg: @@ -5092,10 +4624,14 @@ class bpt_vec_t(builtins.object) | | __getitem__(self, *args) -> 'bpt_t const &' | __getitem__(self, i) -> bpt_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -5107,19 +4643,23 @@ class bpt_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bpt_t const & | | __swig_destroy__ = delete_bpt_vec_t(...) | delete_bpt_vec_t(self) | | at(self, *args) -> 'bpt_t const &' | at(self, _idx) -> bpt_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bpt_t >::const_iterator' | begin(self) -> bpt_t - | begin(self) -> bpt_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -5132,11 +4672,16 @@ class bpt_vec_t(builtins.object) | | end(self, *args) -> 'qvector< bpt_t >::const_iterator' | end(self) -> bpt_t - | end(self) -> bpt_t | | erase(self, *args) -> 'qvector< bpt_t >::iterator' | erase(self, it) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | | erase(self, first, last) -> bpt_t + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator | | extract(self, *args) -> 'bpt_t *' | extract(self) -> bpt_t @@ -5146,18 +4691,29 @@ class bpt_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=bpt_t()) + | + | @param x: bpt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: bpt_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bpt_t >::iterator' | insert(self, it, x) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bpt_t &' | push_back(self, x) + | + | @param x: bpt_t const & + | | push_back(self) -> bpt_t | | qclear(self, *args) -> 'void' @@ -5165,16 +4721,26 @@ class bpt_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bpt_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< bpt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -5191,6 +4757,36 @@ class bpt_vec_t(builtins.object) | thisown | The membership flag +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(builtins.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddrs_t(...) + | delete_bptaddrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + Help on function bring_debugger_to_front in module ida_dbg: bring_debugger_to_front(*args) -> 'void' @@ -5200,274 +4796,249 @@ Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' check_bpt(ea) -> int - - Check the breakpoint at the specified address. - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_trace_file in module ida_dbg: choose_trace_file(*args) -> 'qstring *' choose_trace_file() -> str - - Show the choose trace dialog. Help on function clear_requests_queue in module ida_dbg: clear_requests_queue(*args) -> 'void' clear_requests_queue() - - Clear the queue of waiting requests. \sq{Type, Synchronous function, - Notification, none (synchronous function)}If a request is currently - running, this one isn't stopped. + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. Help on function clear_trace in module ida_dbg: clear_trace(*args) -> 'void' clear_trace() - - - Clear all events in the trace buffer. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) -> 'bool' collect_stack_trace(tid, trace) -> bool + + @param tid: thid_t + @param trace: call_stack_t * Help on function continue_process in module ida_dbg: continue_process(*args) -> 'bool' continue_process() -> bool - - - Continue the execution of the process in the debugger. \sq{Type, - Synchronous function - available as Request, Notification, none - (synchronous function)}The 'continue_process()' function can be called - from a notification handler to force the continuation of the process. - In this case the request queue will not be examined, IDA will simply - resume execution. Usually it makes sense to call - 'request_continue_process()' followed by 'run_requests()' , so that - IDA will first start a queued request (if any) and then resume the - application. + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. Help on function create_source_viewer in module ida_dbg: create_source_viewer(*args) -> 'source_view_t *' create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * - - Create a source code view. - - @param out_ccv (C++: TWidget **) - @param parent (C++: TWidget *) - @param custview (C++: TWidget *) - @param sf (C++: source_file_ptr) - @param lines (C++: strvec_t *) - @param lnnum (C++: int) - @param colnum (C++: int) - @param flags (C++: int) + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) Help on function dbg_add_bpt_tev in module ida_dbg: dbg_add_bpt_tev(*args) -> 'bool' dbg_add_bpt_tev(tid, ea, bp) -> bool + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new breakpoint trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param bp (C++: ea_t) + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) @return: false if the operation failed, true otherwise Help on function dbg_add_call_tev in module ida_dbg: dbg_add_call_tev(*args) -> 'void' dbg_add_call_tev(tid, caller, callee) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new call trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param caller (C++: ea_t) - @param callee (C++: ea_t) + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) Help on function dbg_add_debug_event in module ida_dbg: dbg_add_debug_event(*args) -> 'void' dbg_add_debug_event(event) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Add a new debug event to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param event (C++: debug_event_t *) + @param event: (C++: debug_event_t *) Help on function dbg_add_insn_tev in module ida_dbg: dbg_add_insn_tev(*args) -> 'bool' dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new instruction trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ea (C++: ea_t) - @param save (C++: save_reg_values_t) + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t @return: false if the operation failed, true otherwise Help on function dbg_add_many_tevs in module ida_dbg: dbg_add_many_tevs(*args) -> 'bool' dbg_add_many_tevs(new_tevs) -> bool + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add many new trace elements to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param new_tevs (C++: tevinforeg_vec_t *) - @return: false if the operation failed for any tev_info_t object + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object Help on function dbg_add_ret_tev in module ida_dbg: dbg_add_ret_tev(*args) -> 'void' dbg_add_ret_tev(tid, ret_insn, return_to) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Add a new return trace element to the current trace. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) - @param ret_insn (C++: ea_t) - @param return_to (C++: ea_t) + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) Help on function dbg_add_tev in module ida_dbg: dbg_add_tev(*args) -> 'void' dbg_add_tev(type, tid, address) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Add a new trace element to the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param type (C++: tev_type_t) - @param tid (C++: thid_t) - @param address (C++: ea_t) + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) Help on function dbg_add_thread in module ida_dbg: dbg_add_thread(*args) -> 'void' dbg_add_thread(tid) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} - - Add a thread to the current trace. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function dbg_bin_search in module ida_dbg: dbg_bin_search(*args) -> 'unsigned-ea-like-numeric-type *, qstring *'↗ dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int Help on function dbg_can_query in module ida_dbg: dbg_can_query(*args) -> 'bool' dbg_can_query() -> bool - - This function can be used to check if the debugger can be queried: - debugger is loaded - process is suspended - process is not suspended but can take requests. In this case some requests like memory read/write, bpt management succeed and register querying will fail. Check if idaapi.get_process_state() < 0 to tell if the process is suspended + @return: Boolean Help on function dbg_del_thread in module ida_dbg: dbg_del_thread(*args) -> 'void' dbg_del_thread(tid) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Delete a thread from the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function dbg_is_loaded in module ida_dbg: dbg_is_loaded(*args) -> 'bool' dbg_is_loaded() -> bool - - Checks if a debugger is loaded + @return: Boolean Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' define_exception(code, name, desc, flags) -> char const * - - Convenience function: define new exception code. - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) + @param bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) -> 'bool' del_bptgrp(name) -> bool + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success Help on function del_virt_module in module ida_dbg: del_virt_module(*args) -> 'bool' del_virt_module(base) -> bool + + @param base: ea_t const Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' - diff_trace_file(nonnul_filename) -> bool - - + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * Help on function disable_bblk_trace in module ida_dbg: @@ -5478,7 +5049,12 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) -> 'bool' disable_bpt(ea) -> bool + + @param ea: ea_t + disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5504,32 +5080,60 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) -> 'bool' enable_bblk_trace(enable=True) -> bool + + @param enable: bool Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) -> 'int' + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) -> 'bool' enable_func_trace(enable=True) -> bool + + @param enable: bool Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) -> 'bool' enable_insn_trace(enable=True) -> bool + + @param enable: bool Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) -> 'void' enable_manual_regions(enable) + + @param enable: bool Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) -> 'bool' - enable_step_trace(enable=True) -> bool + enable_step_trace(enable=1) -> bool + + @param enable: int Help on class eval_ctx_t in module ida_dbg: @@ -5540,6 +5144,8 @@ class eval_ctx_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t + | + | @param _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5556,7 +5162,7 @@ class eval_ctx_t(builtins.object) | list of weak references to the object (if defined) | | ea - | eval_ctx_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -5565,113 +5171,96 @@ Help on function exist_bpt in module ida_dbg: exist_bpt(*args) -> 'bool' exist_bpt(ea) -> bool - - Does a breakpoint exist at the given location? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function find_bpt in module ida_dbg: find_bpt(*args) -> 'bool' find_bpt(bptloc, bpt) -> bool + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Find a breakpoint by location. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param bptloc: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found Help on function get_bblk_trace_options in module ida_dbg: get_bblk_trace_options(*args) -> 'int' get_bblk_trace_options() -> int - - - Get current basic block tracing options. Also see 'BT_LOG_INSTS' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_bpt in module ida_dbg: get_bpt(*args) -> 'bool' get_bpt(ea, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) - @param bpt: if not NULL, is filled with the characteristics. (C++: - bpt_t *) + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. @return: false if no breakpoint exists Help on function get_bpt_group in module ida_dbg: get_bpt_group(*args) -> 'qstring *' get_bpt_group(bptloc) -> str + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bptloc_string in module ida_dbg: get_bptloc_string(*args) -> 'char const *' get_bptloc_string(i) -> char const * - - Helper function for 'bpt_location_t' . - - - @param i (C++: int) + @param i: int Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_current_source_file in module ida_dbg: @@ -5687,46 +5276,40 @@ Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_dbg_byte in module ida_dbg: -get_dbg_byte(*args) -> 'bool' - get_dbg_byte(x, ea) -> bool - - +get_dbg_byte(*args) -> 'uint32 *' + get_dbg_byte(ea) -> bool Get one byte of the debugged process memory. - @param x: pointer to byte value (C++: uint32 *) - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address @return: true success + false address inaccessible or debugger not running Help on function get_dbg_memory_info in module ida_dbg: get_dbg_memory_info(*args) -> 'int' get_dbg_memory_info(ranges) -> int + + @param ranges: meminfo_vec_t * Help on function get_dbg_reg_info in module ida_dbg: get_dbg_reg_info(*args) -> 'bool' get_dbg_reg_info(regname, ri) -> bool + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get register information \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param regname (C++: const char *) - @param ri (C++: register_info_t *) + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) Help on function get_debug_event in module ida_dbg: get_debug_event(*args) -> 'debug_event_t const *' get_debug_event() -> debug_event_t - - Get the current debugger event. Help on function get_debugger_event_cond in module ida_dbg: @@ -5738,39 +5321,47 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) -> 'bool' get_first_module(modinfo) -> bool + + @param modinfo: modinfo_t * Help on function get_func_trace_options in module ida_dbg: get_func_trace_options(*args) -> 'int' get_func_trace_options() -> int - - - Get current function tracing options. Also see 'FT_LOG_RET' \sq{Type, - Synchronous function, Notification, none (synchronous function)} + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_global_var in module ida_dbg: get_global_var(*args) -> 'bool' get_global_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) -> 'ssize_t' get_grp_bpts(bpts, grp_name) -> ssize_t + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bpts: (C++: bpt_vec_t *) : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector Help on function get_insn_tev_reg_mem in module ida_dbg: get_insn_tev_reg_mem(*args) -> 'bool' get_insn_tev_reg_mem(n, memmap) -> bool + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Read the memory pointed by register values from an instruction trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param memmap: result (C++: memreg_infos_t *) + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result @return: false if not an instruction event or no memory is available Help on function get_insn_tev_reg_result in module ida_dbg: @@ -5778,156 +5369,151 @@ Help on function get_insn_tev_reg_result in module ida_dbg: get_insn_tev_reg_result(*args) -> 'bool' get_insn_tev_reg_result(n, regname, regval) -> bool - - Read the resulting register value from an instruction trace event. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction trace event or register wasn't - modified. + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_tev_reg_val in module ida_dbg: get_insn_tev_reg_val(*args) -> 'bool' get_insn_tev_reg_val(n, regname, regval) -> bool - - Read a register value from an instruction trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)}This - is the value of the register before the execution of the instruction. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param regname: name of desired register (C++: const char *) - @param regval: result (C++: regval_t *) - @return: false if not an instruction event. + @param n: int + @param regname: char const * + @param regval: regval_t * Help on function get_insn_trace_options in module ida_dbg: get_insn_trace_options(*args) -> 'int' get_insn_trace_options() -> int - - - Get current instruction tracing options. Also see 'IT_LOG_SAME_IP' - \sq{Type, Synchronous function, Notification, none (synchronous - function)} + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} Help on function get_ip_val in module ida_dbg: get_ip_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ get_ip_val() -> bool - - - Get value of the IP (program counter) register for the current thread. - Requires a suspended debugger. + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. Help on function get_local_var in module ida_dbg: get_local_var(*args) -> 'bool' get_local_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * Help on function get_local_vars in module ida_dbg: get_local_vars(*args) -> 'bool' get_local_vars(prov, ea, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * Help on function get_manual_regions in module ida_dbg: get_manual_regions(*args) -> 'PyObject *' get_manual_regions(ranges) - get_manual_regions() -> PyObject * - - Returns the manual memory regions + + @param ranges: meminfo_vec_t * + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None Help on function get_module_info in module ida_dbg: get_module_info(*args) -> 'bool' get_module_info(ea, modinfo) -> bool + + @param ea: ea_t + @param modinfo: modinfo_t * Help on function get_next_module in module ida_dbg: get_next_module(*args) -> 'bool' get_next_module(modinfo) -> bool + + @param modinfo: modinfo_t * Help on function get_process_options in module ida_dbg: get_process_options(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' get_process_options() - - - Get process options. Any of the arguments may be NULL + Get process options. Any of the arguments may be nullptr Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) + @param proclist: (C++: procinfo_vec_t *) array with information about each running process @return: number of processes or -1 on error Help on function get_reg_val in module ida_dbg: get_reg_val(*args) -> 'PyObject *' get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. + + @param regname: (C++: const char *) char const * + @param regval: regval_t * + get_reg_val(regname, ival) -> bool - get_reg_val(regname) -> PyObject * + @param regname: char const * + @param ival: uint64 * - Read a register value from the current thread. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + get_reg_val(regname) -> bool, float, int - @param regname (C++: const char *) - @param regval (C++: regval_t *) + @param regname: char const * Help on function get_reg_vals in module ida_dbg: -get_reg_vals(*args) -> 'int' - get_reg_vals(tid, clsmask, values) -> int +get_reg_vals(*args) -> 'regvals_t *' + get_reg_vals(tid, clsmask=-1) -> regvals_t + Fetch live registers values for the thread + + @param tid: The ID of the thread to read registers for + @param clsmask: An OR'ed mask of register classes to + read values for (can be used to speed up the + retrieval process) + + @return: a regvals_t instance (empty if an error occurs) Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_running_notification in module ida_dbg: get_running_notification(*args) -> 'dbg_notification_t' get_running_notification() -> dbg_notification_t - - - Get the notification associated (if any) with the current running - request. \sq{Type, Synchronous function, Notification, none - (synchronous function)} + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} @return: dbg_null if no running request @@ -5935,10 +5521,8 @@ Help on function get_running_request in module ida_dbg: get_running_request(*args) -> 'ui_notification_t' get_running_request() -> ui_notification_t - - - Get the current running request. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} @return: ui_null if no running request @@ -5946,24 +5530,22 @@ Help on function get_sp_val in module ida_dbg: get_sp_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ get_sp_val() -> bool - - - Get value of the SP register for the current thread. Requires a - suspended debugger. + Get value of the SP register for the current thread. Requires a suspended + debugger. Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) -> 'srcinfo_provider_t *' get_srcinfo_provider(name) -> srcinfo_provider_t * + + @param name: char const * Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} @return: Step trace options @@ -5971,60 +5553,53 @@ Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t + + @param n: int Help on function get_tev_event in module ida_dbg: get_tev_event(*args) -> 'bool' get_tev_event(n, d) -> bool + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Get the corresponding debug event, if any, for the specified tev - object. \sq{Type, Synchronous function, Notification, none - (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param d: result (C++: debug_event_t *) - @return: false if the tev_t object doesn't have any associated debug - event, true otherwise, with the debug event in "d". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". Help on function get_tev_info in module ida_dbg: get_tev_info(*args) -> 'bool' get_tev_info(n, tev_info) -> bool + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Get main information about a trace event. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param tev_info: result (C++: tev_info_t *) + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result @return: success Help on function get_tev_memory_info in module ida_dbg: get_tev_memory_info(*args) -> 'bool' get_tev_memory_info(n, mi) -> bool - - Get the memory layout, if any, for the specified tev object. \sq{Type, Synchronous function, Notification, none (synchronous function)} - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @param mi: result (C++: meminfo_vec_t *) - @return: false if the tev_t object is not of type tev_mem , true - otherwise, with the new memory layout in "mi". + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_mem in module ida_dbg: @@ -6046,103 +5621,99 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_trace_base_address in module ida_dbg: get_trace_base_address(*args) -> 'ea_t' get_trace_base_address() -> ea_t - - - Get the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} @return: the base address of the currently loaded trace +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) -> 'void' + get_trace_dynamic_register_set(idaregs) + Get dynamic register set of current trace. + + @param idaregs: (C++: dynamic_register_set_t *) + Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' get_trace_file_desc(filename) -> str - - Get the file header of the specified trace file. - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_trace_platform in module ida_dbg: get_trace_platform(*args) -> 'char const *' get_trace_platform() -> char const * - - Get platform name of current trace. Help on function getn_bpt in module ida_dbg: getn_bpt(*args) -> 'bool' getn_bpt(n, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Get the characteristics of a breakpoint. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param n: number of breakpoint, is in range 0.. get_bpt_qty() -1 (C++: - int) - @param bpt: filled with the characteristics. (C++: bpt_t *) + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. @return: false if no breakpoint exists Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function graph_trace in module ida_dbg: graph_trace(*args) -> 'bool' graph_trace() -> bool - - Show the trace callgraph. Help on function handle_debug_event in module ida_dbg: handle_debug_event(*args) -> 'int' handle_debug_event(ev, rqflags) -> int + + @param ev: debug_event_t const * + @param rqflags: int Help on function hide_all_bpts in module ida_dbg: @@ -6153,52 +5724,50 @@ Help on function internal_get_sreg_base in module ida_dbg: internal_get_sreg_base(*args) -> 'ea_t' internal_get_sreg_base(tid, sreg_value) -> ea_t - - Get the sreg base, for the given thread. + @param tid: thid_t + @param sreg_value: int @return: The sreg base, or BADADDR on failure. Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) -> 'int' internal_ioctl(fn, buf, poutbuf, poutsize) -> int + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * Help on function invalidate_dbg_state in module ida_dbg: invalidate_dbg_state(*args) -> 'int' invalidate_dbg_state(dbginv) -> int + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Invalidate cached debugger information. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param dbginv: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) Help on function invalidate_dbgmem_config in module ida_dbg: invalidate_dbgmem_config(*args) -> 'void' invalidate_dbgmem_config() - - - Invalidate the debugged process memory configuration. Call this - function if the debugged process might have changed its memory layout - (allocated more memory, for example) + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) Help on function invalidate_dbgmem_contents in module ida_dbg: invalidate_dbgmem_contents(*args) -> 'void' invalidate_dbgmem_contents(ea, size) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated - - Invalidate the debugged process memory contents. Call this function - each time the process has been stopped or the process memory is - modified. If ea == 'BADADDR' , then the whole memory contents will be - invalidated - - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6209,134 +5778,123 @@ Help on function is_debugger_busy in module ida_dbg: is_debugger_busy(*args) -> 'bool' is_debugger_busy() -> bool - - - Is the debugger busy?. Some debuggers do not accept any commands while - the debugged application is running. For such a debugger, it is unsafe - to do anything with the database (even simple queries like get_byte - may lead to undesired consequences). Returns: true if the debugged - application is running under such a debugger + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger Help on function is_debugger_memory in module ida_dbg: is_debugger_memory(*args) -> 'bool' is_debugger_memory(ea) -> bool - - Is the address mapped to debugger memory? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_debugger_on in module ida_dbg: is_debugger_on(*args) -> 'bool' is_debugger_on() -> bool - - Is the debugger currently running? Help on function is_func_trace_enabled in module ida_dbg: is_func_trace_enabled(*args) -> 'bool' is_func_trace_enabled() -> bool - - - Get current state of functions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_insn_trace_enabled in module ida_dbg: is_insn_trace_enabled(*args) -> 'bool' is_insn_trace_enabled() -> bool - - - Get current state of instructions tracing. \sq{Type, Synchronous - function, Notification, none (synchronous function)} + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} Help on function is_reg_custom in module ida_dbg: is_reg_custom(*args) -> 'bool' is_reg_custom(regname) -> bool + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Does a register contain a value of a custom data type? \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * Help on function is_reg_float in module ida_dbg: is_reg_float(*args) -> 'bool' is_reg_float(regname) -> bool + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Does a register contain a floating point value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * Help on function is_reg_integer in module ida_dbg: is_reg_integer(*args) -> 'bool' is_reg_integer(regname) -> bool + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Does a register contain an integer value? \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * Help on function is_request_running in module ida_dbg: is_request_running(*args) -> 'bool' is_request_running() -> bool - - Is a request currently running? Help on function is_step_trace_enabled in module ida_dbg: is_step_trace_enabled(*args) -> 'bool' is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + +Help on function is_valid_dstate in module ida_dbg: + +is_valid_dstate(*args) -> 'bool' + is_valid_dstate(state) -> bool - - Get current state of step tracing. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + @param state: int Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' is_valid_trace_file(filename) -> bool - - Is the specified file a valid trace file for the current database? - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) -> 'PyObject *' list_bptgrps(bptgrps) -> size_t - list_bptgrps() -> PyObject * + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param bptgrps: (C++: qstrvec_t *) list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on class memreg_info_t in module ida_dbg: @@ -6369,7 +5927,7 @@ class memreg_info_t(builtins.object) | get_bytes(self) -> PyObject * | | ea - | memreg_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -6383,10 +5941,14 @@ class memreg_infos_t(builtins.object) | | __getitem__(self, *args) -> 'memreg_info_t const &' | __getitem__(self, i) -> memreg_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -6398,19 +5960,23 @@ class memreg_infos_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memreg_info_t const & | | __swig_destroy__ = delete_memreg_infos_t(...) | delete_memreg_infos_t(self) | | at(self, *args) -> 'memreg_info_t const &' | at(self, _idx) -> memreg_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | begin(self) -> memreg_info_t - | begin(self) -> memreg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -6423,11 +5989,16 @@ class memreg_infos_t(builtins.object) | | end(self, *args) -> 'qvector< memreg_info_t >::const_iterator' | end(self) -> memreg_info_t - | end(self) -> memreg_info_t | | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' | erase(self, it) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | | erase(self, first, last) -> memreg_info_t + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator | | extract(self, *args) -> 'memreg_info_t *' | extract(self) -> memreg_info_t @@ -6437,18 +6008,29 @@ class memreg_infos_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=memreg_info_t()) + | + | @param x: memreg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: memreg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' | insert(self, it, x) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memreg_info_t &' | push_back(self, x) + | + | @param x: memreg_info_t const & + | | push_back(self) -> memreg_info_t | | qclear(self, *args) -> 'void' @@ -6456,16 +6038,26 @@ class memreg_infos_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memreg_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< memreg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -6482,107 +6074,109 @@ class memreg_infos_t(builtins.object) | thisown | The membership flag -Help on function move_bpt_to_grp in module ida_dbg: +Help on function set_bpt_group in module ida_dbg: -move_bpt_to_grp(*args) -> 'void' - move_bpt_to_grp(bpt, grp_name) +set_bpt_group(*args) -> 'bool' + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Sets new group for the breakpoint + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' put_dbg_byte(ea, x) -> bool - - Change one byte of the debugged process memory. - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value @return: true if the process memory has been modified Help on function read_dbg_memory in module ida_dbg: read_dbg_memory(*args) -> 'ssize_t' read_dbg_memory(ea, buffer, size) -> ssize_t + + @param ea: ea_t + @param buffer: void * + @param size: size_t Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * - - Refreshes the debugger memory + @return: Nothing Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) -> 'bool' rename_bptgrp(old_name, new_name) -> bool + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success Help on function request_add_bpt in module ida_dbg: request_add_bpt(*args) -> 'bool' request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Post an add_bpt(const bpt_t &) request. + + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t + request_add_bpt(bpt) -> bool - - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. - - - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + @param bpt: bpt_t const & Help on function request_attach_process in module ida_dbg: request_attach_process(*args) -> 'int' request_attach_process(pid, event_id) -> int + Post an attach_process() request. - - Post an 'attach_process()' request. - - - @param pid (C++: pid_t) - @param event_id (C++: int) + @param pid: (C++: pid_t) + @param event_id: (C++: int) Help on function request_clear_trace in module ida_dbg: request_clear_trace(*args) -> 'void' request_clear_trace() - - - Post a 'clear_trace()' request. + Post a clear_trace() request. Help on function request_continue_process in module ida_dbg: request_continue_process(*args) -> 'bool' request_continue_process() -> bool - - - Post a 'continue_process()' request.This requires an explicit call to - 'run_requests()' + Post a continue_process() request. + @note: This requires an explicit call to run_requests() Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) -> 'bool' request_del_bpt(ea) -> bool + Post a del_bpt(const bpt_location_t &) request. + + @param ea: ea_t + request_del_bpt(bptloc) -> bool - - Post a 'del_bpt(ea_t)' request. - - - @param ea (C++: ea_t) + @param bptloc: bpt_location_t const & Help on function request_detach_process in module ida_dbg: request_detach_process(*args) -> 'bool' request_detach_process() -> bool - - - Post a 'detach_process()' request. + Post a detach_process() request. Help on function request_disable_bblk_trace in module ida_dbg: @@ -6593,7 +6187,12 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) -> 'bool' request_disable_bpt(ea) -> bool + + @param ea: ea_t + request_disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6614,274 +6213,232 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) -> 'bool' request_enable_bblk_trace(enable=True) -> bool + + @param enable: bool Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) -> 'bool' request_enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + request_enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) -> 'bool' request_enable_func_trace(enable=True) -> bool + + @param enable: bool Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) -> 'bool' request_enable_insn_trace(enable=True) -> bool + + @param enable: bool Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) -> 'bool' - request_enable_step_trace(enable=True) -> bool + request_enable_step_trace(enable=1) -> bool + + @param enable: int Help on function request_exit_process in module ida_dbg: request_exit_process(*args) -> 'bool' request_exit_process() -> bool - - - Post an 'exit_process()' request. + Post an exit_process() request. Help on function request_resume_thread in module ida_dbg: request_resume_thread(*args) -> 'int' request_resume_thread(tid) -> int + Post a resume_thread() request. - - Post a 'resume_thread()' request. - - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function request_run_to in module ida_dbg: request_run_to(*args) -> 'bool' request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + Post a run_to() request. - - Post a 'run_to()' request. - - - @param ea (C++: ea_t) - @param pid (C++: pid_t) - @param tid (C++: thid_t) + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) Help on function request_select_thread in module ida_dbg: request_select_thread(*args) -> 'bool' request_select_thread(tid) -> bool + Post a select_thread() request. - - Post a 'select_thread()' request. - - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function request_set_bblk_trace_options in module ida_dbg: request_set_bblk_trace_options(*args) -> 'void' request_set_bblk_trace_options(options) + Post a set_bblk_trace_options() request. - - Post a 'set_bblk_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_set_func_trace_options in module ida_dbg: request_set_func_trace_options(*args) -> 'void' request_set_func_trace_options(options) + Post a set_func_trace_options() request. - - Post a 'set_func_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_set_insn_trace_options in module ida_dbg: request_set_insn_trace_options(*args) -> 'void' request_set_insn_trace_options(options) + Post a set_insn_trace_options() request. - - Post a 'set_insn_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_set_reg_val in module ida_dbg: request_set_reg_val(*args) -> 'PyObject *' request_set_reg_val(regname, o) -> PyObject * + Post a set_reg_val() request. - - Post a 'set_reg_val()' request. - - - @param regname (C++: const char *) + @param regname: (C++: const char *) char const * + @param o: PyObject * Help on function request_set_resume_mode in module ida_dbg: request_set_resume_mode(*args) -> 'bool' request_set_resume_mode(tid, mode) -> bool + Post a set_resume_mode() request. - - Post a 'set_resume_mode()' request. - - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function request_set_step_trace_options in module ida_dbg: request_set_step_trace_options(*args) -> 'void' request_set_step_trace_options(options) + Post a set_step_trace_options() request. - - Post a 'set_step_trace_options()' request. - - - @param options (C++: int) + @param options: (C++: int) Help on function request_start_process in module ida_dbg: request_start_process(*args) -> 'int' request_start_process(path=None, args=None, sdir=None) -> int + Post a start_process() request. - - Post a 'start_process()' request. - - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * Help on function request_step_into in module ida_dbg: request_step_into(*args) -> 'bool' request_step_into() -> bool - - - Post a 'step_into()' request. + Post a step_into() request. Help on function request_step_over in module ida_dbg: request_step_over(*args) -> 'bool' request_step_over() -> bool - - - Post a 'step_over()' request. + Post a step_over() request. Help on function request_step_until_ret in module ida_dbg: request_step_until_ret(*args) -> 'bool' request_step_until_ret() -> bool - - - Post a 'step_until_ret()' request. + Post a step_until_ret() request. Help on function request_suspend_process in module ida_dbg: request_suspend_process(*args) -> 'bool' request_suspend_process() -> bool - - - Post a 'suspend_process()' request. + Post a suspend_process() request. Help on function request_suspend_thread in module ida_dbg: request_suspend_thread(*args) -> 'int' request_suspend_thread(tid) -> int + Post a suspend_thread() request. - - Post a 'suspend_thread()' request. - - - @param tid (C++: thid_t) + @param tid: (C++: thid_t) Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' resume_thread(tid) -> int - - Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_exceptions in module ida_dbg: retrieve_exceptions(*args) -> 'excvec_t *' retrieve_exceptions() -> excvec_t - - - Retrieve the exception information. You may freely modify the returned - vector and add/edit/delete exceptions You must call - 'store_exceptions()' after any modifications Note: exceptions with - code zero, multiple exception codes or names are prohibited + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited Help on function run_requests in module ida_dbg: run_requests(*args) -> 'bool' run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} - - Execute requests until all requests are processed or an asynchronous - function is called. \sq{Type, Synchronous function, Notification, none - (synchronous function)}If called from a notification handler, the - execution of requests will be postponed to the end of the execution of - all notification handlers. - - @return: false if not all requests could be processed (indicates an - asynchronous function was started) + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' save_trace_file(filename, description) -> bool - - Save the current trace in the specified file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) + @param tid: (C++: thid_t) ID of the thread to select @return: false if the thread doesn't exist. Help on function send_dbg_command in module ida_dbg: @@ -6899,228 +6456,205 @@ Help on function set_bblk_trace_options in module ida_dbg: set_bblk_trace_options(*args) -> 'void' set_bblk_trace_options(options) + Modify basic block tracing options (see BT_LOG_INSTS) - - Modify basic block tracing options (see 'BT_LOG_INSTS' ) - - - @param options (C++: int) - -Help on function set_bpt_group in module ida_dbg: - -set_bpt_group(*args) -> 'void' - set_bpt_group(bpt, grp_name) + @param options: (C++: int) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) -> 'bool' set_bptloc_group(bptloc, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success Help on function set_bptloc_string in module ida_dbg: set_bptloc_string(*args) -> 'int' set_bptloc_string(s) -> int - - Helper function for 'bpt_location_t' . - - - @param s (C++: const char *) + @param s: char const * Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(nonnul_cond) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' set_debugger_options(options) -> uint - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' + combination Debugger options - @param options (C++: uint) + @param options: (C++: uint) @return: the old debugger options Help on function set_func_trace_options in module ida_dbg: set_func_trace_options(*args) -> 'void' set_func_trace_options(options) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Modify function tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function set_highlight_trace_options in module ida_dbg: set_highlight_trace_options(*args) -> 'void' set_highlight_trace_options(hilight, color, diff) - - Set highlight trace parameters. - - @param hilight (C++: bool) - @param color (C++: bgcolor_t) - @param diff (C++: bgcolor_t) + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) Help on function set_insn_trace_options in module ida_dbg: set_insn_trace_options(*args) -> 'void' set_insn_trace_options(options) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} - - Modify instruction tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) -> 'void' set_manual_regions(ranges) + + @param ranges: meminfo_vec_t const * Help on function set_process_options in module ida_dbg: set_process_options(*args) -> 'void' set_process_options(path, args, sdir, host, _pass, port) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' - - Set process options. Any of the arguments may be NULL, which means 'do - not modify' - - @param path (C++: const char *) - @param args (C++: const char *) - @param sdir (C++: const char *) - @param host (C++: const char *) - @param port (C++: int) + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) Help on function set_process_state in module ida_dbg: set_process_state(*args) -> 'int' set_process_state(newstate, p_thid, dbginv) -> int + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Set new state for the debugged process. Notifies the IDA kernel about - the change of the debugged process state. For example, a debugger - module could call this function when it knows that the process is - suspended for a short period of time. Some IDA API calls can be made - only when the process is suspended. The process state is usually - restored before returning control to the caller. You must know that it - is ok to change the process state, doing it at arbitrary moments may - crash the application or IDA. \sq{Type, Synchronous function, - Notification, none (synchronous function)} - - @param newstate: new process state (one of Debugged process states ) - if DSTATE_NOTASK is passed then the state is not - changed (C++: int) - @param p_thid: ptr to new thread id. may be NULL or pointer to - NO_THREAD . the pointed variable will contain the old - thread id upon return (C++: thid_t *) - @param dbginv: Debugged process invalidation options (C++: int) - @return: old debugger state (one of Debugged process states ) + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) Help on function set_reg_val in module ida_dbg: set_reg_val(*args) -> 'PyObject *' set_reg_val(regname, o) -> PyObject - set_reg_val(tid, regidx, o) -> PyObject * + Write a register value to the current thread. + @param regname: (C++: const char *) char const * + @param o: PyObject * - Write a register value to the current thread. \sq{Type, Synchronous - function - available as Request, Notification, none (synchronous - function)} + set_reg_val(tid, regidx, o) -> bool, int - @param regname (C++: const char *) + @param tid: thid_t + @param regidx: int + @param o: PyObject * Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_resume_mode in module ida_dbg: set_resume_mode(*args) -> 'bool' set_resume_mode(tid, mode) -> bool + How to resume the application. Set resume mode but do not resume process. - - How to resume the application. Set resume mode but do not resume - process. - - @param tid (C++: thid_t) - @param mode (C++: resume_mode_t) + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function set_trace_base_address in module ida_dbg: set_trace_base_address(*args) -> 'void' set_trace_base_address(ea) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @param ea: (C++: ea_t) + +Help on function set_trace_dynamic_register_set in module ida_dbg: + +set_trace_dynamic_register_set(*args) -> 'void' + set_trace_dynamic_register_set(idaregs) + Set dynamic register set of current trace. - Set the base address of the current trace. \sq{Type, Synchronous - function, Notification, none (synchronous function)} - - @param ea (C++: ea_t) + @param idaregs: (C++: dynamic_register_set_t &) Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' set_trace_file_desc(filename, description) -> bool - - Change the description of the specified trace file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function set_trace_platform in module ida_dbg: set_trace_platform(*args) -> 'void' set_trace_platform(platform) - - Set platform name of current trace. - - @param platform (C++: const char *) + @param platform: (C++: const char *) char const * Help on function set_trace_size in module ida_dbg: set_trace_size(*args) -> 'bool' set_trace_size(size) -> bool + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} - - Specify the new size of the circular buffer. \sq{Type, Synchronous - function, Notification, none (synchronous function)}If you specify 0, - all available memory can be quickly used !!! - - @param size: if 0, buffer isn't circular and events are never removed. - If the new size is smaller than the existing number of - trace events, a corresponding number of trace events are - removed. (C++: int) + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! Help on function srcdbg_request_step_into in module ida_dbg: @@ -7156,86 +6690,78 @@ Help on function start_process in module ida_dbg: start_process(*args) -> 'int' start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function store_exceptions in module ida_dbg: store_exceptions(*args) -> 'bool' store_exceptions() -> bool - - - Update the exception information stored in the debugger module by - invoking its dbg->set_exception_info callback + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on class tev_info_reg_t in module ida_dbg: @@ -7262,10 +6788,10 @@ class tev_info_reg_t(builtins.object) | list of weak references to the object (if defined) | | info - | tev_info_reg_t_info_get(self) -> tev_info_t + | info | | registers - | tev_info_reg_t_registers_get(self) -> tev_reg_values_t + | registers | | thisown | The membership flag @@ -7295,16 +6821,16 @@ class tev_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | tev_info_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag | | tid - | tev_info_t_tid_get(self) -> thid_t + | tid | | type - | tev_info_t_type_get(self) -> tev_type_t + | type Help on class tev_reg_value_t in module ida_dbg: @@ -7315,6 +6841,9 @@ class tev_reg_value_t(builtins.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | + | @param _reg_idx: int + | @param _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7331,13 +6860,13 @@ class tev_reg_value_t(builtins.object) | list of weak references to the object (if defined) | | reg_idx - | tev_reg_value_t_reg_idx_get(self) -> int + | reg_idx | | thisown | The membership flag | | value - | tev_reg_value_t_value_get(self) -> regval_t + | value Help on class tev_reg_values_t in module ida_dbg: @@ -7348,10 +6877,14 @@ class tev_reg_values_t(builtins.object) | | __getitem__(self, *args) -> 'tev_reg_value_t const &' | __getitem__(self, i) -> tev_reg_value_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7363,19 +6896,23 @@ class tev_reg_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_reg_value_t const & | | __swig_destroy__ = delete_tev_reg_values_t(...) | delete_tev_reg_values_t(self) | | at(self, *args) -> 'tev_reg_value_t const &' | at(self, _idx) -> tev_reg_value_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | begin(self) -> tev_reg_value_t - | begin(self) -> tev_reg_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7388,11 +6925,16 @@ class tev_reg_values_t(builtins.object) | | end(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' | end(self) -> tev_reg_value_t - | end(self) -> tev_reg_value_t | | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | erase(self, it) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | | erase(self, first, last) -> tev_reg_value_t + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) -> 'tev_reg_value_t *' | extract(self) -> tev_reg_value_t @@ -7402,18 +6944,29 @@ class tev_reg_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_reg_value_t()) + | + | @param x: tev_reg_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: tev_reg_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | insert(self, it, x) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_reg_value_t &' | push_back(self, x) + | + | @param x: tev_reg_value_t const & + | | push_back(self) -> tev_reg_value_t | | qclear(self, *args) -> 'void' @@ -7421,16 +6974,26 @@ class tev_reg_values_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< tev_reg_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7456,10 +7019,14 @@ class tevinforeg_vec_t(builtins.object) | | __getitem__(self, *args) -> 'tev_info_reg_t const &' | __getitem__(self, i) -> tev_info_reg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -7471,19 +7038,23 @@ class tevinforeg_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_info_reg_t const & | | __swig_destroy__ = delete_tevinforeg_vec_t(...) | delete_tevinforeg_vec_t(self) | | at(self, *args) -> 'tev_info_reg_t const &' | at(self, _idx) -> tev_info_reg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | begin(self) -> tev_info_reg_t - | begin(self) -> tev_info_reg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -7496,11 +7067,16 @@ class tevinforeg_vec_t(builtins.object) | | end(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' | end(self) -> tev_info_reg_t - | end(self) -> tev_info_reg_t | | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | erase(self, it) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | | erase(self, first, last) -> tev_info_reg_t + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) -> 'tev_info_reg_t *' | extract(self) -> tev_info_reg_t @@ -7510,18 +7086,29 @@ class tevinforeg_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_info_reg_t()) + | + | @param x: tev_info_reg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: tev_info_reg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | insert(self, it, x) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tev_info_reg_t &' | push_back(self, x) + | + | @param x: tev_info_reg_t const & + | | push_back(self) -> tev_info_reg_t | | qclear(self, *args) -> 'void' @@ -7529,16 +7116,26 @@ class tevinforeg_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< tev_info_reg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7559,534 +7156,1424 @@ Help on function update_bpt in module ida_dbg: update_bpt(*args) -> 'bool' update_bpt(bpt) -> bool + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed - - Update modifiable characteristics of an existing breakpoint. To update - the breakpoint location, use 'change_bptlocs()' \sq{Type, Synchronous - function, Notification, none (synchronous function)}Only the following - fields can be modified: 'bpt_t::cndbody' 'bpt_t::pass_count' - 'bpt_t::flags' 'bpt_t::size' 'bpt_t::type' Changing some properties - will require removing and then re-adding the breakpoint to the process - memory (or the debugger backend), which can lead to race conditions - (i.e., breakpoint(s) can be missed) in case the process is not - suspended. Here are a list of scenarios that will require the - breakpoint to be removed & then re-added: 'bpt_t::size' is modified - 'bpt_t::type' is modified 'bpt_t::flags' 's BPT_ENABLED is modified - 'bpt_t::flags' 's BPT_LOWCND is changed 'bpt_t::flags' 's BPT_LOWCND - remains set, but cndbody changed - - @param bpt (C++: const bpt_t *) + @param bpt: (C++: const bpt_t *) bpt_t const * Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function write_dbg_memory in module ida_dbg: write_dbg_memory(*args) -> 'ssize_t' write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t + +Module "ida_dirtree"s docstring: +""" +Types involved in grouping of item into folders. + +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). + +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). + +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc + +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" + +Help on class direntry_t in module ida_dirtree: + +class direntry_t(builtins.object) + | Proxy of C++ direntry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __init__(self, *args) + | __init__(self, i=BADIDX, d=False) -> direntry_t + | + | @param i: uval_t + | @param d: bool + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_direntry_t(...) + | delete_direntry_t(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | isdir + | isdir + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | BADIDX = unsigned-ea-like-numeric-type(-1) + | + | ROOTIDX = 0 + | + | __hash__ = None + +Help on class direntry_vec_t in module ida_dirtree: + +class direntry_vec_t(builtins.object) + | Proxy of C++ qvector< direntry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __getitem__(self, *args) -> 'direntry_t const &' + | __getitem__(self, i) -> direntry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> direntry_vec_t + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: direntry_t const & + | + | __swig_destroy__ = delete_direntry_vec_t(...) + | delete_direntry_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: direntry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: direntry_t const & + | + | at(self, *args) -> 'direntry_t const &' + | at(self, _idx) -> direntry_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' + | begin(self) -> direntry_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< direntry_t >::const_iterator' + | end(self) -> direntry_t + | + | erase(self, *args) -> 'qvector< direntry_t >::iterator' + | erase(self, it) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | + | erase(self, first, last) -> direntry_t + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator + | + | extract(self, *args) -> 'direntry_t *' + | extract(self) -> direntry_t + | + | find(self, *args) -> 'qvector< direntry_t >::const_iterator' + | find(self, x) -> direntry_t + | + | @param x: direntry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=direntry_t()) + | + | @param x: direntry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: direntry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: direntry_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< direntry_t >::iterator' + | insert(self, it, x) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'direntry_t &' + | push_back(self, x) + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: direntry_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< direntry_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirspec_t in module ida_dirtree: + +class dirspec_t(builtins.object) + | Proxy of C++ dirspec_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, nm=None, f=0) -> dirspec_t + | + | @param nm: char const * + | @param f: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirspec_t(...) + | delete_dirspec_t(self) + | + | get_attrs(self, *args) -> 'qstring' + | get_attrs(self, inode) -> qstring + | + | @param inode: inode_t + | + | get_inode(self, *args) -> 'inode_t' + | get_inode(self, dirpath, name) -> inode_t + | get the entry inode in the specified directory + | + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode + | + | get_name(self, *args) -> 'bool' + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool + | get the entry name. for example, the structure name + | + | @param inode: (C++: inode_t) inode number of the entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. + | + | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool + | rename the entry + | + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success + | + | unlink_inode(self, *args) -> 'void' + | unlink_inode(self, inode) + | + | @param inode: (C++: inode_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | id + | id + | + | nodename + | id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | DSF_INODE_EA = 1 + | + | DSF_PRIVRANGE = 2 + +Help on class dirtree_cursor_t in module ida_dirtree: + +class dirtree_cursor_t(builtins.object) + | Proxy of C++ dirtree_cursor_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __init__(self, *args) + | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t + | + | @param _parent: diridx_t + | @param _rank: size_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_cursor_t(...) + | delete_dirtree_cursor_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: dirtree_cursor_t const & + | + | is_root_cursor(self, *args) -> 'bool' + | is_root_cursor(self) -> bool + | + | set_root_cursor(self, *args) -> 'void' + | set_root_cursor(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | root_cursor(*args) -> 'dirtree_cursor_t' + | root_cursor() -> dirtree_cursor_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | parent + | parent + | + | rank + | rank + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function dirtree_cursor_t_root_cursor in module ida_dirtree: + +dirtree_cursor_t_root_cursor(*args) -> 'dirtree_cursor_t' + dirtree_cursor_t_root_cursor() -> dirtree_cursor_t + +Help on class dirtree_cursor_vec_t in module ida_dirtree: + +class dirtree_cursor_vec_t(builtins.object) + | Proxy of C++ qvector< dirtree_cursor_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> dirtree_cursor_vec_t + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | __swig_destroy__ = delete_dirtree_cursor_vec_t(...) + | delete_dirtree_cursor_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirtree_iterator_t in module ida_dirtree: + +class dirtree_iterator_t(builtins.object) + | Proxy of C++ dirtree_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_iterator_t(...) + | delete_dirtree_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cursor + | cursor + | + | pattern + | pattern + | + | thisown + | The membership flag + +Help on class dirtree_selection_t in module ida_dirtree: + +class dirtree_selection_t(dirtree_cursor_vec_t) + | Proxy of C++ dirtree_selection_t class. + | + | Method resolution order: + | dirtree_selection_t + | dirtree_cursor_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_selection_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_selection_t(...) + | delete_dirtree_selection_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from dirtree_cursor_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from dirtree_cursor_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from dirtree_cursor_vec_t: + | + | __hash__ = None + +Help on class dirtree_t in module ida_dirtree: + +class dirtree_t(builtins.object) + | Proxy of C++ dirtree_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ds) -> dirtree_t + | + | @param ds: dirspec_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_t(...) + | delete_dirtree_t(self) + | + | change_rank(self, *args) -> 'dterr_t' + | change_rank(self, path, rank_delta) -> dterr_t + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param rank_delta: (C++: ssize_t) the amount of the change. positive numbers mean to move down + | in the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. + | + | chdir(self, *args) -> 'dterr_t' + | chdir(self, path) -> dterr_t + | Change current directory + | + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) -> 'dirtree_cursor_t' + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param de: (C++: const direntry_t &) directory entry + | @return: cursor corresponding to the directory entry + | + | findfirst(self, *args) -> 'bool' + | findfirst(self, ff, pattern) -> bool + | Start iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success + | + | findnext(self, *args) -> 'bool' + | findnext(self, ff) -> bool + | Continue iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success + | + | get_abspath(self, *args) -> 'qstring' + | get_abspath(self, cursor) -> qstring + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. + | + | @param cursor: dirtree_cursor_t const & + | + | @return: path. empty path means wrong directory part of RELPATH + | get_abspath(self, relpath) -> qstring + | + | @param relpath: char const * + | + | get_dir_size(self, *args) -> 'ssize_t' + | get_dir_size(self, diridx) -> ssize_t + | Get dir size + | + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 + | + | get_entry_attrs(self, *args) -> 'qstring' + | get_entry_attrs(self, de) -> qstring + | Get entry attributes + | + | @param de: (C++: const direntry_t &) directory entry + | @return: name + | + | get_entry_name(self, *args) -> 'qstring' + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring + | Get entry name + | + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name + | + | get_id(self, *args) -> 'char const *' + | get_id(self) -> char const * + | netnode name + | + | get_nodename = get_id(self, *args) -> 'char const *' + | + | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | get_parent_cursor(self, cursor) -> dirtree_cursor_t + | Get parent cursor. + | + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent + | + | get_rank(self, *args) -> 'ssize_t' + | get_rank(self, diridx, de) -> ssize_t + | Get ordering rank of an item. + | + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error + | + | getcwd(self, *args) -> 'qstring' + | getcwd(self) -> qstring + | Get current directory + | + | @return: the current working directory + | + | isdir(self, *args) -> 'bool' + | isdir(self, de) -> bool + | + | @param de: direntry_t const & + | + | isdir(self, path) -> bool + | + | @param path: char const * + | + | isfile(self, *args) -> 'bool' + | isfile(self, de) -> bool + | + | @param de: direntry_t const & + | + | isfile(self, path) -> bool + | + | @param path: char const * + | + | link(self, *args) -> 'dterr_t' + | link(self, path) -> dterr_t + | Add an inode into the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | link(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | load(self, *args) -> 'bool' + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. + | + | mkdir(self, *args) -> 'dterr_t' + | mkdir(self, path) -> dterr_t + | Create a directory. + | + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code + | + | notify_dirtree(self, *args) -> 'void' + | notify_dirtree(self, added, inode) + | Notify dirtree about a change of an inode. + | + | @param added: (C++: bool) are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question + | + | rename(self, *args) -> 'dterr_t' + | rename(self, _from, to) -> dterr_t + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item + | + | resolve_cursor(self, *args) -> 'direntry_t' + | resolve_cursor(self, cursor) -> direntry_t + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() + | + | resolve_path(self, *args) -> 'direntry_t' + | resolve_path(self, path) -> direntry_t + | Resolve path + | + | @param path: (C++: const char *) to analyze + | @return: directory entry + | + | rmdir(self, *args) -> 'dterr_t' + | rmdir(self, path) -> dterr_t + | Remove a directory. + | + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code + | + | save(self, *args) -> 'bool' + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. + | + | set_id(self, *args) -> 'void' + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) -> 'void' + | + | traverse(self, *args) -> 'ssize_t' + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned + | + | unlink(self, *args) -> 'dterr_t' + | unlink(self, path) -> dterr_t + | Remove an inode from the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | unlink(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | errstr(*args) -> 'char const *' + | errstr(err) -> char const * + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function dirtree_t_errstr in module ida_dirtree: + +dirtree_t_errstr(*args) -> 'char const *' + dirtree_t_errstr(err) -> char const * + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(builtins.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_visitor_t(...) + | delete_dirtree_visitor_t(self) + | + | visit(self, *args) -> 'ssize_t' + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_std_dirtree in module ida_dirtree: + +get_std_dirtree(*args) -> 'dirtree_t *' + get_std_dirtree(id) -> dirtree_t + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" + +Help on function choose_ioport_device2 in module ida_diskio: + +choose_ioport_device2(*args) -> 'bool' + choose_ioport_device2(_device, file, parse_params) -> bool + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * + +Help on class choose_ioport_parser_t in module ida_diskio: + +class choose_ioport_parser_t(builtins.object) + | Proxy of C++ choose_ioport_parser_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> choose_ioport_parser_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_choose_ioport_parser_t(...) + | delete_choose_ioport_parser_t(self) + | + | parse(self, *args) -> 'bool' + | parse(self, param, line) -> bool + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag -=== ida_dbg EPYDOC INJECTIONS === -ida_dbg.BKPT_ACTIVE -""" -active? -""" - -ida_dbg.BKPT_BADBPT -""" -failed to write the bpt to the process memory (at least one location) -""" - -ida_dbg.BKPT_CNDREADY -""" -condition has been compiled -""" - -ida_dbg.BKPT_FAKEPEND -""" -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another -""" - -ida_dbg.BKPT_LISTBPT -""" -include in bpt list (user-defined bpt) -""" - -ida_dbg.BKPT_PAGE -""" -only after writing the bpt to the process. - -written to the process as a page bpt. is available -""" - -ida_dbg.BKPT_PARTIAL -""" -partially active? (some locations were not written yet) -""" - -ida_dbg.BKPT_TRACE -""" -trace bpt; should not be deleted when the process gets suspended -""" - -ida_dbg.BPTCK_ACT -""" -breakpoint is active (written to the process) -""" - -ida_dbg.BPTCK_NO -""" -breakpoint is disabled -""" - -ida_dbg.BPTCK_NONE -""" -breakpoint does not exist -""" - -ida_dbg.BPTCK_YES -""" -breakpoint is enabled -""" - -ida_dbg.BPTEV_ADDED -""" -Breakpoint has been added. -""" - -ida_dbg.BPTEV_CHANGED -""" -Breakpoint has been modified. -""" - -ida_dbg.BPTEV_REMOVED -""" -Breakpoint has been removed. -""" - -ida_dbg.BPT_BRK -""" -suspend execution upon hit -""" - -ida_dbg.BPT_ELANG_SHIFT -""" -index of the extlang (scripting language) of the condition -""" - -ida_dbg.BPT_ENABLED -""" -enabled? -""" - -ida_dbg.BPT_LOWCND -""" -condition is calculated at low level (on the server side) -""" - -ida_dbg.BPT_TRACE -""" -add trace information upon hit -""" - -ida_dbg.BPT_TRACEON -""" -enable tracing when the breakpoint is reached -""" - -ida_dbg.BPT_TRACE_BBLK -""" -basic block tracing -""" - -ida_dbg.BPT_TRACE_FUNC -""" -function tracing -""" - -ida_dbg.BPT_TRACE_INSN -""" -instruction tracing -""" - -ida_dbg.BPT_TRACE_TYPES -""" -trace insns, functions, and basic blocks. if any of 'BPT_TRACE_TYPES' -bits are set but 'BPT_TRACEON' is clear, then turn off tracing for the -specified trace types -""" - -ida_dbg.BPT_UPDMEM -""" -refresh the memory layout and contents before evaluating bpt condition -""" - -ida_dbg.BT_LOG_INSTS -""" -log all instructions in the current basic block -""" - -ida_dbg.DBGINV_ALL -""" -invalidate everything -""" - -ida_dbg.DBGINV_MEMCFG -""" -invalidate cached process segmentation -""" - -ida_dbg.DBGINV_MEMORY -""" -invalidate cached memory contents -""" - -ida_dbg.DBGINV_NONE -""" -invalidate nothing -""" - -ida_dbg.DBGINV_REDRAW -""" -refresh the screen -""" - -ida_dbg.DBGINV_REGS -""" -invalidate cached register values -""" - -ida_dbg.DOPT_BPT_MSGS -""" -log breakpoints -""" - -ida_dbg.DOPT_END_BPT -""" -evaluate event condition on process end -""" - -ida_dbg.DOPT_ENTRY_BPT -""" -break on program entry point -""" - -ida_dbg.DOPT_EXCDLG -""" -exception dialogs: -""" - -ida_dbg.DOPT_INFO_BPT -""" -break on debugging information -""" - -ida_dbg.DOPT_INFO_MSGS -""" -log debugging info events -""" - -ida_dbg.DOPT_LIB_BPT -""" -break on library load/unload -""" - -ida_dbg.DOPT_LIB_MSGS -""" -log library loads/unloads -""" - -ida_dbg.DOPT_LOAD_DINFO -""" -automatically load debug files (pdb) -""" - -ida_dbg.DOPT_REAL_MEMORY -""" -do not hide breakpoint instructions -""" - -ida_dbg.DOPT_REDO_STACK -""" -reconstruct the stack -""" - -ida_dbg.DOPT_SEGM_MSGS -""" -log debugger segments modifications -""" - -ida_dbg.DOPT_START_BPT -""" -break on process start -""" - -ida_dbg.DOPT_TEMP_HWBPT -""" -when possible use hardware bpts for temp bpts -""" - -ida_dbg.DOPT_THREAD_BPT -""" -break on thread start/exit -""" - -ida_dbg.DOPT_THREAD_MSGS -""" -log thread starts/exits -""" - -ida_dbg.DSTATE_NOTASK -""" -no process is currently debugged -""" - -ida_dbg.DSTATE_RUN -""" -process is running -""" - -ida_dbg.DSTATE_SUSP -""" -process is suspended and will not continue -""" - -ida_dbg.EXCDLG_ALWAYS -""" -always display -""" - -ida_dbg.EXCDLG_NEVER -""" -never display exception dialogs -""" - -ida_dbg.EXCDLG_UNKNOWN -""" -display for unknown exceptions -""" - -ida_dbg.FT_LOG_RET -""" -function tracing will log returning instructions -""" - -ida_dbg.IT_LOG_SAME_IP -""" -instruction tracing will log instructions whose IP doesn't change -""" - -ida_dbg.ST_ALREADY_LOGGED -""" -step tracing will be disabled when IP is already logged -""" - -ida_dbg.ST_DIFFERENTIAL -""" -tracing: log only new instructions -""" - -ida_dbg.ST_OPTIONS_MASK -""" -mask of available options, to ensure compatibility with newer IDA -versions -""" - -ida_dbg.ST_OVER_DEBUG_SEG -""" -step tracing will be disabled when IP is in a debugger segment -""" - -ida_dbg.ST_OVER_LIB_FUNC -""" -step tracing will be disabled when IP is in a library function -""" - -ida_dbg.ST_SKIP_LOOPS -""" -step tracing will try to skip loops already recorded -""" - -ida_dbg.WFNE_ANY -""" -return the first event (even if it doesn't suspend the process) -""" - -ida_dbg.WFNE_CONT -""" -continue from the suspended state -""" - -ida_dbg.WFNE_NOWAIT -""" -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' -""" - -ida_dbg.WFNE_SILENT -""" -1: be slient, 0:display modal boxes if necessary -""" - -ida_dbg.WFNE_SUSP -""" -wait until the process gets suspended -""" - -ida_dbg.WFNE_USEC -""" -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds -""" -=== ida_dbg EPYDOC INJECTIONS END === Help on function close_linput in module ida_diskio: close_linput(*args) -> 'void' close_linput(li) - - Close loader input. - - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function create_bytearray_linput in module ida_diskio: create_bytearray_linput(*args) -> 'linput_t *' create_bytearray_linput(s) -> linput_t * - - Trivial memory linput. + + @param s: qstring const & Help on function create_generic_linput in module ida_diskio: create_generic_linput(*args) -> 'linput_t *' create_generic_linput(gl) -> linput_t * - - Create a generic linput - @param gl: linput description. this object will be destroyed by - close_linput() using "delete gl;" (C++: generic_linput_t - *) + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" Help on function create_memory_linput in module ida_diskio: create_memory_linput(*args) -> 'linput_t *' create_memory_linput(start, size) -> linput_t * + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. - - Create a linput for process memory. This linput will use - read_dbg_memory() to read data. - - @param start: starting address of the input (C++: ea_t) - @param size: size of the memory area to represent as linput if - unknown, may be passed as 0 (C++: asize_t) + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 Help on function eclose in module ida_diskio: eclose(*args) -> 'void' eclose(fp) + + @param fp: FILE * Help on function enumerate_files in module ida_diskio: enumerate_files(*args) -> 'PyObject *' enumerate_files(path, fname, callback) -> PyObject * - - Enumerate files in the specified directory while the callback returns 0. + @param path: directory to enumerate files in @param fname: mask of file names to enumerate @param callback: a callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration. - @return: - None in case of script errors + @return: None in case of script errors tuple(code, fname) : If the callback returns non-zero +Help on function enumerate_files2 in module ida_diskio: + +enumerate_files2(*args) -> 'int' + enumerate_files2(answer, answer_size, path, fname, fv) -> int + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & + +Help on class file_enumerator_t in module ida_diskio: + +class file_enumerator_t(builtins.object) + | Proxy of C++ file_enumerator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> file_enumerator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_file_enumerator_t(...) + | delete_file_enumerator_t(self) + | + | visit_file(self, *args) -> 'int' + | visit_file(self, file) -> int + | + | @param file: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + Help on function fopenA in module ida_diskio: fopenA(*args) -> 'FILE *' fopenA(file) -> FILE * - - Open a file for append in text mode, deny none. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenM in module ida_diskio: fopenM(*args) -> 'FILE *' fopenM(file) -> FILE * - - Open a file for read/write in binary mode, deny write. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRB in module ida_diskio: fopenRB(*args) -> 'FILE *' fopenRB(file) -> FILE * - - Open a file for read in binary mode, deny none. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenRT in module ida_diskio: fopenRT(*args) -> 'FILE *' fopenRT(file) -> FILE * - - Open a file for read in text mode, deny none. - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWB in module ida_diskio: fopenWB(*args) -> 'FILE *' fopenWB(file) -> FILE * + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. - - Open a new file for write in binary mode, deny read/write. If a file - exists, it will be removed. - - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on function fopenWT in module ida_diskio: fopenWT(*args) -> 'FILE *' fopenWT(file) -> FILE * + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. - - Open a new file for write in text mode, deny write. If a file exists, - it will be removed. - - @param file (C++: const char *) - @return: NULL if failure + @param file: (C++: const char *) char const * + @return: nullptr if failure Help on class generic_linput_t in module ida_diskio: @@ -8105,6 +8592,10 @@ class generic_linput_t(builtins.object) | | read(self, *args) -> 'ssize_t' | read(self, off, buffer, nbytes) -> ssize_t + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8116,10 +8607,10 @@ class generic_linput_t(builtins.object) | list of weak references to the object (if defined) | | blocksize - | generic_linput_t_blocksize_get(self) -> uint32 + | blocksize | | filesize - | generic_linput_t_filesize_get(self) -> uint64 + | filesize | | thisown | The membership flag @@ -8128,289 +8619,272 @@ Help on function get_ida_subdirs in module ida_diskio: get_ida_subdirs(*args) -> 'qstrvec_t *' get_ida_subdirs(subdir, flags=0) -> int - - - Get list of directories in which to find a specific IDA resource (see - 'IDA subdirectories' ). The order of the resulting list is as follows: - + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: - [$IDAUSR/subdir (0..N entries)] - $IDADIR/subdir - @param subdir: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits @return: number of directories appended to 'dirs' Help on function get_linput_type in module ida_diskio: get_linput_type(*args) -> 'linput_type_t' get_linput_type(li) -> linput_type_t - - Get linput type. - - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_special_folder in module ida_diskio: get_special_folder(*args) -> 'size_t' get_special_folder(csidl) -> str + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size - - Get a folder location by CSIDL (see 'Common CSIDLs' ). Path should be - of at least MAX_PATH size - - @param csidl (C++: int) + @param csidl: (C++: int) Help on function get_user_idadir in module ida_diskio: get_user_idadir(*args) -> 'char const *' get_user_idadir() -> char const * - - Get user ida related directory. - - if $IDAUSR is defined: - - the first element in $IDAUSR + - the first element in $IDAUSR - else - - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) Help on function getsysfile in module ida_diskio: getsysfile(*args) -> 'char const *' getsysfile(filename, subdir) -> str + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. - - Search for IDA system file. This function searches for a file in:each - directory specified by IDAUSR%ida directory [+ subdir] and returns the - first match. - - @param filename (C++: const char *) - @param subdir (C++: const char *) - @return: NULL if not found, otherwise a pointer to full file name. + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. Help on function idadir in module ida_diskio: idadir(*args) -> 'char const *' idadir(subdir) -> char const * + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) - - Get IDA directory (if subdir==NULL) or the specified subdirectory (see - 'IDA subdirectories' ) - - @param subdir (C++: const char *) + @param subdir: (C++: const char *) char const * + +Help on class ioports_fallback_t in module ida_diskio: + +class ioports_fallback_t(builtins.object) + | Proxy of C++ ioports_fallback_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ioports_fallback_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ioports_fallback_t(...) + | delete_ioports_fallback_t(self) + | + | handle(self, *args) -> 'bool' + | handle(self, ports, line) -> bool + | + | @param ports: ioports_t const & + | @param line: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag Help on function open_linput in module ida_diskio: open_linput(*args) -> 'linput_t *' open_linput(file, remote) -> linput_t * - - Open loader input. - - @param file (C++: const char *) - @param remote (C++: bool) + @param file: (C++: const char *) char const * + @param remote: (C++: bool) Help on function qlgetz in module ida_diskio: qlgetz(*args) -> 'size_t' qlgetz(li, fpos) -> str + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + @param li: (C++: linput_t *) + @param fpos: (C++: int64) + +Help on function read_ioports2 in module ida_diskio: + +read_ioports2(*args) -> 'ssize_t' + read_ioports2(ports, device, file, callback=None) -> ssize_t - Read a zero-terminated string from the input. If fpos == -1 then no - seek will be performed. - - @param li (C++: linput_t *) - @param fpos (C++: int64) + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * -=== ida_diskio EPYDOC INJECTIONS === -ida_diskio.IDA_SUBDIR_IDADIR_FIRST -""" -$IDADIR/subdir will be first, not last +Module "ida_entry"s docstring: """ +Functions that deal with entry points. -ida_diskio.IDA_SUBDIR_IDP -""" -append the processor name as a subdirectory -""" +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" -ida_diskio.IDA_SUBDIR_ONLY_EXISTING -""" -only existing directories will be present -""" -=== ida_diskio EPYDOC INJECTIONS END === Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' add_entry(ord, ea, name, makecode, flags=0) -> bool - - Add an entry point to the list of entry points. - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* @return: success (currently always true) Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' get_entry(ord) -> ea_t - - Get entry point address by its ordinal - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_forwarder in module ida_entry: get_entry_forwarder(*args) -> 'qstring *' get_entry_forwarder(ord) -> str - - Get forwarder name for the entry point by its ordinal. - @param ord: ordinal number of entry point (C++: uval_t) + @param ord: (C++: uval_t) ordinal number of entry point @return: size of entry forwarder name or -1 Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' get_entry_name(ord) -> str - - Get name of the entry point by its ordinal. - @param ord: ordinal number of entry point (C++: uval_t) + @param ord: (C++: uval_t) ordinal number of entry point @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' get_entry_ordinal(idx) -> uval_t - - Get ordinal number of an entry point. - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' get_entry_qty() -> size_t - - Get number of entry points. Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' rename_entry(ord, name, flags=0) -> bool - - Rename entry point. - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* @return: success Help on function set_entry_forwarder in module ida_entry: set_entry_forwarder(*args) -> 'bool' set_entry_forwarder(ord, name, flags=0) -> bool - - Set forwarder name for ordinal. - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: forwarder name for entry point. (C++: const char *) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* @return: success -=== ida_entry EPYDOC INJECTIONS === -ida_entry.AEF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY +Module "ida_enum"s docstring: """ +Assembly level enum management. -ida_entry.AEF_NODUMMY -""" -it begins with a dummy suffix. See also AEF_IDBENC +Enums and bitfields are represented as enum_t.""" -automatically prepend the name with '_' if -""" - -ida_entry.AEF_UTF8 -""" -the name is given in UTF-8 (default) -""" -=== ida_entry EPYDOC INJECTIONS END === Help on function add_enum in module ida_enum: add_enum(*args) -> 'enum_t' add_enum(idx, name, flag) -> enum_t + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" - - Add new enum type.if idx== 'BADADDR' then add as the last idxif - name==NULL then generate a unique name "enum_%d" - - @param idx (C++: size_t) - @param name (C++: const char *) - @param flag (C++: flags_t) + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags64_t) Help on function add_enum_member in module ida_enum: add_enum_member(*args) -> 'int' add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int - - Add member to enum type. - @param id (C++: enum_t) - @param name (C++: const char *) - @param value (C++: uval_t) - @param bmask (C++: bmask_t) - @return: 0 if ok, otherwise one of Add enum member result codes + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' del_enum(id) - - Delete an enum type. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module ida_enum: del_enum_member(*args) -> 'bool' del_enum_member(id, value, serial, bmask) -> bool - - Delete member of enum type. - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: uchar) - @param bmask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) Help on class enum_member_visitor_t in module ida_enum: @@ -8423,6 +8897,8 @@ class enum_member_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8431,6 +8907,11 @@ class enum_member_visitor_t(builtins.object) | | visit_enum_member(self, *args) -> 'int' | visit_enum_member(self, cid, value) -> int + | Implements action to take when enum member is visited. + | + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8448,569 +8929,471 @@ Help on function for_all_enum_members in module ida_enum: for_all_enum_members(*args) -> 'int' for_all_enum_members(id, cv) -> int - - Visit all members of a given enum. - - @param id (C++: enum_t) - @param cv (C++: enum_member_visitor_t &) + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) Help on function get_bmask_cmt in module ida_enum: get_bmask_cmt(*args) -> 'qstring *' get_bmask_cmt(id, bmask, repeatable) -> str + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) -> 'qstring *' get_bmask_name(id, bmask) -> str + + @param id: enum_t + @param bmask: bmask_t Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' get_enum(name) -> enum_t - - Get enum by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' get_enum_cmt(id, repeatable) -> str - - Get enum comment. - - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: -get_enum_flag(*args) -> 'flags_t' - get_enum_flag(id) -> flags_t +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' get_enum_idx(id) -> uval_t + Get the index in the list of enums. - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module ida_enum: get_enum_member(*args) -> 'const_t' get_enum_member(id, value, serial, mask) -> const_t + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial - - Find an enum member by enum, value and bitmaskif serial -1, return a - member with any serial - - @param id (C++: enum_t) - @param value (C++: uval_t) - @param serial (C++: int) - @param mask (C++: bmask_t) + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' get_enum_member_bmask(id) -> bmask_t - - Get bitmask of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' get_enum_member_by_name(name) -> const_t - - Get a reference to an enum member by its name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module ida_enum: get_enum_member_cmt(*args) -> 'qstring *' get_enum_member_cmt(id, repeatable) -> str - - Get enum member's comment. - - @param id (C++: const_t) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param repeatable: (C++: bool) Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' get_enum_member_enum(id) -> enum_t - - Get the parent enum of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module ida_enum: get_enum_member_name(*args) -> 'qstring *' get_enum_member_name(id) -> str - - Get name of an enum member by const_t. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_serial in module ida_enum: get_enum_member_serial(*args) -> 'uchar' get_enum_member_serial(cid) -> uchar - - Get serial number of an enum member. - - @param cid (C++: const_t) + @param cid: (C++: const_t) Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' get_enum_member_value(id) -> uval_t - - Get value of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' get_enum_name(id) -> str - - Get name of enum. - - - @param id (C++: enum_t) + @param id: enum_t Help on function get_enum_name2 in module ida_enum: get_enum_name2(*args) -> 'qstring *' get_enum_name2(id, flags=0) -> str - - Get name of enum - @param id: enum id (C++: enum_t) - @param flags: Enum name flags (C++: int) + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' get_enum_size(id) -> size_t - - Get the number of the members of the enum. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_type_ordinal in module ida_enum: get_enum_type_ordinal(*args) -> 'int32' get_enum_type_ordinal(id) -> int32 - - Get corresponding type ordinal number. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' - get_first_bmask(id) -> bmask_t - - + get_first_bmask(enum_id) -> bmask_t Get first bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum (bitfield) @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_enum_member in module ida_enum: get_first_enum_member(*args) -> 'uval_t' get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t Help on function get_first_serial_enum_member in module ida_enum: get_first_serial_enum_member(*args) -> 'uchar *' get_first_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' - get_last_bmask(id) -> bmask_t - - + get_last_bmask(enum_id) -> bmask_t Get last bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module ida_enum: get_last_enum_member(*args) -> 'uval_t' get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t Help on function get_last_serial_enum_member in module ida_enum: get_last_serial_enum_member(*args) -> 'uchar *' get_last_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' - get_next_bmask(id, bmask) -> bmask_t - - + get_next_bmask(enum_id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_enum_member in module ida_enum: get_next_enum_member(*args) -> 'uval_t' get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_next_serial_enum_member in module ida_enum: get_next_serial_enum_member(*args) -> 'uchar *' get_next_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' - get_prev_bmask(id, bmask) -> bmask_t - - + get_prev_bmask(enum_id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module ida_enum: get_prev_enum_member(*args) -> 'uval_t' get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t Help on function get_prev_serial_enum_member in module ida_enum: get_prev_serial_enum_member(*args) -> 'uchar *' get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> enum_t + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) + @param idx: (C++: size_t) Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_fromtil in module ida_enum: is_enum_fromtil(*args) -> 'bool' is_enum_fromtil(id) -> bool - - Does enum come from type library? - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_enum_hidden in module ida_enum: is_enum_hidden(*args) -> 'bool' is_enum_hidden(id) -> bool - - Is enum collapsed? - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_ghost_enum in module ida_enum: is_ghost_enum(*args) -> 'bool' is_ghost_enum(id) -> bool - - Is a ghost copy of a local type? - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_one_bit_mask in module ida_enum: is_one_bit_mask(*args) -> 'bool' is_one_bit_mask(mask) -> bool - - Is bitmask one bit? - - @param mask (C++: bmask_t) + @param mask: (C++: bmask_t) Help on function set_bmask_cmt in module ida_enum: set_bmask_cmt(*args) -> 'bool' set_bmask_cmt(id, bmask, cmt, repeatable) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) -> 'bool' set_bmask_name(id, bmask, name) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' set_enum_bf(id, bf) -> bool - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' set_enum_cmt(id, cmt, repeatable) -> bool - - Set comment for enum type. - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) Help on function set_enum_fromtil in module ida_enum: set_enum_fromtil(*args) -> 'bool' set_enum_fromtil(id, fromtil) -> bool - - Specify that enum comes from a type library. - - @param id (C++: enum_t) - @param fromtil (C++: bool) + @param id: (C++: enum_t) + @param fromtil: (C++: bool) Help on function set_enum_ghost in module ida_enum: set_enum_ghost(*args) -> 'bool' set_enum_ghost(id, ghost) -> bool - - Specify that enum is a ghost copy of a local type. - - @param id (C++: enum_t) - @param ghost (C++: bool) + @param id: (C++: enum_t) + @param ghost: (C++: bool) Help on function set_enum_hidden in module ida_enum: set_enum_hidden(*args) -> 'bool' set_enum_hidden(id, hidden) -> bool - - Collapse enum. - - @param id (C++: enum_t) - @param hidden (C++: bool) + @param id: (C++: enum_t) + @param hidden: (C++: bool) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' set_enum_member_cmt(id, cmt, repeatable) -> bool - - Set comment for enum member. - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' set_enum_name(id, name) -> bool - - Set name of enum type. - - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_type_ordinal in module ida_enum: set_enum_type_ordinal(*args) -> 'void' set_enum_type_ordinal(id, ord) - - Set corresponding type ordinal number. - - @param id (C++: enum_t) - @param ord (C++: int32) + @param id: (C++: enum_t) + @param ord: (C++: int32) Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' set_enum_width(id, width) -> bool + See comment for get_enum_width() - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) + @param id: (C++: enum_t) + @param width: (C++: int) -=== ida_enum EPYDOC INJECTIONS === -ida_enum.DEFMASK -""" -default bitmask +Module "ida_expr"s docstring: """ +Functions that deal with C-like expressions and built-in IDC language. -ida_enum.ENFL_REGEX -""" -apply regular expressions to beautify the name -""" +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" -ida_enum.ENUM_MEMBER_ERROR_ENUM -""" -bad enum id -""" - -ida_enum.ENUM_MEMBER_ERROR_ILLV -""" -bad bmask and value combination (~bmask & value != 0) -""" - -ida_enum.ENUM_MEMBER_ERROR_MASK -""" -bad bmask -""" - -ida_enum.ENUM_MEMBER_ERROR_NAME -""" -already have member with this name (bad name) -""" - -ida_enum.ENUM_MEMBER_ERROR_VALUE -""" -already have 256 members with this value -""" -=== ida_enum EPYDOC INJECTIONS END === Help on class _IdcFunction in module ida_expr: class _IdcFunction(builtins.object) @@ -9039,332 +9422,281 @@ Help on function add_idc_class in module ida_expr: add_idc_class(*args) -> 'idc_class_t *' add_idc_class(name, super=None) -> idc_class_t * - - Create a new IDC class. - @param name: name of the new class (C++: const char *) - @param super: the base class for the new class. if the new class is - not based on any other class, pass NULL (C++: const - idc_class_t *) - @return: pointer to the created class. If such a class already exists, - a pointer to it will be returned. Pointers to other existing - classes may be invalidated by this call. + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. Help on function add_idc_func in module ida_expr: -add_idc_func(name, fp, args, defvals=None, flags=0) - Extends the IDC language by exposing a new IDC function that is backed up by a Python function +add_idc_func(name, fp, args, defvals=(), flags=0) + Extends the IDC language by exposing a new IDC function that is backed up by a Python function - @param name: IDC function name to expose - @param fp: Python callable that will receive the arguments and return a tuple. - @param args: Arguments. A tuple of idaapi.VT_XXX constants - @param flags: IDC function flags. A combination of EXTFUN_XXX constants + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); - @return: Boolean - - - Add an IDC function. This function does not modify the predefined - kernel functions. Example: - - static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) - { - msg("myfunc is called with arg0=%a and arg1=%s - ", argv[0].num, argv[1].str); - res->num = 5; // let's return 5 - return eOk; - } - static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; - static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, NULL, 0, EXTFUN_BASE }; - - // after this: - add_idc_func(myfunc_desc); - - // there is a new IDC function which can be called like this: - MyFunc5(0x123, "test"); - - If the function already exists, it will be replaced by the new - function - - @return: success + @note: If the function already exists, it will be replaced by the new function + @return: success Help on function add_idc_gvar in module ida_expr: add_idc_gvar(*args) -> 'idc_value_t *' add_idc_gvar(name) -> idc_value_t - - Add global IDC variable. - @param name: name of the global variable (C++: const char *) - @return: pointer to the created variable or existing variable. NB: the - returned pointer is valid until a new global var is added. + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. Help on function compile_idc_file in module ida_expr: compile_idc_file(*args) -> 'qstring *' compile_idc_file(nonnul_line) -> str + + @param nonnul_line: char const * Help on function compile_idc_snippet in module ida_expr: compile_idc_snippet(*args) -> 'qstring *' compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str - - Compile text with IDC statements. - @param func: name of the function to create out of the snippet (C++: - const char *) - @param text: text to compile (C++: const char *) - @param resolver: callback object to get values of undefined variables - This object will be called if IDC function contains - references to undefined variables. May be NULL. (C++: - idc_resolver_t *) - @param only_safe_funcs: if true, any calls to functions without - EXTFUN_SAFE flag will lead to a compilation - error. (C++: bool) + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) -> 'qstring *' compile_idc_text(nonnul_line) -> str + + @param nonnul_line: char const * Help on function copy_idcv in module ida_expr: copy_idcv(*args) -> 'error_t' copy_idcv(dst, src) -> error_t - - Copy 'src' to 'dst'. For idc objects only a reference is copied. - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function create_idcv_ref in module ida_expr: create_idcv_ref(*args) -> 'bool' create_idcv_ref(ref, v) -> bool + Create a variable reference. Currently only references to global variables can + be created. - - Create a variable reference. Currently only references to global - variables can be created. - - @param ref: ptr to the result (C++: idc_value_t *) - @param v: variable to reference (C++: const idc_value_t *) + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference @return: success Help on function deep_copy_idcv in module ida_expr: deep_copy_idcv(*args) -> 'error_t' deep_copy_idcv(dst, src) -> error_t + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called - - Deep copy an IDC object. This function performs deep copy of idc - objects. If 'src' is not an object, 'copy_idcv()' will be called - - @param dst (C++: idc_value_t *) - @param src (C++: const idc_value_t &) + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & Help on function del_idc_func in module ida_expr: del_idc_func(name) Unregisters the specified IDC function - @param name: IDC function name to unregister - - @return: Boolean - - Delete an IDC function Help on function del_idcv_attr in module ida_expr: del_idcv_attr(*args) -> 'error_t' del_idcv_attr(obj, attr) -> error_t - - Delete an object attribute. - @param obj: variable that holds an object reference (C++: idc_value_t - *) - @param attr: attribute name (C++: const char *) + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name @return: error code, eOk on success Help on function deref_idcv in module ida_expr: deref_idcv(*args) -> 'idc_value_t *' deref_idcv(v, vref_flags) -> idc_value_t + Dereference a VT_REF variable. - - Dereference a 'VT_REF' variable. - - @param v: variable to dereference (C++: idc_value_t *) - @param vref_flags: Dereference IDC variable flags (C++: int) - @return: pointer to the dereference result or NULL. If returns NULL, + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, qerrno is set to eExecBadRef "Illegal variable reference" Help on function eval_expr in module ida_expr: eval_expr(*args) -> 'qstring *' eval_expr(rv, where, line) -> str - - Compile and calculate an expression. - @param rv: pointer to the result (C++: idc_value_t *) - @param where: the current linear address in the addressing space of - the program being disassembled. If will be used to - resolve names of local variables etc. if not applicable, - then should be BADADDR . (C++: ea_t) - @param line: the expression to evaluate (C++: const char *) + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf Help on function eval_idc_expr in module ida_expr: eval_idc_expr(*args) -> 'qstring *' eval_idc_expr(rv, where, line) -> str + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. - - Same as 'eval_expr()' , but will always use the IDC interpreter - regardless of the currently installed extlang. - - @param rv (C++: idc_value_t *) - @param where (C++: ea_t) + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * Help on function exec_idc_script in module ida_expr: exec_idc_script(*args) -> 'qstring *' exec_idc_script(result, path, func, args, argsnum) -> str - - Compile and execute IDC function(s) from file. - @param result: ptr to idc_value_t to hold result of the function. If - execution fails, this variable will contain the - exception information. You may pass NULL if you are not - interested in the returned value. (C++: idc_value_t *) - @param path: text file containing text of IDC functions (C++: const - char *) - @param func: function name to execute (C++: const char *) - @param args: array of parameters (C++: const idc_value_t) - @param argsnum: number of parameters to pass to 'fname' This number - should be equal to number of parameters the function - expects. (C++: size_t) + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf Help on function exec_system_script in module ida_expr: exec_system_script(*args) -> 'bool' exec_system_script(file, complain_if_no_file=True) -> bool - - Compile and execute "main" function from system file. - @param file: file name with IDC function(s). The file will be searched - in the idc subdir of ida (C++: const char *) - @param complain_if_no_file: 1: display warning if the file is not - found 0: don't complain if file doesn't - exist (C++: bool) + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed Help on function find_idc_class in module ida_expr: find_idc_class(*args) -> 'idc_class_t *' find_idc_class(name) -> idc_class_t * - - Find an existing IDC class by its name. - @param name: name of the class (C++: const char *) - @return: pointer to the class or NULL. The returned pointer is valid - until a new call to add_idc_class() + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() Help on function find_idc_func in module ida_expr: find_idc_func(*args) -> 'qstring *' find_idc_func(prefix, n=0) -> str + + @param prefix: char const * + @param n: int Help on function find_idc_gvar in module ida_expr: find_idc_gvar(*args) -> 'idc_value_t *' find_idc_gvar(name) -> idc_value_t - - Find an existing global IDC variable by its name. - @param name: name of the global variable (C++: const char *) - @return: pointer to the variable or NULL. NB: the returned pointer is - valid until a new global var is added. FIXME: it is difficult - to use this function in a thread safe manner + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner Help on function first_idcv_attr in module ida_expr: first_idcv_attr(*args) -> 'char const *' first_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * Help on function free_idcv in module ida_expr: free_idcv(*args) -> 'void' free_idcv(v) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 - - Free storage used by 'VT_STR' / 'VT_OBJ' IDC variables. After this - call the variable has a numeric value 0 - - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function get_idc_filename in module ida_expr: get_idc_filename(*args) -> 'char const *' get_idc_filename(file) -> str + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. - - Get full name of IDC file name. Search for file in list of include - directories, IDCPATH directory and the current directory. - - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf Help on function get_idcv_attr in module ida_expr: get_idcv_attr(*args) -> 'error_t' get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t - - Get an object attribute. - @param res: buffer for the attribute value (C++: idc_value_t *) - @param obj: variable that holds an object reference. if obj is NULL it - searches global variables, then user functions (C++: const - idc_value_t *) - @param attr: attribute name (C++: const char *) - @param may_use_getattr: may call getattr functions to calculate the - attribute if it does not exist (C++: bool) + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist @return: error code, eOk on success Help on function get_idcv_class_name in module ida_expr: get_idcv_class_name(*args) -> 'qstring *' get_idcv_class_name(obj) -> str - - Retrieves the IDC object class name. - @param obj: class instance variable (C++: const idc_value_t *) + @param obj: (C++: const idc_value_t *) class instance variable @return: error code, eOk on success Help on function get_idcv_slice in module ida_expr: get_idcv_slice(*args) -> 'error_t' get_idcv_slice(res, v, i1, i2, flags=0) -> error_t - - Get slice. - @param res: output variable that will contain the slice (C++: - idc_value_t *) - @param v: input variable (string or object) (C++: const idc_value_t - *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 @return: eOk if success Help on class highlighter_cbs_t in module ida_expr: @@ -9378,6 +9710,8 @@ class highlighter_cbs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9392,9 +9726,15 @@ class highlighter_cbs_t(builtins.object) | | set_block_state(self, *args) -> 'void' | set_block_state(self, arg0) + | + | @param arg0: int32 | | set_style(self, *args) -> 'void' | set_style(self, arg0, arg1, arg2) + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9418,6 +9758,8 @@ class idc_global_t(builtins.object) | __init__(self, *args) | __init__(self) -> idc_global_t | __init__(self, n) -> idc_global_t + | + | @param n: char const * | | __repr__ = _swig_repr(self) | @@ -9434,13 +9776,13 @@ class idc_global_t(builtins.object) | list of weak references to the object (if defined) | | name - | idc_global_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | idc_global_t_value_get(self) -> idc_value_t + | value Help on class idc_value_t in module ida_expr: @@ -9451,8 +9793,16 @@ class idc_value_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t + | + | @param n: sval_t + | | __init__(self, r) -> idc_value_t + | + | @param r: idc_value_t const & + | | __init__(self, _str) -> idc_value_t + | + | @param _str: char const * | | __repr__ = _swig_repr(self) | @@ -9462,52 +9812,73 @@ class idc_value_t(builtins.object) | _create_empty_string(self, *args) -> 'void' | _create_empty_string(self) | - | _idc_value_t__get_e = __get_e(self, *args) -> 'wrapped_array_t< ushort,6 >' - | __get_e(self) -> wrapped_array_t< ushort,6 > - | | c_str(self, *args) -> 'char const *' | c_str(self) -> char const * + | VT_STR | | clear(self, *args) -> 'void' | clear(self) + | See free_idcv() | | create_empty_string(self, *args) -> 'void' | create_empty_string(self) | | is_convertible(self, *args) -> 'bool' | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. | | is_integral(self, *args) -> 'bool' | is_integral(self) -> bool + | Does value represent a whole number? | | is_zero(self, *args) -> 'bool' | is_zero(self) -> bool + | Does value represent the integer 0? | | qstr(self, *args) -> 'qstring const &' | qstr(self) -> qstring + | VT_STR | qstr(self) -> qstring const & | | set_float(self, *args) -> 'void' | set_float(self, f) + | + | @param f: fpvalue_t const & | | set_int64(self, *args) -> 'void' | set_int64(self, v) + | + | @param v: int64 | | set_long(self, *args) -> 'void' | set_long(self, v) + | + | @param v: sval_t | | set_pvoid(self, *args) -> 'void' | set_pvoid(self, p) + | + | @param p: void * | | set_string(self, *args) -> 'void' | set_string(self, _str, len) + | + | @param _str: char const * + | @param len: size_t + | | set_string(self, _str) + | + | @param _str: char const * | | swap(self, *args) -> 'void' | swap(self, v) + | Set this = r and v = this. + | + | @param v: (C++: idc_value_t &) | | u_str(self, *args) -> 'uchar const *' | u_str(self) -> uchar const * + | VT_STR | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9519,25 +9890,25 @@ class idc_value_t(builtins.object) | list of weak references to the object (if defined) | | e - | __get_e(self) -> wrapped_array_t< ushort,6 > + | e | | funcidx - | idc_value_t_funcidx_get(self) -> int + | funcidx | | i64 - | idc_value_t_i64_get(self) -> int64 + | i64 | | num - | idc_value_t_num_get(self) -> sval_t + | num | | obj - | idc_value_t_obj_get(self) -> idc_object_t * + | obj | | pvoid - | idc_value_t_pvoid_get(self) -> void * + | pvoid | | reserve - | idc_value_t_reserve_get(self) -> uchar [sizeof(qstring)] + | reserve | | str | @@ -9545,7 +9916,7 @@ class idc_value_t(builtins.object) | The membership flag | | vtype - | idc_value_t_vtype_get(self) -> char + | vtype Help on class idc_values_t in module ida_expr: @@ -9556,10 +9927,14 @@ class idc_values_t(builtins.object) | | __getitem__(self, *args) -> 'idc_value_t const &' | __getitem__(self, i) -> idc_value_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -9571,19 +9946,23 @@ class idc_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: idc_value_t const & | | __swig_destroy__ = delete_idc_values_t(...) | delete_idc_values_t(self) | | at(self, *args) -> 'idc_value_t const &' | at(self, _idx) -> idc_value_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< idc_value_t >::const_iterator' | begin(self) -> idc_value_t - | begin(self) -> idc_value_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -9596,11 +9975,16 @@ class idc_values_t(builtins.object) | | end(self, *args) -> 'qvector< idc_value_t >::const_iterator' | end(self) -> idc_value_t - | end(self) -> idc_value_t | | erase(self, *args) -> 'qvector< idc_value_t >::iterator' | erase(self, it) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | | erase(self, first, last) -> idc_value_t + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator | | extract(self, *args) -> 'idc_value_t *' | extract(self) -> idc_value_t @@ -9610,18 +9994,29 @@ class idc_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=idc_value_t()) + | + | @param x: idc_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: idc_value_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< idc_value_t >::iterator' | insert(self, it, x) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'idc_value_t &' | push_back(self, x) + | + | @param x: idc_value_t const & + | | push_back(self) -> idc_value_t | | qclear(self, *args) -> 'void' @@ -9629,16 +10024,26 @@ class idc_values_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: idc_value_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< idc_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -9659,119 +10064,112 @@ Help on function idcv_float in module ida_expr: idcv_float(*args) -> 'error_t' idcv_float(v) -> error_t - - Convert IDC variable to a floating point. - - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function idcv_int64 in module ida_expr: idcv_int64(*args) -> 'error_t' idcv_int64(v) -> error_t - - Convert IDC variable to a 64bit number. - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) @return: v = 0 if impossible to convert to int64 Help on function idcv_long in module ida_expr: idcv_long(*args) -> 'error_t' idcv_long(v) -> error_t - - Convert IDC variable to a long (32/64bit) number. - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) @return: v = 0 if impossible to convert to long Help on function idcv_num in module ida_expr: idcv_num(*args) -> 'error_t' idcv_num(v) -> error_t - - Convert IDC variable to a long number. - @param v (C++: idc_value_t *) - @return: v = 0 if IDC variable = "false" string v = 1 if IDC - variable = "true" string v = number if IDC variable is - number or string containing a number eTypeConflict if IDC - variable = empty string + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string Help on function idcv_object in module ida_expr: idcv_object(*args) -> 'error_t' idcv_object(v, icls=None) -> error_t - - Create an IDC object. The original value of 'v' is discarded (freed). - @param v: variable to hold the object. any previous value will be - cleaned (C++: idc_value_t *) - @param icls: ptr to the desired class. NULL means "object" class this - ptr must be returned by add_idc_class() or - find_idc_class() (C++: const idc_class_t *) + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() @return: always eOk Help on function idcv_string in module ida_expr: idcv_string(*args) -> 'error_t' idcv_string(v) -> error_t - - Convert IDC variable to a text string. - - @param v (C++: idc_value_t *) + @param v: (C++: idc_value_t *) Help on function last_idcv_attr in module ida_expr: last_idcv_attr(*args) -> 'char const *' last_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * Help on function move_idcv in module ida_expr: move_idcv(*args) -> 'error_t' move_idcv(dst, src) -> error_t + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. - - Move 'src' to 'dst'. This function is more effective than copy_idcv - since it never copies big amounts of data. - - @param dst (C++: idc_value_t *) - @param src (C++: idc_value_t *) + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) Help on function next_idcv_attr in module ida_expr: next_idcv_attr(*args) -> 'char const *' next_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) -> 'char const *' prev_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * Help on function print_idcv in module ida_expr: print_idcv(*args) -> 'qstring *' print_idcv(v, name=None, indent=0) -> str + Get text representation of idc_value_t. - - Get text representation of 'idc_value_t' . - - - @param v (C++: const idc_value_t &) - @param name (C++: const char *) - @param indent (C++: int) + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) Help on function py_add_idc_func in module ida_expr: py_add_idc_func(*args) -> 'bool' py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -9782,235 +10180,134 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) -> 'bool' pyw_convert_defvals(out, py_seq) -> bool + + @param out: idc_values_t * + @param py_seq: PyObject * Help on function pyw_register_idc_func in module ida_expr: pyw_register_idc_func(*args) -> 'size_t' pyw_register_idc_func(name, args, py_fp) -> size_t + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) -> 'bool' pyw_unregister_idc_func(ctxptr) -> bool + + @param ctxptr: size_t Help on function set_header_path in module ida_expr: set_header_path(*args) -> 'bool' set_header_path(path, add) -> bool + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. - - Set or append a header path. IDA looks for the include files in the - appended header paths, then in the ida executable directory. - - @param path: list of directories to add (separated by ';') may be - NULL, in this case nothing is added (C++: const char *) - @param add: true: append. false: remove old paths. (C++: bool) + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory Help on function set_idcv_attr in module ida_expr: set_idcv_attr(*args) -> 'error_t' set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t - - Set an object attribute. - @param obj: variable that holds an object reference. if obj is NULL - then it tries to modify a global variable with the - attribute name (C++: idc_value_t *) - @param attr: attribute name (C++: const char *) - @param value: new attribute value (C++: const idc_value_t &) - @param may_use_setattr: may call setattr functions for the class (C++: - bool) + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class @return: error code, eOk on success Help on function set_idcv_slice in module ida_expr: set_idcv_slice(*args) -> 'error_t' set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t - - Set slice. - @param v: variable to modify (string or object) (C++: idc_value_t *) - @param i1: slice start index (C++: uval_t) - @param i2: slice end index (excluded) (C++: uval_t) - @param flags: IDC variable slice flags or 0 (C++: int) + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 @return: eOk on success Help on function swap_idcvs in module ida_expr: swap_idcvs(*args) -> 'void' swap_idcvs(v1, v2) - - Swap 2 variables. - - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) Help on function throw_idc_exception in module ida_expr: throw_idc_exception(*args) -> 'error_t' throw_idc_exception(r, desc) -> error_t + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); - - Create an idc execution exception object. This helper function can be - used to return an exception from C++ code to IDC. In other words this - function can be called from 'idc_func_t()' callbacks. Sample usage: if - ( !ok ) return throw_idc_exception(r, "detailed error msg"); - - @param r: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description @return: eExecThrow -=== ida_expr EPYDOC INJECTIONS === -ida_expr.CPL_DEL_MACROS -""" -delete macros at the end of compilation +Module "ida_fixup"s docstring: """ +Functions that deal with fixup information. -ida_expr.CPL_ONLY_SAFE -""" -allow calls of only thread-safe functions -""" +A loader should setup fixup information using set_fixup().""" -ida_expr.CPL_USE_LABELS -""" -allow program labels in the script -""" - -ida_expr.IDC_LANG_EXT -""" -IDC script extension. -""" - -ida_expr.VARSLICE_SINGLE -""" -return single index (i2 is ignored) -""" - -ida_expr.VREF_COPY -""" -copy the result to the input var (v) -""" - -ida_expr.VREF_LOOP -""" -dereference until we get a non 'VT_REF' -""" - -ida_expr.VREF_ONCE -""" -dereference only once, do not loop -""" - -ida_expr.VT_FLOAT -""" -Floating point (see 'idc_value_t::e' ) -""" - -ida_expr.VT_FUNC -""" -Function (see 'idc_value_t::funcidx' ) -""" - -ida_expr.VT_INT64 -""" -i64 -""" - -ida_expr.VT_LONG -""" -Integer (see 'idc_value_t::num' ) -""" - -ida_expr.VT_OBJ -""" -Object (see idc_value_t::obj) -""" - -ida_expr.VT_PVOID -""" -void * -""" - -ida_expr.VT_REF -""" -Reference. -""" - -ida_expr.VT_STR -""" -String (see qstr() and similar functions) -""" - -ida_expr.VT_WILD -""" -Function with arbitrary number of arguments. The actual number of -arguments will be passed in 'idc_value_t::num' . This value should not -be used for 'idc_value_t' . -""" - -ida_expr.eExecThrow -""" -See return value of 'idc_func_t' . -""" -=== ida_expr EPYDOC INJECTIONS END === Help on function calc_fixup_size in module ida_fixup: calc_fixup_size(*args) -> 'int' calc_fixup_size(type) -> int + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error - - Calculate size of fixup in bytes (the number of bytes the fixup - patches) - - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function contains_fixups in module ida_fixup: contains_fixups(*args) -> 'bool' contains_fixups(ea, size) -> bool - - Does the specified address range contain any fixup information? - - @param ea (C++: ea_t) - @param size (C++: asize_t) + @param ea: (C++: ea_t) + @param size: (C++: asize_t) Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' del_fixup(source) - - Delete fixup information. - - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function exists_fixup in module ida_fixup: exists_fixup(*args) -> 'bool' exists_fixup(source) -> bool - - Check that a fixup exists at the given address. - - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function find_custom_fixup in module ida_fixup: find_custom_fixup(*args) -> 'fixup_type_t' find_custom_fixup(name) -> fixup_type_t - - Get id of a custom fixup handler. - @param name: name of the custom fixup handler (C++: const char *) + @param name: (C++: const char *) name of the custom fixup handler @return: id with FIXUP_CUSTOM bit set or 0 Help on class fixup_data_t in module ida_fixup: @@ -10023,6 +10320,9 @@ class fixup_data_t(builtins.object) | __init__(self, *args) | __init__(self) -> fixup_data_t | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | __repr__ = _swig_repr(self) | @@ -10031,6 +10331,7 @@ class fixup_data_t(builtins.object) | | calc_size(self, *args) -> 'int' | calc_size(self) -> int + | calc_fixup_size() | | clr_extdef(self, *args) -> 'void' | clr_extdef(self) @@ -10040,30 +10341,47 @@ class fixup_data_t(builtins.object) | | get(self, *args) -> 'bool' | get(self, source) -> bool + | get_fixup() + | + | @param source: (C++: ea_t) | | get_base(self, *args) -> 'ea_t' | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL | | get_desc(self, *args) -> 'char const *' | get_desc(self, source) -> char const * + | get_fixup_desc() + | + | @param source: (C++: ea_t) | | get_flags(self, *args) -> 'uint32' | get_flags(self) -> uint32 + | Fixup flags Fixup flags. | | get_handler(self, *args) -> 'fixup_handler_t const *' | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() | | get_type(self, *args) -> 'fixup_type_t' | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. | | get_value(self, *args) -> 'uval_t' | get_value(self, ea) -> uval_t + | get_fixup_value() + | + | @param ea: (C++: ea_t) | | has_base(self, *args) -> 'bool' | has_base(self) -> bool + | Is fixup relative? | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | is_fixup_custom() | | is_extdef(self, *args) -> 'bool' | is_extdef(self) -> bool @@ -10073,33 +10391,52 @@ class fixup_data_t(builtins.object) | | patch_value(self, *args) -> 'bool' | patch_value(self, ea) -> bool + | patch_fixup_value() + | + | @param ea: (C++: ea_t) | | set(self, *args) -> 'void' | set(self, source) + | set_fixup() + | + | @param source: (C++: ea_t) | | set_base(self, *args) -> 'void' | set_base(self, new_base) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) | | set_extdef(self, *args) -> 'void' | set_extdef(self) | | set_sel(self, *args) -> 'void' | set_sel(self, seg) + | + | @param seg: segment_t const * | | set_target_sel(self, *args) -> 'void' | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. | | set_type(self, *args) -> 'void' | set_type(self, type_) + | + | @param type_: fixup_type_t | | set_type_and_flags(self, *args) -> 'void' | set_type_and_flags(self, type_, flags_=0) + | + | @param type_: fixup_type_t + | @param flags_: uint32 | | set_unused(self, *args) -> 'void' | set_unused(self) | | was_created(self, *args) -> 'bool' | was_created(self) -> bool + | Is fixup artificial? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10111,13 +10448,13 @@ class fixup_data_t(builtins.object) | list of weak references to the object (if defined) | | displacement - | fixup_data_t_displacement_get(self) -> adiff_t + | displacement | | off - | fixup_data_t_off_get(self) -> ea_t + | off | | sel - | fixup_data_t_sel_get(self) -> sel_t + | sel | | thisown | The membership flag @@ -10147,10 +10484,10 @@ class fixup_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | fixup_info_t_ea_get(self) -> ea_t + | ea | | fd - | fixup_info_t_fd_get(self) -> fixup_data_t + | fd | | thisown | The membership flag @@ -10159,26 +10496,21 @@ Help on function gen_fix_fixups in module ida_fixup: gen_fix_fixups(*args) -> 'void' gen_fix_fixups(_from, to, size) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). - - Relocate the bytes with fixup information once more (generic - function). This function may be called from 'loader_t::move_segm()' if - it suits the goal. If 'loader_t::move_segm' is not defined then this - function will be called automatically when moving segments or rebasing - the entire program. Special parameter values (from = BADADDR, size = - 0, to = delta) are used when the function is called from - rebase_program(delta). - - @param _from (C++: ea_t) - @param to (C++: ea_t) - @param size (C++: asize_t) + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) Help on function get_first_fixup_ea in module ida_fixup: get_first_fixup_ea(*args) -> 'ea_t' get_first_fixup_ea() -> ea_t - - Get the first address with fixup information @return: the first address with fixup information, or BADADDR @@ -10187,169 +10519,156 @@ Help on function get_fixup in module ida_fixup: get_fixup(*args) -> 'bool' get_fixup(fd, source) -> bool - - Get fixup information. - - @param fd (C++: fixup_data_t *) - @param source (C++: ea_t) + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) Help on function get_fixup_desc in module ida_fixup: get_fixup_desc(*args) -> 'fixup_data_t const &' get_fixup_desc(source, fd) -> str - - Get FIXUP description comment. - - @param source (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & Help on function get_fixup_handler in module ida_fixup: get_fixup_handler(*args) -> 'fixup_handler_t const *' get_fixup_handler(type) -> fixup_handler_t const * - - Get handler of standard or custom fixup. - - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function get_fixup_value in module ida_fixup: get_fixup_value(*args) -> 'uval_t' get_fixup_value(ea, type) -> uval_t + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. - - Get the operand value. This function get fixup bytes from data or an - instruction at `ea' and convert them to the operand value (maybe - partially). It is opposite in meaning to the 'patch_fixup_value()' . - For example, FIXUP_HI8 read a byte at 'patch_fixup_value()' `ea' and - shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low - 26 bits of the insn at `ea' and shifts it left by 2 bits. This - function is mainly used to get a relocation addend. - 'fixup_handler_t::size' - - @param ea: address to get fixup bytes from, the size of the fixup - bytes depends on the fixup type. (C++: ea_t) - @param type (C++: fixup_type_t) + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value Help on function get_fixups in module ida_fixup: get_fixups(*args) -> 'bool' get_fixups(out, ea, size) -> bool + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' get_next_fixup_ea(ea) -> ea_t - - Find next address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the next address with fixup information, or BADADDR Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' get_prev_fixup_ea(ea) -> ea_t - - Find previous address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the previous address with fixup information, or BADADDR +Help on function handle_fixups_in_macro in module ida_fixup: + +handle_fixups_in_macro(*args) -> 'bool' + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the + apply() callback of a custom fixup. + + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) + Help on function is_fixup_custom in module ida_fixup: is_fixup_custom(*args) -> 'bool' is_fixup_custom(type) -> bool - - Is fixup processed by processor module? - - @param type (C++: fixup_type_t) + @param type: (C++: fixup_type_t) Help on function patch_fixup_value in module ida_fixup: patch_fixup_value(*args) -> 'bool' patch_fixup_value(ea, fd) -> bool + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. - - Patch the fixup bytes. This function updates data or an instruction at - `ea' to the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' - to the high byte of `fd->off' , or AArch64's custom fixup BRANCH26 - updates low 26 bits of the insn at `ea' to the value of `fd->off' - shifted right by 2. 'fixup_handler_t::size' - - @param ea: address where data are changed, the size of the changed - data depends on the fixup type. (C++: ea_t) - @param fd (C++: const fixup_data_t &) + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. Help on function set_fixup in module ida_fixup: set_fixup(*args) -> 'void' set_fixup(source, fd) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. - - Set fixup information. You should fill 'fixup_data_t' and call this - function and the kernel will remember information in the database. - - @param source: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data -=== ida_fixup EPYDOC INJECTIONS === -ida_fixup.FIXUPF_CREATED -""" -fixup was not present in the input file +Module "ida_fpro"s docstring: """ +System independent counterparts of FILE* related functions from Clib. -ida_fixup.FIXUPF_EXTDEF -""" -target is a location (otherwise - segment). Use this bit if the target -is a symbol rather than an offset from the beginning of a segment. -""" +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. -ida_fixup.FIXUPF_LOADER_MASK -""" -additional flags. The bits from this mask are not stored in the -database and can be used by the loader at its discretion. -""" +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. -ida_fixup.FIXUPF_REL -""" -fixup is relative to the linear address `base' . Otherwise fixup is -relative to the start of the segment with `sel' selector. -""" +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" -ida_fixup.FIXUPF_UNUSED -""" -fixup is ignored by IDAdisallows the kernel to convert operandsthis -fixup is not used during output -""" -=== ida_fixup EPYDOC INJECTIONS END === Help on class qfile_t in module ida_fpro: class qfile_t(builtins.object) - | Proxy of C++ qfile_t class. - | - | | A helper class to work with FILE related functions. | | Methods defined here: | | __init__(self, *args) | __init__(self, rhs) -> qfile_t + | + | @param rhs: qfile_t const & + | | __init__(self, pycapsule=None) -> qfile_t | - | - | Closes the file + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -10358,32 +10677,29 @@ class qfile_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | filename(self, *args) -> 'PyObject *' | filename(self) -> PyObject * | | flush(self, *args) -> 'int' | flush(self) -> int - | - | - | Reads a single byte from the file. Returns None if EOF or the read byte | | get_byte(self, *args) -> 'PyObject *' | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte | | get_fp(self, *args) -> 'FILE *' | get_fp(self) -> FILE * | | gets(self, *args) -> 'PyObject *' | gets(self, size) -> PyObject * - | - | | Reads a line from the input file. Returns the read line or None + | + | @param size: int | | open(self, *args) -> 'bool' | open(self, filename, mode) -> bool - | - | | Opens a file | | @param filename: the file name @@ -10392,36 +10708,38 @@ class qfile_t(builtins.object) | | opened(self, *args) -> 'bool' | opened(self) -> bool - | - | | Checks if the file is opened or not | | put_byte(self, *args) -> 'int' | put_byte(self, chr) -> int - | - | | Writes a single byte to the file + | + | @param chr: int | | puts(self, *args) -> 'int' | puts(self, str) -> int + | + | @param str: char const * | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * - | - | | Reads from the file. Returns the buffer or None + | + | @param size: int | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool | | seek(self, *args) -> 'int' | seek(self, offset, whence=SEEK_SET) -> int - | - | | Set input source position + | + | @param offset: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | size(self, *args) -> 'int64' @@ -10429,35 +10747,36 @@ class qfile_t(builtins.object) | | tell(self, *args) -> 'int64' | tell(self) -> int64 - | - | | Returns the current position | | write(self, *args) -> 'int' | write(self, py_buf) -> int - | - | | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * | | writebytes(self, *args) -> 'int' | writebytes(self, py_buf, big_endian) -> int - | - | | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool | | ---------------------------------------------------------------------- | Static methods defined here: | | from_capsule(*args) -> 'qfile_t *' | from_capsule(pycapsule) -> qfile_t + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'qfile_t *' | from_fp(fp) -> qfile_t + | + | @param fp: FILE * | | tmpfile(*args) -> 'qfile_t *' | tmpfile() -> qfile_t - | - | | A static method to construct an instance using a temporary file | | ---------------------------------------------------------------------- @@ -10467,7 +10786,7 @@ class qfile_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | qfile_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -10479,380 +10798,358 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) -> 'qfile_t *' qfile_t_from_capsule(pycapsule) -> qfile_t + + @param pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) -> 'qfile_t *' qfile_t_from_fp(fp) -> qfile_t + + @param fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: qfile_t_tmpfile(*args) -> 'qfile_t *' qfile_t_tmpfile() -> qfile_t +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + Help on function add_auto_stkpnt in module ida_frame: add_auto_stkpnt(*args) -> 'bool' add_auto_stkpnt(pfn, ea, delta) -> bool - - Add automatic SP register change point. - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address where SP changes. usually this is the end of - the instruction which modifies the stack pointer - (\cmd{ea}+\cmd{size}) (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP @return: success Help on function add_frame in module ida_frame: add_frame(*args) -> 'bool' add_frame(pfn, frsize, frregs, argsize) -> bool - - Add function frame. - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: sval_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments range which will be purged - upon return. this parameter is used for __stdcall and - __pascal calling conventions. for other calling - conventions please pass 0. (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) Help on function add_regvar in module ida_frame: add_regvar(*args) -> 'int' add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int - - Define a register variable. - @param pfn: function in which the definition will be created (C++: - func_t *) - @param ea1: range of addresses within the function where the - definition will be used (C++: ea_t) - @param ea2: range of addresses within the function where the - definition will be used (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @param cmt: comment for the definition (C++: const char *) + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition @return: Register variable error codes Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' add_user_stkpnt(ea, delta) -> bool - - Add user-defined SP register change point. - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP @return: success Help on function build_stkvar_name in module ida_frame: build_stkvar_name(*args) -> 'qstring *' build_stkvar_name(pfn, v) -> str - - Build automatic stack variable name. - @param pfn: pointer to function (can't be NULL!) (C++: const func_t - *) - @param v: value of variable offset (C++: sval_t) + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset @return: length of stack variable name or -1 Help on function build_stkvar_xrefs in module ida_frame: build_stkvar_xrefs(*args) -> 'void' build_stkvar_xrefs(out, pfn, mptr) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. - - Fill 'out' with a list of all the xrefs made from function 'pfn', to - the argument or variable 'mptr' in 'pfn's stack frame. - - @param out: the list of xrefs to fill. (C++: xreflist_t *) - @param pfn: the function to scan. (C++: func_t *) - @param mptr: the argument/variable in pfn's stack frame. (C++: const - member_t *) + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. Help on function calc_stkvar_struc_offset in module ida_frame: calc_stkvar_struc_offset(*args) -> 'ea_t' calc_stkvar_struc_offset(pfn, insn, n) -> ea_t - - Calculate offset of stack variable in the frame structure. - @param pfn: pointer to function (can't be NULL!) (C++: func_t *) - @param insn: the instruction (C++: const insn_t &) - @param n: number of operand: (0.. UA_MAXOP -1) -1 if error, return - BADADDR (C++: int) - @return: BADADDR if some error (issue a warning if stack frame is - bad) + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) Help on function define_stkvar in module ida_frame: define_stkvar(*args) -> 'bool' define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool - - Define/redefine a stack variable. - @param pfn: pointer to function (C++: func_t *) - @param name: variable name, NULL means autogenerate a name (C++: const - char *) - @param off: offset of the stack variable in the frame. negative values - denote local variables, positive - function arguments. - (C++: sval_t) - @param flags: variable type flags ( byte_flag() for a byte variable, - for example) (C++: flags_t) - @param ti: additional type information (like offsets, structs, etc) - (C++: const opinfo_t *) - @param nbytes: number of bytes occupied by the variable (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags64_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable @return: success Help on function del_frame in module ida_frame: del_frame(*args) -> 'bool' del_frame(pfn) -> bool - - Delete a function frame. - @param pfn: pointer to function structure (C++: func_t *) + @param pfn: (C++: func_t *) pointer to function structure @return: success Help on function del_regvar in module ida_frame: del_regvar(*args) -> 'int' del_regvar(pfn, ea1, ea2, canon) -> int - - Delete a register variable definition. - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses within the function where the - definition holds (C++: ea_t) - @param ea2: range of addresses within the function where the - definition holds (C++: ea_t) - @param canon: name of a general register (C++: const char *) + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register @return: Register variable error codes Help on function del_stkpnt in module ida_frame: del_stkpnt(*args) -> 'bool' del_stkpnt(pfn, ea) -> bool - - Delete SP register change point. - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address @return: success Help on function delete_unreferenced_stkvars in module ida_frame: delete_unreferenced_stkvars(*args) -> 'int' delete_unreferenced_stkvars(pfn) -> int + + @param pfn: func_t * Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) -> 'int' delete_wrong_stkvar_ops(pfn) -> int + + @param pfn: func_t * Help on function find_regvar in module ida_frame: find_regvar(*args) -> 'regvar_t *' find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + Find a register variable definition. + + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + + @return: nullptr-not found, otherwise ptr to regvar_t find_regvar(pfn, ea, canon) -> regvar_t - - Find a register variable definition (powerful version). One of 'canon' - and 'user' should be NULL. If both 'canon' and 'user' are NULL it - returns the first regvar definition in the range. - - @param pfn: function in question (C++: func_t *) - @param ea1: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param ea2: range of addresses to search. ea1==BADADDR means the - entire function (C++: ea_t) - @param canon: name of a general register (C++: const char *) - @param user: user-defined name for the register (C++: const char *) - @return: NULL-not found, otherwise ptr to regvar_t + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * Help on function frame_off_args in module ida_frame: frame_off_args(*args) -> 'ea_t' frame_off_args(pfn) -> ea_t - - Get starting address of arguments section. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_lvars in module ida_frame: frame_off_lvars(*args) -> 'ea_t' frame_off_lvars(pfn) -> ea_t - - Get start address of local variables section. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_retaddr in module ida_frame: frame_off_retaddr(*args) -> 'ea_t' frame_off_retaddr(pfn) -> ea_t - - Get starting address of return address section. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function frame_off_savregs in module ida_frame: frame_off_savregs(*args) -> 'ea_t' frame_off_savregs(pfn) -> ea_t - - Get starting address of saved registers section. + @param pfn: (C++: const func_t *) func_t const * + +Help on function free_regvar in module ida_frame: + +free_regvar(*args) -> 'void' + free_regvar(v) - @param pfn (C++: const func_t *) + @param v: regvar_t * Help on function get_effective_spd in module ida_frame: get_effective_spd(*args) -> 'sval_t' get_effective_spd(pfn, ea) -> sval_t + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. - - Get effective difference between the initial and current values of - ESP. This function returns the sp-diff used by the instruction. The - difference between 'get_spd()' and 'get_effective_spd()' is present - only for instructions like "pop [esp+N]": they modify sp and use the - modified value. - - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address @return: 0 or the difference, usually a negative number Help on function get_frame in module ida_frame: get_frame(*args) -> 'struc_t *' get_frame(pfn) -> struc_t - get_frame(ea) -> struc_t * - - Get pointer to function frame. - @param pfn: pointer to function structure (C++: const func_t *) + @param pfn: func_t const * + + get_frame(ea) -> struc_t * + + @param ea: ea_t Help on function get_frame_part in module ida_frame: get_frame_part(*args) -> 'void' get_frame_part(range, pfn, part) - - Get offsets of the frame part in the frame. - @param range: pointer to the output buffer with the frame part - start/end(exclusive) offsets, can't be NULL (C++: - range_t *) - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) - @param part: frame part (C++: frame_part_t) + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part Help on function get_frame_retsize in module ida_frame: get_frame_retsize(*args) -> 'int' get_frame_retsize(pfn) -> int - - Get size of function return address. - @param pfn: pointer to function structure, can't be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr Help on function get_frame_size in module ida_frame: get_frame_size(*args) -> 'asize_t' get_frame_size(pfn) -> asize_t + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. - - Get full size of a function frame. This function takes into account - size of local variables + size of saved registers + size of return - address + number of purged bytes. The purged bytes correspond to the - arguments of the functions with __stdcall and __fastcall calling - conventions. - - @param pfn: pointer to function structure, may be NULL (C++: const - func_t *) + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr @return: size of frame in bytes or zero Help on function get_func_by_frame in module ida_frame: get_func_by_frame(*args) -> 'ea_t' get_func_by_frame(frame_id) -> ea_t + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 - - Get function by its frame id.this function works only with databases - created by IDA > 5.6 - - @param frame_id: id of the function frame (C++: tid_t) - @return: start address of the function or BADADDR + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR Help on function get_min_spd_ea in module ida_frame: get_min_spd_ea(*args) -> 'ea_t' get_min_spd_ea(pfn) -> ea_t + + @param pfn: func_t * Help on function get_sp_delta in module ida_frame: get_sp_delta(*args) -> 'sval_t' get_sp_delta(pfn, ea) -> sval_t - - Get modification of SP made at the specified location - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address (C++: ea_t) - @return: 0 if the specified location doesn't contain a SP change - point. otherwise return delta of SP modification. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. Help on function get_spd in module ida_frame: get_spd(*args) -> 'sval_t' get_spd(pfn, ea) -> sval_t - - Get difference between the initial and current values of ESP. - @param pfn: pointer to function. may be NULL. (C++: func_t *) - @param ea: linear address of an instruction (C++: ea_t) - @return: 0 or the difference, usually a negative number. returns the - sp-diff before executing the instruction. + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. Help on function get_stkvar in module ida_frame: get_stkvar(*args) -> 'PyObject *' - get_stkvar(insn, op, v) -> PyObject * - - + get_stkvar(insn, op, v) -> (member_t, int) or None Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) @param op: reference to instruction operand @param v: immediate value in the operand (usually op.addr) - @return: - - None on failure + @return: - None on failure - tuple(member_t, actval) where actval: actual value used to fetch stack variable @@ -10860,85 +11157,42 @@ Help on function has_regvar in module ida_frame: has_regvar(*args) -> 'bool' has_regvar(pfn, ea) -> bool - - Is there a register variable definition? - @param pfn: function in question (C++: func_t *) - @param ea: current address (C++: ea_t) + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address Help on function is_funcarg_off in module ida_frame: is_funcarg_off(*args) -> 'bool' is_funcarg_off(pfn, frameoff) -> bool - - Does the given offset lie within the arguments section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) - -Help on class llabel_t in module ida_frame: - -class llabel_t(builtins.object) - | Proxy of C++ llabel_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> llabel_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_llabel_t(...) - | delete_llabel_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | ea - | llabel_t_ea_get(self) -> ea_t - | - | name - | llabel_t_name_get(self) -> char * - | - | thisown - | The membership flag + @param pfn: func_t const * + @param frameoff: uval_t Help on function lvar_off in module ida_frame: lvar_off(*args) -> 'sval_t' lvar_off(pfn, frameoff) -> sval_t - - Does the given offset lie within the local variables section? - - - @param pfn (C++: const func_t *) - @param frameoff (C++: uval_t) + @param pfn: func_t const * + @param frameoff: uval_t Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' recalc_spd(cur_ea) -> bool - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on class regvar_t in module ida_frame: @@ -10954,69 +11208,106 @@ class regvar_t(ida_range.range_t) | | __init__(self, *args) | __init__(self) -> regvar_t + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_regvar_t(...) | delete_regvar_t(self) | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regvar_t & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | | canon - | regvar_t_canon_get(self) -> char * + | canon | | cmt - | regvar_t_cmt_get(self) -> char * + | cmt | | thisown | The membership flag | | user - | regvar_t_user_get(self) -> char * + | user | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11027,15 +11318,11 @@ class regvar_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -11046,76 +11333,63 @@ Help on function rename_regvar in module ida_frame: rename_regvar(*args) -> 'int' rename_regvar(pfn, v, user) -> int - - Rename a register variable. - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param user: new user-defined name for the register (C++: const char - *) + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register @return: Register variable error codes Help on function set_frame_size in module ida_frame: set_frame_size(*args) -> 'bool' set_frame_size(pfn, frsize, frregs, argsize) -> bool + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). - - Set size of function frame. Note: The returned size may not include - all stack arguments. It does so only for __stdcall and __fastcall - calling conventions. To get the entire frame size for all cases use - get_struc_size(get_frame(pfn)). - - @param pfn: pointer to function structure (C++: func_t *) - @param frsize: size of function local variables (C++: asize_t) - @param frregs: size of saved registers (C++: ushort) - @param argsize: size of function arguments that will be purged from - the stack upon return (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return @return: success Help on function set_purged in module ida_frame: set_purged(*args) -> 'bool' set_purged(ea, nbytes, override_old_value) -> bool + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. - - Set the number of purged bytes for a function or data item (funcptr). - This function will update the database and plan to reanalyze items - referencing the specified address. It works only for processors with - 'PR_PURGING' bit in 16 and 32 bit modes. - - @param ea: address of the function of item (C++: ea_t) - @param nbytes: number of purged bytes (C++: int) - @param override_old_value: may overwrite old information about purged - bytes (C++: bool) + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes @return: success Help on function set_regvar_cmt in module ida_frame: set_regvar_cmt(*args) -> 'int' set_regvar_cmt(pfn, v, cmt) -> int - - Set comment for a register variable. - @param pfn: function in question (C++: func_t *) - @param v: variable to rename (C++: regvar_t *) - @param cmt: new comment (C++: const char *) + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment @return: Register variable error codes Help on function soff_to_fpoff in module ida_frame: soff_to_fpoff(*args) -> 'sval_t' soff_to_fpoff(pfn, soff) -> sval_t + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). - - Convert struct offsets into fp-relative offsets. This function - converts the offsets inside the 'struc_t' object into the frame - pointer offsets (for example, EBP-relative). - - @param pfn (C++: func_t *) - @param soff (C++: uval_t) + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11126,24 +11400,36 @@ class stkpnt_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: stkpnt_t const & | | __repr__ = _swig_repr(self) | @@ -11152,6 +11438,8 @@ class stkpnt_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11163,10 +11451,10 @@ class stkpnt_t(builtins.object) | list of weak references to the object (if defined) | | ea - | stkpnt_t_ea_get(self) -> ea_t + | ea | | spd - | stkpnt_t_spd_get(self) -> sval_t + | spd | | thisown | The membership flag @@ -11185,24 +11473,36 @@ class stkpnts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: stkpnts_t const & | | __repr__ = _swig_repr(self) | @@ -11211,6 +11511,8 @@ class stkpnts_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11233,13 +11535,10 @@ Help on function update_fpd in module ida_frame: update_fpd(*args) -> 'bool' update_fpd(pfn, fpd) -> bool - - Update frame pointer delta. - @param pfn: pointer to function structure (C++: func_t *) - @param fpd: new fpd value. cannot be bigger than the local variable - range size. (C++: asize_t) + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. @return: success Help on class xreflist_entry_t in module ida_frame: @@ -11251,18 +11550,47 @@ class xreflist_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_xreflist_entry_t(...) | delete_xreflist_entry_t(self) | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: xreflist_entry_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -11273,16 +11601,16 @@ class xreflist_entry_t(builtins.object) | list of weak references to the object (if defined) | | ea - | xreflist_entry_t_ea_get(self) -> ea_t + | ea | | opnum - | xreflist_entry_t_opnum_get(self) -> uchar + | opnum | | thisown | The membership flag | | type - | xreflist_entry_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -11298,13 +11626,19 @@ class xreflist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) -> 'xreflist_entry_t const &' | __getitem__(self, i) -> xreflist_entry_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -11314,30 +11648,42 @@ class xreflist_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: xreflist_entry_t const & | | __swig_destroy__ = delete_xreflist_t(...) | delete_xreflist_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: xreflist_entry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: xreflist_entry_t const & | | at(self, *args) -> 'xreflist_entry_t const &' | at(self, _idx) -> xreflist_entry_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | begin(self) -> xreflist_entry_t - | begin(self) -> xreflist_entry_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -11350,39 +11696,58 @@ class xreflist_t(builtins.object) | | end(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | end(self) -> xreflist_entry_t - | end(self) -> xreflist_entry_t | | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | erase(self, it) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | | erase(self, first, last) -> xreflist_entry_t + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) -> 'xreflist_entry_t *' | extract(self) -> xreflist_entry_t | | find(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' | find(self, x) -> xreflist_entry_t - | find(self, x) -> xreflist_entry_t + | + | @param x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=xreflist_entry_t()) + | + | @param x: xreflist_entry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: xreflist_entry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: xreflist_entry_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | insert(self, it, x) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'xreflist_entry_t &' | push_back(self, x) + | + | @param x: xreflist_entry_t const & + | | push_back(self) -> xreflist_entry_t | | qclear(self, *args) -> 'void' @@ -11390,16 +11755,26 @@ class xreflist_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< xreflist_entry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -11421,241 +11796,457 @@ class xreflist_t(builtins.object) | | __hash__ = None -=== ida_frame EPYDOC INJECTIONS === -ida_frame.REGVAR_ERROR_ARG -""" -function arguments are bad +Module "ida_funcs"s docstring: """ +Routines for working with functions within the disassembled program. -ida_frame.REGVAR_ERROR_NAME -""" -the provided name(s) can't be accepted -""" +This file also contains routines for working with library signatures (e.g. +FLIRT). -ida_frame.REGVAR_ERROR_OK -""" -all ok -""" +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. -ida_frame.REGVAR_ERROR_RANGE -""" -the definition range is bad -""" +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" -ida_frame.STKVAR_VALID_SIZE -""" -x.dtyp contains correct variable type (for insns like 'lea' this bit -must be off) in general, dr_O references do not allow to determine the -variable size -""" -=== ida_frame EPYDOC INJECTIONS END === Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address @return: success Help on function add_func_ex in module ida_funcs: add_func_ex(*args) -> 'bool' add_func_ex(pfn) -> bool + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). - - Add a new function. If the fn->end_ea is 'BADADDR' , then IDA will try - to determine the function bounds by calling find_func_bounds(..., - 'FIND_FUNC_DEFINE' ). - - @param pfn: ptr to filled function structure (C++: func_t *) + @param pfn: (C++: func_t *) ptr to filled function structure @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) -> 'void' add_regarg(pfn, reg, tif, name) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * Help on function append_func_tail in module ida_funcs: append_func_tail(*args) -> 'bool' append_func_tail(pfn, ea1, ea2) -> bool + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. - - Append a new tail chunk to the function definition. If the tail - already exists, then it will simply be added to the function tail list - Otherwise a new tail will be created and its owner will be set to be - our function If a new tail cannot be created, then this function will - fail. - - @param pfn (C++: func_t *) - @param ea1: start of the tail. If a tail already exists at the - specified address it must start at 'ea1' (C++: ea_t) - @param ea2: end of the tail. If a tail already exists at the specified - address it must end at 'ea2'. If specified as BADADDR, IDA - will determine the end address itself. (C++: ea_t) + @param pfn: (C++: func_t *) pointer to the function + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. Help on function apply_idasgn_to in module ida_funcs: apply_idasgn_to(*args) -> 'int' apply_idasgn_to(signame, ea, is_startup) -> int - - Apply a signature file to the specified address. - @param signame: short name of signature file (the file name without - path) (C++: const char *) - @param ea: address to apply the signature (C++: ea_t) - @param is_startup: if set, then the signature is treated as a startup - one for startup signature ida doesn't rename the - first function of the applied module. (C++: bool) + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. @return: Library function codes Help on function apply_startup_sig in module ida_funcs: apply_startup_sig(*args) -> 'bool' apply_startup_sig(ea, startup) -> bool - - Apply a startup signature file to the specified address. - @param ea: address to apply the signature to; usually \inf{start_ea} - (C++: ea_t) - @param startup: the name of the signature file without path and - extension (C++: const char *) + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension @return: true if successfully applied the signature Help on function calc_func_size in module ida_funcs: calc_func_size(*args) -> 'asize_t' calc_func_size(pfn) -> asize_t + Calculate function size. This function takes into account all fragments of the + function. - - Calculate function size. This function takes into account all - fragments of the function. - - @param pfn: ptr to function structure (C++: func_t *) + @param pfn: (C++: func_t *) ptr to function structure Help on function calc_idasgn_state in module ida_funcs: calc_idasgn_state(*args) -> 'int' calc_idasgn_state(n) -> int - - Get state of a signature in the list of planned signatures - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: state of signature or IDASGN_BADARG + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG Help on function calc_thunk_func_target in module ida_funcs: calc_thunk_func_target(*args) calc_thunk_func_target(pfn) -> ea_t - - Calculate target of a thunk function. - @param pfn: pointer to function (may not be NULL) (C++: func_t *) - @return: the target function or BADADDR + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' del_func(ea) -> bool - - Delete a function. - @param ea: any address in the function entry chunk (C++: ea_t) + @param ea: (C++: ea_t) any address in the function entry chunk @return: success Help on function del_idasgn in module ida_funcs: del_idasgn(*args) -> 'int' del_idasgn(n) -> int - - Remove signature from the list of planned signatures. - @param n: number of signature in the list (0.. get_idasgn_qty() -1) - (C++: int) - @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED + +Help on class dyn_ea_array in module ida_funcs: + +class dyn_ea_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< ea_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_dyn_ea_array(...) + | delete_dyn_ea_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_range_array in module ida_funcs: + +class dyn_range_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< range_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | + | @param _data: range_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | __swig_destroy__ = delete_dyn_range_array(...) + | delete_dyn_range_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regarg_array in module ida_funcs: + +class dyn_regarg_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regarg_t const &' + | __getitem__(self, i) -> regarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | + | @param _data: regarg_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regarg_t const & + | + | __swig_destroy__ = delete_dyn_regarg_array(...) + | delete_dyn_regarg_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regvar_array in module ida_funcs: + +class dyn_regvar_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regvar_t const &' + | __getitem__(self, i) -> regvar_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | + | @param _data: regvar_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regvar_t const & + | + | __swig_destroy__ = delete_dyn_regvar_array(...) + | delete_dyn_regvar_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_stkpnt_array in module ida_funcs: + +class dyn_stkpnt_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'stkpnt_t const &' + | __getitem__(self, i) -> stkpnt_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | + | @param _data: stkpnt_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: stkpnt_t const & + | + | __swig_destroy__ = delete_dyn_stkpnt_array(...) + | delete_dyn_stkpnt_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag Help on function f_any in module ida_funcs: f_any(*args) -> 'bool' f_any(arg1, arg2) -> bool - - Helper function to accept any address. + + @param arg1: flags64_t + @param arg2: void * Help on function find_func_bounds in module ida_funcs: find_func_bounds(*args) -> 'int' find_func_bounds(nfn, flags) -> int + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. - - Determine the boundaries of a new function. This function tries to - find the start and end addresses of a new function. It calls the - module with \ph{func_bounds} in order to fine tune the function - boundaries. - - @param nfn: structure to fill with information \ nfn->start_ea points - to the start address of the new function. (C++: func_t *) - @param flags: Find function bounds flags (C++: int) + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags @return: Find function bounds result codes +Help on function free_regarg in module ida_funcs: + +free_regarg(*args) -> 'void' + free_regarg(v) + + @param v: regarg_t * + Help on function func_contains in module ida_funcs: func_contains(*args) -> 'bool' func_contains(pfn, ea) -> bool - - Does the given function contain the given address? - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function func_does_return in module ida_funcs: func_does_return(*args) -> 'bool' func_does_return(callee) -> bool + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. - - Does the function return?. To calculate the answer, 'FUNC_NORET' flag - and is_noret() are consulted The latter is required for imported - functions in the .idata section. Since in .idata we have only function - pointers but not functions, we have to introduce a special flag for - them. - - @param callee (C++: ea_t) - -Help on function func_item_iterator_decode_preceding_insn in module ida_funcs: - -func_item_iterator_decode_preceding_insn(*args) -> 'bool' - func_item_iterator_decode_preceding_insn(fii, visited, p_farref, out) -> bool - -Help on function func_item_iterator_decode_prev_insn in module ida_funcs: - -func_item_iterator_decode_prev_insn(*args) -> 'bool' - func_item_iterator_decode_prev_insn(fii, out) -> bool - -Help on function func_item_iterator_next in module ida_funcs: - -func_item_iterator_next(*args) -> 'bool' - func_item_iterator_next(fii, testf, ud) -> bool - -Help on function func_item_iterator_prev in module ida_funcs: - -func_item_iterator_prev(*args) -> 'bool' - func_item_iterator_prev(fii, testf, ud) -> bool + @param callee: (C++: ea_t) Help on class func_item_iterator_t in module ida_funcs: @@ -11667,30 +12258,56 @@ class func_item_iterator_t(builtins.object) | __init__(self, *args) | __init__(self) -> func_item_iterator_t | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items | | __next__(self, *args) -> 'bool' - | __next__(self, func, ud) -> bool + | __next__(self, func) -> bool + | + | @param func: testf_t * | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_item_iterator_t(...) | delete_func_item_iterator_t(self) | + | addresses(self) + | Provide an iterator on addresses contained within the function + | | chunk(self, *args) -> 'range_t const &' | chunk(self) -> range_t | + | code_items(self) + | Provide an iterator on code items contained within the function + | | current(self, *args) -> 'ea_t' | current(self) -> ea_t | + | data_items(self) + | Provide an iterator on data items contained within the function + | | decode_preceding_insn(self, *args) -> 'bool' | decode_preceding_insn(self, visited, p_farref, out) -> bool + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * | | decode_prev_insn(self, *args) -> 'bool' | decode_prev_insn(self, out) -> bool + | + | @param out: insn_t * | | first(self, *args) -> 'bool' | first(self) -> bool | + | head_items(self) + | Provide an iterator on item heads contained within the function + | | last(self, *args) -> 'bool' | last(self) -> bool | @@ -11711,8 +12328,13 @@ class func_item_iterator_t(builtins.object) | next_not_tail(self, *args) -> 'bool' | next_not_tail(self) -> bool | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | | prev(self, *args) -> 'bool' - | prev(self, func, ud) -> bool + | prev(self, func) -> bool + | + | @param func: testf_t * | | prev_addr(self, *args) -> 'bool' | prev_addr(self) -> bool @@ -11731,9 +12353,27 @@ class func_item_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, pfn, _ea=BADADDR) -> bool + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool + | Set an arbitrary range. + | + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) -> 'bool' + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) -> 'bool' + | succ_code(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11751,6 +12391,9 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) -> 'bool' func_parent_iterator_set(fpi, pfn) -> bool + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -11762,6 +12405,11 @@ class func_parent_iterator_t(builtins.object) | __init__(self, *args) | __init__(self) -> func_parent_iterator_t | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -11787,9 +12435,13 @@ class func_parent_iterator_t(builtins.object) | | reset_fnt(self, *args) -> 'void' | reset_fnt(self, _fnt) + | + | @param _fnt: func_t * | | set(self, *args) -> 'bool' | set(self, _fnt) -> bool + | + | @param _fnt: func_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11816,96 +12468,122 @@ class func_t(ida_range.range_t) | Methods defined here: | | __get_points__(self, *args) -> 'dynamic_wrapped_array_t< stkpnt_t >' - | __get_points__(self) -> stkpnt_array + | __get_points__(self) -> dyn_stkpnt_array + | + | __get_referers__(self, *args) -> 'dynamic_wrapped_array_t< ea_t >' + | __get_referers__(self) -> dyn_ea_array + | + | __get_regargs__(self, *args) -> 'dynamic_wrapped_array_t< regarg_t >' + | __get_regargs__(self) -> dyn_regarg_array | | __get_regvars__(self, *args) -> 'dynamic_wrapped_array_t< regvar_t >' - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | __get_tails__(self, *args) -> 'dynamic_wrapped_array_t< range_t >' - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags64_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_func_t(...) | delete_func_t(self) | + | addresses(self) + | Alias for func_item_iterator_t(self).addresses() + | | analyzed_sp(self, *args) -> 'bool' | analyzed_sp(self) -> bool + | Has SP-analysis been performed? + | + | code_items(self) + | Alias for func_item_iterator_t(self).code_items() + | + | data_items(self) + | Alias for func_item_iterator_t(self).data_items() | | does_return(self, *args) -> 'bool' | does_return(self) -> bool + | Does function return? + | + | head_items(self) + | Alias for func_item_iterator_t(self).head_items() | | is_far(self, *args) -> 'bool' | is_far(self) -> bool + | Is a far function? | | need_prolog_analysis(self, *args) -> 'bool' | need_prolog_analysis(self) -> bool + | Needs prolog analysis? + | + | not_tails(self) + | Alias for func_item_iterator_t(self).not_tails() | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argsize - | func_t_argsize_get(self) -> asize_t + | argsize | | color - | func_t_color_get(self) -> bgcolor_t + | color | | flags - | func_t_flags_get(self) -> uint64 + | flags | | fpd - | func_t_fpd_get(self) -> asize_t + | fpd | | frame - | func_t_frame_get(self) -> uval_t + | frame | | frregs - | func_t_frregs_get(self) -> ushort + | frregs | | frsize - | func_t_frsize_get(self) -> asize_t - | - | llabelqty - | func_t_llabelqty_get(self) -> int - | - | llabels - | func_t_llabels_get(self) -> llabel_t * + | frsize | | owner - | func_t_owner_get(self) -> ea_t + | owner | | pntqty - | func_t_pntqty_get(self) -> uint32 + | pntqty | | points - | __get_points__(self) -> stkpnt_array + | __get_points__(self) -> dyn_stkpnt_array | | referers - | func_t_referers_get(self) -> ea_t * + | __get_referers__(self) -> dyn_ea_array | | refqty - | func_t_refqty_get(self) -> int + | refqty | | regargqty - | func_t_regargqty_get(self) -> int + | regargqty | | regargs - | func_t_regargs_get(self) -> regarg_t + | __get_regargs__(self) -> dyn_regarg_array | | regvarqty - | func_t_regvarqty_get(self) -> int + | regvarqty | | regvars - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | tailqty - | func_t_tailqty_get(self) -> int + | tailqty | | tails - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | thisown | The membership flag @@ -11915,43 +12593,72 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11962,15 +12669,11 @@ class func_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -11981,16 +12684,25 @@ Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) -> 'func_t *' func_t__from_ptrval__(ptrval) -> func_t + + @param ptrval: size_t Help on function func_tail_iterator_set in module ida_funcs: func_tail_iterator_set(*args) -> 'bool' func_tail_iterator_set(fti, pfn, ea) -> bool + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t Help on function func_tail_iterator_set_ea in module ida_funcs: func_tail_iterator_set_ea(*args) -> 'bool' func_tail_iterator_set_ea(fti, ea) -> bool + + @param fti: func_tail_iterator_t * + @param ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -12002,6 +12714,12 @@ class func_tail_iterator_t(builtins.object) | __init__(self, *args) | __init__(self) -> func_tail_iterator_t | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -12030,12 +12748,20 @@ class func_tail_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, _pfn, ea=BADADDR) -> bool + | + | @param _pfn: func_t * + | @param ea: ea_t | | set_ea(self, *args) -> 'bool' | set_ea(self, ea) -> bool + | + | @param ea: ea_t | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool + | + | @param ea1: ea_t + | @param ea2: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12053,8 +12779,6 @@ Help on function get_current_idasgn in module ida_funcs: get_current_idasgn(*args) -> 'int' get_current_idasgn() -> int - - Get number of the the current signature. @return: 0..n-1 @@ -12063,158 +12787,136 @@ Help on function get_fchunk in module ida_funcs: get_fchunk(*args) -> 'func_t *' get_fchunk(ea) -> func_t - - Get pointer to function chunk structure by address. - @param ea: any address in a function chunk (C++: ea_t) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function get_fchunk_num in module ida_funcs: get_fchunk_num(*args) -> 'int' get_fchunk_num(ea) -> int + Get ordinal number of a function chunk in the global list of function chunks. - - Get ordinal number of a function chunk in the global list of function - chunks. - - @param ea: any address in the function chunk (C++: ea_t) - @return: number of function chunk (0.. get_fchunk_qty() -1). -1 means - 'no function chunk at the specified address'. + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. Help on function get_fchunk_qty in module ida_funcs: get_fchunk_qty(*args) -> 'size_t' get_fchunk_qty() -> size_t - - Get total number of function chunks in the program. Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t Help on function get_func in module ida_funcs: get_func(*args) -> 'func_t *' get_func(ea) -> func_t - - Get pointer to function structure by address. - @param ea: any address in a function (C++: ea_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function get_func_bitness in module ida_funcs: get_func_bitness(*args) -> 'int' get_func_bitness(pfn) -> int - - Get function bitness (which is equal to the function segment bitness). - pfn==NULL => returns 0 + pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bits in module ida_funcs: get_func_bits(*args) -> 'int' get_func_bits(pfn) -> int - - Get number of bits in the function addressing. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_bytes in module ida_funcs: get_func_bytes(*args) -> 'int' get_func_bytes(pfn) -> int - - Get number of bytes in the function addressing. - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function get_func_chunknum in module ida_funcs: get_func_chunknum(*args) -> 'int' get_func_chunknum(pfn, ea) -> int - - Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on function get_func_cmt in module ida_funcs: get_func_cmt(*args) -> 'qstring *' get_func_cmt(pfn, repeatable) -> str - - Get function comment. - @param pfn: ptr to function structure (C++: const func_t *) - @param repeatable: get repeatable comment? (C++: bool) - @return: size of comment or -1 In fact this function works with - function chunks too. + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. Help on function get_func_name in module ida_funcs: get_func_name(*args) -> 'qstring *' get_func_name(ea) -> str - - Get function name. - @param ea: any address in the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function @return: length of the function name Help on function get_func_num in module ida_funcs: get_func_num(*args) -> 'int' get_func_num(ea) -> int - - Get ordinal number of a function. - @param ea: any address in the function (C++: ea_t) - @return: number of function (0.. get_func_qty() -1). -1 means 'no - function at the specified address'. + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. Help on function get_func_qty in module ida_funcs: get_func_qty(*args) -> 'size_t' get_func_qty() -> size_t - - Get total number of functions in the program. Help on function get_func_ranges in module ida_funcs: get_func_ranges(*args) -> 'ea_t' get_func_ranges(ranges, pfn) -> ea_t - - Get function ranges. - @param ranges: buffer to receive the range info (C++: rangeset_t *) - @param pfn: ptr to function structure (C++: func_t *) + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure @return: end address of the last function range (BADADDR-error) Help on function get_idasgn_desc in module ida_funcs: get_idasgn_desc(*args) -> 'PyObject *' - get_idasgn_desc(n) -> PyObject * - - + get_idasgn_desc(n) -> (str, str) Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -12226,9 +12928,7 @@ get_idasgn_desc(*args) -> 'PyObject *' Help on function get_idasgn_desc_with_matches in module ida_funcs: get_idasgn_desc_with_matches(*args) -> 'PyObject *' - get_idasgn_desc_with_matches(n) -> PyObject * - - + get_idasgn_desc_with_matches(n) -> (str, str, int) Get information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -12239,10 +12939,7 @@ Help on function get_idasgn_qty in module ida_funcs: get_idasgn_qty(*args) -> 'int' get_idasgn_qty() -> int - - - Get number of signatures in the list of planned and applied - signatures. + Get number of signatures in the list of planned and applied signatures. @return: 0..n @@ -12250,161 +12947,132 @@ Help on function get_idasgn_title in module ida_funcs: get_idasgn_title(*args) -> 'qstring *' get_idasgn_title(name) -> str - - Get full description of the signature by its short name. - @param name: short name of a signature (C++: const char *) + @param name: (C++: const char *) short name of a signature @return: size of signature description or -1 Help on function get_next_fchunk in module ida_funcs: get_next_fchunk(*args) -> 'func_t *' get_next_fchunk(ea) -> func_t - - Get pointer to the next function chunk in the global list. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if next function chunk doesn't - exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist Help on function get_next_func in module ida_funcs: get_next_func(*args) -> 'func_t *' get_next_func(ea) -> func_t - - Get pointer to the next function. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if next function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist Help on function get_next_func_addr in module ida_funcs: get_next_func_addr(*args) -> 'ea_t' get_next_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t Help on function get_prev_fchunk in module ida_funcs: get_prev_fchunk(*args) -> 'func_t *' get_prev_fchunk(ea) -> func_t - - Get pointer to the previous function chunk in the global list. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function chunk or NULL if previous function chunk - doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist Help on function get_prev_func in module ida_funcs: get_prev_func(*args) -> 'func_t *' get_prev_func(ea) -> func_t - - Get pointer to the previous function. - @param ea: any address in the program (C++: ea_t) - @return: ptr to function or NULL if previous function doesn't exist + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist Help on function get_prev_func_addr in module ida_funcs: get_prev_func_addr(*args) -> 'ea_t' get_prev_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t Help on function getn_fchunk in module ida_funcs: getn_fchunk(*args) -> 'func_t *' getn_fchunk(n) -> func_t - - Get pointer to function chunk structure by number. - @param n: number of function chunk, is in range 0.. get_fchunk_qty() - -1 (C++: int) - @return: ptr to a function chunk or NULL. This function may return a - function entry as well as a function tail. + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. Help on function getn_func in module ida_funcs: getn_func(*args) -> 'func_t *' getn_func(n) -> func_t - - Get pointer to function structure by number. - @param n: number of function, is in range 0.. get_func_qty() -1 (C++: - size_t) - @return: ptr to a function or NULL. This function returns a function - entry chunk. + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. Help on function is_finally_visible_func in module ida_funcs: is_finally_visible_func(*args) -> 'bool' is_finally_visible_func(pfn) -> bool + Is the function visible (event after considering SCF_SHHID_FUNC)? - - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - - - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on function is_func_entry in module ida_funcs: is_func_entry(*args) -> 'bool' is_func_entry(pfn) -> bool - - Does function describe a function entry chunk? - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_locked in module ida_funcs: is_func_locked(*args) -> 'bool' is_func_locked(pfn) -> bool - - Is the function pointer locked? - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_func_tail in module ida_funcs: is_func_tail(*args) -> 'bool' is_func_tail(pfn) -> bool - - Does function describe a function tail chunk? - - @param pfn (C++: const func_t *) + @param pfn: (C++: const func_t *) func_t const * Help on function is_same_func in module ida_funcs: is_same_func(*args) -> 'bool' is_same_func(ea1, ea2) -> bool - - Do two addresses belong to the same function? - - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) Help on function is_visible_func in module ida_funcs: is_visible_func(*args) -> 'bool' is_visible_func(pfn) -> bool - - Is the function visible (not hidden)? - - @param pfn (C++: func_t *) + @param pfn: (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -12415,6 +13083,8 @@ class lock_func(builtins.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func + | + | @param _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -12437,106 +13107,51 @@ Help on function lock_func_range in module ida_funcs: lock_func_range(*args) -> 'void' lock_func_range(pfn, lock) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. - - Lock function pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param pfn (C++: const func_t *) - @param lock (C++: bool) + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' plan_to_apply_idasgn(fname) -> int - - Add a signature file to the list of planned signature files. - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures - -Help on class range_array in module ida_funcs: - -class range_array(builtins.object) - | Proxy of C++ dynamic_wrapped_array_t< range_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'range_t const &' - | __getitem__(self, i) -> range_t - | - | __init__(self, *args) - | __init__(self, _data, _count) -> range_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_range_array(...) - | delete_range_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | range_array_count_get(self) -> size_t - | - | data - | range_array_data_get(self) -> range_t - | - | thisown - | The membership flag + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function read_regargs in module ida_funcs: read_regargs(*args) -> 'void' read_regargs(pfn) + + @param pfn: func_t * Help on function reanalyze_function in module ida_funcs: reanalyze_function(*args) -> 'void' reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. - - Reanalyze a function. This function plans to analyzes all chunks of - the given function. Optional parameters (ea1, ea2) may be used to - narrow the analyzed range. - - @param pfn: pointer to a function (C++: func_t *) - @param ea1: start of the range to analyze (C++: ea_t) - @param ea2: end of range to analyze (C++: ea_t) - @param analyze_parents: meaningful only if pfn points to a function - tail. if true, all tail parents will be - reanalyzed. if false, only the given tail will - be reanalyzed. (C++: bool) + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. Help on function reanalyze_noret_flag in module ida_funcs: reanalyze_noret_flag(*args) -> 'bool' reanalyze_noret_flag(ea) -> bool + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. - - Plan to reanalyze noret flag. This function does not remove FUNC_NORET - if it is already present. It just plans to reanalysis. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -12547,12 +13162,20 @@ class regarg_t(builtins.object) | | __init__(self, *args) | __init__(self) -> regarg_t + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_regarg_t(...) | delete_regarg_t(self) | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regarg_t & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -12563,441 +13186,129 @@ class regarg_t(builtins.object) | list of weak references to the object (if defined) | | name - | regarg_t_name_get(self) -> char * + | name | | reg - | regarg_t_reg_get(self) -> int + | reg | | thisown | The membership flag | | type - | regarg_t_type_get(self) -> type_t * - -Help on class regvar_array in module ida_funcs: - -class regvar_array(builtins.object) - | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'regvar_t const &' - | __getitem__(self, i) -> regvar_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> regvar_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_regvar_array(...) - | delete_regvar_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | regvar_array_count_get(self) -> size_t - | - | data - | regvar_array_data_get(self) -> regvar_t * - | - | thisown - | The membership flag + | type Help on function remove_func_tail in module ida_funcs: remove_func_tail(*args) -> 'bool' remove_func_tail(pfn, tail_ea) -> bool + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. - - Remove a function tail. If the tail belongs only to one function, it - will be completely removed. Otherwise if the function was the tail - owner, the first function using this tail becomes the owner of the - tail. - - @param pfn (C++: func_t *) - @param tail_ea (C++: ea_t) + @param pfn: (C++: func_t *) pointer to the function + @param tail_ea: (C++: ea_t) any address inside the tail to remove Help on function set_func_cmt in module ida_funcs: set_func_cmt(*args) -> 'bool' set_func_cmt(pfn, cmt, repeatable) -> bool - - Set function comment. This function works with function chunks too. - @param pfn: ptr to function structure (C++: const func_t *) - @param cmt: comment string, may be multiline (with ' '). Use empty - str ("") to delete comment (C++: const char *) - @param repeatable: set repeatable comment? (C++: bool) + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' set_func_end(ea, newend) -> bool - - Move function chunk end address. - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function @return: success Help on function set_func_name_if_jumpfunc in module ida_funcs: set_func_name_if_jumpfunc(*args) -> 'int' set_func_name_if_jumpfunc(pfn, oldname) -> int + Give a meaningful name to function if it consists of only 'jump' instruction. - - Give a meaningful name to function if it consists of only 'jump' - instruction. - - @param pfn: pointer to function (may be NULL) (C++: func_t *) - @param oldname: old name of function. if old name was in "j_..." form, - then we may discard it and set a new name. if oldname - is not known, you may pass NULL. (C++: const char *) + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. @return: success Help on function set_func_start in module ida_funcs: set_func_start(*args) -> 'int' set_func_start(ea, newstart) -> int - - Move function chunk start address. - @param ea: any address in the function (C++: ea_t) - @param newstart: new end address of the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function @return: Function move result codes Help on function set_noret_insn in module ida_funcs: set_noret_insn(*args) -> 'bool' set_noret_insn(insn_ea, noret) -> bool + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() - - Signal a non-returning instruction. This function can be used by the - processor module to tell the kernel about non-returning instructions - (like call exit). The kernel will perform the global function analysis - and find out if the function returns at all. This analysis will be - done at the first call to 'func_does_return()' - - @param insn_ea (C++: ea_t) - @param noret (C++: bool) + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) @return: true if the instruction 'noret' flag has been changed Help on function set_tail_owner in module ida_funcs: set_tail_owner(*args) -> 'bool' - set_tail_owner(fnt, func_start) -> bool + set_tail_owner(fnt, new_owner) -> bool + Set a new owner of a function tail. The new owner function must be already + referring to the tail (after append_func_tail). - - Set a function as the possessing function of a function tail. The - function should already refer to the tail (after append_func_tail). - - @param fnt (C++: func_t *) - @param func_start (C++: ea_t) + @param fnt: (C++: func_t *) pointer to the function tail + @param new_owner: (C++: ea_t) the entry point of the new owner function Help on function set_visible_func in module ida_funcs: set_visible_func(*args) -> 'void' set_visible_func(pfn, visible) - - Set visibility of function. - - @param pfn (C++: func_t *) - @param visible (C++: bool) - -Help on class stkpnt_array in module ida_funcs: - -class stkpnt_array(builtins.object) - | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'stkpnt_t const &' - | __getitem__(self, i) -> stkpnt_t const & - | - | __init__(self, *args) - | __init__(self, _data, _count) -> stkpnt_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_stkpnt_array(...) - | delete_stkpnt_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | count - | stkpnt_array_count_get(self) -> size_t - | - | data - | stkpnt_array_data_get(self) -> stkpnt_t * - | - | thisown - | The membership flag + @param pfn: (C++: func_t *) + @param visible: (C++: bool) Help on function try_to_add_libfunc in module ida_funcs: try_to_add_libfunc(*args) -> 'int' try_to_add_libfunc(ea) -> int + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. - - Apply the currently loaded signature file to the specified address. If - a library function is found, then create a function and name it - accordingly. - - @param ea: any address in the program (C++: ea_t) + @param ea: (C++: ea_t) any address in the program @return: Library function codes Help on function update_func in module ida_funcs: update_func(*args) -> 'bool' update_func(pfn) -> bool + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. - - Update information about a function in the database ( 'func_t' ). You - must not change the function start and end addresses using this - function. Use 'set_func_start()' and 'set_func_end()' for it. - - @param pfn: ptr to function structure (C++: func_t *) + @param pfn: (C++: func_t *) ptr to function structure @return: success -=== ida_funcs EPYDOC INJECTIONS === -ida_funcs.FIND_FUNC_DEFINE -""" -create instruction if undefined byte is encountered +Module "ida_gdl"s docstring: """ +Low level graph drawing operations.""" -ida_funcs.FIND_FUNC_EXIST -""" -its bounds are returned in 'nfn'. - -function exists already. -""" - -ida_funcs.FIND_FUNC_IGNOREFN -""" -ignore existing function boundaries. by default the function returns -function boundaries if ea belongs to a function. -""" - -ida_funcs.FIND_FUNC_KEEPBD -""" -just create instructions inside the boundaries. - -do not modify incoming function boundaries, -""" - -ida_funcs.FIND_FUNC_NORMAL -""" -stop processing if undefined byte is encountered -""" - -ida_funcs.FIND_FUNC_OK -""" -ok, 'nfn' is ready for 'add_func()' -""" - -ida_funcs.FIND_FUNC_UNDEF -""" -nfn->end_ea will have the address of the unexplored byte. - -function has instructions that pass execution flow to unexplored -bytes. -""" - -ida_funcs.FUNC_BOTTOMBP -""" -BP points to the bottom of the stack frame. -""" - -ida_funcs.FUNC_FAR -""" -Far function. -""" - -ida_funcs.FUNC_FRAME -""" -Function uses frame pointer (BP) -""" - -ida_funcs.FUNC_FUZZY_SP -""" -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, -""" - -ida_funcs.FUNC_HIDDEN -""" -A hidden function chunk. -""" - -ida_funcs.FUNC_LIB -""" -Library function. -""" - -ida_funcs.FUNC_LUMINA -""" -Function info is provided by Lumina. -""" - -ida_funcs.FUNC_NORET -""" -Function doesn't return. -""" - -ida_funcs.FUNC_NORET_PENDING -""" -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. -""" - -ida_funcs.FUNC_PROLOG_OK -""" -by last SP-analysis - -Prolog analysis has be performed -""" - -ida_funcs.FUNC_PURGED_OK -""" -'argsize' field has been validated. If this bit is clear and 'argsize' -is 0, then we do not known the real number of bytes removed from the -stack. This bit is handled by the processor module. -""" - -ida_funcs.FUNC_SP_READY -""" -SP-analysis has been performed. If this flag is on, the stack change -points should not be not modified anymore. Currently this analysis is -performed only for PC -""" - -ida_funcs.FUNC_STATICDEF -""" -Static function. -""" - -ida_funcs.FUNC_TAIL -""" -This is a function tail. Other bits must be clear (except -'FUNC_HIDDEN' ). -""" - -ida_funcs.FUNC_THUNK -""" -Thunk (jump) function. -""" - -ida_funcs.FUNC_USERFAR -""" -of the function - -User has specified far-ness -""" - -ida_funcs.IDASGN_APPLIED -""" -signature is already applied -""" - -ida_funcs.IDASGN_BADARG -""" -bad number of signature -""" - -ida_funcs.IDASGN_CURRENT -""" -signature is currently being applied -""" - -ida_funcs.IDASGN_OK -""" -ok -""" - -ida_funcs.IDASGN_PLANNED -""" -signature is planned to be applied -""" - -ida_funcs.LIBFUNC_DELAY -""" -no decision because of lack of information -""" - -ida_funcs.LIBFUNC_FOUND -""" -ok, library function is found -""" - -ida_funcs.LIBFUNC_NONE -""" -no, this is not a library function -""" - -ida_funcs.MOVE_FUNC_BADSTART -""" -bad new start address -""" - -ida_funcs.MOVE_FUNC_NOCODE -""" -no instruction at 'newstart' -""" - -ida_funcs.MOVE_FUNC_NOFUNC -""" -no function at 'ea' -""" - -ida_funcs.MOVE_FUNC_OK -""" -ok -""" - -ida_funcs.MOVE_FUNC_REFUSED -""" -a plugin refused the action -""" -=== ida_funcs EPYDOC INJECTIONS END === Help on class BasicBlock in module ida_gdl: class BasicBlock(builtins.object) @@ -13022,10 +13333,6 @@ class BasicBlock(builtins.object) | | __weakref__ | list of weak references to the object (if defined) - | - | endEA - | - | startEA Help on class FlowChart in module ida_gdl: @@ -13044,7 +13351,7 @@ class FlowChart(builtins.object) | Constructor | @param f: A func_t type, use get_func(ea) to get a reference | @param bounds: A tuple of the form (start, end). Used if "f" is None - | @param flags: one of the FC_xxxx flags. One interesting flag is FC_PREDS + | @param flags: one of the FC_xxxx flags. | | __iter__(self) | @@ -13064,115 +13371,380 @@ class FlowChart(builtins.object) | | size +Help on class cancellable_graph_t in module ida_gdl: + +class cancellable_graph_t(gdl_graph_t) + | Proxy of C++ cancellable_graph_t class. + | + | Method resolution order: + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> cancellable_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cancellable_graph_t(...) + | delete_cancellable_graph_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cancelled + | cancelled + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + Help on function display_gdl in module ida_gdl: display_gdl(*args) -> 'int' display_gdl(fname) -> int + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. - - Display GDL file by calling wingraph32. The exact name of the grapher - is taken from the configuration file and set up by - 'setup_graph_subsystem()' . - - @param fname (C++: const char *) + @param fname: (C++: const char *) char const * @return: error code from os, 0 if ok +Help on class gdl_graph_t in module ida_gdl: + +class gdl_graph_t(builtins.object) + | Proxy of C++ gdl_graph_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + Help on function gen_complex_call_chart in module ida_gdl: gen_complex_call_chart(*args) -> 'bool' gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool - - Build and display a complex xref graph. - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param ea1: address range (C++: ea_t) - @param ea2: address range (C++: ea_t) - @param flags: combination of Call chart building flags and Flow - graph building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @param recursion_depth: optional limit of recursion (C++: int32) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen Help on function gen_flow_graph in module ida_gdl: gen_flow_graph(*args) -> 'bool' gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool - - Build and display a flow graph. - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param title: graph title (C++: const char *) - @param pfn: function to graph (C++: func_t *) - @param ea1: if pfn == NULL, then the address range (C++: ea_t) - @param ea2: if pfn == NULL, then the address range (C++: ea_t) - @param gflags: combination of Flow graph building flags . if none of - CHART_GEN_DOT , CHART_GEN_GDL , CHART_WINGRAPH is - specified, the function will return false (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen Help on function gen_gdl in module ida_gdl: gen_gdl(*args) -> 'void' gen_gdl(g, fname) - - Create GDL file for graph. - - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * Help on function gen_simple_call_chart in module ida_gdl: gen_simple_call_chart(*args) -> 'bool' gen_simple_call_chart(filename, wait, title, gflags) -> bool - - Build and display a simple function call graph. - @param filename: output file name. the file extension is not used. - maybe NULL. (C++: const char *) - @param wait: message to display during graph building (C++: const char - *) - @param title: graph title (C++: const char *) - @param gflags: combination of CHART_NOLIBFUNCS and Flow graph - building flags . if none of CHART_GEN_DOT , - CHART_GEN_GDL , CHART_WINGRAPH is specified, the - function will return false. (C++: int) - @return: success. if fails, a warning message is displayed on the - screen + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen Help on function is_noret_block in module ida_gdl: is_noret_block(*args) -> 'bool' is_noret_block(btype) -> bool - - Does this block never return? - - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on function is_ret_block in module ida_gdl: is_ret_block(*args) -> 'bool' is_ret_block(btype) -> bool - - Does this block return? - - @param btype (C++: fc_block_type_t) + @param btype: (C++: fc_block_type_t) enum fc_block_type_t Help on class node_iterator in module ida_gdl: @@ -13183,12 +13755,19 @@ class node_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | + | @param n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator + | + | @param _g: gdl_graph_t const * + | @param n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | + | @param n: node_iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -13246,43 +13825,72 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13293,15 +13901,11 @@ class qbasic_block_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -13310,17 +13914,31 @@ class qbasic_block_t(ida_range.range_t) Help on class qflow_chart_t in module ida_gdl: -class qflow_chart_t(builtins.object) +class qflow_chart_t(cancellable_graph_t) | Proxy of C++ qflow_chart_t class. | + | Method resolution order: + | qflow_chart_t + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | | Methods defined here: | | __getitem__(self, *args) -> 'qbasic_block_t *' | __getitem__(self, n) -> qbasic_block_t + | + | @param n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -13329,37 +13947,69 @@ class qflow_chart_t(builtins.object) | | append_to_flowchart(self, *args) -> 'void' | append_to_flowchart(self, ea1, ea2) + | + | @param ea1: ea_t + | @param ea2: ea_t | | calc_block_type(self, *args) -> 'fc_block_type_t' | calc_block_type(self, blknum) -> fc_block_type_t + | + | @param blknum: size_t | | create(self, *args) -> 'void' | create(self, _title, _pfn, _ea1, _ea2, _flags) + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int + | | create(self, _title, ranges, _flags) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int | | get_node_label(self, *args) -> 'char *' - | get_node_label(self, arg2, arg3, arg4) -> char * + | get_node_label(self, n) -> char * + | + | @param n: int | | is_noret_block(self, *args) -> 'bool' | is_noret_block(self, blknum) -> bool + | + | @param blknum: size_t | | is_ret_block(self, *args) -> 'bool' | is_ret_block(self, blknum) -> bool + | + | @param blknum: size_t | | npred(self, *args) -> 'int' | npred(self, node) -> int + | + | @param node: int | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int + | + | @param node: int | | pred(self, *args) -> 'int' | pred(self, node, i) -> int + | + | @param node: int + | @param i: int | | print_names(self, *args) -> 'bool' | print_names(self) -> bool | | print_node_attributes(self, *args) -> 'void' - | print_node_attributes(self, arg2, arg3) + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int | | refresh(self, *args) -> 'void' | refresh(self) @@ -13369,124 +14019,126 @@ class qflow_chart_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, node, i) -> int + | + | @param node: int + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | bounds + | bounds + | + | flags + | flags + | + | nproper + | nproper + | + | pfn + | pfn + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from cancellable_graph_t: + | + | __disown__(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cancellable_graph_t: + | + | cancelled + | cancelled + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) - | - | bounds - | qflow_chart_t_bounds_get(self) -> range_t - | - | flags - | qflow_chart_t_flags_get(self) -> int - | - | nproper - | qflow_chart_t_nproper_get(self) -> int - | - | pfn - | qflow_chart_t_pfn_get(self) -> func_t * - | - | thisown - | The membership flag - | - | title - | qflow_chart_t_title_get(self) -> qstring * -=== ida_gdl EPYDOC INJECTIONS === -ida_gdl.CHART_FOLLOW_DIRECTION -""" -analyze references to added blocks only in the direction of the -reference who discovered the current block +Module "ida_graph"s docstring: """ +Graph view management.""" -ida_gdl.CHART_GEN_DOT -""" -generate .dot file (file extension is forced to .dot) -""" - -ida_gdl.CHART_GEN_GDL -""" -generate .gdl file (file extension is forced to .gdl) -""" - -ida_gdl.CHART_IGNORE_LIB_FROM -""" -ignore references from library functions -""" - -ida_gdl.CHART_IGNORE_LIB_TO -""" -ignore references to library functions -""" - -ida_gdl.CHART_NOLIBFUNCS -""" -don't include library functions in the graph -""" - -ida_gdl.CHART_PRINT_DOTS -""" -print dots if xrefs exist outside of the range recursion depth -""" - -ida_gdl.CHART_PRINT_NAMES -""" -print labels for each block? -""" - -ida_gdl.CHART_RECURSIVE -""" -analyze added blocks -""" - -ida_gdl.CHART_REFERENCED -""" -references from the addresses in the list -""" - -ida_gdl.CHART_REFERENCING -""" -references to the addresses in the list -""" - -ida_gdl.CHART_WINGRAPH -""" -call grapher to display the graph -""" - -ida_gdl.FC_APPND -""" -multirange flowchart (set by append_to_flowchart) -""" - -ida_gdl.FC_CHKBREAK -""" -build_qflow_chart() may be aborted by user -""" - -ida_gdl.FC_NOEXT -""" -do not compute external blocks. Use this to prevent jumps leaving the -function from appearing in the flow chart. Unless specified, the -targets of those outgoing jumps will be present in the flow chart -under the form of one-instruction blocks -""" - -ida_gdl.FC_PREDS -""" -compute predecessor lists -""" - -ida_gdl.FC_PRINT -""" -print names (used only by display_flow_chart()) -""" -=== ida_gdl EPYDOC INJECTIONS END === Help on class GraphViewer in module ida_graph: class GraphViewer(ida_kernwin.CustomIDAMemo) @@ -13653,36 +14305,80 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from ida_kernwin.CustomIDAMemo: @@ -13707,6 +14403,9 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -13729,14 +14428,24 @@ class TPointDouble(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble | __init__(self, a, b) -> TPointDouble + | + | @param a: double + | @param b: double + | | __init__(self, r) -> TPointDouble + | + | @param r: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: TPointDouble const & | | __repr__ = _swig_repr(self) | @@ -13745,12 +14454,16 @@ class TPointDouble(builtins.object) | | add(self, *args) -> 'void' | add(self, r) + | + | @param r: TPointDouble const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'void' | sub(self, r) + | + | @param r: TPointDouble const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13765,119 +14478,293 @@ class TPointDouble(builtins.object) | The membership flag | | x - | TPointDouble_x_get(self) -> double + | x | | y - | TPointDouble_y_get(self) -> double + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None +Help on class abstract_graph_t in module ida_graph: + +class abstract_graph_t(ida_gdl.gdl_graph_t) + | Proxy of C++ abstract_graph_t class. + | + | Method resolution order: + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_abstract_graph_t(...) + | delete_abstract_graph_t(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + Help on function calc_dist in module ida_graph: calc_dist(*args) -> 'double' calc_dist(p, q) -> double - - Calculate distance between p and q. - - @param p (C++: point_t) - @param q (C++: point_t) + @param p: (C++: point_t) + @param q: (C++: point_t) Help on function clr_node_info in module ida_graph: clr_node_info(*args) -> 'void' clr_node_info(gid, node, flags) - - Clear node info for the given node. - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param flags: combination of Node info flags , identifying which - fields of node_info_t will be cleared (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared Help on function create_disasm_graph in module ida_graph: create_disasm_graph(*args) -> 'mutable_graph_t *' create_disasm_graph(ea) -> mutable_graph_t + Create a graph using an arbitrary set of ranges. + + @param ea: ea_t + create_disasm_graph(ranges) -> mutable_graph_t - - Create a graph for the function that contains 'ea'. - - - @param ea (C++: ea_t) + @param ranges: rangevec_t const & Help on function create_graph_viewer in module ida_graph: create_graph_viewer(*args) -> 'graph_viewer_t *' create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * - - Create a custom graph viewer. - @param title: the widget title (C++: const char *) - @param id: graph id (C++: uval_t) - @param callback: callback to handle graph notifications ( - graph_notification_t ) (C++: hook_cb_t *) - @param ud: user data passed to callback (C++: void *) - @param title_height: node title height (C++: int) - @param parent (C++: TWidget *) + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) the parent widget of the graph viewer @return: new viewer Help on function create_mutable_graph in module ida_graph: create_mutable_graph(*args) -> 'mutable_graph_t *' create_mutable_graph(id) -> mutable_graph_t - - Create a new empty graph with given id. - - @param id (C++: uval_t) + @param id: (C++: uval_t) Help on function create_user_graph_place in module ida_graph: create_user_graph_place(*args) -> 'user_graph_place_t *' create_user_graph_place(node, lnnum) -> user_graph_place_t + Get a copy of a user_graph_place_t (returns a pointer to static storage) - - Get a copy of a 'user_graph_place_t' (returns a pointer to static - storage) - - - @param node (C++: int) - @param lnnum (C++: int) + @param node: (C++: int) + @param lnnum: (C++: int) Help on function del_node_info in module ida_graph: del_node_info(*args) -> 'void' del_node_info(gid, node) + Delete the node_info_t for the given node. - - Delete the 'node_info_t' for the given node. - - - @param gid (C++: graph_id_t) - @param node (C++: int) + @param gid: (C++: graph_id_t) + @param node: (C++: int) Help on function delete_mutable_graph in module ida_graph: delete_mutable_graph(*args) -> 'void' delete_mutable_graph(g) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it - - Delete graph object.use this only if you are dealing with - 'mutable_graph_t' instances that have not been used together with a - 'graph_viewer_t' . If you have called 'set_viewer_graph()' with your - graph, the graph's lifecycle will be managed by the viewer, and you - shouldn't interfere with it - - @param g (C++: mutable_graph_t *) + @param g: (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -13907,22 +14794,22 @@ class edge_info_t(builtins.object) | list of weak references to the object (if defined) | | color - | edge_info_t_color_get(self) -> bgcolor_t + | color | | dstoff - | edge_info_t_dstoff_get(self) -> int + | dstoff | | layout - | edge_info_t_layout_get(self) -> pointseq_t + | layout | | srcoff - | edge_info_t_srcoff_get(self) -> int + | srcoff | | thisown | The membership flag | | width - | edge_info_t_width_get(self) -> int + | width Help on class edge_infos_wrapper_t in module ida_graph: @@ -13949,7 +14836,7 @@ class edge_infos_wrapper_t(builtins.object) | list of weak references to the object (if defined) | | ptr - | edge_infos_wrapper_t_ptr_get(self) -> edge_infos_t * + | ptr | | thisown | The membership flag @@ -13963,14 +14850,20 @@ class edge_layout_point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t | __init__(self, _e, _pidx) -> edge_layout_point_t + | + | @param _e: edge_t const & + | @param _pidx: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | @@ -13979,6 +14872,8 @@ class edge_layout_point_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: edge_layout_point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13990,10 +14885,10 @@ class edge_layout_point_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_layout_point_t_e_get(self) -> edge_t + | e | | pidx - | edge_layout_point_t_pidx_get(self) -> int + | pidx | | thisown | The membership flag @@ -14015,6 +14910,8 @@ class edge_segment_t(builtins.object) | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -14037,19 +14934,19 @@ class edge_segment_t(builtins.object) | list of weak references to the object (if defined) | | e - | edge_segment_t_e_get(self) -> edge_t + | e | | nseg - | edge_segment_t_nseg_get(self) -> int + | nseg | | thisown | The membership flag | | x0 - | edge_segment_t_x0_get(self) -> int + | x0 | | x1 - | edge_segment_t_x1_get(self) -> int + | x1 Help on class edge_t in module ida_graph: @@ -14060,16 +14957,25 @@ class edge_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, y) -> bool + | + | @param y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int | | __lt__(self, *args) -> 'bool' | __lt__(self, y) -> bool + | + | @param y: edge_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, y) -> bool + | + | @param y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -14086,10 +14992,10 @@ class edge_t(builtins.object) | list of weak references to the object (if defined) | | dst - | edge_t_dst_get(self) -> int + | dst | | src - | edge_t_src_get(self) -> int + | src | | thisown | The membership flag @@ -14103,36 +15009,28 @@ Help on function get_graph_viewer in module ida_graph: get_graph_viewer(*args) -> 'graph_viewer_t *' get_graph_viewer(parent) -> graph_viewer_t * - - Get custom graph viewer for given form. - - @param parent (C++: TWidget *) + @param parent: (C++: TWidget *) Help on function get_node_info in module ida_graph: get_node_info(*args) -> 'bool' get_node_info(out, gid, node) -> bool - - Get node info. - @param out: result (C++: node_info_t *) - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number @return: success Help on function get_viewer_graph in module ida_graph: get_viewer_graph(*args) -> 'mutable_graph_t *' get_viewer_graph(gv) -> mutable_graph_t - - Get graph object for given custom graph viewer. - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -14165,25 +15063,25 @@ class graph_item_t(builtins.object) | list of weak references to the object (if defined) | | b - | graph_item_t_b_get(self) -> int + | b | | e - | graph_item_t_e_get(self) -> edge_t + | e | | elp - | graph_item_t_elp_get(self) -> edge_layout_point_t + | elp | | n - | graph_item_t_n_get(self) -> int + | n | | p - | graph_item_t_p_get(self) -> point_t + | p | | thisown | The membership flag | | type - | graph_item_t_type_get(self) -> graph_item_type_t + | type Help on class graph_node_visitor_t in module ida_graph: @@ -14196,6 +15094,8 @@ class graph_node_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14204,18 +15104,32 @@ class graph_node_visitor_t(builtins.object) | | is_forbidden_edge(self, *args) -> 'bool' | is_forbidden_edge(self, arg0, arg1) -> bool + | Should the edge between 'n' and 'm' be ignored? + | + | @param arg0: int + | @param arg1: int | | is_visited(self, *args) -> 'bool' | is_visited(self, n) -> bool + | Have we already visited the given node? + | + | @param n: (C++: int) | | reinit(self, *args) -> 'void' | reinit(self) + | Reset visited nodes. | | set_visited(self, *args) -> 'void' | set_visited(self, n) + | Mark node as visited. + | + | @param n: (C++: int) | | visit_node(self, *args) -> 'int' | visit_node(self, arg0) -> int + | Implements action to take when a node is visited. + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14240,6 +15154,8 @@ class graph_path_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14248,9 +15164,13 @@ class graph_path_visitor_t(builtins.object) | | walk_backward(self, *args) -> 'int' | walk_backward(self, arg0) -> int + | + | @param arg0: int | | walk_forward(self, *args) -> 'int' | walk_forward(self, arg0) -> int + | + | @param arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14262,10 +15182,10 @@ class graph_path_visitor_t(builtins.object) | list of weak references to the object (if defined) | | path - | graph_path_visitor_t_path_get(self) -> intvec_t * + | path | | prune - | graph_path_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -14281,6 +15201,8 @@ class graph_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14289,9 +15211,15 @@ class graph_visitor_t(builtins.object) | | visit_edge(self, *args) -> 'int' | visit_edge(self, arg2, arg3) -> int + | + | @param arg2: edge_t + | @param arg3: edge_info_t * | | visit_node(self, *args) -> 'int' | visit_node(self, arg2, arg3) -> int + | + | @param arg2: int + | @param arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14330,10 +15258,10 @@ class group_crinfo_t(builtins.object) | list of weak references to the object (if defined) | | nodes - | group_crinfo_t_nodes_get(self) -> intvec_t * + | nodes | | text - | group_crinfo_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -14347,14 +15275,24 @@ class interval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t | __init__(self, y0, y1) -> interval_t + | + | @param y0: int + | @param y1: int + | | __init__(self, s) -> interval_t + | + | @param s: edge_segment_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: interval_t const & | | __repr__ = _swig_repr(self) | @@ -14363,21 +15301,29 @@ class interval_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, x) -> bool + | + | @param x: int | | empty(self, *args) -> 'bool' | empty(self) -> bool | | intersect(self, *args) -> 'void' | intersect(self, r) + | + | @param r: interval_t const & | | length(self, *args) -> 'int' | length(self) -> int | | make_union(self, *args) -> 'void' | make_union(self, r) + | + | @param r: interval_t const & | | move_by(self, *args) -> 'void' | move_by(self, shift) + | + | @param shift: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14392,10 +15338,10 @@ class interval_t(builtins.object) | The membership flag | | x0 - | interval_t_x0_get(self) -> int + | x0 | | x1 - | interval_t_x1_get(self) -> int + | x1 | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14404,183 +15350,479 @@ class interval_t(builtins.object) Help on class mutable_graph_t in module ida_graph: -class mutable_graph_t(builtins.object) +class mutable_graph_t(abstract_graph_t) | Proxy of C++ mutable_graph_t class. | + | Method resolution order: + | mutable_graph_t + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | | Methods defined here: | - | __disown__(self) - | | __init__(self, *args, **kwargs) - | Initialize self. See help(type(self)) for accurate signature. + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_mutable_graph_t(...) | delete_mutable_graph_t(self) | + | add_edge(self, *args) -> 'bool' + | add_edge(self, i, j, ei) -> bool + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * + | + | add_node(self, *args) -> 'int' + | add_node(self, r) -> int + | Add a node, possibly with a specific geometry + | + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node + | | calc_group_ea(self, *args) -> 'ea_t' - | calc_group_ea(self, arg0) -> ea_t + | calc_group_ea(self, arg2) -> ea_t + | + | @param arg2: intvec_t const & | | change_group_visibility(self, *args) -> 'bool' | change_group_visibility(self, group, expand) -> bool - | - | clear(self, *args) -> 'void' - | clear(self) + | Expand/collapse a group node + | + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success | | create_digraph_layout(self, *args) -> 'bool' | create_digraph_layout(self) -> bool | | create_group(self, *args) -> 'int' | create_group(self, nodes) -> int + | Create a new group node, that will contain all the nodes in 'nodes'. + | + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error | | del_custom_layout(self, *args) -> 'void' | del_custom_layout(self) | + | del_edge(self, *args) -> 'bool' + | del_edge(self, i, j) -> bool + | + | @param i: int + | @param j: int + | + | del_node(self, *args) -> 'ssize_t' + | del_node(self, n) -> ssize_t + | Delete a node + | + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges + | | delete_group(self, *args) -> 'bool' | delete_group(self, group) -> bool + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes | | exists(self, *args) -> 'bool' | exists(self, node) -> bool + | Is the node visible? + | + | @param node: (C++: int) the node number + | @return: success | | get_custom_layout(self, *args) -> 'bool' | get_custom_layout(self) -> bool | - | get_edge(self, *args) -> 'edge_info_t' - | get_edge(self, e) -> edge_info_t - | | get_first_subgraph_node(self, *args) -> 'int' | get_first_subgraph_node(self, group) -> int + | + | @param group: int | | get_graph_groups(self, *args) -> 'bool' | get_graph_groups(self) -> bool | | get_next_subgraph_node(self, *args) -> 'int' | get_next_subgraph_node(self, group, current) -> int + | + | @param group: int + | @param current: int | | get_node_group(self, *args) -> 'int' | get_node_group(self, node) -> int + | + | @param node: int | | get_node_representative(self, *args) -> 'int' | get_node_representative(self, node) -> int + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group | | is_collapsed_node(self, *args) -> 'bool' | is_collapsed_node(self, node) -> bool + | + | @param node: int | | is_deleted_node(self, *args) -> 'bool' | is_deleted_node(self, node) -> bool + | + | @param node: int | | is_displayable_node(self, *args) -> 'bool' | is_displayable_node(self, node) -> bool + | + | @param node: int | | is_dot_node(self, *args) -> 'bool' | is_dot_node(self, node) -> bool + | + | @param node: int | | is_group_node(self, *args) -> 'bool' | is_group_node(self, node) -> bool + | + | @param node: int | | is_simple_node(self, *args) -> 'bool' | is_simple_node(self, node) -> bool + | + | @param node: int | | is_subgraph_node(self, *args) -> 'bool' | is_subgraph_node(self, node) -> bool + | + | @param node: int | | is_uncollapsed_node(self, *args) -> 'bool' | is_uncollapsed_node(self, node) -> bool + | + | @param node: int | | is_user_graph(self, *args) -> 'bool' | is_user_graph(self) -> bool | | is_visible_node(self, *args) -> 'bool' | is_visible_node(self, node) -> bool + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success | | node_qty(self, *args) -> 'int' | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes | | npred(self, *args) -> 'int' | npred(self, b) -> int - | - | nrect(self, *args) -> 'rect_t &' - | nrect(self, n) -> rect_t - | nrect(self, n) -> rect_t + | + | @param b: int | | nsucc(self, *args) -> 'int' | nsucc(self, b) -> int + | + | @param b: int | | pred(self, *args) -> 'int' | pred(self, b, i) -> int + | + | @param b: int + | @param i: int | | predset(self, *args) -> 'intvec_t const &' | predset(self, b) -> intvec_t const & + | + | @param b: int + | + | redo_layout(self, *args) -> 'bool' + | redo_layout(self) -> bool + | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success + | + | refresh(self, *args) -> 'bool' + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success + | + | replace_edge(self, *args) -> 'bool' + | replace_edge(self, i, j, x, y) -> bool + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int | | reset(self, *args) -> 'void' | reset(self) | + | resize(self, *args) -> 'void' + | resize(self, n) + | Resize the graph to 'n' nodes + | + | @param n: (C++: int) the new size + | | set_custom_layout(self, *args) -> 'void' | set_custom_layout(self) | | set_deleted_node(self, *args) -> 'void' | set_deleted_node(self, node) + | + | @param node: int | | set_edge(self, *args) -> 'bool' | set_edge(self, e, ei) -> bool + | + | @param e: edge_t + | @param ei: edge_info_t const * | | set_graph_groups(self, *args) -> 'void' | set_graph_groups(self) | | set_node_group(self, *args) -> 'void' | set_node_group(self, node, group) + | + | @param node: int + | @param group: int + | + | set_nrect(self, *args) -> 'bool' + | set_nrect(self, n, r) -> bool + | + | @param n: int + | @param r: rect_t const & | | size(self, *args) -> 'int' | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph | | succ(self, *args) -> 'int' | succ(self, b, i) -> int + | + | @param b: int + | @param i: int | | succset(self, *args) -> 'intvec_t const &' | succset(self, b) -> intvec_t const & + | + | @param b: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | belongs + | belongs + | + | edges + | edges + | + | gid + | gid + | + | node_flags + | node_flags + | + | nodes + | nodes + | + | org_preds + | org_preds + | + | org_succs + | org_succs + | + | preds + | preds + | + | succs + | succs + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from abstract_graph_t: + | + | __disown__(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from abstract_graph_t: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) - | - | belongs - | mutable_graph_t_belongs_get(self) -> intvec_t * - | - | edges - | mutable_graph_t_edges_get(self) -> edge_infos_wrapper_t - | - | gid - | mutable_graph_t_gid_get(self) -> uval_t - | - | node_flags - | mutable_graph_t_node_flags_get(self) -> bytevec_t * - | - | nodes - | mutable_graph_t_nodes_get(self) -> node_layout_t - | - | org_preds - | mutable_graph_t_org_preds_get(self) -> array_of_intvec_t - | - | org_succs - | mutable_graph_t_org_succs_get(self) -> array_of_intvec_t - | - | preds - | mutable_graph_t_preds_get(self) -> array_of_intvec_t - | - | succs - | mutable_graph_t_succs_get(self) -> array_of_intvec_t - | - | thisown - | The membership flag Help on class node_info_t in module ida_graph: @@ -14599,21 +15841,27 @@ class node_info_t(builtins.object) | | get_flags_for_valid(self, *args) -> 'uint32' | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. | | valid_bg_color(self, *args) -> 'bool' | valid_bg_color(self) -> bool + | Has valid bg_color? | | valid_ea(self, *args) -> 'bool' | valid_ea(self) -> bool + | Has valid ea? | | valid_flags(self, *args) -> 'bool' | valid_flags(self) -> bool + | Has valid flags? | | valid_frame_color(self, *args) -> 'bool' | valid_frame_color(self) -> bool + | Has valid frame_color? | | valid_text(self, *args) -> 'bool' | valid_text(self) -> bool + | Has non-empty text? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14625,19 +15873,19 @@ class node_info_t(builtins.object) | list of weak references to the object (if defined) | | bg_color - | node_info_t_bg_color_get(self) -> bgcolor_t + | bg_color | | ea - | node_info_t_ea_get(self) -> ea_t + | ea | | flags - | node_info_t_flags_get(self) -> uint32 + | flags | | frame_color - | node_info_t_frame_color_get(self) -> bgcolor_t + | frame_color | | text - | node_info_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -14651,13 +15899,19 @@ class node_layout_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< rect_t > const & | | __getitem__(self, *args) -> 'rect_t const &' | __getitem__(self, i) -> rect_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14667,30 +15921,42 @@ class node_layout_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rect_t const & | | __swig_destroy__ = delete_node_layout_t(...) | delete_node_layout_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rect_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: rect_t const & | | at(self, *args) -> 'rect_t const &' | at(self, _idx) -> rect_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rect_t >::const_iterator' | begin(self) -> rect_t - | begin(self) -> rect_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -14703,39 +15969,58 @@ class node_layout_t(builtins.object) | | end(self, *args) -> 'qvector< rect_t >::const_iterator' | end(self) -> rect_t - | end(self) -> rect_t | | erase(self, *args) -> 'qvector< rect_t >::iterator' | erase(self, it) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | | erase(self, first, last) -> rect_t + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator | | extract(self, *args) -> 'rect_t *' | extract(self) -> rect_t | | find(self, *args) -> 'qvector< rect_t >::const_iterator' | find(self, x) -> rect_t - | find(self, x) -> rect_t + | + | @param x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rect_t()) + | + | @param x: rect_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: rect_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: rect_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rect_t >::iterator' | insert(self, it, x) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rect_t &' | push_back(self, x) + | + | @param x: rect_t const & + | | push_back(self) -> rect_t | | qclear(self, *args) -> 'void' @@ -14743,16 +16028,26 @@ class node_layout_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rect_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< rect_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -14792,14 +16087,31 @@ class node_ordering_t(builtins.object) | clear(self, *args) -> 'void' | clear(self) | + | clr(self, *args) -> 'bool' + | clr(self, _node) -> bool + | + | @param _node: int + | | node(self, *args) -> 'int' | node(self, _order) -> int + | + | @param _order: size_t + | + | order(self, *args) -> 'int' + | order(self, _node) -> int + | + | @param _node: int | | resize(self, *args) -> 'void' | resize(self, n) + | + | @param n: int | | set(self, *args) -> 'void' | set(self, _node, num) + | + | @param _node: int + | @param num: int | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -14825,13 +16137,20 @@ class point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: point_t const & | | __repr__ = _swig_repr(self) | @@ -14840,12 +16159,16 @@ class point_t(builtins.object) | | add(self, *args) -> 'point_t &' | add(self, r) -> point_t + | + | @param r: point_t const & | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'point_t &' | sub(self, r) -> point_t + | + | @param r: point_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14860,10 +16183,10 @@ class point_t(builtins.object) | The membership flag | | x - | point_t_x_get(self) -> int + | x | | y - | point_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -14901,9 +16224,13 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14913,25 +16240,37 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -14944,39 +16283,58 @@ class pointseq_t(pointvec_t) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | find(self, x) -> point_t + | + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) + | + | @param x: point_t const & + | | push_back(self) -> point_t | | qclear(self, *args) -> 'void' @@ -14984,16 +16342,26 @@ class pointseq_t(pointvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15021,13 +16389,19 @@ class pointvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15037,30 +16411,42 @@ class pointvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & | | __swig_destroy__ = delete_pointvec_t(...) | delete_pointvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< point_t >::const_iterator' | begin(self) -> point_t - | begin(self) -> point_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -15073,39 +16459,58 @@ class pointvec_t(builtins.object) | | end(self, *args) -> 'qvector< point_t >::const_iterator' | end(self) -> point_t - | end(self) -> point_t | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator | | extract(self, *args) -> 'point_t *' | extract(self) -> point_t | | find(self, *args) -> 'qvector< point_t >::const_iterator' | find(self, x) -> point_t - | find(self, x) -> point_t + | + | @param x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | + | @param x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) + | + | @param x: point_t const & + | | push_back(self) -> point_t | | qclear(self, *args) -> 'void' @@ -15113,16 +16518,26 @@ class pointvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15148,16 +16563,23 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) -> 'void' pyg_close(_self) + + @param self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) -> 'void' pyg_select_node(_self, nid) + + @param self: PyObject * + @param nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) -> 'bool' pyg_show(_self) -> bool + + @param self: PyObject * Help on class rect_t in module ida_graph: @@ -15168,14 +16590,27 @@ class rect_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t | __init__(self, l, t, r, b) -> rect_t + | + | @param l: int + | @param t: int + | @param r: int + | @param b: int + | | __init__(self, p0, p1) -> rect_t + | + | @param p0: point_t const & + | @param p1: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -15193,30 +16628,44 @@ class rect_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, p) -> bool + | + | @param p: point_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool | | grow(self, *args) -> 'void' | grow(self, delta) + | + | @param delta: int | | height(self, *args) -> 'int' | height(self) -> int | | intersect(self, *args) -> 'void' | intersect(self, r) + | + | @param r: rect_t const & | | is_intersection_empty(self, *args) -> 'bool' | is_intersection_empty(self, r) -> bool + | + | @param r: rect_t const & | | make_union(self, *args) -> 'void' | make_union(self, r) + | + | @param r: rect_t const & | | move_by(self, *args) -> 'void' | move_by(self, p) + | + | @param p: point_t const & | | move_to(self, *args) -> 'void' | move_to(self, p) + | + | @param p: point_t const & | | topleft(self, *args) -> 'point_t' | topleft(self) -> point_t @@ -15234,19 +16683,19 @@ class rect_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | rect_t_bottom_get(self) -> int + | bottom | | left - | rect_t_left_get(self) -> int + | left | | right - | rect_t_right_get(self) -> int + | right | | thisown | The membership flag | | top - | rect_t_top_get(self) -> int + | top | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -15257,12 +16706,9 @@ Help on function refresh_viewer in module ida_graph: refresh_viewer(*args) -> 'void' refresh_viewer(gv) - - Redraw the graph in the given view. - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -15292,16 +16738,16 @@ class row_info_t(builtins.object) | list of weak references to the object (if defined) | | bottom - | row_info_t_bottom_get(self) -> int + | bottom | | nodes - | row_info_t_nodes_get(self) -> intvec_t * + | nodes | | thisown | The membership flag | | top - | row_info_t_top_get(self) -> int + | top Help on class screen_graph_selection_base_t in module ida_graph: @@ -15312,13 +16758,19 @@ class screen_graph_selection_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15328,30 +16780,42 @@ class screen_graph_selection_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & | | __swig_destroy__ = delete_screen_graph_selection_base_t(...) | delete_screen_graph_selection_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -15364,39 +16828,58 @@ class screen_graph_selection_base_t(builtins.object) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) + | + | @param x: selection_item_t const & + | | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' @@ -15404,16 +16887,26 @@ class screen_graph_selection_base_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15457,24 +16950,40 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) -> 'void' | add(self, s) + | + | @param s: screen_graph_selection_t const & | | add_node(self, *args) -> 'void' | add_node(self, node) + | + | @param node: int | | add_point(self, *args) -> 'void' | add_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int | | del_node(self, *args) -> 'void' | del_node(self, node) + | + | @param node: int | | del_point(self, *args) -> 'void' | del_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int | | has(self, *args) -> 'bool' | has(self, item) -> bool + | + | @param item: selection_item_t const & | | items_count(self, *args) -> 'size_t' | items_count(self, look_for_nodes) -> size_t + | + | @param look_for_nodes: bool | | nodes_count(self, *args) -> 'size_t' | nodes_count(self) -> size_t @@ -15484,6 +16993,8 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) -> 'void' | sub(self, s) + | + | @param s: screen_graph_selection_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15496,9 +17007,13 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15508,25 +17023,37 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' | begin(self) -> selection_item_t - | begin(self) -> selection_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -15539,36 +17066,53 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' | end(self) -> selection_item_t - | end(self) -> selection_item_t | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator | | extract(self, *args) -> 'selection_item_t *' | extract(self) -> selection_item_t | | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' | find(self, x) -> selection_item_t - | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) + | + | @param x: selection_item_t const & + | | push_back(self) -> selection_item_t | | qclear(self, *args) -> 'void' @@ -15576,16 +17120,26 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15613,18 +17167,33 @@ class selection_item_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t | __init__(self, n) -> selection_item_t + | + | @param n: int + | | __init__(self, _elp) -> selection_item_t + | + | @param _elp: edge_layout_point_t & + | | __init__(self, e, idx) -> selection_item_t + | + | @param e: edge_t + | @param idx: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: selection_item_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: selection_item_t const & | | __repr__ = _swig_repr(self) | @@ -15633,6 +17202,8 @@ class selection_item_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: selection_item_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15644,13 +17215,13 @@ class selection_item_t(builtins.object) | list of weak references to the object (if defined) | | elp - | selection_item_t_elp_get(self) -> edge_layout_point_t + | elp | | is_node - | selection_item_t_is_node_get(self) -> bool + | is_node | | node - | selection_item_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -15664,27 +17235,22 @@ Help on function set_node_info in module ida_graph: set_node_info(*args) -> 'void' set_node_info(gid, node, ni, flags) - - Set node info. - @param gid: id of desired graph (C++: graph_id_t) - @param node: node number (C++: int) - @param ni: node info to use (C++: const node_info_t &) - @param flags: combination of Node info flags , identifying which - fields of 'ni' will be used (C++: uint32) + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used Help on function set_viewer_graph in module ida_graph: set_viewer_graph(*args) -> 'void' set_viewer_graph(gv, g) - - Set the underlying graph object for the given viewer. - - @param gv (C++: graph_viewer_t *) - @param g (C++: mutable_graph_t *) + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -15711,7 +17277,7 @@ class user_graph_place_t(builtins.object) | list of weak references to the object (if defined) | | node - | user_graph_place_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -15720,243 +17286,161 @@ Help on function viewer_attach_menu_item in module ida_graph: viewer_attach_menu_item(*args) -> 'bool' viewer_attach_menu_item(g, name) -> bool - - Attach a previously-registered action to the view's context menu. See - 'kernwin.hpp' for how to register actions. + kernwin.hpp for how to register actions. - @param g (C++: graph_viewer_t *) - @param name: action name (C++: const char *) + @param g: (C++: graph_viewer_t *) graph viewer + @param name: (C++: const char *) action name @return: success Help on function viewer_center_on in module ida_graph: viewer_center_on(*args) -> 'void' viewer_center_on(gv, node) - - Center the graph view on the given node. - - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) Help on function viewer_create_groups in module ida_graph: viewer_create_groups(*args) -> 'bool' viewer_create_groups(gv, out_group_nodes, gi) -> bool + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. - - This will perform an operation similar to what happens when a user - manually selects a set of nodes, right-clicks and selects "Create - group". This is a wrapper around mutable_graph_t::create_group that - will, in essence:clone the current graphfor each 'group_crinfo_t' , - attempt creating group in that new graphif all were successful, - animate to that new graph.this accepts parameters that allow creating - of multiple groups at once; which means only one graph animation will - be triggered. - - @param gv (C++: graph_viewer_t *) - @param out_group_nodes (C++: intvec_t *) - @param gi (C++: const groups_crinfos_t &) + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & Help on function viewer_del_node_info in module ida_graph: viewer_del_node_info(*args) -> 'void' viewer_del_node_info(gv, n) + Delete node info for node in given viewer (see del_node_info()) - - Delete node info for node in given viewer (see 'del_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) Help on function viewer_delete_groups in module ida_graph: viewer_delete_groups(*args) -> 'bool' viewer_delete_groups(gv, groups, new_current=-1) -> bool + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. - - Wrapper around mutable_graph_t::delete_group. This function will:clone - the current graphattempt deleting the groups in that new graphif - successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param new_current (C++: int) + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) Help on function viewer_fit_window in module ida_graph: viewer_fit_window(*args) -> 'void' viewer_fit_window(gv) - - Fit graph viewer to its parent form. - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_curnode in module ida_graph: viewer_get_curnode(*args) -> 'int' viewer_get_curnode(gv) -> int - - Get number of currently selected node (-1 if none) - - @param gv (C++: graph_viewer_t *) + @param gv: (C++: graph_viewer_t *) Help on function viewer_get_gli in module ida_graph: viewer_get_gli(*args) -> 'bool' viewer_get_gli(out, gv, flags=0) -> bool + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. - - Get location info for given graph view If flags contains - GLICTL_CENTER, then the gli that will be retrieved, will be the one at - the center of the view. Otherwise it will be the top-left. - - @param out (C++: graph_location_info_t *) - @param gv (C++: graph_viewer_t *) - @param flags (C++: uint32) + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) Help on function viewer_get_node_info in module ida_graph: viewer_get_node_info(*args) -> 'bool' viewer_get_node_info(gv, out, n) -> bool + Get node info for node in given viewer (see get_node_info()) - - Get node info for node in given viewer (see 'get_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param out (C++: node_info_t *) - @param n (C++: int) + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) Help on function viewer_get_selection in module ida_graph: viewer_get_selection(*args) -> 'bool' viewer_get_selection(gv, sgs) -> bool - - Get currently selected items for graph viewer. - - @param gv (C++: graph_viewer_t *) - @param sgs (C++: screen_graph_selection_t *) + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) Help on function viewer_set_gli in module ida_graph: viewer_set_gli(*args) -> 'void' viewer_set_gli(gv, gli, flags=0) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. - - Set location info for given graph view If flags contains - GLICTL_CENTER, then the gli will be set to be the center of the view. - Otherwise it will be the top-left. - - @param gv (C++: graph_viewer_t *) - @param gli (C++: const graph_location_info_t *) - @param flags (C++: uint32) + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) Help on function viewer_set_groups_visibility in module ida_graph: viewer_set_groups_visibility(*args) -> 'bool' viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. - - Wrapper around mutable_graph_t::change_visibility. This function - will:clone the current graphattempt changing visibility of the groups - in that new graphif successful, animate to that new graph. - - @param gv (C++: graph_viewer_t *) - @param groups (C++: const intvec_t &) - @param expand (C++: bool) - @param new_current (C++: int) + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) Help on function viewer_set_node_info in module ida_graph: viewer_set_node_info(*args) -> 'void' viewer_set_node_info(gv, n, ni, flags) + Set node info for node in given viewer (see set_node_info()) - - Set node info for node in given viewer (see 'set_node_info()' ) - - - @param gv (C++: graph_viewer_t *) - @param n (C++: int) - @param ni (C++: const node_info_t &) - @param flags (C++: uint32) + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) Help on function viewer_set_titlebar_height in module ida_graph: viewer_set_titlebar_height(*args) -> 'int' viewer_set_titlebar_height(gv, height) -> int + Set height of node title bars (grcode_set_titlebar_height) - - Set height of node title bars ( 'grcode_set_titlebar_height' ) - - - @param gv (C++: graph_viewer_t *) - @param height (C++: int) + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) -=== ida_graph EPYDOC INJECTIONS === -ida_graph.GLICTL_CENTER +Module "ida_hexrays"s docstring: """ -the gli should be set/get as center """ -ida_graph.MTG_DOT_NODE -""" -is dot node? -""" - -ida_graph.MTG_GROUP_NODE -""" -is group node? -""" - -ida_graph.MTG_NON_DISPLAYABLE_NODE -""" -for disassembly graphs - non-displayable nodes have a visible area -that is too large to generate disassembly lines for without IDA -slowing down significantly (see MAX_VISIBLE_NODE_AREA) -""" - -ida_graph.NIF_BG_COLOR -""" - 'node_info_t::bg_color' -""" - -ida_graph.NIF_EA -""" - 'node_info_t::ea' -""" - -ida_graph.NIF_FLAGS -""" - 'node_info_t::flags' -""" - -ida_graph.NIF_FRAME_COLOR -""" - 'node_info_t::frame_color' -""" - -ida_graph.NIF_TEXT -""" - 'node_info_t::text' -""" -=== ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: class DecompilationFailure(builtins.Exception) - | Raised on a decompilation error. - | - | The associated hexrays_failure_t object is stored in the - | 'info' member of this exception. + | Common base class for all non-exit exceptions. | | Method resolution order: | DecompilationFailure @@ -15966,8 +17450,7 @@ class DecompilationFailure(builtins.Exception) | | Methods defined here: | - | __init__(self, info) - | Initialize self. See help(type(self)) for accurate signature. + | add_note = dummy_replacement() | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15978,6 +17461,9 @@ class DecompilationFailure(builtins.Exception) | ---------------------------------------------------------------------- | Methods inherited from builtins.Exception: | + | __init__(self, /, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature. | @@ -16035,108 +17521,253 @@ class Hexrays_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> Hexrays_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | | close_pseudocode(self, *args) -> 'int' | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) | | cmt_changed(self, *args) -> 'int' | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | create_hint(self, *args) -> 'PyObject *' | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) -> 'int' | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) -> 'int' | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | flowchart(self, *args) -> 'int' | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) | | func_printed(self, *args) -> 'int' | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | glbopt(self, *args) -> 'int' | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | interr(self, *args) -> 'int' | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) | | keyboard(self, *args) -> 'int' | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | locopt(self, *args) -> 'int' | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | maturity(self, *args) -> 'int' | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | microcode(self, *args) -> 'int' | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code | | open_pseudocode(self, *args) -> 'int' | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) | | populating_popup(self, *args) -> 'int' | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | prealloc(self, *args) -> 'int' | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code | | print_func(self, *args) -> 'int' | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | prolog(self, *args) -> 'int' | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | refresh_pseudocode(self, *args) -> 'int' | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | resolve_stkaddrs(self, *args) -> 'int' | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) | | right_click(self, *args) -> 'int' | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | stkpnts(self, *args) -> 'int' | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) | | switch_pseudocode(self, *args) -> 'int' | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) -> 'int' | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16166,52 +17797,118 @@ class __cbhooks_t(Hexrays_Hooks) | Methods defined here: | | __init__(self, callback) - | __init__(self, _flags=0) -> Hexrays_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | close_pseudocode(self, *args) | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) | | create_hint(self, *args) | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints | | curpos(self, *args) | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) | | double_click(self, *args) | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled | | func_printed(self, *args) | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) | | interr(self, *args) | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) | | keyboard(self, *args) | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled | | maturity(self, *args) | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) | | open_pseudocode(self, *args) | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) | | populating_popup(self, *args) | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) | | print_func(self, *args) | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. | | refresh_pseudocode(self, *args) | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier | | right_click(self, *args) | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) | | switch_pseudocode(self, *args) | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) | | text_ready(self, *args) | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16228,56 +17925,135 @@ class __cbhooks_t(Hexrays_Hooks) | __swig_destroy__ = delete_Hexrays_Hooks(...) | delete_Hexrays_Hooks(self) | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | | cmt_changed(self, *args) -> 'int' | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) | | combine(self, *args) -> 'int' | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one | | flowchart(self, *args) -> 'int' | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) | | glbopt(self, *args) -> 'int' | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code | | hook(self, *args) -> 'bool' | hook(self) -> bool | | locopt(self, *args) -> 'int' | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code | | lvar_cmt_changed(self, *args) -> 'int' | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_mapping_changed(self, *args) -> 'int' | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_name_changed(self, *args) -> 'int' | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. | | lvar_type_changed(self, *args) -> 'int' | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. | | microcode(self, *args) -> 'int' | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code | | prealloc(self, *args) -> 'int' | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes | | preoptimized(self, *args) -> 'int' | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code | | prolog(self, *args) -> 'int' | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code | | resolve_stkaddrs(self, *args) -> 'int' | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) | | stkpnts(self, *args) -> 'int' | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code | | structural(self, *args) -> 'int' | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16299,40 +18075,79 @@ Help on function _call_with_transferrable_ownership in module ida_hexrays: _call_with_transferrable_ownership(fun, *args) # Object ownership -Help on function _kludge_use_TPopupMenu in module ida_hexrays: +Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: -_kludge_use_TPopupMenu(*args) -> 'void' - _kludge_use_TPopupMenu(m) +_kludge_force_declare_TPopupMenu(*args) -> 'void' + _kludge_force_declare_TPopupMenu(arg1) + + Parameters + ---------- + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) -> 'cexpr_t *' _ll_call_helper(rettype, args, format) -> cexpr_t + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) -> 'cexpr_t *' _ll_create_helper(standalone, type, format) -> cexpr_t + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) -> 'cexpr_t *' _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) -> 'cexpr_t *' _ll_lnot(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * Help on function _ll_make_num in module ida_hexrays: _ll_make_num(*args) -> 'cexpr_t *' _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int Help on function _ll_make_ref in module ida_hexrays: _ll_make_ref(*args) -> 'cexpr_t *' _ll_make_ref(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -16348,31 +18163,27 @@ Help on function accepts_small_udts in module ida_hexrays: accepts_small_udts(*args) -> 'bool' accepts_small_udts(op) -> bool - - Is the operator allowed on small structure or union? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) -> 'bool' accepts_udts(op) -> bool + + @param op: enum ctype_t Help on function arglocs_overlap in module ida_hexrays: arglocs_overlap(*args) -> 'bool' arglocs_overlap(loc1, w1, loc2, w2) -> bool - - Do two arglocs overlap? - - @param loc1 (C++: const vdloc_t &) - @param w1 (C++: size_t) - @param loc2 (C++: const vdloc_t &) - @param w2 (C++: size_t) + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) Help on class array_of_bitsets in module ida_hexrays: @@ -16383,13 +18194,19 @@ class array_of_bitsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & | | __getitem__(self, *args) -> 'bitset_t const &' | __getitem__(self, i) -> bitset_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16399,30 +18216,42 @@ class array_of_bitsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bitset_t const & | | __swig_destroy__ = delete_array_of_bitsets(...) | delete_array_of_bitsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bitset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: bitset_t const & | | at(self, *args) -> 'bitset_t const &' | at(self, _idx) -> bitset_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< bitset_t >::const_iterator' | begin(self) -> bitset_t - | begin(self) -> bitset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16435,39 +18264,58 @@ class array_of_bitsets(builtins.object) | | end(self, *args) -> 'qvector< bitset_t >::const_iterator' | end(self) -> bitset_t - | end(self) -> bitset_t | | erase(self, *args) -> 'qvector< bitset_t >::iterator' | erase(self, it) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | | erase(self, first, last) -> bitset_t + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator | | extract(self, *args) -> 'bitset_t *' | extract(self) -> bitset_t | | find(self, *args) -> 'qvector< bitset_t >::const_iterator' | find(self, x) -> bitset_t - | find(self, x) -> bitset_t + | + | @param x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bitset_t()) + | + | @param x: bitset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: bitset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: bitset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< bitset_t >::iterator' | insert(self, it, x) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bitset_t &' | push_back(self, x) + | + | @param x: bitset_t const & + | | push_back(self) -> bitset_t | | qclear(self, *args) -> 'void' @@ -16475,16 +18323,26 @@ class array_of_bitsets(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bitset_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< bitset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16515,13 +18373,19 @@ class array_of_ivlsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & | | __getitem__(self, *args) -> 'ivlset_t const &' | __getitem__(self, i) -> ivlset_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16531,30 +18395,42 @@ class array_of_ivlsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ivlset_t const & | | __swig_destroy__ = delete_array_of_ivlsets(...) | delete_array_of_ivlsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ivlset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ivlset_t const & | | at(self, *args) -> 'ivlset_t const &' | at(self, _idx) -> ivlset_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ivlset_t >::const_iterator' | begin(self) -> ivlset_t - | begin(self) -> ivlset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -16567,39 +18443,58 @@ class array_of_ivlsets(builtins.object) | | end(self, *args) -> 'qvector< ivlset_t >::const_iterator' | end(self) -> ivlset_t - | end(self) -> ivlset_t | | erase(self, *args) -> 'qvector< ivlset_t >::iterator' | erase(self, it) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | | erase(self, first, last) -> ivlset_t + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator | | extract(self, *args) -> 'ivlset_t *' | extract(self) -> ivlset_t | | find(self, *args) -> 'qvector< ivlset_t >::const_iterator' | find(self, x) -> ivlset_t - | find(self, x) -> ivlset_t + | + | @param x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ivlset_t()) + | + | @param x: ivlset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ivlset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ivlset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ivlset_t >::iterator' | insert(self, it, x) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ivlset_t &' | push_back(self, x) + | + | @param x: ivlset_t const & + | | push_back(self) -> ivlset_t | | qclear(self, *args) -> 'void' @@ -16607,16 +18502,26 @@ class array_of_ivlsets(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ivlset_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ivlset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16642,26 +18547,20 @@ Help on function asgop in module ida_hexrays: asgop(*args) -> 'ctype_t' asgop(cop) -> ctype_t + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. - - Convert plain operator into assignment operator. For example, cot_add - returns cot_asgadd. - - - @param cop (C++: ctype_t) + @param cop: (C++: ctype_t) enum ctype_t Help on function asgop_revert in module ida_hexrays: asgop_revert(*args) -> 'ctype_t' asgop_revert(cop) -> ctype_t + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add - - Convert assignment operator into plain operator. For example, - cot_asgadd returns cot_add - - @param cop (C++: ctype_t) - @return: cot_empty is the input operator is not an assignment - operator. + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. Help on class bit_bound_t in module ida_hexrays: @@ -16672,6 +18571,9 @@ class bit_bound_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t + | + | @param n: int + | @param s: int | | __repr__ = _swig_repr(self) | @@ -16688,10 +18590,10 @@ class bit_bound_t(builtins.object) | list of weak references to the object (if defined) | | nbits - | bit_bound_t_nbits_get(self) -> int16 + | nbits | | sbits - | bit_bound_t_sbits_get(self) -> int16 + | sbits | | thisown | The membership flag @@ -16705,29 +18607,43 @@ class bitset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bitset_t const & | | __repr__ = _swig_repr(self) | @@ -16736,30 +18652,47 @@ class bitset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | + | @param bit: int + | | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | add(self, ml) -> bool + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int | | begin(self, *args) -> 'bitset_t::iterator' - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | + | @param maxbit: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -16768,57 +18701,95 @@ class bitset_t(builtins.object) | empty(self) -> bool | | end(self, *args) -> 'bitset_t::iterator' - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | + | @param bit: int + | | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | sub(self, ml) -> bool + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16841,92 +18812,68 @@ Help on function block_chains_begin in module ida_hexrays: block_chains_begin(*args) -> 'block_chains_iterator_t' block_chains_begin(set) -> block_chains_iterator_t + Get iterator pointing to the beginning of block_chains_t. - - Get iterator pointing to the beginning of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_clear in module ida_hexrays: block_chains_clear(*args) -> 'void' block_chains_clear(set) + Clear block_chains_t. - - Clear 'block_chains_t' . - - - @param set (C++: block_chains_t *) + @param set: (C++: block_chains_t *) Help on function block_chains_end in module ida_hexrays: block_chains_end(*args) -> 'block_chains_iterator_t' block_chains_end(set) -> block_chains_iterator_t + Get iterator pointing to the end of block_chains_t. - - Get iterator pointing to the end of 'block_chains_t' . - - - @param set (C++: const block_chains_t *) + @param set: (C++: const block_chains_t *) block_chains_t const * Help on function block_chains_erase in module ida_hexrays: block_chains_erase(*args) -> 'void' block_chains_erase(set, p) + Erase current element from block_chains_t. - - Erase current element from 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param p (C++: block_chains_iterator_t) + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_find in module ida_hexrays: block_chains_find(*args) -> 'block_chains_iterator_t' block_chains_find(set, val) -> block_chains_iterator_t + Find the specified key in set block_chains_t. - - Find the specified key in set 'block_chains_t' . - - - @param set (C++: const block_chains_t *) - @param val (C++: const chain_t &) + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & Help on function block_chains_free in module ida_hexrays: block_chains_free(*args) -> 'void' block_chains_free(set) + Delete block_chains_t instance. - - Delete 'block_chains_t' instance. - - - @param set (C++: block_chains_t *) + @param set: (C++: block_chains_t *) Help on function block_chains_get in module ida_hexrays: block_chains_get(*args) -> 'chain_t &' block_chains_get(p) -> chain_t - - Get reference to the current set value. - - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_insert in module ida_hexrays: block_chains_insert(*args) -> 'block_chains_iterator_t' block_chains_insert(set, val) -> block_chains_iterator_t + Insert new (chain_t) into set block_chains_t. - - Insert new ( 'chain_t' ) into set 'block_chains_t' . - - - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & Help on class block_chains_iterator_t in module ida_hexrays: @@ -16937,12 +18884,16 @@ class block_chains_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -16962,7 +18913,7 @@ class block_chains_iterator_t(builtins.object) | The membership flag | | x - | block_chains_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16973,42 +18924,31 @@ Help on function block_chains_new in module ida_hexrays: block_chains_new(*args) -> 'block_chains_t *' block_chains_new() -> block_chains_t - - - Create a new 'block_chains_t' instance. + Create a new block_chains_t instance. Help on function block_chains_next in module ida_hexrays: block_chains_next(*args) -> 'block_chains_iterator_t' block_chains_next(p) -> block_chains_iterator_t - - Move to the next element. - - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_prev in module ida_hexrays: block_chains_prev(*args) -> 'block_chains_iterator_t' block_chains_prev(p) -> block_chains_iterator_t - - Move to the previous element. - - @param p (C++: block_chains_iterator_t) + @param p: (C++: block_chains_iterator_t) Help on function block_chains_size in module ida_hexrays: block_chains_size(*args) -> 'size_t' block_chains_size(set) -> size_t + Get size of block_chains_t. - - Get size of 'block_chains_t' . - - - @param set (C++: block_chains_t *) + @param set: (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -17033,17 +18973,25 @@ class block_chains_t(builtins.object) | | get_chain(self, *args) -> 'chain_t *' | get_chain(self, k, width=1) -> chain_t - | get_chain(self, k, width=1) -> chain_t - | get_chain(self, ch) -> chain_t + | + | @param k: voff_t const & + | @param width: int + | | get_chain(self, ch) -> chain_t + | + | @param ch: chain_t const & | | get_reg_chain(self, *args) -> 'chain_t *' | get_reg_chain(self, reg, width=1) -> chain_t - | get_reg_chain(self, reg, width=1) -> chain_t + | + | @param reg: mreg_t + | @param width: int | | get_stk_chain(self, *args) -> 'chain_t *' | get_stk_chain(self, off, width=1) -> chain_t - | get_stk_chain(self, off, width=1) -> chain_t + | + | @param off: sval_t + | @param width: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17066,10 +19014,14 @@ class block_chains_vec_t(builtins.object) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17081,19 +19033,23 @@ class block_chains_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & | | __swig_destroy__ = delete_block_chains_vec_t(...) | delete_block_chains_vec_t(self) | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -17106,11 +19062,16 @@ class block_chains_vec_t(builtins.object) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -17120,18 +19081,29 @@ class block_chains_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) + | + | @param x: block_chains_t const & + | | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' @@ -17139,16 +19111,26 @@ class block_chains_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< block_chains_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17169,93 +19151,69 @@ Help on function boundaries_begin in module ida_hexrays: boundaries_begin(*args) -> 'boundaries_iterator_t' boundaries_begin(map) -> boundaries_iterator_t - - Get iterator pointing to the beginning of boundaries_t. - - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) -> 'void' boundaries_clear(map) - - Clear boundaries_t. - - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_end in module ida_hexrays: boundaries_end(*args) -> 'boundaries_iterator_t' boundaries_end(map) -> boundaries_iterator_t - - Get iterator pointing to the end of boundaries_t. - - @param map (C++: const boundaries_t *) + @param map: (C++: const boundaries_t *) boundaries_t const * Help on function boundaries_erase in module ida_hexrays: boundaries_erase(*args) -> 'void' boundaries_erase(map, p) - - Erase current element from boundaries_t. - - @param map (C++: boundaries_t *) - @param p (C++: boundaries_iterator_t) + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_find in module ida_hexrays: boundaries_find(*args) -> 'boundaries_iterator_t' boundaries_find(map, key) -> boundaries_iterator_t - - Find the specified key in boundaries_t. - - @param map (C++: const boundaries_t *) - @param key (C++: const cinsn_t *&) + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * Help on function boundaries_first in module ida_hexrays: boundaries_first(*args) -> 'cinsn_t *const &' boundaries_first(p) -> cinsn_t - - Get reference to the current map key. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_free in module ida_hexrays: boundaries_free(*args) -> 'void' boundaries_free(map) - - Delete boundaries_t instance. - - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on function boundaries_insert in module ida_hexrays: boundaries_insert(*args) -> 'boundaries_iterator_t' boundaries_insert(map, key, val) -> boundaries_iterator_t + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. - - Insert new ( 'cinsn_t' *, 'rangeset_t' ) pair into boundaries_t. - - - @param map (C++: boundaries_t *) - @param key (C++: const cinsn_t *&) - @param val (C++: const rangeset_t &) + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & Help on class boundaries_iterator_t in module ida_hexrays: @@ -17266,12 +19224,16 @@ class boundaries_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17291,7 +19253,7 @@ class boundaries_iterator_t(builtins.object) | The membership flag | | x - | boundaries_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -17302,53 +19264,39 @@ Help on function boundaries_new in module ida_hexrays: boundaries_new(*args) -> 'boundaries_t *' boundaries_new() -> boundaries_t - - Create a new boundaries_t instance. Help on function boundaries_next in module ida_hexrays: boundaries_next(*args) -> 'boundaries_iterator_t' boundaries_next(p) -> boundaries_iterator_t - - Move to the next element. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_prev in module ida_hexrays: boundaries_prev(*args) -> 'boundaries_iterator_t' boundaries_prev(p) -> boundaries_iterator_t - - Move to the previous element. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_second in module ida_hexrays: boundaries_second(*args) -> 'rangeset_t &' boundaries_second(p) -> rangeset_t - - Get reference to the current map value. - - @param p (C++: boundaries_iterator_t) + @param p: (C++: boundaries_iterator_t) Help on function boundaries_size in module ida_hexrays: boundaries_size(*args) -> 'size_t' boundaries_size(map) -> size_t - - Get size of boundaries_t. - - @param map (C++: boundaries_t *) + @param map: (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -17359,9 +19307,17 @@ class boundaries_t(builtins.object) | | __begin = boundaries_begin(...) | boundaries_begin(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __clear = boundaries_clear(...) | boundaries_clear(map) + | + | Parameters + | ---------- + | map: boundaries_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -17371,15 +19327,33 @@ class boundaries_t(builtins.object) | | __end = boundaries_end(...) | boundaries_end(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __erase = boundaries_erase(...) | boundaries_erase(map, p) + | + | Parameters + | ---------- + | map: boundaries_t * + | p: boundaries_iterator_t | | __find = boundaries_find(...) | boundaries_find(map, key) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | key: cinsn_t const * | | __first = boundaries_first(...) | boundaries_first(p) -> cinsn_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -17389,6 +19363,12 @@ class boundaries_t(builtins.object) | | __insert = boundaries_insert(...) | boundaries_insert(map, key, val) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t * + | key: cinsn_t const * + | val: rangeset_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -17398,23 +19378,37 @@ class boundaries_t(builtins.object) | | __next = boundaries_next(...) | boundaries_next(p) -> boundaries_iterator_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __repr__ = _swig_repr(self) | | __second = boundaries_second(...) | boundaries_second(p) -> rangeset_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = boundaries_size(...) | boundaries_size(map) -> size_t + | + | Parameters + | ---------- + | map: boundaries_t * | | __swig_destroy__ = delete_boundaries_t(...) | delete_boundaries_t(self) | | at(self, *args) -> 'rangeset_t &' | at(self, _Keyval) -> rangeset_t + | + | @param _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -17487,6 +19481,7 @@ class boundaries_t(builtins.object) Help on function call_helper in module ida_hexrays: call_helper(rettype, args, *rest) + Create a helper call. Help on class carg_t in module ida_hexrays: @@ -17503,24 +19498,36 @@ class carg_t(cexpr_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: carg_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: carg_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: carg_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: carg_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: carg_t const & | | __repr__ = _swig_repr(self) | @@ -17529,18 +19536,22 @@ class carg_t(cexpr_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: carg_t const & | | consume_cexpr(self, *args) -> 'void' | consume_cexpr(self, e) + | + | @param e: cexpr_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: | | formal_type - | carg_t_formal_type_get(self) -> tinfo_t + | formal_type | | is_vararg - | carg_t_is_vararg_get(self) -> bool + | is_vararg | | thisown | The membership flag @@ -17562,8 +19573,8 @@ class carg_t(cexpr_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -17583,8 +19594,8 @@ class carg_t(cexpr_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -17600,119 +19611,241 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | contains_comma(self, *args) -> 'bool' | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | equal_effect(self, *args) -> 'bool' | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -17725,27 +19858,35 @@ class carg_t(cexpr_t) | | is_negative_const(self, *args) -> 'bool' | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' | is_undef_val(self) -> bool @@ -17755,37 +19896,61 @@ class carg_t(cexpr_t) | | is_zero_const(self, *args) -> 'bool' | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) -> 'uint64' | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -17793,7 +19958,7 @@ class carg_t(cexpr_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -17819,7 +19984,7 @@ class carg_t(cexpr_t) | string | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -17851,6 +20016,8 @@ class carg_t(cexpr_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -17865,22 +20032,38 @@ class carg_t(cexpr_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -17894,19 +20077,19 @@ class carg_t(cexpr_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -17933,25 +20116,40 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: carglist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: carglist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: carglist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: carglist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: carglist_t const & | | __repr__ = _swig_repr(self) | @@ -17960,15 +20158,17 @@ class carglist_t(qvector_carg_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | carglist_t_flags_get(self) -> int + | flags | | functype - | carglist_t_functype_get(self) -> tinfo_t + | functype | | thisown | The membership flag @@ -17983,6 +20183,8 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -17992,26 +20194,39 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | push_back(self, x) + | + | @param x: carg_t const & + | | push_back(self) -> carg_t | | at = __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18024,39 +20239,58 @@ class carglist_t(qvector_carg_t) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | find(self, x) -> carg_t + | + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) + | + | @param x: carg_t const & + | | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' @@ -18064,16 +20298,26 @@ class carglist_t(qvector_carg_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18101,25 +20345,42 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: casm_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: casm_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t + | + | @param ea: ea_t + | | __init__(self, r) -> casm_t + | + | @param r: casm_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: casm_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: casm_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: casm_t const & | | __repr__ = _swig_repr(self) | @@ -18128,6 +20389,8 @@ class casm_t(ida_pro.eavec_t)↗ | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: casm_t const & | | one_insn(self, *args) -> 'bool' | one_insn(self) -> bool @@ -18148,6 +20411,8 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18157,19 +20422,33 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18193,32 +20472,54 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ | | extract(self, *args) -> 'unsigned-ea-like-numeric-type *'↗ | extract(self) -> unsigned-ea-like-numeric-type *↗ | | find(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | | push_back(self) -> unsigned-ea-like-numeric-type &↗ | | qclear(self, *args) -> 'void' @@ -18226,16 +20527,26 @@ class casm_t(ida_pro.eavec_t)↗ | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -18251,36 +20562,48 @@ class casm_t(ida_pro.eavec_t)↗ Help on class cblock_t in module ida_hexrays: -class cblock_t(qlist_cinsn_t) +class cblock_t(cinsn_list_t) | Proxy of C++ cblock_t class. | | Method resolution order: | cblock_t - | qlist_cinsn_t + | cinsn_list_t | builtins.object | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cblock_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cblock_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cblock_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cblock_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -18292,6 +20615,8 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18305,10 +20630,12 @@ class cblock_t(qlist_cinsn_t) | __hash__ = None | | ---------------------------------------------------------------------- - | Methods inherited from qlist_cinsn_t: + | Methods inherited from cinsn_list_t: | | __getitem__(self, *args) -> 'cinsn_t const &' | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18318,14 +20645,17 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & | | at(self, index) | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator | | clear(self, *args) -> 'void' | clear(self) @@ -18333,13 +20663,13 @@ class cblock_t(qlist_cinsn_t) | empty(self, *args) -> 'bool' | empty(self) -> bool | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator | | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) | erase(self, p) + | + | @param p: cinsn_list_t_iterator | | find(self, item) | @@ -18348,11 +20678,16 @@ class cblock_t(qlist_cinsn_t) | | index(self, item) | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | insert(self, p) -> qlist< cinsn_t >::iterator + | insert(self, *args) -> 'cinsn_list_t_iterator' | insert(self, i, v) - | insert(self, p, x) -> qlist_cinsn_t_iterator + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -18362,10 +20697,15 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) + | + | @param x: cinsn_t const & + | | push_back(self) -> cinsn_t | | push_front(self, *args) -> 'void' | push_front(self, x) + | + | @param x: cinsn_t const & | | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -18373,6 +20713,8 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) -> 'bool' | remove(self, v) -> bool + | + | @param v: cinsn_t const & | | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -18383,9 +20725,11 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) -> 'void' | swap(self, x) + | + | @param x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- - | Data descriptors inherited from qlist_cinsn_t: + | Data descriptors inherited from cinsn_list_t: | | __dict__ | dictionary for instance variables (if defined) @@ -18408,24 +20752,36 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ccase_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ccase_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ccase_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ccase_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ccase_t const & | | __repr__ = _swig_repr(self) | @@ -18434,12 +20790,16 @@ class ccase_t(cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ccase_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t | | value(self, *args) -> 'uint64 const &' | value(self, i) -> uint64 const & + | + | @param i: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18448,7 +20808,7 @@ class ccase_t(cinsn_t) | The membership flag | | values - | ccase_t_values_get(self) -> ulonglongvec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -18493,89 +20853,187 @@ class ccase_t(cinsn_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) -> 'bool' | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods inherited from cinsn_t: | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -18627,6 +21085,8 @@ class ccase_t(cinsn_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -18641,22 +21101,38 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18670,16 +21146,16 @@ class ccase_t(cinsn_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -18706,24 +21182,36 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ccases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ccases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ccases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ccases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ccases_t const & | | __repr__ = _swig_repr(self) | @@ -18732,6 +21220,8 @@ class ccases_t(qvector_ccase_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18749,6 +21239,8 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18758,26 +21250,39 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | push_back(self, x) + | + | @param x: ccase_t const & + | | push_back(self) -> ccase_t | | at = __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -18790,39 +21295,58 @@ class ccases_t(qvector_ccase_t) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | find(self, x) -> ccase_t + | + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) + | + | @param x: ccase_t const & + | | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' @@ -18830,16 +21354,26 @@ class ccases_t(qvector_ccase_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18861,8 +21395,13 @@ class cdg_insn_iterator_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> cdg_insn_iterator_t + | __init__(self, mba_) -> cdg_insn_iterator_t + | + | @param mba_: mba_t const * + | | __init__(self, r) -> cdg_insn_iterator_t + | + | @param r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -18875,14 +21414,21 @@ class cdg_insn_iterator_t(builtins.object) | has_dslot(self, *args) -> 'bool' | has_dslot(self) -> bool | + | is_severed_dslot(self, *args) -> 'bool' + | is_severed_dslot(self) -> bool + | | next(self, *args) -> 'merror_t' | next(self, ins) -> merror_t + | + | @param ins: insn_t * | | ok(self, *args) -> 'bool' | ok(self) -> bool | | start(self, *args) -> 'void' | start(self, rng) + | + | @param rng: range_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18894,22 +21440,25 @@ class cdg_insn_iterator_t(builtins.object) | list of weak references to the object (if defined) | | dslot - | cdg_insn_iterator_t_dslot_get(self) -> ea_t + | dslot | | dslot_insn - | cdg_insn_iterator_t_dslot_insn_get(self) -> insn_t * + | dslot_insn | | ea - | cdg_insn_iterator_t_ea_get(self) -> ea_t + | ea | | end - | cdg_insn_iterator_t_end_get(self) -> ea_t + | end | | is_likely_dslot - | cdg_insn_iterator_t_is_likely_dslot_get(self) -> bool + | is_likely_dslot | - | is_separate_dslot - | cdg_insn_iterator_t_is_separate_dslot_get(self) -> bool + | mba + | mba + | + | severed_branch + | severed_branch | | thisown | The membership flag @@ -18929,24 +21478,36 @@ class cdo_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cdo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cdo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cdo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cdo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cdo_t const & | | __repr__ = _swig_repr(self) | @@ -18955,6 +21516,8 @@ class cdo_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18972,6 +21535,8 @@ class cdo_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -18980,7 +21545,7 @@ class cdo_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -18992,7 +21557,7 @@ class cdo_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ceinsn_t in module ida_hexrays: @@ -19019,7 +21584,7 @@ class ceinsn_t(builtins.object) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr | | thisown | The membership flag @@ -19043,28 +21608,57 @@ class cexpr_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cexpr_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cexpr_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t - | __init__(self, cop, _x, _y) -> cexpr_t - | __init__(self, cop, _x, _y, _z) -> cexpr_t + | __init__(self, cexpr_op, _x) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y, _z) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * + | | __init__(self, r) -> cexpr_t + | + | @param r: cexpr_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cexpr_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cexpr_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -19080,8 +21674,8 @@ class cexpr_t(citem_t) | _get_fpc(self, *args) -> 'fnumber_t *' | _get_fpc(self) -> fnumber_t | - | _get_helper(self, *args) -> 'char *' - | _get_helper(self) -> char * + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * | | _get_insn(self, *args) -> 'cinsn_t *' | _get_insn(self) -> cinsn_t @@ -19101,8 +21695,8 @@ class cexpr_t(citem_t) | _get_refwidth(self, *args) -> 'int' | _get_refwidth(self) -> int | - | _get_string(self, *args) -> 'char *' - | _get_string(self) -> char * + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * | | _get_x(self, *args) -> 'cexpr_t *' | _get_x(self) -> cexpr_t @@ -19118,122 +21712,246 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & | | calc_type(self, *args) -> 'void' | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cexpr_t const & | | contains_comma(self, *args) -> 'bool' | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) | | contains_insn(self, *args) -> 'bool' | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) | | contains_insn_or_label(self, *args) -> 'bool' | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) -> 'bool' | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP | | cpadone(self, *args) -> 'bool' | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | equal_effect(self, *args) -> 'bool' | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal | | find_num_op(self, *args) -> 'cexpr_t *' | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t | | find_op(self, *args) -> 'cexpr_t *' | find_op(self, _op) -> cexpr_t - | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t | | get_1num_op(self, *args) -> 'bool' | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** | | get_const_value(self, *args) -> 'bool' | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. | | get_high_nbit_bound(self, *args) -> 'bit_bound_t' | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero | | get_low_nbit_bound(self, *args) -> 'int' | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. | | get_ptr_or_array(self, *args) -> 'cexpr_t *' | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) -> 'type_sign_t' | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) -> 'var_ref_t *' | get_v(self) -> var_ref_t | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. | | is_call_arg_of(self, *args) -> 'bool' | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. | | is_call_object_of(self, *args) -> 'bool' | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. | | is_child_of(self, *args) -> 'bool' | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -19246,27 +21964,35 @@ class cexpr_t(citem_t) | | is_negative_const(self, *args) -> 'bool' | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) -> 'bool' | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. | | is_nice_expr(self, *args) -> 'bool' | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. | | is_non_negative_const(self, *args) -> 'bool' | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) -> 'bool' | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) -> 'bool' | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) -> 'bool' | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) -> 'bool' | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) -> 'bool' | is_undef_val(self) -> bool @@ -19276,37 +22002,61 @@ class cexpr_t(citem_t) | | is_zero_const(self, *args) -> 'bool' | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) -> 'bool' | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) -> 'uint64' | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! | | print1(self, *args) -> 'void' | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | put_number(self, *args) -> 'void' | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign | | requires_lvalue(self, *args) -> 'bool' | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) -> 'void' | set_cpadone(self) | | set_v(self, *args) -> 'void' | set_v(self, v) + | + | @param v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cexpr_t & | | theother(self, *args) -> 'cexpr_t *' | theother(self, what) -> cexpr_t - | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19314,7 +22064,7 @@ class cexpr_t(citem_t) | a | | exflags - | cexpr_t_exflags_get(self) -> uint32 + | exflags | | fpc | @@ -19343,7 +22093,7 @@ class cexpr_t(citem_t) | The membership flag | | type - | cexpr_t_type_get(self) -> tinfo_t + | type | | v | @@ -19377,6 +22127,8 @@ class cexpr_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -19391,22 +22143,38 @@ class cexpr_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -19420,19 +22188,19 @@ class cexpr_t(citem_t) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -19460,24 +22228,36 @@ class cfor_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cfor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cfor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cfor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cfor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cfor_t const & | | __repr__ = _swig_repr(self) | @@ -19486,15 +22266,17 @@ class cfor_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | init - | cfor_t_init_get(self) -> cexpr_t + | init | | step - | cfor_t_step_get(self) -> cexpr_t + | step | | thisown | The membership flag @@ -19509,6 +22291,8 @@ class cfor_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19517,7 +22301,7 @@ class cfor_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -19529,7 +22313,7 @@ class cfor_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cfunc_parentee_t in module ida_hexrays: @@ -19548,6 +22332,9 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t + | + | @param f: cfunc_t * + | @param post: bool | | __repr__ = _swig_repr(self) | @@ -19556,12 +22343,21 @@ class cfunc_parentee_t(ctree_parentee_t) | | calc_rvalue_type(self, *args) -> 'bool' | calc_rvalue_type(self, target, e) -> bool + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | cfunc_parentee_t_func_get(self) -> cfunc_t + | func | | thisown | The membership flag @@ -19569,62 +22365,124 @@ class cfunc_parentee_t(ctree_parentee_t) | ---------------------------------------------------------------------- | Methods inherited from ctree_parentee_t: | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) -> 'bool' | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -19636,10 +22494,10 @@ class cfunc_parentee_t(ctree_parentee_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class cfunc_t in module ida_hexrays: @@ -19661,97 +22519,207 @@ class cfunc_t(builtins.object) | | build_c_tree(self, *args) -> 'void' | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. | | del_orphan_cmts(self, *args) -> 'int' | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | | find_item_coords(self, item) -> PyObject * + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t + | Find the label. + | + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | get_eamap(self, *args) -> 'eamap_t &' | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool + | Get the function type. + | + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | get_pseudocode(self, *args) -> 'strvec_t const &' | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | get_stkoff_delta(self, *args) -> 'sval_t' | get_stkoff_delta(self) -> sval_t + | Get stack offset delta. The local variable stack offsets retrieved by + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * + | Retrieve a user defined comment. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 + | Retrieve citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool + | Retrieve a user defined union field selection. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings | | has_orphan_cmts(self, *args) -> 'bool' | has_orphan_cmts(self) -> bool + | Check if there are orphan comments. + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool | | print_dcl(self, *args) -> 'void' | print_dcl(self) + | Print function prototype. | | print_func(self, *args) -> 'void' | print_func(self, vp) + | Print function text. + | + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. | | release(self, *args) -> 'void' | release(self) | | remove_unused_labels(self, *args) -> 'void' | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. | | save_user_cmts(self, *args) -> 'void' | save_user_cmts(self) + | Save user-defined comments into the database. | | save_user_iflags(self, *args) -> 'void' | save_user_iflags(self) + | Save user-defined iflags into the database. | | save_user_labels(self, *args) -> 'void' | save_user_labels(self) + | Save user-defined labels into the database. | | save_user_numforms(self, *args) -> 'void' | save_user_numforms(self) + | Save user-defined number formats into the database. | | save_user_unions(self, *args) -> 'void' | save_user_unions(self) + | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) + | Set citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19763,69 +22731,83 @@ class cfunc_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfunc_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfunc_t_body_get(self) -> cinsn_t + | body | | boundaries | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. | | eamap | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. | | entry_ea - | cfunc_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfunc_t_hdrlines_get(self) -> int + | hdrlines | | lvars | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. | | maturity - | cfunc_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfunc_t_mba_get(self) -> mbl_array_t + | mba | | numforms - | cfunc_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. | | refcnt - | cfunc_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfunc_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfunc_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | Get the function's return type tinfo_t object. | | user_cmts - | cfunc_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfunc_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfunc_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfunc_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings Help on function cfunc_type in module ida_hexrays: @@ -19846,7 +22828,12 @@ class cfuncptr_t(builtins.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t + | + | @param p: cfunc_t * + | | __init__(self, r) -> cfuncptr_t + | + | @param r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) -> 'size_t' | __ptrval__(self) -> size_t @@ -19869,13 +22856,25 @@ class cfuncptr_t(builtins.object) | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool - | find_item_coords(self, item) -> PyObject * + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t + | + | @param label: int | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t @@ -19885,9 +22884,18 @@ class cfuncptr_t(builtins.object) | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool + | + | @param type: tinfo_t * | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t @@ -19900,12 +22908,20 @@ class cfuncptr_t(builtins.object) | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 + | + | @param loc: citem_locator_t const & | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool + | + | @param ea: ea_t + | @param path: intvec_t * | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t @@ -19913,11 +22929,16 @@ class cfuncptr_t(builtins.object) | has_orphan_cmts(self, *args) -> 'bool' | has_orphan_cmts(self) -> bool | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | | print_dcl(self, *args) -> 'void' | print_dcl(self) | | print_func(self, *args) -> 'void' | print_func(self, vp) + | + | @param vp: vc_printer_t & | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) @@ -19948,15 +22969,27 @@ class cfuncptr_t(builtins.object) | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) + | + | @param loc: treeloc_t const & + | @param cmt: char const * | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) + | + | @param loc: citem_locator_t const & + | @param iflags: int32 | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) + | + | @param ea: ea_t + | @param path: intvec_t const & | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19968,61 +23001,61 @@ class cfuncptr_t(builtins.object) | list of weak references to the object (if defined) | | argidx - | cfuncptr_t_argidx_get(self) -> intvec_t + | argidx | | arguments | | body - | cfuncptr_t_body_get(self) -> cinsn_t + | body | | boundaries | | eamap | | entry_ea - | cfuncptr_t_entry_ea_get(self) -> ea_t + | entry_ea | | hdrlines - | cfuncptr_t_hdrlines_get(self) -> int + | hdrlines | | lvars | | maturity - | cfuncptr_t_maturity_get(self) -> ctree_maturity_t + | maturity | | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t + | mba | | numforms - | cfuncptr_t_numforms_get(self) -> user_numforms_t + | numforms | | pseudocode | | refcnt - | cfuncptr_t_refcnt_get(self) -> int + | refcnt | | statebits - | cfuncptr_t_statebits_get(self) -> int + | statebits | | thisown | The membership flag | | treeitems - | cfuncptr_t_treeitems_get(self) -> ctree_items_t + | treeitems | | type | | user_cmts - | cfuncptr_t_user_cmts_get(self) -> user_cmts_t + | user_cmts | | user_iflags - | cfuncptr_t_user_iflags_get(self) -> user_iflags_t + | user_iflags | | user_labels - | cfuncptr_t_user_labels_get(self) -> user_labels_t + | user_labels | | user_unions - | cfuncptr_t_user_unions_get(self) -> user_unions_t + | user_unions | | warnings @@ -20035,24 +23068,36 @@ class cgoto_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cgoto_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cgoto_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cgoto_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cgoto_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cgoto_t const & | | __repr__ = _swig_repr(self) | @@ -20061,6 +23106,8 @@ class cgoto_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20072,7 +23119,7 @@ class cgoto_t(builtins.object) | list of weak references to the object (if defined) | | label_num - | cgoto_t_label_num_get(self) -> int + | label_num | | thisown | The membership flag @@ -20091,6 +23138,8 @@ class chain_keeper_t(builtins.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t + | + | @param _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -20102,6 +23151,9 @@ class chain_keeper_t(builtins.object) | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca) -> int + | + | @param cv: chain_visitor_t & + | @param gca: int | | front(self, *args) -> 'block_chains_t &' | front(self) -> block_chains_t @@ -20133,10 +23185,21 @@ class chain_t(ida_pro.intvec_t) | __init__(self, *args) | __init__(self) -> chain_t | __init__(self, t, off, w=1, v=-1) -> chain_t + | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int + | | __init__(self, _k, w=1) -> chain_t + | + | @param _k: voff_t const & + | @param w: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -20147,7 +23210,11 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) -> 'void' - | append_list(self, list) + | append_list(self, mba, list) + | Append the contents of the chain to the specified list of locations. + | + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) | | clear_varnum(self, *args) -> 'void' | clear_varnum(self) @@ -20166,6 +23233,8 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) -> 'bool' | includes(self, r) -> bool + | + | @param r: chain_t const & | | is_fake(self, *args) -> 'bool' | is_fake(self) -> bool @@ -20196,45 +23265,61 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool + | + | @param r: chain_t const & | | set_inited(self, *args) -> 'void' | set_inited(self, b) + | + | @param b: bool | | set_overlapped(self, *args) -> 'void' | set_overlapped(self, b) + | + | @param b: bool | | set_replaced(self, *args) -> 'void' | set_replaced(self, b) + | + | @param b: bool | | set_term(self, *args) -> 'void' | set_term(self, b) + | + | @param b: bool | | set_value(self, *args) -> 'void' | set_value(self, r) + | + | @param r: chain_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | flags - | chain_t_flags_get(self) -> uchar + | flags | | thisown | The membership flag | | varnum - | chain_t_varnum_get(self) -> int + | varnum | | width - | chain_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from ida_pro.intvec_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20244,22 +23329,38 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | push_back(self, x) + | + | @param x: int const & + | | push_back(self) -> int & | | at = __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20283,32 +23384,54 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) + | + | @param x: int const & + | | push_back(self) -> int & | | qclear(self, *args) -> 'void' @@ -20316,16 +23439,26 @@ class chain_t(ida_pro.intvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20355,6 +23488,8 @@ class chain_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -20363,6 +23498,9 @@ class chain_visitor_t(builtins.object) | | visit_chain(self, *args) -> 'int' | visit_chain(self, nblock, ch) -> int + | + | @param nblock: int + | @param ch: chain_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20374,7 +23512,7 @@ class chain_visitor_t(builtins.object) | list of weak references to the object (if defined) | | parent - | chain_visitor_t_parent_get(self) -> block_chains_t + | parent | | thisown | The membership flag @@ -20383,17 +23521,14 @@ Help on function checkout_hexrays_license in module ida_hexrays: checkout_hexrays_license(*args) -> 'bool' checkout_hexrays_license(silent) -> bool + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. - - Check out a floating decompiler license. This function will display a - dialog box if the license is not available. For non-floating licenses - this function is effectively no-op. It is not necessary to call this - function before decompiling. If the license was not checked out, the - decompiler will automatically do it. This function can be used to - check out a license in advance and ensure that a license is available. - - @param silent: silently fail if the license can not be checked out. - (C++: bool) + @param silent: (C++: bool) silently fail if the license cannot be checked out. @return: false if failed Help on class cif_t in module ida_hexrays: @@ -20410,25 +23545,39 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cif_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cif_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t | __init__(self, r) -> cif_t + | + | @param r: cif_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cif_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cif_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cif_t const & | | __repr__ = _swig_repr(self) | @@ -20437,21 +23586,25 @@ class cif_t(ceinsn_t) | | assign(self, *args) -> 'cif_t &' | assign(self, r) -> cif_t + | + | @param r: cif_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | ielse - | cif_t_ielse_get(self) -> cinsn_t + | ielse | | ithen - | cif_t_ithen_get(self) -> cinsn_t + | ithen | | thisown | The membership flag @@ -20471,13 +23624,204 @@ class cif_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function cinsn_details in module ida_hexrays: cinsn_details(self) return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(builtins.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | __swig_destroy__ = delete_cinsn_list_t(...) + | delete_cinsn_list_t(self) + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(builtins.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) -> 'void' + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_list_t_iterator(...) + | delete_cinsn_list_t_iterator(self) + | + | next = __next__(self, *args) -> 'void' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + Help on class cinsn_t in module ida_hexrays: class cinsn_t(citem_t) @@ -20492,25 +23836,39 @@ class cinsn_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cinsn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cinsn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cinsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cinsn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -20552,92 +23910,192 @@ class cinsn_t(citem_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) -> 'void' | _register(self) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. | | collect_free_breaks(self, *args) -> 'bool' | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> 'bool' | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cinsn_t const & | | contains_free_break(self, *args) -> 'bool' | contains_free_break(self) -> bool + | Check if the statement has free break statements. | | contains_free_continue(self, *args) -> 'bool' | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. | | contains_insn(self, *args) -> 'bool' | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE | | create_if(self, *args) -> 'cif_t &' | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) | | new_insn(self, *args) -> 'cinsn_t &' | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address | | print1(self, *args) -> 'void' | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: cinsn_t & | | zero(self, *args) -> 'void' | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods defined here: | | insn_is_epilog(*args) -> 'bool' | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20694,6 +24152,8 @@ class cinsn_t(citem_t) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -20708,22 +24168,38 @@ class cinsn_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -20737,16 +24213,16 @@ class cinsn_t(citem_t) | list of weak references to the object (if defined) | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -20763,6 +24239,8 @@ Help on function cinsn_t_insn_is_epilog in module ida_hexrays: cinsn_t_insn_is_epilog(*args) -> 'bool' cinsn_t_insn_is_epilog(insn) -> bool + + @param insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -20773,13 +24251,19 @@ class cinsnptrvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & | | __getitem__(self, *args) -> 'cinsn_t *const &' | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20788,20 +24272,31 @@ class cinsnptrvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t *const & | | __swig_destroy__ = delete_cinsnptrvec_t(...) | delete_cinsnptrvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: cinsn_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: cinsn_t *const & | | append = push_back(self, *args) -> 'cinsn_t *&' | @@ -20829,32 +24324,54 @@ class cinsnptrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' | erase(self, it) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator | | extract(self, *args) -> 'cinsn_t **' | extract(self) -> cinsn_t ** | | find(self, *args) -> 'qvector< cinsn_t * >::const_iterator' | find(self, x) -> qvector< cinsn_t * >::iterator + | + | @param x: cinsn_t *const & + | | find(self, x) -> qvector< cinsn_t * >::const_iterator + | + | @param x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: cinsn_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: cinsn_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'cinsn_t *&' | push_back(self, x) + | + | @param x: cinsn_t *const & + | | push_back(self) -> cinsn_t *& | | qclear(self, *args) -> 'void' @@ -20862,16 +24379,26 @@ class cinsnptrvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: cinsn_t *const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< cinsn_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20903,6 +24430,8 @@ class citem_cmt_t(builtins.object) | __init__(self, *args) | __init__(self) -> citem_cmt_t | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * | | __repr__ = _swig_repr(self) | @@ -20928,7 +24457,7 @@ class citem_cmt_t(builtins.object) | The membership flag | | used - | citem_cmt_t_used_get(self) -> bool + | used Help on class citem_locator_t in module ida_hexrays: @@ -20939,25 +24468,43 @@ class citem_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t + | + | @param _ea: ea_t + | @param _op: enum ctype_t + | | __init__(self, i) -> citem_locator_t + | + | @param i: citem_t const * | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: citem_locator_t const & | | __repr__ = _swig_repr(self) | @@ -20966,6 +24513,8 @@ class citem_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20977,10 +24526,10 @@ class citem_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | citem_locator_t_ea_get(self) -> ea_t + | ea | | op - | citem_locator_t_op_get(self) -> ctype_t + | op | | thisown | The membership flag @@ -20998,8 +24547,9 @@ class citem_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> citem_t - | __init__(self, o) -> citem_t + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -21020,6 +24570,8 @@ class citem_t(builtins.object) | | _ensure_no_op(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_op(self, *args) -> 'ctype_t' | _get_op(self) -> ctype_t | @@ -21034,30 +24586,54 @@ class citem_t(builtins.object) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * | | contains_label(self, *args) -> 'bool' | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) -> 'citem_t *' | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t | | find_parent_of(self, *args) -> 'citem_t *' | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * | | is_expr(self, *args) -> 'bool' | is_expr(self) -> bool + | Is an expression? | | print1(self, *args) -> 'void' | print1(self, func) + | Print item into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) -> 'void' | swap(self, r) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21069,19 +24645,19 @@ class citem_t(builtins.object) | list of weak references to the object (if defined) | | cexpr - | citem_t_cexpr_get(self) -> cexpr_t + | cexpr | | cinsn - | citem_t_cinsn_get(self) -> cinsn_t + | cinsn | | ea - | citem_t_ea_get(self) -> ea_t + | ea | | index - | citem_t_index_get(self) -> int + | index | | label_num - | citem_t_label_num_get(self) -> int + | label_num | | meminfo | @@ -21106,8 +24682,6 @@ Help on function clear_cached_cfuncs in module ida_hexrays: clear_cached_cfuncs(*args) -> 'void' clear_cached_cfuncs() - - Flush all cached decompilation results. Help on class cloop_t in module ida_hexrays: @@ -21125,7 +24699,12 @@ class cloop_t(ceinsn_t) | __init__(self, *args) | __init__(self) -> cloop_t | __init__(self, b) -> cloop_t + | + | @param b: cinsn_t * + | | __init__(self, r) -> cloop_t + | + | @param r: cloop_t const & | | __repr__ = _swig_repr(self) | @@ -21134,6 +24713,8 @@ class cloop_t(ceinsn_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -21142,7 +24723,7 @@ class cloop_t(ceinsn_t) | Data descriptors defined here: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | thisown | The membership flag @@ -21157,17 +24738,22 @@ class cloop_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr + +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) -> 'void' + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. Help on function close_pseudocode in module ida_hexrays: close_pseudocode(*args) -> 'bool' close_pseudocode(f) -> bool - - Close pseudocode window. - @param f: pointer to window (C++: TWidget *) + @param f: (C++: TWidget *) pointer to window @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -21179,24 +24765,38 @@ class cnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t + | + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cnumber_t const & | | __repr__ = _swig_repr(self) | @@ -21205,15 +24805,32 @@ class cnumber_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, type, parent=None, nice_stroff=None) + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) -> 'void' | assign(self, v, nbytes, sign) + | Assign new value + | + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cnumber_t const & | | value(self, *args) -> 'uint64' | value(self, type) -> uint64 + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21225,10 +24842,10 @@ class cnumber_t(builtins.object) | list of weak references to the object (if defined) | | _value - | cnumber_t__value_get(self) -> uint64 + | _value | | nf - | cnumber_t_nf_get(self) -> number_format_t + | nf | | thisown | The membership flag @@ -21245,10 +24862,8 @@ class codegen_t(builtins.object) | | Methods defined here: | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, m) -> codegen_t + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. | | __repr__ = _swig_repr(self) | @@ -21257,19 +24872,93 @@ class codegen_t(builtins.object) | | analyze_prolog(self, *args) -> 'merror_t' | analyze_prolog(self, fc, reachable) -> merror_t + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code | | emit(self, *args) -> 'minsn_t *' | emit(self, code, width, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int + | | emit(self, code, l, r, d) -> minsn_t + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * | | emit_micro_mvm(self, *args) -> 'minsn_t *' | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant takes a data type not a size. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) | | gen_micro(self, *args) -> 'merror_t' | gen_micro(self) -> merror_t + | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal + | + | load_effective_address(self, *args) -> 'mreg_t' + | load_effective_address(self, n, flags=0) -> mreg_t + | Generate microcode to calculate the address of a memory operand. + | + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) | | load_operand(self, *args) -> 'mreg_t' - | load_operand(self, opnum) -> mreg_t + | load_operand(self, opnum, flags=0) -> mreg_t + | Generate microcode to load one operand. + | + | @param opnum: (C++: int) number of INSN operand + | @param flags: (C++: int) reserved for future use + | @return: register containing the operand. + | + | microgen_completed(self, *args) -> 'void' + | microgen_completed(self) + | This method is called when the microcode generation is done. + | + | prepare_gen_micro(self, *args) -> 'merror_t' + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal + | + | store_operand(self, *args) -> 'bool' + | store_operand(self, n, mop, flags=0, outins=None) -> bool + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21281,19 +24970,19 @@ class codegen_t(builtins.object) | list of weak references to the object (if defined) | | ignore_micro - | codegen_t_ignore_micro_get(self) -> char + | ignore_micro | | ii - | codegen_t_ii_get(self) -> cdg_insn_iterator_t + | ii | | insn - | codegen_t_insn_get(self) -> insn_t * + | insn | | mb - | codegen_t_mb_get(self) -> mblock_t + | mb | | mba - | codegen_t_mba_get(self) -> mbl_array_t + | mba | | thisown | The membership flag @@ -21302,36 +24991,57 @@ Help on function convert_to_user_call in module ida_hexrays: convert_to_user_call(*args) -> 'merror_t' convert_to_user_call(udc, cdg) -> merror_t - - try to generate user-defined call for an instruction - @param udc (C++: const udcall_t &) - @param cdg (C++: codegen_t &) - @return: Microcode error codes code: MERR_OK - user-defined call - generated else - error (MERR_INSN == inacceptable udc.tif) + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) + +Help on function create_cfunc in module ida_hexrays: + +create_cfunc(*args) -> 'cfuncptr_t' + create_cfunc(mba) -> cfuncptr_t + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. + +Help on function create_empty_mba in module ida_hexrays: + +create_empty_mba(*args) -> 'mba_t *' + create_empty_mba(mbr, hf=None) -> mba_t + Create an empty microcode object. + + @param mbr: (C++: const mba_ranges_t &) mba_ranges_t const & + @param hf: (C++: hexrays_failure_t *) Help on function create_field_name in module ida_hexrays: create_field_name(*args) -> 'qstring' create_field_name(type, offset=BADADDR) -> qstring + + @param type: tinfo_t const & + @param offset: uval_t Help on function create_helper in module ida_hexrays: create_helper(*args) + Create a helper object.. Help on function create_typedef in module ida_hexrays: create_typedef(*args) -> 'tinfo_t' create_typedef(name) -> tinfo_t + Create a reference to an ordinal type. + + @param name: char const * + + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. create_typedef(n) -> tinfo_t - - Create a reference to a named type. - - @param name: type name (C++: const char *) - @return: type which refers to the specified name. For example, if name - is "DWORD", the type info which refers to "DWORD" is created. + @param n: int Help on class creturn_t in module ida_hexrays: @@ -21347,24 +25057,36 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: creturn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: creturn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: creturn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: creturn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: creturn_t const & | | __repr__ = _swig_repr(self) | @@ -21373,6 +25095,8 @@ class creturn_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21395,7 +25119,7 @@ class creturn_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class cswitch_t in module ida_hexrays: @@ -21411,24 +25135,36 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cswitch_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cswitch_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cswitch_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cswitch_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cswitch_t const & | | __repr__ = _swig_repr(self) | @@ -21437,15 +25173,17 @@ class cswitch_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cases - | cswitch_t_cases_get(self) -> ccases_t + | cases | | mvnf - | cswitch_t_mvnf_get(self) -> cnumber_t + | mvnf | | thisown | The membership flag @@ -21465,7 +25203,7 @@ class cswitch_t(ceinsn_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on class ctext_position_t in module ida_hexrays: @@ -21476,24 +25214,40 @@ class ctext_position_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | + | @param _lnnum: int + | @param _x: int + | @param _y: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -21502,9 +25256,14 @@ class ctext_position_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21516,16 +25275,16 @@ class ctext_position_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -21581,7 +25340,7 @@ class ctree_anchor_t(builtins.object) | The membership flag | | value - | ctree_anchor_t_value_get(self) -> uval_t + | value Help on class ctree_item_t in module ida_hexrays: @@ -21613,20 +25372,44 @@ class ctree_item_t(builtins.object) | _get_l(self, *args) -> 'lvar_t *' | _get_l(self) -> lvar_t | + | _print(self, *args) -> 'void' + | _print(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed | | get_label_num(self, *args) -> 'int' | get_label_num(self, gln_flags) -> int + | Get label number of the current item. + | + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label | | get_lvar(self, *args) -> 'lvar_t *' | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed | | get_memptr(self, *args) -> 'member_t *' | get_memptr(self, p_sptr=None) -> member_t * + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed | | is_citem(self, *args) -> 'bool' | is_citem(self) -> bool + | Is the current item is a ctree item? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21638,7 +25421,7 @@ class ctree_item_t(builtins.object) | list of weak references to the object (if defined) | | citype - | ctree_item_t_citype_get(self) -> cursor_item_type_t + | citype | | e | @@ -21651,7 +25434,7 @@ class ctree_item_t(builtins.object) | l | | loc - | ctree_item_t_loc_get(self) -> treeloc_t + | loc | | thisown | The membership flag @@ -21665,13 +25448,19 @@ class ctree_items_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & | | __getitem__(self, *args) -> 'citem_t *const &' | __getitem__(self, i) -> citem_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21680,20 +25469,31 @@ class ctree_items_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: citem_t *const & | | __swig_destroy__ = delete_ctree_items_t(...) | delete_ctree_items_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: citem_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: citem_t *const & | | append = push_back(self, *args) -> 'citem_t *&' | @@ -21721,32 +25521,54 @@ class ctree_items_t(builtins.object) | | erase(self, *args) -> 'qvector< citem_t * >::iterator' | erase(self, it) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | | erase(self, first, last) -> qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator | | extract(self, *args) -> 'citem_t **' | extract(self) -> citem_t ** | | find(self, *args) -> 'qvector< citem_t * >::const_iterator' | find(self, x) -> qvector< citem_t * >::iterator + | + | @param x: citem_t *const & + | | find(self, x) -> qvector< citem_t * >::const_iterator + | + | @param x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: citem_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: citem_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< citem_t * >::iterator' | insert(self, it, x) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'citem_t *&' | push_back(self, x) + | + | @param x: citem_t *const & + | | push_back(self) -> citem_t *& | | qclear(self, *args) -> 'void' @@ -21754,16 +25576,26 @@ class ctree_items_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: citem_t *const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< citem_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -21801,14 +25633,28 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t + | + | @param post: bool | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_ctree_parentee_t(...) | delete_ctree_parentee_t(self) | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | | recalc_parent_types(self, *args) -> 'bool' | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21821,54 +25667,104 @@ class ctree_parentee_t(ctree_visitor_t) | | apply_to(self, *args) -> 'int' | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) -> 'bool' | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -21880,10 +25776,10 @@ class ctree_parentee_t(ctree_visitor_t) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents Help on class ctree_visitor_t in module ida_hexrays: @@ -21896,6 +25792,8 @@ class ctree_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t + | + | @param _flags: int | | __repr__ = _swig_repr(self) | @@ -21904,54 +25802,104 @@ class ctree_visitor_t(builtins.object) | | apply_to(self, *args) -> 'int' | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> 'int' | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) -> 'void' | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. | | clr_restart(self, *args) -> 'void' | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) -> 'bool' | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) -> 'int' | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> 'int' | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) -> 'bool' | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) -> 'bool' | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) -> 'bool' | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) -> 'bool' | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) -> 'cexpr_t *' | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) -> 'cinsn_t *' | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) -> 'void' | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. | | set_restart(self, *args) -> 'void' | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() | | visit_expr(self, *args) -> 'int' | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> 'int' | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21963,10 +25911,10 @@ class ctree_visitor_t(builtins.object) | list of weak references to the object (if defined) | | cv_flags - | ctree_visitor_t_cv_flags_get(self) -> int + | cv_flags | | parents - | ctree_visitor_t_parents_get(self) -> ctree_items_t + | parents | | thisown | The membership flag @@ -21986,24 +25934,36 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: cwhile_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: cwhile_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: cwhile_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: cwhile_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: cwhile_t const & | | __repr__ = _swig_repr(self) | @@ -22012,6 +25972,8 @@ class cwhile_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22029,6 +25991,8 @@ class cwhile_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -22037,7 +26001,7 @@ class cwhile_t(cloop_t) | Data descriptors inherited from cloop_t: | | body - | cloop_t_body_get(self) -> cinsn_t + | body | | ---------------------------------------------------------------------- | Data descriptors inherited from ceinsn_t: @@ -22049,168 +26013,146 @@ class cwhile_t(cloop_t) | list of weak references to the object (if defined) | | expr - | ceinsn_t_expr_get(self) -> cexpr_t + | expr Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) -> 'void' - debug_hexrays_ctree(msg) + debug_hexrays_ctree(level, msg) + + @param level: int + @param msg: char const * Help on function decompile in module ida_hexrays: decompile(ea, hf=None, flags=0) - # --------------------------------------------------------------------- + Decompile a function. + + @param ea an address belonging to the function, or an ida_funcs.func_t object + @param hf extended error information (if failed) + @param flags decomp_flags bitwise combination of `DECOMP_...` bits + @return the decompilation result (a `ida_hexrays.cfunc_t` wrapper), or None Help on function decompile_func in module ida_hexrays: decompile_func(*args) -> 'cfuncptr_t' - decompile_func(pfn, hf, flags=0) -> cfuncptr_t + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + Decompile a function. Multiple decompilations of the same function return the + same object. - - Decompile a function. Multiple decompilations of the same function - return the same object. - - @param pfn: pointer to function to decompile (C++: func_t *) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @return: pointer to the decompilation result (a reference counted - pointer). NULL if failed. + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. Help on function decompile_many in module ida_hexrays: decompile_many(*args) -> 'bool' decompile_many(outfile, funcaddrs, flags) -> bool - - Batch decompilation. Decompile all or the specified functions - @param outfile: name of the output file (C++: const char *) - @param funcaddrs: list of functions to decompile. If NULL or empty, - then decompile all nonlib functions (C++: const - eavec_t *) - @param flags: Batch decompilation bits (C++: int) - @return: true if no internal error occurred and the user has not - cancelled decompilation + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation Help on function dereference in module ida_hexrays: dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression Help on function dstr in module ida_hexrays: dstr(*args) -> 'char const *' dstr(tif) -> char const * + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" - - Print the specified type info. This function can be used from a - debugger by typing "tif->dstr()" - - @param tif (C++: const tinfo_t *) + @param tif: (C++: const tinfo_t *) tinfo_t const * Help on function dummy_ptrtype in module ida_hexrays: dummy_ptrtype(*args) -> 'tinfo_t' dummy_ptrtype(ptrsize, isfp) -> tinfo_t - - Generate a dummy pointer type - @param ptrsize: size of pointed object (C++: int) - @param isfp: is floating point object? (C++: bool) + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? Help on function eamap_begin in module ida_hexrays: eamap_begin(*args) -> 'eamap_iterator_t' eamap_begin(map) -> eamap_iterator_t - - Get iterator pointing to the beginning of eamap_t. - - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) -> 'void' eamap_clear(map) - - Clear eamap_t. - - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_end in module ida_hexrays: eamap_end(*args) -> 'eamap_iterator_t' eamap_end(map) -> eamap_iterator_t - - Get iterator pointing to the end of eamap_t. - - @param map (C++: const eamap_t *) + @param map: (C++: const eamap_t *) eamap_t const * Help on function eamap_erase in module ida_hexrays: eamap_erase(*args) -> 'void' eamap_erase(map, p) - - Erase current element from eamap_t. - - @param map (C++: eamap_t *) - @param p (C++: eamap_iterator_t) + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) Help on function eamap_find in module ida_hexrays: eamap_find(*args) -> 'eamap_iterator_t' eamap_find(map, key) -> eamap_iterator_t - - Find the specified key in eamap_t. - - @param map (C++: const eamap_t *) - @param key (C++: const ea_t &) + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function eamap_first in module ida_hexrays: eamap_first(*args) -> 'ea_t const &' eamap_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_free in module ida_hexrays: eamap_free(*args) -> 'void' eamap_free(map) - - Delete eamap_t instance. - - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on function eamap_insert in module ida_hexrays: eamap_insert(*args) -> 'eamap_iterator_t' eamap_insert(map, key, val) -> eamap_iterator_t - - Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. - - @param map (C++: eamap_t *) - @param key (C++: const ea_t &) - @param val (C++: const cinsnptrvec_t &) + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & Help on class eamap_iterator_t in module ida_hexrays: @@ -22221,12 +26163,16 @@ class eamap_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -22246,7 +26192,7 @@ class eamap_iterator_t(builtins.object) | The membership flag | | x - | eamap_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -22257,53 +26203,39 @@ Help on function eamap_new in module ida_hexrays: eamap_new(*args) -> 'eamap_t *' eamap_new() -> eamap_t - - Create a new eamap_t instance. Help on function eamap_next in module ida_hexrays: eamap_next(*args) -> 'eamap_iterator_t' eamap_next(p) -> eamap_iterator_t - - Move to the next element. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_prev in module ida_hexrays: eamap_prev(*args) -> 'eamap_iterator_t' eamap_prev(p) -> eamap_iterator_t - - Move to the previous element. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_second in module ida_hexrays: eamap_second(*args) -> 'cinsnptrvec_t &' eamap_second(p) -> cinsnptrvec_t - - Get reference to the current map value. - - @param p (C++: eamap_iterator_t) + @param p: (C++: eamap_iterator_t) Help on function eamap_size in module ida_hexrays: eamap_size(*args) -> 'size_t' eamap_size(map) -> size_t - - Get size of eamap_t. - - @param map (C++: eamap_t *) + @param map: (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -22314,9 +26246,17 @@ class eamap_t(builtins.object) | | __begin = eamap_begin(...) | eamap_begin(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __clear = eamap_clear(...) | eamap_clear(map) + | + | Parameters + | ---------- + | map: eamap_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -22326,15 +26266,33 @@ class eamap_t(builtins.object) | | __end = eamap_end(...) | eamap_end(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __erase = eamap_erase(...) | eamap_erase(map, p) + | + | Parameters + | ---------- + | map: eamap_t * + | p: eamap_iterator_t | | __find = eamap_find(...) | eamap_find(map, key) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | key: ea_t const & | | __first = eamap_first(...) | eamap_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -22344,6 +26302,12 @@ class eamap_t(builtins.object) | | __insert = eamap_insert(...) | eamap_insert(map, key, val) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t * + | key: ea_t const & + | val: cinsnptrvec_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -22353,23 +26317,37 @@ class eamap_t(builtins.object) | | __next = eamap_next(...) | eamap_next(p) -> eamap_iterator_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __repr__ = _swig_repr(self) | | __second = eamap_second(...) | eamap_second(p) -> cinsnptrvec_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = eamap_size(...) | eamap_size(map) -> size_t + | + | Parameters + | ---------- + | map: eamap_t * | | __swig_destroy__ = delete_eamap_t(...) | delete_eamap_t(self) | | at(self, *args) -> 'cinsnptrvec_t &' | at(self, _Keyval) -> cinsnptrvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -22452,48 +26430,6 @@ class eamap_t(builtins.object) | valuetype = <class 'ida_hexrays.cinsnptrvec_t'> | Proxy of C++ qvector< cinsn_t * > class. -Help on class fnum_array in module ida_hexrays: - -class fnum_array(builtins.object) - | Proxy of C++ wrapped_array_t< uint16,6 > class. - | - | Methods defined here: - | - | __getitem__(self, *args) -> 'unsigned short const &' - | __getitem__(self, i) -> unsigned short const & - | - | __init__(self, *args) - | __init__(self, data) -> fnum_array - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_fnum_array(...) - | delete_fnum_array(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | data - | fnum_array_data_get(self) -> unsigned short (&)[6] - | - | thisown - | The membership flag - Help on class fnumber_t in module ida_hexrays: class fnumber_t(builtins.object) @@ -22503,38 +26439,49 @@ class fnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: fnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: fnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: fnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: fnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: fnumber_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_fnumber_t(...) | delete_fnumber_t(self) | - | _fnumber_t__get_fnum = __get_fnum(self, *args) -> 'wrapped_array_t< uint16,6 >' - | __get_fnum(self) -> fnum_array - | | _print(self, *args) -> 'void' | _print(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: fnumber_t const & | | dereference_const_uint16(self, *args) -> 'uint16 const *' | dereference_const_uint16(self) -> uint16 const * @@ -22552,10 +26499,10 @@ class fnumber_t(builtins.object) | list of weak references to the object (if defined) | | fnum - | __get_fnum(self) -> fnum_array + | fnum | | nbytes - | fnumber_t_nbytes_get(self) -> int + | nbytes | | thisown | The membership flag @@ -22582,6 +26529,16 @@ class gco_info_t(builtins.object) | | append_to_list(self, *args) -> 'bool' | append_to_list(self, list, mba) -> bool + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object + | + | cvt_to_ivl(self, *args) -> 'vivl_t' + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). | | is_def(self, *args) -> 'bool' | is_def(self) -> bool @@ -22602,70 +26559,66 @@ class gco_info_t(builtins.object) | list of weak references to the object (if defined) | | flags - | gco_info_t_flags_get(self) -> int + | flags | | name - | gco_info_t_name_get(self) -> qstring * + | name + | + | regnum + | regnum | | size - | gco_info_t_size_get(self) -> int + | size + | + | stkoff + | stkoff | | thisown | The membership flag Help on function gen_microcode in module ida_hexrays: -gen_microcode(*args) -> 'mbl_array_t *' - gen_microcode(mbr, hf, retlist=None, flags=0, reqmat=MMAT_GLBOPT3) -> mbl_array_t - - +gen_microcode(*args) -> 'mba_t *' + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t Generate microcode of an arbitrary code snippet - @param mbr: snippet ranges (C++: const mba_ranges_t &) - @param hf: extended error information (if failed) (C++: - hexrays_failure_t *) - @param retlist: list of registers the snippet returns (C++: const - mlist_t *) - @param flags: bitwise combination of decompile() flags ... bits (C++: - int) - @param reqmat: required microcode maturity (C++: mba_maturity_t) - @return: pointer to the microcode, NULL if failed. + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. Help on function get_ctype_name in module ida_hexrays: get_ctype_name(*args) -> 'char const *' get_ctype_name(op) -> char const * + + @param op: enum ctype_t Help on function get_current_operand in module ida_hexrays: get_current_operand(*args) -> 'bool' get_current_operand(out) -> bool + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. - - Get the instruction operand under the cursor. This function determines - the operand that is under the cursor in the active disassembly - listing. If the operand refers to a register or stack variable, it - return true. - - @param out (C++: gco_info_t *) + @param out: (C++: gco_info_t *) [out]: output buffer Help on function get_float_type in module ida_hexrays: get_float_type(*args) -> 'tinfo_t' get_float_type(width) -> tinfo_t - - Get a type of a floating point value with the specified width - @param width: width of the desired type (C++: int) + @param width: (C++: int) width of the desired type @return: type info object Help on function get_hexrays_version in module ida_hexrays: get_hexrays_version(*args) -> 'char const *' get_hexrays_version() -> char const * - - Get decompiler version. The returned string is of the form <major>.<minor>.<revision>.<build-date> @@ -22675,147 +26628,122 @@ Help on function get_int_type_by_width_and_sign in module ida_hexrays: get_int_type_by_width_and_sign(*args) -> 'tinfo_t' get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. - - Create a type info by width and sign. Returns a simple type (examples: - int, short) with the given width and sign. - - @param srcwidth: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type Help on function get_member_type in module ida_hexrays: get_member_type(*args) -> 'bool' get_member_type(mptr, type) -> bool + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. - - Get type of a structure field. This function performs validity checks - of the field type. Wrong types are rejected. - - @param mptr: structure field (C++: const member_t *) - @param type: pointer to the variable where the type is returned. This - parameter can be NULL. (C++: tinfo_t *) + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. @return: false if failed Help on function get_merror_desc in module ida_hexrays: get_merror_desc(*args) -> 'qstring *' get_merror_desc(code, mba) -> str - - Get textual description of an error code - @param code: Microcode error codes (C++: merror_t) - @param mba: the microcode array (C++: mbl_array_t *) + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) -> 'qstring *' get_mreg_name(reg, width, ud=None) -> str + Get the microregister name. - - Get the microregister name - - @param reg (C++: mreg_t) - @param width: size of microregister in bytes. may be bigger than the - real register size. (C++: int) - @param ud: reserved, must be nullptr (C++: void *) - @return: width of the printed register. this value may be less than - the WIDTH argument. + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. Help on function get_op_signness in module ida_hexrays: get_op_signness(*args) -> 'type_sign_t' get_op_signness(op) -> type_sign_t + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. - - Get operator sign. Meaningful for sign-dependent operators, like - cot_sdiv. - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function get_signed_mcode in module ida_hexrays: get_signed_mcode(*args) -> 'mcode_t' get_signed_mcode(code) -> mcode_t + + @param code: enum mcode_t Help on function get_temp_regs in module ida_hexrays: get_temp_regs(*args) -> 'mlist_t const &' get_temp_regs() -> mlist_t - - - Get list of temporary registers. Tempregs are temporary registers that - are used during code generation. They do not map to regular processor - registers. They are used only to store temporary values during - execution of one instruction. Tempregs may not be used to pass a value - from one block to another. In other words, at the end of a block all - tempregs must be dead. + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. Help on function get_type in module ida_hexrays: get_type(*args) -> 'bool' get_type(id, tif, guess) -> bool - - Get a global type. Global types are types of addressable objects and struct/union/enum types - @param id: address or id of the object (C++: uval_t) - @param tif: buffer for the answer (C++: tinfo_t *) - @param guess: what kind of types to consider (C++: type_source_t) + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider @return: success Help on function get_unk_type in module ida_hexrays: get_unk_type(*args) -> 'tinfo_t' get_unk_type(size) -> tinfo_t + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. - - Create a partial type info by width. Returns a partially defined type - (examples: _DWORD, _BYTE) with the given width. - - @param size: size of the type in bytes (C++: int) + @param size: (C++: int) size of the type in bytes Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) -> 'mcode_t' get_unsigned_mcode(code) -> mcode_t + + @param code: enum mcode_t Help on function get_widget_vdui in module ida_hexrays: get_widget_vdui(*args) -> 'vdui_t *' get_widget_vdui(f) -> vdui_t + Get the vdui_t instance associated to the TWidget - - Get the 'vdui_t' instance associated to the TWidget - - @param f: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr Help on function getb_reginsn in module ida_hexrays: getb_reginsn(*args) -> 'minsn_t *' getb_reginsn(ins) -> minsn_t - - Skip assertions backward. - - - @param ins (C++: const minsn_t *) + @param ins: minsn_t * Help on function getf_reginsn in module ida_hexrays: getf_reginsn(*args) -> 'minsn_t *' getf_reginsn(ins) -> minsn_t - - Skip assertions forward. - - - @param ins (C++: const minsn_t *) + @param ins: minsn_t * Help on class graph_chains_t in module ida_hexrays: @@ -22839,18 +26767,29 @@ class graph_chains_t(block_chains_vec_t) | | acquire(self, *args) -> 'void' | acquire(self) + | Lock the chains. | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca_flags) -> int + | Visit all chains + | + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits | | is_locked(self, *args) -> 'bool' | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. | | release(self, *args) -> 'void' | release(self) + | Unlock the chains. | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: graph_chains_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22863,6 +26802,8 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22872,16 +26813,20 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' | begin(self) -> block_chains_t - | begin(self) -> block_chains_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -22894,11 +26839,16 @@ class graph_chains_t(block_chains_vec_t) | | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' | end(self) -> block_chains_t - | end(self) -> block_chains_t | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -22908,18 +26858,29 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) + | + | @param x: block_chains_t const & + | | push_back(self) -> block_chains_t | | qclear(self, *args) -> 'void' @@ -22927,10 +26888,18 @@ class graph_chains_t(block_chains_vec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -22951,17 +26920,23 @@ Help on function has_cached_cfunc in module ida_hexrays: has_cached_cfunc(*args) -> 'bool' has_cached_cfunc(ea) -> bool - - Do we have a cached decompilation result for 'ea'? + @param ea: (C++: ea_t) + +Help on function has_mcode_seloff in module ida_hexrays: + +has_mcode_seloff(*args) -> 'bool' + has_mcode_seloff(op) -> bool - @param ea (C++: ea_t) + @param op: enum mcode_t Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) -> 'void *' hexrays_alloc(size) -> void * + + @param size: size_t Help on class hexrays_failure_t in module ida_hexrays: @@ -22973,7 +26948,16 @@ class hexrays_failure_t(builtins.object) | __init__(self, *args) | __init__(self) -> hexrays_failure_t | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | | __init__(self, c, ea, buf) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -22995,13 +26979,13 @@ class hexrays_failure_t(builtins.object) | list of weak references to the object (if defined) | | code - | hexrays_failure_t_code_get(self) -> merror_t + | code | | errea - | hexrays_failure_t_errea_get(self) -> ea_t + | errea | | str - | hexrays_failure_t_str_get(self) -> qstring * + | str | | thisown | The membership flag @@ -23010,6 +26994,8 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) -> 'void' hexrays_free(ptr) + + @param ptr: void * Help on class hexwarn_t in module ida_hexrays: @@ -23020,24 +27006,36 @@ class hexwarn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: hexwarn_t const & | | __repr__ = _swig_repr(self) | @@ -23046,6 +27044,8 @@ class hexwarn_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23057,13 +27057,13 @@ class hexwarn_t(builtins.object) | list of weak references to the object (if defined) | | ea - | hexwarn_t_ea_get(self) -> ea_t + | ea | | id - | hexwarn_t_id_get(self) -> warnid_t + | id | | text - | hexwarn_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -23082,13 +27082,19 @@ class hexwarns_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & | | __getitem__(self, *args) -> 'hexwarn_t const &' | __getitem__(self, i) -> hexwarn_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23097,20 +27103,31 @@ class hexwarns_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: hexwarn_t const & | | __swig_destroy__ = delete_hexwarns_t(...) | delete_hexwarns_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: hexwarn_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: hexwarn_t const & | | append = push_back(self, *args) -> 'hexwarn_t &' | @@ -23121,7 +27138,6 @@ class hexwarns_t(builtins.object) | | begin(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | begin(self) -> hexwarn_t - | begin(self) -> hexwarn_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -23134,39 +27150,58 @@ class hexwarns_t(builtins.object) | | end(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | end(self) -> hexwarn_t - | end(self) -> hexwarn_t | | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' | erase(self, it) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | | erase(self, first, last) -> hexwarn_t + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator | | extract(self, *args) -> 'hexwarn_t *' | extract(self) -> hexwarn_t | | find(self, *args) -> 'qvector< hexwarn_t >::const_iterator' | find(self, x) -> hexwarn_t - | find(self, x) -> hexwarn_t + | + | @param x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=hexwarn_t()) + | + | @param x: hexwarn_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: hexwarn_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: hexwarn_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' | insert(self, it, x) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'hexwarn_t &' | push_back(self, x) + | + | @param x: hexwarn_t const & + | | push_back(self) -> hexwarn_t | | qclear(self, *args) -> 'void' @@ -23174,16 +27209,26 @@ class hexwarns_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: hexwarn_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< hexwarn_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23219,7 +27264,16 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int + | | __init__(self, _ea, p) -> history_item_t + | + | @param _ea: ea_t + | @param p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -23230,10 +27284,10 @@ class history_item_t(ctext_position_t) | Data descriptors defined here: | | ea - | history_item_t_ea_get(self) -> ea_t + | ea | | end - | history_item_t_end_get(self) -> ea_t + | end | | thisown | The membership flag @@ -23243,27 +27297,44 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -23275,13 +27346,13 @@ class history_item_t(ctext_position_t) | list of weak references to the object (if defined) | | lnnum - | ctext_position_t_lnnum_get(self) -> int + | lnnum | | x - | ctext_position_t_x_get(self) -> int + | x | | y - | ctext_position_t_y_get(self) -> int + | y | | ---------------------------------------------------------------------- | Data and other attributes inherited from ctext_position_t: @@ -23316,20 +27387,26 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) -> 'history_item_t &' | push_back(self, x) + | + | @param x: history_item_t const & + | | push_back(self) -> history_item_t | | at = __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | + | @param i: size_t | | pop(self, *args) -> 'history_item_t' | pop(self) -> history_item_t | | push(self, *args) -> 'void' | push(self, v) + | + | @param v: history_item_t const & | | top(self, *args) -> 'history_item_t &' | top(self) -> history_item_t - | top(self) -> history_item_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23342,28 +27419,42 @@ class history_t(qvector_history_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | + | @param i: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -23376,39 +27467,58 @@ class history_t(qvector_history_t) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | find(self, x) -> history_item_t + | + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) + | + | @param x: history_item_t const & + | | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' @@ -23416,16 +27526,26 @@ class history_t(qvector_history_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23448,359 +27568,375 @@ Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) -> 'bool' init_hexrays_plugin(flags=0) -> bool + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. - - Initialize your plugin for hex-rays decompiler. This function must be - called before calling any other decompiler function. It initializes - the pointer to the dispatcher. - - @param flags: reserved, must be 0 (C++: int) - @return: true if the decompiler exists and the dispatcher pointer is - ready to use. + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin Help on function install_hexrays_callback in module ida_hexrays: install_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed Help on function install_microcode_filter in module ida_hexrays: -install_microcode_filter(*args) -> 'void' - install_microcode_filter(filter, install=True) - - +install_microcode_filter(*args) -> 'bool' + install_microcode_filter(filter, install=True) -> bool register/unregister non-standard microcode generator - @param filter: - microcode generator object (C++: microcode_filter_t - *) - @param install: - TRUE - register the object, FALSE - unregister (C++: - bool) + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) -> 'bool' is_additive(op) -> bool - - Is additive operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_assignment in module ida_hexrays: is_assignment(*args) -> 'bool' is_assignment(op) -> bool - - Is assignment operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_binary in module ida_hexrays: is_binary(*args) -> 'bool' is_binary(op) -> bool - - Is binary operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bitop in module ida_hexrays: is_bitop(*args) -> 'bool' is_bitop(op) -> bool - - Is bit related operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_bool_type in module ida_hexrays: is_bool_type(*args) -> 'bool' is_bool_type(type) -> bool - - Is a boolean type? - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & @return: true if the type is a boolean type Help on function is_break_consumer in module ida_hexrays: is_break_consumer(*args) -> 'bool' is_break_consumer(op) -> bool - - Does a break statement influence the specified statement code? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_commutative in module ida_hexrays: is_commutative(*args) -> 'bool' is_commutative(op) -> bool - - Is commutative operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_inplace_def in module ida_hexrays: is_inplace_def(*args) -> 'bool' is_inplace_def(type) -> bool - - Is struct/union/enum definition (not declaration)? - - @param type (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) tinfo_t const & Help on function is_kreg in module ida_hexrays: is_kreg(*args) -> 'bool' is_kreg(r) -> bool + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() - - Is a kernel register? - - - @param r (C++: mreg_t) + @param r: (C++: mreg_t) Help on function is_logical in module ida_hexrays: is_logical(*args) -> 'bool' is_logical(op) -> bool - - Is logical operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_loop in module ida_hexrays: is_loop(*args) -> 'bool' is_loop(op) -> bool - - Is loop statement code? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_lvalue in module ida_hexrays: is_lvalue(*args) -> 'bool' is_lvalue(op) -> bool - - Is Lvalue operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_may_access in module ida_hexrays: is_may_access(*args) -> 'bool' is_may_access(maymust) -> bool + + @param maymust: maymust_t Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) -> 'bool' is_mcode_addsub(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) -> 'bool' is_mcode_call(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) -> 'bool' is_mcode_commutative(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_jmp in module ida_hexrays: is_mcode_convertible_to_jmp(*args) -> 'bool' is_mcode_convertible_to_jmp(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_convertible_to_set in module ida_hexrays: is_mcode_convertible_to_set(*args) -> 'bool' is_mcode_convertible_to_set(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) -> 'bool' is_mcode_divmod(op) -> bool + + @param op: enum mcode_t Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) -> 'bool' is_mcode_fpu(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) -> 'bool' is_mcode_j1(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) -> 'bool' is_mcode_jcond(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_propagatable in module ida_hexrays: is_mcode_propagatable(*args) -> 'bool' is_mcode_propagatable(mcode) -> bool + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. - - May opcode be propagated? Such opcodes can be used in sub-instructions - (nested instructions) There is a handful of non-propagatable opcodes, - like jumps, ret, nop, etc All other regular opcodes are propagatable - and may appear in a nested instruction. - - @param mcode (C++: mcode_t) + @param mcode: (C++: mcode_t) enum mcode_t Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) -> 'bool' is_mcode_set(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) -> 'bool' is_mcode_set1(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) -> 'bool' is_mcode_shift(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) -> 'bool' is_mcode_xdsu(mcode) -> bool + + @param mcode: enum mcode_t Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) -> 'bool' is_multiplicative(op) -> bool - - Is multiplicative operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_nonbool_type in module ida_hexrays: is_nonbool_type(*args) -> 'bool' is_nonbool_type(type) -> bool - - Is definitely a non-boolean type? - @param type (C++: const tinfo_t &) - @return: true if the type is a non-boolean type (non bool and well - defined) + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) Help on function is_paf in module ida_hexrays: is_paf(*args) -> 'bool' is_paf(t) -> bool - - Is a pointer, array, or function type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_prepost in module ida_hexrays: is_prepost(*args) -> 'bool' is_prepost(op) -> bool - - Is pre/post increment/decrement operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_ptr_or_array in module ida_hexrays: is_ptr_or_array(*args) -> 'bool' is_ptr_or_array(t) -> bool - - Is a pointer or array type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_relational in module ida_hexrays: is_relational(*args) -> 'bool' is_relational(op) -> bool - - Is comparison operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) -> 'bool' is_signed_mcode(code) -> bool + + @param code: enum mcode_t Help on function is_small_udt in module ida_hexrays: is_small_udt(*args) -> 'bool' is_small_udt(tif) -> bool - - Is a small structure or union? - @param tif (C++: const tinfo_t &) - @return: true if the type is a small UDT (user defined type). Small - UDTs fit into a register (or pair or registers) as a rule. + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. Help on function is_type_correct in module ida_hexrays: is_type_correct(*args) -> 'bool' is_type_correct(ptr) -> bool - - Verify a type string. - @param ptr (C++: const type_t *) + @param ptr: (C++: const type_t *) type_t const * @return: true if type string is correct Help on function is_unary in module ida_hexrays: is_unary(*args) -> 'bool' is_unary(op) -> bool - - Is unary operator? - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) -> 'bool' is_unsigned_mcode(code) -> bool + + @param code: enum mcode_t + +Help on class iterator in module ida_hexrays: + +class iterator(builtins.object) + | Proxy of C++ bitset_t::iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | + | @param n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __ref__(self, *args) -> 'int' + | __ref__(self) -> int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_iterator(...) + | delete_iterator(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on class ivl_t in module ida_hexrays: @@ -23816,24 +27952,39 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ivl_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ivl_t const & | | __init__(self, *args) - | __init__(self, _off, _size) -> ivl_t + | __init__(self, _off=0, _size=0) -> ivl_t + | + | @param _off: uval_t + | @param _size: uval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -23845,9 +27996,13 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ivl_t const & | | contains(self, *args) -> 'bool' | contains(self, off2) -> bool + | + | @param off2: uval_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -23857,15 +28012,23 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool + | + | @param r: ivl_t const & | | includes(self, *args) -> 'bool' | includes(self, ivl) -> bool + | + | @param ivl: ivl_t const & | | intersect(self, *args) -> 'void' | intersect(self, r) + | + | @param r: ivl_t const & | | overlap(self, *args) -> 'bool' | overlap(self, ivl) -> bool + | + | @param ivl: ivl_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23900,10 +28063,10 @@ class ivl_t(uval_ivl_t) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size Help on class ivl_with_name_t in module ida_hexrays: @@ -23930,16 +28093,16 @@ class ivl_with_name_t(builtins.object) | list of weak references to the object (if defined) | | ivl - | ivl_with_name_t_ivl_get(self) -> ivl_t + | ivl | | part - | ivl_with_name_t_part_get(self) -> char const * + | part | | thisown | The membership flag | | whole - | ivl_with_name_t_whole_get(self) -> char const * + | whole Help on class ivlset_t in module ida_hexrays: @@ -23955,25 +28118,39 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ivlset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: ivlset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: ivlset_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: ivlset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -23985,17 +28162,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) -> 'bool' | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | add(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | | add(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | addmasked(self, *args) -> 'bool' | addmasked(self, ivs, mask) -> bool + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: ivlset_t const & | | contains(self, *args) -> 'bool' | contains(self, off) -> bool + | + | @param off: uval_t | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -24005,18 +28198,37 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) -> 'bool' | has_common(self, ivl, strict=False) -> bool + | + | @param ivl: ivl_t const & + | @param strict: bool + | | has_common(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | includes(self, *args) -> 'bool' | includes(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | sub(self, *args) -> 'bool' | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | sub(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | | sub(self, ivs) -> bool + | + | @param ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24051,6 +28263,8 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -24065,10 +28279,15 @@ class ivlset_t(uval_ivl_ivlset_t) | set_all_values(self) | | single_value(self, *args) -> 'bool' + | single_value(self) -> bool | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -24083,15 +28302,37 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) -> 'mcode_t' jcnd2set(code) -> mcode_t + + @param code: enum mcode_t Help on function lexcompare in module ida_hexrays: lexcompare(*args) -> 'int' lexcompare(a, b) -> int + + @param a: mop_t const & + @param b: mop_t const & Help on function lnot in module ida_hexrays: lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. + +Help on function locate_lvar in module ida_hexrays: + +locate_lvar(*args) -> 'bool' + locate_lvar(out, func_ea, varname) -> bool + Find a variable by name. + + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. Help on class lvar_locator_t in module ida_hexrays: @@ -24102,25 +28343,40 @@ class lvar_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | @@ -24129,34 +28385,47 @@ class lvar_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24168,10 +28437,10 @@ class lvar_locator_t(builtins.object) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | thisown | The membership flag @@ -24185,94 +28454,69 @@ Help on function lvar_mapping_begin in module ida_hexrays: lvar_mapping_begin(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_begin(map) -> lvar_mapping_iterator_t - - Get iterator pointing to the beginning of lvar_mapping_t. - - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_clear in module ida_hexrays: lvar_mapping_clear(*args) -> 'void' lvar_mapping_clear(map) - - Clear lvar_mapping_t. - - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_end in module ida_hexrays: lvar_mapping_end(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_end(map) -> lvar_mapping_iterator_t - - Get iterator pointing to the end of lvar_mapping_t. - - @param map (C++: const lvar_mapping_t *) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * Help on function lvar_mapping_erase in module ida_hexrays: lvar_mapping_erase(*args) -> 'void' lvar_mapping_erase(map, p) - - Erase current element from lvar_mapping_t. - - @param map (C++: lvar_mapping_t *) - @param p (C++: lvar_mapping_iterator_t) + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_find in module ida_hexrays: lvar_mapping_find(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_find(map, key) -> lvar_mapping_iterator_t - - Find the specified key in lvar_mapping_t. - - @param map (C++: const lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & Help on function lvar_mapping_first in module ida_hexrays: lvar_mapping_first(*args) -> 'lvar_locator_t const &' lvar_mapping_first(p) -> lvar_locator_t - - Get reference to the current map key. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_free in module ida_hexrays: lvar_mapping_free(*args) -> 'void' lvar_mapping_free(map) - - Delete lvar_mapping_t instance. - - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on function lvar_mapping_insert in module ida_hexrays: lvar_mapping_insert(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. - - Insert new ( 'lvar_locator_t' , 'lvar_locator_t' ) pair into - lvar_mapping_t. - - - @param map (C++: lvar_mapping_t *) - @param key (C++: const lvar_locator_t &) - @param val (C++: const lvar_locator_t &) + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & Help on class lvar_mapping_iterator_t in module ida_hexrays: @@ -24283,12 +28527,16 @@ class lvar_mapping_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -24308,7 +28556,7 @@ class lvar_mapping_iterator_t(builtins.object) | The membership flag | | x - | lvar_mapping_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24319,53 +28567,39 @@ Help on function lvar_mapping_new in module ida_hexrays: lvar_mapping_new(*args) -> 'lvar_mapping_t *' lvar_mapping_new() -> lvar_mapping_t - - Create a new lvar_mapping_t instance. Help on function lvar_mapping_next in module ida_hexrays: lvar_mapping_next(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_next(p) -> lvar_mapping_iterator_t - - Move to the next element. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_prev in module ida_hexrays: lvar_mapping_prev(*args) -> 'lvar_mapping_iterator_t' lvar_mapping_prev(p) -> lvar_mapping_iterator_t - - Move to the previous element. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_second in module ida_hexrays: lvar_mapping_second(*args) -> 'lvar_locator_t &' lvar_mapping_second(p) -> lvar_locator_t - - Get reference to the current map value. - - @param p (C++: lvar_mapping_iterator_t) + @param p: (C++: lvar_mapping_iterator_t) Help on function lvar_mapping_size in module ida_hexrays: lvar_mapping_size(*args) -> 'size_t' lvar_mapping_size(map) -> size_t - - Get size of lvar_mapping_t. - - @param map (C++: lvar_mapping_t *) + @param map: (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -24384,6 +28618,8 @@ class lvar_mapping_t(builtins.object) | | at(self, *args) -> 'lvar_locator_t &' | at(self, _Keyval) -> lvar_locator_t + | + | @param _Keyval: lvar_locator_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -24409,25 +28645,44 @@ class lvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t + | + | @param m: mba_t * + | @param i: int + | @param o: sval_t + | | __init__(self, r) -> lvar_ref_t + | + | @param r: lvar_ref_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -24436,12 +28691,17 @@ class lvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: lvar_ref_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: lvar_ref_t & | | var(self, *args) -> 'lvar_t &' | var(self) -> lvar_t + | Retrieve the referenced variable. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24453,13 +28713,13 @@ class lvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | lvar_ref_t_idx_get(self) -> int + | idx | | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t + | mba | | off - | lvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -24478,12 +28738,16 @@ class lvar_saved_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -24502,6 +28766,9 @@ class lvar_saved_info_t(builtins.object) | clr_noptr_lvar(self, *args) -> 'void' | clr_noptr_lvar(self) | + | clr_unused_lvar(self, *args) -> 'void' + | clr_unused_lvar(self) + | | has_info(self, *args) -> 'bool' | has_info(self) -> bool | @@ -24517,6 +28784,9 @@ class lvar_saved_info_t(builtins.object) | is_noptr_lvar(self, *args) -> 'bool' | is_noptr_lvar(self) -> bool | + | is_unused_lvar(self, *args) -> 'bool' + | is_unused_lvar(self) -> bool + | | set_forced_lvar(self, *args) -> 'void' | set_forced_lvar(self) | @@ -24529,6 +28799,9 @@ class lvar_saved_info_t(builtins.object) | set_noptr_lvar(self, *args) -> 'void' | set_noptr_lvar(self) | + | set_unused_lvar(self, *args) -> 'void' + | set_unused_lvar(self) + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -24539,25 +28812,25 @@ class lvar_saved_info_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | lvar_saved_info_t_cmt_get(self) -> qstring * + | cmt | | flags - | lvar_saved_info_t_flags_get(self) -> int + | flags | | ll - | lvar_saved_info_t_ll_get(self) -> lvar_locator_t + | ll | | name - | lvar_saved_info_t_name_get(self) -> qstring * + | name | | size - | lvar_saved_info_t_size_get(self) -> ssize_t + | size | | thisown | The membership flag | | type - | lvar_saved_info_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -24573,13 +28846,19 @@ class lvar_saved_infos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) -> 'lvar_saved_info_t const &' | __getitem__(self, i) -> lvar_saved_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -24588,20 +28867,31 @@ class lvar_saved_infos_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_saved_info_t const & | | __swig_destroy__ = delete_lvar_saved_infos_t(...) | delete_lvar_saved_infos_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lvar_saved_info_t const & | | append = push_back(self, *args) -> 'lvar_saved_info_t &' | @@ -24612,7 +28902,6 @@ class lvar_saved_infos_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | begin(self) -> lvar_saved_info_t - | begin(self) -> lvar_saved_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -24625,39 +28914,58 @@ class lvar_saved_infos_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | end(self) -> lvar_saved_info_t - | end(self) -> lvar_saved_info_t | | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | erase(self, it) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | | erase(self, first, last) -> lvar_saved_info_t + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) -> 'lvar_saved_info_t *' | extract(self) -> lvar_saved_info_t | | find(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' | find(self, x) -> lvar_saved_info_t - | find(self, x) -> lvar_saved_info_t + | + | @param x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_saved_info_t()) + | + | @param x: lvar_saved_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lvar_saved_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lvar_saved_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | insert(self, it, x) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_saved_info_t &' | push_back(self, x) + | + | @param x: lvar_saved_info_t const & + | | push_back(self) -> lvar_saved_info_t | | qclear(self, *args) -> 'void' @@ -24665,16 +28973,26 @@ class lvar_saved_infos_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lvar_saved_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -24711,6 +29029,9 @@ class lvar_t(lvar_locator_t) | __init__(self, *args, **kwargs) | __init__(self) -> lvar_locator_t | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t | | __repr__ = _swig_repr(self) | @@ -24719,9 +29040,19 @@ class lvar_t(lvar_locator_t) | | accepts_type(self, *args) -> 'bool' | accepts_type(self, t, may_change_thisarg=False) -> bool + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) | | append_list(self, *args) -> 'void' - | append_list(self, lst, pad_if_scattered=False) + | append_list(self, mba, lst, pad_if_scattered=False) + | Append local variable to mlist. + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) if true, append padding bytes in case of scattered lvar | | clear_used(self, *args) -> 'void' | clear_used(self) @@ -24732,6 +29063,9 @@ class lvar_t(lvar_locator_t) | clr_automapped(self, *args) -> 'void' | clr_automapped(self) | + | clr_decl_unused(self, *args) -> 'void' + | clr_decl_unused(self) + | | clr_dummy_arg(self, *args) -> 'void' | clr_dummy_arg(self) | @@ -24759,6 +29093,9 @@ class lvar_t(lvar_locator_t) | clr_overlapped_var(self, *args) -> 'void' | clr_overlapped_var(self) | + | clr_shared(self, *args) -> 'void' + | clr_shared(self) + | | clr_spoiled_var(self, *args) -> 'void' | clr_spoiled_var(self) | @@ -24768,6 +29105,9 @@ class lvar_t(lvar_locator_t) | clr_unknown_width(self, *args) -> 'void' | clr_unknown_width(self) | + | clr_used_byref(self, *args) -> 'void' + | clr_used_byref(self) + | | clr_user_info(self, *args) -> 'void' | clr_user_info(self) | @@ -24779,33 +29119,67 @@ class lvar_t(lvar_locator_t) | | has_common(self, *args) -> 'bool' | has_common(self, v) -> bool + | Do variables overlap? + | + | @param v: (C++: const lvar_t &) lvar_t const & | | has_common_bit(self, *args) -> 'bool' | has_common_bit(self, loc, width2) -> bool + | Does the variable overlap with the specified location? + | + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) | | has_regname(self, *args) -> 'bool' | has_regname(self) -> bool + | Has a register name? (like _RAX) + | + | in_asm(self, *args) -> 'bool' + | in_asm(self) -> bool + | Is variable used in an instruction translated into __asm? | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mba) -> bool + | Is the variable aliasable? + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) | | is_automapped(self, *args) -> 'bool' | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? + | + | is_decl_unused(self, *args) -> 'bool' + | is_decl_unused(self) -> bool + | Was declared as __unused by the user? See CVAR_UNUSED. | | is_dummy_arg(self, *args) -> 'bool' | is_dummy_arg(self) -> bool + | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) -> 'bool' | is_forced_var(self) -> bool + | Is a forced variable? | | is_noptr_var(self, *args) -> 'bool' | is_noptr_var(self) -> bool + | Variable type should not be a pointer. | | is_notarg(self, *args) -> 'bool' | is_notarg(self) -> bool + | Is a local variable? (local variable cannot be an input argument) + | + | is_shared(self, *args) -> 'bool' + | is_shared(self) -> bool + | Is lvar mapped to several chains. | | is_thisarg(self, *args) -> 'bool' | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) -> 'bool' + | is_used_byref(self) -> bool + | Was the address of the variable taken? | | set_arg_var(self, *args) -> 'void' | set_arg_var(self) @@ -24813,6 +29187,9 @@ class lvar_t(lvar_locator_t) | set_automapped(self, *args) -> 'void' | set_automapped(self) | + | set_decl_unused(self, *args) -> 'void' + | set_decl_unused(self) + | | set_dummy_arg(self, *args) -> 'void' | set_dummy_arg(self) | @@ -24821,6 +29198,9 @@ class lvar_t(lvar_locator_t) | | set_final_lvar_type(self, *args) -> 'void' | set_final_lvar_type(self, t) + | Set final variable type. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | set_floating_var(self, *args) -> 'void' | set_floating_var(self) @@ -24830,6 +29210,15 @@ class lvar_t(lvar_locator_t) | | set_lvar_type(self, *args) -> 'bool' | set_lvar_type(self, t, may_fail=False) -> bool + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success | | set_mapdst_var(self, *args) -> 'void' | set_mapdst_var(self) @@ -24849,6 +29238,9 @@ class lvar_t(lvar_locator_t) | set_overlapped_var(self, *args) -> 'void' | set_overlapped_var(self) | + | set_shared(self, *args) -> 'void' + | set_shared(self) + | | set_spoiled_var(self, *args) -> 'void' | set_spoiled_var(self) | @@ -24864,6 +29256,9 @@ class lvar_t(lvar_locator_t) | set_used(self, *args) -> 'void' | set_used(self) | + | set_used_byref(self, *args) -> 'void' + | set_used_byref(self) + | | set_user_name(self, *args) -> 'void' | set_user_name(self) | @@ -24872,131 +29267,177 @@ class lvar_t(lvar_locator_t) | | set_width(self, *args) -> 'bool' | set_width(self, w, svw_flags=0) -> bool + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success | | type(self, *args) -> 'tinfo_t &' | type(self) -> tinfo_t - | type(self) -> tinfo_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cmt - | lvar_t_cmt_get(self) -> qstring * + | cmt | | defblk - | lvar_t_defblk_get(self) -> int + | defblk | | divisor - | lvar_t_divisor_get(self) -> uint64 + | divisor | | has_nice_name | has_nice_name(self) -> bool + | Does the variable have a nice name? | | has_user_info | has_user_info(self) -> bool + | Has any user-defined information? | | has_user_name | has_user_name(self) -> bool + | Has user-defined name? | | has_user_type | has_user_type(self) -> bool + | Has user-defined type? | | is_arg_var | is_arg_var(self) -> bool + | Is the function argument? | | is_fake_var | is_fake_var(self) -> bool + | Is fake return variable? | | is_floating_var | is_floating_var(self) -> bool + | Used by a fpu insn? | | is_mapdst_var | is_mapdst_var(self) -> bool + | Other variable(s) map to this var? | | is_overlapped_var | is_overlapped_var(self) -> bool + | Is overlapped variable? | | is_result_var | is_result_var(self) -> bool + | Is the function result? | | is_spoiled_var | is_spoiled_var(self) -> bool + | Is spoiled var? (meaningful only during lvar allocation) | | is_unknown_width | is_unknown_width(self) -> bool + | Do we know the width of the variable? | | mreg_done | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? | | name - | lvar_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | lvar_t_tif_get(self) -> tinfo_t + | tif | | typed | typed(self) -> bool + | Has the variable a type? | | used | used(self) -> bool + | Is the variable used in the code? | | width - | lvar_t_width_get(self) -> int + | width | | ---------------------------------------------------------------------- | Methods inherited from lvar_locator_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: lvar_locator_t const & | | get_reg1(self, *args) -> 'mreg_t' | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) -> 'mreg_t' | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) -> 'scattered_aloc_t &' | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t | | get_stkoff(self, *args) -> 'sval_t' | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) -> 'bool' | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) -> 'bool' | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors inherited from lvar_locator_t: @@ -25008,10 +29449,10 @@ class lvar_t(lvar_locator_t) | list of weak references to the object (if defined) | | defea - | lvar_locator_t_defea_get(self) -> ea_t + | defea | | location - | lvar_locator_t_location_get(self) -> vdloc_t + | location | | ---------------------------------------------------------------------- | Data and other attributes inherited from lvar_locator_t: @@ -25036,14 +29477,25 @@ class lvar_uservec_t(builtins.object) | clear(self, *args) -> 'void' | clear(self) | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | | find_info(self, *args) -> 'lvar_saved_info_t *' | find_info(self, vloc) -> lvar_saved_info_t + | find saved user settings for given var + | + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & | | keep_info(self, *args) -> 'void' | keep_info(self, v) + | Preserve user settings for given var. + | + | @param v: (C++: const lvar_t &) lvar_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: lvar_uservec_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25055,19 +29507,19 @@ class lvar_uservec_t(builtins.object) | list of weak references to the object (if defined) | | lmaps - | lvar_uservec_t_lmaps_get(self) -> lvar_mapping_t + | lmaps | | lvvec - | lvar_uservec_t_lvvec_get(self) -> lvar_saved_infos_t + | lvvec | | stkoff_delta - | lvar_uservec_t_stkoff_delta_get(self) -> uval_t + | stkoff_delta | | thisown | The membership flag | | ulv_flags - | lvar_uservec_t_ulv_flags_get(self) -> int + | ulv_flags Help on class lvars_t in module ida_hexrays: @@ -25091,15 +29543,35 @@ class lvars_t(qvector_lvar_t) | | find(self, *args) -> 'lvar_t *' | find(self, ll) -> lvar_t + | Find variable at the specified location. + | + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr | | find_input_lvar(self, *args) -> 'int' | find_input_lvar(self, argloc, _size) -> int + | Find input variable at the specified location. + | + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) -> 'int' | find_lvar(self, location, width, defblk=-1) -> int + | Find variable at the specified location. + | + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) -> 'int' | find_stkvar(self, spoff, width) -> int + | Find stack variable at the specified location. + | + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25112,9 +29584,13 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25124,29 +29600,44 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | push_back(self, x) + | + | @param x: lvar_t const & + | | push_back(self) -> lvar_t | | at = __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | + | @param i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -25159,11 +29650,16 @@ class lvars_t(qvector_lvar_t) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t @@ -25173,21 +29669,34 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) + | + | @param x: lvar_t const & + | | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' @@ -25195,16 +29704,26 @@ class lvars_t(qvector_lvar_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -25226,35 +29745,33 @@ class lvars_t(qvector_lvar_t) Help on function make_num in module ida_hexrays: make_num(*args) + Create a number expression Help on function make_pointer in module ida_hexrays: make_pointer(*args) -> 'tinfo_t' make_pointer(type) -> tinfo_t + Create a pointer type. This function performs the following conversion: "type" + -> "type*" - - Create a pointer type. This function performs the following - conversion: "type" -> "type*" - - @param type: object type. (C++: const tinfo_t &) + @param type: (C++: const tinfo_t &) object type. @return: "type*". for example, if 'char' is passed as the argument, Help on function make_ref in module ida_hexrays: make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. Help on function mark_cfunc_dirty in module ida_hexrays: mark_cfunc_dirty(*args) -> 'bool' mark_cfunc_dirty(ea, close_views=False) -> bool + Flush the cached decompilation results. Erases a cache entry for the specified + function. - - Flush the cached decompilation results. Erases a cache entry for the - specified function. - - @param ea: function to erase from the cache (C++: ea_t) - @param close_views: close pseudocode windows that show the function - (C++: bool) + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function @return: if a cache entry existed. Help on class mba_range_iterator_t in module ida_hexrays: @@ -25283,6 +29800,8 @@ class mba_range_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, mbr) -> bool + | + | @param mbr: mba_ranges_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25294,10 +29813,10 @@ class mba_range_iterator_t(builtins.object) | list of weak references to the object (if defined) | | fii - | mba_range_iterator_t_fii_get(self) -> func_tail_iterator_t + | fii | | rii - | mba_range_iterator_t_rii_get(self) -> range_chunk_iterator_t * + | rii | | thisown | The membership flag @@ -25311,7 +29830,12 @@ class mba_ranges_t(builtins.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t + | + | @param _pfn: func_t * + | | __init__(self, r) -> mba_ranges_t + | + | @param r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -25343,18 +29867,18 @@ class mba_ranges_t(builtins.object) | list of weak references to the object (if defined) | | pfn - | mba_ranges_t_pfn_get(self) -> func_t * + | pfn | | ranges - | mba_ranges_t_ranges_get(self) -> rangevec_t + | ranges | | thisown | The membership flag -Help on class mbl_array_t in module ida_hexrays: +Help on class mba_t in module ida_hexrays: -class mbl_array_t(builtins.object) - | Proxy of C++ mbl_array_t class. +class mba_t(builtins.object) + | Proxy of C++ mba_t class. | | Methods defined here: | @@ -25363,27 +29887,70 @@ class mbl_array_t(builtins.object) | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_mbl_array_t(...) - | delete_mbl_array_t(self) + | __swig_destroy__ = delete_mba_t(...) + | delete_mba_t(self) | | _deregister(self, *args) -> 'void' | _deregister(self) | | _print(self, *args) -> 'void' | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & | | _register(self, *args) -> 'void' | _register(self) | + | alloc_fict_ea(self, *args) -> 'ea_t' + | alloc_fict_ea(self, real_ea) -> ea_t + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) -> 'mreg_t' + | alloc_kreg(self, size, check_size=True) -> mreg_t + | Allocate a kernel register. + | + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. + | | alloc_lvars(self, *args) -> 'void' | alloc_lvars(self) + | Allocate local variables. Must be called only immediately after + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. | | analyze_calls(self, *args) -> 'int' | analyze_calls(self, acflags) -> int + | Analyze calls and determine calling conventions. + | + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. | | arg(self, *args) -> 'lvar_t const &' | arg(self, n) -> lvar_t - | arg(self, n) -> lvar_t + | + | @param n: int | | argbase(self, *args) -> 'sval_t' | argbase(self) -> sval_t @@ -25399,6 +29966,11 @@ class mbl_array_t(builtins.object) | | build_graph(self, *args) -> 'merror_t' | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code | | calc_shins_flags(self, *args) -> 'int' | calc_shins_flags(self) -> int @@ -25414,18 +29986,50 @@ class mbl_array_t(builtins.object) | | clr_mba_flags(self, *args) -> 'void' | clr_mba_flags(self, f) + | + | @param f: int | | clr_mba_flags2(self, *args) -> 'void' | clr_mba_flags2(self, f) + | + | @param f: int + | + | code16_bit_removed(self, *args) -> 'bool' + | code16_bit_removed(self) -> bool | | combine_blocks(self, *args) -> 'bool' | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks | | common_stkvars_stkargs(self, *args) -> 'bool' | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) -> 'mblock_t *' | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy + | + | create_helper_call(self, *args) -> 'minsn_t *' + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t + | Create a call of a helper function. + | + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error | | deleted_pairs(self, *args) -> 'bool' | deleted_pairs(self) -> bool @@ -25438,21 +30042,56 @@ class mbl_array_t(builtins.object) | | dump(self, *args) -> 'void' | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. | | dump_mba(self, *args) -> 'void' | dump_mba(self, _verify, title) + | + | @param _verify: bool + | @param title: char const * | | find_mop(self, *args) -> 'mop_t *' | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand. BADADDR means to accept any address. + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. | | for_all_insns(self, *args) -> 'int' | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits all instruction and + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv) -> int + | Visit all operands of all instructions. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) -> 'int' | for_all_topinsns(self, mv) -> int + | Visit all top level instructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) -> 'void' + | free_kreg(self, reg, size) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes | | generated_asserts(self, *args) -> 'bool' | generated_asserts(self) -> bool @@ -25465,9 +30104,12 @@ class mbl_array_t(builtins.object) | | get_graph(self, *args) -> 'mbl_graph_t *' | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. | | get_ida_argloc(self, *args) -> 'argloc_t' | get_ida_argloc(self, v) -> argloc_t + | + | @param v: lvar_t const & | | get_lvars_region(self, *args) -> 'ivl_t const &' | get_lvars_region(self) -> ivl_t @@ -25480,7 +30122,8 @@ class mbl_array_t(builtins.object) | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t - | get_mblock(self, n) -> mblock_t + | + | @param n: int | | get_shadow_region(self, *args) -> 'ivl_t const &' | get_shadow_region(self) -> ivl_t @@ -25490,6 +30133,10 @@ class mbl_array_t(builtins.object) | | get_std_region(self, *args) -> 'ivl_t const &' | get_std_region(self, idx) -> ivl_t + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t | | graph_insns(self, *args) -> 'bool' | graph_insns(self) -> bool @@ -25497,17 +30144,33 @@ class mbl_array_t(builtins.object) | has_bad_sp(self, *args) -> 'bool' | has_bad_sp(self) -> bool | + | has_outlines(self, *args) -> 'bool' + | has_outlines(self) -> bool + | | has_over_chains(self, *args) -> 'bool' | has_over_chains(self) -> bool | | has_passregs(self, *args) -> 'bool' | has_passregs(self) -> bool | + | has_stack_retval(self, *args) -> 'bool' + | has_stack_retval(self) -> bool + | | idaloc2vd(self, *args) -> 'vdloc_t' | idaloc2vd(self, loc, width) -> vdloc_t + | + | @param loc: argloc_t const & + | @param width: int | | insert_block(self, *args) -> 'mblock_t *' | insert_block(self, bblk) -> mblock_t + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block | | is_cdtr(self, *args) -> 'bool' | is_cdtr(self) -> bool @@ -25526,6 +30189,8 @@ class mbl_array_t(builtins.object) | | is_stkarg(self, *args) -> 'bool' | is_stkarg(self, v) -> bool + | + | @param v: lvar_t const & | | is_thunk(self, *args) -> 'bool' | is_thunk(self) -> bool @@ -25542,17 +30207,38 @@ class mbl_array_t(builtins.object) | lvars_renamed(self, *args) -> 'bool' | lvars_renamed(self) -> bool | + | map_fict_ea(self, *args) -> 'ea_t' + | map_fict_ea(self, fict_ea) -> ea_t + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address + | | mark_chains_dirty(self, *args) -> 'void' | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. | | may_refine_rettype(self, *args) -> 'bool' | may_refine_rettype(self) -> bool | | optimize_global(self, *args) -> 'merror_t' | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code | | optimize_local(self, *args) -> 'int' | optimize_local(self, locopt_bits) -> int + | Optimize each basic block locally + | + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. | | optimized(self, *args) -> 'bool' | optimized(self) -> bool @@ -25560,6 +30246,9 @@ class mbl_array_t(builtins.object) | precise_defeas(self, *args) -> 'bool' | precise_defeas(self) -> bool | + | prop_complex(self, *args) -> 'bool' + | prop_complex(self) -> bool + | | propagated_asserts(self, *args) -> 'bool' | propagated_asserts(self) -> bool | @@ -25571,9 +30260,15 @@ class mbl_array_t(builtins.object) | | remove_block(self, *args) -> 'bool' | remove_block(self, blk) -> bool + | Delete a block. + | + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable | - | remove_empty_blocks(self, *args) -> 'bool' - | remove_empty_blocks(self) -> bool + | remove_empty_and_unreachable_blocks(self, *args) -> 'bool' + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. | | returns_fpval(self, *args) -> 'bool' | returns_fpval(self) -> bool @@ -25581,17 +30276,37 @@ class mbl_array_t(builtins.object) | rtype_refined(self, *args) -> 'bool' | rtype_refined(self) -> bool | + | save_snapshot(self, *args) -> 'void' + | save_snapshot(self, description) + | Create and save microcode snapshot. + | + | @param description: (C++: const char *) char const * + | | saverest_done(self, *args) -> 'bool' | saverest_done(self) -> bool | | serialize(self, *args) -> 'void' | serialize(self) + | Serialize mbl array into a sequence of bytes. + | + | set_maturity(self, *args) -> 'bool' + | set_maturity(self, mat) -> bool + | Set maturity level. + | + | @param mat: (C++: mba_maturity_t) new maturity level + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. | | set_mba_flags(self, *args) -> 'void' | set_mba_flags(self, f) + | + | @param f: int | | set_mba_flags2(self, *args) -> 'void' | set_mba_flags2(self, f) + | + | @param f: int | | short_display(self, *args) -> 'bool' | short_display(self) -> bool @@ -25604,9 +30319,13 @@ class mbl_array_t(builtins.object) | | stkoff_ida2vd(self, *args) -> 'sval_t' | stkoff_ida2vd(self, off) -> sval_t + | + | @param off: sval_t | | stkoff_vd2ida(self, *args) -> 'sval_t' | stkoff_vd2ida(self, off) -> sval_t + | + | @param off: sval_t | | term(self, *args) -> 'void' | term(self) @@ -25622,10 +30341,28 @@ class mbl_array_t(builtins.object) | | vd2idaloc(self, *args) -> 'argloc_t' | vd2idaloc(self, loc, width, spd) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t + | | vd2idaloc(self, loc, width) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int | | verify(self, *args) -> 'void' | verify(self, always) + | Verify microcode consistency. + | + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. If the + | microcode is inconsistent, this function will generate an + | internal error. We provide the source code of this function in + | the plugins/hexrays_sdk/verifier directory for your reference. | | write_to_const_detected(self, *args) -> 'bool' | write_to_const_detected(self) -> bool @@ -25633,8 +30370,12 @@ class mbl_array_t(builtins.object) | ---------------------------------------------------------------------- | Static methods defined here: | - | deserialize(*args) -> 'mbl_array_t *' - | deserialize(bytes) -> mbl_array_t + | deserialize(*args) -> 'mba_t *' + | deserialize(bytes) -> mba_t + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25646,153 +30387,157 @@ class mbl_array_t(builtins.object) | list of weak references to the object (if defined) | | aliased_args - | mbl_array_t_aliased_args_get(self) -> ivl_t + | aliased_args | | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t + | aliased_memory | | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t + | aliased_vars | | argidx - | mbl_array_t_argidx_get(self) -> intvec_t + | argidx | | blocks - | mbl_array_t_blocks_get(self) -> mblock_t + | blocks | | cc - | mbl_array_t_cc_get(self) -> cm_t + | cc | | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t + | consumed_argregs + | + | deprecated_idb_node + | deprecated_idb_node | | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t + | entry_ea | | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t + | error_ea | | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * + | error_strarg | | final_type - | mbl_array_t_final_type_get(self) -> bool + | final_type | | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t + | first_epilog_ea | | fpd - | mbl_array_t_fpd_get(self) -> sval_t + | fpd | | frregs - | mbl_array_t_frregs_get(self) -> sval_t + | frregs | | frsize - | mbl_array_t_frsize_get(self) -> sval_t + | frsize | | fti_flags - | mbl_array_t_fti_flags_get(self) -> int + | fti_flags | | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t + | fullsize | | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t + | gotoff_stkvars | | idb_node - | mbl_array_t_idb_node_get(self) -> netnode | | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t + | idb_spoiled | | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t + | idb_type | | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t + | inargoff | | label - | mbl_array_t_label_get(self) -> qstring * + | label | | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t + | last_prolog_ea | | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t + | maturity | | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t + | mbr | | minargref - | mbl_array_t_minargref_get(self) -> sval_t + | minargref | | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t + | minstkref | | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t + | minstkref_ea | | natural - | mbl_array_t_natural_get(self) -> mblock_t ** + | natural | | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t + | nodel_memory | | notes - | mbl_array_t_notes_get(self) -> hexwarns_t + | notes | | npurged - | mbl_array_t_npurged_get(self) -> int + | npurged | | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] + | occurred_warns | | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int + | pfn_flags | | qty - | mbl_array_t_qty_get(self) -> int + | qty | | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t + | reqmat | | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t + | restricted_memory | | retsize - | mbl_array_t_retsize_get(self) -> int + | retsize | | retvaridx - | mbl_array_t_retvaridx_get(self) -> int + | retvaridx | | shadow_args - | mbl_array_t_shadow_args_get(self) -> int + | shadow_args | | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t + | spd_adjust | | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t + | spoiled_list | | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t + | stacksize | | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t + | std_ivls | | thisown | The membership flag | | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t + | tmpstk_size | | vars - | mbl_array_t_vars_get(self) -> lvars_t + | vars -Help on function mbl_array_t_deserialize in module ida_hexrays: +Help on function mba_t_deserialize in module ida_hexrays: -mbl_array_t_deserialize(*args) -> 'mbl_array_t *' - mbl_array_t_deserialize(bytes) -> mbl_array_t +mba_t_deserialize(*args) -> 'mba_t *' + mba_t_deserialize(bytes) -> mba_t + + @param bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -25802,12 +30547,15 @@ class mbl_graph_t(simple_graph_t) | Method resolution order: | mbl_graph_t | simple_graph_t + | ida_gdl.gdl_graph_t | builtins.object | | Methods defined here: | | __init__(self, *args, **kwargs) - | Initialize self. See help(type(self)) for accurate signature. + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -25816,24 +30564,54 @@ class mbl_graph_t(simple_graph_t) | | get_du(self, *args) -> 'graph_chains_t *' | get_du(self, gctype) -> graph_chains_t + | Get def-use chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t + | + | @param n: int | | get_ud(self, *args) -> 'graph_chains_t *' | get_ud(self, gctype) -> graph_chains_t + | Get use-def chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t | | is_du_chain_dirty(self, *args) -> 'bool' | is_du_chain_dirty(self, gctype) -> bool + | Is the def-use chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t | | is_redefined_globally(self, *args) -> 'bool' | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST redefined in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | is_ud_chain_dirty(self, *args) -> 'bool' | is_ud_chain_dirty(self, gctype) -> bool + | Is the use-def chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t | | is_used_globally(self, *args) -> 'bool' | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST used in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25844,17 +30622,132 @@ class mbl_graph_t(simple_graph_t) | ---------------------------------------------------------------------- | Data descriptors inherited from simple_graph_t: | + | colored_gdl_edges + | colored_gdl_edges + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) - | - | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool - | - | title - | simple_graph_t_title_get(self) -> qstring * Help on class mblock_t in module ida_hexrays: @@ -25873,64 +30766,186 @@ class mblock_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & | | append_def_list(self, *args) -> 'void' | append_def_list(self, list, op, maymust) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. | | append_use_list(self, *args) -> 'void' | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. | | build_def_list(self, *args) -> 'mlist_t' | build_def_list(self, ins, maymust) -> mlist_t + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list | | build_lists(self, *args) -> 'int' | build_lists(self, kill_deads) -> int + | Build def-use lists and eliminate deads. + | + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) -> 'mlist_t' | build_use_list(self, ins, maymust) -> mlist_t + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list | | dump(self, *args) -> 'void' | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info | | dump_block(self, *args) -> 'void' | dump_block(self, title) + | + | @param title: char const * | | empty(self, *args) -> 'bool' | empty(self) -> bool | | find_access(self, *args) -> 'minsn_t *' | find_access(self, op, parent, mend, fdflags) -> minsn_t + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param parent: (C++: minsn_t **) ptr to ptr to a top level instruction. denotes the beginning of + | the search range. + | @param mend: (C++: const minsn_t *) end instruction of the range (must be a top level insn) mend is + | excluded from the range. it can be specified as nullptr. parent and + | mend must belong to the same block. + | @param fdflags: (C++: int) combination of bits for mblock_t::find_access bits + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. | | find_def(self, *args) -> 'minsn_t *' | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | find_first_use(self, *args) -> 'minsn_t *' | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_redefinition(self, *args) -> 'minsn_t *' | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t | | find_use(self, *args) -> 'minsn_t *' | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int | | for_all_insns(self, *args) -> 'int' | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits subinstructions too. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv) -> int + | Visit all operands. This function visit subinstruction operands too. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) -> 'int' | for_all_uses(self, list, i1, i2, mmv) -> int + | Visit all operands that use LIST. + | + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) -> 'size_t' | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. | | get_valranges(self, *args) -> 'bool' | get_valranges(self, res, vivl, vrflags) -> bool + | Find possible values for an instruction. + | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits | get_valranges(self, res, vivl, m, vrflags) -> bool + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int | | insert_into_block(self, *args) -> 'minsn_t *' | insert_into_block(self, nm, om) -> minsn_t + | Insert instruction into the doubly linked list + | + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM | | is_branch(self, *args) -> 'bool' | is_branch(self) -> bool @@ -25943,9 +30958,25 @@ class mblock_t(builtins.object) | | is_redefined(self, *args) -> 'bool' | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list redefined by the specified instructions? + | + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | is_rhs_redefined(self, *args) -> 'bool' | is_rhs_redefined(self, ins, i1, i2) -> bool + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. | | is_simple_goto_block(self, *args) -> 'bool' | is_simple_goto_block(self) -> bool @@ -25958,6 +30989,15 @@ class mblock_t(builtins.object) | | is_used(self, *args) -> 'bool' | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list used by the specified instruction range? + | + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? | | lists_dirty(self, *args) -> 'bool' | lists_dirty(self) -> bool @@ -25970,6 +31010,10 @@ class mblock_t(builtins.object) | | make_nop(self, *args) -> 'void' | make_nop(self, m) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) | | mark_lists_dirty(self, *args) -> 'void' | mark_lists_dirty(self) @@ -25979,27 +31023,56 @@ class mblock_t(builtins.object) | | npred(self, *args) -> 'int' | npred(self) -> int + | Get number of block predecessors. | | nsucc(self, *args) -> 'int' | nsucc(self) -> int + | Get number of block successors. | | optimize_block(self, *args) -> 'int' | optimize_block(self) -> int + | Optimize a basic block. Usually there is no need to call this function + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block | | optimize_insn(self, *args) -> 'int' | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | Optimize one instruction in the context of the block. + | + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() | | optimize_useless_jump(self, *args) -> 'int' | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block | | pred(self, *args) -> 'int' | pred(self, n) -> int + | + | @param n: int | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) -> 'minsn_t *' | remove_from_block(self, m) -> minsn_t + | Remove instruction from the doubly linked list + | + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction | | request_demote64(self, *args) -> 'void' | request_demote64(self) @@ -26009,6 +31082,8 @@ class mblock_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, n) -> int + | + | @param n: int | | succs(self) | Iterates the list of successor blocks @@ -26023,70 +31098,70 @@ class mblock_t(builtins.object) | list of weak references to the object (if defined) | | dead_at_start - | mblock_t_dead_at_start_get(self) -> mlist_t + | dead_at_start | | dnu - | mblock_t_dnu_get(self) -> mlist_t + | dnu | | end - | mblock_t_end_get(self) -> ea_t + | end | | flags - | mblock_t_flags_get(self) -> uint32 + | flags | | head - | mblock_t_head_get(self) -> minsn_t + | head | | maxbsp - | mblock_t_maxbsp_get(self) -> sval_t + | maxbsp | | maybdef - | mblock_t_maybdef_get(self) -> mlist_t + | maybdef | | maybuse - | mblock_t_maybuse_get(self) -> mlist_t + | maybuse | | mba - | mblock_t_mba_get(self) -> mbl_array_t + | mba | | minbargref - | mblock_t_minbargref_get(self) -> sval_t + | minbargref | | minbstkref - | mblock_t_minbstkref_get(self) -> sval_t + | minbstkref | | mustbdef - | mblock_t_mustbdef_get(self) -> mlist_t + | mustbdef | | mustbuse - | mblock_t_mustbuse_get(self) -> mlist_t + | mustbuse | | nextb - | mblock_t_nextb_get(self) -> mblock_t + | nextb | | predset - | mblock_t_predset_get(self) -> intvec_t + | predset | | prevb - | mblock_t_prevb_get(self) -> mblock_t + | prevb | | serial - | mblock_t_serial_get(self) -> int + | serial | | start - | mblock_t_start_get(self) -> ea_t + | start | | succset - | mblock_t_succset_get(self) -> intvec_t + | succset | | tail - | mblock_t_tail_get(self) -> minsn_t + | tail | | thisown | The membership flag | | type - | mblock_t_type_get(self) -> mblock_type_t + | type Help on class mcallarg_t in module ida_hexrays: @@ -26103,6 +31178,8 @@ class mcallarg_t(mop_t) | __init__(self, *args) | __init__(self) -> mcallarg_t | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & | | __repr__ = _swig_repr(self) | @@ -26111,53 +31188,89 @@ class mcallarg_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | copy_mop(self, *args) -> 'void' | copy_mop(self, op) + | + | @param op: mop_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | make_int(self, *args) -> 'void' | make_int(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | make_uint(self, *args) -> 'void' | make_uint(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int | | set_regarg(self, *args) -> 'void' | set_regarg(self, mr, sz, tif) + | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & + | | set_regarg(self, mr, tif) + | + | @param mr: mreg_t + | @param tif: tinfo_t const & + | | set_regarg(self, mr, dt, sign=type_unsigned) + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: | | argloc - | mcallarg_t_argloc_get(self) -> argloc_t + | argloc | | ea - | mcallarg_t_ea_get(self) -> ea_t + | ea + | + | flags + | flags | | name - | mcallarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | mcallarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from mop_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -26170,6 +31283,8 @@ class mcallarg_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -26220,34 +31335,83 @@ class mcallarg_t(mop_t) | | _make_blkref(self, *args) -> 'void' | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -26269,90 +31433,217 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t | | empty(self, *args) -> 'bool' | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -26362,64 +31653,121 @@ class mcallarg_t(mop_t) | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -26427,22 +31775,40 @@ class mcallarg_t(mop_t) | is_one(self, *args) -> 'bool' | is_one(self) -> bool | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | | is_positive_constant(self, *args) -> 'bool' | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | Is the specified register of the specified size? | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -26455,52 +31821,135 @@ class mcallarg_t(mop_t) | | is_zero_extended_from(self, *args) -> 'bool' | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' - | make_fpnum(self, bytes, _size) -> bool + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' | make_reg(self, reg) + | + | @param reg: mreg_t + | | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -26510,6 +31959,9 @@ class mcallarg_t(mop_t) | set_impptr_done(self, *args) -> 'void' | set_impptr_done(self) | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | | set_udt(self, *args) -> 'void' | set_udt(self) | @@ -26518,18 +31970,36 @@ class mcallarg_t(mop_t) | | shift_mop(self, *args) -> 'bool' | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | | value(self, *args) -> 'uint64' | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -26571,7 +32041,7 @@ class mcallarg_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -26582,13 +32052,13 @@ class mcallarg_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -26604,13 +32074,19 @@ class mcallargs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & | | __getitem__(self, *args) -> 'mcallarg_t const &' | __getitem__(self, i) -> mcallarg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26620,30 +32096,42 @@ class mcallargs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mcallarg_t const & | | __swig_destroy__ = delete_mcallargs_t(...) | delete_mcallargs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mcallarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: mcallarg_t const & | | at(self, *args) -> 'mcallarg_t const &' | at(self, _idx) -> mcallarg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | begin(self) -> mcallarg_t - | begin(self) -> mcallarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -26656,39 +32144,58 @@ class mcallargs_t(builtins.object) | | end(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | end(self) -> mcallarg_t - | end(self) -> mcallarg_t | | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' | erase(self, it) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | | erase(self, first, last) -> mcallarg_t + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator | | extract(self, *args) -> 'mcallarg_t *' | extract(self) -> mcallarg_t | | find(self, *args) -> 'qvector< mcallarg_t >::const_iterator' | find(self, x) -> mcallarg_t - | find(self, x) -> mcallarg_t + | + | @param x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mcallarg_t()) + | + | @param x: mcallarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: mcallarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: mcallarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' | insert(self, it, x) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mcallarg_t &' | push_back(self, x) + | + | @param x: mcallarg_t const & + | | push_back(self) -> mcallarg_t | | qclear(self, *args) -> 'void' @@ -26696,16 +32203,26 @@ class mcallargs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mcallarg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< mcallarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26736,6 +32253,9 @@ class mcallinfo_t(builtins.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | + | @param _callee: ea_t + | @param _sargs: int | | __repr__ = _swig_repr(self) | @@ -26744,6 +32264,11 @@ class mcallinfo_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, size=-1, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | size: int + | shins_flags: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26756,9 +32281,13 @@ class mcallinfo_t(builtins.object) | | lexcompare(self, *args) -> 'int' | lexcompare(self, f) -> int + | + | @param f: mcallinfo_t const & | | set_type(self, *args) -> 'bool' | set_type(self, type) -> bool + | + | @param type: tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26770,58 +32299,58 @@ class mcallinfo_t(builtins.object) | list of weak references to the object (if defined) | | args - | mcallinfo_t_args_get(self) -> mcallargs_t + | args | | call_spd - | mcallinfo_t_call_spd_get(self) -> int + | call_spd | | callee - | mcallinfo_t_callee_get(self) -> ea_t + | callee | | cc - | mcallinfo_t_cc_get(self) -> cm_t + | cc | | dead_regs - | mcallinfo_t_dead_regs_get(self) -> mlist_t + | dead_regs | | flags - | mcallinfo_t_flags_get(self) -> int + | flags | | fti_attrs - | mcallinfo_t_fti_attrs_get(self) -> type_attrs_t + | fti_attrs | | pass_regs - | mcallinfo_t_pass_regs_get(self) -> mlist_t + | pass_regs | | retregs - | mcallinfo_t_retregs_get(self) -> mopvec_t + | retregs | | return_argloc - | mcallinfo_t_return_argloc_get(self) -> argloc_t + | return_argloc | | return_regs - | mcallinfo_t_return_regs_get(self) -> mlist_t + | return_regs | | return_type - | mcallinfo_t_return_type_get(self) -> tinfo_t + | return_type | | role - | mcallinfo_t_role_get(self) -> funcrole_t + | role | | solid_args - | mcallinfo_t_solid_args_get(self) -> int + | solid_args | | spoiled - | mcallinfo_t_spoiled_get(self) -> mlist_t + | spoiled | | stkargs_top - | mcallinfo_t_stkargs_top_get(self) -> int + | stkargs_top | | thisown | The membership flag | | visible_memory - | mcallinfo_t_visible_memory_get(self) -> ivlset_t + | visible_memory Help on class mcases_t in module ida_hexrays: @@ -26832,24 +32361,36 @@ class mcases_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: mcases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: mcases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: mcases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: mcases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -26861,6 +32402,8 @@ class mcases_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: mcases_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26870,12 +32413,16 @@ class mcases_t(builtins.object) | | resize(self, *args) -> 'void' | resize(self, s) + | + | @param s: int | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: mcases_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26887,13 +32434,13 @@ class mcases_t(builtins.object) | list of weak references to the object (if defined) | | targets - | mcases_t_targets_get(self) -> intvec_t + | targets | | thisown | The membership flag | | values - | mcases_t_values_get(self) -> casevec_t + | values | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -26904,6 +32451,8 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) -> 'bool' mcode_modifies_d(mcode) -> bool + + @param mcode: enum mcode_t Help on class microcode_filter_t in module ida_hexrays: @@ -26916,6 +32465,8 @@ class microcode_filter_t(builtins.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -26924,9 +32475,19 @@ class microcode_filter_t(builtins.object) | | apply(self, *args) -> 'merror_t' | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error | | match(self, *args) -> 'bool' | match(self, cdg) -> bool + | check if the filter object is to be applied + | + | @param cdg: (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26949,10 +32510,17 @@ class minsn_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t + | + | @param _ea: ea_t + | | __init__(self, m) -> minsn_t + | + | @param m: minsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, ri) -> bool + | + | @param ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -26968,6 +32536,8 @@ class minsn_t(builtins.object) | | _ensure_no_obj(self, o, attr, attr_is_acquired) | + | _ensure_ownership_transferrable(self, v) + | | _make_nop(self, *args) -> 'void' | _make_nop(self) | @@ -26988,6 +32558,10 @@ class minsn_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) @@ -27021,46 +32595,93 @@ class minsn_t(builtins.object) | | contains_call(self, *args) -> 'bool' | contains_call(self, with_helpers=False) -> bool + | Does the instruction contain a call? + | + | @param with_helpers: (C++: bool) | | contains_opcode(self, *args) -> 'bool' | contains_opcode(self, mcode) -> bool + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | + | @param mcode: (C++: mcode_t) opcode to search for. + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, bytes, format_version) -> bool + | Deserialize an instruction + | + | @param bytes: (C++: const uchar *) pointer to serialized data + | @param format_version: (C++: int) serialization format version. this value is returned by + | minsn_t::serialize() + | @return: success | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) -> 'bool' | equal_insns(self, m, eqflags) -> bool + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | find_call(self, *args) -> 'minsn_t *' | find_call(self, with_helpers=False) -> minsn_t + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | + | @param with_helpers: (C++: bool) consider helper calls as well? | | find_ins_op(self, *args) -> 'minsn_t *' | find_ins_op(self, op=m_nop) -> minsn_t + | + | @param op: enum mcode_t | | find_num_op(self, *args) -> 'mop_t *' | find_num_op(self) -> mop_t | | find_opcode(self, *args) -> 'minsn_t *' | find_opcode(self, mcode) -> minsn_t - | find_opcode(self, mcode) -> minsn_t + | + | @param mcode: enum mcode_t | | for_all_insns(self, *args) -> 'int' | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv) -> int + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) -> 'funcrole_t' | get_role(self) -> funcrole_t + | Get the function role of a call. | | get_split_size(self, *args) -> 'int' | get_split_size(self) -> int | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Does the instruction have a side effect? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. | | is_after(self, *args) -> 'bool' | is_after(self, m) -> bool + | Is the instruction after the specified one? + | + | @param m: (C++: const minsn_t *) the instruction to compare against in the list | | is_alloca(self, *args) -> 'bool' | is_alloca(self) -> bool @@ -27070,6 +32691,12 @@ class minsn_t(builtins.object) | | is_between(self, *args) -> 'bool' | is_between(self, m1, m2) -> bool + | Is the instruction in the specified range of instructions? + | + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. | | is_bswap(self, *args) -> 'bool' | is_bswap(self) -> bool @@ -27094,6 +32721,11 @@ class minsn_t(builtins.object) | | is_helper(self, *args) -> 'bool' | is_helper(self, name) -> bool + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * | | is_ignlowsrc(self, *args) -> 'bool' | is_ignlowsrc(self) -> bool @@ -27120,7 +32752,10 @@ class minsn_t(builtins.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) -> 'bool' - | is_noret_call(self, ignore_noret_icall=False) -> bool + | is_noret_call(self, flags=0) -> bool + | Is a non-returing call? + | + | @param flags: (C++: int) combination of NORET_... bits | | is_optional(self, *args) -> 'bool' | is_optional(self) -> bool @@ -27139,30 +32774,61 @@ class minsn_t(builtins.object) | | is_unknown_call(self, *args) -> 'bool' | is_unknown_call(self) -> bool + | Is an unknown call? Unknown calls are calls without the argument list + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block | | is_wild_match(self, *args) -> 'bool' | is_wild_match(self) -> bool | | lexcompare(self, *args) -> 'int' | lexcompare(self, ri) -> int + | + | @param ri: minsn_t const & | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the instruction to use aliased memory? | - | modifes_d(self, *args) -> 'bool' - | modifes_d(self) -> bool + | modifies_d(self, *args) -> 'bool' + | modifies_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. | | modifies_pair_mop(self, *args) -> 'bool' | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) -> 'int' | optimize_solo(self, optflags=0) -> int + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() | | optimize_subtree(self, *args) -> 'int' | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) | | replace_by(self, o) | + | serialize(self, *args) -> 'int' + | serialize(self, b) -> int + | Serialize an instruction + | + | @param b: (C++: bytevec_t *) the output buffer + | @return: the serialization format that was used to store info + | | set_assert(self, *args) -> 'void' | set_assert(self) | @@ -27204,18 +32870,30 @@ class minsn_t(builtins.object) | | set_split_size(self, *args) -> 'void' | set_split_size(self, s) + | + | @param s: int | | set_tailcall(self, *args) -> 'void' | set_tailcall(self) | + | set_unmerged(self, *args) -> 'void' + | set_unmerged(self) + | | set_wild_match(self, *args) -> 'void' | set_wild_match(self) | | setaddr(self, *args) -> 'void' | setaddr(self, new_ea) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) | | swap(self, *args) -> 'void' | swap(self, m) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) | | was_noret_icall(self, *args) -> 'bool' | was_noret_icall(self) -> bool @@ -27223,6 +32901,9 @@ class minsn_t(builtins.object) | was_split(self, *args) -> 'bool' | was_split(self) -> bool | + | was_unmerged(self, *args) -> 'bool' + | was_unmerged(self) -> bool + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -27233,33 +32914,33 @@ class minsn_t(builtins.object) | list of weak references to the object (if defined) | | d - | minsn_t_d_get(self) -> mop_t + | d | | ea - | minsn_t_ea_get(self) -> ea_t + | ea | | iprops - | minsn_t_iprops_get(self) -> int + | iprops | | l - | minsn_t_l_get(self) -> mop_t + | l | | meminfo | | next - | minsn_t_next_get(self) -> minsn_t + | next | | obj_id | _obj_id(self) -> PyObject * | | opcode - | minsn_t_opcode_get(self) -> mcode_t + | opcode | | prev - | minsn_t_prev_get(self) -> minsn_t + | prev | | r - | minsn_t_r_get(self) -> mop_t + | r | | thisown | The membership flag @@ -27280,6 +32961,10 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -27305,16 +32990,16 @@ class minsn_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mlist_mop_visitor_t in module ida_hexrays: @@ -27327,6 +33012,8 @@ class mlist_mop_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -27335,6 +33022,8 @@ class mlist_mop_visitor_t(builtins.object) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op) -> int + | + | @param op: mop_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27346,19 +33035,19 @@ class mlist_mop_visitor_t(builtins.object) | list of weak references to the object (if defined) | | changed - | mlist_mop_visitor_t_changed_get(self) -> bool + | changed | | curins - | mlist_mop_visitor_t_curins_get(self) -> minsn_t + | curins | | list - | mlist_mop_visitor_t_list_get(self) -> mlist_t + | list | | thisown | The membership flag | | topins - | mlist_mop_visitor_t_topins_get(self) -> minsn_t + | topins Help on class mlist_t in module ida_hexrays: @@ -27369,26 +33058,44 @@ class mlist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: mlist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: mlist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t | __init__(self, ivl) -> mlist_t + | + | @param ivl: ivl_t const & + | | __init__(self, r, size) -> mlist_t + | + | @param r: mreg_t + | @param size: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: mlist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: mlist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -27400,18 +33107,35 @@ class mlist_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | | add(self, r) -> bool + | + | @param r: rlist_t const & + | | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | add(self, lst) -> bool + | + | @param lst: mlist_t const & | | addmem(self, *args) -> 'bool' | addmem(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: mlist_t const & | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -27424,35 +33148,62 @@ class mlist_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, r) -> bool + | + | @param r: mreg_t | | has_all(self, *args) -> 'bool' | has_all(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int | | has_any(self, *args) -> 'bool' | has_any(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int | | has_common(self, *args) -> 'bool' | has_common(self, lst) -> bool + | + | @param lst: mlist_t const & | | has_memory(self, *args) -> 'bool' | has_memory(self) -> bool | | includes(self, *args) -> 'bool' | includes(self, lst) -> bool + | + | @param lst: mlist_t const & | | intersect(self, *args) -> 'bool' | intersect(self, lst) -> bool + | + | @param lst: mlist_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, lst) -> bool + | + | @param lst: mlist_t const & | | sub(self, *args) -> 'bool' | sub(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | | sub(self, lst) -> bool + | + | @param lst: mlist_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: mlist_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27464,10 +33215,10 @@ class mlist_t(builtins.object) | list of weak references to the object (if defined) | | mem - | mlist_t_mem_get(self) -> ivlset_t + | mem | | reg - | mlist_t_reg_get(self) -> rlist_t + | reg | | thisown | The membership flag @@ -27491,24 +33242,40 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: mnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: mnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: mnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: mnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: mnumber_t const & | | __repr__ = _swig_repr(self) | @@ -27517,21 +33284,25 @@ class mnumber_t(operand_locator_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: mnumber_t const & | | update_value(self, *args) -> 'void' | update_value(self, val64) + | + | @param val64: uint64 | | ---------------------------------------------------------------------- | Data descriptors defined here: | | org_value - | mnumber_t_org_value_get(self) -> uint64 + | org_value | | thisown | The membership flag | | value - | mnumber_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -27548,36 +33319,30 @@ class mnumber_t(operand_locator_t) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) -> 'bool' modify_user_lvar_info(func_ea, mli_flags, info) -> bool + Modify saved local variable settings of one variable. - - Modify saved local variable settings. - - @param func_ea (C++: ea_t) - @param mli_flags: bits that specify which attrs defined by INFO are to - be set (C++: uint) - @param info: local variable info attrs (C++: const lvar_saved_info_t - &) + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs @return: true if modified, false if invalid MLI_FLAGS passed Help on function modify_user_lvars in module ida_hexrays: modify_user_lvars(*args) -> 'bool' modify_user_lvars(entry_ea, mlv) -> bool - - Modify saved local variable settings. - @param entry_ea: function start address (C++: ea_t) - @param mlv: local variable modifier (C++: user_lvar_modifier_t &) + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier @return: true if modified variables Help on class mop_addr_t in module ida_hexrays: @@ -27595,7 +33360,14 @@ class mop_addr_t(mop_t) | __init__(self, *args) | __init__(self) -> mop_addr_t | __init__(self, ra) -> mop_addr_t + | + | @param ra: mop_addr_t const & + | | __init__(self, ra, isz, osz) -> mop_addr_t + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int | | __repr__ = _swig_repr(self) | @@ -27604,15 +33376,17 @@ class mop_addr_t(mop_t) | | lexcompare(self, *args) -> 'int' | lexcompare(self, ra) -> int + | + | @param ra: mop_addr_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | insize - | mop_addr_t_insize_get(self) -> int + | insize | | outsize - | mop_addr_t_outsize_get(self) -> int + | outsize | | thisown | The membership flag @@ -27622,12 +33396,18 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -27640,6 +33420,8 @@ class mop_addr_t(mop_t) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -27690,34 +33472,83 @@ class mop_addr_t(mop_t) | | _make_blkref(self, *args) -> 'void' | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -27736,90 +33567,217 @@ class mop_addr_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -27829,6 +33787,10 @@ class mop_addr_t(mop_t) | | equal_mops(self, *args) -> 'bool' | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -27838,64 +33800,121 @@ class mop_addr_t(mop_t) | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -27903,22 +33922,40 @@ class mop_addr_t(mop_t) | is_one(self, *args) -> 'bool' | is_one(self) -> bool | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | | is_positive_constant(self, *args) -> 'bool' | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | Is the specified register of the specified size? | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -27931,49 +33968,130 @@ class mop_addr_t(mop_t) | | is_zero_extended_from(self, *args) -> 'bool' | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | make_blkref(self, *args) -> 'void' | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' - | make_fpnum(self, bytes, _size) -> bool + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' | make_reg(self, reg) + | + | @param reg: mreg_t + | | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -27983,6 +34101,9 @@ class mop_addr_t(mop_t) | set_impptr_done(self, *args) -> 'void' | set_impptr_done(self) | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | | set_udt(self, *args) -> 'void' | set_udt(self) | @@ -27991,18 +34112,36 @@ class mop_addr_t(mop_t) | | shift_mop(self, *args) -> 'bool' | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | | value(self, *args) -> 'uint64' | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28044,7 +34183,7 @@ class mop_addr_t(mop_t) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -28055,13 +34194,13 @@ class mop_addr_t(mop_t) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes inherited from mop_t: @@ -28093,10 +34232,10 @@ class mop_pair_t(builtins.object) | list of weak references to the object (if defined) | | hop - | mop_pair_t_hop_get(self) -> mop_t + | hop | | lop - | mop_pair_t_lop_get(self) -> mop_t + | lop | | thisown | The membership flag @@ -28110,17 +34249,29 @@ class mop_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t | __init__(self, rop) -> mop_t + | + | @param rop: mop_t const & + | | __init__(self, _r, _s) -> mop_t + | + | @param _r: mreg_t + | @param _s: int | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -28138,6 +34289,8 @@ class mop_t(builtins.object) | | _ensure_no_t(self) | + | _ensure_ownership_transferrable(self, v) + | | _get_a(self, *args) -> 'mop_addr_t *' | _get_a(self) -> mop_addr_t | @@ -28188,34 +34341,83 @@ class mop_t(builtins.object) | | _make_blkref(self, *args) -> 'void' | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int | | _make_callinfo(self, *args) -> 'void' | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * | | _make_cases(self, *args) -> 'void' | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * | | _make_gvar(self, *args) -> 'void' | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t | | _make_insn(self, *args) -> 'void' | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * | | _make_lvar(self, *args) -> 'void' | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t | | _make_pair(self, *args) -> 'void' | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * | | _make_reg(self, *args) -> 'void' | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int | | _make_stkvar(self, *args) -> 'void' | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t | | _make_strlit(self, *args) -> 'void' | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * | | _maybe_disown_and_deregister(self) | @@ -28234,90 +34436,217 @@ class mop_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & | | change_size(self, *args) -> 'bool' | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success | | create_from_insn(self, *args) -> 'void' | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. | | create_from_ivlset(self, *args) -> 'bool' | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_mlist(self, *args) -> 'bool' | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success | | create_from_vdloc(self, *args) -> 'void' | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -28327,6 +34656,10 @@ class mop_t(builtins.object) | | equal_mops(self, *args) -> 'bool' | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits | | erase(self, *args) -> 'void' | erase(self) @@ -28336,64 +34669,121 @@ class mop_t(builtins.object) | | for_all_ops(self, *args) -> 'int' | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? | | for_all_scattered_submops(self, *args) -> 'int' | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object | | get_insn(self, *args) -> 'minsn_t *' | get_insn(self, code) -> minsn_t - | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t | | get_stkoff(self, *args) -> 'bool' | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? | | is01(self, *args) -> 'bool' | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. | | is_arglist(self, *args) -> 'bool' | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) -> 'bool' | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | | is_bit_reg(self) -> bool | | is_cc(self, *args) -> 'bool' | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) -> 'bool' | is_ccflags(self) -> bool | | is_constant(self, *args) -> 'bool' | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n | | is_equal_to(self, *args) -> 'bool' | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool | | is_extended_from(self, *args) -> 'bool' | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) | | is_glbaddr(self, *args) -> 'bool' | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? | is_insn(self, code) -> bool + | + | @param code: enum mcode_t | | is_kreg(self, *args) -> 'bool' | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool | | is_mob(self, *args) -> 'bool' | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -28401,22 +34791,40 @@ class mop_t(builtins.object) | is_one(self, *args) -> 'bool' | is_one(self) -> bool | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | | is_positive_constant(self, *args) -> 'bool' | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | Is the specified register of the specified size? | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits | | is_stkaddr(self, *args) -> 'bool' | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -28429,52 +34837,135 @@ class mop_t(builtins.object) | | is_zero_extended_from(self, *args) -> 'bool' | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & | | make_blkref(self, *args) -> 'void' | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) | | make_first_half(self, *args) -> 'bool' | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_fpnum(self, *args) -> 'bool' - | make_fpnum(self, bytes, _size) -> bool + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success | | make_gvar(self, *args) -> 'void' | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) | | make_helper(self, *args) -> 'void' | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * | | make_high_half(self, *args) -> 'bool' | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_insn(self, *args) -> 'void' | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success | | make_number(self, *args) -> 'void' | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction | | make_reg(self, *args) -> 'void' | make_reg(self, reg) + | + | @param reg: mreg_t + | | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int | | make_reg_pair(self, *args) -> 'void' | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg | | make_second_half(self, *args) -> 'bool' | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t | | may_use_aliased_memory(self, *args) -> 'bool' | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) -> 'bool' | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them | | probably_floating(self, *args) -> 'bool' | probably_floating(self) -> bool @@ -28484,6 +34975,9 @@ class mop_t(builtins.object) | set_impptr_done(self, *args) -> 'void' | set_impptr_done(self) | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | | set_udt(self, *args) -> 'void' | set_udt(self) | @@ -28492,18 +34986,36 @@ class mop_t(builtins.object) | | shift_mop(self, *args) -> 'bool' | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | + | @param rop: mop_t & | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | | value(self, *args) -> 'uint64' | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28545,7 +35057,7 @@ class mop_t(builtins.object) | _obj_id(self) -> PyObject * | | oprops - | mop_t_oprops_get(self) -> uint8 + | oprops | | pair | @@ -28556,7 +35068,7 @@ class mop_t(builtins.object) | scif | | size - | mop_t_size_get(self) -> int + | size | | t | _get_t(self) -> mopt_t @@ -28565,7 +35077,7 @@ class mop_t(builtins.object) | The membership flag | | valnum - | mop_t_valnum_get(self) -> uint16 + | valnum | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -28588,6 +35100,10 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28596,12 +35112,16 @@ class mop_visitor_t(op_parent_info_t) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op, type, is_target) -> int + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: | | prune - | mop_visitor_t_prune_get(self) -> bool + | prune | | thisown | The membership flag @@ -28616,16 +35136,16 @@ class mop_visitor_t(op_parent_info_t) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | mba | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on class mopvec_t in module ida_hexrays: @@ -28636,13 +35156,19 @@ class mopvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< mop_t > const & | | __getitem__(self, *args) -> 'mop_t const &' | __getitem__(self, i) -> mop_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28652,30 +35178,42 @@ class mopvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mop_t const & | | __swig_destroy__ = delete_mopvec_t(...) | delete_mopvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mop_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: mop_t const & | | at(self, *args) -> 'mop_t const &' | at(self, _idx) -> mop_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< mop_t >::const_iterator' | begin(self) -> mop_t - | begin(self) -> mop_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -28688,39 +35226,58 @@ class mopvec_t(builtins.object) | | end(self, *args) -> 'qvector< mop_t >::const_iterator' | end(self) -> mop_t - | end(self) -> mop_t | | erase(self, *args) -> 'qvector< mop_t >::iterator' | erase(self, it) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | | erase(self, first, last) -> mop_t + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator | | extract(self, *args) -> 'mop_t *' | extract(self) -> mop_t | | find(self, *args) -> 'qvector< mop_t >::const_iterator' | find(self, x) -> mop_t - | find(self, x) -> mop_t + | + | @param x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mop_t()) + | + | @param x: mop_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: mop_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: mop_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< mop_t >::iterator' | insert(self, it, x) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mop_t &' | push_back(self, x) + | + | @param x: mop_t const & + | | push_back(self) -> mop_t | | qclear(self, *args) -> 'void' @@ -28728,16 +35285,26 @@ class mopvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mop_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< mop_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28763,51 +35330,45 @@ Help on function mreg2reg in module ida_hexrays: mreg2reg(*args) -> 'int' mreg2reg(reg, width) -> int - - Map a microregister to a processor register. - @param reg: microregister number (C++: mreg_t) - @param width: size of microregister in bytes (C++: int) + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes @return: processor register id or -1 Help on function must_mcode_close_block in module ida_hexrays: must_mcode_close_block(*args) -> 'bool' must_mcode_close_block(mcode, including_calls) -> bool + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. - - Must an instruction with the given opcode be the last one in a block? - Such opcodes are called closing opcodes. - - @param mcode: instruction opcode (C++: mcode_t) - @param including_calls: should m_call/m_icall be considered as the - closing opcodes? If this function returns - true, the opcode cannot appear in the middle - of a block. Calls are a special case because - before MMAT_CALLS they are closing opcodes. - Afteer MMAT_CALLS that are not considered as - closing opcodes. (C++: bool) + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) -> 'mcode_t' negate_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t Help on function negated_relation in module ida_hexrays: negated_relation(*args) -> 'ctype_t' negated_relation(op) -> ctype_t - - Negate a comparison operator. For example, cot_sge becomes cot_slt. - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function new_block in module ida_hexrays: new_block() + Create a new block-statement. Help on class number_format_t in module ida_hexrays: @@ -28818,6 +35379,8 @@ class number_format_t(builtins.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t + | + | @param _opnum: int | | __repr__ = _swig_repr(self) | @@ -28826,33 +35389,50 @@ class number_format_t(builtins.object) | | get_radix(self, *args) -> 'int' | get_radix(self) -> int + | Get number radix + | + | @return: 2,8,10, or 16 + | + | has_unmutable_type(self, *args) -> 'bool' + | has_unmutable_type(self) -> bool | | is_char(self, *args) -> 'bool' | is_char(self) -> bool + | Is a character constant? | | is_dec(self, *args) -> 'bool' | is_dec(self) -> bool + | Is a decimal number? | | is_enum(self, *args) -> 'bool' | is_enum(self) -> bool + | Is a symbolic constant? | | is_fixed(self, *args) -> 'bool' | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler | | is_hex(self, *args) -> 'bool' | is_hex(self) -> bool + | Is a hexadecimal number? | | is_numop(self, *args) -> 'bool' | is_numop(self) -> bool + | Is a number? | | is_oct(self, *args) -> 'bool' | is_oct(self) -> bool + | Is a octal number? | | is_stroff(self, *args) -> 'bool' | is_stroff(self) -> bool + | Is a structure field offset? | | needs_to_be_inverted(self, *args) -> 'bool' | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28864,25 +35444,25 @@ class number_format_t(builtins.object) | list of weak references to the object (if defined) | | flags - | number_format_t_flags_get(self) -> flags_t + | flags | | opnum - | number_format_t_opnum_get(self) -> char + | opnum | | org_nbytes - | number_format_t_org_nbytes_get(self) -> char + | org_nbytes | | props - | number_format_t_props_get(self) -> char + | props | | serial - | number_format_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | type_name - | number_format_t_type_name_get(self) -> qstring * + | type_name Help on class op_parent_info_t in module ida_hexrays: @@ -28893,6 +35473,10 @@ class op_parent_info_t(builtins.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28909,66 +35493,53 @@ class op_parent_info_t(builtins.object) | list of weak references to the object (if defined) | | blk - | op_parent_info_t_blk_get(self) -> mblock_t + | blk | | curins - | op_parent_info_t_curins_get(self) -> minsn_t + | curins | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | mba | | thisown | The membership flag | | topins - | op_parent_info_t_topins_get(self) -> minsn_t + | topins Help on function op_uses_x in module ida_hexrays: op_uses_x(*args) -> 'bool' op_uses_x(op) -> bool + Does operator use the 'x' field of cexpr_t? - - Does operator use the 'x' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_y in module ida_hexrays: op_uses_y(*args) -> 'bool' op_uses_y(op) -> bool + Does operator use the 'y' field of cexpr_t? - - Does operator use the 'y' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function op_uses_z in module ida_hexrays: op_uses_z(*args) -> 'bool' op_uses_z(op) -> bool + Does operator use the 'z' field of cexpr_t? - - Does operator use the 'z' field of 'cexpr_t' ? - - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function open_pseudocode in module ida_hexrays: open_pseudocode(*args) -> 'vdui_t *' - open_pseudocode(ea, new_window) -> vdui_t + open_pseudocode(ea, flags) -> vdui_t + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. - - Open pseudocode window. The specified function is decompiled and the - pseudocode window is opened. - - @param ea: function to decompile (C++: ea_t) - @param new_window: 0:reuse existing window; 1:open new window; -1: - reuse existing window if the current view is - pseudocode (C++: int) + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -28980,24 +35551,39 @@ class operand_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t + | + | @param _ea: ea_t + | @param _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: operand_locator_t const & | | __repr__ = _swig_repr(self) | @@ -29006,6 +35592,8 @@ class operand_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29017,10 +35605,10 @@ class operand_locator_t(builtins.object) | list of weak references to the object (if defined) | | ea - | operand_locator_t_ea_get(self) -> ea_t + | ea | | opnum - | operand_locator_t_opnum_get(self) -> int + | opnum | | thisown | The membership flag @@ -29030,48 +35618,6 @@ class operand_locator_t(builtins.object) | | __hash__ = None -Help on class operator_info_t in module ida_hexrays: - -class operator_info_t(builtins.object) - | Proxy of C++ operator_info_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> operator_info_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_operator_info_t(...) - | delete_operator_info_t(self) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | fixtype - | operator_info_t_fixtype_get(self) -> uchar - | - | flags - | operator_info_t_flags_get(self) -> uchar - | - | precedence - | operator_info_t_precedence_get(self) -> uchar - | - | text - | operator_info_t_text_get(self) -> char const * - | - | thisown - | The membership flag - | - | valency - | operator_info_t_valency_get(self) -> uchar - Help on class optblock_t in module ida_hexrays: class optblock_t(builtins.object) @@ -29083,6 +35629,8 @@ class optblock_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optblock_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29091,6 +35639,13 @@ class optblock_t(builtins.object) | | func(self, *args) -> 'int' | func(self, blk) -> int + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. | | install(self, *args) -> 'void' | install(self) @@ -29121,6 +35676,8 @@ class optinsn_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optinsn_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29128,7 +35685,23 @@ class optinsn_t(builtins.object) | delete_optinsn_t(self) | | func(self, *args) -> 'int' - | func(self, blk, ins) -> int + | func(self, blk, ins, optflags) -> int + | Optimize an instruction. + | + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) | | install(self, *args) -> 'void' | install(self) @@ -29152,206 +35725,37 @@ Help on function parse_user_call in module ida_hexrays: parse_user_call(*args) -> 'bool' parse_user_call(udc, decl, silent) -> bool - - Convert function type declaration into internal structure - @param udc: - pointer to output structure (C++: udcall_t *) - @param decl: - function type declaration (C++: const char *) - @param silent: - if TRUE: do not show warning in case of incorrect - type (C++: bool) + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type @return: success Help on function partial_type_num in module ida_hexrays: partial_type_num(*args) -> 'int' partial_type_num(type) -> int - - Calculate number of partial subtypes. - @param type (C++: const tinfo_t &) - @return: number of partial subtypes. The bigger is this number, the - uglier is the type. + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. Help on function print_vdloc in module ida_hexrays: print_vdloc(*args) -> 'qstring *' - print_vdloc(loc, nbytes) + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. - - Print vdloc. Since vdloc does not always carry the size info, we pass - it as NBYTES.. - - @param loc (C++: const vdloc_t &) - @param nbytes (C++: int) + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) Help on function property_op_to_typename in module ida_hexrays: property_op_to_typename(self) -Help on class qlist_cinsn_t in module ida_hexrays: - -class qlist_cinsn_t(builtins.object) - | Proxy of C++ qlist< cinsn_t > class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | - | __getitem__(self, *args) -> 'cinsn_t const &' - | __getitem__(self, i) -> cinsn_t - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t - | - | __iter__ = _bounded_getitem_iterator(self) - | Helper function, to be set as __iter__ method for qvector-, or array-based classes. - | - | __len__(self, *args) -> 'size_t' - | __len__(self) -> size_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | - | __repr__ = _swig_repr(self) - | - | __setitem__(self, *args) -> 'void' - | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_qlist_cinsn_t(...) - | delete_qlist_cinsn_t(self) - | - | at(self, index) - | - | back = _qvector_back(self) - | # ----------------------------------------------------------------------- - | - | begin(self, *args) -> 'qlist_cinsn_t_iterator' - | begin(self) -> qlist_cinsn_t_iterator - | - | clear(self, *args) -> 'void' - | clear(self) - | - | empty(self, *args) -> 'bool' - | empty(self) -> bool - | - | end(self, *args) -> 'qlist_cinsn_t_iterator' - | end(self) -> qlist_cinsn_t_iterator - | - | erase(self, *args) -> 'void' - | erase(self, p) -> qlist< cinsn_t >::iterator - | erase(self, p1, p2) - | erase(self, p) - | - | find(self, item) - | - | front = _qvector_front(self) - | # ----------------------------------------------------------------------- - | - | index(self, item) - | - | insert(self, *args) -> 'qlist_cinsn_t_iterator' - | insert(self, p, x) -> qlist< cinsn_t >::iterator - | insert(self, p) -> qlist< cinsn_t >::iterator - | insert(self, i, v) - | insert(self, p, x) -> qlist_cinsn_t_iterator - | - | pop_back(self, *args) -> 'void' - | pop_back(self) - | - | pop_front(self, *args) -> 'void' - | pop_front(self) - | - | push_back(self, *args) -> 'cinsn_t &' - | push_back(self, x) - | push_back(self) -> cinsn_t - | - | push_front(self, *args) -> 'void' - | push_front(self, x) - | - | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rbegin(self) -> qlist< cinsn_t >::reverse_iterator - | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | remove(self, *args) -> 'bool' - | remove(self, v) -> bool - | - | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' - | rend(self) -> qlist< cinsn_t >::reverse_iterator - | rend(self) -> qlist< cinsn_t >::const_reverse_iterator - | - | size(self, *args) -> 'size_t' - | size(self) -> size_t - | - | swap(self, *args) -> 'void' - | swap(self, x) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - -Help on class qlist_cinsn_t_iterator in module ida_hexrays: - -class qlist_cinsn_t_iterator(builtins.object) - | Proxy of C++ qlist_cinsn_t_iterator class. - | - | Methods defined here: - | - | __eq__(self, *args) -> 'bool' - | __eq__(self, x) -> bool - | - | __init__(self, *args) - | __init__(self) -> qlist_cinsn_t_iterator - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, x) -> bool - | - | __next__(self, *args) -> 'void' - | __next__(self) - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_qlist_cinsn_t_iterator(...) - | delete_qlist_cinsn_t_iterator(self) - | - | next = __next__(self, *args) -> 'void' - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | - | cur - | qlist_cinsn_t_iterator_cur_get(self) -> cinsn_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None - Help on class qstring_printer_t in module ida_hexrays: class qstring_printer_t(vc_printer_t) @@ -29367,11 +35771,19 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t + | + | @param f: cfunc_t const * + | @param tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * | | get_s(self, *args) -> 'qstring' | get_s(self) -> qstring @@ -29385,7 +35797,7 @@ class qstring_printer_t(vc_printer_t) | The membership flag | | with_tags - | qstring_printer_t_with_tags_get(self) -> bool + | with_tags | | ---------------------------------------------------------------------- | Methods inherited from vc_printer_t: @@ -29397,15 +35809,18 @@ class qstring_printer_t(vc_printer_t) | | oneliner(self, *args) -> 'bool' | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -29417,15 +35832,18 @@ class qstring_printer_t(vc_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on function qswap in module ida_hexrays: qswap(*args) -> 'void' qswap(a, b) + + @param a: cinsn_t & + @param b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -29436,13 +35854,19 @@ class qvector_carg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< carg_t > const & | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29451,20 +35875,31 @@ class qvector_carg_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & | | __swig_destroy__ = delete_qvector_carg_t(...) | delete_qvector_carg_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | @@ -29475,7 +35910,6 @@ class qvector_carg_t(builtins.object) | | begin(self, *args) -> 'qvector< carg_t >::const_iterator' | begin(self) -> carg_t - | begin(self) -> carg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29488,39 +35922,58 @@ class qvector_carg_t(builtins.object) | | end(self, *args) -> 'qvector< carg_t >::const_iterator' | end(self) -> carg_t - | end(self) -> carg_t | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator | | extract(self, *args) -> 'carg_t *' | extract(self) -> carg_t | | find(self, *args) -> 'qvector< carg_t >::const_iterator' | find(self, x) -> carg_t - | find(self, x) -> carg_t + | + | @param x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | + | @param x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) + | + | @param x: carg_t const & + | | push_back(self) -> carg_t | | qclear(self, *args) -> 'void' @@ -29528,16 +35981,26 @@ class qvector_carg_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29568,13 +36031,19 @@ class qvector_ccase_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29583,20 +36052,31 @@ class qvector_ccase_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & | | __swig_destroy__ = delete_qvector_ccase_t(...) | delete_qvector_ccase_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | @@ -29607,7 +36087,6 @@ class qvector_ccase_t(builtins.object) | | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' | begin(self) -> ccase_t - | begin(self) -> ccase_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29620,39 +36099,58 @@ class qvector_ccase_t(builtins.object) | | end(self, *args) -> 'qvector< ccase_t >::const_iterator' | end(self) -> ccase_t - | end(self) -> ccase_t | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator | | extract(self, *args) -> 'ccase_t *' | extract(self) -> ccase_t | | find(self, *args) -> 'qvector< ccase_t >::const_iterator' | find(self, x) -> ccase_t - | find(self, x) -> ccase_t + | + | @param x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) + | + | @param x: ccase_t const & + | | push_back(self) -> ccase_t | | qclear(self, *args) -> 'void' @@ -29660,16 +36158,26 @@ class qvector_ccase_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29700,13 +36208,19 @@ class qvector_history_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29716,30 +36230,42 @@ class qvector_history_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & | | __swig_destroy__ = delete_qvector_history_t(...) | delete_qvector_history_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: history_item_t const & | | at(self, *args) -> 'history_item_t const &' | at(self, _idx) -> history_item_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' | begin(self) -> history_item_t - | begin(self) -> history_item_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29752,39 +36278,58 @@ class qvector_history_t(builtins.object) | | end(self, *args) -> 'qvector< history_item_t >::const_iterator' | end(self) -> history_item_t - | end(self) -> history_item_t | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator | | extract(self, *args) -> 'history_item_t *' | extract(self) -> history_item_t | | find(self, *args) -> 'qvector< history_item_t >::const_iterator' | find(self, x) -> history_item_t - | find(self, x) -> history_item_t + | + | @param x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) + | + | @param x: history_item_t const & + | | push_back(self) -> history_item_t | | qclear(self, *args) -> 'void' @@ -29792,16 +36337,26 @@ class qvector_history_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29832,13 +36387,19 @@ class qvector_lvar_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29847,20 +36408,31 @@ class qvector_lvar_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & | | __swig_destroy__ = delete_qvector_lvar_t(...) | delete_qvector_lvar_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | @@ -29871,7 +36443,6 @@ class qvector_lvar_t(builtins.object) | | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' | begin(self) -> lvar_t - | begin(self) -> lvar_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -29884,39 +36455,58 @@ class qvector_lvar_t(builtins.object) | | end(self, *args) -> 'qvector< lvar_t >::const_iterator' | end(self) -> lvar_t - | end(self) -> lvar_t | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t | | find(self, *args) -> 'qvector< lvar_t >::const_iterator' | find(self, x) -> lvar_t - | find(self, x) -> lvar_t + | + | @param x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) + | + | @param x: lvar_t const & + | | push_back(self) -> lvar_t | | qclear(self, *args) -> 'void' @@ -29924,16 +36514,26 @@ class qvector_lvar_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29959,107 +36559,115 @@ Help on function reg2mreg in module ida_hexrays: reg2mreg(*args) -> 'mreg_t' reg2mreg(reg) -> mreg_t - - Map a processor register to a microregister. - @param reg: processor register number (C++: int) + @param reg: (C++: int) processor register number @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) -> 'void' remitem(e) + + @param e: citem_t const * Help on function remove_hexrays_callback in module ida_hexrays: remove_hexrays_callback(callback) Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. + +Help on function rename_lvar in module ida_hexrays: + +rename_lvar(*args) -> 'bool' + rename_lvar(func_ea, oldname, newname) -> bool + Rename a local variable. + + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. Help on function restore_user_cmts in module ida_hexrays: restore_user_cmts(*args) -> 'user_cmts_t *' restore_user_cmts(func_ea) -> user_cmts_t - - Restore user defined comments from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined comments. The returned object must - be deleted by the caller using delete_user_cmts() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() Help on function restore_user_defined_calls in module ida_hexrays: restore_user_defined_calls(*args) -> 'bool' restore_user_defined_calls(udcalls, func_ea) -> bool - - Restore user defined function calls from the database. - @param udcalls: ptr to output buffer (C++: udcall_map_t *) - @param func_ea: entry address of the function (C++: ea_t) + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function @return: success Help on function restore_user_iflags in module ida_hexrays: restore_user_iflags(*args) -> 'user_iflags_t *' restore_user_iflags(func_ea) -> user_iflags_t - - Restore user defined citem iflags from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined iflags. The returned object must - be deleted by the caller using delete_user_iflags() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() Help on function restore_user_labels in module ida_hexrays: restore_user_labels(*args) -> 'user_labels_t *' restore_user_labels(func_ea) -> user_labels_t - - Restore user defined labels from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined labels. The returned object must - be deleted by the caller using delete_user_labels() + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() + +Help on function restore_user_labels2 in module ida_hexrays: + +restore_user_labels2(*args) -> 'user_labels_t *' + restore_user_labels2(func_ea, func=None) -> user_labels_t + + @param func_ea: ea_t + @param func: cfunc_t const * Help on function restore_user_lvar_settings in module ida_hexrays: restore_user_lvar_settings(*args) -> 'bool' restore_user_lvar_settings(lvinf, func_ea) -> bool - - Restore user defined local variable settings in the database. - @param lvinf: ptr to output buffer (C++: lvar_uservec_t *) - @param func_ea: entry address of the function (C++: ea_t) + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function @return: success Help on function restore_user_numforms in module ida_hexrays: restore_user_numforms(*args) -> 'user_numforms_t *' restore_user_numforms(func_ea) -> user_numforms_t - - Restore user defined number formats from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of user defined number formats. The returned - object must be deleted by the caller using - delete_user_numforms() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() Help on function restore_user_unions in module ida_hexrays: restore_user_unions(*args) -> 'user_unions_t *' restore_user_unions(func_ea) -> user_unions_t - - Restore user defined union field selections from the database. - @param func_ea: the entry address of the function (C++: ea_t) - @return: collection of union field selections The returned object must - be deleted by the caller using delete_user_unions() + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() Help on class rlist_t in module ida_hexrays: @@ -30076,7 +36684,13 @@ class rlist_t(bitset_t) | __init__(self, *args) | __init__(self) -> rlist_t | __init__(self, m) -> rlist_t + | + | @param m: rlist_t const & + | | __init__(self, reg, width) -> rlist_t + | + | @param reg: mreg_t + | @param width: int | | __repr__ = _swig_repr(self) | @@ -30097,110 +36711,179 @@ class rlist_t(bitset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | count(self) -> int | count(self, bit) -> int + | + | @param bit: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bitset_t const & | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | + | @param bit: int + | | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | add(self, ml) -> bool + | + | @param ml: bitset_t const & | | back(self, *args) -> 'int' | back(self) -> int | | begin(self, *args) -> 'bitset_t::iterator' - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & | | count(self, *args) -> 'int' | count(self) -> int | count(self, bit) -> int + | + | @param bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | + | @param maxbit: int | | empty(self, *args) -> 'bool' | empty(self) -> bool | | end(self, *args) -> 'bitset_t::iterator' - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) -> 'void' | fill_with_ones(self, maxbit) + | + | @param maxbit: int | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | + | @param bit: int | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | + | @param ml: bitset_t const & | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | + | @param n: int | | itv(self, *args) -> 'int' | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | + | @param shift: int | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | + | @param bit: int + | | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | | sub(self, ml) -> bool + | + | @param ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: bitset_t & | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -30220,85 +36903,73 @@ Help on function save_user_cmts in module ida_hexrays: save_user_cmts(*args) -> 'void' save_user_cmts(func_ea, user_cmts) - - Save user defined comments into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param user_cmts: collection of user defined comments (C++: const - user_cmts_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments Help on function save_user_defined_calls in module ida_hexrays: save_user_defined_calls(*args) -> 'void' save_user_defined_calls(func_ea, udcalls) - - Save user defined local function calls into the database. - @param func_ea: entry address of the function (C++: ea_t) - @param udcalls: user-specified info about user defined function calls - (C++: const udcall_map_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls Help on function save_user_iflags in module ida_hexrays: save_user_iflags(*args) -> 'void' save_user_iflags(func_ea, iflags) - - Save user defined citem iflags into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param iflags: collection of user defined citem iflags (C++: const - user_iflags_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags Help on function save_user_labels in module ida_hexrays: save_user_labels(*args) -> 'void' save_user_labels(func_ea, user_labels) - - Save user defined labels into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param user_labels: collection of user defined labels (C++: const - user_labels_t *) + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels + +Help on function save_user_labels2 in module ida_hexrays: + +save_user_labels2(*args) -> 'void' + save_user_labels2(func_ea, user_labels, func=None) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * Help on function save_user_lvar_settings in module ida_hexrays: save_user_lvar_settings(*args) -> 'void' save_user_lvar_settings(func_ea, lvinf) - - Save user defined local variable settings into the database. - @param func_ea: entry address of the function (C++: ea_t) - @param lvinf: user-specified info about local variables (C++: const - lvar_uservec_t &) + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables Help on function save_user_numforms in module ida_hexrays: save_user_numforms(*args) -> 'void' save_user_numforms(func_ea, numforms) - - Save user defined number formats into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param numforms: collection of user defined comments (C++: const - user_numforms_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments Help on function save_user_unions in module ida_hexrays: save_user_unions(*args) -> 'void' save_user_unions(func_ea, unions) - - Save user defined union field selections into the database. - @param func_ea: the entry address of the function (C++: ea_t) - @param unions: collection of union field selections (C++: const - user_unions_t *) + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections Help on class scif_t in module ida_hexrays: @@ -30314,7 +36985,11 @@ class scif_t(vdloc_t) | Methods defined here: | | __init__(self, *args) - | __init__(self, _mba, n, tif) -> scif_t + | __init__(self, _mba, tif, n=None) -> scif_t + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * | | __repr__ = _swig_repr(self) | @@ -30325,52 +37000,75 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mbl_array_t + | mba | | name - | scif_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | scif_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Methods inherited from vdloc_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data and other attributes inherited from vdloc_t: @@ -30382,131 +37080,220 @@ class scif_t(vdloc_t) | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -30528,6 +37315,8 @@ class scif_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30536,6 +37325,9 @@ class scif_visitor_t(builtins.object) | | visit_scif_mop(self, *args) -> 'int' | visit_scif_mop(self, r, off) -> int + | + | @param r: mop_t const & + | @param off: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30553,82 +37345,198 @@ Help on function select_udt_by_offset in module ida_hexrays: select_udt_by_offset(*args) -> 'int' select_udt_by_offset(udts, ops, applicator) -> int - - Select UDT - @param udts: list of UDT tinfo_t for the selection, if NULL or empty - then UDTs from the "Local types" will be used (C++: const - qvector < tinfo_t > *) - @param ops: operands (C++: const ui_stroff_ops_t &) - @param applicator (C++: ui_stroff_applicator_t &) + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) callback will be called to apply the selection for every + operand Help on function send_database in module ida_hexrays: send_database(*args) -> 'void' send_database(err, silent) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. - - Send the database to Hex-Rays. This function sends the current - database to the Hex-Rays server. The database is sent in the - compressed form over an encrypted (SSL) connection. - - @param err: failure description object. Empty hexrays_failure_t - object can be used if error information is not available. - (C++: const hexrays_failure_t &) - @param silent: if false, a dialog box will be displayed before sending - the database. (C++: bool) + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. Help on function set2jcnd in module ida_hexrays: set2jcnd(*args) -> 'mcode_t' set2jcnd(code) -> mcode_t + + @param code: enum mcode_t Help on function set_type in module ida_hexrays: set_type(*args) -> 'bool' set_type(id, tif, source, force=False) -> bool - - Set a global type. - @param id: address or id of the object (C++: uval_t) - @param tif: new type info (C++: const tinfo_t &) - @param source: where the type comes from (C++: type_source_t) - @param force: true means to set the type as is, false means to merge - the new type with the possibly existing old type info. - (C++: bool) + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. @return: success Help on class simple_graph_t in module ida_hexrays: -class simple_graph_t(builtins.object) +class simple_graph_t(ida_gdl.gdl_graph_t) | Proxy of C++ simple_graph_t class. | + | Method resolution order: + | simple_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | | Methods defined here: | | __init__(self, *args, **kwargs) - | Initialize self. See help(type(self)) for accurate signature. + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - | | colored_gdl_edges - | simple_graph_t_colored_gdl_edges_get(self) -> bool + | colored_gdl_edges | | thisown | The membership flag | | title - | simple_graph_t_title_get(self) -> qstring * + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) Help on class stkvar_ref_t in module ida_hexrays: @@ -30639,24 +37547,39 @@ class stkvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t + | + | @param m: mba_t * + | @param o: sval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -30665,12 +37588,20 @@ class stkvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: stkvar_ref_t const & | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, p_off=None) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: stkvar_ref_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30682,10 +37613,10 @@ class stkvar_ref_t(builtins.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mbl_array_t + | mba | | off - | stkvar_ref_t_off_get(self) -> sval_t + | off | | thisown | The membership flag @@ -30699,24 +37630,21 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) -> 'mcode_t' swap_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t Help on function swapped_relation in module ida_hexrays: swapped_relation(*args) -> 'ctype_t' swapped_relation(op) -> ctype_t - - Swap a comparison operator. For example, cot_sge becomes cot_sle. - - @param op (C++: ctype_t) + @param op: (C++: ctype_t) enum ctype_t Help on function term_hexrays_plugin in module ida_hexrays: term_hexrays_plugin(*args) -> 'void' term_hexrays_plugin() - - Stop working with hex-rays decompiler. Help on class treeloc_t in module ida_hexrays: @@ -30728,12 +37656,16 @@ class treeloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -30750,10 +37682,10 @@ class treeloc_t(builtins.object) | list of weak references to the object (if defined) | | ea - | treeloc_t_ea_get(self) -> ea_t + | ea | | itp - | treeloc_t_itp_get(self) -> item_preciser_t + | itp | | thisown | The membership flag @@ -30779,6 +37711,8 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30787,12 +37721,37 @@ class udc_filter_t(microcode_filter_t) | | apply(self, *args) -> 'merror_t' | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | init(self, *args) -> 'bool' | init(self, decl) -> bool + | + | @param decl: char const * + | + | install(self, *args) -> 'void' + | install(self) | | match(self, *args) -> 'bool' | match(self, cdg) -> bool + | return true if the filter object should be applied to given instruction + | + | @param cdg: (C++: codegen_t &) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30813,93 +37772,69 @@ Help on function udcall_map_begin in module ida_hexrays: udcall_map_begin(*args) -> 'udcall_map_iterator_t' udcall_map_begin(map) -> udcall_map_iterator_t - - Get iterator pointing to the beginning of udcall_map_t. - - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_clear in module ida_hexrays: udcall_map_clear(*args) -> 'void' udcall_map_clear(map) - - Clear udcall_map_t. - - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_end in module ida_hexrays: udcall_map_end(*args) -> 'udcall_map_iterator_t' udcall_map_end(map) -> udcall_map_iterator_t - - Get iterator pointing to the end of udcall_map_t. - - @param map (C++: const udcall_map_t *) + @param map: (C++: const udcall_map_t *) udcall_map_t const * Help on function udcall_map_erase in module ida_hexrays: udcall_map_erase(*args) -> 'void' udcall_map_erase(map, p) - - Erase current element from udcall_map_t. - - @param map (C++: udcall_map_t *) - @param p (C++: udcall_map_iterator_t) + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_find in module ida_hexrays: udcall_map_find(*args) -> 'udcall_map_iterator_t' udcall_map_find(map, key) -> udcall_map_iterator_t - - Find the specified key in udcall_map_t. - - @param map (C++: const udcall_map_t *) - @param key (C++: const ea_t &) + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function udcall_map_first in module ida_hexrays: udcall_map_first(*args) -> 'ea_t const &' udcall_map_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_free in module ida_hexrays: udcall_map_free(*args) -> 'void' udcall_map_free(map) - - Delete udcall_map_t instance. - - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on function udcall_map_insert in module ida_hexrays: udcall_map_insert(*args) -> 'udcall_map_iterator_t' udcall_map_insert(map, key, val) -> udcall_map_iterator_t + Insert new (ea_t, udcall_t) pair into udcall_map_t. - - Insert new (ea_t, 'udcall_t' ) pair into udcall_map_t. - - - @param map (C++: udcall_map_t *) - @param key (C++: const ea_t &) - @param val (C++: const udcall_t &) + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & Help on class udcall_map_iterator_t in module ida_hexrays: @@ -30910,12 +37845,16 @@ class udcall_map_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -30935,7 +37874,7 @@ class udcall_map_iterator_t(builtins.object) | The membership flag | | x - | udcall_map_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -30946,53 +37885,39 @@ Help on function udcall_map_new in module ida_hexrays: udcall_map_new(*args) -> 'udcall_map_t *' udcall_map_new() -> udcall_map_t * - - Create a new udcall_map_t instance. Help on function udcall_map_next in module ida_hexrays: udcall_map_next(*args) -> 'udcall_map_iterator_t' udcall_map_next(p) -> udcall_map_iterator_t - - Move to the next element. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_prev in module ida_hexrays: udcall_map_prev(*args) -> 'udcall_map_iterator_t' udcall_map_prev(p) -> udcall_map_iterator_t - - Move to the previous element. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_second in module ida_hexrays: udcall_map_second(*args) -> 'udcall_t &' udcall_map_second(p) -> udcall_t - - Get reference to the current map value. - - @param p (C++: udcall_map_iterator_t) + @param p: (C++: udcall_map_iterator_t) Help on function udcall_map_size in module ida_hexrays: udcall_map_size(*args) -> 'size_t' udcall_map_size(map) -> size_t - - Get size of udcall_map_t. - - @param map (C++: udcall_map_t *) + @param map: (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -31003,24 +37928,36 @@ class udcall_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: udcall_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: udcall_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: udcall_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: udcall_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: udcall_t const & | | __repr__ = _swig_repr(self) | @@ -31029,6 +37966,11 @@ class udcall_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: udcall_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31040,13 +37982,13 @@ class udcall_t(builtins.object) | list of weak references to the object (if defined) | | name - | udcall_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tif - | udcall_t_tif_get(self) -> tinfo_t + | tif | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31064,6 +38006,8 @@ class ui_stroff_applicator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -31072,6 +38016,11 @@ class ui_stroff_applicator_t(builtins.object) | | apply(self, *args) -> 'bool' | apply(self, opnum, path, top_tif, spath) -> bool + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31094,12 +38043,16 @@ class ui_stroff_op_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -31116,10 +38069,10 @@ class ui_stroff_op_t(builtins.object) | list of weak references to the object (if defined) | | offset - | ui_stroff_op_t_offset_get(self) -> uval_t + | offset | | text - | ui_stroff_op_t_text_get(self) -> qstring * + | text | | thisown | The membership flag @@ -31138,13 +38091,19 @@ class ui_stroff_ops_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) -> 'ui_stroff_op_t const &' | __getitem__(self, i) -> ui_stroff_op_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -31153,20 +38112,31 @@ class ui_stroff_ops_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ui_stroff_op_t const & | | __swig_destroy__ = delete_ui_stroff_ops_t(...) | delete_ui_stroff_ops_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: ui_stroff_op_t const & | | append = push_back(self, *args) -> 'ui_stroff_op_t &' | @@ -31177,7 +38147,6 @@ class ui_stroff_ops_t(builtins.object) | | begin(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | begin(self) -> ui_stroff_op_t - | begin(self) -> ui_stroff_op_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -31190,39 +38159,58 @@ class ui_stroff_ops_t(builtins.object) | | end(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | end(self) -> ui_stroff_op_t - | end(self) -> ui_stroff_op_t | | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | erase(self, it) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | | erase(self, first, last) -> ui_stroff_op_t + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) -> 'ui_stroff_op_t *' | extract(self) -> ui_stroff_op_t | | find(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' | find(self, x) -> ui_stroff_op_t - | find(self, x) -> ui_stroff_op_t + | + | @param x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ui_stroff_op_t()) + | + | @param x: ui_stroff_op_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: ui_stroff_op_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ui_stroff_op_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | insert(self, it, x) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ui_stroff_op_t &' | push_back(self, x) + | + | @param x: ui_stroff_op_t const & + | | push_back(self) -> ui_stroff_op_t | | qclear(self, *args) -> 'void' @@ -31230,16 +38218,26 @@ class ui_stroff_ops_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ui_stroff_op_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -31265,93 +38263,69 @@ Help on function user_cmts_begin in module ida_hexrays: user_cmts_begin(*args) -> 'user_cmts_iterator_t' user_cmts_begin(map) -> user_cmts_iterator_t - - Get iterator pointing to the beginning of user_cmts_t. - - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_clear in module ida_hexrays: user_cmts_clear(*args) -> 'void' user_cmts_clear(map) - - Clear user_cmts_t. - - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_end in module ida_hexrays: user_cmts_end(*args) -> 'user_cmts_iterator_t' user_cmts_end(map) -> user_cmts_iterator_t - - Get iterator pointing to the end of user_cmts_t. - - @param map (C++: const user_cmts_t *) + @param map: (C++: const user_cmts_t *) user_cmts_t const * Help on function user_cmts_erase in module ida_hexrays: user_cmts_erase(*args) -> 'void' user_cmts_erase(map, p) - - Erase current element from user_cmts_t. - - @param map (C++: user_cmts_t *) - @param p (C++: user_cmts_iterator_t) + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_find in module ida_hexrays: user_cmts_find(*args) -> 'user_cmts_iterator_t' user_cmts_find(map, key) -> user_cmts_iterator_t - - Find the specified key in user_cmts_t. - - @param map (C++: const user_cmts_t *) - @param key (C++: const treeloc_t &) + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & Help on function user_cmts_first in module ida_hexrays: user_cmts_first(*args) -> 'treeloc_t const &' user_cmts_first(p) -> treeloc_t - - Get reference to the current map key. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_free in module ida_hexrays: user_cmts_free(*args) -> 'void' user_cmts_free(map) - - Delete user_cmts_t instance. - - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on function user_cmts_insert in module ida_hexrays: user_cmts_insert(*args) -> 'user_cmts_iterator_t' user_cmts_insert(map, key, val) -> user_cmts_iterator_t + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. - - Insert new ( 'treeloc_t' , 'citem_cmt_t' ) pair into user_cmts_t. - - - @param map (C++: user_cmts_t *) - @param key (C++: const treeloc_t &) - @param val (C++: const citem_cmt_t &) + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & Help on class user_cmts_iterator_t in module ida_hexrays: @@ -31362,12 +38336,16 @@ class user_cmts_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31387,7 +38365,7 @@ class user_cmts_iterator_t(builtins.object) | The membership flag | | x - | user_cmts_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31398,53 +38376,39 @@ Help on function user_cmts_new in module ida_hexrays: user_cmts_new(*args) -> 'user_cmts_t *' user_cmts_new() -> user_cmts_t - - Create a new user_cmts_t instance. Help on function user_cmts_next in module ida_hexrays: user_cmts_next(*args) -> 'user_cmts_iterator_t' user_cmts_next(p) -> user_cmts_iterator_t - - Move to the next element. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_prev in module ida_hexrays: user_cmts_prev(*args) -> 'user_cmts_iterator_t' user_cmts_prev(p) -> user_cmts_iterator_t - - Move to the previous element. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_second in module ida_hexrays: user_cmts_second(*args) -> 'citem_cmt_t &' user_cmts_second(p) -> citem_cmt_t - - Get reference to the current map value. - - @param p (C++: user_cmts_iterator_t) + @param p: (C++: user_cmts_iterator_t) Help on function user_cmts_size in module ida_hexrays: user_cmts_size(*args) -> 'size_t' user_cmts_size(map) -> size_t - - Get size of user_cmts_t. - - @param map (C++: user_cmts_t *) + @param map: (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -31455,9 +38419,17 @@ class user_cmts_t(builtins.object) | | __begin = user_cmts_begin(...) | user_cmts_begin(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __clear = user_cmts_clear(...) | user_cmts_clear(map) + | + | Parameters + | ---------- + | map: user_cmts_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -31467,15 +38439,33 @@ class user_cmts_t(builtins.object) | | __end = user_cmts_end(...) | user_cmts_end(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __erase = user_cmts_erase(...) | user_cmts_erase(map, p) + | + | Parameters + | ---------- + | map: user_cmts_t * + | p: user_cmts_iterator_t | | __find = user_cmts_find(...) | user_cmts_find(map, key) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | key: treeloc_t const & | | __first = user_cmts_first(...) | user_cmts_first(p) -> treeloc_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -31485,6 +38475,12 @@ class user_cmts_t(builtins.object) | | __insert = user_cmts_insert(...) | user_cmts_insert(map, key, val) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t * + | key: treeloc_t const & + | val: citem_cmt_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -31494,23 +38490,37 @@ class user_cmts_t(builtins.object) | | __next = user_cmts_next(...) | user_cmts_next(p) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_cmts_second(...) | user_cmts_second(p) -> citem_cmt_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_cmts_size(...) | user_cmts_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_cmts_t * | | __swig_destroy__ = delete_user_cmts_t(...) | delete_user_cmts_t(self) | | at(self, *args) -> 'citem_cmt_t &' | at(self, _Keyval) -> citem_cmt_t + | + | @param _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -31584,93 +38594,69 @@ Help on function user_iflags_begin in module ida_hexrays: user_iflags_begin(*args) -> 'user_iflags_iterator_t' user_iflags_begin(map) -> user_iflags_iterator_t - - Get iterator pointing to the beginning of user_iflags_t. - - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_clear in module ida_hexrays: user_iflags_clear(*args) -> 'void' user_iflags_clear(map) - - Clear user_iflags_t. - - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_end in module ida_hexrays: user_iflags_end(*args) -> 'user_iflags_iterator_t' user_iflags_end(map) -> user_iflags_iterator_t - - Get iterator pointing to the end of user_iflags_t. - - @param map (C++: const user_iflags_t *) + @param map: (C++: const user_iflags_t *) user_iflags_t const * Help on function user_iflags_erase in module ida_hexrays: user_iflags_erase(*args) -> 'void' user_iflags_erase(map, p) - - Erase current element from user_iflags_t. - - @param map (C++: user_iflags_t *) - @param p (C++: user_iflags_iterator_t) + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_find in module ida_hexrays: user_iflags_find(*args) -> 'user_iflags_iterator_t' user_iflags_find(map, key) -> user_iflags_iterator_t - - Find the specified key in user_iflags_t. - - @param map (C++: const user_iflags_t *) - @param key (C++: const citem_locator_t &) + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & Help on function user_iflags_first in module ida_hexrays: user_iflags_first(*args) -> 'citem_locator_t const &' user_iflags_first(p) -> citem_locator_t - - Get reference to the current map key. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_free in module ida_hexrays: user_iflags_free(*args) -> 'void' user_iflags_free(map) - - Delete user_iflags_t instance. - - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on function user_iflags_insert in module ida_hexrays: user_iflags_insert(*args) -> 'user_iflags_iterator_t' user_iflags_insert(map, key, val) -> user_iflags_iterator_t + Insert new (citem_locator_t, int32) pair into user_iflags_t. - - Insert new ( 'citem_locator_t' , int32) pair into user_iflags_t. - - - @param map (C++: user_iflags_t *) - @param key (C++: const citem_locator_t &) - @param val (C++: const int32 &) + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & Help on class user_iflags_iterator_t in module ida_hexrays: @@ -31681,12 +38667,16 @@ class user_iflags_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31706,7 +38696,7 @@ class user_iflags_iterator_t(builtins.object) | The membership flag | | x - | user_iflags_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -31717,53 +38707,39 @@ Help on function user_iflags_new in module ida_hexrays: user_iflags_new(*args) -> 'user_iflags_t *' user_iflags_new() -> user_iflags_t - - Create a new user_iflags_t instance. Help on function user_iflags_next in module ida_hexrays: user_iflags_next(*args) -> 'user_iflags_iterator_t' user_iflags_next(p) -> user_iflags_iterator_t - - Move to the next element. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_prev in module ida_hexrays: user_iflags_prev(*args) -> 'user_iflags_iterator_t' user_iflags_prev(p) -> user_iflags_iterator_t - - Move to the previous element. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_second in module ida_hexrays: user_iflags_second(*args) -> 'int32 const &' user_iflags_second(p) -> int32 const & - - Get reference to the current map value. - - @param p (C++: user_iflags_iterator_t) + @param p: (C++: user_iflags_iterator_t) Help on function user_iflags_size in module ida_hexrays: user_iflags_size(*args) -> 'size_t' user_iflags_size(map) -> size_t - - Get size of user_iflags_t. - - @param map (C++: user_iflags_t *) + @param map: (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -31774,9 +38750,17 @@ class user_iflags_t(builtins.object) | | __begin = user_iflags_begin(...) | user_iflags_begin(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __clear = user_iflags_clear(...) | user_iflags_clear(map) + | + | Parameters + | ---------- + | map: user_iflags_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -31786,15 +38770,33 @@ class user_iflags_t(builtins.object) | | __end = user_iflags_end(...) | user_iflags_end(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __erase = user_iflags_erase(...) | user_iflags_erase(map, p) + | + | Parameters + | ---------- + | map: user_iflags_t * + | p: user_iflags_iterator_t | | __find = user_iflags_find(...) | user_iflags_find(map, key) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | key: citem_locator_t const & | | __first = user_iflags_first(...) | user_iflags_first(p) -> citem_locator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -31804,6 +38806,12 @@ class user_iflags_t(builtins.object) | | __insert = user_iflags_insert(...) | user_iflags_insert(map, key, val) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | key: citem_locator_t const & + | val: int32 const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -31813,23 +38821,37 @@ class user_iflags_t(builtins.object) | | __next = user_iflags_next(...) | user_iflags_next(p) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_iflags_second(...) | user_iflags_second(p) -> int32 const & + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_iflags_size(...) | user_iflags_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_iflags_t * | | __swig_destroy__ = delete_user_iflags_t(...) | delete_user_iflags_t(self) | | at(self, *args) -> 'int &' | at(self, _Keyval) -> int & + | + | @param _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -31916,93 +38938,69 @@ Help on function user_labels_begin in module ida_hexrays: user_labels_begin(*args) -> 'user_labels_iterator_t' user_labels_begin(map) -> user_labels_iterator_t - - Get iterator pointing to the beginning of user_labels_t. - - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_clear in module ida_hexrays: user_labels_clear(*args) -> 'void' user_labels_clear(map) - - Clear user_labels_t. - - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_end in module ida_hexrays: user_labels_end(*args) -> 'user_labels_iterator_t' user_labels_end(map) -> user_labels_iterator_t - - Get iterator pointing to the end of user_labels_t. - - @param map (C++: const user_labels_t *) + @param map: (C++: const user_labels_t *) user_labels_t const * Help on function user_labels_erase in module ida_hexrays: user_labels_erase(*args) -> 'void' user_labels_erase(map, p) - - Erase current element from user_labels_t. - - @param map (C++: user_labels_t *) - @param p (C++: user_labels_iterator_t) + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_find in module ida_hexrays: user_labels_find(*args) -> 'user_labels_iterator_t' user_labels_find(map, key) -> user_labels_iterator_t - - Find the specified key in user_labels_t. - - @param map (C++: const user_labels_t *) - @param key (C++: const int &) + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & Help on function user_labels_first in module ida_hexrays: user_labels_first(*args) -> 'int const &' user_labels_first(p) -> int const & - - Get reference to the current map key. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_free in module ida_hexrays: user_labels_free(*args) -> 'void' user_labels_free(map) - - Delete user_labels_t instance. - - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on function user_labels_insert in module ida_hexrays: user_labels_insert(*args) -> 'user_labels_iterator_t' user_labels_insert(map, key, val) -> user_labels_iterator_t - - Insert new (int, qstring) pair into user_labels_t. - - @param map (C++: user_labels_t *) - @param key (C++: const int &) - @param val (C++: const qstring &) + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & Help on class user_labels_iterator_t in module ida_hexrays: @@ -32013,12 +39011,16 @@ class user_labels_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32038,7 +39040,7 @@ class user_labels_iterator_t(builtins.object) | The membership flag | | x - | user_labels_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32049,53 +39051,39 @@ Help on function user_labels_new in module ida_hexrays: user_labels_new(*args) -> 'user_labels_t *' user_labels_new() -> user_labels_t - - Create a new user_labels_t instance. Help on function user_labels_next in module ida_hexrays: user_labels_next(*args) -> 'user_labels_iterator_t' user_labels_next(p) -> user_labels_iterator_t - - Move to the next element. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_prev in module ida_hexrays: user_labels_prev(*args) -> 'user_labels_iterator_t' user_labels_prev(p) -> user_labels_iterator_t - - Move to the previous element. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_second in module ida_hexrays: user_labels_second(*args) -> 'qstring &' user_labels_second(p) -> qstring & - - Get reference to the current map value. - - @param p (C++: user_labels_iterator_t) + @param p: (C++: user_labels_iterator_t) Help on function user_labels_size in module ida_hexrays: user_labels_size(*args) -> 'size_t' user_labels_size(map) -> size_t - - Get size of user_labels_t. - - @param map (C++: user_labels_t *) + @param map: (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -32114,6 +39102,8 @@ class user_labels_t(builtins.object) | | at(self, *args) -> '_qstring< char > &' | at(self, _Keyval) -> _qstring< char > & + | + | @param _Keyval: int const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -32141,6 +39131,8 @@ class user_lvar_modifier_t(builtins.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -32149,6 +39141,9 @@ class user_lvar_modifier_t(builtins.object) | | modify_lvars(self, *args) -> 'bool' | modify_lvars(self, lvinf) -> bool + | Modify lvar settings. Returns: true-modified + | + | @param lvinf: (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32166,94 +39161,69 @@ Help on function user_numforms_begin in module ida_hexrays: user_numforms_begin(*args) -> 'user_numforms_iterator_t' user_numforms_begin(map) -> user_numforms_iterator_t - - Get iterator pointing to the beginning of user_numforms_t. - - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_clear in module ida_hexrays: user_numforms_clear(*args) -> 'void' user_numforms_clear(map) - - Clear user_numforms_t. - - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_end in module ida_hexrays: user_numforms_end(*args) -> 'user_numforms_iterator_t' user_numforms_end(map) -> user_numforms_iterator_t - - Get iterator pointing to the end of user_numforms_t. - - @param map (C++: const user_numforms_t *) + @param map: (C++: const user_numforms_t *) user_numforms_t const * Help on function user_numforms_erase in module ida_hexrays: user_numforms_erase(*args) -> 'void' user_numforms_erase(map, p) - - Erase current element from user_numforms_t. - - @param map (C++: user_numforms_t *) - @param p (C++: user_numforms_iterator_t) + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_find in module ida_hexrays: user_numforms_find(*args) -> 'user_numforms_iterator_t' user_numforms_find(map, key) -> user_numforms_iterator_t - - Find the specified key in user_numforms_t. - - @param map (C++: const user_numforms_t *) - @param key (C++: const operand_locator_t &) + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & Help on function user_numforms_first in module ida_hexrays: user_numforms_first(*args) -> 'operand_locator_t const &' user_numforms_first(p) -> operand_locator_t - - Get reference to the current map key. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_free in module ida_hexrays: user_numforms_free(*args) -> 'void' user_numforms_free(map) - - Delete user_numforms_t instance. - - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on function user_numforms_insert in module ida_hexrays: user_numforms_insert(*args) -> 'user_numforms_iterator_t' user_numforms_insert(map, key, val) -> user_numforms_iterator_t + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. - - Insert new ( 'operand_locator_t' , 'number_format_t' ) pair into - user_numforms_t. - - - @param map (C++: user_numforms_t *) - @param key (C++: const operand_locator_t &) - @param val (C++: const number_format_t &) + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & Help on class user_numforms_iterator_t in module ida_hexrays: @@ -32264,12 +39234,16 @@ class user_numforms_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32289,7 +39263,7 @@ class user_numforms_iterator_t(builtins.object) | The membership flag | | x - | user_numforms_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32300,53 +39274,39 @@ Help on function user_numforms_new in module ida_hexrays: user_numforms_new(*args) -> 'user_numforms_t *' user_numforms_new() -> user_numforms_t - - Create a new user_numforms_t instance. Help on function user_numforms_next in module ida_hexrays: user_numforms_next(*args) -> 'user_numforms_iterator_t' user_numforms_next(p) -> user_numforms_iterator_t - - Move to the next element. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_prev in module ida_hexrays: user_numforms_prev(*args) -> 'user_numforms_iterator_t' user_numforms_prev(p) -> user_numforms_iterator_t - - Move to the previous element. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_second in module ida_hexrays: user_numforms_second(*args) -> 'number_format_t &' user_numforms_second(p) -> number_format_t - - Get reference to the current map value. - - @param p (C++: user_numforms_iterator_t) + @param p: (C++: user_numforms_iterator_t) Help on function user_numforms_size in module ida_hexrays: user_numforms_size(*args) -> 'size_t' user_numforms_size(map) -> size_t - - Get size of user_numforms_t. - - @param map (C++: user_numforms_t *) + @param map: (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -32357,9 +39317,17 @@ class user_numforms_t(builtins.object) | | __begin = user_numforms_begin(...) | user_numforms_begin(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __clear = user_numforms_clear(...) | user_numforms_clear(map) + | + | Parameters + | ---------- + | map: user_numforms_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -32369,15 +39337,33 @@ class user_numforms_t(builtins.object) | | __end = user_numforms_end(...) | user_numforms_end(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __erase = user_numforms_erase(...) | user_numforms_erase(map, p) + | + | Parameters + | ---------- + | map: user_numforms_t * + | p: user_numforms_iterator_t | | __find = user_numforms_find(...) | user_numforms_find(map, key) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | key: operand_locator_t const & | | __first = user_numforms_first(...) | user_numforms_first(p) -> operand_locator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -32387,6 +39373,12 @@ class user_numforms_t(builtins.object) | | __insert = user_numforms_insert(...) | user_numforms_insert(map, key, val) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t * + | key: operand_locator_t const & + | val: number_format_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -32396,23 +39388,37 @@ class user_numforms_t(builtins.object) | | __next = user_numforms_next(...) | user_numforms_next(p) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_numforms_second(...) | user_numforms_second(p) -> number_format_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_numforms_size(...) | user_numforms_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_numforms_t * | | __swig_destroy__ = delete_user_numforms_t(...) | delete_user_numforms_t(self) | | at(self, *args) -> 'number_format_t &' | at(self, _Keyval) -> number_format_t + | + | @param _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -32486,93 +39492,69 @@ Help on function user_unions_begin in module ida_hexrays: user_unions_begin(*args) -> 'user_unions_iterator_t' user_unions_begin(map) -> user_unions_iterator_t - - Get iterator pointing to the beginning of user_unions_t. - - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_clear in module ida_hexrays: user_unions_clear(*args) -> 'void' user_unions_clear(map) - - Clear user_unions_t. - - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_end in module ida_hexrays: user_unions_end(*args) -> 'user_unions_iterator_t' user_unions_end(map) -> user_unions_iterator_t - - Get iterator pointing to the end of user_unions_t. - - @param map (C++: const user_unions_t *) + @param map: (C++: const user_unions_t *) user_unions_t const * Help on function user_unions_erase in module ida_hexrays: user_unions_erase(*args) -> 'void' user_unions_erase(map, p) - - Erase current element from user_unions_t. - - @param map (C++: user_unions_t *) - @param p (C++: user_unions_iterator_t) + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_find in module ida_hexrays: user_unions_find(*args) -> 'user_unions_iterator_t' user_unions_find(map, key) -> user_unions_iterator_t - - Find the specified key in user_unions_t. - - @param map (C++: const user_unions_t *) - @param key (C++: const ea_t &) + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & Help on function user_unions_first in module ida_hexrays: user_unions_first(*args) -> 'ea_t const &' user_unions_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_free in module ida_hexrays: user_unions_free(*args) -> 'void' user_unions_free(map) - - Delete user_unions_t instance. - - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on function user_unions_insert in module ida_hexrays: user_unions_insert(*args) -> 'user_unions_iterator_t' user_unions_insert(map, key, val) -> user_unions_iterator_t - - Insert new (ea_t, intvec_t) pair into user_unions_t. - - @param map (C++: user_unions_t *) - @param key (C++: const ea_t &) - @param val (C++: const intvec_t &) + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & Help on class user_unions_iterator_t in module ida_hexrays: @@ -32583,12 +39565,16 @@ class user_unions_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32608,7 +39594,7 @@ class user_unions_iterator_t(builtins.object) | The membership flag | | x - | user_unions_iterator_t_x_get(self) -> iterator_word + | x | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -32619,53 +39605,39 @@ Help on function user_unions_new in module ida_hexrays: user_unions_new(*args) -> 'user_unions_t *' user_unions_new() -> user_unions_t - - Create a new user_unions_t instance. Help on function user_unions_next in module ida_hexrays: user_unions_next(*args) -> 'user_unions_iterator_t' user_unions_next(p) -> user_unions_iterator_t - - Move to the next element. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_prev in module ida_hexrays: user_unions_prev(*args) -> 'user_unions_iterator_t' user_unions_prev(p) -> user_unions_iterator_t - - Move to the previous element. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_second in module ida_hexrays: user_unions_second(*args) -> 'intvec_t &' user_unions_second(p) -> intvec_t - - Get reference to the current map value. - - @param p (C++: user_unions_iterator_t) + @param p: (C++: user_unions_iterator_t) Help on function user_unions_size in module ida_hexrays: user_unions_size(*args) -> 'size_t' user_unions_size(map) -> size_t - - Get size of user_unions_t. - - @param map (C++: user_unions_t *) + @param map: (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -32676,9 +39648,17 @@ class user_unions_t(builtins.object) | | __begin = user_unions_begin(...) | user_unions_begin(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __clear = user_unions_clear(...) | user_unions_clear(map) + | + | Parameters + | ---------- + | map: user_unions_t * | | __contains__ = _map___contains__(self, key) | Returns true if the specified key exists in the . @@ -32688,15 +39668,33 @@ class user_unions_t(builtins.object) | | __end = user_unions_end(...) | user_unions_end(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __erase = user_unions_erase(...) | user_unions_erase(map, p) + | + | Parameters + | ---------- + | map: user_unions_t * + | p: user_unions_iterator_t | | __find = user_unions_find(...) | user_unions_find(map, key) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | key: ea_t const & | | __first = user_unions_first(...) | user_unions_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __getitem__ = _map___getitem__(self, key) | Returns the value associated with the provided key. @@ -32706,6 +39704,12 @@ class user_unions_t(builtins.object) | | __insert = user_unions_insert(...) | user_unions_insert(map, key, val) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t * + | key: ea_t const & + | val: intvec_t const & | | __iter__ = _map___iter__(self) | Iterate over dictionary keys. @@ -32715,23 +39719,37 @@ class user_unions_t(builtins.object) | | __next = user_unions_next(...) | user_unions_next(p) -> user_unions_iterator_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __repr__ = _swig_repr(self) | | __second = user_unions_second(...) | user_unions_second(p) -> intvec_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __setitem__ = _map___setitem__(self, key, value) | Returns the value associated with the provided key. | | __size = user_unions_size(...) | user_unions_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_unions_t * | | __swig_destroy__ = delete_user_unions_t(...) | delete_user_unions_t(self) | | at(self, *args) -> 'qvector< int > &' | at(self, _Keyval) -> intvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -32809,13 +39827,19 @@ class uval_ivl_ivlset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, v) -> bool + | + | @param v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, v) -> bool + | + | @param v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -32841,6 +39865,8 @@ class uval_ivl_ivlset_t(builtins.object) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | + | @param idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -32855,10 +39881,15 @@ class uval_ivl_ivlset_t(builtins.object) | set_all_values(self) | | single_value(self, *args) -> 'bool' + | single_value(self) -> bool | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32886,6 +39917,9 @@ class uval_ivl_t(builtins.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -32911,10 +39945,10 @@ class uval_ivl_t(builtins.object) | list of weak references to the object (if defined) | | off - | uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type↗ + | off | | size - | uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type↗ + | size | | thisown | The membership flag @@ -32928,25 +39962,42 @@ class valrng_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: valrng_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: valrng_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | + | @param size_: int + | | __init__(self, r) -> valrng_t + | + | @param r: valrng_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: valrng_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: valrng_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -32967,9 +40018,13 @@ class valrng_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: valrng_t const & | | cvt_to_cmp(self, *args) -> 'bool' | cvt_to_cmp(self, strict) -> bool + | + | @param strict: bool | | cvt_to_single_value(self, *args) -> 'bool' | cvt_to_single_value(self) -> bool @@ -32985,9 +40040,13 @@ class valrng_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, v) -> bool + | + | @param v: uvlr_t | | intersect_with(self, *args) -> 'bool' | intersect_with(self, r) -> bool + | + | @param r: valrng_t const & | | inverse(self, *args) -> 'void' | inverse(self) @@ -32997,27 +40056,43 @@ class valrng_t(builtins.object) | | max_svalue(self, *args) -> 'uvlr_t' | max_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | | max_svalue(self) -> uvlr_t | | max_value(self, *args) -> 'uvlr_t' | max_value(self, size_) -> uvlr_t + | + | @param size_: int + | | max_value(self) -> uvlr_t | | min_svalue(self, *args) -> 'uvlr_t' | min_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | | min_svalue(self) -> uvlr_t | | reduce_size(self, *args) -> 'bool' | reduce_size(self, new_size) -> bool + | + | @param new_size: int | | set_all(self, *args) -> 'void' | set_all(self) | | set_cmp(self, *args) -> 'void' | set_cmp(self, cmp, _value) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t | | set_eq(self, *args) -> 'void' | set_eq(self, v) + | + | @param v: uvlr_t | | set_none(self, *args) -> 'void' | set_none(self) @@ -33027,9 +40102,13 @@ class valrng_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: valrng_t & | | unite_with(self, *args) -> 'bool' | unite_with(self, r) -> bool + | + | @param r: valrng_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33057,24 +40136,36 @@ class var_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: var_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: var_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: var_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: var_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: var_ref_t const & | | __repr__ = _swig_repr(self) | @@ -33083,6 +40174,11 @@ class var_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: var_ref_t const & + | + | getv(self, *args) -> 'lvar_t &' + | getv(self) -> lvar_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33094,10 +40190,10 @@ class var_ref_t(builtins.object) | list of weak references to the object (if defined) | | idx - | var_ref_t_idx_get(self) -> int + | idx | | mba - | var_ref_t_mba_get(self) -> mbl_array_t + | mba | | thisown | The membership flag @@ -33123,6 +40219,8 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t + | + | @param f: cfunc_t const * | | __repr__ = _swig_repr(self) | @@ -33131,15 +40229,18 @@ class vc_printer_t(vd_printer_t) | | oneliner(self, *args) -> 'bool' | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks | | ---------------------------------------------------------------------- | Data descriptors defined here: | | func - | vc_printer_t_func_get(self) -> cfunc_t + | func | | lastchar - | vc_printer_t_lastchar_get(self) -> char + | lastchar | | thisown | The membership flag @@ -33149,6 +40250,11 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -33160,10 +40266,10 @@ class vc_printer_t(vd_printer_t) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vd_failure_t in module ida_hexrays: @@ -33175,8 +40281,20 @@ class vd_failure_t(builtins.object) | __init__(self, *args) | __init__(self) -> vd_failure_t | __init__(self, code, ea, buf=None) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | | __init__(self, code, ea, buf) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & + | | __init__(self, _hf) -> vd_failure_t + | + | @param _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -33196,7 +40314,7 @@ class vd_failure_t(builtins.object) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf | | thisown | The membership flag @@ -33215,6 +40333,9 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t + | + | @param ea: ea_t + | @param buf: char const * | | __repr__ = _swig_repr(self) | @@ -33243,7 +40364,7 @@ class vd_interr_t(vd_failure_t) | list of weak references to the object (if defined) | | hf - | vd_failure_t_hf_get(self) -> hexrays_failure_t + | hf Help on class vd_printer_t in module ida_hexrays: @@ -33256,6 +40377,8 @@ class vd_printer_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -33264,6 +40387,11 @@ class vd_printer_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33275,13 +40403,13 @@ class vd_printer_t(builtins.object) | list of weak references to the object (if defined) | | hdrlines - | vd_printer_t_hdrlines_get(self) -> int + | hdrlines | | thisown | The membership flag | | tmpbuf - | vd_printer_t_tmpbuf_get(self) -> qstring * + | tmpbuf Help on class vdloc_t in module ida_hexrays: @@ -33297,24 +40425,36 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & | | __repr__ = _swig_repr(self) | @@ -33323,18 +40463,29 @@ class vdloc_t(ida_typeinf.argloc_t) | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | + | @param r1: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33352,131 +40503,220 @@ class vdloc_t(ida_typeinf.argloc_t) | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -33504,138 +40744,343 @@ class vdui_t(builtins.object) | | calc_cmt_type(self, *args) -> 'cmt_type_t' | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types | | clear(self, *args) -> 'void' | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. | | collapse_item(self, *args) -> 'bool' | collapse_item(self, hide) -> bool + | Collapse/uncollapse item. This function collapses the current item. + | + | @param hide: (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) -> 'bool' | collapse_lvars(self, hide) -> bool + | Collapse/uncollapse local variable declarations. + | + | @param hide: (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) -> 'bool' | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed | | del_orphan_cmts(self, *args) -> 'bool' | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true | | edit_cmt(self, *args) -> 'bool' | edit_cmt(self, loc) -> bool + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) -> 'bool' | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled | | get_current_item(self, *args) -> 'bool' | get_current_item(self, idv) -> bool + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed | | get_current_label(self, *args) -> 'int' | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called | | get_number(self, *args) -> 'cnumber_t *' | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. | | in_ctree(self, *args) -> 'bool' | in_ctree(self) -> bool + | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area | | invert_bits(self, *args) -> 'bool' | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. | | invert_sign(self, *args) -> 'bool' | invert_sign(self) -> bool + | Negate a number. This function negates the current number. + | + | @return: false if failed. | | jump_enter(self, *args) -> 'bool' | jump_enter(self, idv, omflags) -> bool + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed | | locked(self, *args) -> 'bool' | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info | | map_lvar(self, *args) -> 'bool' | map_lvar(self, frm, to) -> bool + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed | | refresh_cpos(self, *args) -> 'bool' | refresh_cpos(self, idv) -> bool + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed | | refresh_ctext(self, *args) -> 'void' | refresh_ctext(self, activate=True) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) | | refresh_view(self, *args) -> 'void' | refresh_view(self, redo_mba) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() | | rename_global(self, *args) -> 'bool' | rename_global(self, ea) -> bool + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | rename_label(self, *args) -> 'bool' | rename_label(self, label) -> bool + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled | | rename_lvar(self, *args) -> 'bool' | rename_lvar(self, v, name, is_user_name) -> bool + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed | | rename_strmem(self, *args) -> 'bool' | rename_strmem(self, sptr, mptr) -> bool + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_global_type(self, *args) -> 'bool' | set_global_type(self, ea) -> bool + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled | | set_locked(self, *args) -> 'bool' | set_locked(self, v) -> bool + | + | @param v: bool | | set_lvar_cmt(self, *args) -> 'bool' | set_lvar_cmt(self, v, cmt) -> bool + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed | | set_lvar_type(self, *args) -> 'bool' | set_lvar_type(self, v, type) -> bool + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed | | set_noptr_lvar(self, *args) -> 'bool' | set_noptr_lvar(self, v) -> bool + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed | | set_num_enum(self, *args) -> 'bool' | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled | | set_num_radix(self, *args) -> 'bool' | set_num_radix(self, base) -> bool + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed | | set_num_stroff(self, *args) -> 'bool' | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled | | set_strmem_type(self, *args) -> 'bool' | set_strmem_type(self, sptr, mptr) -> bool + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled | | set_valid(self, *args) -> 'void' | set_valid(self, v) + | + | @param v: bool | | set_visible(self, *args) -> 'void' | set_visible(self, v) + | + | @param v: bool | | split_item(self, *args) -> 'bool' | split_item(self, split) -> bool + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. | | switch_to(self, *args) -> 'void' | switch_to(self, f, activate) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? | | ui_edit_lvar_cmt(self, *args) -> 'bool' | ui_edit_lvar_cmt(self, v) -> bool + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) -> 'bool' | ui_map_lvar(self, v) -> bool + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) -> 'bool' | ui_rename_lvar(self, v) -> bool + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) -> 'bool' | ui_set_call_type(self, e) -> bool + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) -> 'bool' | ui_set_lvar_type(self, v) -> bool + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) -> 'bool' | ui_unmap_lvar(self, v) -> bool + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled | | valid(self, *args) -> 'bool' | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. | | visible(self, *args) -> 'bool' | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33647,40 +41092,40 @@ class vdui_t(builtins.object) | list of weak references to the object (if defined) | | cfunc - | vdui_t_cfunc_get(self) -> cfuncptr_t + | cfunc | | cpos - | vdui_t_cpos_get(self) -> ctext_position_t + | cpos | | ct - | vdui_t_ct_get(self) -> TWidget * + | ct | | flags - | vdui_t_flags_get(self) -> int + | flags | | head - | vdui_t_head_get(self) -> ctree_item_t + | head | | item - | vdui_t_item_get(self) -> ctree_item_t + | item | | last_code - | vdui_t_last_code_get(self) -> merror_t + | last_code | | mba - | vdui_t_mba_get(self) -> mbl_array_t + | mba | | tail - | vdui_t_tail_get(self) -> ctree_item_t + | tail | | thisown | The membership flag | | toplevel - | vdui_t_toplevel_get(self) -> TWidget * + | toplevel | | view_idx - | vdui_t_view_idx_get(self) -> int + | view_idx Help on class vivl_t in module ida_hexrays: @@ -33696,27 +41141,52 @@ class vivl_t(voff_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: vivl_t const & + | | __eq__(self, mop) -> bool + | + | @param mop: mop_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: vivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | | __init__(self, ch) -> vivl_t + | + | @param ch: chain_t const & + | | __init__(self, op) -> vivl_t + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: vivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: vivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -33728,40 +41198,73 @@ class vivl_t(voff_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: vivl_t const & | | contains(self, *args) -> 'bool' | contains(self, voff2) -> bool + | Does our value interval contain the specified value offset? + | + | @param voff2: (C++: const voff_t &) voff_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool + | Extend a value interval using another value interval of the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success | | includes(self, *args) -> 'bool' | includes(self, r) -> bool + | Does our value interval include another? + | + | @param r: (C++: const vivl_t &) vivl_t const & | | intersect(self, *args) -> 'uval_t' | intersect(self, r) -> uval_t + | Intersect value intervals the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool + | Do two value intervals overlap? + | + | @param r: (C++: const vivl_t &) vivl_t const & | | set(self, *args) -> 'void' | set(self, _type, _off, _size=0) + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | | set(self, voff, _size) + | + | @param voff: voff_t const & + | @param _size: int | | set_reg(self, *args) -> 'void' | set_reg(self, mreg, sz=0) + | + | @param mreg: mreg_t + | @param sz: int | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff, sz=0) + | + | @param stkoff: sval_t + | @param sz: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | | size - | vivl_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -33776,12 +41279,16 @@ class vivl_t(voff_t) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | + | @param width: int | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33791,6 +41298,8 @@ class vivl_t(voff_t) | | inc(self, *args) -> 'void' | inc(self, delta) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33811,10 +41320,10 @@ class vivl_t(voff_t) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | type - | voff_t_type_get(self) -> mopt_t + | type Help on class voff_t in module ida_hexrays: @@ -33825,26 +41334,44 @@ class voff_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: voff_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: voff_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t | __init__(self, _type, _off) -> voff_t + | + | @param _type: mopt_t + | @param _off: sval_t + | | __init__(self, op) -> voff_t + | + | @param op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: voff_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: voff_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: voff_t const & | | __repr__ = _swig_repr(self) | @@ -33853,15 +41380,21 @@ class voff_t(builtins.object) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | + | @param width: int | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: voff_t const & | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | + | @param r: voff_t const & | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33871,6 +41404,8 @@ class voff_t(builtins.object) | | inc(self, *args) -> 'void' | inc(self, delta) + | + | @param delta: sval_t | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33880,12 +41415,19 @@ class voff_t(builtins.object) | | set(self, *args) -> 'void' | set(self, _type, _off) + | + | @param _type: mopt_t + | @param _off: sval_t | | set_reg(self, *args) -> 'void' | set_reg(self, mreg) + | + | @param mreg: mreg_t | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff) + | + | @param stkoff: sval_t | | undef(self, *args) -> 'void' | undef(self) @@ -33900,1014 +41442,32 @@ class voff_t(builtins.object) | list of weak references to the object (if defined) | | off - | voff_t_off_get(self) -> sval_t + | off | | thisown | The membership flag | | type - | voff_t_type_get(self) -> mopt_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None -=== ida_hexrays EPYDOC INJECTIONS === -ida_hexrays.ACFL_BLKOPT -""" -perform interblock transformations -""" - -ida_hexrays.ACFL_GLBDEL -""" -perform dead code eliminition -""" - -ida_hexrays.ACFL_GLBPROP -""" -perform global propagation -""" - -ida_hexrays.ACFL_GUESS -""" -may guess calling conventions -""" - -ida_hexrays.ACFL_LOCOPT -""" -perform local propagation (requires ACFL_BLKOPT) -""" - -ida_hexrays.ANCHOR_BLKCMT -""" -block comment (for ctree items) -""" - -ida_hexrays.ANCHOR_CITEM -""" -c-tree item -""" - -ida_hexrays.ANCHOR_ITP -""" -item type preciser -""" - -ida_hexrays.ANCHOR_LVAR -""" -declaration of local variable -""" - -ida_hexrays.CFL_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.CFL_HELPER -""" -created from a decompiler helper function -""" - -ida_hexrays.CFS_BOUNDS -""" -'eamap' and 'boundaries' are ready -""" - -ida_hexrays.CFS_LVARS_HIDDEN -""" -local variable definitions are collapsed -""" - -ida_hexrays.CFS_TEXT -""" -'sv' is ready (and hdrlines) -""" - -ida_hexrays.CHF_FAKE -""" -fake chain created by widen_chains() -""" - -ida_hexrays.CHF_INITED -""" -is chain initialized? (valid only after lvar allocation) -""" - -ida_hexrays.CHF_OVER -""" -overlapped chain -""" - -ida_hexrays.CHF_PASSTHRU -""" -pass-thru chain, must use the input variable to the block -""" - -ida_hexrays.CHF_REPLACED -""" -chain operands have been replaced? -""" - -ida_hexrays.CHF_TERM -""" -terminating chain; the variable does not survive across the block -""" - -ida_hexrays.CIT_COLLAPSED -""" -display element in collapsed form -""" - -ida_hexrays.CPBLK_FAST -""" -do not update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_MINREF -""" -update minbstkref and minbargref -""" - -ida_hexrays.CPBLK_OPTJMP -""" -if it becomes useless - -del the jump insn at the end of the block -""" - -ida_hexrays.CV_FAST -""" -do not maintain parent information -""" - -ida_hexrays.CV_INSNS -""" -visit only statements, prune all expressions do not use before the -final ctree maturity because expressions may contain statements at -intermediate stages (see cot_insn). Otherwise you risk missing -statements embedded into expressions. -""" - -ida_hexrays.CV_PARENTS -""" -maintain parent information -""" - -ida_hexrays.CV_POST -""" -call the leave...() functions -""" - -ida_hexrays.CV_PRUNE -""" -this bit is set by visit...() to prune the walk -""" - -ida_hexrays.CV_RESTART -""" -restart enumeration at the top expr (apply_to_exprs) -""" - -ida_hexrays.DECOMP_ALL_BLKS -""" -generate microcode for unreachable blocks -""" - -ida_hexrays.DECOMP_NO_CACHE -""" -do not use decompilation cache -""" - -ida_hexrays.DECOMP_NO_FRAME -""" -do not use function frame info (only snippet mode) -""" - -ida_hexrays.DECOMP_NO_WAIT -""" -do not display waitbox -""" - -ida_hexrays.DECOMP_WARNINGS -""" -display warnings in the output window -""" - -ida_hexrays.EQ_CMPDEST -""" -compare instruction destinations -""" - -ida_hexrays.EQ_IGNCODE -""" -ignore instruction opcodes -""" - -ida_hexrays.EQ_IGNSIZE -""" -ignore operand sizes -""" - -ida_hexrays.EQ_OPTINSN -""" -optimize mop_d operands -""" - -ida_hexrays.EXFL_ALL -""" -all currently defined bits -""" - -ida_hexrays.EXFL_ALONE -""" -standalone helper -""" - -ida_hexrays.EXFL_CPADONE -""" -pointer arithmetic correction done -""" - -ida_hexrays.EXFL_CSTR -""" -string literal -""" - -ida_hexrays.EXFL_FPOP -""" -floating point operation -""" - -ida_hexrays.EXFL_JUMPOUT -""" -jump out-of-function -""" - -ida_hexrays.EXFL_LVALUE -""" -expression is lvalue even if it doesn't look like it -""" - -ida_hexrays.EXFL_PARTIAL -""" -type of the expression is considered partial -""" - -ida_hexrays.EXFL_UNDEF -""" -expression uses undefined value -""" - -ida_hexrays.EXFL_VFTABLE -""" -is ptr to vftable (used for cot_memptr, cot_memref) -""" - -ida_hexrays.FCI_DEAD -""" -some return registers were determined dead -""" - -ida_hexrays.FCI_FINAL -""" -call type is final, should not be changed -""" - -ida_hexrays.FCI_HASCALL -""" -A function is an synthetic helper combined from several instructions -and at least one of them was a call to a real functions -""" - -ida_hexrays.FCI_HASFMT -""" -printf- or scanf-style format string - -A variadic function with recognized -""" - -ida_hexrays.FCI_NORET -""" -call does not return -""" - -ida_hexrays.FCI_NOSIDE -""" -call does not have side effects -""" - -ida_hexrays.FCI_PROP -""" -call has been propagated -""" - -ida_hexrays.FCI_PURE -""" -pure function -""" - -ida_hexrays.FCI_SPLOK -""" -spoiled/visible_memory lists have been optimized. for some functions -we can reduce them as soon as information about the arguments becomes -available. in order not to try optimize them again we use this bit. -""" - -ida_hexrays.FD_BACKWARD -""" -search direction -""" - -ida_hexrays.FD_DEF -""" -look for definition -""" - -ida_hexrays.FD_DIRTY -""" -by function calls and indirect memory access - -ignore possible implicit definitions -""" - -ida_hexrays.FD_FORWARD -""" -search direction -""" - -ida_hexrays.FD_USE -""" -look for use -""" - -ida_hexrays.GCA_ALLOC -""" -enumerate only allocated chains -""" - -ida_hexrays.GCA_EMPTY -""" -include empty chains -""" - -ida_hexrays.GCA_NALLOC -""" -enumerate only non-allocated chains -""" - -ida_hexrays.GCA_OFIRST -""" -consider only chains of the first block -""" - -ida_hexrays.GCA_OLAST -""" -consider only chains of the last block -""" - -ida_hexrays.GCA_SPEC -""" -include chains for special registers -""" - -ida_hexrays.GCO_DEF -""" -is destination operand? -""" - -ida_hexrays.GCO_REG -""" -is register? otherwise a stack variable -""" - -ida_hexrays.GCO_STK -""" -a stack variable -""" - -ida_hexrays.GCO_USE -""" -is source operand? -""" - -ida_hexrays.GLN_ALL -""" -get both -""" - -ida_hexrays.GLN_CURRENT -""" -get label of the current item -""" - -ida_hexrays.GLN_GOTO_TARGET -""" -get goto target -""" - -ida_hexrays.IPROP_ASSERT -""" -assertion: usually mov #val, op. assertions are used to help the -optimizer. assertions are ignored when generating ctree -""" - -ida_hexrays.IPROP_CLNPOP -""" -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack -""" - -ida_hexrays.IPROP_COMBINED -""" -insn has been modified because of a partial reference -""" - -ida_hexrays.IPROP_DONT_COMB -""" -may not combine this instruction with others -""" - -ida_hexrays.IPROP_DONT_PROP -""" -may not propagate -""" - -ida_hexrays.IPROP_EXTSTX -""" -this is m_ext propagated into m_stx -""" - -ida_hexrays.IPROP_FARCALL -""" -call of a far function using push cs/call sequence -""" - -ida_hexrays.IPROP_FPINSN -""" -floating point insn -""" - -ida_hexrays.IPROP_IGNLOWSRC -""" -low part of the instruction source operand has been created -artificially (this bit is used only for 'and x, 80...') -""" - -ida_hexrays.IPROP_INV_JX -""" -inverted conditional jump -""" - -ida_hexrays.IPROP_MBARRIER -""" -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier -""" - -ida_hexrays.IPROP_MULTI_MOV -""" -(example: STM on ARM may transfer multiple registers) - -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: -""" - -ida_hexrays.IPROP_OPTIONAL -""" -optional instruction -""" - -ida_hexrays.IPROP_PERSIST -""" -persistent insn; they are not destroyed -""" - -ida_hexrays.IPROP_SPLIT -""" -the instruction has been split: -""" - -ida_hexrays.IPROP_SPLIT1 -""" -into 1 byte -""" - -ida_hexrays.IPROP_SPLIT2 -""" -into 2 bytes -""" - -ida_hexrays.IPROP_SPLIT4 -""" -into 4 bytes -""" - -ida_hexrays.IPROP_SPLIT8 -""" -into 8 bytes -""" - -ida_hexrays.IPROP_TAILCALL -""" -tail call -""" - -ida_hexrays.IPROP_WAS_NORET -""" -was noret icall -""" - -ida_hexrays.IPROP_WILDMATCH -""" -match multiple insns -""" - -ida_hexrays.LOCOPT_ALL -""" -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit -""" - -ida_hexrays.LOCOPT_REFINE -""" -refine return type, ok to fail -""" - -ida_hexrays.LOCOPT_REFINE2 -""" -refine return type, try harder -""" - -ida_hexrays.LVINF_FORCE -""" -force allocation of a new variable. forces the decompiler to create a -new variable at ll.defea -""" - -ida_hexrays.LVINF_KEEP -""" -preserve saved user settings regardless of vars for example, if a var -loses all its user-defined attributes or even gets destroyed, keep its -'lvar_saved_info_t' . this is used for ephemeral variables that get -destroyed by macro recognition. -""" - -ida_hexrays.LVINF_NOMAP -""" -forbid automatic mapping of the variable -""" - -ida_hexrays.LVINF_NOPTR -""" -variable type should not be a pointer -""" - -ida_hexrays.MBA_ASRPROP -""" -assertion have been propagated -""" - -ida_hexrays.MBA_ASRTOK -""" -assertions have been generated -""" - -ida_hexrays.MBA_CALLS -""" -callinfo has been built -""" - -ida_hexrays.MBA_CHVARS -""" -can verify chain varnums -""" - -ida_hexrays.MBA_CMBBLK -""" -request to combine blocks -""" - -ida_hexrays.MBA_CMNSTK -""" -stkvars+stkargs should be considered as one area -""" - -ida_hexrays.MBA_COLGDL -""" -display graph after each reduction -""" - -ida_hexrays.MBA_DELPAIRS -""" -pairs have been deleted once -""" - -ida_hexrays.MBA_GLBOPT -""" -microcode has been optimized globally -""" - -ida_hexrays.MBA_INSGDL -""" -display instruction in graphs -""" - -ida_hexrays.MBA_LOADED -""" -loaded gdl, no instructions (debugging) -""" - -ida_hexrays.MBA_LVARS0 -""" -lvar pre-allocation has been performed -""" - -ida_hexrays.MBA_LVARS1 -""" -lvar real allocation has been performed -""" - -ida_hexrays.MBA_NICE -""" -apply transformations to c code -""" - -ida_hexrays.MBA_NOFUNC -""" -function is not present, addresses might be wrong -""" - -ida_hexrays.MBA_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.MBA_PASSREGS -""" -has 'mcallinfo_t::pass_regs' -""" - -ida_hexrays.MBA_PATTERN -""" -microcode pattern, callinfo is present -""" - -ida_hexrays.MBA_PRCDEFS -""" -use precise defeas for chain-allocated lvars -""" - -ida_hexrays.MBA_PREOPT -""" -preoptimization stage complete -""" - -ida_hexrays.MBA_REFINE -""" -may refine return value size -""" - -ida_hexrays.MBA_RETFP -""" -function returns floating point value -""" - -ida_hexrays.MBA_RETREF -""" -return type has been refined -""" - -ida_hexrays.MBA_SAVRST -""" -save-restore analysis has been performed -""" - -ida_hexrays.MBA_SHORT -""" -use short display -""" - -ida_hexrays.MBA_SPLINFO -""" -(final_type ? idb_spoiled : spoiled_regs) is valid -""" - -ida_hexrays.MBA_THUNK -""" -thunk function -""" - -ida_hexrays.MBA_VALNUM -""" -display value numbers -""" - -ida_hexrays.MBA_WINGR32 -""" -use wingraph32 -""" - -ida_hexrays.MBL_BACKPROP -""" -performed backprop_cc -""" - -ida_hexrays.MBL_CALL -""" -call information has been built -""" - -ida_hexrays.MBL_COMB -""" -needs "combine" pass -""" - -ida_hexrays.MBL_DEAD -""" -needs "eliminate deads" pass -""" - -ida_hexrays.MBL_DMT64 -""" -needs "demote 64bits" -""" - -ida_hexrays.MBL_DSLOT -""" -block for delay slot -""" - -ida_hexrays.MBL_FAKE -""" -fake block (after a tail call) -""" - -ida_hexrays.MBL_GOTO -""" -this block is a goto target -""" - -ida_hexrays.MBL_INCONST -""" -inconsistent lists: we are building them -""" - -ida_hexrays.MBL_LIST -""" -use/def lists are ready (not dirty) -""" - -ida_hexrays.MBL_NONFAKE -""" -regular block -""" - -ida_hexrays.MBL_NORET -""" -dead end block: doesn't return execution control -""" - -ida_hexrays.MBL_PRIV -""" -the specified are accepted (used in patterns) - -private block - no instructions except -""" - -ida_hexrays.MBL_PROP -""" -needs 'propagation' pass -""" - -ida_hexrays.MBL_PUSH -""" -needs "convert push/pop instructions" +Module "ida_ida"s docstring: """ +Contains the inf structure definition and some functions common to the whole IDA +project. -ida_hexrays.MBL_TCAL -""" -aritifical call block for tail calls -""" - -ida_hexrays.MBL_VALRANGES -""" -should optimize using value ranges -""" - -ida_hexrays.MLI_CLR_FLAGS -""" -clear LVINF_... bits -""" - -ida_hexrays.MLI_CMT -""" -apply lvar comment -""" - -ida_hexrays.MLI_NAME -""" -apply lvar name -""" - -ida_hexrays.MLI_SET_FLAGS -""" -set LVINF_... bits -""" - -ida_hexrays.MLI_TYPE -""" -apply lvar type -""" - -ida_hexrays.NALT_VD -""" -this index is not used by ida -""" - -ida_hexrays.NF_BINVDONE -""" -temporary internal bit: inverting bits is done -""" - -ida_hexrays.NF_BITNOT -""" -The user asked to invert bits of the constant. -""" - -ida_hexrays.NF_FIXED -""" -number format has been defined by the user -""" - -ida_hexrays.NF_NEGATE -""" -The user asked to negate the constant. -""" - -ida_hexrays.NF_NEGDONE -""" -temporary internal bit: negation has been performed -""" - -ida_hexrays.NF_STROFF -""" -internal bit: used as stroff, valid iff 'is_stroff()' -""" - -ida_hexrays.OPROP_CCFLAGS -""" -condition codes register value -""" - -ida_hexrays.OPROP_FLOAT -""" -possibly floating value -""" - -ida_hexrays.OPROP_IMPDONE -""" -imported operand (a pointer) has been dereferenced -""" - -ida_hexrays.OPROP_UDEFVAL -""" -uses undefined value -""" - -ida_hexrays.OPROP_UDT -""" -a struct or union -""" - -ida_hexrays.OPTI_ADDREXPRS -""" -optimize all address expressions (&x+N; &x-&y) -""" - -ida_hexrays.OPTI_COMBINSNS -""" -may combine insns (only for optimize_insn) -""" - -ida_hexrays.OPTI_MINSTKREF -""" -may update minstkref -""" - -ida_hexrays.OPTI_NO_LDXOPT -""" -do not optimize low/high(ldx) -""" - -ida_hexrays.SHINS_LDXEA -""" -display address of ldx expressions (not used) -""" - -ida_hexrays.SHINS_NUMADDR -""" -display definition addresses for numbers -""" - -ida_hexrays.SHINS_SHORT -""" -do not display use-def chains and other attrs -""" - -ida_hexrays.SHINS_VALNUM -""" -display value numbers -""" - -ida_hexrays.ULV_PRECISE_DEFEA -""" -Use precise defea's for lvar locations. -""" - -ida_hexrays.VDRUN_APPEND -""" -Create a new file or append to existing file. -""" - -ida_hexrays.VDRUN_CMDLINE -""" -Called from ida's command line. -""" - -ida_hexrays.VDRUN_LUMINA -""" -Use lumina server. -""" - -ida_hexrays.VDRUN_MAYSTOP -""" -The user can cancel decompilation. -""" - -ida_hexrays.VDRUN_NEWFILE -""" -Create a new file or overwrite existing file. -""" - -ida_hexrays.VDRUN_ONLYNEW -""" -Fail if output file already exists. -""" - -ida_hexrays.VDRUN_SENDIDB -""" -Send problematic databases to hex-rays.com. -""" - -ida_hexrays.VDRUN_SILENT -""" -Silent decompilation. -""" - -ida_hexrays.VDRUN_STATS -""" -Print statistics into vd_stats.txt. -""" - -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - -ida_hexrays.VDUI_VALID -""" -is valid? -""" - -ida_hexrays.VDUI_VISIBLE -""" -is visible? -""" - -ida_hexrays.VR_AT_END -""" -get value ranges after the instruction or at the block end, just after -the last instruction (if M is NULL) -""" - -ida_hexrays.VR_AT_START -""" -at the block start (if M is NULL) +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. -get value ranges before the instruction or -""" - -ida_hexrays.VR_EXACT -""" -valrng size will be >= vivl.size +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" -find exact match. if not set, the returned -""" -=== ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: __make_idainfo_accessors(attr, getter_name=None, setter_name=None) @@ -34915,18 +41475,23 @@ __make_idainfo_accessors(attr, getter_name=None, setter_name=None) Help on function __make_idainfo_bound in module ida_ida: __make_idainfo_bound(func, attr) - #<pycode(py_ida)> Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + +Help on function __wrap_hooks_callback in module ida_ida: + +__wrap_hooks_callback(klass, new_name, old_name, do_call) + Help on function calc_default_idaplace_flags in module ida_ida: calc_default_idaplace_flags(*args) -> 'int' calc_default_idaplace_flags() -> int - - Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -34954,38 +41519,72 @@ class compiler_info_t(builtins.object) | list of weak references to the object (if defined) | | cm - | compiler_info_t_cm_get(self) -> cm_t + | cm | | defalign - | compiler_info_t_defalign_get(self) -> uchar + | defalign | | id - | compiler_info_t_id_get(self) -> comp_t + | id | | size_b - | compiler_info_t_size_b_get(self) -> uchar + | size_b | | size_e - | compiler_info_t_size_e_get(self) -> uchar + | size_e | | size_i - | compiler_info_t_size_i_get(self) -> uchar + | size_i | | size_l - | compiler_info_t_size_l_get(self) -> uchar + | size_l | | size_ldbl - | compiler_info_t_size_ldbl_get(self) -> uchar + | size_ldbl | | size_ll - | compiler_info_t_size_ll_get(self) -> uchar + | size_ll | | size_s - | compiler_info_t_size_s_get(self) -> uchar + | size_s | | thisown | The membership flag +Help on function delinf in module ida_ida: + +delinf(*args) -> 'bool' + delinf(tag) -> bool + Undefine a program specific information + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success + +Help on function get_dbctx_id in module ida_ida: + +get_dbctx_id(*args) -> 'ssize_t' + get_dbctx_id() -> ssize_t + Get the current database context ID + + @return: the database context ID, or -1 if no current database + +Help on function get_dbctx_qty in module ida_ida: + +get_dbctx_qty(*args) -> 'size_t' + get_dbctx_qty() -> size_t + Get number of database contexts + + @return: number of database contexts + +Help on function getinf_str in module ida_ida: + +getinf_str(*args) -> 'qstring *' + getinf_str(tag) -> str + Get program specific information (a non-scalar value) + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) + Help on class idainfo in module ida_ida: class idainfo(builtins.object) @@ -34998,6 +41597,16 @@ class idainfo(builtins.object) | | __repr__ = _swig_repr(self) | + | _get_lflags(self, *args) -> 'uint32' + | _get_lflags(self) -> uint32 + | + | _set_lflags(self, *args) -> 'void' + | _set_lflags(self, _f) + | + | Parameters + | ---------- + | _f: uint32 + | | big_arg_align = __func(self, *args) | | gen_lzero = __func(self, *args) @@ -35011,17 +41620,8 @@ class idainfo(builtins.object) | | get_demname_form = __func(self, *args) | - | get_maxEA(self, *args) -> 'ea_t' - | get_maxEA(self) -> ea_t - | - | get_minEA(self, *args) -> 'ea_t' - | get_minEA(self) -> ea_t - | | get_pack_mode = __func(self, *args) | - | get_procName(self, *args) -> 'qstring' - | get_procName(self) -> qstring - | | is_32bit = __func(self, *args) | | is_64bit = __func(self, *args) @@ -35074,12 +41674,6 @@ class idainfo(builtins.object) | | set_line_pref_with_seg = __func(self, *args) | - | set_maxEA(self, *args) -> 'void' - | set_maxEA(self, ea) - | - | set_minEA(self, *args) -> 'void' - | set_minEA(self, ea) - | | set_pack_mode = __func(self, *args) | | set_show_auto = __func(self, *args) @@ -35114,193 +41708,206 @@ class idainfo(builtins.object) | list of weak references to the object (if defined) | | abibits - | idainfo_abibits_get(self) -> uint32 + | abibits | | abiname | get_abiname(self) -> qstring | | af - | idainfo_af_get(self) -> uint32 + | af | | af2 - | idainfo_af2_get(self) -> uint32 + | af2 | | appcall_options - | idainfo_appcall_options_get(self) -> uint32 + | appcall_options | | apptype - | idainfo_apptype_get(self) -> ushort + | apptype | | asmtype - | idainfo_asmtype_get(self) -> uchar + | asmtype | | baseaddr - | idainfo_baseaddr_get(self) -> uval_t + | baseaddr | | bin_prefix_size - | idainfo_bin_prefix_size_get(self) -> short + | bin_prefix_size | | cc - | idainfo_cc_get(self) -> compiler_info_t + | cc | - | comment - | idainfo_comment_get(self) -> uchar + | cmt_indent + | cmt_indent | | database_change_count - | idainfo_database_change_count_get(self) -> uint32 + | database_change_count | | datatypes - | idainfo_datatypes_get(self) -> uval_t + | datatypes | | demnames - | idainfo_demnames_get(self) -> uchar + | demnames | | filetype - | idainfo_filetype_get(self) -> ushort + | filetype | | highoff - | idainfo_highoff_get(self) -> ea_t + | highoff | | indent - | idainfo_indent_get(self) -> uchar + | indent | | lenxref - | idainfo_lenxref_get(self) -> ushort + | lenxref | | lflags - | idainfo_lflags_get(self) -> uint32 + | _get_lflags(self) -> uint32 | | listnames - | idainfo_listnames_get(self) -> uchar + | listnames | | long_demnames - | idainfo_long_demnames_get(self) -> uint32 + | long_demnames | | lowoff - | idainfo_lowoff_get(self) -> ea_t + | lowoff | | main - | idainfo_main_get(self) -> ea_t + | main | | margin - | idainfo_margin_get(self) -> ushort + | margin | | maxEA - | get_maxEA(self) -> ea_t | | max_autoname_len - | idainfo_max_autoname_len_get(self) -> ushort + | max_autoname_len | | max_ea - | idainfo_max_ea_get(self) -> ea_t + | max_ea | | maxref - | idainfo_maxref_get(self) -> uval_t + | maxref | | minEA - | get_minEA(self) -> ea_t | | min_ea - | idainfo_min_ea_get(self) -> ea_t + | min_ea | | nametype - | idainfo_nametype_get(self) -> char + | nametype | | omax_ea - | idainfo_omax_ea_get(self) -> ea_t + | omax_ea | | omin_ea - | idainfo_omin_ea_get(self) -> ea_t + | omin_ea | | ostype - | idainfo_ostype_get(self) -> ushort + | ostype | | outflags - | idainfo_outflags_get(self) -> uint32 + | outflags | | procName - | get_procName(self) -> qstring | | procname - | idainfo_procname_get(self) -> char [16] + | procname | | refcmtnum - | idainfo_refcmtnum_get(self) -> uchar + | refcmtnum | | s_cmtflg - | idainfo_s_cmtflg_get(self) -> uchar + | s_cmtflg | | s_genflags - | idainfo_s_genflags_get(self) -> ushort + | s_genflags | | s_limiter - | idainfo_s_limiter_get(self) -> uchar + | s_limiter | | s_prefflag - | idainfo_s_prefflag_get(self) -> uchar + | s_prefflag | | s_xrefflag - | idainfo_s_xrefflag_get(self) -> uchar + | s_xrefflag | | short_demnames - | idainfo_short_demnames_get(self) -> uint32 + | short_demnames | | specsegs - | idainfo_specsegs_get(self) -> uchar + | specsegs | | start_cs - | idainfo_start_cs_get(self) -> sel_t + | start_cs | | start_ea - | idainfo_start_ea_get(self) -> ea_t + | start_ea | | start_ip - | idainfo_start_ip_get(self) -> ea_t + | start_ip | | start_sp - | idainfo_start_sp_get(self) -> ea_t + | start_sp | | start_ss - | idainfo_start_ss_get(self) -> sel_t + | start_ss | | strlit_break - | idainfo_strlit_break_get(self) -> uchar + | strlit_break | | strlit_flags - | idainfo_strlit_flags_get(self) -> uchar + | strlit_flags | | strlit_pref - | idainfo_strlit_pref_get(self) -> char [16] + | strlit_pref | | strlit_sernum - | idainfo_strlit_sernum_get(self) -> uval_t + | strlit_sernum | | strlit_zeroes - | idainfo_strlit_zeroes_get(self) -> char + | strlit_zeroes | | strtype - | idainfo_strtype_get(self) -> int32 + | strtype | | tag - | idainfo_tag_get(self) -> char [3] + | tag | | thisown | The membership flag | | type_xrefnum - | idainfo_type_xrefnum_get(self) -> uchar + | type_xrefnum | | version - | idainfo_version_get(self) -> ushort + | version | | xrefnum - | idainfo_xrefnum_get(self) -> uchar + | xrefnum Help on function inf_big_arg_align in module ida_ida: inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + inf_big_arg_align() -> bool +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) -> 'uchar' + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) -> 'bool' + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + Help on function inf_gen_lzero in module ida_ida: inf_gen_lzero(*args) -> 'bool' @@ -35320,19 +41927,16 @@ Help on function inf_get_demname_form in module ida_ida: inf_get_demname_form(*args) -> 'uchar' inf_get_demname_form() -> uchar - - - Get 'DEMNAM_MASK' bits of #demnames. + Get DEMNAM_MASK bits of #demnames. Help on function inf_get_pack_mode in module ida_ida: inf_get_pack_mode(*args) -> 'int' inf_get_pack_mode() -> int -Help on function inf_is_32bit in module ida_ida: +Help on function idainfo_is_32bit in module ida_ida: -inf_is_32bit(*args) -> 'bool' - inf_is_32bit() -> bool +idainfo_is_32bit() Help on function inf_is_64bit in module ida_ida: @@ -35412,6 +42016,10 @@ inf_map_stkargs(*args) -> 'bool' Help on function inf_pack_stkargs in module ida_ida: inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + inf_pack_stkargs() -> bool Help on function inf_readonly_idb in module ida_ida: @@ -35423,61 +42031,85 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) -> 'bool' inf_set_64bit(_v=True) -> bool + + @param _v: bool Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) -> 'bool' inf_set_auto_enabled(_v=True) -> bool + + @param _v: bool Help on function inf_set_be in module ida_ida: inf_set_be(*args) -> 'bool' inf_set_be(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) -> 'bool' inf_set_gen_lzero(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) -> 'bool' inf_set_gen_null(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) -> 'bool' inf_set_gen_tryblks(_v=True) -> bool + + @param _v: bool Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) -> 'bool' inf_set_graph_view(_v=True) -> bool + + @param _v: bool Help on function inf_set_line_pref_with_seg in module ida_ida: inf_set_line_pref_with_seg(*args) -> 'bool' inf_set_line_pref_with_seg(_v=True) -> bool + + @param _v: bool Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) -> 'int' inf_set_pack_mode(pack_mode) -> int + + @param pack_mode: int Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) -> 'bool' inf_set_show_auto(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_line_pref in module ida_ida: inf_set_show_line_pref(*args) -> 'bool' inf_set_show_line_pref(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) -> 'bool' inf_set_show_void(_v=True) -> bool + + @param _v: bool Help on function <lambda> in module ida_ida: @@ -35487,6 +42119,8 @@ Help on function inf_set_wide_high_byte_first in module ida_ida: inf_set_wide_high_byte_first(*args) -> 'bool' inf_set_wide_high_byte_first(_v=True) -> bool + + @param _v: bool Help on function inf_show_auto in module ida_ida: @@ -35523,6 +42157,186 @@ Help on function inf_use_gcc_layout in module ida_ida: inf_use_gcc_layout(*args) -> 'bool' inf_use_gcc_layout() -> bool +Help on class idbattr_info_t in module ida_ida: + +class idbattr_info_t(builtins.object) + | Proxy of C++ idbattr_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, name, offset, width, bitmask=0, tag=0, idi_flags=0) -> idbattr_info_t + | + | @param name: char const * + | @param offset: uintptr_t + | @param width: size_t + | @param bitmask: uint64 + | @param tag: uchar + | @param idi_flags: uint + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: idbattr_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idbattr_info_t(...) + | delete_idbattr_info_t(self) + | + | has_individual_node(self, *args) -> 'bool' + | has_individual_node(self) -> bool + | + | hashname(self, *args) -> 'char const *' + | hashname(self) -> char const * + | + | is_bitfield(self, *args) -> 'bool' + | is_bitfield(self) -> bool + | + | is_bitmap(self, *args) -> 'bool' + | is_bitmap(self) -> bool + | + | is_boolean(self, *args) -> 'bool' + | is_boolean(self) -> bool + | + | is_buf_var(self, *args) -> 'bool' + | is_buf_var(self) -> bool + | + | is_bytearray(self, *args) -> 'bool' + | is_bytearray(self) -> bool + | + | is_cstr(self, *args) -> 'bool' + | is_cstr(self) -> bool + | + | is_decimal(self, *args) -> 'bool' + | is_decimal(self) -> bool + | + | is_hash(self, *args) -> 'bool' + | is_hash(self) -> bool + | + | is_hexadecimal(self, *args) -> 'bool' + | is_hexadecimal(self) -> bool + | + | is_incremented(self, *args) -> 'bool' + | is_incremented(self) -> bool + | + | is_node_altval(self, *args) -> 'bool' + | is_node_altval(self) -> bool + | + | is_node_blob(self, *args) -> 'bool' + | is_node_blob(self) -> bool + | + | is_node_supval(self, *args) -> 'bool' + | is_node_supval(self) -> bool + | + | is_node_valobj(self, *args) -> 'bool' + | is_node_valobj(self) -> bool + | + | is_node_var(self, *args) -> 'bool' + | is_node_var(self) -> bool + | + | is_onoff(self, *args) -> 'bool' + | is_onoff(self) -> bool + | + | is_qstring(self, *args) -> 'bool' + | is_qstring(self) -> bool + | + | is_readonly_var(self, *args) -> 'bool' + | is_readonly_var(self) -> bool + | + | is_scalar_var(self, *args) -> 'bool' + | is_scalar_var(self) -> bool + | + | is_struc_field(self, *args) -> 'bool' + | is_struc_field(self) -> bool + | + | is_val_mapped(self, *args) -> 'bool' + | is_val_mapped(self) -> bool + | + | ridx(self, *args) -> 'size_t' + | ridx(self) -> size_t + | + | str_false(self, *args) -> 'char const *' + | str_false(self) -> char const * + | + | str_true(self, *args) -> 'char const *' + | str_true(self) -> char const * + | + | use_hlpstruc(self, *args) -> 'bool' + | use_hlpstruc(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bitmask + | bitmask + | + | idi_flags + | idi_flags + | + | individual_node + | individual_node + | + | maxsize + | maxsize + | + | name + | name + | + | offset + | offset + | + | tag + | tag + | + | thisown + | The membership flag + | + | vmap + | vmap + | + | width + | width + +Help on class idbattr_valmap_t in module ida_ida: + +class idbattr_valmap_t(builtins.object) + | Proxy of C++ idbattr_valmap_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idbattr_valmap_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idbattr_valmap_t(...) + | delete_idbattr_valmap_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | valname + | valname + | + | value + | value + Help on function inf_abi_set_by_user in module ida_ida: inf_abi_set_by_user(*args) -> 'bool' @@ -35667,8 +42481,6 @@ Help on function inf_get_af2_low in module ida_ida: inf_get_af2_low(*args) -> 'ushort' inf_get_af2_low() -> ushort - - Get/set low 16bit half of inf.af2. Help on function inf_get_af_high in module ida_ida: @@ -35680,10 +42492,13 @@ Help on function inf_get_af_low in module ida_ida: inf_get_af_low(*args) -> 'ushort' inf_get_af_low() -> ushort - - Get/set low/high 16bit halves of inf.af. +Help on function inf_get_app_bitness in module ida_ida: + +inf_get_app_bitness(*args) -> 'uint' + inf_get_app_bitness() -> uint + Help on function inf_get_appcall_options in module ida_ida: inf_get_appcall_options(*args) -> 'uint32' @@ -35713,6 +42528,8 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) -> 'bool' inf_get_cc(out) -> bool + + @param out: compiler_info_t * Help on function inf_get_cc_cm in module ida_ida: @@ -35769,11 +42586,6 @@ Help on function inf_get_cmtflg in module ida_ida: inf_get_cmtflg(*args) -> 'uchar' inf_get_cmtflg() -> uchar -Help on function inf_get_comment in module ida_ida: - -inf_get_comment(*args) -> 'uchar' - inf_get_comment() -> uchar - Help on function inf_get_database_change_count in module ida_ida: inf_get_database_change_count(*args) -> 'uint32' @@ -35908,6 +42720,9 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) -> 'range_t' inf_get_privrange(out) -> bool + + @param out: range_t * + inf_get_privrange() -> range_t Help on function inf_get_privrange_end_ea in module ida_ida: @@ -36049,6 +42864,23 @@ Help on function inf_inc_database_change_count in module ida_ida: inf_inc_database_change_count(*args) -> 'void' inf_inc_database_change_count(cnt=1) + + @param cnt: int + +Help on function inf_is_16bit in module ida_ida: + +inf_is_16bit(*args) -> 'bool' + inf_is_16bit() -> bool + +Help on function inf_is_32bit_exactly in module ida_ida: + +inf_is_32bit_exactly(*args) -> 'bool' + inf_is_32bit_exactly() -> bool + +Help on function inf_is_32bit_or_higher in module ida_ida: + +inf_is_32bit_or_higher(*args) -> 'bool' + inf_is_32bit_or_higher() -> bool Help on function inf_is_limiter_empty in module ida_ida: @@ -36104,6 +42936,8 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) -> 'uval_t' inf_postinc_strlit_sernum(cnt=1) -> uval_t + + @param cnt: uval_t Help on function inf_prefix_show_funcoff in module ida_ida: @@ -36149,796 +42983,1109 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) -> 'bool' inf_set_32bit(_v=True) -> bool + + @param _v: bool Help on function inf_set_abi_set_by_user in module ida_ida: inf_set_abi_set_by_user(*args) -> 'bool' inf_set_abi_set_by_user(_v=True) -> bool + + @param _v: bool Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) -> 'bool' inf_set_abibits(_v) -> bool + + @param _v: uint32 Help on function inf_set_af in module ida_ida: inf_set_af(*args) -> 'bool' inf_set_af(_v) -> bool + + @param _v: uint32 Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) -> 'bool' inf_set_af2(_v) -> bool + + @param _v: uint32 Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) -> 'void' inf_set_af2_low(saf) + + @param saf: ushort Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) -> 'void' inf_set_af_high(saf2) + + @param saf2: ushort Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) -> 'void' inf_set_af_low(saf) + + @param saf: ushort Help on function inf_set_allow_non_matched_ops in module ida_ida: inf_set_allow_non_matched_ops(*args) -> 'bool' inf_set_allow_non_matched_ops(_v=True) -> bool + + @param _v: bool Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) -> 'bool' inf_set_allow_sigmulti(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_app_bitness in module ida_ida: + +inf_set_app_bitness(*args) -> 'void' + inf_set_app_bitness(bitness) + + @param bitness: uint Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) -> 'bool' inf_set_appcall_options(_v) -> bool + + @param _v: uint32 Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) -> 'bool' inf_set_append_sigcmt(_v=True) -> bool + + @param _v: bool Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) -> 'bool' inf_set_apptype(_v) -> bool + + @param _v: ushort Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) -> 'bool' inf_set_asmtype(_v) -> bool + + @param _v: uchar Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) -> 'bool' inf_set_baseaddr(_v) -> bool + + @param _v: uval_t Help on function inf_set_big_arg_align in module ida_ida: inf_set_big_arg_align(*args) -> 'bool' inf_set_big_arg_align(_v=True) -> bool + + @param _v: bool Help on function inf_set_bin_prefix_size in module ida_ida: inf_set_bin_prefix_size(*args) -> 'bool' inf_set_bin_prefix_size(_v) -> bool + + @param _v: short Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) -> 'bool' inf_set_cc(_v) -> bool + + @param _v: compiler_info_t const & Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) -> 'bool' inf_set_cc_cm(_v) -> bool + + @param _v: cm_t Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) -> 'bool' inf_set_cc_defalign(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) -> 'bool' inf_set_cc_id(_v) -> bool + + @param _v: comp_t Help on function inf_set_cc_size_b in module ida_ida: inf_set_cc_size_b(*args) -> 'bool' inf_set_cc_size_b(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_e in module ida_ida: inf_set_cc_size_e(*args) -> 'bool' inf_set_cc_size_e(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_i in module ida_ida: inf_set_cc_size_i(*args) -> 'bool' inf_set_cc_size_i(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_l in module ida_ida: inf_set_cc_size_l(*args) -> 'bool' inf_set_cc_size_l(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_ldbl in module ida_ida: inf_set_cc_size_ldbl(*args) -> 'bool' inf_set_cc_size_ldbl(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_ll in module ida_ida: inf_set_cc_size_ll(*args) -> 'bool' inf_set_cc_size_ll(_v) -> bool + + @param _v: uchar Help on function inf_set_cc_size_s in module ida_ida: inf_set_cc_size_s(*args) -> 'bool' inf_set_cc_size_s(_v) -> bool + + @param _v: uchar Help on function inf_set_check_manual_ops in module ida_ida: inf_set_check_manual_ops(*args) -> 'bool' inf_set_check_manual_ops(_v=True) -> bool + + @param _v: bool Help on function inf_set_check_unicode_strlits in module ida_ida: inf_set_check_unicode_strlits(*args) -> 'bool' inf_set_check_unicode_strlits(_v=True) -> bool + + @param _v: bool Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) -> 'bool' inf_set_cmtflg(_v) -> bool + + @param _v: uchar Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) -> 'bool' inf_set_coagulate_code(_v=True) -> bool + + @param _v: bool Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) -> 'bool' inf_set_coagulate_data(_v=True) -> bool - -Help on function inf_set_comment in module ida_ida: - -inf_set_comment(*args) -> 'bool' - inf_set_comment(_v) -> bool + + @param _v: bool Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) -> 'bool' inf_set_compress_idb(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_all_xrefs in module ida_ida: inf_set_create_all_xrefs(*args) -> 'bool' inf_set_create_all_xrefs(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_func_from_call in module ida_ida: inf_set_create_func_from_call(*args) -> 'bool' inf_set_create_func_from_call(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_func_from_ptr in module ida_ida: inf_set_create_func_from_ptr(*args) -> 'bool' inf_set_create_func_from_ptr(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_func_tails in module ida_ida: inf_set_create_func_tails(*args) -> 'bool' inf_set_create_func_tails(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_jump_tables in module ida_ida: inf_set_create_jump_tables(*args) -> 'bool' inf_set_create_jump_tables(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_off_on_dref in module ida_ida: inf_set_create_off_on_dref(*args) -> 'bool' inf_set_create_off_on_dref(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_off_using_fixup in module ida_ida: inf_set_create_off_using_fixup(*args) -> 'bool' inf_set_create_off_using_fixup(_v=True) -> bool + + @param _v: bool Help on function inf_set_create_strlit_on_xref in module ida_ida: inf_set_create_strlit_on_xref(*args) -> 'bool' inf_set_create_strlit_on_xref(_v=True) -> bool + + @param _v: bool Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) -> 'bool' inf_set_data_offset(_v=True) -> bool + + @param _v: bool Help on function inf_set_database_change_count in module ida_ida: inf_set_database_change_count(*args) -> 'bool' inf_set_database_change_count(_v) -> bool + + @param _v: uint32 Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) -> 'bool' inf_set_datatypes(_v) -> bool + + @param _v: uval_t Help on function inf_set_dbg_no_store_path in module ida_ida: inf_set_dbg_no_store_path(*args) -> 'bool' inf_set_dbg_no_store_path(_v=True) -> bool + + @param _v: bool Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) -> 'bool' inf_set_decode_fpp(_v=True) -> bool + + @param _v: bool Help on function inf_set_del_no_xref_insns in module ida_ida: inf_set_del_no_xref_insns(*args) -> 'bool' inf_set_del_no_xref_insns(_v=True) -> bool + + @param _v: bool Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) -> 'bool' inf_set_demnames(_v) -> bool + + @param _v: uchar Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) -> 'bool' inf_set_dll(_v=True) -> bool + + @param _v: bool Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) -> 'bool' inf_set_filetype(_v) -> bool + + @param _v: enum filetype_t Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) -> 'bool' inf_set_final_pass(_v=True) -> bool + + @param _v: bool Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) -> 'bool' inf_set_flat_off32(_v=True) -> bool + + @param _v: bool Help on function inf_set_full_sp_ana in module ida_ida: inf_set_full_sp_ana(*args) -> 'bool' inf_set_full_sp_ana(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) -> 'bool' inf_set_gen_assume(_v=True) -> bool + + @param _v: bool Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) -> 'bool' inf_set_gen_org(_v=True) -> bool + + @param _v: bool Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) -> 'bool' inf_set_genflags(_v) -> bool + + @param _v: ushort Help on function inf_set_guess_func_type in module ida_ida: inf_set_guess_func_type(*args) -> 'bool' inf_set_guess_func_type(_v=True) -> bool + + @param _v: bool Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) -> 'bool' inf_set_handle_eh(_v=True) -> bool + + @param _v: bool Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) -> 'bool' inf_set_handle_rtti(_v=True) -> bool + + @param _v: bool Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) -> 'bool' inf_set_hard_float(_v=True) -> bool + + @param _v: bool Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) -> 'bool' inf_set_hide_comments(_v=True) -> bool + + @param _v: bool Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) -> 'bool' inf_set_hide_libfuncs(_v=True) -> bool + + @param _v: bool Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) -> 'bool' inf_set_highoff(_v) -> bool + + @param _v: ea_t Help on function inf_set_huge_arg_align in module ida_ida: inf_set_huge_arg_align(*args) -> 'bool' inf_set_huge_arg_align(_v=True) -> bool + + @param _v: bool Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) -> 'bool' inf_set_indent(_v) -> bool + + @param _v: uchar Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) -> 'bool' inf_set_kernel_mode(_v=True) -> bool + + @param _v: bool Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) -> 'bool' inf_set_lenxref(_v) -> bool + + @param _v: ushort Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) -> 'bool' inf_set_lflags(_v) -> bool + + @param _v: uint32 Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) -> 'bool' inf_set_limiter(_v) -> bool + + @param _v: uchar Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) -> 'bool' inf_set_limiter_empty(_v=True) -> bool + + @param _v: bool Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) -> 'bool' inf_set_limiter_thick(_v=True) -> bool + + @param _v: bool Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) -> 'bool' inf_set_limiter_thin(_v=True) -> bool + + @param _v: bool Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) -> 'bool' inf_set_listnames(_v) -> bool + + @param _v: uchar Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) -> 'bool' inf_set_loading_idc(_v=True) -> bool + + @param _v: bool Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) -> 'bool' inf_set_long_demnames(_v) -> bool + + @param _v: uint32 Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) -> 'bool' inf_set_lowoff(_v) -> bool + + @param _v: ea_t Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) -> 'bool' inf_set_macros_enabled(_v=True) -> bool + + @param _v: bool Help on function inf_set_main in module ida_ida: inf_set_main(*args) -> 'bool' inf_set_main(_v) -> bool + + @param _v: ea_t Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) -> 'bool' inf_set_map_stkargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) -> 'bool' inf_set_margin(_v) -> bool + + @param _v: ushort Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) -> 'bool' inf_set_mark_code(_v=True) -> bool + + @param _v: bool Help on function inf_set_max_autoname_len in module ida_ida: inf_set_max_autoname_len(*args) -> 'bool' inf_set_max_autoname_len(_v) -> bool + + @param _v: ushort Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) -> 'bool' inf_set_max_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) -> 'bool' inf_set_maxref(_v) -> bool + + @param _v: uval_t Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) -> 'bool' inf_set_mem_aligned4(_v=True) -> bool + + @param _v: bool Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) -> 'bool' inf_set_min_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) -> 'bool' inf_set_nametype(_v) -> bool + + @param _v: char Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) -> 'bool' inf_set_netdelta(_v) -> bool + + @param _v: sval_t Help on function inf_set_no_store_user_info in module ida_ida: inf_set_no_store_user_info(*args) -> 'bool' inf_set_no_store_user_info(_v=True) -> bool + + @param _v: bool Help on function inf_set_noflow_to_data in module ida_ida: inf_set_noflow_to_data(*args) -> 'bool' inf_set_noflow_to_data(_v=True) -> bool + + @param _v: bool Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) -> 'bool' inf_set_noret_ana(_v=True) -> bool + + @param _v: bool Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) -> 'bool' inf_set_omax_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) -> 'bool' inf_set_omin_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) -> 'bool' inf_set_op_offset(_v=True) -> bool + + @param _v: bool Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) -> 'bool' inf_set_ostype(_v) -> bool + + @param _v: ushort Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) -> 'bool' inf_set_outflags(_v) -> bool + + @param _v: uint32 Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) -> 'bool' inf_set_pack_idb(_v=True) -> bool + + @param _v: bool Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) -> 'bool' inf_set_pack_stkargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) -> 'bool' inf_set_prefflag(_v) -> bool + + @param _v: uchar Help on function inf_set_prefix_show_funcoff in module ida_ida: inf_set_prefix_show_funcoff(*args) -> 'bool' inf_set_prefix_show_funcoff(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefix_show_segaddr in module ida_ida: inf_set_prefix_show_segaddr(*args) -> 'bool' inf_set_prefix_show_segaddr(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefix_show_stack in module ida_ida: inf_set_prefix_show_stack(*args) -> 'bool' inf_set_prefix_show_stack(_v=True) -> bool + + @param _v: bool Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: inf_set_prefix_truncate_opcode_bytes(*args) -> 'bool' inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool + + @param _v: bool Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) -> 'bool' inf_set_privrange(_v) -> bool + + @param _v: range_t const & Help on function inf_set_privrange_end_ea in module ida_ida: inf_set_privrange_end_ea(*args) -> 'bool' inf_set_privrange_end_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_privrange_start_ea in module ida_ida: inf_set_privrange_start_ea(*args) -> 'bool' inf_set_privrange_start_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) -> 'bool' inf_set_procname(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) -> 'bool' inf_set_propagate_regargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) -> 'bool' inf_set_propagate_stkargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) -> 'bool' inf_set_readonly_idb(_v=True) -> bool + + @param _v: bool Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) -> 'bool' inf_set_refcmtnum(_v) -> bool + + @param _v: uchar Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) -> 'bool' inf_set_rename_jumpfunc(_v=True) -> bool + + @param _v: bool Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) -> 'bool' inf_set_rename_nullsub(_v=True) -> bool + + @param _v: bool Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) -> 'bool' inf_set_short_demnames(_v) -> bool + + @param _v: uint32 Help on function inf_set_should_create_stkvars in module ida_ida: inf_set_should_create_stkvars(*args) -> 'bool' inf_set_should_create_stkvars(_v=True) -> bool + + @param _v: bool Help on function inf_set_should_trace_sp in module ida_ida: inf_set_should_trace_sp(*args) -> 'bool' inf_set_should_trace_sp(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_all_comments in module ida_ida: inf_set_show_all_comments(*args) -> 'bool' inf_set_show_all_comments(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_hidden_funcs in module ida_ida: inf_set_show_hidden_funcs(*args) -> 'bool' inf_set_show_hidden_funcs(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_hidden_insns in module ida_ida: inf_set_show_hidden_insns(*args) -> 'bool' inf_set_show_hidden_insns(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_hidden_segms in module ida_ida: inf_set_show_hidden_segms(*args) -> 'bool' inf_set_show_hidden_segms(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) -> 'bool' inf_set_show_repeatables(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_src_linnum in module ida_ida: inf_set_show_src_linnum(*args) -> 'bool' inf_set_show_src_linnum(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_fncoff in module ida_ida: inf_set_show_xref_fncoff(*args) -> 'bool' inf_set_show_xref_fncoff(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_seg in module ida_ida: inf_set_show_xref_seg(*args) -> 'bool' inf_set_show_xref_seg(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_tmarks in module ida_ida: inf_set_show_xref_tmarks(*args) -> 'bool' inf_set_show_xref_tmarks(_v=True) -> bool + + @param _v: bool Help on function inf_set_show_xref_val in module ida_ida: inf_set_show_xref_val(*args) -> 'bool' inf_set_show_xref_val(_v=True) -> bool + + @param _v: bool Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) -> 'bool' inf_set_snapshot(_v=True) -> bool + + @param _v: bool Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) -> 'bool' inf_set_specsegs(_v) -> bool + + @param _v: uchar Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) -> 'bool' inf_set_stack_ldbl(_v=True) -> bool + + @param _v: bool Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) -> 'bool' inf_set_stack_varargs(_v=True) -> bool + + @param _v: bool Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) -> 'bool' inf_set_start_cs(_v) -> bool + + @param _v: sel_t Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) -> 'bool' inf_set_start_ea(_v) -> bool + + @param _v: ea_t Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) -> 'bool' inf_set_start_ip(_v) -> bool + + @param _v: ea_t Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) -> 'bool' inf_set_start_sp(_v) -> bool + + @param _v: ea_t Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) -> 'bool' inf_set_start_ss(_v) -> bool + + @param _v: sel_t Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) -> 'bool' inf_set_strlit_autocmt(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) -> 'bool' inf_set_strlit_break(_v) -> bool + + @param _v: uchar Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) -> 'bool' inf_set_strlit_flags(_v) -> bool + + @param _v: uchar Help on function inf_set_strlit_name_bit in module ida_ida: inf_set_strlit_name_bit(*args) -> 'bool' inf_set_strlit_name_bit(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) -> 'bool' inf_set_strlit_names(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_pref in module ida_ida: inf_set_strlit_pref(*args) -> 'bool' inf_set_strlit_pref(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) -> 'bool' inf_set_strlit_savecase(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_serial_names in module ida_ida: inf_set_strlit_serial_names(*args) -> 'bool' inf_set_strlit_serial_names(_v=True) -> bool + + @param _v: bool Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) -> 'bool' inf_set_strlit_sernum(_v) -> bool + + @param _v: uval_t Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) -> 'bool' inf_set_strlit_zeroes(_v) -> bool + + @param _v: char Help on function inf_set_strtype in module ida_ida: inf_set_strtype(*args) -> 'bool' inf_set_strtype(_v) -> bool - -Help on function inf_set_test_mode in module ida_ida: - -inf_set_test_mode(*args) -> 'bool' - inf_set_test_mode(_v=True) -> bool + + @param _v: int32 Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) -> 'bool' inf_set_trace_flow(_v=True) -> bool + + @param _v: bool Help on function inf_set_truncate_on_del in module ida_ida: inf_set_truncate_on_del(*args) -> 'bool' inf_set_truncate_on_del(_v=True) -> bool + + @param _v: bool Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) -> 'bool' inf_set_type_xrefnum(_v) -> bool + + @param _v: uchar Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) -> 'bool' inf_set_unicode_strlits(_v=True) -> bool + + @param _v: bool Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) -> 'bool' inf_set_use_allasm(_v=True) -> bool + + @param _v: bool Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) -> 'bool' inf_set_use_flirt(_v=True) -> bool + + @param _v: bool Help on function inf_set_use_gcc_layout in module ida_ida: inf_set_use_gcc_layout(*args) -> 'bool' inf_set_use_gcc_layout(_v=True) -> bool + + @param _v: bool Help on function inf_set_version in module ida_ida: inf_set_version(*args) -> 'bool' inf_set_version(_v) -> bool + + @param _v: ushort Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) -> 'bool' inf_set_xrefflag(_v) -> bool + + @param _v: uchar Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) -> 'bool' inf_set_xrefnum(_v) -> bool + + @param _v: uchar Help on function inf_should_create_stkvars in module ida_ida: @@ -37050,619 +44197,46 @@ Help on function inf_use_flirt in module ida_ida: inf_use_flirt(*args) -> 'bool' inf_use_flirt() -> bool +Help on function is_database_busy in module ida_ida: + +is_database_busy(*args) -> 'bool' + is_database_busy() -> bool + Check if the database is busy (e.g. performing some critical operations and + cannot be safely accessed) + Help on function is_filetype_like_binary in module ida_ida: is_filetype_like_binary(*args) -> 'bool' is_filetype_like_binary(ft) -> bool - - Is unstructured input file? - - @param ft (C++: filetype_t) + @param ft: (C++: filetype_t) enum filetype_t Help on function <lambda> in module ida_ida: <lambda> lambda *args +Help on function switch_dbctx in module ida_ida: + +switch_dbctx(*args) -> 'dbctx_t *' + switch_dbctx(idx) -> dbctx_t * + Switch to the database with the provided context ID + + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr + Help on function to_ea in module ida_ida: to_ea(*args) -> 'ea_t' to_ea(reg_cs, reg_ip) -> ea_t - - Convert (sel,off) value to a linear address. - - @param reg_cs (C++: sel_t) - @param reg_ip (C++: uval_t) + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) -=== ida_ida EPYDOC INJECTIONS === -ida_ida.ABI_8ALIGN4 -""" -4 byte alignment for 8byte scalars (__int64/double) inside structures? -""" +Module "ida_idaapi"s docstring: +"""None""" -ida_ida.ABI_BIGARG_ALIGN -""" -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - -use natural type alignment for argument if the alignment exceeds -native word size -""" - -ida_ida.ABI_GCC_LAYOUT -""" -use gcc layout for udts (used for mingw) -""" - -ida_ida.ABI_HARD_FLOAT -""" -use the floating-point register set -""" - -ida_ida.ABI_HUGEARG_ALIGN -""" -use natural type alignment for an argument even if its alignment -exceeds double native word size (the default is to use double word -max). e.g. if this bit is set, __int128 has 16-byte alignment -""" - -ida_ida.ABI_MAP_STKARGS -""" -register arguments are mapped to stack area (and consume stack slots) -""" - -ida_ida.ABI_PACK_STKARGS -""" -do not align stack arguments to stack slots -""" - -ida_ida.ABI_SET_BY_USER -""" -compiler/abi were set by user flag and require SETCOMP_BY_USER flag to -be changed -""" - -ida_ida.ABI_STACK_LDBL -""" -long double arguments are passed on stack -""" - -ida_ida.ABI_STACK_VARARGS -""" -varargs are always passed on stack (even when there are free -registers) -""" - -ida_ida.AF2_DOEH -""" -Handle EH information. -""" - -ida_ida.AF2_DORTTI -""" -Handle RTTI information. -""" - -ida_ida.AF2_MACRO -""" -Try to combine several instructions into a macro instruction -""" - -ida_ida.AF_ANORET -""" -Perform 'no-return' analysis. -""" - -ida_ida.AF_CHKUNI -""" -Check for unicode strings. -""" - -ida_ida.AF_CODE -""" -Trace execution flow. -""" - -ida_ida.AF_DATOFF -""" -Automatically convert data to offsets. -""" - -ida_ida.AF_DOCODE -""" -Coagulate code segs at the final pass. -""" - -ida_ida.AF_DODATA -""" -Coagulate data segs at the final pass. -""" - -ida_ida.AF_DREFOFF -""" -Create offset if data xref to seg32 exists. -""" - -ida_ida.AF_FINAL -""" -Final pass of analysis. -""" - -ida_ida.AF_FIXUP -""" -Create offsets and segments using fixup info. -""" - -ida_ida.AF_FLIRT -""" -Use flirt signatures. -""" - -ida_ida.AF_FTAIL -""" -Create function tails. -""" - -ida_ida.AF_HFLIRT -""" -Automatically hide library functions. -""" - -ida_ida.AF_IMMOFF -""" -Convert 32bit instruction operand to offset. -""" - -ida_ida.AF_JFUNC -""" -Rename jump functions as j_... -""" - -ida_ida.AF_JUMPTBL -""" -Locate and create jump tables. -""" - -ida_ida.AF_LVAR -""" -Create stack variables. -""" - -ida_ida.AF_MARKCODE -""" -Mark typical code sequences as code. -""" - -ida_ida.AF_MEMFUNC -""" -Try to guess member function types. -""" - -ida_ida.AF_NULLSUB -""" -Rename empty functions as nullsub_... -""" - -ida_ida.AF_PROC -""" -Create functions if call is present. -""" - -ida_ida.AF_PROCPTR -""" -Create function if data xref data->code32 exists. -""" - -ida_ida.AF_PURDAT -""" -Control flow to data segment is ignored. -""" - -ida_ida.AF_REGARG -""" -Propagate register argument information. -""" - -ida_ida.AF_SIGCMT -""" -Append a signature name comment for recognized anonymous library -functions. -""" - -ida_ida.AF_SIGMLT -""" -Allow recognition of several copies of the same function. -""" - -ida_ida.AF_STKARG -""" -Propagate stack argument information. -""" - -ida_ida.AF_STRLIT -""" -Create string literal if data xref exists. -""" - -ida_ida.AF_TRACE -""" -Trace stack pointer. -""" - -ida_ida.AF_TRFUNC -""" -Truncate functions upon code deletion. -""" - -ida_ida.AF_UNK -""" -Delete instructions with no xrefs. -""" - -ida_ida.AF_USED -""" -Analyze and create all xrefs. -""" - -ida_ida.AF_VERSP -""" -Perform full SP-analysis. (\\ph{verify_sp}) -""" - -ida_ida.DEMNAM_CMNT -""" -display demangled names as comments -""" - -ida_ida.DEMNAM_FIRST -""" -override type info -""" - -ida_ida.DEMNAM_GCC3 -""" -assume gcc3 names (valid for gnu compiler) -""" - -ida_ida.DEMNAM_MASK -""" -mask for name form -""" - -ida_ida.DEMNAM_NAME -""" -display demangled names as regular names -""" - -ida_ida.DEMNAM_NONE -""" -don't display demangled names -""" - -ida_ida.IDAINFO_TAG_SIZE -""" -The database parameters. This structure is kept in the ida database. -It contains the essential parameters for the current program -""" - -ida_ida.IDB_COMPRESSED -""" -compress & pack database components -""" - -ida_ida.IDB_PACKED -""" -pack database components into .idb -""" - -ida_ida.IDB_UNPACKED -""" -leave database components unpacked -""" - -ida_ida.INFFL_ALLASM -""" -the target assembler - -may use constructs not supported by -""" - -ida_ida.INFFL_AUTO -""" -Autoanalysis is enabled? -""" - -ida_ida.INFFL_CHKOPS -""" -check manual operands? (unused) -""" - -ida_ida.INFFL_GRAPH_VIEW -""" -currently using graph options (\\dto{graph}) -""" - -ida_ida.INFFL_LOADIDC -""" -loading an idc file that contains database info -""" - -ida_ida.INFFL_NMOPS -""" -allow non-matched operands? (unused) -""" - -ida_ida.INFFL_NOUSER -""" -do not store user info in the database -""" - -ida_ida.INFFL_READONLY -""" -(internal) temporary interdiction to modify the database -""" - -ida_ida.LFLG_64BIT -""" -64-bit program? -""" - -ida_ida.LFLG_COMPRESS -""" -compress the database? -""" - -ida_ida.LFLG_DBG_NOPATH -""" -do not store input full path in debugger process options -""" - -ida_ida.LFLG_FLAT_OFF32 -""" -treat 'REF_OFF32' as 32-bit offset for 16bit segments (otherwise try -SEG16:OFF16) -""" - -ida_ida.LFLG_IS_DLL -""" -Is dynamic library? -""" - -ida_ida.LFLG_KERNMODE -""" -is kernel mode binary? -""" - -ida_ida.LFLG_MSF -""" -Byte order: is MSB first? -""" - -ida_ida.LFLG_PACK -""" -pack the database? -""" - -ida_ida.LFLG_PC_FLAT -""" -32-bit program? -""" - -ida_ida.LFLG_PC_FPP -""" -decode floating point processor instructions? -""" - -ida_ida.LFLG_SNAPSHOT -""" -memory snapshot was taken? -""" - -ida_ida.LFLG_WIDE_HBF -""" -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? -""" - -ida_ida.LMT_EMPTY -""" -empty lines at the end of basic blocks -""" - -ida_ida.LMT_THICK -""" -thick borders -""" - -ida_ida.LMT_THIN -""" -thin borders -""" - -ida_ida.LN_AUTO -""" -include autogenerated names -""" - -ida_ida.LN_NORMAL -""" -include normal names -""" - -ida_ida.LN_PUBLIC -""" -include public names -""" - -ida_ida.LN_WEAK -""" -include weak names -""" - -ida_ida.OFLG_GEN_ASSUME -""" -Generate 'assume' directives? -""" - -ida_ida.OFLG_GEN_NULL -""" -Generate empty lines? -""" - -ida_ida.OFLG_GEN_ORG -""" -Generate 'org' directives? -""" - -ida_ida.OFLG_GEN_TRYBLKS -""" -Generate try/catch directives? -""" - -ida_ida.OFLG_LZERO -""" -generate leading zeroes in numbers -""" - -ida_ida.OFLG_PREF_SEG -""" -line prefixes with segment name? -""" - -ida_ida.OFLG_SHOW_AUTO -""" -Display autoanalysis indicator? -""" - -ida_ida.OFLG_SHOW_PREF -""" -Show line prefixes? -""" - -ida_ida.OFLG_SHOW_VOID -""" -Display void marks? -""" - -ida_ida.PREF_FNCOFF -""" -show function offsets? -""" - -ida_ida.PREF_PFXTRUNC -""" -truncate instruction bytes if they would need more than 1 line -""" - -ida_ida.PREF_SEGADR -""" -show segment addresses? -""" - -ida_ida.PREF_STACK -""" -show stack pointer? -""" - -ida_ida.SCF_ALLCMT -""" -comment all lines? -""" - -ida_ida.SCF_LINNUM -""" -show source line numbers -""" - -ida_ida.SCF_NOCMT -""" -no comments at all -""" - -ida_ida.SCF_RPTCMT -""" -show repeatable comments? -""" - -ida_ida.SCF_SHHID_FUNC -""" -show hidden functions -""" - -ida_ida.SCF_SHHID_ITEM -""" -show hidden instructions -""" - -ida_ida.SCF_SHHID_SEGM -""" -show hidden segments -""" - -ida_ida.SCF_TESTMODE -""" -testida.idc is running -""" - -ida_ida.STRF_AUTO -""" -names have 'autogenerated' bit? -""" - -ida_ida.STRF_COMMENT -""" -generate auto comment for string references? -""" - -ida_ida.STRF_GEN -""" -generate names? -""" - -ida_ida.STRF_SAVECASE -""" -preserve case of strings for identifiers -""" - -ida_ida.STRF_SERIAL -""" -generate serial names? -""" - -ida_ida.STRF_UNICODE -""" -unicode strings are present? -""" - -ida_ida.SW_SEGXRF -""" -show segments in xrefs? -""" - -ida_ida.SW_XRFFNC -""" -show function offsets? -""" - -ida_ida.SW_XRFMRK -""" -show xref type marks? -""" - -ida_ida.SW_XRFVAL -""" -show xref values? (otherwise-"...") -""" - -ida_ida.UA_MAXOP -""" -max number of operands allowed for an instruction -""" -=== ida_ida EPYDOC INJECTIONS END === Help on class CustomIDAMemo in module ida_kernwin: class CustomIDAMemo(View_Hooks) @@ -37762,7 +44336,10 @@ class CustomIDAMemo(View_Hooks) | @param values: A dictionary of 'int -> node_info_t' objects. | | __init__(self) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _get_cb(self, view, cb_name) | @@ -37772,36 +44349,80 @@ class CustomIDAMemo(View_Hooks) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -37826,6 +44447,9 @@ class CustomIDAMemo(View_Hooks) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -37876,9 +44500,8 @@ class __IDAPython_Completion_Util(builtins.object) Help on function IDAPython_ExecScript in module ida_idaapi: -IDAPython_ExecScript(script, g, print_error=True) +IDAPython_ExecScript(path, g, print_error=True) Run the specified script. - It also addresses http://code.google.com/p/idapython/issues/detail?id=42 This function is used by the low-level plugin code. @@ -37895,7 +44518,7 @@ IDAPython_FormatExc(etype, value=None, tb=None, limit=None) Help on function IDAPython_LoadProcMod in module ida_idaapi: -IDAPython_LoadProcMod(script, g, print_error=True) +IDAPython_LoadProcMod(path, g, print_error=True) Load processor module. Help on function IDAPython_UnLoadProcMod in module ida_idaapi: @@ -38022,32 +44645,10 @@ class PyIdc_cvt_refclass__(pyidc_cvt_helper__) | | value -Help on __BC695 in module ida_idaapi object: +Help on function TRUNC in module ida_idaapi: -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) +TRUNC(ea) + Truncate EA for the current application bitness Help on IDAPython_displayhook in module ida_idaapi object: @@ -38076,33 +44677,6 @@ class IDAPython_displayhook(builtins.object) | __weakref__ | list of weak references to the object (if defined) -Help on class __BC695 in module ida_idaapi: - -class __BC695(builtins.object) - | # ----------------------------------- helpers for bw-compat w/ 6.95 API - | - | Methods defined here: - | - | __init__(self) - | Initialize self. See help(type(self)) for accurate signature. - | - | dummy(self, *args) - | - | false_p(self, *args) - | - | identity(self, arg) - | - | replace_fun(self, new) - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on class __IDAPython_Completion_Util in module ida_idaapi: class __IDAPython_Completion_Util(builtins.object) @@ -38158,6 +44732,14 @@ Help on function _listify_types in module ida_idaapi: _listify_types(*classes) +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + Help on function _qvector_back in module ida_idaapi: _qvector_back(self) @@ -38185,7 +44767,7 @@ Help on function as_cstr in module ida_idaapi: as_cstr(val) Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) - It scans for the first � and returns the string value up to that point. + It scans for the first \x00 and returns the string value up to that point. Help on function as_int32 in module ida_idaapi: @@ -38215,8 +44797,6 @@ Help on function disable_script_timeout in module ida_idaapi: disable_script_timeout(*args) -> 'void' disable_script_timeout() - - Disables the script timeout and hides the script wait box. Calling L{set_script_timeout} will not have any effects until the script is compiled and executed again @@ -38226,36 +44806,34 @@ Help on function enable_extlang_python in module ida_idaapi: enable_extlang_python(*args) -> 'void' enable_extlang_python(enable) - - Enables or disables Python extlang. When enabled, all expressions will be evaluated by Python. + @param enable: Set to True to enable, False otherwise Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) -> 'void' enable_python_cli(enable) + + @param enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) -> 'PyObject *' - format_basestring(_in) -> PyObject * + format_basestring(_in) -> str + + @param _in: PyObject * Help on function get_inf_structure in module ida_idaapi: get_inf_structure(*args) -> 'idainfo *' get_inf_structure() -> idainfo - - Returns the global variable 'inf' (an instance of idainfo structure, see ida.hpp) Help on class loader_input_t in module ida_idaapi: class loader_input_t(builtins.object) - | Proxy of C++ loader_input_t class. - | - | | A helper class to work with linput_t related functions. | This class is also used by file loaders scripts. | @@ -38264,8 +44842,7 @@ class loader_input_t(builtins.object) | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t | - | - | Closes the file + | @param pycapsule: PyObject * | | __repr__ = _swig_repr(self) | @@ -38274,17 +44851,17 @@ class loader_input_t(builtins.object) | | close(self, *args) -> 'void' | close(self) + | Closes the file | | file2base(self, *args) -> 'int' | file2base(self, pos, ea1, ea2, patchable) -> int - | - | | Load portion of file into the database | This function will include (ea1..ea2) into the addressing space of the | program (make it enabled) - | @param li: pointer ot input source + | | @param pos: position in the file - | @param (ea1..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses | @param patchable: should the kernel remember correspondance of | file offsets to linear addresses. | @return: 1-ok,0-read error, a warning is displayed @@ -38294,83 +44871,78 @@ class loader_input_t(builtins.object) | | get_byte(self, *args) -> 'PyObject *' | get_byte(self) -> PyObject * - | - | | Reads a single byte from the file. Returns None if EOF or the read byte | | get_linput(self, *args) -> 'linput_t *' | get_linput(self) -> linput_t * | | gets(self, *args) -> 'PyObject *' - | gets(self, len) -> PyObject * - | - | + | gets(self, len) -> str | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t | | getz(self, *args) -> 'PyObject *' | getz(self, sz, fpos=-1) -> PyObject * - | - | | Returns a zero terminated string at the given position + | | @param sz: maximum size of the string | @param fpos: if != -1 then seek will be performed before reading | @return: The string or None on failure. | | open(self, *args) -> 'bool' | open(self, filename, remote=False) -> bool - | - | | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool | @return: Boolean | | open_memory(self, *args) -> 'bool' | open_memory(self, start, size=0) -> bool - | - | | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) | This linput will use dbg->read_memory() to read data + | | @param start: starting address of the input | @param size: size of the memory range to represent as linput | if unknown, may be passed as 0 | | opened(self, *args) -> 'bool' | opened(self) -> bool - | - | | Checks if the file is opened or not | | read(self, *args) -> 'PyObject *' - | read(self, size) -> PyObject * - | - | + | read(self, size) -> bytes or None | Reads from the file. Returns the buffer or None + | + | @param size: size_t | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool | | seek(self, *args) -> 'int64' | seek(self, pos, whence=SEEK_SET) -> int64 - | - | | Set input source position + | + | @param pos: int64 + | @param whence: int | @return: the new position (not 0 as fseek!) | | set_linput(self, *args) -> 'void' | set_linput(self, linput) - | - | | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * | | size(self, *args) -> 'int64' | size(self) -> int64 | | tell(self, *args) -> 'int64' | tell(self) -> int64 - | - | | Returns the current position | | ---------------------------------------------------------------------- @@ -38378,15 +44950,19 @@ class loader_input_t(builtins.object) | | from_capsule(*args) -> 'loader_input_t *' | from_capsule(pycapsule) -> loader_input_t + | + | @param pycapsule: PyObject * | | from_fp(*args) -> 'loader_input_t *' | from_fp(fp) -> loader_input_t - | - | | A static method to construct an instance from a FILE* + | + | @param fp: FILE * | | from_linput(*args) -> 'loader_input_t *' | from_linput(linput) -> loader_input_t + | + | @param linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38395,7 +44971,7 @@ class loader_input_t(builtins.object) | dictionary for instance variables (if defined) | | __idc_cvt_id__ - | loader_input_t___idc_cvt_id___get(self) -> int + | __idc_cvt_id__ | | __weakref__ | list of weak references to the object (if defined) @@ -38407,16 +44983,22 @@ Help on function loader_input_t_from_capsule in module ida_idaapi: loader_input_t_from_capsule(*args) -> 'loader_input_t *' loader_input_t_from_capsule(pycapsule) -> loader_input_t + + @param pycapsule: PyObject * Help on function loader_input_t_from_fp in module ida_idaapi: loader_input_t_from_fp(*args) -> 'loader_input_t *' loader_input_t_from_fp(fp) -> loader_input_t + + @param fp: FILE * Help on function loader_input_t_from_linput in module ida_idaapi: loader_input_t_from_linput(*args) -> 'loader_input_t *' loader_input_t_from_linput(linput) -> loader_input_t + + @param linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -38456,6 +45038,8 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) -> 'PyObject *' parse_command_line3(cmdline) -> PyObject * + + @param cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -38480,6 +45064,29 @@ class plugin_t(pyidc_opaque_object_t) | | __idc_cvt_id__ = 2 +Help on class plugmod_t in module ida_idaapi: + +class plugmod_t(pyidc_opaque_object_t) + | Base class for all scripted multi-plugins. + | + | Method resolution order: + | plugmod_t + | pyidc_opaque_object_t + | builtins.object + | + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + Help on class py_clinked_object_t in module ida_idaapi: class py_clinked_object_t(pyidc_opaque_object_t) @@ -38547,31 +45154,49 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) -> 'TWidget *' pycim_get_widget(_self) -> TWidget * + + @param self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) -> 'void' pycim_view_close(_self) + + @param self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) -> 'PyObject *' - pygc_create_groups(_self, groups_infos) -> PyObject * + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * Help on function pygc_delete_groups in module ida_idaapi: pygc_delete_groups(*args) -> 'PyObject *' - pygc_delete_groups(_self, groups, new_current) -> PyObject * + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) -> 'void' pygc_refresh(_self) + + @param self: PyObject * Help on function pygc_set_groups_visibility in module ida_idaapi: pygc_set_groups_visibility(*args) -> 'PyObject *' - pygc_set_groups_visibility(_self, groups, expand, new_current) -> PyObject * + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -38649,8 +45274,6 @@ Help on function set_script_timeout in module ida_idaapi: set_script_timeout(*args) -> 'int' set_script_timeout(timeout) -> int - - Changes the script timeout value. The script wait box dialog will be hidden and shown again when the timeout elapses. See also L{disable_script_timeout}. @@ -38665,20 +45288,41 @@ struct_unpack(buffer, signed=False, offs=0) This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. +Module "ida_idc"s docstring: +"""None""" + Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + + @param slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + + @param slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" Help on Appcall__ in module ida_idd object: @@ -38707,15 +45351,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -38748,8 +45390,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -38818,15 +45459,13 @@ class Appcall__(builtins.object) | _Appcall____name_or_ea = __name_or_ea(name_or_ea) | Function that accepts a name or an ea and checks if the address is enabled. | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name - | @return: - | - Returns the resolved EA or + | @return: - Returns the resolved EA or | - Raises an exception if the address is not enabled | | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) | Function that accepts a tinfo_t object or type declaration as a string | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object - | @return: - | - Returns the tinfo_t object + | @return: - Returns the tinfo_t object | - Raises an exception if the declaration cannot be parsed | | array(type_name) @@ -38859,8 +45498,7 @@ class Appcall__(builtins.object) | Allows you to instantiate an appcall (callable object) with the desired prototype | @param name_or_ea: The name of the function (will be resolved with LocByName()) | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object - | @return: - | - On failure it raises an exception if the prototype could not be parsed + | @return: - On failure it raises an exception if the prototype could not be parsed | or the address is not resolvable | - Returns a callbable Appcall instance with the given prototypes and flags | @@ -38984,8 +45622,7 @@ class Appcall_callable__(builtins.object) | @param dest_ea: If packing to idb this will be the store location | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers | - | @return: - | - If packing to a string then a Tuple(Boolean, packed_string or error code) + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) | - If packing to the database then a return code is returned (0 is success) | | ---------------------------------------------------------------------- @@ -39037,6 +45674,12 @@ Help on function appcall in module ida_idd: appcall(*args) -> 'PyObject *' appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -39063,10 +45706,10 @@ class bptaddr_t(builtins.object) | list of weak references to the object (if defined) | | hea - | bptaddr_t_hea_get(self) -> ea_t + | hea | | kea - | bptaddr_t_kea_get(self) -> ea_t + | kea | | thisown | The membership flag @@ -39080,12 +45723,16 @@ class call_stack_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -39102,16 +45749,16 @@ class call_stack_info_t(builtins.object) | list of weak references to the object (if defined) | | callea - | call_stack_info_t_callea_get(self) -> ea_t + | callea | | fp - | call_stack_info_t_fp_get(self) -> ea_t + | fp | | funcea - | call_stack_info_t_funcea_get(self) -> ea_t + | funcea | | funcok - | call_stack_info_t_funcok_get(self) -> bool + | funcok | | thisown | The membership flag @@ -39121,22 +45768,28 @@ class call_stack_info_t(builtins.object) | | __hash__ = None -Help on class call_stack_t in module ida_idd: +Help on class call_stack_info_vec_t in module ida_idd: -class call_stack_t(builtins.object) +class call_stack_info_vec_t(builtins.object) | Proxy of C++ qvector< call_stack_info_t > class. | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t | | __init__(self, *args) - | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t + | __init__(self) -> call_stack_info_vec_t + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -39146,30 +45799,42 @@ class call_stack_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & | - | __swig_destroy__ = delete_call_stack_t(...) - | delete_call_stack_t(self) + | __swig_destroy__ = delete_call_stack_info_vec_t(...) + | delete_call_stack_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | begin(self) -> call_stack_info_t - | begin(self) -> call_stack_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -39182,39 +45847,58 @@ class call_stack_t(builtins.object) | | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | end(self) -> call_stack_info_t - | end(self) -> call_stack_info_t | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator | | extract(self, *args) -> 'call_stack_info_t *' | extract(self) -> call_stack_info_t | | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' | find(self, x) -> call_stack_info_t - | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'call_stack_info_t &' | push_back(self, x) + | + | @param x: call_stack_info_t const & + | | push_back(self) -> call_stack_info_t | | qclear(self, *args) -> 'void' @@ -39222,16 +45906,26 @@ class call_stack_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39253,42 +45947,227 @@ class call_stack_t(builtins.object) | | __hash__ = None +Help on class call_stack_t in module ida_idd: + +class call_stack_t(call_stack_info_vec_t) + | Proxy of C++ call_stack_t class. + | + | Method resolution order: + | call_stack_t + | call_stack_info_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> call_stack_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_call_stack_t(...) + | delete_call_stack_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from call_stack_info_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __getitem__(self, *args) -> 'call_stack_info_t const &' + | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | at(self, *args) -> 'call_stack_info_t const &' + | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | begin(self) -> call_stack_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | end(self) -> call_stack_info_t + | + | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | + | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator + | + | extract(self, *args) -> 'call_stack_info_t *' + | extract(self) -> call_stack_info_t + | + | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'call_stack_info_t &' + | push_back(self, x) + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from call_stack_info_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from call_stack_info_vec_t: + | + | __hash__ = None + Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) -> 'bool' can_exc_continue(ev) -> bool + + @param ev: debug_event_t const * Help on function cleanup_appcall in module ida_idd: cleanup_appcall(*args) -> 'error_t' cleanup_appcall(tid) -> error_t - - Cleanup after manual appcall. - @param tid: thread to use. NO_THREAD means to use the current thread - The application state is restored as it was before calling - the last appcall(). Nested appcalls are supported. (C++: - thid_t) - @return: eOk if successful, otherwise an error code + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code Help on function dbg_appcall in module ida_idd: dbg_appcall(*args) -> 'error_t' dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t - - Call a function from the debugged application. - @param retval (C++: idc_value_t *) - @param func_ea: address to call (C++: ea_t) - @param tid: thread to use. NO_THREAD means to use the current thread - (C++: thid_t) - @param ptif: pointer to type of the function to call (C++: const - tinfo_t *) - @param argv: array of arguments (C++: idc_value_t *) - @param argnum: number of actual arguments (C++: size_t) - @return: eOk if successful, otherwise an error code + @param retval: (C++: idc_value_t *) function return value + * for APPCALL_MANUAL, r will hold the new stack point value + * for APPCALL_DEBEV, r will hold the exception information upon failure and the + return code will be eExecThrow + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code Help on built-in function dbg_can_query in module _ida_dbg: @@ -39299,32 +46178,27 @@ Help on function dbg_get_memory_info in module ida_idd: dbg_get_memory_info(*args) -> 'PyObject *' dbg_get_memory_info() -> PyObject * - - This function returns the memory configuration of a debugged process. - @return: - None if no debugger is active + + @return: None if no debugger is active tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) Help on function dbg_get_name in module ida_idd: dbg_get_name(*args) -> 'PyObject *' dbg_get_name() -> PyObject * - - This function returns the current debugger's name. + @return: Debugger name or None if no debugger is active Help on function dbg_get_registers in module ida_idd: dbg_get_registers(*args) -> 'PyObject *' dbg_get_registers() -> PyObject * - - This function returns the register definition from the currently loaded debugger. Basically, it returns an array of structure similar to to idd.hpp / register_info_t - @return: - None if no debugger is loaded + + @return: None if no debugger is loaded tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) @@ -39332,33 +46206,32 @@ Help on function dbg_get_thread_sreg_base in module ida_idd: dbg_get_thread_sreg_base(*args) -> 'PyObject *' dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * - - Returns the segment register base value + @param tid: thread id @param sreg_value: segment register (selector) value - @return: - - The base as an 'ea' + @return: - The base as an 'ea' - Or None on failure Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) -> 'PyObject *' - dbg_write_memory(ea, buf) -> PyObject * - - + dbg_write_memory(ea, buf) -> bool Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & @return: Boolean Help on class debapp_attrs_t in module ida_idd: @@ -39386,16 +46259,16 @@ class debapp_attrs_t(builtins.object) | list of weak references to the object (if defined) | | addrsize - | debapp_attrs_t_addrsize_get(self) -> int + | addrsize | | cbsize - | debapp_attrs_t_cbsize_get(self) -> int32 + | cbsize | | is_be - | debapp_attrs_t_is_be_get(self) -> int + | is_be | | platform - | debapp_attrs_t_platform_get(self) -> qstring * + | platform | | thisown | The membership flag @@ -39410,6 +46283,8 @@ class debug_event_t(builtins.object) | __init__(self, *args) | __init__(self) -> debug_event_t | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | __repr__ = _swig_repr(self) | @@ -39418,26 +46293,30 @@ class debug_event_t(builtins.object) | | bpt(self, *args) -> 'bptaddr_t const &' | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t | | bpt_ea(self, *args) -> 'ea_t' | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. | | clear(self, *args) -> 'void' | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT | | clear_all(self, *args) -> 'void' | clear_all(self) | | copy(self, *args) -> 'debug_event_t &' | copy(self, r) -> debug_event_t + | + | @param r: debug_event_t const & | | eid(self, *args) -> 'event_id_t' | eid(self) -> event_id_t + | Event code. | | exc(self, *args) -> 'excinfo_t const &' | exc(self) -> excinfo_t - | exc(self) -> excinfo_t | | exit_code(self, *args) -> 'int const &' | exit_code(self) -> int const & @@ -39448,25 +46327,36 @@ class debug_event_t(builtins.object) | | modinfo(self, *args) -> 'modinfo_t const &' | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t | | set_bpt(self, *args) -> 'bptaddr_t &' | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) -> 'void' | set_eid(self, id) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t | | set_exception(self, *args) -> 'excinfo_t &' | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) -> 'void' | set_exit_code(self, id, code) + | + | @param id: enum event_id_t + | @param code: int | | set_info(self, *args) -> 'qstring &' | set_info(self, id) -> qstring & + | + | @param id: enum event_id_t | | set_modinfo(self, *args) -> 'modinfo_t &' | set_modinfo(self, id) -> modinfo_t + | + | @param id: enum event_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39478,19 +46368,592 @@ class debug_event_t(builtins.object) | list of weak references to the object (if defined) | | ea - | debug_event_t_ea_get(self) -> ea_t + | ea | | handled - | debug_event_t_handled_get(self) -> bool + | handled | | pid - | debug_event_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag | | tid - | debug_event_t_tid_get(self) -> thid_t + | tid + +Help on class debugger_t in module ida_idd: + +class debugger_t(builtins.object) + | Proxy of C++ debugger_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debugger_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debugger_t(...) + | delete_debugger_t(self) + | + | _debugger_t__get_bpt_bytes = __get_bpt_bytes(self, *args) -> 'bytevec_t' + | __get_bpt_bytes(self) -> bytevec_t + | + | _debugger_t__get_nregs = __get_nregs(self, *args) -> 'int' + | __get_nregs(self) -> int + | + | _debugger_t__get_regclasses = __get_regclasses(self, *args) -> 'PyObject *' + | __get_regclasses(self) -> PyObject * + | + | _debugger_t__get_registers = __get_registers(self, *args) -> 'dynamic_wrapped_array_t< register_info_t >' + | __get_registers(self) -> dyn_register_info_array + | + | attach_process(self, *args) -> 'drc_t' + | attach_process(self, pid, event_id, dbg_proc_flags) -> drc_t + | + | @param pid: pid_t + | @param event_id: int + | @param dbg_proc_flags: uint32 + | + | bin_search(self, *args) -> 'drc_t' + | bin_search(self, start_ea, end_ea, data, srch_flags) -> drc_t + | + | @param start_ea: ea_t + | @param end_ea: ea_t + | @param data: compiled_binpat_vec_t const & + | @param srch_flags: int + | + | cache_block_size(self, *args) -> 'size_t' + | cache_block_size(self) -> size_t + | + | can_continue_from_bpt(self, *args) -> 'bool' + | can_continue_from_bpt(self) -> bool + | + | can_debug_standalone_dlls(self, *args) -> 'bool' + | can_debug_standalone_dlls(self) -> bool + | + | check_bpt(self, *args) -> 'drc_t' + | check_bpt(self, bptvc, type, ea, len) -> drc_t + | + | @param bptvc: int * + | @param type: bpttype_t + | @param ea: ea_t + | @param len: int + | + | cleanup_appcall(self, *args) -> 'drc_t' + | cleanup_appcall(self, tid) -> drc_t + | + | @param tid: thid_t + | + | close_file(self, *args) -> 'void' + | close_file(self, fn) + | + | @param fn: int + | + | dbg_enable_trace(self, *args) -> 'bool' + | dbg_enable_trace(self, tid, enable, trace_flags) -> bool + | + | @param tid: thid_t + | @param enable: bool + | @param trace_flags: int + | + | detach_process(self, *args) -> 'drc_t' + | detach_process(self) -> drc_t + | + | eval_lowcnd(self, *args) -> 'drc_t' + | eval_lowcnd(self, tid, ea) -> drc_t + | + | @param tid: thid_t + | @param ea: ea_t + | + | exit_process(self, *args) -> 'drc_t' + | exit_process(self) -> drc_t + | + | fake_memory(self, *args) -> 'bool' + | fake_memory(self) -> bool + | + | get_debapp_attrs(self, *args) -> 'bool' + | get_debapp_attrs(self, out_pattrs) -> bool + | + | @param out_pattrs: debapp_attrs_t * + | + | get_debmod_extensions(self, *args) -> 'void const *' + | get_debmod_extensions(self) -> void const * + | + | get_debug_event(self, *args) -> 'gdecode_t' + | get_debug_event(self, event, timeout_ms) -> gdecode_t + | + | @param event: debug_event_t * + | @param timeout_ms: int + | + | get_memory_info(self, *args) -> 'drc_t' + | get_memory_info(self, ranges) -> drc_t + | + | @param ranges: meminfo_vec_t & + | + | get_processes(self, *args) -> 'drc_t' + | get_processes(self, procs) -> drc_t + | + | @param procs: procinfo_vec_t * + | + | get_srcinfo_path(self, *args) -> 'bool' + | get_srcinfo_path(self, path, base) -> bool + | + | @param path: qstring * + | @param base: ea_t + | + | has_appcall(self, *args) -> 'bool' + | has_appcall(self) -> bool + | + | has_attach_process(self, *args) -> 'bool' + | has_attach_process(self) -> bool + | + | has_check_bpt(self, *args) -> 'bool' + | has_check_bpt(self) -> bool + | + | has_detach_process(self, *args) -> 'bool' + | has_detach_process(self) -> bool + | + | has_get_processes(self, *args) -> 'bool' + | has_get_processes(self) -> bool + | + | has_map_address(self, *args) -> 'bool' + | has_map_address(self) -> bool + | + | has_open_file(self, *args) -> 'bool' + | has_open_file(self) -> bool + | + | has_request_pause(self, *args) -> 'bool' + | has_request_pause(self) -> bool + | + | has_rexec(self, *args) -> 'bool' + | has_rexec(self) -> bool + | + | has_set_exception_info(self, *args) -> 'bool' + | has_set_exception_info(self) -> bool + | + | has_set_resume_mode(self, *args) -> 'bool' + | has_set_resume_mode(self) -> bool + | + | has_soft_bpt(self, *args) -> 'bool' + | has_soft_bpt(self) -> bool + | + | has_thread_continue(self, *args) -> 'bool' + | has_thread_continue(self) -> bool + | + | has_thread_get_sreg_base(self, *args) -> 'bool' + | has_thread_get_sreg_base(self) -> bool + | + | has_thread_suspend(self, *args) -> 'bool' + | has_thread_suspend(self) -> bool + | + | has_update_call_stack(self, *args) -> 'bool' + | has_update_call_stack(self) -> bool + | + | init_debugger(self, *args) -> 'bool' + | init_debugger(self, hostname, portnum, password) -> bool + | + | @param hostname: char const * + | @param portnum: int + | @param password: char const * + | + | is_remote(self, *args) -> 'bool' + | is_remote(self) -> bool + | + | is_resmod_avail(self, *args) -> 'bool' + | is_resmod_avail(self, resmod) -> bool + | + | @param resmod: int + | + | is_safe(self, *args) -> 'bool' + | is_safe(self) -> bool + | + | is_tracing_enabled(self, *args) -> 'bool' + | is_tracing_enabled(self, tid, tracebit) -> bool + | + | @param tid: thid_t + | @param tracebit: int + | + | map_address(self, *args) -> 'ea_t' + | map_address(self, off, regs, regnum) -> ea_t + | + | @param off: ea_t + | @param regs: regval_t const * + | @param regnum: int + | + | may_disturb(self, *args) -> 'bool' + | may_disturb(self) -> bool + | + | may_take_exit_snapshot(self, *args) -> 'bool' + | may_take_exit_snapshot(self) -> bool + | + | must_have_hostname(self, *args) -> 'bool' + | must_have_hostname(self) -> bool + | + | open_file(self, *args) -> 'int' + | open_file(self, file, fsize, readonly) -> int + | + | @param file: char const * + | @param fsize: uint64 * + | @param readonly: bool + | + | read_file(self, *args) -> 'ssize_t' + | read_file(self, fn, off, buf, size) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void * + | @param size: size_t + | + | read_memory(self, *args) -> 'drc_t' + | read_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void * + | @param size: size_t + | + | read_registers(self, *args) -> 'drc_t' + | read_registers(self, tid, clsmask, values) -> drc_t + | + | @param tid: thid_t + | @param clsmask: int + | @param values: regval_t * + | + | rebase_if_required_to(self, *args) -> 'void' + | rebase_if_required_to(self, new_base) + | + | @param new_base: ea_t + | + | regs(self, *args) -> 'register_info_t &' + | regs(self, idx) -> register_info_t + | + | @param idx: int + | + | request_pause(self, *args) -> 'drc_t' + | request_pause(self) -> drc_t + | + | resume(self, *args) -> 'drc_t' + | resume(self, event) -> drc_t + | + | @param event: debug_event_t const * + | + | rexec(self, *args) -> 'int' + | rexec(self, cmdline) -> int + | + | @param cmdline: char const * + | + | send_ioctl(self, *args) -> 'drc_t' + | send_ioctl(self, fn, buf, poutbuf, poutsize) -> drc_t + | + | @param fn: int + | @param buf: void const * + | @param poutbuf: void ** + | @param poutsize: ssize_t * + | + | set_exception_info(self, *args) -> 'void' + | set_exception_info(self, info, qty) + | + | @param info: exception_info_t const * + | @param qty: int + | + | set_resume_mode(self, *args) -> 'drc_t' + | set_resume_mode(self, tid, resmod) -> drc_t + | + | @param tid: thid_t + | @param resmod: enum resume_mode_t + | + | start_process(self, *args) -> 'drc_t' + | start_process(self, path, args, startdir, dbg_proc_flags, input_path, input_file_crc32) -> drc_t + | + | @param path: char const * + | @param args: char const * + | @param startdir: char const * + | @param dbg_proc_flags: uint32 + | @param input_path: char const * + | @param input_file_crc32: uint32 + | + | supports_debthread(self, *args) -> 'bool' + | supports_debthread(self) -> bool + | + | supports_lowcnds(self, *args) -> 'bool' + | supports_lowcnds(self) -> bool + | + | suspended(self, *args) -> 'void' + | suspended(self, dlls_added, thr_names=None) + | + | @param dlls_added: bool + | @param thr_names: thread_name_vec_t * + | + | term_debugger(self, *args) -> 'bool' + | term_debugger(self) -> bool + | + | thread_continue(self, *args) -> 'drc_t' + | thread_continue(self, tid) -> drc_t + | + | @param tid: thid_t + | + | thread_get_sreg_base(self, *args) -> 'drc_t' + | thread_get_sreg_base(self, answer, tid, sreg_value) -> drc_t + | + | @param answer: ea_t * + | @param tid: thid_t + | @param sreg_value: int + | + | thread_suspend(self, *args) -> 'drc_t' + | thread_suspend(self, tid) -> drc_t + | + | @param tid: thid_t + | + | update_bpts(self, *args) -> 'drc_t' + | update_bpts(self, nbpts, bpts, nadd, ndel) -> drc_t + | + | @param nbpts: int * + | @param bpts: update_bpt_info_t * + | @param nadd: int + | @param ndel: int + | + | update_call_stack(self, *args) -> 'drc_t' + | update_call_stack(self, tid, trace) -> drc_t + | + | @param tid: thid_t + | @param trace: call_stack_t * + | + | update_lowcnds(self, *args) -> 'drc_t' + | update_lowcnds(self, nupdated, lowcnds, nlowcnds) -> drc_t + | + | @param nupdated: int * + | @param lowcnds: lowcnd_t const * + | @param nlowcnds: int + | + | use_memregs(self, *args) -> 'bool' + | use_memregs(self) -> bool + | + | use_sregs(self, *args) -> 'bool' + | use_sregs(self) -> bool + | + | virtual_threads(self, *args) -> 'bool' + | virtual_threads(self) -> bool + | + | write_file(self, *args) -> 'ssize_t' + | write_file(self, fn, off, buf) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void const * + | + | write_memory(self, *args) -> 'drc_t' + | write_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void const * + | @param size: size_t + | + | write_register(self, *args) -> 'drc_t' + | write_register(self, tid, regidx, value) -> drc_t + | + | @param tid: thid_t + | @param regidx: int + | @param value: regval_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt_bytes + | __get_bpt_bytes(self) -> bytevec_t + | + | bpt_size + | bpt_size + | + | default_regclasses + | default_regclasses + | + | filetype + | filetype + | + | flags + | flags + | + | flags2 + | flags2 + | + | id + | id + | + | memory_page_size + | memory_page_size + | + | name + | name + | + | nregs + | __get_nregs(self) -> int + | + | processor + | processor + | + | regclasses + | __get_regclasses(self) -> PyObject * + | + | registers + | __get_registers(self) -> dyn_register_info_array + | + | resume_modes + | resume_modes + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_appcall = 33 + | + | ev_attach_process = 4 + | + | ev_bin_search = 41 + | + | ev_check_bpt = 23 + | + | ev_cleanup_appcall = 34 + | + | ev_close_file = 27 + | + | ev_dbg_enable_trace = 37 + | + | ev_detach_process = 5 + | + | ev_eval_lowcnd = 35 + | + | ev_exit_process = 9 + | + | ev_get_debapp_attrs = 6 + | + | ev_get_debmod_extensions = 31 + | + | ev_get_debug_event = 10 + | + | ev_get_memory_info = 20 + | + | ev_get_processes = 2 + | + | ev_get_srcinfo_path = 40 + | + | ev_init_debugger = 0 + | + | ev_is_tracing_enabled = 38 + | + | ev_map_address = 30 + | + | ev_open_file = 26 + | + | ev_read_file = 28 + | + | ev_read_memory = 21 + | + | ev_read_registers = 17 + | + | ev_rebase_if_required_to = 7 + | + | ev_request_pause = 8 + | + | ev_resume = 11 + | + | ev_rexec = 39 + | + | ev_send_ioctl = 36 + | + | ev_set_exception_info = 12 + | + | ev_set_resume_mode = 16 + | + | ev_start_process = 3 + | + | ev_suspended = 13 + | + | ev_term_debugger = 1 + | + | ev_thread_continue = 15 + | + | ev_thread_get_sreg_base = 19 + | + | ev_thread_suspend = 14 + | + | ev_update_bpts = 24 + | + | ev_update_call_stack = 32 + | + | ev_update_lowcnds = 25 + | + | ev_write_file = 29 + | + | ev_write_memory = 22 + | + | ev_write_register = 18 + +Help on class dyn_register_info_array in module ida_idd: + +class dyn_register_info_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< register_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'register_info_t const &' + | __getitem__(self, i) -> register_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_register_info_array + | + | @param _data: register_info_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: register_info_t const & + | + | __swig_destroy__ = delete_dyn_register_info_array(...) + | delete_dyn_register_info_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag Help on class exception_info_t in module ida_idd: @@ -39502,6 +46965,11 @@ class exception_info_t(builtins.object) | __init__(self, *args) | __init__(self) -> exception_info_t | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * | | __repr__ = _swig_repr(self) | @@ -39510,9 +46978,11 @@ class exception_info_t(builtins.object) | | break_on(self, *args) -> 'bool' | break_on(self) -> bool + | Should we break on the exception? | | handle(self, *args) -> 'bool' | handle(self) -> bool + | Should we handle the exception? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39524,16 +46994,16 @@ class exception_info_t(builtins.object) | list of weak references to the object (if defined) | | code - | exception_info_t_code_get(self) -> uint + | code | | desc - | exception_info_t_desc_get(self) -> qstring * + | desc | | flags - | exception_info_t_flags_get(self) -> uint32 + | flags | | name - | exception_info_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -39563,16 +47033,16 @@ class excinfo_t(builtins.object) | list of weak references to the object (if defined) | | can_cont - | excinfo_t_can_cont_get(self) -> bool + | can_cont | | code - | excinfo_t_code_get(self) -> uint32 + | code | | ea - | excinfo_t_ea_get(self) -> ea_t + | ea | | info - | excinfo_t_info_get(self) -> qstring * + | info | | thisown | The membership flag @@ -39586,10 +47056,14 @@ class excvec_t(builtins.object) | | __getitem__(self, *args) -> 'exception_info_t const &' | __getitem__(self, i) -> exception_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -39601,19 +47075,23 @@ class excvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: exception_info_t const & | | __swig_destroy__ = delete_excvec_t(...) | delete_excvec_t(self) | | at(self, *args) -> 'exception_info_t const &' | at(self, _idx) -> exception_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< exception_info_t >::const_iterator' | begin(self) -> exception_info_t - | begin(self) -> exception_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -39626,11 +47104,16 @@ class excvec_t(builtins.object) | | end(self, *args) -> 'qvector< exception_info_t >::const_iterator' | end(self) -> exception_info_t - | end(self) -> exception_info_t | | erase(self, *args) -> 'qvector< exception_info_t >::iterator' | erase(self, it) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | | erase(self, first, last) -> exception_info_t + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator | | extract(self, *args) -> 'exception_info_t *' | extract(self) -> exception_info_t @@ -39640,18 +47123,29 @@ class excvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=exception_info_t()) + | + | @param x: exception_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: exception_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< exception_info_t >::iterator' | insert(self, it, x) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'exception_info_t &' | push_back(self, x) + | + | @param x: exception_info_t const & + | | push_back(self) -> exception_info_t | | qclear(self, *args) -> 'void' @@ -39659,16 +47153,26 @@ class excvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: exception_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< exception_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39685,62 +47189,105 @@ class excvec_t(builtins.object) | thisown | The membership flag +Help on function get_dbg in module ida_idd: + +get_dbg(*args) -> 'debugger_t *' + get_dbg() -> debugger_t + Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) -> 'ea_t' get_event_bpt_hea(ev) -> ea_t + + @param ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) -> 'uint' get_event_exc_code(ev) -> uint + + @param ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) -> 'ea_t' get_event_exc_ea(ev) -> ea_t + + @param ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) -> 'size_t' get_event_exc_info(ev) -> str + + @param ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) -> 'size_t' get_event_info(ev) -> str + + @param ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) -> 'ea_t' get_event_module_base(ev) -> ea_t + + @param ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) -> 'size_t' get_event_module_name(ev) -> str + + @param ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) -> 'asize_t' get_event_module_size(ev) -> asize_t + + @param ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: -class meminfo_vec_t(builtins.object) - | Proxy of C++ qvector< memory_info_t > class. +class meminfo_vec_t(meminfo_vec_template_t) + | Proxy of C++ meminfo_vec_t class. + | + | Method resolution order: + | meminfo_vec_t + | meminfo_vec_template_t + | builtins.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_meminfo_vec_t(...) + | delete_meminfo_vec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from meminfo_vec_template_t: + | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & | | __getitem__(self, *args) -> 'memory_info_t const &' | __getitem__(self, i) -> memory_info_t - | - | __init__(self, *args) - | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -39750,30 +47297,37 @@ class meminfo_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< memory_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_meminfo_vec_t(...) - | delete_meminfo_vec_t(self) + | + | @param i: size_t + | @param v: memory_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & | | at(self, *args) -> 'memory_info_t const &' | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' | begin(self) -> memory_info_t - | begin(self) -> memory_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -39786,39 +47340,58 @@ class meminfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' | end(self) -> memory_info_t - | end(self) -> memory_info_t | | erase(self, *args) -> 'qvector< memory_info_t >::iterator' | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator | | extract(self, *args) -> 'memory_info_t *' | extract(self) -> memory_info_t | | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' | find(self, x) -> memory_info_t - | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: memory_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< memory_info_t >::iterator' | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memory_info_t &' | push_back(self, x) + | + | @param x: memory_info_t const & + | | push_back(self) -> memory_info_t | | qclear(self, *args) -> 'void' @@ -39826,16 +47399,202 @@ class meminfo_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< memory_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from meminfo_vec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from meminfo_vec_template_t: + | + | __hash__ = None + +Help on class meminfo_vec_template_t in module ida_idd: + +class meminfo_vec_template_t(builtins.object) + | Proxy of C++ qvector< memory_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __getitem__(self, *args) -> 'memory_info_t const &' + | __getitem__(self, i) -> memory_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_template_t + | __init__(self, x) -> meminfo_vec_template_t + | + | @param x: qvector< memory_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memory_info_t const & + | + | __swig_destroy__ = delete_meminfo_vec_template_t(...) + | delete_meminfo_vec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & + | + | at(self, *args) -> 'memory_info_t const &' + | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | begin(self) -> memory_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | end(self) -> memory_info_t + | + | erase(self, *args) -> 'qvector< memory_info_t >::iterator' + | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | + | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator + | + | extract(self, *args) -> 'memory_info_t *' + | extract(self) -> memory_info_t + | + | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: memory_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memory_info_t >::iterator' + | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memory_info_t &' + | push_back(self, x) + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memory_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39871,12 +47630,16 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -39887,19 +47650,19 @@ class memory_info_t(ida_range.range_t) | Data descriptors defined here: | | bitness - | memory_info_t_bitness_get(self) -> uchar + | bitness | | name - | memory_info_t_name_get(self) -> qstring * + | name | | perm - | memory_info_t_perm_get(self) -> uchar + | perm | | sbase - | memory_info_t_sbase_get(self) -> ea_t + | sbase | | sclass - | memory_info_t_sclass_get(self) -> qstring * + | sclass | | thisown | The membership flag @@ -39914,37 +47677,62 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -39955,15 +47743,11 @@ class memory_info_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea Help on class modinfo_t in module ida_idd: @@ -39990,16 +47774,16 @@ class modinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | modinfo_t_base_get(self) -> ea_t + | base | | name - | modinfo_t_name_get(self) -> qstring * + | name | | rebase_to - | modinfo_t_rebase_to_get(self) -> ea_t + | rebase_to | | size - | modinfo_t_size_get(self) -> asize_t + | size | | thisown | The membership flag @@ -40029,10 +47813,10 @@ class process_info_t(builtins.object) | list of weak references to the object (if defined) | | name - | process_info_t_name_get(self) -> qstring * + | name | | pid - | process_info_t_pid_get(self) -> pid_t + | pid | | thisown | The membership flag @@ -40046,10 +47830,14 @@ class procinfo_vec_t(builtins.object) | | __getitem__(self, *args) -> 'process_info_t const &' | __getitem__(self, i) -> process_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -40061,19 +47849,23 @@ class procinfo_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: process_info_t const & | | __swig_destroy__ = delete_procinfo_vec_t(...) | delete_procinfo_vec_t(self) | | at(self, *args) -> 'process_info_t const &' | at(self, _idx) -> process_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< process_info_t >::const_iterator' | begin(self) -> process_info_t - | begin(self) -> process_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -40086,11 +47878,16 @@ class procinfo_vec_t(builtins.object) | | end(self, *args) -> 'qvector< process_info_t >::const_iterator' | end(self) -> process_info_t - | end(self) -> process_info_t | | erase(self, *args) -> 'qvector< process_info_t >::iterator' | erase(self, it) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | | erase(self, first, last) -> process_info_t + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator | | extract(self, *args) -> 'process_info_t *' | extract(self) -> process_info_t @@ -40100,18 +47897,29 @@ class procinfo_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=process_info_t()) + | + | @param x: process_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: process_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< process_info_t >::iterator' | insert(self, it, x) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'process_info_t &' | push_back(self, x) + | + | @param x: process_info_t const & + | | push_back(self) -> process_info_t | | qclear(self, *args) -> 'void' @@ -40119,16 +47927,26 @@ class procinfo_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: process_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< process_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -40160,6 +47978,9 @@ class register_info_t(builtins.object) | __swig_destroy__ = delete_register_info_t(...) | delete_register_info_t(self) | + | _register_info_t__get_bit_strings = __get_bit_strings(self, *args) -> 'PyObject *' + | __get_bit_strings(self) -> PyObject * + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -40170,22 +47991,22 @@ class register_info_t(builtins.object) | list of weak references to the object (if defined) | | bit_strings - | register_info_t_bit_strings_get(self) -> char const *const * + | __get_bit_strings(self) -> PyObject * | | default_bit_strings_mask - | register_info_t_default_bit_strings_mask_get(self) -> uval_t + | default_bit_strings_mask | | dtype - | register_info_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | register_info_t_flags_get(self) -> uint32 + | flags | | name - | register_info_t_name_get(self) -> char const * + | name | | register_class - | register_info_t_register_class_get(self) -> register_class_t + | register_class | | thisown | The membership flag @@ -40199,13 +48020,19 @@ class regval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t | __init__(self, r) -> regval_t + | + | @param r: regval_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -40214,34 +48041,67 @@ class regval_t(builtins.object) | | bytes(self, *args) -> 'bytevec_t const &' | bytes(self) -> bytevec_t + | Get const custom value. | bytes(self) -> bytevec_t const & | | clear(self, *args) -> 'void' | clear(self) + | Clear register value. | | get_data(self, *args) -> 'void const *' | get_data(self) + | Get const pointer to value. | get_data(self) -> void const * | | get_data_size(self, *args) -> 'size_t' | get_data_size(self) -> size_t + | Get size of value. + | + | pyval(self, *args) -> 'PyObject *' + | pyval(self, dtype) -> PyObject * + | + | @param dtype: op_dtype_t | | set_bytes(self, *args) -> 'bytevec_t &' | set_bytes(self, data, size) + | Initialize this regval to an empty custom value. + | + | @param data: uchar const * + | @param size: size_t + | | set_bytes(self, v) + | + | @param v: bytevec_t const & + | | set_bytes(self) -> bytevec_t & | | set_float(self, *args) -> 'void' | set_float(self, x) + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & | | set_int(self, *args) -> 'void' | set_int(self, x) + | Set int value (ival) + | + | @param x: (C++: uint64) + | + | set_pyval(self, *args) -> 'bool' + | set_pyval(self, o, dtype) -> bool + | + | @param o: PyObject * + | @param dtype: op_dtype_t | | set_unavailable(self, *args) -> 'void' | set_unavailable(self) + | Mark as unavailable. | | swap(self, *args) -> 'void' | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40253,13 +48113,192 @@ class regval_t(builtins.object) | list of weak references to the object (if defined) | | fval - | regval_t_fval_get(self) -> uint16 [6] + | fval | | ival - | regval_t_ival_get(self) -> uint64 + | ival | | rvtype - | regval_t_rvtype_get(self) -> int32 + | rvtype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class regvals_t in module ida_idd: + +class regvals_t(builtins.object) + | Proxy of C++ qvector< regval_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __getitem__(self, *args) -> 'regval_t const &' + | __getitem__(self, i) -> regval_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> regvals_t + | __init__(self, x) -> regvals_t + | + | @param x: qvector< regval_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regval_t const & + | + | __swig_destroy__ = delete_regvals_t(...) + | delete_regvals_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: regval_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: regval_t const & + | + | at(self, *args) -> 'regval_t const &' + | at(self, _idx) -> regval_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regval_t >::const_iterator' + | begin(self) -> regval_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regval_t >::const_iterator' + | end(self) -> regval_t + | + | erase(self, *args) -> 'qvector< regval_t >::iterator' + | erase(self, it) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | + | erase(self, first, last) -> regval_t + | + | @param first: qvector< regval_t >::iterator + | @param last: qvector< regval_t >::iterator + | + | extract(self, *args) -> 'regval_t *' + | extract(self) -> regval_t + | + | find(self, *args) -> 'qvector< regval_t >::const_iterator' + | find(self, x) -> regval_t + | + | @param x: regval_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regval_t()) + | + | @param x: regval_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: regval_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regval_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regval_t >::iterator' + | insert(self, it, x) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | @param x: regval_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regval_t &' + | push_back(self, x) + | + | @param x: regval_t const & + | + | push_back(self) -> regval_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regval_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regval_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) | | thisown | The membership flag @@ -40293,7 +48332,7 @@ class scattered_segm_t(ida_range.range_t) | Data descriptors defined here: | | name - | scattered_segm_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -40303,43 +48342,72 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40350,15 +48418,11 @@ class scattered_segm_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: @@ -40369,6 +48433,9 @@ Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) -> 'void' set_debug_event_code(ev, id) + + @param ev: debug_event_t * + @param id: enum event_id_t Help on class thread_name_t in module ida_idd: @@ -40395,134 +48462,45 @@ class thread_name_t(builtins.object) | list of weak references to the object (if defined) | | name - | thread_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | tid - | thread_name_t_tid_get(self) -> thid_t + | tid -=== ida_idd EPYDOC INJECTIONS === -ida_idd.EXC_BREAK -""" -break on the exception +Module "ida_idp"s docstring: """ +Contains definition of the interface to IDP modules. -ida_idd.EXC_HANDLE -""" -should be handled by the debugger? -""" +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph -ida_idd.EXC_MSG -""" -instead of a warning, log the exception to the output window -""" +These structures contain information about target processor and assembler +features. -ida_idd.EXC_SILENT -""" -do not warn or log to the output window -""" +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events -ida_idd.IDD_INTERFACE_VERSION -""" -The IDD interface version number. -""" +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" -ida_idd.NO_PROCESS -""" -No process. -""" - -ida_idd.NO_THREAD -""" -No thread. in 'PROCESS_STARTED' this value can be used to specify that -the main thread has not been created. It will be initialized later by -a 'THREAD_STARTED' event. -""" - -ida_idd.REGISTER_ADDRESS -""" -may contain an address -""" - -ida_idd.REGISTER_CS -""" -code segment -""" - -ida_idd.REGISTER_CUSTFMT -""" -register should be displayed using a custom data format. the format -name is in bit_strings[0] the corresponding 'regval_t' will use -'bytevec_t' -""" - -ida_idd.REGISTER_FP -""" -frame pointer -""" - -ida_idd.REGISTER_IP -""" -instruction pointer -""" - -ida_idd.REGISTER_NOLF -""" -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line -""" - -ida_idd.REGISTER_READONLY -""" -the user can't modify the current value of this register -""" - -ida_idd.REGISTER_SP -""" -stack pointer -""" - -ida_idd.REGISTER_SS -""" -stack segment -""" - -ida_idd.RVT_FLOAT -""" -floating point -""" - -ida_idd.RVT_INT -""" -integer -""" - -ida_idd.RVT_UNAVAILABLE -""" -other values mean custom data type - -unavailable -""" -=== ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: AssembleLine(*args) -> 'PyObject *' - AssembleLine(ea, cs, ip, use32, nonnul_line) -> PyObject * - - + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes Assemble an instruction to a string (display a warning if an error is found) @param ea: linear address of instruction - @param cs: cs of instruction - @param ip: ip of instruction + @param cs: cs of instruction + @param ip: ip of instruction @param use32: is 32bit segment - @param line: line to assemble - @return: - - None on failure + @param nonnul_line: char const * + @return: - None on failure - or a string containing the assembled instruction Help on class IDB_Hooks in module ida_idp: @@ -40535,15 +48513,28 @@ class IDB_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> IDB_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | | allsegs_moved(self, *args) -> 'void' | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' | auto_empty(self) @@ -40552,283 +48543,727 @@ class IDB_Hooks(builtins.object) | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' - | bookmark_changed(self, index, pos, desc) + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function + | + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) | | enum_bf_changed(self, *args) -> 'void' | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) | | enum_member_created(self, *args) -> 'void' | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | renamed(self, ea, new_name, local_name) + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' - | segm_deleted(self, start_ea, end_ea) + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' - | struc_renamed(self, sptr) + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed | | tail_owner_changed(self, *args) -> 'void' | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40852,7 +49287,10 @@ class IDP_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> IDP_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | @@ -40861,472 +49299,1260 @@ class IDP_Hooks(builtins.object) | | ev_add_cref(self, *args) -> 'int' | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_ana_insn(self, *args) -> 'bool' | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. | - | - | Analyzes and decodes an instruction at insn.ea - | - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - | - insn.size must be set to the instruction length - | - | @return: Boolean - | - False if the instruction is not recognized - | - True if the instruction was decoded. 'insn' should be filled in that case. + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_analyze_prolog(self, *args) -> 'int' | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm | | ev_assemble(self, *args) -> 'PyObject *' | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). | - | - | Assembles an instruction - | - | @param ea: linear address of instruction - | @param cs: cs of instruction - | @param ip: ip of instruction - | @param use32: is 32bit segment? - | @param line: line to assemble - | - | @return: - None to let the underlying processor module assemble the line - | - or a string containing the assembled buffer + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | - | ev_auto_queue_empty(self, *args) -> 'void' - | ev_auto_queue_empty(self, type) + | ev_auto_queue_empty(self, *args) -> 'int' + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) -> 'int' | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_step_over(self, *args) -> 'int' | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_calc_switch_cases(self, *args) -> 'int' | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' | ev_calcrel(self) -> int + | Reserved. | | ev_can_have_type(self, *args) -> 'int' | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_clean_tbit(self, *args) -> 'int' | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_cmp_operands(self, *args) -> 'int' | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) -> 'int' | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) -> 'int' | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_flat_group(self, *args) -> 'int' | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored | | ev_create_func_frame(self, *args) -> 'int' | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_create_switch_xrefs(self, *args) -> 'int' | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, *args) -> 'int' | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_decorate_name(self, *args) -> 'PyObject *' | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_emu_insn(self, *args) -> 'bool' | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. | - | - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this function - | all information about the instruction is in 'insn' structure. - | - | @return: Boolean (whether this instruction has been emulated or not) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) -> 'int' | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? | | ev_ending_undo(self, *args) -> 'int' | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | - | ev_func_bounds(self, *args) -> 'void' - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | ev_func_bounds(self, *args) -> 'int' + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | - | ev_gen_asm_or_lst(self, *args) -> 'void' - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_map_file(self, *args) -> 'int' | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, *args) -> 'int' | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) -> 'int' | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_gen_stkvar_def(self, *args) -> 'int' | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_autocmt(self, *args) -> 'PyObject *' | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_bg_color(self, *args) -> 'int' - | ev_get_bg_color(self, ea) -> int or None + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_frame_retsize(self, *args) -> 'int' | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_macro_insn_head(self, *args) -> 'int' | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_operand_string(self, *args) -> 'PyObject *' | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_align_insn(self, *args) -> 'int' | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) -> 'int' | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) -> 'int' | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) -> 'int' | ev_is_call_insn(self, insn) -> int - | - | | Is the instruction a "call"? | - | @param insn: instruction - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_cond_insn(self, *args) -> 'int' | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_far_jump(self, *args) -> 'int' | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) -> 'int' | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) -> 'int' - | ev_is_insn_table_jump(self, insn) -> int + | ev_is_insn_table_jump(self) -> int + | Reserved. | | ev_is_jump_func(self, *args) -> 'int' | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_is_ret_insn(self, *args) -> 'int' | ev_is_ret_insn(self, insn, strict) -> int - | - | | Is the instruction a "return"? | - | @param insn: instruction - | @param strict: - True: report only ret instructions - | False: include instructions like "leave" which begins the function epilog - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) -> 'int' | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. | - | - | is the instruction sane for the current file type? - | @param insn: the instruction - | @param no_crefs: - | - 1: the instruction has no code refs to it. - | ida just tries to convert unexplored bytes - | to an instruction (but there is no other - | reason to convert them into an instruction) - | - 0: the instruction is created because - | of some coderef, user request or another - | weighty reason. - | @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, *args) -> 'int' | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) -> 'int' | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_may_be_func(self, *args) -> 'int' | ev_may_be_func(self, insn, state) -> int - | - | | Can a function start here? - | @param insn: the instruction - | @param state: autoanalysis phase - | 0: creating functions - | 1: creating chunks | - | @return: integer (probability 0..100) + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) | | ev_may_show_sreg(self, *args) -> 'int' | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, *args) -> 'int' | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newasm(self, *args) -> 'int' | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed | | ev_newbinary(self, *args) -> 'int' | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load | | ev_newfile(self, *args) -> 'int' | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name | | ev_newprc(self, *args) -> 'int' | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_next_exec_insn(self, *args) -> 'int' | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented | | ev_oldfile(self, *args) -> 'int' | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) -> 'int' | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) -> 'int' | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | - | ev_out_footer(self, *args) -> 'void' - | ev_out_footer(self, outctx) + | ev_out_footer(self, *args) -> 'int' + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | - | ev_out_header(self, *args) -> 'void' - | ev_out_header(self, outctx) + | ev_out_header(self, *args) -> 'int' + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) -> 'bool' | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) -> 'int' | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) -> 'int' | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) -> 'bool' | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. | - | - | Notification to generate operand text. - | If False was returned, then the standard operand output function will be called. - | - | this notification may use out_...() functions to form the operand text - | - | @return: Boolean (whether the operand has been outputted or not) + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, *args) -> 'int' | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, *args) -> 'int' | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) -> 'int' | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_rename(self, *args) -> 'int' | ev_rename(self, ea, new_name) -> int - | - | | The kernel is going to rename a byte. | - | @param ea: Address - | @param new_name: The new name - | - | @return: - | - If returns value <0, then the kernel should - | not rename it. See also the 'renamed' event + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_replaying_undo(self, *args) -> 'int' | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | | ev_set_idp_options(self, *args) -> 'int' | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) -> 'int' | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) -> 'int' - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_str2reg(self, *args) -> 'int' | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_term(self, *args) -> 'int' | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) -> 'int' | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) -> 'int' | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. | + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. | - | An item in the database (insn or data) is being deleted - | @param ea: Address - | @return: - | - 1 - do not delete srranges at the item end - | - 0 - srranges can be deleted + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | ev_validate_flirt_func(self, *args) -> 'int' | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, *args) -> 'int' | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) -> 'int' | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | hook(self, *args) -> 'bool' | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success | | unhook(self, *args) -> 'bool' | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -41385,6 +50611,19 @@ class __ph(builtins.object) | | version +Help on class _idp_cvar_t in module ida_idp: + +class _idp_cvar_t(builtins.object) + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ash + Help on class _notify_when_dispatcher_t in module ida_idp: class _notify_when_dispatcher_t(builtins.object) @@ -41419,6 +50658,1362 @@ class _notify_when_dispatcher_t(builtins.object) | | _callback_t = <class 'ida_idp._notify_when_dispatcher_t._callback_t'> +Help on class _processor_t in module ida_idp: + +class _processor_t(builtins.object) + | Proxy of C++ processor_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> _processor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete__processor_t(...) + | delete__processor_t(self) + | + | calcrel_in_bits(self, *args) -> 'bool' + | calcrel_in_bits(self) -> bool + | + | cbsize(self, *args) -> 'int' + | cbsize(self) -> int + | + | dbsize(self, *args) -> 'int' + | dbsize(self) -> int + | + | delay_slot_insn(self, *args) -> 'bool' + | delay_slot_insn(self, ea, bexec, fexec) -> bool + | + | Parameters + | ---------- + | ea: ea_t * + | bexec: bool * + | fexec: bool * + | + | get_default_segm_bitness(self, *args) -> 'int' + | get_default_segm_bitness(self, is_64bit_app) -> int + | + | Parameters + | ---------- + | is_64bit_app: bool + | + | get_proc_index(self, *args) -> 'int' + | get_proc_index(self) -> int + | + | get_stkvar_scale(self, *args) -> 'int' + | get_stkvar_scale(self) -> int + | + | has_code16_bit(self, *args) -> 'bool' + | has_code16_bit(self) -> bool + | + | has_idp_opts(self, *args) -> 'bool' + | has_idp_opts(self) -> bool + | + | has_realcvt(self, *args) -> 'bool' + | has_realcvt(self) -> bool + | + | has_segregs(self, *args) -> 'bool' + | has_segregs(self) -> bool + | + | privrange_changed(self, *args) -> 'ssize_t' + | privrange_changed(self, old_privrange, delta) -> ssize_t + | + | Parameters + | ---------- + | old_privrange: range_t const & + | delta: adiff_t + | + | sizeof_ldbl(self, *args) -> 'size_t' + | sizeof_ldbl(self) -> size_t + | + | stkup(self, *args) -> 'bool' + | stkup(self) -> bool + | + | supports_calcrel(self, *args) -> 'bool' + | supports_calcrel(self) -> bool + | + | supports_macros(self, *args) -> 'bool' + | supports_macros(self) -> bool + | + | ti(self, *args) -> 'bool' + | ti(self) -> bool + | + | use32(self, *args) -> 'bool' + | use32(self) -> bool + | + | use64(self, *args) -> 'bool' + | use64(self) -> bool + | + | use_mappings(self, *args) -> 'bool' + | use_mappings(self) -> bool + | + | use_tbyte(self, *args) -> 'bool' + | use_tbyte(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | add_cref(*args) -> 'ssize_t' + | add_cref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum cref_t + | + | add_dref(*args) -> 'ssize_t' + | add_dref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum dref_t + | + | adjust_argloc(*args) -> 'ssize_t' + | adjust_argloc(argloc, type, size) -> ssize_t + | + | Parameters + | ---------- + | argloc: argloc_t * + | type: tinfo_t const * + | size: int + | + | adjust_libfunc_ea(*args) -> 'ssize_t' + | adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + | + | Parameters + | ---------- + | sig: idasgn_t const & + | libfun: libfunc_t const & + | ea: ea_t * + | + | adjust_refinfo(*args) -> 'ssize_t' + | adjust_refinfo(ri, ea, n, fd) -> ssize_t + | + | Parameters + | ---------- + | ri: refinfo_t * + | ea: ea_t + | n: int + | fd: fixup_data_t const & + | + | ana_insn(*args) -> 'ssize_t' + | ana_insn(out) -> ssize_t + | + | Parameters + | ---------- + | out: insn_t * + | + | analyze_prolog(*args) -> 'ssize_t' + | analyze_prolog(fct_ea) -> ssize_t + | + | Parameters + | ---------- + | fct_ea: ea_t + | + | arch_changed(*args) -> 'ssize_t' + | arch_changed() -> ssize_t + | + | arg_addrs_ready(*args) -> 'ssize_t' + | arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + | + | Parameters + | ---------- + | caller: ea_t + | n: int + | tif: tinfo_t const & + | addrs: ea_t * + | + | asm_installed(*args) -> 'ssize_t' + | asm_installed(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | assemble(*args) -> 'ssize_t' + | assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + | + | Parameters + | ---------- + | _bin: uchar * + | ea: ea_t + | cs: ea_t + | ip: ea_t + | _use32: bool + | line: char const * + | + | auto_queue_empty(*args) -> 'void' + | auto_queue_empty(type) + | + | Parameters + | ---------- + | type: int + | + | calc_arglocs(*args) -> 'ssize_t' + | calc_arglocs(fti) -> ssize_t + | + | Parameters + | ---------- + | fti: func_type_data_t * + | + | calc_cdecl_purged_bytes(*args) -> 'ssize_t' + | calc_cdecl_purged_bytes(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | calc_next_eas(*args) -> 'ssize_t' + | calc_next_eas(res, insn, over) -> ssize_t + | + | Parameters + | ---------- + | res: eavec_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | over: bool + | + | calc_purged_bytes(*args) -> 'ssize_t' + | calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + | + | Parameters + | ---------- + | p_purged_bytes: int * + | fti: func_type_data_t const & + | + | calc_retloc(*args) -> 'ssize_t' + | calc_retloc(retloc, rettype, cc) -> ssize_t + | + | Parameters + | ---------- + | retloc: argloc_t * + | rettype: tinfo_t const & + | cc: cm_t + | + | calc_spdelta(*args) -> 'ssize_t' + | calc_spdelta(spdelta, ins) -> ssize_t + | + | Parameters + | ---------- + | spdelta: sval_t * + | ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | calc_step_over(*args) -> 'ssize_t' + | calc_step_over(target, ip) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ip: ea_t + | + | calc_switch_cases(*args) -> 'ssize_t' + | calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + | + | Parameters + | ---------- + | casevec: void * + | targets: eavec_t * + | insn_ea: ea_t + | si: switch_info_t const & + | + | calc_varglocs(*args) -> 'ssize_t' + | calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + | + | Parameters + | ---------- + | ftd: func_type_data_t * + | regs: regobjs_t * + | stkargs: relobj_t * + | nfixed: int + | + | calcrel(*args) -> 'bytevec_t *, size_t *' + | calcrel(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | can_have_type(*args) -> 'ssize_t' + | can_have_type(op) -> ssize_t + | + | Parameters + | ---------- + | op: op_t const & + | + | clean_tbit(*args) -> 'ssize_t' + | clean_tbit(ea, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | cmp_operands(*args) -> 'ssize_t' + | cmp_operands(op1, op2) -> ssize_t + | + | Parameters + | ---------- + | op1: op_t const & + | op2: op_t const & + | + | coagulate(*args) -> 'ssize_t' + | coagulate(start_ea) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | + | coagulate_dref(*args) -> 'ssize_t' + | coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | may_define: bool + | code_ea: ea_t * + | + | create_flat_group(*args) -> 'ssize_t' + | create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + | + | Parameters + | ---------- + | image_base: ea_t + | bitness: int + | dataseg_sel: sel_t + | + | create_func_frame(*args) -> 'ssize_t' + | create_func_frame(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | create_merge_handlers(*args) -> 'ssize_t' + | create_merge_handlers(md) -> ssize_t + | + | Parameters + | ---------- + | md: merge_data_t * + | + | create_switch_xrefs(*args) -> 'ssize_t' + | create_switch_xrefs(jumpea, si) -> ssize_t + | + | Parameters + | ---------- + | jumpea: ea_t + | si: switch_info_t const & + | + | creating_segm(*args) -> 'ssize_t' + | creating_segm(seg) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | + | decorate_name(*args) -> 'ssize_t' + | decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + | + | Parameters + | ---------- + | outbuf: qstring * + | name: char const * + | mangle: bool + | cc: cm_t + | type: tinfo_t const & + | + | del_cref(*args) -> 'ssize_t' + | del_cref(_from, to, expand) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | expand: bool + | + | del_dref(*args) -> 'ssize_t' + | del_dref(_from, to) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | + | demangle_name(*args) -> 'int' + | demangle_name(res, name, disable_mask, demreq) -> ssize_t + | + | Parameters + | ---------- + | res: int32 * + | name: char const * + | disable_mask: uint32 + | demreq: int + | + | emu_insn(*args) -> 'ssize_t' + | emu_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | endbinary(*args) -> 'ssize_t' + | endbinary(ok) -> ssize_t + | + | Parameters + | ---------- + | ok: bool + | + | equal_reglocs(*args) -> 'ssize_t' + | equal_reglocs(a1, a2) -> ssize_t + | + | Parameters + | ---------- + | a1: argloc_t const & + | a2: argloc_t const & + | + | extract_address(*args) -> 'ssize_t' + | extract_address(out_ea, screen_ea, string, x) -> ssize_t + | + | Parameters + | ---------- + | out_ea: ea_t * + | screen_ea: ea_t + | string: char const * + | x: size_t + | + | find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_op_value(insn, op) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | op: int + | + | find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_reg_value(insn, reg) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | reg: int + | + | func_bounds(*args) -> 'ssize_t' + | func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + | + | Parameters + | ---------- + | possible_return_code: int * + | pfn: func_t * + | max_func_end_ea: ea_t + | + | gen_asm_or_lst(*args) -> 'ssize_t' + | gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + | + | Parameters + | ---------- + | starting: bool + | fp: FILE * + | is_asm: bool + | flags: int + | outline: void * + | + | gen_map_file(*args) -> 'ssize_t' + | gen_map_file(nlines, fp) -> ssize_t + | + | Parameters + | ---------- + | nlines: int * + | fp: FILE * + | + | gen_regvar_def(*args) -> 'ssize_t' + | gen_regvar_def(ctx, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | v: regvar_t * + | + | gen_src_file_lnnum(*args) -> 'ssize_t' + | gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | file: char const * + | lnnum: size_t + | + | gen_stkvar_def(*args) -> 'ssize_t' + | gen_stkvar_def(ctx, mptr, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | mptr: member_t const * + | v: sval_t + | + | get_abi_info(*args) -> 'ssize_t' + | get_abi_info(abi_names, abi_opts, comp) -> ssize_t + | + | Parameters + | ---------- + | abi_names: qstrvec_t * + | abi_opts: qstrvec_t * + | comp: comp_t + | + | get_autocmt(*args) -> 'qstring *' + | get_autocmt(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_bg_color(*args) -> 'ssize_t' + | get_bg_color(color, ea) -> ssize_t + | + | Parameters + | ---------- + | color: bgcolor_t * + | ea: ea_t + | + | get_cc_regs(*args) -> 'ssize_t' + | get_cc_regs(regs, cc) -> ssize_t + | + | Parameters + | ---------- + | regs: callregs_t * + | cc: cm_t + | + | get_code16_mode(*args) -> 'bool' + | get_code16_mode(ea) -> bool + | + | Parameters + | ---------- + | ea: ea_t + | + | get_dbr_opnum(*args) -> 'ssize_t' + | get_dbr_opnum(opnum, insn) -> ssize_t + | + | Parameters + | ---------- + | opnum: int * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_frame_retsize(*args) -> 'ssize_t' + | get_frame_retsize(retsize, pfn) -> ssize_t + | + | Parameters + | ---------- + | retsize: int * + | pfn: func_t const * + | + | get_idd_opinfo(*args) -> 'ssize_t' + | get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | opinf: idd_opinfo_t * + | ea: ea_t + | n: int + | thread_id: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | get_macro_insn_head(*args) -> 'ssize_t' + | get_macro_insn_head(head, ip) -> ssize_t + | + | Parameters + | ---------- + | head: ea_t * + | ip: ea_t + | + | get_operand_string(*args) -> 'qstring *' + | get_operand_string(insn, opnum) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | opnum: int + | + | get_reg_accesses(*args) -> 'ssize_t' + | get_reg_accesses(accvec, insn, flags) -> ssize_t + | + | Parameters + | ---------- + | accvec: reg_accesses_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | flags: int + | + | get_reg_info(*args) -> 'char const *' + | get_reg_info(regname, bitrange) -> char const * + | + | Parameters + | ---------- + | regname: char const * + | bitrange: bitrange_t * + | + | get_reg_name(*args) -> 'qstring *' + | get_reg_name(reg, width, reghi) -> ssize_t + | + | Parameters + | ---------- + | reg: int + | width: size_t + | reghi: int + | + | get_simd_types(*args) -> 'ssize_t' + | get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + | + | Parameters + | ---------- + | out: void * + | simd_attrs: simd_info_t const * + | argloc: argloc_t const * + | create_tifs: bool + | + | get_stkarg_area_info(*args) -> 'ssize_t' + | get_stkarg_area_info(out, cc) -> ssize_t + | + | Parameters + | ---------- + | out: stkarg_area_info_t * + | cc: cm_t + | + | get_stkvar_scale_factor(*args) -> 'ssize_t' + | get_stkvar_scale_factor() -> ssize_t + | + | getreg(*args) -> 'ssize_t' + | getreg(rv, regnum) -> ssize_t + | + | Parameters + | ---------- + | rv: uval_t * + | regnum: int + | + | init(*args) -> 'ssize_t' + | init(idp_modname) -> ssize_t + | + | Parameters + | ---------- + | idp_modname: char const * + | + | insn_reads_tbit(*args) -> 'ssize_t' + | insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | is_align_insn(*args) -> 'ssize_t' + | is_align_insn(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_alloca_probe(*args) -> 'ssize_t' + | is_alloca_probe(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_basic_block_end(*args) -> 'ssize_t' + | is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | call_insn_stops_block: bool + | + | is_call_insn(*args) -> 'ssize_t' + | is_call_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_cond_insn(*args) -> 'ssize_t' + | is_cond_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_control_flow_guard(*args) -> 'ssize_t' + | is_control_flow_guard(p_reg, insn) -> ssize_t + | + | Parameters + | ---------- + | p_reg: int * + | insn: insn_t const * + | + | is_far_jump(*args) -> 'ssize_t' + | is_far_jump(icode) -> ssize_t + | + | Parameters + | ---------- + | icode: int + | + | is_indirect_jump(*args) -> 'ssize_t' + | is_indirect_jump(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_jump_func(*args) -> 'ssize_t' + | is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | jump_target: ea_t * + | func_pointer: ea_t * + | + | is_ret_insn(*args) -> 'ssize_t' + | is_ret_insn(insn, strict) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | strict: bool + | + | is_sane_insn(*args) -> 'ssize_t' + | is_sane_insn(insn, no_crefs) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | no_crefs: int + | + | is_sp_based(*args) -> 'ssize_t' + | is_sp_based(insn, x) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | x: op_t const & + | + | is_switch(*args) -> 'ssize_t' + | is_switch(si, insn) -> ssize_t + | + | Parameters + | ---------- + | si: switch_info_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | loader_elf_machine(*args) -> 'ssize_t' + | loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + | + | Parameters + | ---------- + | li: linput_t * + | machine_type: int + | p_procname: char const ** + | p_pd: proc_def_t ** + | ldr: elf_loader_t * + | reader: reader_t * + | + | lower_func_type(*args) -> 'ssize_t' + | lower_func_type(argnums, fti) -> ssize_t + | + | Parameters + | ---------- + | argnums: intvec_t * + | fti: func_type_data_t * + | + | max_ptr_size(*args) -> 'ssize_t' + | max_ptr_size() -> ssize_t + | + | may_be_func(*args) -> 'ssize_t' + | may_be_func(insn, state) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | state: int + | + | may_show_sreg(*args) -> 'ssize_t' + | may_show_sreg(current_ea) -> ssize_t + | + | Parameters + | ---------- + | current_ea: ea_t + | + | moving_segm(*args) -> 'ssize_t' + | moving_segm(seg, to, flags) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | to: ea_t + | flags: int + | + | newasm(*args) -> 'ssize_t' + | newasm(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | newbinary(*args) -> 'ssize_t' + | newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + | + | Parameters + | ---------- + | filename: char const * + | fileoff: qoff64_t + | basepara: ea_t + | binoff: ea_t + | nbytes: uint64 + | + | newfile(*args) -> 'ssize_t' + | newfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | newprc(*args) -> 'ssize_t' + | newprc(pnum, keep_cfg) -> ssize_t + | + | Parameters + | ---------- + | pnum: int + | keep_cfg: bool + | + | next_exec_insn(*args) -> 'ssize_t' + | next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ea: ea_t + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | notify(*args) -> 'ssize_t' + | notify(event_code) -> ssize_t + | + | Parameters + | ---------- + | event_code: enum processor_t::event_t + | + | oldfile(*args) -> 'ssize_t' + | oldfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | out_assumes(*args) -> 'ssize_t' + | out_assumes(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_data(*args) -> 'ssize_t' + | out_data(ctx, analyze_only) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | analyze_only: bool + | + | out_footer(*args) -> 'ssize_t' + | out_footer(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_header(*args) -> 'ssize_t' + | out_header(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_insn(*args) -> 'ssize_t' + | out_insn(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_label(*args) -> 'ssize_t' + | out_label(ctx, colored_name) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | colored_name: char const * + | + | out_mnem(*args) -> 'ssize_t' + | out_mnem(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_operand(*args) -> 'ssize_t' + | out_operand(ctx, op) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | op: op_t const & + | + | out_segend(*args) -> 'ssize_t' + | out_segend(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_segstart(*args) -> 'ssize_t' + | out_segstart(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_special_item(*args) -> 'ssize_t' + | out_special_item(ctx, segtype) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | segtype: uchar + | + | realcvt(*args) -> 'fpvalue_error_t' + | realcvt(m, e, swt) -> fpvalue_error_t + | + | Parameters + | ---------- + | m: void * + | e: fpvalue_t * + | swt: uint16 + | + | rename(*args) -> 'ssize_t' + | rename(ea, new_name, flags) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | new_name: char const * + | flags: int + | + | set_code16_mode(*args) -> 'ssize_t' + | set_code16_mode(ea, code16=True) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | code16: bool + | + | set_idp_options(*args) -> 'char const *' + | set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + | + | Parameters + | ---------- + | keyword: char const * + | vtype: int + | value: void const * + | idb_loaded: bool + | + | set_proc_options(*args) -> 'ssize_t' + | set_proc_options(options, confidence) -> ssize_t + | + | Parameters + | ---------- + | options: char const * + | confidence: int + | + | setup_til(*args) -> 'ssize_t' + | setup_til() -> ssize_t + | + | str2reg(*args) -> 'ssize_t' + | str2reg(regname) -> ssize_t + | + | Parameters + | ---------- + | regname: char const * + | + | term(*args) -> 'ssize_t' + | term() -> ssize_t + | + | treat_hindering_item(*args) -> 'ssize_t' + | treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + | + | Parameters + | ---------- + | hindering_item_ea: ea_t + | new_item_flags: flags64_t + | new_item_ea: ea_t + | new_item_length: asize_t + | + | undefine(*args) -> 'ssize_t' + | undefine(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | update_call_stack(*args) -> 'ssize_t' + | update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | stack: call_stack_t * + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | use_arg_types(*args) -> 'ssize_t' + | use_arg_types(ea, fti, rargs) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | fti: func_type_data_t * + | rargs: void * + | + | use_regarg_type(*args) -> 'ssize_t' + | use_regarg_type(idx, ea, rargs) -> ssize_t + | + | Parameters + | ---------- + | idx: int * + | ea: ea_t + | rargs: void * + | + | use_stkarg_type(*args) -> 'ssize_t' + | use_stkarg_type(ea, arg) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | arg: funcarg_t const & + | + | validate_flirt_func(*args) -> 'ssize_t' + | validate_flirt_func(start_ea, funcname) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | funcname: char const * + | + | verify_noreturn(*args) -> 'ssize_t' + | verify_noreturn(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | verify_sp(*args) -> 'ssize_t' + | verify_sp(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_add_cref = 64 + | + | ev_add_dref = 65 + | + | ev_adjust_argloc = 2013 + | + | ev_adjust_libfunc_ea = 73 + | + | ev_adjust_refinfo = 50 + | + | ev_ana_insn = 10 + | + | ev_analyze_prolog = 81 + | + | ev_arch_changed = 2021 + | + | ev_arg_addrs_ready = 2019 + | + | ev_asm_installed = 91 + | + | ev_assemble = 74 + | + | ev_auto_queue_empty = 71 + | + | ev_broadcast = 94 + | + | ev_calc_arglocs = 2011 + | + | ev_calc_cdecl_purged_bytes = 2008 + | + | ev_calc_next_eas = 1002 + | + | ev_calc_purged_bytes = 2009 + | + | ev_calc_retloc = 2010 + | + | ev_calc_spdelta = 82 + | + | ev_calc_step_over = 1001 + | + | ev_calc_switch_cases = 42 + | + | ev_calc_varglocs = 2012 + | + | ev_calcrel = 83 + | + | ev_can_have_type = 48 + | + | ev_clean_tbit = 1006 + | + | ev_cmp_operands = 49 + | + | ev_coagulate = 28 + | + | ev_coagulate_dref = 68 + | + | ev_create_flat_group = 79 + | + | ev_create_func_frame = 60 + | + | ev_create_merge_handlers = 95 + | + | ev_create_switch_xrefs = 43 + | + | ev_creating_segm = 26 + | + | ev_decorate_name = 2020 + | + | ev_del_cref = 66 + | + | ev_del_dref = 67 + | + | ev_delay_slot_insn = 46 + | + | ev_demangle_name = 63 + | + | ev_emu_insn = 11 + | + | ev_endbinary = 7 + | + | ev_ending_undo = 87 + | + | ev_equal_reglocs = 2015 + | + | ev_extract_address = 75 + | + | ev_find_op_value = 85 + | + | ev_find_reg_value = 84 + | + | ev_func_bounds = 57 + | + | ev_gen_asm_or_lst = 77 + | + | ev_gen_map_file = 78 + | + | ev_gen_regvar_def = 24 + | + | ev_gen_src_file_lnnum = 25 + | + | ev_gen_stkvar_def = 23 + | + | ev_get_abi_info = 2001 + | + | ev_get_autocmt = 54 + | + | ev_get_bg_color = 55 + | + | ev_get_cc_regs = 2004 + | + | ev_get_code16_mode = 89 + | + | ev_get_dbr_opnum = 1004 + | + | ev_get_default_enum_size = 2003 + | + | ev_get_frame_retsize = 61 + | + | ev_get_idd_opinfo = 1007 + | + | ev_get_macro_insn_head = 1003 + | + | ev_get_operand_string = 51 + | + | ev_get_procmod = 90 + | + | ev_get_reg_accesses = 92 + | + | ev_get_reg_info = 1008 + | + | ev_get_reg_name = 52 + | + | ev_get_simd_types = 2007 + | + | ev_get_stkarg_area_info = 2022 + | + | ev_get_stkvar_scale_factor = 62 + | + | ev_getreg = 80 + | + | ev_init = 0 + | + | ev_insn_reads_tbit = 1005 + | + | ev_is_align_insn = 44 + | + | ev_is_alloca_probe = 45 + | + | ev_is_basic_block_end = 38 + | + | ev_is_call_insn = 35 + | + | ev_is_cond_insn = 34 + | + | ev_is_control_flow_guard = 93 + | + | ev_is_far_jump = 32 + | + | ev_is_indirect_jump = 39 + | + | ev_is_insn_table_jump = 40 + | + | ev_is_jump_func = 56 + | + | ev_is_ret_insn = 36 + | + | ev_is_sane_insn = 33 + | + | ev_is_sp_based = 47 + | + | ev_is_switch = 41 + | + | ev_last_cb_before_debugger = 97 + | + | ev_last_cb_before_loader = 2023 + | + | ev_last_cb_before_type_callbacks = 1010 + | + | ev_loader = 3000 + | + | ev_loader_elf_machine = 70 + | + | ev_lower_func_type = 2014 + | + | ev_max_ptr_size = 2002 + | + | ev_may_be_func = 37 + | + | ev_may_show_sreg = 69 + | + | ev_moving_segm = 27 + | + | ev_newasm = 3 + | + | ev_newbinary = 6 + | + | ev_newfile = 4 + | + | ev_newprc = 2 + | + | ev_next_exec_insn = 1000 + | + | ev_obsolete1 = 2005 + | + | ev_obsolete2 = 2006 + | + | ev_oldfile = 5 + | + | ev_out_assumes = 16 + | + | ev_out_data = 20 + | + | ev_out_footer = 13 + | + | ev_out_header = 12 + | + | ev_out_insn = 17 + | + | ev_out_label = 21 + | + | ev_out_mnem = 18 + | + | ev_out_operand = 19 + | + | ev_out_segend = 15 + | + | ev_out_segstart = 14 + | + | ev_out_special_item = 22 + | + | ev_privrange_changed = 96 + | + | ev_realcvt = 76 + | + | ev_rename = 31 + | + | ev_replaying_undo = 86 + | + | ev_set_code16_mode = 88 + | + | ev_set_idp_options = 8 + | + | ev_set_proc_options = 9 + | + | ev_setup_til = 2000 + | + | ev_str2reg = 53 + | + | ev_term = 1 + | + | ev_treat_hindering_item = 30 + | + | ev_undefine = 29 + | + | ev_update_call_stack = 1009 + | + | ev_use_arg_types = 2018 + | + | ev_use_regarg_type = 2017 + | + | ev_use_stkarg_type = 2016 + | + | ev_validate_flirt_func = 72 + | + | ev_verify_noreturn = 59 + | + | ev_verify_sp = 58 + Help on class _processor_t_Trampoline_IDB_Hooks in module ida_idp: class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) @@ -41432,7 +52027,10 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | Methods defined here: | | __init__(self, proc) - | __init__(self, _flags=0) -> IDB_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) | @@ -41448,8 +52046,18 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | | allsegs_moved(self, *args) -> 'void' | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' | auto_empty(self) @@ -41458,283 +52066,727 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | auto_empty_finally(self) | | bookmark_changed(self, *args) -> 'void' - | bookmark_changed(self, index, pos, desc) + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. | | byte_patched(self, *args) -> 'void' | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) | | callee_addr_changed(self, *args) -> 'void' | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) | | changing_cmt(self, *args) -> 'void' | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) | | changing_enum_bf(self, *args) -> 'void' | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) | | changing_enum_cmt(self, *args) -> 'void' | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_op_ti(self, *args) -> 'void' | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | changing_op_type(self, *args) -> 'void' | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info | | changing_range_cmt(self, *args) -> 'void' | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | changing_segm_class(self, *args) -> 'void' | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) | | changing_segm_end(self, *args) -> 'void' | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) | | changing_segm_name(self, *args) -> 'void' | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) | | changing_segm_start(self, *args) -> 'void' | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) | | changing_struc_align(self, *args) -> 'void' | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) | | changing_struc_cmt(self, *args) -> 'void' | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) | | changing_struc_member(self, *args) -> 'void' | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) | | changing_ti(self, *args) -> 'void' | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) | | closebase(self, *args) -> 'void' | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? | | deleting_enum(self, *args) -> 'void' | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) | | deleting_enum_member(self, *args) -> 'void' | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) | | deleting_func(self, *args) -> 'void' | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) | | deleting_func_tail(self, *args) -> 'void' | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) | | deleting_segm(self, *args) -> 'void' | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) | | deleting_struc(self, *args) -> 'void' | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) | | deleting_struc_member(self, *args) -> 'void' | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | deleting_tryblks(self, *args) -> 'void' | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) | | destroyed_items(self, *args) -> 'void' | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) | | determined_main(self, *args) -> 'void' | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function + | + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) | | enum_bf_changed(self, *args) -> 'void' | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) | | enum_cmt_changed(self, *args) -> 'void' | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) | | enum_created(self, *args) -> 'void' | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) | | enum_deleted(self, *args) -> 'void' | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) | | enum_member_created(self, *args) -> 'void' | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) | | enum_member_deleted(self, *args) -> 'void' | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) | | enum_renamed(self, *args) -> 'void' | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) | | expanding_struc(self, *args) -> 'void' | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) | | extlang_changed(self, *args) -> 'void' | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index | | extra_cmt_changed(self, *args) -> 'void' | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) | | flow_chart_created(self, *args) -> 'void' | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) | | func_added(self, *args) -> 'void' | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) | | func_noret_changed(self, *args) -> 'void' | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) | | func_tail_appended(self, *args) -> 'void' | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) | | func_tail_deleted(self, *args) -> 'void' | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) | | func_updated(self, *args) -> 'void' | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) | | item_color_changed(self, *args) -> 'void' | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) | | loader_finished(self, *args) -> 'void' | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) | | local_types_changed(self, *args) -> 'void' | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) | | make_data(self, *args) -> 'void' | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) | | op_ti_changed(self, *args) -> 'void' | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | op_type_changed(self, *args) -> 'void' | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL | | range_cmt_changed(self, *args) -> 'void' | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) | | renamed(self, *args) -> 'void' - | renamed(self, ea, new_name, local_name) + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr | | renaming_enum(self, *args) -> 'void' | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) | | renaming_struc(self, *args) -> 'void' | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) | | renaming_struc_member(self, *args) -> 'void' | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) | | savebase(self, *args) -> 'void' | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm | | segm_attrs_updated(self, *args) -> 'void' | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) | | segm_class_changed(self, *args) -> 'void' | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) | | segm_deleted(self, *args) -> 'void' - | segm_deleted(self, start_ea, end_ea) + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) | | segm_end_changed(self, *args) -> 'void' | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) | | segm_moved(self, *args) -> 'void' | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved | | segm_name_changed(self, *args) -> 'void' | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) | | segm_start_changed(self, *args) -> 'void' | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) | | set_func_end(self, *args) -> 'void' | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) | | set_func_start(self, *args) -> 'void' | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) | | sgr_changed(self, *args) -> 'void' | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags | | sgr_deleted(self, *args) -> 'void' | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) | | stkpnts_changed(self, *args) -> 'void' | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) | | struc_align_changed(self, *args) -> 'void' | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) | | struc_cmt_changed(self, *args) -> 'void' | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) | | struc_created(self, *args) -> 'void' | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) | | struc_deleted(self, *args) -> 'void' | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) | | struc_expanded(self, *args) -> 'void' | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) | | struc_member_changed(self, *args) -> 'void' | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_created(self, *args) -> 'void' | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_member_deleted(self, *args) -> 'void' | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) | | struc_member_renamed(self, *args) -> 'void' | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) | | struc_renamed(self, *args) -> 'void' - | struc_renamed(self, sptr) + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed | | tail_owner_changed(self, *args) -> 'void' | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) | | thunk_func_created(self, *args) -> 'void' | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) | | ti_changed(self, *args) -> 'void' | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) | | tryblks_updated(self, *args) -> 'void' | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) | | upgraded(self, *args) -> 'void' | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -41748,6 +52800,1222 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | thisown | The membership flag +Help on function _processor_t_add_cref in module ida_idp: + +_processor_t_add_cref(*args) -> 'ssize_t' + _processor_t_add_cref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum cref_t + +Help on function _processor_t_add_dref in module ida_idp: + +_processor_t_add_dref(*args) -> 'ssize_t' + _processor_t_add_dref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum dref_t + +Help on function _processor_t_adjust_argloc in module ida_idp: + +_processor_t_adjust_argloc(*args) -> 'ssize_t' + _processor_t_adjust_argloc(argloc, type, size) -> ssize_t + + Parameters + ---------- + argloc: argloc_t * + type: tinfo_t const * + size: int + +Help on function _processor_t_adjust_libfunc_ea in module ida_idp: + +_processor_t_adjust_libfunc_ea(*args) -> 'ssize_t' + _processor_t_adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + + Parameters + ---------- + sig: idasgn_t const & + libfun: libfunc_t const & + ea: ea_t * + +Help on function _processor_t_adjust_refinfo in module ida_idp: + +_processor_t_adjust_refinfo(*args) -> 'ssize_t' + _processor_t_adjust_refinfo(ri, ea, n, fd) -> ssize_t + + Parameters + ---------- + ri: refinfo_t * + ea: ea_t + n: int + fd: fixup_data_t const & + +Help on function _processor_t_ana_insn in module ida_idp: + +_processor_t_ana_insn(*args) -> 'ssize_t' + _processor_t_ana_insn(out) -> ssize_t + + Parameters + ---------- + out: insn_t * + +Help on function _processor_t_analyze_prolog in module ida_idp: + +_processor_t_analyze_prolog(*args) -> 'ssize_t' + _processor_t_analyze_prolog(fct_ea) -> ssize_t + + Parameters + ---------- + fct_ea: ea_t + +Help on function _processor_t_arch_changed in module ida_idp: + +_processor_t_arch_changed(*args) -> 'ssize_t' + _processor_t_arch_changed() -> ssize_t + +Help on function _processor_t_arg_addrs_ready in module ida_idp: + +_processor_t_arg_addrs_ready(*args) -> 'ssize_t' + _processor_t_arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + + Parameters + ---------- + caller: ea_t + n: int + tif: tinfo_t const & + addrs: ea_t * + +Help on function _processor_t_asm_installed in module ida_idp: + +_processor_t_asm_installed(*args) -> 'ssize_t' + _processor_t_asm_installed(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_assemble in module ida_idp: + +_processor_t_assemble(*args) -> 'ssize_t' + _processor_t_assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + + Parameters + ---------- + _bin: uchar * + ea: ea_t + cs: ea_t + ip: ea_t + _use32: bool + line: char const * + +Help on function _processor_t_auto_queue_empty in module ida_idp: + +_processor_t_auto_queue_empty(*args) -> 'void' + _processor_t_auto_queue_empty(type) + + Parameters + ---------- + type: int + +Help on function _processor_t_calc_arglocs in module ida_idp: + +_processor_t_calc_arglocs(*args) -> 'ssize_t' + _processor_t_calc_arglocs(fti) -> ssize_t + + Parameters + ---------- + fti: func_type_data_t * + +Help on function _processor_t_calc_cdecl_purged_bytes in module ida_idp: + +_processor_t_calc_cdecl_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_cdecl_purged_bytes(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_calc_next_eas in module ida_idp: + +_processor_t_calc_next_eas(*args) -> 'ssize_t' + _processor_t_calc_next_eas(res, insn, over) -> ssize_t + + Parameters + ---------- + res: eavec_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + over: bool + +Help on function _processor_t_calc_purged_bytes in module ida_idp: + +_processor_t_calc_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + + Parameters + ---------- + p_purged_bytes: int * + fti: func_type_data_t const & + +Help on function _processor_t_calc_retloc in module ida_idp: + +_processor_t_calc_retloc(*args) -> 'ssize_t' + _processor_t_calc_retloc(retloc, rettype, cc) -> ssize_t + + Parameters + ---------- + retloc: argloc_t * + rettype: tinfo_t const & + cc: cm_t + +Help on function _processor_t_calc_spdelta in module ida_idp: + +_processor_t_calc_spdelta(*args) -> 'ssize_t' + _processor_t_calc_spdelta(spdelta, ins) -> ssize_t + + Parameters + ---------- + spdelta: sval_t * + ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_calc_step_over in module ida_idp: + +_processor_t_calc_step_over(*args) -> 'ssize_t' + _processor_t_calc_step_over(target, ip) -> ssize_t + + Parameters + ---------- + target: ea_t * + ip: ea_t + +Help on function _processor_t_calc_switch_cases in module ida_idp: + +_processor_t_calc_switch_cases(*args) -> 'ssize_t' + _processor_t_calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + + Parameters + ---------- + casevec: void * + targets: eavec_t * + insn_ea: ea_t + si: switch_info_t const & + +Help on function _processor_t_calc_varglocs in module ida_idp: + +_processor_t_calc_varglocs(*args) -> 'ssize_t' + _processor_t_calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + + Parameters + ---------- + ftd: func_type_data_t * + regs: regobjs_t * + stkargs: relobj_t * + nfixed: int + +Help on function _processor_t_calcrel in module ida_idp: + +_processor_t_calcrel(*args) -> 'bytevec_t *, size_t *' + _processor_t_calcrel(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_can_have_type in module ida_idp: + +_processor_t_can_have_type(*args) -> 'ssize_t' + _processor_t_can_have_type(op) -> ssize_t + + Parameters + ---------- + op: op_t const & + +Help on function _processor_t_clean_tbit in module ida_idp: + +_processor_t_clean_tbit(*args) -> 'ssize_t' + _processor_t_clean_tbit(ea, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + ea: ea_t + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_cmp_operands in module ida_idp: + +_processor_t_cmp_operands(*args) -> 'ssize_t' + _processor_t_cmp_operands(op1, op2) -> ssize_t + + Parameters + ---------- + op1: op_t const & + op2: op_t const & + +Help on function _processor_t_coagulate in module ida_idp: + +_processor_t_coagulate(*args) -> 'ssize_t' + _processor_t_coagulate(start_ea) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + +Help on function _processor_t_coagulate_dref in module ida_idp: + +_processor_t_coagulate_dref(*args) -> 'ssize_t' + _processor_t_coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + may_define: bool + code_ea: ea_t * + +Help on function _processor_t_create_flat_group in module ida_idp: + +_processor_t_create_flat_group(*args) -> 'ssize_t' + _processor_t_create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + + Parameters + ---------- + image_base: ea_t + bitness: int + dataseg_sel: sel_t + +Help on function _processor_t_create_func_frame in module ida_idp: + +_processor_t_create_func_frame(*args) -> 'ssize_t' + _processor_t_create_func_frame(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_create_merge_handlers in module ida_idp: + +_processor_t_create_merge_handlers(*args) -> 'ssize_t' + _processor_t_create_merge_handlers(md) -> ssize_t + + Parameters + ---------- + md: merge_data_t * + +Help on function _processor_t_create_switch_xrefs in module ida_idp: + +_processor_t_create_switch_xrefs(*args) -> 'ssize_t' + _processor_t_create_switch_xrefs(jumpea, si) -> ssize_t + + Parameters + ---------- + jumpea: ea_t + si: switch_info_t const & + +Help on function _processor_t_creating_segm in module ida_idp: + +_processor_t_creating_segm(*args) -> 'ssize_t' + _processor_t_creating_segm(seg) -> ssize_t + + Parameters + ---------- + seg: segment_t * + +Help on function _processor_t_decorate_name in module ida_idp: + +_processor_t_decorate_name(*args) -> 'ssize_t' + _processor_t_decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + + Parameters + ---------- + outbuf: qstring * + name: char const * + mangle: bool + cc: cm_t + type: tinfo_t const & + +Help on function _processor_t_del_cref in module ida_idp: + +_processor_t_del_cref(*args) -> 'ssize_t' + _processor_t_del_cref(_from, to, expand) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + expand: bool + +Help on function _processor_t_del_dref in module ida_idp: + +_processor_t_del_dref(*args) -> 'ssize_t' + _processor_t_del_dref(_from, to) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + +Help on function _processor_t_demangle_name in module ida_idp: + +_processor_t_demangle_name(*args) -> 'int' + _processor_t_demangle_name(res, name, disable_mask, demreq) -> ssize_t + + Parameters + ---------- + res: int32 * + name: char const * + disable_mask: uint32 + demreq: int + +Help on function _processor_t_emu_insn in module ida_idp: + +_processor_t_emu_insn(*args) -> 'ssize_t' + _processor_t_emu_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_endbinary in module ida_idp: + +_processor_t_endbinary(*args) -> 'ssize_t' + _processor_t_endbinary(ok) -> ssize_t + + Parameters + ---------- + ok: bool + +Help on function _processor_t_equal_reglocs in module ida_idp: + +_processor_t_equal_reglocs(*args) -> 'ssize_t' + _processor_t_equal_reglocs(a1, a2) -> ssize_t + + Parameters + ---------- + a1: argloc_t const & + a2: argloc_t const & + +Help on function _processor_t_extract_address in module ida_idp: + +_processor_t_extract_address(*args) -> 'ssize_t' + _processor_t_extract_address(out_ea, screen_ea, string, x) -> ssize_t + + Parameters + ---------- + out_ea: ea_t * + screen_ea: ea_t + string: char const * + x: size_t + +Help on function _processor_t_find_op_value in module ida_idp: + +_processor_t_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_op_value(insn, op) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + op: int + +Help on function _processor_t_find_reg_value in module ida_idp: + +_processor_t_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_reg_value(insn, reg) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + reg: int + +Help on function _processor_t_func_bounds in module ida_idp: + +_processor_t_func_bounds(*args) -> 'ssize_t' + _processor_t_func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + + Parameters + ---------- + possible_return_code: int * + pfn: func_t * + max_func_end_ea: ea_t + +Help on function _processor_t_gen_asm_or_lst in module ida_idp: + +_processor_t_gen_asm_or_lst(*args) -> 'ssize_t' + _processor_t_gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + + Parameters + ---------- + starting: bool + fp: FILE * + is_asm: bool + flags: int + outline: void * + +Help on function _processor_t_gen_map_file in module ida_idp: + +_processor_t_gen_map_file(*args) -> 'ssize_t' + _processor_t_gen_map_file(nlines, fp) -> ssize_t + + Parameters + ---------- + nlines: int * + fp: FILE * + +Help on function _processor_t_gen_regvar_def in module ida_idp: + +_processor_t_gen_regvar_def(*args) -> 'ssize_t' + _processor_t_gen_regvar_def(ctx, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + v: regvar_t * + +Help on function _processor_t_gen_src_file_lnnum in module ida_idp: + +_processor_t_gen_src_file_lnnum(*args) -> 'ssize_t' + _processor_t_gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + file: char const * + lnnum: size_t + +Help on function _processor_t_gen_stkvar_def in module ida_idp: + +_processor_t_gen_stkvar_def(*args) -> 'ssize_t' + _processor_t_gen_stkvar_def(ctx, mptr, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + mptr: member_t const * + v: sval_t + +Help on function _processor_t_get_abi_info in module ida_idp: + +_processor_t_get_abi_info(*args) -> 'ssize_t' + _processor_t_get_abi_info(abi_names, abi_opts, comp) -> ssize_t + + Parameters + ---------- + abi_names: qstrvec_t * + abi_opts: qstrvec_t * + comp: comp_t + +Help on function _processor_t_get_autocmt in module ida_idp: + +_processor_t_get_autocmt(*args) -> 'qstring *' + _processor_t_get_autocmt(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_bg_color in module ida_idp: + +_processor_t_get_bg_color(*args) -> 'ssize_t' + _processor_t_get_bg_color(color, ea) -> ssize_t + + Parameters + ---------- + color: bgcolor_t * + ea: ea_t + +Help on function _processor_t_get_cc_regs in module ida_idp: + +_processor_t_get_cc_regs(*args) -> 'ssize_t' + _processor_t_get_cc_regs(regs, cc) -> ssize_t + + Parameters + ---------- + regs: callregs_t * + cc: cm_t + +Help on function _processor_t_get_code16_mode in module ida_idp: + +_processor_t_get_code16_mode(*args) -> 'bool' + _processor_t_get_code16_mode(ea) -> bool + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_get_dbr_opnum in module ida_idp: + +_processor_t_get_dbr_opnum(*args) -> 'ssize_t' + _processor_t_get_dbr_opnum(opnum, insn) -> ssize_t + + Parameters + ---------- + opnum: int * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_frame_retsize in module ida_idp: + +_processor_t_get_frame_retsize(*args) -> 'ssize_t' + _processor_t_get_frame_retsize(retsize, pfn) -> ssize_t + + Parameters + ---------- + retsize: int * + pfn: func_t const * + +Help on function _processor_t_get_idd_opinfo in module ida_idp: + +_processor_t_get_idd_opinfo(*args) -> 'ssize_t' + _processor_t_get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + opinf: idd_opinfo_t * + ea: ea_t + n: int + thread_id: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_get_macro_insn_head in module ida_idp: + +_processor_t_get_macro_insn_head(*args) -> 'ssize_t' + _processor_t_get_macro_insn_head(head, ip) -> ssize_t + + Parameters + ---------- + head: ea_t * + ip: ea_t + +Help on function _processor_t_get_operand_string in module ida_idp: + +_processor_t_get_operand_string(*args) -> 'qstring *' + _processor_t_get_operand_string(insn, opnum) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + opnum: int + +Help on function _processor_t_get_reg_accesses in module ida_idp: + +_processor_t_get_reg_accesses(*args) -> 'ssize_t' + _processor_t_get_reg_accesses(accvec, insn, flags) -> ssize_t + + Parameters + ---------- + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + flags: int + +Help on function _processor_t_get_reg_info in module ida_idp: + +_processor_t_get_reg_info(*args) -> 'char const *' + _processor_t_get_reg_info(regname, bitrange) -> char const * + + Parameters + ---------- + regname: char const * + bitrange: bitrange_t * + +Help on function _processor_t_get_reg_name in module ida_idp: + +_processor_t_get_reg_name(*args) -> 'qstring *' + _processor_t_get_reg_name(reg, width, reghi) -> ssize_t + + Parameters + ---------- + reg: int + width: size_t + reghi: int + +Help on function _processor_t_get_simd_types in module ida_idp: + +_processor_t_get_simd_types(*args) -> 'ssize_t' + _processor_t_get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + + Parameters + ---------- + out: void * + simd_attrs: simd_info_t const * + argloc: argloc_t const * + create_tifs: bool + +Help on function _processor_t_get_stkarg_area_info in module ida_idp: + +_processor_t_get_stkarg_area_info(*args) -> 'ssize_t' + _processor_t_get_stkarg_area_info(out, cc) -> ssize_t + + Parameters + ---------- + out: stkarg_area_info_t * + cc: cm_t + +Help on function _processor_t_get_stkvar_scale_factor in module ida_idp: + +_processor_t_get_stkvar_scale_factor(*args) -> 'ssize_t' + _processor_t_get_stkvar_scale_factor() -> ssize_t + +Help on function _processor_t_getreg in module ida_idp: + +_processor_t_getreg(*args) -> 'ssize_t' + _processor_t_getreg(rv, regnum) -> ssize_t + + Parameters + ---------- + rv: uval_t * + regnum: int + +Help on function _processor_t_init in module ida_idp: + +_processor_t_init(*args) -> 'ssize_t' + _processor_t_init(idp_modname) -> ssize_t + + Parameters + ---------- + idp_modname: char const * + +Help on function _processor_t_insn_reads_tbit in module ida_idp: + +_processor_t_insn_reads_tbit(*args) -> 'ssize_t' + _processor_t_insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_is_align_insn in module ida_idp: + +_processor_t_is_align_insn(*args) -> 'ssize_t' + _processor_t_is_align_insn(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_alloca_probe in module ida_idp: + +_processor_t_is_alloca_probe(*args) -> 'ssize_t' + _processor_t_is_alloca_probe(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_basic_block_end in module ida_idp: + +_processor_t_is_basic_block_end(*args) -> 'ssize_t' + _processor_t_is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + call_insn_stops_block: bool + +Help on function _processor_t_is_call_insn in module ida_idp: + +_processor_t_is_call_insn(*args) -> 'ssize_t' + _processor_t_is_call_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_cond_insn in module ida_idp: + +_processor_t_is_cond_insn(*args) -> 'ssize_t' + _processor_t_is_cond_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_control_flow_guard in module ida_idp: + +_processor_t_is_control_flow_guard(*args) -> 'ssize_t' + _processor_t_is_control_flow_guard(p_reg, insn) -> ssize_t + + Parameters + ---------- + p_reg: int * + insn: insn_t const * + +Help on function _processor_t_is_far_jump in module ida_idp: + +_processor_t_is_far_jump(*args) -> 'ssize_t' + _processor_t_is_far_jump(icode) -> ssize_t + + Parameters + ---------- + icode: int + +Help on function _processor_t_is_indirect_jump in module ida_idp: + +_processor_t_is_indirect_jump(*args) -> 'ssize_t' + _processor_t_is_indirect_jump(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_jump_func in module ida_idp: + +_processor_t_is_jump_func(*args) -> 'ssize_t' + _processor_t_is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + + Parameters + ---------- + pfn: func_t * + jump_target: ea_t * + func_pointer: ea_t * + +Help on function _processor_t_is_ret_insn in module ida_idp: + +_processor_t_is_ret_insn(*args) -> 'ssize_t' + _processor_t_is_ret_insn(insn, strict) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + strict: bool + +Help on function _processor_t_is_sane_insn in module ida_idp: + +_processor_t_is_sane_insn(*args) -> 'ssize_t' + _processor_t_is_sane_insn(insn, no_crefs) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + no_crefs: int + +Help on function _processor_t_is_sp_based in module ida_idp: + +_processor_t_is_sp_based(*args) -> 'ssize_t' + _processor_t_is_sp_based(insn, x) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + +Help on function _processor_t_is_switch in module ida_idp: + +_processor_t_is_switch(*args) -> 'ssize_t' + _processor_t_is_switch(si, insn) -> ssize_t + + Parameters + ---------- + si: switch_info_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_loader_elf_machine in module ida_idp: + +_processor_t_loader_elf_machine(*args) -> 'ssize_t' + _processor_t_loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + + Parameters + ---------- + li: linput_t * + machine_type: int + p_procname: char const ** + p_pd: proc_def_t ** + ldr: elf_loader_t * + reader: reader_t * + +Help on function _processor_t_lower_func_type in module ida_idp: + +_processor_t_lower_func_type(*args) -> 'ssize_t' + _processor_t_lower_func_type(argnums, fti) -> ssize_t + + Parameters + ---------- + argnums: intvec_t * + fti: func_type_data_t * + +Help on function _processor_t_max_ptr_size in module ida_idp: + +_processor_t_max_ptr_size(*args) -> 'ssize_t' + _processor_t_max_ptr_size() -> ssize_t + +Help on function _processor_t_may_be_func in module ida_idp: + +_processor_t_may_be_func(*args) -> 'ssize_t' + _processor_t_may_be_func(insn, state) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + state: int + +Help on function _processor_t_may_show_sreg in module ida_idp: + +_processor_t_may_show_sreg(*args) -> 'ssize_t' + _processor_t_may_show_sreg(current_ea) -> ssize_t + + Parameters + ---------- + current_ea: ea_t + +Help on function _processor_t_moving_segm in module ida_idp: + +_processor_t_moving_segm(*args) -> 'ssize_t' + _processor_t_moving_segm(seg, to, flags) -> ssize_t + + Parameters + ---------- + seg: segment_t * + to: ea_t + flags: int + +Help on function _processor_t_newasm in module ida_idp: + +_processor_t_newasm(*args) -> 'ssize_t' + _processor_t_newasm(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_newbinary in module ida_idp: + +_processor_t_newbinary(*args) -> 'ssize_t' + _processor_t_newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + + Parameters + ---------- + filename: char const * + fileoff: qoff64_t + basepara: ea_t + binoff: ea_t + nbytes: uint64 + +Help on function _processor_t_newfile in module ida_idp: + +_processor_t_newfile(*args) -> 'ssize_t' + _processor_t_newfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_newprc in module ida_idp: + +_processor_t_newprc(*args) -> 'ssize_t' + _processor_t_newprc(pnum, keep_cfg) -> ssize_t + + Parameters + ---------- + pnum: int + keep_cfg: bool + +Help on function _processor_t_next_exec_insn in module ida_idp: + +_processor_t_next_exec_insn(*args) -> 'ssize_t' + _processor_t_next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + target: ea_t * + ea: ea_t + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_notify in module ida_idp: + +_processor_t_notify(*args) -> 'ssize_t' + _processor_t_notify(event_code) -> ssize_t + + Parameters + ---------- + event_code: enum processor_t::event_t + +Help on function _processor_t_oldfile in module ida_idp: + +_processor_t_oldfile(*args) -> 'ssize_t' + _processor_t_oldfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_out_assumes in module ida_idp: + +_processor_t_out_assumes(*args) -> 'ssize_t' + _processor_t_out_assumes(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_data in module ida_idp: + +_processor_t_out_data(*args) -> 'ssize_t' + _processor_t_out_data(ctx, analyze_only) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + analyze_only: bool + +Help on function _processor_t_out_footer in module ida_idp: + +_processor_t_out_footer(*args) -> 'ssize_t' + _processor_t_out_footer(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_header in module ida_idp: + +_processor_t_out_header(*args) -> 'ssize_t' + _processor_t_out_header(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_insn in module ida_idp: + +_processor_t_out_insn(*args) -> 'ssize_t' + _processor_t_out_insn(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_label in module ida_idp: + +_processor_t_out_label(*args) -> 'ssize_t' + _processor_t_out_label(ctx, colored_name) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + colored_name: char const * + +Help on function _processor_t_out_mnem in module ida_idp: + +_processor_t_out_mnem(*args) -> 'ssize_t' + _processor_t_out_mnem(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_operand in module ida_idp: + +_processor_t_out_operand(*args) -> 'ssize_t' + _processor_t_out_operand(ctx, op) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + op: op_t const & + +Help on function _processor_t_out_segend in module ida_idp: + +_processor_t_out_segend(*args) -> 'ssize_t' + _processor_t_out_segend(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_segstart in module ida_idp: + +_processor_t_out_segstart(*args) -> 'ssize_t' + _processor_t_out_segstart(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_special_item in module ida_idp: + +_processor_t_out_special_item(*args) -> 'ssize_t' + _processor_t_out_special_item(ctx, segtype) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + segtype: uchar + +Help on function _processor_t_realcvt in module ida_idp: + +_processor_t_realcvt(*args) -> 'fpvalue_error_t' + _processor_t_realcvt(m, e, swt) -> fpvalue_error_t + + Parameters + ---------- + m: void * + e: fpvalue_t * + swt: uint16 + +Help on function _processor_t_rename in module ida_idp: + +_processor_t_rename(*args) -> 'ssize_t' + _processor_t_rename(ea, new_name, flags) -> ssize_t + + Parameters + ---------- + ea: ea_t + new_name: char const * + flags: int + +Help on function _processor_t_set_code16_mode in module ida_idp: + +_processor_t_set_code16_mode(*args) -> 'ssize_t' + _processor_t_set_code16_mode(ea, code16=True) -> ssize_t + + Parameters + ---------- + ea: ea_t + code16: bool + +Help on function _processor_t_set_idp_options in module ida_idp: + +_processor_t_set_idp_options(*args) -> 'char const *' + _processor_t_set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + + Parameters + ---------- + keyword: char const * + vtype: int + value: void const * + idb_loaded: bool + +Help on function _processor_t_set_proc_options in module ida_idp: + +_processor_t_set_proc_options(*args) -> 'ssize_t' + _processor_t_set_proc_options(options, confidence) -> ssize_t + + Parameters + ---------- + options: char const * + confidence: int + +Help on function _processor_t_setup_til in module ida_idp: + +_processor_t_setup_til(*args) -> 'ssize_t' + _processor_t_setup_til() -> ssize_t + +Help on function _processor_t_str2reg in module ida_idp: + +_processor_t_str2reg(*args) -> 'ssize_t' + _processor_t_str2reg(regname) -> ssize_t + + Parameters + ---------- + regname: char const * + +Help on function _processor_t_term in module ida_idp: + +_processor_t_term(*args) -> 'ssize_t' + _processor_t_term() -> ssize_t + +Help on function _processor_t_treat_hindering_item in module ida_idp: + +_processor_t_treat_hindering_item(*args) -> 'ssize_t' + _processor_t_treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + + Parameters + ---------- + hindering_item_ea: ea_t + new_item_flags: flags64_t + new_item_ea: ea_t + new_item_length: asize_t + +Help on function _processor_t_undefine in module ida_idp: + +_processor_t_undefine(*args) -> 'ssize_t' + _processor_t_undefine(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_update_call_stack in module ida_idp: + +_processor_t_update_call_stack(*args) -> 'ssize_t' + _processor_t_update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + stack: call_stack_t * + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_use_arg_types in module ida_idp: + +_processor_t_use_arg_types(*args) -> 'ssize_t' + _processor_t_use_arg_types(ea, fti, rargs) -> ssize_t + + Parameters + ---------- + ea: ea_t + fti: func_type_data_t * + rargs: void * + +Help on function _processor_t_use_regarg_type in module ida_idp: + +_processor_t_use_regarg_type(*args) -> 'ssize_t' + _processor_t_use_regarg_type(idx, ea, rargs) -> ssize_t + + Parameters + ---------- + idx: int * + ea: ea_t + rargs: void * + +Help on function _processor_t_use_stkarg_type in module ida_idp: + +_processor_t_use_stkarg_type(*args) -> 'ssize_t' + _processor_t_use_stkarg_type(ea, arg) -> ssize_t + + Parameters + ---------- + ea: ea_t + arg: funcarg_t const & + +Help on function _processor_t_validate_flirt_func in module ida_idp: + +_processor_t_validate_flirt_func(*args) -> 'ssize_t' + _processor_t_validate_flirt_func(start_ea, funcname) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + funcname: char const * + +Help on function _processor_t_verify_noreturn in module ida_idp: + +_processor_t_verify_noreturn(*args) -> 'ssize_t' + _processor_t_verify_noreturn(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_verify_sp in module ida_idp: + +_processor_t_verify_sp(*args) -> 'ssize_t' + _processor_t_verify_sp(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + Help on class asm_t in module ida_idp: class asm_t(builtins.object) @@ -41773,168 +54041,170 @@ class asm_t(builtins.object) | list of weak references to the object (if defined) | | a_align - | asm_t_a_align_get(self) -> char const * + | a_align | | a_ascii - | asm_t_a_ascii_get(self) -> char const * + | a_ascii | | a_band - | asm_t_a_band_get(self) -> char const * + | a_band | | a_bnot - | asm_t_a_bnot_get(self) -> char const * + | a_bnot | | a_bor - | asm_t_a_bor_get(self) -> char const * + | a_bor | | a_bss - | asm_t_a_bss_get(self) -> char const * + | a_bss | | a_byte - | asm_t_a_byte_get(self) -> char const * + | a_byte | | a_comdef - | asm_t_a_comdef_get(self) -> char const * + | a_comdef | | a_curip - | asm_t_a_curip_get(self) -> char const * + | a_curip | | a_double - | asm_t_a_double_get(self) -> char const * + | a_double | | a_dups - | asm_t_a_dups_get(self) -> char const * + | a_dups | | a_dword - | asm_t_a_dword_get(self) -> char const * + | a_dword | | a_equ - | asm_t_a_equ_get(self) -> char const * + | a_equ | | a_extrn - | asm_t_a_extrn_get(self) -> char const * + | a_extrn | | a_float - | asm_t_a_float_get(self) -> char const * + | a_float | | a_include_fmt - | asm_t_a_include_fmt_get(self) -> char const * + | a_include_fmt | | a_mod - | asm_t_a_mod_get(self) -> char const * + | a_mod | | a_oword - | asm_t_a_oword_get(self) -> char const * + | a_oword | | a_packreal - | asm_t_a_packreal_get(self) -> char const * + | a_packreal | | a_public - | asm_t_a_public_get(self) -> char const * + | a_public | | a_qword - | asm_t_a_qword_get(self) -> char const * + | a_qword | | a_rva - | asm_t_a_rva_get(self) -> char const * + | a_rva | | a_seg - | asm_t_a_seg_get(self) -> char const * + | a_seg | | a_shl - | asm_t_a_shl_get(self) -> char const * + | a_shl | | a_shr - | asm_t_a_shr_get(self) -> char const * + | a_shr | | a_sizeof_fmt - | asm_t_a_sizeof_fmt_get(self) -> char const * + | a_sizeof_fmt | | a_tbyte - | asm_t_a_tbyte_get(self) -> char const * + | a_tbyte | | a_vstruc_fmt - | asm_t_a_vstruc_fmt_get(self) -> char const * + | a_vstruc_fmt | | a_weak - | asm_t_a_weak_get(self) -> char const * + | a_weak | | a_word - | asm_t_a_word_get(self) -> char const * + | a_word | | a_xor - | asm_t_a_xor_get(self) -> char const * + | a_xor | | a_yword - | asm_t_a_yword_get(self) -> char const * + | a_yword + | + | a_zword + | a_zword | | accsep - | asm_t_accsep_get(self) -> char + | accsep | | ascsep - | asm_t_ascsep_get(self) -> char + | ascsep | | cmnt - | asm_t_cmnt_get(self) -> char const * + | cmnt | | cmnt2 - | asm_t_cmnt2_get(self) -> char const * + | cmnt2 | | end - | asm_t_end_get(self) -> char const * + | end | | esccodes - | asm_t_esccodes_get(self) -> char const * + | esccodes | | flag - | asm_t_flag_get(self) -> uint32 + | flag | | flag2 - | asm_t_flag2_get(self) -> uint32 + | flag2 | | header - | asm_t_header_get(self) -> char const *const * + | header | | help - | asm_t_help_get(self) -> help_t + | help | | high16 - | asm_t_high16_get(self) -> char const * + | high16 | | high8 - | asm_t_high8_get(self) -> char const * + | high8 | | lbrace - | asm_t_lbrace_get(self) -> char + | lbrace | | low16 - | asm_t_low16_get(self) -> char const * + | low16 | | low8 - | asm_t_low8_get(self) -> char const * + | low8 | | name - | asm_t_name_get(self) -> char const * + | name | | origin - | asm_t_origin_get(self) -> char const * + | origin | | rbrace - | asm_t_rbrace_get(self) -> char + | rbrace | | thisown | The membership flag | | uflag - | asm_t_uflag_get(self) -> uint16 + | uflag Help on function assemble in module ida_idp: assemble(*args) -> 'bool' assemble(ea, cs, ip, use32, line) -> bool - - Assemble an instruction into the database (display a warning if an error is found) + @param ea: linear address of instruction @param cs: cs of instruction @param ip: ip of instruction @@ -41947,206 +54217,259 @@ Help on function cfg_get_cc_header_path in module ida_idp: cfg_get_cc_header_path(*args) -> 'char const *' cfg_get_cc_header_path(compid) -> char const * + + @param compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) -> 'char const *' cfg_get_cc_parm(compid, name) -> char const * + + @param compid: comp_t + @param name: char const * Help on function cfg_get_cc_predefined_macros in module ida_idp: cfg_get_cc_predefined_macros(*args) -> 'char const *' cfg_get_cc_predefined_macros(compid) -> char const * + + @param compid: comp_t Help on function delay_slot_insn in module ida_idp: delay_slot_insn(*args) -> 'bool' delay_slot_insn(ea, bexec, fexec) -> bool - - Helper function to get the delay slot instruction. - - - @param ea (C++: ea_t *) - @param bexec (C++: bool *) - @param fexec (C++: bool *) + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * Help on function gen_idb_event in module ida_idp: gen_idb_event(*args) -> 'void' gen_idb_event(code) - - the kernel will use this function to generate idb_events - - @param code (C++: idb_event::event_code_t) + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t + +Help on function get_ash in module ida_idp: + +get_ash(*args) -> 'asm_t *' + get_ash() -> asm_t Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) -> 'PyObject *' get_idb_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * Help on function get_idb_notifier_ud_addr in module ida_idp: get_idb_notifier_ud_addr(*args) -> 'PyObject *' get_idb_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDB_Hooks * Help on function get_idp_name in module ida_idp: get_idp_name(*args) -> 'size_t' get_idp_name() -> str - - - Get name of the current processor module. The name is derived from the - file name. For example, for IBM PC the module is named "pc.w32" - (windows version), then the module name is "PC" (uppercase). If no - processor module is loaded, this function will return NULL + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) -> 'PyObject *' get_idp_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * Help on function get_idp_notifier_ud_addr in module ida_idp: get_idp_notifier_ud_addr(*args) -> 'PyObject *' get_idp_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDP_Hooks * + +Help on function get_ph in module ida_idp: + +get_ph(*args) -> 'processor_t *' + get_ph() -> _processor_t Help on function get_reg_info in module ida_idp: get_reg_info(*args) -> 'char const *' get_reg_info(regname, bitrange) -> char const * - - Get register information - useful for registers like al, ah, dil, etc. - - @param regname (C++: const char *) - @param bitrange (C++: bitrange_t *) - @return: NULL no such register + @param regname: char const * + @param bitrange: bitrange_t * Help on function get_reg_name in module ida_idp: get_reg_name(*args) -> 'qstring *' get_reg_name(reg, width, reghi=-1) -> str + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead - - Get text representation of a register. For most processors this - function will just return \ph{reg_names}[reg]. If the processor module - has implemented processor_t::get_reg_name, it will be used instead - - @param reg: internal register number as defined in the processor - module (C++: int) - @param width: register width in bytes (C++: size_t) - @param reghi: if specified, then this function will return the - register pair (C++: int) + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair @return: length of register name in bytes or -1 if failure Help on function has_cf_chg in module ida_idp: has_cf_chg(*args) -> 'bool' has_cf_chg(feature, opnum) -> bool + Does an instruction with the specified feature modify the i-th operand? - - Does an instruction with the specified feature modify the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_cf_use in module ida_idp: has_cf_use(*args) -> 'bool' has_cf_use(feature, opnum) -> bool + Does an instruction with the specified feature use a value of the i-th operand? - - Does an instruction with the specified feature use a value of the i-th - operand? - - - @param feature (C++: uint32) - @param opnum (C++: uint) + @param feature: (C++: uint32) + @param opnum: (C++: uint) Help on function has_insn_feature in module ida_idp: has_insn_feature(*args) -> 'bool' has_insn_feature(icode, bit) -> bool - - Does the specified instruction have the specified feature? - - @param icode (C++: int) - @param bit (C++: uint32) + @param icode: (C++: uint16) + @param bit: (C++: uint32) Help on function is_align_insn in module ida_idp: is_align_insn(*args) -> 'int' is_align_insn(ea) -> int + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. - - If the instruction at 'ea' looks like an alignment instruction, return - its length in bytes. Otherwise return 0. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_basic_block_end in module ida_idp: is_basic_block_end(*args) -> 'bool' is_basic_block_end(insn, call_insn_stops_block) -> bool - - Is the instruction the end of a basic block? - - @param insn (C++: const insn_t &) - @param call_insn_stops_block (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) Help on function is_call_insn in module ida_idp: is_call_insn(*args) -> 'bool' is_call_insn(insn) -> bool - - Is the instruction a "call"? - - @param insn (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_indirect_jump_insn in module ida_idp: is_indirect_jump_insn(*args) -> 'bool' is_indirect_jump_insn(insn) -> bool - - Is the instruction an indirect jump? - - @param insn (C++: const insn_t &) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) Help on function is_ret_insn in module ida_idp: is_ret_insn(*args) -> 'bool' is_ret_insn(insn, strict=True) -> bool - - Is the instruction a "return"? - - @param insn (C++: const insn_t &) - @param strict (C++: bool) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(builtins.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_num_range_t(...) + | delete_num_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + +Help on class params_t in module ida_idp: + +class params_t(builtins.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_params_t(...) + | delete_params_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag Help on function parse_reg_name in module ida_idp: parse_reg_name(*args) -> 'bool' parse_reg_name(ri, regname) -> bool - - Get register info by name. - @param ri: result (C++: reg_info_t *) - @param regname: name of register (C++: const char *) + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register @return: success Help on __ph in module ida_idp object: @@ -42196,65 +54519,61 @@ class __ph(builtins.object) Help on function ph_calcrel in module ida_idp: -ph_calcrel(*args) -> 'bytevec_t *' +ph_calcrel(*args) -> 'bytevec_t *, size_t *' ph_calcrel(ea) + + @param ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_op_value(insn, op) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ ph_find_reg_value(insn, reg) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int Help on function ph_get_cnbits in module ida_idp: ph_get_cnbits(*args) -> 'size_t' ph_get_cnbits() -> size_t - - Returns the 'ph.cnbits' Help on function ph_get_dnbits in module ida_idp: ph_get_dnbits(*args) -> 'size_t' ph_get_dnbits() -> size_t - - Returns the 'ph.dnbits' Help on function ph_get_flag in module ida_idp: ph_get_flag(*args) -> 'size_t' ph_get_flag() -> size_t - - Returns the 'ph.flag' Help on function ph_get_icode_return in module ida_idp: ph_get_icode_return(*args) -> 'size_t' ph_get_icode_return() -> size_t - - Returns the 'ph.icode_return' Help on function ph_get_id in module ida_idp: ph_get_id(*args) -> 'size_t' ph_get_id() -> size_t - - Returns the 'ph.id' field Help on function ph_get_instruc in module ida_idp: ph_get_instruc(*args) -> 'PyObject *' - ph_get_instruc() -> PyObject * - - + ph_get_instruc() -> [(str, int), ...] Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -42262,24 +54581,18 @@ Help on function ph_get_instruc_end in module ida_idp: ph_get_instruc_end(*args) -> 'size_t' ph_get_instruc_end() -> size_t - - Returns the 'ph.instruc_end' Help on function ph_get_instruc_start in module ida_idp: ph_get_instruc_start(*args) -> 'size_t' ph_get_instruc_start() -> size_t - - Returns the 'ph.instruc_start' Help on function ph_get_operand_info in module ida_idp: ph_get_operand_info(*args) -> 'PyObject *' - ph_get_operand_info(ea, n) -> PyObject * - - + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None Returns the operand information given an ea and operand number. @param ea: address @@ -42288,70 +54601,71 @@ ph_get_operand_info(*args) -> 'PyObject *' @return: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size). Please refer to idd_opinfo_t structure in the SDK. +Help on function ph_get_reg_accesses in module ida_idp: + +ph_get_reg_accesses(*args) -> 'ssize_t' + ph_get_reg_accesses(accvec, insn, flags) -> ssize_t + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int + Help on function ph_get_reg_code_sreg in module ida_idp: ph_get_reg_code_sreg(*args) -> 'size_t' ph_get_reg_code_sreg() -> size_t - - Returns the 'ph.reg_code_sreg' Help on function ph_get_reg_data_sreg in module ida_idp: ph_get_reg_data_sreg(*args) -> 'size_t' ph_get_reg_data_sreg() -> size_t - - Returns the 'ph.reg_data_sreg' Help on function ph_get_reg_first_sreg in module ida_idp: ph_get_reg_first_sreg(*args) -> 'size_t' ph_get_reg_first_sreg() -> size_t - - Returns the 'ph.reg_first_sreg' Help on function ph_get_reg_last_sreg in module ida_idp: ph_get_reg_last_sreg(*args) -> 'size_t' ph_get_reg_last_sreg() -> size_t - - Returns the 'ph.reg_last_sreg' Help on function ph_get_regnames in module ida_idp: ph_get_regnames(*args) -> 'PyObject *' - ph_get_regnames() -> PyObject * - - + ph_get_regnames() -> [str, ...] Returns the list of register names as defined in the processor module Help on function ph_get_segreg_size in module ida_idp: ph_get_segreg_size(*args) -> 'size_t' ph_get_segreg_size() -> size_t - - Returns the 'ph.segreg_size' Help on function ph_get_tbyte_size in module ida_idp: ph_get_tbyte_size(*args) -> 'size_t' ph_get_tbyte_size() -> size_t - - Returns the 'ph.tbyte_size' field as defined in he processor module Help on function ph_get_version in module ida_idp: ph_get_version(*args) -> 'size_t' ph_get_version() -> size_t - - Returns the 'ph.version' +Help on function process_config_directive in module ida_idp: + +process_config_directive(*args) -> 'void' + process_config_directive(directive, priority=2) + + @param directive: char const * + @param priority: int + Help on class processor_t in module ida_idp: class processor_t(IDP_Hooks) @@ -42365,7 +54679,10 @@ class processor_t(IDP_Hooks) | Methods defined here: | | __init__(self) - | __init__(self, _flags=0) -> IDP_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _get_idb_notifier_addr(self) | @@ -42397,271 +54714,558 @@ class processor_t(IDP_Hooks) | | ev_ana_insn(self, *args) | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. | - | - | Analyzes and decodes an instruction at insn.ea - | - insn.itype must be set >= idaapi.CUSTOM_CMD_ITYPE - | - insn.size must be set to the instruction length - | - | @return: Boolean - | - False if the instruction is not recognized - | - True if the instruction was decoded. 'insn' should be filled in that case. + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. | | ev_assemble(self, *args) | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). | - | - | Assembles an instruction - | - | @param ea: linear address of instruction - | @param cs: cs of instruction - | @param ip: ip of instruction - | @param use32: is 32bit segment? - | @param line: line to assemble - | - | @return: - None to let the underlying processor module assemble the line - | - or a string containing the assembled buffer + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes | | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally | | ev_calc_step_over(self, target, ip) | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented | | ev_can_have_type(self, *args) | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_cmp_operands(self, *args) | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented | | ev_coagulate(self, *args) | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue | | ev_create_func_frame(self, pfn) | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_create_switch_xrefs(self, *args) | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM | | ev_creating_segm(self, s) | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created | | ev_emu_insn(self, *args) | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. | - | - | Emulate instruction, create cross-references, plan to analyze - | subsequent instructions, modify flags etc. Upon entrance to this function - | all information about the instruction is in 'insn' structure. - | - | @return: Boolean (whether this instruction has been emulated or not) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction | | ev_endbinary(self, *args) | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? | | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void | | ev_gen_map_file(self, nlines, fp) | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error | | ev_gen_regvar_def(self, ctx, v) | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented | | ev_gen_src_file_lnnum(self, *args) | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented | | ev_get_autocmt(self, *args) | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case | | ev_get_frame_retsize(self, frsize, pfn) | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented | | ev_get_operand_string(self, buf, insn, opnum) | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero | | ev_is_align_insn(self, *args) | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction | | ev_is_alloca_probe(self, *args) | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no | | ev_is_basic_block_end(self, *args) | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_call_insn(self, *args) | ev_is_call_insn(self, insn) -> int - | - | | Is the instruction a "call"? | - | @param insn: instruction - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_far_jump(self, *args) | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no | | ev_is_indirect_jump(self, *args) | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes | | ev_is_insn_table_jump(self, *args) - | ev_is_insn_table_jump(self, insn) -> int + | ev_is_insn_table_jump(self) -> int + | Reserved. | | ev_is_ret_insn(self, *args) | ev_is_ret_insn(self, insn, strict) -> int - | - | | Is the instruction a "return"? | - | @param insn: instruction - | @param strict: - True: report only ret instructions - | False: include instructions like "leave" which begins the function epilog - | @return: 0-unknown, 1-yes, -1-no + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes | | ev_is_sane_insn(self, *args) | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. | - | - | is the instruction sane for the current file type? - | @param insn: the instruction - | @param no_crefs: - | - 1: the instruction has no code refs to it. - | ida just tries to convert unexplored bytes - | to an instruction (but there is no other - | reason to convert them into an instruction) - | - 0: the instruction is created because - | of some coderef, user request or another - | weighty reason. - | @return: >=0-ok, <0-no, the instruction isn't likely to appear in the program + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program | | ev_is_sp_based(self, mode, insn, op) | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok | | ev_is_switch(self, *args) | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented | | ev_may_be_func(self, *args) | ev_may_be_func(self, insn, state) -> int - | - | | Can a function start here? - | @param insn: the instruction - | @param state: autoanalysis phase - | 0: creating functions - | 1: creating chunks | - | @return: integer (probability 0..100) + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) | | ev_may_show_sreg(self, *args) | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented | | ev_moving_segm(self, s, to_ea, flags) | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop | | ev_newbinary(self, *args) | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load | | ev_newfile(self, *args) | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name | | ev_newprc(self, *args) | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit | | ev_oldfile(self, *args) | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name | | ev_out_assumes(self, *args) | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_data(self, *args) | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_header(self, *args) - | ev_out_header(self, outctx) + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void | | ev_out_insn(self, *args) | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx: (outctx_t *) + | @retval void | | ev_out_label(self, *args) | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue | | ev_out_mnem(self, *args) | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented | | ev_out_operand(self, *args) | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. | - | - | Notification to generate operand text. - | If False was returned, then the standard operand output function will be called. - | - | this notification may use out_...() functions to form the operand text - | - | @return: Boolean (whether the operand has been outputted or not) + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden | | ev_out_segend(self, ctx, s) | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_segstart(self, ctx, s) | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_out_special_item(self, *args) | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow | | ev_rename(self, *args) | ev_rename(self, ea, new_name) -> int - | - | | The kernel is going to rename a byte. | - | @param ea: Address - | @param new_name: The new name - | - | @return: - | - If returns value <0, then the kernel should - | not rename it. See also the 'renamed' event + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) | | ev_set_proc_options(self, *args) | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string | | ev_str2reg(self, *args) | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded | | ev_treat_hindering_item(self, *args) | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item | | ev_undefine(self, *args) | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. | - | - | An item in the database (insn or data) is being deleted - | @param ea: Address - | @return: - | - 1 - do not delete srranges at the item end - | - 0 - srranges can be deleted + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted | | ev_validate_flirt_func(self, *args) | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated | | ev_verify_noreturn(self, pfn) | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, pfn) | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer | | func_added(self, pfn) | @@ -42713,204 +55317,705 @@ class processor_t(IDP_Hooks) | | ev_add_cref(self, *args) -> 'int' | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue | | ev_add_dref(self, *args) -> 'int' | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_adjust_libfunc_ea(self, *args) -> 'int' | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. | | ev_adjust_refinfo(self, *args) -> 'int' | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) -> 'int' | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_arg_addrs_ready(self, *args) -> 'int' | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm | | ev_calc_arglocs(self, *args) -> 'int' | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) | | ev_calc_purged_bytes(self, *args) -> 'int' | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented | | ev_calc_retloc(self, *args) -> 'int' | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error | | ev_calc_spdelta(self, *args) -> 'int' | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented | | ev_calc_switch_cases(self, *args) -> 'int' | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed | | ev_calc_varglocs(self, *args) -> 'int' | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs | | ev_calcrel(self, *args) -> 'int' | ev_calcrel(self) -> int + | Reserved. | | ev_clean_tbit(self, *args) -> 'int' | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed | | ev_create_flat_group(self, *args) -> 'int' | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 | | ev_decorate_name(self, *args) -> 'PyObject *' | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed | | ev_del_cref(self, *args) -> 'int' | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue | | ev_del_dref(self, *args) -> 'int' | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. | | ev_demangle_name(self, *args) -> 'PyObject *' | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! | | ev_ending_undo(self, *args) -> 'int' | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo | | ev_equal_reglocs(self, *args) -> 'int' | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented | | ev_extract_address(self, *args) -> 'int' | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error | | ev_find_op_value(self, *args) -> 'PyObject *' | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | | ev_find_reg_value(self, *args) -> 'PyObject *' | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found | - | ev_gen_asm_or_lst(self, *args) -> 'void' - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void | | ev_gen_stkvar_def(self, *args) -> 'int' | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented | | ev_get_abi_info(self, *args) -> 'int' | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok | | ev_get_bg_color(self, *args) -> 'int' - | ev_get_bg_color(self, ea) -> int or None + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set | | ev_get_cc_regs(self, *args) -> 'int' | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented | | ev_get_code16_mode(self, *args) -> 'int' | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead | | ev_get_macro_insn_head(self, *args) -> 'int' | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented | | ev_get_reg_info(self, *args) -> 'int' | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success | | ev_get_simd_types(self, *args) -> 'int' | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types | - | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented | | ev_get_stkvar_scale_factor(self, *args) -> 'int' | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback | | ev_getreg(self, *args) -> 'int' | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure | | ev_insn_reads_tbit(self, *args) -> 'int' | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no | | ev_is_cond_insn(self, *args) -> 'int' | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented | | ev_is_jump_func(self, *args) -> 'int' | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' | | ev_last_cb_before_loader(self, *args) -> 'int' | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) -> 'int' | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders | | ev_lower_func_type(self, *args) -> 'int' | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti | | ev_max_ptr_size(self, *args) -> 'int' | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer | | ev_newasm(self, *args) -> 'int' | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed | | ev_next_exec_insn(self, *args) -> 'int' | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) | | ev_realcvt(self, *args) -> 'int' | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown | | ev_replaying_undo(self, *args) -> 'int' | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo | | ev_set_code16_mode(self, *args) -> 'int' | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) - | - | ev_shadow_args_size(self, *args) -> 'int' - | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void | | ev_term(self, *args) -> 'int' | ev_term(self) -> int + | The IDP module is being unloaded. + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented | | ev_use_arg_types(self, *args) -> 'int' | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented | | ev_use_stkarg_type(self, *args) -> 'int' | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction | | hook(self, *args) -> 'bool' | hook(self) -> bool - | - | - | Creates an IDP hook - | - | @return: Boolean true on success | | unhook(self, *args) -> 'bool' | unhook(self) -> bool - | - | - | Removes the IDP hook - | @return: Boolean true on success | | ---------------------------------------------------------------------- | Data descriptors inherited from IDP_Hooks: @@ -42924,6 +56029,431 @@ class processor_t(IDP_Hooks) | thisown | The membership flag +Help on class reg_access_t in module ida_idp: + +class reg_access_t(builtins.object) + | Proxy of C++ reg_access_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_access_t(...) + | delete_reg_access_t(self) + | + | have_common_bits(self, *args) -> 'bool' + | have_common_bits(self, r) -> bool + | + | @param r: reg_access_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | access_type + | + | opnum + | opnum + | + | range + | range + | + | regnum + | regnum + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_access_vec_t in module ida_idp: + +class reg_access_vec_t(builtins.object) + | Proxy of C++ qvector< reg_access_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | __swig_destroy__ = delete_reg_access_vec_t(...) + | delete_reg_access_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_accesses_t in module ida_idp: + +class reg_accesses_t(reg_access_vec_t) + | Proxy of C++ reg_accesses_t class. + | + | Method resolution order: + | reg_accesses_t + | reg_access_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> reg_accesses_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_accesses_t(...) + | delete_reg_accesses_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from reg_access_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from reg_access_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from reg_access_vec_t: + | + | __hash__ = None + Help on class reg_info_t in module ida_idp: class reg_info_t(builtins.object) @@ -42933,24 +56463,36 @@ class reg_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: reg_info_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: reg_info_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: reg_info_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: reg_info_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: reg_info_t const & | | __repr__ = _swig_repr(self) | @@ -42959,6 +56501,8 @@ class reg_info_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -42970,10 +56514,10 @@ class reg_info_t(builtins.object) | list of weak references to the object (if defined) | | reg - | reg_info_t_reg_get(self) -> int + | reg | | size - | reg_info_t_size_get(self) -> int + | size | | thisown | The membership flag @@ -42983,980 +56527,408 @@ class reg_info_t(builtins.object) | | __hash__ = None +Help on function register_cfgopts in module ida_idp: + +register_cfgopts(*args) -> 'bool' + register_cfgopts(opts, nopts, cb=None, obj=None) -> bool + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * + Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ @return: success Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' set_target_assembler(asmnum) -> bool - - Set target assembler. - @param asmnum: number of assembler in the current processor module - (C++: int) + @param asmnum: (C++: int) number of assembler in the current processor module @return: success Help on function sizeof_ldbl in module ida_idp: sizeof_ldbl(*args) -> 'size_t' sizeof_ldbl() -> size_t - - - Get size of long double. Help on function str2reg in module ida_idp: str2reg(*args) -> 'int' str2reg(p) -> int - - Get any reg number (-1 on error) + @param p: (C++: const char *) char const * + +Module "ida_ieee"s docstring: +""" +IEEE floating point functions.""" + +Help on function ecleaz in module ida_ieee: + +ecleaz(*args) -> 'void' + ecleaz(x) - @param p (C++: const char *) + @param x: unsigned short [(6+3)] + +Help on class fpvalue_shorts_array_t in module ida_ieee: + +class fpvalue_shorts_array_t(builtins.object) + | Proxy of C++ wrapped_array_t< uint16,FPVAL_NWORDS > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned short const &' + | __getitem__(self, i) -> unsigned short const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> fpvalue_shorts_array_t + | + | @param data: unsigned short (&)[FPVAL_NWORDS] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned short const & + | + | __swig_destroy__ = delete_fpvalue_shorts_array_t(...) + | delete_fpvalue_shorts_array_t(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class fpvalue_t in module ida_ieee: + +class fpvalue_t(builtins.object) + | Proxy of C++ fpvalue_t class. + | + | Methods defined here: + | + | __add__(self, *args) -> 'fpvalue_t' + | __add__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __getitem__(self, i) + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __init__(self, *args) + | __init__(self) -> fpvalue_t + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __mul__(self, *args) -> 'fpvalue_t' + | __mul__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, i, v) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __sub__(self, *args) -> 'fpvalue_t' + | __sub__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __swig_destroy__ = delete_fpvalue_t(...) + | delete_fpvalue_t(self) + | + | __truediv__(self, *args) -> 'fpvalue_t' + | __truediv__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | _get_10bytes(self, *args) -> 'void' + | _get_10bytes(self) + | + | _get_bytes(self, *args) -> 'void' + | _get_bytes(self) + | + | _get_float(self, *args) -> 'double' + | _get_float(self) -> double + | + | _get_shorts(self, *args) -> 'wrapped_array_t< uint16,FPVAL_NWORDS >' + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | _set_10bytes(self, *args) -> 'void' + | _set_10bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec10_t const & + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec12_t const & + | + | _set_float(self, *args) -> 'void' + | _set_float(self, v) + | + | Parameters + | ---------- + | v: double + | + | assign(self, *args) -> 'void' + | assign(self, r) + | + | @param r: fpvalue_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: fpvalue_t const & + | + | eabs(self, *args) -> 'void' + | eabs(self) + | Calculate absolute value. + | + | fadd(self, *args) -> 'fpvalue_error_t' + | fadd(self, y) -> fpvalue_error_t + | Arithmetic operations. + | + | @param y: (C++: const fpvalue_t &) fpvalue_t const & + | + | fdiv(self, *args) -> 'fpvalue_error_t' + | fdiv(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | fmul(self, *args) -> 'fpvalue_error_t' + | fmul(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | from_10bytes(self, *args) -> 'fpvalue_error_t' + | from_10bytes(self, fpval) -> fpvalue_error_t + | Conversions for 10-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_12bytes(self, *args) -> 'fpvalue_error_t' + | from_12bytes(self, fpval) -> fpvalue_error_t + | Conversions for 12-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_int64(self, *args) -> 'void' + | from_int64(self, x) + | + | @param x: int64 + | + | from_str(self, *args) -> 'fpvalue_error_t' + | from_str(self, p) -> fpvalue_error_t + | Convert string to IEEE. + | + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. + | + | from_sval(self, *args) -> 'void' + | from_sval(self, x) + | Convert integer to IEEE. + | + | @param x: (C++: sval_t) + | + | from_uint64(self, *args) -> 'void' + | from_uint64(self, x) + | + | @param x: uint64 + | + | fsub(self, *args) -> 'fpvalue_error_t' + | fsub(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | get_kind(self, *args) -> 'fpvalue_kind_t' + | get_kind(self) -> fpvalue_kind_t + | Get value kind. + | + | is_negative(self, *args) -> 'bool' + | is_negative(self) -> bool + | Is negative value? + | + | mul_pow2(self, *args) -> 'fpvalue_error_t' + | mul_pow2(self, power_of_2) -> fpvalue_error_t + | Multiply by a power of 2. + | + | @param power_of_2: (C++: int32) + | + | negate(self, *args) -> 'void' + | negate(self) + | Negate. + | + | to_10bytes(self, *args) -> 'fpvalue_error_t' + | to_10bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_12bytes(self, *args) -> 'fpvalue_error_t' + | to_12bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_int64(self, *args) -> 'fpvalue_error_t' + | to_int64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | to_str(self, *args) -> 'void' + | to_str(self, mode) + | Convert IEEE to string. + | + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS + | + | to_sval(self, *args) -> 'fpvalue_error_t' + | to_sval(self, round=False) -> fpvalue_error_t + | Convert IEEE to integer (+-0.5 if round) + | + | @param round: (C++: bool) + | + | to_uint64(self, *args) -> 'fpvalue_error_t' + | to_uint64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | _10bytes + | _get_10bytes(self) + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) + | + | float + | _get_float(self) -> double + | + | int64 + | + | shorts + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | sval + | + | thisown + | The membership flag + | + | uint64 + | + | w + | w + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_kernwin"s docstring: +""" +Defines the interface between the kernel and the UI. + +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.""" -=== ida_idp EPYDOC INJECTIONS === -ida_idp.AS2_BRACE -""" -Use braces for all expressions. -""" - -ida_idp.AS2_BYTE1CHAR -""" -Meaningful only for wide byte processors. - -One symbol per processor byte -""" - -ida_idp.AS2_COLONSUF -""" -addresses may have ":xx" suffix this suffix must be ignored when -extracting the address under the cursor -""" - -ida_idp.AS2_IDEALDSCR -""" -Description of struc/union is in the 'reverse' form (keyword before -name) the same as in borland tasm ideal -""" - -ida_idp.AS2_STRINV -""" -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings -""" - -ida_idp.AS2_TERSESTR -""" -NAME<fld,fld,...> is supported. - -'terse' structure initialization form -""" - -ida_idp.AS2_YWORD -""" -a_yword field is present and valid -""" - -ida_idp.ASB_BINF0 -""" -010101b -""" - -ida_idp.ASB_BINF1 -""" -^B010101 -""" - -ida_idp.ASB_BINF2 -""" -%010101 -""" - -ida_idp.ASB_BINF3 -""" -0b1010101 -""" - -ida_idp.ASB_BINF4 -""" -b'1010101 -""" - -ida_idp.ASB_BINF5 -""" -b'1010101' -""" - -ida_idp.ASD_DECF0 -""" -34 -""" - -ida_idp.ASD_DECF1 -""" -#34 -""" - -ida_idp.ASD_DECF3 -""" -.34 -""" - -ida_idp.ASH_HEXF0 -""" -34h -""" - -ida_idp.ASH_HEXF1 -""" -h'34 -""" - -ida_idp.ASH_HEXF2 -""" -34 -""" - -ida_idp.ASH_HEXF3 -""" -0x34 -""" - -ida_idp.ASH_HEXF4 -""" -$34 -""" - -ida_idp.ASH_HEXF5 -""" -<^R > (radix) -""" - -ida_idp.ASO_OCTF0 -""" -123o -""" - -ida_idp.ASO_OCTF1 -""" -0123 -""" - -ida_idp.ASO_OCTF2 -""" -123 -""" - -ida_idp.ASO_OCTF3 -""" -@123 -""" - -ida_idp.ASO_OCTF4 -""" -o'123 -""" - -ida_idp.ASO_OCTF5 -""" -123q -""" - -ida_idp.ASO_OCTF6 -""" -~123 -""" - -ida_idp.ASO_OCTF7 -""" -q'123 -""" - -ida_idp.AS_1TEXT -""" -1 text per line, no bytes -""" - -ida_idp.AS_2CHRE -""" -double char constants are: "xy -""" - -ida_idp.AS_ALIGN2 -""" -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 -""" - -ida_idp.AS_ASCIIC -""" -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences -""" - -ida_idp.AS_ASCIIZ -""" -ascii directive inserts implicit zero byte at the end -""" - -ida_idp.AS_BINFM -""" -mask - binary number format -""" - -ida_idp.AS_COLON -""" -create colons after data names ? -""" - -ida_idp.AS_DECFM -""" -mask - decimal number format -""" - -ida_idp.AS_HEXFM -""" -mask - hex number format -""" - -ida_idp.AS_LALIGN -""" -Labels at "align" keyword are supported. -""" - -ida_idp.AS_N2CHR -""" -can't have 2 byte char consts -""" - -ida_idp.AS_NCHRE -""" -char constants are: 'x -""" - -ida_idp.AS_NCMAS -""" -no commas in ascii directives -""" - -ida_idp.AS_NHIAS -""" -no characters with high bit -""" - -ida_idp.AS_NOCODECLN -""" -don't create colons after code names -""" - -ida_idp.AS_NOSPACE -""" -No spaces in expressions. -""" - -ida_idp.AS_NOXRF -""" -Disable xrefs during the output file generation. -""" - -ida_idp.AS_OCTFM -""" -mask - octal number format -""" - -ida_idp.AS_OFFST -""" -offsets are 'offset xxx' ? -""" - -ida_idp.AS_ONEDUP -""" -One array definition per line. -""" - -ida_idp.AS_RELSUP -""" -Checkarg: 'and','or','xor' operations with addresses are possible. -""" - -ida_idp.AS_UDATA -""" -can use '?' in data directives -""" - -ida_idp.AS_UNEQU -""" -replace undefined data items with EQU (for ANTA's A80) -""" - -ida_idp.AS_XTRNTYPE -""" -Assembler understands type of extern symbols as ":type" suffix. -""" - -ida_idp.CF_CALL -""" -CALL instruction (should make a procedure here) -""" - -ida_idp.CF_CHG1 -""" -The instruction modifies the first operand. -""" - -ida_idp.CF_CHG2 -""" -The instruction modifies the second operand. -""" - -ida_idp.CF_CHG3 -""" -The instruction modifies the third operand. -""" - -ida_idp.CF_CHG4 -""" -The instruction modifies 4 operand. -""" - -ida_idp.CF_CHG5 -""" -The instruction modifies 5 operand. -""" - -ida_idp.CF_CHG6 -""" -The instruction modifies 6 operand. -""" - -ida_idp.CF_HLL -""" -language function. - -Instruction may be present in a high level -""" - -ida_idp.CF_JUMP -""" -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect -""" - -ida_idp.CF_SHFT -""" -Bit-shift instruction (shl,shr...) -""" - -ida_idp.CF_STOP -""" -next instruction - -Instruction doesn't pass execution to the -""" - -ida_idp.CF_USE1 -""" -The instruction uses value of the first operand. -""" - -ida_idp.CF_USE2 -""" -The instruction uses value of the second operand. -""" - -ida_idp.CF_USE3 -""" -The instruction uses value of the third operand. -""" - -ida_idp.CF_USE4 -""" -The instruction uses value of the 4 operand. -""" - -ida_idp.CF_USE5 -""" -The instruction uses value of the 5 operand. -""" - -ida_idp.CF_USE6 -""" -The instruction uses value of the 6 operand. -""" - -ida_idp.CUSTOM_INSN_ITYPE -""" -Custom instruction codes defined by processor extension plugins must -be greater than or equal to this -""" - -ida_idp.IDP_INTERFACE_VERSION -""" -The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' -""" - -ida_idp.OP_FP_BASED -""" -operand is FP based -""" - -ida_idp.OP_SP_ADD -""" -operand value is added to the pointer -""" - -ida_idp.OP_SP_BASED -""" -operand is SP based -""" - -ida_idp.OP_SP_SUB -""" -operand value is subtracted from the pointer -""" - -ida_idp.PLFM_386 -""" -Intel 80x86. -""" - -ida_idp.PLFM_6502 -""" -6502 -""" - -ida_idp.PLFM_65C816 -""" -65802/65816 -""" - -ida_idp.PLFM_6800 -""" -Motorola 68xx. -""" - -ida_idp.PLFM_68K -""" -Motorola 680x0. -""" - -ida_idp.PLFM_80196 -""" -Intel 80196. -""" - -ida_idp.PLFM_8051 -""" -8051 -""" - -ida_idp.PLFM_AD2106X -""" -Analog Devices ADSP 2106X. -""" - -ida_idp.PLFM_AD218X -""" -Analog Devices ADSP 218X. -""" - -ida_idp.PLFM_ALPHA -""" -DEC Alpha. -""" - -ida_idp.PLFM_ARC -""" -Argonaut RISC Core. -""" - -ida_idp.PLFM_ARM -""" -Advanced RISC Machines. -""" - -ida_idp.PLFM_AVR -""" -Atmel 8-bit RISC processor(s) -""" - -ida_idp.PLFM_C166 -""" -Siemens C166 family. -""" - -ida_idp.PLFM_C39 -""" -Rockwell C39. -""" - -ida_idp.PLFM_CR16 -""" -NSC CR16. -""" - -ida_idp.PLFM_DALVIK -""" -Android Dalvik Virtual Machine. -""" - -ida_idp.PLFM_DSP56K -""" -Motorola DSP5600x. -""" - -ida_idp.PLFM_DSP96K -""" -Motorola DSP96000. -""" - -ida_idp.PLFM_EBC -""" -EFI Bytecode. -""" - -ida_idp.PLFM_F2MC -""" -Fujistu F2MC-16. -""" - -ida_idp.PLFM_FR -""" -Fujitsu FR Family. -""" - -ida_idp.PLFM_H8 -""" -Hitachi H8/300, H8/2000. -""" - -ida_idp.PLFM_H8500 -""" -Hitachi H8/500. -""" - -ida_idp.PLFM_HPPA -""" -Hewlett-Packard PA-RISC. -""" - -ida_idp.PLFM_I860 -""" -Intel 860. -""" - -ida_idp.PLFM_I960 -""" -Intel 960. -""" - -ida_idp.PLFM_IA64 -""" -Intel Itanium IA64. -""" - -ida_idp.PLFM_JAVA -""" -Java. -""" - -ida_idp.PLFM_KR1878 -""" -Angstrem KR1878. -""" - -ida_idp.PLFM_M16C -""" -Renesas M16C. -""" - -ida_idp.PLFM_M32R -""" -Mitsubishi 32bit RISC. -""" - -ida_idp.PLFM_M740 -""" -Mitsubishi 8bit. -""" - -ida_idp.PLFM_M7700 -""" -Mitsubishi 16bit. -""" - -ida_idp.PLFM_M7900 -""" -Mitsubishi 7900. -""" - -ida_idp.PLFM_MC6812 -""" -Motorola 68HC12. -""" - -ida_idp.PLFM_MC6816 -""" -Motorola 68HC16. -""" - -ida_idp.PLFM_MIPS -""" -MIPS. -""" - -ida_idp.PLFM_MN102L00 -""" -Panasonic MN10200. -""" - -ida_idp.PLFM_MSP430 -""" -Texas Instruments MSP430. -""" - -ida_idp.PLFM_NEC_78K0 -""" -NEC 78K0. -""" - -ida_idp.PLFM_NEC_78K0S -""" -NEC 78K0S. -""" - -ida_idp.PLFM_NEC_V850X -""" -NEC V850 and V850ES/E1/E2. -""" - -ida_idp.PLFM_NET -""" -Microsoft Visual Studio.Net. -""" - -ida_idp.PLFM_OAKDSP -""" -Atmel OAK DSP. -""" - -ida_idp.PLFM_PDP -""" -PDP11. -""" - -ida_idp.PLFM_PIC -""" -Microchip's PIC. -""" - -ida_idp.PLFM_PIC16 -""" -Microchip's 16-bit PIC. -""" - -ida_idp.PLFM_PPC -""" -PowerPC. -""" - -ida_idp.PLFM_S390 -""" -IBM's S390. -""" - -ida_idp.PLFM_SCR_ADPT -""" -Processor module adapter for processor modules written in scripting -languages. -""" - -ida_idp.PLFM_SH -""" -Renesas (formerly Hitachi) SuperH. -""" - -ida_idp.PLFM_SPARC -""" -SPARC. -""" - -ida_idp.PLFM_SPC700 -""" -Sony SPC700. -""" - -ida_idp.PLFM_SPU -""" -Cell Broadband Engine Synergistic Processor Unit. -""" - -ida_idp.PLFM_ST20 -""" -SGS-Thomson ST20. -""" - -ida_idp.PLFM_ST7 -""" -SGS-Thomson ST7. -""" - -ida_idp.PLFM_ST9 -""" -ST9+. -""" - -ida_idp.PLFM_TLCS900 -""" -Toshiba TLCS-900. -""" - -ida_idp.PLFM_TMS -""" -Texas Instruments TMS320C5x. -""" - -ida_idp.PLFM_TMS320C1X -""" -Texas Instruments TMS320C1x. -""" - -ida_idp.PLFM_TMS320C28 -""" -Texas Instruments TMS320C28x. -""" - -ida_idp.PLFM_TMS320C3 -""" -Texas Instruments TMS320C3. -""" - -ida_idp.PLFM_TMS320C54 -""" -Texas Instruments TMS320C54xx. -""" - -ida_idp.PLFM_TMS320C55 -""" -Texas Instruments TMS320C55xx. -""" - -ida_idp.PLFM_TMSC6 -""" -Texas Instruments TMS320C6x. -""" - -ida_idp.PLFM_TRICORE -""" -Tasking Tricore. -""" - -ida_idp.PLFM_TRIMEDIA -""" -Trimedia. -""" - -ida_idp.PLFM_UNSP -""" -SunPlus unSP. -""" - -ida_idp.PLFM_Z8 -""" -Z8. -""" - -ida_idp.PLFM_Z80 -""" -8085, Z80 -""" - -ida_idp.PRN_BIN -""" -binary -""" - -ida_idp.PRN_DEC -""" -decimal -""" - -ida_idp.PRN_HEX -""" -hex -""" - -ida_idp.PRN_OCT -""" -octal -""" - -ida_idp.PR_ADJSEGS -""" -IDA may adjust segments' starting/ending addresses. -""" - -ida_idp.PR_ALIGN -""" -All data items should be aligned properly. -""" - -ida_idp.PR_ALIGN_INSN -""" -allow ida to create alignment instructions arbitrarily. Since these -instructions might lead to other wrong instructions and spoil the -listing, IDA does not create them by default anymore -""" - -ida_idp.PR_ASSEMBLE -""" -Module has a built-in assembler and will react to ev_assemble. -""" - -ida_idp.PR_BINMEM -""" -the processor module provides correct segmentation for binary files -(i.e. it creates additional segments) The kernel will not ask the user -to specify the RAM/ROM sizes -""" - -ida_idp.PR_CHK_XREF -""" -don't allow near xrefs between segments with different bases -""" - -ida_idp.PR_CNDINSNS -""" -has conditional instructions -""" - -ida_idp.PR_DEFNUM -""" -mask - default number representation -""" - -ida_idp.PR_DEFSEG32 -""" -segments are 32-bit by default -""" - -ida_idp.PR_DEFSEG64 -""" -segments are 64-bit by default -""" - -ida_idp.PR_DELAYED -""" -has delayed jumps and calls if this flag is set, -\\ph{is_basic_block_end}, \\ph{has_delay_slot} should be implemented -""" - -ida_idp.PR_NOCHANGE -""" -(display only) - -The user can't change segments and code/data attributes -""" - -ida_idp.PR_NO_SEGMOVE -""" -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' -""" - -ida_idp.PR_PURGING -""" -there are calling conventions which may purge bytes from the stack -""" - -ida_idp.PR_RNAMESOK -""" -allow user register names for location names -""" - -ida_idp.PR_SCALE_STKVARS -""" -use \\ph{get_stkvar_scale} callback -""" - -ida_idp.PR_SEGS -""" -has segment registers? -""" - -ida_idp.PR_SEGTRANS -""" -the processor module supports the segment translation feature (meaning -it calculates the code addresses using the 'map_code_ea()' function) -""" - -ida_idp.PR_SGROTHER -""" -the segment registers don't contain the segment selectors. -""" - -ida_idp.PR_STACK_UP -""" -the stack grows up -""" - -ida_idp.PR_TYPEINFO -""" -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks -""" - -ida_idp.PR_USE32 -""" -supports 32-bit addressing? -""" - -ida_idp.PR_USE64 -""" -supports 64-bit addressing? -""" - -ida_idp.PR_USE_ARG_TYPES -""" -use \\ph{use_arg_types} callback -""" - -ida_idp.PR_USE_TBYTE -""" - 'BTMT_SPECFLT' means _TBYTE type -""" - -ida_idp.PR_WORD_INS -""" -instruction codes are grouped 2bytes in binary line prefix -""" - -ida_idp.REG_SPOIL -""" -processor_t::use_regarg_type uses this bit in the return value to -indicate that the register value has been spoiled -""" -=== ida_idp EPYDOC INJECTIONS END === Help on class Choose in module ida_kernwin: class Choose(builtins.object) @@ -43988,8 +56960,124 @@ class Choose(builtins.object) | | @return: The TWidget underlying this view, or None. | + | OnClose(self) + | The chooser window is closed. + | + | OnDeleteLine(self, sel) + | User deleted an element + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnEditLine(self, sel) + | User asked to edit an element. + | + | @param 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()) + | @param 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 + | + | @param n: index of the element + | @return: an icon ID + | + | OnGetLine(self, n) + | Get data for an element + | + | This callback is mandatory + | + | @param n: the index to fetch data for + | @return: a list of strings + | + | OnGetLineAttr(self, n) + | Get attributes for an element + | + | @param 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 + | + | @param 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 + | + | @param 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 + | + | @param 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. + | + | @param 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. + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectLine(self, sel) + | User pressed the enter key, or double-clicked a selection + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectionChange(self, sel) + | Selection changed + | + | @param sel: the new selection + | | Refresh(self) | Causes the refresh callback to trigger | @@ -44005,13 +57093,14 @@ class Choose(builtins.object) | For non-modal choosers it will return 0 | or ALREADY_EXISTS if the chooser was already open and is active now; | - | __init__(self, 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) + | __init__(self, 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) | Constructs a chooser window. | @param title: The chooser title | @param 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] ] | @param flags: One of CH_XXXX constants + | @param flags2: One of CH2_XXXX constants | @param deflt: The index of the default item (0-based) for single | selection choosers or the list of indexes for multi selection | chooser @@ -44019,7 +57108,7 @@ class Choose(builtins.object) | ["Insert", "Delete", "Edit", "Refresh"] | @param icon: Icon index (the icon should exist in ida resources or | an index to a custom loaded icon) - | @param x1, y1, x2, y2: The default location (for txt-version) + | @param x1: , y1, x2, y2: The default location (for txt-version) | @param embedded: Create as embedded chooser | @param width: Embedded chooser width | @param height: Embedded chooser height @@ -44029,7 +57118,7 @@ class Choose(builtins.object) | Helper for OnDeleteLine() and OnRefresh() callbacks. | They can be finished by the following line: | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) - | @param: line number of the remaining select item + | @param line: number of the remaining select item | @return: list of selected lines numbers (one element or empty) | | ---------------------------------------------------------------------- @@ -44050,6 +57139,10 @@ class Choose(builtins.object) | | CHCOL_DEC = 196608 | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | | CHCOL_EA = 262144 | | CHCOL_FNAME = 327680 @@ -44058,30 +57151,12 @@ class Choose(builtins.object) | | CHCOL_HEX = 131072 | + | CHCOL_INODENAME = 4194304 + | | CHCOL_PATH = 65536 | | CHCOL_PLAIN = 0 | - | CHOOSE_HAVE_DEL = 16 - | - | CHOOSE_HAVE_EDIT = 32 - | - | CHOOSE_HAVE_ENTER = 64 - | - | CHOOSE_HAVE_GETATTR = 4 - | - | CHOOSE_HAVE_GETICON = 2 - | - | CHOOSE_HAVE_INIT = 1 - | - | CHOOSE_HAVE_INS = 8 - | - | CHOOSE_HAVE_ONCLOSE = 512 - | - | CHOOSE_HAVE_REFRESH = 128 - | - | CHOOSE_HAVE_SELECT = 256 - | | CH_ATTRS = 32 | | CH_BUILTIN_MASK = 33030144 @@ -44098,6 +57173,10 @@ class Choose(builtins.object) | | CH_FORCE_DEFAULT = 128 | + | CH_HAS_DIFF = 268435456 + | + | CH_HAS_DIRTREE = 33554432 + | | CH_MODAL = 1 | | CH_MULTI = 4 @@ -44124,6 +57203,8 @@ class Choose(builtins.object) | | CH_QFTYP_WHOLE_WORDS = 16384 | + | CH_RENAME_IS_EDIT = 262144 + | | CH_RESTORE = 131072 | | EMPTY_CHOOSER = -2 @@ -44238,7 +57319,10 @@ class CustomIDAMemo(View_Hooks) | @param values: A dictionary of 'int -> node_info_t' objects. | | __init__(self) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | _get_cb(self, view, cb_name) | @@ -44248,36 +57332,80 @@ class CustomIDAMemo(View_Hooks) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44302,6 +57430,9 @@ class CustomIDAMemo(View_Hooks) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44337,7 +57468,7 @@ class Form(builtins.object) | | Close(self, close_normally) | Close the form - | @param close_normally: + | @param 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 @@ -44385,8 +57516,7 @@ class Form(builtins.object) | GetControlValue(self, ctrl) | Returns the control's value depending on its type | @param ctrl: Form control instance - | @return: - | - color button, radio controls: integer + | @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 @@ -44412,7 +57542,7 @@ class Form(builtins.object) | SetControlValue(self, ctrl, value) | Set the control's value depending on its type | @param ctrl: Form control instance - | @param value: + | @param 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 @@ -44646,7 +57776,10 @@ class IDAViewWrapper(CustomIDAMemo) | Unbind(self) | | __init__(self, title) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | ---------------------------------------------------------------------- | Methods inherited from CustomIDAMemo: @@ -44745,36 +57878,80 @@ class IDAViewWrapper(CustomIDAMemo) | | view_activated(self, view) | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, view, ve) | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, view, *args) | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_curpos(self, view, *args) | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, view, ve) | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, view) | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, view, key, state) | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, view, now, was) | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, view, ve) | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, view, ve) | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, view, rt) | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from CustomIDAMemo: @@ -44799,6 +57976,9 @@ class IDAViewWrapper(CustomIDAMemo) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44851,6 +58031,7 @@ class PluginForm(builtins.object) | @param options: One of PluginForm.WOPN_ constants | | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44898,6 +58079,8 @@ class PluginForm(builtins.object) | | WCLS_CLOSE_LATER = 8 | + | WCLS_DELETE_LATER = 8 + | | WCLS_DONT_SAVE_SIZE = 4 | | WCLS_NO_CONTEXT = 2 @@ -44922,6 +58105,8 @@ class PluginForm(builtins.object) | | WOPN_DP_RIGHT = 262144 | + | WOPN_DP_SZHINT = 16777216 + | | WOPN_DP_TAB = 4194304 | | WOPN_DP_TAB_BEFORE = 6291456 @@ -44944,6 +58129,8 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) -> 'TWidget *' TWidget__from_ptrval__(ptrval) -> TWidget * + + @param ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -44955,7 +58142,16 @@ class UI_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> UI_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> UI_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __real_database_closed = database_closed(self, *args) -> 'void' + | 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(). | | __repr__ = _swig_repr(self) | @@ -44964,170 +58160,274 @@ class UI_Hooks(builtins.object) | | create_desktop_widget(self, *args) -> 'PyObject *' | create_desktop_widget(self, title, cfg) -> PyObject * + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null | | current_widget_changed(self, *args) -> 'void' | current_widget_changed(self, widget, prev_widget) + | The currently-active TWidget changed. + | + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) + | + | database_closed = __wrapper(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, *args) -> 'void' | database_inited(self, is_new_database, idc_script) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param 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, *args) -> 'void' | debugger_menu_change(self, enable) + | debugger menu modification detected + | + | @param 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, *args) -> 'void' + | desktop_applied(self, name, from_idb, type) + | a desktop has been applied + | + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) + | + | destroying_plugmod(self, *args) -> 'void' + | destroying_plugmod(self, plugmod, entry) + | The plugin object is about to be destroyed + | + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) + | + | destroying_procmod(self, *args) -> 'void' + | destroying_procmod(self, procmod) + | The processor module is about to be destroyed + | + | @param procmod: (const procmod_t *) | | finish_populating_widget_popup(self, *args) -> '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(). | - | - | The UI is about to be done populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) -> '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() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) -> '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 + | + | @param viewer: (TWidget*) viewer + | @param 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, *args) -> '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 | - | - | The UI wants to display a simple hint for an address in the navigation band - | - | @param ea: The address - | @return: String with the hint or None + | @param ea: (::ea_t) + | @return: true if generated a hint | | get_item_hint(self, *args) -> '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 + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint + | + | get_lines_rendering_info(self, *args) -> 'void' + | get_lines_rendering_info(self, out, widget, info) + | get lines rendering information + | + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) | | get_widget_config(self, *args) -> '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) + | + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool - | - | - | Creates an UI hook - | - | @return: Boolean true on success | | idcstart(self, *args) -> 'void' | idcstart(self) + | Start of IDC engine work. | | idcstop(self, *args) -> 'void' | idcstop(self) + | Stop of IDC engine work. + | + | initing_database(self, *args) -> '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, *args) -> 'void' | plugin_loaded(self, plugin_info) + | The plugin was loaded in memory. + | + | @param plugin_info: (const plugin_info_t *) | | plugin_unloading(self, *args) -> 'void' | plugin_unloading(self, plugin_info) + | The plugin is about to be unloaded + | + | @param plugin_info: (const plugin_info_t *) | | populating_widget_popup(self, *args) -> '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.) | - | The UI is populating the TWidget's popup menu. - | Now is a good time to call idaapi.attach_action_to_popup() - | - | @param widget: The widget - | @param popup: The popup menu. - | @return: Ignored + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) | | postprocess_action(self, *args) -> 'void' | postprocess_action(self) - | - | - | An ida ui action has been handled - | - | @return: Ignored + | an ida ui action has been handled | | preprocess_action(self, *args) -> 'int' | preprocess_action(self, name) -> int + | ida ui is about to handle a user action. | - | - | IDA ui is about to handle a user action - | - | @param name: ui action name - | (these names can be looked up in ida[tg]ui.cfg) - | @return: 0-ok, nonzero - a plugin has handled the action + | @param 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, *args) -> '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, *args) -> 'void' | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. | | resume(self, *args) -> 'void' | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it | | saved(self, *args) -> 'void' - | saved(self) + | 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. | - | - | The kernel has saved the database. - | - | @return: Ignored + | @param path: (const char *) the database path | | saving(self, *args) -> 'void' | saving(self) - | - | - | The kernel is saving the database. - | - | @return: Ignored + | The kernel is flushing its buffers to the disk. The user interface should + | save its state. Parameters: none Returns: none | | screen_ea_changed(self, *args) -> 'void' | screen_ea_changed(self, ea, prev_ea) + | The "current address" changed + | + | @param ea: (ea_t) + | @param prev_ea: (ea_t) | | set_widget_config(self, *args) -> 'void' | set_widget_config(self, widget, cfg) + | set the widget configuration + | + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) | | suspend(self, *args) -> 'void' | suspend(self) - | - | term(self, *args) -> 'void' - | term(self) - | - | - | IDA is terminated and the database is already closed. - | The UI may close its windows in this callback. + | Suspend graphical interface. Only the text version. Interface should respond + | to it. | | unhook(self, *args) -> 'bool' | unhook(self) -> bool - | - | - | Removes the UI hook - | @return: Boolean true on success | | updated_actions(self, *args) -> 'void' | updated_actions(self) - | - | - | The UI is done updating actions. - | - | @return: Ignored + | IDA is done updating actions. | | updating_actions(self, *args) -> '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. | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored + | @param ctx: (action_update_ctx_t *) | | widget_closing(self, *args) -> '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 + | + | @param widget: (TWidget *) | | widget_invisible(self, *args) -> 'void' | widget_invisible(self, widget) + | TWidget is being closed. Use this event to destroy the window controls + | + | @param widget: (TWidget *) | | widget_visible(self, *args) -> 'void' | widget_visible(self, widget) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45151,7 +58451,10 @@ class View_Hooks(builtins.object) | __disown__(self) | | __init__(self, *args) - | __init__(self, _flags=0) -> View_Hooks + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 | | __repr__ = _swig_repr(self) | @@ -45166,39 +58469,86 @@ class View_Hooks(builtins.object) | | view_activated(self, *args) -> 'void' | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) | | view_click(self, *args) -> 'void' | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_close(self, *args) -> 'void' | view_close(self, view) + | View closed + | + | @param view: (TWidget *) | | view_created(self, *args) -> 'void' | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) | | view_curpos(self, *args) -> 'void' | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) | | view_dblclick(self, *args) -> 'void' | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_deactivated(self, *args) -> 'void' | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) | | view_keydown(self, *args) -> 'void' | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) | | view_loc_changed(self, *args) -> '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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) | | view_mouse_moved(self, *args) -> 'void' | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_mouse_over(self, *args) -> '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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) | | view_switched(self, *args) -> 'void' | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45247,16 +58597,118 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) -> 'ea_t *' _ask_addr(addr, format) -> bool + + Parameters + ---------- + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) -> 'sval_t *' _ask_long(value, format) -> bool + + Parameters + ---------- + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) -> 'sel_t *' _ask_seg(sel, format) -> bool + + Parameters + ---------- + sel: sel_t * + format: char const * + +Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: + +_kludge_force_declare_dirspec_t(*args) -> 'void' + _kludge_force_declare_dirspec_t(arg1) + + Parameters + ---------- + arg1: dirspec_t const * + +Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: + +_kludge_force_declare_dirtree_t(*args) -> 'void' + _kludge_force_declare_dirtree_t(arg1) + + Parameters + ---------- + arg1: dirtree_t const * + +Help on class action_ctx_base_cur_sel_t in module ida_kernwin: + +class action_ctx_base_cur_sel_t(builtins.object) + | Proxy of C++ action_ctx_base_cur_sel_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_cur_sel_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_cur_sel_t(...) + | delete_action_ctx_base_cur_sel_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _from + | _from + | + | thisown + | The membership flag + | + | to + | to + +Help on class action_ctx_base_source_t in module ida_kernwin: + +class action_ctx_base_source_t(builtins.object) + | Proxy of C++ action_ctx_base_source_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_source_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_source_t(...) + | delete_action_ctx_base_source_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | chooser + | chooser + | + | thisown + | The membership flag Help on class action_ctx_base_t in module ida_kernwin: @@ -45273,20 +58725,15 @@ class action_ctx_base_t(builtins.object) | __swig_destroy__ = delete_action_ctx_base_t(...) | delete_action_ctx_base_t(self) | - | _get_form(self, *args) -> 'TWidget *' - | _get_form(self) -> TWidget * - | - | _get_form_title(self, *args) -> 'qstring' - | _get_form_title(self) -> qstring - | - | _get_form_type(self, *args) -> 'twidget_type_t' - | _get_form_type(self) -> twidget_type_t - | | has_flag(self, *args) -> 'bool' | has_flag(self, flag) -> bool + | Check if the given flag is set. + | + | @param flag: (C++: uint32) | | reset(self, *args) -> 'void' | reset(self) + | Invalidate all context info. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45298,70 +58745,79 @@ class action_ctx_base_t(builtins.object) | list of weak references to the object (if defined) | | action - | action_ctx_base_t_action_get(self) -> char const * + | action | | chooser_selection - | action_ctx_base_t_chooser_selection_get(self) -> sizevec_t * + | chooser_selection | | cur_ea - | action_ctx_base_t_cur_ea_get(self) -> ea_t + | cur_ea | | cur_enum - | action_ctx_base_t_cur_enum_get(self) -> enum_t + | cur_enum + | + | cur_enum_member + | cur_enum_member | | cur_extracted_ea - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value | | cur_fchunk - | action_ctx_base_t_cur_fchunk_get(self) -> func_t * + | cur_fchunk | | cur_flags - | action_ctx_base_t_cur_flags_get(self) -> uint32 + | cur_flags | | cur_func - | action_ctx_base_t_cur_func_get(self) -> func_t * + | cur_func | | cur_seg - | action_ctx_base_t_cur_seg_get(self) -> segment_t * + | cur_seg + | + | cur_sel + | cur_sel | | cur_strmem - | action_ctx_base_t_cur_strmem_get(self) -> member_t * + | cur_strmem | | cur_struc - | action_ctx_base_t_cur_struc_get(self) -> struc_t * + | cur_struc | | cur_value - | action_ctx_base_t_cur_value_get(self) -> uval_t + | cur_value + | + | dirtree_selection + | dirtree_selection | | focus - | action_ctx_base_t_focus_get(self) -> TWidget * + | focus | | form - | _get_form(self) -> TWidget * | | form_title - | _get_form_title(self) -> qstring | | form_type - | _get_form_type(self) -> twidget_type_t | | graph_selection - | action_ctx_base_t_graph_selection_get(self) -> screen_graph_selection_t * + | graph_selection | | regname - | action_ctx_base_t_regname_get(self) -> char const * + | regname + | + | source + | source | | thisown | The membership flag | | widget - | action_ctx_base_t_widget_get(self) -> TWidget * + | widget | | widget_title - | action_ctx_base_t_widget_title_get(self) -> qstring * + | widget_title | | widget_type - | action_ctx_base_t_widget_type_get(self) -> twidget_type_t + | widget_type Help on class action_desc_t in module ida_kernwin: @@ -45372,6 +58828,14 @@ class action_desc_t(builtins.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int | | __repr__ = _swig_repr(self) | @@ -45388,31 +58852,31 @@ class action_desc_t(builtins.object) | list of weak references to the object (if defined) | | cb - | action_desc_t_cb_get(self) -> int + | cb | | flags - | action_desc_t_flags_get(self) -> int + | flags | | icon - | action_desc_t_icon_get(self) -> int + | icon | | label - | action_desc_t_label_get(self) -> char const * + | label | | name - | action_desc_t_name_get(self) -> char const * + | name | | owner - | action_desc_t_owner_get(self) -> plugin_t const * + | owner | | shortcut - | action_desc_t_shortcut_get(self) -> char const * + | shortcut | | thisown | The membership flag | | tooltip - | action_desc_t_tooltip_get(self) -> char const * + | tooltip Help on class action_handler_t in module ida_kernwin: @@ -45425,8 +58889,22 @@ class action_handler_t(builtins.object) | Initialize self. See help(type(self)) for accurate signature. | | 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. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45441,19 +58919,15 @@ Help on function activate_widget in module ida_kernwin: activate_widget(*args) -> 'void' activate_widget(widget, take_focus) + Activate widget (only gui version) (ui_activate_widget). - - Activate widget (only gui version) ( 'ui_activate_widget' ). - - @param widget: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget Help on function add_hotkey in module ida_kernwin: add_hotkey(*args) -> 'PyObject *' - add_hotkey(hotkey, pyfunc) -> PyObject * - - + add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -45466,33 +58940,27 @@ Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name @return: IDC hotkey error codes Help on function add_spaces in module ida_kernwin: add_spaces(*args) -> 'PyObject *' - add_spaces(s, len) -> 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'. - - 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'. - - @param len: the desired length of the string (C++: ssize_t) + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string @return: pointer to the end of input string Help on function addon_count in module ida_kernwin: addon_count(*args) -> 'int' addon_count() -> int - - Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -45520,123 +58988,147 @@ class addon_info_t(builtins.object) | list of weak references to the object (if defined) | | cb - | addon_info_t_cb_get(self) -> size_t + | cb | | custom_data - | addon_info_t_custom_data_get(self) -> void const * + | custom_data | | custom_size - | addon_info_t_custom_size_get(self) -> size_t + | custom_size | | freeform - | addon_info_t_freeform_get(self) -> char const * + | freeform | | id - | addon_info_t_id_get(self) -> char const * + | id | | name - | addon_info_t_name_get(self) -> char const * + | name | | producer - | addon_info_t_producer_get(self) -> char const * + | producer | | thisown | The membership flag | | url - | addon_info_t_url_get(self) -> char const * + | url | | version - | addon_info_t_version_get(self) -> char const * + | version Help on function analyzer_options in module ida_kernwin: analyzer_options(*args) -> 'void' analyzer_options() - - - Allow the user to set analyzer options. (show a dialog box) ( - 'ui_analyzer_options' ) + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) Help on function ask_addr in module ida_kernwin: 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 Help on function ask_buttons in module ida_kernwin: 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 - - Display a dialog box and get choice from maximum three possibilities ( - 'ui_ask_buttons' ).for all buttons:use "" or NULL to take the default - name for the button.use 'format' to hide the cancel button - - @param Yes: text for the first button (C++: const char *) - @param No: text for the second button (C++: const char *) - @param Cancel: text for the third button (C++: const char *) - @param deflt: default choice: one of Button IDs (C++: int) - @param format: printf-style format string for question. It may have - some prefixes, see below. (C++: const char *) - @return: one of Button IDs specifying the selected button (Esc key - returns Cancel/3rd button value) + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param 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) Help on function ask_file in module ida_kernwin: ask_file(*args) -> 'char *' ask_file(for_saving, defval, format) -> char * + + @param for_saving: bool + @param defval: char const * + @param format: char const * Help on function ask_for_feedback in module ida_kernwin: 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}. - - Show a message box asking to send the input file tosupport@hex- - rays.com. - - @param format: the reason why the input file is bad (C++: const char - *) + @param format: (C++: const char *) the reason why the input file is bad Help on function ask_form in module ida_kernwin: ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + <title>" 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 Help on function ask_ident in module ida_kernwin: 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. + + @return: false if the user cancelled the dialog, otherwise returns true. Help on function ask_long in module ida_kernwin: 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. Help on function ask_seg in module ida_kernwin: 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 Help on function ask_str in module ida_kernwin: ask_str(*args) -> 'PyObject *' - ask_str(defval, hist, prompt) -> PyObject * - - + ask_str(defval, hist, prompt) -> str or None Asks for a long text - @param hist: history id @param defval: The default value + @param hist: history id @param prompt: The prompt value @return: None or the entered string Help on function ask_text in module ida_kernwin: ask_text(*args) -> 'PyObject *' - ask_text(max_size, defval, prompt) -> PyObject * - - + ask_text(max_size, defval, prompt) -> str Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -45648,227 +59140,219 @@ Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' ask_yn(deflt, format) -> int - - Display a dialog box and get choice from "Yes", "No", "Cancel". - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function attach_action_to_menu in module ida_kernwin: attach_action_to_menu(*args) -> 'bool' - attach_action_to_menu(menupath, name, flags) -> 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). - - Attach a previously-registered action to the menu ( - 'ui_attach_action_to_menu' ).You should not change top level menu, or - the Edit,Plugins submenus If you want to modify the debugger menu, do - it at the ui_debugger_menu_change event (ida might destroy your menu - item if you do it elsewhere). - - @param menupath: path to the menu item after or before which the - insertion will take place. Example: - Debug/StartProcess Whitespace, punctuation are - ignored. It is allowed to specify only the prefix - of the menu item. Comparison is case insensitive. - menupath may start with the following prefixes: [S] - - modify the main menu of the structure window [E] - - modify the main menu of the enum window (C++: const - char *) - @param name: the action name (C++: const char *) - @param flags: a combination of Set menu flags , to determine menu - item position (C++: int) + @param 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 + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position @return: success Help on function attach_action_to_popup in module ida_kernwin: attach_action_to_popup(*args) -> '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'. - - 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'. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup menu if non-NULL, the action is - added to this popup menu invocation (i.e., - 'single-shot') if NULL, the action is added to - a list of actions that should always be present - in context menus for this widget (i.e., - 'permanent'.) (C++: TPopupMenu *) - @param name: action name (C++: const char *) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ flags (see Set menu flags ) - (C++: int) + @param widget: (C++: TWidget *) target widget + @param 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'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) @return: success Help on function attach_action_to_toolbar in module ida_kernwin: attach_action_to_toolbar(*args) -> 'bool' attach_action_to_toolbar(toolbar_name, name) -> bool + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). - - Attach an action to an existing toolbar ( - 'ui_attach_action_to_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name @return: success Help on function attach_dynamic_action_to_popup in module ida_kernwin: attach_dynamic_action_to_popup(*args) -> 'bool' - attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=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) - - Create & insert an action into the widget's popup menu ( - 'ui_attach_dynamic_action_to_popup' ). 'action_desc_t::handler' for - 'desc' must be instantiated using 'new', as it will be 'delete'd when - the action is unregistered. - - @param widget: target widget (C++: TWidget *) - @param popup_handle: target popup (C++: TPopupMenu *) - @param desc: created with DYNACTION_DESC_LITERAL (C++: const - action_desc_t &) - @param popuppath: can be NULL (C++: const char *) - @param flags: a combination of SETMENU_ constants (see Set menu flags - ) (C++: int) + @param unused: deprecated; should be None + @param popup_handle: target popup + @param desc: action description of type action_desc_t + @param popuppath: can be None + @param flags: a combination of SETMENU_ constants @return: success Help on function banner in module ida_kernwin: banner(*args) -> 'bool' banner(wait) -> bool + Show a banner dialog box (ui_banner). - - Show a banner dialog box ( 'ui_banner' ). - - @param wait: time to wait before closing (C++: int) + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed Help on function beep in module ida_kernwin: beep(*args) -> 'void' beep(beep_type=beep_default) + Issue a beeping sound (ui_beep). - - Issue a beeping sound ( 'ui_beep' ). - - @param beep_type: beep_t (C++: beep_t) + @param beep_type: (C++: beep_t) Help on function call_nav_colorizer in module ida_kernwin: call_nav_colorizer(*args) -> 'uint32' call_nav_colorizer(dict, ea, nbytes) -> uint32 - - To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t Help on function cancel_exec_request in module ida_kernwin: cancel_exec_request(*args) -> 'bool' cancel_exec_request(req_id) -> bool + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. + +Help on function cancel_thread_exec_requests in module ida_kernwin: + +cancel_thread_exec_requests(*args) -> 'int' + cancel_thread_exec_requests(tid) -> int + Try to cancel asynchronous exec requests created by the specified thread. - Try to cancel an asynchronous exec request ( 'ui_cancel_exec_request' - ). - - @param req_id: request id (C++: int) + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) -> 'void' choose_activate(_self) + + @param self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) -> 'PyObject *' choose_choose(_self) -> PyObject * + + @param self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) -> 'void' choose_close(_self) + + @param self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) -> 'PyObject *' choose_create_embedded_chobj(_self) -> PyObject * + + @param self: PyObject * Help on function choose_entry in module ida_kernwin: choose_entry(*args) -> 'ea_t' choose_entry(title) -> ea_t + Choose an entry point (ui_choose, chtype_entry). - - Choose an entry point ( 'ui_choose' , 'chtype_entry' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected Help on function choose_enum in module ida_kernwin: choose_enum(*args) -> 'enum_t' choose_enum(title, default_id) -> enum_t + Choose an enum (ui_choose, chtype_enum). - - Choose an enum ( 'ui_choose' , 'chtype_enum' ). - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @return: enum id of selected enum, BADNODE if none selected + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected Help on function choose_enum_by_value in module ida_kernwin: choose_enum_by_value(*args) -> 'uchar *' choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + Choose an enum, restricted by value & size (ui_choose, + chtype_enum_by_value_and_size). If the given value cannot be found initially, + this function will ask if the user would like to import a standard enum. - - Choose 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. - - @param title: chooser title (C++: const char *) - @param default_id: id of enum to select by default (C++: enum_t) - @param value: value to search for (C++: uval_t) - @param nbytes: size of value (C++: int) - @return: enum id of selected (or imported) enum, BADNODE if none was - found + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found Help on function choose_find in module ida_kernwin: choose_find(*args) -> 'PyObject *' - choose_find(title) -> PyObject * + choose_find(title) -> MyChoose or None + + @param title: char const * Help on function choose_func in module ida_kernwin: choose_func(*args) -> 'func_t *' choose_func(title, default_ea) -> func_t * + Choose a function (ui_choose, chtype_func). - - Choose a function ( 'ui_choose' , 'chtype_func' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of function to select by default (C++: ea_t) - @return: pointer to function that was selected, NULL if none selected + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected Help on function choose_get_widget in module ida_kernwin: choose_get_widget(*args) -> 'TWidget *' choose_get_widget(_self) -> TWidget * + + @param self: PyObject * Help on function choose_idasgn in module ida_kernwin: choose_idasgn(*args) -> 'PyObject *' choose_idasgn() -> PyObject * - - Opens the signature chooser @return: None or the selected signature name @@ -45877,85 +59361,255 @@ Help on function choose_name in module ida_kernwin: choose_name(*args) -> 'ea_t' choose_name(title) -> ea_t + Choose a name (ui_choose, chtype_name). - - Choose a name ( 'ui_choose' , 'chtype_name' ). - - @param title: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected Help on function choose_refresh in module ida_kernwin: choose_refresh(*args) -> 'void' choose_refresh(_self) + + @param self: PyObject * Help on function choose_segm in module ida_kernwin: choose_segm(*args) -> 'segment_t *' choose_segm(title, default_ea) -> segment_t * + Choose a segment (ui_choose, chtype_segm). - - Choose a segment ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title (C++: const char *) - @param default_ea: ea of segment to select by default (C++: ea_t) - @return: pointer to segment that was selected, NULL if none selected + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected Help on function choose_srcp in module ida_kernwin: choose_srcp(*args) -> 'sreg_range_t *' choose_srcp(title) -> sreg_range_t * + Choose a segment register change point (ui_choose, chtype_srcp). - - Choose a segment register change point ( 'ui_choose' , 'chtype_srcp' - ). - - @param title: chooser title (C++: const char *) - @return: pointer to segment register range of selected change point, - NULL if none selected + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected Help on function choose_stkvar_xref in module ida_kernwin: choose_stkvar_xref(*args) -> 'ea_t' choose_stkvar_xref(pfn, mptr) -> ea_t + Choose an xref to a stack variable (ui_choose, chtype_name). - - Choose an xref to a stack variable ( 'ui_choose' , 'chtype_name' ). - - @param pfn: function (C++: func_t *) - @param mptr: variable (C++: member_t *) + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable @return: ea of the selected xref, BADADDR if none selected Help on function choose_struc in module ida_kernwin: choose_struc(*args) -> 'struc_t *' choose_struc(title) -> struc_t * + Choose a structure (ui_choose, chtype_segm). - - Choose a structure ( 'ui_choose' , 'chtype_segm' ). - - @param title: chooser title; (C++: const char *) - @return: pointer to structure that was selected, NULL if none selected + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected Help on function choose_til in module ida_kernwin: choose_til(*args) -> 'qstring *' choose_til() -> str + Choose a type library (ui_choose, chtype_idatil). - - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). + @retval true: 'buf' was filled with the name of the selected til + @retval false: otherwise Help on function choose_xref in module ida_kernwin: choose_xref(*args) -> 'ea_t' choose_xref(to) -> ea_t + Choose an xref to an address (ui_choose, chtype_xref). - - Choose an xref to an address ( 'ui_choose' , 'chtype_xref' ). - - @param to: referenced address (C++: ea_t) + @param to: (C++: ea_t) referenced address @return: ea of selected xref, BADADDR if none selected +Help on class chooser_base_t in module ida_kernwin: + +class chooser_base_t(builtins.object) + | Proxy of C++ chooser_base_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | ask_item_attrs(self, *args) -> 'bool' + | ask_item_attrs(self) -> bool + | should chooser generate ui_get_chooser_item_attrs events? + | + | can_del(self, *args) -> 'bool' + | can_del(self) -> bool + | + | can_edit(self, *args) -> 'bool' + | can_edit(self) -> bool + | + | can_filter(self, *args) -> 'bool' + | can_filter(self) -> bool + | + | can_ins(self, *args) -> 'bool' + | can_ins(self) -> bool + | is an operation allowed? + | + | can_refresh(self, *args) -> 'bool' + | can_refresh(self) -> bool + | + | can_sort(self, *args) -> 'bool' + | can_sort(self) -> bool + | + | get_builtin_number(self, *args) -> 'uint' + | get_builtin_number(self) -> uint + | get number of the built-in chooser + | + | get_count(self, *args) -> 'size_t' + | get_count(self) -> size_t + | get the number of elements in the chooser + | + | get_ea(self, *args) -> '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()) + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address + | + | get_quick_filter_initial_mode(self, *args) -> 'int' + | get_quick_filter_initial_mode(self) -> int + | + | get_row(self, *args) -> 'PyObject *' + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) + | get a description of an element. + | + | @param n: (C++: size_t) element number (0..get_count()-1) + | + | has_diff_capability(self, *args) -> 'bool' + | has_diff_capability(self) -> bool + | + | has_dirtree(self, *args) -> 'bool' + | has_dirtree(self) -> bool + | + | is_dirtree_persisted(self, *args) -> 'bool' + | is_dirtree_persisted(self) -> bool + | + | is_force_default(self, *args) -> 'bool' + | is_force_default(self) -> bool + | should selection of the already opened non-modal chooser be changed? + | + | is_lazy_loaded(self, *args) -> 'bool' + | is_lazy_loaded(self) -> bool + | + | is_modal(self, *args) -> 'bool' + | is_modal(self) -> bool + | is choose modal? + | + | is_multi(self, *args) -> 'bool' + | is_multi(self) -> bool + | is multi-selection allowed? + | + | is_noidb(self, *args) -> 'bool' + | is_noidb(self) -> bool + | can use the chooser before opening the database? + | + | is_quick_filter_visible_initially(self, *args) -> 'bool' + | is_quick_filter_visible_initially(self) -> bool + | + | is_same(self, *args) -> 'bool' + | is_same(self, other) -> bool + | do the current and the given objects hold the same data? + | + | @param other: (C++: const chooser_base_t *) chooser_base_t const * + | + | is_status_bar_hidden(self, *args) -> 'bool' + | is_status_bar_hidden(self) -> bool + | + | popup_allowed(self, *args) -> 'bool' + | popup_allowed(self, stdact_idx) -> bool + | is a standard action allowed? + | + | @param stdact_idx: (C++: int) + | + | should_rename_trigger_edit(self, *args) -> 'bool' + | should_rename_trigger_edit(self) -> bool + | + | should_restore_geometry(self, *args) -> 'bool' + | should_restore_geometry(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | columns + | columns + | + | deflt_col + | deflt_col + | + | header + | header + | + | height + | height + | + | icon + | icon + | + | popup_names + | popup_names + | + | thisown + | The membership flag + | + | title + | title + | + | width + | width + | + | widths + | widths + | + | x0 + | x0 + | + | x1 + | x1 + | + | y0 + | y0 + | + | y1 + | y1 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | NSTDPOPUPS = 4 + | + | POPUP_DEL = 1 + | + | POPUP_EDIT = 2 + | + | POPUP_INS = 0 + | + | POPUP_REFRESH = 3 + Help on class chooser_item_attrs_t in module ida_kernwin: class chooser_item_attrs_t(builtins.object) @@ -45984,18 +59638,74 @@ class chooser_item_attrs_t(builtins.object) | list of weak references to the object (if defined) | | color - | chooser_item_attrs_t_color_get(self) -> bgcolor_t + | color | | flags - | chooser_item_attrs_t_flags_get(self) -> int + | flags | | thisown | The membership flag +Help on class chooser_stdact_desc_t in module ida_kernwin: + +class chooser_stdact_desc_t(builtins.object) + | Proxy of C++ chooser_stdact_desc_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _label=None, _tooltip=None, _icon=-1) -> chooser_stdact_desc_t + | + | @param _label: char const * + | @param _tooltip: char const * + | @param _icon: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chooser_stdact_desc_t(...) + | delete_chooser_stdact_desc_t(self) + | + | ucb(self, *args) -> '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. + | + | @param arg0: action_update_ctx_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | icon + | icon + | + | label + | label + | + | thisown + | The membership flag + | + | tooltip + | tooltip + | + | version + | version + Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) -> 'void' clear_refresh_request(mask) + + @param mask: uint64 Help on class cli_t in module ida_kernwin: @@ -46011,6 +59721,42 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | | Methods defined here: | + | OnCompleteLine(self, prefix, n, line, prefix_start) + | The user pressed Tab. Find a completion number N for prefix PREFIX + | + | This callback is optional. + | + | @param prefix: Line prefix at prefix_start (string) + | @param n: completion number (int) + | @param line: the current line (string) + | @param 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. + | + | @param 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. + | + | @param line: current input line + | @param x: current x coordinate of the cursor + | @param sellen: current selection length (usually 0) + | @param vkey: virtual key code. if the key has been handled, it should be returned as zero + | @param 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) + | | __del__(self) | | __init__(self) @@ -46022,9 +59768,9 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) | @param flags: Feature bits. No bits are defined yet, must be 0 | @param sname: Short name (displayed on the button) | @param lname: Long name (displayed in the menu) - | @param hint: Hint for the input line + | @param hint: Hint for the input line | - | @return Boolean: True-Success, False-Failed + | @return: Boolean: True-Success, False-Failed | | unregister(self) | Unregisters the CLI (if it was registered) @@ -46047,128 +59793,101 @@ Help on function close_chooser in module ida_kernwin: close_chooser(*args) -> 'bool' close_chooser(title) -> bool + Close a non-modal chooser (ui_close_chooser). - - Close a non-modal chooser ( 'ui_close_chooser' ). - - @param title: window title of chooser to close (C++: const char *) + @param title: (C++: const char *) window title of chooser to close @return: success Help on function close_widget in module ida_kernwin: close_widget(*args) -> 'void' close_widget(widget, options) + Close widget (ui_close_widget, only gui version). - - Close widget ( 'ui_close_widget' , only gui version). - - @param widget: pointer to the widget to close (C++: TWidget *) - @param options: Form close flags (C++: int) + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags Help on function clr_cancelled in module ida_kernwin: clr_cancelled(*args) -> 'void' clr_cancelled() - - - Clear "Cancelled" flag ( 'ui_clr_cancelled' ) + Clear "Cancelled" flag (ui_clr_cancelled) Help on function create_code_viewer in module ida_kernwin: create_code_viewer(*args) -> '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. - - 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. - - @param custview: the custom view to be added (C++: TWidget *) - @param flags: Code viewer flags (C++: int) - @param parent: widget to contain the new code viewer (C++: TWidget *) + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer Help on function create_empty_widget in module ida_kernwin: create_empty_widget(*args) -> 'TWidget *' create_empty_widget(title, icon=-1) -> TWidget * - - Create an empty widget, serving as a container for custom user widgets - @param title (C++: const char *) - @param icon (C++: int) + @param title: (C++: const char *) char const * + @param icon: (C++: int) Help on function create_menu in module ida_kernwin: create_menu(*args) -> '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-NULL, it - provides information about where the menu should be positioned. First, - IDA will try and resolve the corresponding menu by its name. If such - an existing menu is found and is present in the menubar, then the new - menu will be inserted in the menubar before it. Otherwise, IDA will - try to resolve 'menupath' as it would for 'attach_action_to_menu()' - and, if found, add the new menu like so: - + 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. - @param name: name of menu (must be unique) (C++: const char *) - @param label: label of menu (C++: const char *) - @param menupath: where should the menu be inserted (C++: const char *) + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted @return: success Help on function create_toolbar in module ida_kernwin: create_toolbar(*args) -> 'bool' create_toolbar(name, label, before=None, flags=0) -> bool - - Create a toolbar with the given name, label and optional position - @param name: name of toolbar (must be unique) (C++: const char *) - @param label: label of toolbar (C++: const char *) - @param before: if non-NULL, the toolbar before which the new toolbar - will be inserted (C++: const char *) - @param flags: a combination of create toolbar flags , to determine - toolbar position (C++: int) + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position @return: success Help on function custom_viewer_jump in module ida_kernwin: custom_viewer_jump(*args) -> 'bool' custom_viewer_jump(v, loc, flags=0) -> bool + Append 'loc' to the viewer's history, and cause the viewer to display it. - - Append 'loc' to the viewer's history, and cause the viewer to display - it. - - @param v: (TWidget *) (C++: TWidget *) - @param loc: (const lochist_entry_t &) (C++: const lochist_entry_t - &) - @param flags: (uint32) or'ed combination of CVNF_* values (C++: - uint32) + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values @return: success Help on function del_hotkey in module ida_kernwin: del_hotkey(*args) -> 'bool' del_hotkey(pyctx) -> bool - - Deletes a previously registered function hotkey @param ctx: Hotkey context previously returned by add_hotkey() @@ -46180,70 +59899,56 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) + @param hotkey: char const * Help on function delete_menu in module ida_kernwin: delete_menu(*args) -> 'bool' delete_menu(name) -> bool - - Delete an existing menu - @param name: name of menu (C++: const char *) + @param name: (C++: const char *) name of menu @return: success Help on function delete_toolbar in module ida_kernwin: delete_toolbar(*args) -> 'bool' delete_toolbar(name) -> bool - - Delete an existing toolbar - @param name: name of toolbar (C++: const char *) + @param name: (C++: const char *) name of toolbar @return: success Help on function detach_action_from_menu in module ida_kernwin: detach_action_from_menu(*args) -> 'bool' detach_action_from_menu(menupath, name) -> bool + Detach an action from the menu (ui_detach_action_from_menu). - - Detach an action from the menu ( 'ui_detach_action_from_menu' ). - - @param menupath: path to the menu item (C++: const char *) - @param name: the action name (C++: const char *) + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name @return: success Help on function detach_action_from_popup in module ida_kernwin: detach_action_from_popup(*args) -> '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. - - 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. - - @param widget: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name Help on function detach_action_from_toolbar in module ida_kernwin: detach_action_from_toolbar(*args) -> 'bool' detach_action_from_toolbar(toolbar_name, name) -> bool + Detach an action from the toolbar (ui_detach_action_from_toolbar). - - Detach an action from the toolbar ( 'ui_detach_action_from_toolbar' ). - - @param toolbar_name: the name of the toolbar (C++: const char *) - @param name: the action name (C++: const char *) + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name @return: success Help on class disabled_script_timeout_t in module ida_kernwin: @@ -46274,6 +59979,8 @@ class disasm_line_t(builtins.object) | __init__(self, *args) | __init__(self) -> disasm_line_t | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -46290,19 +59997,19 @@ class disasm_line_t(builtins.object) | list of weak references to the object (if defined) | | at - | disasm_line_t_at_get(self) -> place_t + | at | | bg_color - | disasm_line_t_bg_color_get(self) -> bgcolor_t + | bg_color | | is_default - | disasm_line_t_is_default_get(self) -> bool + | is_default | | line - | disasm_line_t_line_get(self) -> qstring * + | line | | prefix_color - | disasm_line_t_prefix_color_get(self) -> color_t + | prefix_color | | thisown | The membership flag @@ -46316,10 +60023,14 @@ class disasm_text_t(builtins.object) | | __getitem__(self, *args) -> 'disasm_line_t const &' | __getitem__(self, i) -> disasm_line_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -46331,19 +60042,23 @@ class disasm_text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: disasm_line_t const & | | __swig_destroy__ = delete_disasm_text_t(...) | delete_disasm_text_t(self) | | at(self, *args) -> 'disasm_line_t const &' | at(self, _idx) -> disasm_line_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | begin(self) -> disasm_line_t - | begin(self) -> disasm_line_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -46356,11 +60071,16 @@ class disasm_text_t(builtins.object) | | end(self, *args) -> 'qvector< disasm_line_t >::const_iterator' | end(self) -> disasm_line_t - | end(self) -> disasm_line_t | | erase(self, *args) -> 'qvector< disasm_line_t >::iterator' | erase(self, it) -> disasm_line_t + | + | @param it: qvector< disasm_line_t >::iterator + | | erase(self, first, last) -> disasm_line_t + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator | | extract(self, *args) -> 'disasm_line_t *' | extract(self) -> disasm_line_t @@ -46370,18 +60090,29 @@ class disasm_text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=disasm_line_t()) + | + | @param x: disasm_line_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: disasm_line_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' | insert(self, it, x) -> disasm_line_t + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'disasm_line_t &' | push_back(self, x) + | + | @param x: disasm_line_t const & + | | push_back(self) -> disasm_line_t | | qclear(self, *args) -> 'void' @@ -46389,16 +60120,26 @@ class disasm_text_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: disasm_line_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< disasm_line_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46419,9 +60160,7 @@ Help on function display_copyright_warning in module ida_kernwin: display_copyright_warning(*args) -> 'bool' display_copyright_warning() -> bool - - - Display copyright warning ( 'ui_copywarn' ). + Display copyright warning (ui_copywarn). @return: yes/no @@ -46429,59 +60168,50 @@ Help on function display_widget in module ida_kernwin: display_widget(*args) -> 'void' display_widget(widget, options, dest_ctrl=None) - - Display a widget, dock it if not done before - @param widget: widget to display (C++: TWidget *) - @param options: Widget open flags (C++: uint32) - @param dest_ctrl: where to dock: if NULL or invalid then use the - active docker if there is not create a new tab - relative to current active tab (C++: const char *) + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param 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 Help on function ea2str in module ida_kernwin: ea2str(*args) -> 'size_t' ea2str(ea) -> str - - Convert linear address to UTF-8 string. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function ea_viewer_history_push_and_jump in module ida_kernwin: ea_viewer_history_push_and_jump(*args) -> '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. - - 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. - - @param v: ea viewer (C++: TWidget *) - @param ea: jump destination (C++: ea_t) - @param x: coords on screen (C++: int) - @param y: coords on screen (C++: int) - @param lnnum: desired line number of given address (C++: int) + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address Help on function enable_chooser_item_attrs in module ida_kernwin: enable_chooser_item_attrs(*args) -> '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. - - Enable item-specific attributes for chooser items ( - 'ui_enable_chooser_item_attrs' ). For example: color list items - differently depending on a criterium.If enabled, the chooser will - generate ui_get_chooser_item_attrsevents that can be intercepted by a - plugin to modify the item attributes.This event is generated only in - the GUI version of IDA.Specifying 'CH_ATTRS' bit at the chooser - creation time has the same effect. - - @param chooser_caption (C++: const char *) - @param enable (C++: bool) + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) @return: success Help on class enumplace_t in module ida_kernwin: @@ -46508,97 +60238,207 @@ class enumplace_t(place_t) | Data descriptors defined here: | | bmask - | enumplace_t_bmask_get(self) -> bmask_t + | bmask | | idx - | enumplace_t_idx_get(self) -> size_t + | idx | | serial - | enumplace_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | value - | enumplace_t_value_get(self) -> uval_t + | value | | ---------------------------------------------------------------------- | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -46610,14 +60450,12 @@ class enumplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function error in module ida_kernwin: error(*args) -> 'void' error(format) - - Display a fatal message in a message box and quit IDA @param format: message to print @@ -46626,13 +60464,11 @@ Help on function execute_sync in module ida_kernwin: execute_sync(*args) -> 'int' execute_sync(py_callable, reqf) -> int - - Executes a function in the context of the main thread. If the current thread not the main thread, then the call is queued and executed afterwards. - @param callable: A python callable object, must return an integer value + @param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable @@ -46640,355 +60476,358 @@ Help on function execute_ui_requests in module ida_kernwin: execute_ui_requests(*args) -> 'bool' execute_ui_requests(py_list) -> bool - - Inserts a list of callables into the UI message processing queue. When the UI is ready it will call one callable. A callable can request to be called more than once if it returns True. @param callable_list: A list of python callable objects. @note: A callable should return True if it wants to be called more than once. - @return: Boolean. False if the list contains a non callabale item + @return: Boolean. False if the list contains a non callable item Help on function find_widget in module ida_kernwin: find_widget(*args) -> '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! - - Find widget with the specified caption (only gui version) ( - 'ui_find_widget' ). NB: this callback works only with the tabbed - widgets! - - @param caption: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + @param 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 Help on function formchgcbfa_close in module ida_kernwin: formchgcbfa_close(*args) -> 'void' formchgcbfa_close(p_fa, close_normally) + + @param p_fa: size_t + @param close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) -> 'bool' formchgcbfa_enable_field(p_fa, fid, enable) -> bool + + @param p_fa: size_t + @param fid: int + @param enable: bool Help on function formchgcbfa_get_field_value in module ida_kernwin: formchgcbfa_get_field_value(*args) -> 'PyObject *' formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) -> 'int' formchgcbfa_get_focused_field(p_fa) -> int + + @param p_fa: size_t Help on function formchgcbfa_move_field in module ida_kernwin: formchgcbfa_move_field(*args) -> 'bool' formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) -> 'void' formchgcbfa_refresh_field(p_fa, fid) + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_set_field_value in module ida_kernwin: formchgcbfa_set_field_value(*args) -> 'bool' formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) -> 'bool' formchgcbfa_set_focused_field(p_fa, fid) -> bool + + @param p_fa: size_t + @param fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) -> 'bool' formchgcbfa_show_field(p_fa, fid, show) -> bool + + @param p_fa: size_t + @param fid: int + @param show: bool Help on function free_custom_icon in module ida_kernwin: free_custom_icon(*args) -> 'void' free_custom_icon(icon_id) - - Frees an icon loaded with load_custom_icon() + + @param icon_id: int Help on function gen_disasm_text in module ida_kernwin: gen_disasm_text(*args) -> 'void' gen_disasm_text(text, ea1, ea2, truncate_lines) - - Generate disassembly text for a range. - @param text: result (C++: text_t &) - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @param truncate_lines: (on idainfo::margin ) (C++: bool) + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) Help on function get_action_checkable in module ida_kernwin: get_action_checkable(*args) -> 'bool *' get_action_checkable(name) -> bool + Get an action's checkability (ui_get_action_attr). - - Get an action's checkability ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_checked in module ida_kernwin: get_action_checked(*args) -> 'bool *' get_action_checked(name) -> bool + Get an action's checked state (ui_get_action_attr). - - Get an action's checked state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_icon in module ida_kernwin: get_action_icon(*args) -> 'int *' get_action_icon(name) -> bool + Get an action's icon (ui_get_action_attr). - - Get an action's icon ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_label in module ida_kernwin: get_action_label(*args) -> 'qstring *' get_action_label(name) -> str + Get an action's label (ui_get_action_attr). - - Get an action's label ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_shortcut in module ida_kernwin: get_action_shortcut(*args) -> 'qstring *' get_action_shortcut(name) -> str + Get an action's shortcut (ui_get_action_attr). - - Get an action's shortcut ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_state in module ida_kernwin: get_action_state(*args) -> 'action_state_t *' get_action_state(name) -> bool + Get an action's state (ui_get_action_attr). - - Get an action's state ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_tooltip in module ida_kernwin: get_action_tooltip(*args) -> 'qstring *' get_action_tooltip(name) -> str + Get an action's tooltip (ui_get_action_attr). - - Get an action's tooltip ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_action_visibility in module ida_kernwin: get_action_visibility(*args) -> 'bool *' get_action_visibility(name) -> bool + Get an action's visibility (ui_get_action_attr). - - Get an action's visibility ( 'ui_get_action_attr' ). - - @param name: the action name (C++: const char *) + @param name: (C++: const char *) the action name @return: success Help on function get_active_modal_widget in module ida_kernwin: get_active_modal_widget(*args) -> '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. - - Get the current, active modal TWidget instance. Note that in this - context, the "wait dialog" is not considered: this function will - return NULL even if it is currently shown. - - @return: TWidget * the active modal widget, or NULL + @return: TWidget * the active modal widget, or nullptr Help on function get_addon_info in module ida_kernwin: get_addon_info(*args) -> '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 - - 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 - - @param id (C++: const char *) - @param info (C++: addon_info_t *) + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) @return: false if not found Help on function get_addon_info_idx in module ida_kernwin: get_addon_info_idx(*args) -> '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 - - 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 - - @param index (C++: int) - @param info (C++: addon_info_t *) + @param index: (C++: int) + @param info: (C++: addon_info_t *) @return: false if index is out of range Help on function get_chooser_data in module ida_kernwin: get_chooser_data(*args) -> 'PyObject *' - get_chooser_data(chooser_caption, n) -> 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. - - Get the text corresponding to the index N in the chooser data. Use -1 - to get the header. - - @param chooser_caption (C++: const char *) - @param n (C++: int) + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) Help on function get_chooser_obj in module ida_kernwin: get_chooser_obj(*args) -> '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. - Get the underlying object of the specified chooser ( - 'ui_get_chooser_obj' ).This is object is chooser-specific. + @note: This is object is chooser-specific. - @param chooser_caption (C++: const char *) + @param chooser_caption: (C++: const char *) char const * @return: the object that was used to create the chooser Help on function get_curline in module ida_kernwin: get_curline(*args) -> 'char const *' get_curline() -> char const * + Get current line from the disassemble window (ui_get_curline). - - 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) + @return: cptr current line with the color codes (use tag_remove() to remove the + color codes) Help on function get_current_viewer in module ida_kernwin: get_current_viewer(*args) -> 'TWidget *' get_current_viewer() -> TWidget * - - - Get current ida viewer (idaview or custom viewer) ( - 'ui_get_current_viewer' ) + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) Help on function get_current_widget in module ida_kernwin: get_current_widget(*args) -> 'TWidget *' get_current_widget() -> TWidget * - - - Get a pointer to the current widget ( 'ui_get_current_widget' ). + Get a pointer to the current widget (ui_get_current_widget). Help on function get_cursor in module ida_kernwin: get_cursor(*args) -> 'int *, int *' get_cursor() -> bool + Get the cursor position on the screen (ui_get_cursor). + @note: coordinates are 0-based - - Get the cursor position on the screen ( 'ui_get_cursor' ).coordinates - are 0-based + @retval true: pointers are filled + @retval false: no disassembly window open Help on function get_custom_viewer_curline in module ida_kernwin: get_custom_viewer_curline(*args) -> '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 - - Get current line of custom viewer ( 'ui_get_custom_viewer_curline' ). - The returned line contains color codes - - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) @return: pointer to contents of current line Help on function get_custom_viewer_location in module ida_kernwin: 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). - - Get the current location in a custom viewer ( - 'ui_get_custom_viewer_location' ). - - - @param out (C++: lochist_entry_t *) - @param custom_viewer (C++: TWidget *) - @param mouse (C++: bool) + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) Help on function get_custom_viewer_place in module ida_kernwin: get_custom_viewer_place(*args) -> '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() - Get current place in a custom viewer ( 'ui_get_curplace' ).See also - the more complete 'get_custom_viewer_location()' + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) -> 'int' + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param 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 Help on function get_ea_viewer_history_info in module ida_kernwin: get_ea_viewer_history_info(*args) -> 'bool' get_ea_viewer_history_info(nback, nfwd, v) -> bool + Get information about what's in the history (ui_ea_viewer_history_info). - - Get information about what's in the history ( - 'ui_ea_viewer_history_info' ). - - @param nback: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise Help on function get_hexdump_ea in module ida_kernwin: get_hexdump_ea(*args) -> 'ea_t' get_hexdump_ea(hexdump_num) -> ea_t - - Get the current address in a hex view. - @param hexdump_num: number of hexview window (C++: int) + @param hexdump_num: (C++: int) number of hexview window Help on function get_highlight in module ida_kernwin: get_highlight(*args) -> 'PyObject *' - get_highlight(v) -> PyObject * - - + get_highlight(v, in_flags=0) -> (str, int) or None Returns the currently highlighted identifier and flags + @param v: The UI widget to operate on + @param 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. @@ -46996,39 +60835,29 @@ Help on function get_kernel_version in module ida_kernwin: get_kernel_version(*args) -> 'size_t' get_kernel_version() -> str - - Get IDA kernel version (in a string like "5.1"). Help on function get_key_code in module ida_kernwin: get_key_code(*args) -> 'ushort' get_key_code(keyname) -> ushort + Get keyboard key code by its name (ui_get_key_code) - - Get keyboard key code by its name ( 'ui_get_key_code' ) - - - @param keyname (C++: const char *) + @param keyname: (C++: const char *) char const * Help on function get_navband_ea in module ida_kernwin: get_navband_ea(*args) -> 'ea_t' get_navband_ea(pixel) -> ea_t - - Translate the pixel position on the navigation band, into an address. - - @param pixel (C++: int) + @param pixel: (C++: int) Help on function get_navband_pixel in module ida_kernwin: get_navband_pixel(*args) -> 'bool *' get_navband_pixel(ea) -> int - - - Maps an address, onto a pixel coordinate within the navband + Maps an address, onto a pixel coordinate within the navigation band @param ea: The address to map @return: a list [pixel, is_vertical] @@ -47037,39 +60866,33 @@ Help on function get_opnum in module ida_kernwin: get_opnum(*args) -> 'int' get_opnum() -> int - - - Get current operand number, -1 means no operand ( 'ui_get_opnum' ) + Get current operand number, -1 means no operand (ui_get_opnum) Help on function get_output_curline in module ida_kernwin: get_output_curline(*args) -> 'qstring *' get_output_curline(mouse) -> str + Get current line of output window (ui_get_output_curline). - - Get current line of output window ( 'ui_get_output_curline' ). - - @param mouse: current for mouse pointer? (C++: bool) + @param mouse: (C++: bool) current for mouse pointer? @return: false if output contains no text Help on function get_output_cursor in module ida_kernwin: get_output_cursor(*args) -> '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 - - Get coordinates of the output window's cursor ( 'ui_get_output_cursor' - ).coordinates are 0-basedthis function will succeed even if the output - window is not visible + @retval false: the output window has been destroyed. + @retval true: pointers are filled Help on function get_output_selected_text in module ida_kernwin: get_output_selected_text(*args) -> 'qstring *' get_output_selected_text() -> str - - - Returns selected text from output window ( - 'ui_get_output_selected_text' ). + Returns selected text from output window (ui_get_output_selected_text). @return: true if there is a selection @@ -47077,147 +60900,135 @@ Help on function get_place_class in module ida_kernwin: get_place_class(*args) -> '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(). - - Get information about a previously-registered 'place_t' class. See - also 'register_place_class()' . - - @param out_flags: output flags (can be NULL) (C++: int *) - @param out_sdk_version: sdk version the place was created with (can be - NULL) (C++: int *) - @param id: place class ID (C++: int) - @return: the place_t template, or NULL if not found + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found Help on function get_place_class_id in module ida_kernwin: get_place_class_id(*args) -> 'int' get_place_class_id(name) -> int + Get the place class ID for the place that has been registered as 'name'. - - Get the place class ID for the place that has been registered as - 'name'. - - @param name: the class name (C++: const char *) + @param name: (C++: const char *) the class name @return: the place class ID, or -1 if not found Help on function get_place_class_template in module ida_kernwin: get_place_class_template(*args) -> 'place_t const *' get_place_class_template(id) -> place_t + See get_place_class() - - See 'get_place_class()' - - - @param id (C++: int) + @param id: (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) -> 'PyObject *' - get_registered_actions() -> PyObject * - - + get_registered_actions() -> [str, ...] Get a list of all currently-registered actions Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) + +Help on function get_synced_group in module ida_kernwin: + +get_synced_group(*args) -> 'synced_group_t const *' + get_synced_group(w) -> synced_group_t + Get the group of widgets/registers this view is synchronized with - - Get the address at the screen cursor ( 'ui_screenea' ) + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr Help on function get_tab_size in module ida_kernwin: get_tab_size(*args) -> 'int' get_tab_size(path) -> int + Get the size of a tab in spaces (ui_get_tab_size). + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) -> '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) - Get the size of a tab in spaces ( 'ui_get_tab_size' ). - - @param path: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event Help on function get_user_strlist_options in module ida_kernwin: get_user_strlist_options(*args) -> 'void' get_user_strlist_options(out) + + @param out: strwinsetup_t * Help on function get_view_renderer_type in module ida_kernwin: get_view_renderer_type(*args) -> '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) - - Get the type of renderer currently in use in the given view ( - 'ui_get_renderer_type' ) - - - @param v (C++: TWidget *) + @param v: (C++: TWidget *) Help on function get_viewer_place_type in module ida_kernwin: get_viewer_place_type(*args) -> '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). - - Get the type of 'place_t' instances a viewer uses & creates ( - 'ui_get_viewer_place_type' ). - - - @param viewer (C++: TWidget *) + @param viewer: (C++: TWidget *) Help on function get_viewer_user_data in module ida_kernwin: get_viewer_user_data(*args) -> 'void *' get_viewer_user_data(viewer) -> void * + Get the user data from a custom viewer (ui_get_viewer_user_data) - - Get the user data from a custom viewer ( 'ui_get_viewer_user_data' ) - - - @param viewer (C++: TWidget *) + @param viewer: (C++: TWidget *) Help on function get_widget_title in module ida_kernwin: get_widget_title(*args) -> 'qstring *' get_widget_title(widget) -> str + Get the TWidget's title (ui_get_widget_title). - - Get the TWidget's title ( 'ui_get_widget_title' ). - - - @param widget (C++: TWidget *) + @param widget: (C++: TWidget *) Help on function get_widget_type in module ida_kernwin: get_widget_type(*args) -> 'twidget_type_t' get_widget_type(widget) -> twidget_type_t + Get the type of the TWidget * (ui_get_widget_type). - - Get the type of the TWidget * ( 'ui_get_widget_type' ). - - - @param widget (C++: TWidget *) + @param widget: (C++: TWidget *) Help on function get_window_id in module ida_kernwin: get_window_id(*args) -> 'void *' get_window_id(name=None) -> void * - - Get the system-specific window ID (GUI version only) - @param name (C++: const char *) + @param name: (C++: const char *) name of the window (nullptr means the main IDA window) @return: the low-level window ID Help on function hide_wait_box in module ida_kernwin: hide_wait_box(*args) -> 'void' hide_wait_box() - - Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -47244,7 +61055,7 @@ class idaplace_t(place_t) | Data descriptors defined here: | | ea - | idaplace_t_ea_get(self) -> ea_t + | ea | | thisown | The membership flag @@ -47253,79 +61064,189 @@ class idaplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -47337,84 +61258,244 @@ class idaplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on function info in module ida_kernwin: info(*args) -> 'void' info(format) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_keyboard_data_t(...) + | delete_input_event_keyboard_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_mouse_data_t(...) + | delete_input_event_mouse_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_shortcut_data_t(...) + | delete_input_event_shortcut_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(builtins.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_t(...) + | delete_input_event_t(self) + | + | _source_as_size(self, *args) -> 'size_t' + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) -> 'size_t' + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag Help on function install_command_interpreter in module ida_kernwin: install_command_interpreter(*args) -> 'int' install_command_interpreter(py_obj) -> int + Install command line interpreter (ui_install_cli) - - Install command line interpreter ( 'ui_install_cli' ) + @param py_obj: PyObject * Help on function internal_register_place_class in module ida_kernwin: internal_register_place_class(*args) -> 'int' internal_register_place_class(tmplate, flags, owner, sdk_version) -> int + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int Help on function is_action_enabled in module ida_kernwin: is_action_enabled(*args) -> 'bool' is_action_enabled(s) -> bool - - Check if the given action state is one of AST_ENABLE*. - - @param s (C++: action_state_t) + @param s: (C++: action_state_t) enum action_state_t Help on function is_chooser_widget in module ida_kernwin: is_chooser_widget(*args) -> 'bool' is_chooser_widget(t) -> bool - - Does the given widget type specify a chooser widget? - - @param t (C++: twidget_type_t) + @param t: (C++: twidget_type_t) Help on function is_idaq in module ida_kernwin: is_idaq(*args) -> 'bool' is_idaq() -> bool - - Returns True or False depending if IDAPython is hosted by IDAQ +Help on function is_idaview in module ida_kernwin: + +is_idaview(*args) -> 'bool' + is_idaview(v) -> bool + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) + Help on function is_msg_inited in module ida_kernwin: is_msg_inited(*args) -> 'bool' is_msg_inited() -> bool - - Can we use msg() functions? Help on function is_place_class_ea_capable in module ida_kernwin: is_place_class_ea_capable(*args) -> 'bool' is_place_class_ea_capable(id) -> bool + See get_place_class() - - See 'get_place_class()' - - - @param id (C++: int) + @param id: (C++: int) Help on function is_refresh_requested in module ida_kernwin: is_refresh_requested(*args) -> 'bool' is_refresh_requested(mask) -> bool - - Get a refresh request state - @param mask: Window refresh flags (C++: uint64) + @param mask: (C++: uint64) Window refresh flags @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -47430,7 +61511,7 @@ class jobj_wrapper_t(builtins.object) | __repr__ = _swig_repr(self) | | get_dict(self, *args) -> 'PyObject *' - | get_dict(self) -> PyObject * + | get_dict(self) -> dict | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47448,15 +61529,474 @@ Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success jumpto(custom_viewer, place, x, y) -> bool + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int + +Help on function l_compare2 in module ida_kernwin: + +l_compare2(*args) -> 'int' + l_compare2(t1, t2, ud) -> int - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * + +Help on class line_rendering_output_entries_refs_t in module ida_kernwin: + +class line_rendering_output_entries_refs_t(builtins.object) + | Proxy of C++ qvector< line_rendering_output_entry_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __getitem__(self, *args) -> 'line_rendering_output_entry_t *const &' + | __getitem__(self, i) -> line_rendering_output_entry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & + | + | __swig_destroy__ = delete_line_rendering_output_entries_refs_t(...) + | delete_line_rendering_output_entries_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) -> 'void' + | _internal_push_back(self, e) + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | at(self, *args) -> 'line_rendering_output_entry_t *const &' + | at(self, _idx) -> line_rendering_output_entry_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: line_rendering_output_entry_t *const & + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | + | @param x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, e) + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< line_rendering_output_entry_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class line_rendering_output_entry_t in module ida_kernwin: + +class line_rendering_output_entry_t(builtins.object) + | Proxy of C++ line_rendering_output_entry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_line_rendering_output_entry_t(...) + | delete_line_rendering_output_entry_t(self) + | + | is_bg_color_direct(self, *args) -> 'bool' + | is_bg_color_direct(self) -> bool + | + | is_bg_color_empty(self, *args) -> 'bool' + | is_bg_color_empty(self) -> bool + | + | is_bg_color_key(self, *args) -> 'bool' + | is_bg_color_key(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bg_color + | bg_color + | + | cpx + | cpx + | + | flags + | flags + | + | line + | line + | + | nchars + | nchars + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class linearray_t in module ida_kernwin: + +class linearray_t(builtins.object) + | Proxy of C++ linearray_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ud) -> linearray_t + | + | @param _ud: void * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_linearray_t(...) + | delete_linearray_t(self) + | + | beginning(self, *args) -> 'bool' + | beginning(self) -> bool + | Are we at the beginning? + | + | down(self, *args) -> 'qstring const *' + | down(self) -> qstring const * + | Get a line from down direction. place is ok BEFORE + | + | ending(self, *args) -> 'bool' + | ending(self) -> bool + | + | get_bg_color(self, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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. + | + | @param 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, *args) -> 'void' + | set_userdata(self, userd) + | Change the user data. + | + | @param userd: (C++: void *) + | + | up(self, *args) -> 'qstring const *' + | up(self) -> qstring const * + | Get a line from up direction. place is ok AFTER + | + | userdata(self, *args) -> 'void *' + | userdata(self) -> void * + | Get pointer to user data. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lines_rendering_input_t in module ida_kernwin: + +class lines_rendering_input_t(builtins.object) + | Proxy of C++ lines_rendering_input_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_input_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_input_t(...) + | delete_lines_rendering_input_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | sections_lines + | sections_lines + | + | sync_group + | sync_group + | + | thisown + | The membership flag + +Help on class lines_rendering_output_t in module ida_kernwin: + +class lines_rendering_output_t(builtins.object) + | Proxy of C++ lines_rendering_output_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_output_t(...) + | delete_lines_rendering_output_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lines_rendering_output_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | entries + | entries + | + | flags + | flags + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function load_custom_icon in module ida_kernwin: @@ -47465,16 +62005,7 @@ load_custom_icon(file_name=None, data=None, format=None) If file_name is passed then the other two arguments are ignored. - @param file_name: The icon file name - @param data: The icon data - @param format: The icon data format - - @return: Icon id or 0 on failure. - Use free_custom_icon() to free it - - - Load an icon from a file ( 'ui_load_custom_icon_file' ). Also see - 'load_custom_icon(const void *, unsigned int, const char *)' + Load an icon and return its id (ui_load_custom_icon). @return: icon id @@ -47482,33 +62013,27 @@ Help on function load_dbg_dbginfo in module ida_kernwin: load_dbg_dbginfo(*args) -> 'bool' load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool - - Load debugging information from a file. - @param path: path to file (C++: const char *) - @param li: loader input. if NULL, check DBG_NAME_KEY (C++: linput_t *) - @param base: loading address (C++: ea_t) - @param verbose: dump status to message window (C++: bool) + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window Help on function lookup_key_code in module ida_kernwin: lookup_key_code(*args) -> 'ushort' lookup_key_code(key, shift, is_qt) -> ushort + Get shortcut code previously created by ui_get_key_code. - - Get shortcut code previously created by 'ui_get_key_code' . - - @param key: key constant (C++: int) - @param shift: modifiers (C++: int) - @param is_qt: are we using gui version? (C++: bool) + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * - - + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -47522,168 +62047,159 @@ Help on function msg_clear in module ida_kernwin: msg_clear(*args) -> 'void' msg_clear() - - - Clear the "Output window". + Clear the "Output" window. Help on function msg_get_lines in module ida_kernwin: msg_get_lines(*args) -> 'PyObject *' - msg_get_lines(count=-1) -> PyObject * + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) - - Retrieve the last 'count' lines from the output window, in reverse - order (from most recent, to least recent) - - @param count: The number of lines to retrieve. -1 means: all (C++: - int) + @param count: (C++: int) The number of lines to retrieve. -1 means: all Help on function msg_save in module ida_kernwin: msg_save(*args) -> 'bool' msg_save(path) -> bool + Save the "Output" window contents into a file - - Save the "Output window" contents into a file - - @param path: The path of the file to save the contents into. An empty - path means that the user will be prompted for the - destination and, if the file already exists, the user - will be asked to confirm before overriding its contents. - Upon return, 'path' will contain the path that the user - chose. (C++: qstring &) + @param 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 Help on function nomem in module ida_kernwin: nomem(*args) -> 'void' nomem(format) + + @param format: char const * + +Help on function open_bookmarks_window in module ida_kernwin: + +open_bookmarks_window(*args) -> 'TWidget *' + open_bookmarks_window(w) -> TWidget * + Open the bookmarks window (ui_open_builtin). + + @param 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 Help on function open_bpts_window in module ida_kernwin: open_bpts_window(*args) -> 'TWidget *' open_bpts_window(ea) -> TWidget * + Open the breakpoints window (ui_open_builtin). - - Open the breakpoints window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_calls_window in module ida_kernwin: open_calls_window(*args) -> 'TWidget *' open_calls_window(ea) -> TWidget * + Open the function calls window (ui_open_builtin). - - Open the function calls window ( 'ui_open_builtin' ). - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: pointer to resulting window Help on function open_disasm_window in module ida_kernwin: open_disasm_window(*args) -> 'TWidget *' open_disasm_window(window_title, ranges=None) -> TWidget * + Open a disassembly view (ui_open_builtin). - - Open a disassembly view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) - @param ranges: if != NULL, then display a flow chart with the - specified ranges (C++: const rangevec_t *) + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges @return: pointer to resulting window Help on function open_enums_window in module ida_kernwin: open_enums_window(*args) -> 'TWidget *' open_enums_window(const_id=BADADDR) -> TWidget * + Open the enums window (ui_open_builtin). - - Open the enums window ( 'ui_open_builtin' ). - - @param const_id: index of entry to select by default (C++: tid_t) + @param const_id: (C++: tid_t) index of entry to select by default @return: pointer to resulting window Help on function open_exports_window in module ida_kernwin: open_exports_window(*args) -> 'TWidget *' open_exports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_form in module ida_kernwin: 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 Help on function open_frame_window in module ida_kernwin: open_frame_window(*args) -> 'TWidget *' open_frame_window(pfn, offset) -> TWidget * + Open the frame window for the given function (ui_open_builtin). - - Open the frame window for the given function ( 'ui_open_builtin' ). - - @param pfn: function to analyze (C++: func_t *) - @param offset: offset where the cursor is placed (C++: uval_t) - @return: pointer to resulting window if 'pfn' is a valid function and - the window was displayed, NULL otherwise + @param pfn: (C++: func_t *) function to analyze + @param 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 Help on function open_funcs_window in module ida_kernwin: open_funcs_window(*args) -> 'TWidget *' open_funcs_window(ea) -> TWidget * + Open the 'Functions' window (ui_open_builtin). - - Open the functions window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_hexdump_window in module ida_kernwin: open_hexdump_window(*args) -> 'TWidget *' open_hexdump_window(window_title) -> TWidget * + Open a hexdump view (ui_open_builtin). - - Open a hexdump view ( 'ui_open_builtin' ). - - @param window_title: title of view to open (C++: const char *) + @param window_title: (C++: const char *) title of view to open @return: pointer to resulting window Help on function open_imports_window in module ida_kernwin: open_imports_window(*args) -> 'TWidget *' open_imports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). - - Open the exports window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_loctypes_window in module ida_kernwin: open_loctypes_window(*args) -> 'TWidget *' open_loctypes_window(ordinal) -> TWidget * + Open the local types window (ui_open_builtin). - - Open the local types window ( 'ui_open_builtin' ). - - @param ordinal: ordinal of type to select by default (C++: int) + @param ordinal: (C++: int) ordinal of type to select by default @return: pointer to resulting window Help on function open_modules_window in module ida_kernwin: open_modules_window(*args) -> 'TWidget *' open_modules_window() -> TWidget * - - - Open the modules window ( 'ui_open_builtin' ). + Open the modules window (ui_open_builtin). @return: pointer to resulting window @@ -47691,32 +62207,26 @@ Help on function open_names_window in module ida_kernwin: open_names_window(*args) -> 'TWidget *' open_names_window(ea) -> TWidget * + Open the names window (ui_open_builtin). - - Open the names window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_navband_window in module ida_kernwin: open_navband_window(*args) -> 'TWidget *' open_navband_window(ea, zoom) -> TWidget * + Open the navigation band window (ui_open_builtin). - - Open the navigation band window ( 'ui_open_builtin' ). - - @param ea: sets the address of the navband arrow (C++: ea_t) - @param zoom: sets the navband zoom level (C++: int) + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level @return: pointer to resulting window Help on function open_notepad_window in module ida_kernwin: open_notepad_window(*args) -> 'TWidget *' open_notepad_window() -> TWidget * - - - Open the notepad window ( 'ui_open_builtin' ). + Open the notepad window (ui_open_builtin). @return: pointer to resulting window @@ -47724,42 +62234,34 @@ Help on function open_problems_window in module ida_kernwin: open_problems_window(*args) -> 'TWidget *' open_problems_window(ea) -> TWidget * + Open the problems window (ui_open_builtin). - - Open the problems window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_segments_window in module ida_kernwin: open_segments_window(*args) -> 'TWidget *' open_segments_window(ea) -> TWidget * + Open the segments window (ui_open_builtin). - - Open the segments window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_segregs_window in module ida_kernwin: open_segregs_window(*args) -> 'TWidget *' open_segregs_window(ea) -> TWidget * + Open the segment registers window (ui_open_builtin). - - Open the segment registers window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on function open_selectors_window in module ida_kernwin: open_selectors_window(*args) -> 'TWidget *' open_selectors_window() -> TWidget * - - - Open the selectors window ( 'ui_open_builtin' ). + Open the selectors window (ui_open_builtin). @return: pointer to resulting window @@ -47767,9 +62269,7 @@ Help on function open_signatures_window in module ida_kernwin: open_signatures_window(*args) -> 'TWidget *' open_signatures_window() -> TWidget * - - - Open the signatures window ( 'ui_open_builtin' ). + Open the signatures window (ui_open_builtin). @return: pointer to resulting window @@ -47777,9 +62277,7 @@ Help on function open_stack_window in module ida_kernwin: open_stack_window(*args) -> 'TWidget *' open_stack_window() -> TWidget * - - - Open the call stack window ( 'ui_open_builtin' ). + Open the call stack window (ui_open_builtin). @return: pointer to resulting window @@ -47787,36 +62285,28 @@ Help on function open_strings_window in module ida_kernwin: open_strings_window(*args) -> 'TWidget *' open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + Open the 'Strings' window (ui_open_builtin). - - Open the strings window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) - @param selstart: only display strings that occur within this range - (C++: ea_t) - @param selend: only display strings that occur within this range (C++: - ea_t) + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) @return: pointer to resulting window Help on function open_structs_window in module ida_kernwin: open_structs_window(*args) -> 'TWidget *' open_structs_window(id=BADADDR, offset=0) -> TWidget * + Open the structs window (ui_open_builtin). - - Open the structs window ( 'ui_open_builtin' ). - - @param id: index of entry to select by default (C++: tid_t) - @param offset: offset where the cursor is placed (C++: uval_t) + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed @return: pointer to resulting window Help on function open_threads_window in module ida_kernwin: open_threads_window(*args) -> 'TWidget *' open_threads_window() -> TWidget * - - - Open the threads window ( 'ui_open_builtin' ). + Open the threads window (ui_open_builtin). @return: pointer to resulting window @@ -47824,9 +62314,7 @@ Help on function open_tils_window in module ida_kernwin: open_tils_window(*args) -> 'TWidget *' open_tils_window() -> TWidget * - - - Open the type libraries window ( 'ui_open_builtin' ). + Open the type libraries window (ui_open_builtin). @return: pointer to resulting window @@ -47834,9 +62322,7 @@ Help on function open_trace_window in module ida_kernwin: open_trace_window(*args) -> 'TWidget *' open_trace_window() -> TWidget * - - - Open the trace window ( 'ui_open_builtin' ). + Open the tracing window (ui_open_builtin). @return: pointer to resulting window @@ -47844,22 +62330,17 @@ Help on function open_url in module ida_kernwin: open_url(*args) -> 'void' open_url(url) + Open the given url (ui_open_url) - - Open the given url ( 'ui_open_url' ) - - - @param url (C++: const char *) + @param url: (C++: const char *) char const * Help on function open_xrefs_window in module ida_kernwin: open_xrefs_window(*args) -> 'TWidget *' open_xrefs_window(ea) -> TWidget * + Open the cross references window (ui_open_builtin). - - Open the cross references window ( 'ui_open_builtin' ). - - @param ea: index of entry to select by default (C++: ea_t) + @param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window Help on class place_t in module ida_kernwin: @@ -47878,79 +62359,189 @@ class place_t(builtins.object) | delete_place_t(self) | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47962,7 +62553,7 @@ class place_t(builtins.object) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum | | thisown | The membership flag @@ -47971,31 +62562,44 @@ Help on function place_t_as_enumplace_t in module ida_kernwin: place_t_as_enumplace_t(*args) -> 'enumplace_t *' place_t_as_enumplace_t(p) -> enumplace_t + + @param p: place_t * Help on function place_t_as_idaplace_t in module ida_kernwin: place_t_as_idaplace_t(*args) -> 'idaplace_t *' place_t_as_idaplace_t(p) -> idaplace_t + + @param p: place_t * Help on function place_t_as_simpleline_place_t in module ida_kernwin: place_t_as_simpleline_place_t(*args) -> 'simpleline_place_t *' place_t_as_simpleline_place_t(p) -> simpleline_place_t + + @param p: place_t * Help on function place_t_as_structplace_t in module ida_kernwin: place_t_as_structplace_t(*args) -> 'structplace_t *' place_t_as_structplace_t(p) -> structplace_t + + @param p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) -> 'void' plgform_close(py_link, options) + + @param py_link: PyObject * + @param options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) -> 'TWidget *' plgform_get_widget(py_link) -> TWidget * + + @param py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -48005,19 +62609,31 @@ plgform_new(*args) -> 'PyObject *' Help on function plgform_show in module ida_kernwin: plgform_show(*args) -> 'bool' - plgform_show(py_link, py_obj, caption, options=WOPN_DP_TAB|WOPN_RESTORE) -> bool + plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int Help on function process_ui_action in module ida_kernwin: process_ui_action(*args) -> 'bool' process_ui_action(name, flags=0) -> bool - - Invokes an IDA UI action by name - @param name: action name + @param name: action name + @param flags: int @return: Boolean +Help on function py_chooser_base_t_get_row in module ida_kernwin: + +py_chooser_base_t_get_row(*args) -> 'PyObject *' + py_chooser_base_t_get_row(chobj, n) -> PyObject * + + @param chobj: chooser_base_t const * + @param n: size_t + Help on function py_get_ask_form in module ida_kernwin: py_get_ask_form(*args) -> 'size_t' @@ -48032,147 +62648,208 @@ Help on function py_load_custom_icon_data in module ida_kernwin: py_load_custom_icon_data(*args) -> 'int' py_load_custom_icon_data(data, format) -> int + + @param data: PyObject * + @param format: char const * Help on function py_load_custom_icon_fn in module ida_kernwin: py_load_custom_icon_fn(*args) -> 'int' py_load_custom_icon_fn(filename) -> int + + @param filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) -> 'void' py_register_compiled_form(py_form) - -Help on function py_ss_restore_callback in module ida_kernwin: - -py_ss_restore_callback(*args) -> 'void' - py_ss_restore_callback(err_msg, userdata) + + @param py_form: PyObject * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) -> 'void' py_unregister_compiled_form(py_form) + + @param py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) -> 'bool' pyidag_bind(_self) -> bool + + @param self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) -> 'bool' pyidag_unbind(_self) -> bool + + @param self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) -> 'bool' pyscv_add_line(py_this, py_sl) -> bool + + @param py_this: PyObject * + @param py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) -> 'PyObject *' pyscv_clear_lines(py_this) -> PyObject * + + @param py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) -> 'void' pyscv_close(py_this) + + @param py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) -> 'size_t' pyscv_count(py_this) -> size_t + + @param py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) -> 'bool' pyscv_del_line(py_this, nline) -> bool + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) -> 'bool' pyscv_edit_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_get_current_line in module ida_kernwin: pyscv_get_current_line(*args) -> 'PyObject *' pyscv_get_current_line(py_this, mouse, notags) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) -> 'PyObject *' pyscv_get_current_word(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) -> 'PyObject *' pyscv_get_line(py_this, nline) -> PyObject * + + @param py_this: PyObject * + @param nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) -> 'PyObject *' pyscv_get_pos(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) -> 'PyObject *' pyscv_get_selection(py_this) -> PyObject * + + @param py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) -> 'TWidget *' pyscv_get_widget(py_this) -> TWidget * + + @param py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) -> 'PyObject *' pyscv_init(py_link, title) -> PyObject * + + @param py_link: PyObject * + @param title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) -> 'bool' pyscv_insert_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) -> 'bool' pyscv_is_focused(py_this) -> bool + + @param py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) -> 'bool' pyscv_jumpto(py_this, ln, x, y) -> bool + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) -> 'bool' pyscv_patch_line(py_this, nline, offs, value) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) -> 'bool' pyscv_refresh(py_this) -> bool + + @param py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) -> 'bool' pyscv_show(py_this) -> bool + + @param py_this: PyObject * Help on function qcleanline in module ida_kernwin: qcleanline(*args) -> 'qstring *' qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str - - Performs some cleanup operations to a line. - @param cmt_char: character that denotes the start of a comment: the - entire text is removed if the line begins with this - character (ignoring leading spaces) all text after - (and including) this character is removed if flag - CLNL_FINDCMT is set (C++: char) - @param flags: a combination of line cleanup flags . defaults to - CLNL_TRIM (C++: uint32) + @param 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 + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM @return: length of line Help on class quick_widget_commands_t in module ida_kernwin: @@ -48211,20 +62888,17 @@ Help on function read_range_selection in module ida_kernwin: read_range_selection(*args) -> '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() - - Get the address range for the selected range boundaries, this is the - convenient function for 'read_selection()' - - @param v: view, NULL means the last active window containing addresses - (C++: TWidget *) + @param 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 Help on function read_selection in module ida_kernwin: read_selection(*args) -> 'bool' read_selection(v, p1, p2) -> bool - - Read the user selection, and store its information in p0 (from) and p1 (to). This can be used as follows: @@ -48251,7 +62925,7 @@ read_selection(*args) -> 'bool' disassembly, structures, enums, ...) @param view: The view to retrieve the selection for. - @param p0: Storage for the "from" part of the selection. + @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success. @@ -48259,12 +62933,9 @@ Help on function refresh_chooser in module ida_kernwin: refresh_chooser(*args) -> 'bool' refresh_chooser(title) -> bool + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). - - Mark a non-modal custom chooser for a refresh ( 'ui_refresh_chooser' - ). - - @param title: title of chooser (C++: const char *) + @param title: (C++: const char *) title of chooser @return: success Help on function refresh_choosers in module ida_kernwin: @@ -48272,92 +62943,90 @@ Help on function refresh_choosers in module ida_kernwin: refresh_choosers(*args) -> 'void' refresh_choosers() +Help on function refresh_custom_viewer in module ida_kernwin: + +refresh_custom_viewer(*args) -> 'void' + refresh_custom_viewer(custom_viewer) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) + Help on function refresh_idaview in module ida_kernwin: refresh_idaview(*args) -> 'void' refresh_idaview() - - - Refresh marked windows ( 'ui_refreshmarked' ) + Refresh marked windows (ui_refreshmarked) Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_navband in module ida_kernwin: refresh_navband(*args) -> 'void' refresh_navband(force) + Refresh navigation band if changed (ui_refresh_navband). - - Refresh navigation band if changed ( 'ui_refresh_navband' ). - - @param force: refresh regardless (C++: bool) + @param force: (C++: bool) refresh regardless Help on function register_action in module ida_kernwin: register_action(*args) -> '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. - 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. + Please see the SDK's "ht_view" plugin for an example how to register actions. - @param desc: action to register (C++: const action_desc_t &) + @param desc: (C++: const action_desc_t &) action to register @return: success Help on function register_addon in module ida_kernwin: register_addon(*args) -> '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 - - 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 - - @param info (C++: const addon_info_t *) + @param info: (C++: const addon_info_t *) addon_info_t const * Help on function register_and_attach_to_menu in module ida_kernwin: register_and_attach_to_menu(*args) -> 'bool' - register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner) -> 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(). - 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. + The only reason for its existence is to make it simpler to port existing plugins + to the new actions API. - @param menupath (C++: const char *) - @param name (C++: const char *) - @param label (C++: const char *) - @param shortcut (C++: const char *) - @param flags (C++: int) - @param handler (C++: action_handler_t *) - @param owner (C++: const plugin_t *) + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) Help on function register_timer in module ida_kernwin: register_timer(*args) -> 'PyObject *' - register_timer(interval, py_callback) -> PyObject * - - + register_timer(interval, py_callback) -> PyCapsule Register a timer @param interval: Interval in milliseconds - @param callback: A Python callable that takes no parameters and returns an integer. + @param 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 @@ -48367,9 +63036,9 @@ Help on function remove_command_interpreter in module ida_kernwin: remove_command_interpreter(*args) -> 'void' remove_command_interpreter(cli_idx) + Remove command line interpreter (ui_install_cli) - - Remove command line interpreter ( 'ui_install_cli' ) + @param cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -48380,12 +63049,16 @@ class renderer_pos_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -48402,16 +63075,16 @@ class renderer_pos_info_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_pos_info_t_cx_get(self) -> short + | cx | | cy - | renderer_pos_info_t_cy_get(self) -> short + | cy | | node - | renderer_pos_info_t_node_get(self) -> int + | node | | sx - | renderer_pos_info_t_sx_get(self) -> short + | sx | | thisown | The membership flag @@ -48425,204 +63098,528 @@ Help on function repaint_custom_viewer in module ida_kernwin: repaint_custom_viewer(*args) -> 'void' repaint_custom_viewer(custom_viewer) + Repaint the given widget immediately (ui_repaint_qwidget) - - Repaint the given widget immediately ( 'ui_repaint_qwidget' ) - - - @param custom_viewer (C++: TWidget *) + @param custom_viewer: (C++: TWidget *) Help on function replace_wait_box in module ida_kernwin: replace_wait_box(*args) -> 'void' replace_wait_box(format) - - Replace the label of "Please wait dialog box". - - @param format (C++: const char *) + @param format: (C++: const char *) char const * Help on function request_refresh in module ida_kernwin: request_refresh(*args) -> 'void' request_refresh(mask, cnd=True) - - Request a refresh of a builtin window. - @param mask: Window refresh flags (C++: uint64) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise Help on function restore_database_snapshot in module ida_kernwin: restore_database_snapshot(*args) -> 'PyObject *' - restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> 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. - - Restore a database snapshot. Note: This call is asynchronous. When it - is completed, the callback will be triggered. - - @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const - snapshot_t *) - @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. + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param 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. + +Help on class section_lines_refs_t in module ida_kernwin: + +class section_lines_refs_t(builtins.object) + | Proxy of C++ qvector< twinline_t const * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) -> 'twinline_t const *const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const *const & + | + | __swig_destroy__ = delete_section_lines_refs_t(...) + | delete_section_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: twinline_t const *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | at(self, *args) -> 'twinline_t const *const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t const * >::iterator + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: twinline_t const *const & + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | + | @param x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t const ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t const *&' + | push_back(self, x) + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t const * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class sections_lines_refs_t in module ida_kernwin: + +class sections_lines_refs_t(builtins.object) + | Proxy of C++ qvector< section_lines_refs_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) -> 'section_lines_refs_t const &' + | __getitem__(self, i) -> section_lines_refs_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: section_lines_refs_t const & + | + | __swig_destroy__ = delete_sections_lines_refs_t(...) + | delete_sections_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: section_lines_refs_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | at(self, *args) -> 'section_lines_refs_t const &' + | at(self, _idx) -> section_lines_refs_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< section_lines_refs_t >::iterator + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: section_lines_refs_t const & + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | + | @param x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=section_lines_refs_t()) + | + | @param x: section_lines_refs_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: section_lines_refs_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'section_lines_refs_t &' + | push_back(self, x) + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< section_lines_refs_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function set_cancelled in module ida_kernwin: set_cancelled(*args) -> 'void' set_cancelled() - - - Set "Cancelled" flag ( 'ui_set_cancelled' ) + Set "Cancelled" flag (ui_set_cancelled) Help on function set_code_viewer_handler in module ida_kernwin: set_code_viewer_handler(*args) -> '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). - - Set a handler for a code viewer event ( 'ui_set_custom_viewer_handler' - ). - - @param code_viewer: the code viewer (C++: TWidget *) - @param handler_id: one of CDVH_ in custom_viewer_handler_id_t (C++: - custom_viewer_handler_id_t) - @param handler_or_data: can be a handler or data. see examples in - Functions: custom viewer handlers (C++: void - *) + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param 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 Help on function set_code_viewer_is_source in module ida_kernwin: set_code_viewer_is_source(*args) -> '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). - - Specify that the given code viewer is used to display source code ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) + @param code_viewer: (C++: TWidget *) Help on function set_code_viewer_line_handlers in module ida_kernwin: set_code_viewer_line_handlers(*args) -> '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 - - Set handlers for code viewer line events. Any of these handlers may be - NULL - - @param code_viewer (C++: TWidget *) - @param click_handler (C++: code_viewer_lines_click_t *) - @param popup_handler (C++: code_viewer_lines_click_t *) - @param dblclick_handler (C++: code_viewer_lines_click_t *) - @param drawicon_handler (C++: code_viewer_lines_icon_t *) - @param linenum_handler (C++: code_viewer_lines_linenum_t *) + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) Help on function set_code_viewer_lines_alignment in module ida_kernwin: set_code_viewer_lines_alignment(*args) -> 'bool' set_code_viewer_lines_alignment(code_viewer, align) -> bool + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). - - Set alignment for lines in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param align (C++: int) + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: set_code_viewer_lines_icon_margin(*args) -> '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). - - Set space allowed for icons in the margin of a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param margin (C++: int) + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) Help on function set_code_viewer_lines_radix in module ida_kernwin: set_code_viewer_lines_radix(*args) -> 'bool' set_code_viewer_lines_radix(code_viewer, radix) -> bool + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). - - Set radix for values displayed in a code viewer ( - 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param radix (C++: int) + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) Help on function set_code_viewer_user_data in module ida_kernwin: set_code_viewer_user_data(*args) -> 'bool' set_code_viewer_user_data(code_viewer, ud) -> bool + Set the user data on a code viewer (ui_set_custom_viewer_handler). - - Set the user data on a code viewer ( 'ui_set_custom_viewer_handler' ). - - - @param code_viewer (C++: TWidget *) - @param ud (C++: void *) + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) Help on function set_custom_viewer_qt_aware in module ida_kernwin: set_custom_viewer_qt_aware(*args) -> 'bool' set_custom_viewer_qt_aware(custom_viewer) -> bool + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) - - Allow the given viewer to interpret Qt events ( - 'ui_set_custom_viewer_handler' ) - - - @param custom_viewer (C++: TWidget *) + @param custom_viewer: (C++: TWidget *) Help on function set_dock_pos in module ida_kernwin: set_dock_pos(*args) -> 'bool' set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool - - Sets the dock orientation of a window relatively to another window. - @param src: Source docking control - @param dest: Destination docking control - @param orient: One of DOR_XXXX constants - @param left, top, right, bottom: These parameter if DOR_FLOATING is used, or if you want to specify the width of docked windows + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int @return: Boolean Example: - set_dock_pos('Structures', 'Enums', DOR_RIGHT) <- docks the Structures window to the right of Enums window + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window Help on function set_highlight in module ida_kernwin: set_highlight(*args) -> 'bool' set_highlight(viewer, str, flags) -> bool + Set the highlighted identifier in the viewer (ui_set_highlight). - - Set the highlighted identifier in the viewer ( 'ui_set_highlight' ). - - @param viewer: the viewer (C++: TWidget *) - @param str: the text to match, or NULL to remove current (C++: const - char *) - @param flags: combination of HIF_... bits (see set_highlightr flags ) - (C++: int) + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) @return: false if an error occurred Help on function set_nav_colorizer in module ida_kernwin: set_nav_colorizer(*args) -> 'PyObject *' - set_nav_colorizer(new_py_colorizer) -> 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: @@ -48648,40 +63645,46 @@ set_nav_colorizer(*args) -> 'PyObject *' return long(~orig) ida_colorizer = idaapi.set_nav_colorizer(my_colorizer) + + @param new_py_colorizer: PyObject * Help on function set_view_renderer_type in module ida_kernwin: set_view_renderer_type(*args) -> 'void' set_view_renderer_type(v, rt) + Set the type of renderer to use in a view (ui_set_renderer_type) - - Set the type of renderer to use in a view ( 'ui_set_renderer_type' ) - - - @param v (C++: TWidget *) - @param rt (C++: tcc_renderer_type_t) + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t Help on function show_wait_box in module ida_kernwin: show_wait_box(*args) -> '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. - - Display a dialog box with "Please wait...". If the text message starts - with "HIDECANCEL\n", the cancel buttonwon't be displayed in the dialog - box and you don't need to checkfor cancellations with - 'user_cancelled()' . Plugins must call 'hide_wait_box()' to close the - dialog box, otherwise the user interface will be disabled.Note that, - if the wait dialog is already visible, 'show_wait_box()' will1) push - the currently-displayed text on a stack2) display the new textThen, - when 'hide_wait_box()' is called, if that stack isn't empty its - toplabel will be popped and restored in the wait dialog.This implies - that a plugin should call 'hide_wait_box()' exactly as manytimes as it - called 'show_wait_box()' , or the wait dialog might remainvisible and - block the UI.Also, in case the plugin knows the wait dialog is - currently displayed,alternatively it can call 'replace_wait_box()' , - to replace the text of thedialog without pushing the currently- - displayed text on the stack. + @param message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -48735,8 +63738,7 @@ class simplecustviewer_t(builtins.object) | GetLine(self, lineno) | Returns a line | @param lineno: The line number - | @return: - | Returns a tuple (colored_line, fgcolor, bgcolor) or None + | @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 @@ -48748,8 +63750,7 @@ class simplecustviewer_t(builtins.object) | | GetSelection(self) | Returns the selected range or None - | @return: - | - tuple(x1, y1, x2, y2) + | @return: - tuple(x1, y1, x2, y2) | - None if no selection | | GetWidget(self) @@ -48829,7 +63830,7 @@ class simpleline_place_t(place_t) | Data descriptors defined here: | | n - | simpleline_place_t_n_get(self) -> uint32 + | n | | thisown | The membership flag @@ -48838,79 +63839,189 @@ class simpleline_place_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -48922,7 +64033,7 @@ class simpleline_place_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class simpleline_t in module ida_kernwin: @@ -48934,7 +64045,13 @@ class simpleline_t(builtins.object) | __init__(self, *args) | __init__(self) -> simpleline_t | __init__(self, c, str) -> simpleline_t + | + | @param c: color_t + | @param str: char const * + | | __init__(self, str) -> simpleline_t + | + | @param str: char const * | | __repr__ = _swig_repr(self) | @@ -48951,13 +64068,13 @@ class simpleline_t(builtins.object) | list of weak references to the object (if defined) | | bgcolor - | simpleline_t_bgcolor_get(self) -> bgcolor_t + | bgcolor | | color - | simpleline_t_color_get(self) -> color_t + | color | | line - | simpleline_t_line_get(self) -> qstring * + | line | | thisown | The membership flag @@ -48966,36 +64083,32 @@ Help on function str2ea in module ida_kernwin: str2ea(*args) -> 'ea_t' str2ea(str, screenEA=BADADDR) -> ea_t - - Converts a string express to EA. The expression evaluator may be called as well. + @param str: char const * + @param screenEA: ea_t @return: BADADDR or address value Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * - - + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on function strarray in module ida_kernwin: strarray(*args) -> '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 "". - - 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 "". - - @param array (C++: const strarray_t *) - @param array_size (C++: size_t) - @param code (C++: int) + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) Help on class strarray_t in module ida_kernwin: @@ -49022,10 +64135,10 @@ class strarray_t(builtins.object) | list of weak references to the object (if defined) | | code - | strarray_t_code_get(self) -> int + | code | | text - | strarray_t_text_get(self) -> char const * + | text | | thisown | The membership flag @@ -49054,10 +64167,10 @@ class structplace_t(place_t) | Data descriptors defined here: | | idx - | structplace_t_idx_get(self) -> uval_t + | idx | | offset - | structplace_t_offset_get(self) -> uval_t + | offset | | thisown | The membership flag @@ -49066,79 +64179,189 @@ class structplace_t(place_t) | Methods inherited from place_t: | | _print(self, *args) -> 'void' - | _print(self, out_buf, ud) + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * | | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | beginning(self, *args) -> 'bool' | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory | | compare(self, *args) -> 'int' | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * | | copyfrom(self, *args) -> 'void' | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * | | deserialize(self, *args) -> 'bool' | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' - | generate(self, ud, maxsize) -> PyObject * + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines | | id(self, *args) -> 'int' | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id | | leave(self, *args) -> 'void' | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 | | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) -> '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, *args) -> 'bool' | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | prev(self, *args) -> 'bool' | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success | | rebase(self, *args) -> 'bool' | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) -> '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, *args) -> 'ea_t' | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; | | touval(self, *args) -> 'uval_t' | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -49150,7 +64373,7 @@ class structplace_t(place_t) | list of weak references to the object (if defined) | | lnnum - | place_t_lnnum_get(self) -> int + | lnnum Help on class sync_source_t in module ida_kernwin: @@ -49161,13 +64384,22 @@ class sync_source_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, _o) -> bool + | + | @param _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t + | + | @param _view: TWidget const * + | | __init__(self, _regname) -> sync_source_t + | + | @param _regname: char const * | | __ne__(self, *args) -> 'bool' | __ne__(self, _o) -> bool + | + | @param _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -49203,31 +64435,512 @@ class sync_source_t(builtins.object) | | __hash__ = None +Help on class sync_source_vec_t in module ida_kernwin: + +class sync_source_vec_t(builtins.object) + | Proxy of C++ qvector< sync_source_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | __swig_destroy__ = delete_sync_source_vec_t(...) + | delete_sync_source_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: sync_source_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + Help on function sync_sources in module ida_kernwin: sync_sources(*args) -> 'bool' sync_sources(what, _with, sync) -> bool - - [Un]synchronize sources - @param what (C++: const sync_source_t &) - @param _with (C++: const sync_source_t &) - @param sync (C++: bool) + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) @return: success +Help on class synced_group_t in module ida_kernwin: + +class synced_group_t(sync_source_vec_t) + | Proxy of C++ synced_group_t class. + | + | Method resolution order: + | synced_group_t + | sync_source_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> synced_group_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_synced_group_t(...) + | delete_synced_group_t(self) + | + | has(self, *args) -> 'bool' + | has(self, ss) -> bool + | + | @param ss: sync_source_t const & + | + | has_register(self, *args) -> 'bool' + | has_register(self, r) -> bool + | + | @param r: char const * + | + | has_widget(self, *args) -> 'bool' + | has_widget(self, v) -> bool + | + | @param v: TWidget const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from sync_source_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from sync_source_vec_t: + | + | __hash__ = None + Help on function take_database_snapshot in module ida_kernwin: take_database_snapshot(*args) -> 'PyObject *' - take_database_snapshot(ss) -> PyObject * + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). - - Take a database snapshot ( 'ui_take_database_snapshot' ). - - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id @return: success +Help on class text_t in module ida_kernwin: + +class text_t(builtins.object) + | Proxy of C++ qvector< twinline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'twinline_t const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const & + | + | __swig_destroy__ = delete_text_t(...) + | delete_text_t(self) + | + | at(self, *args) -> 'twinline_t const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' + | begin(self) -> twinline_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t >::iterator + | + | erase(self, first, last) -> twinline_t + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator + | + | extract(self, *args) -> 'twinline_t *' + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=twinline_t()) + | + | @param x: twinline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t >::iterator' + | insert(self, it, x) -> twinline_t + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t &' + | push_back(self, x) + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + Help on class textctrl_info_t in module ida_kernwin: class textctrl_info_t(ida_idaapi.py_clinked_object_t) @@ -49345,6 +65058,9 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) -> 'bool' textctrl_info_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -49355,46 +65071,114 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) -> 'bool' textctrl_info_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * Help on function textctrl_info_t_get_clink in module ida_kernwin: textctrl_info_t_get_clink(*args) -> 'textctrl_info_t *' textctrl_info_t_get_clink(_self) -> textctrl_info_t * + + @param self: PyObject * Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: textctrl_info_t_get_clink_ptr(*args) -> 'PyObject *' textctrl_info_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * Help on function textctrl_info_t_get_flags in module ida_kernwin: textctrl_info_t_get_flags(*args) -> 'unsigned int' textctrl_info_t_get_flags(_self) -> unsigned int + + @param self: PyObject * Help on function textctrl_info_t_get_tabsize in module ida_kernwin: textctrl_info_t_get_tabsize(*args) -> 'unsigned int' textctrl_info_t_get_tabsize(_self) -> unsigned int + + @param self: PyObject * Help on function textctrl_info_t_get_text in module ida_kernwin: textctrl_info_t_get_text(*args) -> 'char const *' textctrl_info_t_get_text(_self) -> char const * + + @param self: PyObject * Help on function textctrl_info_t_set_flags in module ida_kernwin: textctrl_info_t_set_flags(*args) -> 'bool' textctrl_info_t_set_flags(_self, flags) -> bool + + @param self: PyObject * + @param flags: unsigned int Help on function textctrl_info_t_set_tabsize in module ida_kernwin: textctrl_info_t_set_tabsize(*args) -> 'bool' textctrl_info_t_set_tabsize(_self, tabsize) -> bool + + @param self: PyObject * + @param tabsize: unsigned int Help on function textctrl_info_t_set_text in module ida_kernwin: textctrl_info_t_set_text(*args) -> 'bool' textctrl_info_t_set_text(_self, s) -> bool + + @param self: PyObject * + @param s: char const * + +Help on class twinline_t in module ida_kernwin: + +class twinline_t(builtins.object) + | Proxy of C++ twinline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinline_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_twinline_t(...) + | delete_twinline_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | bg_color + | bg_color + | + | is_default + | is_default + | + | line + | line + | + | prefix_color + | prefix_color + | + | thisown + | The membership flag Help on class twinpos_t in module ida_kernwin: @@ -49403,16 +65187,16 @@ class twinpos_t(builtins.object) | | Methods defined here: | - | __eq__(self, *args) -> 'bool' - | __eq__(self, r) -> bool - | | __init__(self, *args) | __init__(self) -> twinpos_t | __init__(self, t) -> twinpos_t + | + | @param t: place_t * + | | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | + | @param t: place_t * + | @param x0: int | | __repr__ = _swig_repr(self) | @@ -49439,37 +65223,28 @@ class twinpos_t(builtins.object) | list of weak references to the object (if defined) | | at - | twinpos_t_at_get(self) -> place_t + | at | | thisown | The membership flag | | x - | twinpos_t_x_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None + | x Help on function ui_load_new_file in module ida_kernwin: ui_load_new_file(*args) -> 'bool' ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + Display a load file dialog and load file (ui_load_file). - - Display a load file dialog and load file ( 'ui_load_file' ). - - @param temp_file: name of the file with the extracted archive member. - (C++: qstring *) - @param filename: the name of input file as is, library or archive name - (C++: qstring *) - @param pli: loader input source, may be changed to point to temp_file - (C++: linput_t **) - @param neflags: combination of NEF_... bits (see Load file flags ) - (C++: ushort) - @param ploaders: list of loaders which accept file, may be changed for - loaders of temp_file (C++: load_info_t **) + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param 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 Help on class ui_requests_t in module ida_kernwin: @@ -49502,42 +65277,33 @@ Help on function ui_run_debugger in module ida_kernwin: ui_run_debugger(*args) -> 'bool' ui_run_debugger(dbgopts, exename, argc, argv) -> bool + Load a debugger plugin and run the specified program (ui_run_dbg). - - Load a debugger plugin and run the specified program ( 'ui_run_dbg' ). - - @param dbgopts: value of the -r command line switch (C++: const char - *) - @param exename: name of the file to run (C++: const char *) - @param argc: number of arguments for the executable (C++: int) - @param argv: argument vector (C++: const char *const *) + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector @return: success Help on function unmark_selection in module ida_kernwin: unmark_selection(*args) -> 'void' unmark_selection() - - - Unmark selection ( 'ui_unmarksel' ) + Unmark selection (ui_unmarksel) Help on function unregister_action in module ida_kernwin: unregister_action(*args) -> 'bool' unregister_action(name) -> bool + Delete a previously-registered action (ui_unregister_action). - - Delete a previously-registered action ( 'ui_unregister_action' ). - - @param name: name of action (C++: const char *) + @param name: (C++: const char *) name of action @return: success Help on function unregister_timer in module ida_kernwin: unregister_timer(*args) -> 'bool' unregister_timer(py_timerctx) -> bool - - Unregister a timer @param timer_obj: a timer object previously returned by a register_timer() @@ -49548,105 +65314,90 @@ Help on function update_action_checkable in module ida_kernwin: update_action_checkable(*args) -> 'bool' update_action_checkable(name, checkable) -> bool + Update an action's checkability (ui_update_action_attr). - - Update an action's checkability ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checkable: new checkability (C++: bool) + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability @return: success Help on function update_action_checked in module ida_kernwin: update_action_checked(*args) -> 'bool' update_action_checked(name, checked) -> bool + Update an action's checked state (ui_update_action_attr). - - Update an action's checked state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param checked: new checked state (C++: bool) + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state @return: success Help on function update_action_icon in module ida_kernwin: update_action_icon(*args) -> 'bool' update_action_icon(name, icon) -> bool + Update an action's icon (ui_update_action_attr). - - Update an action's icon ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param icon: new icon id (C++: int) + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id @return: success Help on function update_action_label in module ida_kernwin: update_action_label(*args) -> 'bool' update_action_label(name, label) -> bool + Update an action's label (ui_update_action_attr). - - Update an action's label ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param label: new label (C++: const char *) + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label @return: success Help on function update_action_shortcut in module ida_kernwin: update_action_shortcut(*args) -> 'bool' update_action_shortcut(name, shortcut) -> bool + Update an action's shortcut (ui_update_action_attr). - - Update an action's shortcut ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param shortcut: new shortcut (C++: const char *) + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut @return: success Help on function update_action_state in module ida_kernwin: update_action_state(*args) -> 'bool' update_action_state(name, state) -> bool + Update an action's state (ui_update_action_attr). - - Update an action's state ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param state: new state (C++: action_state_t) + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state @return: success Help on function update_action_tooltip in module ida_kernwin: update_action_tooltip(*args) -> 'bool' update_action_tooltip(name, tooltip) -> bool + Update an action's tooltip (ui_update_action_attr). - - Update an action's tooltip ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param tooltip: new tooltip (C++: const char *) + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip @return: success Help on function update_action_visibility in module ida_kernwin: update_action_visibility(*args) -> 'bool' update_action_visibility(name, visible) -> bool + Update an action's visibility (ui_update_action_attr). - - Update an action's visibility ( 'ui_update_action_attr' ). - - @param name: action name (C++: const char *) - @param visible: new visibility (C++: bool) + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility @return: success Help on function user_cancelled in module ida_kernwin: user_cancelled(*args) -> 'bool' user_cancelled() -> bool - - - Test the ctrl-break flag ( 'ui_test_cancelled' ). + 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 Help on class view_mouse_event_location_t in module ida_kernwin: @@ -49673,10 +65424,10 @@ class view_mouse_event_location_t(builtins.object) | list of weak references to the object (if defined) | | ea - | view_mouse_event_location_t_ea_get(self) -> ea_t + | ea | | item - | view_mouse_event_location_t_item_get(self) -> selection_item_t const * + | item | | thisown | The membership flag @@ -49706,35 +65457,33 @@ class view_mouse_event_t(builtins.object) | list of weak references to the object (if defined) | | button - | view_mouse_event_t_button_get(self) -> vme_button_t + | button | | location - | view_mouse_event_t_location_get(self) -> view_mouse_event_location_t + | location | | renderer_pos - | view_mouse_event_t_renderer_pos_get(self) -> renderer_pos_info_t + | renderer_pos | | rtype - | view_mouse_event_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | state - | view_mouse_event_t_state_get(self) -> view_event_state_t + | state | | thisown | The membership flag | | x - | view_mouse_event_t_x_get(self) -> uint32 + | x | | y - | view_mouse_event_t_y_get(self) -> uint32 + | y Help on function warning in module ida_kernwin: warning(*args) -> 'void' warning(format) - - Display a message in a message box @param message: message to print (formatting is done in Python) @@ -49743,1072 +65492,16 @@ warning(*args) -> 'void' The user will be able to hide messages if they appear twice in a row on the screen -=== ida_kernwin EPYDOC INJECTIONS === -ida_kernwin.ACF_HAS_SELECTION -""" -there is currently a valid selection -""" - -ida_kernwin.ACF_XTRN_EA -""" -cur_ea is in 'externs' segment -""" - -ida_kernwin.ADF_NO_UNDO -""" -useful for actions that do not modify the database. - -the action does not create an undo point. -""" - -ida_kernwin.ADF_OWN_HANDLER -""" -handler is owned by the action; it'll be destroyed when the action is -unregistered. You shouldn't have to use this. -""" - -ida_kernwin.AHF_VERSION -""" -action handler version (used by 'action_handler_t::flags' ) -""" - -ida_kernwin.AHF_VERSION_MASK -""" -mask for 'action_handler_t::flags' -""" - -ida_kernwin.ASKBTN_BTN1 -""" -First (Yes) button. -""" - -ida_kernwin.ASKBTN_BTN2 -""" -Second (No) button. -""" - -ida_kernwin.ASKBTN_BTN3 -""" -Third (Cancel) button. -""" - -ida_kernwin.ASKBTN_CANCEL -""" -Cancel button. -""" - -ida_kernwin.ASKBTN_NO -""" -No button. -""" - -ida_kernwin.ASKBTN_YES -""" -Yes button. -""" - -ida_kernwin.BWN_ADDRWATCH -""" -the 'Watch List' window -""" - -ida_kernwin.BWN_BPTS -""" -breakpoints -""" - -ida_kernwin.BWN_CALLS -""" -function calls -""" - -ida_kernwin.BWN_CALLS_CALLEES -""" -function calls, callees -""" - -ida_kernwin.BWN_CALLS_CALLERS -""" -function calls, callers -""" - -ida_kernwin.BWN_CALL_STACK -""" -call stack -""" - -ida_kernwin.BWN_CHOOSER -""" -a non-builtin chooser -""" - -ida_kernwin.BWN_CLI -""" -the command-line, in the output window -""" - -ida_kernwin.BWN_CMDPALCSR -""" -the command palette chooser (Qt version only) -""" - -ida_kernwin.BWN_CMDPALWIN -""" -the command palette window (Qt version only) -""" - -ida_kernwin.BWN_CPUREGS -""" -one of the 'General registers', 'FPU register', ... debugger windows -""" - -ida_kernwin.BWN_CUSTVIEW -""" -custom viewers -""" - -ida_kernwin.BWN_CV_LINE_INFOS -""" -custom viewers' lineinfo widget -""" - -ida_kernwin.BWN_DISASM -""" -disassembly views -""" - -ida_kernwin.BWN_DISASMS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_DISASM_ARROWS -""" -disassembly arrows widget -""" - -ida_kernwin.BWN_DUMP -""" -hex dumps -""" - -ida_kernwin.BWN_DUMPS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_ENUMS -""" -enumerations -""" - -ida_kernwin.BWN_EXPORTS -""" -exports -""" - -ida_kernwin.BWN_FRAME -""" -function frame -""" - -ida_kernwin.BWN_FUNCS -""" -functions -""" - -ida_kernwin.BWN_IMPORTS -""" -imports -""" - -ida_kernwin.BWN_LOCALS -""" -the 'locals' debugger window -""" - -ida_kernwin.BWN_LOCTYPS -""" -local types -""" - -ida_kernwin.BWN_MDVIEWCSR -""" -lumina metadata view chooser -""" - -ida_kernwin.BWN_MODULES -""" -modules -""" - -ida_kernwin.BWN_NAMES -""" -names -""" - -ida_kernwin.BWN_NAVBAND -""" -navigation band -""" - -ida_kernwin.BWN_NOTEPAD -""" -notepad -""" - -ida_kernwin.BWN_OUTPUT -""" -the text area, in the output window -""" - -ida_kernwin.BWN_PROBS -""" -problems -""" - -ida_kernwin.BWN_PSEUDOCODE -""" -hexrays decompiler views -""" - -ida_kernwin.BWN_SCRIPTS_CSR -""" -the "Recent scripts" chooser -""" - -ida_kernwin.BWN_SEARCH -""" -search results -""" - -ida_kernwin.BWN_SEARCHS -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_SEGREGS -""" -segment registers -""" - -ida_kernwin.BWN_SEGS -""" -segments -""" - -ida_kernwin.BWN_SELS -""" -selectors -""" - -ida_kernwin.BWN_SHORTCUTCSR -""" -the shortcuts chooser (Qt version only) -""" - -ida_kernwin.BWN_SHORTCUTWIN -""" -the shortcuts window (Qt version only) -""" - -ida_kernwin.BWN_SIGNS -""" -signatures -""" - -ida_kernwin.BWN_SNIPPETS -""" -the 'Execute script' window -""" - -ida_kernwin.BWN_SNIPPETS_CSR -""" -the list of snippets in the 'Execute script' window -""" - -ida_kernwin.BWN_SO_OFFSETS -""" -the 'Structure offsets' dialog's offset panel -""" - -ida_kernwin.BWN_SO_STRUCTS -""" -the 'Structure offsets' dialog's 'Structures and Unions' panel -""" - -ida_kernwin.BWN_SRCPTHMAP_CSR -""" -"Source paths..."'s path mappings chooser -""" - -ida_kernwin.BWN_SRCPTHUND_CSR -""" -"Source paths..."'s undesired paths chooser -""" - -ida_kernwin.BWN_STACK -""" -Alias. Some BWN_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.BWN_STKVIEW -""" -the 'Stack view' debugger window -""" - -ida_kernwin.BWN_STRINGS -""" -strings -""" - -ida_kernwin.BWN_STRUCTS -""" -structures -""" - -ida_kernwin.BWN_THREADS -""" -threads -""" - -ida_kernwin.BWN_TILS -""" -type libraries -""" - -ida_kernwin.BWN_TRACE -""" -trace view -""" - -ida_kernwin.BWN_UNDOHIST -""" -Undo history. -""" - -ida_kernwin.BWN_UNKNOWN -""" -unknown window -""" - -ida_kernwin.BWN_WATCH -""" -the 'watches' debugger window -""" - -ida_kernwin.BWN_XREFS -""" -xrefs -""" - -ida_kernwin.CHCOL_DEC -""" -decimal number -""" - -ida_kernwin.CHCOL_DEFHIDDEN -""" -column should be hidden by default -""" - -ida_kernwin.CHCOL_EA -""" -address -""" - -ida_kernwin.CHCOL_FNAME -""" -function name -""" - -ida_kernwin.CHCOL_FORMAT -""" -column format mask -""" - -ida_kernwin.CHCOL_HEX -""" -hexadecimal number -""" - -ida_kernwin.CHCOL_PATH -""" -file path -""" - -ida_kernwin.CHCOL_PLAIN -""" -plain string -""" - -ida_kernwin.CHITEM_BOLD -""" -display the item in bold -""" - -ida_kernwin.CHITEM_GRAY -""" -gray out the item -""" - -ida_kernwin.CHITEM_ITALIC -""" -display the item in italic -""" - -ida_kernwin.CHITEM_STRIKE -""" -strikeout the item -""" - -ida_kernwin.CHITEM_UNDER -""" -underline the item -""" - -ida_kernwin.CHOOSER_MENU_EDIT -""" -Values of the 'menu_index' parameter. - -Obsolete. Please don't use -""" - -ida_kernwin.CHOOSER_MENU_JUMP -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MENU_SEARCH -""" -Obsolete. Please don't use. -""" - -ida_kernwin.CHOOSER_MULTI_SELECTION -""" -enable for multiple selections. A callback of type -'chooser_multi_cb_t' will be called for all selected items. -""" - -ida_kernwin.CHOOSER_NO_SELECTION -""" -Flags. - -enable even if there's no selected item. 'n' will be NO_SELECTION for -a callback. -""" - -ida_kernwin.CHOOSER_POPUP_MENU -""" -Add command to the popup menu. -""" - -ida_kernwin.CH_ATTRS -""" -generate ui_get_chooser_item_attrs (gui only) -""" - -ida_kernwin.CH_BUILTIN_MASK -""" -Mask for builtin chooser numbers. Plugins should not use them. -""" - -ida_kernwin.CH_CAN_DEL -""" -allow to delete existing item(s) -""" - -ida_kernwin.CH_CAN_EDIT -""" -allow to edit existing item(s) -""" - -ida_kernwin.CH_CAN_INS -""" -allow to insert new items -""" - -ida_kernwin.CH_CAN_REFRESH -""" -allow to refresh chooser -""" - -ida_kernwin.CH_FORCE_DEFAULT -""" -if a non-modal chooser was already open, change selection to the -default one -""" - -ida_kernwin.CH_KEEP -""" -The chooser instance's lifecycle is not tied to the lifecycle of the -widget showing its contents. Closing the widget will not destroy the -chooser structure. This allows for, e.g., static global chooser -instances that don't need to be allocated on the heap. Also stack- -allocated chooser instances must set this bit. -""" - -ida_kernwin.CH_MODAL -""" -Modal chooser. -""" - -ida_kernwin.CH_MULTI -""" -Obsolete. - -The chooser will allow multi-selection (only for GUI choosers). This -bit is set when using the 'chooser_multi_t' structure. -""" - -ida_kernwin.CH_NOBTNS -""" -do not display ok/cancel/help/search buttons. Meaningful only for gui -modal windows because non-modal windows do not have any buttons -anyway. Text mode does not have them neither. -""" - -ida_kernwin.CH_NOIDB -""" -use the chooser before opening the database -""" - -ida_kernwin.CH_NO_STATUS_BAR -""" -don't show a status bar -""" - -ida_kernwin.CH_QFLT -""" -open with quick filter enabled and focused -""" - -ida_kernwin.CH_QFTYP_DEFAULT -""" -set quick filtering type to the possible existing default for this -chooser -""" - -ida_kernwin.CH_QFTYP_FUZZY -""" -fuzzy search quick filter type -""" - -ida_kernwin.CH_QFTYP_NORMAL -""" -normal (i.e., lexicographical) quick filter type -""" - -ida_kernwin.CH_QFTYP_REGEX -""" -regex quick filter type -""" - -ida_kernwin.CH_QFTYP_WHOLE_WORDS -""" -whole words quick filter type -""" - -ida_kernwin.CH_RESTORE -""" -restore floating position if present (equivalent of WOPN_RESTORE) (GUI -version only) -""" - -ida_kernwin.CLNL_FINDCMT -""" -Search for the comment symbol everywhere in the line, not only at the -beginning. -""" - -ida_kernwin.CLNL_LTRIM -""" -Remove leading space characters. -""" - -ida_kernwin.CLNL_RTRIM -""" -Remove trailing space characters. -""" - -ida_kernwin.CREATETB_ADV -""" -toolbar is for 'advanced mode' only -""" - -ida_kernwin.DP_BEFORE -""" -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after -""" - -ida_kernwin.DP_BOTTOM -""" -Dock src_form below dest_form. -""" - -ida_kernwin.DP_FLOATING -""" -Make src_form floating. +Module "ida_lines"s docstring: """ +High level functions that deal with the generation of the disassembled text +lines. -ida_kernwin.DP_INSIDE -""" -Create a new tab bar with both src_form and dest_form. -""" - -ida_kernwin.DP_LEFT -""" -Dock src_form to the left of dest_form. -""" - -ida_kernwin.DP_RIGHT -""" -Dock src_form to the right of dest_form. -""" - -ida_kernwin.DP_TAB -""" -Place src_form into a tab next to dest_form, if dest_form is in a tab -bar (otherwise the same as 'DP_INSIDE' ) -""" - -ida_kernwin.DP_TOP -""" -Dock src_form above dest_form. -""" - -ida_kernwin.HIF_IDENTIFIER -""" -text is an identifier (i.e., when searching for the current highlight, -SEARCH_IDENT will be used) -""" - -ida_kernwin.HIF_LOCKED -""" -locked; clicking/moving the cursor around doesn't change the highlight -""" - -ida_kernwin.HIF_NOCASE -""" -case insensitive -""" - -ida_kernwin.HIF_REGISTER -""" -text represents a register (aliases/subregisters will be highlit as -well) -""" - -ida_kernwin.HIST_CMD -""" -commands -""" - -ida_kernwin.HIST_CMT -""" -comments -""" - -ida_kernwin.HIST_DIR -""" -directory names (text version only) -""" - -ida_kernwin.HIST_FILE -""" -file names -""" - -ida_kernwin.HIST_IDENT -""" -names -""" - -ida_kernwin.HIST_SEG -""" -segment names -""" - -ida_kernwin.HIST_SRCH -""" -search substrings -""" - -ida_kernwin.HIST_TYPE -""" -type declarations -""" - -ida_kernwin.IWID_ADDRWATCH -""" -address watches (47) -""" - -ida_kernwin.IWID_ALL -""" -mask -""" - -ida_kernwin.IWID_BPTS -""" -breakpoints (13) -""" - -ida_kernwin.IWID_CALLS -""" -function calls (11) -""" - -ida_kernwin.IWID_CALLS_CALLEES -""" -funcalls, callees (50) -""" - -ida_kernwin.IWID_CALLS_CALLERS -""" -funcalls, callers (49) -""" - -ida_kernwin.IWID_CALL_STACK -""" -call stack (17) -""" - -ida_kernwin.IWID_CHOOSER -""" -chooser (37) -""" - -ida_kernwin.IWID_CLI -""" -input line (33) -""" - -ida_kernwin.IWID_CMDPALCSR -""" -command palette (43) -""" - -ida_kernwin.IWID_CMDPALWIN -""" -command palette (44) -""" - -ida_kernwin.IWID_CPUREGS -""" -registers (40) -""" - -ida_kernwin.IWID_CUSTVIEW -""" -custom viewers (46) -""" - -ida_kernwin.IWID_CV_LINE_INFOS -""" -lineinfo widget (53) -""" - -ida_kernwin.IWID_DISASM -""" -disassembly views (29) -""" - -ida_kernwin.IWID_DISASM_ARROWS -""" -arrows widget (52) -""" - -ida_kernwin.IWID_DUMP -""" -hex dumps (30) -""" - -ida_kernwin.IWID_ENUMS -""" -enumerations (27) -""" - -ida_kernwin.IWID_EXPORTS -""" -exports (0) -""" - -ida_kernwin.IWID_FRAME -""" -function frame (25) -""" - -ida_kernwin.IWID_FUNCS -""" -functions (3) -""" - -ida_kernwin.IWID_IMPORTS -""" -imports (1) -""" - -ida_kernwin.IWID_LOCALS -""" -locals (35) -""" - -ida_kernwin.IWID_LOCTYPS -""" -local types (10) -""" - -ida_kernwin.IWID_MDVIEWCSR -""" -lumina md view (51) -""" - -ida_kernwin.IWID_MODULES -""" -modules (15) -""" +This file also contains definitions for the syntax highlighting. -ida_kernwin.IWID_NAMES -""" -names (2) -""" - -ida_kernwin.IWID_NAVBAND -""" -navigation band (26) -""" - -ida_kernwin.IWID_NOTEPAD -""" -notepad (31) -""" - -ida_kernwin.IWID_OUTPUT -""" -output (32) -""" - -ida_kernwin.IWID_PROBS -""" -problems (12) -""" - -ida_kernwin.IWID_PSEUDOCODE -""" -decompiler (48) -""" - -ida_kernwin.IWID_SCRIPTS_CSR -""" -recent scripts (58) -""" - -ida_kernwin.IWID_SEARCH -""" -search results (19) -""" - -ida_kernwin.IWID_SEGREGS -""" -segment registers (6) -""" - -ida_kernwin.IWID_SEGS -""" -segments (5) -""" - -ida_kernwin.IWID_SELS -""" -selectors (7) -""" - -ida_kernwin.IWID_SHORTCUTCSR -""" -shortcuts chooser (38) -""" - -ida_kernwin.IWID_SHORTCUTWIN -""" -shortcuts window (39) -""" - -ida_kernwin.IWID_SIGNS -""" -signatures (8) -""" - -ida_kernwin.IWID_SNIPPETS -""" -snippets (45) -""" - -ida_kernwin.IWID_SNIPPETS_CSR -""" -snippets chooser (57) -""" - -ida_kernwin.IWID_SO_OFFSETS -""" -stroff (42) -""" - -ida_kernwin.IWID_SO_STRUCTS -""" -stroff (41) -""" - -ida_kernwin.IWID_SRCPTHMAP_CSR -""" -mappings chooser (54) -""" - -ida_kernwin.IWID_SRCPTHUND_CSR -""" -undesired chooser (55) -""" - -ida_kernwin.IWID_STACK -""" -Alias. Some IWID_* were confusing, and thus have been renamed. This is -to ensure bw-compat. -""" - -ida_kernwin.IWID_STKVIEW -""" -stack view (36) -""" - -ida_kernwin.IWID_STRINGS -""" -strings (4) -""" - -ida_kernwin.IWID_STRUCTS -""" -structures (28) -""" - -ida_kernwin.IWID_THREADS -""" -threads (14) -""" - -ida_kernwin.IWID_TILS -""" -type libraries (9) -""" - -ida_kernwin.IWID_TRACE -""" -trace view (16) -""" - -ida_kernwin.IWID_UNDOHIST -""" -Undo history (56) -""" - -ida_kernwin.IWID_WATCH -""" -watches (34) -""" - -ida_kernwin.IWID_XREFS -""" -xrefs (18) -""" - -ida_kernwin.MFF_FAST -""" -Execute code as soon as possible. this mode is ok for calling ui -related functions that do not query the database. -""" - -ida_kernwin.MFF_NOWAIT -""" -Do not wait for the request to be executed. the caller should ensure -that the request is not destroyed until the execution completes. if -not, the request will be ignored. 'execute_sync()' returns the request -id in this case. it can be used in 'cancel_exec_request()' . This flag -can be used to delay the code execution until the next UI loop run -even from the main thread. -""" - -ida_kernwin.MFF_READ -""" -Execute code only when ida is idle and it is safe to query the -database. this mode is recommended only for code that does not modify -the database. (nb: ida may be in the middle of executing another user -request, for example it may be waiting for him to enter values into a -modal dialog box) -""" - -ida_kernwin.MFF_WRITE -""" -Execute code only when ida is idle and it is safe to modify the -database. in particular, this flag will suspend execution if there is -a modal dialog box on the screen this mode can be used to call any ida -api function 'MFF_WRITE' implies 'MFF_READ' -""" - -ida_kernwin.SETMENU_APP -""" -add menu item after the specified path -""" - -ida_kernwin.SETMENU_FIRST -""" -add item to the beginning of menu -""" - -ida_kernwin.SETMENU_INS -""" -add menu item before the specified path (default) -""" - -ida_kernwin.UIJMP_ACTIVATE -""" -activate the new window -""" - -ida_kernwin.UIJMP_ANYVIEW -""" -jump in any ea_t-capable view -""" - -ida_kernwin.UIJMP_DONTPUSH -""" -in the navigation history - -do not remember the current address -""" +Finally there are functions that deal with anterior/posterior user-defined +lines.""" -ida_kernwin.UIJMP_IDAVIEW -""" -jump in idaview -""" - -ida_kernwin.UIJMP_IDAVIEW_NEW -""" -jump in new idaview -""" - -ida_kernwin.VES_SHIFT -""" -state & 1 => Shift is pressedstate & 2 => Alt is pressedstate & 4 => -Ctrl is pressedstate & 8 => Mouse left button is pressedstate & 16 => -Mouse right button is pressedstate & 32 => Mouse middle button is -pressedstate & 128 => Meta is pressed (OSX only) -""" -=== ida_kernwin EPYDOC INJECTIONS END === Help on function COLSTR in module ida_lines: COLSTR(str, tag) @@ -50820,76 +65513,281 @@ Help on function add_extra_cmt in module ida_lines: add_extra_cmt(*args) -> 'bool' add_extra_cmt(ea, isprev, format) -> bool - - Add anterior/posterior comment line(s). - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. @return: true if success Help on function add_extra_line in module ida_lines: add_extra_line(*args) -> 'bool' add_extra_line(ea, isprev, format) -> bool - - Add anterior/posterior non-comment line(s). - @param ea: linear address (C++: ea_t) - @param isprev: do we add anterior lines? (0-no, posterior) (C++: bool) - @param format: printf() style format string. may contain \n to denote - new lines. (C++: const char *) + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. @return: true if success Help on function add_pgm_cmt in module ida_lines: add_pgm_cmt(*args) -> 'bool' add_pgm_cmt(format) -> bool - - Add anterior comment line(s) at the start of program. - @param format: printf() style format string. may contain \n to denote - new lines. The resulting string should not contain - comment characters (;), the kernel will add them - automatically. (C++: const char *) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. @return: true if success Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. @return: success -Help on class bgcolors_t in module ida_lines: +Help on function calc_bg_color in module ida_lines: -class bgcolors_t(builtins.object) - | Proxy of C++ bgcolors_t class. +calc_bg_color(*args) -> 'bgcolor_t' + calc_bg_color(ea) -> bgcolor_t + Get background color for line at 'ea' + + @param ea: (C++: ea_t) + @return: RGB color + +Help on function calc_prefix_color in module ida_lines: + +calc_prefix_color(*args) -> 'color_t' + calc_prefix_color(ea) -> color_t + Get prefix color for line at 'ea' + + @param ea: (C++: ea_t) + @return: Line prefix colors + +Help on function create_encoding_helper in module ida_lines: + +create_encoding_helper(*args) -> 'encoder_t *' + create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t + +Help on function del_extra_cmt in module ida_lines: + +del_extra_cmt(*args) -> 'void' + del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int + +Help on function del_sourcefile in module ida_lines: + +del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool + Delete information about the source file. + + @param ea: (C++: ea_t) linear address + @return: success + +Help on function delete_extra_cmts in module ida_lines: + +delete_extra_cmts(*args) -> 'void' + delete_extra_cmts(ea, what) + + @param ea: ea_t + @param what: int + +Help on function generate_disasm_line in module ida_lines: + +generate_disasm_line(*args) -> 'qstring *' + generate_disasm_line(ea, flags=0) -> str + + @param ea: ea_t + @param flags: int + +Help on function generate_disassembly in module ida_lines: + +generate_disassembly(*args) -> 'PyObject *' + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) + Generate disassembly lines (many lines) and put them into a buffer + + @param ea: address to generate disassembly for + @param max_lines: how many lines max to generate + @param as_stack: Display undefined items as 2/4/8 bytes + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines + +Help on function get_extra_cmt in module ida_lines: + +get_extra_cmt(*args) -> 'int' + get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int + +Help on function get_first_free_extra_cmtidx in module ida_lines: + +get_first_free_extra_cmtidx(*args) -> 'int' + get_first_free_extra_cmtidx(ea, start) -> int + + @param ea: ea_t + @param start: int + +Help on function get_sourcefile in module ida_lines: + +get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * + Get name of source file occupying the given address. + + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name + +Help on function install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) -> 'bool' + install_user_defined_prefix(prefix_len, udp, owner) -> bool + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded + +Help on function requires_color_esc in module ida_lines: + +requires_color_esc(c) + Checks if the given character requires escaping + Is the given char a color escape character? + +Help on function set_user_defined_prefix in module ida_lines: + +set_user_defined_prefix(*args) -> 'PyObject *' + set_user_defined_prefix(width, pycb) -> bool + Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * + +Help on function tag_addr in module ida_lines: + +tag_addr(*args) -> 'PyObject *' + tag_addr(ea) -> PyObject * + Insert an address mark into a string. + + @param ea: (C++: ea_t) address to include + +Help on function tag_advance in module ida_lines: + +tag_advance(*args) -> 'int' + tag_advance(line, cnt) -> int + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer + +Help on function tag_remove in module ida_lines: + +tag_remove(*args) -> 'PyObject *' + tag_remove(nonnul_instr) -> str + + @param nonnul_instr: char const * + +Help on function tag_skipcode in module ida_lines: + +tag_skipcode(*args) -> 'int' + tag_skipcode(line) -> int + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer + +Help on function tag_skipcodes in module ida_lines: + +tag_skipcodes(*args) -> 'int' + tag_skipcodes(line) -> int + Move the pointer past all color codes. + + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr + +Help on function tag_strlen in module ida_lines: + +tag_strlen(*args) -> 'ssize_t' + tag_strlen(line) -> ssize_t + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error + +Help on function update_extra_cmt in module ida_lines: + +update_extra_cmt(*args) -> 'void' + update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * + +Help on class user_defined_prefix_t in module ida_lines: + +class user_defined_prefix_t(builtins.object) + | Proxy of C++ user_defined_prefix_t class. | | Methods defined here: | + | __disown__(self) + | | __init__(self, *args) - | __init__(self) -> bgcolors_t + | __init__(self, prefix_len, owner) -> user_defined_prefix_t + | + | @param prefix_len: size_t + | @param owner: void const * | | __repr__ = _swig_repr(self) | - | __swig_destroy__ = delete_bgcolors_t(...) - | delete_bgcolors_t(self) + | __swig_destroy__ = delete_user_defined_prefix_t(...) + | delete_user_defined_prefix_t(self) + | + | get_user_defined_prefix(self, *args) -> 'void' + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | This callback must be overridden by the derived class. + | + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param lnnum: (C++: int) number of the current line (each address may have several listing + | lines for it). 0 means the very first line for the current + | address. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -50900,679 +65798,164 @@ class bgcolors_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | - | epilog_color - | bgcolors_t_epilog_color_get(self) -> bgcolor_t - | - | prolog_color - | bgcolors_t_prolog_color_get(self) -> bgcolor_t - | - | switch_color - | bgcolors_t_switch_color_get(self) -> bgcolor_t - | | thisown | The membership flag -Help on function calc_bg_color in module ida_lines: - -calc_bg_color(*args) -> 'bgcolor_t' - calc_bg_color(ea) -> bgcolor_t - - - Get background color for line at 'ea' - - @param ea (C++: ea_t) - @return: RGB color - -Help on function calc_prefix_color in module ida_lines: - -calc_prefix_color(*args) -> 'color_t' - calc_prefix_color(ea) -> color_t - - - Get prefix color for line at 'ea' - - @param ea (C++: ea_t) - @return: Line prefix colors - -Help on function create_encoding_helper in module ida_lines: - -create_encoding_helper(*args) -> 'encoder_t *' - create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * - -Help on function del_extra_cmt in module ida_lines: - -del_extra_cmt(*args) -> 'void' - del_extra_cmt(ea, what) - -Help on function del_sourcefile in module ida_lines: - -del_sourcefile(*args) -> 'bool' - del_sourcefile(ea) -> bool - - - Delete information about the source file. - - @param ea: linear address (C++: ea_t) - @return: success - -Help on function delete_extra_cmts in module ida_lines: - -delete_extra_cmts(*args) -> 'void' - delete_extra_cmts(ea, what) - -Help on function generate_disasm_line in module ida_lines: - -generate_disasm_line(*args) -> 'qstring *' - generate_disasm_line(ea, flags=0) -> str - -Help on function generate_disassembly in module ida_lines: - -generate_disassembly(*args) -> 'PyObject *' - generate_disassembly(ea, max_lines, as_stack, notags) -> PyObject * - - - Generate disassembly lines (many lines) and put them into a buffer - - @param ea: address to generate disassembly for - @param max_lines: how many lines max to generate - @param as_stack: Display undefined items as 2/4/8 bytes - @return: - - None on failure - - tuple(most_important_line_number, tuple(lines)) : Returns a tuple containing - the most important line number and a tuple of generated lines - -Help on function get_extra_cmt in module ida_lines: - -get_extra_cmt(*args) -> 'int' - get_extra_cmt(ea, what) -> ssize_t - -Help on function get_first_free_extra_cmtidx in module ida_lines: - -get_first_free_extra_cmtidx(*args) -> 'int' - get_first_free_extra_cmtidx(ea, start) -> int - -Help on function get_sourcefile in module ida_lines: - -get_sourcefile(*args) -> 'char const *' - get_sourcefile(ea, bounds=None) -> char const * - - - Get name of source file occupying the given address. - - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name - -Help on function requires_color_esc in module ida_lines: - -requires_color_esc(c) - Checks if the given character requires escaping - @param c: character (string of one char) - @return: Boolean - - - Is the given char a color escape character? - -Help on function set_user_defined_prefix in module ida_lines: - -set_user_defined_prefix(*args) -> 'PyObject *' - set_user_defined_prefix(width, pycb) -> PyObject * - - - User-defined line-prefixes are displayed just after the autogenerated - line prefixes. In order to use them, the plugin should call the - following function to specify its width and contents. - @param width: the width of the user-defined prefix - @param callback: a get_user_defined_prefix callback to get the contents of the prefix. - Its arguments: - ea - linear address - lnnum - line number - indent - indent of the line contents (-1 means the default instruction) - indent and is used for instruction itself. see explanations for printf_line() - line - the line to be generated. the line usually contains color tags this argument - can be examined to decide whether to generated the prefix - It returns a buffer of size < bufsize - - In order to remove the callback before unloading the plugin, specify the width = 0 or the callback = None - -Help on function tag_addr in module ida_lines: - -tag_addr(*args) -> 'PyObject *' - tag_addr(ea) -> PyObject * - - - Insert an address mark into a string. - - @param ea: address to include (C++: ea_t) - -Help on function tag_advance in module ida_lines: - -tag_advance(*args) -> 'int' - tag_advance(line, cnt) -> int - - - Move pointer to a 'line' to 'cnt' positions right. Take into account - escape sequences. - - @param line: pointer to string (C++: const char *) - @param cnt: number of positions to move right (C++: int) - @return: moved pointer - -Help on function tag_remove in module ida_lines: - -tag_remove(*args) -> 'PyObject *' - tag_remove(nonnul_instr) -> PyObject * - - - Remove color escape sequences from a string - @param colstr: the colored string with embedded tags - @return: a new string w/o the tags - -Help on function tag_skipcode in module ida_lines: - -tag_skipcode(*args) -> 'int' - tag_skipcode(line) -> int - - - Skip one color code. This function should be used if you are - interested in color codes and want to analyze all of them. Otherwise - 'tag_skipcodes()' function is better since it will skip all colors at - once. This function will skip the current color code if there is one. - If the current symbol is not a color code, it will return the input. - - @param line (C++: const char *) - @return: moved pointer - -Help on function tag_skipcodes in module ida_lines: - -tag_skipcodes(*args) -> 'int' - tag_skipcodes(line) -> int - - - Move the pointer past all color codes. - - @param line: can't be NULL (C++: const char *) - @return: moved pointer, can't be NULL - -Help on function tag_strlen in module ida_lines: - -tag_strlen(*args) -> 'ssize_t' - tag_strlen(line) -> ssize_t - - - Calculate length of a colored string This function computes the length - in unicode codepoints of a line - - @param line (C++: const char *) - @return: the number of codepoints in the line, or -1 on error - -Help on function update_extra_cmt in module ida_lines: - -update_extra_cmt(*args) -> 'void' - update_extra_cmt(ea, what, str) - -=== ida_lines EPYDOC INJECTIONS === -ida_lines.COLOR_ADDR_SIZE -""" -Size of a tagged address (see 'COLOR_ADDR' ) -""" - -ida_lines.COLOR_BG_MAX -""" -Max color number. -""" - -ida_lines.COLOR_CODE -""" -Single instruction. -""" - -ida_lines.COLOR_CURITEM -""" -Current item. -""" - -ida_lines.COLOR_CURLINE -""" -Current line. -""" - -ida_lines.COLOR_DATA -""" -Data bytes. -""" - -ida_lines.COLOR_DEFAULT -""" -Default. -""" - -ida_lines.COLOR_ESC -""" -Escape character (Quote next character). This is needed to output '\\1' -and '\\2' characters. -""" - -ida_lines.COLOR_EXTERN -""" -External name definition segment. -""" - -ida_lines.COLOR_HIDLINE -""" -Hidden line. -""" - -ida_lines.COLOR_INV -""" -Escape character (Inverse foreground and background colors). This -escape character has no corresponding 'COLOR_OFF' . Its action -continues until the next 'COLOR_INV' or end of line. -""" - -ida_lines.COLOR_LIBFUNC -""" -Library function. -""" - -ida_lines.COLOR_LUMFUNC -""" -Lumina function. -""" - -ida_lines.COLOR_OFF -""" -Followed by a color code ( 'color_t' ). - -Escape character (OFF). -""" - -ida_lines.COLOR_ON -""" -Followed by a color code ( 'color_t' ). - -Escape character (ON). -""" - -ida_lines.COLOR_REGFUNC -""" -Regular function. -""" - -ida_lines.COLOR_SELECTED -""" -Selected. -""" - -ida_lines.COLOR_UNKNOWN -""" -Unexplored byte. -""" - -ida_lines.SCOLOR_ADDR -""" -Hidden address mark. -""" - -ida_lines.SCOLOR_ALTOP -""" -Alternative operand. -""" - -ida_lines.SCOLOR_ASMDIR -""" -Assembler directive. -""" - -ida_lines.SCOLOR_AUTOCMT -""" -Automatic comment. -""" - -ida_lines.SCOLOR_BINPREF -""" -Binary line prefix bytes. -""" - -ida_lines.SCOLOR_CHAR -""" -Char constant in instruction. -""" - -ida_lines.SCOLOR_CNAME -""" -Regular code name. -""" - -ida_lines.SCOLOR_CODNAME -""" -Dummy code name. -""" - -ida_lines.SCOLOR_COLLAPSED -""" -Collapsed line. -""" - -ida_lines.SCOLOR_CREF -""" -Code reference. -""" - -ida_lines.SCOLOR_CREFTAIL -""" -Code reference to tail byte. -""" - -ida_lines.SCOLOR_DATNAME -""" -Dummy Data Name. -""" - -ida_lines.SCOLOR_DCHAR -""" -Char constant in data directive. -""" - -ida_lines.SCOLOR_DEFAULT -""" -Default. -""" - -ida_lines.SCOLOR_DEMNAME -""" -Demangled Name. -""" - -ida_lines.SCOLOR_DNAME -""" -Regular Data Name. -""" - -ida_lines.SCOLOR_DNUM -""" -Numeric constant in data directive. -""" - -ida_lines.SCOLOR_DREF -""" -Data reference. -""" - -ida_lines.SCOLOR_DREFTAIL -""" -Data reference to tail byte. -""" - -ida_lines.SCOLOR_DSTR -""" -String constant in data directive. -""" - -ida_lines.SCOLOR_ERROR -""" -Error or problem. -""" - -ida_lines.SCOLOR_ESC -""" -Escape character (Quote next character) -""" - -ida_lines.SCOLOR_EXTRA -""" -Extra line. -""" - -ida_lines.SCOLOR_HIDNAME -""" -Hidden name. -""" - -ida_lines.SCOLOR_IMPNAME -""" -Imported name. -""" - -ida_lines.SCOLOR_INSN -""" -Instruction. -""" - -ida_lines.SCOLOR_INV -""" -Escape character (Inverse colors) -""" - -ida_lines.SCOLOR_KEYWORD -""" -Keywords. -""" - -ida_lines.SCOLOR_LIBNAME -""" -Library function name. +Module "ida_loader"s docstring: """ +Definitions of IDP, LDR, PLUGIN module interfaces. -ida_lines.SCOLOR_LOCNAME -""" -Local variable name. -""" +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) -ida_lines.SCOLOR_MACRO -""" -Macro. -""" +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t -ida_lines.SCOLOR_NUMBER -""" -Numeric constant in instruction. -""" +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> -ida_lines.SCOLOR_OFF -""" -Escape character (OFF) -""" +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> -ida_lines.SCOLOR_ON -""" -Escape character (ON) -""" +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" -ida_lines.SCOLOR_PREFIX -""" -Line prefix. -""" - -ida_lines.SCOLOR_REG -""" -Register name. -""" - -ida_lines.SCOLOR_REGCMT -""" -Regular comment. -""" - -ida_lines.SCOLOR_RPTCMT -""" -Repeatable comment (defined not here) -""" - -ida_lines.SCOLOR_SEGNAME -""" -Segment name. -""" - -ida_lines.SCOLOR_STRING -""" -String constant in instruction. -""" - -ida_lines.SCOLOR_SYMBOL -""" -Punctuation. -""" - -ida_lines.SCOLOR_UNAME -""" -Regular unknown name. -""" - -ida_lines.SCOLOR_UNKNAME -""" -Dummy unknown name. -""" - -ida_lines.SCOLOR_VOIDOP -""" -Void operand. -""" -=== ida_lines EPYDOC INJECTIONS END === Help on function base2file in module ida_loader: base2file(*args) -> 'int' base2file(fp, pos, ea1, ea2) -> int + Unload database to a binary file. This function works for wide byte processors + too. - - Unload database to a binary file. This function works for wide byte - processors too. - - @param fp: pointer to file (C++: FILE *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of source linear addresses (C++: ea_t) - @param ea2: range of source linear addresses (C++: ea_t) + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) @return: 1-ok(always), write error leads to immediate exit Help on function build_snapshot_tree in module ida_loader: build_snapshot_tree(*args) -> 'bool' build_snapshot_tree(root) -> bool - - Build the snapshot tree. - @param root: snapshot root that will contain the snapshot tree - elements. (C++: snapshot_t *) + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. @return: success Help on function clr_database_flag in module ida_loader: clr_database_flag(*args) -> 'void' clr_database_flag(dbfl) + + @param dbfl: uint32 Help on function extract_module_from_archive in module ida_loader: extract_module_from_archive(*args) -> 'PyObject *' - extract_module_from_archive(fname, is_remote=False) -> PyObject * + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. - - Extract a module for an archive file. Parse an archive file, show the - list of modules to the user, allow him to select a module, extract the - selected module to a file (if the extract module is an archive, repeat - the process). This function can handle ZIP, AR, AIXAR, OMFLIB files. - The temporary file will be automatically deleted by IDA at the end. - - @param is_remote: is the input file remote? (C++: bool) + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) Help on function file2base in module ida_loader: file2base(*args) -> 'int' file2base(li, pos, ea1, ea2, patchable) -> int + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). - - Load portion of file into the database. This function will include - (ea1..ea2) into the addressing space of the program (make it enabled) - - @param li: pointer of input source (C++: linput_t *) - @param pos: position in the file (C++: qoff64_t) - @param ea1: range of destination linear addresses (C++: ea_t) - @param ea2: range of destination linear addresses (C++: ea_t) - @param patchable: should the kernel remember correspondence of file - offsets to linear addresses. (C++: int) + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. Help on function find_plugin in module ida_loader: find_plugin(*args) -> 'plugin_t *' find_plugin(name, load_if_needed=False) -> plugin_t * - - Find a user-defined plugin and optionally load it. - @param name: short plugin name without path and extension, or absolute - path to the file name (C++: const char *) - @param load_if_needed: if the plugin is not present in the memory, try - to load it (C++: bool) + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it @return: pointer to plugin description block Help on function flush_buffers in module ida_loader: flush_buffers(*args) -> 'int' flush_buffers() -> int - - Flush buffers to the disk. Help on function gen_exe_file in module ida_loader: gen_exe_file(*args) -> 'int' gen_exe_file(fp) -> int - - Generate an exe file (unload the database in binary form). - @param fp (C++: FILE *) - @return: fp the output file handle. if fp == NULL then return: 1: - can generate an executable file 0: can't generate an - executable file + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed Help on function gen_file in module ida_loader: gen_file(*args) -> 'int' gen_file(otype, fp, ea1, ea2, flags) -> int + Generate an output file. - - Generate an output file. 'OFILE_EXE' : - - @param otype: type of output file. (C++: ofile_type_t) - @param fp: the output file handle (C++: FILE *) - @param ea1: start address. For some file types this argument is - ignored (C++: ea_t) - @param ea2: end address. For some file types this argument is ignored - as usual in ida, the end address of the range is not - included (C++: ea_t) - @param flags: Generate file flags (C++: int) + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok @return: number of the generated lines. -1 if an error occurred Help on function get_basic_file_type in module ida_loader: get_basic_file_type(*args) -> 'filetype_t' get_basic_file_type(li) -> filetype_t + Get the input file type. This function can recognize libraries and zip files. - - Get the input file type. This function can recognize libraries and zip - files. - - @param li (C++: linput_t *) + @param li: (C++: linput_t *) Help on function get_elf_debug_file_directory in module ida_loader: get_elf_debug_file_directory(*args) -> 'char const *' get_elf_debug_file_directory() -> char const * - - Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. Help on function get_file_type_name in module ida_loader: get_file_type_name(*args) -> 'size_t' get_file_type_name() -> str - - Get name of the current file type. The current file type is kept in - \inf{filetype}. + idainfo::filetype. @return: size of answer, this function always succeeds @@ -51580,47 +65963,39 @@ Help on function get_fileregion_ea in module ida_loader: get_fileregion_ea(*args) -> 'ea_t' get_fileregion_ea(offset) -> ea_t + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR - - Get linear address which corresponds to the specified input file - offset. If can't be found, return 'BADADDR' - - @param offset (C++: qoff64_t) + @param offset: (C++: qoff64_t) Help on function get_fileregion_offset in module ida_loader: get_fileregion_offset(*args) -> 'qoff64_t' get_fileregion_offset(ea) -> qoff64_t + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. - - Get offset in the input file which corresponds to the given ea. If the - specified ea can't be mapped into the input file offset, return -1. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_path in module ida_loader: get_path(*args) -> 'char const *' get_path(pt) -> char const * - - Get the file path - @param pt: file path type Types of the file pathes (C++: path_type_t) - @return: file path, never returns NULL + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr Help on function get_plugin_options in module ida_loader: get_plugin_options(*args) -> 'char const *' get_plugin_options(plugin) -> char const * + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified - - Get plugin options from the command line. If the user has specified - the options in the -Oplugin_name:options format, them this function - will return the 'options' part of it The 'plugin' parameter should - denote the plugin name Returns NULL if there we no options specified - - @param plugin (C++: const char *) + @param plugin: (C++: const char *) char const * Help on class idp_desc_t in module ida_loader: @@ -51647,22 +66022,22 @@ class idp_desc_t(builtins.object) | list of weak references to the object (if defined) | | checked - | idp_desc_t_checked_get(self) -> bool + | checked | | family - | idp_desc_t_family_get(self) -> qstring * + | family | | is_script - | idp_desc_t_is_script_get(self) -> bool + | is_script | | mtime - | idp_desc_t_mtime_get(self) -> time_t + | mtime | | names - | idp_desc_t_names_get(self) -> idp_names_t * + | names | | path - | idp_desc_t_path_get(self) -> qstring * + | path | | thisown | The membership flag @@ -51692,13 +66067,13 @@ class idp_name_t(builtins.object) | list of weak references to the object (if defined) | | hidden - | idp_name_t_hidden_get(self) -> bool + | hidden | | lname - | idp_name_t_lname_get(self) -> qstring * + | lname | | sname - | idp_name_t_sname_get(self) -> qstring * + | sname | | thisown | The membership flag @@ -51707,79 +66082,68 @@ Help on function is_database_flag in module ida_loader: is_database_flag(*args) -> 'bool' is_database_flag(dbfl) -> bool - - Get the current database flag - @param dbfl: flag Database flags (C++: uint32) + @param dbfl: (C++: uint32) flag Database flags @return: the state of the flag (set or cleared) Help on function is_trusted_idb in module ida_loader: is_trusted_idb(*args) -> 'bool' is_trusted_idb() -> bool - - Is the database considered as trusted? Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' load_and_run_plugin(name, arg) -> bool - - Load & run a plugin. - - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_binary_file in module ida_loader: load_binary_file(*args) -> 'bool' load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + Load a binary file into the database. This function usually is called from ui. - - Load a binary file into the database. This function usually is called - from ui. - - @param filename: the name of input file as is (if the input file is - from library, then this is the name from the library) - (C++: const char *) - @param li: loader input source (C++: linput_t *) - @param _neflags: Load file flags . For the first file, the flag - NEF_FIRST must be set. (C++: ushort) - @param fileoff: Offset in the input file (C++: qoff64_t) - @param basepara: Load address in paragraphs (C++: ea_t) - @param binoff: Load offset (load_address=(basepara<<4)+binoff) (C++: - ea_t) - @param nbytes: Number of bytes to load from the file. 0: up to the - end of the file (C++: uint64) + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) Help on function load_ids_module in module ida_loader: load_ids_module(*args) -> 'int' load_ids_module(fname) -> int + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. - - Load and apply IDS file. This function loads the specified IDS file - and applies it to the database. If the program imports functions from - a module with the same name as the name of the ids file being loaded, - then only functions from this module will be affected. Otherwise (i.e. - when the program does not import a module with this name) any function - in the program may be affected. - - @param fname: name of file to apply (C++: char *) + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed Help on function load_plugin in module ida_loader: load_plugin(*args) -> 'PyObject *' - load_plugin(name) -> PyObject * - - + load_plugin(name) -> PyCapsule or None Loads a plugin - @return: - - None if plugin could not be loaded + + @param name: char const * + @return: - None if plugin could not be loaded - An opaque object representing the loaded plugin Help on class loader_t in module ida_loader: @@ -51807,27 +66171,25 @@ class loader_t(builtins.object) | list of weak references to the object (if defined) | | flags - | loader_t_flags_get(self) -> uint32 + | flags | | thisown | The membership flag | | version - | loader_t_version_get(self) -> uint32 + | version Help on function mem2base in module ida_loader: mem2base(*args) -> 'int' mem2base(py_mem, ea, fpos=-1) -> int - - Load database from the memory. - @param mem: the buffer + + @param py_mem: the buffer @param ea: start linear addresses @param fpos: position in the input file the data is taken from. if == -1, then no file position correspond to the data. - @return: - - Returns zero if the passed buffer was not a string + @return: - Returns zero if the passed buffer was not a string - Otherwise 1 is returned Help on class plugin_info_t in module ida_loader: @@ -51855,37 +66217,37 @@ class plugin_info_t(builtins.object) | list of weak references to the object (if defined) | | arg - | plugin_info_t_arg_get(self) -> size_t + | arg | | comment - | plugin_info_t_comment_get(self) -> char * + | comment | | dllmem - | plugin_info_t_dllmem_get(self) -> idadll_t * + | dllmem | | entry - | plugin_info_t_entry_get(self) -> plugin_t * + | entry | | flags - | plugin_info_t_flags_get(self) -> int + | flags | | hotkey - | plugin_info_t_hotkey_get(self) -> ushort + | hotkey | | name - | plugin_info_t_name_get(self) -> char * + | name | | next - | plugin_info_t_next_get(self) -> plugin_info_t + | next | | org_hotkey - | plugin_info_t_org_hotkey_get(self) -> ushort + | org_hotkey | | org_name - | plugin_info_t_org_name_get(self) -> char * + | org_name | | path - | plugin_info_t_path_get(self) -> char * + | path | | thisown | The membership flag @@ -51894,19 +66256,16 @@ Help on function process_archive in module ida_loader: process_archive(*args) -> 'qstring *' process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter 'loader' is a pointer + to load_info_t structure. - - Calls 'loader_t::process_archive()' For parameters and return value - description look at 'loader_t::process_archive()' . Additional - parameter: - - @param temp_file (C++: qstring *) - @param li (C++: linput_t *) - @param module_name (C++: qstring *) - @param neflags (C++: ushort *) - @param defmember (C++: const char *) - @param loader: pointer to load_info_t structure. (C++: const - load_info_t *) + @param temp_file: (C++: qstring *) + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) load_info_t const * Help on class qvector_snapshotvec_t in module ida_loader: @@ -51917,13 +66276,19 @@ class qvector_snapshotvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & | | __getitem__(self, *args) -> 'snapshot_t *const &' | __getitem__(self, i) -> snapshot_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51933,23 +66298,36 @@ class qvector_snapshotvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: snapshot_t *const & | | __swig_destroy__ = delete_qvector_snapshotvec_t(...) | delete_qvector_snapshotvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: snapshot_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: snapshot_t *const & | | at(self, *args) -> 'snapshot_t *const &' | at(self, _idx) -> snapshot_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -51973,32 +66351,54 @@ class qvector_snapshotvec_t(builtins.object) | | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' | erase(self, it) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator | | extract(self, *args) -> 'snapshot_t **' | extract(self) -> snapshot_t ** | | find(self, *args) -> 'qvector< snapshot_t * >::const_iterator' | find(self, x) -> qvector< snapshot_t * >::iterator + | + | @param x: snapshot_t *const & + | | find(self, x) -> qvector< snapshot_t * >::const_iterator + | + | @param x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: snapshot_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: snapshot_t ** + | @param len: size_t | | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'snapshot_t *&' | push_back(self, x) + | + | @param x: snapshot_t *const & + | | push_back(self) -> snapshot_t *& | | qclear(self, *args) -> 'void' @@ -52006,16 +66406,26 @@ class qvector_snapshotvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: snapshot_t *const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< snapshot_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52041,66 +66451,80 @@ Help on function reload_file in module ida_loader: reload_file(*args) -> 'bool' reload_file(file, is_remote) -> bool + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. - - Reload the input file. This function reloads the byte values from the - input file. It doesn't modify the segmentation, names, comments, etc. - - @param file: name of the input file. if file == NULL then returns: - 1: can reload the input file 0: can't reload the input - file (C++: const char *) - @param is_remote: is the file located on a remote computer with the - debugger server? (C++: bool) + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? @return: success Help on function run_plugin in module ida_loader: run_plugin(*args) -> 'bool' run_plugin(plg, arg) -> bool - - Runs a plugin + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t @return: Boolean Help on function save_database in module ida_loader: save_database(*args) -> 'bool' save_database(outfile, flags, root=None, attr=None) -> bool + Save current database using a new file name. - - Save current database using a new file name.when both root and attr - are not NULL then the snapshot attributes will be updated, otherwise - the snapshot attributes will be inherited from the current database. - - @param outfile: output database file name (C++: const char *) - @param flags: Database flags (C++: uint32) - @param root: optional: snapshot tree root. (C++: const snapshot_t *) - @param attr: optional: snapshot attributes (C++: const snapshot_t *) + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. @return: success Help on function set_database_flag in module ida_loader: set_database_flag(*args) -> 'void' set_database_flag(dbfl, cnd=True) - - Set or clear database flag - @param dbfl: flag Database flags (C++: uint32) - @param cnd: set if true or clear flag otherwise (C++: bool) + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) -> 'void' + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) -> 'void' + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry Help on function set_path in module ida_loader: set_path(*args) -> 'void' set_path(pt, path) - - Set the file path - @param pt: file path type Types of the file pathes (C++: path_type_t) - @param path: new file path, use NULL or empty string to clear the file - path (C++: const char *) + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path Help on class snapshot_t in module ida_loader: @@ -52111,24 +66535,36 @@ class snapshot_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: snapshot_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: snapshot_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: snapshot_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: snapshot_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -52148,19 +66584,19 @@ class snapshot_t(builtins.object) | list of weak references to the object (if defined) | | children - | snapshot_t_children_get(self) -> qvector_snapshotvec_t + | children | | desc - | snapshot_t_desc_get(self) -> char [128] + | desc | | filename - | snapshot_t_filename_get(self) -> char [QMAXPATH] + | filename | | flags - | snapshot_t_flags_get(self) -> uint16 + | flags | | id - | snapshot_t_id_get(self) -> qtime64_t + | id | | thisown | The membership flag @@ -52170,212 +66606,752 @@ class snapshot_t(builtins.object) | | __hash__ = None -=== ida_loader EPYDOC INJECTIONS === -ida_loader.ACCEPT_ARCHIVE +Module "ida_merge"s docstring: +""" +Merge functionality. + +NOTE: this functionality is available in IDA Teams (not IDA Pro) + +There are 3 databases involved in merging: base_idb, local_db, and remote_idb. +* base_idb: the common base ancestor of 'local_db' and 'remote_db'. in the UI +this database is located in the middle. +* local_idb: local database that will contain the result of the merging. in the +UI this database is located on the left. +* remote_idb: remote database that will merge into local_idb. It may reside +locally on the current computer, despite its name. in the UI this database is +located on the right. base_idb and remote_idb are opened for reading only. +base_idb may be absent, in this case a 2-way merging is performed. + +Conflicts can be resolved automatically or interactively. The automatic +resolving scores the conflicting blocks and takes the better one. The +interactive resolving displays the full rendered contents side by side, and +expects the user to select the better side for each conflict. + +Since IDB files contain various kinds of information, there are many merging +phases. The entire list can be found in merge.cpp. Below are just some selected +examples: +* merge global database settings (inf and other global vars) +* merge segmentation and changes to the database bytes +* merge various lists: exports, imports, loaded tils, etc +* merge names, functions, function frames +* merge debugger settings, breakpoints +* merge struct/enum views +* merge local type libraries +* merge the disassembly items (i.e. the segment contents) this includes operand +types, code/data separation, etc +* merge plugin specific info like decompiler types, dwarf mappings, etc + +To unify UI elements of each merge phase, we use merger views: +* A view that consists of 2 or 3 panes: left (local_idb) and right (remote_idb). +The common base is in the middle, if present. +* Rendering of the panes depends on the phase, different phases show different +contents. +* The conflicts are highlighted by a colored background. Also, the detail pane +can be consulted for additional info. +* The user can select a conflict (or a bunch of conflicts) and say "use this +block". +* The user can browse the panes as he wishes. He will not be forced to handle +conflicts in any particular order. However, once he finishes working with a +merge handler and proceeds to the next one, he cannot go back. +* Scrolling the left pane will synchronously scroll the right pane and vice +versa. +* There are the navigation commands like "go to the prev/next conflict" +* The number of remaining conflicts to resolve is printed in the "Progress" +chooser. +* The user may manually modify local database inside the merger view. For that +he may use the regular hotkeys. However, editing the database may lead to new +conflicts, so we better restrict the available actions to some reasonable +minimum. Currently, this is not implemented. + +IDA works in a new "merge" mode during merging. In this mode most events are not +generated. We forbid them to reduce the risk that a rogue third-party plugin +that is not aware of the "merge" mode would spoil something. + +For example, normally renaming a function causes a cascade of events and may +lead to other database modifications. Some of them may be desired, some - not. +Since there are some undesired events, it is better to stop generating them. +However, some events are required to render the disassembly listing. For +example, ev_ana_insn, av_out_insn. This is why some events are still generated +in the "merge" mode. + +To let processor modules and plugins merge their data, we introduce a new event: +ev_create_merge_handlers. It is generated immediately after opening all three +idbs. The interested modules should react to this event by creating new merge +handlers, if they need them. + +While the kernel can create arbitrary merge handlers, modules can create only +the standard ones returned by: + +create_nodeval_merge_handler() create_nodeval_merge_handlers() +create_std_modmerge_handlers() + +We do not document merge_handler_t because once a merge handler is created, it +is used exclusively by the kernel. + +See mergemod.hpp for more information about the merge mode for modules.""" + +Help on function create_nodeval_merge_handler in module ida_merge: + +create_nodeval_merge_handler(*args) -> 'merge_handler_t *' + create_nodeval_merge_handler(mhp, label, nodename, tag, nds_flags, node_helper=None, skip_empty_nodes=True) -> merge_handler_t * + Create a merge handler for netnode scalar/string values + + @param mhp: (C++: const merge_handler_params_t &) merging parameters + @param label: (C++: const char *) handler short name (to be be appended to mhp.label) + @param nodename: (C++: const char *) netnode name + @param tag: (C++: uchar) a tag used to access values in the netnode + @param nds_flags: (C++: uint32) netnode value attributes (a combination of nds_flags_t) + @param node_helper: merge_node_helper_t * + @param skip_empty_nodes: (C++: bool) do not create handler in case of empty netnode + @return: diff source object (normally should be attahced to a merge handler) + +Help on function create_nodeval_merge_handlers in module ida_merge: + +create_nodeval_merge_handlers(*args) -> 'void' + create_nodeval_merge_handlers(out, mhp, nodename, valdesc, skip_empty_nodes=True) + Create a serie of merge handlers for netnode scalar/string values (call + create_nodeval_merge_handler() for each member of VALDESC) + + @param out: (C++: merge_handlers_t *) [out] created handlers will be placed here + @param mhp: (C++: const merge_handler_params_t &) merging parameters + @param nodename: (C++: const char *) netnode name + @param valdesc: (C++: const merge_node_info_t *) array of handler descriptions + @param skip_empty_nodes: (C++: bool) do not create handlers for empty netnodes + @return: diff source object (normally should be attahced to a merge handler) + +Help on function destroy_moddata_merge_handlers in module ida_merge: + +destroy_moddata_merge_handlers(*args) -> 'void' + destroy_moddata_merge_handlers(data_id) + + @param data_id: int + +Help on function get_ea_diffpos_name in module ida_merge: + +get_ea_diffpos_name(*args) -> 'qstring *' + get_ea_diffpos_name(ea) -> str + Get nice name for EA diffpos + + @param ea: (C++: ea_t) diffpos + @note + @see: get_nice_colored_name + +Help on function is_diff_merge_mode in module ida_merge: + +is_diff_merge_mode(*args) -> 'bool' + is_diff_merge_mode() -> bool + Return TRUE if IDA is running in diff mode (MERGE_POLICY_DIFF) + +Help on class item_block_locator_t in module ida_merge: + +class item_block_locator_t(builtins.object) + | Proxy of C++ merge_data_t::item_block_locator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> item_block_locator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_item_block_locator_t(...) + | delete_item_block_locator_t(self) + | + | get_block_head(self, *args) -> 'ea_t' + | get_block_head(self, md, idx, item_head) -> ea_t + | + | @param md: merge_data_t & + | @param idx: diff_source_idx_t + | @param item_head: ea_t + | + | setup_blocks(self, *args) -> 'bool' + | setup_blocks(self, md, _from, to, region) -> bool + | + | @param md: merge_data_t & + | @param from: diff_source_idx_t + | @param to: diff_source_idx_t + | @param region: diff_range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class merge_data_t in module ida_merge: + +class merge_data_t(builtins.object) + | Proxy of C++ merge_data_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | add_event_handler(self, *args) -> 'void' + | add_event_handler(self, handler) + | + | @param handler: merge_handler_t * + | + | base_id(self, *args) -> 'int' + | base_id(self) -> int + | + | compare_merging_tifs(self, *args) -> 'int' + | compare_merging_tifs(self, tif1, diffidx1, tif2, diffidx2) -> int + | compare types from two databases + | + | @param tif1: (C++: const tinfo_t &) type + | @param diffidx1: (C++: diff_source_idx_t) database index, diff_source_idx_t + | @param tif2: (C++: const tinfo_t &) type + | @param diffidx2: (C++: diff_source_idx_t) database index, diff_source_idx_t + | @return: -1, 0, 1 + | + | get_block_head(self, *args) -> 'ea_t' + | get_block_head(self, idx, item_head) -> ea_t + | + | @param idx: diff_source_idx_t + | @param item_head: ea_t + | + | has_existing_node(self, *args) -> 'bool' + | has_existing_node(self, nodename) -> bool + | check that node exists in any of databases + | + | @param nodename: (C++: const char *) char const * + | + | local_id(self, *args) -> 'int' + | local_id(self) -> int + | + | map_privrange_id(self, *args) -> 'bool' + | map_privrange_id(self, tid, ea, _from, to, strict=True) -> bool + | map IDs of structures, enumerations and their members + | + | @param tid: (C++: tid_t *) item ID in TO database + | @param ea: (C++: ea_t) item ID to find counterpart + | @param from: (C++: diff_source_idx_t) source database index, diff_source_idx_t + | @param to: (C++: diff_source_idx_t) destination database index, diff_source_idx_t + | @param strict: (C++: bool) raise interr if could not map + | @return: success + | + | map_tinfo(self, *args) -> 'bool' + | map_tinfo(self, tif, _from, to, strict=True) -> bool + | migrate type, replaces type references into FROM database to references into TO + | database + | + | @param tif: (C++: tinfo_t *) type to migrate, will be cleared in case of fail + | @param from: (C++: diff_source_idx_t) source database index, diff_source_idx_t + | @param to: (C++: diff_source_idx_t) destination database index, diff_source_idx_t + | @param strict: (C++: bool) raise interr if could not map + | @return: success + | + | remote_id(self, *args) -> 'int' + | remote_id(self) -> int + | + | remove_event_handler(self, *args) -> 'void' + | remove_event_handler(self, handler) + | + | @param handler: merge_handler_t * + | + | set_dbctx_ids(self, *args) -> 'void' + | set_dbctx_ids(self, local, remote, base) + | + | @param local: int + | @param remote: int + | @param base: int + | + | setup_blocks(self, *args) -> 'bool' + | setup_blocks(self, dst_idx, src_idx, region) -> bool + | + | @param dst_idx: diff_source_idx_t + | @param src_idx: diff_source_idx_t + | @param region: diff_range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dbctx_ids + | dbctx_ids + | + | ev_handlers + | ev_handlers + | + | item_block_locator + | item_block_locator + | + | last_udt_related_merger + | last_udt_related_merger + | + | nbases + | nbases + | + | thisown + | The membership flag + +Help on class merge_handler_params_t in module ida_merge: + +class merge_handler_params_t(builtins.object) + | Proxy of C++ merge_handler_params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _md, _label, _kind, _insert_after, _mh_flags) -> merge_handler_params_t + | + | @param _md: merge_data_t & + | @param _label: qstring const & + | @param _kind: enum merge_kind_t + | @param _insert_after: enum merge_kind_t + | @param _mh_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_merge_handler_params_t(...) + | delete_merge_handler_params_t(self) + | + | ui_complex_details(self, *args) -> 'bool' + | ui_complex_details(self, _mh_flags) -> bool + | Do not display the diffpos details in the chooser. For example, the + | MERGE_KIND_SCRIPTS handler puts the script body as the diffpos detail. It would + | not be great to show them as part of the chooser. + | + | @param _mh_flags: (C++: uint32) + | + | ui_complex_details(self) -> bool + | + | ui_complex_name(self, *args) -> 'bool' + | ui_complex_name(self, _mh_flags) -> bool + | It customary to create long diffpos names having many components that are + | separated by any 7-bit ASCII character (besides of '\0'). In this case it is + | possible to instruct IDA to use this separator to create a multi-column chooser. + | For example the MERGE_KIND_ENUMS handler has the following diffpos name: + | enum_1,enum_2 If MH_UI_COMMANAME is specified, IDA will create 2 columns for + | these names. + | + | @param _mh_flags: (C++: uint32) + | + | ui_complex_name(self) -> bool + | + | ui_dp_shortname(self, *args) -> 'bool' + | ui_dp_shortname(self, _mh_flags) -> bool + | The detail pane shows the diffpos details for the current diffpos range as a + | tree-like view. In this pane the diffpos names are used as tree node names and + | the diffpos details as their children. Sometimes, for complex diffpos names, the + | first part of the name looks better than the entire name. For example, the + | MERGE_KIND_SEGMENTS handler has the following diffpos name: + | <range>,<segm1>,<segm2>,<segm3> if MH_UI_DP_SHORTNAME is specified, IDA will use + | <range> as a tree node name + | + | @param _mh_flags: (C++: uint32) + | + | ui_dp_shortname(self) -> bool + | + | ui_has_details(self, *args) -> 'bool' + | ui_has_details(self, _mh_flags) -> bool + | Should IDA display the diffpos detail pane? + | + | @param _mh_flags: (C++: uint32) + | + | ui_has_details(self) -> bool + | + | ui_indent(self, *args) -> 'bool' + | ui_indent(self, _mh_flags) -> bool + | In the ordinary situation the spaces from the both sides of diffpos name are + | trimmed. Use this UI hint to preserve the leading spaces. + | + | @param _mh_flags: (C++: uint32) + | + | ui_indent(self) -> bool + | + | ui_linediff(self, *args) -> 'bool' + | ui_linediff(self, _mh_flags) -> bool + | In detail pane IDA shows difference between diffpos details. IDA marks added or + | deleted detail by color. In the modified detail the changes are marked. Use this + | UI hint if you do not want to show the differences inside detail. + | + | @param _mh_flags: (C++: uint32) + | + | ui_linediff(self) -> bool + | + | ui_split_char(self, *args) -> 'char' + | ui_split_char(self, _mh_flags) -> char + | + | @param _mh_flags: uint32 + | + | ui_split_char(self) -> char + | + | ui_split_str(self, *args) -> 'qstring' + | ui_split_str(self, _mh_flags) -> qstring + | + | @param _mh_flags: uint32 + | + | ui_split_str(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | insert_after + | insert_after + | + | kind + | kind + | + | label + | label + | + | md + | md + | + | mh_flags + | mh_flags + | + | thisown + | The membership flag + +Help on class merge_node_helper_t in module ida_merge: + +class merge_node_helper_t(builtins.object) + | Proxy of C++ merge_node_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> merge_node_helper_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_merge_node_helper_t(...) + | delete_merge_node_helper_t(self) + | + | get_column_headers(self, *args) -> 'void' + | get_column_headers(self, arg0, arg1, arg2) + | get column headers for chooser (to be used in + | linear_diff_source_t::get_column_headers) + | + | @param arg0: qstrvec_t * + | @param arg1: uchar + | @param arg2: void * + | + | get_netnode(self, *args) -> 'netnode' + | get_netnode(self) -> netnode + | return netnode to be used as source. If this function returns BADNODE netnode + | will be created using netnode name passed to create_nodeval_diff_source + | + | is_mergeable(self, *args) -> 'bool' + | is_mergeable(self, arg0, arg1) -> bool + | + | @param filter: check if we should perform merging for given record + | @param arg1: nodeidx_t + | + | map_scalar(self, *args) -> 'void' + | map_scalar(self, arg0, arg1, arg2, arg3) + | map scalar/string/buffered value + | + | @param arg0: nodeidx_t * + | @param arg1: void * + | @param arg2: diff_source_idx_t + | @param arg3: diff_source_idx_t + | + | map_string(self, *args) -> 'void' + | map_string(self, arg0, arg1, arg2, arg3) + | + | @param arg0: qstring * + | @param arg1: void * + | @param arg2: diff_source_idx_t + | @param arg3: diff_source_idx_t + | + | print_entry_details(self, *args) -> 'void' + | print_entry_details(self, arg0, arg1, arg2, arg3) + | print the details of the specified entry usually contains multiple lines, one + | for each attribute or detail. (to be used in print_diffpos_details) + | + | @param arg0: qstrvec_t * + | @param arg1: uchar + | @param arg2: nodeidx_t + | @param arg3: void * + | + | print_entry_name(self, *args) -> 'qstring' + | print_entry_name(self, arg0, arg1, arg2) -> qstring + | print the name of the specified entry (to be used in print_diffpos_name) + | + | @param arg0: uchar + | @param arg1: nodeidx_t + | @param arg2: void * + | + | refresh(self, *args) -> 'void' + | refresh(self, arg0, arg1) + | notify helper that some data was changed in the database and internal structures + | (e.g. caches) should be refreshed + | + | @param arg0: uchar + | @param arg1: void * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | append_eavec(*args) -> 'void' + | append_eavec(s, prefix, eas) + | can be used by derived classes + | + | @param s: (C++: qstring *) + | @param prefix: (C++: const char *) char const * + | @param eas: (C++: const eavec_t &) eavec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function merge_node_helper_t_append_eavec in module ida_merge: + +merge_node_helper_t_append_eavec(*args) -> 'void' + merge_node_helper_t_append_eavec(s, prefix, eas) + + @param s: qstring * + @param prefix: char const * + @param eas: eavec_t const & + +Help on class merge_node_info_t in module ida_merge: + +class merge_node_info_t(builtins.object) + | Proxy of C++ merge_node_info2_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, name, tag, nds_flags, node_helper=None) -> merge_node_info_t + | + | @param name: char const * + | @param tag: uchar + | @param nds_flags: uint32 + | @param node_helper: merge_node_helper_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_merge_node_info_t(...) + | delete_merge_node_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | nds_flags + | nds_flags + | + | node_helper + | node_helper + | + | tag + | tag + | + | thisown + | The membership flag + +Help on class moddata_diff_helper_t in module ida_merge: + +class moddata_diff_helper_t(builtins.object) + | Proxy of C++ moddata_diff_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _module_name, _netnode_name, _fields) -> moddata_diff_helper_t + | + | @param _module_name: char const * + | @param _netnode_name: char const * + | @param _fields: idbattr_info_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_moddata_diff_helper_t(...) + | delete_moddata_diff_helper_t(self) + | + | get_struc_ptr(self, *args) -> 'void *' + | get_struc_ptr(self, arg0, arg1, arg2) -> void * + | + | @param arg0: merge_data_t & + | @param arg1: diff_source_idx_t + | @param arg2: idbattr_info_t const & + | + | merge_ending(self, *args) -> 'void' + | merge_ending(self, arg0, arg1) + | + | @param arg0: diff_source_idx_t + | @param arg1: void * + | + | merge_starting(self, *args) -> 'void' + | merge_starting(self, arg0, arg1) + | + | @param arg0: diff_source_idx_t + | @param arg1: void * + | + | print_diffpos_details(self, *args) -> 'void' + | print_diffpos_details(self, arg0, arg1) + | + | @param arg0: qstrvec_t * + | @param arg1: idbattr_info_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | additional_mh_flags + | additional_mh_flags + | + | fields + | fields + | + | module_name + | module_name + | + | netnode_name + | netnode_name + | + | nfields + | nfields + | + | thisown + | The membership flag + +Module "ida_mergemod"s docstring: +""" +Merge functionality for modules. + +NOTE: this functionality is available in IDA Teams (not IDA Pro) + +This file contains helper classes and convenience functions for module (plugin +or processor module) merging. + +Each module is responsible for merging the data it owns (the module data). At +the very beginning, the merging engine generates the ev_create_merge_handlers +event. Modules should hook to this event to create merge handlers (mergers) that +are responsible for the module data. + +We assume that each module may have: + +* its data structure, derived from plugmod_t or procmod_t. we call this +structure moddata. +* a dedicated netnode (module node), modnode for short. + +Moddata is registered with the IDA kernel using the set_module_data() function, +which returns an integer, moddata_id. moddata_id is used to access the module +data structure during merging, so it is mandatory for all modules that support +merging. + +The following sources of mergeable data are supported: + +1. Data fields inside moddata 2. Values (scalar or binary, including blobs) +stored in the module node 3. Values (scalar or binary, including blobs) stored +in arbitrary netnodes 4. Data fields inside an auxiliary structure (provided by +a special helper) 5. Indexed arrays of data stored in netnodes + +Usually the sources #1-4 are handled by a single merger, which can be +parameterized using the folowing information: + +* moddata_id +* module name +* module node name +* array of field descriptors (idbattr_info_t idpopts_info[], see ida.hpp) + +See plugins/mex1 for an example of such a merger. + +These parameters are stored in a helper class (moddata_diff_helper_t or +derived). The helper class can override the following virtual methods: + +merge_starting - prepare module data for merging (e.g. load data from idb) +merge_ending - opposite to merge_starting (e.g. save merged data to idb) +get_struc_ptr - get pointer to the auxiliary structure (to handle source #4); +this method will be called only if the fields with the IDI_HLPSTRUC bit are +present in the idpopts_info[] array + +For most plugins, the default implementation of moddata_diff_helper_t or the +std_moddata_diff_helper_t helper (presented below) is sufficient. You can find +examples of non-standard helpers in plugins/mex2 and plugins/callgraph. + +The source #5 is handled by a different set of mergers described by an array of +merge_node_info_t entries: a merger per entry. A non-trivial example can be +found in plugins/mex3 and plugins/ex_merge_ldrdata. + +A module can use the create_std_modmerge_handlers() function to create necessary +merge handlers. Please pay attention to the following arguments: + +helper - a helper class responsible for access to the internal module data for +the sources #1-4. It can be used to prepare a pointer to the internal module +structure and load/save data before/after merging (example: plugins/mex2). Im +most cases the default helper class moddata_diff_helper_t can be used. +merge_node_info - array of descriptions for the source #5. Note that the same +module node is used for all array elements. If you need this kind of mergers for +other netnodes, you should add them manually using the +create_nodeval_merge_handler() function (example: plugins/mex3) + +See also module/mergecmn.cpp for procmod-specific functions and macros. + +Glossary: + +modmerger = module merger moddata = module data moddata_id = module data id""" + +Help on function create_std_modmerge_handlers in module ida_mergemod: + +create_std_modmerge_handlers(*args) -> 'void' + create_std_modmerge_handlers(mhp, helper, merge_node_info=None) + convinience function to create merge handlers for modules/plugins + + @param mhp: (C++: merge_handler_params_t &) + @param helper: (C++: moddata_diff_helper_t &) + @param merge_node_info: (C++: const merge_node_info_t *) merge_node_info2_t const * + +Module "ida_moves"s docstring: """ -Specify that a file format is served by archive loader See -'loader_t::accept_file' """ -ida_loader.ACCEPT_CONTINUE -""" -Specify that the function must be called another time See -'loader_t::accept_file' -""" - -ida_loader.ACCEPT_FIRST -""" -Specify that a file format should be place first in "load file" dialog -box. See 'loader_t::accept_file' -""" - -ida_loader.DBFL_BAK -""" -create backup file (if !DBFL_KILL) -""" - -ida_loader.DBFL_COMP -""" -collect garbage -""" - -ida_loader.DBFL_KILL -""" -delete unpacked database -""" - -ida_loader.DBFL_TEMP -""" -temporary database -""" - -ida_loader.FILEREG_NOTPATCHABLE -""" -form in the file. - -the data is kept in some encoded -""" - -ida_loader.FILEREG_PATCHABLE -""" -means that the input file may be patched (i.e. no compression, no -iterated data, etc) -""" - -ida_loader.GENFLG_ASMINC -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types -""" - -ida_loader.GENFLG_ASMTYPE -""" - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too -""" - -ida_loader.GENFLG_GENHTML -""" - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' -will be used) -""" - -ida_loader.GENFLG_IDCTYPE -""" - 'OFILE_IDC' : gen only information about types -""" - -ida_loader.GENFLG_MAPDMNG -""" - 'OFILE_MAP' : demangle names -""" - -ida_loader.GENFLG_MAPLOC -""" - 'OFILE_MAP' : include local names -""" - -ida_loader.GENFLG_MAPNAME -""" - 'OFILE_MAP' : include dummy names -""" - -ida_loader.GENFLG_MAPSEG -""" - 'OFILE_MAP' : generate map of segments -""" - -ida_loader.LDRF_RELOAD -""" -loader recognizes 'NEF_RELOAD' flag -""" - -ida_loader.LDRF_REQ_PROC -""" -Requires a processor to be set. if this bit is not set, load_file() -must call set_processor_type(..., SETPROC_LOADER) -""" - -ida_loader.MAX_DATABASE_DESCRIPTION -""" -Maximum database snapshot description length. -""" - -ida_loader.NEF_CODE -""" -load as a code segment - -for 'load_binary_file()' : -""" - -ida_loader.NEF_FILL -""" -Fill segment gaps. -""" - -ida_loader.NEF_FIRST -""" -into the database. - -This is the first file loaded -""" - -ida_loader.NEF_FLAT -""" -Autocreate FLAT group (PE) -""" - -ida_loader.NEF_IMPS -""" -Create import segment. -""" - -ida_loader.NEF_LALL -""" -Load all segments without questions. -""" - -ida_loader.NEF_LOPT -""" -Display additional loader options dialog. -""" - -ida_loader.NEF_MAN -""" -Manual load. -""" - -ida_loader.NEF_MINI -""" -Create mini database (do not copy segment bytes from the input file; -use only the file header metadata) -""" - -ida_loader.NEF_NAME -""" -Rename entries. -""" - -ida_loader.NEF_RELOAD -""" -reload the file at the same place: - don't create segmentsdon't create -fixup infodon't import segmentsetc load only the bytes into the base. -a loader should have 'LDRF_RELOAD' bit set -""" - -ida_loader.NEF_RSCS -""" -Load resources. -""" - -ida_loader.NEF_SEGS -""" -Create segments. -""" - -ida_loader.PLUGIN_DLL -""" -Pattern to find plugin files. -""" - -ida_loader.SSF_AUTOMATIC -""" -automatic snapshot -""" - -ida_loader.SSUF_DESC -""" -Update the description. -""" - -ida_loader.SSUF_FLAGS -""" -Update the flags. -""" - -ida_loader.SSUF_PATH -""" -Update the path. -""" -=== ida_loader EPYDOC INJECTIONS END === Help on class bookmarks_t in module ida_moves: class bookmarks_t(builtins.object) @@ -52393,21 +67369,52 @@ class bookmarks_t(builtins.object) | | erase(*args) -> 'bool' | erase(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * | | find_index(*args) -> 'uint32' | find_index(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * | | get(*args) -> 'bool' | get(out_entry, out_desc, index, ud) -> bool + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * | | get_desc(*args) -> 'qstring *' | get_desc(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * + | + | get_dirtree_id(*args) -> 'dirtree_id_t' + | get_dirtree_id(e, ud) -> dirtree_id_t + | + | @param e: lochist_entry_t const & + | @param ud: void * | | mark(*args) -> 'uint32' | mark(e, index, title, desc, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * | | size(*args) -> 'uint32' | size(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52425,31 +67432,64 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) -> 'bool' bookmarks_t_erase(e, index, ud) -> bool + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) -> 'uint32' bookmarks_t_find_index(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) -> 'bool' bookmarks_t_get(out_entry, out_desc, index, ud) -> bool + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) -> 'qstring *' bookmarks_t_get_desc(e, index, ud) -> str + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * + +Help on function bookmarks_t_get_dirtree_id in module ida_moves: + +bookmarks_t_get_dirtree_id(*args) -> 'dirtree_id_t' + bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t + + @param e: lochist_entry_t const & + @param ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) -> 'uint32' bookmarks_t_mark(e, index, title, desc, ud) -> uint32 + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) -> 'uint32' bookmarks_t_size(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * Help on class graph_location_info_t in module ida_moves: @@ -52460,12 +67500,16 @@ class graph_location_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -52482,16 +67526,16 @@ class graph_location_info_t(builtins.object) | list of weak references to the object (if defined) | | orgx - | graph_location_info_t_orgx_get(self) -> double + | orgx | | orgy - | graph_location_info_t_orgy_get(self) -> double + | orgy | | thisown | The membership flag | | zoom - | graph_location_info_t_zoom_get(self) -> double + | zoom | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -52505,16 +67549,16 @@ class lochist_entry_t(builtins.object) | | Methods defined here: | - | __eq__(self, *args) -> 'bool' - | __eq__(self, r) -> bool - | | __init__(self, *args) | __init__(self) -> lochist_entry_t | __init__(self, p, r) -> lochist_entry_t + | + | @param p: place_t const * + | @param r: renderer_info_t const & + | | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | + | @param other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -52523,20 +67567,22 @@ class lochist_entry_t(builtins.object) | | acquire_place(self, *args) -> 'void' | acquire_place(self, in_p) + | + | @param in_p: place_t * | | is_valid(self, *args) -> 'bool' | is_valid(self) -> bool | | place(self, *args) -> 'place_t *' | place(self) -> place_t - | place(self) -> place_t | | renderer_info(self, *args) -> 'renderer_info_t &' | renderer_info(self) -> renderer_info_t - | renderer_info(self) -> renderer_info_t | | set_place(self, *args) -> 'void' | set_place(self, p) + | + | @param p: place_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52548,18 +67594,13 @@ class lochist_entry_t(builtins.object) | list of weak references to the object (if defined) | | plce - | lochist_entry_t_plce_get(self) -> place_t + | plce | | rinfo - | lochist_entry_t_rinfo_get(self) -> renderer_info_t + | rinfo | | thisown | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None Help on class lochist_t in module ida_moves: @@ -52578,6 +67619,9 @@ class lochist_t(builtins.object) | | back(self, *args) -> 'bool' | back(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | clear(self, *args) -> 'void' | clear(self) @@ -52587,9 +67631,15 @@ class lochist_t(builtins.object) | | fwd(self, *args) -> 'bool' | fwd(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool | | get(self, *args) -> 'bool' | get(self, out, index) -> bool + | + | @param out: lochist_entry_t * + | @param index: uint32 | | get_current(self, *args) -> 'lochist_entry_t const &' | get_current(self) -> lochist_entry_t @@ -52602,12 +67652,20 @@ class lochist_t(builtins.object) | | init(self, *args) -> 'bool' | init(self, stream_name, _defpos, _ud, _flags) -> bool + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 | | is_history_enabled(self, *args) -> 'bool' | is_history_enabled(self) -> bool | | jump(self, *args) -> 'void' | jump(self, try_to_unhide, e) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & | | netcode(self, *args) -> 'nodeidx_t' | netcode(self) -> nodeidx_t @@ -52617,12 +67675,20 @@ class lochist_t(builtins.object) | | seek(self, *args) -> 'bool' | seek(self, index, try_to_unhide) -> bool + | + | @param index: uint32 + | @param try_to_unhide: bool | | set(self, *args) -> 'void' | set(self, index, e) + | + | @param index: uint32 + | @param e: lochist_entry_t const & | | set_current(self, *args) -> 'void' | set_current(self, e) + | + | @param e: lochist_entry_t const & | | size(self, *args) -> 'uint32' | size(self) -> uint32 @@ -52648,12 +67714,16 @@ class renderer_info_pos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -52670,13 +67740,13 @@ class renderer_info_pos_t(builtins.object) | list of weak references to the object (if defined) | | cx - | renderer_info_pos_t_cx_get(self) -> short + | cx | | cy - | renderer_info_pos_t_cy_get(self) -> short + | cy | | node - | renderer_info_pos_t_node_get(self) -> int + | node | | thisown | The membership flag @@ -52695,21 +67765,27 @@ class renderer_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: renderer_info_t const & | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_renderer_info_t(...) | delete_renderer_info_t(self) | - | clear(self, *args) -> 'void' - | clear(self) - | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -52720,13 +67796,13 @@ class renderer_info_t(builtins.object) | list of weak references to the object (if defined) | | gli - | renderer_info_t_gli_get(self) -> graph_location_info_t + | gli | | pos - | renderer_info_t_pos_get(self) -> renderer_info_pos_t + | pos | | rtype - | renderer_info_t_rtype_get(self) -> tcc_renderer_type_t + | rtype | | thisown | The membership flag @@ -52745,12 +67821,20 @@ class segm_move_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -52767,16 +67851,16 @@ class segm_move_info_t(builtins.object) | list of weak references to the object (if defined) | | _from - | segm_move_info_t__from_get(self) -> ea_t + | _from | | size - | segm_move_info_t_size_get(self) -> size_t + | size | | thisown | The membership flag | | to - | segm_move_info_t_to_get(self) -> ea_t + | to | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -52792,13 +67876,19 @@ class segm_move_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52808,30 +67898,42 @@ class segm_move_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & | | __swig_destroy__ = delete_segm_move_info_vec_t(...) | delete_segm_move_info_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52844,39 +67946,58 @@ class segm_move_info_vec_t(builtins.object) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t | | find(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | find(self, x) -> segm_move_info_t - | find(self, x) -> segm_move_info_t + | + | @param x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) + | + | @param x: segm_move_info_t const & + | | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' @@ -52884,16 +68005,26 @@ class segm_move_info_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52937,6 +68068,8 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) -> 'segm_move_info_t const *' | find(self, ea) -> segm_move_info_t + | + | @param ea: ea_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52949,9 +68082,13 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52961,25 +68098,37 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | begin(self) -> segm_move_info_t - | begin(self) -> segm_move_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -52992,11 +68141,16 @@ class segm_move_infos_t(segm_move_info_vec_t) | | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' | end(self) -> segm_move_info_t - | end(self) -> segm_move_info_t | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t @@ -53006,21 +68160,34 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'segm_move_info_t &' | push_back(self, x) + | + | @param x: segm_move_info_t const & + | | push_back(self) -> segm_move_info_t | | qclear(self, *args) -> 'void' @@ -53028,16 +68195,26 @@ class segm_move_infos_t(segm_move_info_vec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53056,22 +68233,40 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __hash__ = None +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + Help on function get_switch_info in module ida_nalt: get_switch_info(*args) -> 'ssize_t' get_switch_info(out, ea) -> ssize_t + + @param out: switch_info_t * + @param ea: ea_t Help on function add_encoding in module ida_nalt: add_encoding(*args) -> 'int' - add_encoding(encoding) -> int + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. - - Add a new encoding (e.g. "UTF-8"). - - @param encoding (C++: const char *) - @return: its index (1-based) if it's already in the list, return its - index + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error Help on class array_parameters_t in module ida_nalt: @@ -53098,13 +68293,13 @@ class array_parameters_t(builtins.object) | list of weak references to the object (if defined) | | alignment - | array_parameters_t_alignment_get(self) -> int32 + | alignment | | flags - | array_parameters_t_flags_get(self) -> int32 + | flags | | lineitems - | array_parameters_t_lineitems_get(self) -> int32 + | lineitems | | thisown | The membership flag @@ -53113,132 +68308,178 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) -> 'void' clr__bnot0(ea) + + @param ea: ea_t Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) -> 'void' clr__bnot1(ea) + + @param ea: ea_t Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) -> 'void' clr__invsign0(ea) + + @param ea: ea_t Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) -> 'void' clr__invsign1(ea) + + @param ea: ea_t Help on function clr_abits in module ida_nalt: clr_abits(*args) -> 'void' clr_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) -> 'void' clr_align_flow(ea) + + @param ea: ea_t Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) -> 'void' clr_colored_item(ea) + + @param ea: ea_t Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) -> 'void' clr_fixed_spd(ea) + + @param ea: ea_t Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) -> 'void' clr_has_lname(ea) + + @param ea: ea_t Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) -> 'void' clr_has_ti(ea) + + @param ea: ea_t Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) -> 'void' clr_has_ti0(ea) + + @param ea: ea_t Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) -> 'void' clr_has_ti1(ea) + + @param ea: ea_t Help on function clr_libitem in module ida_nalt: clr_libitem(*args) -> 'void' clr_libitem(ea) + + @param ea: ea_t Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) -> 'void' clr_lzero0(ea) + + @param ea: ea_t Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) -> 'void' clr_lzero1(ea) + + @param ea: ea_t Help on function clr_noret in module ida_nalt: clr_noret(*args) -> 'void' clr_noret(ea) + + @param ea: ea_t Help on function clr_notcode in module ida_nalt: clr_notcode(*args) -> 'void' clr_notcode(ea) - - Clear not-code mark. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) -> 'void' clr_notproc(ea) + + @param ea: ea_t Help on function clr_retfp in module ida_nalt: clr_retfp(*args) -> 'void' clr_retfp(ea) + + @param ea: ea_t Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) -> 'void' clr_terse_struc(ea) + + @param ea: ea_t Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) -> 'void' clr_tilcmt(ea) + + @param ea: ea_t Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) -> 'void' clr_usemodsp(ea) + + @param ea: ea_t Help on function clr_usersp in module ida_nalt: clr_usersp(*args) -> 'void' clr_usersp(ea) + + @param ea: ea_t Help on function clr_userti in module ida_nalt: clr_userti(*args) -> 'void' clr_userti(ea) + + @param ea: ea_t Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) -> 'void' clr_zstroff(ea) + + @param ea: ea_t Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -53249,9 +68490,13 @@ class custom_data_type_ids_fids_array(builtins.object) | | __getitem__(self, *args) -> 'short const &' | __getitem__(self, i) -> short const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array + | + | @param data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53263,10 +68508,23 @@ class custom_data_type_ids_fids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: short const & | | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) | delete_custom_data_type_ids_fids_array(self) | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -53276,8 +68534,11 @@ class custom_data_type_ids_fids_array(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bytes + | _get_bytes(self) -> bytevec_t + | | data - | custom_data_type_ids_fids_array_data_get(self) -> short (&)[8] + | data | | thisown | The membership flag @@ -53300,6 +68561,14 @@ class custom_data_type_ids_t(builtins.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) -> 'wrapped_array_t< int16,8 >' | __getFids(self) -> custom_data_type_ids_fids_array | + | get_dtid(self, *args) -> 'tid_t' + | get_dtid(self) -> tid_t + | + | set(self, *args) -> 'void' + | set(self, tid) + | + | @param tid: tid_t + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -53310,7 +68579,7 @@ class custom_data_type_ids_t(builtins.object) | list of weak references to the object (if defined) | | dtid - | custom_data_type_ids_t_dtid_get(self) -> int16 + | dtid | | fids | __getFids(self) -> custom_data_type_ids_fids_array @@ -53322,120 +68591,141 @@ Help on function dbg_get_input_path in module ida_nalt: dbg_get_input_path(*args) -> 'size_t' dbg_get_input_path() -> str - - - Get debugger input file name/path (see 'LFLG_DBG_NOPATH' ) + Get debugger input file name/path (see LFLG_DBG_NOPATH) Help on function del_absbase in module ida_nalt: del_absbase(*args) -> 'void' del_absbase(ea) + + @param ea: ea_t Help on function del_aflags in module ida_nalt: del_aflags(*args) -> 'void' del_aflags(ea) + + @param ea: ea_t Help on function del_alignment in module ida_nalt: del_alignment(*args) -> 'void' del_alignment(ea) + + @param ea: ea_t Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) -> 'void' del_array_parameters(ea) + + @param ea: ea_t Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) -> 'void' del_custom_data_type_ids(ea) + + @param ea: ea_t Help on function del_encoding in module ida_nalt: del_encoding(*args) -> 'bool' del_encoding(idx) -> bool + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. - - Delete an encoding (1-based) - - - @param idx (C++: int) + @param idx: (C++: int) the encoding index (1-based) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) -> 'void' del_ind_purged(ea) + + @param ea: ea_t Help on function del_item_color in module ida_nalt: del_item_color(*args) -> 'bool' del_item_color(ea) -> bool + + @param ea: ea_t Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) -> 'void' del_op_tinfo(ea, n) + + @param ea: ea_t + @param n: int Help on function del_refinfo in module ida_nalt: del_refinfo(*args) -> 'bool' del_refinfo(ea, n) -> bool + + @param ea: ea_t + @param n: int Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) + + @param ea: ea_t Help on function del_str_type in module ida_nalt: del_str_type(*args) -> 'void' del_str_type(ea) + + @param ea: ea_t Help on function del_switch_info in module ida_nalt: del_switch_info(*args) -> 'void' del_switch_info(ea) + + @param ea: ea_t Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) -> 'void' del_switch_parent(ea) + + @param ea: ea_t Help on function del_tinfo in module ida_nalt: del_tinfo(*args) -> 'void' del_tinfo(ea) + + @param ea: ea_t Help on function delete_imports in module ida_nalt: delete_imports(*args) -> 'void' delete_imports() - - Delete all imported modules information. Help on function ea2node in module ida_nalt: ea2node(*args) -> 'nodeidx_t' ea2node(ea) -> nodeidx_t - - Get netnode for the specified address. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function encoding_from_strtype in module ida_nalt: encoding_from_strtype(*args) -> 'char const *' encoding_from_strtype(strtype) -> char const * + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted - - Get encoding name for this strtype. - - - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -53462,20 +68752,18 @@ class enum_const_t(builtins.object) | list of weak references to the object (if defined) | | serial - | enum_const_t_serial_get(self) -> uchar + | serial | | thisown | The membership flag | | tid - | enum_const_t_tid_get(self) -> tid_t + | tid Help on function enum_import_names in module ida_nalt: enum_import_names(*args) -> 'int' enum_import_names(mod_index, py_cb) -> int - - Enumerate imports from a specific module. Please refer to ex_imports.py example. @@ -53487,111 +68775,120 @@ Help on function find_custom_refinfo in module ida_nalt: find_custom_refinfo(*args) -> 'int' find_custom_refinfo(name) -> int - - Get id of a custom refinfo type. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_abi_name in module ida_nalt: -get_abi_name(*args) +get_abi_name() Help on function get_absbase in module ida_nalt: get_absbase(*args) -> 'ea_t' get_absbase(ea) -> ea_t + + @param ea: ea_t Help on function get_aflags in module ida_nalt: -get_aflags(*args) -> 'uint32' - get_aflags(ea) -> uint32 +get_aflags(*args) -> 'aflags_t' + get_aflags(ea) -> aflags_t + + @param ea: ea_t Help on function get_alignment in module ida_nalt: get_alignment(*args) -> 'uint32' get_alignment(ea) -> uint32 + + @param ea: ea_t Help on function get_archive_path in module ida_nalt: get_archive_path(*args) -> 'qstring *' get_archive_path() -> str - - Get archive file path from which input file was extracted. Help on function get_array_parameters in module ida_nalt: get_array_parameters(*args) -> 'ssize_t' get_array_parameters(out, ea) -> ssize_t + + @param out: array_parameters_t * + @param ea: ea_t Help on function get_asm_inc_file in module ida_nalt: get_asm_inc_file(*args) -> 'qstring *' get_asm_inc_file() -> str - - Get name of the include file. Help on function get_custom_data_type_ids in module ida_nalt: get_custom_data_type_ids(*args) -> 'int' get_custom_data_type_ids(cdis, ea) -> int + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t Help on function get_custom_refinfo in module ida_nalt: get_custom_refinfo(*args) -> 'custom_refinfo_handler_t const *' get_custom_refinfo(crid) -> custom_refinfo_handler_t const * - - Get definition of a registered custom refinfo type. - - @param crid (C++: int) + @param crid: (C++: int) Help on function get_default_encoding_idx in module ida_nalt: get_default_encoding_idx(*args) -> 'int' get_default_encoding_idx(bpu) -> int - - Get default encoding index for a specific string type. - @param bpu: the amount of bytes per unit (e.g., 1 for ASCII, CP1252, - UTF-8..., 2 for UTF-16, 4 for UTF-32) 0 means no specific - encoding is set - byte values are displayed without - conversion. (C++: int) + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument + +Help on function get_elapsed_secs in module ida_nalt: + +get_elapsed_secs(*args) -> 'size_t' + get_elapsed_secs() -> size_t + Get seconds database stayed open. Help on function get_encoding_bpu in module ida_nalt: get_encoding_bpu(*args) -> 'int' get_encoding_bpu(idx) -> int + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) -> 'int' + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding - Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) - for the encoding with the given index. - - @param idx: the encoding index (C++: int) + @param encname: (C++: const char *) the encoding name @return: the number of bytes per units (1/2/4); -1 means error Help on function get_encoding_name in module ida_nalt: get_encoding_name(*args) -> 'char const *' get_encoding_name(idx) -> char const * - - Get encoding name for specific index (1-based). - @param idx (C++: int) - @return: NULL if idx is out of bounds + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted Help on function get_encoding_qty in module ida_nalt: get_encoding_qty(*args) -> 'int' get_encoding_qty() -> int - - Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -53599,135 +68896,204 @@ Help on function get_gotea in module ida_nalt: get_gotea(*args) -> 'ea_t' get_gotea() -> ea_t +Help on function get_ida_notepad_text in module ida_nalt: + +get_ida_notepad_text(*args) -> 'qstring *' + get_ida_notepad_text() -> str + Get notepad text. + +Help on function get_idb_ctime in module ida_nalt: + +get_idb_ctime(*args) -> 'time_t' + get_idb_ctime() -> time_t + Get database creation timestamp. + +Help on function get_idb_nopens in module ida_nalt: + +get_idb_nopens(*args) -> 'size_t' + get_idb_nopens() -> size_t + Get number of times the database is opened. + Help on function get_ids_modnode in module ida_nalt: get_ids_modnode(*args) -> 'netnode' get_ids_modnode() -> netnode - - Get ids modnode. Help on function get_imagebase in module ida_nalt: get_imagebase(*args) -> 'ea_t' get_imagebase() -> ea_t - - Get image base address. Help on function get_import_module_name in module ida_nalt: get_import_module_name(*args) -> 'PyObject *' - get_import_module_name(mod_index) -> PyObject * - - + get_import_module_name(mod_index) -> str Returns the name of an imported module given its index + + @param mod_index: int @return: None or the module name Help on function get_import_module_qty in module ida_nalt: get_import_module_qty(*args) -> 'uint' get_import_module_qty() -> uint - - Get number of import modules. Help on function get_ind_purged in module ida_nalt: get_ind_purged(*args) -> 'ea_t' get_ind_purged(ea) -> ea_t + + @param ea: ea_t + +Help on function get_initial_ida_version in module ida_nalt: + +get_initial_ida_version(*args) -> 'qstring *' + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) -> 'ushort' + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' get_input_file_path() -> str - - Get full path of the input file. Help on function get_item_color in module ida_nalt: get_item_color(*args) -> 'bgcolor_t' get_item_color(ea) -> bgcolor_t + + @param ea: ea_t + +Help on function get_loader_format_name in module ida_nalt: + +get_loader_format_name(*args) -> 'qstring *' + get_loader_format_name() -> str + Get file format name for loader modules. Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) -> 'bool' get_op_tinfo(tif, ea, n) -> bool + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int Help on function get_outfile_encoding_idx in module ida_nalt: get_outfile_encoding_idx(*args) -> 'int' get_outfile_encoding_idx() -> int - - - Get the index of the encoding used when producing files 0 means no - that the IDB's default 1 byte-per-unit encoding is used + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used Help on function get_refinfo in module ida_nalt: get_refinfo(*args) -> 'bool' get_refinfo(ri, ea, n) -> bool + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int Help on function get_reftype_by_size in module ida_nalt: get_reftype_by_size(*args) -> 'reftype_t' get_reftype_by_size(size) -> reftype_t + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) - - Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other - sizes returns reftype_t(-1) - - @param size (C++: size_t) + @param size: (C++: size_t) Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' get_root_filename() -> str - - Get file name only of the input file. Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t + + @param ea: ea_t + +Help on function get_srcdbg_paths in module ida_nalt: + +get_srcdbg_paths(*args) -> 'qstring *' + get_srcdbg_paths() -> str + Get source debug paths. + +Help on function get_srcdbg_undesired_paths in module ida_nalt: + +get_srcdbg_undesired_paths(*args) -> 'qstring *' + get_srcdbg_undesired_paths() -> str + Get user-closed source files. Help on function get_str_encoding_idx in module ida_nalt: get_str_encoding_idx(*args) -> 'uchar' get_str_encoding_idx(strtype) -> uchar - - Get index of the string encoding for this string. - - @param strtype (C++: int32) + @param strtype: (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) -> 'char' get_str_term1(strtype) -> char + + @param strtype: int32 Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) -> 'char' get_str_term2(strtype) -> char + + @param strtype: int32 Help on function get_str_type in module ida_nalt: get_str_type(*args) -> 'uint32' get_str_type(ea) -> uint32 + + @param ea: ea_t Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) -> 'uchar' get_str_type_code(strtype) -> uchar + + @param strtype: int32 + +Help on function get_str_type_prefix_length in module ida_nalt: + +get_str_type_prefix_length(*args) -> 'size_t' + get_str_type_prefix_length(strtype) -> size_t + + @param strtype: int32 + +Help on function get_strid in module ida_nalt: + +get_strid(*args) -> 'tid_t' + get_strid(ea) -> tid_t + + @param ea: ea_t Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) -> 'int' get_strtype_bpu(strtype) -> int + + @param strtype: int32 Help on function get_switch_info in module ida_nalt: @@ -53737,200 +69103,535 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) -> 'ea_t' get_switch_parent(ea) -> ea_t + + @param ea: ea_t Help on function get_tinfo in module ida_nalt: get_tinfo(*args) -> 'bool' get_tinfo(tif, ea) -> bool + + @param tif: tinfo_t * + @param ea: ea_t Help on function getnode in module ida_nalt: getnode(*args) -> 'netnode' getnode(ea) -> netnode + + @param ea: ea_t + +Help on function has_aflag_linnum in module ida_nalt: + +has_aflag_linnum(*args) -> 'bool' + has_aflag_linnum(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_lname in module ida_nalt: + +has_aflag_lname(*args) -> 'bool' + has_aflag_lname(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti in module ida_nalt: + +has_aflag_ti(*args) -> 'bool' + has_aflag_ti(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti0 in module ida_nalt: + +has_aflag_ti0(*args) -> 'bool' + has_aflag_ti0(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti1 in module ida_nalt: + +has_aflag_ti1(*args) -> 'bool' + has_aflag_ti1(flags) -> bool + + @param flags: aflags_t Help on function has_lname in module ida_nalt: has_lname(*args) -> 'bool' has_lname(ea) -> bool + + @param ea: ea_t Help on function has_ti in module ida_nalt: has_ti(*args) -> 'bool' has_ti(ea) -> bool + + @param ea: ea_t Help on function has_ti0 in module ida_nalt: has_ti0(*args) -> 'bool' has_ti0(ea) -> bool + + @param ea: ea_t Help on function has_ti1 in module ida_nalt: has_ti1(*args) -> 'bool' has_ti1(ea) -> bool + + @param ea: ea_t Help on function hide_border in module ida_nalt: hide_border(*args) -> 'void' hide_border(ea) + + @param ea: ea_t Help on function hide_item in module ida_nalt: hide_item(*args) -> 'void' hide_item(ea) + + @param ea: ea_t Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) -> 'bool' is__bnot0(ea) -> bool + + @param ea: ea_t Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) -> 'bool' is__bnot1(ea) -> bool + + @param ea: ea_t Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) -> 'bool' is__invsign0(ea) -> bool + + @param ea: ea_t Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) -> 'bool' is__invsign1(ea) -> bool + + @param ea: ea_t + +Help on function is_aflag__bnot0 in module ida_nalt: + +is_aflag__bnot0(*args) -> 'bool' + is_aflag__bnot0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__bnot1 in module ida_nalt: + +is_aflag__bnot1(*args) -> 'bool' + is_aflag__bnot1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign0 in module ida_nalt: + +is_aflag__invsign0(*args) -> 'bool' + is_aflag__invsign0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign1 in module ida_nalt: + +is_aflag__invsign1(*args) -> 'bool' + is_aflag__invsign1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_align_flow in module ida_nalt: + +is_aflag_align_flow(*args) -> 'bool' + is_aflag_align_flow(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_colored_item in module ida_nalt: + +is_aflag_colored_item(*args) -> 'bool' + is_aflag_colored_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: + +is_aflag_data_guessed_by_hexrays(*args) -> 'bool' + is_aflag_data_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_fixed_spd in module ida_nalt: + +is_aflag_fixed_spd(*args) -> 'bool' + is_aflag_fixed_spd(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: + +is_aflag_func_guessed_by_hexrays(*args) -> 'bool' + is_aflag_func_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_border in module ida_nalt: + +is_aflag_hidden_border(*args) -> 'bool' + is_aflag_hidden_border(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_item in module ida_nalt: + +is_aflag_hidden_item(*args) -> 'bool' + is_aflag_hidden_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_libitem in module ida_nalt: + +is_aflag_libitem(*args) -> 'bool' + is_aflag_libitem(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero0 in module ida_nalt: + +is_aflag_lzero0(*args) -> 'bool' + is_aflag_lzero0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero1 in module ida_nalt: + +is_aflag_lzero1(*args) -> 'bool' + is_aflag_lzero1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_manual_insn in module ida_nalt: + +is_aflag_manual_insn(*args) -> 'bool' + is_aflag_manual_insn(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_noret in module ida_nalt: + +is_aflag_noret(*args) -> 'bool' + is_aflag_noret(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notcode in module ida_nalt: + +is_aflag_notcode(*args) -> 'bool' + is_aflag_notcode(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notproc in module ida_nalt: + +is_aflag_notproc(*args) -> 'bool' + is_aflag_notproc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_public_name in module ida_nalt: + +is_aflag_public_name(*args) -> 'bool' + is_aflag_public_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_retfp in module ida_nalt: + +is_aflag_retfp(*args) -> 'bool' + is_aflag_retfp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_terse_struc in module ida_nalt: + +is_aflag_terse_struc(*args) -> 'bool' + is_aflag_terse_struc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_tilcmt in module ida_nalt: + +is_aflag_tilcmt(*args) -> 'bool' + is_aflag_tilcmt(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: + +is_aflag_type_determined_by_hexrays(*args) -> 'bool' + is_aflag_type_determined_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: + +is_aflag_type_guessed_by_hexrays(*args) -> 'bool' + is_aflag_type_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_ida in module ida_nalt: + +is_aflag_type_guessed_by_ida(*args) -> 'bool' + is_aflag_type_guessed_by_ida(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_usersp in module ida_nalt: + +is_aflag_usersp(*args) -> 'bool' + is_aflag_usersp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_userti in module ida_nalt: + +is_aflag_userti(*args) -> 'bool' + is_aflag_userti(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_weak_name in module ida_nalt: + +is_aflag_weak_name(*args) -> 'bool' + is_aflag_weak_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_zstroff in module ida_nalt: + +is_aflag_zstroff(*args) -> 'bool' + is_aflag_zstroff(flags) -> bool + + @param flags: aflags_t Help on function is_align_flow in module ida_nalt: is_align_flow(*args) -> 'bool' is_align_flow(ea) -> bool + + @param ea: ea_t Help on function is_colored_item in module ida_nalt: is_colored_item(*args) -> 'bool' is_colored_item(ea) -> bool + + @param ea: ea_t + +Help on function is_data_guessed_by_hexrays in module ida_nalt: + +is_data_guessed_by_hexrays(*args) -> 'bool' + is_data_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t Help on function is_finally_visible_item in module ida_nalt: is_finally_visible_item(*args) -> 'bool' is_finally_visible_item(ea) -> bool - - Is instruction visible? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) -> 'bool' is_fixed_spd(ea) -> bool + + @param ea: ea_t + +Help on function is_func_guessed_by_hexrays in module ida_nalt: + +is_func_guessed_by_hexrays(*args) -> 'bool' + is_func_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) -> 'bool' is_hidden_border(ea) -> bool + + @param ea: ea_t Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) -> 'bool' is_hidden_item(ea) -> bool + + @param ea: ea_t Help on function is_libitem in module ida_nalt: is_libitem(*args) -> 'bool' is_libitem(ea) -> bool + + @param ea: ea_t Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) -> 'bool' is_lzero0(ea) -> bool + + @param ea: ea_t Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) -> 'bool' is_lzero1(ea) -> bool + + @param ea: ea_t Help on function is_noret in module ida_nalt: is_noret(*args) -> 'bool' is_noret(ea) -> bool + + @param ea: ea_t Help on function is_notcode in module ida_nalt: is_notcode(*args) -> 'bool' is_notcode(ea) -> bool - - Is the address marked as not-code? - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) -> 'bool' is_notproc(ea) -> bool + + @param ea: ea_t Help on function is_pascal in module ida_nalt: is_pascal(*args) -> 'bool' is_pascal(strtype) -> bool + + @param strtype: int32 Help on function is_reftype_target_optional in module ida_nalt: is_reftype_target_optional(*args) -> 'bool' is_reftype_target_optional(type) -> bool - - Can the target be calculated using operand value? - - @param type (C++: reftype_t) + @param type: (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) -> 'bool' is_retfp(ea) -> bool + + @param ea: ea_t Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) -> 'bool' is_terse_struc(ea) -> bool + + @param ea: ea_t Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) -> 'bool' is_tilcmt(ea) -> bool + + @param ea: ea_t + +Help on function is_type_determined_by_hexrays in module ida_nalt: + +is_type_determined_by_hexrays(*args) -> 'bool' + is_type_determined_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_hexrays in module ida_nalt: + +is_type_guessed_by_hexrays(*args) -> 'bool' + is_type_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_ida in module ida_nalt: + +is_type_guessed_by_ida(*args) -> 'bool' + is_type_guessed_by_ida(ea) -> bool + + @param ea: ea_t Help on function is_usersp in module ida_nalt: is_usersp(*args) -> 'bool' is_usersp(ea) -> bool + + @param ea: ea_t Help on function is_userti in module ida_nalt: is_userti(*args) -> 'bool' is_userti(ea) -> bool + + @param ea: ea_t Help on function is_visible_item in module ida_nalt: is_visible_item(*args) -> 'bool' is_visible_item(ea) -> bool - - Test visibility of item at given ea. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) -> 'bool' is_zstroff(ea) -> bool + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) -> 'int32' + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) Help on function node2ea in module ida_nalt: node2ea(*args) -> 'ea_t' node2ea(ndx) -> ea_t + + @param ndx: nodeidx_t Help on class opinfo_t in module ida_nalt: @@ -53957,25 +69658,25 @@ class opinfo_t(builtins.object) | list of weak references to the object (if defined) | | cd - | opinfo_t_cd_get(self) -> custom_data_type_ids_t + | cd | | ec - | opinfo_t_ec_get(self) -> enum_const_t + | ec | | path - | opinfo_t_path_get(self) -> strpath_t + | path | | ri - | opinfo_t_ri_get(self) -> refinfo_t + | ri | | strtype - | opinfo_t_strtype_get(self) -> int32 + | strtype | | thisown | The membership flag | | tid - | opinfo_t_tid_get(self) -> tid_t + | tid Help on class printop_t in module ida_nalt: @@ -54003,9 +69704,13 @@ class printop_t(builtins.object) | | set_aflags_initialized(self, *args) -> 'void' | set_aflags_initialized(self, v=True) + | + | @param v: bool | | set_ti_initialized(self, *args) -> 'void' | set_ti_initialized(self, v=True) + | + | @param v: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54017,25 +69722,25 @@ class printop_t(builtins.object) | list of weak references to the object (if defined) | | aflags - | printop_t_aflags_get(self) -> flags_t + | aflags | | features - | printop_t_features_get(self) -> uchar + | features | | flags - | printop_t_flags_get(self) -> flags_t + | flags | | is_ti_valid | is_ti_initialized(self) -> bool | | suspop - | printop_t_suspop_get(self) -> int + | suspop | | thisown | The membership flag | | ti - | printop_t_ti_get(self) -> opinfo_t + | ti Help on class refinfo_t in module ida_nalt: @@ -54054,16 +69759,30 @@ class refinfo_t(builtins.object) | | init(self, *args) -> 'void' | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool | + | is_no_ones(self, *args) -> 'bool' + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) -> 'bool' + | is_no_zeros(self) -> bool + | | is_pastend(self, *args) -> 'bool' | is_pastend(self) -> bool | | is_rvaoff(self, *args) -> 'bool' | is_rvaoff(self) -> bool | + | is_selfref(self, *args) -> 'bool' + | is_selfref(self) -> bool + | | is_signed(self, *args) -> 'bool' | is_signed(self) -> bool | @@ -54072,12 +69791,15 @@ class refinfo_t(builtins.object) | | is_target_optional(self, *args) -> 'bool' | is_target_optional(self) -> bool + | < is_reftype_target_optional() | | no_base_xref(self, *args) -> 'bool' | no_base_xref(self) -> bool | | set_type(self, *args) -> 'void' - | set_type(self, t) + | set_type(self, rt) + | + | @param rt: reftype_t | | type(self, *args) -> 'reftype_t' | type(self) -> reftype_t @@ -54092,16 +69814,16 @@ class refinfo_t(builtins.object) | list of weak references to the object (if defined) | | base - | refinfo_t_base_get(self) -> ea_t + | base | | flags - | refinfo_t_flags_get(self) -> uint32 + | flags | | target - | refinfo_t_target_get(self) -> ea_t + | target | | tdelta - | refinfo_t_tdelta_get(self) -> adiff_t + | tdelta | | thisown | The membership flag @@ -54109,343 +69831,477 @@ class refinfo_t(builtins.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) -> 'bool' - rename_encoding(idx, encoding) -> bool + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. - - Change name for an encoding (1-based) - - - @param idx (C++: int) - @param encoding (C++: const char *) + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name Help on function retrieve_input_file_crc32 in module ida_nalt: retrieve_input_file_crc32(*args) -> 'uint32' retrieve_input_file_crc32() -> uint32 - - - Get input file crc32 stored in the database. it can be used to check - that the input file has not been changed. + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' retrieve_input_file_md5() -> bytes - - Get input file md5. Help on function retrieve_input_file_sha256 in module ida_nalt: retrieve_input_file_sha256(*args) -> 'uchar [ANY]' retrieve_input_file_sha256() -> bytes - - Get input file sha256. Help on function retrieve_input_file_size in module ida_nalt: -retrieve_input_file_size(*args) -> 'uint32' - retrieve_input_file_size() -> uint32 - - +retrieve_input_file_size(*args) -> 'size_t' + retrieve_input_file_size() -> size_t Get size of input file in bytes. Help on function set__bnot0 in module ida_nalt: set__bnot0(*args) -> 'void' set__bnot0(ea) + + @param ea: ea_t Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) -> 'void' set__bnot1(ea) + + @param ea: ea_t Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) -> 'void' set__invsign0(ea) + + @param ea: ea_t Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) -> 'void' set__invsign1(ea) + + @param ea: ea_t Help on function set_abits in module ida_nalt: set_abits(*args) -> 'void' set_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t Help on function set_absbase in module ida_nalt: set_absbase(*args) -> 'void' set_absbase(ea, x) + + @param ea: ea_t + @param x: ea_t Help on function set_aflags in module ida_nalt: set_aflags(*args) -> 'void' set_aflags(ea, flags) + + @param ea: ea_t + @param flags: aflags_t Help on function set_align_flow in module ida_nalt: set_align_flow(*args) -> 'void' set_align_flow(ea) + + @param ea: ea_t Help on function set_alignment in module ida_nalt: set_alignment(*args) -> 'void' set_alignment(ea, x) + + @param ea: ea_t + @param x: uint32 Help on function set_archive_path in module ida_nalt: set_archive_path(*args) -> 'bool' set_archive_path(file) -> bool - - Set archive file path from which input file was extracted. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) -> 'void' set_array_parameters(ea, _in) + + @param ea: ea_t + @param in: array_parameters_t const * Help on function set_asm_inc_file in module ida_nalt: set_asm_inc_file(*args) -> 'bool' set_asm_inc_file(file) -> bool - - Set name of the include file. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_colored_item in module ida_nalt: set_colored_item(*args) -> 'void' set_colored_item(ea) + + @param ea: ea_t Help on function set_custom_data_type_ids in module ida_nalt: set_custom_data_type_ids(*args) -> 'void' set_custom_data_type_ids(ea, cdis) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * + +Help on function set_data_guessed_by_hexrays in module ida_nalt: + +set_data_guessed_by_hexrays(*args) -> 'void' + set_data_guessed_by_hexrays(ea) + + @param ea: ea_t Help on function set_default_encoding_idx in module ida_nalt: set_default_encoding_idx(*args) -> 'bool' set_default_encoding_idx(bpu, idx) -> bool + Set default encoding for a string type - - set default encoding for a string type - - @param bpu: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 Help on function set_fixed_spd in module ida_nalt: set_fixed_spd(*args) -> 'void' set_fixed_spd(ea) + + @param ea: ea_t + +Help on function set_func_guessed_by_hexrays in module ida_nalt: + +set_func_guessed_by_hexrays(*args) -> 'void' + set_func_guessed_by_hexrays(ea) + + @param ea: ea_t Help on function set_gotea in module ida_nalt: set_gotea(*args) -> 'void' set_gotea(gotea) + + @param gotea: ea_t Help on function set_has_lname in module ida_nalt: set_has_lname(*args) -> 'void' set_has_lname(ea) + + @param ea: ea_t Help on function set_has_ti in module ida_nalt: set_has_ti(*args) -> 'void' set_has_ti(ea) + + @param ea: ea_t Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) -> 'void' set_has_ti0(ea) + + @param ea: ea_t Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) -> 'void' set_has_ti1(ea) + + @param ea: ea_t + +Help on function set_ida_notepad_text in module ida_nalt: + +set_ida_notepad_text(*args) -> 'void' + set_ida_notepad_text(text, size=0) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) Help on function set_ids_modnode in module ida_nalt: set_ids_modnode(*args) -> 'void' set_ids_modnode(id) - - Set ids modnode. - - @param id (C++: netnode) + @param id: (C++: netnode) Help on function set_imagebase in module ida_nalt: set_imagebase(*args) -> 'void' set_imagebase(base) - - Set image base address. - - @param base (C++: ea_t) + @param base: (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) -> 'void' set_item_color(ea, color) + + @param ea: ea_t + @param color: bgcolor_t Help on function set_libitem in module ida_nalt: set_libitem(*args) -> 'void' set_libitem(ea) + + @param ea: ea_t + +Help on function set_loader_format_name in module ida_nalt: + +set_loader_format_name(*args) -> 'void' + set_loader_format_name(name) + Set file format name for loader modules. + + @param name: (C++: const char *) char const * Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) -> 'void' set_lzero0(ea) + + @param ea: ea_t Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) -> 'void' set_lzero1(ea) + + @param ea: ea_t Help on function set_noret in module ida_nalt: set_noret(*args) -> 'void' set_noret(ea) + + @param ea: ea_t Help on function set_notcode in module ida_nalt: set_notcode(*args) -> 'void' set_notcode(ea) - - Mark address so that it cannot be converted to instruction. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) -> 'void' set_notproc(ea) + + @param ea: ea_t Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) -> 'bool' set_op_tinfo(ea, n, tif) -> bool + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * Help on function set_outfile_encoding_idx in module ida_nalt: set_outfile_encoding_idx(*args) -> 'bool' set_outfile_encoding_idx(idx) -> bool - - set encoding to be used when producing files - @param idx: the encoding index idx can be 0 to use the IDB's default - 1-byte-per-unit encoding (C++: int) + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding Help on function set_refinfo in module ida_nalt: set_refinfo(*args) -> 'bool' set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t Help on function set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) -> 'bool' set_refinfo_ex(ea, n, ri) -> bool + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * Help on function set_retfp in module ida_nalt: set_retfp(*args) -> 'void' set_retfp(ea) + + @param ea: ea_t Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' set_root_filename(file) - - Set full path of the input file. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t + +Help on function set_srcdbg_paths in module ida_nalt: + +set_srcdbg_paths(*args) -> 'void' + set_srcdbg_paths(paths) + Set source debug paths. + + @param paths: (C++: const char *) char const * + +Help on function set_srcdbg_undesired_paths in module ida_nalt: + +set_srcdbg_undesired_paths(*args) -> 'void' + set_srcdbg_undesired_paths(paths) + Set user-closed source files. + + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) -> 'int32' + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) Help on function set_str_type in module ida_nalt: set_str_type(*args) -> 'void' set_str_type(ea, x) + + @param ea: ea_t + @param x: uint32 Help on function set_switch_info in module ida_nalt: set_switch_info(*args) -> 'void' set_switch_info(ea, _in) + + @param ea: ea_t + @param in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) -> 'void' set_switch_parent(ea, x) + + @param ea: ea_t + @param x: ea_t Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) -> 'void' set_terse_struc(ea) + + @param ea: ea_t Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) -> 'void' set_tilcmt(ea) + + @param ea: ea_t Help on function set_tinfo in module ida_nalt: set_tinfo(*args) -> 'bool' set_tinfo(ea, tif) -> bool + + @param ea: ea_t + @param tif: tinfo_t const * + +Help on function set_type_determined_by_hexrays in module ida_nalt: + +set_type_determined_by_hexrays(*args) -> 'void' + set_type_determined_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_type_guessed_by_ida in module ida_nalt: + +set_type_guessed_by_ida(*args) -> 'void' + set_type_guessed_by_ida(ea) + + @param ea: ea_t Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) -> 'void' set_usemodsp(ea) + + @param ea: ea_t Help on function set_usersp in module ida_nalt: set_usersp(*args) -> 'void' set_usersp(ea) + + @param ea: ea_t Help on function set_userti in module ida_nalt: set_userti(*args) -> 'void' set_userti(ea) + + @param ea: ea_t Help on function set_visible_item in module ida_nalt: set_visible_item(*args) -> 'void' set_visible_item(ea, visible) - - Change visibility of item at given ea. - - @param ea (C++: ea_t) - @param visible (C++: bool) + @param ea: (C++: ea_t) + @param visible: (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) -> 'void' set_zstroff(ea) + + @param ea: ea_t Help on class strpath_ids_array in module ida_nalt: @@ -54456,9 +70312,13 @@ class strpath_ids_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -54470,10 +70330,23 @@ class strpath_ids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_strpath_ids_array(...) | delete_strpath_ids_array(self) | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -54483,8 +70356,11 @@ class strpath_ids_array(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bytes + | _get_bytes(self) -> bytevec_t + | | data - | strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type (&)[32]↗ + | data | | thisown | The membership flag @@ -54517,13 +70393,13 @@ class strpath_t(builtins.object) | list of weak references to the object (if defined) | | delta - | strpath_t_delta_get(self) -> adiff_t + | delta | | ids | __getIds(self) -> strpath_ids_array | | len - | strpath_t_len_get(self) -> int + | len | | thisown | The membership flag @@ -54548,15 +70424,25 @@ class switch_info_t(builtins.object) | | _set_values_lowcase(self, *args) -> 'void' | _set_values_lowcase(self, values) + | + | Parameters + | ---------- + | values: ea_t | | assign(self, *args) -> 'void' | assign(self, other) + | + | @param other: switch_info_t const & | | clear(self, *args) -> 'void' | clear(self) | | get_jrange_vrange(self, *args) -> 'bool' | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | get separate parts of the switch + | + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) | | get_jtable_element_size(self, *args) -> 'int' | get_jtable_element_size(self) -> int @@ -54569,6 +70455,7 @@ class switch_info_t(builtins.object) | | get_shift(self, *args) -> 'int' | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. | | get_version(self, *args) -> 'int' | get_version(self) -> int @@ -54597,23 +70484,40 @@ class switch_info_t(builtins.object) | is_subtract(self, *args) -> 'bool' | is_subtract(self) -> bool | + | is_user_defined(self, *args) -> 'bool' + | is_user_defined(self) -> bool + | | set_elbase(self, *args) -> 'void' | set_elbase(self, base) + | + | @param base: ea_t | | set_expr(self, *args) -> 'void' | set_expr(self, r, dt) + | + | @param r: int + | @param dt: op_dtype_t | | set_jtable_element_size(self, *args) -> 'void' | set_jtable_element_size(self, size) + | + | @param size: int | | set_jtable_size(self, *args) -> 'void' | set_jtable_size(self, size) + | + | @param size: int | | set_shift(self, *args) -> 'void' | set_shift(self, shift) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) | | set_vtable_element_size(self, *args) -> 'void' | set_vtable_element_size(self, size) + | + | @param size: int | | use_std_table(self, *args) -> 'bool' | use_std_table(self) -> bool @@ -54628,46 +70532,46 @@ class switch_info_t(builtins.object) | list of weak references to the object (if defined) | | custom - | switch_info_t_custom_get(self) -> uval_t + | custom | | defjump - | switch_info_t_defjump_get(self) -> ea_t + | defjump | | elbase - | switch_info_t_elbase_get(self) -> ea_t + | elbase | | expr_ea - | switch_info_t_expr_ea_get(self) -> ea_t + | expr_ea | | flags - | switch_info_t_flags_get(self) -> uint32 + | flags | | ind_lowcase - | switch_info_t_ind_lowcase_get(self) -> sval_t + | ind_lowcase | | jcases - | switch_info_t_jcases_get(self) -> int + | jcases | | jumps - | switch_info_t_jumps_get(self) -> ea_t + | jumps | | lowcase | _get_values_lowcase(self) -> ea_t | | marks - | switch_info_t_marks_get(self) -> eavec_t * + | marks | | ncases - | switch_info_t_ncases_get(self) -> ushort + | ncases | | regdtype - | switch_info_t_regdtype_get(self) -> op_dtype_t + | regdtype | | regnum - | switch_info_t_regnum_get(self) -> int + | regnum | | startea - | switch_info_t_startea_get(self) -> ea_t + | startea | | thisown | The membership flag @@ -54684,923 +70588,60 @@ Help on function switch_info_t__from_ptrval__ in module ida_nalt: switch_info_t__from_ptrval__(*args) -> 'switch_info_t *' switch_info_t__from_ptrval__(ptrval) -> switch_info_t + + @param ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) -> 'void' unhide_border(ea) + + @param ea: ea_t Help on function unhide_item in module ida_nalt: unhide_item(*args) -> 'void' unhide_item(ea) + + @param ea: ea_t + +Help on function upd_abits in module ida_nalt: + +upd_abits(*args) -> 'void' + upd_abits(ea, clr_bits, set_bits) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t + +Help on function uses_aflag_modsp in module ida_nalt: + +uses_aflag_modsp(*args) -> 'bool' + uses_aflag_modsp(flags) -> bool + + @param flags: aflags_t Help on function uses_modsp in module ida_nalt: uses_modsp(*args) -> 'bool' uses_modsp(ea) -> bool + + @param ea: ea_t Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) -> 'int' validate_idb_names(do_repair) -> int + + @param do_repair: bool -=== ida_nalt EPYDOC INJECTIONS === -ida_nalt.AFL_ALIGNFLOW -""" -the previous insn was created for alignment purposes only -""" - -ida_nalt.AFL_BNOT0 -""" -the 1st operand is bitwise negated -""" - -ida_nalt.AFL_BNOT1 -""" -the 2nd operand is bitwise negated -""" - -ida_nalt.AFL_COLORED -""" -has user defined instruction color? -""" - -ida_nalt.AFL_FIXEDSPD -""" -should not be modified by modules - -sp delta value is fixed by analysis. -""" - -ida_nalt.AFL_HIDDEN -""" -the item is hidden completely -""" - -ida_nalt.AFL_LIB -""" -item from the standard library. low level flag, is used to set -'FUNC_LIB' of 'func_t' -""" - -ida_nalt.AFL_LINNUM -""" -has line number info -""" - -ida_nalt.AFL_LNAME -""" -has local name too ( 'FF_NAME' should be set) -""" - -ida_nalt.AFL_LZERO0 -""" -toggle leading zeroes for the 1st operand -""" - -ida_nalt.AFL_LZERO1 -""" -toggle leading zeroes for the 2nd operand -""" - -ida_nalt.AFL_MANUAL -""" -the instruction/data is specified by the user -""" - -ida_nalt.AFL_NOBRD -""" -the code/data border is hidden -""" - -ida_nalt.AFL_NORET -""" -for imported function pointers: doesn't return. this flag can also be -used for any instruction which halts or finishes the program execution -""" - -ida_nalt.AFL_NOTCODE -""" -autoanalysis should not create code here -""" - -ida_nalt.AFL_NOTPROC -""" -autoanalysis should not create proc here -""" - -ida_nalt.AFL_PUBNAM -""" -name is public (inter-file linkage) -""" - -ida_nalt.AFL_RETFP -""" -function returns a floating point value -""" - -ida_nalt.AFL_SIGN0 -""" -code: toggle sign of the 1st operand -""" - -ida_nalt.AFL_SIGN1 -""" -code: toggle sign of the 2nd operand -""" - -ida_nalt.AFL_TERSESTR -""" -terse structure variable display? -""" - -ida_nalt.AFL_TI -""" -has typeinfo? ( 'NSUP_TYPEINFO' ) -""" - -ida_nalt.AFL_TI0 -""" -has typeinfo for operand 0? ( 'NSUP_OPTYPES' ) -""" - -ida_nalt.AFL_TI1 -""" -has typeinfo for operand 1? ( 'NSUP_OPTYPES' +1) -""" - -ida_nalt.AFL_TILCMT -""" -has type comment? (such a comment may be changed by IDA) -""" - -ida_nalt.AFL_USEMODSP -""" -example: pop [rsp+N] - -insn modifes SP and uses the modified value -""" - -ida_nalt.AFL_USERSP -""" -user-defined SP value -""" - -ida_nalt.AFL_USERTI -""" -(comes from the user or type library) - -the type information is definitive. -""" - -ida_nalt.AFL_WEAKNAM -""" -name is weak -""" - -ida_nalt.AFL_ZSTROFF -""" -display struct field name at 0 offset when displaying an offset. -example: \\v{offset somestruct.field_0} if this flag is clear, then -\\v{offset somestruct} -""" - -ida_nalt.AP_ALLOWDUPS -""" -use 'dup' construct -""" - -ida_nalt.AP_ARRAY -""" -create as array (this flag is not stored in database) -""" - -ida_nalt.AP_IDXBASEMASK -""" -mask for number base of the indexes -""" - -ida_nalt.AP_IDXBIN -""" -display indexes in binary -""" - -ida_nalt.AP_IDXDEC -""" -display indexes in decimal -""" - -ida_nalt.AP_IDXHEX -""" -display indexes in hex -""" - -ida_nalt.AP_IDXOCT -""" -display indexes in octal +Module "ida_name"s docstring: """ +Functions that deal with names. -ida_nalt.AP_INDEX -""" -display array element indexes as comments -""" - -ida_nalt.AP_SIGNED -""" -treats numbers as signed -""" - -ida_nalt.MAXSTRUCPATH -""" -maximal inclusion depth of unions -""" - -ida_nalt.NALT_ABSBASE -""" -absolute segment location -""" - -ida_nalt.NALT_AFLAGS -""" -additional flags for an item -""" - -ida_nalt.NALT_ALIGN -""" -(should by equal to power of 2) +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" -alignment value if the item is 'FF_ALIGN' -""" - -ida_nalt.NALT_COLOR -""" -instruction/data background color -""" - -ida_nalt.NALT_CREF_FROM -""" -code xref from, idx: source address -""" - -ida_nalt.NALT_CREF_TO -""" -code xref to, idx: target address -""" - -ida_nalt.NALT_DREF_FROM -""" -data xref from, idx: source address -""" - -ida_nalt.NALT_DREF_TO -""" -data xref to, idx: target address -""" - -ida_nalt.NALT_ENUM0 -""" -enum id for the first operand -""" - -ida_nalt.NALT_ENUM1 -""" -enum id for the second operand -""" - -ida_nalt.NALT_GR_LAYX -""" -group layout ptrs, hash: md5 of 'belongs' -""" - -ida_nalt.NALT_LINNUM -""" -source line number -""" - -ida_nalt.NALT_PURGE -""" -number of bytes purged from the stack when a function is called -indirectly -""" - -ida_nalt.NALT_STRTYPE -""" -type of string item -""" - -ida_nalt.NALT_STRUCT -""" -struct id -""" - -ida_nalt.NALT_SWITCH -""" -switch idiom address (used at jump targets) -""" - -ida_nalt.NSUP_ARGEAS -""" -instructions that initialize call arguments -""" - -ida_nalt.NSUP_ARRAY -""" -array parameters -""" - -ida_nalt.NSUP_CMT -""" -regular comment -""" - -ida_nalt.NSUP_CUSTDT -""" -custom data type id -""" - -ida_nalt.NSUP_FOP1 -""" -forced operand 1 -""" - -ida_nalt.NSUP_FOP2 -""" -forced operand 2 -""" - -ida_nalt.NSUP_FOP3 -""" -forced operand 3 -""" - -ida_nalt.NSUP_FOP4 -""" -forced operand 4 -""" - -ida_nalt.NSUP_FOP5 -""" -forced operand 5 -""" - -ida_nalt.NSUP_FOP6 -""" -forced operand 6 -""" - -ida_nalt.NSUP_FOP7 -""" -forced operand 7 -""" - -ida_nalt.NSUP_FOP8 -""" -forced operand 8 -""" - -ida_nalt.NSUP_FTAILS -""" -function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 -are reserved -""" - -ida_nalt.NSUP_GROUP -""" -graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are -reserved -""" - -ida_nalt.NSUP_GROUPS -""" -SEG_GRP: pack_dd encoded list of selectors. -""" - -ida_nalt.NSUP_GR_INFO -""" -group node info: color, ea, text -""" - -ida_nalt.NSUP_GR_LAYT -""" -group layouts, idx: layout pointer -""" - -ida_nalt.NSUP_JINFO -""" -jump table info -""" - -ida_nalt.NSUP_LLABEL -""" -local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved -""" - -ida_nalt.NSUP_MANUAL -""" -manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are -reserved -""" - -ida_nalt.NSUP_OMFGRP -""" -OMF: group of segments (not used anymore) -""" - -ida_nalt.NSUP_OPTYPES -""" -operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 -are reserved -""" - -ida_nalt.NSUP_OREF0 -""" -outer complex reference information for operand 1 -""" - -ida_nalt.NSUP_OREF1 -""" -outer complex reference information for operand 2 -""" - -ida_nalt.NSUP_OREF2 -""" -outer complex reference information for operand 3 -""" - -ida_nalt.NSUP_OREF3 -""" -outer complex reference information for operand 4 -""" - -ida_nalt.NSUP_OREF4 -""" -outer complex reference information for operand 5 -""" - -ida_nalt.NSUP_OREF5 -""" -outer complex reference information for operand 6 -""" - -ida_nalt.NSUP_OREF6 -""" -outer complex reference information for operand 7 -""" - -ida_nalt.NSUP_OREF7 -""" -outer complex reference information for operand 8 -""" - -ida_nalt.NSUP_ORIGFMD -""" -function metadata before lumina information was applied values -NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved -""" - -ida_nalt.NSUP_POINTS -""" -SP change points blob (see funcs.cpp). values -NSUP_POINTS..NSUP_POINTS+0x1000 are reserved -""" - -ida_nalt.NSUP_REF0 -""" -complex reference information for operand 1 -""" - -ida_nalt.NSUP_REF1 -""" -complex reference information for operand 2 -""" - -ida_nalt.NSUP_REF2 -""" -complex reference information for operand 3 -""" - -ida_nalt.NSUP_REF3 -""" -complex reference information for operand 4 -""" - -ida_nalt.NSUP_REF4 -""" -complex reference information for operand 5 -""" - -ida_nalt.NSUP_REF5 -""" -complex reference information for operand 6 -""" - -ida_nalt.NSUP_REF6 -""" -complex reference information for operand 7 -""" - -ida_nalt.NSUP_REF7 -""" -complex reference information for operand 8 -""" - -ida_nalt.NSUP_REGARG -""" -register argument type/name descriptions values -NSUP_REGARG..NSUP_REGARG+0x1000 are reserved -""" - -ida_nalt.NSUP_REGVAR -""" -register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are -reserved -""" - -ida_nalt.NSUP_REPCMT -""" -repeatable comment -""" - -ida_nalt.NSUP_SEGTRANS -""" -segment translations -""" - -ida_nalt.NSUP_STROFF0 -""" -stroff: struct path for the first operand -""" - -ida_nalt.NSUP_STROFF1 -""" -stroff: struct path for the second operand -""" - -ida_nalt.NSUP_SWITCH -""" -switch information -""" - -ida_nalt.NSUP_TYPEINFO -""" -type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are -reserved -""" - -ida_nalt.NSUP_XREFPOS -""" -saved xref address and type in the xrefs window -""" - -ida_nalt.PATCH_TAG -""" -Patch netnode tag. -""" - -ida_nalt.REFINFO_CUSTOM -""" -a custom reference the kernel will call \\ph{notify}(ph.custom_offset, -.... that can change all arguments used for calculations. This flag is -useful for custom fixups -""" - -ida_nalt.REFINFO_NOBASE -""" -don't create the base xref implies that the base can be any value nb: -base xrefs are created only if the offset base points to the middle of -a segment -""" - -ida_nalt.REFINFO_PASTEND -""" -reference past an item it may point to an nonexistent address do not -destroy alignment dirs -""" - -ida_nalt.REFINFO_RVAOFF -""" -based reference (rva) 'refinfo_t::base' will be forced to -'get_imagebase()' such a reference is displayed with the \\ash{a_rva} -keyword -""" - -ida_nalt.REFINFO_SIGNEDOP -""" -the operand value is sign-extended (only supported for -REF_OFF8/16/32/64) -""" - -ida_nalt.REFINFO_SUBTRACT -""" -the reference value is subtracted from the base value instead of (as -usual) being added to it -""" - -ida_nalt.REFINFO_TYPE -""" -reference type -""" - -ida_nalt.RIDX_ABINAME -""" -ABI name (processor specific) -""" - -ida_nalt.RIDX_ARCHIVE_PATH -""" -archive file path -""" - -ida_nalt.RIDX_C_MACROS -""" -C predefined macros. -""" - -ida_nalt.RIDX_DBG_BINPATHS -""" -unused (20 indexes) -""" - -ida_nalt.RIDX_DUALOP_GRAPH -""" -Graph text representation options. -""" - -ida_nalt.RIDX_DUALOP_TEXT -""" -Text text representation options. -""" - -ida_nalt.RIDX_FILE_FORMAT_NAME -""" -file format name for loader modules -""" - -ida_nalt.RIDX_GROUPS -""" -segment group information (see init_groups()) -""" - -ida_nalt.RIDX_H_PATH -""" -C header path. -""" - -ida_nalt.RIDX_IDA_VERSION -""" -version of ida which created the database -""" - -ida_nalt.RIDX_INCLUDE -""" -assembler include file name -""" - -ida_nalt.RIDX_MD5 -""" -MD5 of the input file. -""" - -ida_nalt.RIDX_NOTEPAD -""" -notepad blob, occupies 1000 indexes (1MB of text) -""" - -ida_nalt.RIDX_PROBLEMS -""" -problem lists -""" - -ida_nalt.RIDX_SELECTED_EXTLANG -""" -last selected extlang name (from the execute script box) -""" - -ida_nalt.RIDX_SELECTORS -""" -2..63 are for selector_t blob (see init_selectors()) -""" - -ida_nalt.RIDX_SHA256 -""" -SHA256 of the input file. -""" - -ida_nalt.RIDX_SMALL_IDC -""" -Instant IDC statements, blob. -""" - -ida_nalt.RIDX_SMALL_IDC_OLD -""" -Instant IDC statements (obsolete) -""" - -ida_nalt.RIDX_SRCDBG_PATHS -""" -source debug paths, occupies 20 indexes -""" - -ida_nalt.RIDX_SRCDBG_UNDESIRED -""" -user-closed source files, occupies 20 indexes -""" - -ida_nalt.RIDX_STR_ENCODINGS -""" -a list of encodings for the program strings -""" - -ida_nalt.STRENC_DEFAULT -""" -use default encoding for this type (see 'get_default_encoding_idx()' ) -""" - -ida_nalt.STRENC_NONE -""" -force no-conversion encoding -""" - -ida_nalt.STRTYPE_C -""" -Zero-terminated 16bit chars. -""" - -ida_nalt.STRTYPE_C_16 -""" -Zero-terminated 32bit chars. -""" - -ida_nalt.STRTYPE_C_32 -""" -Pascal-style, one-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2 -""" -Pascal-style, 16bit chars, two-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN2_16 -""" -Pascal-style, four-byte length prefix. -""" - -ida_nalt.STRTYPE_LEN4 -""" -Pascal-style, 16bit chars, four-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL -""" -Pascal-style, 16bit chars, one-byte length prefix. -""" - -ida_nalt.STRTYPE_PASCAL_16 -""" -Pascal-style, two-byte length prefix. -""" - -ida_nalt.STRTYPE_TERMCHR -""" -C-style string. - -< Character-terminated string. The termination characters are kept in -the next bytes of string type. -""" - -ida_nalt.SWI_CUSTOM -""" -custom jump table. \\ph{create_switch_xrefs} will be called to create -code xrefs for the table. Custom jump table must be created by the -module (see also 'SWI_STDTBL' ) -""" - -ida_nalt.SWI_DEFRET -""" -return in the default case (defjump==BADADDR) -""" - -ida_nalt.SWI_DEF_IN_TBL -""" -default case is an entry in the jump table. This flag is applicable in -2 cases:The sparse indirect switch (i.e. a switch with a values table) -<jump table="" size>=""> ==+ 1. The default case entry is the last one -in the table (or the first one in the case of an inversed jump -table).The switch with insns in the jump table. The default case entry -is before the first entry of the table. See also the -find_defjump_from_table() helper function. -""" - -ida_nalt.SWI_ELBASE -""" -segment will be used) - -elbase is present (otherwise the base of the switch -""" - -ida_nalt.SWI_HXNOLOWCASE -""" -lowcase value should not be used by the decompiler (internal flag) -""" - -ida_nalt.SWI_INDIRECT -""" -(for sparse switches) - -value table elements are used as indexes into the jump table -""" - -ida_nalt.SWI_J32 -""" -32-bit jump offsets -""" - -ida_nalt.SWI_JMPINSN -""" -jump table entries are insns. For such entries SHIFT has a different -meaning. It denotes the number of insns in the entry. For example, 0 - -the entry contains the jump to the case, 1 - the entry contains one -insn like a 'mov' and jump to the end of case, and so on. -""" - -ida_nalt.SWI_JMP_INV -""" -for first entry in values table) - -jumptable is inversed. (last entry is -""" - -ida_nalt.SWI_JSIZE -""" -jump offset expansion bit -""" - -ida_nalt.SWI_RESERVED -""" -was: SWI_DEFAULT -""" - -ida_nalt.SWI_SELFREL -""" -jump address is relative to the element not to ELBASE -""" - -ida_nalt.SWI_SEPARATE -""" -create an array of individual elements (otherwise separate items) -""" - -ida_nalt.SWI_SHIFT_MASK -""" -use formula (element<<shift) + elbase to find jump targets -""" - -ida_nalt.SWI_SIGNED -""" -jump table entries are signed -""" - -ida_nalt.SWI_SPARSE -""" -otherwise lowcase present - -sparse switch (value table present) -""" - -ida_nalt.SWI_STDTBL -""" -custom jump table with standard table formatting. ATM IDA doesn't use -SWI_CUSTOM for switches with standard table formatting. So this flag -can be considered as obsolete. -""" - -ida_nalt.SWI_SUBTRACT -""" -table values are subtracted from the elbase instead of being added -""" - -ida_nalt.SWI_V32 -""" -32-bit values in table -""" - -ida_nalt.SWI_VERSION -""" -the structure contains the VERSION member -""" - -ida_nalt.SWI_VSIZE -""" -value table element size expansion bit -""" - -ida_nalt.SWI_VSPLIT -""" -value table is split (only for 32-bit values) -""" -=== ida_nalt EPYDOC INJECTIONS END === Help on class NearestName in module ida_name: class NearestName(builtins.object) @@ -55638,22 +70679,18 @@ Help on function append_struct_fields in module ida_name: append_struct_fields(*args) -> 'qstring *, adiff_t *' append_struct_fields(disp, n, path, flags, delta, appzero) -> str - - Append names of struct fields to a name if the name is a struct name. - @param disp: displacement from the name (C++: adiff_t *) - @param n: number of operand n which the name appears (C++: int) - @param path: path in the struct. path is an array of id's. maximal - length of array is MAXSTRUCPATH . the first element of - the array is the structure id. consecutive elements are - id's of used union members (if any). (C++: const tid_t - *) - @param flags: the input flags. they will be returned if the struct - cannot be found. (C++: flags_t) - @param delta: delta to add to displacement (C++: adiff_t) - @param appzero: should append a struct field name if the displacement - is zero? (C++: bool) + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags64_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? @return: flags of the innermost struct member or the input flags Help on function calc_gtn_flags in module ida_name: @@ -55670,36 +70707,42 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) -> 'qstring *' cleanup_name(ea, name, flags=0) -> str + + @param ea: ea_t + @param name: char const * + @param flags: uint32 Help on function del_debug_names in module ida_name: del_debug_names(*args) -> 'void' del_debug_names(ea1, ea2) + + @param ea1: ea_t + @param ea2: ea_t Help on function del_global_name in module ida_name: del_global_name(*args) -> 'bool' del_global_name(ea) -> bool + + @param ea: ea_t Help on function del_local_name in module ida_name: del_local_name(*args) -> 'bool' del_local_name(ea) -> bool + + @param ea: ea_t Help on function demangle_name in module ida_name: demangle_name(*args) -> 'qstring *' demangle_name(name, disable_mask, demreq=DQT_FULL) -> str - - Demangle a name. - @param name: name to demangle (C++: const char *) - @param disable_mask: bits to inhibit parts of demangled name (see - MNG_). by the M_COMPILER bits a specific compiler - can be selected (see MT_). (C++: uint32) - @param demreq (C++: demreq_type_t) - @return: ME_... or MT__ bitmasks from demangle.hpp + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t Help on class ea_name_t in module ida_name: @@ -55711,6 +70754,9 @@ class ea_name_t(builtins.object) | __init__(self, *args) | __init__(self) -> ea_name_t | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -55727,10 +70773,10 @@ class ea_name_t(builtins.object) | list of weak references to the object (if defined) | | ea - | ea_name_t_ea_get(self) -> ea_t + | ea | | name - | ea_name_t_name_get(self) -> qstring * + | name | | thisown | The membership flag @@ -55744,10 +70790,14 @@ class ea_name_vec_t(builtins.object) | | __getitem__(self, *args) -> 'ea_name_t const &' | __getitem__(self, i) -> ea_name_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -55759,19 +70809,23 @@ class ea_name_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ea_name_t const & | | __swig_destroy__ = delete_ea_name_vec_t(...) | delete_ea_name_vec_t(self) | | at(self, *args) -> 'ea_name_t const &' | at(self, _idx) -> ea_name_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< ea_name_t >::const_iterator' | begin(self) -> ea_name_t - | begin(self) -> ea_name_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -55784,11 +70838,16 @@ class ea_name_vec_t(builtins.object) | | end(self, *args) -> 'qvector< ea_name_t >::const_iterator' | end(self) -> ea_name_t - | end(self) -> ea_name_t | | erase(self, *args) -> 'qvector< ea_name_t >::iterator' | erase(self, it) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | | erase(self, first, last) -> ea_name_t + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator | | extract(self, *args) -> 'ea_name_t *' | extract(self) -> ea_name_t @@ -55798,18 +70857,29 @@ class ea_name_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=ea_name_t()) + | + | @param x: ea_name_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: ea_name_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< ea_name_t >::iterator' | insert(self, it, x) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ea_name_t &' | push_back(self, x) + | + | @param x: ea_name_t const & + | | push_back(self) -> ea_name_t | | qclear(self, *args) -> 'void' @@ -55817,16 +70887,26 @@ class ea_name_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ea_name_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< ea_name_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -55847,770 +70927,582 @@ Help on function extract_name in module ida_name: extract_name(*args) -> 'qstring *' extract_name(line, x) -> str - - Extract a name or address from the specified string. - @param line: input string (C++: const char *) - @param x: x coordinate of cursor (C++: int) + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor @return: -1 if cannot extract. otherwise length of the name Help on function force_name in module ida_name: force_name(*args) -> 'bool' force_name(ea, name, flags=0) -> bool + + @param ea: ea_t + @param name: char const * + @param flags: int Help on function get_colored_demangled_name in module ida_name: get_colored_demangled_name(*args) -> 'qstring' get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_colored_long_name in module ida_name: get_colored_long_name(*args) -> 'qstring' get_colored_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function get_colored_name in module ida_name: get_colored_name(*args) -> 'qstring' get_colored_name(ea) -> qstring + + @param ea: ea_t Help on function get_colored_short_name in module ida_name: get_colored_short_name(*args) -> 'qstring' get_colored_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function get_cp_validity in module ida_name: get_cp_validity(*args) -> 'bool' get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range - - Is the given codepoint (or range) acceptable in the given context? If - 'endcp' is not BADCP, it is considered to be the end of the range: - [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function get_debug_name in module ida_name: get_debug_name(*args) -> 'qstring *' get_debug_name(ea_ptr, how) -> str + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) -> 'ea_t' get_debug_name_ea(name) -> ea_t + + @param name: char const * Help on function get_debug_names in module ida_name: get_debug_names(*args) -> 'PyObject *' get_debug_names(names, ea1, ea2) - get_debug_names(ea1, ea2, return_list=False) -> PyObject * + + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t + + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) -> 'qstring' get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int Help on function get_ea_name in module ida_name: get_ea_name(*args) -> 'qstring' get_ea_name(ea, gtn_flags=0) -> qstring - - Get name at the specified address. - @param ea: linear address (C++: ea_t) - @param gtn_flags: how exactly the name should be retrieved. - combination of bits for get_ea_name() function. - There is a convenience bits (C++: int) + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits @return: success Help on function get_long_name in module ida_name: get_long_name(*args) -> 'qstring' get_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_mangled_name_type in module ida_name: + +get_mangled_name_type(*args) -> 'mangled_name_type_t' + get_mangled_name_type(name) -> mangled_name_type_t + + @param name: char const * Help on function get_name in module ida_name: get_name(*args) -> 'qstring' get_name(ea) -> qstring + + @param ea: ea_t Help on function get_name_base_ea in module ida_name: get_name_base_ea(*args) -> 'ea_t' get_name_base_ea(_from, to) -> ea_t - - Get address of the name used in the expression for the address - @param _from: address of the operand which references to the address - (C++: ea_t) - @param to: the referenced address (C++: ea_t) + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address @return: address of the name used to represent the operand Help on function get_name_color in module ida_name: get_name_color(*args) -> 'color_t' get_name_color(_from, ea) -> color_t - - - Calculate flags for 'get_ea_name()' function. + Calculate flags for get_ea_name() function. Get name color. - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . The kernel returns - a local name color if the reference is within a - function, i.e. 'from' and 'ea' belong to the same - function. (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_expr in module ida_name: get_name_expr(*args) -> 'qstring *' get_name_expr(_from, n, ea, off, flags=0x0001) -> str + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. - - Convert address to name expression (name with a displacement). This - function takes into account fixup information and returns a colored - name expression (in the form <name> +/- <offset>). It also knows about - structure members and arrays. If the specified address doesn't have a - name, a dummy name is generated. - - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of the - operand in the instruction. (C++: ea_t) - @param n: number of referencing operand. for data items specify 0 - (C++: int) - @param ea: address to convert to name expression (C++: ea_t) - @param off: the value of name expression. this parameter is used only - to check that the name expression will have the wanted - value. 'off' may be equal to BADADDR but this is - discouraged because it prohibits checks. (C++: uval_t) - @param flags: Name expression flags (C++: int) - @return: < 0 if address is not valid, no segment or other failure. - otherwise the length of the name expression in characters. + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. Help on function get_name_value in module ida_name: get_name_value(*args) -> 'uval_t *' get_name_value(_from, name) -> int + Get value of the name. This function knows about: regular names, enums, special + segments, etc. - - Get value of the name. This function knows about: regular names, - enums, special segments, etc. - - @param _from: linear address where the name is used if not applicable, - then should be BADADDR (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr @return: Name value result codes Help on function get_nice_colored_name in module ida_name: get_nice_colored_name(*args) -> 'qstring *' get_nice_colored_name(ea, flags=0) -> str + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset - - Get a nice colored name at the specified address. Ex:segment:sub+offse - tsegment:sub:local_labelsegment:labelsegment:addresssegment:address+of - fset - - @param ea (C++: ea_t) - @param flags (C++: int) + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags @return: the length of the generated name in bytes. Help on function get_nlist_ea in module ida_name: get_nlist_ea(*args) -> 'ea_t' get_nlist_ea(idx) -> ea_t - - Get address from the list at 'idx'. - - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_idx in module ida_name: get_nlist_idx(*args) -> 'size_t' get_nlist_idx(ea) -> size_t + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. - - Get index of the name in the listreturns the closest match. may return - idx >= size. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_nlist_name in module ida_name: get_nlist_name(*args) -> 'char const *' get_nlist_name(idx) -> char const * - - Get name using idx. - - @param idx (C++: size_t) + @param idx: (C++: size_t) Help on function get_nlist_size in module ida_name: get_nlist_size(*args) -> 'size_t' get_nlist_size() -> size_t - - Get number of names in the list. Help on function get_short_name in module ida_name: get_short_name(*args) -> 'qstring' get_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function get_visible_name in module ida_name: get_visible_name(*args) -> 'qstring' get_visible_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int Help on function hide_name in module ida_name: hide_name(*args) -> 'void' hide_name(ea) - - Remove name from the list of names - @param ea: address of the name (C++: ea_t) + @param ea: (C++: ea_t) address of the name Help on function is_ident in module ida_name: is_ident(*args) -> 'bool' is_ident(name) -> bool - - Is a valid name? (including ::MangleChars) - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_ident_cp in module ida_name: is_ident_cp(*args) -> 'bool' is_ident_cp(cp) -> bool + Can a character appear in a name? (present in ::NameChars or ::MangleChars) - - Can a character appear in a name? (present in ::NameChars or - ::MangleChars) - - - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_in_nlist in module ida_name: is_in_nlist(*args) -> 'bool' is_in_nlist(ea) -> bool + Is the name included into the name list? - - Is name included into names list? - - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function is_name_defined_locally in module ida_name: is_name_defined_locally(*args) -> 'bool' is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool - - Is the name defined locally in the specified function? - @param pfn: pointer to function (C++: func_t *) - @param name: name to check (C++: const char *) - @param ignore_name_def: which names to ignore when checking (C++: - ignore_name_def_t) - @param ea1: the starting address of the range inside the function - (optional) (C++: ea_t) - @param ea2: the ending address of the range inside the function - (optional) (C++: ea_t) + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) @return: true if the name has been defined Help on function is_public_name in module ida_name: is_public_name(*args) -> 'bool' is_public_name(ea) -> bool + + @param ea: ea_t Help on function is_strlit_cp in module ida_name: is_strlit_cp(*args) -> 'bool' is_strlit_cp(cp, specific_ranges=None) -> bool + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) - - Can a character appear in a string literal (present in ::StrlitChars) - If 'specific_ranges' are specified, those will be used instead of the - ones corresponding to the current culture (only if ::StrlitChars is - configured to use the current culture) - - @param cp (C++: wchar32_t) - @param specific_ranges (C++: const rangeset_crefvec_t *) + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * Help on function is_uname in module ida_name: is_uname(*args) -> 'bool' is_uname(name) -> bool - - Is valid user-specified name? (valid name & !dummy prefix). - @param name: name to test. may be NULL. (C++: const char *) + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_valid_cp in module ida_name: is_valid_cp(*args) -> 'bool' is_valid_cp(cp, kind, data=None) -> bool - - Is the given codepoint acceptable in the given context? - - @param cp (C++: wchar32_t) - @param kind (C++: nametype_t) - @param data (C++: void *) + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) Help on function is_valid_typename in module ida_name: is_valid_typename(*args) -> 'bool' is_valid_typename(name) -> bool - - Is valid type name? - @param name: name to test. may be NULL. (C++: const char *) + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no Help on function is_visible_cp in module ida_name: is_visible_cp(*args) -> 'bool' is_visible_cp(cp) -> bool - - Can a character be displayed in a name? (present in ::NameChars) - - @param cp (C++: wchar32_t) + @param cp: (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) -> 'bool' is_weak_name(ea) -> bool + + @param ea: ea_t Help on function make_name_auto in module ida_name: make_name_auto(*args) -> 'bool' make_name_auto(ea) -> bool + + @param ea: ea_t Help on function make_name_non_public in module ida_name: make_name_non_public(*args) -> 'void' make_name_non_public(ea) + + @param ea: ea_t Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) -> 'void' make_name_non_weak(ea) + + @param ea: ea_t Help on function make_name_public in module ida_name: make_name_public(*args) -> 'void' make_name_public(ea) + + @param ea: ea_t Help on function make_name_user in module ida_name: make_name_user(*args) -> 'bool' make_name_user(ea) -> bool + + @param ea: ea_t Help on function make_name_weak in module ida_name: make_name_weak(*args) -> 'void' make_name_weak(ea) + + @param ea: ea_t Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) -> 'void' rebuild_nlist() - - - Rebuild names list. + Rebuild the name list. Help on function reorder_dummy_names in module ida_name: reorder_dummy_names(*args) -> 'void' reorder_dummy_names() - - Renumber dummy names. Help on function set_cp_validity in module ida_name: set_cp_validity(*args) -> 'void' set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range - - Mark the given codepoint (or range) as acceptable or unacceptable in - the given context If 'endcp' is not BADCP, it is considered to be the - end of the range: [cp, endcp), and is not included in the range - - @param kind (C++: ucdr_kind_t) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) Help on function set_debug_name in module ida_name: set_debug_name(*args) -> 'bool' set_debug_name(ea, name) -> bool + + @param ea: ea_t + @param name: char const * Help on function set_dummy_name in module ida_name: set_dummy_name(*args) -> 'bool' set_dummy_name(_from, ea) -> bool + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). - - Give an autogenerated (dummy) name. Autogenerated names have special - prefixes (loc_...). - - @param _from: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte Help on function set_name in module ida_name: set_name(*args) -> 'bool' set_name(ea, name, flags=0) -> bool + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. - - Set or delete name of an item at the specified address. An item can be - anything: instruction, function, data byte, word, string, structure, - etc... Include name into the list of names. - - @param ea: linear address. do nothing if ea is not valid (return 0). - tail bytes can't have names. (C++: ea_t) - @param name: new name. NULL: do nothing (return 0). "" : delete - name. otherwise this is a new name. (C++: const char *) - @param flags: Set name flags . If a bit is not specified, then the - corresponding action is not performed and the name will - retain the same bits as before calling this function. - For new names, default is: non-public, non-weak, non- - auto. (C++: int) + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed Help on function show_name in module ida_name: show_name(*args) -> 'void' show_name(ea) - - Insert name to the list of names. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function validate_name in module ida_name: validate_name(*args) -> 'PyObject *' validate_name(name, type, flags=0) -> PyObject * + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). - - Validate a name. This function replaces all invalid characters in the - name with SUBSTCHAR. However, it will return false if name is valid - but not allowed to be an identifier (is a register name). - - @param name: ptr to name. the name will be modified (C++: qstring *) - @param type: the type of name we want to validate (C++: nametype_t) - @param flags: see SN_* . Only SN_IDBENC is currently considered (C++: - int) + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered @return: success -=== ida_name EPYDOC INJECTIONS === -ida_name.FUNC_IMPORT_PREFIX -""" -Name prefix used by IDA for the imported functions. +Module "ida_netnode"s docstring: """ +Functions that provide the lowest level public interface to the database. +Namely, we use Btree. To learn more about BTree: -ida_name.GETN_APPZERO -""" -append a struct field name if the field offset is zero? +\link{https://en.wikipedia.org/wiki/B-tree} -meaningful only if the name refers to a structure. -""" +We do not use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. -ida_name.GETN_NODUMMY -""" -do not create a new dummy name but pretend it exists -""" +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Initially there is a trivial +mapping of the linear addresses used in the program to netnodes (later this +mapping may be modified using ea2node and node2ea functions; this is used for +fast database rebasings). If we have additional information about an address +(for example, a comment is attached to it), this information is stored in the +corresponding netnode. See nalt.hpp to see how the kernel uses netnodes. Also, +some netnodes have no corresponding linear address (however, they still have an +id). They are used to store information not related to a particular address. -ida_name.GETN_NOFIXUP -""" -ignore the fixup information when producing the name -""" +Each netnode _may_ have the following attributes: -ida_name.GNCN_NOCOLOR -""" -generate an uncolored name -""" +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) -ida_name.GNCN_NODBGNM -""" -don't use debug names -""" +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. -ida_name.GNCN_NOFUNC -""" -don't generate funcname+... expressions -""" +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined -ida_name.GNCN_NOLABEL -""" -don't generate labels -""" +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblob/getblob and other blob-related functions. -ida_name.GNCN_NOSEG -""" -ignore the segment prefix when producing the name -""" +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: -ida_name.GNCN_PREFDBG -""" -if using debug names, prefer debug names over function names -""" +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. -ida_name.GNCN_REQFUNC -""" -return 0 if the address does not belong to a function -""" +Advanced info: -ida_name.GNCN_REQNAME -""" -return 0 if the address can only be represented as a hex number -""" +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" -ida_name.GNCN_SEGNUM -""" -segment part is displayed as a hex number -""" - -ida_name.GNCN_SEG_FUNC -""" -generate both segment and function names (default is to omit segment -name if a function name is present) -""" - -ida_name.GN_COLORED -""" -return colored name -""" - -ida_name.GN_DEMANGLED -""" -return demangled name -""" - -ida_name.GN_ISRET -""" -for dummy names: use retloc -""" - -ida_name.GN_LOCAL -""" -try to get local name first; if failed, get global -""" - -ida_name.GN_LONG -""" -use long form of demangled name -""" - -ida_name.GN_NOT_DUMMY -""" -do not return a dummy name -""" - -ida_name.GN_NOT_ISRET -""" -for dummy names: do not use retloc -""" - -ida_name.GN_SHORT -""" -use short form of demangled name -""" - -ida_name.GN_STRICT -""" -fail if cannot demangle -""" - -ida_name.GN_VISIBLE -""" -replace forbidden characters by SUBSTCHAR -""" - -ida_name.MAXNAMELEN -""" -Maximum length of a name in IDA (with the trailing zero) -""" - -ida_name.NT_ABS -""" -name is absolute symbol ( 'SEG_ABSSYM' ) -""" - -ida_name.NT_BMASK -""" -name is a bit group mask name -""" - -ida_name.NT_BYTE -""" -name is byte name (regular name) -""" - -ida_name.NT_ENUM -""" -name is symbolic constant -""" - -ida_name.NT_LOCAL -""" -name is local label -""" - -ida_name.NT_NONE -""" -name doesn't exist or has no value -""" - -ida_name.NT_REGVAR -""" -name is a renamed register (*value is idx into pfn->regvars) -""" - -ida_name.NT_SEG -""" -name is segment or segment register name -""" - -ida_name.NT_STKVAR -""" -name is stack variable name -""" - -ida_name.NT_STROFF -""" -name is structure member -""" - -ida_name.SN_AUTO -""" -if set, make name autogenerated -""" - -ida_name.SN_DELTAIL -""" -delete the hindering item - -if name cannot be set because of a tail byte, -""" - -ida_name.SN_FORCE -""" -if the specified name is already present in the database, try -variations with a numerical suffix like "_123" -""" - -ida_name.SN_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly. Specifying SN_IDBENC also implies SN_NODUMMY -""" - -ida_name.SN_LOCAL -""" -create local name. a function should exist. local names can't be -public or weak. also they are not included into the list of names they -can't have dummy prefixes. -""" - -ida_name.SN_NOCHECK -""" -Don't fail if the name contains invalid characters. If this bit is -clear, all invalid chars (those !is_ident_cp()) will be replaced by -SUBSTCHAR List of valid characters is defined in ida.cfg -""" - -ida_name.SN_NODUMMY -""" -automatically prepend the name with '_' if it begins with a dummy -suffix such as 'sub_'. See also SN_IDBENC -""" - -ida_name.SN_NOLIST -""" -if set, exclude name from the list. if not set, then include the name -into the list (however, if other bits are set, the name might be -immediately excluded from the list). -""" - -ida_name.SN_NON_AUTO -""" -if set, make name non-autogenerated -""" - -ida_name.SN_NON_PUBLIC -""" -if set, make name non-public -""" - -ida_name.SN_NON_WEAK -""" -if set, make name non-weak -""" - -ida_name.SN_NOWARN -""" -don't display a warning if failed -""" - -ida_name.SN_PUBLIC -""" -if set, make name public -""" - -ida_name.SN_WEAK -""" -if set, make name weak -""" -=== ida_name EPYDOC INJECTIONS END === Help on function exist in module ida_netnode: exist(*args) -> 'bool' exist(n) -> bool + + @param n: netnode const & Help on class netnode in module ida_netnode: @@ -56621,16 +71513,32 @@ class netnode(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | + | @param n: netnode & + | | __eq__(self, x) -> bool + | + | @param x: nodeidx_t | | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode + | __init__(self, num=nodeidx_t(-1)) -> netnode + | + | @param num: nodeidx_t + | | __init__(self, _name, namlen=0, do_create=False) -> netnode + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | + | @param n: netnode & + | | __ne__(self, x) -> bool + | + | @param x: nodeidx_t | | __repr__ = _swig_repr(self) | @@ -56639,346 +71547,796 @@ class netnode(builtins.object) | | altdel(self, *args) -> 'bool' | altdel(self, alt, tag=atag) -> bool + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success | altdel(self) -> bool | | altdel_all(self, *args) -> 'bool' - | altdel_all(self, tag) -> bool + | altdel_all(self, tag=atag) -> bool + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success | | altdel_ea(self, *args) -> 'bool' | altdel_ea(self, ea, tag=atag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | altdel_idx8(self, *args) -> 'bool' | altdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar | | altfirst(self, *args) -> 'nodeidx_t' | altfirst(self, tag=atag) -> nodeidx_t + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty | | altfirst_idx8(self, *args) -> 'nodeidx_t' | altfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | altlast(self, *args) -> 'nodeidx_t' | altlast(self, tag=atag) -> nodeidx_t + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty | | altlast_idx8(self, *args) -> 'nodeidx_t' | altlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | altnext(self, *args) -> 'nodeidx_t' | altnext(self, cur, tag=atag) -> nodeidx_t + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist | | altnext_idx8(self, *args) -> 'nodeidx_t' | altnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | altprev(self, *args) -> 'nodeidx_t' | altprev(self, cur, tag=atag) -> nodeidx_t + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist | | altprev_idx8(self, *args) -> 'nodeidx_t' | altprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | altset(self, *args) -> 'bool' | altset(self, alt, value, tag=atag) -> bool + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur | | altset_ea(self, *args) -> 'bool' | altset_ea(self, ea, value, tag=atag) -> bool + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar | | altset_idx8(self, *args) -> 'bool' | altset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar | | altshift(self, *args) -> 'size_t' | altshift(self, _from, to, size, tag=atag) -> size_t + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | altval(self, *args) -> 'nodeidx_t' | altval(self, alt, tag=atag) -> nodeidx_t + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes | | altval_ea(self, *args) -> 'nodeidx_t' | altval_ea(self, ea, tag=atag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar | | altval_idx8(self, *args) -> 'nodeidx_t' | altval_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | blobsize(self, *args) -> 'size_t' | blobsize(self, _start, tag) -> size_t + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob | | blobsize_ea(self, *args) -> 'size_t' | blobsize_ea(self, ea, tag) -> size_t + | + | @param ea: ea_t + | @param tag: uchar | | chardel(self, *args) -> 'bool' | chardel(self, alt, tag) -> bool + | + | @param alt: nodeidx_t + | @param tag: uchar | | chardel_ea(self, *args) -> 'bool' | chardel_ea(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | chardel_idx8(self, *args) -> 'bool' | chardel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar | | charfirst(self, *args) -> 'nodeidx_t' | charfirst(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charfirst_idx8(self, *args) -> 'nodeidx_t' | charfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charlast(self, *args) -> 'nodeidx_t' | charlast(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charlast_idx8(self, *args) -> 'nodeidx_t' | charlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | charnext(self, *args) -> 'nodeidx_t' | charnext(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar | | charnext_idx8(self, *args) -> 'nodeidx_t' | charnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | charprev(self, *args) -> 'nodeidx_t' | charprev(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar | | charprev_idx8(self, *args) -> 'nodeidx_t' | charprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar | | charset(self, *args) -> 'bool' | charset(self, alt, val, tag) -> bool + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar | | charset_ea(self, *args) -> 'bool' | charset_ea(self, ea, val, tag) -> bool + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar | | charset_idx8(self, *args) -> 'bool' | charset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar | | charshift(self, *args) -> 'size_t' | charshift(self, _from, to, size, tag) -> size_t + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar | | charval(self, *args) -> 'uchar' | charval(self, alt, tag) -> uchar + | + | @param alt: nodeidx_t + | @param tag: uchar | | charval_ea(self, *args) -> 'uchar' | charval_ea(self, ea, tag) -> uchar + | + | @param ea: ea_t + | @param tag: uchar | | charval_idx8(self, *args) -> 'uchar' | charval_idx8(self, alt, tag) -> uchar + | + | @param alt: uchar + | @param tag: uchar | | copyto(self, *args) -> 'size_t' - | copyto(self, target, count=1) -> size_t + | copyto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | create(self, *args) -> 'bool' | create(self, _name, namlen=0) -> bool + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | | create(self) -> bool | | delblob(self, *args) -> 'int' | delblob(self, _start, tag) -> int + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals | | delblob_ea(self, *args) -> 'int' | delblob_ea(self, ea, tag) -> int + | + | @param ea: ea_t + | @param tag: uchar | | delvalue(self, *args) -> 'bool' | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error | | eadel(self, *args) -> 'bool' | eadel(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | eadel_idx8(self, *args) -> 'bool' | eadel_idx8(self, idx, tag) -> bool + | + | @param idx: uchar + | @param tag: uchar | | eaget(self, *args) -> 'ea_t' | eaget(self, ea, tag) -> ea_t + | + | @param ea: ea_t + | @param tag: uchar | | eaget_idx(self, *args) -> 'ea_t' | eaget_idx(self, idx, tag) -> ea_t + | + | @param idx: nodeidx_t + | @param tag: uchar | | eaget_idx8(self, *args) -> 'ea_t' | eaget_idx8(self, idx, tag) -> ea_t + | + | @param idx: uchar + | @param tag: uchar | | easet(self, *args) -> 'bool' | easet(self, ea, addr, tag) -> bool + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) | | easet_idx(self, *args) -> 'bool' | easet_idx(self, idx, addr, tag) -> bool + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar | | easet_idx8(self, *args) -> 'bool' | easet_idx8(self, idx, addr, tag) -> bool + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar | | end(self, *args) -> 'bool' | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | get_name(self, *args) -> 'ssize_t' | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length | | getblob(self, *args) -> 'PyObject *' - | getblob(self, start, tag) -> PyObject * + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise | | getblob_ea(self, *args) -> 'PyObject *' | getblob_ea(self, ea, tag) -> PyObject * + | + | @param ea: ea_t + | @param tag: char | | getclob(self, *args) -> 'PyObject *' - | getclob(self, start, tag) -> PyObject * + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char | | hashdel(self, *args) -> 'bool' | hashdel(self, idx, tag=htag) -> bool + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist | | hashdel_all(self, *args) -> 'bool' | hashdel_all(self, tag=htag) -> bool + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success | | hashfirst(self, *args) -> 'ssize_t' | hashfirst(self, tag=htag) -> ssize_t + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashlast(self, *args) -> 'ssize_t' | hashlast(self, tag=htag) -> ssize_t + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) | | hashnext(self, *args) -> 'ssize_t' | hashnext(self, idx, tag=htag) -> ssize_t + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashprev(self, *args) -> 'ssize_t' | hashprev(self, idx, tag=htag) -> ssize_t + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashset(self, *args) -> 'bool' | hashset(self, idx, value, tag=htag) -> bool + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | hashset_buf(self, *args) -> 'bool' | hashset_buf(self, idx, py_str, tag=htag) -> bool + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char | | hashset_idx(self, *args) -> 'bool' | hashset_idx(self, idx, value, tag=htag) -> bool + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar | | hashstr(self, *args) -> 'ssize_t' | hashstr(self, idx, tag=htag) -> ssize_t + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) | | hashstr_buf(self, *args) -> 'PyObject *' | hashstr_buf(self, idx, tag=htag) -> PyObject * + | + | @param idx: char const * + | @param tag: char | | hashval(self, *args) -> 'ssize_t' | hashval(self, idx, tag=htag) -> ssize_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes | | hashval_long(self, *args) -> 'nodeidx_t' | hashval_long(self, idx, tag=htag) -> nodeidx_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist | | index(self, *args) -> 'nodeidx_t' | index(self) -> nodeidx_t | | kill(self, *args) -> 'void' | kill(self) + | Delete a netnode with all information attached to it. | | long_value(self, *args) -> 'nodeidx_t' | long_value(self) -> nodeidx_t | | lower_bound(self, *args) -> 'nodeidx_t' | lower_bound(self, cur, tag=stag) -> nodeidx_t + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty | | lower_bound_ea(self, *args) -> 'nodeidx_t' | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar | | lower_bound_idx8(self, *args) -> 'nodeidx_t' | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | moveto(self, *args) -> 'size_t' - | moveto(self, target, count=1) -> size_t + | moveto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t | | next(self, *args) -> 'bool' | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes | | prev(self, *args) -> 'bool' | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes | | rename(self, *args) -> 'bool' | rename(self, newname, namlen=0) -> bool + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used | | set(self, *args) -> 'bool' | set(self, value) -> bool + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok | | set_long(self, *args) -> 'bool' | set_long(self, x) -> bool + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) | | setblob(self, *args) -> 'bool' | setblob(self, buf, _start, tag) -> bool + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success | | setblob_ea(self, *args) -> 'bool' | setblob_ea(self, buf, ea, tag) -> bool + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar | | start(self, *args) -> 'bool' | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty | | supdel(self, *args) -> 'bool' | supdel(self, alt, tag=stag) -> bool + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success | supdel(self) -> bool | | supdel_all(self, *args) -> 'bool' | supdel_all(self, tag) -> bool + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success | | supdel_ea(self, *args) -> 'bool' | supdel_ea(self, ea, tag=stag) -> bool + | + | @param ea: ea_t + | @param tag: uchar | | supdel_idx8(self, *args) -> 'bool' | supdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar | | supdel_range(self, *args) -> 'int' | supdel_range(self, idx1, idx2, tag) -> int + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements | | supdel_range_idx8(self, *args) -> 'int' | supdel_range_idx8(self, idx1, idx2, tag) -> int + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) | | supfirst(self, *args) -> 'nodeidx_t' | supfirst(self, tag=stag) -> nodeidx_t + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty | | supfirst_idx8(self, *args) -> 'nodeidx_t' | supfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | suplast(self, *args) -> 'nodeidx_t' | suplast(self, tag=stag) -> nodeidx_t + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty | | suplast_idx8(self, *args) -> 'nodeidx_t' | suplast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar | | supnext(self, *args) -> 'nodeidx_t' | supnext(self, cur, tag=stag) -> nodeidx_t + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist | | supnext_idx8(self, *args) -> 'nodeidx_t' | supnext_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | supprev(self, *args) -> 'nodeidx_t' | supprev(self, cur, tag=stag) -> nodeidx_t + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist | | supprev_idx8(self, *args) -> 'nodeidx_t' | supprev_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar | | supset(self, *args) -> 'bool' | supset(self, alt, value, tag=stag) -> bool - | supset(self, alt, value, tag=stag) -> bool + | Set value of supval array element. + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error | | supset_ea(self, *args) -> 'bool' | supset_ea(self, ea, value, tag=stag) -> bool - | supset_ea(self, ea, value, tag=stag) -> bool + | + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar | | supset_idx8(self, *args) -> 'bool' | supset_idx8(self, alt, value, tag) -> bool + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar | | supshift(self, *args) -> 'size_t' | supshift(self, _from, to, size, tag=stag) -> size_t + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements | | supstr(self, *args) -> 'ssize_t' | supstr(self, alt, tag=stag) -> ssize_t + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) | | supstr_ea(self, *args) -> 'ssize_t' | supstr_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar | | supstr_idx8(self, *args) -> 'ssize_t' | supstr_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar | | supval(self, *args) -> 'ssize_t' | supval(self, alt, tag=stag) -> ssize_t + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist | | supval_ea(self, *args) -> 'ssize_t' | supval_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar | | supval_idx8(self, *args) -> 'ssize_t' | supval_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar | | valobj(self, *args) -> 'ssize_t' | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present | | valstr(self, *args) -> 'ssize_t' | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const | | value_exists(self, *args) -> 'bool' | value_exists(self) -> bool | | ---------------------------------------------------------------------- + | Static methods defined here: + | + | exist(*args) -> 'bool' + | exist(_name) -> bool + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- | Data descriptors defined here: | | __dict__ @@ -56995,245 +72353,258 @@ class netnode(builtins.object) | | __hash__ = None -=== ida_netnode EPYDOC INJECTIONS === -ida_netnode.BADNODE +Help on function netnode_exist in module ida_netnode: + +netnode_exist(*args) -> 'bool' + netnode_exist(_name) -> bool + + @param _name: char const * + +Module "ida_offset"s docstring: """ -A number to represent a bad netnode reference. -""" -=== ida_netnode EPYDOC INJECTIONS END === +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + Help on function add_refinfo_dref in module ida_offset: add_refinfo_dref(*args) -> 'ea_t' add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. - - Add xrefs for a reference from the given instruction (\insn_t{ea}). - This function creates a cross references to the target and the base. - 'insn_t::add_off_drefs()' calls this function to create xrefs for - 'offset' operand. - - @param insn: the referencing instruction (C++: const insn_t &) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) - @param type: type of xref (C++: dref_t) - @param opoff: offset of the operand from the start of instruction - (C++: int) + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction @return: the target address of the reference Help on function calc_basevalue in module ida_offset: calc_basevalue(*args) -> 'ea_t' calc_basevalue(target, base) -> ea_t - - Calculate the value of the reference base. - - @param target (C++: ea_t) - @param base (C++: ea_t) + @param target: (C++: ea_t) + @param base: (C++: ea_t) Help on function calc_offset_base in module ida_offset: calc_offset_base(*args) -> 'ea_t' calc_offset_base(ea, n) -> ea_t + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. - - Try to calculate the offset base This function takes into account the - fixup information, current ds and cs values. - - @param ea: the referencing instruction/data address (C++: ea_t) - @param n: operand number 0: first operand 1: other operand (C++: - int) - @return: output base address or BADADDR + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR Help on function calc_probable_base_by_value in module ida_offset: calc_probable_base_by_value(*args) -> 'ea_t' calc_probable_base_by_value(ea, off) -> ea_t + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR - - Try to calculate the offset base. 2 bases are checked: current ds and - cs. If fails, return 'BADADDR' - - @param ea (C++: ea_t) - @param off (C++: uval_t) + @param ea: (C++: ea_t) + @param off: (C++: uval_t) Help on function calc_reference_data in module ida_offset: calc_reference_data(*args) -> 'bool' calc_reference_data(target, base, _from, ri, opval) -> bool + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. - - Calculate the target and base addresses of an offset expression. The - calculated target and base addresses are returned in the locations - pointed by 'base' and 'target'. In case 'ri.base' is 'BADADDR' , the - function calculates the offset base address from the referencing - instruction/data address. The target address is copied from ri.target. - If ri.target is 'BADADDR' then the target is calculated using the base - address and 'opval'. This function also checks if 'opval' matches the - full value of the reference and takes in account the memory-mapping. - - @param target: output target address (C++: ea_t *) - @param base: output base address (C++: ea_t *) - @param _from: the referencing instruction/data address (C++: ea_t) - @param ri: reference info block from the database (C++: const - refinfo_t &) - @param opval: operand value (usually op_t::value or op_t::addr ) - (C++: adiff_t) + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) @return: success Help on function calc_target in module ida_offset: calc_target(*args) -> 'ea_t' calc_target(_from, opval, ri) -> ea_t + Retrieves refinfo_t structure and calculates the target. + + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & + calc_target(_from, ea, n, opval) -> ea_t - - Calculates the target, using the provided 'refinfo_t' . - - - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t Help on function can_be_off32 in module ida_offset: can_be_off32(*args) -> 'ea_t' can_be_off32(ea) -> ea_t + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. - - Does the specified address contain a valid OFF32 value?. For symbols - in special segments the displacement is not taken into account. If - yes, then the target address of OFF32 will be returned. If not, then - 'BADADDR' is returned. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_default_reftype in module ida_offset: get_default_reftype(*args) -> 'reftype_t' get_default_reftype(ea) -> reftype_t - - Get default reference type depending on the segment. - @param ea (C++: ea_t) - @return: one of REF_OFF8 , REF_OFF16 , REF_OFF32 + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 Help on function get_offbase in module ida_offset: get_offbase(*args) -> 'ea_t' get_offbase(ea, n) -> ea_t - - Get offset base value - @param ea: linear address (C++: ea_t) - @param n: number of operand (C++: int) - @return: offset base or BADADDR + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR Help on function get_offset_expr in module ida_offset: get_offset_expr(*args) -> 'qstring *' get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + See get_offset_expression() - - See 'get_offset_expression()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) Help on function get_offset_expression in module ida_offset: get_offset_expression(*args) -> 'qstring *' get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array - Get offset expression (in the form "offset name+displ"). This function - uses offset translation function (\ph{translate}) if your IDP module - has such a function. Translation function is used to map linear - addresses in the program (only for offsets).Example: suppose we have - instruction at linear address 0x00011000: \v{mov ax, [bx+7422h]} and - at ds:7422h: \v{array dw ...} We want to represent the second operand - with an offset expression, so then we call: \v{ - get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); | | | | | | - | | | +output buffer | | | +value of offset expression | | +address - offset value in the instruction | +the second operand +address of - instruction } and the function will return a colored string: \v{offset - array} - - @param ea: start of instruction or data with the offset expression - (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - operand 1: second operand (C++: int) - @param _from: linear address of instruction operand or data referring - to the name. This address will be used to get fixup - information, so it should point to exact position of - operand in the instruction. (C++: ea_t) - @param offset: value of operand or its part. The function will return - text representation of this value as offset expression. - (C++: adiff_t) - @param getn_flags: combination of: GETN_APPZERO : meaningful only if - the name refers to a structure. appends the struct - field name if the field offset is zero - GETN_NODUMMY : do not generate dummy names for the - expression but pretend they already exist (useful - to verify that the offset expression can be - represented) (C++: int) + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression Help on function op_offset in module ida_offset: -op_offset(*args) -> 'int' - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_ex in module ida_offset: -op_offset_ex(*args) -> 'int' - op_offset_ex(ea, n, ri) -> int +op_offset_ex(*args) -> 'bool' + op_offset_ex(ea, n, ri) -> bool + Convert operand to a reference. To delete an offset, use clr_op_type() function. - - Convert operand to a reference. To delete an offset, use - 'clr_op_type()' function. - - @param ea: linear address. if 'ea' has unexplored bytes, try to - convert them to no segment: fail 16bit segment: to - 16bit word data 32bit segment: to dword (C++: ea_t) - @param n: number of operand (may be ORed with OPND_OUTER ) 0: first - 1: second 2: third OPND_MASK : all operands (C++: int) - @param ri: reference information (C++: const refinfo_t *) + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information @return: success Help on function op_plain_offset in module ida_offset: op_plain_offset(*args) -> 'bool' op_plain_offset(ea, n, base) -> bool - - Convert operand to a reference with the default reference type. - - @param ea (C++: ea_t) - @param n (C++: int) - @param base (C++: ea_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" Help on class __qmutex_t in module ida_pro: @@ -57431,13 +72802,19 @@ class boolvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< bool > const & | | __getitem__(self, *args) -> 'bool const &' | __getitem__(self, i) -> bool const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57446,20 +72823,31 @@ class boolvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bool const & | | __swig_destroy__ = delete_boolvec_t(...) | delete_boolvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bool const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: bool const & | | append = push_back(self, *args) -> 'bool &' | @@ -57487,35 +72875,59 @@ class boolvec_t(builtins.object) | | erase(self, *args) -> 'qvector< bool >::iterator' | erase(self, it) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | | erase(self, first, last) -> qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator | | extract(self, *args) -> 'bool *' | extract(self) -> bool * | | find(self, *args) -> 'qvector< bool >::const_iterator' | find(self, x) -> qvector< bool >::iterator + | + | @param x: bool const & + | | find(self, x) -> qvector< bool >::const_iterator + | + | @param x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bool()) + | + | @param x: bool const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: bool const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: bool * + | @param len: size_t | | insert(self, *args) -> 'qvector< bool >::iterator' | insert(self, it, x) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | @param x: bool const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bool &' | push_back(self, x) + | + | @param x: bool const & + | | push_back(self) -> bool & | | qclear(self, *args) -> 'void' @@ -57523,16 +72935,26 @@ class boolvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bool const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< bool > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -57591,19 +73013,19 @@ class channel_redir_t(builtins.object) | list of weak references to the object (if defined) | | fd - | channel_redir_t_fd_get(self) -> int + | fd | | file - | channel_redir_t_file_get(self) -> qstring * + | file | | flags - | channel_redir_t_flags_get(self) -> int + | flags | | length - | channel_redir_t_length_get(self) -> int + | length | | start - | channel_redir_t_start_get(self) -> int + | start | | thisown | The membership flag @@ -57612,25 +73034,18 @@ Help on function check_process_exit in module ida_pro: check_process_exit(*args) -> 'int' check_process_exit(handle, exit_code, msecs=-1) -> int - - Check whether process has terminated or not. - @param handle: process handle to wait for (C++: void *) - @param exit_code: pointer to the buffer for the exit code (C++: int *) - -Help on function clear_bits in module ida_pro: - -clear_bits(*args) -> 'void' - clear_bits(bitmap, low, high) - - - Clear bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code Help on class ea_array in module ida_pro: @@ -57641,14 +73056,21 @@ class ea_array(builtins.object) | | __getitem__(self, *args) -> 'ea_t' | __getitem__(self, index) -> ea_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: ea_t | | __swig_destroy__ = delete_ea_array(...) | delete_ea_array(self) @@ -57661,6 +73083,8 @@ class ea_array(builtins.object) | | frompointer(*args) -> 'ea_array *' | frompointer(t) -> ea_array + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57678,6 +73102,8 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) -> 'ea_array *' ea_array_frompointer(t) -> ea_array + + @param t: ea_t * Help on class ea_pointer in module ida_pro: @@ -57696,6 +73122,8 @@ class ea_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: ea_t | | cast(self, *args) -> 'ea_t *' | cast(self) -> ea_t * @@ -57708,6 +73136,8 @@ class ea_pointer(builtins.object) | | frompointer(*args) -> 'ea_pointer *' | frompointer(t) -> ea_pointer + | + | @param t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57725,19 +73155,19 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) -> 'ea_pointer *' ea_pointer_frompointer(t) -> ea_pointer + + @param t: ea_t * Help on function extend_sign in module ida_pro: extend_sign(*args) -> 'uint64' extend_sign(v, nbytes, sign_extend) -> uint64 + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. - - Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' - is considered to be of size 'nbytes'. - - @param v (C++: uint64) - @param nbytes (C++: int) - @param sign_extend (C++: bool) + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -57764,48 +73194,54 @@ class instant_dbgopts_t(builtins.object) | list of weak references to the object (if defined) | | _pass - | instant_dbgopts_t__pass_get(self) -> qstring * + | _pass | | attach - | instant_dbgopts_t_attach_get(self) -> bool + | attach | | debmod - | instant_dbgopts_t_debmod_get(self) -> qstring * + | debmod | | env - | instant_dbgopts_t_env_get(self) -> qstring * + | env | | event_id - | instant_dbgopts_t_event_id_get(self) -> int + | event_id | | host - | instant_dbgopts_t_host_get(self) -> qstring * + | host | | pid - | instant_dbgopts_t_pid_get(self) -> int + | pid | | port - | instant_dbgopts_t_port_get(self) -> int + | port | | thisown | The membership flag -Help on class longlongvec_t in module ida_pro: +Help on class int64vec_t in module ida_pro: -class longlongvec_t(builtins.object) +class int64vec_t(builtins.object) | Proxy of C++ qvector< long long > class. | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< long long > const & | | __getitem__(self, *args) -> 'long long const &' | __getitem__(self, i) -> long long const & + | + | @param i: size_t | | __init__(self, *args) - | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t + | __init__(self) -> int64vec_t + | __init__(self, x) -> int64vec_t + | + | @param x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57814,20 +73250,31 @@ class longlongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: long long const & | - | __swig_destroy__ = delete_longlongvec_t(...) - | delete_longlongvec_t(self) + | __swig_destroy__ = delete_int64vec_t(...) + | delete_int64vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: long long const & | | append = push_back(self, *args) -> 'long long &' | @@ -57855,32 +73302,54 @@ class longlongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< long long >::iterator' | erase(self, it) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | | erase(self, first, last) -> qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator | | extract(self, *args) -> 'long long *' | extract(self) -> long long * | | find(self, *args) -> 'qvector< long long >::const_iterator' | find(self, x) -> qvector< long long >::iterator + | + | @param x: long long const & + | | find(self, x) -> qvector< long long >::const_iterator + | + | @param x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< long long >::iterator' | insert(self, it, x) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | @param x: long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'long long &' | push_back(self, x) + | + | @param x: long long const & + | | push_back(self) -> long long & | | qclear(self, *args) -> 'void' @@ -57888,16 +73357,26 @@ class longlongvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: long long const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -57936,6 +73415,8 @@ class int_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: int | | cast(self, *args) -> 'int *' | cast(self) -> int * @@ -57948,6 +73429,8 @@ class int_pointer(builtins.object) | | frompointer(*args) -> 'int_pointer *' | frompointer(t) -> int_pointer + | + | @param t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57965,6 +73448,8 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) -> 'int_pointer *' int_pointer_frompointer(t) -> int_pointer + + @param t: int * Help on class intvec_t in module ida_pro: @@ -57975,13 +73460,19 @@ class intvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57990,20 +73481,31 @@ class intvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & | | __swig_destroy__ = delete_intvec_t(...) | delete_intvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: int const & | | append = push_back(self, *args) -> 'int &' | @@ -58031,32 +73533,54 @@ class intvec_t(builtins.object) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: int * + | @param len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) + | + | @param x: int const & + | | push_back(self) -> int & | | qclear(self, *args) -> 'void' @@ -58064,16 +73588,26 @@ class intvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58099,83 +73633,72 @@ Help on function is_control_tty in module ida_pro: is_control_tty(*args) -> 'enum tty_control_t' is_control_tty(fd) -> enum tty_control_t - - Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). - @param fd (C++: int) + @param fd: (C++: int) Help on function is_main_thread in module ida_pro: is_main_thread(*args) -> 'bool' is_main_thread() -> bool - - Are we running in the main thread? Help on function log2ceil in module ida_pro: log2ceil(*args) -> 'int' log2ceil(d64) -> int + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 - - calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == - 0 - - @param d64 (C++: uint64) + @param d64: (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) -> 'int' log2floor(d64) -> int + + @param d64: uint64 Help on function parse_dbgopts in module ida_pro: parse_dbgopts(*args) -> 'bool' parse_dbgopts(ido, r_switch) -> bool + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ - - Parse the -r command line switch (for instant debugging). r_switch - points to the value of the -r switch. Example: win32@localhost+ - - @param ido (C++: struct instant_dbgopts_t *) - @param r_switch (C++: const char *) + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * @return: true-ok, false-parse error Help on function qatoll in module ida_pro: qatoll(*args) -> 'int64' qatoll(nptr) -> int64 + + @param nptr: char const * Help on function qcontrol_tty in module ida_pro: qcontrol_tty(*args) -> 'void' qcontrol_tty() - - - Make the current terminal the controlling terminal of the calling - process.The current terminal is supposed to be /dev/tty + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty Help on function qdetach_tty in module ida_pro: qdetach_tty(*args) -> 'void' qdetach_tty() - - - If the current terminal is the controlling terminal of the calling - process, give up this controlling terminal.The current terminal is - supposed to be /dev/tty + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty Help on function qexit in module ida_pro: qexit(*args) -> 'void' qexit(code) - - Call qatexit functions, shut down UI and kernel, and exit. - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on class qmutex_locker_t in module ida_pro: @@ -58186,6 +73709,8 @@ class qmutex_locker_t(builtins.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t + | + | @param _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -58221,6 +73746,9 @@ class qrefcnt_obj_t(builtins.object) | | release(self, *args) -> 'void' | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58232,7 +73760,7 @@ class qrefcnt_obj_t(builtins.object) | list of weak references to the object (if defined) | | refcnt - | qrefcnt_obj_t_refcnt_get(self) -> int + | refcnt | | thisown | The membership flag @@ -58241,21 +73769,33 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) -> 'bool' qstrvec_t_add(_self, s) -> bool + + @param self: PyObject * + @param s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) -> 'PyObject *' qstrvec_t_addressof(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) -> 'bool' qstrvec_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) -> 'bool' qstrvec_t_clear(_self, qclear) -> bool + + @param self: PyObject * + @param qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -58266,97 +73806,134 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) -> 'bool' qstrvec_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) -> 'bool' qstrvec_t_from_list(_self, py_list) -> bool + + @param self: PyObject * + @param py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) -> 'PyObject *' qstrvec_t_get(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) -> 'qstrvec_t *' qstrvec_t_get_clink(_self) -> qstrvec_t * + + @param self: PyObject * Help on function qstrvec_t_get_clink_ptr in module ida_pro: qstrvec_t_get_clink_ptr(*args) -> 'PyObject *' qstrvec_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) -> 'bool' qstrvec_t_insert(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) -> 'bool' qstrvec_t_remove(_self, idx) -> bool + + @param self: PyObject * + @param idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) -> 'bool' qstrvec_t_set(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) -> 'size_t' qstrvec_t_size(_self) -> size_t + + @param self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) -> 'bool' + qthread_equal(q1, q2) -> bool + Are two threads equal? + + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) Help on function quote_cmdline_arg in module ida_pro: quote_cmdline_arg(*args) -> 'bool' quote_cmdline_arg(arg) -> bool + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell - - Quote a command line argument if it contains escape characters. For - example, *.c will be converted into "*.c" because * may be - inadvertently expanded by the shell - - @param arg (C++: qstring *) + @param arg: (C++: qstring *) @return: true: modified 'arg' Help on function qvector_reserve in module ida_pro: qvector_reserve(*args) -> 'void *' qvector_reserve(vec, old, cnt, elsize) -> void * - - Change capacity of given qvector. - @param vec: a pointer to a qvector (C++: void *) - @param old: a pointer to the qvector's array (C++: void *) - @param cnt: number of elements to reserve (C++: size_t) - @param elsize: size of each element (C++: size_t) + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element @return: a pointer to the newly allocated array Help on function readbytes in module ida_pro: readbytes(*args) -> 'int' readbytes(h, res, size, mf) -> int - - Read at most 4 bytes from file. - @param h: file handle (C++: int) - @param res: value read from file (C++: uint32 *) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? @return: 0 on success, nonzero otherwise Help on function reloc_value in module ida_pro: reloc_value(*args) -> 'void' reloc_value(value, size, delta, mf) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) -> 'bool' relocate_relobj(_relobj, ea, mf) -> bool + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool Help on class sel_array in module ida_pro: @@ -58367,14 +73944,21 @@ class sel_array(builtins.object) | | __getitem__(self, *args) -> 'sel_t' | __getitem__(self, index) -> sel_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: sel_t | | __swig_destroy__ = delete_sel_array(...) | delete_sel_array(self) @@ -58387,6 +73971,8 @@ class sel_array(builtins.object) | | frompointer(*args) -> 'sel_array *' | frompointer(t) -> sel_array + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58404,6 +73990,8 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) -> 'sel_array *' sel_array_frompointer(t) -> sel_array + + @param t: sel_t * Help on class sel_pointer in module ida_pro: @@ -58422,6 +74010,8 @@ class sel_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: sel_t | | cast(self, *args) -> 'sel_t *' | cast(self) -> sel_t * @@ -58434,6 +74024,8 @@ class sel_pointer(builtins.object) | | frompointer(*args) -> 'sel_pointer *' | frompointer(t) -> sel_pointer + | + | @param t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58451,19 +74043,8 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) -> 'sel_pointer *' sel_pointer_frompointer(t) -> sel_pointer - -Help on function set_bits in module ida_pro: - -set_bits(*args) -> 'void' - set_bits(bitmap, low, high) - - Set bits between [low, high) in 'bitmap'. - - - @param bitmap (C++: uchar *) - @param low (C++: size_t) - @param high (C++: size_t) + @param t: sel_t * Help on class sizevec_t in module ida_pro: @@ -58474,13 +74055,19 @@ class sizevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< size_t > const & | | __getitem__(self, *args) -> 'size_t const &' | __getitem__(self, i) -> size_t const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58490,23 +74077,36 @@ class sizevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: size_t const & | | __swig_destroy__ = delete_sizevec_t(...) | delete_sizevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: size_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: size_t const & | | at(self, *args) -> 'size_t const &' | at(self, _idx) -> size_t const & + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58530,35 +74130,59 @@ class sizevec_t(builtins.object) | | erase(self, *args) -> 'qvector< size_t >::iterator' | erase(self, it) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | | erase(self, first, last) -> qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator | | extract(self, *args) -> 'size_t *' | extract(self) -> size_t * | | find(self, *args) -> 'qvector< size_t >::const_iterator' | find(self, x) -> qvector< size_t >::iterator + | + | @param x: size_t const & + | | find(self, x) -> qvector< size_t >::const_iterator + | + | @param x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=size_t()) + | + | @param x: size_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: size_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: size_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< size_t >::iterator' | insert(self, it, x) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'size_t &' | push_back(self, x) + | + | @param x: size_t const & + | | push_back(self) -> size_t & | | qclear(self, *args) -> 'void' @@ -58566,16 +74190,26 @@ class sizevec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: size_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< size_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58600,11 +74234,10 @@ class sizevec_t(builtins.object) Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' - str2user(str) -> PyObject * - - + str2user(str) -> str or None Insert C-style escape characters to string + @param str: char const * @return: new string with escape characters inserted Help on class strvec_t in module ida_pro: @@ -58616,10 +74249,14 @@ class strvec_t(builtins.object) | | __getitem__(self, *args) -> 'simpleline_t const &' | __getitem__(self, i) -> simpleline_t const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58630,6 +74267,9 @@ class strvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: simpleline_t const & | | __swig_destroy__ = delete_strvec_t(...) | delete_strvec_t(self) @@ -58660,7 +74300,13 @@ class strvec_t(builtins.object) | | erase(self, *args) -> 'qvector< simpleline_t >::iterator' | erase(self, it) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | | erase(self, first, last) -> qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator | | extract(self, *args) -> 'simpleline_t *' | extract(self) -> simpleline_t * @@ -58670,18 +74316,29 @@ class strvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=simpleline_t()) + | + | @param x: simpleline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: simpleline_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< simpleline_t >::iterator' | insert(self, it, x) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'simpleline_t &' | push_back(self, x) + | + | @param x: simpleline_t const & + | | push_back(self) -> simpleline_t & | | qclear(self, *args) -> 'void' @@ -58689,16 +74346,26 @@ class strvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: simpleline_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< simpleline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58732,6 +74399,8 @@ class sval_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | + | @param value: sval_t | | cast(self, *args) -> 'sval_t *' | cast(self) -> sval_t * @@ -58744,6 +74413,8 @@ class sval_pointer(builtins.object) | | frompointer(*args) -> 'sval_pointer *' | frompointer(t) -> sval_pointer + | + | @param t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58761,6 +74432,8 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) -> 'sval_pointer *' sval_pointer_frompointer(t) -> sval_pointer + + @param t: sval_t * Help on class tid_array in module ida_pro: @@ -58771,14 +74444,21 @@ class tid_array(builtins.object) | | __getitem__(self, *args) -> 'tid_t' | __getitem__(self, index) -> tid_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: tid_t | | __swig_destroy__ = delete_tid_array(...) | delete_tid_array(self) @@ -58791,6 +74471,8 @@ class tid_array(builtins.object) | | frompointer(*args) -> 'tid_array *' | frompointer(t) -> tid_array + | + | @param t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58808,6 +74490,8 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) -> 'tid_array *' tid_array_frompointer(t) -> tid_array + + @param t: tid_t * Help on class uchar_array in module ida_pro: @@ -58818,14 +74502,21 @@ class uchar_array(builtins.object) | | __getitem__(self, *args) -> 'uchar' | __getitem__(self, index) -> uchar + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uchar | | __swig_destroy__ = delete_uchar_array(...) | delete_uchar_array(self) @@ -58838,6 +74529,8 @@ class uchar_array(builtins.object) | | frompointer(*args) -> 'uchar_array *' | frompointer(t) -> uchar_array + | + | @param t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58855,23 +74548,31 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) -> 'uchar_array *' uchar_array_frompointer(t) -> uchar_array + + @param t: uchar * -Help on class ulonglongvec_t in module ida_pro: +Help on class uint64vec_t in module ida_pro: -class ulonglongvec_t(builtins.object) +class uint64vec_t(builtins.object) | Proxy of C++ qvector< unsigned long long > class. | | Methods defined here: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & | | __getitem__(self, *args) -> 'unsigned long long const &' | __getitem__(self, i) -> unsigned long long const & + | + | @param i: size_t | | __init__(self, *args) - | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t + | __init__(self) -> uint64vec_t + | __init__(self, x) -> uint64vec_t + | + | @param x: qvector< unsigned long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58880,20 +74581,31 @@ class ulonglongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned long long const & | - | __swig_destroy__ = delete_ulonglongvec_t(...) - | delete_ulonglongvec_t(self) + | __swig_destroy__ = delete_uint64vec_t(...) + | delete_uint64vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: unsigned long long const & | | append = push_back(self, *args) -> 'unsigned long long &' | @@ -58921,32 +74633,54 @@ class ulonglongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned long long >::iterator' | erase(self, it) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | | erase(self, first, last) -> qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator | | extract(self, *args) -> 'unsigned long long *' | extract(self) -> unsigned long long * | | find(self, *args) -> 'qvector< unsigned long long >::const_iterator' | find(self, x) -> qvector< unsigned long long >::iterator + | + | @param x: unsigned long long const & + | | find(self, x) -> qvector< unsigned long long >::const_iterator + | + | @param x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: unsigned long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: unsigned long long * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned long long >::iterator' | insert(self, it, x) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned long long &' | push_back(self, x) + | + | @param x: unsigned long long const & + | | push_back(self) -> unsigned long long & | | qclear(self, *args) -> 'void' @@ -58954,16 +74688,26 @@ class ulonglongvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned long long const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< unsigned long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58994,13 +74738,19 @@ class uintvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & | | __getitem__(self, *args) -> 'unsigned int const &' | __getitem__(self, i) -> unsigned int const & + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59009,20 +74759,31 @@ class uintvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned int const & | | __swig_destroy__ = delete_uintvec_t(...) | delete_uintvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: unsigned int const & | | append = push_back(self, *args) -> 'unsigned int &' | @@ -59050,32 +74811,54 @@ class uintvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned int >::iterator' | erase(self, it) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | | erase(self, first, last) -> qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator | | extract(self, *args) -> 'unsigned int *' | extract(self) -> unsigned int * | | find(self, *args) -> 'qvector< unsigned int >::const_iterator' | find(self, x) -> qvector< unsigned int >::iterator + | + | @param x: unsigned int const & + | | find(self, x) -> qvector< unsigned int >::const_iterator + | + | @param x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: unsigned int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: unsigned int * + | @param len: size_t | | insert(self, *args) -> 'qvector< unsigned int >::iterator' | insert(self, it, x) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned int &' | push_back(self, x) + | + | @param x: unsigned int const & + | | push_back(self) -> unsigned int & | | qclear(self, *args) -> 'void' @@ -59083,16 +74866,26 @@ class uintvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned int const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< unsigned int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59123,14 +74916,21 @@ class uval_array(builtins.object) | | __getitem__(self, *args) -> 'uval_t' | __getitem__(self, index) -> uval_t + | + | @param index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array + | + | @param nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uval_t | | __swig_destroy__ = delete_uval_array(...) | delete_uval_array(self) @@ -59143,6 +74943,8 @@ class uval_array(builtins.object) | | frompointer(*args) -> 'uval_array *' | frompointer(t) -> uval_array + | + | @param t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59160,156 +74962,114 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) -> 'uval_array *' uval_array_frompointer(t) -> uval_array + + @param t: uval_t * Help on function writebytes in module ida_pro: writebytes(*args) -> 'int' writebytes(h, l, size, mf) -> int - - Write at most 4 bytes to file. - @param h: file handle (C++: int) - @param l: value to write (C++: uint32) - @param size: size of value in bytes (1,2,4) (C++: int) - @param mf: is MSB first? (C++: bool) + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? @return: 0 on success, nonzero otherwise -=== ida_pro EPYDOC INJECTIONS === -ida_pro.CP_UTF16 -""" -UTF-16 codepage. +Module "ida_problems"s docstring: """ +Functions that deal with the list of problems. -ida_pro.IDA_SDK_VERSION -""" -IDA SDK v7.4. -""" +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. -ida_pro.IDBDEC_ESCAPE -""" -convert non-printable characters to C escapes (, \\xNN, \\uNNNN) -""" +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. -ida_pro.IOREDIR_APPEND -""" -append, do not overwrite the output file -""" +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" -ida_pro.IOREDIR_INPUT -""" -input redirection -""" - -ida_pro.IOREDIR_OUTPUT -""" -output redirection -""" - -ida_pro.IOREDIR_QUOTED -""" -the file name was quoted -""" - -ida_pro.MAXSTR -""" -maximum string size -""" - -ida_pro.SUBSTCHAR -""" -default char, used if a char cannot be represented in a codepage -""" - -ida_pro.__MF__ -""" -byte sex of our platform (Most significant byte First). 0: little -endian (Intel 80x86). 1: big endian (PowerPC). -""" -=== ida_pro EPYDOC INJECTIONS END === Help on function forget_problem in module ida_problems: forget_problem(*args) -> 'bool' forget_problem(type, ea) -> bool - - Remove an address from a problem list - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address @return: success Help on function get_problem in module ida_problems: get_problem(*args) -> 'ea_t' get_problem(type, lowea) -> ea_t + Get an address from the specified problem list. The address is not removed from + the list. - - Get an address from the specified problem list. The address is not - removed from the list. - - @param type: problem list type (C++: problist_id_t) - @param lowea: the returned address will be higher or equal than the - specified address (C++: ea_t) - @return: linear address or BADADDR + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR Help on function get_problem_desc in module ida_problems: get_problem_desc(*args) -> 'qstring *' get_problem_desc(t, ea) -> str + Get the human-friendly description of the problem, if one was provided to + remember_problem. - - Get the human-friendly description of the problem, if one was provided - to remember_problem. - - @param t: problem list type. (C++: problist_id_t) - @param ea: linear address. (C++: ea_t) + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. @return: the message length or -1 if none Help on function get_problem_name in module ida_problems: get_problem_name(*args) -> 'char const *' get_problem_name(type, longname=True) -> char const * - - Get problem list description. - - @param type (C++: problist_id_t) - @param longname (C++: bool) + @param type: (C++: problist_id_t) + @param longname: (C++: bool) Help on function is_problem_present in module ida_problems: is_problem_present(*args) -> 'bool' is_problem_present(t, ea) -> bool - - Check if the specified address is present in the problem list. - - @param t (C++: problist_id_t) - @param ea (C++: ea_t) + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) Help on function remember_problem in module ida_problems: remember_problem(*args) -> 'void' remember_problem(type, ea, msg=None) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. - - Insert an address to a list of problems. Display a message saying - about the problem (except of 'PR_ATTN' , 'PR_FINAL' ) 'PR_JUMP' is - temporarily ignored. - - @param type: problem list type (C++: problist_id_t) - @param ea: linear address (C++: ea_t) - @param msg: a user-friendly message to be displayed instead of the - default more generic one associated with the type of - problem. Defaults to NULL. (C++: const char *) + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. Help on function was_ida_decision in module ida_problems: was_ida_decision(*args) -> 'bool' was_ida_decision(ea) -> bool + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" Help on class array_of_rangesets in module ida_range: @@ -59320,13 +75080,19 @@ class array_of_rangesets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & | | __getitem__(self, *args) -> 'rangeset_t const &' | __getitem__(self, i) -> rangeset_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59336,30 +75102,42 @@ class array_of_rangesets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rangeset_t const & | | __swig_destroy__ = delete_array_of_rangesets(...) | delete_array_of_rangesets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rangeset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: rangeset_t const & | | at(self, *args) -> 'rangeset_t const &' | at(self, _idx) -> rangeset_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< rangeset_t >::const_iterator' | begin(self) -> rangeset_t - | begin(self) -> rangeset_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -59372,39 +75150,58 @@ class array_of_rangesets(builtins.object) | | end(self, *args) -> 'qvector< rangeset_t >::const_iterator' | end(self) -> rangeset_t - | end(self) -> rangeset_t | | erase(self, *args) -> 'qvector< rangeset_t >::iterator' | erase(self, it) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | | erase(self, first, last) -> rangeset_t + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator | | extract(self, *args) -> 'rangeset_t *' | extract(self) -> rangeset_t | | find(self, *args) -> 'qvector< rangeset_t >::const_iterator' | find(self, x) -> rangeset_t - | find(self, x) -> rangeset_t + | + | @param x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rangeset_t()) + | + | @param x: rangeset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: rangeset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: rangeset_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< rangeset_t >::iterator' | insert(self, it, x) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rangeset_t &' | push_back(self, x) + | + | @param x: rangeset_t const & + | | push_back(self) -> rangeset_t | | qclear(self, *args) -> 'void' @@ -59412,16 +75209,26 @@ class array_of_rangesets(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rangeset_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< rangeset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59452,19 +75259,30 @@ class range_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | __repr__ = _swig_repr(self) | @@ -59476,28 +75294,49 @@ class range_t(builtins.object) | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59508,15 +75347,11 @@ class range_t(builtins.object) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag @@ -59530,9 +75365,9 @@ Help on function range_t_print in module ida_range: range_t_print(*args) -> 'size_t' range_t_print(cb) -> str - - Helper function. Should not be called directly! + + @param cb: range_t const * Help on class rangeset_t in module ida_range: @@ -59543,13 +75378,20 @@ class rangeset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, aset) -> bool + | + | @param aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t | __init__(self, range) -> rangeset_t + | + | @param range: range_t const & + | | __init__(self, ivs) -> rangeset_t + | + | @param ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59558,6 +75400,8 @@ class rangeset_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, aset) -> bool + | + | @param aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -59569,77 +75413,156 @@ class rangeset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, range) -> bool + | Add each element of 'aset' to the set. + | + | @param range: range_t const & + | + | @return: false if no elements were added (the set was unchanged) | add(self, start, _end) -> bool + | + | @param start: ea_t + | @param _end: ea_t + | | add(self, aset) -> bool + | + | @param aset: rangeset_t const & | | begin(self, *args) -> 'rangeset_t::iterator' | begin(self) -> range_t - | begin(self) -> range_t + | Get an iterator that points to the first element in the set. | | cached_range(self, *args) -> 'range_t const *' | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element | | clear(self, *args) -> 'void' | clear(self) + | Delete all elements from the set. See qvector::clear() | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) + | + | @param ea: ea_t + | | contains(self, aset) -> bool + | + | @param aset: rangeset_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Does the set have zero elements. | | end(self, *args) -> 'rangeset_t::iterator' | end(self) -> range_t - | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) | | find_range(self, *args) -> 'range_t const *' | find_range(self, ea) -> range_t + | Get the element from the set that contains 'ea'. + | + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element | | getrange(self, *args) -> 'range_t const &' | getrange(self, idx) -> range_t + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, range) -> bool + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() + | + | @param range: range_t const & + | | has_common(self, aset) -> bool + | + | @param aset: rangeset_t const & | | includes(self, *args) -> 'bool' | includes(self, range) -> bool + | Is every ea in 'range' contained in the rangeset? + | + | @param range: (C++: const range_t &) range_t const & | | intersect(self, *args) -> 'bool' | intersect(self, aset) -> bool + | Set the rangeset to its intersection with 'aset'. + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged | | is_equal(self, *args) -> 'bool' | is_equal(self, aset) -> bool + | Do this rangeset and 'aset' have identical elements? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, aset) -> bool + | Is every element in the rangeset contained in an element of 'aset'? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & | | lastrange(self, *args) -> 'range_t const &' | lastrange(self) -> range_t + | Get the last range_t in the set. | | next_addr(self, *args) -> 'ea_t' | next_addr(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | next_range(self, *args) -> 'ea_t' | next_range(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) | | nranges(self, *args) -> 'size_t' | nranges(self) -> size_t + | Get the number of range_t elements in the set. | | prev_addr(self, *args) -> 'ea_t' | prev_addr(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) | | prev_range(self, *args) -> 'ea_t' | prev_range(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) | | sub(self, *args) -> 'bool' | sub(self, range) -> bool + | Subtract each range in 'aset' from the set + | + | @param range: range_t const & + | + | @return: false if nothing was subtracted (the set was unchanged) | sub(self, ea) -> bool + | + | @param ea: ea_t + | | sub(self, aset) -> bool + | + | @param aset: rangeset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59667,13 +75590,19 @@ class rangevec_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59683,30 +75612,42 @@ class rangevec_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | __swig_destroy__ = delete_rangevec_base_t(...) | delete_rangevec_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -59719,39 +75660,58 @@ class rangevec_base_t(builtins.object) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -59759,16 +75719,26 @@ class rangevec_base_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59821,9 +75791,13 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59833,25 +75807,37 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -59864,39 +75850,58 @@ class rangevec_t(rangevec_base_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -59904,16 +75909,26 @@ class rangevec_t(rangevec_base_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59932,62 +75947,63 @@ class rangevec_t(rangevec_base_t) | | __hash__ = None +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + Help on function reg_data_type in module ida_registry: reg_data_type(*args) -> 'regval_type_t' reg_data_type(name, subkey=None) -> regval_type_t - - Get data type of a given value. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name @return: false if the [key+]value doesn't exist Help on function reg_delete in module ida_registry: reg_delete(*args) -> 'bool' reg_delete(name, subkey=None) -> bool - - Delete a value from the registry. - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key @return: success Help on function reg_delete_subkey in module ida_registry: reg_delete_subkey(*args) -> 'bool' reg_delete_subkey(name) -> bool - - Delete a key from the registry. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_delete_tree in module ida_registry: reg_delete_tree(*args) -> 'bool' reg_delete_tree(name) -> bool - - Delete a subtree from the registry. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_exists in module ida_registry: reg_exists(*args) -> 'bool' reg_exists(name, subkey=None) -> bool - - Is there already a value with the given name? - @param name: value name (C++: const char *) - @param subkey: parent key (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key Help on function reg_flush in module ida_registry: @@ -60002,520 +76018,448 @@ reg_load(*args) -> 'void' Help on function reg_read_binary in module ida_registry: reg_read_binary(*args) -> 'PyObject *' - reg_read_binary(name, subkey=None) -> PyObject * - - + reg_read_binary(name, subkey=None) -> bytes or None Read binary data from the registry. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) - @return: false if 'data' is not large enough to hold all data present. - in this case 'data' is left untouched. + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success Help on function reg_read_bool in module ida_registry: reg_read_bool(*args) -> 'bool' reg_read_bool(name, defval, subkey=None) -> bool - - Read boolean value from the registry. - @param name: value name (C++: const char *) - @param defval: default value (C++: bool) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name @return: boolean read from registry, or 'defval' if the read failed Help on function reg_read_int in module ida_registry: reg_read_int(*args) -> 'int' reg_read_int(name, defval, subkey=None) -> int - - Read integer value from the registry. - @param name: value name (C++: const char *) - @param defval: default value (C++: int) - @param subkey: key name (C++: const char *) - @return: the value read from the registry, or 'defval' if the read - failed + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed Help on function reg_read_string in module ida_registry: reg_read_string(*args) -> 'PyObject *' - reg_read_string(name, subkey=None, _def=None) -> PyObject * - - + reg_read_string(name, subkey=None, _def=None) -> str Read a string from the registry. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * @return: success Help on function reg_read_strlist in module ida_registry: reg_read_strlist(*args) -> 'qstrvec_t *' reg_read_strlist(subkey) - - Retrieve all string values associated with the given key. Also see - 'reg_update_strlist()' . + reg_update_strlist(). - @param subkey (C++: const char *) + @param subkey: (C++: const char *) char const * Help on function reg_subkey_exists in module ida_registry: reg_subkey_exists(*args) -> 'bool' reg_subkey_exists(name) -> bool - - Is there already a key with the given name? - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) -> 'PyObject *' - reg_subkey_subkeys(name) -> PyObject * - - + reg_subkey_subkeys(name) -> [str, ...] Get all subkey names of given key. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) -> 'PyObject *' - reg_subkey_values(name) -> PyObject * - - + reg_subkey_values(name) -> [str, ...] Get all value names under given key. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function reg_update_filestrlist in module ida_registry: reg_update_filestrlist(*args) -> 'void' reg_update_filestrlist(subkey, add, maxrecs, rem=None) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. - - Update registry with a file list. Case sensitivity will vary depending - on the target OS.'add' and 'rem' must be UTF-8, just like for regular - string operations. - - @param subkey (C++: const char *) - @param add (C++: const char *) - @param maxrecs (C++: size_t) - @param rem (C++: const char *) + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * Help on function reg_update_strlist in module ida_registry: reg_update_strlist(*args) -> 'void' reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) - - Update list of strings associated with given key. - @param subkey: key name (C++: const char *) - @param add: string to be added to list, can be NULL (C++: const char - *) - @param maxrecs: limit list to this size (C++: size_t) - @param rem: string to be removed from list, can be NULL (C++: const - char *) - @param ignorecase: ignore case for 'add' and 'rem' (C++: bool) + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' Help on function reg_write_binary in module ida_registry: reg_write_binary(*args) -> 'PyObject *' reg_write_binary(name, py_bytes, subkey=None) -> PyObject * - - Write binary data to the registry. - @param name: value name (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name Help on function reg_write_bool in module ida_registry: reg_write_bool(*args) -> 'void' reg_write_bool(name, value, subkey=None) - - Write boolean value to the registry. - @param name: value name (C++: const char *) - @param value: boolean to write (nonzero = true) (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name Help on function reg_write_int in module ida_registry: reg_write_int(*args) -> 'void' reg_write_int(name, value, subkey=None) - - Write integer value to the registry. - @param name: value name (C++: const char *) - @param value: value to write (C++: int) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name Help on function reg_write_string in module ida_registry: reg_write_string(*args) -> 'void' reg_write_string(name, utf8, subkey=None) - - Write a string to the registry. - @param name: value name (C++: const char *) - @param utf8: utf8-encoded string (C++: const char *) - @param subkey: key name (C++: const char *) + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name -=== ida_registry EPYDOC INJECTIONS === -ida_registry.ROOT_KEY_NAME +Help on function set_registry_root in module ida_registry: + +set_registry_root(*args) -> 'bool' + set_registry_root(name) -> bool + + @param name: char const * + +Module "ida_search"s docstring: """ -Key used to store IDA settings in registry (Windows version).this name -is automatically prepended to all key names passed to functions in -this file. -""" -=== ida_registry EPYDOC INJECTIONS END === +Middle-level search functions. + +They all are controlled by Search flags""" + Help on function find_binary in module ida_search: find_binary(*args) -> 'ea_t' find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t + Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' find_code(ea, sflag) -> ea_t - - Find next code address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' find_data(ea, sflag) -> ea_t - - Find next data address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' find_defined(ea, sflag) -> ea_t - - Find next ea that is the start of an instruction or data. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_error in module ida_search: find_error(*args) -> 'int *' find_error(ea, sflag) -> ea_t - - Find next error or problem. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' - find_imm(newEA, sflag, srchValue) -> ea_t - - + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_not_func in module ida_search: find_not_func(*args) -> 'ea_t' find_not_func(ea, sflag) -> ea_t - - Find next code address that does not belong to a function. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_notype in module ida_search: find_notype(*args) -> 'int *' find_notype(ea, sflag) -> ea_t - - Find next operand without any type info. + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_reg_access in module ida_search: + +find_reg_access(*args) -> 'ea_t' + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + Find access to a register. - @param ea (C++: ea_t) - @param sflag (C++: int) + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' find_suspop(ea, sflag) -> ea_t - - Find next suspicious operand. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module ida_search: find_text(*args) -> 'ea_t' find_text(start_ea, y, x, ustr, sflag) -> ea_t + See search() - - See 'search()' - - - @param start_ea (C++: ea_t) - @param y (C++: int) - @param x (C++: int) - @param ustr (C++: const char *) - @param sflag (C++: int) + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' find_unknown(ea, sflag) -> ea_t - - Find next unexplored address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function search_down in module ida_search: search_down(*args) -> 'bool' search_down(sflag) -> bool + Is the SEARCH_DOWN bit set? - - Is the 'SEARCH_DOWN' bit set? - - - @param sflag (C++: int) + @param sflag: (C++: int) -=== ida_search EPYDOC INJECTIONS === -ida_search.SEARCH_BRK -""" -return 'BADADDR' if Ctrl-Break wass pressed during search +Module "ida_segment"s docstring: """ +Functions that deal with segments. -ida_search.SEARCH_CASE -""" -case-sensitive search (case-insensitive otherwise) -""" +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. -ida_search.SEARCH_DOWN -""" -search towards higher addresses -""" +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. -ida_search.SEARCH_IDENT -""" -search for an identifier (text search). it means that the characters -before and after the match cannot be is_visible_char(). -""" +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is -ida_search.SEARCH_NEXT -""" -for other find_.. functions it is implicitly set +(start address of segment - segment base linear address) -useful only for 'search()' and find_binary(). -""" +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" -ida_search.SEARCH_NOBRK -""" -don't test for ctrl-break to interrupt the search -""" - -ida_search.SEARCH_NOSHOW -""" -don't display the search progress/refresh screen -""" - -ida_search.SEARCH_REGEX -""" -regular expressions in search string (only supported for txt search) -""" - -ida_search.SEARCH_UP -""" -search towards lower addresses -""" -=== ida_search EPYDOC INJECTIONS END === Help on function add_segm in module ida_segment: add_segm(*args) -> 'bool' add_segm(para, start, end, name, sclass, flags=0) -> bool - - - Add a new segment, second form. Segment alignment is set to - 'saRelByte' . Segment combination is "public" or "stack" (if segment - class is "STACK"). Addressing mode of segment is taken as default - (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a - segment already exists at the specified range of addresses, this - segment will be truncated. Instructions and data in the old segment - will be deleted if the new segment has another addressing mode or + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or another segment base address. - @param para: segment base paragraph. if paragraph can't fit in 16bit, - then a new selector is allocated and mapped to the - paragraph. (C++: ea_t) - @param start: start address of the segment. if start== BADADDR then - start <- to_ea(para,0). (C++: ea_t) - @param end: end address of the segment. end address should be higher - than start address. For emulate empty segments, use - SEG_NULL segment type. If the end address is lower than - start address, then fail. If end== BADADDR , then a - segment up to the next segment will be created (if the - next segment doesn't exist, then 1 byte segment will be - created). If 'end' is too high and the new segment would - overlap the next segment, 'end' is adjusted properly. - (C++: ea_t) - @param name: name of new segment. may be NULL (C++: const char *) - @param sclass: class of the segment. may be NULL. type of the new - segment is modified if class is one of predefined - names: "CODE" -> SEG_CODE "DATA" -> SEG_DATA - "CONST" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS "XTRN" -> SEG_XTRN "COMM" -> SEG_COMM - "ABS" -> SEG_ABSSYM (C++: const char *) - @param flags (C++: int) + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segm_ex in module ida_segment: add_segm_ex(*args) -> 'bool' - add_segm_ex(s, name, sclass, flags) -> bool + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. - - Add a new segment. If a segment already exists at the specified range - of addresses, this segment will be truncated. Instructions and data in - the old segment will be deleted if the new segment has another - addressing mode or another segment base address. - - @param s: pointer to filled segment structure. segment selector should - have proper mapping (see set_selector() ). if - s.start_ea== BADADDR then s.start_ea <- get_segm_base(&s) - if s.end_ea== BADADDR , then a segment up to the next - segment will be created (if the next segment doesn't exist, - then 1 byte segment will be created). if the s.end_ea < - s.start_ea, then fail. if s.end_ea is too high and the new - segment would overlap the next segment, s.end_ea is adjusted - properly. (C++: segment_t *) - @param name: name of new segment. may be NULL. if specified, the - segment is immediately renamed (C++: const char *) - @param sclass: class of the segment. may be NULL. if specified, the - segment class is immediately changed (C++: const char - *) - @param flags: Add segment flags (C++: int) + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function add_segment_translation in module ida_segment: add_segment_translation(*args) -> 'bool' add_segment_translation(segstart, mappedseg) -> bool - - Add segment translation. - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param mappedseg: start address of the overlayed segment (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function allocate_selector in module ida_segment: allocate_selector(*args) -> 'sel_t' allocate_selector(segbase) -> sel_t + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. - - Allocate a selector for a segment unconditionally. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a new free selector and setup its mapping using - 'find_free_selector()' and 'set_selector()' functions. - - @param segbase: a new segment base paragraph (C++: ea_t) + @param segbase: (C++: ea_t) a new segment base paragraph @return: the allocated selector number Help on function change_segment_status in module ida_segment: change_segment_status(*args) -> 'int' change_segment_status(s, is_deb_segm) -> int + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. - - Convert a debugger segment to a regular segment and vice versa. When - converting debug->regular, the memory contents will be copied to the - database. - - @param s: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment @return: Change segment status result codes Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' del_segm(ea, flags) -> bool - - Delete a segment. - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_segment_translations in module ida_segment: del_segment_translations(*args) -> 'void' del_segment_translations(segstart) - - Delete the translation list - @param segstart: start address of the segment to delete translation - list (C++: ea_t) + @param segstart: (C++: ea_t) start address of the segment to delete translation list Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function find_free_selector in module ida_segment: find_free_selector(*args) -> 'sel_t' find_free_selector() -> sel_t - - Find first unused selector. @return: a number >= 1 @@ -60524,349 +76468,277 @@ Help on function find_selector in module ida_segment: find_selector(*args) -> 'sel_t' find_selector(base) -> sel_t - - Find a selector that has mapping to the specified paragraph. - @param base: paragraph to search in the translation table (C++: ea_t) + @param base: (C++: ea_t) paragraph to search in the translation table @return: selector value or base Help on function get_defsr in module ida_segment: get_defsr(*args) -> 'sel_t' get_defsr(s, reg) -> sel_t + Deprecated, use instead: + value = s.defsr[reg] + + @param s: segment_t * + @param reg: int Help on function get_first_seg in module ida_segment: get_first_seg(*args) -> 'segment_t *' get_first_seg() -> segment_t - - Get pointer to the first segment. Help on function get_group_selector in module ida_segment: get_group_selector(*args) -> 'sel_t' get_group_selector(grpsel) -> sel_t - - Get common selector for a group of segments. - @param grpsel: selector of group segment (C++: sel_t) - @return: common selector of the group or 'grpsel' if no such group is - found + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found Help on function get_last_seg in module ida_segment: get_last_seg(*args) -> 'segment_t *' get_last_seg() -> segment_t - - Get pointer to the last segment. Help on function get_next_seg in module ida_segment: get_next_seg(*args) -> 'segment_t *' get_next_seg(ea) -> segment_t - - Get pointer to the next segment. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_seg in module ida_segment: get_prev_seg(*args) -> 'segment_t *' get_prev_seg(ea) -> segment_t - - Get pointer to the previous segment. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_segm_base in module ida_segment: get_segm_base(*args) -> 'ea_t' get_segm_base(s) -> ea_t + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) - - Get segment base linear address. Segment base linear address is used - to calculate virtual addresses. The virtual address of the first byte - of the segment will be (start address of segment - segment base linear - address) - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address Help on function get_segm_by_name in module ida_segment: get_segm_by_name(*args) -> 'segment_t *' get_segm_by_name(name) -> segment_t + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. - - Get pointer to segment by its name. If there are several segments with - the same name, returns the first of them. - - @param name: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure Help on function get_segm_by_sel in module ida_segment: get_segm_by_sel(*args) -> 'segment_t *' get_segm_by_sel(selector) -> segment_t + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. - - Get pointer to segment structure. This function finds a segment by its - selector. If there are several segments with the same selectors, the - last one will be returned. - - @param selector: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr Help on function get_segm_class in module ida_segment: get_segm_class(*args) -> 'qstring *' get_segm_class(s) -> str - - Get segment class. Segment class is arbitrary text (max 8 characters). - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment class (-1 if s==NULL or bufsize<=0) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) Help on function get_segm_name in module ida_segment: get_segm_name(*args) -> 'qstring *' get_segm_name(s, flags=0) -> str - - Get true segment name by pointer to segment. - @param s: pointer to segment (C++: const segment_t *) - @param flags: 0-return name as is; 1-substitute bad symbols with _ 1 - corresponds to GN_VISIBLE (C++: int) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) Help on function get_segm_num in module ida_segment: get_segm_num(*args) -> 'int' get_segm_num(ea) -> int - - Get number of segment by address. - @param ea: linear address belonging to the segment (C++: ea_t) - @return: -1 if no segment occupies the specified address. otherwise - returns number of the specified segment (0.. get_segm_qty() - -1) + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) Help on function get_segm_para in module ida_segment: get_segm_para(*args) -> 'ea_t' get_segm_para(s) -> ea_t + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). - - Get segment base paragraph. Segment base paragraph may be converted to - segment base linear address using 'to_ea()' function. In fact, - to_ea(get_segm_para(s), 0) == get_segm_base(s). - - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph Help on function get_segm_qty in module ida_segment: get_segm_qty(*args) -> 'int' get_segm_qty() -> int - - Get number of segments. Help on function get_segment_alignment in module ida_segment: get_segment_alignment(*args) -> 'char const *' get_segment_alignment(align) -> char const * - - Get text representation of segment alignment code. - @param align (C++: uchar) + @param align: (C++: uchar) @return: text digestable by IBM PC assembler. Help on function get_segment_cmt in module ida_segment: get_segment_cmt(*args) -> 'qstring *' get_segment_cmt(s, repeatable) -> str - - Get segment comment. - @param s: pointer to segment structure (C++: const segment_t *) - @param repeatable: 0: get regular comment. 1: get repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. @return: size of comment or -1 Help on function get_segment_combination in module ida_segment: get_segment_combination(*args) -> 'char const *' get_segment_combination(comb) -> char const * - - Get text representation of segment combination code. - @param comb (C++: uchar) + @param comb: (C++: uchar) @return: text digestable by IBM PC assembler. Help on function get_segment_translations in module ida_segment: get_segment_translations(*args) -> 'ssize_t' get_segment_translations(transmap, segstart) -> ssize_t - - Get segment translation list. - @param transmap: vector of segment start addresses for the translation - list (C++: eavec_t *) - @param segstart: start address of the segment to get information about - (C++: ea_t) - @return: -1 if no translation list or bad segstart. otherwise returns - size of translation list. + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. Help on function get_selector_qty in module ida_segment: -get_selector_qty(*args) -> 'int' - get_selector_qty() -> int - - +get_selector_qty(*args) -> 'size_t' + get_selector_qty() -> size_t Get number of defined selectors. Help on function get_visible_segm_name in module ida_segment: get_visible_segm_name(*args) -> 'qstring *' get_visible_segm_name(s) -> str - - Get segment name by pointer to segment. - @param s: pointer to segment (C++: const segment_t *) - @return: size of segment name (-1 if s==NULL) + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) Help on function getn_selector in module ida_segment: getn_selector(*args) -> 'sel_t *, ea_t *' getn_selector(n) -> bool + Get description of selector (0..get_selector_qty()-1) - - Get description of selector (0.. 'get_selector_qty()' -1) - - - @param n (C++: int) + @param n: (C++: int) Help on function getnseg in module ida_segment: getnseg(*args) -> 'segment_t *' getnseg(n) -> segment_t + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) - - Get pointer to segment by its number.Obsoleted because it can slow - down the debugger (it has to refresh the whole memory segmentation to - calculate the correct answer) - - @param n: segment number in the range (0.. get_segm_qty() -1) (C++: - int) - @return: NULL or pointer to segment structure + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure Help on function getseg in module ida_segment: getseg(*args) -> 'segment_t *' getseg(ea) -> segment_t - - Get pointer to segment by linear address. - @param ea: linear address belonging to the segment (C++: ea_t) - @return: NULL or pointer to segment structure + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure Help on function is_finally_visible_segm in module ida_segment: is_finally_visible_segm(*args) -> 'bool' is_finally_visible_segm(s) -> bool + See SFL_HIDDEN, SCF_SHHID_SEGM. - - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - - - @param s (C++: segment_t *) + @param s: (C++: segment_t *) Help on function is_miniidb in module ida_segment: is_miniidb(*args) -> 'bool' is_miniidb() -> bool - - Is the database a miniidb created by the debugger?. - @return: true if the database contains no segments or only debugger - segments + @return: true if the database contains no segments or only debugger segments Help on function is_segm_locked in module ida_segment: is_segm_locked(*args) -> 'bool' is_segm_locked(segm) -> bool - - Is a segment pointer locked? - - @param segm (C++: const segment_t *) + @param segm: (C++: const segment_t *) segment_t const * Help on function is_spec_ea in module ida_segment: is_spec_ea(*args) -> 'bool' is_spec_ea(ea) -> bool + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) - - Does the address belong to a segment with a special type?. ( - 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' ) - - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address Help on function is_spec_segm in module ida_segment: is_spec_segm(*args) -> 'bool' is_spec_segm(seg_type) -> bool + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) - - Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , - 'SEG_COMM' ) - - @param seg_type (C++: uchar) + @param seg_type: (C++: uchar) Help on function is_visible_segm in module ida_segment: is_visible_segm(*args) -> 'bool' is_visible_segm(s) -> bool + See SFL_HIDDEN. - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) + @param s: (C++: segment_t *) Help on function lock_segm in module ida_segment: lock_segm(*args) -> 'void' lock_segm(segm, lock) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. - - Lock segment pointer Locked pointers are guaranteed to remain valid - until they are unlocked. Ranges with locked pointers cannot be deleted - or moved. - - @param segm (C++: const segment_t *) - @param lock (C++: bool) + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) Help on class lock_segment in module ida_segment: @@ -60877,6 +76749,8 @@ class lock_segment(builtins.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment + | + | @param _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -60899,85 +76773,135 @@ Help on function move_segm in module ida_segment: move_segm(*args) -> 'int' move_segm(s, to, flags=0) -> int + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. - - Move a segment to a new address. This function moves all information - to the new address. It fixes up address sensitive information in the - kernel. The total effect is equal to reloading the segment to the - target address. For the file format dependent address sensitive - information, 'loader_t::move_segm' is called. Also IDB notification - event 'idb_event::segm_moved' is called. - - @param s: segment to move (C++: segment_t *) - @param to: new segment start address (C++: ea_t) - @param flags: Move segment flags (C++: int) + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags @return: Move segment result codes Help on function move_segm_start in module ida_segment: move_segm_start(*args) -> 'bool' move_segm_start(ea, newstart, mode) -> bool - - Move segment start. The main difference between this function and - 'set_segm_start()' is that this function may expand the previous - segment while 'set_segm_start()' never does it. So, this function - allows to change bounds of two segments simultaneously. If the - previous segment and the specified segment have the same addressing - mode and segment base, then instructions and data are not destroyed - - they simply move from one segment to another. Otherwise all - instructions/data which migrate from one segment to another are - destroyed.this function never disables addresses. + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param mode: policy for destroying defined items 0: if it is - necessary to destroy defined items, display a dialog box - and ask confirmation 1: if it is necessary to destroy - defined items, just destroy them without asking the user - -1: if it is necessary to destroy defined items, don't - destroy them (i.e. function will fail) -2: don't - destroy defined items (function will succeed) (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' rebase_program(delta, flags) -> int - - Rebase the whole program by 'delta' bytes. - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database @return: Move segment result codes Help on function segm_adjust_diff in module ida_segment: segm_adjust_diff(*args) -> 'adiff_t' segm_adjust_diff(s, delta) -> adiff_t - - Truncate and sign extend a delta depending on the segment. - - @param s (C++: const segment_t *) - @param delta (C++: adiff_t) + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) Help on function segm_adjust_ea in module ida_segment: segm_adjust_ea(*args) -> 'ea_t' segm_adjust_ea(s, ea) -> ea_t - - Truncate an address depending on the segment. - - @param s (C++: const segment_t *) - @param ea (C++: ea_t) + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) + +Help on class segment_defsr_array in module ida_segment: + +class segment_defsr_array(builtins.object) + | Proxy of C++ wrapped_array_t< sel_t,SREG_NUM > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> segment_defsr_array + | + | @param data: unsigned-ea-like-numeric-type (&)[SREG_NUM]↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_segment_defsr_array(...) + | delete_segment_defsr_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag Help on class segment_t in module ida_segment: @@ -60999,11 +76923,16 @@ class segment_t(ida_range.range_t) | __swig_destroy__ = delete_segment_t(...) | delete_segment_t(self) | + | _segment_t__getDefsr = __getDefsr(self, *args) -> 'wrapped_array_t< sel_t,SREG_NUM >' + | __getDefsr(self) -> segment_defsr_array + | | abits(self, *args) -> 'int' | abits(self) -> int + | Get number of address bits. | | abytes(self, *args) -> 'int' | abytes(self) -> int + | Get number of address bytes. | | clr_comorg(self, *args) -> 'void' | clr_comorg(self) @@ -61014,6 +76943,18 @@ class segment_t(ida_range.range_t) | comorg(self, *args) -> 'bool' | comorg(self) -> bool | + | is_16bit(self, *args) -> 'bool' + | is_16bit(self) -> bool + | Is a 16-bit segment? + | + | is_32bit(self, *args) -> 'bool' + | is_32bit(self) -> bool + | Is a 32-bit segment? + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | Is a 64-bit segment? + | | is_header_segm(self, *args) -> 'bool' | is_header_segm(self) -> bool | @@ -61034,121 +76975,161 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) -> 'void' | set_debugger_segm(self, debseg) + | + | @param debseg: bool | | set_header_segm(self, *args) -> 'void' | set_header_segm(self, on) + | + | @param on: bool | | set_hidden_segtype(self, *args) -> 'void' | set_hidden_segtype(self, hide) + | + | @param hide: bool | | set_loader_segm(self, *args) -> 'void' | set_loader_segm(self, ldrseg) + | + | @param ldrseg: bool | | set_ob_ok(self, *args) -> 'void' | set_ob_ok(self) | | set_visible_segm(self, *args) -> 'void' | set_visible_segm(self, visible) + | + | @param visible: bool | | update(self, *args) -> 'bool' | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success | - | use32(self, *args) -> 'bool' - | use32(self) -> bool - | - | use64(self, *args) -> 'bool' - | use64(self) -> bool + | use64 = is_64bit(self, *args) -> 'bool' | | ---------------------------------------------------------------------- | Data descriptors defined here: | | align - | segment_t_align_get(self) -> uchar + | align | | bitness - | segment_t_bitness_get(self) -> uchar + | bitness | | color - | segment_t_color_get(self) -> bgcolor_t + | color | | comb - | segment_t_comb_get(self) -> uchar + | comb | | defsr - | segment_t_defsr_get(self) -> sel_t [16] + | __getDefsr(self) -> segment_defsr_array | | end_ea - | segment_t_end_ea_get(self) -> ea_t + | end_ea | | flags - | segment_t_flags_get(self) -> ushort + | flags | | name - | segment_t_name_get(self) -> uval_t + | name | | orgbase - | segment_t_orgbase_get(self) -> uval_t + | orgbase | | perm - | segment_t_perm_get(self) -> uchar + | perm | | sclass - | segment_t_sclass_get(self) -> uval_t + | sclass | | sel - | segment_t_sel_get(self) -> sel_t + | sel | | start_ea - | segment_t_start_ea_get(self) -> ea_t + | start_ea | | thisown | The membership flag | | type - | segment_t_type_get(self) -> uchar + | type | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -61159,10 +77140,6 @@ class segment_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | - | startEA - | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: | @@ -61172,878 +77149,380 @@ Help on function segtype in module ida_segment: segtype(*args) -> 'uchar' segtype(ea) -> uchar - - Get segment type. - @param ea: any linear address within the segment (C++: ea_t) - @return: Segment types , SEG_UNDF if no segment found at 'ea' + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' Help on function sel2ea in module ida_segment: sel2ea(*args) -> 'ea_t' sel2ea(selector) -> ea_t - - Get mapping of a selector as a linear address. - @param selector: number of selector to translate to linear address - (C++: sel_t) - @return: linear address the specified selector is mapped to. if there - is no mapping, returns to_ea(selector,0); + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); Help on function sel2para in module ida_segment: sel2para(*args) -> 'ea_t' sel2para(selector) -> ea_t - - Get mapping of a selector. - @param selector: number of selector to translate (C++: sel_t) - @return: paragraph the specified selector is mapped to. if there is no - mapping, returns 'selector'. + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. Help on function set_defsr in module ida_segment: set_defsr(*args) -> 'void' set_defsr(s, reg, value) + Deprecated, use instead: + s.defsr[reg] = value + + @param s: segment_t * + @param reg: int + @param value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) -> 'int' set_group_selector(grp, sel) -> int + Create a new group of segments (used OMF files). - - Initialize groups. The kernel calls this function at the start of - work.Create a new group of segments (used OMF files). - - @param grp: selector of group segment (segment type is SEG_GRP ) You - should create an 'empty' (1 byte) group segment It won't - contain anything and will be used to redirect references - to the group of segments to the common selector. (C++: - sel_t) - @param sel: common selector of all segments belonging to the segment - You should create all segments within the group with the - same selector value. (C++: sel_t) + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. @return: 1 ok + 0 too many groups (see MAX_GROUPS) Help on function set_segm_addressing in module ida_segment: set_segm_addressing(*args) -> 'bool' set_segm_addressing(s, bitness) -> bool + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment - - Change segment addressing mode (16, 32, 64 bits). You must use this - function to change segment addressing, never change the 'bitness' - field directly. This function will delete all instructions, comments - and names in the segment - - @param s: pointer to segment (C++: segment_t *) - @param bitness: new addressing mode of segment 2: 64bit segment 1: - 32bit segment 0: 16bit segment (C++: size_t) + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment @return: success Help on function set_segm_base in module ida_segment: set_segm_base(*args) -> 'bool' set_segm_base(s, newbase) -> bool - - Internal function. - - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) Help on function set_segm_class in module ida_segment: set_segm_class(*args) -> 'int' set_segm_class(s, sclass, flags=0) -> int - - Set segment class. - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param sclass: segment class (may be NULL). If segment type is - SEG_NORM and segment class is one of predefined names, - then segment type is changed to: "CODE" -> SEG_CODE - "DATA" -> SEG_DATA "STACK" -> SEG_BSS "BSS" -> - SEG_BSS if "UNK" then segment type is reset to - SEG_NORM . (C++: const char *) - @param flags (C++: int) + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @param flags: (C++: int) Add segment flags + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr Help on function set_segm_end in module ida_segment: set_segm_end(*args) -> 'bool' set_segm_end(ea, newend, flags) -> bool + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. - - Set segment end address. The next segment is shrinked to allow - expansion of the specified segment. The kernel might even delete the - next segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newend: new end address of the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segm_name in module ida_segment: set_segm_name(*args) -> 'int' set_segm_name(s, name, flags=0) -> int + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. - - Rename segment. The new name is validated (see validate_name). A - segment always has a name. If you hadn't specified a name, the kernel - will assign it "seg###" name where ### is segment number. - - @param s: pointer to segment (may be NULL) (C++: segment_t *) - @param name: new segment name (C++: const char *) - @param flags: ADDSEG_IDBENC or 0 (C++: int) + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr Help on function set_segm_start in module ida_segment: set_segm_start(*args) -> 'bool' set_segm_start(ea, newstart, flags) -> bool + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. - - Set segment start address. The previous segment is trimmed to allow - expansion of the specified segment. The kernel might even delete the - previous segment if necessary. The kernel will ask the user for a - permission to destroy instructions or data going out of segment scope - if such instructions exist. - - @param ea: any address belonging to the segment (C++: ea_t) - @param newstart: new start address of the segment note that segment - start address should be higher than segment base - linear address. (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed Help on function set_segment_cmt in module ida_segment: set_segment_cmt(*args) -> 'void' set_segment_cmt(s, cmt, repeatable) - - Set segment comment. - @param s: pointer to segment structure (C++: const segment_t *) - @param cmt: comment string, may be multiline (with ' '). maximal size - is 4096 bytes. Use empty str ("") to delete comment (C++: - const char *) - @param repeatable: 0: set regular comment. 1: set repeatable comment. - (C++: bool) + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. Help on function set_segment_translations in module ida_segment: set_segment_translations(*args) -> 'bool' set_segment_translations(segstart, transmap) -> bool - - Set new translation list. - @param segstart: start address of the segment to add translation to - (C++: ea_t) - @param transmap: vector of segment start addresses for the translation - list. If transmap is empty, the translation list is - deleted. (C++: const eavec_t &) + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_visible_segm in module ida_segment: set_visible_segm(*args) -> 'void' set_visible_segm(s, visible) + See SFL_HIDDEN. - - See 'SFL_HIDDEN' . - - - @param s (C++: segment_t *) - @param visible (C++: bool) + @param s: (C++: segment_t *) + @param visible: (C++: bool) Help on function setup_selector in module ida_segment: setup_selector(*args) -> 'sel_t' setup_selector(segbase) -> sel_t + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. - - Allocate a selector for a segment if necessary. You must call this - function before calling 'add_segm_ex()' . 'add_segm()' calls this - function itself, so you don't need to allocate a selector. This - function will allocate a selector if 'segbase' requires more than 16 - bits and the current processor is IBM PC. Otherwise it will return the - segbase value. - - @param segbase: a new segment base paragraph (C++: ea_t) + @param segbase: (C++: ea_t) a new segment base paragraph @return: the allocated selector number Help on function std_out_segm_footer in module ida_segment: std_out_segm_footer(*args) -> 'void' std_out_segm_footer(ctx, seg) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. - - Generate segment footer line as a comment line. This function may be - used in IDP modules to generate segment footer if the target assembler - doesn't have 'ends' directive. - - @param ctx (C++: struct outctx_t &) - @param seg (C++: segment_t *) + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' - take_memory_snapshot(only_loader_segs) -> bool - - + take_memory_snapshot(type) -> bool Take a memory snapshot of the running process. - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) @return: success Help on function update_segm in module ida_segment: update_segm(*args) -> 'bool' update_segm(s) -> bool + + @param s: segment_t * -=== ida_segment EPYDOC INJECTIONS === -ida_segment.ADDSEG_FILLGAP -""" -fill gap between new segment and previous one. i.e. if such a gap -exists, and this gap is less than 64K, then fill the gap by extending -the previous segment and adding .align directive to it. This way we -avoid gaps between segments. too many gaps lead to a virtual array -failure. it cannot hold more than ~1000 gaps. -""" - -ida_segment.ADDSEG_IDBENC -""" -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; -""" - -ida_segment.ADDSEG_NOAA -""" -do not mark new segment for auto-analysis -""" - -ida_segment.ADDSEG_NOSREG -""" -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' -""" - -ida_segment.ADDSEG_NOTRUNC -""" -destroy/truncate old segments instead. - -don't truncate the new segment at the beginning of the next segment if -they overlap. -""" - -ida_segment.ADDSEG_OR_DIE -""" - 'qexit()' if can't add a segment -""" - -ida_segment.ADDSEG_QUIET -""" -silent mode, no "Adding segment..." in the messages window -""" - -ida_segment.ADDSEG_SPARSE -""" -use sparse storage method for the new segment -""" - -ida_segment.CSS_BREAK -""" -memory reading process stopped by user -""" - -ida_segment.CSS_NODBG -""" -debugger is not running -""" - -ida_segment.CSS_NOMEM -""" -is too big) - -not enough memory (might be because the segment -""" - -ida_segment.CSS_NORANGE -""" -could not find corresponding memory range -""" - -ida_segment.CSS_OK -""" -ok -""" - -ida_segment.MAX_GROUPS -""" -max number of segment groups -""" - -ida_segment.MAX_SEGM_TRANSLATIONS -""" -max number of segment translations -""" - -ida_segment.MOVE_SEGM_CHUNK -""" -Too many chunks are defined, can't move. -""" - -ida_segment.MOVE_SEGM_DEBUG -""" -Debugger segments cannot be moved. -""" - -ida_segment.MOVE_SEGM_IDP -""" -IDP module forbids moving the segment. -""" - -ida_segment.MOVE_SEGM_LOADER -""" -The segment has been moved but the loader complained. -""" - -ida_segment.MOVE_SEGM_ODD -""" -Cannot move segments by an odd number of bytes. -""" - -ida_segment.MOVE_SEGM_OK -""" -all ok +Module "ida_segregs"s docstring: """ +Functions that deal with the segment registers. -ida_segment.MOVE_SEGM_ORPHAN -""" -Orphan bytes hinder segment movement. -""" - -ida_segment.MOVE_SEGM_PARAM -""" -The specified segment does not exist. -""" - -ida_segment.MOVE_SEGM_ROOM -""" -Not enough free room at the target address. -""" - -ida_segment.MSF_FIXONCE -""" -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. -""" - -ida_segment.MSF_LDKEEP -""" -keep the loader in the memory (optimization) -""" - -ida_segment.MSF_NETNODES -""" -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) -""" - -ida_segment.MSF_NOFIX -""" -don't call the loader to fix relocations -""" - -ida_segment.MSF_PRIORITY -""" -valid for 'move_segm()' - -loader segments will overwrite any existing debugger segments when -moved. -""" - -ida_segment.MSF_SILENT -""" -don't display a "please wait" box on the screen -""" - -ida_segment.SEGMOD_KEEP -""" -keep information (code & data, etc) -""" - -ida_segment.SEGMOD_KEEP0 -""" -flag for internal use, don't set -""" - -ida_segment.SEGMOD_KEEPSEL -""" -do not try to delete unused selector -""" - -ida_segment.SEGMOD_KILL -""" -disable addresses if segment gets shrinked or deleted -""" - -ida_segment.SEGMOD_NOMOVE -""" -(for 'set_segm_start()' ) - -don't move info from the start of segment to the new start address -""" - -ida_segment.SEGMOD_SILENT -""" -be silent -""" - -ida_segment.SEGMOD_SPARSE -""" -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment -""" - -ida_segment.SEGPERM_EXEC -""" -Execute. -""" - -ida_segment.SEGPERM_READ -""" -Read. -""" - -ida_segment.SEGPERM_WRITE -""" -Write. -""" - -ida_segment.SEG_ABSSYM -""" -segment with definitions of absolute symbols -""" +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" -ida_segment.SEG_BSS -""" -uninitialized segment -""" - -ida_segment.SEG_CODE -""" -code segment -""" - -ida_segment.SEG_COMM -""" -segment with communal definitions -""" - -ida_segment.SEG_DATA -""" -data segment -""" - -ida_segment.SEG_GRP -""" -group of segments -""" - -ida_segment.SEG_IMEM -""" -internal processor memory & sfr (8051) -""" - -ida_segment.SEG_IMP -""" -java: implementation segment -""" - -ida_segment.SEG_NORM -""" -unknown type, no assumptions -""" - -ida_segment.SEG_NULL -""" -zero-length segment -""" - -ida_segment.SEG_UNDF -""" -undefined segment type (not used) -""" - -ida_segment.SEG_XTRN -""" -no instructions are allowed - -segment with 'extern' definitions. -""" - -ida_segment.SFL_COMORG -""" -IDP dependent field (IBM PC: if set, ORG directive is not commented -out) -""" - -ida_segment.SFL_DEBUG -""" -Is the segment created for the debugger?. Such segments are temporary -and do not have permanent flags. -""" - -ida_segment.SFL_HEADER -""" -Header segment (do not create offsets to it in the disassembly) -""" - -ida_segment.SFL_HIDDEN -""" -Is the segment hidden? -""" - -ida_segment.SFL_HIDETYPE -""" -Hide segment type (do not print it in the listing) -""" - -ida_segment.SFL_LOADER -""" -Is the segment created by the loader? -""" - -ida_segment.SFL_OBOK -""" -Orgbase is present? (IDP dependent field) -""" - -ida_segment.SREG_NUM -""" -Maximum number of segment registers is 16 (see 'segregs.hpp' ) -""" - -ida_segment.saAbs -""" -Absolute segment. -""" - -ida_segment.saGroup -""" -Segment group. -""" - -ida_segment.saRel1024Bytes -""" -1024 bytes -""" - -ida_segment.saRel128Bytes -""" -128 bytes -""" - -ida_segment.saRel2048Bytes -""" -2048 bytes -""" - -ida_segment.saRel32Bytes -""" -32 bytes -""" - -ida_segment.saRel4K -""" -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) -""" - -ida_segment.saRel512Bytes -""" -512 bytes -""" - -ida_segment.saRel64Bytes -""" -64 bytes -""" - -ida_segment.saRelByte -""" -Relocatable, byte aligned. -""" - -ida_segment.saRelDble -""" -boundary. - -Relocatable, aligned on a double word (4-byte) -""" - -ida_segment.saRelPage -""" -Relocatable, aligned on 256-byte boundary. -""" - -ida_segment.saRelPara -""" -Relocatable, paragraph (16-byte) aligned. -""" - -ida_segment.saRelQword -""" -8 bytes -""" - -ida_segment.saRelWord -""" -Relocatable, word (2-byte) aligned. -""" - -ida_segment.scCommon -""" -Common. Combine by overlay using maximum size. -""" - -ida_segment.scGroup -""" -Segment group. -""" - -ida_segment.scPriv -""" -segment. - -Private. Do not combine with any other program -""" - -ida_segment.scPub -""" -the alignment requirement. - -Public. Combine by appending at an offset that meets -""" - -ida_segment.scPub2 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scPub3 -""" -As defined by Microsoft, same as C=2 (public). -""" - -ida_segment.scStack -""" -byte alignment. - -Stack. Combine as for C=2. This combine type forces -""" -=== ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: copy_sreg_ranges(*args) -> 'void' copy_sreg_ranges(dst_rg, src_rg, map_selector=False) - - Duplicate segment register ranges. - @param dst_rg: number of destination segment register (C++: int) - @param src_rg: copy ranges from (C++: int) - @param map_selector: map selectors to linear addresses using sel2ea() - (C++: bool) + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() Help on function del_sreg_range in module ida_segregs: del_sreg_range(*args) -> 'bool' del_sreg_range(ea, rg) -> bool + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. - - Delete segment register range started at ea. When a segment register - range is deleted, the previous range is extended to cover the empty - space. The segment register range at the beginning of a segment cannot - be deleted. - - @param ea: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number @return: success Help on function get_prev_sreg_range in module ida_segregs: get_prev_sreg_range(*args) -> 'bool' get_prev_sreg_range(out, ea, rg) -> bool + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) - - Get segment register range previous to one with address.more efficient - then get_sreg_range(reg, ea-1) - - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number @return: success Help on function get_sreg in module ida_segregs: get_sreg(*args) -> 'sel_t' get_sreg(ea, rg) -> sel_t + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. - - Get value of a segment register. This function uses segment register - range and default segment register values stored in the segment - structure. - - @param ea: linear address in the program (C++: ea_t) - @param rg: number of the segment register (C++: int) - @return: value of the segment register, BADSEL if value is unknown. + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. Help on function get_sreg_range in module ida_segregs: get_sreg_range(*args) -> 'bool' get_sreg_range(out, ea, rg) -> bool - - Get segment register range by linear address. - @param out: segment register range (C++: sreg_range_t *) - @param ea: any linear address in the program (C++: ea_t) - @param rg: the segment register number (C++: int) + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number @return: success Help on function get_sreg_range_num in module ida_segregs: get_sreg_range_num(*args) -> 'int' get_sreg_range_num(ea, rg) -> int - - Get number of segment register range by address. - @param ea: any address in the range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: -1 if no range occupies the specified address. otherwise - returns number of the specified range - (0..get_srranges_qty()-1) + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) Help on function get_sreg_ranges_qty in module ida_segregs: get_sreg_ranges_qty(*args) -> 'size_t' get_sreg_ranges_qty(rg) -> size_t - - Get number of segment register ranges. - @param rg: the segment register number (C++: int) + @param rg: (C++: int) the segment register number Help on function getn_sreg_range in module ida_segregs: getn_sreg_range(*args) -> 'bool' getn_sreg_range(out, rg, n) -> bool - - Get segment register range by its number. - @param out: segment register range (C++: sreg_range_t *) - @param rg: the segment register number (C++: int) - @param n: number of range (0..qty()-1) (C++: int) + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) @return: success Help on function set_default_dataseg in module ida_segregs: set_default_dataseg(*args) -> 'void' set_default_dataseg(ds_sel) - - Set default value of DS register for all segments. - - @param ds_sel (C++: sel_t) + @param ds_sel: (C++: sel_t) Help on function set_default_sreg_value in module ida_segregs: set_default_sreg_value(*args) -> 'bool' set_default_sreg_value(sg, rg, value) -> bool - - Set default value of a segment register for a segment. - @param sg: pointer to segment structure if NULL, then set the register - for all segments (C++: segment_t *) - @param rg: number of segment register (C++: int) - @param value: its default value. this value will be used by - get_sreg() if value of the register is unknown at the - specified address. (C++: sel_t) + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. @return: success Help on function set_sreg_at_next_code in module ida_segregs: set_sreg_at_next_code(*args) -> 'void' set_sreg_at_next_code(ea1, ea2, rg, value) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. - Set the segment register value at the next instruction. This function - is designed to be called from 'idb_event::sgr_changed' handler in - order to contain the effect of changing a segment register value only - until the next instruction.It is useful, for example, in the ARM - module: the modification of the T register does not affect existing - instructions later in the code. - - @param ea1: address to start to search for an instruction (C++: ea_t) - @param ea2: the maximal address (C++: ea_t) - @param rg: the segment register number (C++: int) - @param value: the segment register value (C++: sel_t) + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value Help on function split_sreg_range in module ida_segregs: split_sreg_range(*args) -> 'bool' split_sreg_range(ea, rg, v, tag, silent=False) -> bool + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. - - Create a new segment register range. This function is used when the - IDP emulator detects that a segment register changes its value. - - @param ea: linear address where the segment register will have a new - value. if ea== BADADDR , nothing to do. (C++: ea_t) - @param rg: the number of the segment register (C++: int) - @param v: the new value of the segment register. If the value is - unknown, you should specify BADSEL . (C++: sel_t) - @param tag: the register info tag. see Segment register range tags - (C++: uchar) - @param silent: if false, display a warning() in the case of failure - (C++: bool) + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure @return: success Help on class sreg_range_t in module ida_segregs: @@ -62070,56 +77549,85 @@ class sreg_range_t(ida_range.range_t) | Data descriptors defined here: | | tag - | sreg_range_t_tag_get(self) -> uchar + | tag | | thisown | The membership flag | | val - | sreg_range_t_val_get(self) -> sel_t + | val | | ---------------------------------------------------------------------- | Methods inherited from ida_range.range_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: range_t const & | | _print(self, *args) -> 'size_t' | _print(self) -> size_t | | clear(self, *args) -> 'void' | clear(self) + | Set start_ea, end_ea to 0. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & | | contains(self, *args) -> 'bool' | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | | contains(self, r) -> bool + | + | @param r: range_t const & | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Is the size of the range_t <= 0? | | extend(self, *args) -> 'void' | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) | | intersect(self, *args) -> 'void' | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & | | overlaps(self, *args) -> 'bool' | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & | | size(self, *args) -> 'asize_t' | size(self) -> asize_t + | Get end_ea - start_ea. | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -62130,86 +77638,127 @@ class sreg_range_t(ida_range.range_t) | __weakref__ | list of weak references to the object (if defined) | - | endEA - | | end_ea - | range_t_end_ea_get(self) -> ea_t - | - | startEA + | end_ea | | start_ea - | range_t_start_ea_get(self) -> ea_t + | start_ea | | ---------------------------------------------------------------------- | Data and other attributes inherited from ida_range.range_t: | | __hash__ = None -=== ida_segregs EPYDOC INJECTIONS === -ida_segregs.SR_auto -""" -the value is determined by IDA +Module "ida_srclang"s docstring: """ +Third-party compiler support.""" -ida_segregs.SR_autostart -""" -used as 'SR_auto' for segment starting address -""" +Help on function parse_decls_for_srclang in module ida_srclang: -ida_segregs.SR_inherit -""" -the value is inherited from the previous range -""" +parse_decls_for_srclang(*args) -> 'int' + parse_decls_for_srclang(lang, til, input, is_path) -> int + Parse type declarations in the specified language + + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source -ida_segregs.SR_user +Help on function parse_decls_with_parser in module ida_srclang: + +parse_decls_with_parser(*args) -> 'int' + parse_decls_with_parser(parser_name, til, input, is_path) -> int + Parse type declarations using the parser with the specified name + + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source + +Help on function select_parser_by_name in module ida_srclang: + +select_parser_by_name(*args) -> 'bool' + select_parser_by_name(name) -> bool + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name + +Help on function select_parser_by_srclang in module ida_srclang: + +select_parser_by_srclang(*args) -> 'bool' + select_parser_by_srclang(lang) -> bool + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found + +Help on function set_parser_argv in module ida_srclang: + +set_parser_argv(*args) -> 'int' + set_parser_argv(parser_name, argv) -> int + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success + +Module "ida_strlist"s docstring: """ -the value is specified by the user -""" -=== ida_segregs EPYDOC INJECTIONS END === +Functions that deal with the string list. + +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. + +The users of this list should call build_strlist() if they need an up-to-date +version.""" + Help on function build_strlist in module ida_strlist: build_strlist(*args) -> 'void' build_strlist() - - - Build the string list. You should initialize options before this call - using the restore_config() or setup_strings_window() methods. + Rebuild the string list. Help on function clear_strlist in module ida_strlist: clear_strlist(*args) -> 'void' clear_strlist() - - Clear the string list. Help on function get_strlist_item in module ida_strlist: get_strlist_item(*args) -> 'bool' get_strlist_item(si, n) -> bool + Get nth element of the string list (n=0..get_strlist_qty()-1) - - Get nth element of the string list (n=0.. 'get_strlist_qty()' -1) - - - @param si (C++: string_info_t *) - @param n (C++: size_t) + @param si: (C++: string_info_t *) + @param n: (C++: size_t) Help on function get_strlist_options in module ida_strlist: -get_strlist_options(*args) -> 'strwinsetup_t *' +get_strlist_options(*args) -> 'strwinsetup_t const *' get_strlist_options() -> strwinsetup_t - - - Get access to the static string list options. + Get the static string list options. Help on function get_strlist_qty in module ida_strlist: get_strlist_qty(*args) -> 'size_t' get_strlist_qty() -> size_t - - - Get number of elements in the string list. + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. Help on class string_info_t in module ida_strlist: @@ -62219,11 +77768,14 @@ class string_info_t(builtins.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -62240,16 +77792,16 @@ class string_info_t(builtins.object) | list of weak references to the object (if defined) | | ea - | string_info_t_ea_get(self) -> ea_t + | ea | | length - | string_info_t_length_get(self) -> int + | length | | thisown | The membership flag | | type - | string_info_t_type_get(self) -> int + | type Help on class strwinsetup_t in module ida_strlist: @@ -62271,9 +77823,10 @@ class strwinsetup_t(builtins.object) | | _set_strtypes(self, *args) -> 'PyObject *' | _set_strtypes(self, py_t) -> PyObject * - | - | is_initialized(self, *args) -> 'bool' - | is_initialized(self) -> bool + | + | Parameters + | ---------- + | py_t: PyObject * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62285,16 +77838,16 @@ class strwinsetup_t(builtins.object) | list of weak references to the object (if defined) | | display_only_existing_strings - | strwinsetup_t_display_only_existing_strings_get(self) -> uchar + | display_only_existing_strings | | ignore_heads - | strwinsetup_t_ignore_heads_get(self) -> uchar + | ignore_heads | | minlen - | strwinsetup_t_minlen_get(self) -> sval_t + | minlen | | only_7bit - | strwinsetup_t_only_7bit_get(self) -> uchar + | only_7bit | | strtypes | _get_strtypes(self) -> PyObject * @@ -62302,548 +77855,493 @@ class strwinsetup_t(builtins.object) | thisown | The membership flag +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + Help on function add_struc in module ida_struct: add_struc(*args) -> 'tid_t' add_struc(idx, name, is_union=False) -> tid_t + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". - - Create a structure type. if idx== 'BADADDR' then add as the last idx. - if name==NULL then a name will be generated "struct_%d". - - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) Help on function add_struc_member in module ida_struct: add_struc_member(*args) -> 'struc_error_t' add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t - - Add member to existing structure. - @param sptr: structure to modify (C++: struc_t *) - @param fieldname: if NULL, then "anonymous_#" name will be generated - (C++: const char *) - @param offset: BADADDR means add to the end of structure (C++: ea_t) - @param flag: type + representation bits (C++: flags_t) - @param mt: additional info about member type. must be present for - structs, offsets, enums, strings, struct offsets. (C++: - const opinfo_t *) - @param nbytes: if == 0 then the structure will be a varstruct. in this - case the member should be the last member in the - structure (C++: asize_t) + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags64_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure Help on function del_member_tinfo in module ida_struct: del_member_tinfo(*args) -> 'bool' del_member_tinfo(sptr, mptr) -> bool - - Delete tinfo for given member. - - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) Help on function del_struc in module ida_struct: del_struc(*args) -> 'bool' del_struc(sptr) -> bool - - Delete a structure type. - - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function del_struc_member in module ida_struct: del_struc_member(*args) -> 'bool' del_struc_member(sptr, offset) -> bool - - Delete member at given offset. - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) Help on function del_struc_members in module ida_struct: del_struc_members(*args) -> 'int' del_struc_members(sptr, off1, off2) -> int - - Delete members which occupy range of offsets (off1..off2). - @param sptr (C++: struc_t *) - @param off1 (C++: ea_t) - @param off2 (C++: ea_t) + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) @return: number of deleted members or -1 on error +Help on class dyn_member_ref_array in module ida_struct: + +class dyn_member_ref_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< member_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'member_t const &' + | __getitem__(self, i) -> member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | + | @param _data: member_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: member_t const & + | + | __swig_destroy__ = delete_dyn_member_ref_array(...) + | delete_dyn_member_ref_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + Help on function expand_struc in module ida_struct: expand_struc(*args) -> 'bool' expand_struc(sptr, offset, delta, recalc=True) -> bool - - Expand/Shrink structure type. - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param delta (C++: adiff_t) - @param recalc (C++: bool) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) Help on function get_best_fit_member in module ida_struct: get_best_fit_member(*args) -> 'member_t *' get_best_fit_member(sptr, offset) -> member_t + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). - - Get member that is most likely referenced by the specified offset. - Useful for offsets > sizeof(struct). - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' get_first_struc_idx() -> uval_t - - Get index of first structure. - @return: BADADDR if no known structures, 0 otherwise + @return: BADADDR if no known structures, 0 otherwise + +Help on function get_innermost_member in module ida_struct: + +get_innermost_member(*args) -> 'PyObject *' + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) + Get the innermost member at the given offset + + @param sptr: the starting structure + @param offset: offset into the starting structure + @return: - None on failure + - tuple(member_t, struct_t, offset) + where member_t: a member in SPTR (it is not a structure), + struct_t: the innermost structure, + offset: remaining offset into the returned member Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' get_last_struc_idx() -> uval_t - - Get index of last structure. - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_max_offset in module ida_struct: get_max_offset(*args) -> 'ea_t' get_max_offset(sptr) -> ea_t + For unions: returns number of members, for structs: returns size of structure. - - For unions: returns number of members, for structs: returns size of - structure. - - - @param sptr (C++: struc_t *) + @param sptr: (C++: struc_t *) Help on function get_member in module ida_struct: get_member(*args) -> 'member_t *' get_member(sptr, offset) -> member_t - - Get member at given offset. - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_by_fullname in module ida_struct: get_member_by_fullname(*args) -> 'struc_t **' get_member_by_fullname(fullname) -> member_t - - Get a member by its fully qualified name, "struct.field". - - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_by_id in module ida_struct: get_member_by_id(*args) -> 'qstring *, struc_t **' get_member_by_id(mid) -> member_t + Check if the specified member id points to a struct member. convenience + function. - - Check if the specified member id points to a struct member. - - - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_by_name in module ida_struct: get_member_by_name(*args) -> 'member_t *' get_member_by_name(sptr, membername) -> member_t - - Get a member by its name, like "field44". - - @param sptr (C++: const struc_t *) - @param membername (C++: const char *) + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * Help on function get_member_cmt in module ida_struct: get_member_cmt(*args) -> 'qstring *' get_member_cmt(mid, repeatable) -> str - - Get comment of structure member. - - @param mid (C++: tid_t) - @param repeatable (C++: bool) + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_member_fullname in module ida_struct: get_member_fullname(*args) -> 'qstring *' get_member_fullname(mid) -> str - - Get a member's fully qualified name, "struct.field". - - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function get_member_id in module ida_struct: get_member_id(*args) -> 'tid_t' get_member_id(sptr, offset) -> tid_t - - Get member id at given offset. - - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) Help on function get_member_name in module ida_struct: get_member_name(*args) -> 'qstring *' get_member_name(mid) -> str - - Get name of structure member. - - - @param mid (C++: tid_t) + @param mid: tid_t Help on function get_member_size in module ida_struct: get_member_size(*args) -> 'asize_t' - get_member_size(nonnul_mptr) -> asize_t + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. - - Get size of structure member. May return 0 for the last member of - varstruct. For union members, returns 'member_t::eoff' . + @param NONNULL_mptr: (C++: const member_t *) member_t const * Help on function get_member_struc in module ida_struct: get_member_struc(*args) -> 'struc_t *' get_member_struc(fullname) -> struc_t - - Get containing structure of member by its full name "struct.field". - - @param fullname (C++: const char *) + @param fullname: (C++: const char *) char const * Help on function get_member_tinfo in module ida_struct: get_member_tinfo(*args) -> 'bool' get_member_tinfo(tif, mptr) -> bool - - Get tinfo for given member. - - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_next_member_idx in module ida_struct: get_next_member_idx(*args) -> 'ssize_t' get_next_member_idx(sptr, off) -> ssize_t - - Get the next member idx, if it does not exist, return -1. - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' get_next_struc_idx(idx) -> uval_t - - Get next struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_or_guess_member_tinfo in module ida_struct: get_or_guess_member_tinfo(*args) -> 'bool' get_or_guess_member_tinfo(tif, mptr) -> bool - - Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly - @param tif (C++: tinfo_t *) - @param mptr (C++: const member_t *) + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_prev_member_idx in module ida_struct: get_prev_member_idx(*args) -> 'ssize_t' get_prev_member_idx(sptr, off) -> ssize_t - - Get the prev member idx, if it does not exist, return -1. - - @param sptr (C++: const struc_t *) - @param off (C++: asize_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' get_prev_struc_idx(idx) -> uval_t - - Get previous struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_sptr in module ida_struct: get_sptr(*args) -> 'struc_t *' get_sptr(mptr) -> struc_t - - Get child struct if member is a struct. - - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function get_struc in module ida_struct: get_struc(*args) -> 'struc_t *' get_struc(id) -> struc_t - - Get pointer to struct type info. - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' get_struc_by_idx(idx) -> tid_t - - Get struct id by struct number. - - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' get_struc_cmt(id, repeatable) -> str - - Get struct comment. - - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_first_offset in module ida_struct: get_struc_first_offset(*args) -> 'ea_t' get_struc_first_offset(sptr) -> ea_t - - Get offset of first member. - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' get_struc_id(name) -> tid_t - - Get struct id by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' get_struc_idx(id) -> uval_t - - Get internal number of the structure. - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_last_offset in module ida_struct: get_struc_last_offset(*args) -> 'ea_t' get_struc_last_offset(sptr) -> ea_t - - Get offset of last member. - @param sptr (C++: const struc_t *) - @return: BADADDR if memqty == 0 + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' get_struc_name(id, flags=0) -> str - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + @param id: tid_t + @param flags: int Help on function get_struc_next_offset in module ida_struct: get_struc_next_offset(*args) -> 'ea_t' get_struc_next_offset(sptr, offset) -> ea_t - - Get offset of member with smallest offset larger than 'offset'. - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no next offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset Help on function get_struc_prev_offset in module ida_struct: get_struc_prev_offset(*args) -> 'ea_t' get_struc_prev_offset(sptr, offset) -> ea_t - - Get offset of member with largest offset less than 'offset'. - @param sptr (C++: const struc_t *) - @param offset (C++: ea_t) - @return: BADADDR if no prev offset + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' get_struc_qty() -> size_t - - Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + get_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) + @param id: tid_t Help on function is_anonymous_member_name in module ida_struct: is_anonymous_member_name(*args) -> 'bool' is_anonymous_member_name(name) -> bool - - Is member name prefixed with "anonymous"? - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_dummy_member_name in module ida_struct: is_dummy_member_name(*args) -> 'bool' is_dummy_member_name(name) -> bool - - Is member name an auto-generated name? - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function is_member_id in module ida_struct: is_member_id(*args) -> 'bool' is_member_id(mid) -> bool - - Is a member id? - - @param mid (C++: tid_t) + @param mid: (C++: tid_t) Help on function is_special_member in module ida_struct: is_special_member(*args) -> 'bool' is_special_member(id) -> bool - - Is a special member with the name beginning with ' '? - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_union in module ida_struct: is_union(*args) -> 'bool' is_union(id) -> bool - - Is a union? - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function is_varmember in module ida_struct: is_varmember(*args) -> 'bool' is_varmember(mptr) -> bool - - Is variable size member? - - @param mptr (C++: const member_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function is_varstr in module ida_struct: is_varstr(*args) -> 'bool' is_varstr(id) -> bool - - Is variable size structure? - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on class member_t in module ida_struct: @@ -62862,27 +78360,39 @@ class member_t(builtins.object) | | by_til(self, *args) -> 'bool' | by_til(self) -> bool + | Was the member created due to the type system? + | + | get_size(self, *args) -> 'asize_t' + | get_size(self) -> asize_t + | Get member size. | | get_soff(self, *args) -> 'ea_t' | get_soff(self) -> ea_t + | Get start offset (for unions - returns 0) | | has_ti(self, *args) -> 'bool' | has_ti(self) -> bool + | Has type information? | | has_union(self, *args) -> 'bool' | has_union(self) -> bool + | Has members of type "union"? | | is_baseclass(self, *args) -> 'bool' | is_baseclass(self) -> bool + | Is a base class member? | | is_destructor(self, *args) -> 'bool' | is_destructor(self) -> bool + | Is a virtual destructor? | | is_dupname(self, *args) -> 'bool' | is_dupname(self) -> bool + | Duplicate name was resolved during import? | | unimem(self, *args) -> 'bool' | unimem(self) -> bool + | Is a member of a union? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62894,19 +78404,19 @@ class member_t(builtins.object) | list of weak references to the object (if defined) | | eoff - | member_t_eoff_get(self) -> ea_t + | eoff | | flag - | member_t_flag_get(self) -> flags_t + | flag | | id - | member_t_id_get(self) -> tid_t + | id | | props - | member_t_props_get(self) -> uint32 + | props | | soff - | member_t_soff_get(self) -> ea_t + | soff | | thisown | The membership flag @@ -62915,166 +78425,128 @@ Help on function retrieve_member_info in module ida_struct: retrieve_member_info(*args) -> 'opinfo_t *' retrieve_member_info(buf, mptr) -> opinfo_t - - Get operand type info for member. - - @param buf (C++: opinfo_t *) - @param mptr (C++: const member_t *) + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * Help on function save_struc in module ida_struct: save_struc(*args) -> 'void' save_struc(sptr, may_update_ltypes=True) - - Update struct information in the database (internal function) - - @param sptr (C++: struc_t *) - @param may_update_ltypes (C++: bool) + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) Help on function set_member_cmt in module ida_struct: set_member_cmt(*args) -> 'bool' set_member_cmt(mptr, cmt, repeatable) -> bool - - Set member comment. - - @param mptr (C++: member_t *) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_member_name in module ida_struct: set_member_name(*args) -> 'bool' set_member_name(sptr, offset, name) -> bool - - Set name of member at given offset. - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param name (C++: const char *) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * Help on function set_member_tinfo in module ida_struct: set_member_tinfo(*args) -> 'smt_code_t' set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t - - Set tinfo for given member. - @param sptr: containing struct (C++: struc_t *) - @param mptr: target member (C++: member_t *) - @param memoff: offset within member (C++: uval_t) - @param tif: type info (C++: const tinfo_t &) - @param flags: Set member tinfo flags (C++: int) + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags Help on function set_member_type in module ida_struct: set_member_type(*args) -> 'bool' set_member_type(sptr, offset, flag, mt, nbytes) -> bool + Set type of member at given offset (also see add_struc_member()) - - Set type of member at given offset (also see 'add_struc_member()' ) - - - @param sptr (C++: struc_t *) - @param offset (C++: ea_t) - @param flag (C++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags64_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) Help on function set_struc_align in module ida_struct: set_struc_align(*args) -> 'bool' set_struc_align(sptr, shift) -> bool + Set structure alignment (SF_ALIGN) - - Set structure alignment ( 'SF_ALIGN' ) - - - @param sptr (C++: struc_t *) - @param shift (C++: int) + @param sptr: (C++: struc_t *) + @param shift: (C++: int) Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' set_struc_cmt(id, cmt, repeatable) -> bool - - Set structure comment. - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_hidden in module ida_struct: set_struc_hidden(*args) -> 'void' set_struc_hidden(sptr, is_hidden) - - Hide/unhide a struct type. - - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) Help on function set_struc_idx in module ida_struct: set_struc_idx(*args) -> 'bool' set_struc_idx(sptr, idx) -> bool + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). - - Set internal number of struct. Also see 'get_struc_idx()' , - 'get_struc_by_idx()' . - - @param sptr (C++: const struc_t *) - @param idx (C++: uval_t) + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) Help on function set_struc_listed in module ida_struct: set_struc_listed(*args) -> 'void' set_struc_listed(sptr, is_listed) - - Add/remove a struct type from the struct list. - - @param sptr (C++: struc_t *) - @param is_listed (C++: bool) + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' set_struc_name(id, name) -> bool - - Set structure name. - - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function stroff_as_size in module ida_struct: stroff_as_size(*args) -> 'bool' stroff_as_size(plen, sptr, value) -> bool - - Should display a structure offset expression as the structure size? - - @param plen (C++: int) - @param sptr (C++: const struc_t *) - @param value (C++: asize_t) + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) Help on class struc_t in module ida_struct: @@ -63083,6 +78555,9 @@ class struc_t(builtins.object) | | Methods defined here: | + | __get_members__(self, *args) -> 'dynamic_wrapped_array_t< member_t >' + | __get_members__(self) -> dyn_member_ref_array + | | __init__(self, *args, **kwargs) | Initialize self. See help(type(self)) for accurate signature. | @@ -63093,39 +78568,74 @@ class struc_t(builtins.object) | | from_til(self, *args) -> 'bool' | from_til(self) -> bool + | Does structure come from a type library? | | get_alignment(self, *args) -> 'int' | get_alignment(self) -> int + | See SF_ALIGN. | - | get_member(self, *args) -> 'member_t *' - | get_member(self, index) -> member_t + | get_last_member(self, *args) -> 'member_t const *' + | get_last_member(self) -> member_t + | + | get_member(self, index) | | has_union(self, *args) -> 'bool' | has_union(self) -> bool + | Has members of type "union"? | | is_choosable(self, *args) -> 'bool' | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) -> 'bool' + | is_copyof(self) -> bool + | Is copied from a local type? | | is_frame(self, *args) -> 'bool' | is_frame(self) -> bool + | Is this structure a function frame? | | is_ghost(self, *args) -> 'bool' | is_ghost(self) -> bool + | Is a ghost copy of a local type? | | is_hidden(self, *args) -> 'bool' | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) -> 'bool' + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) -> 'bool' + | is_synced(self) -> bool + | Is synced with a local type? | | is_union(self, *args) -> 'bool' | is_union(self) -> bool + | Is a union? | | is_varstr(self, *args) -> 'bool' | is_varstr(self) -> bool + | Is variable size structure? + | + | like_union(self, *args) -> 'bool' + | like_union(self) -> bool + | Is a union or contains members of type "union"? | | set_alignment(self, *args) -> 'void' | set_alignment(self, shift) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) | | set_ghost(self, *args) -> 'void' | set_ghost(self, _is_ghost) + | + | @param _is_ghost: bool + | + | unsync(self, *args) -> 'void' + | unsync(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63137,22 +78647,22 @@ class struc_t(builtins.object) | list of weak references to the object (if defined) | | age - | struc_t_age_get(self) -> ushort + | age | | id - | struc_t_id_get(self) -> tid_t + | id | | members - | struc_t_members_get(self) -> member_t + | __get_members__(self) -> dyn_member_ref_array | | memqty - | struc_t_memqty_get(self) -> uint32 + | memqty | | ordinal - | struc_t_ordinal_get(self) -> int32 + | ordinal | | props - | struc_t_props_get(self) -> uint32 + | props | | thisown | The membership flag @@ -63168,6 +78678,8 @@ class struct_field_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -63176,6 +78688,9 @@ class struct_field_visitor_t(builtins.object) | | visit_field(self, *args) -> 'int' | visit_field(self, sptr, mptr) -> int + | + | @param sptr: struc_t * + | @param mptr: member_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63192,153 +78707,39 @@ class struct_field_visitor_t(builtins.object) Help on function visit_stroff_fields in module ida_struct: visit_stroff_fields(*args) -> 'adiff_t *' - visit_stroff_fields(sfv, path, disp, appzero) -> flags_t + visit_stroff_fields(sfv, path, disp, appzero) -> flags64_t + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. - - Visit structure fields in a stroff expression or in a reference to a - struct data variable. This function can be used to enumerate all - components of an expression like 'a.b.c'. - - @param sfv: visitor object (C++: struct_field_visitor_t &) - @param path: struct path (path[0] contains the initial struct id) - (C++: const tid_t *) - @param disp: offset into structure (C++: adiff_t *) - @param appzero: should visit field at offset zero? (C++: bool) + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? -=== ida_struct EPYDOC INJECTIONS === -ida_struct.MF_BASECLASS -""" -a special member representing base class +Module "ida_tryblks"s docstring: """ +Architecture independent exception handling info. -ida_struct.MF_BYTIL -""" -the member was created due to the type system -""" +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. -ida_struct.MF_DTOR -""" -a special member representing destructor -""" +See examples in tests/input/src/eh_tests.""" -ida_struct.MF_DUPNAME -""" -duplicate name resolved with _N suffix (N==soff) -""" - -ida_struct.MF_HASTI -""" -has type information? -""" - -ida_struct.MF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.MF_OK -""" -is the member ok? (always yes) -""" - -ida_struct.MF_UNIMEM -""" -is a member of a union? -""" - -ida_struct.SET_MEMTI_BYTIL -""" -new type was created by the type subsystem -""" - -ida_struct.SET_MEMTI_COMPATIBLE -""" -new type must be compatible with the old -""" - -ida_struct.SET_MEMTI_FUNCARG -""" -mptr is function argument (cannot create arrays) -""" - -ida_struct.SET_MEMTI_MAY_DESTROY -""" -may destroy other members -""" - -ida_struct.SET_MEMTI_USERTI -""" -user-specified type -""" - -ida_struct.SF_ALIGN -""" -alignment (shift amount: 0..31) -""" - -ida_struct.SF_FRAME -""" -the structure is a function frame -""" - -ida_struct.SF_GHOST -""" -ghost copy of a local type -""" - -ida_struct.SF_HASUNI -""" -has members of type "union"? -""" - -ida_struct.SF_HIDDEN -""" -the structure is collapsed -""" - -ida_struct.SF_NOLIST -""" -don't include in the chooser list -""" - -ida_struct.SF_TYPLIB -""" -the structure comes from type library -""" - -ida_struct.SF_UNION -""" -varunions are prohibited! - -is a union? -""" - -ida_struct.SF_VAR -""" -is variable size structure (varstruct)? a variable size structure is -one with the zero size last member. if the last member is a varstruct, -then the current structure is a varstruct too. -""" - -ida_struct.STRNFL_REGEX -""" -apply regular expressions to beautify the name -""" - -ida_struct.STRUC_SEPARATOR -""" -structname.fieldname -""" -=== ida_struct EPYDOC INJECTIONS END === Help on function add_tryblk in module ida_tryblks: add_tryblk(*args) -> 'int' add_tryblk(tb) -> int - - Add one try block information. - @param tb: try block to add. (C++: const tryblk_t &) + @param tb: (C++: const tryblk_t &) try block to add. @return: error code; 0 means good Help on class catch_t in module ida_tryblks: @@ -63367,13 +78768,13 @@ class catch_t(try_handler_t) | Data descriptors defined here: | | obj - | catch_t_obj_get(self) -> sval_t + | obj | | thisown | The membership flag | | type_id - | catch_t_type_id_get(self) -> sval_t + | type_id | | ---------------------------------------------------------------------- | Methods inherited from try_handler_t: @@ -63385,19 +78786,23 @@ class catch_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63407,25 +78812,37 @@ class catch_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -63435,39 +78852,58 @@ class catch_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -63475,16 +78911,26 @@ class catch_t(try_handler_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63512,13 +78958,19 @@ class catchvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< catch_t > const & | | __getitem__(self, *args) -> 'catch_t const &' | __getitem__(self, i) -> catch_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63528,30 +78980,42 @@ class catchvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: catch_t const & | | __swig_destroy__ = delete_catchvec_t(...) | delete_catchvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: catch_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: catch_t const & | | at(self, *args) -> 'catch_t const &' | at(self, _idx) -> catch_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< catch_t >::const_iterator' | begin(self) -> catch_t - | begin(self) -> catch_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -63564,39 +79028,58 @@ class catchvec_t(builtins.object) | | end(self, *args) -> 'qvector< catch_t >::const_iterator' | end(self) -> catch_t - | end(self) -> catch_t | | erase(self, *args) -> 'qvector< catch_t >::iterator' | erase(self, it) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | | erase(self, first, last) -> catch_t + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator | | extract(self, *args) -> 'catch_t *' | extract(self) -> catch_t | | find(self, *args) -> 'qvector< catch_t >::const_iterator' | find(self, x) -> catch_t - | find(self, x) -> catch_t + | + | @param x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=catch_t()) + | + | @param x: catch_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: catch_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: catch_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< catch_t >::iterator' | insert(self, it, x) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'catch_t &' | push_back(self, x) + | + | @param x: catch_t const & + | | push_back(self) -> catch_t | | qclear(self, *args) -> 'void' @@ -63604,16 +79087,26 @@ class catchvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: catch_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< catch_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63639,37 +79132,39 @@ Help on function del_tryblks in module ida_tryblks: del_tryblks(*args) -> 'void' del_tryblks(range) - - Delete try block information in the specified range. - @param range: the range to be cleared (C++: const range_t &) + @param range: (C++: const range_t &) the range to be cleared Help on function find_syseh in module ida_tryblks: find_syseh(*args) -> 'ea_t' find_syseh(ea) -> ea_t - - Find the start address of the system eh region including the argument. - @param ea: search address (C++: ea_t) + @param ea: (C++: ea_t) search address @return: start address of surrounding tryblk, otherwise BADADDR Help on function get_tryblks in module ida_tryblks: get_tryblks(*args) -> 'size_t' get_tryblks(tbv, range) -> size_t + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. - - Retrieve try block information from the specified address range. Try - blocks are sorted by starting address and their nest levels - calculated. - - @param tbv: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change @return: number of found try blocks +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) -> 'bool' + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() + Help on class seh_t in module ida_tryblks: class seh_t(try_handler_t) @@ -63699,10 +79194,10 @@ class seh_t(try_handler_t) | Data descriptors defined here: | | filter - | seh_t_filter_get(self) -> rangevec_t + | filter | | seh_code - | seh_t_seh_code_get(self) -> ea_t + | seh_code | | thisown | The membership flag @@ -63711,19 +79206,23 @@ class seh_t(try_handler_t) | Data descriptors inherited from try_handler_t: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | ---------------------------------------------------------------------- | Methods inherited from ida_range.rangevec_base_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63733,25 +79232,37 @@ class seh_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -63761,39 +79272,58 @@ class seh_t(try_handler_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -63801,16 +79331,26 @@ class seh_t(try_handler_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63857,10 +79397,10 @@ class try_handler_t(ida_range.rangevec_t) | Data descriptors defined here: | | disp - | try_handler_t_disp_get(self) -> sval_t + | disp | | fpreg - | try_handler_t_fpreg_get(self) -> int + | fpreg | | thisown | The membership flag @@ -63870,9 +79410,13 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63882,25 +79426,37 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -63910,39 +79466,58 @@ class try_handler_t(ida_range.rangevec_t) | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -63950,16 +79525,26 @@ class try_handler_t(ida_range.rangevec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63994,6 +79579,8 @@ class tryblk_t(ida_range.rangevec_t) | __init__(self, *args) | __init__(self) -> tryblk_t | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -64031,7 +79618,7 @@ class tryblk_t(ida_range.rangevec_t) | Data descriptors defined here: | | level - | tryblk_t_level_get(self) -> uchar + | level | | thisown | The membership flag @@ -64041,9 +79628,13 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64053,64 +79644,95 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< range_t >::const_iterator' | begin(self) -> range_t - | begin(self) -> range_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t | | end(self, *args) -> 'qvector< range_t >::const_iterator' | end(self) -> range_t - | end(self) -> range_t | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator | | extract(self, *args) -> 'range_t *' | extract(self) -> range_t | | find(self, *args) -> 'qvector< range_t >::const_iterator' | find(self, x) -> range_t - | find(self, x) -> range_t + | + | @param x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | + | @param x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) + | + | @param x: range_t const & + | | push_back(self) -> range_t | | qclear(self, *args) -> 'void' @@ -64118,16 +79740,26 @@ class tryblk_t(ida_range.rangevec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64155,13 +79787,19 @@ class tryblks_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & | | __getitem__(self, *args) -> 'tryblk_t const &' | __getitem__(self, i) -> tryblk_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64171,30 +79809,42 @@ class tryblks_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tryblk_t const & | | __swig_destroy__ = delete_tryblks_t(...) | delete_tryblks_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: tryblk_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: tryblk_t const & | | at(self, *args) -> 'tryblk_t const &' | at(self, _idx) -> tryblk_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< tryblk_t >::const_iterator' | begin(self) -> tryblk_t - | begin(self) -> tryblk_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -64207,39 +79857,58 @@ class tryblks_t(builtins.object) | | end(self, *args) -> 'qvector< tryblk_t >::const_iterator' | end(self) -> tryblk_t - | end(self) -> tryblk_t | | erase(self, *args) -> 'qvector< tryblk_t >::iterator' | erase(self, it) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | | erase(self, first, last) -> tryblk_t + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator | | extract(self, *args) -> 'tryblk_t *' | extract(self) -> tryblk_t | | find(self, *args) -> 'qvector< tryblk_t >::const_iterator' | find(self, x) -> tryblk_t - | find(self, x) -> tryblk_t + | + | @param x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=tryblk_t()) + | + | @param x: tryblk_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: tryblk_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: tryblk_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< tryblk_t >::iterator' | insert(self, it, x) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tryblk_t &' | push_back(self, x) + | + | @param x: tryblk_t const & + | | push_back(self) -> tryblk_t | | qclear(self, *args) -> 'void' @@ -64247,16 +79916,26 @@ class tryblks_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tryblk_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< tryblk_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64278,80 +79957,72 @@ class tryblks_t(builtins.object) | | __hash__ = None -=== ida_tryblks EPYDOC INJECTIONS === -ida_tryblks.TBERR_EMPTY -""" -empty try block +Module "ida_typeinf"s docstring: """ +Describes the type information records in IDA. -ida_tryblks.TBERR_END -""" -bad end address -""" +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. -ida_tryblks.TBERR_INTERSECT -""" -range would intersect inner tryblk -""" +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. -ida_tryblks.TBERR_KIND -""" -illegal try block kind -""" +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" -ida_tryblks.TBERR_NO_CATCHES -""" -no catch blocks at all -""" +Help on function f in module ida_idaapi: -ida_tryblks.TBERR_OK -""" -ok -""" +f() -ida_tryblks.TBERR_ORDER -""" -bad address order -""" +Help on swigvarlink object: + +<class 'swigvarlink'> +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(builtins.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | Implement setattr(self, name, value). + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) -ida_tryblks.TBERR_START -""" -bad start address -""" -=== ida_tryblks EPYDOC INJECTIONS END === Help on function add_til in module ida_typeinf: add_til(*args) -> 'int' add_til(name, flags) -> int + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. - - Load a til file. - - @param name: til name (C++: const char *) - @param flags: combination of Load TIL flags (C++: int) - @return: one of Load TIL result codes + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes Help on function alloc_type_ordinal in module ida_typeinf: alloc_type_ordinal(*args) -> 'uint32' alloc_type_ordinal(ti) -> uint32 + alloc_type_ordinals(ti, 1) - - \call2{alloc_type_ordinals,ti,1} - - - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function alloc_type_ordinals in module ida_typeinf: alloc_type_ordinals(*args) -> 'uint32' alloc_type_ordinals(ti, qty) -> uint32 - - Allocate a range of ordinal numbers for new types. - @param ti: type library (C++: til_t *) - @param qty: number of ordinals to allocate (C++: int) + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate @return: the first ordinal. 0 means failure. Help on class aloc_visitor_t in module ida_typeinf: @@ -64365,6 +80036,8 @@ class aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -64373,6 +80046,10 @@ class aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64390,141 +80067,121 @@ Help on function append_abi_opts in module ida_typeinf: append_abi_opts(*args) -> 'bool' append_abi_opts(abi_opts, user_level=False) -> bool + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... - - Add/remove/check ABI option General form of full abi name: abiname- - opt1-opt2-... or -opt1-opt2-... - - @param abi_opts: - ABI options to add/remove in form opt1-opt2-... - (C++: const char *) - @param user_level: - initiated by user if TRUE (==SETCOMP_BY_USER) - (C++: bool) + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) @return: success Help on function append_argloc in module ida_typeinf: append_argloc(*args) -> 'bool' append_argloc(out, vloc) -> bool + Serialize argument location - - Serialize argument location. - - - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) -> 'bool' append_tinfo_covered(out, typid, offset) -> bool + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 Help on function apply_callee_tinfo in module ida_typeinf: apply_callee_tinfo(*args) -> 'bool' apply_callee_tinfo(caller, tif) -> bool + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. - - Apply the type of the called function to the calling instruction. This - function will append parameter comments and rename the local variables - of the calling function. It also stores information about the - instructions that initialize call arguments in the database. Use - 'get_arg_addrs()' to retrieve it if necessary. Alternatively it is - possible to hook to processor_t::arg_addrs_ready event. - - @param caller: linear address of the calling instruction. must belong - to a function. (C++: ea_t) - @param tif: type info (C++: const tinfo_t &) + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info @return: success Help on function apply_cdecl in module ida_typeinf: apply_cdecl(*args) -> 'bool' apply_cdecl(til, ea, decl, flags=0) -> bool + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() - - Apply the specified type to the address. This function parses the - declaration and calls 'apply_tinfo()' - - @param til: type library (C++: til_t *) - @param ea: linear address (C++: ea_t) - @param decl: type declaration in C form (C++: const char *) - @param flags: flags to pass to apply_tinfo ( TINFO_DEFINITE is always - passed) (C++: int) + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) @return: success Help on function apply_named_type in module ida_typeinf: apply_named_type(*args) -> 'bool' apply_named_type(ea, name) -> bool - - Apply the specified named type to the address. - @param ea: linear address (C++: ea_t) - @param name: the type name, e.g. "FILE" (C++: const char *) + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" @return: success Help on function apply_once_tinfo_and_name in module ida_typeinf: apply_once_tinfo_and_name(*args) -> 'bool' apply_once_tinfo_and_name(dea, tif, name) -> bool + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. - - Apply the specified type and name to the address. This function checks - if the address already has a type. If the old typedoes not exist or - the new type is 'better' than the old type, then thenew type will be - applied. A type is considered better if it has moreinformation (e.g. - 'BTMT_STRUCT' is better than 'BT_INT' ).The same logic is with the - name: if the address already have a meaningfulname, it will be - preserved. Only if the old name does not exist or itis a dummy name - like byte_123, it will be replaced by the new name. - - @param dea: linear address (C++: ea_t) - @param tif: type string in the internal format (C++: const tinfo_t - &) - @param name: new name for the address (C++: const char *) + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address @return: success Help on function apply_tinfo in module ida_typeinf: apply_tinfo(*args) -> 'bool' apply_tinfo(ea, tif, flags) -> bool + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. - - Apply the specified type to the specified address. This function sets - the type and tries to convert the item at the specified address to - conform the type. - - @param ea: linear address (C++: ea_t) - @param tif: type string in internal format (C++: const tinfo_t &) - @param flags: combination of Apply tinfo flags (C++: uint32) + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags @return: success Help on function apply_tinfo_to_stkarg in module ida_typeinf: apply_tinfo_to_stkarg(*args) -> 'bool' apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool - - Helper function for the processor modules. to be called from - \ph{use_stkarg_type} + processor_t::use_stkarg_type - @param insn (C++: const insn_t &) - @param x (C++: const op_t &) - @param v (C++: uval_t) - @param tif (C++: const tinfo_t &) - @param name (C++: const char *) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * Help on function apply_type in module ida_typeinf: apply_type(*args) -> 'bool' - apply_type(ti, _type, _fields, ea, flags) -> bool - - + apply_type(ti, type, fields, ea, flags) -> bool Apply the specified type to the address + @param ti: Type info library. 'None' can be used. - @param py_type: type string - @param py_fields: fields string (may be empty or None) + @param type: type_t const * + @param fields: p_list const * @param ea: the address of the object @param flags: combination of TINFO_... constants or 0 @return: Boolean @@ -64538,25 +80195,39 @@ class argloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: argloc_t const & | | __repr__ = _swig_repr(self) | @@ -64565,143 +80236,244 @@ class argloc_t(builtins.object) | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg1(self, *args) -> 'int' | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64734,10 +80506,15 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t + | + | @param a: argloc_t const & + | | __init__(self) -> argpart_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: argpart_t const & | | __repr__ = _swig_repr(self) | @@ -64746,21 +80523,26 @@ class argpart_t(argloc_t) | | bad_offset(self, *args) -> 'bool' | bad_offset(self) -> bool + | Does this argpart have a valid offset? | | bad_size(self, *args) -> 'bool' | bad_size(self) -> bool + | Does this argpart have a valid size? | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | off - | argpart_t_off_get(self) -> ushort + | off | | size - | argpart_t_size_get(self) -> ushort + | size | | thisown | The membership flag @@ -64770,155 +80552,263 @@ class argpart_t(argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: argloc_t const & | | _consume_rrel(self, *args) -> 'bool' | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * | | _consume_scattered(self, *args) -> 'bool' | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * | | _set_badloc(self, *args) -> 'void' | _set_badloc(self) | | _set_biggest(self, *args) -> 'void' | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t | | _set_custom(self, *args) -> 'void' | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * | | _set_ea(self, *args) -> 'void' | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int | | _set_reg2(self, *args) -> 'void' | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int | | _set_stkoff(self, *args) -> 'void' | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t | | advance(self, *args) -> 'bool' | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) | | atype(self, *args) -> 'argloc_type_t' | atype(self) -> argloc_type_t + | Get type (Argument location types) | | calc_offset(self, *args) -> 'sval_t' | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: argloc_t const & | | consume_rrel(self, *args) -> 'void' | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & | | get_biggest(self, *args) -> 'argloc_t::biggest_t' | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) -> 'void *' | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM | | get_ea(self, *args) -> 'ea_t' | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC | | get_reginfo(self, *args) -> 'uint32' | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | get_rrel(self, *args) -> 'rrel_t const &' | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL | | has_reg(self, *args) -> 'bool' | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) -> 'bool' | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. | | is_badloc(self, *args) -> 'bool' | is_badloc(self) -> bool + | See ALOC_NONE. | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool + | See ALOC_CUSTOM. | | is_ea(self, *args) -> 'bool' | is_ea(self) -> bool + | See ALOC_STATIC. | | is_fragmented(self, *args) -> 'bool' | is_fragmented(self) -> bool + | is_scattered() || is_reg2() | | is_mixed_scattered(self, *args) -> 'bool' | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool + | is_reg1() || is_reg2() | | is_reg1(self, *args) -> 'bool' | is_reg1(self) -> bool + | See ALOC_REG1. | | is_reg2(self, *args) -> 'bool' | is_reg2(self) -> bool + | See ALOC_REG2. | | is_rrel(self, *args) -> 'bool' | is_rrel(self) -> bool + | See ALOC_RREL. | | is_scattered(self, *args) -> 'bool' | is_scattered(self) -> bool + | See ALOC_DIST. | | is_stkoff(self, *args) -> 'bool' | is_stkoff(self) -> bool - | - | justify_reg_high(self, *args) -> 'void' - | justify_reg_high(self, size, _slotsize) - | - | justify_stkoff_right(self, *args) -> 'void' - | justify_stkoff_right(self, size, _slotsize) + | See ALOC_STACK. | | reg1(self, *args) -> 'int' | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 | | reg2(self, *args) -> 'int' | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 | | regoff(self, *args) -> 'int' | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 | | scattered(self, *args) -> 'scattered_aloc_t const &' | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST | | set_badloc(self, *args) -> 'void' | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) -> 'void' | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) | | set_reg1(self, *args) -> 'void' | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) | | set_reg2(self, *args) -> 'void' | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) | | stkoff(self, *args) -> 'sval_t' | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -64943,13 +80833,19 @@ class argpartvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64959,30 +80855,42 @@ class argpartvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & | | __swig_destroy__ = delete_argpartvec_t(...) | delete_argpartvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -64995,39 +80903,58 @@ class argpartvec_t(builtins.object) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | find(self, x) -> argpart_t + | + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) + | + | @param x: argpart_t const & + | | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' @@ -65035,16 +80962,26 @@ class argpartvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65066,6 +81003,75 @@ class argpartvec_t(builtins.object) | | __hash__ = None +Help on class argtinfo_helper_t in module ida_typeinf: + +class argtinfo_helper_t(builtins.object) + | Proxy of C++ argtinfo_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> argtinfo_helper_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argtinfo_helper_t(...) + | delete_argtinfo_helper_t(self) + | + | has_delay_slot(self, *args) -> 'bool' + | has_delay_slot(self, arg0) -> bool + | The call instruction with a delay slot?. + | + | @param arg0: ea_t + | + | is_stkarg_load(self, *args) -> 'bool' + | is_stkarg_load(self, insn, src, dst) -> bool + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) + | + | set_op_tinfo(self, *args) -> 'bool' + | set_op_tinfo(self, insn, x, tif, name) -> bool + | Set the operand type as specified. + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | + | use_arg_tinfos(self, *args) -> 'void' + | use_arg_tinfos(self, caller, fti, rargs) + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag + Help on class array_type_data_t in module ida_typeinf: class array_type_data_t(builtins.object) @@ -65075,6 +81081,9 @@ class array_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t + | + | @param b: size_t + | @param n: size_t | | __repr__ = _swig_repr(self) | @@ -65083,6 +81092,9 @@ class array_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | set this = r and r = this + | + | @param r: (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65094,13 +81106,13 @@ class array_type_data_t(builtins.object) | list of weak references to the object (if defined) | | base - | array_type_data_t_base_get(self) -> uint32 + | base | | elem_type - | array_type_data_t_elem_type_get(self) -> tinfo_t + | elem_type | | nelems - | array_type_data_t_nelems_get(self) -> uint32 + | nelems | | thisown | The membership flag @@ -65109,13 +81121,10 @@ Help on function begin_type_updating in module ida_typeinf: begin_type_updating(*args) -> 'void' begin_type_updating(utp) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() - - Mark the beginning of a large update operation on the types. Can be - used with 'add_enum_member()' , add_struc_member, etc... Also see - 'end_type_updating()' - - @param utp (C++: update_type_t) + @param utp: (C++: update_type_t) enum update_type_t Help on class bitfield_type_data_t in module ida_typeinf: @@ -65126,24 +81135,40 @@ class bitfield_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -65152,9 +81177,13 @@ class bitfield_type_data_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: bitfield_type_data_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: bitfield_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65166,16 +81195,16 @@ class bitfield_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_unsigned - | bitfield_type_data_t_is_unsigned_get(self) -> bool + | is_unsigned | | nbytes - | bitfield_type_data_t_nbytes_get(self) -> uchar + | nbytes | | thisown | The membership flag | | width - | bitfield_type_data_t_width_get(self) -> uchar + | width | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -65186,45 +81215,42 @@ Help on function calc_c_cpp_name in module ida_typeinf: calc_c_cpp_name(*args) -> 'qstring *' calc_c_cpp_name(name, type, ccn_flags) -> str - - Get C or C++ form of the name. - @param name: original (mangled or decorated) name (C++: const char *) - @param type: name type if known, otherwise NULL (C++: const tinfo_t - *) - @param ccn_flags: one of C/C++ naming flags (C++: int) + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags Help on function calc_number_of_children in module ida_typeinf: calc_number_of_children(*args) -> 'int' calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). - - Calculate max number of lines of a formatted c data, when expanded ( - 'PTV_EXPAND' ). - - @param loc: location of the data ( ALOC_STATIC or ALOC_CUSTOM ) - (C++: const argloc_t &) - @param tif: type info (C++: const tinfo_t &) - @param dont_deref_ptr: consider 'ea' as the ptr value (C++: bool) + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines Help on function calc_tinfo_gaps in module ida_typeinf: calc_tinfo_gaps(*args) -> 'bool' calc_tinfo_gaps(out, typid) -> bool + + @param out: rangeset_t * + @param typid: uint32 Help on function calc_type_size in module ida_typeinf: calc_type_size(*args) -> 'PyObject *' calc_type_size(ti, tp) -> PyObject * - - Returns the size of a type + @param ti: Type info. 'None' can be passed. @param tp: type string - @return: - - None on failure + @return: - None on failure - The size of the type Help on class callregs_t in module ida_typeinf: @@ -65237,29 +81263,52 @@ class callregs_t(builtins.object) | __init__(self, *args) | __init__(self) -> callregs_t | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_callregs_t(...) | delete_callregs_t(self) | + | by_slots(self, *args) -> 'bool' + | by_slots(self) -> bool + | | init_regs(self, *args) -> 'void' | init_regs(self, cc) + | Init policy & registers for given CC. + | + | @param cc: (C++: cm_t) | | reginds(self, *args) -> 'bool' | reginds(self, gp_ind, fp_ind, r) -> bool + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) | | reset(self, *args) -> 'void' | reset(self) + | Set policy and registers to invalid values. | | set(self, *args) -> 'void' | set(self, _policy, gprs, fprs) + | Init policy & registers (arrays are -1-terminated) + | + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) -> 'int' | regcount(cc) -> int + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65271,16 +81320,16 @@ class callregs_t(builtins.object) | list of weak references to the object (if defined) | | fpregs - | callregs_t_fpregs_get(self) -> intvec_t * + | fpregs | | gpregs - | callregs_t_gpregs_get(self) -> intvec_t * + | gpregs | | nregs - | callregs_t_nregs_get(self) -> int + | nregs | | policy - | callregs_t_policy_get(self) -> argreg_policy_t + | policy | | thisown | The membership flag @@ -65289,80 +81338,74 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) -> 'int' callregs_t_regcount(cc) -> int + + @param cc: cm_t Help on function choose_local_tinfo in module ida_typeinf: choose_local_tinfo(*args) -> 'uint32' choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 - - Choose a type from the local type library. - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_local_tinfo_and_delta in module ida_typeinf: choose_local_tinfo_and_delta(*args) -> 'uint32' choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + Choose a type from the local type library and specify the pointer shift value. - - Choose a type from the local type library and specify the pointer - shift value. - - @param delta: pointer shift value (C++: int32 *) - @param ti: pointer to til (C++: const til_t *) - @param title: title of listbox to display (C++: const char *) - @param func: predicate to select types to display (maybe NULL) (C++: - local_tinfo_predicate_t *) - @param def_ord: ordinal to position cursor before choose (C++: uint32) - @param ud: user data (C++: void *) + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data @return: == 0 means nothing is chosen, otherwise an ordinal number Help on function choose_named_type in module ida_typeinf: choose_named_type(*args) -> 'bool' choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool - - Choose a type from a type library. - @param out_sym: pointer to be filled with the chosen type (C++: - til_symbol_t *) - @param root_til: pointer to starting til (the function will inspect - the base tils if allowed by flags) (C++: const til_t - *) - @param title: title of listbox to display (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) - @param predicate: predicate to select types to display (maybe NULL) - (C++: predicate_t *) + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) @return: false if nothing is chosen, otherwise true Help on function clear_tinfo_t in module ida_typeinf: clear_tinfo_t(*args) -> 'void' clear_tinfo_t(_this) + + @param _this: tinfo_t * Help on function compact_til in module ida_typeinf: compact_til(*args) -> 'bool' compact_til(ti) -> bool - - Collect garbage in til. Must be called before storing the til. - @param ti (C++: til_t *) + @param ti: (C++: til_t *) @return: true if any memory was freed Help on function compare_tinfo in module ida_typeinf: compare_tinfo(*args) -> 'bool' compare_tinfo(t1, t2, tcflags) -> bool + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -65375,6 +81418,8 @@ class const_aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -65383,6 +81428,10 @@ class const_aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t const & + | @param off: int + | @param size: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65400,149 +81449,153 @@ Help on function convert_pt_flags_to_hti in module ida_typeinf: convert_pt_flags_to_hti(*args) -> 'int' convert_pt_flags_to_hti(pt_flags) -> int + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) - - Convert 'Type parsing flags' to 'Type formatting flags' . Type parsing - flags lesser than 0x10 don't have stable meaning and will be ignored - (more on these flags can be seen in idc.idc) - - @param pt_flags (C++: int) + @param pt_flags: (C++: int) Help on function copy_named_type in module ida_typeinf: copy_named_type(*args) -> 'uint32' copy_named_type(dsttil, srctil, name) -> uint32 + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. - - Copy a named type from one til to another. This function will copy the - specified type and all dependent types from the source type library to - the destination library. - - @param dsttil: Destination til. It must have orginal types enabled - (C++: til_t *) - @param srctil: Source til. (C++: const til_t *) - @param name: name of the type to copy (C++: const char *) + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy @return: ordinal number of the copied type. 0 means error Help on function copy_tinfo_t in module ida_typeinf: copy_tinfo_t(*args) -> 'void' copy_tinfo_t(_this, r) + + @param _this: tinfo_t * + @param r: tinfo_t const & Help on function create_numbered_type_name in module ida_typeinf: create_numbered_type_name(*args) -> 'qstring *' create_numbered_type_name(ord) -> str + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length - - Create anonymous name for numbered type. This name can be used to - reference a numbered type by its ordinal Ordinal names have the - following format: '#' + set_de(ord) Returns: -1 if error, otherwise - the name length - - @param ord (C++: int32) + @param ord: (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) -> 'bool' create_tinfo(_this, bt, bt2, ptr) -> bool + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * Help on function default_compiler in module ida_typeinf: default_compiler(*args) -> 'comp_t' default_compiler() -> comp_t - - - Get compiler specified by \varmem{inf,idainfo,cc}. + Get compiler specified by inf.cc. Help on function del_named_type in module ida_typeinf: del_named_type(*args) -> 'bool' del_named_type(ti, name, ntf_flags) -> bool - - Delete information about a symbol. - @param ti: type library (C++: til_t *) - @param name: name of symbol (C++: const char *) - @param ntf_flags: combination of Flags for named types (C++: int) + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types @return: success Help on function del_numbered_type in module ida_typeinf: del_numbered_type(*args) -> 'bool' del_numbered_type(ti, ordinal) -> bool - - Delete a numbered type. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) Help on function del_til in module ida_typeinf: del_til(*args) -> 'bool' del_til(name) -> bool - - Unload a til file. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) -> 'bool' del_tinfo_attr(tif, key, make_copy) -> bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool + +Help on function del_vftable_ea in module ida_typeinf: + +del_vftable_ea(*args) -> 'bool' + del_vftable_ea(ordinal) -> bool + Delete the address of a vftable instance for a vftable type. + + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success Help on function deref_ptr in module ida_typeinf: deref_ptr(*args) -> 'bool' deref_ptr(ptr_ea, tif, closure_obj=None) -> bool - - Dereference a pointer. - @param ptr_ea: in/out parameter in: address of the pointer out: - the pointed address (C++: ea_t *) - @param tif: type of the pointer (C++: const tinfo_t &) - @param closure_obj: closure object (not used yet) (C++: ea_t *) + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) @return: success Help on function deserialize_tinfo in module ida_typeinf: deserialize_tinfo(*args) -> 'bool' deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) -> 'char const *' dstr_tinfo(tif) -> char const * + + @param tif: tinfo_t const * Help on function dump_func_type_data in module ida_typeinf: dump_func_type_data(*args) -> 'qstring *' dump_func_type_data(fti, praloc_bits) -> str + Use func_type_data_t::dump() - - Use 'func_type_data_t::dump()' - - - @param fti (C++: const func_type_data_t &) - @param praloc_bits (C++: int) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) Help on function end_type_updating in module ida_typeinf: end_type_updating(*args) -> 'void' end_type_updating(utp) - - Mark the end of a large update operation on the types (see - 'begin_type_updating()' ) + begin_type_updating()) - - @param utp (C++: update_type_t) + @param utp: (C++: update_type_t) enum update_type_t Help on class enum_member_t in module ida_typeinf: @@ -65553,12 +81606,16 @@ class enum_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: enum_member_t const & | | __repr__ = _swig_repr(self) | @@ -65567,6 +81624,8 @@ class enum_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: enum_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65578,16 +81637,16 @@ class enum_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | enum_member_t_cmt_get(self) -> qstring * + | cmt | | name - | enum_member_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | value - | enum_member_t_value_get(self) -> uint64 + | value | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -65603,13 +81662,19 @@ class enum_member_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65619,30 +81684,42 @@ class enum_member_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & | | __swig_destroy__ = delete_enum_member_vec_t(...) | delete_enum_member_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65655,39 +81732,58 @@ class enum_member_vec_t(builtins.object) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) + | + | @param x: enum_member_t const & + | | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' @@ -65695,16 +81791,26 @@ class enum_member_vec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< enum_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65740,6 +81846,8 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | + | @param _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -65769,18 +81877,21 @@ class enum_type_data_t(enum_member_vec_t) | | swap(self, *args) -> 'void' | swap(self, r) + | swap two instances + | + | @param r: (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | bte - | enum_type_data_t_bte_get(self) -> bte_t + | bte | | group_sizes - | enum_type_data_t_group_sizes_get(self) -> intvec_t * + | group_sizes | | taenum_bits - | enum_type_data_t_taenum_bits_get(self) -> uint32 + | taenum_bits | | thisown | The membership flag @@ -65790,9 +81901,13 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65802,25 +81917,37 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' | begin(self) -> enum_member_t - | begin(self) -> enum_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -65833,39 +81960,58 @@ class enum_type_data_t(enum_member_vec_t) | | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' | end(self) -> enum_member_t - | end(self) -> enum_member_t | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator | | extract(self, *args) -> 'enum_member_t *' | extract(self) -> enum_member_t | | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' | find(self, x) -> enum_member_t - | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) + | + | @param x: enum_member_t const & + | | push_back(self) -> enum_member_t | | qclear(self, *args) -> 'void' @@ -65873,10 +82019,18 @@ class enum_type_data_t(enum_member_vec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -65901,84 +82055,77 @@ class enum_type_data_t(enum_member_vec_t) Help on function extract_argloc in module ida_typeinf: extract_argloc(*args) -> 'bool' - extract_argloc(vloc, ptype, is_retval) -> bool + extract_argloc(vloc, ptype, forbid_stkoff) -> bool + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack - - Deserialize argument location. - - - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param is_retval (C++: bool) + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) Help on function find_tinfo_udt_member in module ida_typeinf: find_tinfo_udt_member(*args) -> 'int' find_tinfo_udt_member(udm, typid, strmem_flags) -> int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int Help on function first_named_type in module ida_typeinf: first_named_type(*args) -> 'char const *' first_named_type(ti, ntf_flags) -> char const * + Enumerate types. - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param ntf_flags (C++: int) + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. Help on function for_all_arglocs in module ida_typeinf: for_all_arglocs(*args) -> 'int' for_all_arglocs(vv, vloc, size, off=0) -> int - - Compress larger argloc types and initiate the aloc visitor. - - @param vv (C++: aloc_visitor_t &) - @param vloc (C++: argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) Help on function for_all_const_arglocs in module ida_typeinf: for_all_const_arglocs(*args) -> 'int' for_all_const_arglocs(vv, vloc, size, off=0) -> int + See for_all_arglocs() - - See 'for_all_arglocs()' - - - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) Help on function free_til in module ida_typeinf: free_til(*args) -> 'void' free_til(ti) - - Free memory allocated by til. - - @param ti (C++: til_t *) + @param ti: (C++: til_t *) Help on function func_has_stkframe_hole in module ida_typeinf: func_has_stkframe_hole(*args) -> 'bool' func_has_stkframe_hole(ea, fti) -> bool + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. - - Looks for a hole at the beginning of the stack arguments. Will make - use of the IDB's 'func_t' function at that place (if present) to help - determine the presence of such a hole. - - @param ea (C++: ea_t) - @param fti (C++: const func_type_data_t &) + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & Help on class func_type_data_t in module ida_typeinf: @@ -66002,12 +82149,33 @@ class func_type_data_t(funcargvec_t) | | dump(self, *args) -> 'bool' | dump(self, praloc_bits=0x02) -> bool + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) | | get_call_method(self, *args) -> 'int' | get_call_method(self) -> int | | guess_cc(self, *args) -> 'cm_t' | guess_cc(self, purged, cc_flags) -> cm_t + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | + | is_ctor(self, *args) -> 'bool' + | is_ctor(self) -> bool + | + | is_dtor(self, *args) -> 'bool' + | is_dtor(self) -> bool + | + | is_golang_cc(self, *args) -> 'bool' + | is_golang_cc(self) -> bool | | is_high(self, *args) -> 'bool' | is_high(self) -> bool @@ -66018,32 +82186,40 @@ class func_type_data_t(funcargvec_t) | is_pure(self, *args) -> 'bool' | is_pure(self) -> bool | + | is_static(self, *args) -> 'bool' + | is_static(self) -> bool + | | is_vararg_cc(self, *args) -> 'bool' | is_vararg_cc(self) -> bool | + | is_virtual(self, *args) -> 'bool' + | is_virtual(self) -> bool + | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: func_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | cc - | func_type_data_t_cc_get(self) -> cm_t + | cc | | flags - | func_type_data_t_flags_get(self) -> int + | flags | | retloc - | func_type_data_t_retloc_get(self) -> argloc_t + | retloc | | rettype - | func_type_data_t_rettype_get(self) -> tinfo_t + | rettype | | spoiled - | func_type_data_t_spoiled_get(self) -> reginfovec_t + | spoiled | | stkargs - | func_type_data_t_stkargs_get(self) -> uval_t + | stkargs | | thisown | The membership flag @@ -66053,9 +82229,13 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66065,25 +82245,37 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66096,39 +82288,58 @@ class func_type_data_t(funcargvec_t) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) + | + | @param x: funcarg_t const & + | | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' @@ -66136,10 +82347,18 @@ class func_type_data_t(funcargvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -66170,12 +82389,16 @@ class funcarg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -66192,22 +82415,22 @@ class funcarg_t(builtins.object) | list of weak references to the object (if defined) | | argloc - | funcarg_t_argloc_get(self) -> argloc_t + | argloc | | cmt - | funcarg_t_cmt_get(self) -> qstring * + | cmt | | flags - | funcarg_t_flags_get(self) -> uint32 + | flags | | name - | funcarg_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | funcarg_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -66223,13 +82446,19 @@ class funcargvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66239,30 +82468,42 @@ class funcargvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & | | __swig_destroy__ = delete_funcargvec_t(...) | delete_funcargvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' | begin(self) -> funcarg_t - | begin(self) -> funcarg_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -66275,39 +82516,58 @@ class funcargvec_t(builtins.object) | | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' | end(self) -> funcarg_t - | end(self) -> funcarg_t | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator | | extract(self, *args) -> 'funcarg_t *' | extract(self) -> funcarg_t | | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' | find(self, x) -> funcarg_t - | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) + | + | @param x: funcarg_t const & + | | push_back(self) -> funcarg_t | | qclear(self, *args) -> 'void' @@ -66315,16 +82575,26 @@ class funcargvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< funcarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66350,46 +82620,46 @@ Help on function gcc_layout in module ida_typeinf: gcc_layout(*args) -> 'bool' gcc_layout() -> bool - - Should use the struct/union layout as done by gcc? Help on function gen_decorate_name in module ida_typeinf: gen_decorate_name(*args) -> 'qstring *' gen_decorate_name(name, mangle, cc, type) -> str + Generic function for decorate_name() (may be used in IDP modules) - - Generic function for 'decorate_name()' (may be used in IDP modules) - - - @param name (C++: const char *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * Help on function gen_use_arg_tinfos in module ida_typeinf: gen_use_arg_tinfos(*args) -> 'void' gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * + +Help on function gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) -> 'void' + gen_use_arg_tinfos2(_this, caller, fti, rargs) + Do not call this function directly, use argtinfo_helper_t. - The main function using these callbacks: - - - @param caller (C++: ea_t) - @param fti (C++: func_type_data_t *) - @param rargs (C++: funcargvec_t *) - @param set_optype (C++: set_op_tinfo_t *) - @param is_stkarg_load (C++: is_stkarg_load_t *) - @param has_delay_slot (C++: has_delay_slot_t *) + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) Help on function get_abi_name in module ida_typeinf: get_abi_name(*args) -> 'qstring *' get_abi_name() -> str - - Get ABI name. @return: length of the name (>=0) @@ -66398,20 +82668,16 @@ Help on function get_alias_target in module ida_typeinf: get_alias_target(*args) -> 'uint32' get_alias_target(ti, ordinal) -> uint32 + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. - - Find the final alias destination. If the ordinal has not been aliased, - return the specified ordinal itself If failed, returns 0. - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_arg_addrs in module ida_typeinf: get_arg_addrs(*args) -> 'PyObject *' get_arg_addrs(caller) -> PyObject * - - Retrieve addresses of argument initialization instructions @param caller: the address of the call instruction @@ -66421,288 +82687,292 @@ Help on function get_base_type in module ida_typeinf: get_base_type(*args) -> 'type_t' get_base_type(t) -> type_t + Get get basic type bits (TYPE_BASE_MASK) - - Get get basic type bits ( 'TYPE_BASE_MASK' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function get_c_header_path in module ida_typeinf: get_c_header_path(*args) -> 'qstring *' get_c_header_path() -> str - - Get the include directory path of the target compiler. Help on function get_c_macros in module ida_typeinf: get_c_macros(*args) -> 'qstring *' get_c_macros() -> str - - Get predefined macros for the target compiler. Help on function get_comp in module ida_typeinf: get_comp(*args) -> 'comp_t' get_comp(comp) -> comp_t - - Get compiler bits. - - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function get_compiler_abbr in module ida_typeinf: get_compiler_abbr(*args) -> 'char const *' get_compiler_abbr(id) -> char const * - - Get abbreviated compiler name. - - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compiler_name in module ida_typeinf: get_compiler_name(*args) -> 'char const *' get_compiler_name(id) -> char const * - - Get full compiler name. - - @param id (C++: comp_t) + @param id: (C++: comp_t) Help on function get_compilers in module ida_typeinf: get_compilers(*args) -> 'void' get_compilers(ids, names, abbrs) - - Get names of all built-in compilers. - - @param ids (C++: compvec_t *) - @param names (C++: qstrvec_t *) - @param abbrs (C++: qstrvec_t *) + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) Help on function get_enum_member_expr in module ida_typeinf: get_enum_member_expr(*args) -> 'qstring *' get_enum_member_expr(tif, serial, value) -> str + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. - - Return a C expression that can be used to represent an enum member. If - the value does not correspond to any single enum member, this function - tries to find a bitwise combination of enum members that correspond to - it. If more than half of value bits do not match any enum members, it - fails. - - @param tif: enumeration type (C++: const tinfo_t &) - @param serial: which enumeration member to use (0 means the first with - the given value) (C++: int) - @param value: value to search in the enumeration type. only 32-bit - number can be handled yet (C++: uint64) + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet @return: success Help on function get_full_type in module ida_typeinf: get_full_type(*args) -> 'type_t' get_full_type(t) -> type_t + Get basic type bits + type flags (TYPE_FULL_MASK) + @param t: (C++: type_t) + +Help on function get_idainfo64_by_type in module ida_typeinf: + +get_idainfo64_by_type(*args) -> 'size_t *, opinfo_t *, size_t *' + get_idainfo64_by_type(out_flags, tif) -> bool + Extract information from a tinfo_t. - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - - - @param t (C++: type_t) + @param out_flags: (C++: flags64_t *) description of type using flags64_t + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idainfo_by_type in module ida_typeinf: get_idainfo_by_type(*args) -> 'size_t *, flags_t *, opinfo_t *, size_t *' get_idainfo_by_type(tif) -> bool + Extract information from a tinfo_t. - - Extract information from a 'tinfo_t' . - - @param tif: the type to inspect (C++: const tinfo_t &) + @param tif: (C++: const tinfo_t &) the type to inspect Help on function get_idati in module ida_typeinf: get_idati(*args) -> 'til_t const *' get_idati() -> til_t - - - Pointer to the local type library - this til is private for each IDB - file Function that accepts til_t* uses local type library instead of - NULL. + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. Help on function get_named_type in module ida_typeinf: get_named_type(*args) -> 'PyObject *' - get_named_type(til, name, ntf_flags) -> PyObject * - - + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) Get a type data by its name. + @param til: the type library @param name: the type name @param ntf_flags: a combination of NTF_* constants - @return: - None on failure + @return: None on failure tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) -> 'PyObject *' - get_named_type64(til, name, ntf_flags) -> PyObject * + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. - - See 'get_named_type()' above.If the value in the 'ti' library is - 32-bit, it will be sign-extended before being stored in the 'value' - pointer. - - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) Help on function get_numbered_type in module ida_typeinf: get_numbered_type(*args) -> 'PyObject *' - get_numbered_type(til, ordinal) -> PyObject * - - + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) Retrieve a type by its ordinal number. - - @param ordinal (C++: uint32) + @param til: til_t const * + @param ordinal: (C++: uint32) Help on function get_numbered_type_name in module ida_typeinf: get_numbered_type_name(*args) -> 'char const *' get_numbered_type_name(ti, ordinal) -> char const * + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr - - Get type name (if exists) by its ordinal. If the type is anonymous, - returns "". If failed, returns NULL - - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) Help on function get_ordinal_from_idb_type in module ida_typeinf: get_ordinal_from_idb_type(*args) -> 'int' get_ordinal_from_idb_type(name, type) -> int + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types - - Get ordinal number of an idb type (struct/enum). The 'type' parameter - is used only to determine the kind of the type (struct or enum) Use - this function to find out the correspondence between idb types and til - types - - @param name (C++: const char *) - @param type (C++: const type_t *) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * Help on function get_ordinal_qty in module ida_typeinf: get_ordinal_qty(*args) -> 'uint32' get_ordinal_qty(ti) -> uint32 - - Get number of allocated ordinals. - @param ti (C++: const til_t *) + @param ti: (C++: const til_t *) til_t const * @return: uint32(-1) if failed Help on function get_scalar_bt in module ida_typeinf: get_scalar_bt(*args) -> 'type_t' get_scalar_bt(size) -> type_t + + @param size: int Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) -> 'bool' get_stock_tinfo(tif, id) -> bool + + @param tif: tinfo_t * + @param id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) -> 'bool' get_tinfo_attr(typid, key, bv, all_attrs) -> bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool Help on function get_tinfo_attrs in module ida_typeinf: get_tinfo_attrs(*args) -> 'bool' get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool Help on function get_tinfo_details in module ida_typeinf: get_tinfo_details(*args) -> 'bool' get_tinfo_details(typid, bt2, buf) -> bool + + @param typid: uint32 + @param bt2: type_t + @param buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) -> 'size_t' get_tinfo_pdata(outptr, typid, what) -> size_t + + @param outptr: void * + @param typid: uint32 + @param what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) -> 'size_t' get_tinfo_property(typid, gta_prop) -> size_t + + @param typid: uint32 + @param gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) -> 'size_t' get_tinfo_size(p_effalign, typid, gts_code) -> size_t + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int Help on function get_type_flags in module ida_typeinf: get_type_flags(*args) -> 'type_t' get_type_flags(t) -> type_t + Get type flags (TYPE_FLAGS_MASK) - - Get type flags ( 'TYPE_FLAGS_MASK' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function get_type_ordinal in module ida_typeinf: get_type_ordinal(*args) -> 'int32' get_type_ordinal(ti, name) -> int32 - - Get type ordinal by its name. + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + +Help on function get_vftable_ea in module ida_typeinf: + +get_vftable_ea(*args) -> 'ea_t' + get_vftable_ea(ordinal) -> ea_t + Get address of a virtual function table. - @param ti (C++: const til_t *) - @param name (C++: const char *) + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. + +Help on function get_vftable_ordinal in module ida_typeinf: + +get_vftable_ordinal(*args) -> 'uint32' + get_vftable_ordinal(vftable_ea) -> uint32 + Get ordinal number of the virtual function table. + + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. Help on function guess_func_cc in module ida_typeinf: guess_func_cc(*args) -> 'cm_t' guess_func_cc(fti, npurged, cc_flags) -> cm_t + Use func_type_data_t::guess_cc() - - Use 'func_type_data_t::guess_cc()' - - - @param fti (C++: const func_type_data_t &) - @param npurged (C++: int) - @param cc_flags (C++: int) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) Help on function guess_tinfo in module ida_typeinf: guess_tinfo(*args) -> 'int' guess_tinfo(tif, id) -> int + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. - - Generate a type information about the id from the disassembly. id can - be a structure/union/enum id or an address. - - @param tif (C++: tinfo_t *) - @param id (C++: tid_t) - @return: one of Guess tinfo codes + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes Help on class ida_lowertype_helper_t in module ida_typeinf: @@ -66718,6 +82988,10 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int | | __repr__ = _swig_repr(self) | @@ -66726,9 +83000,15 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, arg3) -> int + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66747,744 +83027,656 @@ class ida_lowertype_helper_t(lowertype_helper_t) Help on function idc_get_local_type in module ida_typeinf: -idc_get_local_type(*args) -> 'int' - idc_get_local_type(ordinal, flags, buf, maxsize) -> int +idc_get_local_type(*args) -> 'size_t' + idc_get_local_type(ordinal, flags) -> str + + @param ordinal: int + @param flags: int Help on function idc_get_local_type_name in module ida_typeinf: idc_get_local_type_name(*args) -> 'size_t' idc_get_local_type_name(ordinal) -> str + + @param ordinal: int Help on function idc_get_local_type_raw in module ida_typeinf: idc_get_local_type_raw(*args) -> 'PyObject *' - idc_get_local_type_raw(ordinal) -> PyObject * + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) -> 'size_t' idc_get_type(ea) -> str + + @param ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) -> 'PyObject *' idc_get_type_raw(ea) -> PyObject * + + @param ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) -> 'size_t' idc_guess_type(ea) -> str + + @param ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) -> 'PyObject *' - idc_parse_decl(ti, decl, flags) -> PyObject * + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) -> 'int' idc_parse_types(input, flags) -> int + + @param input: char const * + @param flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) -> 'PyObject *' - idc_print_type(_type, _fields, name, flags) -> PyObject * + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) -> 'int' idc_set_local_type(ordinal, dcl, flags) -> int + + @param ordinal: int + @param dcl: char const * + @param flags: int Help on function import_type in module ida_typeinf: import_type(*args) -> 'tid_t' import_type(til, idx, name, flags=0) -> tid_t - - Copy a named type from til to idb. - @param til: type library (C++: const til_t *) - @param idx: the position of the new type in the list of types - (structures or enums). -1 means at the end of the list - (C++: int) - @param name: the type name (C++: const char *) - @param flags: combination of Import type flags (C++: int) - @return: BADNODE on error + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t Help on function is_autosync in module ida_typeinf: is_autosync(*args) -> 'bool' is_autosync(name, type) -> bool - is_autosync(name, tif) -> bool - - Is the specified idb type automatically synchronized? + @param name: (C++: const char *) char const * + @param type: type_t const * - @param name (C++: const char *) - @param type (C++: const type_t *) + is_autosync(name, tif) -> bool + + @param name: char const * + @param tif: tinfo_t const & Help on function is_code_far in module ida_typeinf: is_code_far(*args) -> 'bool' is_code_far(cm) -> bool - - Does the given model specify far code?. - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_comp_unsure in module ida_typeinf: is_comp_unsure(*args) -> 'comp_t' is_comp_unsure(comp) -> comp_t + See COMP_UNSURE. - - See 'COMP_UNSURE' . - - - @param comp (C++: comp_t) + @param comp: (C++: comp_t) Help on function is_data_far in module ida_typeinf: is_data_far(*args) -> 'bool' is_data_far(cm) -> bool - - Does the given model specify far data?. - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_gcc in module ida_typeinf: is_gcc(*args) -> 'bool' is_gcc() -> bool - - - Is the target compiler 'COMP_GNU' ? + Is the target compiler COMP_GNU? Help on function is_gcc32 in module ida_typeinf: is_gcc32(*args) -> 'bool' is_gcc32() -> bool - - Is the target compiler 32 bit gcc? Help on function is_gcc64 in module ida_typeinf: is_gcc64(*args) -> 'bool' is_gcc64() -> bool - - Is the target compiler 64 bit gcc? +Help on function is_golang_cc in module ida_typeinf: + +is_golang_cc(*args) -> 'bool' + is_golang_cc(cc) -> bool + GO language calling convention (return value in stack)? + + @param cc: (C++: cm_t) + Help on function is_ordinal_name in module ida_typeinf: is_ordinal_name(*args) -> 'bool' is_ordinal_name(name, ord=None) -> bool + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) - - Check if the name is an ordinal name. Ordinal names have the following - format: '#' + set_de(ord) - - @param name (C++: const char *) - @param ord (C++: uint32 *) + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) Help on function is_purging_cc in module ida_typeinf: is_purging_cc(*args) -> 'bool' is_purging_cc(cm) -> bool + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code - - Does the calling convention clean the stack arguments upon - return?.this function is valid only for x86 code - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_restype_enum in module ida_typeinf: is_restype_enum(*args) -> 'bool' is_restype_enum(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) -> 'bool' is_restype_struct(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) -> 'bool' is_restype_struni(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) -> 'bool' is_restype_void(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * Help on function is_sdacl_byte in module ida_typeinf: is_sdacl_byte(*args) -> 'bool' is_sdacl_byte(t) -> bool + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) - - Identify an sdacl byte. The first sdacl byte has the following format: - 11xx000x. The sdacl bytes are appended to udt fields. They indicate - the start of type attributes (as the tah-bytes do). The sdacl bytes - are used in the udt headers instead of the tah-byte. This is done for - compatibility with old databases, they were already using sdacl bytes - in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in - the type bit definitions) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_tah_byte in module ida_typeinf: is_tah_byte(*args) -> 'bool' is_tah_byte(t) -> bool + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) - - The TAH byte (type attribute header byte) denotes the start of type - attributes. (see "tah-typeattrs" in the type bit definitions) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_arithmetic in module ida_typeinf: is_type_arithmetic(*args) -> 'bool' is_type_arithmetic(t) -> bool - - Is the type an arithmetic type? (floating or integral) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_array in module ida_typeinf: is_type_array(*args) -> 'bool' is_type_array(t) -> bool + See BT_ARRAY. - - See 'BT_ARRAY' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_bitfld in module ida_typeinf: is_type_bitfld(*args) -> 'bool' is_type_bitfld(t) -> bool + See BT_BITFIELD. - - See 'BT_BITFIELD' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_bool in module ida_typeinf: is_type_bool(*args) -> 'bool' is_type_bool(t) -> bool + See BTF_BOOL. - - See 'BTF_BOOL' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_char in module ida_typeinf: is_type_char(*args) -> 'bool' is_type_char(t) -> bool + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a char value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_complex in module ida_typeinf: is_type_complex(*args) -> 'bool' is_type_complex(t) -> bool + See BT_COMPLEX. - - See 'BT_COMPLEX' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_const in module ida_typeinf: is_type_const(*args) -> 'bool' is_type_const(t) -> bool + See BTM_CONST. - - See 'BTM_CONST' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_double in module ida_typeinf: is_type_double(*args) -> 'bool' is_type_double(t) -> bool + See BTF_DOUBLE. - - See 'BTF_DOUBLE' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_enum in module ida_typeinf: is_type_enum(*args) -> 'bool' is_type_enum(t) -> bool + See BTF_ENUM. - - See 'BTF_ENUM' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_arithmetic in module ida_typeinf: is_type_ext_arithmetic(*args) -> 'bool' is_type_ext_arithmetic(t) -> bool - - Is the type an extended arithmetic type? (arithmetic or enum) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ext_integral in module ida_typeinf: is_type_ext_integral(*args) -> 'bool' is_type_ext_integral(t) -> bool - - Is the type an extended integral type? (integral or enum) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_float in module ida_typeinf: is_type_float(*args) -> 'bool' is_type_float(t) -> bool + See BTF_FLOAT. - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_floating in module ida_typeinf: is_type_floating(*args) -> 'bool' is_type_floating(t) -> bool - - Is the type a floating point type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_func in module ida_typeinf: is_type_func(*args) -> 'bool' is_type_func(t) -> bool + See BT_FUNC. - - See 'BT_FUNC' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int in module ida_typeinf: is_type_int(*args) -> 'bool' is_type_int(bt) -> bool + Does the type_t specify one of the basic types in Basic type: integer? - - Does the type_t specify one of the basic types in 'Basic type: - integer' ? - - - @param bt (C++: type_t) + @param bt: (C++: type_t) Help on function is_type_int128 in module ida_typeinf: is_type_int128(*args) -> 'bool' is_type_int128(t) -> bool + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 128-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int16 in module ida_typeinf: is_type_int16(*args) -> 'bool' is_type_int16(t) -> bool + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 16-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int32 in module ida_typeinf: is_type_int32(*args) -> 'bool' is_type_int32(t) -> bool + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 32-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_int64 in module ida_typeinf: is_type_int64(*args) -> 'bool' is_type_int64(t) -> bool + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) - - Does the type specify a 64-bit value? (signed or unsigned, see 'Basic - type: integer' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_integral in module ida_typeinf: is_type_integral(*args) -> 'bool' is_type_integral(t) -> bool - - Is the type an integral type (char/short/int/long/bool)? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ldouble in module ida_typeinf: is_type_ldouble(*args) -> 'bool' is_type_ldouble(t) -> bool + See BTF_LDOUBLE. - - See 'BTF_LDOUBLE' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_paf in module ida_typeinf: is_type_paf(*args) -> 'bool' is_type_paf(t) -> bool - - Is the type a pointer, array, or function type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_partial in module ida_typeinf: is_type_partial(*args) -> 'bool' is_type_partial(t) -> bool + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) - - Identifies an unknown or void type with a known size (see 'Basic type: - unknown & void' ) - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ptr in module ida_typeinf: is_type_ptr(*args) -> 'bool' is_type_ptr(t) -> bool + See BT_PTR. - - See 'BT_PTR' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_ptr_or_array in module ida_typeinf: is_type_ptr_or_array(*args) -> 'bool' is_type_ptr_or_array(t) -> bool - - Is the type a pointer or array type? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struct in module ida_typeinf: is_type_struct(*args) -> 'bool' is_type_struct(t) -> bool + See BTF_STRUCT. - - See 'BTF_STRUCT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_struni in module ida_typeinf: is_type_struni(*args) -> 'bool' is_type_struni(t) -> bool - - Is the type a struct or union? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_sue in module ida_typeinf: is_type_sue(*args) -> 'bool' is_type_sue(t) -> bool - - Is the type a struct/union/enum? - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_tbyte in module ida_typeinf: is_type_tbyte(*args) -> 'bool' is_type_tbyte(t) -> bool + See BTF_FLOAT. - - See 'BTF_FLOAT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_typedef in module ida_typeinf: is_type_typedef(*args) -> 'bool' is_type_typedef(t) -> bool + See BTF_TYPEDEF. - - See 'BTF_TYPEDEF' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uchar in module ida_typeinf: is_type_uchar(*args) -> 'bool' is_type_uchar(t) -> bool + See BTF_UCHAR. - - See 'BTF_UCHAR' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint in module ida_typeinf: is_type_uint(*args) -> 'bool' is_type_uint(t) -> bool + See BTF_UINT. - - See 'BTF_UINT' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint128 in module ida_typeinf: is_type_uint128(*args) -> 'bool' is_type_uint128(t) -> bool + See BTF_UINT128. - - See 'BTF_UINT128' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint16 in module ida_typeinf: is_type_uint16(*args) -> 'bool' is_type_uint16(t) -> bool + See BTF_UINT16. - - See 'BTF_UINT16' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint32 in module ida_typeinf: is_type_uint32(*args) -> 'bool' is_type_uint32(t) -> bool + See BTF_UINT32. - - See 'BTF_UINT32' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_uint64 in module ida_typeinf: is_type_uint64(*args) -> 'bool' is_type_uint64(t) -> bool + See BTF_UINT64. - - See 'BTF_UINT64' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_union in module ida_typeinf: is_type_union(*args) -> 'bool' is_type_union(t) -> bool + See BTF_UNION. - - See 'BTF_UNION' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_unknown in module ida_typeinf: is_type_unknown(*args) -> 'bool' is_type_unknown(t) -> bool + See BT_UNKNOWN. - - See 'BT_UNKNOWN' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_void in module ida_typeinf: is_type_void(*args) -> 'bool' is_type_void(t) -> bool + See BTF_VOID. - - See 'BTF_VOID' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_type_volatile in module ida_typeinf: is_type_volatile(*args) -> 'bool' is_type_volatile(t) -> bool + See BTM_VOLATILE. - - See 'BTM_VOLATILE' . - - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_typeid_last in module ida_typeinf: is_typeid_last(*args) -> 'bool' is_typeid_last(t) -> bool + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) - - Is the type_t the last byte of type declaration? (there are no - additional bytes after a basic type, see '_BT_LAST_BASIC' ) - - @param t (C++: type_t) + @param t: (C++: type_t) Help on function is_user_cc in module ida_typeinf: is_user_cc(*args) -> 'bool' is_user_cc(cm) -> bool - - Does the calling convention specify argument locations explicitly? - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function is_vararg_cc in module ida_typeinf: is_vararg_cc(*args) -> 'bool' is_vararg_cc(cm) -> bool - - Does the calling convention use ellipsis? - - @param cm (C++: cm_t) + @param cm: (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) -> 'int' lexcompare_tinfo(t1, t2, arg3) -> int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int Help on function load_til in module ida_typeinf: load_til(*args) -> 'qstring *' load_til(name, tildir=None) -> til_t + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. - - Load til from a file. Failure to load base tils are reported into - 'errbuf'. They do not prevent loading of the main til. - - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) - @param tildir: directory where to load the til from. NULL means - default til subdirectories. (C++: const char *) - @return: pointer to resulting til, NULL if failed and error message is - in errbuf + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf Help on function load_til_header in module ida_typeinf: load_til_header(*args) -> 'qstring *' load_til_header(tildir, name) -> til_t - - Get human-readable til description. - - @param tildir (C++: const char *) - @param name (C++: const char *) + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * Help on function lower_type in module ida_typeinf: lower_type(*args) -> 'int' lower_type(til, tif, name=None, _helper=None) -> int - - Lower type. Inspect the type and lower all function subtypes using - lower_func_type().We call the prototypes usually encountered in source - files "high level"They may have implicit arguments, array arguments, - big structure retvals, etcWe introduce explicit arguments (i.e. 'this' - pointer) and call the result"low level prototype". See 'FTI_HIGH' .In - order to improve heuristics for recognition of big structure - retvals,it is recommended to pass a helper that will be used to make - decisions.That helper will be used only for lowering 'tif', and not - for the childrentypes walked through by recursion. + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. - @param til (C++: til_t *) - @param tif (C++: tinfo_t *) - @param name (C++: const char *) - @param _helper (C++: lowertype_helper_t *) + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) Help on class lowertype_helper_t in module ida_typeinf: @@ -67503,9 +83695,15 @@ class lowertype_helper_t(builtins.object) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, candidate_data) -> int + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67523,96 +83721,88 @@ Help on function new_til in module ida_typeinf: new_til(*args) -> 'til_t *' new_til(name, desc) -> til_t - - Initialize a til. - - @param name (C++: const char *) - @param desc (C++: const char *) + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * Help on function next_named_type in module ida_typeinf: next_named_type(*args) -> 'char const *' next_named_type(ti, name, ntf_flags) -> char const * + Enumerate types. - - Enumerate types. Returns mangled names. Never returns anonymous types. - To include it, enumerate types by ordinals. - - @param ti (C++: const til_t *) - @param name (C++: const char *) - @param ntf_flags (C++: int) + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param name: (C++: const char *) the current name. the name that follows this one will be returned. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. Help on function optimize_argloc in module ida_typeinf: optimize_argloc(*args) -> 'bool' optimize_argloc(vloc, size, gaps) -> bool + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal - - Verify and optimize scattered argloc into simple form. All new arglocs - must be processed by this function. - - @param vloc (C++: argloc_t *) - @param size (C++: int) - @param gaps (C++: const rangeset_t *) + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * Help on function pack_idcobj_to_bv in module ida_typeinf: pack_idcobj_to_bv(*args) -> 'error_t' pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it - - Write a typed idc object to the byte vector. Byte vector may be non- - empty, this function will append data to it - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) Help on function pack_idcobj_to_idb in module ida_typeinf: pack_idcobj_to_idb(*args) -> 'error_t' pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t - - Write a typed idc object to the database. - - @param obj (C++: const idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param pio_flags (C++: int) + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) Help on function pack_object_to_bv in module ida_typeinf: pack_object_to_bv(*args) -> 'PyObject *' - pack_object_to_bv(py_obj, ti, _type, _fields, base_ea, pio_flags=0) -> PyObject * - - + pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * Packs a typed object to a string + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param base_ea: base ea used to relocate the pointers in the packed object @param pio_flags: flags used while unpacking - @return: - tuple(0, err_code) on failure + @return: tuple(0, err_code) on failure tuple(1, packed_buf) on success Help on function pack_object_to_idb in module ida_typeinf: pack_object_to_idb(*args) -> 'PyObject *' - pack_object_to_idb(py_obj, ti, _type, _fields, ea, pio_flags=0) -> PyObject * - - + pack_object_to_idb(py_obj, ti, type, fields, ea, pio_flags=0) -> PyObject * Write a typed object to the database. Raises an exception if wrong parameters were passed or conversion fails Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param ea: ea to be used while packing @param pio_flags: flags used while unpacking @@ -67621,35 +83811,31 @@ Help on function parse_decl in module ida_typeinf: parse_decl(*args) -> 'qstring *' parse_decl(tif, til, decl, flags) -> str + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! - - Parse ONE declaration. If the input string contains more than one - declaration, the first complete type declaration ( 'PT_TYP' ) or the - last variable declaration ( 'PT_VAR' ) will be used.name & tif may be - empty after the call! - - @param tif: type info (C++: tinfo_t *) - @param til: type library to use. may be NULL (C++: til_t *) - @param decl: C declaration to parse (C++: const char *) - @param flags: combination of Type parsing flags bits (C++: int) + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL Help on function parse_decls in module ida_typeinf: parse_decls(*args) -> 'int' parse_decls(til, input, printer, hti_flags) -> int + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. - - Parse many declarations and store them in a til. If there are any - errors, they will be printed using 'printer'. This function uses - default include path and predefined macros from the database settings. - It always uses the 'HTI_DCL' bit. - - @param til: type library to store the result (C++: til_t *) - @param input: input string or file name (see hti_flags) (C++: const - char *) - @param printer: function to output error messages (use msg or NULL or - your own callback) (C++: printer_t *) - @param hti_flags: combination of Type formatting flags (C++: int) + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags @return: number of errors, 0 means ok. Help on class predicate_t in module ida_typeinf: @@ -67663,6 +83849,8 @@ class predicate_t(builtins.object) | | __init__(self, *args) | __init__(self) -> predicate_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -67671,6 +83859,11 @@ class predicate_t(builtins.object) | | should_display(self, *args) -> 'bool' | should_display(self, til, name, type, fields) -> bool + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67688,44 +83881,49 @@ Help on function print_argloc in module ida_typeinf: print_argloc(*args) -> 'size_t' print_argloc(vloc, size=0, vflags=0) -> str - - Convert an argloc to human readable form. - - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param vflags (C++: int) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) Help on function print_decls in module ida_typeinf: print_decls(*args) -> 'PyObject *' - print_decls(printer, til, py_ordinals, flags) -> PyObject * + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for using in + a header file. This is the reverse parse_decls(). - - Print types (and possibly their dependencies) in a format suitable for - use in a header file. This is the reverse 'parse_decls()' . - - @param printer: a handler for printing text (C++: text_sink_t &) - @param til: the type library holding the ordinals (C++: til_t *) - @param flags: flags for the algorithm. A combination of PDF_* - constants (C++: uint32) + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param pdf_flags: (C++: uint32) flags for the algorithm. A combination of PDF_ constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. Help on function print_tinfo in module ida_typeinf: print_tinfo(*args) -> 'qstring *' print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * Help on function print_type in module ida_typeinf: print_type(*args) -> 'qstring *' print_type(ea, prtype_flags) -> str - - Get type declaration for the specified address. - @param ea: address (C++: ea_t) - @param prtype_flags: combination of Type printing flags (C++: int) + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags @return: success Help on class ptr_type_data_t in module ida_typeinf: @@ -67737,12 +83935,21 @@ class ptr_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: ptr_type_data_t const & | | __init__(self, *args) | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -67751,12 +83958,16 @@ class ptr_type_data_t(builtins.object) | | is_code_ptr(self, *args) -> 'bool' | is_code_ptr(self) -> bool + | Are we pointing to code? | | is_shifted(self, *args) -> 'bool' | is_shifted(self) -> bool | | swap(self, *args) -> 'void' | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67768,22 +83979,22 @@ class ptr_type_data_t(builtins.object) | list of weak references to the object (if defined) | | based_ptr_size - | ptr_type_data_t_based_ptr_size_get(self) -> uchar + | based_ptr_size | | closure - | ptr_type_data_t_closure_get(self) -> tinfo_t + | closure | | delta - | ptr_type_data_t_delta_get(self) -> int32 + | delta | | obj_type - | ptr_type_data_t_obj_type_get(self) -> tinfo_t + | obj_type | | parent - | ptr_type_data_t_parent_get(self) -> tinfo_t + | parent | | taptr_bits - | ptr_type_data_t_taptr_bits_get(self) -> uchar + | taptr_bits | | thisown | The membership flag @@ -67797,6 +84008,10 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) -> 'uint64' read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 + + @param typid: uint32 + @param v: uint64 + @param bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -67807,13 +84022,19 @@ class reginfovec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & | | __getitem__(self, *args) -> 'reg_info_t const &' | __getitem__(self, i) -> reg_info_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67822,20 +84043,31 @@ class reginfovec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_info_t const & | | __swig_destroy__ = delete_reginfovec_t(...) | delete_reginfovec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: reg_info_t const & | | append = push_back(self, *args) -> 'reg_info_t &' | @@ -67846,7 +84078,6 @@ class reginfovec_t(builtins.object) | | begin(self, *args) -> 'qvector< reg_info_t >::const_iterator' | begin(self) -> reg_info_t - | begin(self) -> reg_info_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -67859,39 +84090,58 @@ class reginfovec_t(builtins.object) | | end(self, *args) -> 'qvector< reg_info_t >::const_iterator' | end(self) -> reg_info_t - | end(self) -> reg_info_t | | erase(self, *args) -> 'qvector< reg_info_t >::iterator' | erase(self, it) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | | erase(self, first, last) -> reg_info_t + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator | | extract(self, *args) -> 'reg_info_t *' | extract(self) -> reg_info_t | | find(self, *args) -> 'qvector< reg_info_t >::const_iterator' | find(self, x) -> reg_info_t - | find(self, x) -> reg_info_t + | + | @param x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_info_t()) + | + | @param x: reg_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: reg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: reg_info_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< reg_info_t >::iterator' | insert(self, it, x) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_info_t &' | push_back(self, x) + | + | @param x: reg_info_t const & + | | push_back(self) -> reg_info_t | | qclear(self, *args) -> 'void' @@ -67899,16 +84149,26 @@ class reginfovec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_info_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< reg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67958,16 +84218,16 @@ class regobj_t(builtins.object) | list of weak references to the object (if defined) | | regidx - | regobj_t_regidx_get(self) -> int + | regidx | | relocate - | regobj_t_relocate_get(self) -> int + | relocate | | thisown | The membership flag | | value - | regobj_t_value_get(self) -> bytevec_t * + | value Help on class regobjs_t in module ida_typeinf: @@ -68000,6 +84260,8 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68009,16 +84271,20 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68031,11 +84297,16 @@ class regobjs_t(regobjvec_t) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -68045,18 +84316,29 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) + | + | @param x: regobj_t const & + | | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' @@ -68064,16 +84346,26 @@ class regobjs_t(regobjvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68096,10 +84388,14 @@ class regobjvec_t(builtins.object) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68111,19 +84407,23 @@ class regobjvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & | | __swig_destroy__ = delete_regobjvec_t(...) | delete_regobjvec_t(self) | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' | begin(self) -> regobj_t - | begin(self) -> regobj_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68136,11 +84436,16 @@ class regobjvec_t(builtins.object) | | end(self, *args) -> 'qvector< regobj_t >::const_iterator' | end(self) -> regobj_t - | end(self) -> regobj_t | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -68150,18 +84455,29 @@ class regobjvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) + | + | @param x: regobj_t const & + | | push_back(self) -> regobj_t | | qclear(self, *args) -> 'void' @@ -68169,16 +84485,26 @@ class regobjvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68199,49 +84525,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) -> 'bool' remove_abi_opts(abi_opts, user_level=False) -> bool + + @param abi_opts: char const * + @param user_level: bool Help on function remove_pointer in module ida_typeinf: remove_pointer(*args) -> 'tinfo_t' remove_pointer(tif) -> tinfo_t - - 'BT_PTR' : If the current type is a pointer, return the pointed - object. If the current type is not a pointer, return the current type. - See also get_ptrarr_object() and get_pointed_object() - - @param tif (C++: const tinfo_t &) + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) -> 'PyObject *' - remove_tinfo_pointer(tif, name, til) -> PyObject * + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. - - Remove pointer of a type. (i.e. convert "char *" into "char"). - Optionally remove the "lp" (or similar) prefix of the input name. If - the input type is not a pointer, then fail. - - @param tif (C++: tinfo_t *) - @param til (C++: const til_t *) + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * Help on function replace_ordinal_typerefs in module ida_typeinf: replace_ordinal_typerefs(*args) -> 'int' replace_ordinal_typerefs(til, tif) -> int + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. - - Replace references to ordinal types by name references. This function - 'unties' the type from the current local type library and makes it - easier to export it. - - @param til: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) -> 'type_t const *' resolve_typedef(til, type) -> type_t const * + + @param til: til_t const * + @param type: type_t const * Help on class rrel_t in module ida_typeinf: @@ -68268,10 +84594,10 @@ class rrel_t(builtins.object) | list of weak references to the object (if defined) | | off - | rrel_t_off_get(self) -> sval_t + | off | | reg - | rrel_t_reg_get(self) -> int + | reg | | thisown | The membership flag @@ -68280,6 +84606,12 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) -> 'tinfo_code_t' save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -68312,9 +84644,13 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68324,25 +84660,37 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' | begin(self) -> argpart_t - | begin(self) -> argpart_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -68355,39 +84703,58 @@ class scattered_aloc_t(argpartvec_t) | | end(self, *args) -> 'qvector< argpart_t >::const_iterator' | end(self) -> argpart_t - | end(self) -> argpart_t | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator | | extract(self, *args) -> 'argpart_t *' | extract(self) -> argpart_t | | find(self, *args) -> 'qvector< argpart_t >::const_iterator' | find(self, x) -> argpart_t - | find(self, x) -> argpart_t + | + | @param x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) + | + | @param x: argpart_t const & + | | push_back(self) -> argpart_t | | qclear(self, *args) -> 'void' @@ -68395,16 +84762,26 @@ class scattered_aloc_t(argpartvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68427,124 +84804,139 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) -> 'uint32' score_tinfo(tif) -> uint32 + + @param tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) -> 'bool' serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int Help on function set_abi_name in module ida_typeinf: set_abi_name(*args) -> 'bool' set_abi_name(abiname, user_level=False) -> bool + Set abi name (see Compiler IDs) - - Set abi name (see 'Compiler IDs' ) - - - @param abiname (C++: const char *) - @param user_level (C++: bool) + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) Help on function set_c_header_path in module ida_typeinf: set_c_header_path(*args) -> 'void' set_c_header_path(incdir) - - Set include directory path the target compiler. - - @param incdir (C++: const char *) + @param incdir: (C++: const char *) char const * Help on function set_c_macros in module ida_typeinf: set_c_macros(*args) -> 'void' set_c_macros(macros) - - Set predefined macros for the target compiler. - - @param macros (C++: const char *) + @param macros: (C++: const char *) char const * Help on function set_compiler in module ida_typeinf: set_compiler(*args) -> 'bool' set_compiler(cc, flags, abiname=None) -> bool - - Change current compiler. - @param cc: compiler to switch to (C++: const compiler_info_t &) - @param flags: Set compiler flags (C++: int) - @param abiname: ABI name (C++: const char *) + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name @return: success Help on function set_compiler_id in module ida_typeinf: set_compiler_id(*args) -> 'bool' set_compiler_id(id, abiname=None) -> bool + Set the compiler id (see Compiler IDs) - - Set the compiler id (see 'Compiler IDs' ) - - - @param id (C++: comp_t) - @param abiname (C++: const char *) + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) -> 'bool' set_compiler_string(compstr, user_level) -> bool + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success Help on function set_numbered_type in module ida_typeinf: set_numbered_type(*args) -> 'tinfo_code_t' set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. - - Store a type in the til. 'name' may be NULL for anonymous types. The - specified ordinal must be free (no other type is using it). For - ntf_flags, only 'NTF_REPLACE' is consulted. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) - @param ntf_flags (C++: int) - @param name (C++: const char *) - @param type (C++: const type_t *) - @param fields (C++: const p_list *) - @param cmt (C++: const char *) - @param fldcmts (C++: const p_list *) - @param sclass (C++: const sclass_t *) + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * Help on function set_tinfo_attr in module ida_typeinf: set_tinfo_attr(*args) -> 'bool' set_tinfo_attr(tif, ta, may_overwrite) -> bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) -> 'bool' set_tinfo_attrs(tif, ta) -> bool + + @param tif: tinfo_t * + @param ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) -> 'size_t' set_tinfo_property(tif, sta_prop, x) -> size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t Help on function set_type_alias in module ida_typeinf: set_type_alias(*args) -> 'bool' set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) + +Help on function set_vftable_ea in module ida_typeinf: + +set_vftable_ea(*args) -> 'bool' + set_vftable_ea(ordinal, vftable_ea) -> bool + Set the address of a vftable instance for a vftable type. - Create a type alias. Redirects all references to source type to the - destination type. This is equivalent to instantaneous replacement all - reference to srctype by dsttype. - - @param ti (C++: til_t *) - @param src_ordinal (C++: uint32) - @param dst_ordinal (C++: uint32) + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success Help on class simd_info_t in module ida_typeinf: @@ -68555,6 +84947,10 @@ class simd_info_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t | | __repr__ = _swig_repr(self) | @@ -68563,6 +84959,8 @@ class simd_info_t(builtins.object) | | match_pattern(self, *args) -> 'bool' | match_pattern(self, pattern) -> bool + | + | @param pattern: simd_info_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68574,38 +84972,80 @@ class simd_info_t(builtins.object) | list of weak references to the object (if defined) | | memtype - | simd_info_t_memtype_get(self) -> type_t + | memtype | | name - | simd_info_t_name_get(self) -> char const * + | name | | size - | simd_info_t_size_get(self) -> uint16 + | size | | thisown | The membership flag | | tif - | simd_info_t_tif_get(self) -> tinfo_t + | tif + +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(builtins.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkarg_area_info_t(...) + | delete_stkarg_area_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag Help on function store_til in module ida_typeinf: store_til(*args) -> 'bool' store_til(ti, tildir, name) -> bool + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). - - Store til to a file. If the til contains garbage, it will be collected - before storing the til. Your plugin should call 'compact_til()' before - calling 'store_til()' . - - @param ti: type library to store (C++: til_t *) - @param tildir: directory where to store the til. NULL means current - directory. (C++: const char *) - @param name: filename of the til. If it's an absolute path, tildir is - ignored. NB: the file extension is forced to .til (C++: - const char *) + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til @return: success +Help on function switch_to_golang in module ida_typeinf: + +switch_to_golang(*args) -> 'void' + switch_to_golang() + switch to GOLANG calling convention (to be used as default CC) + Help on class text_sink_t in module ida_typeinf: class text_sink_t(builtins.object) @@ -68617,6 +85057,8 @@ class text_sink_t(builtins.object) | | __init__(self, *args) | __init__(self) -> text_sink_t + | + | @param self: PyObject * | | __repr__ = _swig_repr(self) | @@ -68625,6 +85067,10 @@ class text_sink_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, str) -> int + | + | Parameters + | ---------- + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68647,6 +85093,9 @@ class til_symbol_t(builtins.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t + | + | @param n: char const * + | @param t: til_t const * | | __repr__ = _swig_repr(self) | @@ -68663,13 +85112,13 @@ class til_symbol_t(builtins.object) | list of weak references to the object (if defined) | | name - | til_symbol_t_name_get(self) -> char const * + | name | | thisown | The membership flag | | til - | til_symbol_t_til_get(self) -> til_t + | til Help on class til_t in module ida_typeinf: @@ -68688,12 +85137,17 @@ class til_t(builtins.object) | | base(self, *args) -> 'til_t *' | base(self, n) -> til_t + | tils that our til is based on + | + | @param n: int | | is_dirty(self, *args) -> 'bool' | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) | | set_dirty(self, *args) -> 'void' | set_dirty(self) + | Mark the til as modified (TIL_MOD) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68705,28 +85159,28 @@ class til_t(builtins.object) | list of weak references to the object (if defined) | | cc - | til_t_cc_get(self) -> compiler_info_t + | cc | | desc - | til_t_desc_get(self) -> char * + | desc | | flags - | til_t_flags_get(self) -> uint32 + | flags | | name - | til_t_name_get(self) -> char * + | name | | nbases - | til_t_nbases_get(self) -> int + | nbases | | nrefs - | til_t_nrefs_get(self) -> int + | nrefs | | nstreams - | til_t_nstreams_get(self) -> int + | nstreams | | streams - | til_t_streams_get(self) -> til_stream_t ** + | streams | | thisown | The membership flag @@ -68740,26 +85194,43 @@ class tinfo_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: tinfo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: tinfo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | + | @param r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t | __init__(self, decl_type) -> tinfo_t + | + | @param decl_type: type_t + | | __init__(self, r) -> tinfo_t + | + | @param r: tinfo_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | + | @param r: tinfo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: tinfo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -68771,27 +85242,53 @@ class tinfo_t(builtins.object) | | _print(self, *args) -> 'bool' | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) -> 'bool' | append_covered(self, out, offset=0) -> bool + | Calculate set of covered bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) delta in bytes to add to all calculations. used internally during + | recurion. | | calc_gaps(self, *args) -> 'bool' | calc_gaps(self, out) -> bool + | Calculate set of padding bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. | | calc_purged_bytes(self, *args) -> 'int' | calc_purged_bytes(self) -> int | | calc_score(self, *args) -> 'uint32' | calc_score(self) -> uint32 + | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) -> 'bool' | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) | | change_sign(self, *args) -> 'bool' | change_sign(self, sign) -> bool + | Change the type sign. Works only for the types that may have sign. + | + | @param sign: (C++: type_sign_t) | | clear(self, *args) -> 'void' | clear(self) + | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) -> 'void' | clr_const(self) @@ -68804,72 +85301,170 @@ class tinfo_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | + | @param r: tinfo_t const & | | compare_with(self, *args) -> 'bool' | compare_with(self, r, tcflags=0) -> bool + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) | | convert_array_to_ptr(self, *args) -> 'bool' | convert_array_to_ptr(self) -> bool + | Convert an array into a pointer. type[] => type * | | copy(self, *args) -> 'tinfo_t' | copy(self) -> tinfo_t | | create_array(self, *args) -> 'bool' | create_array(self, p, decl_type=BT_ARRAY) -> bool + | + | @param p: array_type_data_t const & + | @param decl_type: type_t + | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t | | create_bitfield(self, *args) -> 'bool' | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t + | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t | | create_enum(self, *args) -> 'bool' | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | + | @param p: enum_type_data_t & + | @param decl_type: type_t | | create_forward_decl(self, *args) -> 'tinfo_code_t' | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) | | create_func(self, *args) -> 'bool' | create_func(self, p, decl_type=BT_FUNC) -> bool + | + | @param p: func_type_data_t & + | @param decl_type: type_t | | create_ptr(self, *args) -> 'bool' | create_ptr(self, p, decl_type=BT_PTR) -> bool + | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t + | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t | | create_simple_type(self, *args) -> 'bool' | create_simple_type(self, decl_type) -> bool + | + | @param decl_type: type_t | | create_typedef(self, *args) -> 'void' | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool + | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool + | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t | | create_udt(self, *args) -> 'bool' | create_udt(self, p, decl_type) -> bool + | + | @param p: udt_type_data_t & + | @param decl_type: type_t | | del_attr(self, *args) -> 'bool' | del_attr(self, key, make_copy=True) -> bool + | Del a type attribute. typerefs cannot be modified by this function. + | + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) | | del_attrs(self, *args) -> 'void' | del_attrs(self) + | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) -> 'bool' | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | Deserialize a type string into a tinfo_t object. + | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** + | | deserialize(self, til, type, fields, cmts=None) -> bool + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * + | Function to facilitate debugging. | | empty(self, *args) -> 'bool' | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? | | equals_to(self, *args) -> 'bool' | equals_to(self, r) -> bool + | + | @param r: tinfo_t const & | | find_udt_member(self, *args) -> 'int' | find_udt_member(self, udm, strmem_flags) -> int + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) -> 'bool' | get_array_details(self, ai) -> bool + | Get the array specific info. + | + | @param ai: (C++: array_type_data_t *) | | get_array_element(self, *args) -> 'tinfo_t' | get_array_element(self) -> tinfo_t @@ -68878,454 +85473,737 @@ class tinfo_t(builtins.object) | get_array_nelems(self) -> int | | get_attr(self, *args) -> 'PyObject *' - | get_attr(self, key, all_attrs=True) -> PyObject * + | get_attr(self, key, all_attrs=True) -> str or None + | Get a type attribute. + | + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) | | get_attrs(self, *args) -> 'bool' | get_attrs(self, tav, all_attrs=False) -> bool + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) | | get_bitfield_details(self, *args) -> 'bool' | get_bitfield_details(self, bi) -> bool + | Get the bitfield specific info. + | + | @param bi: (C++: bitfield_type_data_t *) | | get_declalign(self, *args) -> 'uchar' | get_declalign(self) -> uchar + | Get declared alignment of the type. | | get_decltype(self, *args) -> 'type_t' | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. | | get_enum_base_type(self, *args) -> 'type_t' | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert | | get_enum_details(self, *args) -> 'bool' | get_enum_details(self, ei) -> bool + | Get the enum specific info. + | + | @param ei: (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) -> 'uint32' | get_final_ordinal(self) -> uint32 + | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) -> 'bool' | get_final_type_name(self) -> bool + | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 | | get_func_details(self, *args) -> 'bool' | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) -> 'bool' + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist | | get_modifiers(self, *args) -> 'type_t' | get_modifiers(self) -> type_t | | get_named_type(self, *args) -> 'bool' | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference | | get_nargs(self, *args) -> 'int' | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) | | get_next_type_name(self, *args) -> 'bool' | get_next_type_name(self) -> bool + | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure | | get_nth_arg(self, *args) -> 'tinfo_t' | get_nth_arg(self, n) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) | | get_numbered_type(self, *args) -> 'bool' | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code | | get_onemember_type(self, *args) -> 'tinfo_t' | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. | | get_ordinal(self, *args) -> 'uint32' | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) | | get_pointed_object(self, *args) -> 'tinfo_t' | get_pointed_object(self) -> tinfo_t | | get_ptr_details(self, *args) -> 'bool' | get_ptr_details(self, pi) -> bool + | Get the pointer info. + | + | @param pi: (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) -> 'tinfo_t' | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. | | get_ptrarr_objsize(self, *args) -> 'int' | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 | | get_realtype(self, *args) -> 'type_t' | get_realtype(self, full=False) -> type_t + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) | | get_rettype(self, *args) -> 'tinfo_t' | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type | | get_sign(self, *args) -> 'type_sign_t' | get_sign(self) -> type_sign_t + | Get type sign. | | get_size(self, *args) -> 'size_t' | get_size(self, p_effalign=None, gts_code=0) -> size_t + | Get the type size in bytes. + | + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems | | get_til(self, *args) -> 'til_t const *' | get_til(self) -> til_t + | Get the type library for tinfo_t. | | get_type_name(self, *args) -> 'bool' | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). | | get_udt_details(self, *args) -> 'bool' | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | Get the udt specific info. + | + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t | | get_udt_nmembers(self, *args) -> 'int' | get_udt_nmembers(self) -> int + | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) -> 'size_t' | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() | | has_details(self, *args) -> 'bool' | has_details(self) -> bool + | Does this type refer to a nontrivial type? | | has_vftable(self, *args) -> 'bool' | has_vftable(self) -> bool + | Has a vftable? | | is_anonymous_udt(self, *args) -> 'bool' | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ | | is_arithmetic(self, *args) -> 'bool' | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) | | is_array(self, *args) -> 'bool' | is_array(self) -> bool + | is_type_array(get_realtype()) | | is_bitfield(self, *args) -> 'bool' | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) | | is_bool(self, *args) -> 'bool' | is_bool(self) -> bool + | is_type_bool(get_realtype()) | | is_castable_to(self, *args) -> 'bool' | is_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & | | is_char(self, *args) -> 'bool' | is_char(self) -> bool + | is_type_char(get_realtype()) | | is_complex(self, *args) -> 'bool' | is_complex(self) -> bool + | is_type_complex(get_realtype()) | | is_const(self, *args) -> 'bool' | is_const(self) -> bool + | is_type_const(get_realtype()) | | is_correct(self, *args) -> 'bool' | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. | | is_decl_array(self, *args) -> 'bool' | is_decl_array(self) -> bool + | is_type_array(get_decltype()) | | is_decl_bitfield(self, *args) -> 'bool' | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) | | is_decl_bool(self, *args) -> 'bool' | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) | | is_decl_char(self, *args) -> 'bool' | is_decl_char(self) -> bool + | is_type_char(get_decltype()) | | is_decl_complex(self, *args) -> 'bool' | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) | | is_decl_const(self, *args) -> 'bool' | is_decl_const(self) -> bool + | is_type_const(get_decltype()) | | is_decl_double(self, *args) -> 'bool' | is_decl_double(self) -> bool + | is_type_double(get_decltype()) | | is_decl_enum(self, *args) -> 'bool' | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) | | is_decl_float(self, *args) -> 'bool' | is_decl_float(self) -> bool + | is_type_float(get_decltype()) | | is_decl_floating(self, *args) -> 'bool' | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) | | is_decl_func(self, *args) -> 'bool' | is_decl_func(self) -> bool + | is_type_func(get_decltype()) | | is_decl_int(self, *args) -> 'bool' | is_decl_int(self) -> bool + | is_type_int(get_decltype()) | | is_decl_int128(self, *args) -> 'bool' | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) | | is_decl_int16(self, *args) -> 'bool' | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) | | is_decl_int32(self, *args) -> 'bool' | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) | | is_decl_int64(self, *args) -> 'bool' | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) | | is_decl_last(self, *args) -> 'bool' | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) | | is_decl_ldouble(self, *args) -> 'bool' | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) | | is_decl_paf(self, *args) -> 'bool' | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) | | is_decl_partial(self, *args) -> 'bool' | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) | | is_decl_ptr(self, *args) -> 'bool' | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) | | is_decl_struct(self, *args) -> 'bool' | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) | | is_decl_sue(self, *args) -> 'bool' | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) | | is_decl_tbyte(self, *args) -> 'bool' | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) | | is_decl_typedef(self, *args) -> 'bool' | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) | | is_decl_uchar(self, *args) -> 'bool' | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) | | is_decl_udt(self, *args) -> 'bool' | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) | | is_decl_uint(self, *args) -> 'bool' | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) | | is_decl_uint128(self, *args) -> 'bool' | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) | | is_decl_uint16(self, *args) -> 'bool' | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) | | is_decl_uint32(self, *args) -> 'bool' | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) | | is_decl_uint64(self, *args) -> 'bool' | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) | | is_decl_union(self, *args) -> 'bool' | is_decl_union(self) -> bool + | is_type_union(get_decltype()) | | is_decl_unknown(self, *args) -> 'bool' | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) | | is_decl_void(self, *args) -> 'bool' | is_decl_void(self) -> bool + | is_type_void(get_decltype()) | | is_decl_volatile(self, *args) -> 'bool' | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) | | is_double(self, *args) -> 'bool' | is_double(self) -> bool + | is_type_double(get_realtype()) | | is_empty_udt(self, *args) -> 'bool' | is_empty_udt(self) -> bool + | Is an empty struct/union? (has no fields) | | is_enum(self, *args) -> 'bool' | is_enum(self) -> bool + | is_type_enum(get_realtype()) | | is_ext_arithmetic(self, *args) -> 'bool' | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) | | is_ext_integral(self, *args) -> 'bool' | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) | | is_float(self, *args) -> 'bool' | is_float(self) -> bool + | is_type_float(get_realtype()) | | is_floating(self, *args) -> 'bool' | is_floating(self) -> bool + | is_type_floating(get_realtype()) | | is_forward_decl(self, *args) -> 'bool' | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist | | is_from_subtil(self, *args) -> 'bool' | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database | | is_func(self, *args) -> 'bool' | is_func(self) -> bool + | is_type_func(get_realtype()) | | is_funcptr(self, *args) -> 'bool' | is_funcptr(self) -> bool + | Is this pointer to a function? | | is_high_func(self, *args) -> 'bool' | is_high_func(self) -> bool | | is_int(self, *args) -> 'bool' | is_int(self) -> bool + | is_type_int(get_realtype()) | | is_int128(self, *args) -> 'bool' | is_int128(self) -> bool + | is_type_int128(get_realtype()) | | is_int16(self, *args) -> 'bool' | is_int16(self) -> bool + | is_type_int16(get_realtype()) | | is_int32(self, *args) -> 'bool' | is_int32(self) -> bool + | is_type_int32(get_realtype()) | | is_int64(self, *args) -> 'bool' | is_int64(self) -> bool + | is_type_int64(get_realtype()) | | is_integral(self, *args) -> 'bool' | is_integral(self) -> bool + | is_type_integral(get_realtype()) | | is_ldouble(self, *args) -> 'bool' | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) | | is_manually_castable_to(self, *args) -> 'bool' | is_manually_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & | | is_one_fpval(self, *args) -> 'bool' | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. | | is_paf(self, *args) -> 'bool' | is_paf(self) -> bool + | is_type_paf(get_realtype()) | | is_partial(self, *args) -> 'bool' | is_partial(self) -> bool + | is_type_partial(get_realtype()) | | is_ptr(self, *args) -> 'bool' | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) | | is_ptr_or_array(self, *args) -> 'bool' | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) | | is_purging_cc(self, *args) -> 'bool' | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) | | is_pvoid(self, *args) -> 'bool' | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. | | is_scalar(self, *args) -> 'bool' | is_scalar(self) -> bool + | Does the type represent a single number? | | is_shifted_ptr(self, *args) -> 'bool' | is_shifted_ptr(self) -> bool + | Is a shifted pointer? | | is_signed(self, *args) -> 'bool' | is_signed(self) -> bool + | Is this a signed type? | | is_small_udt(self, *args) -> 'bool' | is_small_udt(self) -> bool + | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) -> 'bool' | is_sse_type(self) -> bool + | Is a SSE vector type? | | is_struct(self, *args) -> 'bool' | is_struct(self) -> bool + | is_type_struct(get_realtype()) | | is_sue(self, *args) -> 'bool' | is_sue(self) -> bool + | is_type_sue(get_realtype()) | | is_tbyte(self, *args) -> 'bool' | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) | | is_typeref(self, *args) -> 'bool' | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. | | is_uchar(self, *args) -> 'bool' | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool + | is_type_struni(get_realtype()) | | is_uint(self, *args) -> 'bool' | is_uint(self) -> bool + | is_type_uint(get_realtype()) | | is_uint128(self, *args) -> 'bool' | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) | | is_uint16(self, *args) -> 'bool' | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) | | is_uint32(self, *args) -> 'bool' | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) | | is_uint64(self, *args) -> 'bool' | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) | | is_union(self, *args) -> 'bool' | is_union(self) -> bool + | is_type_union(get_realtype()) | | is_unknown(self, *args) -> 'bool' | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) | | is_unsigned(self, *args) -> 'bool' | is_unsigned(self) -> bool + | Is this an unsigned type? | | is_user_cc(self, *args) -> 'bool' | is_user_cc(self) -> bool + | is_user_cc(get_cc()) | | is_vararg_cc(self, *args) -> 'bool' | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) | | is_varstruct(self, *args) -> 'bool' | is_varstruct(self) -> bool + | Is a variable-size structure? | | is_vftable(self, *args) -> 'bool' | is_vftable(self) -> bool + | Is a vftable type? | | is_void(self, *args) -> 'bool' | is_void(self) -> bool + | is_type_void(get_realtype()) | | is_volatile(self, *args) -> 'bool' | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) | | is_well_defined(self, *args) -> 'bool' | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) | | present(self, *args) -> 'bool' | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) | | read_bitfield_value(self, *args) -> 'uint64' | read_bitfield_value(self, v, bitoff) -> uint64 + | + | @param v: uint64 + | @param bitoff: int | | remove_ptr_or_array(self, *args) -> 'bool' | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) -> 'bool' | requires_qualifier(self, name, offset) -> bool + | Requires full qualifier? (name is not unique) + | + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) field offset in bits + | @return: if the name is not unique, returns true | | serialize(self, *args) -> 'PyObject *' - | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. + | + | @param sudt_flags: (C++: int) | | set_attr(self, *args) -> 'bool' | set_attr(self, ta, may_overwrite=True) -> bool + | Set a type attribute. If necessary, a new typid will be created. + | + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) | | set_attrs(self, *args) -> 'bool' | set_attrs(self, tav) -> bool + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) -> 'void' | set_const(self) | | set_declalign(self, *args) -> 'bool' | set_declalign(self, declalign) -> bool + | Set declared alignment of the type. + | + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) -> 'bool' + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty | | set_modifiers(self, *args) -> 'void' | set_modifiers(self, mod) + | + | @param mod: type_t | | set_named_type(self, *args) -> 'tinfo_code_t' | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_numbered_type(self, *args) -> 'tinfo_code_t' | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * | | set_symbol_type(self, *args) -> 'tinfo_code_t' | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int | | set_volatile(self, *args) -> 'void' | set_volatile(self) | | swap(self, *args) -> 'void' | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: tinfo_t &) | | write_bitfield_value(self, *args) -> 'uint64' | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) -> 'tinfo_t' | get_stock(id) -> tinfo_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69348,6 +86226,8 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) -> 'tinfo_t' tinfo_t_get_stock(id) -> tinfo_t + + @param id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -69360,6 +86240,8 @@ class tinfo_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t + | + | @param s: int | | __repr__ = _swig_repr(self) | @@ -69368,12 +86250,28 @@ class tinfo_visitor_t(builtins.object) | | apply_to(self, *args) -> 'int' | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | Call this function to initiate the traversal. + | + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | prune_now(self, *args) -> 'void' | prune_now(self) + | To refuse to visit children of the current type, use this: | | visit_type(self, *args) -> 'int' | visit_type(self, out, tif, name, cmt) -> int + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69385,7 +86283,7 @@ class tinfo_visitor_t(builtins.object) | list of weak references to the object (if defined) | | state - | tinfo_visitor_t_state_get(self) -> int + | state | | thisown | The membership flag @@ -69399,12 +86297,16 @@ class type_attr_t(builtins.object) | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | + | @param r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -69421,13 +86323,13 @@ class type_attr_t(builtins.object) | list of weak references to the object (if defined) | | key - | type_attr_t_key_get(self) -> qstring * + | key | | thisown | The membership flag | | value - | type_attr_t_value_get(self) -> bytevec_t * + | value Help on class type_attrs_t in module ida_typeinf: @@ -69438,10 +86340,14 @@ class type_attrs_t(builtins.object) | | __getitem__(self, *args) -> 'type_attr_t const &' | __getitem__(self, i) -> type_attr_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69453,19 +86359,23 @@ class type_attrs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: type_attr_t const & | | __swig_destroy__ = delete_type_attrs_t(...) | delete_type_attrs_t(self) | | at(self, *args) -> 'type_attr_t const &' | at(self, _idx) -> type_attr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< type_attr_t >::const_iterator' | begin(self) -> type_attr_t - | begin(self) -> type_attr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69478,11 +86388,16 @@ class type_attrs_t(builtins.object) | | end(self, *args) -> 'qvector< type_attr_t >::const_iterator' | end(self) -> type_attr_t - | end(self) -> type_attr_t | | erase(self, *args) -> 'qvector< type_attr_t >::iterator' | erase(self, it) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | | erase(self, first, last) -> type_attr_t + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator | | extract(self, *args) -> 'type_attr_t *' | extract(self) -> type_attr_t @@ -69492,18 +86407,29 @@ class type_attrs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=type_attr_t()) + | + | @param x: type_attr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: type_attr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< type_attr_t >::iterator' | insert(self, it, x) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'type_attr_t &' | push_back(self, x) + | + | @param x: type_attr_t const & + | | push_back(self) -> type_attr_t | | qclear(self, *args) -> 'void' @@ -69511,16 +86437,26 @@ class type_attrs_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: type_attr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< type_attr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69569,12 +86505,21 @@ class type_mods_t(builtins.object) | | set_new_cmt(self, *args) -> 'void' | set_new_cmt(self, c) + | + | @param c: qstring const & | | set_new_name(self, *args) -> 'void' | set_new_name(self, n) + | + | @param n: qstring const & | | set_new_type(self, *args) -> 'void' | set_new_type(self, t) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69586,19 +86531,19 @@ class type_mods_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | type_mods_t_cmt_get(self) -> qstring * + | cmt | | flags - | type_mods_t_flags_get(self) -> int + | flags | | name - | type_mods_t_name_get(self) -> qstring * + | name | | thisown | The membership flag | | type - | type_mods_t_type_get(self) -> tinfo_t + | type Help on class typedef_type_data_t in module ida_typeinf: @@ -69609,7 +86554,16 @@ class typedef_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool + | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool | | __repr__ = _swig_repr(self) | @@ -69618,6 +86572,8 @@ class typedef_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: typedef_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69629,16 +86585,22 @@ class typedef_type_data_t(builtins.object) | list of weak references to the object (if defined) | | is_ordref - | typedef_type_data_t_is_ordref_get(self) -> bool + | is_ordref + | + | name + | name + | + | ordinal + | ordinal | | resolve - | typedef_type_data_t_resolve_get(self) -> bool + | resolve | | thisown | The membership flag | | til - | typedef_type_data_t_til_get(self) -> til_t + | til Help on class udt_member_t in module ida_typeinf: @@ -69649,15 +86611,21 @@ class udt_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | + | @param r: udt_member_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -69670,6 +86638,9 @@ class udt_member_t(builtins.object) | clr_baseclass(self, *args) -> 'void' | clr_baseclass(self) | + | clr_method(self, *args) -> 'void' + | clr_method(self) + | | clr_unaligned(self, *args) -> 'void' | clr_unaligned(self) | @@ -69691,6 +86662,9 @@ class udt_member_t(builtins.object) | is_bitfield(self, *args) -> 'bool' | is_bitfield(self) -> bool | + | is_method(self, *args) -> 'bool' + | is_method(self) -> bool + | | is_unaligned(self, *args) -> 'bool' | is_unaligned(self) -> bool | @@ -69706,6 +86680,9 @@ class udt_member_t(builtins.object) | set_baseclass(self, *args) -> 'void' | set_baseclass(self) | + | set_method(self, *args) -> 'void' + | set_method(self) + | | set_unaligned(self, *args) -> 'void' | set_unaligned(self) | @@ -69717,6 +86694,8 @@ class udt_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: udt_member_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69728,31 +86707,31 @@ class udt_member_t(builtins.object) | list of weak references to the object (if defined) | | cmt - | udt_member_t_cmt_get(self) -> qstring * + | cmt | | effalign - | udt_member_t_effalign_get(self) -> int + | effalign | | fda - | udt_member_t_fda_get(self) -> uchar + | fda | | name - | udt_member_t_name_get(self) -> qstring * + | name | | offset - | udt_member_t_offset_get(self) -> uint64 + | offset | | size - | udt_member_t_size_get(self) -> uint64 + | size | | tafld_bits - | udt_member_t_tafld_bits_get(self) -> uint32 + | tafld_bits | | thisown | The membership flag | | type - | udt_member_t_type_get(self) -> tinfo_t + | type | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -69767,6 +86746,7 @@ class udt_type_data_t(udtmembervec_t) | Method resolution order: | udt_type_data_t | udtmembervec_t + | udtmembervec_template_t | builtins.object | | Methods defined here: @@ -69784,6 +86764,8 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) -> 'bool' | is_last_baseclass(self, idx) -> bool + | + | @param idx: size_t | | is_msstruct(self, *args) -> 'bool' | is_msstruct(self) -> bool @@ -69794,44 +86776,53 @@ class udt_type_data_t(udtmembervec_t) | is_vftable(self, *args) -> 'bool' | is_vftable(self) -> bool | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: udt_type_data_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: | | effalign - | udt_type_data_t_effalign_get(self) -> uint32 + | effalign | | is_union - | udt_type_data_t_is_union_get(self) -> bool + | is_union | | pack - | udt_type_data_t_pack_get(self) -> uchar + | pack | | sda - | udt_type_data_t_sda_get(self) -> uchar + | sda | | taudt_bits - | udt_type_data_t_taudt_bits_get(self) -> uint32 + | taudt_bits | | thisown | The membership flag | | total_size - | udt_type_data_t_total_size_get(self) -> size_t + | total_size | | unpadded_size - | udt_type_data_t_unpadded_size_get(self) -> size_t + | unpadded_size | | ---------------------------------------------------------------------- - | Methods inherited from udtmembervec_t: + | Methods inherited from udtmembervec_template_t: | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69841,25 +86832,37 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69872,39 +86875,58 @@ class udt_type_data_t(udtmembervec_t) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) + | + | @param x: udt_member_t const & + | | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' @@ -69912,10 +86934,18 @@ class udt_type_data_t(udtmembervec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -69924,7 +86954,7 @@ class udt_type_data_t(udtmembervec_t) | truncate(self) | | ---------------------------------------------------------------------- - | Data descriptors inherited from udtmembervec_t: + | Data descriptors inherited from udtmembervec_template_t: | | __dict__ | dictionary for instance variables (if defined) @@ -69933,26 +86963,48 @@ class udt_type_data_t(udtmembervec_t) | list of weak references to the object (if defined) | | ---------------------------------------------------------------------- - | Data and other attributes inherited from udtmembervec_t: + | Data and other attributes inherited from udtmembervec_template_t: | | __hash__ = None Help on class udtmembervec_t in module ida_typeinf: -class udtmembervec_t(builtins.object) - | Proxy of C++ qvector< udt_member_t > class. +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | builtins.object | | Methods defined here: | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udtmembervec_t(...) + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t - | - | __init__(self, *args) - | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69962,30 +87014,37 @@ class udtmembervec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool - | - | __repr__ = _swig_repr(self) + | + | @param r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) - | - | __swig_destroy__ = delete_udtmembervec_t(...) - | delete_udtmembervec_t(self) + | + | @param i: size_t + | @param v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' | begin(self) -> udt_member_t - | begin(self) -> udt_member_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -69998,39 +87057,58 @@ class udtmembervec_t(builtins.object) | | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' | end(self) -> udt_member_t - | end(self) -> udt_member_t | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator | | extract(self, *args) -> 'udt_member_t *' | extract(self) -> udt_member_t | | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' | find(self, x) -> udt_member_t - | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) + | + | @param x: udt_member_t const & + | | push_back(self) -> udt_member_t | | qclear(self, *args) -> 'void' @@ -70038,16 +87116,202 @@ class udtmembervec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(builtins.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | __swig_destroy__ = delete_udtmembervec_template_t(...) + | delete_udtmembervec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -70073,53 +87337,58 @@ Help on function unpack_idcobj_from_bv in module ida_typeinf: unpack_idcobj_from_bv(*args) -> 'error_t' unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t - - Read a typed idc object from the byte vector. - - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: const bytevec_t &) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) Help on function unpack_idcobj_from_idb in module ida_typeinf: unpack_idcobj_from_idb(*args) -> 'error_t' unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t - - Collection of register objects. Read a typed idc object from the database - @param obj (C++: idc_value_t *) - @param tif (C++: const tinfo_t &) - @param ea (C++: ea_t) - @param off0 (C++: const bytevec_t *) - @param pio_flags (C++: int) + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) Help on function unpack_object_from_bv in module ida_typeinf: unpack_object_from_bv(*args) -> 'PyObject *' - unpack_object_from_bv(ti, _type, _fields, bytes, pio_flags=0) -> PyObject * - - + unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * Unpacks a buffer into an object. Returns the error_t returned by idaapi.pack_object_to_idb + @param ti: Type info. 'None' can be passed. - @param tp: type string + @param type: type_t const * @param fields: fields string (may be empty or None) @param bytes: the bytes to unpack @param pio_flags: flags used while unpacking - @return: - - tuple(0, err) on failure + @return: - tuple(0, err) on failure - tuple(1, obj) on success Help on function unpack_object_from_idb in module ida_typeinf: unpack_object_from_idb(*args) -> 'PyObject *' - unpack_object_from_idb(ti, _type, _fields, ea, pio_flags=0) -> PyObject * + unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int + +Help on function use_golang_cc in module ida_typeinf: + +use_golang_cc(*args) -> 'bool' + use_golang_cc() -> bool + is GOLANG calling convention used by default? Help on class valstr_t in module ida_typeinf: @@ -70146,19 +87415,19 @@ class valstr_t(builtins.object) | list of weak references to the object (if defined) | | info - | valstr_t_info_get(self) -> valinfo_t * + | info | | length - | valstr_t_length_get(self) -> size_t + | length | | members - | valstr_t_members_get(self) -> valstrs_t + | members | | oneline - | valstr_t_oneline_get(self) -> qstring * + | oneline | | props - | valstr_t_props_get(self) -> int + | props | | thisown | The membership flag @@ -70194,6 +87463,8 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | + | @param i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70203,16 +87474,20 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -70225,11 +87500,16 @@ class valstrs_t(valstrvec_t) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -70239,18 +87519,29 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) + | + | @param x: valstr_t const & + | | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' @@ -70258,16 +87549,26 @@ class valstrs_t(valstrvec_t) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -70290,10 +87591,14 @@ class valstrvec_t(builtins.object) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70305,19 +87610,23 @@ class valstrvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & | | __swig_destroy__ = delete_valstrvec_t(...) | delete_valstrvec_t(self) | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | + | @param _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' | begin(self) -> valstr_t - | begin(self) -> valstr_t | | capacity(self, *args) -> 'size_t' | capacity(self) -> size_t @@ -70330,11 +87639,16 @@ class valstrvec_t(builtins.object) | | end(self, *args) -> 'qvector< valstr_t >::const_iterator' | end(self) -> valstr_t - | end(self) -> valstr_t | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -70344,18 +87658,29 @@ class valstrvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) + | + | @param x: valstr_t const & + | | push_back(self) -> valstr_t | | qclear(self, *args) -> 'void' @@ -70363,16 +87688,26 @@ class valstrvec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -70393,1021 +87728,94 @@ Help on function verify_argloc in module ida_typeinf: verify_argloc(*args) -> 'int' verify_argloc(vloc, size, gaps) -> int + Verify argloc_t. - - Verify 'argloc_t' . - - @param vloc (C++: const argloc_t &) - @param size: total size of the variable (C++: int) - @param gaps: if not NULL, specifies gaps in structure definition. - these gaps should not map to any argloc, but everything - else must be covered (C++: const rangeset_t *) + @param vloc: (C++: const argloc_t &) argloc to verify + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered @return: 0 if ok, otherwise an interr code. Help on function verify_tinfo in module ida_typeinf: verify_tinfo(*args) -> 'int' verify_tinfo(typid) -> int + + @param typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) -> 'int' visit_subtypes(visitor, out, tif, name, cmt) -> int + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * Help on function write_tinfo_bitfield_value in module ida_typeinf: write_tinfo_bitfield_value(*args) -> 'uint64' write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" -=== ida_typeinf EPYDOC INJECTIONS === -ida_typeinf.ADDTIL_ABORTED -""" -til was not loaded (incompatible til rejected by user) -""" - -ida_typeinf.ADDTIL_COMP -""" -ok, but til is not compatible with the current compiler -""" - -ida_typeinf.ADDTIL_DEFAULT -""" -default behavior -""" - -ida_typeinf.ADDTIL_FAILED -""" -something bad, the warning is displayed -""" - -ida_typeinf.ADDTIL_INCOMP -""" -load incompatible tils -""" - -ida_typeinf.ADDTIL_OK -""" -ok, til is loaded -""" - -ida_typeinf.ADDTIL_SILENT -""" -do not ask any questions -""" - -ida_typeinf.CC_ALLOW_ARGPERM -""" -disregard argument order? -""" - -ida_typeinf.CC_ALLOW_REGHOLES -""" -allow holes in register argument list? -""" - -ida_typeinf.CC_CDECL_OK -""" -can use __cdecl calling convention? -""" - -ida_typeinf.CC_HAS_ELLIPSIS -""" -function has a variable list of arguments? -""" - -ida_typeinf.FAH_BYTE -""" -function argument attribute header byte -""" - -ida_typeinf.FAI_ARRAY -""" -was initially an array see "__org_typedef" or "__org_arrdim" type -attributes to determine the original type -""" - -ida_typeinf.FAI_HIDDEN -""" -hidden argument -""" - -ida_typeinf.FAI_RETPTR -""" -pointer to return value. implies hidden -""" - -ida_typeinf.FAI_STRUCT -""" -was initially a structure -""" - -ida_typeinf.FTI_ALL -""" -all defined bits -""" - -ida_typeinf.FTI_ARGLOCS -""" -(stkargs and retloc too) - -info about argument locations has been calculated -""" - -ida_typeinf.FTI_CALLTYPE -""" -mask for FTI_*CALL -""" - -ida_typeinf.FTI_DEFCALL -""" -default call -""" - -ida_typeinf.FTI_FARCALL -""" -far call -""" - -ida_typeinf.FTI_HIGH -""" -high level prototype (with possibly hidden args) -""" - -ida_typeinf.FTI_INTCALL -""" -interrupt call -""" - -ida_typeinf.FTI_NEARCALL -""" -near call -""" - -ida_typeinf.FTI_NORET -""" -noreturn -""" - -ida_typeinf.FTI_PURE -""" -__pure -""" - -ida_typeinf.FTI_SPOILED -""" -information about spoiled registers is present -""" - -ida_typeinf.FTI_STATIC -""" -static -""" - -ida_typeinf.FTI_VIRTUAL -""" -virtual -""" - -ida_typeinf.GUESS_FUNC_FAILED -""" -couldn't guess the function type -""" - -ida_typeinf.GUESS_FUNC_OK -""" -ok, some non-trivial information is gathered -""" - -ida_typeinf.GUESS_FUNC_TRIVIAL -""" -the function type doesn't have interesting info -""" - -ida_typeinf.HTI_CPP -""" -C++ mode (not implemented) -""" - -ida_typeinf.HTI_DCL -""" -don't complain about redeclarations -""" - -ida_typeinf.HTI_EXT -""" -debug: print external representation of types -""" - -ida_typeinf.HTI_FIL -""" -otherwise "input" contains a C declaration - -"input" is file name, -""" - -ida_typeinf.HTI_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.HTI_INT -""" -debug: print internal representation of types -""" - -ida_typeinf.HTI_LEX -""" -debug: print tokens -""" - -ida_typeinf.HTI_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.HTI_MAC -""" -define macros from the base tils -""" - -ida_typeinf.HTI_NDC -""" -don't decorate names -""" - -ida_typeinf.HTI_NER -""" -ignore all errors but display them -""" - -ida_typeinf.HTI_NWR -""" -no warning messages -""" - -ida_typeinf.HTI_PAK -""" -explicit structure pack value (#pragma pack) -""" - -ida_typeinf.HTI_PAK1 -""" -#pragma pack(1) -""" - -ida_typeinf.HTI_PAK16 -""" -#pragma pack(16) -""" - -ida_typeinf.HTI_PAK2 -""" -#pragma pack(2) -""" - -ida_typeinf.HTI_PAK4 -""" -#pragma pack(4) -""" - -ida_typeinf.HTI_PAK8 -""" -#pragma pack(8) -""" - -ida_typeinf.HTI_PAKDEF -""" -default pack value -""" - -ida_typeinf.HTI_PAK_SHIFT -""" -shift for 'HTI_PAK' . This field should be used if you want to -remember an explicit pack value for each structure/union type. See -'HTI_PAK' ... definitions -""" - -ida_typeinf.HTI_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.HTI_TST -""" -test mode: discard the result -""" - -ida_typeinf.HTI_UNP -""" -debug: check the result by unpacking it -""" - -ida_typeinf.IMPTYPE_LOCAL -""" -the type is local, the struct/enum won't be marked as til type. there -is no need to specify this bit if til==idati, the kernel will set it -automatically -""" - -ida_typeinf.IMPTYPE_OVERRIDE -""" -override existing type -""" - -ida_typeinf.IMPTYPE_VERBOSE -""" -more verbose output (dialog boxes may appear) -""" - -ida_typeinf.MAX_FUNC_ARGS -""" -max number of function arguments -""" - -ida_typeinf.NTF_64BIT -""" -value is 64bit -""" - -ida_typeinf.NTF_CHKSYNC -""" -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK -""" - -ida_typeinf.NTF_FIXNAME -""" -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting -""" - -ida_typeinf.NTF_IDBENC -""" -the name is given in the IDB encoding; non-ASCII bytes will be decoded -accordingly (set_named_type, set_numbered_type only) -""" - -ida_typeinf.NTF_NOBASE -""" -don't inspect base tils (for get_named_type) -""" - -ida_typeinf.NTF_NOCUR -""" -don't inspect current til file (for get_named_type) -""" - -ida_typeinf.NTF_REPLACE -""" -replace original type (for set_named_type) -""" - -ida_typeinf.NTF_SYMM -""" -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') -""" - -ida_typeinf.NTF_SYMU -""" -symbol, name is unmangled ('func') -""" - -ida_typeinf.NTF_TYPE -""" -type name -""" - -ida_typeinf.NTF_UMANGLED -""" -name is unmangled (don't use this flag) -""" - -ida_typeinf.PCN_CHR -""" -character -""" - -ida_typeinf.PCN_DEC -""" -decimal -""" - -ida_typeinf.PCN_DECSEXT -""" -automatically extend sign of signed decimal numbers -""" - -ida_typeinf.PCN_HEX -""" -hexadecimal -""" - -ida_typeinf.PCN_LZHEX -""" -print leading zeroes for hexdecimal number -""" - -ida_typeinf.PCN_NEGSIGN -""" -print negated value (-N) for negative numbers -""" - -ida_typeinf.PCN_OCT -""" -octal -""" - -ida_typeinf.PCN_RADIX -""" -number base to use -""" - -ida_typeinf.PCN_UNSIGNED -""" -add 'u' suffix -""" - -ida_typeinf.PDF_DEF_BASE -""" -Include base types: __int8, __int16, etc.. -""" - -ida_typeinf.PDF_DEF_FWD -""" -Allow forward declarations. -""" - -ida_typeinf.PDF_HEADER_CMT -""" -Prepend output with a descriptive comment. -""" - -ida_typeinf.PDF_INCL_DEPS -""" -Include all type dependencies. -""" - -ida_typeinf.PIO_IGNORE_PTRS -""" -do not follow pointers -""" - -ida_typeinf.PIO_NOATTR_FAIL -""" -missing attributes are not ok -""" - -ida_typeinf.PRALOC_STKOFF -""" -print stack offsets -""" - -ida_typeinf.PRALOC_VERIFY -""" -interr if illegal argloc -""" - -ida_typeinf.PRTYPE_1LINE -""" -print to one line -""" - -ida_typeinf.PRTYPE_COLORED -""" -add color tag COLOR_SYMBOL for any parentheses, commas and colons -""" - -ida_typeinf.PRTYPE_CPP -""" -use c++ name (only for 'print_type()' ) -""" - -ida_typeinf.PRTYPE_DEF -""" - 'tinfo_t' : print definition, if available -""" - -ida_typeinf.PRTYPE_MULTI -""" -print to many lines -""" - -ida_typeinf.PRTYPE_NOARGS -""" - 'tinfo_t' : do not print function argument names -""" - -ida_typeinf.PRTYPE_NOARRS -""" - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers -""" - -ida_typeinf.PRTYPE_NOREGEX -""" -do not apply regular expressions to beautify name -""" - -ida_typeinf.PRTYPE_NORES -""" - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) -""" - -ida_typeinf.PRTYPE_PRAGMA -""" -print pragmas for alignment -""" - -ida_typeinf.PRTYPE_RESTORE -""" - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' -""" - -ida_typeinf.PRTYPE_SEMI -""" -append ; to the end -""" - -ida_typeinf.PRTYPE_TYPE -""" -print type declaration (not variable declaration) -""" - -ida_typeinf.PT_HIGH -""" -(with hidden args, etc) - -assume high level prototypes -""" - -ida_typeinf.PT_LOWER -""" -lower the function prototypes -""" - -ida_typeinf.PT_NDC -""" -don't decorate names -""" - -ida_typeinf.PT_PACKMASK -""" -mask for pack alignment values -""" - -ida_typeinf.PT_RAWARGS -""" -leave argument names unchanged (do not remove underscores) -""" - -ida_typeinf.PT_REPLACE -""" -replace the old type (used in idc) -""" - -ida_typeinf.PT_SIL -""" -silent, no messages -""" - -ida_typeinf.PT_TYP -""" -return declared type information -""" - -ida_typeinf.PT_VAR -""" -return declared object information -""" - -ida_typeinf.RESERVED_BYTE -""" -multifunctional purpose -""" - -ida_typeinf.SETCOMP_BY_USER -""" -invoked by user, cannot be replaced by module/loader -""" - -ida_typeinf.SETCOMP_ONLY_ABI -""" -ignore cc field complete, use only abiname -""" - -ida_typeinf.SETCOMP_ONLY_ID -""" -cc has only 'id' field the rest will be set to defaults corresponding -to the program bitness -""" - -ida_typeinf.SETCOMP_OVERRIDE -""" -may override old compiler info -""" - -ida_typeinf.STRMEM_ANON -""" -can be combined with 'STRMEM_NAME' : look inside anonymous members -too. -""" - -ida_typeinf.STRMEM_AUTO -""" -get member by offset if struct, or get member by index if union - nb: -union: index is stored in the udm->offset field!nb: struct: offset is -in bytes (not in bits)! -""" - -ida_typeinf.STRMEM_CASTABLE_TO -""" -can be combined with 'STRMEM_TYPE' : member type must be castable to -the specified type -""" - -ida_typeinf.STRMEM_INDEX -""" -get member by number- in: udm->offset - is a member number -""" - -ida_typeinf.STRMEM_MAXS -""" -get biggest member by size. -""" - -ida_typeinf.STRMEM_MINS -""" -get smallest member by size. -""" - -ida_typeinf.STRMEM_NAME -""" -get member by name- in: udm->name - the desired member name. -""" - -ida_typeinf.STRMEM_OFFSET -""" -get member by offset- in: udm->offset - is a member offset in bits -""" - -ida_typeinf.STRMEM_SIZE -""" -get member by size.- in: udm->size - the desired member size. -""" - -ida_typeinf.STRMEM_SKIP_EMPTY -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' skip empty -members (i.e. having zero size) only last empty member can be returned -""" - -ida_typeinf.STRMEM_TYPE -""" -get member by type. - in: udm->type - the desired member type. member -types are compared with tinfo_t::equals_to() -""" - -ida_typeinf.STRMEM_VFTABLE -""" -can be combined with 'STRMEM_OFFSET' , 'STRMEM_AUTO' get vftable -instead of the base class -""" - -ida_typeinf.SUDT_ALIGN -""" -to match the offsets and size info - -recalculate field alignments, struct packing, etc -""" - -ida_typeinf.SUDT_CONST -""" -only for serialize_udt: make type const -""" - -ida_typeinf.SUDT_FAST -""" -serialize without verifying offsets and alignments -""" - -ida_typeinf.SUDT_GAPS -""" -allow to fill gaps with additional members (_BYTE[]) -""" - -ida_typeinf.SUDT_SORT -""" -fields are not sorted by offset, sort them first -""" - -ida_typeinf.SUDT_TRUNC -""" -serialize: truncate useless strings from fields, fldcmts -""" - -ida_typeinf.SUDT_UNEX -""" -references to nonexistent member types are acceptable in this case it -is better to set the corresponding 'udt_member_t::fda' field to the -type alignment. if this field is not set, ida will try to guess the -alignment. -""" - -ida_typeinf.SUDT_VOLATILE -""" -only for serialize_udt: make type volatile -""" - -ida_typeinf.TAENUM_64BIT -""" -enum: store 64-bit values -""" - -ida_typeinf.TAENUM_SIGNED -""" -enum: signed -""" - -ida_typeinf.TAENUM_UNSIGNED -""" -enum: unsigned -""" - -ida_typeinf.TAFLD_BASECLASS -""" -field: do not include but inherit from the current field -""" - -ida_typeinf.TAFLD_UNALIGNED -""" -field: unaligned field -""" - -ida_typeinf.TAFLD_VFTABLE -""" -field: ptr to virtual function table -""" - -ida_typeinf.TAFLD_VIRTBASE -""" -field: virtual base (not supported yet) -""" - -ida_typeinf.TAH_ALL -""" -all defined bits -""" - -ida_typeinf.TAH_BYTE -""" -type attribute header byte -""" - -ida_typeinf.TAH_HASATTRS -""" -has extended attributes -""" - -ida_typeinf.TAPTR_PTR32 -""" -ptr: __ptr32 -""" - -ida_typeinf.TAPTR_PTR64 -""" -ptr: __ptr64 -""" - -ida_typeinf.TAPTR_RESTRICT -""" -ptr: __restrict -""" - -ida_typeinf.TAPTR_SHIFTED -""" -ptr: __shifted(parent_struct, delta) -""" - -ida_typeinf.TAUDT_CPPOBJ -""" -struct: a c++ object, not simple pod type -""" - -ida_typeinf.TAUDT_MSSTRUCT -""" -struct: gcc msstruct attribute -""" - -ida_typeinf.TAUDT_UNALIGNED -""" -struct: unaligned struct -""" - -ida_typeinf.TAUDT_VFTABLE -""" -struct: is virtual function table -""" - -ida_typeinf.TA_FORMAT -""" -info about the 'format' argument 3 times pack_dd: 'format_functype_t' -, argument number of 'format', argument number of '...' -""" - -ida_typeinf.TA_ORG_ARRDIM -""" -the original array dimension (pack_dd) -""" - -ida_typeinf.TA_ORG_TYPEDEF -""" -the original typedef name (simple string) -""" - -ida_typeinf.TCMP_ANYBASE -""" -accept any base class when casting -""" - -ida_typeinf.TCMP_AUTOCAST -""" -can t1 be cast into t2 automatically? -""" - -ida_typeinf.TCMP_CALL -""" -can t1 be called with t2 type? -""" - -ida_typeinf.TCMP_DECL -""" -compare declarations without resolving them -""" - -ida_typeinf.TCMP_DELPTR -""" -remove pointer from types before comparing -""" - -ida_typeinf.TCMP_EQUAL -""" -are types equal? -""" - -ida_typeinf.TCMP_IGNMODS -""" -ignore const/volatile modifiers -""" - -ida_typeinf.TCMP_MANCAST -""" -can t1 be cast into t2 manually? -""" - -ida_typeinf.TCMP_SKIPTHIS -""" -skip the first function argument in comparison -""" - -ida_typeinf.TIL_ADD_ALREADY -""" -the base til was already added -""" - -ida_typeinf.TIL_ADD_FAILED -""" -see errbuf -""" - -ida_typeinf.TIL_ADD_OK -""" -some tils were added -""" - -ida_typeinf.TIL_ALI -""" -type aliases are present (this bit is used only on the disk) -""" - -ida_typeinf.TIL_ESI -""" -extended sizeof info (short, long, longlong) -""" - -ida_typeinf.TIL_MAC -""" -til has macro table -""" - -ida_typeinf.TIL_MOD -""" -til has been modified, should be saved -""" - -ida_typeinf.TIL_ORD -""" -type ordinal numbers are present -""" - -ida_typeinf.TIL_SLD -""" -sizeof(long double) -""" - -ida_typeinf.TIL_STM -""" -til has extra streams -""" - -ida_typeinf.TIL_UNI -""" -universal til for any compiler -""" - -ida_typeinf.TIL_ZIP -""" -pack buckets using zip -""" - -ida_typeinf.TINFO_DEFINITE -""" -this is a definite type -""" - -ida_typeinf.TINFO_DELAYFUNC -""" -if type is a function and no function exists at ea, schedule its -creation and argument renaming to auto-analysis otherwise try to -create it immediately -""" - -ida_typeinf.TINFO_GUESSED -""" -this is a guessed type -""" - -ida_typeinf.TINFO_STRICT -""" -never convert given type to another one before applying -""" - -ida_typeinf.TVIS_CMT -""" -new comment is present -""" - -ida_typeinf.TVIS_NAME -""" -new name is present -""" - -ida_typeinf.TVIS_TYPE -""" -new type info is present -""" - -ida_typeinf.TVST_DEF -""" -visit type definition (meaningful for typerefs) -""" - -ida_typeinf.TVST_PRUNE -""" -don't visit children of current type -""" - -ida_typeinf.VALSTR_OPEN -""" -printed opening curly brace '{' -""" -=== ida_typeinf EPYDOC INJECTIONS END === Help on function calc_dataseg in module ida_ua: calc_dataseg(*args) -> 'ea_t' calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. - - Get data segment for the instruction operand. 'opnum' and 'rgnum' are - meaningful only if the processor has segment registers. - - @param insn (C++: const insn_t &) - @param n (C++: int) - @param rgnum (C++: int) + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) Help on function can_decode in module ida_ua: can_decode(*args) -> 'bool' can_decode(ea) -> bool - - Can the bytes at address 'ea' be decoded as instruction? - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address @return: whether or not the contents at that address could be a valid instruction @@ -71415,194 +87823,174 @@ Help on function construct_macro in module ida_ua: construct_macro(*args) -> 'bool' construct_macro(insn, enable, build_macro) -> bool - - See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * + +Help on function construct_macro2 in module ida_ua: + +construct_macro2(*args) -> 'bool' + construct_macro2(_this, insn, enable) -> bool + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction @return: the length of the instruction or 0 Help on function create_outctx in module ida_ua: create_outctx(*args) -> 'outctx_base_t *' create_outctx(ea, F=0, suspop=0) -> outctx_base_t - - Create a new output context. To delete it, just use "delete pctx" - @param ea (C++: ea_t) - @param F (C++: flags_t) - @param suspop (C++: int) + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param suspop: (C++: int) Help on function decode_insn in module ida_ua: decode_insn(*args) -> 'int' decode_insn(out, ea) -> int + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. - - Analyze the specified address and fill 'out'. This function does not - modify the database. It just tries to interpret the specified address - as an instruction and fills the 'out' structure. - - @param out: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address @return: the length of the (possible) instruction or 0 Help on function decode_preceding_insn in module ida_ua: decode_preceding_insn(*args) -> 'PyObject *' - decode_preceding_insn(out, ea) -> PyObject * - - + decode_preceding_insn(out, ea) -> (int, int) Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() - @param ea: current ea + @param out: instruction storage + @param ea: current ea @return: tuple(preceeding_ea or BADADDR, farref = Boolean) Help on function decode_prev_insn in module ida_ua: decode_prev_insn(*args) -> 'ea_t' decode_prev_insn(out, ea) -> ea_t - - Decode previous instruction if it exists, fill 'out'. - @param out: the resulting instruction (C++: insn_t *) - @param ea: the address to decode the previous instruction from (C++: - ea_t) - @return: the previous instruction address ( BADADDR -no such insn) + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) Help on function get_dtype_by_size in module ida_ua: get_dtype_by_size(*args) -> 'int' get_dtype_by_size(size) -> int + Get op_t::dtype from size. - - Get 'op_t::dtype' from size. - - - @param size (C++: asize_t) + @param size: (C++: asize_t) Help on function get_dtype_flag in module ida_ua: -get_dtype_flag(*args) -> 'flags_t' - get_dtype_flag(dtype) -> flags_t +get_dtype_flag(*args) -> 'flags64_t' + get_dtype_flag(dtype) -> flags64_t + Get flags for op_t::dtype field. - - Get flags for 'op_t::dtype' field. - - - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_dtype_size in module ida_ua: get_dtype_size(*args) -> 'size_t' get_dtype_size(dtype) -> size_t - - Get size of opt_::dtype field. - - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) Help on function get_immvals in module ida_ua: get_immvals(*args) -> 'PyObject *' - get_immvals(ea, n, F=0) -> PyObject * + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. - - Get immediate values at the specified address. This function decodes - instruction at the specified address or inspects the data item. It - finds immediate values and copies them to 'out'. This function will - store the original value of the operands in 'out', unless the last - bits of 'F' are "...0 11111111", in which case the transformed values - (as needed for printing) will be stored instead. - - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function get_lookback in module ida_ua: get_lookback(*args) -> 'int' get_lookback() -> int - - - Number of instructions to look back. This variable is not used by the - kernel. Its value may be specified in ida.cfg: LOOKBACK = <number>. - IDP may use it as you like it. (TMS module uses it) + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) Help on function get_printable_immvals in module ida_ua: get_printable_immvals(*args) -> 'PyObject *' get_printable_immvals(ea, n, F=0) -> PyObject * - - Get immediate ready-to-print values at the specified address - @param ea: address to analyze (C++: ea_t) - @param n: number of operand (0.. UA_MAXOP -1), -1 means all operands - (C++: int) - @param F: flags for the specified address (C++: flags_t) - @return: number of immediate values (0..2* UA_MAXOP ) - -Help on function guess_table_address in module ida_ua: - -guess_table_address(*args) -> 'ea_t' - guess_table_address(insn) -> ea_t - - - Guess the jump table address (ibm pc specific) - - - @param insn (C++: const insn_t &) - -Help on function guess_table_size in module ida_ua: - -guess_table_size(*args) -> 'asize_t' - guess_table_size(insn, jump_table) -> asize_t - - - Guess the jump table size. - - - @param insn (C++: const insn_t &) - @param jump_table (C++: ea_t) + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) -> 'void' insn_add_cref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) -> 'void' insn_add_dref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t Help on function insn_add_off_drefs in module ida_ua: insn_add_off_drefs(*args) -> 'ea_t' insn_add_off_drefs(insn, x, type, outf) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) -> 'bool' insn_create_stkvar(insn, x, v, flags) -> bool + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int Help on class insn_t in module ida_ua: @@ -71616,13 +88004,15 @@ class insn_t(builtins.object) | | __get_operand__(self, *args) -> 'op_t *' | __get_operand__(self, n) -> op_t + | + | @param n: int | | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' | __get_ops__(self) -> operands_array | | __getitem__(self, idx) | Operands can be accessed directly as indexes - | @return op_t: Returns an operand of type op_t + | @return: op_t: Returns an operand of type op_t | | __init__(self, *args) | __init__(self) -> insn_t @@ -71633,33 +88023,91 @@ class insn_t(builtins.object) | | __set_auxpref__(self, *args) -> 'void' | __set_auxpref__(self, v) + | + | @param v: uint32 | | __swig_destroy__ = delete_insn_t(...) | delete_insn_t(self) | | add_cref(self, *args) -> 'void' | add_cref(self, to, opoff, type) + | Add a code cross-reference from the instruction. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref | | add_dref(self, *args) -> 'void' | add_dref(self, to, opoff, type) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref | | add_off_drefs(self, *args) -> 'ea_t' | add_off_drefs(self, x, type, outf) -> ea_t + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses | | assign(self, *args) -> 'void' | assign(self, other) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) -> 'bool' | create_op_data(self, ea_, opoff, dtype) -> bool + | Convenient alias. + | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t + | | create_op_data(self, ea_, op) -> bool + | + | @param ea_: ea_t + | @param op: op_t const & | | create_stkvar(self, *args) -> 'bool' | create_stkvar(self, x, v, flags_) -> bool + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable | | get_canon_feature(self, *args) -> 'uint32' + | get_canon_feature(self, ph) -> uint32 + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | | get_canon_feature(self) -> uint32 | | get_canon_mnem(self, *args) -> 'char const *' + | get_canon_mnem(self, ph) -> char const + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | | get_canon_mnem(self) -> char const * | | get_next_byte(self, *args) -> 'uint8' @@ -71676,12 +88124,19 @@ class insn_t(builtins.object) | | is_64bit(self, *args) -> 'bool' | is_64bit(self) -> bool + | Belongs to a 64bit segment? | | is_canon_insn(self, *args) -> 'bool' + | is_canon_insn(self, ph) -> bool + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | | is_canon_insn(self) -> bool | | is_macro(self, *args) -> 'bool' | is_macro(self) -> bool + | Is a macro instruction? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71698,6 +88153,10 @@ class insn_t(builtins.object) | | Op6 | + | Op7 + | + | Op8 + | | __dict__ | dictionary for instance variables (if defined) | @@ -71707,32 +88166,38 @@ class insn_t(builtins.object) | auxpref | __get_auxpref__(self) -> uint32 | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | | cs - | insn_t_cs_get(self) -> ea_t + | cs | | ea - | insn_t_ea_get(self) -> ea_t + | ea | | flags - | insn_t_flags_get(self) -> int16 + | flags | | insnpref - | insn_t_insnpref_get(self) -> char + | insnpref | | ip - | insn_t_ip_get(self) -> ea_t + | ip | | itype - | insn_t_itype_get(self) -> uint16 + | itype | | ops | __get_ops__(self) -> operands_array | | segpref - | insn_t_segpref_get(self) -> char + | segpref | | size - | insn_t_size_get(self) -> uint16 + | size | | thisown | The membership flag @@ -71741,50 +88206,109 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) -> 'insn_t *' insn_t__from_ptrval__(ptrval) -> insn_t + + @param ptrval: size_t Help on function is_floating_dtype in module ida_ua: is_floating_dtype(*args) -> 'bool' is_floating_dtype(dtype) -> bool - - Is a floating type operand? - - @param dtype (C++: op_dtype_t) + @param dtype: (C++: op_dtype_t) + +Help on class macro_constructor_t in module ida_ua: + +class macro_constructor_t(builtins.object) + | Proxy of C++ macro_constructor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> macro_constructor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_macro_constructor_t(...) + | delete_macro_constructor_t(self) + | + | build_macro(self, *args) -> 'bool' + | build_macro(self, insn, may_go_forward) -> bool + | Try to extend the instruction. + | + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag Help on function map_code_ea in module ida_ua: map_code_ea(*args) -> 'ea_t' map_code_ea(insn, addr, opnum) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + map_code_ea(insn, op) -> ea_t - - Map a code address. This function takes into account the segment - translations. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_data_ea in module ida_ua: map_data_ea(*args) -> 'ea_t' map_data_ea(insn, addr, opnum=-1) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + map_data_ea(insn, op) -> ea_t - - Map a data address. - - @param insn: the current instruction (C++: const insn_t &) - @param addr: the referenced address to map (C++: ea_t) - @param opnum: operand number (C++: int) + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) -> 'ea_t' map_ea(insn, op, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool + map_ea(insn, addr, opnum, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool Help on class op_t in module ida_ua: @@ -71802,6 +88326,9 @@ class op_t(builtins.object) | __get_specval__(self, *args) -> 'ea_t' | __get_specval__(self) -> ea_t | + | __get_value64__(self, *args) -> 'uint64' + | __get_value64__(self) -> uint64 + | | __get_value__(self, *args) -> 'ea_t' | __get_value__(self) -> ea_t | @@ -71812,39 +88339,63 @@ class op_t(builtins.object) | | __set_addr__(self, *args) -> 'void' | __set_addr__(self, v) + | + | @param v: ea_t | | __set_reg_phrase__(self, *args) -> 'void' | __set_reg_phrase__(self, r) + | + | @param r: uint16 | | __set_specval__(self, *args) -> 'void' | __set_specval__(self, v) + | + | @param v: ea_t + | + | __set_value64__(self, *args) -> 'void' + | __set_value64__(self, v) + | + | @param v: uint64 | | __set_value__(self, *args) -> 'void' | __set_value__(self, v) + | + | @param v: ea_t | | __swig_destroy__ = delete_op_t(...) | delete_op_t(self) | | assign(self, *args) -> 'void' | assign(self, other) + | + | @param other: op_t const & | | clr_shown(self, *args) -> 'void' | clr_shown(self) + | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) -> 'bool' | is_imm(self, v) -> bool + | Is immediate operand? + | + | @param v: (C++: uval_t) | | is_reg(self, *args) -> 'bool' | is_reg(self, r) -> bool + | Is register operand? + | + | @param r: (C++: int) | | set_shown(self, *args) -> 'void' | set_shown(self) + | Set operand to be shown. | | shown(self, *args) -> 'bool' | shown(self) -> bool + | Is operand set to be shown? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71859,19 +88410,19 @@ class op_t(builtins.object) | __get_addr__(self) -> ea_t | | dtype - | op_t_dtype_get(self) -> op_dtype_t + | dtype | | flags - | op_t_flags_get(self) -> uchar + | flags | | n - | op_t_n_get(self) -> uchar + | n | | offb - | op_t_offb_get(self) -> char + | offb | | offo - | op_t_offo_get(self) -> char + | offo | | phrase | __get_reg_phrase__(self) -> uint16 @@ -71880,16 +88431,16 @@ class op_t(builtins.object) | __get_reg_phrase__(self) -> uint16 | | specflag1 - | op_t_specflag1_get(self) -> char + | specflag1 | | specflag2 - | op_t_specflag2_get(self) -> char + | specflag2 | | specflag3 - | op_t_specflag3_get(self) -> char + | specflag3 | | specflag4 - | op_t_specflag4_get(self) -> char + | specflag4 | | specval | __get_specval__(self) -> ea_t @@ -71898,15 +88449,20 @@ class op_t(builtins.object) | The membership flag | | type - | op_t_type_get(self) -> optype_t + | type | | value | __get_value__(self) -> ea_t + | + | value64 + | __get_value64__(self) -> uint64 Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) -> 'op_t *' op_t__from_ptrval__(ptrval) -> op_t + + @param ptrval: size_t Help on class operands_array in module ida_ua: @@ -71917,9 +88473,13 @@ class operands_array(builtins.object) | | __getitem__(self, *args) -> 'op_t const &' | __getitem__(self, i) -> op_t + | + | @param i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array + | + | @param data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71931,10 +88491,23 @@ class operands_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: op_t const & | | __swig_destroy__ = delete_operands_array(...) | delete_operands_array(self) | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -71944,8 +88517,11 @@ class operands_array(builtins.object) | __weakref__ | list of weak references to the object (if defined) | + | bytes + | _get_bytes(self) -> bytevec_t + | | data - | operands_array_data_get(self) -> op_t (&)[8] + | data | | thisown | The membership flag @@ -71973,9 +88549,20 @@ class outctx_base_t(builtins.object) | | flush_buf(self, *args) -> 'bool' | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -71985,33 +88572,79 @@ class outctx_base_t(builtins.object) | | gen_block_cmt(self, *args) -> 'bool' | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) -> 'bool' | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -72021,72 +88654,155 @@ class outctx_base_t(builtins.object) | | out_addr_tag(self, *args) -> 'void' | out_addr_tag(self, ea) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) | | out_btoa(self, *args) -> 'void' | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) | | out_char(self, *args) -> 'void' | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) | - | out_value(self, *args) -> 'flags_t' - | out_value(self, x, outf=0) -> flags_t + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -72096,15 +88812,25 @@ class outctx_base_t(builtins.object) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | + | @param on: bool | | setup_outctx(self, *args) -> 'void' | setup_outctx(self, prefix, makeline_flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72116,13 +88842,13 @@ class outctx_base_t(builtins.object) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf | | thisown | The membership flag @@ -72131,6 +88857,8 @@ Help on function outctx_base_t__from_ptrval__ in module ida_ua: outctx_base_t__from_ptrval__(*args) -> 'outctx_base_t *' outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t + + @param ptrval: size_t Help on class outctx_t in module ida_ua: @@ -72151,12 +88879,20 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) -> 'void' | gen_func_footer(self, pfn) + | + | @param pfn: func_t const * | | gen_func_header(self, *args) -> 'void' | gen_func_header(self, pfn) + | + | @param pfn: func_t * | | gen_header(self, *args) -> 'void' | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * | | gen_header_extra(self, *args) -> 'void' | gen_header_extra(self) @@ -72164,65 +88900,131 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self, *args) -> 'bool' | gen_xref_lines(self) -> bool | + | out_btoa(self, *args) -> 'void' + | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) + | | out_custom_mnem(self, *args) -> 'void' | out_custom_mnem(self, mnem, width=8, postfix=None) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' | | out_data(self, *args) -> 'void' | out_data(self, analyze_only) + | + | @param analyze_only: bool | | out_immchar_cmts(self, *args) -> 'void' | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. | | out_mnem(self, *args) -> 'void' | out_mnem(self, width=8, postfix=None) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic | | out_mnemonic(self, *args) -> 'void' | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. | | out_one_operand(self, *args) -> 'bool' | out_one_operand(self, n) -> bool + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden | | out_specea(self, *args) -> 'bool' | out_specea(self, segtype) -> bool + | + | @param segtype: uchar | | retrieve_cmt(self, *args) -> 'ssize_t' | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) -> 'ssize_t' | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * | | set_bin_state(self, *args) -> 'void' | set_bin_state(self, value) + | + | @param value: int | | setup_outctx(self, *args) -> 'void' | setup_outctx(self, prefix, flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | ash + | ash + | | bin_ea - | outctx_t_bin_ea_get(self) -> ea_t + | bin_ea | | bin_state - | outctx_t_bin_state_get(self) -> char + | bin_state | | bin_width - | outctx_t_bin_width_get(self) -> int + | bin_width | | curlabel - | outctx_t_curlabel_get(self) -> qstring * + | curlabel | | gl_bpsize - | outctx_t_gl_bpsize_get(self) -> int + | gl_bpsize | | insn - | outctx_t_insn_get(self) -> insn_t + | insn + | + | ph + | ph + | + | prefix_ea + | prefix_ea + | + | procmod + | procmod + | + | saved_immvals + | saved_immvals | | thisown | The membership flag | | wif - | outctx_t_wif_get(self) -> printop_t + | wif | | ---------------------------------------------------------------------- | Methods inherited from outctx_base_t: @@ -72238,9 +89040,20 @@ class outctx_t(outctx_base_t) | | flush_buf(self, *args) -> 'bool' | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) | | flush_outbuf(self, *args) -> 'bool' | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -72250,30 +89063,76 @@ class outctx_t(outctx_base_t) | | gen_block_cmt(self, *args) -> 'bool' | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) -> 'bool' | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -72283,66 +89142,138 @@ class outctx_t(outctx_base_t) | | out_addr_tag(self, *args) -> 'void' | out_addr_tag(self, ea) - | - | out_btoa(self, *args) -> 'void' - | out_btoa(self, Word, radix=0) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) | | out_char(self, *args) -> 'void' | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) | | out_chars(self, *args) -> 'void' | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) | | out_colored_register_line(self, *args) -> 'void' | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * | | out_keyword(self, *args) -> 'void' | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * | | out_line(self, *args) -> 'void' | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) | | out_long(self, *args) -> 'void' | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) | | out_name_expr(self, *args) -> 'bool' | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended | | out_register(self, *args) -> 'void' | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * | | out_spaces(self, *args) -> 'void' | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) | | out_symbol(self, *args) -> 'void' | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) | | out_tagoff(self, *args) -> 'void' | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) | | out_tagon(self, *args) -> 'void' | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) | - | out_value(self, *args) -> 'flags_t' - | out_value(self, x, outf=0) -> flags_t + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value | | print_label_now(self, *args) -> 'bool' | print_label_now(self) -> bool | | restore_ctxflags(self, *args) -> 'void' | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | + | @param ea: ea_t | | set_dlbind_opnd(self, *args) -> 'void' | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) -> 'void' | set_gen_cmt(self, on=True) + | + | @param on: bool | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -72352,12 +89283,18 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | + | @param on: bool | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -72369,343 +89306,83 @@ class outctx_t(outctx_base_t) | list of weak references to the object (if defined) | | default_lnnum - | outctx_base_t_default_lnnum_get(self) -> int + | default_lnnum | | insn_ea - | outctx_base_t_insn_ea_get(self) -> ea_t + | insn_ea | | outbuf - | outctx_base_t_outbuf_get(self) -> qstring * + | outbuf Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) -> 'outctx_t *' outctx_t__from_ptrval__(ptrval) -> outctx_t + + @param ptrval: size_t Help on function print_insn_mnem in module ida_ua: print_insn_mnem(*args) -> 'qstring *' print_insn_mnem(ea) -> str - - Print instruction mnemonics. - @param ea: linear address of the instruction (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction @return: success Help on function print_operand in module ida_ua: print_operand(*args) -> 'qstring *' print_operand(ea, n, getn_flags=0, newtype=None) -> str + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) - - Generate text representation for operand #n. This function will - generate the text representation of the specified operand (includes - color codes.) - - @param ea: the item address (instruction or data) (C++: ea_t) - @param n: operand number (0,1,2...). meaningful only for instructions - (C++: int) - @param getn_flags (C++: int) - @param newtype: if specified, print the operand using the specified - type (C++: struct printop_t *) + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) Name expression flags Currently only GETN_NODUMMY is + accepted. + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type @return: success -=== ida_ua EPYDOC INJECTIONS === -ida_ua.FCBF_CONT -""" -don't stop on decoding, or any other kind of error +Module "ida_xref"s docstring: """ +Functions that deal with cross-references. -ida_ua.FCBF_DELIM -""" -add the 'ash'-specified delimiters around the generated data. Note: if -those are not defined and the INFFL_ALLASM is not set, -'format_charlit()' will return an error -""" +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) -ida_ua.FCBF_ERR_REPL -""" -of a hex representation of the problematic byte +The source address of a cross-reference must be an item head (is_head) or a +structure member id. -in case of an error, use a CP_REPLCHAR instead -""" +Cross-references are automatically sorted.""" -ida_ua.FCBF_FF_LIT -""" -in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER -Y WITH DIAERESIS) If both this, and FCBF_REPL are specified, this will -take precedence -""" - -ida_ua.INSN_64BIT -""" -belongs to 64bit segment? -""" - -ida_ua.INSN_MACRO -""" -macro instruction -""" - -ida_ua.INSN_MODMAC -""" -may modify the database to make room for the macro insn -""" - -ida_ua.OF_NO_BASE_DISP -""" -base displacement doesn't exist. meaningful only for 'o_displ' type. -if set, base displacement ( 'op_t::addr' ) doesn't exist. -""" - -ida_ua.OF_NUMBER -""" -the operand can be converted to a number only -""" - -ida_ua.OF_OUTER_DISP -""" -outer displacement exists. meaningful only for 'o_displ' type. if set, -outer displacement ( 'op_t::value' ) exists. -""" - -ida_ua.OF_SHOW -""" -should the operand be displayed? -""" - -ida_ua.OOFS_IFSIGN -""" -output sign if needed -""" - -ida_ua.OOFS_NEEDSIGN -""" -always out sign (+-) -""" - -ida_ua.OOFS_NOSIGN -""" -don't output sign, forbid the user to change the sign -""" - -ida_ua.OOFW_16 -""" -16 bit width -""" - -ida_ua.OOFW_24 -""" -24 bit width -""" - -ida_ua.OOFW_32 -""" -32 bit width -""" - -ida_ua.OOFW_64 -""" -64 bit width -""" - -ida_ua.OOFW_8 -""" -8 bit width -""" - -ida_ua.OOFW_IMM -""" -take from x.dtype -""" - -ida_ua.OOF_ADDR -""" -output x.addr, otherwise x.value -""" - -ida_ua.OOF_ANYSERIAL -""" -if enum: select first available serial -""" - -ida_ua.OOF_NOBNOT -""" -prohibit use of binary not -""" - -ida_ua.OOF_NUMBER -""" -always as a number -""" - -ida_ua.OOF_OUTER -""" -output outer operand -""" - -ida_ua.OOF_SIGNED -""" -output as signed if < 0 -""" - -ida_ua.OOF_SIGNMASK -""" -sign symbol (+/-) output -""" - -ida_ua.OOF_SPACES -""" -currently works only for floating point numbers - -do not suppress leading spaces -""" - -ida_ua.OOF_WIDTHMASK -""" -width of value in bits -""" - -ida_ua.OOF_ZSTROFF -""" -meaningful only if is_stroff(uFlag) append a struct field name if the -field offset is zero? if 'AFL_ZSTROFF' is set, then this flag is -ignored. -""" - -ida_ua.PACK_FORM_DEF -""" -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. -""" - -ida_ua.dt_bitfild -""" -bit field (mc680x0) -""" - -ida_ua.dt_byte -""" -8 bit integer -""" - -ida_ua.dt_byte16 -""" -128 bit integer -""" - -ida_ua.dt_byte32 -""" -256 bit integer -""" - -ida_ua.dt_byte64 -""" -512 bit integer -""" - -ida_ua.dt_code -""" -ptr to code (not used?) -""" - -ida_ua.dt_double -""" -8 byte floating point -""" - -ida_ua.dt_dword -""" -32 bit integer -""" - -ida_ua.dt_float -""" -4 byte floating point -""" - -ida_ua.dt_fword -""" -48 bit -""" - -ida_ua.dt_half -""" -2-byte floating point -""" - -ida_ua.dt_ldbl -""" -long double (which may be different from tbyte) -""" - -ida_ua.dt_packreal -""" -packed real format for mc68040 -""" - -ida_ua.dt_qword -""" -64 bit integer -""" - -ida_ua.dt_string -""" -pointer to asciiz string -""" - -ida_ua.dt_tbyte -""" -variable size (\\ph{tbyte_size}) floating point -""" - -ida_ua.dt_unicode -""" -pointer to unicode string -""" - -ida_ua.dt_void -""" -none -""" - -ida_ua.dt_word -""" -16 bit integer -""" -=== ida_ua EPYDOC INJECTIONS END === Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' add_cref(frm, to, type) -> bool - - Create a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type @return: success Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' add_dref(frm, to, type) -> bool - - Create a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type @return: success (may fail if user-defined xref exists from->to) Help on function calc_switch_cases in module ida_xref: calc_switch_cases(*args) -> 'cases_and_targets_t *' calc_switch_cases(ea, si) -> cases_and_targets_t - - Get information about a switch's cases. The returned information can be used as follows: @@ -72746,10 +89423,10 @@ class cases_and_targets_t(builtins.object) | list of weak references to the object (if defined) | | cases - | cases_and_targets_t_cases_get(self) -> casevec_t + | cases | | targets - | cases_and_targets_t_targets_get(self) -> eavec_t * + | targets | | thisown | The membership flag @@ -72763,13 +89440,19 @@ class casevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72778,20 +89461,31 @@ class casevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ | | __swig_destroy__ = delete_casevec_t(...) | delete_casevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | @@ -72819,35 +89513,59 @@ class casevec_t(builtins.object) | | erase(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ | | extract(self, *args) -> 'qvector< signed-ea-like-numeric-type > *'↗ | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ | | find(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) -> 'bool' | has(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t | | insert(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | push_back(self, x) + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ | | qclear(self, *args) -> 'void' @@ -72855,16 +89573,26 @@ class casevec_t(builtins.object) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | + | @param cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | | resize(self, _newsize) + | + | @param _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -72890,8 +89618,6 @@ Help on function create_switch_table in module ida_xref: create_switch_table(*args) -> 'bool' create_switch_table(ea, si) -> bool - - Create switch table from the switch information @param ea: address of the 'indirect jump' instruction @@ -72903,8 +89629,6 @@ Help on function create_switch_xrefs in module ida_xref: create_switch_xrefs(*args) -> 'bool' create_switch_xrefs(ea, si) -> bool - - This function creates xrefs from the indirect jump. Usually there is no need to call this function directly because the kernel @@ -72919,184 +89643,166 @@ create_switch_xrefs(*args) -> 'bool' Help on function del_cref in module ida_xref: -del_cref(*args) -> 'int' - del_cref(frm, to, expand) -> int - - +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' del_dref(frm, to) - - Delete a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) -> 'void' delete_switch_table(jump_ea, si) + + @param jump_ea: ea_t + @param si: switch_info_t const & Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' get_first_dref_from(frm) -> ea_t - - Get first data referenced from the specified address. - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' get_first_dref_to(to) -> ea_t - - Get address of instruction/data referencing to the specified data. - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t + + @param to: ea_t Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' get_next_cref_from(frm, current) -> ea_t - - Get next instruction referenced from the specified instruction. - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' get_next_cref_to(to, current) -> ea_t - - Get next instruction referencing to the specified instruction. - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' get_next_dref_from(frm, current) -> ea_t - - Get next data referenced from the specified address. - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' get_next_dref_to(to, current) -> ea_t - - Get address of instruction/data referencing to the specified data - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t Help on function has_external_refs in module ida_xref: has_external_refs(*args) -> 'bool' has_external_refs(pfn, ea) -> bool + Does 'ea' have references from outside of 'pfn'? - - Has a location external to the function references? - - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -73113,19 +89819,61 @@ class xrefblk_t(builtins.object) | __swig_destroy__ = delete_xrefblk_t(...) | delete_xrefblk_t(self) | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | | first_from(self, *args) -> 'bool' | first_from(self, _from, flags) -> bool + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) | | first_to(self, *args) -> 'bool' | first_to(self, _to, flags) -> bool + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) | | next_from(self, *args) -> 'bool' | next_from(self) -> bool + | Get xref from '_from' that comes after '_to'. | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int | | next_to(self, *args) -> 'bool' | next_to(self) -> bool + | Get xref to '_to' that comes after '_from'. | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73137,79 +89885,44 @@ class xrefblk_t(builtins.object) | list of weak references to the object (if defined) | | frm - | xrefblk_t_frm_get(self) -> ea_t + | frm | | iscode - | xrefblk_t_iscode_get(self) -> uchar + | iscode | | thisown | The membership flag | | to - | xrefblk_t_to_get(self) -> ea_t + | to | | type - | xrefblk_t_type_get(self) -> uchar + | type | | user - | xrefblk_t_user_get(self) -> uchar + | user Help on function xrefchar in module ida_xref: xrefchar(*args) -> 'char' xrefchar(xrtype) -> char - - Get character describing the xref type. - @param xrtype: combination of Cross-Reference type flags and a - cref_t of dref_t value (C++: char) + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value -=== ida_xref EPYDOC INJECTIONS === -ida_xref.XREF_ALL +Module "idc"s docstring: """ -return all references +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. """ -ida_xref.XREF_BASE -""" -Reference to the base part of an offset. -""" - -ida_xref.XREF_DATA -""" -return data references only -""" - -ida_xref.XREF_FAR -""" -don't return ordinary flow xrefs -""" - -ida_xref.XREF_MASK -""" -Mask to get xref type. -""" - -ida_xref.XREF_PASTEND -""" -Reference is past item. This bit may be passed to 'add_dref()' -functions but it won't be saved in the database. It will prevent the -destruction of eventual alignment directives. -""" - -ida_xref.XREF_TAIL -""" -Reference to tail byte in extrn symbols. -""" - -ida_xref.XREF_USER -""" -User specified xref. This xref will not be deleted by IDA. This bit -should be combined with the existing xref types ( 'cref_t' & 'dref_t' -) Cannot be used for fl_F xrefs -""" -=== ida_xref EPYDOC INJECTIONS END === Help on function AddSeg in module idc: AddSeg(startea, endea, base, use32, align, comb) @@ -73230,6 +89943,11 @@ class DeprecatedIDCError(builtins.Exception) | builtins.BaseException | builtins.object | + | Methods defined here: + | + | add_note = dummy_replacement() + | + | ---------------------------------------------------------------------- | Data descriptors defined here: | | __weakref__ @@ -73301,13 +90019,11 @@ Help on function get_cmt in module ida_bytes: get_cmt(*args) -> 'qstring *' get_cmt(ea, rptble) -> str - - Get an indented comment. - @param ea: linear address. may point to tail byte, the function will - find start of the item (C++: ea_t) - @param rptble: get repeatable comment? (C++: bool) + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? @return: size of comment or -1 Help on function GetDisasm in module idc: @@ -73527,6 +90243,13 @@ __l2m1(v) 'signed long' version of -1, then return -1. Otherwise, return 'v'. +Help on function __m1tol in module idc: + +__m1tol(v) + Long -1 to BADNODE: If the 'v' appears to be the + 'signed long' version of -1, then return BADNODE. + Otherwise, return 'v'. + Help on function __warn_once_deprecated_proto_confusion in module idc: __warn_once_deprecated_proto_confusion(what, alternative) @@ -73536,6 +90259,10 @@ Help on function _get_modules in module idc: _get_modules() INTERNAL: Enumerate process modules +Help on function _import_module_flag_sets in module idc: + +_import_module_flag_sets(module, prefixes) + Help on function add_auto_stkpnt in module idc: add_auto_stkpnt(func_ea, ea, delta) @@ -73551,38 +90278,28 @@ Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + add_bpt(bpt) -> bool - - Add a new breakpoint in the debugged process. \sq{Type, Synchronous - function - available as request, Notification, none (synchronous - function)}Only one breakpoint can exist at a given address. - - @param ea: any address in the process memory space. Depending on the - architecture, hardware breakpoints always be setup at - random address. For example, on x86, hardware breakpoints - should be aligned depending on their size. Moreover, on the - x86 architecture, it is impossible to setup more than 4 - hardware breakpoints. (C++: ea_t) - @param size: size of the breakpoint (irrelevant for software - breakpoints): As for the address, hardware breakpoints - can't always be setup with random size. (C++: asize_t) - @param type: type of the breakpoint ( BPT_SOFT for software - breakpoint) special case BPT_DEFAULT ( BPT_SOFT | - BPT_EXEC ): try to add instruction breakpoint of the - appropriate type as follows: software bpt if supported, - hwbpt otherwise (C++: bpttype_t) + @param bpt: bpt_t const & Help on function add_cref in module ida_xref: add_cref(*args) -> 'bool' add_cref(frm, to, type) -> bool - - Create a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param type: cross-reference type (C++: cref_t) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type @return: success Help on function add_default_til in module idc: @@ -73597,32 +90314,28 @@ Help on function add_dref in module ida_xref: add_dref(*args) -> 'bool' add_dref(frm, to, type) -> bool - - Create a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) - @param type: cross-reference type (C++: dref_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type @return: success (may fail if user-defined xref exists from->to) Help on function add_entry in module ida_entry: add_entry(*args) -> 'bool' add_entry(ord, ea, name, makecode, flags=0) -> bool - - Add an entry point to the list of entry points. - @param ord: ordinal number if ordinal number is equal to 'ea' then - ordinal is not used (C++: uval_t) - @param ea: linear address (C++: ea_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to the regular - comment. If name == NULL, then the old name will be - retained. (C++: const char *) - @param makecode: should the kernel convert bytes at the entry point to - instruction(s) (C++: bool) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* @return: success (currently always true) Help on function add_enum in module idc: @@ -73665,43 +90378,37 @@ Help on function add_func in module ida_funcs: add_func(*args) -> 'bool' add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). - - Add a new function. If the function end address is 'BADADDR' , then - IDA will try to determine the function bounds by calling - find_func_bounds(..., 'FIND_FUNC_DEFINE' ). - - @param ea1: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address @return: success Help on function add_hidden_range in module ida_bytes: add_hidden_range(*args) -> 'bool' - add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color - - Mark a range of addresses as hidden. The range will be created in the - invisible state with the default color - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (C++: ea_t) - @param description: range parameters (C++: const char *) - @param header: range parameters (C++: const char *) - @param footer: range parameters (C++: const char *) - @param color (C++: bgcolor_t) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color @return: success Help on function add_idc_hotkey in module ida_kernwin: add_idc_hotkey(*args) -> 'int' add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). - - Add hotkey for IDC function ( 'ui_add_idckey' ). - - @param hotkey: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name @return: IDC hotkey error codes Help on function add_segm_ex in module idc: @@ -73728,16 +90435,13 @@ Help on function add_sourcefile in module ida_lines: add_sourcefile(*args) -> 'bool' add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. - - Mark a range of address as belonging to a source file. An address - range may belong only to one source file. A source file may be - represented by several address ranges. - - @param ea1: linear address of start of the address range (C++: ea_t) - @param ea2: linear address of end of the address range (excluded) - (C++: ea_t) - @param filename: name of source file. (C++: const char *) + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. @return: success Help on function add_struc in module idc: @@ -73796,13 +90500,10 @@ Help on function add_user_stkpnt in module ida_frame: add_user_stkpnt(*args) -> 'bool' add_user_stkpnt(ea, delta) -> bool - - Add user-defined SP register change point. - @param ea: linear address where SP changes (C++: ea_t) - @param delta: difference between old and new values of SP (C++: - sval_t) + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP @return: success Help on function append_func_tail in module idc: @@ -73835,21 +90536,22 @@ apply_type(ea, py_type, flags=1) Help on function ask_seg in module ida_kernwin: 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 Help on function ask_yn in module ida_kernwin: ask_yn(*args) -> 'int' ask_yn(deflt, format) -> int - - Display a dialog box and get choice from "Yes", "No", "Cancel". - @param deflt: default choice: one of Button IDs (C++: int) - @param format: The question in printf() style format (C++: const char - *) - @return: the selected button (one of Button IDs ). Esc key returns - ASKBTN_CANCEL . + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. Help on function atoa in module idc: @@ -73868,56 +90570,50 @@ Help on function attach_process in module ida_dbg: attach_process(*args) -> 'int' attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. - - Attach the debugger to a running process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_attach' - }This function shouldn't be called as a request if 'NO_PROCESS' is - used. - - @param pid: PID of the process to attach to. If NO_PROCESS , a dialog - box will interactively ask the user for the process to - attach to. (C++: pid_t) - @param event_id (C++: int) + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process Help on function auto_mark_range in module ida_auto: auto_mark_range(*args) -> 'void' auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Put range of addresses into a queue. 'start' may be higher than 'end', - the kernel will swap them in this case. 'end' doesn't belong to the - range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_unmark in module ida_auto: auto_unmark(*args) -> 'void' auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. - - Remove range of addresses from a queue. 'start' may be higher than - 'end', the kernel will swap them in this case. 'end' doesn't belong to - the range. - - @param start (C++: ea_t) - @param end (C++: ea_t) - @param type (C++: atype_t) + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) Help on function auto_wait in module ida_auto: auto_wait(*args) -> 'bool' auto_wait() -> bool - - Process everything in the queues and return true. - @return: false if the user clicked cancel. (the wait box must be - displayed by the caller if desired) + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) Help on function batch in module idc: @@ -73973,12 +90669,10 @@ Help on function check_bpt in module ida_dbg: check_bpt(*args) -> 'int' check_bpt(ea) -> int - - Check the breakpoint at the specified address. - @param ea (C++: ea_t) - @return: one of Breakpoint status codes + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -74001,14 +90695,14 @@ Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' create_align(ea, length, alignment) -> bool + Create an alignment item. - - Alignment: 0 or 2..32. If it is 0, is will be calculated. - - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param alignment (C++: int) + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success Help on function create_array in module idc: @@ -74032,35 +90726,28 @@ Help on function create_custdata in module ida_bytes: create_custdata(*args) -> 'bool' create_custdata(ea, length, dtid, fid, force=False) -> bool - - Convert to custom data type. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param dtid (C++: int) - @param fid (C++: int) - @param force (C++: bool) + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) Help on function create_data in module ida_bytes: create_data(*args) -> 'bool' create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. - - Convert to data (byte, word, dword, etc). This function may be used to - create arrays. - - @param ea: linear address (C++: ea_t) - @param dataflag: type of data. Value of function byte_flag() , - word_flag() , etc. (C++: flags_t) - @param size: size of array in bytes. should be divisible by the size - of one item of the specified type. for variable sized - items it can be specified as 0, and the kernel will try - to calculate the size. (C++: asize_t) - @param tid: type id. If the specified type is a structure, then tid is - structure id. Otherwise should be BADNODE . (C++: tid_t) + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. @return: success Help on function create_double in module idc: @@ -74094,16 +90781,14 @@ Help on function create_insn in module ida_ua: create_insn(*args) -> 'int' create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. - - Create an instruction at the specified address. This function checks - if an instruction is present at the specified address and will try to - create one if there is none. It will fail if there is a data item or - other items hindering the creation of the new instruction. This - function will also fill the 'out' structure. - - @param ea: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction @return: the length of the instruction or 0 Help on function create_oword in module idc: @@ -74193,17 +90878,14 @@ Help on function define_exception in module ida_dbg: define_exception(*args) -> 'char const *' define_exception(code, name, desc, flags) -> char const * - - Convenience function: define new exception code. - @param code: exception code (cannot be 0) (C++: uint) - @param name: exception name (cannot be empty or NULL) (C++: const char - *) - @param desc: exception description (maybe NULL) (C++: const char *) - @param flags: combination of Exception info flags (C++: int) - @return: failure message or NULL. You must call store_exceptions() - if this function succeeds + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds Help on function define_local_var in module idc: @@ -74238,50 +90920,44 @@ Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location del_bpt(bptloc) -> bool - - Delete an existing breakpoint in the debugged process. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param ea: any address in the breakpoint range (C++: ea_t) + @param bptloc: bpt_location_t const & Help on function del_cref in module ida_xref: -del_cref(*args) -> 'int' - del_cref(frm, to, expand) -> int - - +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool Delete a code cross-reference. - @param to: linear address of referenced instruction (C++: ea_t) - @param expand: policy to delete the referenced instruction 1: plan - to delete the referenced instruction if it has no more - references. 0: don't delete the referenced - instruction even if no more cross-references point to - it (C++: bool) + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted Help on function del_dref in module ida_xref: del_dref(*args) -> 'void' del_dref(frm, to) - - Delete a data cross-reference. - @param to: linear address of referenced data (C++: ea_t) + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data Help on function del_enum in module ida_enum: del_enum(*args) -> 'void' del_enum(id) - - Delete an enum type. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function del_enum_member in module idc: @@ -74301,27 +90977,25 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) -> 'void' del_fixup(source) - - Delete fixup information. - - @param source (C++: ea_t) + @param source: (C++: ea_t) Help on function del_func in module ida_funcs: del_func(*args) -> 'bool' del_func(ea) -> bool - - Delete a function. - @param ea: any address in the function entry chunk (C++: ea_t) + @param ea: (C++: ea_t) any address in the function entry chunk @return: success Help on function del_hash_string in module idc: @@ -74338,11 +91012,9 @@ Help on function del_hidden_range in module ida_bytes: del_hidden_range(*args) -> 'bool' del_hidden_range(ea) -> bool - - Delete hidden range. - @param ea: any address in the hidden range (C++: ea_t) + @param ea: (C++: ea_t) any address in the hidden range @return: success Help on function del_idc_hotkey in module ida_kernwin: @@ -74350,69 +91022,58 @@ Help on function del_idc_hotkey in module ida_kernwin: del_idc_hotkey(*args) -> 'bool' del_idc_hotkey(hotkey) -> bool - - Delete IDC function hotkey ( 'ui_del_idckey' ). - - @param hotkey: hotkey name (C++: const char *) + @param hotkey: char const * Help on function del_items in module ida_bytes: del_items(*args) -> 'bool' del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function - - Convert item (instruction/data) to unexplored bytes. The whole item - (including the head and tail bytes) will be destroyed. It is allowed - to pass any address in the item to this function - - @param ea: any address within the first item to delete (C++: ea_t) - @param flags: combination of Unexplored byte conversion flags (C++: - int) - @param nbytes: number of bytes in the range to be undefined (C++: - asize_t) - @param may_destroy: optional routine invoked before deleting a head - item. If callback returns false then item has not - to be deleted and operation fails (C++: - may_destroy_cb_t *) + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails @return: true on sucessful operation, otherwise false Help on function del_segm in module ida_segment: del_segm(*args) -> 'bool' del_segm(ea, flags) -> bool - - Delete a segment. - @param ea: any address belonging to the segment (C++: ea_t) - @param flags: Segment modification flags (C++: int) + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. Help on function del_selector in module ida_segment: del_selector(*args) -> 'void' del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. - - Delete mapping of a selector. Be wary of deleting selectors that are - being used in the program, this can make a mess in the segments. - - @param selector: number of selector to remove from the translation - table (C++: sel_t) + @param selector: (C++: sel_t) number of selector to remove from the translation table Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) + + @param ea: ea_t Help on function del_sourcefile in module ida_lines: del_sourcefile(*args) -> 'bool' del_sourcefile(ea) -> bool - - Delete information about the source file. - @param ea: linear address (C++: ea_t) + @param ea: (C++: ea_t) linear address @return: success Help on function del_stkpnt in module idc: @@ -74481,24 +91142,29 @@ Help on function detach_process in module ida_dbg: detach_process(*args) -> 'bool' detach_process() -> bool - - - Detach the debugger from the debugged process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_detach' } + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} Help on function diff_trace_file in module ida_dbg: diff_trace_file(*args) -> 'bool' - diff_trace_file(nonnul_filename) -> bool - - + diff_trace_file(NONNULL_filename) -> bool Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool Help on function enable_tracing in module idc: @@ -74514,8 +91180,6 @@ Help on function error in module ida_kernwin: error(*args) -> 'void' error(format) - - Display a fatal message in a message box and quit IDA @param format: message to print @@ -74536,10 +91200,8 @@ Help on function exit_process in module ida_dbg: exit_process(*args) -> 'bool' exit_process() -> bool - - - Terminate the debugging of the current process. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_process_exit' } + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} Help on function expand_struc in module idc: @@ -74566,43 +91228,34 @@ filelength(handle) Help on function find_binary in module idc: -find_binary(ea, flag, searchstr, radix=16, from_bc695=False) +find_binary(ea, flag, searchstr, radix=16) Help on function find_code in module ida_search: find_code(*args) -> 'ea_t' find_code(ea, sflag) -> ea_t - - Find next code address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_data in module ida_search: find_data(*args) -> 'ea_t' find_data(ea, sflag) -> ea_t - - Find next data address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_defined in module ida_search: find_defined(*args) -> 'ea_t' find_defined(ea, sflag) -> ea_t - - Find next ea that is the start of an instruction or data. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_func_end in module idc: @@ -74618,15 +91271,12 @@ find_func_end(ea) Help on function find_imm in module ida_search: find_imm(*args) -> 'int *' - find_imm(newEA, sflag, srchValue) -> ea_t - - + find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) Help on function find_selector in module idc: @@ -74644,29 +91294,23 @@ Help on function find_suspop in module ida_search: find_suspop(*args) -> 'int *' find_suspop(ea, sflag) -> ea_t - - Find next suspicious operand. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function find_text in module idc: -find_text(ea, flag, y, x, searchstr, from_bc695=False) +find_text(ea, flag, y, x, searchstr) Help on function find_unknown in module ida_search: find_unknown(*args) -> 'ea_t' find_unknown(ea, sflag) -> ea_t - - Find next unexplored address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + @param ea: (C++: ea_t) + @param sflag: (C++: int) Help on function first_func_chunk in module idc: @@ -74840,11 +91484,15 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + + @param slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + + @param slot: int32 Help on function get_bpt_attr in module idc: @@ -74869,28 +91517,23 @@ Help on function get_bpt_qty in module ida_dbg: get_bpt_qty(*args) -> 'int' get_bpt_qty() -> int - - - Get number of breakpoints. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_bpt_tev_ea in module ida_dbg: get_bpt_tev_ea(*args) -> 'ea_t' get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} - - Get the address associated to a read, read/write or execution trace - event. \sq{Type, Synchronous function, Notification, none (synchronous - function)}Usually, a breakpoint is associated with a read, read/write - or execution trace event. However, the returned address could be any - address in the range of this breakpoint. If the breakpoint was deleted - after the trace event, the address no longer corresponds to a valid - breakpoint. - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a read, read/write or execution trace event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. Help on function get_bytes in module idc: @@ -74910,14 +91553,12 @@ Help on function get_call_tev_callee in module ida_dbg: get_call_tev_callee(*args) -> 'ea_t' get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the called function from a function call trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function call event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. Help on function get_color in module idc: @@ -74940,23 +91581,18 @@ Help on function get_current_thread in module ida_dbg: get_current_thread(*args) -> 'thid_t' get_current_thread() -> thid_t - - - Get current thread ID. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_db_byte in module ida_bytes: get_db_byte(*args) -> 'uchar' get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. - - Get one byte (8-bit) of the program at 'ea' from the database. Works - even if the debugger is active. See also 'get_dbg_byte()' to read the - process memory directly. This function works only for 8bit byte - processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -74967,88 +91603,69 @@ Help on function get_entry in module ida_entry: get_entry(*args) -> 'ea_t' get_entry(ord) -> ea_t - - Get entry point address by its ordinal - @param ord: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR Help on function get_entry_name in module ida_entry: get_entry_name(*args) -> 'qstring *' get_entry_name(ord) -> str - - Get name of the entry point by its ordinal. - @param ord: ordinal number of entry point (C++: uval_t) + @param ord: (C++: uval_t) ordinal number of entry point @return: size of entry name or -1 Help on function get_entry_ordinal in module ida_entry: get_entry_ordinal(*args) -> 'uval_t' get_entry_ordinal(idx) -> uval_t - - Get ordinal number of an entry point. - @param idx: internal number of entry point. Should be in the range 0.. - get_entry_qty() -1 (C++: size_t) + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 @return: ordinal number or 0. Help on function get_entry_qty in module ida_entry: get_entry_qty(*args) -> 'size_t' get_entry_qty() -> size_t - - Get number of entry points. Help on function get_enum in module ida_enum: get_enum(*args) -> 'enum_t' get_enum(name) -> enum_t - - Get enum by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_cmt in module ida_enum: get_enum_cmt(*args) -> 'qstring *' get_enum_cmt(id, repeatable) -> str - - Get enum comment. - - @param id (C++: enum_t) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param repeatable: (C++: bool) Help on function get_enum_flag in module ida_enum: -get_enum_flag(*args) -> 'flags_t' - get_enum_flag(id) -> flags_t +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. - - Get flags determining the representation of the enum. (currently they - define the numeric base: octal, decimal, hex, bin) and signness. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' get_enum_idx(id) -> uval_t + Get the index in the list of enums. - - Get serial number of enum. The serial number determines the place of - the enum in the enum window. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_member in module idc: @@ -75068,23 +91685,17 @@ Help on function get_enum_member_bmask in module ida_enum: get_enum_member_bmask(*args) -> 'bmask_t' get_enum_member_bmask(id) -> bmask_t - - Get bitmask of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_by_name in module ida_enum: get_enum_member_by_name(*args) -> 'const_t' get_enum_member_by_name(name) -> const_t - - Get a reference to an enum member by its name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_enum_member_cmt in module idc: @@ -75100,12 +91711,9 @@ Help on function get_enum_member_enum in module ida_enum: get_enum_member_enum(*args) -> 'enum_t' get_enum_member_enum(id) -> enum_t - - Get the parent enum of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_member_name in module idc: @@ -75120,53 +91728,38 @@ Help on function get_enum_member_value in module ida_enum: get_enum_member_value(*args) -> 'uval_t' get_enum_member_value(id) -> uval_t - - Get value of an enum member. - - @param id (C++: const_t) + @param id: (C++: const_t) Help on function get_enum_name in module ida_enum: get_enum_name(*args) -> 'qstring *' get_enum_name(id) -> str - - Get name of enum. - - - @param id (C++: enum_t) + @param id: enum_t Help on function get_enum_qty in module ida_enum: get_enum_qty(*args) -> 'size_t' get_enum_qty() -> size_t - - - Get number of declared 'enum_t' types. + Get number of declared enum_t types. Help on function get_enum_size in module ida_enum: get_enum_size(*args) -> 'size_t' get_enum_size(id) -> size_t - - Get the number of the members of the enum. - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_enum_width in module ida_enum: get_enum_width(*args) -> 'size_t' get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 - - Get the width of a enum element allowed values: 0 - (unspecified),1,2,4,8,16,32,64 - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -75265,6 +91858,9 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int Help on function get_fchunk_attr in module idc: @@ -75280,75 +91876,63 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t Help on function get_first_bmask in module ida_enum: get_first_bmask(*args) -> 'bmask_t' - get_first_bmask(id) -> bmask_t - - + get_first_bmask(enum_id) -> bmask_t Get first bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum (bitfield) @return: the smallest bitmask for enum, or DEFMASK Help on function get_first_cref_from in module ida_xref: get_first_cref_from(*args) -> 'ea_t' get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). - - Get first instruction referenced from the specified instruction. If - the specified instruction passes execution to the next instruction - then the next instruction is returned. Otherwise the lowest referenced - address is returned (remember that xrefs are kept sorted!). - - @return: first referenced address. The lastXR variable contains type - of the reference. If the specified instruction doesn't - reference to other instructions then returns BADADDR . + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. Help on function get_first_cref_to in module ida_xref: get_first_cref_to(*args) -> 'ea_t' get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). - - Get first instruction referencing to the specified instruction. If the - specified instruction may be executed immediately after its previous - instruction then the previous instruction is returned. Otherwise the - lowest referencing address is returned. (remember that xrefs are kept - sorted!). - - @param to: linear address of referenced instruction (C++: ea_t) - @return: linear address of the first referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. Help on function get_first_dref_from in module ida_xref: get_first_dref_from(*args) -> 'ea_t' get_first_dref_from(frm) -> ea_t - - Get first data referenced from the specified address. - @return: linear address of first (lowest) data referenced from the - specified address. The lastXR variable contains type of the - reference. Return BADADDR if the specified instruction/data - doesn't reference to anything. + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. Help on function get_first_dref_to in module ida_xref: get_first_dref_to(*args) -> 'ea_t' get_first_dref_to(to) -> ea_t - - Get address of instruction/data referencing to the specified data. - @param to: linear address of referencing instruction or data (C++: - ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -75365,11 +91949,15 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) -> 'ea_t' get_first_fcref_from(frm) -> ea_t + + @param from: ea_t Help on function get_first_fcref_to in module ida_xref: get_first_fcref_to(*args) -> 'ea_t' get_first_fcref_to(to) -> ea_t + + @param to: ea_t Help on function get_first_hash_key in module idc: @@ -75429,11 +92017,9 @@ Help on function get_first_struc_idx in module ida_struct: get_first_struc_idx(*args) -> 'uval_t' get_first_struc_idx() -> uval_t - - Get index of first structure. - @return: BADADDR if no known structures, 0 otherwise + @return: BADADDR if no known structures, 0 otherwise Help on function get_fixup_target_dis in module idc: @@ -75489,12 +92075,10 @@ Help on function get_forced_operand in module ida_bytes: get_forced_operand(*args) -> 'qstring *' get_forced_operand(ea, n) -> str - - Get forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) @return: size of forced operand or -1 Help on function get_frame_args_size in module idc: @@ -75558,13 +92142,11 @@ get_frame_size(ea) Help on function get_full_flags in module ida_bytes: -get_full_flags(*args) -> 'flags_t' - get_full_flags(ea) -> flags_t - - +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t Get flags value for address 'ea'. - @param ea (C++: ea_t) + @param ea: (C++: ea_t) @return: 0 if address is not present in the program Help on function get_func_attr in module idc: @@ -75656,33 +92238,25 @@ Help on function get_input_file_path in module ida_nalt: get_input_file_path(*args) -> 'size_t' get_input_file_path() -> str - - Get full path of the input file. Help on function get_item_end in module ida_bytes: get_item_end(*args) -> 'ea_t' get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. - - Get the end address of the item at 'ea'. The returned address doesn't - belong to the current item. Unexplored bytes are counted as 1 byte - entities. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_head in module ida_bytes: get_item_head(*args) -> 'ea_t' get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) - - Get the start address of the item at 'ea'. If there is no current - item, then 'ea' will be returned (see definition at the end of - 'bytes.hpp' source) - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_item_size in module idc: @@ -75696,12 +92270,10 @@ get_item_size(ea) Help on function get_last_bmask in module ida_enum: get_last_bmask(*args) -> 'bmask_t' - get_last_bmask(id) -> bmask_t - - + get_last_bmask(enum_id) -> bmask_t Get last bitmask in the enum (bitfield) - @param id (C++: enum_t) + @param enum_id: (C++: enum_t) id of enum @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -75759,12 +92331,9 @@ Help on function get_last_struc_idx in module ida_struct: get_last_struc_idx(*args) -> 'uval_t' get_last_struc_idx() -> uval_t - - Get index of last structure. - @return: BADADDR if no known structures, get_struc_qty() -1 - otherwise + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise Help on function get_local_tinfo in module idc: @@ -75778,11 +92347,9 @@ Help on function get_manual_insn in module ida_bytes: get_manual_insn(*args) -> 'qstring *' get_manual_insn(ea) -> str - - Retrieve the user-specified string for the manual instruction. - @param ea: linear address of the instruction or data item (C++: ea_t) + @param ea: (C++: ea_t) linear address of the instruction or data item @return: size of manual instruction or -1 Help on function get_member_cmt in module idc: @@ -75957,17 +92524,14 @@ Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. - - Get address of the name. Dummy names (like byte_xxxx where xxxx are - hex digits) are parsed by this function to obtain the address. The - database is not consulted for them. This function works only with - regular names. - - @param _from: linear address where the name is used. if not - applicable, then should be BADADDR . (C++: ea_t) - @param name: any name in the program or NULL (C++: const char *) - @return: address of the name or BADADDR + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR Help on function get_name_ea_simple in module idc: @@ -75982,76 +92546,61 @@ get_name_ea_simple(name) Help on function get_next_bmask in module ida_enum: get_next_bmask(*args) -> 'bmask_t' - get_next_bmask(id, bmask) -> bmask_t - - + get_next_bmask(enum_id, bmask) -> bmask_t Get next bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value higher than the specified - value, or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK Help on function get_next_cref_from in module ida_xref: get_next_cref_from(*args) -> 'ea_t' get_next_cref_from(frm, current) -> ea_t - - Get next instruction referenced from the specified instruction. - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_from() or - previous call to get_next_cref_from() functions. - (C++: ea_t) - @return: next referenced address or BADADDR . The lastXR variable - contains type of the reference. + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. Help on function get_next_cref_to in module ida_xref: get_next_cref_to(*args) -> 'ea_t' get_next_cref_to(to, current) -> ea_t - - Get next instruction referencing to the specified instruction. - @param to: linear address of referenced instruction (C++: ea_t) - @param current: linear address of current referenced instruction This - value is returned by get_first_cref_to() or previous - call to get_next_cref_to() functions. (C++: ea_t) - @return: linear address of the next referencing instruction or - BADADDR . The lastXR variable contains type of the - reference. + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. Help on function get_next_dref_from in module ida_xref: get_next_dref_from(*args) -> 'ea_t' get_next_dref_from(frm, current) -> ea_t - - Get next data referenced from the specified address. - @param current: linear address of current referenced data. This value - is returned by get_first_dref_from() or previous - call to get_next_dref_from() functions. (C++: ea_t) - @return: linear address of next data or BADADDR . The lastXR - variable contains type of the reference + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. Help on function get_next_dref_to in module ida_xref: get_next_dref_to(*args) -> 'ea_t' get_next_dref_to(to, current) -> ea_t - - Get address of instruction/data referencing to the specified data - @param to: linear address of referencing instruction or data (C++: - ea_t) - @param current: current linear address. This value is returned by - get_first_dref_to() or previous call to - get_next_dref_to() functions. (C++: ea_t) - @return: BADADDR if nobody refers to the specified data. The lastXR - variable contains type of the reference. + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. Help on function get_next_enum_member in module idc: @@ -76081,21 +92630,25 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) -> 'ea_t' get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t Help on function get_next_fcref_to in module ida_xref: get_next_fcref_to(*args) -> 'ea_t' get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t Help on function get_next_fixup_ea in module ida_fixup: get_next_fixup_ea(*args) -> 'ea_t' get_next_fixup_ea(ea) -> ea_t - - Find next address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the next address with fixup information, or BADADDR Help on function get_next_func in module idc: @@ -76176,12 +92729,10 @@ Help on function get_next_struc_idx in module ida_struct: get_next_struc_idx(*args) -> 'uval_t' get_next_struc_idx(idx) -> uval_t - - Get next struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is out of bounds, otherwise idx++ + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ Help on function get_numbered_type_name in module idc: @@ -76233,25 +92784,21 @@ Help on function get_original_byte in module ida_bytes: get_original_byte(*args) -> 'uint64' get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. - - Get original byte value (that was before patching). This function - works for wide byte processors too. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_prev_bmask in module ida_enum: get_prev_bmask(*args) -> 'bmask_t' - get_prev_bmask(id, bmask) -> bmask_t - - + get_prev_bmask(enum_id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield) - @param id (C++: enum_t) - @param bmask (C++: bmask_t) - @return: value of a bitmask with value lower than the specified value, - or DEFMASK + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK Help on function get_prev_enum_member in module idc: @@ -76282,11 +92829,9 @@ Help on function get_prev_fixup_ea in module ida_fixup: get_prev_fixup_ea(*args) -> 'ea_t' get_prev_fixup_ea(ea) -> ea_t - - Find previous address with fixup information - @param ea: current address (C++: ea_t) + @param ea: (C++: ea_t) current address @return: the previous address with fixup information, or BADADDR Help on function get_prev_func in module idc: @@ -76348,91 +92893,80 @@ Help on function get_prev_struc_idx in module ida_struct: get_prev_struc_idx(*args) -> 'uval_t' get_prev_struc_idx(idx) -> uval_t - - Get previous struct index. - @param idx (C++: uval_t) - @return: BADADDR if resulting index is negative, otherwise idx - 1 + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 Help on function get_process_state in module ida_dbg: get_process_state(*args) -> 'int' get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Return the state of the currently debugged process. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @return: one of Debugged process states + @return: one of Debugged process states Help on function get_processes in module ida_dbg: get_processes(*args) -> 'ssize_t' get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} - - Take a snapshot of running processes and return their description. - \sq{Type, Synchronous function, Notification, none (synchronous - function)} - - @param proclist (C++: procinfo_vec_t *) + @param proclist: (C++: procinfo_vec_t *) array with information about each running process @return: number of processes or -1 on error Help on function get_qword in module ida_bytes: get_qword(*args) -> 'uint64' get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. - - Get one qword (64-bit) of the program at 'ea'. This function takes - into account order of bytes specified in \inf{is_be()} This function - works only for 8bit byte processors. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) -Help on function get_reg_value in module idc: +Help on function get_reg_val in module ida_dbg: -get_reg_value(name) - Get register value +get_reg_val(*args) -> 'PyObject *' + get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. - @param name: the register name + @param regname: (C++: const char *) char const * + @param regval: regval_t * - @note: The debugger should be running. otherwise the function fails - the register name should be valid. - It is not necessary to use this function to get register values - because a register name in the script will do too. + get_reg_val(regname, ival) -> bool - @return: register value (integer or floating point) + @param regname: char const * + @param ival: uint64 * + + get_reg_val(regname) -> bool, float, int + + @param regname: char const * Help on function get_ret_tev_return in module ida_dbg: get_ret_tev_return(*args) -> 'ea_t' get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - - Get the return address from a function return trace event. \sq{Type, - Synchronous function, Notification, none (synchronous function)} - - @param n: number of trace event, is in range 0.. get_bpt_qty() -1. 0 - represents the latest added trace event. (C++: int) - @return: BADADDR if not a function return event. + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. Help on function get_root_filename in module ida_nalt: get_root_filename(*args) -> 'size_t' get_root_filename() -> str - - Get file name only of the input file. Help on function get_screen_ea in module ida_kernwin: get_screen_ea(*args) -> 'ea_t' get_screen_ea() -> ea_t - - - Get the address at the screen cursor ( 'ui_screenea' ) + Get the address at the screen cursor (ui_screenea) Help on function get_segm_attr in module idc: @@ -76485,20 +93019,20 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t + + @param ea: ea_t Help on function get_sourcefile in module ida_lines: get_sourcefile(*args) -> 'char const *' get_sourcefile(ea, bounds=None) -> char const * - - Get name of source file occupying the given address. - @param ea: linear address (C++: ea_t) - @param bounds: pointer to the output buffer with the address range for - the current file. May be NULL. (C++: range_t *) - @return: NULL if source file information is not found, otherwise - returns pointer to file name + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name Help on function get_sp_delta in module idc: @@ -76541,10 +93075,8 @@ Help on function get_step_trace_options in module ida_dbg: get_step_trace_options(*args) -> 'int' get_step_trace_options() -> int - - - Get current step tracing options. \sq{Type, Synchronous function, - Notification, none (synchronous function)} + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} @return: Step trace options @@ -76571,82 +93103,67 @@ Help on function get_struc_by_idx in module ida_struct: get_struc_by_idx(*args) -> 'tid_t' get_struc_by_idx(idx) -> tid_t - - Get struct id by struct number. - - @param idx (C++: uval_t) + @param idx: (C++: uval_t) Help on function get_struc_cmt in module ida_struct: get_struc_cmt(*args) -> 'qstring *' get_struc_cmt(id, repeatable) -> str - - Get struct comment. - - @param id (C++: tid_t) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param repeatable: (C++: bool) Help on function get_struc_id in module ida_struct: get_struc_id(*args) -> 'tid_t' get_struc_id(name) -> tid_t - - Get struct id by name. - - @param name (C++: const char *) + @param name: (C++: const char *) char const * Help on function get_struc_idx in module ida_struct: get_struc_idx(*args) -> 'uval_t' get_struc_idx(id) -> uval_t - - Get internal number of the structure. - - @param id (C++: tid_t) + @param id: (C++: tid_t) Help on function get_struc_name in module ida_struct: get_struc_name(*args) -> 'qstring *' get_struc_name(id, flags=0) -> str - - Get struct name by id - - @param id: struct id (C++: tid_t) - @param flags: Struct name flags (C++: int) + @param id: tid_t + @param flags: int Help on function get_struc_qty in module ida_struct: get_struc_qty(*args) -> 'size_t' get_struc_qty() -> size_t - - Get number of known structures. Help on function get_struc_size in module ida_struct: get_struc_size(*args) -> 'asize_t' get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + get_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) - - - @param sptr (C++: const struc_t *) + @param id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) -> 'ea_t' get_tev_ea(n) -> ea_t + + @param n: int Help on function get_tev_reg_mem in module ida_dbg: @@ -76664,10 +93181,8 @@ Help on function get_tev_qty in module ida_dbg: get_tev_qty(*args) -> 'int' get_tev_qty() -> int - - - Get number of trace events available in trace buffer. \sq{Type, - Synchronous function, Notification, none (synchronous function)} + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} Help on function get_tev_reg_val in module ida_dbg: @@ -76677,20 +93192,22 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + + @param n: int Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + + @param n: int Help on function get_thread_qty in module ida_dbg: get_thread_qty(*args) -> 'int' get_thread_qty() -> int - - - Get number of threads. \sq{Type, Synchronous function, Notification, - none (synchronous function)} + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} Help on function get_tinfo in module idc: @@ -76704,12 +93221,9 @@ Help on function get_trace_file_desc in module ida_dbg: get_trace_file_desc(*args) -> 'qstring *' get_trace_file_desc(filename) -> str - - Get the file header of the specified trace file. - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function get_type in module idc: @@ -76724,40 +93238,34 @@ Help on function get_wide_byte in module ida_bytes: get_wide_byte(*args) -> 'uint64' get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. - - Get one wide byte of the program at 'ea'. Some processors may access - more than 8bit quantity at an address. These processors have 32-bit - byte organization from the IDA's point of view. - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_dword in module ida_bytes: get_wide_dword(*args) -> 'uint64' get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 - - Get two wide words (4 'bytes') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in - \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_wide_word in module ida_bytes: get_wide_word(*args) -> 'uint64' get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() - - Get one wide word (2 'byte') of the program at 'ea'. Some processors - may access more than 8bit quantity at an address. These processors - have 32-bit byte organization from the IDA's point of view. This - function takes into account order of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) + @param ea: (C++: ea_t) Help on function get_xref_type in module idc: @@ -76770,39 +93278,31 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> enum_t + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). - - Get enum by its ordinal number (0..n). - - - @param n (C++: size_t) + @param idx: (C++: size_t) Help on function getn_thread in module ida_dbg: getn_thread(*args) -> 'thid_t' getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the ID of a thread. \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. Help on function getn_thread_name in module ida_dbg: getn_thread_name(*args) -> 'char const *' getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} - - Get the NAME of a thread \sq{Type, Synchronous function, Notification, - none (synchronous function)} - - @param n: number of thread, is in range 0.. get_thread_qty() -1 or -1 - for the current thread (C++: int) - @return: thread name or NULL if the thread doesn't exist. + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. Help on function guess_type in module idc: @@ -76898,12 +93398,10 @@ Help on function is_bf in module ida_enum: is_bf(*args) -> 'bool' is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) - - Is enum a bitfield? (otherwise - plain enum, no bitmasks except for - 'DEFMASK' are allowed) - - @param id (C++: enum_t) + @param id: (C++: enum_t) Help on function is_byte in module idc: @@ -77065,12 +93563,9 @@ Help on function is_valid_trace_file in module ida_dbg: is_valid_trace_file(*args) -> 'bool' is_valid_trace_file(filename) -> bool - - Is the specified file a valid trace file for the current database? - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function is_word in module idc: @@ -77080,44 +93575,45 @@ Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success jumpto(custom_viewer, place, x, y) -> bool - - Jump to the specified address ( 'ui_jumpto' ). - - @param ea: destination (C++: ea_t) - @param opnum: -1: don't change x coord (C++: int) - @param uijmp_flags: Jump flags (C++: int) - @return: success + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int Help on function load_and_run_plugin in module ida_loader: load_and_run_plugin(*args) -> 'bool' load_and_run_plugin(name, arg) -> bool - - Load & run a plugin. - - @param name (C++: const char *) - @param arg (C++: size_t) + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool Help on function load_trace_file in module ida_dbg: load_trace_file(*args) -> 'qstring *' load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' - - Load a recorded trace file in the trace window. If the call succeeds - and 'buf' is not null, the description of the trace stored in the - binary trace file will be returned in 'buf' - - @param filename (C++: const char *) + @param filename: (C++: const char *) char const * Help on function loadfile in module idc: @@ -77156,9 +93652,7 @@ move_segm(ea, to, flags) Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' - msg(o) -> PyObject * - - + msg(o) -> int Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -77172,12 +93666,10 @@ Help on function next_addr in module ida_bytes: next_addr(*args) -> 'ea_t' next_addr(ea) -> ea_t - - Get next address in the program (i.e. next address which has flags). - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -77206,144 +93698,114 @@ Help on function next_not_tail in module ida_bytes: next_not_tail(*args) -> 'ea_t' next_not_tail(ea) -> ea_t - - Get address of next non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function op_bin in module ida_bytes: op_bin(*args) -> 'bool' op_bin(ea, n) -> bool + set op type to bin_flag() - - set op type to 'bin_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_chr in module ida_bytes: op_chr(*args) -> 'bool' op_chr(ea, n) -> bool + set op type to char_flag() - - set op type to 'char_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_dec in module ida_bytes: op_dec(*args) -> 'bool' op_dec(ea, n) -> bool + set op type to dec_flag() - - set op type to 'dec_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_enum in module ida_bytes: op_enum(*args) -> 'bool' op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'enum_t'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @param id: id of enum (C++: enum_t) - @param serial: the serial number of the constant in the enumeration, - usually 0. the serial numbers are used if the - enumeration contains several constants with the same - value (C++: uchar) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value @return: success Help on function op_flt in module ida_bytes: op_flt(*args) -> 'bool' op_flt(ea, n) -> bool + set op type to flt_flag() - - set op type to 'flt_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_hex in module ida_bytes: op_hex(*args) -> 'bool' op_hex(ea, n) -> bool + set op type to hex_flag() - - set op type to 'hex_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function set_forced_operand in module ida_bytes: set_forced_operand(*args) -> 'bool' set_forced_operand(ea, n, op) -> bool - - Set forced operand. - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, 2) (C++: int) - @param op: text of operand NULL: do nothing (return 0) "" : delete - forced operand (C++: const char *) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand @return: success Help on function op_num in module ida_bytes: op_num(*args) -> 'bool' op_num(ea, n) -> bool + set op type to num_flag() - - set op type to 'num_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_oct in module ida_bytes: op_oct(*args) -> 'bool' op_oct(ea, n) -> bool + set op type to oct_flag() - - set op type to 'oct_flag()' - - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function op_offset in module ida_offset: -op_offset(*args) -> 'int' - op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> int +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() - - See 'op_offset_ex()' - - - @param ea (C++: ea_t) - @param n (C++: int) - @param type (C++: reftype_t) - @param target (C++: ea_t) - @param base (C++: ea_t) - @param tdelta (C++: adiff_t) + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) Help on function op_offset_high16 in module idc: @@ -77404,27 +93866,23 @@ Help on function op_seg in module ida_bytes: op_seg(*args) -> 'bool' op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data - - Set operand representation to be 'segment'. If applied to unexplored - bytes, converts them to 16/32bit word data - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stkvar in module ida_bytes: op_stkvar(*args) -> 'bool' op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). - - Set operand representation to be 'stack variable'. Should be applied - to an instruction within a function. Should be applied after creating - a stack var using 'insn_t::create_stkvar()' . - - @param ea: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) @return: success Help on function op_stroff in module idc: @@ -77465,68 +93923,74 @@ Help on function patch_byte in module ida_bytes: patch_byte(*args) -> 'bool' patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a byte of the program. The original value of the byte is saved - and can be obtained by 'get_original_byte()' . This function works for - wide byte processors too. - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function put_dbg_byte in module ida_dbg: put_dbg_byte(*args) -> 'bool' put_dbg_byte(ea, x) -> bool - - Change one byte of the debugged process memory. - @param ea: linear address (C++: ea_t) - @param x: byte value (C++: uint32) + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value @return: true if the process memory has been modified Help on function patch_dword in module ida_bytes: patch_dword(*args) -> 'bool' patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a dword of the program. The original value of the dword is saved - and can be obtained by 'get_original_dword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_qword in module ida_bytes: patch_qword(*args) -> 'bool' patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a qword of the program. The original value of the qword is saved - and can be obtained by 'get_original_qword()' . This function DOESN'T - work for wide byte processors. This function takes into account order - of bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function patch_word in module ida_bytes: patch_word(*args) -> 'bool' patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. - - Patch a word of the program. The original value of the word is saved - and can be obtained by 'get_original_word()' . This function works for - wide byte processors too. This function takes into account order of - bytes specified in \inf{is_be()} - - @param ea (C++: ea_t) - @param x (C++: uint64) + @param ea: (C++: ea_t) + @param x: (C++: uint64) Help on function plan_and_wait in module idc: @@ -77543,25 +94007,19 @@ Help on function plan_to_apply_idasgn in module ida_funcs: plan_to_apply_idasgn(*args) -> 'int' plan_to_apply_idasgn(fname) -> int - - Add a signature file to the list of planned signature files. - @param fname: file name. should not contain directory part. (C++: - const char *) - @return: 0 if failed, otherwise number of planned (and applied) - signatures + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures Help on function prev_addr in module ida_bytes: prev_addr(*args) -> 'ea_t' prev_addr(ea) -> ea_t - - Get previous address in the program. - @param ea (C++: ea_t) - @return: BADADDR if no such address exist. + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -77578,12 +94036,10 @@ Help on function prev_not_tail in module ida_bytes: prev_not_tail(*args) -> 'ea_t' prev_not_tail(ea) -> ea_t - - Get address of previous non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + @param ea: (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -77595,37 +94051,6 @@ print_decls(ordinals, flags) @return: string containing the type definitions -Help on _Feature in module __future__ object: - -class _Feature(builtins.object) - | Methods defined here: - | - | __init__(self, optionalRelease, mandatoryRelease, compiler_flag) - | Initialize self. See help(type(self)) for accurate signature. - | - | __repr__(self) - | Return repr(self). - | - | getMandatoryRelease(self) - | Return release in which this feature will become mandatory. - | - | This is a 5-tuple, of the same form as sys.version_info, or, if - | the feature was dropped, is None. - | - | getOptionalRelease(self) - | Return first release in which this feature was recognized. - | - | This is a 5-tuple, of the same form as sys.version_info. - | - | ---------------------------------------------------------------------- - | Data descriptors defined here: - | - | __dict__ - | dictionary for instance variables (if defined) - | - | __weakref__ - | list of weak references to the object (if defined) - Help on function print_insn_mnem in module idc: print_insn_mnem(ea) @@ -77653,11 +94078,7 @@ print_operand(ea, n) Help on function process_config_line in module idc: process_config_line(directive) - Parse one or more ida.cfg config directives - @param directive: directives to process, for example: PACK_DATABASE=2 - - @note: If the directives are erroneous, a fatal error will be generated. - The settings are permanent: effective for the current session and the next ones + Obsolete. Please use ida_idp.process_config_directive(). Help on function process_ui_action in module idc: @@ -77672,16 +94093,21 @@ Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * Help on function qexit in module ida_pro: qexit(*args) -> 'void' qexit(code) - - Call qatexit functions, shut down UI and kernel, and exit. - @param code: exit code (C++: int) + @param code: (C++: int) exit code Help on function qsleep in module idc: @@ -77711,11 +94137,11 @@ Help on function dbg_read_memory in module ida_idd: dbg_read_memory(*args) -> 'PyObject *' dbg_read_memory(ea, sz) -> PyObject * - - Reads from the debugee's memory at the specified ea - @return: - - The read buffer (as a string) + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) - Or None on failure Help on function read_dbg_qword in module idc: @@ -77763,49 +94189,44 @@ Help on function rebase_program in module ida_segment: rebase_program(*args) -> 'int' rebase_program(delta, flags) -> int - - Rebase the whole program by 'delta' bytes. - @param delta: number of bytes to move the program (C++: adiff_t) - @param flags: Move segment flags it is recommended to use - MSF_FIXONCE so that the loader takes care of global - variables it stored in the database (C++: int) + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database @return: Move segment result codes Help on function recalc_spd in module ida_frame: recalc_spd(*args) -> 'bool' recalc_spd(cur_ea) -> bool - - Recalculate SP delta for an instruction that stops execution. The next - instruction is not reached from the current instruction. We need to - recalculate SP for the next instruction.This function will create a - new automatic SP register change point if necessary. It should be - called from the emulator (emu.cpp) when auto_state == 'AU_USED' if the - current instruction doesn't pass the execution flow to the next - instruction. + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed Help on function refresh_debugger_memory in module ida_dbg: refresh_debugger_memory(*args) -> 'PyObject *' refresh_debugger_memory() -> PyObject * - - Refreshes the debugger memory + @return: Nothing Help on function refresh_idaview_anyway in module ida_kernwin: refresh_idaview_anyway(*args) -> 'void' refresh_idaview_anyway() - - - Refresh all disassembly views ( 'ui_refresh' ), forces an immediate - refresh. Please consider 'request_refresh()' instead + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead Help on function refresh_choosers in module ida_kernwin: @@ -77836,15 +94257,12 @@ Help on function rename_entry in module ida_entry: rename_entry(*args) -> 'bool' rename_entry(ord, name, flags=0) -> bool - - Rename entry point. - @param ord: ordinal number of the entry point (C++: uval_t) - @param name: name of entry point. If the specified location already - has a name, the old name will be appended to a repeatable - comment. (C++: const char *) - @param flags: See AEF_* (C++: int) + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* @return: success Help on function resume_process in module idc: @@ -77855,19 +94273,18 @@ Help on function resume_thread in module ida_dbg: resume_thread(*args) -> 'int' resume_thread(tid) -> int - - Resume thread. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function retrieve_input_file_md5 in module ida_nalt: retrieve_input_file_md5(*args) -> 'uchar [ANY]' retrieve_input_file_md5() -> bytes - - Get input file md5. Help on function rotate_byte in module idc: @@ -77900,20 +94317,14 @@ Help on function run_to in module ida_dbg: run_to(*args) -> 'bool' run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} - - Execute the process until the given address is reached. If no process - is active, a new process is started. Technically, the debugger sets up - a temporary breakpoint at the given address, and continues (or starts) - the execution of the whole process. So, all threads continue their - execution! \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_run_to' } - - @param ea: target address (C++: ea_t) - @param pid: not used yet. please do not specify this parameter. (C++: - pid_t) - @param tid: not used yet. please do not specify this parameter. (C++: - thid_t) + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. Help on function save_database in module idc: @@ -77928,13 +94339,10 @@ Help on function save_trace_file in module ida_dbg: save_trace_file(*args) -> 'bool' save_trace_file(filename, description) -> bool - - Save the current trace in the specified file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function savefile in module idc: @@ -77956,14 +94364,12 @@ Help on function select_thread in module ida_dbg: select_thread(*args) -> 'bool' select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} - - Select the given thread as the current debugged thread. All thread - related execution functions will work on this thread. The process must - be suspended to select a new thread. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param tid: ID of the thread to select (C++: thid_t) + @param tid: (C++: thid_t) ID of the thread to select @return: false if the thread doesn't exist. Help on function selector_by_name in module idc: @@ -78069,14 +94475,13 @@ Help on function set_cmt in module ida_bytes: set_cmt(*args) -> 'bool' set_cmt(ea, comm, rptble) -> bool - - Set an indented comment. - @param ea: linear address (C++: ea_t) - @param comm: comment string NULL: do nothing (return 0) "" : - delete comment (C++: const char *) - @param rptble: is repeatable? (C++: bool) + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? @return: success Help on function set_color in module idc: @@ -78093,18 +94498,18 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) -> 'void' - set_debugger_event_cond(nonnul_cond) + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * Help on function set_debugger_options in module ida_dbg: set_debugger_options(*args) -> 'uint' set_debugger_options(options) -> uint - - Set debugger options. Replaces debugger options with the specification - combination 'Debugger options' + combination Debugger options - @param options (C++: uint) + @param options: (C++: uint) @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -78122,98 +94527,75 @@ Help on function set_enum_bf in module ida_enum: set_enum_bf(*args) -> 'bool' set_enum_bf(id, bf) -> bool - - Set 'bitfield' bit of enum (i.e. convert it to a bitfield) - - @param id (C++: enum_t) - @param bf (C++: bool) + @param id: (C++: enum_t) + @param bf: (C++: bool) Help on function set_enum_cmt in module ida_enum: set_enum_cmt(*args) -> 'bool' set_enum_cmt(id, cmt, repeatable) -> bool - - Set comment for enum type. - - @param id (C++: enum_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_flag in module ida_enum: set_enum_flag(*args) -> 'bool' set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) Help on function set_enum_idx in module ida_enum: set_enum_idx(*args) -> 'bool' set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). - - Set serial number of enum. Also see 'get_enum_idx()' . - - @param id (C++: enum_t) - @param idx (C++: size_t) + @param id: (C++: enum_t) + @param idx: (C++: size_t) Help on function set_enum_member_cmt in module ida_enum: set_enum_member_cmt(*args) -> 'bool' set_enum_member_cmt(id, cmt, repeatable) -> bool - - Set comment for enum member. - - @param id (C++: const_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_enum_member_name in module ida_enum: set_enum_member_name(*args) -> 'bool' set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + @param id: (C++: const_t) + @param name: (C++: const char *) char const * Help on function set_enum_name in module ida_enum: set_enum_name(*args) -> 'bool' set_enum_name(id, name) -> bool - - Set name of enum type. - - @param id (C++: enum_t) - @param name (C++: const char *) + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * Help on function set_enum_width in module ida_enum: set_enum_width(*args) -> 'bool' set_enum_width(id, width) -> bool + See comment for get_enum_width() - - See comment for 'get_enum_width()' - - - @param id (C++: enum_t) - @param width (C++: int) + @param id: (C++: enum_t) + @param width: (C++: int) Help on function set_fchunk_attr in module idc: @@ -78286,12 +94668,10 @@ Help on function set_func_end in module ida_funcs: set_func_end(*args) -> 'bool' set_func_end(ea, newend) -> bool - - Move function chunk end address. - @param ea: any address in the function (C++: ea_t) - @param newend: new end address of the function (C++: ea_t) + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function @return: success Help on function set_func_flags in module idc: @@ -78330,11 +94710,9 @@ Help on function set_ida_state in module ida_auto: set_ida_state(*args) -> 'idastate_t' set_ida_state(st) -> idastate_t - - Change IDA status indicator value - @param st: - new indicator status (C++: idastate_t) + @param st: (C++: idastate_t) - new indicator status @return: old indicator status Help on function set_inf_attr in module idc: @@ -78359,13 +94737,10 @@ Help on function set_manual_insn in module ida_bytes: set_manual_insn(*args) -> 'void' set_manual_insn(ea, manual_insn) - - Set manual instruction string. - @param ea: linear address of the instruction or data item (C++: ea_t) - @param manual_insn: "" - delete manual string. NULL - do nothing (C++: - const char *) + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing Help on function set_member_cmt in module idc: @@ -78434,14 +94809,12 @@ Help on function set_processor_type in module ida_idp: set_processor_type(*args) -> 'bool' set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. - - Set target processor type. Once a processor module is loaded, it - cannot be replaced until we close the idb. - - @param procname: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ @return: success Help on function set_reg_value in module idc: @@ -78460,25 +94833,20 @@ Help on function set_remote_debugger in module ida_dbg: set_remote_debugger(*args) -> 'void' set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. - - Set remote debugging options. Should be used before starting the - debugger. - - @param host: If empty, IDA will use local debugger. If NULL, the host - will not be set. (C++: const char *) - @param port: If -1, the default port number will be used (C++: int) + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used Help on function set_root_filename in module ida_nalt: set_root_filename(*args) -> 'void' set_root_filename(file) - - Set full path of the input file. - - @param file (C++: const char *) + @param file: (C++: const char *) char const * Help on function set_segm_addressing in module idc: @@ -78568,61 +94936,56 @@ Help on function set_selector in module ida_segment: set_selector(*args) -> 'int' set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. - - Set mapping of selector to a paragraph. You should call this - functionbeforecreating a segment which uses the selector, otherwise - the creation of the segment will fail. - - @param selector: number of selector to map if selector == BADSEL , - then return 0 (fail) if the selector has had a - mapping, old mapping is destroyed if the selector - number is equal to paragraph value, then the mapping - is destroyed because we don't need to keep trivial - mappings. (C++: sel_t) - @param paragraph: paragraph to map selector (C++: ea_t) + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t Help on function set_step_trace_options in module ida_dbg: set_step_trace_options(*args) -> 'void' set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} - - Modify step tracing options. \sq{Type, Synchronous function - - available as request, Notification, none (synchronous function)} - - @param options (C++: int) + @param options: (C++: int) Help on function change_storage_type in module ida_bytes: change_storage_type(*args) -> 'error_t' change_storage_type(start_ea, end_ea, stt) -> error_t - - Change flag storage type for address range. - @param start_ea: should be lower than end_ea. (C++: ea_t) - @param end_ea: does not belong to the range. (C++: ea_t) - @param stt: storage_type_t (C++: storage_type_t) + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) @return: error code Help on function set_struc_cmt in module ida_struct: set_struc_cmt(*args) -> 'bool' set_struc_cmt(id, cmt, repeatable) -> bool - - Set structure comment. - - @param id (C++: tid_t) - @param cmt (C++: const char *) - @param repeatable (C++: bool) + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) Help on function set_struc_idx in module idc: @@ -78641,13 +95004,10 @@ Help on function set_struc_name in module ida_struct: set_struc_name(*args) -> 'bool' set_struc_name(id, name) -> bool - - Set structure name. - - @param id (C++: tid_t) - @param name (C++: const char *) + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * Help on function set_tail_owner in module idc: @@ -78665,25 +95025,19 @@ Help on function set_target_assembler in module ida_idp: set_target_assembler(*args) -> 'bool' set_target_assembler(asmnum) -> bool - - Set target assembler. - @param asmnum: number of assembler in the current processor module - (C++: int) + @param asmnum: (C++: int) number of assembler in the current processor module @return: success Help on function set_trace_file_desc in module ida_dbg: set_trace_file_desc(*args) -> 'bool' set_trace_file_desc(filename, description) -> bool - - Change the description of the specified trace file. - - @param filename (C++: const char *) - @param description (C++: const char *) + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * Help on function split_sreg_range in module idc: @@ -78703,49 +95057,43 @@ Help on function start_process in module ida_dbg: start_process(*args) -> 'int' start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. - - Start a process in the debugger. \sq{Type, Asynchronous function - - available as Request, Notification, 'dbg_process_start' }You can also - use the 'run_to()' function to easily start the execution of a process - until a given address is reached.For all parameters, a NULL value - indicates the debugger will take the value from the defined Process - Options. - - @param path: path to the executable to start (C++: const char *) - @param args: arguments to pass to process (C++: const char *) - @param sdir: starting directory for the process (C++: const char *) + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started Help on function step_into in module ida_dbg: step_into(*args) -> 'bool' step_into() -> bool - - - Execute one instruction in the current thread. Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_into' } + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} Help on function step_over in module ida_dbg: step_over(*args) -> 'bool' step_over() -> bool - - - Execute one instruction in the current thread, but without entering - into functions. Others threads keep suspended. \sq{Type, Asynchronous - function - available as Request, Notification, 'dbg_step_over' } + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} Help on function step_until_ret in module ida_dbg: step_until_ret(*args) -> 'bool' step_until_ret() -> bool - - - Execute instructions in the current thread until a function return - instruction is executed (aka "step out"). Other threads are kept - suspended. \sq{Type, Asynchronous function - available as Request, - Notification, 'dbg_step_until_ret' } + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} Help on function strlen in module idc: @@ -78763,40 +95111,37 @@ Help on function suspend_process in module ida_dbg: suspend_process(*args) -> 'bool' suspend_process() -> bool - - - Suspend the process in the debugger. \sq{ Type,Synchronous function - (if in a notification handler)Asynchronous function (everywhere - else)available as Request, Notification,none (if in a notification - handler) 'dbg_suspend_process' (everywhere else) }The - 'suspend_process()' function can be called from a notification handler - to force the stopping of the process. In this case, no notification - will be generated. When you suspend a process, the running command is - always aborted. + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. Help on function suspend_thread in module ida_dbg: suspend_thread(*args) -> 'int' suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} - - Suspend thread. Suspending a thread may deadlock the whole application - if the suspended was owning some synchronization objects. \sq{Type, - Synchronous function - available as request, Notification, none - (synchronous function)} - - @param tid: thread id (C++: thid_t) + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok Help on function take_memory_snapshot in module ida_segment: take_memory_snapshot(*args) -> 'bool' - take_memory_snapshot(only_loader_segs) -> bool - - + take_memory_snapshot(type) -> bool Take a memory snapshot of the running process. - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) @return: success Help on function to_ea in module idc: @@ -78819,18 +95164,20 @@ Help on function toggle_sign in module ida_bytes: toggle_sign(*args) -> 'bool' toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands - - Toggle sign of n-th operand. allowed values of n: 0-first operand, - 1-other operands - - @param ea (C++: ea_t) - @param n (C++: int) + @param ea: (C++: ea_t) + @param n: (C++: int) Help on function update_extra_cmt in module ida_lines: update_extra_cmt(*args) -> 'void' update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * Help on function update_hidden_range in module idc: @@ -78890,24 +95237,19 @@ Help on function wait_for_next_event in module ida_dbg: wait_for_next_event(*args) -> 'dbg_event_code_t' wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. - Wait for the next event.This function (optionally) resumes the process - execution, and waits for a debugger event until a possible timeout - occurs. - - @param wfne: combination of Wait for debugger event flags constants - (C++: int) - @param timeout: number of seconds to wait, -1-infinity (C++: int) - @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= - 0) + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) Help on function warning in module ida_kernwin: warning(*args) -> 'void' warning(format) - - Display a message in a message box @param message: message to print (formatting is done in Python) @@ -78943,3 +95285,16988 @@ Help on function xtol in module idc: xtol(s) + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable GFE_IDB_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. but never use the debugger memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable FUNC_OUTLINE in module ida_funcs: + + Outlined code, not a real function. + +Documentation on variable FUNC_REANALYZE in module ida_funcs: + + Function frame changed, request to reanalyze the function after the last insn is + analyzed. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable FC_OUTLINES in module ida_gdl: + + include outlined code (with FUNC_OUTLINE) + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + 16-bit functions cannot be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant (user representation) + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable IPROP_UNMERGED in module ida_hexrays: + + 'goto' instruction was transformed info 'call' + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile. if not null, then function mode. + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + snippet mode: ranges to decompile. function mode: list of outlined ranges + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_HAS_OUTLINES in module ida_hexrays: + + calls to outlined code have been inlined + +Documentation on variable MBA2_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable MBA2_PROP_COMPLEX in module ida_hexrays: + + allow propagation of more complex variable definitions + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant (user representation) + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable DECOMP_VOID_MBA in module ida_hexrays: + + return empty mba object (to be used with gen_microcode) + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + Motorola SREC (S-record) + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X Mach-O. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable idbattr_info_t.name in module ida_ida: + + human-readable name + +Documentation on variable idbattr_info_t.offset in module ida_ida: + + field position: offset within a structure (IDI_STRUCFLD) altval or supval index + (IDI_NODEVAL) hashval name (IDI_NODEVAL+IDI_HASH) + +Documentation on variable idbattr_info_t.width in module ida_ida: + + field width in bytes + +Documentation on variable idbattr_info_t.bitmask in module ida_ida: + + mask for bitfields (0-not bitfield) + +Documentation on variable idbattr_info_t.tag in module ida_ida: + + tag of node value (if IDI_NODEVAL is set) + +Documentation on variable idbattr_info_t.vmap in module ida_ida: + + array value=>name (terminated by empty element) + +Documentation on variable idbattr_info_t.individual_node in module ida_ida: + + individual node name (nullptr - use default) + +Documentation on variable idbattr_info_t.maxsize in module ida_ida: + + max bytes reserved for storage in netnode + +Documentation on variable IDI_STRUCFLD in module ida_ida: + + structure field (opposite to IDI_NODEVAL) + +Documentation on variable IDI_SCALAR in module ida_ida: + + scalar value (default) + +Documentation on variable IDI_CSTR in module ida_ida: + + string + +Documentation on variable IDI_QSTRING in module ida_ida: + + qstring + +Documentation on variable IDI_BYTEARRAY in module ida_ida: + + byte array: binary representation + +Documentation on variable IDI_EA_HEX in module ida_ida: + + default representation: hex or "BADADDR" + +Documentation on variable IDI_DEC in module ida_ida: + + show as decimal + +Documentation on variable IDI_HEX in module ida_ida: + + show as hexadecimal + +Documentation on variable IDI_INC in module ida_ida: + + stored value is incremented (scalars only) + +Documentation on variable IDI_MAP_VAL in module ida_ida: + + apply ea2node() to value + +Documentation on variable IDI_HASH in module ida_ida: + + hashed node field, hash name in offset + +Documentation on variable IDI_HLPSTRUC in module ida_ida: + + call helper for pointer to structure + +Documentation on variable IDI_READONLY in module ida_ida: + + read-only field (cannot be modified) + +Documentation on variable IDI_BITMAP in module ida_ida: + + bitmap field: interpret bitmask as bit number + +Documentation on variable IDI_ONOFF in module ida_ida: + + show boolean as on/off (not true/false) + +Documentation on variable IDI_NOMERGE in module ida_ida: + + field should not be merged as part of INF + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable debugger_t.version in module ida_idd: + + Expected kernel version, should be IDD_INTERFACE_VERSION + +Documentation on variable debugger_t.name in module ida_idd: + + Short debugger name like win32 or linux. + +Documentation on variable debugger_t.id in module ida_idd: + + one of Debugger API module id + +Documentation on variable debugger_t.processor in module ida_idd: + + Required processor name. Used for instant debugging to load the correct + processor module + +Documentation on variable debugger_t.flags2 in module ida_idd: + + Debugger module features + +Documentation on variable debugger_t.default_regclasses in module ida_idd: + + Mask of default printed register classes. + +Documentation on variable debugger_t.memory_page_size in module ida_idd: + + Size of a memory page. Usually 4K. + +Documentation on variable debugger_t.bpt_size in module ida_idd: + + Size of the software breakpoint instruction in bytes. + +Documentation on variable debugger_t.filetype in module ida_idd: + + Input file type for the instant debugger. This value will be used after + attaching to a new process. + +Documentation on variable debugger_t.resume_modes in module ida_idd: + + Resume modes + +Documentation on variable debugger_t.ev_init_debugger in module ida_idd: + + Initialize debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_term_debugger in module ida_idd: + + Terminate debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_get_processes in module ida_idd: + + Return information about the running processes. This event is generated in the + main thread. Available if DBG_HAS_GET_PROCESSES is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_start_process in module ida_idd: + + Start an executable to debug. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_CRC, DRC_FAILED, DRC_NETERR, DRC_NOFILE + +Documentation on variable debugger_t.ev_attach_process in module ida_idd: + + Attach to an existing running process. event_id should be equal to -1 if not + attaching to a crashed process. This event is generated in debthread. Available + if DBG_HAS_ATTACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_detach_process in module ida_idd: + + Detach from the debugged process. May be generated while the process is running + or suspended. Must detach from the process in any case. The kernel will + repeatedly call get_debug_event() until PROCESS_DETACHED is received. In this + mode, all other events will be automatically handled and process will be + resumed. This event is generated from debthread. Available if + DBG_HAS_DETACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debapp_attrs in module ida_idd: + + Retrieve process- and debugger-specific runtime attributes. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_rebase_if_required_to in module ida_idd: + + Rebase database if the debugged program has been rebased by the system. This + event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_request_pause in module ida_idd: + + Prepare to pause the process. Normally the next get_debug_event() will pause the + process If the process is sleeping, then the pause will not occur until the + process wakes up. If the debugger module does not react to this event, then it + will be impossible to pause the program. This event is generated in debthread. + Available if DBG_HAS_REQUEST_PAUSE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_exit_process in module ida_idd: + + Stop the process. May be generated while the process is running or suspended. + Must terminate the process in any case. The kernel will repeatedly call + get_debug_event() until PROCESS_EXITED is received. In this mode, all other + events will be automatically handled and process will be resumed. This event is + generated in debthread. Must be implemented. + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debug_event in module ida_idd: + + Get a pending debug event and suspend the process. This event will be generated + regularly by IDA. This event is generated in debthread. IMPORTANT: the + BREAKPOINT/EXCEPTION/STEP events must be reported only after reporting other + pending events for a thread. Must be implemented. + + @retval ignored + +Documentation on variable debugger_t.ev_resume in module ida_idd: + + Continue after handling the event. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_set_exception_info in module ida_idd: + + Set exception handling. This event is generated in debthread or the main thread. + Available if DBG_HAS_SET_EXCEPTION_INFO is set + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_suspended in module ida_idd: + + This event will be generated by the kernel each time it has suspended the + debugger process and refreshed the database. The debugger module may add + information to the database if it wants. + + The reason for introducing this event is that when an event line LOAD_DLL + happens, the database does not reflect the memory state yet and therefore we + can't add information about the dll into the database in the get_debug_event() + event. Only when the kernel has adjusted the database we can do it. Example: for + imported PE DLLs we will add the exported event names to the database. + + This event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_thread_suspend in module ida_idd: + + Suspend a running thread Available if DBG_HAS_THREAD_SUSPEND is set + +Documentation on variable debugger_t.ev_thread_continue in module ida_idd: + + Resume a suspended thread Available if DBG_HAS_THREAD_CONTINUE is set + +Documentation on variable debugger_t.ev_set_resume_mode in module ida_idd: + + Specify resume action Available if DBG_HAS_SET_RESUME_MODE is set + +Documentation on variable debugger_t.ev_read_registers in module ida_idd: + + Read thread registers. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_write_register in module ida_idd: + + Write one thread register. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_thread_get_sreg_base in module ida_idd: + + Get information about the base of a segment register. Currently used by the IBM + PC module to resolve references like fs:0. This event is generated in debthread. + Available if DBG_HAS_THREAD_GET_SREG_BASE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_memory_info in module ida_idd: + + Get information on the memory ranges. The debugger module fills 'ranges'. The + returned vector must be sorted. This event is generated in debthread. Must be + implemented. + + @retval DRC_OK: new memory layout is returned + @retval DRC_FAILED,DRC_NETERR,DRC_NOPROC,DRC_NOCHG,DRC_IDBSEG + +Documentation on variable debugger_t.ev_read_memory in module ida_idd: + + Read process memory. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NOPROC + +Documentation on variable debugger_t.ev_write_memory in module ida_idd: + + Write process memory. This event is generated in debthread. + + @retval DRC_OK,DRC_FAILED,DRC_NOPROC + +Documentation on variable debugger_t.ev_check_bpt in module ida_idd: + + Is it possible to set breakpoint? This event is generated in debthread or in the + main thread if debthread is not running yet. It is generated to verify hardware + breakpoints. Available if DBG_HAS_CHECK_BPT is set + + @return: DRC_OK, DRC_NONE + +Documentation on variable debugger_t.ev_update_bpts in module ida_idd: + + Add/del breakpoints. bpts array contains nadd bpts to add, followed by ndel bpts + to del. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_update_lowcnds in module ida_idd: + + Update low-level (server side) breakpoint conditions. This event is generated in + debthread. + + @return: DRC_OK, DRC_NETERR + +Documentation on variable debugger_t.ev_open_file in module ida_idd: + + @retval (int): handle + @retval -1: error + +Documentation on variable debugger_t.ev_close_file in module ida_idd: + + @return: ignored + +Documentation on variable debugger_t.ev_read_file in module ida_idd: + + @retval number: of read bytes + +Documentation on variable debugger_t.ev_write_file in module ida_idd: + + @retval number: of written bytes + +Documentation on variable debugger_t.ev_map_address in module ida_idd: + + Map process address. The debugger module may ignore this event. This event is + generated in debthread. IDA will generate this event only if DBG_HAS_MAP_ADDRESS + is set. + + @return: DRC_NONE, DRC_OK see MAPPED + +Documentation on variable debugger_t.ev_get_debmod_extensions in module ida_idd: + + Get pointer to debugger specific events. This event returns a pointer to a + structure that holds pointers to debugger module specific events. For + information on the structure layout, please check the corresponding debugger + module. Most debugger modules return nullptr because they do not have any + extensions. Available extensions may be generated from plugins. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK see EXT + +Documentation on variable debugger_t.ev_update_call_stack in module ida_idd: + + Calculate the call stack trace for the given thread. This event is generated + when the process is suspended and should fill the 'trace' object with the + information about the current call stack. If this event returns DRC_NONE, IDA + will try to invoke a processor-specific mechanism (see + processor_t::ev_update_call_stack). If the current processor module does not + implement stack tracing, then IDA will fall back to a generic algorithm (based + on the frame pointer chain) to calculate the trace. This event is ideal if the + debugging targets manage stack frames in a peculiar way, requiring special + analysis. This event is generated in the main thread. Available if + DBG_HAS_UPDATE_CALL_STACK is set + + @retval DRC_NONE: false or not implemented + @return: DRC_OK success + +Documentation on variable debugger_t.ev_appcall in module ida_idd: + + Call application function. This event calls a function from the debugged + application. This event is generated in debthread Available if HAS_APPCALL is + set + + @retval DRC_NONE + @retval DRC_OK,see: BLOB_EA + +Documentation on variable debugger_t.ev_cleanup_appcall in module ida_idd: + + Cleanup after appcall(). The debugger module must keep the stack blob in the + memory until this event is generated. It will be generated by the kernel for + each successful appcall(). There is an exception: if APPCALL_MANUAL, IDA may not + call cleanup_appcall. If the user selects to terminate a manual appcall, then + cleanup_appcall will be generated. Otherwise, the debugger module should + terminate the appcall when the generated event returns. This event is generated + in debthread. Available if HAS_APPCALL is set + + @retval DRC_EVENTS: success, there are pending events + @retval DRC_OK: success + @retval DRC_FAILED: failed + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_eval_lowcnd in module ida_idd: + + Evaluate a low level breakpoint condition at 'ea'. Other evaluation errors are + displayed in a dialog box. This call is used by IDA when the process has already + been temporarily suspended for some reason and IDA has to decide whether the + process should be resumed or definitely suspended because of a breakpoint with a + low level condition. This event is generated in debthread. + + @retval DRC_OK: condition is satisfied + @retval DRC_FAILED: not satisfied + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_send_ioctl in module ida_idd: + + Perform a debugger-specific event. This event is generated in debthread + + @retval DRC_... + +Documentation on variable debugger_t.ev_dbg_enable_trace in module ida_idd: + + Enable/Disable tracing. The kernel will generated this event if the debugger + plugin set DBG_FLAG_TRACER_MODULE. TRACE_FLAGS can be a set of #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE. This event is generated in the main + thread. + + @return: DRC_OK, DRC_FAILED, DRC_NONE + +Documentation on variable debugger_t.ev_is_tracing_enabled in module ida_idd: + + Is tracing enabled? The kernel will generated this event if the debugger plugin + set DBG_FLAG_TRACER_MODULE. TRACE_BIT can be one of the following: #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE + + @retval DRC_OK: bit is set + @retval DRC_NONE: bit is not set or not implemented + +Documentation on variable debugger_t.ev_rexec in module ida_idd: + + Execute a command on the remote computer. Available if DBG_HAS_REXEC is set + + @return: (int) exit code + +Documentation on variable debugger_t.ev_get_srcinfo_path in module ida_idd: + + Get the path to a file containing source debug info for the given module. This + allows srcinfo providers to call into the debugger when looking for debug info. + It is useful in certain cases like the iOS debugger, which is a remote debugger + but the remote debugserver does not provide dwarf info. So, we allow the + debugger client to decide where to look for debug info locally. + + @return: DRC_NONE, DRC_OK result stored in PATH + +Documentation on variable debugger_t.ev_bin_search in module ida_idd: + + Search for a binary pattern in the program. + + @return: DRC_OK EA contains the binary pattern address + @retval DRC_FAILED: not found + @retval DRC_NONE: not implemented + @retval DRC_NETERR,DRC_ERROR + +Documentation on variable debugger_t.registers in module ida_idd: + + Array of registers. Use regs() to access it. + +Documentation on variable debugger_t.nregs in module ida_idd: + + Number of registers. + +Documentation on variable debugger_t.regclasses in module ida_idd: + + Array of register class names. + +Documentation on variable debugger_t.bpt_bytes in module ida_idd: + + A software breakpoint instruction. + +Documentation on variable DEBUGGER_ID_X86_IA32_WIN32_USER in module ida_idd: + + Userland win32 processes (win32 debugging APIs) + +Documentation on variable DEBUGGER_ID_X86_IA32_LINUX_USER in module ida_idd: + + Userland linux processes (ptrace()) + +Documentation on variable DEBUGGER_ID_X86_IA32_MACOSX_USER in module ida_idd: + + Userland MAC OS X processes. + +Documentation on variable DEBUGGER_ID_ARM_IPHONE_USER in module ida_idd: + + iPhone 1.x + +Documentation on variable DEBUGGER_ID_X86_IA32_BOCHS in module ida_idd: + + BochsDbg.exe 32. + +Documentation on variable DEBUGGER_ID_6811_EMULATOR in module ida_idd: + + MC6812 emulator (beta) + +Documentation on variable DEBUGGER_ID_GDB_USER in module ida_idd: + + GDB remote. + +Documentation on variable DEBUGGER_ID_WINDBG in module ida_idd: + + WinDBG using Microsoft Debug engine. + +Documentation on variable DEBUGGER_ID_X86_DOSBOX_EMULATOR in module ida_idd: + + Dosbox MS-DOS emulator. + +Documentation on variable DEBUGGER_ID_ARM_LINUX_USER in module ida_idd: + + Userland arm linux. + +Documentation on variable DEBUGGER_ID_TRACE_REPLAYER in module ida_idd: + + Fake debugger to replay recorded traces. + +Documentation on variable DEBUGGER_ID_X86_PIN_TRACER in module ida_idd: + + PIN Tracer module. + +Documentation on variable DEBUGGER_ID_DALVIK_USER in module ida_idd: + + Dalvik. + +Documentation on variable DEBUGGER_ID_XNU_USER in module ida_idd: + + XNU Kernel. + +Documentation on variable DEBUGGER_ID_ARM_MACOS_USER in module ida_idd: + + Userland arm MAC OS. + +Documentation on variable DBG_FLAG_REMOTE in module ida_idd: + + Remote debugger (requires remote host name unless DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_NOHOST in module ida_idd: + + Remote debugger with does not require network params (host/port/pass). (a unique + device connected to the machine) + +Documentation on variable DBG_FLAG_FAKE_ATTACH in module ida_idd: + + PROCESS_ATTACHED is a fake event and does not suspend the execution + +Documentation on variable DBG_FLAG_HWDATBPT_ONE in module ida_idd: + + Hardware data breakpoints are one byte size by default + +Documentation on variable DBG_FLAG_CAN_CONT_BPT in module ida_idd: + + Debugger knows to continue from a bpt. This flag also means that the debugger + module hides breakpoints from ida upon read_memory + +Documentation on variable DBG_FLAG_NEEDPORT in module ida_idd: + + Remote debugger requires port number (to be used with DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_DONT_DISTURB in module ida_idd: + + Debugger can handle only get_debug_event(), request_pause(), exit_process() when + the debugged process is running. The kernel may also call service functions + (file I/O, map_address, etc) + +Documentation on variable DBG_FLAG_SAFE in module ida_idd: + + The debugger is safe (probably because it just emulates the application without + really running it) + +Documentation on variable DBG_FLAG_CLEAN_EXIT in module ida_idd: + + IDA must suspend the application and remove all breakpoints before terminating + the application. Usually this is not required because the application memory + disappears upon termination. + +Documentation on variable DBG_FLAG_USE_SREGS in module ida_idd: + + Take segment register values into account (non flat memory) + +Documentation on variable DBG_FLAG_NOSTARTDIR in module ida_idd: + + Debugger module doesn't use startup directory. + +Documentation on variable DBG_FLAG_NOPARAMETERS in module ida_idd: + + Debugger module doesn't use commandline parameters. + +Documentation on variable DBG_FLAG_NOPASSWORD in module ida_idd: + + Remote debugger doesn't use password. + +Documentation on variable DBG_FLAG_CONNSTRING in module ida_idd: + + Display "Connection string" instead of "Hostname" and hide the "Port" field. + +Documentation on variable DBG_FLAG_SMALLBLKS in module ida_idd: + + If set, IDA uses 256-byte blocks for caching memory contents. Otherwise, + 1024-byte blocks are used + +Documentation on variable DBG_FLAG_MANMEMINFO in module ida_idd: + + If set, manual memory region manipulation commands will be available. Use this + bit for debugger modules that cannot return memory layout information + +Documentation on variable DBG_FLAG_EXITSHOTOK in module ida_idd: + + IDA may take a memory snapshot at PROCESS_EXITED event. + +Documentation on variable DBG_FLAG_VIRTHREADS in module ida_idd: + + Thread IDs may be shuffled after each debug event. (to be used for virtual + threads that represent cpus for windbg kmode) + +Documentation on variable DBG_FLAG_LOWCNDS in module ida_idd: + + Low level breakpoint conditions are supported. + +Documentation on variable DBG_FLAG_DEBTHREAD in module ida_idd: + + Supports creation of a separate thread in ida for the debugger (the debthread). + Most debugger functions will be called from debthread (exceptions are marked + below) The debugger module may directly call only THREAD_SAFE functions. To call + other functions please use execute_sync(). The debthread significantly increases + debugging speed, especially if debug events occur frequently. + +Documentation on variable DBG_FLAG_DEBUG_DLL in module ida_idd: + + Can debug standalone DLLs. For example, Bochs debugger can debug any snippet of + code + +Documentation on variable DBG_FLAG_FAKE_MEMORY in module ida_idd: + + get_memory_info()/read_memory()/write_memory() work with the idb. (there is no + real process to read from, as for the replayer module) the kernel will not call + these functions if this flag is set. however, third party plugins may call them, + they must be implemented. + +Documentation on variable DBG_FLAG_ANYSIZE_HWBPT in module ida_idd: + + The debugger supports arbitrary size hardware breakpoints. + +Documentation on variable DBG_FLAG_TRACER_MODULE in module ida_idd: + + The module is a tracer, not a full featured debugger module. + +Documentation on variable DBG_FLAG_PREFER_SWBPTS in module ida_idd: + + Prefer to use software breakpoints. + +Documentation on variable DBG_FLAG_LAZY_WATCHPTS in module ida_idd: + + Watchpoints are triggered before the offending instruction is executed. The + debugger must temporarily disable the watchpoint and single-step before + resuming. + +Documentation on variable DBG_FLAG_FAST_STEP in module ida_idd: + + Do not refresh memory layout info after single stepping. + +Documentation on variable DBG_HAS_GET_PROCESSES in module ida_idd: + + supports ev_get_processes + +Documentation on variable DBG_HAS_ATTACH_PROCESS in module ida_idd: + + supports ev_attach_process + +Documentation on variable DBG_HAS_DETACH_PROCESS in module ida_idd: + + supports ev_detach_process + +Documentation on variable DBG_HAS_REQUEST_PAUSE in module ida_idd: + + supports ev_request_pause + +Documentation on variable DBG_HAS_SET_EXCEPTION_INFO in module ida_idd: + + supports ev_set_exception_info + +Documentation on variable DBG_HAS_THREAD_SUSPEND in module ida_idd: + + supports ev_thread_suspend + +Documentation on variable DBG_HAS_THREAD_CONTINUE in module ida_idd: + + supports ev_thread_continue + +Documentation on variable DBG_HAS_SET_RESUME_MODE in module ida_idd: + + supports ev_set_resume_mode. Cannot be set inside the + debugger_t::init_debugger() + +Documentation on variable DBG_HAS_THREAD_GET_SREG_BASE in module ida_idd: + + supports ev_thread_get_sreg_base + +Documentation on variable DBG_HAS_CHECK_BPT in module ida_idd: + + supports ev_check_bpt + +Documentation on variable DBG_HAS_OPEN_FILE in module ida_idd: + + supports ev_open_file, ev_close_file, ev_read_file, ev_write_file + +Documentation on variable DBG_HAS_UPDATE_CALL_STACK in module ida_idd: + + supports ev_update_call_stack + +Documentation on variable DBG_HAS_APPCALL in module ida_idd: + + supports ev_appcall, ev_cleanup_appcall + +Documentation on variable DBG_HAS_REXEC in module ida_idd: + + supports ev_rexec + +Documentation on variable DBG_HAS_MAP_ADDRESS in module ida_idd: + + supports ev_map_address. Avoid using this bit, especially together with + DBG_FLAG_DEBTHREAD because it may cause big slow downs + +Documentation on variable DBG_RESMOD_STEP_INTO in module ida_idd: + + RESMOD_INTO is available + +Documentation on variable DBG_RESMOD_STEP_OVER in module ida_idd: + + RESMOD_OVER is available + +Documentation on variable DBG_RESMOD_STEP_OUT in module ida_idd: + + RESMOD_OUT is available + +Documentation on variable DBG_RESMOD_STEP_SRCINTO in module ida_idd: + + RESMOD_SRCINTO is available + +Documentation on variable DBG_RESMOD_STEP_SRCOVER in module ida_idd: + + RESMOD_SRCOVER is available + +Documentation on variable DBG_RESMOD_STEP_SRCOUT in module ida_idd: + + RESMOD_SRCOUT is available + +Documentation on variable DBG_RESMOD_STEP_USER in module ida_idd: + + RESMOD_USER is available + +Documentation on variable DBG_RESMOD_STEP_HANDLE in module ida_idd: + + RESMOD_HANDLE is available + +Documentation on variable DBG_PROC_IS_DLL in module ida_idd: + + database contains a dll (not exe) + +Documentation on variable DBG_PROC_IS_GUI in module ida_idd: + + using gui version of ida + +Documentation on variable DBG_PROC_32BIT in module ida_idd: + + application is 32-bit + +Documentation on variable DBG_PROC_64BIT in module ida_idd: + + application is 64-bit + +Documentation on variable DBG_NO_TRACE in module ida_idd: + + do not trace the application (mac/linux) + +Documentation on variable DBG_HIDE_WINDOW in module ida_idd: + + application should be hidden on startup (windows) + +Documentation on variable DBG_SUSPENDED in module ida_idd: + + application should be suspended on startup (mac) + +Documentation on variable BPT_OK in module ida_idd: + + breakpoint can be set + +Documentation on variable BPT_INTERNAL_ERR in module ida_idd: + + interr occurred when verifying breakpoint + +Documentation on variable BPT_BAD_TYPE in module ida_idd: + + bpt type is not supported + +Documentation on variable BPT_BAD_ALIGN in module ida_idd: + + alignment is invalid + +Documentation on variable BPT_BAD_ADDR in module ida_idd: + + ea is invalid + +Documentation on variable BPT_BAD_LEN in module ida_idd: + + bpt len is invalid + +Documentation on variable BPT_TOO_MANY in module ida_idd: + + reached max number of supported breakpoints + +Documentation on variable BPT_READ_ERROR in module ida_idd: + + failed to read memory at bpt ea + +Documentation on variable BPT_WRITE_ERROR in module ida_idd: + + failed to write memory at bpt ea + +Documentation on variable BPT_SKIP in module ida_idd: + + update_bpts(): do not process bpt + +Documentation on variable BPT_PAGE_OK in module ida_idd: + + update_bpts(): ok, added a page bpt + +Documentation on variable APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run. debugger_t::cleanup_appcall will not be + generated by ida! + +Documentation on variable APPCALL_DEBEV in module ida_idd: + + Return debug event information. + +Documentation on variable APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout. If timed out, errbuf will contain "timeout". See + SET_APPCALL_TIMEOUT and GET_APPCALL_TIMEOUT + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_ENSURE_SEP in module ida_kernwin: + + make sure there is a separator before the action + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CH2_LAZY_LOADED in module ida_kernwin: + + The chooser is lazy-loaded; it receives the callback do_lazy_load_dir() (only + meaningful when CH_HAS_DIRTREE is set) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name. If a chooser column has this flag set and implements + chooser_base_t::get_ea(), rows background colors will be automatically set to + match the navigator's "Library function", "Lumina function" and "External + symbol" colors + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_stdact_desc_t.version in module ida_kernwin: + + to support the backward compatibility + +Documentation on variable chooser_stdact_desc_t.label in module ida_kernwin: + + see action_desc_t + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: + "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom labels of the standard actions. Used to replace labels for these + actions. + An empty name means that the default name will be used. + @note: Availability of these actions is determined by the CH_CAN_... flags. The + label, icon and other action attributes can be overwritten in the action + description returned by get_stdact_descs() + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable ADF_CHECKABLE in module ida_kernwin: + + action is checkable + +Documentation on variable ADF_CHECKED in module ida_kernwin: + + starts in a checked state (requires ADF_CHECKABLE) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable MERGE_KIND_NETNODE in module ida_merge: + + netnode (no merging, to be used in idbunits) + +Documentation on variable MERGE_KIND_AUTOQ in module ida_merge: + + auto queues + +Documentation on variable MERGE_KIND_INF in module ida_merge: + + merge the inf variable (global settings) + +Documentation on variable MERGE_KIND_ENCODINGS in module ida_merge: + + merge encodings + +Documentation on variable MERGE_KIND_ENCODINGS2 in module ida_merge: + + merge default encodings + +Documentation on variable MERGE_KIND_SCRIPTS2 in module ida_merge: + + merge scripts common info + +Documentation on variable MERGE_KIND_SCRIPTS in module ida_merge: + + merge scripts + +Documentation on variable MERGE_KIND_CUSTDATA in module ida_merge: + + merge custom data type and formats + +Documentation on variable MERGE_KIND_ENUMS in module ida_merge: + + merge enums + +Documentation on variable MERGE_KIND_STRUCTS in module ida_merge: + + merge structs (globally: add/delete structs entirely) + +Documentation on variable MERGE_KIND_TILS in module ida_merge: + + merge type libraries + +Documentation on variable MERGE_KIND_TINFO in module ida_merge: + + merge tinfo + +Documentation on variable MERGE_KIND_STRMEM in module ida_merge: + + merge struct members + +Documentation on variable MERGE_KIND_UDTMEM in module ida_merge: + + merge UDT members (local types) + +Documentation on variable MERGE_KIND_GHSTRCMT in module ida_merge: + + merge ghost structure comment + +Documentation on variable MERGE_KIND_STRMEMCMT in module ida_merge: + + merge member comments for ghost struc + +Documentation on variable MERGE_KIND_SELECTORS in module ida_merge: + + merge selectors + +Documentation on variable MERGE_KIND_STT in module ida_merge: + + merge flag storage types + +Documentation on variable MERGE_KIND_SEGMENTS in module ida_merge: + + merge segments + +Documentation on variable MERGE_KIND_SEGGRPS in module ida_merge: + + merge segment groups + +Documentation on variable MERGE_KIND_SEGREGS in module ida_merge: + + merge segment registers + +Documentation on variable MERGE_KIND_ORPHANS in module ida_merge: + + merge orphan bytes + +Documentation on variable MERGE_KIND_BYTEVAL in module ida_merge: + + merge byte values + +Documentation on variable MERGE_KIND_FIXUPS in module ida_merge: + + merge fixups + +Documentation on variable MERGE_KIND_MAPPING in module ida_merge: + + merge manual memory mapping + +Documentation on variable MERGE_KIND_EXPORTS in module ida_merge: + + merge exports + +Documentation on variable MERGE_KIND_IMPORTS in module ida_merge: + + merge imports + +Documentation on variable MERGE_KIND_PATCHES in module ida_merge: + + merge patched bytes + +Documentation on variable MERGE_KIND_FLAGS in module ida_merge: + + merge flags64_t + +Documentation on variable MERGE_KIND_EXTRACMT in module ida_merge: + + merge extra next or prev lines + +Documentation on variable MERGE_KIND_AFLAGS_EA in module ida_merge: + + merge aflags for mapped EA + +Documentation on variable MERGE_KIND_IGNOREMICRO in module ida_merge: + + IM ("$ ignore micro") flags. + +Documentation on variable MERGE_KIND_HIDDENRANGES in module ida_merge: + + merge hidden ranges + +Documentation on variable MERGE_KIND_SOURCEFILES in module ida_merge: + + merge source files ranges + +Documentation on variable MERGE_KIND_FUNC in module ida_merge: + + merge func info + +Documentation on variable MERGE_KIND_FRAMEMGR in module ida_merge: + + merge frames (globally: add/delete frames entirely) + +Documentation on variable MERGE_KIND_FRAME in module ida_merge: + + merge function frame info (frame members) + +Documentation on variable MERGE_KIND_STKPNTS in module ida_merge: + + merge SP change points + +Documentation on variable MERGE_KIND_FLOWS in module ida_merge: + + merge flows + +Documentation on variable MERGE_KIND_CREFS in module ida_merge: + + merge crefs + +Documentation on variable MERGE_KIND_DREFS in module ida_merge: + + merge drefs + +Documentation on variable MERGE_KIND_BPTS in module ida_merge: + + merge breakpoints + +Documentation on variable MERGE_KIND_WATCHPOINTS in module ida_merge: + + merge watchpoints + +Documentation on variable MERGE_KIND_BOOKMARKS in module ida_merge: + + merge bookmarks + +Documentation on variable MERGE_KIND_TRYBLKS in module ida_merge: + + merge try blocks + +Documentation on variable MERGE_KIND_DIRTREE in module ida_merge: + + merge std dirtrees + +Documentation on variable MERGE_KIND_VFTABLES in module ida_merge: + + merge vftables + +Documentation on variable MERGE_KIND_SIGNATURES in module ida_merge: + + signatures + +Documentation on variable MERGE_KIND_PROBLEMS in module ida_merge: + + problems + +Documentation on variable MERGE_KIND_UI in module ida_merge: + + UI. + +Documentation on variable MERGE_KIND_NOTEPAD in module ida_merge: + + notepad + +Documentation on variable MERGE_KIND_LOADER in module ida_merge: + + loader data + +Documentation on variable MERGE_KIND_DEBUGGER in module ida_merge: + + debugger data + +Documentation on variable MERGE_KIND_DBG_MEMREGS in module ida_merge: + + manual memory regions (debugger) + +Documentation on variable MERGE_KIND_LAST in module ida_merge: + + last predefined merge handler type. please note that there can be more merge + handler types, registered by plugins and processor modules. + +Documentation on variable MERGE_KIND_END in module ida_merge: + + insert to the end of handler list, valid for + merge_handler_params_t::insert_after + +Documentation on variable merge_data_t.dbctx_ids in module ida_merge: + + local, remote, base ids + +Documentation on variable merge_data_t.nbases in module ida_merge: + + number of database participating in merge process, maybe 2 or 3 + +Documentation on variable merge_data_t.ev_handlers in module ida_merge: + + event handlers + +Documentation on variable merge_handler_params_t.kind in module ida_merge: + + merge handler kind merge_kind_t + +Documentation on variable merge_handler_params_t.insert_after in module ida_merge: + + desired position inside 'handlers' merge_kind_t + +Documentation on variable MH_LISTEN in module ida_merge: + + merge handler will receive merge events + +Documentation on variable MH_TERSE in module ida_merge: + + do not display equal lines in the merge results table + +Documentation on variable MH_UI_NODETAILS in module ida_merge: + + ida will not show the diffpos details + +Documentation on variable MH_UI_COMPLEX in module ida_merge: + + diffpos details won't be displayed in the diffpos chooser + +Documentation on variable MH_UI_DP_NOLINEDIFF in module ida_merge: + + Detail pane: do not show differences inside the line. + +Documentation on variable MH_UI_DP_SHORTNAME in module ida_merge: + + Detail pane: use the first part of a complex diffpos name as the tree node name. + +Documentation on variable MH_UI_INDENT in module ida_merge: + + preserve indent for diffpos name in diffpos chooser + +Documentation on variable MH_UI_SPLITNAME in module ida_merge: + + ida will split the diffpos name by 7-bit ASCII char to create chooser columns + +Documentation on variable MH_UI_CHAR_MASK in module ida_merge: + + 7-bit ASCII split character + +Documentation on variable MH_UI_COMMANAME in module ida_merge: + + ida will split the diffpos name by ',' to create chooser columns + +Documentation on variable MH_UI_COLONNAME in module ida_merge: + + ida will split the diffpos name by ':' to create chooser columns + +Documentation on variable moddata_diff_helper_t.module_name in module ida_merge: + + will be used as a prefix for field desc + +Documentation on variable moddata_diff_helper_t.netnode_name in module ida_merge: + + name of netnode with module data attributes + +Documentation on variable moddata_diff_helper_t.fields in module ida_merge: + + module data attribute descriptions + +Documentation on variable moddata_diff_helper_t.nfields in module ida_merge: + + number of descriptions + +Documentation on variable moddata_diff_helper_t.additional_mh_flags in module ida_merge: + + additional merge handler flags + +Documentation on variable NDS_IS_BOOL in module ida_merge: + + boolean value + +Documentation on variable NDS_IS_EA in module ida_merge: + + EA value. + +Documentation on variable NDS_IS_RELATIVE in module ida_merge: + + value is relative to index (stored as delta) + +Documentation on variable NDS_IS_STR in module ida_merge: + + string value + +Documentation on variable NDS_SUPVAL in module ida_merge: + + stored as netnode supvals (not scalar) + +Documentation on variable NDS_BLOB in module ida_merge: + + stored as netnode blobs + +Documentation on variable NDS_EV_RANGE in module ida_merge: + + enable default handling of mev_modified_ranges, mev_deleting_segm + +Documentation on variable NDS_EV_FUNC in module ida_merge: + + enable default handling of mev_added_func/mev_deleting_func + +Documentation on variable NDS_MAP_IDX in module ida_merge: + + apply ea2node() to index (==NETMAP_IDX) + +Documentation on variable NDS_MAP_VAL in module ida_merge: + + apply ea2node() to value. Along with NDS_INC it gives effect of NETMAP_VAL, + examples: altval_ea : NDS_MAP_IDX charval : NDS_VAL8 charval_ea: + NDS_MAP_IDX|NDS_VAL8 eaget : NDS_MAP_IDX|NDS_MAP_VAL|NDS_INC + +Documentation on variable NDS_VAL8 in module ida_merge: + + use 8-bit values (==NETMAP_V8) + +Documentation on variable NDS_INC in module ida_merge: + + stored value is incremented (scalars only) + +Documentation on variable merge_node_info_t.name in module ida_merge: + + name of the array (label) + +Documentation on variable merge_node_info_t.tag in module ida_merge: + + a tag used to access values in the netnode + +Documentation on variable merge_node_info_t.nds_flags in module ida_merge: + + node value attributes (a combination of nds_flags_t) + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They are used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable REFINFO_SELFREF in module ida_nalt: + + the self-based reference; refinfo_t::base will be forced to the reference + address + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_CHECK in module ida_name: + + Fail if the name contains invalid characters. + +Documentation on variable SN_NOCHECK in module ida_name: + + Replace invalid characters silently. If this bit is set, all invalid chars (not + in NameChars or MangleChars) will be replaced by '_' List of valid characters is + defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v8.2. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Default key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SEARCH_USESEL in module ida_search: + + query the UI for a possible current selection to limit the search to + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_INVAL in module ida_segment: + + Invalid argument (delta/target does not fit the address space) + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable SNAP_ALL_SEG in module ida_segment: + + Take a snapshot of all segments. + +Documentation on variable SNAP_LOAD_SEG in module ida_segment: + + Take a snapshot of loader segments. + +Documentation on variable SNAP_CUR_SEG in module ida_segment: + + Take a snapshot of current segment. + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/release_pydoc_injections_pro3.txt b/release_pydoc_injections_pro3.txt new file mode 100644 index 0000000..23aa86a --- /dev/null +++ b/release_pydoc_injections_pro3.txt @@ -0,0 +1,110881 @@ +Module "ida_allins"s docstring: +""" +""" + +Module "ida_auto"s docstring: +""" +Functions that work with the autoanalyzer queue. + +The autoanalyzer works when IDA is not busy processing the user keystrokes. It +has several queues, each queue having its own priority. The analyzer stops when +all queues are empty. + +A queue contains addresses or address ranges. The addresses are kept sorted by +their values. The analyzer will process all addresses from the first queue, then +switch to the second queue and so on. There are no limitations on the size of +the queues. + +This file also contains functions that deal with the IDA status indicator and +the autoanalysis indicator. You may use these functions to change the indicator +value.""" + +Help on function auto_apply_tail in module ida_auto: + +auto_apply_tail(*args) -> 'void' + auto_apply_tail(tail_ea, parent_ea) + Plan to apply the tail_ea chunk to the parent + + @param tail_ea: (C++: ea_t) linear address of start of tail + @param parent_ea: (C++: ea_t) linear address within parent. If BADADDR, automatically try to + find parent via xrefs. + +Help on function auto_apply_type in module ida_auto: + +auto_apply_type(*args) -> 'void' + auto_apply_type(caller, callee) + Plan to apply the callee's type to the calling point. + + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) + +Help on function auto_cancel in module ida_auto: + +auto_cancel(*args) -> 'void' + auto_cancel(ea1, ea2) + Remove an address range (ea1..ea2) from queues AU_CODE, AU_PROC, AU_USED. To + remove an address range from other queues use auto_unmark() function. 'ea1' may + be higher than 'ea2', the kernel will swap them in this case. 'ea2' doesn't + belong to the range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + +Help on class auto_display_t in module ida_auto: + +class auto_display_t(builtins.object) + | Proxy of C++ auto_display_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> auto_display_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_auto_display_t(...) + | delete_auto_display_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | state + | state + | + | thisown + | The membership flag + | + | type + | type + +Help on function auto_get in module ida_auto: + +auto_get(*args) -> 'ea_t' + auto_get(type, lowEA, highEA) -> ea_t + Retrieve an address from queues regarding their priority. Returns BADADDR if no + addresses not lower than 'lowEA' and less than 'highEA' are found in the queues. + Otherwise *type will have queue type. + + @param type: (C++: atype_t *) + @param lowEA: (C++: ea_t) + @param highEA: (C++: ea_t) + +Help on function auto_is_ok in module ida_auto: + +auto_is_ok(*args) -> 'bool' + auto_is_ok() -> bool + Are all queues empty? (i.e. has autoanalysis finished?). + +Help on function auto_make_code in module ida_auto: + +auto_make_code(*args) -> 'void' + auto_make_code(ea) + Plan to make code. + + @param ea: (C++: ea_t) + +Help on function auto_make_proc in module ida_auto: + +auto_make_proc(*args) -> 'void' + auto_make_proc(ea) + Plan to make code&function. + + @param ea: (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) -> 'bool' + auto_make_step(ea1, ea2) -> bool + Analyze one address in the specified range and return true. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: if processed anything. false means that there is nothing to process in + the specified range. + +Help on function auto_mark in module ida_auto: + +auto_mark(*args) -> 'void' + auto_mark(ea, type) + Put single address into a queue. Queues keep addresses sorted. + + @param ea: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_mark_range in module ida_auto: + +auto_mark_range(*args) -> 'void' + auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_recreate_insn in module ida_auto: + +auto_recreate_insn(*args) -> 'int' + auto_recreate_insn(ea) -> int + Try to create instruction + + @param ea: (C++: ea_t) linear address of callee + @return: the length of the instruction or 0 + +Help on function auto_unmark in module ida_auto: + +auto_unmark(*args) -> 'void' + auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_wait in module ida_auto: + +auto_wait(*args) -> 'bool' + auto_wait() -> bool + Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) + +Help on function auto_wait_range in module ida_auto: + +auto_wait_range(*args) -> 'ssize_t' + auto_wait_range(ea1, ea2) -> ssize_t + Process everything in the specified range and return true. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @return: number of autoanalysis steps made. -1 if the user clicked cancel. (the + wait box must be displayed by the caller if desired) + +Help on function enable_auto in module ida_auto: + +enable_auto(*args) -> 'bool' + enable_auto(enable) -> bool + Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA + sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO + + @param enable: (C++: bool) + @return: old state + +Help on function get_auto_display in module ida_auto: + +get_auto_display(*args) -> 'bool' + get_auto_display(auto_display) -> bool + Get structure which holds the autoanalysis indicator contents. + + @param auto_display: (C++: auto_display_t *) + +Help on function get_auto_state in module ida_auto: + +get_auto_state(*args) -> 'atype_t' + get_auto_state() -> atype_t + Get current state of autoanalyzer. If auto_state == AU_NONE, IDA is currently + not running the analysis (it could be temporarily interrupted to perform the + user's requests, for example). + +Help on function is_auto_enabled in module ida_auto: + +is_auto_enabled(*args) -> 'bool' + is_auto_enabled() -> bool + Get autoanalyzer state. + +Help on function may_create_stkvars in module ida_auto: + +may_create_stkvars(*args) -> 'bool' + may_create_stkvars() -> bool + Is it allowed to create stack variables automatically?. This function should be + used by IDP modules before creating stack vars. + +Help on function may_trace_sp in module ida_auto: + +may_trace_sp(*args) -> 'bool' + may_trace_sp() -> bool + Is it allowed to trace stack pointer automatically?. This function should be + used by IDP modules before tracing sp. + +Help on function peek_auto_queue in module ida_auto: + +peek_auto_queue(*args) -> 'ea_t' + peek_auto_queue(low_ea, type) -> ea_t + Peek into a queue 'type' for an address not lower than 'low_ea'. Do not remove + address from the queue. + + @param low_ea: (C++: ea_t) + @param type: (C++: atype_t) + @return: the address or BADADDR + +Help on function plan_and_wait in module ida_auto: + +plan_and_wait(*args) -> 'int' + plan_and_wait(ea1, ea2, final_pass=True) -> int + Analyze the specified range. Try to create instructions where possible. Make the + final pass over the specified range if specified. This function doesn't return + until the range is analyzed. + @retval 1: ok + @retval 0: Ctrl-Break was pressed + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + @param final_pass: (C++: bool) + +Help on function plan_ea in module ida_auto: + +plan_ea(*args) -> 'void' + plan_ea(ea) + Plan to perform reanalysis. + + @param ea: (C++: ea_t) + +Help on function plan_range in module ida_auto: + +plan_range(*args) -> 'void' + plan_range(sEA, eEA) + Plan to perform reanalysis. + + @param sEA: (C++: ea_t) + @param eEA: (C++: ea_t) + +Help on function reanalyze_callers in module ida_auto: + +reanalyze_callers(*args) -> 'void' + reanalyze_callers(ea, noret) + Plan to reanalyze callers of the specified address. This function will add to + AU_USED queue all instructions that call (not jump to) the specified address. + + @param ea: (C++: ea_t) linear address of callee + @param noret: (C++: bool) !=0: the callee doesn't return, mark to undefine subsequent + instructions in the caller. 0: do nothing. + +Help on function revert_ida_decisions in module ida_auto: + +revert_ida_decisions(*args) -> 'void' + revert_ida_decisions(ea1, ea2) + Delete all analysis info that IDA generated for for the given range. + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + +Help on function set_auto_state in module ida_auto: + +set_auto_state(*args) -> 'atype_t' + set_auto_state(new_state) -> atype_t + Set current state of autoanalyzer. + + @param new_state: (C++: atype_t) new state of autoanalyzer + @return: previous state + +Help on function set_ida_state in module ida_auto: + +set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t + Change IDA status indicator value + + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status + +Help on function show_addr in module ida_auto: + +show_addr(*args) -> 'void' + show_addr(ea) + Show an address on the autoanalysis indicator. The address is displayed in the + form " @:12345678". + + @param ea: (C++: ea_t) - linear address to display + +Help on function show_auto in module ida_auto: + +show_auto(*args) -> 'void' + show_auto(ea, type=AU_NONE) + Change autoanalysis indicator value. + + @param ea: (C++: ea_t) linear address being analyzed + @param type: (C++: atype_t) autoanalysis type (see Autoanalysis queues) + +Module "ida_bitrange"s docstring: +""" +Definition of the bitrange_t class.""" + +Help on class bitrange_t in module ida_bitrange: + +class bitrange_t(builtins.object) + | Proxy of C++ bitrange_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | + | @param bit_ofs: uint16 + | @param size_in_bits: uint16 + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitrange_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_bitrange_t(...) + | delete_bitrange_t(self) + | + | apply_mask(self, *args) -> 'bool' + | apply_mask(self, subrange) -> bool + | Apply mask to a bitrange + | + | @param subrange: (C++: const bitrange_t &) range *inside* the main bitrange to keep After this operation + | the main bitrange will be truncated to have only the bits that + | are specified by subrange. Example: [off=8,nbits=4], + | subrange[off=1,nbits=2] => [off=9,nbits=2] + | @return: success + | + | bitoff(self, *args) -> 'uint' + | bitoff(self) -> uint + | Get offset of 1st bit. + | + | bitsize(self, *args) -> 'uint' + | bitsize(self) -> uint + | Get size of the value in bits. + | + | bytesize(self, *args) -> 'uint' + | bytesize(self) -> uint + | Size of the value in bytes. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitrange_t const & + | + | create_union(self, *args) -> 'void' + | create_union(self, r) + | Create union of 2 ranges including the hole between them. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the bitrange empty? + | + | extract(self, *args) -> 'bool' + | extract(self, src, is_mf) -> bool + | + | @param src: void const * + | @param is_mf: bool + | + | has_common(self, *args) -> 'bool' + | has_common(self, r) -> bool + | Does have common bits with another bitrange? + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | init(self, *args) -> 'void' + | init(self, bit_ofs, size_in_bits) + | Initialize offset and size to given values. + | + | @param bit_ofs: (C++: uint16) + | @param size_in_bits: (C++: uint16) + | + | inject(self, *args) -> 'bool' + | inject(self, dst, src, is_mf) -> bool + | + | @param dst: void * + | @param src: bytevec_t const & + | @param is_mf: bool + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Intersect two ranges. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | mask64(self, *args) -> 'uint64' + | mask64(self) -> uint64 + | Convert to mask of 64 bits. + | + | reset(self, *args) -> 'void' + | reset(self) + | Make the bitrange empty. + | + | shift_down(self, *args) -> 'void' + | shift_down(self, cnt) + | Shift range down (left) + | + | @param cnt: (C++: uint) + | + | shift_up(self, *args) -> 'void' + | shift_up(self, cnt) + | Shift range up (right) + | + | @param cnt: (C++: uint) + | + | sub(self, *args) -> 'bool' + | sub(self, r) -> bool + | Subtract a bitrange. + | + | @param r: (C++: const bitrange_t &) bitrange_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_bytes"s docstring: +""" +Contains functions that deal with individual byte characteristics. + +Each byte of the disassembled program is represented by a 32-bit value. We will +call this value 'flags'. The structure of the flags is here. + +You are not allowed to inspect individual bits of flags and modify them +directly. Use special functions to inspect and/or modify flags. + +Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit +(or 64-bit) quantities.""" + +Help on function __walk_types_and_formats in module ida_bytes: + +__walk_types_and_formats(formats, type_action, format_action, installing) + # ----------------------------------------------------------------------- + +Help on function add_byte in module ida_bytes: + +add_byte(*args) -> 'void' + add_byte(ea, value) + Add a value to one byte of the program. This function works for wide byte + processors too. + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint32) byte value + +Help on function add_dword in module ida_bytes: + +add_dword(*args) -> 'void' + add_dword(ea, value) + Add a value to one dword of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value + +Help on function add_hidden_range in module ida_bytes: + +add_hidden_range(*args) -> 'bool' + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color + @return: success + +Help on function add_mapping in module ida_bytes: + +add_mapping(*args) -> 'bool' + add_mapping(_from, to, size) -> bool + IDA supports memory mapping. References to the addresses from the mapped range + use data and meta-data from the mapping range. + @note: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add + memory mapping range. + + @param from: (C++: ea_t) start of the mapped range (nonexistent address) + @param to: (C++: ea_t) start of the mapping range (existent address) + @param size: (C++: asize_t) size of the range + @return: success + +Help on function add_qword in module ida_bytes: + +add_qword(*args) -> 'void' + add_qword(ea, value) + Add a value to one qword of the program. This function does not work for wide + byte processors. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value + +Help on function add_word in module ida_bytes: + +add_word(*args) -> 'void' + add_word(ea, value) + Add a value to one word of the program. This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) linear address + @param value: (C++: uint64) byte value + +Help on function align_flag in module ida_bytes: + +align_flag(*args) -> 'flags64_t' + align_flag() -> flags64_t + Get a flags64_t representing an alignment directive. + +Help on function append_cmt in module ida_bytes: + +append_cmt(*args) -> 'bool' + append_cmt(ea, str, rptble) -> bool + Append to an indented comment. Creates a new comment if none exists. Appends a + newline character and the specified string otherwise. + + @param ea: (C++: ea_t) linear address + @param str: (C++: const char *) comment string to append + @param rptble: (C++: bool) append to repeatable comment? + @return: success + +Help on function attach_custom_data_format in module ida_bytes: + +attach_custom_data_format(*args) -> 'bool' + attach_custom_data_format(dtid, dfid) -> bool + Attach the data format to the data type. + + @param dtid: (C++: int) data type id that can use the data format. 0 means all standard + data types. Such data formats can be applied to any data item or + instruction operands. For instruction operands, the + data_format_t::value_size check is not performed by the kernel. + @param dfid: (C++: int) data format id + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format has already + been attached to the data type + +Help on function bin_flag in module ida_bytes: + +bin_flag(*args) -> 'flags64_t' + bin_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on function bin_search in module ida_bytes: + +bin_search(*args) -> 'ea_t' + bin_search(start_ea, end_ea, data, flags) -> ea_t + Search for a set of bytes in the program + + @param start_ea: linear address, start of range to search + @param end_ea: linear address, end of range to search (exclusive) + @param data: the prepared data to search for (see parse_binpat_str()) + @param flags: combination of BIN_SEARCH_* flags + @return: the address of a match, or ida_idaapi.BADADDR if not found + bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + + @param start_ea: ea_t + @param end_ea: ea_t + @param image: bytevec_t const & + @param imask: bytevec_t const & + @param step: int + @param flags: int + +Help on function bin_search3 in module ida_bytes: + +bin_search3(*args) -> 'size_t *' + bin_search3(start_ea, end_ea, data, flags) -> ea_t + Search for a patter in the program. + + @param start_ea: (C++: ea_t) linear address, start of range to search + @param end_ea: (C++: ea_t) linear address, end of range to search (exclusive) + @param data: (C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str()) + @param flags: (C++: int) combination of Search flags + @return: BADADDR (if pressed Ctrl-Break or not found) or pattern address. + +Help on function byte_flag in module ida_bytes: + +byte_flag(*args) -> 'flags64_t' + byte_flag() -> flags64_t + Get a flags64_t representing a byte. + +Help on function bytesize in module ida_bytes: + +bytesize(*args) -> 'int' + bytesize(ea) -> int + Get number of bytes required to store a byte at the given address. + + @param ea: (C++: ea_t) + +Help on function calc_def_align in module ida_bytes: + +calc_def_align(*args) -> 'int' + calc_def_align(ea, mina, maxa) -> int + Calculate the default alignment exponent. + + @param ea: (C++: ea_t) linear address + @param mina: (C++: int) minimal possible alignment exponent. + @param maxa: (C++: int) minimal possible alignment exponent. + +Help on function calc_dflags in module ida_bytes: + +calc_dflags(*args) -> 'flags64_t' + calc_dflags(f, force) -> flags64_t + + @param f: flags64_t + @param force: bool + +Help on function calc_max_align in module ida_bytes: + +calc_max_align(*args) -> 'int' + calc_max_align(endea) -> int + Calculate the maximal possible alignment exponent. + + @param endea: (C++: ea_t) end address of the alignment item. + @return: a value in the 0..32 range + +Help on function calc_max_item_end in module ida_bytes: + +calc_max_item_end(*args) -> 'ea_t' + calc_max_item_end(ea, how=15) -> ea_t + Calculate maximal reasonable end address of a new item. This function will limit + the item with the current segment bounds. + + @param ea: (C++: ea_t) linear address + @param how: (C++: int) when to stop the search. A combination of Item end search flags + @return: end of new item. If it is not possible to create an item, it will + return 'ea'. + +Help on function calc_min_align in module ida_bytes: + +calc_min_align(*args) -> 'int' + calc_min_align(length) -> int + Calculate the minimal possible alignment exponent. + + @param length: (C++: asize_t) size of the item in bytes. + @return: a value in the 1..32 range + +Help on function can_define_item in module ida_bytes: + +can_define_item(*args) -> 'bool' + can_define_item(ea, length, flags) -> bool + Can define item (instruction/data) of the specified 'length', starting at 'ea'? + @note: if there is an item starting at 'ea', this function ignores it + @note: this function converts to unexplored all encountered data items with + fixup information. Should be fixed in the future. + + @param ea: (C++: ea_t) start of the range for the new item + @param length: (C++: asize_t) length of the new item in bytes + @param flags: (C++: flags64_t) if not 0, then the kernel will ignore the data types specified by + the flags and destroy them. For example: + 1000 dw 5 + 1002 db 5 ; undef + 1003 db 5 ; undef + 1004 dw 5 + 1006 dd 5 + can_define_item(1000, 6, 0) - false because of dw at 1004 + can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed + @return: 1-yes, 0-no + * a new item would cross segment boundaries + * a new item would overlap with existing items (except items specified by + 'flags') + +Help on function change_storage_type in module ida_bytes: + +change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t + Change flag storage type for address range. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code + +Help on function char_flag in module ida_bytes: + +char_flag(*args) -> 'flags64_t' + char_flag() -> flags64_t + see Bits: instruction operand types + +Help on function chunk_size in module ida_bytes: + +chunk_size(*args) -> 'asize_t' + chunk_size(ea) -> asize_t + Get size of the contiguous address block containing 'ea'. + + @param ea: (C++: ea_t) + @return: 0 if 'ea' doesn't belong to the program. + +Help on function chunk_start in module ida_bytes: + +chunk_start(*args) -> 'ea_t' + chunk_start(ea) -> ea_t + Get start of the contiguous address block containing 'ea'. + + @param ea: (C++: ea_t) + @return: BADADDR if 'ea' doesn't belong to the program. + +Help on function clr_lzero in module ida_bytes: + +clr_lzero(*args) -> 'bool' + clr_lzero(ea, n) -> bool + Clear toggle lzero bit. This function reset the display of leading zeroes for + the specified operand to the default. If the default is not to display leading + zeroes, leading zeroes will not be displayed, as vice versa. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function clr_op_type in module ida_bytes: + +clr_op_type(*args) -> 'bool' + clr_op_type(ea, n) -> bool + Remove operand representation information. (set operand representation to be + 'undefined') + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function code_flag in module ida_bytes: + +code_flag(*args) -> 'flags64_t' + code_flag() -> flags64_t + FF_CODE + +Help on class compiled_binpat_t in module ida_bytes: + +class compiled_binpat_t(builtins.object) + | Proxy of C++ compiled_binpat_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: compiled_binpat_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_compiled_binpat_t(...) + | delete_compiled_binpat_t(self) + | + | all_bytes_defined(self, *args) -> 'bool' + | all_bytes_defined(self) -> bool + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | bytes + | + | encidx + | encidx + | + | mask + | mask + | + | strlits + | strlits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class compiled_binpat_vec_t in module ida_bytes: + +class compiled_binpat_vec_t(builtins.object) + | Proxy of C++ qvector< compiled_binpat_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __getitem__(self, *args) -> 'compiled_binpat_t const &' + | __getitem__(self, i) -> compiled_binpat_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> compiled_binpat_vec_t + | __init__(self, x) -> compiled_binpat_vec_t + | + | @param x: qvector< compiled_binpat_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< compiled_binpat_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: compiled_binpat_t const & + | + | __swig_destroy__ = delete_compiled_binpat_vec_t(...) + | delete_compiled_binpat_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: compiled_binpat_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | at(self, *args) -> 'compiled_binpat_t const &' + | at(self, _idx) -> compiled_binpat_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | begin(self) -> compiled_binpat_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | end(self) -> compiled_binpat_t + | + | erase(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | erase(self, it) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | + | erase(self, first, last) -> compiled_binpat_t + | + | @param first: qvector< compiled_binpat_t >::iterator + | @param last: qvector< compiled_binpat_t >::iterator + | + | extract(self, *args) -> 'compiled_binpat_t *' + | extract(self) -> compiled_binpat_t + | + | find(self, *args) -> 'qvector< compiled_binpat_t >::const_iterator' + | find(self, x) -> compiled_binpat_t + | + | @param x: compiled_binpat_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=compiled_binpat_t()) + | + | @param x: compiled_binpat_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: compiled_binpat_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: compiled_binpat_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< compiled_binpat_t >::iterator' + | insert(self, it, x) -> compiled_binpat_t + | + | @param it: qvector< compiled_binpat_t >::iterator + | @param x: compiled_binpat_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'compiled_binpat_t &' + | push_back(self, x) + | + | @param x: compiled_binpat_t const & + | + | push_back(self) -> compiled_binpat_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: compiled_binpat_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< compiled_binpat_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function create_16bit_data in module ida_bytes: + +create_16bit_data(*args) -> 'bool' + create_16bit_data(ea, length) -> bool + Convert to 16-bit quantity (take the byte size into account) + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + +Help on function create_32bit_data in module ida_bytes: + +create_32bit_data(*args) -> 'bool' + create_32bit_data(ea, length) -> bool + Convert to 32-bit quantity (take the byte size into account) + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + +Help on function create_align in module ida_bytes: + +create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool + Create an alignment item. + + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success + +Help on function create_byte in module ida_bytes: + +create_byte(*args) -> 'bool' + create_byte(ea, length, force=False) -> bool + Convert to byte. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_custdata in module ida_bytes: + +create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool + Convert to custom data type. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) + +Help on function create_data in module ida_bytes: + +create_data(*args) -> 'bool' + create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success + +Help on function create_double in module ida_bytes: + +create_double(*args) -> 'bool' + create_double(ea, length, force=False) -> bool + Convert to double. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_dword in module ida_bytes: + +create_dword(*args) -> 'bool' + create_dword(ea, length, force=False) -> bool + Convert to dword. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_float in module ida_bytes: + +create_float(*args) -> 'bool' + create_float(ea, length, force=False) -> bool + Convert to float. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_oword in module ida_bytes: + +create_oword(*args) -> 'bool' + create_oword(ea, length, force=False) -> bool + Convert to octaword/xmm word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_packed_real in module ida_bytes: + +create_packed_real(*args) -> 'bool' + create_packed_real(ea, length, force=False) -> bool + Convert to packed decimal real. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_qword in module ida_bytes: + +create_qword(*args) -> 'bool' + create_qword(ea, length, force=False) -> bool + Convert to quadword. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_strlit in module ida_bytes: + +create_strlit(*args) -> 'bool' + create_strlit(start, len, strtype) -> bool + Convert to string literal and give a meaningful name. 'start' may be higher than + 'end', the kernel will swap them in this case + + @param start: (C++: ea_t) starting address + @param len: (C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() + will be used to determine the length + @param strtype: (C++: int32) string type. one of String type codes + @return: success + +Help on function create_struct in module ida_bytes: + +create_struct(*args) -> 'bool' + create_struct(ea, length, tid, force=False) -> bool + Convert to struct. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param tid: (C++: tid_t) + @param force: (C++: bool) + +Help on function create_tbyte in module ida_bytes: + +create_tbyte(*args) -> 'bool' + create_tbyte(ea, length, force=False) -> bool + Convert to tbyte. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_word in module ida_bytes: + +create_word(*args) -> 'bool' + create_word(ea, length, force=False) -> bool + Convert to word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_yword in module ida_bytes: + +create_yword(*args) -> 'bool' + create_yword(ea, length, force=False) -> bool + Convert to ymm word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function create_zword in module ida_bytes: + +create_zword(*args) -> 'bool' + create_zword(ea, length, force=False) -> bool + Convert to zmm word. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param force: (C++: bool) + +Help on function cust_flag in module ida_bytes: + +cust_flag(*args) -> 'flags64_t' + cust_flag() -> flags64_t + Get a flags64_t representing custom type data. + +Help on function custfmt_flag in module ida_bytes: + +custfmt_flag(*args) -> 'flags64_t' + custfmt_flag() -> flags64_t + see Bits: instruction operand types + +Help on class data_format_t in module ida_bytes: + +class data_format_t(builtins.object) + | Proxy of C++ data_format_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | Initialize self. See help(type(self)) for accurate signature. + | + | __real__init__ = __init__(self, *args) + | __init__(self, _self, name, value_size=0, menu_name=None, props=0, hotkey=None, text_width=0) -> data_format_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param props: int + | @param hotkey: char const * + | @param text_width: int32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_data_format_t(...) + | delete_data_format_t(self) + | + | _data_format_t__get_id = __get_id(self, *args) -> 'int' + | __get_id(self) -> int + | + | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool + | Should this format be shown in UI menus + | + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hotkey + | hotkey + | + | id + | __get_id(self) -> int + | + | menu_name + | menu_name + | + | name + | name + | + | props + | props + | + | text_width + | text_width + | + | thisown + | The membership flag + | + | value_size + | value_size + +Help on class data_type_t in module ida_bytes: + +class data_type_t(builtins.object) + | Proxy of C++ data_type_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | Initialize self. See help(type(self)) for accurate signature. + | + | __real__init__ = __init__(self, *args) + | __init__(self, _self, name, value_size=0, menu_name=None, hotkey=None, asm_keyword=None, props=0) -> data_type_t + | + | @param self: PyObject * + | @param name: char const * + | @param value_size: asize_t + | @param menu_name: char const * + | @param hotkey: char const * + | @param asm_keyword: char const * + | @param props: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_data_type_t(...) + | delete_data_type_t(self) + | + | _data_type_t__get_id = __get_id(self, *args) -> 'int' + | __get_id(self) -> int + | + | is_present_in_menus(self, *args) -> 'bool' + | is_present_in_menus(self) -> bool + | Should this type be shown in UI menus + | + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | asm_keyword + | asm_keyword + | + | hotkey + | hotkey + | + | id + | __get_id(self) -> int + | + | menu_name + | menu_name + | + | name + | name + | + | props + | props + | + | thisown + | The membership flag + | + | value_size + | value_size + +Help on function dec_flag in module ida_bytes: + +dec_flag(*args) -> 'flags64_t' + dec_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on function del_hidden_range in module ida_bytes: + +del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool + Delete hidden range. + + @param ea: (C++: ea_t) any address in the hidden range + @return: success + +Help on function del_items in module ida_bytes: + +del_items(*args) -> 'bool' + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false + +Help on function del_mapping in module ida_bytes: + +del_mapping(*args) -> 'void' + del_mapping(ea) + Delete memory mapping range. + + @param ea: (C++: ea_t) any address in the mapped range + +Help on function del_value in module ida_bytes: + +del_value(*args) -> 'void' + del_value(ea) + Delete byte value from flags. The corresponding byte becomes uninitialized. + + @param ea: (C++: ea_t) + +Help on function detach_custom_data_format in module ida_bytes: + +detach_custom_data_format(*args) -> 'bool' + detach_custom_data_format(dtid, dfid) -> bool + Detach the data format from the data type. Unregistering a custom data type + detaches all attached data formats, no need to detach them explicitly. You still + need unregister them. Unregistering a custom data format detaches it from all + attached data types. + + @param dtid: (C++: int) data type id to detach data format from + @param dfid: (C++: int) data format id to detach + @retval true: ok + @retval false: no such `dtid', or no such `dfid', or the data format was not + attached to the data type + +Help on function disable_flags in module ida_bytes: + +disable_flags(*args) -> 'error_t' + disable_flags(start_ea, end_ea) -> error_t + Deallocate flags for address range. Exit with an error message if not enough + disk space (this may occur too). + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @return: 0 if ok, otherwise return error code + +Help on function double_flag in module ida_bytes: + +double_flag(*args) -> 'flags64_t' + double_flag() -> flags64_t + Get a flags64_t representing a double. + +Help on function dword_flag in module ida_bytes: + +dword_flag(*args) -> 'flags64_t' + dword_flag() -> flags64_t + Get a flags64_t representing a double word. + +Help on function enable_flags in module ida_bytes: + +enable_flags(*args) -> 'error_t' + enable_flags(start_ea, end_ea, stt) -> error_t + Allocate flags for address range. This function does not change the storage type + of existing ranges. Exit with an error message if not enough disk space. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: 0 if ok, otherwise an error code + +Help on function enum_flag in module ida_bytes: + +enum_flag(*args) -> 'flags64_t' + enum_flag() -> flags64_t + see Bits: instruction operand types + +Help on function equal_bytes in module ida_bytes: + +equal_bytes(*args) -> 'bool' + equal_bytes(ea, image, mask, len, bin_search_flags) -> bool + Compare 'len' bytes of the program starting from 'ea' with 'image'. + + @param ea: (C++: ea_t) linear address + @param image: (C++: const uchar *) bytes to compare with + @param mask: (C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag + BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if + not; 1 means to perform the comparison of the corresponding byte. 0 + means not to perform. if mask == nullptr, then all bytes of 'image' + will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be + skipped + @param len: (C++: size_t) length of block to compare in bytes. + @param bin_search_flags: (C++: int) combination of Search flags + @retval 1: equal + @retval 0: not equal + +Help on function f_has_cmt in module ida_bytes: + +f_has_cmt(*args) -> 'bool' + f_has_cmt(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * + +Help on function f_has_dummy_name in module ida_bytes: + +f_has_dummy_name(*args) -> 'bool' + f_has_dummy_name(f, arg2) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param f: (C++: flags64_t) + @param arg2: void * + +Help on function f_has_extra_cmts in module ida_bytes: + +f_has_extra_cmts(*args) -> 'bool' + f_has_extra_cmts(f, arg2) -> bool + + @param f: flags64_t + @param arg2: void * + +Help on function f_has_name in module ida_bytes: + +f_has_name(*args) -> 'bool' + f_has_name(f, arg2) -> bool + Does the current byte have non-trivial (non-dummy) name? + + @param f: (C++: flags64_t) + @param arg2: void * + +Help on function f_has_user_name in module ida_bytes: + +f_has_user_name(*args) -> 'bool' + f_has_user_name(F, arg2) -> bool + Does the current byte have user-specified name? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_has_xref in module ida_bytes: + +f_has_xref(*args) -> 'bool' + f_has_xref(f, arg2) -> bool + Does the current byte have cross-references to it? + + @param f: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_align in module ida_bytes: + +f_is_align(*args) -> 'bool' + f_is_align(F, arg2) -> bool + See is_align() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_byte in module ida_bytes: + +f_is_byte(*args) -> 'bool' + f_is_byte(F, arg2) -> bool + See is_byte() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_code in module ida_bytes: + +f_is_code(*args) -> 'bool' + f_is_code(F, arg2) -> bool + Does flag denote start of an instruction? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_custom in module ida_bytes: + +f_is_custom(*args) -> 'bool' + f_is_custom(F, arg2) -> bool + See is_custom() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_data in module ida_bytes: + +f_is_data(*args) -> 'bool' + f_is_data(F, arg2) -> bool + Does flag denote start of data? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_double in module ida_bytes: + +f_is_double(*args) -> 'bool' + f_is_double(F, arg2) -> bool + See is_double() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_dword in module ida_bytes: + +f_is_dword(*args) -> 'bool' + f_is_dword(F, arg2) -> bool + See is_dword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_float in module ida_bytes: + +f_is_float(*args) -> 'bool' + f_is_float(F, arg2) -> bool + See is_float() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_head in module ida_bytes: + +f_is_head(*args) -> 'bool' + f_is_head(F, arg2) -> bool + Does flag denote start of instruction OR data? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_not_tail in module ida_bytes: + +f_is_not_tail(*args) -> 'bool' + f_is_not_tail(F, arg2) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_oword in module ida_bytes: + +f_is_oword(*args) -> 'bool' + f_is_oword(F, arg2) -> bool + See is_oword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_pack_real in module ida_bytes: + +f_is_pack_real(*args) -> 'bool' + f_is_pack_real(F, arg2) -> bool + See is_pack_real() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_qword in module ida_bytes: + +f_is_qword(*args) -> 'bool' + f_is_qword(F, arg2) -> bool + See is_qword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_strlit in module ida_bytes: + +f_is_strlit(*args) -> 'bool' + f_is_strlit(F, arg2) -> bool + See is_strlit() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_struct in module ida_bytes: + +f_is_struct(*args) -> 'bool' + f_is_struct(F, arg2) -> bool + See is_struct() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_tail in module ida_bytes: + +f_is_tail(*args) -> 'bool' + f_is_tail(F, arg2) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_tbyte in module ida_bytes: + +f_is_tbyte(*args) -> 'bool' + f_is_tbyte(F, arg2) -> bool + See is_tbyte() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_word in module ida_bytes: + +f_is_word(*args) -> 'bool' + f_is_word(F, arg2) -> bool + See is_word() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function f_is_yword in module ida_bytes: + +f_is_yword(*args) -> 'bool' + f_is_yword(F, arg2) -> bool + See is_yword() + + @param F: (C++: flags64_t) + @param arg2: void * + +Help on function find_byte in module ida_bytes: + +find_byte(*args) -> 'ea_t' + find_byte(sEA, size, value, bin_search_flags) -> ea_t + Find forward a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 4, 5, and 6 + + @param sEA: (C++: ea_t) linear address + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR + +Help on function find_byter in module ida_bytes: + +find_byter(*args) -> 'ea_t' + find_byter(sEA, size, value, bin_search_flags) -> ea_t + Find reverse a byte with the specified value (only 8-bit value from the + database). example: ea=4 size=3 will inspect addresses 6, 5, and 4 + + @param sEA: (C++: ea_t) the lower address of the search range + @param size: (C++: asize_t) number of bytes to inspect + @param value: (C++: uchar) value to find + @param bin_search_flags: (C++: int) combination of Search flags + @return: address of byte or BADADDR + +Help on function find_custom_data_format in module ida_bytes: + +find_custom_data_format(*args) -> 'int' + find_custom_data_format(name) -> int + Get id of a custom data format. + + @param name: (C++: const char *) name of the custom data format + @return: id or -1 + +Help on function find_custom_data_type in module ida_bytes: + +find_custom_data_type(*args) -> 'int' + find_custom_data_type(name) -> int + Get id of a custom data type. + + @param name: (C++: const char *) name of the custom data type + @return: id or -1 + +Help on function find_free_chunk in module ida_bytes: + +find_free_chunk(*args) -> 'ea_t' + find_free_chunk(start, size, alignment) -> ea_t + Search for a hole in the addressing space of the program. + + @param start: (C++: ea_t) Address to start searching from + @param size: (C++: asize_t) Size of the desired empty range + @param alignment: (C++: asize_t) Alignment bitmask, must be a pow2-1. (for example, 0xF would + align the returned range to 16 bytes). + @return: Start of the found empty range or BADADDR + +Help on function float_flag in module ida_bytes: + +float_flag(*args) -> 'flags64_t' + float_flag() -> flags64_t + Get a flags64_t representing a float. + +Help on function flt_flag in module ida_bytes: + +flt_flag(*args) -> 'flags64_t' + flt_flag() -> flags64_t + see Bits: instruction operand types + +Help on function free_chunk in module ida_bytes: + +free_chunk(*args) -> 'ea_t' + free_chunk(bottom, size, step) -> ea_t + + @param bottom: ea_t + @param size: asize_t + @param step: int32 + +Help on function get_16bit in module ida_bytes: + +get_16bit(*args) -> 'uint32' + get_16bit(ea) -> uint32 + Get 16bits of the program at 'ea'. + + @param ea: (C++: ea_t) + @return: 1 byte (getFullByte()) if the current processor has 16-bit byte, + otherwise return get_word() + +Help on function get_32bit in module ida_bytes: + +get_32bit(*args) -> 'uint32' + get_32bit(ea) -> uint32 + Get not more than 32bits of the program at 'ea'. + + @param ea: (C++: ea_t) + @return: 32 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_dword(ea); + * if ( nbits <= 16) return get_wide_word(ea); + * return get_wide_byte(ea); + +Help on function get_64bit in module ida_bytes: + +get_64bit(*args) -> 'uint64' + get_64bit(ea) -> uint64 + Get not more than 64bits of the program at 'ea'. + + @param ea: (C++: ea_t) + @return: 64 bit value, depending on processor_t::nbits: + * if ( nbits <= 8 ) return get_qword(ea); + * if ( nbits <= 16) return get_wide_dword(ea); + * return get_wide_byte(ea); + +Help on function get_8bit in module ida_bytes: + +get_8bit(*args) -> 'PyObject *' + get_8bit(ea, v, nbit) -> PyObject * + + @param ea: ea_t + @param v: uint32 + @param nbit: int + +Help on function get_byte in module ida_bytes: + +get_byte(*args) -> 'uchar' + get_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea'. This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_bytes in module ida_bytes: + +get_bytes(*args) -> 'PyObject *' + get_bytes(ea, size, gmb_flags=0x01) -> bytes or None + Get the specified number of bytes of the program. + + @param ea: program address + @param size: number of bytes to return + @param gmb_flags: int + @return: the bytes (as a str), or None in case of failure + +Help on function get_bytes_and_mask in module ida_bytes: + +get_bytes_and_mask(*args) -> 'PyObject *' + get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * + Get the specified number of bytes of the program, and a bitmask + specifying what bytes are defined and what bytes are not. + + @param ea: program address + @param size: number of bytes to return + @param gmb_flags: int + @return: a tuple (bytes, mask), or None in case of failure. + Both 'bytes' and 'mask' are 'str' instances. + +Help on function get_cmt in module ida_bytes: + +get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str + Get an indented comment. + + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 + +Help on function get_custom_data_format in module ida_bytes: + +get_custom_data_format(*args) -> 'data_format_t const *' + get_custom_data_format(dfid) -> data_format_t + Get definition of a registered custom data format. + + @param dfid: (C++: int) data format id + @return: data format definition or nullptr + +Help on function get_custom_data_formats in module ida_bytes: + +get_custom_data_formats(*args) -> 'int' + get_custom_data_formats(out, dtid) -> int + Get list of attached custom data formats for the specified data type. + + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param dtid: (C++: int) data type id + @return: number of returned custom data formats. if error, returns -1 + +Help on function get_custom_data_type in module ida_bytes: + +get_custom_data_type(*args) -> 'data_type_t const *' + get_custom_data_type(dtid) -> data_type_t + Get definition of a registered custom data type. + + @param dtid: (C++: int) data type id + @return: data type definition or nullptr + +Help on function get_custom_data_types in module ida_bytes: + +get_custom_data_types(*args) -> 'int' + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int + Get list of registered custom data type ids. + + @param out: (C++: intvec_t *) buffer for the output. may be nullptr + @param min_size: (C++: asize_t) minimum value size + @param max_size: (C++: asize_t) maximum value size + @return: number of custom data types with the specified size limits + +Help on function get_data_elsize in module ida_bytes: + +get_data_elsize(*args) -> 'asize_t' + get_data_elsize(ea, F, ti=None) -> asize_t + Get size of data type specified in flags 'F'. + + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @return: * byte : 1 + * word : 2 + * etc... + +Help on function get_data_value in module ida_bytes: + +get_data_value(*args) -> 'bool' + get_data_value(v, ea, size) -> bool + Get the value at of the item at 'ea'. This function works with entities up to + sizeof(ea_t) (bytes, word, etc) + + @param v: (C++: uval_t *) pointer to the result. may be nullptr + @param ea: (C++: ea_t) linear address + @param size: (C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used + @return: success + +Help on function get_db_byte in module ida_bytes: + +get_db_byte(*args) -> 'uchar' + get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) + +Help on function get_default_radix in module ida_bytes: + +get_default_radix(*args) -> 'int' + get_default_radix() -> int + Get default base of number for the current processor. + + @return: 2, 8, 10, 16 + +Help on function get_dword in module ida_bytes: + +get_dword(*args) -> 'uint32' + get_dword(ea) -> uint32 + Get one dword (32-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_enum_id in module ida_bytes: + +get_enum_id(*args) -> 'uchar *' + get_enum_id(ea, n) -> enum_t + Get enum id of 'enum' operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: id of enum or BADNODE + +Help on function get_first_hidden_range in module ida_bytes: + +get_first_hidden_range(*args) -> 'hidden_range_t *' + get_first_hidden_range() -> hidden_range_t + Get pointer to the first hidden range. + + @return: ptr to hidden range or nullptr + +Help on function get_flags in module ida_bytes: + +get_flags(*args) -> 'flags64_t' + get_flags(ea) -> flags64_t + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + + @param ea: (C++: ea_t) + +Help on function get_flags_by_size in module ida_bytes: + +get_flags_by_size(*args) -> 'flags64_t' + get_flags_by_size(size) -> flags64_t + Get flags from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other + sizes returns 0 + + @param size: (C++: size_t) + +Help on function get_flags_ex in module ida_bytes: + +get_flags_ex(*args) -> 'flags64_t' + get_flags_ex(ea, how) -> flags64_t + Get flags for the specified address, extended form. + + @param ea: (C++: ea_t) + @param how: (C++: int) + +Help on function get_forced_operand in module ida_bytes: + +get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str + Get forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 + +Help on function get_full_data_elsize in module ida_bytes: + +get_full_data_elsize(*args) -> 'asize_t' + get_full_data_elsize(ea, F, ti=None) -> asize_t + Get full size of data type specified in flags 'F'. takes into account processors + with wide bytes e.g. returns 2 for a byte element with 16-bit bytes + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param ti: (C++: const opinfo_t *) opinfo_t const * + +Help on function get_full_flags in module ida_bytes: + +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t + Get flags value for address 'ea'. + + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program + +Help on function get_hidden_range in module ida_bytes: + +get_hidden_range(*args) -> 'hidden_range_t *' + get_hidden_range(ea) -> hidden_range_t + Get pointer to hidden range structure, in: linear address. + + @param ea: (C++: ea_t) any address in the hidden range + +Help on function get_hidden_range_num in module ida_bytes: + +get_hidden_range_num(*args) -> 'int' + get_hidden_range_num(ea) -> int + Get number of a hidden range. + + @param ea: (C++: ea_t) any address in the hidden range + @return: number of hidden range (0..get_hidden_range_qty()-1) + +Help on function get_hidden_range_qty in module ida_bytes: + +get_hidden_range_qty(*args) -> 'int' + get_hidden_range_qty() -> int + Get number of hidden ranges. + +Help on function get_item_end in module ida_bytes: + +get_item_end(*args) -> 'ea_t' + get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) + +Help on function get_item_flag in module ida_bytes: + +get_item_flag(*args) -> 'flags64_t' + get_item_flag(_from, n, ea, appzero) -> flags64_t + Get flag of the item at 'ea' even if it is a tail byte of some array or + structure. This function is used to get flags of structure members or array + elements. + + @param from: (C++: ea_t) linear address of the instruction which refers to 'ea' + @param n: (C++: int) number of operand which refers to 'ea' + @param ea: (C++: ea_t) the referenced address + @param appzero: (C++: bool) append a struct field name if the field offset is zero? + meaningful only if the name refers to a structure. + @return: flags or 0 (if failed) + +Help on function get_item_head in module ida_bytes: + +get_item_head(*args) -> 'ea_t' + get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) + +Help on function get_item_size in module ida_bytes: + +get_item_size(*args) -> 'asize_t' + get_item_size(ea) -> asize_t + Get size of item (instruction/data) in bytes. Unexplored bytes have length of 1 + byte. This function never returns 0. + + @param ea: (C++: ea_t) + +Help on function get_last_hidden_range in module ida_bytes: + +get_last_hidden_range(*args) -> 'hidden_range_t *' + get_last_hidden_range() -> hidden_range_t + Get pointer to the last hidden range. + + @return: ptr to hidden range or nullptr + +Help on function get_manual_insn in module ida_bytes: + +get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str + Retrieve the user-specified string for the manual instruction. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 + +Help on function get_mapping in module ida_bytes: + +get_mapping(*args) -> 'ea_t *, ea_t *, asize_t *' + get_mapping(n) -> bool + Get memory mapping range by its number. + + @param n: (C++: size_t) number of mapping range (0..get_mappings_qty()-1) + @return: false if the specified range doesn't exist, otherwise returns `from', + `to', `size' + +Help on function get_mappings_qty in module ida_bytes: + +get_mappings_qty(*args) -> 'size_t' + get_mappings_qty() -> size_t + Get number of mappings. + +Help on function get_max_strlit_length in module ida_bytes: + +get_max_strlit_length(*args) -> 'size_t' + get_max_strlit_length(ea, strtype, options=0) -> size_t + Determine maximum length of string literal. + + If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte + length prefix), the length of that prefix (i.e., 2) will be part of the returned + value. + + @param ea: (C++: ea_t) starting address + @param strtype: (C++: int32) string type. one of String type codes + @param options: (C++: int) combination of string literal length options + @return: length of the string in octets (octet==8bit) + +Help on function get_next_hidden_range in module ida_bytes: + +get_next_hidden_range(*args) -> 'hidden_range_t *' + get_next_hidden_range(ea) -> hidden_range_t + Get pointer to next hidden range. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if next hidden range doesn't exist + +Help on function get_octet in module ida_bytes: + +get_octet(*args) -> 'PyObject *' + get_octet(ea, v, nbit) -> (int, int, int, int) + + @param ea: ea_t + @param v: uint64 + @param nbit: int + +Help on function get_octet2 in module ida_bytes: + +get_octet2(*args) -> 'uchar *' + get_octet2(ogen) -> bool + + @param ogen: octet_generator_t * + +Help on function get_opinfo in module ida_bytes: + +get_opinfo(*args) -> 'opinfo_t *' + get_opinfo(buf, ea, n, flags) -> opinfo_t + Get additional information about an operand representation. + + @param buf: (C++: opinfo_t *) buffer to receive the result. may not be nullptr + @param ea: (C++: ea_t) linear address of item + @param n: (C++: int) number of operand, 0 or 1 + @param flags: (C++: flags64_t) flags of the item + @return: nullptr if no additional representation information + +Help on function get_optype_flags0 in module ida_bytes: + +get_optype_flags0(*args) -> 'flags64_t' + get_optype_flags0(F) -> flags64_t + Get flags for first operand. + + @param F: (C++: flags64_t) + +Help on function get_optype_flags1 in module ida_bytes: + +get_optype_flags1(*args) -> 'flags64_t' + get_optype_flags1(F) -> flags64_t + Get flags for second operand. + + @param F: (C++: flags64_t) + +Help on function get_original_byte in module ida_bytes: + +get_original_byte(*args) -> 'uint64' + get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) + +Help on function get_original_dword in module ida_bytes: + +get_original_dword(*args) -> 'uint64' + get_original_dword(ea) -> uint64 + Get original dword (that was before patching) This function works for wide byte + processors too. This function takes into account order of bytes specified in + idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_original_qword in module ida_bytes: + +get_original_qword(*args) -> 'uint64' + get_original_qword(ea) -> uint64 + Get original qword value (that was before patching) This function DOESN'T work + for wide byte processors too. This function takes into account order of bytes + specified in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_original_word in module ida_bytes: + +get_original_word(*args) -> 'uint64' + get_original_word(ea) -> uint64 + Get original word value (that was before patching). This function works for wide + byte processors too. This function takes into account order of bytes specified + in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_predef_insn_cmt in module ida_bytes: + +get_predef_insn_cmt(*args) -> 'qstring *' + get_predef_insn_cmt(ins) -> str + Get predefined comment. + + @param ins: (C++: const insn_t &) current instruction information + @return: size of comment or -1 + +Help on function get_prev_hidden_range in module ida_bytes: + +get_prev_hidden_range(*args) -> 'hidden_range_t *' + get_prev_hidden_range(ea) -> hidden_range_t + Get pointer to previous hidden range. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to hidden range or nullptr if previous hidden range doesn't exist + +Help on function get_qword in module ida_bytes: + +get_qword(*args) -> 'uint64' + get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_radix in module ida_bytes: + +get_radix(*args) -> 'int' + get_radix(F, n) -> int + Get radix of the operand, in: flags. If the operand is not a number, returns + get_default_radix() + + @param F: (C++: flags64_t) flags + @param n: (C++: int) number of operand (0, 1, -1) + @return: 2, 8, 10, 16 + +Help on function get_strlit_contents in module ida_bytes: + +get_strlit_contents(*args) -> 'PyObject *' + get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None + Get contents of string literal, as UTF-8-encoded codepoints. + It works even if the string has not been created in the database yet. + + Note that the returned value will be of type 'bytes'; if + you want auto-conversion to unicode strings (that is: real Python + strings), you should probably be using the idautils.Strings class. + + @param ea: linear address of the string + @param py_len: length of the string in bytes (including terminating 0) + @param type: type of the string. Represents both the character encoding, + <u>and</u> the 'type' of string at the given location. + @param flags: combination of STRCONV_..., to perform output conversion. + @return: a bytes-filled str object. + +Help on function get_stroff_path in module ida_bytes: + +get_stroff_path(*args) -> 'int' + get_stroff_path(path, delta, ea, n) -> int + Get struct path of operand. + + @param path: (C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info. + @param delta: (C++: adiff_t *) struct offset delta + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: length of strpath + +Help on function get_wide_byte in module ida_bytes: + +get_wide_byte(*args) -> 'uint64' + get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) + +Help on function get_wide_dword in module ida_bytes: + +get_wide_dword(*args) -> 'uint64' + get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) + +Help on function get_wide_word in module ida_bytes: + +get_wide_word(*args) -> 'uint64' + get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_word in module ida_bytes: + +get_word(*args) -> 'ushort' + get_word(ea) -> ushort + Get one word (16-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_zero_ranges in module ida_bytes: + +get_zero_ranges(*args) -> 'bool' + get_zero_ranges(zranges, range) -> bool + Return set of ranges with zero initialized bytes. The returned set includes only + big zero initialized ranges (at least >1KB). Some zero initialized byte ranges + may be not included. Only zero bytes that use the sparse storage method (STT_MM) + are reported. + + @param zranges: (C++: rangeset_t *) pointer to the return value. cannot be nullptr + @param range: (C++: const range_t *) the range of addresses to verify. can be nullptr - means all + ranges + @return: true if the result is a non-empty set + +Help on function getn_hidden_range in module ida_bytes: + +getn_hidden_range(*args) -> 'hidden_range_t *' + getn_hidden_range(n) -> hidden_range_t + Get pointer to hidden range structure, in: number of hidden range. + + @param n: (C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1 + +Help on function has_any_name in module ida_bytes: + +has_any_name(*args) -> 'bool' + has_any_name(F) -> bool + Does the current byte have any name? + + @param F: (C++: flags64_t) + +Help on function has_auto_name in module ida_bytes: + +has_auto_name(*args) -> 'bool' + has_auto_name(F) -> bool + Does the current byte have auto-generated (no special prefix) name? + + @param F: (C++: flags64_t) + +Help on function has_cmt in module ida_bytes: + +has_cmt(*args) -> 'bool' + has_cmt(F) -> bool + Does the current byte have an indented comment? + + @param F: (C++: flags64_t) + +Help on function has_dummy_name in module ida_bytes: + +has_dummy_name(*args) -> 'bool' + has_dummy_name(F) -> bool + Does the current byte have dummy (auto-generated, with special prefix) name? + + @param F: (C++: flags64_t) + +Help on function has_extra_cmts in module ida_bytes: + +has_extra_cmts(*args) -> 'bool' + has_extra_cmts(F) -> bool + Does the current byte have additional anterior or posterior lines? + + @param F: (C++: flags64_t) + +Help on function has_immd in module ida_bytes: + +has_immd(*args) -> 'bool' + has_immd(F) -> bool + Has immediate value? + + @param F: (C++: flags64_t) + +Help on function has_name in module ida_bytes: + +has_name(*args) -> 'bool' + has_name(F) -> bool + Does the current byte have non-trivial (non-dummy) name? + + @param F: (C++: flags64_t) + +Help on function has_user_name in module ida_bytes: + +has_user_name(*args) -> 'bool' + has_user_name(F) -> bool + Does the current byte have user-specified name? + + @param F: (C++: flags64_t) + +Help on function has_value in module ida_bytes: + +has_value(*args) -> 'bool' + has_value(F) -> bool + Do flags contain byte value? + + @param F: (C++: flags64_t) + +Help on function has_xref in module ida_bytes: + +has_xref(*args) -> 'bool' + has_xref(F) -> bool + Does the current byte have cross-references to it? + + @param F: (C++: flags64_t) + +Help on function hex_flag in module ida_bytes: + +hex_flag(*args) -> 'flags64_t' + hex_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on class hidden_range_t in module ida_bytes: + +class hidden_range_t(ida_range.range_t) + | Proxy of C++ hidden_range_t class. + | + | Method resolution order: + | hidden_range_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> hidden_range_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_hidden_range_t(...) + | delete_hidden_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | color + | color + | + | description + | description + | + | footer + | footer + | + | header + | header + | + | thisown + | The membership flag + | + | visible + | visible + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function is_align in module ida_bytes: + +is_align(*args) -> 'bool' + is_align(F) -> bool + FF_ALIGN + + @param F: (C++: flags64_t) + +Help on function is_attached_custom_data_format in module ida_bytes: + +is_attached_custom_data_format(*args) -> 'bool' + is_attached_custom_data_format(dtid, dfid) -> bool + Is the custom data format attached to the custom data type? + + @param dtid: (C++: int) data type id + @param dfid: (C++: int) data format id + @return: true or false + +Help on function is_bnot in module ida_bytes: + +is_bnot(*args) -> 'bool' + is_bnot(ea, F, n) -> bool + Should we negate the operand?. asm_t::a_bnot should be defined in the idp module + in order to work with this function + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_byte in module ida_bytes: + +is_byte(*args) -> 'bool' + is_byte(F) -> bool + FF_BYTE + + @param F: (C++: flags64_t) + +Help on function is_char in module ida_bytes: + +is_char(*args) -> 'bool' + is_char(F, n) -> bool + is character constant? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_char0 in module ida_bytes: + +is_char0(*args) -> 'bool' + is_char0(F) -> bool + Is the first operand character constant? (example: push 'a') + + @param F: (C++: flags64_t) + +Help on function is_char1 in module ida_bytes: + +is_char1(*args) -> 'bool' + is_char1(F) -> bool + Is the second operand character constant? (example: mov al, 'a') + + @param F: (C++: flags64_t) + +Help on function is_code in module ida_bytes: + +is_code(*args) -> 'bool' + is_code(F) -> bool + Does flag denote start of an instruction? + + @param F: (C++: flags64_t) + +Help on function is_custfmt in module ida_bytes: + +is_custfmt(*args) -> 'bool' + is_custfmt(F, n) -> bool + is custom data format? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_custfmt0 in module ida_bytes: + +is_custfmt0(*args) -> 'bool' + is_custfmt0(F) -> bool + Does the first operand use a custom data representation? + + @param F: (C++: flags64_t) + +Help on function is_custfmt1 in module ida_bytes: + +is_custfmt1(*args) -> 'bool' + is_custfmt1(F) -> bool + Does the second operand use a custom data representation? + + @param F: (C++: flags64_t) + +Help on function is_custom in module ida_bytes: + +is_custom(*args) -> 'bool' + is_custom(F) -> bool + FF_CUSTOM + + @param F: (C++: flags64_t) + +Help on function is_data in module ida_bytes: + +is_data(*args) -> 'bool' + is_data(F) -> bool + Does flag denote start of data? + + @param F: (C++: flags64_t) + +Help on function is_defarg in module ida_bytes: + +is_defarg(*args) -> 'bool' + is_defarg(F, n) -> bool + is defined? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_defarg0 in module ida_bytes: + +is_defarg0(*args) -> 'bool' + is_defarg0(F) -> bool + Is the first operand defined? Initially operand has no defined representation. + + @param F: (C++: flags64_t) + +Help on function is_defarg1 in module ida_bytes: + +is_defarg1(*args) -> 'bool' + is_defarg1(F) -> bool + Is the second operand defined? Initially operand has no defined representation. + + @param F: (C++: flags64_t) + +Help on function is_double in module ida_bytes: + +is_double(*args) -> 'bool' + is_double(F) -> bool + FF_DOUBLE + + @param F: (C++: flags64_t) + +Help on function is_dword in module ida_bytes: + +is_dword(*args) -> 'bool' + is_dword(F) -> bool + FF_DWORD + + @param F: (C++: flags64_t) + +Help on function is_enum in module ida_bytes: + +is_enum(*args) -> 'bool' + is_enum(F, n) -> bool + is enum? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_enum0 in module ida_bytes: + +is_enum0(*args) -> 'bool' + is_enum0(F) -> bool + Is the first operand a symbolic constant (enum member)? + + @param F: (C++: flags64_t) + +Help on function is_enum1 in module ida_bytes: + +is_enum1(*args) -> 'bool' + is_enum1(F) -> bool + Is the second operand a symbolic constant (enum member)? + + @param F: (C++: flags64_t) + +Help on function is_float in module ida_bytes: + +is_float(*args) -> 'bool' + is_float(F) -> bool + FF_FLOAT + + @param F: (C++: flags64_t) + +Help on function is_float0 in module ida_bytes: + +is_float0(*args) -> 'bool' + is_float0(F) -> bool + Is the first operand a floating point number? + + @param F: (C++: flags64_t) + +Help on function is_float1 in module ida_bytes: + +is_float1(*args) -> 'bool' + is_float1(F) -> bool + Is the second operand a floating point number? + + @param F: (C++: flags64_t) + +Help on function is_flow in module ida_bytes: + +is_flow(*args) -> 'bool' + is_flow(F) -> bool + Does the previous instruction exist and pass execution flow to the current byte? + + @param F: (C++: flags64_t) + +Help on function is_fltnum in module ida_bytes: + +is_fltnum(*args) -> 'bool' + is_fltnum(F, n) -> bool + is floating point number? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_forced_operand in module ida_bytes: + +is_forced_operand(*args) -> 'bool' + is_forced_operand(ea, n) -> bool + Is operand manually defined?. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + +Help on function is_func in module ida_bytes: + +is_func(*args) -> 'bool' + is_func(F) -> bool + Is function start? + + @param F: (C++: flags64_t) + +Help on function is_head in module ida_bytes: + +is_head(*args) -> 'bool' + is_head(F) -> bool + Does flag denote start of instruction OR data? + + @param F: (C++: flags64_t) + +Help on function is_invsign in module ida_bytes: + +is_invsign(*args) -> 'bool' + is_invsign(ea, F, n) -> bool + Should sign of n-th operand inverted during output?. allowed values of n: + 0-first operand, 1-other operands + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_loaded in module ida_bytes: + +is_loaded(*args) -> 'bool' + is_loaded(ea) -> bool + Does the specified address have a byte value (is initialized?) + + @param ea: (C++: ea_t) + +Help on function is_lzero in module ida_bytes: + +is_lzero(*args) -> 'bool' + is_lzero(ea, n) -> bool + Display leading zeroes? Display leading zeroes in operands. The global switch + for the leading zeroes is in idainfo::s_genflags Note: the leading zeroes + doesn't work if for the target assembler octal numbers start with 0. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function is_manual in module ida_bytes: + +is_manual(*args) -> 'bool' + is_manual(F, n) -> bool + is forced operand? (use is_forced_operand()) + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_manual_insn in module ida_bytes: + +is_manual_insn(*args) -> 'bool' + is_manual_insn(ea) -> bool + Is the instruction overridden? + + @param ea: (C++: ea_t) linear address of the instruction or data item + +Help on function is_mapped in module ida_bytes: + +is_mapped(*args) -> 'bool' + is_mapped(ea) -> bool + Is the specified address 'ea' present in the program? + + @param ea: (C++: ea_t) + +Help on function is_not_tail in module ida_bytes: + +is_not_tail(*args) -> 'bool' + is_not_tail(F) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + +Help on function is_numop in module ida_bytes: + +is_numop(*args) -> 'bool' + is_numop(F, n) -> bool + is number (bin, oct, dec, hex)? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_numop0 in module ida_bytes: + +is_numop0(*args) -> 'bool' + is_numop0(F) -> bool + Is the first operand a number (i.e. binary, octal, decimal or hex?) + + @param F: (C++: flags64_t) + +Help on function is_numop1 in module ida_bytes: + +is_numop1(*args) -> 'bool' + is_numop1(F) -> bool + Is the second operand a number (i.e. binary, octal, decimal or hex?) + + @param F: (C++: flags64_t) + +Help on function is_off in module ida_bytes: + +is_off(*args) -> 'bool' + is_off(F, n) -> bool + is offset? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_off0 in module ida_bytes: + +is_off0(*args) -> 'bool' + is_off0(F) -> bool + Is the first operand offset? (example: push offset xxx) + + @param F: (C++: flags64_t) + +Help on function is_off1 in module ida_bytes: + +is_off1(*args) -> 'bool' + is_off1(F) -> bool + Is the second operand offset? (example: mov ax, offset xxx) + + @param F: (C++: flags64_t) + +Help on function is_oword in module ida_bytes: + +is_oword(*args) -> 'bool' + is_oword(F) -> bool + FF_OWORD + + @param F: (C++: flags64_t) + +Help on function is_pack_real in module ida_bytes: + +is_pack_real(*args) -> 'bool' + is_pack_real(F) -> bool + FF_PACKREAL + + @param F: (C++: flags64_t) + +Help on function is_qword in module ida_bytes: + +is_qword(*args) -> 'bool' + is_qword(F) -> bool + FF_QWORD + + @param F: (C++: flags64_t) + +Help on function is_same_data_type in module ida_bytes: + +is_same_data_type(*args) -> 'bool' + is_same_data_type(F1, F2) -> bool + Do the given flags specify the same data type? + + @param F1: (C++: flags64_t) + @param F2: (C++: flags64_t) + +Help on function is_seg in module ida_bytes: + +is_seg(*args) -> 'bool' + is_seg(F, n) -> bool + is segment? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_seg0 in module ida_bytes: + +is_seg0(*args) -> 'bool' + is_seg0(F) -> bool + Is the first operand segment selector? (example: push seg seg001) + + @param F: (C++: flags64_t) + +Help on function is_seg1 in module ida_bytes: + +is_seg1(*args) -> 'bool' + is_seg1(F) -> bool + Is the second operand segment selector? (example: mov dx, seg dseg) + + @param F: (C++: flags64_t) + +Help on function is_stkvar in module ida_bytes: + +is_stkvar(*args) -> 'bool' + is_stkvar(F, n) -> bool + is stack variable? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_stkvar0 in module ida_bytes: + +is_stkvar0(*args) -> 'bool' + is_stkvar0(F) -> bool + Is the first operand a stack variable? + + @param F: (C++: flags64_t) + +Help on function is_stkvar1 in module ida_bytes: + +is_stkvar1(*args) -> 'bool' + is_stkvar1(F) -> bool + Is the second operand a stack variable? + + @param F: (C++: flags64_t) + +Help on function is_strlit in module ida_bytes: + +is_strlit(*args) -> 'bool' + is_strlit(F) -> bool + FF_STRLIT + + @param F: (C++: flags64_t) + +Help on function is_stroff in module ida_bytes: + +is_stroff(*args) -> 'bool' + is_stroff(F, n) -> bool + is struct offset? + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_stroff0 in module ida_bytes: + +is_stroff0(*args) -> 'bool' + is_stroff0(F) -> bool + Is the first operand an offset within a struct? + + @param F: (C++: flags64_t) + +Help on function is_stroff1 in module ida_bytes: + +is_stroff1(*args) -> 'bool' + is_stroff1(F) -> bool + Is the second operand an offset within a struct? + + @param F: (C++: flags64_t) + +Help on function is_struct in module ida_bytes: + +is_struct(*args) -> 'bool' + is_struct(F) -> bool + FF_STRUCT + + @param F: (C++: flags64_t) + +Help on function is_suspop in module ida_bytes: + +is_suspop(*args) -> 'bool' + is_suspop(ea, F, n) -> bool + is suspicious operand? + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function is_tail in module ida_bytes: + +is_tail(*args) -> 'bool' + is_tail(F) -> bool + Does flag denote tail byte? + + @param F: (C++: flags64_t) + +Help on function is_tbyte in module ida_bytes: + +is_tbyte(*args) -> 'bool' + is_tbyte(F) -> bool + FF_TBYTE + + @param F: (C++: flags64_t) + +Help on function is_unknown in module ida_bytes: + +is_unknown(*args) -> 'bool' + is_unknown(F) -> bool + Does flag denote unexplored byte? + + @param F: (C++: flags64_t) + +Help on function is_varsize_item in module ida_bytes: + +is_varsize_item(*args) -> 'int' + is_varsize_item(ea, F, ti=None, itemsize=None) -> int + Is the item at 'ea' variable size?. + + @param ea: (C++: ea_t) linear address of the item + @param F: (C++: flags64_t) flags + @param ti: (C++: const opinfo_t *) additional information about the data type. For example, if the + current item is a structure instance, then ti->tid is structure id. + Otherwise is ignored (may be nullptr). If specified as nullptr, will + be automatically retrieved from the database + @param itemsize: (C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain + the calculated item size (for struct types, the minimal size is + returned) + @retval 1: varsize item + @retval 0: fixed item + @retval -1: error (bad data definition) + +Help on function is_word in module ida_bytes: + +is_word(*args) -> 'bool' + is_word(F) -> bool + FF_WORD + + @param F: (C++: flags64_t) + +Help on function is_yword in module ida_bytes: + +is_yword(*args) -> 'bool' + is_yword(F) -> bool + FF_YWORD + + @param F: (C++: flags64_t) + +Help on function is_zword in module ida_bytes: + +is_zword(*args) -> 'bool' + is_zword(F) -> bool + FF_ZWORD + + @param F: (C++: flags64_t) + +Help on function leading_zero_important in module ida_bytes: + +leading_zero_important(*args) -> 'bool' + leading_zero_important(ea, n) -> bool + Check if leading zeroes are important. + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function nbits in module ida_bytes: + +nbits(*args) -> 'int' + nbits(ea) -> int + Get number of bits in a byte at the given address. + + @param ea: (C++: ea_t) + @return: processor_t::dnbits() if the address doesn't belong to a segment, + otherwise the result depends on the segment type + +Help on function next_addr in module ida_bytes: + +next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t + Get next address in the program (i.e. next address which has flags). + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function next_chunk in module ida_bytes: + +next_chunk(*args) -> 'ea_t' + next_chunk(ea) -> ea_t + Get the first address of next contiguous chunk in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if next chunk doesn't exist. + +Help on function next_head in module ida_bytes: + +next_head(*args) -> 'ea_t' + next_head(ea, maxea) -> ea_t + Get start of next defined item. + + @param ea: (C++: ea_t) begin search at this address + @param maxea: (C++: ea_t) not included in the search range + @return: BADADDR if none exists. + +Help on function next_inited in module ida_bytes: + +next_inited(*args) -> 'ea_t' + next_inited(ea, maxea) -> ea_t + Find the next initialized address. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) + +Help on function next_not_tail in module ida_bytes: + +next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t + Get address of next non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function next_that in module ida_bytes: + +next_that(*args) -> 'ea_t' + next_that(ea, maxea, testf) -> ea_t + Find next address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes. It + will fail under the debugger. To find unexplored bytes, use + next_unknown(). + + @param ea: (C++: ea_t) start searching at this address + 1 + @param maxea: (C++: ea_t) not included in the search range. + @param testf: (C++: testf_t *) test function to find next address + @return: the found address or BADADDR. + +Help on function next_unknown in module ida_bytes: + +next_unknown(*args) -> 'ea_t' + next_unknown(ea, maxea) -> ea_t + Similar to next_that(), but will find the next address that is unexplored. + + @param ea: (C++: ea_t) + @param maxea: (C++: ea_t) + +Help on function next_visea in module ida_bytes: + +next_visea(*args) -> 'ea_t' + next_visea(ea) -> ea_t + Get next visible address. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function num_flag in module ida_bytes: + +num_flag(*args) -> 'flags64_t' + num_flag() -> flags64_t + Get number of default base (bin, oct, dec, hex) + +Help on function oct_flag in module ida_bytes: + +oct_flag(*args) -> 'flags64_t' + oct_flag() -> flags64_t + Get number flag of the base, regardless of current processor - better to use + num_flag() + +Help on class octet_generator_t in module ida_bytes: + +class octet_generator_t(builtins.object) + | Proxy of C++ octet_generator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> octet_generator_t + | + | @param _ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_octet_generator_t(...) + | delete_octet_generator_t(self) + | + | invert_byte_order(self, *args) -> 'void' + | invert_byte_order(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | avail_bits + | avail_bits + | + | ea + | ea + | + | high_byte_first + | high_byte_first + | + | thisown + | The membership flag + | + | value + | value + +Help on function off_flag in module ida_bytes: + +off_flag(*args) -> 'flags64_t' + off_flag() -> flags64_t + see Bits: instruction operand types + +Help on function op_adds_xrefs in module ida_bytes: + +op_adds_xrefs(*args) -> 'bool' + op_adds_xrefs(F, n) -> bool + Should processor module create xrefs from the operand?. Currently 'offset' and + 'structure offset' operands create xrefs + + @param F: (C++: flags64_t) + @param n: (C++: int) + +Help on function op_bin in module ida_bytes: + +op_bin(*args) -> 'bool' + op_bin(ea, n) -> bool + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_chr in module ida_bytes: + +op_chr(*args) -> 'bool' + op_chr(ea, n) -> bool + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_custfmt in module ida_bytes: + +op_custfmt(*args) -> 'bool' + op_custfmt(ea, n, fid) -> bool + Set custom data format for operand (fid-custom data format id) + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param fid: (C++: int) + +Help on function op_dec in module ida_bytes: + +op_dec(*args) -> 'bool' + op_dec(ea, n) -> bool + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_enum in module ida_bytes: + +op_enum(*args) -> 'bool' + op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success + +Help on function op_flt in module ida_bytes: + +op_flt(*args) -> 'bool' + op_flt(ea, n) -> bool + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_hex in module ida_bytes: + +op_hex(*args) -> 'bool' + op_hex(ea, n) -> bool + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_num in module ida_bytes: + +op_num(*args) -> 'bool' + op_num(ea, n) -> bool + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_oct in module ida_bytes: + +op_oct(*args) -> 'bool' + op_oct(ea, n) -> bool + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_seg in module ida_bytes: + +op_seg(*args) -> 'bool' + op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stkvar in module ida_bytes: + +op_stkvar(*args) -> 'bool' + op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stroff in module ida_bytes: + +op_stroff(*args) -> 'bool' + op_stroff(insn, n, path, path_len, delta) -> bool + Set operand representation to be 'struct offset'. If applied to unexplored + bytes, converts them to 16/32bit word data + + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand (0, 1, -1) + @param path: (C++: const tid_t *) structure path (strpath). see nalt.hpp for more info. + @param path_len: (C++: int) length of the structure path + @param delta: (C++: adiff_t) struct offset delta. usually 0. denotes the difference between the + structure base and the pointer into the structure. + @return: success + +Help on function oword_flag in module ida_bytes: + +oword_flag(*args) -> 'flags64_t' + oword_flag() -> flags64_t + Get a flags64_t representing a octaword. + +Help on function packreal_flag in module ida_bytes: + +packreal_flag(*args) -> 'flags64_t' + packreal_flag() -> flags64_t + Get a flags64_t representing a packed decimal real. + +Help on function parse_binpat_str in module ida_bytes: + +parse_binpat_str(*args) -> 'qstring *' + parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str + Convert user-specified binary string to internal representation. The 'in' + parameter contains space-separated tokens: + - numbers (numeric base is determined by 'radix') + - if value of number fits a byte, it is considered as a byte + - if value of number fits a word, it is considered as 2 bytes + - if value of number fits a dword,it is considered as 4 bytes + - "..." string constants + - 'x' single-character constants + - ? variable bytes + + Note that string constants are surrounded with double quotes. + + Here are a few examples (assuming base 16): + CD 21 - bytes 0xCD, 0x21 + 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) + "Hello", 0 - the null terminated string "Hello" + L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 + B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90 + + @param out: (C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2() + @param ea: (C++: ea_t) linear address to convert for (the conversion depends on the address, + because the number of bits in a byte depend on the segment type) + @param in: (C++: const char *) input text string + @param radix: (C++: int) numeric base of numbers (8,10,16) + @param strlits_encoding: (C++: int) the target encoding into which the string literals + present in 'in', should be encoded. Can be any from [1, + get_encoding_qty()), or the special values PBSENC_* + @return: false either in case of parsing error, or if at least one requested + target encoding couldn't encode the string literals present in "in". + +Help on function patch_byte in module ida_bytes: + +patch_byte(*args) -> 'bool' + patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_bytes in module ida_bytes: + +patch_bytes(*args) -> 'void' + patch_bytes(ea, buf) + Patch the specified number of bytes of the program. Original values of bytes are + saved and are available with get_original...() functions. See also put_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes + +Help on function patch_dword in module ida_bytes: + +patch_dword(*args) -> 'bool' + patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_qword in module ida_bytes: + +patch_qword(*args) -> 'bool' + patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_word in module ida_bytes: + +patch_word(*args) -> 'bool' + patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function prev_addr in module ida_bytes: + +prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t + Get previous address in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function prev_chunk in module ida_bytes: + +prev_chunk(*args) -> 'ea_t' + prev_chunk(ea) -> ea_t + Get the last address of previous contiguous chunk in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if previous chunk doesn't exist. + +Help on function prev_head in module ida_bytes: + +prev_head(*args) -> 'ea_t' + prev_head(ea, minea) -> ea_t + Get start of previous defined item. + + @param ea: (C++: ea_t) begin search at this address + @param minea: (C++: ea_t) included in the search range + @return: BADADDR if none exists. + +Help on function prev_inited in module ida_bytes: + +prev_inited(*args) -> 'ea_t' + prev_inited(ea, minea) -> ea_t + Find the previous initialized address. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) + +Help on function prev_not_tail in module ida_bytes: + +prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t + Get address of previous non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function prev_that in module ida_bytes: + +prev_that(*args) -> 'ea_t' + prev_that(ea, minea, testf) -> ea_t + Find previous address with a flag satisfying the function 'testf'. + @note: do not pass is_unknown() to this function to find unexplored bytes It + will fail under the debugger. To find unexplored bytes, use + prev_unknown(). + + @param ea: (C++: ea_t) start searching from this address - 1. + @param minea: (C++: ea_t) included in the search range. + @param testf: (C++: testf_t *) test function to find previous address + @return: the found address or BADADDR. + +Help on function prev_unknown in module ida_bytes: + +prev_unknown(*args) -> 'ea_t' + prev_unknown(ea, minea) -> ea_t + Similar to prev_that(), but will find the previous address that is unexplored. + + @param ea: (C++: ea_t) + @param minea: (C++: ea_t) + +Help on function prev_visea in module ida_bytes: + +prev_visea(*args) -> 'ea_t' + prev_visea(ea) -> ea_t + Get previous visible address. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function print_strlit_type in module ida_bytes: + +print_strlit_type(*args) -> 'PyObject *' + print_strlit_type(strtype, flags=0) -> (str, str) + Get string type information: the string type name (possibly decorated with + hotkey markers), and the tooltip. + + @param strtype: (C++: int32) the string type + @param flags: (C++: int) or'ed PSTF_* constants + @return: length of generated text + +Help on function put_byte in module ida_bytes: + +put_byte(*args) -> 'bool' + put_byte(ea, x) -> bool + Set value of one byte of the program. This function modifies the database. If + the debugger is active then the debugged process memory is patched too. + @note: The original value of the byte is completely lost and can't be recovered + by the get_original_byte() function. See also put_dbg_byte() to write to + the process memory directly when the debugger is active. This function + can handle wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) byte value + @return: true if the database has been modified + +Help on function put_bytes in module ida_bytes: + +put_bytes(*args) -> 'void' + put_bytes(ea, buf) + Modify the specified number of bytes of the program. This function does not save + the original values of bytes. See also patch_bytes(). + + @param ea: (C++: ea_t) linear address + @param buf: (C++: const void *) buffer with new values of bytes + +Help on function put_dword in module ida_bytes: + +put_dword(*args) -> 'void' + put_dword(ea, x) + Set value of one dword of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) dword value + @note: the original value of the dword is completely lost and can't be recovered + by the get_original_dword() function. + +Help on function put_qword in module ida_bytes: + +put_qword(*args) -> 'void' + put_qword(ea, x) + Set value of one qword (8 bytes) of the program. This function takes into + account order of bytes specified in idainfo::is_be() This function DOESN'T works + for wide byte processors. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint64) qword value + +Help on function put_word in module ida_bytes: + +put_word(*args) -> 'void' + put_word(ea, x) + Set value of one word of the program. This function takes into account order of + bytes specified in idainfo::is_be() This function works for wide byte processors + too. + @note: The original value of the word is completely lost and can't be recovered + by the get_original_word() function. ea - linear address x - word value + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function qword_flag in module ida_bytes: + +qword_flag(*args) -> 'flags64_t' + qword_flag() -> flags64_t + Get a flags64_t representing a quad word. + +Help on function register_custom_data_format in module ida_bytes: + +register_custom_data_format(*args) -> 'int' + register_custom_data_format(py_df) -> int + Registers a custom data format with a given data type. + + @param py_df: an instance of data_format_t + @return: < 0 if failed to register + > 0 data format id + +Help on function register_custom_data_type in module ida_bytes: + +register_custom_data_type(*args) -> 'int' + register_custom_data_type(py_dt) -> int + Registers a custom data type. + + @param py_dt: an instance of the data_type_t class + @return: < 0 if failed to register + > 0 data type id + +Help on function register_data_types_and_formats in module ida_bytes: + +register_data_types_and_formats(formats) + Registers multiple data types and formats at once. + To register one type/format at a time use register_custom_data_type/register_custom_data_format + + It employs a special table of types and formats described below: + + The 'formats' is a list of tuples. If a tuple has one element then it is the format to be registered with dtid=0 + If the tuple has more than one element, then tuple[0] is the data type and tuple[1:] are the data formats. For example: + many_formats = [ + (pascal_data_type(), pascal_data_format()), + (simplevm_data_type(), simplevm_data_format()), + (makedword_data_format(),), + (simplevm_data_format(),) + ] + The first two tuples describe data types and their associated formats. + The last two tuples describe two data formats to be used with built-in data types. + The data format may be attached to several data types. The id of the + data format is stored in the first data_format_t object. For example: + assert many_formats[1][1] != -1 + assert many_formats[2][0] != -1 + assert many_formats[3][0] == -1 + +Help on function revert_byte in module ida_bytes: + +revert_byte(*args) -> 'bool' + revert_byte(ea) -> bool + Revert patched byte + @retval true: byte was patched before and reverted now + + @param ea: (C++: ea_t) + +Help on function seg_flag in module ida_bytes: + +seg_flag(*args) -> 'flags64_t' + seg_flag() -> flags64_t + see Bits: instruction operand types + +Help on function set_cmt in module ida_bytes: + +set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool + Set an indented comment. + + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success + +Help on function set_forced_operand in module ida_bytes: + +set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool + Set forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success + +Help on function set_immd in module ida_bytes: + +set_immd(*args) -> 'bool' + set_immd(ea) -> bool + Set 'has immediate operand' flag. Returns true if the FF_IMMD bit was not set + and now is set + + @param ea: (C++: ea_t) + +Help on function set_lzero in module ida_bytes: + +set_lzero(*args) -> 'bool' + set_lzero(ea, n) -> bool + Set toggle lzero bit. This function changes the display of leading zeroes for + the specified operand. If the default is not to display leading zeroes, this + function will display them and vice versa. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function set_manual_insn in module ida_bytes: + +set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) + Set manual instruction string. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing + +Help on function set_op_type in module ida_bytes: + +set_op_type(*args) -> 'bool' + set_op_type(ea, type, n) -> bool + (internal function) change representation of operand(s). + + @param ea: (C++: ea_t) linear address + @param type: (C++: flags64_t) new flag value (should be obtained from char_flag(), num_flag() and + similar functions) + @param n: (C++: int) number of operand (0, 1, -1) + @retval 1: ok + @retval 0: failed (applied to a tail byte) + +Help on function set_opinfo in module ida_bytes: + +set_opinfo(*args) -> 'bool' + set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + Set additional information about an operand representation. This function is a + low level one. Only the kernel should use it. + + @param ea: (C++: ea_t) linear address of the item + @param n: (C++: int) number of operand, 0 or 1 (see the note below) + @param flag: (C++: flags64_t) flags of the item + @param ti: (C++: const opinfo_t *) additional representation information + @param suppress_events: (C++: bool) do not generate changing_op_type and op_type_changed + events + @return: success + @note: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if + is_off(flag, n) is true) N can be in range -1..UA_MAXOP-1. In the case of + -1 the additional information about all operands will be set. + +Help on function stkvar_flag in module ida_bytes: + +stkvar_flag(*args) -> 'flags64_t' + stkvar_flag() -> flags64_t + see Bits: instruction operand types + +Help on function strlit_flag in module ida_bytes: + +strlit_flag(*args) -> 'flags64_t' + strlit_flag() -> flags64_t + Get a flags64_t representing a string literal. + +Help on function stroff_flag in module ida_bytes: + +stroff_flag(*args) -> 'flags64_t' + stroff_flag() -> flags64_t + see Bits: instruction operand types + +Help on function stru_flag in module ida_bytes: + +stru_flag(*args) -> 'flags64_t' + stru_flag() -> flags64_t + Get a flags64_t representing a struct. + +Help on function tbyte_flag in module ida_bytes: + +tbyte_flag(*args) -> 'flags64_t' + tbyte_flag() -> flags64_t + Get a flags64_t representing a tbyte. + +Help on function toggle_bnot in module ida_bytes: + +toggle_bnot(*args) -> 'bool' + toggle_bnot(ea, n) -> bool + Toggle binary negation of operand. also see is_bnot() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function toggle_lzero in module ida_bytes: + +toggle_lzero(*args) -> 'bool' + toggle_lzero(ea, n) -> bool + Toggle lzero bit. + + @param ea: (C++: ea_t) the item (insn/data) address + @param n: (C++: int) the operand number (0-first operand, 1-other operands) + @return: success + +Help on function toggle_sign in module ida_bytes: + +toggle_sign(*args) -> 'bool' + toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function unregister_custom_data_format in module ida_bytes: + +unregister_custom_data_format(*args) -> 'bool' + unregister_custom_data_format(dfid) -> bool + Unregisters a custom data format + + @param dfid: data format id + @return: Boolean + +Help on function unregister_custom_data_type in module ida_bytes: + +unregister_custom_data_type(*args) -> 'bool' + unregister_custom_data_type(dtid) -> bool + Unregisters a custom data type. + + @param dtid: the data type id + @return: Boolean + +Help on function unregister_data_types_and_formats in module ida_bytes: + +unregister_data_types_and_formats(formats) + As opposed to register_data_types_and_formats(), this function + unregisters multiple data types and formats at once. + +Help on function update_hidden_range in module ida_bytes: + +update_hidden_range(*args) -> 'bool' + update_hidden_range(ha) -> bool + Update hidden range information in the database. You cannot use this function to + change the range boundaries + + @param ha: (C++: const hidden_range_t *) range to update + @return: success + +Help on function use_mapping in module ida_bytes: + +use_mapping(*args) -> 'ea_t' + use_mapping(ea) -> ea_t + Translate address according to current mappings. + + @param ea: (C++: ea_t) address to translate + @return: translated address + +Help on function visit_patched_bytes in module ida_bytes: + +visit_patched_bytes(*args) -> 'int' + visit_patched_bytes(ea1, ea2, py_callable) -> int + Enumerates patched bytes in the given range and invokes a callable + + @param ea1: start address + @param ea2: end address + @param py_callable: a Python callable with the following prototype: + callable(ea, fpos, org_val, patch_val). + If the callable returns non-zero then that value will be + returned to the caller and the enumeration will be + interrupted. + @return: Zero if the enumeration was successful or the return + value of the callback if enumeration was interrupted. + +Help on function word_flag in module ida_bytes: + +word_flag(*args) -> 'flags64_t' + word_flag() -> flags64_t + Get a flags64_t representing a word. + +Help on function yword_flag in module ida_bytes: + +yword_flag(*args) -> 'flags64_t' + yword_flag() -> flags64_t + Get a flags64_t representing a ymm word. + +Help on function zword_flag in module ida_bytes: + +zword_flag(*args) -> 'flags64_t' + zword_flag() -> flags64_t + Get a flags64_t representing a zmm word. + +Module "ida_dbg"s docstring: +""" +Contains functions to control the debugging of a process. + +See Debugger functions for a complete explanation of these functions. + +These functions are inlined for the kernel. They are not inlined for the user- +interfaces.""" + +Help on class DBG_Hooks in module ida_dbg: + +class DBG_Hooks(builtins.object) + | Proxy of C++ DBG_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> DBG_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_DBG_Hooks(...) + | delete_DBG_Hooks(self) + | + | dbg_bpt(self, *args) -> 'int' + | dbg_bpt(self, tid, bptea) -> int + | A user defined breakpoint was reached. + | + | @param tid: (thid_t) + | @param bptea: (::ea_t) + | + | dbg_bpt_changed(self, *args) -> 'void' + | dbg_bpt_changed(self, bptev_code, bpt) + | Breakpoint has been changed. + | + | @param bptev_code: (int) Breakpoint modification events + | @param bpt: (bpt_t *) + | + | dbg_exception(self, *args) -> 'int' + | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | + | @param event: (const debug_event_t *) + | @param warn: (int *) filled with: + | * -1: display an exception warning dialog if the process is suspended. + | * 0: never display an exception warning dialog. + | * 1: always display an exception warning dialog. + | @param ea: ea_t + | @param exc_code: int + | @param exc_can_cont: bool + | @param exc_ea: ea_t + | @param exc_info: char const * + | + | dbg_finished_loading_bpts(self, *args) -> 'void' + | dbg_finished_loading_bpts(self) + | Finished loading breakpoint info from idb. + | + | dbg_information(self, *args) -> 'void' + | dbg_information(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * + | + | dbg_library_load(self, *args) -> 'void' + | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t + | + | dbg_library_unload(self, *args) -> 'void' + | dbg_library_unload(self, pid, tid, ea, info) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param info: char const * + | + | dbg_process_attach(self, *args) -> 'void' + | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t + | + | dbg_process_detach(self, *args) -> 'void' + | dbg_process_detach(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | + | dbg_process_exit(self, *args) -> 'void' + | dbg_process_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int + | + | dbg_process_start(self, *args) -> 'void' + | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | + | @param event: (const debug_event_t *) + | @note: This event notification is also an asynchronous function result + | notification for start_process() ! + | @param tid: thid_t + | @param ea: ea_t + | @param modinfo_name: char const * + | @param modinfo_base: ea_t + | @param modinfo_size: asize_t + | + | dbg_request_error(self, *args) -> 'void' + | dbg_request_error(self, failed_command, failed_dbg_notification) + | An error occurred during the processing of a request. + | + | @param failed_command: (ui_notification_t) + | @param failed_dbg_notification: (dbg_notification_t) + | + | dbg_run_to(self, *args) -> 'void' + | dbg_run_to(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | + | dbg_started_loading_bpts(self, *args) -> 'void' + | dbg_started_loading_bpts(self) + | Started loading breakpoint info from idb. + | + | dbg_step_into(self, *args) -> 'void' + | dbg_step_into(self) + | + | dbg_step_over(self, *args) -> 'void' + | dbg_step_over(self) + | + | dbg_step_until_ret(self, *args) -> 'void' + | dbg_step_until_ret(self) + | + | dbg_suspend_process(self, *args) -> 'void' + | dbg_suspend_process(self) + | The process is now suspended. + | + | dbg_thread_exit(self, *args) -> 'void' + | dbg_thread_exit(self, pid, tid, ea, exit_code) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | @param exit_code: int + | + | dbg_thread_start(self, *args) -> 'void' + | dbg_thread_start(self, pid, tid, ea) + | + | @param event: (const debug_event_t *) + | @param tid: thid_t + | @param ea: ea_t + | + | dbg_trace(self, *args) -> 'int' + | dbg_trace(self, tid, ip) -> int + | A step occurred (one instruction was executed). This event notification is only + | generated if step tracing is enabled. + | + | @param tid: (thid_t) thread ID + | @param ip: (::ea_t) current instruction pointer. usually points after the + | executed instruction + | @retval 1: do not log this trace event + | @retval 0: log it + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function add_bpt in module ida_dbg: + +add_bpt(*args) -> 'bool' + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + + add_bpt(bpt) -> bool + + @param bpt: bpt_t const & + +Help on function add_path_mapping in module ida_dbg: + +add_path_mapping(*args) -> 'void' + add_path_mapping(src, dst) + + @param src: char const * + @param dst: char const * + +Help on function add_virt_module in module ida_dbg: + +add_virt_module(*args) -> 'bool' + add_virt_module(mod) -> bool + + @param mod: modinfo_t const * + +Help on function attach_process in module ida_dbg: + +attach_process(*args) -> 'int' + attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process + +Help on class bpt_location_t in module ida_dbg: + +class bpt_location_t(builtins.object) + | Proxy of C++ bpt_location_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __init__(self, *args) + | __init__(self) -> bpt_location_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bpt_location_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bpt_location_t(...) + | delete_bpt_location_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Lexically compare two breakpoint locations. Bpt locations are first compared + | based on type (i.e. BPLT_ABS < BPLT_REL). BPLT_ABS locations are compared based + | on their ea values. For all other location types, locations are first compared + | based on their string (path/filename/symbol), then their offset/lineno. + | + | @param r: (C++: const bpt_location_t &) bpt_location_t const & + | + | ea(self, *args) -> 'ea_t' + | ea(self) -> ea_t + | Get address (BPLT_ABS) + | + | is_empty_path(self, *args) -> 'bool' + | is_empty_path(self) -> bool + | No path/filename specified? (BPLT_REL, BPLT_SRC) + | + | lineno(self, *args) -> 'int' + | lineno(self) -> int + | Get line number (BPLT_SRC) + | + | offset(self, *args) -> 'uval_t' + | offset(self) -> uval_t + | Get offset (BPLT_REL, BPLT_SYM) + | + | path(self, *args) -> 'char const *' + | path(self) -> char const * + | Get path/filename (BPLT_REL, BPLT_SRC) + | + | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) + | Specify an absolute address location. + | + | @param a: (C++: ea_t) + | + | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, _offset) + | Specify a relative address location. + | + | @param mod: (C++: const char *) char const * + | @param _offset: (C++: uval_t) + | + | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, _lineno) + | Specify a source level location. + | + | @param fn: (C++: const char *) char const * + | @param _lineno: (C++: int) + | + | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, _symbol, _offset=0) + | Specify a symbolic location. + | + | @param _symbol: (C++: const char *) char const * + | @param _offset: (C++: uval_t) + | + | symbol(self, *args) -> 'char const *' + | symbol(self) -> char const * + | Get symbol name (BPLT_SYM) + | + | type(self, *args) -> 'bpt_loctype_t' + | type(self) -> bpt_loctype_t + | Get bpt type. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | index + | index + | + | info + | info + | + | loctype + | loctype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class bpt_t in module ida_dbg: + +class bpt_t(builtins.object) + | Proxy of C++ bpt_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bpt_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bpt_t(...) + | delete_bpt_t(self) + | + | badbpt(self, *args) -> 'bool' + | badbpt(self) -> bool + | Failed to write bpt to process memory? + | + | enabled(self, *args) -> 'bool' + | enabled(self) -> bool + | Is breakpoint enabled? + | + | get_cnd_elang_idx(self, *args) -> 'size_t' + | get_cnd_elang_idx(self) -> size_t + | + | get_size(self, *args) -> 'int' + | get_size(self) -> int + | Get bpt size. + | + | is_absbpt(self, *args) -> 'bool' + | is_absbpt(self) -> bool + | Is absolute address breakpoint? + | + | is_active(self, *args) -> 'bool' + | is_active(self) -> bool + | Written completely to process? + | + | is_compiled(self, *args) -> 'bool' + | is_compiled(self) -> bool + | Condition has been compiled? + | + | is_hwbpt(self, *args) -> 'bool' + | is_hwbpt(self) -> bool + | Is hardware breakpoint? + | + | is_inactive(self, *args) -> 'bool' + | is_inactive(self) -> bool + | Not written to process at all? + | + | is_low_level(self, *args) -> 'bool' + | is_low_level(self) -> bool + | Is bpt condition calculated at low level? + | + | is_page_bpt(self, *args) -> 'bool' + | is_page_bpt(self) -> bool + | Page breakpoint? + | + | is_partially_active(self, *args) -> 'bool' + | is_partially_active(self) -> bool + | Written partially to process? + | + | is_relbpt(self, *args) -> 'bool' + | is_relbpt(self) -> bool + | Is relative address breakpoint? + | + | is_srcbpt(self, *args) -> 'bool' + | is_srcbpt(self) -> bool + | Is source level breakpoint? + | + | is_symbpt(self, *args) -> 'bool' + | is_symbpt(self) -> bool + | Is symbolic breakpoint? + | + | is_tracemodebpt(self, *args) -> 'bool' + | is_tracemodebpt(self) -> bool + | Does breakpoint trace anything? + | + | is_traceoffbpt(self, *args) -> 'bool' + | is_traceoffbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing disabled? + | + | is_traceonbpt(self, *args) -> 'bool' + | is_traceonbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing enabled? + | + | listbpt(self, *args) -> 'bool' + | listbpt(self) -> bool + | Include in the bpt list? + | + | set_abs_bpt(self, *args) -> 'void' + | set_abs_bpt(self, a) + | Set bpt location to an absolute address. + | + | @param a: (C++: ea_t) + | + | set_rel_bpt(self, *args) -> 'void' + | set_rel_bpt(self, mod, o) + | Set bpt location to a relative address. + | + | @param mod: (C++: const char *) char const * + | @param o: (C++: uval_t) + | + | set_src_bpt(self, *args) -> 'void' + | set_src_bpt(self, fn, lineno) + | Set bpt location to a source line. + | + | @param fn: (C++: const char *) char const * + | @param lineno: (C++: int) + | + | set_sym_bpt(self, *args) -> 'void' + | set_sym_bpt(self, sym, o) + | Set bpt location to a symbol. + | + | @param sym: (C++: const char *) char const * + | @param o: (C++: uval_t) + | + | set_trace_action(self, *args) -> 'bool' + | set_trace_action(self, enable, trace_types) -> bool + | Configure tracing options. + | + | @param enable: (C++: bool) + | @param trace_types: (C++: int) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bptid + | bptid + | + | cb + | cb + | + | cndidx + | cndidx + | + | condition + | condition + | + | ea + | ea + | + | elang + | elang + | + | flags + | flags + | + | loc + | loc + | + | pass_count + | pass_count + | + | pid + | pid + | + | props + | props + | + | size + | size + | + | thisown + | The membership flag + | + | tid + | tid + | + | type + | type + +Help on class bpt_vec_t in module ida_dbg: + +class bpt_vec_t(builtins.object) + | Proxy of C++ qvector< bpt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'bpt_t const &' + | __getitem__(self, i) -> bpt_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> bpt_vec_t + | __init__(self, x) -> bpt_vec_t + | + | @param x: qvector< bpt_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bpt_t const & + | + | __swig_destroy__ = delete_bpt_vec_t(...) + | delete_bpt_vec_t(self) + | + | at(self, *args) -> 'bpt_t const &' + | at(self, _idx) -> bpt_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< bpt_t >::const_iterator' + | begin(self) -> bpt_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< bpt_t >::const_iterator' + | end(self) -> bpt_t + | + | erase(self, *args) -> 'qvector< bpt_t >::iterator' + | erase(self, it) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | + | erase(self, first, last) -> bpt_t + | + | @param first: qvector< bpt_t >::iterator + | @param last: qvector< bpt_t >::iterator + | + | extract(self, *args) -> 'bpt_t *' + | extract(self) -> bpt_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=bpt_t()) + | + | @param x: bpt_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: bpt_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< bpt_t >::iterator' + | insert(self, it, x) -> bpt_t + | + | @param it: qvector< bpt_t >::iterator + | @param x: bpt_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'bpt_t &' + | push_back(self, x) + | + | @param x: bpt_t const & + | + | push_back(self) -> bpt_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bpt_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< bpt_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class bptaddrs_t in module ida_dbg: + +class bptaddrs_t(builtins.object) + | Proxy of C++ bptaddrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddrs_t(...) + | delete_bptaddrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt + | bpt + | + | thisown + | The membership flag + +Help on function bring_debugger_to_front in module ida_dbg: + +bring_debugger_to_front(*args) -> 'void' + bring_debugger_to_front() + +Help on function check_bpt in module ida_dbg: + +check_bpt(*args) -> 'int' + check_bpt(ea) -> int + Check the breakpoint at the specified address. + + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes + +Help on function choose_trace_file in module ida_dbg: + +choose_trace_file(*args) -> 'qstring *' + choose_trace_file() -> str + Show the choose trace dialog. + +Help on function clear_requests_queue in module ida_dbg: + +clear_requests_queue(*args) -> 'void' + clear_requests_queue() + Clear the queue of waiting requests. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: If a request is currently running, this one isn't stopped. + +Help on function clear_trace in module ida_dbg: + +clear_trace(*args) -> 'void' + clear_trace() + Clear all events in the trace buffer. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + +Help on function collect_stack_trace in module ida_dbg: + +collect_stack_trace(*args) -> 'bool' + collect_stack_trace(tid, trace) -> bool + + @param tid: thid_t + @param trace: call_stack_t * + +Help on function continue_process in module ida_dbg: + +continue_process(*args) -> 'bool' + continue_process() -> bool + Continue the execution of the process in the debugger. \sq{Type, Synchronous + function - available as Request, Notification, none (synchronous function)} + @note: The continue_process() function can be called from a notification handler + to force the continuation of the process. In this case the request queue + will not be examined, IDA will simply resume execution. Usually it makes + sense to call request_continue_process() followed by run_requests(), so + that IDA will first start a queued request (if any) and then resume the + application. + +Help on function create_source_viewer in module ida_dbg: + +create_source_viewer(*args) -> 'source_view_t *' + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * + Create a source code view. + + @param out_ccv: (C++: TWidget **) + @param parent: (C++: TWidget *) + @param custview: (C++: TWidget *) + @param sf: (C++: source_file_ptr) + @param lines: (C++: strvec_t *) + @param lnnum: (C++: int) + @param colnum: (C++: int) + @param flags: (C++: int) + +Help on function dbg_add_bpt_tev in module ida_dbg: + +dbg_add_bpt_tev(*args) -> 'bool' + dbg_add_bpt_tev(tid, ea, bp) -> bool + Add a new breakpoint trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param bp: (C++: ea_t) + @return: false if the operation failed, true otherwise + +Help on function dbg_add_call_tev in module ida_dbg: + +dbg_add_call_tev(*args) -> 'void' + dbg_add_call_tev(tid, caller, callee) + Add a new call trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param caller: (C++: ea_t) + @param callee: (C++: ea_t) + +Help on function dbg_add_debug_event in module ida_dbg: + +dbg_add_debug_event(*args) -> 'void' + dbg_add_debug_event(event) + Add a new debug event to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param event: (C++: debug_event_t *) + +Help on function dbg_add_insn_tev in module ida_dbg: + +dbg_add_insn_tev(*args) -> 'bool' + dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + Add a new instruction trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ea: (C++: ea_t) + @param save: (C++: save_reg_values_t) enum save_reg_values_t + @return: false if the operation failed, true otherwise + +Help on function dbg_add_many_tevs in module ida_dbg: + +dbg_add_many_tevs(*args) -> 'bool' + dbg_add_many_tevs(new_tevs) -> bool + Add many new trace elements to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param new_tevs: (C++: tevinforeg_vec_t *) + @return: false if the operation failed for any tev_info_t object + +Help on function dbg_add_ret_tev in module ida_dbg: + +dbg_add_ret_tev(*args) -> 'void' + dbg_add_ret_tev(tid, ret_insn, return_to) + Add a new return trace element to the current trace. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + @param ret_insn: (C++: ea_t) + @param return_to: (C++: ea_t) + +Help on function dbg_add_tev in module ida_dbg: + +dbg_add_tev(*args) -> 'void' + dbg_add_tev(type, tid, address) + Add a new trace element to the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param type: (C++: tev_type_t) enum tev_type_t + @param tid: (C++: thid_t) + @param address: (C++: ea_t) + +Help on function dbg_add_thread in module ida_dbg: + +dbg_add_thread(*args) -> 'void' + dbg_add_thread(tid) + Add a thread to the current trace. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param tid: (C++: thid_t) + +Help on function dbg_bin_search in module ida_dbg: + +dbg_bin_search(*args) -> 'unsigned-ea-like-numeric-type *, qstring *'↗ + dbg_bin_search(start_ea, end_ea, data, srch_flags) -> str + + @param start_ea: ea_t + @param end_ea: ea_t + @param data: compiled_binpat_vec_t const & + @param srch_flags: int + +Help on function dbg_can_query in module ida_dbg: + +dbg_can_query(*args) -> 'bool' + dbg_can_query() -> bool + This function can be used to check if the debugger can be queried: + - debugger is loaded + - process is suspended + - process is not suspended but can take requests. In this case some requests like + memory read/write, bpt management succeed and register querying will fail. + Check if idaapi.get_process_state() < 0 to tell if the process is suspended + + @return: Boolean + +Help on function dbg_del_thread in module ida_dbg: + +dbg_del_thread(*args) -> 'void' + dbg_del_thread(tid) + Delete a thread from the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) + +Help on function dbg_is_loaded in module ida_dbg: + +dbg_is_loaded(*args) -> 'bool' + dbg_is_loaded() -> bool + Checks if a debugger is loaded + + @return: Boolean + +Help on function define_exception in module ida_dbg: + +define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * + Convenience function: define new exception code. + + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds + +Help on function del_bpt in module ida_dbg: + +del_bpt(*args) -> 'bool' + del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + del_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function del_bptgrp in module ida_dbg: + +del_bptgrp(*args) -> 'bool' + del_bptgrp(name) -> bool + Delete a folder, bpt that were part of this folder are moved to the root folder + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param name: (C++: const char *) full path to the folder to be deleted + @return: success + +Help on function del_virt_module in module ida_dbg: + +del_virt_module(*args) -> 'bool' + del_virt_module(base) -> bool + + @param base: ea_t const + +Help on function detach_process in module ida_dbg: + +detach_process(*args) -> 'bool' + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} + +Help on function diff_trace_file in module ida_dbg: + +diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool + Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * + +Help on function disable_bblk_trace in module ida_dbg: + +disable_bblk_trace(*args) -> 'bool' + disable_bblk_trace() -> bool + +Help on function disable_bpt in module ida_dbg: + +disable_bpt(*args) -> 'bool' + disable_bpt(ea) -> bool + + @param ea: ea_t + + disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function disable_func_trace in module ida_dbg: + +disable_func_trace(*args) -> 'bool' + disable_func_trace() -> bool + +Help on function disable_insn_trace in module ida_dbg: + +disable_insn_trace(*args) -> 'bool' + disable_insn_trace() -> bool + +Help on function disable_step_trace in module ida_dbg: + +disable_step_trace(*args) -> 'bool' + disable_step_trace() -> bool + +Help on function edit_manual_regions in module ida_dbg: + +edit_manual_regions(*args) -> 'void' + edit_manual_regions() + +Help on function enable_bblk_trace in module ida_dbg: + +enable_bblk_trace(*args) -> 'bool' + enable_bblk_trace(enable=True) -> bool + + @param enable: bool + +Help on function enable_bpt in module ida_dbg: + +enable_bpt(*args) -> 'bool' + enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_bptgrp in module ida_dbg: + +enable_bptgrp(*args) -> 'int' + enable_bptgrp(bptgrp_name, enable=True) -> int + Enable (or disable) all bpts in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptgrp_name: (C++: const char *) absolute path to the folder + @param enable: (C++: bool) by default true, enable bpts, false disable bpts + @return: -1 an error occured 0 no changes >0 nubmers of bpts udpated + +Help on function enable_func_trace in module ida_dbg: + +enable_func_trace(*args) -> 'bool' + enable_func_trace(enable=True) -> bool + + @param enable: bool + +Help on function enable_insn_trace in module ida_dbg: + +enable_insn_trace(*args) -> 'bool' + enable_insn_trace(enable=True) -> bool + + @param enable: bool + +Help on function enable_manual_regions in module ida_dbg: + +enable_manual_regions(*args) -> 'void' + enable_manual_regions(enable) + + @param enable: bool + +Help on function enable_step_trace in module ida_dbg: + +enable_step_trace(*args) -> 'bool' + enable_step_trace(enable=1) -> bool + + @param enable: int + +Help on class eval_ctx_t in module ida_dbg: + +class eval_ctx_t(builtins.object) + | Proxy of C++ eval_ctx_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> eval_ctx_t + | + | @param _ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_eval_ctx_t(...) + | delete_eval_ctx_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | thisown + | The membership flag + +Help on function exist_bpt in module ida_dbg: + +exist_bpt(*args) -> 'bool' + exist_bpt(ea) -> bool + Does a breakpoint exist at the given location? + + @param ea: (C++: ea_t) + +Help on function exit_process in module ida_dbg: + +exit_process(*args) -> 'bool' + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} + +Help on function find_bpt in module ida_dbg: + +find_bpt(*args) -> 'bool' + find_bpt(bptloc, bpt) -> bool + Find a breakpoint by location. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + @param bpt: (C++: bpt_t *) bpt is filled if the breakpoint was found + +Help on function get_bblk_trace_options in module ida_dbg: + +get_bblk_trace_options(*args) -> 'int' + get_bblk_trace_options() -> int + Get current basic block tracing options. Also see BT_LOG_INSTS \sq{Type, + Synchronous function, Notification, none (synchronous function)} + +Help on function get_bpt in module ida_dbg: + +get_bpt(*args) -> 'bool' + get_bpt(ea, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) any address in the breakpoint range + @param bpt: (C++: bpt_t *) if not nullptr, is filled with the characteristics. + @return: false if no breakpoint exists + +Help on function get_bpt_group in module ida_dbg: + +get_bpt_group(*args) -> 'qstring *' + get_bpt_group(bptloc) -> str + Retrieve the absolute path to the folder of the bpt based on the bpt_location + find_bpt is called to retrieve the bpt \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt + @return: breakpoint correclty moved to the directory + success + +Help on function get_bpt_qty in module ida_dbg: + +get_bpt_qty(*args) -> 'int' + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_bpt_tev_ea in module ida_dbg: + +get_bpt_tev_ea(*args) -> 'ea_t' + get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. + +Help on function get_bptloc_string in module ida_dbg: + +get_bptloc_string(*args) -> 'char const *' + get_bptloc_string(i) -> char const * + + @param i: int + +Help on function get_call_tev_callee in module ida_dbg: + +get_call_tev_callee(*args) -> 'ea_t' + get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. + +Help on function get_current_source_file in module ida_dbg: + +get_current_source_file(*args) -> 'qstring *' + get_current_source_file() -> str + +Help on function get_current_source_line in module ida_dbg: + +get_current_source_line(*args) -> 'int' + get_current_source_line() -> int + +Help on function get_current_thread in module ida_dbg: + +get_current_thread(*args) -> 'thid_t' + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_dbg_byte in module ida_dbg: + +get_dbg_byte(*args) -> 'uint32 *' + get_dbg_byte(ea) -> bool + Get one byte of the debugged process memory. + + @param ea: (C++: ea_t) linear address + @return: true success + false address inaccessible or debugger not running + +Help on function get_dbg_memory_info in module ida_dbg: + +get_dbg_memory_info(*args) -> 'int' + get_dbg_memory_info(ranges) -> int + + @param ranges: meminfo_vec_t * + +Help on function get_dbg_reg_info in module ida_dbg: + +get_dbg_reg_info(*args) -> 'bool' + get_dbg_reg_info(regname, ri) -> bool + Get register information \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param regname: (C++: const char *) char const * + @param ri: (C++: register_info_t *) + +Help on function get_debug_event in module ida_dbg: + +get_debug_event(*args) -> 'debug_event_t const *' + get_debug_event() -> debug_event_t + Get the current debugger event. + +Help on function get_debugger_event_cond in module ida_dbg: + +get_debugger_event_cond(*args) -> 'char const *' + get_debugger_event_cond() -> char const * + +Help on function get_first_module in module ida_dbg: + +get_first_module(*args) -> 'bool' + get_first_module(modinfo) -> bool + + @param modinfo: modinfo_t * + +Help on function get_func_trace_options in module ida_dbg: + +get_func_trace_options(*args) -> 'int' + get_func_trace_options() -> int + Get current function tracing options. Also see FT_LOG_RET \sq{Type, Synchronous + function, Notification, none (synchronous function)} + +Help on function get_global_var in module ida_dbg: + +get_global_var(*args) -> 'bool' + get_global_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * + +Help on function get_grp_bpts in module ida_dbg: + +get_grp_bpts(*args) -> 'ssize_t' + get_grp_bpts(bpts, grp_name) -> ssize_t + Retrieve a copy the bpts stored in a folder \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param bpts: (C++: bpt_vec_t *) : pointer to a vector where the copy of bpts are stored + @param grp_name: (C++: const char *) absolute path to the folder + @return: number of bpts present in the vector + +Help on function get_insn_tev_reg_mem in module ida_dbg: + +get_insn_tev_reg_mem(*args) -> 'bool' + get_insn_tev_reg_mem(n, memmap) -> bool + Read the memory pointed by register values from an instruction trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param memmap: (C++: memreg_infos_t *) result + @return: false if not an instruction event or no memory is available + +Help on function get_insn_tev_reg_result in module ida_dbg: + +get_insn_tev_reg_result(*args) -> 'bool' + get_insn_tev_reg_result(n, regname, regval) -> bool + + @param n: int + @param regname: char const * + @param regval: regval_t * + +Help on function get_insn_tev_reg_val in module ida_dbg: + +get_insn_tev_reg_val(*args) -> 'bool' + get_insn_tev_reg_val(n, regname, regval) -> bool + + @param n: int + @param regname: char const * + @param regval: regval_t * + +Help on function get_insn_trace_options in module ida_dbg: + +get_insn_trace_options(*args) -> 'int' + get_insn_trace_options() -> int + Get current instruction tracing options. Also see IT_LOG_SAME_IP \sq{Type, + Synchronous function, Notification, none (synchronous function)} + +Help on function get_ip_val in module ida_dbg: + +get_ip_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ + get_ip_val() -> bool + Get value of the IP (program counter) register for the current thread. Requires + a suspended debugger. + +Help on function get_local_var in module ida_dbg: + +get_local_var(*args) -> 'bool' + get_local_var(prov, ea, name, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param name: char const * + @param out: source_item_ptr * + +Help on function get_local_vars in module ida_dbg: + +get_local_vars(*args) -> 'bool' + get_local_vars(prov, ea, out) -> bool + + @param prov: srcinfo_provider_t * + @param ea: ea_t + @param out: source_items_t * + +Help on function get_manual_regions in module ida_dbg: + +get_manual_regions(*args) -> 'PyObject *' + get_manual_regions(ranges) + Returns the manual memory regions + + @param ranges: meminfo_vec_t * + + @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) + get_manual_regions() -> [(int, int, str, str, int, int, int), ...] or None + +Help on function get_module_info in module ida_dbg: + +get_module_info(*args) -> 'bool' + get_module_info(ea, modinfo) -> bool + + @param ea: ea_t + @param modinfo: modinfo_t * + +Help on function get_next_module in module ida_dbg: + +get_next_module(*args) -> 'bool' + get_next_module(modinfo) -> bool + + @param modinfo: modinfo_t * + +Help on function get_process_options in module ida_dbg: + +get_process_options(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' + get_process_options() + Get process options. Any of the arguments may be nullptr + +Help on function get_process_state in module ida_dbg: + +get_process_state(*args) -> 'int' + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states + +Help on function get_processes in module ida_dbg: + +get_processes(*args) -> 'ssize_t' + get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) array with information about each running process + @return: number of processes or -1 on error + +Help on function get_reg_val in module ida_dbg: + +get_reg_val(*args) -> 'PyObject *' + get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. + + @param regname: (C++: const char *) char const * + @param regval: regval_t * + + get_reg_val(regname, ival) -> bool + + @param regname: char const * + @param ival: uint64 * + + get_reg_val(regname) -> bool, float, int + + @param regname: char const * + +Help on function get_reg_vals in module ida_dbg: + +get_reg_vals(*args) -> 'regvals_t *' + get_reg_vals(tid, clsmask=-1) -> regvals_t + Fetch live registers values for the thread + + @param tid: The ID of the thread to read registers for + @param clsmask: An OR'ed mask of register classes to + read values for (can be used to speed up the + retrieval process) + + @return: a regvals_t instance (empty if an error occurs) + +Help on function get_ret_tev_return in module ida_dbg: + +get_ret_tev_return(*args) -> 'ea_t' + get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. + +Help on function get_running_notification in module ida_dbg: + +get_running_notification(*args) -> 'dbg_notification_t' + get_running_notification() -> dbg_notification_t + Get the notification associated (if any) with the current running request. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @return: dbg_null if no running request + +Help on function get_running_request in module ida_dbg: + +get_running_request(*args) -> 'ui_notification_t' + get_running_request() -> ui_notification_t + Get the current running request. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: ui_null if no running request + +Help on function get_sp_val in module ida_dbg: + +get_sp_val(*args) -> 'unsigned-ea-like-numeric-type *'↗ + get_sp_val() -> bool + Get value of the SP register for the current thread. Requires a suspended + debugger. + +Help on function get_srcinfo_provider in module ida_dbg: + +get_srcinfo_provider(*args) -> 'srcinfo_provider_t *' + get_srcinfo_provider(name) -> srcinfo_provider_t * + + @param name: char const * + +Help on function get_step_trace_options in module ida_dbg: + +get_step_trace_options(*args) -> 'int' + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options + +Help on function get_tev_ea in module ida_dbg: + +get_tev_ea(*args) -> 'ea_t' + get_tev_ea(n) -> ea_t + + @param n: int + +Help on function get_tev_event in module ida_dbg: + +get_tev_event(*args) -> 'bool' + get_tev_event(n, d) -> bool + Get the corresponding debug event, if any, for the specified tev object. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param d: (C++: debug_event_t *) result + @return: false if the tev_t object doesn't have any associated debug event, true + otherwise, with the debug event in "d". + +Help on function get_tev_info in module ida_dbg: + +get_tev_info(*args) -> 'bool' + get_tev_info(n, tev_info) -> bool + Get main information about a trace event. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param tev_info: (C++: tev_info_t *) result + @return: success + +Help on function get_tev_memory_info in module ida_dbg: + +get_tev_memory_info(*args) -> 'bool' + get_tev_memory_info(n, mi) -> bool + Get the memory layout, if any, for the specified tev object. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @param mi: (C++: meminfo_vec_t *) result + @return: false if the tev_t object is not of type tev_mem, true otherwise, with + the new memory layout in "mi". + +Help on function get_tev_qty in module ida_dbg: + +get_tev_qty(*args) -> 'int' + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + +Help on function get_tev_reg_mem in module ida_dbg: + +get_tev_reg_mem(tev, idx) + +Help on function get_tev_reg_mem_ea in module ida_dbg: + +get_tev_reg_mem_ea(tev, idx) + +Help on function get_tev_reg_mem_qty in module ida_dbg: + +get_tev_reg_mem_qty(tev) + +Help on function get_tev_reg_val in module ida_dbg: + +get_tev_reg_val(tev, reg) + +Help on function get_tev_tid in module ida_dbg: + +get_tev_tid(*args) -> 'int' + get_tev_tid(n) -> int + + @param n: int + +Help on function get_tev_type in module ida_dbg: + +get_tev_type(*args) -> 'int' + get_tev_type(n) -> int + + @param n: int + +Help on function get_thread_qty in module ida_dbg: + +get_thread_qty(*args) -> 'int' + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_trace_base_address in module ida_dbg: + +get_trace_base_address(*args) -> 'ea_t' + get_trace_base_address() -> ea_t + Get the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @return: the base address of the currently loaded trace + +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) -> 'void' + get_trace_dynamic_register_set(idaregs) + Get dynamic register set of current trace. + + @param idaregs: (C++: dynamic_register_set_t *) + +Help on function get_trace_file_desc in module ida_dbg: + +get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str + Get the file header of the specified trace file. + + @param filename: (C++: const char *) char const * + +Help on function get_trace_platform in module ida_dbg: + +get_trace_platform(*args) -> 'char const *' + get_trace_platform() -> char const * + Get platform name of current trace. + +Help on function getn_bpt in module ida_dbg: + +getn_bpt(*args) -> 'bool' + getn_bpt(n, bpt) -> bool + Get the characteristics of a breakpoint. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param n: (C++: int) number of breakpoint, is in range 0..get_bpt_qty()-1 + @param bpt: (C++: bpt_t *) filled with the characteristics. + @return: false if no breakpoint exists + +Help on function getn_thread in module ida_dbg: + +getn_thread(*args) -> 'thid_t' + getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. + +Help on function getn_thread_name in module ida_dbg: + +getn_thread_name(*args) -> 'char const *' + getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. + +Help on function graph_trace in module ida_dbg: + +graph_trace(*args) -> 'bool' + graph_trace() -> bool + Show the trace callgraph. + +Help on function handle_debug_event in module ida_dbg: + +handle_debug_event(*args) -> 'int' + handle_debug_event(ev, rqflags) -> int + + @param ev: debug_event_t const * + @param rqflags: int + +Help on function hide_all_bpts in module ida_dbg: + +hide_all_bpts(*args) -> 'int' + hide_all_bpts() -> int + +Help on function internal_get_sreg_base in module ida_dbg: + +internal_get_sreg_base(*args) -> 'ea_t' + internal_get_sreg_base(tid, sreg_value) -> ea_t + Get the sreg base, for the given thread. + + @param tid: thid_t + @param sreg_value: int + @return: The sreg base, or BADADDR on failure. + +Help on function internal_ioctl in module ida_dbg: + +internal_ioctl(*args) -> 'int' + internal_ioctl(fn, buf, poutbuf, poutsize) -> int + + @param fn: int + @param buf: void const * + @param poutbuf: void ** + @param poutsize: ssize_t * + +Help on function invalidate_dbg_state in module ida_dbg: + +invalidate_dbg_state(*args) -> 'int' + invalidate_dbg_state(dbginv) -> int + Invalidate cached debugger information. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param dbginv: (C++: int) Debugged process invalidation options + @return: current debugger state (one of Debugged process states) + +Help on function invalidate_dbgmem_config in module ida_dbg: + +invalidate_dbgmem_config(*args) -> 'void' + invalidate_dbgmem_config() + Invalidate the debugged process memory configuration. Call this function if the + debugged process might have changed its memory layout (allocated more memory, + for example) + +Help on function invalidate_dbgmem_contents in module ida_dbg: + +invalidate_dbgmem_contents(*args) -> 'void' + invalidate_dbgmem_contents(ea, size) + Invalidate the debugged process memory contents. Call this function each time + the process has been stopped or the process memory is modified. If ea == + BADADDR, then the whole memory contents will be invalidated + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) + +Help on function is_bblk_trace_enabled in module ida_dbg: + +is_bblk_trace_enabled(*args) -> 'bool' + is_bblk_trace_enabled() -> bool + +Help on function is_debugger_busy in module ida_dbg: + +is_debugger_busy(*args) -> 'bool' + is_debugger_busy() -> bool + Is the debugger busy?. Some debuggers do not accept any commands while the + debugged application is running. For such a debugger, it is unsafe to do + anything with the database (even simple queries like get_byte may lead to + undesired consequences). Returns: true if the debugged application is running + under such a debugger + +Help on function is_debugger_memory in module ida_dbg: + +is_debugger_memory(*args) -> 'bool' + is_debugger_memory(ea) -> bool + Is the address mapped to debugger memory? + + @param ea: (C++: ea_t) + +Help on function is_debugger_on in module ida_dbg: + +is_debugger_on(*args) -> 'bool' + is_debugger_on() -> bool + Is the debugger currently running? + +Help on function is_func_trace_enabled in module ida_dbg: + +is_func_trace_enabled(*args) -> 'bool' + is_func_trace_enabled() -> bool + Get current state of functions tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + +Help on function is_insn_trace_enabled in module ida_dbg: + +is_insn_trace_enabled(*args) -> 'bool' + is_insn_trace_enabled() -> bool + Get current state of instruction tracing. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + +Help on function is_reg_custom in module ida_dbg: + +is_reg_custom(*args) -> 'bool' + is_reg_custom(regname) -> bool + Does a register contain a value of a custom data type? \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * + +Help on function is_reg_float in module ida_dbg: + +is_reg_float(*args) -> 'bool' + is_reg_float(regname) -> bool + Does a register contain a floating point value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * + +Help on function is_reg_integer in module ida_dbg: + +is_reg_integer(*args) -> 'bool' + is_reg_integer(regname) -> bool + Does a register contain an integer value? \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param regname: (C++: const char *) char const * + +Help on function is_request_running in module ida_dbg: + +is_request_running(*args) -> 'bool' + is_request_running() -> bool + Is a request currently running? + +Help on function is_step_trace_enabled in module ida_dbg: + +is_step_trace_enabled(*args) -> 'bool' + is_step_trace_enabled() -> bool + Get current state of step tracing. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + +Help on function is_valid_dstate in module ida_dbg: + +is_valid_dstate(*args) -> 'bool' + is_valid_dstate(state) -> bool + + @param state: int + +Help on function is_valid_trace_file in module ida_dbg: + +is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool + Is the specified file a valid trace file for the current database? + + @param filename: (C++: const char *) char const * + +Help on function list_bptgrps in module ida_dbg: + +list_bptgrps(*args) -> 'PyObject *' + list_bptgrps(bptgrps) -> size_t + Retrieve the list of absolute path of all folders of bpt dirtree \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param bptgrps: (C++: qstrvec_t *) list of absolute path in the bpt dirtree + @return: number of folders returned + list_bptgrps() -> [str, ...] + +Help on function load_debugger in module ida_dbg: + +load_debugger(*args) -> 'bool' + load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool + +Help on function load_trace_file in module ida_dbg: + +load_trace_file(*args) -> 'qstring *' + load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * + +Help on class memreg_info_t in module ida_dbg: + +class memreg_info_t(builtins.object) + | Proxy of C++ memreg_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> memreg_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_memreg_info_t(...) + | delete_memreg_info_t(self) + | + | get_bytes(self, *args) -> 'PyObject *' + | get_bytes(self) -> PyObject * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | get_bytes(self) -> PyObject * + | + | ea + | ea + | + | thisown + | The membership flag + +Help on class memreg_infos_t in module ida_dbg: + +class memreg_infos_t(builtins.object) + | Proxy of C++ qvector< memreg_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'memreg_info_t const &' + | __getitem__(self, i) -> memreg_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> memreg_infos_t + | __init__(self, x) -> memreg_infos_t + | + | @param x: qvector< memreg_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memreg_info_t const & + | + | __swig_destroy__ = delete_memreg_infos_t(...) + | delete_memreg_infos_t(self) + | + | at(self, *args) -> 'memreg_info_t const &' + | at(self, _idx) -> memreg_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memreg_info_t >::const_iterator' + | begin(self) -> memreg_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memreg_info_t >::const_iterator' + | end(self) -> memreg_info_t + | + | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' + | erase(self, it) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | + | erase(self, first, last) -> memreg_info_t + | + | @param first: qvector< memreg_info_t >::iterator + | @param last: qvector< memreg_info_t >::iterator + | + | extract(self, *args) -> 'memreg_info_t *' + | extract(self) -> memreg_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memreg_info_t()) + | + | @param x: memreg_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memreg_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' + | insert(self, it, x) -> memreg_info_t + | + | @param it: qvector< memreg_info_t >::iterator + | @param x: memreg_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memreg_info_t &' + | push_back(self, x) + | + | @param x: memreg_info_t const & + | + | push_back(self) -> memreg_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memreg_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memreg_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function set_bpt_group in module ida_dbg: + +set_bpt_group(*args) -> 'bool' + set_bpt_group(bpt, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree if the folder didn't exists, + it will be created \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param bpt: (C++: bpt_t &) bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success + +Help on function put_dbg_byte in module ida_dbg: + +put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool + Change one byte of the debugged process memory. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified + +Help on function read_dbg_memory in module ida_dbg: + +read_dbg_memory(*args) -> 'ssize_t' + read_dbg_memory(ea, buffer, size) -> ssize_t + + @param ea: ea_t + @param buffer: void * + @param size: size_t + +Help on function refresh_debugger_memory in module ida_dbg: + +refresh_debugger_memory(*args) -> 'PyObject *' + refresh_debugger_memory() -> PyObject * + Refreshes the debugger memory + + @return: Nothing + +Help on function rename_bptgrp in module ida_dbg: + +rename_bptgrp(*args) -> 'bool' + rename_bptgrp(old_name, new_name) -> bool + Rename a folder of bpt dirtree \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param old_name: (C++: const char *) absolute path to the folder to be renamed + @param new_name: (C++: const char *) absolute path of the new folder name + @return: success + +Help on function request_add_bpt in module ida_dbg: + +request_add_bpt(*args) -> 'bool' + request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Post an add_bpt(const bpt_t &) request. + + @param ea: ea_t + @param size: asize_t + @param type: bpttype_t + + request_add_bpt(bpt) -> bool + + @param bpt: bpt_t const & + +Help on function request_attach_process in module ida_dbg: + +request_attach_process(*args) -> 'int' + request_attach_process(pid, event_id) -> int + Post an attach_process() request. + + @param pid: (C++: pid_t) + @param event_id: (C++: int) + +Help on function request_clear_trace in module ida_dbg: + +request_clear_trace(*args) -> 'void' + request_clear_trace() + Post a clear_trace() request. + +Help on function request_continue_process in module ida_dbg: + +request_continue_process(*args) -> 'bool' + request_continue_process() -> bool + Post a continue_process() request. + @note: This requires an explicit call to run_requests() + +Help on function request_del_bpt in module ida_dbg: + +request_del_bpt(*args) -> 'bool' + request_del_bpt(ea) -> bool + Post a del_bpt(const bpt_location_t &) request. + + @param ea: ea_t + + request_del_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function request_detach_process in module ida_dbg: + +request_detach_process(*args) -> 'bool' + request_detach_process() -> bool + Post a detach_process() request. + +Help on function request_disable_bblk_trace in module ida_dbg: + +request_disable_bblk_trace(*args) -> 'bool' + request_disable_bblk_trace() -> bool + +Help on function request_disable_bpt in module ida_dbg: + +request_disable_bpt(*args) -> 'bool' + request_disable_bpt(ea) -> bool + + @param ea: ea_t + + request_disable_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function request_disable_func_trace in module ida_dbg: + +request_disable_func_trace(*args) -> 'bool' + request_disable_func_trace() -> bool + +Help on function request_disable_insn_trace in module ida_dbg: + +request_disable_insn_trace(*args) -> 'bool' + request_disable_insn_trace() -> bool + +Help on function request_disable_step_trace in module ida_dbg: + +request_disable_step_trace(*args) -> 'bool' + request_disable_step_trace() -> bool + +Help on function request_enable_bblk_trace in module ida_dbg: + +request_enable_bblk_trace(*args) -> 'bool' + request_enable_bblk_trace(enable=True) -> bool + + @param enable: bool + +Help on function request_enable_bpt in module ida_dbg: + +request_enable_bpt(*args) -> 'bool' + request_enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + + request_enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function request_enable_func_trace in module ida_dbg: + +request_enable_func_trace(*args) -> 'bool' + request_enable_func_trace(enable=True) -> bool + + @param enable: bool + +Help on function request_enable_insn_trace in module ida_dbg: + +request_enable_insn_trace(*args) -> 'bool' + request_enable_insn_trace(enable=True) -> bool + + @param enable: bool + +Help on function request_enable_step_trace in module ida_dbg: + +request_enable_step_trace(*args) -> 'bool' + request_enable_step_trace(enable=1) -> bool + + @param enable: int + +Help on function request_exit_process in module ida_dbg: + +request_exit_process(*args) -> 'bool' + request_exit_process() -> bool + Post an exit_process() request. + +Help on function request_resume_thread in module ida_dbg: + +request_resume_thread(*args) -> 'int' + request_resume_thread(tid) -> int + Post a resume_thread() request. + + @param tid: (C++: thid_t) + +Help on function request_run_to in module ida_dbg: + +request_run_to(*args) -> 'bool' + request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + Post a run_to() request. + + @param ea: (C++: ea_t) + @param pid: (C++: pid_t) + +Help on function request_select_thread in module ida_dbg: + +request_select_thread(*args) -> 'bool' + request_select_thread(tid) -> bool + Post a select_thread() request. + + @param tid: (C++: thid_t) + +Help on function request_set_bblk_trace_options in module ida_dbg: + +request_set_bblk_trace_options(*args) -> 'void' + request_set_bblk_trace_options(options) + Post a set_bblk_trace_options() request. + + @param options: (C++: int) + +Help on function request_set_func_trace_options in module ida_dbg: + +request_set_func_trace_options(*args) -> 'void' + request_set_func_trace_options(options) + Post a set_func_trace_options() request. + + @param options: (C++: int) + +Help on function request_set_insn_trace_options in module ida_dbg: + +request_set_insn_trace_options(*args) -> 'void' + request_set_insn_trace_options(options) + Post a set_insn_trace_options() request. + + @param options: (C++: int) + +Help on function request_set_reg_val in module ida_dbg: + +request_set_reg_val(*args) -> 'PyObject *' + request_set_reg_val(regname, o) -> PyObject * + Post a set_reg_val() request. + + @param regname: (C++: const char *) char const * + @param o: PyObject * + +Help on function request_set_resume_mode in module ida_dbg: + +request_set_resume_mode(*args) -> 'bool' + request_set_resume_mode(tid, mode) -> bool + Post a set_resume_mode() request. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t + +Help on function request_set_step_trace_options in module ida_dbg: + +request_set_step_trace_options(*args) -> 'void' + request_set_step_trace_options(options) + Post a set_step_trace_options() request. + + @param options: (C++: int) + +Help on function request_start_process in module ida_dbg: + +request_start_process(*args) -> 'int' + request_start_process(path=None, args=None, sdir=None) -> int + Post a start_process() request. + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + +Help on function request_step_into in module ida_dbg: + +request_step_into(*args) -> 'bool' + request_step_into() -> bool + Post a step_into() request. + +Help on function request_step_over in module ida_dbg: + +request_step_over(*args) -> 'bool' + request_step_over() -> bool + Post a step_over() request. + +Help on function request_step_until_ret in module ida_dbg: + +request_step_until_ret(*args) -> 'bool' + request_step_until_ret() -> bool + Post a step_until_ret() request. + +Help on function request_suspend_process in module ida_dbg: + +request_suspend_process(*args) -> 'bool' + request_suspend_process() -> bool + Post a suspend_process() request. + +Help on function request_suspend_thread in module ida_dbg: + +request_suspend_thread(*args) -> 'int' + request_suspend_thread(tid) -> int + Post a suspend_thread() request. + + @param tid: (C++: thid_t) + +Help on function resume_thread in module ida_dbg: + +resume_thread(*args) -> 'int' + resume_thread(tid) -> int + Resume thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on function retrieve_exceptions in module ida_dbg: + +retrieve_exceptions(*args) -> 'excvec_t *' + retrieve_exceptions() -> excvec_t + Retrieve the exception information. You may freely modify the returned vector + and add/edit/delete exceptions You must call store_exceptions() after any + modifications Note: exceptions with code zero, multiple exception codes or names + are prohibited + +Help on function run_requests in module ida_dbg: + +run_requests(*args) -> 'bool' + run_requests() -> bool + Execute requests until all requests are processed or an asynchronous function is + called. \sq{Type, Synchronous function, Notification, none (synchronous + function)} + + @return: false if not all requests could be processed (indicates an asynchronous + function was started) + @note: If called from a notification handler, the execution of requests will be + postponed to the end of the execution of all notification handlers. + +Help on function run_to in module ida_dbg: + +run_to(*args) -> 'bool' + run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. + +Help on function save_trace_file in module ida_dbg: + +save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool + Save the current trace in the specified file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function select_thread in module ida_dbg: + +select_thread(*args) -> 'bool' + select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. + +Help on function send_dbg_command in module ida_dbg: + +send_dbg_command(command) + Send a direct command to the debugger backend, and + retrieve the result as a string. + + Note: any double-quotes in 'command' must be backslash-escaped. + Note: this only works with some debugger backends: Bochs, WinDbg, GDB. + + Returns: (True, <result string>) on success, or (False, <Error message string>) on failure + +Help on function set_bblk_trace_options in module ida_dbg: + +set_bblk_trace_options(*args) -> 'void' + set_bblk_trace_options(options) + Modify basic block tracing options (see BT_LOG_INSTS) + + @param options: (C++: int) + +Help on function set_bptloc_group in module ida_dbg: + +set_bptloc_group(*args) -> 'bool' + set_bptloc_group(bptloc, grp_name) -> bool + Move a bpt into a folder in the breakpoint dirtree based on the bpt_location + find_bpt is called to retrieve the bpt and then set_bpt_group if the folder + didn't exists, it will be created \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) bptlocation of the bpt that will be moved + @param grp_name: (C++: const char *) absolute path to the breakpoint dirtree folder + @return: success + +Help on function set_bptloc_string in module ida_dbg: + +set_bptloc_string(*args) -> 'int' + set_bptloc_string(s) -> int + + @param s: char const * + +Help on function set_debugger_event_cond in module ida_dbg: + +set_debugger_event_cond(*args) -> 'void' + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * + +Help on function set_debugger_options in module ida_dbg: + +set_debugger_options(*args) -> 'uint' + set_debugger_options(options) -> uint + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options + +Help on function set_func_trace_options in module ida_dbg: + +set_func_trace_options(*args) -> 'void' + set_func_trace_options(options) + Modify function tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function set_highlight_trace_options in module ida_dbg: + +set_highlight_trace_options(*args) -> 'void' + set_highlight_trace_options(hilight, color, diff) + Set highlight trace parameters. + + @param hilight: (C++: bool) + @param color: (C++: bgcolor_t) + @param diff: (C++: bgcolor_t) + +Help on function set_insn_trace_options in module ida_dbg: + +set_insn_trace_options(*args) -> 'void' + set_insn_trace_options(options) + Modify instruction tracing options. \sq{Type, Synchronous function - available + as request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function set_manual_regions in module ida_dbg: + +set_manual_regions(*args) -> 'void' + set_manual_regions(ranges) + + @param ranges: meminfo_vec_t const * + +Help on function set_process_options in module ida_dbg: + +set_process_options(*args) -> 'void' + set_process_options(path, args, sdir, host, _pass, port) + Set process options. Any of the arguments may be nullptr, which means 'do not + modify' + + @param path: (C++: const char *) char const * + @param args: (C++: const char *) char const * + @param sdir: (C++: const char *) char const * + @param host: (C++: const char *) char const * + @param pass: (C++: const char *) char const * + @param port: (C++: int) + +Help on function set_process_state in module ida_dbg: + +set_process_state(*args) -> 'int' + set_process_state(newstate, p_thid, dbginv) -> int + Set new state for the debugged process. Notifies the IDA kernel about the change + of the debugged process state. For example, a debugger module could call this + function when it knows that the process is suspended for a short period of time. + Some IDA API calls can be made only when the process is suspended. The process + state is usually restored before returning control to the caller. You must know + that it is ok to change the process state, doing it at arbitrary moments may + crash the application or IDA. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param newstate: (C++: int) new process state (one of Debugged process states) if + DSTATE_NOTASK is passed then the state is not changed + @param p_thid: (C++: thid_t *) ptr to new thread id. may be nullptr or pointer to NO_THREAD. the + pointed variable will contain the old thread id upon return + @param dbginv: (C++: int) Debugged process invalidation options + @return: old debugger state (one of Debugged process states) + +Help on function set_reg_val in module ida_dbg: + +set_reg_val(*args) -> 'PyObject *' + set_reg_val(regname, o) -> PyObject + Write a register value to the current thread. + + @param regname: (C++: const char *) char const * + @param o: PyObject * + + set_reg_val(tid, regidx, o) -> bool, int + + @param tid: thid_t + @param regidx: int + @param o: PyObject * + +Help on function set_remote_debugger in module ida_dbg: + +set_remote_debugger(*args) -> 'void' + set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used + +Help on function set_resume_mode in module ida_dbg: + +set_resume_mode(*args) -> 'bool' + set_resume_mode(tid, mode) -> bool + How to resume the application. Set resume mode but do not resume process. + + @param tid: (C++: thid_t) + @param mode: (C++: resume_mode_t) enum resume_mode_t + +Help on function set_step_trace_options in module ida_dbg: + +set_step_trace_options(*args) -> 'void' + set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function set_trace_base_address in module ida_dbg: + +set_trace_base_address(*args) -> 'void' + set_trace_base_address(ea) + Set the base address of the current trace. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param ea: (C++: ea_t) + +Help on function set_trace_dynamic_register_set in module ida_dbg: + +set_trace_dynamic_register_set(*args) -> 'void' + set_trace_dynamic_register_set(idaregs) + Set dynamic register set of current trace. + + @param idaregs: (C++: dynamic_register_set_t &) + +Help on function set_trace_file_desc in module ida_dbg: + +set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool + Change the description of the specified trace file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function set_trace_platform in module ida_dbg: + +set_trace_platform(*args) -> 'void' + set_trace_platform(platform) + Set platform name of current trace. + + @param platform: (C++: const char *) char const * + +Help on function set_trace_size in module ida_dbg: + +set_trace_size(*args) -> 'bool' + set_trace_size(size) -> bool + Specify the new size of the circular buffer. \sq{Type, Synchronous function, + Notification, none (synchronous function)} + + @param size: (C++: int) if 0, buffer isn't circular and events are never removed. If the + new size is smaller than the existing number of trace events, a + corresponding number of trace events are removed. + @note: If you specify 0, all available memory can be quickly used !!! + +Help on function srcdbg_request_step_into in module ida_dbg: + +srcdbg_request_step_into(*args) -> 'bool' + srcdbg_request_step_into() -> bool + +Help on function srcdbg_request_step_over in module ida_dbg: + +srcdbg_request_step_over(*args) -> 'bool' + srcdbg_request_step_over() -> bool + +Help on function srcdbg_request_step_until_ret in module ida_dbg: + +srcdbg_request_step_until_ret(*args) -> 'bool' + srcdbg_request_step_until_ret() -> bool + +Help on function srcdbg_step_into in module ida_dbg: + +srcdbg_step_into(*args) -> 'bool' + srcdbg_step_into() -> bool + +Help on function srcdbg_step_over in module ida_dbg: + +srcdbg_step_over(*args) -> 'bool' + srcdbg_step_over() -> bool + +Help on function srcdbg_step_until_ret in module ida_dbg: + +srcdbg_step_until_ret(*args) -> 'bool' + srcdbg_step_until_ret() -> bool + +Help on function start_process in module ida_dbg: + +start_process(*args) -> 'int' + start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started + +Help on function step_into in module ida_dbg: + +step_into(*args) -> 'bool' + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} + +Help on function step_over in module ida_dbg: + +step_over(*args) -> 'bool' + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} + +Help on function step_until_ret in module ida_dbg: + +step_until_ret(*args) -> 'bool' + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} + +Help on function store_exceptions in module ida_dbg: + +store_exceptions(*args) -> 'bool' + store_exceptions() -> bool + Update the exception information stored in the debugger module by invoking its + dbg->set_exception_info callback + +Help on function suspend_process in module ida_dbg: + +suspend_process(*args) -> 'bool' + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. + +Help on function suspend_thread in module ida_dbg: + +suspend_thread(*args) -> 'int' + suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on class tev_info_reg_t in module ida_dbg: + +class tev_info_reg_t(builtins.object) + | Proxy of C++ tev_info_reg_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> tev_info_reg_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tev_info_reg_t(...) + | delete_tev_info_reg_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | info + | info + | + | registers + | registers + | + | thisown + | The membership flag + +Help on class tev_info_t in module ida_dbg: + +class tev_info_t(builtins.object) + | Proxy of C++ tev_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> tev_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tev_info_t(...) + | delete_tev_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | thisown + | The membership flag + | + | tid + | tid + | + | type + | type + +Help on class tev_reg_value_t in module ida_dbg: + +class tev_reg_value_t(builtins.object) + | Proxy of C++ tev_reg_value_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | + | @param _reg_idx: int + | @param _value: uint64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tev_reg_value_t(...) + | delete_tev_reg_value_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reg_idx + | reg_idx + | + | thisown + | The membership flag + | + | value + | value + +Help on class tev_reg_values_t in module ida_dbg: + +class tev_reg_values_t(builtins.object) + | Proxy of C++ qvector< tev_reg_value_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'tev_reg_value_t const &' + | __getitem__(self, i) -> tev_reg_value_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> tev_reg_values_t + | __init__(self, x) -> tev_reg_values_t + | + | @param x: qvector< tev_reg_value_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_reg_value_t const & + | + | __swig_destroy__ = delete_tev_reg_values_t(...) + | delete_tev_reg_values_t(self) + | + | at(self, *args) -> 'tev_reg_value_t const &' + | at(self, _idx) -> tev_reg_value_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' + | begin(self) -> tev_reg_value_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< tev_reg_value_t >::const_iterator' + | end(self) -> tev_reg_value_t + | + | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' + | erase(self, it) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | + | erase(self, first, last) -> tev_reg_value_t + | + | @param first: qvector< tev_reg_value_t >::iterator + | @param last: qvector< tev_reg_value_t >::iterator + | + | extract(self, *args) -> 'tev_reg_value_t *' + | extract(self) -> tev_reg_value_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=tev_reg_value_t()) + | + | @param x: tev_reg_value_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: tev_reg_value_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' + | insert(self, it, x) -> tev_reg_value_t + | + | @param it: qvector< tev_reg_value_t >::iterator + | @param x: tev_reg_value_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'tev_reg_value_t &' + | push_back(self, x) + | + | @param x: tev_reg_value_t const & + | + | push_back(self) -> tev_reg_value_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_reg_value_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< tev_reg_value_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class tevinforeg_vec_t in module ida_dbg: + +class tevinforeg_vec_t(builtins.object) + | Proxy of C++ qvector< tev_info_reg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'tev_info_reg_t const &' + | __getitem__(self, i) -> tev_info_reg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> tevinforeg_vec_t + | __init__(self, x) -> tevinforeg_vec_t + | + | @param x: qvector< tev_info_reg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tev_info_reg_t const & + | + | __swig_destroy__ = delete_tevinforeg_vec_t(...) + | delete_tevinforeg_vec_t(self) + | + | at(self, *args) -> 'tev_info_reg_t const &' + | at(self, _idx) -> tev_info_reg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' + | begin(self) -> tev_info_reg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< tev_info_reg_t >::const_iterator' + | end(self) -> tev_info_reg_t + | + | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' + | erase(self, it) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | + | erase(self, first, last) -> tev_info_reg_t + | + | @param first: qvector< tev_info_reg_t >::iterator + | @param last: qvector< tev_info_reg_t >::iterator + | + | extract(self, *args) -> 'tev_info_reg_t *' + | extract(self) -> tev_info_reg_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=tev_info_reg_t()) + | + | @param x: tev_info_reg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: tev_info_reg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' + | insert(self, it, x) -> tev_info_reg_t + | + | @param it: qvector< tev_info_reg_t >::iterator + | @param x: tev_info_reg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'tev_info_reg_t &' + | push_back(self, x) + | + | @param x: tev_info_reg_t const & + | + | push_back(self) -> tev_info_reg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tev_info_reg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< tev_info_reg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function update_bpt in module ida_dbg: + +update_bpt(*args) -> 'bool' + update_bpt(bpt) -> bool + Update modifiable characteristics of an existing breakpoint. To update the + breakpoint location, use change_bptlocs() \sq{Type, Synchronous function, + Notification, none (synchronous function)} + @note: Only the following fields can be modified: + * bpt_t::cndbody + * bpt_t::pass_count + * bpt_t::flags + * bpt_t::size + * bpt_t::type + @note: Changing some properties will require removing and then re-adding the + breakpoint to the process memory (or the debugger backend), which can + lead to race conditions (i.e., breakpoint(s) can be missed) in case the + process is not suspended. Here are a list of scenarios that will require + the breakpoint to be removed & then re-added: + * bpt_t::size is modified + * bpt_t::type is modified + * bpt_t::flags's BPT_ENABLED is modified + * bpt_t::flags's BPT_LOWCND is changed + * bpt_t::flags's BPT_LOWCND remains set, but cndbody changed + + @param bpt: (C++: const bpt_t *) bpt_t const * + +Help on function wait_for_next_event in module ida_dbg: + +wait_for_next_event(*args) -> 'dbg_event_code_t' + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) + +Help on function write_dbg_memory in module ida_dbg: + +write_dbg_memory(*args) -> 'ssize_t' + write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t + + @param ea: ea_t + @param py_buf: PyObject * + @param size: size_t + +Module "ida_dirtree"s docstring: +""" +Types involved in grouping of item into folders. + +The dirtree_t class is used to organize a directory tree on top of any +collection that allows for accessing its elements by an id (inode). + +No requirements are imposed on the inodes apart from the forbidden value -1 (it +is used ot denote a bad inode). + +The dirspec_t class is used to specialize the dirtree. It can be used to +introduce a directory structure for: +* local types +* structs +* enums +* functions +* names +* etc + +@note: you should be manipulating dirtree_t (and, if implementing a new tree + backend, dirspec_t) instances, not calling top-level functions in this + file directly.""" + +Help on class direntry_t in module ida_dirtree: + +class direntry_t(builtins.object) + | Proxy of C++ direntry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __init__(self, *args) + | __init__(self, i=BADIDX, d=False) -> direntry_t + | + | @param i: uval_t + | @param d: bool + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: direntry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_direntry_t(...) + | delete_direntry_t(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | isdir + | isdir + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | BADIDX = unsigned-ea-like-numeric-type(-1) + | + | ROOTIDX = 0 + | + | __hash__ = None + +Help on class direntry_vec_t in module ida_dirtree: + +class direntry_vec_t(builtins.object) + | Proxy of C++ qvector< direntry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __getitem__(self, *args) -> 'direntry_t const &' + | __getitem__(self, i) -> direntry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> direntry_vec_t + | __init__(self, x) -> direntry_vec_t + | + | @param x: qvector< direntry_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< direntry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: direntry_t const & + | + | __swig_destroy__ = delete_direntry_vec_t(...) + | delete_direntry_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: direntry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: direntry_t const & + | + | at(self, *args) -> 'direntry_t const &' + | at(self, _idx) -> direntry_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' + | begin(self) -> direntry_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< direntry_t >::const_iterator' + | end(self) -> direntry_t + | + | erase(self, *args) -> 'qvector< direntry_t >::iterator' + | erase(self, it) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | + | erase(self, first, last) -> direntry_t + | + | @param first: qvector< direntry_t >::iterator + | @param last: qvector< direntry_t >::iterator + | + | extract(self, *args) -> 'direntry_t *' + | extract(self) -> direntry_t + | + | find(self, *args) -> 'qvector< direntry_t >::const_iterator' + | find(self, x) -> direntry_t + | + | @param x: direntry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=direntry_t()) + | + | @param x: direntry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: direntry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: direntry_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< direntry_t >::iterator' + | insert(self, it, x) -> direntry_t + | + | @param it: qvector< direntry_t >::iterator + | @param x: direntry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'direntry_t &' + | push_back(self, x) + | + | @param x: direntry_t const & + | + | push_back(self) -> direntry_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: direntry_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< direntry_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirspec_t in module ida_dirtree: + +class dirspec_t(builtins.object) + | Proxy of C++ dirspec_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, nm=None, f=0) -> dirspec_t + | + | @param nm: char const * + | @param f: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirspec_t(...) + | delete_dirspec_t(self) + | + | get_attrs(self, *args) -> 'qstring' + | get_attrs(self, inode) -> qstring + | + | @param inode: inode_t + | + | get_inode(self, *args) -> 'inode_t' + | get_inode(self, dirpath, name) -> inode_t + | get the entry inode in the specified directory + | + | @param dirpath: (C++: const char *) the absolute directory path with trailing slash + | @param name: (C++: const char *) the entry name in the directory + | @return: the entry inode + | + | get_name(self, *args) -> 'bool' + | get_name(self, inode, name_flags=DTN_FULL_NAME) -> bool + | get the entry name. for example, the structure name + | + | @param inode: (C++: inode_t) inode number of the entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: false if the entry does not exist. + | + | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool + | rename the entry + | + | @param inode: (C++: inode_t) + | @param newname: (C++: const char *) + | @return: success + | + | unlink_inode(self, *args) -> 'void' + | unlink_inode(self, inode) + | + | @param inode: (C++: inode_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | id + | id + | + | nodename + | id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | DSF_INODE_EA = 1 + | + | DSF_PRIVRANGE = 2 + +Help on class dirtree_cursor_t in module ida_dirtree: + +class dirtree_cursor_t(builtins.object) + | Proxy of C++ dirtree_cursor_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __init__(self, *args) + | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t + | + | @param _parent: diridx_t + | @param _rank: size_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: dirtree_cursor_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_cursor_t(...) + | delete_dirtree_cursor_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: dirtree_cursor_t const & + | + | is_root_cursor(self, *args) -> 'bool' + | is_root_cursor(self) -> bool + | + | set_root_cursor(self, *args) -> 'void' + | set_root_cursor(self) + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | root_cursor(*args) -> 'dirtree_cursor_t' + | root_cursor() -> dirtree_cursor_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | parent + | parent + | + | rank + | rank + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function dirtree_cursor_t_root_cursor in module ida_dirtree: + +dirtree_cursor_t_root_cursor(*args) -> 'dirtree_cursor_t' + dirtree_cursor_t_root_cursor() -> dirtree_cursor_t + +Help on class dirtree_cursor_vec_t in module ida_dirtree: + +class dirtree_cursor_vec_t(builtins.object) + | Proxy of C++ qvector< dirtree_cursor_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> dirtree_cursor_vec_t + | __init__(self, x) -> dirtree_cursor_vec_t + | + | @param x: qvector< dirtree_cursor_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | __swig_destroy__ = delete_dirtree_cursor_vec_t(...) + | delete_dirtree_cursor_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class dirtree_iterator_t in module ida_dirtree: + +class dirtree_iterator_t(builtins.object) + | Proxy of C++ dirtree_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_iterator_t(...) + | delete_dirtree_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cursor + | cursor + | + | pattern + | pattern + | + | thisown + | The membership flag + +Help on class dirtree_selection_t in module ida_dirtree: + +class dirtree_selection_t(dirtree_cursor_vec_t) + | Proxy of C++ dirtree_selection_t class. + | + | Method resolution order: + | dirtree_selection_t + | dirtree_cursor_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_selection_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_selection_t(...) + | delete_dirtree_selection_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from dirtree_cursor_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< dirtree_cursor_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: dirtree_cursor_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | + | erase(self, first, last) -> dirtree_cursor_t + | + | @param first: qvector< dirtree_cursor_t >::iterator + | @param last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) -> 'dirtree_cursor_t *' + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | find(self, x) -> dirtree_cursor_t + | + | @param x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | + | @param x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: dirtree_cursor_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | + | @param it: qvector< dirtree_cursor_t >::iterator + | @param x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | + | @param x: dirtree_cursor_t const & + | + | push_back(self) -> dirtree_cursor_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: dirtree_cursor_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from dirtree_cursor_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from dirtree_cursor_vec_t: + | + | __hash__ = None + +Help on class dirtree_t in module ida_dirtree: + +class dirtree_t(builtins.object) + | Proxy of C++ dirtree_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ds) -> dirtree_t + | + | @param ds: dirspec_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_t(...) + | delete_dirtree_t(self) + | + | change_rank(self, *args) -> 'dterr_t' + | change_rank(self, path, rank_delta) -> dterr_t + | Change ordering rank of an item. + | + | @param path: (C++: const char *) path to the item + | @param rank_delta: (C++: ssize_t) the amount of the change. positive numbers mean to move down + | in the list; negative numbers mean to move up. + | @return: dterr_t error code + | @note: All subdirectories go before all file entries. + | + | chdir(self, *args) -> 'dterr_t' + | chdir(self, path) -> dterr_t + | Change current directory + | + | @param path: (C++: const char *) new current directory + | @return: dterr_t error code + | + | find_entry(self, *args) -> 'dirtree_cursor_t' + | find_entry(self, de) -> dirtree_cursor_t + | Find the cursor corresponding to an entry of a directory + | + | @param de: (C++: const direntry_t &) directory entry + | @return: cursor corresponding to the directory entry + | + | findfirst(self, *args) -> 'bool' + | findfirst(self, ff, pattern) -> bool + | Start iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator. it will be initialized by the function + | @param pattern: (C++: const char *) pattern to search for + | @return: success + | + | findnext(self, *args) -> 'bool' + | findnext(self, ff) -> bool + | Continue iterating over files in a directory + | + | @param ff: (C++: dirtree_iterator_t *) directory iterator + | @return: success + | + | get_abspath(self, *args) -> 'qstring' + | get_abspath(self, cursor) -> qstring + | Construct an absolute path from the specified relative path. This function + | verifies the directory part of the specified path. The last component of the + | specified path is not verified. + | + | @param cursor: dirtree_cursor_t const & + | + | @return: path. empty path means wrong directory part of RELPATH + | get_abspath(self, relpath) -> qstring + | + | @param relpath: char const * + | + | get_dir_size(self, *args) -> 'ssize_t' + | get_dir_size(self, diridx) -> ssize_t + | Get dir size + | + | @param diridx: (C++: diridx_t) directory index + | @return: number of entries under this directory; if error, return -1 + | + | get_entry_attrs(self, *args) -> 'qstring' + | get_entry_attrs(self, de) -> qstring + | Get entry attributes + | + | @param de: (C++: const direntry_t &) directory entry + | @return: name + | + | get_entry_name(self, *args) -> 'qstring' + | get_entry_name(self, de, name_flags=DTN_FULL_NAME) -> qstring + | Get entry name + | + | @param de: (C++: const direntry_t &) directory entry + | @param name_flags: (C++: uint32) how exactly the name should be retrieved. combination of bits + | for get_...name() methods bits + | @return: name + | + | get_id(self, *args) -> 'char const *' + | get_id(self) -> char const * + | netnode name + | + | get_nodename = get_id(self, *args) -> 'char const *' + | + | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | get_parent_cursor(self, cursor) -> dirtree_cursor_t + | Get parent cursor. + | + | @param cursor: (C++: const dirtree_cursor_t &) a valid ditree cursor + | @return: cursor's parent + | + | get_rank(self, *args) -> 'ssize_t' + | get_rank(self, diridx, de) -> ssize_t + | Get ordering rank of an item. + | + | @param diridx: (C++: diridx_t) index of the parent directory + | @param de: (C++: const direntry_t &) directory entry + | @return: number in a range of [0..n) where n is the number of entries in the + | parent directory. -1 if error + | + | getcwd(self, *args) -> 'qstring' + | getcwd(self) -> qstring + | Get current directory + | + | @return: the current working directory + | + | isdir(self, *args) -> 'bool' + | isdir(self, de) -> bool + | + | @param de: direntry_t const & + | + | isdir(self, path) -> bool + | + | @param path: char const * + | + | isfile(self, *args) -> 'bool' + | isfile(self, de) -> bool + | + | @param de: direntry_t const & + | + | isfile(self, path) -> bool + | + | @param path: char const * + | + | link(self, *args) -> 'dterr_t' + | link(self, path) -> dterr_t + | Add an inode into the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | link(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | load(self, *args) -> 'bool' + | load(self) -> bool + | Load the tree structure from the netnode. If dirspec_t::id is empty, the + | operation will be considered a success. In addition, calling load() more than + | once will not do anything, and will be considered a success. + | + | @return: success + | @see: dirspec_t::id. + | + | mkdir(self, *args) -> 'dterr_t' + | mkdir(self, path) -> dterr_t + | Create a directory. + | + | @param path: (C++: const char *) directory to create + | @return: dterr_t error code + | + | notify_dirtree(self, *args) -> 'void' + | notify_dirtree(self, added, inode) + | Notify dirtree about a change of an inode. + | + | @param added: (C++: bool) are we adding or deleting an inode? + | @param inode: (C++: inode_t) inode in question + | + | rename(self, *args) -> 'dterr_t' + | rename(self, _from, to) -> dterr_t + | Rename a directory entry. + | + | @param from: (C++: const char *) source path + | @param to: (C++: const char *) destination path + | @return: dterr_t error code + | @note: This function can also rename the item + | + | resolve_cursor(self, *args) -> 'direntry_t' + | resolve_cursor(self, cursor) -> direntry_t + | Resolve cursor + | + | @param cursor: (C++: const dirtree_cursor_t &) to analyze + | @return: directory entry; if the cursor is bad, the resolved entry will be + | invalid. + | @note: see also get_abspath() + | + | resolve_path(self, *args) -> 'direntry_t' + | resolve_path(self, path) -> direntry_t + | Resolve path + | + | @param path: (C++: const char *) to analyze + | @return: directory entry + | + | rmdir(self, *args) -> 'dterr_t' + | rmdir(self, path) -> dterr_t + | Remove a directory. + | + | @param path: (C++: const char *) directory to delete + | @return: dterr_t error code + | + | save(self, *args) -> 'bool' + | save(self) -> bool + | Save the tree structure to the netnode. + | + | @return: success + | @see: dirspec_t::id. + | + | set_id(self, *args) -> 'void' + | set_id(self, nm) + | + | @param nm: char const * + | + | set_nodename = set_id(self, *args) -> 'void' + | + | traverse(self, *args) -> 'ssize_t' + | traverse(self, v) -> ssize_t + | Traverse dirtree, and be notified at each entry If the the visitor returns + | anything other than 0, iteration will stop, and that value returned. The tree is + | traversed using a depth-first algorithm. It is forbidden to modify the dirtree_t + | during traversal; doing so will result in undefined behavior. + | + | @param v: (C++: dirtree_visitor_t &) the callback + | @return: 0, or whatever the visitor returned + | + | unlink(self, *args) -> 'dterr_t' + | unlink(self, path) -> dterr_t + | Remove an inode from the current directory + | + | @param path: char const * + | + | @return: dterr_t error code + | unlink(self, inode) -> dterr_t + | + | @param inode: inode_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | errstr(*args) -> 'char const *' + | errstr(err) -> char const * + | Get textual representation of the error code. + | + | @param err: (C++: dterr_t) enum dterr_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function dirtree_t_errstr in module ida_dirtree: + +dirtree_t_errstr(*args) -> 'char const *' + dirtree_t_errstr(err) -> char const * + + @param err: enum dterr_t + +Help on class dirtree_visitor_t in module ida_dirtree: + +class dirtree_visitor_t(builtins.object) + | Proxy of C++ dirtree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> dirtree_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_visitor_t(...) + | delete_dirtree_visitor_t(self) + | + | visit(self, *args) -> 'ssize_t' + | visit(self, c, de) -> ssize_t + | Will be called for each entry in the dirtree_t If something other than 0 is + | returned, iteration will stop. + | + | @param c: (C++: const dirtree_cursor_t &) the current cursor + | @param de: (C++: const direntry_t &) the current entry + | @return: 0 to keep iterating, or anything else to stop + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_std_dirtree in module ida_dirtree: + +get_std_dirtree(*args) -> 'dirtree_t *' + get_std_dirtree(id) -> dirtree_t + + @param id: enum dirtree_id_t + +Module "ida_diskio"s docstring: +""" +File I/O functions for IDA. + +You should not use standard C file I/O functions in modules. Use functions from +this header, pro.h and fpro.h instead. + +This file also declares a call_system() function.""" + +Help on function choose_ioport_device2 in module ida_diskio: + +choose_ioport_device2(*args) -> 'bool' + choose_ioport_device2(_device, file, parse_params) -> bool + + @param _device: qstring * + @param file: char const * + @param parse_params: choose_ioport_parser_t * + +Help on class choose_ioport_parser_t in module ida_diskio: + +class choose_ioport_parser_t(builtins.object) + | Proxy of C++ choose_ioport_parser_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> choose_ioport_parser_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_choose_ioport_parser_t(...) + | delete_choose_ioport_parser_t(self) + | + | parse(self, *args) -> 'bool' + | parse(self, param, line) -> bool + | @retval true: and fill PARAM with a displayed string + | @retval false: and empty PARAM to skip the current device + | @retval false: and fill PARAM with an error message + | + | @param param: (C++: qstring *) + | @param line: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function close_linput in module ida_diskio: + +close_linput(*args) -> 'void' + close_linput(li) + Close loader input. + + @param li: (C++: linput_t *) + +Help on function create_bytearray_linput in module ida_diskio: + +create_bytearray_linput(*args) -> 'linput_t *' + create_bytearray_linput(s) -> linput_t * + Trivial memory linput. + + @param s: qstring const & + +Help on function create_generic_linput in module ida_diskio: + +create_generic_linput(*args) -> 'linput_t *' + create_generic_linput(gl) -> linput_t * + Create a generic linput + + @param gl: (C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() + using "delete gl;" + +Help on function create_memory_linput in module ida_diskio: + +create_memory_linput(*args) -> 'linput_t *' + create_memory_linput(start, size) -> linput_t * + Create a linput for process memory. This linput will use read_dbg_memory() to + read data. + + @param start: (C++: ea_t) starting address of the input + @param size: (C++: asize_t) size of the memory area to represent as linput if unknown, may be + passed as 0 + +Help on function eclose in module ida_diskio: + +eclose(*args) -> 'void' + eclose(fp) + + @param fp: FILE * + +Help on function enumerate_files in module ida_diskio: + +enumerate_files(*args) -> 'PyObject *' + enumerate_files(path, fname, callback) -> PyObject * + Enumerate files in the specified directory while the callback returns 0. + + @param path: directory to enumerate files in + @param fname: mask of file names to enumerate + @param callback: a callable object that takes the filename as + its first argument and it returns 0 to continue + enumeration or non-zero to stop enumeration. + @return: None in case of script errors + tuple(code, fname) : If the callback returns non-zero + +Help on function enumerate_files2 in module ida_diskio: + +enumerate_files2(*args) -> 'int' + enumerate_files2(answer, answer_size, path, fname, fv) -> int + + @param answer: char * + @param answer_size: size_t + @param path: char const * + @param fname: char const * + @param fv: file_enumerator_t & + +Help on class file_enumerator_t in module ida_diskio: + +class file_enumerator_t(builtins.object) + | Proxy of C++ file_enumerator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> file_enumerator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_file_enumerator_t(...) + | delete_file_enumerator_t(self) + | + | visit_file(self, *args) -> 'int' + | visit_file(self, file) -> int + | + | @param file: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function fopenA in module ida_diskio: + +fopenA(*args) -> 'FILE *' + fopenA(file) -> FILE * + Open a file for append in text mode, deny none. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenM in module ida_diskio: + +fopenM(*args) -> 'FILE *' + fopenM(file) -> FILE * + Open a file for read/write in binary mode, deny write. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenRB in module ida_diskio: + +fopenRB(*args) -> 'FILE *' + fopenRB(file) -> FILE * + Open a file for read in binary mode, deny none. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenRT in module ida_diskio: + +fopenRT(*args) -> 'FILE *' + fopenRT(file) -> FILE * + Open a file for read in text mode, deny none. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenWB in module ida_diskio: + +fopenWB(*args) -> 'FILE *' + fopenWB(file) -> FILE * + Open a new file for write in binary mode, deny read/write. If a file exists, it + will be removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on function fopenWT in module ida_diskio: + +fopenWT(*args) -> 'FILE *' + fopenWT(file) -> FILE * + Open a new file for write in text mode, deny write. If a file exists, it will be + removed. + + @param file: (C++: const char *) char const * + @return: nullptr if failure + +Help on class generic_linput_t in module ida_diskio: + +class generic_linput_t(builtins.object) + | Proxy of C++ generic_linput_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_generic_linput_t(...) + | delete_generic_linput_t(self) + | + | read(self, *args) -> 'ssize_t' + | read(self, off, buffer, nbytes) -> ssize_t + | + | @param off: qoff64_t + | @param buffer: void * + | @param nbytes: size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blocksize + | blocksize + | + | filesize + | filesize + | + | thisown + | The membership flag + +Help on function get_ida_subdirs in module ida_diskio: + +get_ida_subdirs(*args) -> 'qstrvec_t *' + get_ida_subdirs(subdir, flags=0) -> int + Get list of directories in which to find a specific IDA resource (see IDA + subdirectories). The order of the resulting list is as follows: + - [$IDAUSR/subdir (0..N entries)] + - $IDADIR/subdir + + @param subdir: (C++: const char *) name of the resource to list + @param flags: (C++: int) Subdirectory modification flags bits + @return: number of directories appended to 'dirs' + +Help on function get_linput_type in module ida_diskio: + +get_linput_type(*args) -> 'linput_type_t' + get_linput_type(li) -> linput_type_t + Get linput type. + + @param li: (C++: linput_t *) + +Help on function get_special_folder in module ida_diskio: + +get_special_folder(*args) -> 'size_t' + get_special_folder(csidl) -> str + Get a folder location by CSIDL (see Common CSIDLs). Path should be of at least + MAX_PATH size + + @param csidl: (C++: int) + +Help on function get_user_idadir in module ida_diskio: + +get_user_idadir(*args) -> 'char const *' + get_user_idadir() -> char const * + Get user ida related directory. + - if $IDAUSR is defined: + - the first element in $IDAUSR + - else + - default user directory ($HOME/.idapro or %APPDATA%Hex-Rays/IDA Pro) + +Help on function getsysfile in module ida_diskio: + +getsysfile(*args) -> 'char const *' + getsysfile(filename, subdir) -> str + Search for IDA system file. This function searches for a file in: + 1. each directory specified by IDAUSR% + 2. ida directory [+ subdir] and returns the first match. + + @param filename: (C++: const char *) name of file to search + @param subdir: (C++: const char *) if specified, the file is looked for in the specified + subdirectory of the ida directory first (see IDA subdirectories) + @return: nullptr if not found, otherwise a pointer to full file name. + +Help on function idadir in module ida_diskio: + +idadir(*args) -> 'char const *' + idadir(subdir) -> char const * + Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA + subdirectories) + + @param subdir: (C++: const char *) char const * + +Help on class ioports_fallback_t in module ida_diskio: + +class ioports_fallback_t(builtins.object) + | Proxy of C++ ioports_fallback_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ioports_fallback_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ioports_fallback_t(...) + | delete_ioports_fallback_t(self) + | + | handle(self, *args) -> 'bool' + | handle(self, ports, line) -> bool + | + | @param ports: ioports_t const & + | @param line: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function open_linput in module ida_diskio: + +open_linput(*args) -> 'linput_t *' + open_linput(file, remote) -> linput_t * + Open loader input. + + @param file: (C++: const char *) char const * + @param remote: (C++: bool) + +Help on function qlgetz in module ida_diskio: + +qlgetz(*args) -> 'size_t' + qlgetz(li, fpos) -> str + Read a zero-terminated string from the input. If fpos == -1 then no seek will be + performed. + + @param li: (C++: linput_t *) + @param fpos: (C++: int64) + +Help on function read_ioports2 in module ida_diskio: + +read_ioports2(*args) -> 'ssize_t' + read_ioports2(ports, device, file, callback=None) -> ssize_t + + @param ports: ioports_t * + @param device: qstring * + @param file: char const * + @param callback: ioports_fallback_t * + +Module "ida_entry"s docstring: +""" +Functions that deal with entry points. + +Exported functions are considered as entry points as well. + +IDA maintains list of entry points to the program. Each entry point: +* has an address +* has a name +* may have an ordinal number""" + +Help on function add_entry in module ida_entry: + +add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool + Add an entry point to the list of entry points. + + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) + +Help on function get_entry in module ida_entry: + +get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t + Get entry point address by its ordinal + + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR + +Help on function get_entry_forwarder in module ida_entry: + +get_entry_forwarder(*args) -> 'qstring *' + get_entry_forwarder(ord) -> str + Get forwarder name for the entry point by its ordinal. + + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry forwarder name or -1 + +Help on function get_entry_name in module ida_entry: + +get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str + Get name of the entry point by its ordinal. + + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 + +Help on function get_entry_ordinal in module ida_entry: + +get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t + Get ordinal number of an entry point. + + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. + +Help on function get_entry_qty in module ida_entry: + +get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t + Get number of entry points. + +Help on function rename_entry in module ida_entry: + +rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool + Rename entry point. + + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success + +Help on function set_entry_forwarder in module ida_entry: + +set_entry_forwarder(*args) -> 'bool' + set_entry_forwarder(ord, name, flags=0) -> bool + Set forwarder name for ordinal. + + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) forwarder name for entry point. + @param flags: (C++: int) See AEF_* + @return: success + +Module "ida_enum"s docstring: +""" +Assembly level enum management. + +Enums and bitfields are represented as enum_t.""" + +Help on function add_enum in module ida_enum: + +add_enum(*args) -> 'enum_t' + add_enum(idx, name, flag) -> enum_t + Add new enum type. + * if idx==BADADDR then add as the last idx + * if name==nullptr then generate a unique name "enum_%d" + + @param idx: (C++: size_t) + @param name: (C++: const char *) char const * + @param flag: (C++: flags64_t) + +Help on function add_enum_member in module ida_enum: + +add_enum_member(*args) -> 'int' + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int + Add member to enum type. + + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + @param value: (C++: uval_t) + @param bmask: (C++: bmask_t) + @return: 0 if ok, otherwise one of Add enum member result codes + +Help on function del_enum in module ida_enum: + +del_enum(*args) -> 'void' + del_enum(id) + Delete an enum type. + + @param id: (C++: enum_t) + +Help on function del_enum_member in module ida_enum: + +del_enum_member(*args) -> 'bool' + del_enum_member(id, value, serial, bmask) -> bool + Delete member of enum type. + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: uchar) + @param bmask: (C++: bmask_t) + +Help on class enum_member_visitor_t in module ida_enum: + +class enum_member_visitor_t(builtins.object) + | Proxy of C++ enum_member_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> enum_member_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_member_visitor_t(...) + | delete_enum_member_visitor_t(self) + | + | visit_enum_member(self, *args) -> 'int' + | visit_enum_member(self, cid, value) -> int + | Implements action to take when enum member is visited. + | + | @param cid: (C++: const_t) + | @param value: (C++: uval_t) + | @return: nonzero to stop the iteration + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function for_all_enum_members in module ida_enum: + +for_all_enum_members(*args) -> 'int' + for_all_enum_members(id, cv) -> int + Visit all members of a given enum. + + @param id: (C++: enum_t) + @param cv: (C++: enum_member_visitor_t &) + +Help on function get_bmask_cmt in module ida_enum: + +get_bmask_cmt(*args) -> 'qstring *' + get_bmask_cmt(id, bmask, repeatable) -> str + + @param id: enum_t + @param bmask: bmask_t + @param repeatable: bool + +Help on function get_bmask_name in module ida_enum: + +get_bmask_name(*args) -> 'qstring *' + get_bmask_name(id, bmask) -> str + + @param id: enum_t + @param bmask: bmask_t + +Help on function get_enum in module ida_enum: + +get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t + Get enum by name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_cmt in module ida_enum: + +get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str + Get enum comment. + + @param id: (C++: enum_t) + @param repeatable: (C++: bool) + +Help on function get_enum_flag in module ida_enum: + +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) + +Help on function get_enum_idx in module ida_enum: + +get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t + Get the index in the list of enums. + + @param id: (C++: enum_t) + +Help on function get_enum_member in module ida_enum: + +get_enum_member(*args) -> 'const_t' + get_enum_member(id, value, serial, mask) -> const_t + Find an enum member by enum, value and bitmask + @note: if serial -1, return a member with any serial + + @param id: (C++: enum_t) + @param value: (C++: uval_t) + @param serial: (C++: int) + @param mask: (C++: bmask_t) + +Help on function get_enum_member_bmask in module ida_enum: + +get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t + Get bitmask of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_by_name in module ida_enum: + +get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t + Get a reference to an enum member by its name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_member_cmt in module ida_enum: + +get_enum_member_cmt(*args) -> 'qstring *' + get_enum_member_cmt(id, repeatable) -> str + Get enum member's comment. + + @param id: (C++: const_t) + @param repeatable: (C++: bool) + +Help on function get_enum_member_enum in module ida_enum: + +get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t + Get the parent enum of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_name in module ida_enum: + +get_enum_member_name(*args) -> 'qstring *' + get_enum_member_name(id) -> str + Get name of an enum member by const_t. + + @param id: (C++: const_t) + +Help on function get_enum_member_serial in module ida_enum: + +get_enum_member_serial(*args) -> 'uchar' + get_enum_member_serial(cid) -> uchar + Get serial number of an enum member. + + @param cid: (C++: const_t) + +Help on function get_enum_member_value in module ida_enum: + +get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t + Get value of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_name in module ida_enum: + +get_enum_name(*args) -> 'qstring *' + get_enum_name(id) -> str + + @param id: enum_t + +Help on function get_enum_name2 in module ida_enum: + +get_enum_name2(*args) -> 'qstring *' + get_enum_name2(id, flags=0) -> str + Get name of enum + + @param id: (C++: enum_t) enum id + @param flags: (C++: int) Enum name flags + +Help on function get_enum_qty in module ida_enum: + +get_enum_qty(*args) -> 'size_t' + get_enum_qty() -> size_t + Get number of declared enum_t types. + +Help on function get_enum_size in module ida_enum: + +get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t + Get the number of the members of the enum. + + @param id: (C++: enum_t) + +Help on function get_enum_type_ordinal in module ida_enum: + +get_enum_type_ordinal(*args) -> 'int32' + get_enum_type_ordinal(id) -> int32 + Get corresponding type ordinal number. + + @param id: (C++: enum_t) + +Help on function get_enum_width in module ida_enum: + +get_enum_width(*args) -> 'size_t' + get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) + +Help on function get_first_bmask in module ida_enum: + +get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(enum_id) -> bmask_t + Get first bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK + +Help on function get_first_enum_member in module ida_enum: + +get_first_enum_member(*args) -> 'uval_t' + get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t + +Help on function get_first_serial_enum_member in module ida_enum: + +get_first_serial_enum_member(*args) -> 'uchar *' + get_first_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_last_bmask in module ida_enum: + +get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(enum_id) -> bmask_t + Get last bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @return: the biggest bitmask for enum, or DEFMASK + +Help on function get_last_enum_member in module ida_enum: + +get_last_enum_member(*args) -> 'uval_t' + get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param bmask: bmask_t + +Help on function get_last_serial_enum_member in module ida_enum: + +get_last_serial_enum_member(*args) -> 'uchar *' + get_last_serial_enum_member(id, value, bmask) -> const_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_next_bmask in module ida_enum: + +get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(enum_id, bmask) -> bmask_t + Get next bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK + +Help on function get_next_enum_member in module ida_enum: + +get_next_enum_member(*args) -> 'uval_t' + get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_next_serial_enum_member in module ida_enum: + +get_next_serial_enum_member(*args) -> 'uchar *' + get_next_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t + +Help on function get_prev_bmask in module ida_enum: + +get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(enum_id, bmask) -> bmask_t + Get prev bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK + +Help on function get_prev_enum_member in module ida_enum: + +get_prev_enum_member(*args) -> 'uval_t' + get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + + @param id: enum_t + @param value: uval_t + @param bmask: bmask_t + +Help on function get_prev_serial_enum_member in module ida_enum: + +get_prev_serial_enum_member(*args) -> 'uchar *' + get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t + + @param in_out_serial: uchar * + @param first_cid: const_t + +Help on function getn_enum in module ida_enum: + +getn_enum(*args) -> 'enum_t' + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) + +Help on function is_bf in module ida_enum: + +is_bf(*args) -> 'bool' + is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) + +Help on function is_enum_fromtil in module ida_enum: + +is_enum_fromtil(*args) -> 'bool' + is_enum_fromtil(id) -> bool + Does enum come from type library? + + @param id: (C++: enum_t) + +Help on function is_enum_hidden in module ida_enum: + +is_enum_hidden(*args) -> 'bool' + is_enum_hidden(id) -> bool + Is enum collapsed? + + @param id: (C++: enum_t) + +Help on function is_ghost_enum in module ida_enum: + +is_ghost_enum(*args) -> 'bool' + is_ghost_enum(id) -> bool + Is a ghost copy of a local type? + + @param id: (C++: enum_t) + +Help on function is_one_bit_mask in module ida_enum: + +is_one_bit_mask(*args) -> 'bool' + is_one_bit_mask(mask) -> bool + Is bitmask one bit? + + @param mask: (C++: bmask_t) + +Help on function set_bmask_cmt in module ida_enum: + +set_bmask_cmt(*args) -> 'bool' + set_bmask_cmt(id, bmask, cmt, repeatable) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param cmt: char const * + @param repeatable: bool + +Help on function set_bmask_name in module ida_enum: + +set_bmask_name(*args) -> 'bool' + set_bmask_name(id, bmask, name) -> bool + + @param id: enum_t + @param bmask: bmask_t + @param name: char const * + +Help on function set_enum_bf in module ida_enum: + +set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool + Set 'bitfield' bit of enum (i.e. convert it to a bitfield) + + @param id: (C++: enum_t) + @param bf: (C++: bool) + +Help on function set_enum_cmt in module ida_enum: + +set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool + Set comment for enum type. + + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_flag in module ida_enum: + +set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool + Set data representation flags. + + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) + +Help on function set_enum_fromtil in module ida_enum: + +set_enum_fromtil(*args) -> 'bool' + set_enum_fromtil(id, fromtil) -> bool + Specify that enum comes from a type library. + + @param id: (C++: enum_t) + @param fromtil: (C++: bool) + +Help on function set_enum_ghost in module ida_enum: + +set_enum_ghost(*args) -> 'bool' + set_enum_ghost(id, ghost) -> bool + Specify that enum is a ghost copy of a local type. + + @param id: (C++: enum_t) + @param ghost: (C++: bool) + +Help on function set_enum_hidden in module ida_enum: + +set_enum_hidden(*args) -> 'bool' + set_enum_hidden(id, hidden) -> bool + Collapse enum. + + @param id: (C++: enum_t) + @param hidden: (C++: bool) + +Help on function set_enum_idx in module ida_enum: + +set_enum_idx(*args) -> 'bool' + set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) + +Help on function set_enum_member_cmt in module ida_enum: + +set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool + Set comment for enum member. + + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_member_name in module ida_enum: + +set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool + Set name of enum member. + + @param id: (C++: const_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_name in module ida_enum: + +set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool + Set name of enum type. + + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_type_ordinal in module ida_enum: + +set_enum_type_ordinal(*args) -> 'void' + set_enum_type_ordinal(id, ord) + Set corresponding type ordinal number. + + @param id: (C++: enum_t) + @param ord: (C++: int32) + +Help on function set_enum_width in module ida_enum: + +set_enum_width(*args) -> 'bool' + set_enum_width(id, width) -> bool + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) + +Module "ida_expr"s docstring: +""" +Functions that deal with C-like expressions and built-in IDC language. + +Functions marked THREAD_SAFE may be called from any thread. No simultaneous +calls should be made for the same variable. We protect only global structures, +individual variables must be protected manually.""" + +Help on class _IdcFunction in module ida_expr: + +class _IdcFunction(builtins.object) + | Internal class that calls pyw_call_idc_func() with a context + | + | Methods defined here: + | + | __call__(self, args, res) + | Call self as a function. + | + | __init__(self, ctxptr) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fp_ptr + +Help on function add_idc_class in module ida_expr: + +add_idc_class(*args) -> 'idc_class_t *' + add_idc_class(name, super=None) -> idc_class_t * + Create a new IDC class. + + @param name: (C++: const char *) name of the new class + @param super: (C++: const idc_class_t *) the base class for the new class. if the new class is not based on + any other class, pass nullptr + @return: pointer to the created class. If such a class already exists, a pointer + to it will be returned. Pointers to other existing classes may be + invalidated by this call. + +Help on function add_idc_func in module ida_expr: + +add_idc_func(name, fp, args, defvals=(), flags=0) + Extends the IDC language by exposing a new IDC function that is backed up by a Python function + + Add an IDC function. This function does not modify the predefined kernel + functions. Example: + static error_t idaapi myfunc5(idc_value_t *argv, idc_value_t *res) + { + msg("myfunc is called with arg0=%a and arg1=%s\n", argv[0].num, argv[1].str); + res->num = 5; // let's return 5 + return eOk; + } + static const char myfunc5_args[] = { VT_LONG, VT_STR, 0 }; + static const ext_idcfunc_t myfunc_desc = { "MyFunc5", myfunc5, myfunc5_args, + nullptr, 0, EXTFUN_BASE }; + // after this: + add_idc_func(myfunc_desc); + // there is a new IDC function which can be called like this: + MyFunc5(0x123, "test"); + + @note: If the function already exists, it will be replaced by the new function + @return: success + +Help on function add_idc_gvar in module ida_expr: + +add_idc_gvar(*args) -> 'idc_value_t *' + add_idc_gvar(name) -> idc_value_t + Add global IDC variable. + + @param name: (C++: const char *) name of the global variable + @return: pointer to the created variable or existing variable. NB: the returned + pointer is valid until a new global var is added. + +Help on function compile_idc_file in module ida_expr: + +compile_idc_file(*args) -> 'qstring *' + compile_idc_file(nonnul_line) -> str + + @param nonnul_line: char const * + +Help on function compile_idc_snippet in module ida_expr: + +compile_idc_snippet(*args) -> 'qstring *' + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str + Compile text with IDC statements. + + @param func: (C++: const char *) name of the function to create out of the snippet + @param text: (C++: const char *) text to compile + @param resolver: (C++: idc_resolver_t *) callback object to get values of undefined variables This + object will be called if IDC function contains references to + undefined variables. May be nullptr. + @param only_safe_funcs: (C++: bool) if true, any calls to functions without EXTFUN_SAFE flag + will lead to a compilation error. + @retval true: ok + @retval false: error, see errbuf + +Help on function compile_idc_text in module ida_expr: + +compile_idc_text(*args) -> 'qstring *' + compile_idc_text(nonnul_line) -> str + + @param nonnul_line: char const * + +Help on function copy_idcv in module ida_expr: + +copy_idcv(*args) -> 'error_t' + copy_idcv(dst, src) -> error_t + Copy 'src' to 'dst'. For idc objects only a reference is copied. + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & + +Help on function create_idcv_ref in module ida_expr: + +create_idcv_ref(*args) -> 'bool' + create_idcv_ref(ref, v) -> bool + Create a variable reference. Currently only references to global variables can + be created. + + @param ref: (C++: idc_value_t *) ptr to the result + @param v: (C++: const idc_value_t *) variable to reference + @return: success + +Help on function deep_copy_idcv in module ida_expr: + +deep_copy_idcv(*args) -> 'error_t' + deep_copy_idcv(dst, src) -> error_t + Deep copy an IDC object. This function performs deep copy of idc objects. If + 'src' is not an object, copy_idcv() will be called + + @param dst: (C++: idc_value_t *) + @param src: (C++: const idc_value_t &) idc_value_t const & + +Help on function del_idc_func in module ida_expr: + +del_idc_func(name) + Unregisters the specified IDC function + + Delete an IDC function + +Help on function del_idcv_attr in module ida_expr: + +del_idcv_attr(*args) -> 'error_t' + del_idcv_attr(obj, attr) -> error_t + Delete an object attribute. + + @param obj: (C++: idc_value_t *) variable that holds an object reference + @param attr: (C++: const char *) attribute name + @return: error code, eOk on success + +Help on function deref_idcv in module ida_expr: + +deref_idcv(*args) -> 'idc_value_t *' + deref_idcv(v, vref_flags) -> idc_value_t + Dereference a VT_REF variable. + + @param v: (C++: idc_value_t *) variable to dereference + @param vref_flags: (C++: int) Dereference IDC variable flags + @return: pointer to the dereference result or nullptr. If returns nullptr, + qerrno is set to eExecBadRef "Illegal variable reference" + +Help on function eval_expr in module ida_expr: + +eval_expr(*args) -> 'qstring *' + eval_expr(rv, where, line) -> str + Compile and calculate an expression. + + @param rv: (C++: idc_value_t *) pointer to the result + @param where: (C++: ea_t) the current linear address in the addressing space of the program + being disassembled. If will be used to resolve names of local + variables etc. if not applicable, then should be BADADDR. + @param line: (C++: const char *) the expression to evaluate + @retval true: ok + @retval false: error, see errbuf + +Help on function eval_idc_expr in module ida_expr: + +eval_idc_expr(*args) -> 'qstring *' + eval_idc_expr(rv, where, line) -> str + Same as eval_expr(), but will always use the IDC interpreter regardless of the + currently installed extlang. + + @param rv: (C++: idc_value_t *) + @param where: (C++: ea_t) + @param line: char const * + +Help on function exec_idc_script in module ida_expr: + +exec_idc_script(*args) -> 'qstring *' + exec_idc_script(result, path, func, args, argsnum) -> str + Compile and execute IDC function(s) from file. + + @param result: (C++: idc_value_t *) ptr to idc_value_t to hold result of the function. If execution + fails, this variable will contain the exception information. You + may pass nullptr if you are not interested in the returned value. + @param path: (C++: const char *) text file containing text of IDC functions + @param func: (C++: const char *) function name to execute + @param args: (C++: const idc_value_t) array of parameters + @param argsnum: (C++: size_t) number of parameters to pass to 'fname' This number should be + equal to number of parameters the function expects. + @retval true: ok + @retval false: error, see errbuf + +Help on function exec_system_script in module ida_expr: + +exec_system_script(*args) -> 'bool' + exec_system_script(file, complain_if_no_file=True) -> bool + Compile and execute "main" function from system file. + + @param file: (C++: const char *) file name with IDC function(s). The file will be searched using + get_idc_filename(). + @param complain_if_no_file: (C++: bool) * 1: display warning if the file is not found + * 0: don't complain if file doesn't exist + @retval 1: ok, file is compiled and executed + @retval 0: failure, compilation or execution error, warning is displayed + +Help on function find_idc_class in module ida_expr: + +find_idc_class(*args) -> 'idc_class_t *' + find_idc_class(name) -> idc_class_t * + Find an existing IDC class by its name. + + @param name: (C++: const char *) name of the class + @return: pointer to the class or nullptr. The returned pointer is valid until a + new call to add_idc_class() + +Help on function find_idc_func in module ida_expr: + +find_idc_func(*args) -> 'qstring *' + find_idc_func(prefix, n=0) -> str + + @param prefix: char const * + @param n: int + +Help on function find_idc_gvar in module ida_expr: + +find_idc_gvar(*args) -> 'idc_value_t *' + find_idc_gvar(name) -> idc_value_t + Find an existing global IDC variable by its name. + + @param name: (C++: const char *) name of the global variable + @return: pointer to the variable or nullptr. NB: the returned pointer is valid + until a new global var is added. FIXME: it is difficult to use this + function in a thread safe manner + +Help on function first_idcv_attr in module ida_expr: + +first_idcv_attr(*args) -> 'char const *' + first_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * + +Help on function free_idcv in module ida_expr: + +free_idcv(*args) -> 'void' + free_idcv(v) + Free storage used by VT_STR/VT_OBJ IDC variables. After this call the variable + has a numeric value 0 + + @param v: (C++: idc_value_t *) + +Help on function get_idc_filename in module ida_expr: + +get_idc_filename(*args) -> 'char const *' + get_idc_filename(file) -> str + Get full name of IDC file name. Search for file in list of include directories, + IDCPATH directory and system directories. + + @param file: (C++: const char *) file name without full path + @return: nullptr is file not found. otherwise returns pointer to buf + +Help on function get_idcv_attr in module ida_expr: + +get_idcv_attr(*args) -> 'error_t' + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t + Get an object attribute. + + @param res: (C++: idc_value_t *) buffer for the attribute value + @param obj: (C++: const idc_value_t *) variable that holds an object reference. if obj is nullptr it + searches global variables, then user functions + @param attr: (C++: const char *) attribute name + @param may_use_getattr: (C++: bool) may call getattr functions to calculate the attribute if + it does not exist + @return: error code, eOk on success + +Help on function get_idcv_class_name in module ida_expr: + +get_idcv_class_name(*args) -> 'qstring *' + get_idcv_class_name(obj) -> str + Retrieves the IDC object class name. + + @param obj: (C++: const idc_value_t *) class instance variable + @return: error code, eOk on success + +Help on function get_idcv_slice in module ida_expr: + +get_idcv_slice(*args) -> 'error_t' + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t + Get slice. + + @param res: (C++: idc_value_t *) output variable that will contain the slice + @param v: (C++: const idc_value_t *) input variable (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk if success + +Help on class highlighter_cbs_t in module ida_expr: + +class highlighter_cbs_t(builtins.object) + | Proxy of C++ highlighter_cbs_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> highlighter_cbs_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_highlighter_cbs_t(...) + | delete_highlighter_cbs_t(self) + | + | cur_block_state(self, *args) -> 'int32' + | cur_block_state(self) -> int32 + | + | prev_block_state(self, *args) -> 'int32' + | prev_block_state(self) -> int32 + | + | set_block_state(self, *args) -> 'void' + | set_block_state(self, arg0) + | + | @param arg0: int32 + | + | set_style(self, *args) -> 'void' + | set_style(self, arg0, arg1, arg2) + | + | @param arg0: int32 + | @param arg1: int32 + | @param arg2: enum syntax_highlight_style + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class idc_global_t in module ida_expr: + +class idc_global_t(builtins.object) + | Proxy of C++ idc_global_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idc_global_t + | __init__(self, n) -> idc_global_t + | + | @param n: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idc_global_t(...) + | delete_idc_global_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | value + | value + +Help on class idc_value_t in module ida_expr: + +class idc_value_t(builtins.object) + | Proxy of C++ idc_value_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, n=0) -> idc_value_t + | + | @param n: sval_t + | + | __init__(self, r) -> idc_value_t + | + | @param r: idc_value_t const & + | + | __init__(self, _str) -> idc_value_t + | + | @param _str: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idc_value_t(...) + | delete_idc_value_t(self) + | + | _create_empty_string(self, *args) -> 'void' + | _create_empty_string(self) + | + | c_str(self, *args) -> 'char const *' + | c_str(self) -> char const * + | VT_STR + | + | clear(self, *args) -> 'void' + | clear(self) + | See free_idcv() + | + | create_empty_string(self, *args) -> 'void' + | create_empty_string(self) + | + | is_convertible(self, *args) -> 'bool' + | is_convertible(self) -> bool + | Convertible types are VT_LONG, VT_FLOAT, VT_INT64, and VT_STR. + | + | is_integral(self, *args) -> 'bool' + | is_integral(self) -> bool + | Does value represent a whole number? + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | Does value represent the integer 0? + | + | qstr(self, *args) -> 'qstring const &' + | qstr(self) -> qstring + | VT_STR + | qstr(self) -> qstring const & + | + | set_float(self, *args) -> 'void' + | set_float(self, f) + | + | @param f: fpvalue_t const & + | + | set_int64(self, *args) -> 'void' + | set_int64(self, v) + | + | @param v: int64 + | + | set_long(self, *args) -> 'void' + | set_long(self, v) + | + | @param v: sval_t + | + | set_pvoid(self, *args) -> 'void' + | set_pvoid(self, p) + | + | @param p: void * + | + | set_string(self, *args) -> 'void' + | set_string(self, _str, len) + | + | @param _str: char const * + | @param len: size_t + | + | set_string(self, _str) + | + | @param _str: char const * + | + | swap(self, *args) -> 'void' + | swap(self, v) + | Set this = r and v = this. + | + | @param v: (C++: idc_value_t &) + | + | u_str(self, *args) -> 'uchar const *' + | u_str(self) -> uchar const * + | VT_STR + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | e + | e + | + | funcidx + | funcidx + | + | i64 + | i64 + | + | num + | num + | + | obj + | obj + | + | pvoid + | pvoid + | + | reserve + | reserve + | + | str + | + | thisown + | The membership flag + | + | vtype + | vtype + +Help on class idc_values_t in module ida_expr: + +class idc_values_t(builtins.object) + | Proxy of C++ qvector< idc_value_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'idc_value_t const &' + | __getitem__(self, i) -> idc_value_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> idc_values_t + | __init__(self, x) -> idc_values_t + | + | @param x: qvector< idc_value_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: idc_value_t const & + | + | __swig_destroy__ = delete_idc_values_t(...) + | delete_idc_values_t(self) + | + | at(self, *args) -> 'idc_value_t const &' + | at(self, _idx) -> idc_value_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< idc_value_t >::const_iterator' + | begin(self) -> idc_value_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< idc_value_t >::const_iterator' + | end(self) -> idc_value_t + | + | erase(self, *args) -> 'qvector< idc_value_t >::iterator' + | erase(self, it) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | + | erase(self, first, last) -> idc_value_t + | + | @param first: qvector< idc_value_t >::iterator + | @param last: qvector< idc_value_t >::iterator + | + | extract(self, *args) -> 'idc_value_t *' + | extract(self) -> idc_value_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=idc_value_t()) + | + | @param x: idc_value_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: idc_value_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< idc_value_t >::iterator' + | insert(self, it, x) -> idc_value_t + | + | @param it: qvector< idc_value_t >::iterator + | @param x: idc_value_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'idc_value_t &' + | push_back(self, x) + | + | @param x: idc_value_t const & + | + | push_back(self) -> idc_value_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: idc_value_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< idc_value_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function idcv_float in module ida_expr: + +idcv_float(*args) -> 'error_t' + idcv_float(v) -> error_t + Convert IDC variable to a floating point. + + @param v: (C++: idc_value_t *) + +Help on function idcv_int64 in module ida_expr: + +idcv_int64(*args) -> 'error_t' + idcv_int64(v) -> error_t + Convert IDC variable to a 64bit number. + + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to int64 + +Help on function idcv_long in module ida_expr: + +idcv_long(*args) -> 'error_t' + idcv_long(v) -> error_t + Convert IDC variable to a long (32/64bit) number. + + @param v: (C++: idc_value_t *) + @return: v = 0 if impossible to convert to long + +Help on function idcv_num in module ida_expr: + +idcv_num(*args) -> 'error_t' + idcv_num(v) -> error_t + Convert IDC variable to a long number. + + @param v: (C++: idc_value_t *) + @return: * v = 0 if IDC variable = "false" string + * v = 1 if IDC variable = "true" string + * v = number if IDC variable is number or string containing a number + * eTypeConflict if IDC variable = empty string + +Help on function idcv_object in module ida_expr: + +idcv_object(*args) -> 'error_t' + idcv_object(v, icls=None) -> error_t + Create an IDC object. The original value of 'v' is discarded (freed). + + @param v: (C++: idc_value_t *) variable to hold the object. any previous value will be cleaned + @param icls: (C++: const idc_class_t *) ptr to the desired class. nullptr means "object" class this ptr + must be returned by add_idc_class() or find_idc_class() + @return: always eOk + +Help on function idcv_string in module ida_expr: + +idcv_string(*args) -> 'error_t' + idcv_string(v) -> error_t + Convert IDC variable to a text string. + + @param v: (C++: idc_value_t *) + +Help on function last_idcv_attr in module ida_expr: + +last_idcv_attr(*args) -> 'char const *' + last_idcv_attr(obj) -> char const * + + @param obj: idc_value_t const * + +Help on function move_idcv in module ida_expr: + +move_idcv(*args) -> 'error_t' + move_idcv(dst, src) -> error_t + Move 'src' to 'dst'. This function is more effective than copy_idcv since it + never copies big amounts of data. + + @param dst: (C++: idc_value_t *) + @param src: (C++: idc_value_t *) + +Help on function next_idcv_attr in module ida_expr: + +next_idcv_attr(*args) -> 'char const *' + next_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * + +Help on function prev_idcv_attr in module ida_expr: + +prev_idcv_attr(*args) -> 'char const *' + prev_idcv_attr(obj, attr) -> char const * + + @param obj: idc_value_t const * + @param attr: char const * + +Help on function print_idcv in module ida_expr: + +print_idcv(*args) -> 'qstring *' + print_idcv(v, name=None, indent=0) -> str + Get text representation of idc_value_t. + + @param v: (C++: const idc_value_t &) idc_value_t const & + @param name: (C++: const char *) char const * + @param indent: (C++: int) + +Help on function py_add_idc_func in module ida_expr: + +py_add_idc_func(*args) -> 'bool' + py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool + + @param name: char const * + @param fp_ptr: size_t + @param args: char const * + @param defvals: idc_values_t const & + @param flags: int + +Help on function py_get_call_idc_func in module ida_expr: + +py_get_call_idc_func(*args) -> 'size_t' + py_get_call_idc_func() -> size_t + +Help on function pyw_convert_defvals in module ida_expr: + +pyw_convert_defvals(*args) -> 'bool' + pyw_convert_defvals(out, py_seq) -> bool + + @param out: idc_values_t * + @param py_seq: PyObject * + +Help on function pyw_register_idc_func in module ida_expr: + +pyw_register_idc_func(*args) -> 'size_t' + pyw_register_idc_func(name, args, py_fp) -> size_t + + @param name: char const * + @param args: char const * + @param py_fp: PyObject * + +Help on function pyw_unregister_idc_func in module ida_expr: + +pyw_unregister_idc_func(*args) -> 'bool' + pyw_unregister_idc_func(ctxptr) -> bool + + @param ctxptr: size_t + +Help on function set_header_path in module ida_expr: + +set_header_path(*args) -> 'bool' + set_header_path(path, add) -> bool + Set or append a header path. IDA looks for the include files in the appended + header paths, then in the ida executable directory. + + @param path: (C++: const char *) list of directories to add (separated by ';') may be nullptr, in + this case nothing is added + @param add: (C++: bool) true: append. false: remove old paths. + @retval true: success + @retval false: no memory + +Help on function set_idcv_attr in module ida_expr: + +set_idcv_attr(*args) -> 'error_t' + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t + Set an object attribute. + + @param obj: (C++: idc_value_t *) variable that holds an object reference. if obj is nullptr then it + tries to modify a global variable with the attribute name + @param attr: (C++: const char *) attribute name + @param value: (C++: const idc_value_t &) new attribute value + @param may_use_setattr: (C++: bool) may call setattr functions for the class + @return: error code, eOk on success + +Help on function set_idcv_slice in module ida_expr: + +set_idcv_slice(*args) -> 'error_t' + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t + Set slice. + + @param v: (C++: idc_value_t *) variable to modify (string or object) + @param i1: (C++: uval_t) slice start index + @param i2: (C++: uval_t) slice end index (excluded) + @param in: (C++: const idc_value_t &) new value for the slice + @param flags: (C++: int) IDC variable slice flags or 0 + @return: eOk on success + +Help on function swap_idcvs in module ida_expr: + +swap_idcvs(*args) -> 'void' + swap_idcvs(v1, v2) + Swap 2 variables. + + @param v1: (C++: idc_value_t *) + @param v2: (C++: idc_value_t *) + +Help on function throw_idc_exception in module ida_expr: + +throw_idc_exception(*args) -> 'error_t' + throw_idc_exception(r, desc) -> error_t + Create an idc execution exception object. This helper function can be used to + return an exception from C++ code to IDC. In other words this function can be + called from idc_func_t() callbacks. Sample usage: if ( !ok ) return + throw_idc_exception(r, "detailed error msg"); + + @param r: (C++: idc_value_t *) object to hold the exception object + @param desc: (C++: const char *) exception description + @return: eExecThrow + +Module "ida_fixup"s docstring: +""" +Functions that deal with fixup information. + +A loader should setup fixup information using set_fixup().""" + +Help on function calc_fixup_size in module ida_fixup: + +calc_fixup_size(*args) -> 'int' + calc_fixup_size(type) -> int + Calculate size of fixup in bytes (the number of bytes the fixup patches) + @retval -1: means error + + @param type: (C++: fixup_type_t) + +Help on function contains_fixups in module ida_fixup: + +contains_fixups(*args) -> 'bool' + contains_fixups(ea, size) -> bool + Does the specified address range contain any fixup information? + + @param ea: (C++: ea_t) + @param size: (C++: asize_t) + +Help on function del_fixup in module ida_fixup: + +del_fixup(*args) -> 'void' + del_fixup(source) + Delete fixup information. + + @param source: (C++: ea_t) + +Help on function exists_fixup in module ida_fixup: + +exists_fixup(*args) -> 'bool' + exists_fixup(source) -> bool + Check that a fixup exists at the given address. + + @param source: (C++: ea_t) + +Help on function find_custom_fixup in module ida_fixup: + +find_custom_fixup(*args) -> 'fixup_type_t' + find_custom_fixup(name) -> fixup_type_t + Get id of a custom fixup handler. + + @param name: (C++: const char *) name of the custom fixup handler + @return: id with FIXUP_CUSTOM bit set or 0 + +Help on class fixup_data_t in module ida_fixup: + +class fixup_data_t(builtins.object) + | Proxy of C++ fixup_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> fixup_data_t + | __init__(self, type_, flags_=0) -> fixup_data_t + | + | @param type_: fixup_type_t + | @param flags_: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_fixup_data_t(...) + | delete_fixup_data_t(self) + | + | calc_size(self, *args) -> 'int' + | calc_size(self) -> int + | calc_fixup_size() + | + | clr_extdef(self, *args) -> 'void' + | clr_extdef(self) + | + | clr_unused(self, *args) -> 'void' + | clr_unused(self) + | + | get(self, *args) -> 'bool' + | get(self, source) -> bool + | get_fixup() + | + | @param source: (C++: ea_t) + | + | get_base(self, *args) -> 'ea_t' + | get_base(self) -> ea_t + | Get base of fixup. + | @note: The target is calculated as `get_base() + off`. + | @see: FIXUPF_REL + | + | get_desc(self, *args) -> 'char const *' + | get_desc(self, source) -> char const * + | get_fixup_desc() + | + | @param source: (C++: ea_t) + | + | get_flags(self, *args) -> 'uint32' + | get_flags(self) -> uint32 + | Fixup flags Fixup flags. + | + | get_handler(self, *args) -> 'fixup_handler_t const *' + | get_handler(self) -> fixup_handler_t const * + | get_fixup_handler() + | + | get_type(self, *args) -> 'fixup_type_t' + | get_type(self) -> fixup_type_t + | Fixup type Types of fixups. + | + | get_value(self, *args) -> 'uval_t' + | get_value(self, ea) -> uval_t + | get_fixup_value() + | + | @param ea: (C++: ea_t) + | + | has_base(self, *args) -> 'bool' + | has_base(self) -> bool + | Is fixup relative? + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | is_fixup_custom() + | + | is_extdef(self, *args) -> 'bool' + | is_extdef(self) -> bool + | + | is_unused(self, *args) -> 'bool' + | is_unused(self) -> bool + | + | patch_value(self, *args) -> 'bool' + | patch_value(self, ea) -> bool + | patch_fixup_value() + | + | @param ea: (C++: ea_t) + | + | set(self, *args) -> 'void' + | set(self, source) + | set_fixup() + | + | @param source: (C++: ea_t) + | + | set_base(self, *args) -> 'void' + | set_base(self, new_base) + | Set base of fixup. The target should be set before a call of this function. + | + | @param new_base: (C++: ea_t) + | + | set_extdef(self, *args) -> 'void' + | set_extdef(self) + | + | set_sel(self, *args) -> 'void' + | set_sel(self, seg) + | + | @param seg: segment_t const * + | + | set_target_sel(self, *args) -> 'void' + | set_target_sel(self) + | Set selector of fixup to the target. The target should be set before a call of + | this function. + | + | set_type(self, *args) -> 'void' + | set_type(self, type_) + | + | @param type_: fixup_type_t + | + | set_type_and_flags(self, *args) -> 'void' + | set_type_and_flags(self, type_, flags_=0) + | + | @param type_: fixup_type_t + | @param flags_: uint32 + | + | set_unused(self, *args) -> 'void' + | set_unused(self) + | + | was_created(self, *args) -> 'bool' + | was_created(self) -> bool + | Is fixup artificial? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | displacement + | displacement + | + | off + | off + | + | sel + | sel + | + | thisown + | The membership flag + +Help on class fixup_info_t in module ida_fixup: + +class fixup_info_t(builtins.object) + | Proxy of C++ fixup_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> fixup_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_fixup_info_t(...) + | delete_fixup_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | fd + | fd + | + | thisown + | The membership flag + +Help on function gen_fix_fixups in module ida_fixup: + +gen_fix_fixups(*args) -> 'void' + gen_fix_fixups(_from, to, size) + Relocate the bytes with fixup information once more (generic function). This + function may be called from loader_t::move_segm() if it suits the goal. If + loader_t::move_segm is not defined then this function will be called + automatically when moving segments or rebasing the entire program. Special + parameter values (from = BADADDR, size = 0, to = delta) are used when the + function is called from rebase_program(delta). + + @param from: (C++: ea_t) + @param to: (C++: ea_t) + @param size: (C++: asize_t) + +Help on function get_first_fixup_ea in module ida_fixup: + +get_first_fixup_ea(*args) -> 'ea_t' + get_first_fixup_ea() -> ea_t + Get the first address with fixup information + + @return: the first address with fixup information, or BADADDR + +Help on function get_fixup in module ida_fixup: + +get_fixup(*args) -> 'bool' + get_fixup(fd, source) -> bool + Get fixup information. + + @param fd: (C++: fixup_data_t *) + @param source: (C++: ea_t) + +Help on function get_fixup_desc in module ida_fixup: + +get_fixup_desc(*args) -> 'fixup_data_t const &' + get_fixup_desc(source, fd) -> str + Get FIXUP description comment. + + @param source: (C++: ea_t) + @param fd: (C++: const fixup_data_t &) fixup_data_t const & + +Help on function get_fixup_handler in module ida_fixup: + +get_fixup_handler(*args) -> 'fixup_handler_t const *' + get_fixup_handler(type) -> fixup_handler_t const * + Get handler of standard or custom fixup. + + @param type: (C++: fixup_type_t) + +Help on function get_fixup_value in module ida_fixup: + +get_fixup_value(*args) -> 'uval_t' + get_fixup_value(ea, type) -> uval_t + Get the operand value. This function get fixup bytes from data or an instruction + at `ea' and convert them to the operand value (maybe partially). It is opposite + in meaning to the `patch_fixup_value()`. For example, FIXUP_HI8 read a byte at + `ea' and shifts it left by 8 bits, or AArch64's custom fixup BRANCH26 get low 26 + bits of the insn at `ea' and shifts it left by 2 bits. This function is mainly + used to get a relocation addend. + + @param ea: (C++: ea_t) address to get fixup bytes from, the size of the fixup bytes depends + on the fixup type. + @see: fixup_handler_t::size + @param type: (C++: fixup_type_t) fixup type + @retval operand: value + +Help on function get_fixups in module ida_fixup: + +get_fixups(*args) -> 'bool' + get_fixups(out, ea, size) -> bool + + @param out: fixups_t * + @param ea: ea_t + @param size: asize_t + +Help on function get_next_fixup_ea in module ida_fixup: + +get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t + Find next address with fixup information + + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR + +Help on function get_prev_fixup_ea in module ida_fixup: + +get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t + Find previous address with fixup information + + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR + +Help on function handle_fixups_in_macro in module ida_fixup: + +handle_fixups_in_macro(*args) -> 'bool' + handle_fixups_in_macro(ri, ea, other, macro_reft_and_flags) -> bool + Handle two fixups in a macro. We often combine two instruction that load parts + of a value into one macro instruction. For example: + ARM: ADRP X0, #var@PAGE + ADD X0, X0, #var@PAGEOFF --> ADRL X0, var + MIPS: lui $v0, %hi(var) + addiu $v0, $v0, %lo(var) --> la $v0, var + When applying the fixups that fall inside such a macro, we should convert them + to one refinfo. This function does exactly that. It should be called from the + apply() callback of a custom fixup. + + @param ri: (C++: refinfo_t *) + @param ea: (C++: ea_t) + @param other: (C++: fixup_type_t) + @param macro_reft_and_flags: (C++: uint32) + @return: success ('false' means that RI was not changed) + +Help on function is_fixup_custom in module ida_fixup: + +is_fixup_custom(*args) -> 'bool' + is_fixup_custom(type) -> bool + Is fixup processed by processor module? + + @param type: (C++: fixup_type_t) + +Help on function patch_fixup_value in module ida_fixup: + +patch_fixup_value(*args) -> 'bool' + patch_fixup_value(ea, fd) -> bool + Patch the fixup bytes. This function updates data or an instruction at `ea' to + the fixup bytes. For example, FIXUP_HI8 updates a byte at `ea' to the high byte + of `fd->off', or AArch64's custom fixup BRANCH26 updates low 26 bits of the insn + at `ea' to the value of `fd->off' shifted right by 2. + + @param ea: (C++: ea_t) address where data are changed, the size of the changed data depends + on the fixup type. + @see: fixup_handler_t::size + @param fd: (C++: const fixup_data_t &) fixup data + @retval false: the fixup bytes do not fit (e.g. `fd->off' is greater than + 0xFFFFFFC for BRANCH26). The database is changed even in this + case. + +Help on function set_fixup in module ida_fixup: + +set_fixup(*args) -> 'void' + set_fixup(source, fd) + Set fixup information. You should fill fixup_data_t and call this function and + the kernel will remember information in the database. + + @param source: (C++: ea_t) the fixup source address, i.e. the address modified by the fixup + @param fd: (C++: const fixup_data_t &) fixup data + +Module "ida_fpro"s docstring: +""" +System independent counterparts of FILE* related functions from Clib. + +You should not use C standard I/O functions in your modules. The reason: Each +module compiled with Borland (and statically linked to Borland's library) will +host a copy of the FILE * information. + +So, if you open a file in the plugin and pass the handle to the kernel, the +kernel will not be able to use it. + +If you really need to use the standard functions, define +USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.""" + +Help on class qfile_t in module ida_fpro: + +class qfile_t(builtins.object) + | A helper class to work with FILE related functions. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, rhs) -> qfile_t + | + | @param rhs: qfile_t const & + | + | __init__(self, pycapsule=None) -> qfile_t + | + | @param pycapsule: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qfile_t(...) + | delete_qfile_t(self) + | + | close(self, *args) -> 'void' + | close(self) + | Closes the file + | + | filename(self, *args) -> 'PyObject *' + | filename(self) -> PyObject * + | + | flush(self, *args) -> 'int' + | flush(self) -> int + | + | get_byte(self, *args) -> 'PyObject *' + | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte + | + | get_fp(self, *args) -> 'FILE *' + | get_fp(self) -> FILE * + | + | gets(self, *args) -> 'PyObject *' + | gets(self, size) -> PyObject * + | Reads a line from the input file. Returns the read line or None + | + | @param size: int + | + | open(self, *args) -> 'bool' + | open(self, filename, mode) -> bool + | Opens a file + | + | @param filename: the file name + | @param mode: The mode string, ala fopen() style + | @return: Boolean + | + | opened(self, *args) -> 'bool' + | opened(self) -> bool + | Checks if the file is opened or not + | + | put_byte(self, *args) -> 'int' + | put_byte(self, chr) -> int + | Writes a single byte to the file + | + | @param chr: int + | + | puts(self, *args) -> 'int' + | puts(self, str) -> int + | + | @param str: char const * + | + | read(self, *args) -> 'PyObject *' + | read(self, size) -> PyObject * + | Reads from the file. Returns the buffer or None + | + | @param size: int + | + | readbytes(self, *args) -> 'PyObject *' + | readbytes(self, size, big_endian) -> PyObject * + | Similar to read() but it respect the endianness + | + | @param size: int + | @param big_endian: bool + | + | seek(self, *args) -> 'int' + | seek(self, offset, whence=SEEK_SET) -> int + | Set input source position + | + | @param offset: int64 + | @param whence: int + | @return: the new position (not 0 as fseek!) + | + | size(self, *args) -> 'int64' + | size(self) -> int64 + | + | tell(self, *args) -> 'int64' + | tell(self) -> int64 + | Returns the current position + | + | write(self, *args) -> 'int' + | write(self, py_buf) -> int + | Writes to the file. Returns 0 or the number of bytes written + | + | @param py_buf: PyObject * + | + | writebytes(self, *args) -> 'int' + | writebytes(self, py_buf, big_endian) -> int + | Similar to write() but it respect the endianness + | + | @param py_buf: PyObject * + | @param big_endian: bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | from_capsule(*args) -> 'qfile_t *' + | from_capsule(pycapsule) -> qfile_t + | + | @param pycapsule: PyObject * + | + | from_fp(*args) -> 'qfile_t *' + | from_fp(fp) -> qfile_t + | + | @param fp: FILE * + | + | tmpfile(*args) -> 'qfile_t *' + | tmpfile() -> qfile_t + | A static method to construct an instance using a temporary file + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __idc_cvt_id__ + | __idc_cvt_id__ + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function qfile_t_from_capsule in module ida_fpro: + +qfile_t_from_capsule(*args) -> 'qfile_t *' + qfile_t_from_capsule(pycapsule) -> qfile_t + + @param pycapsule: PyObject * + +Help on function qfile_t_from_fp in module ida_fpro: + +qfile_t_from_fp(*args) -> 'qfile_t *' + qfile_t_from_fp(fp) -> qfile_t + + @param fp: FILE * + +Help on function qfile_t_tmpfile in module ida_fpro: + +qfile_t_tmpfile(*args) -> 'qfile_t *' + qfile_t_tmpfile() -> qfile_t + +Module "ida_frame"s docstring: +""" +Routines to manipulate function stack frames, stack variables, register +variables and local labels. + +The frame is represented as a structure: ++------------------------------------------------+ + | function arguments | + +------------------------------------------------+ + | return address (isn't stored in func_t) | + +------------------------------------------------+ + | saved registers (SI, DI, etc - func_t::frregs) | + +------------------------------------------------+ <- typical BP + | | | + | | | func_t::fpd + | | | + | | <- real BP + | local variables (func_t::frsize) | + | | + | | + +------------------------------------------------+ <- SP + +To access the structure of a function frame, use: +* get_struc() (use func_t::frame as structure ID) +* get_frame(const func_t *pfn) +* get_frame(ea_t ea)""" + +Help on function add_auto_stkpnt in module ida_frame: + +add_auto_stkpnt(*args) -> 'bool' + add_auto_stkpnt(pfn, ea, delta) -> bool + Add automatic SP register change point. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address where SP changes. usually this is the end of the + instruction which modifies the stack pointer ( insn_t::ea+ + insn_t::size) + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success + +Help on function add_frame in module ida_frame: + +add_frame(*args) -> 'bool' + add_frame(pfn, frsize, frregs, argsize) -> bool + Add function frame. + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: sval_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments range which will be purged upon + return. this parameter is used for __stdcall and __pascal + calling conventions. for other calling conventions please pass + 0. + @retval 1: ok + @retval 0: failed (no function, frame already exists) + +Help on function add_regvar in module ida_frame: + +add_regvar(*args) -> 'int' + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int + Define a register variable. + + @param pfn: (C++: func_t *) function in which the definition will be created + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition will + be used + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: (C++: const char *) user-defined name for the register + @param cmt: (C++: const char *) comment for the definition + @return: Register variable error codes + +Help on function add_user_stkpnt in module ida_frame: + +add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool + Add user-defined SP register change point. + + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success + +Help on function build_stkvar_name in module ida_frame: + +build_stkvar_name(*args) -> 'qstring *' + build_stkvar_name(pfn, v) -> str + Build automatic stack variable name. + + @param pfn: (C++: const func_t *) pointer to function (can't be nullptr!) + @param v: (C++: sval_t) value of variable offset + @return: length of stack variable name or -1 + +Help on function build_stkvar_xrefs in module ida_frame: + +build_stkvar_xrefs(*args) -> 'void' + build_stkvar_xrefs(out, pfn, mptr) + Fill 'out' with a list of all the xrefs made from function 'pfn', to the + argument or variable 'mptr' in 'pfn's stack frame. + + @param out: (C++: xreflist_t *) the list of xrefs to fill. + @param pfn: (C++: func_t *) the function to scan. + @param mptr: (C++: const member_t *) the argument/variable in pfn's stack frame. + +Help on function calc_stkvar_struc_offset in module ida_frame: + +calc_stkvar_struc_offset(*args) -> 'ea_t' + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t + Calculate offset of stack variable in the frame structure. + + @param pfn: (C++: func_t *) pointer to function (can't be nullptr!) + @param insn: (C++: const insn_t &) the instruction + @param n: (C++: int) number of operand: (0..UA_MAXOP-1) -1 if error, return BADADDR + @return: BADADDR if some error (issue a warning if stack frame is bad) + +Help on function define_stkvar in module ida_frame: + +define_stkvar(*args) -> 'bool' + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool + Define/redefine a stack variable. + + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) variable name, nullptr means autogenerate a name + @param off: (C++: sval_t) offset of the stack variable in the frame. negative values denote + local variables, positive - function arguments. + @param flags: (C++: flags64_t) variable type flags (byte_flag() for a byte variable, for example) + @param ti: (C++: const opinfo_t *) additional type information (like offsets, structs, etc) + @param nbytes: (C++: asize_t) number of bytes occupied by the variable + @return: success + +Help on function del_frame in module ida_frame: + +del_frame(*args) -> 'bool' + del_frame(pfn) -> bool + Delete a function frame. + + @param pfn: (C++: func_t *) pointer to function structure + @return: success + +Help on function del_regvar in module ida_frame: + +del_regvar(*args) -> 'int' + del_regvar(pfn, ea1, ea2, canon) -> int + Delete a register variable definition. + + @param pfn: (C++: func_t *) function in question + @param ea1: (C++: ea_t) ,ea2: range of addresses within the function where the definition + holds + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @return: Register variable error codes + +Help on function del_stkpnt in module ida_frame: + +del_stkpnt(*args) -> 'bool' + del_stkpnt(pfn, ea) -> bool + Delete SP register change point. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: success + +Help on function delete_unreferenced_stkvars in module ida_frame: + +delete_unreferenced_stkvars(*args) -> 'int' + delete_unreferenced_stkvars(pfn) -> int + + @param pfn: func_t * + +Help on function delete_wrong_stkvar_ops in module ida_frame: + +delete_wrong_stkvar_ops(*args) -> 'int' + delete_wrong_stkvar_ops(pfn) -> int + + @param pfn: func_t * + +Help on function find_regvar in module ida_frame: + +find_regvar(*args) -> 'regvar_t *' + find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + Find a register variable definition. + + @param pfn: (C++: func_t *) function in question + @param ea1: ea_t + @param canon: (C++: const char *) name of a general register + @param canon: (C++: const char *) name of a general register + @param user: char const * + + @return: nullptr-not found, otherwise ptr to regvar_t + find_regvar(pfn, ea, canon) -> regvar_t + + @param pfn: func_t * + @param ea: ea_t + @param canon: char const * + +Help on function frame_off_args in module ida_frame: + +frame_off_args(*args) -> 'ea_t' + frame_off_args(pfn) -> ea_t + Get starting address of arguments section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function frame_off_lvars in module ida_frame: + +frame_off_lvars(*args) -> 'ea_t' + frame_off_lvars(pfn) -> ea_t + Get start address of local variables section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function frame_off_retaddr in module ida_frame: + +frame_off_retaddr(*args) -> 'ea_t' + frame_off_retaddr(pfn) -> ea_t + Get starting address of return address section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function frame_off_savregs in module ida_frame: + +frame_off_savregs(*args) -> 'ea_t' + frame_off_savregs(pfn) -> ea_t + Get starting address of saved registers section. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function free_regvar in module ida_frame: + +free_regvar(*args) -> 'void' + free_regvar(v) + + @param v: regvar_t * + +Help on function get_effective_spd in module ida_frame: + +get_effective_spd(*args) -> 'sval_t' + get_effective_spd(pfn, ea) -> sval_t + Get effective difference between the initial and current values of ESP. This + function returns the sp-diff used by the instruction. The difference between + get_spd() and get_effective_spd() is present only for instructions like "pop + [esp+N]": they modify sp and use the modified value. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 or the difference, usually a negative number + +Help on function get_frame in module ida_frame: + +get_frame(*args) -> 'struc_t *' + get_frame(pfn) -> struc_t + Get pointer to function frame. + + @param pfn: func_t const * + + get_frame(ea) -> struc_t * + + @param ea: ea_t + +Help on function get_frame_part in module ida_frame: + +get_frame_part(*args) -> 'void' + get_frame_part(range, pfn, part) + Get offsets of the frame part in the frame. + + @param range: (C++: range_t *) pointer to the output buffer with the frame part + start/end(exclusive) offsets, can't be nullptr + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + @param part: (C++: frame_part_t) frame part + +Help on function get_frame_retsize in module ida_frame: + +get_frame_retsize(*args) -> 'int' + get_frame_retsize(pfn) -> int + Get size of function return address. + + @param pfn: (C++: const func_t *) pointer to function structure, can't be nullptr + +Help on function get_frame_size in module ida_frame: + +get_frame_size(*args) -> 'asize_t' + get_frame_size(pfn) -> asize_t + Get full size of a function frame. This function takes into account size of + local variables + size of saved registers + size of return address + number of + purged bytes. The purged bytes correspond to the arguments of the functions with + __stdcall and __fastcall calling conventions. + + @param pfn: (C++: const func_t *) pointer to function structure, may be nullptr + @return: size of frame in bytes or zero + +Help on function get_func_by_frame in module ida_frame: + +get_func_by_frame(*args) -> 'ea_t' + get_func_by_frame(frame_id) -> ea_t + Get function by its frame id. + @warning: this function works only with databases created by IDA > 5.6 + + @param frame_id: (C++: tid_t) id of the function frame + @return: start address of the function or BADADDR + +Help on function get_min_spd_ea in module ida_frame: + +get_min_spd_ea(*args) -> 'ea_t' + get_min_spd_ea(pfn) -> ea_t + + @param pfn: func_t * + +Help on function get_sp_delta in module ida_frame: + +get_sp_delta(*args) -> 'sval_t' + get_sp_delta(pfn, ea) -> sval_t + Get modification of SP made at the specified location + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address + @return: 0 if the specified location doesn't contain a SP change point. + otherwise return delta of SP modification. + +Help on function get_spd in module ida_frame: + +get_spd(*args) -> 'sval_t' + get_spd(pfn, ea) -> sval_t + Get difference between the initial and current values of ESP. + + @param pfn: (C++: func_t *) pointer to function. may be nullptr. + @param ea: (C++: ea_t) linear address of an instruction + @return: 0 or the difference, usually a negative number. returns the sp-diff + before executing the instruction. + +Help on function get_stkvar in module ida_frame: + +get_stkvar(*args) -> 'PyObject *' + get_stkvar(insn, op, v) -> (member_t, int) or None + Get pointer to stack variable + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: reference to instruction operand + @param v: immediate value in the operand (usually op.addr) + @return: - None on failure + - tuple(member_t, actval) + where actval: actual value used to fetch stack variable + +Help on function has_regvar in module ida_frame: + +has_regvar(*args) -> 'bool' + has_regvar(pfn, ea) -> bool + Is there a register variable definition? + + @param pfn: (C++: func_t *) function in question + @param ea: (C++: ea_t) current address + +Help on function is_funcarg_off in module ida_frame: + +is_funcarg_off(*args) -> 'bool' + is_funcarg_off(pfn, frameoff) -> bool + + @param pfn: func_t const * + @param frameoff: uval_t + +Help on function lvar_off in module ida_frame: + +lvar_off(*args) -> 'sval_t' + lvar_off(pfn, frameoff) -> sval_t + + @param pfn: func_t const * + @param frameoff: uval_t + +Help on function recalc_spd in module ida_frame: + +recalc_spd(*args) -> 'bool' + recalc_spd(cur_ea) -> bool + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed + +Help on class regvar_t in module ida_frame: + +class regvar_t(ida_range.range_t) + | Proxy of C++ regvar_t class. + | + | Method resolution order: + | regvar_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regvar_t + | __init__(self, r) -> regvar_t + | + | @param r: regvar_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regvar_t(...) + | delete_regvar_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regvar_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | canon + | canon + | + | cmt + | cmt + | + | thisown + | The membership flag + | + | user + | user + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function rename_regvar in module ida_frame: + +rename_regvar(*args) -> 'int' + rename_regvar(pfn, v, user) -> int + Rename a register variable. + + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param user: (C++: const char *) new user-defined name for the register + @return: Register variable error codes + +Help on function set_frame_size in module ida_frame: + +set_frame_size(*args) -> 'bool' + set_frame_size(pfn, frsize, frregs, argsize) -> bool + Set size of function frame. Note: The returned size may not include all stack + arguments. It does so only for __stdcall and __fastcall calling conventions. To + get the entire frame size for all cases use get_struc_size(get_frame(pfn)). + + @param pfn: (C++: func_t *) pointer to function structure + @param frsize: (C++: asize_t) size of function local variables + @param frregs: (C++: ushort) size of saved registers + @param argsize: (C++: asize_t) size of function arguments that will be purged from the stack + upon return + @return: success + +Help on function set_purged in module ida_frame: + +set_purged(*args) -> 'bool' + set_purged(ea, nbytes, override_old_value) -> bool + Set the number of purged bytes for a function or data item (funcptr). This + function will update the database and plan to reanalyze items referencing the + specified address. It works only for processors with PR_PURGING bit in 16 and 32 + bit modes. + + @param ea: (C++: ea_t) address of the function of item + @param nbytes: (C++: int) number of purged bytes + @param override_old_value: (C++: bool) may overwrite old information about purged bytes + @return: success + +Help on function set_regvar_cmt in module ida_frame: + +set_regvar_cmt(*args) -> 'int' + set_regvar_cmt(pfn, v, cmt) -> int + Set comment for a register variable. + + @param pfn: (C++: func_t *) function in question + @param v: (C++: regvar_t *) variable to rename + @param cmt: (C++: const char *) new comment + @return: Register variable error codes + +Help on function soff_to_fpoff in module ida_frame: + +soff_to_fpoff(*args) -> 'sval_t' + soff_to_fpoff(pfn, soff) -> sval_t + Convert struct offsets into fp-relative offsets. This function converts the + offsets inside the struc_t object into the frame pointer offsets (for example, + EBP-relative). + + @param pfn: (C++: func_t *) + @param soff: (C++: uval_t) + +Help on class stkpnt_t in module ida_frame: + +class stkpnt_t(builtins.object) + | Proxy of C++ stkpnt_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __init__(self, *args) + | __init__(self) -> stkpnt_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: stkpnt_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkpnt_t(...) + | delete_stkpnt_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: stkpnt_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | spd + | spd + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class stkpnts_t in module ida_frame: + +class stkpnts_t(builtins.object) + | Proxy of C++ stkpnts_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __init__(self, *args) + | __init__(self) -> stkpnts_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: stkpnts_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkpnts_t(...) + | delete_stkpnts_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: stkpnts_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function update_fpd in module ida_frame: + +update_fpd(*args) -> 'bool' + update_fpd(pfn, fpd) -> bool + Update frame pointer delta. + + @param pfn: (C++: func_t *) pointer to function structure + @param fpd: (C++: asize_t) new fpd value. cannot be bigger than the local variable range size. + @return: success + +Help on class xreflist_entry_t in module ida_frame: + +class xreflist_entry_t(builtins.object) + | Proxy of C++ xreflist_entry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __init__(self, *args) + | __init__(self) -> xreflist_entry_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: xreflist_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_xreflist_entry_t(...) + | delete_xreflist_entry_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: xreflist_entry_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | opnum + | opnum + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class xreflist_t in module ida_frame: + +class xreflist_t(builtins.object) + | Proxy of C++ qvector< xreflist_entry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & + | + | __getitem__(self, *args) -> 'xreflist_entry_t const &' + | __getitem__(self, i) -> xreflist_entry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> xreflist_t + | __init__(self, x) -> xreflist_t + | + | @param x: qvector< xreflist_entry_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< xreflist_entry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: xreflist_entry_t const & + | + | __swig_destroy__ = delete_xreflist_t(...) + | delete_xreflist_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: xreflist_entry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: xreflist_entry_t const & + | + | at(self, *args) -> 'xreflist_entry_t const &' + | at(self, _idx) -> xreflist_entry_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' + | begin(self) -> xreflist_entry_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' + | end(self) -> xreflist_entry_t + | + | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' + | erase(self, it) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | + | erase(self, first, last) -> xreflist_entry_t + | + | @param first: qvector< xreflist_entry_t >::iterator + | @param last: qvector< xreflist_entry_t >::iterator + | + | extract(self, *args) -> 'xreflist_entry_t *' + | extract(self) -> xreflist_entry_t + | + | find(self, *args) -> 'qvector< xreflist_entry_t >::const_iterator' + | find(self, x) -> xreflist_entry_t + | + | @param x: xreflist_entry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=xreflist_entry_t()) + | + | @param x: xreflist_entry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: xreflist_entry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: xreflist_entry_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' + | insert(self, it, x) -> xreflist_entry_t + | + | @param it: qvector< xreflist_entry_t >::iterator + | @param x: xreflist_entry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'xreflist_entry_t &' + | push_back(self, x) + | + | @param x: xreflist_entry_t const & + | + | push_back(self) -> xreflist_entry_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: xreflist_entry_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< xreflist_entry_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_funcs"s docstring: +""" +Routines for working with functions within the disassembled program. + +This file also contains routines for working with library signatures (e.g. +FLIRT). + +Each function consists of function chunks. At least one function chunk must be +present in the function definition - the function entry chunk. Other chunks are +called function tails. There may be several of them for a function. + +A function tail is a continuous range of addresses. It can be used in the +definition of one or more functions. One function using the tail is singled out +and called the tail owner. This function is considered as 'possessing' the tail. +get_func() on a tail address will return the function possessing the tail. You +can enumerate the functions using the tail by using func_parent_iterator_t. + +Each function chunk in the disassembly is represented as an "range" (a range of +addresses, see range.hpp for details) with characteristics. + +A function entry must start with an instruction (code) byte.""" + +Help on function add_func in module ida_funcs: + +add_func(*args) -> 'bool' + add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success + +Help on function add_func_ex in module ida_funcs: + +add_func_ex(*args) -> 'bool' + add_func_ex(pfn) -> bool + Add a new function. If the fn->end_ea is BADADDR, then IDA will try to determine + the function bounds by calling find_func_bounds(..., FIND_FUNC_DEFINE). + + @param pfn: (C++: func_t *) ptr to filled function structure + @return: success + +Help on function add_regarg in module ida_funcs: + +add_regarg(*args) -> 'void' + add_regarg(pfn, reg, tif, name) + + @param pfn: func_t * + @param reg: int + @param tif: tinfo_t const & + @param name: char const * + +Help on function append_func_tail in module ida_funcs: + +append_func_tail(*args) -> 'bool' + append_func_tail(pfn, ea1, ea2) -> bool + Append a new tail chunk to the function definition. If the tail already exists, + then it will simply be added to the function tail list Otherwise a new tail will + be created and its owner will be set to be our function If a new tail cannot be + created, then this function will fail. + + @param pfn: (C++: func_t *) pointer to the function + @param ea1: (C++: ea_t) start of the tail. If a tail already exists at the specified address + it must start at 'ea1' + @param ea2: (C++: ea_t) end of the tail. If a tail already exists at the specified address + it must end at 'ea2'. If specified as BADADDR, IDA will determine + the end address itself. + +Help on function apply_idasgn_to in module ida_funcs: + +apply_idasgn_to(*args) -> 'int' + apply_idasgn_to(signame, ea, is_startup) -> int + Apply a signature file to the specified address. + + @param signame: (C++: const char *) short name of signature file (the file name without path) + @param ea: (C++: ea_t) address to apply the signature + @param is_startup: (C++: bool) if set, then the signature is treated as a startup one for + startup signature ida doesn't rename the first function of + the applied module. + @return: Library function codes + +Help on function apply_startup_sig in module ida_funcs: + +apply_startup_sig(*args) -> 'bool' + apply_startup_sig(ea, startup) -> bool + Apply a startup signature file to the specified address. + + @param ea: (C++: ea_t) address to apply the signature to; usually idainfo::start_ea + @param startup: (C++: const char *) the name of the signature file without path and extension + @return: true if successfully applied the signature + +Help on function calc_func_size in module ida_funcs: + +calc_func_size(*args) -> 'asize_t' + calc_func_size(pfn) -> asize_t + Calculate function size. This function takes into account all fragments of the + function. + + @param pfn: (C++: func_t *) ptr to function structure + +Help on function calc_idasgn_state in module ida_funcs: + +calc_idasgn_state(*args) -> 'int' + calc_idasgn_state(n) -> int + Get state of a signature in the list of planned signatures + + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: state of signature or IDASGN_BADARG + +Help on function calc_thunk_func_target in module ida_funcs: + +calc_thunk_func_target(*args) + calc_thunk_func_target(pfn) -> ea_t + Calculate target of a thunk function. + + @param pfn: (C++: func_t *) pointer to function (may not be nullptr) + @return: the target function or BADADDR + +Help on function del_func in module ida_funcs: + +del_func(*args) -> 'bool' + del_func(ea) -> bool + Delete a function. + + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success + +Help on function del_idasgn in module ida_funcs: + +del_idasgn(*args) -> 'int' + del_idasgn(n) -> int + Remove signature from the list of planned signatures. + + @param n: (C++: int) number of signature in the list (0..get_idasgn_qty()-1) + @return: IDASGN_OK, IDASGN_BADARG, IDASGN_APPLIED + +Help on class dyn_ea_array in module ida_funcs: + +class dyn_ea_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< ea_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | + | @param _data: unsigned-ea-like-numeric-type *↗ + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_dyn_ea_array(...) + | delete_dyn_ea_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_range_array in module ida_funcs: + +class dyn_range_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< range_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | + | @param _data: range_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | __swig_destroy__ = delete_dyn_range_array(...) + | delete_dyn_range_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regarg_array in module ida_funcs: + +class dyn_regarg_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regarg_t const &' + | __getitem__(self, i) -> regarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | + | @param _data: regarg_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regarg_t const & + | + | __swig_destroy__ = delete_dyn_regarg_array(...) + | delete_dyn_regarg_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_regvar_array in module ida_funcs: + +class dyn_regvar_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< regvar_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regvar_t const &' + | __getitem__(self, i) -> regvar_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | + | @param _data: regvar_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regvar_t const & + | + | __swig_destroy__ = delete_dyn_regvar_array(...) + | delete_dyn_regvar_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class dyn_stkpnt_array in module ida_funcs: + +class dyn_stkpnt_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< stkpnt_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'stkpnt_t const &' + | __getitem__(self, i) -> stkpnt_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | + | @param _data: stkpnt_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: stkpnt_t const & + | + | __swig_destroy__ = delete_dyn_stkpnt_array(...) + | delete_dyn_stkpnt_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on function f_any in module ida_funcs: + +f_any(*args) -> 'bool' + f_any(arg1, arg2) -> bool + Helper function to accept any address. + + @param arg1: flags64_t + @param arg2: void * + +Help on function find_func_bounds in module ida_funcs: + +find_func_bounds(*args) -> 'int' + find_func_bounds(nfn, flags) -> int + Determine the boundaries of a new function. This function tries to find the + start and end addresses of a new function. It calls the module with + processor_t::func_bounds in order to fine tune the function boundaries. + + @param nfn: (C++: func_t *) structure to fill with information \ nfn->start_ea points to the + start address of the new function. + @param flags: (C++: int) Find function bounds flags + @return: Find function bounds result codes + +Help on function free_regarg in module ida_funcs: + +free_regarg(*args) -> 'void' + free_regarg(v) + + @param v: regarg_t * + +Help on function func_contains in module ida_funcs: + +func_contains(*args) -> 'bool' + func_contains(pfn, ea) -> bool + Does the given function contain the given address? + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) + +Help on function func_does_return in module ida_funcs: + +func_does_return(*args) -> 'bool' + func_does_return(callee) -> bool + Does the function return?. To calculate the answer, FUNC_NORET flag and + is_noret() are consulted The latter is required for imported functions in the + .idata section. Since in .idata we have only function pointers but not + functions, we have to introduce a special flag for them. + + @param callee: (C++: ea_t) + +Help on class func_item_iterator_t in module ida_funcs: + +class func_item_iterator_t(builtins.object) + | Proxy of C++ func_item_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_item_iterator_t + | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | + | @param pfn: func_t * + | @param _ea: ea_t + | + | __iter__(self) + | Provide an iterator on code items + | + | __next__(self, *args) -> 'bool' + | __next__(self, func) -> bool + | + | @param func: testf_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_item_iterator_t(...) + | delete_func_item_iterator_t(self) + | + | addresses(self) + | Provide an iterator on addresses contained within the function + | + | chunk(self, *args) -> 'range_t const &' + | chunk(self) -> range_t + | + | code_items(self) + | Provide an iterator on code items contained within the function + | + | current(self, *args) -> 'ea_t' + | current(self) -> ea_t + | + | data_items(self) + | Provide an iterator on data items contained within the function + | + | decode_preceding_insn(self, *args) -> 'bool' + | decode_preceding_insn(self, visited, p_farref, out) -> bool + | + | @param visited: eavec_t * + | @param p_farref: bool * + | @param out: insn_t * + | + | decode_prev_insn(self, *args) -> 'bool' + | decode_prev_insn(self, out) -> bool + | + | @param out: insn_t * + | + | first(self, *args) -> 'bool' + | first(self) -> bool + | + | head_items(self) + | Provide an iterator on item heads contained within the function + | + | last(self, *args) -> 'bool' + | last(self) -> bool + | + | next = __next__(self, *args) -> 'bool' + | + | next_addr(self, *args) -> 'bool' + | next_addr(self) -> bool + | + | next_code(self, *args) -> 'bool' + | next_code(self) -> bool + | + | next_data(self, *args) -> 'bool' + | next_data(self) -> bool + | + | next_head(self, *args) -> 'bool' + | next_head(self) -> bool + | + | next_not_tail(self, *args) -> 'bool' + | next_not_tail(self) -> bool + | + | not_tails(self) + | Provide an iterator on non-tail addresses contained within the function + | + | prev(self, *args) -> 'bool' + | prev(self, func) -> bool + | + | @param func: testf_t * + | + | prev_addr(self, *args) -> 'bool' + | prev_addr(self) -> bool + | + | prev_code(self, *args) -> 'bool' + | prev_code(self) -> bool + | + | prev_data(self, *args) -> 'bool' + | prev_data(self) -> bool + | + | prev_head(self, *args) -> 'bool' + | prev_head(self) -> bool + | + | prev_not_tail(self, *args) -> 'bool' + | prev_not_tail(self) -> bool + | + | set(self, *args) -> 'bool' + | set(self, pfn, _ea=BADADDR) -> bool + | Set a function range. if pfn == nullptr then a segment range will be set. + | + | @param pfn: (C++: func_t *) + | @param _ea: (C++: ea_t) + | + | set_range(self, *args) -> 'bool' + | set_range(self, ea1, ea2) -> bool + | Set an arbitrary range. + | + | @param ea1: (C++: ea_t) + | @param ea2: (C++: ea_t) + | + | succ(self, *args) -> 'bool' + | succ(self, func) -> bool + | Similar to next(), but succ() iterates the chunks from low to high addresses, + | while next() iterates through chunks starting at the function entry chunk + | + | @param func: (C++: testf_t *) + | + | succ_code(self, *args) -> 'bool' + | succ_code(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function func_parent_iterator_set in module ida_funcs: + +func_parent_iterator_set(*args) -> 'bool' + func_parent_iterator_set(fpi, pfn) -> bool + + @param fpi: func_parent_iterator_t * + @param pfn: func_t * + +Help on class func_parent_iterator_t in module ida_funcs: + +class func_parent_iterator_t(builtins.object) + | Proxy of C++ func_parent_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_parent_iterator_t + | __init__(self, _fnt) -> func_parent_iterator_t + | + | @param _fnt: func_t * + | + | __iter__(self) + | Provide an iterator on function parents + | + | __next__(self, *args) -> 'bool' + | __next__(self) -> bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_parent_iterator_t(...) + | delete_func_parent_iterator_t(self) + | + | first(self, *args) -> 'bool' + | first(self) -> bool + | + | last(self, *args) -> 'bool' + | last(self) -> bool + | + | next = __next__(self, *args) -> 'bool' + | + | parent(self, *args) -> 'ea_t' + | parent(self) -> ea_t + | + | prev(self, *args) -> 'bool' + | prev(self) -> bool + | + | reset_fnt(self, *args) -> 'void' + | reset_fnt(self, _fnt) + | + | @param _fnt: func_t * + | + | set(self, *args) -> 'bool' + | set(self, _fnt) -> bool + | + | @param _fnt: func_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class func_t in module ida_funcs: + +class func_t(ida_range.range_t) + | Proxy of C++ func_t class. + | + | Method resolution order: + | func_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __get_points__(self, *args) -> 'dynamic_wrapped_array_t< stkpnt_t >' + | __get_points__(self) -> dyn_stkpnt_array + | + | __get_referers__(self, *args) -> 'dynamic_wrapped_array_t< ea_t >' + | __get_referers__(self) -> dyn_ea_array + | + | __get_regargs__(self, *args) -> 'dynamic_wrapped_array_t< regarg_t >' + | __get_regargs__(self) -> dyn_regarg_array + | + | __get_regvars__(self, *args) -> 'dynamic_wrapped_array_t< regvar_t >' + | __get_regvars__(self) -> dyn_regvar_array + | + | __get_tails__(self, *args) -> 'dynamic_wrapped_array_t< range_t >' + | __get_tails__(self) -> dyn_range_array + | + | __init__(self, *args) + | __init__(self, start=0, end=0, f=0) -> func_t + | + | @param start: ea_t + | @param end: ea_t + | @param f: flags64_t + | + | __iter__(self) + | Alias for func_item_iterator_t(self).__iter__() + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_t(...) + | delete_func_t(self) + | + | addresses(self) + | Alias for func_item_iterator_t(self).addresses() + | + | analyzed_sp(self, *args) -> 'bool' + | analyzed_sp(self) -> bool + | Has SP-analysis been performed? + | + | code_items(self) + | Alias for func_item_iterator_t(self).code_items() + | + | data_items(self) + | Alias for func_item_iterator_t(self).data_items() + | + | does_return(self, *args) -> 'bool' + | does_return(self) -> bool + | Does function return? + | + | head_items(self) + | Alias for func_item_iterator_t(self).head_items() + | + | is_far(self, *args) -> 'bool' + | is_far(self) -> bool + | Is a far function? + | + | need_prolog_analysis(self, *args) -> 'bool' + | need_prolog_analysis(self) -> bool + | Needs prolog analysis? + | + | not_tails(self) + | Alias for func_item_iterator_t(self).not_tails() + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | argsize + | argsize + | + | color + | color + | + | flags + | flags + | + | fpd + | fpd + | + | frame + | frame + | + | frregs + | frregs + | + | frsize + | frsize + | + | owner + | owner + | + | pntqty + | pntqty + | + | points + | __get_points__(self) -> dyn_stkpnt_array + | + | referers + | __get_referers__(self) -> dyn_ea_array + | + | refqty + | refqty + | + | regargqty + | regargqty + | + | regargs + | __get_regargs__(self) -> dyn_regarg_array + | + | regvarqty + | regvarqty + | + | regvars + | __get_regvars__(self) -> dyn_regvar_array + | + | tailqty + | tailqty + | + | tails + | __get_tails__(self) -> dyn_range_array + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function func_t__from_ptrval__ in module ida_funcs: + +func_t__from_ptrval__(*args) -> 'func_t *' + func_t__from_ptrval__(ptrval) -> func_t + + @param ptrval: size_t + +Help on function func_tail_iterator_set in module ida_funcs: + +func_tail_iterator_set(*args) -> 'bool' + func_tail_iterator_set(fti, pfn, ea) -> bool + + @param fti: func_tail_iterator_t * + @param pfn: func_t * + @param ea: ea_t + +Help on function func_tail_iterator_set_ea in module ida_funcs: + +func_tail_iterator_set_ea(*args) -> 'bool' + func_tail_iterator_set_ea(fti, ea) -> bool + + @param fti: func_tail_iterator_t * + @param ea: ea_t + +Help on class func_tail_iterator_t in module ida_funcs: + +class func_tail_iterator_t(builtins.object) + | Proxy of C++ func_tail_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_tail_iterator_t + | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | __iter__(self) + | Provide an iterator on function tails + | + | __next__(self, *args) -> 'bool' + | __next__(self) -> bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_tail_iterator_t(...) + | delete_func_tail_iterator_t(self) + | + | chunk(self, *args) -> 'range_t const &' + | chunk(self) -> range_t + | + | first(self, *args) -> 'bool' + | first(self) -> bool + | + | last(self, *args) -> 'bool' + | last(self) -> bool + | + | main(self, *args) -> 'bool' + | main(self) -> bool + | + | next = __next__(self, *args) -> 'bool' + | + | prev(self, *args) -> 'bool' + | prev(self) -> bool + | + | set(self, *args) -> 'bool' + | set(self, _pfn, ea=BADADDR) -> bool + | + | @param _pfn: func_t * + | @param ea: ea_t + | + | set_ea(self, *args) -> 'bool' + | set_ea(self, ea) -> bool + | + | @param ea: ea_t + | + | set_range(self, *args) -> 'bool' + | set_range(self, ea1, ea2) -> bool + | + | @param ea1: ea_t + | @param ea2: ea_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_current_idasgn in module ida_funcs: + +get_current_idasgn(*args) -> 'int' + get_current_idasgn() -> int + Get number of the the current signature. + + @return: 0..n-1 + +Help on function get_fchunk in module ida_funcs: + +get_fchunk(*args) -> 'func_t *' + get_fchunk(ea) -> func_t + Get pointer to function chunk structure by address. + + @param ea: (C++: ea_t) any address in a function chunk + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. + +Help on function get_fchunk_num in module ida_funcs: + +get_fchunk_num(*args) -> 'int' + get_fchunk_num(ea) -> int + Get ordinal number of a function chunk in the global list of function chunks. + + @param ea: (C++: ea_t) any address in the function chunk + @return: number of function chunk (0..get_fchunk_qty()-1). -1 means 'no function + chunk at the specified address'. + +Help on function get_fchunk_qty in module ida_funcs: + +get_fchunk_qty(*args) -> 'size_t' + get_fchunk_qty() -> size_t + Get total number of function chunks in the program. + +Help on function get_fchunk_referer in module ida_funcs: + +get_fchunk_referer(*args) -> 'ea_t' + get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t + +Help on function get_func in module ida_funcs: + +get_func(*args) -> 'func_t *' + get_func(ea) -> func_t + Get pointer to function structure by address. + + @param ea: (C++: ea_t) any address in a function + @return: ptr to a function or nullptr. This function returns a function entry + chunk. + +Help on function get_func_bitness in module ida_funcs: + +get_func_bitness(*args) -> 'int' + get_func_bitness(pfn) -> int + Get function bitness (which is equal to the function segment bitness). + pfn==nullptr => returns 0 + @retval 0: 16 + @retval 1: 32 + @retval 2: 64 + + @param pfn: (C++: const func_t *) func_t const * + +Help on function get_func_bits in module ida_funcs: + +get_func_bits(*args) -> 'int' + get_func_bits(pfn) -> int + Get number of bits in the function addressing. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function get_func_bytes in module ida_funcs: + +get_func_bytes(*args) -> 'int' + get_func_bytes(pfn) -> int + Get number of bytes in the function addressing. + + @param pfn: (C++: const func_t *) func_t const * + +Help on function get_func_chunknum in module ida_funcs: + +get_func_chunknum(*args) -> 'int' + get_func_chunknum(pfn, ea) -> int + Get the containing tail chunk of 'ea'. + @retval -1: means 'does not contain ea' + @retval 0: means the 'pfn' itself contains ea + @retval >0: the number of the containing function tail chunk + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) + +Help on function get_func_cmt in module ida_funcs: + +get_func_cmt(*args) -> 'qstring *' + get_func_cmt(pfn, repeatable) -> str + Get function comment. + + @param pfn: (C++: const func_t *) ptr to function structure + @param repeatable: (C++: bool) get repeatable comment? + @return: size of comment or -1 In fact this function works with function chunks + too. + +Help on function get_func_name in module ida_funcs: + +get_func_name(*args) -> 'qstring *' + get_func_name(ea) -> str + Get function name. + + @param ea: (C++: ea_t) any address in the function + @return: length of the function name + +Help on function get_func_num in module ida_funcs: + +get_func_num(*args) -> 'int' + get_func_num(ea) -> int + Get ordinal number of a function. + + @param ea: (C++: ea_t) any address in the function + @return: number of function (0..get_func_qty()-1). -1 means 'no function at the + specified address'. + +Help on function get_func_qty in module ida_funcs: + +get_func_qty(*args) -> 'size_t' + get_func_qty() -> size_t + Get total number of functions in the program. + +Help on function get_func_ranges in module ida_funcs: + +get_func_ranges(*args) -> 'ea_t' + get_func_ranges(ranges, pfn) -> ea_t + Get function ranges. + + @param ranges: (C++: rangeset_t *) buffer to receive the range info + @param pfn: (C++: func_t *) ptr to function structure + @return: end address of the last function range (BADADDR-error) + +Help on function get_idasgn_desc in module ida_funcs: + +get_idasgn_desc(*args) -> 'PyObject *' + get_idasgn_desc(n) -> (str, str) + Get information about a signature in the list. + It returns: (name of signature, names of optional libraries) + + See also: get_idasgn_desc_with_matches + + @param n: number of signature in the list (0..get_idasgn_qty()-1) + @return: None on failure or tuple(signame, optlibs) + +Help on function get_idasgn_desc_with_matches in module ida_funcs: + +get_idasgn_desc_with_matches(*args) -> 'PyObject *' + get_idasgn_desc_with_matches(n) -> (str, str, int) + Get information about a signature in the list. + It returns: (name of signature, names of optional libraries, number of matches) + + @param n: number of signature in the list (0..get_idasgn_qty()-1) + @return: None on failure or tuple(signame, optlibs, nmatches) + +Help on function get_idasgn_qty in module ida_funcs: + +get_idasgn_qty(*args) -> 'int' + get_idasgn_qty() -> int + Get number of signatures in the list of planned and applied signatures. + + @return: 0..n + +Help on function get_idasgn_title in module ida_funcs: + +get_idasgn_title(*args) -> 'qstring *' + get_idasgn_title(name) -> str + Get full description of the signature by its short name. + + @param name: (C++: const char *) short name of a signature + @return: size of signature description or -1 + +Help on function get_next_fchunk in module ida_funcs: + +get_next_fchunk(*args) -> 'func_t *' + get_next_fchunk(ea) -> func_t + Get pointer to the next function chunk in the global list. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if next function chunk doesn't exist + +Help on function get_next_func in module ida_funcs: + +get_next_func(*args) -> 'func_t *' + get_next_func(ea) -> func_t + Get pointer to the next function. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if next function doesn't exist + +Help on function get_next_func_addr in module ida_funcs: + +get_next_func_addr(*args) -> 'ea_t' + get_next_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t + +Help on function get_prev_fchunk in module ida_funcs: + +get_prev_fchunk(*args) -> 'func_t *' + get_prev_fchunk(ea) -> func_t + Get pointer to the previous function chunk in the global list. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function chunk or nullptr if previous function chunk doesn't + exist + +Help on function get_prev_func in module ida_funcs: + +get_prev_func(*args) -> 'func_t *' + get_prev_func(ea) -> func_t + Get pointer to the previous function. + + @param ea: (C++: ea_t) any address in the program + @return: ptr to function or nullptr if previous function doesn't exist + +Help on function get_prev_func_addr in module ida_funcs: + +get_prev_func_addr(*args) -> 'ea_t' + get_prev_func_addr(pfn, ea) -> ea_t + + @param pfn: func_t * + @param ea: ea_t + +Help on function getn_fchunk in module ida_funcs: + +getn_fchunk(*args) -> 'func_t *' + getn_fchunk(n) -> func_t + Get pointer to function chunk structure by number. + + @param n: (C++: int) number of function chunk, is in range 0..get_fchunk_qty()-1 + @return: ptr to a function chunk or nullptr. This function may return a function + entry as well as a function tail. + +Help on function getn_func in module ida_funcs: + +getn_func(*args) -> 'func_t *' + getn_func(n) -> func_t + Get pointer to function structure by number. + + @param n: (C++: size_t) number of function, is in range 0..get_func_qty()-1 + @return: ptr to a function or nullptr. This function returns a function entry + chunk. + +Help on function is_finally_visible_func in module ida_funcs: + +is_finally_visible_func(*args) -> 'bool' + is_finally_visible_func(pfn) -> bool + Is the function visible (event after considering SCF_SHHID_FUNC)? + + @param pfn: (C++: func_t *) + +Help on function is_func_entry in module ida_funcs: + +is_func_entry(*args) -> 'bool' + is_func_entry(pfn) -> bool + Does function describe a function entry chunk? + + @param pfn: (C++: const func_t *) func_t const * + +Help on function is_func_locked in module ida_funcs: + +is_func_locked(*args) -> 'bool' + is_func_locked(pfn) -> bool + Is the function pointer locked? + + @param pfn: (C++: const func_t *) func_t const * + +Help on function is_func_tail in module ida_funcs: + +is_func_tail(*args) -> 'bool' + is_func_tail(pfn) -> bool + Does function describe a function tail chunk? + + @param pfn: (C++: const func_t *) func_t const * + +Help on function is_same_func in module ida_funcs: + +is_same_func(*args) -> 'bool' + is_same_func(ea1, ea2) -> bool + Do two addresses belong to the same function? + + @param ea1: (C++: ea_t) + @param ea2: (C++: ea_t) + +Help on function is_visible_func in module ida_funcs: + +is_visible_func(*args) -> 'bool' + is_visible_func(pfn) -> bool + Is the function visible (not hidden)? + + @param pfn: (C++: func_t *) + +Help on class lock_func in module ida_funcs: + +class lock_func(builtins.object) + | Proxy of C++ lock_func class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _pfn) -> lock_func + | + | @param _pfn: func_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lock_func(...) + | delete_lock_func(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function lock_func_range in module ida_funcs: + +lock_func_range(*args) -> 'void' + lock_func_range(pfn, lock) + Lock function pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param pfn: (C++: const func_t *) func_t const * + @param lock: (C++: bool) + +Help on function plan_to_apply_idasgn in module ida_funcs: + +plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int + Add a signature file to the list of planned signature files. + + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures + +Help on function read_regargs in module ida_funcs: + +read_regargs(*args) -> 'void' + read_regargs(pfn) + + @param pfn: func_t * + +Help on function reanalyze_function in module ida_funcs: + +reanalyze_function(*args) -> 'void' + reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + Reanalyze a function. This function plans to analyzes all chunks of the given + function. Optional parameters (ea1, ea2) may be used to narrow the analyzed + range. + + @param pfn: (C++: func_t *) pointer to a function + @param ea1: (C++: ea_t) start of the range to analyze + @param ea2: (C++: ea_t) end of range to analyze + @param analyze_parents: (C++: bool) meaningful only if pfn points to a function tail. if + true, all tail parents will be reanalyzed. if false, + only the given tail will be reanalyzed. + +Help on function reanalyze_noret_flag in module ida_funcs: + +reanalyze_noret_flag(*args) -> 'bool' + reanalyze_noret_flag(ea) -> bool + Plan to reanalyze noret flag. This function does not remove FUNC_NORET if it is + already present. It just plans to reanalysis. + + @param ea: (C++: ea_t) + +Help on class regarg_t in module ida_funcs: + +class regarg_t(builtins.object) + | Proxy of C++ regarg_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regarg_t + | __init__(self, r) -> regarg_t + | + | @param r: regarg_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regarg_t(...) + | delete_regarg_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: regarg_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | reg + | reg + | + | thisown + | The membership flag + | + | type + | type + +Help on function remove_func_tail in module ida_funcs: + +remove_func_tail(*args) -> 'bool' + remove_func_tail(pfn, tail_ea) -> bool + Remove a function tail. If the tail belongs only to one function, it will be + completely removed. Otherwise if the function was the tail owner, the first + function using this tail becomes the owner of the tail. + + @param pfn: (C++: func_t *) pointer to the function + @param tail_ea: (C++: ea_t) any address inside the tail to remove + +Help on function set_func_cmt in module ida_funcs: + +set_func_cmt(*args) -> 'bool' + set_func_cmt(pfn, cmt, repeatable) -> bool + Set function comment. This function works with function chunks too. + + @param pfn: (C++: const func_t *) ptr to function structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). Use empty str ("") to delete comment + @param repeatable: (C++: bool) set repeatable comment? + +Help on function set_func_end in module ida_funcs: + +set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool + Move function chunk end address. + + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success + +Help on function set_func_name_if_jumpfunc in module ida_funcs: + +set_func_name_if_jumpfunc(*args) -> 'int' + set_func_name_if_jumpfunc(pfn, oldname) -> int + Give a meaningful name to function if it consists of only 'jump' instruction. + + @param pfn: (C++: func_t *) pointer to function (may be nullptr) + @param oldname: (C++: const char *) old name of function. if old name was in "j_..." form, then we + may discard it and set a new name. if oldname is not known, you + may pass nullptr. + @return: success + +Help on function set_func_start in module ida_funcs: + +set_func_start(*args) -> 'int' + set_func_start(ea, newstart) -> int + Move function chunk start address. + + @param ea: (C++: ea_t) any address in the function + @param newstart: (C++: ea_t) new end address of the function + @return: Function move result codes + +Help on function set_noret_insn in module ida_funcs: + +set_noret_insn(*args) -> 'bool' + set_noret_insn(insn_ea, noret) -> bool + Signal a non-returning instruction. This function can be used by the processor + module to tell the kernel about non-returning instructions (like call exit). The + kernel will perform the global function analysis and find out if the function + returns at all. This analysis will be done at the first call to + func_does_return() + + @param insn_ea: (C++: ea_t) + @param noret: (C++: bool) + @return: true if the instruction 'noret' flag has been changed + +Help on function set_tail_owner in module ida_funcs: + +set_tail_owner(*args) -> 'bool' + set_tail_owner(fnt, new_owner) -> bool + Set a new owner of a function tail. The new owner function must be already + referring to the tail (after append_func_tail). + + @param fnt: (C++: func_t *) pointer to the function tail + @param new_owner: (C++: ea_t) the entry point of the new owner function + +Help on function set_visible_func in module ida_funcs: + +set_visible_func(*args) -> 'void' + set_visible_func(pfn, visible) + Set visibility of function. + + @param pfn: (C++: func_t *) + @param visible: (C++: bool) + +Help on function try_to_add_libfunc in module ida_funcs: + +try_to_add_libfunc(*args) -> 'int' + try_to_add_libfunc(ea) -> int + Apply the currently loaded signature file to the specified address. If a library + function is found, then create a function and name it accordingly. + + @param ea: (C++: ea_t) any address in the program + @return: Library function codes + +Help on function update_func in module ida_funcs: + +update_func(*args) -> 'bool' + update_func(pfn) -> bool + Update information about a function in the database (func_t). You must not + change the function start and end addresses using this function. Use + set_func_start() and set_func_end() for it. + + @param pfn: (C++: func_t *) ptr to function structure + @return: success + +Module "ida_gdl"s docstring: +""" +Low level graph drawing operations.""" + +Help on class BasicBlock in module ida_gdl: + +class BasicBlock(builtins.object) + | Basic block class. It is returned by the Flowchart class + | + | Methods defined here: + | + | __init__(self, id, bb, fc) + | Initialize self. See help(type(self)) for accurate signature. + | + | preds(self) + | Iterates the predecessors list + | + | succs(self) + | Iterates the successors list + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class FlowChart in module ida_gdl: + +class FlowChart(builtins.object) + | Flowchart class used to determine basic blocks. + | Check ex_gdl_qflow_chart.py for sample usage. + | + | Methods defined here: + | + | __getitem__(self, index) + | Returns a basic block + | + | @return: BasicBlock + | + | __init__(self, f=None, bounds=None, flags=0) + | Constructor + | @param f: A func_t type, use get_func(ea) to get a reference + | @param bounds: A tuple of the form (start, end). Used if "f" is None + | @param flags: one of the FC_xxxx flags. + | + | __iter__(self) + | + | _getitem(self, index) + | + | refresh(self) + | Refreshes the flow chart + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | size + +Help on class cancellable_graph_t in module ida_gdl: + +class cancellable_graph_t(gdl_graph_t) + | Proxy of C++ cancellable_graph_t class. + | + | Method resolution order: + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> cancellable_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cancellable_graph_t(...) + | delete_cancellable_graph_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cancelled + | cancelled + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function display_gdl in module ida_gdl: + +display_gdl(*args) -> 'int' + display_gdl(fname) -> int + Display GDL file by calling wingraph32. The exact name of the grapher is taken + from the configuration file and set up by setup_graph_subsystem(). The path + should point to a temporary file: when wingraph32 succeeds showing the graph, + the input file will be deleted. + + @param fname: (C++: const char *) char const * + @return: error code from os, 0 if ok + +Help on class gdl_graph_t in module ida_gdl: + +class gdl_graph_t(builtins.object) + | Proxy of C++ gdl_graph_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function gen_complex_call_chart in module ida_gdl: + +gen_complex_call_chart(*args) -> 'bool' + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool + Build and display a complex xref graph. + + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param ea1: (C++: ea_t) ,ea2: address range + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param flags: (C++: int) combination of Call chart building flags and Flow graph building + flags. if none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @param recursion_depth: (C++: int32) optional limit of recursion + @return: success. if fails, a warning message is displayed on the screen + +Help on function gen_flow_graph in module ida_gdl: + +gen_flow_graph(*args) -> 'bool' + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool + Build and display a flow graph. + + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param title: (C++: const char *) graph title + @param pfn: (C++: func_t *) function to graph + @param ea1: (C++: ea_t) ,ea2: if pfn == nullptr, then the address range + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @param gflags: (C++: int) combination of Flow graph building flags. if none of + CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is specified, the + function will return false + @return: success. if fails, a warning message is displayed on the screen + +Help on function gen_gdl in module ida_gdl: + +gen_gdl(*args) -> 'void' + gen_gdl(g, fname) + Create GDL file for graph. + + @param g: (C++: const gdl_graph_t *) gdl_graph_t const * + @param fname: (C++: const char *) char const * + +Help on function gen_simple_call_chart in module ida_gdl: + +gen_simple_call_chart(*args) -> 'bool' + gen_simple_call_chart(filename, wait, title, gflags) -> bool + Build and display a simple function call graph. + + @param filename: (C++: const char *) output file name. the file extension is not used. maybe + nullptr. + @param wait: (C++: const char *) message to display during graph building + @param title: (C++: const char *) graph title + @param gflags: (C++: int) combination of CHART_NOLIBFUNCS and Flow graph building flags. if + none of CHART_GEN_DOT, CHART_GEN_GDL, CHART_WINGRAPH is + specified, the function will return false. + @return: success. if fails, a warning message is displayed on the screen + +Help on function is_noret_block in module ida_gdl: + +is_noret_block(*args) -> 'bool' + is_noret_block(btype) -> bool + Does this block never return? + + @param btype: (C++: fc_block_type_t) enum fc_block_type_t + +Help on function is_ret_block in module ida_gdl: + +is_ret_block(*args) -> 'bool' + is_ret_block(btype) -> bool + Does this block return? + + @param btype: (C++: fc_block_type_t) enum fc_block_type_t + +Help on class node_iterator in module ida_gdl: + +class node_iterator(builtins.object) + | Proxy of C++ node_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: node_iterator const & + | + | __init__(self, *args) + | __init__(self, _g, n) -> node_iterator + | + | @param _g: gdl_graph_t const * + | @param n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: node_iterator const & + | + | __ref__(self, *args) -> 'int' + | __ref__(self) -> int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_node_iterator(...) + | delete_node_iterator(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qbasic_block_t in module ida_gdl: + +class qbasic_block_t(ida_range.range_t) + | Proxy of C++ qbasic_block_t class. + | + | Method resolution order: + | qbasic_block_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> qbasic_block_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qbasic_block_t(...) + | delete_qbasic_block_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on class qflow_chart_t in module ida_gdl: + +class qflow_chart_t(cancellable_graph_t) + | Proxy of C++ qflow_chart_t class. + | + | Method resolution order: + | qflow_chart_t + | cancellable_graph_t + | gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'qbasic_block_t *' + | __getitem__(self, n) -> qbasic_block_t + | + | @param n: int + | + | __init__(self, *args) + | __init__(self) -> qflow_chart_t + | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qflow_chart_t(...) + | delete_qflow_chart_t(self) + | + | append_to_flowchart(self, *args) -> 'void' + | append_to_flowchart(self, ea1, ea2) + | + | @param ea1: ea_t + | @param ea2: ea_t + | + | calc_block_type(self, *args) -> 'fc_block_type_t' + | calc_block_type(self, blknum) -> fc_block_type_t + | + | @param blknum: size_t + | + | create(self, *args) -> 'void' + | create(self, _title, _pfn, _ea1, _ea2, _flags) + | + | @param _title: char const * + | @param _pfn: func_t * + | @param _ea1: ea_t + | @param _ea2: ea_t + | @param _flags: int + | + | create(self, _title, ranges, _flags) + | + | @param _title: char const * + | @param ranges: rangevec_t const & + | @param _flags: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | is_noret_block(self, *args) -> 'bool' + | is_noret_block(self, blknum) -> bool + | + | @param blknum: size_t + | + | is_ret_block(self, *args) -> 'bool' + | is_ret_block(self, blknum) -> bool + | + | @param blknum: size_t + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_names(self, *args) -> 'bool' + | print_names(self) -> bool + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | refresh(self, *args) -> 'void' + | refresh(self) + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bounds + | bounds + | + | flags + | flags + | + | nproper + | nproper + | + | pfn + | pfn + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from cancellable_graph_t: + | + | __disown__(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cancellable_graph_t: + | + | cancelled + | cancelled + | + | ---------------------------------------------------------------------- + | Methods inherited from gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Module "ida_graph"s docstring: +""" +Graph view management.""" + +Help on class GraphViewer in module ida_graph: + +class GraphViewer(ida_kernwin.CustomIDAMemo) + | Proxy of C++ View_Hooks class. + | + | Method resolution order: + | GraphViewer + | ida_kernwin.CustomIDAMemo + | ida_kernwin.View_Hooks + | builtins.object + | + | Methods defined here: + | + | AddCommand(self, title, shortcut) + | + | AddEdge(self, src_node, dest_node) + | Creates an edge between two given node ids + | + | AddNode(self, obj) + | Creates a node associated with the given object and returns the node id + | + | Clear(self) + | Clears all the nodes and edges + | + | Close(self) + | Closes the graph. + | It is possible to call Show() again (which will recreate the graph) + | + | Count(self) + | Returns the node count + | + | OnCommand(self, cmd_id) + | + | OnPopup(self, widget, popup_handle) + | + | OnRefresh(self) + | Event called when the graph is refreshed or first created. + | From this event you are supposed to create nodes and edges. + | This callback is mandatory. + | + | @note: ***It is important to clear previous nodes before adding nodes.*** + | @return: Returning True tells the graph viewer to use the items. Otherwise old items will be used. + | + | Select(self, node_id) + | Selects a node on the graph + | + | Show(self) + | Shows an existing graph or creates a new one + | + | @return: Boolean + | + | __getitem__(self, idx) + | Returns a reference to the object associated with this node id + | + | __init__(self, title, close_open=False) + | Constructs the GraphView object. + | Please do not remove or rename the private fields + | + | @param title: The title of the graph window + | @param close_open: Should it attempt to close an existing graph (with same title) before creating this graph? + | + | __iter__(self) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | UI_Hooks_Trampoline = <class 'ida_graph.GraphViewer.UI_Hooks_Trampolin... + | Proxy of C++ UI_Hooks class. + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_kernwin.CustomIDAMemo: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods inherited from ida_kernwin.CustomIDAMemo: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_kernwin.View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_kernwin.View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class TPointDouble in module ida_graph: + +class TPointDouble(builtins.object) + | Proxy of C++ TPointDouble class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: TPointDouble const & + | + | __init__(self, *args) + | __init__(self) -> TPointDouble + | __init__(self, a, b) -> TPointDouble + | + | @param a: double + | @param b: double + | + | __init__(self, r) -> TPointDouble + | + | @param r: point_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: TPointDouble const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_TPointDouble(...) + | delete_TPointDouble(self) + | + | add(self, *args) -> 'void' + | add(self, r) + | + | @param r: TPointDouble const & + | + | negate(self, *args) -> 'void' + | negate(self) + | + | sub(self, *args) -> 'void' + | sub(self, r) + | + | @param r: TPointDouble const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class abstract_graph_t in module ida_graph: + +class abstract_graph_t(ida_gdl.gdl_graph_t) + | Proxy of C++ abstract_graph_t class. + | + | Method resolution order: + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_abstract_graph_t(...) + | delete_abstract_graph_t(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function calc_dist in module ida_graph: + +calc_dist(*args) -> 'double' + calc_dist(p, q) -> double + Calculate distance between p and q. + + @param p: (C++: point_t) + @param q: (C++: point_t) + +Help on function clr_node_info in module ida_graph: + +clr_node_info(*args) -> 'void' + clr_node_info(gid, node, flags) + Clear node info for the given node. + + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of + node_info_t will be cleared + +Help on function create_disasm_graph in module ida_graph: + +create_disasm_graph(*args) -> 'mutable_graph_t *' + create_disasm_graph(ea) -> mutable_graph_t + Create a graph using an arbitrary set of ranges. + + @param ea: ea_t + + create_disasm_graph(ranges) -> mutable_graph_t + + @param ranges: rangevec_t const & + +Help on function create_graph_viewer in module ida_graph: + +create_graph_viewer(*args) -> 'graph_viewer_t *' + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * + Create a custom graph viewer. + + @param title: (C++: const char *) the widget title + @param id: (C++: uval_t) graph id + @param callback: (C++: hook_cb_t *) callback to handle graph notifications (graph_notification_t) + @param ud: (C++: void *) user data passed to callback + @param title_height: (C++: int) node title height + @param parent: (C++: TWidget *) the parent widget of the graph viewer + @return: new viewer + +Help on function create_mutable_graph in module ida_graph: + +create_mutable_graph(*args) -> 'mutable_graph_t *' + create_mutable_graph(id) -> mutable_graph_t + Create a new empty graph with given id. + + @param id: (C++: uval_t) + +Help on function create_user_graph_place in module ida_graph: + +create_user_graph_place(*args) -> 'user_graph_place_t *' + create_user_graph_place(node, lnnum) -> user_graph_place_t + Get a copy of a user_graph_place_t (returns a pointer to static storage) + + @param node: (C++: int) + @param lnnum: (C++: int) + +Help on function del_node_info in module ida_graph: + +del_node_info(*args) -> 'void' + del_node_info(gid, node) + Delete the node_info_t for the given node. + + @param gid: (C++: graph_id_t) + @param node: (C++: int) + +Help on function delete_mutable_graph in module ida_graph: + +delete_mutable_graph(*args) -> 'void' + delete_mutable_graph(g) + Delete graph object. + @warning: use this only if you are dealing with mutable_graph_t instances that + have not been used together with a graph_viewer_t. If you have called + set_viewer_graph() with your graph, the graph's lifecycle will be + managed by the viewer, and you shouldn't interfere with it + + @param g: (C++: mutable_graph_t *) + +Help on class edge_info_t in module ida_graph: + +class edge_info_t(builtins.object) + | Proxy of C++ edge_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> edge_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_info_t(...) + | delete_edge_info_t(self) + | + | reverse_layout(self, *args) -> 'void' + | reverse_layout(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | color + | color + | + | dstoff + | dstoff + | + | layout + | layout + | + | srcoff + | srcoff + | + | thisown + | The membership flag + | + | width + | width + +Help on class edge_infos_wrapper_t in module ida_graph: + +class edge_infos_wrapper_t(builtins.object) + | Proxy of C++ edge_infos_wrapper_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ptr + | ptr + | + | thisown + | The membership flag + +Help on class edge_layout_point_t in module ida_graph: + +class edge_layout_point_t(builtins.object) + | Proxy of C++ edge_layout_point_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: edge_layout_point_t const & + | + | __init__(self, *args) + | __init__(self) -> edge_layout_point_t + | __init__(self, _e, _pidx) -> edge_layout_point_t + | + | @param _e: edge_t const & + | @param _pidx: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: edge_layout_point_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_layout_point_t(...) + | delete_edge_layout_point_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: edge_layout_point_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | e + | e + | + | pidx + | pidx + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class edge_segment_t in module ida_graph: + +class edge_segment_t(builtins.object) + | Proxy of C++ edge_segment_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> edge_segment_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: edge_segment_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_segment_t(...) + | delete_edge_segment_t(self) + | + | length(self, *args) -> 'size_t' + | length(self) -> size_t + | + | toright(self, *args) -> 'bool' + | toright(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | e + | e + | + | nseg + | nseg + | + | thisown + | The membership flag + | + | x0 + | x0 + | + | x1 + | x1 + +Help on class edge_t in module ida_graph: + +class edge_t(builtins.object) + | Proxy of C++ edge_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, y) -> bool + | + | @param y: edge_t const & + | + | __init__(self, *args) + | __init__(self) -> edge_t + | __init__(self, x, y) -> edge_t + | + | @param x: int + | @param y: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, y) -> bool + | + | @param y: edge_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, y) -> bool + | + | @param y: edge_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_edge_t(...) + | delete_edge_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dst + | dst + | + | src + | src + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function get_graph_viewer in module ida_graph: + +get_graph_viewer(*args) -> 'graph_viewer_t *' + get_graph_viewer(parent) -> graph_viewer_t * + Get custom graph viewer for given form. + + @param parent: (C++: TWidget *) + +Help on function get_node_info in module ida_graph: + +get_node_info(*args) -> 'bool' + get_node_info(out, gid, node) -> bool + Get node info. + + @param out: (C++: node_info_t *) result + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @return: success + +Help on function get_viewer_graph in module ida_graph: + +get_viewer_graph(*args) -> 'mutable_graph_t *' + get_viewer_graph(gv) -> mutable_graph_t + Get graph object for given custom graph viewer. + + @param gv: (C++: graph_viewer_t *) + +Help on class graph_item_t in module ida_graph: + +class graph_item_t(builtins.object) + | Proxy of C++ graph_item_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> graph_item_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_item_t(...) + | delete_graph_item_t(self) + | + | is_edge(self, *args) -> 'bool' + | is_edge(self) -> bool + | + | is_node(self, *args) -> 'bool' + | is_node(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | b + | b + | + | e + | e + | + | elp + | elp + | + | n + | n + | + | p + | p + | + | thisown + | The membership flag + | + | type + | type + +Help on class graph_node_visitor_t in module ida_graph: + +class graph_node_visitor_t(builtins.object) + | Proxy of C++ graph_node_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> graph_node_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_node_visitor_t(...) + | delete_graph_node_visitor_t(self) + | + | is_forbidden_edge(self, *args) -> 'bool' + | is_forbidden_edge(self, arg0, arg1) -> bool + | Should the edge between 'n' and 'm' be ignored? + | + | @param arg0: int + | @param arg1: int + | + | is_visited(self, *args) -> 'bool' + | is_visited(self, n) -> bool + | Have we already visited the given node? + | + | @param n: (C++: int) + | + | reinit(self, *args) -> 'void' + | reinit(self) + | Reset visited nodes. + | + | set_visited(self, *args) -> 'void' + | set_visited(self, n) + | Mark node as visited. + | + | @param n: (C++: int) + | + | visit_node(self, *args) -> 'int' + | visit_node(self, arg0) -> int + | Implements action to take when a node is visited. + | + | @param arg0: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class graph_path_visitor_t in module ida_graph: + +class graph_path_visitor_t(builtins.object) + | Proxy of C++ graph_path_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> graph_path_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_path_visitor_t(...) + | delete_graph_path_visitor_t(self) + | + | walk_backward(self, *args) -> 'int' + | walk_backward(self, arg0) -> int + | + | @param arg0: int + | + | walk_forward(self, *args) -> 'int' + | walk_forward(self, arg0) -> int + | + | @param arg0: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | path + | path + | + | prune + | prune + | + | thisown + | The membership flag + +Help on class graph_visitor_t in module ida_graph: + +class graph_visitor_t(builtins.object) + | Proxy of C++ graph_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> graph_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_visitor_t(...) + | delete_graph_visitor_t(self) + | + | visit_edge(self, *args) -> 'int' + | visit_edge(self, arg2, arg3) -> int + | + | @param arg2: edge_t + | @param arg3: edge_info_t * + | + | visit_node(self, *args) -> 'int' + | visit_node(self, arg2, arg3) -> int + | + | @param arg2: int + | @param arg3: rect_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class group_crinfo_t in module ida_graph: + +class group_crinfo_t(builtins.object) + | Proxy of C++ group_crinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> group_crinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_group_crinfo_t(...) + | delete_group_crinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nodes + | nodes + | + | text + | text + | + | thisown + | The membership flag + +Help on class interval_t in module ida_graph: + +class interval_t(builtins.object) + | Proxy of C++ interval_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: interval_t const & + | + | __init__(self, *args) + | __init__(self) -> interval_t + | __init__(self, y0, y1) -> interval_t + | + | @param y0: int + | @param y1: int + | + | __init__(self, s) -> interval_t + | + | @param s: edge_segment_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: interval_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_interval_t(...) + | delete_interval_t(self) + | + | contains(self, *args) -> 'bool' + | contains(self, x) -> bool + | + | @param x: int + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | + | @param r: interval_t const & + | + | length(self, *args) -> 'int' + | length(self) -> int + | + | make_union(self, *args) -> 'void' + | make_union(self, r) + | + | @param r: interval_t const & + | + | move_by(self, *args) -> 'void' + | move_by(self, shift) + | + | @param shift: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x0 + | x0 + | + | x1 + | x1 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mutable_graph_t in module ida_graph: + +class mutable_graph_t(abstract_graph_t) + | Proxy of C++ mutable_graph_t class. + | + | Method resolution order: + | mutable_graph_t + | abstract_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> abstract_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mutable_graph_t(...) + | delete_mutable_graph_t(self) + | + | add_edge(self, *args) -> 'bool' + | add_edge(self, i, j, ei) -> bool + | + | @param i: int + | @param j: int + | @param ei: edge_info_t const * + | + | add_node(self, *args) -> 'int' + | add_node(self, r) -> int + | Add a node, possibly with a specific geometry + | + | @param r: (C++: const rect_t *) the node geometry (can be nullptr) + | @return: the new node + | + | calc_group_ea(self, *args) -> 'ea_t' + | calc_group_ea(self, arg2) -> ea_t + | + | @param arg2: intvec_t const & + | + | change_group_visibility(self, *args) -> 'bool' + | change_group_visibility(self, group, expand) -> bool + | Expand/collapse a group node + | + | @param group: (C++: int) the group node + | @param expand: (C++: bool) whether to expand or collapse + | @return: success + | + | create_digraph_layout(self, *args) -> 'bool' + | create_digraph_layout(self) -> bool + | + | create_group(self, *args) -> 'int' + | create_group(self, nodes) -> int + | Create a new group node, that will contain all the nodes in 'nodes'. + | + | @param nodes: (C++: const intvec_t &) the nodes that will be part of the group + | @return: the group node, or -1 in case of error + | + | del_custom_layout(self, *args) -> 'void' + | del_custom_layout(self) + | + | del_edge(self, *args) -> 'bool' + | del_edge(self, i, j) -> bool + | + | @param i: int + | @param j: int + | + | del_node(self, *args) -> 'ssize_t' + | del_node(self, n) -> ssize_t + | Delete a node + | + | @param n: (C++: int) the node to delete + | @return: the number of deleted edges + | + | delete_group(self, *args) -> 'bool' + | delete_group(self, group) -> bool + | Delete a group node. + | + | This deletes the group node only; it does not delete nodes that are part of the + | group. + | + | @param group: (C++: int) the group node + | @return: success + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the graph (visually) empty? + | + | @return: true if there are no visible nodes + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | Is the node visible? + | + | @param node: (C++: int) the node number + | @return: success + | + | get_custom_layout(self, *args) -> 'bool' + | get_custom_layout(self) -> bool + | + | get_first_subgraph_node(self, *args) -> 'int' + | get_first_subgraph_node(self, group) -> int + | + | @param group: int + | + | get_graph_groups(self, *args) -> 'bool' + | get_graph_groups(self) -> bool + | + | get_next_subgraph_node(self, *args) -> 'int' + | get_next_subgraph_node(self, group, current) -> int + | + | @param group: int + | @param current: int + | + | get_node_group(self, *args) -> 'int' + | get_node_group(self, node) -> int + | + | @param node: int + | + | get_node_representative(self, *args) -> 'int' + | get_node_representative(self, node) -> int + | Get the node that currently visually represents 'node'. This will find the + | "closest" parent group node that's visible, by attempting to walk up the group + | nodes that contain 'node', and will stop when it finds a node that is currently + | visible. + | + | See also get_group_node() + | + | @param node: (C++: int) the node + | @return: the node that represents 'node', or 'node' if it's not part of any + | group + | + | is_collapsed_node(self, *args) -> 'bool' + | is_collapsed_node(self, node) -> bool + | + | @param node: int + | + | is_deleted_node(self, *args) -> 'bool' + | is_deleted_node(self, node) -> bool + | + | @param node: int + | + | is_displayable_node(self, *args) -> 'bool' + | is_displayable_node(self, node) -> bool + | + | @param node: int + | + | is_dot_node(self, *args) -> 'bool' + | is_dot_node(self, node) -> bool + | + | @param node: int + | + | is_group_node(self, *args) -> 'bool' + | is_group_node(self, node) -> bool + | + | @param node: int + | + | is_simple_node(self, *args) -> 'bool' + | is_simple_node(self, node) -> bool + | + | @param node: int + | + | is_subgraph_node(self, *args) -> 'bool' + | is_subgraph_node(self, node) -> bool + | + | @param node: int + | + | is_uncollapsed_node(self, *args) -> 'bool' + | is_uncollapsed_node(self, node) -> bool + | + | @param node: int + | + | is_user_graph(self, *args) -> 'bool' + | is_user_graph(self) -> bool + | + | is_visible_node(self, *args) -> 'bool' + | is_visible_node(self, node) -> bool + | Is the node currently visible? + | + | An invisible node is a node that's part of a group that's currently collapsed. + | + | @param node: (C++: int) the node + | @return: success + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | Get the number of visible nodes (the list can be retrieved using gdl.hpp's + | node_iterator) + | + | See also size() + | + | @return: the number of visible nodes + | + | npred(self, *args) -> 'int' + | npred(self, b) -> int + | + | @param b: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, b) -> int + | + | @param b: int + | + | pred(self, *args) -> 'int' + | pred(self, b, i) -> int + | + | @param b: int + | @param i: int + | + | predset(self, *args) -> 'intvec_t const &' + | predset(self, b) -> intvec_t const & + | + | @param b: int + | + | redo_layout(self, *args) -> 'bool' + | redo_layout(self) -> bool + | Recompute the layout, according to the value of 'current_layout'. + | + | @return: success + | + | refresh(self, *args) -> 'bool' + | refresh(self) -> bool + | Refresh the graph + | + | A graph needs refreshing when it's "backing data". E.g., if the number (or + | contents) of the objects in the above example, change. + | + | Let's say the user's plugin ends up finding a 5th piece of scattered data. It + | should then add it to its internal list of known objects, and tell IDA that the + | graph needs to be refreshed, using refresh_viewer(). This will cause IDA to: + | * discard all its internal rendering information, + | * call mutable_graph_t::refresh() on the graph so that the user's plugin has a + | chance to "sync" the number of nodes & edges that this graph contains, to the + | information that the plugin has collected so far + | * re-create internal rendering information, and + | * repaint the view + | + | @return: success + | + | replace_edge(self, *args) -> 'bool' + | replace_edge(self, i, j, x, y) -> bool + | + | @param i: int + | @param j: int + | @param x: int + | @param y: int + | + | reset(self, *args) -> 'void' + | reset(self) + | + | resize(self, *args) -> 'void' + | resize(self, n) + | Resize the graph to 'n' nodes + | + | @param n: (C++: int) the new size + | + | set_custom_layout(self, *args) -> 'void' + | set_custom_layout(self) + | + | set_deleted_node(self, *args) -> 'void' + | set_deleted_node(self, node) + | + | @param node: int + | + | set_edge(self, *args) -> 'bool' + | set_edge(self, e, ei) -> bool + | + | @param e: edge_t + | @param ei: edge_info_t const * + | + | set_graph_groups(self, *args) -> 'void' + | set_graph_groups(self) + | + | set_node_group(self, *args) -> 'void' + | set_node_group(self, node, group) + | + | @param node: int + | @param group: int + | + | set_nrect(self, *args) -> 'bool' + | set_nrect(self, n, r) -> bool + | + | @param n: int + | @param r: rect_t const & + | + | size(self, *args) -> 'int' + | size(self) -> int + | Get the total number of nodes (including group nodes, and including hidden + | nodes.) + | + | See also node_qty() + | + | @return: the total number of nodes in the graph + | + | succ(self, *args) -> 'int' + | succ(self, b, i) -> int + | + | @param b: int + | @param i: int + | + | succset(self, *args) -> 'intvec_t const &' + | succset(self, b) -> intvec_t const & + | + | @param b: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | belongs + | belongs + | + | edges + | edges + | + | gid + | gid + | + | node_flags + | node_flags + | + | nodes + | nodes + | + | org_preds + | org_preds + | + | org_succs + | org_succs + | + | preds + | preds + | + | succs + | succs + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from abstract_graph_t: + | + | __disown__(self) + | + | create_circle_layout(self, *args) -> 'bool' + | create_circle_layout(self, p, radius) -> bool + | + | @param p: point_t + | @param radius: int + | + | create_tree_layout(self, *args) -> 'bool' + | create_tree_layout(self) -> bool + | + | get_edge(self, *args) -> 'edge_info_t *' + | get_edge(self, e) -> edge_info_t + | + | @param e: edge_t + | + | grcall(self, *args) -> 'ssize_t' + | grcall(self, code) -> ssize_t + | + | @param code: int + | + | nrect(self, *args) -> 'rect_t' + | nrect(self, n) -> rect_t + | + | @param n: int + | + | set_callback(self, *args) -> 'void' + | set_callback(self, _callback, _ud) + | + | @param _callback: hook_cb_t * + | @param _ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from abstract_graph_t: + | + | callback_ud + | callback_ud + | + | circle_center + | circle_center + | + | circle_radius + | circle_radius + | + | current_layout + | current_layout + | + | rect_edges_made + | rect_edges_made + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class node_info_t in module ida_graph: + +class node_info_t(builtins.object) + | Proxy of C++ node_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> node_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_node_info_t(...) + | delete_node_info_t(self) + | + | get_flags_for_valid(self, *args) -> 'uint32' + | get_flags_for_valid(self) -> uint32 + | Get combination of Node info flags describing which attributes are valid. + | + | valid_bg_color(self, *args) -> 'bool' + | valid_bg_color(self) -> bool + | Has valid bg_color? + | + | valid_ea(self, *args) -> 'bool' + | valid_ea(self) -> bool + | Has valid ea? + | + | valid_flags(self, *args) -> 'bool' + | valid_flags(self) -> bool + | Has valid flags? + | + | valid_frame_color(self, *args) -> 'bool' + | valid_frame_color(self) -> bool + | Has valid frame_color? + | + | valid_text(self, *args) -> 'bool' + | valid_text(self) -> bool + | Has non-empty text? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bg_color + | bg_color + | + | ea + | ea + | + | flags + | flags + | + | frame_color + | frame_color + | + | text + | text + | + | thisown + | The membership flag + +Help on class node_layout_t in module ida_graph: + +class node_layout_t(builtins.object) + | Proxy of C++ qvector< rect_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< rect_t > const & + | + | __getitem__(self, *args) -> 'rect_t const &' + | __getitem__(self, i) -> rect_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> node_layout_t + | __init__(self, x) -> node_layout_t + | + | @param x: qvector< rect_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< rect_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rect_t const & + | + | __swig_destroy__ = delete_node_layout_t(...) + | delete_node_layout_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rect_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: rect_t const & + | + | at(self, *args) -> 'rect_t const &' + | at(self, _idx) -> rect_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< rect_t >::const_iterator' + | begin(self) -> rect_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< rect_t >::const_iterator' + | end(self) -> rect_t + | + | erase(self, *args) -> 'qvector< rect_t >::iterator' + | erase(self, it) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | + | erase(self, first, last) -> rect_t + | + | @param first: qvector< rect_t >::iterator + | @param last: qvector< rect_t >::iterator + | + | extract(self, *args) -> 'rect_t *' + | extract(self) -> rect_t + | + | find(self, *args) -> 'qvector< rect_t >::const_iterator' + | find(self, x) -> rect_t + | + | @param x: rect_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=rect_t()) + | + | @param x: rect_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: rect_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: rect_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< rect_t >::iterator' + | insert(self, it, x) -> rect_t + | + | @param it: qvector< rect_t >::iterator + | @param x: rect_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'rect_t &' + | push_back(self, x) + | + | @param x: rect_t const & + | + | push_back(self) -> rect_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rect_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< rect_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class node_ordering_t in module ida_graph: + +class node_ordering_t(builtins.object) + | Proxy of C++ node_ordering_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> node_ordering_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_node_ordering_t(...) + | delete_node_ordering_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | clr(self, *args) -> 'bool' + | clr(self, _node) -> bool + | + | @param _node: int + | + | node(self, *args) -> 'int' + | node(self, _order) -> int + | + | @param _order: size_t + | + | order(self, *args) -> 'int' + | order(self, _node) -> int + | + | @param _node: int + | + | resize(self, *args) -> 'void' + | resize(self, n) + | + | @param n: int + | + | set(self, *args) -> 'void' + | set(self, _node, num) + | + | @param _node: int + | @param num: int + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class point_t in module ida_graph: + +class point_t(builtins.object) + | Proxy of C++ point_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: point_t const & + | + | __init__(self, *args) + | __init__(self) -> point_t + | __init__(self, _x, _y) -> point_t + | + | @param _x: int + | @param _y: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: point_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_point_t(...) + | delete_point_t(self) + | + | add(self, *args) -> 'point_t &' + | add(self, r) -> point_t + | + | @param r: point_t const & + | + | negate(self, *args) -> 'void' + | negate(self) + | + | sub(self, *args) -> 'point_t &' + | sub(self, r) -> point_t + | + | @param r: point_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class pointseq_t in module ida_graph: + +class pointseq_t(pointvec_t) + | Proxy of C++ pointseq_t class. + | + | Method resolution order: + | pointseq_t + | pointvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> pointseq_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_pointseq_t(...) + | delete_pointseq_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from pointvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __getitem__(self, *args) -> 'point_t const &' + | __getitem__(self, i) -> point_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: point_t const & + | + | at(self, *args) -> 'point_t const &' + | at(self, _idx) -> point_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< point_t >::const_iterator' + | begin(self) -> point_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< point_t >::const_iterator' + | end(self) -> point_t + | + | erase(self, *args) -> 'qvector< point_t >::iterator' + | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | + | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator + | + | extract(self, *args) -> 'point_t *' + | extract(self) -> point_t + | + | find(self, *args) -> 'qvector< point_t >::const_iterator' + | find(self, x) -> point_t + | + | @param x: point_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=point_t()) + | + | @param x: point_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: point_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< point_t >::iterator' + | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'point_t &' + | push_back(self, x) + | + | @param x: point_t const & + | + | push_back(self) -> point_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< point_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pointvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pointvec_t: + | + | __hash__ = None + +Help on class pointvec_t in module ida_graph: + +class pointvec_t(builtins.object) + | Proxy of C++ qvector< point_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __getitem__(self, *args) -> 'point_t const &' + | __getitem__(self, i) -> point_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> pointvec_t + | __init__(self, x) -> pointvec_t + | + | @param x: qvector< point_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< point_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: point_t const & + | + | __swig_destroy__ = delete_pointvec_t(...) + | delete_pointvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: point_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: point_t const & + | + | at(self, *args) -> 'point_t const &' + | at(self, _idx) -> point_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< point_t >::const_iterator' + | begin(self) -> point_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< point_t >::const_iterator' + | end(self) -> point_t + | + | erase(self, *args) -> 'qvector< point_t >::iterator' + | erase(self, it) -> point_t + | + | @param it: qvector< point_t >::iterator + | + | erase(self, first, last) -> point_t + | + | @param first: qvector< point_t >::iterator + | @param last: qvector< point_t >::iterator + | + | extract(self, *args) -> 'point_t *' + | extract(self) -> point_t + | + | find(self, *args) -> 'qvector< point_t >::const_iterator' + | find(self, x) -> point_t + | + | @param x: point_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=point_t()) + | + | @param x: point_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: point_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: point_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< point_t >::iterator' + | insert(self, it, x) -> point_t + | + | @param it: qvector< point_t >::iterator + | @param x: point_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'point_t &' + | push_back(self, x) + | + | @param x: point_t const & + | + | push_back(self) -> point_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: point_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< point_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function pyg_close in module ida_graph: + +pyg_close(*args) -> 'void' + pyg_close(_self) + + @param self: PyObject * + +Help on function pyg_select_node in module ida_graph: + +pyg_select_node(*args) -> 'void' + pyg_select_node(_self, nid) + + @param self: PyObject * + @param nid: int + +Help on function pyg_show in module ida_graph: + +pyg_show(*args) -> 'bool' + pyg_show(_self) -> bool + + @param self: PyObject * + +Help on class rect_t in module ida_graph: + +class rect_t(builtins.object) + | Proxy of C++ rect_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: rect_t const & + | + | __init__(self, *args) + | __init__(self) -> rect_t + | __init__(self, l, t, r, b) -> rect_t + | + | @param l: int + | @param t: int + | @param r: int + | @param b: int + | + | __init__(self, p0, p1) -> rect_t + | + | @param p0: point_t const & + | @param p1: point_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: rect_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rect_t(...) + | delete_rect_t(self) + | + | area(self, *args) -> 'int' + | area(self) -> int + | + | bottomright(self, *args) -> 'point_t' + | bottomright(self) -> point_t + | + | center(self, *args) -> 'point_t' + | center(self) -> point_t + | + | contains(self, *args) -> 'bool' + | contains(self, p) -> bool + | + | @param p: point_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | grow(self, *args) -> 'void' + | grow(self, delta) + | + | @param delta: int + | + | height(self, *args) -> 'int' + | height(self) -> int + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | + | @param r: rect_t const & + | + | is_intersection_empty(self, *args) -> 'bool' + | is_intersection_empty(self, r) -> bool + | + | @param r: rect_t const & + | + | make_union(self, *args) -> 'void' + | make_union(self, r) + | + | @param r: rect_t const & + | + | move_by(self, *args) -> 'void' + | move_by(self, p) + | + | @param p: point_t const & + | + | move_to(self, *args) -> 'void' + | move_to(self, p) + | + | @param p: point_t const & + | + | topleft(self, *args) -> 'point_t' + | topleft(self) -> point_t + | + | width(self, *args) -> 'int' + | width(self) -> int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bottom + | bottom + | + | left + | left + | + | right + | right + | + | thisown + | The membership flag + | + | top + | top + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function refresh_viewer in module ida_graph: + +refresh_viewer(*args) -> 'void' + refresh_viewer(gv) + Redraw the graph in the given view. + + @param gv: (C++: graph_viewer_t *) + +Help on class row_info_t in module ida_graph: + +class row_info_t(builtins.object) + | Proxy of C++ row_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> row_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_row_info_t(...) + | delete_row_info_t(self) + | + | height(self, *args) -> 'int' + | height(self) -> int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bottom + | bottom + | + | nodes + | nodes + | + | thisown + | The membership flag + | + | top + | top + +Help on class screen_graph_selection_base_t in module ida_graph: + +class screen_graph_selection_base_t(builtins.object) + | Proxy of C++ qvector< selection_item_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __getitem__(self, *args) -> 'selection_item_t const &' + | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> screen_graph_selection_base_t + | __init__(self, x) -> screen_graph_selection_base_t + | + | @param x: qvector< selection_item_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & + | + | __swig_destroy__ = delete_screen_graph_selection_base_t(...) + | delete_screen_graph_selection_base_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & + | + | at(self, *args) -> 'selection_item_t const &' + | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | begin(self) -> selection_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | end(self) -> selection_item_t + | + | erase(self, *args) -> 'qvector< selection_item_t >::iterator' + | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | + | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator + | + | extract(self, *args) -> 'selection_item_t *' + | extract(self) -> selection_item_t + | + | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: selection_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< selection_item_t >::iterator' + | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'selection_item_t &' + | push_back(self, x) + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< selection_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class screen_graph_selection_t in module ida_graph: + +class screen_graph_selection_t(screen_graph_selection_base_t) + | Proxy of C++ screen_graph_selection_t class. + | + | Method resolution order: + | screen_graph_selection_t + | screen_graph_selection_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> screen_graph_selection_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_screen_graph_selection_t(...) + | delete_screen_graph_selection_t(self) + | + | add(self, *args) -> 'void' + | add(self, s) + | + | @param s: screen_graph_selection_t const & + | + | add_node(self, *args) -> 'void' + | add_node(self, node) + | + | @param node: int + | + | add_point(self, *args) -> 'void' + | add_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int + | + | del_node(self, *args) -> 'void' + | del_node(self, node) + | + | @param node: int + | + | del_point(self, *args) -> 'void' + | del_point(self, e, idx) + | + | @param e: edge_t + | @param idx: int + | + | has(self, *args) -> 'bool' + | has(self, item) -> bool + | + | @param item: selection_item_t const & + | + | items_count(self, *args) -> 'size_t' + | items_count(self, look_for_nodes) -> size_t + | + | @param look_for_nodes: bool + | + | nodes_count(self, *args) -> 'size_t' + | nodes_count(self) -> size_t + | + | points_count(self, *args) -> 'size_t' + | points_count(self) -> size_t + | + | sub(self, *args) -> 'void' + | sub(self, s) + | + | @param s: screen_graph_selection_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from screen_graph_selection_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __getitem__(self, *args) -> 'selection_item_t const &' + | __getitem__(self, i) -> selection_item_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< selection_item_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: selection_item_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: selection_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: selection_item_t const & + | + | at(self, *args) -> 'selection_item_t const &' + | at(self, _idx) -> selection_item_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | begin(self) -> selection_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | end(self) -> selection_item_t + | + | erase(self, *args) -> 'qvector< selection_item_t >::iterator' + | erase(self, it) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | + | erase(self, first, last) -> selection_item_t + | + | @param first: qvector< selection_item_t >::iterator + | @param last: qvector< selection_item_t >::iterator + | + | extract(self, *args) -> 'selection_item_t *' + | extract(self) -> selection_item_t + | + | find(self, *args) -> 'qvector< selection_item_t >::const_iterator' + | find(self, x) -> selection_item_t + | + | @param x: selection_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=selection_item_t()) + | + | @param x: selection_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: selection_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< selection_item_t >::iterator' + | insert(self, it, x) -> selection_item_t + | + | @param it: qvector< selection_item_t >::iterator + | @param x: selection_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'selection_item_t &' + | push_back(self, x) + | + | @param x: selection_item_t const & + | + | push_back(self) -> selection_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: selection_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< selection_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from screen_graph_selection_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from screen_graph_selection_base_t: + | + | __hash__ = None + +Help on class selection_item_t in module ida_graph: + +class selection_item_t(builtins.object) + | Proxy of C++ selection_item_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: selection_item_t const & + | + | __init__(self, *args) + | __init__(self) -> selection_item_t + | __init__(self, n) -> selection_item_t + | + | @param n: int + | + | __init__(self, _elp) -> selection_item_t + | + | @param _elp: edge_layout_point_t & + | + | __init__(self, e, idx) -> selection_item_t + | + | @param e: edge_t + | @param idx: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: selection_item_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: selection_item_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_selection_item_t(...) + | delete_selection_item_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: selection_item_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | elp + | elp + | + | is_node + | is_node + | + | node + | node + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function set_node_info in module ida_graph: + +set_node_info(*args) -> 'void' + set_node_info(gid, node, ni, flags) + Set node info. + + @param gid: (C++: graph_id_t) id of desired graph + @param node: (C++: int) node number + @param ni: (C++: const node_info_t &) node info to use + @param flags: (C++: uint32) combination of Node info flags, identifying which fields of 'ni' + will be used + +Help on function set_viewer_graph in module ida_graph: + +set_viewer_graph(*args) -> 'void' + set_viewer_graph(gv, g) + Set the underlying graph object for the given viewer. + + @param gv: (C++: graph_viewer_t *) + @param g: (C++: mutable_graph_t *) + +Help on class user_graph_place_t in module ida_graph: + +class user_graph_place_t(builtins.object) + | Proxy of C++ user_graph_place_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_graph_place_t(...) + | delete_user_graph_place_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | node + | node + | + | thisown + | The membership flag + +Help on function viewer_attach_menu_item in module ida_graph: + +viewer_attach_menu_item(*args) -> 'bool' + viewer_attach_menu_item(g, name) -> bool + Attach a previously-registered action to the view's context menu. See + kernwin.hpp for how to register actions. + + @param g: (C++: graph_viewer_t *) graph viewer + @param name: (C++: const char *) action name + @return: success + +Help on function viewer_center_on in module ida_graph: + +viewer_center_on(*args) -> 'void' + viewer_center_on(gv, node) + Center the graph view on the given node. + + @param gv: (C++: graph_viewer_t *) + @param node: (C++: int) + +Help on function viewer_create_groups in module ida_graph: + +viewer_create_groups(*args) -> 'bool' + viewer_create_groups(gv, out_group_nodes, gi) -> bool + This will perform an operation similar to what happens when a user manually + selects a set of nodes, right-clicks and selects "Create group". This is a + wrapper around mutable_graph_t::create_group that will, in essence: + * clone the current graph + * for each group_crinfo_t, attempt creating group in that new graph + * if all were successful, animate to that new graph. + @note: this accepts parameters that allow creating of multiple groups at once; + which means only one graph animation will be triggered. + + @param gv: (C++: graph_viewer_t *) + @param out_group_nodes: (C++: intvec_t *) + @param gi: (C++: const groups_crinfos_t &) groups_crinfos_t const & + +Help on function viewer_del_node_info in module ida_graph: + +viewer_del_node_info(*args) -> 'void' + viewer_del_node_info(gv, n) + Delete node info for node in given viewer (see del_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + +Help on function viewer_delete_groups in module ida_graph: + +viewer_delete_groups(*args) -> 'bool' + viewer_delete_groups(gv, groups, new_current=-1) -> bool + Wrapper around mutable_graph_t::delete_group. This function will: + * clone the current graph + * attempt deleting the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param new_current: (C++: int) + +Help on function viewer_fit_window in module ida_graph: + +viewer_fit_window(*args) -> 'void' + viewer_fit_window(gv) + Fit graph viewer to its parent form. + + @param gv: (C++: graph_viewer_t *) + +Help on function viewer_get_curnode in module ida_graph: + +viewer_get_curnode(*args) -> 'int' + viewer_get_curnode(gv) -> int + Get number of currently selected node (-1 if none) + + @param gv: (C++: graph_viewer_t *) + +Help on function viewer_get_gli in module ida_graph: + +viewer_get_gli(*args) -> 'bool' + viewer_get_gli(out, gv, flags=0) -> bool + Get location info for given graph view If flags contains GLICTL_CENTER, then the + gli that will be retrieved, will be the one at the center of the view. Otherwise + it will be the top-left. + + @param out: (C++: graph_location_info_t *) + @param gv: (C++: graph_viewer_t *) + @param flags: (C++: uint32) + +Help on function viewer_get_node_info in module ida_graph: + +viewer_get_node_info(*args) -> 'bool' + viewer_get_node_info(gv, out, n) -> bool + Get node info for node in given viewer (see get_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param out: (C++: node_info_t *) + @param n: (C++: int) + +Help on function viewer_get_selection in module ida_graph: + +viewer_get_selection(*args) -> 'bool' + viewer_get_selection(gv, sgs) -> bool + Get currently selected items for graph viewer. + + @param gv: (C++: graph_viewer_t *) + @param sgs: (C++: screen_graph_selection_t *) + +Help on function viewer_set_gli in module ida_graph: + +viewer_set_gli(*args) -> 'void' + viewer_set_gli(gv, gli, flags=0) + Set location info for given graph view If flags contains GLICTL_CENTER, then the + gli will be set to be the center of the view. Otherwise it will be the top-left. + + @param gv: (C++: graph_viewer_t *) + @param gli: (C++: const graph_location_info_t *) graph_location_info_t const * + @param flags: (C++: uint32) + +Help on function viewer_set_groups_visibility in module ida_graph: + +viewer_set_groups_visibility(*args) -> 'bool' + viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + Wrapper around mutable_graph_t::change_visibility. This function will: + * clone the current graph + * attempt changing visibility of the groups in that new graph + * if successful, animate to that new graph. + + @param gv: (C++: graph_viewer_t *) + @param groups: (C++: const intvec_t &) intvec_t const & + @param expand: (C++: bool) + @param new_current: (C++: int) + +Help on function viewer_set_node_info in module ida_graph: + +viewer_set_node_info(*args) -> 'void' + viewer_set_node_info(gv, n, ni, flags) + Set node info for node in given viewer (see set_node_info()) + + @param gv: (C++: graph_viewer_t *) + @param n: (C++: int) + @param ni: (C++: const node_info_t &) node_info_t const & + @param flags: (C++: uint32) + +Help on function viewer_set_titlebar_height in module ida_graph: + +viewer_set_titlebar_height(*args) -> 'int' + viewer_set_titlebar_height(gv, height) -> int + Set height of node title bars (grcode_set_titlebar_height) + + @param gv: (C++: graph_viewer_t *) + @param height: (C++: int) + +Module "ida_hexrays"s docstring: +""" +""" + +Help on class DecompilationFailure in module ida_hexrays: + +class DecompilationFailure(builtins.Exception) + | Common base class for all non-exit exceptions. + | + | Method resolution order: + | DecompilationFailure + | builtins.Exception + | builtins.BaseException + | builtins.object + | + | Methods defined here: + | + | add_note = dummy_replacement() + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.Exception: + | + | __init__(self, /, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __new__(*args, **kwargs) from builtins.type + | Create and return a new object. See help(type) for accurate signature. + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.BaseException: + | + | __delattr__(self, name, /) + | Implement delattr(self, name). + | + | __getattribute__(self, name, /) + | Return getattr(self, name). + | + | __reduce__(...) + | helper for pickle + | + | __repr__(self, /) + | Return repr(self). + | + | __setattr__(self, name, value, /) + | Implement setattr(self, name, value). + | + | __setstate__(...) + | + | __str__(self, /) + | Return str(self). + | + | with_traceback(...) + | Exception.with_traceback(tb) -- + | set self.__traceback__ to tb and return self. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from builtins.BaseException: + | + | __cause__ + | exception cause + | + | __context__ + | exception context + | + | __dict__ + | + | __suppress_context__ + | + | __traceback__ + | + | args + +Help on class Hexrays_Hooks in module ida_hexrays: + +class Hexrays_Hooks(builtins.object) + | Proxy of C++ Hexrays_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_Hexrays_Hooks(...) + | delete_Hexrays_Hooks(self) + | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | + | close_pseudocode(self, *args) -> 'int' + | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) + | + | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) + | + | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one + | + | create_hint(self, *args) -> 'PyObject *' + | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints + | + | curpos(self, *args) -> 'int' + | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) + | + | double_click(self, *args) -> 'int' + | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) + | + | func_printed(self, *args) -> 'int' + | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) + | + | glbopt(self, *args) -> 'int' + | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | interr(self, *args) -> 'int' + | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) + | + | keyboard(self, *args) -> 'int' + | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | + | maturity(self, *args) -> 'int' + | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) + | + | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | open_pseudocode(self, *args) -> 'int' + | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) + | + | populating_popup(self, *args) -> 'int' + | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) + | + | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes + | + | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | print_func(self, *args) -> 'int' + | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. + | + | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code + | + | refresh_pseudocode(self, *args) -> 'int' + | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier + | + | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) + | + | right_click(self, *args) -> 'int' + | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) + | + | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code + | + | structural(self, *args) -> 'int' + | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) + | + | switch_pseudocode(self, *args) -> 'int' + | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) + | + | text_ready(self, *args) -> 'int' + | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __cbhooks_t in module ida_hexrays: + +class __cbhooks_t(Hexrays_Hooks) + | Proxy of C++ Hexrays_Hooks class. + | + | Method resolution order: + | __cbhooks_t + | Hexrays_Hooks + | builtins.object + | + | Methods defined here: + | + | __init__(self, callback) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> Hexrays_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | close_pseudocode(self, *args) + | close_pseudocode(self, vu) -> int + | Pseudocode view is being closed. + | + | @param vu: (vdui_t *) + | + | create_hint(self, *args) + | create_hint(self, vu) -> PyObject * + | Create a hint for the current item. + | @see: ui_get_custom_viewer_hint + | + | @param vu: (vdui_t *) + | @retval 0: continue collecting hints with other subscribers + | @retval 1: stop collecting hints + | + | curpos(self, *args) + | curpos(self, vu) -> int + | Current cursor position has been changed. (for example, by left-clicking or + | using keyboard) + | + | @param vu: (vdui_t *) + | + | double_click(self, *args) + | double_click(self, vu, shift_state) -> int + | Mouse double click. + | + | @param vu: (vdui_t *) + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | func_printed(self, *args) + | func_printed(self, cfunc) -> int + | Function text has been generated. Plugins may modify the text in cfunc_t::sv. + | The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + | pointers to ctree items. + | + | @param cfunc: (cfunc_t *) + | + | interr(self, *args) + | interr(self, errcode) -> int + | Internal error has occurred. + | + | @param errcode: (int ) + | + | keyboard(self, *args) + | keyboard(self, vu, key_code, shift_state) -> int + | Keyboard has been hit. + | + | @param vu: (vdui_t *) + | @param key_code: (int) VK_... + | @param shift_state: (int) Should return: 1 if the event has been handled + | + | maturity(self, *args) + | maturity(self, cfunc, new_maturity) -> int + | Ctree maturity level is being changed. + | + | @param cfunc: (cfunc_t *) + | @param new_maturity: (ctree_maturity_t) + | + | open_pseudocode(self, *args) + | open_pseudocode(self, vu) -> int + | New pseudocode view has been opened. + | + | @param vu: (vdui_t *) + | + | populating_popup(self, *args) + | populating_popup(self, widget, popup_handle, vu) -> int + | Populating popup menu. We can add menu items now. + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param vu: (vdui_t *) + | + | print_func(self, *args) + | print_func(self, cfunc, vp) -> int + | Printing ctree and generating text. + | + | @param cfunc: (cfunc_t *) + | @param vp: (vc_printer_t *) Returns: 1 if text has been generated by the plugin + | It is forbidden to modify ctree at this event. + | + | refresh_pseudocode(self, *args) + | refresh_pseudocode(self, vu) -> int + | Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + | forbidden in this event. + | + | @param vu: (vdui_t *) See also hxe_text_ready, which happens earlier + | + | right_click(self, *args) + | right_click(self, vu) -> int + | Mouse right click. Use hxe_populating_popup instead, in case you want to add + | items in the popup menu. + | + | @param vu: (vdui_t *) + | + | switch_pseudocode(self, *args) + | switch_pseudocode(self, vu) -> int + | Existing pseudocode view has been reloaded with a new function. Its text has not + | been refreshed yet, only cfunc and mba pointers are ready. + | + | @param vu: (vdui_t *) + | + | text_ready(self, *args) + | text_ready(self, vu) -> int + | Decompiled text is ready. + | + | @param vu: (vdui_t *) This event can be used to modify the output text (sv). + | Obsolete. Please use hxe_func_printed instead. + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | instances = [] + | + | ---------------------------------------------------------------------- + | Methods inherited from Hexrays_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_Hexrays_Hooks(...) + | delete_Hexrays_Hooks(self) + | + | build_callinfo(self, *args) -> 'PyObject *' + | build_callinfo(self, blk, type) -> PyObject * + | Analyzing a call instruction. + | + | @param blk: (mblock_t *) blk->tail is the call. + | @param type: (tinfo_t *) buffer for the output type. + | + | cmt_changed(self, *args) -> 'int' + | cmt_changed(self, cfunc, loc, cmt) -> int + | Comment got changed. + | + | @param cfunc: (cfunc_t *) + | @param loc: (const treeloc_t *) + | @param cmt: (const char *) + | + | combine(self, *args) -> 'int' + | combine(self, blk, insn) -> int + | Trying to combine instructions of basic block. + | + | @param blk: (mblock_t *) + | @param insn: (minsn_t *) Should return: 1 if combined the current instruction + | with a preceding one + | + | flowchart(self, *args) -> 'int' + | flowchart(self, fc) -> int + | Flowchart has been generated. + | + | @param fc: (qflow_chart_t *) + | + | glbopt(self, *args) -> 'int' + | glbopt(self, mba) -> int + | Global optimization has been finished. If microcode is modified, MERR_LOOP must + | be returned. It will cause a complete restart of the optimization. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | locopt(self, *args) -> 'int' + | locopt(self, mba) -> int + | Basic block level optimization has been finished. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | lvar_cmt_changed(self, *args) -> 'int' + | lvar_cmt_changed(self, vu, v, cmt) -> int + | Local variable comment got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param cmt: (const char *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_mapping_changed(self, *args) -> 'int' + | lvar_mapping_changed(self, vu, frm, to) -> int + | Local variable mapping got changed. + | + | @param vu: (vdui_t *) + | @param from: lvar_t * + | @param to: (lvar_t *) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_name_changed(self, *args) -> 'int' + | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | Local variable got renamed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param name: (const char *) + | @param is_user_name: (bool) Please note that it is possible to read/write user + | settings for lvars directly from the idb. + | + | lvar_type_changed(self, *args) -> 'int' + | lvar_type_changed(self, vu, v, tinfo) -> int + | Local variable type got changed. + | + | @param vu: (vdui_t *) + | @param v: (lvar_t *) + | @param tinfo: (const tinfo_t *) Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | + | microcode(self, *args) -> 'int' + | microcode(self, mba) -> int + | Microcode has been generated. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | prealloc(self, *args) -> 'int' + | prealloc(self, mba) -> int + | Local variables: preallocation step begins. + | + | @param mba: (mba_t *) This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error codes error + | codes + | + | preoptimized(self, *args) -> 'int' + | preoptimized(self, mba) -> int + | Microcode has been preoptimized. + | + | @param mba: (mba_t *) return Microcode error codes code + | + | prolog(self, *args) -> 'int' + | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | Prolog analysis has been finished. + | + | @param mba: (mba_t *) + | @param fc: (qflow_chart_t *) + | @param reachable_blocks: (bitset_t *) + | @param decomp_flags: (int) return Microcode error codes code + | + | resolve_stkaddrs(self, *args) -> 'int' + | resolve_stkaddrs(self, mba) -> int + | The optimizer is about to resolve stack addresses. + | + | @param mba: (mba_t *) + | + | stkpnts(self, *args) -> 'int' + | stkpnts(self, mba, _sps) -> int + | SP change points have been calculated. + | + | @param mba: (mba_t *) + | @param stkpnts: (stkpnts_t *) return Microcode error codes code + | + | structural(self, *args) -> 'int' + | structural(self, ct) -> int + | Structural analysis has been finished. + | + | @param ct: (control_graph_t *) + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from Hexrays_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function _call_with_transferrable_ownership in module ida_hexrays: + +_call_with_transferrable_ownership(fun, *args) + # Object ownership + +Help on function _kludge_force_declare_TPopupMenu in module ida_hexrays: + +_kludge_force_declare_TPopupMenu(*args) -> 'void' + _kludge_force_declare_TPopupMenu(arg1) + + Parameters + ---------- + arg1: TPopupMenu const * + +Help on function _ll_call_helper in module ida_hexrays: + +_ll_call_helper(*args) -> 'cexpr_t *' + _ll_call_helper(rettype, args, format) -> cexpr_t + + Parameters + ---------- + rettype: tinfo_t const & + args: carglist_t * + format: char const * + +Help on function _ll_create_helper in module ida_hexrays: + +_ll_create_helper(*args) -> 'cexpr_t *' + _ll_create_helper(standalone, type, format) -> cexpr_t + + Parameters + ---------- + standalone: bool + type: tinfo_t const & + format: char const * + +Help on function _ll_dereference in module ida_hexrays: + +_ll_dereference(*args) -> 'cexpr_t *' + _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + ptrsize: int + is_flt: bool + +Help on function _ll_lnot in module ida_hexrays: + +_ll_lnot(*args) -> 'cexpr_t *' + _ll_lnot(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + +Help on function _ll_make_num in module ida_hexrays: + +_ll_make_num(*args) -> 'cexpr_t *' + _ll_make_num(n, func=None, ea=BADADDR, opnum=0, sign=no_sign, size=0) -> cexpr_t + + Parameters + ---------- + n: uint64 + func: cfunc_t * + ea: ea_t + opnum: int + sign: type_sign_t + size: int + +Help on function _ll_make_ref in module ida_hexrays: + +_ll_make_ref(*args) -> 'cexpr_t *' + _ll_make_ref(e) -> cexpr_t + + Parameters + ---------- + e: cexpr_t * + +Help on function _ll_new_block in module ida_hexrays: + +_ll_new_block(*args) -> 'cinsn_t *' + _ll_new_block() -> cinsn_t + +Help on function _map_as_dict in module ida_hexrays: + +_map_as_dict(maptype, name, keytype, valuetype) + # dictify all dict-like types + +Help on function accepts_small_udts in module ida_hexrays: + +accepts_small_udts(*args) -> 'bool' + accepts_small_udts(op) -> bool + Is the operator allowed on small structure or union? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function accepts_udts in module ida_hexrays: + +accepts_udts(*args) -> 'bool' + accepts_udts(op) -> bool + + @param op: enum ctype_t + +Help on function arglocs_overlap in module ida_hexrays: + +arglocs_overlap(*args) -> 'bool' + arglocs_overlap(loc1, w1, loc2, w2) -> bool + Do two arglocs overlap? + + @param loc1: (C++: const vdloc_t &) vdloc_t const & + @param w1: (C++: size_t) + @param loc2: (C++: const vdloc_t &) vdloc_t const & + @param w2: (C++: size_t) + +Help on class array_of_bitsets in module ida_hexrays: + +class array_of_bitsets(builtins.object) + | Proxy of C++ qvector< bitset_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & + | + | __getitem__(self, *args) -> 'bitset_t const &' + | __getitem__(self, i) -> bitset_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> array_of_bitsets + | __init__(self, x) -> array_of_bitsets + | + | @param x: qvector< bitset_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< bitset_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bitset_t const & + | + | __swig_destroy__ = delete_array_of_bitsets(...) + | delete_array_of_bitsets(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bitset_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: bitset_t const & + | + | at(self, *args) -> 'bitset_t const &' + | at(self, _idx) -> bitset_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< bitset_t >::const_iterator' + | begin(self) -> bitset_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< bitset_t >::const_iterator' + | end(self) -> bitset_t + | + | erase(self, *args) -> 'qvector< bitset_t >::iterator' + | erase(self, it) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | + | erase(self, first, last) -> bitset_t + | + | @param first: qvector< bitset_t >::iterator + | @param last: qvector< bitset_t >::iterator + | + | extract(self, *args) -> 'bitset_t *' + | extract(self) -> bitset_t + | + | find(self, *args) -> 'qvector< bitset_t >::const_iterator' + | find(self, x) -> bitset_t + | + | @param x: bitset_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=bitset_t()) + | + | @param x: bitset_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: bitset_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: bitset_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< bitset_t >::iterator' + | insert(self, it, x) -> bitset_t + | + | @param it: qvector< bitset_t >::iterator + | @param x: bitset_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'bitset_t &' + | push_back(self, x) + | + | @param x: bitset_t const & + | + | push_back(self) -> bitset_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bitset_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< bitset_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class array_of_ivlsets in module ida_hexrays: + +class array_of_ivlsets(builtins.object) + | Proxy of C++ qvector< ivlset_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & + | + | __getitem__(self, *args) -> 'ivlset_t const &' + | __getitem__(self, i) -> ivlset_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> array_of_ivlsets + | __init__(self, x) -> array_of_ivlsets + | + | @param x: qvector< ivlset_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< ivlset_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ivlset_t const & + | + | __swig_destroy__ = delete_array_of_ivlsets(...) + | delete_array_of_ivlsets(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ivlset_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ivlset_t const & + | + | at(self, *args) -> 'ivlset_t const &' + | at(self, _idx) -> ivlset_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ivlset_t >::const_iterator' + | begin(self) -> ivlset_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ivlset_t >::const_iterator' + | end(self) -> ivlset_t + | + | erase(self, *args) -> 'qvector< ivlset_t >::iterator' + | erase(self, it) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | + | erase(self, first, last) -> ivlset_t + | + | @param first: qvector< ivlset_t >::iterator + | @param last: qvector< ivlset_t >::iterator + | + | extract(self, *args) -> 'ivlset_t *' + | extract(self) -> ivlset_t + | + | find(self, *args) -> 'qvector< ivlset_t >::const_iterator' + | find(self, x) -> ivlset_t + | + | @param x: ivlset_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ivlset_t()) + | + | @param x: ivlset_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ivlset_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ivlset_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ivlset_t >::iterator' + | insert(self, it, x) -> ivlset_t + | + | @param it: qvector< ivlset_t >::iterator + | @param x: ivlset_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ivlset_t &' + | push_back(self, x) + | + | @param x: ivlset_t const & + | + | push_back(self) -> ivlset_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ivlset_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ivlset_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function asgop in module ida_hexrays: + +asgop(*args) -> 'ctype_t' + asgop(cop) -> ctype_t + Convert plain operator into assignment operator. For example, cot_add returns + cot_asgadd. + + @param cop: (C++: ctype_t) enum ctype_t + +Help on function asgop_revert in module ida_hexrays: + +asgop_revert(*args) -> 'ctype_t' + asgop_revert(cop) -> ctype_t + Convert assignment operator into plain operator. For example, cot_asgadd returns + cot_add + + @param cop: (C++: ctype_t) enum ctype_t + @return: cot_empty is the input operator is not an assignment operator. + +Help on class bit_bound_t in module ida_hexrays: + +class bit_bound_t(builtins.object) + | Proxy of C++ bit_bound_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, n=0, s=0) -> bit_bound_t + | + | @param n: int + | @param s: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bit_bound_t(...) + | delete_bit_bound_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nbits + | nbits + | + | sbits + | sbits + | + | thisown + | The membership flag + +Help on class bitset_t in module ida_hexrays: + +class bitset_t(builtins.object) + | Proxy of C++ bitset_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __init__(self, *args) + | __init__(self) -> bitset_t + | __init__(self, m) -> bitset_t + | + | @param m: bitset_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __len__ = count(self, *args) -> 'int' + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bitset_t(...) + | delete_bitset_t(self) + | + | add(self, *args) -> 'bool' + | add(self, bit) -> bool + | + | @param bit: int + | + | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | add(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | back(self, *args) -> 'int' + | back(self) -> int + | + | begin(self, *args) -> 'bitset_t::iterator' + | begin(self) -> iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitset_t const & + | + | copy(self, *args) -> 'bitset_t &' + | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & + | + | count(self, *args) -> 'int' + | count(self) -> int + | count(self, bit) -> int + | + | @param bit: int + | + | cut_at(self, *args) -> 'bool' + | cut_at(self, maxbit) -> bool + | + | @param maxbit: int + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'bitset_t::iterator' + | end(self) -> iterator + | + | fill_with_ones(self, *args) -> 'void' + | fill_with_ones(self, maxbit) + | + | @param maxbit: int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | has(self, *args) -> 'bool' + | has(self, bit) -> bool + | + | @param bit: int + | + | has_all(self, *args) -> 'bool' + | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_any(self, *args) -> 'bool' + | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_common(self, *args) -> 'bool' + | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | inc(self, *args) -> 'void' + | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int + | + | includes(self, *args) -> 'bool' + | includes(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | itat(self, *args) -> 'bitset_t::iterator' + | itat(self, n) -> iterator + | + | @param n: int + | + | itv(self, *args) -> 'int' + | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator + | + | last(self, *args) -> 'int' + | last(self) -> int + | + | shift_down(self, *args) -> 'void' + | shift_down(self, shift) + | + | @param shift: int + | + | sub(self, *args) -> 'bool' + | sub(self, bit) -> bool + | + | @param bit: int + | + | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | sub(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: bitset_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function block_chains_begin in module ida_hexrays: + +block_chains_begin(*args) -> 'block_chains_iterator_t' + block_chains_begin(set) -> block_chains_iterator_t + Get iterator pointing to the beginning of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + +Help on function block_chains_clear in module ida_hexrays: + +block_chains_clear(*args) -> 'void' + block_chains_clear(set) + Clear block_chains_t. + + @param set: (C++: block_chains_t *) + +Help on function block_chains_end in module ida_hexrays: + +block_chains_end(*args) -> 'block_chains_iterator_t' + block_chains_end(set) -> block_chains_iterator_t + Get iterator pointing to the end of block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + +Help on function block_chains_erase in module ida_hexrays: + +block_chains_erase(*args) -> 'void' + block_chains_erase(set, p) + Erase current element from block_chains_t. + + @param set: (C++: block_chains_t *) + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_find in module ida_hexrays: + +block_chains_find(*args) -> 'block_chains_iterator_t' + block_chains_find(set, val) -> block_chains_iterator_t + Find the specified key in set block_chains_t. + + @param set: (C++: const block_chains_t *) block_chains_t const * + @param val: (C++: const chain_t &) chain_t const & + +Help on function block_chains_free in module ida_hexrays: + +block_chains_free(*args) -> 'void' + block_chains_free(set) + Delete block_chains_t instance. + + @param set: (C++: block_chains_t *) + +Help on function block_chains_get in module ida_hexrays: + +block_chains_get(*args) -> 'chain_t &' + block_chains_get(p) -> chain_t + Get reference to the current set value. + + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_insert in module ida_hexrays: + +block_chains_insert(*args) -> 'block_chains_iterator_t' + block_chains_insert(set, val) -> block_chains_iterator_t + Insert new (chain_t) into set block_chains_t. + + @param set: (C++: block_chains_t *) + @param val: (C++: const chain_t &) chain_t const & + +Help on class block_chains_iterator_t in module ida_hexrays: + +class block_chains_iterator_t(builtins.object) + | Proxy of C++ block_chains_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> block_chains_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: block_chains_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_block_chains_iterator_t(...) + | delete_block_chains_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function block_chains_new in module ida_hexrays: + +block_chains_new(*args) -> 'block_chains_t *' + block_chains_new() -> block_chains_t + Create a new block_chains_t instance. + +Help on function block_chains_next in module ida_hexrays: + +block_chains_next(*args) -> 'block_chains_iterator_t' + block_chains_next(p) -> block_chains_iterator_t + Move to the next element. + + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_prev in module ida_hexrays: + +block_chains_prev(*args) -> 'block_chains_iterator_t' + block_chains_prev(p) -> block_chains_iterator_t + Move to the previous element. + + @param p: (C++: block_chains_iterator_t) + +Help on function block_chains_size in module ida_hexrays: + +block_chains_size(*args) -> 'size_t' + block_chains_size(set) -> size_t + Get size of block_chains_t. + + @param set: (C++: block_chains_t *) + +Help on class block_chains_t in module ida_hexrays: + +class block_chains_t(builtins.object) + | Proxy of C++ block_chains_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> block_chains_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_block_chains_t(...) + | delete_block_chains_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | get_chain(self, *args) -> 'chain_t *' + | get_chain(self, k, width=1) -> chain_t + | + | @param k: voff_t const & + | @param width: int + | + | get_chain(self, ch) -> chain_t + | + | @param ch: chain_t const & + | + | get_reg_chain(self, *args) -> 'chain_t *' + | get_reg_chain(self, reg, width=1) -> chain_t + | + | @param reg: mreg_t + | @param width: int + | + | get_stk_chain(self, *args) -> 'chain_t *' + | get_stk_chain(self, off, width=1) -> chain_t + | + | @param off: sval_t + | @param width: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class block_chains_vec_t in module ida_hexrays: + +class block_chains_vec_t(builtins.object) + | Proxy of C++ qvector< block_chains_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'block_chains_t const &' + | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> block_chains_vec_t + | __init__(self, x) -> block_chains_vec_t + | + | @param x: qvector< block_chains_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & + | + | __swig_destroy__ = delete_block_chains_vec_t(...) + | delete_block_chains_vec_t(self) + | + | at(self, *args) -> 'block_chains_t const &' + | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | begin(self) -> block_chains_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | end(self) -> block_chains_t + | + | erase(self, *args) -> 'qvector< block_chains_t >::iterator' + | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | + | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator + | + | extract(self, *args) -> 'block_chains_t *' + | extract(self) -> block_chains_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< block_chains_t >::iterator' + | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'block_chains_t &' + | push_back(self, x) + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< block_chains_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function boundaries_begin in module ida_hexrays: + +boundaries_begin(*args) -> 'boundaries_iterator_t' + boundaries_begin(map) -> boundaries_iterator_t + Get iterator pointing to the beginning of boundaries_t. + + @param map: (C++: const boundaries_t *) boundaries_t const * + +Help on function boundaries_clear in module ida_hexrays: + +boundaries_clear(*args) -> 'void' + boundaries_clear(map) + Clear boundaries_t. + + @param map: (C++: boundaries_t *) + +Help on function boundaries_end in module ida_hexrays: + +boundaries_end(*args) -> 'boundaries_iterator_t' + boundaries_end(map) -> boundaries_iterator_t + Get iterator pointing to the end of boundaries_t. + + @param map: (C++: const boundaries_t *) boundaries_t const * + +Help on function boundaries_erase in module ida_hexrays: + +boundaries_erase(*args) -> 'void' + boundaries_erase(map, p) + Erase current element from boundaries_t. + + @param map: (C++: boundaries_t *) + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_find in module ida_hexrays: + +boundaries_find(*args) -> 'boundaries_iterator_t' + boundaries_find(map, key) -> boundaries_iterator_t + Find the specified key in boundaries_t. + + @param map: (C++: const boundaries_t *) boundaries_t const * + @param key: (C++: const cinsn_t *&) cinsn_t const * + +Help on function boundaries_first in module ida_hexrays: + +boundaries_first(*args) -> 'cinsn_t *const &' + boundaries_first(p) -> cinsn_t + Get reference to the current map key. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_free in module ida_hexrays: + +boundaries_free(*args) -> 'void' + boundaries_free(map) + Delete boundaries_t instance. + + @param map: (C++: boundaries_t *) + +Help on function boundaries_insert in module ida_hexrays: + +boundaries_insert(*args) -> 'boundaries_iterator_t' + boundaries_insert(map, key, val) -> boundaries_iterator_t + Insert new (cinsn_t *, rangeset_t) pair into boundaries_t. + + @param map: (C++: boundaries_t *) + @param key: (C++: const cinsn_t *&) cinsn_t const * + @param val: (C++: const rangeset_t &) rangeset_t const & + +Help on class boundaries_iterator_t in module ida_hexrays: + +class boundaries_iterator_t(builtins.object) + | Proxy of C++ boundaries_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> boundaries_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: boundaries_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_boundaries_iterator_t(...) + | delete_boundaries_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function boundaries_new in module ida_hexrays: + +boundaries_new(*args) -> 'boundaries_t *' + boundaries_new() -> boundaries_t + Create a new boundaries_t instance. + +Help on function boundaries_next in module ida_hexrays: + +boundaries_next(*args) -> 'boundaries_iterator_t' + boundaries_next(p) -> boundaries_iterator_t + Move to the next element. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_prev in module ida_hexrays: + +boundaries_prev(*args) -> 'boundaries_iterator_t' + boundaries_prev(p) -> boundaries_iterator_t + Move to the previous element. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_second in module ida_hexrays: + +boundaries_second(*args) -> 'rangeset_t &' + boundaries_second(p) -> rangeset_t + Get reference to the current map value. + + @param p: (C++: boundaries_iterator_t) + +Help on function boundaries_size in module ida_hexrays: + +boundaries_size(*args) -> 'size_t' + boundaries_size(map) -> size_t + Get size of boundaries_t. + + @param map: (C++: boundaries_t *) + +Help on class boundaries_t in module ida_hexrays: + +class boundaries_t(builtins.object) + | Proxy of C++ std::map< cinsn_t *,rangeset_t > class. + | + | Methods defined here: + | + | __begin = boundaries_begin(...) + | boundaries_begin(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | + | __clear = boundaries_clear(...) + | boundaries_clear(map) + | + | Parameters + | ---------- + | map: boundaries_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = boundaries_end(...) + | boundaries_end(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | + | __erase = boundaries_erase(...) + | boundaries_erase(map, p) + | + | Parameters + | ---------- + | map: boundaries_t * + | p: boundaries_iterator_t + | + | __find = boundaries_find(...) + | boundaries_find(map, key) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | key: cinsn_t const * + | + | __first = boundaries_first(...) + | boundaries_first(p) -> cinsn_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> boundaries_t + | + | __insert = boundaries_insert(...) + | boundaries_insert(map, key, val) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t * + | key: cinsn_t const * + | val: rangeset_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = boundaries_next(...) + | boundaries_next(p) -> boundaries_iterator_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = boundaries_second(...) + | boundaries_second(p) -> rangeset_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = boundaries_size(...) + | boundaries_size(map) -> size_t + | + | Parameters + | ---------- + | map: boundaries_t * + | + | __swig_destroy__ = delete_boundaries_t(...) + | delete_boundaries_t(self) + | + | at(self, *args) -> 'rangeset_t &' + | at(self, _Keyval) -> rangeset_t + | + | @param _Keyval: cinsn_t *const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.cinsn_t'> + | Proxy of C++ cinsn_t class. + | + | valuetype = <class 'ida_range.rangeset_t'> + | Proxy of C++ rangeset_t class. + +Help on function call_helper in module ida_hexrays: + +call_helper(rettype, args, *rest) + Create a helper call. + +Help on class carg_t in module ida_hexrays: + +class carg_t(cexpr_t) + | Proxy of C++ carg_t class. + | + | Method resolution order: + | carg_t + | cexpr_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: carg_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: carg_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: carg_t const & + | + | __init__(self, *args) + | __init__(self) -> carg_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: carg_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: carg_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: carg_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_carg_t(...) + | delete_carg_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: carg_t const & + | + | consume_cexpr(self, *args) -> 'void' + | consume_cexpr(self, e) + | + | @param e: cexpr_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | formal_type + | formal_type + | + | is_vararg + | is_vararg + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cexpr_t: + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_a(self, *args) -> 'carglist_t *' + | _get_a(self) -> carglist_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_insn(self, *args) -> 'cinsn_t *' + | _get_insn(self) -> cinsn_t + | + | _get_m(self, *args) -> 'int' + | _get_m(self) -> int + | + | _get_n(self, *args) -> 'cnumber_t *' + | _get_n(self) -> cnumber_t + | + | _get_obj_ea(self, *args) -> 'ea_t' + | _get_obj_ea(self) -> ea_t + | + | _get_ptrsize(self, *args) -> 'int' + | _get_ptrsize(self) -> int + | + | _get_refwidth(self, *args) -> 'int' + | _get_refwidth(self) -> int + | + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * + | + | _get_x(self, *args) -> 'cexpr_t *' + | _get_x(self) -> cexpr_t + | + | _get_y(self, *args) -> 'cexpr_t *' + | _get_y(self) -> cexpr_t + | + | _get_z(self, *args) -> 'cexpr_t *' + | _get_z(self) -> cexpr_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_insn(self, *args) -> 'void' + | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * + | + | _set_m(self, *args) -> 'void' + | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_n(self, *args) -> 'void' + | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * + | + | _set_obj_ea(self, *args) -> 'void' + | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_ptrsize(self, *args) -> 'void' + | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_refwidth(self, *args) -> 'void' + | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_string(self, *args) -> 'void' + | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_x(self, *args) -> 'void' + | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_y(self, *args) -> 'void' + | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_z(self, *args) -> 'void' + | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | assign(self, *args) -> 'cexpr_t &' + | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & + | + | calc_type(self, *args) -> 'void' + | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. + | + | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) + | + | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) + | + | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? + | + | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP + | + | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | equal_effect(self, *args) -> 'bool' + | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal + | + | find_num_op(self, *args) -> 'cexpr_t *' + | find_num_op(self) -> cexpr_t + | + | find_op(self, *args) -> 'cexpr_t *' + | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t + | + | get_1num_op(self, *args) -> 'bool' + | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** + | + | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. + | + | get_high_nbit_bound(self, *args) -> 'bit_bound_t' + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero + | + | get_low_nbit_bound(self, *args) -> 'int' + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. + | + | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. + | + | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t + | Get expression sign. + | + | get_v(self, *args) -> 'var_ref_t *' + | get_v(self) -> var_ref_t + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. + | + | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. + | + | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. + | + | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent + | + | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) + | + | is_cstr(self, *args) -> 'bool' + | is_cstr(self) -> bool + | + | is_fpop(self, *args) -> 'bool' + | is_fpop(self) -> bool + | + | is_jumpout(self, *args) -> 'bool' + | is_jumpout(self) -> bool + | + | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool + | Check if the expression is a negative number. + | + | is_nice_cond(self, *args) -> 'bool' + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. + | + | is_nice_expr(self, *args) -> 'bool' + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. + | + | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. + | + | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. + | + | is_odd_lvalue(self, *args) -> 'bool' + | is_odd_lvalue(self) -> bool + | + | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool + | Is expression signed? + | + | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool + | Is expression unsigned? + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool + | Check if the expression is a zero. + | + | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool + | May the expression be a pointer? + | + | numval(self, *args) -> 'uint64' + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign + | + | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. + | + | set_cpadone(self, *args) -> 'void' + | set_cpadone(self) + | + | set_v(self, *args) -> 'void' + | set_v(self, v) + | + | @param v: var_ref_t const * + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cexpr_t & + | + | theother(self, *args) -> 'cexpr_t *' + | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cexpr_t: + | + | a + | + | exflags + | exflags + | + | fpc + | + | helper + | + | insn + | + | m + | + | n + | + | obj_ea + | + | operands + | return a dictionary with the operands of a cexpr_t. + | + | opname + | + | ptrsize + | + | refwidth + | + | string + | + | type + | type + | + | v + | + | x + | + | y + | + | z + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from cexpr_t: + | + | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cexpr + | cexpr + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on class carglist_t in module ida_hexrays: + +class carglist_t(qvector_carg_t) + | Proxy of C++ carglist_t class. + | + | Method resolution order: + | carglist_t + | qvector_carg_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __init__(self, *args) + | __init__(self) -> carglist_t + | __init__(self, ftype, fl=0) -> carglist_t + | + | @param ftype: tinfo_t const & + | @param fl: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: carglist_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_carglist_t(...) + | delete_carglist_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: carglist_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | flags + | + | functype + | functype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_carg_t: + | + | __getitem__(self, *args) -> 'carg_t const &' + | __getitem__(self, i) -> carg_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: carg_t const & + | + | append = push_back(self, *args) -> 'carg_t &' + | push_back(self, x) + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t + | + | at = __getitem__(self, *args) -> 'carg_t const &' + | __getitem__(self, i) -> carg_t + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< carg_t >::const_iterator' + | begin(self) -> carg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< carg_t >::const_iterator' + | end(self) -> carg_t + | + | erase(self, *args) -> 'qvector< carg_t >::iterator' + | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | + | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator + | + | extract(self, *args) -> 'carg_t *' + | extract(self) -> carg_t + | + | find(self, *args) -> 'qvector< carg_t >::const_iterator' + | find(self, x) -> carg_t + | + | @param x: carg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=carg_t()) + | + | @param x: carg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: carg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< carg_t >::iterator' + | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'carg_t &' + | push_back(self, x) + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< carg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_carg_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class casm_t in module ida_hexrays: + +class casm_t(ida_pro.eavec_t)↗ + | Proxy of C++ casm_t class. + | + | Method resolution order: + | casm_t + | ida_pro.eavec_t↗ + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: casm_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: casm_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: casm_t const & + | + | __init__(self, *args) + | __init__(self, ea) -> casm_t + | + | @param ea: ea_t + | + | __init__(self, r) -> casm_t + | + | @param r: casm_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: casm_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: casm_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: casm_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_casm_t(...) + | delete_casm_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: casm_t const & + | + | one_insn(self, *args) -> 'bool' + | one_insn(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_pro.eavec_t:↗ + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned-ea-like-numeric-type const &↗ + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ + | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | + | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ + | begin(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | begin(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ + | end(self) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | end(self) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | erase(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ + | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param last: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | extract(self, *args) -> 'unsigned-ea-like-numeric-type *'↗ + | extract(self) -> unsigned-ea-like-numeric-type *↗ + | + | find(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::const_iterator'↗ + | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: unsigned-ea-like-numeric-type *↗ + | @param len: size_t + | + | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ + | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | @param it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ + | push_back(self, x) + | + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned-ea-like-numeric-type const &↗ + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< unsigned-ea-like-numeric-type > &↗ + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_pro.eavec_t:↗ + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class cblock_t in module ida_hexrays: + +class cblock_t(cinsn_list_t) + | Proxy of C++ cblock_t class. + | + | Method resolution order: + | cblock_t + | cinsn_list_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __init__(self, *args) + | __init__(self) -> cblock_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cblock_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cblock_t(...) + | delete_cblock_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cblock_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cinsn_list_t: + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cinsn_list_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class ccase_t in module ida_hexrays: + +class ccase_t(cinsn_t) + | Proxy of C++ ccase_t class. + | + | Method resolution order: + | ccase_t + | cinsn_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __init__(self, *args) + | __init__(self) -> ccase_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ccase_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ccase_t(...) + | delete_ccase_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ccase_t const & + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | value(self, *args) -> 'uint64 const &' + | value(self, i) -> uint64 const & + | + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | values + | values + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cinsn_t: + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_casm(self, *args) -> 'casm_t *' + | _get_casm(self) -> casm_t + | + | _get_cblock(self, *args) -> 'cblock_t *' + | _get_cblock(self) -> cblock_t + | + | _get_cdo(self, *args) -> 'cdo_t *' + | _get_cdo(self) -> cdo_t + | + | _get_cexpr(self, *args) -> 'cexpr_t *' + | _get_cexpr(self) -> cexpr_t + | + | _get_cfor(self, *args) -> 'cfor_t *' + | _get_cfor(self) -> cfor_t + | + | _get_cgoto(self, *args) -> 'cgoto_t *' + | _get_cgoto(self) -> cgoto_t + | + | _get_cif(self, *args) -> 'cif_t *' + | _get_cif(self) -> cif_t + | + | _get_creturn(self, *args) -> 'creturn_t *' + | _get_creturn(self) -> creturn_t + | + | _get_cswitch(self, *args) -> 'cswitch_t *' + | _get_cswitch(self) -> cswitch_t + | + | _get_cwhile(self, *args) -> 'cwhile_t *' + | _get_cwhile(self) -> cwhile_t + | + | _print(self, *args) -> 'void' + | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * + | + | _set_casm(self, *args) -> 'void' + | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * + | + | _set_cblock(self, *args) -> 'void' + | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * + | + | _set_cdo(self, *args) -> 'void' + | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * + | + | _set_cexpr(self, *args) -> 'void' + | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_cfor(self, *args) -> 'void' + | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * + | + | _set_cgoto(self, *args) -> 'void' + | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * + | + | _set_cif(self, *args) -> 'void' + | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * + | + | _set_creturn(self, *args) -> 'void' + | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * + | + | _set_cswitch(self, *args) -> 'void' + | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * + | + | _set_cwhile(self, *args) -> 'void' + | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * + | + | assign(self, *args) -> 'cinsn_t &' + | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. + | + | collect_free_breaks(self, *args) -> 'bool' + | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found + | + | collect_free_continues(self, *args) -> 'bool' + | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found + | + | contains_free_break(self, *args) -> 'bool' + | contains_free_break(self) -> bool + | Check if the statement has free break statements. + | + | contains_free_continue(self, *args) -> 'bool' + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE + | + | create_if(self, *args) -> 'cif_t &' + | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | is_epilog(self) + | + | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) + | + | new_insn(self, *args) -> 'cinsn_t &' + | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cinsn_t & + | + | zero(self, *args) -> 'void' + | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. + | + | ---------------------------------------------------------------------- + | Static methods inherited from cinsn_t: + | + | insn_is_epilog(*args) -> 'bool' + | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cinsn_t: + | + | casm + | + | cblock + | + | cdo + | + | cexpr + | + | cfor + | + | cgoto + | + | cif + | + | creturn + | + | cswitch + | + | cwhile + | + | details + | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. + | + | opname + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from cinsn_t: + | + | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on class ccases_t in module ida_hexrays: + +class ccases_t(qvector_ccase_t) + | Proxy of C++ ccases_t class. + | + | Method resolution order: + | ccases_t + | qvector_ccase_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __init__(self, *args) + | __init__(self) -> ccases_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ccases_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ccases_t(...) + | delete_ccases_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ccases_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_ccase_t: + | + | __getitem__(self, *args) -> 'ccase_t const &' + | __getitem__(self, i) -> ccase_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ccase_t const & + | + | append = push_back(self, *args) -> 'ccase_t &' + | push_back(self, x) + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t + | + | at = __getitem__(self, *args) -> 'ccase_t const &' + | __getitem__(self, i) -> ccase_t + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' + | begin(self) -> ccase_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ccase_t >::const_iterator' + | end(self) -> ccase_t + | + | erase(self, *args) -> 'qvector< ccase_t >::iterator' + | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | + | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator + | + | extract(self, *args) -> 'ccase_t *' + | extract(self) -> ccase_t + | + | find(self, *args) -> 'qvector< ccase_t >::const_iterator' + | find(self, x) -> ccase_t + | + | @param x: ccase_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ccase_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ccase_t >::iterator' + | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ccase_t &' + | push_back(self, x) + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ccase_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_ccase_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class cdg_insn_iterator_t in module ida_hexrays: + +class cdg_insn_iterator_t(builtins.object) + | Proxy of C++ cdg_insn_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, mba_) -> cdg_insn_iterator_t + | + | @param mba_: mba_t const * + | + | __init__(self, r) -> cdg_insn_iterator_t + | + | @param r: cdg_insn_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cdg_insn_iterator_t(...) + | delete_cdg_insn_iterator_t(self) + | + | dslot_with_xrefs(self, *args) -> 'bool' + | dslot_with_xrefs(self) -> bool + | + | has_dslot(self, *args) -> 'bool' + | has_dslot(self) -> bool + | + | is_severed_dslot(self, *args) -> 'bool' + | is_severed_dslot(self) -> bool + | + | next(self, *args) -> 'merror_t' + | next(self, ins) -> merror_t + | + | @param ins: insn_t * + | + | ok(self, *args) -> 'bool' + | ok(self) -> bool + | + | start(self, *args) -> 'void' + | start(self, rng) + | + | @param rng: range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dslot + | dslot + | + | dslot_insn + | dslot_insn + | + | ea + | ea + | + | end + | end + | + | is_likely_dslot + | is_likely_dslot + | + | mba + | mba + | + | severed_branch + | severed_branch + | + | thisown + | The membership flag + +Help on class cdo_t in module ida_hexrays: + +class cdo_t(cloop_t) + | Proxy of C++ cdo_t class. + | + | Method resolution order: + | cdo_t + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __init__(self, *args) + | __init__(self) -> cdo_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cdo_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cdo_t(...) + | delete_cdo_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cdo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cloop_t: + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cloop_t: + | + | body + | body + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class ceinsn_t in module ida_hexrays: + +class ceinsn_t(builtins.object) + | Proxy of C++ ceinsn_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ceinsn_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ceinsn_t(...) + | delete_ceinsn_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + | + | thisown + | The membership flag + +Help on function cexpr_operands in module ida_hexrays: + +cexpr_operands(self) + return a dictionary with the operands of a cexpr_t. + +Help on class cexpr_t in module ida_hexrays: + +class cexpr_t(citem_t) + | Proxy of C++ cexpr_t class. + | + | Method resolution order: + | cexpr_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __init__(self, *args) + | __init__(self) -> cexpr_t + | __init__(self, cexpr_op, _x) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | + | __init__(self, cexpr_op, _x, _y, _z) -> cexpr_t + | + | @param cexpr_op: enum ctype_t + | @param _x: cexpr_t * + | @param _y: cexpr_t * + | @param _z: cexpr_t * + | + | __init__(self, r) -> cexpr_t + | + | @param r: cexpr_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cexpr_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cexpr_t(...) + | delete_cexpr_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_a(self, *args) -> 'carglist_t *' + | _get_a(self) -> carglist_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_insn(self, *args) -> 'cinsn_t *' + | _get_insn(self) -> cinsn_t + | + | _get_m(self, *args) -> 'int' + | _get_m(self) -> int + | + | _get_n(self, *args) -> 'cnumber_t *' + | _get_n(self) -> cnumber_t + | + | _get_obj_ea(self, *args) -> 'ea_t' + | _get_obj_ea(self) -> ea_t + | + | _get_ptrsize(self, *args) -> 'int' + | _get_ptrsize(self) -> int + | + | _get_refwidth(self, *args) -> 'int' + | _get_refwidth(self) -> int + | + | _get_string(self, *args) -> 'char const *' + | _get_string(self) -> char const * + | + | _get_x(self, *args) -> 'cexpr_t *' + | _get_x(self) -> cexpr_t + | + | _get_y(self, *args) -> 'cexpr_t *' + | _get_y(self) -> cexpr_t + | + | _get_z(self, *args) -> 'cexpr_t *' + | _get_z(self) -> cexpr_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cexpr_t * + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: carglist_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_insn(self, *args) -> 'void' + | _set_insn(self, _v) + | + | Parameters + | ---------- + | _v: cinsn_t * + | + | _set_m(self, *args) -> 'void' + | _set_m(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_n(self, *args) -> 'void' + | _set_n(self, _v) + | + | Parameters + | ---------- + | _v: cnumber_t * + | + | _set_obj_ea(self, *args) -> 'void' + | _set_obj_ea(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_ptrsize(self, *args) -> 'void' + | _set_ptrsize(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_refwidth(self, *args) -> 'void' + | _set_refwidth(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_string(self, *args) -> 'void' + | _set_string(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_x(self, *args) -> 'void' + | _set_x(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_y(self, *args) -> 'void' + | _set_y(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_z(self, *args) -> 'void' + | _set_z(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | assign(self, *args) -> 'cexpr_t &' + | assign(self, r) -> cexpr_t + | + | @param r: cexpr_t const & + | + | calc_type(self, *args) -> 'void' + | calc_type(self, recursive) + | Calculate the type of the expression. Use this function to calculate the + | expression type when a new expression is built + | + | @param recursive: (C++: bool) if true, types of all children expression will be calculated + | before calculating our type + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the expression. This function properly deletes all children and sets the + | item type to cot_empty. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cexpr_t const & + | + | contains_comma(self, *args) -> 'bool' + | contains_comma(self, times=1) -> bool + | Does the expression contain a comma operator? + | + | @param times: (C++: int) + | + | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | Does the expression contain a comma operator or an embedded statement operator + | or a label? + | + | @param maxcommas: (C++: int) + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, times=1) -> bool + | Does the expression contain an embedded statement operator? + | + | @param times: (C++: int) + | + | contains_insn_or_label(self, *args) -> 'bool' + | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? + | + | contains_operator(self, *args) -> 'bool' + | contains_operator(self, needed_op, times=1) -> bool + | Check if the expression contains the specified operator. + | + | @param needed_op: (C++: ctype_t) operator code to search for + | @param times: (C++: int) how many times the operator code should be present + | @return: true if the expression has at least TIMES children with NEEDED_OP + | + | cpadone(self, *args) -> 'bool' + | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | equal_effect(self, *args) -> 'bool' + | equal_effect(self, r) -> bool + | Compare two expressions. This function tries to compare two expressions in an + | 'intelligent' manner. For example, it knows about commutitive operators and can + | ignore useless casts. + | + | @param r: (C++: const cexpr_t &) the expression to compare against the current expression + | @return: true expressions can be considered equal + | + | find_num_op(self, *args) -> 'cexpr_t *' + | find_num_op(self) -> cexpr_t + | + | find_op(self, *args) -> 'cexpr_t *' + | find_op(self, _op) -> cexpr_t + | + | @param _op: enum ctype_t + | + | get_1num_op(self, *args) -> 'bool' + | get_1num_op(self, o1, o2) -> bool + | + | @param o1: cexpr_t ** + | @param o2: cexpr_t ** + | + | get_const_value(self, *args) -> 'bool' + | get_const_value(self) -> bool + | Get expression value. + | + | @return: true if the expression is a number. + | + | get_high_nbit_bound(self, *args) -> 'bit_bound_t' + | get_high_nbit_bound(self) -> bit_bound_t + | Get max number of bits that can really be used by the expression. For example, x + | % 16 can yield only 4 non-zero bits, higher bits are zero + | + | get_low_nbit_bound(self, *args) -> 'int' + | get_low_nbit_bound(self) -> int + | Get min number of bits that are certainly required to represent the expression. + | For example, constant 16 always uses 5 bits: 10000. + | + | get_ptr_or_array(self, *args) -> 'cexpr_t *' + | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. + | + | get_type_sign(self, *args) -> 'type_sign_t' + | get_type_sign(self) -> type_sign_t + | Get expression sign. + | + | get_v(self, *args) -> 'var_ref_t *' + | get_v(self) -> var_ref_t + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self) -> bool + | Check if the expression has side effects. Calls, pre/post inc/dec, and + | assignments have side effects. + | + | is_call_arg_of(self, *args) -> 'bool' + | is_call_arg_of(self, parent) -> bool + | Is call argument? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is a call argument of the specified parent + | expression. + | + | is_call_object_of(self, *args) -> 'bool' + | is_call_object_of(self, parent) -> bool + | Is call object? + | + | @param parent: (C++: const citem_t *) citem_t const * + | @return: true if our expression is the call object of the specified parent + | expression. + | + | is_child_of(self, *args) -> 'bool' + | is_child_of(self, parent) -> bool + | Verify if the specified item is our parent. + | + | @param parent: (C++: const citem_t *) possible parent item + | @return: true if the specified item is our parent + | + | is_const_value(self, *args) -> 'bool' + | is_const_value(self, _v) -> bool + | Check if the expression is a number with the specified value. + | + | @param _v: (C++: uint64) + | + | is_cstr(self, *args) -> 'bool' + | is_cstr(self) -> bool + | + | is_fpop(self, *args) -> 'bool' + | is_fpop(self) -> bool + | + | is_jumpout(self, *args) -> 'bool' + | is_jumpout(self) -> bool + | + | is_negative_const(self, *args) -> 'bool' + | is_negative_const(self) -> bool + | Check if the expression is a negative number. + | + | is_nice_cond(self, *args) -> 'bool' + | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean type. + | + | is_nice_expr(self, *args) -> 'bool' + | is_nice_expr(self) -> bool + | Is nice expression? Nice expressions do not contain comma operators, embedded + | statements, or labels. + | + | is_non_negative_const(self, *args) -> 'bool' + | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. + | + | is_non_zero_const(self, *args) -> 'bool' + | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. + | + | is_odd_lvalue(self, *args) -> 'bool' + | is_odd_lvalue(self) -> bool + | + | is_type_signed(self, *args) -> 'bool' + | is_type_signed(self) -> bool + | Is expression signed? + | + | is_type_unsigned(self, *args) -> 'bool' + | is_type_unsigned(self) -> bool + | Is expression unsigned? + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | is_zero_const(self, *args) -> 'bool' + | is_zero_const(self) -> bool + | Check if the expression is a zero. + | + | maybe_ptr(self, *args) -> 'bool' + | maybe_ptr(self) -> bool + | May the expression be a pointer? + | + | numval(self, *args) -> 'uint64' + | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only on cot_num + | expressions! + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print expression into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | put_number(self, *args) -> 'void' + | put_number(self, func, value, nbytes, sign=no_sign) + | Assign a number to the expression. + | + | @param func: (C++: cfunc_t *) current function + | @param value: (C++: uint64) number value + | @param nbytes: (C++: int) size of the number in bytes + | @param sign: (C++: type_sign_t) number sign + | + | requires_lvalue(self, *args) -> 'bool' + | requires_lvalue(self, child) -> bool + | Check if the expression requires an lvalue. + | + | @param child: (C++: const cexpr_t *) The function will check if this child of our expression must be an + | lvalue. + | @return: true if child must be an lvalue. + | + | set_cpadone(self, *args) -> 'void' + | set_cpadone(self) + | + | set_v(self, *args) -> 'void' + | set_v(self, v) + | + | @param v: var_ref_t const * + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cexpr_t & + | + | theother(self, *args) -> 'cexpr_t *' + | theother(self, what) -> cexpr_t + | + | @param what: cexpr_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | a + | + | exflags + | exflags + | + | fpc + | + | helper + | + | insn + | + | m + | + | n + | + | obj_ea + | + | operands + | return a dictionary with the operands of a cexpr_t. + | + | opname + | + | ptrsize + | + | refwidth + | + | string + | + | thisown + | The membership flag + | + | type + | type + | + | v + | + | x + | + | y + | + | z + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | op_to_typename = {0: 'empty', 1: 'comma', 2: 'asg', 3: 'asgbor', 4: 'a... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cexpr + | cexpr + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on class cfor_t in module ida_hexrays: + +class cfor_t(cloop_t) + | Proxy of C++ cfor_t class. + | + | Method resolution order: + | cfor_t + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __init__(self, *args) + | __init__(self) -> cfor_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cfor_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cfor_t(...) + | delete_cfor_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cfor_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | init + | init + | + | step + | step + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cloop_t: + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cloop_t: + | + | body + | body + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class cfunc_parentee_t in module ida_hexrays: + +class cfunc_parentee_t(ctree_parentee_t) + | Proxy of C++ cfunc_parentee_t class. + | + | Method resolution order: + | cfunc_parentee_t + | ctree_parentee_t + | ctree_visitor_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, f, post=False) -> cfunc_parentee_t + | + | @param f: cfunc_t * + | @param post: bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cfunc_parentee_t(...) + | delete_cfunc_parentee_t(self) + | + | calc_rvalue_type(self, *args) -> 'bool' + | calc_rvalue_type(self, target, e) -> bool + | Calculate rvalue type. This function tries to determine the type of the + | specified item based on its context. For example, if the current expression is + | the right side of an assignment operator, the type of its left side will be + | returned. This function can be used to determine the 'best' type of the + | specified expression. + | + | @param target: (C++: tinfo_t *) 'best' type of the expression will be returned here + | @param e: (C++: const cexpr_t *) expression to determine the desired type + | @return: false if failed + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | func + | func + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ctree_parentee_t: + | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | + | recalc_parent_types(self, *args) -> 'bool' + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. + | + | ---------------------------------------------------------------------- + | Methods inherited from ctree_visitor_t: + | + | apply_to(self, *args) -> 'int' + | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | apply_to_exprs(self, *args) -> 'int' + | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | clr_prune(self, *args) -> 'void' + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. + | + | clr_restart(self, *args) -> 'void' + | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. + | + | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool + | Should the leave...() functions be called? + | + | leave_expr(self, *args) -> 'int' + | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | leave_insn(self, *args) -> 'int' + | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool + | Should the parent information by maintained? + | + | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool + | Should the traversal skip the children of the current item? + | + | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool + | Should the traversal restart? + | + | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool + | Should all expressions be automatically pruned? + | + | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. + | + | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. + | + | set_restart(self, *args) -> 'void' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() + | + | visit_expr(self, *args) -> 'int' + | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | visit_insn(self, *args) -> 'int' + | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ctree_visitor_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cv_flags + | cv_flags + | + | parents + | parents + +Help on class cfunc_t in module ida_hexrays: + +class cfunc_t(builtins.object) + | Proxy of C++ cfunc_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_cfunc_t(...) + | delete_cfunc_t(self) + | + | build_c_tree(self, *args) -> 'void' + | build_c_tree(self) + | Generate the function body. This function (re)generates the function body from + | the underlying microcode. + | + | del_orphan_cmts(self, *args) -> 'int' + | del_orphan_cmts(self) -> int + | Delete all orphan comments. The save_user_cmts() function must be called after + | this call. + | + | find_item_coords(self, *args) -> 'PyObject *' + | find_item_coords(self, item, px, py) -> bool + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | + | find_item_coords(self, item) -> PyObject * + | + | @param item: citem_t const * + | + | find_label(self, *args) -> 'citem_t *' + | find_label(self, label) -> citem_t + | Find the label. + | + | @param label: (C++: int) + | @return: pointer to the ctree item with the specified label number. + | + | gather_derefs(self, *args) -> 'bool' + | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * + | + | get_boundaries(self, *args) -> 'boundaries_t &' + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. + | + | get_eamap(self, *args) -> 'eamap_t &' + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. + | + | get_func_type(self, *args) -> 'bool' + | get_func_type(self, type) -> bool + | Get the function type. + | + | @param type: (C++: tinfo_t *) variable where the function type is returned + | @return: false if failure + | + | get_line_item(self, *args) -> 'bool' + | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | Get ctree item for the specified cursor position. + | + | @param line: (C++: const char *) line of decompilation text (element of sv) + | @param x: (C++: int) x cursor coordinate in the line + | @param is_ctree_line: (C++: bool) does the line belong to statement area? (if not, it is + | assumed to belong to the declaration area) + | @param phead: (C++: ctree_item_t *) ptr to the first item on the line (used to attach block comments). + | May be nullptr + | @param pitem: (C++: ctree_item_t *) ptr to the current item. May be nullptr + | @param ptail: (C++: ctree_item_t *) ptr to the last item on the line (used to attach indented + | comments). May be nullptr + | @see: vdui_t::get_current_item() + | @return: false if failed to get the current item + | + | get_lvars(self, *args) -> 'lvars_t *' + | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. + | + | get_pseudocode(self, *args) -> 'strvec_t const &' + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. + | + | get_stkoff_delta(self, *args) -> 'sval_t' + | get_stkoff_delta(self) -> sval_t + | Get stack offset delta. The local variable stack offsets retrieved by + | v.location.stkoff() should be adjusted before being used as stack frame offsets + | in IDA. + | + | @return: the delta to apply. example: ida_stkoff = v.location.stkoff() - + | f->get_stkoff_delta() + | + | get_user_cmt(self, *args) -> 'char const *' + | get_user_cmt(self, loc, rt) -> char const * + | Retrieve a user defined comment. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param rt: (C++: cmt_retrieval_type_t) should already retrieved comments retrieved again? + | @return: pointer to the comment string or nullptr + | + | get_user_iflags(self, *args) -> 'int32' + | get_user_iflags(self, loc) -> int32 + | Retrieve citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @return: ctree item iflags bits or 0 + | + | get_user_union_selection(self, *args) -> 'bool' + | get_user_union_selection(self, ea, path) -> bool + | Retrieve a user defined union field selection. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: intvec_t *) out: path describing the union selection. + | @return: pointer to the path or nullptr + | + | get_warnings(self, *args) -> 'hexwarns_t &' + | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings + | + | has_orphan_cmts(self, *args) -> 'bool' + | has_orphan_cmts(self) -> bool + | Check if there are orphan comments. + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | + | print_dcl(self, *args) -> 'void' + | print_dcl(self) + | Print function prototype. + | + | print_func(self, *args) -> 'void' + | print_func(self, vp) + | Print function text. + | + | @param vp: (C++: vc_printer_t &) printer helper class to receive the generated text. + | + | refresh_func_ctext(self, *args) -> 'void' + | refresh_func_ctext(self) + | Refresh ctext after a ctree modification. This function informs the decompiler + | that ctree (body) have been modified and ctext (sv) does not correspond to it + | anymore. It also refreshes the pseudocode windows if there is any. + | + | release(self, *args) -> 'void' + | release(self) + | + | remove_unused_labels(self, *args) -> 'void' + | remove_unused_labels(self) + | Remove unused labels. This function checks what labels are really used by the + | function and removes the unused ones. You must call it after deleting a goto + | statement. + | + | save_user_cmts(self, *args) -> 'void' + | save_user_cmts(self) + | Save user-defined comments into the database. + | + | save_user_iflags(self, *args) -> 'void' + | save_user_iflags(self) + | Save user-defined iflags into the database. + | + | save_user_labels(self, *args) -> 'void' + | save_user_labels(self) + | Save user-defined labels into the database. + | + | save_user_numforms(self, *args) -> 'void' + | save_user_numforms(self) + | Save user-defined number formats into the database. + | + | save_user_unions(self, *args) -> 'void' + | save_user_unions(self) + | Save user-defined union field selections into the database. + | + | set_user_cmt(self, *args) -> 'void' + | set_user_cmt(self, loc, cmt) + | Set a user defined comment. This function stores the specified comment in the + | cfunc_t structure. The save_user_cmts() function must be called after it. + | + | @param loc: (C++: const treeloc_t &) ctree location + | @param cmt: (C++: const char *) new comment. if empty or nullptr, then an existing comment is + | deleted. + | + | set_user_iflags(self, *args) -> 'void' + | set_user_iflags(self, loc, iflags) + | Set citem iflags. + | + | @param loc: (C++: const citem_locator_t &) citem locator + | @param iflags: (C++: int32) new iflags + | + | set_user_union_selection(self, *args) -> 'void' + | set_user_union_selection(self, ea, path) + | Set a union field selection. The save_user_unions() function must be called + | after calling this function. + | + | @param ea: (C++: ea_t) address + | @param path: (C++: const intvec_t &) in: path describing the union selection. + | + | verify(self, *args) -> 'void' + | verify(self, aul, even_without_debugger) + | Verify the ctree. This function verifies the ctree. If the ctree is malformed, + | an internal error is generated. Use it to verify the ctree after your + | modifications. + | + | @param aul: (C++: allow_unused_labels_t) Are unused labels acceptable? + | @param even_without_debugger: (C++: bool) if false and there is no debugger, the + | verification will be skipped + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argidx + | argidx + | + | arguments + | + | body + | body + | + | boundaries + | get_boundaries(self) -> boundaries_t + | Get pointer to map of instruction boundaries. This function initializes the + | boundary map if not done yet. + | + | eamap + | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not done yet. + | + | entry_ea + | entry_ea + | + | hdrlines + | hdrlines + | + | lvars + | get_lvars(self) -> lvars_t + | Get vector of local variables. + | + | @return: pointer to the vector of local variables. If you modify this vector, + | the ctree must be regenerated in order to have correct cast operators. + | Use build_c_tree() for that. Removing lvars should be done carefully: + | all references in ctree and microcode must be corrected after that. + | + | maturity + | maturity + | + | mba + | mba + | + | numforms + | numforms + | + | pseudocode + | get_pseudocode(self) -> strvec_t + | Get pointer to decompilation output: the pseudocode. This function generates + | pseudocode if not done yet. + | + | refcnt + | refcnt + | + | statebits + | statebits + | + | thisown + | The membership flag + | + | treeitems + | treeitems + | + | type + | Get the function's return type tinfo_t object. + | + | user_cmts + | user_cmts + | + | user_iflags + | user_iflags + | + | user_labels + | user_labels + | + | user_unions + | user_unions + | + | warnings + | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. + | + | @return: reference to the vector of warnings + +Help on function cfunc_type in module ida_hexrays: + +cfunc_type(self) + Get the function's return type tinfo_t object. + +Help on class cfuncptr_t in module ida_hexrays: + +class cfuncptr_t(builtins.object) + | Proxy of C++ qrefcnt_t< cfunc_t > class. + | + | Methods defined here: + | + | __deref__(self, *args) -> 'cfunc_t *' + | __deref__(self) -> cfunc_t + | + | __eq__ lambda self, other + | + | __init__(self, *args) + | __init__(self, p) -> cfuncptr_t + | + | @param p: cfunc_t * + | + | __init__(self, r) -> cfuncptr_t + | + | @param r: qrefcnt_t< cfunc_t > const & + | + | __ptrval__(self, *args) -> 'size_t' + | __ptrval__(self) -> size_t + | + | __ref__(self, *args) -> 'cfunc_t &' + | __ref__(self) -> cfunc_t + | + | __repr__ = _swig_repr(self) + | + | __str__ lambda self + | + | __swig_destroy__ = delete_cfuncptr_t(...) + | delete_cfuncptr_t(self) + | + | build_c_tree(self, *args) -> 'void' + | build_c_tree(self) + | + | del_orphan_cmts(self, *args) -> 'int' + | del_orphan_cmts(self) -> int + | + | find_item_coords(self, *args) -> 'PyObject *' + | find_item_coords(self, item, px, py) -> bool + | + | @param item: citem_t const * + | @param px: int * + | @param py: int * + | + | find_item_coords(self, item) -> (int, int), bool + | + | @param item: citem_t const * + | + | find_label(self, *args) -> 'citem_t *' + | find_label(self, label) -> citem_t + | + | @param label: int + | + | gather_derefs(self, *args) -> 'bool' + | gather_derefs(self, ci, udm=None) -> bool + | + | @param ci: ctree_item_t const & + | @param udm: udt_type_data_t * + | + | get_boundaries(self, *args) -> 'boundaries_t &' + | get_boundaries(self) -> boundaries_t + | + | get_eamap(self, *args) -> 'eamap_t &' + | get_eamap(self) -> eamap_t + | + | get_func_type(self, *args) -> 'bool' + | get_func_type(self, type) -> bool + | + | @param type: tinfo_t * + | + | get_line_item(self, *args) -> 'bool' + | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | + | @param line: char const * + | @param x: int + | @param is_ctree_line: bool + | @param phead: ctree_item_t * + | @param pitem: ctree_item_t * + | @param ptail: ctree_item_t * + | + | get_lvars(self, *args) -> 'lvars_t *' + | get_lvars(self) -> lvars_t + | + | get_pseudocode(self, *args) -> 'strvec_t const &' + | get_pseudocode(self) -> strvec_t + | + | get_stkoff_delta(self, *args) -> 'sval_t' + | get_stkoff_delta(self) -> sval_t + | + | get_user_cmt(self, *args) -> 'char const *' + | get_user_cmt(self, loc, rt) -> char const * + | + | @param loc: treeloc_t const & + | @param rt: enum cmt_retrieval_type_t + | + | get_user_iflags(self, *args) -> 'int32' + | get_user_iflags(self, loc) -> int32 + | + | @param loc: citem_locator_t const & + | + | get_user_union_selection(self, *args) -> 'bool' + | get_user_union_selection(self, ea, path) -> bool + | + | @param ea: ea_t + | @param path: intvec_t * + | + | get_warnings(self, *args) -> 'hexwarns_t &' + | get_warnings(self) -> hexwarns_t + | + | has_orphan_cmts(self, *args) -> 'bool' + | has_orphan_cmts(self) -> bool + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | + | print_dcl(self, *args) -> 'void' + | print_dcl(self) + | + | print_func(self, *args) -> 'void' + | print_func(self, vp) + | + | @param vp: vc_printer_t & + | + | refresh_func_ctext(self, *args) -> 'void' + | refresh_func_ctext(self) + | + | release(self, *args) -> 'void' + | release(self) + | + | remove_unused_labels(self, *args) -> 'void' + | remove_unused_labels(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | save_user_cmts(self, *args) -> 'void' + | save_user_cmts(self) + | + | save_user_iflags(self, *args) -> 'void' + | save_user_iflags(self) + | + | save_user_labels(self, *args) -> 'void' + | save_user_labels(self) + | + | save_user_numforms(self, *args) -> 'void' + | save_user_numforms(self) + | + | save_user_unions(self, *args) -> 'void' + | save_user_unions(self) + | + | set_user_cmt(self, *args) -> 'void' + | set_user_cmt(self, loc, cmt) + | + | @param loc: treeloc_t const & + | @param cmt: char const * + | + | set_user_iflags(self, *args) -> 'void' + | set_user_iflags(self, loc, iflags) + | + | @param loc: citem_locator_t const & + | @param iflags: int32 + | + | set_user_union_selection(self, *args) -> 'void' + | set_user_union_selection(self, ea, path) + | + | @param ea: ea_t + | @param path: intvec_t const & + | + | verify(self, *args) -> 'void' + | verify(self, aul, even_without_debugger) + | + | @param aul: enum allow_unused_labels_t + | @param even_without_debugger: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argidx + | argidx + | + | arguments + | + | body + | body + | + | boundaries + | + | eamap + | + | entry_ea + | entry_ea + | + | hdrlines + | hdrlines + | + | lvars + | + | maturity + | maturity + | + | mba + | mba + | + | numforms + | numforms + | + | pseudocode + | + | refcnt + | refcnt + | + | statebits + | statebits + | + | thisown + | The membership flag + | + | treeitems + | treeitems + | + | type + | + | user_cmts + | user_cmts + | + | user_iflags + | user_iflags + | + | user_labels + | user_labels + | + | user_unions + | user_unions + | + | warnings + +Help on class cgoto_t in module ida_hexrays: + +class cgoto_t(builtins.object) + | Proxy of C++ cgoto_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __init__(self, *args) + | __init__(self) -> cgoto_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cgoto_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cgoto_t(...) + | delete_cgoto_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cgoto_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | label_num + | label_num + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class chain_keeper_t in module ida_hexrays: + +class chain_keeper_t(builtins.object) + | Proxy of C++ chain_keeper_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _gc) -> chain_keeper_t + | + | @param _gc: graph_chains_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chain_keeper_t(...) + | delete_chain_keeper_t(self) + | + | back(self, *args) -> 'block_chains_t &' + | back(self) -> block_chains_t + | + | for_all_chains(self, *args) -> 'int' + | for_all_chains(self, cv, gca) -> int + | + | @param cv: chain_visitor_t & + | @param gca: int + | + | front(self, *args) -> 'block_chains_t &' + | front(self) -> block_chains_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class chain_t in module ida_hexrays: + +class chain_t(ida_pro.intvec_t) + | Proxy of C++ chain_t class. + | + | Method resolution order: + | chain_t + | ida_pro.intvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> chain_t + | __init__(self, t, off, w=1, v=-1) -> chain_t + | + | @param t: mopt_t + | @param off: sval_t + | @param w: int + | @param v: int + | + | __init__(self, _k, w=1) -> chain_t + | + | @param _k: voff_t const & + | @param w: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: chain_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chain_t(...) + | delete_chain_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | append_list(self, *args) -> 'void' + | append_list(self, mba, list) + | Append the contents of the chain to the specified list of locations. + | + | @param mba: (C++: const mba_t *) mba_t const * + | @param list: (C++: mlist_t *) + | + | clear_varnum(self, *args) -> 'void' + | clear_varnum(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | endoff(self, *args) -> 'voff_t const' + | endoff(self) -> voff_t + | + | get_reg(self, *args) -> 'mreg_t' + | get_reg(self) -> mreg_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | + | includes(self, *args) -> 'bool' + | includes(self, r) -> bool + | + | @param r: chain_t const & + | + | is_fake(self, *args) -> 'bool' + | is_fake(self) -> bool + | + | is_inited(self, *args) -> 'bool' + | is_inited(self) -> bool + | + | is_overlapped(self, *args) -> 'bool' + | is_overlapped(self) -> bool + | + | is_passreg(self, *args) -> 'bool' + | is_passreg(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_replaced(self, *args) -> 'bool' + | is_replaced(self) -> bool + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | + | is_term(self, *args) -> 'bool' + | is_term(self) -> bool + | + | key(self, *args) -> 'voff_t const &' + | key(self) -> voff_t + | + | overlap(self, *args) -> 'bool' + | overlap(self, r) -> bool + | + | @param r: chain_t const & + | + | set_inited(self, *args) -> 'void' + | set_inited(self, b) + | + | @param b: bool + | + | set_overlapped(self, *args) -> 'void' + | set_overlapped(self, b) + | + | @param b: bool + | + | set_replaced(self, *args) -> 'void' + | set_replaced(self, b) + | + | @param b: bool + | + | set_term(self, *args) -> 'void' + | set_term(self, b) + | + | @param b: bool + | + | set_value(self, *args) -> 'void' + | set_value(self, r) + | + | @param r: chain_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | flags + | + | thisown + | The membership flag + | + | varnum + | varnum + | + | width + | width + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_pro.intvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __getitem__(self, *args) -> 'int const &' + | __getitem__(self, i) -> int const & + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: int const & + | + | append = push_back(self, *args) -> 'int &' + | push_back(self, x) + | + | @param x: int const & + | + | push_back(self) -> int & + | + | at = __getitem__(self, *args) -> 'int const &' + | __getitem__(self, i) -> int const & + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< int >::const_iterator' + | begin(self) -> qvector< int >::iterator + | begin(self) -> qvector< int >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< int >::const_iterator' + | end(self) -> qvector< int >::iterator + | end(self) -> qvector< int >::const_iterator + | + | erase(self, *args) -> 'qvector< int >::iterator' + | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | + | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator + | + | extract(self, *args) -> 'int *' + | extract(self) -> int * + | + | find(self, *args) -> 'qvector< int >::const_iterator' + | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | + | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: int const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: int * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< int >::iterator' + | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'int &' + | push_back(self, x) + | + | @param x: int const & + | + | push_back(self) -> int & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< int > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_pro.intvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_pro.intvec_t: + | + | __hash__ = None + +Help on class chain_visitor_t in module ida_hexrays: + +class chain_visitor_t(builtins.object) + | Proxy of C++ chain_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> chain_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chain_visitor_t(...) + | delete_chain_visitor_t(self) + | + | visit_chain(self, *args) -> 'int' + | visit_chain(self, nblock, ch) -> int + | + | @param nblock: int + | @param ch: chain_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | parent + | parent + | + | thisown + | The membership flag + +Help on function checkout_hexrays_license in module ida_hexrays: + +checkout_hexrays_license(*args) -> 'bool' + checkout_hexrays_license(silent) -> bool + Check out a floating decompiler license. This function will display a dialog box + if the license is not available. For non-floating licenses this function is + effectively no-op. It is not necessary to call this function before decompiling. + If the license was not checked out, the decompiler will automatically do it. + This function can be used to check out a license in advance and ensure that a + license is available. + + @param silent: (C++: bool) silently fail if the license cannot be checked out. + @return: false if failed + +Help on class cif_t in module ida_hexrays: + +class cif_t(ceinsn_t) + | Proxy of C++ cif_t class. + | + | Method resolution order: + | cif_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cif_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cif_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cif_t const & + | + | __init__(self, *args) + | __init__(self) -> cif_t + | __init__(self, r) -> cif_t + | + | @param r: cif_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cif_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cif_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cif_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cif_t(...) + | delete_cif_t(self) + | + | assign(self, *args) -> 'cif_t &' + | assign(self, r) -> cif_t + | + | @param r: cif_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cif_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ielse + | ielse + | + | ithen + | ithen + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on function cinsn_details in module ida_hexrays: + +cinsn_details(self) + return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. + +Help on class cinsn_list_t in module ida_hexrays: + +class cinsn_list_t(builtins.object) + | Proxy of C++ qlist< cinsn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t + | __init__(self, x) -> cinsn_list_t + | + | @param x: qlist< cinsn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: qlist< cinsn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | __swig_destroy__ = delete_cinsn_list_t(...) + | delete_cinsn_list_t(self) + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'cinsn_list_t_iterator' + | begin(self) -> cinsn_list_t_iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'cinsn_list_t_iterator' + | end(self) -> cinsn_list_t_iterator + | + | erase(self, *args) -> 'void' + | erase(self, p) + | + | @param p: cinsn_list_t_iterator + | + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) -> 'cinsn_list_t_iterator' + | insert(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t const & + | + | insert(self, p, x) -> cinsn_list_t_iterator + | + | @param p: cinsn_list_t_iterator + | @param x: cinsn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | pop_front(self, *args) -> 'void' + | pop_front(self) + | + | push_back(self, *args) -> 'cinsn_t &' + | push_back(self, x) + | + | @param x: cinsn_t const & + | + | push_back(self) -> cinsn_t + | + | push_front(self, *args) -> 'void' + | push_front(self, x) + | + | @param x: cinsn_t const & + | + | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rbegin(self) -> qlist< cinsn_t >::reverse_iterator + | rbegin(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | remove(self, *args) -> 'bool' + | remove(self, v) -> bool + | + | @param v: cinsn_t const & + | + | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' + | rend(self) -> qlist< cinsn_t >::reverse_iterator + | rend(self) -> qlist< cinsn_t >::const_reverse_iterator + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, x) + | + | @param x: qlist< cinsn_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_list_t_iterator in module ida_hexrays: + +class cinsn_list_t_iterator(builtins.object) + | Proxy of C++ cinsn_list_t_iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __init__(self, *args) + | __init__(self) -> cinsn_list_t_iterator + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, x) -> bool + | + | @param x: cinsn_list_t_iterator const * + | + | __next__(self, *args) -> 'void' + | __next__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_list_t_iterator(...) + | delete_cinsn_list_t_iterator(self) + | + | next = __next__(self, *args) -> 'void' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cur + | cur + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class cinsn_t in module ida_hexrays: + +class cinsn_t(citem_t) + | Proxy of C++ cinsn_t class. + | + | Method resolution order: + | cinsn_t + | citem_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __init__(self, *args) + | __init__(self) -> cinsn_t + | __init__(self, r) -> cinsn_t + | + | @param r: cinsn_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cinsn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cinsn_t(...) + | delete_cinsn_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _get_casm(self, *args) -> 'casm_t *' + | _get_casm(self) -> casm_t + | + | _get_cblock(self, *args) -> 'cblock_t *' + | _get_cblock(self) -> cblock_t + | + | _get_cdo(self, *args) -> 'cdo_t *' + | _get_cdo(self) -> cdo_t + | + | _get_cexpr(self, *args) -> 'cexpr_t *' + | _get_cexpr(self) -> cexpr_t + | + | _get_cfor(self, *args) -> 'cfor_t *' + | _get_cfor(self) -> cfor_t + | + | _get_cgoto(self, *args) -> 'cgoto_t *' + | _get_cgoto(self) -> cgoto_t + | + | _get_cif(self, *args) -> 'cif_t *' + | _get_cif(self) -> cif_t + | + | _get_creturn(self, *args) -> 'creturn_t *' + | _get_creturn(self) -> creturn_t + | + | _get_cswitch(self, *args) -> 'cswitch_t *' + | _get_cswitch(self) -> cswitch_t + | + | _get_cwhile(self, *args) -> 'cwhile_t *' + | _get_cwhile(self) -> cwhile_t + | + | _print(self, *args) -> 'void' + | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | + | Parameters + | ---------- + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _replace_by(self, *args) -> 'void' + | _replace_by(self, r) + | + | Parameters + | ---------- + | r: cinsn_t * + | + | _set_casm(self, *args) -> 'void' + | _set_casm(self, _v) + | + | Parameters + | ---------- + | _v: casm_t * + | + | _set_cblock(self, *args) -> 'void' + | _set_cblock(self, _v) + | + | Parameters + | ---------- + | _v: cblock_t * + | + | _set_cdo(self, *args) -> 'void' + | _set_cdo(self, _v) + | + | Parameters + | ---------- + | _v: cdo_t * + | + | _set_cexpr(self, *args) -> 'void' + | _set_cexpr(self, _v) + | + | Parameters + | ---------- + | _v: cexpr_t * + | + | _set_cfor(self, *args) -> 'void' + | _set_cfor(self, _v) + | + | Parameters + | ---------- + | _v: cfor_t * + | + | _set_cgoto(self, *args) -> 'void' + | _set_cgoto(self, _v) + | + | Parameters + | ---------- + | _v: cgoto_t * + | + | _set_cif(self, *args) -> 'void' + | _set_cif(self, _v) + | + | Parameters + | ---------- + | _v: cif_t * + | + | _set_creturn(self, *args) -> 'void' + | _set_creturn(self, _v) + | + | Parameters + | ---------- + | _v: creturn_t * + | + | _set_cswitch(self, *args) -> 'void' + | _set_cswitch(self, _v) + | + | Parameters + | ---------- + | _v: cswitch_t * + | + | _set_cwhile(self, *args) -> 'void' + | _set_cwhile(self, _v) + | + | Parameters + | ---------- + | _v: cwhile_t * + | + | assign(self, *args) -> 'cinsn_t &' + | assign(self, r) -> cinsn_t + | + | @param r: cinsn_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the statement. This function properly deletes all children and sets the + | item type to cit_empty. + | + | collect_free_breaks(self, *args) -> 'bool' + | collect_free_breaks(self, breaks) -> bool + | Collect free break statements. This function finds all free break statements + | within the current statement. A break statement is free if it does not have a + | loop or switch parent that that is also within the current statement. + | + | @param breaks: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free break + | statements is returned. This argument can be nullptr. + | @return: true if some free break statements have been found + | + | collect_free_continues(self, *args) -> 'bool' + | collect_free_continues(self, continues) -> bool + | Collect free continue statements. This function finds all free continue + | statements within the current statement. A continue statement is free if it does + | not have a loop parent that that is also within the current statement. + | + | @param continues: (C++: cinsnptrvec_t *) pointer to the variable where the vector of all found free + | continue statements is returned. This argument can be nullptr. + | @return: true if some free continue statements have been found + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cinsn_t const & + | + | contains_free_break(self, *args) -> 'bool' + | contains_free_break(self) -> bool + | Check if the statement has free break statements. + | + | contains_free_continue(self, *args) -> 'bool' + | contains_free_continue(self) -> bool + | Check if the statement has free continue statements. + | + | contains_insn(self, *args) -> 'bool' + | contains_insn(self, type, times=1) -> bool + | Check if the statement contains a statement of the specified type. + | + | @param type: (C++: ctype_t) statement opcode to look for + | @param times: (C++: int) how many times TYPE should be present + | @return: true if the statement has at least TIMES children with opcode == TYPE + | + | create_if(self, *args) -> 'cif_t &' + | create_if(self, cnd) -> cif_t + | Create a new if-statement. The current statement must be a block. The new + | statement will be appended to it. + | + | @param cnd: (C++: cexpr_t *) if condition. It will be deleted after being copied. + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | is_epilog(self) + | + | is_ordinary_flow(self, *args) -> 'bool' + | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. + | + | @return: false if the statement breaks the control flow (like goto, return, etc) + | + | new_insn(self, *args) -> 'cinsn_t &' + | new_insn(self, insn_ea) -> cinsn_t + | Create a new statement. The current statement must be a block. The new statement + | will be appended to it. + | + | @param insn_ea: (C++: ea_t) statement address + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print the statement into one line. Currently this function is not available. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: cinsn_t & + | + | zero(self, *args) -> 'void' + | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | insn_is_epilog(*args) -> 'bool' + | insn_is_epilog(insn) -> bool + | + | @param insn: cinsn_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | casm + | + | cblock + | + | cdo + | + | cexpr + | + | cfor + | + | cgoto + | + | cif + | + | creturn + | + | cswitch + | + | cwhile + | + | details + | return the details pointer for the cinsn_t object depending on the value of its op member. this is one of the cblock_t, cif_t, etc. objects. + | + | opname + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | op_to_typename = {70: 'empty', 71: 'block', 72: 'expr', 73: 'if', 74: ... + | + | ---------------------------------------------------------------------- + | Methods inherited from citem_t: + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | replace_by(self, o) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from citem_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on function cinsn_t_insn_is_epilog in module ida_hexrays: + +cinsn_t_insn_is_epilog(*args) -> 'bool' + cinsn_t_insn_is_epilog(insn) -> bool + + @param insn: cinsn_t const * + +Help on class cinsnptrvec_t in module ida_hexrays: + +class cinsnptrvec_t(builtins.object) + | Proxy of C++ qvector< cinsn_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & + | + | __getitem__(self, *args) -> 'cinsn_t *const &' + | __getitem__(self, i) -> cinsn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> cinsnptrvec_t + | __init__(self, x) -> cinsnptrvec_t + | + | @param x: qvector< cinsn_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< cinsn_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: cinsn_t *const & + | + | __swig_destroy__ = delete_cinsnptrvec_t(...) + | delete_cinsnptrvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: cinsn_t *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: cinsn_t *const & + | + | append = push_back(self, *args) -> 'cinsn_t *&' + | + | at = __getitem__(self, *args) -> 'cinsn_t *const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< cinsn_t * >::const_iterator' + | begin(self) -> qvector< cinsn_t * >::iterator + | begin(self) -> qvector< cinsn_t * >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< cinsn_t * >::const_iterator' + | end(self) -> qvector< cinsn_t * >::iterator + | end(self) -> qvector< cinsn_t * >::const_iterator + | + | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' + | erase(self, it) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | + | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | + | @param first: qvector< cinsn_t * >::iterator + | @param last: qvector< cinsn_t * >::iterator + | + | extract(self, *args) -> 'cinsn_t **' + | extract(self) -> cinsn_t ** + | + | find(self, *args) -> 'qvector< cinsn_t * >::const_iterator' + | find(self, x) -> qvector< cinsn_t * >::iterator + | + | @param x: cinsn_t *const & + | + | find(self, x) -> qvector< cinsn_t * >::const_iterator + | + | @param x: cinsn_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: cinsn_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: cinsn_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' + | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | + | @param it: qvector< cinsn_t * >::iterator + | @param x: cinsn_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'cinsn_t *&' + | push_back(self, x) + | + | @param x: cinsn_t *const & + | + | push_back(self) -> cinsn_t *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: cinsn_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< cinsn_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class citem_cmt_t in module ida_hexrays: + +class citem_cmt_t(builtins.object) + | Proxy of C++ citem_cmt_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> citem_cmt_t + | __init__(self, s) -> citem_cmt_t + | + | @param s: char const * + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'char const *' + | __str__(self) -> char const * + | + | __swig_destroy__ = delete_citem_cmt_t(...) + | delete_citem_cmt_t(self) + | + | c_str(self, *args) -> 'char const *' + | c_str(self) -> char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | used + | used + +Help on class citem_locator_t in module ida_hexrays: + +class citem_locator_t(builtins.object) + | Proxy of C++ citem_locator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __init__(self, *args) + | __init__(self, _ea, _op) -> citem_locator_t + | + | @param _ea: ea_t + | @param _op: enum ctype_t + | + | __init__(self, i) -> citem_locator_t + | + | @param i: citem_t const * + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: citem_locator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_citem_locator_t(...) + | delete_citem_locator_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: citem_locator_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | op + | op + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class citem_t in module ida_hexrays: + +class citem_t(builtins.object) + | Proxy of C++ citem_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, o=cot_empty) -> citem_t + | + | @param o: enum ctype_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_citem_t(...) + | delete_citem_t(self) + | + | _acquire_ownership(self, v, acquire) + | + | _citem_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _citem_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_op(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_op(self, *args) -> 'ctype_t' + | _get_op(self) -> ctype_t + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _set_op(self, *args) -> 'void' + | _set_op(self, v) + | + | Parameters + | ---------- + | v: enum ctype_t + | + | contains_expr(self, *args) -> 'bool' + | contains_expr(self, e) -> bool + | Does the item contain an expression? + | + | @param e: (C++: const cexpr_t *) cexpr_t const * + | + | contains_label(self, *args) -> 'bool' + | contains_label(self) -> bool + | Does the item contain a label? + | + | find_closest_addr(self, *args) -> 'citem_t *' + | find_closest_addr(self, _ea) -> citem_t + | + | @param _ea: ea_t + | + | find_parent_of(self, *args) -> 'citem_t *' + | find_parent_of(self, sitem) -> citem_t + | + | @param sitem: citem_t const * + | + | find_parent_of(self, item) -> citem_t + | + | @param item: citem_t const * + | + | is_expr(self, *args) -> 'bool' + | is_expr(self) -> bool + | Is an expression? + | + | print1(self, *args) -> 'void' + | print1(self, func) + | Print item into one line. + | + | @param func: (C++: const cfunc_t *) parent function. This argument is used to find out the referenced + | variable names. + | @return: length of the generated text. + | + | replace_by(self, o) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Swap two citem_t. + | + | @param r: (C++: citem_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cexpr + | cexpr + | + | cinsn + | cinsn + | + | ea + | ea + | + | index + | index + | + | label_num + | label_num + | + | meminfo + | + | obj_id + | _obj_id(self) -> PyObject * + | + | op + | _get_op(self) -> ctype_t + | + | thisown + | The membership flag + | + | to_specific_type + | cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on function citem_to_specific_type in module ida_hexrays: + +citem_to_specific_type(self) + cast the citem_t object to its more specific type, either cexpr_t or cinsn_t. + +Help on function clear_cached_cfuncs in module ida_hexrays: + +clear_cached_cfuncs(*args) -> 'void' + clear_cached_cfuncs() + Flush all cached decompilation results. + +Help on class cloop_t in module ida_hexrays: + +class cloop_t(ceinsn_t) + | Proxy of C++ cloop_t class. + | + | Method resolution order: + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> cloop_t + | __init__(self, b) -> cloop_t + | + | @param b: cinsn_t * + | + | __init__(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cloop_t(...) + | delete_cloop_t(self) + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | body + | body + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) -> 'void' + close_hexrays_waitbox() + Close the waitbox displayed by the decompiler. Useful if DECOMP_NO_HIDE was used + during decompilation. + +Help on function close_pseudocode in module ida_hexrays: + +close_pseudocode(*args) -> 'bool' + close_pseudocode(f) -> bool + Close pseudocode window. + + @param f: (C++: TWidget *) pointer to window + @return: false if failed + +Help on class cnumber_t in module ida_hexrays: + +class cnumber_t(builtins.object) + | Proxy of C++ cnumber_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __init__(self, *args) + | __init__(self, _opnum=0) -> cnumber_t + | + | @param _opnum: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cnumber_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cnumber_t(...) + | delete_cnumber_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, type, parent=None, nice_stroff=None) + | + | Parameters + | ---------- + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * + | + | assign(self, *args) -> 'void' + | assign(self, v, nbytes, sign) + | Assign new value + | + | @param v: (C++: uint64) new value + | @param nbytes: (C++: int) size of the new value in bytes + | @param sign: (C++: type_sign_t) sign of the value + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cnumber_t const & + | + | value(self, *args) -> 'uint64' + | value(self, type) -> uint64 + | Get value. This function will properly extend the number sign to 64bits + | depending on the type sign. + | + | @param type: (C++: const tinfo_t &) tinfo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _value + | _value + | + | nf + | nf + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class codegen_t in module ida_hexrays: + +class codegen_t(builtins.object) + | Proxy of C++ codegen_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_codegen_t(...) + | delete_codegen_t(self) + | + | analyze_prolog(self, *args) -> 'merror_t' + | analyze_prolog(self, fc, reachable) -> merror_t + | Analyze prolog/epilog of the function to decompile. If prolog is found, allocate + | and fill 'mba->pi' structure. + | + | @param fc: (C++: const class qflow_chart_t &) flow chart + | @param reachable: (C++: const class bitset_t &) bitmap of reachable blocks + | @return: error code + | + | emit(self, *args) -> 'minsn_t *' + | emit(self, code, width, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant accepts pointers to operands. It is more + | difficult to use but permits to create virtually any instruction. Operands may + | be nullptr when it makes sense. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param width: int + | @param l: (C++: const mop_t *) uval_t + | @param r: (C++: const mop_t *) uval_t + | @param d: (C++: const mop_t *) uval_t + | @param offsize: int + | + | emit(self, code, l, r, d) -> minsn_t + | + | @param code: enum mcode_t + | @param l: mop_t const * + | @param r: mop_t const * + | @param d: mop_t const * + | + | emit_micro_mvm(self, *args) -> 'minsn_t *' + | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | Emit one microinstruction. This variant takes a data type not a size. + | + | @param code: (C++: mcode_t) enum mcode_t + | @param dtype: (C++: op_dtype_t) + | @param l: (C++: uval_t) + | @param r: (C++: uval_t) + | @param d: (C++: uval_t) + | @param offsize: (C++: int) + | + | gen_micro(self, *args) -> 'merror_t' + | gen_micro(self) -> merror_t + | Generate microcode for one instruction. The instruction is in INSN + | + | @return: MERR_OK - all ok MERR_BLOCK - all ok, need to switch to new block + | MERR_BADBLK - delete current block and continue other error codes are + | fatal + | + | load_effective_address(self, *args) -> 'mreg_t' + | load_effective_address(self, n, flags=0) -> mreg_t + | Generate microcode to calculate the address of a memory operand. + | + | @param n: (C++: int) - number of INSN operand + | @param flags: (C++: int) - reserved for future use + | @return: register containing the operand address. mr_none - failed (not a memory + | operand) + | + | load_operand(self, *args) -> 'mreg_t' + | load_operand(self, opnum, flags=0) -> mreg_t + | Generate microcode to load one operand. + | + | @param opnum: (C++: int) number of INSN operand + | @param flags: (C++: int) reserved for future use + | @return: register containing the operand. + | + | microgen_completed(self, *args) -> 'void' + | microgen_completed(self) + | This method is called when the microcode generation is done. + | + | prepare_gen_micro(self, *args) -> 'merror_t' + | prepare_gen_micro(self) -> merror_t + | Setup internal data to handle new instruction. This method should be called + | before calling gen_micro(). Usually gen_micro() is called by the decompiler. You + | have to call this function explicitly only if you yourself call gen_micro(). The + | instruction is in INSN + | + | @return: MERR_OK - all ok other error codes are fatal + | + | store_operand(self, *args) -> 'bool' + | store_operand(self, n, mop, flags=0, outins=None) -> bool + | Generate microcode to store an operand. In case of success an arbitrary number + | of instructions can be generated (and even no instruction if the source and + | target are the same) + | + | @param n: (C++: int) - number of target INSN operand + | @param mop: (C++: const mop_t &) - operand to be stored + | @param flags: (C++: int) - reserved for future use + | @param outins: (C++: minsn_t **) - (OUT) the last generated instruction + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ignore_micro + | ignore_micro + | + | ii + | ii + | + | insn + | insn + | + | mb + | mb + | + | mba + | mba + | + | thisown + | The membership flag + +Help on function convert_to_user_call in module ida_hexrays: + +convert_to_user_call(*args) -> 'merror_t' + convert_to_user_call(udc, cdg) -> merror_t + try to generate user-defined call for an instruction + + @param udc: (C++: const udcall_t &) udcall_t const & + @param cdg: (C++: codegen_t &) + @return: Microcode error codes code: MERR_OK - user-defined call generated else + - error (MERR_INSN == inacceptable udc.tif) + +Help on function create_cfunc in module ida_hexrays: + +create_cfunc(*args) -> 'cfuncptr_t' + create_cfunc(mba) -> cfuncptr_t + Create a new cfunc_t object. + + @param mba: (C++: mba_t *) microcode object. After creating the cfunc object it takes the + ownership of MBA. + +Help on function create_empty_mba in module ida_hexrays: + +create_empty_mba(*args) -> 'mba_t *' + create_empty_mba(mbr, hf=None) -> mba_t + Create an empty microcode object. + + @param mbr: (C++: const mba_ranges_t &) mba_ranges_t const & + @param hf: (C++: hexrays_failure_t *) + +Help on function create_field_name in module ida_hexrays: + +create_field_name(*args) -> 'qstring' + create_field_name(type, offset=BADADDR) -> qstring + + @param type: tinfo_t const & + @param offset: uval_t + +Help on function create_helper in module ida_hexrays: + +create_helper(*args) + Create a helper object.. + +Help on function create_typedef in module ida_hexrays: + +create_typedef(*args) -> 'tinfo_t' + create_typedef(name) -> tinfo_t + Create a reference to an ordinal type. + + @param name: char const * + + @return: type which refers to the specified ordinal. For example, if n is 1, the + type info which refers to ordinal type 1 is created. + create_typedef(n) -> tinfo_t + + @param n: int + +Help on class creturn_t in module ida_hexrays: + +class creturn_t(ceinsn_t) + | Proxy of C++ creturn_t class. + | + | Method resolution order: + | creturn_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __init__(self, *args) + | __init__(self) -> creturn_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: creturn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_creturn_t(...) + | delete_creturn_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: creturn_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class cswitch_t in module ida_hexrays: + +class cswitch_t(ceinsn_t) + | Proxy of C++ cswitch_t class. + | + | Method resolution order: + | cswitch_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __init__(self, *args) + | __init__(self) -> cswitch_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cswitch_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cswitch_t(...) + | delete_cswitch_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cswitch_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cases + | cases + | + | mvnf + | mvnf + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on class ctext_position_t in module ida_hexrays: + +class ctext_position_t(builtins.object) + | Proxy of C++ ctext_position_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __init__(self, *args) + | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | + | @param _lnnum: int + | @param _x: int + | @param _y: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctext_position_t(...) + | delete_ctext_position_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ctext_position_t const & + | + | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ctree_anchor_t in module ida_hexrays: + +class ctree_anchor_t(builtins.object) + | Proxy of C++ ctree_anchor_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ctree_anchor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_anchor_t(...) + | delete_ctree_anchor_t(self) + | + | get_index(self, *args) -> 'int' + | get_index(self) -> int + | + | get_itp(self, *args) -> 'item_preciser_t' + | get_itp(self) -> item_preciser_t + | + | is_blkcmt_anchor(self, *args) -> 'bool' + | is_blkcmt_anchor(self) -> bool + | + | is_citem_anchor(self, *args) -> 'bool' + | is_citem_anchor(self) -> bool + | + | is_itp_anchor(self, *args) -> 'bool' + | is_itp_anchor(self) -> bool + | + | is_lvar_anchor(self, *args) -> 'bool' + | is_lvar_anchor(self) -> bool + | + | is_valid_anchor(self, *args) -> 'bool' + | is_valid_anchor(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | value + | value + +Help on class ctree_item_t in module ida_hexrays: + +class ctree_item_t(builtins.object) + | Proxy of C++ ctree_item_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ctree_item_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_item_t(...) + | delete_ctree_item_t(self) + | + | _get_e(self, *args) -> 'cexpr_t *' + | _get_e(self) -> cexpr_t + | + | _get_f(self, *args) -> 'cfunc_t *' + | _get_f(self) -> cfunc_t + | + | _get_i(self, *args) -> 'cinsn_t *' + | _get_i(self) -> cinsn_t + | + | _get_it(self, *args) -> 'citem_t *' + | _get_it(self) -> citem_t + | + | _get_l(self, *args) -> 'lvar_t *' + | _get_l(self) -> lvar_t + | + | _print(self, *args) -> 'void' + | _print(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. + | + | @return: BADADDR if failed + | + | get_label_num(self, *args) -> 'int' + | get_label_num(self, gln_flags) -> int + | Get label number of the current item. + | + | @param gln_flags: (C++: int) Combination of get_label_num control bits + | @return: -1 if failed or no label + | + | get_lvar(self, *args) -> 'lvar_t *' + | get_lvar(self) -> lvar_t + | Get pointer to local variable. If the current item is a local variable, this + | function will return pointer to its definition. + | + | @return: nullptr if failed + | + | get_memptr(self, *args) -> 'member_t *' + | get_memptr(self, p_sptr=None) -> member_t * + | Get pointer to structure member. If the current item is a structure field, this + | function will return pointer to its definition. + | + | @param p_sptr: (C++: struc_t **) pointer to the variable where the pointer to the parent structure + | is returned. This parameter can be nullptr. + | @return: nullptr if failed + | + | is_citem(self, *args) -> 'bool' + | is_citem(self) -> bool + | Is the current item is a ctree item? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | citype + | citype + | + | e + | + | f + | + | i + | + | it + | + | l + | + | loc + | loc + | + | thisown + | The membership flag + +Help on class ctree_items_t in module ida_hexrays: + +class ctree_items_t(builtins.object) + | Proxy of C++ qvector< citem_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & + | + | __getitem__(self, *args) -> 'citem_t *const &' + | __getitem__(self, i) -> citem_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> ctree_items_t + | __init__(self, x) -> ctree_items_t + | + | @param x: qvector< citem_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< citem_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: citem_t *const & + | + | __swig_destroy__ = delete_ctree_items_t(...) + | delete_ctree_items_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: citem_t *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: citem_t *const & + | + | append = push_back(self, *args) -> 'citem_t *&' + | + | at = __getitem__(self, *args) -> 'citem_t *const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< citem_t * >::const_iterator' + | begin(self) -> qvector< citem_t * >::iterator + | begin(self) -> qvector< citem_t * >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< citem_t * >::const_iterator' + | end(self) -> qvector< citem_t * >::iterator + | end(self) -> qvector< citem_t * >::const_iterator + | + | erase(self, *args) -> 'qvector< citem_t * >::iterator' + | erase(self, it) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | + | erase(self, first, last) -> qvector< citem_t * >::iterator + | + | @param first: qvector< citem_t * >::iterator + | @param last: qvector< citem_t * >::iterator + | + | extract(self, *args) -> 'citem_t **' + | extract(self) -> citem_t ** + | + | find(self, *args) -> 'qvector< citem_t * >::const_iterator' + | find(self, x) -> qvector< citem_t * >::iterator + | + | @param x: citem_t *const & + | + | find(self, x) -> qvector< citem_t * >::const_iterator + | + | @param x: citem_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: citem_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: citem_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< citem_t * >::iterator' + | insert(self, it, x) -> qvector< citem_t * >::iterator + | + | @param it: qvector< citem_t * >::iterator + | @param x: citem_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'citem_t *&' + | push_back(self, x) + | + | @param x: citem_t *const & + | + | push_back(self) -> citem_t *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: citem_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< citem_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ctree_parentee_t in module ida_hexrays: + +class ctree_parentee_t(ctree_visitor_t) + | Proxy of C++ ctree_parentee_t class. + | + | Method resolution order: + | ctree_parentee_t + | ctree_visitor_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, post=False) -> ctree_parentee_t + | + | @param post: bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_parentee_t(...) + | delete_ctree_parentee_t(self) + | + | get_block(self, *args) -> 'cblock_t *' + | get_block(self) -> cblock_t + | Get pointer to the parent block of the currently visited item. This function + | should be called only when the parent is a block. + | + | recalc_parent_types(self, *args) -> 'bool' + | recalc_parent_types(self) -> bool + | Recalculate type of parent nodes. If a node type has been changed, the visitor + | must recalculate all parent types, otherwise the ctree becomes inconsistent. If + | during this recalculation a parent node is added/deleted, this function returns + | true. In this case the traversal must be stopped because the information about + | parent nodes is stale. + | + | @return: false-ok to continue the traversal, true-must stop. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ctree_visitor_t: + | + | apply_to(self, *args) -> 'int' + | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | apply_to_exprs(self, *args) -> 'int' + | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | clr_prune(self, *args) -> 'void' + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. + | + | clr_restart(self, *args) -> 'void' + | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. + | + | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool + | Should the leave...() functions be called? + | + | leave_expr(self, *args) -> 'int' + | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | leave_insn(self, *args) -> 'int' + | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool + | Should the parent information by maintained? + | + | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool + | Should the traversal skip the children of the current item? + | + | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool + | Should the traversal restart? + | + | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool + | Should all expressions be automatically pruned? + | + | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. + | + | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. + | + | set_restart(self, *args) -> 'void' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() + | + | visit_expr(self, *args) -> 'int' + | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | visit_insn(self, *args) -> 'int' + | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ctree_visitor_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cv_flags + | cv_flags + | + | parents + | parents + +Help on class ctree_visitor_t in module ida_hexrays: + +class ctree_visitor_t(builtins.object) + | Proxy of C++ ctree_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags) -> ctree_visitor_t + | + | @param _flags: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ctree_visitor_t(...) + | delete_ctree_visitor_t(self) + | + | apply_to(self, *args) -> 'int' + | apply_to(self, item, parent) -> int + | Traverse ctree. The traversal will start at the specified item and continue + | until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | apply_to_exprs(self, *args) -> 'int' + | apply_to_exprs(self, item, parent) -> int + | Traverse only expressions. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero value. + | + | @param item: (C++: citem_t *) root of the ctree to traverse + | @param parent: (C++: citem_t *) parent of the specified item. can be specified as nullptr. + | @return: 0 or a non-zero value returned by a visit_...() function + | + | clr_prune(self, *args) -> 'void' + | clr_prune(self) + | Do not prune children. This is an internal function, no need to call it. + | + | clr_restart(self, *args) -> 'void' + | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. + | + | is_postorder(self, *args) -> 'bool' + | is_postorder(self) -> bool + | Should the leave...() functions be called? + | + | leave_expr(self, *args) -> 'int' + | leave_expr(self, arg0) -> int + | Visit an expression after having visited its children. This is a visitor + | function which should be overridden by a derived class to do some useful work. + | This visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | leave_insn(self, *args) -> 'int' + | leave_insn(self, arg0) -> int + | Visit a statement after having visited its children. This is a visitor function + | which should be overridden by a derived class to do some useful work. This + | visitor performs post-order traserval, i.e. an item is visited after its + | children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | maintain_parents(self, *args) -> 'bool' + | maintain_parents(self) -> bool + | Should the parent information by maintained? + | + | must_prune(self, *args) -> 'bool' + | must_prune(self) -> bool + | Should the traversal skip the children of the current item? + | + | must_restart(self, *args) -> 'bool' + | must_restart(self) -> bool + | Should the traversal restart? + | + | only_insns(self, *args) -> 'bool' + | only_insns(self) -> bool + | Should all expressions be automatically pruned? + | + | parent_expr(self, *args) -> 'cexpr_t *' + | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. + | + | parent_insn(self, *args) -> 'cinsn_t *' + | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | Prune children. This function may be called by a visitor() to skip all children + | of the current item. + | + | set_restart(self, *args) -> 'void' + | set_restart(self) + | Restart the travesal. Meaningful only in apply_to_exprs() + | + | visit_expr(self, *args) -> 'int' + | visit_expr(self, arg0) -> int + | Visit an expression. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | visit_insn(self, *args) -> 'int' + | visit_insn(self, arg0) -> int + | Visit a statement. This is a visitor function which should be overridden by a + | derived class to do some useful work. This visitor performs pre-order traserval, + | i.e. an item is visited before its children. + | + | @param arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cv_flags + | cv_flags + | + | parents + | parents + | + | thisown + | The membership flag + +Help on class cwhile_t in module ida_hexrays: + +class cwhile_t(cloop_t) + | Proxy of C++ cwhile_t class. + | + | Method resolution order: + | cwhile_t + | cloop_t + | ceinsn_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __init__(self, *args) + | __init__(self) -> cwhile_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: cwhile_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cwhile_t(...) + | delete_cwhile_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: cwhile_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from cloop_t: + | + | assign(self, *args) -> 'cloop_t &' + | assign(self, r) -> cloop_t + | + | @param r: cloop_t const & + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from cloop_t: + | + | body + | body + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ceinsn_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | expr + | expr + +Help on function debug_hexrays_ctree in module ida_hexrays: + +debug_hexrays_ctree(*args) -> 'void' + debug_hexrays_ctree(level, msg) + + @param level: int + @param msg: char const * + +Help on function decompile in module ida_hexrays: + +decompile(ea, hf=None, flags=0) + Decompile a function. + + @param ea an address belonging to the function, or an ida_funcs.func_t object + @param hf extended error information (if failed) + @param flags decomp_flags bitwise combination of `DECOMP_...` bits + @return the decompilation result (a `ida_hexrays.cfunc_t` wrapper), or None + +Help on function decompile_func in module ida_hexrays: + +decompile_func(*args) -> 'cfuncptr_t' + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + Decompile a function. Multiple decompilations of the same function return the + same object. + + @param pfn: (C++: func_t *) pointer to function to decompile + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @return: pointer to the decompilation result (a reference counted pointer). + nullptr if failed. + +Help on function decompile_many in module ida_hexrays: + +decompile_many(*args) -> 'bool' + decompile_many(outfile, funcaddrs, flags) -> bool + Batch decompilation. Decompile all or the specified functions + + @param outfile: (C++: const char *) name of the output file + @param funcaddrs: (C++: const eavec_t *) list of functions to decompile. If nullptr or empty, then + decompile all nonlib functions + @param flags: (C++: int) Batch decompilation bits + @return: true if no internal error occurred and the user has not cancelled + decompilation + +Help on function dereference in module ida_hexrays: + +dereference(e, ptrsize, is_float=False) + Dereference a pointer. This function dereferences a pointer expression. It + performs the following conversion: "ptr" => "*ptr" It can handle discrepancies + in the pointer type and the access size. + + @return: dereferenced expression + +Help on function dstr in module ida_hexrays: + +dstr(*args) -> 'char const *' + dstr(tif) -> char const * + Print the specified type info. This function can be used from a debugger by + typing "tif->dstr()" + + @param tif: (C++: const tinfo_t *) tinfo_t const * + +Help on function dummy_ptrtype in module ida_hexrays: + +dummy_ptrtype(*args) -> 'tinfo_t' + dummy_ptrtype(ptrsize, isfp) -> tinfo_t + Generate a dummy pointer type + + @param ptrsize: (C++: int) size of pointed object + @param isfp: (C++: bool) is floating point object? + +Help on function eamap_begin in module ida_hexrays: + +eamap_begin(*args) -> 'eamap_iterator_t' + eamap_begin(map) -> eamap_iterator_t + Get iterator pointing to the beginning of eamap_t. + + @param map: (C++: const eamap_t *) eamap_t const * + +Help on function eamap_clear in module ida_hexrays: + +eamap_clear(*args) -> 'void' + eamap_clear(map) + Clear eamap_t. + + @param map: (C++: eamap_t *) + +Help on function eamap_end in module ida_hexrays: + +eamap_end(*args) -> 'eamap_iterator_t' + eamap_end(map) -> eamap_iterator_t + Get iterator pointing to the end of eamap_t. + + @param map: (C++: const eamap_t *) eamap_t const * + +Help on function eamap_erase in module ida_hexrays: + +eamap_erase(*args) -> 'void' + eamap_erase(map, p) + Erase current element from eamap_t. + + @param map: (C++: eamap_t *) + @param p: (C++: eamap_iterator_t) + +Help on function eamap_find in module ida_hexrays: + +eamap_find(*args) -> 'eamap_iterator_t' + eamap_find(map, key) -> eamap_iterator_t + Find the specified key in eamap_t. + + @param map: (C++: const eamap_t *) eamap_t const * + @param key: (C++: const ea_t &) ea_t const & + +Help on function eamap_first in module ida_hexrays: + +eamap_first(*args) -> 'ea_t const &' + eamap_first(p) -> ea_t const & + Get reference to the current map key. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_free in module ida_hexrays: + +eamap_free(*args) -> 'void' + eamap_free(map) + Delete eamap_t instance. + + @param map: (C++: eamap_t *) + +Help on function eamap_insert in module ida_hexrays: + +eamap_insert(*args) -> 'eamap_iterator_t' + eamap_insert(map, key, val) -> eamap_iterator_t + Insert new (ea_t, cinsnptrvec_t) pair into eamap_t. + + @param map: (C++: eamap_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const cinsnptrvec_t &) cinsnptrvec_t const & + +Help on class eamap_iterator_t in module ida_hexrays: + +class eamap_iterator_t(builtins.object) + | Proxy of C++ eamap_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: eamap_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> eamap_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: eamap_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_eamap_iterator_t(...) + | delete_eamap_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function eamap_new in module ida_hexrays: + +eamap_new(*args) -> 'eamap_t *' + eamap_new() -> eamap_t + Create a new eamap_t instance. + +Help on function eamap_next in module ida_hexrays: + +eamap_next(*args) -> 'eamap_iterator_t' + eamap_next(p) -> eamap_iterator_t + Move to the next element. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_prev in module ida_hexrays: + +eamap_prev(*args) -> 'eamap_iterator_t' + eamap_prev(p) -> eamap_iterator_t + Move to the previous element. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_second in module ida_hexrays: + +eamap_second(*args) -> 'cinsnptrvec_t &' + eamap_second(p) -> cinsnptrvec_t + Get reference to the current map value. + + @param p: (C++: eamap_iterator_t) + +Help on function eamap_size in module ida_hexrays: + +eamap_size(*args) -> 'size_t' + eamap_size(map) -> size_t + Get size of eamap_t. + + @param map: (C++: eamap_t *) + +Help on class eamap_t in module ida_hexrays: + +class eamap_t(builtins.object) + | Proxy of C++ std::map< ea_t,cinsnptrvec_t > class. + | + | Methods defined here: + | + | __begin = eamap_begin(...) + | eamap_begin(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | + | __clear = eamap_clear(...) + | eamap_clear(map) + | + | Parameters + | ---------- + | map: eamap_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = eamap_end(...) + | eamap_end(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | + | __erase = eamap_erase(...) + | eamap_erase(map, p) + | + | Parameters + | ---------- + | map: eamap_t * + | p: eamap_iterator_t + | + | __find = eamap_find(...) + | eamap_find(map, key) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | key: ea_t const & + | + | __first = eamap_first(...) + | eamap_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: eamap_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> eamap_t + | + | __insert = eamap_insert(...) + | eamap_insert(map, key, val) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t * + | key: ea_t const & + | val: cinsnptrvec_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = eamap_next(...) + | eamap_next(p) -> eamap_iterator_t + | + | Parameters + | ---------- + | p: eamap_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = eamap_second(...) + | eamap_second(p) -> cinsnptrvec_t + | + | Parameters + | ---------- + | p: eamap_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = eamap_size(...) + | eamap_size(map) -> size_t + | + | Parameters + | ---------- + | map: eamap_t * + | + | __swig_destroy__ = delete_eamap_t(...) + | delete_eamap_t(self) + | + | at(self, *args) -> 'cinsnptrvec_t &' + | at(self, _Keyval) -> cinsnptrvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'int'> + | int(x=0) -> integer + | int(x, base=10) -> integer + | + | Convert a number or string to an integer, or return 0 if no arguments + | are given. If x is a number, return x.__int__(). For floating point + | numbers, this truncates towards zero. + | + | If x is not a number or if base is given, then x must be a string, + | bytes, or bytearray instance representing an integer literal in the + | given base. The literal can be preceded by '+' or '-' and be surrounded + | by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. + | Base 0 means to interpret the base from the string as an integer literal. + | >>> int('0b100', base=0) + | 4 + | + | valuetype = <class 'ida_hexrays.cinsnptrvec_t'> + | Proxy of C++ qvector< cinsn_t * > class. + +Help on class fnumber_t in module ida_hexrays: + +class fnumber_t(builtins.object) + | Proxy of C++ fnumber_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __init__(self, *args) + | __init__(self) -> fnumber_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: fnumber_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_fnumber_t(...) + | delete_fnumber_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: fnumber_t const & + | + | dereference_const_uint16(self, *args) -> 'uint16 const *' + | dereference_const_uint16(self) -> uint16 const * + | + | dereference_uint16(self, *args) -> 'uint16 *' + | dereference_uint16(self) -> uint16 * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fnum + | fnum + | + | nbytes + | nbytes + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class gco_info_t in module ida_hexrays: + +class gco_info_t(builtins.object) + | Proxy of C++ gco_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> gco_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_gco_info_t(...) + | delete_gco_info_t(self) + | + | append_to_list(self, *args) -> 'bool' + | append_to_list(self, list, mba) -> bool + | Append operand info to LIST. This function converts IDA register number or stack + | offset to a decompiler list. + | + | @param list: (C++: mlist_t *) list to append to + | @param mba: (C++: const mba_t *) microcode object + | + | cvt_to_ivl(self, *args) -> 'vivl_t' + | cvt_to_ivl(self) -> vivl_t + | Convert operand info to VIVL. The returned VIVL can be used, for example, in a + | call of get_valranges(). + | + | is_def(self, *args) -> 'bool' + | is_def(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_use(self, *args) -> 'bool' + | is_use(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | name + | name + | + | regnum + | regnum + | + | size + | size + | + | stkoff + | stkoff + | + | thisown + | The membership flag + +Help on function gen_microcode in module ida_hexrays: + +gen_microcode(*args) -> 'mba_t *' + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t + Generate microcode of an arbitrary code snippet + + @param mbr: (C++: const mba_ranges_t &) snippet ranges + @param hf: (C++: hexrays_failure_t *) extended error information (if failed) + @param retlist: (C++: const mlist_t *) list of registers the snippet returns + @param decomp_flags: (C++: int) bitwise combination of decompile() flags... bits + @param reqmat: (C++: mba_maturity_t) required microcode maturity + @return: pointer to the microcode, nullptr if failed. + +Help on function get_ctype_name in module ida_hexrays: + +get_ctype_name(*args) -> 'char const *' + get_ctype_name(op) -> char const * + + @param op: enum ctype_t + +Help on function get_current_operand in module ida_hexrays: + +get_current_operand(*args) -> 'bool' + get_current_operand(out) -> bool + Get the instruction operand under the cursor. This function determines the + operand that is under the cursor in the active disassembly listing. If the + operand refers to a register or stack variable, it returns true. + + @param out: (C++: gco_info_t *) [out]: output buffer + +Help on function get_float_type in module ida_hexrays: + +get_float_type(*args) -> 'tinfo_t' + get_float_type(width) -> tinfo_t + Get a type of a floating point value with the specified width + + @param width: (C++: int) width of the desired type + @return: type info object + +Help on function get_hexrays_version in module ida_hexrays: + +get_hexrays_version(*args) -> 'char const *' + get_hexrays_version() -> char const * + Get decompiler version. The returned string is of the form + <major>.<minor>.<revision>.<build-date> + + @return: pointer to version string. For example: "2.0.0.140605" + +Help on function get_int_type_by_width_and_sign in module ida_hexrays: + +get_int_type_by_width_and_sign(*args) -> 'tinfo_t' + get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + Create a type info by width and sign. Returns a simple type (examples: int, + short) with the given width and sign. + + @param srcwidth: (C++: int) size of the type in bytes + @param sign: (C++: type_sign_t) sign of the type + +Help on function get_member_type in module ida_hexrays: + +get_member_type(*args) -> 'bool' + get_member_type(mptr, type) -> bool + Get type of a structure field. This function performs validity checks of the + field type. Wrong types are rejected. + + @param mptr: (C++: const member_t *) structure field + @param type: (C++: tinfo_t *) pointer to the variable where the type is returned. This parameter + can be nullptr. + @return: false if failed + +Help on function get_merror_desc in module ida_hexrays: + +get_merror_desc(*args) -> 'qstring *' + get_merror_desc(code, mba) -> str + Get textual description of an error code + + @param code: (C++: merror_t) Microcode error codes + @param mba: (C++: mba_t *) the microcode array + @return: the error address + +Help on function get_mreg_name in module ida_hexrays: + +get_mreg_name(*args) -> 'qstring *' + get_mreg_name(reg, width, ud=None) -> str + Get the microregister name. + + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes. may be bigger than the real + register size. + @param ud: (C++: void *) reserved, must be nullptr + @return: width of the printed register. this value may be less than the WIDTH + argument. + +Help on function get_op_signness in module ida_hexrays: + +get_op_signness(*args) -> 'type_sign_t' + get_op_signness(op) -> type_sign_t + Get operator sign. Meaningful for sign-dependent operators, like cot_sdiv. + + @param op: (C++: ctype_t) enum ctype_t + +Help on function get_signed_mcode in module ida_hexrays: + +get_signed_mcode(*args) -> 'mcode_t' + get_signed_mcode(code) -> mcode_t + + @param code: enum mcode_t + +Help on function get_temp_regs in module ida_hexrays: + +get_temp_regs(*args) -> 'mlist_t const &' + get_temp_regs() -> mlist_t + Get list of temporary registers. Tempregs are temporary registers that are used + during code generation. They do not map to regular processor registers. They are + used only to store temporary values during execution of one instruction. + Tempregs may not be used to pass a value from one block to another. In other + words, at the end of a block all tempregs must be dead. + +Help on function get_type in module ida_hexrays: + +get_type(*args) -> 'bool' + get_type(id, tif, guess) -> bool + Get a global type. Global types are types of addressable objects and + struct/union/enum types + + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: tinfo_t *) buffer for the answer + @param guess: (C++: type_source_t) what kind of types to consider + @return: success + +Help on function get_unk_type in module ida_hexrays: + +get_unk_type(*args) -> 'tinfo_t' + get_unk_type(size) -> tinfo_t + Create a partial type info by width. Returns a partially defined type (examples: + _DWORD, _BYTE) with the given width. + + @param size: (C++: int) size of the type in bytes + +Help on function get_unsigned_mcode in module ida_hexrays: + +get_unsigned_mcode(*args) -> 'mcode_t' + get_unsigned_mcode(code) -> mcode_t + + @param code: enum mcode_t + +Help on function get_widget_vdui in module ida_hexrays: + +get_widget_vdui(*args) -> 'vdui_t *' + get_widget_vdui(f) -> vdui_t + Get the vdui_t instance associated to the TWidget + + @param f: (C++: TWidget *) pointer to window + @return: a vdui_t *, or nullptr + +Help on function getb_reginsn in module ida_hexrays: + +getb_reginsn(*args) -> 'minsn_t *' + getb_reginsn(ins) -> minsn_t + + @param ins: minsn_t * + +Help on function getf_reginsn in module ida_hexrays: + +getf_reginsn(*args) -> 'minsn_t *' + getf_reginsn(ins) -> minsn_t + + @param ins: minsn_t * + +Help on class graph_chains_t in module ida_hexrays: + +class graph_chains_t(block_chains_vec_t) + | Proxy of C++ graph_chains_t class. + | + | Method resolution order: + | graph_chains_t + | block_chains_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> graph_chains_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_chains_t(...) + | delete_graph_chains_t(self) + | + | acquire(self, *args) -> 'void' + | acquire(self) + | Lock the chains. + | + | for_all_chains(self, *args) -> 'int' + | for_all_chains(self, cv, gca_flags) -> int + | Visit all chains + | + | @param cv: (C++: chain_visitor_t &) chain visitor + | @param gca_flags: (C++: int) combination of GCA_ bits + | + | is_locked(self, *args) -> 'bool' + | is_locked(self) -> bool + | Are the chains locked? It is a good idea to lock the chains before using them. + | This ensures that they won't be recalculated and reallocated during the use. See + | the chain_keeper_t class for that. + | + | release(self, *args) -> 'void' + | release(self) + | Unlock the chains. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: graph_chains_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from block_chains_vec_t: + | + | __getitem__(self, *args) -> 'block_chains_t const &' + | __getitem__(self, i) -> block_chains_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: block_chains_t const & + | + | at(self, *args) -> 'block_chains_t const &' + | at(self, _idx) -> block_chains_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | begin(self) -> block_chains_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< block_chains_t >::const_iterator' + | end(self) -> block_chains_t + | + | erase(self, *args) -> 'qvector< block_chains_t >::iterator' + | erase(self, it) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | + | erase(self, first, last) -> block_chains_t + | + | @param first: qvector< block_chains_t >::iterator + | @param last: qvector< block_chains_t >::iterator + | + | extract(self, *args) -> 'block_chains_t *' + | extract(self) -> block_chains_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=block_chains_t()) + | + | @param x: block_chains_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: block_chains_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< block_chains_t >::iterator' + | insert(self, it, x) -> block_chains_t + | + | @param it: qvector< block_chains_t >::iterator + | @param x: block_chains_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'block_chains_t &' + | push_back(self, x) + | + | @param x: block_chains_t const & + | + | push_back(self) -> block_chains_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: block_chains_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from block_chains_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function has_cached_cfunc in module ida_hexrays: + +has_cached_cfunc(*args) -> 'bool' + has_cached_cfunc(ea) -> bool + Do we have a cached decompilation result for 'ea'? + + @param ea: (C++: ea_t) + +Help on function has_mcode_seloff in module ida_hexrays: + +has_mcode_seloff(*args) -> 'bool' + has_mcode_seloff(op) -> bool + + @param op: enum mcode_t + +Help on function hexrays_alloc in module ida_hexrays: + +hexrays_alloc(*args) -> 'void *' + hexrays_alloc(size) -> void * + + @param size: size_t + +Help on class hexrays_failure_t in module ida_hexrays: + +class hexrays_failure_t(builtins.object) + | Proxy of C++ hexrays_failure_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> hexrays_failure_t + | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | + | __init__(self, c, ea, buf) -> hexrays_failure_t + | + | @param c: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & + | + | __repr__ = _swig_repr(self) + | + | __str__ lambda self + | + | __swig_destroy__ = delete_hexrays_failure_t(...) + | delete_hexrays_failure_t(self) + | + | desc(self, *args) -> 'qstring' + | desc(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | code + | code + | + | errea + | errea + | + | str + | str + | + | thisown + | The membership flag + +Help on function hexrays_free in module ida_hexrays: + +hexrays_free(*args) -> 'void' + hexrays_free(ptr) + + @param ptr: void * + +Help on class hexwarn_t in module ida_hexrays: + +class hexwarn_t(builtins.object) + | Proxy of C++ hexwarn_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __init__(self, *args) + | __init__(self) -> hexwarn_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: hexwarn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_hexwarn_t(...) + | delete_hexwarn_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: hexwarn_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | id + | id + | + | text + | text + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class hexwarns_t in module ida_hexrays: + +class hexwarns_t(builtins.object) + | Proxy of C++ qvector< hexwarn_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & + | + | __getitem__(self, *args) -> 'hexwarn_t const &' + | __getitem__(self, i) -> hexwarn_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> hexwarns_t + | __init__(self, x) -> hexwarns_t + | + | @param x: qvector< hexwarn_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< hexwarn_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: hexwarn_t const & + | + | __swig_destroy__ = delete_hexwarns_t(...) + | delete_hexwarns_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: hexwarn_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: hexwarn_t const & + | + | append = push_back(self, *args) -> 'hexwarn_t &' + | + | at = __getitem__(self, *args) -> 'hexwarn_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< hexwarn_t >::const_iterator' + | begin(self) -> hexwarn_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< hexwarn_t >::const_iterator' + | end(self) -> hexwarn_t + | + | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' + | erase(self, it) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | + | erase(self, first, last) -> hexwarn_t + | + | @param first: qvector< hexwarn_t >::iterator + | @param last: qvector< hexwarn_t >::iterator + | + | extract(self, *args) -> 'hexwarn_t *' + | extract(self) -> hexwarn_t + | + | find(self, *args) -> 'qvector< hexwarn_t >::const_iterator' + | find(self, x) -> hexwarn_t + | + | @param x: hexwarn_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=hexwarn_t()) + | + | @param x: hexwarn_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: hexwarn_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: hexwarn_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' + | insert(self, it, x) -> hexwarn_t + | + | @param it: qvector< hexwarn_t >::iterator + | @param x: hexwarn_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'hexwarn_t &' + | push_back(self, x) + | + | @param x: hexwarn_t const & + | + | push_back(self) -> hexwarn_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: hexwarn_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< hexwarn_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class history_item_t in module ida_hexrays: + +class history_item_t(ctext_position_t) + | Proxy of C++ history_item_t class. + | + | Method resolution order: + | history_item_t + | ctext_position_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | + | @param _ea: ea_t + | @param _lnnum: int + | @param _x: int + | @param _y: int + | + | __init__(self, _ea, p) -> history_item_t + | + | @param _ea: ea_t + | @param p: ctext_position_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_history_item_t(...) + | delete_history_item_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ea + | ea + | + | end + | end + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ctext_position_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ctext_position_t const & + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ctext_position_t const & + | + | in_ctree(self, *args) -> 'bool' + | in_ctree(self, hdrlines) -> bool + | Is the cursor in the variable/type declaration area? + | + | @param hdrlines: (C++: int) Number of lines of the declaration area + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ctext_position_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + | + | x + | x + | + | y + | y + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ctext_position_t: + | + | __hash__ = None + +Help on class history_t in module ida_hexrays: + +class history_t(qvector_history_t) + | Proxy of C++ qstack< history_item_t > class. + | + | Method resolution order: + | history_t + | qvector_history_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> history_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_history_t(...) + | delete_history_t(self) + | + | append = push_back(self, *args) -> 'history_item_t &' + | push_back(self, x) + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t + | + | at = __getitem__(self, *args) -> 'history_item_t const &' + | __getitem__(self, i) -> history_item_t + | + | @param i: size_t + | + | pop(self, *args) -> 'history_item_t' + | pop(self) -> history_item_t + | + | push(self, *args) -> 'void' + | push(self, v) + | + | @param v: history_item_t const & + | + | top(self, *args) -> 'history_item_t &' + | top(self) -> history_item_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_history_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __getitem__(self, *args) -> 'history_item_t const &' + | __getitem__(self, i) -> history_item_t + | + | @param i: size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: history_item_t const & + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' + | begin(self) -> history_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< history_item_t >::const_iterator' + | end(self) -> history_item_t + | + | erase(self, *args) -> 'qvector< history_item_t >::iterator' + | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | + | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator + | + | extract(self, *args) -> 'history_item_t *' + | extract(self) -> history_item_t + | + | find(self, *args) -> 'qvector< history_item_t >::const_iterator' + | find(self, x) -> history_item_t + | + | @param x: history_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: history_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< history_item_t >::iterator' + | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'history_item_t &' + | push_back(self, x) + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< history_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_history_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from qvector_history_t: + | + | __hash__ = None + +Help on function init_hexrays_plugin in module ida_hexrays: + +init_hexrays_plugin(*args) -> 'bool' + init_hexrays_plugin(flags=0) -> bool + Check that your plugin is compatible with hex-rays decompiler. This function + must be called before calling any other decompiler function. + + @param flags: (C++: int) reserved, must be 0 + @return: true if the decompiler exists and is compatible with your plugin + +Help on function install_hexrays_callback in module ida_hexrays: + +install_hexrays_callback(callback) + Deprecated. Please use Hexrays_Hooks instead + Install handler for decompiler events. + + @return: false if failed + +Help on function install_microcode_filter in module ida_hexrays: + +install_microcode_filter(*args) -> 'bool' + install_microcode_filter(filter, install=True) -> bool + register/unregister non-standard microcode generator + + @param filter: (C++: microcode_filter_t *) - microcode generator object + @param install: (C++: bool) - TRUE - register the object, FALSE - unregister + @return: success + +Help on function is_additive in module ida_hexrays: + +is_additive(*args) -> 'bool' + is_additive(op) -> bool + Is additive operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_assignment in module ida_hexrays: + +is_assignment(*args) -> 'bool' + is_assignment(op) -> bool + Is assignment operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_binary in module ida_hexrays: + +is_binary(*args) -> 'bool' + is_binary(op) -> bool + Is binary operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_bitop in module ida_hexrays: + +is_bitop(*args) -> 'bool' + is_bitop(op) -> bool + Is bit related operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_bool_type in module ida_hexrays: + +is_bool_type(*args) -> 'bool' + is_bool_type(type) -> bool + Is a boolean type? + + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a boolean type + +Help on function is_break_consumer in module ida_hexrays: + +is_break_consumer(*args) -> 'bool' + is_break_consumer(op) -> bool + Does a break statement influence the specified statement code? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_commutative in module ida_hexrays: + +is_commutative(*args) -> 'bool' + is_commutative(op) -> bool + Is commutative operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_inplace_def in module ida_hexrays: + +is_inplace_def(*args) -> 'bool' + is_inplace_def(type) -> bool + Is struct/union/enum definition (not declaration)? + + @param type: (C++: const tinfo_t &) tinfo_t const & + +Help on function is_kreg in module ida_hexrays: + +is_kreg(*args) -> 'bool' + is_kreg(r) -> bool + Is a kernel register? Kernel registers are temporary registers that can be used + freely. They may be used to store values that cross instruction or basic block + boundaries. Kernel registers do not map to regular processor registers. See also + mba_t::alloc_kreg() + + @param r: (C++: mreg_t) + +Help on function is_logical in module ida_hexrays: + +is_logical(*args) -> 'bool' + is_logical(op) -> bool + Is logical operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_loop in module ida_hexrays: + +is_loop(*args) -> 'bool' + is_loop(op) -> bool + Is loop statement code? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_lvalue in module ida_hexrays: + +is_lvalue(*args) -> 'bool' + is_lvalue(op) -> bool + Is Lvalue operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_may_access in module ida_hexrays: + +is_may_access(*args) -> 'bool' + is_may_access(maymust) -> bool + + @param maymust: maymust_t + +Help on function is_mcode_addsub in module ida_hexrays: + +is_mcode_addsub(*args) -> 'bool' + is_mcode_addsub(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_call in module ida_hexrays: + +is_mcode_call(*args) -> 'bool' + is_mcode_call(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_commutative in module ida_hexrays: + +is_mcode_commutative(*args) -> 'bool' + is_mcode_commutative(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_convertible_to_jmp in module ida_hexrays: + +is_mcode_convertible_to_jmp(*args) -> 'bool' + is_mcode_convertible_to_jmp(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_convertible_to_set in module ida_hexrays: + +is_mcode_convertible_to_set(*args) -> 'bool' + is_mcode_convertible_to_set(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_divmod in module ida_hexrays: + +is_mcode_divmod(*args) -> 'bool' + is_mcode_divmod(op) -> bool + + @param op: enum mcode_t + +Help on function is_mcode_fpu in module ida_hexrays: + +is_mcode_fpu(*args) -> 'bool' + is_mcode_fpu(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_j1 in module ida_hexrays: + +is_mcode_j1(*args) -> 'bool' + is_mcode_j1(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_jcond in module ida_hexrays: + +is_mcode_jcond(*args) -> 'bool' + is_mcode_jcond(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_propagatable in module ida_hexrays: + +is_mcode_propagatable(*args) -> 'bool' + is_mcode_propagatable(mcode) -> bool + May opcode be propagated? Such opcodes can be used in sub-instructions (nested + instructions) There is a handful of non-propagatable opcodes, like jumps, ret, + nop, etc All other regular opcodes are propagatable and may appear in a nested + instruction. + + @param mcode: (C++: mcode_t) enum mcode_t + +Help on function is_mcode_set in module ida_hexrays: + +is_mcode_set(*args) -> 'bool' + is_mcode_set(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_set1 in module ida_hexrays: + +is_mcode_set1(*args) -> 'bool' + is_mcode_set1(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_shift in module ida_hexrays: + +is_mcode_shift(*args) -> 'bool' + is_mcode_shift(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_mcode_xdsu in module ida_hexrays: + +is_mcode_xdsu(*args) -> 'bool' + is_mcode_xdsu(mcode) -> bool + + @param mcode: enum mcode_t + +Help on function is_multiplicative in module ida_hexrays: + +is_multiplicative(*args) -> 'bool' + is_multiplicative(op) -> bool + Is multiplicative operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_nonbool_type in module ida_hexrays: + +is_nonbool_type(*args) -> 'bool' + is_nonbool_type(type) -> bool + Is definitely a non-boolean type? + + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a non-boolean type (non bool and well defined) + +Help on function is_paf in module ida_hexrays: + +is_paf(*args) -> 'bool' + is_paf(t) -> bool + Is a pointer, array, or function type? + + @param t: (C++: type_t) + +Help on function is_prepost in module ida_hexrays: + +is_prepost(*args) -> 'bool' + is_prepost(op) -> bool + Is pre/post increment/decrement operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_ptr_or_array in module ida_hexrays: + +is_ptr_or_array(*args) -> 'bool' + is_ptr_or_array(t) -> bool + Is a pointer or array type? + + @param t: (C++: type_t) + +Help on function is_relational in module ida_hexrays: + +is_relational(*args) -> 'bool' + is_relational(op) -> bool + Is comparison operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_signed_mcode in module ida_hexrays: + +is_signed_mcode(*args) -> 'bool' + is_signed_mcode(code) -> bool + + @param code: enum mcode_t + +Help on function is_small_udt in module ida_hexrays: + +is_small_udt(*args) -> 'bool' + is_small_udt(tif) -> bool + Is a small structure or union? + + @param tif: (C++: const tinfo_t &) tinfo_t const & + @return: true if the type is a small UDT (user defined type). Small UDTs fit + into a register (or pair or registers) as a rule. + +Help on function is_type_correct in module ida_hexrays: + +is_type_correct(*args) -> 'bool' + is_type_correct(ptr) -> bool + Verify a type string. + + @param ptr: (C++: const type_t *) type_t const * + @return: true if type string is correct + +Help on function is_unary in module ida_hexrays: + +is_unary(*args) -> 'bool' + is_unary(op) -> bool + Is unary operator? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function is_unsigned_mcode in module ida_hexrays: + +is_unsigned_mcode(*args) -> 'bool' + is_unsigned_mcode(code) -> bool + + @param code: enum mcode_t + +Help on class iterator in module ida_hexrays: + +class iterator(builtins.object) + | Proxy of C++ bitset_t::iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | + | @param n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: bitset_t::iterator const & + | + | __ref__(self, *args) -> 'int' + | __ref__(self) -> int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_iterator(...) + | delete_iterator(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ivl_t in module ida_hexrays: + +class ivl_t(uval_ivl_t) + | Proxy of C++ ivl_t class. + | + | Method resolution order: + | ivl_t + | uval_ivl_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __init__(self, *args) + | __init__(self, _off=0, _size=0) -> ivl_t + | + | @param _off: uval_t + | @param _size: uval_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ivl_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ivl_t(...) + | delete_ivl_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ivl_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, off2) -> bool + | + | @param off2: uval_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | extend_to_cover(self, *args) -> 'bool' + | extend_to_cover(self, r) -> bool + | + | @param r: ivl_t const & + | + | includes(self, *args) -> 'bool' + | includes(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | + | @param r: ivl_t const & + | + | overlap(self, *args) -> 'bool' + | overlap(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from uval_ivl_t: + | + | end(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | end(self) -> unsigned-ea-like-numeric-type↗ + | + | last(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | last(self) -> unsigned-ea-like-numeric-type↗ + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from uval_ivl_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | size + | size + +Help on class ivl_with_name_t in module ida_hexrays: + +class ivl_with_name_t(builtins.object) + | Proxy of C++ ivl_with_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ivl_with_name_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ivl_with_name_t(...) + | delete_ivl_with_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ivl + | ivl + | + | part + | part + | + | thisown + | The membership flag + | + | whole + | whole + +Help on class ivlset_t in module ida_hexrays: + +class ivlset_t(uval_ivl_ivlset_t) + | Proxy of C++ ivlset_t class. + | + | Method resolution order: + | ivlset_t + | uval_ivl_ivlset_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __init__(self, *args) + | __init__(self) -> ivlset_t + | __init__(self, ivl) -> ivlset_t + | + | @param ivl: ivl_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ivlset_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ivlset_t(...) + | delete_ivlset_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | add(self, *args) -> 'bool' + | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | add(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | + | add(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | addmasked(self, *args) -> 'bool' + | addmasked(self, ivs, mask) -> bool + | + | @param ivs: ivlset_t const & + | @param mask: ivl_t const & + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: ivlset_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, off) -> bool + | + | @param off: uval_t + | + | count(self, *args) -> 'asize_t' + | count(self) -> asize_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | has_common(self, *args) -> 'bool' + | has_common(self, ivl, strict=False) -> bool + | + | @param ivl: ivl_t const & + | @param strict: bool + | + | has_common(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | includes(self, *args) -> 'bool' + | includes(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | sub(self, *args) -> 'bool' + | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | sub(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | + | sub(self, ivs) -> bool + | + | @param ivs: ivlset_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from uval_ivl_ivlset_t: + | + | all_values(self, *args) -> 'bool' + | all_values(self) -> bool + | + | begin(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | getivl(self, *args) -> 'ivl_t const &' + | getivl(self, idx) -> ivl_t + | + | @param idx: int + | + | lastivl(self, *args) -> 'ivl_t const &' + | lastivl(self) -> ivl_t + | + | nivls(self, *args) -> 'size_t' + | nivls(self) -> size_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | set_all_values(self, *args) -> 'void' + | set_all_values(self) + | + | single_value(self, *args) -> 'bool' + | single_value(self) -> bool + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from uval_ivl_ivlset_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function jcnd2set in module ida_hexrays: + +jcnd2set(*args) -> 'mcode_t' + jcnd2set(code) -> mcode_t + + @param code: enum mcode_t + +Help on function lexcompare in module ida_hexrays: + +lexcompare(*args) -> 'int' + lexcompare(a, b) -> int + + @param a: mop_t const & + @param b: mop_t const & + +Help on function lnot in module ida_hexrays: + +lnot(e) + Logically negate the specified expression. The specified expression will be + logically negated. For example, "x == y" is converted into "x != y" by this + function. + + @return: logically negated expression. + +Help on function locate_lvar in module ida_hexrays: + +locate_lvar(*args) -> 'bool' + locate_lvar(out, func_ea, varname) -> bool + Find a variable by name. + + @param out: (C++: lvar_locator_t *) output buffer for the variable locator + @param func_ea: (C++: ea_t) function start address + @param varname: (C++: const char *) variable name + @return: success Since VARNAME is not always enough to find the variable, it may + decompile the function. + +Help on class lvar_locator_t in module ida_hexrays: + +class lvar_locator_t(builtins.object) + | Proxy of C++ lvar_locator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __init__(self, *args) + | __init__(self) -> lvar_locator_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_locator_t(...) + | delete_lvar_locator_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: lvar_locator_t const & + | + | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t + | Get the register number of the variable. + | + | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) + | + | get_scattered(self, *args) -> 'scattered_aloc_t &' + | get_scattered(self) -> scattered_aloc_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | Is variable located on one register? + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | Is variable located on two registers? + | + | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool + | Is variable located on register(s)? + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is variable scattered? + | + | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool + | Is variable located on the stack? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | defea + | defea + | + | location + | location + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function lvar_mapping_begin in module ida_hexrays: + +lvar_mapping_begin(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_begin(map) -> lvar_mapping_iterator_t + Get iterator pointing to the beginning of lvar_mapping_t. + + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + +Help on function lvar_mapping_clear in module ida_hexrays: + +lvar_mapping_clear(*args) -> 'void' + lvar_mapping_clear(map) + Clear lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + +Help on function lvar_mapping_end in module ida_hexrays: + +lvar_mapping_end(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_end(map) -> lvar_mapping_iterator_t + Get iterator pointing to the end of lvar_mapping_t. + + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + +Help on function lvar_mapping_erase in module ida_hexrays: + +lvar_mapping_erase(*args) -> 'void' + lvar_mapping_erase(map, p) + Erase current element from lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_find in module ida_hexrays: + +lvar_mapping_find(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_find(map, key) -> lvar_mapping_iterator_t + Find the specified key in lvar_mapping_t. + + @param map: (C++: const lvar_mapping_t *) lvar_mapping_t const * + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + +Help on function lvar_mapping_first in module ida_hexrays: + +lvar_mapping_first(*args) -> 'lvar_locator_t const &' + lvar_mapping_first(p) -> lvar_locator_t + Get reference to the current map key. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_free in module ida_hexrays: + +lvar_mapping_free(*args) -> 'void' + lvar_mapping_free(map) + Delete lvar_mapping_t instance. + + @param map: (C++: lvar_mapping_t *) + +Help on function lvar_mapping_insert in module ida_hexrays: + +lvar_mapping_insert(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_t + Insert new (lvar_locator_t, lvar_locator_t) pair into lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + @param key: (C++: const lvar_locator_t &) lvar_locator_t const & + @param val: (C++: const lvar_locator_t &) lvar_locator_t const & + +Help on class lvar_mapping_iterator_t in module ida_hexrays: + +class lvar_mapping_iterator_t(builtins.object) + | Proxy of C++ lvar_mapping_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> lvar_mapping_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: lvar_mapping_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_mapping_iterator_t(...) + | delete_lvar_mapping_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function lvar_mapping_new in module ida_hexrays: + +lvar_mapping_new(*args) -> 'lvar_mapping_t *' + lvar_mapping_new() -> lvar_mapping_t + Create a new lvar_mapping_t instance. + +Help on function lvar_mapping_next in module ida_hexrays: + +lvar_mapping_next(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_next(p) -> lvar_mapping_iterator_t + Move to the next element. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_prev in module ida_hexrays: + +lvar_mapping_prev(*args) -> 'lvar_mapping_iterator_t' + lvar_mapping_prev(p) -> lvar_mapping_iterator_t + Move to the previous element. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_second in module ida_hexrays: + +lvar_mapping_second(*args) -> 'lvar_locator_t &' + lvar_mapping_second(p) -> lvar_locator_t + Get reference to the current map value. + + @param p: (C++: lvar_mapping_iterator_t) + +Help on function lvar_mapping_size in module ida_hexrays: + +lvar_mapping_size(*args) -> 'size_t' + lvar_mapping_size(map) -> size_t + Get size of lvar_mapping_t. + + @param map: (C++: lvar_mapping_t *) + +Help on class lvar_mapping_t in module ida_hexrays: + +class lvar_mapping_t(builtins.object) + | Proxy of C++ std::map< lvar_locator_t,lvar_locator_t > class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lvar_mapping_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_mapping_t(...) + | delete_lvar_mapping_t(self) + | + | at(self, *args) -> 'lvar_locator_t &' + | at(self, _Keyval) -> lvar_locator_t + | + | @param _Keyval: lvar_locator_t const & + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lvar_ref_t in module ida_hexrays: + +class lvar_ref_t(builtins.object) + | Proxy of C++ lvar_ref_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __init__(self, *args) + | __init__(self, m, i, o=0) -> lvar_ref_t + | + | @param m: mba_t * + | @param i: int + | @param o: sval_t + | + | __init__(self, r) -> lvar_ref_t + | + | @param r: lvar_ref_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_ref_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_ref_t(...) + | delete_lvar_ref_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: lvar_ref_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lvar_ref_t & + | + | var(self, *args) -> 'lvar_t &' + | var(self) -> lvar_t + | Retrieve the referenced variable. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | mba + | mba + | + | off + | off + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lvar_saved_info_t in module ida_hexrays: + +class lvar_saved_info_t(builtins.object) + | Proxy of C++ lvar_saved_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & + | + | __init__(self, *args) + | __init__(self) -> lvar_saved_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_saved_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_saved_info_t(...) + | delete_lvar_saved_info_t(self) + | + | clear_keep(self, *args) -> 'void' + | clear_keep(self) + | + | clr_forced_lvar(self, *args) -> 'void' + | clr_forced_lvar(self) + | + | clr_nomap_lvar(self, *args) -> 'void' + | clr_nomap_lvar(self) + | + | clr_noptr_lvar(self, *args) -> 'void' + | clr_noptr_lvar(self) + | + | clr_unused_lvar(self, *args) -> 'void' + | clr_unused_lvar(self) + | + | has_info(self, *args) -> 'bool' + | has_info(self) -> bool + | + | is_forced_lvar(self, *args) -> 'bool' + | is_forced_lvar(self) -> bool + | + | is_kept(self, *args) -> 'bool' + | is_kept(self) -> bool + | + | is_nomap_lvar(self, *args) -> 'bool' + | is_nomap_lvar(self) -> bool + | + | is_noptr_lvar(self, *args) -> 'bool' + | is_noptr_lvar(self) -> bool + | + | is_unused_lvar(self, *args) -> 'bool' + | is_unused_lvar(self) -> bool + | + | set_forced_lvar(self, *args) -> 'void' + | set_forced_lvar(self) + | + | set_keep(self, *args) -> 'void' + | set_keep(self) + | + | set_nomap_lvar(self, *args) -> 'void' + | set_nomap_lvar(self) + | + | set_noptr_lvar(self, *args) -> 'void' + | set_noptr_lvar(self) + | + | set_unused_lvar(self, *args) -> 'void' + | set_unused_lvar(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | flags + | flags + | + | ll + | ll + | + | name + | name + | + | size + | size + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lvar_saved_infos_t in module ida_hexrays: + +class lvar_saved_infos_t(builtins.object) + | Proxy of C++ qvector< lvar_saved_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & + | + | __getitem__(self, *args) -> 'lvar_saved_info_t const &' + | __getitem__(self, i) -> lvar_saved_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> lvar_saved_infos_t + | __init__(self, x) -> lvar_saved_infos_t + | + | @param x: qvector< lvar_saved_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_saved_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_saved_info_t const & + | + | __swig_destroy__ = delete_lvar_saved_infos_t(...) + | delete_lvar_saved_infos_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_saved_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lvar_saved_info_t const & + | + | append = push_back(self, *args) -> 'lvar_saved_info_t &' + | + | at = __getitem__(self, *args) -> 'lvar_saved_info_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' + | begin(self) -> lvar_saved_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' + | end(self) -> lvar_saved_info_t + | + | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' + | erase(self, it) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | + | erase(self, first, last) -> lvar_saved_info_t + | + | @param first: qvector< lvar_saved_info_t >::iterator + | @param last: qvector< lvar_saved_info_t >::iterator + | + | extract(self, *args) -> 'lvar_saved_info_t *' + | extract(self) -> lvar_saved_info_t + | + | find(self, *args) -> 'qvector< lvar_saved_info_t >::const_iterator' + | find(self, x) -> lvar_saved_info_t + | + | @param x: lvar_saved_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lvar_saved_info_t()) + | + | @param x: lvar_saved_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lvar_saved_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lvar_saved_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' + | insert(self, it, x) -> lvar_saved_info_t + | + | @param it: qvector< lvar_saved_info_t >::iterator + | @param x: lvar_saved_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lvar_saved_info_t &' + | push_back(self, x) + | + | @param x: lvar_saved_info_t const & + | + | push_back(self) -> lvar_saved_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_saved_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lvar_saved_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lvar_t in module ida_hexrays: + +class lvar_t(lvar_locator_t) + | Proxy of C++ lvar_t class. + | + | Method resolution order: + | lvar_t + | lvar_locator_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> lvar_locator_t + | __init__(self, loc, ea) -> lvar_locator_t + | + | @param loc: vdloc_t const & + | @param ea: ea_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_t(...) + | delete_lvar_t(self) + | + | accepts_type(self, *args) -> 'bool' + | accepts_type(self, t, may_change_thisarg=False) -> bool + | Check if the variable accept the specified type. Some types are forbidden (void, + | function types, wrong arrays, etc) + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | @param may_change_thisarg: (C++: bool) + | + | append_list(self, *args) -> 'void' + | append_list(self, mba, lst, pad_if_scattered=False) + | Append local variable to mlist. + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t + | @param lst: (C++: mlist_t *) list to append to + | @param pad_if_scattered: (C++: bool) if true, append padding bytes in case of scattered lvar + | + | clear_used(self, *args) -> 'void' + | clear_used(self) + | + | clr_arg_var(self, *args) -> 'void' + | clr_arg_var(self) + | + | clr_automapped(self, *args) -> 'void' + | clr_automapped(self) + | + | clr_decl_unused(self, *args) -> 'void' + | clr_decl_unused(self) + | + | clr_dummy_arg(self, *args) -> 'void' + | clr_dummy_arg(self) + | + | clr_fake_var(self, *args) -> 'void' + | clr_fake_var(self) + | + | clr_floating_var(self, *args) -> 'void' + | clr_floating_var(self) + | + | clr_forced_var(self, *args) -> 'void' + | clr_forced_var(self) + | + | clr_mapdst_var(self, *args) -> 'void' + | clr_mapdst_var(self) + | + | clr_mreg_done(self, *args) -> 'void' + | clr_mreg_done(self) + | + | clr_noptr_var(self, *args) -> 'void' + | clr_noptr_var(self) + | + | clr_notarg(self, *args) -> 'void' + | clr_notarg(self) + | + | clr_overlapped_var(self, *args) -> 'void' + | clr_overlapped_var(self) + | + | clr_shared(self, *args) -> 'void' + | clr_shared(self) + | + | clr_spoiled_var(self, *args) -> 'void' + | clr_spoiled_var(self) + | + | clr_thisarg(self, *args) -> 'void' + | clr_thisarg(self) + | + | clr_unknown_width(self, *args) -> 'void' + | clr_unknown_width(self) + | + | clr_used_byref(self, *args) -> 'void' + | clr_used_byref(self) + | + | clr_user_info(self, *args) -> 'void' + | clr_user_info(self) + | + | clr_user_name(self, *args) -> 'void' + | clr_user_name(self) + | + | clr_user_type(self, *args) -> 'void' + | clr_user_type(self) + | + | has_common(self, *args) -> 'bool' + | has_common(self, v) -> bool + | Do variables overlap? + | + | @param v: (C++: const lvar_t &) lvar_t const & + | + | has_common_bit(self, *args) -> 'bool' + | has_common_bit(self, loc, width2) -> bool + | Does the variable overlap with the specified location? + | + | @param loc: (C++: const vdloc_t &) vdloc_t const & + | @param width2: (C++: asize_t) + | + | has_regname(self, *args) -> 'bool' + | has_regname(self) -> bool + | Has a register name? (like _RAX) + | + | in_asm(self, *args) -> 'bool' + | in_asm(self) -> bool + | Is variable used in an instruction translated into __asm? + | + | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mba) -> bool + | Is the variable aliasable? + | + | @param mba: (C++: const mba_t *) ptr to the current mba_t Aliasable variables may be modified + | indirectly (through a pointer) + | + | is_automapped(self, *args) -> 'bool' + | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? + | + | is_decl_unused(self, *args) -> 'bool' + | is_decl_unused(self) -> bool + | Was declared as __unused by the user? See CVAR_UNUSED. + | + | is_dummy_arg(self, *args) -> 'bool' + | is_dummy_arg(self) -> bool + | Is a dummy argument (added to fill a hole in the argument list) + | + | is_forced_var(self, *args) -> 'bool' + | is_forced_var(self) -> bool + | Is a forced variable? + | + | is_noptr_var(self, *args) -> 'bool' + | is_noptr_var(self) -> bool + | Variable type should not be a pointer. + | + | is_notarg(self, *args) -> 'bool' + | is_notarg(self) -> bool + | Is a local variable? (local variable cannot be an input argument) + | + | is_shared(self, *args) -> 'bool' + | is_shared(self) -> bool + | Is lvar mapped to several chains. + | + | is_thisarg(self, *args) -> 'bool' + | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) -> 'bool' + | is_used_byref(self) -> bool + | Was the address of the variable taken? + | + | set_arg_var(self, *args) -> 'void' + | set_arg_var(self) + | + | set_automapped(self, *args) -> 'void' + | set_automapped(self) + | + | set_decl_unused(self, *args) -> 'void' + | set_decl_unused(self) + | + | set_dummy_arg(self, *args) -> 'void' + | set_dummy_arg(self) + | + | set_fake_var(self, *args) -> 'void' + | set_fake_var(self) + | + | set_final_lvar_type(self, *args) -> 'void' + | set_final_lvar_type(self, t) + | Set final variable type. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | + | set_floating_var(self, *args) -> 'void' + | set_floating_var(self) + | + | set_forced_var(self, *args) -> 'void' + | set_forced_var(self) + | + | set_lvar_type(self, *args) -> 'bool' + | set_lvar_type(self, t, may_fail=False) -> bool + | Set variable type Note: this function does not modify the idb, only the lvar + | instance in the memory. For permanent changes see modify_user_lvars() Also, the + | variable type is not considered as final by the decompiler and may be modified + | later by the type derivation. In some cases set_final_var_type() may work + | better, but it does not do persistent changes to the database neither. + | + | @param t: (C++: const tinfo_t &) new type + | @param may_fail: (C++: bool) if false and type is bad, interr + | @return: success + | + | set_mapdst_var(self, *args) -> 'void' + | set_mapdst_var(self) + | + | set_mreg_done(self, *args) -> 'void' + | set_mreg_done(self) + | + | set_non_typed(self, *args) -> 'void' + | set_non_typed(self) + | + | set_noptr_var(self, *args) -> 'void' + | set_noptr_var(self) + | + | set_notarg(self, *args) -> 'void' + | set_notarg(self) + | + | set_overlapped_var(self, *args) -> 'void' + | set_overlapped_var(self) + | + | set_shared(self, *args) -> 'void' + | set_shared(self) + | + | set_spoiled_var(self, *args) -> 'void' + | set_spoiled_var(self) + | + | set_thisarg(self, *args) -> 'void' + | set_thisarg(self) + | + | set_typed(self, *args) -> 'void' + | set_typed(self) + | + | set_unknown_width(self, *args) -> 'void' + | set_unknown_width(self) + | + | set_used(self, *args) -> 'void' + | set_used(self) + | + | set_used_byref(self, *args) -> 'void' + | set_used_byref(self) + | + | set_user_name(self, *args) -> 'void' + | set_user_name(self) + | + | set_user_type(self, *args) -> 'void' + | set_user_type(self) + | + | set_width(self, *args) -> 'bool' + | set_width(self, w, svw_flags=0) -> bool + | Change the variable width. We call the variable size 'width', it is represents + | the number of bytes. This function may change the variable type using + | set_lvar_type(). + | + | @param w: (C++: int) new width + | @param svw_flags: (C++: int) combination of SVW_... bits + | @return: success + | + | type(self, *args) -> 'tinfo_t &' + | type(self) -> tinfo_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cmt + | cmt + | + | defblk + | defblk + | + | divisor + | divisor + | + | has_nice_name + | has_nice_name(self) -> bool + | Does the variable have a nice name? + | + | has_user_info + | has_user_info(self) -> bool + | Has any user-defined information? + | + | has_user_name + | has_user_name(self) -> bool + | Has user-defined name? + | + | has_user_type + | has_user_type(self) -> bool + | Has user-defined type? + | + | is_arg_var + | is_arg_var(self) -> bool + | Is the function argument? + | + | is_fake_var + | is_fake_var(self) -> bool + | Is fake return variable? + | + | is_floating_var + | is_floating_var(self) -> bool + | Used by a fpu insn? + | + | is_mapdst_var + | is_mapdst_var(self) -> bool + | Other variable(s) map to this var? + | + | is_overlapped_var + | is_overlapped_var(self) -> bool + | Is overlapped variable? + | + | is_result_var + | is_result_var(self) -> bool + | Is the function result? + | + | is_spoiled_var + | is_spoiled_var(self) -> bool + | Is spoiled var? (meaningful only during lvar allocation) + | + | is_unknown_width + | is_unknown_width(self) -> bool + | Do we know the width of the variable? + | + | mreg_done + | mreg_done(self) -> bool + | Have corresponding microregs been replaced by references to this variable? + | + | name + | name + | + | thisown + | The membership flag + | + | tif + | tif + | + | typed + | typed(self) -> bool + | Has the variable a type? + | + | used + | used(self) -> bool + | Is the variable used in the code? + | + | width + | width + | + | ---------------------------------------------------------------------- + | Methods inherited from lvar_locator_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lvar_locator_t const & + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: lvar_locator_t const & + | + | get_reg1(self, *args) -> 'mreg_t' + | get_reg1(self) -> mreg_t + | Get the register number of the variable. + | + | get_reg2(self, *args) -> 'mreg_t' + | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) + | + | get_scattered(self, *args) -> 'scattered_aloc_t &' + | get_scattered(self) -> scattered_aloc_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. + | + | @return: a non-negative value for stack variables. The value is an offset from + | the bottom of the stack frame in terms of vd-offsets. negative values + | mean error (not a stack variable) + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | Is variable located on one register? + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | Is variable located on two registers? + | + | is_reg_var(self, *args) -> 'bool' + | is_reg_var(self) -> bool + | Is variable located on register(s)? + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is variable scattered? + | + | is_stk_var(self, *args) -> 'bool' + | is_stk_var(self) -> bool + | Is variable located on the stack? + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from lvar_locator_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | defea + | defea + | + | location + | location + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from lvar_locator_t: + | + | __hash__ = None + +Help on class lvar_uservec_t in module ida_hexrays: + +class lvar_uservec_t(builtins.object) + | Proxy of C++ lvar_uservec_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lvar_uservec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvar_uservec_t(...) + | delete_lvar_uservec_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | find_info(self, *args) -> 'lvar_saved_info_t *' + | find_info(self, vloc) -> lvar_saved_info_t + | find saved user settings for given var + | + | @param vloc: (C++: const lvar_locator_t &) lvar_locator_t const & + | + | keep_info(self, *args) -> 'void' + | keep_info(self, v) + | Preserve user settings for given var. + | + | @param v: (C++: const lvar_t &) lvar_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lvar_uservec_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lmaps + | lmaps + | + | lvvec + | lvvec + | + | stkoff_delta + | stkoff_delta + | + | thisown + | The membership flag + | + | ulv_flags + | ulv_flags + +Help on class lvars_t in module ida_hexrays: + +class lvars_t(qvector_lvar_t) + | Proxy of C++ lvars_t class. + | + | Method resolution order: + | lvars_t + | qvector_lvar_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lvars_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lvars_t(...) + | delete_lvars_t(self) + | + | find(self, *args) -> 'lvar_t *' + | find(self, ll) -> lvar_t + | Find variable at the specified location. + | + | @param ll: (C++: const lvar_locator_t &) variable location + | @return: pointer to variable or nullptr + | + | find_input_lvar(self, *args) -> 'int' + | find_input_lvar(self, argloc, _size) -> int + | Find input variable at the specified location. + | + | @param argloc: (C++: const vdloc_t &) variable location + | @param _size: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. + | + | find_lvar(self, *args) -> 'int' + | find_lvar(self, location, width, defblk=-1) -> int + | Find variable at the specified location. + | + | @param location: (C++: const vdloc_t &) variable location + | @param width: (C++: int) variable size + | @param defblk: (C++: int) definition block of the lvar. -1 means any block + | @return: -1 if failed, otherwise the index into the variables vector. + | + | find_stkvar(self, *args) -> 'int' + | find_stkvar(self, spoff, width) -> int + | Find stack variable at the specified location. + | + | @param spoff: (C++: sval_t) offset from the minimal sp + | @param width: (C++: int) variable size + | @return: -1 if failed, otherwise the index into the variables vector. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from qvector_lvar_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __getitem__(self, *args) -> 'lvar_t const &' + | __getitem__(self, i) -> lvar_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lvar_t const & + | + | append = push_back(self, *args) -> 'lvar_t &' + | push_back(self, x) + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t + | + | at = __getitem__(self, *args) -> 'lvar_t const &' + | __getitem__(self, i) -> lvar_t + | + | @param i: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' + | begin(self) -> lvar_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lvar_t >::const_iterator' + | end(self) -> lvar_t + | + | erase(self, *args) -> 'qvector< lvar_t >::iterator' + | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | + | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator + | + | extract(self, *args) -> 'lvar_t *' + | extract(self) -> lvar_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lvar_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lvar_t >::iterator' + | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lvar_t &' + | push_back(self, x) + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lvar_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from qvector_lvar_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from qvector_lvar_t: + | + | __hash__ = None + +Help on function make_num in module ida_hexrays: + +make_num(*args) + Create a number expression + +Help on function make_pointer in module ida_hexrays: + +make_pointer(*args) -> 'tinfo_t' + make_pointer(type) -> tinfo_t + Create a pointer type. This function performs the following conversion: "type" + -> "type*" + + @param type: (C++: const tinfo_t &) object type. + @return: "type*". for example, if 'char' is passed as the argument, + +Help on function make_ref in module ida_hexrays: + +make_ref(e) + Create a reference. This function performs the following conversion: "obj" => + "&obj". It can handle casts, annihilate "&*", and process other special cases. + +Help on function mark_cfunc_dirty in module ida_hexrays: + +mark_cfunc_dirty(*args) -> 'bool' + mark_cfunc_dirty(ea, close_views=False) -> bool + Flush the cached decompilation results. Erases a cache entry for the specified + function. + + @param ea: (C++: ea_t) function to erase from the cache + @param close_views: (C++: bool) close pseudocode windows that show the function + @return: if a cache entry existed. + +Help on class mba_range_iterator_t in module ida_hexrays: + +class mba_range_iterator_t(builtins.object) + | Proxy of C++ mba_range_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mba_range_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mba_range_iterator_t(...) + | delete_mba_range_iterator_t(self) + | + | chunk(self, *args) -> 'range_t const &' + | chunk(self) -> range_t + | + | is_snippet(self, *args) -> 'bool' + | is_snippet(self) -> bool + | + | next(self, *args) -> 'bool' + | next(self) -> bool + | + | set(self, *args) -> 'bool' + | set(self, mbr) -> bool + | + | @param mbr: mba_ranges_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fii + | fii + | + | rii + | rii + | + | thisown + | The membership flag + +Help on class mba_ranges_t in module ida_hexrays: + +class mba_ranges_t(builtins.object) + | Proxy of C++ mba_ranges_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _pfn=None) -> mba_ranges_t + | + | @param _pfn: func_t * + | + | __init__(self, r) -> mba_ranges_t + | + | @param r: rangevec_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mba_ranges_t(...) + | delete_mba_ranges_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | + | is_snippet(self, *args) -> 'bool' + | is_snippet(self) -> bool + | + | start(self, *args) -> 'ea_t' + | start(self) -> ea_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | pfn + | pfn + | + | ranges + | ranges + | + | thisown + | The membership flag + +Help on class mba_t in module ida_hexrays: + +class mba_t(builtins.object) + | Proxy of C++ mba_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mba_t(...) + | delete_mba_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _print(self, *args) -> 'void' + | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & + | + | _register(self, *args) -> 'void' + | _register(self) + | + | alloc_fict_ea(self, *args) -> 'ea_t' + | alloc_fict_ea(self, real_ea) -> ea_t + | Allocate a fictional address. This function can be used to allocate a new unique + | address for a new instruction, if re-using any existing address leads to + | conflicts. For example, if the last instruction of the function modifies R0 and + | falls through to the next function, it will be a tail call: LDM R0!, {R4,R7} end + | of the function start of another function In this case R0 generates two + | different lvars at the same address: + | * one modified by LDM + | * another that represents the return value from the tail call Another example: a + | third-party plugin makes a copy of an instruction. This may lead to the + | generation of two variables at the same address. Example 3: fictional addresses + | can be used for new instructions created while modifying the microcode. This + | function can be used to allocate a new unique address for a new instruction or a + | variable. The fictional address is selected from an unallocated address range. + | + | @param real_ea: (C++: ea_t) real instruction address (BADADDR is ok too) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) -> 'mreg_t' + | alloc_kreg(self, size, check_size=True) -> mreg_t + | Allocate a kernel register. + | + | @param size: (C++: size_t) size of the register in bytes + | @param check_size: (C++: bool) if true, only the sizes that correspond to a size of a basic + | type will be accepted. + | @return: allocated register. mr_none means failure. + | + | alloc_lvars(self, *args) -> 'void' + | alloc_lvars(self) + | Allocate local variables. Must be called only immediately after + | optimize_global(), with no modifications to the microcode. Converts registers, + | stack variables, and similar operands into mop_l. This call will not fail + | because all necessary checks were performed in optimize_global(). After this + | call the microcode reaches its final state. + | + | analyze_calls(self, *args) -> 'int' + | analyze_calls(self, acflags) -> int + | Analyze calls and determine calling conventions. + | + | @param acflags: (C++: int) permitted actions that are necessary for successful detection of + | calling conventions. See Bits for analyze_calls() + | @return: number of calls. -1 means error. + | + | arg(self, *args) -> 'lvar_t const &' + | arg(self, n) -> lvar_t + | + | @param n: int + | + | argbase(self, *args) -> 'sval_t' + | argbase(self) -> sval_t + | + | argidx_ok(self, *args) -> 'bool' + | argidx_ok(self) -> bool + | + | argidx_sorted(self, *args) -> 'bool' + | argidx_sorted(self) -> bool + | + | bad_call_sp_detected(self, *args) -> 'bool' + | bad_call_sp_detected(self) -> bool + | + | build_graph(self, *args) -> 'merror_t' + | build_graph(self) -> merror_t + | Build control flow graph. This function may be called only once. It calculates + | the type of each basic block and the adjacency list. optimize_local() calls this + | function if necessary. You need to call this function only before MMAT_LOCOPT. + | + | @return: error code + | + | calc_shins_flags(self, *args) -> 'int' + | calc_shins_flags(self) -> int + | + | callinfo_built(self, *args) -> 'bool' + | callinfo_built(self) -> bool + | + | chain_varnums_ok(self, *args) -> 'bool' + | chain_varnums_ok(self) -> bool + | + | clr_cdtr(self, *args) -> 'void' + | clr_cdtr(self) + | + | clr_mba_flags(self, *args) -> 'void' + | clr_mba_flags(self, f) + | + | @param f: int + | + | clr_mba_flags2(self, *args) -> 'void' + | clr_mba_flags2(self, f) + | + | @param f: int + | + | code16_bit_removed(self, *args) -> 'bool' + | code16_bit_removed(self) -> bool + | + | combine_blocks(self, *args) -> 'bool' + | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. It calls + | remove_empty_and_unreachable_blocks() as well. + | + | @return: true if changed any blocks + | + | common_stkvars_stkargs(self, *args) -> 'bool' + | common_stkvars_stkargs(self) -> bool + | + | copy_block(self, *args) -> 'mblock_t *' + | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | Make a copy of a block. This function makes a simple copy of the block. It does + | not fix the predecessor and successor lists, they must be fixed if necessary. + | + | @param blk: (C++: mblock_t *) block to copy + | @param new_serial: (C++: int) position of the copied block + | @param cpblk_flags: (C++: int) combination of Batch decompilation bits... bits + | @return: pointer to the new copy + | + | create_helper_call(self, *args) -> 'minsn_t *' + | create_helper_call(self, ea, helper, rettype=None, callargs=None, out=None) -> minsn_t + | Create a call of a helper function. + | + | @param ea: (C++: ea_t) The desired address of the instruction + | @param helper: (C++: const char *) The helper name + | @param rettype: (C++: const tinfo_t *) The return type (nullptr or empty type means 'void') + | @param callargs: (C++: const mcallargs_t *) The helper arguments (nullptr-no arguments) + | @param out: (C++: const mop_t *) The operand where the call result should be stored. If this argument + | is not nullptr, "mov helper_call(), out" will be generated. + | Otherwise "call helper()" will be generated. Note: the size of this + | operand must be equal to the RETTYPE size + | @return: pointer to the created instruction or nullptr if error + | + | deleted_pairs(self, *args) -> 'bool' + | deleted_pairs(self) -> bool + | + | display_numaddrs(self, *args) -> 'bool' + | display_numaddrs(self) -> bool + | + | display_valnums(self, *args) -> 'bool' + | display_valnums(self) -> bool + | + | dump(self, *args) -> 'void' + | dump(self) + | Dump microcode to a file. The file will be created in the directory pointed by + | IDA_DUMPDIR envvar. Dump will be created only if IDA is run under debugger. + | + | dump_mba(self, *args) -> 'void' + | dump_mba(self, _verify, title) + | + | @param _verify: bool + | @param title: char const * + | + | find_mop(self, *args) -> 'mop_t *' + | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | Find an operand in the microcode. This function tries to find the operand that + | matches LIST. Any operand that overlaps with LIST is considered as a match. + | + | @param ctx: (C++: op_parent_info_t *) context information for the result + | @param ea: (C++: ea_t) desired address of the operand. BADADDR means to accept any address. + | @param is_dest: (C++: bool) search for destination operand? this argument may be ignored if + | the exact match could not be found + | @param list: (C++: const mlist_t &) list of locations the correspond to the operand + | @return: pointer to the operand or nullptr. + | + | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits all instruction and + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int + | Visit all operands of all instructions. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | for_all_topinsns(self, *args) -> 'int' + | for_all_topinsns(self, mv) -> int + | Visit all top level instructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) -> 'void' + | free_kreg(self, reg, size) + | Free a kernel register. If wrong arguments are passed, this function will + | generate an internal error. + | + | @param reg: (C++: mreg_t) a previously allocated kernel register + | @param size: (C++: size_t) size of the register in bytes + | + | generated_asserts(self, *args) -> 'bool' + | generated_asserts(self) -> bool + | + | get_args_region(self, *args) -> 'ivl_t const &' + | get_args_region(self) -> ivl_t + | + | get_curfunc(self, *args) -> 'func_t *' + | get_curfunc(self) -> func_t * + | + | get_graph(self, *args) -> 'mbl_graph_t *' + | get_graph(self) -> mbl_graph_t + | Get control graph. Call build_graph() if you need the graph before MMAT_LOCOPT. + | + | get_ida_argloc(self, *args) -> 'argloc_t' + | get_ida_argloc(self, v) -> argloc_t + | + | @param v: lvar_t const & + | + | get_lvars_region(self, *args) -> 'ivl_t const &' + | get_lvars_region(self) -> ivl_t + | + | get_mba_flags(self, *args) -> 'int' + | get_mba_flags(self) -> int + | + | get_mba_flags2(self, *args) -> 'int' + | get_mba_flags2(self) -> int + | + | get_mblock(self, *args) -> 'mblock_t *' + | get_mblock(self, n) -> mblock_t + | + | @param n: int + | + | get_shadow_region(self, *args) -> 'ivl_t const &' + | get_shadow_region(self) -> ivl_t + | + | get_stack_region(self, *args) -> 'ivl_t' + | get_stack_region(self) -> ivl_t + | + | get_std_region(self, *args) -> 'ivl_t const &' + | get_std_region(self, idx) -> ivl_t + | Get information about various memory regions. We map the stack frame to the + | global memory, to some unused range. + | + | @param idx: (C++: memreg_index_t) enum memreg_index_t + | + | graph_insns(self, *args) -> 'bool' + | graph_insns(self) -> bool + | + | has_bad_sp(self, *args) -> 'bool' + | has_bad_sp(self) -> bool + | + | has_outlines(self, *args) -> 'bool' + | has_outlines(self) -> bool + | + | has_over_chains(self, *args) -> 'bool' + | has_over_chains(self) -> bool + | + | has_passregs(self, *args) -> 'bool' + | has_passregs(self) -> bool + | + | has_stack_retval(self, *args) -> 'bool' + | has_stack_retval(self) -> bool + | + | idaloc2vd(self, *args) -> 'vdloc_t' + | idaloc2vd(self, loc, width) -> vdloc_t + | + | @param loc: argloc_t const & + | @param width: int + | + | insert_block(self, *args) -> 'mblock_t *' + | insert_block(self, bblk) -> mblock_t + | Insert a block in the middle of the mbl array. The very first block of microcode + | must be empty, it is the entry block. The very last block of microcode must be + | BLT_STOP, it is the exit block. Therefore inserting a new block before the entry + | point or after the exit block is not a good idea. + | + | @param bblk: (C++: int) the new block will be inserted before BBLK + | @return: ptr to the new block + | + | is_cdtr(self, *args) -> 'bool' + | is_cdtr(self) -> bool + | + | is_ctr(self, *args) -> 'bool' + | is_ctr(self) -> bool + | + | is_dtr(self, *args) -> 'bool' + | is_dtr(self) -> bool + | + | is_pattern(self, *args) -> 'bool' + | is_pattern(self) -> bool + | + | is_snippet(self, *args) -> 'bool' + | is_snippet(self) -> bool + | + | is_stkarg(self, *args) -> 'bool' + | is_stkarg(self, v) -> bool + | + | @param v: lvar_t const & + | + | is_thunk(self, *args) -> 'bool' + | is_thunk(self) -> bool + | + | loaded_gdl(self, *args) -> 'bool' + | loaded_gdl(self) -> bool + | + | lvar_names_ok(self, *args) -> 'bool' + | lvar_names_ok(self) -> bool + | + | lvars_allocated(self, *args) -> 'bool' + | lvars_allocated(self) -> bool + | + | lvars_renamed(self, *args) -> 'bool' + | lvars_renamed(self) -> bool + | + | map_fict_ea(self, *args) -> 'ea_t' + | map_fict_ea(self, fict_ea) -> ea_t + | Resolve a fictional address. This function provides a reverse of the mapping + | made by alloc_fict_ea(). + | + | @param fict_ea: (C++: ea_t) fictional definition address + | @return: the real instruction address + | + | mark_chains_dirty(self, *args) -> 'void' + | mark_chains_dirty(self) + | Mark the microcode use-def chains dirty. Call this function is any inter-block + | data dependencies got changed because of your modifications to the microcode. + | Failing to do so may cause an internal error. + | + | may_refine_rettype(self, *args) -> 'bool' + | may_refine_rettype(self) -> bool + | + | optimize_global(self, *args) -> 'merror_t' + | optimize_global(self) -> merror_t + | Optimize microcode globally. This function applies various optimization methods + | until we reach the fixed point. After that it preallocates lvars unless reqmat + | forbids it. + | + | @return: error code + | + | optimize_local(self, *args) -> 'int' + | optimize_local(self, locopt_bits) -> int + | Optimize each basic block locally + | + | @param locopt_bits: (C++: int) combination of Bits for optimize_local() bits + | @return: number of changes. 0 means nothing changed This function is called by + | the decompiler, usually there is no need to call it explicitly. + | + | optimized(self, *args) -> 'bool' + | optimized(self) -> bool + | + | precise_defeas(self, *args) -> 'bool' + | precise_defeas(self) -> bool + | + | prop_complex(self, *args) -> 'bool' + | prop_complex(self) -> bool + | + | propagated_asserts(self, *args) -> 'bool' + | propagated_asserts(self) -> bool + | + | really_alloc(self, *args) -> 'bool' + | really_alloc(self) -> bool + | + | regargs_is_not_aligned(self, *args) -> 'bool' + | regargs_is_not_aligned(self) -> bool + | + | remove_block(self, *args) -> 'bool' + | remove_block(self, blk) -> bool + | Delete a block. + | + | @param blk: (C++: mblock_t *) block to delete + | @return: true if at least one of the other blocks became empty or unreachable + | + | remove_empty_and_unreachable_blocks(self, *args) -> 'bool' + | remove_empty_and_unreachable_blocks(self) -> bool + | Delete all empty and unreachable blocks. Blocks marked with MBL_KEEP won't be + | deleted. + | + | returns_fpval(self, *args) -> 'bool' + | returns_fpval(self) -> bool + | + | rtype_refined(self, *args) -> 'bool' + | rtype_refined(self) -> bool + | + | save_snapshot(self, *args) -> 'void' + | save_snapshot(self, description) + | Create and save microcode snapshot. + | + | @param description: (C++: const char *) char const * + | + | saverest_done(self, *args) -> 'bool' + | saverest_done(self) -> bool + | + | serialize(self, *args) -> 'void' + | serialize(self) + | Serialize mbl array into a sequence of bytes. + | + | set_maturity(self, *args) -> 'bool' + | set_maturity(self, mat) -> bool + | Set maturity level. + | + | @param mat: (C++: mba_maturity_t) new maturity level + | @return: true if it is time to stop analysis Plugins may use this function to + | skip some parts of the analysis. The maturity level cannot be + | decreased. + | + | set_mba_flags(self, *args) -> 'void' + | set_mba_flags(self, f) + | + | @param f: int + | + | set_mba_flags2(self, *args) -> 'void' + | set_mba_flags2(self, f) + | + | @param f: int + | + | short_display(self, *args) -> 'bool' + | short_display(self) -> bool + | + | should_beautify(self, *args) -> 'bool' + | should_beautify(self) -> bool + | + | show_reduction(self, *args) -> 'bool' + | show_reduction(self) -> bool + | + | stkoff_ida2vd(self, *args) -> 'sval_t' + | stkoff_ida2vd(self, off) -> sval_t + | + | @param off: sval_t + | + | stkoff_vd2ida(self, *args) -> 'sval_t' + | stkoff_vd2ida(self, off) -> sval_t + | + | @param off: sval_t + | + | term(self, *args) -> 'void' + | term(self) + | + | use_frame(self, *args) -> 'bool' + | use_frame(self) -> bool + | + | use_wingraph32(self, *args) -> 'bool' + | use_wingraph32(self) -> bool + | + | valranges_done(self, *args) -> 'bool' + | valranges_done(self) -> bool + | + | vd2idaloc(self, *args) -> 'argloc_t' + | vd2idaloc(self, loc, width, spd) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int + | @param spd: sval_t + | + | vd2idaloc(self, loc, width) -> argloc_t + | + | @param loc: vdloc_t const & + | @param width: int + | + | verify(self, *args) -> 'void' + | verify(self, always) + | Verify microcode consistency. + | + | @param always: (C++: bool) if false, the check will be performed only if ida runs under + | debugger If any inconsistency is discovered, an internal error + | will be generated. We strongly recommend you to call this + | function before returing control to the decompiler from your + | callbacks, in the case if you modified the microcode. If the + | microcode is inconsistent, this function will generate an + | internal error. We provide the source code of this function in + | the plugins/hexrays_sdk/verifier directory for your reference. + | + | write_to_const_detected(self, *args) -> 'bool' + | write_to_const_detected(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | deserialize(*args) -> 'mba_t *' + | deserialize(bytes) -> mba_t + | Deserialize a byte sequence into mbl array. + | + | @param bytes: (C++: const uchar *) pointer to the beginning of the byte sequence. + | @return: new mbl array + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | aliased_args + | aliased_args + | + | aliased_memory + | aliased_memory + | + | aliased_vars + | aliased_vars + | + | argidx + | argidx + | + | blocks + | blocks + | + | cc + | cc + | + | consumed_argregs + | consumed_argregs + | + | deprecated_idb_node + | deprecated_idb_node + | + | entry_ea + | entry_ea + | + | error_ea + | error_ea + | + | error_strarg + | error_strarg + | + | final_type + | final_type + | + | first_epilog_ea + | first_epilog_ea + | + | fpd + | fpd + | + | frregs + | frregs + | + | frsize + | frsize + | + | fti_flags + | fti_flags + | + | fullsize + | fullsize + | + | gotoff_stkvars + | gotoff_stkvars + | + | idb_node + | + | idb_spoiled + | idb_spoiled + | + | idb_type + | idb_type + | + | inargoff + | inargoff + | + | label + | label + | + | last_prolog_ea + | last_prolog_ea + | + | maturity + | maturity + | + | mbr + | mbr + | + | minargref + | minargref + | + | minstkref + | minstkref + | + | minstkref_ea + | minstkref_ea + | + | natural + | natural + | + | nodel_memory + | nodel_memory + | + | notes + | notes + | + | npurged + | npurged + | + | occurred_warns + | occurred_warns + | + | pfn_flags + | pfn_flags + | + | qty + | qty + | + | reqmat + | reqmat + | + | restricted_memory + | restricted_memory + | + | retsize + | retsize + | + | retvaridx + | retvaridx + | + | shadow_args + | shadow_args + | + | spd_adjust + | spd_adjust + | + | spoiled_list + | spoiled_list + | + | stacksize + | stacksize + | + | std_ivls + | std_ivls + | + | thisown + | The membership flag + | + | tmpstk_size + | tmpstk_size + | + | vars + | vars + +Help on function mba_t_deserialize in module ida_hexrays: + +mba_t_deserialize(*args) -> 'mba_t *' + mba_t_deserialize(bytes) -> mba_t + + @param bytes: uchar const * + +Help on class mbl_graph_t in module ida_hexrays: + +class mbl_graph_t(simple_graph_t) + | Proxy of C++ mbl_graph_t class. + | + | Method resolution order: + | mbl_graph_t + | simple_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | get_chain_stamp(self, *args) -> 'int' + | get_chain_stamp(self) -> int + | + | get_du(self, *args) -> 'graph_chains_t *' + | get_du(self, gctype) -> graph_chains_t + | Get def-use chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | get_mblock(self, *args) -> 'mblock_t *' + | get_mblock(self, n) -> mblock_t + | + | @param n: int + | + | get_ud(self, *args) -> 'graph_chains_t *' + | get_ud(self, gctype) -> graph_chains_t + | Get use-def chains. + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | is_du_chain_dirty(self, *args) -> 'bool' + | is_du_chain_dirty(self, gctype) -> bool + | Is the def-use chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | is_redefined_globally(self, *args) -> 'bool' + | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST redefined in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) + | + | is_ud_chain_dirty(self, *args) -> 'bool' + | is_ud_chain_dirty(self, gctype) -> bool + | Is the use-def chain of the specified kind dirty? + | + | @param gctype: (C++: gctype_t) enum gctype_t + | + | is_used_globally(self, *args) -> 'bool' + | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | Is LIST used in the graph? + | + | @param list: (C++: const mlist_t &) mlist_t const & + | @param b1: (C++: int) + | @param b2: (C++: int) + | @param m1: (C++: const minsn_t *) minsn_t const * + | @param m2: (C++: const minsn_t *) minsn_t const * + | @param maymust: (C++: maymust_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from simple_graph_t: + | + | colored_gdl_edges + | colored_gdl_edges + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class mblock_t in module ida_hexrays: + +class mblock_t(builtins.object) + | Proxy of C++ mblock_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mblock_t(...) + | delete_mblock_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, vp) + | + | Parameters + | ---------- + | vp: vd_printer_t & + | + | append_def_list(self, *args) -> 'void' + | append_def_list(self, list, op, maymust) + | Append def-list of an operand. This function calculates list of locations that + | may or must be modified by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | + | append_use_list(self, *args) -> 'void' + | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | Append use-list of an operand. This function calculates list of locations that + | may or must be used by the operand and appends it to LIST. + | + | @param list: (C++: mlist_t *) ptr to the output buffer. we will append to it. + | @param op: (C++: const mop_t &) operand to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @param mask: (C++: bitrange_t) if only part of the operand should be considered, a bitmask can be + | used to specify which part. example: op=AX,mask=0xFF means that we + | will consider only AL. + | + | build_def_list(self, *args) -> 'mlist_t' + | build_def_list(self, ins, maymust) -> mlist_t + | Build def-list of an instruction. This function calculates list of locations + | that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, + | eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: + | empty Since STX uses EAX for indirect access, it may modify any aliasable + | memory. On the other hand, we cannot tell for sure which memory cells will be + | modified, this is why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the def list of + | @param maymust: (C++: maymust_t) should we calculate 'may-def' or 'must-def' list? see maymust_t + | for more details. + | @return: the calculated def-list + | + | build_lists(self, *args) -> 'int' + | build_lists(self, kill_deads) -> int + | Build def-use lists and eliminate deads. + | + | @param kill_deads: (C++: bool) do delete dead instructions? + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. + | + | build_use_list(self, *args) -> 'mlist_t' + | build_use_list(self, ins, maymust) -> mlist_t + | Build use-list of an instruction. This function calculates list of locations + | that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", + | may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since + | LDX uses EAX for indirect access, it may access any aliasable memory. On the + | other hand, we cannot tell for sure which memory cells will be accessed, this is + | why the must-list is empty. + | + | @param ins: (C++: const minsn_t &) instruction to calculate the use list of + | @param maymust: (C++: maymust_t) should we calculate 'may-use' or 'must-use' list? see maymust_t + | for more details. + | @return: the calculated use-list + | + | dump(self, *args) -> 'void' + | dump(self) + | Dump block info. This function is useful for debugging, see mba_t::dump for info + | + | dump_block(self, *args) -> 'void' + | dump_block(self, title) + | + | @param title: char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | find_access(self, *args) -> 'minsn_t *' + | find_access(self, op, parent, mend, fdflags) -> minsn_t + | Find the instruction that accesses the specified operand. This function search + | inside one block. + | + | @param op: (C++: const mop_t &) operand to search for + | @param parent: (C++: minsn_t **) ptr to ptr to a top level instruction. denotes the beginning of + | the search range. + | @param mend: (C++: const minsn_t *) end instruction of the range (must be a top level insn) mend is + | excluded from the range. it can be specified as nullptr. parent and + | mend must belong to the same block. + | @param fdflags: (C++: int) combination of bits for mblock_t::find_access bits + | @return: the instruction that accesses the operand. this instruction may be a + | sub-instruction. to find out the top level instruction, check out + | *p_i1. nullptr means 'not found'. + | + | find_def(self, *args) -> 'minsn_t *' + | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int + | + | find_first_use(self, *args) -> 'minsn_t *' + | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t * + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t + | + | find_redefinition(self, *args) -> 'minsn_t *' + | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | + | @param list: mlist_t const & + | @param i1: minsn_t * + | @param i2: minsn_t const * + | @param maymust: maymust_t + | + | find_use(self, *args) -> 'minsn_t *' + | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | + | @param op: mop_t const & + | @param p_i1: minsn_t ** + | @param i2: minsn_t const * + | @param fdflags: int + | + | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits subinstructions too. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int + | Visit all operands. This function visit subinstruction operands too. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: zero or the value returned by mv.visit_mop() + | + | for_all_uses(self, *args) -> 'int' + | for_all_uses(self, list, i1, i2, mmv) -> int + | Visit all operands that use LIST. + | + | @param list: (C++: mlist_t *) ptr to the list of locations. it may be modified: parts that get + | redefined by the instructions in [i1,i2) will be deleted. + | @param i1: (C++: minsn_t *) starting instruction. must be a top level insn. + | @param i2: (C++: minsn_t *) ending instruction (excluded). must be a top level insn. + | @param mmv: (C++: mlist_mop_visitor_t &) operand visitor + | @return: zero or the value returned by mmv.visit_mop() + | + | get_reginsn_qty(self, *args) -> 'size_t' + | get_reginsn_qty(self) -> size_t + | Calculate number of regular instructions in the block. Assertions are skipped by + | this function. + | + | @return: Number of non-assertion instructions in the block. + | + | get_valranges(self, *args) -> 'bool' + | get_valranges(self, res, vivl, vrflags) -> bool + | Find possible values for an instruction. + | + | @param res: (C++: valrng_t *) set of value ranges + | @param vivl: (C++: const vivl_t &) what to search for + | @param vrflags: (C++: int) combination of bits for get_valranges bits + | get_valranges(self, res, vivl, m, vrflags) -> bool + | + | @param res: valrng_t * + | @param vivl: vivl_t const & + | @param m: minsn_t const * + | @param vrflags: int + | + | insert_into_block(self, *args) -> 'minsn_t *' + | insert_into_block(self, nm, om) -> minsn_t + | Insert instruction into the doubly linked list + | + | @param nm: (C++: minsn_t *) new instruction + | @param om: (C++: minsn_t *) existing instruction, part of the doubly linked list if nullptr, then + | the instruction will be inserted at the beginning of the list NM will + | be inserted immediately after OM + | @return: pointer to NM + | + | is_branch(self, *args) -> 'bool' + | is_branch(self) -> bool + | + | is_call_block(self, *args) -> 'bool' + | is_call_block(self) -> bool + | + | is_nway(self, *args) -> 'bool' + | is_nway(self) -> bool + | + | is_redefined(self, *args) -> 'bool' + | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list redefined by the specified instructions? + | + | @param list: (C++: const mlist_t &) list of locations to check. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? + | + | is_rhs_redefined(self, *args) -> 'bool' + | is_rhs_redefined(self, ins, i1, i2) -> bool + | Is the right hand side of the instruction redefined the insn range? "right hand + | side" corresponds to the source operands of the instruction. + | + | @param ins: (C++: const minsn_t *) instruction to consider + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | + | is_simple_goto_block(self, *args) -> 'bool' + | is_simple_goto_block(self) -> bool + | + | is_simple_jcnd_block(self, *args) -> 'bool' + | is_simple_jcnd_block(self) -> bool + | + | is_unknown_call(self, *args) -> 'bool' + | is_unknown_call(self) -> bool + | + | is_used(self, *args) -> 'bool' + | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | Is the list used by the specified instruction range? + | + | @param list: (C++: mlist_t *) list of locations. LIST may be modified by the function: redefined + | locations will be removed from it. + | @param i1: (C++: const minsn_t *) starting instruction of the range (must be a top level insn) + | @param i2: (C++: const minsn_t *) end instruction of the range (must be a top level insn) i2 is + | excluded from the range. it can be specified as nullptr. i1 and i2 + | must belong to the same block. + | @param maymust: (C++: maymust_t) should we search in 'may-access' or 'must-access' mode? + | + | lists_dirty(self, *args) -> 'bool' + | lists_dirty(self) -> bool + | + | lists_ready(self, *args) -> 'bool' + | lists_ready(self) -> bool + | + | make_lists_ready(self, *args) -> 'int' + | make_lists_ready(self) -> int + | + | make_nop(self, *args) -> 'void' + | make_nop(self, m) + | Erase the instruction (convert it to nop) and mark the lists dirty. This is the + | recommended function to use because it also marks the block use-def lists dirty. + | + | @param m: (C++: minsn_t *) + | + | mark_lists_dirty(self, *args) -> 'void' + | mark_lists_dirty(self) + | + | needs_propagation(self, *args) -> 'bool' + | needs_propagation(self) -> bool + | + | npred(self, *args) -> 'int' + | npred(self) -> int + | Get number of block predecessors. + | + | nsucc(self, *args) -> 'int' + | nsucc(self) -> int + | Get number of block successors. + | + | optimize_block(self, *args) -> 'int' + | optimize_block(self) -> int + | Optimize a basic block. Usually there is no need to call this function + | explicitly because the decompiler will call it itself if optinsn_t::func or + | optblock_t::func return non-zero. + | + | @return: number of changes made to the block + | + | optimize_insn(self, *args) -> 'int' + | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | Optimize one instruction in the context of the block. + | + | @param m: (C++: minsn_t *) pointer to a top level instruction + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the block This function may change other + | instructions in the block too. However, it will not destroy top level + | instructions (it may convert them to nop's). This function performs + | only intrablock modifications. See also minsn_t::optimize_solo() + | + | optimize_useless_jump(self, *args) -> 'int' + | optimize_useless_jump(self) -> int + | Remove a jump at the end of the block if it is useless. This function preserves + | any side effects when removing a useless jump. Both conditional and + | unconditional jumps are handled (and jtbl too). This function deletes useless + | jumps, not only replaces them with a nop. (please note that \optimize_insn does + | not handle useless jumps). + | + | @return: number of changes made to the block + | + | pred(self, *args) -> 'int' + | pred(self, n) -> int + | + | @param n: int + | + | preds(self) + | Iterates the list of predecessor blocks + | + | remove_from_block(self, *args) -> 'minsn_t *' + | remove_from_block(self, m) -> minsn_t + | Remove instruction from the doubly linked list + | + | @param m: (C++: minsn_t *) instruction to remove The removed instruction is not deleted, the + | caller gets its ownership + | @return: pointer to the next instruction + | + | request_demote64(self, *args) -> 'void' + | request_demote64(self) + | + | request_propagation(self, *args) -> 'void' + | request_propagation(self) + | + | succ(self, *args) -> 'int' + | succ(self, n) -> int + | + | @param n: int + | + | succs(self) + | Iterates the list of successor blocks + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dead_at_start + | dead_at_start + | + | dnu + | dnu + | + | end + | end + | + | flags + | flags + | + | head + | head + | + | maxbsp + | maxbsp + | + | maybdef + | maybdef + | + | maybuse + | maybuse + | + | mba + | mba + | + | minbargref + | minbargref + | + | minbstkref + | minbstkref + | + | mustbdef + | mustbdef + | + | mustbuse + | mustbuse + | + | nextb + | nextb + | + | predset + | predset + | + | prevb + | prevb + | + | serial + | serial + | + | start + | start + | + | succset + | succset + | + | tail + | tail + | + | thisown + | The membership flag + | + | type + | type + +Help on class mcallarg_t in module ida_hexrays: + +class mcallarg_t(mop_t) + | Proxy of C++ mcallarg_t class. + | + | Method resolution order: + | mcallarg_t + | mop_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mcallarg_t + | __init__(self, rarg) -> mcallarg_t + | + | @param rarg: mop_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mcallarg_t(...) + | delete_mcallarg_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | copy_mop(self, *args) -> 'void' + | copy_mop(self, op) + | + | @param op: mop_t const & + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | make_int(self, *args) -> 'void' + | make_int(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int + | + | make_uint(self, *args) -> 'void' + | make_uint(self, val, val_ea, opno=0) + | + | @param val: int + | @param val_ea: ea_t + | @param opno: int + | + | set_regarg(self, *args) -> 'void' + | set_regarg(self, mr, sz, tif) + | + | @param mr: mreg_t + | @param sz: int + | @param tif: tinfo_t const & + | + | set_regarg(self, mr, tif) + | + | @param mr: mreg_t + | @param tif: tinfo_t const & + | + | set_regarg(self, mr, dt, sign=type_unsigned) + | + | @param mr: mreg_t + | @param dt: char + | @param sign: type_sign_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | argloc + | argloc + | + | ea + | ea + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Methods inherited from mop_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_t(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_a(self, *args) -> 'mop_addr_t *' + | _get_a(self) -> mop_addr_t + | + | _get_b(self, *args) -> 'int' + | _get_b(self) -> int + | + | _get_c(self, *args) -> 'mcases_t *' + | _get_c(self) -> mcases_t + | + | _get_cstr(self, *args) -> 'char const *' + | _get_cstr(self) -> char const * + | + | _get_d(self, *args) -> 'minsn_t *' + | _get_d(self) -> minsn_t + | + | _get_f(self, *args) -> 'mcallinfo_t *' + | _get_f(self) -> mcallinfo_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_g(self, *args) -> 'ea_t' + | _get_g(self) -> ea_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_l(self, *args) -> 'lvar_ref_t *' + | _get_l(self) -> lvar_ref_t + | + | _get_nnn(self, *args) -> 'mnumber_t *' + | _get_nnn(self) -> mnumber_t + | + | _get_pair(self, *args) -> 'mop_pair_t *' + | _get_pair(self) -> mop_pair_t + | + | _get_r(self, *args) -> 'mreg_t' + | _get_r(self) -> mreg_t + | + | _get_s(self, *args) -> 'stkvar_ref_t *' + | _get_s(self) -> stkvar_ref_t + | + | _get_scif(self, *args) -> 'scif_t *' + | _get_scif(self) -> scif_t + | + | _get_t(self, *args) -> 'mopt_t' + | _get_t(self) -> mopt_t + | + | _make_blkref(self, *args) -> 'void' + | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int + | + | _make_callinfo(self, *args) -> 'void' + | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * + | + | _make_cases(self, *args) -> 'void' + | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * + | + | _make_gvar(self, *args) -> 'void' + | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t + | + | _make_insn(self, *args) -> 'void' + | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * + | + | _make_lvar(self, *args) -> 'void' + | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t + | + | _make_pair(self, *args) -> 'void' + | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * + | + | _make_reg(self, *args) -> 'void' + | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | + | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int + | + | _make_stkvar(self, *args) -> 'void' + | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t + | + | _make_strlit(self, *args) -> 'void' + | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * + | + | _set_b(self, *args) -> 'void' + | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_c(self, *args) -> 'void' + | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * + | + | _set_cstr(self, *args) -> 'void' + | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_d(self, *args) -> 'void' + | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * + | + | _set_f(self, *args) -> 'void' + | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_g(self, *args) -> 'void' + | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_l(self, *args) -> 'void' + | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * + | + | _set_nnn(self, *args) -> 'void' + | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * + | + | _set_pair(self, *args) -> 'void' + | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * + | + | _set_r(self, *args) -> 'void' + | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t + | + | _set_s(self, *args) -> 'void' + | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * + | + | _set_scif(self, *args) -> 'void' + | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * + | + | _set_t(self, *args) -> 'void' + | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t + | + | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) + | + | apply_xds(self, *args) -> 'void' + | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | apply_xdu(self, *args) -> 'void' + | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | assign(self, *args) -> 'mop_t &' + | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | change_size(self, *args) -> 'bool' + | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success + | + | create_from_insn(self, *args) -> 'void' + | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. + | + | create_from_ivlset(self, *args) -> 'bool' + | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_mlist(self, *args) -> 'bool' + | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_scattered_vdloc(self, *args) -> 'void' + | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success + | + | create_from_vdloc(self, *args) -> 'void' + | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success + | + | double_size(self, *args) -> 'bool' + | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | erase(self, *args) -> 'void' + | erase(self) + | + | erase_but_keep_size(self, *args) -> 'void' + | erase_but_keep_size(self) + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? + | + | for_all_scattered_submops(self, *args) -> 'int' + | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object + | + | get_insn(self, *args) -> 'minsn_t *' + | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t + | + | get_stkoff(self, *args) -> 'bool' + | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? + | + | is01(self, *args) -> 'bool' + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. + | + | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool + | Is a list of arguments? + | + | is_bit_reg(self, *args) -> 'bool' + | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool + | + | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool + | Is a condition code? + | + | is_ccflags(self, *args) -> 'bool' + | is_ccflags(self) -> bool + | + | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n + | + | is_equal_to(self, *args) -> 'bool' + | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool + | + | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) + | + | is_glbaddr(self, *args) -> 'bool' + | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t + | + | is_impptr_done(self, *args) -> 'bool' + | is_impptr_done(self) -> bool + | + | is_insn(self, *args) -> 'bool' + | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t + | + | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool + | + | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) + | + | is_negative_constant(self, *args) -> 'bool' + | is_negative_constant(self) -> bool + | + | is_one(self, *args) -> 'bool' + | is_one(self) -> bool + | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | + | is_positive_constant(self, *args) -> 'bool' + | is_positive_constant(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | + | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is a scattered operand? + | + | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits + | + | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool + | Is address of a stack variable? + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | + | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & + | + | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) + | + | make_first_half(self, *args) -> 'bool' + | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success + | + | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) + | + | make_helper(self, *args) -> 'void' + | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * + | + | make_high_half(self, *args) -> 'bool' + | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_insn(self, *args) -> 'void' + | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) + | + | make_low_half(self, *args) -> 'bool' + | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction + | + | make_reg(self, *args) -> 'void' + | make_reg(self, reg) + | + | @param reg: mreg_t + | + | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int + | + | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg + | + | make_second_half(self, *args) -> 'bool' + | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? + | + | preserve_side_effects(self, *args) -> 'bool' + | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them + | + | probably_floating(self, *args) -> 'bool' + | probably_floating(self) -> bool + | + | replace_by(self, o) + | + | set_impptr_done(self, *args) -> 'void' + | set_impptr_done(self) + | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | + | set_udt(self, *args) -> 'void' + | set_udt(self) + | + | set_undef_val(self, *args) -> 'void' + | set_undef_val(self) + | + | shift_mop(self, *args) -> 'bool' + | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success + | + | signed_value(self, *args) -> 'int64' + | signed_value(self) -> int64 + | + | swap(self, *args) -> 'void' + | swap(self, rop) + | + | @param rop: mop_t & + | + | unsigned_value(self, *args) -> 'uint64' + | unsigned_value(self) -> uint64 + | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | + | value(self, *args) -> 'uint64' + | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) + | + | zero(self, *args) -> 'void' + | zero(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from mop_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a + | + | b + | + | c + | + | cstr + | + | d + | + | f + | + | fpc + | + | g + | + | helper + | + | l + | + | meminfo + | + | nnn + | + | obj_id + | _obj_id(self) -> PyObject * + | + | oprops + | oprops + | + | pair + | + | r + | + | s + | + | scif + | + | size + | size + | + | t + | _get_t(self) -> mopt_t + | + | valnum + | valnum + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from mop_t: + | + | __hash__ = None + +Help on class mcallargs_t in module ida_hexrays: + +class mcallargs_t(builtins.object) + | Proxy of C++ qvector< mcallarg_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & + | + | __getitem__(self, *args) -> 'mcallarg_t const &' + | __getitem__(self, i) -> mcallarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> mcallargs_t + | __init__(self, x) -> mcallargs_t + | + | @param x: qvector< mcallarg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< mcallarg_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mcallarg_t const & + | + | __swig_destroy__ = delete_mcallargs_t(...) + | delete_mcallargs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mcallarg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: mcallarg_t const & + | + | at(self, *args) -> 'mcallarg_t const &' + | at(self, _idx) -> mcallarg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< mcallarg_t >::const_iterator' + | begin(self) -> mcallarg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< mcallarg_t >::const_iterator' + | end(self) -> mcallarg_t + | + | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' + | erase(self, it) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | + | erase(self, first, last) -> mcallarg_t + | + | @param first: qvector< mcallarg_t >::iterator + | @param last: qvector< mcallarg_t >::iterator + | + | extract(self, *args) -> 'mcallarg_t *' + | extract(self) -> mcallarg_t + | + | find(self, *args) -> 'qvector< mcallarg_t >::const_iterator' + | find(self, x) -> mcallarg_t + | + | @param x: mcallarg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=mcallarg_t()) + | + | @param x: mcallarg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: mcallarg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: mcallarg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' + | insert(self, it, x) -> mcallarg_t + | + | @param it: qvector< mcallarg_t >::iterator + | @param x: mcallarg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'mcallarg_t &' + | push_back(self, x) + | + | @param x: mcallarg_t const & + | + | push_back(self) -> mcallarg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mcallarg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< mcallarg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mcallinfo_t in module ida_hexrays: + +class mcallinfo_t(builtins.object) + | Proxy of C++ mcallinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | + | @param _callee: ea_t + | @param _sargs: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mcallinfo_t(...) + | delete_mcallinfo_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, size=-1, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | size: int + | shins_flags: int + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | get_type(self, *args) -> 'tinfo_t' + | get_type(self) -> tinfo_t + | + | is_vararg(self, *args) -> 'bool' + | is_vararg(self) -> bool + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, f) -> int + | + | @param f: mcallinfo_t const & + | + | set_type(self, *args) -> 'bool' + | set_type(self, type) -> bool + | + | @param type: tinfo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | args + | args + | + | call_spd + | call_spd + | + | callee + | callee + | + | cc + | cc + | + | dead_regs + | dead_regs + | + | flags + | flags + | + | fti_attrs + | fti_attrs + | + | pass_regs + | pass_regs + | + | retregs + | retregs + | + | return_argloc + | return_argloc + | + | return_regs + | return_regs + | + | return_type + | return_type + | + | role + | role + | + | solid_args + | solid_args + | + | spoiled + | spoiled + | + | stkargs_top + | stkargs_top + | + | thisown + | The membership flag + | + | visible_memory + | visible_memory + +Help on class mcases_t in module ida_hexrays: + +class mcases_t(builtins.object) + | Proxy of C++ mcases_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __init__(self, *args) + | __init__(self) -> mcases_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: mcases_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mcases_t(...) + | delete_mcases_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: mcases_t const & + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | resize(self, *args) -> 'void' + | resize(self, s) + | + | @param s: int + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: mcases_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | targets + | targets + | + | thisown + | The membership flag + | + | values + | values + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function mcode_modifies_d in module ida_hexrays: + +mcode_modifies_d(*args) -> 'bool' + mcode_modifies_d(mcode) -> bool + + @param mcode: enum mcode_t + +Help on class microcode_filter_t in module ida_hexrays: + +class microcode_filter_t(builtins.object) + | Proxy of C++ microcode_filter_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> microcode_filter_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_microcode_filter_t(...) + | delete_microcode_filter_t(self) + | + | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | match(self, *args) -> 'bool' + | match(self, cdg) -> bool + | check if the filter object is to be applied + | + | @param cdg: (C++: codegen_t &) + | @return: success + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class minsn_t in module ida_hexrays: + +class minsn_t(builtins.object) + | Proxy of C++ minsn_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea) -> minsn_t + | + | @param _ea: ea_t + | + | __init__(self, m) -> minsn_t + | + | @param m: minsn_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, ri) -> bool + | + | @param ri: minsn_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_minsn_t(...) + | delete_minsn_t(self) + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_ownership_transferrable(self, v) + | + | _make_nop(self, *args) -> 'void' + | _make_nop(self) + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _minsn_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _minsn_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | _register(self, *args) -> 'void' + | _register(self) + | + | clr_assert(self, *args) -> 'void' + | clr_assert(self) + | + | clr_combinable(self, *args) -> 'void' + | clr_combinable(self) + | + | clr_combined(self, *args) -> 'void' + | clr_combined(self) + | + | clr_fpinsn(self, *args) -> 'void' + | clr_fpinsn(self) + | + | clr_ignlowsrc(self, *args) -> 'void' + | clr_ignlowsrc(self) + | + | clr_multimov(self, *args) -> 'void' + | clr_multimov(self) + | + | clr_noret_icall(self, *args) -> 'void' + | clr_noret_icall(self) + | + | clr_propagatable(self, *args) -> 'void' + | clr_propagatable(self) + | + | clr_tailcall(self, *args) -> 'void' + | clr_tailcall(self) + | + | contains_call(self, *args) -> 'bool' + | contains_call(self, with_helpers=False) -> bool + | Does the instruction contain a call? + | + | @param with_helpers: (C++: bool) + | + | contains_opcode(self, *args) -> 'bool' + | contains_opcode(self, mcode) -> bool + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | + | @param mcode: (C++: mcode_t) opcode to search for. + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, bytes, format_version) -> bool + | Deserialize an instruction + | + | @param bytes: (C++: const uchar *) pointer to serialized data + | @param format_version: (C++: int) serialization format version. this value is returned by + | minsn_t::serialize() + | @return: success + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. + | + | equal_insns(self, *args) -> 'bool' + | equal_insns(self, m, eqflags) -> bool + | Compare instructions. This is the main comparison function for instructions. + | + | @param m: (C++: const minsn_t &) instruction to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | find_call(self, *args) -> 'minsn_t *' + | find_call(self, with_helpers=False) -> minsn_t + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | + | @param with_helpers: (C++: bool) consider helper calls as well? + | + | find_ins_op(self, *args) -> 'minsn_t *' + | find_ins_op(self, op=m_nop) -> minsn_t + | + | @param op: enum mcode_t + | + | find_num_op(self, *args) -> 'mop_t *' + | find_num_op(self) -> mop_t + | + | find_opcode(self, *args) -> 'minsn_t *' + | find_opcode(self, mcode) -> minsn_t + | + | @param mcode: enum mcode_t + | + | for_all_insns(self, *args) -> 'int' + | for_all_insns(self, mv) -> int + | Visit all instructions. This function visits the instruction itself and all its + | subinstructions. + | + | @param mv: (C++: minsn_visitor_t &) instruction visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv) -> int + | Visit all instruction operands. This function visits subinstruction operands as + | well. + | + | @param mv: (C++: mop_visitor_t &) operand visitor + | @return: non-zero value returned by mv.visit_mop() or zero + | + | get_role(self, *args) -> 'funcrole_t' + | get_role(self) -> funcrole_t + | Get the function role of a call. + | + | get_split_size(self, *args) -> 'int' + | get_split_size(self) -> int + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Does the instruction have a side effect? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? stx is + | always considered as having side effects. Apart + | from ldx/std only call may have side effects. + | + | is_after(self, *args) -> 'bool' + | is_after(self, m) -> bool + | Is the instruction after the specified one? + | + | @param m: (C++: const minsn_t *) the instruction to compare against in the list + | + | is_alloca(self, *args) -> 'bool' + | is_alloca(self) -> bool + | + | is_assert(self, *args) -> 'bool' + | is_assert(self) -> bool + | + | is_between(self, *args) -> 'bool' + | is_between(self, m1, m2) -> bool + | Is the instruction in the specified range of instructions? + | + | @param m1: (C++: const minsn_t *) beginning of the range in the doubly linked list + | @param m2: (C++: const minsn_t *) end of the range in the doubly linked list (excluded, may be nullptr) + | This function assumes that m1 and m2 belong to the same basic block + | and they are top level instructions. + | + | is_bswap(self, *args) -> 'bool' + | is_bswap(self) -> bool + | + | is_cleaning_pop(self, *args) -> 'bool' + | is_cleaning_pop(self) -> bool + | + | is_combinable(self, *args) -> 'bool' + | is_combinable(self) -> bool + | + | is_combined(self, *args) -> 'bool' + | is_combined(self) -> bool + | + | is_extstx(self, *args) -> 'bool' + | is_extstx(self) -> bool + | + | is_farcall(self, *args) -> 'bool' + | is_farcall(self) -> bool + | + | is_fpinsn(self, *args) -> 'bool' + | is_fpinsn(self) -> bool + | + | is_helper(self, *args) -> 'bool' + | is_helper(self, name) -> bool + | Is a helper call with the specified name? Helper calls usually have well-known + | function names (see Well known function names) but they may have any other name. + | The decompiler does not assume any special meaning for non-well-known names. + | + | @param name: (C++: const char *) char const * + | + | is_ignlowsrc(self, *args) -> 'bool' + | is_ignlowsrc(self) -> bool + | + | is_inverted_jx(self, *args) -> 'bool' + | is_inverted_jx(self) -> bool + | + | is_like_move(self, *args) -> 'bool' + | is_like_move(self) -> bool + | + | is_mbarrier(self, *args) -> 'bool' + | is_mbarrier(self) -> bool + | + | is_memcpy(self, *args) -> 'bool' + | is_memcpy(self) -> bool + | + | is_memset(self, *args) -> 'bool' + | is_memset(self) -> bool + | + | is_mov(self, *args) -> 'bool' + | is_mov(self) -> bool + | + | is_multimov(self, *args) -> 'bool' + | is_multimov(self) -> bool + | + | is_noret_call(self, *args) -> 'bool' + | is_noret_call(self, flags=0) -> bool + | Is a non-returing call? + | + | @param flags: (C++: int) combination of NORET_... bits + | + | is_optional(self, *args) -> 'bool' + | is_optional(self) -> bool + | + | is_persistent(self, *args) -> 'bool' + | is_persistent(self) -> bool + | + | is_propagatable(self, *args) -> 'bool' + | is_propagatable(self) -> bool + | + | is_readflags(self, *args) -> 'bool' + | is_readflags(self) -> bool + | + | is_tailcall(self, *args) -> 'bool' + | is_tailcall(self) -> bool + | + | is_unknown_call(self, *args) -> 'bool' + | is_unknown_call(self) -> bool + | Is an unknown call? Unknown calls are calls without the argument list + | (mcallinfo_t). Usually the argument lists are determined by + | mba_t::analyze_calls(). Unknown calls exist until the MMAT_CALLS maturity level. + | See also mblock_t::is_call_block + | + | is_wild_match(self, *args) -> 'bool' + | is_wild_match(self) -> bool + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, ri) -> int + | + | @param ri: minsn_t const & + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the instruction to use aliased memory? + | + | modifies_d(self, *args) -> 'bool' + | modifies_d(self) -> bool + | Does the instruction modify its 'd' operand? Some instructions (e.g. m_stx) do + | not modify the 'd' operand. + | + | modifies_pair_mop(self, *args) -> 'bool' + | modifies_pair_mop(self) -> bool + | + | optimize_solo(self, *args) -> 'int' + | optimize_solo(self, optflags=0) -> int + | Optimize one instruction without context. This function does not have access to + | the instruction context (the previous and next instructions in the list, the + | block number, etc). It performs only basic optimizations that are available + | without this info. + | + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes, 0-unchanged See also mblock_t::optimize_insn() + | + | optimize_subtree(self, *args) -> 'int' + | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | + | @param blk: (C++: mblock_t *) + | @param top: (C++: minsn_t *) + | @param parent: (C++: minsn_t *) + | @param converted_call: (C++: ea_t *) + | @param optflags: (C++: int) + | + | replace_by(self, o) + | + | serialize(self, *args) -> 'int' + | serialize(self, b) -> int + | Serialize an instruction + | + | @param b: (C++: bytevec_t *) the output buffer + | @return: the serialization format that was used to store info + | + | set_assert(self, *args) -> 'void' + | set_assert(self) + | + | set_cleaning_pop(self, *args) -> 'void' + | set_cleaning_pop(self) + | + | set_combinable(self, *args) -> 'void' + | set_combinable(self) + | + | set_extstx(self, *args) -> 'void' + | set_extstx(self) + | + | set_farcall(self, *args) -> 'void' + | set_farcall(self) + | + | set_fpinsn(self, *args) -> 'void' + | set_fpinsn(self) + | + | set_ignlowsrc(self, *args) -> 'void' + | set_ignlowsrc(self) + | + | set_inverted_jx(self, *args) -> 'void' + | set_inverted_jx(self) + | + | set_mbarrier(self, *args) -> 'void' + | set_mbarrier(self) + | + | set_multimov(self, *args) -> 'void' + | set_multimov(self) + | + | set_noret_icall(self, *args) -> 'void' + | set_noret_icall(self) + | + | set_optional(self, *args) -> 'void' + | set_optional(self) + | + | set_persistent(self, *args) -> 'void' + | set_persistent(self) + | + | set_split_size(self, *args) -> 'void' + | set_split_size(self, s) + | + | @param s: int + | + | set_tailcall(self, *args) -> 'void' + | set_tailcall(self) + | + | set_unmerged(self, *args) -> 'void' + | set_unmerged(self) + | + | set_wild_match(self, *args) -> 'void' + | set_wild_match(self) + | + | setaddr(self, *args) -> 'void' + | setaddr(self, new_ea) + | Change the instruction address. This function modifies subinstructions as well. + | + | @param new_ea: (C++: ea_t) + | + | swap(self, *args) -> 'void' + | swap(self, m) + | Swap two instructions. The prev/next fields are not modified by this function + | because it would corrupt the doubly linked list. + | + | @param m: (C++: minsn_t &) + | + | was_noret_icall(self, *args) -> 'bool' + | was_noret_icall(self) -> bool + | + | was_split(self, *args) -> 'bool' + | was_split(self) -> bool + | + | was_unmerged(self, *args) -> 'bool' + | was_unmerged(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | d + | d + | + | ea + | ea + | + | iprops + | iprops + | + | l + | l + | + | meminfo + | + | next + | next + | + | obj_id + | _obj_id(self) -> PyObject * + | + | opcode + | opcode + | + | prev + | prev + | + | r + | r + | + | thisown + | The membership flag + +Help on class minsn_visitor_t in module ida_hexrays: + +class minsn_visitor_t(op_parent_info_t) + | Proxy of C++ minsn_visitor_t class. + | + | Method resolution order: + | minsn_visitor_t + | op_parent_info_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_minsn_visitor_t(...) + | delete_minsn_visitor_t(self) + | + | visit_minsn(self, *args) -> 'int' + | visit_minsn(self) -> int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from op_parent_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blk + | blk + | + | curins + | curins + | + | mba + | mba + | + | topins + | topins + +Help on class mlist_mop_visitor_t in module ida_hexrays: + +class mlist_mop_visitor_t(builtins.object) + | Proxy of C++ mlist_mop_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> mlist_mop_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mlist_mop_visitor_t(...) + | delete_mlist_mop_visitor_t(self) + | + | visit_mop(self, *args) -> 'int' + | visit_mop(self, op) -> int + | + | @param op: mop_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | changed + | changed + | + | curins + | curins + | + | list + | list + | + | thisown + | The membership flag + | + | topins + | topins + +Help on class mlist_t in module ida_hexrays: + +class mlist_t(builtins.object) + | Proxy of C++ mlist_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __init__(self, *args) + | __init__(self) -> mlist_t + | __init__(self, ivl) -> mlist_t + | + | @param ivl: ivl_t const & + | + | __init__(self, r, size) -> mlist_t + | + | @param r: mreg_t + | @param size: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: mlist_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mlist_t(...) + | delete_mlist_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | add(self, *args) -> 'bool' + | add(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | add(self, r) -> bool + | + | @param r: rlist_t const & + | + | add(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | add(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | addmem(self, *args) -> 'bool' + | addmem(self, ea, size) -> bool + | + | @param ea: ea_t + | @param size: asize_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: mlist_t const & + | + | count(self, *args) -> 'asize_t' + | count(self) -> asize_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | has(self, *args) -> 'bool' + | has(self, r) -> bool + | + | @param r: mreg_t + | + | has_all(self, *args) -> 'bool' + | has_all(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | has_any(self, *args) -> 'bool' + | has_any(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | has_common(self, *args) -> 'bool' + | has_common(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | has_memory(self, *args) -> 'bool' + | has_memory(self) -> bool + | + | includes(self, *args) -> 'bool' + | includes(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | sub(self, *args) -> 'bool' + | sub(self, r, size) -> bool + | + | @param r: mreg_t + | @param size: int + | + | sub(self, ivl) -> bool + | + | @param ivl: ivl_t const & + | + | sub(self, lst) -> bool + | + | @param lst: mlist_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: mlist_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | mem + | mem + | + | reg + | reg + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mnumber_t in module ida_hexrays: + +class mnumber_t(operand_locator_t) + | Proxy of C++ mnumber_t class. + | + | Method resolution order: + | mnumber_t + | operand_locator_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __init__(self, *args) + | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | + | @param v: uint64 + | @param _ea: ea_t + | @param n: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: mnumber_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mnumber_t(...) + | delete_mnumber_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: mnumber_t const & + | + | update_value(self, *args) -> 'void' + | update_value(self, val64) + | + | @param val64: uint64 + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | org_value + | org_value + | + | thisown + | The membership flag + | + | value + | value + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from operand_locator_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | opnum + | opnum + +Help on function modify_user_lvar_info in module ida_hexrays: + +modify_user_lvar_info(*args) -> 'bool' + modify_user_lvar_info(func_ea, mli_flags, info) -> bool + Modify saved local variable settings of one variable. + + @param func_ea: (C++: ea_t) function start address + @param mli_flags: (C++: uint) bits that specify which attrs defined by INFO are to be set + @param info: (C++: const lvar_saved_info_t &) local variable info attrs + @return: true if modified, false if invalid MLI_FLAGS passed + +Help on function modify_user_lvars in module ida_hexrays: + +modify_user_lvars(*args) -> 'bool' + modify_user_lvars(entry_ea, mlv) -> bool + Modify saved local variable settings. + + @param entry_ea: (C++: ea_t) function start address + @param mlv: (C++: user_lvar_modifier_t &) local variable modifier + @return: true if modified variables + +Help on class mop_addr_t in module ida_hexrays: + +class mop_addr_t(mop_t) + | Proxy of C++ mop_addr_t class. + | + | Method resolution order: + | mop_addr_t + | mop_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mop_addr_t + | __init__(self, ra) -> mop_addr_t + | + | @param ra: mop_addr_t const & + | + | __init__(self, ra, isz, osz) -> mop_addr_t + | + | @param ra: mop_t const & + | @param isz: int + | @param osz: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_addr_t(...) + | delete_mop_addr_t(self) + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, ra) -> int + | + | @param ra: mop_addr_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | insize + | insize + | + | outsize + | outsize + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from mop_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_t(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_a(self, *args) -> 'mop_addr_t *' + | _get_a(self) -> mop_addr_t + | + | _get_b(self, *args) -> 'int' + | _get_b(self) -> int + | + | _get_c(self, *args) -> 'mcases_t *' + | _get_c(self) -> mcases_t + | + | _get_cstr(self, *args) -> 'char const *' + | _get_cstr(self) -> char const * + | + | _get_d(self, *args) -> 'minsn_t *' + | _get_d(self) -> minsn_t + | + | _get_f(self, *args) -> 'mcallinfo_t *' + | _get_f(self) -> mcallinfo_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_g(self, *args) -> 'ea_t' + | _get_g(self) -> ea_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_l(self, *args) -> 'lvar_ref_t *' + | _get_l(self) -> lvar_ref_t + | + | _get_nnn(self, *args) -> 'mnumber_t *' + | _get_nnn(self) -> mnumber_t + | + | _get_pair(self, *args) -> 'mop_pair_t *' + | _get_pair(self) -> mop_pair_t + | + | _get_r(self, *args) -> 'mreg_t' + | _get_r(self) -> mreg_t + | + | _get_s(self, *args) -> 'stkvar_ref_t *' + | _get_s(self) -> stkvar_ref_t + | + | _get_scif(self, *args) -> 'scif_t *' + | _get_scif(self) -> scif_t + | + | _get_t(self, *args) -> 'mopt_t' + | _get_t(self) -> mopt_t + | + | _make_blkref(self, *args) -> 'void' + | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int + | + | _make_callinfo(self, *args) -> 'void' + | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * + | + | _make_cases(self, *args) -> 'void' + | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * + | + | _make_gvar(self, *args) -> 'void' + | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t + | + | _make_insn(self, *args) -> 'void' + | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * + | + | _make_lvar(self, *args) -> 'void' + | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t + | + | _make_pair(self, *args) -> 'void' + | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * + | + | _make_reg(self, *args) -> 'void' + | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | + | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int + | + | _make_stkvar(self, *args) -> 'void' + | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t + | + | _make_strlit(self, *args) -> 'void' + | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * + | + | _set_b(self, *args) -> 'void' + | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_c(self, *args) -> 'void' + | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * + | + | _set_cstr(self, *args) -> 'void' + | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_d(self, *args) -> 'void' + | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * + | + | _set_f(self, *args) -> 'void' + | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_g(self, *args) -> 'void' + | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_l(self, *args) -> 'void' + | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * + | + | _set_nnn(self, *args) -> 'void' + | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * + | + | _set_pair(self, *args) -> 'void' + | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * + | + | _set_r(self, *args) -> 'void' + | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t + | + | _set_s(self, *args) -> 'void' + | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * + | + | _set_scif(self, *args) -> 'void' + | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * + | + | _set_t(self, *args) -> 'void' + | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t + | + | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) + | + | apply_xds(self, *args) -> 'void' + | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | apply_xdu(self, *args) -> 'void' + | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | assign(self, *args) -> 'mop_t &' + | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | change_size(self, *args) -> 'bool' + | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success + | + | create_from_insn(self, *args) -> 'void' + | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. + | + | create_from_ivlset(self, *args) -> 'bool' + | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_mlist(self, *args) -> 'bool' + | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_scattered_vdloc(self, *args) -> 'void' + | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success + | + | create_from_vdloc(self, *args) -> 'void' + | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success + | + | double_size(self, *args) -> 'bool' + | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | erase(self, *args) -> 'void' + | erase(self) + | + | erase_but_keep_size(self, *args) -> 'void' + | erase_but_keep_size(self) + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? + | + | for_all_scattered_submops(self, *args) -> 'int' + | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object + | + | get_insn(self, *args) -> 'minsn_t *' + | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t + | + | get_stkoff(self, *args) -> 'bool' + | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? + | + | is01(self, *args) -> 'bool' + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. + | + | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool + | Is a list of arguments? + | + | is_bit_reg(self, *args) -> 'bool' + | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool + | + | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool + | Is a condition code? + | + | is_ccflags(self, *args) -> 'bool' + | is_ccflags(self) -> bool + | + | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n + | + | is_equal_to(self, *args) -> 'bool' + | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool + | + | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) + | + | is_glbaddr(self, *args) -> 'bool' + | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t + | + | is_impptr_done(self, *args) -> 'bool' + | is_impptr_done(self) -> bool + | + | is_insn(self, *args) -> 'bool' + | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t + | + | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool + | + | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) + | + | is_negative_constant(self, *args) -> 'bool' + | is_negative_constant(self) -> bool + | + | is_one(self, *args) -> 'bool' + | is_one(self) -> bool + | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | + | is_positive_constant(self, *args) -> 'bool' + | is_positive_constant(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | + | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is a scattered operand? + | + | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits + | + | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool + | Is address of a stack variable? + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | + | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero + | + | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) + | + | make_first_half(self, *args) -> 'bool' + | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success + | + | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) + | + | make_helper(self, *args) -> 'void' + | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * + | + | make_high_half(self, *args) -> 'bool' + | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_insn(self, *args) -> 'void' + | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) + | + | make_low_half(self, *args) -> 'bool' + | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction + | + | make_reg(self, *args) -> 'void' + | make_reg(self, reg) + | + | @param reg: mreg_t + | + | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int + | + | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg + | + | make_second_half(self, *args) -> 'bool' + | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? + | + | preserve_side_effects(self, *args) -> 'bool' + | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them + | + | probably_floating(self, *args) -> 'bool' + | probably_floating(self) -> bool + | + | replace_by(self, o) + | + | set_impptr_done(self, *args) -> 'void' + | set_impptr_done(self) + | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | + | set_udt(self, *args) -> 'void' + | set_udt(self) + | + | set_undef_val(self, *args) -> 'void' + | set_undef_val(self) + | + | shift_mop(self, *args) -> 'bool' + | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success + | + | signed_value(self, *args) -> 'int64' + | signed_value(self) -> int64 + | + | swap(self, *args) -> 'void' + | swap(self, rop) + | + | @param rop: mop_t & + | + | unsigned_value(self, *args) -> 'uint64' + | unsigned_value(self) -> uint64 + | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | + | value(self, *args) -> 'uint64' + | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) + | + | zero(self, *args) -> 'void' + | zero(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from mop_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a + | + | b + | + | c + | + | cstr + | + | d + | + | f + | + | fpc + | + | g + | + | helper + | + | l + | + | meminfo + | + | nnn + | + | obj_id + | _obj_id(self) -> PyObject * + | + | oprops + | oprops + | + | pair + | + | r + | + | s + | + | scif + | + | size + | size + | + | t + | _get_t(self) -> mopt_t + | + | valnum + | valnum + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from mop_t: + | + | __hash__ = None + +Help on class mop_pair_t in module ida_hexrays: + +class mop_pair_t(builtins.object) + | Proxy of C++ mop_pair_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> mop_pair_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_pair_t(...) + | delete_mop_pair_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hop + | hop + | + | lop + | lop + | + | thisown + | The membership flag + +Help on class mop_t in module ida_hexrays: + +class mop_t(builtins.object) + | Proxy of C++ mop_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __init__(self, *args) + | __init__(self) -> mop_t + | __init__(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | __init__(self, _r, _s) -> mop_t + | + | @param _r: mreg_t + | @param _s: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, rop) -> bool + | + | @param rop: mop_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_t(...) + | delete_mop_t(self) + | + | _acquire_ownership(self, v, acquire) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _ensure_cond(self, ok, cond_str) + | + | _ensure_no_obj(self, o, attr, attr_is_acquired) + | + | _ensure_no_t(self) + | + | _ensure_ownership_transferrable(self, v) + | + | _get_a(self, *args) -> 'mop_addr_t *' + | _get_a(self) -> mop_addr_t + | + | _get_b(self, *args) -> 'int' + | _get_b(self) -> int + | + | _get_c(self, *args) -> 'mcases_t *' + | _get_c(self) -> mcases_t + | + | _get_cstr(self, *args) -> 'char const *' + | _get_cstr(self) -> char const * + | + | _get_d(self, *args) -> 'minsn_t *' + | _get_d(self) -> minsn_t + | + | _get_f(self, *args) -> 'mcallinfo_t *' + | _get_f(self) -> mcallinfo_t + | + | _get_fpc(self, *args) -> 'fnumber_t *' + | _get_fpc(self) -> fnumber_t + | + | _get_g(self, *args) -> 'ea_t' + | _get_g(self) -> ea_t + | + | _get_helper(self, *args) -> 'char const *' + | _get_helper(self) -> char const * + | + | _get_l(self, *args) -> 'lvar_ref_t *' + | _get_l(self) -> lvar_ref_t + | + | _get_nnn(self, *args) -> 'mnumber_t *' + | _get_nnn(self) -> mnumber_t + | + | _get_pair(self, *args) -> 'mop_pair_t *' + | _get_pair(self) -> mop_pair_t + | + | _get_r(self, *args) -> 'mreg_t' + | _get_r(self) -> mreg_t + | + | _get_s(self, *args) -> 'stkvar_ref_t *' + | _get_s(self) -> stkvar_ref_t + | + | _get_scif(self, *args) -> 'scif_t *' + | _get_scif(self) -> scif_t + | + | _get_t(self, *args) -> 'mopt_t' + | _get_t(self) -> mopt_t + | + | _make_blkref(self, *args) -> 'void' + | _make_blkref(self, blknum) + | + | Parameters + | ---------- + | blknum: int + | + | _make_callinfo(self, *args) -> 'void' + | _make_callinfo(self, fi) + | + | Parameters + | ---------- + | fi: mcallinfo_t * + | + | _make_cases(self, *args) -> 'void' + | _make_cases(self, _cases) + | + | Parameters + | ---------- + | _cases: mcases_t * + | + | _make_gvar(self, *args) -> 'void' + | _make_gvar(self, ea) + | + | Parameters + | ---------- + | ea: ea_t + | + | _make_insn(self, *args) -> 'void' + | _make_insn(self, ins) + | + | Parameters + | ---------- + | ins: minsn_t * + | + | _make_lvar(self, *args) -> 'void' + | _make_lvar(self, mba, idx, off=0) + | + | Parameters + | ---------- + | mba: mba_t * + | idx: int + | off: sval_t + | + | _make_pair(self, *args) -> 'void' + | _make_pair(self, _pair) + | + | Parameters + | ---------- + | _pair: mop_pair_t * + | + | _make_reg(self, *args) -> 'void' + | _make_reg(self, reg) + | + | Parameters + | ---------- + | reg: mreg_t + | + | _make_reg(self, reg, _size) + | + | Parameters + | ---------- + | reg: mreg_t + | _size: int + | + | _make_stkvar(self, *args) -> 'void' + | _make_stkvar(self, mba, off) + | + | Parameters + | ---------- + | mba: mba_t * + | off: sval_t + | + | _make_strlit(self, *args) -> 'void' + | _make_strlit(self, str) + | + | Parameters + | ---------- + | str: char const * + | + | _maybe_disown_and_deregister(self) + | + | _meminfo(self) + | + | _mop_t__dbg_get_meminfo = __dbg_get_meminfo(self, *args) -> 'qstring' + | __dbg_get_meminfo(self) -> qstring + | + | _mop_t__dbg_get_registered_kind = __dbg_get_registered_kind(self, *args) -> 'int' + | __dbg_get_registered_kind(self) -> int + | + | _obj_id(self, *args) -> 'PyObject *' + | _obj_id(self) -> PyObject * + | + | _own_and_register(self) + | + | _print(self, *args) -> 'void' + | _print(self, shins_flags=0x04|0x02) + | + | Parameters + | ---------- + | shins_flags: int + | + | _register(self, *args) -> 'void' + | _register(self) + | + | _set_a(self, *args) -> 'void' + | _set_a(self, _v) + | + | Parameters + | ---------- + | _v: mop_addr_t * + | + | _set_b(self, *args) -> 'void' + | _set_b(self, _v) + | + | Parameters + | ---------- + | _v: int + | + | _set_c(self, *args) -> 'void' + | _set_c(self, _v) + | + | Parameters + | ---------- + | _v: mcases_t * + | + | _set_cstr(self, *args) -> 'void' + | _set_cstr(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_d(self, *args) -> 'void' + | _set_d(self, _v) + | + | Parameters + | ---------- + | _v: minsn_t * + | + | _set_f(self, *args) -> 'void' + | _set_f(self, _v) + | + | Parameters + | ---------- + | _v: mcallinfo_t * + | + | _set_fpc(self, *args) -> 'void' + | _set_fpc(self, _v) + | + | Parameters + | ---------- + | _v: fnumber_t * + | + | _set_g(self, *args) -> 'void' + | _set_g(self, _v) + | + | Parameters + | ---------- + | _v: ea_t + | + | _set_helper(self, *args) -> 'void' + | _set_helper(self, _v) + | + | Parameters + | ---------- + | _v: char const * + | + | _set_l(self, *args) -> 'void' + | _set_l(self, _v) + | + | Parameters + | ---------- + | _v: lvar_ref_t * + | + | _set_nnn(self, *args) -> 'void' + | _set_nnn(self, _v) + | + | Parameters + | ---------- + | _v: mnumber_t * + | + | _set_pair(self, *args) -> 'void' + | _set_pair(self, _v) + | + | Parameters + | ---------- + | _v: mop_pair_t * + | + | _set_r(self, *args) -> 'void' + | _set_r(self, _v) + | + | Parameters + | ---------- + | _v: mreg_t + | + | _set_s(self, *args) -> 'void' + | _set_s(self, _v) + | + | Parameters + | ---------- + | _v: stkvar_ref_t * + | + | _set_scif(self, *args) -> 'void' + | _set_scif(self, _v) + | + | Parameters + | ---------- + | _v: scif_t * + | + | _set_t(self, *args) -> 'void' + | _set_t(self, v) + | + | Parameters + | ---------- + | v: mopt_t + | + | apply_ld_mcode(self, *args) -> 'void' + | apply_ld_mcode(self, mcode, ea, newsize) + | Apply a unary opcode to the operand. + | + | @param mcode: (C++: mcode_t) opcode to apply. it must accept 'l' and 'd' operands but not 'r'. + | @param ea: (C++: ea_t) value of minsn_t::ea for the newly created insruction + | @param newsize: (C++: int) new operand size Example: apply_ld_mcode(m_low) will convert op + | => low(op) + | + | apply_xds(self, *args) -> 'void' + | apply_xds(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | apply_xdu(self, *args) -> 'void' + | apply_xdu(self, ea, newsize) + | + | @param ea: ea_t + | @param newsize: int + | + | assign(self, *args) -> 'mop_t &' + | assign(self, rop) -> mop_t + | + | @param rop: mop_t const & + | + | change_size(self, *args) -> 'bool' + | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | Change the operand size. Examples: change_size(AL.1, 2) -> AX.2 + | change_size(qword_00000008.8, 4) -> dword_00000008.4 change_size(xdu.8(op.4), 4) + | -> op.4 change_size(#0x12345678.4, 1) -> #0x78.1 + | + | @param nsize: (C++: int) new operand size + | @param sideff: (C++: side_effect_t) may modify the database because of the size change? + | @return: success + | + | create_from_insn(self, *args) -> 'void' + | create_from_insn(self, m) + | Create operand from an instruction. This function creates a nested instruction + | that can be used as an operand. Example: if m="add x,y,z", our operand will be + | (t=mop_d,d=m). The destination operand of 'add' (z) is lost. + | + | @param m: (C++: const minsn_t *) instruction to embed into operand. may not be nullptr. + | + | create_from_ivlset(self, *args) -> 'bool' + | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | Create operand from ivlset_t. Example: if IVS contains [glbvar..glbvar+4), our + | operand will be (t=mop_v, g=&glbvar, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param ivs: (C++: const ivlset_t &) set of memory intervals + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_mlist(self, *args) -> 'bool' + | create_from_mlist(self, mba, lst, fullsize) -> bool + | Create operand from mlist_t. Example: if LST contains 4 bits for R0.4, our + | operand will be (t=mop_r, r=R0, size=4) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param lst: (C++: const mlist_t &) list of locations + | @param fullsize: (C++: sval_t) mba->fullsize + | @return: success + | + | create_from_scattered_vdloc(self, *args) -> 'void' + | create_from_scattered_vdloc(self, mba, name, type, loc) + | Create operand from scattered vdloc_t. Example: if LOC is (ALOC_DIST, {EAX.4, + | EDX.4}) and TYPE is _LARGE_INTEGER, our operand will be (t=mop_sc, scif={EAX.4, + | EDX.4}) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param name: (C++: const char *) name of the operand, if available + | @param type: (C++: tinfo_t) type of the operand, must be present + | @param loc: (C++: const vdloc_t &) a scattered location + | @return: success + | + | create_from_vdloc(self, *args) -> 'void' + | create_from_vdloc(self, mba, loc, _size) + | Create operand from vdloc_t. Example: if LOC contains (type=ALOC_REG1, r=R0), + | our operand will be (t=mop_r, r=R0, size=_SIZE) + | + | @param mba: (C++: mba_t *) pointer to microcode + | @param loc: (C++: const vdloc_t &) location + | @param _size: (C++: int) operand size Note: this function cannot handle scattered + | locations. + | @return: success + | + | double_size(self, *args) -> 'bool' + | double_size(self, sideff=WITH_SIDEFF) -> bool + | + | @param sideff: enum side_effect_t + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | equal_mops(self, *args) -> 'bool' + | equal_mops(self, rop, eqflags) -> bool + | Compare operands. This is the main comparison function for operands. + | + | @param rop: (C++: const mop_t &) operand to compare with + | @param eqflags: (C++: int) combination of comparison bits bits + | + | erase(self, *args) -> 'void' + | erase(self) + | + | erase_but_keep_size(self, *args) -> 'void' + | erase_but_keep_size(self) + | + | for_all_ops(self, *args) -> 'int' + | for_all_ops(self, mv, type=None, is_target=False) -> int + | Visit the operand and all its sub-operands. This function visits the current + | operand as well. + | + | @param mv: (C++: mop_visitor_t &) visitor object + | @param type: (C++: const tinfo_t *) operand type + | @param is_target: (C++: bool) is a destination operand? + | + | for_all_scattered_submops(self, *args) -> 'int' + | for_all_scattered_submops(self, sv) -> int + | Visit all sub-operands of a scattered operand. This function does not visit the + | current operand, only its sub-operands. All sub-operands are synthetic and are + | destroyed after the visitor. This function works only with scattered operands. + | + | @param sv: (C++: scif_visitor_t &) visitor object + | + | get_insn(self, *args) -> 'minsn_t *' + | get_insn(self, code) -> minsn_t + | + | @param code: enum mcode_t + | + | get_stkoff(self, *args) -> 'bool' + | get_stkoff(self, p_off) -> bool + | Get the referenced stack offset. This function can also handle mop_sc if it is + | entirely mapped into a continuous stack region. + | + | @param p_off: (C++: sval_t *) the output buffer + | @return: success + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | has_side_effects(self, *args) -> 'bool' + | has_side_effects(self, include_ldx_and_divs=False) -> bool + | Has any side effects? + | + | @param include_ldx_and_divs: (C++: bool) consider ldx/div/mod as having side effects? + | + | is01(self, *args) -> 'bool' + | is01(self) -> bool + | Are the possible values of the operand only 0 and 1? This function returns true + | for 0/1 constants, bit registers, the result of 'set' insns, etc. + | + | is_arglist(self, *args) -> 'bool' + | is_arglist(self) -> bool + | Is a list of arguments? + | + | is_bit_reg(self, *args) -> 'bool' + | is_bit_reg(self, reg) -> bool + | Is a bit register? This includes condition codes and eventually other bit + | registers + | + | @param reg: (C++: mreg_t) + | + | is_bit_reg(self) -> bool + | + | is_cc(self, *args) -> 'bool' + | is_cc(self) -> bool + | Is a condition code? + | + | is_ccflags(self, *args) -> 'bool' + | is_ccflags(self) -> bool + | + | is_constant(self, *args) -> 'bool' + | is_constant(self, is_signed=True) -> bool + | Retrieve value of a constant integer operand. + | + | @param is_signed: (C++: bool) should treat the value as signed + | @return: true if the operand is mop_n + | + | is_equal_to(self, *args) -> 'bool' + | is_equal_to(self, n, is_signed=True) -> bool + | + | @param n: uint64 + | @param is_signed: bool + | + | is_extended_from(self, *args) -> 'bool' + | is_extended_from(self, nbytes, is_signed) -> bool + | Does the high part of the operand consist of zero or sign bytes? + | + | @param nbytes: (C++: int) + | @param is_signed: (C++: bool) + | + | is_glbaddr(self, *args) -> 'bool' + | is_glbaddr(self) -> bool + | Is address of the specified global memory cell? + | is_glbaddr(self, ea) -> bool + | + | @param ea: ea_t + | + | is_impptr_done(self, *args) -> 'bool' + | is_impptr_done(self) -> bool + | + | is_insn(self, *args) -> 'bool' + | is_insn(self) -> bool + | Is a sub-instruction with the specified opcode? + | is_insn(self, code) -> bool + | + | @param code: enum mcode_t + | + | is_kreg(self, *args) -> 'bool' + | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) -> 'bool' + | is_lowaddr(self) -> bool + | + | is_mob(self, *args) -> 'bool' + | is_mob(self, serial) -> bool + | Is a block reference to the specified block? + | + | @param serial: (C++: int) + | + | is_negative_constant(self, *args) -> 'bool' + | is_negative_constant(self) -> bool + | + | is_one(self, *args) -> 'bool' + | is_one(self) -> bool + | + | is_pcval(self, *args) -> 'bool' + | is_pcval(self) -> bool + | + | is_positive_constant(self, *args) -> 'bool' + | is_positive_constant(self) -> bool + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | Is the specified register of the specified size? + | is_reg(self, _r) -> bool + | + | @param _r: mreg_t + | + | is_reg(self, _r, _size) -> bool + | + | @param _r: mreg_t + | @param _size: int + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | Is a scattered operand? + | + | is_sign_extended_from(self, *args) -> 'bool' + | is_sign_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of the sign bytes? + | + | @param nbytes: (C++: int) number of bytes that were sign extended. the remaining size- + | nbytes high bytes must be sign bytes Example: + | is_sign_extended_from(xds.4(op.1), 1) -> true because the high 3 + | bytes are certainly sign bits + | + | is_stkaddr(self, *args) -> 'bool' + | is_stkaddr(self) -> bool + | Is address of a stack variable? + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | + | is_undef_val(self, *args) -> 'bool' + | is_undef_val(self) -> bool + | + | is_zero(self, *args) -> 'bool' + | is_zero(self) -> bool + | + | is_zero_extended_from(self, *args) -> 'bool' + | is_zero_extended_from(self, nbytes) -> bool + | Does the high part of the operand consist of zero bytes? + | + | @param nbytes: (C++: int) number of bytes that were zero extended. the remaining size- + | nbytes high bytes must be zero Example: + | is_zero_extended_from(xdu.8(op.1), 2) -> true because the high 6 + | bytes are certainly zero + | + | lexcompare(self, *args) -> 'int' + | lexcompare(self, rop) -> int + | + | @param rop: mop_t const & + | + | make_blkref(self, *args) -> 'void' + | make_blkref(self, blknum) + | Create a global variable operand. + | + | @param blknum: (C++: int) + | + | make_first_half(self, *args) -> 'bool' + | make_first_half(self, width) -> bool + | Make the first part of the operand. This function does not care about the memory + | endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_fpnum(self, *args) -> 'bool' + | make_fpnum(self, bytes) -> bool + | Create a floating point constant operand. + | + | @param bytes: (C++: const void *) pointer to the floating point value as used by the current + | processor (e.g. for x86 it must be in IEEE 754) + | @return: success + | + | make_gvar(self, *args) -> 'void' + | make_gvar(self, ea) + | Create a global variable operand. + | + | @param ea: (C++: ea_t) + | + | make_helper(self, *args) -> 'void' + | make_helper(self, name) + | Create a helper operand. A helper operand usually keeps a built-in function name + | like "va_start" It is essentially just an arbitrary identifier without any + | additional info. + | + | @param name: (C++: const char *) char const * + | + | make_high_half(self, *args) -> 'bool' + | make_high_half(self, width) -> bool + | Make the high part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_insn(self, *args) -> 'void' + | make_insn(self, ins) + | Create a nested instruction. + | + | @param ins: (C++: minsn_t *) + | + | make_low_half(self, *args) -> 'bool' + | make_low_half(self, width) -> bool + | Make the low part of the operand. This function takes into account the memory + | endianness (byte sex) + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_number(self, *args) -> 'void' + | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | Create an integer constant operand. + | + | @param _value: (C++: uint64) value to store in the operand + | @param _size: (C++: int) size of the value in bytes (1,2,4,8) + | @param _ea: (C++: ea_t) address of the processor instruction that made the value + | @param opnum: (C++: int) operand number of the processor instruction + | + | make_reg(self, *args) -> 'void' + | make_reg(self, reg) + | + | @param reg: mreg_t + | + | make_reg(self, reg, _size) + | + | @param reg: mreg_t + | @param _size: int + | + | make_reg_pair(self, *args) -> 'void' + | make_reg_pair(self, loreg, hireg, halfsize) + | Create pair of registers. + | + | @param loreg: (C++: int) register holding the low part of the value + | @param hireg: (C++: int) register holding the high part of the value + | @param halfsize: (C++: int) the size of each of loreg/hireg + | + | make_second_half(self, *args) -> 'bool' + | make_second_half(self, width) -> bool + | Make the second part of the operand. This function does not care about the + | memory endianness + | + | @param width: (C++: int) the desired size of the operand part in bytes + | @return: success + | + | make_stkvar(self, *args) -> 'void' + | make_stkvar(self, mba, off) + | + | @param mba: mba_t * + | @param off: sval_t + | + | may_use_aliased_memory(self, *args) -> 'bool' + | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? + | + | preserve_side_effects(self, *args) -> 'bool' + | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | Move subinstructions with side effects out of the operand. If we decide to + | delete an instruction operand, it is a good idea to call this function. + | Alternatively we should skip such operands by calling mop_t::has_side_effects() + | For example, if we transform: jnz x, x, @blk => goto @blk then we must call this + | function before deleting the X operands. + | + | @param blk: (C++: mblock_t *) current block + | @param top: (C++: minsn_t *) top level instruction that contains our operand + | @param moved_calls: (C++: bool *) pointer to the boolean that will track if all side effects + | get handled correctly. must be false initially. + | @return: false failed to preserve a side effect, it is not safe to delete the + | operand true no side effects or successfully preserved them + | + | probably_floating(self, *args) -> 'bool' + | probably_floating(self) -> bool + | + | replace_by(self, o) + | + | set_impptr_done(self, *args) -> 'void' + | set_impptr_done(self) + | + | set_lowaddr(self, *args) -> 'void' + | set_lowaddr(self) + | + | set_udt(self, *args) -> 'void' + | set_udt(self) + | + | set_undef_val(self, *args) -> 'void' + | set_undef_val(self) + | + | shift_mop(self, *args) -> 'bool' + | shift_mop(self, offset) -> bool + | Shift the operand. This function shifts only the beginning of the operand. The + | operand size will be changed. Examples: shift_mop(AH.1, -1) -> AX.2 + | shift_mop(qword_00000008.8, 4) -> dword_0000000C.4 shift_mop(xdu.8(op.4), 4) -> + | #0.4 shift_mop(#0x12345678.4, 3) -> #12.1 + | + | @param offset: (C++: int) shift count (the number of bytes to shift) + | @return: success + | + | signed_value(self, *args) -> 'int64' + | signed_value(self) -> int64 + | + | swap(self, *args) -> 'void' + | swap(self, rop) + | + | @param rop: mop_t & + | + | unsigned_value(self, *args) -> 'uint64' + | unsigned_value(self) -> uint64 + | + | update_numop_value(self, *args) -> 'void' + | update_numop_value(self, val) + | + | @param val: uint64 + | + | value(self, *args) -> 'uint64' + | value(self, is_signed) -> uint64 + | Retrieve value of a constant integer operand. These functions can be called only + | for mop_n operands. See is_constant() that can be called on any operand. + | + | @param is_signed: (C++: bool) + | + | zero(self, *args) -> 'void' + | zero(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a + | + | b + | + | c + | + | cstr + | + | d + | + | f + | + | fpc + | + | g + | + | helper + | + | l + | + | meminfo + | + | nnn + | + | obj_id + | _obj_id(self) -> PyObject * + | + | oprops + | oprops + | + | pair + | + | r + | + | s + | + | scif + | + | size + | size + | + | t + | _get_t(self) -> mopt_t + | + | thisown + | The membership flag + | + | valnum + | valnum + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class mop_visitor_t in module ida_hexrays: + +class mop_visitor_t(op_parent_info_t) + | Proxy of C++ mop_visitor_t class. + | + | Method resolution order: + | mop_visitor_t + | op_parent_info_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_mop_visitor_t(...) + | delete_mop_visitor_t(self) + | + | visit_mop(self, *args) -> 'int' + | visit_mop(self, op, type, is_target) -> int + | + | @param op: mop_t * + | @param type: tinfo_t const * + | @param is_target: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | prune + | prune + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from op_parent_info_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blk + | blk + | + | curins + | curins + | + | mba + | mba + | + | topins + | topins + +Help on class mopvec_t in module ida_hexrays: + +class mopvec_t(builtins.object) + | Proxy of C++ qvector< mop_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< mop_t > const & + | + | __getitem__(self, *args) -> 'mop_t const &' + | __getitem__(self, i) -> mop_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> mopvec_t + | __init__(self, x) -> mopvec_t + | + | @param x: qvector< mop_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< mop_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: mop_t const & + | + | __swig_destroy__ = delete_mopvec_t(...) + | delete_mopvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: mop_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: mop_t const & + | + | at(self, *args) -> 'mop_t const &' + | at(self, _idx) -> mop_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< mop_t >::const_iterator' + | begin(self) -> mop_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< mop_t >::const_iterator' + | end(self) -> mop_t + | + | erase(self, *args) -> 'qvector< mop_t >::iterator' + | erase(self, it) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | + | erase(self, first, last) -> mop_t + | + | @param first: qvector< mop_t >::iterator + | @param last: qvector< mop_t >::iterator + | + | extract(self, *args) -> 'mop_t *' + | extract(self) -> mop_t + | + | find(self, *args) -> 'qvector< mop_t >::const_iterator' + | find(self, x) -> mop_t + | + | @param x: mop_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=mop_t()) + | + | @param x: mop_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: mop_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: mop_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< mop_t >::iterator' + | insert(self, it, x) -> mop_t + | + | @param it: qvector< mop_t >::iterator + | @param x: mop_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'mop_t &' + | push_back(self, x) + | + | @param x: mop_t const & + | + | push_back(self) -> mop_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: mop_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< mop_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function mreg2reg in module ida_hexrays: + +mreg2reg(*args) -> 'int' + mreg2reg(reg, width) -> int + Map a microregister to a processor register. + + @param reg: (C++: mreg_t) microregister number + @param width: (C++: int) size of microregister in bytes + @return: processor register id or -1 + +Help on function must_mcode_close_block in module ida_hexrays: + +must_mcode_close_block(*args) -> 'bool' + must_mcode_close_block(mcode, including_calls) -> bool + Must an instruction with the given opcode be the last one in a block? Such + opcodes are called closing opcodes. + + @param mcode: (C++: mcode_t) instruction opcode + @param including_calls: (C++: bool) should m_call/m_icall be considered as the closing + opcodes? If this function returns true, the opcode + cannot appear in the middle of a block. Calls are a + special case: unknown calls (is_unknown_call) are + considered as closing opcodes. + +Help on function negate_mcode_relation in module ida_hexrays: + +negate_mcode_relation(*args) -> 'mcode_t' + negate_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t + +Help on function negated_relation in module ida_hexrays: + +negated_relation(*args) -> 'ctype_t' + negated_relation(op) -> ctype_t + Negate a comparison operator. For example, cot_sge becomes cot_slt. + + @param op: (C++: ctype_t) enum ctype_t + +Help on function new_block in module ida_hexrays: + +new_block() + Create a new block-statement. + +Help on class number_format_t in module ida_hexrays: + +class number_format_t(builtins.object) + | Proxy of C++ number_format_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _opnum=0) -> number_format_t + | + | @param _opnum: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_number_format_t(...) + | delete_number_format_t(self) + | + | get_radix(self, *args) -> 'int' + | get_radix(self) -> int + | Get number radix + | + | @return: 2,8,10, or 16 + | + | has_unmutable_type(self, *args) -> 'bool' + | has_unmutable_type(self) -> bool + | + | is_char(self, *args) -> 'bool' + | is_char(self) -> bool + | Is a character constant? + | + | is_dec(self, *args) -> 'bool' + | is_dec(self) -> bool + | Is a decimal number? + | + | is_enum(self, *args) -> 'bool' + | is_enum(self) -> bool + | Is a symbolic constant? + | + | is_fixed(self, *args) -> 'bool' + | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be modified by the + | decompiler + | + | is_hex(self, *args) -> 'bool' + | is_hex(self) -> bool + | Is a hexadecimal number? + | + | is_numop(self, *args) -> 'bool' + | is_numop(self) -> bool + | Is a number? + | + | is_oct(self, *args) -> 'bool' + | is_oct(self) -> bool + | Is a octal number? + | + | is_stroff(self, *args) -> 'bool' + | is_stroff(self) -> bool + | Is a structure field offset? + | + | needs_to_be_inverted(self, *args) -> 'bool' + | needs_to_be_inverted(self) -> bool + | Does the number need to be negated or bitwise negated? Returns true if the user + | requested a negation but it is not done yet + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | opnum + | opnum + | + | org_nbytes + | org_nbytes + | + | props + | props + | + | serial + | serial + | + | thisown + | The membership flag + | + | type_name + | type_name + +Help on class op_parent_info_t in module ida_hexrays: + +class op_parent_info_t(builtins.object) + | Proxy of C++ op_parent_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | + | @param _mba: mba_t * + | @param _blk: mblock_t * + | @param _topins: minsn_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_op_parent_info_t(...) + | delete_op_parent_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | blk + | blk + | + | curins + | curins + | + | mba + | mba + | + | thisown + | The membership flag + | + | topins + | topins + +Help on function op_uses_x in module ida_hexrays: + +op_uses_x(*args) -> 'bool' + op_uses_x(op) -> bool + Does operator use the 'x' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function op_uses_y in module ida_hexrays: + +op_uses_y(*args) -> 'bool' + op_uses_y(op) -> bool + Does operator use the 'y' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function op_uses_z in module ida_hexrays: + +op_uses_z(*args) -> 'bool' + op_uses_z(op) -> bool + Does operator use the 'z' field of cexpr_t? + + @param op: (C++: ctype_t) enum ctype_t + +Help on function open_pseudocode in module ida_hexrays: + +open_pseudocode(*args) -> 'vdui_t *' + open_pseudocode(ea, flags) -> vdui_t + Open pseudocode window. The specified function is decompiled and the pseudocode + window is opened. + + @param ea: (C++: ea_t) function to decompile + @param flags: (C++: int) a combination of OPF_ flags + @return: false if failed + +Help on class operand_locator_t in module ida_hexrays: + +class operand_locator_t(builtins.object) + | Proxy of C++ operand_locator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __init__(self, *args) + | __init__(self, _ea, _opnum) -> operand_locator_t + | + | @param _ea: ea_t + | @param _opnum: int + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: operand_locator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_operand_locator_t(...) + | delete_operand_locator_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: operand_locator_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | opnum + | opnum + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class optblock_t in module ida_hexrays: + +class optblock_t(builtins.object) + | Proxy of C++ optblock_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> optblock_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_optblock_t(...) + | delete_optblock_t(self) + | + | func(self, *args) -> 'int' + | func(self, blk) -> int + | Optimize a block. This function usually performs the optimizations that require + | analyzing the entire block and/or its neighbors. For example it can recognize + | patterns and perform conversions like: b0: b0: ... ... jnz x, 0, @b2 => jnz x, + | 0, @b2 b1: b1: add x, 0, y mov x, y ... ... + | + | @param blk: (C++: mblock_t *) Basic block to optimize as a whole. + | @return: number of changes made to the block. See also mark_lists_dirty. + | + | install(self, *args) -> 'void' + | install(self) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class optinsn_t in module ida_hexrays: + +class optinsn_t(builtins.object) + | Proxy of C++ optinsn_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> optinsn_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_optinsn_t(...) + | delete_optinsn_t(self) + | + | func(self, *args) -> 'int' + | func(self, blk, ins, optflags) -> int + | Optimize an instruction. + | + | @param blk: (C++: mblock_t *) current basic block. maybe nullptr, which means that the instruction + | must be optimized without context + | @param ins: (C++: minsn_t *) instruction to optimize; it is always a top-level instruction. the + | callback may not delete the instruction but may convert it into nop + | (see mblock_t::make_nop). to optimize sub-instructions, visit them + | using minsn_visitor_t. sub-instructions may not be converted into + | nop but can be converted to "mov x,x". for example: add x,0,x => mov + | x,x this callback may change other instructions in the block, but + | should do this with care, e.g. to no break the propagation algorithm + | if called with OPTI_NO_LDXOPT. + | @param optflags: (C++: int) combination of optimization flags bits + | @return: number of changes made to the instruction. if after this call the + | instruction's use/def lists have changed, you must mark the block level + | lists as dirty (see mark_lists_dirty) + | + | install(self, *args) -> 'void' + | install(self) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function parse_user_call in module ida_hexrays: + +parse_user_call(*args) -> 'bool' + parse_user_call(udc, decl, silent) -> bool + Convert function type declaration into internal structure + + @param udc: (C++: udcall_t *) - pointer to output structure + @param decl: (C++: const char *) - function type declaration + @param silent: (C++: bool) - if TRUE: do not show warning in case of incorrect type + @return: success + +Help on function partial_type_num in module ida_hexrays: + +partial_type_num(*args) -> 'int' + partial_type_num(type) -> int + Calculate number of partial subtypes. + + @param type: (C++: const tinfo_t &) tinfo_t const & + @return: number of partial subtypes. The bigger is this number, the uglier is + the type. + +Help on function print_vdloc in module ida_hexrays: + +print_vdloc(*args) -> 'qstring *' + print_vdloc(loc, nbytes) -> str + Print vdloc. Since vdloc does not always carry the size info, we pass it as + NBYTES.. + + @param loc: (C++: const vdloc_t &) vdloc_t const & + @param nbytes: (C++: int) + +Help on function property_op_to_typename in module ida_hexrays: + +property_op_to_typename(self) + +Help on class qstring_printer_t in module ida_hexrays: + +class qstring_printer_t(vc_printer_t) + | Proxy of C++ qstring_printer_t class. + | + | Method resolution order: + | qstring_printer_t + | vc_printer_t + | vd_printer_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, f, tags) -> qstring_printer_t + | + | @param f: cfunc_t const * + | @param tags: bool + | + | __repr__ = _swig_repr(self) + | + | _print(self, *args) -> 'int' + | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * + | + | get_s(self, *args) -> 'qstring' + | get_s(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | s + | + | thisown + | The membership flag + | + | with_tags + | with_tags + | + | ---------------------------------------------------------------------- + | Methods inherited from vc_printer_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_vc_printer_t(...) + | delete_vc_printer_t(self) + | + | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vc_printer_t: + | + | func + | func + | + | lastchar + | lastchar + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vd_printer_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hdrlines + | hdrlines + | + | tmpbuf + | tmpbuf + +Help on function qswap in module ida_hexrays: + +qswap(*args) -> 'void' + qswap(a, b) + + @param a: cinsn_t & + @param b: cinsn_t & + +Help on class qvector_carg_t in module ida_hexrays: + +class qvector_carg_t(builtins.object) + | Proxy of C++ qvector< carg_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< carg_t > const & + | + | __getitem__(self, *args) -> 'carg_t const &' + | __getitem__(self, i) -> carg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_carg_t + | __init__(self, x) -> qvector_carg_t + | + | @param x: qvector< carg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< carg_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: carg_t const & + | + | __swig_destroy__ = delete_qvector_carg_t(...) + | delete_qvector_carg_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: carg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: carg_t const & + | + | append = push_back(self, *args) -> 'carg_t &' + | + | at = __getitem__(self, *args) -> 'carg_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< carg_t >::const_iterator' + | begin(self) -> carg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< carg_t >::const_iterator' + | end(self) -> carg_t + | + | erase(self, *args) -> 'qvector< carg_t >::iterator' + | erase(self, it) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | + | erase(self, first, last) -> carg_t + | + | @param first: qvector< carg_t >::iterator + | @param last: qvector< carg_t >::iterator + | + | extract(self, *args) -> 'carg_t *' + | extract(self) -> carg_t + | + | find(self, *args) -> 'qvector< carg_t >::const_iterator' + | find(self, x) -> carg_t + | + | @param x: carg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=carg_t()) + | + | @param x: carg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: carg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: carg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< carg_t >::iterator' + | insert(self, it, x) -> carg_t + | + | @param it: qvector< carg_t >::iterator + | @param x: carg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'carg_t &' + | push_back(self, x) + | + | @param x: carg_t const & + | + | push_back(self) -> carg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: carg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< carg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qvector_ccase_t in module ida_hexrays: + +class qvector_ccase_t(builtins.object) + | Proxy of C++ qvector< ccase_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & + | + | __getitem__(self, *args) -> 'ccase_t const &' + | __getitem__(self, i) -> ccase_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_ccase_t + | __init__(self, x) -> qvector_ccase_t + | + | @param x: qvector< ccase_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< ccase_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ccase_t const & + | + | __swig_destroy__ = delete_qvector_ccase_t(...) + | delete_qvector_ccase_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ccase_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ccase_t const & + | + | append = push_back(self, *args) -> 'ccase_t &' + | + | at = __getitem__(self, *args) -> 'ccase_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ccase_t >::const_iterator' + | begin(self) -> ccase_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ccase_t >::const_iterator' + | end(self) -> ccase_t + | + | erase(self, *args) -> 'qvector< ccase_t >::iterator' + | erase(self, it) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | + | erase(self, first, last) -> ccase_t + | + | @param first: qvector< ccase_t >::iterator + | @param last: qvector< ccase_t >::iterator + | + | extract(self, *args) -> 'ccase_t *' + | extract(self) -> ccase_t + | + | find(self, *args) -> 'qvector< ccase_t >::const_iterator' + | find(self, x) -> ccase_t + | + | @param x: ccase_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ccase_t()) + | + | @param x: ccase_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ccase_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ccase_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ccase_t >::iterator' + | insert(self, it, x) -> ccase_t + | + | @param it: qvector< ccase_t >::iterator + | @param x: ccase_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ccase_t &' + | push_back(self, x) + | + | @param x: ccase_t const & + | + | push_back(self) -> ccase_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ccase_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ccase_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qvector_history_t in module ida_hexrays: + +class qvector_history_t(builtins.object) + | Proxy of C++ qvector< history_item_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __getitem__(self, *args) -> 'history_item_t const &' + | __getitem__(self, i) -> history_item_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_history_t + | __init__(self, x) -> qvector_history_t + | + | @param x: qvector< history_item_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< history_item_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: history_item_t const & + | + | __swig_destroy__ = delete_qvector_history_t(...) + | delete_qvector_history_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: history_item_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: history_item_t const & + | + | at(self, *args) -> 'history_item_t const &' + | at(self, _idx) -> history_item_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< history_item_t >::const_iterator' + | begin(self) -> history_item_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< history_item_t >::const_iterator' + | end(self) -> history_item_t + | + | erase(self, *args) -> 'qvector< history_item_t >::iterator' + | erase(self, it) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | + | erase(self, first, last) -> history_item_t + | + | @param first: qvector< history_item_t >::iterator + | @param last: qvector< history_item_t >::iterator + | + | extract(self, *args) -> 'history_item_t *' + | extract(self) -> history_item_t + | + | find(self, *args) -> 'qvector< history_item_t >::const_iterator' + | find(self, x) -> history_item_t + | + | @param x: history_item_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=history_item_t()) + | + | @param x: history_item_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: history_item_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: history_item_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< history_item_t >::iterator' + | insert(self, it, x) -> history_item_t + | + | @param it: qvector< history_item_t >::iterator + | @param x: history_item_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'history_item_t &' + | push_back(self, x) + | + | @param x: history_item_t const & + | + | push_back(self) -> history_item_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: history_item_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< history_item_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class qvector_lvar_t in module ida_hexrays: + +class qvector_lvar_t(builtins.object) + | Proxy of C++ qvector< lvar_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __getitem__(self, *args) -> 'lvar_t const &' + | __getitem__(self, i) -> lvar_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_lvar_t + | __init__(self, x) -> qvector_lvar_t + | + | @param x: qvector< lvar_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< lvar_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: lvar_t const & + | + | __swig_destroy__ = delete_qvector_lvar_t(...) + | delete_qvector_lvar_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: lvar_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: lvar_t const & + | + | append = push_back(self, *args) -> 'lvar_t &' + | + | at = __getitem__(self, *args) -> 'lvar_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< lvar_t >::const_iterator' + | begin(self) -> lvar_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< lvar_t >::const_iterator' + | end(self) -> lvar_t + | + | erase(self, *args) -> 'qvector< lvar_t >::iterator' + | erase(self, it) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | + | erase(self, first, last) -> lvar_t + | + | @param first: qvector< lvar_t >::iterator + | @param last: qvector< lvar_t >::iterator + | + | extract(self, *args) -> 'lvar_t *' + | extract(self) -> lvar_t + | + | find(self, *args) -> 'qvector< lvar_t >::const_iterator' + | find(self, x) -> lvar_t + | + | @param x: lvar_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=lvar_t()) + | + | @param x: lvar_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: lvar_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: lvar_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< lvar_t >::iterator' + | insert(self, it, x) -> lvar_t + | + | @param it: qvector< lvar_t >::iterator + | @param x: lvar_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'lvar_t &' + | push_back(self, x) + | + | @param x: lvar_t const & + | + | push_back(self) -> lvar_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: lvar_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< lvar_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function reg2mreg in module ida_hexrays: + +reg2mreg(*args) -> 'mreg_t' + reg2mreg(reg) -> mreg_t + Map a processor register to a microregister. + + @param reg: (C++: int) processor register number + @return: microregister register id or mr_none + +Help on function remitem in module ida_hexrays: + +remitem(*args) -> 'void' + remitem(e) + + @param e: citem_t const * + +Help on function remove_hexrays_callback in module ida_hexrays: + +remove_hexrays_callback(callback) + Deprecated. Please use Hexrays_Hooks instead + Uninstall handler for decompiler events. + + @return: number of uninstalled handlers. + +Help on function rename_lvar in module ida_hexrays: + +rename_lvar(*args) -> 'bool' + rename_lvar(func_ea, oldname, newname) -> bool + Rename a local variable. + + @param func_ea: (C++: ea_t) function start address + @param oldname: (C++: const char *) old name of the variable + @param newname: (C++: const char *) new name of the variable + @return: success This is a convenience function. For bulk renaming consider + using modify_user_lvars. + +Help on function restore_user_cmts in module ida_hexrays: + +restore_user_cmts(*args) -> 'user_cmts_t *' + restore_user_cmts(func_ea) -> user_cmts_t + Restore user defined comments from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined comments. The returned object must be + deleted by the caller using delete_user_cmts() + +Help on function restore_user_defined_calls in module ida_hexrays: + +restore_user_defined_calls(*args) -> 'bool' + restore_user_defined_calls(udcalls, func_ea) -> bool + Restore user defined function calls from the database. + + @param udcalls: (C++: udcall_map_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success + +Help on function restore_user_iflags in module ida_hexrays: + +restore_user_iflags(*args) -> 'user_iflags_t *' + restore_user_iflags(func_ea) -> user_iflags_t + Restore user defined citem iflags from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined iflags. The returned object must be deleted + by the caller using delete_user_iflags() + +Help on function restore_user_labels in module ida_hexrays: + +restore_user_labels(*args) -> 'user_labels_t *' + restore_user_labels(func_ea) -> user_labels_t + Restore user defined labels from the database. + + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @return: collection of user defined labels. The returned object must be deleted + by the caller using delete_user_labels() + +Help on function restore_user_labels2 in module ida_hexrays: + +restore_user_labels2(*args) -> 'user_labels_t *' + restore_user_labels2(func_ea, func=None) -> user_labels_t + + @param func_ea: ea_t + @param func: cfunc_t const * + +Help on function restore_user_lvar_settings in module ida_hexrays: + +restore_user_lvar_settings(*args) -> 'bool' + restore_user_lvar_settings(lvinf, func_ea) -> bool + Restore user defined local variable settings in the database. + + @param lvinf: (C++: lvar_uservec_t *) ptr to output buffer + @param func_ea: (C++: ea_t) entry address of the function + @return: success + +Help on function restore_user_numforms in module ida_hexrays: + +restore_user_numforms(*args) -> 'user_numforms_t *' + restore_user_numforms(func_ea) -> user_numforms_t + Restore user defined number formats from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of user defined number formats. The returned object must be + deleted by the caller using delete_user_numforms() + +Help on function restore_user_unions in module ida_hexrays: + +restore_user_unions(*args) -> 'user_unions_t *' + restore_user_unions(func_ea) -> user_unions_t + Restore user defined union field selections from the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @return: collection of union field selections The returned object must be + deleted by the caller using delete_user_unions() + +Help on class rlist_t in module ida_hexrays: + +class rlist_t(bitset_t) + | Proxy of C++ rlist_t class. + | + | Method resolution order: + | rlist_t + | bitset_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> rlist_t + | __init__(self, m) -> rlist_t + | + | @param m: rlist_t const & + | + | __init__(self, reg, width) -> rlist_t + | + | @param reg: mreg_t + | @param width: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rlist_t(...) + | delete_rlist_t(self) + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from bitset_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __len__ = count(self, *args) -> 'int' + | count(self) -> int + | count(self, bit) -> int + | + | @param bit: int + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitset_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitset_t const & + | + | add(self, *args) -> 'bool' + | add(self, bit) -> bool + | + | @param bit: int + | + | add(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | add(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | back(self, *args) -> 'int' + | back(self) -> int + | + | begin(self, *args) -> 'bitset_t::iterator' + | begin(self) -> iterator + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitset_t const & + | + | copy(self, *args) -> 'bitset_t &' + | copy(self, m) -> bitset_t + | + | @param m: bitset_t const & + | + | count(self, *args) -> 'int' + | count(self) -> int + | count(self, bit) -> int + | + | @param bit: int + | + | cut_at(self, *args) -> 'bool' + | cut_at(self, maxbit) -> bool + | + | @param maxbit: int + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'bitset_t::iterator' + | end(self) -> iterator + | + | fill_with_ones(self, *args) -> 'void' + | fill_with_ones(self, maxbit) + | + | @param maxbit: int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | has(self, *args) -> 'bool' + | has(self, bit) -> bool + | + | @param bit: int + | + | has_all(self, *args) -> 'bool' + | has_all(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_any(self, *args) -> 'bool' + | has_any(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | has_common(self, *args) -> 'bool' + | has_common(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | inc(self, *args) -> 'void' + | inc(self, p, n=1) + | + | @param p: bitset_t::iterator & + | @param n: int + | + | includes(self, *args) -> 'bool' + | includes(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | itat(self, *args) -> 'bitset_t::iterator' + | itat(self, n) -> iterator + | + | @param n: int + | + | itv(self, *args) -> 'int' + | itv(self, it) -> int + | + | @param it: bitset_t::const_iterator + | + | last(self, *args) -> 'int' + | last(self) -> int + | + | shift_down(self, *args) -> 'void' + | shift_down(self, shift) + | + | @param shift: int + | + | sub(self, *args) -> 'bool' + | sub(self, bit) -> bool + | + | @param bit: int + | + | sub(self, bit, width) -> bool + | + | @param bit: int + | @param width: int + | + | sub(self, ml) -> bool + | + | @param ml: bitset_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: bitset_t & + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from bitset_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from bitset_t: + | + | __hash__ = None + +Help on function save_user_cmts in module ida_hexrays: + +save_user_cmts(*args) -> 'void' + save_user_cmts(func_ea, user_cmts) + Save user defined comments into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param user_cmts: (C++: const user_cmts_t *) collection of user defined comments + +Help on function save_user_defined_calls in module ida_hexrays: + +save_user_defined_calls(*args) -> 'void' + save_user_defined_calls(func_ea, udcalls) + Save user defined local function calls into the database. + + @param func_ea: (C++: ea_t) entry address of the function + @param udcalls: (C++: const udcall_map_t &) user-specified info about user defined function calls + +Help on function save_user_iflags in module ida_hexrays: + +save_user_iflags(*args) -> 'void' + save_user_iflags(func_ea, iflags) + Save user defined citem iflags into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param iflags: (C++: const user_iflags_t *) collection of user defined citem iflags + +Help on function save_user_labels in module ida_hexrays: + +save_user_labels(*args) -> 'void' + save_user_labels(func_ea, user_labels) + Save user defined labels into the database. + + @param func_ea: (C++: ea_t) the entry address of the function, ignored if FUNC != nullptr + @param user_labels: (C++: const user_labels_t *) collection of user defined labels + +Help on function save_user_labels2 in module ida_hexrays: + +save_user_labels2(*args) -> 'void' + save_user_labels2(func_ea, user_labels, func=None) + + @param func_ea: ea_t + @param user_labels: user_labels_t const * + @param func: cfunc_t const * + +Help on function save_user_lvar_settings in module ida_hexrays: + +save_user_lvar_settings(*args) -> 'void' + save_user_lvar_settings(func_ea, lvinf) + Save user defined local variable settings into the database. + + @param func_ea: (C++: ea_t) entry address of the function + @param lvinf: (C++: const lvar_uservec_t &) user-specified info about local variables + +Help on function save_user_numforms in module ida_hexrays: + +save_user_numforms(*args) -> 'void' + save_user_numforms(func_ea, numforms) + Save user defined number formats into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param numforms: (C++: const user_numforms_t *) collection of user defined comments + +Help on function save_user_unions in module ida_hexrays: + +save_user_unions(*args) -> 'void' + save_user_unions(func_ea, unions) + Save user defined union field selections into the database. + + @param func_ea: (C++: ea_t) the entry address of the function + @param unions: (C++: const user_unions_t *) collection of union field selections + +Help on class scif_t in module ida_hexrays: + +class scif_t(vdloc_t) + | Proxy of C++ scif_t class. + | + | Method resolution order: + | scif_t + | vdloc_t + | ida_typeinf.argloc_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _mba, tif, n=None) -> scif_t + | + | @param _mba: mba_t * + | @param tif: tinfo_t * + | @param n: qstring * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scif_t(...) + | delete_scif_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | mba + | mba + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Methods inherited from vdloc_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: vdloc_t const & + | + | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, r1) + | + | @param r1: int + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from vdloc_t: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_typeinf.argloc_t: + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_typeinf.argloc_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class scif_visitor_t in module ida_hexrays: + +class scif_visitor_t(builtins.object) + | Proxy of C++ scif_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> scif_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scif_visitor_t(...) + | delete_scif_visitor_t(self) + | + | visit_scif_mop(self, *args) -> 'int' + | visit_scif_mop(self, r, off) -> int + | + | @param r: mop_t const & + | @param off: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function select_udt_by_offset in module ida_hexrays: + +select_udt_by_offset(*args) -> 'int' + select_udt_by_offset(udts, ops, applicator) -> int + Select UDT + + @param udts: (C++: const qvector< tinfo_t > *) list of UDT tinfo_t for the selection, if nullptr or empty then + UDTs from the "Local types" will be used + @param ops: (C++: const ui_stroff_ops_t &) operands + @param applicator: (C++: ui_stroff_applicator_t &) callback will be called to apply the selection for every + operand + +Help on function send_database in module ida_hexrays: + +send_database(*args) -> 'void' + send_database(err, silent) + Send the database to Hex-Rays. This function sends the current database to the + Hex-Rays server. The database is sent in the compressed form over an encrypted + (SSL) connection. + + @param err: (C++: const hexrays_failure_t &) failure description object. Empty hexrays_failure_t object can be + used if error information is not available. + @param silent: (C++: bool) if false, a dialog box will be displayed before sending the + database. + +Help on function set2jcnd in module ida_hexrays: + +set2jcnd(*args) -> 'mcode_t' + set2jcnd(code) -> mcode_t + + @param code: enum mcode_t + +Help on function set_type in module ida_hexrays: + +set_type(*args) -> 'bool' + set_type(id, tif, source, force=False) -> bool + Set a global type. + + @param id: (C++: uval_t) address or id of the object + @param tif: (C++: const tinfo_t &) new type info + @param source: (C++: type_source_t) where the type comes from + @param force: (C++: bool) true means to set the type as is, false means to merge the new + type with the possibly existing old type info. + @return: success + +Help on class simple_graph_t in module ida_hexrays: + +class simple_graph_t(ida_gdl.gdl_graph_t) + | Proxy of C++ simple_graph_t class. + | + | Method resolution order: + | simple_graph_t + | ida_gdl.gdl_graph_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | __init__(self) -> gdl_graph_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | colored_gdl_edges + | colored_gdl_edges + | + | thisown + | The membership flag + | + | title + | title + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_gdl.gdl_graph_t: + | + | __disown__(self) + | + | __swig_destroy__ = delete_gdl_graph_t(...) + | delete_gdl_graph_t(self) + | + | begin(self, *args) -> 'node_iterator' + | begin(self) -> node_iterator + | + | edge(self, *args) -> 'int' + | edge(self, node, i, ispred) -> int + | + | @param node: int + | @param i: int + | @param ispred: bool + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'node_iterator' + | end(self) -> node_iterator + | + | entry(self, *args) -> 'int' + | entry(self) -> int + | + | exists(self, *args) -> 'bool' + | exists(self, node) -> bool + | + | @param node: int + | + | exit(self, *args) -> 'int' + | exit(self) -> int + | + | front(self, *args) -> 'int' + | front(self) -> int + | + | get_edge_color(self, *args) -> 'bgcolor_t' + | get_edge_color(self, i, j) -> bgcolor_t + | + | @param i: int + | @param j: int + | + | get_node_color(self, *args) -> 'bgcolor_t' + | get_node_color(self, n) -> bgcolor_t + | + | @param n: int + | + | get_node_label(self, *args) -> 'char *' + | get_node_label(self, n) -> char * + | + | @param n: int + | + | nedge(self, *args) -> 'size_t' + | nedge(self, node, ispred) -> size_t + | + | @param node: int + | @param ispred: bool + | + | node_qty(self, *args) -> 'int' + | node_qty(self) -> int + | + | npred(self, *args) -> 'int' + | npred(self, node) -> int + | + | @param node: int + | + | nsucc(self, *args) -> 'int' + | nsucc(self, node) -> int + | + | @param node: int + | + | pred(self, *args) -> 'int' + | pred(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | print_edge(self, *args) -> 'bool' + | print_edge(self, fp, i, j) -> bool + | + | @param fp: FILE * + | @param i: int + | @param j: int + | + | print_graph_attributes(self, *args) -> 'void' + | print_graph_attributes(self, fp) + | + | @param fp: FILE * + | + | print_node(self, *args) -> 'bool' + | print_node(self, fp, n) -> bool + | + | @param fp: FILE * + | @param n: int + | + | print_node_attributes(self, *args) -> 'void' + | print_node_attributes(self, fp, n) + | + | @param fp: FILE * + | @param n: int + | + | size(self, *args) -> 'int' + | size(self) -> int + | + | succ(self, *args) -> 'int' + | succ(self, node, i) -> int + | + | @param node: int + | @param i: int + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_gdl.gdl_graph_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class stkvar_ref_t in module ida_hexrays: + +class stkvar_ref_t(builtins.object) + | Proxy of C++ stkvar_ref_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __init__(self, *args) + | __init__(self, m, o) -> stkvar_ref_t + | + | @param m: mba_t * + | @param o: sval_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: stkvar_ref_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkvar_ref_t(...) + | delete_stkvar_ref_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: stkvar_ref_t const & + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, p_off=None) -> member_t * + | Retrieve the referenced stack variable. + | + | @param p_off: (C++: uval_t *) if specified, will hold IDA stkoff after the call. + | @return: pointer to the stack variable + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: stkvar_ref_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | mba + | mba + | + | off + | off + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function swap_mcode_relation in module ida_hexrays: + +swap_mcode_relation(*args) -> 'mcode_t' + swap_mcode_relation(code) -> mcode_t + + @param code: enum mcode_t + +Help on function swapped_relation in module ida_hexrays: + +swapped_relation(*args) -> 'ctype_t' + swapped_relation(op) -> ctype_t + Swap a comparison operator. For example, cot_sge becomes cot_sle. + + @param op: (C++: ctype_t) enum ctype_t + +Help on function term_hexrays_plugin in module ida_hexrays: + +term_hexrays_plugin(*args) -> 'void' + term_hexrays_plugin() + Stop working with hex-rays decompiler. + +Help on class treeloc_t in module ida_hexrays: + +class treeloc_t(builtins.object) + | Proxy of C++ treeloc_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: treeloc_t const & + | + | __init__(self, *args) + | __init__(self) -> treeloc_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: treeloc_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_treeloc_t(...) + | delete_treeloc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | itp + | itp + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class udc_filter_t in module ida_hexrays: + +class udc_filter_t(microcode_filter_t) + | Proxy of C++ udc_filter_t class. + | + | Method resolution order: + | udc_filter_t + | microcode_filter_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> udc_filter_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udc_filter_t(...) + | delete_udc_filter_t(self) + | + | apply(self, *args) -> 'merror_t' + | apply(self, cdg) -> merror_t + | generate microcode for an instruction + | + | @param cdg: (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined microcode generated, go to the + | next instruction MERR_INSN - not generated - the caller should try the + | standard way else - error + | + | cleanup(self, *args) -> 'void' + | cleanup(self) + | Cleanup the filter This function properly clears type information associated to + | this filter. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | init(self, *args) -> 'bool' + | init(self, decl) -> bool + | + | @param decl: char const * + | + | install(self, *args) -> 'void' + | install(self) + | + | match(self, *args) -> 'bool' + | match(self, cdg) -> bool + | return true if the filter object should be applied to given instruction + | + | @param cdg: (C++: codegen_t &) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from microcode_filter_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function udcall_map_begin in module ida_hexrays: + +udcall_map_begin(*args) -> 'udcall_map_iterator_t' + udcall_map_begin(map) -> udcall_map_iterator_t + Get iterator pointing to the beginning of udcall_map_t. + + @param map: (C++: const udcall_map_t *) udcall_map_t const * + +Help on function udcall_map_clear in module ida_hexrays: + +udcall_map_clear(*args) -> 'void' + udcall_map_clear(map) + Clear udcall_map_t. + + @param map: (C++: udcall_map_t *) + +Help on function udcall_map_end in module ida_hexrays: + +udcall_map_end(*args) -> 'udcall_map_iterator_t' + udcall_map_end(map) -> udcall_map_iterator_t + Get iterator pointing to the end of udcall_map_t. + + @param map: (C++: const udcall_map_t *) udcall_map_t const * + +Help on function udcall_map_erase in module ida_hexrays: + +udcall_map_erase(*args) -> 'void' + udcall_map_erase(map, p) + Erase current element from udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_find in module ida_hexrays: + +udcall_map_find(*args) -> 'udcall_map_iterator_t' + udcall_map_find(map, key) -> udcall_map_iterator_t + Find the specified key in udcall_map_t. + + @param map: (C++: const udcall_map_t *) udcall_map_t const * + @param key: (C++: const ea_t &) ea_t const & + +Help on function udcall_map_first in module ida_hexrays: + +udcall_map_first(*args) -> 'ea_t const &' + udcall_map_first(p) -> ea_t const & + Get reference to the current map key. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_free in module ida_hexrays: + +udcall_map_free(*args) -> 'void' + udcall_map_free(map) + Delete udcall_map_t instance. + + @param map: (C++: udcall_map_t *) + +Help on function udcall_map_insert in module ida_hexrays: + +udcall_map_insert(*args) -> 'udcall_map_iterator_t' + udcall_map_insert(map, key, val) -> udcall_map_iterator_t + Insert new (ea_t, udcall_t) pair into udcall_map_t. + + @param map: (C++: udcall_map_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const udcall_t &) udcall_t const & + +Help on class udcall_map_iterator_t in module ida_hexrays: + +class udcall_map_iterator_t(builtins.object) + | Proxy of C++ udcall_map_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> udcall_map_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: udcall_map_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udcall_map_iterator_t(...) + | delete_udcall_map_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function udcall_map_new in module ida_hexrays: + +udcall_map_new(*args) -> 'udcall_map_t *' + udcall_map_new() -> udcall_map_t * + Create a new udcall_map_t instance. + +Help on function udcall_map_next in module ida_hexrays: + +udcall_map_next(*args) -> 'udcall_map_iterator_t' + udcall_map_next(p) -> udcall_map_iterator_t + Move to the next element. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_prev in module ida_hexrays: + +udcall_map_prev(*args) -> 'udcall_map_iterator_t' + udcall_map_prev(p) -> udcall_map_iterator_t + Move to the previous element. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_second in module ida_hexrays: + +udcall_map_second(*args) -> 'udcall_t &' + udcall_map_second(p) -> udcall_t + Get reference to the current map value. + + @param p: (C++: udcall_map_iterator_t) + +Help on function udcall_map_size in module ida_hexrays: + +udcall_map_size(*args) -> 'size_t' + udcall_map_size(map) -> size_t + Get size of udcall_map_t. + + @param map: (C++: udcall_map_t *) + +Help on class udcall_t in module ida_hexrays: + +class udcall_t(builtins.object) + | Proxy of C++ udcall_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __init__(self, *args) + | __init__(self) -> udcall_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: udcall_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udcall_t(...) + | delete_udcall_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: udcall_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | tif + | tif + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ui_stroff_applicator_t in module ida_hexrays: + +class ui_stroff_applicator_t(builtins.object) + | Proxy of C++ ui_stroff_applicator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ui_stroff_applicator_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ui_stroff_applicator_t(...) + | delete_ui_stroff_applicator_t(self) + | + | apply(self, *args) -> 'bool' + | apply(self, opnum, path, top_tif, spath) -> bool + | + | @param opnum: (C++: size_t) operand ordinal number, see below + | @param path: (C++: const intvec_t &) path describing the union selection, maybe empty + | @param top_tif: (C++: const tinfo_t &) tinfo_t of the selected toplevel UDT + | @param spath: (C++: const char *) selected path + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class ui_stroff_op_t in module ida_hexrays: + +class ui_stroff_op_t(builtins.object) + | Proxy of C++ ui_stroff_op_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & + | + | __init__(self, *args) + | __init__(self) -> ui_stroff_op_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ui_stroff_op_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ui_stroff_op_t(...) + | delete_ui_stroff_op_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | offset + | offset + | + | text + | text + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class ui_stroff_ops_t in module ida_hexrays: + +class ui_stroff_ops_t(builtins.object) + | Proxy of C++ qvector< ui_stroff_op_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & + | + | __getitem__(self, *args) -> 'ui_stroff_op_t const &' + | __getitem__(self, i) -> ui_stroff_op_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> ui_stroff_ops_t + | __init__(self, x) -> ui_stroff_ops_t + | + | @param x: qvector< ui_stroff_op_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< ui_stroff_op_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ui_stroff_op_t const & + | + | __swig_destroy__ = delete_ui_stroff_ops_t(...) + | delete_ui_stroff_ops_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: ui_stroff_op_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: ui_stroff_op_t const & + | + | append = push_back(self, *args) -> 'ui_stroff_op_t &' + | + | at = __getitem__(self, *args) -> 'ui_stroff_op_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' + | begin(self) -> ui_stroff_op_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' + | end(self) -> ui_stroff_op_t + | + | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' + | erase(self, it) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | + | erase(self, first, last) -> ui_stroff_op_t + | + | @param first: qvector< ui_stroff_op_t >::iterator + | @param last: qvector< ui_stroff_op_t >::iterator + | + | extract(self, *args) -> 'ui_stroff_op_t *' + | extract(self) -> ui_stroff_op_t + | + | find(self, *args) -> 'qvector< ui_stroff_op_t >::const_iterator' + | find(self, x) -> ui_stroff_op_t + | + | @param x: ui_stroff_op_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ui_stroff_op_t()) + | + | @param x: ui_stroff_op_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: ui_stroff_op_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ui_stroff_op_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' + | insert(self, it, x) -> ui_stroff_op_t + | + | @param it: qvector< ui_stroff_op_t >::iterator + | @param x: ui_stroff_op_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ui_stroff_op_t &' + | push_back(self, x) + | + | @param x: ui_stroff_op_t const & + | + | push_back(self) -> ui_stroff_op_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ui_stroff_op_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ui_stroff_op_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_cmts_begin in module ida_hexrays: + +user_cmts_begin(*args) -> 'user_cmts_iterator_t' + user_cmts_begin(map) -> user_cmts_iterator_t + Get iterator pointing to the beginning of user_cmts_t. + + @param map: (C++: const user_cmts_t *) user_cmts_t const * + +Help on function user_cmts_clear in module ida_hexrays: + +user_cmts_clear(*args) -> 'void' + user_cmts_clear(map) + Clear user_cmts_t. + + @param map: (C++: user_cmts_t *) + +Help on function user_cmts_end in module ida_hexrays: + +user_cmts_end(*args) -> 'user_cmts_iterator_t' + user_cmts_end(map) -> user_cmts_iterator_t + Get iterator pointing to the end of user_cmts_t. + + @param map: (C++: const user_cmts_t *) user_cmts_t const * + +Help on function user_cmts_erase in module ida_hexrays: + +user_cmts_erase(*args) -> 'void' + user_cmts_erase(map, p) + Erase current element from user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_find in module ida_hexrays: + +user_cmts_find(*args) -> 'user_cmts_iterator_t' + user_cmts_find(map, key) -> user_cmts_iterator_t + Find the specified key in user_cmts_t. + + @param map: (C++: const user_cmts_t *) user_cmts_t const * + @param key: (C++: const treeloc_t &) treeloc_t const & + +Help on function user_cmts_first in module ida_hexrays: + +user_cmts_first(*args) -> 'treeloc_t const &' + user_cmts_first(p) -> treeloc_t + Get reference to the current map key. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_free in module ida_hexrays: + +user_cmts_free(*args) -> 'void' + user_cmts_free(map) + Delete user_cmts_t instance. + + @param map: (C++: user_cmts_t *) + +Help on function user_cmts_insert in module ida_hexrays: + +user_cmts_insert(*args) -> 'user_cmts_iterator_t' + user_cmts_insert(map, key, val) -> user_cmts_iterator_t + Insert new (treeloc_t, citem_cmt_t) pair into user_cmts_t. + + @param map: (C++: user_cmts_t *) + @param key: (C++: const treeloc_t &) treeloc_t const & + @param val: (C++: const citem_cmt_t &) citem_cmt_t const & + +Help on class user_cmts_iterator_t in module ida_hexrays: + +class user_cmts_iterator_t(builtins.object) + | Proxy of C++ user_cmts_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_cmts_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_cmts_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_cmts_iterator_t(...) + | delete_user_cmts_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_cmts_new in module ida_hexrays: + +user_cmts_new(*args) -> 'user_cmts_t *' + user_cmts_new() -> user_cmts_t + Create a new user_cmts_t instance. + +Help on function user_cmts_next in module ida_hexrays: + +user_cmts_next(*args) -> 'user_cmts_iterator_t' + user_cmts_next(p) -> user_cmts_iterator_t + Move to the next element. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_prev in module ida_hexrays: + +user_cmts_prev(*args) -> 'user_cmts_iterator_t' + user_cmts_prev(p) -> user_cmts_iterator_t + Move to the previous element. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_second in module ida_hexrays: + +user_cmts_second(*args) -> 'citem_cmt_t &' + user_cmts_second(p) -> citem_cmt_t + Get reference to the current map value. + + @param p: (C++: user_cmts_iterator_t) + +Help on function user_cmts_size in module ida_hexrays: + +user_cmts_size(*args) -> 'size_t' + user_cmts_size(map) -> size_t + Get size of user_cmts_t. + + @param map: (C++: user_cmts_t *) + +Help on class user_cmts_t in module ida_hexrays: + +class user_cmts_t(builtins.object) + | Proxy of C++ std::map< treeloc_t,citem_cmt_t > class. + | + | Methods defined here: + | + | __begin = user_cmts_begin(...) + | user_cmts_begin(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | + | __clear = user_cmts_clear(...) + | user_cmts_clear(map) + | + | Parameters + | ---------- + | map: user_cmts_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_cmts_end(...) + | user_cmts_end(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | + | __erase = user_cmts_erase(...) + | user_cmts_erase(map, p) + | + | Parameters + | ---------- + | map: user_cmts_t * + | p: user_cmts_iterator_t + | + | __find = user_cmts_find(...) + | user_cmts_find(map, key) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | key: treeloc_t const & + | + | __first = user_cmts_first(...) + | user_cmts_first(p) -> treeloc_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_cmts_t + | + | __insert = user_cmts_insert(...) + | user_cmts_insert(map, key, val) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t * + | key: treeloc_t const & + | val: citem_cmt_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_cmts_next(...) + | user_cmts_next(p) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_cmts_second(...) + | user_cmts_second(p) -> citem_cmt_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_cmts_size(...) + | user_cmts_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_cmts_t * + | + | __swig_destroy__ = delete_user_cmts_t(...) + | delete_user_cmts_t(self) + | + | at(self, *args) -> 'citem_cmt_t &' + | at(self, _Keyval) -> citem_cmt_t + | + | @param _Keyval: treeloc_t const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.treeloc_t'> + | Proxy of C++ treeloc_t class. + | + | valuetype = <class 'ida_hexrays.citem_cmt_t'> + | Proxy of C++ citem_cmt_t class. + +Help on function user_iflags_begin in module ida_hexrays: + +user_iflags_begin(*args) -> 'user_iflags_iterator_t' + user_iflags_begin(map) -> user_iflags_iterator_t + Get iterator pointing to the beginning of user_iflags_t. + + @param map: (C++: const user_iflags_t *) user_iflags_t const * + +Help on function user_iflags_clear in module ida_hexrays: + +user_iflags_clear(*args) -> 'void' + user_iflags_clear(map) + Clear user_iflags_t. + + @param map: (C++: user_iflags_t *) + +Help on function user_iflags_end in module ida_hexrays: + +user_iflags_end(*args) -> 'user_iflags_iterator_t' + user_iflags_end(map) -> user_iflags_iterator_t + Get iterator pointing to the end of user_iflags_t. + + @param map: (C++: const user_iflags_t *) user_iflags_t const * + +Help on function user_iflags_erase in module ida_hexrays: + +user_iflags_erase(*args) -> 'void' + user_iflags_erase(map, p) + Erase current element from user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_find in module ida_hexrays: + +user_iflags_find(*args) -> 'user_iflags_iterator_t' + user_iflags_find(map, key) -> user_iflags_iterator_t + Find the specified key in user_iflags_t. + + @param map: (C++: const user_iflags_t *) user_iflags_t const * + @param key: (C++: const citem_locator_t &) citem_locator_t const & + +Help on function user_iflags_first in module ida_hexrays: + +user_iflags_first(*args) -> 'citem_locator_t const &' + user_iflags_first(p) -> citem_locator_t + Get reference to the current map key. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_free in module ida_hexrays: + +user_iflags_free(*args) -> 'void' + user_iflags_free(map) + Delete user_iflags_t instance. + + @param map: (C++: user_iflags_t *) + +Help on function user_iflags_insert in module ida_hexrays: + +user_iflags_insert(*args) -> 'user_iflags_iterator_t' + user_iflags_insert(map, key, val) -> user_iflags_iterator_t + Insert new (citem_locator_t, int32) pair into user_iflags_t. + + @param map: (C++: user_iflags_t *) + @param key: (C++: const citem_locator_t &) citem_locator_t const & + @param val: (C++: const int32 &) int32 const & + +Help on class user_iflags_iterator_t in module ida_hexrays: + +class user_iflags_iterator_t(builtins.object) + | Proxy of C++ user_iflags_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_iflags_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_iflags_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_iflags_iterator_t(...) + | delete_user_iflags_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_iflags_new in module ida_hexrays: + +user_iflags_new(*args) -> 'user_iflags_t *' + user_iflags_new() -> user_iflags_t + Create a new user_iflags_t instance. + +Help on function user_iflags_next in module ida_hexrays: + +user_iflags_next(*args) -> 'user_iflags_iterator_t' + user_iflags_next(p) -> user_iflags_iterator_t + Move to the next element. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_prev in module ida_hexrays: + +user_iflags_prev(*args) -> 'user_iflags_iterator_t' + user_iflags_prev(p) -> user_iflags_iterator_t + Move to the previous element. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_second in module ida_hexrays: + +user_iflags_second(*args) -> 'int32 const &' + user_iflags_second(p) -> int32 const & + Get reference to the current map value. + + @param p: (C++: user_iflags_iterator_t) + +Help on function user_iflags_size in module ida_hexrays: + +user_iflags_size(*args) -> 'size_t' + user_iflags_size(map) -> size_t + Get size of user_iflags_t. + + @param map: (C++: user_iflags_t *) + +Help on class user_iflags_t in module ida_hexrays: + +class user_iflags_t(builtins.object) + | Proxy of C++ std::map< citem_locator_t,int32 > class. + | + | Methods defined here: + | + | __begin = user_iflags_begin(...) + | user_iflags_begin(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | + | __clear = user_iflags_clear(...) + | user_iflags_clear(map) + | + | Parameters + | ---------- + | map: user_iflags_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_iflags_end(...) + | user_iflags_end(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | + | __erase = user_iflags_erase(...) + | user_iflags_erase(map, p) + | + | Parameters + | ---------- + | map: user_iflags_t * + | p: user_iflags_iterator_t + | + | __find = user_iflags_find(...) + | user_iflags_find(map, key) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * + | key: citem_locator_t const & + | + | __first = user_iflags_first(...) + | user_iflags_first(p) -> citem_locator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_iflags_t + | + | __insert = user_iflags_insert(...) + | user_iflags_insert(map, key, val) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | key: citem_locator_t const & + | val: int32 const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_iflags_next(...) + | user_iflags_next(p) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_iflags_second(...) + | user_iflags_second(p) -> int32 const & + | + | Parameters + | ---------- + | p: user_iflags_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_iflags_size(...) + | user_iflags_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | + | __swig_destroy__ = delete_user_iflags_t(...) + | delete_user_iflags_t(self) + | + | at(self, *args) -> 'int &' + | at(self, _Keyval) -> int & + | + | @param _Keyval: citem_locator_t const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.citem_locator_t'> + | Proxy of C++ citem_locator_t class. + | + | valuetype = <class 'int'> + | int(x=0) -> integer + | int(x, base=10) -> integer + | + | Convert a number or string to an integer, or return 0 if no arguments + | are given. If x is a number, return x.__int__(). For floating point + | numbers, this truncates towards zero. + | + | If x is not a number or if base is given, then x must be a string, + | bytes, or bytearray instance representing an integer literal in the + | given base. The literal can be preceded by '+' or '-' and be surrounded + | by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. + | Base 0 means to interpret the base from the string as an integer literal. + | >>> int('0b100', base=0) + | 4 + +Help on function user_labels_begin in module ida_hexrays: + +user_labels_begin(*args) -> 'user_labels_iterator_t' + user_labels_begin(map) -> user_labels_iterator_t + Get iterator pointing to the beginning of user_labels_t. + + @param map: (C++: const user_labels_t *) user_labels_t const * + +Help on function user_labels_clear in module ida_hexrays: + +user_labels_clear(*args) -> 'void' + user_labels_clear(map) + Clear user_labels_t. + + @param map: (C++: user_labels_t *) + +Help on function user_labels_end in module ida_hexrays: + +user_labels_end(*args) -> 'user_labels_iterator_t' + user_labels_end(map) -> user_labels_iterator_t + Get iterator pointing to the end of user_labels_t. + + @param map: (C++: const user_labels_t *) user_labels_t const * + +Help on function user_labels_erase in module ida_hexrays: + +user_labels_erase(*args) -> 'void' + user_labels_erase(map, p) + Erase current element from user_labels_t. + + @param map: (C++: user_labels_t *) + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_find in module ida_hexrays: + +user_labels_find(*args) -> 'user_labels_iterator_t' + user_labels_find(map, key) -> user_labels_iterator_t + Find the specified key in user_labels_t. + + @param map: (C++: const user_labels_t *) user_labels_t const * + @param key: (C++: const int &) int const & + +Help on function user_labels_first in module ida_hexrays: + +user_labels_first(*args) -> 'int const &' + user_labels_first(p) -> int const & + Get reference to the current map key. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_free in module ida_hexrays: + +user_labels_free(*args) -> 'void' + user_labels_free(map) + Delete user_labels_t instance. + + @param map: (C++: user_labels_t *) + +Help on function user_labels_insert in module ida_hexrays: + +user_labels_insert(*args) -> 'user_labels_iterator_t' + user_labels_insert(map, key, val) -> user_labels_iterator_t + Insert new (int, qstring) pair into user_labels_t. + + @param map: (C++: user_labels_t *) + @param key: (C++: const int &) int const & + @param val: (C++: const qstring &) qstring const & + +Help on class user_labels_iterator_t in module ida_hexrays: + +class user_labels_iterator_t(builtins.object) + | Proxy of C++ user_labels_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_labels_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_labels_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_labels_iterator_t(...) + | delete_user_labels_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_labels_new in module ida_hexrays: + +user_labels_new(*args) -> 'user_labels_t *' + user_labels_new() -> user_labels_t + Create a new user_labels_t instance. + +Help on function user_labels_next in module ida_hexrays: + +user_labels_next(*args) -> 'user_labels_iterator_t' + user_labels_next(p) -> user_labels_iterator_t + Move to the next element. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_prev in module ida_hexrays: + +user_labels_prev(*args) -> 'user_labels_iterator_t' + user_labels_prev(p) -> user_labels_iterator_t + Move to the previous element. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_second in module ida_hexrays: + +user_labels_second(*args) -> 'qstring &' + user_labels_second(p) -> qstring & + Get reference to the current map value. + + @param p: (C++: user_labels_iterator_t) + +Help on function user_labels_size in module ida_hexrays: + +user_labels_size(*args) -> 'size_t' + user_labels_size(map) -> size_t + Get size of user_labels_t. + + @param map: (C++: user_labels_t *) + +Help on class user_labels_t in module ida_hexrays: + +class user_labels_t(builtins.object) + | Proxy of C++ std::map< int,qstring > class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> user_labels_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_labels_t(...) + | delete_user_labels_t(self) + | + | at(self, *args) -> '_qstring< char > &' + | at(self, _Keyval) -> _qstring< char > & + | + | @param _Keyval: int const & + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class user_lvar_modifier_t in module ida_hexrays: + +class user_lvar_modifier_t(builtins.object) + | Proxy of C++ user_lvar_modifier_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> user_lvar_modifier_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_lvar_modifier_t(...) + | delete_user_lvar_modifier_t(self) + | + | modify_lvars(self, *args) -> 'bool' + | modify_lvars(self, lvinf) -> bool + | Modify lvar settings. Returns: true-modified + | + | @param lvinf: (C++: lvar_uservec_t *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function user_numforms_begin in module ida_hexrays: + +user_numforms_begin(*args) -> 'user_numforms_iterator_t' + user_numforms_begin(map) -> user_numforms_iterator_t + Get iterator pointing to the beginning of user_numforms_t. + + @param map: (C++: const user_numforms_t *) user_numforms_t const * + +Help on function user_numforms_clear in module ida_hexrays: + +user_numforms_clear(*args) -> 'void' + user_numforms_clear(map) + Clear user_numforms_t. + + @param map: (C++: user_numforms_t *) + +Help on function user_numforms_end in module ida_hexrays: + +user_numforms_end(*args) -> 'user_numforms_iterator_t' + user_numforms_end(map) -> user_numforms_iterator_t + Get iterator pointing to the end of user_numforms_t. + + @param map: (C++: const user_numforms_t *) user_numforms_t const * + +Help on function user_numforms_erase in module ida_hexrays: + +user_numforms_erase(*args) -> 'void' + user_numforms_erase(map, p) + Erase current element from user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_find in module ida_hexrays: + +user_numforms_find(*args) -> 'user_numforms_iterator_t' + user_numforms_find(map, key) -> user_numforms_iterator_t + Find the specified key in user_numforms_t. + + @param map: (C++: const user_numforms_t *) user_numforms_t const * + @param key: (C++: const operand_locator_t &) operand_locator_t const & + +Help on function user_numforms_first in module ida_hexrays: + +user_numforms_first(*args) -> 'operand_locator_t const &' + user_numforms_first(p) -> operand_locator_t + Get reference to the current map key. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_free in module ida_hexrays: + +user_numforms_free(*args) -> 'void' + user_numforms_free(map) + Delete user_numforms_t instance. + + @param map: (C++: user_numforms_t *) + +Help on function user_numforms_insert in module ida_hexrays: + +user_numforms_insert(*args) -> 'user_numforms_iterator_t' + user_numforms_insert(map, key, val) -> user_numforms_iterator_t + Insert new (operand_locator_t, number_format_t) pair into user_numforms_t. + + @param map: (C++: user_numforms_t *) + @param key: (C++: const operand_locator_t &) operand_locator_t const & + @param val: (C++: const number_format_t &) number_format_t const & + +Help on class user_numforms_iterator_t in module ida_hexrays: + +class user_numforms_iterator_t(builtins.object) + | Proxy of C++ user_numforms_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_numforms_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_numforms_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_numforms_iterator_t(...) + | delete_user_numforms_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_numforms_new in module ida_hexrays: + +user_numforms_new(*args) -> 'user_numforms_t *' + user_numforms_new() -> user_numforms_t + Create a new user_numforms_t instance. + +Help on function user_numforms_next in module ida_hexrays: + +user_numforms_next(*args) -> 'user_numforms_iterator_t' + user_numforms_next(p) -> user_numforms_iterator_t + Move to the next element. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_prev in module ida_hexrays: + +user_numforms_prev(*args) -> 'user_numforms_iterator_t' + user_numforms_prev(p) -> user_numforms_iterator_t + Move to the previous element. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_second in module ida_hexrays: + +user_numforms_second(*args) -> 'number_format_t &' + user_numforms_second(p) -> number_format_t + Get reference to the current map value. + + @param p: (C++: user_numforms_iterator_t) + +Help on function user_numforms_size in module ida_hexrays: + +user_numforms_size(*args) -> 'size_t' + user_numforms_size(map) -> size_t + Get size of user_numforms_t. + + @param map: (C++: user_numforms_t *) + +Help on class user_numforms_t in module ida_hexrays: + +class user_numforms_t(builtins.object) + | Proxy of C++ std::map< operand_locator_t,number_format_t > class. + | + | Methods defined here: + | + | __begin = user_numforms_begin(...) + | user_numforms_begin(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | + | __clear = user_numforms_clear(...) + | user_numforms_clear(map) + | + | Parameters + | ---------- + | map: user_numforms_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_numforms_end(...) + | user_numforms_end(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | + | __erase = user_numforms_erase(...) + | user_numforms_erase(map, p) + | + | Parameters + | ---------- + | map: user_numforms_t * + | p: user_numforms_iterator_t + | + | __find = user_numforms_find(...) + | user_numforms_find(map, key) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * + | key: operand_locator_t const & + | + | __first = user_numforms_first(...) + | user_numforms_first(p) -> operand_locator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_numforms_t + | + | __insert = user_numforms_insert(...) + | user_numforms_insert(map, key, val) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t * + | key: operand_locator_t const & + | val: number_format_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_numforms_next(...) + | user_numforms_next(p) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_numforms_second(...) + | user_numforms_second(p) -> number_format_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_numforms_size(...) + | user_numforms_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_numforms_t * + | + | __swig_destroy__ = delete_user_numforms_t(...) + | delete_user_numforms_t(self) + | + | at(self, *args) -> 'number_format_t &' + | at(self, _Keyval) -> number_format_t + | + | @param _Keyval: operand_locator_t const & + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = <class 'ida_hexrays.operand_locator_t'> + | Proxy of C++ operand_locator_t class. + | + | valuetype = <class 'ida_hexrays.number_format_t'> + | Proxy of C++ number_format_t class. + +Help on function user_unions_begin in module ida_hexrays: + +user_unions_begin(*args) -> 'user_unions_iterator_t' + user_unions_begin(map) -> user_unions_iterator_t + Get iterator pointing to the beginning of user_unions_t. + + @param map: (C++: const user_unions_t *) user_unions_t const * + +Help on function user_unions_clear in module ida_hexrays: + +user_unions_clear(*args) -> 'void' + user_unions_clear(map) + Clear user_unions_t. + + @param map: (C++: user_unions_t *) + +Help on function user_unions_end in module ida_hexrays: + +user_unions_end(*args) -> 'user_unions_iterator_t' + user_unions_end(map) -> user_unions_iterator_t + Get iterator pointing to the end of user_unions_t. + + @param map: (C++: const user_unions_t *) user_unions_t const * + +Help on function user_unions_erase in module ida_hexrays: + +user_unions_erase(*args) -> 'void' + user_unions_erase(map, p) + Erase current element from user_unions_t. + + @param map: (C++: user_unions_t *) + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_find in module ida_hexrays: + +user_unions_find(*args) -> 'user_unions_iterator_t' + user_unions_find(map, key) -> user_unions_iterator_t + Find the specified key in user_unions_t. + + @param map: (C++: const user_unions_t *) user_unions_t const * + @param key: (C++: const ea_t &) ea_t const & + +Help on function user_unions_first in module ida_hexrays: + +user_unions_first(*args) -> 'ea_t const &' + user_unions_first(p) -> ea_t const & + Get reference to the current map key. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_free in module ida_hexrays: + +user_unions_free(*args) -> 'void' + user_unions_free(map) + Delete user_unions_t instance. + + @param map: (C++: user_unions_t *) + +Help on function user_unions_insert in module ida_hexrays: + +user_unions_insert(*args) -> 'user_unions_iterator_t' + user_unions_insert(map, key, val) -> user_unions_iterator_t + Insert new (ea_t, intvec_t) pair into user_unions_t. + + @param map: (C++: user_unions_t *) + @param key: (C++: const ea_t &) ea_t const & + @param val: (C++: const intvec_t &) intvec_t const & + +Help on class user_unions_iterator_t in module ida_hexrays: + +class user_unions_iterator_t(builtins.object) + | Proxy of C++ user_unions_iterator_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & + | + | __init__(self, *args) + | __init__(self) -> user_unions_iterator_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, p) -> bool + | + | @param p: user_unions_iterator_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_unions_iterator_t(...) + | delete_user_unions_iterator_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | x + | x + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function user_unions_new in module ida_hexrays: + +user_unions_new(*args) -> 'user_unions_t *' + user_unions_new() -> user_unions_t + Create a new user_unions_t instance. + +Help on function user_unions_next in module ida_hexrays: + +user_unions_next(*args) -> 'user_unions_iterator_t' + user_unions_next(p) -> user_unions_iterator_t + Move to the next element. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_prev in module ida_hexrays: + +user_unions_prev(*args) -> 'user_unions_iterator_t' + user_unions_prev(p) -> user_unions_iterator_t + Move to the previous element. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_second in module ida_hexrays: + +user_unions_second(*args) -> 'intvec_t &' + user_unions_second(p) -> intvec_t + Get reference to the current map value. + + @param p: (C++: user_unions_iterator_t) + +Help on function user_unions_size in module ida_hexrays: + +user_unions_size(*args) -> 'size_t' + user_unions_size(map) -> size_t + Get size of user_unions_t. + + @param map: (C++: user_unions_t *) + +Help on class user_unions_t in module ida_hexrays: + +class user_unions_t(builtins.object) + | Proxy of C++ std::map< ea_t,intvec_t > class. + | + | Methods defined here: + | + | __begin = user_unions_begin(...) + | user_unions_begin(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | + | __clear = user_unions_clear(...) + | user_unions_clear(map) + | + | Parameters + | ---------- + | map: user_unions_t * + | + | __contains__ = _map___contains__(self, key) + | Returns true if the specified key exists in the . + | + | __delitem__ = _map___delitem__(self, key) + | Removes the value associated with the provided key. + | + | __end = user_unions_end(...) + | user_unions_end(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | + | __erase = user_unions_erase(...) + | user_unions_erase(map, p) + | + | Parameters + | ---------- + | map: user_unions_t * + | p: user_unions_iterator_t + | + | __find = user_unions_find(...) + | user_unions_find(map, key) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | key: ea_t const & + | + | __first = user_unions_first(...) + | user_unions_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: user_unions_iterator_t + | + | __getitem__ = _map___getitem__(self, key) + | Returns the value associated with the provided key. + | + | __init__(self, *args) + | __init__(self) -> user_unions_t + | + | __insert = user_unions_insert(...) + | user_unions_insert(map, key, val) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t * + | key: ea_t const & + | val: intvec_t const & + | + | __iter__ = _map___iter__(self) + | Iterate over dictionary keys. + | + | __len__ = size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | __next = user_unions_next(...) + | user_unions_next(p) -> user_unions_iterator_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t + | + | __repr__ = _swig_repr(self) + | + | __second = user_unions_second(...) + | user_unions_second(p) -> intvec_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t + | + | __setitem__ = _map___setitem__(self, key, value) + | Returns the value associated with the provided key. + | + | __size = user_unions_size(...) + | user_unions_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_unions_t * + | + | __swig_destroy__ = delete_user_unions_t(...) + | delete_user_unions_t(self) + | + | at(self, *args) -> 'qvector< int > &' + | at(self, _Keyval) -> intvec_t + | + | @param _Keyval: unsigned-ea-like-numeric-type const &↗ + | + | begin lambda self, *args + | + | clear = _map_clear(self) + | + | copy = _map_copy(self) + | + | end lambda self, *args + | + | erase lambda self, *args + | + | find lambda self, *args + | + | first lambda self, *args + | + | get = _map_get(self, key, default=None) + | + | has_key = _map_has_key(self, key) + | + | insert lambda self, *args + | + | items = _map_items(self) + | + | iteritems = _map_iteritems(self) + | + | iterkeys = _map_iterkeys(self) + | + | itervalues = _map_itervalues(self) + | + | keys = _map_keys(self) + | + | next lambda self, *args + | + | pop = _map_pop(self, key) + | Sets the value associated with the provided key. + | + | popitem = _map_popitem(self) + | Sets the value associated with the provided key. + | + | second lambda self, *args + | + | setdefault = _map_setdefault(self, key, default=None) + | Sets the value associated with the provided key. + | + | size lambda self, *args + | + | values = _map_values(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | keytype = (<class 'int'>,) + | + | valuetype = <class 'ida_pro.intvec_t'> + | Proxy of C++ qvector< int > class. + +Help on class uval_ivl_ivlset_t in module ida_hexrays: + +class uval_ivl_ivlset_t(builtins.object) + | Proxy of C++ ivlset_tpl< ivl_t,uval_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, v) -> bool + | + | @param v: ivl_t const & + | + | __init__(self, *args) + | __init__(self) -> uval_ivl_ivlset_t + | __init__(self, ivl) -> uval_ivl_ivlset_t + | + | @param ivl: ivl_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, v) -> bool + | + | @param v: ivl_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_uval_ivl_ivlset_t(...) + | delete_uval_ivl_ivlset_t(self) + | + | all_values(self, *args) -> 'bool' + | all_values(self) -> bool + | + | begin(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | begin(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator'↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::const_iterator↗ + | end(self) -> ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::iterator↗ + | + | getivl(self, *args) -> 'ivl_t const &' + | getivl(self, idx) -> ivl_t + | + | @param idx: int + | + | lastivl(self, *args) -> 'ivl_t const &' + | lastivl(self) -> ivl_t + | + | nivls(self, *args) -> 'size_t' + | nivls(self) -> size_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | set_all_values(self, *args) -> 'void' + | set_all_values(self) + | + | single_value(self, *args) -> 'bool' + | single_value(self) -> bool + | single_value(self, v) -> bool + | + | @param v: unsigned-ea-like-numeric-type↗ + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: ivlset_tpl< ivl_t,uval_t > & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class uval_ivl_t in module ida_hexrays: + +class uval_ivl_t(builtins.object) + | Proxy of C++ ivl_tpl< uval_t > class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _off, _size) -> uval_ivl_t + | + | @param _off: unsigned-ea-like-numeric-type↗ + | @param _size: unsigned-ea-like-numeric-type↗ + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_uval_ivl_t(...) + | delete_uval_ivl_t(self) + | + | end(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | end(self) -> unsigned-ea-like-numeric-type↗ + | + | last(self, *args) -> 'unsigned-ea-like-numeric-type'↗ + | last(self) -> unsigned-ea-like-numeric-type↗ + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | size + | size + | + | thisown + | The membership flag + +Help on class valrng_t in module ida_hexrays: + +class valrng_t(builtins.object) + | Proxy of C++ valrng_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __init__(self, *args) + | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | + | @param size_: int + | + | __init__(self, r) -> valrng_t + | + | @param r: valrng_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: valrng_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_valrng_t(...) + | delete_valrng_t(self) + | + | _deregister(self, *args) -> 'void' + | _deregister(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | _register(self, *args) -> 'void' + | _register(self) + | + | all_values(self, *args) -> 'bool' + | all_values(self) -> bool + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: valrng_t const & + | + | cvt_to_cmp(self, *args) -> 'bool' + | cvt_to_cmp(self, strict) -> bool + | + | @param strict: bool + | + | cvt_to_single_value(self, *args) -> 'bool' + | cvt_to_single_value(self) -> bool + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | get_size(self, *args) -> 'int' + | get_size(self) -> int + | + | has(self, *args) -> 'bool' + | has(self, v) -> bool + | + | @param v: uvlr_t + | + | intersect_with(self, *args) -> 'bool' + | intersect_with(self, r) -> bool + | + | @param r: valrng_t const & + | + | inverse(self, *args) -> 'void' + | inverse(self) + | + | is_unknown(self, *args) -> 'bool' + | is_unknown(self) -> bool + | + | max_svalue(self, *args) -> 'uvlr_t' + | max_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | + | max_svalue(self) -> uvlr_t + | + | max_value(self, *args) -> 'uvlr_t' + | max_value(self, size_) -> uvlr_t + | + | @param size_: int + | + | max_value(self) -> uvlr_t + | + | min_svalue(self, *args) -> 'uvlr_t' + | min_svalue(self, size_) -> uvlr_t + | + | @param size_: int + | + | min_svalue(self) -> uvlr_t + | + | reduce_size(self, *args) -> 'bool' + | reduce_size(self, new_size) -> bool + | + | @param new_size: int + | + | set_all(self, *args) -> 'void' + | set_all(self) + | + | set_cmp(self, *args) -> 'void' + | set_cmp(self, cmp, _value) + | + | @param cmp: enum cmpop_t + | @param _value: uvlr_t + | + | set_eq(self, *args) -> 'void' + | set_eq(self, v) + | + | @param v: uvlr_t + | + | set_none(self, *args) -> 'void' + | set_none(self) + | + | set_unk(self, *args) -> 'void' + | set_unk(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: valrng_t & + | + | unite_with(self, *args) -> 'bool' + | unite_with(self, r) -> bool + | + | @param r: valrng_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class var_ref_t in module ida_hexrays: + +class var_ref_t(builtins.object) + | Proxy of C++ var_ref_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __init__(self, *args) + | __init__(self) -> var_ref_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: var_ref_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_var_ref_t(...) + | delete_var_ref_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: var_ref_t const & + | + | getv(self, *args) -> 'lvar_t &' + | getv(self) -> lvar_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | idx + | idx + | + | mba + | mba + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class vc_printer_t in module ida_hexrays: + +class vc_printer_t(vd_printer_t) + | Proxy of C++ vc_printer_t class. + | + | Method resolution order: + | vc_printer_t + | vd_printer_t + | builtins.object + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, f) -> vc_printer_t + | + | @param f: cfunc_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vc_printer_t(...) + | delete_vc_printer_t(self) + | + | oneliner(self, *args) -> 'bool' + | oneliner(self) -> bool + | Are we generating one-line text representation? + | + | @return: true if the output will occupy one line without line breaks + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | func + | func + | + | lastchar + | lastchar + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from vd_printer_t: + | + | _print(self, *args) -> 'int' + | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vd_printer_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hdrlines + | hdrlines + | + | tmpbuf + | tmpbuf + +Help on class vd_failure_t in module ida_hexrays: + +class vd_failure_t(builtins.object) + | Proxy of C++ vd_failure_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> vd_failure_t + | __init__(self, code, ea, buf=None) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: char const * + | + | __init__(self, code, ea, buf) -> vd_failure_t + | + | @param code: enum merror_t + | @param ea: ea_t + | @param buf: qstring const & + | + | __init__(self, _hf) -> vd_failure_t + | + | @param _hf: hexrays_failure_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vd_failure_t(...) + | delete_vd_failure_t(self) + | + | desc(self, *args) -> 'qstring' + | desc(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hf + | hf + | + | thisown + | The membership flag + +Help on class vd_interr_t in module ida_hexrays: + +class vd_interr_t(vd_failure_t) + | Proxy of C++ vd_interr_t class. + | + | Method resolution order: + | vd_interr_t + | vd_failure_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ea, buf) -> vd_interr_t + | + | @param ea: ea_t + | @param buf: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vd_interr_t(...) + | delete_vd_interr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from vd_failure_t: + | + | desc(self, *args) -> 'qstring' + | desc(self) -> qstring + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from vd_failure_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hf + | hf + +Help on class vd_printer_t in module ida_hexrays: + +class vd_printer_t(builtins.object) + | Proxy of C++ vd_printer_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> vd_printer_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vd_printer_t(...) + | delete_vd_printer_t(self) + | + | _print(self, *args) -> 'int' + | _print(self, indent, format) -> int + | + | Parameters + | ---------- + | indent: int + | format: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hdrlines + | hdrlines + | + | thisown + | The membership flag + | + | tmpbuf + | tmpbuf + +Help on class vdloc_t in module ida_hexrays: + +class vdloc_t(ida_typeinf.argloc_t) + | Proxy of C++ vdloc_t class. + | + | Method resolution order: + | vdloc_t + | ida_typeinf.argloc_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __init__(self, *args) + | __init__(self) -> vdloc_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: vdloc_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vdloc_t(...) + | delete_vdloc_t(self) + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, r1) + | + | Parameters + | ---------- + | r1: int + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: vdloc_t const & + | + | is_aliasable(self, *args) -> 'bool' + | is_aliasable(self, mb, size) -> bool + | + | @param mb: mba_t const * + | @param size: int + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, r1) + | + | @param r1: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_typeinf.argloc_t: + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_typeinf.argloc_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class vdui_t in module ida_hexrays: + +class vdui_t(builtins.object) + | Proxy of C++ vdui_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vdui_t(...) + | delete_vdui_t(self) + | + | calc_cmt_type(self, *args) -> 'cmt_type_t' + | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | Check if the specified line can have a comment. Due to the coordinate system for + | comments: (\link{https://www.hex-rays.com/blog/coordinate-system-for-hex-rays}) + | some function lines cannot have comments. This function checks if a comment can + | be attached to the specified line. + | + | @param lnnum: (C++: size_t) line number (0 based) + | @param cmttype: (C++: cmt_type_t) comment types to check + | @return: possible comment types + | + | clear(self, *args) -> 'void' + | clear(self) + | Clear the pseudocode window. It deletes the current function and microcode. + | + | collapse_item(self, *args) -> 'bool' + | collapse_item(self, hide) -> bool + | Collapse/uncollapse item. This function collapses the current item. + | + | @param hide: (C++: bool) + | @return: false if failed. + | + | collapse_lvars(self, *args) -> 'bool' + | collapse_lvars(self, hide) -> bool + | Collapse/uncollapse local variable declarations. + | + | @param hide: (C++: bool) + | @return: false if failed. + | + | ctree_to_disasm(self, *args) -> 'bool' + | ctree_to_disasm(self) -> bool + | Jump to disassembly. This function jumps to the address in the disassembly + | window which corresponds to the current item. The current item is determined + | based on the current keyboard cursor position. + | + | @return: false if failed + | + | del_orphan_cmts(self, *args) -> 'bool' + | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the screen. + | + | @return: true + | + | edit_cmt(self, *args) -> 'bool' + | edit_cmt(self, loc) -> bool + | Edit an indented comment. This function displays a dialog box and allows the + | user to edit the comment for the specified ctree location. + | + | @param loc: (C++: const treeloc_t &) comment location + | @return: false if failed or cancelled + | + | edit_func_cmt(self, *args) -> 'bool' + | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and allows the user + | to edit the function comment. + | + | @return: false if failed or cancelled + | + | get_current_item(self, *args) -> 'bool' + | get_current_item(self, idv) -> bool + | Get current item. This function refreshes the cpos, item, tail fields. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @see: cfunc_t::get_line_item() + | @return: false if failed + | + | get_current_label(self, *args) -> 'int' + | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its number. + | + | @return: -1 if there is no label under the cursor. prereq: get_current_item() + | has been called + | + | get_number(self, *args) -> 'cnumber_t *' + | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to it. + | + | @return: nullptr if the current item is not a number This function returns non- + | null for the cases of a 'switch' statement Also, if the current item is + | a casted number, then this function will succeed. + | + | in_ctree(self, *args) -> 'bool' + | in_ctree(self) -> bool + | Is the current item a statement? + | + | @return: false if the cursor is in the local variable/type declaration area + | true if the cursor is in the statement area + | + | invert_bits(self, *args) -> 'bool' + | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current number. + | + | @return: false if failed. + | + | invert_sign(self, *args) -> 'bool' + | invert_sign(self) -> bool + | Negate a number. This function negates the current number. + | + | @return: false if failed. + | + | jump_enter(self, *args) -> 'bool' + | jump_enter(self, idv, omflags) -> bool + | Process the Enter key. This function jumps to the definition of the item under + | the cursor. If the current item is a function, it will be decompiled. If the + | current item is a global data, its disassemly text will be displayed. + | + | @param idv: (C++: input_device_t) what cursor must be used, the keyboard or the mouse + | @param omflags: (C++: int) OM_NEWWIN: new pseudocode window will open, 0: reuse the + | existing window + | @return: false if failed + | + | locked(self, *args) -> 'bool' + | locked(self) -> bool + | Does the pseudocode window contain valid code? We lock windows before modifying + | them, to avoid recursion due to the events generated by the IDA kernel. + | @retval true: The window is locked and may have stale info + | + | map_lvar(self, *args) -> 'bool' + | map_lvar(self, frm, to) -> bool + | Map a local variable to another. This function permanently maps one lvar to + | another. All occurrences of the mapped variable are replaced by the new variable + | + | @param from: (C++: lvar_t *) the variable being mapped + | @param to: (C++: lvar_t *) the variable to map to. if nullptr, unmaps the variable + | @return: false if failed + | + | refresh_cpos(self, *args) -> 'bool' + | refresh_cpos(self, idv) -> bool + | Refresh the current position. This function refreshes the cpos field. + | + | @param idv: (C++: input_device_t) keyboard or mouse + | @return: false if failed + | + | refresh_ctext(self, *args) -> 'void' + | refresh_ctext(self, activate=True) + | Refresh pseudocode window. This function refreshes the pseudocode window by + | regenerating its text from cfunc_t. Instead of this function use + | refresh_func_ctext(), which refreshes all pseudocode windows for the function. + | @see: refresh_view(), refresh_func_ctext() + | + | @param activate: (C++: bool) + | + | refresh_view(self, *args) -> 'void' + | refresh_view(self, redo_mba) + | Refresh pseudocode window. This is the highest level refresh function. It causes + | the most profound refresh possible and can lead to redecompilation of the + | current function. Please consider using refresh_ctext() if you need a more + | superficial refresh. + | + | @param redo_mba: (C++: bool) true means to redecompile the current function + | false means to rebuild ctree without regenerating microcode + | @see: refresh_ctext() + | + | rename_global(self, *args) -> 'bool' + | rename_global(self, ea) -> bool + | Rename global item. This function displays a dialog box and allows the user to + | rename a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled + | + | rename_label(self, *args) -> 'bool' + | rename_label(self, label) -> bool + | Rename a label. This function displays a dialog box and allows the user to + | rename a statement label. + | + | @param label: (C++: int) label number + | @return: false if failed or cancelled + | + | rename_lvar(self, *args) -> 'bool' + | rename_lvar(self, v, name, is_user_name) -> bool + | Rename local variable. This function permanently renames a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param name: (C++: const char *) new variable name + | @param is_user_name: (C++: bool) use true to save the new name into the database. use false + | to delete the saved name. + | @see: ::rename_lvar() + | @return: false if failed + | + | rename_strmem(self, *args) -> 'bool' + | rename_strmem(self, sptr, mptr) -> bool + | Rename structure field. This function displays a dialog box and allows the user + | to rename a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled + | + | set_global_type(self, *args) -> 'bool' + | set_global_type(self, ea) -> bool + | Set global item type. This function displays a dialog box and allows the user to + | change the type of a global item (data or function). + | + | @param ea: (C++: ea_t) address of the global item + | @return: false if failed or cancelled + | + | set_locked(self, *args) -> 'bool' + | set_locked(self, v) -> bool + | + | @param v: bool + | + | set_lvar_cmt(self, *args) -> 'bool' + | set_lvar_cmt(self, v, cmt) -> bool + | Set local variable comment. This function permanently sets a variable comment. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param cmt: (C++: const char *) new comment + | @return: false if failed + | + | set_lvar_type(self, *args) -> 'bool' + | set_lvar_type(self, v, type) -> bool + | Set local variable type. This function permanently sets a local variable type + | and clears NOPTR flag if it was set before by function 'set_noptr_lvar' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @param type: (C++: const tinfo_t &) new variable type + | @return: false if failed + | + | set_noptr_lvar(self, *args) -> 'bool' + | set_noptr_lvar(self, v) -> bool + | Inform that local variable should have a non-pointer type This function + | permanently sets a corresponding variable flag (NOPTR) and removes type if it + | was set before by function 'set_lvar_type' + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed + | + | set_num_enum(self, *args) -> 'bool' + | set_num_enum(self) -> bool + | Convert number to symbolic constant. This function displays a dialog box and + | allows the user to select a symbolic constant to represent the number. + | + | @return: false if failed or cancelled + | + | set_num_radix(self, *args) -> 'bool' + | set_num_radix(self, base) -> bool + | Change number base. This function changes the current number representation. + | + | @param base: (C++: int) number radix (10 or 16) + | 0 means a character constant + | @return: false if failed + | + | set_num_stroff(self, *args) -> 'bool' + | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. + | + | @return: false if failed or cancelled + | + | set_strmem_type(self, *args) -> 'bool' + | set_strmem_type(self, sptr, mptr) -> bool + | Set structure field type. This function displays a dialog box and allows the + | user to change the type of a structure field. + | + | @param sptr: (C++: struc_t *) pointer to structure + | @param mptr: (C++: member_t *) pointer to structure member + | @return: false if failed or cancelled + | + | set_valid(self, *args) -> 'void' + | set_valid(self, v) + | + | @param v: bool + | + | set_visible(self, *args) -> 'void' + | set_visible(self, v) + | + | @param v: bool + | + | split_item(self, *args) -> 'bool' + | split_item(self, split) -> bool + | Split/unsplit item. This function splits the current assignment expression. + | + | @param split: (C++: bool) + | @return: false if failed. + | + | switch_to(self, *args) -> 'void' + | switch_to(self, f, activate) + | Display the specified pseudocode. This function replaces the pseudocode window + | contents with the specified cfunc_t. + | + | @param f: (C++: cfuncptr_t) pointer to the function to display. + | @param activate: (C++: bool) should the pseudocode window get focus? + | + | ui_edit_lvar_cmt(self, *args) -> 'bool' + | ui_edit_lvar_cmt(self, v) -> bool + | Set local variable comment. This function displays a dialog box and allows the + | user to edit the comment of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_map_lvar(self, *args) -> 'bool' + | ui_map_lvar(self, v) -> bool + | Map a local variable to another. This function displays a variable list and + | allows the user to select mapping. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_rename_lvar(self, *args) -> 'bool' + | ui_rename_lvar(self, v) -> bool + | Rename local variable. This function displays a dialog box and allows the user + | to rename a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_set_call_type(self, *args) -> 'bool' + | ui_set_call_type(self, e) -> bool + | Set type of a function call This function displays a dialog box and allows the + | user to change the type of a function call + | + | @param e: (C++: const cexpr_t *) pointer to call expression + | @return: false if failed or cancelled + | + | ui_set_lvar_type(self, *args) -> 'bool' + | ui_set_lvar_type(self, v) -> bool + | Set local variable type. This function displays a dialog box and allows the user + | to change the type of a local variable. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | ui_unmap_lvar(self, *args) -> 'bool' + | ui_unmap_lvar(self, v) -> bool + | Unmap a local variable. This function displays list of variables mapped to the + | specified variable and allows the user to select a variable to unmap. + | + | @param v: (C++: lvar_t *) pointer to local variable + | @return: false if failed or cancelled + | + | valid(self, *args) -> 'bool' + | valid(self) -> bool + | Does the pseudocode window contain valid code? It can become invalid if the + | function type gets changed in IDA. + | + | visible(self, *args) -> 'bool' + | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or destroyed + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cfunc + | cfunc + | + | cpos + | cpos + | + | ct + | ct + | + | flags + | flags + | + | head + | head + | + | item + | item + | + | last_code + | last_code + | + | mba + | mba + | + | tail + | tail + | + | thisown + | The membership flag + | + | toplevel + | toplevel + | + | view_idx + | view_idx + +Help on class vivl_t in module ida_hexrays: + +class vivl_t(voff_t) + | Proxy of C++ vivl_t class. + | + | Method resolution order: + | vivl_t + | voff_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __eq__(self, mop) -> bool + | + | @param mop: mop_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __init__(self, *args) + | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | + | __init__(self, ch) -> vivl_t + | + | @param ch: chain_t const & + | + | __init__(self, op) -> vivl_t + | + | @param op: mop_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: vivl_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_vivl_t(...) + | delete_vivl_t(self) + | + | _print(self, *args) -> 'void' + | _print(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: vivl_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, voff2) -> bool + | Does our value interval contain the specified value offset? + | + | @param voff2: (C++: const voff_t &) voff_t const & + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | + | extend_to_cover(self, *args) -> 'bool' + | extend_to_cover(self, r) -> bool + | Extend a value interval using another value interval of the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: success + | + | includes(self, *args) -> 'bool' + | includes(self, r) -> bool + | Does our value interval include another? + | + | @param r: (C++: const vivl_t &) vivl_t const & + | + | intersect(self, *args) -> 'uval_t' + | intersect(self, r) -> uval_t + | Intersect value intervals the same type + | + | @param r: (C++: const vivl_t &) vivl_t const & + | @return: size of the resulting intersection + | + | overlap(self, *args) -> 'bool' + | overlap(self, r) -> bool + | Do two value intervals overlap? + | + | @param r: (C++: const vivl_t &) vivl_t const & + | + | set(self, *args) -> 'void' + | set(self, _type, _off, _size=0) + | + | @param _type: mopt_t + | @param _off: sval_t + | @param _size: int + | + | set(self, voff, _size) + | + | @param voff: voff_t const & + | @param _size: int + | + | set_reg(self, *args) -> 'void' + | set_reg(self, mreg, sz=0) + | + | @param mreg: mreg_t + | @param sz: int + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, stkoff, sz=0) + | + | @param stkoff: sval_t + | @param sz: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | size + | size + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from voff_t: + | + | add(self, *args) -> 'voff_t' + | add(self, width) -> voff_t + | + | @param width: int + | + | defined(self, *args) -> 'bool' + | defined(self) -> bool + | + | diff(self, *args) -> 'sval_t' + | diff(self, r) -> sval_t + | + | @param r: voff_t const & + | + | get_reg(self, *args) -> 'mreg_t' + | get_reg(self) -> mreg_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | + | inc(self, *args) -> 'void' + | inc(self, delta) + | + | @param delta: sval_t + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | + | undef(self, *args) -> 'void' + | undef(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from voff_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | type + | type + +Help on class voff_t in module ida_hexrays: + +class voff_t(builtins.object) + | Proxy of C++ voff_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: voff_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: voff_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: voff_t const & + | + | __init__(self, *args) + | __init__(self) -> voff_t + | __init__(self, _type, _off) -> voff_t + | + | @param _type: mopt_t + | @param _off: sval_t + | + | __init__(self, op) -> voff_t + | + | @param op: mop_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: voff_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: voff_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: voff_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_voff_t(...) + | delete_voff_t(self) + | + | add(self, *args) -> 'voff_t' + | add(self, width) -> voff_t + | + | @param width: int + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: voff_t const & + | + | defined(self, *args) -> 'bool' + | defined(self) -> bool + | + | diff(self, *args) -> 'sval_t' + | diff(self, r) -> sval_t + | + | @param r: voff_t const & + | + | get_reg(self, *args) -> 'mreg_t' + | get_reg(self) -> mreg_t + | + | get_stkoff(self, *args) -> 'sval_t' + | get_stkoff(self) -> sval_t + | + | inc(self, *args) -> 'void' + | inc(self, delta) + | + | @param delta: sval_t + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | + | set(self, *args) -> 'void' + | set(self, _type, _off) + | + | @param _type: mopt_t + | @param _off: sval_t + | + | set_reg(self, *args) -> 'void' + | set_reg(self, mreg) + | + | @param mreg: mreg_t + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, stkoff) + | + | @param stkoff: sval_t + | + | undef(self, *args) -> 'void' + | undef(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_ida"s docstring: +""" +Contains the inf structure definition and some functions common to the whole IDA +project. + +The inf structure is saved in the database and contains information specific to +the current program being disassembled. Initially it is filled with values from +ida.cfg. + +Although it is not a good idea to change values in inf structure (because you +will overwrite values taken from ida.cfg), you are allowed to do it if you feel +it necessary.""" + +Help on function __make_idainfo_accessors in module ida_ida: + +__make_idainfo_accessors(attr, getter_name=None, setter_name=None) + +Help on function __make_idainfo_bound in module ida_ida: + +__make_idainfo_bound(func, attr) + +Help on function __make_idainfo_getter in module ida_ida: + +__make_idainfo_getter(name) + +Help on function __set_module_dynattrs in module ida_ida: + +__set_module_dynattrs(modname, pdict) + +Help on function __wrap_hooks_callback in module ida_ida: + +__wrap_hooks_callback(klass, new_name, old_name, do_call) + +Help on function calc_default_idaplace_flags in module ida_ida: + +calc_default_idaplace_flags(*args) -> 'int' + calc_default_idaplace_flags() -> int + Get default disassembly line options. + +Help on class compiler_info_t in module ida_ida: + +class compiler_info_t(builtins.object) + | Proxy of C++ compiler_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> compiler_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_compiler_info_t(...) + | delete_compiler_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cm + | cm + | + | defalign + | defalign + | + | id + | id + | + | size_b + | size_b + | + | size_e + | size_e + | + | size_i + | size_i + | + | size_l + | size_l + | + | size_ldbl + | size_ldbl + | + | size_ll + | size_ll + | + | size_s + | size_s + | + | thisown + | The membership flag + +Help on function delinf in module ida_ida: + +delinf(*args) -> 'bool' + delinf(tag) -> bool + Undefine a program specific information + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: success + +Help on function get_dbctx_id in module ida_ida: + +get_dbctx_id(*args) -> 'ssize_t' + get_dbctx_id() -> ssize_t + Get the current database context ID + + @return: the database context ID, or -1 if no current database + +Help on function get_dbctx_qty in module ida_ida: + +get_dbctx_qty(*args) -> 'size_t' + get_dbctx_qty() -> size_t + Get number of database contexts + + @return: number of database contexts + +Help on function getinf_str in module ida_ida: + +getinf_str(*args) -> 'qstring *' + getinf_str(tag) -> str + Get program specific information (a non-scalar value) + + @param tag: (C++: inftag_t) one of inftag_t constants + @return: number of bytes stored in the buffer (<0 - not defined) + +Help on class idainfo in module ida_ida: + +class idainfo(builtins.object) + | Proxy of C++ idainfo class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | _get_lflags(self, *args) -> 'uint32' + | _get_lflags(self) -> uint32 + | + | _set_lflags(self, *args) -> 'void' + | _set_lflags(self, _f) + | + | Parameters + | ---------- + | _f: uint32 + | + | big_arg_align = __func(self, *args) + | + | gen_lzero = __func(self, *args) + | + | gen_null = __func(self, *args) + | + | gen_tryblks = __func(self, *args) + | + | get_abiname(self, *args) -> 'qstring' + | get_abiname(self) -> qstring + | + | get_demname_form = __func(self, *args) + | + | get_pack_mode = __func(self, *args) + | + | is_32bit = __func(self, *args) + | + | is_64bit = __func(self, *args) + | + | is_auto_enabled = __func(self, *args) + | + | is_be = __func(self, *args) + | + | is_dll = __func(self, *args) + | + | is_flat_off32 = __func(self, *args) + | + | is_graph_view = __func(self, *args) + | + | is_hard_float = __func(self, *args) + | + | is_kernel_mode = __func(self, *args) + | + | is_mem_aligned4 = __func(self, *args) + | + | is_snapshot = __func(self, *args) + | + | is_wide_high_byte_first = __func(self, *args) + | + | like_binary = __func(self, *args) + | + | line_pref_with_seg = __func(self, *args) + | + | loading_idc = __func(self, *args) + | + | map_stkargs = __func(self, *args) + | + | pack_stkargs = __func(self, *args) + | + | readonly_idb = __func(self, *args) + | + | set_64bit = __func(self, *args) + | + | set_auto_enabled = __func(self, *args) + | + | set_be = __func(self, *args) + | + | set_gen_lzero = __func(self, *args) + | + | set_gen_null = __func(self, *args) + | + | set_gen_tryblks = __func(self, *args) + | + | set_graph_view = __func(self, *args) + | + | set_line_pref_with_seg = __func(self, *args) + | + | set_pack_mode = __func(self, *args) + | + | set_show_auto = __func(self, *args) + | + | set_show_line_pref = __func(self, *args) + | + | set_show_void = __func(self, *args) + | + | set_wide_high_byte_first = __func(self, *args) + | + | show_auto = __func(self, *args) + | + | show_line_pref = __func(self, *args) + | + | show_void = __func(self, *args) + | + | stack_ldbl = __func(self, *args) + | + | stack_varargs = __func(self, *args) + | + | use_allasm = __func(self, *args) + | + | use_gcc_layout = __func(self, *args) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | abibits + | abibits + | + | abiname + | get_abiname(self) -> qstring + | + | af + | af + | + | af2 + | af2 + | + | appcall_options + | appcall_options + | + | apptype + | apptype + | + | asmtype + | asmtype + | + | baseaddr + | baseaddr + | + | bin_prefix_size + | bin_prefix_size + | + | cc + | cc + | + | cmt_indent + | cmt_indent + | + | database_change_count + | database_change_count + | + | datatypes + | datatypes + | + | demnames + | demnames + | + | filetype + | filetype + | + | highoff + | highoff + | + | indent + | indent + | + | lenxref + | lenxref + | + | lflags + | _get_lflags(self) -> uint32 + | + | listnames + | listnames + | + | long_demnames + | long_demnames + | + | lowoff + | lowoff + | + | main + | main + | + | margin + | margin + | + | maxEA + | + | max_autoname_len + | max_autoname_len + | + | max_ea + | max_ea + | + | maxref + | maxref + | + | minEA + | + | min_ea + | min_ea + | + | nametype + | nametype + | + | omax_ea + | omax_ea + | + | omin_ea + | omin_ea + | + | ostype + | ostype + | + | outflags + | outflags + | + | procName + | + | procname + | procname + | + | refcmtnum + | refcmtnum + | + | s_cmtflg + | s_cmtflg + | + | s_genflags + | s_genflags + | + | s_limiter + | s_limiter + | + | s_prefflag + | s_prefflag + | + | s_xrefflag + | s_xrefflag + | + | short_demnames + | short_demnames + | + | specsegs + | specsegs + | + | start_cs + | start_cs + | + | start_ea + | start_ea + | + | start_ip + | start_ip + | + | start_sp + | start_sp + | + | start_ss + | start_ss + | + | strlit_break + | strlit_break + | + | strlit_flags + | strlit_flags + | + | strlit_pref + | strlit_pref + | + | strlit_sernum + | strlit_sernum + | + | strlit_zeroes + | strlit_zeroes + | + | strtype + | strtype + | + | tag + | tag + | + | thisown + | The membership flag + | + | type_xrefnum + | type_xrefnum + | + | version + | version + | + | xrefnum + | xrefnum + +Help on function inf_big_arg_align in module ida_ida: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + + inf_big_arg_align() -> bool + +Help on function inf_get_cmt_indent in module ida_ida: + +inf_get_cmt_indent(*args) -> 'uchar' + inf_get_cmt_indent() -> uchar + +Help on function inf_set_cmt_indent in module ida_ida: + +inf_set_cmt_indent(*args) -> 'bool' + inf_set_cmt_indent(_v) -> bool + + @param _v: uchar + +Help on function inf_gen_lzero in module ida_ida: + +inf_gen_lzero(*args) -> 'bool' + inf_gen_lzero() -> bool + +Help on function inf_gen_null in module ida_ida: + +inf_gen_null(*args) -> 'bool' + inf_gen_null() -> bool + +Help on function inf_gen_tryblks in module ida_ida: + +inf_gen_tryblks(*args) -> 'bool' + inf_gen_tryblks() -> bool + +Help on function inf_get_demname_form in module ida_ida: + +inf_get_demname_form(*args) -> 'uchar' + inf_get_demname_form() -> uchar + Get DEMNAM_MASK bits of #demnames. + +Help on function inf_get_pack_mode in module ida_ida: + +inf_get_pack_mode(*args) -> 'int' + inf_get_pack_mode() -> int + +Help on function idainfo_is_32bit in module ida_ida: + +idainfo_is_32bit() + +Help on function inf_is_64bit in module ida_ida: + +inf_is_64bit(*args) -> 'bool' + inf_is_64bit() -> bool + +Help on function inf_is_auto_enabled in module ida_ida: + +inf_is_auto_enabled(*args) -> 'bool' + inf_is_auto_enabled() -> bool + +Help on function inf_is_be in module ida_ida: + +inf_is_be(*args) -> 'bool' + inf_is_be() -> bool + +Help on function inf_is_dll in module ida_ida: + +inf_is_dll(*args) -> 'bool' + inf_is_dll() -> bool + +Help on function inf_is_flat_off32 in module ida_ida: + +inf_is_flat_off32(*args) -> 'bool' + inf_is_flat_off32() -> bool + +Help on function inf_is_graph_view in module ida_ida: + +inf_is_graph_view(*args) -> 'bool' + inf_is_graph_view() -> bool + +Help on function inf_is_hard_float in module ida_ida: + +inf_is_hard_float(*args) -> 'bool' + inf_is_hard_float() -> bool + +Help on function inf_is_kernel_mode in module ida_ida: + +inf_is_kernel_mode(*args) -> 'bool' + inf_is_kernel_mode() -> bool + +Help on function inf_is_mem_aligned4 in module ida_ida: + +inf_is_mem_aligned4(*args) -> 'bool' + inf_is_mem_aligned4() -> bool + +Help on function inf_is_snapshot in module ida_ida: + +inf_is_snapshot(*args) -> 'bool' + inf_is_snapshot() -> bool + +Help on function inf_is_wide_high_byte_first in module ida_ida: + +inf_is_wide_high_byte_first(*args) -> 'bool' + inf_is_wide_high_byte_first() -> bool + +Help on function inf_like_binary in module ida_ida: + +inf_like_binary(*args) -> 'bool' + inf_like_binary() -> bool + +Help on function inf_line_pref_with_seg in module ida_ida: + +inf_line_pref_with_seg(*args) -> 'bool' + inf_line_pref_with_seg() -> bool + +Help on function inf_loading_idc in module ida_ida: + +inf_loading_idc(*args) -> 'bool' + inf_loading_idc() -> bool + +Help on function inf_map_stkargs in module ida_ida: + +inf_map_stkargs(*args) -> 'bool' + inf_map_stkargs() -> bool + +Help on function inf_pack_stkargs in module ida_ida: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + + inf_pack_stkargs() -> bool + +Help on function inf_readonly_idb in module ida_ida: + +inf_readonly_idb(*args) -> 'bool' + inf_readonly_idb() -> bool + +Help on function inf_set_64bit in module ida_ida: + +inf_set_64bit(*args) -> 'bool' + inf_set_64bit(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_auto_enabled in module ida_ida: + +inf_set_auto_enabled(*args) -> 'bool' + inf_set_auto_enabled(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_be in module ida_ida: + +inf_set_be(*args) -> 'bool' + inf_set_be(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_lzero in module ida_ida: + +inf_set_gen_lzero(*args) -> 'bool' + inf_set_gen_lzero(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_null in module ida_ida: + +inf_set_gen_null(*args) -> 'bool' + inf_set_gen_null(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_tryblks in module ida_ida: + +inf_set_gen_tryblks(*args) -> 'bool' + inf_set_gen_tryblks(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_graph_view in module ida_ida: + +inf_set_graph_view(*args) -> 'bool' + inf_set_graph_view(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_line_pref_with_seg in module ida_ida: + +inf_set_line_pref_with_seg(*args) -> 'bool' + inf_set_line_pref_with_seg(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_pack_mode in module ida_ida: + +inf_set_pack_mode(*args) -> 'int' + inf_set_pack_mode(pack_mode) -> int + + @param pack_mode: int + +Help on function inf_set_show_auto in module ida_ida: + +inf_set_show_auto(*args) -> 'bool' + inf_set_show_auto(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_line_pref in module ida_ida: + +inf_set_show_line_pref(*args) -> 'bool' + inf_set_show_line_pref(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_void in module ida_ida: + +inf_set_show_void(*args) -> 'bool' + inf_set_show_void(_v=True) -> bool + + @param _v: bool + +Help on function <lambda> in module ida_ida: + +<lambda> lambda *args + +Help on function inf_set_wide_high_byte_first in module ida_ida: + +inf_set_wide_high_byte_first(*args) -> 'bool' + inf_set_wide_high_byte_first(_v=True) -> bool + + @param _v: bool + +Help on function inf_show_auto in module ida_ida: + +inf_show_auto(*args) -> 'bool' + inf_show_auto() -> bool + +Help on function inf_show_line_pref in module ida_ida: + +inf_show_line_pref(*args) -> 'bool' + inf_show_line_pref() -> bool + +Help on function inf_show_void in module ida_ida: + +inf_show_void(*args) -> 'bool' + inf_show_void() -> bool + +Help on function inf_stack_ldbl in module ida_ida: + +inf_stack_ldbl(*args) -> 'bool' + inf_stack_ldbl() -> bool + +Help on function inf_stack_varargs in module ida_ida: + +inf_stack_varargs(*args) -> 'bool' + inf_stack_varargs() -> bool + +Help on function inf_use_allasm in module ida_ida: + +inf_use_allasm(*args) -> 'bool' + inf_use_allasm() -> bool + +Help on function inf_use_gcc_layout in module ida_ida: + +inf_use_gcc_layout(*args) -> 'bool' + inf_use_gcc_layout() -> bool + +Help on function inf_abi_set_by_user in module ida_ida: + +inf_abi_set_by_user(*args) -> 'bool' + inf_abi_set_by_user() -> bool + +Help on function inf_allow_non_matched_ops in module ida_ida: + +inf_allow_non_matched_ops(*args) -> 'bool' + inf_allow_non_matched_ops() -> bool + +Help on function inf_allow_sigmulti in module ida_ida: + +inf_allow_sigmulti(*args) -> 'bool' + inf_allow_sigmulti() -> bool + +Help on function inf_append_sigcmt in module ida_ida: + +inf_append_sigcmt(*args) -> 'bool' + inf_append_sigcmt() -> bool + +Help on function inf_check_manual_ops in module ida_ida: + +inf_check_manual_ops(*args) -> 'bool' + inf_check_manual_ops() -> bool + +Help on function inf_check_unicode_strlits in module ida_ida: + +inf_check_unicode_strlits(*args) -> 'bool' + inf_check_unicode_strlits() -> bool + +Help on function inf_coagulate_code in module ida_ida: + +inf_coagulate_code(*args) -> 'bool' + inf_coagulate_code() -> bool + +Help on function inf_coagulate_data in module ida_ida: + +inf_coagulate_data(*args) -> 'bool' + inf_coagulate_data() -> bool + +Help on function inf_compress_idb in module ida_ida: + +inf_compress_idb(*args) -> 'bool' + inf_compress_idb() -> bool + +Help on function inf_create_all_xrefs in module ida_ida: + +inf_create_all_xrefs(*args) -> 'bool' + inf_create_all_xrefs() -> bool + +Help on function inf_create_func_from_call in module ida_ida: + +inf_create_func_from_call(*args) -> 'bool' + inf_create_func_from_call() -> bool + +Help on function inf_create_func_from_ptr in module ida_ida: + +inf_create_func_from_ptr(*args) -> 'bool' + inf_create_func_from_ptr() -> bool + +Help on function inf_create_func_tails in module ida_ida: + +inf_create_func_tails(*args) -> 'bool' + inf_create_func_tails() -> bool + +Help on function inf_create_jump_tables in module ida_ida: + +inf_create_jump_tables(*args) -> 'bool' + inf_create_jump_tables() -> bool + +Help on function inf_create_off_on_dref in module ida_ida: + +inf_create_off_on_dref(*args) -> 'bool' + inf_create_off_on_dref() -> bool + +Help on function inf_create_off_using_fixup in module ida_ida: + +inf_create_off_using_fixup(*args) -> 'bool' + inf_create_off_using_fixup() -> bool + +Help on function inf_create_strlit_on_xref in module ida_ida: + +inf_create_strlit_on_xref(*args) -> 'bool' + inf_create_strlit_on_xref() -> bool + +Help on function inf_data_offset in module ida_ida: + +inf_data_offset(*args) -> 'bool' + inf_data_offset() -> bool + +Help on function inf_dbg_no_store_path in module ida_ida: + +inf_dbg_no_store_path(*args) -> 'bool' + inf_dbg_no_store_path() -> bool + +Help on function inf_decode_fpp in module ida_ida: + +inf_decode_fpp(*args) -> 'bool' + inf_decode_fpp() -> bool + +Help on function inf_del_no_xref_insns in module ida_ida: + +inf_del_no_xref_insns(*args) -> 'bool' + inf_del_no_xref_insns() -> bool + +Help on function inf_final_pass in module ida_ida: + +inf_final_pass(*args) -> 'bool' + inf_final_pass() -> bool + +Help on function inf_full_sp_ana in module ida_ida: + +inf_full_sp_ana(*args) -> 'bool' + inf_full_sp_ana() -> bool + +Help on function inf_gen_assume in module ida_ida: + +inf_gen_assume(*args) -> 'bool' + inf_gen_assume() -> bool + +Help on function inf_gen_org in module ida_ida: + +inf_gen_org(*args) -> 'bool' + inf_gen_org() -> bool + +Help on function inf_get_abibits in module ida_ida: + +inf_get_abibits(*args) -> 'uint32' + inf_get_abibits() -> uint32 + +Help on function inf_get_af in module ida_ida: + +inf_get_af(*args) -> 'uint32' + inf_get_af() -> uint32 + +Help on function inf_get_af2 in module ida_ida: + +inf_get_af2(*args) -> 'uint32' + inf_get_af2() -> uint32 + +Help on function inf_get_af2_low in module ida_ida: + +inf_get_af2_low(*args) -> 'ushort' + inf_get_af2_low() -> ushort + Get/set low 16bit half of inf.af2. + +Help on function inf_get_af_high in module ida_ida: + +inf_get_af_high(*args) -> 'ushort' + inf_get_af_high() -> ushort + +Help on function inf_get_af_low in module ida_ida: + +inf_get_af_low(*args) -> 'ushort' + inf_get_af_low() -> ushort + Get/set low/high 16bit halves of inf.af. + +Help on function inf_get_app_bitness in module ida_ida: + +inf_get_app_bitness(*args) -> 'uint' + inf_get_app_bitness() -> uint + +Help on function inf_get_appcall_options in module ida_ida: + +inf_get_appcall_options(*args) -> 'uint32' + inf_get_appcall_options() -> uint32 + +Help on function inf_get_apptype in module ida_ida: + +inf_get_apptype(*args) -> 'ushort' + inf_get_apptype() -> ushort + +Help on function inf_get_asmtype in module ida_ida: + +inf_get_asmtype(*args) -> 'uchar' + inf_get_asmtype() -> uchar + +Help on function inf_get_baseaddr in module ida_ida: + +inf_get_baseaddr(*args) -> 'uval_t' + inf_get_baseaddr() -> uval_t + +Help on function inf_get_bin_prefix_size in module ida_ida: + +inf_get_bin_prefix_size(*args) -> 'short' + inf_get_bin_prefix_size() -> short + +Help on function inf_get_cc in module ida_ida: + +inf_get_cc(*args) -> 'bool' + inf_get_cc(out) -> bool + + @param out: compiler_info_t * + +Help on function inf_get_cc_cm in module ida_ida: + +inf_get_cc_cm(*args) -> 'cm_t' + inf_get_cc_cm() -> cm_t + +Help on function inf_get_cc_defalign in module ida_ida: + +inf_get_cc_defalign(*args) -> 'uchar' + inf_get_cc_defalign() -> uchar + +Help on function inf_get_cc_id in module ida_ida: + +inf_get_cc_id(*args) -> 'comp_t' + inf_get_cc_id() -> comp_t + +Help on function inf_get_cc_size_b in module ida_ida: + +inf_get_cc_size_b(*args) -> 'uchar' + inf_get_cc_size_b() -> uchar + +Help on function inf_get_cc_size_e in module ida_ida: + +inf_get_cc_size_e(*args) -> 'uchar' + inf_get_cc_size_e() -> uchar + +Help on function inf_get_cc_size_i in module ida_ida: + +inf_get_cc_size_i(*args) -> 'uchar' + inf_get_cc_size_i() -> uchar + +Help on function inf_get_cc_size_l in module ida_ida: + +inf_get_cc_size_l(*args) -> 'uchar' + inf_get_cc_size_l() -> uchar + +Help on function inf_get_cc_size_ldbl in module ida_ida: + +inf_get_cc_size_ldbl(*args) -> 'uchar' + inf_get_cc_size_ldbl() -> uchar + +Help on function inf_get_cc_size_ll in module ida_ida: + +inf_get_cc_size_ll(*args) -> 'uchar' + inf_get_cc_size_ll() -> uchar + +Help on function inf_get_cc_size_s in module ida_ida: + +inf_get_cc_size_s(*args) -> 'uchar' + inf_get_cc_size_s() -> uchar + +Help on function inf_get_cmtflg in module ida_ida: + +inf_get_cmtflg(*args) -> 'uchar' + inf_get_cmtflg() -> uchar + +Help on function inf_get_database_change_count in module ida_ida: + +inf_get_database_change_count(*args) -> 'uint32' + inf_get_database_change_count() -> uint32 + +Help on function inf_get_datatypes in module ida_ida: + +inf_get_datatypes(*args) -> 'uval_t' + inf_get_datatypes() -> uval_t + +Help on function inf_get_demnames in module ida_ida: + +inf_get_demnames(*args) -> 'uchar' + inf_get_demnames() -> uchar + +Help on function inf_get_filetype in module ida_ida: + +inf_get_filetype(*args) -> 'filetype_t' + inf_get_filetype() -> filetype_t + +Help on function inf_get_genflags in module ida_ida: + +inf_get_genflags(*args) -> 'ushort' + inf_get_genflags() -> ushort + +Help on function inf_get_highoff in module ida_ida: + +inf_get_highoff(*args) -> 'ea_t' + inf_get_highoff() -> ea_t + +Help on function inf_get_indent in module ida_ida: + +inf_get_indent(*args) -> 'uchar' + inf_get_indent() -> uchar + +Help on function inf_get_lenxref in module ida_ida: + +inf_get_lenxref(*args) -> 'ushort' + inf_get_lenxref() -> ushort + +Help on function inf_get_lflags in module ida_ida: + +inf_get_lflags(*args) -> 'uint32' + inf_get_lflags() -> uint32 + +Help on function inf_get_limiter in module ida_ida: + +inf_get_limiter(*args) -> 'uchar' + inf_get_limiter() -> uchar + +Help on function inf_get_listnames in module ida_ida: + +inf_get_listnames(*args) -> 'uchar' + inf_get_listnames() -> uchar + +Help on function inf_get_long_demnames in module ida_ida: + +inf_get_long_demnames(*args) -> 'uint32' + inf_get_long_demnames() -> uint32 + +Help on function inf_get_lowoff in module ida_ida: + +inf_get_lowoff(*args) -> 'ea_t' + inf_get_lowoff() -> ea_t + +Help on function inf_get_main in module ida_ida: + +inf_get_main(*args) -> 'ea_t' + inf_get_main() -> ea_t + +Help on function inf_get_margin in module ida_ida: + +inf_get_margin(*args) -> 'ushort' + inf_get_margin() -> ushort + +Help on function inf_get_max_autoname_len in module ida_ida: + +inf_get_max_autoname_len(*args) -> 'ushort' + inf_get_max_autoname_len() -> ushort + +Help on function inf_get_max_ea in module ida_ida: + +inf_get_max_ea(*args) -> 'ea_t' + inf_get_max_ea() -> ea_t + +Help on function inf_get_maxref in module ida_ida: + +inf_get_maxref(*args) -> 'uval_t' + inf_get_maxref() -> uval_t + +Help on function inf_get_min_ea in module ida_ida: + +inf_get_min_ea(*args) -> 'ea_t' + inf_get_min_ea() -> ea_t + +Help on function inf_get_nametype in module ida_ida: + +inf_get_nametype(*args) -> 'char' + inf_get_nametype() -> char + +Help on function inf_get_netdelta in module ida_ida: + +inf_get_netdelta(*args) -> 'sval_t' + inf_get_netdelta() -> sval_t + +Help on function inf_get_omax_ea in module ida_ida: + +inf_get_omax_ea(*args) -> 'ea_t' + inf_get_omax_ea() -> ea_t + +Help on function inf_get_omin_ea in module ida_ida: + +inf_get_omin_ea(*args) -> 'ea_t' + inf_get_omin_ea() -> ea_t + +Help on function inf_get_ostype in module ida_ida: + +inf_get_ostype(*args) -> 'ushort' + inf_get_ostype() -> ushort + +Help on function inf_get_outflags in module ida_ida: + +inf_get_outflags(*args) -> 'uint32' + inf_get_outflags() -> uint32 + +Help on function inf_get_prefflag in module ida_ida: + +inf_get_prefflag(*args) -> 'uchar' + inf_get_prefflag() -> uchar + +Help on function inf_get_privrange in module ida_ida: + +inf_get_privrange(*args) -> 'range_t' + inf_get_privrange(out) -> bool + + @param out: range_t * + + inf_get_privrange() -> range_t + +Help on function inf_get_privrange_end_ea in module ida_ida: + +inf_get_privrange_end_ea(*args) -> 'ea_t' + inf_get_privrange_end_ea() -> ea_t + +Help on function inf_get_privrange_start_ea in module ida_ida: + +inf_get_privrange_start_ea(*args) -> 'ea_t' + inf_get_privrange_start_ea() -> ea_t + +Help on function inf_get_procname in module ida_ida: + +inf_get_procname(*args) -> 'size_t' + inf_get_procname() -> str + +Help on function inf_get_refcmtnum in module ida_ida: + +inf_get_refcmtnum(*args) -> 'uchar' + inf_get_refcmtnum() -> uchar + +Help on function inf_get_short_demnames in module ida_ida: + +inf_get_short_demnames(*args) -> 'uint32' + inf_get_short_demnames() -> uint32 + +Help on function inf_get_specsegs in module ida_ida: + +inf_get_specsegs(*args) -> 'uchar' + inf_get_specsegs() -> uchar + +Help on function inf_get_start_cs in module ida_ida: + +inf_get_start_cs(*args) -> 'sel_t' + inf_get_start_cs() -> sel_t + +Help on function inf_get_start_ea in module ida_ida: + +inf_get_start_ea(*args) -> 'ea_t' + inf_get_start_ea() -> ea_t + +Help on function inf_get_start_ip in module ida_ida: + +inf_get_start_ip(*args) -> 'ea_t' + inf_get_start_ip() -> ea_t + +Help on function inf_get_start_sp in module ida_ida: + +inf_get_start_sp(*args) -> 'ea_t' + inf_get_start_sp() -> ea_t + +Help on function inf_get_start_ss in module ida_ida: + +inf_get_start_ss(*args) -> 'sel_t' + inf_get_start_ss() -> sel_t + +Help on function inf_get_strlit_break in module ida_ida: + +inf_get_strlit_break(*args) -> 'uchar' + inf_get_strlit_break() -> uchar + +Help on function inf_get_strlit_flags in module ida_ida: + +inf_get_strlit_flags(*args) -> 'uchar' + inf_get_strlit_flags() -> uchar + +Help on function inf_get_strlit_pref in module ida_ida: + +inf_get_strlit_pref(*args) -> 'size_t' + inf_get_strlit_pref() -> str + +Help on function inf_get_strlit_sernum in module ida_ida: + +inf_get_strlit_sernum(*args) -> 'uval_t' + inf_get_strlit_sernum() -> uval_t + +Help on function inf_get_strlit_zeroes in module ida_ida: + +inf_get_strlit_zeroes(*args) -> 'char' + inf_get_strlit_zeroes() -> char + +Help on function inf_get_strtype in module ida_ida: + +inf_get_strtype(*args) -> 'int32' + inf_get_strtype() -> int32 + +Help on function inf_get_type_xrefnum in module ida_ida: + +inf_get_type_xrefnum(*args) -> 'uchar' + inf_get_type_xrefnum() -> uchar + +Help on function inf_get_version in module ida_ida: + +inf_get_version(*args) -> 'ushort' + inf_get_version() -> ushort + +Help on function inf_get_xrefflag in module ida_ida: + +inf_get_xrefflag(*args) -> 'uchar' + inf_get_xrefflag() -> uchar + +Help on function inf_get_xrefnum in module ida_ida: + +inf_get_xrefnum(*args) -> 'uchar' + inf_get_xrefnum() -> uchar + +Help on function inf_guess_func_type in module ida_ida: + +inf_guess_func_type(*args) -> 'bool' + inf_guess_func_type() -> bool + +Help on function inf_handle_eh in module ida_ida: + +inf_handle_eh(*args) -> 'bool' + inf_handle_eh() -> bool + +Help on function inf_handle_rtti in module ida_ida: + +inf_handle_rtti(*args) -> 'bool' + inf_handle_rtti() -> bool + +Help on function inf_hide_comments in module ida_ida: + +inf_hide_comments(*args) -> 'bool' + inf_hide_comments() -> bool + +Help on function inf_hide_libfuncs in module ida_ida: + +inf_hide_libfuncs(*args) -> 'bool' + inf_hide_libfuncs() -> bool + +Help on function inf_huge_arg_align in module ida_ida: + +inf_huge_arg_align(*args) -> 'bool' + inf_huge_arg_align() -> bool + +Help on function inf_inc_database_change_count in module ida_ida: + +inf_inc_database_change_count(*args) -> 'void' + inf_inc_database_change_count(cnt=1) + + @param cnt: int + +Help on function inf_is_16bit in module ida_ida: + +inf_is_16bit(*args) -> 'bool' + inf_is_16bit() -> bool + +Help on function inf_is_32bit_exactly in module ida_ida: + +inf_is_32bit_exactly(*args) -> 'bool' + inf_is_32bit_exactly() -> bool + +Help on function inf_is_32bit_or_higher in module ida_ida: + +inf_is_32bit_or_higher(*args) -> 'bool' + inf_is_32bit_or_higher() -> bool + +Help on function inf_is_limiter_empty in module ida_ida: + +inf_is_limiter_empty(*args) -> 'bool' + inf_is_limiter_empty() -> bool + +Help on function inf_is_limiter_thick in module ida_ida: + +inf_is_limiter_thick(*args) -> 'bool' + inf_is_limiter_thick() -> bool + +Help on function inf_is_limiter_thin in module ida_ida: + +inf_is_limiter_thin(*args) -> 'bool' + inf_is_limiter_thin() -> bool + +Help on function inf_macros_enabled in module ida_ida: + +inf_macros_enabled(*args) -> 'bool' + inf_macros_enabled() -> bool + +Help on function inf_mark_code in module ida_ida: + +inf_mark_code(*args) -> 'bool' + inf_mark_code() -> bool + +Help on function inf_no_store_user_info in module ida_ida: + +inf_no_store_user_info(*args) -> 'bool' + inf_no_store_user_info() -> bool + +Help on function inf_noflow_to_data in module ida_ida: + +inf_noflow_to_data(*args) -> 'bool' + inf_noflow_to_data() -> bool + +Help on function inf_noret_ana in module ida_ida: + +inf_noret_ana(*args) -> 'bool' + inf_noret_ana() -> bool + +Help on function inf_op_offset in module ida_ida: + +inf_op_offset(*args) -> 'bool' + inf_op_offset() -> bool + +Help on function inf_pack_idb in module ida_ida: + +inf_pack_idb(*args) -> 'bool' + inf_pack_idb() -> bool + +Help on function inf_postinc_strlit_sernum in module ida_ida: + +inf_postinc_strlit_sernum(*args) -> 'uval_t' + inf_postinc_strlit_sernum(cnt=1) -> uval_t + + @param cnt: uval_t + +Help on function inf_prefix_show_funcoff in module ida_ida: + +inf_prefix_show_funcoff(*args) -> 'bool' + inf_prefix_show_funcoff() -> bool + +Help on function inf_prefix_show_segaddr in module ida_ida: + +inf_prefix_show_segaddr(*args) -> 'bool' + inf_prefix_show_segaddr() -> bool + +Help on function inf_prefix_show_stack in module ida_ida: + +inf_prefix_show_stack(*args) -> 'bool' + inf_prefix_show_stack() -> bool + +Help on function inf_prefix_truncate_opcode_bytes in module ida_ida: + +inf_prefix_truncate_opcode_bytes(*args) -> 'bool' + inf_prefix_truncate_opcode_bytes() -> bool + +Help on function inf_propagate_regargs in module ida_ida: + +inf_propagate_regargs(*args) -> 'bool' + inf_propagate_regargs() -> bool + +Help on function inf_propagate_stkargs in module ida_ida: + +inf_propagate_stkargs(*args) -> 'bool' + inf_propagate_stkargs() -> bool + +Help on function inf_rename_jumpfunc in module ida_ida: + +inf_rename_jumpfunc(*args) -> 'bool' + inf_rename_jumpfunc() -> bool + +Help on function inf_rename_nullsub in module ida_ida: + +inf_rename_nullsub(*args) -> 'bool' + inf_rename_nullsub() -> bool + +Help on function inf_set_32bit in module ida_ida: + +inf_set_32bit(*args) -> 'bool' + inf_set_32bit(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_abi_set_by_user in module ida_ida: + +inf_set_abi_set_by_user(*args) -> 'bool' + inf_set_abi_set_by_user(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_abibits in module ida_ida: + +inf_set_abibits(*args) -> 'bool' + inf_set_abibits(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_af in module ida_ida: + +inf_set_af(*args) -> 'bool' + inf_set_af(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_af2 in module ida_ida: + +inf_set_af2(*args) -> 'bool' + inf_set_af2(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_af2_low in module ida_ida: + +inf_set_af2_low(*args) -> 'void' + inf_set_af2_low(saf) + + @param saf: ushort + +Help on function inf_set_af_high in module ida_ida: + +inf_set_af_high(*args) -> 'void' + inf_set_af_high(saf2) + + @param saf2: ushort + +Help on function inf_set_af_low in module ida_ida: + +inf_set_af_low(*args) -> 'void' + inf_set_af_low(saf) + + @param saf: ushort + +Help on function inf_set_allow_non_matched_ops in module ida_ida: + +inf_set_allow_non_matched_ops(*args) -> 'bool' + inf_set_allow_non_matched_ops(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_allow_sigmulti in module ida_ida: + +inf_set_allow_sigmulti(*args) -> 'bool' + inf_set_allow_sigmulti(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_app_bitness in module ida_ida: + +inf_set_app_bitness(*args) -> 'void' + inf_set_app_bitness(bitness) + + @param bitness: uint + +Help on function inf_set_appcall_options in module ida_ida: + +inf_set_appcall_options(*args) -> 'bool' + inf_set_appcall_options(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_append_sigcmt in module ida_ida: + +inf_set_append_sigcmt(*args) -> 'bool' + inf_set_append_sigcmt(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_apptype in module ida_ida: + +inf_set_apptype(*args) -> 'bool' + inf_set_apptype(_v) -> bool + + @param _v: ushort + +Help on function inf_set_asmtype in module ida_ida: + +inf_set_asmtype(*args) -> 'bool' + inf_set_asmtype(_v) -> bool + + @param _v: uchar + +Help on function inf_set_baseaddr in module ida_ida: + +inf_set_baseaddr(*args) -> 'bool' + inf_set_baseaddr(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_big_arg_align in module ida_ida: + +inf_set_big_arg_align(*args) -> 'bool' + inf_set_big_arg_align(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_bin_prefix_size in module ida_ida: + +inf_set_bin_prefix_size(*args) -> 'bool' + inf_set_bin_prefix_size(_v) -> bool + + @param _v: short + +Help on function inf_set_cc in module ida_ida: + +inf_set_cc(*args) -> 'bool' + inf_set_cc(_v) -> bool + + @param _v: compiler_info_t const & + +Help on function inf_set_cc_cm in module ida_ida: + +inf_set_cc_cm(*args) -> 'bool' + inf_set_cc_cm(_v) -> bool + + @param _v: cm_t + +Help on function inf_set_cc_defalign in module ida_ida: + +inf_set_cc_defalign(*args) -> 'bool' + inf_set_cc_defalign(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_id in module ida_ida: + +inf_set_cc_id(*args) -> 'bool' + inf_set_cc_id(_v) -> bool + + @param _v: comp_t + +Help on function inf_set_cc_size_b in module ida_ida: + +inf_set_cc_size_b(*args) -> 'bool' + inf_set_cc_size_b(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_e in module ida_ida: + +inf_set_cc_size_e(*args) -> 'bool' + inf_set_cc_size_e(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_i in module ida_ida: + +inf_set_cc_size_i(*args) -> 'bool' + inf_set_cc_size_i(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_l in module ida_ida: + +inf_set_cc_size_l(*args) -> 'bool' + inf_set_cc_size_l(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_ldbl in module ida_ida: + +inf_set_cc_size_ldbl(*args) -> 'bool' + inf_set_cc_size_ldbl(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_ll in module ida_ida: + +inf_set_cc_size_ll(*args) -> 'bool' + inf_set_cc_size_ll(_v) -> bool + + @param _v: uchar + +Help on function inf_set_cc_size_s in module ida_ida: + +inf_set_cc_size_s(*args) -> 'bool' + inf_set_cc_size_s(_v) -> bool + + @param _v: uchar + +Help on function inf_set_check_manual_ops in module ida_ida: + +inf_set_check_manual_ops(*args) -> 'bool' + inf_set_check_manual_ops(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_check_unicode_strlits in module ida_ida: + +inf_set_check_unicode_strlits(*args) -> 'bool' + inf_set_check_unicode_strlits(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_cmtflg in module ida_ida: + +inf_set_cmtflg(*args) -> 'bool' + inf_set_cmtflg(_v) -> bool + + @param _v: uchar + +Help on function inf_set_coagulate_code in module ida_ida: + +inf_set_coagulate_code(*args) -> 'bool' + inf_set_coagulate_code(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_coagulate_data in module ida_ida: + +inf_set_coagulate_data(*args) -> 'bool' + inf_set_coagulate_data(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_compress_idb in module ida_ida: + +inf_set_compress_idb(*args) -> 'bool' + inf_set_compress_idb(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_all_xrefs in module ida_ida: + +inf_set_create_all_xrefs(*args) -> 'bool' + inf_set_create_all_xrefs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_func_from_call in module ida_ida: + +inf_set_create_func_from_call(*args) -> 'bool' + inf_set_create_func_from_call(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_func_from_ptr in module ida_ida: + +inf_set_create_func_from_ptr(*args) -> 'bool' + inf_set_create_func_from_ptr(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_func_tails in module ida_ida: + +inf_set_create_func_tails(*args) -> 'bool' + inf_set_create_func_tails(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_jump_tables in module ida_ida: + +inf_set_create_jump_tables(*args) -> 'bool' + inf_set_create_jump_tables(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_off_on_dref in module ida_ida: + +inf_set_create_off_on_dref(*args) -> 'bool' + inf_set_create_off_on_dref(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_off_using_fixup in module ida_ida: + +inf_set_create_off_using_fixup(*args) -> 'bool' + inf_set_create_off_using_fixup(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_create_strlit_on_xref in module ida_ida: + +inf_set_create_strlit_on_xref(*args) -> 'bool' + inf_set_create_strlit_on_xref(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_data_offset in module ida_ida: + +inf_set_data_offset(*args) -> 'bool' + inf_set_data_offset(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_database_change_count in module ida_ida: + +inf_set_database_change_count(*args) -> 'bool' + inf_set_database_change_count(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_datatypes in module ida_ida: + +inf_set_datatypes(*args) -> 'bool' + inf_set_datatypes(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_dbg_no_store_path in module ida_ida: + +inf_set_dbg_no_store_path(*args) -> 'bool' + inf_set_dbg_no_store_path(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_decode_fpp in module ida_ida: + +inf_set_decode_fpp(*args) -> 'bool' + inf_set_decode_fpp(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_del_no_xref_insns in module ida_ida: + +inf_set_del_no_xref_insns(*args) -> 'bool' + inf_set_del_no_xref_insns(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_demnames in module ida_ida: + +inf_set_demnames(*args) -> 'bool' + inf_set_demnames(_v) -> bool + + @param _v: uchar + +Help on function inf_set_dll in module ida_ida: + +inf_set_dll(*args) -> 'bool' + inf_set_dll(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_filetype in module ida_ida: + +inf_set_filetype(*args) -> 'bool' + inf_set_filetype(_v) -> bool + + @param _v: enum filetype_t + +Help on function inf_set_final_pass in module ida_ida: + +inf_set_final_pass(*args) -> 'bool' + inf_set_final_pass(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_flat_off32 in module ida_ida: + +inf_set_flat_off32(*args) -> 'bool' + inf_set_flat_off32(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_full_sp_ana in module ida_ida: + +inf_set_full_sp_ana(*args) -> 'bool' + inf_set_full_sp_ana(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_assume in module ida_ida: + +inf_set_gen_assume(*args) -> 'bool' + inf_set_gen_assume(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_gen_org in module ida_ida: + +inf_set_gen_org(*args) -> 'bool' + inf_set_gen_org(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_genflags in module ida_ida: + +inf_set_genflags(*args) -> 'bool' + inf_set_genflags(_v) -> bool + + @param _v: ushort + +Help on function inf_set_guess_func_type in module ida_ida: + +inf_set_guess_func_type(*args) -> 'bool' + inf_set_guess_func_type(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_handle_eh in module ida_ida: + +inf_set_handle_eh(*args) -> 'bool' + inf_set_handle_eh(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_handle_rtti in module ida_ida: + +inf_set_handle_rtti(*args) -> 'bool' + inf_set_handle_rtti(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_hard_float in module ida_ida: + +inf_set_hard_float(*args) -> 'bool' + inf_set_hard_float(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_hide_comments in module ida_ida: + +inf_set_hide_comments(*args) -> 'bool' + inf_set_hide_comments(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_hide_libfuncs in module ida_ida: + +inf_set_hide_libfuncs(*args) -> 'bool' + inf_set_hide_libfuncs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_highoff in module ida_ida: + +inf_set_highoff(*args) -> 'bool' + inf_set_highoff(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_huge_arg_align in module ida_ida: + +inf_set_huge_arg_align(*args) -> 'bool' + inf_set_huge_arg_align(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_indent in module ida_ida: + +inf_set_indent(*args) -> 'bool' + inf_set_indent(_v) -> bool + + @param _v: uchar + +Help on function inf_set_kernel_mode in module ida_ida: + +inf_set_kernel_mode(*args) -> 'bool' + inf_set_kernel_mode(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_lenxref in module ida_ida: + +inf_set_lenxref(*args) -> 'bool' + inf_set_lenxref(_v) -> bool + + @param _v: ushort + +Help on function inf_set_lflags in module ida_ida: + +inf_set_lflags(*args) -> 'bool' + inf_set_lflags(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_limiter in module ida_ida: + +inf_set_limiter(*args) -> 'bool' + inf_set_limiter(_v) -> bool + + @param _v: uchar + +Help on function inf_set_limiter_empty in module ida_ida: + +inf_set_limiter_empty(*args) -> 'bool' + inf_set_limiter_empty(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_limiter_thick in module ida_ida: + +inf_set_limiter_thick(*args) -> 'bool' + inf_set_limiter_thick(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_limiter_thin in module ida_ida: + +inf_set_limiter_thin(*args) -> 'bool' + inf_set_limiter_thin(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_listnames in module ida_ida: + +inf_set_listnames(*args) -> 'bool' + inf_set_listnames(_v) -> bool + + @param _v: uchar + +Help on function inf_set_loading_idc in module ida_ida: + +inf_set_loading_idc(*args) -> 'bool' + inf_set_loading_idc(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_long_demnames in module ida_ida: + +inf_set_long_demnames(*args) -> 'bool' + inf_set_long_demnames(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_lowoff in module ida_ida: + +inf_set_lowoff(*args) -> 'bool' + inf_set_lowoff(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_macros_enabled in module ida_ida: + +inf_set_macros_enabled(*args) -> 'bool' + inf_set_macros_enabled(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_main in module ida_ida: + +inf_set_main(*args) -> 'bool' + inf_set_main(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_map_stkargs in module ida_ida: + +inf_set_map_stkargs(*args) -> 'bool' + inf_set_map_stkargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_margin in module ida_ida: + +inf_set_margin(*args) -> 'bool' + inf_set_margin(_v) -> bool + + @param _v: ushort + +Help on function inf_set_mark_code in module ida_ida: + +inf_set_mark_code(*args) -> 'bool' + inf_set_mark_code(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_max_autoname_len in module ida_ida: + +inf_set_max_autoname_len(*args) -> 'bool' + inf_set_max_autoname_len(_v) -> bool + + @param _v: ushort + +Help on function inf_set_max_ea in module ida_ida: + +inf_set_max_ea(*args) -> 'bool' + inf_set_max_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_maxref in module ida_ida: + +inf_set_maxref(*args) -> 'bool' + inf_set_maxref(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_mem_aligned4 in module ida_ida: + +inf_set_mem_aligned4(*args) -> 'bool' + inf_set_mem_aligned4(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_min_ea in module ida_ida: + +inf_set_min_ea(*args) -> 'bool' + inf_set_min_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_nametype in module ida_ida: + +inf_set_nametype(*args) -> 'bool' + inf_set_nametype(_v) -> bool + + @param _v: char + +Help on function inf_set_netdelta in module ida_ida: + +inf_set_netdelta(*args) -> 'bool' + inf_set_netdelta(_v) -> bool + + @param _v: sval_t + +Help on function inf_set_no_store_user_info in module ida_ida: + +inf_set_no_store_user_info(*args) -> 'bool' + inf_set_no_store_user_info(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_noflow_to_data in module ida_ida: + +inf_set_noflow_to_data(*args) -> 'bool' + inf_set_noflow_to_data(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_noret_ana in module ida_ida: + +inf_set_noret_ana(*args) -> 'bool' + inf_set_noret_ana(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_omax_ea in module ida_ida: + +inf_set_omax_ea(*args) -> 'bool' + inf_set_omax_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_omin_ea in module ida_ida: + +inf_set_omin_ea(*args) -> 'bool' + inf_set_omin_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_op_offset in module ida_ida: + +inf_set_op_offset(*args) -> 'bool' + inf_set_op_offset(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_ostype in module ida_ida: + +inf_set_ostype(*args) -> 'bool' + inf_set_ostype(_v) -> bool + + @param _v: ushort + +Help on function inf_set_outflags in module ida_ida: + +inf_set_outflags(*args) -> 'bool' + inf_set_outflags(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_pack_idb in module ida_ida: + +inf_set_pack_idb(*args) -> 'bool' + inf_set_pack_idb(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_pack_stkargs in module ida_ida: + +inf_set_pack_stkargs(*args) -> 'bool' + inf_set_pack_stkargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefflag in module ida_ida: + +inf_set_prefflag(*args) -> 'bool' + inf_set_prefflag(_v) -> bool + + @param _v: uchar + +Help on function inf_set_prefix_show_funcoff in module ida_ida: + +inf_set_prefix_show_funcoff(*args) -> 'bool' + inf_set_prefix_show_funcoff(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefix_show_segaddr in module ida_ida: + +inf_set_prefix_show_segaddr(*args) -> 'bool' + inf_set_prefix_show_segaddr(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefix_show_stack in module ida_ida: + +inf_set_prefix_show_stack(*args) -> 'bool' + inf_set_prefix_show_stack(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_prefix_truncate_opcode_bytes in module ida_ida: + +inf_set_prefix_truncate_opcode_bytes(*args) -> 'bool' + inf_set_prefix_truncate_opcode_bytes(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_privrange in module ida_ida: + +inf_set_privrange(*args) -> 'bool' + inf_set_privrange(_v) -> bool + + @param _v: range_t const & + +Help on function inf_set_privrange_end_ea in module ida_ida: + +inf_set_privrange_end_ea(*args) -> 'bool' + inf_set_privrange_end_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_privrange_start_ea in module ida_ida: + +inf_set_privrange_start_ea(*args) -> 'bool' + inf_set_privrange_start_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_procname in module ida_ida: + +inf_set_procname(*args) -> 'bool' + inf_set_procname(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t + +Help on function inf_set_propagate_regargs in module ida_ida: + +inf_set_propagate_regargs(*args) -> 'bool' + inf_set_propagate_regargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_propagate_stkargs in module ida_ida: + +inf_set_propagate_stkargs(*args) -> 'bool' + inf_set_propagate_stkargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_readonly_idb in module ida_ida: + +inf_set_readonly_idb(*args) -> 'bool' + inf_set_readonly_idb(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_refcmtnum in module ida_ida: + +inf_set_refcmtnum(*args) -> 'bool' + inf_set_refcmtnum(_v) -> bool + + @param _v: uchar + +Help on function inf_set_rename_jumpfunc in module ida_ida: + +inf_set_rename_jumpfunc(*args) -> 'bool' + inf_set_rename_jumpfunc(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_rename_nullsub in module ida_ida: + +inf_set_rename_nullsub(*args) -> 'bool' + inf_set_rename_nullsub(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_short_demnames in module ida_ida: + +inf_set_short_demnames(*args) -> 'bool' + inf_set_short_demnames(_v) -> bool + + @param _v: uint32 + +Help on function inf_set_should_create_stkvars in module ida_ida: + +inf_set_should_create_stkvars(*args) -> 'bool' + inf_set_should_create_stkvars(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_should_trace_sp in module ida_ida: + +inf_set_should_trace_sp(*args) -> 'bool' + inf_set_should_trace_sp(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_all_comments in module ida_ida: + +inf_set_show_all_comments(*args) -> 'bool' + inf_set_show_all_comments(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_hidden_funcs in module ida_ida: + +inf_set_show_hidden_funcs(*args) -> 'bool' + inf_set_show_hidden_funcs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_hidden_insns in module ida_ida: + +inf_set_show_hidden_insns(*args) -> 'bool' + inf_set_show_hidden_insns(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_hidden_segms in module ida_ida: + +inf_set_show_hidden_segms(*args) -> 'bool' + inf_set_show_hidden_segms(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_repeatables in module ida_ida: + +inf_set_show_repeatables(*args) -> 'bool' + inf_set_show_repeatables(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_src_linnum in module ida_ida: + +inf_set_show_src_linnum(*args) -> 'bool' + inf_set_show_src_linnum(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_fncoff in module ida_ida: + +inf_set_show_xref_fncoff(*args) -> 'bool' + inf_set_show_xref_fncoff(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_seg in module ida_ida: + +inf_set_show_xref_seg(*args) -> 'bool' + inf_set_show_xref_seg(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_tmarks in module ida_ida: + +inf_set_show_xref_tmarks(*args) -> 'bool' + inf_set_show_xref_tmarks(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_show_xref_val in module ida_ida: + +inf_set_show_xref_val(*args) -> 'bool' + inf_set_show_xref_val(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_snapshot in module ida_ida: + +inf_set_snapshot(*args) -> 'bool' + inf_set_snapshot(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_specsegs in module ida_ida: + +inf_set_specsegs(*args) -> 'bool' + inf_set_specsegs(_v) -> bool + + @param _v: uchar + +Help on function inf_set_stack_ldbl in module ida_ida: + +inf_set_stack_ldbl(*args) -> 'bool' + inf_set_stack_ldbl(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_stack_varargs in module ida_ida: + +inf_set_stack_varargs(*args) -> 'bool' + inf_set_stack_varargs(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_start_cs in module ida_ida: + +inf_set_start_cs(*args) -> 'bool' + inf_set_start_cs(_v) -> bool + + @param _v: sel_t + +Help on function inf_set_start_ea in module ida_ida: + +inf_set_start_ea(*args) -> 'bool' + inf_set_start_ea(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_start_ip in module ida_ida: + +inf_set_start_ip(*args) -> 'bool' + inf_set_start_ip(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_start_sp in module ida_ida: + +inf_set_start_sp(*args) -> 'bool' + inf_set_start_sp(_v) -> bool + + @param _v: ea_t + +Help on function inf_set_start_ss in module ida_ida: + +inf_set_start_ss(*args) -> 'bool' + inf_set_start_ss(_v) -> bool + + @param _v: sel_t + +Help on function inf_set_strlit_autocmt in module ida_ida: + +inf_set_strlit_autocmt(*args) -> 'bool' + inf_set_strlit_autocmt(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_break in module ida_ida: + +inf_set_strlit_break(*args) -> 'bool' + inf_set_strlit_break(_v) -> bool + + @param _v: uchar + +Help on function inf_set_strlit_flags in module ida_ida: + +inf_set_strlit_flags(*args) -> 'bool' + inf_set_strlit_flags(_v) -> bool + + @param _v: uchar + +Help on function inf_set_strlit_name_bit in module ida_ida: + +inf_set_strlit_name_bit(*args) -> 'bool' + inf_set_strlit_name_bit(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_names in module ida_ida: + +inf_set_strlit_names(*args) -> 'bool' + inf_set_strlit_names(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_pref in module ida_ida: + +inf_set_strlit_pref(*args) -> 'bool' + inf_set_strlit_pref(_v, len=size_t(-1)) -> bool + + @param _v: char const * + @param len: size_t + +Help on function inf_set_strlit_savecase in module ida_ida: + +inf_set_strlit_savecase(*args) -> 'bool' + inf_set_strlit_savecase(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_serial_names in module ida_ida: + +inf_set_strlit_serial_names(*args) -> 'bool' + inf_set_strlit_serial_names(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_strlit_sernum in module ida_ida: + +inf_set_strlit_sernum(*args) -> 'bool' + inf_set_strlit_sernum(_v) -> bool + + @param _v: uval_t + +Help on function inf_set_strlit_zeroes in module ida_ida: + +inf_set_strlit_zeroes(*args) -> 'bool' + inf_set_strlit_zeroes(_v) -> bool + + @param _v: char + +Help on function inf_set_strtype in module ida_ida: + +inf_set_strtype(*args) -> 'bool' + inf_set_strtype(_v) -> bool + + @param _v: int32 + +Help on function inf_set_trace_flow in module ida_ida: + +inf_set_trace_flow(*args) -> 'bool' + inf_set_trace_flow(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_truncate_on_del in module ida_ida: + +inf_set_truncate_on_del(*args) -> 'bool' + inf_set_truncate_on_del(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_type_xrefnum in module ida_ida: + +inf_set_type_xrefnum(*args) -> 'bool' + inf_set_type_xrefnum(_v) -> bool + + @param _v: uchar + +Help on function inf_set_unicode_strlits in module ida_ida: + +inf_set_unicode_strlits(*args) -> 'bool' + inf_set_unicode_strlits(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_use_allasm in module ida_ida: + +inf_set_use_allasm(*args) -> 'bool' + inf_set_use_allasm(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_use_flirt in module ida_ida: + +inf_set_use_flirt(*args) -> 'bool' + inf_set_use_flirt(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_use_gcc_layout in module ida_ida: + +inf_set_use_gcc_layout(*args) -> 'bool' + inf_set_use_gcc_layout(_v=True) -> bool + + @param _v: bool + +Help on function inf_set_version in module ida_ida: + +inf_set_version(*args) -> 'bool' + inf_set_version(_v) -> bool + + @param _v: ushort + +Help on function inf_set_xrefflag in module ida_ida: + +inf_set_xrefflag(*args) -> 'bool' + inf_set_xrefflag(_v) -> bool + + @param _v: uchar + +Help on function inf_set_xrefnum in module ida_ida: + +inf_set_xrefnum(*args) -> 'bool' + inf_set_xrefnum(_v) -> bool + + @param _v: uchar + +Help on function inf_should_create_stkvars in module ida_ida: + +inf_should_create_stkvars(*args) -> 'bool' + inf_should_create_stkvars() -> bool + +Help on function inf_should_trace_sp in module ida_ida: + +inf_should_trace_sp(*args) -> 'bool' + inf_should_trace_sp() -> bool + +Help on function inf_show_all_comments in module ida_ida: + +inf_show_all_comments(*args) -> 'bool' + inf_show_all_comments() -> bool + +Help on function inf_show_hidden_funcs in module ida_ida: + +inf_show_hidden_funcs(*args) -> 'bool' + inf_show_hidden_funcs() -> bool + +Help on function inf_show_hidden_insns in module ida_ida: + +inf_show_hidden_insns(*args) -> 'bool' + inf_show_hidden_insns() -> bool + +Help on function inf_show_hidden_segms in module ida_ida: + +inf_show_hidden_segms(*args) -> 'bool' + inf_show_hidden_segms() -> bool + +Help on function inf_show_repeatables in module ida_ida: + +inf_show_repeatables(*args) -> 'bool' + inf_show_repeatables() -> bool + +Help on function inf_show_src_linnum in module ida_ida: + +inf_show_src_linnum(*args) -> 'bool' + inf_show_src_linnum() -> bool + +Help on function inf_show_xref_fncoff in module ida_ida: + +inf_show_xref_fncoff(*args) -> 'bool' + inf_show_xref_fncoff() -> bool + +Help on function inf_show_xref_seg in module ida_ida: + +inf_show_xref_seg(*args) -> 'bool' + inf_show_xref_seg() -> bool + +Help on function inf_show_xref_tmarks in module ida_ida: + +inf_show_xref_tmarks(*args) -> 'bool' + inf_show_xref_tmarks() -> bool + +Help on function inf_show_xref_val in module ida_ida: + +inf_show_xref_val(*args) -> 'bool' + inf_show_xref_val() -> bool + +Help on function inf_strlit_autocmt in module ida_ida: + +inf_strlit_autocmt(*args) -> 'bool' + inf_strlit_autocmt() -> bool + +Help on function inf_strlit_name_bit in module ida_ida: + +inf_strlit_name_bit(*args) -> 'bool' + inf_strlit_name_bit() -> bool + +Help on function inf_strlit_names in module ida_ida: + +inf_strlit_names(*args) -> 'bool' + inf_strlit_names() -> bool + +Help on function inf_strlit_savecase in module ida_ida: + +inf_strlit_savecase(*args) -> 'bool' + inf_strlit_savecase() -> bool + +Help on function inf_strlit_serial_names in module ida_ida: + +inf_strlit_serial_names(*args) -> 'bool' + inf_strlit_serial_names() -> bool + +Help on function inf_test_mode in module ida_ida: + +inf_test_mode(*args) -> 'bool' + inf_test_mode() -> bool + +Help on function inf_trace_flow in module ida_ida: + +inf_trace_flow(*args) -> 'bool' + inf_trace_flow() -> bool + +Help on function inf_truncate_on_del in module ida_ida: + +inf_truncate_on_del(*args) -> 'bool' + inf_truncate_on_del() -> bool + +Help on function inf_unicode_strlits in module ida_ida: + +inf_unicode_strlits(*args) -> 'bool' + inf_unicode_strlits() -> bool + +Help on function inf_use_flirt in module ida_ida: + +inf_use_flirt(*args) -> 'bool' + inf_use_flirt() -> bool + +Help on function is_database_busy in module ida_ida: + +is_database_busy(*args) -> 'bool' + is_database_busy() -> bool + Check if the database is busy (e.g. performing some critical operations and + cannot be safely accessed) + +Help on function is_filetype_like_binary in module ida_ida: + +is_filetype_like_binary(*args) -> 'bool' + is_filetype_like_binary(ft) -> bool + Is unstructured input file? + + @param ft: (C++: filetype_t) enum filetype_t + +Help on function <lambda> in module ida_ida: + +<lambda> lambda *args + +Help on function switch_dbctx in module ida_ida: + +switch_dbctx(*args) -> 'dbctx_t *' + switch_dbctx(idx) -> dbctx_t * + Switch to the database with the provided context ID + + @param idx: (C++: size_t) the index of the database to switch to + @return: the current dbctx_t instance or nullptr + +Help on function to_ea in module ida_ida: + +to_ea(*args) -> 'ea_t' + to_ea(reg_cs, reg_ip) -> ea_t + Convert (sel,off) value to a linear address. + + @param reg_cs: (C++: sel_t) + @param reg_ip: (C++: uval_t) + +Module "ida_idaapi"s docstring: +"""None""" + +Help on class CustomIDAMemo in module ida_kernwin: + +class CustomIDAMemo(View_Hooks) + | Proxy of C++ View_Hooks class. + | + | Method resolution order: + | CustomIDAMemo + | View_Hooks + | builtins.object + | + | Methods defined here: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | __init__(self) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on __IDAPython_Completion_Util in module ida_idaapi object: + +class __IDAPython_Completion_Util(builtins.object) + | Internal utility class for auto-completion support + | + | Methods defined here: + | + | __call__(self, line, x) + | Call self as a function. + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | debug(self, *args) + | + | dir_namespace(self, m, prefix) + | + | get_candidates(self, qname, line, match_syntax_char) + | + | maybe_extend_syntactically(self, ns, name, line, syntax_char) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | QNAME_PAT = re.compile('([a-zA-Z_]([a-zA-Z0-9_\\.]*)?)') + +Help on function IDAPython_ExecScript in module ida_idaapi: + +IDAPython_ExecScript(path, g, print_error=True) + Run the specified script. + + This function is used by the low-level plugin code. + +Help on function IDAPython_ExecSystem in module ida_idaapi: + +IDAPython_ExecSystem(cmd) + Executes a command with popen(). + +Help on function IDAPython_FormatExc in module ida_idaapi: + +IDAPython_FormatExc(etype, value=None, tb=None, limit=None) + This function is used to format an exception given the + values returned by a PyErr_Fetch() + +Help on function IDAPython_LoadProcMod in module ida_idaapi: + +IDAPython_LoadProcMod(path, g, print_error=True) + Load processor module. + +Help on function IDAPython_UnLoadProcMod in module ida_idaapi: + +IDAPython_UnLoadProcMod(script, g, print_error=True) + Unload processor module. + +Help on class IDAPython_displayhook in module ida_idaapi: + +class IDAPython_displayhook(builtins.object) + | # ------------------------------------------------------------ + | + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | _print_hex(self, x) + | + | displayhook(self, item) + | + | format_item(self, num_printer, storage, item) + | + | format_seq(self, num_printer, storage, item, opn, cls) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class PyIdc_cvt_int64__ in module ida_idaapi: + +class PyIdc_cvt_int64__(pyidc_cvt_helper__) + | Helper class for explicitly representing VT_INT64 values + | + | Method resolution order: + | PyIdc_cvt_int64__ + | pyidc_cvt_helper__ + | builtins.object + | + | Methods defined here: + | + | _PyIdc_cvt_int64____op = __op(self, op_n, other, rev=False) + | + | __add__(self, other) + | + | __div__(self, other) + | + | __init__(self, v) + | Initialize self. See help(type(self)) for accurate signature. + | + | __mul__(self, other) + | + | __radd__(self, other) + | + | __rdiv__(self, other) + | + | __rmul__(self, other) + | + | __rsub__(self, other) + | + | __sub__(self, other) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | _PyIdc_cvt_int64____op_table = {0: <function PyIdc_cvt_int64__.<lambda... + | + | ---------------------------------------------------------------------- + | Methods inherited from pyidc_cvt_helper__: + | + | _pyidc_cvt_helper____get_value = __get_value(self) + | + | _pyidc_cvt_helper____set_value = __set_value(self, v) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pyidc_cvt_helper__: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | value + +Help on class PyIdc_cvt_refclass__ in module ida_idaapi: + +class PyIdc_cvt_refclass__(pyidc_cvt_helper__) + | Helper class for representing references to immutable objects + | + | Method resolution order: + | PyIdc_cvt_refclass__ + | pyidc_cvt_helper__ + | builtins.object + | + | Methods defined here: + | + | __init__(self, v) + | Initialize self. See help(type(self)) for accurate signature. + | + | cstr(self) + | Returns the string as a C string (up to the zero termination) + | + | ---------------------------------------------------------------------- + | Methods inherited from pyidc_cvt_helper__: + | + | _pyidc_cvt_helper____get_value = __get_value(self) + | + | _pyidc_cvt_helper____set_value = __set_value(self, v) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pyidc_cvt_helper__: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | value + +Help on function TRUNC in module ida_idaapi: + +TRUNC(ea) + Truncate EA for the current application bitness + +Help on IDAPython_displayhook in module ida_idaapi object: + +class IDAPython_displayhook(builtins.object) + | # ------------------------------------------------------------ + | + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | _print_hex(self, x) + | + | displayhook(self, item) + | + | format_item(self, num_printer, storage, item) + | + | format_seq(self, num_printer, storage, item, opn, cls) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class __IDAPython_Completion_Util in module ida_idaapi: + +class __IDAPython_Completion_Util(builtins.object) + | Internal utility class for auto-completion support + | + | Methods defined here: + | + | __call__(self, line, x) + | Call self as a function. + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | debug(self, *args) + | + | dir_namespace(self, m, prefix) + | + | get_candidates(self, qname, line, match_syntax_char) + | + | maybe_extend_syntactically(self, ns, name, line, syntax_char) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | QNAME_PAT = re.compile('([a-zA-Z_]([a-zA-Z0-9_\\.]*)?)') + +Help on function __install_excepthook in module ida_idaapi: + +__install_excepthook() + # Since version 5.5, PyQt5 doesn't simply print the PyQt exceptions by default + # anymore: https://github.com/baoboa/pyqt5/commit/1e1d8a3ba677ef3e47b916b8a5b9c281d0f8e4b5#diff-848704a82f6a6e3a13112145ce32ac69L63 + # The default behavior now is that qFatal() is called, causing the application + # to abort(). + # We do not want that to happen in IDA, and simply having a sys.excepthook + # that is different from sys.__excepthook__ is enough for PyQt5 to return + # to the previous behavior + +Help on function _bounded_getitem_iterator in module ida_idaapi: + +_bounded_getitem_iterator(self) + Helper function, to be set as __iter__ method for qvector-, or array-based classes. + +Help on function _listify_types in module ida_idaapi: + +_listify_types(*classes) + +Help on function _make_missed_695bwcompat_property in module ida_idaapi: + +_make_missed_695bwcompat_property(bad_attr, new_attr, has_setter) + +Help on function _make_one_time_warning_message in module ida_idaapi: + +_make_one_time_warning_message(bad_attr, new_attr) + +Help on function _qvector_back in module ida_idaapi: + +_qvector_back(self) + # ----------------------------------------------------------------------- + +Help on function _qvector_front in module ida_idaapi: + +_qvector_front(self) + # ----------------------------------------------------------------------- + +Help on function _replace_module_function in module ida_idaapi: + +_replace_module_function(replacement) + +Help on function _utf8_native in module ida_idaapi: + +_utf8_native(utf8) + +Help on function as_UTF16 in module ida_idaapi: + +as_UTF16(s) + Convenience function to convert a string into appropriate unicode format + +Help on function as_cstr in module ida_idaapi: + +as_cstr(val) + Returns a C str from the passed value. The passed value can be of type refclass (returned by a call to buffer() or byref()) + It scans for the first \x00 and returns the string value up to that point. + +Help on function as_int32 in module ida_idaapi: + +as_int32(v) + Returns a number as a signed int32 number + +Help on function as_signed in module ida_idaapi: + +as_signed(v, nbits=32) + Returns a number as signed. The number of bits are specified by the user. + The MSB holds the sign. + +Help on function as_uint32 in module ida_idaapi: + +as_uint32(v) + Returns a number as an unsigned int32 number + +Help on function copy_bits in module ida_idaapi: + +copy_bits(v, s, e=-1) + Copy bits from a value + @param v: the value + @param s: starting bit (0-based) + @param e: ending bit + +Help on function disable_script_timeout in module ida_idaapi: + +disable_script_timeout(*args) -> 'void' + disable_script_timeout() + Disables the script timeout and hides the script wait box. + Calling L{set_script_timeout} will not have any effects until the script is compiled and executed again + + @return: None + +Help on function enable_extlang_python in module ida_idaapi: + +enable_extlang_python(*args) -> 'void' + enable_extlang_python(enable) + Enables or disables Python extlang. + When enabled, all expressions will be evaluated by Python. + + @param enable: Set to True to enable, False otherwise + +Help on function enable_python_cli in module ida_idaapi: + +enable_python_cli(*args) -> 'void' + enable_python_cli(enable) + + @param enable: bool + +Help on function format_basestring in module ida_idaapi: + +format_basestring(*args) -> 'PyObject *' + format_basestring(_in) -> str + + @param _in: PyObject * + +Help on function get_inf_structure in module ida_idaapi: + +get_inf_structure(*args) -> 'idainfo *' + get_inf_structure() -> idainfo + Returns the global variable 'inf' (an instance of idainfo structure, see ida.hpp) + +Help on class loader_input_t in module ida_idaapi: + +class loader_input_t(builtins.object) + | A helper class to work with linput_t related functions. + | This class is also used by file loaders scripts. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, pycapsule=None) -> loader_input_t + | + | @param pycapsule: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_loader_input_t(...) + | delete_loader_input_t(self) + | + | close(self, *args) -> 'void' + | close(self) + | Closes the file + | + | file2base(self, *args) -> 'int' + | file2base(self, pos, ea1, ea2, patchable) -> int + | Load portion of file into the database + | This function will include (ea1..ea2) into the addressing space of the + | program (make it enabled) + | + | @param pos: position in the file + | @param ea1: ..ea2): range of destination linear addresses + | @param ea1: ..ea2): range of destination linear addresses + | @param patchable: should the kernel remember correspondance of + | file offsets to linear addresses. + | @return: 1-ok,0-read error, a warning is displayed + | + | filename(self, *args) -> 'PyObject *' + | filename(self) -> PyObject * + | + | get_byte(self, *args) -> 'PyObject *' + | get_byte(self) -> PyObject * + | Reads a single byte from the file. Returns None if EOF or the read byte + | + | get_linput(self, *args) -> 'linput_t *' + | get_linput(self) -> linput_t * + | + | gets(self, *args) -> 'PyObject *' + | gets(self, len) -> str + | Reads a line from the input file. Returns the read line or None + | + | @param len: size_t + | + | getz(self, *args) -> 'PyObject *' + | getz(self, sz, fpos=-1) -> PyObject * + | Returns a zero terminated string at the given position + | + | @param sz: maximum size of the string + | @param fpos: if != -1 then seek will be performed before reading + | @return: The string or None on failure. + | + | open(self, *args) -> 'bool' + | open(self, filename, remote=False) -> bool + | Opens a file (or a remote file) + | + | @param filename: char const * + | @param remote: bool + | @return: Boolean + | + | open_memory(self, *args) -> 'bool' + | open_memory(self, start, size=0) -> bool + | Create a linput for process memory (By internally calling idaapi.create_memory_linput()) + | This linput will use dbg->read_memory() to read data + | + | @param start: starting address of the input + | @param size: size of the memory range to represent as linput + | if unknown, may be passed as 0 + | + | opened(self, *args) -> 'bool' + | opened(self) -> bool + | Checks if the file is opened or not + | + | read(self, *args) -> 'PyObject *' + | read(self, size) -> bytes or None + | Reads from the file. Returns the buffer or None + | + | @param size: size_t + | + | readbytes(self, *args) -> 'PyObject *' + | readbytes(self, size, big_endian) -> PyObject * + | Similar to read() but it respect the endianness + | + | @param size: size_t + | @param big_endian: bool + | + | seek(self, *args) -> 'int64' + | seek(self, pos, whence=SEEK_SET) -> int64 + | Set input source position + | + | @param pos: int64 + | @param whence: int + | @return: the new position (not 0 as fseek!) + | + | set_linput(self, *args) -> 'void' + | set_linput(self, linput) + | Links the current loader_input_t instance to a linput_t instance + | + | @param linput: linput_t * + | + | size(self, *args) -> 'int64' + | size(self) -> int64 + | + | tell(self, *args) -> 'int64' + | tell(self) -> int64 + | Returns the current position + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | from_capsule(*args) -> 'loader_input_t *' + | from_capsule(pycapsule) -> loader_input_t + | + | @param pycapsule: PyObject * + | + | from_fp(*args) -> 'loader_input_t *' + | from_fp(fp) -> loader_input_t + | A static method to construct an instance from a FILE* + | + | @param fp: FILE * + | + | from_linput(*args) -> 'loader_input_t *' + | from_linput(linput) -> loader_input_t + | + | @param linput: linput_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __idc_cvt_id__ + | __idc_cvt_id__ + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function loader_input_t_from_capsule in module ida_idaapi: + +loader_input_t_from_capsule(*args) -> 'loader_input_t *' + loader_input_t_from_capsule(pycapsule) -> loader_input_t + + @param pycapsule: PyObject * + +Help on function loader_input_t_from_fp in module ida_idaapi: + +loader_input_t_from_fp(*args) -> 'loader_input_t *' + loader_input_t_from_fp(fp) -> loader_input_t + + @param fp: FILE * + +Help on function loader_input_t_from_linput in module ida_idaapi: + +loader_input_t_from_linput(*args) -> 'loader_input_t *' + loader_input_t_from_linput(linput) -> loader_input_t + + @param linput: linput_t * + +Help on function notify_when in module ida_idaapi: + +notify_when(when, callback) + Register a callback that will be called when an event happens. + @param when: one of NW_XXXX constants + @param callback: This callback prototype varies depending on the 'when' parameter: + The general callback format: + def notify_when_callback(nw_code) + In the case of NW_OPENIDB: + def notify_when_callback(nw_code, is_old_database) + @return: Boolean + +Help on class object_t in module ida_idaapi: + +class object_t(builtins.object) + | Helper class used to initialize empty objects + | + | Methods defined here: + | + | __getitem__(self, idx) + | Allow access to object attributes by index (like dictionaries) + | + | __init__(self, **kwds) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function parse_command_line3 in module ida_idaapi: + +parse_command_line3(*args) -> 'PyObject *' + parse_command_line3(cmdline) -> PyObject * + + @param cmdline: char const * + +Help on class plugin_t in module ida_idaapi: + +class plugin_t(pyidc_opaque_object_t) + | Base class for all scripted plugins. + | + | Method resolution order: + | plugin_t + | pyidc_opaque_object_t + | builtins.object + | + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on class plugmod_t in module ida_idaapi: + +class plugmod_t(pyidc_opaque_object_t) + | Base class for all scripted multi-plugins. + | + | Method resolution order: + | plugmod_t + | pyidc_opaque_object_t + | builtins.object + | + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on class py_clinked_object_t in module ida_idaapi: + +class py_clinked_object_t(pyidc_opaque_object_t) + | This is a utility and base class for C linked objects + | + | Method resolution order: + | py_clinked_object_t + | pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | __del__(self) + | Delete the link upon object destruction (only if not static) + | + | __init__(self, lnk=None) + | Initialize self. See help(type(self)) for accurate signature. + | + | _create_clink(self) + | Overwrite me. + | Creates a new clink + | @return: PyCapsule representing the C link + | + | _del_clink(self, lnk) + | Overwrite me. + | This method deletes the link + | + | _free(self) + | Explicitly delete the link (only if not static) + | + | _get_clink_ptr(self) + | Overwrite me. + | Returns the C link pointer as a 64bit number + | + | assign(self, other) + | Overwrite me. + | This method allows you to assign an instance contents to anothers + | @return: Boolean + | + | copy(self) + | Returns a new copy of this class + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | clink + | + | clink_ptr + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on function pycim_get_widget in module ida_idaapi: + +pycim_get_widget(*args) -> 'TWidget *' + pycim_get_widget(_self) -> TWidget * + + @param self: PyObject * + +Help on function pycim_view_close in module ida_idaapi: + +pycim_view_close(*args) -> 'void' + pycim_view_close(_self) + + @param self: PyObject * + +Help on function pygc_create_groups in module ida_idaapi: + +pygc_create_groups(*args) -> 'PyObject *' + pygc_create_groups(_self, groups_infos) -> [int, ...] or None + + @param self: PyObject * + @param groups_infos: PyObject * + +Help on function pygc_delete_groups in module ida_idaapi: + +pygc_delete_groups(*args) -> 'PyObject *' + pygc_delete_groups(_self, groups, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param new_current: PyObject * + +Help on function pygc_refresh in module ida_idaapi: + +pygc_refresh(*args) -> 'void' + pygc_refresh(_self) + + @param self: PyObject * + +Help on function pygc_set_groups_visibility in module ida_idaapi: + +pygc_set_groups_visibility(*args) -> 'PyObject *' + pygc_set_groups_visibility(_self, groups, expand, new_current) -> bool + + @param self: PyObject * + @param groups: PyObject * + @param expand: PyObject * + @param new_current: PyObject * + +Help on class pyidc_cvt_helper__ in module ida_idaapi: + +class pyidc_cvt_helper__(builtins.object) + | This is a special helper object that helps detect which kind + | of object is this python object wrapping and how to convert it + | back and from IDC. + | This object is characterized by its special attribute and its value + | + | Methods defined here: + | + | __init__(self, cvt_id, value) + | Initialize self. See help(type(self)) for accurate signature. + | + | _pyidc_cvt_helper____get_value = __get_value(self) + | + | _pyidc_cvt_helper____set_value = __set_value(self, v) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | value + +Help on class pyidc_opaque_object_t in module ida_idaapi: + +class pyidc_opaque_object_t(builtins.object) + | This is the base class for all Python<->IDC opaque objects + | + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __idc_cvt_id__ = 2 + +Help on function replfun in module ida_idaapi: + +replfun(func) + +Help on function require in module ida_idaapi: + +require(modulename, package=None) + Load, or reload a module. + + When under heavy development, a user's tool might consist of multiple + modules. If those are imported using the standard 'import' mechanism, + there is no guarantee that the Python implementation will re-read + and re-evaluate the module's Python code. In fact, it usually doesn't. + What should be done instead is 'reload()'-ing that module. + + This is a simple helper function that will do just that: In case the + module doesn't exist, it 'import's it, and if it does exist, + 'reload()'s it. + + The importing module (i.e., the module calling require()) will have + the loaded module bound to its globals(), under the name 'modulename'. + (If require() is called from the command line, the importing module + will be '__main__'.) + + For more information, see: <http://www.hexblog.com/?p=749>. + +Help on function set_script_timeout in module ida_idaapi: + +set_script_timeout(*args) -> 'int' + set_script_timeout(timeout) -> int + Changes the script timeout value. The script wait box dialog will be hidden and shown again when the timeout elapses. + See also L{disable_script_timeout}. + + @param timeout: This value is in seconds. + If this value is set to zero then the script will never timeout. + @return: Returns the old timeout value + +Help on function struct_unpack in module ida_idaapi: + +struct_unpack(buffer, signed=False, offs=0) + Unpack a buffer given its length and offset using struct.unpack_from(). + This function will know how to unpack the given buffer by using the lookup table '__struct_unpack_table' + If the buffer is of unknown length then None is returned. Otherwise the unpacked value is returned. + +Module "ida_idc"s docstring: +"""None""" + +Help on function get_mark_comment in module ida_idc: + +get_mark_comment(*args) -> 'PyObject *' + get_mark_comment(slot) -> PyObject * + + @param slot: int32 + +Help on function get_marked_pos in module ida_idc: + +get_marked_pos(*args) -> 'ea_t' + get_marked_pos(slot) -> ea_t + + @param slot: int32 + +Help on function mark_position in module ida_idc: + +mark_position(*args) -> 'void' + mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Module "ida_idd"s docstring: +""" +Contains definition of the interface to IDD modules. + +The interface consists of structures describing the target debugged processor +and a debugging API.""" + +Help on Appcall__ in module ida_idd object: + +class Appcall__(builtins.object) + | # ----------------------------------------------------------------------- + | + | Methods defined here: + | + | _Appcall____get_consts = __get_consts(self) + | + | __getattr__(self, name_or_ea) + | Allows you to call functions as if they were member functions (by returning a callable object) + | + | __getitem__(self, idx) + | Use self[func_name] syntax if the function name contains invalid characters for an attribute name + | See __getattr___ + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | UTF16(s) + | + | _Appcall____name_or_ea = __name_or_ea(name_or_ea) + | Function that accepts a name or an ea and checks if the address is enabled. + | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name + | @return: - Returns the resolved EA or + | - Raises an exception if the address is not enabled + | + | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) + | Function that accepts a tinfo_t object or type declaration as a string + | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object + | @return: - Returns the tinfo_t object + | - Raises an exception if the declaration cannot be parsed + | + | array(type_name) + | Defines an array type. Later you need to pack() / unpack() + | + | buffer(str=None, size=0, fill='\x00') + | Creates a string buffer. The returned value (r) will be a byref object. + | Use r.value to get the contents and r.size to get the buffer's size + | + | byref(val) + | Method to create references to immutable objects + | Currently we support references to int/strings + | Objects need not be passed by reference (this will be done automatically) + | + | cleanup_appcall(tid=0) + | Equivalent to IDC's CleanupAppcall() + | + | cstr(val) + | + | get_appcall_options() + | Return the global Appcall options + | + | int64(v) + | Whenever a 64bit number is needed use this method to construct an object + | + | obj(**kwds) + | Returns an empty object or objects with attributes as passed via its keywords arguments + | + | proto(name_or_ea, proto_or_tinfo, flags=None) + | Allows you to instantiate an appcall (callable object) with the desired prototype + | @param name_or_ea: The name of the function (will be resolved with LocByName()) + | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object + | @return: - On failure it raises an exception if the prototype could not be parsed + | or the address is not resolvable + | - Returns a callbable Appcall instance with the given prototypes and flags + | + | set_appcall_options(opt) + | Method to change the Appcall options globally (not per Appcall) + | + | typedobj(typedecl_or_tinfo, ea=None) + | Returns an appcall object for a type (can be given as tinfo_t object or + | as a string declaration) + | One can then use retrieve() member method + | @param ea: Optional parameter that later can be used to retrieve the type + | @return: Appcall object or raises ValueError exception + | + | unicode = UTF16(s) + | + | valueof(name, default=0) + | Returns the numeric value of a given name string. + | If the name could not be resolved then the default value will be returned + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | Consts + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | APPCALL_DEBEV = 2 + | + | APPCALL_MANUAL = 1 + | + | APPCALL_TIMEOUT = 4 + | + | __name__ = 'Appcall__' + +Help on class Appcall__ in module ida_idd: + +class Appcall__(builtins.object) + | # ----------------------------------------------------------------------- + | + | Methods defined here: + | + | _Appcall____get_consts = __get_consts(self) + | + | __getattr__(self, name_or_ea) + | Allows you to call functions as if they were member functions (by returning a callable object) + | + | __getitem__(self, idx) + | Use self[func_name] syntax if the function name contains invalid characters for an attribute name + | See __getattr___ + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | UTF16(s) + | + | _Appcall____name_or_ea = __name_or_ea(name_or_ea) + | Function that accepts a name or an ea and checks if the address is enabled. + | If a name is passed then idaapi.get_name_ea() is applied to retrieve the name + | @return: - Returns the resolved EA or + | - Raises an exception if the address is not enabled + | + | _Appcall____typedecl_or_tinfo = __typedecl_or_tinfo(typedecl_or_tinfo, flags=None) + | Function that accepts a tinfo_t object or type declaration as a string + | If a type declaration is passed then ida_typeinf.parse_decl() is applied to prepare tinfo_t object + | @return: - Returns the tinfo_t object + | - Raises an exception if the declaration cannot be parsed + | + | array(type_name) + | Defines an array type. Later you need to pack() / unpack() + | + | buffer(str=None, size=0, fill='\x00') + | Creates a string buffer. The returned value (r) will be a byref object. + | Use r.value to get the contents and r.size to get the buffer's size + | + | byref(val) + | Method to create references to immutable objects + | Currently we support references to int/strings + | Objects need not be passed by reference (this will be done automatically) + | + | cleanup_appcall(tid=0) + | Equivalent to IDC's CleanupAppcall() + | + | cstr(val) + | + | get_appcall_options() + | Return the global Appcall options + | + | int64(v) + | Whenever a 64bit number is needed use this method to construct an object + | + | obj(**kwds) + | Returns an empty object or objects with attributes as passed via its keywords arguments + | + | proto(name_or_ea, proto_or_tinfo, flags=None) + | Allows you to instantiate an appcall (callable object) with the desired prototype + | @param name_or_ea: The name of the function (will be resolved with LocByName()) + | @param proto_or_tinfo: function prototype as a string or type of the function as tinfo_t object + | @return: - On failure it raises an exception if the prototype could not be parsed + | or the address is not resolvable + | - Returns a callbable Appcall instance with the given prototypes and flags + | + | set_appcall_options(opt) + | Method to change the Appcall options globally (not per Appcall) + | + | typedobj(typedecl_or_tinfo, ea=None) + | Returns an appcall object for a type (can be given as tinfo_t object or + | as a string declaration) + | One can then use retrieve() member method + | @param ea: Optional parameter that later can be used to retrieve the type + | @return: Appcall object or raises ValueError exception + | + | unicode = UTF16(s) + | + | valueof(name, default=0) + | Returns the numeric value of a given name string. + | If the name could not be resolved then the default value will be returned + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | Consts + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | APPCALL_DEBEV = 2 + | + | APPCALL_MANUAL = 1 + | + | APPCALL_TIMEOUT = 4 + | + | __name__ = 'Appcall__' + +Help on class Appcall_array__ in module ida_idd: + +class Appcall_array__(builtins.object) + | This class is used with Appcall.array() method + | + | Methods defined here: + | + | __init__(self, tp) + | Initialize self. See help(type(self)) for accurate signature. + | + | pack(self, L) + | Packs a list or tuple into a byref buffer + | + | try_to_convert_to_list(self, obj) + | Is this object a list? We check for the existance of attribute zero and attribute self.size-1 + | + | unpack(self, buf, as_list=True) + | Unpacks an array back into a list or an object + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class Appcall_callable__ in module ida_idd: + +class Appcall_callable__(builtins.object) + | Helper class to issue appcalls using a natural syntax: + | appcall.FunctionNameInTheDatabase(arguments, ....) + | or + | appcall["Function@8"](arguments, ...) + | or + | f8 = appcall["Function@8"] + | f8(arg1, arg2, ...) + | or + | o = appcall.obj() + | i = byref(5) + | appcall.funcname(arg1, i, "hello", o) + | + | Methods defined here: + | + | _Appcall_callable____get_ea = __get_ea(self) + | + | _Appcall_callable____get_fields = __get_fields(self) + | + | _Appcall_callable____get_options = __get_options(self) + | + | _Appcall_callable____get_size = __get_size(self) + | + | _Appcall_callable____get_tif = __get_tif(self) + | + | _Appcall_callable____get_timeout = __get_timeout(self) + | + | _Appcall_callable____get_type = __get_type(self) + | + | _Appcall_callable____set_ea = __set_ea(self, val) + | + | _Appcall_callable____set_options = __set_options(self, v) + | + | _Appcall_callable____set_timeout = __set_timeout(self, v) + | + | __call__(self, *args) + | Make object callable. We redirect execution to idaapi.appcall() + | + | __init__(self, ea, tinfo_or_typestr=None, fields=None) + | Initializes an appcall with a given function ea + | + | retrieve(self, src=None, flags=0) + | Unpacks a typed object from the database if an ea is given or from a string if a string was passed + | @param src: the address of the object or a string + | @return: Returns a tuple of boolean and object or error number (Bool, Error | Object). + | + | store(self, obj, dest_ea=None, base_ea=0, flags=0) + | Packs an object into a given ea if provided or into a string if no address was passed. + | @param obj: The object to pack + | @param dest_ea: If packing to idb this will be the store location + | @param base_ea: If packing to a buffer, this will be the base that will be used to relocate the pointers + | + | @return: - If packing to a string then a Tuple(Boolean, packed_string or error code) + | - If packing to the database then a return code is returned (0 is success) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | + | fields + | + | options + | + | size + | + | tif + | + | timeout + | + | type + +Help on class Appcall_consts__ in module ida_idd: + +class Appcall_consts__(builtins.object) + | Helper class used by Appcall.Consts attribute + | It is used to retrieve constants via attribute access + | + | Methods defined here: + | + | __getattr__(self, attr) + | + | __init__(self, default=None) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function appcall in module ida_idd: + +appcall(*args) -> 'PyObject *' + appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + + @param func_ea: ea_t + @param tid: thid_t + @param _type_or_none: bytevec_t const & + @param _fields: bytevec_t const & + @param arg_list: PyObject * + +Help on class bptaddr_t in module ida_idd: + +class bptaddr_t(builtins.object) + | Proxy of C++ bptaddr_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> bptaddr_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bptaddr_t(...) + | delete_bptaddr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hea + | hea + | + | kea + | kea + | + | thisown + | The membership flag + +Help on class call_stack_info_t in module ida_idd: + +class call_stack_info_t(builtins.object) + | Proxy of C++ call_stack_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: call_stack_info_t const & + | + | __init__(self, *args) + | __init__(self) -> call_stack_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: call_stack_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_call_stack_info_t(...) + | delete_call_stack_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | callea + | callea + | + | fp + | fp + | + | funcea + | funcea + | + | funcok + | funcok + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class call_stack_info_vec_t in module ida_idd: + +class call_stack_info_vec_t(builtins.object) + | Proxy of C++ qvector< call_stack_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __getitem__(self, *args) -> 'call_stack_info_t const &' + | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> call_stack_info_vec_t + | __init__(self, x) -> call_stack_info_vec_t + | + | @param x: qvector< call_stack_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & + | + | __swig_destroy__ = delete_call_stack_info_vec_t(...) + | delete_call_stack_info_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | at(self, *args) -> 'call_stack_info_t const &' + | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | begin(self) -> call_stack_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | end(self) -> call_stack_info_t + | + | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | + | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator + | + | extract(self, *args) -> 'call_stack_info_t *' + | extract(self) -> call_stack_info_t + | + | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'call_stack_info_t &' + | push_back(self, x) + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class call_stack_t in module ida_idd: + +class call_stack_t(call_stack_info_vec_t) + | Proxy of C++ call_stack_t class. + | + | Method resolution order: + | call_stack_t + | call_stack_info_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> call_stack_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_call_stack_t(...) + | delete_call_stack_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from call_stack_info_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __getitem__(self, *args) -> 'call_stack_info_t const &' + | __getitem__(self, i) -> call_stack_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< call_stack_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: call_stack_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: call_stack_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | at(self, *args) -> 'call_stack_info_t const &' + | at(self, _idx) -> call_stack_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | begin(self) -> call_stack_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | end(self) -> call_stack_info_t + | + | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | erase(self, it) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | + | erase(self, first, last) -> call_stack_info_t + | + | @param first: qvector< call_stack_info_t >::iterator + | @param last: qvector< call_stack_info_t >::iterator + | + | extract(self, *args) -> 'call_stack_info_t *' + | extract(self) -> call_stack_info_t + | + | find(self, *args) -> 'qvector< call_stack_info_t >::const_iterator' + | find(self, x) -> call_stack_info_t + | + | @param x: call_stack_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=call_stack_info_t()) + | + | @param x: call_stack_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: call_stack_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: call_stack_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' + | insert(self, it, x) -> call_stack_info_t + | + | @param it: qvector< call_stack_info_t >::iterator + | @param x: call_stack_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'call_stack_info_t &' + | push_back(self, x) + | + | @param x: call_stack_info_t const & + | + | push_back(self) -> call_stack_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: call_stack_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< call_stack_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from call_stack_info_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from call_stack_info_vec_t: + | + | __hash__ = None + +Help on function can_exc_continue in module ida_idd: + +can_exc_continue(*args) -> 'bool' + can_exc_continue(ev) -> bool + + @param ev: debug_event_t const * + +Help on function cleanup_appcall in module ida_idd: + +cleanup_appcall(*args) -> 'error_t' + cleanup_appcall(tid) -> error_t + Cleanup after manual appcall. + + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread The + application state is restored as it was before calling the last + appcall(). Nested appcalls are supported. + @return: eOk if successful, otherwise an error code + +Help on function dbg_appcall in module ida_idd: + +dbg_appcall(*args) -> 'error_t' + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t + Call a function from the debugged application. + + @param retval: (C++: idc_value_t *) function return value + * for APPCALL_MANUAL, r will hold the new stack point value + * for APPCALL_DEBEV, r will hold the exception information upon failure and the + return code will be eExecThrow + @param func_ea: (C++: ea_t) address to call + @param tid: (C++: thid_t) thread to use. NO_THREAD means to use the current thread + @param ptif: (C++: const tinfo_t *) pointer to type of the function to call + @param argv: (C++: idc_value_t *) array of arguments + @param argnum: (C++: size_t) number of actual arguments + @return: eOk if successful, otherwise an error code + +Help on built-in function dbg_can_query in module _ida_dbg: + +dbg_can_query(...) + dbg_can_query() -> bool + +Help on function dbg_get_memory_info in module ida_idd: + +dbg_get_memory_info(*args) -> 'PyObject *' + dbg_get_memory_info() -> PyObject * + This function returns the memory configuration of a debugged process. + + @return: None if no debugger is active + tuple(start_ea, end_ea, name, sclass, sbase, bitness, perm) + +Help on function dbg_get_name in module ida_idd: + +dbg_get_name(*args) -> 'PyObject *' + dbg_get_name() -> PyObject * + This function returns the current debugger's name. + + @return: Debugger name or None if no debugger is active + +Help on function dbg_get_registers in module ida_idd: + +dbg_get_registers(*args) -> 'PyObject *' + dbg_get_registers() -> PyObject * + This function returns the register definition from the currently loaded debugger. + Basically, it returns an array of structure similar to to idd.hpp / register_info_t + + @return: None if no debugger is loaded + tuple(name, flags, class, dtype, bit_strings, default_bit_strings_mask) + The bit_strings can be a tuple of strings or None (if the register does not have bit_strings) + +Help on function dbg_get_thread_sreg_base in module ida_idd: + +dbg_get_thread_sreg_base(*args) -> 'PyObject *' + dbg_get_thread_sreg_base(tid, sreg_value) -> PyObject * + Returns the segment register base value + + @param tid: thread id + @param sreg_value: segment register (selector) value + @return: - The base as an 'ea' + - Or None on failure + +Help on function dbg_read_memory in module ida_idd: + +dbg_read_memory(*args) -> 'PyObject *' + dbg_read_memory(ea, sz) -> PyObject * + Reads from the debugee's memory at the specified ea + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) + - Or None on failure + +Help on function dbg_write_memory in module ida_idd: + +dbg_write_memory(*args) -> 'PyObject *' + dbg_write_memory(ea, buf) -> bool + Writes a buffer to the debugee's memory + + @param ea: ea_t + @param buf: bytevec_t const & + @return: Boolean + +Help on class debapp_attrs_t in module ida_idd: + +class debapp_attrs_t(builtins.object) + | Proxy of C++ debapp_attrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debapp_attrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debapp_attrs_t(...) + | delete_debapp_attrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | addrsize + | addrsize + | + | cbsize + | cbsize + | + | is_be + | is_be + | + | platform + | platform + | + | thisown + | The membership flag + +Help on class debug_event_t in module ida_idd: + +class debug_event_t(builtins.object) + | Proxy of C++ debug_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debug_event_t + | __init__(self, r) -> debug_event_t + | + | @param r: debug_event_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debug_event_t(...) + | delete_debug_event_t(self) + | + | bpt(self, *args) -> 'bptaddr_t const &' + | bpt(self) -> bptaddr_t + | + | bpt_ea(self, *args) -> 'ea_t' + | bpt_ea(self) -> ea_t + | On some systems with special memory mappings the triggered ea might be different + | from the actual ea. Calculate the address to use. + | + | clear(self, *args) -> 'void' + | clear(self) + | clear the dependent information (see below), set event code to NO_EVENT + | + | clear_all(self, *args) -> 'void' + | clear_all(self) + | + | copy(self, *args) -> 'debug_event_t &' + | copy(self, r) -> debug_event_t + | + | @param r: debug_event_t const & + | + | eid(self, *args) -> 'event_id_t' + | eid(self) -> event_id_t + | Event code. + | + | exc(self, *args) -> 'excinfo_t const &' + | exc(self) -> excinfo_t + | + | exit_code(self, *args) -> 'int const &' + | exit_code(self) -> int const & + | + | info(self, *args) -> 'qstring const &' + | info(self) -> qstring + | info(self) -> qstring const & + | + | modinfo(self, *args) -> 'modinfo_t const &' + | modinfo(self) -> modinfo_t + | + | set_bpt(self, *args) -> 'bptaddr_t &' + | set_bpt(self) -> bptaddr_t + | + | set_eid(self, *args) -> 'void' + | set_eid(self, id) + | Set event code. If the new event code is compatible with the old one then the + | dependent information (see below) will be preserved. Otherwise the event will be + | cleared and the new event code will be set. + | + | @param id: (C++: event_id_t) enum event_id_t + | + | set_exception(self, *args) -> 'excinfo_t &' + | set_exception(self) -> excinfo_t + | + | set_exit_code(self, *args) -> 'void' + | set_exit_code(self, id, code) + | + | @param id: enum event_id_t + | @param code: int + | + | set_info(self, *args) -> 'qstring &' + | set_info(self, id) -> qstring & + | + | @param id: enum event_id_t + | + | set_modinfo(self, *args) -> 'modinfo_t &' + | set_modinfo(self, id) -> modinfo_t + | + | @param id: enum event_id_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | handled + | handled + | + | pid + | pid + | + | thisown + | The membership flag + | + | tid + | tid + +Help on class debugger_t in module ida_idd: + +class debugger_t(builtins.object) + | Proxy of C++ debugger_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> debugger_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_debugger_t(...) + | delete_debugger_t(self) + | + | _debugger_t__get_bpt_bytes = __get_bpt_bytes(self, *args) -> 'bytevec_t' + | __get_bpt_bytes(self) -> bytevec_t + | + | _debugger_t__get_nregs = __get_nregs(self, *args) -> 'int' + | __get_nregs(self) -> int + | + | _debugger_t__get_regclasses = __get_regclasses(self, *args) -> 'PyObject *' + | __get_regclasses(self) -> PyObject * + | + | _debugger_t__get_registers = __get_registers(self, *args) -> 'dynamic_wrapped_array_t< register_info_t >' + | __get_registers(self) -> dyn_register_info_array + | + | attach_process(self, *args) -> 'drc_t' + | attach_process(self, pid, event_id, dbg_proc_flags) -> drc_t + | + | @param pid: pid_t + | @param event_id: int + | @param dbg_proc_flags: uint32 + | + | bin_search(self, *args) -> 'drc_t' + | bin_search(self, start_ea, end_ea, data, srch_flags) -> drc_t + | + | @param start_ea: ea_t + | @param end_ea: ea_t + | @param data: compiled_binpat_vec_t const & + | @param srch_flags: int + | + | cache_block_size(self, *args) -> 'size_t' + | cache_block_size(self) -> size_t + | + | can_continue_from_bpt(self, *args) -> 'bool' + | can_continue_from_bpt(self) -> bool + | + | can_debug_standalone_dlls(self, *args) -> 'bool' + | can_debug_standalone_dlls(self) -> bool + | + | check_bpt(self, *args) -> 'drc_t' + | check_bpt(self, bptvc, type, ea, len) -> drc_t + | + | @param bptvc: int * + | @param type: bpttype_t + | @param ea: ea_t + | @param len: int + | + | cleanup_appcall(self, *args) -> 'drc_t' + | cleanup_appcall(self, tid) -> drc_t + | + | @param tid: thid_t + | + | close_file(self, *args) -> 'void' + | close_file(self, fn) + | + | @param fn: int + | + | dbg_enable_trace(self, *args) -> 'bool' + | dbg_enable_trace(self, tid, enable, trace_flags) -> bool + | + | @param tid: thid_t + | @param enable: bool + | @param trace_flags: int + | + | detach_process(self, *args) -> 'drc_t' + | detach_process(self) -> drc_t + | + | eval_lowcnd(self, *args) -> 'drc_t' + | eval_lowcnd(self, tid, ea) -> drc_t + | + | @param tid: thid_t + | @param ea: ea_t + | + | exit_process(self, *args) -> 'drc_t' + | exit_process(self) -> drc_t + | + | fake_memory(self, *args) -> 'bool' + | fake_memory(self) -> bool + | + | get_debapp_attrs(self, *args) -> 'bool' + | get_debapp_attrs(self, out_pattrs) -> bool + | + | @param out_pattrs: debapp_attrs_t * + | + | get_debmod_extensions(self, *args) -> 'void const *' + | get_debmod_extensions(self) -> void const * + | + | get_debug_event(self, *args) -> 'gdecode_t' + | get_debug_event(self, event, timeout_ms) -> gdecode_t + | + | @param event: debug_event_t * + | @param timeout_ms: int + | + | get_memory_info(self, *args) -> 'drc_t' + | get_memory_info(self, ranges) -> drc_t + | + | @param ranges: meminfo_vec_t & + | + | get_processes(self, *args) -> 'drc_t' + | get_processes(self, procs) -> drc_t + | + | @param procs: procinfo_vec_t * + | + | get_srcinfo_path(self, *args) -> 'bool' + | get_srcinfo_path(self, path, base) -> bool + | + | @param path: qstring * + | @param base: ea_t + | + | has_appcall(self, *args) -> 'bool' + | has_appcall(self) -> bool + | + | has_attach_process(self, *args) -> 'bool' + | has_attach_process(self) -> bool + | + | has_check_bpt(self, *args) -> 'bool' + | has_check_bpt(self) -> bool + | + | has_detach_process(self, *args) -> 'bool' + | has_detach_process(self) -> bool + | + | has_get_processes(self, *args) -> 'bool' + | has_get_processes(self) -> bool + | + | has_map_address(self, *args) -> 'bool' + | has_map_address(self) -> bool + | + | has_open_file(self, *args) -> 'bool' + | has_open_file(self) -> bool + | + | has_request_pause(self, *args) -> 'bool' + | has_request_pause(self) -> bool + | + | has_rexec(self, *args) -> 'bool' + | has_rexec(self) -> bool + | + | has_set_exception_info(self, *args) -> 'bool' + | has_set_exception_info(self) -> bool + | + | has_set_resume_mode(self, *args) -> 'bool' + | has_set_resume_mode(self) -> bool + | + | has_soft_bpt(self, *args) -> 'bool' + | has_soft_bpt(self) -> bool + | + | has_thread_continue(self, *args) -> 'bool' + | has_thread_continue(self) -> bool + | + | has_thread_get_sreg_base(self, *args) -> 'bool' + | has_thread_get_sreg_base(self) -> bool + | + | has_thread_suspend(self, *args) -> 'bool' + | has_thread_suspend(self) -> bool + | + | has_update_call_stack(self, *args) -> 'bool' + | has_update_call_stack(self) -> bool + | + | init_debugger(self, *args) -> 'bool' + | init_debugger(self, hostname, portnum, password) -> bool + | + | @param hostname: char const * + | @param portnum: int + | @param password: char const * + | + | is_remote(self, *args) -> 'bool' + | is_remote(self) -> bool + | + | is_resmod_avail(self, *args) -> 'bool' + | is_resmod_avail(self, resmod) -> bool + | + | @param resmod: int + | + | is_safe(self, *args) -> 'bool' + | is_safe(self) -> bool + | + | is_tracing_enabled(self, *args) -> 'bool' + | is_tracing_enabled(self, tid, tracebit) -> bool + | + | @param tid: thid_t + | @param tracebit: int + | + | map_address(self, *args) -> 'ea_t' + | map_address(self, off, regs, regnum) -> ea_t + | + | @param off: ea_t + | @param regs: regval_t const * + | @param regnum: int + | + | may_disturb(self, *args) -> 'bool' + | may_disturb(self) -> bool + | + | may_take_exit_snapshot(self, *args) -> 'bool' + | may_take_exit_snapshot(self) -> bool + | + | must_have_hostname(self, *args) -> 'bool' + | must_have_hostname(self) -> bool + | + | open_file(self, *args) -> 'int' + | open_file(self, file, fsize, readonly) -> int + | + | @param file: char const * + | @param fsize: uint64 * + | @param readonly: bool + | + | read_file(self, *args) -> 'ssize_t' + | read_file(self, fn, off, buf, size) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void * + | @param size: size_t + | + | read_memory(self, *args) -> 'drc_t' + | read_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void * + | @param size: size_t + | + | read_registers(self, *args) -> 'drc_t' + | read_registers(self, tid, clsmask, values) -> drc_t + | + | @param tid: thid_t + | @param clsmask: int + | @param values: regval_t * + | + | rebase_if_required_to(self, *args) -> 'void' + | rebase_if_required_to(self, new_base) + | + | @param new_base: ea_t + | + | regs(self, *args) -> 'register_info_t &' + | regs(self, idx) -> register_info_t + | + | @param idx: int + | + | request_pause(self, *args) -> 'drc_t' + | request_pause(self) -> drc_t + | + | resume(self, *args) -> 'drc_t' + | resume(self, event) -> drc_t + | + | @param event: debug_event_t const * + | + | rexec(self, *args) -> 'int' + | rexec(self, cmdline) -> int + | + | @param cmdline: char const * + | + | send_ioctl(self, *args) -> 'drc_t' + | send_ioctl(self, fn, buf, poutbuf, poutsize) -> drc_t + | + | @param fn: int + | @param buf: void const * + | @param poutbuf: void ** + | @param poutsize: ssize_t * + | + | set_exception_info(self, *args) -> 'void' + | set_exception_info(self, info, qty) + | + | @param info: exception_info_t const * + | @param qty: int + | + | set_resume_mode(self, *args) -> 'drc_t' + | set_resume_mode(self, tid, resmod) -> drc_t + | + | @param tid: thid_t + | @param resmod: enum resume_mode_t + | + | start_process(self, *args) -> 'drc_t' + | start_process(self, path, args, startdir, dbg_proc_flags, input_path, input_file_crc32) -> drc_t + | + | @param path: char const * + | @param args: char const * + | @param startdir: char const * + | @param dbg_proc_flags: uint32 + | @param input_path: char const * + | @param input_file_crc32: uint32 + | + | supports_debthread(self, *args) -> 'bool' + | supports_debthread(self) -> bool + | + | supports_lowcnds(self, *args) -> 'bool' + | supports_lowcnds(self) -> bool + | + | suspended(self, *args) -> 'void' + | suspended(self, dlls_added, thr_names=None) + | + | @param dlls_added: bool + | @param thr_names: thread_name_vec_t * + | + | term_debugger(self, *args) -> 'bool' + | term_debugger(self) -> bool + | + | thread_continue(self, *args) -> 'drc_t' + | thread_continue(self, tid) -> drc_t + | + | @param tid: thid_t + | + | thread_get_sreg_base(self, *args) -> 'drc_t' + | thread_get_sreg_base(self, answer, tid, sreg_value) -> drc_t + | + | @param answer: ea_t * + | @param tid: thid_t + | @param sreg_value: int + | + | thread_suspend(self, *args) -> 'drc_t' + | thread_suspend(self, tid) -> drc_t + | + | @param tid: thid_t + | + | update_bpts(self, *args) -> 'drc_t' + | update_bpts(self, nbpts, bpts, nadd, ndel) -> drc_t + | + | @param nbpts: int * + | @param bpts: update_bpt_info_t * + | @param nadd: int + | @param ndel: int + | + | update_call_stack(self, *args) -> 'drc_t' + | update_call_stack(self, tid, trace) -> drc_t + | + | @param tid: thid_t + | @param trace: call_stack_t * + | + | update_lowcnds(self, *args) -> 'drc_t' + | update_lowcnds(self, nupdated, lowcnds, nlowcnds) -> drc_t + | + | @param nupdated: int * + | @param lowcnds: lowcnd_t const * + | @param nlowcnds: int + | + | use_memregs(self, *args) -> 'bool' + | use_memregs(self) -> bool + | + | use_sregs(self, *args) -> 'bool' + | use_sregs(self) -> bool + | + | virtual_threads(self, *args) -> 'bool' + | virtual_threads(self) -> bool + | + | write_file(self, *args) -> 'ssize_t' + | write_file(self, fn, off, buf) -> ssize_t + | + | @param fn: int + | @param off: qoff64_t + | @param buf: void const * + | + | write_memory(self, *args) -> 'drc_t' + | write_memory(self, nbytes, ea, buffer, size) -> drc_t + | + | @param nbytes: size_t * + | @param ea: ea_t + | @param buffer: void const * + | @param size: size_t + | + | write_register(self, *args) -> 'drc_t' + | write_register(self, tid, regidx, value) -> drc_t + | + | @param tid: thid_t + | @param regidx: int + | @param value: regval_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bpt_bytes + | __get_bpt_bytes(self) -> bytevec_t + | + | bpt_size + | bpt_size + | + | default_regclasses + | default_regclasses + | + | filetype + | filetype + | + | flags + | flags + | + | flags2 + | flags2 + | + | id + | id + | + | memory_page_size + | memory_page_size + | + | name + | name + | + | nregs + | __get_nregs(self) -> int + | + | processor + | processor + | + | regclasses + | __get_regclasses(self) -> PyObject * + | + | registers + | __get_registers(self) -> dyn_register_info_array + | + | resume_modes + | resume_modes + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_appcall = 33 + | + | ev_attach_process = 4 + | + | ev_bin_search = 41 + | + | ev_check_bpt = 23 + | + | ev_cleanup_appcall = 34 + | + | ev_close_file = 27 + | + | ev_dbg_enable_trace = 37 + | + | ev_detach_process = 5 + | + | ev_eval_lowcnd = 35 + | + | ev_exit_process = 9 + | + | ev_get_debapp_attrs = 6 + | + | ev_get_debmod_extensions = 31 + | + | ev_get_debug_event = 10 + | + | ev_get_memory_info = 20 + | + | ev_get_processes = 2 + | + | ev_get_srcinfo_path = 40 + | + | ev_init_debugger = 0 + | + | ev_is_tracing_enabled = 38 + | + | ev_map_address = 30 + | + | ev_open_file = 26 + | + | ev_read_file = 28 + | + | ev_read_memory = 21 + | + | ev_read_registers = 17 + | + | ev_rebase_if_required_to = 7 + | + | ev_request_pause = 8 + | + | ev_resume = 11 + | + | ev_rexec = 39 + | + | ev_send_ioctl = 36 + | + | ev_set_exception_info = 12 + | + | ev_set_resume_mode = 16 + | + | ev_start_process = 3 + | + | ev_suspended = 13 + | + | ev_term_debugger = 1 + | + | ev_thread_continue = 15 + | + | ev_thread_get_sreg_base = 19 + | + | ev_thread_suspend = 14 + | + | ev_update_bpts = 24 + | + | ev_update_call_stack = 32 + | + | ev_update_lowcnds = 25 + | + | ev_write_file = 29 + | + | ev_write_memory = 22 + | + | ev_write_register = 18 + +Help on class dyn_register_info_array in module ida_idd: + +class dyn_register_info_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< register_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'register_info_t const &' + | __getitem__(self, i) -> register_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_register_info_array + | + | @param _data: register_info_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: register_info_t const & + | + | __swig_destroy__ = delete_dyn_register_info_array(...) + | delete_dyn_register_info_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on class exception_info_t in module ida_idd: + +class exception_info_t(builtins.object) + | Proxy of C++ exception_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> exception_info_t + | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | + | @param _code: uint + | @param _flags: uint32 + | @param _name: char const * + | @param _desc: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_exception_info_t(...) + | delete_exception_info_t(self) + | + | break_on(self, *args) -> 'bool' + | break_on(self) -> bool + | Should we break on the exception? + | + | handle(self, *args) -> 'bool' + | handle(self) -> bool + | Should we handle the exception? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | code + | code + | + | desc + | desc + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + +Help on class excinfo_t in module ida_idd: + +class excinfo_t(builtins.object) + | Proxy of C++ excinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> excinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_excinfo_t(...) + | delete_excinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | can_cont + | can_cont + | + | code + | code + | + | ea + | ea + | + | info + | info + | + | thisown + | The membership flag + +Help on class excvec_t in module ida_idd: + +class excvec_t(builtins.object) + | Proxy of C++ qvector< exception_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'exception_info_t const &' + | __getitem__(self, i) -> exception_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> excvec_t + | __init__(self, x) -> excvec_t + | + | @param x: qvector< exception_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: exception_info_t const & + | + | __swig_destroy__ = delete_excvec_t(...) + | delete_excvec_t(self) + | + | at(self, *args) -> 'exception_info_t const &' + | at(self, _idx) -> exception_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< exception_info_t >::const_iterator' + | begin(self) -> exception_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< exception_info_t >::const_iterator' + | end(self) -> exception_info_t + | + | erase(self, *args) -> 'qvector< exception_info_t >::iterator' + | erase(self, it) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | + | erase(self, first, last) -> exception_info_t + | + | @param first: qvector< exception_info_t >::iterator + | @param last: qvector< exception_info_t >::iterator + | + | extract(self, *args) -> 'exception_info_t *' + | extract(self) -> exception_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=exception_info_t()) + | + | @param x: exception_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: exception_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< exception_info_t >::iterator' + | insert(self, it, x) -> exception_info_t + | + | @param it: qvector< exception_info_t >::iterator + | @param x: exception_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'exception_info_t &' + | push_back(self, x) + | + | @param x: exception_info_t const & + | + | push_back(self) -> exception_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: exception_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< exception_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function get_dbg in module ida_idd: + +get_dbg(*args) -> 'debugger_t *' + get_dbg() -> debugger_t + +Help on function get_event_bpt_hea in module ida_idd: + +get_event_bpt_hea(*args) -> 'ea_t' + get_event_bpt_hea(ev) -> ea_t + + @param ev: debug_event_t const * + +Help on function get_event_exc_code in module ida_idd: + +get_event_exc_code(*args) -> 'uint' + get_event_exc_code(ev) -> uint + + @param ev: debug_event_t const * + +Help on function get_event_exc_ea in module ida_idd: + +get_event_exc_ea(*args) -> 'ea_t' + get_event_exc_ea(ev) -> ea_t + + @param ev: debug_event_t const * + +Help on function get_event_exc_info in module ida_idd: + +get_event_exc_info(*args) -> 'size_t' + get_event_exc_info(ev) -> str + + @param ev: debug_event_t const * + +Help on function get_event_info in module ida_idd: + +get_event_info(*args) -> 'size_t' + get_event_info(ev) -> str + + @param ev: debug_event_t const * + +Help on function get_event_module_base in module ida_idd: + +get_event_module_base(*args) -> 'ea_t' + get_event_module_base(ev) -> ea_t + + @param ev: debug_event_t const * + +Help on function get_event_module_name in module ida_idd: + +get_event_module_name(*args) -> 'size_t' + get_event_module_name(ev) -> str + + @param ev: debug_event_t const * + +Help on function get_event_module_size in module ida_idd: + +get_event_module_size(*args) -> 'asize_t' + get_event_module_size(ev) -> asize_t + + @param ev: debug_event_t const * + +Help on class meminfo_vec_t in module ida_idd: + +class meminfo_vec_t(meminfo_vec_template_t) + | Proxy of C++ meminfo_vec_t class. + | + | Method resolution order: + | meminfo_vec_t + | meminfo_vec_template_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_meminfo_vec_t(...) + | delete_meminfo_vec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from meminfo_vec_template_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __getitem__(self, *args) -> 'memory_info_t const &' + | __getitem__(self, i) -> memory_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memory_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & + | + | at(self, *args) -> 'memory_info_t const &' + | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | begin(self) -> memory_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | end(self) -> memory_info_t + | + | erase(self, *args) -> 'qvector< memory_info_t >::iterator' + | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | + | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator + | + | extract(self, *args) -> 'memory_info_t *' + | extract(self) -> memory_info_t + | + | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: memory_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memory_info_t >::iterator' + | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memory_info_t &' + | push_back(self, x) + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memory_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from meminfo_vec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from meminfo_vec_template_t: + | + | __hash__ = None + +Help on class meminfo_vec_template_t in module ida_idd: + +class meminfo_vec_template_t(builtins.object) + | Proxy of C++ qvector< memory_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __getitem__(self, *args) -> 'memory_info_t const &' + | __getitem__(self, i) -> memory_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> meminfo_vec_template_t + | __init__(self, x) -> meminfo_vec_template_t + | + | @param x: qvector< memory_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< memory_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: memory_info_t const & + | + | __swig_destroy__ = delete_meminfo_vec_template_t(...) + | delete_meminfo_vec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: memory_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: memory_info_t const & + | + | at(self, *args) -> 'memory_info_t const &' + | at(self, _idx) -> memory_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | begin(self) -> memory_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | end(self) -> memory_info_t + | + | erase(self, *args) -> 'qvector< memory_info_t >::iterator' + | erase(self, it) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | + | erase(self, first, last) -> memory_info_t + | + | @param first: qvector< memory_info_t >::iterator + | @param last: qvector< memory_info_t >::iterator + | + | extract(self, *args) -> 'memory_info_t *' + | extract(self) -> memory_info_t + | + | find(self, *args) -> 'qvector< memory_info_t >::const_iterator' + | find(self, x) -> memory_info_t + | + | @param x: memory_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=memory_info_t()) + | + | @param x: memory_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: memory_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: memory_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< memory_info_t >::iterator' + | insert(self, it, x) -> memory_info_t + | + | @param it: qvector< memory_info_t >::iterator + | @param x: memory_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'memory_info_t &' + | push_back(self, x) + | + | @param x: memory_info_t const & + | + | push_back(self) -> memory_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: memory_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< memory_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class memory_info_t in module ida_idd: + +class memory_info_t(ida_range.range_t) + | Proxy of C++ memory_info_t class. + | + | Method resolution order: + | memory_info_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: memory_info_t const & + | + | __init__(self, *args) + | __init__(self) -> memory_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: memory_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_memory_info_t(...) + | delete_memory_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bitness + | bitness + | + | name + | name + | + | perm + | perm + | + | sbase + | sbase + | + | sclass + | sclass + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + +Help on class modinfo_t in module ida_idd: + +class modinfo_t(builtins.object) + | Proxy of C++ modinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> modinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_modinfo_t(...) + | delete_modinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | base + | base + | + | name + | name + | + | rebase_to + | rebase_to + | + | size + | size + | + | thisown + | The membership flag + +Help on class process_info_t in module ida_idd: + +class process_info_t(builtins.object) + | Proxy of C++ process_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> process_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_process_info_t(...) + | delete_process_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | pid + | pid + | + | thisown + | The membership flag + +Help on class procinfo_vec_t in module ida_idd: + +class procinfo_vec_t(builtins.object) + | Proxy of C++ qvector< process_info_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'process_info_t const &' + | __getitem__(self, i) -> process_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> procinfo_vec_t + | __init__(self, x) -> procinfo_vec_t + | + | @param x: qvector< process_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: process_info_t const & + | + | __swig_destroy__ = delete_procinfo_vec_t(...) + | delete_procinfo_vec_t(self) + | + | at(self, *args) -> 'process_info_t const &' + | at(self, _idx) -> process_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< process_info_t >::const_iterator' + | begin(self) -> process_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< process_info_t >::const_iterator' + | end(self) -> process_info_t + | + | erase(self, *args) -> 'qvector< process_info_t >::iterator' + | erase(self, it) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | + | erase(self, first, last) -> process_info_t + | + | @param first: qvector< process_info_t >::iterator + | @param last: qvector< process_info_t >::iterator + | + | extract(self, *args) -> 'process_info_t *' + | extract(self) -> process_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=process_info_t()) + | + | @param x: process_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: process_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< process_info_t >::iterator' + | insert(self, it, x) -> process_info_t + | + | @param it: qvector< process_info_t >::iterator + | @param x: process_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'process_info_t &' + | push_back(self, x) + | + | @param x: process_info_t const & + | + | push_back(self) -> process_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: process_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< process_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class register_info_t in module ida_idd: + +class register_info_t(builtins.object) + | Proxy of C++ register_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> register_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_register_info_t(...) + | delete_register_info_t(self) + | + | _register_info_t__get_bit_strings = __get_bit_strings(self, *args) -> 'PyObject *' + | __get_bit_strings(self) -> PyObject * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bit_strings + | __get_bit_strings(self) -> PyObject * + | + | default_bit_strings_mask + | default_bit_strings_mask + | + | dtype + | dtype + | + | flags + | flags + | + | name + | name + | + | register_class + | register_class + | + | thisown + | The membership flag + +Help on class regval_t in module ida_idd: + +class regval_t(builtins.object) + | Proxy of C++ regval_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: regval_t const & + | + | __init__(self, *args) + | __init__(self) -> regval_t + | __init__(self, r) -> regval_t + | + | @param r: regval_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: regval_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regval_t(...) + | delete_regval_t(self) + | + | bytes(self, *args) -> 'bytevec_t const &' + | bytes(self) -> bytevec_t + | Get const custom value. + | bytes(self) -> bytevec_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | Clear register value. + | + | get_data(self, *args) -> 'void const *' + | get_data(self) + | Get const pointer to value. + | get_data(self) -> void const * + | + | get_data_size(self, *args) -> 'size_t' + | get_data_size(self) -> size_t + | Get size of value. + | + | pyval(self, *args) -> 'PyObject *' + | pyval(self, dtype) -> PyObject * + | + | @param dtype: op_dtype_t + | + | set_bytes(self, *args) -> 'bytevec_t &' + | set_bytes(self, data, size) + | Initialize this regval to an empty custom value. + | + | @param data: uchar const * + | @param size: size_t + | + | set_bytes(self, v) + | + | @param v: bytevec_t const & + | + | set_bytes(self) -> bytevec_t & + | + | set_float(self, *args) -> 'void' + | set_float(self, x) + | Set float value (fval) + | + | @param x: (C++: const fpvalue_t &) fpvalue_t const & + | + | set_int(self, *args) -> 'void' + | set_int(self, x) + | Set int value (ival) + | + | @param x: (C++: uint64) + | + | set_pyval(self, *args) -> 'bool' + | set_pyval(self, o, dtype) -> bool + | + | @param o: PyObject * + | @param dtype: op_dtype_t + | + | set_unavailable(self, *args) -> 'void' + | set_unavailable(self) + | Mark as unavailable. + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: regval_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fval + | fval + | + | ival + | ival + | + | rvtype + | rvtype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class regvals_t in module ida_idd: + +class regvals_t(builtins.object) + | Proxy of C++ qvector< regval_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __getitem__(self, *args) -> 'regval_t const &' + | __getitem__(self, i) -> regval_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> regvals_t + | __init__(self, x) -> regvals_t + | + | @param x: qvector< regval_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< regval_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regval_t const & + | + | __swig_destroy__ = delete_regvals_t(...) + | delete_regvals_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: regval_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: regval_t const & + | + | at(self, *args) -> 'regval_t const &' + | at(self, _idx) -> regval_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regval_t >::const_iterator' + | begin(self) -> regval_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regval_t >::const_iterator' + | end(self) -> regval_t + | + | erase(self, *args) -> 'qvector< regval_t >::iterator' + | erase(self, it) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | + | erase(self, first, last) -> regval_t + | + | @param first: qvector< regval_t >::iterator + | @param last: qvector< regval_t >::iterator + | + | extract(self, *args) -> 'regval_t *' + | extract(self) -> regval_t + | + | find(self, *args) -> 'qvector< regval_t >::const_iterator' + | find(self, x) -> regval_t + | + | @param x: regval_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regval_t()) + | + | @param x: regval_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: regval_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regval_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regval_t >::iterator' + | insert(self, it, x) -> regval_t + | + | @param it: qvector< regval_t >::iterator + | @param x: regval_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regval_t &' + | push_back(self, x) + | + | @param x: regval_t const & + | + | push_back(self) -> regval_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regval_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regval_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class scattered_segm_t in module ida_idd: + +class scattered_segm_t(ida_range.range_t) + | Proxy of C++ scattered_segm_t class. + | + | Method resolution order: + | scattered_segm_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> scattered_segm_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scattered_segm_t(...) + | delete_scattered_segm_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | name + | name + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function set_debug_event_code in module ida_idd: + +set_debug_event_code(*args) -> 'void' + set_debug_event_code(ev, id) + + @param ev: debug_event_t * + @param id: enum event_id_t + +Help on class thread_name_t in module ida_idd: + +class thread_name_t(builtins.object) + | Proxy of C++ thread_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> thread_name_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_thread_name_t(...) + | delete_thread_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | tid + | tid + +Module "ida_idp"s docstring: +""" +Contains definition of the interface to IDP modules. + +The interface consists of two structures: +* definition of target assembler: ::ash +* definition of current processor: ::ph + +These structures contain information about target processor and assembler +features. + +It also defines two groups of kernel events: +* processor_t::event_t processor related events +* idb_event:event_code_t database related events + +The processor related events are used to communicate with the processor module. +The database related events are used to inform any interested parties, like +plugins or processor modules, about the changes in the database.""" + +Help on function AssembleLine in module ida_idp: + +AssembleLine(*args) -> 'PyObject *' + AssembleLine(ea, cs, ip, use32, nonnul_line) -> bytes + Assemble an instruction to a string (display a warning if an error is found) + + @param ea: linear address of instruction + @param cs: cs of instruction + @param ip: ip of instruction + @param use32: is 32bit segment + @param nonnul_line: char const * + @return: - None on failure + - or a string containing the assembled instruction + +Help on class IDB_Hooks in module ida_idp: + +class IDB_Hooks(builtins.object) + | Proxy of C++ IDB_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDB_Hooks(...) + | delete_IDB_Hooks(self) + | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | + | allsegs_moved(self, *args) -> 'void' + | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) + | + | auto_empty(self, *args) -> 'void' + | auto_empty(self) + | + | auto_empty_finally(self, *args) -> 'void' + | auto_empty_finally(self) + | + | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. + | + | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) + | + | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) + | + | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) + | + | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) + | + | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info + | + | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) + | + | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) + | + | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) + | + | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) + | + | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) + | + | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | closebase(self, *args) -> 'void' + | closebase(self) + | The database will be closed now. + | + | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | + | compiler_changed(self, *args) -> 'void' + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? + | + | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) + | + | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) + | + | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) + | + | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) + | + | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) + | + | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) + | + | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) + | + | determined_main(self, *args) -> 'void' + | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function + | + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) + | + | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) + | + | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | + | enum_created(self, *args) -> 'void' + | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) + | + | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) + | + | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) + | + | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) + | + | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) + | + | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index + | + | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) + | + | flow_chart_created(self, *args) -> 'void' + | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) + | + | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) + | + | func_added(self, *args) -> 'void' + | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) + | + | func_noret_changed(self, *args) -> 'void' + | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) + | + | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) + | + | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) + | + | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | idasgn_loaded(self, *args) -> 'void' + | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) + | + | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. + | + | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) + | + | loader_finished(self, *args) -> 'void' + | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) + | + | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) + | Local types have been changed. + | + | make_code(self, *args) -> 'void' + | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) + | + | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) + | + | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | + | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | renamed(self, *args) -> 'void' + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr + | + | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) + | + | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) + | + | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) + | + | savebase(self, *args) -> 'void' + | savebase(self) + | The database is being saved. + | + | segm_added(self, *args) -> 'void' + | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm + | + | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) + | + | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) + | + | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) + | + | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) + | + | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved + | + | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) + | + | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) + | + | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) + | + | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) + | + | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags + | + | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | + | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) + | + | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) + | + | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) + | + | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) + | + | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) + | + | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) + | + | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed + | + | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) + | + | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) + | + | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | upgraded(self, *args) -> 'void' + | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class IDP_Hooks in module ida_idp: + +class IDP_Hooks(builtins.object) + | Proxy of C++ IDP_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDP_Hooks(...) + | delete_IDP_Hooks(self) + | + | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue + | + | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue + | + | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_adjust_libfunc_ea(self, *args) -> 'int' + | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. + | + | ev_adjust_refinfo(self, *args) -> 'int' + | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted + | + | ev_ana_insn(self, *args) -> 'bool' + | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. + | + | ev_analyze_prolog(self, *args) -> 'int' + | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm + | + | ev_assemble(self, *args) -> 'PyObject *' + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). + | + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes + | + | ev_auto_queue_empty(self, *args) -> 'int' + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally + | + | ev_calc_arglocs(self, *args) -> 'int' + | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) + | + | ev_calc_next_eas(self, *args) -> 'int' + | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) + | + | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented + | + | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error + | + | ev_calc_spdelta(self, *args) -> 'int' + | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_calc_step_over(self, *args) -> 'int' + | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed + | + | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs + | + | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int + | Reserved. + | + | ev_can_have_type(self, *args) -> 'int' + | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed + | + | ev_cmp_operands(self, *args) -> 'int' + | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented + | + | ev_coagulate(self, *args) -> 'int' + | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes + | + | ev_coagulate_dref(self, *args) -> 'int' + | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue + | + | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored + | + | ev_create_func_frame(self, *args) -> 'int' + | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 + | + | ev_create_switch_xrefs(self, *args) -> 'int' + | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM + | + | ev_creating_segm(self, *args) -> 'int' + | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created + | + | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue + | + | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue + | + | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. + | + | ev_demangle_name(self, *args) -> 'PyObject *' + | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! + | + | ev_emu_insn(self, *args) -> 'bool' + | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction + | + | ev_endbinary(self, *args) -> 'int' + | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? + | + | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo + | + | ev_equal_reglocs(self, *args) -> 'int' + | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented + | + | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error + | + | ev_find_op_value(self, *args) -> 'PyObject *' + | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_find_reg_value(self, *args) -> 'PyObject *' + | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_func_bounds(self, *args) -> 'int' + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void + | + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void + | + | ev_gen_map_file(self, *args) -> 'int' + | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error + | + | ev_gen_regvar_def(self, *args) -> 'int' + | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented + | + | ev_gen_src_file_lnnum(self, *args) -> 'int' + | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented + | + | ev_gen_stkvar_def(self, *args) -> 'int' + | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_abi_info(self, *args) -> 'int' + | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok + | + | ev_get_autocmt(self, *args) -> 'PyObject *' + | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case + | + | ev_get_bg_color(self, *args) -> 'int' + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set + | + | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented + | + | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode + | + | ev_get_dbr_opnum(self, *args) -> 'int' + | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_default_enum_size(self, *args) -> 'int' + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead + | + | ev_get_frame_retsize(self, *args) -> 'int' + | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_macro_insn_head(self, *args) -> 'int' + | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_operand_string(self, *args) -> 'PyObject *' + | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented + | + | ev_get_reg_info(self, *args) -> 'int' + | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented + | + | ev_get_reg_name(self, *args) -> 'PyObject *' + | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success + | + | ev_get_simd_types(self, *args) -> 'int' + | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types + | + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented + | + | ev_get_stkvar_scale_factor(self, *args) -> 'int' + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback + | + | ev_getreg(self, *args) -> 'int' + | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) + | + | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure + | + | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no + | + | ev_is_align_insn(self, *args) -> 'int' + | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction + | + | ev_is_alloca_probe(self, *args) -> 'int' + | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no + | + | ev_is_basic_block_end(self, *args) -> 'int' + | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_call_insn(self, *args) -> 'int' + | ev_is_call_insn(self, insn) -> int + | Is the instruction a "call"? + | + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented + | + | ev_is_far_jump(self, *args) -> 'int' + | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no + | + | ev_is_indirect_jump(self, *args) -> 'int' + | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes + | + | ev_is_insn_table_jump(self, *args) -> 'int' + | ev_is_insn_table_jump(self) -> int + | Reserved. + | + | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' + | + | ev_is_ret_insn(self, *args) -> 'int' + | ev_is_ret_insn(self, insn, strict) -> int + | Is the instruction a "return"? + | + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_sane_insn(self, *args) -> 'int' + | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. + | + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program + | + | ev_is_sp_based(self, *args) -> 'int' + | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok + | + | ev_is_switch(self, *args) -> 'int' + | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented + | + | ev_last_cb_before_loader(self, *args) -> 'int' + | ev_last_cb_before_loader(self) -> int + | + | ev_loader(self, *args) -> 'int' + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders + | + | ev_lower_func_type(self, *args) -> 'int' + | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti + | + | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer + | + | ev_may_be_func(self, *args) -> 'int' + | ev_may_be_func(self, insn, state) -> int + | Can a function start here? + | + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) + | + | ev_may_show_sreg(self, *args) -> 'int' + | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented + | + | ev_moving_segm(self, *args) -> 'int' + | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop + | + | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed + | + | ev_newbinary(self, *args) -> 'int' + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load + | + | ev_newfile(self, *args) -> 'int' + | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_newprc(self, *args) -> 'int' + | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit + | + | ev_next_exec_insn(self, *args) -> 'int' + | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_oldfile(self, *args) -> 'int' + | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_out_assumes(self, *args) -> 'int' + | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_data(self, *args) -> 'int' + | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_footer(self, *args) -> 'int' + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_header(self, *args) -> 'int' + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_insn(self, *args) -> 'bool' + | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_label(self, *args) -> 'int' + | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue + | + | ev_out_mnem(self, *args) -> 'int' + | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented + | + | ev_out_operand(self, *args) -> 'bool' + | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden + | + | ev_out_segend(self, *args) -> 'int' + | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_segstart(self, *args) -> 'int' + | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_special_item(self, *args) -> 'int' + | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) + | + | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown + | + | ev_rename(self, *args) -> 'int' + | ev_rename(self, ea, new_name) -> int + | The kernel is going to rename a byte. + | + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name + | + | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | + | ev_set_code16_mode(self, *args) -> 'int' + | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode + | + | ev_set_idp_options(self, *args) -> 'int' + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) + | + | ev_set_proc_options(self, *args) -> 'int' + | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string + | + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void + | + | ev_str2reg(self, *args) -> 'int' + | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded + | + | ev_term(self, *args) -> 'int' + | ev_term(self) -> int + | The IDP module is being unloaded. + | + | ev_treat_hindering_item(self, *args) -> 'int' + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item + | + | ev_undefine(self, *args) -> 'int' + | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. + | + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented + | + | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented + | + | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented + | + | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction + | + | ev_validate_flirt_func(self, *args) -> 'int' + | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated + | + | ev_verify_noreturn(self, *args) -> 'int' + | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag + | + | ev_verify_sp(self, *args) -> 'int' + | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __ph in module ida_idp: + +class __ph(builtins.object) + | # ---------------------------------------------------------------------- + | + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cnbits + | + | dnbits + | + | flag + | + | icode_return + | + | id + | + | instruc + | + | instruc_end + | + | instruc_start + | + | reg_code_sreg + | + | reg_data_sreg + | + | reg_first_sreg + | + | reg_last_sreg + | + | regnames + | + | segreg_size + | + | tbyte_size + | + | version + +Help on class _idp_cvar_t in module ida_idp: + +class _idp_cvar_t(builtins.object) + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ash + +Help on class _notify_when_dispatcher_t in module ida_idp: + +class _notify_when_dispatcher_t(builtins.object) + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | _find(self, fun) + | + | dispatch(self, slot, *args) + | + | notify_when(self, when, fun) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | _IDB_Hooks = <class 'ida_idp._notify_when_dispatcher_t._IDB_Hooks'> + | Proxy of C++ IDB_Hooks class. + | + | _IDP_Hooks = <class 'ida_idp._notify_when_dispatcher_t._IDP_Hooks'> + | Proxy of C++ IDP_Hooks class. + | + | _callback_t = <class 'ida_idp._notify_when_dispatcher_t._callback_t'> + +Help on class _processor_t in module ida_idp: + +class _processor_t(builtins.object) + | Proxy of C++ processor_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> _processor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete__processor_t(...) + | delete__processor_t(self) + | + | calcrel_in_bits(self, *args) -> 'bool' + | calcrel_in_bits(self) -> bool + | + | cbsize(self, *args) -> 'int' + | cbsize(self) -> int + | + | dbsize(self, *args) -> 'int' + | dbsize(self) -> int + | + | delay_slot_insn(self, *args) -> 'bool' + | delay_slot_insn(self, ea, bexec, fexec) -> bool + | + | Parameters + | ---------- + | ea: ea_t * + | bexec: bool * + | fexec: bool * + | + | get_default_segm_bitness(self, *args) -> 'int' + | get_default_segm_bitness(self, is_64bit_app) -> int + | + | Parameters + | ---------- + | is_64bit_app: bool + | + | get_proc_index(self, *args) -> 'int' + | get_proc_index(self) -> int + | + | get_stkvar_scale(self, *args) -> 'int' + | get_stkvar_scale(self) -> int + | + | has_code16_bit(self, *args) -> 'bool' + | has_code16_bit(self) -> bool + | + | has_idp_opts(self, *args) -> 'bool' + | has_idp_opts(self) -> bool + | + | has_realcvt(self, *args) -> 'bool' + | has_realcvt(self) -> bool + | + | has_segregs(self, *args) -> 'bool' + | has_segregs(self) -> bool + | + | privrange_changed(self, *args) -> 'ssize_t' + | privrange_changed(self, old_privrange, delta) -> ssize_t + | + | Parameters + | ---------- + | old_privrange: range_t const & + | delta: adiff_t + | + | sizeof_ldbl(self, *args) -> 'size_t' + | sizeof_ldbl(self) -> size_t + | + | stkup(self, *args) -> 'bool' + | stkup(self) -> bool + | + | supports_calcrel(self, *args) -> 'bool' + | supports_calcrel(self) -> bool + | + | supports_macros(self, *args) -> 'bool' + | supports_macros(self) -> bool + | + | ti(self, *args) -> 'bool' + | ti(self) -> bool + | + | use32(self, *args) -> 'bool' + | use32(self) -> bool + | + | use64(self, *args) -> 'bool' + | use64(self) -> bool + | + | use_mappings(self, *args) -> 'bool' + | use_mappings(self) -> bool + | + | use_tbyte(self, *args) -> 'bool' + | use_tbyte(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | add_cref(*args) -> 'ssize_t' + | add_cref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum cref_t + | + | add_dref(*args) -> 'ssize_t' + | add_dref(_from, to, type) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | type: enum dref_t + | + | adjust_argloc(*args) -> 'ssize_t' + | adjust_argloc(argloc, type, size) -> ssize_t + | + | Parameters + | ---------- + | argloc: argloc_t * + | type: tinfo_t const * + | size: int + | + | adjust_libfunc_ea(*args) -> 'ssize_t' + | adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + | + | Parameters + | ---------- + | sig: idasgn_t const & + | libfun: libfunc_t const & + | ea: ea_t * + | + | adjust_refinfo(*args) -> 'ssize_t' + | adjust_refinfo(ri, ea, n, fd) -> ssize_t + | + | Parameters + | ---------- + | ri: refinfo_t * + | ea: ea_t + | n: int + | fd: fixup_data_t const & + | + | ana_insn(*args) -> 'ssize_t' + | ana_insn(out) -> ssize_t + | + | Parameters + | ---------- + | out: insn_t * + | + | analyze_prolog(*args) -> 'ssize_t' + | analyze_prolog(fct_ea) -> ssize_t + | + | Parameters + | ---------- + | fct_ea: ea_t + | + | arch_changed(*args) -> 'ssize_t' + | arch_changed() -> ssize_t + | + | arg_addrs_ready(*args) -> 'ssize_t' + | arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + | + | Parameters + | ---------- + | caller: ea_t + | n: int + | tif: tinfo_t const & + | addrs: ea_t * + | + | asm_installed(*args) -> 'ssize_t' + | asm_installed(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | assemble(*args) -> 'ssize_t' + | assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + | + | Parameters + | ---------- + | _bin: uchar * + | ea: ea_t + | cs: ea_t + | ip: ea_t + | _use32: bool + | line: char const * + | + | auto_queue_empty(*args) -> 'void' + | auto_queue_empty(type) + | + | Parameters + | ---------- + | type: int + | + | calc_arglocs(*args) -> 'ssize_t' + | calc_arglocs(fti) -> ssize_t + | + | Parameters + | ---------- + | fti: func_type_data_t * + | + | calc_cdecl_purged_bytes(*args) -> 'ssize_t' + | calc_cdecl_purged_bytes(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | calc_next_eas(*args) -> 'ssize_t' + | calc_next_eas(res, insn, over) -> ssize_t + | + | Parameters + | ---------- + | res: eavec_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | over: bool + | + | calc_purged_bytes(*args) -> 'ssize_t' + | calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + | + | Parameters + | ---------- + | p_purged_bytes: int * + | fti: func_type_data_t const & + | + | calc_retloc(*args) -> 'ssize_t' + | calc_retloc(retloc, rettype, cc) -> ssize_t + | + | Parameters + | ---------- + | retloc: argloc_t * + | rettype: tinfo_t const & + | cc: cm_t + | + | calc_spdelta(*args) -> 'ssize_t' + | calc_spdelta(spdelta, ins) -> ssize_t + | + | Parameters + | ---------- + | spdelta: sval_t * + | ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | calc_step_over(*args) -> 'ssize_t' + | calc_step_over(target, ip) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ip: ea_t + | + | calc_switch_cases(*args) -> 'ssize_t' + | calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + | + | Parameters + | ---------- + | casevec: void * + | targets: eavec_t * + | insn_ea: ea_t + | si: switch_info_t const & + | + | calc_varglocs(*args) -> 'ssize_t' + | calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + | + | Parameters + | ---------- + | ftd: func_type_data_t * + | regs: regobjs_t * + | stkargs: relobj_t * + | nfixed: int + | + | calcrel(*args) -> 'bytevec_t *, size_t *' + | calcrel(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | can_have_type(*args) -> 'ssize_t' + | can_have_type(op) -> ssize_t + | + | Parameters + | ---------- + | op: op_t const & + | + | clean_tbit(*args) -> 'ssize_t' + | clean_tbit(ea, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | cmp_operands(*args) -> 'ssize_t' + | cmp_operands(op1, op2) -> ssize_t + | + | Parameters + | ---------- + | op1: op_t const & + | op2: op_t const & + | + | coagulate(*args) -> 'ssize_t' + | coagulate(start_ea) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | + | coagulate_dref(*args) -> 'ssize_t' + | coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | may_define: bool + | code_ea: ea_t * + | + | create_flat_group(*args) -> 'ssize_t' + | create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + | + | Parameters + | ---------- + | image_base: ea_t + | bitness: int + | dataseg_sel: sel_t + | + | create_func_frame(*args) -> 'ssize_t' + | create_func_frame(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | create_merge_handlers(*args) -> 'ssize_t' + | create_merge_handlers(md) -> ssize_t + | + | Parameters + | ---------- + | md: merge_data_t * + | + | create_switch_xrefs(*args) -> 'ssize_t' + | create_switch_xrefs(jumpea, si) -> ssize_t + | + | Parameters + | ---------- + | jumpea: ea_t + | si: switch_info_t const & + | + | creating_segm(*args) -> 'ssize_t' + | creating_segm(seg) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | + | decorate_name(*args) -> 'ssize_t' + | decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + | + | Parameters + | ---------- + | outbuf: qstring * + | name: char const * + | mangle: bool + | cc: cm_t + | type: tinfo_t const & + | + | del_cref(*args) -> 'ssize_t' + | del_cref(_from, to, expand) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | expand: bool + | + | del_dref(*args) -> 'ssize_t' + | del_dref(_from, to) -> ssize_t + | + | Parameters + | ---------- + | from: ea_t + | to: ea_t + | + | demangle_name(*args) -> 'int' + | demangle_name(res, name, disable_mask, demreq) -> ssize_t + | + | Parameters + | ---------- + | res: int32 * + | name: char const * + | disable_mask: uint32 + | demreq: int + | + | emu_insn(*args) -> 'ssize_t' + | emu_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | endbinary(*args) -> 'ssize_t' + | endbinary(ok) -> ssize_t + | + | Parameters + | ---------- + | ok: bool + | + | equal_reglocs(*args) -> 'ssize_t' + | equal_reglocs(a1, a2) -> ssize_t + | + | Parameters + | ---------- + | a1: argloc_t const & + | a2: argloc_t const & + | + | extract_address(*args) -> 'ssize_t' + | extract_address(out_ea, screen_ea, string, x) -> ssize_t + | + | Parameters + | ---------- + | out_ea: ea_t * + | screen_ea: ea_t + | string: char const * + | x: size_t + | + | find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_op_value(insn, op) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | op: int + | + | find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + | find_reg_value(insn, reg) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | reg: int + | + | func_bounds(*args) -> 'ssize_t' + | func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + | + | Parameters + | ---------- + | possible_return_code: int * + | pfn: func_t * + | max_func_end_ea: ea_t + | + | gen_asm_or_lst(*args) -> 'ssize_t' + | gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + | + | Parameters + | ---------- + | starting: bool + | fp: FILE * + | is_asm: bool + | flags: int + | outline: void * + | + | gen_map_file(*args) -> 'ssize_t' + | gen_map_file(nlines, fp) -> ssize_t + | + | Parameters + | ---------- + | nlines: int * + | fp: FILE * + | + | gen_regvar_def(*args) -> 'ssize_t' + | gen_regvar_def(ctx, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | v: regvar_t * + | + | gen_src_file_lnnum(*args) -> 'ssize_t' + | gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | file: char const * + | lnnum: size_t + | + | gen_stkvar_def(*args) -> 'ssize_t' + | gen_stkvar_def(ctx, mptr, v) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | mptr: member_t const * + | v: sval_t + | + | get_abi_info(*args) -> 'ssize_t' + | get_abi_info(abi_names, abi_opts, comp) -> ssize_t + | + | Parameters + | ---------- + | abi_names: qstrvec_t * + | abi_opts: qstrvec_t * + | comp: comp_t + | + | get_autocmt(*args) -> 'qstring *' + | get_autocmt(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_bg_color(*args) -> 'ssize_t' + | get_bg_color(color, ea) -> ssize_t + | + | Parameters + | ---------- + | color: bgcolor_t * + | ea: ea_t + | + | get_cc_regs(*args) -> 'ssize_t' + | get_cc_regs(regs, cc) -> ssize_t + | + | Parameters + | ---------- + | regs: callregs_t * + | cc: cm_t + | + | get_code16_mode(*args) -> 'bool' + | get_code16_mode(ea) -> bool + | + | Parameters + | ---------- + | ea: ea_t + | + | get_dbr_opnum(*args) -> 'ssize_t' + | get_dbr_opnum(opnum, insn) -> ssize_t + | + | Parameters + | ---------- + | opnum: int * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | get_frame_retsize(*args) -> 'ssize_t' + | get_frame_retsize(retsize, pfn) -> ssize_t + | + | Parameters + | ---------- + | retsize: int * + | pfn: func_t const * + | + | get_idd_opinfo(*args) -> 'ssize_t' + | get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | opinf: idd_opinfo_t * + | ea: ea_t + | n: int + | thread_id: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | get_macro_insn_head(*args) -> 'ssize_t' + | get_macro_insn_head(head, ip) -> ssize_t + | + | Parameters + | ---------- + | head: ea_t * + | ip: ea_t + | + | get_operand_string(*args) -> 'qstring *' + | get_operand_string(insn, opnum) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | opnum: int + | + | get_reg_accesses(*args) -> 'ssize_t' + | get_reg_accesses(accvec, insn, flags) -> ssize_t + | + | Parameters + | ---------- + | accvec: reg_accesses_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | flags: int + | + | get_reg_info(*args) -> 'char const *' + | get_reg_info(regname, bitrange) -> char const * + | + | Parameters + | ---------- + | regname: char const * + | bitrange: bitrange_t * + | + | get_reg_name(*args) -> 'qstring *' + | get_reg_name(reg, width, reghi) -> ssize_t + | + | Parameters + | ---------- + | reg: int + | width: size_t + | reghi: int + | + | get_simd_types(*args) -> 'ssize_t' + | get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + | + | Parameters + | ---------- + | out: void * + | simd_attrs: simd_info_t const * + | argloc: argloc_t const * + | create_tifs: bool + | + | get_stkarg_area_info(*args) -> 'ssize_t' + | get_stkarg_area_info(out, cc) -> ssize_t + | + | Parameters + | ---------- + | out: stkarg_area_info_t * + | cc: cm_t + | + | get_stkvar_scale_factor(*args) -> 'ssize_t' + | get_stkvar_scale_factor() -> ssize_t + | + | getreg(*args) -> 'ssize_t' + | getreg(rv, regnum) -> ssize_t + | + | Parameters + | ---------- + | rv: uval_t * + | regnum: int + | + | init(*args) -> 'ssize_t' + | init(idp_modname) -> ssize_t + | + | Parameters + | ---------- + | idp_modname: char const * + | + | insn_reads_tbit(*args) -> 'ssize_t' + | insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | is_align_insn(*args) -> 'ssize_t' + | is_align_insn(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_alloca_probe(*args) -> 'ssize_t' + | is_alloca_probe(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | is_basic_block_end(*args) -> 'ssize_t' + | is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | call_insn_stops_block: bool + | + | is_call_insn(*args) -> 'ssize_t' + | is_call_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_cond_insn(*args) -> 'ssize_t' + | is_cond_insn(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_control_flow_guard(*args) -> 'ssize_t' + | is_control_flow_guard(p_reg, insn) -> ssize_t + | + | Parameters + | ---------- + | p_reg: int * + | insn: insn_t const * + | + | is_far_jump(*args) -> 'ssize_t' + | is_far_jump(icode) -> ssize_t + | + | Parameters + | ---------- + | icode: int + | + | is_indirect_jump(*args) -> 'ssize_t' + | is_indirect_jump(insn) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | is_jump_func(*args) -> 'ssize_t' + | is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | jump_target: ea_t * + | func_pointer: ea_t * + | + | is_ret_insn(*args) -> 'ssize_t' + | is_ret_insn(insn, strict) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | strict: bool + | + | is_sane_insn(*args) -> 'ssize_t' + | is_sane_insn(insn, no_crefs) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | no_crefs: int + | + | is_sp_based(*args) -> 'ssize_t' + | is_sp_based(insn, x) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | x: op_t const & + | + | is_switch(*args) -> 'ssize_t' + | is_switch(si, insn) -> ssize_t + | + | Parameters + | ---------- + | si: switch_info_t * + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | loader_elf_machine(*args) -> 'ssize_t' + | loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + | + | Parameters + | ---------- + | li: linput_t * + | machine_type: int + | p_procname: char const ** + | p_pd: proc_def_t ** + | ldr: elf_loader_t * + | reader: reader_t * + | + | lower_func_type(*args) -> 'ssize_t' + | lower_func_type(argnums, fti) -> ssize_t + | + | Parameters + | ---------- + | argnums: intvec_t * + | fti: func_type_data_t * + | + | max_ptr_size(*args) -> 'ssize_t' + | max_ptr_size() -> ssize_t + | + | may_be_func(*args) -> 'ssize_t' + | may_be_func(insn, state) -> ssize_t + | + | Parameters + | ---------- + | insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + | state: int + | + | may_show_sreg(*args) -> 'ssize_t' + | may_show_sreg(current_ea) -> ssize_t + | + | Parameters + | ---------- + | current_ea: ea_t + | + | moving_segm(*args) -> 'ssize_t' + | moving_segm(seg, to, flags) -> ssize_t + | + | Parameters + | ---------- + | seg: segment_t * + | to: ea_t + | flags: int + | + | newasm(*args) -> 'ssize_t' + | newasm(asmnum) -> ssize_t + | + | Parameters + | ---------- + | asmnum: int + | + | newbinary(*args) -> 'ssize_t' + | newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + | + | Parameters + | ---------- + | filename: char const * + | fileoff: qoff64_t + | basepara: ea_t + | binoff: ea_t + | nbytes: uint64 + | + | newfile(*args) -> 'ssize_t' + | newfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | newprc(*args) -> 'ssize_t' + | newprc(pnum, keep_cfg) -> ssize_t + | + | Parameters + | ---------- + | pnum: int + | keep_cfg: bool + | + | next_exec_insn(*args) -> 'ssize_t' + | next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | target: ea_t * + | ea: ea_t + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | notify(*args) -> 'ssize_t' + | notify(event_code) -> ssize_t + | + | Parameters + | ---------- + | event_code: enum processor_t::event_t + | + | oldfile(*args) -> 'ssize_t' + | oldfile(fname) -> ssize_t + | + | Parameters + | ---------- + | fname: char const * + | + | out_assumes(*args) -> 'ssize_t' + | out_assumes(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_data(*args) -> 'ssize_t' + | out_data(ctx, analyze_only) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | analyze_only: bool + | + | out_footer(*args) -> 'ssize_t' + | out_footer(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_header(*args) -> 'ssize_t' + | out_header(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_insn(*args) -> 'ssize_t' + | out_insn(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_label(*args) -> 'ssize_t' + | out_label(ctx, colored_name) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | colored_name: char const * + | + | out_mnem(*args) -> 'ssize_t' + | out_mnem(ctx) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | + | out_operand(*args) -> 'ssize_t' + | out_operand(ctx, op) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | op: op_t const & + | + | out_segend(*args) -> 'ssize_t' + | out_segend(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_segstart(*args) -> 'ssize_t' + | out_segstart(ctx, seg) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | seg: segment_t * + | + | out_special_item(*args) -> 'ssize_t' + | out_special_item(ctx, segtype) -> ssize_t + | + | Parameters + | ---------- + | ctx: outctx_t & + | segtype: uchar + | + | realcvt(*args) -> 'fpvalue_error_t' + | realcvt(m, e, swt) -> fpvalue_error_t + | + | Parameters + | ---------- + | m: void * + | e: fpvalue_t * + | swt: uint16 + | + | rename(*args) -> 'ssize_t' + | rename(ea, new_name, flags) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | new_name: char const * + | flags: int + | + | set_code16_mode(*args) -> 'ssize_t' + | set_code16_mode(ea, code16=True) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | code16: bool + | + | set_idp_options(*args) -> 'char const *' + | set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + | + | Parameters + | ---------- + | keyword: char const * + | vtype: int + | value: void const * + | idb_loaded: bool + | + | set_proc_options(*args) -> 'ssize_t' + | set_proc_options(options, confidence) -> ssize_t + | + | Parameters + | ---------- + | options: char const * + | confidence: int + | + | setup_til(*args) -> 'ssize_t' + | setup_til() -> ssize_t + | + | str2reg(*args) -> 'ssize_t' + | str2reg(regname) -> ssize_t + | + | Parameters + | ---------- + | regname: char const * + | + | term(*args) -> 'ssize_t' + | term() -> ssize_t + | + | treat_hindering_item(*args) -> 'ssize_t' + | treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + | + | Parameters + | ---------- + | hindering_item_ea: ea_t + | new_item_flags: flags64_t + | new_item_ea: ea_t + | new_item_length: asize_t + | + | undefine(*args) -> 'ssize_t' + | undefine(ea) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | + | update_call_stack(*args) -> 'ssize_t' + | update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + | + | Parameters + | ---------- + | stack: call_stack_t * + | tid: int + | _getreg: processor_t::regval_getter_t * + | regvalues: regval_t const & + | + | use_arg_types(*args) -> 'ssize_t' + | use_arg_types(ea, fti, rargs) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | fti: func_type_data_t * + | rargs: void * + | + | use_regarg_type(*args) -> 'ssize_t' + | use_regarg_type(idx, ea, rargs) -> ssize_t + | + | Parameters + | ---------- + | idx: int * + | ea: ea_t + | rargs: void * + | + | use_stkarg_type(*args) -> 'ssize_t' + | use_stkarg_type(ea, arg) -> ssize_t + | + | Parameters + | ---------- + | ea: ea_t + | arg: funcarg_t const & + | + | validate_flirt_func(*args) -> 'ssize_t' + | validate_flirt_func(start_ea, funcname) -> ssize_t + | + | Parameters + | ---------- + | start_ea: ea_t + | funcname: char const * + | + | verify_noreturn(*args) -> 'ssize_t' + | verify_noreturn(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | verify_sp(*args) -> 'ssize_t' + | verify_sp(pfn) -> ssize_t + | + | Parameters + | ---------- + | pfn: func_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | version + | version + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ev_add_cref = 64 + | + | ev_add_dref = 65 + | + | ev_adjust_argloc = 2013 + | + | ev_adjust_libfunc_ea = 73 + | + | ev_adjust_refinfo = 50 + | + | ev_ana_insn = 10 + | + | ev_analyze_prolog = 81 + | + | ev_arch_changed = 2021 + | + | ev_arg_addrs_ready = 2019 + | + | ev_asm_installed = 91 + | + | ev_assemble = 74 + | + | ev_auto_queue_empty = 71 + | + | ev_broadcast = 94 + | + | ev_calc_arglocs = 2011 + | + | ev_calc_cdecl_purged_bytes = 2008 + | + | ev_calc_next_eas = 1002 + | + | ev_calc_purged_bytes = 2009 + | + | ev_calc_retloc = 2010 + | + | ev_calc_spdelta = 82 + | + | ev_calc_step_over = 1001 + | + | ev_calc_switch_cases = 42 + | + | ev_calc_varglocs = 2012 + | + | ev_calcrel = 83 + | + | ev_can_have_type = 48 + | + | ev_clean_tbit = 1006 + | + | ev_cmp_operands = 49 + | + | ev_coagulate = 28 + | + | ev_coagulate_dref = 68 + | + | ev_create_flat_group = 79 + | + | ev_create_func_frame = 60 + | + | ev_create_merge_handlers = 95 + | + | ev_create_switch_xrefs = 43 + | + | ev_creating_segm = 26 + | + | ev_decorate_name = 2020 + | + | ev_del_cref = 66 + | + | ev_del_dref = 67 + | + | ev_delay_slot_insn = 46 + | + | ev_demangle_name = 63 + | + | ev_emu_insn = 11 + | + | ev_endbinary = 7 + | + | ev_ending_undo = 87 + | + | ev_equal_reglocs = 2015 + | + | ev_extract_address = 75 + | + | ev_find_op_value = 85 + | + | ev_find_reg_value = 84 + | + | ev_func_bounds = 57 + | + | ev_gen_asm_or_lst = 77 + | + | ev_gen_map_file = 78 + | + | ev_gen_regvar_def = 24 + | + | ev_gen_src_file_lnnum = 25 + | + | ev_gen_stkvar_def = 23 + | + | ev_get_abi_info = 2001 + | + | ev_get_autocmt = 54 + | + | ev_get_bg_color = 55 + | + | ev_get_cc_regs = 2004 + | + | ev_get_code16_mode = 89 + | + | ev_get_dbr_opnum = 1004 + | + | ev_get_default_enum_size = 2003 + | + | ev_get_frame_retsize = 61 + | + | ev_get_idd_opinfo = 1007 + | + | ev_get_macro_insn_head = 1003 + | + | ev_get_operand_string = 51 + | + | ev_get_procmod = 90 + | + | ev_get_reg_accesses = 92 + | + | ev_get_reg_info = 1008 + | + | ev_get_reg_name = 52 + | + | ev_get_simd_types = 2007 + | + | ev_get_stkarg_area_info = 2022 + | + | ev_get_stkvar_scale_factor = 62 + | + | ev_getreg = 80 + | + | ev_init = 0 + | + | ev_insn_reads_tbit = 1005 + | + | ev_is_align_insn = 44 + | + | ev_is_alloca_probe = 45 + | + | ev_is_basic_block_end = 38 + | + | ev_is_call_insn = 35 + | + | ev_is_cond_insn = 34 + | + | ev_is_control_flow_guard = 93 + | + | ev_is_far_jump = 32 + | + | ev_is_indirect_jump = 39 + | + | ev_is_insn_table_jump = 40 + | + | ev_is_jump_func = 56 + | + | ev_is_ret_insn = 36 + | + | ev_is_sane_insn = 33 + | + | ev_is_sp_based = 47 + | + | ev_is_switch = 41 + | + | ev_last_cb_before_debugger = 97 + | + | ev_last_cb_before_loader = 2023 + | + | ev_last_cb_before_type_callbacks = 1010 + | + | ev_loader = 3000 + | + | ev_loader_elf_machine = 70 + | + | ev_lower_func_type = 2014 + | + | ev_max_ptr_size = 2002 + | + | ev_may_be_func = 37 + | + | ev_may_show_sreg = 69 + | + | ev_moving_segm = 27 + | + | ev_newasm = 3 + | + | ev_newbinary = 6 + | + | ev_newfile = 4 + | + | ev_newprc = 2 + | + | ev_next_exec_insn = 1000 + | + | ev_obsolete1 = 2005 + | + | ev_obsolete2 = 2006 + | + | ev_oldfile = 5 + | + | ev_out_assumes = 16 + | + | ev_out_data = 20 + | + | ev_out_footer = 13 + | + | ev_out_header = 12 + | + | ev_out_insn = 17 + | + | ev_out_label = 21 + | + | ev_out_mnem = 18 + | + | ev_out_operand = 19 + | + | ev_out_segend = 15 + | + | ev_out_segstart = 14 + | + | ev_out_special_item = 22 + | + | ev_privrange_changed = 96 + | + | ev_realcvt = 76 + | + | ev_rename = 31 + | + | ev_replaying_undo = 86 + | + | ev_set_code16_mode = 88 + | + | ev_set_idp_options = 8 + | + | ev_set_proc_options = 9 + | + | ev_setup_til = 2000 + | + | ev_str2reg = 53 + | + | ev_term = 1 + | + | ev_treat_hindering_item = 30 + | + | ev_undefine = 29 + | + | ev_update_call_stack = 1009 + | + | ev_use_arg_types = 2018 + | + | ev_use_regarg_type = 2017 + | + | ev_use_stkarg_type = 2016 + | + | ev_validate_flirt_func = 72 + | + | ev_verify_noreturn = 59 + | + | ev_verify_sp = 58 + +Help on class _processor_t_Trampoline_IDB_Hooks in module ida_idp: + +class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) + | Proxy of C++ IDB_Hooks class. + | + | Method resolution order: + | _processor_t_Trampoline_IDB_Hooks + | IDB_Hooks + | builtins.object + | + | Methods defined here: + | + | __init__(self, proc) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDB_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) + | + | _processor_t_Trampoline_IDB_Hooks__make_parent_caller = __make_parent_caller(self, key) + | + | ---------------------------------------------------------------------- + | Methods inherited from IDB_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDB_Hooks(...) + | delete_IDB_Hooks(self) + | + | adding_segm(self, *args) -> 'void' + | adding_segm(self, s) + | A segment is being created. + | + | @param s: (segment_t *) + | + | allsegs_moved(self, *args) -> 'void' + | allsegs_moved(self, info) + | Program rebasing is complete. This event is generated after series of segm_moved + | events + | + | @param info: (segm_move_infos_t *) + | + | auto_empty(self, *args) -> 'void' + | auto_empty(self) + | + | auto_empty_finally(self, *args) -> 'void' + | auto_empty_finally(self) + | + | bookmark_changed(self, *args) -> 'void' + | bookmark_changed(self, index, pos, desc, operation) + | Boomarked position changed. + | + | @param index: (uint32) + | @param pos: (::const lochist_entry_t *) + | @param desc: (::const char *) + | @param operation: (int) 0-added, 1-updated, 2-deleted if desc==nullptr, then the + | bookmark was deleted. + | + | byte_patched(self, *args) -> 'void' + | byte_patched(self, ea, old_value) + | A byte has been patched. + | + | @param ea: (::ea_t) + | @param old_value: (uint32) + | + | callee_addr_changed(self, *args) -> 'void' + | callee_addr_changed(self, ea, callee) + | Callee address has been updated by the user. + | + | @param ea: (::ea_t) + | @param callee: (::ea_t) + | + | changing_cmt(self, *args) -> 'void' + | changing_cmt(self, ea, repeatable_cmt, newcmt) + | An item comment is to be changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | @param newcmt: (const char *) + | + | changing_enum_bf(self, *args) -> 'void' + | changing_enum_bf(self, id, new_bf) + | An enum type 'bitfield' attribute is to be changed. + | + | @param id: (enum_t) + | @param new_bf: (bool) + | + | changing_enum_cmt(self, *args) -> 'void' + | changing_enum_cmt(self, id, repeatable, newcmt) + | An enum or member type comment is to be changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_op_ti(self, *args) -> 'void' + | changing_op_ti(self, ea, n, new_type, new_fnames) + | An operand typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | changing_op_type(self, *args) -> 'void' + | changing_op_type(self, ea, n, opinfo) + | An operand type (offset, hex, etc...) is to be changed. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | @param opinfo: (const opinfo_t *) additional operand info + | + | changing_range_cmt(self, *args) -> 'void' + | changing_range_cmt(self, kind, a, cmt, repeatable) + | Range comment is to be changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | changing_segm_class(self, *args) -> 'void' + | changing_segm_class(self, s) + | Segment class is being changed. + | + | @param s: (segment_t *) + | + | changing_segm_end(self, *args) -> 'void' + | changing_segm_end(self, s, new_end, segmod_flags) + | Segment end address is to be changed. + | + | @param s: (segment_t *) + | @param new_end: (::ea_t) + | @param segmod_flags: (int) + | + | changing_segm_name(self, *args) -> 'void' + | changing_segm_name(self, s, oldname) + | Segment name is being changed. + | + | @param s: (segment_t *) + | @param oldname: (const char *) + | + | changing_segm_start(self, *args) -> 'void' + | changing_segm_start(self, s, new_start, segmod_flags) + | Segment start address is to be changed. + | + | @param s: (segment_t *) + | @param new_start: (::ea_t) + | @param segmod_flags: (int) + | + | changing_struc_align(self, *args) -> 'void' + | changing_struc_align(self, sptr) + | A structure type is being changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | changing_struc_cmt(self, *args) -> 'void' + | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | A structure type comment is to be changed. + | + | @param struc_id: (tid_t) + | @param repeatable: (bool) + | @param newcmt: (const char *) + | + | changing_struc_member(self, *args) -> 'void' + | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | A structure member is to be changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param flag: (flags64_t) + | @param ti: (const opinfo_t *) + | @param nbytes: (::asize_t) + | + | changing_ti(self, *args) -> 'void' + | changing_ti(self, ea, new_type, new_fnames) + | An item typestring (c/c++ prototype) is to be changed. + | + | @param ea: (::ea_t) + | @param new_type: (const type_t *) + | @param new_fnames: (const p_list *) + | + | closebase(self, *args) -> 'void' + | closebase(self) + | The database will be closed now. + | + | cmt_changed(self, *args) -> 'void' + | cmt_changed(self, ea, repeatable_cmt) + | An item comment has been changed. + | + | @param ea: (::ea_t) + | @param repeatable_cmt: (bool) + | + | compiler_changed(self, *args) -> 'void' + | compiler_changed(self, adjust_inf_fields) + | The kernel has changed the compiler information. ( idainfo::cc structure; + | get_abi_name) + | + | @param adjust_inf_fields: (::bool) may change inf fields? + | + | deleting_enum(self, *args) -> 'void' + | deleting_enum(self, id) + | An enum type is to be deleted. + | + | @param id: (enum_t) + | + | deleting_enum_member(self, *args) -> 'void' + | deleting_enum_member(self, id, cid) + | An enum member is to be deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | deleting_func(self, *args) -> 'void' + | deleting_func(self, pfn) + | The kernel is about to delete a function. + | + | @param pfn: (func_t *) + | + | deleting_func_tail(self, *args) -> 'void' + | deleting_func_tail(self, pfn, tail) + | A function tail chunk is to be removed. + | + | @param pfn: (func_t *) + | @param tail: (const range_t *) + | + | deleting_segm(self, *args) -> 'void' + | deleting_segm(self, start_ea) + | A segment is to be deleted. + | + | @param start_ea: (::ea_t) + | + | deleting_struc(self, *args) -> 'void' + | deleting_struc(self, sptr) + | A structure type is to be deleted. + | + | @param sptr: (struc_t *) + | + | deleting_struc_member(self, *args) -> 'void' + | deleting_struc_member(self, sptr, mptr) + | A structure member is to be deleted. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | deleting_tryblks(self, *args) -> 'void' + | deleting_tryblks(self, range) + | About to delete tryblk information in given range + | + | @param range: (const range_t *) + | + | destroyed_items(self, *args) -> 'void' + | destroyed_items(self, ea1, ea2, will_disable_range) + | Instructions/data have been destroyed in [ea1,ea2). + | + | @param ea1: (::ea_t) + | @param ea2: (::ea_t) + | @param will_disable_range: (bool) + | + | determined_main(self, *args) -> 'void' + | determined_main(self, main) + | The main() function has been determined. + | + | @param main: (::ea_t) address of the main() function + | + | dirtree_link(self, *args) -> 'void' + | dirtree_link(self, dt, path, link) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param link: (::bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | dirtree_mkdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_move(self, *args) -> 'void' + | dirtree_move(self, dt, _from, to) + | + | @param dt: (dirtree_t *) + | @param from: (::const char *) + | @param to: (::const char *) + | + | dirtree_rank(self, *args) -> 'void' + | dirtree_rank(self, dt, path, rank) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | @param rank: (::size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | dirtree_rmdir(self, dt, path) + | + | @param dt: (dirtree_t *) + | @param path: (::const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | dirtree_rminode(self, dt, inode) + | + | @param dt: (dirtree_t *) + | @param inode: (inode_t) + | + | dirtree_segm_moved(self, *args) -> 'void' + | dirtree_segm_moved(self, dt) + | + | @param dt: (dirtree_t *) + | + | enum_bf_changed(self, *args) -> 'void' + | enum_bf_changed(self, id) + | An enum type 'bitfield' attribute has been changed. + | + | @param id: (enum_t) + | + | enum_cmt_changed(self, *args) -> 'void' + | enum_cmt_changed(self, id, repeatable) + | An enum or member type comment has been changed. + | + | @param id: (tid_t) + | @param repeatable: (bool) + | + | enum_created(self, *args) -> 'void' + | enum_created(self, id) + | An enum type has been created. + | + | @param id: (enum_t) + | + | enum_deleted(self, *args) -> 'void' + | enum_deleted(self, id) + | An enum type has been deleted. + | + | @param id: (enum_t) + | + | enum_flag_changed(self, *args) -> 'void' + | enum_flag_changed(self, id, F) + | Enum flags have been changed. + | + | @param id: (enum_t) + | @param F: (flags64_t) + | + | enum_member_created(self, *args) -> 'void' + | enum_member_created(self, id, cid) + | An enum member has been created. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_member_deleted(self, *args) -> 'void' + | enum_member_deleted(self, id, cid) + | An enum member has been deleted. + | + | @param id: (enum_t) + | @param cid: (const_t) + | + | enum_ordinal_changed(self, *args) -> 'void' + | enum_ordinal_changed(self, id, ord) + | Enum mapping to a local type has been changed. + | + | @param id: (enum_t) + | @param ord: (int) + | + | enum_renamed(self, *args) -> 'void' + | enum_renamed(self, id) + | An enum or member has been renamed. + | + | @param id: (tid_t) + | + | enum_width_changed(self, *args) -> 'void' + | enum_width_changed(self, id, width) + | Enum width has been changed. + | + | @param id: (enum_t) + | @param width: (int) + | + | expanding_struc(self, *args) -> 'void' + | expanding_struc(self, sptr, offset, delta) + | A structure type is to be expanded/shrunk. + | + | @param sptr: (struc_t *) + | @param offset: (::ea_t) + | @param delta: (::adiff_t) + | + | extlang_changed(self, *args) -> 'void' + | extlang_changed(self, kind, el, idx) + | The list of extlangs or the default extlang was changed. + | + | @param kind: (int) 0: extlang installed 1: extlang removed 2: default extlang + | changed + | @param el: (extlang_t *) pointer to the extlang affected + | @param idx: (int) extlang index + | + | extra_cmt_changed(self, *args) -> 'void' + | extra_cmt_changed(self, ea, line_idx, cmt) + | An extra comment has been changed. + | + | @param ea: (::ea_t) + | @param line_idx: (int) + | @param cmt: (const char *) + | + | flow_chart_created(self, *args) -> 'void' + | flow_chart_created(self, fc) + | Gui has retrieved a function flow chart. Plugins may modify the flow chart in + | this callback. + | + | @param fc: (qflow_chart_t *) + | + | frame_deleted(self, *args) -> 'void' + | frame_deleted(self, pfn) + | The kernel has deleted a function frame. + | + | @param pfn: (func_t *) + | + | func_added(self, *args) -> 'void' + | func_added(self, pfn) + | The kernel has added a function. + | + | @param pfn: (func_t *) + | + | func_deleted(self, *args) -> 'void' + | func_deleted(self, func_ea) + | A function has been deleted. + | + | @param func_ea: (::ea_t) + | + | func_noret_changed(self, *args) -> 'void' + | func_noret_changed(self, pfn) + | FUNC_NORET bit has been changed. + | + | @param pfn: (func_t *) + | + | func_tail_appended(self, *args) -> 'void' + | func_tail_appended(self, pfn, tail) + | A function tail chunk has been appended. + | + | @param pfn: (func_t *) + | @param tail: (func_t *) + | + | func_tail_deleted(self, *args) -> 'void' + | func_tail_deleted(self, pfn, tail_ea) + | A function tail chunk has been removed. + | + | @param pfn: (func_t *) + | @param tail_ea: (::ea_t) + | + | func_updated(self, *args) -> 'void' + | func_updated(self, pfn) + | The kernel has updated a function. + | + | @param pfn: (func_t *) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | idasgn_loaded(self, *args) -> 'void' + | idasgn_loaded(self, short_sig_name) + | FLIRT signature has been loaded for normal processing (not for recognition of + | startup sequences). + | + | @param short_sig_name: (const char *) + | + | item_color_changed(self, *args) -> 'void' + | item_color_changed(self, ea, color) + | An item color has been changed. + | + | @param ea: (::ea_t) + | @param color: (bgcolor_t) if color==DEFCOLOR, the the color is deleted. + | + | kernel_config_loaded(self, *args) -> 'void' + | kernel_config_loaded(self, pass_number) + | This event is issued when ida.cfg is parsed. + | + | @param pass_number: (int) + | + | loader_finished(self, *args) -> 'void' + | loader_finished(self, li, neflags, filetypename) + | External file loader finished its work. Use this event to augment the existing + | loader functionality. + | + | @param li: (linput_t *) + | @param neflags: (uint16) Load file flags + | @param filetypename: (const char *) + | + | local_types_changed(self, *args) -> 'void' + | local_types_changed(self) + | Local types have been changed. + | + | make_code(self, *args) -> 'void' + | make_code(self, insn) + | An instruction is being created. + | + | @param insn: (const insn_t*) + | + | make_data(self, *args) -> 'void' + | make_data(self, ea, flags, tid, len) + | A data item is being created. + | + | @param ea: (::ea_t) + | @param flags: (flags64_t) + | @param tid: (tid_t) + | @param len: (::asize_t) + | + | op_ti_changed(self, *args) -> 'void' + | op_ti_changed(self, ea, n, type, fnames) + | An operand typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param n: (int) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | op_type_changed(self, *args) -> 'void' + | op_type_changed(self, ea, n) + | An operand type (offset, hex, etc...) has been set or deleted. + | + | @param ea: (::ea_t) + | @param n: (int) eventually or'ed with OPND_OUTER or OPND_ALL + | + | range_cmt_changed(self, *args) -> 'void' + | range_cmt_changed(self, kind, a, cmt, repeatable) + | Range comment has been changed. + | + | @param kind: (range_kind_t) + | @param a: (const range_t *) + | @param cmt: (const char *) + | @param repeatable: (bool) + | + | renamed(self, *args) -> 'void' + | renamed(self, ea, new_name, local_name, old_name) + | The kernel has renamed a byte. See also the rename event + | + | @param ea: (::ea_t) + | @param new_name: (const char *) can be nullptr + | @param local_name: (bool) + | @param old_name: (const char *) can be nullptr + | + | renaming_enum(self, *args) -> 'void' + | renaming_enum(self, id, is_enum, newname) + | An enum or enum member is to be renamed. + | + | @param id: (tid_t) + | @param is_enum: (bool) + | @param newname: (const char *) + | + | renaming_struc(self, *args) -> 'void' + | renaming_struc(self, id, oldname, newname) + | A structure type is to be renamed. + | + | @param id: (tid_t) + | @param oldname: (const char *) + | @param newname: (const char *) + | + | renaming_struc_member(self, *args) -> 'void' + | renaming_struc_member(self, sptr, mptr, newname) + | A structure member is to be renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | @param newname: (const char *) + | + | savebase(self, *args) -> 'void' + | savebase(self) + | The database is being saved. + | + | segm_added(self, *args) -> 'void' + | segm_added(self, s) + | A new segment has been created. + | + | @param s: (segment_t *) See also adding_segm + | + | segm_attrs_updated(self, *args) -> 'void' + | segm_attrs_updated(self, s) + | Segment attributes has been changed. + | + | @param s: (segment_t *) This event is generated for secondary segment attributes + | (examples: color, permissions, etc) + | + | segm_class_changed(self, *args) -> 'void' + | segm_class_changed(self, s, sclass) + | Segment class has been changed. + | + | @param s: (segment_t *) + | @param sclass: (const char *) + | + | segm_deleted(self, *args) -> 'void' + | segm_deleted(self, start_ea, end_ea, flags) + | A segment has been deleted. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param flags: (int) + | + | segm_end_changed(self, *args) -> 'void' + | segm_end_changed(self, s, oldend) + | Segment end address has been changed. + | + | @param s: (segment_t *) + | @param oldend: (::ea_t) + | + | segm_moved(self, *args) -> 'void' + | segm_moved(self, _from, to, size, changed_netmap) + | Segment has been moved. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param size: (::asize_t) + | @param changed_netmap: (bool) See also idb_event::allsegs_moved + | + | segm_name_changed(self, *args) -> 'void' + | segm_name_changed(self, s, name) + | Segment name has been changed. + | + | @param s: (segment_t *) + | @param name: (const char *) + | + | segm_start_changed(self, *args) -> 'void' + | segm_start_changed(self, s, oldstart) + | Segment start address has been changed. + | + | @param s: (segment_t *) + | @param oldstart: (::ea_t) + | + | set_func_end(self, *args) -> 'void' + | set_func_end(self, pfn, new_end) + | Function chunk end address will be changed. + | + | @param pfn: (func_t *) + | @param new_end: (::ea_t) + | + | set_func_start(self, *args) -> 'void' + | set_func_start(self, pfn, new_start) + | Function chunk start address will be changed. + | + | @param pfn: (func_t *) + | @param new_start: (::ea_t) + | + | sgr_changed(self, *args) -> 'void' + | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | The kernel has changed a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | @param value: (::sel_t) + | @param old_value: (::sel_t) + | @param tag: (uchar) Segment register range tags + | + | sgr_deleted(self, *args) -> 'void' + | sgr_deleted(self, start_ea, end_ea, regnum) + | The kernel has deleted a segment register value. + | + | @param start_ea: (::ea_t) + | @param end_ea: (::ea_t) + | @param regnum: (int) + | + | stkpnts_changed(self, *args) -> 'void' + | stkpnts_changed(self, pfn) + | Stack change points have been modified. + | + | @param pfn: (func_t *) + | + | struc_align_changed(self, *args) -> 'void' + | struc_align_changed(self, sptr) + | A structure type has been changed (the struct alignment). + | + | @param sptr: (struc_t *) + | + | struc_cmt_changed(self, *args) -> 'void' + | struc_cmt_changed(self, struc_id, repeatable_cmt) + | A structure type comment has been changed. + | + | @param struc_id: (tid_t) + | @param repeatable_cmt: (bool) + | + | struc_created(self, *args) -> 'void' + | struc_created(self, struc_id) + | A new structure type has been created. + | + | @param struc_id: (tid_t) + | + | struc_deleted(self, *args) -> 'void' + | struc_deleted(self, struc_id) + | A structure type has been deleted. + | + | @param struc_id: (tid_t) + | + | struc_expanded(self, *args) -> 'void' + | struc_expanded(self, sptr) + | A structure type has been expanded/shrank. + | + | @param sptr: (struc_t *) + | + | struc_member_changed(self, *args) -> 'void' + | struc_member_changed(self, sptr, mptr) + | A structure member has been changed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_created(self, *args) -> 'void' + | struc_member_created(self, sptr, mptr) + | A structure member has been created. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_member_deleted(self, *args) -> 'void' + | struc_member_deleted(self, sptr, member_id, offset) + | A structure member has been deleted. + | + | @param sptr: (struc_t *) + | @param member_id: (tid_t) + | @param offset: (::ea_t) + | + | struc_member_renamed(self, *args) -> 'void' + | struc_member_renamed(self, sptr, mptr) + | A structure member has been renamed. + | + | @param sptr: (struc_t *) + | @param mptr: (member_t *) + | + | struc_renamed(self, *args) -> 'void' + | struc_renamed(self, sptr, success) + | A structure type has been renamed. + | + | @param sptr: (struc_t *) + | @param success: (::bool) the structure was successfully renamed + | + | tail_owner_changed(self, *args) -> 'void' + | tail_owner_changed(self, tail, owner_func, old_owner) + | A tail chunk owner has been changed. + | + | @param tail: (func_t *) + | @param owner_func: (::ea_t) + | @param old_owner: (::ea_t) + | + | thunk_func_created(self, *args) -> 'void' + | thunk_func_created(self, pfn) + | A thunk bit has been set for a function. + | + | @param pfn: (func_t *) + | + | ti_changed(self, *args) -> 'void' + | ti_changed(self, ea, type, fnames) + | An item typestring (c/c++ prototype) has been changed. + | + | @param ea: (::ea_t) + | @param type: (const type_t *) + | @param fnames: (const p_list *) + | + | tryblks_updated(self, *args) -> 'void' + | tryblks_updated(self, tbv) + | Updated tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | updating_tryblks(self, *args) -> 'void' + | updating_tryblks(self, tbv) + | About to update tryblk information + | + | @param tbv: (const ::tryblks_t *) + | + | upgraded(self, *args) -> 'void' + | upgraded(self, _from) + | The database has been upgraded and the receiver can upgrade its info as well + | + | @param from: (int) - old IDB version + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from IDB_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function _processor_t_add_cref in module ida_idp: + +_processor_t_add_cref(*args) -> 'ssize_t' + _processor_t_add_cref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum cref_t + +Help on function _processor_t_add_dref in module ida_idp: + +_processor_t_add_dref(*args) -> 'ssize_t' + _processor_t_add_dref(_from, to, type) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + type: enum dref_t + +Help on function _processor_t_adjust_argloc in module ida_idp: + +_processor_t_adjust_argloc(*args) -> 'ssize_t' + _processor_t_adjust_argloc(argloc, type, size) -> ssize_t + + Parameters + ---------- + argloc: argloc_t * + type: tinfo_t const * + size: int + +Help on function _processor_t_adjust_libfunc_ea in module ida_idp: + +_processor_t_adjust_libfunc_ea(*args) -> 'ssize_t' + _processor_t_adjust_libfunc_ea(sig, libfun, ea) -> ssize_t + + Parameters + ---------- + sig: idasgn_t const & + libfun: libfunc_t const & + ea: ea_t * + +Help on function _processor_t_adjust_refinfo in module ida_idp: + +_processor_t_adjust_refinfo(*args) -> 'ssize_t' + _processor_t_adjust_refinfo(ri, ea, n, fd) -> ssize_t + + Parameters + ---------- + ri: refinfo_t * + ea: ea_t + n: int + fd: fixup_data_t const & + +Help on function _processor_t_ana_insn in module ida_idp: + +_processor_t_ana_insn(*args) -> 'ssize_t' + _processor_t_ana_insn(out) -> ssize_t + + Parameters + ---------- + out: insn_t * + +Help on function _processor_t_analyze_prolog in module ida_idp: + +_processor_t_analyze_prolog(*args) -> 'ssize_t' + _processor_t_analyze_prolog(fct_ea) -> ssize_t + + Parameters + ---------- + fct_ea: ea_t + +Help on function _processor_t_arch_changed in module ida_idp: + +_processor_t_arch_changed(*args) -> 'ssize_t' + _processor_t_arch_changed() -> ssize_t + +Help on function _processor_t_arg_addrs_ready in module ida_idp: + +_processor_t_arg_addrs_ready(*args) -> 'ssize_t' + _processor_t_arg_addrs_ready(caller, n, tif, addrs) -> ssize_t + + Parameters + ---------- + caller: ea_t + n: int + tif: tinfo_t const & + addrs: ea_t * + +Help on function _processor_t_asm_installed in module ida_idp: + +_processor_t_asm_installed(*args) -> 'ssize_t' + _processor_t_asm_installed(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_assemble in module ida_idp: + +_processor_t_assemble(*args) -> 'ssize_t' + _processor_t_assemble(_bin, ea, cs, ip, _use32, line) -> ssize_t + + Parameters + ---------- + _bin: uchar * + ea: ea_t + cs: ea_t + ip: ea_t + _use32: bool + line: char const * + +Help on function _processor_t_auto_queue_empty in module ida_idp: + +_processor_t_auto_queue_empty(*args) -> 'void' + _processor_t_auto_queue_empty(type) + + Parameters + ---------- + type: int + +Help on function _processor_t_calc_arglocs in module ida_idp: + +_processor_t_calc_arglocs(*args) -> 'ssize_t' + _processor_t_calc_arglocs(fti) -> ssize_t + + Parameters + ---------- + fti: func_type_data_t * + +Help on function _processor_t_calc_cdecl_purged_bytes in module ida_idp: + +_processor_t_calc_cdecl_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_cdecl_purged_bytes(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_calc_next_eas in module ida_idp: + +_processor_t_calc_next_eas(*args) -> 'ssize_t' + _processor_t_calc_next_eas(res, insn, over) -> ssize_t + + Parameters + ---------- + res: eavec_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + over: bool + +Help on function _processor_t_calc_purged_bytes in module ida_idp: + +_processor_t_calc_purged_bytes(*args) -> 'ssize_t' + _processor_t_calc_purged_bytes(p_purged_bytes, fti) -> ssize_t + + Parameters + ---------- + p_purged_bytes: int * + fti: func_type_data_t const & + +Help on function _processor_t_calc_retloc in module ida_idp: + +_processor_t_calc_retloc(*args) -> 'ssize_t' + _processor_t_calc_retloc(retloc, rettype, cc) -> ssize_t + + Parameters + ---------- + retloc: argloc_t * + rettype: tinfo_t const & + cc: cm_t + +Help on function _processor_t_calc_spdelta in module ida_idp: + +_processor_t_calc_spdelta(*args) -> 'ssize_t' + _processor_t_calc_spdelta(spdelta, ins) -> ssize_t + + Parameters + ---------- + spdelta: sval_t * + ins: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_calc_step_over in module ida_idp: + +_processor_t_calc_step_over(*args) -> 'ssize_t' + _processor_t_calc_step_over(target, ip) -> ssize_t + + Parameters + ---------- + target: ea_t * + ip: ea_t + +Help on function _processor_t_calc_switch_cases in module ida_idp: + +_processor_t_calc_switch_cases(*args) -> 'ssize_t' + _processor_t_calc_switch_cases(casevec, targets, insn_ea, si) -> ssize_t + + Parameters + ---------- + casevec: void * + targets: eavec_t * + insn_ea: ea_t + si: switch_info_t const & + +Help on function _processor_t_calc_varglocs in module ida_idp: + +_processor_t_calc_varglocs(*args) -> 'ssize_t' + _processor_t_calc_varglocs(ftd, regs, stkargs, nfixed) -> ssize_t + + Parameters + ---------- + ftd: func_type_data_t * + regs: regobjs_t * + stkargs: relobj_t * + nfixed: int + +Help on function _processor_t_calcrel in module ida_idp: + +_processor_t_calcrel(*args) -> 'bytevec_t *, size_t *' + _processor_t_calcrel(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_can_have_type in module ida_idp: + +_processor_t_can_have_type(*args) -> 'ssize_t' + _processor_t_can_have_type(op) -> ssize_t + + Parameters + ---------- + op: op_t const & + +Help on function _processor_t_clean_tbit in module ida_idp: + +_processor_t_clean_tbit(*args) -> 'ssize_t' + _processor_t_clean_tbit(ea, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + ea: ea_t + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_cmp_operands in module ida_idp: + +_processor_t_cmp_operands(*args) -> 'ssize_t' + _processor_t_cmp_operands(op1, op2) -> ssize_t + + Parameters + ---------- + op1: op_t const & + op2: op_t const & + +Help on function _processor_t_coagulate in module ida_idp: + +_processor_t_coagulate(*args) -> 'ssize_t' + _processor_t_coagulate(start_ea) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + +Help on function _processor_t_coagulate_dref in module ida_idp: + +_processor_t_coagulate_dref(*args) -> 'ssize_t' + _processor_t_coagulate_dref(_from, to, may_define, code_ea) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + may_define: bool + code_ea: ea_t * + +Help on function _processor_t_create_flat_group in module ida_idp: + +_processor_t_create_flat_group(*args) -> 'ssize_t' + _processor_t_create_flat_group(image_base, bitness, dataseg_sel) -> ssize_t + + Parameters + ---------- + image_base: ea_t + bitness: int + dataseg_sel: sel_t + +Help on function _processor_t_create_func_frame in module ida_idp: + +_processor_t_create_func_frame(*args) -> 'ssize_t' + _processor_t_create_func_frame(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_create_merge_handlers in module ida_idp: + +_processor_t_create_merge_handlers(*args) -> 'ssize_t' + _processor_t_create_merge_handlers(md) -> ssize_t + + Parameters + ---------- + md: merge_data_t * + +Help on function _processor_t_create_switch_xrefs in module ida_idp: + +_processor_t_create_switch_xrefs(*args) -> 'ssize_t' + _processor_t_create_switch_xrefs(jumpea, si) -> ssize_t + + Parameters + ---------- + jumpea: ea_t + si: switch_info_t const & + +Help on function _processor_t_creating_segm in module ida_idp: + +_processor_t_creating_segm(*args) -> 'ssize_t' + _processor_t_creating_segm(seg) -> ssize_t + + Parameters + ---------- + seg: segment_t * + +Help on function _processor_t_decorate_name in module ida_idp: + +_processor_t_decorate_name(*args) -> 'ssize_t' + _processor_t_decorate_name(outbuf, name, mangle, cc, type) -> ssize_t + + Parameters + ---------- + outbuf: qstring * + name: char const * + mangle: bool + cc: cm_t + type: tinfo_t const & + +Help on function _processor_t_del_cref in module ida_idp: + +_processor_t_del_cref(*args) -> 'ssize_t' + _processor_t_del_cref(_from, to, expand) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + expand: bool + +Help on function _processor_t_del_dref in module ida_idp: + +_processor_t_del_dref(*args) -> 'ssize_t' + _processor_t_del_dref(_from, to) -> ssize_t + + Parameters + ---------- + from: ea_t + to: ea_t + +Help on function _processor_t_demangle_name in module ida_idp: + +_processor_t_demangle_name(*args) -> 'int' + _processor_t_demangle_name(res, name, disable_mask, demreq) -> ssize_t + + Parameters + ---------- + res: int32 * + name: char const * + disable_mask: uint32 + demreq: int + +Help on function _processor_t_emu_insn in module ida_idp: + +_processor_t_emu_insn(*args) -> 'ssize_t' + _processor_t_emu_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_endbinary in module ida_idp: + +_processor_t_endbinary(*args) -> 'ssize_t' + _processor_t_endbinary(ok) -> ssize_t + + Parameters + ---------- + ok: bool + +Help on function _processor_t_equal_reglocs in module ida_idp: + +_processor_t_equal_reglocs(*args) -> 'ssize_t' + _processor_t_equal_reglocs(a1, a2) -> ssize_t + + Parameters + ---------- + a1: argloc_t const & + a2: argloc_t const & + +Help on function _processor_t_extract_address in module ida_idp: + +_processor_t_extract_address(*args) -> 'ssize_t' + _processor_t_extract_address(out_ea, screen_ea, string, x) -> ssize_t + + Parameters + ---------- + out_ea: ea_t * + screen_ea: ea_t + string: char const * + x: size_t + +Help on function _processor_t_find_op_value in module ida_idp: + +_processor_t_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_op_value(insn, op) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + op: int + +Help on function _processor_t_find_reg_value in module ida_idp: + +_processor_t_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + _processor_t_find_reg_value(insn, reg) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + reg: int + +Help on function _processor_t_func_bounds in module ida_idp: + +_processor_t_func_bounds(*args) -> 'ssize_t' + _processor_t_func_bounds(possible_return_code, pfn, max_func_end_ea) -> ssize_t + + Parameters + ---------- + possible_return_code: int * + pfn: func_t * + max_func_end_ea: ea_t + +Help on function _processor_t_gen_asm_or_lst in module ida_idp: + +_processor_t_gen_asm_or_lst(*args) -> 'ssize_t' + _processor_t_gen_asm_or_lst(starting, fp, is_asm, flags, outline) -> ssize_t + + Parameters + ---------- + starting: bool + fp: FILE * + is_asm: bool + flags: int + outline: void * + +Help on function _processor_t_gen_map_file in module ida_idp: + +_processor_t_gen_map_file(*args) -> 'ssize_t' + _processor_t_gen_map_file(nlines, fp) -> ssize_t + + Parameters + ---------- + nlines: int * + fp: FILE * + +Help on function _processor_t_gen_regvar_def in module ida_idp: + +_processor_t_gen_regvar_def(*args) -> 'ssize_t' + _processor_t_gen_regvar_def(ctx, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + v: regvar_t * + +Help on function _processor_t_gen_src_file_lnnum in module ida_idp: + +_processor_t_gen_src_file_lnnum(*args) -> 'ssize_t' + _processor_t_gen_src_file_lnnum(ctx, file, lnnum) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + file: char const * + lnnum: size_t + +Help on function _processor_t_gen_stkvar_def in module ida_idp: + +_processor_t_gen_stkvar_def(*args) -> 'ssize_t' + _processor_t_gen_stkvar_def(ctx, mptr, v) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + mptr: member_t const * + v: sval_t + +Help on function _processor_t_get_abi_info in module ida_idp: + +_processor_t_get_abi_info(*args) -> 'ssize_t' + _processor_t_get_abi_info(abi_names, abi_opts, comp) -> ssize_t + + Parameters + ---------- + abi_names: qstrvec_t * + abi_opts: qstrvec_t * + comp: comp_t + +Help on function _processor_t_get_autocmt in module ida_idp: + +_processor_t_get_autocmt(*args) -> 'qstring *' + _processor_t_get_autocmt(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_bg_color in module ida_idp: + +_processor_t_get_bg_color(*args) -> 'ssize_t' + _processor_t_get_bg_color(color, ea) -> ssize_t + + Parameters + ---------- + color: bgcolor_t * + ea: ea_t + +Help on function _processor_t_get_cc_regs in module ida_idp: + +_processor_t_get_cc_regs(*args) -> 'ssize_t' + _processor_t_get_cc_regs(regs, cc) -> ssize_t + + Parameters + ---------- + regs: callregs_t * + cc: cm_t + +Help on function _processor_t_get_code16_mode in module ida_idp: + +_processor_t_get_code16_mode(*args) -> 'bool' + _processor_t_get_code16_mode(ea) -> bool + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_get_dbr_opnum in module ida_idp: + +_processor_t_get_dbr_opnum(*args) -> 'ssize_t' + _processor_t_get_dbr_opnum(opnum, insn) -> ssize_t + + Parameters + ---------- + opnum: int * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_get_frame_retsize in module ida_idp: + +_processor_t_get_frame_retsize(*args) -> 'ssize_t' + _processor_t_get_frame_retsize(retsize, pfn) -> ssize_t + + Parameters + ---------- + retsize: int * + pfn: func_t const * + +Help on function _processor_t_get_idd_opinfo in module ida_idp: + +_processor_t_get_idd_opinfo(*args) -> 'ssize_t' + _processor_t_get_idd_opinfo(opinf, ea, n, thread_id, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + opinf: idd_opinfo_t * + ea: ea_t + n: int + thread_id: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_get_macro_insn_head in module ida_idp: + +_processor_t_get_macro_insn_head(*args) -> 'ssize_t' + _processor_t_get_macro_insn_head(head, ip) -> ssize_t + + Parameters + ---------- + head: ea_t * + ip: ea_t + +Help on function _processor_t_get_operand_string in module ida_idp: + +_processor_t_get_operand_string(*args) -> 'qstring *' + _processor_t_get_operand_string(insn, opnum) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + opnum: int + +Help on function _processor_t_get_reg_accesses in module ida_idp: + +_processor_t_get_reg_accesses(*args) -> 'ssize_t' + _processor_t_get_reg_accesses(accvec, insn, flags) -> ssize_t + + Parameters + ---------- + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + flags: int + +Help on function _processor_t_get_reg_info in module ida_idp: + +_processor_t_get_reg_info(*args) -> 'char const *' + _processor_t_get_reg_info(regname, bitrange) -> char const * + + Parameters + ---------- + regname: char const * + bitrange: bitrange_t * + +Help on function _processor_t_get_reg_name in module ida_idp: + +_processor_t_get_reg_name(*args) -> 'qstring *' + _processor_t_get_reg_name(reg, width, reghi) -> ssize_t + + Parameters + ---------- + reg: int + width: size_t + reghi: int + +Help on function _processor_t_get_simd_types in module ida_idp: + +_processor_t_get_simd_types(*args) -> 'ssize_t' + _processor_t_get_simd_types(out, simd_attrs, argloc, create_tifs) -> ssize_t + + Parameters + ---------- + out: void * + simd_attrs: simd_info_t const * + argloc: argloc_t const * + create_tifs: bool + +Help on function _processor_t_get_stkarg_area_info in module ida_idp: + +_processor_t_get_stkarg_area_info(*args) -> 'ssize_t' + _processor_t_get_stkarg_area_info(out, cc) -> ssize_t + + Parameters + ---------- + out: stkarg_area_info_t * + cc: cm_t + +Help on function _processor_t_get_stkvar_scale_factor in module ida_idp: + +_processor_t_get_stkvar_scale_factor(*args) -> 'ssize_t' + _processor_t_get_stkvar_scale_factor() -> ssize_t + +Help on function _processor_t_getreg in module ida_idp: + +_processor_t_getreg(*args) -> 'ssize_t' + _processor_t_getreg(rv, regnum) -> ssize_t + + Parameters + ---------- + rv: uval_t * + regnum: int + +Help on function _processor_t_init in module ida_idp: + +_processor_t_init(*args) -> 'ssize_t' + _processor_t_init(idp_modname) -> ssize_t + + Parameters + ---------- + idp_modname: char const * + +Help on function _processor_t_insn_reads_tbit in module ida_idp: + +_processor_t_insn_reads_tbit(*args) -> 'ssize_t' + _processor_t_insn_reads_tbit(insn, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_is_align_insn in module ida_idp: + +_processor_t_is_align_insn(*args) -> 'ssize_t' + _processor_t_is_align_insn(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_alloca_probe in module ida_idp: + +_processor_t_is_alloca_probe(*args) -> 'ssize_t' + _processor_t_is_alloca_probe(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_is_basic_block_end in module ida_idp: + +_processor_t_is_basic_block_end(*args) -> 'ssize_t' + _processor_t_is_basic_block_end(insn, call_insn_stops_block) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + call_insn_stops_block: bool + +Help on function _processor_t_is_call_insn in module ida_idp: + +_processor_t_is_call_insn(*args) -> 'ssize_t' + _processor_t_is_call_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_cond_insn in module ida_idp: + +_processor_t_is_cond_insn(*args) -> 'ssize_t' + _processor_t_is_cond_insn(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_control_flow_guard in module ida_idp: + +_processor_t_is_control_flow_guard(*args) -> 'ssize_t' + _processor_t_is_control_flow_guard(p_reg, insn) -> ssize_t + + Parameters + ---------- + p_reg: int * + insn: insn_t const * + +Help on function _processor_t_is_far_jump in module ida_idp: + +_processor_t_is_far_jump(*args) -> 'ssize_t' + _processor_t_is_far_jump(icode) -> ssize_t + + Parameters + ---------- + icode: int + +Help on function _processor_t_is_indirect_jump in module ida_idp: + +_processor_t_is_indirect_jump(*args) -> 'ssize_t' + _processor_t_is_indirect_jump(insn) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_is_jump_func in module ida_idp: + +_processor_t_is_jump_func(*args) -> 'ssize_t' + _processor_t_is_jump_func(pfn, jump_target, func_pointer) -> ssize_t + + Parameters + ---------- + pfn: func_t * + jump_target: ea_t * + func_pointer: ea_t * + +Help on function _processor_t_is_ret_insn in module ida_idp: + +_processor_t_is_ret_insn(*args) -> 'ssize_t' + _processor_t_is_ret_insn(insn, strict) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + strict: bool + +Help on function _processor_t_is_sane_insn in module ida_idp: + +_processor_t_is_sane_insn(*args) -> 'ssize_t' + _processor_t_is_sane_insn(insn, no_crefs) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + no_crefs: int + +Help on function _processor_t_is_sp_based in module ida_idp: + +_processor_t_is_sp_based(*args) -> 'ssize_t' + _processor_t_is_sp_based(insn, x) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + +Help on function _processor_t_is_switch in module ida_idp: + +_processor_t_is_switch(*args) -> 'ssize_t' + _processor_t_is_switch(si, insn) -> ssize_t + + Parameters + ---------- + si: switch_info_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function _processor_t_loader_elf_machine in module ida_idp: + +_processor_t_loader_elf_machine(*args) -> 'ssize_t' + _processor_t_loader_elf_machine(li, machine_type, p_procname, p_pd, ldr, reader) -> ssize_t + + Parameters + ---------- + li: linput_t * + machine_type: int + p_procname: char const ** + p_pd: proc_def_t ** + ldr: elf_loader_t * + reader: reader_t * + +Help on function _processor_t_lower_func_type in module ida_idp: + +_processor_t_lower_func_type(*args) -> 'ssize_t' + _processor_t_lower_func_type(argnums, fti) -> ssize_t + + Parameters + ---------- + argnums: intvec_t * + fti: func_type_data_t * + +Help on function _processor_t_max_ptr_size in module ida_idp: + +_processor_t_max_ptr_size(*args) -> 'ssize_t' + _processor_t_max_ptr_size() -> ssize_t + +Help on function _processor_t_may_be_func in module ida_idp: + +_processor_t_may_be_func(*args) -> 'ssize_t' + _processor_t_may_be_func(insn, state) -> ssize_t + + Parameters + ---------- + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + state: int + +Help on function _processor_t_may_show_sreg in module ida_idp: + +_processor_t_may_show_sreg(*args) -> 'ssize_t' + _processor_t_may_show_sreg(current_ea) -> ssize_t + + Parameters + ---------- + current_ea: ea_t + +Help on function _processor_t_moving_segm in module ida_idp: + +_processor_t_moving_segm(*args) -> 'ssize_t' + _processor_t_moving_segm(seg, to, flags) -> ssize_t + + Parameters + ---------- + seg: segment_t * + to: ea_t + flags: int + +Help on function _processor_t_newasm in module ida_idp: + +_processor_t_newasm(*args) -> 'ssize_t' + _processor_t_newasm(asmnum) -> ssize_t + + Parameters + ---------- + asmnum: int + +Help on function _processor_t_newbinary in module ida_idp: + +_processor_t_newbinary(*args) -> 'ssize_t' + _processor_t_newbinary(filename, fileoff, basepara, binoff, nbytes) -> ssize_t + + Parameters + ---------- + filename: char const * + fileoff: qoff64_t + basepara: ea_t + binoff: ea_t + nbytes: uint64 + +Help on function _processor_t_newfile in module ida_idp: + +_processor_t_newfile(*args) -> 'ssize_t' + _processor_t_newfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_newprc in module ida_idp: + +_processor_t_newprc(*args) -> 'ssize_t' + _processor_t_newprc(pnum, keep_cfg) -> ssize_t + + Parameters + ---------- + pnum: int + keep_cfg: bool + +Help on function _processor_t_next_exec_insn in module ida_idp: + +_processor_t_next_exec_insn(*args) -> 'ssize_t' + _processor_t_next_exec_insn(target, ea, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + target: ea_t * + ea: ea_t + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_notify in module ida_idp: + +_processor_t_notify(*args) -> 'ssize_t' + _processor_t_notify(event_code) -> ssize_t + + Parameters + ---------- + event_code: enum processor_t::event_t + +Help on function _processor_t_oldfile in module ida_idp: + +_processor_t_oldfile(*args) -> 'ssize_t' + _processor_t_oldfile(fname) -> ssize_t + + Parameters + ---------- + fname: char const * + +Help on function _processor_t_out_assumes in module ida_idp: + +_processor_t_out_assumes(*args) -> 'ssize_t' + _processor_t_out_assumes(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_data in module ida_idp: + +_processor_t_out_data(*args) -> 'ssize_t' + _processor_t_out_data(ctx, analyze_only) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + analyze_only: bool + +Help on function _processor_t_out_footer in module ida_idp: + +_processor_t_out_footer(*args) -> 'ssize_t' + _processor_t_out_footer(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_header in module ida_idp: + +_processor_t_out_header(*args) -> 'ssize_t' + _processor_t_out_header(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_insn in module ida_idp: + +_processor_t_out_insn(*args) -> 'ssize_t' + _processor_t_out_insn(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_label in module ida_idp: + +_processor_t_out_label(*args) -> 'ssize_t' + _processor_t_out_label(ctx, colored_name) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + colored_name: char const * + +Help on function _processor_t_out_mnem in module ida_idp: + +_processor_t_out_mnem(*args) -> 'ssize_t' + _processor_t_out_mnem(ctx) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + +Help on function _processor_t_out_operand in module ida_idp: + +_processor_t_out_operand(*args) -> 'ssize_t' + _processor_t_out_operand(ctx, op) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + op: op_t const & + +Help on function _processor_t_out_segend in module ida_idp: + +_processor_t_out_segend(*args) -> 'ssize_t' + _processor_t_out_segend(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_segstart in module ida_idp: + +_processor_t_out_segstart(*args) -> 'ssize_t' + _processor_t_out_segstart(ctx, seg) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + seg: segment_t * + +Help on function _processor_t_out_special_item in module ida_idp: + +_processor_t_out_special_item(*args) -> 'ssize_t' + _processor_t_out_special_item(ctx, segtype) -> ssize_t + + Parameters + ---------- + ctx: outctx_t & + segtype: uchar + +Help on function _processor_t_realcvt in module ida_idp: + +_processor_t_realcvt(*args) -> 'fpvalue_error_t' + _processor_t_realcvt(m, e, swt) -> fpvalue_error_t + + Parameters + ---------- + m: void * + e: fpvalue_t * + swt: uint16 + +Help on function _processor_t_rename in module ida_idp: + +_processor_t_rename(*args) -> 'ssize_t' + _processor_t_rename(ea, new_name, flags) -> ssize_t + + Parameters + ---------- + ea: ea_t + new_name: char const * + flags: int + +Help on function _processor_t_set_code16_mode in module ida_idp: + +_processor_t_set_code16_mode(*args) -> 'ssize_t' + _processor_t_set_code16_mode(ea, code16=True) -> ssize_t + + Parameters + ---------- + ea: ea_t + code16: bool + +Help on function _processor_t_set_idp_options in module ida_idp: + +_processor_t_set_idp_options(*args) -> 'char const *' + _processor_t_set_idp_options(keyword, vtype, value, idb_loaded=True) -> char const * + + Parameters + ---------- + keyword: char const * + vtype: int + value: void const * + idb_loaded: bool + +Help on function _processor_t_set_proc_options in module ida_idp: + +_processor_t_set_proc_options(*args) -> 'ssize_t' + _processor_t_set_proc_options(options, confidence) -> ssize_t + + Parameters + ---------- + options: char const * + confidence: int + +Help on function _processor_t_setup_til in module ida_idp: + +_processor_t_setup_til(*args) -> 'ssize_t' + _processor_t_setup_til() -> ssize_t + +Help on function _processor_t_str2reg in module ida_idp: + +_processor_t_str2reg(*args) -> 'ssize_t' + _processor_t_str2reg(regname) -> ssize_t + + Parameters + ---------- + regname: char const * + +Help on function _processor_t_term in module ida_idp: + +_processor_t_term(*args) -> 'ssize_t' + _processor_t_term() -> ssize_t + +Help on function _processor_t_treat_hindering_item in module ida_idp: + +_processor_t_treat_hindering_item(*args) -> 'ssize_t' + _processor_t_treat_hindering_item(hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> ssize_t + + Parameters + ---------- + hindering_item_ea: ea_t + new_item_flags: flags64_t + new_item_ea: ea_t + new_item_length: asize_t + +Help on function _processor_t_undefine in module ida_idp: + +_processor_t_undefine(*args) -> 'ssize_t' + _processor_t_undefine(ea) -> ssize_t + + Parameters + ---------- + ea: ea_t + +Help on function _processor_t_update_call_stack in module ida_idp: + +_processor_t_update_call_stack(*args) -> 'ssize_t' + _processor_t_update_call_stack(stack, tid, _getreg, regvalues) -> ssize_t + + Parameters + ---------- + stack: call_stack_t * + tid: int + _getreg: processor_t::regval_getter_t * + regvalues: regval_t const & + +Help on function _processor_t_use_arg_types in module ida_idp: + +_processor_t_use_arg_types(*args) -> 'ssize_t' + _processor_t_use_arg_types(ea, fti, rargs) -> ssize_t + + Parameters + ---------- + ea: ea_t + fti: func_type_data_t * + rargs: void * + +Help on function _processor_t_use_regarg_type in module ida_idp: + +_processor_t_use_regarg_type(*args) -> 'ssize_t' + _processor_t_use_regarg_type(idx, ea, rargs) -> ssize_t + + Parameters + ---------- + idx: int * + ea: ea_t + rargs: void * + +Help on function _processor_t_use_stkarg_type in module ida_idp: + +_processor_t_use_stkarg_type(*args) -> 'ssize_t' + _processor_t_use_stkarg_type(ea, arg) -> ssize_t + + Parameters + ---------- + ea: ea_t + arg: funcarg_t const & + +Help on function _processor_t_validate_flirt_func in module ida_idp: + +_processor_t_validate_flirt_func(*args) -> 'ssize_t' + _processor_t_validate_flirt_func(start_ea, funcname) -> ssize_t + + Parameters + ---------- + start_ea: ea_t + funcname: char const * + +Help on function _processor_t_verify_noreturn in module ida_idp: + +_processor_t_verify_noreturn(*args) -> 'ssize_t' + _processor_t_verify_noreturn(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on function _processor_t_verify_sp in module ida_idp: + +_processor_t_verify_sp(*args) -> 'ssize_t' + _processor_t_verify_sp(pfn) -> ssize_t + + Parameters + ---------- + pfn: func_t * + +Help on class asm_t in module ida_idp: + +class asm_t(builtins.object) + | Proxy of C++ asm_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> asm_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_asm_t(...) + | delete_asm_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | a_align + | a_align + | + | a_ascii + | a_ascii + | + | a_band + | a_band + | + | a_bnot + | a_bnot + | + | a_bor + | a_bor + | + | a_bss + | a_bss + | + | a_byte + | a_byte + | + | a_comdef + | a_comdef + | + | a_curip + | a_curip + | + | a_double + | a_double + | + | a_dups + | a_dups + | + | a_dword + | a_dword + | + | a_equ + | a_equ + | + | a_extrn + | a_extrn + | + | a_float + | a_float + | + | a_include_fmt + | a_include_fmt + | + | a_mod + | a_mod + | + | a_oword + | a_oword + | + | a_packreal + | a_packreal + | + | a_public + | a_public + | + | a_qword + | a_qword + | + | a_rva + | a_rva + | + | a_seg + | a_seg + | + | a_shl + | a_shl + | + | a_shr + | a_shr + | + | a_sizeof_fmt + | a_sizeof_fmt + | + | a_tbyte + | a_tbyte + | + | a_vstruc_fmt + | a_vstruc_fmt + | + | a_weak + | a_weak + | + | a_word + | a_word + | + | a_xor + | a_xor + | + | a_yword + | a_yword + | + | a_zword + | a_zword + | + | accsep + | accsep + | + | ascsep + | ascsep + | + | cmnt + | cmnt + | + | cmnt2 + | cmnt2 + | + | end + | end + | + | esccodes + | esccodes + | + | flag + | flag + | + | flag2 + | flag2 + | + | header + | header + | + | help + | help + | + | high16 + | high16 + | + | high8 + | high8 + | + | lbrace + | lbrace + | + | low16 + | low16 + | + | low8 + | low8 + | + | name + | name + | + | origin + | origin + | + | rbrace + | rbrace + | + | thisown + | The membership flag + | + | uflag + | uflag + +Help on function assemble in module ida_idp: + +assemble(*args) -> 'bool' + assemble(ea, cs, ip, use32, line) -> bool + Assemble an instruction into the database (display a warning if an error is found) + + @param ea: linear address of instruction + @param cs: cs of instruction + @param ip: ip of instruction + @param use32: is 32bit segment? + @param line: line to assemble + + @return: Boolean. True on success. + +Help on function cfg_get_cc_header_path in module ida_idp: + +cfg_get_cc_header_path(*args) -> 'char const *' + cfg_get_cc_header_path(compid) -> char const * + + @param compid: comp_t + +Help on function cfg_get_cc_parm in module ida_idp: + +cfg_get_cc_parm(*args) -> 'char const *' + cfg_get_cc_parm(compid, name) -> char const * + + @param compid: comp_t + @param name: char const * + +Help on function cfg_get_cc_predefined_macros in module ida_idp: + +cfg_get_cc_predefined_macros(*args) -> 'char const *' + cfg_get_cc_predefined_macros(compid) -> char const * + + @param compid: comp_t + +Help on function delay_slot_insn in module ida_idp: + +delay_slot_insn(*args) -> 'bool' + delay_slot_insn(ea, bexec, fexec) -> bool + + @param ea: ea_t * + @param bexec: bool * + @param fexec: bool * + +Help on function gen_idb_event in module ida_idp: + +gen_idb_event(*args) -> 'void' + gen_idb_event(code) + the kernel will use this function to generate idb_events + + @param code: (C++: idb_event::event_code_t) enum idb_event::event_code_t + +Help on function get_ash in module ida_idp: + +get_ash(*args) -> 'asm_t *' + get_ash() -> asm_t + +Help on function get_idb_notifier_addr in module ida_idp: + +get_idb_notifier_addr(*args) -> 'PyObject *' + get_idb_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * + +Help on function get_idb_notifier_ud_addr in module ida_idp: + +get_idb_notifier_ud_addr(*args) -> 'PyObject *' + get_idb_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDB_Hooks * + +Help on function get_idp_name in module ida_idp: + +get_idp_name(*args) -> 'size_t' + get_idp_name() -> str + Get name of the current processor module. The name is derived from the file + name. For example, for IBM PC the module is named "pc.w32" (windows version), + then the module name is "PC" (uppercase). If no processor module is loaded, this + function will return nullptr + +Help on function get_idp_notifier_addr in module ida_idp: + +get_idp_notifier_addr(*args) -> 'PyObject *' + get_idp_notifier_addr(arg1) -> PyObject * + + @param arg1: PyObject * + +Help on function get_idp_notifier_ud_addr in module ida_idp: + +get_idp_notifier_ud_addr(*args) -> 'PyObject *' + get_idp_notifier_ud_addr(hooks) -> PyObject * + + @param hooks: IDP_Hooks * + +Help on function get_ph in module ida_idp: + +get_ph(*args) -> 'processor_t *' + get_ph() -> _processor_t + +Help on function get_reg_info in module ida_idp: + +get_reg_info(*args) -> 'char const *' + get_reg_info(regname, bitrange) -> char const * + + @param regname: char const * + @param bitrange: bitrange_t * + +Help on function get_reg_name in module ida_idp: + +get_reg_name(*args) -> 'qstring *' + get_reg_name(reg, width, reghi=-1) -> str + Get text representation of a register. For most processors this function will + just return processor_t::reg_names[reg]. If the processor module has implemented + processor_t::get_reg_name, it will be used instead + + @param reg: (C++: int) internal register number as defined in the processor module + @param width: (C++: size_t) register width in bytes + @param reghi: (C++: int) if specified, then this function will return the register pair + @return: length of register name in bytes or -1 if failure + +Help on function has_cf_chg in module ida_idp: + +has_cf_chg(*args) -> 'bool' + has_cf_chg(feature, opnum) -> bool + Does an instruction with the specified feature modify the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) + +Help on function has_cf_use in module ida_idp: + +has_cf_use(*args) -> 'bool' + has_cf_use(feature, opnum) -> bool + Does an instruction with the specified feature use a value of the i-th operand? + + @param feature: (C++: uint32) + @param opnum: (C++: uint) + +Help on function has_insn_feature in module ida_idp: + +has_insn_feature(*args) -> 'bool' + has_insn_feature(icode, bit) -> bool + Does the specified instruction have the specified feature? + + @param icode: (C++: uint16) + @param bit: (C++: uint32) + +Help on function is_align_insn in module ida_idp: + +is_align_insn(*args) -> 'int' + is_align_insn(ea) -> int + If the instruction at 'ea' looks like an alignment instruction, return its + length in bytes. Otherwise return 0. + + @param ea: (C++: ea_t) + +Help on function is_basic_block_end in module ida_idp: + +is_basic_block_end(*args) -> 'bool' + is_basic_block_end(insn, call_insn_stops_block) -> bool + Is the instruction the end of a basic block? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param call_insn_stops_block: (C++: bool) + +Help on function is_call_insn in module ida_idp: + +is_call_insn(*args) -> 'bool' + is_call_insn(insn) -> bool + Is the instruction a "call"? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function is_indirect_jump_insn in module ida_idp: + +is_indirect_jump_insn(*args) -> 'bool' + is_indirect_jump_insn(insn) -> bool + Is the instruction an indirect jump? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + +Help on function is_ret_insn in module ida_idp: + +is_ret_insn(*args) -> 'bool' + is_ret_insn(insn, strict=True) -> bool + Is the instruction a "return"? + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict: (C++: bool) + +Help on class num_range_t in module ida_idp: + +class num_range_t(builtins.object) + | Proxy of C++ cfgopt_t::num_range_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _min, _max) -> num_range_t + | + | @param _min: int64 + | @param _max: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_num_range_t(...) + | delete_num_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | maxval + | maxval + | + | minval + | minval + | + | thisown + | The membership flag + +Help on class params_t in module ida_idp: + +class params_t(builtins.object) + | Proxy of C++ cfgopt_t::params_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _p1, _p2) -> params_t + | + | @param _p1: int64 + | @param _p2: int64 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_params_t(...) + | delete_params_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | p1 + | p1 + | + | p2 + | p2 + | + | thisown + | The membership flag + +Help on function parse_reg_name in module ida_idp: + +parse_reg_name(*args) -> 'bool' + parse_reg_name(ri, regname) -> bool + Get register info by name. + + @param ri: (C++: reg_info_t *) result + @param regname: (C++: const char *) name of register + @return: success + +Help on __ph in module ida_idp object: + +class __ph(builtins.object) + | # ---------------------------------------------------------------------- + | + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cnbits + | + | dnbits + | + | flag + | + | icode_return + | + | id + | + | instruc + | + | instruc_end + | + | instruc_start + | + | reg_code_sreg + | + | reg_data_sreg + | + | reg_first_sreg + | + | reg_last_sreg + | + | regnames + | + | segreg_size + | + | tbyte_size + | + | version + +Help on function ph_calcrel in module ida_idp: + +ph_calcrel(*args) -> 'bytevec_t *, size_t *' + ph_calcrel(ea) + + @param ea: ea_t + +Help on function ph_find_op_value in module ida_idp: + +ph_find_op_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + ph_find_op_value(insn, op) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: int + +Help on function ph_find_reg_value in module ida_idp: + +ph_find_reg_value(*args) -> 'unsigned-ea-like-numeric-type *'↗ + ph_find_reg_value(insn, reg) -> ssize_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param reg: int + +Help on function ph_get_cnbits in module ida_idp: + +ph_get_cnbits(*args) -> 'size_t' + ph_get_cnbits() -> size_t + Returns the 'ph.cnbits' + +Help on function ph_get_dnbits in module ida_idp: + +ph_get_dnbits(*args) -> 'size_t' + ph_get_dnbits() -> size_t + Returns the 'ph.dnbits' + +Help on function ph_get_flag in module ida_idp: + +ph_get_flag(*args) -> 'size_t' + ph_get_flag() -> size_t + Returns the 'ph.flag' + +Help on function ph_get_icode_return in module ida_idp: + +ph_get_icode_return(*args) -> 'size_t' + ph_get_icode_return() -> size_t + Returns the 'ph.icode_return' + +Help on function ph_get_id in module ida_idp: + +ph_get_id(*args) -> 'size_t' + ph_get_id() -> size_t + Returns the 'ph.id' field + +Help on function ph_get_instruc in module ida_idp: + +ph_get_instruc(*args) -> 'PyObject *' + ph_get_instruc() -> [(str, int), ...] + Returns a list of tuples (instruction_name, instruction_feature) containing the + instructions list as defined in he processor module + +Help on function ph_get_instruc_end in module ida_idp: + +ph_get_instruc_end(*args) -> 'size_t' + ph_get_instruc_end() -> size_t + Returns the 'ph.instruc_end' + +Help on function ph_get_instruc_start in module ida_idp: + +ph_get_instruc_start(*args) -> 'size_t' + ph_get_instruc_start() -> size_t + Returns the 'ph.instruc_start' + +Help on function ph_get_operand_info in module ida_idp: + +ph_get_operand_info(*args) -> 'PyObject *' + ph_get_operand_info(ea, n) -> (int, int, int, int, int) or None + Returns the operand information given an ea and operand number. + + @param ea: address + @param n: operand number + + @return: Returns an idd_opinfo_t as a tuple: (modified, ea, reg_ival, regidx, value_size). + Please refer to idd_opinfo_t structure in the SDK. + +Help on function ph_get_reg_accesses in module ida_idp: + +ph_get_reg_accesses(*args) -> 'ssize_t' + ph_get_reg_accesses(accvec, insn, flags) -> ssize_t + + @param accvec: reg_accesses_t * + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param flags: int + +Help on function ph_get_reg_code_sreg in module ida_idp: + +ph_get_reg_code_sreg(*args) -> 'size_t' + ph_get_reg_code_sreg() -> size_t + Returns the 'ph.reg_code_sreg' + +Help on function ph_get_reg_data_sreg in module ida_idp: + +ph_get_reg_data_sreg(*args) -> 'size_t' + ph_get_reg_data_sreg() -> size_t + Returns the 'ph.reg_data_sreg' + +Help on function ph_get_reg_first_sreg in module ida_idp: + +ph_get_reg_first_sreg(*args) -> 'size_t' + ph_get_reg_first_sreg() -> size_t + Returns the 'ph.reg_first_sreg' + +Help on function ph_get_reg_last_sreg in module ida_idp: + +ph_get_reg_last_sreg(*args) -> 'size_t' + ph_get_reg_last_sreg() -> size_t + Returns the 'ph.reg_last_sreg' + +Help on function ph_get_regnames in module ida_idp: + +ph_get_regnames(*args) -> 'PyObject *' + ph_get_regnames() -> [str, ...] + Returns the list of register names as defined in the processor module + +Help on function ph_get_segreg_size in module ida_idp: + +ph_get_segreg_size(*args) -> 'size_t' + ph_get_segreg_size() -> size_t + Returns the 'ph.segreg_size' + +Help on function ph_get_tbyte_size in module ida_idp: + +ph_get_tbyte_size(*args) -> 'size_t' + ph_get_tbyte_size() -> size_t + Returns the 'ph.tbyte_size' field as defined in he processor module + +Help on function ph_get_version in module ida_idp: + +ph_get_version(*args) -> 'size_t' + ph_get_version() -> size_t + Returns the 'ph.version' + +Help on function process_config_directive in module ida_idp: + +process_config_directive(*args) -> 'void' + process_config_directive(directive, priority=2) + + @param directive: char const * + @param priority: int + +Help on class processor_t in module ida_idp: + +class processor_t(IDP_Hooks) + | Proxy of C++ IDP_Hooks class. + | + | Method resolution order: + | processor_t + | IDP_Hooks + | builtins.object + | + | Methods defined here: + | + | __init__(self) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> IDP_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _get_idb_notifier_addr(self) + | + | _get_idb_notifier_ud_addr(self) + | + | _get_idp_notifier_addr(self) + | + | _get_idp_notifier_ud_addr(self) + | + | _get_notify(self, what, unimp_val=0, imp_forced_val=None, add_prefix=True, mandatory_impl=None) + | This helper is used to implement backward-compatibility + | of pre IDA 7.3 processor_t interfaces. + | + | _make_forced_value_wrapper(self, val, meth=None) + | + | _make_int_returning_wrapper(self, meth, intval=0) + | + | auto_empty(self, *args) + | + | auto_empty_finally(self, *args) + | + | closebase(self, *args) + | + | compiler_changed(self, *args) + | + | deleting_func(self, pfn) + | + | determined_main(self, *args) + | + | ev_ana_insn(self, *args) + | ev_ana_insn(self, out) -> bool + | Analyze one instruction and fill 'out' structure. This function shouldn't change + | the database, flags or anything else. All these actions should be performed only + | by emu_insn() function. insn_t::ea contains address of instruction to analyze. + | + | @param out: (insn_t *) + | @return: length of the instruction in bytes, 0 if instruction can't be decoded. + | @retval 0: if instruction can't be decoded. + | + | ev_assemble(self, *args) + | ev_assemble(self, ea, cs, ip, use32, line) -> PyObject * + | Assemble an instruction. (display a warning if an error is found). + | + | @param ea: (::ea_t) linear address of instruction + | @param cs: (::ea_t) cs of instruction + | @param ip: (::ea_t) ip of instruction + | @param use32: (bool) is 32bit segment? + | @param line: (const char *) line to assemble + | @return: size of the instruction in bytes + | + | ev_auto_queue_empty(self, *args) + | ev_auto_queue_empty(self, type) -> int + | One analysis queue is empty. + | + | @param type: (atype_t) + | @retval void: see also idb_event::auto_empty_finally + | + | ev_calc_step_over(self, target, ip) + | ev_calc_step_over(self, target, ip) -> int + | Calculate the address of the instruction which will be executed after "step + | over". The kernel will put a breakpoint there. If the step over is equal to step + | into or we cannot calculate the address, return BADADDR. + | + | @param target: (::ea_t *) pointer to the answer + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_can_have_type(self, *args) + | ev_can_have_type(self, op) -> int + | Can the operand have a type as offset, segment, decimal, etc? (for example, a + | register AX can't have a type, meaning that the user can't change its + | representation. see bytes.hpp for information about types and flags) + | + | @param op: (const op_t *) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_cmp_operands(self, *args) + | ev_cmp_operands(self, op1, op2) -> int + | Compare instruction operands + | + | @param op1: (const op_t*) + | @param op2: (const op_t*) + | @retval 1: equal + | @retval -1: not equal + | @retval 0: not implemented + | + | ev_coagulate(self, *args) + | ev_coagulate(self, start_ea) -> int + | Try to define some unexplored bytes. This notification will be called if the + | kernel tried all possibilities and could not find anything more useful than to + | convert to array of bytes. The module can help the kernel and convert the bytes + | into something more useful. + | + | @param start_ea: (::ea_t) + | @return: number of converted bytes + | + | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) + | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. for thumb + | mode refs, we clear the last bit) + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param may_define: (bool) + | @param code_ea: (::ea_t *) + | @retval <0: failed dref analysis, >0 done dref analysis + | @retval 0: not implemented or continue + | + | ev_create_func_frame(self, pfn) + | ev_create_func_frame(self, pfn) -> int + | Create a function frame for a newly created function Set up frame size, its + | attributes etc + | + | @param pfn: (func_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_create_switch_xrefs(self, *args) + | ev_create_switch_xrefs(self, jumpea, si) -> int + | Create xrefs for a custom jump table. + | + | @param jumpea: (::ea_t) address of the jump insn + | @param si: (const switch_info_t *) switch information + | @return: must return 1 Must be implemented if module uses custom jump tables, + | SWI_CUSTOM + | + | ev_creating_segm(self, s) + | ev_creating_segm(self, seg) -> int + | A new segment is about to be created. + | + | @param seg: (segment_t *) + | @retval 1: ok + | @retval <0: segment should not be created + | + | ev_emu_insn(self, *args) + | ev_emu_insn(self, insn) -> bool + | Emulate instruction, create cross-references, plan to analyze subsequent + | instructions, modify flags etc. Upon entrance to this function, all information + | about the instruction is in 'insn' structure. + | + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval -1: the kernel will delete the instruction + | + | ev_endbinary(self, *args) + | ev_endbinary(self, ok) -> int + | IDA has loaded a binary file. + | + | @param ok: (bool) file loaded successfully? + | + | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | find_func_bounds() finished its work. The module may fine tune the function + | bounds + | + | @param possible_return_code: (int *), in/out + | @param pfn: (func_t *) + | @param max_func_end_ea: (::ea_t) (from the kernel's point of view) + | @retval void + | + | ev_gen_map_file(self, nlines, fp) + | ev_gen_map_file(self, nlines, fp) -> int + | Generate map file. If not implemented the kernel itself will create the map + | file. + | + | @param nlines: (int *) number of lines in map file (-1 means write error) + | @param fp: (FILE *) output file + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: write error + | + | ev_gen_regvar_def(self, ctx, v) + | ev_gen_regvar_def(self, outctx, v) -> int + | Generate register variable definition line. + | + | @param outctx: (outctx_t *) + | @param v: (regvar_t *) + | @retval >0: ok, generated the definition text + | @retval 0: not implemented + | + | ev_gen_src_file_lnnum(self, *args) + | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | + | @param outctx: (outctx_t *) output context + | @param file: (const char *) source file (may be nullptr) + | @param lnnum: (size_t) line number + | @retval 1: directive has been generated + | @retval 0: not implemented + | + | ev_get_autocmt(self, *args) + | ev_get_autocmt(self, insn) -> PyObject * + | + | @param insn: (const insn_t*) the instruction + | @retval 1: new comment has been generated + | @retval 0: callback has not been handled. the buffer must not be changed in this + | case + | + | ev_get_frame_retsize(self, frsize, pfn) + | ev_get_frame_retsize(self, frsize, pfn) -> int + | Get size of function return address in bytes If this event is not implemented, + | the kernel will assume + | * 8 bytes for 64-bit function + | * 4 bytes for 32-bit function + | * 2 bytes otherwise + | + | @param frsize: (int *) frame size (out) + | @param pfn: (const func_t *), can't be nullptr + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_operand_string(self, buf, insn, opnum) + | ev_get_operand_string(self, insn, opnum) -> PyObject * + | Request text string for operand (cli, java, ...). + | + | @param insn: (const insn_t*) the instruction + | @param opnum: (int) operand number, -1 means any string operand + | @retval 0: no string (or empty string) + | @retval >0: original string length without terminating zero + | + | ev_is_align_insn(self, *args) + | ev_is_align_insn(self, ea) -> int + | Is the instruction created only for alignment purposes?. Do not directly call + | this function, use is_align_insn() + | + | @param ea: (ea_t) - instruction address + | @retval number: of bytes in the instruction + | + | ev_is_alloca_probe(self, *args) + | ev_is_alloca_probe(self, ea) -> int + | Does the function at 'ea' behave as __alloca_probe? + | + | @param ea: (::ea_t) + | @retval 1: yes + | @retval 0: no + | + | ev_is_basic_block_end(self, *args) + | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | Is the current instruction end of a basic block?. This function should be + | defined for processors with delayed jump slots. + | + | @param insn: (const insn_t*) the instruction + | @param call_insn_stops_block: (bool) + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_call_insn(self, *args) + | ev_is_call_insn(self, insn) -> int + | Is the instruction a "call"? + | + | @param insn: (const insn_t *) instruction + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_far_jump(self, *args) + | ev_is_far_jump(self, icode) -> int + | is indirect far jump or call instruction? meaningful only if the processor has + | 'near' and 'far' reference types + | + | @param icode: (int) + | @retval 0: not implemented + | @retval 1: yes + | @retval -1: no + | + | ev_is_indirect_jump(self, *args) + | ev_is_indirect_jump(self, insn) -> int + | Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all + | jump types jumps, please define this callback. + | + | @param insn: (const insn_t*) the instruction + | @retval 0: use CF_JUMP + | @retval 1: no + | @retval 2: yes + | + | ev_is_insn_table_jump(self, *args) + | ev_is_insn_table_jump(self) -> int + | Reserved. + | + | ev_is_ret_insn(self, *args) + | ev_is_ret_insn(self, insn, strict) -> int + | Is the instruction a "return"? + | + | @param insn: (const insn_t *) instruction + | @param strict: (bool) 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog + | @retval 0: unknown + | @retval <0: no + | @retval 1: yes + | + | ev_is_sane_insn(self, *args) + | ev_is_sane_insn(self, insn, no_crefs) -> int + | Is the instruction sane for the current file type?. + | + | @param insn: (const insn_t*) the instruction + | @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries + | to convert unexplored bytes to an instruction (but there is no + | other reason to convert them into an instruction) 0: the + | instruction is created because of some coderef, user request or + | another weighty reason. + | @retval >=0: ok + | @retval <0: no, the instruction isn't likely to appear in the program + | + | ev_is_sp_based(self, mode, insn, op) + | ev_is_sp_based(self, mode, insn, op) -> int + | Check whether the operand is relative to stack pointer or frame pointer This + | event is used to determine how to output a stack variable If not implemented, + | then all operands are sp based by default. Implement this event only if some + | stack references use frame pointer instead of stack pointer. + | + | @param mode: (int *) out, combination of SP/FP operand flags + | @param insn: (const insn_t *) + | @param op: (const op_t *) + | @retval 0: not implemented + | @retval 1: ok + | + | ev_is_switch(self, *args) + | ev_is_switch(self, si, insn) -> int + | Find 'switch' idiom or override processor module's decision. It will be called + | for instructions marked with CF_JUMP. + | + | @param si: (switch_info_t *), out + | @param insn: (const insn_t *) instruction possibly belonging to a switch + | @retval 1: switch is found, 'si' is filled. IDA will create the switch using the + | filled 'si' + | @retval -1: no switch found. This value forbids switch creation by the processor + | module + | @retval 0: not implemented + | + | ev_may_be_func(self, *args) + | ev_may_be_func(self, insn, state) -> int + | Can a function start here? + | + | @param insn: (const insn_t*) the instruction + | @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks + | @return: probability 1..100 + | @note: Actually IDA uses 3 intervals of a probability: 0..50 not a function, + | 51..99 a function (IDA needs another proof), 100 a function (no other + | proofs needed) + | + | ev_may_show_sreg(self, *args) + | ev_may_show_sreg(self, current_ea) -> int + | The kernel wants to display the segment registers in the messages window. + | + | @param current_ea: (::ea_t) + | @retval <0: if the kernel should not show the segment registers. (assuming that + | the module has done it) + | @retval 0: not implemented + | + | ev_moving_segm(self, s, to_ea, flags) + | ev_moving_segm(self, seg, to, flags) -> int + | May the kernel move the segment? + | + | @param seg: (segment_t *) segment to move + | @param to: (::ea_t) new segment start address + | @param flags: (int) combination of Move segment flags + | @retval 0: yes + | @retval <0: the kernel should stop + | + | ev_newbinary(self, *args) + | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | IDA is about to load a binary file. + | + | @param filename: (char *) binary file name + | @param fileoff: (qoff64_t) offset in the file + | @param basepara: (::ea_t) base loading paragraph + | @param binoff: (::ea_t) loader offset + | @param nbytes: (::uint64) number of bytes to load + | + | ev_newfile(self, *args) + | ev_newfile(self, fname) -> int + | A new file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_newprc(self, *args) + | ev_newprc(self, pnum, keep_cfg) -> int + | Before changing processor type. + | + | @param pnum: (int) processor number in the array of processor names + | @param keep_cfg: (bool) true: do not modify kernel configuration + | @retval 1: ok + | @retval <0: prohibit + | + | ev_oldfile(self, *args) + | ev_oldfile(self, fname) -> int + | An old file has been loaded. + | + | @param fname: (char *) input file name + | + | ev_out_assumes(self, *args) + | ev_out_assumes(self, outctx) -> int + | Function to produce assume directives when segment register value changes. + | + | @param outctx: (outctx_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_data(self, *args) + | ev_out_data(self, outctx, analyze_only) -> int + | Generate text representation of data items This function may change the database + | and create cross-references if analyze_only is set + | + | @param outctx: (outctx_t *) + | @param analyze_only: (bool) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_footer(self, *args) + | ev_out_footer(self, outctx) -> int + | Function to produce end of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_header(self, *args) + | ev_out_header(self, outctx) -> int + | Function to produce start of disassembled text + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_insn(self, *args) + | ev_out_insn(self, outctx) -> bool + | Generate text representation of an instruction in 'ctx.insn' outctx_t provides + | functions to output the generated text. This function shouldn't change the + | database, flags or anything else. All these actions should be performed only by + | emu_insn() function. + | + | @param outctx: (outctx_t *) + | @retval void + | + | ev_out_label(self, *args) + | ev_out_label(self, outctx, colored_name) -> int + | The kernel is going to generate an instruction label line or a function header. + | + | @param outctx: (outctx_t *) + | @param colored_name: (const char *) + | @retval <0: if the kernel should not generate the label + | @retval 0: not implemented or continue + | + | ev_out_mnem(self, *args) + | ev_out_mnem(self, outctx) -> int + | Generate instruction mnemonics. This callback should append the colored + | mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be + | called. + | + | @param outctx: (outctx_t *) + | @retval 1: if appended the mnemonics + | @retval 0: not implemented + | + | ev_out_operand(self, *args) + | ev_out_operand(self, outctx, op) -> bool + | Generate text representation of an instruction operand outctx_t provides + | functions to output the generated text. All these actions should be performed + | only by emu_insn() function. + | + | @param outctx: (outctx_t *) + | @param op: (const op_t *) + | @retval 1: ok + | @retval -1: operand is hidden + | + | ev_out_segend(self, ctx, s) + | ev_out_segend(self, outctx, seg) -> int + | Function to produce end of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_segstart(self, ctx, s) + | ev_out_segstart(self, outctx, seg) -> int + | Function to produce start of segment + | + | @param outctx: (outctx_t *) + | @param seg: (segment_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_out_special_item(self, *args) + | ev_out_special_item(self, outctx, segtype) -> int + | Generate text representation of an item in a special segment i.e. absolute + | symbols, externs, communal definitions etc + | + | @param outctx: (outctx_t *) + | @param segtype: (uchar) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: overflow + | + | ev_rename(self, *args) + | ev_rename(self, ea, new_name) -> int + | The kernel is going to rename a byte. + | + | @param ea: (::ea_t) + | @param new_name: (const char *) + | @retval <0: if the kernel should not rename it. + | @retval 2: to inhibit the notification. I.e., the kernel should not rename, but + | 'set_name()' should return 'true'. also see renamed the return value + | is ignored when kernel is going to delete name + | + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in config.hpp + | + | @param keyword: (const char *) + | @param value_type: (int) + | @param value: (const void *) + | @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been + | generated + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: error (and message in errbuf) + | + | ev_set_proc_options(self, *args) + | ev_set_proc_options(self, options, confidence) -> int + | Called if the user specified an option string in the command line: -p<processor + | name>:<options>. Can be used for setting a processor subtype. Also called if + | option string is passed to set_processor_type() and IDC's SetProcessorType(). + | + | @param options: (const char *) + | @param confidence: (int) 0: loader's suggestion 1: user's decision + | @retval <0: if bad option string + | + | ev_str2reg(self, *args) + | ev_str2reg(self, regname) -> int + | Convert a register name to a register number. The register number is the + | register index in the processor_t::reg_names array Most processor modules do not + | need to implement this callback It is useful only if processor_t::reg_names[reg] + | does not provide the correct register names + | + | @param regname: (const char *) + | @retval register: number + 1 + | @retval 0: not implemented or could not be decoded + | + | ev_treat_hindering_item(self, *args) + | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | An item hinders creation of another item. + | + | @param hindering_item_ea: (::ea_t) + | @param new_item_flags: (flags64_t) (0 for code) + | @param new_item_ea: (::ea_t) + | @param new_item_length: (::asize_t) + | @retval 0: no reaction + | @retval !=0: the kernel may delete the hindering item + | + | ev_undefine(self, *args) + | ev_undefine(self, ea) -> int + | An item in the database (insn or data) is being deleted. + | + | @param ea: (ea_t) + | @retval 1: do not delete srranges at the item end + | @retval 0: srranges can be deleted + | + | ev_validate_flirt_func(self, *args) + | ev_validate_flirt_func(self, start_ea, funcname) -> int + | Flirt has recognized a library function. This callback can be used by a plugin + | or proc module to intercept it and validate such a function. + | + | @param start_ea: (::ea_t) + | @param funcname: (const char *) + | @retval -1: do not create a function, + | @retval 0: function is validated + | + | ev_verify_noreturn(self, pfn) + | ev_verify_noreturn(self, pfn) -> int + | The kernel wants to set 'noreturn' flags for a function. + | + | @param pfn: (func_t *) + | @retval 0: ok. any other value: do not set 'noreturn' flag + | + | ev_verify_sp(self, pfn) + | ev_verify_sp(self, pfn) -> int + | All function instructions have been analyzed. Now the processor module can + | analyze the stack pointer for the whole function + | + | @param pfn: (func_t *) + | @retval 0: ok + | @retval <0: bad stack pointer + | + | func_added(self, pfn) + | + | get_auxpref(self, insn) + | This function returns insn.auxpref value + | + | get_idpdesc(self) + | This function must be present and should return the list of + | short processor names similar to the one in ph.psnames. + | This method can be overridden to return to the kernel a different IDP description. + | + | get_uFlag(self) + | Use this utility function to retrieve the 'uFlag' global variable + | + | idasgn_loaded(self, *args) + | + | kernel_config_loaded(self, *args) + | + | make_code(self, *args) + | + | make_data(self, *args) + | + | renamed(self, *args) + | + | savebase(self, *args) + | + | segm_moved(self, from_ea, to_ea, size, changed_netmap) + | + | set_func_end(self, *args) + | + | set_func_start(self, *args) + | + | sgr_changed(self, *args) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __idc_cvt_id__ = 2 + | + | ---------------------------------------------------------------------- + | Methods inherited from IDP_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_IDP_Hooks(...) + | delete_IDP_Hooks(self) + | + | ev_add_cref(self, *args) -> 'int' + | ev_add_cref(self, _from, to, type) -> int + | A code reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (cref_t) + | @retval <0: cancel cref creation + | @retval 0: not implemented or continue + | + | ev_add_dref(self, *args) -> 'int' + | ev_add_dref(self, _from, to, type) -> int + | A data reference is being created. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param type: (dref_t) + | @retval <0: cancel dref creation + | @retval 0: not implemented or continue + | + | ev_adjust_argloc(self, *args) -> 'int' + | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | Adjust argloc according to its type/size and platform endianess + | + | @param argloc: (argloc_t *), inout + | @param type: (const tinfo_t *), may be nullptr nullptr means primitive type of + | given size + | @param size: (int) 'size' makes no sense if type != nullptr (type->get_size() + | should be used instead) + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_adjust_libfunc_ea(self, *args) -> 'int' + | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | Called when a signature module has been matched against bytes in the database. + | This is used to compute the offset at which a particular module's libfunc should + | be applied. + | + | @param sig: (const idasgn_t *) + | @param libfun: (const libfunc_t *) + | @param ea: (::ea_t *) + | @note: 'ea' initially contains the ea_t of the start of the pattern match + | @retval 1: the ea_t pointed to by the third argument was modified. + | @retval <=0: not modified. use default algorithm. + | + | ev_adjust_refinfo(self, *args) -> 'int' + | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | Called from apply_fixup before converting operand to reference. Can be used for + | changing the reference info. (e.g. the PPC module adds REFINFO_NOBASE for some + | references) + | + | @param ri: (refinfo_t *) + | @param ea: (::ea_t) instruction address + | @param n: (int) operand number + | @param fd: (const fixup_data_t *) + | @retval <0: do not create an offset + | @retval 0: not implemented or refinfo adjusted + | + | ev_analyze_prolog(self, *args) -> 'int' + | ev_analyze_prolog(self, ea) -> int + | Analyzes function prolog, epilog, and updates purge, and function attributes + | + | @param ea: (::ea_t) start of function + | @retval 1: ok + | @retval 0: not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | ev_arch_changed(self) -> int + | The loader is done parsing arch-related information, which the processor module + | might want to use to finish its initialization. + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_arg_addrs_ready(self, *args) -> 'int' + | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | Argument address info is ready. + | + | @param caller: (::ea_t) + | @param n: (int) number of formal arguments + | @param tif: (tinfo_t *) call prototype + | @param addrs: (::ea_t *) argument intilization addresses + | @retval <0: do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | ev_asm_installed(self, asmnum) -> int + | After setting a new assembler + | + | @param asmnum: (int) See also ev_newasm + | + | ev_calc_arglocs(self, *args) -> 'int' + | ev_calc_arglocs(self, fti) -> int + | Calculate function argument locations. This callback should fill retloc, all + | arglocs, and stkargs. This callback is never called for CM_CC_SPECIAL functions. + | + | @param fti: (func_type_data_t *) points to the func type info + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error + | + | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | ev_calc_cdecl_purged_bytes(self, ea) -> int + | Calculate number of purged bytes after call. + | + | @param ea: (::ea_t) address of the call instruction + | @return: number of purged bytes (usually add sp, N) + | + | ev_calc_next_eas(self, *args) -> 'int' + | ev_calc_next_eas(self, res, insn, over) -> int + | Calculate list of addresses the instruction in 'insn' may pass control to. This + | callback is required for source level debugging. + | + | @param res: (eavec_t *), out: array for the results. + | @param insn: (const insn_t*) the instruction + | @param over: (bool) calculate for step over (ignore call targets) + | @retval <0: incalculable (indirect jumps, for example) + | @retval >=0: number of addresses of called functions in the array. They must be + | put at the beginning of the array (0 if over=true) + | + | ev_calc_purged_bytes(self, *args) -> 'int' + | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | Calculate number of purged bytes by the given function type. + | + | @param p_purged_bytes: (int *) ptr to output + | @param fti: (const func_type_data_t *) func type details + | @retval 1 + | @retval 0: not implemented + | + | ev_calc_retloc(self, *args) -> 'int' + | ev_calc_retloc(self, retloc, rettype, cc) -> int + | Calculate return value location. + | + | @param retloc: (argloc_t *) + | @param rettype: (const tinfo_t *) + | @param cc: (cm_t) + | @retval 0: not implemented + | @retval 1: ok, + | @retval -1: error + | + | ev_calc_spdelta(self, *args) -> 'int' + | ev_calc_spdelta(self, spdelta, insn) -> int + | Calculate amount of change to sp for the given insn. This event is required to + | decompile code snippets. + | + | @param spdelta: (sval_t *) + | @param insn: (const insn_t *) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_calc_switch_cases(self, *args) -> 'int' + | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | Calculate case values and targets for a custom jump table. + | + | @param casevec: (::casevec_t *) vector of case values (may be nullptr) + | @param targets: (eavec_t *) corresponding target addresses (my be nullptr) + | @param insn_ea: (::ea_t) address of the 'indirect jump' instruction + | @param si: (switch_info_t *) switch information + | @retval 1: ok + | @retval <=0: failed + | + | ev_calc_varglocs(self, *args) -> 'int' + | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | Calculate locations of the arguments that correspond to '...'. + | + | @param ftd: (func_type_data_t *), inout: info about all arguments (including + | varargs) + | @param aux_regs: (regobjs_t *) buffer for hidden register arguments, may be + | nullptr + | @param aux_stkargs: (relobj_t *) buffer for hidden stack arguments, may be + | nullptr + | @param nfixed: (int) number of fixed arguments + | @retval 0: not implemented + | @retval 1: ok + | @retval -1: error On some platforms variadic calls require passing additional + | information: for example, number of floating variadic arguments must + | be passed in rax on gcc-x64. The locations and values that + | constitute this additional information are returned in the buffers + | pointed by aux_regs and aux_stkargs + | + | ev_calcrel(self, *args) -> 'int' + | ev_calcrel(self) -> int + | Reserved. + | + | ev_clean_tbit(self, *args) -> 'int' + | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | Clear the TF bit after an insn like pushf stored it in memory. + | + | @param ea: (::ea_t) instruction address + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval 0: failed + | + | ev_create_flat_group(self, *args) -> 'int' + | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | Create special segment representing the flat group. + | + | @param image_base: (::ea_t) + | @param bitness: (int) + | @param dataseg_sel: (::sel_t) return value is ignored + | + | ev_create_merge_handlers(self, *args) -> 'int' + | ev_create_merge_handlers(self, md) -> int + | Create merge handlers, if needed + | + | @param md: (::merge_data_t *) This event is generated immediately after opening + | idbs. + | @return: must be 0 + | + | ev_decorate_name(self, *args) -> 'PyObject *' + | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | Decorate/undecorate a C symbol name. + | + | @param name: (const char *) name of symbol + | @param mangle: (bool) true-mangle, false-unmangle + | @param cc: (cm_t) calling convention + | @param optional_type: tinfo_t const * + | @retval 1: if success + | @retval 0: not implemented or failed + | + | ev_del_cref(self, *args) -> 'int' + | ev_del_cref(self, _from, to, expand) -> int + | A code reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @param expand: (bool) + | @retval <0: cancel cref deletion + | @retval 0: not implemented or continue + | + | ev_del_dref(self, *args) -> 'int' + | ev_del_dref(self, _from, to) -> int + | A data reference is being deleted. + | + | @param from: (::ea_t) + | @param to: (::ea_t) + | @retval <0: cancel dref deletion + | @retval 0: not implemented or continue + | + | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | Get delay slot instruction + | + | @param ea: (::ea_t *) in: instruction address in question, out: (if the answer + | is positive) if the delay slot contains valid insn: the address of + | the delay slot insn else: BADADDR (invalid insn, e.g. a branch) + | @param bexec: (bool *) execute slot if jumping, initially set to 'true' + | @param fexec: (bool *) execute slot if not jumping, initally set to 'true' + | @retval 1: positive answer + | @retval <=0: ordinary insn + | @note: Input EA may point to the instruction with a delay slot or to the delay + | slot instruction itself. + | + | ev_demangle_name(self, *args) -> 'PyObject *' + | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | Demangle a C++ (or another language) name into a user-readable string. This + | event is called by demangle_name() + | + | @param name: (const char *) mangled name + | @param disable_mask: (uint32) flags to inhibit parts of output or compiler + | info/other (see MNG_) + | @param demreq: (demreq_type_t) operation to perform + | @retval 1: if success + | @retval 0: not implemented + | @note: if you call demangle_name() from the handler, protect against recursion! + | + | ev_ending_undo(self, *args) -> 'int' + | ev_ending_undo(self, action_name, is_undo) -> int + | Ended undoing/redoing an action + | + | @param action_name: (const char *) action that we finished undoing/redoing. is + | not nullptr. + | @param is_undo: (bool) true if performing undo, false if performing redo + | + | ev_equal_reglocs(self, *args) -> 'int' + | ev_equal_reglocs(self, a1, a2) -> int + | Are 2 register arglocs the same?. We need this callback for the pc module. + | + | @param a1: (argloc_t *) + | @param a2: (argloc_t *) + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented + | + | ev_extract_address(self, *args) -> 'int' + | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | Extract address from a string. + | + | @param out_ea: (ea_t *), out + | @param screen_ea: (ea_t) + | @param string: (const char *) + | @param position: (size_t) + | @retval 1: ok + | @retval 0: kernel should use the standard algorithm + | @retval -1: error + | + | ev_find_op_value(self, *args) -> 'PyObject *' + | ev_find_op_value(self, pinsn, opn) -> PyObject * + | Find operand value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param opn: (int) operand index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_find_reg_value(self, *args) -> 'PyObject *' + | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | Find register value via a register tracker. The returned value in 'out' is valid + | before executing the instruction. + | + | @param pinsn: (const insn_t *) instruction + | @param reg: (int) register index + | @retval 1: if implemented, and value was found + | @retval 0: not implemented, -1 decoding failed, or no value found + | + | ev_gen_asm_or_lst(self, *args) -> 'int' + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | + | @param starting: (bool) beginning listing generation + | @param fp: (FILE *) output file + | @param is_asm: (bool) true:assembler, false:listing + | @param flags: (int) flags passed to gen_file() + | @param outline: (html_line_cb_t **) ptr to ptr to outline callback. if this + | callback is defined for this code, it will be used by the kernel + | to output the generated lines + | @retval void + | + | ev_gen_stkvar_def(self, *args) -> 'int' + | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | Generate stack variable definition line Default line is varname = type ptr + | value, where 'type' is one of byte,word,dword,qword,tbyte + | + | @param outctx: (outctx_t *) + | @param mptr: (const member_t *) + | @param v: (sval_t) + | @retval 1: ok + | @retval 0: not implemented + | + | ev_get_abi_info(self, *args) -> 'int' + | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and underscore + | + | @param abi_names: (qstrvec_t *) - all possible ABis each in form abiname- + | opt1-opt2-... + | @param abi_opts: (qstrvec_t *) - array of all possible options in form + | "opt:description" or opt:hint-line#description + | @param comp: (comp_t) - compiler ID + | @retval 0: not implemented + | @retval 1: ok + | + | ev_get_bg_color(self, *args) -> 'int' + | ev_get_bg_color(self, color, ea) -> int + | Get item background color. Plugins can hook this callback to color disassembly + | lines dynamically + | + | @param color: (bgcolor_t *), out + | @param ea: (::ea_t) + | @retval 0: not implemented + | @retval 1: color set + | + | ev_get_cc_regs(self, *args) -> 'int' + | ev_get_cc_regs(self, regs, cc) -> int + | Get register allocation convention for given calling convention + | + | @param regs: (callregs_t *), out + | @param cc: (cm_t) + | @retval 1 + | @retval 0: not implemented + | + | ev_get_code16_mode(self, *args) -> 'int' + | ev_get_code16_mode(self, ea) -> int + | Get ISA 16-bit mode + | + | @param ea: (ea_t) address to get the ISA mode + | @retval 1: 16-bit mode + | @retval 0: not implemented or 32-bit mode + | + | ev_get_dbr_opnum(self, *args) -> 'int' + | ev_get_dbr_opnum(self, opnum, insn) -> int + | Get the number of the operand to be displayed in the debugger reference view + | (text mode). + | + | @param opnum: (int *) operand number (out, -1 means no such operand) + | @param insn: (const insn_t*) the instruction + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_default_enum_size(self, *args) -> 'int' + | ev_get_default_enum_size(self) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is used + | instead + | + | ev_get_macro_insn_head(self, *args) -> 'int' + | ev_get_macro_insn_head(self, head, ip) -> int + | Calculate the start of a macro instruction. This notification is called if IP + | points to the middle of an instruction + | + | @param head: (::ea_t *), out: answer, BADADDR means normal instruction + | @param ip: (::ea_t) instruction address + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_get_procmod(self, *args) -> 'int' + | ev_get_procmod(self) -> int + | Get pointer to the processor module object. All processor modules must implement + | this. The pointer is returned as size_t. + | + | ev_get_reg_accesses(self, *args) -> 'int' + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | Get info about the registers that are used/changed by an instruction. + | + | @param accvec: (reg_accesses_t*) out: info about accessed registers + | @param insn: (const insn_t *) instruction in question + | @param flags: (int) reserved, must be 0 + | @retval -1: if accvec is nullptr + | @retval 1: found the requested access (and filled accvec) + | @retval 0: not implemented + | + | ev_get_reg_info(self, *args) -> 'int' + | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | Get register information by its name. example: "ah" returns: + | * main_regname="eax" + | * bitrange_t = { offset==8, nbits==8 } + | + | This callback may be unimplemented if the register names are all present in + | processor_t::reg_names and they all have the same size + | + | @param main_regname: (const char **), out + | @param bitrange: (bitrange_t *), out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | @param regname: (const char *) + | @retval 1: ok + | @retval -1: failed (not found) + | @retval 0: unimplemented + | + | ev_get_reg_name(self, *args) -> 'PyObject *' + | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | Generate text representation of a register. Most processor modules do not need + | to implement this callback. It is useful only if processor_t::reg_names[reg] + | does not provide the correct register name. + | + | @param reg: (int) internal register number as defined in the processor module + | @param width: (size_t) register width in bytes + | @param reghi: (int) if not -1 then this function will return the register pair + | @retval -1: if error + | @retval strlen(buf): if success + | + | ev_get_simd_types(self, *args) -> 'int' + | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | Get SIMD-related types according to given attributes ant/or argument location + | + | @param out: (::simd_info_vec_t *) + | @param simd_attrs: (const simd_info_t *), may be nullptr + | @param argloc: (const argloc_t *), may be nullptr + | @param create_tifs: (bool) return valid tinfo_t objects, create if neccessary + | @retval number: of found types + | @retval -1: error If name==nullptr, initialize all SIMD types + | + | ev_get_stkarg_area_info(self, *args) -> 'int' + | ev_get_stkarg_area_info(self, out, cc) -> int + | Get some metrics of the stack argument area. + | + | @param out: (stkarg_area_info_t *) ptr to stkarg_area_info_t + | @param cc: (cm_t) calling convention + | @retval 1: if success + | @retval 0: not implemented + | + | ev_get_stkvar_scale_factor(self, *args) -> 'int' + | ev_get_stkvar_scale_factor(self) -> int + | Should stack variable references be multiplied by a coefficient before being + | used in the stack frame?. Currently used by TMS320C55 because the references + | into the stack should be multiplied by 2 + | + | @return: scaling factor + | @retval 0: not implemented + | @note: PR_SCALE_STKVARS should be set to use this callback + | + | ev_getreg(self, *args) -> 'int' + | ev_getreg(self, regval, regnum) -> int + | IBM PC only internal request, should never be used for other purpose Get + | register value by internal index + | + | @param regval: (uval_t *), out + | @param regnum: (int) + | @retval 1: ok + | @retval 0: not implemented + | @retval -1: failed (undefined value or bad regnum) + | + | ev_init(self, *args) -> 'int' + | ev_init(self, idp_modname) -> int + | The IDP module is just loaded. + | + | @param idp_modname: (const char *) processor module name + | @retval <0: on failure + | + | ev_insn_reads_tbit(self, *args) -> 'int' + | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | Check if insn will read the TF bit. + | + | @param insn: (const insn_t*) the instruction + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 2: yes, will generate 'step' exception + | @retval 1: yes, will store the TF bit in memory + | @retval 0: no + | + | ev_is_cond_insn(self, *args) -> 'int' + | ev_is_cond_insn(self, insn) -> int + | Is conditional instruction? + | + | @param insn: (const insn_t *) instruction address + | @retval 1: yes + | @retval -1: no + | @retval 0: not implemented or not instruction + | + | ev_is_control_flow_guard(self, *args) -> 'int' + | ev_is_control_flow_guard(self, p_reg, insn) -> int + | Detect if an instruction is a "thunk call" to a flow guard function (equivalent + | to call reg/return/nop) + | + | @param p_reg: (int *) indirect register number, may be -1 + | @param insn: (const insn_t *) call/jump instruction + | @retval -1: no thunk detected + | @retval 1: indirect call + | @retval 2: security check routine call (NOP) + | @retval 3: return thunk + | @retval 0: not implemented + | + | ev_is_jump_func(self, *args) -> 'int' + | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | Is the function a trivial "jump" function?. + | + | @param pfn: (func_t *) + | @param jump_target: (::ea_t *) + | @param func_pointer: (::ea_t *) + | @retval <0: no + | @retval 0: don't know + | @retval 1: yes, see 'jump_target' and 'func_pointer' + | + | ev_last_cb_before_loader(self, *args) -> 'int' + | ev_last_cb_before_loader(self) -> int + | + | ev_loader(self, *args) -> 'int' + | ev_loader(self) -> int + | This code and higher ones are reserved for the loaders. The arguments and the + | return values are defined by the loaders + | + | ev_lower_func_type(self, *args) -> 'int' + | ev_lower_func_type(self, argnums, fti) -> int + | Get function arguments which should be converted to pointers when lowering + | function prototype. The processor module can also modify 'fti' in order to make + | non-standard conversion of some arguments. + | + | @param argnums: (intvec_t *), out - numbers of arguments to be converted to + | pointers in acsending order + | @param fti: (func_type_data_t *), inout func type details (special values -1/-2 + | for return value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) + | @retval 0: not implemented + | @retval 1: argnums was filled + | @retval 2: argnums was filled and made substantial changes to fti + | + | ev_max_ptr_size(self, *args) -> 'int' + | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. + | + | @return: max possible size of a pointer + | + | ev_newasm(self, *args) -> 'int' + | ev_newasm(self, asmnum) -> int + | Before setting a new assembler. + | + | @param asmnum: (int) See also ev_asm_installed + | + | ev_next_exec_insn(self, *args) -> 'int' + | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | Get next address to be executed This function must return the next address to be + | executed. If the instruction following the current one is executed, then it must + | return BADADDR Usually the instructions to consider are: jumps, branches, calls, + | returns. This function is essential if the 'single step' is not supported in + | hardware. + | + | @param target: (::ea_t *), out: pointer to the answer + | @param ea: (::ea_t) instruction address + | @param tid: (int) current therad id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 0: unimplemented + | @retval 1: implemented + | + | ev_privrange_changed(self, *args) -> 'int' + | ev_privrange_changed(self, old_privrange, delta) -> int + | Privrange interval has been moved to a new location. Most common actions to be + | done by module in this case: fix indices of netnodes used by module + | + | @param old_privrange: (const range_t *) - old privrange interval + | @param delta: (::adiff_t) + | @return: 0 Ok + | -1 error (and message in errbuf) + | + | ev_realcvt(self, *args) -> 'int' + | ev_realcvt(self, m, e, swt) -> int + | Floating point -> IEEE conversion + | + | @param m: (void *) ptr to processor-specific floating point value + | @param e: (fpvalue_t *) IDA representation of a floating point value + | @param swt: (uint16) operation (see realcvt() in ieee.h) + | @retval 0: not implemented + | @retval 1: ok + | @retval unknown + | + | ev_replaying_undo(self, *args) -> 'int' + | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | Replaying an undo/redo buffer + | + | @param action_name: (const char *) action that we perform undo/redo for. may be + | nullptr for intermediary buffers. + | @param vec: (const undo_records_t *) + | @param is_undo: (bool) true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | + | ev_set_code16_mode(self, *args) -> 'int' + | ev_set_code16_mode(self, ea, code16) -> int + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, MIPS16 Set + | ISA 16-bit mode + | + | @param ea: (ea_t) address to set new ISA mode + | @param code16: (bool) true for 16-bit mode, false for 32-bit mode + | + | ev_setup_til(self, *args) -> 'int' + | ev_setup_til(self) -> int + | Setup default type libraries. (called after loading a new file into the + | database). The processor module may load tils, setup memory model and perform + | other actions required to set up the type system. This is an optional callback. + | @retval void + | + | ev_term(self, *args) -> 'int' + | ev_term(self) -> int + | The IDP module is being unloaded. + | + | ev_update_call_stack(self, *args) -> 'int' + | ev_update_call_stack(self, stack, tid, getreg, regvalues) -> int + | Calculate the call stack trace for the given thread. This callback is invoked + | when the process is suspended and should fill the 'trace' object with the + | information about the current call stack. Note that this callback is NOT invoked + | if the current debugger backend implements stack tracing via + | debugger_t::event_t::ev_update_call_stack. The debugger-specific algorithm takes + | priority. Implementing this callback in the processor module is useful when + | multiple debugging platforms follow similar patterns, and thus the same + | processor-specific algorithm can be used for different platforms. + | + | @param stack: (call_stack_t *) result + | @param tid: (int) thread id + | @param getreg: (::processor_t::regval_getter_t *) function to get register + | values + | @param regvalues: (const regval_t *) register values array + | @retval 1: ok + | @retval -1: failed + | @retval 0: unimplemented + | + | ev_use_arg_types(self, *args) -> 'int' + | ev_use_arg_types(self, ea, fti, rargs) -> int + | Use information about callee arguments. + | + | @param ea: (::ea_t) address of the call instruction + | @param fti: (func_type_data_t *) info about function type + | @param rargs: (funcargvec_t *) array of register arguments + | @retval 1: (and removes handled arguments from fti and rargs) + | @retval 0: not implemented + | + | ev_use_regarg_type(self, *args) -> 'PyObject *' + | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | Use information about register argument. + | + | @param ea: (::ea_t) address of the instruction + | @param rargs: (const funcargvec_t *) vector of register arguments (including + | regs extracted from scattered arguments) + | @retval 1 + | @retval 0: not implemented + | + | ev_use_stkarg_type(self, *args) -> 'int' + | ev_use_stkarg_type(self, ea, arg) -> int + | Use information about a stack argument. + | + | @param ea: (::ea_t) address of the push instruction which pushes the function + | argument into the stack + | @param arg: (const funcarg_t *) argument info + | @retval 1: ok + | @retval <=0: failed, the kernel will create a comment with the argument name or + | type for the instruction + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from IDP_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class reg_access_t in module ida_idp: + +class reg_access_t(builtins.object) + | Proxy of C++ reg_access_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: reg_access_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_access_t(...) + | delete_reg_access_t(self) + | + | have_common_bits(self, *args) -> 'bool' + | have_common_bits(self, r) -> bool + | + | @param r: reg_access_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | access_type + | + | opnum + | opnum + | + | range + | range + | + | regnum + | regnum + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_access_vec_t in module ida_idp: + +class reg_access_vec_t(builtins.object) + | Proxy of C++ qvector< reg_access_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | __init__(self, x) -> reg_access_vec_t + | + | @param x: qvector< reg_access_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | __swig_destroy__ = delete_reg_access_vec_t(...) + | delete_reg_access_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class reg_accesses_t in module ida_idp: + +class reg_accesses_t(reg_access_vec_t) + | Proxy of C++ reg_accesses_t class. + | + | Method resolution order: + | reg_accesses_t + | reg_access_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> reg_accesses_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_accesses_t(...) + | delete_reg_accesses_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from reg_access_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_access_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | + | erase(self, first, last) -> reg_access_t + | + | @param first: qvector< reg_access_t >::iterator + | @param last: qvector< reg_access_t >::iterator + | + | extract(self, *args) -> 'reg_access_t *' + | extract(self) -> reg_access_t + | + | find(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | find(self, x) -> reg_access_t + | + | @param x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | + | @param x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_access_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | + | @param it: qvector< reg_access_t >::iterator + | @param x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | + | @param x: reg_access_t const & + | + | push_back(self) -> reg_access_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_access_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_access_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from reg_access_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from reg_access_vec_t: + | + | __hash__ = None + +Help on class reg_info_t in module ida_idp: + +class reg_info_t(builtins.object) + | Proxy of C++ reg_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_info_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: reg_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_reg_info_t(...) + | delete_reg_info_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: reg_info_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reg + | reg + | + | size + | size + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function register_cfgopts in module ida_idp: + +register_cfgopts(*args) -> 'bool' + register_cfgopts(opts, nopts, cb=None, obj=None) -> bool + + @param opts: cfgopt_t const [] + @param nopts: size_t + @param cb: config_changed_cb_t * + @param obj: void * + +Help on function set_processor_type in module ida_idp: + +set_processor_type(*args) -> 'bool' + set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success + +Help on function set_target_assembler in module ida_idp: + +set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool + Set target assembler. + + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success + +Help on function sizeof_ldbl in module ida_idp: + +sizeof_ldbl(*args) -> 'size_t' + sizeof_ldbl() -> size_t + +Help on function str2reg in module ida_idp: + +str2reg(*args) -> 'int' + str2reg(p) -> int + Get any reg number (-1 on error) + + @param p: (C++: const char *) char const * + +Module "ida_ieee"s docstring: +""" +IEEE floating point functions.""" + +Help on function ecleaz in module ida_ieee: + +ecleaz(*args) -> 'void' + ecleaz(x) + + @param x: unsigned short [(6+3)] + +Help on class fpvalue_shorts_array_t in module ida_ieee: + +class fpvalue_shorts_array_t(builtins.object) + | Proxy of C++ wrapped_array_t< uint16,FPVAL_NWORDS > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned short const &' + | __getitem__(self, i) -> unsigned short const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> fpvalue_shorts_array_t + | + | @param data: unsigned short (&)[FPVAL_NWORDS] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned short const & + | + | __swig_destroy__ = delete_fpvalue_shorts_array_t(...) + | delete_fpvalue_shorts_array_t(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class fpvalue_t in module ida_ieee: + +class fpvalue_t(builtins.object) + | Proxy of C++ fpvalue_t class. + | + | Methods defined here: + | + | __add__(self, *args) -> 'fpvalue_t' + | __add__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __getitem__(self, i) + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __init__(self, *args) + | __init__(self) -> fpvalue_t + | __init__(self, _in) -> fpvalue_t + | + | @param in: bytevec12_t const & + | + | __iter__(self) + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __mul__(self, *args) -> 'fpvalue_t' + | __mul__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: fpvalue_t const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, i, v) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __sub__(self, *args) -> 'fpvalue_t' + | __sub__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | __swig_destroy__ = delete_fpvalue_t(...) + | delete_fpvalue_t(self) + | + | __truediv__(self, *args) -> 'fpvalue_t' + | __truediv__(self, o) -> fpvalue_t + | + | @param o: fpvalue_t const & + | + | _get_10bytes(self, *args) -> 'void' + | _get_10bytes(self) + | + | _get_bytes(self, *args) -> 'void' + | _get_bytes(self) + | + | _get_float(self, *args) -> 'double' + | _get_float(self) -> double + | + | _get_shorts(self, *args) -> 'wrapped_array_t< uint16,FPVAL_NWORDS >' + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | _set_10bytes(self, *args) -> 'void' + | _set_10bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec10_t const & + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, _in) + | + | Parameters + | ---------- + | in: bytevec12_t const & + | + | _set_float(self, *args) -> 'void' + | _set_float(self, v) + | + | Parameters + | ---------- + | v: double + | + | assign(self, *args) -> 'void' + | assign(self, r) + | + | @param r: fpvalue_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: fpvalue_t const & + | + | eabs(self, *args) -> 'void' + | eabs(self) + | Calculate absolute value. + | + | fadd(self, *args) -> 'fpvalue_error_t' + | fadd(self, y) -> fpvalue_error_t + | Arithmetic operations. + | + | @param y: (C++: const fpvalue_t &) fpvalue_t const & + | + | fdiv(self, *args) -> 'fpvalue_error_t' + | fdiv(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | fmul(self, *args) -> 'fpvalue_error_t' + | fmul(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | from_10bytes(self, *args) -> 'fpvalue_error_t' + | from_10bytes(self, fpval) -> fpvalue_error_t + | Conversions for 10-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_12bytes(self, *args) -> 'fpvalue_error_t' + | from_12bytes(self, fpval) -> fpvalue_error_t + | Conversions for 12-byte floating point values. + | + | @param fpval: (C++: const void *) void const * + | + | from_int64(self, *args) -> 'void' + | from_int64(self, x) + | + | @param x: int64 + | + | from_str(self, *args) -> 'fpvalue_error_t' + | from_str(self, p) -> fpvalue_error_t + | Convert string to IEEE. + | + | @param p_str: (C++: const char **) pointer to pointer to string. it will advanced. + | + | from_sval(self, *args) -> 'void' + | from_sval(self, x) + | Convert integer to IEEE. + | + | @param x: (C++: sval_t) + | + | from_uint64(self, *args) -> 'void' + | from_uint64(self, x) + | + | @param x: uint64 + | + | fsub(self, *args) -> 'fpvalue_error_t' + | fsub(self, y) -> fpvalue_error_t + | + | @param y: fpvalue_t const & + | + | get_kind(self, *args) -> 'fpvalue_kind_t' + | get_kind(self) -> fpvalue_kind_t + | Get value kind. + | + | is_negative(self, *args) -> 'bool' + | is_negative(self) -> bool + | Is negative value? + | + | mul_pow2(self, *args) -> 'fpvalue_error_t' + | mul_pow2(self, power_of_2) -> fpvalue_error_t + | Multiply by a power of 2. + | + | @param power_of_2: (C++: int32) + | + | negate(self, *args) -> 'void' + | negate(self) + | Negate. + | + | to_10bytes(self, *args) -> 'fpvalue_error_t' + | to_10bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_12bytes(self, *args) -> 'fpvalue_error_t' + | to_12bytes(self, fpval) -> fpvalue_error_t + | + | @param fpval: void * + | + | to_int64(self, *args) -> 'fpvalue_error_t' + | to_int64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | to_str(self, *args) -> 'void' + | to_str(self, mode) + | Convert IEEE to string. + | + | @param mode: (C++: uint) broken down into: + | * low byte: number of digits after '.' + | * second byte: FPNUM_LENGTH + | * third byte: FPNUM_DIGITS + | + | to_sval(self, *args) -> 'fpvalue_error_t' + | to_sval(self, round=False) -> fpvalue_error_t + | Convert IEEE to integer (+-0.5 if round) + | + | @param round: (C++: bool) + | + | to_uint64(self, *args) -> 'fpvalue_error_t' + | to_uint64(self, round=False) -> fpvalue_error_t + | + | @param round: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | _10bytes + | _get_10bytes(self) + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) + | + | float + | _get_float(self) -> double + | + | int64 + | + | shorts + | _get_shorts(self) -> fpvalue_shorts_array_t + | + | sval + | + | thisown + | The membership flag + | + | uint64 + | + | w + | w + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_kernwin"s docstring: +""" +Defines the interface between the kernel and the UI. + +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.""" + +Help on class Choose in module ida_kernwin: + +class Choose(builtins.object) + | Chooser wrapper class. + | + | Some constants are defined in this class. + | Please refer to kernwin.hpp for more information. + | + | Methods defined here: + | + | 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 + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnEditLine(self, sel) + | User asked to edit an element. + | + | @param 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()) + | @param 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 + | + | @param n: index of the element + | @return: an icon ID + | + | OnGetLine(self, n) + | Get data for an element + | + | This callback is mandatory + | + | @param n: the index to fetch data for + | @return: a list of strings + | + | OnGetLineAttr(self, n) + | Get attributes for an element + | + | @param 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 + | + | @param 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 + | + | @param 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 + | + | @param 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. + | + | @param 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. + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectLine(self, sel) + | User pressed the enter key, or double-clicked a selection + | + | @param sel: the current selection + | @return: a tuple (changed, selection) + | + | OnSelectionChange(self, sel) + | Selection changed + | + | @param sel: the new selection + | + | Refresh(self) + | Causes the refresh callback to trigger + | + | Show(self, modal=False) + | Activates or creates a chooser window + | @param 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; + | + | __init__(self, 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) + | Constructs a chooser window. + | @param title: The chooser title + | @param 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] ] + | @param flags: One of CH_XXXX constants + | @param flags2: One of CH2_XXXX constants + | @param deflt: The index of the default item (0-based) for single + | selection choosers or the list of indexes for multi selection + | chooser + | @param popup_names: List of new captions to replace this list + | ["Insert", "Delete", "Edit", "Refresh"] + | @param icon: Icon index (the icon should exist in ida resources or + | an index to a custom loaded icon) + | @param x1: , y1, x2, y2: The default location (for txt-version) + | @param embedded: Create as embedded chooser + | @param width: Embedded chooser width + | @param height: Embedded chooser height + | @param forbidden_cb: Explicitly forbidden callbacks + | + | adjust_last_item(self, n) + | Helper for OnDeleteLine() and OnRefresh() callbacks. + | They can be finished by the following line: + | return [Choose.ALL_CHANGED] + self.adjust_last_item(n) + | @param line: number of the remaining select item + | @return: list of selected lines numbers (one element or empty) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ALL_CHANGED = 1 + | + | ALREADY_EXISTS = -3 + | + | CHCOL_DEC = 196608 + | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | + | CHCOL_EA = 262144 + | + | CHCOL_FNAME = 327680 + | + | CHCOL_FORMAT = 458752 + | + | CHCOL_HEX = 131072 + | + | CHCOL_INODENAME = 4194304 + | + | CHCOL_PATH = 65536 + | + | CHCOL_PLAIN = 0 + | + | CH_ATTRS = 32 + | + | CH_BUILTIN_MASK = 33030144 + | + | CH_BUILTIN_SHIFT = 19 + | + | CH_CAN_DEL = 512 + | + | CH_CAN_EDIT = 1024 + | + | CH_CAN_INS = 256 + | + | CH_CAN_REFRESH = 2048 + | + | CH_FORCE_DEFAULT = 128 + | + | CH_HAS_DIFF = 268435456 + | + | CH_HAS_DIRTREE = 33554432 + | + | CH_MODAL = 1 + | + | CH_MULTI = 4 + | + | CH_NOBTNS = 16 + | + | CH_NOIDB = 64 + | + | CH_NO_STATUS_BAR = 65536 + | + | CH_QFLT = 4096 + | + | CH_QFTYP_DEFAULT = 0 + | + | CH_QFTYP_FUZZY = 32768 + | + | CH_QFTYP_MASK = 57344 + | + | CH_QFTYP_NORMAL = 8192 + | + | CH_QFTYP_REGEX = 24576 + | + | CH_QFTYP_SHIFT = 13 + | + | CH_QFTYP_WHOLE_WORDS = 16384 + | + | CH_RENAME_IS_EDIT = 262144 + | + | CH_RESTORE = 131072 + | + | EMPTY_CHOOSER = -2 + | + | NOTHING_CHANGED = 0 + | + | NO_ATTR = -4 + | + | NO_SELECTION = -1 + | + | SELECTION_CHANGED = 2 + | + | UI_Hooks_Trampoline = <class 'ida_kernwin.Choose.UI_Hooks_Trampoline'> + | Proxy of C++ UI_Hooks class. + +Help on class CustomIDAMemo in module ida_kernwin: + +class CustomIDAMemo(View_Hooks) + | Proxy of C++ View_Hooks class. + | + | Method resolution order: + | CustomIDAMemo + | View_Hooks + | builtins.object + | + | Methods defined here: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | __init__(self) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class Form in module ida_kernwin: + +class Form(builtins.object) + | # ----------------------------------------------------------------------- + | + | Methods defined here: + | + | Add(self, name, ctrl, mkattr=True) + | Low level function. Prefer AddControls() to this function. + | This function adds one control to the form. + | + | @param name: Control name + | @param ctrl: Control object + | @param 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 + | @param controls: The control dictionary + | + | Close(self, close_normally) + | Close the form + | @param 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.) + | + | @param 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 + | @param 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 + | @param ctrl: Form control instance + | @param 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 + | + | _AddGroup(self, Group, mkattr=True) + | Internal function. + | This function expands the group item names and creates individual group item controls + | + | @param Group: The group class (checkbox or radio group class) + | + | _ChkCompiled(self) + | + | __getitem__(self, name) + | Returns a control object by name + | + | __init__(self, 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). + | + | @param form: The form string + | @param controls: A dictionary containing the control name as a _key_ and control object as _value_ + | + | _reset(self) + | Resets the Form class state variables + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | ControlToFieldTypeIdAndSize(ctrl) + | Converts a control object to a tuple containing the field id + | and the associated buffer size + | + | _ParseFormTitle(form) + | Parses the form's title from the form text + | + | create_string_buffer(value, size=None) + | + | fieldtype_to_ctype(tp, i64=False) + | Factory method returning a ctype class corresponding to the field type string + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | ButtonInput = <class 'ida_kernwin.Form.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 = <class 'ida_kernwin.Form.ChkGroupControl'> + | Checkbox group control class. + | It holds a set of checkbox controls + | + | ChkGroupItemControl = <class 'ida_kernwin.Form.ChkGroupItemControl'> + | Checkbox group item control + | + | ColorInput = <class 'ida_kernwin.Form.ColorInput'> + | Color button input control + | + | Control = <class 'ida_kernwin.Form.Control'> + | + | + | DirInput = <class 'ida_kernwin.Form.DirInput'> + | Directory browsing control + | + | DropdownListControl = <class 'ida_kernwin.Form.DropdownListControl'> + | Dropdown control + | This control allows manipulating a dropdown control + | + | EmbeddedChooserControl = <class 'ida_kernwin.Form.EmbeddedChooserContr... + | Embedded chooser control. + | This control links to a Chooser2 control created with the 'embedded=True' + | + | FT_ADDR = '$' + | + | FT_ASCII = 'A' + | + | FT_BIN = 'Y' + | + | FT_BUTTON = 'B' + | + | FT_CHAR = 'H' + | + | FT_CHKGRP = 'C' + | + | FT_CHKGRP2 = 'c' + | + | FT_COLOR = 'K' + | + | FT_DEC = 'D' + | + | FT_DIR = 'F' + | + | FT_DROPDOWN_LIST = 'b' + | + | FT_ECHOOSER = 'E' + | + | FT_FILE = 'f' + | + | FT_FORMCHG = '%/' + | + | FT_HEX = 'N' + | + | FT_HTML_LABEL = 'h' + | + | FT_IDENT = 'I' + | + | FT_INT64 = 'l' + | + | FT_MULTI_LINE_TEXT = 't' + | + | FT_OCT = 'O' + | + | FT_RADGRP = 'R' + | + | FT_RADGRP2 = 'r' + | + | FT_RAWHEX = 'M' + | + | FT_SEG = 'S' + | + | FT_SHEX = 'n' + | + | FT_TYPE = 'T' + | + | FT_UINT64 = 'L' + | + | FileInput = <class 'ida_kernwin.Form.FileInput'> + | File Open/Save input control + | + | FormChangeCb = <class 'ida_kernwin.Form.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 = <class 'ida_kernwin.Form.GroupControl'> + | Base class for group controls + | + | GroupItemControl = <class 'ida_kernwin.Form.GroupItemControl'> + | Base class for group control items + | + | InputControl = <class 'ida_kernwin.Form.InputControl'> + | Generic form input control. + | It could be numeric control, string control, directory/file browsing, etc... + | + | LabelControl = <class 'ida_kernwin.Form.LabelControl'> + | Base class for static label control + | + | MultiLineTextControl = <class 'ida_kernwin.Form.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 = <class 'ida_kernwin.Form.NumericArgument'> + | Argument representing various integer arguments (ushort, uint32, uint64, etc...) + | @param tp: One of Form.FT_XXX + | + | NumericInput = <class 'ida_kernwin.Form.NumericInput'> + | A composite class serving as a base numeric input control class + | + | NumericLabel = <class 'ida_kernwin.Form.NumericLabel'> + | Numeric label control + | + | RadGroupControl = <class 'ida_kernwin.Form.RadGroupControl'> + | Radiobox group control class. + | It holds a set of radiobox controls + | + | RadGroupItemControl = <class 'ida_kernwin.Form.RadGroupItemControl'> + | Radiobox group item control + | + | StringArgument = <class 'ida_kernwin.Form.StringArgument'> + | Argument representing a character buffer + | + | StringInput = <class 'ida_kernwin.Form.StringInput'> + | Base string input control class. + | This class also constructs a StringArgument + | + | StringLabel = <class 'ida_kernwin.Form.StringLabel'> + | String label control + | + | _FT_USHORT = '_US' + +Help on class IDAViewWrapper in module ida_kernwin: + +class IDAViewWrapper(CustomIDAMemo) + | 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.) + | + | Method resolution order: + | IDAViewWrapper + | CustomIDAMemo + | View_Hooks + | builtins.object + | + | Methods defined here: + | + | Bind(self) + | + | Unbind(self) + | + | __init__(self, title) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | ---------------------------------------------------------------------- + | Methods inherited from CustomIDAMemo: + | + | CreateGroups(self, groups_infos) + | Send a request to modify the graph by creating a + | (set of) group(s), and perform an animation. + | + | Each object in the 'groups_infos' list must be of the format: + | { + | "nodes" : [<int>, <int>, <int>, ...] # The list of nodes to group + | "text" : <string> # The synthetic text for that group + | } + | + | @param groups_infos: A list of objects that describe those groups. + | @return: A [<int>, <int>, ...] list of group nodes, or None (failure). + | + | DelNodesInfos(self, *nodes) + | Delete the properties for the given node(s). + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param 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. + | + | @param ni: A node_info_t instance + | @param 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. + | + | @param 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. + | + | @param groups: A list of group node numbers. + | @param expand: True to expand the group, False otherwise. + | @param 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) + | + | @param node_index: The node index. + | @param node_info: An idaapi.node_info_t instance. + | @param 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}) + | + | @param values: A dictionary of 'int -> node_info_t' objects. + | + | _get_cb(self, view, cb_name) + | + | _get_cb_arity(self, cb) + | + | _graph_item_tuple(self, ve) + | + | view_activated(self, view) + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, view, ve) + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, view, *args) + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_curpos(self, view, *args) + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, view, ve) + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, view) + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, view, key, state) + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, view, now, was) + | 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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, view, ve) + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, view, ve) + | 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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, view, rt) + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Static methods inherited from CustomIDAMemo: + | + | _dummy_cb(*args) + | + | ---------------------------------------------------------------------- + | Methods inherited from View_Hooks: + | + | __disown__(self) + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from View_Hooks: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class PluginForm in module ida_kernwin: + +class PluginForm(builtins.object) + | PluginForm class. + | + | This form can be used to host additional controls. Please check the PyQt example. + | + | Methods defined here: + | + | Close(self, options) + | Closes the form. + | + | @param 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 + | + | @param caption: The form caption + | @param options: One of PluginForm.WOPN_ constants + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | FormToPyQtWidget = TWidgetToPyQtWidget(tw, ctx=<module '__main__' (built-in)>) + | Convert a TWidget* to a QWidget to be used by PyQt + | + | @param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules + | + | FormToPySideWidget = TWidgetToPySideWidget(tw, ctx=<module '__main__' (built-in)>) + | Use this method to convert a TWidget* to a QWidget to be used by PySide + | + | @param 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 + | + | @param 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 + | + | @param 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 + | + | @param ctx: Context. Reference to a module that already imported QtWidgets module + | + | _ensure_widget_deps(ctx) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | VALID_CAPSULE_NAME = b'$valid$' + | + | WCLS_CLOSE_LATER = 8 + | + | WCLS_DELETE_LATER = 8 + | + | WCLS_DONT_SAVE_SIZE = 4 + | + | WCLS_NO_CONTEXT = 2 + | + | WCLS_SAVE = 1 + | + | WOPN_CENTERED = 32 + | + | WOPN_CREATE_ONLY = {} + | + | WOPN_DP_BEFORE = 2097152 + | + | WOPN_DP_BOTTOM = 524288 + | + | WOPN_DP_FLOATING = 8388608 + | + | WOPN_DP_INSIDE = 1048576 + | + | WOPN_DP_INSIDE_BEFORE = 3145728 + | + | WOPN_DP_LEFT = 65536 + | + | WOPN_DP_RIGHT = 262144 + | + | WOPN_DP_SZHINT = 16777216 + | + | WOPN_DP_TAB = 4194304 + | + | WOPN_DP_TAB_BEFORE = 6291456 + | + | WOPN_DP_TOP = 131072 + | + | WOPN_MDI = 1 + | + | WOPN_MENU = 16 + | + | WOPN_ONTOP = 8 + | + | WOPN_PERSIST = 64 + | + | WOPN_RESTORE = 4 + | + | WOPN_TAB = 2 + +Help on function TWidget__from_ptrval__ in module ida_kernwin: + +TWidget__from_ptrval__(*args) -> 'TWidget *' + TWidget__from_ptrval__(ptrval) -> TWidget * + + @param ptrval: size_t + +Help on class UI_Hooks in module ida_kernwin: + +class UI_Hooks(builtins.object) + | Proxy of C++ UI_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> UI_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __real_database_closed = database_closed(self, *args) -> 'void' + | 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(). + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_UI_Hooks(...) + | delete_UI_Hooks(self) + | + | create_desktop_widget(self, *args) -> 'PyObject *' + | create_desktop_widget(self, title, cfg) -> PyObject * + | create a widget, to be placed in the widget tree (at desktop-creation time.) + | + | @param title: (const char *) + | @param cfg: (const jobj_t *) + | @return: TWidget * the created widget, or null + | + | current_widget_changed(self, *args) -> 'void' + | current_widget_changed(self, widget, prev_widget) + | The currently-active TWidget changed. + | + | @param widget: (TWidget *) + | @param prev_widget: (TWidget *) + | + | database_closed = __wrapper(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, *args) -> 'void' + | database_inited(self, is_new_database, idc_script) + | database initialization has completed. the kernel is about to run idc + | scripts + | + | @param is_new_database: (int) + | @param 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, *args) -> 'void' + | debugger_menu_change(self, enable) + | debugger menu modification detected + | + | @param 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, *args) -> 'void' + | desktop_applied(self, name, from_idb, type) + | a desktop has been applied + | + | @param name: (const char *) the desktop name + | @param from_idb: (bool) the desktop was stored in the IDB (false if it comes + | from the registry) + | @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge) + | + | destroying_plugmod(self, *args) -> 'void' + | destroying_plugmod(self, plugmod, entry) + | The plugin object is about to be destroyed + | + | @param plugmod: (const plugmod_t *) + | @param entry: (const plugin_t *) + | + | destroying_procmod(self, *args) -> 'void' + | destroying_procmod(self, procmod) + | The processor module is about to be destroyed + | + | @param procmod: (const procmod_t *) + | + | finish_populating_widget_popup(self, *args) -> '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(). + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) + | + | get_chooser_item_attrs(self, *args) -> '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() + | + | @param chooser: (const chooser_base_t *) + | @param n: (::size_t) + | @param attrs: (chooser_item_attrs_t *) + | + | get_custom_viewer_hint(self, *args) -> '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 + | + | @param viewer: (TWidget*) viewer + | @param 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, *args) -> '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 + | + | @param ea: (::ea_t) + | @return: true if generated a hint + | + | get_item_hint(self, *args) -> '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 + | + | @param ea: (ea_t) or item id like a structure or enum member + | @param max_lines: (int) maximal number of lines + | @return: true if generated a hint + | + | get_lines_rendering_info(self, *args) -> 'void' + | get_lines_rendering_info(self, out, widget, info) + | get lines rendering information + | + | @param out: (lines_rendering_output_t *) + | @param widget: (const TWidget *) + | @param info: (const lines_rendering_input_t *) + | + | get_widget_config(self, *args) -> '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) + | + | @param widget: (const TWidget *) + | @param cfg: (jobj_t *) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | idcstart(self, *args) -> 'void' + | idcstart(self) + | Start of IDC engine work. + | + | idcstop(self, *args) -> 'void' + | idcstop(self) + | Stop of IDC engine work. + | + | initing_database(self, *args) -> '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, *args) -> 'void' + | plugin_loaded(self, plugin_info) + | The plugin was loaded in memory. + | + | @param plugin_info: (const plugin_info_t *) + | + | plugin_unloading(self, *args) -> 'void' + | plugin_unloading(self, plugin_info) + | The plugin is about to be unloaded + | + | @param plugin_info: (const plugin_info_t *) + | + | populating_widget_popup(self, *args) -> '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.) + | + | @param widget: (TWidget *) + | @param popup_handle: (TPopupMenu *) + | @param ctx: (const action_activation_ctx_t *) + | + | postprocess_action(self, *args) -> 'void' + | postprocess_action(self) + | an ida ui action has been handled + | + | preprocess_action(self, *args) -> 'int' + | preprocess_action(self, name) -> int + | ida ui is about to handle a user action. + | + | @param 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, *args) -> '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, *args) -> 'void' + | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook to this + | event to perform their tasks. + | + | resume(self, *args) -> 'void' + | resume(self) + | Resume the suspended graphical interface. Only the text version. Interface + | should respond to it + | + | saved(self, *args) -> '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. + | + | @param path: (const char *) the database path + | + | saving(self, *args) -> '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, *args) -> 'void' + | screen_ea_changed(self, ea, prev_ea) + | The "current address" changed + | + | @param ea: (ea_t) + | @param prev_ea: (ea_t) + | + | set_widget_config(self, *args) -> 'void' + | set_widget_config(self, widget, cfg) + | set the widget configuration + | + | @param widget: (const TWidget *) + | @param cfg: (const jobj_t *) + | + | suspend(self, *args) -> 'void' + | suspend(self) + | Suspend graphical interface. Only the text version. Interface should respond + | to it. + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | updated_actions(self, *args) -> 'void' + | updated_actions(self) + | IDA is done updating actions. + | + | updating_actions(self, *args) -> '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. + | + | @param ctx: (action_update_ctx_t *) + | + | widget_closing(self, *args) -> '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 + | + | @param widget: (TWidget *) + | + | widget_invisible(self, *args) -> 'void' + | widget_invisible(self, widget) + | TWidget is being closed. Use this event to destroy the window controls + | + | @param widget: (TWidget *) + | + | widget_visible(self, *args) -> 'void' + | widget_visible(self, widget) + | TWidget is displayed on the screen. Use this event to populate the window with + | controls + | + | @param widget: (TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class View_Hooks in module ida_kernwin: + +class View_Hooks(builtins.object) + | Proxy of C++ View_Hooks class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks + | + | @param _flags: uint32 + | @param _hkcb_flags: uint32 + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_View_Hooks(...) + | delete_View_Hooks(self) + | + | hook(self, *args) -> 'bool' + | hook(self) -> bool + | + | unhook(self, *args) -> 'bool' + | unhook(self) -> bool + | + | view_activated(self, *args) -> 'void' + | view_activated(self, view) + | A view is activated + | + | @param view: (TWidget *) + | + | view_click(self, *args) -> 'void' + | view_click(self, view, event) + | Click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_close(self, *args) -> 'void' + | view_close(self, view) + | View closed + | + | @param view: (TWidget *) + | + | view_created(self, *args) -> 'void' + | view_created(self, view) + | A view is being created. + | + | @param view: (TWidget *) + | + | view_curpos(self, *args) -> 'void' + | view_curpos(self, view) + | Cursor position changed + | + | @param view: (TWidget *) + | + | view_dblclick(self, *args) -> 'void' + | view_dblclick(self, view, event) + | Double click event + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_deactivated(self, *args) -> 'void' + | view_deactivated(self, view) + | A view is deactivated + | + | @param view: (TWidget *) + | + | view_keydown(self, *args) -> 'void' + | view_keydown(self, view, key, state) + | Key down event + | + | @param view: (TWidget *) + | @param key: (int) + | @param state: (::view_event_state_t) + | + | view_loc_changed(self, *args) -> '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.) + | + | @param view: (TWidget *) + | @param now: (const lochist_entry_t *) + | @param was: (const lochist_entry_t *) + | + | view_mouse_moved(self, *args) -> 'void' + | view_mouse_moved(self, view, event) + | The mouse moved on the view + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_mouse_over(self, *args) -> '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. + | + | @param view: (TWidget *) + | @param event: (const view_mouse_event_t *) + | + | view_switched(self, *args) -> 'void' + | view_switched(self, view, rt) + | A view's renderer has changed. + | + | @param view: (TWidget *) + | @param rt: (tcc_renderer_type_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function __call_form_callable in module ida_kernwin: + +__call_form_callable(call, *args) + +Help on class __qtimer_t in module ida_kernwin: + +class __qtimer_t(builtins.object) + | Proxy of C++ __qtimer_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qtimer_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qtimer_t(...) + | delete___qtimer_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function _ask_addr in module ida_kernwin: + +_ask_addr(*args) -> 'ea_t *' + _ask_addr(addr, format) -> bool + + Parameters + ---------- + addr: ea_t * + format: char const * + +Help on function _ask_long in module ida_kernwin: + +_ask_long(*args) -> 'sval_t *' + _ask_long(value, format) -> bool + + Parameters + ---------- + value: sval_t * + format: char const * + +Help on function _ask_seg in module ida_kernwin: + +_ask_seg(*args) -> 'sel_t *' + _ask_seg(sel, format) -> bool + + Parameters + ---------- + sel: sel_t * + format: char const * + +Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: + +_kludge_force_declare_dirspec_t(*args) -> 'void' + _kludge_force_declare_dirspec_t(arg1) + + Parameters + ---------- + arg1: dirspec_t const * + +Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: + +_kludge_force_declare_dirtree_t(*args) -> 'void' + _kludge_force_declare_dirtree_t(arg1) + + Parameters + ---------- + arg1: dirtree_t const * + +Help on class action_ctx_base_cur_sel_t in module ida_kernwin: + +class action_ctx_base_cur_sel_t(builtins.object) + | Proxy of C++ action_ctx_base_cur_sel_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_cur_sel_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_cur_sel_t(...) + | delete_action_ctx_base_cur_sel_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _from + | _from + | + | thisown + | The membership flag + | + | to + | to + +Help on class action_ctx_base_source_t in module ida_kernwin: + +class action_ctx_base_source_t(builtins.object) + | Proxy of C++ action_ctx_base_source_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_source_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_source_t(...) + | delete_action_ctx_base_source_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | chooser + | chooser + | + | thisown + | The membership flag + +Help on class action_ctx_base_t in module ida_kernwin: + +class action_ctx_base_t(builtins.object) + | Proxy of C++ action_ctx_base_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> action_ctx_base_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_ctx_base_t(...) + | delete_action_ctx_base_t(self) + | + | has_flag(self, *args) -> 'bool' + | has_flag(self, flag) -> bool + | Check if the given flag is set. + | + | @param flag: (C++: uint32) + | + | reset(self, *args) -> 'void' + | reset(self) + | Invalidate all context info. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action + | action + | + | chooser_selection + | chooser_selection + | + | cur_ea + | cur_ea + | + | cur_enum + | cur_enum + | + | cur_enum_member + | cur_enum_member + | + | cur_extracted_ea + | cur_value + | + | cur_fchunk + | cur_fchunk + | + | cur_flags + | cur_flags + | + | cur_func + | cur_func + | + | cur_seg + | cur_seg + | + | cur_sel + | cur_sel + | + | cur_strmem + | cur_strmem + | + | cur_struc + | cur_struc + | + | cur_value + | cur_value + | + | dirtree_selection + | dirtree_selection + | + | focus + | focus + | + | form + | + | form_title + | + | form_type + | + | graph_selection + | graph_selection + | + | regname + | regname + | + | source + | source + | + | thisown + | The membership flag + | + | widget + | widget + | + | widget_title + | widget_title + | + | widget_type + | widget_type + +Help on class action_desc_t in module ida_kernwin: + +class action_desc_t(builtins.object) + | Proxy of C++ action_desc_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t + | + | @param name: char const * + | @param label: char const * + | @param handler: PyObject * + | @param shortcut: char const * + | @param tooltip: char const * + | @param icon: int + | @param flags: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_action_desc_t(...) + | delete_action_desc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | flags + | flags + | + | icon + | icon + | + | label + | label + | + | name + | name + | + | owner + | owner + | + | shortcut + | shortcut + | + | thisown + | The membership flag + | + | tooltip + | tooltip + +Help on class action_handler_t in module ida_kernwin: + +class action_handler_t(builtins.object) + | # ---------------------------------------------------------------------- + | + | Methods defined here: + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | 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. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function activate_widget in module ida_kernwin: + +activate_widget(*args) -> 'void' + activate_widget(widget, take_focus) + Activate widget (only gui version) (ui_activate_widget). + + @param widget: (C++: TWidget *) existing widget to display + @param take_focus: (C++: bool) give focus to given widget + +Help on function add_hotkey in module ida_kernwin: + +add_hotkey(*args) -> 'PyObject *' + add_hotkey(hotkey, pyfunc) -> PyCapsule + Associates a function call with a hotkey. + Callable pyfunc will be called each time the hotkey is pressed + + @param hotkey: The hotkey + @param pyfunc: Callable + + @return: Context object on success or None on failure. + +Help on function add_idc_hotkey in module ida_kernwin: + +add_idc_hotkey(*args) -> 'int' + add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes + +Help on function add_spaces in module ida_kernwin: + +add_spaces(*args) -> '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'. + + @param str: (C++: char *) pointer to colored string to modify (may not be nullptr) + @param len: (C++: ssize_t) the desired length of the string + @return: pointer to the end of input string + +Help on function addon_count in module ida_kernwin: + +addon_count(*args) -> 'int' + addon_count() -> int + Get number of installed addons. + +Help on class addon_info_t in module ida_kernwin: + +class addon_info_t(builtins.object) + | Proxy of C++ addon_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> addon_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_addon_info_t(...) + | delete_addon_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | custom_data + | custom_data + | + | custom_size + | custom_size + | + | freeform + | freeform + | + | id + | id + | + | name + | name + | + | producer + | producer + | + | thisown + | The membership flag + | + | url + | url + | + | version + | version + +Help on function analyzer_options in module ida_kernwin: + +analyzer_options(*args) -> 'void' + analyzer_options() + Allow the user to set analyzer options. (show a dialog box) + (ui_analyzer_options) + +Help on function ask_addr in module ida_kernwin: + +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 + +Help on function ask_buttons in module ida_kernwin: + +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 + + @param Yes: (C++: const char *) text for the first button + @param No: (C++: const char *) text for the second button + @param Cancel: (C++: const char *) text for the third button + @param deflt: (C++: int) default choice: one of Button IDs + @param 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) + +Help on function ask_file in module ida_kernwin: + +ask_file(*args) -> 'char *' + ask_file(for_saving, defval, format) -> char * + + @param for_saving: bool + @param defval: char const * + @param format: char const * + +Help on function ask_for_feedback in module ida_kernwin: + +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}. + + @param format: (C++: const char *) the reason why the input file is bad + +Help on function ask_form in module ida_kernwin: + +ask_form(*args) + Display a dialog box and wait for the user. If the form contains the "BUTTON NO + <title>" 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 + +Help on function ask_ident in module ida_kernwin: + +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. + + @return: false if the user cancelled the dialog, otherwise returns true. + +Help on function ask_long in module ida_kernwin: + +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. + +Help on function ask_seg in module ida_kernwin: + +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 + +Help on function ask_str in module ida_kernwin: + +ask_str(*args) -> 'PyObject *' + ask_str(defval, hist, prompt) -> str or None + Asks for a long text + + @param defval: The default value + @param hist: history id + @param prompt: The prompt value + @return: None or the entered string + +Help on function ask_text in module ida_kernwin: + +ask_text(*args) -> 'PyObject *' + ask_text(max_size, defval, prompt) -> str + Asks for a long text + + @param max_size: Maximum text length, 0 for unlimited + @param defval: The default value + @param prompt: The prompt value + @return: None or the entered string + +Help on function ask_yn in module ida_kernwin: + +ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int + Display a dialog box and get choice from "Yes", "No", "Cancel". + + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. + +Help on function attach_action_to_menu in module ida_kernwin: + +attach_action_to_menu(*args) -> '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). + + @param 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 + @param name: (C++: const char *) the action name + @param flags: (C++: int) a combination of Set menu flags, to determine menu item position + @return: success + +Help on function attach_action_to_popup in module ida_kernwin: + +attach_action_to_popup(*args) -> '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'. + + @param widget: (C++: TWidget *) target widget + @param 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'.) + @param name: (C++: const char *) action name + @param popuppath: (C++: const char *) can be nullptr + @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) + @return: success + +Help on function attach_action_to_toolbar in module ida_kernwin: + +attach_action_to_toolbar(*args) -> 'bool' + attach_action_to_toolbar(toolbar_name, name) -> bool + Attach an action to an existing toolbar (ui_attach_action_to_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success + +Help on function attach_dynamic_action_to_popup in module ida_kernwin: + +attach_dynamic_action_to_popup(*args) -> '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) + + @param unused: deprecated; should be None + @param popup_handle: target popup + @param desc: action description of type action_desc_t + @param popuppath: can be None + @param flags: a combination of SETMENU_ constants + @return: success + +Help on function banner in module ida_kernwin: + +banner(*args) -> 'bool' + banner(wait) -> bool + Show a banner dialog box (ui_banner). + + @param wait: (C++: int) time to wait before closing + @retval 1: ok + @retval 0: esc was pressed + +Help on function beep in module ida_kernwin: + +beep(*args) -> 'void' + beep(beep_type=beep_default) + Issue a beeping sound (ui_beep). + + @param beep_type: (C++: beep_t) + +Help on function call_nav_colorizer in module ida_kernwin: + +call_nav_colorizer(*args) -> 'uint32' + call_nav_colorizer(dict, ea, nbytes) -> uint32 + To be used with the IDA-provided colorizer, that is + returned as result of the first call to set_nav_colorizer(). + + @param dict: PyObject * + @param ea: ea_t + @param nbytes: asize_t + +Help on function cancel_exec_request in module ida_kernwin: + +cancel_exec_request(*args) -> 'bool' + cancel_exec_request(req_id) -> bool + Try to cancel an asynchronous exec request (ui_cancel_exec_request). + + @param req_id: (C++: int) request id + @retval true: successfully canceled + @retval false: request has already been processed. + +Help on function cancel_thread_exec_requests in module ida_kernwin: + +cancel_thread_exec_requests(*args) -> 'int' + cancel_thread_exec_requests(tid) -> int + Try to cancel asynchronous exec requests created by the specified thread. + + @param tid: (C++: qthread_t) thread id + @return: number of the canceled requests. + +Help on function choose_activate in module ida_kernwin: + +choose_activate(*args) -> 'void' + choose_activate(_self) + + @param self: PyObject * + +Help on function choose_choose in module ida_kernwin: + +choose_choose(*args) -> 'PyObject *' + choose_choose(_self) -> PyObject * + + @param self: PyObject * + +Help on function choose_close in module ida_kernwin: + +choose_close(*args) -> 'void' + choose_close(_self) + + @param self: PyObject * + +Help on function choose_create_embedded_chobj in module ida_kernwin: + +choose_create_embedded_chobj(*args) -> 'PyObject *' + choose_create_embedded_chobj(_self) -> PyObject * + + @param self: PyObject * + +Help on function choose_entry in module ida_kernwin: + +choose_entry(*args) -> 'ea_t' + choose_entry(title) -> ea_t + Choose an entry point (ui_choose, chtype_entry). + + @param title: (C++: const char *) chooser title + @return: ea of selected entry point, BADADDR if none selected + +Help on function choose_enum in module ida_kernwin: + +choose_enum(*args) -> 'enum_t' + choose_enum(title, default_id) -> enum_t + Choose an enum (ui_choose, chtype_enum). + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @return: enum id of selected enum, BADNODE if none selected + +Help on function choose_enum_by_value in module ida_kernwin: + +choose_enum_by_value(*args) -> 'uchar *' + choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + 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. + + @param title: (C++: const char *) chooser title + @param default_id: (C++: enum_t) id of enum to select by default + @param value: (C++: uint64) value to search for + @param nbytes: (C++: int) size of value + @return: enum id of selected (or imported) enum, BADNODE if none was found + +Help on function choose_find in module ida_kernwin: + +choose_find(*args) -> 'PyObject *' + choose_find(title) -> MyChoose or None + + @param title: char const * + +Help on function choose_func in module ida_kernwin: + +choose_func(*args) -> 'func_t *' + choose_func(title, default_ea) -> func_t * + Choose a function (ui_choose, chtype_func). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of function to select by default + @return: pointer to function that was selected, nullptr if none selected + +Help on function choose_get_widget in module ida_kernwin: + +choose_get_widget(*args) -> 'TWidget *' + choose_get_widget(_self) -> TWidget * + + @param self: PyObject * + +Help on function choose_idasgn in module ida_kernwin: + +choose_idasgn(*args) -> 'PyObject *' + choose_idasgn() -> PyObject * + Opens the signature chooser + + @return: None or the selected signature name + +Help on function choose_name in module ida_kernwin: + +choose_name(*args) -> 'ea_t' + choose_name(title) -> ea_t + Choose a name (ui_choose, chtype_name). + + @param title: (C++: const char *) chooser title + @return: ea of selected name, BADADDR if none selected + +Help on function choose_refresh in module ida_kernwin: + +choose_refresh(*args) -> 'void' + choose_refresh(_self) + + @param self: PyObject * + +Help on function choose_segm in module ida_kernwin: + +choose_segm(*args) -> 'segment_t *' + choose_segm(title, default_ea) -> segment_t * + Choose a segment (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title + @param default_ea: (C++: ea_t) ea of segment to select by default + @return: pointer to segment that was selected, nullptr if none selected + +Help on function choose_srcp in module ida_kernwin: + +choose_srcp(*args) -> 'sreg_range_t *' + choose_srcp(title) -> sreg_range_t * + Choose a segment register change point (ui_choose, chtype_srcp). + + @param title: (C++: const char *) chooser title + @return: pointer to segment register range of selected change point, nullptr if + none selected + +Help on function choose_stkvar_xref in module ida_kernwin: + +choose_stkvar_xref(*args) -> 'ea_t' + choose_stkvar_xref(pfn, mptr) -> ea_t + Choose an xref to a stack variable (ui_choose, chtype_name). + + @param pfn: (C++: func_t *) function + @param mptr: (C++: member_t *) variable + @return: ea of the selected xref, BADADDR if none selected + +Help on function choose_struc in module ida_kernwin: + +choose_struc(*args) -> 'struc_t *' + choose_struc(title) -> struc_t * + Choose a structure (ui_choose, chtype_segm). + + @param title: (C++: const char *) chooser title; + @return: pointer to structure that was selected, nullptr if none selected + +Help on function choose_til in module ida_kernwin: + +choose_til(*args) -> '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 + +Help on function choose_xref in module ida_kernwin: + +choose_xref(*args) -> 'ea_t' + choose_xref(to) -> ea_t + Choose an xref to an address (ui_choose, chtype_xref). + + @param to: (C++: ea_t) referenced address + @return: ea of selected xref, BADADDR if none selected + +Help on class chooser_base_t in module ida_kernwin: + +class chooser_base_t(builtins.object) + | Proxy of C++ chooser_base_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | ask_item_attrs(self, *args) -> 'bool' + | ask_item_attrs(self) -> bool + | should chooser generate ui_get_chooser_item_attrs events? + | + | can_del(self, *args) -> 'bool' + | can_del(self) -> bool + | + | can_edit(self, *args) -> 'bool' + | can_edit(self) -> bool + | + | can_filter(self, *args) -> 'bool' + | can_filter(self) -> bool + | + | can_ins(self, *args) -> 'bool' + | can_ins(self) -> bool + | is an operation allowed? + | + | can_refresh(self, *args) -> 'bool' + | can_refresh(self) -> bool + | + | can_sort(self, *args) -> 'bool' + | can_sort(self) -> bool + | + | get_builtin_number(self, *args) -> 'uint' + | get_builtin_number(self) -> uint + | get number of the built-in chooser + | + | get_count(self, *args) -> 'size_t' + | get_count(self) -> size_t + | get the number of elements in the chooser + | + | get_ea(self, *args) -> '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()) + | + | @param arg2: size_t + | @return: the effective address, BADADDR if the element has no address + | + | get_quick_filter_initial_mode(self, *args) -> 'int' + | get_quick_filter_initial_mode(self) -> int + | + | get_row(self, *args) -> 'PyObject *' + | get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) + | get a description of an element. + | + | @param n: (C++: size_t) element number (0..get_count()-1) + | + | has_diff_capability(self, *args) -> 'bool' + | has_diff_capability(self) -> bool + | + | has_dirtree(self, *args) -> 'bool' + | has_dirtree(self) -> bool + | + | is_dirtree_persisted(self, *args) -> 'bool' + | is_dirtree_persisted(self) -> bool + | + | is_force_default(self, *args) -> 'bool' + | is_force_default(self) -> bool + | should selection of the already opened non-modal chooser be changed? + | + | is_lazy_loaded(self, *args) -> 'bool' + | is_lazy_loaded(self) -> bool + | + | is_modal(self, *args) -> 'bool' + | is_modal(self) -> bool + | is choose modal? + | + | is_multi(self, *args) -> 'bool' + | is_multi(self) -> bool + | is multi-selection allowed? + | + | is_noidb(self, *args) -> 'bool' + | is_noidb(self) -> bool + | can use the chooser before opening the database? + | + | is_quick_filter_visible_initially(self, *args) -> 'bool' + | is_quick_filter_visible_initially(self) -> bool + | + | is_same(self, *args) -> 'bool' + | is_same(self, other) -> bool + | do the current and the given objects hold the same data? + | + | @param other: (C++: const chooser_base_t *) chooser_base_t const * + | + | is_status_bar_hidden(self, *args) -> 'bool' + | is_status_bar_hidden(self) -> bool + | + | popup_allowed(self, *args) -> 'bool' + | popup_allowed(self, stdact_idx) -> bool + | is a standard action allowed? + | + | @param stdact_idx: (C++: int) + | + | should_rename_trigger_edit(self, *args) -> 'bool' + | should_rename_trigger_edit(self) -> bool + | + | should_restore_geometry(self, *args) -> 'bool' + | should_restore_geometry(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | columns + | columns + | + | deflt_col + | deflt_col + | + | header + | header + | + | height + | height + | + | icon + | icon + | + | popup_names + | popup_names + | + | thisown + | The membership flag + | + | title + | title + | + | width + | width + | + | widths + | widths + | + | x0 + | x0 + | + | x1 + | x1 + | + | y0 + | y0 + | + | y1 + | y1 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | NSTDPOPUPS = 4 + | + | POPUP_DEL = 1 + | + | POPUP_EDIT = 2 + | + | POPUP_INS = 0 + | + | POPUP_REFRESH = 3 + +Help on class chooser_item_attrs_t in module ida_kernwin: + +class chooser_item_attrs_t(builtins.object) + | Proxy of C++ chooser_item_attrs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> chooser_item_attrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chooser_item_attrs_t(...) + | delete_chooser_item_attrs_t(self) + | + | reset(self, *args) -> 'void' + | reset(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | color + | color + | + | flags + | flags + | + | thisown + | The membership flag + +Help on class chooser_stdact_desc_t in module ida_kernwin: + +class chooser_stdact_desc_t(builtins.object) + | Proxy of C++ chooser_stdact_desc_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, _label=None, _tooltip=None, _icon=-1) -> chooser_stdact_desc_t + | + | @param _label: char const * + | @param _tooltip: char const * + | @param _icon: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_chooser_stdact_desc_t(...) + | delete_chooser_stdact_desc_t(self) + | + | ucb(self, *args) -> '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. + | + | @param arg0: action_update_ctx_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | icon + | icon + | + | label + | label + | + | thisown + | The membership flag + | + | tooltip + | tooltip + | + | version + | version + +Help on function clear_refresh_request in module ida_kernwin: + +clear_refresh_request(*args) -> 'void' + clear_refresh_request(mask) + + @param mask: uint64 + +Help on class cli_t in module ida_kernwin: + +class cli_t(ida_idaapi.pyidc_opaque_object_t) + | cli_t wrapper class. + | + | This class allows you to implement your own command line interface handlers. + | + | Method resolution order: + | cli_t + | ida_idaapi.pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | OnCompleteLine(self, prefix, n, line, prefix_start) + | The user pressed Tab. Find a completion number N for prefix PREFIX + | + | This callback is optional. + | + | @param prefix: Line prefix at prefix_start (string) + | @param n: completion number (int) + | @param line: the current line (string) + | @param 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. + | + | @param 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. + | + | @param line: current input line + | @param x: current x coordinate of the cursor + | @param sellen: current selection length (usually 0) + | @param vkey: virtual key code. if the key has been handled, it should be returned as zero + | @param 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) + | + | __del__(self) + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | register(self, flags=0, sname=None, lname=None, hint=None) + | Registers the CLI. + | + | @param flags: Feature bits. No bits are defined yet, must be 0 + | @param sname: Short name (displayed on the button) + | @param lname: Long name (displayed in the menu) + | @param hint: Hint for the input line + | + | @return: Boolean: True-Success, False-Failed + | + | unregister(self) + | Unregisters the CLI (if it was registered) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on function close_chooser in module ida_kernwin: + +close_chooser(*args) -> 'bool' + close_chooser(title) -> bool + Close a non-modal chooser (ui_close_chooser). + + @param title: (C++: const char *) window title of chooser to close + @return: success + +Help on function close_widget in module ida_kernwin: + +close_widget(*args) -> 'void' + close_widget(widget, options) + Close widget (ui_close_widget, only gui version). + + @param widget: (C++: TWidget *) pointer to the widget to close + @param options: (C++: int) Form close flags + +Help on function clr_cancelled in module ida_kernwin: + +clr_cancelled(*args) -> 'void' + clr_cancelled() + Clear "Cancelled" flag (ui_clr_cancelled) + +Help on function create_code_viewer in module ida_kernwin: + +create_code_viewer(*args) -> '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. + + @param custview: (C++: TWidget *) the custom view to be added + @param flags: (C++: int) Code viewer flags + @param parent: (C++: TWidget *) widget to contain the new code viewer + +Help on function create_empty_widget in module ida_kernwin: + +create_empty_widget(*args) -> 'TWidget *' + create_empty_widget(title, icon=-1) -> TWidget * + Create an empty widget, serving as a container for custom user widgets + + @param title: (C++: const char *) char const * + @param icon: (C++: int) + +Help on function create_menu in module ida_kernwin: + +create_menu(*args) -> '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. + + @param name: (C++: const char *) name of menu (must be unique) + @param label: (C++: const char *) label of menu + @param menupath: (C++: const char *) where should the menu be inserted + @return: success + +Help on function create_toolbar in module ida_kernwin: + +create_toolbar(*args) -> 'bool' + create_toolbar(name, label, before=None, flags=0) -> bool + Create a toolbar with the given name, label and optional position + + @param name: (C++: const char *) name of toolbar (must be unique) + @param label: (C++: const char *) label of toolbar + @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be + inserted + @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar + position + @return: success + +Help on function custom_viewer_jump in module ida_kernwin: + +custom_viewer_jump(*args) -> 'bool' + custom_viewer_jump(v, loc, flags=0) -> bool + Append 'loc' to the viewer's history, and cause the viewer to display it. + + @param v: (C++: TWidget *) (TWidget *) + @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) + @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values + @return: success + +Help on function del_hotkey in module ida_kernwin: + +del_hotkey(*args) -> 'bool' + del_hotkey(pyctx) -> bool + Deletes a previously registered function hotkey + + @param ctx: Hotkey context previously returned by add_hotkey() + + @return: Boolean. + +Help on function del_idc_hotkey in module ida_kernwin: + +del_idc_hotkey(*args) -> 'bool' + del_idc_hotkey(hotkey) -> bool + + @param hotkey: char const * + +Help on function delete_menu in module ida_kernwin: + +delete_menu(*args) -> 'bool' + delete_menu(name) -> bool + Delete an existing menu + + @param name: (C++: const char *) name of menu + @return: success + +Help on function delete_toolbar in module ida_kernwin: + +delete_toolbar(*args) -> 'bool' + delete_toolbar(name) -> bool + Delete an existing toolbar + + @param name: (C++: const char *) name of toolbar + @return: success + +Help on function detach_action_from_menu in module ida_kernwin: + +detach_action_from_menu(*args) -> 'bool' + detach_action_from_menu(menupath, name) -> bool + Detach an action from the menu (ui_detach_action_from_menu). + + @param menupath: (C++: const char *) path to the menu item + @param name: (C++: const char *) the action name + @return: success + +Help on function detach_action_from_popup in module ida_kernwin: + +detach_action_from_popup(*args) -> '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. + + @param widget: (C++: TWidget *) target widget + @param name: (C++: const char *) action name + +Help on function detach_action_from_toolbar in module ida_kernwin: + +detach_action_from_toolbar(*args) -> 'bool' + detach_action_from_toolbar(toolbar_name, name) -> bool + Detach an action from the toolbar (ui_detach_action_from_toolbar). + + @param toolbar_name: (C++: const char *) the name of the toolbar + @param name: (C++: const char *) the action name + @return: success + +Help on class disabled_script_timeout_t in module ida_kernwin: + +class disabled_script_timeout_t(builtins.object) + | Methods defined here: + | + | __enter__(self) + | + | __exit__(self, type, value, tb) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class disasm_line_t in module ida_kernwin: + +class disasm_line_t(builtins.object) + | Proxy of C++ disasm_line_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> disasm_line_t + | __init__(self, other) -> disasm_line_t + | + | @param other: disasm_line_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_disasm_line_t(...) + | delete_disasm_line_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | bg_color + | bg_color + | + | is_default + | is_default + | + | line + | line + | + | prefix_color + | prefix_color + | + | thisown + | The membership flag + +Help on class disasm_text_t in module ida_kernwin: + +class disasm_text_t(builtins.object) + | Proxy of C++ qvector< disasm_line_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'disasm_line_t const &' + | __getitem__(self, i) -> disasm_line_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> disasm_text_t + | __init__(self, x) -> disasm_text_t + | + | @param x: qvector< disasm_line_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: disasm_line_t const & + | + | __swig_destroy__ = delete_disasm_text_t(...) + | delete_disasm_text_t(self) + | + | at(self, *args) -> 'disasm_line_t const &' + | at(self, _idx) -> disasm_line_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< disasm_line_t >::const_iterator' + | begin(self) -> disasm_line_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< disasm_line_t >::iterator + | + | erase(self, first, last) -> disasm_line_t + | + | @param first: qvector< disasm_line_t >::iterator + | @param last: qvector< disasm_line_t >::iterator + | + | extract(self, *args) -> 'disasm_line_t *' + | extract(self) -> disasm_line_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=disasm_line_t()) + | + | @param x: disasm_line_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: disasm_line_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' + | insert(self, it, x) -> disasm_line_t + | + | @param it: qvector< disasm_line_t >::iterator + | @param x: disasm_line_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'disasm_line_t &' + | push_back(self, x) + | + | @param x: disasm_line_t const & + | + | push_back(self) -> disasm_line_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: disasm_line_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< disasm_line_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function display_copyright_warning in module ida_kernwin: + +display_copyright_warning(*args) -> 'bool' + display_copyright_warning() -> bool + Display copyright warning (ui_copywarn). + + @return: yes/no + +Help on function display_widget in module ida_kernwin: + +display_widget(*args) -> 'void' + display_widget(widget, options, dest_ctrl=None) + Display a widget, dock it if not done before + + @param widget: (C++: TWidget *) widget to display + @param options: (C++: uint32) Widget open flags + @param 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 + +Help on function ea2str in module ida_kernwin: + +ea2str(*args) -> 'size_t' + ea2str(ea) -> str + Convert linear address to UTF-8 string. + + @param ea: (C++: ea_t) + +Help on function ea_viewer_history_push_and_jump in module ida_kernwin: + +ea_viewer_history_push_and_jump(*args) -> '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. + + @param v: (C++: TWidget *) ea viewer + @param ea: (C++: ea_t) jump destination + @param x: (C++: int) ,y: coords on screen + @param lnnum: (C++: int) desired line number of given address + @param lnnum: (C++: int) desired line number of given address + +Help on function enable_chooser_item_attrs in module ida_kernwin: + +enable_chooser_item_attrs(*args) -> '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. + + @param chooser_caption: (C++: const char *) char const * + @param enable: (C++: bool) + @return: success + +Help on class enumplace_t in module ida_kernwin: + +class enumplace_t(place_t) + | Proxy of C++ enumplace_t class. + | + | Method resolution order: + | enumplace_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enumplace_t(...) + | delete_enumplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bmask + | bmask + | + | idx + | idx + | + | serial + | serial + | + | thisown + | The membership flag + | + | value + | value + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on function error in module ida_kernwin: + +error(*args) -> 'void' + error(format) + Display a fatal message in a message box and quit IDA + + @param format: message to print + +Help on function execute_sync in module ida_kernwin: + +execute_sync(*args) -> 'int' + execute_sync(py_callable, reqf) -> int + Executes a function in the context of the main thread. + If the current thread not the main thread, then the call is queued and + executed afterwards. + + @param py_callable: A python callable object, must return an integer value + @param reqf: one of MFF_ flags + @return: -1 or the return value of the callable + +Help on function execute_ui_requests in module ida_kernwin: + +execute_ui_requests(*args) -> 'bool' + execute_ui_requests(py_list) -> bool + Inserts a list of callables into the UI message processing queue. + When the UI is ready it will call one callable. + A callable can request to be called more than once if it returns True. + + @param 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 + +Help on function find_widget in module ida_kernwin: + +find_widget(*args) -> '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! + + @param 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 + +Help on function formchgcbfa_close in module ida_kernwin: + +formchgcbfa_close(*args) -> 'void' + formchgcbfa_close(p_fa, close_normally) + + @param p_fa: size_t + @param close_normally: int + +Help on function formchgcbfa_enable_field in module ida_kernwin: + +formchgcbfa_enable_field(*args) -> 'bool' + formchgcbfa_enable_field(p_fa, fid, enable) -> bool + + @param p_fa: size_t + @param fid: int + @param enable: bool + +Help on function formchgcbfa_get_field_value in module ida_kernwin: + +formchgcbfa_get_field_value(*args) -> 'PyObject *' + formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject * + + @param p_fa: size_t + @param fid: int + @param ft: int + @param sz: size_t + +Help on function formchgcbfa_get_focused_field in module ida_kernwin: + +formchgcbfa_get_focused_field(*args) -> 'int' + formchgcbfa_get_focused_field(p_fa) -> int + + @param p_fa: size_t + +Help on function formchgcbfa_move_field in module ida_kernwin: + +formchgcbfa_move_field(*args) -> 'bool' + formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool + + @param p_fa: size_t + @param fid: int + @param x: int + @param y: int + @param w: int + @param h: int + +Help on function formchgcbfa_refresh_field in module ida_kernwin: + +formchgcbfa_refresh_field(*args) -> 'void' + formchgcbfa_refresh_field(p_fa, fid) + + @param p_fa: size_t + @param fid: int + +Help on function formchgcbfa_set_field_value in module ida_kernwin: + +formchgcbfa_set_field_value(*args) -> 'bool' + formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool + + @param p_fa: size_t + @param fid: int + @param ft: int + @param py_val: PyObject * + +Help on function formchgcbfa_set_focused_field in module ida_kernwin: + +formchgcbfa_set_focused_field(*args) -> 'bool' + formchgcbfa_set_focused_field(p_fa, fid) -> bool + + @param p_fa: size_t + @param fid: int + +Help on function formchgcbfa_show_field in module ida_kernwin: + +formchgcbfa_show_field(*args) -> 'bool' + formchgcbfa_show_field(p_fa, fid, show) -> bool + + @param p_fa: size_t + @param fid: int + @param show: bool + +Help on function free_custom_icon in module ida_kernwin: + +free_custom_icon(*args) -> 'void' + free_custom_icon(icon_id) + Frees an icon loaded with load_custom_icon() + + @param icon_id: int + +Help on function gen_disasm_text in module ida_kernwin: + +gen_disasm_text(*args) -> 'void' + gen_disasm_text(text, ea1, ea2, truncate_lines) + Generate disassembly text for a range. + + @param text: (C++: text_t &) result + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @param truncate_lines: (C++: bool) (on idainfo::margin) + +Help on function get_action_checkable in module ida_kernwin: + +get_action_checkable(*args) -> 'bool *' + get_action_checkable(name) -> bool + Get an action's checkability (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_checked in module ida_kernwin: + +get_action_checked(*args) -> 'bool *' + get_action_checked(name) -> bool + Get an action's checked state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_icon in module ida_kernwin: + +get_action_icon(*args) -> 'int *' + get_action_icon(name) -> bool + Get an action's icon (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_label in module ida_kernwin: + +get_action_label(*args) -> 'qstring *' + get_action_label(name) -> str + Get an action's label (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_shortcut in module ida_kernwin: + +get_action_shortcut(*args) -> 'qstring *' + get_action_shortcut(name) -> str + Get an action's shortcut (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_state in module ida_kernwin: + +get_action_state(*args) -> 'action_state_t *' + get_action_state(name) -> bool + Get an action's state (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_tooltip in module ida_kernwin: + +get_action_tooltip(*args) -> 'qstring *' + get_action_tooltip(name) -> str + Get an action's tooltip (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_action_visibility in module ida_kernwin: + +get_action_visibility(*args) -> 'bool *' + get_action_visibility(name) -> bool + Get an action's visibility (ui_get_action_attr). + + @param name: (C++: const char *) the action name + @return: success + +Help on function get_active_modal_widget in module ida_kernwin: + +get_active_modal_widget(*args) -> '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 + +Help on function get_addon_info in module ida_kernwin: + +get_addon_info(*args) -> '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 + + @param id: (C++: const char *) char const * + @param info: (C++: addon_info_t *) + @return: false if not found + +Help on function get_addon_info_idx in module ida_kernwin: + +get_addon_info_idx(*args) -> '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 + + @param index: (C++: int) + @param info: (C++: addon_info_t *) + @return: false if index is out of range + +Help on function get_chooser_data in module ida_kernwin: + +get_chooser_data(*args) -> '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. + + @param chooser_caption: (C++: const char *) char const * + @param n: (C++: int) + +Help on function get_chooser_obj in module ida_kernwin: + +get_chooser_obj(*args) -> '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. + + @param chooser_caption: (C++: const char *) char const * + @return: the object that was used to create the chooser + +Help on function get_curline in module ida_kernwin: + +get_curline(*args) -> '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) + +Help on function get_current_viewer in module ida_kernwin: + +get_current_viewer(*args) -> 'TWidget *' + get_current_viewer() -> TWidget * + Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer) + +Help on function get_current_widget in module ida_kernwin: + +get_current_widget(*args) -> 'TWidget *' + get_current_widget() -> TWidget * + Get a pointer to the current widget (ui_get_current_widget). + +Help on function get_cursor in module ida_kernwin: + +get_cursor(*args) -> '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 + +Help on function get_custom_viewer_curline in module ida_kernwin: + +get_custom_viewer_curline(*args) -> '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 + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + @return: pointer to contents of current line + +Help on function get_custom_viewer_location in module ida_kernwin: + +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). + + @param out: (C++: lochist_entry_t *) + @param custom_viewer: (C++: TWidget *) + @param mouse: (C++: bool) + +Help on function get_custom_viewer_place in module ida_kernwin: + +get_custom_viewer_place(*args) -> '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() + + @param custom_viewer: (C++: TWidget *) view + @param mouse: (C++: bool) mouse position (otherwise cursor position) + +Help on function get_custom_viewer_place_xcoord in module ida_kernwin: + +get_custom_viewer_place_xcoord(*args) -> 'int' + get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int + Get the X position of the item, in the line + + @param custom_viewer: (C++: TWidget *) the widget + @param pline: (C++: const place_t *) a place corresponding to the line + @param 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 + +Help on function get_ea_viewer_history_info in module ida_kernwin: + +get_ea_viewer_history_info(*args) -> 'bool' + get_ea_viewer_history_info(nback, nfwd, v) -> bool + Get information about what's in the history (ui_ea_viewer_history_info). + + @param nback: (C++: int *) number of available back steps + @param nfwd: (C++: int *) number of available forward steps + @param v: (C++: TWidget *) ea viewer + @retval false: if the given ea viewer does not exist + @retval true: otherwise + +Help on function get_hexdump_ea in module ida_kernwin: + +get_hexdump_ea(*args) -> 'ea_t' + get_hexdump_ea(hexdump_num) -> ea_t + Get the current address in a hex view. + + @param hexdump_num: (C++: int) number of hexview window + +Help on function get_highlight in module ida_kernwin: + +get_highlight(*args) -> 'PyObject *' + get_highlight(v, in_flags=0) -> (str, int) or None + Returns the currently highlighted identifier and flags + + @param v: The UI widget to operate on + @param 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. + +Help on function get_kernel_version in module ida_kernwin: + +get_kernel_version(*args) -> 'size_t' + get_kernel_version() -> str + Get IDA kernel version (in a string like "5.1"). + +Help on function get_key_code in module ida_kernwin: + +get_key_code(*args) -> 'ushort' + get_key_code(keyname) -> ushort + Get keyboard key code by its name (ui_get_key_code) + + @param keyname: (C++: const char *) char const * + +Help on function get_navband_ea in module ida_kernwin: + +get_navband_ea(*args) -> 'ea_t' + get_navband_ea(pixel) -> ea_t + Translate the pixel position on the navigation band, into an address. + + @param pixel: (C++: int) + +Help on function get_navband_pixel in module ida_kernwin: + +get_navband_pixel(*args) -> 'bool *' + get_navband_pixel(ea) -> int + Maps an address, onto a pixel coordinate within the navigation band + + @param ea: The address to map + @return: a list [pixel, is_vertical] + +Help on function get_opnum in module ida_kernwin: + +get_opnum(*args) -> 'int' + get_opnum() -> int + Get current operand number, -1 means no operand (ui_get_opnum) + +Help on function get_output_curline in module ida_kernwin: + +get_output_curline(*args) -> 'qstring *' + get_output_curline(mouse) -> str + Get current line of output window (ui_get_output_curline). + + @param mouse: (C++: bool) current for mouse pointer? + @return: false if output contains no text + +Help on function get_output_cursor in module ida_kernwin: + +get_output_cursor(*args) -> '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 + +Help on function get_output_selected_text in module ida_kernwin: + +get_output_selected_text(*args) -> 'qstring *' + get_output_selected_text() -> str + Returns selected text from output window (ui_get_output_selected_text). + + @return: true if there is a selection + +Help on function get_place_class in module ida_kernwin: + +get_place_class(*args) -> '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(). + + @param out_flags: (C++: int *) output flags (can be nullptr) + @param out_sdk_version: (C++: int *) sdk version the place was created with (can be nullptr) + @param id: (C++: int) place class ID + @return: the place_t template, or nullptr if not found + +Help on function get_place_class_id in module ida_kernwin: + +get_place_class_id(*args) -> 'int' + get_place_class_id(name) -> int + Get the place class ID for the place that has been registered as 'name'. + + @param name: (C++: const char *) the class name + @return: the place class ID, or -1 if not found + +Help on function get_place_class_template in module ida_kernwin: + +get_place_class_template(*args) -> 'place_t const *' + get_place_class_template(id) -> place_t + See get_place_class() + + @param id: (C++: int) + +Help on function get_registered_actions in module ida_kernwin: + +get_registered_actions(*args) -> 'PyObject *' + get_registered_actions() -> [str, ...] + Get a list of all currently-registered actions + +Help on function get_screen_ea in module ida_kernwin: + +get_screen_ea(*args) -> 'ea_t' + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) + +Help on function get_synced_group in module ida_kernwin: + +get_synced_group(*args) -> 'synced_group_t const *' + get_synced_group(w) -> synced_group_t + Get the group of widgets/registers this view is synchronized with + + @param w: (C++: const TWidget *) the widget + @return: the group of widgets/registers, or nullptr + +Help on function get_tab_size in module ida_kernwin: + +get_tab_size(*args) -> 'int' + get_tab_size(path) -> int + Get the size of a tab in spaces (ui_get_tab_size). + + @param path: (C++: const char *) the path of the source view for which the tab size is requested. + * if nullptr, the default size is returned. + +Help on function get_user_input_event in module ida_kernwin: + +get_user_input_event(*args) -> '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) + + @param out: (C++: input_event_t *) the input event data + @return: false if we are not currently processing a user input event + +Help on function get_user_strlist_options in module ida_kernwin: + +get_user_strlist_options(*args) -> 'void' + get_user_strlist_options(out) + + @param out: strwinsetup_t * + +Help on function get_view_renderer_type in module ida_kernwin: + +get_view_renderer_type(*args) -> '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) + + @param v: (C++: TWidget *) + +Help on function get_viewer_place_type in module ida_kernwin: + +get_viewer_place_type(*args) -> '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). + + @param viewer: (C++: TWidget *) + +Help on function get_viewer_user_data in module ida_kernwin: + +get_viewer_user_data(*args) -> 'void *' + get_viewer_user_data(viewer) -> void * + Get the user data from a custom viewer (ui_get_viewer_user_data) + + @param viewer: (C++: TWidget *) + +Help on function get_widget_title in module ida_kernwin: + +get_widget_title(*args) -> 'qstring *' + get_widget_title(widget) -> str + Get the TWidget's title (ui_get_widget_title). + + @param widget: (C++: TWidget *) + +Help on function get_widget_type in module ida_kernwin: + +get_widget_type(*args) -> 'twidget_type_t' + get_widget_type(widget) -> twidget_type_t + Get the type of the TWidget * (ui_get_widget_type). + + @param widget: (C++: TWidget *) + +Help on function get_window_id in module ida_kernwin: + +get_window_id(*args) -> 'void *' + get_window_id(name=None) -> void * + Get the system-specific window ID (GUI version only) + + @param name: (C++: const char *) name of the window (nullptr means the main IDA window) + @return: the low-level window ID + +Help on function hide_wait_box in module ida_kernwin: + +hide_wait_box(*args) -> 'void' + hide_wait_box() + Hide the "Please wait dialog box". + +Help on class idaplace_t in module ida_kernwin: + +class idaplace_t(place_t) + | Proxy of C++ idaplace_t class. + | + | Method resolution order: + | idaplace_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idaplace_t(...) + | delete_idaplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ea + | ea + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on function info in module ida_kernwin: + +info(*args) -> 'void' + info(format) + + @param format: char const * + +Help on class input_event_keyboard_data_t in module ida_kernwin: + +class input_event_keyboard_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_keyboard_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_keyboard_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_keyboard_data_t(...) + | delete_input_event_keyboard_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | text + | text + | + | thisown + | The membership flag + +Help on class input_event_mouse_data_t in module ida_kernwin: + +class input_event_mouse_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_mouse_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_mouse_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_mouse_data_t(...) + | delete_input_event_mouse_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on class input_event_shortcut_data_t in module ida_kernwin: + +class input_event_shortcut_data_t(builtins.object) + | Proxy of C++ input_event_t::input_event_shortcut_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_shortcut_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_shortcut_data_t(...) + | delete_input_event_shortcut_data_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | action_name + | action_name + | + | thisown + | The membership flag + +Help on class input_event_t in module ida_kernwin: + +class input_event_t(builtins.object) + | Proxy of C++ input_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> input_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_input_event_t(...) + | delete_input_event_t(self) + | + | _source_as_size(self, *args) -> 'size_t' + | _source_as_size(self) -> size_t + | + | _target_as_size(self, *args) -> 'size_t' + | _target_as_size(self) -> size_t + | + | get_source_QEvent(self) + | + | get_target_QWidget(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | keyboard + | keyboard + | + | kind + | kind + | + | modifiers + | modifiers + | + | mouse + | mouse + | + | shortcut + | shortcut + | + | source + | source + | + | target + | target + | + | thisown + | The membership flag + +Help on function install_command_interpreter in module ida_kernwin: + +install_command_interpreter(*args) -> 'int' + install_command_interpreter(py_obj) -> int + Install command line interpreter (ui_install_cli) + + @param py_obj: PyObject * + +Help on function internal_register_place_class in module ida_kernwin: + +internal_register_place_class(*args) -> 'int' + internal_register_place_class(tmplate, flags, owner, sdk_version) -> int + + @param tmplate: place_t const * + @param flags: int + @param owner: plugin_t const * + @param sdk_version: int + +Help on function is_action_enabled in module ida_kernwin: + +is_action_enabled(*args) -> 'bool' + is_action_enabled(s) -> bool + Check if the given action state is one of AST_ENABLE*. + + @param s: (C++: action_state_t) enum action_state_t + +Help on function is_chooser_widget in module ida_kernwin: + +is_chooser_widget(*args) -> 'bool' + is_chooser_widget(t) -> bool + Does the given widget type specify a chooser widget? + + @param t: (C++: twidget_type_t) + +Help on function is_idaq in module ida_kernwin: + +is_idaq(*args) -> 'bool' + is_idaq() -> bool + Returns True or False depending if IDAPython is hosted by IDAQ + +Help on function is_idaview in module ida_kernwin: + +is_idaview(*args) -> 'bool' + is_idaview(v) -> bool + Is the given custom view an idaview? (ui_is_idaview) + + @param v: (C++: TWidget *) + +Help on function is_msg_inited in module ida_kernwin: + +is_msg_inited(*args) -> 'bool' + is_msg_inited() -> bool + Can we use msg() functions? + +Help on function is_place_class_ea_capable in module ida_kernwin: + +is_place_class_ea_capable(*args) -> 'bool' + is_place_class_ea_capable(id) -> bool + See get_place_class() + + @param id: (C++: int) + +Help on function is_refresh_requested in module ida_kernwin: + +is_refresh_requested(*args) -> 'bool' + is_refresh_requested(mask) -> bool + Get a refresh request state + + @param mask: (C++: uint64) Window refresh flags + @return: the state (set or cleared) + +Help on class jobj_wrapper_t in module ida_kernwin: + +class jobj_wrapper_t(builtins.object) + | Proxy of C++ jobj_wrapper_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | get_dict(self, *args) -> 'PyObject *' + | get_dict(self) -> dict + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function jumpto in module ida_kernwin: + +jumpto(*args) -> 'bool' + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success + jumpto(custom_viewer, place, x, y) -> bool + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int + +Help on function l_compare2 in module ida_kernwin: + +l_compare2(*args) -> 'int' + l_compare2(t1, t2, ud) -> int + + @param t1: place_t const * + @param t2: place_t const * + @param ud: void * + +Help on class line_rendering_output_entries_refs_t in module ida_kernwin: + +class line_rendering_output_entries_refs_t(builtins.object) + | Proxy of C++ qvector< line_rendering_output_entry_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __getitem__(self, *args) -> 'line_rendering_output_entry_t *const &' + | __getitem__(self, i) -> line_rendering_output_entry_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | __init__(self, x) -> line_rendering_output_entries_refs_t + | + | @param x: qvector< line_rendering_output_entry_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: line_rendering_output_entry_t *const & + | + | __swig_destroy__ = delete_line_rendering_output_entries_refs_t(...) + | delete_line_rendering_output_entries_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) -> 'void' + | _internal_push_back(self, e) + | + | Parameters + | ---------- + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | at(self, *args) -> 'line_rendering_output_entry_t *const &' + | at(self, _idx) -> line_rendering_output_entry_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param first: qvector< line_rendering_output_entry_t * >::iterator + | @param last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: line_rendering_output_entry_t *const & + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | + | @param x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: line_rendering_output_entry_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: line_rendering_output_entry_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | + | @param it: qvector< line_rendering_output_entry_t * >::iterator + | @param x: line_rendering_output_entry_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, e) + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: line_rendering_output_entry_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< line_rendering_output_entry_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class line_rendering_output_entry_t in module ida_kernwin: + +class line_rendering_output_entry_t(builtins.object) + | Proxy of C++ line_rendering_output_entry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | + | @param _line: twinline_t const * + | @param _cpx: int + | @param _nchars: int + | @param _flags: uint32 + | @param _bg_color: bgcolor_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: line_rendering_output_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_line_rendering_output_entry_t(...) + | delete_line_rendering_output_entry_t(self) + | + | is_bg_color_direct(self, *args) -> 'bool' + | is_bg_color_direct(self) -> bool + | + | is_bg_color_empty(self, *args) -> 'bool' + | is_bg_color_empty(self) -> bool + | + | is_bg_color_key(self, *args) -> 'bool' + | is_bg_color_key(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bg_color + | bg_color + | + | cpx + | cpx + | + | flags + | flags + | + | line + | line + | + | nchars + | nchars + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class linearray_t in module ida_kernwin: + +class linearray_t(builtins.object) + | Proxy of C++ linearray_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ud) -> linearray_t + | + | @param _ud: void * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_linearray_t(...) + | delete_linearray_t(self) + | + | beginning(self, *args) -> 'bool' + | beginning(self) -> bool + | Are we at the beginning? + | + | down(self, *args) -> 'qstring const *' + | down(self) -> qstring const * + | Get a line from down direction. place is ok BEFORE + | + | ending(self, *args) -> 'bool' + | ending(self) -> bool + | + | get_bg_color(self, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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, *args) -> '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. + | + | @param 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, *args) -> 'void' + | set_userdata(self, userd) + | Change the user data. + | + | @param userd: (C++: void *) + | + | up(self, *args) -> 'qstring const *' + | up(self) -> qstring const * + | Get a line from up direction. place is ok AFTER + | + | userdata(self, *args) -> 'void *' + | userdata(self) -> void * + | Get pointer to user data. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class lines_rendering_input_t in module ida_kernwin: + +class lines_rendering_input_t(builtins.object) + | Proxy of C++ lines_rendering_input_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_input_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_input_t(...) + | delete_lines_rendering_input_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | sections_lines + | sections_lines + | + | sync_group + | sync_group + | + | thisown + | The membership flag + +Help on class lines_rendering_output_t in module ida_kernwin: + +class lines_rendering_output_t(builtins.object) + | Proxy of C++ lines_rendering_output_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: lines_rendering_output_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lines_rendering_output_t(...) + | delete_lines_rendering_output_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: lines_rendering_output_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | entries + | entries + | + | flags + | flags + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function load_custom_icon in module ida_kernwin: + +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 + +Help on function load_dbg_dbginfo in module ida_kernwin: + +load_dbg_dbginfo(*args) -> 'bool' + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool + Load debugging information from a file. + + @param path: (C++: const char *) path to file + @param li: (C++: linput_t *) loader input. if nullptr, check DBG_NAME_KEY + @param base: (C++: ea_t) loading address + @param verbose: (C++: bool) dump status to message window + +Help on function lookup_key_code in module ida_kernwin: + +lookup_key_code(*args) -> 'ushort' + lookup_key_code(key, shift, is_qt) -> ushort + Get shortcut code previously created by ui_get_key_code. + + @param key: (C++: int) key constant + @param shift: (C++: int) modifiers + @param is_qt: (C++: bool) are we using gui version? + +Help on function msg in module ida_kernwin: + +msg(*args) -> '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. + + @param message: message to print (formatting is done in Python) + + This function can be used to debug IDAPython scripts + +Help on function msg_clear in module ida_kernwin: + +msg_clear(*args) -> 'void' + msg_clear() + Clear the "Output" window. + +Help on function msg_get_lines in module ida_kernwin: + +msg_get_lines(*args) -> 'PyObject *' + msg_get_lines(count=-1) -> [str, ...] + Retrieve the last 'count' lines from the output window, in reverse order (from + most recent, to least recent) + + @param count: (C++: int) The number of lines to retrieve. -1 means: all + +Help on function msg_save in module ida_kernwin: + +msg_save(*args) -> 'bool' + msg_save(path) -> bool + Save the "Output" window contents into a file + + @param 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 + +Help on function nomem in module ida_kernwin: + +nomem(*args) -> 'void' + nomem(format) + + @param format: char const * + +Help on function open_bookmarks_window in module ida_kernwin: + +open_bookmarks_window(*args) -> 'TWidget *' + open_bookmarks_window(w) -> TWidget * + Open the bookmarks window (ui_open_builtin). + + @param 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 + +Help on function open_bpts_window in module ida_kernwin: + +open_bpts_window(*args) -> 'TWidget *' + open_bpts_window(ea) -> TWidget * + Open the breakpoints window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_calls_window in module ida_kernwin: + +open_calls_window(*args) -> 'TWidget *' + open_calls_window(ea) -> TWidget * + Open the function calls window (ui_open_builtin). + + @param ea: (C++: ea_t) + @return: pointer to resulting window + +Help on function open_disasm_window in module ida_kernwin: + +open_disasm_window(*args) -> 'TWidget *' + open_disasm_window(window_title, ranges=None) -> TWidget * + Open a disassembly view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @param ranges: (C++: const rangevec_t *) if != nullptr, then display a flow chart with the specified + ranges + @return: pointer to resulting window + +Help on function open_enums_window in module ida_kernwin: + +open_enums_window(*args) -> 'TWidget *' + open_enums_window(const_id=BADADDR) -> TWidget * + Open the enums window (ui_open_builtin). + + @param const_id: (C++: tid_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_exports_window in module ida_kernwin: + +open_exports_window(*args) -> 'TWidget *' + open_exports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_form in module ida_kernwin: + +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 + +Help on function open_frame_window in module ida_kernwin: + +open_frame_window(*args) -> 'TWidget *' + open_frame_window(pfn, offset) -> TWidget * + Open the frame window for the given function (ui_open_builtin). + + @param pfn: (C++: func_t *) function to analyze + @param 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 + +Help on function open_funcs_window in module ida_kernwin: + +open_funcs_window(*args) -> 'TWidget *' + open_funcs_window(ea) -> TWidget * + Open the 'Functions' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_hexdump_window in module ida_kernwin: + +open_hexdump_window(*args) -> 'TWidget *' + open_hexdump_window(window_title) -> TWidget * + Open a hexdump view (ui_open_builtin). + + @param window_title: (C++: const char *) title of view to open + @return: pointer to resulting window + +Help on function open_imports_window in module ida_kernwin: + +open_imports_window(*args) -> 'TWidget *' + open_imports_window(ea) -> TWidget * + Open the exports window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_loctypes_window in module ida_kernwin: + +open_loctypes_window(*args) -> 'TWidget *' + open_loctypes_window(ordinal) -> TWidget * + Open the local types window (ui_open_builtin). + + @param ordinal: (C++: int) ordinal of type to select by default + @return: pointer to resulting window + +Help on function open_modules_window in module ida_kernwin: + +open_modules_window(*args) -> 'TWidget *' + open_modules_window() -> TWidget * + Open the modules window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_names_window in module ida_kernwin: + +open_names_window(*args) -> 'TWidget *' + open_names_window(ea) -> TWidget * + Open the names window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_navband_window in module ida_kernwin: + +open_navband_window(*args) -> 'TWidget *' + open_navband_window(ea, zoom) -> TWidget * + Open the navigation band window (ui_open_builtin). + + @param ea: (C++: ea_t) sets the address of the navband arrow + @param zoom: (C++: int) sets the navband zoom level + @return: pointer to resulting window + +Help on function open_notepad_window in module ida_kernwin: + +open_notepad_window(*args) -> 'TWidget *' + open_notepad_window() -> TWidget * + Open the notepad window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_problems_window in module ida_kernwin: + +open_problems_window(*args) -> 'TWidget *' + open_problems_window(ea) -> TWidget * + Open the problems window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_segments_window in module ida_kernwin: + +open_segments_window(*args) -> 'TWidget *' + open_segments_window(ea) -> TWidget * + Open the segments window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_segregs_window in module ida_kernwin: + +open_segregs_window(*args) -> 'TWidget *' + open_segregs_window(ea) -> TWidget * + Open the segment registers window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on function open_selectors_window in module ida_kernwin: + +open_selectors_window(*args) -> 'TWidget *' + open_selectors_window() -> TWidget * + Open the selectors window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_signatures_window in module ida_kernwin: + +open_signatures_window(*args) -> 'TWidget *' + open_signatures_window() -> TWidget * + Open the signatures window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_stack_window in module ida_kernwin: + +open_stack_window(*args) -> 'TWidget *' + open_stack_window() -> TWidget * + Open the call stack window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_strings_window in module ida_kernwin: + +open_strings_window(*args) -> 'TWidget *' + open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + Open the 'Strings' window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range + @param selend: (C++: ea_t) + @return: pointer to resulting window + +Help on function open_structs_window in module ida_kernwin: + +open_structs_window(*args) -> 'TWidget *' + open_structs_window(id=BADADDR, offset=0) -> TWidget * + Open the structs window (ui_open_builtin). + + @param id: (C++: tid_t) index of entry to select by default + @param offset: (C++: uval_t) offset where the cursor is placed + @return: pointer to resulting window + +Help on function open_threads_window in module ida_kernwin: + +open_threads_window(*args) -> 'TWidget *' + open_threads_window() -> TWidget * + Open the threads window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_tils_window in module ida_kernwin: + +open_tils_window(*args) -> 'TWidget *' + open_tils_window() -> TWidget * + Open the type libraries window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_trace_window in module ida_kernwin: + +open_trace_window(*args) -> 'TWidget *' + open_trace_window() -> TWidget * + Open the tracing window (ui_open_builtin). + + @return: pointer to resulting window + +Help on function open_url in module ida_kernwin: + +open_url(*args) -> 'void' + open_url(url) + Open the given url (ui_open_url) + + @param url: (C++: const char *) char const * + +Help on function open_xrefs_window in module ida_kernwin: + +open_xrefs_window(*args) -> 'TWidget *' + open_xrefs_window(ea) -> TWidget * + Open the cross references window (ui_open_builtin). + + @param ea: (C++: ea_t) index of entry to select by default + @return: pointer to resulting window + +Help on class place_t in module ida_kernwin: + +class place_t(builtins.object) + | Proxy of C++ place_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_place_t(...) + | delete_place_t(self) + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + | + | thisown + | The membership flag + +Help on function place_t_as_enumplace_t in module ida_kernwin: + +place_t_as_enumplace_t(*args) -> 'enumplace_t *' + place_t_as_enumplace_t(p) -> enumplace_t + + @param p: place_t * + +Help on function place_t_as_idaplace_t in module ida_kernwin: + +place_t_as_idaplace_t(*args) -> 'idaplace_t *' + place_t_as_idaplace_t(p) -> idaplace_t + + @param p: place_t * + +Help on function place_t_as_simpleline_place_t in module ida_kernwin: + +place_t_as_simpleline_place_t(*args) -> 'simpleline_place_t *' + place_t_as_simpleline_place_t(p) -> simpleline_place_t + + @param p: place_t * + +Help on function place_t_as_structplace_t in module ida_kernwin: + +place_t_as_structplace_t(*args) -> 'structplace_t *' + place_t_as_structplace_t(p) -> structplace_t + + @param p: place_t * + +Help on function plgform_close in module ida_kernwin: + +plgform_close(*args) -> 'void' + plgform_close(py_link, options) + + @param py_link: PyObject * + @param options: int + +Help on function plgform_get_widget in module ida_kernwin: + +plgform_get_widget(*args) -> 'TWidget *' + plgform_get_widget(py_link) -> TWidget * + + @param py_link: PyObject * + +Help on function plgform_new in module ida_kernwin: + +plgform_new(*args) -> 'PyObject *' + plgform_new() -> PyObject * + +Help on function plgform_show in module ida_kernwin: + +plgform_show(*args) -> 'bool' + plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool + + @param py_link: PyObject * + @param py_obj: PyObject * + @param caption: char const * + @param options: int + +Help on function process_ui_action in module ida_kernwin: + +process_ui_action(*args) -> 'bool' + process_ui_action(name, flags=0) -> bool + Invokes an IDA UI action by name + + @param name: action name + @param flags: int + @return: Boolean + +Help on function py_chooser_base_t_get_row in module ida_kernwin: + +py_chooser_base_t_get_row(*args) -> 'PyObject *' + py_chooser_base_t_get_row(chobj, n) -> PyObject * + + @param chobj: chooser_base_t const * + @param n: size_t + +Help on function py_get_ask_form in module ida_kernwin: + +py_get_ask_form(*args) -> 'size_t' + py_get_ask_form() -> size_t + +Help on function py_get_open_form in module ida_kernwin: + +py_get_open_form(*args) -> 'size_t' + py_get_open_form() -> size_t + +Help on function py_load_custom_icon_data in module ida_kernwin: + +py_load_custom_icon_data(*args) -> 'int' + py_load_custom_icon_data(data, format) -> int + + @param data: PyObject * + @param format: char const * + +Help on function py_load_custom_icon_fn in module ida_kernwin: + +py_load_custom_icon_fn(*args) -> 'int' + py_load_custom_icon_fn(filename) -> int + + @param filename: char const * + +Help on function py_register_compiled_form in module ida_kernwin: + +py_register_compiled_form(*args) -> 'void' + py_register_compiled_form(py_form) + + @param py_form: PyObject * + +Help on function py_unregister_compiled_form in module ida_kernwin: + +py_unregister_compiled_form(*args) -> 'void' + py_unregister_compiled_form(py_form) + + @param py_form: PyObject * + +Help on function pyidag_bind in module ida_kernwin: + +pyidag_bind(*args) -> 'bool' + pyidag_bind(_self) -> bool + + @param self: PyObject * + +Help on function pyidag_unbind in module ida_kernwin: + +pyidag_unbind(*args) -> 'bool' + pyidag_unbind(_self) -> bool + + @param self: PyObject * + +Help on function pyscv_add_line in module ida_kernwin: + +pyscv_add_line(*args) -> 'bool' + pyscv_add_line(py_this, py_sl) -> bool + + @param py_this: PyObject * + @param py_sl: PyObject * + +Help on function pyscv_clear_lines in module ida_kernwin: + +pyscv_clear_lines(*args) -> 'PyObject *' + pyscv_clear_lines(py_this) -> PyObject * + + @param py_this: PyObject * + +Help on function pyscv_close in module ida_kernwin: + +pyscv_close(*args) -> 'void' + pyscv_close(py_this) + + @param py_this: PyObject * + +Help on function pyscv_count in module ida_kernwin: + +pyscv_count(*args) -> 'size_t' + pyscv_count(py_this) -> size_t + + @param py_this: PyObject * + +Help on function pyscv_del_line in module ida_kernwin: + +pyscv_del_line(*args) -> 'bool' + pyscv_del_line(py_this, nline) -> bool + + @param py_this: PyObject * + @param nline: size_t + +Help on function pyscv_edit_line in module ida_kernwin: + +pyscv_edit_line(*args) -> 'bool' + pyscv_edit_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * + +Help on function pyscv_get_current_line in module ida_kernwin: + +pyscv_get_current_line(*args) -> 'PyObject *' + pyscv_get_current_line(py_this, mouse, notags) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + @param notags: bool + +Help on function pyscv_get_current_word in module ida_kernwin: + +pyscv_get_current_word(*args) -> 'PyObject *' + pyscv_get_current_word(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + +Help on function pyscv_get_line in module ida_kernwin: + +pyscv_get_line(*args) -> 'PyObject *' + pyscv_get_line(py_this, nline) -> PyObject * + + @param py_this: PyObject * + @param nline: size_t + +Help on function pyscv_get_pos in module ida_kernwin: + +pyscv_get_pos(*args) -> 'PyObject *' + pyscv_get_pos(py_this, mouse) -> PyObject * + + @param py_this: PyObject * + @param mouse: bool + +Help on function pyscv_get_selection in module ida_kernwin: + +pyscv_get_selection(*args) -> 'PyObject *' + pyscv_get_selection(py_this) -> PyObject * + + @param py_this: PyObject * + +Help on function pyscv_get_widget in module ida_kernwin: + +pyscv_get_widget(*args) -> 'TWidget *' + pyscv_get_widget(py_this) -> TWidget * + + @param py_this: PyObject * + +Help on function pyscv_init in module ida_kernwin: + +pyscv_init(*args) -> 'PyObject *' + pyscv_init(py_link, title) -> PyObject * + + @param py_link: PyObject * + @param title: char const * + +Help on function pyscv_insert_line in module ida_kernwin: + +pyscv_insert_line(*args) -> 'bool' + pyscv_insert_line(py_this, nline, py_sl) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param py_sl: PyObject * + +Help on function pyscv_is_focused in module ida_kernwin: + +pyscv_is_focused(*args) -> 'bool' + pyscv_is_focused(py_this) -> bool + + @param py_this: PyObject * + +Help on function pyscv_jumpto in module ida_kernwin: + +pyscv_jumpto(*args) -> 'bool' + pyscv_jumpto(py_this, ln, x, y) -> bool + + @param py_this: PyObject * + @param ln: size_t + @param x: int + @param y: int + +Help on function pyscv_patch_line in module ida_kernwin: + +pyscv_patch_line(*args) -> 'bool' + pyscv_patch_line(py_this, nline, offs, value) -> bool + + @param py_this: PyObject * + @param nline: size_t + @param offs: size_t + @param value: int + +Help on function pyscv_refresh in module ida_kernwin: + +pyscv_refresh(*args) -> 'bool' + pyscv_refresh(py_this) -> bool + + @param py_this: PyObject * + +Help on function pyscv_show in module ida_kernwin: + +pyscv_show(*args) -> 'bool' + pyscv_show(py_this) -> bool + + @param py_this: PyObject * + +Help on function qcleanline in module ida_kernwin: + +qcleanline(*args) -> 'qstring *' + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str + Performs some cleanup operations to a line. + + @param 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 + @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM + @return: length of line + +Help on class quick_widget_commands_t in module ida_kernwin: + +class quick_widget_commands_t(builtins.object) + | # ---------------------------------------------------------------------- + | # This provides an alternative to register_action()+attach_action_to_popup_menu() + | + | Methods defined here: + | + | __init__(self, callback) + | Initialize self. See help(type(self)) for accurate signature. + | + | add(self, caption, flags, menu_index, icon, emb, shortcut) + | + | populate_popup(self, widget, popup) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | _ah_t = <class 'ida_kernwin.quick_widget_commands_t._ah_t'> + | + | + | _cmd_t = <class 'ida_kernwin.quick_widget_commands_t._cmd_t'> + +Help on function read_range_selection in module ida_kernwin: + +read_range_selection(*args) -> '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() + + @param 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 + +Help on function read_selection in module ida_kernwin: + +read_selection(*args) -> 'bool' + read_selection(v, p1, p2) -> bool + Read the user selection, and store its information in p0 (from) and p1 (to). + + This can be used as follows: + + + >>> p0 = idaapi.twinpos_t() + p1 = idaapi.twinpos_t() + view = idaapi.get_current_viewer() + idaapi.read_selection(view, p0, p1) + + + At that point, p0 and p1 hold information for the selection. + But, the 'at' property of p0 and p1 is not properly typed. + To specialize it, call #place() on it, passing it the view + they were retrieved from. Like so: + + + >>> place0 = p0.place(view) + place1 = p1.place(view) + + + This will effectively "cast" the place into a specialized type, + holding proper information, depending on the view type (e.g., + disassembly, structures, enums, ...) + + @param view: The view to retrieve the selection for. + @param p1: Storage for the "to" part of the selection. + @param p1: Storage for the "to" part of the selection. + @return: a bool value indicating success. + +Help on function refresh_chooser in module ida_kernwin: + +refresh_chooser(*args) -> 'bool' + refresh_chooser(title) -> bool + Mark a non-modal custom chooser for a refresh (ui_refresh_chooser). + + @param title: (C++: const char *) title of chooser + @return: success + +Help on function refresh_choosers in module ida_kernwin: + +refresh_choosers(*args) -> 'void' + refresh_choosers() + +Help on function refresh_custom_viewer in module ida_kernwin: + +refresh_custom_viewer(*args) -> 'void' + refresh_custom_viewer(custom_viewer) + Refresh custom ida viewer (ui_refresh_custom_viewer) + + @param custom_viewer: (C++: TWidget *) + +Help on function refresh_idaview in module ida_kernwin: + +refresh_idaview(*args) -> 'void' + refresh_idaview() + Refresh marked windows (ui_refreshmarked) + +Help on function refresh_idaview_anyway in module ida_kernwin: + +refresh_idaview_anyway(*args) -> 'void' + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead + +Help on function refresh_navband in module ida_kernwin: + +refresh_navband(*args) -> 'void' + refresh_navband(force) + Refresh navigation band if changed (ui_refresh_navband). + + @param force: (C++: bool) refresh regardless + +Help on function register_action in module ida_kernwin: + +register_action(*args) -> '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. + + @param desc: (C++: const action_desc_t &) action to register + @return: success + +Help on function register_addon in module ida_kernwin: + +register_addon(*args) -> '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 + + @param info: (C++: const addon_info_t *) addon_info_t const * + +Help on function register_and_attach_to_menu in module ida_kernwin: + +register_and_attach_to_menu(*args) -> '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. + + @param menupath: (C++: const char *) char const * + @param name: (C++: const char *) char const * + @param label: (C++: const char *) char const * + @param shortcut: (C++: const char *) char const * + @param flags: (C++: int) + @param handler: (C++: action_handler_t *) + @param owner: (C++: void *) + @param action_desc_t_flags: (C++: int) + +Help on function register_timer in module ida_kernwin: + +register_timer(*args) -> 'PyObject *' + register_timer(interval, py_callback) -> PyCapsule + Register a timer + + @param interval: Interval in milliseconds + @param 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 + +Help on function remove_command_interpreter in module ida_kernwin: + +remove_command_interpreter(*args) -> 'void' + remove_command_interpreter(cli_idx) + Remove command line interpreter (ui_install_cli) + + @param cli_idx: int + +Help on class renderer_pos_info_t in module ida_kernwin: + +class renderer_pos_info_t(builtins.object) + | Proxy of C++ renderer_pos_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & + | + | __init__(self, *args) + | __init__(self) -> renderer_pos_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: renderer_pos_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_renderer_pos_info_t(...) + | delete_renderer_pos_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cx + | cx + | + | cy + | cy + | + | node + | node + | + | sx + | sx + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function repaint_custom_viewer in module ida_kernwin: + +repaint_custom_viewer(*args) -> 'void' + repaint_custom_viewer(custom_viewer) + Repaint the given widget immediately (ui_repaint_qwidget) + + @param custom_viewer: (C++: TWidget *) + +Help on function replace_wait_box in module ida_kernwin: + +replace_wait_box(*args) -> 'void' + replace_wait_box(format) + Replace the label of "Please wait dialog box". + + @param format: (C++: const char *) char const * + +Help on function request_refresh in module ida_kernwin: + +request_refresh(*args) -> 'void' + request_refresh(mask, cnd=True) + Request a refresh of a builtin window. + + @param mask: (C++: uint64) Window refresh flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function restore_database_snapshot in module ida_kernwin: + +restore_database_snapshot(*args) -> '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. + + @param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) + @param pyfunc_or_none: PyObject * + @param 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. + +Help on class section_lines_refs_t in module ida_kernwin: + +class section_lines_refs_t(builtins.object) + | Proxy of C++ qvector< twinline_t const * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) -> 'twinline_t const *const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | __init__(self, x) -> section_lines_refs_t + | + | @param x: qvector< twinline_t const * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const *const & + | + | __swig_destroy__ = delete_section_lines_refs_t(...) + | delete_section_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: twinline_t const *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | at(self, *args) -> 'twinline_t const *const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t const * >::iterator + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | + | @param first: qvector< twinline_t const * >::iterator + | @param last: qvector< twinline_t const * >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: twinline_t const *const & + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | + | @param x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: twinline_t const *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t const ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | + | @param it: qvector< twinline_t const * >::iterator + | @param x: twinline_t const *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t const *&' + | push_back(self, x) + | + | @param x: twinline_t const *const & + | + | push_back(self) -> twinline_t const *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t const * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class sections_lines_refs_t in module ida_kernwin: + +class sections_lines_refs_t(builtins.object) + | Proxy of C++ qvector< section_lines_refs_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) -> 'section_lines_refs_t const &' + | __getitem__(self, i) -> section_lines_refs_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | __init__(self, x) -> sections_lines_refs_t + | + | @param x: qvector< section_lines_refs_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: section_lines_refs_t const & + | + | __swig_destroy__ = delete_sections_lines_refs_t(...) + | delete_sections_lines_refs_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: section_lines_refs_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | at(self, *args) -> 'section_lines_refs_t const &' + | at(self, _idx) -> section_lines_refs_t + | + | @param _idx: size_t + | + | back = _qvector_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, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< section_lines_refs_t >::iterator + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | + | @param first: qvector< section_lines_refs_t >::iterator + | @param last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *args) -> '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 + | + | @param x: section_lines_refs_t const & + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | + | @param x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=section_lines_refs_t()) + | + | @param x: section_lines_refs_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: section_lines_refs_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: section_lines_refs_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | + | @param it: qvector< section_lines_refs_t >::iterator + | @param x: section_lines_refs_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'section_lines_refs_t &' + | push_back(self, x) + | + | @param x: section_lines_refs_t const & + | + | push_back(self) -> section_lines_refs_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: section_lines_refs_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< section_lines_refs_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function set_cancelled in module ida_kernwin: + +set_cancelled(*args) -> 'void' + set_cancelled() + Set "Cancelled" flag (ui_set_cancelled) + +Help on function set_code_viewer_handler in module ida_kernwin: + +set_code_viewer_handler(*args) -> '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). + + @param code_viewer: (C++: TWidget *) the code viewer + @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t + @param 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 + +Help on function set_code_viewer_is_source in module ida_kernwin: + +set_code_viewer_is_source(*args) -> '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). + + @param code_viewer: (C++: TWidget *) + +Help on function set_code_viewer_line_handlers in module ida_kernwin: + +set_code_viewer_line_handlers(*args) -> '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 + + @param code_viewer: (C++: TWidget *) + @param click_handler: (C++: code_viewer_lines_click_t *) + @param popup_handler: (C++: code_viewer_lines_click_t *) + @param dblclick_handler: (C++: code_viewer_lines_click_t *) + @param drawicon_handler: (C++: code_viewer_lines_icon_t *) + @param linenum_handler: (C++: code_viewer_lines_linenum_t *) + +Help on function set_code_viewer_lines_alignment in module ida_kernwin: + +set_code_viewer_lines_alignment(*args) -> 'bool' + set_code_viewer_lines_alignment(code_viewer, align) -> bool + Set alignment for lines in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param align: (C++: int) + +Help on function set_code_viewer_lines_icon_margin in module ida_kernwin: + +set_code_viewer_lines_icon_margin(*args) -> '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). + + @param code_viewer: (C++: TWidget *) + @param margin: (C++: int) + +Help on function set_code_viewer_lines_radix in module ida_kernwin: + +set_code_viewer_lines_radix(*args) -> 'bool' + set_code_viewer_lines_radix(code_viewer, radix) -> bool + Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param radix: (C++: int) + +Help on function set_code_viewer_user_data in module ida_kernwin: + +set_code_viewer_user_data(*args) -> 'bool' + set_code_viewer_user_data(code_viewer, ud) -> bool + Set the user data on a code viewer (ui_set_custom_viewer_handler). + + @param code_viewer: (C++: TWidget *) + @param ud: (C++: void *) + +Help on function set_custom_viewer_qt_aware in module ida_kernwin: + +set_custom_viewer_qt_aware(*args) -> 'bool' + set_custom_viewer_qt_aware(custom_viewer) -> bool + Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler) + + @param custom_viewer: (C++: TWidget *) + +Help on function set_dock_pos in module ida_kernwin: + +set_dock_pos(*args) -> 'bool' + set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool + Sets the dock orientation of a window relatively to another window. + + Use the left, top, right, bottom parameters if DP_FLOATING is used, + or if you want to specify the width of docked windows. + + @param src_ctrl: char const * + @param dest_ctrl: char const * + @param orient: One of DP_XXXX constants + @param left: int + @param top: int + @param right: int + @param bottom: int + @return: Boolean + + Example: + set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window + +Help on function set_highlight in module ida_kernwin: + +set_highlight(*args) -> 'bool' + set_highlight(viewer, str, flags) -> bool + Set the highlighted identifier in the viewer (ui_set_highlight). + + @param viewer: (C++: TWidget *) the viewer + @param str: (C++: const char *) the text to match, or nullptr to remove current + @param flags: (C++: int) combination of HIF_... bits (see set_highlight flags) + @return: false if an error occurred + +Help on function set_nav_colorizer in module ida_kernwin: + +set_nav_colorizer(*args) -> '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) + + @param new_py_colorizer: PyObject * + +Help on function set_view_renderer_type in module ida_kernwin: + +set_view_renderer_type(*args) -> 'void' + set_view_renderer_type(v, rt) + Set the type of renderer to use in a view (ui_set_renderer_type) + + @param v: (C++: TWidget *) + @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t + +Help on function show_wait_box in module ida_kernwin: + +show_wait_box(*args) -> '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. + + @param message: char const * + +Help on class simplecustviewer_t in module ida_kernwin: + +class simplecustviewer_t(builtins.object) + | The base class for implementing simple custom viewers + | + | Methods defined here: + | + | 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 + | + | @param 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. + | @param mouse: Current line at mouse pos + | @param 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 + | @param 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 + | @param 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. + | @param 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 close, then it will call Create() for you + | @return: Boolean + | + | __init__(self) + | Initialize self. See help(type(self)) for accurate signature. + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | _simplecustviewer_t__make_sl_arg = __make_sl_arg(line, fgcolor=None, bgcolor=None) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | UI_Hooks_Trampoline = <class 'ida_kernwin.simplecustviewer_t.UI_Hooks_... + | Proxy of C++ UI_Hooks class. + +Help on class simpleline_place_t in module ida_kernwin: + +class simpleline_place_t(place_t) + | Proxy of C++ simpleline_place_t class. + | + | Method resolution order: + | simpleline_place_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simpleline_place_t(...) + | delete_simpleline_place_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | n + | n + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on class simpleline_t in module ida_kernwin: + +class simpleline_t(builtins.object) + | Proxy of C++ simpleline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> simpleline_t + | __init__(self, c, str) -> simpleline_t + | + | @param c: color_t + | @param str: char const * + | + | __init__(self, str) -> simpleline_t + | + | @param str: char const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simpleline_t(...) + | delete_simpleline_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bgcolor + | bgcolor + | + | color + | color + | + | line + | line + | + | thisown + | The membership flag + +Help on function str2ea in module ida_kernwin: + +str2ea(*args) -> 'ea_t' + str2ea(str, screenEA=BADADDR) -> ea_t + Converts a string express to EA. The expression evaluator may be called as well. + + @param str: char const * + @param screenEA: ea_t + @return: BADADDR or address value + +Help on function str2user in module ida_pro: + +str2user(*args) -> 'PyObject *' + str2user(str) -> str or None + Insert C-style escape characters to string + + @param str: char const * + @return: new string with escape characters inserted + +Help on function strarray in module ida_kernwin: + +strarray(*args) -> '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 "". + + @param array: (C++: const strarray_t *) strarray_t const * + @param array_size: (C++: size_t) + @param code: (C++: int) + +Help on class strarray_t in module ida_kernwin: + +class strarray_t(builtins.object) + | Proxy of C++ strarray_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> strarray_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_strarray_t(...) + | delete_strarray_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | code + | code + | + | text + | text + | + | thisown + | The membership flag + +Help on class structplace_t in module ida_kernwin: + +class structplace_t(place_t) + | Proxy of C++ structplace_t class. + | + | Method resolution order: + | structplace_t + | place_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_structplace_t(...) + | delete_structplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | idx + | idx + | + | offset + | offset + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from place_t: + | + | _print(self, *args) -> 'void' + | _print(self, ud) + | + | Parameters + | ---------- + | ud: void * + | + | adjust(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | beginning(self, *args) -> 'bool' + | beginning(self, ud) -> bool + | Are we at the first displayable object?. + | + | @param 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, *args) -> 'place_t *' + | clone(self) -> place_t + | Clone the location. + | + | @return: a pointer to a copy of the current location in dynamic memory + | + | compare(self, *args) -> 'int' + | compare(self, t2) -> int + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | + | @param t2: (C++: const place_t *) place_t const * + | + | compare2(self, *args) -> '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. + | + | @param t2: (C++: const place_t *) the place to compare this one to. + | @param arg3: void * + | + | copyfrom(self, *args) -> 'void' + | copyfrom(self, _from) + | Copy the specified location object to the current object. + | + | @param from: (C++: const place_t *) place_t const * + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, _in) -> bool + | De-serialize into this instance. 'pptr' should be incremented by as many bytes + | as de-serialization consumed. + | + | @param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. + | @return: whether de-serialization was successful + | + | ending(self, *args) -> 'bool' + | ending(self, ud) -> bool + | Are we at the last displayable object?. + | + | @param 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, *args) -> '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()'. + | + | @param 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, *args) -> 'PyObject *' + | generate(self, ud, maxsize) -> ([str, ...], int, int, int) + | Generate text lines for the current location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param maxsize: (C++: int) the maximum number of lines to generate + | @return: number of generated lines + | + | id(self, *args) -> 'int' + | id(self) -> int + | Get the place's ID (i.e., the value returned by register_place_class()) + | + | @return: the id + | + | leave(self, *args) -> 'void' + | leave(self, arg2) + | Leave this place, possibly 'hiding' a section of text that was previously + | expanded (at enter()-time.) + | + | @param arg2: uint32 + | + | makeplace(self, *args) -> '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. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @param x: (C++: uval_t) number to map + | @param lnnum: (C++: int) line number to initialize 'lnnum' + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES + | + | name(self, *args) -> '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, *args) -> 'bool' + | next(self, ud) -> bool + | Move to the next displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | prev(self, *args) -> 'bool' + | prev(self, ud) -> bool + | Move to the previous displayable location. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | @return: success + | + | rebase(self, *args) -> 'bool' + | rebase(self, arg2) -> bool + | Rebase the place instance + | + | @param arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise + | + | serialize(self, *args) -> '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, *args) -> 'ea_t' + | toea(self) -> ea_t + | Map the location to an ea_t. + | + | @return: the corresponding ea_t, or BADADDR; + | + | touval(self, *args) -> 'uval_t' + | touval(self, ud) -> uval_t + | Map the location to a number. This mapping is used to draw the vertical + | scrollbar. + | + | @param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t + | + | ---------------------------------------------------------------------- + | Static methods inherited from place_t: + | + | as_enumplace_t(*args) -> 'enumplace_t *' + | as_enumplace_t(p) -> enumplace_t + | + | @param p: place_t * + | + | as_idaplace_t(*args) -> 'idaplace_t *' + | as_idaplace_t(p) -> idaplace_t + | + | @param p: place_t * + | + | as_simpleline_place_t(*args) -> 'simpleline_place_t *' + | as_simpleline_place_t(p) -> simpleline_place_t + | + | @param p: place_t * + | + | as_structplace_t(*args) -> 'structplace_t *' + | as_structplace_t(p) -> structplace_t + | + | @param p: place_t * + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from place_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | lnnum + | lnnum + +Help on class sync_source_t in module ida_kernwin: + +class sync_source_t(builtins.object) + | Proxy of C++ sync_source_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, _o) -> bool + | + | @param _o: sync_source_t const & + | + | __init__(self, *args) + | __init__(self, _view) -> sync_source_t + | + | @param _view: TWidget const * + | + | __init__(self, _regname) -> sync_source_t + | + | @param _regname: char const * + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, _o) -> bool + | + | @param _o: sync_source_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sync_source_t(...) + | delete_sync_source_t(self) + | + | get_register(self, *args) -> 'char const *' + | get_register(self) -> char const * + | + | get_widget(self, *args) -> 'TWidget const *' + | get_widget(self) -> TWidget const * + | + | is_register(self, *args) -> 'bool' + | is_register(self) -> bool + | + | is_widget(self, *args) -> 'bool' + | is_widget(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class sync_source_vec_t in module ida_kernwin: + +class sync_source_vec_t(builtins.object) + | Proxy of C++ qvector< sync_source_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | __init__(self, x) -> sync_source_vec_t + | + | @param x: qvector< sync_source_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | __swig_destroy__ = delete_sync_source_vec_t(...) + | delete_sync_source_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: sync_source_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function sync_sources in module ida_kernwin: + +sync_sources(*args) -> 'bool' + sync_sources(what, _with, sync) -> bool + [Un]synchronize sources + + @param what: (C++: const sync_source_t &) + @param with: (C++: const sync_source_t &) + @param sync: (C++: bool) + @return: success + +Help on class synced_group_t in module ida_kernwin: + +class synced_group_t(sync_source_vec_t) + | Proxy of C++ synced_group_t class. + | + | Method resolution order: + | synced_group_t + | sync_source_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> synced_group_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_synced_group_t(...) + | delete_synced_group_t(self) + | + | has(self, *args) -> 'bool' + | has(self, ss) -> bool + | + | @param ss: sync_source_t const & + | + | has_register(self, *args) -> 'bool' + | has_register(self, r) -> bool + | + | @param r: char const * + | + | has_widget(self, *args) -> 'bool' + | has_widget(self, v) -> bool + | + | @param v: TWidget const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: sync_source_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< sync_source_t >::iterator + | + | erase(self, first, last) -> sync_source_t + | + | @param first: qvector< sync_source_t >::iterator + | @param last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | + | @param x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: sync_source_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | + | @param it: qvector< sync_source_t >::iterator + | @param x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | + | @param x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< sync_source_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from sync_source_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from sync_source_vec_t: + | + | __hash__ = None + +Help on function take_database_snapshot in module ida_kernwin: + +take_database_snapshot(*args) -> 'PyObject *' + take_database_snapshot(ss) -> (bool, NoneType) + Take a database snapshot (ui_take_database_snapshot). + + @param ss: (C++: snapshot_t *) in/out parameter. + * in: description, flags + * out: filename, id + @return: success + +Help on class text_t in module ida_kernwin: + +class text_t(builtins.object) + | Proxy of C++ qvector< twinline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'twinline_t const &' + | __getitem__(self, i) -> twinline_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | __init__(self, x) -> text_t + | + | @param x: qvector< twinline_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: twinline_t const & + | + | __swig_destroy__ = delete_text_t(...) + | delete_text_t(self) + | + | at(self, *args) -> 'twinline_t const &' + | at(self, _idx) -> twinline_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' + | begin(self) -> twinline_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> '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 + | + | @param it: qvector< twinline_t >::iterator + | + | erase(self, first, last) -> twinline_t + | + | @param first: qvector< twinline_t >::iterator + | @param last: qvector< twinline_t >::iterator + | + | extract(self, *args) -> 'twinline_t *' + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=twinline_t()) + | + | @param x: twinline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: twinline_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t >::iterator' + | insert(self, it, x) -> twinline_t + | + | @param it: qvector< twinline_t >::iterator + | @param x: twinline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t &' + | push_back(self, x) + | + | @param x: twinline_t const & + | + | push_back(self) -> twinline_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: twinline_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< twinline_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class textctrl_info_t in module ida_kernwin: + +class textctrl_info_t(ida_idaapi.py_clinked_object_t) + | Class representing textctrl_info_t + | + | Method resolution order: + | textctrl_info_t + | ida_idaapi.py_clinked_object_t + | ida_idaapi.pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | __get_flags__(self) + | Returns the flags value + | + | __get_tabsize__(self) + | Returns the tabsize value + | + | __init__(self, text='', flags=0, tabsize=0) + | Initialize self. See help(type(self)) for accurate signature. + | + | __set_flags__(self, flags) + | Sets the flags value + | + | __set_tabsize__(self, tabsize) + | Sets the tabsize value + | + | _create_clink(self) + | Overwrite me. + | Creates a new clink + | @return: PyCapsule representing the C link + | + | _del_clink(self, lnk) + | Overwrite me. + | This method deletes the link + | + | _get_clink_ptr(self) + | Overwrite me. + | Returns the C link pointer as a 64bit number + | + | _textctrl_info_t__get_text = __get_text(self) + | Sets the text value + | + | _textctrl_info_t__set_text = __set_text(self, s) + | Sets the text value + | + | assign(self, other) + | Copies the contents of 'other' to 'self' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | flags + | Returns the flags value + | + | tabsize + | Returns the tabsize value + | + | text + | Sets the text value + | + | value + | Sets the text value + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | TXTF_ACCEPTTABS = 2 + | + | TXTF_AUTOINDENT = 1 + | + | TXTF_FIXEDFONT = 32 + | + | TXTF_MODIFIED = 16 + | + | TXTF_READONLY = 4 + | + | TXTF_SELECTED = 8 + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_idaapi.py_clinked_object_t: + | + | __del__(self) + | Delete the link upon object destruction (only if not static) + | + | _free(self) + | Explicitly delete the link (only if not static) + | + | copy(self) + | Returns a new copy of this class + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.py_clinked_object_t: + | + | clink + | + | clink_ptr + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on function textctrl_info_t_assign in module ida_kernwin: + +textctrl_info_t_assign(*args) -> 'bool' + textctrl_info_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * + +Help on function textctrl_info_t_create in module ida_kernwin: + +textctrl_info_t_create(*args) -> 'PyObject *' + textctrl_info_t_create() -> PyObject * + +Help on function textctrl_info_t_destroy in module ida_kernwin: + +textctrl_info_t_destroy(*args) -> 'bool' + textctrl_info_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * + +Help on function textctrl_info_t_get_clink in module ida_kernwin: + +textctrl_info_t_get_clink(*args) -> 'textctrl_info_t *' + textctrl_info_t_get_clink(_self) -> textctrl_info_t * + + @param self: PyObject * + +Help on function textctrl_info_t_get_clink_ptr in module ida_kernwin: + +textctrl_info_t_get_clink_ptr(*args) -> 'PyObject *' + textctrl_info_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * + +Help on function textctrl_info_t_get_flags in module ida_kernwin: + +textctrl_info_t_get_flags(*args) -> 'unsigned int' + textctrl_info_t_get_flags(_self) -> unsigned int + + @param self: PyObject * + +Help on function textctrl_info_t_get_tabsize in module ida_kernwin: + +textctrl_info_t_get_tabsize(*args) -> 'unsigned int' + textctrl_info_t_get_tabsize(_self) -> unsigned int + + @param self: PyObject * + +Help on function textctrl_info_t_get_text in module ida_kernwin: + +textctrl_info_t_get_text(*args) -> 'char const *' + textctrl_info_t_get_text(_self) -> char const * + + @param self: PyObject * + +Help on function textctrl_info_t_set_flags in module ida_kernwin: + +textctrl_info_t_set_flags(*args) -> 'bool' + textctrl_info_t_set_flags(_self, flags) -> bool + + @param self: PyObject * + @param flags: unsigned int + +Help on function textctrl_info_t_set_tabsize in module ida_kernwin: + +textctrl_info_t_set_tabsize(*args) -> 'bool' + textctrl_info_t_set_tabsize(_self, tabsize) -> bool + + @param self: PyObject * + @param tabsize: unsigned int + +Help on function textctrl_info_t_set_text in module ida_kernwin: + +textctrl_info_t_set_text(*args) -> 'bool' + textctrl_info_t_set_text(_self, s) -> bool + + @param self: PyObject * + @param s: char const * + +Help on class twinline_t in module ida_kernwin: + +class twinline_t(builtins.object) + | Proxy of C++ twinline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinline_t + | __init__(self, t, pc, bc) -> twinline_t + | + | @param t: place_t * + | @param pc: color_t + | @param bc: bgcolor_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_twinline_t(...) + | delete_twinline_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | bg_color + | bg_color + | + | is_default + | is_default + | + | line + | line + | + | prefix_color + | prefix_color + | + | thisown + | The membership flag + +Help on class twinpos_t in module ida_kernwin: + +class twinpos_t(builtins.object) + | Proxy of C++ twinpos_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinpos_t + | __init__(self, t) -> twinpos_t + | + | @param t: place_t * + | + | __init__(self, t, x0) -> twinpos_t + | + | @param t: place_t * + | @param x0: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_twinpos_t(...) + | delete_twinpos_t(self) + | + | place(self, view) + | + | place_as_enumplace_t(self) + | + | place_as_idaplace_t(self) + | + | place_as_simpleline_place_t(self) + | + | place_as_structplace_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | at + | at + | + | thisown + | The membership flag + | + | x + | x + +Help on function ui_load_new_file in module ida_kernwin: + +ui_load_new_file(*args) -> 'bool' + ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + Display a load file dialog and load file (ui_load_file). + + @param temp_file: (C++: qstring *) name of the file with the extracted archive member. + @param filename: (C++: qstring *) the name of input file as is, library or archive name + @param pli: (C++: linput_t **) loader input source, may be changed to point to temp_file + @param neflags: (C++: ushort) combination of NEF_... bits (see Load file flags) + @param 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 + +Help on class ui_requests_t in module ida_kernwin: + +class ui_requests_t(builtins.object) + | Proxy of C++ ui_requests_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ui_requests_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ui_requests_t(...) + | delete_ui_requests_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function ui_run_debugger in module ida_kernwin: + +ui_run_debugger(*args) -> 'bool' + ui_run_debugger(dbgopts, exename, argc, argv) -> bool + Load a debugger plugin and run the specified program (ui_run_dbg). + + @param dbgopts: (C++: const char *) value of the -r command line switch + @param exename: (C++: const char *) name of the file to run + @param argc: (C++: int) number of arguments for the executable + @param argv: (C++: const char *const *) argument vector + @return: success + +Help on function unmark_selection in module ida_kernwin: + +unmark_selection(*args) -> 'void' + unmark_selection() + Unmark selection (ui_unmarksel) + +Help on function unregister_action in module ida_kernwin: + +unregister_action(*args) -> 'bool' + unregister_action(name) -> bool + Delete a previously-registered action (ui_unregister_action). + + @param name: (C++: const char *) name of action + @return: success + +Help on function unregister_timer in module ida_kernwin: + +unregister_timer(*args) -> 'bool' + unregister_timer(py_timerctx) -> bool + Unregister a timer + + @param 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. + +Help on function update_action_checkable in module ida_kernwin: + +update_action_checkable(*args) -> 'bool' + update_action_checkable(name, checkable) -> bool + Update an action's checkability (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checkable: (C++: bool) new checkability + @return: success + +Help on function update_action_checked in module ida_kernwin: + +update_action_checked(*args) -> 'bool' + update_action_checked(name, checked) -> bool + Update an action's checked state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param checked: (C++: bool) new checked state + @return: success + +Help on function update_action_icon in module ida_kernwin: + +update_action_icon(*args) -> 'bool' + update_action_icon(name, icon) -> bool + Update an action's icon (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param icon: (C++: int) new icon id + @return: success + +Help on function update_action_label in module ida_kernwin: + +update_action_label(*args) -> 'bool' + update_action_label(name, label) -> bool + Update an action's label (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param label: (C++: const char *) new label + @return: success + +Help on function update_action_shortcut in module ida_kernwin: + +update_action_shortcut(*args) -> 'bool' + update_action_shortcut(name, shortcut) -> bool + Update an action's shortcut (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param shortcut: (C++: const char *) new shortcut + @return: success + +Help on function update_action_state in module ida_kernwin: + +update_action_state(*args) -> 'bool' + update_action_state(name, state) -> bool + Update an action's state (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param state: (C++: action_state_t) new state + @return: success + +Help on function update_action_tooltip in module ida_kernwin: + +update_action_tooltip(*args) -> 'bool' + update_action_tooltip(name, tooltip) -> bool + Update an action's tooltip (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param tooltip: (C++: const char *) new tooltip + @return: success + +Help on function update_action_visibility in module ida_kernwin: + +update_action_visibility(*args) -> 'bool' + update_action_visibility(name, visible) -> bool + Update an action's visibility (ui_update_action_attr). + + @param name: (C++: const char *) action name + @param visible: (C++: bool) new visibility + @return: success + +Help on function user_cancelled in module ida_kernwin: + +user_cancelled(*args) -> '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 + +Help on class view_mouse_event_location_t in module ida_kernwin: + +class view_mouse_event_location_t(builtins.object) + | Proxy of C++ view_mouse_event_location_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> view_mouse_event_location_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_view_mouse_event_location_t(...) + | delete_view_mouse_event_location_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | item + | item + | + | thisown + | The membership flag + +Help on class view_mouse_event_t in module ida_kernwin: + +class view_mouse_event_t(builtins.object) + | Proxy of C++ view_mouse_event_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> view_mouse_event_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_view_mouse_event_t(...) + | delete_view_mouse_event_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | button + | button + | + | location + | location + | + | renderer_pos + | renderer_pos + | + | rtype + | rtype + | + | state + | state + | + | thisown + | The membership flag + | + | x + | x + | + | y + | y + +Help on function warning in module ida_kernwin: + +warning(*args) -> 'void' + warning(format) + Display a message in a message box + + @param 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 + +Module "ida_lines"s docstring: +""" +High level functions that deal with the generation of the disassembled text +lines. + +This file also contains definitions for the syntax highlighting. + +Finally there are functions that deal with anterior/posterior user-defined +lines.""" + +Help on function COLSTR in module ida_lines: + +COLSTR(str, tag) + Utility function to create a colored line + @param str: The string + @param tag: Color tag constant. One of SCOLOR_XXXX + +Help on function add_extra_cmt in module ida_lines: + +add_extra_cmt(*args) -> 'bool' + add_extra_cmt(ea, isprev, format) -> bool + Add anterior/posterior comment line(s). + + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success + +Help on function add_extra_line in module ida_lines: + +add_extra_line(*args) -> 'bool' + add_extra_line(ea, isprev, format) -> bool + Add anterior/posterior non-comment line(s). + + @param ea: (C++: ea_t) linear address + @param isprev: (C++: bool) do we add anterior lines? (0-no, posterior) + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + @return: true if success + +Help on function add_pgm_cmt in module ida_lines: + +add_pgm_cmt(*args) -> 'bool' + add_pgm_cmt(format) -> bool + Add anterior comment line(s) at the start of program. + + @param format: (C++: const char *) printf() style format string. may contain \n to denote new lines. + The resulting string should not contain comment characters (;), + the kernel will add them automatically. + @return: true if success + +Help on function add_sourcefile in module ida_lines: + +add_sourcefile(*args) -> 'bool' + add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success + +Help on function calc_bg_color in module ida_lines: + +calc_bg_color(*args) -> 'bgcolor_t' + calc_bg_color(ea) -> bgcolor_t + Get background color for line at 'ea' + + @param ea: (C++: ea_t) + @return: RGB color + +Help on function calc_prefix_color in module ida_lines: + +calc_prefix_color(*args) -> 'color_t' + calc_prefix_color(ea) -> color_t + Get prefix color for line at 'ea' + + @param ea: (C++: ea_t) + @return: Line prefix colors + +Help on function create_encoding_helper in module ida_lines: + +create_encoding_helper(*args) -> 'encoder_t *' + create_encoding_helper(encidx=-1, nr=nr_once) -> encoder_t * + + @param encidx: int + @param nr: enum encoder_t::notify_recerr_t + +Help on function del_extra_cmt in module ida_lines: + +del_extra_cmt(*args) -> 'void' + del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int + +Help on function del_sourcefile in module ida_lines: + +del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool + Delete information about the source file. + + @param ea: (C++: ea_t) linear address + @return: success + +Help on function delete_extra_cmts in module ida_lines: + +delete_extra_cmts(*args) -> 'void' + delete_extra_cmts(ea, what) + + @param ea: ea_t + @param what: int + +Help on function generate_disasm_line in module ida_lines: + +generate_disasm_line(*args) -> 'qstring *' + generate_disasm_line(ea, flags=0) -> str + + @param ea: ea_t + @param flags: int + +Help on function generate_disassembly in module ida_lines: + +generate_disassembly(*args) -> 'PyObject *' + generate_disassembly(ea, max_lines, as_stack, notags) -> (int, [str, ...]) + Generate disassembly lines (many lines) and put them into a buffer + + @param ea: address to generate disassembly for + @param max_lines: how many lines max to generate + @param as_stack: Display undefined items as 2/4/8 bytes + @param notags: bool + @return: - None on failure + - tuple(most_important_line_number, list(lines)) : Returns a tuple containing + the most important line number and a list of generated lines + +Help on function get_extra_cmt in module ida_lines: + +get_extra_cmt(*args) -> 'int' + get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int + +Help on function get_first_free_extra_cmtidx in module ida_lines: + +get_first_free_extra_cmtidx(*args) -> 'int' + get_first_free_extra_cmtidx(ea, start) -> int + + @param ea: ea_t + @param start: int + +Help on function get_sourcefile in module ida_lines: + +get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * + Get name of source file occupying the given address. + + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name + +Help on function install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) -> 'bool' + install_user_defined_prefix(prefix_len, udp, owner) -> bool + User-defined line-prefixes are displayed just after the autogenerated line + prefixes in the disassembly listing. There is no need to call this function + explicitly. Use the user_defined_prefix_t class. + + @param prefix_len: (C++: size_t) prefixed length. if 0, then uninstall UDP + @param udp: (C++: struct user_defined_prefix_t *) object to generate user-defined prefix + @param owner: (C++: const void *) pointer to the plugin_t that owns UDP if non-nullptr, then the + object will be uninstalled and destroyed when the plugin gets + unloaded + +Help on function requires_color_esc in module ida_lines: + +requires_color_esc(c) + Checks if the given character requires escaping + Is the given char a color escape character? + +Help on function set_user_defined_prefix in module ida_lines: + +set_user_defined_prefix(*args) -> 'PyObject *' + set_user_defined_prefix(width, pycb) -> bool + Deprecated. Please use install_user_defined_prefix() instead + + @param width: size_t + @param pycb: PyObject * + +Help on function tag_addr in module ida_lines: + +tag_addr(*args) -> 'PyObject *' + tag_addr(ea) -> PyObject * + Insert an address mark into a string. + + @param ea: (C++: ea_t) address to include + +Help on function tag_advance in module ida_lines: + +tag_advance(*args) -> 'int' + tag_advance(line, cnt) -> int + Move pointer to a 'line' to 'cnt' positions right. Take into account escape + sequences. + + @param line: (C++: const char *) pointer to string + @param cnt: (C++: int) number of positions to move right + @return: moved pointer + +Help on function tag_remove in module ida_lines: + +tag_remove(*args) -> 'PyObject *' + tag_remove(nonnul_instr) -> str + + @param nonnul_instr: char const * + +Help on function tag_skipcode in module ida_lines: + +tag_skipcode(*args) -> 'int' + tag_skipcode(line) -> int + Skip one color code. This function should be used if you are interested in color + codes and want to analyze all of them. Otherwise tag_skipcodes() function is + better since it will skip all colors at once. This function will skip the + current color code if there is one. If the current symbol is not a color code, + it will return the input. + + @param line: (C++: const char *) char const * + @return: moved pointer + +Help on function tag_skipcodes in module ida_lines: + +tag_skipcodes(*args) -> 'int' + tag_skipcodes(line) -> int + Move the pointer past all color codes. + + @param line: (C++: const char *) can't be nullptr + @return: moved pointer, can't be nullptr + +Help on function tag_strlen in module ida_lines: + +tag_strlen(*args) -> 'ssize_t' + tag_strlen(line) -> ssize_t + Calculate length of a colored string This function computes the length in + unicode codepoints of a line + + @param line: (C++: const char *) char const * + @return: the number of codepoints in the line, or -1 on error + +Help on function update_extra_cmt in module ida_lines: + +update_extra_cmt(*args) -> 'void' + update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * + +Help on class user_defined_prefix_t in module ida_lines: + +class user_defined_prefix_t(builtins.object) + | Proxy of C++ user_defined_prefix_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, prefix_len, owner) -> user_defined_prefix_t + | + | @param prefix_len: size_t + | @param owner: void const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_user_defined_prefix_t(...) + | delete_user_defined_prefix_t(self) + | + | get_user_defined_prefix(self, *args) -> 'void' + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | This callback must be overridden by the derived class. + | + | @param ea: (C++: ea_t) the current address + | @param insn: (C++: const class insn_t &) the current instruction. if the current item is not an instruction, + | then insn.itype is zero. + | @param lnnum: (C++: int) number of the current line (each address may have several listing + | lines for it). 0 means the very first line for the current + | address. + | @param indent: (C++: int) see explanations for gen_printf() + | @param line: (C++: const char *) the line to be generated. the line usually contains color tags. + | this argument can be examined to decide whether to generate the + | prefix. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Module "ida_loader"s docstring: +""" +Definitions of IDP, LDR, PLUGIN module interfaces. + +This file also contains: +* functions to load files into the database +* functions to generate output files +* high level functions to work with the database (open, save, close) + +The LDR interface consists of one structure: loader_t +The IDP interface consists of one structure: processor_t +The PLUGIN interface consists of one structure: plugin_t + +Modules can't use standard FILE* functions. They must use functions from +<fpro.h> + +Modules can't use standard memory allocation functions. They must use functions +from <pro.h> + +The exported entry #1 in the module should point to the the appropriate +structure. (loader_t for LDR module, for example)""" + +Help on function base2file in module ida_loader: + +base2file(*args) -> 'int' + base2file(fp, pos, ea1, ea2) -> int + Unload database to a binary file. This function works for wide byte processors + too. + + @param fp: (C++: FILE *) pointer to file + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of source linear addresses + @param ea2: (C++: ea_t) + @return: 1-ok(always), write error leads to immediate exit + +Help on function build_snapshot_tree in module ida_loader: + +build_snapshot_tree(*args) -> 'bool' + build_snapshot_tree(root) -> bool + Build the snapshot tree. + + @param root: (C++: snapshot_t *) snapshot root that will contain the snapshot tree elements. + @return: success + +Help on function clr_database_flag in module ida_loader: + +clr_database_flag(*args) -> 'void' + clr_database_flag(dbfl) + + @param dbfl: uint32 + +Help on function extract_module_from_archive in module ida_loader: + +extract_module_from_archive(*args) -> 'PyObject *' + extract_module_from_archive(fname, is_remote=False) -> (NoneType, NoneType), (str, str) + Extract a module for an archive file. Parse an archive file, show the list of + modules to the user, allow him to select a module, extract the selected module + to a file (if the extract module is an archive, repeat the process). This + function can handle ZIP, AR, AIXAR, OMFLIB files. The temporary file will be + automatically deleted by IDA at the end. + + @param filename: (C++: char *) in: input file. out: name of the selected module. + @param is_remote: (C++: bool) is the input file remote? + @retval true: ok + @retval false: something bad happened (error message has been displayed to the + user) + +Help on function file2base in module ida_loader: + +file2base(*args) -> 'int' + file2base(li, pos, ea1, ea2, patchable) -> int + Load portion of file into the database. This function will include (ea1..ea2) + into the addressing space of the program (make it enabled). + + @param li: (C++: linput_t *) pointer of input source + @param pos: (C++: qoff64_t) position in the file + @param ea1: (C++: ea_t) ,ea2: range of destination linear addresses + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + @param patchable: (C++: int) should the kernel remember correspondence of file offsets to + linear addresses. + @retval 1: ok + @retval 0: read error, a warning is displayed + @note: The storage type of the specified range will be changed to STT_VA. + +Help on function find_plugin in module ida_loader: + +find_plugin(*args) -> 'plugin_t *' + find_plugin(name, load_if_needed=False) -> plugin_t * + Find a user-defined plugin and optionally load it. + + @param name: (C++: const char *) short plugin name without path and extension, or absolute path to + the file name + @param load_if_needed: (C++: bool) if the plugin is not present in the memory, try to load + it + @return: pointer to plugin description block + +Help on function flush_buffers in module ida_loader: + +flush_buffers(*args) -> 'int' + flush_buffers() -> int + Flush buffers to the disk. + +Help on function gen_exe_file in module ida_loader: + +gen_exe_file(*args) -> 'int' + gen_exe_file(fp) -> int + Generate an exe file (unload the database in binary form). + + @param fp: (C++: FILE *) + @return: fp the output file handle. if fp == nullptr then return: + * 1: can generate an executable file + * 0: can't generate an executable file + @retval 1: ok + @retval 0: failed + +Help on function gen_file in module ida_loader: + +gen_file(*args) -> 'int' + gen_file(otype, fp, ea1, ea2, flags) -> int + Generate an output file. + + @param otype: (C++: ofile_type_t) type of output file. + @param fp: (C++: FILE *) the output file handle + @param ea1: (C++: ea_t) start address. For some file types this argument is ignored + @param ea2: (C++: ea_t) end address. For some file types this argument is ignored as usual + in ida, the end address of the range is not included + @param flags: (C++: int) Generate file flagsOFILE_EXE: + @retval 0: can't generate exe file + @retval 1: ok + @return: number of the generated lines. -1 if an error occurred + +Help on function get_basic_file_type in module ida_loader: + +get_basic_file_type(*args) -> 'filetype_t' + get_basic_file_type(li) -> filetype_t + Get the input file type. This function can recognize libraries and zip files. + + @param li: (C++: linput_t *) + +Help on function get_elf_debug_file_directory in module ida_loader: + +get_elf_debug_file_directory(*args) -> 'char const *' + get_elf_debug_file_directory() -> char const * + Get the value of the ELF_DEBUG_FILE_DIRECTORY configuration directive. + +Help on function get_file_type_name in module ida_loader: + +get_file_type_name(*args) -> 'size_t' + get_file_type_name() -> str + Get name of the current file type. The current file type is kept in + idainfo::filetype. + + @return: size of answer, this function always succeeds + +Help on function get_fileregion_ea in module ida_loader: + +get_fileregion_ea(*args) -> 'ea_t' + get_fileregion_ea(offset) -> ea_t + Get linear address which corresponds to the specified input file offset. If + can't be found, return BADADDR + + @param offset: (C++: qoff64_t) + +Help on function get_fileregion_offset in module ida_loader: + +get_fileregion_offset(*args) -> 'qoff64_t' + get_fileregion_offset(ea) -> qoff64_t + Get offset in the input file which corresponds to the given ea. If the specified + ea can't be mapped into the input file offset, return -1. + + @param ea: (C++: ea_t) + +Help on function get_path in module ida_loader: + +get_path(*args) -> 'char const *' + get_path(pt) -> char const * + Get the file path + + @param pt: (C++: path_type_t) file path type Types of the file pathes + @return: file path, never returns nullptr + +Help on function get_plugin_options in module ida_loader: + +get_plugin_options(*args) -> 'char const *' + get_plugin_options(plugin) -> char const * + Get plugin options from the command line. If the user has specified the options + in the -Oplugin_name:options format, them this function will return the + 'options' part of it The 'plugin' parameter should denote the plugin name + Returns nullptr if there we no options specified + + @param plugin: (C++: const char *) char const * + +Help on class idp_desc_t in module ida_loader: + +class idp_desc_t(builtins.object) + | Proxy of C++ idp_desc_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idp_desc_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idp_desc_t(...) + | delete_idp_desc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | checked + | checked + | + | family + | family + | + | is_script + | is_script + | + | mtime + | mtime + | + | names + | names + | + | path + | path + | + | thisown + | The membership flag + +Help on class idp_name_t in module ida_loader: + +class idp_name_t(builtins.object) + | Proxy of C++ idp_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> idp_name_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_idp_name_t(...) + | delete_idp_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | hidden + | hidden + | + | lname + | lname + | + | sname + | sname + | + | thisown + | The membership flag + +Help on function is_database_flag in module ida_loader: + +is_database_flag(*args) -> 'bool' + is_database_flag(dbfl) -> bool + Get the current database flag + + @param dbfl: (C++: uint32) flag Database flags + @return: the state of the flag (set or cleared) + +Help on function is_trusted_idb in module ida_loader: + +is_trusted_idb(*args) -> 'bool' + is_trusted_idb() -> bool + Is the database considered as trusted? + +Help on function load_and_run_plugin in module ida_loader: + +load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool + Load & run a plugin. + + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) + +Help on function load_binary_file in module ida_loader: + +load_binary_file(*args) -> 'bool' + load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + Load a binary file into the database. This function usually is called from ui. + + @param filename: (C++: const char *) the name of input file as is (if the input file is from + library, then this is the name from the library) + @param li: (C++: linput_t *) loader input source + @param _neflags: (C++: ushort) Load file flags. For the first file, the flag NEF_FIRST must be + set. + @param fileoff: (C++: qoff64_t) Offset in the input file + @param basepara: (C++: ea_t) Load address in paragraphs + @param binoff: (C++: ea_t) Load offset (load_address=(basepara<<4)+binoff) + @param nbytes: (C++: uint64) Number of bytes to load from the file. + * 0: up to the end of the file + @retval true: ok + @retval false: failed (couldn't open the file) + +Help on function load_ids_module in module ida_loader: + +load_ids_module(*args) -> 'int' + load_ids_module(fname) -> int + Load and apply IDS file. This function loads the specified IDS file and applies + it to the database. If the program imports functions from a module with the same + name as the name of the ids file being loaded, then only functions from this + module will be affected. Otherwise (i.e. when the program does not import a + module with this name) any function in the program may be affected. + + @param fname: (C++: char *) name of file to apply + @retval 1: ok + @retval 0: some error (a message is displayed). if the ids file does not exist, + no message is displayed + +Help on function load_plugin in module ida_loader: + +load_plugin(*args) -> 'PyObject *' + load_plugin(name) -> PyCapsule or None + Loads a plugin + + @param name: char const * + @return: - None if plugin could not be loaded + - An opaque object representing the loaded plugin + +Help on class loader_t in module ida_loader: + +class loader_t(builtins.object) + | Proxy of C++ loader_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> loader_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_loader_t(...) + | delete_loader_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | flags + | flags + | + | thisown + | The membership flag + | + | version + | version + +Help on function mem2base in module ida_loader: + +mem2base(*args) -> 'int' + mem2base(py_mem, ea, fpos=-1) -> int + Load database from the memory. + + @param py_mem: the buffer + @param ea: start linear addresses + @param fpos: position in the input file the data is taken from. + if == -1, then no file position correspond to the data. + @return: - Returns zero if the passed buffer was not a string + - Otherwise 1 is returned + +Help on class plugin_info_t in module ida_loader: + +class plugin_info_t(builtins.object) + | Proxy of C++ plugin_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> plugin_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_plugin_info_t(...) + | delete_plugin_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | arg + | arg + | + | comment + | comment + | + | dllmem + | dllmem + | + | entry + | entry + | + | flags + | flags + | + | hotkey + | hotkey + | + | name + | name + | + | next + | next + | + | org_hotkey + | org_hotkey + | + | org_name + | org_name + | + | path + | path + | + | thisown + | The membership flag + +Help on function process_archive in module ida_loader: + +process_archive(*args) -> 'qstring *' + process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + Calls loader_t::process_archive() For parameters and return value description + look at loader_t::process_archive(). Additional parameter 'loader' is a pointer + to load_info_t structure. + + @param temp_file: (C++: qstring *) + @param li: (C++: linput_t *) + @param module_name: (C++: qstring *) + @param neflags: (C++: ushort *) + @param defmember: (C++: const char *) char const * + @param loader: (C++: const load_info_t *) load_info_t const * + +Help on class qvector_snapshotvec_t in module ida_loader: + +class qvector_snapshotvec_t(builtins.object) + | Proxy of C++ qvector< snapshot_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & + | + | __getitem__(self, *args) -> 'snapshot_t *const &' + | __getitem__(self, i) -> snapshot_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> qvector_snapshotvec_t + | __init__(self, x) -> qvector_snapshotvec_t + | + | @param x: qvector< snapshot_t * > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< snapshot_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: snapshot_t *const & + | + | __swig_destroy__ = delete_qvector_snapshotvec_t(...) + | delete_qvector_snapshotvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: snapshot_t *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: snapshot_t *const & + | + | at(self, *args) -> 'snapshot_t *const &' + | at(self, _idx) -> snapshot_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< snapshot_t * >::const_iterator' + | begin(self) -> qvector< snapshot_t * >::iterator + | begin(self) -> qvector< snapshot_t * >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< snapshot_t * >::const_iterator' + | end(self) -> qvector< snapshot_t * >::iterator + | end(self) -> qvector< snapshot_t * >::const_iterator + | + | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' + | erase(self, it) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | + | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | + | @param first: qvector< snapshot_t * >::iterator + | @param last: qvector< snapshot_t * >::iterator + | + | extract(self, *args) -> 'snapshot_t **' + | extract(self) -> snapshot_t ** + | + | find(self, *args) -> 'qvector< snapshot_t * >::const_iterator' + | find(self, x) -> qvector< snapshot_t * >::iterator + | + | @param x: snapshot_t *const & + | + | find(self, x) -> qvector< snapshot_t * >::const_iterator + | + | @param x: snapshot_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: snapshot_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: snapshot_t ** + | @param len: size_t + | + | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' + | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | + | @param it: qvector< snapshot_t * >::iterator + | @param x: snapshot_t *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'snapshot_t *&' + | push_back(self, x) + | + | @param x: snapshot_t *const & + | + | push_back(self) -> snapshot_t *& + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: snapshot_t *const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< snapshot_t * > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function reload_file in module ida_loader: + +reload_file(*args) -> 'bool' + reload_file(file, is_remote) -> bool + Reload the input file. This function reloads the byte values from the input + file. It doesn't modify the segmentation, names, comments, etc. + + @param file: (C++: const char *) name of the input file. if file == nullptr then returns: + * 1: can reload the input file + * 0: can't reload the input file + @param is_remote: (C++: bool) is the file located on a remote computer with the debugger + server? + @return: success + +Help on function run_plugin in module ida_loader: + +run_plugin(*args) -> 'bool' + run_plugin(plg, arg) -> bool + Runs a plugin + + @param plg: A plugin object (returned by load_plugin()) + @param arg: size_t + @return: Boolean + +Help on function save_database in module ida_loader: + +save_database(*args) -> 'bool' + save_database(outfile, flags, root=None, attr=None) -> bool + Save current database using a new file name. + + @param outfile: (C++: const char *) output database file name + @param flags: (C++: uint32) Database flags + @param root: (C++: const snapshot_t *) optional: snapshot tree root. + @param attr: (C++: const snapshot_t *) optional: snapshot attributes + @note: when both root and attr are not nullptr then the snapshot attributes will + be updated, otherwise the snapshot attributes will be inherited from the + current database. + @return: success + +Help on function set_database_flag in module ida_loader: + +set_database_flag(*args) -> 'void' + set_database_flag(dbfl, cnd=True) + Set or clear database flag + + @param dbfl: (C++: uint32) flag Database flags + @param cnd: (C++: bool) set if true or clear flag otherwise + +Help on function set_import_name in module ida_loader: + +set_import_name(*args) -> 'void' + set_import_name(modnode, ea, name) + Set information about the named import entry. This function performs + 'modnode.supset_ea(ea, name);' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param name: (C++: const char *) name of the entry + +Help on function set_import_ordinal in module ida_loader: + +set_import_ordinal(*args) -> 'void' + set_import_ordinal(modnode, ea, ord) + Set information about the ordinal import entry. This function performs + 'modnode.altset(ord, ea2node(ea));' + + @param modnode: (C++: uval_t) node with information about imported entries + @param ea: (C++: ea_t) linear address of the entry + @param ord: (C++: uval_t) ordinal number of the entry + +Help on function set_path in module ida_loader: + +set_path(*args) -> 'void' + set_path(pt, path) + Set the file path + + @param pt: (C++: path_type_t) file path type Types of the file pathes + @param path: (C++: const char *) new file path, use nullptr or empty string to clear the file path + +Help on class snapshot_t in module ida_loader: + +class snapshot_t(builtins.object) + | Proxy of C++ snapshot_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __init__(self, *args) + | __init__(self) -> snapshot_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: snapshot_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_snapshot_t(...) + | delete_snapshot_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | children + | children + | + | desc + | desc + | + | filename + | filename + | + | flags + | flags + | + | id + | id + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_moves"s docstring: +""" +""" + +Help on class bookmarks_t in module ida_moves: + +class bookmarks_t(builtins.object) + | Proxy of C++ bookmarks_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | erase(*args) -> 'bool' + | erase(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * + | + | find_index(*args) -> 'uint32' + | find_index(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * + | + | get(*args) -> 'bool' + | get(out_entry, out_desc, index, ud) -> bool + | + | @param out_entry: lochist_entry_t * + | @param out_desc: qstring * + | @param index: uint32 * + | @param ud: void * + | + | get_desc(*args) -> 'qstring *' + | get_desc(e, index, ud) -> bool + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param ud: void * + | + | get_dirtree_id(*args) -> 'dirtree_id_t' + | get_dirtree_id(e, ud) -> dirtree_id_t + | + | @param e: lochist_entry_t const & + | @param ud: void * + | + | mark(*args) -> 'uint32' + | mark(e, index, title, desc, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param index: uint32 + | @param title: char const * + | @param desc: char const * + | @param ud: void * + | + | size(*args) -> 'uint32' + | size(e, ud) -> uint32 + | + | @param e: lochist_entry_t const & + | @param ud: void * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function bookmarks_t_erase in module ida_moves: + +bookmarks_t_erase(*args) -> 'bool' + bookmarks_t_erase(e, index, ud) -> bool + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * + +Help on function bookmarks_t_find_index in module ida_moves: + +bookmarks_t_find_index(*args) -> 'uint32' + bookmarks_t_find_index(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * + +Help on function bookmarks_t_get in module ida_moves: + +bookmarks_t_get(*args) -> 'bool' + bookmarks_t_get(out_entry, out_desc, index, ud) -> bool + + @param out_entry: lochist_entry_t * + @param out_desc: qstring * + @param index: uint32 * + @param ud: void * + +Help on function bookmarks_t_get_desc in module ida_moves: + +bookmarks_t_get_desc(*args) -> 'qstring *' + bookmarks_t_get_desc(e, index, ud) -> str + + @param e: lochist_entry_t const & + @param index: uint32 + @param ud: void * + +Help on function bookmarks_t_get_dirtree_id in module ida_moves: + +bookmarks_t_get_dirtree_id(*args) -> 'dirtree_id_t' + bookmarks_t_get_dirtree_id(e, ud) -> dirtree_id_t + + @param e: lochist_entry_t const & + @param ud: void * + +Help on function bookmarks_t_mark in module ida_moves: + +bookmarks_t_mark(*args) -> 'uint32' + bookmarks_t_mark(e, index, title, desc, ud) -> uint32 + + @param e: lochist_entry_t const & + @param index: uint32 + @param title: char const * + @param desc: char const * + @param ud: void * + +Help on function bookmarks_t_size in module ida_moves: + +bookmarks_t_size(*args) -> 'uint32' + bookmarks_t_size(e, ud) -> uint32 + + @param e: lochist_entry_t const & + @param ud: void * + +Help on class graph_location_info_t in module ida_moves: + +class graph_location_info_t(builtins.object) + | Proxy of C++ graph_location_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: graph_location_info_t const & + | + | __init__(self, *args) + | __init__(self) -> graph_location_info_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: graph_location_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_graph_location_info_t(...) + | delete_graph_location_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | orgx + | orgx + | + | orgy + | orgy + | + | thisown + | The membership flag + | + | zoom + | zoom + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class lochist_entry_t in module ida_moves: + +class lochist_entry_t(builtins.object) + | Proxy of C++ lochist_entry_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lochist_entry_t + | __init__(self, p, r) -> lochist_entry_t + | + | @param p: place_t const * + | @param r: renderer_info_t const & + | + | __init__(self, other) -> lochist_entry_t + | + | @param other: lochist_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lochist_entry_t(...) + | delete_lochist_entry_t(self) + | + | acquire_place(self, *args) -> 'void' + | acquire_place(self, in_p) + | + | @param in_p: place_t * + | + | is_valid(self, *args) -> 'bool' + | is_valid(self) -> bool + | + | place(self, *args) -> 'place_t *' + | place(self) -> place_t + | + | renderer_info(self, *args) -> 'renderer_info_t &' + | renderer_info(self) -> renderer_info_t + | + | set_place(self, *args) -> 'void' + | set_place(self, p) + | + | @param p: place_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | plce + | plce + | + | rinfo + | rinfo + | + | thisown + | The membership flag + +Help on class lochist_t in module ida_moves: + +class lochist_t(builtins.object) + | Proxy of C++ lochist_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> lochist_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lochist_t(...) + | delete_lochist_t(self) + | + | back(self, *args) -> 'bool' + | back(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool + | + | clear(self, *args) -> 'void' + | clear(self) + | + | current_index(self, *args) -> 'uint32' + | current_index(self) -> uint32 + | + | fwd(self, *args) -> 'bool' + | fwd(self, cnt, try_to_unhide) -> bool + | + | @param cnt: uint32 + | @param try_to_unhide: bool + | + | get(self, *args) -> 'bool' + | get(self, out, index) -> bool + | + | @param out: lochist_entry_t * + | @param index: uint32 + | + | get_current(self, *args) -> 'lochist_entry_t const &' + | get_current(self) -> lochist_entry_t + | + | get_place_id(self, *args) -> 'int' + | get_place_id(self) -> int + | + | get_template_place(self, *args) -> 'place_t const *' + | get_template_place(self) -> place_t + | + | init(self, *args) -> 'bool' + | init(self, stream_name, _defpos, _ud, _flags) -> bool + | + | @param stream_name: char const * + | @param _defpos: place_t const * + | @param _ud: void * + | @param _flags: uint32 + | + | is_history_enabled(self, *args) -> 'bool' + | is_history_enabled(self) -> bool + | + | jump(self, *args) -> 'void' + | jump(self, try_to_unhide, e) + | + | @param try_to_unhide: bool + | @param e: lochist_entry_t const & + | + | netcode(self, *args) -> 'nodeidx_t' + | netcode(self) -> nodeidx_t + | + | save(self, *args) -> 'void' + | save(self) + | + | seek(self, *args) -> 'bool' + | seek(self, index, try_to_unhide) -> bool + | + | @param index: uint32 + | @param try_to_unhide: bool + | + | set(self, *args) -> 'void' + | set(self, index, e) + | + | @param index: uint32 + | @param e: lochist_entry_t const & + | + | set_current(self, *args) -> 'void' + | set_current(self, e) + | + | @param e: lochist_entry_t const & + | + | size(self, *args) -> 'uint32' + | size(self) -> uint32 + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class renderer_info_pos_t in module ida_moves: + +class renderer_info_pos_t(builtins.object) + | Proxy of C++ renderer_info_pos_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & + | + | __init__(self, *args) + | __init__(self) -> renderer_info_pos_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: renderer_info_pos_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_renderer_info_pos_t(...) + | delete_renderer_info_pos_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cx + | cx + | + | cy + | cy + | + | node + | node + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class renderer_info_t in module ida_moves: + +class renderer_info_t(builtins.object) + | Proxy of C++ renderer_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: renderer_info_t const & + | + | __init__(self, *args) + | __init__(self) -> renderer_info_t + | __init__(self, _rtype, cx, cy) -> renderer_info_t + | + | @param _rtype: enum tcc_renderer_type_t + | @param cx: short + | @param cy: short + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: renderer_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_renderer_info_t(...) + | delete_renderer_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | gli + | gli + | + | pos + | pos + | + | rtype + | rtype + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class segm_move_info_t in module ida_moves: + +class segm_move_info_t(builtins.object) + | Proxy of C++ segm_move_info_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: segm_move_info_t const & + | + | __init__(self, *args) + | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | + | @param _from: ea_t + | @param _to: ea_t + | @param _sz: size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: segm_move_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_segm_move_info_t(...) + | delete_segm_move_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _from + | _from + | + | size + | size + | + | thisown + | The membership flag + | + | to + | to + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class segm_move_info_vec_t in module ida_moves: + +class segm_move_info_vec_t(builtins.object) + | Proxy of C++ qvector< segm_move_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __getitem__(self, *args) -> 'segm_move_info_t const &' + | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> segm_move_info_vec_t + | __init__(self, x) -> segm_move_info_vec_t + | + | @param x: qvector< segm_move_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & + | + | __swig_destroy__ = delete_segm_move_info_vec_t(...) + | delete_segm_move_info_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | at(self, *args) -> 'segm_move_info_t const &' + | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | begin(self) -> segm_move_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | end(self) -> segm_move_info_t + | + | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | + | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator + | + | extract(self, *args) -> 'segm_move_info_t *' + | extract(self) -> segm_move_info_t + | + | find(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | find(self, x) -> segm_move_info_t + | + | @param x: segm_move_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'segm_move_info_t &' + | push_back(self, x) + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class segm_move_infos_t in module ida_moves: + +class segm_move_infos_t(segm_move_info_vec_t) + | Proxy of C++ segm_move_infos_t class. + | + | Method resolution order: + | segm_move_infos_t + | segm_move_info_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> segm_move_infos_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_segm_move_infos_t(...) + | delete_segm_move_infos_t(self) + | + | find(self, *args) -> 'segm_move_info_t const *' + | find(self, ea) -> segm_move_info_t + | + | @param ea: ea_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from segm_move_info_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __getitem__(self, *args) -> 'segm_move_info_t const &' + | __getitem__(self, i) -> segm_move_info_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< segm_move_info_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: segm_move_info_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: segm_move_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | at(self, *args) -> 'segm_move_info_t const &' + | at(self, _idx) -> segm_move_info_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | begin(self) -> segm_move_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< segm_move_info_t >::const_iterator' + | end(self) -> segm_move_info_t + | + | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | erase(self, it) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | + | erase(self, first, last) -> segm_move_info_t + | + | @param first: qvector< segm_move_info_t >::iterator + | @param last: qvector< segm_move_info_t >::iterator + | + | extract(self, *args) -> 'segm_move_info_t *' + | extract(self) -> segm_move_info_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=segm_move_info_t()) + | + | @param x: segm_move_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: segm_move_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: segm_move_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' + | insert(self, it, x) -> segm_move_info_t + | + | @param it: qvector< segm_move_info_t >::iterator + | @param x: segm_move_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'segm_move_info_t &' + | push_back(self, x) + | + | @param x: segm_move_info_t const & + | + | push_back(self) -> segm_move_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: segm_move_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< segm_move_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from segm_move_info_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from segm_move_info_vec_t: + | + | __hash__ = None + +Module "ida_nalt"s docstring: +""" +Definitions of various information kept in netnodes. + +Each address in the program has a corresponding netnode: netnode(ea). + +If we have no information about an address, the corresponding netnode is not +created. Otherwise we will create a netnode and save information in it. All +variable length information (names, comments, offset information, etc) is stored +in the netnode. + +Don't forget that some information is already stored in the flags (bytes.hpp) + +@warning: Many of the functions in this file are very low level (they are marked + as low level functions). Use them only if you can't find higher level + function to set/get/del information.netnode.""" + +Help on function get_switch_info in module ida_nalt: + +get_switch_info(*args) -> 'ssize_t' + get_switch_info(out, ea) -> ssize_t + + @param out: switch_info_t * + @param ea: ea_t + +Help on function add_encoding in module ida_nalt: + +add_encoding(*args) -> 'int' + add_encoding(encname) -> int + Add a new encoding (e.g. "UTF-8"). If it's already in the list, return its + index. + + @param encname: (C++: const char *) the encoding name + @return: its index (1-based); -1 means error + +Help on class array_parameters_t in module ida_nalt: + +class array_parameters_t(builtins.object) + | Proxy of C++ array_parameters_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> array_parameters_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_array_parameters_t(...) + | delete_array_parameters_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | alignment + | alignment + | + | flags + | flags + | + | lineitems + | lineitems + | + | thisown + | The membership flag + +Help on function clr__bnot0 in module ida_nalt: + +clr__bnot0(*args) -> 'void' + clr__bnot0(ea) + + @param ea: ea_t + +Help on function clr__bnot1 in module ida_nalt: + +clr__bnot1(*args) -> 'void' + clr__bnot1(ea) + + @param ea: ea_t + +Help on function clr__invsign0 in module ida_nalt: + +clr__invsign0(*args) -> 'void' + clr__invsign0(ea) + + @param ea: ea_t + +Help on function clr__invsign1 in module ida_nalt: + +clr__invsign1(*args) -> 'void' + clr__invsign1(ea) + + @param ea: ea_t + +Help on function clr_abits in module ida_nalt: + +clr_abits(*args) -> 'void' + clr_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t + +Help on function clr_align_flow in module ida_nalt: + +clr_align_flow(*args) -> 'void' + clr_align_flow(ea) + + @param ea: ea_t + +Help on function clr_colored_item in module ida_nalt: + +clr_colored_item(*args) -> 'void' + clr_colored_item(ea) + + @param ea: ea_t + +Help on function clr_fixed_spd in module ida_nalt: + +clr_fixed_spd(*args) -> 'void' + clr_fixed_spd(ea) + + @param ea: ea_t + +Help on function clr_has_lname in module ida_nalt: + +clr_has_lname(*args) -> 'void' + clr_has_lname(ea) + + @param ea: ea_t + +Help on function clr_has_ti in module ida_nalt: + +clr_has_ti(*args) -> 'void' + clr_has_ti(ea) + + @param ea: ea_t + +Help on function clr_has_ti0 in module ida_nalt: + +clr_has_ti0(*args) -> 'void' + clr_has_ti0(ea) + + @param ea: ea_t + +Help on function clr_has_ti1 in module ida_nalt: + +clr_has_ti1(*args) -> 'void' + clr_has_ti1(ea) + + @param ea: ea_t + +Help on function clr_libitem in module ida_nalt: + +clr_libitem(*args) -> 'void' + clr_libitem(ea) + + @param ea: ea_t + +Help on function clr_lzero0 in module ida_nalt: + +clr_lzero0(*args) -> 'void' + clr_lzero0(ea) + + @param ea: ea_t + +Help on function clr_lzero1 in module ida_nalt: + +clr_lzero1(*args) -> 'void' + clr_lzero1(ea) + + @param ea: ea_t + +Help on function clr_noret in module ida_nalt: + +clr_noret(*args) -> 'void' + clr_noret(ea) + + @param ea: ea_t + +Help on function clr_notcode in module ida_nalt: + +clr_notcode(*args) -> 'void' + clr_notcode(ea) + Clear not-code mark. + + @param ea: (C++: ea_t) + +Help on function clr_notproc in module ida_nalt: + +clr_notproc(*args) -> 'void' + clr_notproc(ea) + + @param ea: ea_t + +Help on function clr_retfp in module ida_nalt: + +clr_retfp(*args) -> 'void' + clr_retfp(ea) + + @param ea: ea_t + +Help on function clr_terse_struc in module ida_nalt: + +clr_terse_struc(*args) -> 'void' + clr_terse_struc(ea) + + @param ea: ea_t + +Help on function clr_tilcmt in module ida_nalt: + +clr_tilcmt(*args) -> 'void' + clr_tilcmt(ea) + + @param ea: ea_t + +Help on function clr_usemodsp in module ida_nalt: + +clr_usemodsp(*args) -> 'void' + clr_usemodsp(ea) + + @param ea: ea_t + +Help on function clr_usersp in module ida_nalt: + +clr_usersp(*args) -> 'void' + clr_usersp(ea) + + @param ea: ea_t + +Help on function clr_userti in module ida_nalt: + +clr_userti(*args) -> 'void' + clr_userti(ea) + + @param ea: ea_t + +Help on function clr_zstroff in module ida_nalt: + +clr_zstroff(*args) -> 'void' + clr_zstroff(ea) + + @param ea: ea_t + +Help on class custom_data_type_ids_fids_array in module ida_nalt: + +class custom_data_type_ids_fids_array(builtins.object) + | Proxy of C++ wrapped_array_t< int16,8 > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'short const &' + | __getitem__(self, i) -> short const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> custom_data_type_ids_fids_array + | + | @param data: short (&)[8] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: short const & + | + | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) + | delete_custom_data_type_ids_fids_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class custom_data_type_ids_t in module ida_nalt: + +class custom_data_type_ids_t(builtins.object) + | Proxy of C++ custom_data_type_ids_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> custom_data_type_ids_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_custom_data_type_ids_t(...) + | delete_custom_data_type_ids_t(self) + | + | _custom_data_type_ids_t__getFids = __getFids(self, *args) -> 'wrapped_array_t< int16,8 >' + | __getFids(self) -> custom_data_type_ids_fids_array + | + | get_dtid(self, *args) -> 'tid_t' + | get_dtid(self) -> tid_t + | + | set(self, *args) -> 'void' + | set(self, tid) + | + | @param tid: tid_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | dtid + | dtid + | + | fids + | __getFids(self) -> custom_data_type_ids_fids_array + | + | thisown + | The membership flag + +Help on function dbg_get_input_path in module ida_nalt: + +dbg_get_input_path(*args) -> 'size_t' + dbg_get_input_path() -> str + Get debugger input file name/path (see LFLG_DBG_NOPATH) + +Help on function del_absbase in module ida_nalt: + +del_absbase(*args) -> 'void' + del_absbase(ea) + + @param ea: ea_t + +Help on function del_aflags in module ida_nalt: + +del_aflags(*args) -> 'void' + del_aflags(ea) + + @param ea: ea_t + +Help on function del_alignment in module ida_nalt: + +del_alignment(*args) -> 'void' + del_alignment(ea) + + @param ea: ea_t + +Help on function del_array_parameters in module ida_nalt: + +del_array_parameters(*args) -> 'void' + del_array_parameters(ea) + + @param ea: ea_t + +Help on function del_custom_data_type_ids in module ida_nalt: + +del_custom_data_type_ids(*args) -> 'void' + del_custom_data_type_ids(ea) + + @param ea: ea_t + +Help on function del_encoding in module ida_nalt: + +del_encoding(*args) -> 'bool' + del_encoding(idx) -> bool + Delete an encoding The encoding is not actually removed because its index may be + used in strtype. So the deletion just clears the encoding name. The default + encoding cannot be deleted. + + @param idx: (C++: int) the encoding index (1-based) + +Help on function del_ind_purged in module ida_nalt: + +del_ind_purged(*args) -> 'void' + del_ind_purged(ea) + + @param ea: ea_t + +Help on function del_item_color in module ida_nalt: + +del_item_color(*args) -> 'bool' + del_item_color(ea) -> bool + + @param ea: ea_t + +Help on function del_op_tinfo in module ida_nalt: + +del_op_tinfo(*args) -> 'void' + del_op_tinfo(ea, n) + + @param ea: ea_t + @param n: int + +Help on function del_refinfo in module ida_nalt: + +del_refinfo(*args) -> 'bool' + del_refinfo(ea, n) -> bool + + @param ea: ea_t + @param n: int + +Help on function del_source_linnum in module ida_nalt: + +del_source_linnum(*args) -> 'void' + del_source_linnum(ea) + + @param ea: ea_t + +Help on function del_str_type in module ida_nalt: + +del_str_type(*args) -> 'void' + del_str_type(ea) + + @param ea: ea_t + +Help on function del_switch_info in module ida_nalt: + +del_switch_info(*args) -> 'void' + del_switch_info(ea) + + @param ea: ea_t + +Help on function del_switch_parent in module ida_nalt: + +del_switch_parent(*args) -> 'void' + del_switch_parent(ea) + + @param ea: ea_t + +Help on function del_tinfo in module ida_nalt: + +del_tinfo(*args) -> 'void' + del_tinfo(ea) + + @param ea: ea_t + +Help on function delete_imports in module ida_nalt: + +delete_imports(*args) -> 'void' + delete_imports() + Delete all imported modules information. + +Help on function ea2node in module ida_nalt: + +ea2node(*args) -> 'nodeidx_t' + ea2node(ea) -> nodeidx_t + Get netnode for the specified address. + + @param ea: (C++: ea_t) + +Help on function encoding_from_strtype in module ida_nalt: + +encoding_from_strtype(*args) -> 'char const *' + encoding_from_strtype(strtype) -> char const * + Get encoding name for this strtype + @retval nullptr: if STRTYPE has an incorrent encoding index + @retval empty: string if the encoding was deleted + + @param strtype: (C++: int32) + +Help on class enum_const_t in module ida_nalt: + +class enum_const_t(builtins.object) + | Proxy of C++ enum_const_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> enum_const_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_const_t(...) + | delete_enum_const_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | serial + | serial + | + | thisown + | The membership flag + | + | tid + | tid + +Help on function enum_import_names in module ida_nalt: + +enum_import_names(*args) -> 'int' + enum_import_names(mod_index, py_cb) -> int + Enumerate imports from a specific module. + Please refer to ex_imports.py example. + + @param mod_index: The module index + @param callback: A callable object that will be invoked with an ea, name (could be None) and ordinal. + @return: 1-finished ok, -1 on error, otherwise callback return value (<=0) + +Help on function find_custom_refinfo in module ida_nalt: + +find_custom_refinfo(*args) -> 'int' + find_custom_refinfo(name) -> int + Get id of a custom refinfo type. + + @param name: (C++: const char *) char const * + +Help on function get_abi_name in module ida_nalt: + +get_abi_name() + +Help on function get_absbase in module ida_nalt: + +get_absbase(*args) -> 'ea_t' + get_absbase(ea) -> ea_t + + @param ea: ea_t + +Help on function get_aflags in module ida_nalt: + +get_aflags(*args) -> 'aflags_t' + get_aflags(ea) -> aflags_t + + @param ea: ea_t + +Help on function get_alignment in module ida_nalt: + +get_alignment(*args) -> 'uint32' + get_alignment(ea) -> uint32 + + @param ea: ea_t + +Help on function get_archive_path in module ida_nalt: + +get_archive_path(*args) -> 'qstring *' + get_archive_path() -> str + Get archive file path from which input file was extracted. + +Help on function get_array_parameters in module ida_nalt: + +get_array_parameters(*args) -> 'ssize_t' + get_array_parameters(out, ea) -> ssize_t + + @param out: array_parameters_t * + @param ea: ea_t + +Help on function get_asm_inc_file in module ida_nalt: + +get_asm_inc_file(*args) -> 'qstring *' + get_asm_inc_file() -> str + Get name of the include file. + +Help on function get_custom_data_type_ids in module ida_nalt: + +get_custom_data_type_ids(*args) -> 'int' + get_custom_data_type_ids(cdis, ea) -> int + + @param cdis: custom_data_type_ids_t * + @param ea: ea_t + +Help on function get_custom_refinfo in module ida_nalt: + +get_custom_refinfo(*args) -> 'custom_refinfo_handler_t const *' + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * + Get definition of a registered custom refinfo type. + + @param crid: (C++: int) + +Help on function get_default_encoding_idx in module ida_nalt: + +get_default_encoding_idx(*args) -> 'int' + get_default_encoding_idx(bpu) -> int + Get default encoding index for a specific string type. + + @param bpu: (C++: int) the amount of bytes per unit (e.g., 1 for ASCII, CP1252, UTF-8..., 2 + for UTF-16, 4 for UTF-32) + @retval 0: bad BPU argument + +Help on function get_elapsed_secs in module ida_nalt: + +get_elapsed_secs(*args) -> 'size_t' + get_elapsed_secs() -> size_t + Get seconds database stayed open. + +Help on function get_encoding_bpu in module ida_nalt: + +get_encoding_bpu(*args) -> 'int' + get_encoding_bpu(idx) -> int + Get the amount of bytes per unit (e.g., 2 for UTF-16, 4 for UTF-32) for the + encoding with the given index. + + @param idx: (C++: int) the encoding index (1-based) + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_bpu_by_name in module ida_nalt: + +get_encoding_bpu_by_name(*args) -> 'int' + get_encoding_bpu_by_name(encname) -> int + Get the amount of bytes per unit for the given encoding + + @param encname: (C++: const char *) the encoding name + @return: the number of bytes per units (1/2/4); -1 means error + +Help on function get_encoding_name in module ida_nalt: + +get_encoding_name(*args) -> 'char const *' + get_encoding_name(idx) -> char const * + Get encoding name for specific index (1-based). + + @param idx: (C++: int) the encoding index (1-based) + @retval nullptr: if IDX is out of bounds + @retval empty: string if the encoding was deleted + +Help on function get_encoding_qty in module ida_nalt: + +get_encoding_qty(*args) -> 'int' + get_encoding_qty() -> int + Get total number of encodings (counted from 0) + +Help on function get_gotea in module ida_nalt: + +get_gotea(*args) -> 'ea_t' + get_gotea() -> ea_t + +Help on function get_ida_notepad_text in module ida_nalt: + +get_ida_notepad_text(*args) -> 'qstring *' + get_ida_notepad_text() -> str + Get notepad text. + +Help on function get_idb_ctime in module ida_nalt: + +get_idb_ctime(*args) -> 'time_t' + get_idb_ctime() -> time_t + Get database creation timestamp. + +Help on function get_idb_nopens in module ida_nalt: + +get_idb_nopens(*args) -> 'size_t' + get_idb_nopens() -> size_t + Get number of times the database is opened. + +Help on function get_ids_modnode in module ida_nalt: + +get_ids_modnode(*args) -> 'netnode' + get_ids_modnode() -> netnode + Get ids modnode. + +Help on function get_imagebase in module ida_nalt: + +get_imagebase(*args) -> 'ea_t' + get_imagebase() -> ea_t + Get image base address. + +Help on function get_import_module_name in module ida_nalt: + +get_import_module_name(*args) -> 'PyObject *' + get_import_module_name(mod_index) -> str + Returns the name of an imported module given its index + + @param mod_index: int + @return: None or the module name + +Help on function get_import_module_qty in module ida_nalt: + +get_import_module_qty(*args) -> 'uint' + get_import_module_qty() -> uint + Get number of import modules. + +Help on function get_ind_purged in module ida_nalt: + +get_ind_purged(*args) -> 'ea_t' + get_ind_purged(ea) -> ea_t + + @param ea: ea_t + +Help on function get_initial_ida_version in module ida_nalt: + +get_initial_ida_version(*args) -> 'qstring *' + get_initial_ida_version() -> str + Get version of ida which created the database (string format like "7.5") + +Help on function get_initial_idb_version in module ida_nalt: + +get_initial_idb_version(*args) -> 'ushort' + get_initial_idb_version() -> ushort + Get initial version of the database (numeric format like 700) + +Help on function get_input_file_path in module ida_nalt: + +get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str + Get full path of the input file. + +Help on function get_item_color in module ida_nalt: + +get_item_color(*args) -> 'bgcolor_t' + get_item_color(ea) -> bgcolor_t + + @param ea: ea_t + +Help on function get_loader_format_name in module ida_nalt: + +get_loader_format_name(*args) -> 'qstring *' + get_loader_format_name() -> str + Get file format name for loader modules. + +Help on function get_op_tinfo in module ida_nalt: + +get_op_tinfo(*args) -> 'bool' + get_op_tinfo(tif, ea, n) -> bool + + @param tif: tinfo_t * + @param ea: ea_t + @param n: int + +Help on function get_outfile_encoding_idx in module ida_nalt: + +get_outfile_encoding_idx(*args) -> 'int' + get_outfile_encoding_idx() -> int + Get the index of the encoding used when producing files + @retval 0: the IDB's default 1 byte-per-unit encoding is used + +Help on function get_refinfo in module ida_nalt: + +get_refinfo(*args) -> 'bool' + get_refinfo(ri, ea, n) -> bool + + @param ri: refinfo_t * + @param ea: ea_t + @param n: int + +Help on function get_reftype_by_size in module ida_nalt: + +get_reftype_by_size(*args) -> 'reftype_t' + get_reftype_by_size(size) -> reftype_t + Get REF_... constant from size Supported sizes: 1,2,4,8,16 For other sizes + returns reftype_t(-1) + + @param size: (C++: size_t) + +Help on function get_root_filename in module ida_nalt: + +get_root_filename(*args) -> 'size_t' + get_root_filename() -> str + Get file name only of the input file. + +Help on function get_source_linnum in module ida_nalt: + +get_source_linnum(*args) -> 'uval_t' + get_source_linnum(ea) -> uval_t + + @param ea: ea_t + +Help on function get_srcdbg_paths in module ida_nalt: + +get_srcdbg_paths(*args) -> 'qstring *' + get_srcdbg_paths() -> str + Get source debug paths. + +Help on function get_srcdbg_undesired_paths in module ida_nalt: + +get_srcdbg_undesired_paths(*args) -> 'qstring *' + get_srcdbg_undesired_paths() -> str + Get user-closed source files. + +Help on function get_str_encoding_idx in module ida_nalt: + +get_str_encoding_idx(*args) -> 'uchar' + get_str_encoding_idx(strtype) -> uchar + Get index of the string encoding for this string. + + @param strtype: (C++: int32) + +Help on function get_str_term1 in module ida_nalt: + +get_str_term1(*args) -> 'char' + get_str_term1(strtype) -> char + + @param strtype: int32 + +Help on function get_str_term2 in module ida_nalt: + +get_str_term2(*args) -> 'char' + get_str_term2(strtype) -> char + + @param strtype: int32 + +Help on function get_str_type in module ida_nalt: + +get_str_type(*args) -> 'uint32' + get_str_type(ea) -> uint32 + + @param ea: ea_t + +Help on function get_str_type_code in module ida_nalt: + +get_str_type_code(*args) -> 'uchar' + get_str_type_code(strtype) -> uchar + + @param strtype: int32 + +Help on function get_str_type_prefix_length in module ida_nalt: + +get_str_type_prefix_length(*args) -> 'size_t' + get_str_type_prefix_length(strtype) -> size_t + + @param strtype: int32 + +Help on function get_strid in module ida_nalt: + +get_strid(*args) -> 'tid_t' + get_strid(ea) -> tid_t + + @param ea: ea_t + +Help on function get_strtype_bpu in module ida_nalt: + +get_strtype_bpu(*args) -> 'int' + get_strtype_bpu(strtype) -> int + + @param strtype: int32 + +Help on function get_switch_info in module ida_nalt: + +get_switch_info(*args) + +Help on function get_switch_parent in module ida_nalt: + +get_switch_parent(*args) -> 'ea_t' + get_switch_parent(ea) -> ea_t + + @param ea: ea_t + +Help on function get_tinfo in module ida_nalt: + +get_tinfo(*args) -> 'bool' + get_tinfo(tif, ea) -> bool + + @param tif: tinfo_t * + @param ea: ea_t + +Help on function getnode in module ida_nalt: + +getnode(*args) -> 'netnode' + getnode(ea) -> netnode + + @param ea: ea_t + +Help on function has_aflag_linnum in module ida_nalt: + +has_aflag_linnum(*args) -> 'bool' + has_aflag_linnum(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_lname in module ida_nalt: + +has_aflag_lname(*args) -> 'bool' + has_aflag_lname(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti in module ida_nalt: + +has_aflag_ti(*args) -> 'bool' + has_aflag_ti(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti0 in module ida_nalt: + +has_aflag_ti0(*args) -> 'bool' + has_aflag_ti0(flags) -> bool + + @param flags: aflags_t + +Help on function has_aflag_ti1 in module ida_nalt: + +has_aflag_ti1(*args) -> 'bool' + has_aflag_ti1(flags) -> bool + + @param flags: aflags_t + +Help on function has_lname in module ida_nalt: + +has_lname(*args) -> 'bool' + has_lname(ea) -> bool + + @param ea: ea_t + +Help on function has_ti in module ida_nalt: + +has_ti(*args) -> 'bool' + has_ti(ea) -> bool + + @param ea: ea_t + +Help on function has_ti0 in module ida_nalt: + +has_ti0(*args) -> 'bool' + has_ti0(ea) -> bool + + @param ea: ea_t + +Help on function has_ti1 in module ida_nalt: + +has_ti1(*args) -> 'bool' + has_ti1(ea) -> bool + + @param ea: ea_t + +Help on function hide_border in module ida_nalt: + +hide_border(*args) -> 'void' + hide_border(ea) + + @param ea: ea_t + +Help on function hide_item in module ida_nalt: + +hide_item(*args) -> 'void' + hide_item(ea) + + @param ea: ea_t + +Help on function is__bnot0 in module ida_nalt: + +is__bnot0(*args) -> 'bool' + is__bnot0(ea) -> bool + + @param ea: ea_t + +Help on function is__bnot1 in module ida_nalt: + +is__bnot1(*args) -> 'bool' + is__bnot1(ea) -> bool + + @param ea: ea_t + +Help on function is__invsign0 in module ida_nalt: + +is__invsign0(*args) -> 'bool' + is__invsign0(ea) -> bool + + @param ea: ea_t + +Help on function is__invsign1 in module ida_nalt: + +is__invsign1(*args) -> 'bool' + is__invsign1(ea) -> bool + + @param ea: ea_t + +Help on function is_aflag__bnot0 in module ida_nalt: + +is_aflag__bnot0(*args) -> 'bool' + is_aflag__bnot0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__bnot1 in module ida_nalt: + +is_aflag__bnot1(*args) -> 'bool' + is_aflag__bnot1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign0 in module ida_nalt: + +is_aflag__invsign0(*args) -> 'bool' + is_aflag__invsign0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag__invsign1 in module ida_nalt: + +is_aflag__invsign1(*args) -> 'bool' + is_aflag__invsign1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_align_flow in module ida_nalt: + +is_aflag_align_flow(*args) -> 'bool' + is_aflag_align_flow(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_colored_item in module ida_nalt: + +is_aflag_colored_item(*args) -> 'bool' + is_aflag_colored_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_data_guessed_by_hexrays in module ida_nalt: + +is_aflag_data_guessed_by_hexrays(*args) -> 'bool' + is_aflag_data_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_fixed_spd in module ida_nalt: + +is_aflag_fixed_spd(*args) -> 'bool' + is_aflag_fixed_spd(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_func_guessed_by_hexrays in module ida_nalt: + +is_aflag_func_guessed_by_hexrays(*args) -> 'bool' + is_aflag_func_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_border in module ida_nalt: + +is_aflag_hidden_border(*args) -> 'bool' + is_aflag_hidden_border(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_hidden_item in module ida_nalt: + +is_aflag_hidden_item(*args) -> 'bool' + is_aflag_hidden_item(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_libitem in module ida_nalt: + +is_aflag_libitem(*args) -> 'bool' + is_aflag_libitem(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero0 in module ida_nalt: + +is_aflag_lzero0(*args) -> 'bool' + is_aflag_lzero0(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_lzero1 in module ida_nalt: + +is_aflag_lzero1(*args) -> 'bool' + is_aflag_lzero1(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_manual_insn in module ida_nalt: + +is_aflag_manual_insn(*args) -> 'bool' + is_aflag_manual_insn(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_noret in module ida_nalt: + +is_aflag_noret(*args) -> 'bool' + is_aflag_noret(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notcode in module ida_nalt: + +is_aflag_notcode(*args) -> 'bool' + is_aflag_notcode(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_notproc in module ida_nalt: + +is_aflag_notproc(*args) -> 'bool' + is_aflag_notproc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_public_name in module ida_nalt: + +is_aflag_public_name(*args) -> 'bool' + is_aflag_public_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_retfp in module ida_nalt: + +is_aflag_retfp(*args) -> 'bool' + is_aflag_retfp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_terse_struc in module ida_nalt: + +is_aflag_terse_struc(*args) -> 'bool' + is_aflag_terse_struc(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_tilcmt in module ida_nalt: + +is_aflag_tilcmt(*args) -> 'bool' + is_aflag_tilcmt(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_determined_by_hexrays in module ida_nalt: + +is_aflag_type_determined_by_hexrays(*args) -> 'bool' + is_aflag_type_determined_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_hexrays in module ida_nalt: + +is_aflag_type_guessed_by_hexrays(*args) -> 'bool' + is_aflag_type_guessed_by_hexrays(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_type_guessed_by_ida in module ida_nalt: + +is_aflag_type_guessed_by_ida(*args) -> 'bool' + is_aflag_type_guessed_by_ida(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_usersp in module ida_nalt: + +is_aflag_usersp(*args) -> 'bool' + is_aflag_usersp(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_userti in module ida_nalt: + +is_aflag_userti(*args) -> 'bool' + is_aflag_userti(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_weak_name in module ida_nalt: + +is_aflag_weak_name(*args) -> 'bool' + is_aflag_weak_name(flags) -> bool + + @param flags: aflags_t + +Help on function is_aflag_zstroff in module ida_nalt: + +is_aflag_zstroff(*args) -> 'bool' + is_aflag_zstroff(flags) -> bool + + @param flags: aflags_t + +Help on function is_align_flow in module ida_nalt: + +is_align_flow(*args) -> 'bool' + is_align_flow(ea) -> bool + + @param ea: ea_t + +Help on function is_colored_item in module ida_nalt: + +is_colored_item(*args) -> 'bool' + is_colored_item(ea) -> bool + + @param ea: ea_t + +Help on function is_data_guessed_by_hexrays in module ida_nalt: + +is_data_guessed_by_hexrays(*args) -> 'bool' + is_data_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_finally_visible_item in module ida_nalt: + +is_finally_visible_item(*args) -> 'bool' + is_finally_visible_item(ea) -> bool + Is instruction visible? + + @param ea: (C++: ea_t) + +Help on function is_fixed_spd in module ida_nalt: + +is_fixed_spd(*args) -> 'bool' + is_fixed_spd(ea) -> bool + + @param ea: ea_t + +Help on function is_func_guessed_by_hexrays in module ida_nalt: + +is_func_guessed_by_hexrays(*args) -> 'bool' + is_func_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_hidden_border in module ida_nalt: + +is_hidden_border(*args) -> 'bool' + is_hidden_border(ea) -> bool + + @param ea: ea_t + +Help on function is_hidden_item in module ida_nalt: + +is_hidden_item(*args) -> 'bool' + is_hidden_item(ea) -> bool + + @param ea: ea_t + +Help on function is_libitem in module ida_nalt: + +is_libitem(*args) -> 'bool' + is_libitem(ea) -> bool + + @param ea: ea_t + +Help on function is_lzero0 in module ida_nalt: + +is_lzero0(*args) -> 'bool' + is_lzero0(ea) -> bool + + @param ea: ea_t + +Help on function is_lzero1 in module ida_nalt: + +is_lzero1(*args) -> 'bool' + is_lzero1(ea) -> bool + + @param ea: ea_t + +Help on function is_noret in module ida_nalt: + +is_noret(*args) -> 'bool' + is_noret(ea) -> bool + + @param ea: ea_t + +Help on function is_notcode in module ida_nalt: + +is_notcode(*args) -> 'bool' + is_notcode(ea) -> bool + Is the address marked as not-code? + + @param ea: (C++: ea_t) + +Help on function is_notproc in module ida_nalt: + +is_notproc(*args) -> 'bool' + is_notproc(ea) -> bool + + @param ea: ea_t + +Help on function is_pascal in module ida_nalt: + +is_pascal(*args) -> 'bool' + is_pascal(strtype) -> bool + + @param strtype: int32 + +Help on function is_reftype_target_optional in module ida_nalt: + +is_reftype_target_optional(*args) -> 'bool' + is_reftype_target_optional(type) -> bool + Can the target be calculated using operand value? + + @param type: (C++: reftype_t) + +Help on function is_retfp in module ida_nalt: + +is_retfp(*args) -> 'bool' + is_retfp(ea) -> bool + + @param ea: ea_t + +Help on function is_terse_struc in module ida_nalt: + +is_terse_struc(*args) -> 'bool' + is_terse_struc(ea) -> bool + + @param ea: ea_t + +Help on function is_tilcmt in module ida_nalt: + +is_tilcmt(*args) -> 'bool' + is_tilcmt(ea) -> bool + + @param ea: ea_t + +Help on function is_type_determined_by_hexrays in module ida_nalt: + +is_type_determined_by_hexrays(*args) -> 'bool' + is_type_determined_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_hexrays in module ida_nalt: + +is_type_guessed_by_hexrays(*args) -> 'bool' + is_type_guessed_by_hexrays(ea) -> bool + + @param ea: ea_t + +Help on function is_type_guessed_by_ida in module ida_nalt: + +is_type_guessed_by_ida(*args) -> 'bool' + is_type_guessed_by_ida(ea) -> bool + + @param ea: ea_t + +Help on function is_usersp in module ida_nalt: + +is_usersp(*args) -> 'bool' + is_usersp(ea) -> bool + + @param ea: ea_t + +Help on function is_userti in module ida_nalt: + +is_userti(*args) -> 'bool' + is_userti(ea) -> bool + + @param ea: ea_t + +Help on function is_visible_item in module ida_nalt: + +is_visible_item(*args) -> 'bool' + is_visible_item(ea) -> bool + Test visibility of item at given ea. + + @param ea: (C++: ea_t) + +Help on function is_zstroff in module ida_nalt: + +is_zstroff(*args) -> 'bool' + is_zstroff(ea) -> bool + + @param ea: ea_t + +Help on function make_str_type in module ida_nalt: + +make_str_type(*args) -> 'int32' + make_str_type(type_code, encoding_idx, term1=0, term2=0) -> int32 + Get string type for a string in the given encoding. + + @param type_code: (C++: uchar) + @param encoding_idx: (C++: int) + @param term1: (C++: uchar) + @param term2: (C++: uchar) + +Help on function node2ea in module ida_nalt: + +node2ea(*args) -> 'ea_t' + node2ea(ndx) -> ea_t + + @param ndx: nodeidx_t + +Help on class opinfo_t in module ida_nalt: + +class opinfo_t(builtins.object) + | Proxy of C++ opinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> opinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_opinfo_t(...) + | delete_opinfo_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cd + | cd + | + | ec + | ec + | + | path + | path + | + | ri + | ri + | + | strtype + | strtype + | + | thisown + | The membership flag + | + | tid + | tid + +Help on class printop_t in module ida_nalt: + +class printop_t(builtins.object) + | Proxy of C++ printop_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> printop_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_printop_t(...) + | delete_printop_t(self) + | + | get_ti(self, *args) -> 'opinfo_t const *' + | get_ti(self) -> opinfo_t + | + | is_aflags_initialized(self, *args) -> 'bool' + | is_aflags_initialized(self) -> bool + | + | is_ti_initialized(self, *args) -> 'bool' + | is_ti_initialized(self) -> bool + | + | set_aflags_initialized(self, *args) -> 'void' + | set_aflags_initialized(self, v=True) + | + | @param v: bool + | + | set_ti_initialized(self, *args) -> 'void' + | set_ti_initialized(self, v=True) + | + | @param v: bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | aflags + | aflags + | + | features + | features + | + | flags + | flags + | + | is_ti_valid + | is_ti_initialized(self) -> bool + | + | suspop + | suspop + | + | thisown + | The membership flag + | + | ti + | ti + +Help on class refinfo_t in module ida_nalt: + +class refinfo_t(builtins.object) + | Proxy of C++ refinfo_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> refinfo_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_refinfo_t(...) + | delete_refinfo_t(self) + | + | init(self, *args) -> 'void' + | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | + | @param reft_and_flags: uint32 + | @param _base: ea_t + | @param _target: ea_t + | @param _tdelta: adiff_t + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | + | is_no_ones(self, *args) -> 'bool' + | is_no_ones(self) -> bool + | + | is_no_zeros(self, *args) -> 'bool' + | is_no_zeros(self) -> bool + | + | is_pastend(self, *args) -> 'bool' + | is_pastend(self) -> bool + | + | is_rvaoff(self, *args) -> 'bool' + | is_rvaoff(self) -> bool + | + | is_selfref(self, *args) -> 'bool' + | is_selfref(self) -> bool + | + | is_signed(self, *args) -> 'bool' + | is_signed(self) -> bool + | + | is_subtract(self, *args) -> 'bool' + | is_subtract(self) -> bool + | + | is_target_optional(self, *args) -> 'bool' + | is_target_optional(self) -> bool + | < is_reftype_target_optional() + | + | no_base_xref(self, *args) -> 'bool' + | no_base_xref(self) -> bool + | + | set_type(self, *args) -> 'void' + | set_type(self, rt) + | + | @param rt: reftype_t + | + | type(self, *args) -> 'reftype_t' + | type(self) -> reftype_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | base + | base + | + | flags + | flags + | + | target + | target + | + | tdelta + | tdelta + | + | thisown + | The membership flag + +Help on function rename_encoding in module ida_nalt: + +rename_encoding(*args) -> 'bool' + rename_encoding(idx, encname) -> bool + Change name for an encoding The number of bytes per unit (BPU) of the new + encoding must match this number of the existing default encoding. Specifying the + empty name simply deletes this encoding. + + @param idx: (C++: int) the encoding index (1-based) + @param encname: (C++: const char *) the new encoding name + +Help on function retrieve_input_file_crc32 in module ida_nalt: + +retrieve_input_file_crc32(*args) -> 'uint32' + retrieve_input_file_crc32() -> uint32 + Get input file crc32 stored in the database. it can be used to check that the + input file has not been changed. + +Help on function retrieve_input_file_md5 in module ida_nalt: + +retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes + Get input file md5. + +Help on function retrieve_input_file_sha256 in module ida_nalt: + +retrieve_input_file_sha256(*args) -> 'uchar [ANY]' + retrieve_input_file_sha256() -> bytes + Get input file sha256. + +Help on function retrieve_input_file_size in module ida_nalt: + +retrieve_input_file_size(*args) -> 'size_t' + retrieve_input_file_size() -> size_t + Get size of input file in bytes. + +Help on function set__bnot0 in module ida_nalt: + +set__bnot0(*args) -> 'void' + set__bnot0(ea) + + @param ea: ea_t + +Help on function set__bnot1 in module ida_nalt: + +set__bnot1(*args) -> 'void' + set__bnot1(ea) + + @param ea: ea_t + +Help on function set__invsign0 in module ida_nalt: + +set__invsign0(*args) -> 'void' + set__invsign0(ea) + + @param ea: ea_t + +Help on function set__invsign1 in module ida_nalt: + +set__invsign1(*args) -> 'void' + set__invsign1(ea) + + @param ea: ea_t + +Help on function set_abits in module ida_nalt: + +set_abits(*args) -> 'void' + set_abits(ea, bits) + + @param ea: ea_t + @param bits: aflags_t + +Help on function set_absbase in module ida_nalt: + +set_absbase(*args) -> 'void' + set_absbase(ea, x) + + @param ea: ea_t + @param x: ea_t + +Help on function set_aflags in module ida_nalt: + +set_aflags(*args) -> 'void' + set_aflags(ea, flags) + + @param ea: ea_t + @param flags: aflags_t + +Help on function set_align_flow in module ida_nalt: + +set_align_flow(*args) -> 'void' + set_align_flow(ea) + + @param ea: ea_t + +Help on function set_alignment in module ida_nalt: + +set_alignment(*args) -> 'void' + set_alignment(ea, x) + + @param ea: ea_t + @param x: uint32 + +Help on function set_archive_path in module ida_nalt: + +set_archive_path(*args) -> 'bool' + set_archive_path(file) -> bool + Set archive file path from which input file was extracted. + + @param file: (C++: const char *) char const * + +Help on function set_array_parameters in module ida_nalt: + +set_array_parameters(*args) -> 'void' + set_array_parameters(ea, _in) + + @param ea: ea_t + @param in: array_parameters_t const * + +Help on function set_asm_inc_file in module ida_nalt: + +set_asm_inc_file(*args) -> 'bool' + set_asm_inc_file(file) -> bool + Set name of the include file. + + @param file: (C++: const char *) char const * + +Help on function set_colored_item in module ida_nalt: + +set_colored_item(*args) -> 'void' + set_colored_item(ea) + + @param ea: ea_t + +Help on function set_custom_data_type_ids in module ida_nalt: + +set_custom_data_type_ids(*args) -> 'void' + set_custom_data_type_ids(ea, cdis) + + @param ea: ea_t + @param cdis: custom_data_type_ids_t const * + +Help on function set_data_guessed_by_hexrays in module ida_nalt: + +set_data_guessed_by_hexrays(*args) -> 'void' + set_data_guessed_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_default_encoding_idx in module ida_nalt: + +set_default_encoding_idx(*args) -> 'bool' + set_default_encoding_idx(bpu, idx) -> bool + Set default encoding for a string type + + @param bpu: (C++: int) the amount of bytes per unit + @param idx: (C++: int) the encoding index. It cannot be 0 + +Help on function set_fixed_spd in module ida_nalt: + +set_fixed_spd(*args) -> 'void' + set_fixed_spd(ea) + + @param ea: ea_t + +Help on function set_func_guessed_by_hexrays in module ida_nalt: + +set_func_guessed_by_hexrays(*args) -> 'void' + set_func_guessed_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_gotea in module ida_nalt: + +set_gotea(*args) -> 'void' + set_gotea(gotea) + + @param gotea: ea_t + +Help on function set_has_lname in module ida_nalt: + +set_has_lname(*args) -> 'void' + set_has_lname(ea) + + @param ea: ea_t + +Help on function set_has_ti in module ida_nalt: + +set_has_ti(*args) -> 'void' + set_has_ti(ea) + + @param ea: ea_t + +Help on function set_has_ti0 in module ida_nalt: + +set_has_ti0(*args) -> 'void' + set_has_ti0(ea) + + @param ea: ea_t + +Help on function set_has_ti1 in module ida_nalt: + +set_has_ti1(*args) -> 'void' + set_has_ti1(ea) + + @param ea: ea_t + +Help on function set_ida_notepad_text in module ida_nalt: + +set_ida_notepad_text(*args) -> 'void' + set_ida_notepad_text(text, size=0) + Set notepad text. + + @param text: (C++: const char *) char const * + @param size: (C++: size_t) + +Help on function set_ids_modnode in module ida_nalt: + +set_ids_modnode(*args) -> 'void' + set_ids_modnode(id) + Set ids modnode. + + @param id: (C++: netnode) + +Help on function set_imagebase in module ida_nalt: + +set_imagebase(*args) -> 'void' + set_imagebase(base) + Set image base address. + + @param base: (C++: ea_t) + +Help on function set_item_color in module ida_nalt: + +set_item_color(*args) -> 'void' + set_item_color(ea, color) + + @param ea: ea_t + @param color: bgcolor_t + +Help on function set_libitem in module ida_nalt: + +set_libitem(*args) -> 'void' + set_libitem(ea) + + @param ea: ea_t + +Help on function set_loader_format_name in module ida_nalt: + +set_loader_format_name(*args) -> 'void' + set_loader_format_name(name) + Set file format name for loader modules. + + @param name: (C++: const char *) char const * + +Help on function set_lzero0 in module ida_nalt: + +set_lzero0(*args) -> 'void' + set_lzero0(ea) + + @param ea: ea_t + +Help on function set_lzero1 in module ida_nalt: + +set_lzero1(*args) -> 'void' + set_lzero1(ea) + + @param ea: ea_t + +Help on function set_noret in module ida_nalt: + +set_noret(*args) -> 'void' + set_noret(ea) + + @param ea: ea_t + +Help on function set_notcode in module ida_nalt: + +set_notcode(*args) -> 'void' + set_notcode(ea) + Mark address so that it cannot be converted to instruction. + + @param ea: (C++: ea_t) + +Help on function set_notproc in module ida_nalt: + +set_notproc(*args) -> 'void' + set_notproc(ea) + + @param ea: ea_t + +Help on function set_op_tinfo in module ida_nalt: + +set_op_tinfo(*args) -> 'bool' + set_op_tinfo(ea, n, tif) -> bool + + @param ea: ea_t + @param n: int + @param tif: tinfo_t const * + +Help on function set_outfile_encoding_idx in module ida_nalt: + +set_outfile_encoding_idx(*args) -> 'bool' + set_outfile_encoding_idx(idx) -> bool + set encoding to be used when producing files + + @param idx: (C++: int) the encoding index IDX can be 0 to use the IDB's default 1-byte-per- + unit encoding + +Help on function set_refinfo in module ida_nalt: + +set_refinfo(*args) -> 'bool' + set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + + @param ea: ea_t + @param n: int + @param type: reftype_t + @param target: ea_t + @param base: ea_t + @param tdelta: adiff_t + +Help on function set_refinfo_ex in module ida_nalt: + +set_refinfo_ex(*args) -> 'bool' + set_refinfo_ex(ea, n, ri) -> bool + + @param ea: ea_t + @param n: int + @param ri: refinfo_t const * + +Help on function set_retfp in module ida_nalt: + +set_retfp(*args) -> 'void' + set_retfp(ea) + + @param ea: ea_t + +Help on function set_root_filename in module ida_nalt: + +set_root_filename(*args) -> 'void' + set_root_filename(file) + Set full path of the input file. + + @param file: (C++: const char *) char const * + +Help on function set_source_linnum in module ida_nalt: + +set_source_linnum(*args) -> 'void' + set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t + +Help on function set_srcdbg_paths in module ida_nalt: + +set_srcdbg_paths(*args) -> 'void' + set_srcdbg_paths(paths) + Set source debug paths. + + @param paths: (C++: const char *) char const * + +Help on function set_srcdbg_undesired_paths in module ida_nalt: + +set_srcdbg_undesired_paths(*args) -> 'void' + set_srcdbg_undesired_paths(paths) + Set user-closed source files. + + @param paths: (C++: const char *) char const * + +Help on function set_str_encoding_idx in module ida_nalt: + +set_str_encoding_idx(*args) -> 'int32' + set_str_encoding_idx(strtype, encoding_idx) -> int32 + Set index of the string encoding in the string type. + + @param strtype: (C++: int32) + @param encoding_idx: (C++: int) + +Help on function set_str_type in module ida_nalt: + +set_str_type(*args) -> 'void' + set_str_type(ea, x) + + @param ea: ea_t + @param x: uint32 + +Help on function set_switch_info in module ida_nalt: + +set_switch_info(*args) -> 'void' + set_switch_info(ea, _in) + + @param ea: ea_t + @param in: switch_info_t const & + +Help on function set_switch_parent in module ida_nalt: + +set_switch_parent(*args) -> 'void' + set_switch_parent(ea, x) + + @param ea: ea_t + @param x: ea_t + +Help on function set_terse_struc in module ida_nalt: + +set_terse_struc(*args) -> 'void' + set_terse_struc(ea) + + @param ea: ea_t + +Help on function set_tilcmt in module ida_nalt: + +set_tilcmt(*args) -> 'void' + set_tilcmt(ea) + + @param ea: ea_t + +Help on function set_tinfo in module ida_nalt: + +set_tinfo(*args) -> 'bool' + set_tinfo(ea, tif) -> bool + + @param ea: ea_t + @param tif: tinfo_t const * + +Help on function set_type_determined_by_hexrays in module ida_nalt: + +set_type_determined_by_hexrays(*args) -> 'void' + set_type_determined_by_hexrays(ea) + + @param ea: ea_t + +Help on function set_type_guessed_by_ida in module ida_nalt: + +set_type_guessed_by_ida(*args) -> 'void' + set_type_guessed_by_ida(ea) + + @param ea: ea_t + +Help on function set_usemodsp in module ida_nalt: + +set_usemodsp(*args) -> 'void' + set_usemodsp(ea) + + @param ea: ea_t + +Help on function set_usersp in module ida_nalt: + +set_usersp(*args) -> 'void' + set_usersp(ea) + + @param ea: ea_t + +Help on function set_userti in module ida_nalt: + +set_userti(*args) -> 'void' + set_userti(ea) + + @param ea: ea_t + +Help on function set_visible_item in module ida_nalt: + +set_visible_item(*args) -> 'void' + set_visible_item(ea, visible) + Change visibility of item at given ea. + + @param ea: (C++: ea_t) + @param visible: (C++: bool) + +Help on function set_zstroff in module ida_nalt: + +set_zstroff(*args) -> 'void' + set_zstroff(ea) + + @param ea: ea_t + +Help on class strpath_ids_array in module ida_nalt: + +class strpath_ids_array(builtins.object) + | Proxy of C++ wrapped_array_t< tid_t,32 > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> strpath_ids_array + | + | @param data: unsigned-ea-like-numeric-type (&)[32]↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_strpath_ids_array(...) + | delete_strpath_ids_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class strpath_t in module ida_nalt: + +class strpath_t(builtins.object) + | Proxy of C++ strpath_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> strpath_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_strpath_t(...) + | delete_strpath_t(self) + | + | _strpath_t__getIds = __getIds(self, *args) -> 'wrapped_array_t< tid_t,32 >' + | __getIds(self) -> strpath_ids_array + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | delta + | delta + | + | ids + | __getIds(self) -> strpath_ids_array + | + | len + | len + | + | thisown + | The membership flag + +Help on class switch_info_t in module ida_nalt: + +class switch_info_t(builtins.object) + | Proxy of C++ switch_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> switch_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_switch_info_t(...) + | delete_switch_info_t(self) + | + | _get_values_lowcase(self, *args) -> 'ea_t' + | _get_values_lowcase(self) -> ea_t + | + | _set_values_lowcase(self, *args) -> 'void' + | _set_values_lowcase(self, values) + | + | Parameters + | ---------- + | values: ea_t + | + | assign(self, *args) -> 'void' + | assign(self, other) + | + | @param other: switch_info_t const & + | + | clear(self, *args) -> 'void' + | clear(self) + | + | get_jrange_vrange(self, *args) -> 'bool' + | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | get separate parts of the switch + | + | @param jrange: (C++: range_t *) + | @param vrange: (C++: range_t *) + | + | get_jtable_element_size(self, *args) -> 'int' + | get_jtable_element_size(self) -> int + | + | get_jtable_size(self, *args) -> 'int' + | get_jtable_size(self) -> int + | + | get_lowcase(self, *args) -> 'sval_t' + | get_lowcase(self) -> sval_t + | + | get_shift(self, *args) -> 'int' + | get_shift(self) -> int + | See SWI_SHIFT_MASK. possible answers: 0..3. + | + | get_version(self, *args) -> 'int' + | get_version(self) -> int + | + | get_vtable_element_size(self, *args) -> 'int' + | get_vtable_element_size(self) -> int + | + | has_default(self, *args) -> 'bool' + | has_default(self) -> bool + | + | has_elbase(self, *args) -> 'bool' + | has_elbase(self) -> bool + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | + | is_indirect(self, *args) -> 'bool' + | is_indirect(self) -> bool + | + | is_nolowcase(self, *args) -> 'bool' + | is_nolowcase(self) -> bool + | + | is_sparse(self, *args) -> 'bool' + | is_sparse(self) -> bool + | + | is_subtract(self, *args) -> 'bool' + | is_subtract(self) -> bool + | + | is_user_defined(self, *args) -> 'bool' + | is_user_defined(self) -> bool + | + | set_elbase(self, *args) -> 'void' + | set_elbase(self, base) + | + | @param base: ea_t + | + | set_expr(self, *args) -> 'void' + | set_expr(self, r, dt) + | + | @param r: int + | @param dt: op_dtype_t + | + | set_jtable_element_size(self, *args) -> 'void' + | set_jtable_element_size(self, size) + | + | @param size: int + | + | set_jtable_size(self, *args) -> 'void' + | set_jtable_size(self, size) + | + | @param size: int + | + | set_shift(self, *args) -> 'void' + | set_shift(self, shift) + | See SWI_SHIFT_MASK. + | + | @param shift: (C++: int) + | + | set_vtable_element_size(self, *args) -> 'void' + | set_vtable_element_size(self, size) + | + | @param size: int + | + | use_std_table(self, *args) -> 'bool' + | use_std_table(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | custom + | custom + | + | defjump + | defjump + | + | elbase + | elbase + | + | expr_ea + | expr_ea + | + | flags + | flags + | + | ind_lowcase + | ind_lowcase + | + | jcases + | jcases + | + | jumps + | jumps + | + | lowcase + | _get_values_lowcase(self) -> ea_t + | + | marks + | marks + | + | ncases + | ncases + | + | regdtype + | regdtype + | + | regnum + | regnum + | + | startea + | startea + | + | thisown + | The membership flag + | + | values + | _get_values_lowcase(self) -> ea_t + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | SWITCH_INFO_VERSION = 2 + +Help on function switch_info_t__from_ptrval__ in module ida_nalt: + +switch_info_t__from_ptrval__(*args) -> 'switch_info_t *' + switch_info_t__from_ptrval__(ptrval) -> switch_info_t + + @param ptrval: size_t + +Help on function unhide_border in module ida_nalt: + +unhide_border(*args) -> 'void' + unhide_border(ea) + + @param ea: ea_t + +Help on function unhide_item in module ida_nalt: + +unhide_item(*args) -> 'void' + unhide_item(ea) + + @param ea: ea_t + +Help on function upd_abits in module ida_nalt: + +upd_abits(*args) -> 'void' + upd_abits(ea, clr_bits, set_bits) + + @param ea: ea_t + @param clr_bits: aflags_t + @param set_bits: aflags_t + +Help on function uses_aflag_modsp in module ida_nalt: + +uses_aflag_modsp(*args) -> 'bool' + uses_aflag_modsp(flags) -> bool + + @param flags: aflags_t + +Help on function uses_modsp in module ida_nalt: + +uses_modsp(*args) -> 'bool' + uses_modsp(ea) -> bool + + @param ea: ea_t + +Help on function validate_idb_names in module ida_nalt: + +validate_idb_names(*args) -> 'int' + validate_idb_names(do_repair) -> int + + @param do_repair: bool + +Module "ida_name"s docstring: +""" +Functions that deal with names. + +A non-tail address of the program may have a name. Tail addresses (i.e. the +addresses in the middle of an instruction or data item) cannot have names.""" + +Help on class NearestName in module ida_name: + +class NearestName(builtins.object) + | Utility class to help find the nearest name in a given ea/name dictionary + | + | Methods defined here: + | + | __getitem__(self, index) + | Returns the tupple (ea, name, index) + | + | __init__(self, ea_names) + | Initialize self. See help(type(self)) for accurate signature. + | + | __iter__(self) + | + | _get_item(self, index) + | + | find(self, ea) + | Returns a tupple (ea, name, pos) that is the nearest to the passed ea + | If no name is matched then None is returned + | + | update(self, ea_names) + | Updates the ea/names map + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function append_struct_fields in module ida_name: + +append_struct_fields(*args) -> 'qstring *, adiff_t *' + append_struct_fields(disp, n, path, flags, delta, appzero) -> str + Append names of struct fields to a name if the name is a struct name. + + @param disp: (C++: adiff_t *) displacement from the name + @param n: (C++: int) number of operand n which the name appears + @param path: (C++: const tid_t *) path in the struct. path is an array of id's. maximal length of + array is MAXSTRUCPATH. the first element of the array is the + structure id. consecutive elements are id's of used union members + (if any). + @param flags: (C++: flags64_t) the input flags. they will be returned if the struct cannot be + found. + @param delta: (C++: adiff_t) delta to add to displacement + @param appzero: (C++: bool) should append a struct field name if the displacement is zero? + @return: flags of the innermost struct member or the input flags + +Help on function calc_gtn_flags in module ida_name: + +calc_gtn_flags(fromaddr, ea) + Calculate flags for get_ea_name() function + + @param fromaddr: the referring address. May be BADADDR. + @param ea: linear address + + @return: flags + +Help on function cleanup_name in module ida_name: + +cleanup_name(*args) -> 'qstring *' + cleanup_name(ea, name, flags=0) -> str + + @param ea: ea_t + @param name: char const * + @param flags: uint32 + +Help on function del_debug_names in module ida_name: + +del_debug_names(*args) -> 'void' + del_debug_names(ea1, ea2) + + @param ea1: ea_t + @param ea2: ea_t + +Help on function del_global_name in module ida_name: + +del_global_name(*args) -> 'bool' + del_global_name(ea) -> bool + + @param ea: ea_t + +Help on function del_local_name in module ida_name: + +del_local_name(*args) -> 'bool' + del_local_name(ea) -> bool + + @param ea: ea_t + +Help on function demangle_name in module ida_name: + +demangle_name(*args) -> 'qstring *' + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str + Demangle a name. + + @param name: (C++: const char *) char const * + @param disable_mask: (C++: uint32) + @param demreq: (C++: demreq_type_t) enum demreq_type_t + +Help on class ea_name_t in module ida_name: + +class ea_name_t(builtins.object) + | Proxy of C++ ea_name_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ea_name_t + | __init__(self, _ea, _name) -> ea_name_t + | + | @param _ea: ea_t + | @param _name: qstring const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ea_name_t(...) + | delete_ea_name_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | name + | name + | + | thisown + | The membership flag + +Help on class ea_name_vec_t in module ida_name: + +class ea_name_vec_t(builtins.object) + | Proxy of C++ qvector< ea_name_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'ea_name_t const &' + | __getitem__(self, i) -> ea_name_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> ea_name_vec_t + | __init__(self, x) -> ea_name_vec_t + | + | @param x: qvector< ea_name_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: ea_name_t const & + | + | __swig_destroy__ = delete_ea_name_vec_t(...) + | delete_ea_name_vec_t(self) + | + | at(self, *args) -> 'ea_name_t const &' + | at(self, _idx) -> ea_name_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< ea_name_t >::const_iterator' + | begin(self) -> ea_name_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< ea_name_t >::const_iterator' + | end(self) -> ea_name_t + | + | erase(self, *args) -> 'qvector< ea_name_t >::iterator' + | erase(self, it) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | + | erase(self, first, last) -> ea_name_t + | + | @param first: qvector< ea_name_t >::iterator + | @param last: qvector< ea_name_t >::iterator + | + | extract(self, *args) -> 'ea_name_t *' + | extract(self) -> ea_name_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=ea_name_t()) + | + | @param x: ea_name_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: ea_name_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< ea_name_t >::iterator' + | insert(self, it, x) -> ea_name_t + | + | @param it: qvector< ea_name_t >::iterator + | @param x: ea_name_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'ea_name_t &' + | push_back(self, x) + | + | @param x: ea_name_t const & + | + | push_back(self) -> ea_name_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: ea_name_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< ea_name_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function extract_name in module ida_name: + +extract_name(*args) -> 'qstring *' + extract_name(line, x) -> str + Extract a name or address from the specified string. + + @param line: (C++: const char *) input string + @param x: (C++: int) x coordinate of cursor + @return: -1 if cannot extract. otherwise length of the name + +Help on function force_name in module ida_name: + +force_name(*args) -> 'bool' + force_name(ea, name, flags=0) -> bool + + @param ea: ea_t + @param name: char const * + @param flags: int + +Help on function get_colored_demangled_name in module ida_name: + +get_colored_demangled_name(*args) -> 'qstring' + get_colored_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int + +Help on function get_colored_long_name in module ida_name: + +get_colored_long_name(*args) -> 'qstring' + get_colored_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_colored_name in module ida_name: + +get_colored_name(*args) -> 'qstring' + get_colored_name(ea) -> qstring + + @param ea: ea_t + +Help on function get_colored_short_name in module ida_name: + +get_colored_short_name(*args) -> 'qstring' + get_colored_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_cp_validity in module ida_name: + +get_cp_validity(*args) -> 'bool' + get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + Is the given codepoint (or range) acceptable in the given context? If 'endcp' is + not BADCP, it is considered to be the end of the range: [cp, endcp), and is not + included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) + +Help on function get_debug_name in module ida_name: + +get_debug_name(*args) -> 'qstring *' + get_debug_name(ea_ptr, how) -> str + + @param ea_ptr: ea_t * + @param how: enum debug_name_how_t + +Help on function get_debug_name_ea in module ida_name: + +get_debug_name_ea(*args) -> 'ea_t' + get_debug_name_ea(name) -> ea_t + + @param name: char const * + +Help on function get_debug_names in module ida_name: + +get_debug_names(*args) -> 'PyObject *' + get_debug_names(names, ea1, ea2) + + @param names: ea_name_vec_t * + @param ea1: ea_t + @param ea2: ea_t + + get_debug_names(ea1, ea2, return_list=False) -> dict or None + + @param ea1: ea_t + @param ea2: ea_t + @param return_list: bool + +Help on function get_demangled_name in module ida_name: + +get_demangled_name(*args) -> 'qstring' + get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + + @param ea: ea_t + @param inhibitor: int32 + @param demform: int + @param gtn_flags: int + +Help on function get_ea_name in module ida_name: + +get_ea_name(*args) -> 'qstring' + get_ea_name(ea, gtn_flags=0) -> qstring + Get name at the specified address. + + @param ea: (C++: ea_t) linear address + @param gtn_flags: (C++: int) how exactly the name should be retrieved. combination of bits + for get_ea_name() function. There is a convenience bits + @return: success + +Help on function get_long_name in module ida_name: + +get_long_name(*args) -> 'qstring' + get_long_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_mangled_name_type in module ida_name: + +get_mangled_name_type(*args) -> 'mangled_name_type_t' + get_mangled_name_type(name) -> mangled_name_type_t + + @param name: char const * + +Help on function get_name in module ida_name: + +get_name(*args) -> 'qstring' + get_name(ea) -> qstring + + @param ea: ea_t + +Help on function get_name_base_ea in module ida_name: + +get_name_base_ea(*args) -> 'ea_t' + get_name_base_ea(_from, to) -> ea_t + Get address of the name used in the expression for the address + + @param from: (C++: ea_t) address of the operand which references to the address + @param to: (C++: ea_t) the referenced address + @return: address of the name used to represent the operand + +Help on function get_name_color in module ida_name: + +get_name_color(*args) -> 'color_t' + get_name_color(_from, ea) -> color_t + Calculate flags for get_ea_name() function. + + Get name color. + + @param from: (C++: ea_t) linear address where the name is used. if not applicable, then + should be BADADDR. The kernel returns a local name color if the + reference is within a function, i.e. 'from' and 'ea' belong to the + same function. + @param ea: (C++: ea_t) linear address + +Help on function get_name_ea in module ida_name: + +get_name_ea(*args) -> 'ea_t' + get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. + + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR + +Help on function get_name_expr in module ida_name: + +get_name_expr(*args) -> 'qstring *' + get_name_expr(_from, n, ea, off, flags=0x0001) -> str + Convert address to name expression (name with a displacement). This function + takes into account fixup information and returns a colored name expression (in + the form <name> +/- <offset>). It also knows about structure members and arrays. + If the specified address doesn't have a name, a dummy name is generated. + + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of the operand in the instruction. + @param n: (C++: int) number of referencing operand. for data items specify 0 + @param ea: (C++: ea_t) address to convert to name expression + @param off: (C++: uval_t) the value of name expression. this parameter is used only to check + that the name expression will have the wanted value. 'off' may be + equal to BADADDR but this is discouraged because it prohibits + checks. + @param flags: (C++: int) Name expression flags + @return: < 0 if address is not valid, no segment or other failure. otherwise the + length of the name expression in characters. + +Help on function get_name_value in module ida_name: + +get_name_value(*args) -> 'uval_t *' + get_name_value(_from, name) -> int + Get value of the name. This function knows about: regular names, enums, special + segments, etc. + + @param from: (C++: ea_t) linear address where the name is used if not applicable, then + should be BADADDR + @param name: (C++: const char *) any name in the program or nullptr + @return: Name value result codes + +Help on function get_nice_colored_name in module ida_name: + +get_nice_colored_name(*args) -> 'qstring *' + get_nice_colored_name(ea, flags=0) -> str + Get a nice colored name at the specified address. Ex: + * segment:sub+offset + * segment:sub:local_label + * segment:label + * segment:address + * segment:address+offset + + @param ea: (C++: ea_t) linear address + @param flags: (C++: int) Nice colored name flags + @return: the length of the generated name in bytes. + +Help on function get_nlist_ea in module ida_name: + +get_nlist_ea(*args) -> 'ea_t' + get_nlist_ea(idx) -> ea_t + Get address from the list at 'idx'. + + @param idx: (C++: size_t) + +Help on function get_nlist_idx in module ida_name: + +get_nlist_idx(*args) -> 'size_t' + get_nlist_idx(ea) -> size_t + Get index of the name in the list + @warning: returns the closest match. may return idx >= size. + + @param ea: (C++: ea_t) + +Help on function get_nlist_name in module ida_name: + +get_nlist_name(*args) -> 'char const *' + get_nlist_name(idx) -> char const * + Get name using idx. + + @param idx: (C++: size_t) + +Help on function get_nlist_size in module ida_name: + +get_nlist_size(*args) -> 'size_t' + get_nlist_size() -> size_t + Get number of names in the list. + +Help on function get_short_name in module ida_name: + +get_short_name(*args) -> 'qstring' + get_short_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function get_visible_name in module ida_name: + +get_visible_name(*args) -> 'qstring' + get_visible_name(ea, gtn_flags=0) -> qstring + + @param ea: ea_t + @param gtn_flags: int + +Help on function hide_name in module ida_name: + +hide_name(*args) -> 'void' + hide_name(ea) + Remove name from the list of names + + @param ea: (C++: ea_t) address of the name + +Help on function is_ident in module ida_name: + +is_ident(*args) -> 'bool' + is_ident(name) -> bool + Is a valid name? (including ::MangleChars) + + @param name: (C++: const char *) char const * + +Help on function is_ident_cp in module ida_name: + +is_ident_cp(*args) -> 'bool' + is_ident_cp(cp) -> bool + Can a character appear in a name? (present in ::NameChars or ::MangleChars) + + @param cp: (C++: wchar32_t) + +Help on function is_in_nlist in module ida_name: + +is_in_nlist(*args) -> 'bool' + is_in_nlist(ea) -> bool + Is the name included into the name list? + + @param ea: (C++: ea_t) + +Help on function is_name_defined_locally in module ida_name: + +is_name_defined_locally(*args) -> 'bool' + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool + Is the name defined locally in the specified function? + + @param pfn: (C++: func_t *) pointer to function + @param name: (C++: const char *) name to check + @param ignore_name_def: (C++: ignore_name_def_t) which names to ignore when checking + @param ea1: (C++: ea_t) the starting address of the range inside the function (optional) + @param ea2: (C++: ea_t) the ending address of the range inside the function (optional) + @return: true if the name has been defined + +Help on function is_public_name in module ida_name: + +is_public_name(*args) -> 'bool' + is_public_name(ea) -> bool + + @param ea: ea_t + +Help on function is_strlit_cp in module ida_name: + +is_strlit_cp(*args) -> 'bool' + is_strlit_cp(cp, specific_ranges=None) -> bool + Can a character appear in a string literal (present in ::StrlitChars) If + 'specific_ranges' are specified, those will be used instead of the ones + corresponding to the current culture (only if ::StrlitChars is configured to use + the current culture) + + @param cp: (C++: wchar32_t) + @param specific_ranges: (C++: const rangeset_crefvec_t *) rangeset_crefvec_t const * + +Help on function is_uname in module ida_name: + +is_uname(*args) -> 'bool' + is_uname(name) -> bool + Is valid user-specified name? (valid name & !dummy prefix). + + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no + +Help on function is_valid_cp in module ida_name: + +is_valid_cp(*args) -> 'bool' + is_valid_cp(cp, kind, data=None) -> bool + Is the given codepoint acceptable in the given context? + + @param cp: (C++: wchar32_t) + @param kind: (C++: nametype_t) enum nametype_t + @param data: (C++: void *) + +Help on function is_valid_typename in module ida_name: + +is_valid_typename(*args) -> 'bool' + is_valid_typename(name) -> bool + Is valid type name? + + @param name: (C++: const char *) name to test. may be nullptr. + @retval 1: yes + @retval 0: no + +Help on function is_visible_cp in module ida_name: + +is_visible_cp(*args) -> 'bool' + is_visible_cp(cp) -> bool + Can a character be displayed in a name? (present in ::NameChars) + + @param cp: (C++: wchar32_t) + +Help on function is_weak_name in module ida_name: + +is_weak_name(*args) -> 'bool' + is_weak_name(ea) -> bool + + @param ea: ea_t + +Help on function make_name_auto in module ida_name: + +make_name_auto(*args) -> 'bool' + make_name_auto(ea) -> bool + + @param ea: ea_t + +Help on function make_name_non_public in module ida_name: + +make_name_non_public(*args) -> 'void' + make_name_non_public(ea) + + @param ea: ea_t + +Help on function make_name_non_weak in module ida_name: + +make_name_non_weak(*args) -> 'void' + make_name_non_weak(ea) + + @param ea: ea_t + +Help on function make_name_public in module ida_name: + +make_name_public(*args) -> 'void' + make_name_public(ea) + + @param ea: ea_t + +Help on function make_name_user in module ida_name: + +make_name_user(*args) -> 'bool' + make_name_user(ea) -> bool + + @param ea: ea_t + +Help on function make_name_weak in module ida_name: + +make_name_weak(*args) -> 'void' + make_name_weak(ea) + + @param ea: ea_t + +Help on function rebuild_nlist in module ida_name: + +rebuild_nlist(*args) -> 'void' + rebuild_nlist() + Rebuild the name list. + +Help on function reorder_dummy_names in module ida_name: + +reorder_dummy_names(*args) -> 'void' + reorder_dummy_names() + Renumber dummy names. + +Help on function set_cp_validity in module ida_name: + +set_cp_validity(*args) -> 'void' + set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + Mark the given codepoint (or range) as acceptable or unacceptable in the given + context If 'endcp' is not BADCP, it is considered to be the end of the range: + [cp, endcp), and is not included in the range + + @param kind: (C++: ucdr_kind_t) enum ucdr_kind_t + @param cp: (C++: wchar32_t) + @param endcp: (C++: wchar32_t) + +Help on function set_debug_name in module ida_name: + +set_debug_name(*args) -> 'bool' + set_debug_name(ea, name) -> bool + + @param ea: ea_t + @param name: char const * + +Help on function set_dummy_name in module ida_name: + +set_dummy_name(*args) -> 'bool' + set_dummy_name(_from, ea) -> bool + Give an autogenerated (dummy) name. Autogenerated names have special prefixes + (loc_...). + + @param from: (C++: ea_t) linear address of the operand which references to the address + @param ea: (C++: ea_t) linear address + @retval 1: ok, dummy name is generated or the byte already had a name + @retval 0: failure, invalid address or tail byte + +Help on function set_name in module ida_name: + +set_name(*args) -> 'bool' + set_name(ea, name, flags=0) -> bool + Set or delete name of an item at the specified address. An item can be anything: + instruction, function, data byte, word, string, structure, etc... Include name + into the list of names. + + @param ea: (C++: ea_t) linear address. do nothing if ea is not valid (return 0). tail bytes + can't have names. + @param name: (C++: const char *) new name. + * nullptr: do nothing (return 0). + * "" : delete name. + * otherwise this is a new name. + @param flags: (C++: int) Set name flags. If a bit is not specified, then the corresponding + action is not performed and the name will retain the same bits as + before calling this function. For new names, default is: non- + public, non-weak, non-auto. + @retval 1: ok, name is changed + @retval 0: failure, a warning is displayed + +Help on function show_name in module ida_name: + +show_name(*args) -> 'void' + show_name(ea) + Insert name to the list of names. + + @param ea: (C++: ea_t) + +Help on function validate_name in module ida_name: + +validate_name(*args) -> 'PyObject *' + validate_name(name, type, flags=0) -> PyObject * + Validate a name. This function replaces all invalid characters in the name with + SUBSTCHAR. However, it will return false if name is valid but not allowed to be + an identifier (is a register name). + + @param name: (C++: qstring *) ptr to name. the name will be modified + @param type: (C++: nametype_t) the type of name we want to validate + @param flags: (C++: int) see SN_* . Only SN_IDBENC is currently considered + @return: success + +Module "ida_netnode"s docstring: +""" +Functions that provide the lowest level public interface to the database. +Namely, we use Btree. To learn more about BTree: + +\link{https://en.wikipedia.org/wiki/B-tree} + +We do not use Btree directly. Instead, we have another layer built on the top of +Btree. Here is a brief explanation of this layer. + +An object called "netnode" is modeled on the top of Btree. Each netnode has a +unique id: a 32-bit value (64-bit for ida64). Initially there is a trivial +mapping of the linear addresses used in the program to netnodes (later this +mapping may be modified using ea2node and node2ea functions; this is used for +fast database rebasings). If we have additional information about an address +(for example, a comment is attached to it), this information is stored in the +corresponding netnode. See nalt.hpp to see how the kernel uses netnodes. Also, +some netnodes have no corresponding linear address (however, they still have an +id). They are used to store information not related to a particular address. + +Each netnode _may_ have the following attributes: + +* a name: an arbitrary non-empty string, up to 255KB-1 bytes +* a value: arbitrary sized object, max size is MAXSPECSIZE +* altvals: a sparse array of 32-bit values. indexes in this array may be 8-bit +or 32-bit values +* supvals: an array of arbitrary sized objects. (size of each object is limited +by MAXSPECSIZE) indexes in this array may be 8-bit or 32-bit values +* charvals: a sparse array of 8-bit values. indexes in this array may be 8-bit +or 32-bit values +* hashvals: a hash (an associative array). indexes in this array are strings +values are arbitrary sized (max size is MAXSPECSIZE) + +Initially a new netnode contains no information at all so no disk space is used +for it. As you add new information, the netnode grows. + +All arrays that are attached to the netnode behave in the same manner. +Initially: +* all members of altvals/charvals array are zeroes +* all members of supvals/hashvals array are undefined + +If you need to store objects bigger that MAXSPECSIZE, please note that there are +high-level functions to store arbitrary sized objects in supvals. See +setblob/getblob and other blob-related functions. + +You may use netnodes to store additional information about the program. +Limitations on the use of netnodes are the following: + +* use netnodes only if you could not find a kernel service to store your type of +information +* do not create netnodes with valid identifier names. Use the "$ " prefix (or +any other prefix with characters not allowed in the identifiers for the names of +your netnodes. Although you will probably not destroy anything by accident, +using already defined names for the names of your netnodes is still discouraged. +* you may create as many netnodes as you want (creation of an unnamed netnode +does not increase the size of the database). however, since each netnode has a +number, creating too many netnodes could lead to the exhaustion of the netnode +numbers (the numbering starts at 0xFF000000) +* remember that netnodes are automatically saved to the disk by the kernel. + +Advanced info: + +In fact a netnode may contain up to 256 arrays of arbitrary sized objects (not +only the 4 listed above). Each array has an 8-bit tag. Usually tags are +represented by character constants. For example, altvals and supvals are simply +2 of 256 arrays, with the tags 'A' and 'S' respectively.""" + +Help on function exist in module ida_netnode: + +exist(*args) -> 'bool' + exist(n) -> bool + + @param n: netnode const & + +Help on class netnode in module ida_netnode: + +class netnode(builtins.object) + | Proxy of C++ netnode class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, n) -> bool + | + | @param n: netnode & + | + | __eq__(self, x) -> bool + | + | @param x: nodeidx_t + | + | __init__(self, *args) + | __init__(self, num=nodeidx_t(-1)) -> netnode + | + | @param num: nodeidx_t + | + | __init__(self, _name, namlen=0, do_create=False) -> netnode + | + | @param _name: char const * + | @param namlen: size_t + | @param do_create: bool + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | + | @param n: netnode & + | + | __ne__(self, x) -> bool + | + | @param x: nodeidx_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_netnode(...) + | delete_netnode(self) + | + | altdel(self, *args) -> 'bool' + | altdel(self, alt, tag=atag) -> bool + | Delete all elements of altval array. This function may be applied to 32-bit and + | 8-bit altval arrays. This function deletes the whole altval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | altdel(self) -> bool + | + | altdel_all(self, *args) -> 'bool' + | altdel_all(self, tag=atag) -> bool + | Delete all elements of the specified altval array. This function may be applied + | to 32-bit and 8-bit altval arrays. This function deletes the whole altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: success + | + | altdel_ea(self, *args) -> 'bool' + | altdel_ea(self, ea, tag=atag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | altdel_idx8(self, *args) -> 'bool' + | altdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar + | + | altfirst(self, *args) -> 'nodeidx_t' + | altfirst(self, tag=atag) -> nodeidx_t + | Get first existing element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of altval array, BADNODE if altval + | array is empty + | + | altfirst_idx8(self, *args) -> 'nodeidx_t' + | altfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | altlast(self, *args) -> 'nodeidx_t' + | altlast(self, tag=atag) -> nodeidx_t + | Get last element of altval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of altval array, BADNODE if altval array + | is empty + | + | altlast_idx8(self, *args) -> 'nodeidx_t' + | altlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | altnext(self, *args) -> 'nodeidx_t' + | altnext(self, cur, tag=atag) -> nodeidx_t + | Get next existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of altval array, BADNODE if no more + | altval array elements exist + | + | altnext_idx8(self, *args) -> 'nodeidx_t' + | altnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | altprev(self, *args) -> 'nodeidx_t' + | altprev(self, cur, tag=atag) -> nodeidx_t + | Get previous existing element of altval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of altval array, BADNODE if no + | more altval array elements exist + | + | altprev_idx8(self, *args) -> 'nodeidx_t' + | altprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | altset(self, *args) -> 'bool' + | altset(self, alt, value, tag=atag) -> bool + | Set value of altval array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param value: (C++: nodeidx_t) new value of altval element + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: failed, normally should not occur + | + | altset_ea(self, *args) -> 'bool' + | altset_ea(self, ea, value, tag=atag) -> bool + | + | @param ea: ea_t + | @param value: nodeidx_t + | @param tag: uchar + | + | altset_idx8(self, *args) -> 'bool' + | altset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: nodeidx_t + | @param tag: uchar + | + | altshift(self, *args) -> 'size_t' + | altshift(self, _from, to, size, tag=atag) -> size_t + | Shift the altval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements + | + | altval(self, *args) -> 'nodeidx_t' + | altval(self, alt, tag=atag) -> nodeidx_t + | Get altval element of the specified array. + | + | @param alt: (C++: nodeidx_t) index into array of altvals + | @param tag: (C++: uchar) tag of array. may be omitted + | @return: value of altval element. nonexistent altval members are returned as + | zeroes + | + | altval_ea(self, *args) -> 'nodeidx_t' + | altval_ea(self, ea, tag=atag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar + | + | altval_idx8(self, *args) -> 'nodeidx_t' + | altval_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | blobsize(self, *args) -> 'size_t' + | blobsize(self, _start, tag) -> size_t + | Get size of blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of bytes required to store a blob + | + | blobsize_ea(self, *args) -> 'size_t' + | blobsize_ea(self, ea, tag) -> size_t + | + | @param ea: ea_t + | @param tag: uchar + | + | chardel(self, *args) -> 'bool' + | chardel(self, alt, tag) -> bool + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | chardel_ea(self, *args) -> 'bool' + | chardel_ea(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | chardel_idx8(self, *args) -> 'bool' + | chardel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar + | + | charfirst(self, *args) -> 'nodeidx_t' + | charfirst(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charfirst_idx8(self, *args) -> 'nodeidx_t' + | charfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charlast(self, *args) -> 'nodeidx_t' + | charlast(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charlast_idx8(self, *args) -> 'nodeidx_t' + | charlast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | charnext(self, *args) -> 'nodeidx_t' + | charnext(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar + | + | charnext_idx8(self, *args) -> 'nodeidx_t' + | charnext_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | charprev(self, *args) -> 'nodeidx_t' + | charprev(self, cur, tag) -> nodeidx_t + | + | @param cur: nodeidx_t + | @param tag: uchar + | + | charprev_idx8(self, *args) -> 'nodeidx_t' + | charprev_idx8(self, cur, tag) -> nodeidx_t + | + | @param cur: uchar + | @param tag: uchar + | + | charset(self, *args) -> 'bool' + | charset(self, alt, val, tag) -> bool + | + | @param alt: nodeidx_t + | @param val: uchar + | @param tag: uchar + | + | charset_ea(self, *args) -> 'bool' + | charset_ea(self, ea, val, tag) -> bool + | + | @param ea: ea_t + | @param val: uchar + | @param tag: uchar + | + | charset_idx8(self, *args) -> 'bool' + | charset_idx8(self, alt, val, tag) -> bool + | + | @param alt: uchar + | @param val: uchar + | @param tag: uchar + | + | charshift(self, *args) -> 'size_t' + | charshift(self, _from, to, size, tag) -> size_t + | + | @param from: nodeidx_t + | @param to: nodeidx_t + | @param size: nodeidx_t + | @param tag: uchar + | + | charval(self, *args) -> 'uchar' + | charval(self, alt, tag) -> uchar + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | charval_ea(self, *args) -> 'uchar' + | charval_ea(self, ea, tag) -> uchar + | + | @param ea: ea_t + | @param tag: uchar + | + | charval_idx8(self, *args) -> 'uchar' + | charval_idx8(self, alt, tag) -> uchar + | + | @param alt: uchar + | @param tag: uchar + | + | copyto(self, *args) -> 'size_t' + | copyto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t + | + | create(self, *args) -> 'bool' + | create(self, _name, namlen=0) -> bool + | Create unnamed netnode. + | @retval 1: ok + | @retval 0: should not happen, indicates internal error + | + | @param _name: char const * + | @param namlen: size_t + | + | create(self) -> bool + | + | delblob(self, *args) -> 'int' + | delblob(self, _start, tag) -> int + | Delete a blob. + | + | @param _start: (C++: nodeidx_t) index of the first supval element used to store blob + | @param tag: (C++: uchar) tag of supval array + | @return: number of deleted supvals + | + | delblob_ea(self, *args) -> 'int' + | delblob_ea(self, ea, tag) -> int + | + | @param ea: ea_t + | @param tag: uchar + | + | delvalue(self, *args) -> 'bool' + | delvalue(self) -> bool + | Delete value of netnode. + | @retval 1: ok + | @retval 0: failed, netnode is bad or other error + | + | eadel(self, *args) -> 'bool' + | eadel(self, ea, tag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | eadel_idx8(self, *args) -> 'bool' + | eadel_idx8(self, idx, tag) -> bool + | + | @param idx: uchar + | @param tag: uchar + | + | eaget(self, *args) -> 'ea_t' + | eaget(self, ea, tag) -> ea_t + | + | @param ea: ea_t + | @param tag: uchar + | + | eaget_idx(self, *args) -> 'ea_t' + | eaget_idx(self, idx, tag) -> ea_t + | + | @param idx: nodeidx_t + | @param tag: uchar + | + | eaget_idx8(self, *args) -> 'ea_t' + | eaget_idx8(self, idx, tag) -> ea_t + | + | @param idx: uchar + | @param tag: uchar + | + | easet(self, *args) -> 'bool' + | easet(self, ea, addr, tag) -> bool + | Store/retrieve/delete an address value in the netnode that corresponds to an + | address. + | + | @param ea: (C++: ea_t) + | @param addr: (C++: ea_t) + | @param tag: (C++: uchar) + | + | easet_idx(self, *args) -> 'bool' + | easet_idx(self, idx, addr, tag) -> bool + | + | @param idx: nodeidx_t + | @param addr: ea_t + | @param tag: uchar + | + | easet_idx8(self, *args) -> 'bool' + | easet_idx8(self, idx, addr, tag) -> bool + | + | @param idx: uchar + | @param addr: ea_t + | @param tag: uchar + | + | end(self, *args) -> 'bool' + | end(self) -> bool + | Get last netnode in the graph. Sets netnodenumber to the highest existing + | number. + | @retval true: ok + | @retval false: graph is empty + | + | get_name(self, *args) -> 'ssize_t' + | get_name(self) -> ssize_t + | Get the netnode name. + | + | @return: -1 if netnode is unnamed (buf is untouched in this case), otherwise the + | name length + | + | getblob(self, *args) -> 'PyObject *' + | getblob(self, start, tag) -> bytes or None + | Get blob from a netnode into a qstring* and make sure the string is null- + | terminated. + | + | @param start: nodeidx_t + | @param tag: (C++: uchar) tag of supval array + | @return: -1 if blob doesn't exist size of string (including terminating null) + | otherwise + | + | getblob_ea(self, *args) -> 'PyObject *' + | getblob_ea(self, ea, tag) -> PyObject * + | + | @param ea: ea_t + | @param tag: char + | + | getclob(self, *args) -> 'PyObject *' + | getclob(self, start, tag) -> str + | + | @param start: nodeidx_t + | @param tag: char + | + | hashdel(self, *args) -> 'bool' + | hashdel(self, idx, tag=htag) -> bool + | Delete hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval true: deleted + | @retval false: element does not exist + | + | hashdel_all(self, *args) -> 'bool' + | hashdel_all(self, tag=htag) -> bool + | Delete all elements of hash. This function deletes the whole hash. + | + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: success + | + | hashfirst(self, *args) -> 'ssize_t' + | hashfirst(self, tag=htag) -> ssize_t + | @see: hashfirst(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) + | + | hashlast(self, *args) -> 'ssize_t' + | hashlast(self, tag=htag) -> ssize_t + | @see: hashlast(qstring *buf, uchar tag=htag) const + | + | @param tag: (C++: uchar) + | + | hashnext(self, *args) -> 'ssize_t' + | hashnext(self, idx, tag=htag) -> ssize_t + | @see: hashnext(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) + | + | hashprev(self, *args) -> 'ssize_t' + | hashprev(self, idx, tag=htag) -> ssize_t + | @see: hashprev(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) + | + | hashset(self, *args) -> 'bool' + | hashset(self, idx, value, tag=htag) -> bool + | Set value of hash element to long value. + | + | @param idx: (C++: const char *) index into hash + | @param value: (C++: nodeidx_t) new value of hash element + | @param tag: (C++: uchar) tag of hash. Default: htag + | @retval 1: ok + | @retval 0: should not occur - indicates internal error + | + | hashset_buf(self, *args) -> 'bool' + | hashset_buf(self, idx, py_str, tag=htag) -> bool + | + | @param idx: char const * + | @param py_str: PyObject * + | @param tag: char + | + | hashset_idx(self, *args) -> 'bool' + | hashset_idx(self, idx, value, tag=htag) -> bool + | + | @param idx: char const * + | @param value: nodeidx_t + | @param tag: uchar + | + | hashstr(self, *args) -> 'ssize_t' + | hashstr(self, idx, tag=htag) -> ssize_t + | @see: hashstr(qstring *buf, const char *idx, uchar tag=htag) const + | + | @param idx: (C++: const char *) char const * + | @param tag: (C++: uchar) + | + | hashstr_buf(self, *args) -> 'PyObject *' + | hashstr_buf(self, idx, tag=htag) -> PyObject * + | + | @param idx: char const * + | @param tag: char + | + | hashval(self, *args) -> 'ssize_t' + | hashval(self, idx, tag=htag) -> ssize_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: -1 if element doesn't exist or idx is nullptr. otherwise returns the + | value size in bytes + | + | hashval_long(self, *args) -> 'nodeidx_t' + | hashval_long(self, idx, tag=htag) -> nodeidx_t + | Get value of the specified hash element. + | + | @param idx: (C++: const char *) index into hash + | @param tag: (C++: uchar) tag of hash. Default: htag + | @return: value of hash element (it should be set using hashset(nodeidx_t)), 0 if + | the element does not exist + | + | index(self, *args) -> 'nodeidx_t' + | index(self) -> nodeidx_t + | + | kill(self, *args) -> 'void' + | kill(self) + | Delete a netnode with all information attached to it. + | + | long_value(self, *args) -> 'nodeidx_t' + | long_value(self) -> nodeidx_t + | + | lower_bound(self, *args) -> 'nodeidx_t' + | lower_bound(self, cur, tag=stag) -> nodeidx_t + | Get lower bound of existing elements of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array >= cur BADNODE if + | supval array is empty + | + | lower_bound_ea(self, *args) -> 'nodeidx_t' + | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | + | @param ea: ea_t + | @param tag: uchar + | + | lower_bound_idx8(self, *args) -> 'nodeidx_t' + | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | moveto(self, *args) -> 'size_t' + | moveto(self, destnode, count=1) -> size_t + | + | @param destnode: netnode + | @param count: nodeidx_t + | + | next(self, *args) -> 'bool' + | next(self) -> bool + | Get next netnode in the graph. Sets netnodenumber to the next existing number + | @retval true: ok + | @retval false: no more netnodes + | + | prev(self, *args) -> 'bool' + | prev(self) -> bool + | Get prev netnode in the graph. Sets netnodenumber to the previous existing + | number + | @retval true: ok + | @retval false: no more netnodes + | + | rename(self, *args) -> 'bool' + | rename(self, newname, namlen=0) -> bool + | Rename a netnode. + | + | @param newname: (C++: const char *) new name of netnode. nullptr or "" means to delete name. names + | of user-defined netnodes must have the "$ " prefix in order to + | avoid clashes with program byte names. + | @param namlen: (C++: size_t) length of new name. if not specified, it will be calculated using + | strlen() + | @retval 1: ok + | @retval 0: failed, newname is already used + | + | set(self, *args) -> 'bool' + | set(self, value) -> bool + | Set value of netnode. + | + | @param value: (C++: const void *) pointer to value + | @return: 1 - ok + | + | set_long(self, *args) -> 'bool' + | set_long(self, x) -> bool + | Value of netnode as a long number: + | + | @param x: (C++: nodeidx_t) + | + | setblob(self, *args) -> 'bool' + | setblob(self, buf, _start, tag) -> bool + | Store a blob in a netnode. + | + | @param buf: (C++: const void *) pointer to blob to save + | @param _start: (C++: nodeidx_t) + | @param tag: (C++: uchar) tag of supval array + | @return: success + | + | setblob_ea(self, *args) -> 'bool' + | setblob_ea(self, buf, ea, tag) -> bool + | + | @param buf: void const * + | @param ea: ea_t + | @param tag: uchar + | + | start(self, *args) -> 'bool' + | start(self) -> bool + | Get first netnode in the graph. Sets netnodenumber to the lowest existing + | number. + | @retval true: ok + | @retval false: graph is empty + | + | supdel(self, *args) -> 'bool' + | supdel(self, alt, tag=stag) -> bool + | Delete all elements of supval array. This function may be applied to 32-bit and + | 8-bit supval arrays. This function deletes the whole supval array. + | + | @param alt: nodeidx_t + | @param tag: uchar + | + | @return: success + | supdel(self) -> bool + | + | supdel_all(self, *args) -> 'bool' + | supdel_all(self, tag) -> bool + | Delete all elements of the specified supval array. This function may be applied + | to 32-bit and 8-bit supval arrays. This function deletes the whole supval array. + | + | @param tag: (C++: uchar) + | @return: success + | + | supdel_ea(self, *args) -> 'bool' + | supdel_ea(self, ea, tag=stag) -> bool + | + | @param ea: ea_t + | @param tag: uchar + | + | supdel_idx8(self, *args) -> 'bool' + | supdel_idx8(self, alt, tag) -> bool + | + | @param alt: uchar + | @param tag: uchar + | + | supdel_range(self, *args) -> 'int' + | supdel_range(self, idx1, idx2, tag) -> int + | Delete range of elements in the specified supval array. Elements in range [idx1, + | idx2) will be deleted. + | @note: This function can also be used to delete a range of altval elements + | + | @param idx1: (C++: nodeidx_t) first element to delete + | @param idx2: (C++: nodeidx_t) last element to delete + 1 + | @param tag: (C++: uchar) tag of array + | @return: number of deleted elements + | + | supdel_range_idx8(self, *args) -> 'int' + | supdel_range_idx8(self, idx1, idx2, tag) -> int + | Same as above, but accepts 8-bit indexes. + | + | @param idx1: (C++: uchar) + | @param idx2: (C++: uchar) + | @param tag: (C++: uchar) + | + | supfirst(self, *args) -> 'nodeidx_t' + | supfirst(self, tag=stag) -> nodeidx_t + | Get first existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of first existing element of supval array, BADNODE if supval + | array is empty + | + | supfirst_idx8(self, *args) -> 'nodeidx_t' + | supfirst_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | suplast(self, *args) -> 'nodeidx_t' + | suplast(self, tag=stag) -> nodeidx_t + | Get last existing element of supval array. + | + | @param tag: (C++: uchar) tag of array + | @return: index of last existing element of supval array, BADNODE if supval array + | is empty + | + | suplast_idx8(self, *args) -> 'nodeidx_t' + | suplast_idx8(self, tag) -> nodeidx_t + | + | @param tag: uchar + | + | supnext(self, *args) -> 'nodeidx_t' + | supnext(self, cur, tag=stag) -> nodeidx_t + | Get next existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the next existing element of supval array, BADNODE if no more + | supval array elements exist + | + | supnext_idx8(self, *args) -> 'nodeidx_t' + | supnext_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | supprev(self, *args) -> 'nodeidx_t' + | supprev(self, cur, tag=stag) -> nodeidx_t + | Get previous existing element of supval array. + | + | @param cur: (C++: nodeidx_t) current index + | @param tag: (C++: uchar) tag of array + | @return: index of the previous existing element of supval array BADNODE if no + | more supval array elements exist + | + | supprev_idx8(self, *args) -> 'nodeidx_t' + | supprev_idx8(self, alt, tag) -> nodeidx_t + | + | @param alt: uchar + | @param tag: uchar + | + | supset(self, *args) -> 'bool' + | supset(self, alt, value, tag=stag) -> bool + | Set value of supval array element. + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param value: (C++: const void *) pointer to supval value + | @param tag: (C++: uchar) tag of array + | @retval 1: ok + | @retval 0: should not occur - indicates internal error + | + | supset_ea(self, *args) -> 'bool' + | supset_ea(self, ea, value, tag=stag) -> bool + | + | @param ea: ea_t + | @param value: void const * + | @param tag: uchar + | + | supset_idx8(self, *args) -> 'bool' + | supset_idx8(self, alt, value, tag) -> bool + | + | @param alt: uchar + | @param value: void const * + | @param tag: uchar + | + | supshift(self, *args) -> 'size_t' + | supshift(self, _from, to, size, tag=stag) -> size_t + | Shift the supval array elements. Moves the array elements at (from..from+size) + | to (to..to+size) + | + | @param from: (C++: nodeidx_t) + | @param to: (C++: nodeidx_t) + | @param size: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | @return: number of shifted elements + | + | supstr(self, *args) -> 'ssize_t' + | supstr(self, alt, tag=stag) -> ssize_t + | @see: supstr(qstring *buf, nodeidx_t alt, uchar tag=stag) const + | + | @param alt: (C++: nodeidx_t) + | @param tag: (C++: uchar) + | + | supstr_ea(self, *args) -> 'ssize_t' + | supstr_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar + | + | supstr_idx8(self, *args) -> 'ssize_t' + | supstr_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar + | + | supval(self, *args) -> 'ssize_t' + | supval(self, alt, tag=stag) -> ssize_t + | Get value of the specified supval array element. NB: do not use this function to + | retrieve strings, see supstr()! + | + | @param alt: (C++: nodeidx_t) index into array of supvals + | @param tag: (C++: uchar) tag of array. Default: stag + | @return: size of value, -1 if element doesn't exist + | + | supval_ea(self, *args) -> 'ssize_t' + | supval_ea(self, ea, tag=stag) -> ssize_t + | + | @param ea: ea_t + | @param tag: uchar + | + | supval_idx8(self, *args) -> 'ssize_t' + | supval_idx8(self, alt, tag) -> ssize_t + | + | @param alt: uchar + | @param tag: uchar + | + | valobj(self, *args) -> 'ssize_t' + | valobj(self) -> ssize_t + | Get value of netnode. Netnode values are arbitrary sized objects with max size + | is MAXSPECSIZE. NB: do not use this function for strings - see valstr(). + | + | @return: length of value, -1 if no value present + | + | valstr(self, *args) -> 'ssize_t' + | valstr(self) -> ssize_t + | @see: valstr(qstring *buf) const + | + | value_exists(self, *args) -> 'bool' + | value_exists(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | exist(*args) -> 'bool' + | exist(_name) -> bool + | Does the netnode with the specified name exist? + | + | @param _name: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function netnode_exist in module ida_netnode: + +netnode_exist(*args) -> 'bool' + netnode_exist(_name) -> bool + + @param _name: char const * + +Module "ida_offset"s docstring: +""" +Functions that deal with offsets. + +"Being an offset" is a characteristic of an operand. This means that operand or +its part represent offset from some address in the program. This linear address +is called "offset base". Some operands may have 2 offsets simultaneously. +Generally, IDA doesn't handle this except for Motorola outer offsets. Thus there +may be two offset values in an operand: simple offset and outer offset. + +Outer offsets are handled by specifying special operand number: it should be +ORed with OPND_OUTER value. + +See bytes.hpp for further explanation of operand numbers.""" + +Help on function add_refinfo_dref in module ida_offset: + +add_refinfo_dref(*args) -> 'ea_t' + add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + Add xrefs for a reference from the given instruction ( insn_t::ea). This + function creates a cross references to the target and the base. + insn_t::add_off_drefs() calls this function to create xrefs for 'offset' + operand. + + @param insn: (C++: const insn_t &) the referencing instruction + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @param type: (C++: dref_t) type of xref + @param opoff: (C++: int) offset of the operand from the start of instruction + @return: the target address of the reference + +Help on function calc_basevalue in module ida_offset: + +calc_basevalue(*args) -> 'ea_t' + calc_basevalue(target, base) -> ea_t + Calculate the value of the reference base. + + @param target: (C++: ea_t) + @param base: (C++: ea_t) + +Help on function calc_offset_base in module ida_offset: + +calc_offset_base(*args) -> 'ea_t' + calc_offset_base(ea, n) -> ea_t + Try to calculate the offset base This function takes into account the fixup + information, current ds and cs values. + + @param ea: (C++: ea_t) the referencing instruction/data address + @param n: (C++: int) operand number + * 0: first operand + * 1: other operand + @return: output base address or BADADDR + +Help on function calc_probable_base_by_value in module ida_offset: + +calc_probable_base_by_value(*args) -> 'ea_t' + calc_probable_base_by_value(ea, off) -> ea_t + Try to calculate the offset base. 2 bases are checked: current ds and cs. If + fails, return BADADDR + + @param ea: (C++: ea_t) + @param off: (C++: uval_t) + +Help on function calc_reference_data in module ida_offset: + +calc_reference_data(*args) -> 'bool' + calc_reference_data(target, base, _from, ri, opval) -> bool + Calculate the target and base addresses of an offset expression. The calculated + target and base addresses are returned in the locations pointed by 'base' and + 'target'. In case 'ri.base' is BADADDR, the function calculates the offset base + address from the referencing instruction/data address. The target address is + copied from ri.target. If ri.target is BADADDR then the target is calculated + using the base address and 'opval'. This function also checks if 'opval' matches + the full value of the reference and takes in account the memory-mapping. + + @param target: (C++: ea_t *) output target address + @param base: (C++: ea_t *) output base address + @param from: (C++: ea_t) the referencing instruction/data address + @param ri: (C++: const refinfo_t &) reference info block from the database + @param opval: (C++: adiff_t) operand value (usually op_t::value or op_t::addr) + @return: success + +Help on function calc_target in module ida_offset: + +calc_target(*args) -> 'ea_t' + calc_target(_from, opval, ri) -> ea_t + Retrieves refinfo_t structure and calculates the target. + + @param from: (C++: ea_t) + @param opval: (C++: adiff_t) + @param ri: refinfo_t const & + + calc_target(_from, ea, n, opval) -> ea_t + + @param from: ea_t + @param ea: ea_t + @param n: int + @param opval: adiff_t + +Help on function can_be_off32 in module ida_offset: + +can_be_off32(*args) -> 'ea_t' + can_be_off32(ea) -> ea_t + Does the specified address contain a valid OFF32 value?. For symbols in special + segments the displacement is not taken into account. If yes, then the target + address of OFF32 will be returned. If not, then BADADDR is returned. + + @param ea: (C++: ea_t) + +Help on function get_default_reftype in module ida_offset: + +get_default_reftype(*args) -> 'reftype_t' + get_default_reftype(ea) -> reftype_t + Get default reference type depending on the segment. + + @param ea: (C++: ea_t) + @return: one of REF_OFF8,REF_OFF16,REF_OFF32 + +Help on function get_offbase in module ida_offset: + +get_offbase(*args) -> 'ea_t' + get_offbase(ea, n) -> ea_t + Get offset base value + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand + @return: offset base or BADADDR + +Help on function get_offset_expr in module ida_offset: + +get_offset_expr(*args) -> 'qstring *' + get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + See get_offset_expression() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param ri: (C++: const refinfo_t &) refinfo_t const & + @param from: (C++: ea_t) + @param offset: (C++: adiff_t) + @param getn_flags: (C++: int) + +Help on function get_offset_expression in module ida_offset: + +get_offset_expression(*args) -> 'qstring *' + get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + Get offset expression (in the form "offset name+displ"). This function uses + offset translation function ( processor_t::translate) if your IDP module has + such a function. Translation function is used to map linear addresses in the + program (only for offsets). + + Example: suppose we have instruction at linear address 0x00011000: + mov ax, [bx+7422h] and at ds:7422h: + array dw ... We want to represent the second operand with an offset + expression, so then we call: + get_offset_expresion(0x001100, 1, 0x001102, 0x7422, buf); + | | | | | + | | | | +output buffer + | | | +value of offset expression + | | +address offset value in the instruction + | +the second operand + +address of instruction and the function will return a + colored string: + offset array + + @param ea: (C++: ea_t) start of instruction or data with the offset expression + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first operand + * 1: second operand + @param from: (C++: ea_t) linear address of instruction operand or data referring to the + name. This address will be used to get fixup information, so it + should point to exact position of operand in the instruction. + @param offset: (C++: adiff_t) value of operand or its part. The function will return text + representation of this value as offset expression. + @param getn_flags: (C++: int) combination of: + * GETN_APPZERO: meaningful only if the name refers to a structure. appends the + struct field name if the field offset is zero + * GETN_NODUMMY: do not generate dummy names for the expression but pretend they + already exist (useful to verify that the offset expression can be represented) + @retval 0: can't convert to offset expression + @retval 1: ok, a simple offset expression + @retval 2: ok, a complex offset expression + +Help on function op_offset in module ida_offset: + +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) + +Help on function op_offset_ex in module ida_offset: + +op_offset_ex(*args) -> 'bool' + op_offset_ex(ea, n, ri) -> bool + Convert operand to a reference. To delete an offset, use clr_op_type() function. + + @param ea: (C++: ea_t) linear address. if 'ea' has unexplored bytes, try to convert them to + * no segment: fail + * 16bit segment: to 16bit word data + * 32bit segment: to dword + @param n: (C++: int) number of operand (may be ORed with OPND_OUTER) + * 0: first + * 1: second + * 2: third + * OPND_MASK: all operands + @param ri: (C++: const refinfo_t *) reference information + @return: success + +Help on function op_plain_offset in module ida_offset: + +op_plain_offset(*args) -> 'bool' + op_plain_offset(ea, n, base) -> bool + Convert operand to a reference with the default reference type. + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param base: (C++: ea_t) + +Module "ida_pro"s docstring: +""" +This is the first header included in the IDA project. + +It defines the most common types, functions and data. Also, it tries to make +system dependent definitions. + +The following preprocessor macros are used in the project (the list may be +incomplete) + +Platform must be specified as one of: + +__NT__ - MS Windows (all platforms) +__LINUX__ - Linux +__MAC__ - MAC OS X + +__EA64__ - 64-bit address size (sizeof(ea_t)==8) +__X86__ - 32-bit debug servers (sizeof(void*)==4) +__X64__ - x64 processor (sizeof(void*)==8) default +__PPC__ - PowerPC +__ARM__ - ARM""" + +Help on class __qmutex_t in module ida_pro: + +class __qmutex_t(builtins.object) + | Proxy of C++ __qmutex_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qmutex_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qmutex_t(...) + | delete___qmutex_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __qsemaphore_t in module ida_pro: + +class __qsemaphore_t(builtins.object) + | Proxy of C++ __qsemaphore_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qsemaphore_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qsemaphore_t(...) + | delete___qsemaphore_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class __qthread_t in module ida_pro: + +class __qthread_t(builtins.object) + | Proxy of C++ __qthread_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> __qthread_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete___qthread_t(...) + | delete___qthread_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class _qstrvec_t in module ida_pro: + +class _qstrvec_t(ida_idaapi.py_clinked_object_t) + | WARNING: It is very unlikely an IDAPython user should ever, ever + | have to use this type. It should only be used for IDAPython internals. + | + | For example, in py_askusingform.py, we ctypes-expose to the IDA + | kernel & UI a qstrvec instance, in case a DropdownListControl is + | constructed. + | That's because that's what ask_form expects, and we have no + | choice but to make a DropdownListControl hold a qstrvec_t. + | This is, afaict, the only situation where a Python + | _qstrvec_t is required. + | + | Method resolution order: + | _qstrvec_t + | ida_idaapi.py_clinked_object_t + | ida_idaapi.pyidc_opaque_object_t + | builtins.object + | + | Methods defined here: + | + | __getitem__(self, idx) + | Gets the string at the given index + | + | __init__(self, items=None) + | Initialize self. See help(type(self)) for accurate signature. + | + | __setitem__(self, idx, s) + | Sets string at the given index + | + | _create_clink(self) + | Overwrite me. + | Creates a new clink + | @return: PyCapsule representing the C link + | + | _del_clink(self, lnk) + | Overwrite me. + | This method deletes the link + | + | _get_clink_ptr(self) + | Overwrite me. + | Returns the C link pointer as a 64bit number + | + | _qstrvec_t__get_size = __get_size(self) + | + | add(self, s) + | Add a string to the vector + | + | addressof(self, idx) + | Returns the address (as number) of the qstring at the given index + | + | assign(self, other) + | Copies the contents of 'other' to 'self' + | + | clear(self, qclear=False) + | Clears all strings from the vector. + | @param qclear: Just reset the size but do not actually free the memory + | + | from_list(self, lst) + | Populates the vector from a Python string list + | + | insert(self, idx, s) + | Insert a string into the vector + | + | remove(self, idx) + | Removes a string from the vector + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | size + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_idaapi.py_clinked_object_t: + | + | __del__(self) + | Delete the link upon object destruction (only if not static) + | + | _free(self) + | Explicitly delete the link (only if not static) + | + | copy(self) + | Returns a new copy of this class + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.py_clinked_object_t: + | + | clink + | + | clink_ptr + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_idaapi.pyidc_opaque_object_t: + | + | __idc_cvt_id__ = 2 + +Help on class boolvec_t in module ida_pro: + +class boolvec_t(builtins.object) + | Proxy of C++ qvector< bool > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< bool > const & + | + | __getitem__(self, *args) -> 'bool const &' + | __getitem__(self, i) -> bool const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> boolvec_t + | __init__(self, x) -> boolvec_t + | + | @param x: qvector< bool > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< bool > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: bool const & + | + | __swig_destroy__ = delete_boolvec_t(...) + | delete_boolvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: bool const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: bool const & + | + | append = push_back(self, *args) -> 'bool &' + | + | at = __getitem__(self, *args) -> 'bool const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< bool >::const_iterator' + | begin(self) -> qvector< bool >::iterator + | begin(self) -> qvector< bool >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< bool >::const_iterator' + | end(self) -> qvector< bool >::iterator + | end(self) -> qvector< bool >::const_iterator + | + | erase(self, *args) -> 'qvector< bool >::iterator' + | erase(self, it) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | + | erase(self, first, last) -> qvector< bool >::iterator + | + | @param first: qvector< bool >::iterator + | @param last: qvector< bool >::iterator + | + | extract(self, *args) -> 'bool *' + | extract(self) -> bool * + | + | find(self, *args) -> 'qvector< bool >::const_iterator' + | find(self, x) -> qvector< bool >::iterator + | + | @param x: bool const & + | + | find(self, x) -> qvector< bool >::const_iterator + | + | @param x: bool const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=bool()) + | + | @param x: bool const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: bool const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: bool * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< bool >::iterator' + | insert(self, it, x) -> qvector< bool >::iterator + | + | @param it: qvector< bool >::iterator + | @param x: bool const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'bool &' + | push_back(self, x) + | + | @param x: bool const & + | + | push_back(self) -> bool & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: bool const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< bool > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class channel_redir_t in module ida_pro: + +class channel_redir_t(builtins.object) + | Proxy of C++ channel_redir_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> channel_redir_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_channel_redir_t(...) + | delete_channel_redir_t(self) + | + | is_append(self, *args) -> 'bool' + | is_append(self) -> bool + | + | is_input(self, *args) -> 'bool' + | is_input(self) -> bool + | + | is_output(self, *args) -> 'bool' + | is_output(self) -> bool + | + | is_quoted(self, *args) -> 'bool' + | is_quoted(self) -> bool + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fd + | fd + | + | file + | file + | + | flags + | flags + | + | length + | length + | + | start + | start + | + | thisown + | The membership flag + +Help on function check_process_exit in module ida_pro: + +check_process_exit(*args) -> 'int' + check_process_exit(handle, exit_code, msecs=-1) -> int + Check whether process has terminated or not. + + @param handle: (C++: void *) process handle to wait for + @param exit_code: (C++: int *) pointer to the buffer for the exit code + @param msecs: how long to wait. special values: + * 0: do not wait + * 1 or -1: wait infinitely + * other values: timeout in milliseconds + @retval 0: process has exited, and the exit code is available. if *exit_code < + 0: the process was killed with a signal -*exit_code + @retval 1: process has not exited yet + @retval -1: error happened, see error code for winerr() in *exit_code + +Help on class ea_array in module ida_pro: + +class ea_array(builtins.object) + | Proxy of C++ ea_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'ea_t' + | __getitem__(self, index) -> ea_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> ea_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: ea_t + | + | __swig_destroy__ = delete_ea_array(...) + | delete_ea_array(self) + | + | cast(self, *args) -> 'ea_t *' + | cast(self) -> ea_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'ea_array *' + | frompointer(t) -> ea_array + | + | @param t: ea_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function ea_array_frompointer in module ida_pro: + +ea_array_frompointer(*args) -> 'ea_array *' + ea_array_frompointer(t) -> ea_array + + @param t: ea_t * + +Help on class ea_pointer in module ida_pro: + +class ea_pointer(builtins.object) + | Proxy of C++ ea_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> ea_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ea_pointer(...) + | delete_ea_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: ea_t + | + | cast(self, *args) -> 'ea_t *' + | cast(self) -> ea_t * + | + | value(self, *args) -> 'ea_t' + | value(self) -> ea_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'ea_pointer *' + | frompointer(t) -> ea_pointer + | + | @param t: ea_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function ea_pointer_frompointer in module ida_pro: + +ea_pointer_frompointer(*args) -> 'ea_pointer *' + ea_pointer_frompointer(t) -> ea_pointer + + @param t: ea_t * + +Help on function extend_sign in module ida_pro: + +extend_sign(*args) -> 'uint64' + extend_sign(v, nbytes, sign_extend) -> uint64 + Sign-, or zero-extend the value 'v' to occupy 64 bits. The value 'v' is + considered to be of size 'nbytes'. + + @param v: (C++: uint64) + @param nbytes: (C++: int) + @param sign_extend: (C++: bool) + +Help on class instant_dbgopts_t in module ida_pro: + +class instant_dbgopts_t(builtins.object) + | Proxy of C++ instant_dbgopts_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> instant_dbgopts_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_instant_dbgopts_t(...) + | delete_instant_dbgopts_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | _pass + | _pass + | + | attach + | attach + | + | debmod + | debmod + | + | env + | env + | + | event_id + | event_id + | + | host + | host + | + | pid + | pid + | + | port + | port + | + | thisown + | The membership flag + +Help on class int64vec_t in module ida_pro: + +class int64vec_t(builtins.object) + | Proxy of C++ qvector< long long > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< long long > const & + | + | __getitem__(self, *args) -> 'long long const &' + | __getitem__(self, i) -> long long const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> int64vec_t + | __init__(self, x) -> int64vec_t + | + | @param x: qvector< long long > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< long long > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: long long const & + | + | __swig_destroy__ = delete_int64vec_t(...) + | delete_int64vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: long long const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: long long const & + | + | append = push_back(self, *args) -> 'long long &' + | + | at = __getitem__(self, *args) -> 'long long const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< long long >::const_iterator' + | begin(self) -> qvector< long long >::iterator + | begin(self) -> qvector< long long >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< long long >::const_iterator' + | end(self) -> qvector< long long >::iterator + | end(self) -> qvector< long long >::const_iterator + | + | erase(self, *args) -> 'qvector< long long >::iterator' + | erase(self, it) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | + | erase(self, first, last) -> qvector< long long >::iterator + | + | @param first: qvector< long long >::iterator + | @param last: qvector< long long >::iterator + | + | extract(self, *args) -> 'long long *' + | extract(self) -> long long * + | + | find(self, *args) -> 'qvector< long long >::const_iterator' + | find(self, x) -> qvector< long long >::iterator + | + | @param x: long long const & + | + | find(self, x) -> qvector< long long >::const_iterator + | + | @param x: long long const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: long long const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: long long * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< long long >::iterator' + | insert(self, it, x) -> qvector< long long >::iterator + | + | @param it: qvector< long long >::iterator + | @param x: long long const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'long long &' + | push_back(self, x) + | + | @param x: long long const & + | + | push_back(self) -> long long & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: long long const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< long long > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class int_pointer in module ida_pro: + +class int_pointer(builtins.object) + | Proxy of C++ int_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> int_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_int_pointer(...) + | delete_int_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: int + | + | cast(self, *args) -> 'int *' + | cast(self) -> int * + | + | value(self, *args) -> 'int' + | value(self) -> int + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'int_pointer *' + | frompointer(t) -> int_pointer + | + | @param t: int * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function int_pointer_frompointer in module ida_pro: + +int_pointer_frompointer(*args) -> 'int_pointer *' + int_pointer_frompointer(t) -> int_pointer + + @param t: int * + +Help on class intvec_t in module ida_pro: + +class intvec_t(builtins.object) + | Proxy of C++ qvector< int > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __getitem__(self, *args) -> 'int const &' + | __getitem__(self, i) -> int const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> intvec_t + | __init__(self, x) -> intvec_t + | + | @param x: qvector< int > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< int > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: int const & + | + | __swig_destroy__ = delete_intvec_t(...) + | delete_intvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: int const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: int const & + | + | append = push_back(self, *args) -> 'int &' + | + | at = __getitem__(self, *args) -> 'int const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< int >::const_iterator' + | begin(self) -> qvector< int >::iterator + | begin(self) -> qvector< int >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< int >::const_iterator' + | end(self) -> qvector< int >::iterator + | end(self) -> qvector< int >::const_iterator + | + | erase(self, *args) -> 'qvector< int >::iterator' + | erase(self, it) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | + | erase(self, first, last) -> qvector< int >::iterator + | + | @param first: qvector< int >::iterator + | @param last: qvector< int >::iterator + | + | extract(self, *args) -> 'int *' + | extract(self) -> int * + | + | find(self, *args) -> 'qvector< int >::const_iterator' + | find(self, x) -> qvector< int >::iterator + | + | @param x: int const & + | + | find(self, x) -> qvector< int >::const_iterator + | + | @param x: int const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: int const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: int * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< int >::iterator' + | insert(self, it, x) -> qvector< int >::iterator + | + | @param it: qvector< int >::iterator + | @param x: int const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'int &' + | push_back(self, x) + | + | @param x: int const & + | + | push_back(self) -> int & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: int const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< int > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function is_control_tty in module ida_pro: + +is_control_tty(*args) -> 'enum tty_control_t' + is_control_tty(fd) -> enum tty_control_t + Check if the current process is the owner of the TTY specified by 'fd' + (typically an opened descriptor to /dev/tty). + + @param fd: (C++: int) + +Help on function is_main_thread in module ida_pro: + +is_main_thread(*args) -> 'bool' + is_main_thread() -> bool + Are we running in the main thread? + +Help on function log2ceil in module ida_pro: + +log2ceil(*args) -> 'int' + log2ceil(d64) -> int + calculate ceil(log2(d64)) or floor(log2(d64)), it returns 0 if d64 == 0 + + @param d64: (C++: uint64) + +Help on function log2floor in module ida_pro: + +log2floor(*args) -> 'int' + log2floor(d64) -> int + + @param d64: uint64 + +Help on function parse_dbgopts in module ida_pro: + +parse_dbgopts(*args) -> 'bool' + parse_dbgopts(ido, r_switch) -> bool + Parse the -r command line switch (for instant debugging). r_switch points to the + value of the -r switch. Example: win32@localhost+ + + @param ido: (C++: struct instant_dbgopts_t *) instant_dbgopts_t * + @param r_switch: (C++: const char *) char const * + @return: true-ok, false-parse error + +Help on function qatoll in module ida_pro: + +qatoll(*args) -> 'int64' + qatoll(nptr) -> int64 + + @param nptr: char const * + +Help on function qcontrol_tty in module ida_pro: + +qcontrol_tty(*args) -> 'void' + qcontrol_tty() + Make the current terminal the controlling terminal of the calling process. + @note: The current terminal is supposed to be /dev/tty + +Help on function qdetach_tty in module ida_pro: + +qdetach_tty(*args) -> 'void' + qdetach_tty() + If the current terminal is the controlling terminal of the calling process, give + up this controlling terminal. + @note: The current terminal is supposed to be /dev/tty + +Help on function qexit in module ida_pro: + +qexit(*args) -> 'void' + qexit(code) + Call qatexit functions, shut down UI and kernel, and exit. + + @param code: (C++: int) exit code + +Help on class qmutex_locker_t in module ida_pro: + +class qmutex_locker_t(builtins.object) + | Proxy of C++ qmutex_locker_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _lock) -> qmutex_locker_t + | + | @param _lock: qmutex_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qmutex_locker_t(...) + | delete_qmutex_locker_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class qrefcnt_obj_t in module ida_pro: + +class qrefcnt_obj_t(builtins.object) + | Proxy of C++ qrefcnt_obj_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_qrefcnt_obj_t(...) + | delete_qrefcnt_obj_t(self) + | + | release(self, *args) -> 'void' + | release(self) + | Call destructor. We use release() instead of operator delete() to maintain + | binary compatibility with all compilers (vc and gcc use different vtable layouts + | for operator delete) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | refcnt + | refcnt + | + | thisown + | The membership flag + +Help on function qstrvec_t_add in module ida_pro: + +qstrvec_t_add(*args) -> 'bool' + qstrvec_t_add(_self, s) -> bool + + @param self: PyObject * + @param s: char const * + +Help on function qstrvec_t_addressof in module ida_pro: + +qstrvec_t_addressof(*args) -> 'PyObject *' + qstrvec_t_addressof(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t + +Help on function qstrvec_t_assign in module ida_pro: + +qstrvec_t_assign(*args) -> 'bool' + qstrvec_t_assign(_self, other) -> bool + + @param self: PyObject * + @param other: PyObject * + +Help on function qstrvec_t_clear in module ida_pro: + +qstrvec_t_clear(*args) -> 'bool' + qstrvec_t_clear(_self, qclear) -> bool + + @param self: PyObject * + @param qclear: bool + +Help on function qstrvec_t_create in module ida_pro: + +qstrvec_t_create(*args) -> 'PyObject *' + qstrvec_t_create() -> PyObject * + +Help on function qstrvec_t_destroy in module ida_pro: + +qstrvec_t_destroy(*args) -> 'bool' + qstrvec_t_destroy(py_obj) -> bool + + @param py_obj: PyObject * + +Help on function qstrvec_t_from_list in module ida_pro: + +qstrvec_t_from_list(*args) -> 'bool' + qstrvec_t_from_list(_self, py_list) -> bool + + @param self: PyObject * + @param py_list: PyObject * + +Help on function qstrvec_t_get in module ida_pro: + +qstrvec_t_get(*args) -> 'PyObject *' + qstrvec_t_get(_self, idx) -> PyObject * + + @param self: PyObject * + @param idx: size_t + +Help on function qstrvec_t_get_clink in module ida_pro: + +qstrvec_t_get_clink(*args) -> 'qstrvec_t *' + qstrvec_t_get_clink(_self) -> qstrvec_t * + + @param self: PyObject * + +Help on function qstrvec_t_get_clink_ptr in module ida_pro: + +qstrvec_t_get_clink_ptr(*args) -> 'PyObject *' + qstrvec_t_get_clink_ptr(_self) -> PyObject * + + @param self: PyObject * + +Help on function qstrvec_t_insert in module ida_pro: + +qstrvec_t_insert(*args) -> 'bool' + qstrvec_t_insert(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * + +Help on function qstrvec_t_remove in module ida_pro: + +qstrvec_t_remove(*args) -> 'bool' + qstrvec_t_remove(_self, idx) -> bool + + @param self: PyObject * + @param idx: size_t + +Help on function qstrvec_t_set in module ida_pro: + +qstrvec_t_set(*args) -> 'bool' + qstrvec_t_set(_self, idx, s) -> bool + + @param self: PyObject * + @param idx: size_t + @param s: char const * + +Help on function qstrvec_t_size in module ida_pro: + +qstrvec_t_size(*args) -> 'size_t' + qstrvec_t_size(_self) -> size_t + + @param self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) -> 'bool' + qthread_equal(q1, q2) -> bool + Are two threads equal? + + @param q1: (C++: qthread_t) + @param q2: (C++: qthread_t) + +Help on function quote_cmdline_arg in module ida_pro: + +quote_cmdline_arg(*args) -> 'bool' + quote_cmdline_arg(arg) -> bool + Quote a command line argument if it contains escape characters. For example, *.c + will be converted into "*.c" because * may be inadvertently expanded by the + shell + + @param arg: (C++: qstring *) + @return: true: modified 'arg' + +Help on function qvector_reserve in module ida_pro: + +qvector_reserve(*args) -> 'void *' + qvector_reserve(vec, old, cnt, elsize) -> void * + Change capacity of given qvector. + + @param vec: (C++: void *) a pointer to a qvector + @param old: (C++: void *) a pointer to the qvector's array + @param cnt: (C++: size_t) number of elements to reserve + @param elsize: (C++: size_t) size of each element + @return: a pointer to the newly allocated array + +Help on function readbytes in module ida_pro: + +readbytes(*args) -> 'int' + readbytes(h, res, size, mf) -> int + Read at most 4 bytes from file. + + @param h: (C++: int) file handle + @param res: (C++: uint32 *) value read from file + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise + +Help on function reloc_value in module ida_pro: + +reloc_value(*args) -> 'void' + reloc_value(value, size, delta, mf) + + @param value: void * + @param size: int + @param delta: adiff_t + @param mf: bool + +Help on function relocate_relobj in module ida_pro: + +relocate_relobj(*args) -> 'bool' + relocate_relobj(_relobj, ea, mf) -> bool + + @param _relobj: relobj_t * + @param ea: ea_t + @param mf: bool + +Help on class sel_array in module ida_pro: + +class sel_array(builtins.object) + | Proxy of C++ sel_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'sel_t' + | __getitem__(self, index) -> sel_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> sel_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: sel_t + | + | __swig_destroy__ = delete_sel_array(...) + | delete_sel_array(self) + | + | cast(self, *args) -> 'sel_t *' + | cast(self) -> sel_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'sel_array *' + | frompointer(t) -> sel_array + | + | @param t: sel_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function sel_array_frompointer in module ida_pro: + +sel_array_frompointer(*args) -> 'sel_array *' + sel_array_frompointer(t) -> sel_array + + @param t: sel_t * + +Help on class sel_pointer in module ida_pro: + +class sel_pointer(builtins.object) + | Proxy of C++ sel_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> sel_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sel_pointer(...) + | delete_sel_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: sel_t + | + | cast(self, *args) -> 'sel_t *' + | cast(self) -> sel_t * + | + | value(self, *args) -> 'sel_t' + | value(self) -> sel_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'sel_pointer *' + | frompointer(t) -> sel_pointer + | + | @param t: sel_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function sel_pointer_frompointer in module ida_pro: + +sel_pointer_frompointer(*args) -> 'sel_pointer *' + sel_pointer_frompointer(t) -> sel_pointer + + @param t: sel_t * + +Help on class sizevec_t in module ida_pro: + +class sizevec_t(builtins.object) + | Proxy of C++ qvector< size_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< size_t > const & + | + | __getitem__(self, *args) -> 'size_t const &' + | __getitem__(self, i) -> size_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> sizevec_t + | __init__(self, x) -> sizevec_t + | + | @param x: qvector< size_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< size_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: size_t const & + | + | __swig_destroy__ = delete_sizevec_t(...) + | delete_sizevec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: size_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: size_t const & + | + | at(self, *args) -> 'size_t const &' + | at(self, _idx) -> size_t const & + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< size_t >::const_iterator' + | begin(self) -> qvector< size_t >::iterator + | begin(self) -> qvector< size_t >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< size_t >::const_iterator' + | end(self) -> qvector< size_t >::iterator + | end(self) -> qvector< size_t >::const_iterator + | + | erase(self, *args) -> 'qvector< size_t >::iterator' + | erase(self, it) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | + | erase(self, first, last) -> qvector< size_t >::iterator + | + | @param first: qvector< size_t >::iterator + | @param last: qvector< size_t >::iterator + | + | extract(self, *args) -> 'size_t *' + | extract(self) -> size_t * + | + | find(self, *args) -> 'qvector< size_t >::const_iterator' + | find(self, x) -> qvector< size_t >::iterator + | + | @param x: size_t const & + | + | find(self, x) -> qvector< size_t >::const_iterator + | + | @param x: size_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=size_t()) + | + | @param x: size_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: size_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: size_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< size_t >::iterator' + | insert(self, it, x) -> qvector< size_t >::iterator + | + | @param it: qvector< size_t >::iterator + | @param x: size_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'size_t &' + | push_back(self, x) + | + | @param x: size_t const & + | + | push_back(self) -> size_t & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: size_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< size_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function str2user in module ida_pro: + +str2user(*args) -> 'PyObject *' + str2user(str) -> str or None + Insert C-style escape characters to string + + @param str: char const * + @return: new string with escape characters inserted + +Help on class strvec_t in module ida_pro: + +class strvec_t(builtins.object) + | Proxy of C++ qvector< simpleline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'simpleline_t const &' + | __getitem__(self, i) -> simpleline_t const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> strvec_t + | __init__(self, x) -> strvec_t + | + | @param x: qvector< simpleline_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: simpleline_t const & + | + | __swig_destroy__ = delete_strvec_t(...) + | delete_strvec_t(self) + | + | append = push_back(self, *args) -> 'simpleline_t &' + | + | at = __getitem__(self, *args) -> 'simpleline_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< simpleline_t >::const_iterator' + | begin(self) -> qvector< simpleline_t >::iterator + | begin(self) -> qvector< simpleline_t >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< simpleline_t >::const_iterator' + | end(self) -> qvector< simpleline_t >::iterator + | end(self) -> qvector< simpleline_t >::const_iterator + | + | erase(self, *args) -> 'qvector< simpleline_t >::iterator' + | erase(self, it) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | + | erase(self, first, last) -> qvector< simpleline_t >::iterator + | + | @param first: qvector< simpleline_t >::iterator + | @param last: qvector< simpleline_t >::iterator + | + | extract(self, *args) -> 'simpleline_t *' + | extract(self) -> simpleline_t * + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=simpleline_t()) + | + | @param x: simpleline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: simpleline_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< simpleline_t >::iterator' + | insert(self, it, x) -> qvector< simpleline_t >::iterator + | + | @param it: qvector< simpleline_t >::iterator + | @param x: simpleline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'simpleline_t &' + | push_back(self, x) + | + | @param x: simpleline_t const & + | + | push_back(self) -> simpleline_t & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: simpleline_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< simpleline_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class sval_pointer in module ida_pro: + +class sval_pointer(builtins.object) + | Proxy of C++ sval_pointer class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> sval_pointer + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sval_pointer(...) + | delete_sval_pointer(self) + | + | assign(self, *args) -> 'void' + | assign(self, value) + | + | @param value: sval_t + | + | cast(self, *args) -> 'sval_t *' + | cast(self) -> sval_t * + | + | value(self, *args) -> 'sval_t' + | value(self) -> sval_t + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'sval_pointer *' + | frompointer(t) -> sval_pointer + | + | @param t: sval_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function sval_pointer_frompointer in module ida_pro: + +sval_pointer_frompointer(*args) -> 'sval_pointer *' + sval_pointer_frompointer(t) -> sval_pointer + + @param t: sval_t * + +Help on class tid_array in module ida_pro: + +class tid_array(builtins.object) + | Proxy of C++ tid_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'tid_t' + | __getitem__(self, index) -> tid_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> tid_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: tid_t + | + | __swig_destroy__ = delete_tid_array(...) + | delete_tid_array(self) + | + | cast(self, *args) -> 'tid_t *' + | cast(self) -> tid_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'tid_array *' + | frompointer(t) -> tid_array + | + | @param t: tid_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function tid_array_frompointer in module ida_pro: + +tid_array_frompointer(*args) -> 'tid_array *' + tid_array_frompointer(t) -> tid_array + + @param t: tid_t * + +Help on class uchar_array in module ida_pro: + +class uchar_array(builtins.object) + | Proxy of C++ uchar_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'uchar' + | __getitem__(self, index) -> uchar + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> uchar_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uchar + | + | __swig_destroy__ = delete_uchar_array(...) + | delete_uchar_array(self) + | + | cast(self, *args) -> 'uchar *' + | cast(self) -> uchar * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'uchar_array *' + | frompointer(t) -> uchar_array + | + | @param t: uchar * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function uchar_array_frompointer in module ida_pro: + +uchar_array_frompointer(*args) -> 'uchar_array *' + uchar_array_frompointer(t) -> uchar_array + + @param t: uchar * + +Help on class uint64vec_t in module ida_pro: + +class uint64vec_t(builtins.object) + | Proxy of C++ qvector< unsigned long long > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & + | + | __getitem__(self, *args) -> 'unsigned long long const &' + | __getitem__(self, i) -> unsigned long long const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> uint64vec_t + | __init__(self, x) -> uint64vec_t + | + | @param x: qvector< unsigned long long > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned long long > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned long long const & + | + | __swig_destroy__ = delete_uint64vec_t(...) + | delete_uint64vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned long long const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: unsigned long long const & + | + | append = push_back(self, *args) -> 'unsigned long long &' + | + | at = __getitem__(self, *args) -> 'unsigned long long const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< unsigned long long >::const_iterator' + | begin(self) -> qvector< unsigned long long >::iterator + | begin(self) -> qvector< unsigned long long >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< unsigned long long >::const_iterator' + | end(self) -> qvector< unsigned long long >::iterator + | end(self) -> qvector< unsigned long long >::const_iterator + | + | erase(self, *args) -> 'qvector< unsigned long long >::iterator' + | erase(self, it) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | + | erase(self, first, last) -> qvector< unsigned long long >::iterator + | + | @param first: qvector< unsigned long long >::iterator + | @param last: qvector< unsigned long long >::iterator + | + | extract(self, *args) -> 'unsigned long long *' + | extract(self) -> unsigned long long * + | + | find(self, *args) -> 'qvector< unsigned long long >::const_iterator' + | find(self, x) -> qvector< unsigned long long >::iterator + | + | @param x: unsigned long long const & + | + | find(self, x) -> qvector< unsigned long long >::const_iterator + | + | @param x: unsigned long long const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: unsigned long long const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: unsigned long long * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< unsigned long long >::iterator' + | insert(self, it, x) -> qvector< unsigned long long >::iterator + | + | @param it: qvector< unsigned long long >::iterator + | @param x: unsigned long long const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'unsigned long long &' + | push_back(self, x) + | + | @param x: unsigned long long const & + | + | push_back(self) -> unsigned long long & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned long long const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< unsigned long long > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class uintvec_t in module ida_pro: + +class uintvec_t(builtins.object) + | Proxy of C++ qvector< unsigned int > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & + | + | __getitem__(self, *args) -> 'unsigned int const &' + | __getitem__(self, i) -> unsigned int const & + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> uintvec_t + | __init__(self, x) -> uintvec_t + | + | @param x: qvector< unsigned int > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< unsigned int > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned int const & + | + | __swig_destroy__ = delete_uintvec_t(...) + | delete_uintvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: unsigned int const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: unsigned int const & + | + | append = push_back(self, *args) -> 'unsigned int &' + | + | at = __getitem__(self, *args) -> 'unsigned int const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< unsigned int >::const_iterator' + | begin(self) -> qvector< unsigned int >::iterator + | begin(self) -> qvector< unsigned int >::const_iterator + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< unsigned int >::const_iterator' + | end(self) -> qvector< unsigned int >::iterator + | end(self) -> qvector< unsigned int >::const_iterator + | + | erase(self, *args) -> 'qvector< unsigned int >::iterator' + | erase(self, it) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | + | erase(self, first, last) -> qvector< unsigned int >::iterator + | + | @param first: qvector< unsigned int >::iterator + | @param last: qvector< unsigned int >::iterator + | + | extract(self, *args) -> 'unsigned int *' + | extract(self) -> unsigned int * + | + | find(self, *args) -> 'qvector< unsigned int >::const_iterator' + | find(self, x) -> qvector< unsigned int >::iterator + | + | @param x: unsigned int const & + | + | find(self, x) -> qvector< unsigned int >::const_iterator + | + | @param x: unsigned int const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: unsigned int const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: unsigned int * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< unsigned int >::iterator' + | insert(self, it, x) -> qvector< unsigned int >::iterator + | + | @param it: qvector< unsigned int >::iterator + | @param x: unsigned int const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'unsigned int &' + | push_back(self, x) + | + | @param x: unsigned int const & + | + | push_back(self) -> unsigned int & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: unsigned int const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< unsigned int > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class uval_array in module ida_pro: + +class uval_array(builtins.object) + | Proxy of C++ uval_array class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'uval_t' + | __getitem__(self, index) -> uval_t + | + | @param index: size_t + | + | __init__(self, *args) + | __init__(self, nelements) -> uval_array + | + | @param nelements: size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, index, value) + | + | @param index: size_t + | @param value: uval_t + | + | __swig_destroy__ = delete_uval_array(...) + | delete_uval_array(self) + | + | cast(self, *args) -> 'uval_t *' + | cast(self) -> uval_t * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | frompointer(*args) -> 'uval_array *' + | frompointer(t) -> uval_array + | + | @param t: uval_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function uval_array_frompointer in module ida_pro: + +uval_array_frompointer(*args) -> 'uval_array *' + uval_array_frompointer(t) -> uval_array + + @param t: uval_t * + +Help on function writebytes in module ida_pro: + +writebytes(*args) -> 'int' + writebytes(h, l, size, mf) -> int + Write at most 4 bytes to file. + + @param h: (C++: int) file handle + @param l: (C++: uint32) value to write + @param size: (C++: int) size of value in bytes (1,2,4) + @param mf: (C++: bool) is MSB first? + @return: 0 on success, nonzero otherwise + +Module "ida_problems"s docstring: +""" +Functions that deal with the list of problems. + +There are several problem lists. An address may be inserted to any list. The +kernel simply maintains these lists, no additional processing is done. + +The problem lists are accessible for the user from the View->Subviews->Problems +menu item. + +Addresses in the lists are kept sorted. In general IDA just maintains these +lists without using them during analysis (except PR_ROLLED).""" + +Help on function forget_problem in module ida_problems: + +forget_problem(*args) -> 'bool' + forget_problem(type, ea) -> bool + Remove an address from a problem list + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @return: success + +Help on function get_problem in module ida_problems: + +get_problem(*args) -> 'ea_t' + get_problem(type, lowea) -> ea_t + Get an address from the specified problem list. The address is not removed from + the list. + + @param type: (C++: problist_id_t) problem list type + @param lowea: (C++: ea_t) the returned address will be higher or equal than the specified + address + @return: linear address or BADADDR + +Help on function get_problem_desc in module ida_problems: + +get_problem_desc(*args) -> 'qstring *' + get_problem_desc(t, ea) -> str + Get the human-friendly description of the problem, if one was provided to + remember_problem. + + @param t: (C++: problist_id_t) problem list type. + @param ea: (C++: ea_t) linear address. + @return: the message length or -1 if none + +Help on function get_problem_name in module ida_problems: + +get_problem_name(*args) -> 'char const *' + get_problem_name(type, longname=True) -> char const * + Get problem list description. + + @param type: (C++: problist_id_t) + @param longname: (C++: bool) + +Help on function is_problem_present in module ida_problems: + +is_problem_present(*args) -> 'bool' + is_problem_present(t, ea) -> bool + Check if the specified address is present in the problem list. + + @param t: (C++: problist_id_t) + @param ea: (C++: ea_t) + +Help on function remember_problem in module ida_problems: + +remember_problem(*args) -> 'void' + remember_problem(type, ea, msg=None) + Insert an address to a list of problems. Display a message saying about the + problem (except of PR_ATTN,PR_FINAL) PR_JUMP is temporarily ignored. + + @param type: (C++: problist_id_t) problem list type + @param ea: (C++: ea_t) linear address + @param msg: (C++: const char *) a user-friendly message to be displayed instead of the default more + generic one associated with the type of problem. Defaults to + nullptr. + +Help on function was_ida_decision in module ida_problems: + +was_ida_decision(*args) -> 'bool' + was_ida_decision(ea) -> bool + + @param ea: ea_t + +Module "ida_range"s docstring: +""" +Contains the definition of range_t. + +A range is a non-empty continuous range of addresses (specified by its start and +end addresses, the end address is excluded from the range). + +Ranges are stored in the Btree part of the IDA database. To learn more about +Btrees (Balanced Trees): \link{http://www.bluerwhite.org/btree/}""" + +Help on class array_of_rangesets in module ida_range: + +class array_of_rangesets(builtins.object) + | Proxy of C++ qvector< rangeset_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & + | + | __getitem__(self, *args) -> 'rangeset_t const &' + | __getitem__(self, i) -> rangeset_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> array_of_rangesets + | __init__(self, x) -> array_of_rangesets + | + | @param x: qvector< rangeset_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< rangeset_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: rangeset_t const & + | + | __swig_destroy__ = delete_array_of_rangesets(...) + | delete_array_of_rangesets(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: rangeset_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: rangeset_t const & + | + | at(self, *args) -> 'rangeset_t const &' + | at(self, _idx) -> rangeset_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< rangeset_t >::const_iterator' + | begin(self) -> rangeset_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< rangeset_t >::const_iterator' + | end(self) -> rangeset_t + | + | erase(self, *args) -> 'qvector< rangeset_t >::iterator' + | erase(self, it) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | + | erase(self, first, last) -> rangeset_t + | + | @param first: qvector< rangeset_t >::iterator + | @param last: qvector< rangeset_t >::iterator + | + | extract(self, *args) -> 'rangeset_t *' + | extract(self) -> rangeset_t + | + | find(self, *args) -> 'qvector< rangeset_t >::const_iterator' + | find(self, x) -> rangeset_t + | + | @param x: rangeset_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=rangeset_t()) + | + | @param x: rangeset_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: rangeset_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: rangeset_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< rangeset_t >::iterator' + | insert(self, it, x) -> rangeset_t + | + | @param it: qvector< rangeset_t >::iterator + | @param x: rangeset_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'rangeset_t &' + | push_back(self, x) + | + | @param x: rangeset_t const & + | + | push_back(self) -> rangeset_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: rangeset_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< rangeset_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class range_t in module ida_range: + +class range_t(builtins.object) + | Proxy of C++ range_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __init__(self, *args) + | __init__(self) -> range_t + | __init__(self, ea1, ea2) -> range_t + | + | @param ea1: ea_t + | @param ea2: ea_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_range_t(...) + | delete_range_t(self) + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function range_t_print in module ida_range: + +range_t_print(*args) -> 'size_t' + range_t_print(cb) -> str + Helper function. Should not be called directly! + + @param cb: range_t const * + +Help on class rangeset_t in module ida_range: + +class rangeset_t(builtins.object) + | Proxy of C++ rangeset_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | __getitem__(self, idx) + | + | __init__(self, *args) + | __init__(self) -> rangeset_t + | __init__(self, range) -> rangeset_t + | + | @param range: range_t const & + | + | __init__(self, ivs) -> rangeset_t + | + | @param ivs: rangeset_t const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = nranges(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rangeset_t(...) + | delete_rangeset_t(self) + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | add(self, *args) -> 'bool' + | add(self, range) -> bool + | Add each element of 'aset' to the set. + | + | @param range: range_t const & + | + | @return: false if no elements were added (the set was unchanged) + | add(self, start, _end) -> bool + | + | @param start: ea_t + | @param _end: ea_t + | + | add(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | begin(self, *args) -> 'rangeset_t::iterator' + | begin(self) -> range_t + | Get an iterator that points to the first element in the set. + | + | cached_range(self, *args) -> 'range_t const *' + | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up searches. + | + | @return: a pointer to the cached element + | + | clear(self, *args) -> 'void' + | clear(self) + | Delete all elements from the set. See qvector::clear() + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every element in 'aset' contained in an element of this rangeset?. See + | range_t::contains(range_t) + | + | @param ea: ea_t + | + | contains(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Does the set have zero elements. + | + | end(self, *args) -> 'rangeset_t::iterator' + | end(self) -> range_t + | Get an iterator that points to the end of the set. (This is NOT the last + | element) + | + | find_range(self, *args) -> 'range_t const *' + | find_range(self, ea) -> range_t + | Get the element from the set that contains 'ea'. + | + | @param ea: (C++: ea_t) + | @return: nullptr if there is no such element + | + | getrange(self, *args) -> 'range_t const &' + | getrange(self, idx) -> range_t + | Get the range_t at index 'idx'. + | + | @param idx: (C++: int) + | + | has_common(self, *args) -> 'bool' + | has_common(self, range) -> bool + | Does any element of 'aset' overlap with an element in this rangeset?. See + | range_t::overlaps() + | + | @param range: range_t const & + | + | has_common(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | includes(self, *args) -> 'bool' + | includes(self, range) -> bool + | Is every ea in 'range' contained in the rangeset? + | + | @param range: (C++: const range_t &) range_t const & + | + | intersect(self, *args) -> 'bool' + | intersect(self, aset) -> bool + | Set the rangeset to its intersection with 'aset'. + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | @return: false if the set was unchanged + | + | is_equal(self, *args) -> 'bool' + | is_equal(self, aset) -> bool + | Do this rangeset and 'aset' have identical elements? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | + | is_subset_of(self, *args) -> 'bool' + | is_subset_of(self, aset) -> bool + | Is every element in the rangeset contained in an element of 'aset'? + | + | @param aset: (C++: const rangeset_t &) rangeset_t const & + | + | lastrange(self, *args) -> 'range_t const &' + | lastrange(self) -> range_t + | Get the last range_t in the set. + | + | next_addr(self, *args) -> 'ea_t' + | next_addr(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) + | + | next_range(self, *args) -> 'ea_t' + | next_range(self, ea) -> ea_t + | Get the smallest ea_t value greater than 'ea' that is not in the same range as + | 'ea'. + | + | @param ea: (C++: ea_t) + | + | nranges(self, *args) -> 'size_t' + | nranges(self) -> size_t + | Get the number of range_t elements in the set. + | + | prev_addr(self, *args) -> 'ea_t' + | prev_addr(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | + | @param ea: (C++: ea_t) + | + | prev_range(self, *args) -> 'ea_t' + | prev_range(self, ea) -> ea_t + | Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'. + | + | @param ea: (C++: ea_t) + | + | sub(self, *args) -> 'bool' + | sub(self, range) -> bool + | Subtract each range in 'aset' from the set + | + | @param range: range_t const & + | + | @return: false if nothing was subtracted (the set was unchanged) + | sub(self, ea) -> bool + | + | @param ea: ea_t + | + | sub(self, aset) -> bool + | + | @param aset: rangeset_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Set this = 'r' and 'r' = this. See qvector::swap() + | + | @param r: (C++: rangeset_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class rangevec_base_t in module ida_range: + +class rangevec_base_t(builtins.object) + | Proxy of C++ qvector< range_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> rangevec_base_t + | __init__(self, x) -> rangevec_base_t + | + | @param x: qvector< range_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | __swig_destroy__ = delete_rangevec_base_t(...) + | delete_rangevec_base_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class rangevec_t in module ida_range: + +class rangevec_t(rangevec_base_t) + | Proxy of C++ rangevec_t class. + | + | Method resolution order: + | rangevec_t + | rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> rangevec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rangevec_t(...) + | delete_rangevec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from rangevec_base_t: + | + | __hash__ = None + +Module "ida_registry"s docstring: +""" +Registry related functions. + +IDA uses the registry to store global configuration options that must persist +after IDA has been closed. + +On Windows, IDA uses the Windows registry directly. On Unix systems, the +registry is stored in a file (typically ~/.idapro/ida.reg). + +The root key for accessing IDA settings in the registry is defined by +ROOT_KEY_NAME.""" + +Help on function reg_data_type in module ida_registry: + +reg_data_type(*args) -> 'regval_type_t' + reg_data_type(name, subkey=None) -> regval_type_t + Get data type of a given value. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: false if the [key+]value doesn't exist + +Help on function reg_delete in module ida_registry: + +reg_delete(*args) -> 'bool' + reg_delete(name, subkey=None) -> bool + Delete a value from the registry. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + @return: success + +Help on function reg_delete_subkey in module ida_registry: + +reg_delete_subkey(*args) -> 'bool' + reg_delete_subkey(name) -> bool + Delete a key from the registry. + + @param name: (C++: const char *) char const * + +Help on function reg_delete_tree in module ida_registry: + +reg_delete_tree(*args) -> 'bool' + reg_delete_tree(name) -> bool + Delete a subtree from the registry. + + @param name: (C++: const char *) char const * + +Help on function reg_exists in module ida_registry: + +reg_exists(*args) -> 'bool' + reg_exists(name, subkey=None) -> bool + Is there already a value with the given name? + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) parent key + +Help on function reg_flush in module ida_registry: + +reg_flush(*args) -> 'void' + reg_flush() + +Help on function reg_load in module ida_registry: + +reg_load(*args) -> 'void' + reg_load() + +Help on function reg_read_binary in module ida_registry: + +reg_read_binary(*args) -> 'PyObject *' + reg_read_binary(name, subkey=None) -> bytes or None + Read binary data from the registry. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @return: success + +Help on function reg_read_bool in module ida_registry: + +reg_read_bool(*args) -> 'bool' + reg_read_bool(name, defval, subkey=None) -> bool + Read boolean value from the registry. + + @param name: (C++: const char *) value name + @param defval: (C++: bool) default value + @param subkey: (C++: const char *) key name + @return: boolean read from registry, or 'defval' if the read failed + +Help on function reg_read_int in module ida_registry: + +reg_read_int(*args) -> 'int' + reg_read_int(name, defval, subkey=None) -> int + Read integer value from the registry. + + @param name: (C++: const char *) value name + @param defval: (C++: int) default value + @param subkey: (C++: const char *) key name + @return: the value read from the registry, or 'defval' if the read failed + +Help on function reg_read_string in module ida_registry: + +reg_read_string(*args) -> 'PyObject *' + reg_read_string(name, subkey=None, _def=None) -> str + Read a string from the registry. + + @param name: (C++: const char *) value name + @param subkey: (C++: const char *) key name + @param def: char const * + @return: success + +Help on function reg_read_strlist in module ida_registry: + +reg_read_strlist(*args) -> 'qstrvec_t *' + reg_read_strlist(subkey) + Retrieve all string values associated with the given key. Also see + reg_update_strlist(). + + @param subkey: (C++: const char *) char const * + +Help on function reg_subkey_exists in module ida_registry: + +reg_subkey_exists(*args) -> 'bool' + reg_subkey_exists(name) -> bool + Is there already a key with the given name? + + @param name: (C++: const char *) char const * + +Help on function reg_subkey_subkeys in module ida_registry: + +reg_subkey_subkeys(*args) -> 'PyObject *' + reg_subkey_subkeys(name) -> [str, ...] + Get all subkey names of given key. + + @param name: (C++: const char *) char const * + +Help on function reg_subkey_values in module ida_registry: + +reg_subkey_values(*args) -> 'PyObject *' + reg_subkey_values(name) -> [str, ...] + Get all value names under given key. + + @param name: (C++: const char *) char const * + +Help on function reg_update_filestrlist in module ida_registry: + +reg_update_filestrlist(*args) -> 'void' + reg_update_filestrlist(subkey, add, maxrecs, rem=None) + Update registry with a file list. Case sensitivity will vary depending on the + target OS. + @note: 'add' and 'rem' must be UTF-8, just like for regular string operations. + + @param subkey: (C++: const char *) char const * + @param add: (C++: const char *) char const * + @param maxrecs: (C++: size_t) + @param rem: (C++: const char *) char const * + +Help on function reg_update_strlist in module ida_registry: + +reg_update_strlist(*args) -> 'void' + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) + Update list of strings associated with given key. + + @param subkey: (C++: const char *) key name + @param add: (C++: const char *) string to be added to list, can be nullptr + @param maxrecs: (C++: size_t) limit list to this size + @param rem: (C++: const char *) string to be removed from list, can be nullptr + @param ignorecase: (C++: bool) ignore case for 'add' and 'rem' + +Help on function reg_write_binary in module ida_registry: + +reg_write_binary(*args) -> 'PyObject *' + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * + Write binary data to the registry. + + @param name: (C++: const char *) value name + @param py_bytes: PyObject * + @param subkey: (C++: const char *) key name + +Help on function reg_write_bool in module ida_registry: + +reg_write_bool(*args) -> 'void' + reg_write_bool(name, value, subkey=None) + Write boolean value to the registry. + + @param name: (C++: const char *) value name + @param value: (C++: int) boolean to write (nonzero = true) + @param subkey: (C++: const char *) key name + +Help on function reg_write_int in module ida_registry: + +reg_write_int(*args) -> 'void' + reg_write_int(name, value, subkey=None) + Write integer value to the registry. + + @param name: (C++: const char *) value name + @param value: (C++: int) value to write + @param subkey: (C++: const char *) key name + +Help on function reg_write_string in module ida_registry: + +reg_write_string(*args) -> 'void' + reg_write_string(name, utf8, subkey=None) + Write a string to the registry. + + @param name: (C++: const char *) value name + @param utf8: (C++: const char *) utf8-encoded string + @param subkey: (C++: const char *) key name + +Help on function set_registry_root in module ida_registry: + +set_registry_root(*args) -> 'bool' + set_registry_root(name) -> bool + + @param name: char const * + +Module "ida_search"s docstring: +""" +Middle-level search functions. + +They all are controlled by Search flags""" + +Help on function find_binary in module ida_search: + +find_binary(*args) -> 'ea_t' + find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t + Deprecated. Please use ida_bytes.bin_search() instead. + + @param arg1: ea_t + @param arg2: ea_t + @param arg3: char const * + @param arg4: int + @param arg5: int + +Help on function find_code in module ida_search: + +find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t + Find next code address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_data in module ida_search: + +find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t + Find next data address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_defined in module ida_search: + +find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t + Find next ea that is the start of an instruction or data. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_error in module ida_search: + +find_error(*args) -> 'int *' + find_error(ea, sflag) -> ea_t + Find next error or problem. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_imm in module ida_search: + +find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t + Find next immediate operand with the given value. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) + +Help on function find_not_func in module ida_search: + +find_not_func(*args) -> 'ea_t' + find_not_func(ea, sflag) -> ea_t + Find next code address that does not belong to a function. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_notype in module ida_search: + +find_notype(*args) -> 'int *' + find_notype(ea, sflag) -> ea_t + Find next operand without any type info. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_reg_access in module ida_search: + +find_reg_access(*args) -> 'ea_t' + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + Find access to a register. + + @param out: (C++: struct reg_access_t *) pointer to the output buffer. must be non-null. upon success + contains info about the found register. upon failed search for a + read access out->range contains the info about the non-redefined + parts of the register. + @param start_ea: (C++: ea_t) starting address + @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. + otherwise, if the search direction is SEARCH_UP, END_EA must be + lower than START_EA. + @param regname: (C++: const char *) the register to search for. + @param sflag: (C++: int) combination of Search flags bits. + @note: This function does not care about the control flow and probes all + instructions in the specified range, starting from START_EA. Only direct + references to registers are detected. Function calls and system traps are + ignored. + @return: the found address. BADADDR if not found or error. + +Help on function find_suspop in module ida_search: + +find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t + Find next suspicious operand. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_text in module ida_search: + +find_text(*args) -> 'ea_t' + find_text(start_ea, y, x, ustr, sflag) -> ea_t + See search() + + @param start_ea: (C++: ea_t) + @param y: (C++: int) + @param x: (C++: int) + @param ustr: (C++: const char *) char const * + @param sflag: (C++: int) + +Help on function find_unknown in module ida_search: + +find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t + Find next unexplored address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function search_down in module ida_search: + +search_down(*args) -> 'bool' + search_down(sflag) -> bool + Is the SEARCH_DOWN bit set? + + @param sflag: (C++: int) + +Module "ida_segment"s docstring: +""" +Functions that deal with segments. + +IDA requires that all program addresses belong to segments (each address must +belong to exactly one segment). The situation when an address doesn't belong to +any segment is allowed as a temporary situation only when the user changes +program segmentation. Bytes outside a segment can't be converted to +instructions, have names, comments, etc. Each segment has its start address, +ending address and represents a contiguous range of addresses. There might be +unused holes between segments. + +Each segment has its unique segment selector. This selector is used to +distinguish the segment from other segments. For 16-bit programs the selector is +equal to the segment base paragraph. For 32-bit programs there is special array +to translate the selectors to the segment base paragraphs. A selector is a 32/64 +bit value. + +The segment base paragraph determines the offsets in the segment. If the start +address of the segment == (base << 4) then the first offset in the segment will +be 0. The start address should be higher or equal to (base << 4). We will call +the offsets in the segment 'virtual addresses'. So, the virtual address of the +first byte of the segment is + +(start address of segment - segment base linear address) + +For IBM PC, the virtual address corresponds to the offset part of the address. +For other processors (Z80, for example), virtual addresses correspond to Z80 +addresses and linear addresses are used only internally. For MS Windows programs +the segment base paragraph is 0 and therefore the segment virtual addresses are +equal to linear addresses.""" + +Help on function add_segm in module ida_segment: + +add_segm(*args) -> 'bool' + add_segm(para, start, end, name, sclass, flags=0) -> bool + Add a new segment, second form. Segment alignment is set to saRelByte. Segment + combination is "public" or "stack" (if segment class is "STACK"). Addressing + mode of segment is taken as default (16bit or 32bit). Default segment registers + are set to BADSEL. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. + + @param para: (C++: ea_t) segment base paragraph. if paragraph can't fit in 16bit, then a new + selector is allocated and mapped to the paragraph. + @param start: (C++: ea_t) start address of the segment. if start==BADADDR then start <- + to_ea(para,0). + @param end: (C++: ea_t) end address of the segment. end address should be higher than start + address. For emulate empty segments, use SEG_NULL segment type. If + the end address is lower than start address, then fail. If + end==BADADDR, then a segment up to the next segment will be created + (if the next segment doesn't exist, then 1 byte segment will be + created). If 'end' is too high and the new segment would overlap the + next segment, 'end' is adjusted properly. + @param name: (C++: const char *) name of new segment. may be nullptr + @param sclass: (C++: const char *) class of the segment. may be nullptr. type of the new segment is + modified if class is one of predefined names: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "CONST" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * "XTRN" -> SEG_XTRN + * "COMM" -> SEG_COMM + * "ABS" -> SEG_ABSSYM + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function add_segm_ex in module ida_segment: + +add_segm_ex(*args) -> 'bool' + add_segm_ex(NONNULL_s, name, sclass, flags) -> bool + Add a new segment. If a segment already exists at the specified range of + addresses, this segment will be truncated. Instructions and data in the old + segment will be deleted if the new segment has another addressing mode or + another segment base address. + + @param NONNULL_s: (C++: segment_t *) + @param name: (C++: const char *) name of new segment. may be nullptr. if specified, the segment is + immediately renamed + @param sclass: (C++: const char *) class of the segment. may be nullptr. if specified, the segment + class is immediately changed + @param flags: (C++: int) Add segment flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function add_segment_translation in module ida_segment: + +add_segment_translation(*args) -> 'bool' + add_segment_translation(segstart, mappedseg) -> bool + Add segment translation. + + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param mappedseg: (C++: ea_t) start address of the overlayed segment + @retval 1: ok + @retval 0: too many translations or bad segstart + +Help on function allocate_selector in module ida_segment: + +allocate_selector(*args) -> 'sel_t' + allocate_selector(segbase) -> sel_t + Allocate a selector for a segment unconditionally. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a new free + selector and setup its mapping using find_free_selector() and set_selector() + functions. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number + +Help on function change_segment_status in module ida_segment: + +change_segment_status(*args) -> 'int' + change_segment_status(s, is_deb_segm) -> int + Convert a debugger segment to a regular segment and vice versa. When converting + debug->regular, the memory contents will be copied to the database. + + @param s: (C++: segment_t *) segment to modify + @param is_deb_segm: (C++: bool) new status of the segment + @return: Change segment status result codes + +Help on function del_segm in module ida_segment: + +del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool + Delete a segment. + + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. + +Help on function del_segment_translations in module ida_segment: + +del_segment_translations(*args) -> 'void' + del_segment_translations(segstart) + Delete the translation list + + @param segstart: (C++: ea_t) start address of the segment to delete translation list + +Help on function del_selector in module ida_segment: + +del_selector(*args) -> 'void' + del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table + +Help on function find_free_selector in module ida_segment: + +find_free_selector(*args) -> 'sel_t' + find_free_selector() -> sel_t + Find first unused selector. + + @return: a number >= 1 + +Help on function find_selector in module ida_segment: + +find_selector(*args) -> 'sel_t' + find_selector(base) -> sel_t + Find a selector that has mapping to the specified paragraph. + + @param base: (C++: ea_t) paragraph to search in the translation table + @return: selector value or base + +Help on function get_defsr in module ida_segment: + +get_defsr(*args) -> 'sel_t' + get_defsr(s, reg) -> sel_t + Deprecated, use instead: + value = s.defsr[reg] + + @param s: segment_t * + @param reg: int + +Help on function get_first_seg in module ida_segment: + +get_first_seg(*args) -> 'segment_t *' + get_first_seg() -> segment_t + Get pointer to the first segment. + +Help on function get_group_selector in module ida_segment: + +get_group_selector(*args) -> 'sel_t' + get_group_selector(grpsel) -> sel_t + Get common selector for a group of segments. + + @param grpsel: (C++: sel_t) selector of group segment + @return: common selector of the group or 'grpsel' if no such group is found + +Help on function get_last_seg in module ida_segment: + +get_last_seg(*args) -> 'segment_t *' + get_last_seg() -> segment_t + Get pointer to the last segment. + +Help on function get_next_seg in module ida_segment: + +get_next_seg(*args) -> 'segment_t *' + get_next_seg(ea) -> segment_t + Get pointer to the next segment. + + @param ea: (C++: ea_t) + +Help on function get_prev_seg in module ida_segment: + +get_prev_seg(*args) -> 'segment_t *' + get_prev_seg(ea) -> segment_t + Get pointer to the previous segment. + + @param ea: (C++: ea_t) + +Help on function get_segm_base in module ida_segment: + +get_segm_base(*args) -> 'ea_t' + get_segm_base(s) -> ea_t + Get segment base linear address. Segment base linear address is used to + calculate virtual addresses. The virtual address of the first byte of the + segment will be (start address of segment - segment base linear address) + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, otherwise segment base linear address + +Help on function get_segm_by_name in module ida_segment: + +get_segm_by_name(*args) -> 'segment_t *' + get_segm_by_name(name) -> segment_t + Get pointer to segment by its name. If there are several segments with the same + name, returns the first of them. + + @param name: (C++: const char *) segment name. may be nullptr. + @return: nullptr or pointer to segment structure + +Help on function get_segm_by_sel in module ida_segment: + +get_segm_by_sel(*args) -> 'segment_t *' + get_segm_by_sel(selector) -> segment_t + Get pointer to segment structure. This function finds a segment by its selector. + If there are several segments with the same selectors, the last one will be + returned. + + @param selector: (C++: sel_t) a segment with the specified selector will be returned + @return: pointer to segment or nullptr + +Help on function get_segm_class in module ida_segment: + +get_segm_class(*args) -> 'qstring *' + get_segm_class(s) -> str + Get segment class. Segment class is arbitrary text (max 8 characters). + + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment class (-1 if s==nullptr or bufsize<=0) + +Help on function get_segm_name in module ida_segment: + +get_segm_name(*args) -> 'qstring *' + get_segm_name(s, flags=0) -> str + Get true segment name by pointer to segment. + + @param s: (C++: const segment_t *) pointer to segment + @param flags: (C++: int) 0-return name as is; 1-substitute bad symbols with _ 1 corresponds + to GN_VISIBLE + @return: size of segment name (-1 if s==nullptr) + +Help on function get_segm_num in module ida_segment: + +get_segm_num(*args) -> 'int' + get_segm_num(ea) -> int + Get number of segment by address. + + @param ea: (C++: ea_t) linear address belonging to the segment + @return: -1 if no segment occupies the specified address. otherwise returns + number of the specified segment (0..get_segm_qty()-1) + +Help on function get_segm_para in module ida_segment: + +get_segm_para(*args) -> 'ea_t' + get_segm_para(s) -> ea_t + Get segment base paragraph. Segment base paragraph may be converted to segment + base linear address using to_ea() function. In fact, to_ea(get_segm_para(s), 0) + == get_segm_base(s). + + @param s: (C++: const segment_t *) pointer to segment + @return: 0 if s == nullptr, the segment base paragraph + +Help on function get_segm_qty in module ida_segment: + +get_segm_qty(*args) -> 'int' + get_segm_qty() -> int + Get number of segments. + +Help on function get_segment_alignment in module ida_segment: + +get_segment_alignment(*args) -> 'char const *' + get_segment_alignment(align) -> char const * + Get text representation of segment alignment code. + + @param align: (C++: uchar) + @return: text digestable by IBM PC assembler. + +Help on function get_segment_cmt in module ida_segment: + +get_segment_cmt(*args) -> 'qstring *' + get_segment_cmt(s, repeatable) -> str + Get segment comment. + + @param s: (C++: const segment_t *) pointer to segment structure + @param repeatable: (C++: bool) 0: get regular comment. 1: get repeatable comment. + @return: size of comment or -1 + +Help on function get_segment_combination in module ida_segment: + +get_segment_combination(*args) -> 'char const *' + get_segment_combination(comb) -> char const * + Get text representation of segment combination code. + + @param comb: (C++: uchar) + @return: text digestable by IBM PC assembler. + +Help on function get_segment_translations in module ida_segment: + +get_segment_translations(*args) -> 'ssize_t' + get_segment_translations(transmap, segstart) -> ssize_t + Get segment translation list. + + @param transmap: (C++: eavec_t *) vector of segment start addresses for the translation list + @param segstart: (C++: ea_t) start address of the segment to get information about + @return: -1 if no translation list or bad segstart. otherwise returns size of + translation list. + +Help on function get_selector_qty in module ida_segment: + +get_selector_qty(*args) -> 'size_t' + get_selector_qty() -> size_t + Get number of defined selectors. + +Help on function get_visible_segm_name in module ida_segment: + +get_visible_segm_name(*args) -> 'qstring *' + get_visible_segm_name(s) -> str + Get segment name by pointer to segment. + + @param s: (C++: const segment_t *) pointer to segment + @return: size of segment name (-1 if s==nullptr) + +Help on function getn_selector in module ida_segment: + +getn_selector(*args) -> 'sel_t *, ea_t *' + getn_selector(n) -> bool + Get description of selector (0..get_selector_qty()-1) + + @param n: (C++: int) + +Help on function getnseg in module ida_segment: + +getnseg(*args) -> 'segment_t *' + getnseg(n) -> segment_t + Get pointer to segment by its number. + @warning: Obsoleted because it can slow down the debugger (it has to refresh the + whole memory segmentation to calculate the correct answer) + + @param n: (C++: int) segment number in the range (0..get_segm_qty()-1) + @return: nullptr or pointer to segment structure + +Help on function getseg in module ida_segment: + +getseg(*args) -> 'segment_t *' + getseg(ea) -> segment_t + Get pointer to segment by linear address. + + @param ea: (C++: ea_t) linear address belonging to the segment + @return: nullptr or pointer to segment structure + +Help on function is_finally_visible_segm in module ida_segment: + +is_finally_visible_segm(*args) -> 'bool' + is_finally_visible_segm(s) -> bool + See SFL_HIDDEN, SCF_SHHID_SEGM. + + @param s: (C++: segment_t *) + +Help on function is_miniidb in module ida_segment: + +is_miniidb(*args) -> 'bool' + is_miniidb() -> bool + Is the database a miniidb created by the debugger?. + + @return: true if the database contains no segments or only debugger segments + +Help on function is_segm_locked in module ida_segment: + +is_segm_locked(*args) -> 'bool' + is_segm_locked(segm) -> bool + Is a segment pointer locked? + + @param segm: (C++: const segment_t *) segment_t const * + +Help on function is_spec_ea in module ida_segment: + +is_spec_ea(*args) -> 'bool' + is_spec_ea(ea) -> bool + Does the address belong to a segment with a special type?. (SEG_XTRN, SEG_GRP, + SEG_ABSSYM, SEG_COMM) + + @param ea: (C++: ea_t) linear address + +Help on function is_spec_segm in module ida_segment: + +is_spec_segm(*args) -> 'bool' + is_spec_segm(seg_type) -> bool + Has segment a special type?. (SEG_XTRN, SEG_GRP, SEG_ABSSYM, SEG_COMM) + + @param seg_type: (C++: uchar) + +Help on function is_visible_segm in module ida_segment: + +is_visible_segm(*args) -> 'bool' + is_visible_segm(s) -> bool + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + +Help on function lock_segm in module ida_segment: + +lock_segm(*args) -> 'void' + lock_segm(segm, lock) + Lock segment pointer Locked pointers are guaranteed to remain valid until they + are unlocked. Ranges with locked pointers cannot be deleted or moved. + + @param segm: (C++: const segment_t *) segment_t const * + @param lock: (C++: bool) + +Help on class lock_segment in module ida_segment: + +class lock_segment(builtins.object) + | Proxy of C++ lock_segment class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _segm) -> lock_segment + | + | @param _segm: segment_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lock_segment(...) + | delete_lock_segment(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function move_segm in module ida_segment: + +move_segm(*args) -> 'int' + move_segm(s, to, flags=0) -> int + Move a segment to a new address. This function moves all information to the new + address. It fixes up address sensitive information in the kernel. The total + effect is equal to reloading the segment to the target address. For the file + format dependent address sensitive information, loader_t::move_segm is called. + Also IDB notification event idb_event::segm_moved is called. + + @param s: (C++: segment_t *) segment to move + @param to: (C++: ea_t) new segment start address + @param flags: (C++: int) Move segment flags + @return: Move segment result codes + +Help on function move_segm_start in module ida_segment: + +move_segm_start(*args) -> 'bool' + move_segm_start(ea, newstart, mode) -> bool + Move segment start. The main difference between this function and + set_segm_start() is that this function may expand the previous segment while + set_segm_start() never does it. So, this function allows to change bounds of two + segments simultaneously. If the previous segment and the specified segment have + the same addressing mode and segment base, then instructions and data are not + destroyed - they simply move from one segment to another. Otherwise all + instructions/data which migrate from one segment to another are destroyed. + @note: this function never disables addresses. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param mode: (C++: int) policy for destroying defined items + * 0: if it is necessary to destroy defined items, display a dialog box and ask + confirmation + * 1: if it is necessary to destroy defined items, just destroy them without + asking the user + * -1: if it is necessary to destroy defined items, don't destroy them (i.e. + function will fail) + * -2: don't destroy defined items (function will succeed) + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function rebase_program in module ida_segment: + +rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int + Rebase the whole program by 'delta' bytes. + + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes + +Help on function segm_adjust_diff in module ida_segment: + +segm_adjust_diff(*args) -> 'adiff_t' + segm_adjust_diff(s, delta) -> adiff_t + Truncate and sign extend a delta depending on the segment. + + @param s: (C++: const segment_t *) segment_t const * + @param delta: (C++: adiff_t) + +Help on function segm_adjust_ea in module ida_segment: + +segm_adjust_ea(*args) -> 'ea_t' + segm_adjust_ea(s, ea) -> ea_t + Truncate an address depending on the segment. + + @param s: (C++: const segment_t *) segment_t const * + @param ea: (C++: ea_t) + +Help on class segment_defsr_array in module ida_segment: + +class segment_defsr_array(builtins.object) + | Proxy of C++ wrapped_array_t< sel_t,SREG_NUM > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> segment_defsr_array + | + | @param data: unsigned-ea-like-numeric-type (&)[SREG_NUM]↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: unsigned-ea-like-numeric-type const &↗ + | + | __swig_destroy__ = delete_segment_defsr_array(...) + | delete_segment_defsr_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class segment_t in module ida_segment: + +class segment_t(ida_range.range_t) + | Proxy of C++ segment_t class. + | + | Method resolution order: + | segment_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> segment_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_segment_t(...) + | delete_segment_t(self) + | + | _segment_t__getDefsr = __getDefsr(self, *args) -> 'wrapped_array_t< sel_t,SREG_NUM >' + | __getDefsr(self) -> segment_defsr_array + | + | abits(self, *args) -> 'int' + | abits(self) -> int + | Get number of address bits. + | + | abytes(self, *args) -> 'int' + | abytes(self) -> int + | Get number of address bytes. + | + | clr_comorg(self, *args) -> 'void' + | clr_comorg(self) + | + | clr_ob_ok(self, *args) -> 'void' + | clr_ob_ok(self) + | + | comorg(self, *args) -> 'bool' + | comorg(self) -> bool + | + | is_16bit(self, *args) -> 'bool' + | is_16bit(self) -> bool + | Is a 16-bit segment? + | + | is_32bit(self, *args) -> 'bool' + | is_32bit(self) -> bool + | Is a 32-bit segment? + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | Is a 64-bit segment? + | + | is_header_segm(self, *args) -> 'bool' + | is_header_segm(self) -> bool + | + | is_hidden_segtype(self, *args) -> 'bool' + | is_hidden_segtype(self) -> bool + | + | is_loader_segm(self, *args) -> 'bool' + | is_loader_segm(self) -> bool + | + | is_visible_segm(self, *args) -> 'bool' + | is_visible_segm(self) -> bool + | + | ob_ok(self, *args) -> 'bool' + | ob_ok(self) -> bool + | + | set_comorg(self, *args) -> 'void' + | set_comorg(self) + | + | set_debugger_segm(self, *args) -> 'void' + | set_debugger_segm(self, debseg) + | + | @param debseg: bool + | + | set_header_segm(self, *args) -> 'void' + | set_header_segm(self, on) + | + | @param on: bool + | + | set_hidden_segtype(self, *args) -> 'void' + | set_hidden_segtype(self, hide) + | + | @param hide: bool + | + | set_loader_segm(self, *args) -> 'void' + | set_loader_segm(self, ldrseg) + | + | @param ldrseg: bool + | + | set_ob_ok(self, *args) -> 'void' + | set_ob_ok(self) + | + | set_visible_segm(self, *args) -> 'void' + | set_visible_segm(self, visible) + | + | @param visible: bool + | + | update(self, *args) -> 'bool' + | update(self) -> bool + | Update segment information. You must call this function after modification of + | segment characteristics. Note that not all fields of segment structure may be + | modified directly, there are special functions to modify some fields. + | + | @return: success + | + | use64 = is_64bit(self, *args) -> 'bool' + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | align + | align + | + | bitness + | bitness + | + | color + | color + | + | comb + | comb + | + | defsr + | __getDefsr(self) -> segment_defsr_array + | + | end_ea + | end_ea + | + | flags + | flags + | + | name + | name + | + | orgbase + | orgbase + | + | perm + | perm + | + | sclass + | sclass + | + | sel + | sel + | + | start_ea + | start_ea + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Help on function segtype in module ida_segment: + +segtype(*args) -> 'uchar' + segtype(ea) -> uchar + Get segment type. + + @param ea: (C++: ea_t) any linear address within the segment + @return: Segment types, SEG_UNDF if no segment found at 'ea' + +Help on function sel2ea in module ida_segment: + +sel2ea(*args) -> 'ea_t' + sel2ea(selector) -> ea_t + Get mapping of a selector as a linear address. + + @param selector: (C++: sel_t) number of selector to translate to linear address + @return: linear address the specified selector is mapped to. if there is no + mapping, returns to_ea(selector,0); + +Help on function sel2para in module ida_segment: + +sel2para(*args) -> 'ea_t' + sel2para(selector) -> ea_t + Get mapping of a selector. + + @param selector: (C++: sel_t) number of selector to translate + @return: paragraph the specified selector is mapped to. if there is no mapping, + returns 'selector'. + +Help on function set_defsr in module ida_segment: + +set_defsr(*args) -> 'void' + set_defsr(s, reg, value) + Deprecated, use instead: + s.defsr[reg] = value + + @param s: segment_t * + @param reg: int + @param value: sel_t + +Help on function set_group_selector in module ida_segment: + +set_group_selector(*args) -> 'int' + set_group_selector(grp, sel) -> int + Create a new group of segments (used OMF files). + + @param grp: (C++: sel_t) selector of group segment (segment type is SEG_GRP) You should + create an 'empty' (1 byte) group segment It won't contain anything + and will be used to redirect references to the group of segments to + the common selector. + @param sel: (C++: sel_t) common selector of all segments belonging to the segment You should + create all segments within the group with the same selector value. + @return: 1 ok + 0 too many groups (see MAX_GROUPS) + +Help on function set_segm_addressing in module ida_segment: + +set_segm_addressing(*args) -> 'bool' + set_segm_addressing(s, bitness) -> bool + Change segment addressing mode (16, 32, 64 bits). You must use this function to + change segment addressing, never change the 'bitness' field directly. This + function will delete all instructions, comments and names in the segment + + @param s: (C++: segment_t *) pointer to segment + @param bitness: (C++: size_t) new addressing mode of segment + * 2: 64bit segment + * 1: 32bit segment + * 0: 16bit segment + @return: success + +Help on function set_segm_base in module ida_segment: + +set_segm_base(*args) -> 'bool' + set_segm_base(s, newbase) -> bool + Internal function. + + @param s: (C++: segment_t *) + @param newbase: (C++: ea_t) + +Help on function set_segm_class in module ida_segment: + +set_segm_class(*args) -> 'int' + set_segm_class(s, sclass, flags=0) -> int + Set segment class. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param sclass: (C++: const char *) segment class (may be nullptr). If segment type is SEG_NORM and + segment class is one of predefined names, then segment type is + changed to: + * "CODE" -> SEG_CODE + * "DATA" -> SEG_DATA + * "STACK" -> SEG_BSS + * "BSS" -> SEG_BSS + * if "UNK" then segment type is reset to SEG_NORM. + @param flags: (C++: int) Add segment flags + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is nullptr or bad or segment is nullptr + +Help on function set_segm_end in module ida_segment: + +set_segm_end(*args) -> 'bool' + set_segm_end(ea, newend, flags) -> bool + Set segment end address. The next segment is shrinked to allow expansion of the + specified segment. The kernel might even delete the next segment if necessary. + The kernel will ask the user for a permission to destroy instructions or data + going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newend: (C++: ea_t) new end address of the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function set_segm_name in module ida_segment: + +set_segm_name(*args) -> 'int' + set_segm_name(s, name, flags=0) -> int + Rename segment. The new name is validated (see validate_name). A segment always + has a name. If you hadn't specified a name, the kernel will assign it "seg###" + name where ### is segment number. + + @param s: (C++: segment_t *) pointer to segment (may be nullptr) + @param name: (C++: const char *) new segment name + @param flags: (C++: int) ADDSEG_IDBENC or 0 + @retval 1: ok, name is good and segment is renamed + @retval 0: failure, name is bad or segment is nullptr + +Help on function set_segm_start in module ida_segment: + +set_segm_start(*args) -> 'bool' + set_segm_start(ea, newstart, flags) -> bool + Set segment start address. The previous segment is trimmed to allow expansion of + the specified segment. The kernel might even delete the previous segment if + necessary. The kernel will ask the user for a permission to destroy instructions + or data going out of segment scope if such instructions exist. + + @param ea: (C++: ea_t) any address belonging to the segment + @param newstart: (C++: ea_t) new start address of the segment note that segment start + address should be higher than segment base linear address. + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, a warning message is displayed + +Help on function set_segment_cmt in module ida_segment: + +set_segment_cmt(*args) -> 'void' + set_segment_cmt(s, cmt, repeatable) + Set segment comment. + + @param s: (C++: const segment_t *) pointer to segment structure + @param cmt: (C++: const char *) comment string, may be multiline (with ' + '). maximal size is 4096 bytes. Use empty str ("") to delete comment + @param repeatable: (C++: bool) 0: set regular comment. 1: set repeatable comment. + +Help on function set_segment_translations in module ida_segment: + +set_segment_translations(*args) -> 'bool' + set_segment_translations(segstart, transmap) -> bool + Set new translation list. + + @param segstart: (C++: ea_t) start address of the segment to add translation to + @param transmap: (C++: const eavec_t &) vector of segment start addresses for the translation list. If + transmap is empty, the translation list is deleted. + @retval 1: ok + @retval 0: too many translations or bad segstart + +Help on function set_selector in module ida_segment: + +set_selector(*args) -> 'int' + set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) + +Help on function set_visible_segm in module ida_segment: + +set_visible_segm(*args) -> 'void' + set_visible_segm(s, visible) + See SFL_HIDDEN. + + @param s: (C++: segment_t *) + @param visible: (C++: bool) + +Help on function setup_selector in module ida_segment: + +setup_selector(*args) -> 'sel_t' + setup_selector(segbase) -> sel_t + Allocate a selector for a segment if necessary. You must call this function + before calling add_segm_ex(). add_segm() calls this function itself, so you + don't need to allocate a selector. This function will allocate a selector if + 'segbase' requires more than 16 bits and the current processor is IBM PC. + Otherwise it will return the segbase value. + + @param segbase: (C++: ea_t) a new segment base paragraph + @return: the allocated selector number + +Help on function std_out_segm_footer in module ida_segment: + +std_out_segm_footer(*args) -> 'void' + std_out_segm_footer(ctx, seg) + Generate segment footer line as a comment line. This function may be used in IDP + modules to generate segment footer if the target assembler doesn't have 'ends' + directive. + + @param ctx: (C++: struct outctx_t &) outctx_t & + @param seg: (C++: segment_t *) + +Help on function take_memory_snapshot in module ida_segment: + +take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(type) -> bool + Take a memory snapshot of the running process. + + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) + @return: success + +Help on function update_segm in module ida_segment: + +update_segm(*args) -> 'bool' + update_segm(s) -> bool + + @param s: segment_t * + +Module "ida_segregs"s docstring: +""" +Functions that deal with the segment registers. + +If your processor doesn't use segment registers, then these functions are of no +use for you. However, you should define two virtual segment registers - CS and +DS (for code segment and data segment) and specify their internal numbers in the +LPH structure (processor_t::reg_code_sreg and processor_t::reg_data_sreg).""" + +Help on function copy_sreg_ranges in module ida_segregs: + +copy_sreg_ranges(*args) -> 'void' + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) + Duplicate segment register ranges. + + @param dst_rg: (C++: int) number of destination segment register + @param src_rg: (C++: int) copy ranges from + @param map_selector: (C++: bool) map selectors to linear addresses using sel2ea() + +Help on function del_sreg_range in module ida_segregs: + +del_sreg_range(*args) -> 'bool' + del_sreg_range(ea, rg) -> bool + Delete segment register range started at ea. When a segment register range is + deleted, the previous range is extended to cover the empty space. The segment + register range at the beginning of a segment cannot be deleted. + + @param ea: (C++: ea_t) start_ea of the deleted range + @param rg: (C++: int) the segment register number + @return: success + +Help on function get_prev_sreg_range in module ida_segregs: + +get_prev_sreg_range(*args) -> 'bool' + get_prev_sreg_range(out, ea, rg) -> bool + Get segment register range previous to one with address. + @note: more efficient then get_sreg_range(reg, ea-1) + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success + +Help on function get_sreg in module ida_segregs: + +get_sreg(*args) -> 'sel_t' + get_sreg(ea, rg) -> sel_t + Get value of a segment register. This function uses segment register range and + default segment register values stored in the segment structure. + + @param ea: (C++: ea_t) linear address in the program + @param rg: (C++: int) number of the segment register + @return: value of the segment register, BADSEL if value is unknown. + +Help on function get_sreg_range in module ida_segregs: + +get_sreg_range(*args) -> 'bool' + get_sreg_range(out, ea, rg) -> bool + Get segment register range by linear address. + + @param out: (C++: sreg_range_t *) segment register range + @param ea: (C++: ea_t) any linear address in the program + @param rg: (C++: int) the segment register number + @return: success + +Help on function get_sreg_range_num in module ida_segregs: + +get_sreg_range_num(*args) -> 'int' + get_sreg_range_num(ea, rg) -> int + Get number of segment register range by address. + + @param ea: (C++: ea_t) any address in the range + @param rg: (C++: int) the segment register number + @return: -1 if no range occupies the specified address. otherwise returns number + of the specified range (0..get_srranges_qty()-1) + +Help on function get_sreg_ranges_qty in module ida_segregs: + +get_sreg_ranges_qty(*args) -> 'size_t' + get_sreg_ranges_qty(rg) -> size_t + Get number of segment register ranges. + + @param rg: (C++: int) the segment register number + +Help on function getn_sreg_range in module ida_segregs: + +getn_sreg_range(*args) -> 'bool' + getn_sreg_range(out, rg, n) -> bool + Get segment register range by its number. + + @param out: (C++: sreg_range_t *) segment register range + @param rg: (C++: int) the segment register number + @param n: (C++: int) number of range (0..qty()-1) + @return: success + +Help on function set_default_dataseg in module ida_segregs: + +set_default_dataseg(*args) -> 'void' + set_default_dataseg(ds_sel) + Set default value of DS register for all segments. + + @param ds_sel: (C++: sel_t) + +Help on function set_default_sreg_value in module ida_segregs: + +set_default_sreg_value(*args) -> 'bool' + set_default_sreg_value(sg, rg, value) -> bool + Set default value of a segment register for a segment. + + @param sg: (C++: segment_t *) pointer to segment structure if nullptr, then set the register for + all segments + @param rg: (C++: int) number of segment register + @param value: (C++: sel_t) its default value. this value will be used by get_sreg() if value + of the register is unknown at the specified address. + @return: success + +Help on function set_sreg_at_next_code in module ida_segregs: + +set_sreg_at_next_code(*args) -> 'void' + set_sreg_at_next_code(ea1, ea2, rg, value) + Set the segment register value at the next instruction. This function is + designed to be called from idb_event::sgr_changed handler in order to contain + the effect of changing a segment register value only until the next instruction. + + It is useful, for example, in the ARM module: the modification of the T register + does not affect existing instructions later in the code. + + @param ea1: (C++: ea_t) address to start to search for an instruction + @param ea2: (C++: ea_t) the maximal address + @param rg: (C++: int) the segment register number + @param value: (C++: sel_t) the segment register value + +Help on function split_sreg_range in module ida_segregs: + +split_sreg_range(*args) -> 'bool' + split_sreg_range(ea, rg, v, tag, silent=False) -> bool + Create a new segment register range. This function is used when the IDP emulator + detects that a segment register changes its value. + + @param ea: (C++: ea_t) linear address where the segment register will have a new value. if + ea==BADADDR, nothing to do. + @param rg: (C++: int) the number of the segment register + @param v: (C++: sel_t) the new value of the segment register. If the value is unknown, you + should specify BADSEL. + @param tag: (C++: uchar) the register info tag. see Segment register range tags + @param silent: (C++: bool) if false, display a warning() in the case of failure + @return: success + +Help on class sreg_range_t in module ida_segregs: + +class sreg_range_t(ida_range.range_t) + | Proxy of C++ sreg_range_t class. + | + | Method resolution order: + | sreg_range_t + | ida_range.range_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> sreg_range_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_sreg_range_t(...) + | delete_sreg_range_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | tag + | tag + | + | thisown + | The membership flag + | + | val + | val + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.range_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: range_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: range_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: range_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: range_t const & + | + | _print(self, *args) -> 'size_t' + | _print(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | Set start_ea, end_ea to 0. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | Compare two range_t instances, based on the start_ea. + | + | @param r: (C++: const range_t &) range_t const & + | + | contains(self, *args) -> 'bool' + | contains(self, ea) -> bool + | Is every ea in 'r' also in this range_t? + | + | @param ea: ea_t + | + | contains(self, r) -> bool + | + | @param r: range_t const & + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Is the size of the range_t <= 0? + | + | extend(self, *args) -> 'void' + | extend(self, ea) + | Ensure that the range_t includes 'ea'. + | + | @param ea: (C++: ea_t) + | + | intersect(self, *args) -> 'void' + | intersect(self, r) + | Assign the range_t to the intersection between the range_t and 'r'. + | + | @param r: (C++: const range_t &) range_t const & + | + | overlaps(self, *args) -> 'bool' + | overlaps(self, r) -> bool + | Is there an ea in 'r' that is also in this range_t? + | + | @param r: (C++: const range_t &) range_t const & + | + | size(self, *args) -> 'asize_t' + | size(self) -> asize_t + | Get end_ea - start_ea. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.range_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | end_ea + | end_ea + | + | start_ea + | start_ea + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.range_t: + | + | __hash__ = None + +Module "ida_srclang"s docstring: +""" +Third-party compiler support.""" + +Help on function parse_decls_for_srclang in module ida_srclang: + +parse_decls_for_srclang(*args) -> 'int' + parse_decls_for_srclang(lang, til, input, is_path) -> int + Parse type declarations in the specified language + + @param lang: (C++: srclang_t) the source language(s) expected in the input + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found that supports the given source language(s) + @retval else: the number of errors encountered in the input source + +Help on function parse_decls_with_parser in module ida_srclang: + +parse_decls_with_parser(*args) -> 'int' + parse_decls_with_parser(parser_name, til, input, is_path) -> int + Parse type declarations using the parser with the specified name + + @param parser_name: (C++: const char *) name of the target parser + @param til: (C++: til_t *) type library to store the types + @param input: (C++: const char *) input source. can be a file path or decl string + @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the + input is an in-memory source snippet + @retval -1: no parser was found with the given name + @retval else: the number of errors encountered in the input source + +Help on function select_parser_by_name in module ida_srclang: + +select_parser_by_name(*args) -> 'bool' + select_parser_by_name(name) -> bool + Set the parser with the given name as the current parser. Pass nullptr or an + empty string to select the default parser. + + @param name: (C++: const char *) char const * + @return: false if no parser was found with the given name + +Help on function select_parser_by_srclang in module ida_srclang: + +select_parser_by_srclang(*args) -> 'bool' + select_parser_by_srclang(lang) -> bool + Set the parser that supports the given language(s) as the current parser. The + selected parser must support all languages specified by the given srclang_t. + + @param lang: (C++: srclang_t) + @return: false if no such parser was found + +Help on function set_parser_argv in module ida_srclang: + +set_parser_argv(*args) -> 'int' + set_parser_argv(parser_name, argv) -> int + Set the command-line args to use for invocations of the parser with the given + name + + @param parser_name: (C++: const char *) name of the target parser + @param argv: (C++: const char *) argument list + @retval -1: no parser was found with the given name + @retval -2: the operation is not supported by the given parser + @retval 0: success + +Module "ida_strlist"s docstring: +""" +Functions that deal with the string list. + +While the kernel keeps the string list, it does not update it. The string list +is not used by the kernel because keeping it up-to-date would slow down IDA +without any benefit. If the string list is not cleared using clear_strlist(), +the list will be saved to the database and restored on the next startup. + +The users of this list should call build_strlist() if they need an up-to-date +version.""" + +Help on function build_strlist in module ida_strlist: + +build_strlist(*args) -> 'void' + build_strlist() + Rebuild the string list. + +Help on function clear_strlist in module ida_strlist: + +clear_strlist(*args) -> 'void' + clear_strlist() + Clear the string list. + +Help on function get_strlist_item in module ida_strlist: + +get_strlist_item(*args) -> 'bool' + get_strlist_item(si, n) -> bool + Get nth element of the string list (n=0..get_strlist_qty()-1) + + @param si: (C++: string_info_t *) + @param n: (C++: size_t) + +Help on function get_strlist_options in module ida_strlist: + +get_strlist_options(*args) -> 'strwinsetup_t const *' + get_strlist_options() -> strwinsetup_t + Get the static string list options. + +Help on function get_strlist_qty in module ida_strlist: + +get_strlist_qty(*args) -> 'size_t' + get_strlist_qty() -> size_t + Get number of elements in the string list. The list will be loaded from the + database (if saved) or built from scratch. + +Help on class string_info_t in module ida_strlist: + +class string_info_t(builtins.object) + | Proxy of C++ string_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _ea=BADADDR) -> string_info_t + | + | @param _ea: ea_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: string_info_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_string_info_t(...) + | delete_string_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ea + | ea + | + | length + | length + | + | thisown + | The membership flag + | + | type + | type + +Help on class strwinsetup_t in module ida_strlist: + +class strwinsetup_t(builtins.object) + | Proxy of C++ strwinsetup_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> strwinsetup_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_strwinsetup_t(...) + | delete_strwinsetup_t(self) + | + | _get_strtypes(self, *args) -> 'PyObject *' + | _get_strtypes(self) -> PyObject * + | + | _set_strtypes(self, *args) -> 'PyObject *' + | _set_strtypes(self, py_t) -> PyObject * + | + | Parameters + | ---------- + | py_t: PyObject * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | display_only_existing_strings + | display_only_existing_strings + | + | ignore_heads + | ignore_heads + | + | minlen + | minlen + | + | only_7bit + | only_7bit + | + | strtypes + | _get_strtypes(self) -> PyObject * + | + | thisown + | The membership flag + +Module "ida_struct"s docstring: +""" +Structure type management (assembly level types)""" + +Help on function add_struc in module ida_struct: + +add_struc(*args) -> 'tid_t' + add_struc(idx, name, is_union=False) -> tid_t + Create a structure type. if idx==BADADDR then add as the last idx. if + name==nullptr then a name will be generated "struct_%d". + + @param idx: (C++: uval_t) + @param name: (C++: const char *) char const * + @param is_union: (C++: bool) + +Help on function add_struc_member in module ida_struct: + +add_struc_member(*args) -> 'struc_error_t' + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t + Add member to existing structure. + + @param sptr: (C++: struc_t *) structure to modify + @param fieldname: (C++: const char *) if nullptr, then "anonymous_#" name will be generated + @param offset: (C++: ea_t) BADADDR means add to the end of structure + @param flag: (C++: flags64_t) type + representation bits + @param mt: (C++: const opinfo_t *) additional info about member type. must be present for structs, + offsets, enums, strings, struct offsets. + @param nbytes: (C++: asize_t) if == 0 then the structure will be a varstruct. in this case the + member should be the last member in the structure + +Help on function del_member_tinfo in module ida_struct: + +del_member_tinfo(*args) -> 'bool' + del_member_tinfo(sptr, mptr) -> bool + Delete tinfo for given member. + + @param sptr: (C++: struc_t *) + @param mptr: (C++: member_t *) + +Help on function del_struc in module ida_struct: + +del_struc(*args) -> 'bool' + del_struc(sptr) -> bool + Delete a structure type. + + @param sptr: (C++: struc_t *) + +Help on function del_struc_member in module ida_struct: + +del_struc_member(*args) -> 'bool' + del_struc_member(sptr, offset) -> bool + Delete member at given offset. + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + +Help on function del_struc_members in module ida_struct: + +del_struc_members(*args) -> 'int' + del_struc_members(sptr, off1, off2) -> int + Delete members which occupy range of offsets (off1..off2). + + @param sptr: (C++: struc_t *) + @param off1: (C++: ea_t) + @param off2: (C++: ea_t) + @return: number of deleted members or -1 on error + +Help on class dyn_member_ref_array in module ida_struct: + +class dyn_member_ref_array(builtins.object) + | Proxy of C++ dynamic_wrapped_array_t< member_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'member_t const &' + | __getitem__(self, i) -> member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | + | @param _data: member_t * + | @param _count: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: member_t const & + | + | __swig_destroy__ = delete_dyn_member_ref_array(...) + | delete_dyn_member_ref_array(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | count + | + | data + | data + | + | thisown + | The membership flag + +Help on function expand_struc in module ida_struct: + +expand_struc(*args) -> 'bool' + expand_struc(sptr, offset, delta, recalc=True) -> bool + Expand/Shrink structure type. + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param delta: (C++: adiff_t) + @param recalc: (C++: bool) + +Help on function get_best_fit_member in module ida_struct: + +get_best_fit_member(*args) -> 'member_t *' + get_best_fit_member(sptr, offset) -> member_t + Get member that is most likely referenced by the specified offset. Useful for + offsets > sizeof(struct). + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) + +Help on function get_first_struc_idx in module ida_struct: + +get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t + Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise + +Help on function get_innermost_member in module ida_struct: + +get_innermost_member(*args) -> 'PyObject *' + get_innermost_member(sptr, offset) -> (member_t, struc_t, int) + Get the innermost member at the given offset + + @param sptr: the starting structure + @param offset: offset into the starting structure + @return: - None on failure + - tuple(member_t, struct_t, offset) + where member_t: a member in SPTR (it is not a structure), + struct_t: the innermost structure, + offset: remaining offset into the returned member + +Help on function get_last_struc_idx in module ida_struct: + +get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t + Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise + +Help on function get_max_offset in module ida_struct: + +get_max_offset(*args) -> 'ea_t' + get_max_offset(sptr) -> ea_t + For unions: returns number of members, for structs: returns size of structure. + + @param sptr: (C++: struc_t *) + +Help on function get_member in module ida_struct: + +get_member(*args) -> 'member_t *' + get_member(sptr, offset) -> member_t + Get member at given offset. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) + +Help on function get_member_by_fullname in module ida_struct: + +get_member_by_fullname(*args) -> 'struc_t **' + get_member_by_fullname(fullname) -> member_t + Get a member by its fully qualified name, "struct.field". + + @param fullname: (C++: const char *) char const * + +Help on function get_member_by_id in module ida_struct: + +get_member_by_id(*args) -> 'qstring *, struc_t **' + get_member_by_id(mid) -> member_t + Check if the specified member id points to a struct member. convenience + function. + + @param mid: (C++: tid_t) + +Help on function get_member_by_name in module ida_struct: + +get_member_by_name(*args) -> 'member_t *' + get_member_by_name(sptr, membername) -> member_t + Get a member by its name, like "field44". + + @param sptr: (C++: const struc_t *) struc_t const * + @param membername: (C++: const char *) char const * + +Help on function get_member_cmt in module ida_struct: + +get_member_cmt(*args) -> 'qstring *' + get_member_cmt(mid, repeatable) -> str + Get comment of structure member. + + @param mid: (C++: tid_t) + @param repeatable: (C++: bool) + +Help on function get_member_fullname in module ida_struct: + +get_member_fullname(*args) -> 'qstring *' + get_member_fullname(mid) -> str + Get a member's fully qualified name, "struct.field". + + @param mid: (C++: tid_t) + +Help on function get_member_id in module ida_struct: + +get_member_id(*args) -> 'tid_t' + get_member_id(sptr, offset) -> tid_t + Get member id at given offset. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: asize_t) + +Help on function get_member_name in module ida_struct: + +get_member_name(*args) -> 'qstring *' + get_member_name(mid) -> str + + @param mid: tid_t + +Help on function get_member_size in module ida_struct: + +get_member_size(*args) -> 'asize_t' + get_member_size(NONNULL_mptr) -> asize_t + Get size of structure member. May return 0 for the last member of varstruct. For + union members, returns member_t::eoff. + + @param NONNULL_mptr: (C++: const member_t *) member_t const * + +Help on function get_member_struc in module ida_struct: + +get_member_struc(*args) -> 'struc_t *' + get_member_struc(fullname) -> struc_t + Get containing structure of member by its full name "struct.field". + + @param fullname: (C++: const char *) char const * + +Help on function get_member_tinfo in module ida_struct: + +get_member_tinfo(*args) -> 'bool' + get_member_tinfo(tif, mptr) -> bool + Get tinfo for given member. + + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * + +Help on function get_next_member_idx in module ida_struct: + +get_next_member_idx(*args) -> 'ssize_t' + get_next_member_idx(sptr, off) -> ssize_t + Get the next member idx, if it does not exist, return -1. + + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) + +Help on function get_next_struc_idx in module ida_struct: + +get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t + Get next struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ + +Help on function get_or_guess_member_tinfo in module ida_struct: + +get_or_guess_member_tinfo(*args) -> 'bool' + get_or_guess_member_tinfo(tif, mptr) -> bool + Try to get tinfo for given member - if failed, generate a tinfo using + information about the member id from the disassembly + + @param tif: (C++: tinfo_t *) + @param mptr: (C++: const member_t *) member_t const * + +Help on function get_prev_member_idx in module ida_struct: + +get_prev_member_idx(*args) -> 'ssize_t' + get_prev_member_idx(sptr, off) -> ssize_t + Get the prev member idx, if it does not exist, return -1. + + @param sptr: (C++: const struc_t *) struc_t const * + @param off: (C++: asize_t) + +Help on function get_prev_struc_idx in module ida_struct: + +get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t + Get previous struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 + +Help on function get_sptr in module ida_struct: + +get_sptr(*args) -> 'struc_t *' + get_sptr(mptr) -> struc_t + Get child struct if member is a struct. + + @param mptr: (C++: const member_t *) member_t const * + +Help on function get_struc in module ida_struct: + +get_struc(*args) -> 'struc_t *' + get_struc(id) -> struc_t + Get pointer to struct type info. + + @param id: (C++: tid_t) + +Help on function get_struc_by_idx in module ida_struct: + +get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t + Get struct id by struct number. + + @param idx: (C++: uval_t) + +Help on function get_struc_cmt in module ida_struct: + +get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str + Get struct comment. + + @param id: (C++: tid_t) + @param repeatable: (C++: bool) + +Help on function get_struc_first_offset in module ida_struct: + +get_struc_first_offset(*args) -> 'ea_t' + get_struc_first_offset(sptr) -> ea_t + Get offset of first member. + + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 + +Help on function get_struc_id in module ida_struct: + +get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t + Get struct id by name. + + @param name: (C++: const char *) char const * + +Help on function get_struc_idx in module ida_struct: + +get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t + Get internal number of the structure. + + @param id: (C++: tid_t) + +Help on function get_struc_last_offset in module ida_struct: + +get_struc_last_offset(*args) -> 'ea_t' + get_struc_last_offset(sptr) -> ea_t + Get offset of last member. + + @param sptr: (C++: const struc_t *) struc_t const * + @return: BADADDR if memqty == 0 + +Help on function get_struc_name in module ida_struct: + +get_struc_name(*args) -> 'qstring *' + get_struc_name(id, flags=0) -> str + + @param id: tid_t + @param flags: int + +Help on function get_struc_next_offset in module ida_struct: + +get_struc_next_offset(*args) -> 'ea_t' + get_struc_next_offset(sptr, offset) -> ea_t + Get offset of member with smallest offset larger than 'offset'. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no next offset + +Help on function get_struc_prev_offset in module ida_struct: + +get_struc_prev_offset(*args) -> 'ea_t' + get_struc_prev_offset(sptr, offset) -> ea_t + Get offset of member with largest offset less than 'offset'. + + @param sptr: (C++: const struc_t *) struc_t const * + @param offset: (C++: ea_t) + @return: BADADDR if no prev offset + +Help on function get_struc_qty in module ida_struct: + +get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t + Get number of known structures. + +Help on function get_struc_size in module ida_struct: + +get_struc_size(*args) -> 'asize_t' + get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + + get_struc_size(id) -> asize_t + + @param id: tid_t + +Help on function is_anonymous_member_name in module ida_struct: + +is_anonymous_member_name(*args) -> 'bool' + is_anonymous_member_name(name) -> bool + Is member name prefixed with "anonymous"? + + @param name: (C++: const char *) char const * + +Help on function is_dummy_member_name in module ida_struct: + +is_dummy_member_name(*args) -> 'bool' + is_dummy_member_name(name) -> bool + Is member name an auto-generated name? + + @param name: (C++: const char *) char const * + +Help on function is_member_id in module ida_struct: + +is_member_id(*args) -> 'bool' + is_member_id(mid) -> bool + Is a member id? + + @param mid: (C++: tid_t) + +Help on function is_special_member in module ida_struct: + +is_special_member(*args) -> 'bool' + is_special_member(id) -> bool + Is a special member with the name beginning with ' '? + + @param id: (C++: tid_t) + +Help on function is_union in module ida_struct: + +is_union(*args) -> 'bool' + is_union(id) -> bool + Is a union? + + @param id: (C++: tid_t) + +Help on function is_varmember in module ida_struct: + +is_varmember(*args) -> 'bool' + is_varmember(mptr) -> bool + Is variable size member? + + @param mptr: (C++: const member_t *) member_t const * + +Help on function is_varstr in module ida_struct: + +is_varstr(*args) -> 'bool' + is_varstr(id) -> bool + Is variable size structure? + + @param id: (C++: tid_t) + +Help on class member_t in module ida_struct: + +class member_t(builtins.object) + | Proxy of C++ member_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> member_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_member_t(...) + | delete_member_t(self) + | + | by_til(self, *args) -> 'bool' + | by_til(self) -> bool + | Was the member created due to the type system? + | + | get_size(self, *args) -> 'asize_t' + | get_size(self) -> asize_t + | Get member size. + | + | get_soff(self, *args) -> 'ea_t' + | get_soff(self) -> ea_t + | Get start offset (for unions - returns 0) + | + | has_ti(self, *args) -> 'bool' + | has_ti(self) -> bool + | Has type information? + | + | has_union(self, *args) -> 'bool' + | has_union(self) -> bool + | Has members of type "union"? + | + | is_baseclass(self, *args) -> 'bool' + | is_baseclass(self) -> bool + | Is a base class member? + | + | is_destructor(self, *args) -> 'bool' + | is_destructor(self) -> bool + | Is a virtual destructor? + | + | is_dupname(self, *args) -> 'bool' + | is_dupname(self) -> bool + | Duplicate name was resolved during import? + | + | unimem(self, *args) -> 'bool' + | unimem(self) -> bool + | Is a member of a union? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | eoff + | eoff + | + | flag + | flag + | + | id + | id + | + | props + | props + | + | soff + | soff + | + | thisown + | The membership flag + +Help on function retrieve_member_info in module ida_struct: + +retrieve_member_info(*args) -> 'opinfo_t *' + retrieve_member_info(buf, mptr) -> opinfo_t + Get operand type info for member. + + @param buf: (C++: opinfo_t *) + @param mptr: (C++: const member_t *) member_t const * + +Help on function save_struc in module ida_struct: + +save_struc(*args) -> 'void' + save_struc(sptr, may_update_ltypes=True) + Update struct information in the database (internal function) + + @param sptr: (C++: struc_t *) + @param may_update_ltypes: (C++: bool) + +Help on function set_member_cmt in module ida_struct: + +set_member_cmt(*args) -> 'bool' + set_member_cmt(mptr, cmt, repeatable) -> bool + Set member comment. + + @param mptr: (C++: member_t *) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_member_name in module ida_struct: + +set_member_name(*args) -> 'bool' + set_member_name(sptr, offset, name) -> bool + Set name of member at given offset. + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param name: (C++: const char *) char const * + +Help on function set_member_tinfo in module ida_struct: + +set_member_tinfo(*args) -> 'smt_code_t' + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t + Set tinfo for given member. + + @param sptr: (C++: struc_t *) containing struct + @param mptr: (C++: member_t *) target member + @param memoff: (C++: uval_t) offset within member + @param tif: (C++: const tinfo_t &) type info + @param flags: (C++: int) Set member tinfo flags + +Help on function set_member_type in module ida_struct: + +set_member_type(*args) -> 'bool' + set_member_type(sptr, offset, flag, mt, nbytes) -> bool + Set type of member at given offset (also see add_struc_member()) + + @param sptr: (C++: struc_t *) + @param offset: (C++: ea_t) + @param flag: (C++: flags64_t) + @param mt: (C++: const opinfo_t *) opinfo_t const * + @param nbytes: (C++: asize_t) + +Help on function set_struc_align in module ida_struct: + +set_struc_align(*args) -> 'bool' + set_struc_align(sptr, shift) -> bool + Set structure alignment (SF_ALIGN) + + @param sptr: (C++: struc_t *) + @param shift: (C++: int) + +Help on function set_struc_cmt in module ida_struct: + +set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool + Set structure comment. + + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_struc_hidden in module ida_struct: + +set_struc_hidden(*args) -> 'void' + set_struc_hidden(sptr, is_hidden) + Hide/unhide a struct type. + + @param sptr: (C++: struc_t *) + @param is_hidden: (C++: bool) + +Help on function set_struc_idx in module ida_struct: + +set_struc_idx(*args) -> 'bool' + set_struc_idx(sptr, idx) -> bool + Set internal number of struct. Also see get_struc_idx(), get_struc_by_idx(). + + @param sptr: (C++: const struc_t *) struc_t const * + @param idx: (C++: uval_t) + +Help on function set_struc_listed in module ida_struct: + +set_struc_listed(*args) -> 'void' + set_struc_listed(sptr, is_listed) + Add/remove a struct type from the struct list. + + @param sptr: (C++: struc_t *) + @param is_listed: (C++: bool) + +Help on function set_struc_name in module ida_struct: + +set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool + Set structure name. + + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * + +Help on function stroff_as_size in module ida_struct: + +stroff_as_size(*args) -> 'bool' + stroff_as_size(plen, sptr, value) -> bool + Should display a structure offset expression as the structure size? + + @param plen: (C++: int) + @param sptr: (C++: const struc_t *) struc_t const * + @param value: (C++: asize_t) + +Help on class struc_t in module ida_struct: + +class struc_t(builtins.object) + | Proxy of C++ struc_t class. + | + | Methods defined here: + | + | __get_members__(self, *args) -> 'dynamic_wrapped_array_t< member_t >' + | __get_members__(self) -> dyn_member_ref_array + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_struc_t(...) + | delete_struc_t(self) + | + | from_til(self, *args) -> 'bool' + | from_til(self) -> bool + | Does structure come from a type library? + | + | get_alignment(self, *args) -> 'int' + | get_alignment(self) -> int + | See SF_ALIGN. + | + | get_last_member(self, *args) -> 'member_t const *' + | get_last_member(self) -> member_t + | + | get_member(self, index) + | + | has_union(self, *args) -> 'bool' + | has_union(self) -> bool + | Has members of type "union"? + | + | is_choosable(self, *args) -> 'bool' + | is_choosable(self) -> bool + | Is included in chooser list? Use set_struc_listed to change the listed status + | + | is_copyof(self, *args) -> 'bool' + | is_copyof(self) -> bool + | Is copied from a local type? + | + | is_frame(self, *args) -> 'bool' + | is_frame(self) -> bool + | Is this structure a function frame? + | + | is_ghost(self, *args) -> 'bool' + | is_ghost(self) -> bool + | Is a ghost copy of a local type? + | + | is_hidden(self, *args) -> 'bool' + | is_hidden(self) -> bool + | Is the structure collapsed? Use set_struc_hidden to change the hidden status + | + | is_mappedto(self, *args) -> 'bool' + | is_mappedto(self) -> bool + | Is mapped to a local type? + | + | is_synced(self, *args) -> 'bool' + | is_synced(self) -> bool + | Is synced with a local type? + | + | is_union(self, *args) -> 'bool' + | is_union(self) -> bool + | Is a union? + | + | is_varstr(self, *args) -> 'bool' + | is_varstr(self) -> bool + | Is variable size structure? + | + | like_union(self, *args) -> 'bool' + | like_union(self) -> bool + | Is a union or contains members of type "union"? + | + | set_alignment(self, *args) -> 'void' + | set_alignment(self, shift) + | Do not use; use set_struc_align() + | + | @param shift: (C++: int) + | + | set_ghost(self, *args) -> 'void' + | set_ghost(self, _is_ghost) + | + | @param _is_ghost: bool + | + | unsync(self, *args) -> 'void' + | unsync(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | age + | age + | + | id + | id + | + | members + | __get_members__(self) -> dyn_member_ref_array + | + | memqty + | memqty + | + | ordinal + | ordinal + | + | props + | props + | + | thisown + | The membership flag + +Help on class struct_field_visitor_t in module ida_struct: + +class struct_field_visitor_t(builtins.object) + | Proxy of C++ struct_field_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> struct_field_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_struct_field_visitor_t(...) + | delete_struct_field_visitor_t(self) + | + | visit_field(self, *args) -> 'int' + | visit_field(self, sptr, mptr) -> int + | + | @param sptr: struc_t * + | @param mptr: member_t * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function visit_stroff_fields in module ida_struct: + +visit_stroff_fields(*args) -> 'adiff_t *' + visit_stroff_fields(sfv, path, disp, appzero) -> flags64_t + Visit structure fields in a stroff expression or in a reference to a struct data + variable. This function can be used to enumerate all components of an expression + like 'a.b.c'. + + @param sfv: (C++: struct_field_visitor_t &) visitor object + @param path: (C++: const tid_t *) struct path (path[0] contains the initial struct id) + @param disp: (C++: adiff_t *) offset into structure + @param appzero: (C++: bool) should visit field at offset zero? + +Module "ida_tryblks"s docstring: +""" +Architecture independent exception handling info. + +Try blocks have the following general properties: +* A try block specifies a possibly fragmented guarded code region. +* Each try block has always at least one catch/except block description +* Each catch block contains its boundaries and a filter. +* Additionally a catch block can hold sp adjustment and the offset to the +exception object offset (C++). +* Try blocks can be nested. Nesting is automatically calculated at the retrieval +time. +* There may be (nested) multiple try blocks starting at the same address. + +See examples in tests/input/src/eh_tests.""" + +Help on function add_tryblk in module ida_tryblks: + +add_tryblk(*args) -> 'int' + add_tryblk(tb) -> int + Add one try block information. + + @param tb: (C++: const tryblk_t &) try block to add. + @return: error code; 0 means good + +Help on class catch_t in module ida_tryblks: + +class catch_t(try_handler_t) + | Proxy of C++ catch_t class. + | + | Method resolution order: + | catch_t + | try_handler_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> catch_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_catch_t(...) + | delete_catch_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | obj + | obj + | + | thisown + | The membership flag + | + | type_id + | type_id + | + | ---------------------------------------------------------------------- + | Methods inherited from try_handler_t: + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from try_handler_t: + | + | disp + | disp + | + | fpreg + | fpreg + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class catchvec_t in module ida_tryblks: + +class catchvec_t(builtins.object) + | Proxy of C++ qvector< catch_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< catch_t > const & + | + | __getitem__(self, *args) -> 'catch_t const &' + | __getitem__(self, i) -> catch_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> catchvec_t + | __init__(self, x) -> catchvec_t + | + | @param x: qvector< catch_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< catch_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: catch_t const & + | + | __swig_destroy__ = delete_catchvec_t(...) + | delete_catchvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: catch_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: catch_t const & + | + | at(self, *args) -> 'catch_t const &' + | at(self, _idx) -> catch_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< catch_t >::const_iterator' + | begin(self) -> catch_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< catch_t >::const_iterator' + | end(self) -> catch_t + | + | erase(self, *args) -> 'qvector< catch_t >::iterator' + | erase(self, it) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | + | erase(self, first, last) -> catch_t + | + | @param first: qvector< catch_t >::iterator + | @param last: qvector< catch_t >::iterator + | + | extract(self, *args) -> 'catch_t *' + | extract(self) -> catch_t + | + | find(self, *args) -> 'qvector< catch_t >::const_iterator' + | find(self, x) -> catch_t + | + | @param x: catch_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=catch_t()) + | + | @param x: catch_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: catch_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: catch_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< catch_t >::iterator' + | insert(self, it, x) -> catch_t + | + | @param it: qvector< catch_t >::iterator + | @param x: catch_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'catch_t &' + | push_back(self, x) + | + | @param x: catch_t const & + | + | push_back(self) -> catch_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: catch_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< catch_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function del_tryblks in module ida_tryblks: + +del_tryblks(*args) -> 'void' + del_tryblks(range) + Delete try block information in the specified range. + + @param range: (C++: const range_t &) the range to be cleared + +Help on function find_syseh in module ida_tryblks: + +find_syseh(*args) -> 'ea_t' + find_syseh(ea) -> ea_t + Find the start address of the system eh region including the argument. + + @param ea: (C++: ea_t) search address + @return: start address of surrounding tryblk, otherwise BADADDR + +Help on function get_tryblks in module ida_tryblks: + +get_tryblks(*args) -> 'size_t' + get_tryblks(tbv, range) -> size_t + Retrieve try block information from the specified address range. Try blocks are + sorted by starting address and their nest levels calculated. + + @param tbv: (C++: tryblks_t *) output buffer; may be nullptr + @param range: (C++: const range_t &) address range to change + @return: number of found try blocks + +Help on function is_ea_tryblks in module ida_tryblks: + +is_ea_tryblks(*args) -> 'bool' + is_ea_tryblks(ea, flags) -> bool + Check if the given address ea is part of tryblks description. + + @param ea: (C++: ea_t) address to check + @param flags: (C++: uint32) combination of flags for is_ea_tryblks() + +Help on class seh_t in module ida_tryblks: + +class seh_t(try_handler_t) + | Proxy of C++ seh_t class. + | + | Method resolution order: + | seh_t + | try_handler_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> seh_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_seh_t(...) + | delete_seh_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | filter + | filter + | + | seh_code + | seh_code + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from try_handler_t: + | + | disp + | disp + | + | fpreg + | fpreg + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class try_handler_t in module ida_tryblks: + +class try_handler_t(ida_range.rangevec_t) + | Proxy of C++ try_handler_t class. + | + | Method resolution order: + | try_handler_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> try_handler_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_try_handler_t(...) + | delete_try_handler_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | disp + | disp + | + | fpreg + | fpreg + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class tryblk_t in module ida_tryblks: + +class tryblk_t(ida_range.rangevec_t) + | Proxy of C++ tryblk_t class. + | + | Method resolution order: + | tryblk_t + | ida_range.rangevec_t + | ida_range.rangevec_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> tryblk_t + | __init__(self, r) -> tryblk_t + | + | @param r: tryblk_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tryblk_t(...) + | delete_tryblk_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | cpp(self, *args) -> 'catchvec_t &' + | cpp(self) -> catchvec_t + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | get_kind(self, *args) -> 'uchar' + | get_kind(self) -> uchar + | + | is_cpp(self, *args) -> 'bool' + | is_cpp(self) -> bool + | + | is_seh(self, *args) -> 'bool' + | is_seh(self) -> bool + | + | seh(self, *args) -> 'seh_t &' + | seh(self) -> seh_t + | + | set_cpp(self, *args) -> 'catchvec_t &' + | set_cpp(self) -> catchvec_t + | + | set_seh(self, *args) -> 'seh_t &' + | set_seh(self) -> seh_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | level + | level + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from ida_range.rangevec_base_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __getitem__(self, *args) -> 'range_t const &' + | __getitem__(self, i) -> range_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< range_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: range_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: range_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: range_t const & + | + | at(self, *args) -> 'range_t const &' + | at(self, _idx) -> range_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< range_t >::const_iterator' + | begin(self) -> range_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | end(self, *args) -> 'qvector< range_t >::const_iterator' + | end(self) -> range_t + | + | erase(self, *args) -> 'qvector< range_t >::iterator' + | erase(self, it) -> range_t + | + | @param it: qvector< range_t >::iterator + | + | erase(self, first, last) -> range_t + | + | @param first: qvector< range_t >::iterator + | @param last: qvector< range_t >::iterator + | + | extract(self, *args) -> 'range_t *' + | extract(self) -> range_t + | + | find(self, *args) -> 'qvector< range_t >::const_iterator' + | find(self, x) -> range_t + | + | @param x: range_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=range_t()) + | + | @param x: range_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: range_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: range_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< range_t >::iterator' + | insert(self, it, x) -> range_t + | + | @param it: qvector< range_t >::iterator + | @param x: range_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'range_t &' + | push_back(self, x) + | + | @param x: range_t const & + | + | push_back(self) -> range_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: range_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< range_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from ida_range.rangevec_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from ida_range.rangevec_base_t: + | + | __hash__ = None + +Help on class tryblks_t in module ida_tryblks: + +class tryblks_t(builtins.object) + | Proxy of C++ qvector< tryblk_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & + | + | __getitem__(self, *args) -> 'tryblk_t const &' + | __getitem__(self, i) -> tryblk_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> tryblks_t + | __init__(self, x) -> tryblks_t + | + | @param x: qvector< tryblk_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< tryblk_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: tryblk_t const & + | + | __swig_destroy__ = delete_tryblks_t(...) + | delete_tryblks_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: tryblk_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: tryblk_t const & + | + | at(self, *args) -> 'tryblk_t const &' + | at(self, _idx) -> tryblk_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< tryblk_t >::const_iterator' + | begin(self) -> tryblk_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< tryblk_t >::const_iterator' + | end(self) -> tryblk_t + | + | erase(self, *args) -> 'qvector< tryblk_t >::iterator' + | erase(self, it) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | + | erase(self, first, last) -> tryblk_t + | + | @param first: qvector< tryblk_t >::iterator + | @param last: qvector< tryblk_t >::iterator + | + | extract(self, *args) -> 'tryblk_t *' + | extract(self) -> tryblk_t + | + | find(self, *args) -> 'qvector< tryblk_t >::const_iterator' + | find(self, x) -> tryblk_t + | + | @param x: tryblk_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=tryblk_t()) + | + | @param x: tryblk_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: tryblk_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: tryblk_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< tryblk_t >::iterator' + | insert(self, it, x) -> tryblk_t + | + | @param it: qvector< tryblk_t >::iterator + | @param x: tryblk_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'tryblk_t &' + | push_back(self, x) + | + | @param x: tryblk_t const & + | + | push_back(self) -> tryblk_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: tryblk_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< tryblk_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Module "ida_typeinf"s docstring: +""" +Describes the type information records in IDA. + +The recommended way of using type info is to use the tinfo_t class. The type +information is internally kept as an array of bytes terminated by 0. + +Items in brackets [] are optional and sometimes are omitted. type_t... means a +sequence of type_t bytes which defines a type. + +@note: to work with the types of instructions or data in the database, use + get_tinfo()/set_tinfo() and similar functions.""" + +Help on function f in module ida_idaapi: + +f() + +Help on swigvarlink object: + +<class 'swigvarlink'> +Help on class _wrap_cvar in module ida_typeinf: + +class _wrap_cvar(builtins.object) + | Methods defined here: + | + | __getattr__(self, attr) + | + | __setattr__(self, attr, value) + | Implement setattr(self, name, value). + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function add_til in module ida_typeinf: + +add_til(*args) -> 'int' + add_til(name, flags) -> int + Load a til file and add it the database type libraries list. IDA will also apply + function prototypes for matching function names. + + @param name: (C++: const char *) til name + @param flags: (C++: int) combination of Load TIL flags + @return: one of Load TIL result codes + +Help on function alloc_type_ordinal in module ida_typeinf: + +alloc_type_ordinal(*args) -> 'uint32' + alloc_type_ordinal(ti) -> uint32 + alloc_type_ordinals(ti, 1) + + @param ti: (C++: til_t *) + +Help on function alloc_type_ordinals in module ida_typeinf: + +alloc_type_ordinals(*args) -> 'uint32' + alloc_type_ordinals(ti, qty) -> uint32 + Allocate a range of ordinal numbers for new types. + + @param ti: (C++: til_t *) type library + @param qty: (C++: int) number of ordinals to allocate + @return: the first ordinal. 0 means failure. + +Help on class aloc_visitor_t in module ida_typeinf: + +class aloc_visitor_t(builtins.object) + | Proxy of C++ aloc_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> aloc_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_aloc_visitor_t(...) + | delete_aloc_visitor_t(self) + | + | visit_location(self, *args) -> 'int' + | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t & + | @param off: int + | @param size: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function append_abi_opts in module ida_typeinf: + +append_abi_opts(*args) -> 'bool' + append_abi_opts(abi_opts, user_level=False) -> bool + Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... + or -opt1-opt2-... + + @param abi_opts: (C++: const char *) - ABI options to add/remove in form opt1-opt2-... + @param user_level: (C++: bool) - initiated by user if TRUE (==SETCOMP_BY_USER) + @return: success + +Help on function append_argloc in module ida_typeinf: + +append_argloc(*args) -> 'bool' + append_argloc(out, vloc) -> bool + Serialize argument location + + @param out: (C++: qtype *) + @param vloc: (C++: const argloc_t &) argloc_t const & + +Help on function append_tinfo_covered in module ida_typeinf: + +append_tinfo_covered(*args) -> 'bool' + append_tinfo_covered(out, typid, offset) -> bool + + @param out: rangeset_t * + @param typid: uint32 + @param offset: uint64 + +Help on function apply_callee_tinfo in module ida_typeinf: + +apply_callee_tinfo(*args) -> 'bool' + apply_callee_tinfo(caller, tif) -> bool + Apply the type of the called function to the calling instruction. This function + will append parameter comments and rename the local variables of the calling + function. It also stores information about the instructions that initialize call + arguments in the database. Use get_arg_addrs() to retrieve it if necessary. + Alternatively it is possible to hook to processor_t::arg_addrs_ready event. + + @param caller: (C++: ea_t) linear address of the calling instruction. must belong to a + function. + @param tif: (C++: const tinfo_t &) type info + @return: success + +Help on function apply_cdecl in module ida_typeinf: + +apply_cdecl(*args) -> 'bool' + apply_cdecl(til, ea, decl, flags=0) -> bool + Apply the specified type to the address. This function parses the declaration + and calls apply_tinfo() + + @param til: (C++: til_t *) type library + @param ea: (C++: ea_t) linear address + @param decl: (C++: const char *) type declaration in C form + @param flags: (C++: int) flags to pass to apply_tinfo (TINFO_DEFINITE is always passed) + @return: success + +Help on function apply_named_type in module ida_typeinf: + +apply_named_type(*args) -> 'bool' + apply_named_type(ea, name) -> bool + Apply the specified named type to the address. + + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) the type name, e.g. "FILE" + @return: success + +Help on function apply_once_tinfo_and_name in module ida_typeinf: + +apply_once_tinfo_and_name(*args) -> 'bool' + apply_once_tinfo_and_name(dea, tif, name) -> bool + Apply the specified type and name to the address. This function checks if the + address already has a type. If the old type + does not exist or the new type is 'better' than the old type, then the + new type will be applied. A type is considered better if it has more + information (e.g. BTMT_STRUCT is better than BT_INT). + The same logic is with the name: if the address already have a meaningful + name, it will be preserved. Only if the old name does not exist or it + is a dummy name like byte_123, it will be replaced by the new name. + + @param dea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in the internal format + @param name: (C++: const char *) new name for the address + @return: success + +Help on function apply_tinfo in module ida_typeinf: + +apply_tinfo(*args) -> 'bool' + apply_tinfo(ea, tif, flags) -> bool + Apply the specified type to the specified address. This function sets the type + and tries to convert the item at the specified address to conform the type. + + @param ea: (C++: ea_t) linear address + @param tif: (C++: const tinfo_t &) type string in internal format + @param flags: (C++: uint32) combination of Apply tinfo flags + @return: success + +Help on function apply_tinfo_to_stkarg in module ida_typeinf: + +apply_tinfo_to_stkarg(*args) -> 'bool' + apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool + Helper function for the processor modules. to be called from + processor_t::use_stkarg_type + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: (C++: const op_t &) op_t const & + @param v: (C++: uval_t) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param name: (C++: const char *) char const * + +Help on function apply_type in module ida_typeinf: + +apply_type(*args) -> 'bool' + apply_type(ti, type, fields, ea, flags) -> bool + Apply the specified type to the address + + @param ti: Type info library. 'None' can be used. + @param type: type_t const * + @param fields: p_list const * + @param ea: the address of the object + @param flags: combination of TINFO_... constants or 0 + @return: Boolean + +Help on class argloc_t in module ida_typeinf: + +class argloc_t(builtins.object) + | Proxy of C++ argloc_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __init__(self, *args) + | __init__(self) -> argloc_t + | __init__(self, r) -> argloc_t + | + | @param r: argloc_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argloc_t(...) + | delete_argloc_t(self) + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: argloc_t const & + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this == r and r == this. + | + | @param r: (C++: argloc_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class argpart_t in module ida_typeinf: + +class argpart_t(argloc_t) + | Proxy of C++ argpart_t class. + | + | Method resolution order: + | argpart_t + | argloc_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, a) -> argpart_t + | + | @param a: argloc_t const & + | + | __init__(self) -> argpart_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: argpart_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argpart_t(...) + | delete_argpart_t(self) + | + | bad_offset(self, *args) -> 'bool' + | bad_offset(self) -> bool + | Does this argpart have a valid offset? + | + | bad_size(self, *args) -> 'bool' + | bad_size(self) -> bool + | Does this argpart have a valid size? + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: argpart_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | off + | off + | + | size + | size + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from argloc_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: argloc_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: argloc_t const & + | + | _consume_rrel(self, *args) -> 'bool' + | _consume_rrel(self, p) -> bool + | + | Parameters + | ---------- + | p: rrel_t * + | + | _consume_scattered(self, *args) -> 'bool' + | _consume_scattered(self, p) -> bool + | + | Parameters + | ---------- + | p: scattered_aloc_t * + | + | _set_badloc(self, *args) -> 'void' + | _set_badloc(self) + | + | _set_biggest(self, *args) -> 'void' + | _set_biggest(self, ct, data) + | + | Parameters + | ---------- + | ct: argloc_type_t + | data: argloc_t::biggest_t + | + | _set_custom(self, *args) -> 'void' + | _set_custom(self, ct, pdata) + | + | Parameters + | ---------- + | ct: argloc_type_t + | pdata: void * + | + | _set_ea(self, *args) -> 'void' + | _set_ea(self, _ea) + | + | Parameters + | ---------- + | _ea: ea_t + | + | _set_reg1(self, *args) -> 'void' + | _set_reg1(self, reg, off=0) + | + | Parameters + | ---------- + | reg: int + | off: int + | + | _set_reg2(self, *args) -> 'void' + | _set_reg2(self, _reg1, _reg2) + | + | Parameters + | ---------- + | _reg1: int + | _reg2: int + | + | _set_stkoff(self, *args) -> 'void' + | _set_stkoff(self, off) + | + | Parameters + | ---------- + | off: sval_t + | + | advance(self, *args) -> 'bool' + | advance(self, delta) -> bool + | Move the location to point 'delta' bytes further. + | + | @param delta: (C++: int) + | + | align_reg_high(self, *args) -> 'void' + | align_reg_high(self, size, _slotsize) + | Set register offset to align it to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | align_stkoff_high(self, *args) -> 'void' + | align_stkoff_high(self, size, _slotsize) + | Set stack offset to align to the upper part of _SLOTSIZE. + | + | @param size: (C++: size_t) + | @param _slotsize: (C++: size_t) + | + | atype(self, *args) -> 'argloc_type_t' + | atype(self) -> argloc_type_t + | Get type (Argument location types) + | + | calc_offset(self, *args) -> 'sval_t' + | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: argloc_t const & + | + | consume_rrel(self, *args) -> 'void' + | consume_rrel(self, p) + | Set register-relative location - can't be nullptr. + | + | @param p: (C++: rrel_t *) + | + | consume_scattered(self, *args) -> 'void' + | consume_scattered(self, p) + | Set distributed argument location. + | + | @param p: (C++: scattered_aloc_t *) scattered_aloc_t const & + | + | get_biggest(self, *args) -> 'argloc_t::biggest_t' + | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. + | + | get_custom(self, *args) -> 'void *' + | get_custom(self) -> void * + | Get custom argloc info. Use if atype() == ALOC_CUSTOM + | + | get_ea(self, *args) -> 'ea_t' + | get_ea(self) -> ea_t + | Get the global address. Use when atype() == ALOC_STATIC + | + | get_reginfo(self, *args) -> 'uint32' + | get_reginfo(self) -> uint32 + | Get all register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | get_rrel(self, *args) -> 'rrel_t const &' + | get_rrel(self) -> rrel_t + | Get register-relative info. Use when atype() == ALOC_RREL + | + | has_reg(self, *args) -> 'bool' + | has_reg(self) -> bool + | TRUE if argloc has a register part. + | + | has_stkoff(self, *args) -> 'bool' + | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. + | + | in_stack(self, *args) -> 'bool' + | in_stack(self) -> bool + | TRUE if argloc is in stack entirely. + | + | is_badloc(self, *args) -> 'bool' + | is_badloc(self) -> bool + | See ALOC_NONE. + | + | is_custom(self, *args) -> 'bool' + | is_custom(self) -> bool + | See ALOC_CUSTOM. + | + | is_ea(self, *args) -> 'bool' + | is_ea(self) -> bool + | See ALOC_STATIC. + | + | is_fragmented(self, *args) -> 'bool' + | is_fragmented(self) -> bool + | is_scattered() || is_reg2() + | + | is_mixed_scattered(self, *args) -> 'bool' + | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts + | + | is_reg(self, *args) -> 'bool' + | is_reg(self) -> bool + | is_reg1() || is_reg2() + | + | is_reg1(self, *args) -> 'bool' + | is_reg1(self) -> bool + | See ALOC_REG1. + | + | is_reg2(self, *args) -> 'bool' + | is_reg2(self) -> bool + | See ALOC_REG2. + | + | is_rrel(self, *args) -> 'bool' + | is_rrel(self) -> bool + | See ALOC_RREL. + | + | is_scattered(self, *args) -> 'bool' + | is_scattered(self) -> bool + | See ALOC_DIST. + | + | is_stkoff(self, *args) -> 'bool' + | is_stkoff(self) -> bool + | See ALOC_STACK. + | + | reg1(self, *args) -> 'int' + | reg1(self) -> int + | Get the register info. Use when atype() == ALOC_REG1 or ALOC_REG2 + | + | reg2(self, *args) -> 'int' + | reg2(self) -> int + | Get info for the second register. Use when atype() == ALOC_REG2 + | + | regoff(self, *args) -> 'int' + | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when atype() == + | ALOC_REG1 + | + | scattered(self, *args) -> 'scattered_aloc_t const &' + | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when atype() == ALOC_DIST + | + | set_badloc(self, *args) -> 'void' + | set_badloc(self) + | Set to invalid location. + | + | set_ea(self, *args) -> 'void' + | set_ea(self, _ea) + | Set static ea location. + | + | @param _ea: (C++: ea_t) + | + | set_reg1(self, *args) -> 'void' + | set_reg1(self, reg, off=0) + | Set register location. + | + | @param reg: (C++: int) + | @param off: (C++: int) + | + | set_reg2(self, *args) -> 'void' + | set_reg2(self, _reg1, _reg2) + | Set secondary register location. + | + | @param _reg1: (C++: int) + | @param _reg2: (C++: int) + | + | set_stkoff(self, *args) -> 'void' + | set_stkoff(self, off) + | Set stack offset location. + | + | @param off: (C++: sval_t) + | + | stkoff(self, *args) -> 'sval_t' + | stkoff(self) -> sval_t + | Get the stack offset. Use if atype() == ALOC_STACK + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from argloc_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from argloc_t: + | + | __hash__ = None + +Help on class argpartvec_t in module ida_typeinf: + +class argpartvec_t(builtins.object) + | Proxy of C++ qvector< argpart_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __getitem__(self, *args) -> 'argpart_t const &' + | __getitem__(self, i) -> argpart_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> argpartvec_t + | __init__(self, x) -> argpartvec_t + | + | @param x: qvector< argpart_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & + | + | __swig_destroy__ = delete_argpartvec_t(...) + | delete_argpartvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: argpart_t const & + | + | at(self, *args) -> 'argpart_t const &' + | at(self, _idx) -> argpart_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' + | begin(self) -> argpart_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< argpart_t >::const_iterator' + | end(self) -> argpart_t + | + | erase(self, *args) -> 'qvector< argpart_t >::iterator' + | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | + | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator + | + | extract(self, *args) -> 'argpart_t *' + | extract(self) -> argpart_t + | + | find(self, *args) -> 'qvector< argpart_t >::const_iterator' + | find(self, x) -> argpart_t + | + | @param x: argpart_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: argpart_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< argpart_t >::iterator' + | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'argpart_t &' + | push_back(self, x) + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< argpart_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class argtinfo_helper_t in module ida_typeinf: + +class argtinfo_helper_t(builtins.object) + | Proxy of C++ argtinfo_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> argtinfo_helper_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argtinfo_helper_t(...) + | delete_argtinfo_helper_t(self) + | + | has_delay_slot(self, *args) -> 'bool' + | has_delay_slot(self, arg0) -> bool + | The call instruction with a delay slot?. + | + | @param arg0: ea_t + | + | is_stkarg_load(self, *args) -> 'bool' + | is_stkarg_load(self, insn, src, dst) -> bool + | Is the current insn a stkarg load?. if yes: + | * src: index of the source operand in insn_t::ops + | * dst: index of the destination operand in insn_t::ops insn_t::ops[dst].addr is + | expected to have the stack offset + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param src: (C++: int *) + | @param dst: (C++: int *) + | + | set_op_tinfo(self, *args) -> 'bool' + | set_op_tinfo(self, insn, x, tif, name) -> bool + | Set the operand type as specified. + | + | @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x: (C++: const op_t &) op_t const & + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | + | use_arg_tinfos(self, *args) -> 'void' + | use_arg_tinfos(self, caller, fti, rargs) + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | @param caller: (C++: ea_t) + | @param fti: (C++: func_type_data_t *) + | @param rargs: (C++: funcargvec_t *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag + +Help on class array_type_data_t in module ida_typeinf: + +class array_type_data_t(builtins.object) + | Proxy of C++ array_type_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, b=0, n=0) -> array_type_data_t + | + | @param b: size_t + | @param n: size_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_array_type_data_t(...) + | delete_array_type_data_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | set this = r and r = this + | + | @param r: (C++: array_type_data_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | base + | base + | + | elem_type + | elem_type + | + | nelems + | nelems + | + | thisown + | The membership flag + +Help on function begin_type_updating in module ida_typeinf: + +begin_type_updating(*args) -> 'void' + begin_type_updating(utp) + Mark the beginning of a large update operation on the types. Can be used with + add_enum_member(), add_struc_member, etc... Also see end_type_updating() + + @param utp: (C++: update_type_t) enum update_type_t + +Help on class bitfield_type_data_t in module ida_typeinf: + +class bitfield_type_data_t(builtins.object) + | Proxy of C++ bitfield_type_data_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __init__(self, *args) + | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | + | @param _nbytes: uchar + | @param _width: uchar + | @param _is_unsigned: bool + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: bitfield_type_data_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_bitfield_type_data_t(...) + | delete_bitfield_type_data_t(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: bitfield_type_data_t const & + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: bitfield_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | is_unsigned + | is_unsigned + | + | nbytes + | nbytes + | + | thisown + | The membership flag + | + | width + | width + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function calc_c_cpp_name in module ida_typeinf: + +calc_c_cpp_name(*args) -> 'qstring *' + calc_c_cpp_name(name, type, ccn_flags) -> str + Get C or C++ form of the name. + + @param name: (C++: const char *) original (mangled or decorated) name + @param type: (C++: const tinfo_t *) name type if known, otherwise nullptr + @param ccn_flags: (C++: int) one of C/C++ naming flags + +Help on function calc_number_of_children in module ida_typeinf: + +calc_number_of_children(*args) -> 'int' + calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). + + @param loc: (C++: const argloc_t &) location of the data (ALOC_STATIC or ALOC_CUSTOM) + @param tif: (C++: const tinfo_t &) type info + @param dont_deref_ptr: (C++: bool) consider 'ea' as the ptr value + @retval 0: data is not expandable + @retval -1: error, see qerrno + @retval else: the max number of lines + +Help on function calc_tinfo_gaps in module ida_typeinf: + +calc_tinfo_gaps(*args) -> 'bool' + calc_tinfo_gaps(out, typid) -> bool + + @param out: rangeset_t * + @param typid: uint32 + +Help on function calc_type_size in module ida_typeinf: + +calc_type_size(*args) -> 'PyObject *' + calc_type_size(ti, tp) -> PyObject * + Returns the size of a type + + @param ti: Type info. 'None' can be passed. + @param tp: type string + @return: - None on failure + - The size of the type + +Help on class callregs_t in module ida_typeinf: + +class callregs_t(builtins.object) + | Proxy of C++ callregs_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> callregs_t + | __init__(self, cc) -> callregs_t + | + | @param cc: cm_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_callregs_t(...) + | delete_callregs_t(self) + | + | by_slots(self, *args) -> 'bool' + | by_slots(self) -> bool + | + | init_regs(self, *args) -> 'void' + | init_regs(self, cc) + | Init policy & registers for given CC. + | + | @param cc: (C++: cm_t) + | + | reginds(self, *args) -> 'bool' + | reginds(self, gp_ind, fp_ind, r) -> bool + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | + | @param gp_ind: (C++: int *) + | @param fp_ind: (C++: int *) + | @param r: (C++: int) + | + | reset(self, *args) -> 'void' + | reset(self) + | Set policy and registers to invalid values. + | + | set(self, *args) -> 'void' + | set(self, _policy, gprs, fprs) + | Init policy & registers (arrays are -1-terminated) + | + | @param _policy: (C++: argreg_policy_t) enum argreg_policy_t + | @param gprs: (C++: const int *) int const * + | @param fprs: (C++: const int *) int const * + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | regcount(*args) -> 'int' + | regcount(cc) -> int + | Get max number of registers may be used in a function call. + | + | @param cc: (C++: cm_t) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | fpregs + | fpregs + | + | gpregs + | gpregs + | + | nregs + | nregs + | + | policy + | policy + | + | thisown + | The membership flag + +Help on function callregs_t_regcount in module ida_typeinf: + +callregs_t_regcount(*args) -> 'int' + callregs_t_regcount(cc) -> int + + @param cc: cm_t + +Help on function choose_local_tinfo in module ida_typeinf: + +choose_local_tinfo(*args) -> 'uint32' + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 + Choose a type from the local type library. + + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number + +Help on function choose_local_tinfo_and_delta in module ida_typeinf: + +choose_local_tinfo_and_delta(*args) -> 'uint32' + choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + Choose a type from the local type library and specify the pointer shift value. + + @param delta: (C++: int32 *) pointer shift value + @param ti: (C++: const til_t *) pointer to til + @param title: (C++: const char *) title of listbox to display + @param func: (C++: local_tinfo_predicate_t *) predicate to select types to display (maybe nullptr) + @param def_ord: (C++: uint32) ordinal to position cursor before choose + @param ud: (C++: void *) user data + @return: == 0 means nothing is chosen, otherwise an ordinal number + +Help on function choose_named_type in module ida_typeinf: + +choose_named_type(*args) -> 'bool' + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool + Choose a type from a type library. + + @param out_sym: (C++: til_symbol_t *) pointer to be filled with the chosen type + @param root_til: (C++: const til_t *) pointer to starting til (the function will inspect the base + tils if allowed by flags) + @param title: (C++: const char *) title of listbox to display + @param ntf_flags: (C++: int) combination of Flags for named types + @param predicate: (C++: predicate_t *) predicate to select types to display (maybe nullptr) + @return: false if nothing is chosen, otherwise true + +Help on function clear_tinfo_t in module ida_typeinf: + +clear_tinfo_t(*args) -> 'void' + clear_tinfo_t(_this) + + @param _this: tinfo_t * + +Help on function compact_til in module ida_typeinf: + +compact_til(*args) -> 'bool' + compact_til(ti) -> bool + Collect garbage in til. Must be called before storing the til. + + @param ti: (C++: til_t *) + @return: true if any memory was freed + +Help on function compare_tinfo in module ida_typeinf: + +compare_tinfo(*args) -> 'bool' + compare_tinfo(t1, t2, tcflags) -> bool + + @param t1: uint32 + @param t2: uint32 + @param tcflags: int + +Help on class const_aloc_visitor_t in module ida_typeinf: + +class const_aloc_visitor_t(builtins.object) + | Proxy of C++ const_aloc_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> const_aloc_visitor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_const_aloc_visitor_t(...) + | delete_const_aloc_visitor_t(self) + | + | visit_location(self, *args) -> 'int' + | visit_location(self, v, off, size) -> int + | + | @param v: argloc_t const & + | @param off: int + | @param size: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function convert_pt_flags_to_hti in module ida_typeinf: + +convert_pt_flags_to_hti(*args) -> 'int' + convert_pt_flags_to_hti(pt_flags) -> int + Convert Type parsing flags to Type formatting flags. Type parsing flags lesser + than 0x10 don't have stable meaning and will be ignored (more on these flags can + be seen in idc.idc) + + @param pt_flags: (C++: int) + +Help on function copy_named_type in module ida_typeinf: + +copy_named_type(*args) -> 'uint32' + copy_named_type(dsttil, srctil, name) -> uint32 + Copy a named type from one til to another. This function will copy the specified + type and all dependent types from the source type library to the destination + library. + + @param dsttil: (C++: til_t *) Destination til. It must have orginal types enabled + @param srctil: (C++: const til_t *) Source til. + @param name: (C++: const char *) name of the type to copy + @return: ordinal number of the copied type. 0 means error + +Help on function copy_tinfo_t in module ida_typeinf: + +copy_tinfo_t(*args) -> 'void' + copy_tinfo_t(_this, r) + + @param _this: tinfo_t * + @param r: tinfo_t const & + +Help on function create_numbered_type_name in module ida_typeinf: + +create_numbered_type_name(*args) -> 'qstring *' + create_numbered_type_name(ord) -> str + Create anonymous name for numbered type. This name can be used to reference a + numbered type by its ordinal Ordinal names have the following format: '#' + + set_de(ord) Returns: -1 if error, otherwise the name length + + @param ord: (C++: int32) + +Help on function create_tinfo in module ida_typeinf: + +create_tinfo(*args) -> 'bool' + create_tinfo(_this, bt, bt2, ptr) -> bool + + @param _this: tinfo_t * + @param bt: type_t + @param bt2: type_t + @param ptr: void * + +Help on function default_compiler in module ida_typeinf: + +default_compiler(*args) -> 'comp_t' + default_compiler() -> comp_t + Get compiler specified by inf.cc. + +Help on function del_named_type in module ida_typeinf: + +del_named_type(*args) -> 'bool' + del_named_type(ti, name, ntf_flags) -> bool + Delete information about a symbol. + + @param ti: (C++: til_t *) type library + @param name: (C++: const char *) name of symbol + @param ntf_flags: (C++: int) combination of Flags for named types + @return: success + +Help on function del_numbered_type in module ida_typeinf: + +del_numbered_type(*args) -> 'bool' + del_numbered_type(ti, ordinal) -> bool + Delete a numbered type. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + +Help on function del_til in module ida_typeinf: + +del_til(*args) -> 'bool' + del_til(name) -> bool + Unload a til file. + + @param name: (C++: const char *) char const * + +Help on function del_tinfo_attr in module ida_typeinf: + +del_tinfo_attr(*args) -> 'bool' + del_tinfo_attr(tif, key, make_copy) -> bool + + @param tif: tinfo_t * + @param key: qstring const & + @param make_copy: bool + +Help on function del_vftable_ea in module ida_typeinf: + +del_vftable_ea(*args) -> 'bool' + del_vftable_ea(ordinal) -> bool + Delete the address of a vftable instance for a vftable type. + + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: success + +Help on function deref_ptr in module ida_typeinf: + +deref_ptr(*args) -> 'bool' + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool + Dereference a pointer. + + @param ptr_ea: (C++: ea_t *) in/out parameter + * in: address of the pointer + * out: the pointed address + @param tif: (C++: const tinfo_t &) type of the pointer + @param closure_obj: (C++: ea_t *) closure object (not used yet) + @return: success + +Help on function deserialize_tinfo in module ida_typeinf: + +deserialize_tinfo(*args) -> 'bool' + deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool + + @param tif: tinfo_t * + @param til: til_t const * + @param ptype: type_t const ** + @param pfields: p_list const ** + @param pfldcmts: p_list const ** + +Help on function dstr_tinfo in module ida_typeinf: + +dstr_tinfo(*args) -> 'char const *' + dstr_tinfo(tif) -> char const * + + @param tif: tinfo_t const * + +Help on function dump_func_type_data in module ida_typeinf: + +dump_func_type_data(*args) -> 'qstring *' + dump_func_type_data(fti, praloc_bits) -> str + Use func_type_data_t::dump() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param praloc_bits: (C++: int) + +Help on function end_type_updating in module ida_typeinf: + +end_type_updating(*args) -> 'void' + end_type_updating(utp) + Mark the end of a large update operation on the types (see + begin_type_updating()) + + @param utp: (C++: update_type_t) enum update_type_t + +Help on class enum_member_t in module ida_typeinf: + +class enum_member_t(builtins.object) + | Proxy of C++ enum_member_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: enum_member_t const & + | + | __init__(self, *args) + | __init__(self) -> enum_member_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: enum_member_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_member_t(...) + | delete_enum_member_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: enum_member_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | name + | name + | + | thisown + | The membership flag + | + | value + | value + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class enum_member_vec_t in module ida_typeinf: + +class enum_member_vec_t(builtins.object) + | Proxy of C++ qvector< enum_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __getitem__(self, *args) -> 'enum_member_t const &' + | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> enum_member_vec_t + | __init__(self, x) -> enum_member_vec_t + | + | @param x: qvector< enum_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & + | + | __swig_destroy__ = delete_enum_member_vec_t(...) + | delete_enum_member_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & + | + | at(self, *args) -> 'enum_member_t const &' + | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | begin(self) -> enum_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | end(self) -> enum_member_t + | + | erase(self, *args) -> 'qvector< enum_member_t >::iterator' + | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | + | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator + | + | extract(self, *args) -> 'enum_member_t *' + | extract(self) -> enum_member_t + | + | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: enum_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< enum_member_t >::iterator' + | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'enum_member_t &' + | push_back(self, x) + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< enum_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class enum_type_data_t in module ida_typeinf: + +class enum_type_data_t(enum_member_vec_t) + | Proxy of C++ enum_type_data_t class. + | + | Method resolution order: + | enum_type_data_t + | enum_member_vec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | + | @param _bte: bte_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_enum_type_data_t(...) + | delete_enum_type_data_t(self) + | + | calc_mask(self, *args) -> 'uint64' + | calc_mask(self) -> uint64 + | + | calc_nbytes(self, *args) -> 'int' + | calc_nbytes(self) -> int + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | + | is_char(self, *args) -> 'bool' + | is_char(self) -> bool + | + | is_hex(self, *args) -> 'bool' + | is_hex(self) -> bool + | + | is_sdec(self, *args) -> 'bool' + | is_sdec(self) -> bool + | + | is_udec(self, *args) -> 'bool' + | is_udec(self) -> bool + | + | swap(self, *args) -> 'void' + | swap(self, r) + | swap two instances + | + | @param r: (C++: enum_type_data_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | bte + | bte + | + | group_sizes + | group_sizes + | + | taenum_bits + | taenum_bits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from enum_member_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __getitem__(self, *args) -> 'enum_member_t const &' + | __getitem__(self, i) -> enum_member_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< enum_member_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: enum_member_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: enum_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: enum_member_t const & + | + | at(self, *args) -> 'enum_member_t const &' + | at(self, _idx) -> enum_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | begin(self) -> enum_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | end(self) -> enum_member_t + | + | erase(self, *args) -> 'qvector< enum_member_t >::iterator' + | erase(self, it) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | + | erase(self, first, last) -> enum_member_t + | + | @param first: qvector< enum_member_t >::iterator + | @param last: qvector< enum_member_t >::iterator + | + | extract(self, *args) -> 'enum_member_t *' + | extract(self) -> enum_member_t + | + | find(self, *args) -> 'qvector< enum_member_t >::const_iterator' + | find(self, x) -> enum_member_t + | + | @param x: enum_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=enum_member_t()) + | + | @param x: enum_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: enum_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: enum_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< enum_member_t >::iterator' + | insert(self, it, x) -> enum_member_t + | + | @param it: qvector< enum_member_t >::iterator + | @param x: enum_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'enum_member_t &' + | push_back(self, x) + | + | @param x: enum_member_t const & + | + | push_back(self) -> enum_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: enum_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from enum_member_vec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from enum_member_vec_t: + | + | __hash__ = None + +Help on function extract_argloc in module ida_typeinf: + +extract_argloc(*args) -> 'bool' + extract_argloc(vloc, ptype, forbid_stkoff) -> bool + Deserialize an argument location. Argument FORBID_STKOFF checks location type. + It can be used, for example, to check the return location of a function that + cannot return a value in the stack + + @param vloc: (C++: argloc_t *) + @param ptype: (C++: const type_t **) type_t const ** + @param forbid_stkoff: (C++: bool) + +Help on function find_tinfo_udt_member in module ida_typeinf: + +find_tinfo_udt_member(*args) -> 'int' + find_tinfo_udt_member(udm, typid, strmem_flags) -> int + + @param udm: udt_member_t * + @param typid: uint32 + @param strmem_flags: int + +Help on function first_named_type in module ida_typeinf: + +first_named_type(*args) -> 'char const *' + first_named_type(ti, ntf_flags) -> char const * + Enumerate types. + + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. + +Help on function for_all_arglocs in module ida_typeinf: + +for_all_arglocs(*args) -> 'int' + for_all_arglocs(vv, vloc, size, off=0) -> int + Compress larger argloc types and initiate the aloc visitor. + + @param vv: (C++: aloc_visitor_t &) + @param vloc: (C++: argloc_t &) + @param size: (C++: int) + @param off: (C++: int) + +Help on function for_all_const_arglocs in module ida_typeinf: + +for_all_const_arglocs(*args) -> 'int' + for_all_const_arglocs(vv, vloc, size, off=0) -> int + See for_all_arglocs() + + @param vv: (C++: const_aloc_visitor_t &) + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param off: (C++: int) + +Help on function free_til in module ida_typeinf: + +free_til(*args) -> 'void' + free_til(ti) + Free memory allocated by til. + + @param ti: (C++: til_t *) + +Help on function func_has_stkframe_hole in module ida_typeinf: + +func_has_stkframe_hole(*args) -> 'bool' + func_has_stkframe_hole(ea, fti) -> bool + Looks for a hole at the beginning of the stack arguments. Will make use of the + IDB's func_t function at that place (if present) to help determine the presence + of such a hole. + + @param ea: (C++: ea_t) + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + +Help on class func_type_data_t in module ida_typeinf: + +class func_type_data_t(funcargvec_t) + | Proxy of C++ func_type_data_t class. + | + | Method resolution order: + | func_type_data_t + | funcargvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> func_type_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_func_type_data_t(...) + | delete_func_type_data_t(self) + | + | dump(self, *args) -> 'bool' + | dump(self, praloc_bits=0x02) -> bool + | Dump information that is not always visible in the function prototype. (argument + | locations, return location, total stkarg size) + | + | @param praloc_bits: (C++: int) + | + | get_call_method(self, *args) -> 'int' + | get_call_method(self) -> int + | + | guess_cc(self, *args) -> 'cm_t' + | guess_cc(self, purged, cc_flags) -> cm_t + | Guess function calling convention use the following info: argument locations and + | 'stkargs' + | + | @param purged: (C++: int) + | @param cc_flags: (C++: int) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | + | is_ctor(self, *args) -> 'bool' + | is_ctor(self) -> bool + | + | is_dtor(self, *args) -> 'bool' + | is_dtor(self) -> bool + | + | is_golang_cc(self, *args) -> 'bool' + | is_golang_cc(self) -> bool + | + | is_high(self, *args) -> 'bool' + | is_high(self) -> bool + | + | is_noret(self, *args) -> 'bool' + | is_noret(self) -> bool + | + | is_pure(self, *args) -> 'bool' + | is_pure(self) -> bool + | + | is_static(self, *args) -> 'bool' + | is_static(self) -> bool + | + | is_vararg_cc(self, *args) -> 'bool' + | is_vararg_cc(self) -> bool + | + | is_virtual(self, *args) -> 'bool' + | is_virtual(self) -> bool + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: func_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | cc + | cc + | + | flags + | flags + | + | retloc + | retloc + | + | rettype + | rettype + | + | spoiled + | spoiled + | + | stkargs + | stkargs + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from funcargvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __getitem__(self, *args) -> 'funcarg_t const &' + | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & + | + | at(self, *args) -> 'funcarg_t const &' + | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | begin(self) -> funcarg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | end(self) -> funcarg_t + | + | erase(self, *args) -> 'qvector< funcarg_t >::iterator' + | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | + | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator + | + | extract(self, *args) -> 'funcarg_t *' + | extract(self) -> funcarg_t + | + | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: funcarg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< funcarg_t >::iterator' + | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'funcarg_t &' + | push_back(self, x) + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from funcargvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from funcargvec_t: + | + | __hash__ = None + +Help on class funcarg_t in module ida_typeinf: + +class funcarg_t(builtins.object) + | Proxy of C++ funcarg_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: funcarg_t const & + | + | __init__(self, *args) + | __init__(self) -> funcarg_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: funcarg_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_funcarg_t(...) + | delete_funcarg_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | argloc + | argloc + | + | cmt + | cmt + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class funcargvec_t in module ida_typeinf: + +class funcargvec_t(builtins.object) + | Proxy of C++ qvector< funcarg_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __getitem__(self, *args) -> 'funcarg_t const &' + | __getitem__(self, i) -> funcarg_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> funcargvec_t + | __init__(self, x) -> funcargvec_t + | + | @param x: qvector< funcarg_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< funcarg_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: funcarg_t const & + | + | __swig_destroy__ = delete_funcargvec_t(...) + | delete_funcargvec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: funcarg_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: funcarg_t const & + | + | at(self, *args) -> 'funcarg_t const &' + | at(self, _idx) -> funcarg_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | begin(self) -> funcarg_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | end(self) -> funcarg_t + | + | erase(self, *args) -> 'qvector< funcarg_t >::iterator' + | erase(self, it) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | + | erase(self, first, last) -> funcarg_t + | + | @param first: qvector< funcarg_t >::iterator + | @param last: qvector< funcarg_t >::iterator + | + | extract(self, *args) -> 'funcarg_t *' + | extract(self) -> funcarg_t + | + | find(self, *args) -> 'qvector< funcarg_t >::const_iterator' + | find(self, x) -> funcarg_t + | + | @param x: funcarg_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=funcarg_t()) + | + | @param x: funcarg_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: funcarg_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: funcarg_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< funcarg_t >::iterator' + | insert(self, it, x) -> funcarg_t + | + | @param it: qvector< funcarg_t >::iterator + | @param x: funcarg_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'funcarg_t &' + | push_back(self, x) + | + | @param x: funcarg_t const & + | + | push_back(self) -> funcarg_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: funcarg_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< funcarg_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function gcc_layout in module ida_typeinf: + +gcc_layout(*args) -> 'bool' + gcc_layout() -> bool + Should use the struct/union layout as done by gcc? + +Help on function gen_decorate_name in module ida_typeinf: + +gen_decorate_name(*args) -> 'qstring *' + gen_decorate_name(name, mangle, cc, type) -> str + Generic function for decorate_name() (may be used in IDP modules) + + @param name: (C++: const char *) char const * + @param mangle: (C++: bool) + @param cc: (C++: cm_t) + @param type: (C++: const tinfo_t *) tinfo_t const * + +Help on function gen_use_arg_tinfos in module ida_typeinf: + +gen_use_arg_tinfos(*args) -> 'void' + gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) + + @param caller: ea_t + @param fti: func_type_data_t * + @param rargs: funcargvec_t * + @param set_optype: set_op_tinfo_t * + @param is_stkarg_load: is_stkarg_load_t * + @param has_delay_slot: has_delay_slot_t * + +Help on function gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) -> 'void' + gen_use_arg_tinfos2(_this, caller, fti, rargs) + Do not call this function directly, use argtinfo_helper_t. + + @param _this: (C++: struct argtinfo_helper_t *) argtinfo_helper_t * + @param caller: (C++: ea_t) + @param fti: (C++: func_type_data_t *) + @param rargs: (C++: funcargvec_t *) + +Help on function get_abi_name in module ida_typeinf: + +get_abi_name(*args) -> 'qstring *' + get_abi_name() -> str + Get ABI name. + + @return: length of the name (>=0) + +Help on function get_alias_target in module ida_typeinf: + +get_alias_target(*args) -> 'uint32' + get_alias_target(ti, ordinal) -> uint32 + Find the final alias destination. If the ordinal has not been aliased, return + the specified ordinal itself If failed, returns 0. + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) + +Help on function get_arg_addrs in module ida_typeinf: + +get_arg_addrs(*args) -> 'PyObject *' + get_arg_addrs(caller) -> PyObject * + Retrieve addresses of argument initialization instructions + + @param caller: the address of the call instruction + @return: list of instruction addresses + +Help on function get_base_type in module ida_typeinf: + +get_base_type(*args) -> 'type_t' + get_base_type(t) -> type_t + Get get basic type bits (TYPE_BASE_MASK) + + @param t: (C++: type_t) + +Help on function get_c_header_path in module ida_typeinf: + +get_c_header_path(*args) -> 'qstring *' + get_c_header_path() -> str + Get the include directory path of the target compiler. + +Help on function get_c_macros in module ida_typeinf: + +get_c_macros(*args) -> 'qstring *' + get_c_macros() -> str + Get predefined macros for the target compiler. + +Help on function get_comp in module ida_typeinf: + +get_comp(*args) -> 'comp_t' + get_comp(comp) -> comp_t + Get compiler bits. + + @param comp: (C++: comp_t) + +Help on function get_compiler_abbr in module ida_typeinf: + +get_compiler_abbr(*args) -> 'char const *' + get_compiler_abbr(id) -> char const * + Get abbreviated compiler name. + + @param id: (C++: comp_t) + +Help on function get_compiler_name in module ida_typeinf: + +get_compiler_name(*args) -> 'char const *' + get_compiler_name(id) -> char const * + Get full compiler name. + + @param id: (C++: comp_t) + +Help on function get_compilers in module ida_typeinf: + +get_compilers(*args) -> 'void' + get_compilers(ids, names, abbrs) + Get names of all built-in compilers. + + @param ids: (C++: compvec_t *) + @param names: (C++: qstrvec_t *) + @param abbrs: (C++: qstrvec_t *) + +Help on function get_enum_member_expr in module ida_typeinf: + +get_enum_member_expr(*args) -> 'qstring *' + get_enum_member_expr(tif, serial, value) -> str + Return a C expression that can be used to represent an enum member. If the value + does not correspond to any single enum member, this function tries to find a + bitwise combination of enum members that correspond to it. If more than half of + value bits do not match any enum members, it fails. + + @param tif: (C++: const tinfo_t &) enumeration type + @param serial: (C++: int) which enumeration member to use (0 means the first with the given + value) + @param value: (C++: uint64) value to search in the enumeration type. only 32-bit number can be + handled yet + @return: success + +Help on function get_full_type in module ida_typeinf: + +get_full_type(*args) -> 'type_t' + get_full_type(t) -> type_t + Get basic type bits + type flags (TYPE_FULL_MASK) + + @param t: (C++: type_t) + +Help on function get_idainfo64_by_type in module ida_typeinf: + +get_idainfo64_by_type(*args) -> 'size_t *, opinfo_t *, size_t *' + get_idainfo64_by_type(out_flags, tif) -> bool + Extract information from a tinfo_t. + + @param out_flags: (C++: flags64_t *) description of type using flags64_t + @param tif: (C++: const tinfo_t &) the type to inspect + +Help on function get_idainfo_by_type in module ida_typeinf: + +get_idainfo_by_type(*args) -> 'size_t *, flags_t *, opinfo_t *, size_t *' + get_idainfo_by_type(tif) -> bool + Extract information from a tinfo_t. + + @param tif: (C++: const tinfo_t &) the type to inspect + +Help on function get_idati in module ida_typeinf: + +get_idati(*args) -> 'til_t const *' + get_idati() -> til_t + Pointer to the local type library - this til is private for each IDB file + Function that accepts til_t* uses local type library instead of nullptr. + +Help on function get_named_type in module ida_typeinf: + +get_named_type(*args) -> 'PyObject *' + get_named_type(til, name, ntf_flags) -> (int, bytes, bytes, NoneType, NoneType, int, int) + Get a type data by its name. + + @param til: the type library + @param name: the type name + @param ntf_flags: a combination of NTF_* constants + @return: None on failure + tuple(code, type_str, fields_str, cmt, field_cmts, sclass, value) on success + +Help on function get_named_type64 in module ida_typeinf: + +get_named_type64(*args) -> 'PyObject *' + get_named_type64(til, name, ntf_flags) -> (int, bytes, NoneType, NoneType, NoneType, int, int) + See get_named_type() above. + @note: If the value in the 'ti' library is 32-bit, it will be sign-extended + before being stored in the 'value' pointer. + + @param til: til_t const * + @param name: (C++: const char *) char const * + @param ntf_flags: (C++: int) + +Help on function get_numbered_type in module ida_typeinf: + +get_numbered_type(*args) -> 'PyObject *' + get_numbered_type(til, ordinal) -> (bytes, NoneType, NoneType, NoneType, int), (bytes, bytes, NoneType, NoneType, int) + Retrieve a type by its ordinal number. + + @param til: til_t const * + @param ordinal: (C++: uint32) + +Help on function get_numbered_type_name in module ida_typeinf: + +get_numbered_type_name(*args) -> 'char const *' + get_numbered_type_name(ti, ordinal) -> char const * + Get type name (if exists) by its ordinal. If the type is anonymous, returns "". + If failed, returns nullptr + + @param ti: (C++: const til_t *) til_t const * + @param ordinal: (C++: uint32) + +Help on function get_ordinal_from_idb_type in module ida_typeinf: + +get_ordinal_from_idb_type(*args) -> 'int' + get_ordinal_from_idb_type(name, type) -> int + Get ordinal number of an idb type (struct/enum). The 'type' parameter is used + only to determine the kind of the type (struct or enum) Use this function to + find out the correspondence between idb types and til types + + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + +Help on function get_ordinal_qty in module ida_typeinf: + +get_ordinal_qty(*args) -> 'uint32' + get_ordinal_qty(ti) -> uint32 + Get number of allocated ordinals. + + @param ti: (C++: const til_t *) til_t const * + @return: uint32(-1) if failed + +Help on function get_scalar_bt in module ida_typeinf: + +get_scalar_bt(*args) -> 'type_t' + get_scalar_bt(size) -> type_t + + @param size: int + +Help on function get_stock_tinfo in module ida_typeinf: + +get_stock_tinfo(*args) -> 'bool' + get_stock_tinfo(tif, id) -> bool + + @param tif: tinfo_t * + @param id: enum stock_type_id_t + +Help on function get_tinfo_attr in module ida_typeinf: + +get_tinfo_attr(*args) -> 'bool' + get_tinfo_attr(typid, key, bv, all_attrs) -> bool + + @param typid: uint32 + @param key: qstring const & + @param bv: bytevec_t * + @param all_attrs: bool + +Help on function get_tinfo_attrs in module ida_typeinf: + +get_tinfo_attrs(*args) -> 'bool' + get_tinfo_attrs(typid, tav, include_ref_attrs) -> bool + + @param typid: uint32 + @param tav: type_attrs_t * + @param include_ref_attrs: bool + +Help on function get_tinfo_details in module ida_typeinf: + +get_tinfo_details(*args) -> 'bool' + get_tinfo_details(typid, bt2, buf) -> bool + + @param typid: uint32 + @param bt2: type_t + @param buf: void * + +Help on function get_tinfo_pdata in module ida_typeinf: + +get_tinfo_pdata(*args) -> 'size_t' + get_tinfo_pdata(outptr, typid, what) -> size_t + + @param outptr: void * + @param typid: uint32 + @param what: int + +Help on function get_tinfo_property in module ida_typeinf: + +get_tinfo_property(*args) -> 'size_t' + get_tinfo_property(typid, gta_prop) -> size_t + + @param typid: uint32 + @param gta_prop: int + +Help on function get_tinfo_size in module ida_typeinf: + +get_tinfo_size(*args) -> 'size_t' + get_tinfo_size(p_effalign, typid, gts_code) -> size_t + + @param p_effalign: uint32 * + @param typid: uint32 + @param gts_code: int + +Help on function get_type_flags in module ida_typeinf: + +get_type_flags(*args) -> 'type_t' + get_type_flags(t) -> type_t + Get type flags (TYPE_FLAGS_MASK) + + @param t: (C++: type_t) + +Help on function get_type_ordinal in module ida_typeinf: + +get_type_ordinal(*args) -> 'int32' + get_type_ordinal(ti, name) -> int32 + Get type ordinal by its name. + + @param ti: (C++: const til_t *) til_t const * + @param name: (C++: const char *) char const * + +Help on function get_vftable_ea in module ida_typeinf: + +get_vftable_ea(*args) -> 'ea_t' + get_vftable_ea(ordinal) -> ea_t + Get address of a virtual function table. + + @param ordinal: (C++: uint32) ordinal number of a vftable type. + @return: address of the corresponding virtual function table in the current + database. + +Help on function get_vftable_ordinal in module ida_typeinf: + +get_vftable_ordinal(*args) -> 'uint32' + get_vftable_ordinal(vftable_ea) -> uint32 + Get ordinal number of the virtual function table. + + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: ordinal number of the corresponding vftable type. 0 - failure. + +Help on function guess_func_cc in module ida_typeinf: + +guess_func_cc(*args) -> 'cm_t' + guess_func_cc(fti, npurged, cc_flags) -> cm_t + Use func_type_data_t::guess_cc() + + @param fti: (C++: const func_type_data_t &) func_type_data_t const & + @param npurged: (C++: int) + @param cc_flags: (C++: int) + +Help on function guess_tinfo in module ida_typeinf: + +guess_tinfo(*args) -> 'int' + guess_tinfo(tif, id) -> int + Generate a type information about the id from the disassembly. id can be a + structure/union/enum id or an address. + + @param tif: (C++: tinfo_t *) + @param id: (C++: tid_t) + @return: one of Guess tinfo codes + +Help on class ida_lowertype_helper_t in module ida_typeinf: + +class ida_lowertype_helper_t(lowertype_helper_t) + | Proxy of C++ ida_lowertype_helper_t class. + | + | Method resolution order: + | ida_lowertype_helper_t + | lowertype_helper_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | + | @param _tif: tinfo_t const & + | @param _ea: ea_t + | @param _pb: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ida_lowertype_helper_t(...) + | delete_ida_lowertype_helper_t(self) + | + | func_has_stkframe_hole(self, *args) -> 'bool' + | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & + | + | get_func_purged_bytes(self, *args) -> 'int' + | get_func_purged_bytes(self, candidate, arg3) -> int + | + | @param candidate: tinfo_t const & + | @param arg3: func_type_data_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from lowertype_helper_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on function idc_get_local_type in module ida_typeinf: + +idc_get_local_type(*args) -> 'size_t' + idc_get_local_type(ordinal, flags) -> str + + @param ordinal: int + @param flags: int + +Help on function idc_get_local_type_name in module ida_typeinf: + +idc_get_local_type_name(*args) -> 'size_t' + idc_get_local_type_name(ordinal) -> str + + @param ordinal: int + +Help on function idc_get_local_type_raw in module ida_typeinf: + +idc_get_local_type_raw(*args) -> 'PyObject *' + idc_get_local_type_raw(ordinal) -> (bytes, bytes) + + @param ordinal: int + +Help on function idc_get_type in module ida_typeinf: + +idc_get_type(*args) -> 'size_t' + idc_get_type(ea) -> str + + @param ea: ea_t + +Help on function idc_get_type_raw in module ida_typeinf: + +idc_get_type_raw(*args) -> 'PyObject *' + idc_get_type_raw(ea) -> PyObject * + + @param ea: ea_t + +Help on function idc_guess_type in module ida_typeinf: + +idc_guess_type(*args) -> 'size_t' + idc_guess_type(ea) -> str + + @param ea: ea_t + +Help on function idc_parse_decl in module ida_typeinf: + +idc_parse_decl(*args) -> 'PyObject *' + idc_parse_decl(ti, decl, flags) -> (str, bytes, bytes) or None + + @param ti: til_t * + @param decl: char const * + @param flags: int + +Help on function idc_parse_types in module ida_typeinf: + +idc_parse_types(*args) -> 'int' + idc_parse_types(input, flags) -> int + + @param input: char const * + @param flags: int + +Help on function idc_print_type in module ida_typeinf: + +idc_print_type(*args) -> 'PyObject *' + idc_print_type(type, fields, name, flags) -> str + + @param type: type_t const * + @param fields: p_list const * + @param name: char const * + @param flags: int + +Help on function idc_set_local_type in module ida_typeinf: + +idc_set_local_type(*args) -> 'int' + idc_set_local_type(ordinal, dcl, flags) -> int + + @param ordinal: int + @param dcl: char const * + @param flags: int + +Help on function import_type in module ida_typeinf: + +import_type(*args) -> 'tid_t' + import_type(til, idx, name, flags=0) -> tid_t + Copy a named type from til to idb. + + @param til: (C++: const til_t *) type library + @param idx: (C++: int) the position of the new type in the list of types (structures or + enums). -1 means at the end of the list + @param name: (C++: const char *) the type name + @param flags: (C++: int) combination of Import type flags + @return: BADNODE on error + +Help on function inf_big_arg_align in module ida_typeinf: + +inf_big_arg_align(*args) -> 'bool' + inf_big_arg_align() -> bool + inf_big_arg_align(cc) -> bool + + @param cc: cm_t + +Help on function inf_pack_stkargs in module ida_typeinf: + +inf_pack_stkargs(*args) -> 'bool' + inf_pack_stkargs() -> bool + inf_pack_stkargs(cc) -> bool + + @param cc: cm_t + +Help on function is_autosync in module ida_typeinf: + +is_autosync(*args) -> 'bool' + is_autosync(name, type) -> bool + Is the specified idb type automatically synchronized? + + @param name: (C++: const char *) char const * + @param type: type_t const * + + is_autosync(name, tif) -> bool + + @param name: char const * + @param tif: tinfo_t const & + +Help on function is_code_far in module ida_typeinf: + +is_code_far(*args) -> 'bool' + is_code_far(cm) -> bool + Does the given model specify far code?. + + @param cm: (C++: cm_t) + +Help on function is_comp_unsure in module ida_typeinf: + +is_comp_unsure(*args) -> 'comp_t' + is_comp_unsure(comp) -> comp_t + See COMP_UNSURE. + + @param comp: (C++: comp_t) + +Help on function is_data_far in module ida_typeinf: + +is_data_far(*args) -> 'bool' + is_data_far(cm) -> bool + Does the given model specify far data?. + + @param cm: (C++: cm_t) + +Help on function is_gcc in module ida_typeinf: + +is_gcc(*args) -> 'bool' + is_gcc() -> bool + Is the target compiler COMP_GNU? + +Help on function is_gcc32 in module ida_typeinf: + +is_gcc32(*args) -> 'bool' + is_gcc32() -> bool + Is the target compiler 32 bit gcc? + +Help on function is_gcc64 in module ida_typeinf: + +is_gcc64(*args) -> 'bool' + is_gcc64() -> bool + Is the target compiler 64 bit gcc? + +Help on function is_golang_cc in module ida_typeinf: + +is_golang_cc(*args) -> 'bool' + is_golang_cc(cc) -> bool + GO language calling convention (return value in stack)? + + @param cc: (C++: cm_t) + +Help on function is_ordinal_name in module ida_typeinf: + +is_ordinal_name(*args) -> 'bool' + is_ordinal_name(name, ord=None) -> bool + Check if the name is an ordinal name. Ordinal names have the following format: + '#' + set_de(ord) + + @param name: (C++: const char *) char const * + @param ord: (C++: uint32 *) + +Help on function is_purging_cc in module ida_typeinf: + +is_purging_cc(*args) -> 'bool' + is_purging_cc(cm) -> bool + Does the calling convention clean the stack arguments upon return?. + @note: this function is valid only for x86 code + + @param cm: (C++: cm_t) + +Help on function is_restype_enum in module ida_typeinf: + +is_restype_enum(*args) -> 'bool' + is_restype_enum(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_restype_struct in module ida_typeinf: + +is_restype_struct(*args) -> 'bool' + is_restype_struct(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_restype_struni in module ida_typeinf: + +is_restype_struni(*args) -> 'bool' + is_restype_struni(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_restype_void in module ida_typeinf: + +is_restype_void(*args) -> 'bool' + is_restype_void(til, type) -> bool + + @param til: til_t const * + @param type: type_t const * + +Help on function is_sdacl_byte in module ida_typeinf: + +is_sdacl_byte(*args) -> 'bool' + is_sdacl_byte(t) -> bool + Identify an sdacl byte. The first sdacl byte has the following format: 11xx000x. + The sdacl bytes are appended to udt fields. They indicate the start of type + attributes (as the tah-bytes do). The sdacl bytes are used in the udt headers + instead of the tah-byte. This is done for compatibility with old databases, they + were already using sdacl bytes in udt headers and as udt field postfixes. (see + "sdacl-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) + +Help on function is_tah_byte in module ida_typeinf: + +is_tah_byte(*args) -> 'bool' + is_tah_byte(t) -> bool + The TAH byte (type attribute header byte) denotes the start of type attributes. + (see "tah-typeattrs" in the type bit definitions) + + @param t: (C++: type_t) + +Help on function is_type_arithmetic in module ida_typeinf: + +is_type_arithmetic(*args) -> 'bool' + is_type_arithmetic(t) -> bool + Is the type an arithmetic type? (floating or integral) + + @param t: (C++: type_t) + +Help on function is_type_array in module ida_typeinf: + +is_type_array(*args) -> 'bool' + is_type_array(t) -> bool + See BT_ARRAY. + + @param t: (C++: type_t) + +Help on function is_type_bitfld in module ida_typeinf: + +is_type_bitfld(*args) -> 'bool' + is_type_bitfld(t) -> bool + See BT_BITFIELD. + + @param t: (C++: type_t) + +Help on function is_type_bool in module ida_typeinf: + +is_type_bool(*args) -> 'bool' + is_type_bool(t) -> bool + See BTF_BOOL. + + @param t: (C++: type_t) + +Help on function is_type_char in module ida_typeinf: + +is_type_char(*args) -> 'bool' + is_type_char(t) -> bool + Does the type specify a char value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_complex in module ida_typeinf: + +is_type_complex(*args) -> 'bool' + is_type_complex(t) -> bool + See BT_COMPLEX. + + @param t: (C++: type_t) + +Help on function is_type_const in module ida_typeinf: + +is_type_const(*args) -> 'bool' + is_type_const(t) -> bool + See BTM_CONST. + + @param t: (C++: type_t) + +Help on function is_type_double in module ida_typeinf: + +is_type_double(*args) -> 'bool' + is_type_double(t) -> bool + See BTF_DOUBLE. + + @param t: (C++: type_t) + +Help on function is_type_enum in module ida_typeinf: + +is_type_enum(*args) -> 'bool' + is_type_enum(t) -> bool + See BTF_ENUM. + + @param t: (C++: type_t) + +Help on function is_type_ext_arithmetic in module ida_typeinf: + +is_type_ext_arithmetic(*args) -> 'bool' + is_type_ext_arithmetic(t) -> bool + Is the type an extended arithmetic type? (arithmetic or enum) + + @param t: (C++: type_t) + +Help on function is_type_ext_integral in module ida_typeinf: + +is_type_ext_integral(*args) -> 'bool' + is_type_ext_integral(t) -> bool + Is the type an extended integral type? (integral or enum) + + @param t: (C++: type_t) + +Help on function is_type_float in module ida_typeinf: + +is_type_float(*args) -> 'bool' + is_type_float(t) -> bool + See BTF_FLOAT. + + @param t: (C++: type_t) + +Help on function is_type_floating in module ida_typeinf: + +is_type_floating(*args) -> 'bool' + is_type_floating(t) -> bool + Is the type a floating point type? + + @param t: (C++: type_t) + +Help on function is_type_func in module ida_typeinf: + +is_type_func(*args) -> 'bool' + is_type_func(t) -> bool + See BT_FUNC. + + @param t: (C++: type_t) + +Help on function is_type_int in module ida_typeinf: + +is_type_int(*args) -> 'bool' + is_type_int(bt) -> bool + Does the type_t specify one of the basic types in Basic type: integer? + + @param bt: (C++: type_t) + +Help on function is_type_int128 in module ida_typeinf: + +is_type_int128(*args) -> 'bool' + is_type_int128(t) -> bool + Does the type specify a 128-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_int16 in module ida_typeinf: + +is_type_int16(*args) -> 'bool' + is_type_int16(t) -> bool + Does the type specify a 16-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_int32 in module ida_typeinf: + +is_type_int32(*args) -> 'bool' + is_type_int32(t) -> bool + Does the type specify a 32-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_int64 in module ida_typeinf: + +is_type_int64(*args) -> 'bool' + is_type_int64(t) -> bool + Does the type specify a 64-bit value? (signed or unsigned, see Basic type: + integer) + + @param t: (C++: type_t) + +Help on function is_type_integral in module ida_typeinf: + +is_type_integral(*args) -> 'bool' + is_type_integral(t) -> bool + Is the type an integral type (char/short/int/long/bool)? + + @param t: (C++: type_t) + +Help on function is_type_ldouble in module ida_typeinf: + +is_type_ldouble(*args) -> 'bool' + is_type_ldouble(t) -> bool + See BTF_LDOUBLE. + + @param t: (C++: type_t) + +Help on function is_type_paf in module ida_typeinf: + +is_type_paf(*args) -> 'bool' + is_type_paf(t) -> bool + Is the type a pointer, array, or function type? + + @param t: (C++: type_t) + +Help on function is_type_partial in module ida_typeinf: + +is_type_partial(*args) -> 'bool' + is_type_partial(t) -> bool + Identifies an unknown or void type with a known size (see Basic type: unknown & + void) + + @param t: (C++: type_t) + +Help on function is_type_ptr in module ida_typeinf: + +is_type_ptr(*args) -> 'bool' + is_type_ptr(t) -> bool + See BT_PTR. + + @param t: (C++: type_t) + +Help on function is_type_ptr_or_array in module ida_typeinf: + +is_type_ptr_or_array(*args) -> 'bool' + is_type_ptr_or_array(t) -> bool + Is the type a pointer or array type? + + @param t: (C++: type_t) + +Help on function is_type_struct in module ida_typeinf: + +is_type_struct(*args) -> 'bool' + is_type_struct(t) -> bool + See BTF_STRUCT. + + @param t: (C++: type_t) + +Help on function is_type_struni in module ida_typeinf: + +is_type_struni(*args) -> 'bool' + is_type_struni(t) -> bool + Is the type a struct or union? + + @param t: (C++: type_t) + +Help on function is_type_sue in module ida_typeinf: + +is_type_sue(*args) -> 'bool' + is_type_sue(t) -> bool + Is the type a struct/union/enum? + + @param t: (C++: type_t) + +Help on function is_type_tbyte in module ida_typeinf: + +is_type_tbyte(*args) -> 'bool' + is_type_tbyte(t) -> bool + See BTF_FLOAT. + + @param t: (C++: type_t) + +Help on function is_type_typedef in module ida_typeinf: + +is_type_typedef(*args) -> 'bool' + is_type_typedef(t) -> bool + See BTF_TYPEDEF. + + @param t: (C++: type_t) + +Help on function is_type_uchar in module ida_typeinf: + +is_type_uchar(*args) -> 'bool' + is_type_uchar(t) -> bool + See BTF_UCHAR. + + @param t: (C++: type_t) + +Help on function is_type_uint in module ida_typeinf: + +is_type_uint(*args) -> 'bool' + is_type_uint(t) -> bool + See BTF_UINT. + + @param t: (C++: type_t) + +Help on function is_type_uint128 in module ida_typeinf: + +is_type_uint128(*args) -> 'bool' + is_type_uint128(t) -> bool + See BTF_UINT128. + + @param t: (C++: type_t) + +Help on function is_type_uint16 in module ida_typeinf: + +is_type_uint16(*args) -> 'bool' + is_type_uint16(t) -> bool + See BTF_UINT16. + + @param t: (C++: type_t) + +Help on function is_type_uint32 in module ida_typeinf: + +is_type_uint32(*args) -> 'bool' + is_type_uint32(t) -> bool + See BTF_UINT32. + + @param t: (C++: type_t) + +Help on function is_type_uint64 in module ida_typeinf: + +is_type_uint64(*args) -> 'bool' + is_type_uint64(t) -> bool + See BTF_UINT64. + + @param t: (C++: type_t) + +Help on function is_type_union in module ida_typeinf: + +is_type_union(*args) -> 'bool' + is_type_union(t) -> bool + See BTF_UNION. + + @param t: (C++: type_t) + +Help on function is_type_unknown in module ida_typeinf: + +is_type_unknown(*args) -> 'bool' + is_type_unknown(t) -> bool + See BT_UNKNOWN. + + @param t: (C++: type_t) + +Help on function is_type_void in module ida_typeinf: + +is_type_void(*args) -> 'bool' + is_type_void(t) -> bool + See BTF_VOID. + + @param t: (C++: type_t) + +Help on function is_type_volatile in module ida_typeinf: + +is_type_volatile(*args) -> 'bool' + is_type_volatile(t) -> bool + See BTM_VOLATILE. + + @param t: (C++: type_t) + +Help on function is_typeid_last in module ida_typeinf: + +is_typeid_last(*args) -> 'bool' + is_typeid_last(t) -> bool + Is the type_t the last byte of type declaration? (there are no additional bytes + after a basic type, see _BT_LAST_BASIC) + + @param t: (C++: type_t) + +Help on function is_user_cc in module ida_typeinf: + +is_user_cc(*args) -> 'bool' + is_user_cc(cm) -> bool + Does the calling convention specify argument locations explicitly? + + @param cm: (C++: cm_t) + +Help on function is_vararg_cc in module ida_typeinf: + +is_vararg_cc(*args) -> 'bool' + is_vararg_cc(cm) -> bool + Does the calling convention use ellipsis? + + @param cm: (C++: cm_t) + +Help on function lexcompare_tinfo in module ida_typeinf: + +lexcompare_tinfo(*args) -> 'int' + lexcompare_tinfo(t1, t2, arg3) -> int + + @param t1: uint32 + @param t2: uint32 + @param arg3: int + +Help on function load_til in module ida_typeinf: + +load_til(*args) -> 'qstring *' + load_til(name, tildir=None) -> til_t + Load til from a file without adding it to the database list (see also add_til). + Failure to load base tils are reported into 'errbuf'. They do not prevent + loading of the main til. + + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @param tildir: (C++: const char *) directory where to load the til from. nullptr means default til + subdirectories. + @return: pointer to resulting til, nullptr if failed and error message is in + errbuf + +Help on function load_til_header in module ida_typeinf: + +load_til_header(*args) -> 'qstring *' + load_til_header(tildir, name) -> til_t + Get human-readable til description. + + @param tildir: (C++: const char *) char const * + @param name: (C++: const char *) char const * + +Help on function lower_type in module ida_typeinf: + +lower_type(*args) -> 'int' + lower_type(til, tif, name=None, _helper=None) -> int + Lower type. Inspect the type and lower all function subtypes using + lower_func_type(). + We call the prototypes usually encountered in source files "high level" + They may have implicit arguments, array arguments, big structure retvals, etc + We introduce explicit arguments (i.e. 'this' pointer) and call the result + "low level prototype". See FTI_HIGH. + + In order to improve heuristics for recognition of big structure retvals, + it is recommended to pass a helper that will be used to make decisions. + That helper will be used only for lowering 'tif', and not for the children + types walked through by recursion. + @retval 1: removed FTI_HIGH, + @retval 2: made substantial changes + @retval -1: failure + + @param til: (C++: til_t *) + @param tif: (C++: tinfo_t *) + @param name: (C++: const char *) char const * + @param _helper: (C++: lowertype_helper_t *) + +Help on class lowertype_helper_t in module ida_typeinf: + +class lowertype_helper_t(builtins.object) + | Proxy of C++ lowertype_helper_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_lowertype_helper_t(...) + | delete_lowertype_helper_t(self) + | + | func_has_stkframe_hole(self, *args) -> 'bool' + | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & + | + | get_func_purged_bytes(self, *args) -> 'int' + | get_func_purged_bytes(self, candidate, candidate_data) -> int + | + | @param candidate: tinfo_t const & + | @param candidate_data: func_type_data_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function new_til in module ida_typeinf: + +new_til(*args) -> 'til_t *' + new_til(name, desc) -> til_t + Initialize a til. + + @param name: (C++: const char *) char const * + @param desc: (C++: const char *) char const * + +Help on function next_named_type in module ida_typeinf: + +next_named_type(*args) -> 'char const *' + next_named_type(ti, name, ntf_flags) -> char const * + Enumerate types. + + @param ti: (C++: const til_t *) type library. nullptr means the local type library for the current + database. + @param name: (C++: const char *) the current name. the name that follows this one will be returned. + @param ntf_flags: (C++: int) combination of Flags for named types + @return: Type or symbol names, depending of ntf_flags. Returns mangled names. + Never returns anonymous types. To include them, enumerate types by + ordinals. + +Help on function optimize_argloc in module ida_typeinf: + +optimize_argloc(*args) -> 'bool' + optimize_argloc(vloc, size, gaps) -> bool + Verify and optimize scattered argloc into simple form. All new arglocs must be + processed by this function. + @retval true: success + @retval false: the input argloc was illegal + + @param vloc: (C++: argloc_t *) + @param size: (C++: int) + @param gaps: (C++: const rangeset_t *) rangeset_t const * + +Help on function pack_idcobj_to_bv in module ida_typeinf: + +pack_idcobj_to_bv(*args) -> 'error_t' + pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + Write a typed idc object to the byte vector. Byte vector may be non-empty, this + function will append data to it + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: relobj_t *) + @param objoff: (C++: void *) + @param pio_flags: (C++: int) + +Help on function pack_idcobj_to_idb in module ida_typeinf: + +pack_idcobj_to_idb(*args) -> 'error_t' + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t + Write a typed idc object to the database. + + @param obj: (C++: const idc_value_t *) idc_value_t const * + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param pio_flags: (C++: int) + +Help on function pack_object_to_bv in module ida_typeinf: + +pack_object_to_bv(*args) -> 'PyObject *' + pack_object_to_bv(py_obj, ti, type, fields, base_ea, pio_flags=0) -> PyObject * + Packs a typed object to a string + + @param py_obj: PyObject * + @param ti: Type info. 'None' can be passed. + @param type: type_t const * + @param fields: fields string (may be empty or None) + @param base_ea: base ea used to relocate the pointers in the packed object + @param pio_flags: flags used while unpacking + @return: tuple(0, err_code) on failure + tuple(1, packed_buf) on success + +Help on function pack_object_to_idb in module ida_typeinf: + +pack_object_to_idb(*args) -> 'PyObject *' + pack_object_to_idb(py_obj, ti, type, fields, ea, pio_flags=0) -> PyObject * + Write a typed object to the database. + Raises an exception if wrong parameters were passed or conversion fails + Returns the error_t returned by idaapi.pack_object_to_idb + + @param py_obj: PyObject * + @param ti: Type info. 'None' can be passed. + @param type: type_t const * + @param fields: fields string (may be empty or None) + @param ea: ea to be used while packing + @param pio_flags: flags used while unpacking + +Help on function parse_decl in module ida_typeinf: + +parse_decl(*args) -> 'qstring *' + parse_decl(tif, til, decl, flags) -> str + Parse ONE declaration. If the input string contains more than one declaration, + the first complete type declaration (PT_TYP) or the last variable declaration + (PT_VAR) will be used. + @note: name & tif may be empty after the call! + + @param tif: (C++: tinfo_t *) type info + @param til: (C++: til_t *) type library to use. may be nullptr + @param decl: (C++: const char *) C declaration to parse + @param flags: (C++: int) combination of Type parsing flags bits + @retval true: ok + @retval false: declaration is bad, the error message is displayed if !PT_SIL + +Help on function parse_decls in module ida_typeinf: + +parse_decls(*args) -> 'int' + parse_decls(til, input, printer, hti_flags) -> int + Parse many declarations and store them in a til. If there are any errors, they + will be printed using 'printer'. This function uses default include path and + predefined macros from the database settings. It always uses the HTI_DCL bit. + + @param til: (C++: til_t *) type library to store the result + @param input: (C++: const char *) input string or file name (see hti_flags) + @param printer: (C++: printer_t *) function to output error messages (use msg or nullptr or your + own callback) + @param hti_flags: (C++: int) combination of Type formatting flags + @return: number of errors, 0 means ok. + +Help on class predicate_t in module ida_typeinf: + +class predicate_t(builtins.object) + | Proxy of C++ predicate_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> predicate_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_predicate_t(...) + | delete_predicate_t(self) + | + | should_display(self, *args) -> 'bool' + | should_display(self, til, name, type, fields) -> bool + | + | @param til: til_t const * + | @param name: char const * + | @param type: type_t const * + | @param fields: p_list const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function print_argloc in module ida_typeinf: + +print_argloc(*args) -> 'size_t' + print_argloc(vloc, size=0, vflags=0) -> str + Convert an argloc to human readable form. + + @param vloc: (C++: const argloc_t &) argloc_t const & + @param size: (C++: int) + @param vflags: (C++: int) + +Help on function print_decls in module ida_typeinf: + +print_decls(*args) -> 'PyObject *' + print_decls(printer, til, py_ordinals, flags) -> int + Print types (and possibly their dependencies) in a format suitable for using in + a header file. This is the reverse parse_decls(). + + @param printer: (C++: text_sink_t &) a handler for printing text + @param til: (C++: til_t *) the type library holding the ordinals + @param py_ordinals: ordinals of types to export. nullptr means: all ordinals in til + @param pdf_flags: (C++: uint32) flags for the algorithm. A combination of PDF_ constants + @retval >0: the number of types exported + @retval 0: an error occurred + @retval <0: the negated number of types exported. There were minor errors and + the resulting output might not be compilable. + +Help on function print_tinfo in module ida_typeinf: + +print_tinfo(*args) -> 'qstring *' + print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str + + @param prefix: char const * + @param indent: int + @param cmtindent: int + @param flags: int + @param tif: tinfo_t const * + @param name: char const * + @param cmt: char const * + +Help on function print_type in module ida_typeinf: + +print_type(*args) -> 'qstring *' + print_type(ea, prtype_flags) -> str + Get type declaration for the specified address. + + @param ea: (C++: ea_t) address + @param prtype_flags: (C++: int) combination of Type printing flags + @return: success + +Help on class ptr_type_data_t in module ida_typeinf: + +class ptr_type_data_t(builtins.object) + | Proxy of C++ ptr_type_data_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: ptr_type_data_t const & + | + | __init__(self, *args) + | __init__(self, c=tinfo_t(), bps=0, p=tinfo_t(), d=0) -> ptr_type_data_t + | + | @param c: tinfo_t + | @param bps: uchar + | @param p: tinfo_t + | @param d: int32 + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: ptr_type_data_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_ptr_type_data_t(...) + | delete_ptr_type_data_t(self) + | + | is_code_ptr(self, *args) -> 'bool' + | is_code_ptr(self) -> bool + | Are we pointing to code? + | + | is_shifted(self, *args) -> 'bool' + | is_shifted(self) -> bool + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Set this = r and r = this. + | + | @param r: (C++: ptr_type_data_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | based_ptr_size + | based_ptr_size + | + | closure + | closure + | + | delta + | delta + | + | obj_type + | obj_type + | + | parent + | parent + | + | taptr_bits + | taptr_bits + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function read_tinfo_bitfield_value in module ida_typeinf: + +read_tinfo_bitfield_value(*args) -> 'uint64' + read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 + + @param typid: uint32 + @param v: uint64 + @param bitoff: int + +Help on class reginfovec_t in module ida_typeinf: + +class reginfovec_t(builtins.object) + | Proxy of C++ qvector< reg_info_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & + | + | __getitem__(self, *args) -> 'reg_info_t const &' + | __getitem__(self, i) -> reg_info_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> reginfovec_t + | __init__(self, x) -> reginfovec_t + | + | @param x: qvector< reg_info_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< reg_info_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: reg_info_t const & + | + | __swig_destroy__ = delete_reginfovec_t(...) + | delete_reginfovec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: reg_info_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: reg_info_t const & + | + | append = push_back(self, *args) -> 'reg_info_t &' + | + | at = __getitem__(self, *args) -> 'reg_info_t const &' + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_info_t >::const_iterator' + | begin(self) -> reg_info_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< reg_info_t >::const_iterator' + | end(self) -> reg_info_t + | + | erase(self, *args) -> 'qvector< reg_info_t >::iterator' + | erase(self, it) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | + | erase(self, first, last) -> reg_info_t + | + | @param first: qvector< reg_info_t >::iterator + | @param last: qvector< reg_info_t >::iterator + | + | extract(self, *args) -> 'reg_info_t *' + | extract(self) -> reg_info_t + | + | find(self, *args) -> 'qvector< reg_info_t >::const_iterator' + | find(self, x) -> reg_info_t + | + | @param x: reg_info_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_info_t()) + | + | @param x: reg_info_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: reg_info_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: reg_info_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< reg_info_t >::iterator' + | insert(self, it, x) -> reg_info_t + | + | @param it: qvector< reg_info_t >::iterator + | @param x: reg_info_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_info_t &' + | push_back(self, x) + | + | @param x: reg_info_t const & + | + | push_back(self) -> reg_info_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: reg_info_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< reg_info_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class regobj_t in module ida_typeinf: + +class regobj_t(builtins.object) + | Proxy of C++ regobj_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regobj_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regobj_t(...) + | delete_regobj_t(self) + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | regidx + | regidx + | + | relocate + | relocate + | + | thisown + | The membership flag + | + | value + | value + +Help on class regobjs_t in module ida_typeinf: + +class regobjs_t(regobjvec_t) + | Proxy of C++ regobjs_t class. + | + | Method resolution order: + | regobjs_t + | regobjvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> regobjs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_regobjs_t(...) + | delete_regobjs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from regobjvec_t: + | + | __getitem__(self, *args) -> 'regobj_t const &' + | __getitem__(self, i) -> regobj_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & + | + | at(self, *args) -> 'regobj_t const &' + | at(self, _idx) -> regobj_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' + | begin(self) -> regobj_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regobj_t >::const_iterator' + | end(self) -> regobj_t + | + | erase(self, *args) -> 'qvector< regobj_t >::iterator' + | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | + | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator + | + | extract(self, *args) -> 'regobj_t *' + | extract(self) -> regobj_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regobj_t >::iterator' + | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regobj_t &' + | push_back(self, x) + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regobj_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from regobjvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class regobjvec_t in module ida_typeinf: + +class regobjvec_t(builtins.object) + | Proxy of C++ qvector< regobj_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'regobj_t const &' + | __getitem__(self, i) -> regobj_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> regobjvec_t + | __init__(self, x) -> regobjvec_t + | + | @param x: qvector< regobj_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: regobj_t const & + | + | __swig_destroy__ = delete_regobjvec_t(...) + | delete_regobjvec_t(self) + | + | at(self, *args) -> 'regobj_t const &' + | at(self, _idx) -> regobj_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< regobj_t >::const_iterator' + | begin(self) -> regobj_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< regobj_t >::const_iterator' + | end(self) -> regobj_t + | + | erase(self, *args) -> 'qvector< regobj_t >::iterator' + | erase(self, it) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | + | erase(self, first, last) -> regobj_t + | + | @param first: qvector< regobj_t >::iterator + | @param last: qvector< regobj_t >::iterator + | + | extract(self, *args) -> 'regobj_t *' + | extract(self) -> regobj_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=regobj_t()) + | + | @param x: regobj_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: regobj_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< regobj_t >::iterator' + | insert(self, it, x) -> regobj_t + | + | @param it: qvector< regobj_t >::iterator + | @param x: regobj_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'regobj_t &' + | push_back(self, x) + | + | @param x: regobj_t const & + | + | push_back(self) -> regobj_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: regobj_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< regobj_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function remove_abi_opts in module ida_typeinf: + +remove_abi_opts(*args) -> 'bool' + remove_abi_opts(abi_opts, user_level=False) -> bool + + @param abi_opts: char const * + @param user_level: bool + +Help on function remove_pointer in module ida_typeinf: + +remove_pointer(*args) -> 'tinfo_t' + remove_pointer(tif) -> tinfo_t + + @param BT_PTR: If the current type is a pointer, return the pointed object. If the + current type is not a pointer, return the current type. See also + get_ptrarr_object() and get_pointed_object() + +Help on function remove_tinfo_pointer in module ida_typeinf: + +remove_tinfo_pointer(*args) -> 'PyObject *' + remove_tinfo_pointer(tif, name, til) -> (bool, NoneType), (bool, str) + Remove pointer of a type. (i.e. convert "char *" into "char"). Optionally remove + the "lp" (or similar) prefix of the input name. If the input type is not a + pointer, then fail. + + @param tif: (C++: tinfo_t *) + @param name: char const * + @param til: (C++: const til_t *) til_t const * + +Help on function replace_ordinal_typerefs in module ida_typeinf: + +replace_ordinal_typerefs(*args) -> 'int' + replace_ordinal_typerefs(til, tif) -> int + Replace references to ordinal types by name references. This function 'unties' + the type from the current local type library and makes it easier to export it. + + @param til: (C++: til_t *) type library to use. may be nullptr. + @param tif: (C++: tinfo_t *) type to modify (in/out) + @retval number: of replaced subtypes, -1 on failure + +Help on function resolve_typedef in module ida_typeinf: + +resolve_typedef(*args) -> 'type_t const *' + resolve_typedef(til, type) -> type_t const * + + @param til: til_t const * + @param type: type_t const * + +Help on class rrel_t in module ida_typeinf: + +class rrel_t(builtins.object) + | Proxy of C++ rrel_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> rrel_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_rrel_t(...) + | delete_rrel_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | off + | off + | + | reg + | reg + | + | thisown + | The membership flag + +Help on function save_tinfo in module ida_typeinf: + +save_tinfo(*args) -> 'tinfo_code_t' + save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t + + @param tif: tinfo_t * + @param til: til_t * + @param ord: size_t + @param name: char const * + @param ntf_flags: int + +Help on class scattered_aloc_t in module ida_typeinf: + +class scattered_aloc_t(argpartvec_t) + | Proxy of C++ scattered_aloc_t class. + | + | Method resolution order: + | scattered_aloc_t + | argpartvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> scattered_aloc_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_scattered_aloc_t(...) + | delete_scattered_aloc_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from argpartvec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __getitem__(self, *args) -> 'argpart_t const &' + | __getitem__(self, i) -> argpart_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< argpart_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: argpart_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: argpart_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: argpart_t const & + | + | at(self, *args) -> 'argpart_t const &' + | at(self, _idx) -> argpart_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< argpart_t >::const_iterator' + | begin(self) -> argpart_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< argpart_t >::const_iterator' + | end(self) -> argpart_t + | + | erase(self, *args) -> 'qvector< argpart_t >::iterator' + | erase(self, it) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | + | erase(self, first, last) -> argpart_t + | + | @param first: qvector< argpart_t >::iterator + | @param last: qvector< argpart_t >::iterator + | + | extract(self, *args) -> 'argpart_t *' + | extract(self) -> argpart_t + | + | find(self, *args) -> 'qvector< argpart_t >::const_iterator' + | find(self, x) -> argpart_t + | + | @param x: argpart_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=argpart_t()) + | + | @param x: argpart_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: argpart_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: argpart_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< argpart_t >::iterator' + | insert(self, it, x) -> argpart_t + | + | @param it: qvector< argpart_t >::iterator + | @param x: argpart_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'argpart_t &' + | push_back(self, x) + | + | @param x: argpart_t const & + | + | push_back(self) -> argpart_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: argpart_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< argpart_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from argpartvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from argpartvec_t: + | + | __hash__ = None + +Help on function score_tinfo in module ida_typeinf: + +score_tinfo(*args) -> 'uint32' + score_tinfo(tif) -> uint32 + + @param tif: tinfo_t const * + +Help on function serialize_tinfo in module ida_typeinf: + +serialize_tinfo(*args) -> 'bool' + serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool + + @param type: qtype * + @param fields: qtype * + @param fldcmts: qtype * + @param tif: tinfo_t const * + @param sudt_flags: int + +Help on function set_abi_name in module ida_typeinf: + +set_abi_name(*args) -> 'bool' + set_abi_name(abiname, user_level=False) -> bool + Set abi name (see Compiler IDs) + + @param abiname: (C++: const char *) char const * + @param user_level: (C++: bool) + +Help on function set_c_header_path in module ida_typeinf: + +set_c_header_path(*args) -> 'void' + set_c_header_path(incdir) + Set include directory path the target compiler. + + @param incdir: (C++: const char *) char const * + +Help on function set_c_macros in module ida_typeinf: + +set_c_macros(*args) -> 'void' + set_c_macros(macros) + Set predefined macros for the target compiler. + + @param macros: (C++: const char *) char const * + +Help on function set_compiler in module ida_typeinf: + +set_compiler(*args) -> 'bool' + set_compiler(cc, flags, abiname=None) -> bool + Change current compiler. + + @param cc: (C++: const compiler_info_t &) compiler to switch to + @param flags: (C++: int) Set compiler flags + @param abiname: (C++: const char *) ABI name + @return: success + +Help on function set_compiler_id in module ida_typeinf: + +set_compiler_id(*args) -> 'bool' + set_compiler_id(id, abiname=None) -> bool + Set the compiler id (see Compiler IDs) + + @param id: (C++: comp_t) + @param abiname: (C++: const char *) char const * + +Help on function set_compiler_string in module ida_typeinf: + +set_compiler_string(*args) -> 'bool' + set_compiler_string(compstr, user_level) -> bool + + @param compstr: (C++: const char *) - compiler description in form <abbr>:<abiname> + @param user_level: (C++: bool) - initiated by user if TRUE + @return: success + +Help on function set_numbered_type in module ida_typeinf: + +set_numbered_type(*args) -> 'tinfo_code_t' + set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + Store a type in the til. 'name' may be nullptr for anonymous types. The + specified ordinal must be free (no other type is using it). For ntf_flags, only + NTF_REPLACE is consulted. + + @param ti: (C++: til_t *) + @param ordinal: (C++: uint32) + @param ntf_flags: (C++: int) + @param name: (C++: const char *) char const * + @param type: (C++: const type_t *) type_t const * + @param fields: (C++: const p_list *) p_list const * + @param cmt: (C++: const char *) char const * + @param fldcmts: (C++: const p_list *) p_list const * + @param sclass: (C++: const sclass_t *) sclass_t const * + +Help on function set_tinfo_attr in module ida_typeinf: + +set_tinfo_attr(*args) -> 'bool' + set_tinfo_attr(tif, ta, may_overwrite) -> bool + + @param tif: tinfo_t * + @param ta: type_attr_t const & + @param may_overwrite: bool + +Help on function set_tinfo_attrs in module ida_typeinf: + +set_tinfo_attrs(*args) -> 'bool' + set_tinfo_attrs(tif, ta) -> bool + + @param tif: tinfo_t * + @param ta: type_attrs_t * + +Help on function set_tinfo_property in module ida_typeinf: + +set_tinfo_property(*args) -> 'size_t' + set_tinfo_property(tif, sta_prop, x) -> size_t + + @param tif: tinfo_t * + @param sta_prop: int + @param x: size_t + +Help on function set_type_alias in module ida_typeinf: + +set_type_alias(*args) -> 'bool' + set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + Create a type alias. Redirects all references to source type to the destination + type. This is equivalent to instantaneous replacement all reference to srctype + by dsttype. + + @param ti: (C++: til_t *) + @param src_ordinal: (C++: uint32) + @param dst_ordinal: (C++: uint32) + +Help on function set_vftable_ea in module ida_typeinf: + +set_vftable_ea(*args) -> 'bool' + set_vftable_ea(ordinal, vftable_ea) -> bool + Set the address of a vftable instance for a vftable type. + + @param ordinal: (C++: uint32) ordinal number of the corresponding vftable type. + @param vftable_ea: (C++: ea_t) address of a virtual function table. + @return: success + +Help on class simd_info_t in module ida_typeinf: + +class simd_info_t(builtins.object) + | Proxy of C++ simd_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | + | @param nm: char const * + | @param sz: uint16 + | @param memt: type_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_simd_info_t(...) + | delete_simd_info_t(self) + | + | match_pattern(self, *args) -> 'bool' + | match_pattern(self, pattern) -> bool + | + | @param pattern: simd_info_t const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | memtype + | memtype + | + | name + | name + | + | size + | size + | + | thisown + | The membership flag + | + | tif + | tif + +Help on class stkarg_area_info_t in module ida_typeinf: + +class stkarg_area_info_t(builtins.object) + | Proxy of C++ stkarg_area_info_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> stkarg_area_info_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_stkarg_area_info_t(...) + | delete_stkarg_area_info_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cb + | cb + | + | linkage_area + | linkage_area + | + | shadow_size + | shadow_size + | + | stkarg_offset + | stkarg_offset + | + | thisown + | The membership flag + +Help on function store_til in module ida_typeinf: + +store_til(*args) -> 'bool' + store_til(ti, tildir, name) -> bool + Store til to a file. If the til contains garbage, it will be collected before + storing the til. Your plugin should call compact_til() before calling + store_til(). + + @param ti: (C++: til_t *) type library to store + @param tildir: (C++: const char *) directory where to store the til. nullptr means current + directory. + @param name: (C++: const char *) filename of the til. If it's an absolute path, tildir is ignored. + * NB: the file extension is forced to .til + @return: success + +Help on function switch_to_golang in module ida_typeinf: + +switch_to_golang(*args) -> 'void' + switch_to_golang() + switch to GOLANG calling convention (to be used as default CC) + +Help on class text_sink_t in module ida_typeinf: + +class text_sink_t(builtins.object) + | Proxy of C++ text_sink_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> text_sink_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_text_sink_t(...) + | delete_text_sink_t(self) + | + | _print(self, *args) -> 'int' + | _print(self, str) -> int + | + | Parameters + | ---------- + | str: char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class til_symbol_t in module ida_typeinf: + +class til_symbol_t(builtins.object) + | Proxy of C++ til_symbol_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, n=None, t=None) -> til_symbol_t + | + | @param n: char const * + | @param t: til_t const * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_til_symbol_t(...) + | delete_til_symbol_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | name + | name + | + | thisown + | The membership flag + | + | til + | til + +Help on class til_t in module ida_typeinf: + +class til_t(builtins.object) + | Proxy of C++ til_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> til_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_til_t(...) + | delete_til_t(self) + | + | base(self, *args) -> 'til_t *' + | base(self, n) -> til_t + | tils that our til is based on + | + | @param n: int + | + | is_dirty(self, *args) -> 'bool' + | is_dirty(self) -> bool + | Has the til been modified? (TIL_MOD) + | + | set_dirty(self, *args) -> 'void' + | set_dirty(self) + | Mark the til as modified (TIL_MOD) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cc + | cc + | + | desc + | desc + | + | flags + | flags + | + | name + | name + | + | nbases + | nbases + | + | nrefs + | nrefs + | + | nstreams + | nstreams + | + | streams + | streams + | + | thisown + | The membership flag + +Help on class tinfo_t in module ida_typeinf: + +class tinfo_t(builtins.object) + | Proxy of C++ tinfo_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __init__(self, *args) + | __init__(self) -> tinfo_t + | __init__(self, decl_type) -> tinfo_t + | + | @param decl_type: type_t + | + | __init__(self, r) -> tinfo_t + | + | @param r: tinfo_t const & + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: tinfo_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) -> 'qstring' + | __str__(self) -> qstring + | + | __swig_destroy__ = delete_tinfo_t(...) + | delete_tinfo_t(self) + | + | _print(self, *args) -> 'bool' + | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool + | + | Parameters + | ---------- + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * + | + | append_covered(self, *args) -> 'bool' + | append_covered(self, out, offset=0) -> bool + | Calculate set of covered bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer. covered bytes will be appended to it. + | @param offset: (C++: uint64) delta in bytes to add to all calculations. used internally during + | recurion. + | + | calc_gaps(self, *args) -> 'bool' + | calc_gaps(self, out) -> bool + | Calculate set of padding bytes for the type + | + | @param out: (C++: rangeset_t *) pointer to the output buffer; old buffer contents will be lost. + | + | calc_purged_bytes(self, *args) -> 'int' + | calc_purged_bytes(self) -> int + | + | calc_score(self, *args) -> 'uint32' + | calc_score(self) -> uint32 + | Calculate the type score (the higher - the nicer is the type) + | + | calc_udt_aligns(self, *args) -> 'bool' + | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | Calculate the udt alignments using the field offsets/sizes and the total udt + | size This function does not work on typerefs + | + | @param sudt_flags: (C++: int) + | + | change_sign(self, *args) -> 'bool' + | change_sign(self, sign) -> bool + | Change the type sign. Works only for the types that may have sign. + | + | @param sign: (C++: type_sign_t) + | + | clear(self, *args) -> 'void' + | clear(self) + | Clear contents of this tinfo, and remove from the type system. + | + | clr_const(self, *args) -> 'void' + | clr_const(self) + | + | clr_const_volatile(self, *args) -> 'void' + | clr_const_volatile(self) + | + | clr_volatile(self, *args) -> 'void' + | clr_volatile(self) + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | + | @param r: tinfo_t const & + | + | compare_with(self, *args) -> 'bool' + | compare_with(self, r, tcflags=0) -> bool + | Compare two types, based on given flags (see tinfo_t comparison flags) + | + | @param r: (C++: const tinfo_t &) tinfo_t const & + | @param tcflags: (C++: int) + | + | convert_array_to_ptr(self, *args) -> 'bool' + | convert_array_to_ptr(self) -> bool + | Convert an array into a pointer. type[] => type * + | + | copy(self, *args) -> 'tinfo_t' + | copy(self) -> tinfo_t + | + | create_array(self, *args) -> 'bool' + | create_array(self, p, decl_type=BT_ARRAY) -> bool + | + | @param p: array_type_data_t const & + | @param decl_type: type_t + | + | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | + | @param tif: tinfo_t const & + | @param nelems: uint32 + | @param base: uint32 + | @param decl_type: type_t + | + | create_bitfield(self, *args) -> 'bool' + | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | + | @param p: bitfield_type_data_t const & + | @param decl_type: type_t + | + | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | + | @param nbytes: uchar + | @param width: uchar + | @param is_unsigned: bool + | @param decl_type: type_t + | + | create_enum(self, *args) -> 'bool' + | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | + | @param p: enum_type_data_t & + | @param decl_type: type_t + | + | create_forward_decl(self, *args) -> 'tinfo_code_t' + | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | Create a forward declaration. decl_type: BTF_STRUCT, BTF_UNION, or BTF_ENUM + | + | @param til: (C++: til_t *) + | @param decl_type: (C++: type_t) + | @param name: (C++: const char *) char const * + | @param ntf_flags: (C++: int) + | + | create_func(self, *args) -> 'bool' + | create_func(self, p, decl_type=BT_FUNC) -> bool + | + | @param p: func_type_data_t & + | @param decl_type: type_t + | + | create_ptr(self, *args) -> 'bool' + | create_ptr(self, p, decl_type=BT_PTR) -> bool + | + | @param p: ptr_type_data_t const & + | @param decl_type: type_t + | + | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | + | @param tif: tinfo_t const & + | @param bps: uchar + | @param decl_type: type_t + | + | create_simple_type(self, *args) -> 'bool' + | create_simple_type(self, decl_type) -> bool + | + | @param decl_type: type_t + | + | create_typedef(self, *args) -> 'void' + | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | + | @param p: typedef_type_data_t const & + | @param decl_type: type_t + | @param try_ordinal: bool + | + | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | + | @param til: til_t const * + | @param name: char const * + | @param decl_type: type_t + | @param try_ordinal: bool + | + | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | + | @param til: til_t const * + | @param ord: uint + | @param decl_type: type_t + | + | create_udt(self, *args) -> 'bool' + | create_udt(self, p, decl_type) -> bool + | + | @param p: udt_type_data_t & + | @param decl_type: type_t + | + | del_attr(self, *args) -> 'bool' + | del_attr(self, key, make_copy=True) -> bool + | Del a type attribute. typerefs cannot be modified by this function. + | + | @param key: (C++: const qstring &) qstring const & + | @param make_copy: (C++: bool) + | + | del_attrs(self, *args) -> 'void' + | del_attrs(self) + | Del all type attributes. typerefs cannot be modified by this function. + | + | deserialize(self, *args) -> 'bool' + | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | Deserialize a type string into a tinfo_t object. + | + | @param til: (C++: const til_t *) til_t const * + | @param ptype: (C++: const qtype *) type_t const ** + | @param pfields: (C++: const qtype *) p_list const ** + | @param pfldcmts: (C++: const qtype *) p_list const ** + | + | deserialize(self, til, type, fields, cmts=None) -> bool + | + | @param til: til_t const * + | @param type: type_t const * + | @param fields: p_list const * + | @param cmts: p_list const * + | + | dstr(self, *args) -> 'char const *' + | dstr(self) -> char const * + | Function to facilitate debugging. + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | Was tinfo_t initialized with some type info or not? + | + | equals_to(self, *args) -> 'bool' + | equals_to(self, r) -> bool + | + | @param r: tinfo_t const & + | + | find_udt_member(self, *args) -> 'int' + | find_udt_member(self, udm, strmem_flags) -> int + | BTF_STRUCT,BTF_UNION: Find a udt member. + | * at the specified offset (STRMEM_OFFSET) + | * with the specified index (STRMEM_INDEX) + | * with the specified type (STRMEM_TYPE) + | * with the specified name (STRMEM_NAME) + | + | @param udm: (C++: struct udt_member_t *) udt_member_t * + | @param strmem_flags: (C++: int) + | @return: the index of the found member or -1 + | + | get_array_details(self, *args) -> 'bool' + | get_array_details(self, ai) -> bool + | Get the array specific info. + | + | @param ai: (C++: array_type_data_t *) + | + | get_array_element(self, *args) -> 'tinfo_t' + | get_array_element(self) -> tinfo_t + | + | get_array_nelems(self, *args) -> 'int' + | get_array_nelems(self) -> int + | + | get_attr(self, *args) -> 'PyObject *' + | get_attr(self, key, all_attrs=True) -> str or None + | Get a type attribute. + | + | @param key: (C++: const qstring &) qstring const & + | @param all_attrs: (C++: bool) + | + | get_attrs(self, *args) -> 'bool' + | get_attrs(self, tav, all_attrs=False) -> bool + | Get type attributes (all_attrs: include attributes of referenced types, if any) + | + | @param tav: (C++: type_attrs_t *) + | @param all_attrs: (C++: bool) + | + | get_bitfield_details(self, *args) -> 'bool' + | get_bitfield_details(self, bi) -> bool + | Get the bitfield specific info. + | + | @param bi: (C++: bitfield_type_data_t *) + | + | get_declalign(self, *args) -> 'uchar' + | get_declalign(self) -> uchar + | Get declared alignment of the type. + | + | get_decltype(self, *args) -> 'type_t' + | get_decltype(self) -> type_t + | Get declared type (without resolving type references; they are returned as is). + | Obviously this is a very fast function and should be used instead of + | get_realtype() if possible. + | + | get_enum_base_type(self, *args) -> 'type_t' + | get_enum_base_type(self) -> type_t + | Get enum base type (convert enum to integer type) Returns BT_UNK if failed to + | convert + | + | get_enum_details(self, *args) -> 'bool' + | get_enum_details(self, ei) -> bool + | Get the enum specific info. + | + | @param ei: (C++: enum_type_data_t *) + | + | get_final_ordinal(self, *args) -> 'uint32' + | get_final_ordinal(self) -> uint32 + | Get final type ordinal (0 is none) + | + | get_final_type_name(self, *args) -> 'bool' + | get_final_type_name(self) -> bool + | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the last type in the chain (TYPEn). if there is no chain, + | returns TYPE1 + | + | get_func_details(self, *args) -> 'bool' + | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | Get only the function specific info for this tinfo_t. + | + | @param fi: (C++: func_type_data_t *) + | @param gtd: (C++: gtd_func_t) enum gtd_func_t + | + | get_methods(self, *args) -> 'bool' + | get_methods(self, methods) -> bool + | + | @param BT_COMPLEX: get a list of member functions declared in this udt. + | @return: false if no member functions exist + | + | get_modifiers(self, *args) -> 'type_t' + | get_modifiers(self) -> type_t + | + | get_named_type(self, *args) -> 'bool' + | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | Create a tinfo_t object for an existing named type. + | + | @param til: (C++: const til_t *) type library to use + | @param name: (C++: const char *) name of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. + | the kernel will accept only the specified tag after resolving + | the type. If the resolved type does not correspond to the + | explicitly specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code. + | @param try_ordinal: (C++: bool) true: try to replace name reference by an ordinal reference + | + | get_nargs(self, *args) -> 'int' + | get_nargs(self) -> int + | BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error) + | + | get_next_type_name(self, *args) -> 'bool' + | get_next_type_name(self) -> bool + | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). + | + | @return: the name of the next type in the chain (TYPE2). if there is no chain, + | returns failure + | + | get_nth_arg(self, *args) -> 'tinfo_t' + | get_nth_arg(self, n) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see + | get_rettype()) + | + | @param n: (C++: int) + | + | get_numbered_type(self, *args) -> 'bool' + | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | Create a tinfo_t object for an existing ordinal type. + | + | @param til: (C++: const til_t *) type library to use + | @param ordinal: (C++: uint32) number of the type to link to + | @param decl_type: (C++: type_t) if the reference was explicitly specified with the type tag + | (BTF_STRUCT/BTF_UNION/BTF_ENUM) you may specify it. the kernel + | will accept only the specified tag after resolving the type. + | If the resolved type does not correspond to the explicitly + | specified tag, the type will be considered as undefined + | @param resolve: (C++: bool) true: immediately resolve the type and return success code + | + | get_onemember_type(self, *args) -> 'tinfo_t' + | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the member. + | + | get_ordinal(self, *args) -> 'uint32' + | get_ordinal(self) -> uint32 + | Get type ordinal (only if the type was created as a numbered type, 0 if none) + | + | get_pointed_object(self, *args) -> 'tinfo_t' + | get_pointed_object(self) -> tinfo_t + | + | get_ptr_details(self, *args) -> 'bool' + | get_ptr_details(self, pi) -> bool + | Get the pointer info. + | + | @param pi: (C++: ptr_type_data_t *) + | + | get_ptrarr_object(self, *args) -> 'tinfo_t' + | get_ptrarr_object(self) -> tinfo_t + | BT_PTR & BT_ARRAY: get the pointed object or array element. If the current type + | is not a pointer or array, return empty type info. + | + | get_ptrarr_objsize(self, *args) -> 'int' + | get_ptrarr_objsize(self) -> int + | BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns + | -1 + | + | get_realtype(self, *args) -> 'type_t' + | get_realtype(self, full=False) -> type_t + | Get the resolved base type. Deserialization options: + | * if full=true, the referenced type will be deserialized fully, this may not + | always be desirable (slows down things) + | * if full=false, we just return the base type, the referenced type will be + | resolved again later if necessary (this may lead to multiple resolvings of the + | same type) imho full=false is a better approach because it does not perform + | unnecessary actions just in case. however, in some cases the caller knows that + | it is very likely that full type info will be required. in those cases full=true + | makes sense + | + | @param full: (C++: bool) + | + | get_rettype(self, *args) -> 'tinfo_t' + | get_rettype(self) -> tinfo_t + | BT_FUNC or BT_PTR BT_FUNC: Get the function's return type + | + | get_sign(self, *args) -> 'type_sign_t' + | get_sign(self) -> type_sign_t + | Get type sign. + | + | get_size(self, *args) -> 'size_t' + | get_size(self, p_effalign=None, gts_code=0) -> size_t + | Get the type size in bytes. + | + | @param p_effalign: (C++: uint32 *) buffer for the alignment value + | @param gts_code: (C++: int) combination of GTS_... constants + | @return: BADSIZE in case of problems + | + | get_til(self, *args) -> 'til_t const *' + | get_til(self) -> til_t + | Get the type library for tinfo_t. + | + | get_type_name(self, *args) -> 'bool' + | get_type_name(self) -> bool + | Does a type refer to a name?. If yes, fill the provided buffer with the type + | name and return true. Names are returned for numbered types too: either a user- + | defined nice name or, if a user-provided name does not exist, an ordinal name + | (like #xx, see create_numbered_type_name()). + | + | get_udt_details(self, *args) -> 'bool' + | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | Get the udt specific info. + | + | @param udt: (C++: udt_type_data_t *) + | @param gtd: (C++: gtd_udt_t) enum gtd_udt_t + | + | get_udt_nmembers(self, *args) -> 'int' + | get_udt_nmembers(self) -> int + | Get number of udt members. -1-error. + | + | get_unpadded_size(self, *args) -> 'size_t' + | get_unpadded_size(self) -> size_t + | Get the type size in bytes without the final padding, in bytes. For some UDTs + | get_unpadded_size() != get_size() + | + | has_details(self, *args) -> 'bool' + | has_details(self) -> bool + | Does this type refer to a nontrivial type? + | + | has_vftable(self, *args) -> 'bool' + | has_vftable(self) -> bool + | Has a vftable? + | + | is_anonymous_udt(self, *args) -> 'bool' + | is_anonymous_udt(self) -> bool + | Is an anonymous struct/union? We assume that types with names are anonymous if + | the name starts with $ + | + | is_arithmetic(self, *args) -> 'bool' + | is_arithmetic(self) -> bool + | is_type_arithmetic(get_realtype()) + | + | is_array(self, *args) -> 'bool' + | is_array(self) -> bool + | is_type_array(get_realtype()) + | + | is_bitfield(self, *args) -> 'bool' + | is_bitfield(self) -> bool + | is_type_bitfld(get_realtype()) + | + | is_bool(self, *args) -> 'bool' + | is_bool(self) -> bool + | is_type_bool(get_realtype()) + | + | is_castable_to(self, *args) -> 'bool' + | is_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & + | + | is_char(self, *args) -> 'bool' + | is_char(self) -> bool + | is_type_char(get_realtype()) + | + | is_complex(self, *args) -> 'bool' + | is_complex(self) -> bool + | is_type_complex(get_realtype()) + | + | is_const(self, *args) -> 'bool' + | is_const(self) -> bool + | is_type_const(get_realtype()) + | + | is_correct(self, *args) -> 'bool' + | is_correct(self) -> bool + | Is the type object correct?. It is possible to create incorrect types. For + | example, we can define a function that returns a enum and then delete the enum + | type. If this function returns false, the type should not be used in + | disassembly. Please note that this function does not verify all involved types: + | for example, pointers to undefined types are permitted. + | + | is_decl_array(self, *args) -> 'bool' + | is_decl_array(self) -> bool + | is_type_array(get_decltype()) + | + | is_decl_bitfield(self, *args) -> 'bool' + | is_decl_bitfield(self) -> bool + | is_type_bitfld(get_decltype()) + | + | is_decl_bool(self, *args) -> 'bool' + | is_decl_bool(self) -> bool + | is_type_bool(get_decltype()) + | + | is_decl_char(self, *args) -> 'bool' + | is_decl_char(self) -> bool + | is_type_char(get_decltype()) + | + | is_decl_complex(self, *args) -> 'bool' + | is_decl_complex(self) -> bool + | is_type_complex(get_decltype()) + | + | is_decl_const(self, *args) -> 'bool' + | is_decl_const(self) -> bool + | is_type_const(get_decltype()) + | + | is_decl_double(self, *args) -> 'bool' + | is_decl_double(self) -> bool + | is_type_double(get_decltype()) + | + | is_decl_enum(self, *args) -> 'bool' + | is_decl_enum(self) -> bool + | is_type_enum(get_decltype()) + | + | is_decl_float(self, *args) -> 'bool' + | is_decl_float(self) -> bool + | is_type_float(get_decltype()) + | + | is_decl_floating(self, *args) -> 'bool' + | is_decl_floating(self) -> bool + | is_type_floating(get_decltype()) + | + | is_decl_func(self, *args) -> 'bool' + | is_decl_func(self) -> bool + | is_type_func(get_decltype()) + | + | is_decl_int(self, *args) -> 'bool' + | is_decl_int(self) -> bool + | is_type_int(get_decltype()) + | + | is_decl_int128(self, *args) -> 'bool' + | is_decl_int128(self) -> bool + | is_type_int128(get_decltype()) + | + | is_decl_int16(self, *args) -> 'bool' + | is_decl_int16(self) -> bool + | is_type_int16(get_decltype()) + | + | is_decl_int32(self, *args) -> 'bool' + | is_decl_int32(self) -> bool + | is_type_int32(get_decltype()) + | + | is_decl_int64(self, *args) -> 'bool' + | is_decl_int64(self) -> bool + | is_type_int64(get_decltype()) + | + | is_decl_last(self, *args) -> 'bool' + | is_decl_last(self) -> bool + | is_typeid_last(get_decltype()) + | + | is_decl_ldouble(self, *args) -> 'bool' + | is_decl_ldouble(self) -> bool + | is_type_ldouble(get_decltype()) + | + | is_decl_paf(self, *args) -> 'bool' + | is_decl_paf(self) -> bool + | is_type_paf(get_decltype()) + | + | is_decl_partial(self, *args) -> 'bool' + | is_decl_partial(self) -> bool + | is_type_partial(get_decltype()) + | + | is_decl_ptr(self, *args) -> 'bool' + | is_decl_ptr(self) -> bool + | is_type_ptr(get_decltype()) + | + | is_decl_struct(self, *args) -> 'bool' + | is_decl_struct(self) -> bool + | is_type_struct(get_decltype()) + | + | is_decl_sue(self, *args) -> 'bool' + | is_decl_sue(self) -> bool + | is_type_sue(get_decltype()) + | + | is_decl_tbyte(self, *args) -> 'bool' + | is_decl_tbyte(self) -> bool + | is_type_tbyte(get_decltype()) + | + | is_decl_typedef(self, *args) -> 'bool' + | is_decl_typedef(self) -> bool + | is_type_typedef(get_decltype()) + | + | is_decl_uchar(self, *args) -> 'bool' + | is_decl_uchar(self) -> bool + | is_type_uchar(get_decltype()) + | + | is_decl_udt(self, *args) -> 'bool' + | is_decl_udt(self) -> bool + | is_type_struni(get_decltype()) + | + | is_decl_uint(self, *args) -> 'bool' + | is_decl_uint(self) -> bool + | is_type_uint(get_decltype()) + | + | is_decl_uint128(self, *args) -> 'bool' + | is_decl_uint128(self) -> bool + | is_type_uint128(get_decltype()) + | + | is_decl_uint16(self, *args) -> 'bool' + | is_decl_uint16(self) -> bool + | is_type_uint16(get_decltype()) + | + | is_decl_uint32(self, *args) -> 'bool' + | is_decl_uint32(self) -> bool + | is_type_uint32(get_decltype()) + | + | is_decl_uint64(self, *args) -> 'bool' + | is_decl_uint64(self) -> bool + | is_type_uint64(get_decltype()) + | + | is_decl_union(self, *args) -> 'bool' + | is_decl_union(self) -> bool + | is_type_union(get_decltype()) + | + | is_decl_unknown(self, *args) -> 'bool' + | is_decl_unknown(self) -> bool + | is_type_unknown(get_decltype()) + | + | is_decl_void(self, *args) -> 'bool' + | is_decl_void(self) -> bool + | is_type_void(get_decltype()) + | + | is_decl_volatile(self, *args) -> 'bool' + | is_decl_volatile(self) -> bool + | is_type_volatile(get_decltype()) + | + | is_double(self, *args) -> 'bool' + | is_double(self) -> bool + | is_type_double(get_realtype()) + | + | is_empty_udt(self, *args) -> 'bool' + | is_empty_udt(self) -> bool + | Is an empty struct/union? (has no fields) + | + | is_enum(self, *args) -> 'bool' + | is_enum(self) -> bool + | is_type_enum(get_realtype()) + | + | is_ext_arithmetic(self, *args) -> 'bool' + | is_ext_arithmetic(self) -> bool + | is_type_ext_arithmetic(get_realtype()) + | + | is_ext_integral(self, *args) -> 'bool' + | is_ext_integral(self) -> bool + | is_type_ext_integral(get_realtype()) + | + | is_float(self, *args) -> 'bool' + | is_float(self) -> bool + | is_type_float(get_realtype()) + | + | is_floating(self, *args) -> 'bool' + | is_floating(self) -> bool + | is_type_floating(get_realtype()) + | + | is_forward_decl(self, *args) -> 'bool' + | is_forward_decl(self) -> bool + | Is this a forward declaration?. Forward declarations are placeholders: the type + | definition does not exist + | + | is_from_subtil(self, *args) -> 'bool' + | is_from_subtil(self) -> bool + | Was the named type found in some base type library (not the top level type + | library)?. If yes, it usually means that the type comes from some loaded type + | library, not the local type library for the database + | + | is_func(self, *args) -> 'bool' + | is_func(self) -> bool + | is_type_func(get_realtype()) + | + | is_funcptr(self, *args) -> 'bool' + | is_funcptr(self) -> bool + | Is this pointer to a function? + | + | is_high_func(self, *args) -> 'bool' + | is_high_func(self) -> bool + | + | is_int(self, *args) -> 'bool' + | is_int(self) -> bool + | is_type_int(get_realtype()) + | + | is_int128(self, *args) -> 'bool' + | is_int128(self) -> bool + | is_type_int128(get_realtype()) + | + | is_int16(self, *args) -> 'bool' + | is_int16(self) -> bool + | is_type_int16(get_realtype()) + | + | is_int32(self, *args) -> 'bool' + | is_int32(self) -> bool + | is_type_int32(get_realtype()) + | + | is_int64(self, *args) -> 'bool' + | is_int64(self) -> bool + | is_type_int64(get_realtype()) + | + | is_integral(self, *args) -> 'bool' + | is_integral(self) -> bool + | is_type_integral(get_realtype()) + | + | is_ldouble(self, *args) -> 'bool' + | is_ldouble(self) -> bool + | is_type_ldouble(get_realtype()) + | + | is_manually_castable_to(self, *args) -> 'bool' + | is_manually_castable_to(self, target) -> bool + | + | @param target: tinfo_t const & + | + | is_one_fpval(self, *args) -> 'bool' + | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member entirely. + | + | is_paf(self, *args) -> 'bool' + | is_paf(self) -> bool + | is_type_paf(get_realtype()) + | + | is_partial(self, *args) -> 'bool' + | is_partial(self) -> bool + | is_type_partial(get_realtype()) + | + | is_ptr(self, *args) -> 'bool' + | is_ptr(self) -> bool + | is_type_ptr(get_realtype()) + | + | is_ptr_or_array(self, *args) -> 'bool' + | is_ptr_or_array(self) -> bool + | is_type_ptr_or_array(get_realtype()) + | + | is_purging_cc(self, *args) -> 'bool' + | is_purging_cc(self) -> bool + | is_purging_cc(get_cc()) + | + | is_pvoid(self, *args) -> 'bool' + | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and type + | modifiers. + | + | is_scalar(self, *args) -> 'bool' + | is_scalar(self) -> bool + | Does the type represent a single number? + | + | is_shifted_ptr(self, *args) -> 'bool' + | is_shifted_ptr(self) -> bool + | Is a shifted pointer? + | + | is_signed(self, *args) -> 'bool' + | is_signed(self) -> bool + | Is this a signed type? + | + | is_small_udt(self, *args) -> 'bool' + | is_small_udt(self) -> bool + | Is a small udt? (can fit a register or a pair of registers) + | + | is_sse_type(self, *args) -> 'bool' + | is_sse_type(self) -> bool + | Is a SSE vector type? + | + | is_struct(self, *args) -> 'bool' + | is_struct(self) -> bool + | is_type_struct(get_realtype()) + | + | is_sue(self, *args) -> 'bool' + | is_sue(self) -> bool + | is_type_sue(get_realtype()) + | + | is_tbyte(self, *args) -> 'bool' + | is_tbyte(self) -> bool + | is_type_tbyte(get_realtype()) + | + | is_typeref(self, *args) -> 'bool' + | is_typeref(self) -> bool + | Is this type a type reference?. Type references cannot be modified. Once + | created, they do not change. Because of this, the set_... functions applied to + | typerefs create a new type id. Other types are modified directly. + | + | is_uchar(self, *args) -> 'bool' + | is_uchar(self) -> bool + | is_type_uchar(get_realtype()) + | + | is_udt(self, *args) -> 'bool' + | is_udt(self) -> bool + | is_type_struni(get_realtype()) + | + | is_uint(self, *args) -> 'bool' + | is_uint(self) -> bool + | is_type_uint(get_realtype()) + | + | is_uint128(self, *args) -> 'bool' + | is_uint128(self) -> bool + | is_type_uint128(get_realtype()) + | + | is_uint16(self, *args) -> 'bool' + | is_uint16(self) -> bool + | is_type_uint16(get_realtype()) + | + | is_uint32(self, *args) -> 'bool' + | is_uint32(self) -> bool + | is_type_uint32(get_realtype()) + | + | is_uint64(self, *args) -> 'bool' + | is_uint64(self) -> bool + | is_type_uint64(get_realtype()) + | + | is_union(self, *args) -> 'bool' + | is_union(self) -> bool + | is_type_union(get_realtype()) + | + | is_unknown(self, *args) -> 'bool' + | is_unknown(self) -> bool + | is_type_unknown(get_realtype()) + | + | is_unsigned(self, *args) -> 'bool' + | is_unsigned(self) -> bool + | Is this an unsigned type? + | + | is_user_cc(self, *args) -> 'bool' + | is_user_cc(self) -> bool + | is_user_cc(get_cc()) + | + | is_vararg_cc(self, *args) -> 'bool' + | is_vararg_cc(self) -> bool + | is_vararg_cc(get_cc()) + | + | is_varstruct(self, *args) -> 'bool' + | is_varstruct(self) -> bool + | Is a variable-size structure? + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | Is a vftable type? + | + | is_void(self, *args) -> 'bool' + | is_void(self) -> bool + | is_type_void(get_realtype()) + | + | is_volatile(self, *args) -> 'bool' + | is_volatile(self) -> bool + | is_type_volatile(get_realtype()) + | + | is_well_defined(self, *args) -> 'bool' + | is_well_defined(self) -> bool + | !(empty()) && !(is_decl_partial()) + | + | present(self, *args) -> 'bool' + | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for example) + | + | read_bitfield_value(self, *args) -> 'uint64' + | read_bitfield_value(self, v, bitoff) -> uint64 + | + | @param v: uint64 + | @param bitoff: int + | + | remove_ptr_or_array(self, *args) -> 'bool' + | remove_ptr_or_array(self) -> bool + | Replace the current type with the ptr obj or array element. This function + | performs one of the following conversions: + | * type[] => type + | * type* => type If the conversion is performed successfully, return true + | + | requires_qualifier(self, *args) -> 'bool' + | requires_qualifier(self, name, offset) -> bool + | Requires full qualifier? (name is not unique) + | + | @param name: (C++: const char *) field name + | @param offset: (C++: uint64) field offset in bits + | @return: if the name is not unique, returns true + | + | serialize(self, *args) -> 'PyObject *' + | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> (bytes, NoneType, NoneType), (bytes, bytes, NoneType) + | Serialize tinfo_t object into a type string. + | + | @param sudt_flags: (C++: int) + | + | set_attr(self, *args) -> 'bool' + | set_attr(self, ta, may_overwrite=True) -> bool + | Set a type attribute. If necessary, a new typid will be created. + | + | @param ta: (C++: const type_attr_t &) type_attr_t const & + | @param may_overwrite: (C++: bool) + | + | set_attrs(self, *args) -> 'bool' + | set_attrs(self, tav) -> bool + | Set type attributes. If necessary, a new typid will be created. this function + | modifies tav! (returns old attributes, if any) + | + | @param tav: (C++: type_attrs_t *) + | @return: false: bad attributes + | + | set_const(self, *args) -> 'void' + | set_const(self) + | + | set_declalign(self, *args) -> 'bool' + | set_declalign(self, declalign) -> bool + | Set declared alignment of the type. + | + | @param declalign: (C++: uchar) + | + | set_methods(self, *args) -> 'bool' + | set_methods(self, methods) -> bool + | + | @param BT_COMPLEX: set the list of member functions. This function consumes 'methods' + | (makes it empty). + | @return: false if this type is not a udt, or if the given list is empty + | + | set_modifiers(self, *args) -> 'void' + | set_modifiers(self, mod) + | + | @param mod: type_t + | + | set_named_type(self, *args) -> 'tinfo_code_t' + | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int + | + | set_numbered_type(self, *args) -> 'tinfo_code_t' + | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t + | + | @param til: til_t * + | @param ord: uint32 + | @param ntf_flags: int + | @param name: char const * + | + | set_symbol_type(self, *args) -> 'tinfo_code_t' + | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | + | @param til: til_t * + | @param name: char const * + | @param ntf_flags: int + | + | set_volatile(self, *args) -> 'void' + | set_volatile(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | Assign this = r and r = this. + | + | @param r: (C++: tinfo_t &) + | + | write_bitfield_value(self, *args) -> 'uint64' + | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | + | @param dst: uint64 + | @param v: uint64 + | @param bitoff: int + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | get_stock(*args) -> 'tinfo_t' + | get_stock(id) -> tinfo_t + | Get stock type information. This function can be used to get tinfo_t for some + | common types. The same tinfo_t will be returned for the same id, thus saving + | memory and increasing the speed Please note that retrieving the STI_SIZE_T or + | STI_SSIZE_T stock type, will also have the side-effect of adding that type to + | the 'idati' TIL, under the well-known name 'size_t' or 'ssize_t' (respectively). + | The same is valid for STI_COMPLEX64 and STI_COMPLEX64 stock types with names + | 'complex64_t' and 'complex128_t' (respectively). + | + | @param id: (C++: stock_type_id_t) enum stock_type_id_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function tinfo_t_get_stock in module ida_typeinf: + +tinfo_t_get_stock(*args) -> 'tinfo_t' + tinfo_t_get_stock(id) -> tinfo_t + + @param id: enum stock_type_id_t + +Help on class tinfo_visitor_t in module ida_typeinf: + +class tinfo_visitor_t(builtins.object) + | Proxy of C++ tinfo_visitor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, s=0) -> tinfo_visitor_t + | + | @param s: int + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_tinfo_visitor_t(...) + | delete_tinfo_visitor_t(self) + | + | apply_to(self, *args) -> 'int' + | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | Call this function to initiate the traversal. + | + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param out: (C++: type_mods_t *) + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * + | + | prune_now(self, *args) -> 'void' + | prune_now(self) + | To refuse to visit children of the current type, use this: + | + | visit_type(self, *args) -> 'int' + | visit_type(self, out, tif, name, cmt) -> int + | Visit a subtype. this function must be implemented in the derived class. it may + | optionally fill out with the new type info. this can be used to modify types (in + | this case the 'out' argument of apply_to() may not be nullptr) return 0 to + | continue the traversal. return !=0 to stop the traversal. + | + | @param out: (C++: type_mods_t *) + | @param tif: (C++: const tinfo_t &) tinfo_t const & + | @param name: (C++: const char *) char const * + | @param cmt: (C++: const char *) char const * + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | state + | state + | + | thisown + | The membership flag + +Help on class type_attr_t in module ida_typeinf: + +class type_attr_t(builtins.object) + | Proxy of C++ type_attr_t class. + | + | Methods defined here: + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | + | @param r: type_attr_t const & + | + | __init__(self, *args) + | __init__(self) -> type_attr_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: type_attr_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_type_attr_t(...) + | delete_type_attr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | key + | key + | + | thisown + | The membership flag + | + | value + | value + +Help on class type_attrs_t in module ida_typeinf: + +class type_attrs_t(builtins.object) + | Proxy of C++ qvector< type_attr_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'type_attr_t const &' + | __getitem__(self, i) -> type_attr_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> type_attrs_t + | __init__(self, x) -> type_attrs_t + | + | @param x: qvector< type_attr_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: type_attr_t const & + | + | __swig_destroy__ = delete_type_attrs_t(...) + | delete_type_attrs_t(self) + | + | at(self, *args) -> 'type_attr_t const &' + | at(self, _idx) -> type_attr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< type_attr_t >::const_iterator' + | begin(self) -> type_attr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< type_attr_t >::const_iterator' + | end(self) -> type_attr_t + | + | erase(self, *args) -> 'qvector< type_attr_t >::iterator' + | erase(self, it) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | + | erase(self, first, last) -> type_attr_t + | + | @param first: qvector< type_attr_t >::iterator + | @param last: qvector< type_attr_t >::iterator + | + | extract(self, *args) -> 'type_attr_t *' + | extract(self) -> type_attr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=type_attr_t()) + | + | @param x: type_attr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: type_attr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< type_attr_t >::iterator' + | insert(self, it, x) -> type_attr_t + | + | @param it: qvector< type_attr_t >::iterator + | @param x: type_attr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'type_attr_t &' + | push_back(self, x) + | + | @param x: type_attr_t const & + | + | push_back(self) -> type_attr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: type_attr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< type_attr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on class type_mods_t in module ida_typeinf: + +class type_mods_t(builtins.object) + | Proxy of C++ type_mods_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> type_mods_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_type_mods_t(...) + | delete_type_mods_t(self) + | + | clear(self, *args) -> 'void' + | clear(self) + | + | has_cmt(self, *args) -> 'bool' + | has_cmt(self) -> bool + | + | has_info(self, *args) -> 'bool' + | has_info(self) -> bool + | + | has_name(self, *args) -> 'bool' + | has_name(self) -> bool + | + | has_type(self, *args) -> 'bool' + | has_type(self) -> bool + | + | set_new_cmt(self, *args) -> 'void' + | set_new_cmt(self, c) + | + | @param c: qstring const & + | + | set_new_name(self, *args) -> 'void' + | set_new_name(self, n) + | + | @param n: qstring const & + | + | set_new_type(self, *args) -> 'void' + | set_new_type(self, t) + | The visit_type() function may optionally save the modified type info. Use the + | following functions for that. The new name and comment will be applied only if + | the current tinfo element has storage for them. + | + | @param t: (C++: const tinfo_t &) tinfo_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | flags + | flags + | + | name + | name + | + | thisown + | The membership flag + | + | type + | type + +Help on class typedef_type_data_t in module ida_typeinf: + +class typedef_type_data_t(builtins.object) + | Proxy of C++ typedef_type_data_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param _name: char const * + | @param _resolve: bool + | + | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | + | @param _til: til_t const * + | @param ord: uint32 + | @param _resolve: bool + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_typedef_type_data_t(...) + | delete_typedef_type_data_t(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: typedef_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | is_ordref + | is_ordref + | + | name + | name + | + | ordinal + | ordinal + | + | resolve + | resolve + | + | thisown + | The membership flag + | + | til + | til + +Help on class udt_member_t in module ida_typeinf: + +class udt_member_t(builtins.object) + | Proxy of C++ udt_member_t class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: udt_member_t const & + | + | __init__(self, *args) + | __init__(self) -> udt_member_t + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | + | @param r: udt_member_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: udt_member_t const & + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udt_member_t(...) + | delete_udt_member_t(self) + | + | begin(self, *args) -> 'uint64' + | begin(self) -> uint64 + | + | clr_baseclass(self, *args) -> 'void' + | clr_baseclass(self) + | + | clr_method(self, *args) -> 'void' + | clr_method(self) + | + | clr_unaligned(self, *args) -> 'void' + | clr_unaligned(self) + | + | clr_vftable(self, *args) -> 'void' + | clr_vftable(self) + | + | clr_virtbase(self, *args) -> 'void' + | clr_virtbase(self) + | + | end(self, *args) -> 'uint64' + | end(self) -> uint64 + | + | is_anonymous_udm(self, *args) -> 'bool' + | is_anonymous_udm(self) -> bool + | + | is_baseclass(self, *args) -> 'bool' + | is_baseclass(self) -> bool + | + | is_bitfield(self, *args) -> 'bool' + | is_bitfield(self) -> bool + | + | is_method(self, *args) -> 'bool' + | is_method(self) -> bool + | + | is_unaligned(self, *args) -> 'bool' + | is_unaligned(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | is_virtbase(self, *args) -> 'bool' + | is_virtbase(self) -> bool + | + | is_zero_bitfield(self, *args) -> 'bool' + | is_zero_bitfield(self) -> bool + | + | set_baseclass(self, *args) -> 'void' + | set_baseclass(self) + | + | set_method(self, *args) -> 'void' + | set_method(self) + | + | set_unaligned(self, *args) -> 'void' + | set_unaligned(self) + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | set_virtbase(self, *args) -> 'void' + | set_virtbase(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: udt_member_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cmt + | cmt + | + | effalign + | effalign + | + | fda + | fda + | + | name + | name + | + | offset + | offset + | + | size + | size + | + | tafld_bits + | tafld_bits + | + | thisown + | The membership flag + | + | type + | type + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on class udt_type_data_t in module ida_typeinf: + +class udt_type_data_t(udtmembervec_t) + | Proxy of C++ udt_type_data_t class. + | + | Method resolution order: + | udt_type_data_t + | udtmembervec_t + | udtmembervec_template_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> udt_type_data_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udt_type_data_t(...) + | delete_udt_type_data_t(self) + | + | is_cppobj(self, *args) -> 'bool' + | is_cppobj(self) -> bool + | + | is_last_baseclass(self, *args) -> 'bool' + | is_last_baseclass(self, idx) -> bool + | + | @param idx: size_t + | + | is_msstruct(self, *args) -> 'bool' + | is_msstruct(self) -> bool + | + | is_unaligned(self, *args) -> 'bool' + | is_unaligned(self) -> bool + | + | is_vftable(self, *args) -> 'bool' + | is_vftable(self) -> bool + | + | set_vftable(self, *args) -> 'void' + | set_vftable(self) + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: udt_type_data_t & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | effalign + | effalign + | + | is_union + | is_union + | + | pack + | pack + | + | sda + | sda + | + | taudt_bits + | taudt_bits + | + | thisown + | The membership flag + | + | total_size + | total_size + | + | unpadded_size + | unpadded_size + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_t in module ida_typeinf: + +class udtmembervec_t(udtmembervec_template_t) + | Proxy of C++ udtmembervec_t class. + | + | Method resolution order: + | udtmembervec_t + | udtmembervec_template_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_udtmembervec_t(...) + | delete_udtmembervec_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from udtmembervec_template_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from udtmembervec_template_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes inherited from udtmembervec_template_t: + | + | __hash__ = None + +Help on class udtmembervec_template_t in module ida_typeinf: + +class udtmembervec_template_t(builtins.object) + | Proxy of C++ qvector< udt_member_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __getitem__(self, *args) -> 'udt_member_t const &' + | __getitem__(self, i) -> udt_member_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> udtmembervec_template_t + | __init__(self, x) -> udtmembervec_template_t + | + | @param x: qvector< udt_member_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< udt_member_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: udt_member_t const & + | + | __swig_destroy__ = delete_udtmembervec_template_t(...) + | delete_udtmembervec_template_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: udt_member_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: udt_member_t const & + | + | at(self, *args) -> 'udt_member_t const &' + | at(self, _idx) -> udt_member_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | begin(self) -> udt_member_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | end(self) -> udt_member_t + | + | erase(self, *args) -> 'qvector< udt_member_t >::iterator' + | erase(self, it) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | + | erase(self, first, last) -> udt_member_t + | + | @param first: qvector< udt_member_t >::iterator + | @param last: qvector< udt_member_t >::iterator + | + | extract(self, *args) -> 'udt_member_t *' + | extract(self) -> udt_member_t + | + | find(self, *args) -> 'qvector< udt_member_t >::const_iterator' + | find(self, x) -> udt_member_t + | + | @param x: udt_member_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=udt_member_t()) + | + | @param x: udt_member_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: udt_member_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: udt_member_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< udt_member_t >::iterator' + | insert(self, it, x) -> udt_member_t + | + | @param it: qvector< udt_member_t >::iterator + | @param x: udt_member_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'udt_member_t &' + | push_back(self, x) + | + | @param x: udt_member_t const & + | + | push_back(self) -> udt_member_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: udt_member_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< udt_member_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function unpack_idcobj_from_bv in module ida_typeinf: + +unpack_idcobj_from_bv(*args) -> 'error_t' + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t + Read a typed idc object from the byte vector. + + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param bytes: (C++: const bytevec_t &) bytevec_t const & + @param pio_flags: (C++: int) + +Help on function unpack_idcobj_from_idb in module ida_typeinf: + +unpack_idcobj_from_idb(*args) -> 'error_t' + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t + Collection of register objects. + + Read a typed idc object from the database + + @param obj: (C++: idc_value_t *) + @param tif: (C++: const tinfo_t &) tinfo_t const & + @param ea: (C++: ea_t) + @param off0: (C++: const bytevec_t *) bytevec_t const * + @param pio_flags: (C++: int) + +Help on function unpack_object_from_bv in module ida_typeinf: + +unpack_object_from_bv(*args) -> 'PyObject *' + unpack_object_from_bv(ti, type, fields, bytes, pio_flags=0) -> PyObject * + Unpacks a buffer into an object. + Returns the error_t returned by idaapi.pack_object_to_idb + + @param ti: Type info. 'None' can be passed. + @param type: type_t const * + @param fields: fields string (may be empty or None) + @param bytes: the bytes to unpack + @param pio_flags: flags used while unpacking + @return: - tuple(0, err) on failure + - tuple(1, obj) on success + +Help on function unpack_object_from_idb in module ida_typeinf: + +unpack_object_from_idb(*args) -> 'PyObject *' + unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * + + @param ti: til_t * + @param type: type_t const * + @param fields: p_list const * + @param ea: ea_t + @param pio_flags: int + +Help on function use_golang_cc in module ida_typeinf: + +use_golang_cc(*args) -> 'bool' + use_golang_cc() -> bool + is GOLANG calling convention used by default? + +Help on class valstr_t in module ida_typeinf: + +class valstr_t(builtins.object) + | Proxy of C++ valstr_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> valstr_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_valstr_t(...) + | delete_valstr_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | info + | info + | + | length + | length + | + | members + | members + | + | oneline + | oneline + | + | props + | props + | + | thisown + | The membership flag + +Help on class valstrs_t in module ida_typeinf: + +class valstrs_t(valstrvec_t) + | Proxy of C++ valstrs_t class. + | + | Method resolution order: + | valstrs_t + | valstrvec_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> valstrs_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_valstrs_t(...) + | delete_valstrs_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from valstrvec_t: + | + | __getitem__(self, *args) -> 'valstr_t const &' + | __getitem__(self, i) -> valstr_t + | + | @param i: size_t + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & + | + | at(self, *args) -> 'valstr_t const &' + | at(self, _idx) -> valstr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' + | begin(self) -> valstr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< valstr_t >::const_iterator' + | end(self) -> valstr_t + | + | erase(self, *args) -> 'qvector< valstr_t >::iterator' + | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | + | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator + | + | extract(self, *args) -> 'valstr_t *' + | extract(self) -> valstr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< valstr_t >::iterator' + | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'valstr_t &' + | push_back(self, x) + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< valstr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from valstrvec_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + +Help on class valstrvec_t in module ida_typeinf: + +class valstrvec_t(builtins.object) + | Proxy of C++ qvector< valstr_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'valstr_t const &' + | __getitem__(self, i) -> valstr_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> valstrvec_t + | __init__(self, x) -> valstrvec_t + | + | @param x: qvector< valstr_t > const & + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: valstr_t const & + | + | __swig_destroy__ = delete_valstrvec_t(...) + | delete_valstrvec_t(self) + | + | at(self, *args) -> 'valstr_t const &' + | at(self, _idx) -> valstr_t + | + | @param _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< valstr_t >::const_iterator' + | begin(self) -> valstr_t + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< valstr_t >::const_iterator' + | end(self) -> valstr_t + | + | erase(self, *args) -> 'qvector< valstr_t >::iterator' + | erase(self, it) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | + | erase(self, first, last) -> valstr_t + | + | @param first: qvector< valstr_t >::iterator + | @param last: qvector< valstr_t >::iterator + | + | extract(self, *args) -> 'valstr_t *' + | extract(self) -> valstr_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=valstr_t()) + | + | @param x: valstr_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: valstr_t * + | @param len: size_t + | + | insert(self, *args) -> 'qvector< valstr_t >::iterator' + | insert(self, it, x) -> valstr_t + | + | @param it: qvector< valstr_t >::iterator + | @param x: valstr_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'valstr_t &' + | push_back(self, x) + | + | @param x: valstr_t const & + | + | push_back(self) -> valstr_t + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: valstr_t const & + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< valstr_t > & + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + +Help on function verify_argloc in module ida_typeinf: + +verify_argloc(*args) -> 'int' + verify_argloc(vloc, size, gaps) -> int + Verify argloc_t. + + @param vloc: (C++: const argloc_t &) argloc to verify + @param size: (C++: int) total size of the variable + @param gaps: (C++: const rangeset_t *) if not nullptr, specifies gaps in structure definition. these gaps + should not map to any argloc, but everything else must be covered + @return: 0 if ok, otherwise an interr code. + +Help on function verify_tinfo in module ida_typeinf: + +verify_tinfo(*args) -> 'int' + verify_tinfo(typid) -> int + + @param typid: uint32 + +Help on function visit_subtypes in module ida_typeinf: + +visit_subtypes(*args) -> 'int' + visit_subtypes(visitor, out, tif, name, cmt) -> int + + @param visitor: tinfo_visitor_t * + @param out: type_mods_t * + @param tif: tinfo_t const & + @param name: char const * + @param cmt: char const * + +Help on function write_tinfo_bitfield_value in module ida_typeinf: + +write_tinfo_bitfield_value(*args) -> 'uint64' + write_tinfo_bitfield_value(typid, dst, v, bitoff) -> uint64 + + @param typid: uint32 + @param dst: uint64 + @param v: uint64 + @param bitoff: int + +Module "ida_ua"s docstring: +""" +Functions that deal with the disassembling of program instructions. + +There are 2 kinds of functions: +* functions that are called from the kernel to disassemble an instruction. These +functions call IDP module for it. +* functions that are called from IDP module to disassemble an instruction. We +will call them 'helper functions'. + +Disassembly of an instruction is made in three steps: +1. analysis: ana.cpp +2. emulation: emu.cpp +3. conversion to text: out.cpp + +The kernel calls the IDP module to perform these steps. At first, the kernel +always calls the analysis. The analyzer must decode the instruction and fill the +insn_t instance that it receives through its callback. It must not change +anything in the database. + +The second step, the emulation, is called for each instruction. This step must +make necessary changes to the database, plan analysis of subsequent +instructions, track register values, memory contents, etc. Please keep in mind +that the kernel may call the emulation step for any address in the program - +there is no ordering of addresses. Usually, the emulation is called for +consecutive addresses but this is not guaranteed. + +The last step, conversion to text, is called each time an instruction is +displayed on the screen. The kernel will always call the analysis step before +calling the text conversion step. The emulation and the text conversion steps +should use the information stored in the insn_t instance they receive. They +should not access the bytes of the instruction and decode it again - this should +only be done in the analysis step.""" + +Help on function calc_dataseg in module ida_ua: + +calc_dataseg(*args) -> 'ea_t' + calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + Get data segment for the instruction operand. 'opnum' and 'rgnum' are meaningful + only if the processor has segment registers. + + @param insn: (C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &) + @param n: (C++: int) + @param rgnum: (C++: int) + +Help on function can_decode in module ida_ua: + +can_decode(*args) -> 'bool' + can_decode(ea) -> bool + Can the bytes at address 'ea' be decoded as instruction? + + @param ea: (C++: ea_t) linear address + @return: whether or not the contents at that address could be a valid + instruction + +Help on function construct_macro in module ida_ua: + +construct_macro(*args) -> 'bool' + construct_macro(insn, enable, build_macro) -> bool + See ua.hpp's construct_macro(). + + @param insn: insn_t & + @param enable: bool + @param build_macro: PyObject * + +Help on function construct_macro2 in module ida_ua: + +construct_macro2(*args) -> 'bool' + construct_macro2(_this, insn, enable) -> bool + + @param _this: macro_constructor_t * + @param insn: insn_t * + @param enable: bool + +Help on function create_insn in module ida_ua: + +create_insn(*args) -> 'int' + create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 + +Help on function create_outctx in module ida_ua: + +create_outctx(*args) -> 'outctx_base_t *' + create_outctx(ea, F=0, suspop=0) -> outctx_base_t + Create a new output context. To delete it, just use "delete pctx" + + @param ea: (C++: ea_t) + @param F: (C++: flags64_t) + @param suspop: (C++: int) + +Help on function decode_insn in module ida_ua: + +decode_insn(*args) -> 'int' + decode_insn(out, ea) -> int + Analyze the specified address and fill 'out'. This function does not modify the + database. It just tries to interpret the specified address as an instruction and + fills the 'out' structure. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) linear address + @return: the length of the (possible) instruction or 0 + +Help on function decode_preceding_insn in module ida_ua: + +decode_preceding_insn(*args) -> 'PyObject *' + decode_preceding_insn(out, ea) -> (int, int) + Decodes the preceding instruction. Please check ua.hpp / decode_preceding_insn() + + @param out: instruction storage + @param ea: current ea + @return: tuple(preceeding_ea or BADADDR, farref = Boolean) + +Help on function decode_prev_insn in module ida_ua: + +decode_prev_insn(*args) -> 'ea_t' + decode_prev_insn(out, ea) -> ea_t + Decode previous instruction if it exists, fill 'out'. + + @param out: (C++: insn_t *) the resulting instruction + @param ea: (C++: ea_t) the address to decode the previous instruction from + @return: the previous instruction address (BADADDR-no such insn) + +Help on function get_dtype_by_size in module ida_ua: + +get_dtype_by_size(*args) -> 'int' + get_dtype_by_size(size) -> int + Get op_t::dtype from size. + + @param size: (C++: asize_t) + +Help on function get_dtype_flag in module ida_ua: + +get_dtype_flag(*args) -> 'flags64_t' + get_dtype_flag(dtype) -> flags64_t + Get flags for op_t::dtype field. + + @param dtype: (C++: op_dtype_t) + +Help on function get_dtype_size in module ida_ua: + +get_dtype_size(*args) -> 'size_t' + get_dtype_size(dtype) -> size_t + Get size of opt_::dtype field. + + @param dtype: (C++: op_dtype_t) + +Help on function get_immvals in module ida_ua: + +get_immvals(*args) -> 'PyObject *' + get_immvals(ea, n, F=0) -> [int, ...] + Get immediate values at the specified address. This function decodes instruction + at the specified address or inspects the data item. It finds immediate values + and copies them to 'out'. This function will store the original value of the + operands in 'out', unless the last bits of 'F' are "...0 11111111", in which + case the transformed values (as needed for printing) will be stored instead. + + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) + +Help on function get_lookback in module ida_ua: + +get_lookback(*args) -> 'int' + get_lookback() -> int + Number of instructions to look back. This variable is not used by the kernel. + Its value may be specified in ida.cfg: LOOKBACK = <number>. IDP may use it as + you like it. (TMS module uses it) + +Help on function get_printable_immvals in module ida_ua: + +get_printable_immvals(*args) -> 'PyObject *' + get_printable_immvals(ea, n, F=0) -> PyObject * + Get immediate ready-to-print values at the specified address + + @param ea: (C++: ea_t) address to analyze + @param n: (C++: int) number of operand (0..UA_MAXOP-1), -1 means all operands + @param F: (C++: flags64_t) flags for the specified address + @return: number of immediate values (0..2*UA_MAXOP) + +Help on function insn_add_cref in module ida_ua: + +insn_add_cref(*args) -> 'void' + insn_add_cref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum cref_t + +Help on function insn_add_dref in module ida_ua: + +insn_add_dref(*args) -> 'void' + insn_add_dref(insn, to, opoff, type) + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param to: ea_t + @param opoff: int + @param type: enum dref_t + +Help on function insn_add_off_drefs in module ida_ua: + +insn_add_off_drefs(*args) -> 'ea_t' + insn_add_off_drefs(insn, x, type, outf) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param type: enum dref_t + @param outf: int + +Help on function insn_create_stkvar in module ida_ua: + +insn_create_stkvar(*args) -> 'bool' + insn_create_stkvar(insn, x, v, flags) -> bool + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param x: op_t const & + @param v: adiff_t + @param flags: int + +Help on class insn_t in module ida_ua: + +class insn_t(builtins.object) + | Proxy of C++ insn_t class. + | + | Methods defined here: + | + | __get_auxpref__(self, *args) -> 'uint32' + | __get_auxpref__(self) -> uint32 + | + | __get_operand__(self, *args) -> 'op_t *' + | __get_operand__(self, n) -> op_t + | + | @param n: int + | + | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' + | __get_ops__(self) -> operands_array + | + | __getitem__(self, idx) + | Operands can be accessed directly as indexes + | @return: op_t: Returns an operand of type op_t + | + | __init__(self, *args) + | __init__(self) -> insn_t + | + | __iter__(self) + | + | __repr__ = _swig_repr(self) + | + | __set_auxpref__(self, *args) -> 'void' + | __set_auxpref__(self, v) + | + | @param v: uint32 + | + | __swig_destroy__ = delete_insn_t(...) + | delete_insn_t(self) + | + | add_cref(self, *args) -> 'void' + | add_cref(self, to, opoff, type) + | Add a code cross-reference from the instruction. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction. if the offset + | is unknown, then 0. + | @param type: (C++: cref_t) type of xref + | + | add_dref(self, *args) -> 'void' + | add_dref(self, to, opoff, type) + | Add a data cross-reference from the instruction. See add_off_drefs() - usually + | it can be used in most cases. + | + | @param to: (C++: ea_t) target linear address + | @param opoff: (C++: int) offset of the operand from the start of instruction if the offset + | is unknown, then 0 + | @param type: (C++: dref_t) type of xref + | + | add_off_drefs(self, *args) -> 'ea_t' + | add_off_drefs(self, x, type, outf) -> ea_t + | Add xrefs for an operand of the instruction. This function creates all cross + | references for 'enum', 'offset' and 'structure offset' operands. Use + | add_off_drefs() in the presence of negative offsets. + | + | @param x: (C++: const op_t &) reference to operand + | @param type: (C++: dref_t) type of xref + | @param outf: (C++: int) out_value() flags. These flags should match the flags used to + | output the operand + | @return: if is_off(): the reference target address (the same as + | calc_reference_data). if is_stroff(): BADADDR because for stroffs the + | target address is unknown else: BADADDR because enums do not represent + | addresses + | + | assign(self, *args) -> 'void' + | assign(self, other) + | + | @param other: an ida_ua.insn_t, or an address (C++: const insn_t &) + | + | create_op_data(self, *args) -> 'bool' + | create_op_data(self, ea_, opoff, dtype) -> bool + | Convenient alias. + | + | @param ea_: (C++: ea_t) + | @param opoff: int + | @param dtype: op_dtype_t + | + | create_op_data(self, ea_, op) -> bool + | + | @param ea_: ea_t + | @param op: op_t const & + | + | create_stkvar(self, *args) -> 'bool' + | create_stkvar(self, x, v, flags_) -> bool + | Create or modify a stack variable in the function frame. The emulator could use + | this function to create stack variables in the function frame before converting + | the operand to a stack variable. Please check with may_create_stkvars() before + | calling this function. + | + | @param x: (C++: const op_t &) operand (used to determine the addressing type) + | @param v: (C++: adiff_t) a displacement in the operand + | @param flags_: (C++: int) Stack variable flags + | @retval 1: ok, a stack variable exists now + | @retval 0: no, couldn't create stack variable + | + | get_canon_feature(self, *args) -> 'uint32' + | get_canon_feature(self, ph) -> uint32 + | see instruc_t::feature + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_feature(self) -> uint32 + | + | get_canon_mnem(self, *args) -> 'char const *' + | get_canon_mnem(self, ph) -> char const + | see instruc_t::name + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | get_canon_mnem(self) -> char const * + | + | get_next_byte(self, *args) -> 'uint8' + | get_next_byte(self) -> uint8 + | + | get_next_dword(self, *args) -> 'uint32' + | get_next_dword(self) -> uint32 + | + | get_next_qword(self, *args) -> 'uint64' + | get_next_qword(self) -> uint64 + | + | get_next_word(self, *args) -> 'uint16' + | get_next_word(self) -> uint16 + | + | is_64bit(self, *args) -> 'bool' + | is_64bit(self) -> bool + | Belongs to a 64bit segment? + | + | is_canon_insn(self, *args) -> 'bool' + | is_canon_insn(self, ph) -> bool + | see processor_t::is_canon_insn() + | + | @param ph: (C++: const processor_t &) processor_t const & + | + | is_canon_insn(self) -> bool + | + | is_macro(self, *args) -> 'bool' + | is_macro(self) -> bool + | Is a macro instruction? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | Op1 + | + | Op2 + | + | Op3 + | + | Op4 + | + | Op5 + | + | Op6 + | + | Op7 + | + | Op8 + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | auxpref + | __get_auxpref__(self) -> uint32 + | + | auxpref_u16 + | auxpref_u16 + | + | auxpref_u8 + | auxpref_u8 + | + | cs + | cs + | + | ea + | ea + | + | flags + | flags + | + | insnpref + | insnpref + | + | ip + | ip + | + | itype + | itype + | + | ops + | __get_ops__(self) -> operands_array + | + | segpref + | segpref + | + | size + | size + | + | thisown + | The membership flag + +Help on function insn_t__from_ptrval__ in module ida_ua: + +insn_t__from_ptrval__(*args) -> 'insn_t *' + insn_t__from_ptrval__(ptrval) -> insn_t + + @param ptrval: size_t + +Help on function is_floating_dtype in module ida_ua: + +is_floating_dtype(*args) -> 'bool' + is_floating_dtype(dtype) -> bool + Is a floating type operand? + + @param dtype: (C++: op_dtype_t) + +Help on class macro_constructor_t in module ida_ua: + +class macro_constructor_t(builtins.object) + | Proxy of C++ macro_constructor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> macro_constructor_t + | + | @param self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_macro_constructor_t(...) + | delete_macro_constructor_t(self) + | + | build_macro(self, *args) -> 'bool' + | build_macro(self, insn, may_go_forward) -> bool + | Try to extend the instruction. + | + | @param insn: (C++: insn_t *) Instruction to modify, usually the first instruction of the macro + | @param may_go_forward: (C++: bool) Is it ok to consider the next instruction for the macro? + | This argument may be false, for example, if there is a + | cross reference to the end of INSN. In this case creating + | a macro is not desired. However, it may still be useful + | to perform minor tweaks to the instruction using the + | information about the surrounding instructions. + | @return: true if created an macro instruction. This function may modify 'insn' + | and return false; these changes will be accepted by the kernel but the + | instruction will not be considered as a macro. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | reserved + | reserved + | + | thisown + | The membership flag + +Help on function map_code_ea in module ida_ua: + +map_code_ea(*args) -> 'ea_t' + map_code_ea(insn, addr, opnum) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + + map_code_ea(insn, op) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + +Help on function map_data_ea in module ida_ua: + +map_data_ea(*args) -> 'ea_t' + map_data_ea(insn, addr, opnum=-1) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + + map_data_ea(insn, op) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + +Help on function map_ea in module ida_ua: + +map_ea(*args) -> 'ea_t' + map_ea(insn, op, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op: op_t const & + @param iscode: bool + + map_ea(insn, addr, opnum, iscode) -> ea_t + + @param insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + @param addr: ea_t + @param opnum: int + @param iscode: bool + +Help on class op_t in module ida_ua: + +class op_t(builtins.object) + | Proxy of C++ op_t class. + | + | Methods defined here: + | + | __get_addr__(self, *args) -> 'ea_t' + | __get_addr__(self) -> ea_t + | + | __get_reg_phrase__(self, *args) -> 'uint16' + | __get_reg_phrase__(self) -> uint16 + | + | __get_specval__(self, *args) -> 'ea_t' + | __get_specval__(self) -> ea_t + | + | __get_value64__(self, *args) -> 'uint64' + | __get_value64__(self) -> uint64 + | + | __get_value__(self, *args) -> 'ea_t' + | __get_value__(self) -> ea_t + | + | __init__(self, *args) + | __init__(self) -> op_t + | + | __repr__ = _swig_repr(self) + | + | __set_addr__(self, *args) -> 'void' + | __set_addr__(self, v) + | + | @param v: ea_t + | + | __set_reg_phrase__(self, *args) -> 'void' + | __set_reg_phrase__(self, r) + | + | @param r: uint16 + | + | __set_specval__(self, *args) -> 'void' + | __set_specval__(self, v) + | + | @param v: ea_t + | + | __set_value64__(self, *args) -> 'void' + | __set_value64__(self, v) + | + | @param v: uint64 + | + | __set_value__(self, *args) -> 'void' + | __set_value__(self, v) + | + | @param v: ea_t + | + | __swig_destroy__ = delete_op_t(...) + | delete_op_t(self) + | + | assign(self, *args) -> 'void' + | assign(self, other) + | + | @param other: op_t const & + | + | clr_shown(self, *args) -> 'void' + | clr_shown(self) + | Set operand to hidden. + | + | has_reg(self, r) + | Checks if the operand accesses the given processor register + | + | is_imm(self, *args) -> 'bool' + | is_imm(self, v) -> bool + | Is immediate operand? + | + | @param v: (C++: uval_t) + | + | is_reg(self, *args) -> 'bool' + | is_reg(self, r) -> bool + | Is register operand? + | + | @param r: (C++: int) + | + | set_shown(self, *args) -> 'void' + | set_shown(self) + | Set operand to be shown. + | + | shown(self, *args) -> 'bool' + | shown(self) -> bool + | Is operand set to be shown? + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | addr + | __get_addr__(self) -> ea_t + | + | dtype + | dtype + | + | flags + | flags + | + | n + | n + | + | offb + | offb + | + | offo + | offo + | + | phrase + | __get_reg_phrase__(self) -> uint16 + | + | reg + | __get_reg_phrase__(self) -> uint16 + | + | specflag1 + | specflag1 + | + | specflag2 + | specflag2 + | + | specflag3 + | specflag3 + | + | specflag4 + | specflag4 + | + | specval + | __get_specval__(self) -> ea_t + | + | thisown + | The membership flag + | + | type + | type + | + | value + | __get_value__(self) -> ea_t + | + | value64 + | __get_value64__(self) -> uint64 + +Help on function op_t__from_ptrval__ in module ida_ua: + +op_t__from_ptrval__(*args) -> 'op_t *' + op_t__from_ptrval__(ptrval) -> op_t + + @param ptrval: size_t + +Help on class operands_array in module ida_ua: + +class operands_array(builtins.object) + | Proxy of C++ wrapped_array_t< op_t,8 > class. + | + | Methods defined here: + | + | __getitem__(self, *args) -> 'op_t const &' + | __getitem__(self, i) -> op_t + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self, data) -> operands_array + | + | @param data: op_t (&)[8] + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__(self, *args) -> 'size_t' + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: op_t const & + | + | __swig_destroy__ = delete_operands_array(...) + | delete_operands_array(self) + | + | _get_bytes(self, *args) -> 'bytevec_t' + | _get_bytes(self) -> bytevec_t + | + | _set_bytes(self, *args) -> 'void' + | _set_bytes(self, bts) + | + | Parameters + | ---------- + | bts: bytevec_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | bytes + | _get_bytes(self) -> bytevec_t + | + | data + | data + | + | thisown + | The membership flag + +Help on class outctx_base_t in module ida_ua: + +class outctx_base_t(builtins.object) + | Proxy of C++ outctx_base_t class. + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | close_comment(self, *args) -> 'void' + | close_comment(self) + | + | clr_gen_label(self, *args) -> 'void' + | clr_gen_label(self) + | + | display_voids(self, *args) -> 'bool' + | display_voids(self) -> bool + | + | flush_buf(self, *args) -> 'bool' + | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) + | + | flush_outbuf(self, *args) -> 'bool' + | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) + | + | forbid_annotations(self, *args) -> 'int' + | forbid_annotations(self) -> int + | + | force_code(self, *args) -> 'bool' + | force_code(self) -> bool + | + | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached + | + | gen_border_line(self, *args) -> 'bool' + | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached + | + | gen_cmt_line(self, *args) -> 'bool' + | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_collapsed_line(self, *args) -> 'bool' + | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line(self, *args) -> 'bool' + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line_without_annotations(self, *args) -> 'void' + | gen_empty_line_without_annotations(self) + | + | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached + | + | gen_xref_lines(self, *args) -> 'bool' + | gen_xref_lines(self) -> bool + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * + | + | init_lines_array(self, *args) -> 'void' + | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int + | + | multiline(self, *args) -> 'bool' + | multiline(self) -> bool + | + | only_main_line(self, *args) -> 'bool' + | only_main_line(self) -> bool + | + | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) + | + | out_btoa(self, *args) -> 'void' + | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) + | + | out_char(self, *args) -> 'void' + | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) + | + | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) + | + | out_colored_register_line(self, *args) -> 'void' + | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * + | + | out_keyword(self, *args) -> 'void' + | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * + | + | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) + | + | out_long(self, *args) -> 'void' + | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) + | + | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced + | + | out_printf(self, *args) -> 'void' + | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended + | + | out_register(self, *args) -> 'void' + | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * + | + | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) + | + | out_symbol(self, *args) -> 'void' + | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) + | + | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value + | + | print_label_now(self, *args) -> 'bool' + | print_label_now(self) -> bool + | + | restore_ctxflags(self, *args) -> 'void' + | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int + | + | retrieve_cmt(self, *args) -> 'ssize_t' + | retrieve_cmt(self) -> ssize_t + | + | retrieve_name(self, *args) -> 'ssize_t' + | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * + | + | set_comment_addr(self, *args) -> 'void' + | set_comment_addr(self, ea) + | + | @param ea: ea_t + | + | set_dlbind_opnd(self, *args) -> 'void' + | set_dlbind_opnd(self) + | + | set_gen_cmt(self, *args) -> 'void' + | set_gen_cmt(self, on=True) + | + | @param on: bool + | + | set_gen_demangled_label(self, *args) -> 'void' + | set_gen_demangled_label(self) + | + | set_gen_label(self, *args) -> 'void' + | set_gen_label(self) + | + | set_gen_xrefs(self, *args) -> 'void' + | set_gen_xrefs(self, on=True) + | + | @param on: bool + | + | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, makeline_flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param makeline_flags: (C++: int) + | + | stack_view(self, *args) -> 'bool' + | stack_view(self) -> bool + | + | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | default_lnnum + | default_lnnum + | + | insn_ea + | insn_ea + | + | outbuf + | outbuf + | + | thisown + | The membership flag + +Help on function outctx_base_t__from_ptrval__ in module ida_ua: + +outctx_base_t__from_ptrval__(*args) -> 'outctx_base_t *' + outctx_base_t__from_ptrval__(ptrval) -> outctx_base_t + + @param ptrval: size_t + +Help on class outctx_t in module ida_ua: + +class outctx_t(outctx_base_t) + | Proxy of C++ outctx_t class. + | + | Method resolution order: + | outctx_t + | outctx_base_t + | builtins.object + | + | Methods defined here: + | + | __init__(self, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __repr__ = _swig_repr(self) + | + | gen_func_footer(self, *args) -> 'void' + | gen_func_footer(self, pfn) + | + | @param pfn: func_t const * + | + | gen_func_header(self, *args) -> 'void' + | gen_func_header(self, pfn) + | + | @param pfn: func_t * + | + | gen_header(self, *args) -> 'void' + | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | + | @param flags: int + | @param proc_name: char const * + | @param proc_flavour: char const * + | + | gen_header_extra(self, *args) -> 'void' + | gen_header_extra(self) + | + | gen_xref_lines(self, *args) -> 'bool' + | gen_xref_lines(self) -> bool + | + | out_btoa(self, *args) -> 'void' + | out_btoa(self, Word, radix=0) + | Output a number with the specified base (binary, octal, decimal, hex) The number + | is output without color codes. see also out_long() + | + | @param Word: (C++: uval_t) + | @param radix: (C++: char) + | + | out_custom_mnem(self, *args) -> 'void' + | out_custom_mnem(self, mnem, width=8, postfix=None) + | Output custom mnemonic for 'insn'. E.g. if it should differ from the one in + | 'ph.instruc'. This function outputs colored text. See out_mnem + | + | @param mnem: (C++: const char *) custom mnemonic + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to 'mnem' + | + | out_data(self, *args) -> 'void' + | out_data(self, analyze_only) + | + | @param analyze_only: bool + | + | out_immchar_cmts(self, *args) -> 'void' + | out_immchar_cmts(self) + | Print all operand values as commented character constants. This function is used + | to comment void operands with their representation in the form of character + | constants. This function outputs a colored text. + | + | out_mnem(self, *args) -> 'void' + | out_mnem(self, width=8, postfix=None) + | Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. + | This function outputs a colored text. It should be called from + | processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output + | at least one space after the instruction. mnemonic even if the specified 'width' + | is not enough. + | + | @param width: (C++: int) width of field with mnemonic. if < 0, then 'postfix' will be + | output before the mnemonic, i.e. as a prefix + | @param postfix: (C++: const char *) optional postfix added to the instruction mnemonic + | + | out_mnemonic(self, *args) -> 'void' + | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be called + | from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or + | out_mnem. This function outputs a colored text. + | + | out_one_operand(self, *args) -> 'bool' + | out_one_operand(self, n) -> bool + | Use this function to output an operand of an instruction. This function checks + | for the existence of a manually defined operand and will output it if it exists. + | It should be called from processor_t::ev_out_insn() and it will call + | processor_t::ev_out_operand(). This function outputs a colored text. + | + | @param n: (C++: int) number of operand + | @retval 1: operand is displayed + | @retval 0: operand is hidden + | + | out_specea(self, *args) -> 'bool' + | out_specea(self, segtype) -> bool + | + | @param segtype: uchar + | + | retrieve_cmt(self, *args) -> 'ssize_t' + | retrieve_cmt(self) -> ssize_t + | + | retrieve_name(self, *args) -> 'ssize_t' + | retrieve_name(self, arg2, arg3) -> ssize_t + | + | @param arg2: qstring * + | @param arg3: color_t * + | + | set_bin_state(self, *args) -> 'void' + | set_bin_state(self, value) + | + | @param value: int + | + | setup_outctx(self, *args) -> 'void' + | setup_outctx(self, prefix, flags) + | Initialization; normally used only by the kernel. + | + | @param prefix: (C++: const char *) char const * + | @param flags: int + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | ash + | ash + | + | bin_ea + | bin_ea + | + | bin_state + | bin_state + | + | bin_width + | bin_width + | + | curlabel + | curlabel + | + | gl_bpsize + | gl_bpsize + | + | insn + | insn + | + | ph + | ph + | + | prefix_ea + | prefix_ea + | + | procmod + | procmod + | + | saved_immvals + | saved_immvals + | + | thisown + | The membership flag + | + | wif + | wif + | + | ---------------------------------------------------------------------- + | Methods inherited from outctx_base_t: + | + | close_comment(self, *args) -> 'void' + | close_comment(self) + | + | clr_gen_label(self, *args) -> 'void' + | clr_gen_label(self) + | + | display_voids(self, *args) -> 'bool' + | display_voids(self) -> bool + | + | flush_buf(self, *args) -> 'bool' + | flush_buf(self, buf, indent=-1) -> bool + | Append contents of 'buf' to the line array. Behaves like flush_outbuf but + | accepts an arbitrary buffer + | + | @param buf: (C++: const char *) char const * + | @param indent: (C++: int) + | + | flush_outbuf(self, *args) -> 'bool' + | flush_outbuf(self, indent=-1) -> bool + | Functions to populate the output line array (lnar) Move the contents of the + | output buffer to the line array (outbuf->lnar) The kernel augments the outbuf + | contents with additional text like the line prefix, user-defined comments, + | xrefs, etc at this call. + | + | @param indent: (C++: int) + | + | forbid_annotations(self, *args) -> 'int' + | forbid_annotations(self) -> int + | + | force_code(self, *args) -> 'bool' + | force_code(self) -> bool + | + | gen_block_cmt(self, *args) -> 'bool' + | gen_block_cmt(self, cmt, color) -> bool + | Generate big non-indented comment lines. + | + | @param cmt: (C++: const char *) comment text. may contain \n characters to denote new lines. should + | not contain comment character (;) + | @param color: (C++: color_t) color of comment text (one of Color tags) + | @return: overflow, lnar_maxsize has been reached + | + | gen_border_line(self, *args) -> 'bool' + | gen_border_line(self, solid=False) -> bool + | Generate thin border line. This function does nothing if generation of border + | lines is disabled. + | + | @param solid: (C++: bool) generate solid border line (with =), otherwise with - + | @return: overflow, lnar_maxsize has been reached + | + | gen_cmt_line(self, *args) -> 'bool' + | gen_cmt_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_AUTOCMT. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_collapsed_line(self, *args) -> 'bool' + | gen_collapsed_line(self, format) -> bool + | Generate one non-indented comment line, colored with COLOR_COLLAPSED. + | + | @param format: (C++: const char *) printf() style format line. The resulting comment line should not + | include comment character (;) + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line(self, *args) -> 'bool' + | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty lines is + | disabled. + | + | @return: overflow, lnar_maxsize has been reached + | + | gen_empty_line_without_annotations(self, *args) -> 'void' + | gen_empty_line_without_annotations(self) + | + | gen_printf(self, *args) -> 'bool' + | gen_printf(self, indent, format) -> bool + | printf-like function to add lines to the line array. + | + | @param indent: (C++: int) indention of the line. if indent == -1, the kernel will indent + | the line at idainfo::indent. if indent < 0, -indent will be used + | for indention. The first line printed with indent < 0 is + | considered as the most important line at the current address. + | Usually it is the line with the instruction itself. This line + | will be displayed in the cross-reference lists and other places. + | If you need to output an additional line before the main line + | then pass DEFAULT_INDENT instead of -1. The kernel will know that + | your line is not the most important one. + | @param format: (C++: const char *) printf style colored line to generate + | @return: overflow, lnar_maxsize has been reached + | + | get_stkvar(self, *args) -> 'member_t *' + | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | + | @param arg2: op_t const & + | @param arg3: uval_t + | @param arg4: sval_t * + | @param arg5: int * + | + | init_lines_array(self, *args) -> 'void' + | init_lines_array(self, answers, maxsize) + | + | @param answers: qstrvec_t * + | @param maxsize: int + | + | multiline(self, *args) -> 'bool' + | multiline(self) -> bool + | + | only_main_line(self, *args) -> 'bool' + | only_main_line(self) -> bool + | + | out_addr_tag(self, *args) -> 'void' + | out_addr_tag(self, ea) + | Output "address" escape sequence. + | + | @param ea: (C++: ea_t) + | + | out_char(self, *args) -> 'void' + | out_char(self, c) + | Output one character. The character is output without color codes. see also + | out_symbol() + | + | @param c: (C++: char) + | + | out_chars(self, *args) -> 'void' + | out_chars(self, c, n) + | Append a character multiple times. + | + | @param c: (C++: char) + | @param n: (C++: int) + | + | out_colored_register_line(self, *args) -> 'void' + | out_colored_register_line(self, str) + | Output a colored line with register names in it. The register names will be + | substituted by user-defined names (regvar_t) Please note that out_tagoff tries + | to make substitutions too (when called with COLOR_REG) + | + | @param str: (C++: const char *) char const * + | + | out_keyword(self, *args) -> 'void' + | out_keyword(self, str) + | Output a string with COLOR_KEYWORD color. + | + | @param str: (C++: const char *) char const * + | + | out_line(self, *args) -> 'void' + | out_line(self, str, color=0) + | Output a string with the specified color. + | + | @param str: (C++: const char *) char const * + | @param color: (C++: color_t) + | + | out_long(self, *args) -> 'void' + | out_long(self, v, radix) + | Output a number with appropriate color. Low level function. Use out_value() if + | you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of + | COLOR_NUMBER. 'suspop' is initialized: + | * in out_one_operand() + | * in ..\ida\gl.cpp (before calling processor_t::d_out()) + | + | @param v: (C++: sval_t) value to output + | @param radix: (C++: char) base (2,8,10,16) + | + | out_name_expr(self, *args) -> 'bool' + | out_name_expr(self, x, ea, off=BADADDR) -> bool + | Output a name expression. + | + | @param x: (C++: const op_t &) instruction operand referencing the name expression + | @param ea: (C++: ea_t) address to convert to name expression + | @param off: (C++: adiff_t) the value of name expression. this parameter is used only to check + | that the name expression will have the wanted value. You may pass + | BADADDR for this parameter but I discourage it because it prohibits + | checks. + | @return: true if the name expression has been produced + | + | out_printf(self, *args) -> 'void' + | out_printf(self, format) + | Functions to append text to the current output buffer (outbuf) Append a + | formatted string to the output string. + | + | @param format: (C++: const char *) char const * + | @return: the number of characters appended + | + | out_register(self, *args) -> 'void' + | out_register(self, str) + | Output a character with COLOR_REG color. + | + | @param str: (C++: const char *) char const * + | + | out_spaces(self, *args) -> 'void' + | out_spaces(self, len) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | + | @param len: (C++: ssize_t) + | + | out_symbol(self, *args) -> 'void' + | out_symbol(self, c) + | Output a character with COLOR_SYMBOL color. + | + | @param c: (C++: char) + | + | out_tagoff(self, *args) -> 'void' + | out_tagoff(self, tag) + | Output "turn color off" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_tagon(self, *args) -> 'void' + | out_tagon(self, tag) + | Output "turn color on" escape sequence. + | + | @param tag: (C++: color_t) + | + | out_value(self, *args) -> 'flags64_t' + | out_value(self, x, outf=0) -> flags64_t + | Output immediate value. Try to use this function to output all constants of + | instruction operands. This function outputs a number from x.addr or x.value in + | the form determined by ::uFlag. It outputs a colored text. + | * -1 is output with COLOR_ERROR + | * 0 is output as a number or character or segment + | + | @param x: (C++: const op_t &) value to output + | @param outf: (C++: int) Output value flags + | @return: flags of the output value + | + | print_label_now(self, *args) -> 'bool' + | print_label_now(self) -> bool + | + | restore_ctxflags(self, *args) -> 'void' + | restore_ctxflags(self, saved_flags) + | + | @param saved_flags: int + | + | set_comment_addr(self, *args) -> 'void' + | set_comment_addr(self, ea) + | + | @param ea: ea_t + | + | set_dlbind_opnd(self, *args) -> 'void' + | set_dlbind_opnd(self) + | + | set_gen_cmt(self, *args) -> 'void' + | set_gen_cmt(self, on=True) + | + | @param on: bool + | + | set_gen_demangled_label(self, *args) -> 'void' + | set_gen_demangled_label(self) + | + | set_gen_label(self, *args) -> 'void' + | set_gen_label(self) + | + | set_gen_xrefs(self, *args) -> 'void' + | set_gen_xrefs(self, on=True) + | + | @param on: bool + | + | stack_view(self, *args) -> 'bool' + | stack_view(self) -> bool + | + | term_outctx(self, *args) -> 'int' + | term_outctx(self, prefix=None) -> int + | Finalize the output context. + | + | @param prefix: (C++: const char *) char const * + | @return: the number of generated lines. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from outctx_base_t: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | default_lnnum + | default_lnnum + | + | insn_ea + | insn_ea + | + | outbuf + | outbuf + +Help on function outctx_t__from_ptrval__ in module ida_ua: + +outctx_t__from_ptrval__(*args) -> 'outctx_t *' + outctx_t__from_ptrval__(ptrval) -> outctx_t + + @param ptrval: size_t + +Help on function print_insn_mnem in module ida_ua: + +print_insn_mnem(*args) -> 'qstring *' + print_insn_mnem(ea) -> str + Print instruction mnemonics. + + @param ea: (C++: ea_t) linear address of the instruction + @return: success + +Help on function print_operand in module ida_ua: + +print_operand(*args) -> 'qstring *' + print_operand(ea, n, getn_flags=0, newtype=None) -> str + Generate text representation for operand #n. This function will generate the + text representation of the specified operand (includes color codes.) + + @param ea: (C++: ea_t) the item address (instruction or data) + @param n: (C++: int) operand number (0,1,2...). meaningful only for instructions + @param getn_flags: (C++: int) Name expression flags Currently only GETN_NODUMMY is + accepted. + @param newtype: (C++: struct printop_t *) if specified, print the operand using the specified type + @return: success + +Module "ida_xref"s docstring: +""" +Functions that deal with cross-references. + +There are 2 types of xrefs: CODE and DATA references. All xrefs are kept in the +bTree except ordinary execution flow to the next instruction. Ordinary execution +flow to the next instruction is kept in flags (see bytes.hpp) + +The source address of a cross-reference must be an item head (is_head) or a +structure member id. + +Cross-references are automatically sorted.""" + +Help on function add_cref in module ida_xref: + +add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool + Create a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success + +Help on function add_dref in module ida_xref: + +add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool + Create a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) + +Help on function calc_switch_cases in module ida_xref: + +calc_switch_cases(*args) -> 'cases_and_targets_t *' + calc_switch_cases(ea, si) -> cases_and_targets_t + Get information about a switch's cases. + + The returned information can be used as follows: + + for idx in range(len(results.cases)): + cur_case = results.cases[idx] + for cidx in range(len(cur_case)): + print("case: %d" % cur_case[cidx]) + print(" goto 0x%x" % results.targets[idx]) + + @param ea: address of the 'indirect jump' instruction + @param si: switch information + + @return: a structure with 2 members: 'cases', and 'targets'. + +Help on class cases_and_targets_t in module ida_xref: + +class cases_and_targets_t(builtins.object) + | Proxy of C++ cases_and_targets_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> cases_and_targets_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_cases_and_targets_t(...) + | delete_cases_and_targets_t(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | cases + | cases + | + | targets + | targets + | + | thisown + | The membership flag + +Help on class casevec_t in module ida_xref: + +class casevec_t(builtins.object) + | Proxy of C++ qvector< qvector< sval_t > > class. + | + | Methods defined here: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ + | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ + | + | @param i: size_t + | + | __init__(self, *args) + | __init__(self) -> casevec_t + | __init__(self, x) -> casevec_t + | + | @param x: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | __iter__ = _bounded_getitem_iterator(self) + | Helper function, to be set as __iter__ method for qvector-, or array-based classes. + | + | __len__ = size(self, *args) -> 'size_t' + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | + | @param i: size_t + | @param v: qvector< signed-ea-like-numeric-type > const &↗ + | + | __swig_destroy__ = delete_casevec_t(...) + | delete_casevec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | + | Parameters + | ---------- + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ + | + | at = __getitem__(self, *args) -> 'qvector< signed-ea-like-numeric-type > const &'↗ + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ + | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | begin(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | capacity(self, *args) -> 'size_t' + | capacity(self) -> size_t + | + | clear(self, *args) -> 'void' + | clear(self) + | + | empty(self, *args) -> 'bool' + | empty(self) -> bool + | + | end(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ + | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | end(self) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | erase(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ + | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param last: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | extract(self, *args) -> 'qvector< signed-ea-like-numeric-type > *'↗ + | extract(self) -> qvector< signed-ea-like-numeric-type > *↗ + | + | find(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::const_iterator'↗ + | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | + | @param s: qvector< signed-ea-like-numeric-type > *↗ + | @param len: size_t + | + | insert(self, *args) -> 'qvector< qvector< signed-ea-like-numeric-type > >::iterator'↗ + | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | @param it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ + | push_back(self, x) + | + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | + | @param cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | + | @param _newsize: size_t + | @param x: qvector< signed-ea-like-numeric-type > const &↗ + | + | resize(self, _newsize) + | + | @param _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | + | @param r: qvector< qvector< signed-ea-like-numeric-type > > &↗ + | + | truncate(self, *args) -> 'void' + | truncate(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +Help on function create_switch_table in module ida_xref: + +create_switch_table(*args) -> 'bool' + create_switch_table(ea, si) -> bool + Create switch table from the switch information + + @param ea: address of the 'indirect jump' instruction + @param si: switch information + + @return: Boolean + +Help on function create_switch_xrefs in module ida_xref: + +create_switch_xrefs(*args) -> 'bool' + create_switch_xrefs(ea, si) -> bool + This function creates xrefs from the indirect jump. + + Usually there is no need to call this function directly because the kernel + will call it for switch tables + + Note: Custom switch information are not supported yet. + + @param ea: address of the 'indirect jump' instruction + @param si: switch information + + @return: Boolean + +Help on function del_cref in module ida_xref: + +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool + Delete a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted + +Help on function del_dref in module ida_xref: + +del_dref(*args) -> 'void' + del_dref(frm, to) + Delete a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + +Help on function delete_switch_table in module ida_xref: + +delete_switch_table(*args) -> 'void' + delete_switch_table(jump_ea, si) + + @param jump_ea: ea_t + @param si: switch_info_t const & + +Help on function get_first_cref_from in module ida_xref: + +get_first_cref_from(*args) -> 'ea_t' + get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. + +Help on function get_first_cref_to in module ida_xref: + +get_first_cref_to(*args) -> 'ea_t' + get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. + +Help on function get_first_dref_from in module ida_xref: + +get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t + Get first data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. + +Help on function get_first_dref_to in module ida_xref: + +get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t + Get address of instruction/data referencing to the specified data. + + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. + +Help on function get_first_fcref_from in module ida_xref: + +get_first_fcref_from(*args) -> 'ea_t' + get_first_fcref_from(frm) -> ea_t + + @param from: ea_t + +Help on function get_first_fcref_to in module ida_xref: + +get_first_fcref_to(*args) -> 'ea_t' + get_first_fcref_to(to) -> ea_t + + @param to: ea_t + +Help on function get_next_cref_from in module ida_xref: + +get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t + Get next instruction referenced from the specified instruction. + + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. + +Help on function get_next_cref_to in module ida_xref: + +get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t + Get next instruction referencing to the specified instruction. + + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. + +Help on function get_next_dref_from in module ida_xref: + +get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t + Get next data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. + +Help on function get_next_dref_to in module ida_xref: + +get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t + Get address of instruction/data referencing to the specified data + + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. + +Help on function get_next_fcref_from in module ida_xref: + +get_next_fcref_from(*args) -> 'ea_t' + get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t + +Help on function get_next_fcref_to in module ida_xref: + +get_next_fcref_to(*args) -> 'ea_t' + get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t + +Help on function has_external_refs in module ida_xref: + +has_external_refs(*args) -> 'bool' + has_external_refs(pfn, ea) -> bool + Does 'ea' have references from outside of 'pfn'? + + @param pfn: (C++: func_t *) + @param ea: (C++: ea_t) + +Help on class xrefblk_t in module ida_xref: + +class xrefblk_t(builtins.object) + | Proxy of C++ xrefblk_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> xrefblk_t + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_xrefblk_t(...) + | delete_xrefblk_t(self) + | + | crefs_from(self, ea) + | Provide an iterator on code references from ea including flow references + | + | crefs_to(self, ea) + | Provide an iterator on code references to ea including flow references + | + | drefs_from(self, ea) + | Provide an iterator on data references from ea + | + | drefs_to(self, ea) + | Provide an iterator on data references to ea + | + | fcrefs_from(self, ea) + | Provide an iterator on code references from ea + | + | fcrefs_to(self, ea) + | Provide an iterator on code references to ea + | + | first_from(self, *args) -> 'bool' + | first_from(self, _from, flags) -> bool + | Get first xref from the given address (store in to) + | + | @param _from: (C++: ea_t) + | @param flags: (C++: int) + | + | first_to(self, *args) -> 'bool' + | first_to(self, _to, flags) -> bool + | Get xref to given address (store in from) + | + | @param _to: (C++: ea_t) + | @param flags: (C++: int) + | + | next_from(self, *args) -> 'bool' + | next_from(self) -> bool + | Get xref from '_from' that comes after '_to'. + | next_from(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | next_to(self, *args) -> 'bool' + | next_to(self) -> bool + | Get xref to '_to' that comes after '_from'. + | next_to(self, _from, _to, flags) -> bool + | + | @param _from: ea_t + | @param _to: ea_t + | @param flags: int + | + | refs_from(self, ea, flag) + | Provide an iterator on from reference represented by flag + | + | refs_to(self, ea, flag) + | Provide an iterator on to reference represented by flag + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | frm + | frm + | + | iscode + | iscode + | + | thisown + | The membership flag + | + | to + | to + | + | type + | type + | + | user + | user + +Help on function xrefchar in module ida_xref: + +xrefchar(*args) -> 'char' + xrefchar(xrtype) -> char + Get character describing the xref type. + + @param xrtype: (C++: char) combination of Cross-Reference type flags and a cref_t of dref_t + value + +Module "idc"s docstring: +""" +IDC compatibility module + +This file contains IDA built-in function declarations and internal bit +definitions. Each byte of the program has 32-bit flags (low 8 bits keep +the byte value). These 32 bits are used in get_full_flags/get_flags functions. + +This file is subject to change without any notice. +Future versions of IDA may use other definitions. +""" + +Help on function AddSeg in module idc: + +AddSeg(startea, endea, base, use32, align, comb) + +Help on function AutoMark in module idc: + +AutoMark(ea, qtype) + Plan to analyze an address + +Help on class DeprecatedIDCError in module idc: + +class DeprecatedIDCError(builtins.Exception) + | Exception for deprecated function calls + | + | Method resolution order: + | DeprecatedIDCError + | builtins.Exception + | builtins.BaseException + | builtins.object + | + | Methods defined here: + | + | add_note = dummy_replacement() + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.Exception: + | + | __init__(self, /, *args, **kwargs) + | Initialize self. See help(type(self)) for accurate signature. + | + | __new__(*args, **kwargs) from builtins.type + | Create and return a new object. See help(type) for accurate signature. + | + | ---------------------------------------------------------------------- + | Methods inherited from builtins.BaseException: + | + | __delattr__(self, name, /) + | Implement delattr(self, name). + | + | __getattribute__(self, name, /) + | Return getattr(self, name). + | + | __reduce__(...) + | helper for pickle + | + | __repr__(self, /) + | Return repr(self). + | + | __setattr__(self, name, value, /) + | Implement setattr(self, name, value). + | + | __setstate__(...) + | + | __str__(self, /) + | Return str(self). + | + | with_traceback(...) + | Exception.with_traceback(tb) -- + | set self.__traceback__ to tb and return self. + | + | ---------------------------------------------------------------------- + | Data descriptors inherited from builtins.BaseException: + | + | __cause__ + | exception cause + | + | __context__ + | exception context + | + | __dict__ + | + | __suppress_context__ + | + | __traceback__ + | + | args + +Help on function EVAL_FAILURE in module idc: + +EVAL_FAILURE(code) + Check the result of eval_idc() for evaluation failures + + @param code: result of eval_idc() + + @return: True if there was an evaluation error + +Help on function get_cmt in module ida_bytes: + +get_cmt(*args) -> 'qstring *' + get_cmt(ea, rptble) -> str + Get an indented comment. + + @param ea: (C++: ea_t) linear address. may point to tail byte, the function will find start + of the item + @param rptble: (C++: bool) get repeatable comment? + @return: size of comment or -1 + +Help on function GetDisasm in module idc: + +GetDisasm(ea) + Get disassembly line + + @param ea: linear address of instruction + + @return: "" - could not decode instruction at the specified location + + @note: this function may not return exactly the same mnemonics + as you see on the screen. + +Help on function GetDouble in module idc: + +GetDouble(ea) + Get value of a floating point number (8 bytes) + This function assumes number stored using IEEE format + and in the same endianness as integers. + + @param ea: linear address + + @return: double + +Help on function GetFloat in module idc: + +GetFloat(ea) + Get value of a floating point number (4 bytes) + This function assumes number stored using IEEE format + and in the same endianness as integers. + + @param ea: linear address + + @return: float + +Help on function GetLocalType in module idc: + +GetLocalType(ordinal, flags) + Retrieve a local type declaration + @param flags: any of PRTYPE_* constants + @return: local type as a C declaration or "" + +Help on function LoadFile in module idc: + +LoadFile(filepath, pos, ea, size) + Load file into IDA database + + @param filepath: path to input file + @param pos: position in the file + @param ea: linear address to load + @param size: number of bytes to load + + @return: 0 - error, 1 - ok + +Help on function MakeVar in module idc: + +MakeVar(ea) + +Help on function SaveFile in module idc: + +SaveFile(filepath, pos, ea, size) + Save from IDA database to file + + @param filepath: path to output file + @param pos: position in the file + @param ea: linear address to save from + @param size: number of bytes to save + + @return: 0 - error, 1 - ok + +Help on function SetPrcsr in module idc: + +SetPrcsr(processor) + +Help on function SetType in module idc: + +SetType(ea, newtype) + Set type of function/variable + + @param ea: the address of the object + @param newtype: the type string in C declaration form. + Must contain the closing ';' + if specified as an empty string, then the + item associated with 'ea' will be deleted. + + @return: 1-ok, 0-failed. + +Help on function SizeOf in module idc: + +SizeOf(typestr) + Returns the size of the type. It is equivalent to IDC's sizeof(). + Use name, tp, fld = idc.parse_decl() ; SizeOf(tp) to retrieve the size + @return: -1 if typestring is not valid otherwise the size of the type + +Help on function _IDC_GetAttr in module idc: + +_IDC_GetAttr(obj, attrmap, attroffs) + Internal function to generically get object attributes + Do not use unless you know what you are doing + +Help on function _IDC_SetAttr in module idc: + +_IDC_SetAttr(obj, attrmap, attroffs, value) + Internal function to generically set object attributes + Do not use unless you know what you are doing + +Help on function __DbgValue in module idc: + +__DbgValue(ea, len) + +Help on function __GetArrayById in module idc: + +__GetArrayById(array_id) + Get an array, by its ID. + + This (internal) wrapper around 'idaaip.netnode(array_id)' + will ensure a certain safety around the retrieval of + arrays (by catching quite unexpect[ed|able] exceptions, + and making sure we don't create & use `transient' netnodes). + + @param array_id: A positive, valid array ID. + +Help on class __dummy_netnode in module idc: + +class __dummy_netnode(builtins.object) + | Implements, in an "always failing" fashion, the + | netnode functions that are necessary for the + | array-related functions. + | + | The sole purpose of this singleton class is to + | serve as a placeholder for netnode-manipulating + | functions, that don't want to each have to perform + | checks on the existence of the netnode. + | (..in other words: it avoids a bunch of if/else's). + | + | See __GetArrayById() for more info. + | + | Methods defined here: + | + | altdel(self, *args) + | + | altfirst(self, *args) + | + | altlast(self, *args) + | + | altnext(self, *args) + | + | altprev(self, *args) + | + | altset(self, *args) + | + | altval(self, *args) + | + | hashdel(self, *args) + | + | hashfirst(self, *args) + | + | hashlast(self, *args) + | + | hashnext(self, *args) + | + | hashprev(self, *args) + | + | hashset(self, *args) + | + | hashset_buf(self, *args) + | + | hashset_idx(self, *args) + | + | hashstr(self, *args) + | + | hashstr_buf(self, *args) + | + | hashval(self, *args) + | + | hashval_long(self, *args) + | + | index(self, *args) + | + | kill(self, *args) + | + | rename(self, *args) + | + | supdel(self, *args) + | + | supfirst(self, *args) + | + | suplast(self, *args) + | + | supnext(self, *args) + | + | supprev(self, *args) + | + | supset(self, *args) + | + | supval(self, *args) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | instance = <idc.__dummy_netnode object> + +Help on function __l2m1 in module idc: + +__l2m1(v) + Long to minus 1: If the 'v' appears to be the + 'signed long' version of -1, then return -1. + Otherwise, return 'v'. + +Help on function __m1tol in module idc: + +__m1tol(v) + Long -1 to BADNODE: If the 'v' appears to be the + 'signed long' version of -1, then return BADNODE. + Otherwise, return 'v'. + +Help on function __warn_once_deprecated_proto_confusion in module idc: + +__warn_once_deprecated_proto_confusion(what, alternative) + +Help on function _get_modules in module idc: + +_get_modules() + INTERNAL: Enumerate process modules + +Help on function _import_module_flag_sets in module idc: + +_import_module_flag_sets(module, prefixes) + +Help on function add_auto_stkpnt in module idc: + +add_auto_stkpnt(func_ea, ea, delta) + Add automatical SP register change point + @param func_ea: function start + @param ea: linear address where SP changes + usually this is the end of the instruction which + modifies the stack pointer (insn.ea+insn.size) + @param delta: difference between old and new values of SP + @return: 1-ok, 0-failed + +Help on function add_bpt in module ida_dbg: + +add_bpt(*args) -> 'bool' + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + Add a new breakpoint in the debugged process. \sq{Type, Synchronous function - + available as request, Notification, none (synchronous function)} + + @param bpt: (C++: const bpt_t &) Breakpoint to add. It describes the break condition, type, flags, + location (module relative, source breakpoint or absolute) and other + attributes. + @param size: asize_t + @param type: bpttype_t + + add_bpt(bpt) -> bool + + @param bpt: bpt_t const & + +Help on function add_cref in module ida_xref: + +add_cref(*args) -> 'bool' + add_cref(frm, to, type) -> bool + Create a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param type: (C++: cref_t) cross-reference type + @return: success + +Help on function add_default_til in module idc: + +add_default_til(name) + Load a type library + + @param name: name of type library. + @return: 1-ok, 0-failed. + +Help on function add_dref in module ida_xref: + +add_dref(*args) -> 'bool' + add_dref(frm, to, type) -> bool + Create a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + @param type: (C++: dref_t) cross-reference type + @return: success (may fail if user-defined xref exists from->to) + +Help on function add_entry in module ida_entry: + +add_entry(*args) -> 'bool' + add_entry(ord, ea, name, makecode, flags=0) -> bool + Add an entry point to the list of entry points. + + @param ord: (C++: uval_t) ordinal number if ordinal number is equal to 'ea' then ordinal is + not used + @param ea: (C++: ea_t) linear address + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to the regular comment. If name == + nullptr, then the old name will be retained. + @param makecode: (C++: bool) should the kernel convert bytes at the entry point to + instruction(s) + @param flags: (C++: int) See AEF_* + @return: success (currently always true) + +Help on function add_enum in module idc: + +add_enum(idx, name, flag) + Add a new enum type + + @param idx: serial number of the new enum. + If another enum with the same serial number + exists, then all enums with serial + numbers >= the specified idx get their + serial numbers incremented (in other words, + the new enum is put in the middle of the list of enums). + + If idx >= get_enum_qty() or idx == idaapi.BADNODE + then the new enum is created at the end of + the list of enums. + + @param name: name of the enum. + @param flag: flags for representation of numeric constants + in the definition of enum. + + @return: id of new enum or BADADDR + +Help on function add_enum_member in module idc: + +add_enum_member(enum_id, name, value, bmask) + Add a member of enum - a symbolic constant + + @param enum_id: id of enum + @param name: name of symbolic constant. Must be unique in the program. + @param value: value of symbolic constant. + @param bmask: bitmask of the constant + ordinary enums accept only ida_enum.DEFMASK as a bitmask + all bits set in value should be set in bmask too + + @return: 0-ok, otherwise error code (one of ENUM_MEMBER_ERROR_*) + +Help on function add_func in module ida_funcs: + +add_func(*args) -> 'bool' + add_func(ea1, ea2=BADADDR) -> bool + Add a new function. If the function end address is BADADDR, then IDA will try to + determine the function bounds by calling find_func_bounds(..., + FIND_FUNC_DEFINE). + + @param ea1: (C++: ea_t) start address + @param ea2: (C++: ea_t) end address + @return: success + +Help on function add_hidden_range in module ida_bytes: + +add_hidden_range(*args) -> 'bool' + add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool + Mark a range of addresses as hidden. The range will be created in the invisible + state with the default color + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range + @param description: (C++: const char *) ,header,footer: range parameters + @param header: (C++: const char *) char const * + @param footer: (C++: const char *) char const * + @param color: (C++: bgcolor_t) the range color + @return: success + +Help on function add_idc_hotkey in module ida_kernwin: + +add_idc_hotkey(*args) -> 'int' + add_idc_hotkey(hotkey, idcfunc) -> int + Add hotkey for IDC function (ui_add_idckey). + + @param hotkey: (C++: const char *) hotkey name + @param idcfunc: (C++: const char *) IDC function name + @return: IDC hotkey error codes + +Help on function add_segm_ex in module idc: + +add_segm_ex(startea, endea, base, use32, align, comb, flags) + Create a new segment + + @param startea: linear address of the start of the segment + @param endea: linear address of the end of the segment + this address will not belong to the segment + 'endea' should be higher than 'startea' + @param base: base paragraph or selector of the segment. + a paragraph is 16byte memory chunk. + If a selector value is specified, the selector should be + already defined. + @param use32: 0: 16bit segment, 1: 32bit segment, 2: 64bit segment + @param align: segment alignment. see below for alignment values + @param comb: segment combination. see below for combination values. + @param flags: combination of ADDSEG_... bits + + @return: 0-failed, 1-ok + +Help on function add_sourcefile in module ida_lines: + +add_sourcefile(*args) -> 'bool' + add_sourcefile(ea1, ea2, filename) -> bool + Mark a range of address as belonging to a source file. An address range may + belong only to one source file. A source file may be represented by several + address ranges. + + @param ea1: (C++: ea_t) linear address of start of the address range + @param ea2: (C++: ea_t) linear address of end of the address range (excluded) + @param filename: (C++: const char *) name of source file. + @return: success + +Help on function add_struc in module idc: + +add_struc(index, name, is_union) + Define a new structure type + + @param index: index of new structure type + If another structure has the specified index, + then index of that structure and all other + structures will be incremented, freeing the specifed + index. If index is == -1, then the biggest index + number will be used. + See get_first_struc_idx() for the explanation of + structure indices and IDs. + @param name: name of the new structure type. + @param is_union: 0: structure + 1: union + + @return: -1 if can't define structure type because of + bad structure name: the name is ill-formed or is + already used in the program. + otherwise returns ID of the new structure type + +Help on function add_struc_member in module idc: + +add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, reftype=2) + Add structure member + + @param sid: structure type ID + @param name: name of the new member + @param offset: offset of the new member + -1 means to add at the end of the structure + @param flag: type of the new member. Should be one of + FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA + @param typeid: if is_struct(flag) then typeid specifies the structure id for the member + if is_off0(flag) then typeid specifies the offset base. + if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). + if is_stroff(flag) then typeid specifies the structure id + if is_enum(flag) then typeid specifies the enum id + if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) + Otherwise typeid should be -1. + @param nbytes: number of bytes in the new member + + @param target: target address of the offset expr. You may specify it as + -1, ida will calculate it itself + @param tdelta: offset target delta. usually 0 + @param reftype: see REF_... definitions + + @note: The remaining arguments are allowed only if is_off0(flag) and you want + to specify a complex offset expression + + @return: 0 - ok, otherwise error code (one of STRUC_ERROR_*) + +Help on function add_user_stkpnt in module ida_frame: + +add_user_stkpnt(*args) -> 'bool' + add_user_stkpnt(ea, delta) -> bool + Add user-defined SP register change point. + + @param ea: (C++: ea_t) linear address where SP changes + @param delta: (C++: sval_t) difference between old and new values of SP + @return: success + +Help on function append_func_tail in module idc: + +append_func_tail(funcea, ea1, ea2) + Append a function chunk to the function + + @param funcea: any address in the function + @param ea1: start of function tail + @param ea2: end of function tail + @return: 0 if failed, 1 if success + + @note: If a chunk exists at the specified addresses, it must have exactly + the specified boundaries + +Help on function apply_type in module idc: + +apply_type(ea, py_type, flags=1) + Apply the specified type to the address + + @param ea: the address of the object + @param py_type: typeinfo tuple (type, fields) as get_tinfo() returns + or tuple (name, type, fields) as parse_decl() returns + or None + if specified as None, then the + item associated with 'ea' will be deleted. + @param flags: combination of TINFO_... constants or 0 + @return: Boolean + +Help on function ask_seg in module ida_kernwin: + +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 + +Help on function ask_yn in module ida_kernwin: + +ask_yn(*args) -> 'int' + ask_yn(deflt, format) -> int + Display a dialog box and get choice from "Yes", "No", "Cancel". + + @param deflt: (C++: int) default choice: one of Button IDs + @param format: (C++: const char *) The question in printf() style format + @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL. + +Help on function atoa in module idc: + +atoa(ea) + Convert address value to a string + Return address in the form 'seg000:1234' + (the same as in line prefixes) + + @param ea: address to format + +Help on function atol in module idc: + +atol(s) + +Help on function attach_process in module ida_dbg: + +attach_process(*args) -> 'int' + attach_process(pid=pid_t(-1), event_id=-1) -> int + Attach the debugger to a running process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_attach} + @note: This function shouldn't be called as a request if NO_PROCESS is used. + + @param pid: (C++: pid_t) PID of the process to attach to. If NO_PROCESS, a dialog box will + interactively ask the user for the process to attach to. + @retval -4: debugger was not inited + @retval -3: the attaching is not supported + @retval -2: impossible to find a compatible process + @retval -1: impossible to attach to the given process (process died, privilege + needed, not supported by the debugger plugin, ...) + @retval 0: the user cancelled the attaching to the process + @retval 1: the debugger properly attached to the process + +Help on function auto_mark_range in module ida_auto: + +auto_mark_range(*args) -> 'void' + auto_mark_range(start, end, type) + Put range of addresses into a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_unmark in module ida_auto: + +auto_unmark(*args) -> 'void' + auto_unmark(start, end, type) + Remove range of addresses from a queue. 'start' may be higher than 'end', the + kernel will swap them in this case. 'end' doesn't belong to the range. + + @param start: (C++: ea_t) + @param end: (C++: ea_t) + @param type: (C++: atype_t) + +Help on function auto_wait in module ida_auto: + +auto_wait(*args) -> 'bool' + auto_wait() -> bool + Process everything in the queues and return true. + + @return: false if the user clicked cancel. (the wait box must be displayed by + the caller if desired) + +Help on function batch in module idc: + +batch(batch) + Enable/disable batch mode of operation + + @param batch: batch mode + 0 - ida will display dialog boxes and wait for the user input + 1 - ida will not display dialog boxes, warnings, etc. + + @return: old balue of batch flag + +Help on function byte_value in module idc: + +byte_value(F) + Get byte value from flags + Get value of byte provided that the byte is initialized. + This macro works ok only for 8-bit byte machines. + +Help on function calc_gtn_flags in module ida_name: + +calc_gtn_flags(fromaddr, ea) + Calculate flags for get_ea_name() function + + @param fromaddr: the referring address. May be BADADDR. + @param ea: linear address + + @return: flags + +Help on function call_system in module idc: + +call_system(command) + Execute an OS command. + + @param command: command line to execute + + @return: error code from OS + + @note: + IDA will wait for the started program to finish. + In order to start the command in parallel, use OS methods. + For example, you may start another program in parallel using + "start" command. + +Help on function can_exc_continue in module idc: + +can_exc_continue() + Can it continue after EXCEPTION event? + + @return: boolean + +Help on function check_bpt in module ida_dbg: + +check_bpt(*args) -> 'int' + check_bpt(ea) -> int + Check the breakpoint at the specified address. + + @param ea: (C++: ea_t) + @return: one of Breakpoint status codes + +Help on function choose_func in module idc: + +choose_func(title) + Ask the user to select a function + + Arguments: + + @param title: title of the dialog box + + @return: -1 - user refused to select a function + otherwise returns the selected function start address + +Help on function clear_trace in module idc: + +clear_trace(filename) + Clear the current trace buffer + +Help on function create_align in module ida_bytes: + +create_align(*args) -> 'bool' + create_align(ea, length, alignment) -> bool + Create an alignment item. + + @param ea: (C++: ea_t) linear address + @param length: (C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT + @param alignment: (C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means + to infer from LENGTH It is forbidden to specify both LENGTH + and ALIGNMENT as 0. + @return: success + +Help on function create_array in module idc: + +create_array(name) + Create array. + + @param name: The array name. + + @return: -1 in case of failure, a valid array_id otherwise. + +Help on function create_byte in module idc: + +create_byte(ea) + Convert the current item to a byte + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_custdata in module ida_bytes: + +create_custdata(*args) -> 'bool' + create_custdata(ea, length, dtid, fid, force=False) -> bool + Convert to custom data type. + + @param ea: (C++: ea_t) + @param length: (C++: asize_t) + @param dtid: (C++: int) + @param fid: (C++: int) + @param force: (C++: bool) + +Help on function create_data in module ida_bytes: + +create_data(*args) -> 'bool' + create_data(ea, dataflag, size, tid) -> bool + Convert to data (byte, word, dword, etc). This function may be used to create + arrays. + + @param ea: (C++: ea_t) linear address + @param dataflag: (C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc. + @param size: (C++: asize_t) size of array in bytes. should be divisible by the size of one item + of the specified type. for variable sized items it can be specified + as 0, and the kernel will try to calculate the size. + @param tid: (C++: tid_t) type id. If the specified type is a structure, then tid is structure + id. Otherwise should be BADNODE. + @return: success + +Help on function create_double in module idc: + +create_double(ea) + Convert the current item to a double floating point (8 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_dword in module idc: + +create_dword(ea) + Convert the current item to a double word (4 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_float in module idc: + +create_float(ea) + Convert the current item to a floating point (4 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_insn in module ida_ua: + +create_insn(*args) -> 'int' + create_insn(ea, out=None) -> int + Create an instruction at the specified address. This function checks if an + instruction is present at the specified address and will try to create one if + there is none. It will fail if there is a data item or other items hindering the + creation of the new instruction. This function will also fill the 'out' + structure. + + @param ea: (C++: ea_t) linear address + @param out: (C++: insn_t *) the resulting instruction + @return: the length of the instruction or 0 + +Help on function create_oword in module idc: + +create_oword(ea) + Convert the current item to an octa word (16 bytes/128 bits) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_pack_real in module idc: + +create_pack_real(ea) + Convert the current item to a packed real (10 or 12 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_qword in module idc: + +create_qword(ea) + Convert the current item to a quadro word (8 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_strlit in module idc: + +create_strlit(ea, endea) + Create a string. + + This function creates a string (the string type is determined by the + value of get_inf_attr(INF_STRTYPE)) + + @param ea: linear address + @param endea: ending address of the string (excluded) + if endea == BADADDR, then length of string will be calculated + by the kernel + + @return: 1-ok, 0-failure + + @note: The type of an existing string is returned by get_str_type() + +Help on function create_struct in module idc: + +create_struct(ea, size, strname) + Convert the current item to a structure instance + + @param ea: linear address + @param size: structure size in bytes. -1 means that the size + will be calculated automatically + @param strname: name of a structure type + + @return: 1-ok, 0-failure + +Help on function create_tbyte in module idc: + +create_tbyte(ea) + Convert the current item to a tbyte (10 or 12 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_word in module idc: + +create_word(ea) + Convert the current item to a word (2 bytes) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function create_yword in module idc: + +create_yword(ea) + Convert the current item to a ymm word (32 bytes/256 bits) + + @param ea: linear address + + @return: 1-ok, 0-failure + +Help on function define_exception in module ida_dbg: + +define_exception(*args) -> 'char const *' + define_exception(code, name, desc, flags) -> char const * + Convenience function: define new exception code. + + @param code: (C++: uint) exception code (cannot be 0) + @param name: (C++: const char *) exception name (cannot be empty or nullptr) + @param desc: (C++: const char *) exception description (maybe nullptr) + @param flags: (C++: int) combination of Exception info flags + @return: failure message or nullptr. You must call store_exceptions() if this + function succeeds + +Help on function define_local_var in module idc: + +define_local_var(start, end, location, name) + Create a local variable + + @param start: start of address range for the local variable + @param end: end of address range for the local variable + @param location: the variable location in the "[bp+xx]" form where xx is + a number. The location can also be specified as a + register name. + @param name: name of the local variable + + @return: 1-ok, 0-failure + + @note: For the stack variables the end address is ignored. + If there is no function at 'start' then this function. + will fail. + +Help on function del_array_element in module idc: + +del_array_element(tag, array_id, idx) + Delete an array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of an element. + + @return: 1 in case of success, 0 otherwise. + +Help on function del_bpt in module ida_dbg: + +del_bpt(*args) -> 'bool' + del_bpt(ea) -> bool + Delete an existing breakpoint in the debugged process. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param bptloc: (C++: const bpt_location_t &) Breakpoint location + del_bpt(bptloc) -> bool + + @param bptloc: bpt_location_t const & + +Help on function del_cref in module ida_xref: + +del_cref(*args) -> 'bool' + del_cref(frm, to, expand) -> bool + Delete a code cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction + @param to: (C++: ea_t) linear address of referenced instruction + @param expand: (C++: bool) policy to delete the referenced instruction + * 1: plan to delete the referenced instruction if it has no more references. + * 0: don't delete the referenced instruction even if no more cross-references + point to it + @retval true: if the referenced instruction will be deleted + +Help on function del_dref in module ida_xref: + +del_dref(*args) -> 'void' + del_dref(frm, to) + Delete a data cross-reference. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param to: (C++: ea_t) linear address of referenced data + +Help on function del_enum in module ida_enum: + +del_enum(*args) -> 'void' + del_enum(id) + Delete an enum type. + + @param id: (C++: enum_t) + +Help on function del_enum_member in module idc: + +del_enum_member(enum_id, value, serial, bmask) + Delete a member of enum - a symbolic constant + + @param enum_id: id of enum + @param value: value of symbolic constant. + @param serial: serial number of the constant in the + enumeration. See op_enum() for for details. + @param bmask: bitmask of the constant ordinary enums accept + only ida_enum.DEFMASK as a bitmask + + @return: 1-ok, 0-failed + +Help on function del_extra_cmt in module ida_lines: + +del_extra_cmt(*args) -> 'void' + del_extra_cmt(ea, what) + + @param ea: ea_t + @param what: int + +Help on function del_fixup in module ida_fixup: + +del_fixup(*args) -> 'void' + del_fixup(source) + Delete fixup information. + + @param source: (C++: ea_t) + +Help on function del_func in module ida_funcs: + +del_func(*args) -> 'bool' + del_func(ea) -> bool + Delete a function. + + @param ea: (C++: ea_t) any address in the function entry chunk + @return: success + +Help on function del_hash_string in module idc: + +del_hash_string(hash_id, key) + Delete a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element + + @return: 1 upon success, 0 otherwise. + +Help on function del_hidden_range in module ida_bytes: + +del_hidden_range(*args) -> 'bool' + del_hidden_range(ea) -> bool + Delete hidden range. + + @param ea: (C++: ea_t) any address in the hidden range + @return: success + +Help on function del_idc_hotkey in module ida_kernwin: + +del_idc_hotkey(*args) -> 'bool' + del_idc_hotkey(hotkey) -> bool + + @param hotkey: char const * + +Help on function del_items in module ida_bytes: + +del_items(*args) -> 'bool' + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + Convert item (instruction/data) to unexplored bytes. The whole item (including + the head and tail bytes) will be destroyed. It is allowed to pass any address in + the item to this function + + @param ea: (C++: ea_t) any address within the first item to delete + @param flags: (C++: int) combination of Unexplored byte conversion flags + @param nbytes: (C++: asize_t) number of bytes in the range to be undefined + @param may_destroy: (C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If + callback returns false then item is not to be deleted and + operation fails + @return: true on sucessful operation, otherwise false + +Help on function del_segm in module ida_segment: + +del_segm(*args) -> 'bool' + del_segm(ea, flags) -> bool + Delete a segment. + + @param ea: (C++: ea_t) any address belonging to the segment + @param flags: (C++: int) Segment modification flags + @retval 1: ok + @retval 0: failed, no segment at 'ea'. + +Help on function del_selector in module ida_segment: + +del_selector(*args) -> 'void' + del_selector(selector) + Delete mapping of a selector. Be wary of deleting selectors that are being used + in the program, this can make a mess in the segments. + + @param selector: (C++: sel_t) number of selector to remove from the translation table + +Help on function del_source_linnum in module ida_nalt: + +del_source_linnum(*args) -> 'void' + del_source_linnum(ea) + + @param ea: ea_t + +Help on function del_sourcefile in module ida_lines: + +del_sourcefile(*args) -> 'bool' + del_sourcefile(ea) -> bool + Delete information about the source file. + + @param ea: (C++: ea_t) linear address + @return: success + +Help on function del_stkpnt in module idc: + +del_stkpnt(func_ea, ea) + Delete SP register change point + + @param func_ea: function start + @param ea: linear address + @return: 1-ok, 0-failed + +Help on function del_struc in module idc: + +del_struc(sid) + Delete a structure type + + @param sid: structure type ID + + @return: 0 if bad structure type ID is passed + 1 otherwise the structure type is deleted. All data + and other structure types referencing to the + deleted structure type will be displayed as array + of bytes. + +Help on function del_struc_member in module idc: + +del_struc_member(sid, member_offset) + Delete structure member + + @param sid: structure type ID + @param member_offset: offset of the member + + @return: != 0 - ok. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + +Help on function delete_all_segments in module idc: + +delete_all_segments() + Delete all segments, instructions, comments, i.e. everything + except values of bytes. + +Help on function delete_array in module idc: + +delete_array(array_id) + Delete array, by its ID. + + @param array_id: The ID of the array to delete. + +Help on function demangle_name in module idc: + +demangle_name(name, disable_mask) + demangle_name a name + + @param name: name to demangle + @param disable_mask: a mask that tells how to demangle the name + it is a good idea to get this mask using + get_inf_attr(INF_SHORT_DN) or get_inf_attr(INF_LONG_DN) + + @return: a demangled name + If the input name cannot be demangled, returns None + +Help on function detach_process in module ida_dbg: + +detach_process(*args) -> 'bool' + detach_process() -> bool + Detach the debugger from the debugged process. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_process_detach} + +Help on function diff_trace_file in module ida_dbg: + +diff_trace_file(*args) -> 'bool' + diff_trace_file(NONNULL_filename) -> bool + Show difference between the current trace and the one from 'filename'. + + @param NONNULL_filename: (C++: const char *) char const * + +Help on function enable_bpt in module ida_dbg: + +enable_bpt(*args) -> 'bool' + enable_bpt(ea, enable=True) -> bool + + @param ea: ea_t + @param enable: bool + + enable_bpt(bptloc, enable=True) -> bool + + @param bptloc: bpt_location_t const & + @param enable: bool + +Help on function enable_tracing in module idc: + +enable_tracing(trace_level, enable) + Enable step tracing + + @param trace_level: what kind of trace to modify + @param enable: 0: turn off, 1: turn on + + @return: success + +Help on function error in module ida_kernwin: + +error(*args) -> 'void' + error(format) + Display a fatal message in a message box and quit IDA + + @param format: message to print + +Help on function eval_idc in module idc: + +eval_idc(expr) + Evaluate an IDC expression + + @param expr: an expression + + @return: the expression value. If there are problems, the returned value will be "IDC_FAILURE: xxx" + where xxx is the error description + + @note: Python implementation evaluates IDC only, while IDC can call other registered languages + +Help on function exit_process in module ida_dbg: + +exit_process(*args) -> 'bool' + exit_process() -> bool + Terminate the debugging of the current process. \sq{Type, Asynchronous function + - available as Request, Notification, dbg_process_exit} + +Help on function expand_struc in module idc: + +expand_struc(sid, offset, delta, recalc) + Expand or shrink a structure type + @param id: structure type ID + @param offset: offset in the structure + @param delta: how many bytes to add or remove + @param recalc: recalculate the locations where the structure + type is used + @return: != 0 - ok + +Help on function fclose in module idc: + +fclose(handle) + +Help on function fgetc in module idc: + +fgetc(handle) + +Help on function filelength in module idc: + +filelength(handle) + +Help on function find_binary in module idc: + +find_binary(ea, flag, searchstr, radix=16) + +Help on function find_code in module ida_search: + +find_code(*args) -> 'ea_t' + find_code(ea, sflag) -> ea_t + Find next code address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_data in module ida_search: + +find_data(*args) -> 'ea_t' + find_data(ea, sflag) -> ea_t + Find next data address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_defined in module ida_search: + +find_defined(*args) -> 'ea_t' + find_defined(ea, sflag) -> ea_t + Find next ea that is the start of an instruction or data. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_func_end in module idc: + +find_func_end(ea) + Determine a new function boundaries + + @param ea: starting address of a new function + + @return: if a function already exists, then return its end address. + If a function end cannot be determined, the return BADADDR + otherwise return the end address of the new function + +Help on function find_imm in module ida_search: + +find_imm(*args) -> 'int *' + find_imm(ea, sflag, search_value) -> ea_t + Find next immediate operand with the given value. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + @param search_value: (C++: uval_t) + +Help on function find_selector in module idc: + +find_selector(val) + Find a selector which has the specifed value + + @param val: value to search for + + @return: the selector number if found, + otherwise the input value (val & 0xFFFF) + + @note: selector values are always in paragraphs + +Help on function find_suspop in module ida_search: + +find_suspop(*args) -> 'int *' + find_suspop(ea, sflag) -> ea_t + Find next suspicious operand. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function find_text in module idc: + +find_text(ea, flag, y, x, searchstr) + +Help on function find_unknown in module ida_search: + +find_unknown(*args) -> 'ea_t' + find_unknown(ea, sflag) -> ea_t + Find next unexplored address. + + @param ea: (C++: ea_t) + @param sflag: (C++: int) + +Help on function first_func_chunk in module idc: + +first_func_chunk(funcea) + Get the first function chunk of the specified function + + @param funcea: any address in the function + + @return: the function entry point or BADADDR + + @note: This function returns the first (main) chunk of the specified function + +Help on function fopen in module idc: + +fopen(f, mode) + #---------------------------------------------------------------------------- + # F I L E I / O + #---------------------------------------------------------------------------- + +Help on function force_bl_call in module idc: + +force_bl_call(ea) + Force BL instruction to be a call + + @param ea: address of the BL instruction + + @return: 1-ok, 0-failed + +Help on function force_bl_jump in module idc: + +force_bl_jump(ea) + Some ARM compilers in Thumb mode use BL (branch-and-link) + instead of B (branch) for long jumps, since BL has more range. + By default, IDA tries to determine if BL is a jump or a call. + You can override IDA's decision using commands in Edit/Other menu + (Force BL call/Force BL jump) or the following two functions. + + Force BL instruction to be a jump + + @param ea: address of the BL instruction + + @return: 1-ok, 0-failed + +Help on function form in module idc: + +form(format, *args) + +Help on function fprintf in module idc: + +fprintf(handle, format, *args) + +Help on function fputc in module idc: + +fputc(byte, handle) + +Help on function fseek in module idc: + +fseek(handle, offset, origin) + +Help on function ftell in module idc: + +ftell(handle) + +Help on function func_contains in module idc: + +func_contains(func_ea, ea) + Does the given function contain the given address? + + @param func_ea: any address belonging to the function + @param ea: linear address + + @return: success + +Help on function gen_file in module idc: + +gen_file(filetype, path, ea1, ea2, flags) + Generate an output file + + @param filetype: type of output file. One of OFILE_... symbols. See below. + @param path: the output file path (will be overwritten!) + @param ea1: start address. For some file types this argument is ignored + @param ea2: end address. For some file types this argument is ignored + @param flags: bit combination of GENFLG_... + + @returns: number of the generated lines. + -1 if an error occurred + OFILE_EXE: 0-can't generate exe file, 1-ok + +Help on function gen_flow_graph in module idc: + +gen_flow_graph(outfile, title, ea1, ea2, flags) + Generate a flow chart GDL file + + @param outfile: output file name. GDL extension will be used + @param title: graph title + @param ea1: beginning of the range to flow chart + @param ea2: end of the range to flow chart. + @param flags: combination of CHART_... constants + + @note: If ea2 == BADADDR then ea1 is treated as an address within a function. + That function will be flow charted. + +Help on function gen_simple_call_chart in module idc: + +gen_simple_call_chart(outfile, title, flags) + Generate a function call graph GDL file + + @param outfile: output file name. GDL extension will be used + @param title: graph title + @param flags: combination of CHART_GEN_GDL, CHART_WINGRAPH, CHART_NOLIBFUNCS + +Help on function generate_disasm_line in module idc: + +generate_disasm_line(ea, flags) + Get disassembly line + + @param ea: linear address of instruction + + @param flags: combination of the GENDSM_ flags, or 0 + + @return: "" - could not decode instruction at the specified location + + @note: this function may not return exactly the same mnemonics + as you see on the screen. + +Help on function get_array_element in module idc: + +get_array_element(tag, array_id, idx) + Get value of array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of an element. + + @return: Value of the specified array element. Note that + this function may return char or long result. Unexistent + array elements give zero as a result. + +Help on function get_array_id in module idc: + +get_array_id(name) + Get array array_id, by name. + + @param name: The array name. + + @return: -1 in case of failure (i.e., no array with that + name exists), a valid array_id otherwise. + +Help on function get_bmask_cmt in module idc: + +get_bmask_cmt(enum_id, bmask, repeatable) + Get bitmask comment (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + @param repeatable: type of comment, 0-regular, 1-repeatable + + @return: comment attached to bitmask or None + +Help on function get_bmask_name in module idc: + +get_bmask_name(enum_id, bmask) + Get bitmask name (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + + @return: name of bitmask or None + +Help on function get_marked_pos in module ida_idc: + +get_marked_pos(*args) -> 'ea_t' + get_marked_pos(slot) -> ea_t + + @param slot: int32 + +Help on function get_mark_comment in module ida_idc: + +get_mark_comment(*args) -> 'PyObject *' + get_mark_comment(slot) -> PyObject * + + @param slot: int32 + +Help on function get_bpt_attr in module idc: + +get_bpt_attr(ea, bptattr) + Get the characteristics of a breakpoint + + @param ea: any address in the breakpoint range + @param bptattr: the desired attribute code, one of BPTATTR_... constants + + @return: the desired attribute value or -1 + +Help on function get_bpt_ea in module idc: + +get_bpt_ea(n) + Get breakpoint address + + @param n: number of breakpoint, is in range 0..get_bpt_qty()-1 + + @return: address of the breakpoint or BADADDR + +Help on function get_bpt_qty in module ida_dbg: + +get_bpt_qty(*args) -> 'int' + get_bpt_qty() -> int + Get number of breakpoints. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_bpt_tev_ea in module ida_dbg: + +get_bpt_tev_ea(*args) -> 'ea_t' + get_bpt_tev_ea(n) -> ea_t + Get the address associated to a read, read/write or execution trace event. + \sq{Type, Synchronous function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a read, read/write or execution trace event. + @note: Usually, a breakpoint is associated with a read, read/write or execution + trace event. However, the returned address could be any address in the + range of this breakpoint. If the breakpoint was deleted after the trace + event, the address no longer corresponds to a valid breakpoint. + +Help on function get_bytes in module idc: + +get_bytes(ea, size, use_dbg=False) + Return the specified number of bytes of the program + + @param ea: linear address + + @param size: size of buffer in normal 8-bit bytes + + @param use_dbg: if True, use debugger memory, otherwise just the database + + @return: None on failure + otherwise a string containing the read bytes + +Help on function get_call_tev_callee in module ida_dbg: + +get_call_tev_callee(*args) -> 'ea_t' + get_call_tev_callee(n) -> ea_t + Get the called function from a function call trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function call event. + +Help on function get_color in module idc: + +get_color(ea, what) + Get item color + + @param ea: address of the item + @param what: type of the item (one of CIC_* constants) + + @return: color code in RGB (hex 0xBBGGRR) + +Help on function get_curline in module idc: + +get_curline() + Get the disassembly line at the cursor + + @return: string + +Help on function get_current_thread in module ida_dbg: + +get_current_thread(*args) -> 'thid_t' + get_current_thread() -> thid_t + Get current thread ID. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_db_byte in module ida_bytes: + +get_db_byte(*args) -> 'uchar' + get_db_byte(ea) -> uchar + Get one byte (8-bit) of the program at 'ea' from the database. Works even if the + debugger is active. See also get_dbg_byte() to read the process memory directly. + This function works only for 8bit byte processors. + + @param ea: (C++: ea_t) + +Help on function get_debugger_event_cond in module ida_dbg: + +get_debugger_event_cond(*args) -> 'char const *' + get_debugger_event_cond() -> char const * + +Help on function get_entry in module ida_entry: + +get_entry(*args) -> 'ea_t' + get_entry(ord) -> ea_t + Get entry point address by its ordinal + + @param ord: (C++: uval_t) ordinal number of entry point + @return: address or BADADDR + +Help on function get_entry_name in module ida_entry: + +get_entry_name(*args) -> 'qstring *' + get_entry_name(ord) -> str + Get name of the entry point by its ordinal. + + @param ord: (C++: uval_t) ordinal number of entry point + @return: size of entry name or -1 + +Help on function get_entry_ordinal in module ida_entry: + +get_entry_ordinal(*args) -> 'uval_t' + get_entry_ordinal(idx) -> uval_t + Get ordinal number of an entry point. + + @param idx: (C++: size_t) internal number of entry point. Should be in the range + 0..get_entry_qty()-1 + @return: ordinal number or 0. + +Help on function get_entry_qty in module ida_entry: + +get_entry_qty(*args) -> 'size_t' + get_entry_qty() -> size_t + Get number of entry points. + +Help on function get_enum in module ida_enum: + +get_enum(*args) -> 'enum_t' + get_enum(name) -> enum_t + Get enum by name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_cmt in module ida_enum: + +get_enum_cmt(*args) -> 'qstring *' + get_enum_cmt(id, repeatable) -> str + Get enum comment. + + @param id: (C++: enum_t) + @param repeatable: (C++: bool) + +Help on function get_enum_flag in module ida_enum: + +get_enum_flag(*args) -> 'flags64_t' + get_enum_flag(id) -> flags64_t + Get flags determining the representation of the enum. (currently they define the + numeric base: octal, decimal, hex, bin) and signness. + + @param id: (C++: enum_t) + +Help on function get_enum_idx in module ida_enum: + +get_enum_idx(*args) -> 'uval_t' + get_enum_idx(id) -> uval_t + Get the index in the list of enums. + + @param id: (C++: enum_t) + +Help on function get_enum_member in module idc: + +get_enum_member(enum_id, value, serial, bmask) + Get id of constant + + @param enum_id: id of enum + @param value: value of constant + @param serial: serial number of the constant in the + enumeration. See op_enum() for details. + @param bmask: bitmask of the constant + ordinary enums accept only ida_enum.DEFMASK as a bitmask + + @return: id of constant or -1 if error + +Help on function get_enum_member_bmask in module ida_enum: + +get_enum_member_bmask(*args) -> 'bmask_t' + get_enum_member_bmask(id) -> bmask_t + Get bitmask of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_by_name in module ida_enum: + +get_enum_member_by_name(*args) -> 'const_t' + get_enum_member_by_name(name) -> const_t + Get a reference to an enum member by its name. + + @param name: (C++: const char *) char const * + +Help on function get_enum_member_cmt in module idc: + +get_enum_member_cmt(const_id, repeatable) + Get comment of a constant + + @param const_id: id of const + @param repeatable: 0:get regular comment, 1:get repeatable comment + + @return: comment string + +Help on function get_enum_member_enum in module ida_enum: + +get_enum_member_enum(*args) -> 'enum_t' + get_enum_member_enum(id) -> enum_t + Get the parent enum of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_member_name in module idc: + +get_enum_member_name(const_id) + Get name of a constant + + @param const_id: id of const + + Returns: name of constant + +Help on function get_enum_member_value in module ida_enum: + +get_enum_member_value(*args) -> 'uval_t' + get_enum_member_value(id) -> uval_t + Get value of an enum member. + + @param id: (C++: const_t) + +Help on function get_enum_name in module ida_enum: + +get_enum_name(*args) -> 'qstring *' + get_enum_name(id) -> str + + @param id: enum_t + +Help on function get_enum_qty in module ida_enum: + +get_enum_qty(*args) -> 'size_t' + get_enum_qty() -> size_t + Get number of declared enum_t types. + +Help on function get_enum_size in module ida_enum: + +get_enum_size(*args) -> 'size_t' + get_enum_size(id) -> size_t + Get the number of the members of the enum. + + @param id: (C++: enum_t) + +Help on function get_enum_width in module ida_enum: + +get_enum_width(*args) -> 'size_t' + get_enum_width(id) -> size_t + Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64 + + @param id: (C++: enum_t) + +Help on function get_event_bpt_hea in module idc: + +get_event_bpt_hea() + Get hardware address for BREAKPOINT event + + @return: hardware address + +Help on function get_event_ea in module idc: + +get_event_ea() + Get ea for debug event + + @return: ea + +Help on function get_event_exc_code in module idc: + +get_event_exc_code() + Get exception code for EXCEPTION event + + @return: exception code + +Help on function get_event_exc_ea in module idc: + +get_event_exc_ea() + Get address for EXCEPTION event + + @return: adress of exception + +Help on function get_event_exc_info in module idc: + +get_event_exc_info() + Get info for EXCEPTION event + + @return: info string + +Help on function get_event_exit_code in module idc: + +get_event_exit_code() + Get exit code for debug event + + @return: exit code for PROCESS_EXITED, THREAD_EXITED events + +Help on function get_event_id in module idc: + +get_event_id() + Get ID of debug event + + @return: event ID + +Help on function get_event_info in module idc: + +get_event_info() + Get debug event info + + @return: event info: for THREAD_STARTED (thread name) + for LIB_UNLOADED (unloaded library name) + for INFORMATION (message to display) + +Help on function get_event_module_base in module idc: + +get_event_module_base() + Get module base for debug event + + @return: module base + +Help on function get_event_module_name in module idc: + +get_event_module_name() + Get module name for debug event + + @return: module name + +Help on function get_event_module_size in module idc: + +get_event_module_size() + Get module size for debug event + + @return: module size + +Help on function get_event_pid in module idc: + +get_event_pid() + Get process ID for debug event + + @return: process ID + +Help on function get_event_tid in module idc: + +get_event_tid() + Get type ID for debug event + + @return: type ID + +Help on function get_extra_cmt in module ida_lines: + +get_extra_cmt(*args) -> 'int' + get_extra_cmt(ea, what) -> ssize_t + + @param ea: ea_t + @param what: int + +Help on function get_fchunk_attr in module idc: + +get_fchunk_attr(ea, attr) + Get a function chunk attribute + + @param ea: any address in the chunk + @param attr: one of: FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER, FUNCATTR_REFQTY + + @return: desired attribute or -1 + +Help on function get_fchunk_referer in module ida_funcs: + +get_fchunk_referer(*args) -> 'ea_t' + get_fchunk_referer(ea, idx) -> ea_t + + @param ea: ea_t + @param idx: size_t + +Help on function get_first_bmask in module ida_enum: + +get_first_bmask(*args) -> 'bmask_t' + get_first_bmask(enum_id) -> bmask_t + Get first bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum (bitfield) + @return: the smallest bitmask for enum, or DEFMASK + +Help on function get_first_cref_from in module ida_xref: + +get_first_cref_from(*args) -> 'ea_t' + get_first_cref_from(frm) -> ea_t + Get first instruction referenced from the specified instruction. If the + specified instruction passes execution to the next instruction then the next + instruction is returned. Otherwise the lowest referenced address is returned + (remember that xrefs are kept sorted!). + + @param from: (C++: ea_t) linear address of referencing instruction + @return: first referenced address. If the specified instruction doesn't + reference to other instructions then returns BADADDR. + +Help on function get_first_cref_to in module ida_xref: + +get_first_cref_to(*args) -> 'ea_t' + get_first_cref_to(to) -> ea_t + Get first instruction referencing to the specified instruction. If the specified + instruction may be executed immediately after its previous instruction then the + previous instruction is returned. Otherwise the lowest referencing address is + returned. (remember that xrefs are kept sorted!). + + @param to: (C++: ea_t) linear address of referenced instruction + @return: linear address of the first referencing instruction or BADADDR. + +Help on function get_first_dref_from in module ida_xref: + +get_first_dref_from(*args) -> 'ea_t' + get_first_dref_from(frm) -> ea_t + Get first data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @return: linear address of first (lowest) data referenced from the specified + address. Return BADADDR if the specified instruction/data doesn't + reference to anything. + +Help on function get_first_dref_to in module ida_xref: + +get_first_dref_to(*args) -> 'ea_t' + get_first_dref_to(to) -> ea_t + Get address of instruction/data referencing to the specified data. + + @param to: (C++: ea_t) linear address of referencing instruction or data + @return: BADADDR if nobody refers to the specified data. + +Help on function get_first_enum_member in module idc: + +get_first_enum_member(enum_id, bmask) + Get first constant in the enum + + @param enum_id: id of enum + @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) + + @return: value of constant or idaapi.BADNODE no constants are defined + All constants are sorted by their values as unsigned longs. + +Help on function get_first_fcref_from in module ida_xref: + +get_first_fcref_from(*args) -> 'ea_t' + get_first_fcref_from(frm) -> ea_t + + @param from: ea_t + +Help on function get_first_fcref_to in module ida_xref: + +get_first_fcref_to(*args) -> 'ea_t' + get_first_fcref_to(to) -> ea_t + + @param to: ea_t + +Help on function get_first_hash_key in module idc: + +get_first_hash_key(hash_id) + Get the first key in the hash. + + @param hash_id: The hash ID. + + @return: the key, 0 otherwise. + +Help on function get_first_index in module idc: + +get_first_index(tag, array_id) + Get index of the first existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + + @return: -1 if the array is empty, otherwise index of first array + element of given type. + +Help on function get_first_member in module idc: + +get_first_member(sid) + Get offset of the first member of a structure + + @param sid: structure type ID + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if structure has no members, + otherwise returns offset of the first member. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_first_module in module idc: + +get_first_module() + Enumerate process modules + + @return: first module's base address or None on failure + +Help on function get_first_seg in module idc: + +get_first_seg() + Get first segment + + @return: address of the start of the first segment + BADADDR - no segments are defined + +Help on function get_first_struc_idx in module ida_struct: + +get_first_struc_idx(*args) -> 'uval_t' + get_first_struc_idx() -> uval_t + Get index of first structure. + + @return: BADADDR if no known structures, 0 otherwise + +Help on function get_fixup_target_dis in module idc: + +get_fixup_target_dis(ea) + Get fixup target displacement + + @param ea: address to get information about + + @return: 0 - no fixup at the specified address + otherwise returns fixup target displacement + +Help on function get_fixup_target_flags in module idc: + +get_fixup_target_flags(ea) + Get fixup target flags + + @param ea: address to get information about + + @return: 0 - no fixup at the specified address + otherwise returns fixup target flags + +Help on function get_fixup_target_off in module idc: + +get_fixup_target_off(ea) + Get fixup target offset + + @param ea: address to get information about + + @return: BADADDR - no fixup at the specified address + otherwise returns fixup target offset + +Help on function get_fixup_target_sel in module idc: + +get_fixup_target_sel(ea) + Get fixup target selector + + @param ea: address to get information about + + @return: BADSEL - no fixup at the specified address + otherwise returns fixup target selector + +Help on function get_fixup_target_type in module idc: + +get_fixup_target_type(ea) + Get fixup target type + + @param ea: address to get information about + + @return: 0 - no fixup at the specified address + otherwise returns fixup type + +Help on function get_forced_operand in module ida_bytes: + +get_forced_operand(*args) -> 'qstring *' + get_forced_operand(ea, n) -> str + Get forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @return: size of forced operand or -1 + +Help on function get_frame_args_size in module idc: + +get_frame_args_size(ea) + Get size of arguments in function frame which are purged upon return + + @param ea: any address belonging to the function + + @return: Size of function arguments in bytes. + If the function doesn't have a frame, return 0 + If the function does't exist, return -1 + +Help on function get_frame_id in module idc: + +get_frame_id(ea) + Get ID of function frame structure + + @param ea: any address belonging to the function + + @return: ID of function frame or None In order to access stack variables + you need to use structure member manipulaion functions with the + obtained ID. + +Help on function get_frame_lvar_size in module idc: + +get_frame_lvar_size(ea) + Get size of local variables in function frame + + @param ea: any address belonging to the function + + @return: Size of local variables in bytes. + If the function doesn't have a frame, return 0 + If the function does't exist, return None + +Help on function get_frame_regs_size in module idc: + +get_frame_regs_size(ea) + Get size of saved registers in function frame + + @param ea: any address belonging to the function + + @return: Size of saved registers in bytes. + If the function doesn't have a frame, return 0 + This value is used as offset for BP (if FUNC_FRAME is set) + If the function does't exist, return None + +Help on function get_frame_size in module idc: + +get_frame_size(ea) + Get full size of function frame + + @param ea: any address belonging to the function + @returns: Size of function frame in bytes. + This function takes into account size of local + variables + size of saved registers + size of + return address + size of function arguments + If the function doesn't have a frame, return size of + function return address in the stack. + If the function does't exist, return 0 + +Help on function get_full_flags in module ida_bytes: + +get_full_flags(*args) -> 'flags64_t' + get_full_flags(ea) -> flags64_t + Get flags value for address 'ea'. + + @param ea: (C++: ea_t) + @return: 0 if address is not present in the program + +Help on function get_func_attr in module idc: + +get_func_attr(ea, attr) + Get a function attribute + + @param ea: any address belonging to the function + @param attr: one of FUNCATTR_... constants + + @return: BADADDR - error otherwise returns the attribute value + +Help on function get_func_cmt in module idc: + +get_func_cmt(ea, repeatable) + Retrieve function comment + + @param ea: any address belonging to the function + @param repeatable: 1: get repeatable comment + 0: get regular comment + + @return: function comment string + +Help on function get_func_flags in module idc: + +get_func_flags(ea) + Retrieve function flags + + @param ea: any address belonging to the function + + @return: -1 - function doesn't exist otherwise returns the flags + +Help on function get_func_name in module idc: + +get_func_name(ea) + Retrieve function name + + @param ea: any address belonging to the function + + @return: null string - function doesn't exist + otherwise returns function name + +Help on function get_func_off_str in module idc: + +get_func_off_str(ea) + Convert address to 'funcname+offset' string + + @param ea: address to convert + + @return: if the address belongs to a function then return a string + formed as 'name+offset' where 'name' is a function name + 'offset' is offset within the function else return null string + +Help on function get_hash_long in module idc: + +get_hash_long(hash_id, key) + Gets the long value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + + @return: the 32bit or 64bit value of the element, or 0 if no such + element. + +Help on function get_hash_string in module idc: + +get_hash_string(hash_id, key) + Gets the string value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + + @return: the string value of the element, or None if no such + element. + +Help on function get_idb_path in module idc: + +get_idb_path() + Get IDB full path + + This function returns full path of the current IDB database + +Help on function get_inf_attr in module idc: + +get_inf_attr(attr) + Deprecated. Please ida_ida.inf_get_* instead. + +Help on function get_input_file_path in module ida_nalt: + +get_input_file_path(*args) -> 'size_t' + get_input_file_path() -> str + Get full path of the input file. + +Help on function get_item_end in module ida_bytes: + +get_item_end(*args) -> 'ea_t' + get_item_end(ea) -> ea_t + Get the end address of the item at 'ea'. The returned address doesn't belong to + the current item. Unexplored bytes are counted as 1 byte entities. + + @param ea: (C++: ea_t) + +Help on function get_item_head in module ida_bytes: + +get_item_head(*args) -> 'ea_t' + get_item_head(ea) -> ea_t + Get the start address of the item at 'ea'. If there is no current item, then + 'ea' will be returned (see definition at the end of bytes.hpp source) + + @param ea: (C++: ea_t) + +Help on function get_item_size in module idc: + +get_item_size(ea) + Get size of instruction or data item in bytes + + @param ea: linear address + + @return: 1..n + +Help on function get_last_bmask in module ida_enum: + +get_last_bmask(*args) -> 'bmask_t' + get_last_bmask(enum_id) -> bmask_t + Get last bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @return: the biggest bitmask for enum, or DEFMASK + +Help on function get_last_enum_member in module idc: + +get_last_enum_member(enum_id, bmask) + Get last constant in the enum + + @param enum_id: id of enum + @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask) + + @return: value of constant or idaapi.BADNODE no constants are defined + All constants are sorted by their values + as unsigned longs. + +Help on function get_last_hash_key in module idc: + +get_last_hash_key(hash_id) + Get the last key in the hash. + + @param hash_id: The hash ID. + + @return: the key, 0 otherwise. + +Help on function get_last_index in module idc: + +get_last_index(tag, array_id) + Get index of last existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + + @return: -1 if the array is empty, otherwise index of first array + element of given type. + +Help on function get_last_member in module idc: + +get_last_member(sid) + Get offset of the last member of a structure + + @param sid: structure type ID + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if structure has no members, + otherwise returns offset of the last member. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_last_struc_idx in module ida_struct: + +get_last_struc_idx(*args) -> 'uval_t' + get_last_struc_idx() -> uval_t + Get index of last structure. + + @return: BADADDR if no known structures, get_struc_qty()-1 otherwise + +Help on function get_local_tinfo in module idc: + +get_local_tinfo(ordinal) + Get local type information as 'typeinfo' object + + @param ordinal: slot number (1...NumberOfLocalTypes) + @return: None on failure, or (type, fields) tuple. + +Help on function get_manual_insn in module ida_bytes: + +get_manual_insn(*args) -> 'qstring *' + get_manual_insn(ea) -> str + Retrieve the user-specified string for the manual instruction. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @return: size of manual instruction or -1 + +Help on function get_member_cmt in module idc: + +get_member_cmt(sid, member_offset, repeatable) + Get comment of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + @param repeatable: 1: get repeatable comment + 0: get regular comment + + @return: None if bad structure type ID is passed + or no such member in the structure + otherwise returns comment of the specified member. + +Help on function get_member_flag in module idc: + +get_member_flag(sid, member_offset) + Get type of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: -1 if bad structure type ID is passed + or no such member in the structure + otherwise returns type of the member, see bit + definitions above. If the member type is a structure + then function GetMemberStrid() should be used to + get the structure type id. + +Help on function get_member_id in module idc: + +get_member_id(sid, member_offset) + @param sid: structure type ID + @param member_offset:. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: -1 if bad structure type ID is passed or there is + no member at the specified offset. + otherwise returns the member id. + +Help on function get_member_name in module idc: + +get_member_name(sid, member_offset) + Get name of a member of a structure + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: None if bad structure type ID is passed + or no such member in the structure + otherwise returns name of the specified member. + +Help on function get_member_offset in module idc: + +get_member_offset(sid, member_name) + Get offset of a member of a structure by the member name + + @param sid: structure type ID + @param member_name: name of structure member + + @return: -1 if bad structure type ID is passed + or no such member in the structure + otherwise returns offset of the specified member. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_member_qty in module idc: + +get_member_qty(sid) + Get number of members of a structure + + @param sid: structure type ID + + @return: -1 if bad structure type ID is passed otherwise + returns number of members. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_member_size in module idc: + +get_member_size(sid, member_offset) + Get size of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + + @return: None if bad structure type ID is passed, + or no such member in the structure + otherwise returns size of the specified + member in bytes. + +Help on function get_member_strid in module idc: + +get_member_strid(sid, member_offset) + Get structure id of a member + + @param sid: structure type ID + @param member_offset: member offset. The offset can be + any offset in the member. For example, + is a member is 4 bytes long and starts + at offset 2, then 2,3,4,5 denote + the same structure member. + @return: -1 if bad structure type ID is passed + or no such member in the structure + otherwise returns structure id of the member. + If the current member is not a structure, returns -1. + +Help on function get_min_spd_ea in module idc: + +get_min_spd_ea(func_ea) + Return the address with the minimal spd (stack pointer delta) + If there are no SP change points, then return BADADDR. + + @param func_ea: function start + @return: BADDADDR - no such function + +Help on function get_module_name in module idc: + +get_module_name(base) + Get process module name + + @param base: the base address of the module + + @return: required info or None + +Help on function get_module_size in module idc: + +get_module_size(base) + Get process module size + + @param base: the base address of the module + + @return: required info or -1 + +Help on function get_name in module idc: + +get_name(ea, gtn_flags=0) + Get name at the specified address + + @param ea: linear address + @param gtn_flags: how exactly the name should be retrieved. + combination of GN_ bits + + @return: "" - byte has no name + +Help on function get_name_ea in module ida_name: + +get_name_ea(*args) -> 'ea_t' + get_name_ea(_from, name) -> ea_t + Get the address of a name. This function resolves a name into an address. It can + handle regular global and local names, as well as debugger names. + + @param from: (C++: ea_t) linear address where the name is used. If specified, the local + labels of the function at the specified address will will be + checked. BADADDR means that local names won't be consulted. + @param name: (C++: const char *) any name in the program or nullptr + @return: address of the name or BADADDR + +Help on function get_name_ea_simple in module idc: + +get_name_ea_simple(name) + Get linear address of a name + + @param name: name of program byte + + @return: address of the name + BADADDR - No such name + +Help on function get_next_bmask in module ida_enum: + +get_next_bmask(*args) -> 'bmask_t' + get_next_bmask(enum_id, bmask) -> bmask_t + Get next bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value higher than the specified value, or + DEFMASK + +Help on function get_next_cref_from in module ida_xref: + +get_next_cref_from(*args) -> 'ea_t' + get_next_cref_from(frm, current) -> ea_t + Get next instruction referenced from the specified instruction. + + @param from: (C++: ea_t) linear address of referencing instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_from() or previous call to + get_next_cref_from() functions. + @return: next referenced address or BADADDR. + +Help on function get_next_cref_to in module ida_xref: + +get_next_cref_to(*args) -> 'ea_t' + get_next_cref_to(to, current) -> ea_t + Get next instruction referencing to the specified instruction. + + @param to: (C++: ea_t) linear address of referenced instruction + @param current: (C++: ea_t) linear address of current referenced instruction This value is + returned by get_first_cref_to() or previous call to + get_next_cref_to() functions. + @return: linear address of the next referencing instruction or BADADDR. + +Help on function get_next_dref_from in module ida_xref: + +get_next_dref_from(*args) -> 'ea_t' + get_next_dref_from(frm, current) -> ea_t + Get next data referenced from the specified address. + + @param from: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) linear address of current referenced data. This value is + returned by get_first_dref_from() or previous call to + get_next_dref_from() functions. + @return: linear address of next data or BADADDR. + +Help on function get_next_dref_to in module ida_xref: + +get_next_dref_to(*args) -> 'ea_t' + get_next_dref_to(to, current) -> ea_t + Get address of instruction/data referencing to the specified data + + @param to: (C++: ea_t) linear address of referencing instruction or data + @param current: (C++: ea_t) current linear address. This value is returned by + get_first_dref_to() or previous call to get_next_dref_to() + functions. + @return: BADADDR if nobody refers to the specified data. + +Help on function get_next_enum_member in module idc: + +get_next_enum_member(enum_id, value, bmask) + Get next constant in the enum + + @param enum_id: id of enum + @param bmask: bitmask of the constant ordinary enums accept only ida_enum.DEFMASK as a bitmask + @param value: value of the current constant + + @return: value of a constant with value higher than the specified + value. idaapi.BADNODE no such constants exist. + All constants are sorted by their values as unsigned longs. + +Help on function get_next_fchunk in module idc: + +get_next_fchunk(ea) + Get next function chunk + + @param ea: any address + + @return: the starting address of the next function chunk or BADADDR + + @note: This function enumerates all chunks of all functions in the database + +Help on function get_next_fcref_from in module ida_xref: + +get_next_fcref_from(*args) -> 'ea_t' + get_next_fcref_from(frm, current) -> ea_t + + @param from: ea_t + @param current: ea_t + +Help on function get_next_fcref_to in module ida_xref: + +get_next_fcref_to(*args) -> 'ea_t' + get_next_fcref_to(to, current) -> ea_t + + @param to: ea_t + @param current: ea_t + +Help on function get_next_fixup_ea in module ida_fixup: + +get_next_fixup_ea(*args) -> 'ea_t' + get_next_fixup_ea(ea) -> ea_t + Find next address with fixup information + + @param ea: (C++: ea_t) current address + @return: the next address with fixup information, or BADADDR + +Help on function get_next_func in module idc: + +get_next_func(ea) + Find next function + + @param ea: any address belonging to the function + + @return: BADADDR - no more functions + otherwise returns the next function start address + +Help on function get_next_hash_key in module idc: + +get_next_hash_key(hash_id, key) + Get the next key in the hash. + + @param hash_id: The hash ID. + @param key: The current key. + + @return: the next key, 0 otherwise + +Help on function get_next_index in module idc: + +get_next_index(tag, array_id, idx) + Get index of the next existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of the current element. + + @return: -1 if no more elements, otherwise returns index of the + next array element of given type. + +Help on function get_next_module in module idc: + +get_next_module(base) + Enumerate process modules + + @param base: previous module's base address + + @return: next module's base address or None on failure + +Help on function get_next_offset in module idc: + +get_next_offset(sid, offset) + Get next offset in a structure + + @param sid: structure type ID + @param offset: current offset + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if no (more) offsets in the structure, + otherwise returns next offset in a structure. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + This function returns a member offset or a hole offset. + It will return size of the structure if input + 'offset' belongs to the last member of the structure. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_next_seg in module idc: + +get_next_seg(ea) + Get next segment + + @param ea: linear address + + @return: start of the next segment + BADADDR - no next segment + +Help on function get_next_struc_idx in module ida_struct: + +get_next_struc_idx(*args) -> 'uval_t' + get_next_struc_idx(idx) -> uval_t + Get next struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is out of bounds, otherwise idx++ + +Help on function get_numbered_type_name in module idc: + +get_numbered_type_name(ordinal) + Retrieve a local type name + + @param ordinal: slot number (1...NumberOfLocalTypes) + + returns: local type name or None + +Help on function get_operand_type in module idc: + +get_operand_type(ea, n) + Get type of instruction operand + + @param ea: linear address of instruction + @param n: number of operand: + 0 - the first operand + 1 - the second operand + + @return: any of o_* constants or -1 on error + +Help on function get_operand_value in module idc: + +get_operand_value(ea, n) + Get number used in the operand + + This function returns an immediate number used in the operand + + @param ea: linear address of instruction + @param n: the operand number + + @return: value + operand is an immediate value => immediate value + operand has a displacement => displacement + operand is a direct memory ref => memory address + operand is a register => register number + operand is a register phrase => phrase number + otherwise => -1 + +Help on function get_ordinal_qty in module idc: + +get_ordinal_qty() + Get number of local types + 1 + + @return: value >= 1. 1 means that there are no local types. + +Help on function get_original_byte in module ida_bytes: + +get_original_byte(*args) -> 'uint64' + get_original_byte(ea) -> uint64 + Get original byte value (that was before patching). This function works for wide + byte processors too. + + @param ea: (C++: ea_t) + +Help on function get_prev_bmask in module ida_enum: + +get_prev_bmask(*args) -> 'bmask_t' + get_prev_bmask(enum_id, bmask) -> bmask_t + Get prev bitmask in the enum (bitfield) + + @param enum_id: (C++: enum_t) id of enum + @param bmask: (C++: bmask_t) the current bitmask + @return: value of a bitmask with value lower than the specified value, or + DEFMASK + +Help on function get_prev_enum_member in module idc: + +get_prev_enum_member(enum_id, value, bmask) + Get prev constant in the enum + + @param enum_id: id of enum + @param bmask : bitmask of the constant + ordinary enums accept only ida_enum.DEFMASK as a bitmask + @param value: value of the current constant + + @return: value of a constant with value lower than the specified + value. idaapi.BADNODE no such constants exist. + All constants are sorted by their values as unsigned longs. + +Help on function get_prev_fchunk in module idc: + +get_prev_fchunk(ea) + Get previous function chunk + + @param ea: any address + + @return: the starting address of the function chunk or BADADDR + + @note: This function enumerates all chunks of all functions in the database + +Help on function get_prev_fixup_ea in module ida_fixup: + +get_prev_fixup_ea(*args) -> 'ea_t' + get_prev_fixup_ea(ea) -> ea_t + Find previous address with fixup information + + @param ea: (C++: ea_t) current address + @return: the previous address with fixup information, or BADADDR + +Help on function get_prev_func in module idc: + +get_prev_func(ea) + Find previous function + + @param ea: any address belonging to the function + + @return: BADADDR - no more functions + otherwise returns the previous function start address + +Help on function get_prev_hash_key in module idc: + +get_prev_hash_key(hash_id, key) + Get the previous key in the hash. + + @param hash_id: The hash ID. + @param key: The current key. + + @return: the previous key, 0 otherwise + +Help on function get_prev_index in module idc: + +get_prev_index(tag, array_id, idx) + Get index of the previous existing array element. + + @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR + @param array_id: The array ID. + @param idx: Index of the current element. + + @return: -1 if no more elements, otherwise returns index of the + previous array element of given type. + +Help on function get_prev_offset in module idc: + +get_prev_offset(sid, offset) + Get previous offset in a structure + + @param sid: structure type ID + @param offset: current offset + + @return: -1 if bad structure type ID is passed, + ida_idaapi.BADADDR if no (more) offsets in the structure, + otherwise returns previous offset in a structure. + + @note: IDA allows 'holes' between members of a + structure. It treats these 'holes' + as unnamed arrays of bytes. + This function returns a member offset or a hole offset. + It will return size of the structure if input + 'offset' is bigger than the structure size. + + @note: Union members are, in IDA's internals, located + at subsequent byte offsets: member 0 -> offset 0x0, + member 1 -> offset 0x1, etc... + +Help on function get_prev_struc_idx in module ida_struct: + +get_prev_struc_idx(*args) -> 'uval_t' + get_prev_struc_idx(idx) -> uval_t + Get previous struct index. + + @param idx: (C++: uval_t) + @return: BADADDR if resulting index is negative, otherwise idx - 1 + +Help on function get_process_state in module ida_dbg: + +get_process_state(*args) -> 'int' + get_process_state() -> int + Return the state of the currently debugged process. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @return: one of Debugged process states + +Help on function get_processes in module ida_dbg: + +get_processes(*args) -> 'ssize_t' + get_processes(proclist) -> ssize_t + Take a snapshot of running processes and return their description. \sq{Type, + Synchronous function, Notification, none (synchronous function)} + + @param proclist: (C++: procinfo_vec_t *) array with information about each running process + @return: number of processes or -1 on error + +Help on function get_qword in module ida_bytes: + +get_qword(*args) -> 'uint64' + get_qword(ea) -> uint64 + Get one qword (64-bit) of the program at 'ea'. This function takes into account + order of bytes specified in idainfo::is_be() This function works only for 8bit + byte processors. + + @param ea: (C++: ea_t) + +Help on function get_reg_val in module ida_dbg: + +get_reg_val(*args) -> 'PyObject *' + get_reg_val(regname, regval) -> bool + Get register value as an unsigned 64-bit int. + + @param regname: (C++: const char *) char const * + @param regval: regval_t * + + get_reg_val(regname, ival) -> bool + + @param regname: char const * + @param ival: uint64 * + + get_reg_val(regname) -> bool, float, int + + @param regname: char const * + +Help on function get_ret_tev_return in module ida_dbg: + +get_ret_tev_return(*args) -> 'ea_t' + get_ret_tev_return(n) -> ea_t + Get the return address from a function return trace event. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + + @param n: (C++: int) number of trace event, is in range 0..get_tev_qty()-1. 0 represents + the latest added trace event. + @return: BADADDR if not a function return event. + +Help on function get_root_filename in module ida_nalt: + +get_root_filename(*args) -> 'size_t' + get_root_filename() -> str + Get file name only of the input file. + +Help on function get_screen_ea in module ida_kernwin: + +get_screen_ea(*args) -> 'ea_t' + get_screen_ea() -> ea_t + Get the address at the screen cursor (ui_screenea) + +Help on function get_segm_attr in module idc: + +get_segm_attr(segea, attr) + Get segment attribute + + @param segea: any address within segment + @param attr: one of SEGATTR_... constants + +Help on function get_segm_by_sel in module idc: + +get_segm_by_sel(base) + Get segment by segment base + + @param base: segment base paragraph or selector + + @return: linear address of the start of the segment or BADADDR + if no such segment + +Help on function get_segm_end in module idc: + +get_segm_end(ea) + Get end address of a segment + + @param ea: any address in the segment + + @return: end of segment (an address past end of the segment) + BADADDR - the specified address doesn't belong to any segment + +Help on function get_segm_name in module idc: + +get_segm_name(ea) + Get name of a segment + + @param ea: any address in the segment + + @return: "" - no segment at the specified address + +Help on function get_segm_start in module idc: + +get_segm_start(ea) + Get start address of a segment + + @param ea: any address in the segment + + @return: start of segment + BADADDR - the specified address doesn't belong to any segment + +Help on function get_source_linnum in module ida_nalt: + +get_source_linnum(*args) -> 'uval_t' + get_source_linnum(ea) -> uval_t + + @param ea: ea_t + +Help on function get_sourcefile in module ida_lines: + +get_sourcefile(*args) -> 'char const *' + get_sourcefile(ea, bounds=None) -> char const * + Get name of source file occupying the given address. + + @param ea: (C++: ea_t) linear address + @param bounds: (C++: range_t *) pointer to the output buffer with the address range for the + current file. May be nullptr. + @return: nullptr if source file information is not found, otherwise returns + pointer to file name + +Help on function get_sp_delta in module idc: + +get_sp_delta(ea) + Get modification of SP made by the instruction + + @param ea: end address of the instruction + i.e.the last address of the instruction+1 + + @return: Get modification of SP made at the specified location + If the specified location doesn't contain a SP change point, return 0 + Otherwise return delta of SP modification + +Help on function get_spd in module idc: + +get_spd(ea) + Get current delta for the stack pointer + + @param ea: end address of the instruction + i.e.the last address of the instruction+1 + + @return: The difference between the original SP upon + entering the function and SP for the specified address + +Help on function get_sreg in module idc: + +get_sreg(ea, reg) + Get value of segment register at the specified address + + @param ea: linear address + @param reg: name of segment register + + @return: the value of the segment register or -1 on error + + @note: The segment registers in 32bit program usually contain selectors, + so to get paragraph pointed to by the segment register you need to + call sel2para() function. + +Help on function get_step_trace_options in module ida_dbg: + +get_step_trace_options(*args) -> 'int' + get_step_trace_options() -> int + Get current step tracing options. \sq{Type, Synchronous function, Notification, + none (synchronous function)} + + @return: Step trace options + +Help on function get_str_type in module idc: + +get_str_type(ea) + Get string type + + @param ea: linear address + + @return: One of STRTYPE_... constants + +Help on function get_strlit_contents in module idc: + +get_strlit_contents(ea, length=-1, strtype=0) + Get string contents + @param ea: linear address + @param length: string length. -1 means to calculate the max string length + @param strtype: the string type (one of STRTYPE_... constants) + + @return: string contents or empty string + +Help on function get_struc_by_idx in module ida_struct: + +get_struc_by_idx(*args) -> 'tid_t' + get_struc_by_idx(idx) -> tid_t + Get struct id by struct number. + + @param idx: (C++: uval_t) + +Help on function get_struc_cmt in module ida_struct: + +get_struc_cmt(*args) -> 'qstring *' + get_struc_cmt(id, repeatable) -> str + Get struct comment. + + @param id: (C++: tid_t) + @param repeatable: (C++: bool) + +Help on function get_struc_id in module ida_struct: + +get_struc_id(*args) -> 'tid_t' + get_struc_id(name) -> tid_t + Get struct id by name. + + @param name: (C++: const char *) char const * + +Help on function get_struc_idx in module ida_struct: + +get_struc_idx(*args) -> 'uval_t' + get_struc_idx(id) -> uval_t + Get internal number of the structure. + + @param id: (C++: tid_t) + +Help on function get_struc_name in module ida_struct: + +get_struc_name(*args) -> 'qstring *' + get_struc_name(id, flags=0) -> str + + @param id: tid_t + @param flags: int + +Help on function get_struc_qty in module ida_struct: + +get_struc_qty(*args) -> 'size_t' + get_struc_qty() -> size_t + Get number of known structures. + +Help on function get_struc_size in module ida_struct: + +get_struc_size(*args) -> 'asize_t' + get_struc_size(sptr) -> asize_t + Get struct size (also see get_struc_size(const struc_t *)) + + @param sptr: struc_t const * + + get_struc_size(id) -> asize_t + + @param id: tid_t + +Help on function get_tev_ea in module ida_dbg: + +get_tev_ea(*args) -> 'ea_t' + get_tev_ea(n) -> ea_t + + @param n: int + +Help on function get_tev_reg_mem in module ida_dbg: + +get_tev_reg_mem(tev, idx) + +Help on function get_tev_reg_mem_ea in module ida_dbg: + +get_tev_reg_mem_ea(tev, idx) + +Help on function get_tev_reg_mem_qty in module ida_dbg: + +get_tev_reg_mem_qty(tev) + +Help on function get_tev_qty in module ida_dbg: + +get_tev_qty(*args) -> 'int' + get_tev_qty() -> int + Get number of trace events available in trace buffer. \sq{Type, Synchronous + function, Notification, none (synchronous function)} + +Help on function get_tev_reg_val in module ida_dbg: + +get_tev_reg_val(tev, reg) + +Help on function get_tev_tid in module ida_dbg: + +get_tev_tid(*args) -> 'int' + get_tev_tid(n) -> int + + @param n: int + +Help on function get_tev_type in module ida_dbg: + +get_tev_type(*args) -> 'int' + get_tev_type(n) -> int + + @param n: int + +Help on function get_thread_qty in module ida_dbg: + +get_thread_qty(*args) -> 'int' + get_thread_qty() -> int + Get number of threads. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + +Help on function get_tinfo in module idc: + +get_tinfo(ea) + Get type information of function/variable as 'typeinfo' object + + @param ea: the address of the object + @return: None on failure, or (type, fields) tuple. + +Help on function get_trace_file_desc in module ida_dbg: + +get_trace_file_desc(*args) -> 'qstring *' + get_trace_file_desc(filename) -> str + Get the file header of the specified trace file. + + @param filename: (C++: const char *) char const * + +Help on function get_type in module idc: + +get_type(ea) + Get type of function/variable + + @param ea: the address of the object + + @return: type string or None if failed + +Help on function get_wide_byte in module ida_bytes: + +get_wide_byte(*args) -> 'uint64' + get_wide_byte(ea) -> uint64 + Get one wide byte of the program at 'ea'. Some processors may access more than + 8bit quantity at an address. These processors have 32-bit byte organization from + the IDA's point of view. + + @param ea: (C++: ea_t) + +Help on function get_wide_dword in module ida_bytes: + +get_wide_dword(*args) -> 'uint64' + get_wide_dword(ea) -> uint64 + Get two wide words (4 'bytes') of the program at 'ea'. Some processors may + access more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + @note: this function works incorrectly if processor_t::nbits > 16 + + @param ea: (C++: ea_t) + +Help on function get_wide_word in module ida_bytes: + +get_wide_word(*args) -> 'uint64' + get_wide_word(ea) -> uint64 + Get one wide word (2 'byte') of the program at 'ea'. Some processors may access + more than 8bit quantity at an address. These processors have 32-bit byte + organization from the IDA's point of view. This function takes into account + order of bytes specified in idainfo::is_be() + + @param ea: (C++: ea_t) + +Help on function get_xref_type in module idc: + +get_xref_type() + Return type of the last xref obtained by + [RD]first/next[B0] functions. + + @return: constants fl_* or dr_* + +Help on function getn_enum in module ida_enum: + +getn_enum(*args) -> 'enum_t' + getn_enum(idx) -> enum_t + Get enum by its index in the list of enums (0..get_enum_qty()-1). + + @param idx: (C++: size_t) + +Help on function getn_thread in module ida_dbg: + +getn_thread(*args) -> 'thid_t' + getn_thread(n) -> thid_t + Get the ID of a thread. \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 + @return: NO_THREAD if the thread doesn't exist. + +Help on function getn_thread_name in module ida_dbg: + +getn_thread_name(*args) -> 'char const *' + getn_thread_name(n) -> char const * + Get the NAME of a thread \sq{Type, Synchronous function, Notification, none + (synchronous function)} + + @param n: (C++: int) number of thread, is in range 0..get_thread_qty()-1 or -1 for the + current thread + @return: thread name or nullptr if the thread doesn't exist. + +Help on function guess_type in module idc: + +guess_type(ea) + Guess type of function/variable + + @param ea: the address of the object, can be the structure member id too + + @return: type string or None if failed + +Help on function hasName in module idc: + +hasName(F) + +Help on function hasUserName in module idc: + +hasUserName(F) + +Help on function has_value in module idc: + +has_value(F) + +Help on function here in module idc: + +here() + # Convenience functions: + +Help on function idadir in module idc: + +idadir() + Get IDA directory + + This function returns the directory where IDA.EXE resides + +Help on function import_type in module idc: + +import_type(idx, type_name) + Copy information from type library to database + Copy structure, union, or enum definition from the type library + to the IDA database. + + @param idx: the position of the new type in the list of + types (structures or enums) -1 means at the end of the list + @param type_name: name of type to copy + + @return: BADNODE-failed, otherwise the type id (structure id or enum id) + +Help on function isBin0 in module idc: + +isBin0(F) + +Help on function isBin1 in module idc: + +isBin1(F) + +Help on function isDec0 in module idc: + +isDec0(F) + +Help on function isDec1 in module idc: + +isDec1(F) + +Help on function isExtra in module idc: + +isExtra(F) + +Help on function isHex0 in module idc: + +isHex0(F) + +Help on function isHex1 in module idc: + +isHex1(F) + +Help on function isOct0 in module idc: + +isOct0(F) + +Help on function isOct1 in module idc: + +isOct1(F) + +Help on function isRef in module idc: + +isRef(F) + +Help on function is_align in module idc: + +is_align(F) + +Help on function is_bf in module ida_enum: + +is_bf(*args) -> 'bool' + is_bf(id) -> bool + Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are + allowed) + + @param id: (C++: enum_t) + +Help on function is_byte in module idc: + +is_byte(F) + +Help on function is_char0 in module idc: + +is_char0(F) + +Help on function is_char1 in module idc: + +is_char1(F) + +Help on function is_code in module idc: + +is_code(F) + +Help on function is_data in module idc: + +is_data(F) + +Help on function is_defarg0 in module idc: + +is_defarg0(F) + +Help on function is_defarg1 in module idc: + +is_defarg1(F) + +Help on function is_double in module idc: + +is_double(F) + +Help on function is_dword in module idc: + +is_dword(F) + +Help on function is_enum0 in module idc: + +is_enum0(F) + +Help on function is_enum1 in module idc: + +is_enum1(F) + +Help on function is_event_handled in module idc: + +is_event_handled() + Is the debug event handled? + + @return: boolean + +Help on function is_float in module idc: + +is_float(F) + +Help on function is_flow in module idc: + +is_flow(F) + +Help on function is_head in module idc: + +is_head(F) + +Help on function is_loaded in module idc: + +is_loaded(ea) + Is the byte initialized? + +Help on function is_manual0 in module idc: + +is_manual0(F) + +Help on function is_manual1 in module idc: + +is_manual1(F) + +Help on function is_mapped in module idc: + +is_mapped(ea) + +Help on function is_off0 in module idc: + +is_off0(F) + +Help on function is_off1 in module idc: + +is_off1(F) + +Help on function is_oword in module idc: + +is_oword(F) + +Help on function is_pack_real in module idc: + +is_pack_real(F) + +Help on function is_qword in module idc: + +is_qword(F) + +Help on function is_seg0 in module idc: + +is_seg0(F) + +Help on function is_seg1 in module idc: + +is_seg1(F) + +Help on function is_stkvar0 in module idc: + +is_stkvar0(F) + +Help on function is_stkvar1 in module idc: + +is_stkvar1(F) + +Help on function is_strlit in module idc: + +is_strlit(F) + +Help on function is_stroff0 in module idc: + +is_stroff0(F) + +Help on function is_stroff1 in module idc: + +is_stroff1(F) + +Help on function is_struct in module idc: + +is_struct(F) + +Help on function is_tail in module idc: + +is_tail(F) + +Help on function is_tbyte in module idc: + +is_tbyte(F) + +Help on function is_union in module idc: + +is_union(sid) + Is a structure a union? + + @param sid: structure type ID + + @return: 1: yes, this is a union id + 0: no + + @note: Unions are a special kind of structures + +Help on function is_unknown in module idc: + +is_unknown(F) + +Help on function is_valid_trace_file in module ida_dbg: + +is_valid_trace_file(*args) -> 'bool' + is_valid_trace_file(filename) -> bool + Is the specified file a valid trace file for the current database? + + @param filename: (C++: const char *) char const * + +Help on function is_word in module idc: + +is_word(F) + +Help on function jumpto in module ida_kernwin: + +jumpto(*args) -> 'bool' + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + Set cursor position in custom ida viewer. + + @param custom_viewer: (C++: TWidget *) view + @param place: (C++: place_t *) target position + @param uijmp_flags: int + + @return: success + jumpto(custom_viewer, place, x, y) -> bool + + @param custom_viewer: TWidget * + @param place: place_t * + @param x: int + +Help on function load_and_run_plugin in module ida_loader: + +load_and_run_plugin(*args) -> 'bool' + load_and_run_plugin(name, arg) -> bool + Load & run a plugin. + + @param name: (C++: const char *) char const * + @param arg: (C++: size_t) + +Help on function load_debugger in module ida_dbg: + +load_debugger(*args) -> 'bool' + load_debugger(dbgname, use_remote) -> bool + + @param dbgname: char const * + @param use_remote: bool + +Help on function load_trace_file in module ida_dbg: + +load_trace_file(*args) -> 'qstring *' + load_trace_file(filename) -> str + Load a recorded trace file in the 'Tracing' window. If the call succeeds and + 'buf' is not null, the description of the trace stored in the binary trace file + will be returned in 'buf' + + @param filename: (C++: const char *) char const * + +Help on function loadfile in module idc: + +loadfile(filepath, pos, ea, size) + +Help on function ltoa in module idc: + +ltoa(n, radix) + +Help on function make_array in module idc: + +make_array(ea, nitems) + Create an array. + + @param ea: linear address + @param nitems: size of array in items + + @note: This function will create an array of the items with the same type as + the type of the item at 'ea'. If the byte at 'ea' is undefined, then + this function will create an array of bytes. + +Help on function move_segm in module idc: + +move_segm(ea, to, flags) + Move a segment to a new address + This function moves all information to the new address + It fixes up address sensitive information in the kernel + The total effect is equal to reloading the segment to the target address + + @param ea: any address within the segment to move + @param to: new segment start address + @param flags: combination MFS_... constants + + @returns: MOVE_SEGM_... error code + +Help on function msg in module ida_kernwin: + +msg(*args) -> '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. + + @param message: message to print (formatting is done in Python) + + This function can be used to debug IDAPython scripts + +Help on function next_addr in module ida_bytes: + +next_addr(*args) -> 'ea_t' + next_addr(ea) -> ea_t + Get next address in the program (i.e. next address which has flags). + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function next_func_chunk in module idc: + +next_func_chunk(funcea, tailea) + Get the next function chunk of the specified function + + @param funcea: any address in the function + @param tailea: any address in the current chunk + + @return: the starting address of the next function chunk or BADADDR + + @note: This function returns the next chunk of the specified function + +Help on function next_head in module idc: + +next_head(ea, maxea=BADADDR)↗ + Get next defined item (instruction or data) in the program + + @param ea: linear address to start search from + @param maxea: the search will stop at the address + maxea is not included in the search range + + @return: BADADDR - no (more) defined items + +Help on function next_not_tail in module ida_bytes: + +next_not_tail(*args) -> 'ea_t' + next_not_tail(ea) -> ea_t + Get address of next non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function op_bin in module ida_bytes: + +op_bin(*args) -> 'bool' + op_bin(ea, n) -> bool + set op type to bin_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_chr in module ida_bytes: + +op_chr(*args) -> 'bool' + op_chr(ea, n) -> bool + set op type to char_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_dec in module ida_bytes: + +op_dec(*args) -> 'bool' + op_dec(ea, n) -> bool + set op type to dec_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_enum in module ida_bytes: + +op_enum(*args) -> 'bool' + op_enum(ea, n, id, serial) -> bool + Set operand representation to be 'enum_t'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @param id: (C++: enum_t) id of enum + @param serial: (C++: uchar) the serial number of the constant in the enumeration, usually 0. + the serial numbers are used if the enumeration contains several + constants with the same value + @return: success + +Help on function op_flt in module ida_bytes: + +op_flt(*args) -> 'bool' + op_flt(ea, n) -> bool + set op type to flt_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_hex in module ida_bytes: + +op_hex(*args) -> 'bool' + op_hex(ea, n) -> bool + set op type to hex_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function set_forced_operand in module ida_bytes: + +set_forced_operand(*args) -> 'bool' + set_forced_operand(ea, n, op) -> bool + Set forced operand. + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, 2) + @param op: (C++: const char *) text of operand + * nullptr: do nothing (return 0) + * "" : delete forced operand + @return: success + +Help on function op_num in module ida_bytes: + +op_num(*args) -> 'bool' + op_num(ea, n) -> bool + set op type to num_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_oct in module ida_bytes: + +op_oct(*args) -> 'bool' + op_oct(ea, n) -> bool + set op type to oct_flag() + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function op_offset in module ida_offset: + +op_offset(*args) -> 'bool' + op_offset(ea, n, type_and_flags, target=BADADDR, base=0, tdelta=0) -> bool + See op_offset_ex() + + @param ea: (C++: ea_t) + @param n: (C++: int) + @param type_and_flags: (C++: uint32) + @param target: (C++: ea_t) + @param base: (C++: ea_t) + @param tdelta: (C++: adiff_t) + +Help on function op_offset_high16 in module idc: + +op_offset_high16(ea, n, target) + Convert operand to a high offset + High offset is the upper 16bits of an offset. + This type is used by TMS320C6 processors (and probably by other + RISC processors too) + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + @param target: the full value (all 32bits) of the offset + +Help on function op_plain_offset in module idc: + +op_plain_offset(ea, n, base) + Convert operand to an offset + (for the explanations of 'ea' and 'n' please see op_bin()) + + Example: + ======== + + seg000:2000 dw 1234h + + and there is a segment at paragraph 0x1000 and there is a data item + within the segment at 0x1234: + + seg000:1234 MyString db 'Hello, world!',0 + + Then you need to specify a linear address of the segment base to + create a proper offset: + + op_plain_offset(["seg000",0x2000],0,0x10000); + + and you will have: + + seg000:2000 dw offset MyString + + Motorola 680x0 processor have a concept of "outer offsets". + If you want to create an outer offset, you need to combine number + of the operand with the following bit: + + Please note that the outer offsets are meaningful only for + Motorola 680x0. + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + @param base: base of the offset as a linear address + If base == BADADDR then the current operand becomes non-offset + +Help on function op_seg in module ida_bytes: + +op_seg(*args) -> 'bool' + op_seg(ea, n) -> bool + Set operand representation to be 'segment'. If applied to unexplored bytes, + converts them to 16/32bit word data + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stkvar in module ida_bytes: + +op_stkvar(*args) -> 'bool' + op_stkvar(ea, n) -> bool + Set operand representation to be 'stack variable'. Should be applied to an + instruction within a function. Should be applied after creating a stack var + using insn_t::create_stkvar(). + + @param ea: (C++: ea_t) linear address + @param n: (C++: int) number of operand (0, 1, -1) + @return: success + +Help on function op_stroff in module idc: + +op_stroff(ea, n, strid, delta) + Convert operand to an offset in a structure + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + @param strid: id of a structure type + @param delta: struct offset delta. usually 0. denotes the difference + between the structure base and the pointer into the structure. + +Help on function parse_decl in module idc: + +parse_decl(inputtype, flags) + Parse type declaration + + @param inputtype: file name or C declarations (depending on the flags) + @param flags: combination of PT_... constants or 0 + + @return: None on failure or (name, type, fields) tuple + +Help on function parse_decls in module idc: + +parse_decls(inputtype, flags=0) + Parse type declarations + + @param inputtype: file name or C declarations (depending on the flags) + @param flags: combination of PT_... constants or 0 + + @return: number of parsing errors (0 no errors) + +Help on function patch_byte in module ida_bytes: + +patch_byte(*args) -> 'bool' + patch_byte(ea, x) -> bool + Patch a byte of the program. The original value of the byte is saved and can be + obtained by get_original_byte(). This function works for wide byte processors + too. + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function put_dbg_byte in module ida_dbg: + +put_dbg_byte(*args) -> 'bool' + put_dbg_byte(ea, x) -> bool + Change one byte of the debugged process memory. + + @param ea: (C++: ea_t) linear address + @param x: (C++: uint32) byte value + @return: true if the process memory has been modified + +Help on function patch_dword in module ida_bytes: + +patch_dword(*args) -> 'bool' + patch_dword(ea, x) -> bool + Patch a dword of the program. The original value of the dword is saved and can + be obtained by get_original_dword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_qword in module ida_bytes: + +patch_qword(*args) -> 'bool' + patch_qword(ea, x) -> bool + Patch a qword of the program. The original value of the qword is saved and can + be obtained by get_original_qword(). This function DOESN'T work for wide byte + processors. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function patch_word in module ida_bytes: + +patch_word(*args) -> 'bool' + patch_word(ea, x) -> bool + Patch a word of the program. The original value of the word is saved and can be + obtained by get_original_word(). This function works for wide byte processors + too. This function takes into account order of bytes specified in + idainfo::is_be() + @retval true: the database has been modified, + @retval false: the debugger is running and the process' memory has value 'x' at + address 'ea', or the debugger is not running, and the IDB has + value 'x' at address 'ea already. + + @param ea: (C++: ea_t) + @param x: (C++: uint64) + +Help on function plan_and_wait in module idc: + +plan_and_wait(sEA, eEA, final_pass=True) + Perform full analysis of the range + + @param sEA: starting linear address + @param eEA: ending linear address (excluded) + @param final_pass: make the final pass over the specified range + + @return: 1-ok, 0-Ctrl-Break was pressed. + +Help on function plan_to_apply_idasgn in module ida_funcs: + +plan_to_apply_idasgn(*args) -> 'int' + plan_to_apply_idasgn(fname) -> int + Add a signature file to the list of planned signature files. + + @param fname: (C++: const char *) file name. should not contain directory part. + @return: 0 if failed, otherwise number of planned (and applied) signatures + +Help on function prev_addr in module ida_bytes: + +prev_addr(*args) -> 'ea_t' + prev_addr(ea) -> ea_t + Get previous address in the program. + + @param ea: (C++: ea_t) + @return: BADADDR if no such address exist. + +Help on function prev_head in module idc: + +prev_head(ea, minea=0) + Get previous defined item (instruction or data) in the program + + @param ea: linear address to start search from + @param minea: the search will stop at the address + minea is included in the search range + + @return: BADADDR - no (more) defined items + +Help on function prev_not_tail in module ida_bytes: + +prev_not_tail(*args) -> 'ea_t' + prev_not_tail(ea) -> ea_t + Get address of previous non-tail byte. + + @param ea: (C++: ea_t) + @return: BADADDR if none exists. + +Help on function print_decls in module idc: + +print_decls(ordinals, flags) + Print types in a format suitable for use in a header file + + @param ordinals: comma-separated list of type ordinals + @param flags: combination of PDF_... constants or 0 + + @return: string containing the type definitions + +Help on function print_insn_mnem in module idc: + +print_insn_mnem(ea) + Get instruction mnemonics + + @param ea: linear address of instruction + + @return: "" - no instruction at the specified location + + @note: this function may not return exactly the same mnemonics + as you see on the screen. + +Help on function print_operand in module idc: + +print_operand(ea, n) + Get operand of an instruction or data + + @param ea: linear address of the item + @param n: number of operand: + 0 - the first operand + 1 - the second operand + + @return: the current text representation of operand or "" + +Help on function process_config_line in module idc: + +process_config_line(directive) + Obsolete. Please use ida_idp.process_config_directive(). + +Help on function process_ui_action in module idc: + +process_ui_action(name, flags=0) + Invokes an IDA UI action by name + + @param name: Command name + @param flags: Reserved. Must be zero + @return: Boolean + +Help on function mark_position in module ida_idc: + +mark_position(*args) -> 'void' + mark_position(ea, lnnum, x, y, slot, comment) + + @param ea: ea_t + @param lnnum: int + @param x: short + @param y: short + @param slot: int32 + @param comment: char const * + +Help on function qexit in module ida_pro: + +qexit(*args) -> 'void' + qexit(code) + Call qatexit functions, shut down UI and kernel, and exit. + + @param code: (C++: int) exit code + +Help on function qsleep in module idc: + +qsleep(milliseconds) + qsleep the specified number of milliseconds + This function suspends IDA for the specified amount of time + + @param milliseconds: time to sleep + +Help on function read_dbg_byte in module idc: + +read_dbg_byte(ea) + Get value of program byte using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function read_dbg_dword in module idc: + +read_dbg_dword(ea) + Get value of program double-word using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function dbg_read_memory in module ida_idd: + +dbg_read_memory(*args) -> 'PyObject *' + dbg_read_memory(ea, sz) -> PyObject * + Reads from the debugee's memory at the specified ea + + @param ea: ea_t + @param sz: size_t + @return: - The read buffer (as a string) + - Or None on failure + +Help on function read_dbg_qword in module idc: + +read_dbg_qword(ea) + Get value of program quadro-word using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function read_dbg_word in module idc: + +read_dbg_word(ea) + Get value of program word using the debugger memory + + @param ea: linear address + @return: The value or None on failure. + +Help on function read_selection_end in module idc: + +read_selection_end() + Get end address of the selected range + + @return: BADADDR - the user has not selected an range + +Help on function read_selection_start in module idc: + +read_selection_start() + Get start address of the selected range + returns BADADDR - the user has not selected an range + +Help on function readlong in module idc: + +readlong(handle, mostfirst) + +Help on function readshort in module idc: + +readshort(handle, mostfirst) + +Help on function readstr in module idc: + +readstr(handle) + +Help on function rebase_program in module ida_segment: + +rebase_program(*args) -> 'int' + rebase_program(delta, flags) -> int + Rebase the whole program by 'delta' bytes. + + @param delta: (C++: adiff_t) number of bytes to move the program + @param flags: (C++: int) Move segment flags it is recommended to use MSF_FIXONCE so that + the loader takes care of global variables it stored in the + database + @return: Move segment result codes + +Help on function recalc_spd in module ida_frame: + +recalc_spd(*args) -> 'bool' + recalc_spd(cur_ea) -> bool + Recalculate SP delta for an instruction that stops execution. The next + instruction is not reached from the current instruction. We need to recalculate + SP for the next instruction. + + This function will create a new automatic SP register change point if necessary. + It should be called from the emulator (emu.cpp) when auto_state == AU_USED if + the current instruction doesn't pass the execution flow to the next instruction. + + @param cur_ea: (C++: ea_t) linear address of the current instruction + @retval 1: new stkpnt is added + @retval 0: nothing is changed + +Help on function refresh_debugger_memory in module ida_dbg: + +refresh_debugger_memory(*args) -> 'PyObject *' + refresh_debugger_memory() -> PyObject * + Refreshes the debugger memory + + @return: Nothing + +Help on function refresh_idaview_anyway in module ida_kernwin: + +refresh_idaview_anyway(*args) -> 'void' + refresh_idaview_anyway() + Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please + consider request_refresh() instead + +Help on function refresh_choosers in module ida_kernwin: + +refresh_choosers(*args) -> 'void' + refresh_choosers() + +Help on function remove_fchunk in module idc: + +remove_fchunk(funcea, tailea) + Remove a function chunk from the function + + @param funcea: any address in the function + @param tailea: any address in the function chunk to remove + + @return: 0 if failed, 1 if success + +Help on function rename_array in module idc: + +rename_array(array_id, newname) + Rename array, by its ID. + + @param id: The ID of the array to rename. + @param newname: The new name of the array. + + @return: 1 in case of success, 0 otherwise + +Help on function rename_entry in module ida_entry: + +rename_entry(*args) -> 'bool' + rename_entry(ord, name, flags=0) -> bool + Rename entry point. + + @param ord: (C++: uval_t) ordinal number of the entry point + @param name: (C++: const char *) name of entry point. If the specified location already has a name, + the old name will be appended to a repeatable comment. + @param flags: (C++: int) See AEF_* + @return: success + +Help on function resume_process in module idc: + +resume_process() + +Help on function resume_thread in module ida_dbg: + +resume_thread(*args) -> 'int' + resume_thread(tid) -> int + Resume thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on function retrieve_input_file_md5 in module ida_nalt: + +retrieve_input_file_md5(*args) -> 'uchar [ANY]' + retrieve_input_file_md5() -> bytes + Get input file md5. + +Help on function rotate_byte in module idc: + +rotate_byte(x, count) + +Help on function rotate_dword in module idc: + +rotate_dword(x, count) + +Help on function rotate_left in module idc: + +rotate_left(value, count, nbits, offset) + Rotate a value to the left (or right) + + @param value: value to rotate + @param count: number of times to rotate. negative counter means + rotate to the right + @param nbits: number of bits to rotate + @param offset: offset of the first bit to rotate + + @return: the value with the specified field rotated + all other bits are not modified + +Help on function rotate_word in module idc: + +rotate_word(x, count) + +Help on function run_to in module ida_dbg: + +run_to(*args) -> 'bool' + run_to(ea, pid=pid_t(-1), tid=0) -> bool + Execute the process until the given address is reached. If no process is active, + a new process is started. Technically, the debugger sets up a temporary + breakpoint at the given address, and continues (or starts) the execution of the + whole process. So, all threads continue their execution! \sq{Type, Asynchronous + function - available as Request, Notification, dbg_run_to} + + @param ea: (C++: ea_t) target address + @param pid: (C++: pid_t) not used yet. please do not specify this parameter. + +Help on function save_database in module idc: + +save_database(idbname, flags=0) + Save current database to the specified idb file + + @param idbname: name of the idb file. if empty, the current idb + file will be used. + @param flags: combination of ida_loader.DBFL_... bits or 0 + +Help on function save_trace_file in module ida_dbg: + +save_trace_file(*args) -> 'bool' + save_trace_file(filename, description) -> bool + Save the current trace in the specified file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function savefile in module idc: + +savefile(filepath, pos, ea, size) + +Help on function sel2para in module idc: + +sel2para(sel) + Get a selector value + + @param sel: the selector number + + @return: selector value if found + otherwise the input value (sel) + + @note: selector values are always in paragraphs + +Help on function select_thread in module ida_dbg: + +select_thread(*args) -> 'bool' + select_thread(tid) -> bool + Select the given thread as the current debugged thread. All thread related + execution functions will work on this thread. The process must be suspended to + select a new thread. \sq{Type, Synchronous function - available as request, + Notification, none (synchronous function)} + + @param tid: (C++: thid_t) ID of the thread to select + @return: false if the thread doesn't exist. + +Help on function selector_by_name in module idc: + +selector_by_name(segname) + Get segment selector by name + + @param segname: name of segment + + @return: segment selector or BADADDR + +Help on function send_dbg_command in module idc: + +send_dbg_command(cmd) + Sends a command to the debugger module and returns the output string. + An exception will be raised if the debugger is not running or the current debugger does not export + the 'send_dbg_command' IDC command. + +Help on function set_array_long in module idc: + +set_array_long(array_id, idx, value) + Sets the long value of an array element. + + @param array_id: The array ID. + @param idx: Index of an element. + @param value: 32bit or 64bit value to store in the array + + @return: 1 in case of success, 0 otherwise + +Help on function set_array_params in module idc: + +set_array_params(ea, flags, litems, align) + Set array representation format + + @param ea: linear address + @param flags: combination of AP_... constants or 0 + @param litems: number of items per line. 0 means auto + @param align: element alignment + - -1: do not align + - 0: automatic alignment + - other values: element width + + @return: 1-ok, 0-failure + +Help on function set_array_string in module idc: + +set_array_string(array_id, idx, value) + Sets the string value of an array element. + + @param array_id: The array ID. + @param idx: Index of an element. + @param value: String value to store in the array + + @return: 1 in case of success, 0 otherwise + +Help on function set_bmask_cmt in module idc: + +set_bmask_cmt(enum_id, bmask, cmt, repeatable) + Set bitmask comment (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + @param cmt: comment + repeatable - type of comment, 0-regular, 1-repeatable + + @return: 1-ok, 0-failed + +Help on function set_bmask_name in module idc: + +set_bmask_name(enum_id, bmask, name) + Set bitmask name (only for bitfields) + + @param enum_id: id of enum + @param bmask: bitmask of the constant + @param name: name of bitmask + + @return: 1-ok, 0-failed + +Help on function set_bpt_attr in module idc: + +set_bpt_attr(address, bptattr, value) + modifiable characteristics of a breakpoint + + @param address: any address in the breakpoint range + @param bptattr: the attribute code, one of BPTATTR_* constants + BPTATTR_CND is not allowed, see set_bpt_cond() + @param value: the attibute value + + @return: success + +Help on function set_bpt_cond in module idc: + +set_bpt_cond(ea, cnd, is_lowcnd=0) + Set breakpoint condition + + @param ea: any address in the breakpoint range + @param cnd: breakpoint condition + @param is_lowcnd: 0 - regular condition, 1 - low level condition + + @return: success + +Help on function set_cmt in module ida_bytes: + +set_cmt(*args) -> 'bool' + set_cmt(ea, comm, rptble) -> bool + Set an indented comment. + + @param ea: (C++: ea_t) linear address + @param comm: (C++: const char *) comment string + * nullptr: do nothing (return 0) + * "" : delete comment + @param rptble: (C++: bool) is repeatable? + @return: success + +Help on function set_color in module idc: + +set_color(ea, what, color) + Set item color + + @param ea: address of the item + @param what: type of the item (one of CIC_* constants) + @param color: new color code in RGB (hex 0xBBGGRR) + + @return: success (True or False) + +Help on function set_debugger_event_cond in module ida_dbg: + +set_debugger_event_cond(*args) -> 'void' + set_debugger_event_cond(NONNULL_evcond) + + @param NONNULL_evcond: char const * + +Help on function set_debugger_options in module ida_dbg: + +set_debugger_options(*args) -> 'uint' + set_debugger_options(options) -> uint + Set debugger options. Replaces debugger options with the specification + combination Debugger options + + @param options: (C++: uint) + @return: the old debugger options + +Help on function set_default_sreg_value in module idc: + +set_default_sreg_value(ea, reg, value) + Set default segment register value for a segment + + @param ea: any address in the segment + if no segment is present at the specified address + then all segments will be affected + @param reg: name of segment register + @param value: default value of the segment register. -1-undefined. + +Help on function set_enum_bf in module ida_enum: + +set_enum_bf(*args) -> 'bool' + set_enum_bf(id, bf) -> bool + Set 'bitfield' bit of enum (i.e. convert it to a bitfield) + + @param id: (C++: enum_t) + @param bf: (C++: bool) + +Help on function set_enum_cmt in module ida_enum: + +set_enum_cmt(*args) -> 'bool' + set_enum_cmt(id, cmt, repeatable) -> bool + Set comment for enum type. + + @param id: (C++: enum_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_flag in module ida_enum: + +set_enum_flag(*args) -> 'bool' + set_enum_flag(id, flag) -> bool + Set data representation flags. + + @param id: (C++: enum_t) + @param flag: (C++: flags64_t) + +Help on function set_enum_idx in module ida_enum: + +set_enum_idx(*args) -> 'bool' + set_enum_idx(id, idx) -> bool + Set serial number of enum. Also see get_enum_idx(). + + @param id: (C++: enum_t) + @param idx: (C++: size_t) + +Help on function set_enum_member_cmt in module ida_enum: + +set_enum_member_cmt(*args) -> 'bool' + set_enum_member_cmt(id, cmt, repeatable) -> bool + Set comment for enum member. + + @param id: (C++: const_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_enum_member_name in module ida_enum: + +set_enum_member_name(*args) -> 'bool' + set_enum_member_name(id, name) -> bool + Set name of enum member. + + @param id: (C++: const_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_name in module ida_enum: + +set_enum_name(*args) -> 'bool' + set_enum_name(id, name) -> bool + Set name of enum type. + + @param id: (C++: enum_t) + @param name: (C++: const char *) char const * + +Help on function set_enum_width in module ida_enum: + +set_enum_width(*args) -> 'bool' + set_enum_width(id, width) -> bool + See comment for get_enum_width() + + @param id: (C++: enum_t) + @param width: (C++: int) + +Help on function set_fchunk_attr in module idc: + +set_fchunk_attr(ea, attr, value) + Set a function chunk attribute + + @param ea: any address in the chunk + @param attr: only FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER + @param value: desired value + + @return: 0 if failed, 1 if success + +Help on function set_fixup in module idc: + +set_fixup(ea, fixuptype, fixupflags, targetsel, targetoff, displ) + Set fixup information + + @param ea: address to set fixup information about + @param fixuptype: fixup type. see get_fixup_target_type() + for possible fixup types. + @param fixupflags: fixup flags. see get_fixup_target_flags() + for possible fixup types. + @param targetsel: target selector + @param targetoff: target offset + @param displ: displacement + + @return: none + +Help on function set_flag in module idc: + +set_flag(off, bit, value) + #-------------------------------------------------------------------------- + +Help on function set_frame_size in module idc: + +set_frame_size(ea, lvsize, frregs, argsize) + Make function frame + + @param ea: any address belonging to the function + @param lvsize: size of function local variables + @param frregs: size of saved registers + @param argsize: size of function arguments + + @return: ID of function frame or -1 + If the function did not have a frame, the frame + will be created. Otherwise the frame will be modified + +Help on function set_func_attr in module idc: + +set_func_attr(ea, attr, value) + Set a function attribute + + @param ea: any address belonging to the function + @param attr: one of FUNCATTR_... constants + @param value: new value of the attribute + + @return: 1-ok, 0-failed + +Help on function set_func_cmt in module idc: + +set_func_cmt(ea, cmt, repeatable) + Set function comment + + @param ea: any address belonging to the function + @param cmt: a function comment line + @param repeatable: 1: get repeatable comment + 0: get regular comment + +Help on function set_func_end in module ida_funcs: + +set_func_end(*args) -> 'bool' + set_func_end(ea, newend) -> bool + Move function chunk end address. + + @param ea: (C++: ea_t) any address in the function + @param newend: (C++: ea_t) new end address of the function + @return: success + +Help on function set_func_flags in module idc: + +set_func_flags(ea, flags) + Change function flags + + @param ea: any address belonging to the function + @param flags: see get_func_flags() for explanations + + @return: !=0 - ok + +Help on function set_hash_long in module idc: + +set_hash_long(hash_id, key, value) + Sets the long value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + @param value: 32bit or 64bit value to store in the hash + + @return: 1 in case of success, 0 otherwise + +Help on function set_hash_string in module idc: + +set_hash_string(hash_id, key, value) + Sets the string value of a hash element. + + @param hash_id: The hash ID. + @param key: Key of an element. + @param value: string value to store in the hash + + @return: 1 in case of success, 0 otherwise + +Help on function set_ida_state in module ida_auto: + +set_ida_state(*args) -> 'idastate_t' + set_ida_state(st) -> idastate_t + Change IDA status indicator value + + @param st: (C++: idastate_t) - new indicator status + @return: old indicator status + +Help on function set_inf_attr in module idc: + +set_inf_attr(attr, value) + Deprecated. Please ida_ida.inf_set_* instead. + +Help on function set_local_type in module idc: + +set_local_type(ordinal, input, flags) + Parse one type declaration and store it in the specified slot + + @param ordinal: slot number (1...NumberOfLocalTypes) + -1 means allocate new slot or reuse the slot + of the existing named type + @param input: C declaration. Empty input empties the slot + @param flags: combination of PT_... constants or 0 + + @return: slot number or 0 if error + +Help on function set_manual_insn in module ida_bytes: + +set_manual_insn(*args) -> 'void' + set_manual_insn(ea, manual_insn) + Set manual instruction string. + + @param ea: (C++: ea_t) linear address of the instruction or data item + @param manual_insn: (C++: const char *) "" - delete manual string. nullptr - do nothing + +Help on function set_member_cmt in module idc: + +set_member_cmt(sid, member_offset, comment, repeatable) + Change structure member comment + + @param sid: structure type ID + @param member_offset: offset of the member + @param comment: new comment of the structure member + @param repeatable: 1: change repeatable comment + 0: change regular comment + + @return: != 0 - ok + +Help on function set_member_name in module idc: + +set_member_name(sid, member_offset, name) + Change structure member name + + @param sid: structure type ID + @param member_offset: offset of the member + @param name: new name of the member + + @return: != 0 - ok. + +Help on function set_member_type in module idc: + +set_member_type(sid, member_offset, flag, typeid, nitems, target=-1, tdelta=0, reftype=2) + Change structure member type + + @param sid: structure type ID + @param member_offset: offset of the member + @param flag: new type of the member. Should be one of + FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA + @param typeid: if is_struct(flag) then typeid specifies the structure id for the member + if is_off0(flag) then typeid specifies the offset base. + if is_strlit(flag) then typeid specifies the string type (STRTYPE_...). + if is_stroff(flag) then typeid specifies the structure id + if is_enum(flag) then typeid specifies the enum id + if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16) + Otherwise typeid should be -1. + @param nitems: number of items in the member + + @param target: target address of the offset expr. You may specify it as + -1, ida will calculate it itself + @param tdelta: offset target delta. usually 0 + @param reftype: see REF_... definitions + + @note: The remaining arguments are allowed only if is_off0(flag) and you want + to specify a complex offset expression + + @return: !=0 - ok. + +Help on function set_name in module idc: + +set_name(ea, name, flags=0) + Rename an address + + @param ea: linear address + @param name: new name of address. If name == "", then delete old name + @param flags: combination of SN_... constants + + @return: 1-ok, 0-failure + +Help on function set_processor_type in module ida_idp: + +set_processor_type(*args) -> 'bool' + set_processor_type(procname, level) -> bool + Set target processor type. Once a processor module is loaded, it cannot be + replaced until we close the idb. + + @param procname: (C++: const char *) name of processor type (one of names present in + processor_t::psnames) + @param level: (C++: setproc_level_t) SETPROC_ + @return: success + +Help on function set_reg_value in module idc: + +set_reg_value(value, name) + Set register value + + @param name: the register name + @param value: new register value + + @note: The debugger should be running + It is not necessary to use this function to set register values. + A register name in the left side of an assignment will do too. + +Help on function set_remote_debugger in module ida_dbg: + +set_remote_debugger(*args) -> 'void' + set_remote_debugger(host, _pass, port=-1) + Set remote debugging options. Should be used before starting the debugger. + + @param host: (C++: const char *) If empty, IDA will use local debugger. If nullptr, the host will + not be set. + @param pass: (C++: const char *) If nullptr, the password will not be set + @param port: (C++: int) If -1, the default port number will be used + +Help on function set_root_filename in module ida_nalt: + +set_root_filename(*args) -> 'void' + set_root_filename(file) + Set full path of the input file. + + @param file: (C++: const char *) char const * + +Help on function set_segm_addressing in module idc: + +set_segm_addressing(ea, bitness) + Change segment addressing + + @param ea: any address in the segment + @param bitness: 0: 16bit, 1: 32bit, 2: 64bit + + @return: success (boolean) + +Help on function set_segm_alignment in module idc: + +set_segm_alignment(ea, alignment) + Change alignment of the segment + + @param ea: any address in the segment + @param alignment: new alignment of the segment (one of the sa... constants) + + @return: success (boolean) + +Help on function set_segm_attr in module idc: + +set_segm_attr(segea, attr, value) + Set segment attribute + + @param segea: any address within segment + @param attr: one of SEGATTR_... constants + + @note: Please note that not all segment attributes are modifiable. + Also some of them should be modified using special functions + like set_segm_addressing, etc. + +Help on function set_segm_class in module idc: + +set_segm_class(ea, segclass) + Change class of the segment + + @param ea: any address in the segment + @param segclass: new class of the segment + + @return: success (boolean) + +Help on function set_segm_combination in module idc: + +set_segm_combination(segea, comb) + Change combination of the segment + + @param segea: any address in the segment + @param comb: new combination of the segment (one of the sc... constants) + + @return: success (boolean) + +Help on function set_segm_name in module idc: + +set_segm_name(ea, name) + Change name of the segment + + @param ea: any address in the segment + @param name: new name of the segment + + @return: success (boolean) + +Help on function set_segm_type in module idc: + +set_segm_type(segea, segtype) + Set segment type + + @param segea: any address within segment + @param segtype: new segment type: + + @return: !=0 - ok + +Help on function set_segment_bounds in module idc: + +set_segment_bounds(ea, startea, endea, flags) + Change segment boundaries + + @param ea: any address in the segment + @param startea: new start address of the segment + @param endea: new end address of the segment + @param flags: combination of SEGMOD_... flags + + @return: boolean success + +Help on function set_selector in module ida_segment: + +set_selector(*args) -> 'int' + set_selector(selector, paragraph) -> int + Set mapping of selector to a paragraph. You should call this function _before_ + creating a segment which uses the selector, otherwise the creation of the + segment will fail. + + @param selector: (C++: sel_t) number of selector to map + * if selector == BADSEL, then return 0 (fail) + * if the selector has had a mapping, old mapping is destroyed + * if the selector number is equal to paragraph value, then the mapping is + destroyed because we don't need to keep trivial mappings. + @param paragraph: (C++: ea_t) paragraph to map selector + @retval 1: ok + @retval 0: failure (bad selector or too many mappings) + +Help on function set_source_linnum in module ida_nalt: + +set_source_linnum(*args) -> 'void' + set_source_linnum(ea, lnnum) + + @param ea: ea_t + @param lnnum: uval_t + +Help on function set_step_trace_options in module ida_dbg: + +set_step_trace_options(*args) -> 'void' + set_step_trace_options(options) + Modify step tracing options. \sq{Type, Synchronous function - available as + request, Notification, none (synchronous function)} + + @param options: (C++: int) + +Help on function change_storage_type in module ida_bytes: + +change_storage_type(*args) -> 'error_t' + change_storage_type(start_ea, end_ea, stt) -> error_t + Change flag storage type for address range. + + @param start_ea: (C++: ea_t) should be lower than end_ea. + @param end_ea: (C++: ea_t) does not belong to the range. + @param stt: (C++: storage_type_t) + @return: error code + +Help on function set_struc_cmt in module ida_struct: + +set_struc_cmt(*args) -> 'bool' + set_struc_cmt(id, cmt, repeatable) -> bool + Set structure comment. + + @param id: (C++: tid_t) + @param cmt: (C++: const char *) char const * + @param repeatable: (C++: bool) + +Help on function set_struc_idx in module idc: + +set_struc_idx(sid, index) + Change structure index + + @param sid: structure type ID + @param index: new index of the structure + + @return: != 0 - ok + + @note: See get_first_struc_idx() for the explanation of + structure indices and IDs. + +Help on function set_struc_name in module ida_struct: + +set_struc_name(*args) -> 'bool' + set_struc_name(id, name) -> bool + Set structure name. + + @param id: (C++: tid_t) + @param name: (C++: const char *) char const * + +Help on function set_tail_owner in module idc: + +set_tail_owner(tailea, funcea) + Change the function chunk owner + + @param tailea: any address in the function chunk + @param funcea: the starting address of the new owner + + @return: False if failed, True if success + + @note: The new owner must already have the chunk appended before the call + +Help on function set_target_assembler in module ida_idp: + +set_target_assembler(*args) -> 'bool' + set_target_assembler(asmnum) -> bool + Set target assembler. + + @param asmnum: (C++: int) number of assembler in the current processor module + @return: success + +Help on function set_trace_file_desc in module ida_dbg: + +set_trace_file_desc(*args) -> 'bool' + set_trace_file_desc(filename, description) -> bool + Change the description of the specified trace file. + + @param filename: (C++: const char *) char const * + @param description: (C++: const char *) char const * + +Help on function split_sreg_range in module idc: + +split_sreg_range(ea, reg, value, tag=2) + Set value of a segment register. + + @param ea: linear address + @param reg: name of a register, like "cs", "ds", "es", etc. + @param value: new value of the segment register. + @param tag: of SR_... constants + + @note: IDA keeps tracks of all the points where segment register change their + values. This function allows you to specify the correct value of a segment + register if IDA is not able to find the corrent value. + +Help on function start_process in module ida_dbg: + +start_process(*args) -> 'int' + start_process(path=None, args=None, sdir=None) -> int + Start a process in the debugger. \sq{Type, Asynchronous function - available as + Request, Notification, dbg_process_start} + @note: You can also use the run_to() function to easily start the execution of a + process until a given address is reached. + @note: For all parameters, a nullptr value indicates the debugger will take the + value from the defined Process Options. + + @param path: (C++: const char *) path to the executable to start + @param args: (C++: const char *) arguments to pass to process + @param sdir: (C++: const char *) starting directory for the process + @retval -1: impossible to create the process + @retval 0: the starting of the process was cancelled by the user + @retval 1: the process was properly started + +Help on function step_into in module ida_dbg: + +step_into(*args) -> 'bool' + step_into() -> bool + Execute one instruction in the current thread. Other threads are kept suspended. + \sq{Type, Asynchronous function - available as Request, Notification, + dbg_step_into} + +Help on function step_over in module ida_dbg: + +step_over(*args) -> 'bool' + step_over() -> bool + Execute one instruction in the current thread, but without entering into + functions. Others threads keep suspended. \sq{Type, Asynchronous function - + available as Request, Notification, dbg_step_over} + +Help on function step_until_ret in module ida_dbg: + +step_until_ret(*args) -> 'bool' + step_until_ret() -> bool + Execute instructions in the current thread until a function return instruction + is executed (aka "step out"). Other threads are kept suspended. \sq{Type, + Asynchronous function - available as Request, Notification, dbg_step_until_ret} + +Help on function strlen in module idc: + +strlen(s) + +Help on function strstr in module idc: + +strstr(s1, s2) + +Help on function substr in module idc: + +substr(s, x1, x2) + +Help on function suspend_process in module ida_dbg: + +suspend_process(*args) -> 'bool' + suspend_process() -> bool + Suspend the process in the debugger. \sq{ Type, + * Synchronous function (if in a notification handler) + * Asynchronous function (everywhere else) + * available as Request, Notification, + * none (if in a notification handler) + * dbg_suspend_process (everywhere else) } + @note: The suspend_process() function can be called from a notification handler + to force the stopping of the process. In this case, no notification will + be generated. When you suspend a process, the running command is always + aborted. + +Help on function suspend_thread in module ida_dbg: + +suspend_thread(*args) -> 'int' + suspend_thread(tid) -> int + Suspend thread. Suspending a thread may deadlock the whole application if the + suspended was owning some synchronization objects. \sq{Type, Synchronous + function - available as request, Notification, none (synchronous function)} + + @param tid: (C++: thid_t) thread id + @retval -1: network error + @retval 0: failed + @retval 1: ok + +Help on function take_memory_snapshot in module ida_segment: + +take_memory_snapshot(*args) -> 'bool' + take_memory_snapshot(type) -> bool + Take a memory snapshot of the running process. + + @param type: (C++: int) specifies which snapshot we want (see SNAP_ Snapshot types) + @return: success + +Help on function to_ea in module idc: + +to_ea(seg, off) + Return value of expression: ((seg<<4) + off) + +Help on function toggle_bnot in module idc: + +toggle_bnot(ea, n) + Toggle the bitwise not operator for the operand + + @param ea: linear address + @param n: number of operand + - 0 - the first operand + - 1 - the second, third and all other operands + - -1 - all operands + +Help on function toggle_sign in module ida_bytes: + +toggle_sign(*args) -> 'bool' + toggle_sign(ea, n) -> bool + Toggle sign of n-th operand. allowed values of n: 0-first operand, 1-other + operands + + @param ea: (C++: ea_t) + @param n: (C++: int) + +Help on function update_extra_cmt in module ida_lines: + +update_extra_cmt(*args) -> 'void' + update_extra_cmt(ea, what, str) + + @param ea: ea_t + @param what: int + @param str: char const * + +Help on function update_hidden_range in module idc: + +update_hidden_range(ea, visible) + Set hidden range state + + @param ea: any address belonging to the hidden range + @param visible: new state of the range + + @return: != 0 - ok + +Help on function validate_idb_names in module idc: + +validate_idb_names(do_repair=0) + check consistency of IDB name records + @param do_repair: try to repair netnode header it TRUE + @return: number of inconsistent name records + +Help on function value_is_float in module idc: + +value_is_float(var) + +Help on function value_is_func in module idc: + +value_is_func(var) + +Help on function value_is_int64 in module idc: + +value_is_int64(var) + +Help on function value_is_long in module idc: + +value_is_long(var) + +Help on function value_is_pvoid in module idc: + +value_is_pvoid(var) + +Help on function value_is_string in module idc: + +value_is_string(var) + # List of built-in functions + # -------------------------- + # + # The following conventions are used in this list: + # 'ea' is a linear address + # 'success' is 0 if a function failed, 1 otherwise + # 'void' means that function returns no meaningful value (always 0) + # + # All function parameter conversions are made automatically. + # + # ---------------------------------------------------------------------------- + # M I S C E L L A N E O U S + # ---------------------------------------------------------------------------- + +Help on function wait_for_next_event in module ida_dbg: + +wait_for_next_event(*args) -> 'dbg_event_code_t' + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + Wait for the next event. + + This function (optionally) resumes the process execution, and waits for a + debugger event until a possible timeout occurs. + + @param wfne: (C++: int) combination of Wait for debugger event flags constants + @param timeout: (C++: int) number of seconds to wait, -1-infinity + @return: either an event_id_t (if > 0), or a dbg_event_code_t (if <= 0) + +Help on function warning in module ida_kernwin: + +warning(*args) -> 'void' + warning(format) + Display a message in a message box + + @param 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 + +Help on function write_dbg_memory in module idc: + +write_dbg_memory(ea, data) + Write to debugger memory. + + @param ea: linear address + @param data: string to write + @return: number of written bytes (-1 - network/debugger error) + + Thread-safe function (may be called only from the main thread and debthread) + +Help on function writelong in module idc: + +writelong(handle, dword, mostfirst) + +Help on function writeshort in module idc: + +writeshort(handle, word, mostfirst) + +Help on function writestr in module idc: + +writestr(handle, s) + +Help on function xtol in module idc: + +xtol(s) + + +=== DOCUMENTATION FOR VARIABLES === + +Documentation on variable AU_NONE in module ida_auto: + + placeholder, not used + +Documentation on variable AU_UNK in module ida_auto: + + 0: convert to unexplored + +Documentation on variable AU_CODE in module ida_auto: + + 1: convert to instruction + +Documentation on variable AU_WEAK in module ida_auto: + + 2: convert to instruction (ida decision) + +Documentation on variable AU_PROC in module ida_auto: + + 3: convert to procedure start + +Documentation on variable AU_TAIL in module ida_auto: + + 4: add a procedure tail + +Documentation on variable AU_FCHUNK in module ida_auto: + + 5: find func chunks + +Documentation on variable AU_USED in module ida_auto: + + 6: reanalyze + +Documentation on variable AU_TYPE in module ida_auto: + + 7: apply type information + +Documentation on variable AU_LIBF in module ida_auto: + + 8: apply signature to address + +Documentation on variable AU_LBF2 in module ida_auto: + + 9: the same, second pass + +Documentation on variable AU_LBF3 in module ida_auto: + + 10: the same, third pass + +Documentation on variable AU_CHLB in module ida_auto: + + 11: load signature file (file name is kept separately) + +Documentation on variable AU_FINAL in module ida_auto: + + 12: final pass + +Documentation on variable ITEM_END_FIXUP in module ida_bytes: + + stop at the first fixup + +Documentation on variable ITEM_END_INITED in module ida_bytes: + + stop when initialization changes i.e. + * if is_loaded(ea): stop if uninitialized byte is encountered + * if !is_loaded(ea): stop if initialized byte is encountered + +Documentation on variable ITEM_END_NAME in module ida_bytes: + + stop at the first named location + +Documentation on variable ITEM_END_XREF in module ida_bytes: + + stop at the first referenced location + +Documentation on variable GFE_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. It is much slower under remote debugging because + the kernel needs to read the process memory. + +Documentation on variable GFE_IDB_VALUE in module ida_bytes: + + get flags with FF_IVL & MS_VAL. but never use the debugger memory. + +Documentation on variable MS_VAL in module ida_bytes: + + Mask for byte value. + +Documentation on variable FF_IVL in module ida_bytes: + + Byte has value ? + +Documentation on variable GMB_READALL in module ida_bytes: + + try to read all bytes; if this bit is not set, fail at first uninited byte + +Documentation on variable GMB_WAITBOX in module ida_bytes: + + show wait box (may return -1 in this case) + +Documentation on variable MS_CLS in module ida_bytes: + + Mask for typing. + +Documentation on variable FF_CODE in module ida_bytes: + + Code ? + +Documentation on variable FF_DATA in module ida_bytes: + + Data ? + +Documentation on variable FF_TAIL in module ida_bytes: + + Tail ? + +Documentation on variable FF_UNK in module ida_bytes: + + Unknown ? + +Documentation on variable DELIT_SIMPLE in module ida_bytes: + + simply undefine the specified item(s) + +Documentation on variable DELIT_EXPAND in module ida_bytes: + + propagate undefined items; for example if removing an instruction removes all + references to the next instruction, then plan to convert to unexplored the next + instruction too. + +Documentation on variable DELIT_DELNAMES in module ida_bytes: + + delete any names at the specified address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOTRUNC in module ida_bytes: + + don't truncate the current function even if AF_TRFUNC is set + +Documentation on variable DELIT_NOUNAME in module ida_bytes: + + reject to delete if a user name is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_NOCMT in module ida_bytes: + + reject to delete if a comment is in address range (except for the starting + address). this bit is valid if nbytes > 1 + +Documentation on variable DELIT_KEEPFUNC in module ida_bytes: + + do not undefine the function start. Just delete xrefs, ops e.t.c. + +Documentation on variable MS_COMM in module ida_bytes: + + Mask of common bits. + +Documentation on variable FF_COMM in module ida_bytes: + + Has comment ? + +Documentation on variable FF_REF in module ida_bytes: + + has references + +Documentation on variable FF_LINE in module ida_bytes: + + Has next or prev lines ? + +Documentation on variable FF_NAME in module ida_bytes: + + Has name ? + +Documentation on variable FF_LABL in module ida_bytes: + + Has dummy name? + +Documentation on variable FF_FLOW in module ida_bytes: + + Exec flow from prev instruction. + +Documentation on variable FF_SIGN in module ida_bytes: + + Inverted sign of operands. + +Documentation on variable FF_BNOT in module ida_bytes: + + Bitwise negation of operands. + +Documentation on variable FF_UNUSED in module ida_bytes: + + unused bit (was used for variable bytes) + +Documentation on variable MS_0TYPE in module ida_bytes: + + Mask for 1st arg typing. + +Documentation on variable FF_0VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_0NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_0NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_0CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_0SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_0OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_0NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_0NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_0ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_0FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_0STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_0STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_0FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_0CUST in module ida_bytes: + + Custom representation? + +Documentation on variable MS_1TYPE in module ida_bytes: + + Mask for the type of other operands. + +Documentation on variable FF_1VOID in module ida_bytes: + + Void (unknown)? + +Documentation on variable FF_1NUMH in module ida_bytes: + + Hexadecimal number? + +Documentation on variable FF_1NUMD in module ida_bytes: + + Decimal number? + +Documentation on variable FF_1CHAR in module ida_bytes: + + Char ('x')? + +Documentation on variable FF_1SEG in module ida_bytes: + + Segment? + +Documentation on variable FF_1OFF in module ida_bytes: + + Offset? + +Documentation on variable FF_1NUMB in module ida_bytes: + + Binary number? + +Documentation on variable FF_1NUMO in module ida_bytes: + + Octal number? + +Documentation on variable FF_1ENUM in module ida_bytes: + + Enumeration? + +Documentation on variable FF_1FOP in module ida_bytes: + + Forced operand? + +Documentation on variable FF_1STRO in module ida_bytes: + + Struct offset? + +Documentation on variable FF_1STK in module ida_bytes: + + Stack variable? + +Documentation on variable FF_1FLT in module ida_bytes: + + Floating point number? + +Documentation on variable FF_1CUST in module ida_bytes: + + Custom representation? + +Documentation on variable OPND_OUTER in module ida_bytes: + + outer offset base (combined with operand number). used only in set, get, + del_offset() functions + +Documentation on variable OPND_MASK in module ida_bytes: + + mask for operand number + +Documentation on variable OPND_ALL in module ida_bytes: + + all operands + +Documentation on variable DT_TYPE in module ida_bytes: + + Mask for DATA typing. + +Documentation on variable FF_BYTE in module ida_bytes: + + byte + +Documentation on variable FF_WORD in module ida_bytes: + + word + +Documentation on variable FF_DWORD in module ida_bytes: + + double word + +Documentation on variable FF_QWORD in module ida_bytes: + + quadro word + +Documentation on variable FF_TBYTE in module ida_bytes: + + tbyte + +Documentation on variable FF_STRLIT in module ida_bytes: + + string literal + +Documentation on variable FF_STRUCT in module ida_bytes: + + struct variable + +Documentation on variable FF_OWORD in module ida_bytes: + + octaword/xmm word (16 bytes/128 bits) + +Documentation on variable FF_FLOAT in module ida_bytes: + + float + +Documentation on variable FF_DOUBLE in module ida_bytes: + + double + +Documentation on variable FF_PACKREAL in module ida_bytes: + + packed decimal real + +Documentation on variable FF_ALIGN in module ida_bytes: + + alignment directive + +Documentation on variable FF_CUSTOM in module ida_bytes: + + custom data type + +Documentation on variable FF_YWORD in module ida_bytes: + + ymm word (32 bytes/256 bits) + +Documentation on variable FF_ZWORD in module ida_bytes: + + zmm word (64 bytes/512 bits) + +Documentation on variable ALOPT_IGNHEADS in module ida_bytes: + + don't stop if another data item is encountered. only the byte values will be + used to determine the string length. if not set, a defined data item or + instruction will truncate the string + +Documentation on variable ALOPT_IGNPRINT in module ida_bytes: + + if set, don't stop at non-printable codepoints, but only at the terminating + character (or not unicode-mapped character (e.g., 0x8f in CP1252)) + +Documentation on variable ALOPT_IGNCLT in module ida_bytes: + + if set, don't stop at codepoints that are not part of the current 'culture'; + accept all those that are graphical (this is typically used used by user- + initiated actions creating string literals.) + +Documentation on variable ALOPT_MAX4K in module ida_bytes: + + if string length is more than 4K, return the accumulated length + +Documentation on variable ALOPT_ONLYTERM in module ida_bytes: + + only the termination characters can be at the string end. Without this option + illegal characters also terminate the string. + +Documentation on variable STRCONV_ESCAPE in module ida_bytes: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable STRCONV_REPLCHAR in module ida_bytes: + + convert non-printable characters to the Unicode replacement character (U+FFFD) + +Documentation on variable STRCONV_INCLLEN in module ida_bytes: + + for Pascal-style strings, include the prefixing length byte(s) as C-escaped + sequence + +Documentation on variable PSTF_TNORM in module ida_bytes: + + use normal name + +Documentation on variable PSTF_TBRIEF in module ida_bytes: + + use brief name (e.g., in the 'Strings' window) + +Documentation on variable PSTF_TINLIN in module ida_bytes: + + use 'inline' name (e.g., in the structures comments) + +Documentation on variable PSTF_TMASK in module ida_bytes: + + type mask + +Documentation on variable PSTF_HOTKEY in module ida_bytes: + + have hotkey markers part of the name + +Documentation on variable PSTF_ENC in module ida_bytes: + + if encoding is specified, append it + +Documentation on variable PSTF_ONLY_ENC in module ida_bytes: + + generate only the encoding name + +Documentation on variable MS_CODE in module ida_bytes: + + Mask for code bits. + +Documentation on variable FF_FUNC in module ida_bytes: + + function start? + +Documentation on variable FF_IMMD in module ida_bytes: + + Has Immediate value ? + +Documentation on variable FF_JUMP in module ida_bytes: + + Has jump table or switch_info? + +Documentation on variable data_type_t.props in module ida_bytes: + + properties + +Documentation on variable data_type_t.name in module ida_bytes: + + name of the data type. must be unique + +Documentation on variable data_type_t.menu_name in module ida_bytes: + + Visible data type name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_type_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_type_t.asm_keyword in module ida_bytes: + + keyword to use for this type in the assembly if nullptr, the data type cannot be + used in the listing it can still be used in cpuregs window + +Documentation on variable data_type_t.value_size in module ida_bytes: + + size of the value in bytes + +Documentation on variable DTP_NODUP in module ida_bytes: + + do not use dup construct + +Documentation on variable data_format_t.props in module ida_bytes: + + properties (currently 0) + +Documentation on variable data_format_t.name in module ida_bytes: + + Format name, must be unique. + +Documentation on variable data_format_t.menu_name in module ida_bytes: + + Visible format name to use in menus if nullptr, no menu item will be created + +Documentation on variable data_format_t.hotkey in module ida_bytes: + + Hotkey for the corresponding menu item if nullptr, no hotkey will be associated + with the menu item + +Documentation on variable data_format_t.value_size in module ida_bytes: + + size of the value in bytes 0 means any size is ok data formats that are + registered for standard types (dtid 0) may be called with any value_size + (instruction operands only) + +Documentation on variable data_format_t.text_width in module ida_bytes: + + Usual width of the text representation This value is used to calculate the width + of the control to display values of this type + +Documentation on variable BIN_SEARCH_CASE in module ida_bytes: + + case sensitive + +Documentation on variable BIN_SEARCH_NOCASE in module ida_bytes: + + case insensitive + +Documentation on variable BIN_SEARCH_NOBREAK in module ida_bytes: + + don't check for Ctrl-Break + +Documentation on variable BIN_SEARCH_INITED in module ida_bytes: + + find_byte, find_byter: any initilized value + +Documentation on variable BIN_SEARCH_NOSHOW in module ida_bytes: + + don't show search progress or update screen + +Documentation on variable BIN_SEARCH_FORWARD in module ida_bytes: + + search forward for bytes + +Documentation on variable BIN_SEARCH_BACKWARD in module ida_bytes: + + search backward for bytes + +Documentation on variable BIN_SEARCH_BITMASK in module ida_bytes: + + searching using strict bit mask + +Documentation on variable hidden_range_t.description in module ida_bytes: + + description to display if the range is collapsed + +Documentation on variable hidden_range_t.header in module ida_bytes: + + header lines to display if the range is expanded + +Documentation on variable hidden_range_t.footer in module ida_bytes: + + footer lines to display if the range is expanded + +Documentation on variable hidden_range_t.visible in module ida_bytes: + + the range state + +Documentation on variable hidden_range_t.color in module ida_bytes: + + range color + +Documentation on variable dbg_process_start in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_exit in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_attach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_process_detach in module ida_dbg: + + @note: This event notification is also an asynchronous function result + notification for start_process() ! + +Documentation on variable dbg_suspend_process in module ida_dbg: + + The process is now suspended. + + @note: This event notification is also an asynchronous function result + notification for suspend_process() ! + +Documentation on variable dbg_bpt in module ida_dbg: + + A user defined breakpoint was reached. + +Documentation on variable dbg_trace in module ida_dbg: + + A step occurred (one instruction was executed). This event notification is only + generated if step tracing is enabled. + + @retval 1: do not log this trace event + @retval 0: log it + +Documentation on variable dbg_request_error in module ida_dbg: + + An error occurred during the processing of a request. + +Documentation on variable dbg_bpt_changed in module ida_dbg: + + Breakpoint has been changed. + +Documentation on variable dbg_started_loading_bpts in module ida_dbg: + + Started loading breakpoint info from idb. + +Documentation on variable dbg_finished_loading_bpts in module ida_dbg: + + Finished loading breakpoint info from idb. + +Documentation on variable dbg_last in module ida_dbg: + + The last debugger notification code. + +Documentation on variable BPTEV_ADDED in module ida_dbg: + + Breakpoint has been added. + +Documentation on variable BPTEV_REMOVED in module ida_dbg: + + Breakpoint has been removed. + +Documentation on variable BPTEV_CHANGED in module ida_dbg: + + Breakpoint has been modified. + +Documentation on variable DSTATE_SUSP in module ida_dbg: + + process is suspended and will not continue + +Documentation on variable DSTATE_NOTASK in module ida_dbg: + + no process is currently debugged + +Documentation on variable DSTATE_RUN in module ida_dbg: + + process is running + +Documentation on variable DBGINV_MEMORY in module ida_dbg: + + invalidate cached memory contents + +Documentation on variable DBGINV_MEMCFG in module ida_dbg: + + invalidate cached process segmentation + +Documentation on variable DBGINV_REGS in module ida_dbg: + + invalidate cached register values + +Documentation on variable DBGINV_ALL in module ida_dbg: + + invalidate everything + +Documentation on variable DBGINV_REDRAW in module ida_dbg: + + refresh the screen + +Documentation on variable DBGINV_NONE in module ida_dbg: + + invalidate nothing + +Documentation on variable BPLT_ABS in module ida_dbg: + + absolute address: ea + +Documentation on variable BPLT_REL in module ida_dbg: + + relative address: module_path, offset + +Documentation on variable BPLT_SRC in module ida_dbg: + + source level: filename, lineno + +Documentation on variable bpt_t.cb in module ida_dbg: + + size of this structure + +Documentation on variable bpt_t.loc in module ida_dbg: + + Location. + +Documentation on variable bpt_t.pid in module ida_dbg: + + breakpoint process id + +Documentation on variable bpt_t.tid in module ida_dbg: + + breakpoint thread id + +Documentation on variable bpt_t.ea in module ida_dbg: + + Address, if known. For BPLT_SRC, index into an internal data struct. + +Documentation on variable bpt_t.type in module ida_dbg: + + Breakpoint type. + +Documentation on variable bpt_t.pass_count in module ida_dbg: + + Number of times the breakpoint is hit before stopping (default is 0: stop + always) + +Documentation on variable bpt_t.flags in module ida_dbg: + + Breakpoint property bits + +Documentation on variable bpt_t.props in module ida_dbg: + + Internal breakpoint properties + +Documentation on variable bpt_t.size in module ida_dbg: + + Size of the breakpoint (0 for software breakpoints) + +Documentation on variable bpt_t.cndidx in module ida_dbg: + + Internal number of the condition (<0-none) + +Documentation on variable bpt_t.bptid in module ida_dbg: + + Internal breakpoint id. + +Documentation on variable BPT_BRK in module ida_dbg: + + suspend execution upon hit + +Documentation on variable BPT_TRACE in module ida_dbg: + + add trace information upon hit + +Documentation on variable BPT_UPDMEM in module ida_dbg: + + refresh the memory layout and contents before evaluating bpt condition + +Documentation on variable BPT_ENABLED in module ida_dbg: + + enabled? + +Documentation on variable BPT_LOWCND in module ida_dbg: + + condition is calculated at low level (on the server side) + +Documentation on variable BPT_TRACEON in module ida_dbg: + + enable tracing when the breakpoint is reached + +Documentation on variable BPT_TRACE_INSN in module ida_dbg: + + instruction tracing + +Documentation on variable BPT_TRACE_FUNC in module ida_dbg: + + function tracing + +Documentation on variable BPT_TRACE_BBLK in module ida_dbg: + + basic block tracing + +Documentation on variable BPT_TRACE_TYPES in module ida_dbg: + + trace insns, functions, and basic blocks. if any of BPT_TRACE_TYPES bits are set + but BPT_TRACEON is clear, then turn off tracing for the specified trace types + +Documentation on variable BPT_ELANG_SHIFT in module ida_dbg: + + index of the extlang (scripting language) of the condition + +Documentation on variable BKPT_BADBPT in module ida_dbg: + + failed to write the bpt to the process memory (at least one location) + +Documentation on variable BKPT_LISTBPT in module ida_dbg: + + include in bpt list (user-defined bpt) + +Documentation on variable BKPT_TRACE in module ida_dbg: + + trace bpt; should not be deleted when the process gets suspended + +Documentation on variable BKPT_ACTIVE in module ida_dbg: + + active? + +Documentation on variable BKPT_PARTIAL in module ida_dbg: + + partially active? (some locations were not written yet) + +Documentation on variable BKPT_CNDREADY in module ida_dbg: + + condition has been compiled + +Documentation on variable BKPT_FAKEPEND in module ida_dbg: + + fake pending bpt: it is inactive but another bpt of the same type is active at + the same address(es) + +Documentation on variable BKPT_PAGE in module ida_dbg: + + written to the process as a page bpt. Available only after writing the bpt to + the process. + +Documentation on variable BPTCK_NONE in module ida_dbg: + + breakpoint does not exist + +Documentation on variable BPTCK_NO in module ida_dbg: + + breakpoint is disabled + +Documentation on variable BPTCK_YES in module ida_dbg: + + breakpoint is enabled + +Documentation on variable BPTCK_ACT in module ida_dbg: + + breakpoint is active (written to the process) + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_dbg: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_dbg: + + step tracing will be disabled when IP is in a library function + +Documentation on variable ST_ALREADY_LOGGED in module ida_dbg: + + step tracing will be disabled when IP is already logged + +Documentation on variable ST_SKIP_LOOPS in module ida_dbg: + + step tracing will try to skip loops already recorded + +Documentation on variable ST_OPTIONS_MASK in module ida_dbg: + + mask of available options, to ensure compatibility with newer IDA versions + +Documentation on variable IT_LOG_SAME_IP in module ida_dbg: + + specific options for instruction tracing (see set_insn_trace_options()) + + instruction tracing will log new instructions even when IP doesn't change + +Documentation on variable FT_LOG_RET in module ida_dbg: + + specific options for function tracing (see set_func_trace_options()) + + function tracing will log returning instructions + +Documentation on variable BT_LOG_INSTS in module ida_dbg: + + specific options for basic block tracing (see set_bblk_trace_options()) + + log all instructions in the current basic block + +Documentation on variable tev_none in module ida_dbg: + + no event + +Documentation on variable tev_insn in module ida_dbg: + + an instruction trace + +Documentation on variable tev_call in module ida_dbg: + + a function call trace + +Documentation on variable tev_ret in module ida_dbg: + + a function return trace + +Documentation on variable tev_bpt in module ida_dbg: + + write, read/write, execution trace + +Documentation on variable tev_mem in module ida_dbg: + + memory layout changed + +Documentation on variable tev_event in module ida_dbg: + + debug event occurred + +Documentation on variable tev_max in module ida_dbg: + + first unused event type + +Documentation on variable tev_info_t.type in module ida_dbg: + + trace event type + +Documentation on variable tev_info_t.tid in module ida_dbg: + + thread where the event was recorded + +Documentation on variable tev_info_t.ea in module ida_dbg: + + address where the event occurred + +Documentation on variable DEC_NOTASK in module ida_dbg: + + process does not exist + +Documentation on variable DEC_ERROR in module ida_dbg: + + error + +Documentation on variable DEC_TIMEOUT in module ida_dbg: + + timeout + +Documentation on variable WFNE_ANY in module ida_dbg: + + return the first event (even if it doesn't suspend the process) + +Documentation on variable WFNE_SUSP in module ida_dbg: + + wait until the process gets suspended + +Documentation on variable WFNE_SILENT in module ida_dbg: + + 1: be silent, 0:display modal boxes if necessary + +Documentation on variable WFNE_CONT in module ida_dbg: + + continue from the suspended state + +Documentation on variable WFNE_NOWAIT in module ida_dbg: + + do not wait for any event, immediately return DEC_TIMEOUT (to be used with + WFNE_CONT) + +Documentation on variable WFNE_USEC in module ida_dbg: + + timeout is specified in microseconds (minimum non-zero timeout is 40000us) + +Documentation on variable DOPT_SEGM_MSGS in module ida_dbg: + + log debugger segments modifications + +Documentation on variable DOPT_START_BPT in module ida_dbg: + + break on process start + +Documentation on variable DOPT_THREAD_MSGS in module ida_dbg: + + log thread starts/exits + +Documentation on variable DOPT_THREAD_BPT in module ida_dbg: + + break on thread start/exit + +Documentation on variable DOPT_BPT_MSGS in module ida_dbg: + + log breakpoints + +Documentation on variable DOPT_LIB_MSGS in module ida_dbg: + + log library loads/unloads + +Documentation on variable DOPT_LIB_BPT in module ida_dbg: + + break on library load/unload + +Documentation on variable DOPT_INFO_MSGS in module ida_dbg: + + log debugging info events + +Documentation on variable DOPT_INFO_BPT in module ida_dbg: + + break on debugging information + +Documentation on variable DOPT_REAL_MEMORY in module ida_dbg: + + do not hide breakpoint instructions + +Documentation on variable DOPT_REDO_STACK in module ida_dbg: + + reconstruct the stack + +Documentation on variable DOPT_ENTRY_BPT in module ida_dbg: + + break on program entry point + +Documentation on variable DOPT_EXCDLG in module ida_dbg: + + exception dialogs: + +Documentation on variable EXCDLG_NEVER in module ida_dbg: + + never display exception dialogs + +Documentation on variable EXCDLG_UNKNOWN in module ida_dbg: + + display for unknown exceptions + +Documentation on variable EXCDLG_ALWAYS in module ida_dbg: + + always display + +Documentation on variable DOPT_LOAD_DINFO in module ida_dbg: + + automatically load debug files (pdb) + +Documentation on variable DOPT_END_BPT in module ida_dbg: + + evaluate event condition on process end + +Documentation on variable DOPT_TEMP_HWBPT in module ida_dbg: + + when possible use hardware bpts for temp bpts + +Documentation on variable DOPT_FAST_STEP in module ida_dbg: + + prevent debugger memory refreshes when single-stepping + +Documentation on variable SRCIT_NONE in module ida_dbg: + + unknown + +Documentation on variable SRCIT_MODULE in module ida_dbg: + + module + +Documentation on variable SRCIT_FUNC in module ida_dbg: + + function + +Documentation on variable SRCIT_STMT in module ida_dbg: + + a statement (if/while/for...) + +Documentation on variable SRCIT_EXPR in module ida_dbg: + + an expression (a+b*c) + +Documentation on variable SRCIT_STTVAR in module ida_dbg: + + static variable/code + +Documentation on variable SRCIT_LOCVAR in module ida_dbg: + + a stack, register, or register-relative local variable or parameter + +Documentation on variable direntry_t.idx in module ida_dirtree: + + diridx_t or inode_t + +Documentation on variable direntry_t.isdir in module ida_dirtree: + + is 'idx' a diridx_t, or an inode_t + +Documentation on variable DTN_FULL_NAME in module ida_dirtree: + + use long form of the entry name. That name is unique. + +Documentation on variable DTN_DISPLAY_NAME in module ida_dirtree: + + use short, displayable form of the entry name. for example, 'std::string' + instead of 'std::basic_string<char, ...>'. Note that more than one "full name" + can have the same displayable name. + +Documentation on variable dirtree_cursor_t.parent in module ida_dirtree: + + the parent directory + +Documentation on variable dirtree_cursor_t.rank in module ida_dirtree: + + the index into the parent directory + +Documentation on variable IDA_SUBDIR_IDP in module ida_diskio: + + append the processor name as a subdirectory + +Documentation on variable IDA_SUBDIR_IDADIR_FIRST in module ida_diskio: + + $IDADIR/subdir will be first, not last + +Documentation on variable IDA_SUBDIR_ONLY_EXISTING in module ida_diskio: + + only existing directories will be present + +Documentation on variable LINPUT_NONE in module ida_diskio: + + invalid linput + +Documentation on variable LINPUT_LOCAL in module ida_diskio: + + local file + +Documentation on variable LINPUT_RFILE in module ida_diskio: + + remote file ( debugger_t::open_file, debugger_t::read_file) + +Documentation on variable LINPUT_PROCMEM in module ida_diskio: + + debugged process memory (read_dbg_memory()) + +Documentation on variable LINPUT_GENERIC in module ida_diskio: + + generic linput + +Documentation on variable generic_linput_t.filesize in module ida_diskio: + + input file size + +Documentation on variable generic_linput_t.blocksize in module ida_diskio: + + preferred block size to work with read/write sizes will be in multiples of this + number. for example, 4096 is a nice value blocksize 0 means that the filesize is + unknown. the internal cache will be disabled in this case. also, seeks from the + file end will fail. blocksize=-1 means error. + +Documentation on variable AEF_UTF8 in module ida_entry: + + the name is given in UTF-8 (default) + +Documentation on variable AEF_IDBENC in module ida_entry: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying AEF_IDBENC also implies AEF_NODUMMY + +Documentation on variable AEF_NODUMMY in module ida_entry: + + automatically prepend the name with '_' if it begins with a dummy suffix. See + also AEF_IDBENC + +Documentation on variable DEFMASK in module ida_enum: + + default bitmask + +Documentation on variable ENFL_REGEX in module ida_enum: + + apply regular expressions to beautify the name + +Documentation on variable MAX_ENUM_SERIAL in module ida_enum: + + Max number of identical constants allowed for one enum type. + +Documentation on variable ENUM_MEMBER_ERROR_NAME in module ida_enum: + + already have member with this name (bad name) + +Documentation on variable ENUM_MEMBER_ERROR_VALUE in module ida_enum: + + already have 256 members with this value + +Documentation on variable ENUM_MEMBER_ERROR_ENUM in module ida_enum: + + bad enum id + +Documentation on variable ENUM_MEMBER_ERROR_MASK in module ida_enum: + + bad bmask + +Documentation on variable ENUM_MEMBER_ERROR_ILLV in module ida_enum: + + bad bmask and value combination (~bmask & value != 0) + +Documentation on variable IDC_LANG_EXT in module ida_expr: + + IDC script extension. + +Documentation on variable VARSLICE_SINGLE in module ida_expr: + + return single index (i2 is ignored) + +Documentation on variable VREF_LOOP in module ida_expr: + + dereference until we get a non VT_REF + +Documentation on variable VREF_ONCE in module ida_expr: + + dereference only once, do not loop + +Documentation on variable VREF_COPY in module ida_expr: + + copy the result to the input var (v) + +Documentation on variable idc_value_t.vtype in module ida_expr: + + IDC value types + +Documentation on variable idc_value_t.num in module ida_expr: + + VT_LONG + +Documentation on variable idc_value_t.e in module ida_expr: + + VT_FLOAT + +Documentation on variable idc_value_t.funcidx in module ida_expr: + + VT_FUNC + +Documentation on variable idc_value_t.pvoid in module ida_expr: + + VT_PVOID + +Documentation on variable idc_value_t.i64 in module ida_expr: + + VT_INT64 + +Documentation on variable idc_value_t.reserve in module ida_expr: + + internal housekeeping: 64-bit qstring is bigger than 12 bytes + +Documentation on variable VT_LONG in module ida_expr: + + Integer (see idc_value_t::num) + +Documentation on variable VT_FLOAT in module ida_expr: + + Floating point (see idc_value_t::e) + +Documentation on variable VT_WILD in module ida_expr: + + Function with arbitrary number of arguments. The actual number of arguments will + be passed in idc_value_t::num. This value should not be used for idc_value_t. + +Documentation on variable VT_OBJ in module ida_expr: + + Object (see idc_value_t::obj) + +Documentation on variable VT_FUNC in module ida_expr: + + Function (see idc_value_t::funcidx) + +Documentation on variable VT_STR in module ida_expr: + + String (see qstr() and similar functions) + +Documentation on variable VT_PVOID in module ida_expr: + + void * + +Documentation on variable VT_INT64 in module ida_expr: + + i64 + +Documentation on variable VT_REF in module ida_expr: + + Reference. + +Documentation on variable eExecThrow in module ida_expr: + + See return value of idc_func_t. + +Documentation on variable CPL_DEL_MACROS in module ida_expr: + + delete macros at the end of compilation + +Documentation on variable CPL_USE_LABELS in module ida_expr: + + allow program labels in the script + +Documentation on variable CPL_ONLY_SAFE in module ida_expr: + + allow calls of only thread-safe functions + +Documentation on variable EXTFUN_BASE in module ida_expr: + + requires open database. + +Documentation on variable EXTFUN_NORET in module ida_expr: + + does not return. the interpreter may clean up its state before calling it. + +Documentation on variable EXTFUN_SAFE in module ida_expr: + + thread safe function. may be called from any thread. + +Documentation on variable FIXUP_OFF8 in module ida_fixup: + + 8-bit offset + +Documentation on variable FIXUP_OFF16 in module ida_fixup: + + 16-bit offset + +Documentation on variable FIXUP_SEG16 in module ida_fixup: + + 16-bit base-logical segment base (selector) + +Documentation on variable FIXUP_PTR16 in module ida_fixup: + + 32-bit long pointer (16-bit base:16-bit offset) + +Documentation on variable FIXUP_OFF32 in module ida_fixup: + + 32-bit offset + +Documentation on variable FIXUP_PTR32 in module ida_fixup: + + 48-bit pointer (16-bit base:32-bit offset) + +Documentation on variable FIXUP_HI8 in module ida_fixup: + + high 8 bits of 16bit offset + +Documentation on variable FIXUP_HI16 in module ida_fixup: + + high 16 bits of 32bit offset + +Documentation on variable FIXUP_LOW8 in module ida_fixup: + + low 8 bits of 16bit offset + +Documentation on variable FIXUP_LOW16 in module ida_fixup: + + low 16 bits of 32bit offset + +Documentation on variable V695_FIXUP_VHIGH in module ida_fixup: + + obsolete + +Documentation on variable V695_FIXUP_VLOW in module ida_fixup: + + obsolete + +Documentation on variable FIXUP_OFF64 in module ida_fixup: + + 64-bit offset + +Documentation on variable FIXUP_OFF8S in module ida_fixup: + + 8-bit signed offset + +Documentation on variable FIXUP_OFF16S in module ida_fixup: + + 16-bit signed offset + +Documentation on variable FIXUP_OFF32S in module ida_fixup: + + 32-bit signed offset + +Documentation on variable FIXUP_CUSTOM in module ida_fixup: + + start of the custom types range + +Documentation on variable FIXUPF_REL in module ida_fixup: + + fixup is relative to the linear address `base'. Otherwise fixup is relative to + the start of the segment with `sel' selector. + +Documentation on variable FIXUPF_EXTDEF in module ida_fixup: + + target is a location (otherwise - segment). Use this bit if the target is a + symbol rather than an offset from the beginning of a segment. + +Documentation on variable FIXUPF_UNUSED in module ida_fixup: + + fixup is ignored by IDA + * disallows the kernel to convert operands + * this fixup is not used during output + +Documentation on variable FIXUPF_CREATED in module ida_fixup: + + fixup was not present in the input file + +Documentation on variable FIXUPF_LOADER_MASK in module ida_fixup: + + additional flags. The bits from this mask are not stored in the database and can + be used by the loader at its discretion. + +Documentation on variable fixup_data_t.sel in module ida_fixup: + + selector of the target segment. BADSEL means an absolute (zero based) target. + @see: FIXUPF_REL + +Documentation on variable fixup_data_t.off in module ida_fixup: + + target offset + @note: The target is calculated as `get_base() + off`. + +Documentation on variable fixup_data_t.displacement in module ida_fixup: + + displacement (offset from the target) + +Documentation on variable STKVAR_VALID_SIZE in module ida_frame: + + x.dtyp contains correct variable type (for insns like 'lea' this bit must be + off). In general, dr_O references do not allow to determine the variable size + +Documentation on variable regvar_t.canon in module ida_frame: + + canonical register name (case-insensitive) + +Documentation on variable regvar_t.user in module ida_frame: + + user-defined register name + +Documentation on variable regvar_t.cmt in module ida_frame: + + comment to appear near definition + +Documentation on variable REGVAR_ERROR_OK in module ida_frame: + + all ok + +Documentation on variable REGVAR_ERROR_ARG in module ida_frame: + + function arguments are bad + +Documentation on variable REGVAR_ERROR_RANGE in module ida_frame: + + the definition range is bad + +Documentation on variable REGVAR_ERROR_NAME in module ida_frame: + + the provided name(s) can't be accepted + +Documentation on variable xreflist_entry_t.ea in module ida_frame: + + Location of the insn referencing the stack frame member. + +Documentation on variable xreflist_entry_t.opnum in module ida_frame: + + Number of the operand of that instruction. + +Documentation on variable xreflist_entry_t.type in module ida_frame: + + The type of xref (cref_t & dref_t) + +Documentation on variable func_t.flags in module ida_funcs: + + Function flags + +Documentation on variable func_t.frame in module ida_funcs: + + netnode id of frame structure - see frame.hpp + +Documentation on variable func_t.frsize in module ida_funcs: + + size of local variables part of frame in bytes. If FUNC_FRAME is set and fpd==0, + the frame pointer (EBP) is assumed to point to the top of the local variables + range. + +Documentation on variable func_t.frregs in module ida_funcs: + + size of saved registers in frame. This range is immediately above the local + variables range. + +Documentation on variable func_t.argsize in module ida_funcs: + + number of bytes purged from the stack upon returning + +Documentation on variable func_t.fpd in module ida_funcs: + + frame pointer delta. (usually 0, i.e. realBP==typicalBP) use update_fpd() to + modify it. + +Documentation on variable func_t.color in module ida_funcs: + + user defined function color + +Documentation on variable func_t.pntqty in module ida_funcs: + + number of SP change points + +Documentation on variable func_t.points in module ida_funcs: + + array of SP change points. use ...stkpnt...() functions to access this array. + +Documentation on variable func_t.regvarqty in module ida_funcs: + + number of register variables (-1-not read in yet) use find_regvar() to read + register variables + +Documentation on variable func_t.regvars in module ida_funcs: + + array of register variables. this array is sorted by: start_ea. use + ...regvar...() functions to access this array. + +Documentation on variable func_t.regargqty in module ida_funcs: + + number of register arguments. During analysis IDA tries to guess the register + arguments. It stores store the guessing outcome in this field. As soon as it + determines the final function prototype, regargqty is set to zero. + +Documentation on variable func_t.regargs in module ida_funcs: + + unsorted array of register arguments. use ...regarg...() functions to access + this array. regargs are destroyed when the full function type is determined. + +Documentation on variable func_t.tailqty in module ida_funcs: + + number of function tails + +Documentation on variable func_t.tails in module ida_funcs: + + array of tails, sorted by ea. use func_tail_iterator_t to access function tails. + +Documentation on variable func_t.owner in module ida_funcs: + + the address of the main function possessing this tail + +Documentation on variable func_t.refqty in module ida_funcs: + + number of referers + +Documentation on variable func_t.referers in module ida_funcs: + + array of referers (function start addresses). use func_parent_iterator_t to + access the referers. + +Documentation on variable FUNC_NORET in module ida_funcs: + + Function doesn't return. + +Documentation on variable FUNC_FAR in module ida_funcs: + + Far function. + +Documentation on variable FUNC_LIB in module ida_funcs: + + Library function. + +Documentation on variable FUNC_STATICDEF in module ida_funcs: + + Static function. + +Documentation on variable FUNC_FRAME in module ida_funcs: + + Function uses frame pointer (BP) + +Documentation on variable FUNC_USERFAR in module ida_funcs: + + User has specified far-ness of the function + +Documentation on variable FUNC_HIDDEN in module ida_funcs: + + A hidden function chunk. + +Documentation on variable FUNC_THUNK in module ida_funcs: + + Thunk (jump) function. + +Documentation on variable FUNC_BOTTOMBP in module ida_funcs: + + BP points to the bottom of the stack frame. + +Documentation on variable FUNC_NORET_PENDING in module ida_funcs: + + Function 'non-return' analysis must be performed. This flag is verified upon + func_does_return() + +Documentation on variable FUNC_SP_READY in module ida_funcs: + + SP-analysis has been performed. If this flag is on, the stack change points + should not be not modified anymore. Currently this analysis is performed only + for PC + +Documentation on variable FUNC_FUZZY_SP in module ida_funcs: + + Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h + +Documentation on variable FUNC_PROLOG_OK in module ida_funcs: + + Prolog analysis has been performed by last SP-analysis + +Documentation on variable FUNC_PURGED_OK in module ida_funcs: + + 'argsize' field has been validated. If this bit is clear and 'argsize' is 0, + then we do not known the real number of bytes removed from the stack. This bit + is handled by the processor module. + +Documentation on variable FUNC_TAIL in module ida_funcs: + + This is a function tail. Other bits must be clear (except FUNC_HIDDEN). + +Documentation on variable FUNC_LUMINA in module ida_funcs: + + Function info is provided by Lumina. + +Documentation on variable FUNC_OUTLINE in module ida_funcs: + + Outlined code, not a real function. + +Documentation on variable FUNC_REANALYZE in module ida_funcs: + + Function frame changed, request to reanalyze the function after the last insn is + analyzed. + +Documentation on variable MOVE_FUNC_OK in module ida_funcs: + + ok + +Documentation on variable MOVE_FUNC_NOCODE in module ida_funcs: + + no instruction at 'newstart' + +Documentation on variable MOVE_FUNC_BADSTART in module ida_funcs: + + bad new start address + +Documentation on variable MOVE_FUNC_NOFUNC in module ida_funcs: + + no function at 'ea' + +Documentation on variable MOVE_FUNC_REFUSED in module ida_funcs: + + a plugin refused the action + +Documentation on variable FIND_FUNC_NORMAL in module ida_funcs: + + stop processing if undefined byte is encountered + +Documentation on variable FIND_FUNC_DEFINE in module ida_funcs: + + create instruction if undefined byte is encountered + +Documentation on variable FIND_FUNC_IGNOREFN in module ida_funcs: + + ignore existing function boundaries. by default the function returns function + boundaries if ea belongs to a function. + +Documentation on variable FIND_FUNC_KEEPBD in module ida_funcs: + + do not modify incoming function boundaries, just create instructions inside the + boundaries. + +Documentation on variable FIND_FUNC_UNDEF in module ida_funcs: + + function has instructions that pass execution flow to unexplored bytes. + nfn->end_ea will have the address of the unexplored byte. + +Documentation on variable FIND_FUNC_OK in module ida_funcs: + + ok, 'nfn' is ready for add_func() + +Documentation on variable FIND_FUNC_EXIST in module ida_funcs: + + function exists already. its bounds are returned in 'nfn'. + +Documentation on variable IDASGN_OK in module ida_funcs: + + ok + +Documentation on variable IDASGN_BADARG in module ida_funcs: + + bad number of signature + +Documentation on variable IDASGN_APPLIED in module ida_funcs: + + signature is already applied + +Documentation on variable IDASGN_CURRENT in module ida_funcs: + + signature is currently being applied + +Documentation on variable IDASGN_PLANNED in module ida_funcs: + + signature is planned to be applied + +Documentation on variable LIBFUNC_FOUND in module ida_funcs: + + ok, library function is found + +Documentation on variable LIBFUNC_NONE in module ida_funcs: + + no, this is not a library function + +Documentation on variable LIBFUNC_DELAY in module ida_funcs: + + no decision because of lack of information + +Documentation on variable fcb_normal in module ida_gdl: + + normal block + +Documentation on variable fcb_indjump in module ida_gdl: + + block ends with indirect jump + +Documentation on variable fcb_ret in module ida_gdl: + + return block + +Documentation on variable fcb_cndret in module ida_gdl: + + conditional return block + +Documentation on variable fcb_noret in module ida_gdl: + + noreturn block + +Documentation on variable fcb_enoret in module ida_gdl: + + external noreturn block (does not belong to the function) + +Documentation on variable fcb_extern in module ida_gdl: + + external normal block + +Documentation on variable fcb_error in module ida_gdl: + + block passes execution past the function end + +Documentation on variable CHART_PRINT_NAMES in module ida_gdl: + + print labels for each block? + +Documentation on variable CHART_GEN_DOT in module ida_gdl: + + generate .dot file (file extension is forced to .dot) + +Documentation on variable CHART_GEN_GDL in module ida_gdl: + + generate .gdl file (file extension is forced to .gdl) + +Documentation on variable CHART_WINGRAPH in module ida_gdl: + + call grapher to display the graph + +Documentation on variable CHART_NOLIBFUNCS in module ida_gdl: + + don't include library functions in the graph + +Documentation on variable CHART_REFERENCING in module ida_gdl: + + references to the addresses in the list + +Documentation on variable CHART_REFERENCED in module ida_gdl: + + references from the addresses in the list + +Documentation on variable CHART_RECURSIVE in module ida_gdl: + + analyze added blocks + +Documentation on variable CHART_FOLLOW_DIRECTION in module ida_gdl: + + analyze references to added blocks only in the direction of the reference who + discovered the current block + +Documentation on variable CHART_IGNORE_LIB_TO in module ida_gdl: + + ignore references to library functions + +Documentation on variable CHART_IGNORE_LIB_FROM in module ida_gdl: + + ignore references from library functions + +Documentation on variable CHART_PRINT_DOTS in module ida_gdl: + + print dots if xrefs exist outside of the range recursion depth + +Documentation on variable FC_PRINT in module ida_gdl: + + print names (used only by display_flow_chart()) + +Documentation on variable FC_NOEXT in module ida_gdl: + + do not compute external blocks. Use this to prevent jumps leaving the function + from appearing in the flow chart. Unless specified, the targets of those + outgoing jumps will be present in the flow chart under the form of one- + instruction blocks + +Documentation on variable FC_APPND in module ida_gdl: + + multirange flowchart (set by append_to_flowchart) + +Documentation on variable FC_CHKBREAK in module ida_gdl: + + build_qflow_chart() may be aborted by user + +Documentation on variable FC_CALL_ENDS in module ida_gdl: + + call instructions terminate basic blocks + +Documentation on variable FC_NOPREDS in module ida_gdl: + + do not compute predecessor lists + +Documentation on variable FC_OUTLINES in module ida_gdl: + + include outlined code (with FUNC_OUTLINE) + +Documentation on variable qflow_chart_t.bounds in module ida_gdl: + + overall bounds of the qflow_chart_t instance + +Documentation on variable qflow_chart_t.pfn in module ida_gdl: + + the function this instance was built upon + +Documentation on variable qflow_chart_t.flags in module ida_gdl: + + flags. See Flow chart flags + +Documentation on variable qflow_chart_t.nproper in module ida_gdl: + + number of basic blocks belonging to the specified range + +Documentation on variable FlowChart.size in module ida_gdl: + + Number of blocks in the flow chart + +Documentation on variable NIF_BG_COLOR in module ida_graph: + + node_info_t::bg_color + +Documentation on variable NIF_FRAME_COLOR in module ida_graph: + + node_info_t::frame_color + +Documentation on variable NIF_EA in module ida_graph: + + node_info_t::ea + +Documentation on variable NIF_TEXT in module ida_graph: + + node_info_t::text + +Documentation on variable NIF_FLAGS in module ida_graph: + + node_info_t::flags + +Documentation on variable GLICTL_CENTER in module ida_graph: + + the gli should be set/get as center + +Documentation on variable node_info_t.bg_color in module ida_graph: + + background color + +Documentation on variable node_info_t.frame_color in module ida_graph: + + color of enclosing frame + +Documentation on variable node_info_t.flags in module ida_graph: + + flags + +Documentation on variable node_info_t.ea in module ida_graph: + + address + +Documentation on variable node_info_t.text in module ida_graph: + + node contents + +Documentation on variable edge_t.src in module ida_graph: + + source node number + +Documentation on variable edge_t.dst in module ida_graph: + + destination node number + +Documentation on variable graph_path_visitor_t.path in module ida_graph: + + current path + +Documentation on variable graph_path_visitor_t.prune in module ida_graph: + + walk_forward(): prune := true means to stop the current path + +Documentation on variable edge_info_t.color in module ida_graph: + + edge color + +Documentation on variable edge_info_t.width in module ida_graph: + + edge width + +Documentation on variable edge_info_t.layout in module ida_graph: + + describes geometry of edge + +Documentation on variable edge_layout_point_t.pidx in module ida_graph: + + index into edge_info_t::layout + +Documentation on variable edge_layout_point_t.e in module ida_graph: + + parent edge + +Documentation on variable selection_item_t.is_node in module ida_graph: + + represents a selected node? + +Documentation on variable selection_item_t.node in module ida_graph: + + node number (is_node = true) + +Documentation on variable selection_item_t.elp in module ida_graph: + + edge layout point (is_node = false) + +Documentation on variable git_none in module ida_graph: + + nothing + +Documentation on variable git_edge in module ida_graph: + + edge (graph_item_t::e, graph_item_t::n. n is farthest edge endpoint) + +Documentation on variable git_node in module ida_graph: + + node title (graph_item_t::n) + +Documentation on variable git_tool in module ida_graph: + + node title button (graph_item_t::n, graph_item_t::b) + +Documentation on variable git_text in module ida_graph: + + node text (graph_item_t::n, graph_item_t::p) + +Documentation on variable git_elp in module ida_graph: + + edge layout point (graph_item_t::elp) + +Documentation on variable graph_item_t.type in module ida_graph: + + type + +Documentation on variable graph_item_t.e in module ida_graph: + + edge source and destination + +Documentation on variable graph_item_t.n in module ida_graph: + + node number + +Documentation on variable graph_item_t.b in module ida_graph: + + button number + +Documentation on variable graph_item_t.p in module ida_graph: + + text coordinates in the node + +Documentation on variable graph_item_t.elp in module ida_graph: + + edge layout point + +Documentation on variable row_info_t.nodes in module ida_graph: + + list of nodes at the row + +Documentation on variable row_info_t.top in module ida_graph: + + top y coord of the row + +Documentation on variable row_info_t.bottom in module ida_graph: + + bottom y coord of the row + +Documentation on variable abstract_graph_t.title in module ida_graph: + + graph title + +Documentation on variable abstract_graph_t.rect_edges_made in module ida_graph: + + have create rectangular edges? + +Documentation on variable abstract_graph_t.current_layout in module ida_graph: + + see Proximity view layouts + +Documentation on variable abstract_graph_t.circle_center in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.circle_radius in module ida_graph: + + for layout_circle + +Documentation on variable abstract_graph_t.callback_ud in module ida_graph: + + user data for callback + +Documentation on variable mutable_graph_t.gid in module ida_graph: + + graph id - unique for the database for flowcharts it is equal to the function + start_ea + +Documentation on variable mutable_graph_t.belongs in module ida_graph: + + the subgraph the node belongs to INT_MAX means that the node doesn't exist sign + bit means collapsed node + +Documentation on variable mutable_graph_t.node_flags in module ida_graph: + + node flags + +Documentation on variable MTG_GROUP_NODE in module ida_graph: + + is group node? + +Documentation on variable MTG_DOT_NODE in module ida_graph: + + is dot node? + +Documentation on variable MTG_NON_DISPLAYABLE_NODE in module ida_graph: + + for disassembly graphs - non-displayable nodes have a visible area that is too + large to generate disassembly lines for without IDA slowing down significantly + (see MAX_VISIBLE_NODE_AREA) + +Documentation on variable grcode_calculating_layout in module ida_graph: + + calculating user-defined graph layout. + + @retval 0: not implemented + @retval 1: graph layout calculated by the plugin + +Documentation on variable grcode_layout_calculated in module ida_graph: + + graph layout calculated. + + @retval 0: must return 0 + +Documentation on variable grcode_changed_graph in module ida_graph: + + new graph has been set. + + @retval 0: must return 0 + +Documentation on variable grcode_clicked in module ida_graph: + + graph is being clicked. this callback allows you to ignore some clicks. it + occurs too early, internal graph variables are not updated yet. current_item1, + current_item2 point to the same thing. item2 has more information. see also: + custom_viewer_click_t + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_dblclicked in module ida_graph: + + a graph node has been double clicked. + + @retval 0: ok + @retval 1: ignore click + +Documentation on variable grcode_creating_group in module ida_graph: + + a group is being created. this provides an opportunity for the graph to forbid + creation of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group creation + +Documentation on variable grcode_deleting_group in module ida_graph: + + a group is being deleted. this provides an opportunity for the graph to forbid + deletion of the group. Note that groups management is done by the + mutable_graph_t instance itself: there is no need to modify the graph in this + callback. + + @retval 0: ok + @retval 1: forbid group deletion + +Documentation on variable grcode_group_visibility in module ida_graph: + + a group is being collapsed/uncollapsed this provides an opportunity for the + graph to forbid changing the visibility of the group. Note that groups + management is done by the mutable_graph_t instance itself: there is no need to + modify the graph in this callback. + + @retval 0: ok + @retval 1: forbid group modification + +Documentation on variable grcode_gotfocus in module ida_graph: + + a graph viewer got focus. + + @retval 0: must return 0 + +Documentation on variable grcode_lostfocus in module ida_graph: + + a graph viewer lost focus. + + @retval 0: must return 0 + +Documentation on variable grcode_user_refresh in module ida_graph: + + refresh user-defined graph nodes and edges This is called when the UI considers + that it is necessary to recreate the graph layout, and thus has to ensure that + the 'mutable_graph_t' instance it is using, is up-to-date. For example: + * at graph creation-time + * if a refresh_viewer() call was made + + @return: success + +Documentation on variable grcode_user_text in module ida_graph: + + retrieve text for user-defined graph node. NB: do not use anything calling GDI! + + @return: success, result must be filled + +Documentation on variable grcode_user_size in module ida_graph: + + calculate node size for user-defined graph. + + @retval 0: did not calculate. ida will use node text size + @retval 1: calculated. ida will add node title to the size + +Documentation on variable grcode_user_title in module ida_graph: + + render node title of a user-defined graph. + + @retval 0: did not render, ida will fill it with title_bg_color + @retval 1: rendered node title + +Documentation on variable grcode_user_draw in module ida_graph: + + render node of a user-defined graph. NB: draw only on the specified DC and + nowhere else! + + @retval 0: not rendered + @retval 1: rendered + +Documentation on variable grcode_user_hint in module ida_graph: + + retrieve hint for the user-defined graph. + + @retval 0: use default hint + @retval 1: use proposed hint + +Documentation on variable grcode_destroyed in module ida_graph: + + graph is being destroyed. Note that this doesn't mean the graph viewer is being + destroyed; this only means that the graph that is being displayed by it is being + destroyed, and that, e.g., any possibly cached data should be invalidated (this + event can happen when, for example, the user decides to group nodes together: + that operation will effectively create a new graph, that will replace the old + one.) To be notified when the graph viewer itself is being destroyed, please see + notification 'view_close', in kernwin.hpp + + @retval 0: must return 0 + +Documentation on variable grcode_create_graph_viewer in module ida_graph: + + use create_graph_viewer() + +Documentation on variable grcode_get_graph_viewer in module ida_graph: + + use get_graph_viewer() + +Documentation on variable grcode_get_viewer_graph in module ida_graph: + + use get_viewer_graph() + +Documentation on variable grcode_create_mutable_graph in module ida_graph: + + use create_mutable_graph() + +Documentation on variable grcode_set_viewer_graph in module ida_graph: + + use set_viewer_graph() + +Documentation on variable grcode_refresh_viewer in module ida_graph: + + use refresh_viewer() + +Documentation on variable grcode_fit_window in module ida_graph: + + use viewer_fit_window() + +Documentation on variable grcode_get_curnode in module ida_graph: + + use viewer_get_curnode() + +Documentation on variable grcode_center_on in module ida_graph: + + use viewer_center_on() + +Documentation on variable grcode_get_selection in module ida_graph: + + use viewer_get_selection() + +Documentation on variable grcode_del_custom_layout in module ida_graph: + + use mutable_graph_t::del_custom_layout() + +Documentation on variable grcode_set_custom_layout in module ida_graph: + + use mutable_graph_t::set_custom_layout() + +Documentation on variable grcode_set_graph_groups in module ida_graph: + + use mutable_graph_t::set_graph_groups() + +Documentation on variable grcode_clear in module ida_graph: + + use mutable_graph_t::clear() + +Documentation on variable grcode_create_digraph_layout in module ida_graph: + + use mutable_graph_t::create_digraph_layout() + +Documentation on variable grcode_create_tree_layout in module ida_graph: + + use abstract_graph_t::create_tree_layout() + +Documentation on variable grcode_create_circle_layout in module ida_graph: + + use abstract_graph_t::create_circle_layout() + +Documentation on variable grcode_get_node_representative in module ida_graph: + + use mutable_graph_t::get_node_representative() + +Documentation on variable grcode_find_subgraph_node in module ida_graph: + + use mutable_graph_t::_find_subgraph_node() + +Documentation on variable grcode_create_group in module ida_graph: + + use mutable_graph_t::create_group() + +Documentation on variable grcode_get_custom_layout in module ida_graph: + + use mutable_graph_t::get_custom_layout() + +Documentation on variable grcode_get_graph_groups in module ida_graph: + + use mutable_graph_t::get_graph_groups() + +Documentation on variable grcode_empty in module ida_graph: + + use mutable_graph_t::empty() + +Documentation on variable grcode_is_visible_node in module ida_graph: + + use mutable_graph_t::is_visible_node() + +Documentation on variable grcode_delete_group in module ida_graph: + + use mutable_graph_t::delete_group() + +Documentation on variable grcode_change_group_visibility in module ida_graph: + + use mutable_graph_t::change_group_visibility() + +Documentation on variable grcode_set_edge in module ida_graph: + + use mutable_graph_t::set_edge() + +Documentation on variable grcode_node_qty in module ida_graph: + + use mutable_graph_t::node_qty() + +Documentation on variable grcode_nrect in module ida_graph: + + use mutable_graph_t::nrect() + +Documentation on variable grcode_set_titlebar_height in module ida_graph: + + use viewer_set_titlebar_height() + +Documentation on variable grcode_create_user_graph_place in module ida_graph: + + use create_user_graph_place() + +Documentation on variable grcode_create_disasm_graph1 in module ida_graph: + + use create_disasm_graph(ea_t ea) + +Documentation on variable grcode_create_disasm_graph2 in module ida_graph: + + use create_disasm_graph(const rangevec_t &ranges) + +Documentation on variable grcode_set_node_info in module ida_graph: + + use viewer_set_node_info() + +Documentation on variable grcode_get_node_info in module ida_graph: + + use viewer_get_node_info() + +Documentation on variable grcode_del_node_info in module ida_graph: + + use viewer_del_node_info() + +Documentation on variable grcode_viewer_create_groups_vec in module ida_graph: + + use viewer_create_groups() + +Documentation on variable grcode_viewer_delete_groups_vec in module ida_graph: + + use viewer_delete_groups() + +Documentation on variable grcode_viewer_groups_visibility_vec in module ida_graph: + + use viewer_set_groups_visibility() + +Documentation on variable grcode_delete_mutable_graph in module ida_graph: + + use delete_mutable_graph() + +Documentation on variable grcode_edge_infos_wrapper_copy in module ida_graph: + + use edge_infos_wrapper_t::operator=() + +Documentation on variable grcode_edge_infos_wrapper_clear in module ida_graph: + + use edge_infos_wrapper_t::clear() + +Documentation on variable grcode_set_gli in module ida_graph: + + use viewer_set_gli() + +Documentation on variable grcode_get_gli in module ida_graph: + + use viewer_get_gli() + +Documentation on variable MERR_OK in module ida_hexrays: + + ok + +Documentation on variable MERR_BLOCK in module ida_hexrays: + + no error, switch to new block + +Documentation on variable MERR_INTERR in module ida_hexrays: + + internal error + +Documentation on variable MERR_INSN in module ida_hexrays: + + cannot convert to microcode + +Documentation on variable MERR_MEM in module ida_hexrays: + + not enough memory + +Documentation on variable MERR_BADBLK in module ida_hexrays: + + bad block found + +Documentation on variable MERR_BADSP in module ida_hexrays: + + positive sp value has been found + +Documentation on variable MERR_PROLOG in module ida_hexrays: + + prolog analysis failed + +Documentation on variable MERR_SWITCH in module ida_hexrays: + + wrong switch idiom + +Documentation on variable MERR_EXCEPTION in module ida_hexrays: + + exception analysis failed + +Documentation on variable MERR_HUGESTACK in module ida_hexrays: + + stack frame is too big + +Documentation on variable MERR_LVARS in module ida_hexrays: + + local variable allocation failed + +Documentation on variable MERR_BITNESS in module ida_hexrays: + + 16-bit functions cannot be decompiled + +Documentation on variable MERR_BADCALL in module ida_hexrays: + + could not determine call arguments + +Documentation on variable MERR_BADFRAME in module ida_hexrays: + + function frame is wrong + +Documentation on variable MERR_UNKTYPE in module ida_hexrays: + + undefined type s (currently unused error code) + +Documentation on variable MERR_BADIDB in module ida_hexrays: + + inconsistent database information + +Documentation on variable MERR_SIZEOF in module ida_hexrays: + + wrong basic type sizes in compiler settings + +Documentation on variable MERR_REDO in module ida_hexrays: + + redecompilation has been requested + +Documentation on variable MERR_CANCELED in module ida_hexrays: + + decompilation has been cancelled + +Documentation on variable MERR_RECDEPTH in module ida_hexrays: + + max recursion depth reached during lvar allocation + +Documentation on variable MERR_OVERLAP in module ida_hexrays: + + variables would overlap: s + +Documentation on variable MERR_PARTINIT in module ida_hexrays: + + partially initialized variable s + +Documentation on variable MERR_COMPLEX in module ida_hexrays: + + too complex function + +Documentation on variable MERR_LICENSE in module ida_hexrays: + + no license available + +Documentation on variable MERR_ONLY32 in module ida_hexrays: + + only 32-bit functions can be decompiled for the current database + +Documentation on variable MERR_ONLY64 in module ida_hexrays: + + only 64-bit functions can be decompiled for the current database + +Documentation on variable MERR_BUSY in module ida_hexrays: + + already decompiling a function + +Documentation on variable MERR_FARPTR in module ida_hexrays: + + far memory model is supported only for pc + +Documentation on variable MERR_EXTERN in module ida_hexrays: + + special segments cannot be decompiled + +Documentation on variable MERR_FUNCSIZE in module ida_hexrays: + + too big function + +Documentation on variable MERR_BADRANGES in module ida_hexrays: + + bad input ranges + +Documentation on variable MERR_BADARCH in module ida_hexrays: + + current architecture is not supported + +Documentation on variable MERR_DSLOT in module ida_hexrays: + + bad instruction in the delay slot + +Documentation on variable MERR_STOP in module ida_hexrays: + + no error, stop the analysis + +Documentation on variable MERR_LOOP in module ida_hexrays: + + internal code: redo last loop (never reported) + +Documentation on variable operand_locator_t.ea in module ida_hexrays: + + address of the original processor instruction + +Documentation on variable operand_locator_t.opnum in module ida_hexrays: + + operand number in the instruction + +Documentation on variable number_format_t.flags in module ida_hexrays: + + ida flags, which describe number radix, enum, etc + +Documentation on variable number_format_t.opnum in module ida_hexrays: + + operand number: 0..UA_MAXOP + +Documentation on variable number_format_t.serial in module ida_hexrays: + + for enums: constant serial number + +Documentation on variable number_format_t.org_nbytes in module ida_hexrays: + + original number size in bytes + +Documentation on variable number_format_t.type_name in module ida_hexrays: + + for stroffs: structure for offsetof() + for enums: enum name + +Documentation on variable NF_FIXED in module ida_hexrays: + + number format has been defined by the user + +Documentation on variable NF_NEGDONE in module ida_hexrays: + + temporary internal bit: negation has been performed + +Documentation on variable NF_BINVDONE in module ida_hexrays: + + temporary internal bit: inverting bits is done + +Documentation on variable NF_NEGATE in module ida_hexrays: + + The user asked to negate the constant. + +Documentation on variable NF_BITNOT in module ida_hexrays: + + The user asked to invert bits of the constant. + +Documentation on variable NF_VALID in module ida_hexrays: + + internal bit: stroff or enum is valid for enums: this bit is set immediately for + stroffs: this bit is set at the end of decompilation + +Documentation on variable vd_printer_t.hdrlines in module ida_hexrays: + + number of header lines (prototype+typedef+lvars) valid at the end of print + process + +Documentation on variable vc_printer_t.func in module ida_hexrays: + + cfunc_t to generate text for + +Documentation on variable qstring_printer_t.with_tags in module ida_hexrays: + + Generate output with color tags. + +Documentation on variable qstring_printer_t.s in module ida_hexrays: + + Reference to the output string + +Documentation on variable lvar_locator_t.location in module ida_hexrays: + + Variable location. + +Documentation on variable lvar_locator_t.defea in module ida_hexrays: + + Definition address. Usually, this is the address of the instruction that + initializes the variable. In some cases it can be a fictional address. + +Documentation on variable lvar_t.name in module ida_hexrays: + + variable name. use mba_t::set_nice_lvar_name() and mba_t::set_user_lvar_name() + to modify it + +Documentation on variable lvar_t.cmt in module ida_hexrays: + + variable comment string + +Documentation on variable lvar_t.tif in module ida_hexrays: + + variable type + +Documentation on variable lvar_t.width in module ida_hexrays: + + variable size in bytes + +Documentation on variable lvar_t.defblk in module ida_hexrays: + + first block defining the variable. 0 for args, -1 if unknown + +Documentation on variable lvar_t.divisor in module ida_hexrays: + + max known divisor of the variable + +Documentation on variable lvar_saved_info_t.ll in module ida_hexrays: + + Variable locator. + +Documentation on variable lvar_saved_info_t.name in module ida_hexrays: + + Name. + +Documentation on variable lvar_saved_info_t.type in module ida_hexrays: + + Type. + +Documentation on variable lvar_saved_info_t.cmt in module ida_hexrays: + + Comment. + +Documentation on variable lvar_saved_info_t.size in module ida_hexrays: + + Type size (if not initialized then -1) + +Documentation on variable lvar_saved_info_t.flags in module ida_hexrays: + + saved user lvar info property bits + +Documentation on variable LVINF_KEEP in module ida_hexrays: + + preserve saved user settings regardless of vars for example, if a var loses all + its user-defined attributes or even gets destroyed, keep its lvar_saved_info_t. + this is used for ephemeral variables that get destroyed by macro recognition. + +Documentation on variable LVINF_FORCE in module ida_hexrays: + + force allocation of a new variable. forces the decompiler to create a new + variable at ll.defea + +Documentation on variable LVINF_NOPTR in module ida_hexrays: + + variable type should not be a pointer + +Documentation on variable LVINF_NOMAP in module ida_hexrays: + + forbid automatic mapping of the variable + +Documentation on variable LVINF_UNUSED in module ida_hexrays: + + unused argument, corresponds to CVAR_UNUSED + +Documentation on variable lvar_uservec_t.lvvec in module ida_hexrays: + + User-specified names, types, comments for lvars. Variables without user- + specified info are not present in this vector. + +Documentation on variable lvar_uservec_t.lmaps in module ida_hexrays: + + Local variable mapping (used for merging variables) + +Documentation on variable lvar_uservec_t.stkoff_delta in module ida_hexrays: + + Delta to add to IDA stack offset to calculate Hex-Rays stack offsets. Should be + set by the caller before calling save_user_lvar_settings(); + +Documentation on variable lvar_uservec_t.ulv_flags in module ida_hexrays: + + Various flags. Possible values are from lvar_uservec_t property bits. + +Documentation on variable ULV_PRECISE_DEFEA in module ida_hexrays: + + Use precise defea's for lvar locations. + +Documentation on variable MLI_NAME in module ida_hexrays: + + apply lvar name + +Documentation on variable MLI_TYPE in module ida_hexrays: + + apply lvar type + +Documentation on variable MLI_CMT in module ida_hexrays: + + apply lvar comment + +Documentation on variable MLI_SET_FLAGS in module ida_hexrays: + + set LVINF_... bits + +Documentation on variable MLI_CLR_FLAGS in module ida_hexrays: + + clear LVINF_... bits + +Documentation on variable mop_visitor_t.prune in module ida_hexrays: + + Should skip sub-operands of the current operand? visit_mop() may set + 'prune=true' for that. + +Documentation on variable lvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Since we need to access the 'mba->vars' + array in order to retrieve the referenced variable, we keep a pointer to mba_t + here. Note: this means this class and consequently mop_t, minsn_t, mblock_t are + specific to a mba_t object and cannot migrate between them. fortunately this is + not something we need to do. second, lvar_ref_t's appear only after MMAT_LVARS. + +Documentation on variable lvar_ref_t.off in module ida_hexrays: + + offset from the beginning of the variable + +Documentation on variable lvar_ref_t.idx in module ida_hexrays: + + index into mba->vars + +Documentation on variable mop_z in module ida_hexrays: + + none + +Documentation on variable mop_r in module ida_hexrays: + + register (they exist until MMAT_LVARS) + +Documentation on variable mop_n in module ida_hexrays: + + immediate number constant + +Documentation on variable mop_str in module ida_hexrays: + + immediate string constant (user representation) + +Documentation on variable mop_d in module ida_hexrays: + + result of another instruction + +Documentation on variable mop_S in module ida_hexrays: + + local stack variable (they exist until MMAT_LVARS) + +Documentation on variable mop_v in module ida_hexrays: + + global variable + +Documentation on variable mop_b in module ida_hexrays: + + micro basic block (mblock_t) + +Documentation on variable mop_f in module ida_hexrays: + + list of arguments + +Documentation on variable mop_l in module ida_hexrays: + + local variable + +Documentation on variable mop_h in module ida_hexrays: + + helper function + +Documentation on variable mop_c in module ida_hexrays: + + mcases + +Documentation on variable mop_fn in module ida_hexrays: + + floating point constant + +Documentation on variable mop_p in module ida_hexrays: + + operand pair + +Documentation on variable mop_sc in module ida_hexrays: + + scattered + +Documentation on variable NOSIZE in module ida_hexrays: + + wrong or unexisting operand size + +Documentation on variable stkvar_ref_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. We need it in order to retrieve the + referenced stack variable. See notes for lvar_ref_t::mba. + +Documentation on variable stkvar_ref_t.off in module ida_hexrays: + + Offset to the stack variable from the bottom of the stack frame. It is called + 'decompiler stkoff' and it is different from IDA stkoff. See a note and a + picture about 'decompiler stkoff' below. + +Documentation on variable scif_t.mba in module ida_hexrays: + + Pointer to the parent mba_t object. Some operations may convert a scattered + operand into something simpler, (a stack operand, for example). We will need to + create stkvar_ref_t at that moment, this is why we need this pointer. See notes + for lvar_ref_t::mba. + +Documentation on variable scif_t.name in module ida_hexrays: + + Usually scattered operands are created from a function prototype, which has the + name information. We preserve it and use it to name the corresponding local + variable. + +Documentation on variable scif_t.type in module ida_hexrays: + + Scattered operands always have type info assigned to them because without it we + won't be able to manipulte them. + +Documentation on variable fnumber_t.fnum in module ida_hexrays: + + Internal representation of the number. + +Documentation on variable fnumber_t.nbytes in module ida_hexrays: + + Original size of the constant in bytes. + +Documentation on variable SHINS_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable SHINS_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable SHINS_SHORT in module ida_hexrays: + + do not display use-def chains and other attrs + +Documentation on variable SHINS_LDXEA in module ida_hexrays: + + display address of ldx expressions (not used) + +Documentation on variable NO_SIDEFF in module ida_hexrays: + + change operand size but ignore side effects if you decide to keep the changed + operand, handle_new_size() must be called + +Documentation on variable WITH_SIDEFF in module ida_hexrays: + + change operand size and handle side effects + +Documentation on variable ONLY_SIDEFF in module ida_hexrays: + + only handle side effects + +Documentation on variable ANY_REGSIZE in module ida_hexrays: + + any register size is permitted + +Documentation on variable ANY_FPSIZE in module ida_hexrays: + + any size of floating operand is permitted + +Documentation on variable mop_t.t in module ida_hexrays: + + Operand type. + +Documentation on variable mop_t.oprops in module ida_hexrays: + + Operand properties. + +Documentation on variable mop_t.valnum in module ida_hexrays: + + Value number. Zero means unknown. Operands with the same value number are equal. + +Documentation on variable mop_t.size in module ida_hexrays: + + Operand size. Usually it is 1,2,4,8 or NOSIZE but for UDTs other sizes are + permitted + +Documentation on variable OPROP_IMPDONE in module ida_hexrays: + + imported operand (a pointer) has been dereferenced + +Documentation on variable OPROP_UDT in module ida_hexrays: + + a struct or union + +Documentation on variable OPROP_FLOAT in module ida_hexrays: + + possibly floating value + +Documentation on variable OPROP_UDEFVAL in module ida_hexrays: + + uses undefined value + +Documentation on variable OPROP_LOWADDR in module ida_hexrays: + + a low address offset + +Documentation on variable mop_pair_t.lop in module ida_hexrays: + + low operand + +Documentation on variable mop_pair_t.hop in module ida_hexrays: + + high operand + +Documentation on variable mcallarg_t.ea in module ida_hexrays: + + address where the argument was initialized. BADADDR means unknown. + +Documentation on variable mcallarg_t.type in module ida_hexrays: + + formal argument type + +Documentation on variable mcallarg_t.name in module ida_hexrays: + + formal argument name + +Documentation on variable mcallarg_t.argloc in module ida_hexrays: + + ida argloc + +Documentation on variable mcallarg_t.flags in module ida_hexrays: + + FAI_... + +Documentation on variable ROLE_UNK in module ida_hexrays: + + unknown function role + +Documentation on variable ROLE_EMPTY in module ida_hexrays: + + empty, does not do anything (maybe spoils regs) + +Documentation on variable ROLE_MEMSET in module ida_hexrays: + + memset(void *dst, uchar value, size_t count); + +Documentation on variable ROLE_MEMSET32 in module ida_hexrays: + + memset32(void *dst, uint32 value, size_t count); + +Documentation on variable ROLE_MEMSET64 in module ida_hexrays: + + memset64(void *dst, uint64 value, size_t count); + +Documentation on variable ROLE_MEMCPY in module ida_hexrays: + + memcpy(void *dst, const void *src, size_t count); + +Documentation on variable ROLE_STRCPY in module ida_hexrays: + + strcpy(char *dst, const char *src); + +Documentation on variable ROLE_STRLEN in module ida_hexrays: + + strlen(const char *src); + +Documentation on variable ROLE_STRCAT in module ida_hexrays: + + strcat(char *dst, const char *src); + +Documentation on variable ROLE_TAIL in module ida_hexrays: + + char *tail(const char *str); + +Documentation on variable ROLE_BUG in module ida_hexrays: + + BUG() helper macro: never returns, causes exception. + +Documentation on variable ROLE_ALLOCA in module ida_hexrays: + + alloca() function + +Documentation on variable ROLE_BSWAP in module ida_hexrays: + + bswap() function (any size) + +Documentation on variable ROLE_PRESENT in module ida_hexrays: + + present() function (used in patterns) + +Documentation on variable ROLE_CONTAINING_RECORD in module ida_hexrays: + + CONTAINING_RECORD() macro. + +Documentation on variable ROLE_FASTFAIL in module ida_hexrays: + + __fastfail() + +Documentation on variable ROLE_READFLAGS in module ida_hexrays: + + __readeflags, __readcallersflags + +Documentation on variable ROLE_IS_MUL_OK in module ida_hexrays: + + is_mul_ok + +Documentation on variable ROLE_SATURATED_MUL in module ida_hexrays: + + saturated_mul + +Documentation on variable ROLE_BITTEST in module ida_hexrays: + + [lock] bt + +Documentation on variable ROLE_BITTESTANDSET in module ida_hexrays: + + [lock] bts + +Documentation on variable ROLE_BITTESTANDRESET in module ida_hexrays: + + [lock] btr + +Documentation on variable ROLE_BITTESTANDCOMPLEMENT in module ida_hexrays: + + [lock] btc + +Documentation on variable ROLE_VA_ARG in module ida_hexrays: + + va_arg() macro + +Documentation on variable ROLE_VA_COPY in module ida_hexrays: + + va_copy() function + +Documentation on variable ROLE_VA_START in module ida_hexrays: + + va_start() function + +Documentation on variable ROLE_VA_END in module ida_hexrays: + + va_end() function + +Documentation on variable ROLE_ROL in module ida_hexrays: + + rotate left + +Documentation on variable ROLE_ROR in module ida_hexrays: + + rotate right + +Documentation on variable ROLE_CFSUB3 in module ida_hexrays: + + carry flag after subtract with carry + +Documentation on variable ROLE_OFSUB3 in module ida_hexrays: + + overflow flag after subtract with carry + +Documentation on variable ROLE_ABS in module ida_hexrays: + + integer absolute value + +Documentation on variable ROLE_3WAYCMP0 in module ida_hexrays: + + 3-way compare helper, returns -1/0/1 + +Documentation on variable ROLE_3WAYCMP1 in module ida_hexrays: + + 3-way compare helper, returns 0/1/2 + +Documentation on variable ROLE_WMEMCPY in module ida_hexrays: + + wchar_t *wmemcpy(wchar_t *dst, const wchar_t *src, size_t n) + +Documentation on variable ROLE_WMEMSET in module ida_hexrays: + + wchar_t *wmemset(wchar_t *dst, wchar_t wc, size_t n) + +Documentation on variable ROLE_WCSCPY in module ida_hexrays: + + wchar_t *wcscpy(wchar_t *dst, const wchar_t *src); + +Documentation on variable ROLE_WCSLEN in module ida_hexrays: + + size_t wcslen(const wchar_t *s) + +Documentation on variable ROLE_WCSCAT in module ida_hexrays: + + wchar_t *wcscat(wchar_t *dst, const wchar_t *src) + +Documentation on variable ROLE_SSE_CMP4 in module ida_hexrays: + + e.g. _mm_cmpgt_ss + +Documentation on variable ROLE_SSE_CMP8 in module ida_hexrays: + + e.g. _mm_cmpgt_sd + +Documentation on variable mcallinfo_t.callee in module ida_hexrays: + + address of the called function, if known + +Documentation on variable mcallinfo_t.solid_args in module ida_hexrays: + + number of solid args. there may be variadic args in addtion + +Documentation on variable mcallinfo_t.call_spd in module ida_hexrays: + + sp value at call insn + +Documentation on variable mcallinfo_t.stkargs_top in module ida_hexrays: + + first offset past stack arguments + +Documentation on variable mcallinfo_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mcallinfo_t.args in module ida_hexrays: + + call arguments + +Documentation on variable mcallinfo_t.retregs in module ida_hexrays: + + return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs + +Documentation on variable mcallinfo_t.return_type in module ida_hexrays: + + type of the returned value + +Documentation on variable mcallinfo_t.return_argloc in module ida_hexrays: + + location of the returned value + +Documentation on variable mcallinfo_t.return_regs in module ida_hexrays: + + list of values returned by the function + +Documentation on variable mcallinfo_t.spoiled in module ida_hexrays: + + list of spoiled locations (includes return_regs) + +Documentation on variable mcallinfo_t.pass_regs in module ida_hexrays: + + passthrough registers: registers that depend on input values (subset of spoiled) + +Documentation on variable mcallinfo_t.visible_memory in module ida_hexrays: + + what memory is visible to the call? + +Documentation on variable mcallinfo_t.dead_regs in module ida_hexrays: + + registers defined by the function but never used. upon propagation we do the + following: + * dead_regs += return_regs + * retregs.clear() since the call is propagated + +Documentation on variable mcallinfo_t.flags in module ida_hexrays: + + combination of Call properties... bits + +Documentation on variable mcallinfo_t.role in module ida_hexrays: + + function role + +Documentation on variable mcallinfo_t.fti_attrs in module ida_hexrays: + + extended function attributes + +Documentation on variable FCI_PROP in module ida_hexrays: + + call has been propagated + +Documentation on variable FCI_DEAD in module ida_hexrays: + + some return registers were determined dead + +Documentation on variable FCI_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable FCI_NORET in module ida_hexrays: + + call does not return + +Documentation on variable FCI_PURE in module ida_hexrays: + + pure function + +Documentation on variable FCI_NOSIDE in module ida_hexrays: + + call does not have side effects + +Documentation on variable FCI_SPLOK in module ida_hexrays: + + spoiled/visible_memory lists have been optimized. for some functions we can + reduce them as soon as information about the arguments becomes available. in + order not to try optimize them again we use this bit. + +Documentation on variable FCI_HASCALL in module ida_hexrays: + + A function is an synthetic helper combined from several instructions and at + least one of them was a call to a real functions + +Documentation on variable FCI_HASFMT in module ida_hexrays: + + A variadic function with recognized printf- or scanf-style format string + +Documentation on variable FCI_EXPLOCS in module ida_hexrays: + + all arglocs are specified explicitly + +Documentation on variable mcases_t.values in module ida_hexrays: + + expression values for each target + +Documentation on variable mcases_t.targets in module ida_hexrays: + + target block numbers + +Documentation on variable voff_t.off in module ida_hexrays: + + register number or stack offset + +Documentation on variable voff_t.type in module ida_hexrays: + + mop_r - register, mop_S - stack, mop_z - undefined + +Documentation on variable vivl_t.size in module ida_hexrays: + + Interval size in bytes. + +Documentation on variable chain_t.width in module ida_hexrays: + + size of the value in bytes + +Documentation on variable chain_t.varnum in module ida_hexrays: + + allocated variable index (-1 - not allocated yet) + +Documentation on variable chain_t.flags in module ida_hexrays: + + combination Chain properties bits + +Documentation on variable CHF_INITED in module ida_hexrays: + + is chain initialized? (valid only after lvar allocation) + +Documentation on variable CHF_REPLACED in module ida_hexrays: + + chain operands have been replaced? + +Documentation on variable CHF_OVER in module ida_hexrays: + + overlapped chain + +Documentation on variable CHF_FAKE in module ida_hexrays: + + fake chain created by widen_chains() + +Documentation on variable CHF_PASSTHRU in module ida_hexrays: + + pass-thru chain, must use the input variable to the block + +Documentation on variable CHF_TERM in module ida_hexrays: + + terminating chain; the variable does not survive across the block + +Documentation on variable chain_visitor_t.parent in module ida_hexrays: + + parent of the current chain + +Documentation on variable GCA_EMPTY in module ida_hexrays: + + include empty chains + +Documentation on variable GCA_SPEC in module ida_hexrays: + + include chains for special registers + +Documentation on variable GCA_ALLOC in module ida_hexrays: + + enumerate only allocated chains + +Documentation on variable GCA_NALLOC in module ida_hexrays: + + enumerate only non-allocated chains + +Documentation on variable GCA_OFIRST in module ida_hexrays: + + consider only chains of the first block + +Documentation on variable GCA_OLAST in module ida_hexrays: + + consider only chains of the last block + +Documentation on variable minsn_t.opcode in module ida_hexrays: + + instruction opcode + +Documentation on variable minsn_t.iprops in module ida_hexrays: + + combination of instruction property bits bits + +Documentation on variable minsn_t.next in module ida_hexrays: + + next insn in doubly linked list. check also nexti() + +Documentation on variable minsn_t.prev in module ida_hexrays: + + prev insn in doubly linked list. check also previ() + +Documentation on variable minsn_t.ea in module ida_hexrays: + + instruction address + +Documentation on variable minsn_t.l in module ida_hexrays: + + left operand + +Documentation on variable minsn_t.r in module ida_hexrays: + + right operand + +Documentation on variable minsn_t.d in module ida_hexrays: + + destination operand + +Documentation on variable IPROP_OPTIONAL in module ida_hexrays: + + optional instruction + +Documentation on variable IPROP_PERSIST in module ida_hexrays: + + persistent insn; they are not destroyed + +Documentation on variable IPROP_WILDMATCH in module ida_hexrays: + + match multiple insns + +Documentation on variable IPROP_CLNPOP in module ida_hexrays: + + the purpose of the instruction is to clean stack (e.g. "pop ecx" is often used + for that) + +Documentation on variable IPROP_FPINSN in module ida_hexrays: + + floating point insn + +Documentation on variable IPROP_FARCALL in module ida_hexrays: + + call of a far function using push cs/call sequence + +Documentation on variable IPROP_TAILCALL in module ida_hexrays: + + tail call + +Documentation on variable IPROP_SPLIT in module ida_hexrays: + + the instruction has been split: + +Documentation on variable IPROP_SPLIT1 in module ida_hexrays: + + into 1 byte + +Documentation on variable IPROP_SPLIT2 in module ida_hexrays: + + into 2 bytes + +Documentation on variable IPROP_SPLIT4 in module ida_hexrays: + + into 4 bytes + +Documentation on variable IPROP_SPLIT8 in module ida_hexrays: + + into 8 bytes + +Documentation on variable IPROP_COMBINED in module ida_hexrays: + + insn has been modified because of a partial reference + +Documentation on variable IPROP_EXTSTX in module ida_hexrays: + + this is m_ext propagated into m_stx + +Documentation on variable IPROP_IGNLOWSRC in module ida_hexrays: + + low part of the instruction source operand has been created artificially (this + bit is used only for 'and x, 80...') + +Documentation on variable IPROP_INV_JX in module ida_hexrays: + + inverted conditional jump + +Documentation on variable IPROP_WAS_NORET in module ida_hexrays: + + was noret icall + +Documentation on variable IPROP_MULTI_MOV in module ida_hexrays: + + bits that can be set by plugins: + + the minsn was generated as part of insn that moves multiple registers (example: + STM on ARM may transfer multiple registers) + +Documentation on variable IPROP_DONT_PROP in module ida_hexrays: + + may not propagate + +Documentation on variable IPROP_DONT_COMB in module ida_hexrays: + + may not combine this instruction with others + +Documentation on variable IPROP_MBARRIER in module ida_hexrays: + + this instruction acts as a memory barrier (instructions accessing memory may not + be reordered past it) + +Documentation on variable IPROP_UNMERGED in module ida_hexrays: + + 'goto' instruction was transformed info 'call' + +Documentation on variable OPTI_ADDREXPRS in module ida_hexrays: + + optimize all address expressions (&x+N; &x-&y) + +Documentation on variable OPTI_MINSTKREF in module ida_hexrays: + + may update minstkref + +Documentation on variable OPTI_COMBINSNS in module ida_hexrays: + + may combine insns (only for optimize_insn) + +Documentation on variable OPTI_NO_LDXOPT in module ida_hexrays: + + the function is called after the propagation attempt, we do not optimize + low/high(ldx) in this case + +Documentation on variable EQ_IGNSIZE in module ida_hexrays: + + ignore source operand sizes + +Documentation on variable EQ_IGNCODE in module ida_hexrays: + + ignore instruction opcodes + +Documentation on variable EQ_CMPDEST in module ida_hexrays: + + compare instruction destinations + +Documentation on variable EQ_OPTINSN in module ida_hexrays: + + optimize mop_d operands + +Documentation on variable BLT_NONE in module ida_hexrays: + + unknown block type + +Documentation on variable BLT_STOP in module ida_hexrays: + + stops execution regularly (must be the last block) + +Documentation on variable BLT_0WAY in module ida_hexrays: + + does not have successors (tail is a noret function) + +Documentation on variable BLT_1WAY in module ida_hexrays: + + passes execution to one block (regular or goto block) + +Documentation on variable BLT_2WAY in module ida_hexrays: + + passes execution to two blocks (conditional jump) + +Documentation on variable BLT_NWAY in module ida_hexrays: + + passes execution to many blocks (switch idiom) + +Documentation on variable BLT_XTRN in module ida_hexrays: + + external block (out of function address) + +Documentation on variable mblock_t.nextb in module ida_hexrays: + + next block in the doubly linked list + +Documentation on variable mblock_t.prevb in module ida_hexrays: + + previous block in the doubly linked list + +Documentation on variable mblock_t.flags in module ida_hexrays: + + combination of Basic block properties bits + +Documentation on variable mblock_t.start in module ida_hexrays: + + start address + +Documentation on variable mblock_t.end in module ida_hexrays: + + end address note: we cannot rely on start/end addresses very much because + instructions are propagated between blocks + +Documentation on variable mblock_t.head in module ida_hexrays: + + pointer to the first instruction of the block + +Documentation on variable mblock_t.tail in module ida_hexrays: + + pointer to the last instruction of the block + +Documentation on variable mblock_t.mba in module ida_hexrays: + + the parent micro block array + +Documentation on variable mblock_t.serial in module ida_hexrays: + + block number + +Documentation on variable mblock_t.type in module ida_hexrays: + + block type (BLT_NONE - not computed yet) + +Documentation on variable mblock_t.dead_at_start in module ida_hexrays: + + data that is dead at the block entry + +Documentation on variable mblock_t.mustbuse in module ida_hexrays: + + data that must be used by the block + +Documentation on variable mblock_t.maybuse in module ida_hexrays: + + data that may be used by the block + +Documentation on variable mblock_t.mustbdef in module ida_hexrays: + + data that must be defined by the block + +Documentation on variable mblock_t.maybdef in module ida_hexrays: + + data that may be defined by the block + +Documentation on variable mblock_t.dnu in module ida_hexrays: + + data that is defined but not used in the block + +Documentation on variable mblock_t.maxbsp in module ida_hexrays: + + maximal sp value in the block (0...stacksize) + +Documentation on variable mblock_t.minbstkref in module ida_hexrays: + + lowest stack location accessible with indirect addressing (offset from the stack + bottom) initially it is 0 (not computed) + +Documentation on variable mblock_t.minbargref in module ida_hexrays: + + the same for arguments + +Documentation on variable mblock_t.predset in module ida_hexrays: + + control flow graph: list of our predecessors use npred() and pred() to access it + +Documentation on variable mblock_t.succset in module ida_hexrays: + + control flow graph: list of our successors use nsucc() and succ() to access it + +Documentation on variable MBL_PRIV in module ida_hexrays: + + private block - no instructions except the specified are accepted (used in + patterns) + +Documentation on variable MBL_NONFAKE in module ida_hexrays: + + regular block + +Documentation on variable MBL_FAKE in module ida_hexrays: + + fake block + +Documentation on variable MBL_GOTO in module ida_hexrays: + + this block is a goto target + +Documentation on variable MBL_TCAL in module ida_hexrays: + + aritifical call block for tail calls + +Documentation on variable MBL_PUSH in module ida_hexrays: + + needs "convert push/pop instructions" + +Documentation on variable MBL_DMT64 in module ida_hexrays: + + needs "demote 64bits" + +Documentation on variable MBL_COMB in module ida_hexrays: + + needs "combine" pass + +Documentation on variable MBL_PROP in module ida_hexrays: + + needs 'propagation' pass + +Documentation on variable MBL_DEAD in module ida_hexrays: + + needs "eliminate deads" pass + +Documentation on variable MBL_LIST in module ida_hexrays: + + use/def lists are ready (not dirty) + +Documentation on variable MBL_INCONST in module ida_hexrays: + + inconsistent lists: we are building them + +Documentation on variable MBL_CALL in module ida_hexrays: + + call information has been built + +Documentation on variable MBL_BACKPROP in module ida_hexrays: + + performed backprop_cc + +Documentation on variable MBL_NORET in module ida_hexrays: + + dead end block: doesn't return execution control + +Documentation on variable MBL_DSLOT in module ida_hexrays: + + block for delay slot + +Documentation on variable MBL_VALRANGES in module ida_hexrays: + + should optimize using value ranges + +Documentation on variable MBL_KEEP in module ida_hexrays: + + do not remove even if unreachable + +Documentation on variable FD_BACKWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_FORWARD in module ida_hexrays: + + search direction + +Documentation on variable FD_USE in module ida_hexrays: + + look for use + +Documentation on variable FD_DEF in module ida_hexrays: + + look for definition + +Documentation on variable FD_DIRTY in module ida_hexrays: + + ignore possible implicit definitions by function calls and indirect memory + access + +Documentation on variable VR_AT_START in module ida_hexrays: + + get value ranges before the instruction or at the block start (if M is nullptr) + +Documentation on variable VR_AT_END in module ida_hexrays: + + get value ranges after the instruction or at the block end, just after the last + instruction (if M is nullptr) + +Documentation on variable VR_EXACT in module ida_hexrays: + + find exact match. if not set, the returned valrng size will be >= vivl.size + +Documentation on variable WARN_VARARG_REGS in module ida_hexrays: + + 0 cannot handle register arguments in vararg function, discarded them + +Documentation on variable WARN_ILL_PURGED in module ida_hexrays: + + 1 odd caller purged bytes d, correcting + +Documentation on variable WARN_ILL_FUNCTYPE in module ida_hexrays: + + 2 invalid function type has been ignored + +Documentation on variable WARN_VARARG_TCAL in module ida_hexrays: + + 3 cannot handle tail call to vararg + +Documentation on variable WARN_VARARG_NOSTK in module ida_hexrays: + + 4 call vararg without local stack + +Documentation on variable WARN_VARARG_MANY in module ida_hexrays: + + 5 too many varargs, some ignored + +Documentation on variable WARN_ADDR_OUTARGS in module ida_hexrays: + + 6 cannot handle address arithmetics in outgoing argument area of stack frame - + unused + +Documentation on variable WARN_DEP_UNK_CALLS in module ida_hexrays: + + 7 found interdependent unknown calls + +Documentation on variable WARN_ILL_ELLIPSIS in module ida_hexrays: + + 8 erroneously detected ellipsis type has been ignored + +Documentation on variable WARN_GUESSED_TYPE in module ida_hexrays: + + 9 using guessed type s; + +Documentation on variable WARN_EXP_LINVAR in module ida_hexrays: + + 10 failed to expand a linear variable + +Documentation on variable WARN_WIDEN_CHAINS in module ida_hexrays: + + 11 failed to widen chains + +Documentation on variable WARN_BAD_PURGED in module ida_hexrays: + + 12 inconsistent function type and number of purged bytes + +Documentation on variable WARN_CBUILD_LOOPS in module ida_hexrays: + + 13 too many cbuild loops + +Documentation on variable WARN_NO_SAVE_REST in module ida_hexrays: + + 14 could not find valid save-restore pair for s + +Documentation on variable WARN_ODD_INPUT_REG in module ida_hexrays: + + 15 odd input register s + +Documentation on variable WARN_ODD_ADDR_USE in module ida_hexrays: + + 16 odd use of a variable address + +Documentation on variable WARN_MUST_RET_FP in module ida_hexrays: + + 17 function return type is incorrect (must be floating point) + +Documentation on variable WARN_ILL_FPU_STACK in module ida_hexrays: + + 18 inconsistent fpu stack + +Documentation on variable WARN_SELFREF_PROP in module ida_hexrays: + + 19 self-referencing variable has been detected + +Documentation on variable WARN_WOULD_OVERLAP in module ida_hexrays: + + 20 variables would overlap: s + +Documentation on variable WARN_ARRAY_INARG in module ida_hexrays: + + 21 array has been used for an input argument + +Documentation on variable WARN_MAX_ARGS in module ida_hexrays: + + 22 too many input arguments, some ignored + +Documentation on variable WARN_BAD_FIELD_TYPE in module ida_hexrays: + + 23 incorrect structure member type for s::s, ignored + +Documentation on variable WARN_WRITE_CONST in module ida_hexrays: + + 24 write access to const memory at a has been detected + +Documentation on variable WARN_BAD_RETVAR in module ida_hexrays: + + 25 wrong return variable + +Documentation on variable WARN_FRAG_LVAR in module ida_hexrays: + + 26 fragmented variable at s may be wrong + +Documentation on variable WARN_HUGE_STKOFF in module ida_hexrays: + + 27 exceedingly huge offset into the stack frame + +Documentation on variable WARN_UNINITED_REG in module ida_hexrays: + + 28 reference to an uninitialized register has been removed: s + +Documentation on variable WARN_FIXED_MACRO in module ida_hexrays: + + 29 fixed broken macro-insn + +Documentation on variable WARN_WRONG_VA_OFF in module ida_hexrays: + + 30 wrong offset of va_list variable + +Documentation on variable WARN_CR_NOFIELD in module ida_hexrays: + + 31 CONTAINING_RECORD: no field 's' in struct 's' at d + +Documentation on variable WARN_CR_BADOFF in module ida_hexrays: + + 32 CONTAINING_RECORD: too small offset d for struct 's' + +Documentation on variable WARN_BAD_STROFF in module ida_hexrays: + + 33 user specified stroff has not been processed: s + +Documentation on variable WARN_BAD_VARSIZE in module ida_hexrays: + + 34 inconsistent variable size for 's' + +Documentation on variable WARN_UNSUPP_REG in module ida_hexrays: + + 35 unsupported processor register 's' + +Documentation on variable WARN_UNALIGNED_ARG in module ida_hexrays: + + 36 unaligned function argument 's' + +Documentation on variable WARN_BAD_STD_TYPE in module ida_hexrays: + + 37 corrupted or unexisting local type 's' + +Documentation on variable WARN_BAD_CALL_SP in module ida_hexrays: + + 38 bad sp value at call + +Documentation on variable WARN_MISSED_SWITCH in module ida_hexrays: + + 39 wrong markup of switch jump, skipped it + +Documentation on variable WARN_BAD_SP in module ida_hexrays: + + 40 positive sp value a has been found + +Documentation on variable WARN_BAD_STKPNT in module ida_hexrays: + + 41 wrong sp change point + +Documentation on variable WARN_UNDEF_LVAR in module ida_hexrays: + + 42 variable 's' is possibly undefined + +Documentation on variable WARN_JUMPOUT in module ida_hexrays: + + 43 control flows out of bounds + +Documentation on variable WARN_BAD_VALRNG in module ida_hexrays: + + 44 values range analysis failed + +Documentation on variable WARN_BAD_SHADOW in module ida_hexrays: + + 45 ignored the value written to the shadow area of the succeeding call + +Documentation on variable WARN_OPT_VALRNG in module ida_hexrays: + + 46 conditional instruction was optimized away because s + +Documentation on variable WARN_RET_LOCREF in module ida_hexrays: + + 47 returning address of temporary local variable 's' + +Documentation on variable WARN_BAD_MAPDST in module ida_hexrays: + + 48 too short map destination 's' for variable 's' + +Documentation on variable WARN_BAD_INSN in module ida_hexrays: + + 49 bad instruction + +Documentation on variable WARN_ODD_ABI in module ida_hexrays: + + 50 encountered odd instruction for the current ABI + +Documentation on variable WARN_UNBALANCED_STACK in module ida_hexrays: + + 51 unbalanced stack, ignored a potential tail call + +Documentation on variable WARN_OPT_VALRNG2 in module ida_hexrays: + + 52 mask 0xX is shortened because s <= 0xX" + +Documentation on variable WARN_OPT_VALRNG3 in module ida_hexrays: + + 53 masking with 0XX was optimized away because s <= 0xX + +Documentation on variable WARN_OPT_USELESS_JCND in module ida_hexrays: + + 54 simplified comparisons for 's': s became s + +Documentation on variable WARN_MAX in module ida_hexrays: + + may be used in notes as a placeholder when the warning id is not available + +Documentation on variable hexwarn_t.ea in module ida_hexrays: + + Address where the warning occurred. + +Documentation on variable hexwarn_t.id in module ida_hexrays: + + Warning id. + +Documentation on variable hexwarn_t.text in module ida_hexrays: + + Fully formatted text of the warning. + +Documentation on variable MMAT_ZERO in module ida_hexrays: + + microcode does not exist + +Documentation on variable MMAT_GENERATED in module ida_hexrays: + + generated microcode + +Documentation on variable MMAT_PREOPTIMIZED in module ida_hexrays: + + preoptimized pass is complete + +Documentation on variable MMAT_LOCOPT in module ida_hexrays: + + local optimization of each basic block is complete. control flow graph is ready + too. + +Documentation on variable MMAT_CALLS in module ida_hexrays: + + detected call arguments + +Documentation on variable MMAT_GLBOPT1 in module ida_hexrays: + + performed the first pass of global optimization + +Documentation on variable MMAT_GLBOPT2 in module ida_hexrays: + + most global optimization passes are done + +Documentation on variable MMAT_GLBOPT3 in module ida_hexrays: + + completed all global optimization. microcode is fixed now. + +Documentation on variable MMAT_LVARS in module ida_hexrays: + + allocated local variables + +Documentation on variable MMIDX_GLBLOW in module ida_hexrays: + + global memory: low part + +Documentation on variable MMIDX_GLBHIGH in module ida_hexrays: + + global memory: high part + +Documentation on variable mba_ranges_t.pfn in module ida_hexrays: + + function to decompile. if not null, then function mode. + +Documentation on variable mba_ranges_t.ranges in module ida_hexrays: + + snippet mode: ranges to decompile. function mode: list of outlined ranges + +Documentation on variable mba_t.qty in module ida_hexrays: + + number of basic blocks + +Documentation on variable mba_t.npurged in module ida_hexrays: + + -1 - unknown + +Documentation on variable mba_t.cc in module ida_hexrays: + + calling convention + +Documentation on variable mba_t.tmpstk_size in module ida_hexrays: + + size of the temporary stack part (which dynamically changes with push/pops) + +Documentation on variable mba_t.frsize in module ida_hexrays: + + size of local stkvars range in the stack frame + +Documentation on variable mba_t.frregs in module ida_hexrays: + + size of saved registers range in the stack frame + +Documentation on variable mba_t.fpd in module ida_hexrays: + + frame pointer delta + +Documentation on variable mba_t.pfn_flags in module ida_hexrays: + + copy of func_t::flags + +Documentation on variable mba_t.retsize in module ida_hexrays: + + size of return address in the stack frame + +Documentation on variable mba_t.shadow_args in module ida_hexrays: + + size of shadow argument area + +Documentation on variable mba_t.fullsize in module ida_hexrays: + + Full stack size including incoming args. + +Documentation on variable mba_t.stacksize in module ida_hexrays: + + The maximal size of the function stack including bytes allocated for outgoing + call arguments (up to retaddr) + +Documentation on variable mba_t.inargoff in module ida_hexrays: + + offset of the first stack argument; after fix_scattered_movs() INARGOFF may be + less than STACKSIZE + +Documentation on variable mba_t.minstkref in module ida_hexrays: + + The lowest stack location whose address was taken. + +Documentation on variable mba_t.minstkref_ea in module ida_hexrays: + + address with lowest minstkref (for debugging) + +Documentation on variable mba_t.minargref in module ida_hexrays: + + The lowest stack argument location whose address was taken This location and + locations above it can be aliased It controls locations >= inargoff-shadow_args + +Documentation on variable mba_t.spd_adjust in module ida_hexrays: + + If sp>0, the max positive sp value. + +Documentation on variable mba_t.aliased_vars in module ida_hexrays: + + Aliased stkvar locations. + +Documentation on variable mba_t.aliased_args in module ida_hexrays: + + Aliased stkarg locations. + +Documentation on variable mba_t.gotoff_stkvars in module ida_hexrays: + + stkvars that hold .got offsets. considered to be unaliasable + +Documentation on variable mba_t.aliased_memory in module ida_hexrays: + + aliased_memory+restricted_memory=ALLMEM + +Documentation on variable mba_t.nodel_memory in module ida_hexrays: + + global dead elimination may not delete references to this area + +Documentation on variable mba_t.consumed_argregs in module ida_hexrays: + + registers converted into stack arguments, should not be used as arguments + +Documentation on variable mba_t.maturity in module ida_hexrays: + + current maturity level + +Documentation on variable mba_t.reqmat in module ida_hexrays: + + required maturity level + +Documentation on variable mba_t.final_type in module ida_hexrays: + + is the function type final? (specified by the user) + +Documentation on variable mba_t.idb_type in module ida_hexrays: + + function type as retrieved from the database + +Documentation on variable mba_t.idb_spoiled in module ida_hexrays: + + MBA_SPLINFO && final_type: info in ida format. + +Documentation on variable mba_t.spoiled_list in module ida_hexrays: + + MBA_SPLINFO && !final_type: info in vd format. + +Documentation on variable mba_t.fti_flags in module ida_hexrays: + + FTI_... constants for the current function. + +Documentation on variable mba_t.deprecated_idb_node in module ida_hexrays: + + netnode with additional decompiler info. deprecated, do not use it anymore. it + may get stale after undo. + +Documentation on variable mba_t.label in module ida_hexrays: + + name of the function or pattern (colored) + +Documentation on variable mba_t.vars in module ida_hexrays: + + local variables + +Documentation on variable mba_t.argidx in module ida_hexrays: + + input arguments (indexes into 'vars') + +Documentation on variable mba_t.retvaridx in module ida_hexrays: + + index of variable holding the return value -1 means none + +Documentation on variable mba_t.error_ea in module ida_hexrays: + + during microcode generation holds ins.ea + +Documentation on variable mba_t.blocks in module ida_hexrays: + + double linked list of blocks + +Documentation on variable mba_t.natural in module ida_hexrays: + + natural order of blocks + +Documentation on variable mba_t.std_ivls in module ida_hexrays: + + we treat memory as consisting of 6 parts see memreg_index_t + +Documentation on variable MBA_PRCDEFS in module ida_hexrays: + + use precise defeas for chain-allocated lvars + +Documentation on variable MBA_NOFUNC in module ida_hexrays: + + function is not present, addresses might be wrong + +Documentation on variable MBA_PATTERN in module ida_hexrays: + + microcode pattern, callinfo is present + +Documentation on variable MBA_LOADED in module ida_hexrays: + + loaded gdl, no instructions (debugging) + +Documentation on variable MBA_RETFP in module ida_hexrays: + + function returns floating point value + +Documentation on variable MBA_SPLINFO in module ida_hexrays: + + (final_type ? idb_spoiled : spoiled_regs) is valid + +Documentation on variable MBA_PASSREGS in module ida_hexrays: + + has mcallinfo_t::pass_regs + +Documentation on variable MBA_THUNK in module ida_hexrays: + + thunk function + +Documentation on variable MBA_CMNSTK in module ida_hexrays: + + stkvars+stkargs should be considered as one area + +Documentation on variable MBA_PREOPT in module ida_hexrays: + + preoptimization stage complete + +Documentation on variable MBA_CMBBLK in module ida_hexrays: + + request to combine blocks + +Documentation on variable MBA_ASRTOK in module ida_hexrays: + + assertions have been generated + +Documentation on variable MBA_CALLS in module ida_hexrays: + + callinfo has been built + +Documentation on variable MBA_ASRPROP in module ida_hexrays: + + assertion have been propagated + +Documentation on variable MBA_SAVRST in module ida_hexrays: + + save-restore analysis has been performed + +Documentation on variable MBA_RETREF in module ida_hexrays: + + return type has been refined + +Documentation on variable MBA_GLBOPT in module ida_hexrays: + + microcode has been optimized globally + +Documentation on variable MBA_LVARS0 in module ida_hexrays: + + lvar pre-allocation has been performed + +Documentation on variable MBA_LVARS1 in module ida_hexrays: + + lvar real allocation has been performed + +Documentation on variable MBA_DELPAIRS in module ida_hexrays: + + pairs have been deleted once + +Documentation on variable MBA_CHVARS in module ida_hexrays: + + can verify chain varnums + +Documentation on variable MBA_SHORT in module ida_hexrays: + + use short display + +Documentation on variable MBA_COLGDL in module ida_hexrays: + + display graph after each reduction + +Documentation on variable MBA_INSGDL in module ida_hexrays: + + display instruction in graphs + +Documentation on variable MBA_NICE in module ida_hexrays: + + apply transformations to c code + +Documentation on variable MBA_REFINE in module ida_hexrays: + + may refine return value size + +Documentation on variable MBA_WINGR32 in module ida_hexrays: + + use wingraph32 + +Documentation on variable MBA_NUMADDR in module ida_hexrays: + + display definition addresses for numbers + +Documentation on variable MBA_VALNUM in module ida_hexrays: + + display value numbers + +Documentation on variable MBA2_LVARNAMES_OK in module ida_hexrays: + + may verify lvar_names? + +Documentation on variable MBA2_LVARS_RENAMED in module ida_hexrays: + + accept empty names now? + +Documentation on variable MBA2_OVER_CHAINS in module ida_hexrays: + + has overlapped chains? + +Documentation on variable MBA2_VALRNG_DONE in module ida_hexrays: + + calculated valranges? + +Documentation on variable MBA2_IS_CTR in module ida_hexrays: + + is constructor? + +Documentation on variable MBA2_IS_DTR in module ida_hexrays: + + is destructor? + +Documentation on variable MBA2_ARGIDX_OK in module ida_hexrays: + + may verify input argument list? + +Documentation on variable MBA2_NO_DUP_CALLS in module ida_hexrays: + + forbid multiple calls with the same ea + +Documentation on variable MBA2_NO_DUP_LVARS in module ida_hexrays: + + forbid multiple lvars with the same ea + +Documentation on variable MBA2_UNDEF_RETVAR in module ida_hexrays: + + return value is undefined + +Documentation on variable MBA2_ARGIDX_SORTED in module ida_hexrays: + + args finally sorted according to ABI (e.g. reverse stkarg order in Borland) + +Documentation on variable MBA2_CODE16_BIT in module ida_hexrays: + + the code16 bit removed + +Documentation on variable MBA2_STACK_RETVAL in module ida_hexrays: + + the return value is on the stack + +Documentation on variable MBA2_HAS_OUTLINES in module ida_hexrays: + + calls to outlined code have been inlined + +Documentation on variable MBA2_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable MBA2_PROP_COMPLEX in module ida_hexrays: + + allow propagation of more complex variable definitions + +Documentation on variable MBA2_DONT_VERIFY in module ida_hexrays: + + Do not verify microcode. This flag is recomended to be set only when debugging + decompiler plugins + +Documentation on variable NALT_VD in module ida_hexrays: + + this index is not used by ida + +Documentation on variable LOCOPT_ALL in module ida_hexrays: + + redo optimization for all blocks. if this bit is not set, only dirty blocks will + be optimized + +Documentation on variable LOCOPT_REFINE in module ida_hexrays: + + refine return type, ok to fail + +Documentation on variable LOCOPT_REFINE2 in module ida_hexrays: + + refine return type, try harder + +Documentation on variable ACFL_LOCOPT in module ida_hexrays: + + perform local propagation (requires ACFL_BLKOPT) + +Documentation on variable ACFL_BLKOPT in module ida_hexrays: + + perform interblock transformations + +Documentation on variable ACFL_GLBPROP in module ida_hexrays: + + perform global propagation + +Documentation on variable ACFL_GLBDEL in module ida_hexrays: + + perform dead code eliminition + +Documentation on variable ACFL_GUESS in module ida_hexrays: + + may guess calling conventions + +Documentation on variable CPBLK_FAST in module ida_hexrays: + + do not update minbstkref and minbargref + +Documentation on variable CPBLK_MINREF in module ida_hexrays: + + update minbstkref and minbargref + +Documentation on variable CPBLK_OPTJMP in module ida_hexrays: + + del the jump insn at the end of the block if it becomes useless + +Documentation on variable GC_REGS_AND_STKVARS in module ida_hexrays: + + registers and stkvars (restricted memory only) + +Documentation on variable GC_ASR in module ida_hexrays: + + all the above and assertions + +Documentation on variable GC_XDSU in module ida_hexrays: + + only registers calculated with FULL_XDSU + +Documentation on variable GC_END in module ida_hexrays: + + number of chain types + +Documentation on variable GC_DIRTY_ALL in module ida_hexrays: + + bitmask to represent all chains + +Documentation on variable OPF_REUSE in module ida_hexrays: + + reuse existing window + +Documentation on variable OPF_NEW_WINDOW in module ida_hexrays: + + open new window + +Documentation on variable OPF_REUSE_ACTIVE in module ida_hexrays: + + reuse existing window, only if the currently active widget is a pseudocode view + +Documentation on variable OPF_NO_WAIT in module ida_hexrays: + + do not display waitbox if decompilation happens + +Documentation on variable VDRUN_NEWFILE in module ida_hexrays: + + Create a new file or overwrite existing file. + +Documentation on variable VDRUN_APPEND in module ida_hexrays: + + Create a new file or append to existing file. + +Documentation on variable VDRUN_ONLYNEW in module ida_hexrays: + + Fail if output file already exists. + +Documentation on variable VDRUN_SILENT in module ida_hexrays: + + Silent decompilation. + +Documentation on variable VDRUN_SENDIDB in module ida_hexrays: + + Send problematic databases to hex-rays.com. + +Documentation on variable VDRUN_MAYSTOP in module ida_hexrays: + + The user can cancel decompilation. + +Documentation on variable VDRUN_CMDLINE in module ida_hexrays: + + Called from ida's command line. + +Documentation on variable VDRUN_STATS in module ida_hexrays: + + Print statistics into vd_stats.txt. + +Documentation on variable VDRUN_LUMINA in module ida_hexrays: + + Use lumina server. + +Documentation on variable hexrays_failure_t.code in module ida_hexrays: + + Microcode error codes + +Documentation on variable hexrays_failure_t.errea in module ida_hexrays: + + associated address + +Documentation on variable hexrays_failure_t.str in module ida_hexrays: + + string information + +Documentation on variable gco_info_t.name in module ida_hexrays: + + register or stkvar name + +Documentation on variable gco_info_t.stkoff in module ida_hexrays: + + if stkvar, stack offset + +Documentation on variable gco_info_t.regnum in module ida_hexrays: + + if register, the register id + +Documentation on variable gco_info_t.size in module ida_hexrays: + + operand size + +Documentation on variable GCO_STK in module ida_hexrays: + + a stack variable + +Documentation on variable GCO_REG in module ida_hexrays: + + is register? otherwise a stack variable + +Documentation on variable GCO_USE in module ida_hexrays: + + is source operand? + +Documentation on variable GCO_DEF in module ida_hexrays: + + is destination operand? + +Documentation on variable cot_comma in module ida_hexrays: + + x, y + +Documentation on variable cot_asg in module ida_hexrays: + + x = y + +Documentation on variable cot_asgbor in module ida_hexrays: + + x |= y + +Documentation on variable cot_asgxor in module ida_hexrays: + + x ^= y + +Documentation on variable cot_asgband in module ida_hexrays: + + x &= y + +Documentation on variable cot_asgadd in module ida_hexrays: + + x += y + +Documentation on variable cot_asgsub in module ida_hexrays: + + x -= y + +Documentation on variable cot_asgmul in module ida_hexrays: + + x *= y + +Documentation on variable cot_asgsshr in module ida_hexrays: + + x >>= y signed + +Documentation on variable cot_asgushr in module ida_hexrays: + + x >>= y unsigned + +Documentation on variable cot_asgshl in module ida_hexrays: + + x <<= y + +Documentation on variable cot_asgsdiv in module ida_hexrays: + + x /= y signed + +Documentation on variable cot_asgudiv in module ida_hexrays: + + x /= y unsigned + +Documentation on variable cot_asgsmod in module ida_hexrays: + + x %= y signed + +Documentation on variable cot_asgumod in module ida_hexrays: + + x %= y unsigned + +Documentation on variable cot_tern in module ida_hexrays: + + x ? y : z + +Documentation on variable cot_lor in module ida_hexrays: + + x || y + +Documentation on variable cot_land in module ida_hexrays: + + x && y + +Documentation on variable cot_bor in module ida_hexrays: + + x | y + +Documentation on variable cot_xor in module ida_hexrays: + + x ^ y + +Documentation on variable cot_band in module ida_hexrays: + + x & y + +Documentation on variable cot_eq in module ida_hexrays: + + x == y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_ne in module ida_hexrays: + + x != y int or fpu (see EXFL_FPOP) + +Documentation on variable cot_sge in module ida_hexrays: + + x >= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_uge in module ida_hexrays: + + x >= y unsigned + +Documentation on variable cot_sle in module ida_hexrays: + + x <= y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ule in module ida_hexrays: + + x <= y unsigned + +Documentation on variable cot_sgt in module ida_hexrays: + + x > y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ugt in module ida_hexrays: + + x > y unsigned + +Documentation on variable cot_slt in module ida_hexrays: + + x < y signed or fpu (see EXFL_FPOP) + +Documentation on variable cot_ult in module ida_hexrays: + + x < y unsigned + +Documentation on variable cot_sshr in module ida_hexrays: + + x >> y signed + +Documentation on variable cot_ushr in module ida_hexrays: + + x >> y unsigned + +Documentation on variable cot_shl in module ida_hexrays: + + x << y + +Documentation on variable cot_add in module ida_hexrays: + + x + y + +Documentation on variable cot_sub in module ida_hexrays: + + x - y + +Documentation on variable cot_mul in module ida_hexrays: + + x * y + +Documentation on variable cot_sdiv in module ida_hexrays: + + x / y signed + +Documentation on variable cot_udiv in module ida_hexrays: + + x / y unsigned + +Documentation on variable cot_smod in module ida_hexrays: + + x % y signed + +Documentation on variable cot_umod in module ida_hexrays: + + x % y unsigned + +Documentation on variable cot_fadd in module ida_hexrays: + + x + y fp + +Documentation on variable cot_fsub in module ida_hexrays: + + x - y fp + +Documentation on variable cot_fmul in module ida_hexrays: + + x * y fp + +Documentation on variable cot_fdiv in module ida_hexrays: + + x / y fp + +Documentation on variable cot_fneg in module ida_hexrays: + + -x fp + +Documentation on variable cot_neg in module ida_hexrays: + + -x + +Documentation on variable cot_cast in module ida_hexrays: + + (type)x + +Documentation on variable cot_lnot in module ida_hexrays: + + !x + +Documentation on variable cot_bnot in module ida_hexrays: + + ~x + +Documentation on variable cot_ptr in module ida_hexrays: + + *x, access size in 'ptrsize' + +Documentation on variable cot_ref in module ida_hexrays: + + &x + +Documentation on variable cot_postinc in module ida_hexrays: + + x++ + +Documentation on variable cot_postdec in module ida_hexrays: + + x- + +Documentation on variable cot_preinc in module ida_hexrays: + + ++x + +Documentation on variable cot_predec in module ida_hexrays: + + -x + +Documentation on variable cot_call in module ida_hexrays: + + x(...) + +Documentation on variable cot_idx in module ida_hexrays: + + x[y] + +Documentation on variable cot_memref in module ida_hexrays: + + x.m + +Documentation on variable cot_memptr in module ida_hexrays: + + x->m, access size in 'ptrsize' + +Documentation on variable cot_num in module ida_hexrays: + + n + +Documentation on variable cot_fnum in module ida_hexrays: + + fpc + +Documentation on variable cot_str in module ida_hexrays: + + string constant (user representation) + +Documentation on variable cot_obj in module ida_hexrays: + + obj_ea + +Documentation on variable cot_var in module ida_hexrays: + + v + +Documentation on variable cot_insn in module ida_hexrays: + + instruction in expression, internal representation only + +Documentation on variable cot_sizeof in module ida_hexrays: + + sizeof(x) + +Documentation on variable cot_helper in module ida_hexrays: + + arbitrary name + +Documentation on variable cot_type in module ida_hexrays: + + arbitrary type + +Documentation on variable cit_empty in module ida_hexrays: + + instruction types start here + +Documentation on variable cit_block in module ida_hexrays: + + block-statement: { ... } + +Documentation on variable cit_expr in module ida_hexrays: + + expression-statement: expr; + +Documentation on variable cit_if in module ida_hexrays: + + if-statement + +Documentation on variable cit_for in module ida_hexrays: + + for-statement + +Documentation on variable cit_while in module ida_hexrays: + + while-statement + +Documentation on variable cit_do in module ida_hexrays: + + do-statement + +Documentation on variable cit_switch in module ida_hexrays: + + switch-statement + +Documentation on variable cit_break in module ida_hexrays: + + break-statement + +Documentation on variable cit_continue in module ida_hexrays: + + continue-statement + +Documentation on variable cit_return in module ida_hexrays: + + return-statement + +Documentation on variable cit_goto in module ida_hexrays: + + goto-statement + +Documentation on variable cit_asm in module ida_hexrays: + + asm-statement + +Documentation on variable cnumber_t._value in module ida_hexrays: + + its value + +Documentation on variable cnumber_t.nf in module ida_hexrays: + + how to represent it + +Documentation on variable var_ref_t.mba in module ida_hexrays: + + pointer to the underlying micro array + +Documentation on variable var_ref_t.idx in module ida_hexrays: + + index into lvars_t + +Documentation on variable ctree_visitor_t.cv_flags in module ida_hexrays: + + Ctree visitor property bits + +Documentation on variable ctree_visitor_t.parents in module ida_hexrays: + + Vector of parents of the current item. + +Documentation on variable CV_FAST in module ida_hexrays: + + do not maintain parent information + +Documentation on variable CV_PRUNE in module ida_hexrays: + + this bit is set by visit...() to prune the walk + +Documentation on variable CV_PARENTS in module ida_hexrays: + + maintain parent information + +Documentation on variable CV_POST in module ida_hexrays: + + call the leave...() functions + +Documentation on variable CV_RESTART in module ida_hexrays: + + restart enumeration at the top expr (apply_to_exprs) + +Documentation on variable CV_INSNS in module ida_hexrays: + + visit only statements, prune all expressions do not use before the final ctree + maturity because expressions may contain statements at intermediate stages (see + cot_insn). Otherwise you risk missing statements embedded into expressions. + +Documentation on variable cfunc_parentee_t.func in module ida_hexrays: + + Pointer to current function. + +Documentation on variable CMAT_ZERO in module ida_hexrays: + + does not exist + +Documentation on variable CMAT_BUILT in module ida_hexrays: + + just generated + +Documentation on variable CMAT_TRANS1 in module ida_hexrays: + + applied first wave of transformations + +Documentation on variable CMAT_NICE in module ida_hexrays: + + nicefied expressions + +Documentation on variable CMAT_TRANS2 in module ida_hexrays: + + applied second wave of transformations + +Documentation on variable CMAT_CPA in module ida_hexrays: + + corrected pointer arithmetic + +Documentation on variable CMAT_TRANS3 in module ida_hexrays: + + applied third wave of transformations + +Documentation on variable CMAT_CASTED in module ida_hexrays: + + added necessary casts + +Documentation on variable CMAT_FINAL in module ida_hexrays: + + ready-to-use + +Documentation on variable ITP_EMPTY in module ida_hexrays: + + nothing + +Documentation on variable ITP_ARG1 in module ida_hexrays: + + , (64 entries are reserved for 64 call arguments) + +Documentation on variable ITP_ASM in module ida_hexrays: + + __asm-line + +Documentation on variable ITP_ELSE in module ida_hexrays: + + else-line + +Documentation on variable ITP_DO in module ida_hexrays: + + do-line + +Documentation on variable ITP_SEMI in module ida_hexrays: + + semicolon + +Documentation on variable ITP_CURLY1 in module ida_hexrays: + + { + +Documentation on variable ITP_CURLY2 in module ida_hexrays: + + } + +Documentation on variable ITP_BRACE2 in module ida_hexrays: + + ) + +Documentation on variable ITP_COLON in module ida_hexrays: + + : (label) + +Documentation on variable ITP_BLOCK1 in module ida_hexrays: + + opening block comment. this comment is printed before the item (other comments + are indented and printed after the item) + +Documentation on variable ITP_BLOCK2 in module ida_hexrays: + + closing block comment. + +Documentation on variable ITP_CASE in module ida_hexrays: + + bit for switch cases + +Documentation on variable ITP_SIGN in module ida_hexrays: + + if this bit is set too, then we have a negative case value + +Documentation on variable RETRIEVE_ONCE in module ida_hexrays: + + Retrieve comment if it has not been used yet. + +Documentation on variable RETRIEVE_ALWAYS in module ida_hexrays: + + Retrieve comment even if it has been used. + +Documentation on variable citem_cmt_t.used in module ida_hexrays: + + the comment has been retrieved? + +Documentation on variable citem_locator_t.ea in module ida_hexrays: + + citem address + +Documentation on variable citem_locator_t.op in module ida_hexrays: + + citem operation + +Documentation on variable citem_t.ea in module ida_hexrays: + + address that corresponds to the item. may be BADADDR + +Documentation on variable citem_t.label_num in module ida_hexrays: + + label number. -1 means no label. items of the expression types (cot_...) should + not have labels at the final maturity level, but at the intermediate levels any + ctree item may have a label. Labels must be unique. Usually they correspond to + the basic block numbers. + +Documentation on variable citem_t.index in module ida_hexrays: + + an index in cfunc_t::treeitems. meaningful only after print_func() + +Documentation on variable citem_t.op in module ida_hexrays: + + item type + +Documentation on variable cexpr_t.type in module ida_hexrays: + + expression type. must be carefully maintained + +Documentation on variable cexpr_t.exflags in module ida_hexrays: + + Expression attributes + +Documentation on variable cexpr_t.v in module ida_hexrays: + + used for cot_var + +Documentation on variable cexpr_t.n in module ida_hexrays: + + used for cot_num + +Documentation on variable cexpr_t.fpc in module ida_hexrays: + + used for cot_fnum + +Documentation on variable cexpr_t.x in module ida_hexrays: + + the first operand of the expression + +Documentation on variable cexpr_t.y in module ida_hexrays: + + the second operand of the expression + +Documentation on variable cexpr_t.z in module ida_hexrays: + + the third operand of the expression + +Documentation on variable cexpr_t.a in module ida_hexrays: + + argument list (used for cot_call) + +Documentation on variable cexpr_t.insn in module ida_hexrays: + + an embedded statement, they are prohibited at the final maturity stage + (CMAT_FINAL) + +Documentation on variable cexpr_t.m in module ida_hexrays: + + member offset (used for cot_memptr, cot_memref) for unions, the member number + +Documentation on variable cexpr_t.ptrsize in module ida_hexrays: + + memory access size (used for cot_ptr, cot_memptr) + +Documentation on variable cexpr_t.obj_ea in module ida_hexrays: + + used for cot_obj + +Documentation on variable cexpr_t.refwidth in module ida_hexrays: + + how many bytes are accessed? (-1: none) + +Documentation on variable cexpr_t.helper in module ida_hexrays: + + helper name (used for cot_helper) + +Documentation on variable cexpr_t.string in module ida_hexrays: + + utf8 string constant, user representation (used for cot_str) + +Documentation on variable EXFL_CPADONE in module ida_hexrays: + + pointer arithmetic correction done + +Documentation on variable EXFL_LVALUE in module ida_hexrays: + + expression is lvalue even if it doesn't look like it + +Documentation on variable EXFL_FPOP in module ida_hexrays: + + floating point operation + +Documentation on variable EXFL_ALONE in module ida_hexrays: + + standalone helper + +Documentation on variable EXFL_CSTR in module ida_hexrays: + + string literal + +Documentation on variable EXFL_PARTIAL in module ida_hexrays: + + type of the expression is considered partial + +Documentation on variable EXFL_UNDEF in module ida_hexrays: + + expression uses undefined value + +Documentation on variable EXFL_JUMPOUT in module ida_hexrays: + + jump out-of-function + +Documentation on variable EXFL_VFTABLE in module ida_hexrays: + + is ptr to vftable (used for cot_memptr, cot_memref) + +Documentation on variable EXFL_ALL in module ida_hexrays: + + all currently defined bits + +Documentation on variable ceinsn_t.expr in module ida_hexrays: + + Expression of the statement. + +Documentation on variable CALC_CURLY_BRACES in module ida_hexrays: + + print curly braces if necessary + +Documentation on variable NO_CURLY_BRACES in module ida_hexrays: + + don't print curly braces + +Documentation on variable USE_CURLY_BRACES in module ida_hexrays: + + print curly braces without any checks + +Documentation on variable cif_t.ithen in module ida_hexrays: + + Then-branch of the if-statement. + +Documentation on variable cif_t.ielse in module ida_hexrays: + + Else-branch of the if-statement. May be nullptr. + +Documentation on variable cfor_t.init in module ida_hexrays: + + Initialization expression. + +Documentation on variable cfor_t.step in module ida_hexrays: + + Step expression. + +Documentation on variable cgoto_t.label_num in module ida_hexrays: + + Target label number. + +Documentation on variable cinsn_t.cblock in module ida_hexrays: + + details of block-statement + +Documentation on variable cinsn_t.cexpr in module ida_hexrays: + + details of expression-statement + +Documentation on variable cinsn_t.cif in module ida_hexrays: + + details of if-statement + +Documentation on variable cinsn_t.cfor in module ida_hexrays: + + details of for-statement + +Documentation on variable cinsn_t.cwhile in module ida_hexrays: + + details of while-statement + +Documentation on variable cinsn_t.cdo in module ida_hexrays: + + details of do-statement + +Documentation on variable cinsn_t.cswitch in module ida_hexrays: + + details of switch-statement + +Documentation on variable cinsn_t.creturn in module ida_hexrays: + + details of return-statement + +Documentation on variable cinsn_t.cgoto in module ida_hexrays: + + details of goto-statement + +Documentation on variable cinsn_t.casm in module ida_hexrays: + + details of asm-statement + +Documentation on variable carg_t.is_vararg in module ida_hexrays: + + is a vararg (matches ...) + +Documentation on variable carg_t.formal_type in module ida_hexrays: + + formal parameter type (if known) + +Documentation on variable carglist_t.functype in module ida_hexrays: + + function object type + +Documentation on variable carglist_t.flags in module ida_hexrays: + + call flags + +Documentation on variable CFL_FINAL in module ida_hexrays: + + call type is final, should not be changed + +Documentation on variable CFL_HELPER in module ida_hexrays: + + created from a decompiler helper function + +Documentation on variable CFL_NORET in module ida_hexrays: + + call does not return + +Documentation on variable ccase_t.values in module ida_hexrays: + + List of case values. if empty, then 'default' case + +Documentation on variable cswitch_t.mvnf in module ida_hexrays: + + Maximal switch value and number format. + +Documentation on variable cswitch_t.cases in module ida_hexrays: + + Switch cases: values and instructions. + +Documentation on variable ANCHOR_CITEM in module ida_hexrays: + + c-tree item + +Documentation on variable ANCHOR_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable ANCHOR_ITP in module ida_hexrays: + + item type preciser + +Documentation on variable ANCHOR_BLKCMT in module ida_hexrays: + + block comment (for ctree items) + +Documentation on variable VDI_NONE in module ida_hexrays: + + undefined + +Documentation on variable VDI_EXPR in module ida_hexrays: + + c-tree item + +Documentation on variable VDI_LVAR in module ida_hexrays: + + declaration of local variable + +Documentation on variable VDI_FUNC in module ida_hexrays: + + the function itself (the very first line with the function prototype) + +Documentation on variable VDI_TAIL in module ida_hexrays: + + cursor is at (beyond) the line end (commentable line) + +Documentation on variable ctree_item_t.citype in module ida_hexrays: + + Item type. + +Documentation on variable GLN_CURRENT in module ida_hexrays: + + get label of the current item + +Documentation on variable GLN_GOTO_TARGET in module ida_hexrays: + + get goto target + +Documentation on variable GLN_ALL in module ida_hexrays: + + get both + +Documentation on variable FORBID_UNUSED_LABELS in module ida_hexrays: + + Unused labels cause interr. + +Documentation on variable ALLOW_UNUSED_LABELS in module ida_hexrays: + + Unused labels are permitted. + +Documentation on variable cfunc_t.entry_ea in module ida_hexrays: + + function entry address + +Documentation on variable cfunc_t.mba in module ida_hexrays: + + underlying microcode + +Documentation on variable cfunc_t.body in module ida_hexrays: + + function body, must be a block + +Documentation on variable cfunc_t.argidx in module ida_hexrays: + + list of arguments (indexes into vars) + +Documentation on variable cfunc_t.maturity in module ida_hexrays: + + maturity level + +Documentation on variable cfunc_t.user_labels in module ida_hexrays: + + user-defined labels. + +Documentation on variable cfunc_t.user_cmts in module ida_hexrays: + + user-defined comments. + +Documentation on variable cfunc_t.numforms in module ida_hexrays: + + user-defined number formats. + +Documentation on variable cfunc_t.user_iflags in module ida_hexrays: + + user-defined item flags ctree item iflags bits + +Documentation on variable cfunc_t.user_unions in module ida_hexrays: + + user-defined union field selections. + +Documentation on variable cfunc_t.refcnt in module ida_hexrays: + + reference count to this object. use cfuncptr_t + +Documentation on variable cfunc_t.statebits in module ida_hexrays: + + current cfunc_t state. see cfunc state bits + +Documentation on variable cfunc_t.hdrlines in module ida_hexrays: + + number of lines in the declaration area + +Documentation on variable cfunc_t.treeitems in module ida_hexrays: + + vector of ctree items + +Documentation on variable CIT_COLLAPSED in module ida_hexrays: + + display ctree item in collapsed form + +Documentation on variable CFS_BOUNDS in module ida_hexrays: + + 'eamap' and 'boundaries' are ready + +Documentation on variable CFS_TEXT in module ida_hexrays: + + 'sv' is ready (and hdrlines) + +Documentation on variable CFS_LVARS_HIDDEN in module ida_hexrays: + + local variable definitions are collapsed + +Documentation on variable CFS_LOCKED in module ida_hexrays: + + cfunc is temporarily locked + +Documentation on variable DECOMP_NO_WAIT in module ida_hexrays: + + do not display waitbox + +Documentation on variable DECOMP_NO_CACHE in module ida_hexrays: + + do not use decompilation cache + +Documentation on variable DECOMP_NO_FRAME in module ida_hexrays: + + do not use function frame info (only snippet mode) + +Documentation on variable DECOMP_WARNINGS in module ida_hexrays: + + display warnings in the output window + +Documentation on variable DECOMP_ALL_BLKS in module ida_hexrays: + + generate microcode for unreachable blocks + +Documentation on variable DECOMP_NO_HIDE in module ida_hexrays: + + do not close display waitbox. see close_hexrays_waitboxes() + +Documentation on variable DECOMP_NO_XREFS in module ida_hexrays: + + do not update global xrefs cache + +Documentation on variable DECOMP_VOID_MBA in module ida_hexrays: + + return empty mba object (to be used with gen_microcode) + +Documentation on variable hxe_flowchart in module ida_hexrays: + + Flowchart has been generated. + +Documentation on variable hxe_stkpnts in module ida_hexrays: + + SP change points have been calculated. + +Documentation on variable hxe_prolog in module ida_hexrays: + + Prolog analysis has been finished. + +Documentation on variable hxe_microcode in module ida_hexrays: + + Microcode has been generated. + +Documentation on variable hxe_preoptimized in module ida_hexrays: + + Microcode has been preoptimized. + +Documentation on variable hxe_locopt in module ida_hexrays: + + Basic block level optimization has been finished. + +Documentation on variable hxe_prealloc in module ida_hexrays: + + Local variables: preallocation step begins. + +Documentation on variable hxe_glbopt in module ida_hexrays: + + Global optimization has been finished. If microcode is modified, MERR_LOOP must + be returned. It will cause a complete restart of the optimization. + +Documentation on variable hxe_structural in module ida_hexrays: + + Structural analysis has been finished. + +Documentation on variable hxe_maturity in module ida_hexrays: + + Ctree maturity level is being changed. + +Documentation on variable hxe_interr in module ida_hexrays: + + Internal error has occurred. + +Documentation on variable hxe_combine in module ida_hexrays: + + Trying to combine instructions of basic block. + +Documentation on variable hxe_print_func in module ida_hexrays: + + Printing ctree and generating text. + +Documentation on variable hxe_func_printed in module ida_hexrays: + + Function text has been generated. Plugins may modify the text in cfunc_t::sv. + The text uses regular color codes (see lines.hpp) COLOR_ADDR is used to store + pointers to ctree items. + +Documentation on variable hxe_resolve_stkaddrs in module ida_hexrays: + + The optimizer is about to resolve stack addresses. + +Documentation on variable hxe_build_callinfo in module ida_hexrays: + + Analyzing a call instruction. + +Documentation on variable hxe_open_pseudocode in module ida_hexrays: + + New pseudocode view has been opened. + +Documentation on variable hxe_switch_pseudocode in module ida_hexrays: + + Existing pseudocode view has been reloaded with a new function. Its text has not + been refreshed yet, only cfunc and mba pointers are ready. + +Documentation on variable hxe_refresh_pseudocode in module ida_hexrays: + + Existing pseudocode text has been refreshed. Adding/removing pseudocode lines is + forbidden in this event. + +Documentation on variable hxe_close_pseudocode in module ida_hexrays: + + Pseudocode view is being closed. + +Documentation on variable hxe_keyboard in module ida_hexrays: + + Keyboard has been hit. + +Documentation on variable hxe_right_click in module ida_hexrays: + + Mouse right click. Use hxe_populating_popup instead, in case you want to add + items in the popup menu. + +Documentation on variable hxe_double_click in module ida_hexrays: + + Mouse double click. + +Documentation on variable hxe_curpos in module ida_hexrays: + + Current cursor position has been changed. (for example, by left-clicking or + using keyboard) + +Documentation on variable hxe_create_hint in module ida_hexrays: + + Create a hint for the current item. + @see: ui_get_custom_viewer_hint + + @retval 0: continue collecting hints with other subscribers + @retval 1: stop collecting hints + +Documentation on variable hxe_text_ready in module ida_hexrays: + + Decompiled text is ready. + +Documentation on variable hxe_populating_popup in module ida_hexrays: + + Populating popup menu. We can add menu items now. + +Documentation on variable lxe_lvar_name_changed in module ida_hexrays: + + Local variable got renamed. + +Documentation on variable lxe_lvar_type_changed in module ida_hexrays: + + Local variable type got changed. + +Documentation on variable lxe_lvar_cmt_changed in module ida_hexrays: + + Local variable comment got changed. + +Documentation on variable lxe_lvar_mapping_changed in module ida_hexrays: + + Local variable mapping got changed. + +Documentation on variable hxe_cmt_changed in module ida_hexrays: + + Comment got changed. + +Documentation on variable USE_KEYBOARD in module ida_hexrays: + + Keyboard. + +Documentation on variable USE_MOUSE in module ida_hexrays: + + Mouse. + +Documentation on variable ctext_position_t.lnnum in module ida_hexrays: + + Line number. + +Documentation on variable ctext_position_t.x in module ida_hexrays: + + x coordinate of the cursor within the window + +Documentation on variable ctext_position_t.y in module ida_hexrays: + + y coordinate of the cursor within the window + +Documentation on variable history_item_t.ea in module ida_hexrays: + + The entry address of the decompiled function. + +Documentation on variable history_item_t.end in module ida_hexrays: + + BADADDR-decompile function; otherwise end of the range. + +Documentation on variable vdui_t.flags in module ida_hexrays: + + Properties of pseudocode window + +Documentation on variable vdui_t.view_idx in module ida_hexrays: + + pseudocode window index (0..) + +Documentation on variable vdui_t.ct in module ida_hexrays: + + pseudocode view + +Documentation on variable vdui_t.mba in module ida_hexrays: + + pointer to underlying microcode + +Documentation on variable vdui_t.cfunc in module ida_hexrays: + + pointer to function object + +Documentation on variable vdui_t.last_code in module ida_hexrays: + + result of the last user action. See Microcode error codes + +Documentation on variable vdui_t.cpos in module ida_hexrays: + + Current ctext position. + +Documentation on variable vdui_t.head in module ida_hexrays: + + First ctree item on the current line (for block comments) + +Documentation on variable vdui_t.item in module ida_hexrays: + + Current ctree item. + +Documentation on variable vdui_t.tail in module ida_hexrays: + + Tail ctree item on the current line (for indented comments) + +Documentation on variable CMT_NONE in module ida_hexrays: + + No comment is possible. + +Documentation on variable CMT_TAIL in module ida_hexrays: + + Indented comment. + +Documentation on variable CMT_BLOCK1 in module ida_hexrays: + + Anterioir block comment. + +Documentation on variable CMT_BLOCK2 in module ida_hexrays: + + Posterior block comment. + +Documentation on variable CMT_LVAR in module ida_hexrays: + + Local variable comment. + +Documentation on variable CMT_FUNC in module ida_hexrays: + + Function comment. + +Documentation on variable CMT_ALL in module ida_hexrays: + + All comments. + +Documentation on variable VDUI_VISIBLE in module ida_hexrays: + + is visible? + +Documentation on variable VDUI_VALID in module ida_hexrays: + + is valid? + +Documentation on variable ui_stroff_op_t.text in module ida_hexrays: + + any text for the column "Operand" of widget + +Documentation on variable ui_stroff_op_t.offset in module ida_hexrays: + + operand offset, will be used when calculating the UDT path + +Documentation on variable AF_FINAL in module ida_ida: + + Final pass of analysis. + +Documentation on variable f_EXE_old in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM_old in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_BIN in module ida_ida: + + Binary File. + +Documentation on variable f_DRV in module ida_ida: + + MS DOS Driver. + +Documentation on variable f_WIN in module ida_ida: + + New Executable (NE) + +Documentation on variable f_HEX in module ida_ida: + + Intel Hex Object File. + +Documentation on variable f_MEX in module ida_ida: + + MOS Technology Hex Object File. + +Documentation on variable f_LX in module ida_ida: + + Linear Executable (LX) + +Documentation on variable f_LE in module ida_ida: + + Linear Executable (LE) + +Documentation on variable f_NLM in module ida_ida: + + Netware Loadable Module (NLM) + +Documentation on variable f_COFF in module ida_ida: + + Common Object File Format (COFF) + +Documentation on variable f_PE in module ida_ida: + + Portable Executable (PE) + +Documentation on variable f_OMF in module ida_ida: + + Object Module Format. + +Documentation on variable f_SREC in module ida_ida: + + Motorola SREC (S-record) + +Documentation on variable f_ZIP in module ida_ida: + + ZIP file (this file is never loaded to IDA database) + +Documentation on variable f_OMFLIB in module ida_ida: + + Library of OMF Modules. + +Documentation on variable f_AR in module ida_ida: + + ar library + +Documentation on variable f_LOADER in module ida_ida: + + file is loaded using LOADER DLL + +Documentation on variable f_ELF in module ida_ida: + + Executable and Linkable Format (ELF) + +Documentation on variable f_W32RUN in module ida_ida: + + Watcom DOS32 Extender (W32RUN) + +Documentation on variable f_AOUT in module ida_ida: + + Linux a.out (AOUT) + +Documentation on variable f_PRC in module ida_ida: + + PalmPilot program file. + +Documentation on variable f_EXE in module ida_ida: + + MS DOS EXE File. + +Documentation on variable f_COM in module ida_ida: + + MS DOS COM File. + +Documentation on variable f_AIXAR in module ida_ida: + + AIX ar library. + +Documentation on variable f_MACHO in module ida_ida: + + Mac OS X Mach-O. + +Documentation on variable f_PSXOBJ in module ida_ida: + + Sony Playstation PSX object file. + +Documentation on variable compiler_info_t.id in module ida_ida: + + compiler id (see Compiler IDs) + +Documentation on variable compiler_info_t.cm in module ida_ida: + + memory model and calling convention (see CM) + +Documentation on variable compiler_info_t.size_i in module ida_ida: + + sizeof(int) + +Documentation on variable compiler_info_t.size_b in module ida_ida: + + sizeof(bool) + +Documentation on variable compiler_info_t.size_e in module ida_ida: + + sizeof(enum) + +Documentation on variable compiler_info_t.defalign in module ida_ida: + + default alignment for structures + +Documentation on variable compiler_info_t.size_s in module ida_ida: + + short + +Documentation on variable compiler_info_t.size_l in module ida_ida: + + long + +Documentation on variable compiler_info_t.size_ll in module ida_ida: + + longlong + +Documentation on variable compiler_info_t.size_ldbl in module ida_ida: + + longdouble (if different from processor_t::tbyte_size) + +Documentation on variable STT_CUR in module ida_ida: + + use current storage type (may be used only as a function argument) + +Documentation on variable STT_VA in module ida_ida: + + regular storage: virtual arrays, an explicit flag for each byte + +Documentation on variable STT_MM in module ida_ida: + + memory map: sparse storage. useful for huge objects + +Documentation on variable STT_DBG in module ida_ida: + + memory map: temporary debugger storage. used internally + +Documentation on variable IDAINFO_TAG_SIZE in module ida_ida: + + The database parameters. This structure is kept in the ida database. It contains + the essential parameters for the current program + +Documentation on variable idainfo.tag in module ida_ida: + + 'IDA' + +Documentation on variable idainfo.version in module ida_ida: + + Version of database. + +Documentation on variable idainfo.procname in module ida_ida: + + Name of the current processor (with \0) + +Documentation on variable idainfo.s_genflags in module ida_ida: + + General idainfo flags + +Documentation on variable idainfo.database_change_count in module ida_ida: + + incremented after each byte and regular segment modifications + +Documentation on variable idainfo.filetype in module ida_ida: + + The input file type. + +Documentation on variable idainfo.ostype in module ida_ida: + + OS type the program is for bit definitions in libfuncs.hpp + +Documentation on variable idainfo.apptype in module ida_ida: + + Application type bit definitions in libfuncs.hpp + +Documentation on variable idainfo.asmtype in module ida_ida: + + target assembler number + +Documentation on variable idainfo.specsegs in module ida_ida: + + What format do special segments use? 0-unspecified, 4-entries are 4 bytes, 8- + entries are 8 bytes. + +Documentation on variable idainfo.af in module ida_ida: + + Analysis flags + +Documentation on variable idainfo.af2 in module ida_ida: + + Analysis flags 2 + +Documentation on variable idainfo.baseaddr in module ida_ida: + + remaining 29 bits are reserved + + base address of the program (paragraphs) + +Documentation on variable idainfo.start_ss in module ida_ida: + + selector of the initial stack segment + +Documentation on variable idainfo.start_cs in module ida_ida: + + selector of the segment with the main entry point + +Documentation on variable idainfo.start_ip in module ida_ida: + + IP register value at the start of program execution + +Documentation on variable idainfo.start_ea in module ida_ida: + + Linear address of program entry point. + +Documentation on variable idainfo.start_sp in module ida_ida: + + SP register value at the start of program execution + +Documentation on variable idainfo.main in module ida_ida: + + address of main() + +Documentation on variable idainfo.min_ea in module ida_ida: + + current limits of program + +Documentation on variable idainfo.max_ea in module ida_ida: + + maxEA is excluded + +Documentation on variable idainfo.omin_ea in module ida_ida: + + original minEA (is set after loading the input file) + +Documentation on variable idainfo.omax_ea in module ida_ida: + + original maxEA (is set after loading the input file) + +Documentation on variable idainfo.lowoff in module ida_ida: + + Low limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.highoff in module ida_ida: + + High limit for offsets (used in calculation of 'void' operands) + +Documentation on variable idainfo.maxref in module ida_ida: + + Max tail for references. + +Documentation on variable idainfo.xrefnum in module ida_ida: + + CROSS REFERENCES. + + Number of references to generate in the disassembly listing 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.type_xrefnum in module ida_ida: + + Number of references to generate in the struct & enum windows 0 - xrefs won't be + generated at all + +Documentation on variable idainfo.refcmtnum in module ida_ida: + + Number of comment lines to generate for refs to string literals or demangled + names 0 - such comments won't be generated at all + +Documentation on variable idainfo.s_xrefflag in module ida_ida: + + Xref options + +Documentation on variable idainfo.max_autoname_len in module ida_ida: + + NAMES. + + max autogenerated name length (without zero byte) + +Documentation on variable idainfo.nametype in module ida_ida: + + Dummy names representation types + +Documentation on variable idainfo.short_demnames in module ida_ida: + + short form of demangled names + +Documentation on variable idainfo.long_demnames in module ida_ida: + + long form of demangled names see demangle.h for definitions + +Documentation on variable idainfo.demnames in module ida_ida: + + Demangled name flags + +Documentation on variable idainfo.listnames in module ida_ida: + + Name list options + +Documentation on variable idainfo.indent in module ida_ida: + + DISASSEMBLY LISTING DETAILS. + + Indentation for instructions + +Documentation on variable idainfo.cmt_indent in module ida_ida: + + Indentation for comments. + +Documentation on variable idainfo.margin in module ida_ida: + + max length of data lines + +Documentation on variable idainfo.lenxref in module ida_ida: + + max length of line with xrefs + +Documentation on variable idainfo.outflags in module ida_ida: + + output flags + +Documentation on variable idainfo.s_cmtflg in module ida_ida: + + Comment options + +Documentation on variable idainfo.s_limiter in module ida_ida: + + Delimiter options + +Documentation on variable idainfo.bin_prefix_size in module ida_ida: + + Number of instruction bytes (opcodes) to show in line prefix. + +Documentation on variable idainfo.s_prefflag in module ida_ida: + + Line prefix options + +Documentation on variable idainfo.strlit_flags in module ida_ida: + + STRING LITERALS. + + string literal flags + +Documentation on variable idainfo.strlit_break in module ida_ida: + + string literal line break symbol + +Documentation on variable idainfo.strlit_zeroes in module ida_ida: + + leading zeroes + +Documentation on variable idainfo.strtype in module ida_ida: + + current ascii string type see nalt.hpp for string types + +Documentation on variable idainfo.strlit_pref in module ida_ida: + + prefix for string literal names + +Documentation on variable idainfo.strlit_sernum in module ida_ida: + + serial number + +Documentation on variable idainfo.datatypes in module ida_ida: + + data types allowed in data carousel + +Documentation on variable idainfo.cc in module ida_ida: + + COMPILER. + + Target compiler + +Documentation on variable idainfo.abibits in module ida_ida: + + ABI features. Depends on info returned by get_abi_name() Processor modules may + modify them in set_compiler + +Documentation on variable idainfo.appcall_options in module ida_ida: + + appcall options, see idd.hpp + +Documentation on variable idainfo.lflags in module ida_ida: + + Misc. database flags + +Documentation on variable INFFL_AUTO in module ida_ida: + + Autoanalysis is enabled? + +Documentation on variable INFFL_ALLASM in module ida_ida: + + may use constructs not supported by the target assembler + +Documentation on variable INFFL_LOADIDC in module ida_ida: + + loading an idc file that contains database info + +Documentation on variable INFFL_NOUSER in module ida_ida: + + do not store user info in the database + +Documentation on variable INFFL_READONLY in module ida_ida: + + (internal) temporary interdiction to modify the database + +Documentation on variable INFFL_CHKOPS in module ida_ida: + + check manual operands? (unused) + +Documentation on variable INFFL_NMOPS in module ida_ida: + + allow non-matched operands? (unused) + +Documentation on variable INFFL_GRAPH_VIEW in module ida_ida: + + currently using graph options ( text_options_t::graph) + +Documentation on variable LFLG_PC_FPP in module ida_ida: + + decode floating point processor instructions? + +Documentation on variable LFLG_PC_FLAT in module ida_ida: + + 32-bit program (or higher)? + +Documentation on variable LFLG_64BIT in module ida_ida: + + 64-bit program? + +Documentation on variable LFLG_IS_DLL in module ida_ida: + + Is dynamic library? + +Documentation on variable LFLG_FLAT_OFF32 in module ida_ida: + + treat REF_OFF32 as 32-bit offset for 16bit segments (otherwise try SEG16:OFF16) + +Documentation on variable LFLG_MSF in module ida_ida: + + Byte order: is MSB first? + +Documentation on variable LFLG_WIDE_HBF in module ida_ida: + + Bit order of wide bytes: high byte first? (wide bytes: processor_t::dnbits > 8) + +Documentation on variable LFLG_DBG_NOPATH in module ida_ida: + + do not store input full path in debugger process options + +Documentation on variable LFLG_SNAPSHOT in module ida_ida: + + memory snapshot was taken? + +Documentation on variable LFLG_PACK in module ida_ida: + + pack the database? + +Documentation on variable LFLG_COMPRESS in module ida_ida: + + compress the database? + +Documentation on variable LFLG_KERNMODE in module ida_ida: + + is kernel mode binary? + +Documentation on variable IDB_UNPACKED in module ida_ida: + + leave database components unpacked + +Documentation on variable IDB_PACKED in module ida_ida: + + pack database components into .idb + +Documentation on variable IDB_COMPRESSED in module ida_ida: + + compress & pack database components + +Documentation on variable AF_CODE in module ida_ida: + + Trace execution flow. + +Documentation on variable AF_MARKCODE in module ida_ida: + + Mark typical code sequences as code. + +Documentation on variable AF_JUMPTBL in module ida_ida: + + Locate and create jump tables. + +Documentation on variable AF_PURDAT in module ida_ida: + + Control flow to data segment is ignored. + +Documentation on variable AF_USED in module ida_ida: + + Analyze and create all xrefs. + +Documentation on variable AF_UNK in module ida_ida: + + Delete instructions with no xrefs. + +Documentation on variable AF_PROCPTR in module ida_ida: + + Create function if data xref data->code32 exists. + +Documentation on variable AF_PROC in module ida_ida: + + Create functions if call is present. + +Documentation on variable AF_FTAIL in module ida_ida: + + Create function tails. + +Documentation on variable AF_LVAR in module ida_ida: + + Create stack variables. + +Documentation on variable AF_STKARG in module ida_ida: + + Propagate stack argument information. + +Documentation on variable AF_REGARG in module ida_ida: + + Propagate register argument information. + +Documentation on variable AF_TRACE in module ida_ida: + + Trace stack pointer. + +Documentation on variable AF_VERSP in module ida_ida: + + Perform full SP-analysis. ( processor_t::verify_sp) + +Documentation on variable AF_ANORET in module ida_ida: + + Perform 'no-return' analysis. + +Documentation on variable AF_MEMFUNC in module ida_ida: + + Try to guess member function types. + +Documentation on variable AF_TRFUNC in module ida_ida: + + Truncate functions upon code deletion. + +Documentation on variable AF_STRLIT in module ida_ida: + + Create string literal if data xref exists. + +Documentation on variable AF_CHKUNI in module ida_ida: + + Check for unicode strings. + +Documentation on variable AF_FIXUP in module ida_ida: + + Create offsets and segments using fixup info. + +Documentation on variable AF_DREFOFF in module ida_ida: + + Create offset if data xref to seg32 exists. + +Documentation on variable AF_IMMOFF in module ida_ida: + + Convert 32bit instruction operand to offset. + +Documentation on variable AF_DATOFF in module ida_ida: + + Automatically convert data to offsets. + +Documentation on variable AF_FLIRT in module ida_ida: + + Use flirt signatures. + +Documentation on variable AF_SIGCMT in module ida_ida: + + Append a signature name comment for recognized anonymous library functions. + +Documentation on variable AF_SIGMLT in module ida_ida: + + Allow recognition of several copies of the same function. + +Documentation on variable AF_HFLIRT in module ida_ida: + + Automatically hide library functions. + +Documentation on variable AF_JFUNC in module ida_ida: + + Rename jump functions as j_... + +Documentation on variable AF_NULLSUB in module ida_ida: + + Rename empty functions as nullsub_... + +Documentation on variable AF_DODATA in module ida_ida: + + Coagulate data segs at the final pass. + +Documentation on variable AF_DOCODE in module ida_ida: + + Coagulate code segs at the final pass. + +Documentation on variable AF2_DOEH in module ida_ida: + + Handle EH information. + +Documentation on variable AF2_DORTTI in module ida_ida: + + Handle RTTI information. + +Documentation on variable AF2_MACRO in module ida_ida: + + Try to combine several instructions into a macro instruction + +Documentation on variable SW_SEGXRF in module ida_ida: + + show segments in xrefs? + +Documentation on variable SW_XRFMRK in module ida_ida: + + show xref type marks? + +Documentation on variable SW_XRFFNC in module ida_ida: + + show function offsets? + +Documentation on variable SW_XRFVAL in module ida_ida: + + show xref values? (otherwise-"...") + +Documentation on variable DEMNAM_MASK in module ida_ida: + + mask for name form + +Documentation on variable DEMNAM_CMNT in module ida_ida: + + display demangled names as comments + +Documentation on variable DEMNAM_NAME in module ida_ida: + + display demangled names as regular names + +Documentation on variable DEMNAM_NONE in module ida_ida: + + don't display demangled names + +Documentation on variable DEMNAM_GCC3 in module ida_ida: + + assume gcc3 names (valid for gnu compiler) + +Documentation on variable DEMNAM_FIRST in module ida_ida: + + override type info + +Documentation on variable LN_NORMAL in module ida_ida: + + include normal names + +Documentation on variable LN_PUBLIC in module ida_ida: + + include public names + +Documentation on variable LN_AUTO in module ida_ida: + + include autogenerated names + +Documentation on variable LN_WEAK in module ida_ida: + + include weak names + +Documentation on variable OFLG_SHOW_VOID in module ida_ida: + + Display void marks? + +Documentation on variable OFLG_SHOW_AUTO in module ida_ida: + + Display autoanalysis indicator? + +Documentation on variable OFLG_GEN_NULL in module ida_ida: + + Generate empty lines? + +Documentation on variable OFLG_SHOW_PREF in module ida_ida: + + Show line prefixes? + +Documentation on variable OFLG_PREF_SEG in module ida_ida: + + line prefixes with segment name? + +Documentation on variable OFLG_LZERO in module ida_ida: + + generate leading zeroes in numbers + +Documentation on variable OFLG_GEN_ORG in module ida_ida: + + Generate 'org' directives? + +Documentation on variable OFLG_GEN_ASSUME in module ida_ida: + + Generate 'assume' directives? + +Documentation on variable OFLG_GEN_TRYBLKS in module ida_ida: + + Generate try/catch directives? + +Documentation on variable SCF_RPTCMT in module ida_ida: + + show repeatable comments? + +Documentation on variable SCF_ALLCMT in module ida_ida: + + comment all lines? + +Documentation on variable SCF_NOCMT in module ida_ida: + + no comments at all + +Documentation on variable SCF_LINNUM in module ida_ida: + + show source line numbers + +Documentation on variable SCF_TESTMODE in module ida_ida: + + testida.idc is running + +Documentation on variable SCF_SHHID_ITEM in module ida_ida: + + show hidden instructions + +Documentation on variable SCF_SHHID_FUNC in module ida_ida: + + show hidden functions + +Documentation on variable SCF_SHHID_SEGM in module ida_ida: + + show hidden segments + +Documentation on variable LMT_THIN in module ida_ida: + + thin borders + +Documentation on variable LMT_THICK in module ida_ida: + + thick borders + +Documentation on variable LMT_EMPTY in module ida_ida: + + empty lines at the end of basic blocks + +Documentation on variable PREF_SEGADR in module ida_ida: + + show segment addresses? + +Documentation on variable PREF_FNCOFF in module ida_ida: + + show function offsets? + +Documentation on variable PREF_STACK in module ida_ida: + + show stack pointer? + +Documentation on variable PREF_PFXTRUNC in module ida_ida: + + truncate instruction bytes if they would need more than 1 line + +Documentation on variable STRF_GEN in module ida_ida: + + generate names? + +Documentation on variable STRF_AUTO in module ida_ida: + + names have 'autogenerated' bit? + +Documentation on variable STRF_SERIAL in module ida_ida: + + generate serial names? + +Documentation on variable STRF_UNICODE in module ida_ida: + + unicode strings are present? + +Documentation on variable STRF_COMMENT in module ida_ida: + + generate auto comment for string references? + +Documentation on variable STRF_SAVECASE in module ida_ida: + + preserve case of strings for identifiers + +Documentation on variable ABI_8ALIGN4 in module ida_ida: + + 4 byte alignment for 8byte scalars (__int64/double) inside structures? + +Documentation on variable ABI_PACK_STKARGS in module ida_ida: + + do not align stack arguments to stack slots + +Documentation on variable ABI_BIGARG_ALIGN in module ida_ida: + + use natural type alignment for argument if the alignment exceeds native word + size. (e.g. __int64 argument should be 8byte aligned on some 32bit platforms) + +Documentation on variable ABI_STACK_LDBL in module ida_ida: + + long double arguments are passed on stack + +Documentation on variable ABI_STACK_VARARGS in module ida_ida: + + varargs are always passed on stack (even when there are free registers) + +Documentation on variable ABI_HARD_FLOAT in module ida_ida: + + use the floating-point register set + +Documentation on variable ABI_SET_BY_USER in module ida_ida: + + compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be + changed + +Documentation on variable ABI_GCC_LAYOUT in module ida_ida: + + use gcc layout for udts (used for mingw) + +Documentation on variable ABI_MAP_STKARGS in module ida_ida: + + register arguments are mapped to stack area (and consume stack slots) + +Documentation on variable ABI_HUGEARG_ALIGN in module ida_ida: + + use natural type alignment for an argument even if its alignment exceeds double + native word size (the default is to use double word max). e.g. if this bit is + set, __int128 has 16-byte alignment. this bit is not used by ida yet + +Documentation on variable INF_FILE_FORMAT_NAME in module ida_ida: + + file format name for loader modules + +Documentation on variable INF_GROUPS in module ida_ida: + + segment group information (see init_groups()) + +Documentation on variable INF_H_PATH in module ida_ida: + + C header path. + +Documentation on variable INF_C_MACROS in module ida_ida: + + C predefined macros. + +Documentation on variable INF_INCLUDE in module ida_ida: + + assembler include file name + +Documentation on variable INF_DUALOP_GRAPH in module ida_ida: + + Graph text representation options. + +Documentation on variable INF_DUALOP_TEXT in module ida_ida: + + Text text representation options. + +Documentation on variable INF_MD5 in module ida_ida: + + MD5 of the input file. + +Documentation on variable INF_IDA_VERSION in module ida_ida: + + version of ida which created the database + +Documentation on variable INF_STR_ENCODINGS in module ida_ida: + + a list of encodings for the program strings + +Documentation on variable INF_DBG_BINPATHS in module ida_ida: + + unused (20 indexes) + +Documentation on variable INF_SHA256 in module ida_ida: + + SHA256 of the input file. + +Documentation on variable INF_ABINAME in module ida_ida: + + ABI name (processor specific) + +Documentation on variable INF_ARCHIVE_PATH in module ida_ida: + + archive file path + +Documentation on variable INF_PROBLEMS in module ida_ida: + + problem lists + +Documentation on variable INF_SELECTORS in module ida_ida: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable INF_NOTEPAD in module ida_ida: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable INF_SRCDBG_PATHS in module ida_ida: + + source debug paths, occupies 20 indexes + +Documentation on variable INF_SRCDBG_UNDESIRED in module ida_ida: + + user-closed source files, occupies 20 indexes + +Documentation on variable INF_INITIAL_VERSION in module ida_ida: + + initial version of database + +Documentation on variable INF_CTIME in module ida_ida: + + database creation timestamp + +Documentation on variable INF_ELAPSED in module ida_ida: + + seconds database stayed open + +Documentation on variable INF_NOPENS in module ida_ida: + + how many times the database is opened + +Documentation on variable INF_CRC32 in module ida_ida: + + input file crc32 + +Documentation on variable INF_IMAGEBASE in module ida_ida: + + image base + +Documentation on variable INF_IDSNODE in module ida_ida: + + ids modnode id (for import_module) + +Documentation on variable INF_FSIZE in module ida_ida: + + input file size + +Documentation on variable INF_OUTFILEENC in module ida_ida: + + output file encoding index + +Documentation on variable UA_MAXOP in module ida_ida: + + max number of operands allowed for an instruction + +Documentation on variable PY_ICID_INT64 in module ida_idaapi: + + int64 object + +Documentation on variable PY_ICID_BYREF in module ida_idaapi: + + byref object + +Documentation on variable PY_ICID_OPAQUE in module ida_idaapi: + + opaque object + +Documentation on variable ST_OVER_DEBUG_SEG in module ida_idaapi: + + step tracing will be disabled when IP is in a debugger segment + +Documentation on variable ST_OVER_LIB_FUNC in module ida_idaapi: + + step tracing will be disabled when IP is in a library function + +Documentation on variable py_clinked_object_t.clink in module ida_idaapi: + + Returns the C link as a PyObject + +Documentation on variable py_clinked_object_t.clink_ptr in module ida_idaapi: + + Returns the C link pointer as a number + +Documentation on variable NW_OPENIDB in module ida_idaapi: + + Notify when the database is opened. Its callback is of the form: def notify_when_callback(nw_code, is_old_database) + +Documentation on variable NW_CLOSEIDB in module ida_idaapi: + + Notify when the database is closed. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_INITIDA in module ida_idaapi: + + Notify when the IDA starts. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_TERMIDA in module ida_idaapi: + + Notify when the IDA terminates. Its callback is of the form: def notify_when_callback(nw_code) + +Documentation on variable NW_REMOVE in module ida_idaapi: + + Use this flag with other flags to uninstall a notifywhen callback + +Documentation on variable IDD_INTERFACE_VERSION in module ida_idd: + + The IDD interface version number. + +Documentation on variable NO_THREAD in module ida_idd: + + No thread. in PROCESS_STARTED this value can be used to specify that the main + thread has not been created. It will be initialized later by a THREAD_STARTED + event. + +Documentation on variable process_info_t.pid in module ida_idd: + + process id + +Documentation on variable process_info_t.name in module ida_idd: + + process name + +Documentation on variable debapp_attrs_t.cbsize in module ida_idd: + + control field: size of this structure + +Documentation on variable debapp_attrs_t.addrsize in module ida_idd: + + address size of the process. Since 64-bit debuggers usually can debug 32-bit + applications, we cannot rely on sizeof(ea_t) to detect the current address size. + The following variable should be used instead. It is initialized with 8 for + 64-bit debuggers but they should adjust it as soon as they learn that a 32-bit + application is being debugged. For 32-bit debuggers it is initialized with 4. + +Documentation on variable debapp_attrs_t.platform in module ida_idd: + + platform name process is running/debugging under. (is used as a key value in + exceptions.cfg) + +Documentation on variable register_info_t.name in module ida_idd: + + Register name. + +Documentation on variable register_info_t.flags in module ida_idd: + + Register info attribute flags + +Documentation on variable register_info_t.register_class in module ida_idd: + + segment, mmx, etc. + +Documentation on variable register_info_t.dtype in module ida_idd: + + Register size (see Operand value types) + +Documentation on variable register_info_t.default_bit_strings_mask in module ida_idd: + + mask of default bits + +Documentation on variable register_info_t.bit_strings in module ida_idd: + + strings corresponding to each bit of the register. (nullptr = no bit, same name + = multi-bits mask) + +Documentation on variable REGISTER_READONLY in module ida_idd: + + the user can't modify the current value of this register + +Documentation on variable REGISTER_IP in module ida_idd: + + instruction pointer + +Documentation on variable REGISTER_SP in module ida_idd: + + stack pointer + +Documentation on variable REGISTER_FP in module ida_idd: + + frame pointer + +Documentation on variable REGISTER_ADDRESS in module ida_idd: + + may contain an address + +Documentation on variable REGISTER_CS in module ida_idd: + + code segment + +Documentation on variable REGISTER_SS in module ida_idd: + + stack segment + +Documentation on variable REGISTER_NOLF in module ida_idd: + + displays this register without returning to the next line, allowing the next + register to be displayed to its right (on the same line) + +Documentation on variable REGISTER_CUSTFMT in module ida_idd: + + register should be displayed using a custom data format. the format name is in + bit_strings[0]; the corresponding regval_t will use bytevec_t + +Documentation on variable memory_info_t.name in module ida_idd: + + Memory range name. + +Documentation on variable memory_info_t.sclass in module ida_idd: + + Memory range class name. + +Documentation on variable memory_info_t.sbase in module ida_idd: + + Segment base (meaningful only for segmented architectures, e.g. 16-bit x86) The + base is specified in paragraphs (i.e. shifted to the right by 4) + +Documentation on variable memory_info_t.bitness in module ida_idd: + + Number of bits in segment addresses (0-16bit, 1-32bit, 2-64bit) + +Documentation on variable memory_info_t.perm in module ida_idd: + + Memory range permissions (0-no information): see segment.hpp. + +Documentation on variable scattered_segm_t.name in module ida_idd: + + name of the segment + +Documentation on variable NO_EVENT in module ida_idd: + + Not an interesting event. This event can be used if the debugger module needs to + return an event but there are no valid events. + +Documentation on variable PROCESS_STARTED in module ida_idd: + + New process has been started. + +Documentation on variable PROCESS_EXITED in module ida_idd: + + Process has been stopped. + +Documentation on variable THREAD_STARTED in module ida_idd: + + New thread has been started. + +Documentation on variable THREAD_EXITED in module ida_idd: + + Thread has been stopped. + +Documentation on variable BREAKPOINT in module ida_idd: + + Breakpoint has been reached. IDA will complain about unknown breakpoints, they + should be reported as exceptions. + +Documentation on variable STEP in module ida_idd: + + One instruction has been executed. Spurious events of this kind are silently + ignored by IDA. + +Documentation on variable EXCEPTION in module ida_idd: + + Exception. + +Documentation on variable LIB_LOADED in module ida_idd: + + New library has been loaded. + +Documentation on variable LIB_UNLOADED in module ida_idd: + + Library has been unloaded. + +Documentation on variable INFORMATION in module ida_idd: + + User-defined information. This event can be used to return empty information + This will cause IDA to call get_debug_event() immediately once more. + +Documentation on variable PROCESS_ATTACHED in module ida_idd: + + Successfully attached to running process. + +Documentation on variable PROCESS_DETACHED in module ida_idd: + + Successfully detached from process. + +Documentation on variable PROCESS_SUSPENDED in module ida_idd: + + Process has been suspended. This event can be used by the debugger module to + signal if the process spontaneously gets suspended (not because of an exception, + breakpoint, or single step). IDA will silently switch to the 'suspended process' + mode without displaying any messages. + +Documentation on variable TRACE_FULL in module ida_idd: + + The trace buffer of the tracer module is full and IDA needs to read it before + continuing + +Documentation on variable modinfo_t.name in module ida_idd: + + full name of the module + +Documentation on variable modinfo_t.base in module ida_idd: + + module base address. if unknown pass BADADDR + +Documentation on variable modinfo_t.size in module ida_idd: + + module size. if unknown pass 0 + +Documentation on variable modinfo_t.rebase_to in module ida_idd: + + if not BADADDR, then rebase the program to the specified address + +Documentation on variable bptaddr_t.hea in module ida_idd: + + Possible address referenced by hardware breakpoints. + +Documentation on variable bptaddr_t.kea in module ida_idd: + + Address of the triggered bpt from the kernel's point of view. (for some systems + with special memory mappings, the triggered ea might be different from event + ea). Use to BADADDR for flat memory model. + +Documentation on variable excinfo_t.code in module ida_idd: + + Exception code. + +Documentation on variable excinfo_t.can_cont in module ida_idd: + + Execution of the process can continue after this exception? + +Documentation on variable excinfo_t.ea in module ida_idd: + + Possible address referenced by the exception. + +Documentation on variable excinfo_t.info in module ida_idd: + + Exception message. + +Documentation on variable debug_event_t.pid in module ida_idd: + + Process where the event occurred. + +Documentation on variable debug_event_t.tid in module ida_idd: + + Thread where the event occurred. + +Documentation on variable debug_event_t.ea in module ida_idd: + + Address where the event occurred. + +Documentation on variable debug_event_t.handled in module ida_idd: + + Is event handled by the debugger?. (from the system's point of view) Meaningful + for EXCEPTION events + +Documentation on variable exception_info_t.code in module ida_idd: + + exception code + +Documentation on variable exception_info_t.flags in module ida_idd: + + Exception info flags + +Documentation on variable exception_info_t.name in module ida_idd: + + Exception standard name. + +Documentation on variable exception_info_t.desc in module ida_idd: + + Long message used to display info about the exception. + +Documentation on variable BPT_WRITE in module ida_idd: + + Write access. + +Documentation on variable BPT_READ in module ida_idd: + + Read access. + +Documentation on variable BPT_RDWR in module ida_idd: + + Read/write access. + +Documentation on variable BPT_SOFT in module ida_idd: + + Software breakpoint. + +Documentation on variable BPT_EXEC in module ida_idd: + + Execute instruction. + +Documentation on variable BPT_DEFAULT in module ida_idd: + + Choose bpt type automatically. + +Documentation on variable EXC_BREAK in module ida_idd: + + break on the exception + +Documentation on variable EXC_HANDLE in module ida_idd: + + should be handled by the debugger? + +Documentation on variable EXC_MSG in module ida_idd: + + instead of a warning, log the exception to the output window + +Documentation on variable EXC_SILENT in module ida_idd: + + do not warn or log to the output window + +Documentation on variable regval_t.rvtype in module ida_idd: + + one of Register value types + +Documentation on variable regval_t.ival in module ida_idd: + + 8: integer value + +Documentation on variable regval_t.fval in module ida_idd: + + 12: floating point value in the internal representation (see ieee.h) + +Documentation on variable RVT_INT in module ida_idd: + + integer + +Documentation on variable RVT_FLOAT in module ida_idd: + + floating point + +Documentation on variable RVT_UNAVAILABLE in module ida_idd: + + unavailable; other values mean custom data type + +Documentation on variable call_stack_info_t.callea in module ida_idd: + + the address of the call instruction. for the 0th frame this is usually just the + current value of EIP. + +Documentation on variable call_stack_info_t.funcea in module ida_idd: + + the address of the called function + +Documentation on variable call_stack_info_t.fp in module ida_idd: + + the value of the frame pointer of the called function + +Documentation on variable call_stack_info_t.funcok in module ida_idd: + + is the function present? + +Documentation on variable thread_name_t.tid in module ida_idd: + + thread + +Documentation on variable thread_name_t.name in module ida_idd: + + new thread name + +Documentation on variable RESMOD_NONE in module ida_idd: + + no stepping, run freely + +Documentation on variable RESMOD_INTO in module ida_idd: + + step into call (the most typical single stepping) + +Documentation on variable RESMOD_OVER in module ida_idd: + + step over call + +Documentation on variable RESMOD_OUT in module ida_idd: + + step out of the current function (run until return) + +Documentation on variable RESMOD_SRCINTO in module ida_idd: + + until control reaches a different source line + +Documentation on variable RESMOD_SRCOVER in module ida_idd: + + next source line in the current stack frame + +Documentation on variable RESMOD_SRCOUT in module ida_idd: + + next source line in the previous stack frame + +Documentation on variable RESMOD_USER in module ida_idd: + + step out to the user code + +Documentation on variable RESMOD_HANDLE in module ida_idd: + + step into the exception handler + +Documentation on variable DRC_EVENTS in module ida_idd: + + success, there are pending events + +Documentation on variable DRC_CRC in module ida_idd: + + success, but the input file crc does not match + +Documentation on variable DRC_OK in module ida_idd: + + success + +Documentation on variable DRC_NONE in module ida_idd: + + reaction to the event not implemented + +Documentation on variable DRC_FAILED in module ida_idd: + + failed or false + +Documentation on variable DRC_NETERR in module ida_idd: + + network error + +Documentation on variable DRC_NOFILE in module ida_idd: + + file not found + +Documentation on variable DRC_IDBSEG in module ida_idd: + + use idb segmentation + +Documentation on variable DRC_NOPROC in module ida_idd: + + the process does not exist anymore + +Documentation on variable DRC_NOCHG in module ida_idd: + + no changes + +Documentation on variable DRC_ERROR in module ida_idd: + + unclassified error, may be complemented by errbuf + +Documentation on variable debugger_t.version in module ida_idd: + + Expected kernel version, should be IDD_INTERFACE_VERSION + +Documentation on variable debugger_t.name in module ida_idd: + + Short debugger name like win32 or linux. + +Documentation on variable debugger_t.id in module ida_idd: + + one of Debugger API module id + +Documentation on variable debugger_t.processor in module ida_idd: + + Required processor name. Used for instant debugging to load the correct + processor module + +Documentation on variable debugger_t.flags2 in module ida_idd: + + Debugger module features + +Documentation on variable debugger_t.default_regclasses in module ida_idd: + + Mask of default printed register classes. + +Documentation on variable debugger_t.memory_page_size in module ida_idd: + + Size of a memory page. Usually 4K. + +Documentation on variable debugger_t.bpt_size in module ida_idd: + + Size of the software breakpoint instruction in bytes. + +Documentation on variable debugger_t.filetype in module ida_idd: + + Input file type for the instant debugger. This value will be used after + attaching to a new process. + +Documentation on variable debugger_t.resume_modes in module ida_idd: + + Resume modes + +Documentation on variable debugger_t.ev_init_debugger in module ida_idd: + + Initialize debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_term_debugger in module ida_idd: + + Terminate debugger. This event is generated in the main thread. + + @return: DRC_OK, DRC_FAILED + +Documentation on variable debugger_t.ev_get_processes in module ida_idd: + + Return information about the running processes. This event is generated in the + main thread. Available if DBG_HAS_GET_PROCESSES is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_start_process in module ida_idd: + + Start an executable to debug. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_CRC, DRC_FAILED, DRC_NETERR, DRC_NOFILE + +Documentation on variable debugger_t.ev_attach_process in module ida_idd: + + Attach to an existing running process. event_id should be equal to -1 if not + attaching to a crashed process. This event is generated in debthread. Available + if DBG_HAS_ATTACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_detach_process in module ida_idd: + + Detach from the debugged process. May be generated while the process is running + or suspended. Must detach from the process in any case. The kernel will + repeatedly call get_debug_event() until PROCESS_DETACHED is received. In this + mode, all other events will be automatically handled and process will be + resumed. This event is generated from debthread. Available if + DBG_HAS_DETACH_PROCESS is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debapp_attrs in module ida_idd: + + Retrieve process- and debugger-specific runtime attributes. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_rebase_if_required_to in module ida_idd: + + Rebase database if the debugged program has been rebased by the system. This + event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_request_pause in module ida_idd: + + Prepare to pause the process. Normally the next get_debug_event() will pause the + process If the process is sleeping, then the pause will not occur until the + process wakes up. If the debugger module does not react to this event, then it + will be impossible to pause the program. This event is generated in debthread. + Available if DBG_HAS_REQUEST_PAUSE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_exit_process in module ida_idd: + + Stop the process. May be generated while the process is running or suspended. + Must terminate the process in any case. The kernel will repeatedly call + get_debug_event() until PROCESS_EXITED is received. In this mode, all other + events will be automatically handled and process will be resumed. This event is + generated in debthread. Must be implemented. + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_debug_event in module ida_idd: + + Get a pending debug event and suspend the process. This event will be generated + regularly by IDA. This event is generated in debthread. IMPORTANT: the + BREAKPOINT/EXCEPTION/STEP events must be reported only after reporting other + pending events for a thread. Must be implemented. + + @retval ignored + +Documentation on variable debugger_t.ev_resume in module ida_idd: + + Continue after handling the event. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_set_exception_info in module ida_idd: + + Set exception handling. This event is generated in debthread or the main thread. + Available if DBG_HAS_SET_EXCEPTION_INFO is set + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_suspended in module ida_idd: + + This event will be generated by the kernel each time it has suspended the + debugger process and refreshed the database. The debugger module may add + information to the database if it wants. + + The reason for introducing this event is that when an event line LOAD_DLL + happens, the database does not reflect the memory state yet and therefore we + can't add information about the dll into the database in the get_debug_event() + event. Only when the kernel has adjusted the database we can do it. Example: for + imported PE DLLs we will add the exported event names to the database. + + This event is generated in the main thread. + + @return: DRC_NONE, DRC_OK + +Documentation on variable debugger_t.ev_thread_suspend in module ida_idd: + + Suspend a running thread Available if DBG_HAS_THREAD_SUSPEND is set + +Documentation on variable debugger_t.ev_thread_continue in module ida_idd: + + Resume a suspended thread Available if DBG_HAS_THREAD_CONTINUE is set + +Documentation on variable debugger_t.ev_set_resume_mode in module ida_idd: + + Specify resume action Available if DBG_HAS_SET_RESUME_MODE is set + +Documentation on variable debugger_t.ev_read_registers in module ida_idd: + + Read thread registers. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_write_register in module ida_idd: + + Write one thread register. This event is generated in debthread. Must be + implemented. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_thread_get_sreg_base in module ida_idd: + + Get information about the base of a segment register. Currently used by the IBM + PC module to resolve references like fs:0. This event is generated in debthread. + Available if DBG_HAS_THREAD_GET_SREG_BASE is set + + @return: DRC_NONE, DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_get_memory_info in module ida_idd: + + Get information on the memory ranges. The debugger module fills 'ranges'. The + returned vector must be sorted. This event is generated in debthread. Must be + implemented. + + @retval DRC_OK: new memory layout is returned + @retval DRC_FAILED,DRC_NETERR,DRC_NOPROC,DRC_NOCHG,DRC_IDBSEG + +Documentation on variable debugger_t.ev_read_memory in module ida_idd: + + Read process memory. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NOPROC + +Documentation on variable debugger_t.ev_write_memory in module ida_idd: + + Write process memory. This event is generated in debthread. + + @retval DRC_OK,DRC_FAILED,DRC_NOPROC + +Documentation on variable debugger_t.ev_check_bpt in module ida_idd: + + Is it possible to set breakpoint? This event is generated in debthread or in the + main thread if debthread is not running yet. It is generated to verify hardware + breakpoints. Available if DBG_HAS_CHECK_BPT is set + + @return: DRC_OK, DRC_NONE + +Documentation on variable debugger_t.ev_update_bpts in module ida_idd: + + Add/del breakpoints. bpts array contains nadd bpts to add, followed by ndel bpts + to del. This event is generated in debthread. + + @return: DRC_OK, DRC_FAILED, DRC_NETERR + +Documentation on variable debugger_t.ev_update_lowcnds in module ida_idd: + + Update low-level (server side) breakpoint conditions. This event is generated in + debthread. + + @return: DRC_OK, DRC_NETERR + +Documentation on variable debugger_t.ev_open_file in module ida_idd: + + @retval (int): handle + @retval -1: error + +Documentation on variable debugger_t.ev_close_file in module ida_idd: + + @return: ignored + +Documentation on variable debugger_t.ev_read_file in module ida_idd: + + @retval number: of read bytes + +Documentation on variable debugger_t.ev_write_file in module ida_idd: + + @retval number: of written bytes + +Documentation on variable debugger_t.ev_map_address in module ida_idd: + + Map process address. The debugger module may ignore this event. This event is + generated in debthread. IDA will generate this event only if DBG_HAS_MAP_ADDRESS + is set. + + @return: DRC_NONE, DRC_OK see MAPPED + +Documentation on variable debugger_t.ev_get_debmod_extensions in module ida_idd: + + Get pointer to debugger specific events. This event returns a pointer to a + structure that holds pointers to debugger module specific events. For + information on the structure layout, please check the corresponding debugger + module. Most debugger modules return nullptr because they do not have any + extensions. Available extensions may be generated from plugins. This event is + generated in the main thread. + + @return: DRC_NONE, DRC_OK see EXT + +Documentation on variable debugger_t.ev_update_call_stack in module ida_idd: + + Calculate the call stack trace for the given thread. This event is generated + when the process is suspended and should fill the 'trace' object with the + information about the current call stack. If this event returns DRC_NONE, IDA + will try to invoke a processor-specific mechanism (see + processor_t::ev_update_call_stack). If the current processor module does not + implement stack tracing, then IDA will fall back to a generic algorithm (based + on the frame pointer chain) to calculate the trace. This event is ideal if the + debugging targets manage stack frames in a peculiar way, requiring special + analysis. This event is generated in the main thread. Available if + DBG_HAS_UPDATE_CALL_STACK is set + + @retval DRC_NONE: false or not implemented + @return: DRC_OK success + +Documentation on variable debugger_t.ev_appcall in module ida_idd: + + Call application function. This event calls a function from the debugged + application. This event is generated in debthread Available if HAS_APPCALL is + set + + @retval DRC_NONE + @retval DRC_OK,see: BLOB_EA + +Documentation on variable debugger_t.ev_cleanup_appcall in module ida_idd: + + Cleanup after appcall(). The debugger module must keep the stack blob in the + memory until this event is generated. It will be generated by the kernel for + each successful appcall(). There is an exception: if APPCALL_MANUAL, IDA may not + call cleanup_appcall. If the user selects to terminate a manual appcall, then + cleanup_appcall will be generated. Otherwise, the debugger module should + terminate the appcall when the generated event returns. This event is generated + in debthread. Available if HAS_APPCALL is set + + @retval DRC_EVENTS: success, there are pending events + @retval DRC_OK: success + @retval DRC_FAILED: failed + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_eval_lowcnd in module ida_idd: + + Evaluate a low level breakpoint condition at 'ea'. Other evaluation errors are + displayed in a dialog box. This call is used by IDA when the process has already + been temporarily suspended for some reason and IDA has to decide whether the + process should be resumed or definitely suspended because of a breakpoint with a + low level condition. This event is generated in debthread. + + @retval DRC_OK: condition is satisfied + @retval DRC_FAILED: not satisfied + @retval DRC_NETERR: network error + +Documentation on variable debugger_t.ev_send_ioctl in module ida_idd: + + Perform a debugger-specific event. This event is generated in debthread + + @retval DRC_... + +Documentation on variable debugger_t.ev_dbg_enable_trace in module ida_idd: + + Enable/Disable tracing. The kernel will generated this event if the debugger + plugin set DBG_FLAG_TRACER_MODULE. TRACE_FLAGS can be a set of #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE. This event is generated in the main + thread. + + @return: DRC_OK, DRC_FAILED, DRC_NONE + +Documentation on variable debugger_t.ev_is_tracing_enabled in module ida_idd: + + Is tracing enabled? The kernel will generated this event if the debugger plugin + set DBG_FLAG_TRACER_MODULE. TRACE_BIT can be one of the following: #STEP_TRACE, + #INSN_TRACE, #BBLK_TRACE or #FUNC_TRACE + + @retval DRC_OK: bit is set + @retval DRC_NONE: bit is not set or not implemented + +Documentation on variable debugger_t.ev_rexec in module ida_idd: + + Execute a command on the remote computer. Available if DBG_HAS_REXEC is set + + @return: (int) exit code + +Documentation on variable debugger_t.ev_get_srcinfo_path in module ida_idd: + + Get the path to a file containing source debug info for the given module. This + allows srcinfo providers to call into the debugger when looking for debug info. + It is useful in certain cases like the iOS debugger, which is a remote debugger + but the remote debugserver does not provide dwarf info. So, we allow the + debugger client to decide where to look for debug info locally. + + @return: DRC_NONE, DRC_OK result stored in PATH + +Documentation on variable debugger_t.ev_bin_search in module ida_idd: + + Search for a binary pattern in the program. + + @return: DRC_OK EA contains the binary pattern address + @retval DRC_FAILED: not found + @retval DRC_NONE: not implemented + @retval DRC_NETERR,DRC_ERROR + +Documentation on variable debugger_t.registers in module ida_idd: + + Array of registers. Use regs() to access it. + +Documentation on variable debugger_t.nregs in module ida_idd: + + Number of registers. + +Documentation on variable debugger_t.regclasses in module ida_idd: + + Array of register class names. + +Documentation on variable debugger_t.bpt_bytes in module ida_idd: + + A software breakpoint instruction. + +Documentation on variable DEBUGGER_ID_X86_IA32_WIN32_USER in module ida_idd: + + Userland win32 processes (win32 debugging APIs) + +Documentation on variable DEBUGGER_ID_X86_IA32_LINUX_USER in module ida_idd: + + Userland linux processes (ptrace()) + +Documentation on variable DEBUGGER_ID_X86_IA32_MACOSX_USER in module ida_idd: + + Userland MAC OS X processes. + +Documentation on variable DEBUGGER_ID_ARM_IPHONE_USER in module ida_idd: + + iPhone 1.x + +Documentation on variable DEBUGGER_ID_X86_IA32_BOCHS in module ida_idd: + + BochsDbg.exe 32. + +Documentation on variable DEBUGGER_ID_6811_EMULATOR in module ida_idd: + + MC6812 emulator (beta) + +Documentation on variable DEBUGGER_ID_GDB_USER in module ida_idd: + + GDB remote. + +Documentation on variable DEBUGGER_ID_WINDBG in module ida_idd: + + WinDBG using Microsoft Debug engine. + +Documentation on variable DEBUGGER_ID_X86_DOSBOX_EMULATOR in module ida_idd: + + Dosbox MS-DOS emulator. + +Documentation on variable DEBUGGER_ID_ARM_LINUX_USER in module ida_idd: + + Userland arm linux. + +Documentation on variable DEBUGGER_ID_TRACE_REPLAYER in module ida_idd: + + Fake debugger to replay recorded traces. + +Documentation on variable DEBUGGER_ID_X86_PIN_TRACER in module ida_idd: + + PIN Tracer module. + +Documentation on variable DEBUGGER_ID_DALVIK_USER in module ida_idd: + + Dalvik. + +Documentation on variable DEBUGGER_ID_XNU_USER in module ida_idd: + + XNU Kernel. + +Documentation on variable DEBUGGER_ID_ARM_MACOS_USER in module ida_idd: + + Userland arm MAC OS. + +Documentation on variable DBG_FLAG_REMOTE in module ida_idd: + + Remote debugger (requires remote host name unless DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_NOHOST in module ida_idd: + + Remote debugger with does not require network params (host/port/pass). (a unique + device connected to the machine) + +Documentation on variable DBG_FLAG_FAKE_ATTACH in module ida_idd: + + PROCESS_ATTACHED is a fake event and does not suspend the execution + +Documentation on variable DBG_FLAG_HWDATBPT_ONE in module ida_idd: + + Hardware data breakpoints are one byte size by default + +Documentation on variable DBG_FLAG_CAN_CONT_BPT in module ida_idd: + + Debugger knows to continue from a bpt. This flag also means that the debugger + module hides breakpoints from ida upon read_memory + +Documentation on variable DBG_FLAG_NEEDPORT in module ida_idd: + + Remote debugger requires port number (to be used with DBG_FLAG_NOHOST) + +Documentation on variable DBG_FLAG_DONT_DISTURB in module ida_idd: + + Debugger can handle only get_debug_event(), request_pause(), exit_process() when + the debugged process is running. The kernel may also call service functions + (file I/O, map_address, etc) + +Documentation on variable DBG_FLAG_SAFE in module ida_idd: + + The debugger is safe (probably because it just emulates the application without + really running it) + +Documentation on variable DBG_FLAG_CLEAN_EXIT in module ida_idd: + + IDA must suspend the application and remove all breakpoints before terminating + the application. Usually this is not required because the application memory + disappears upon termination. + +Documentation on variable DBG_FLAG_USE_SREGS in module ida_idd: + + Take segment register values into account (non flat memory) + +Documentation on variable DBG_FLAG_NOSTARTDIR in module ida_idd: + + Debugger module doesn't use startup directory. + +Documentation on variable DBG_FLAG_NOPARAMETERS in module ida_idd: + + Debugger module doesn't use commandline parameters. + +Documentation on variable DBG_FLAG_NOPASSWORD in module ida_idd: + + Remote debugger doesn't use password. + +Documentation on variable DBG_FLAG_CONNSTRING in module ida_idd: + + Display "Connection string" instead of "Hostname" and hide the "Port" field. + +Documentation on variable DBG_FLAG_SMALLBLKS in module ida_idd: + + If set, IDA uses 256-byte blocks for caching memory contents. Otherwise, + 1024-byte blocks are used + +Documentation on variable DBG_FLAG_MANMEMINFO in module ida_idd: + + If set, manual memory region manipulation commands will be available. Use this + bit for debugger modules that cannot return memory layout information + +Documentation on variable DBG_FLAG_EXITSHOTOK in module ida_idd: + + IDA may take a memory snapshot at PROCESS_EXITED event. + +Documentation on variable DBG_FLAG_VIRTHREADS in module ida_idd: + + Thread IDs may be shuffled after each debug event. (to be used for virtual + threads that represent cpus for windbg kmode) + +Documentation on variable DBG_FLAG_LOWCNDS in module ida_idd: + + Low level breakpoint conditions are supported. + +Documentation on variable DBG_FLAG_DEBTHREAD in module ida_idd: + + Supports creation of a separate thread in ida for the debugger (the debthread). + Most debugger functions will be called from debthread (exceptions are marked + below) The debugger module may directly call only THREAD_SAFE functions. To call + other functions please use execute_sync(). The debthread significantly increases + debugging speed, especially if debug events occur frequently. + +Documentation on variable DBG_FLAG_DEBUG_DLL in module ida_idd: + + Can debug standalone DLLs. For example, Bochs debugger can debug any snippet of + code + +Documentation on variable DBG_FLAG_FAKE_MEMORY in module ida_idd: + + get_memory_info()/read_memory()/write_memory() work with the idb. (there is no + real process to read from, as for the replayer module) the kernel will not call + these functions if this flag is set. however, third party plugins may call them, + they must be implemented. + +Documentation on variable DBG_FLAG_ANYSIZE_HWBPT in module ida_idd: + + The debugger supports arbitrary size hardware breakpoints. + +Documentation on variable DBG_FLAG_TRACER_MODULE in module ida_idd: + + The module is a tracer, not a full featured debugger module. + +Documentation on variable DBG_FLAG_PREFER_SWBPTS in module ida_idd: + + Prefer to use software breakpoints. + +Documentation on variable DBG_FLAG_LAZY_WATCHPTS in module ida_idd: + + Watchpoints are triggered before the offending instruction is executed. The + debugger must temporarily disable the watchpoint and single-step before + resuming. + +Documentation on variable DBG_FLAG_FAST_STEP in module ida_idd: + + Do not refresh memory layout info after single stepping. + +Documentation on variable DBG_HAS_GET_PROCESSES in module ida_idd: + + supports ev_get_processes + +Documentation on variable DBG_HAS_ATTACH_PROCESS in module ida_idd: + + supports ev_attach_process + +Documentation on variable DBG_HAS_DETACH_PROCESS in module ida_idd: + + supports ev_detach_process + +Documentation on variable DBG_HAS_REQUEST_PAUSE in module ida_idd: + + supports ev_request_pause + +Documentation on variable DBG_HAS_SET_EXCEPTION_INFO in module ida_idd: + + supports ev_set_exception_info + +Documentation on variable DBG_HAS_THREAD_SUSPEND in module ida_idd: + + supports ev_thread_suspend + +Documentation on variable DBG_HAS_THREAD_CONTINUE in module ida_idd: + + supports ev_thread_continue + +Documentation on variable DBG_HAS_SET_RESUME_MODE in module ida_idd: + + supports ev_set_resume_mode. Cannot be set inside the + debugger_t::init_debugger() + +Documentation on variable DBG_HAS_THREAD_GET_SREG_BASE in module ida_idd: + + supports ev_thread_get_sreg_base + +Documentation on variable DBG_HAS_CHECK_BPT in module ida_idd: + + supports ev_check_bpt + +Documentation on variable DBG_HAS_OPEN_FILE in module ida_idd: + + supports ev_open_file, ev_close_file, ev_read_file, ev_write_file + +Documentation on variable DBG_HAS_UPDATE_CALL_STACK in module ida_idd: + + supports ev_update_call_stack + +Documentation on variable DBG_HAS_APPCALL in module ida_idd: + + supports ev_appcall, ev_cleanup_appcall + +Documentation on variable DBG_HAS_REXEC in module ida_idd: + + supports ev_rexec + +Documentation on variable DBG_HAS_MAP_ADDRESS in module ida_idd: + + supports ev_map_address. Avoid using this bit, especially together with + DBG_FLAG_DEBTHREAD because it may cause big slow downs + +Documentation on variable DBG_RESMOD_STEP_INTO in module ida_idd: + + RESMOD_INTO is available + +Documentation on variable DBG_RESMOD_STEP_OVER in module ida_idd: + + RESMOD_OVER is available + +Documentation on variable DBG_RESMOD_STEP_OUT in module ida_idd: + + RESMOD_OUT is available + +Documentation on variable DBG_RESMOD_STEP_SRCINTO in module ida_idd: + + RESMOD_SRCINTO is available + +Documentation on variable DBG_RESMOD_STEP_SRCOVER in module ida_idd: + + RESMOD_SRCOVER is available + +Documentation on variable DBG_RESMOD_STEP_SRCOUT in module ida_idd: + + RESMOD_SRCOUT is available + +Documentation on variable DBG_RESMOD_STEP_USER in module ida_idd: + + RESMOD_USER is available + +Documentation on variable DBG_RESMOD_STEP_HANDLE in module ida_idd: + + RESMOD_HANDLE is available + +Documentation on variable DBG_PROC_IS_DLL in module ida_idd: + + database contains a dll (not exe) + +Documentation on variable DBG_PROC_IS_GUI in module ida_idd: + + using gui version of ida + +Documentation on variable DBG_PROC_32BIT in module ida_idd: + + application is 32-bit + +Documentation on variable DBG_PROC_64BIT in module ida_idd: + + application is 64-bit + +Documentation on variable DBG_NO_TRACE in module ida_idd: + + do not trace the application (mac/linux) + +Documentation on variable DBG_HIDE_WINDOW in module ida_idd: + + application should be hidden on startup (windows) + +Documentation on variable DBG_SUSPENDED in module ida_idd: + + application should be suspended on startup (mac) + +Documentation on variable BPT_OK in module ida_idd: + + breakpoint can be set + +Documentation on variable BPT_INTERNAL_ERR in module ida_idd: + + interr occurred when verifying breakpoint + +Documentation on variable BPT_BAD_TYPE in module ida_idd: + + bpt type is not supported + +Documentation on variable BPT_BAD_ALIGN in module ida_idd: + + alignment is invalid + +Documentation on variable BPT_BAD_ADDR in module ida_idd: + + ea is invalid + +Documentation on variable BPT_BAD_LEN in module ida_idd: + + bpt len is invalid + +Documentation on variable BPT_TOO_MANY in module ida_idd: + + reached max number of supported breakpoints + +Documentation on variable BPT_READ_ERROR in module ida_idd: + + failed to read memory at bpt ea + +Documentation on variable BPT_WRITE_ERROR in module ida_idd: + + failed to write memory at bpt ea + +Documentation on variable BPT_SKIP in module ida_idd: + + update_bpts(): do not process bpt + +Documentation on variable BPT_PAGE_OK in module ida_idd: + + update_bpts(): ok, added a page bpt + +Documentation on variable APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run. debugger_t::cleanup_appcall will not be + generated by ida! + +Documentation on variable APPCALL_DEBEV in module ida_idd: + + Return debug event information. + +Documentation on variable APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout. If timed out, errbuf will contain "timeout". See + SET_APPCALL_TIMEOUT and GET_APPCALL_TIMEOUT + +Documentation on variable NO_PROCESS in module ida_idd: + + No process. + +Documentation on variable Appcall_callable__.timeout in module ida_idd: + + An Appcall instance can change its timeout value with this attribute + +Documentation on variable Appcall_callable__.options in module ida_idd: + + Sets the Appcall options locally to this Appcall instance + +Documentation on variable Appcall_callable__.ea in module ida_idd: + + Returns or sets the EA associated with this object + +Documentation on variable Appcall_callable__.tif in module ida_idd: + + Returns the tinfo_t object + +Documentation on variable Appcall_callable__.size in module ida_idd: + + Returns the size of the type + +Documentation on variable Appcall_callable__.type in module ida_idd: + + Returns the typestring + +Documentation on variable Appcall_callable__.fields in module ida_idd: + + Returns the field names + +Documentation on variable Appcall__.APPCALL_MANUAL in module ida_idd: + + Only set up the appcall, do not run it. + you should call CleanupAppcall() when finished + +Documentation on variable Appcall__.APPCALL_DEBEV in module ida_idd: + + Return debug event information + If this bit is set, exceptions during appcall + will generate idc exceptions with full + information about the exception + +Documentation on variable Appcall__.APPCALL_TIMEOUT in module ida_idd: + + Appcall with timeout + The timeout value in milliseconds is specified + in the high 2 bytes of the 'options' argument: + If timed out, errbuf will contain "timeout". + +Documentation on variable Appcall__.Consts in module ida_idd: + + Use Appcall.Consts.CONST_NAME to access constants + +Documentation on variable IDP_INTERFACE_VERSION in module ida_idp: + + The interface version number. + @note: see also IDA_SDK_VERSION from pro.h + +Documentation on variable CF_STOP in module ida_idp: + + Instruction doesn't pass execution to the next instruction + +Documentation on variable CF_CALL in module ida_idp: + + CALL instruction (should make a procedure here) + +Documentation on variable CF_CHG1 in module ida_idp: + + The instruction modifies the first operand. + +Documentation on variable CF_CHG2 in module ida_idp: + + The instruction modifies the second operand. + +Documentation on variable CF_CHG3 in module ida_idp: + + The instruction modifies the third operand. + +Documentation on variable CF_CHG4 in module ida_idp: + + The instruction modifies 4 operand. + +Documentation on variable CF_CHG5 in module ida_idp: + + The instruction modifies 5 operand. + +Documentation on variable CF_CHG6 in module ida_idp: + + The instruction modifies 6 operand. + +Documentation on variable CF_USE1 in module ida_idp: + + The instruction uses value of the first operand. + +Documentation on variable CF_USE2 in module ida_idp: + + The instruction uses value of the second operand. + +Documentation on variable CF_USE3 in module ida_idp: + + The instruction uses value of the third operand. + +Documentation on variable CF_USE4 in module ida_idp: + + The instruction uses value of the 4 operand. + +Documentation on variable CF_USE5 in module ida_idp: + + The instruction uses value of the 5 operand. + +Documentation on variable CF_USE6 in module ida_idp: + + The instruction uses value of the 6 operand. + +Documentation on variable CF_JUMP in module ida_idp: + + The instruction passes execution using indirect jump or call (thus needs + additional analysis) + +Documentation on variable CF_SHFT in module ida_idp: + + Bit-shift instruction (shl,shr...) + +Documentation on variable CF_HLL in module ida_idp: + + Instruction may be present in a high level language function + +Documentation on variable CF_CHG7 in module ida_idp: + + The instruction modifies the 7th operand. + +Documentation on variable CF_CHG8 in module ida_idp: + + The instruction modifies the 8th operand. + +Documentation on variable CF_USE7 in module ida_idp: + + The instruction uses value of the 7th operand. + +Documentation on variable CF_USE8 in module ida_idp: + + The instruction uses value of the 8th operand. + +Documentation on variable asm_t.flag in module ida_idp: + + Assembler feature bits + +Documentation on variable asm_t.uflag in module ida_idp: + + user defined flags (local only for IDP) you may define and use your own bits + +Documentation on variable asm_t.name in module ida_idp: + + Assembler name (displayed in menus) + +Documentation on variable asm_t.help in module ida_idp: + + Help screen number, 0 - no help. + +Documentation on variable asm_t.header in module ida_idp: + + array of automatically generated header lines they appear at the start of + disassembled text + +Documentation on variable asm_t.origin in module ida_idp: + + org directive + +Documentation on variable asm_t.end in module ida_idp: + + end directive + +Documentation on variable asm_t.cmnt in module ida_idp: + + comment string (see also cmnt2) + +Documentation on variable asm_t.ascsep in module ida_idp: + + string literal delimiter + +Documentation on variable asm_t.accsep in module ida_idp: + + char constant delimiter + +Documentation on variable asm_t.esccodes in module ida_idp: + + special chars that cannot appear as is in string and char literals + +Documentation on variable asm_t.a_ascii in module ida_idp: + + string literal directive + +Documentation on variable asm_t.a_byte in module ida_idp: + + byte directive + +Documentation on variable asm_t.a_word in module ida_idp: + + word directive + +Documentation on variable asm_t.a_dword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_qword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_oword in module ida_idp: + + nullptr if not allowed + +Documentation on variable asm_t.a_float in module ida_idp: + + float; 4bytes; nullptr if not allowed + +Documentation on variable asm_t.a_double in module ida_idp: + + double; 8bytes; nullptr if not allowed + +Documentation on variable asm_t.a_tbyte in module ida_idp: + + long double; nullptr if not allowed + +Documentation on variable asm_t.a_packreal in module ida_idp: + + packed decimal real nullptr if not allowed + +Documentation on variable asm_t.a_dups in module ida_idp: + + array keyword. the following sequences may appear: + * #h header + * #d size + * #v value + * #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, + float,double,oword + +Documentation on variable asm_t.a_bss in module ida_idp: + + uninitialized data directive should include 's' for the size of data + +Documentation on variable asm_t.a_equ in module ida_idp: + + 'equ' Used if AS_UNEQU is set + +Documentation on variable asm_t.a_seg in module ida_idp: + + 'seg ' prefix (example: push seg seg001) + +Documentation on variable asm_t.a_curip in module ida_idp: + + current IP (instruction pointer) symbol in assembler + +Documentation on variable asm_t.a_public in module ida_idp: + + "public" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_weak in module ida_idp: + + "weak" name keyword. nullptr-use default, ""-do not generate + +Documentation on variable asm_t.a_extrn in module ida_idp: + + "extern" name keyword + +Documentation on variable asm_t.a_comdef in module ida_idp: + + "comm" (communal variable) + +Documentation on variable asm_t.a_align in module ida_idp: + + "align" keyword + +Documentation on variable asm_t.lbrace in module ida_idp: + + left brace used in complex expressions + +Documentation on variable asm_t.rbrace in module ida_idp: + + right brace used in complex expressions + +Documentation on variable asm_t.a_mod in module ida_idp: + + % mod assembler time operation + +Documentation on variable asm_t.a_band in module ida_idp: + + & bit and assembler time operation + +Documentation on variable asm_t.a_bor in module ida_idp: + + | bit or assembler time operation + +Documentation on variable asm_t.a_xor in module ida_idp: + + ^ bit xor assembler time operation + +Documentation on variable asm_t.a_bnot in module ida_idp: + + ~ bit not assembler time operation + +Documentation on variable asm_t.a_shl in module ida_idp: + + << shift left assembler time operation + +Documentation on variable asm_t.a_shr in module ida_idp: + + >> shift right assembler time operation + +Documentation on variable asm_t.a_sizeof_fmt in module ida_idp: + + size of type (format string) + +Documentation on variable asm_t.flag2 in module ida_idp: + + Secondary assembler feature bits + +Documentation on variable asm_t.cmnt2 in module ida_idp: + + comment close string (usually nullptr) this is used to denote a string which + closes comments, for example, if the comments are represented with (* ... *) + then cmnt = "(*" and cmnt2 = "*)" + +Documentation on variable asm_t.low8 in module ida_idp: + + low8 operation, should contain s for the operand + +Documentation on variable asm_t.high8 in module ida_idp: + + high8 + +Documentation on variable asm_t.low16 in module ida_idp: + + low16 + +Documentation on variable asm_t.high16 in module ida_idp: + + high16 + +Documentation on variable asm_t.a_include_fmt in module ida_idp: + + the include directive (format string) + +Documentation on variable asm_t.a_vstruc_fmt in module ida_idp: + + if a named item is a structure and displayed in the verbose (multiline) form + then display the name as printf(a_strucname_fmt, typename) (for asms with type + checking, e.g. tasm ideal) + +Documentation on variable asm_t.a_rva in module ida_idp: + + 'rva' keyword for image based offsets (see REFINFO_RVAOFF) + +Documentation on variable asm_t.a_yword in module ida_idp: + + 32-byte (256-bit) data; nullptr if not allowed requires AS2_YWORD + +Documentation on variable asm_t.a_zword in module ida_idp: + + 64-byte (512-bit) data; nullptr if not allowed requires AS2_ZWORD + +Documentation on variable AS_OFFST in module ida_idp: + + offsets are 'offset xxx' ? + +Documentation on variable AS_COLON in module ida_idp: + + create colons after data names ? + +Documentation on variable AS_UDATA in module ida_idp: + + can use '?' in data directives + +Documentation on variable AS_2CHRE in module ida_idp: + + double char constants are: "xy + +Documentation on variable AS_NCHRE in module ida_idp: + + char constants are: 'x + +Documentation on variable AS_N2CHR in module ida_idp: + + can't have 2 byte char consts + +Documentation on variable AS_1TEXT in module ida_idp: + + 1 text per line, no bytes + +Documentation on variable AS_NHIAS in module ida_idp: + + no characters with high bit + +Documentation on variable AS_NCMAS in module ida_idp: + + no commas in ascii directives + +Documentation on variable AS_HEXFM in module ida_idp: + + mask - hex number format + +Documentation on variable ASH_HEXF0 in module ida_idp: + + 34h + +Documentation on variable ASH_HEXF1 in module ida_idp: + + h'34 + +Documentation on variable ASH_HEXF2 in module ida_idp: + + 34 + +Documentation on variable ASH_HEXF3 in module ida_idp: + + 0x34 + +Documentation on variable ASH_HEXF4 in module ida_idp: + + $34 + +Documentation on variable ASH_HEXF5 in module ida_idp: + + <^R > (radix) + +Documentation on variable AS_DECFM in module ida_idp: + + mask - decimal number format + +Documentation on variable ASD_DECF0 in module ida_idp: + + 34 + +Documentation on variable ASD_DECF1 in module ida_idp: + + #34 + +Documentation on variable ASD_DECF2 in module ida_idp: + + 34. + +Documentation on variable ASD_DECF3 in module ida_idp: + + .34 + +Documentation on variable AS_OCTFM in module ida_idp: + + mask - octal number format + +Documentation on variable ASO_OCTF0 in module ida_idp: + + 123o + +Documentation on variable ASO_OCTF1 in module ida_idp: + + 0123 + +Documentation on variable ASO_OCTF2 in module ida_idp: + + 123 + +Documentation on variable ASO_OCTF3 in module ida_idp: + + @123 + +Documentation on variable ASO_OCTF4 in module ida_idp: + + o'123 + +Documentation on variable ASO_OCTF5 in module ida_idp: + + 123q + +Documentation on variable ASO_OCTF6 in module ida_idp: + + ~123 + +Documentation on variable ASO_OCTF7 in module ida_idp: + + q'123 + +Documentation on variable AS_BINFM in module ida_idp: + + mask - binary number format + +Documentation on variable ASB_BINF0 in module ida_idp: + + 010101b + +Documentation on variable ASB_BINF1 in module ida_idp: + + ^B010101 + +Documentation on variable ASB_BINF2 in module ida_idp: + + %010101 + +Documentation on variable ASB_BINF3 in module ida_idp: + + 0b1010101 + +Documentation on variable ASB_BINF4 in module ida_idp: + + b'1010101 + +Documentation on variable ASB_BINF5 in module ida_idp: + + b'1010101' + +Documentation on variable AS_UNEQU in module ida_idp: + + replace undefined data items with EQU (for ANTA's A80) + +Documentation on variable AS_ONEDUP in module ida_idp: + + One array definition per line. + +Documentation on variable AS_NOXRF in module ida_idp: + + Disable xrefs during the output file generation. + +Documentation on variable AS_XTRNTYPE in module ida_idp: + + Assembler understands type of extern symbols as ":type" suffix. + +Documentation on variable AS_RELSUP in module ida_idp: + + Checkarg: 'and','or','xor' operations with addresses are possible. + +Documentation on variable AS_LALIGN in module ida_idp: + + Labels at "align" keyword are supported. + +Documentation on variable AS_NOCODECLN in module ida_idp: + + don't create colons after code names + +Documentation on variable AS_NOSPACE in module ida_idp: + + No spaces in expressions. + +Documentation on variable AS_ALIGN2 in module ida_idp: + + .align directive expects an exponent rather than a power of 2 (.align 5 means to + align at 32byte boundary) + +Documentation on variable AS_ASCIIC in module ida_idp: + + ascii directive accepts C-like escape sequences (\n,\x01 and similar) + +Documentation on variable AS_ASCIIZ in module ida_idp: + + ascii directive inserts implicit zero byte at the end + +Documentation on variable AS2_BRACE in module ida_idp: + + Use braces for all expressions. + +Documentation on variable AS2_STRINV in module ida_idp: + + Invert meaning of idainfo::wide_high_byte_first for text strings (for processors + with bytes bigger than 8 bits) + +Documentation on variable AS2_BYTE1CHAR in module ida_idp: + + One symbol per processor byte. Meaningful only for wide byte processors + +Documentation on variable AS2_IDEALDSCR in module ida_idp: + + Description of struc/union is in the 'reverse' form (keyword before name), the + same as in borland tasm ideal + +Documentation on variable AS2_TERSESTR in module ida_idp: + + 'terse' structure initialization form; NAME<fld,fld,...> is supported + +Documentation on variable AS2_COLONSUF in module ida_idp: + + addresses may have ":xx" suffix; this suffix must be ignored when extracting the + address under the cursor + +Documentation on variable AS2_YWORD in module ida_idp: + + a_yword field is present and valid + +Documentation on variable AS2_ZWORD in module ida_idp: + + a_zword field is present and valid + +Documentation on variable HKCB_GLOBAL in module ida_idp: + + is global event listener? if true, the listener will survive database closing + and opening. it will stay in the memory until explicitly unhooked. otherwise the + kernel will delete it as soon as the owner is unloaded. should be used only with + PLUGIN_FIX plugins. + +Documentation on variable PLFM_386 in module ida_idp: + + Intel 80x86. + +Documentation on variable PLFM_Z80 in module ida_idp: + + 8085, Z80 + +Documentation on variable PLFM_I860 in module ida_idp: + + Intel 860. + +Documentation on variable PLFM_8051 in module ida_idp: + + 8051 + +Documentation on variable PLFM_TMS in module ida_idp: + + Texas Instruments TMS320C5x. + +Documentation on variable PLFM_6502 in module ida_idp: + + 6502 + +Documentation on variable PLFM_PDP in module ida_idp: + + PDP11. + +Documentation on variable PLFM_68K in module ida_idp: + + Motorola 680x0. + +Documentation on variable PLFM_JAVA in module ida_idp: + + Java. + +Documentation on variable PLFM_6800 in module ida_idp: + + Motorola 68xx. + +Documentation on variable PLFM_ST7 in module ida_idp: + + SGS-Thomson ST7. + +Documentation on variable PLFM_MC6812 in module ida_idp: + + Motorola 68HC12. + +Documentation on variable PLFM_MIPS in module ida_idp: + + MIPS. + +Documentation on variable PLFM_ARM in module ida_idp: + + Advanced RISC Machines. + +Documentation on variable PLFM_TMSC6 in module ida_idp: + + Texas Instruments TMS320C6x. + +Documentation on variable PLFM_PPC in module ida_idp: + + PowerPC. + +Documentation on variable PLFM_80196 in module ida_idp: + + Intel 80196. + +Documentation on variable PLFM_Z8 in module ida_idp: + + Z8. + +Documentation on variable PLFM_SH in module ida_idp: + + Renesas (formerly Hitachi) SuperH. + +Documentation on variable PLFM_NET in module ida_idp: + + Microsoft Visual Studio.Net. + +Documentation on variable PLFM_AVR in module ida_idp: + + Atmel 8-bit RISC processor(s) + +Documentation on variable PLFM_H8 in module ida_idp: + + Hitachi H8/300, H8/2000. + +Documentation on variable PLFM_PIC in module ida_idp: + + Microchip's PIC. + +Documentation on variable PLFM_SPARC in module ida_idp: + + SPARC. + +Documentation on variable PLFM_ALPHA in module ida_idp: + + DEC Alpha. + +Documentation on variable PLFM_HPPA in module ida_idp: + + Hewlett-Packard PA-RISC. + +Documentation on variable PLFM_H8500 in module ida_idp: + + Hitachi H8/500. + +Documentation on variable PLFM_TRICORE in module ida_idp: + + Tasking Tricore. + +Documentation on variable PLFM_DSP56K in module ida_idp: + + Motorola DSP5600x. + +Documentation on variable PLFM_C166 in module ida_idp: + + Siemens C166 family. + +Documentation on variable PLFM_ST20 in module ida_idp: + + SGS-Thomson ST20. + +Documentation on variable PLFM_IA64 in module ida_idp: + + Intel Itanium IA64. + +Documentation on variable PLFM_I960 in module ida_idp: + + Intel 960. + +Documentation on variable PLFM_F2MC in module ida_idp: + + Fujistu F2MC-16. + +Documentation on variable PLFM_TMS320C54 in module ida_idp: + + Texas Instruments TMS320C54xx. + +Documentation on variable PLFM_TMS320C55 in module ida_idp: + + Texas Instruments TMS320C55xx. + +Documentation on variable PLFM_TRIMEDIA in module ida_idp: + + Trimedia. + +Documentation on variable PLFM_M32R in module ida_idp: + + Mitsubishi 32bit RISC. + +Documentation on variable PLFM_NEC_78K0 in module ida_idp: + + NEC 78K0. + +Documentation on variable PLFM_NEC_78K0S in module ida_idp: + + NEC 78K0S. + +Documentation on variable PLFM_M740 in module ida_idp: + + Mitsubishi 8bit. + +Documentation on variable PLFM_M7700 in module ida_idp: + + Mitsubishi 16bit. + +Documentation on variable PLFM_ST9 in module ida_idp: + + ST9+. + +Documentation on variable PLFM_FR in module ida_idp: + + Fujitsu FR Family. + +Documentation on variable PLFM_MC6816 in module ida_idp: + + Motorola 68HC16. + +Documentation on variable PLFM_M7900 in module ida_idp: + + Mitsubishi 7900. + +Documentation on variable PLFM_TMS320C3 in module ida_idp: + + Texas Instruments TMS320C3. + +Documentation on variable PLFM_KR1878 in module ida_idp: + + Angstrem KR1878. + +Documentation on variable PLFM_AD218X in module ida_idp: + + Analog Devices ADSP 218X. + +Documentation on variable PLFM_OAKDSP in module ida_idp: + + Atmel OAK DSP. + +Documentation on variable PLFM_TLCS900 in module ida_idp: + + Toshiba TLCS-900. + +Documentation on variable PLFM_C39 in module ida_idp: + + Rockwell C39. + +Documentation on variable PLFM_CR16 in module ida_idp: + + NSC CR16. + +Documentation on variable PLFM_MN102L00 in module ida_idp: + + Panasonic MN10200. + +Documentation on variable PLFM_TMS320C1X in module ida_idp: + + Texas Instruments TMS320C1x. + +Documentation on variable PLFM_NEC_V850X in module ida_idp: + + NEC V850 and V850ES/E1/E2. + +Documentation on variable PLFM_SCR_ADPT in module ida_idp: + + Processor module adapter for processor modules written in scripting languages. + +Documentation on variable PLFM_EBC in module ida_idp: + + EFI Bytecode. + +Documentation on variable PLFM_MSP430 in module ida_idp: + + Texas Instruments MSP430. + +Documentation on variable PLFM_SPU in module ida_idp: + + Cell Broadband Engine Synergistic Processor Unit. + +Documentation on variable PLFM_DALVIK in module ida_idp: + + Android Dalvik Virtual Machine. + +Documentation on variable PLFM_65C816 in module ida_idp: + + 65802/65816 + +Documentation on variable PLFM_M16C in module ida_idp: + + Renesas M16C. + +Documentation on variable PLFM_ARC in module ida_idp: + + Argonaut RISC Core. + +Documentation on variable PLFM_UNSP in module ida_idp: + + SunPlus unSP. + +Documentation on variable PLFM_TMS320C28 in module ida_idp: + + Texas Instruments TMS320C28x. + +Documentation on variable PLFM_DSP96K in module ida_idp: + + Motorola DSP96000. + +Documentation on variable PLFM_SPC700 in module ida_idp: + + Sony SPC700. + +Documentation on variable PLFM_AD2106X in module ida_idp: + + Analog Devices ADSP 2106X. + +Documentation on variable PLFM_PIC16 in module ida_idp: + + Microchip's 16-bit PIC. + +Documentation on variable PLFM_S390 in module ida_idp: + + IBM's S390. + +Documentation on variable PLFM_XTENSA in module ida_idp: + + Tensilica Xtensa. + +Documentation on variable PLFM_RISCV in module ida_idp: + + RISC-V. + +Documentation on variable PLFM_RL78 in module ida_idp: + + Renesas RL78. + +Documentation on variable PLFM_RX in module ida_idp: + + Renesas RX. + +Documentation on variable PR_SEGS in module ida_idp: + + has segment registers? + +Documentation on variable PR_USE32 in module ida_idp: + + supports 32-bit addressing? + +Documentation on variable PR_DEFSEG32 in module ida_idp: + + segments are 32-bit by default + +Documentation on variable PR_RNAMESOK in module ida_idp: + + allow user register names for location names + +Documentation on variable PR_ADJSEGS in module ida_idp: + + IDA may adjust segments' starting/ending addresses. + +Documentation on variable PR_DEFNUM in module ida_idp: + + mask - default number representation + +Documentation on variable PRN_HEX in module ida_idp: + + hex + +Documentation on variable PRN_OCT in module ida_idp: + + octal + +Documentation on variable PRN_DEC in module ida_idp: + + decimal + +Documentation on variable PRN_BIN in module ida_idp: + + binary + +Documentation on variable PR_WORD_INS in module ida_idp: + + instruction codes are grouped 2bytes in binary line prefix + +Documentation on variable PR_NOCHANGE in module ida_idp: + + The user can't change segments and code/data attributes (display only) + +Documentation on variable PR_ASSEMBLE in module ida_idp: + + Module has a built-in assembler and will react to ev_assemble. + +Documentation on variable PR_ALIGN in module ida_idp: + + All data items should be aligned properly. + +Documentation on variable PR_TYPEINFO in module ida_idp: + + the processor module fully supports type information callbacks; without full + support, function argument locations and other things will probably be wrong. + +Documentation on variable PR_USE64 in module ida_idp: + + supports 64-bit addressing? + +Documentation on variable PR_SGROTHER in module ida_idp: + + the segment registers don't contain the segment selectors. + +Documentation on variable PR_STACK_UP in module ida_idp: + + the stack grows up + +Documentation on variable PR_BINMEM in module ida_idp: + + the processor module provides correct segmentation for binary files (i.e. it + creates additional segments). The kernel will not ask the user to specify the + RAM/ROM sizes + +Documentation on variable PR_SEGTRANS in module ida_idp: + + the processor module supports the segment translation feature (meaning it + calculates the code addresses using the map_code_ea() function) + +Documentation on variable PR_CHK_XREF in module ida_idp: + + don't allow near xrefs between segments with different bases + +Documentation on variable PR_NO_SEGMOVE in module ida_idp: + + the processor module doesn't support move_segm() (i.e. the user can't move + segments) + +Documentation on variable PR_USE_ARG_TYPES in module ida_idp: + + use processor_t::use_arg_types callback + +Documentation on variable PR_SCALE_STKVARS in module ida_idp: + + use processor_t::get_stkvar_scale callback + +Documentation on variable PR_DELAYED in module ida_idp: + + has delayed jumps and calls. If this flag is set, + processor_t::is_basic_block_end, processor_t::delay_slot_insn should be + implemented + +Documentation on variable PR_ALIGN_INSN in module ida_idp: + + allow ida to create alignment instructions arbitrarily. Since these instructions + might lead to other wrong instructions and spoil the listing, IDA does not + create them by default anymore + +Documentation on variable PR_PURGING in module ida_idp: + + there are calling conventions which may purge bytes from the stack + +Documentation on variable PR_CNDINSNS in module ida_idp: + + has conditional instructions + +Documentation on variable PR_USE_TBYTE in module ida_idp: + + BTMT_SPECFLT means _TBYTE type + +Documentation on variable PR_DEFSEG64 in module ida_idp: + + segments are 64-bit by default + +Documentation on variable PR_OUTER in module ida_idp: + + has outer operands (currently only mc68k) + +Documentation on variable PR2_MAPPINGS in module ida_idp: + + the processor module uses memory mapping + +Documentation on variable PR2_IDP_OPTS in module ida_idp: + + the module has processor-specific configuration options + +Documentation on variable PR2_REALCVT in module ida_idp: + + the module has a custom 'ev_realcvt' implementation (otherwise IEEE-754 format + is assumed) + +Documentation on variable PR2_CODE16_BIT in module ida_idp: + + low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 + +Documentation on variable PR2_MACRO in module ida_idp: + + processor supports macro instructions + +Documentation on variable PR2_USE_CALCREL in module ida_idp: + + (Lumina) the module supports calcrel info + +Documentation on variable PR2_REL_BITS in module ida_idp: + + (Lumina) calcrel info has bits granularity, not bytes - construction flag only + +Documentation on variable PR2_FORCE_16BIT in module ida_idp: + + use 16-bit basic types despite of 32-bit segments (used by c166) + +Documentation on variable OP_FP_BASED in module ida_idp: + + operand is FP based + +Documentation on variable OP_SP_BASED in module ida_idp: + + operand is SP based + +Documentation on variable OP_SP_ADD in module ida_idp: + + operand value is added to the pointer + +Documentation on variable OP_SP_SUB in module ida_idp: + + operand value is subtracted from the pointer + +Documentation on variable CUSTOM_INSN_ITYPE in module ida_idp: + + Custom instruction codes defined by processor extension plugins must be greater + than or equal to this + +Documentation on variable REG_SPOIL in module ida_idp: + + processor_t::use_regarg_type uses this bit in the return value to indicate that + the register value has been spoiled + +Documentation on variable reg_info_t.reg in module ida_idp: + + register number + +Documentation on variable reg_info_t.size in module ida_idp: + + register size + +Documentation on variable reg_access_t.regnum in module ida_idp: + + register number (only entire registers) + +Documentation on variable reg_access_t.range in module ida_idp: + + bitrange inside the register + +Documentation on variable reg_access_t.opnum in module ida_idp: + + operand number + +Documentation on variable SETPROC_IDB in module ida_idp: + + set processor type for old idb + +Documentation on variable SETPROC_LOADER in module ida_idp: + + set processor type for new idb; if the user has specified a compatible + processor, return success without changing it. if failure, call loader_failure() + +Documentation on variable SETPROC_LOADER_NON_FATAL in module ida_idp: + + the same as SETPROC_LOADER but non-fatal failures. + +Documentation on variable SETPROC_USER in module ida_idp: + + set user-specified processor used for -p and manual processor change at later + time + +Documentation on variable FPV_BADARG in module ida_ieee: + + wrong value of max_exp + +Documentation on variable FPV_NORM in module ida_ieee: + + regular value + +Documentation on variable FPV_NAN in module ida_ieee: + + NaN. + +Documentation on variable FPV_PINF in module ida_ieee: + + positive infinity + +Documentation on variable FPV_NINF in module ida_ieee: + + negative infinity + +Documentation on variable REAL_ERROR_OK in module ida_ieee: + + no error + +Documentation on variable REAL_ERROR_FPOVER in module ida_ieee: + + floating overflow or underflow + +Documentation on variable REAL_ERROR_INTOVER in module ida_ieee: + + eetol*: integer overflow + +Documentation on variable IEEE_EXONE in module ida_ieee: + + The exponent of 1.0. + +Documentation on variable E_SPECIAL_EXP in module ida_ieee: + + Exponent in fpvalue_t for NaN and Inf. + +Documentation on variable mbox_internal in module ida_kernwin: + + internal error + +Documentation on variable chtype_generic in module ida_kernwin: + + the generic choose() function + +Documentation on variable chtype_idasgn in module ida_kernwin: + + see choose_idasgn() + +Documentation on variable chtype_entry in module ida_kernwin: + + see choose_entry() + +Documentation on variable chtype_name in module ida_kernwin: + + see choose_name() + +Documentation on variable chtype_stkvar_xref in module ida_kernwin: + + see choose_stkvar_xref() + +Documentation on variable chtype_xref in module ida_kernwin: + + see choose_xref() + +Documentation on variable chtype_enum in module ida_kernwin: + + see choose_enum() + +Documentation on variable chtype_enum_by_value in module ida_kernwin: + + Deprecated. See chtype_enum_by_value_and_size. + +Documentation on variable chtype_func in module ida_kernwin: + + see choose_func() + +Documentation on variable chtype_segm in module ida_kernwin: + + see choose_segm() + +Documentation on variable chtype_struc in module ida_kernwin: + + see choose_struc() + +Documentation on variable chtype_strpath in module ida_kernwin: + + see choose_struc_path() + +Documentation on variable chtype_idatil in module ida_kernwin: + + see choose_til() + +Documentation on variable chtype_enum_by_value_and_size in module ida_kernwin: + + see choose_enum_by_value() + +Documentation on variable chtype_srcp in module ida_kernwin: + + see choose_srcp() + +Documentation on variable TCCRT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCRT_FLAT in module ida_kernwin: + + flat view + +Documentation on variable TCCRT_GRAPH in module ida_kernwin: + + graph view + +Documentation on variable TCCRT_PROXIMITY in module ida_kernwin: + + proximity view + +Documentation on variable TCCPT_INVALID in module ida_kernwin: + + invalid + +Documentation on variable TCCPT_PLACE in module ida_kernwin: + + place_t + +Documentation on variable TCCPT_SIMPLELINE_PLACE in module ida_kernwin: + + simpleline_place_t + +Documentation on variable TCCPT_IDAPLACE in module ida_kernwin: + + idaplace_t + +Documentation on variable TCCPT_ENUMPLACE in module ida_kernwin: + + enumplace_t + +Documentation on variable TCCPT_STRUCTPLACE in module ida_kernwin: + + structplace_t + +Documentation on variable VME_UNKNOWN in module ida_kernwin: + + unknown mouse button + +Documentation on variable VME_LEFT_BUTTON in module ida_kernwin: + + left mouse button + +Documentation on variable VME_RIGHT_BUTTON in module ida_kernwin: + + right mouse button + +Documentation on variable VME_MID_BUTTON in module ida_kernwin: + + middle mouse button + +Documentation on variable SETMENU_INS in module ida_kernwin: + + add menu item before the specified path (default) + +Documentation on variable SETMENU_APP in module ida_kernwin: + + add menu item after the specified path + +Documentation on variable SETMENU_FIRST in module ida_kernwin: + + add item to the beginning of menu + +Documentation on variable SETMENU_ENSURE_SEP in module ida_kernwin: + + make sure there is a separator before the action + +Documentation on variable CREATETB_ADV in module ida_kernwin: + + toolbar is for 'advanced mode' only + +Documentation on variable HIF_IDENTIFIER in module ida_kernwin: + + text is an identifier (i.e., when searching for the current highlight, + SEARCH_IDENT will be used) + +Documentation on variable HIF_REGISTER in module ida_kernwin: + + text represents a register (aliases/subregisters will be highlit as well) + +Documentation on variable HIF_LOCKED in module ida_kernwin: + + locked; clicking/moving the cursor around doesn't change the highlight + +Documentation on variable HIF_NOCASE in module ida_kernwin: + + case insensitive + +Documentation on variable HIF_USE_SLOT in module ida_kernwin: + + use the given number, or just use the "floating" highlight + +Documentation on variable HIF_SLOT_SHIFT in module ida_kernwin: + + position of the 3 top bits specifying which highlight to use + +Documentation on variable HIF_SLOT_0 in module ida_kernwin: + + operate on slot 0 + +Documentation on variable HIF_SLOT_1 in module ida_kernwin: + + operate on slot 1 + +Documentation on variable HIF_SLOT_2 in module ida_kernwin: + + operate on slot 2 + +Documentation on variable HIF_SLOT_3 in module ida_kernwin: + + operate on slot 3 + +Documentation on variable HIF_SLOT_4 in module ida_kernwin: + + operate on slot 4 + +Documentation on variable HIF_SLOT_5 in module ida_kernwin: + + operate on slot 5 + +Documentation on variable HIF_SLOT_6 in module ida_kernwin: + + operate on slot 6 + +Documentation on variable HIF_SLOT_7 in module ida_kernwin: + + operate on slot 7 + +Documentation on variable CDVF_NOLINES in module ida_kernwin: + + don't show line numbers + +Documentation on variable CDVF_LINEICONS in module ida_kernwin: + + icons can be drawn over the line control + +Documentation on variable CDVF_STATUSBAR in module ida_kernwin: + + keep the status bar in the custom viewer + +Documentation on variable IDCHK_OK in module ida_kernwin: + + ok + +Documentation on variable IDCHK_ARG in module ida_kernwin: + + bad argument(s) + +Documentation on variable IDCHK_KEY in module ida_kernwin: + + bad hotkey name + +Documentation on variable IDCHK_MAX in module ida_kernwin: + + too many IDC hotkeys + +Documentation on variable WCLS_SAVE in module ida_kernwin: + + save state in desktop config + +Documentation on variable WCLS_NO_CONTEXT in module ida_kernwin: + + don't change the current context (useful for toolbars) + +Documentation on variable WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + don't save size of the window + +Documentation on variable WCLS_DELETE_LATER in module ida_kernwin: + + assign the deletion of the widget to the UI loop ///< + +Documentation on variable DP_LEFT in module ida_kernwin: + + Dock src_form to the left of dest_form. + +Documentation on variable DP_TOP in module ida_kernwin: + + Dock src_form above dest_form. + +Documentation on variable DP_RIGHT in module ida_kernwin: + + Dock src_form to the right of dest_form. + +Documentation on variable DP_BOTTOM in module ida_kernwin: + + Dock src_form below dest_form. + +Documentation on variable DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both src_form and dest_form. + +Documentation on variable DP_TAB in module ida_kernwin: + + Place src_form into a tab next to dest_form, if dest_form is in a tab bar + (otherwise the same as DP_INSIDE) + +Documentation on variable DP_BEFORE in module ida_kernwin: + + Place src_form before dst_form in the tab bar instead of after; used with + DP_INSIDE or DP_TAB. + +Documentation on variable DP_FLOATING in module ida_kernwin: + + Make src_form floating. + +Documentation on variable DP_SZHINT in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable SVF_COPY_LINES in module ida_kernwin: + + keep a local copy of '*lines' + +Documentation on variable SVF_LINES_BYPTR in module ida_kernwin: + + remember the 'lines' ptr. do not make a copy of '*lines' + +Documentation on variable CVNF_LAZY in module ida_kernwin: + + try and move the cursor to a line displaying the place_t if possible. This might + disregard the Y position in case of success + +Documentation on variable CVNF_JUMP in module ida_kernwin: + + push the current position in this viewer's lochist_t before going to the new + location + +Documentation on variable CVNF_ACT in module ida_kernwin: + + activate (i.e., switch to) the viewer. Activation is performed before the new + lochist_entry_t instance is actually copied to the viewer's lochist_t + (otherwise, if the viewer was invisible its on_location_changed() handler + wouldn't be called.) + +Documentation on variable WOPN_RESTORE in module ida_kernwin: + + if the widget was the only widget in a floating area the last time it was + closed, it will be restored as floating, with the same position+size as before + +Documentation on variable WOPN_PERSIST in module ida_kernwin: + + widget will remain available when starting or stopping debugger sessions + +Documentation on variable WOPN_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will close + +Documentation on variable WOPN_NOT_CLOSED_BY_ESC in module ida_kernwin: + + override idagui.cfg:CLOSED_BY_ESC: esc will not close + +Documentation on variable WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl. + +Documentation on variable WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl. + +Documentation on variable WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl. + +Documentation on variable WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl. + +Documentation on variable WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl. + +Documentation on variable WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar + (otherwise the same as WOPN_DP_INSIDE) + +Documentation on variable WOPN_DP_BEFORE in module ida_kernwin: + + Place widget before dst_form in the tab bar instead of after; used with + WOPN_DP_INSIDE and WOPN_DP_TAB + +Documentation on variable WOPN_DP_FLOATING in module ida_kernwin: + + Make widget floating. + +Documentation on variable WOPN_DP_SZHINT in module ida_kernwin: + + when floating or in a splitter (i.e., not tabbed), use the widget's size hint to + determine the best geometry (Qt only) + +Documentation on variable RENADDR_IDA in module ida_kernwin: + + dialog for "IDA View" + +Documentation on variable RENADDR_HR in module ida_kernwin: + + dialog for "Pseudocode"; additional flags: + * 0x01 Library function + * 0x02 Mark as decompiled + +Documentation on variable place_t.lnnum in module ida_kernwin: + + Number of line within the current object. + +Documentation on variable simpleline_t.line in module ida_kernwin: + + line text + +Documentation on variable simpleline_t.color in module ida_kernwin: + + line prefix color + +Documentation on variable simpleline_t.bgcolor in module ida_kernwin: + + line background color + +Documentation on variable simpleline_place_t.n in module ida_kernwin: + + line number + +Documentation on variable idaplace_t.ea in module ida_kernwin: + + address + +Documentation on variable enumplace_t.idx in module ida_kernwin: + + enum serial number + +Documentation on variable enumplace_t.bmask in module ida_kernwin: + + enum member bitmask + +Documentation on variable enumplace_t.value in module ida_kernwin: + + enum member value + +Documentation on variable enumplace_t.serial in module ida_kernwin: + + enum member serial number + +Documentation on variable structplace_t.idx in module ida_kernwin: + + struct serial number + +Documentation on variable structplace_t.offset in module ida_kernwin: + + offset within struct + +Documentation on variable PCF_EA_CAPABLE in module ida_kernwin: + + toea() implementation returns meaningful data + +Documentation on variable PCF_MAKEPLACE_ALLOCATES in module ida_kernwin: + + makeplace() returns a freshly allocated (i.e., non-static) instance. All new + code should pass that flag to register_place_class(), and the corresponding + makeplace() class implementation should return new instances. + +Documentation on variable twinpos_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinpos_t.x in module ida_kernwin: + + cursor x + +Documentation on variable twinline_t.at in module ida_kernwin: + + location in view + +Documentation on variable twinline_t.line in module ida_kernwin: + + line contents + +Documentation on variable twinline_t.prefix_color in module ida_kernwin: + + line prefix color + +Documentation on variable twinline_t.bg_color in module ida_kernwin: + + line background color + +Documentation on variable twinline_t.is_default in module ida_kernwin: + + is this the default line of the current location? + +Documentation on variable lines_rendering_input_t.sections_lines in module ida_kernwin: + + references to the lines that are used for rendering + +Documentation on variable lines_rendering_input_t.sync_group in module ida_kernwin: + + the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or + nullptr + +Documentation on variable CK_TRACE in module ida_kernwin: + + traced address + +Documentation on variable CK_TRACE_OVL in module ida_kernwin: + + overlay trace address + +Documentation on variable CK_EXTRA1 in module ida_kernwin: + + extra background overlay #1 + +Documentation on variable CK_EXTRA2 in module ida_kernwin: + + extra background overlay #2 + +Documentation on variable CK_EXTRA3 in module ida_kernwin: + + extra background overlay #3 + +Documentation on variable CK_EXTRA4 in module ida_kernwin: + + extra background overlay #4 + +Documentation on variable CK_EXTRA5 in module ida_kernwin: + + extra background overlay #5 + +Documentation on variable CK_EXTRA6 in module ida_kernwin: + + extra background overlay #6 + +Documentation on variable CK_EXTRA7 in module ida_kernwin: + + extra background overlay #7 + +Documentation on variable CK_EXTRA8 in module ida_kernwin: + + extra background overlay #8 + +Documentation on variable CK_EXTRA9 in module ida_kernwin: + + extra background overlay #9 + +Documentation on variable CK_EXTRA10 in module ida_kernwin: + + extra background overlay #10 + +Documentation on variable CK_EXTRA11 in module ida_kernwin: + + extra background overlay #11 + +Documentation on variable CK_EXTRA12 in module ida_kernwin: + + extra background overlay #12 + +Documentation on variable CK_EXTRA13 in module ida_kernwin: + + extra background overlay #13 + +Documentation on variable CK_EXTRA14 in module ida_kernwin: + + extra background overlay #14 + +Documentation on variable CK_EXTRA15 in module ida_kernwin: + + extra background overlay #15 + +Documentation on variable CK_EXTRA16 in module ida_kernwin: + + extra background overlay #16 + +Documentation on variable LROEF_FULL_LINE in module ida_kernwin: + + full line background + +Documentation on variable LROEF_CPS_RANGE in module ida_kernwin: + + background for range of chars + +Documentation on variable line_rendering_output_entry_t.flags in module ida_kernwin: + + line_rendering_output_entry_t flags + +Documentation on variable line_rendering_output_entry_t.cpx in module ida_kernwin: + + number of char to start from, valid if LROEF_CPS_RANGE + +Documentation on variable line_rendering_output_entry_t.nchars in module ida_kernwin: + + chars count, valid if LROEF_CPS_RANGE + +Documentation on variable BWN_UNKNOWN in module ida_kernwin: + + unknown window + +Documentation on variable BWN_EXPORTS in module ida_kernwin: + + exports + +Documentation on variable BWN_IMPORTS in module ida_kernwin: + + imports + +Documentation on variable BWN_NAMES in module ida_kernwin: + + names + +Documentation on variable BWN_FUNCS in module ida_kernwin: + + functions + +Documentation on variable BWN_STRINGS in module ida_kernwin: + + strings + +Documentation on variable BWN_SEGS in module ida_kernwin: + + segments + +Documentation on variable BWN_SEGREGS in module ida_kernwin: + + segment registers + +Documentation on variable BWN_SELS in module ida_kernwin: + + selectors + +Documentation on variable BWN_SIGNS in module ida_kernwin: + + signatures + +Documentation on variable BWN_TILS in module ida_kernwin: + + type libraries + +Documentation on variable BWN_LOCTYPS in module ida_kernwin: + + local types + +Documentation on variable BWN_CALLS in module ida_kernwin: + + function calls + +Documentation on variable BWN_PROBS in module ida_kernwin: + + problems + +Documentation on variable BWN_BPTS in module ida_kernwin: + + breakpoints + +Documentation on variable BWN_THREADS in module ida_kernwin: + + threads + +Documentation on variable BWN_MODULES in module ida_kernwin: + + modules + +Documentation on variable BWN_TRACE in module ida_kernwin: + + tracing view + +Documentation on variable BWN_CALL_STACK in module ida_kernwin: + + call stack + +Documentation on variable BWN_XREFS in module ida_kernwin: + + xrefs + +Documentation on variable BWN_SEARCH in module ida_kernwin: + + search results + +Documentation on variable BWN_FRAME in module ida_kernwin: + + function frame + +Documentation on variable BWN_NAVBAND in module ida_kernwin: + + navigation band + +Documentation on variable BWN_ENUMS in module ida_kernwin: + + enumerations + +Documentation on variable BWN_STRUCTS in module ida_kernwin: + + structures + +Documentation on variable BWN_DISASM in module ida_kernwin: + + disassembly views + +Documentation on variable BWN_DUMP in module ida_kernwin: + + hex dumps + +Documentation on variable BWN_NOTEPAD in module ida_kernwin: + + notepad + +Documentation on variable BWN_OUTPUT in module ida_kernwin: + + the text area, in the output window + +Documentation on variable BWN_CLI in module ida_kernwin: + + the command-line, in the output window + +Documentation on variable BWN_WATCH in module ida_kernwin: + + the 'watches' debugger window + +Documentation on variable BWN_LOCALS in module ida_kernwin: + + the 'locals' debugger window + +Documentation on variable BWN_STKVIEW in module ida_kernwin: + + the 'Stack view' debugger window + +Documentation on variable BWN_CHOOSER in module ida_kernwin: + + a non-builtin chooser + +Documentation on variable BWN_SHORTCUTCSR in module ida_kernwin: + + the shortcuts chooser (Qt version only) + +Documentation on variable BWN_SHORTCUTWIN in module ida_kernwin: + + the shortcuts window (Qt version only) + +Documentation on variable BWN_CPUREGS in module ida_kernwin: + + one of the 'General registers', 'FPU register', ... debugger windows + +Documentation on variable BWN_SO_STRUCTS in module ida_kernwin: + + the 'Structure offsets' dialog's 'Structures and Unions' panel + +Documentation on variable BWN_SO_OFFSETS in module ida_kernwin: + + the 'Structure offsets' dialog's offset panel + +Documentation on variable BWN_CMDPALCSR in module ida_kernwin: + + the command palette chooser (Qt version only) + +Documentation on variable BWN_CMDPALWIN in module ida_kernwin: + + the command palette window (Qt version only) + +Documentation on variable BWN_SNIPPETS in module ida_kernwin: + + the 'Execute script' window + +Documentation on variable BWN_CUSTVIEW in module ida_kernwin: + + custom viewers + +Documentation on variable BWN_ADDRWATCH in module ida_kernwin: + + the 'Watch List' window + +Documentation on variable BWN_PSEUDOCODE in module ida_kernwin: + + hexrays decompiler views + +Documentation on variable BWN_CALLS_CALLERS in module ida_kernwin: + + function calls, callers + +Documentation on variable BWN_CALLS_CALLEES in module ida_kernwin: + + function calls, callees + +Documentation on variable BWN_MDVIEWCSR in module ida_kernwin: + + lumina metadata view chooser + +Documentation on variable BWN_DISASM_ARROWS in module ida_kernwin: + + disassembly arrows widget + +Documentation on variable BWN_CV_LINE_INFOS in module ida_kernwin: + + custom viewers' lineinfo widget + +Documentation on variable BWN_SRCPTHMAP_CSR in module ida_kernwin: + + "Source paths..."'s path mappings chooser + +Documentation on variable BWN_SRCPTHUND_CSR in module ida_kernwin: + + "Source paths..."'s undesired paths chooser + +Documentation on variable BWN_UNDOHIST in module ida_kernwin: + + Undo history. + +Documentation on variable BWN_SNIPPETS_CSR in module ida_kernwin: + + the list of snippets in the 'Execute script' window + +Documentation on variable BWN_SCRIPTS_CSR in module ida_kernwin: + + the "Recent scripts" chooser + +Documentation on variable BWN_BOOKMARKS in module ida_kernwin: + + a persistent 'Bookmarks' widget + +Documentation on variable BWN_STACK in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DISASMS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_DUMPS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable BWN_SEARCHS in module ida_kernwin: + + Alias. Some BWN_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable IWID_EXPORTS in module ida_kernwin: + + exports (0) + +Documentation on variable IWID_IMPORTS in module ida_kernwin: + + imports (1) + +Documentation on variable IWID_NAMES in module ida_kernwin: + + names (2) + +Documentation on variable IWID_FUNCS in module ida_kernwin: + + functions (3) + +Documentation on variable IWID_STRINGS in module ida_kernwin: + + strings (4) + +Documentation on variable IWID_SEGS in module ida_kernwin: + + segments (5) + +Documentation on variable IWID_SEGREGS in module ida_kernwin: + + segment registers (6) + +Documentation on variable IWID_SELS in module ida_kernwin: + + selectors (7) + +Documentation on variable IWID_SIGNS in module ida_kernwin: + + signatures (8) + +Documentation on variable IWID_TILS in module ida_kernwin: + + type libraries (9) + +Documentation on variable IWID_LOCTYPS in module ida_kernwin: + + local types (10) + +Documentation on variable IWID_CALLS in module ida_kernwin: + + function calls (11) + +Documentation on variable IWID_PROBS in module ida_kernwin: + + problems (12) + +Documentation on variable IWID_BPTS in module ida_kernwin: + + breakpoints (13) + +Documentation on variable IWID_THREADS in module ida_kernwin: + + threads (14) + +Documentation on variable IWID_MODULES in module ida_kernwin: + + modules (15) + +Documentation on variable IWID_TRACE in module ida_kernwin: + + tracing view (16) + +Documentation on variable IWID_CALL_STACK in module ida_kernwin: + + call stack (17) + +Documentation on variable IWID_XREFS in module ida_kernwin: + + xrefs (18) + +Documentation on variable IWID_SEARCH in module ida_kernwin: + + search results (19) + +Documentation on variable IWID_FRAME in module ida_kernwin: + + function frame (25) + +Documentation on variable IWID_NAVBAND in module ida_kernwin: + + navigation band (26) + +Documentation on variable IWID_ENUMS in module ida_kernwin: + + enumerations (27) + +Documentation on variable IWID_STRUCTS in module ida_kernwin: + + structures (28) + +Documentation on variable IWID_DISASM in module ida_kernwin: + + disassembly views (29) + +Documentation on variable IWID_DUMP in module ida_kernwin: + + hex dumps (30) + +Documentation on variable IWID_NOTEPAD in module ida_kernwin: + + notepad (31) + +Documentation on variable IWID_OUTPUT in module ida_kernwin: + + output (32) + +Documentation on variable IWID_CLI in module ida_kernwin: + + input line (33) + +Documentation on variable IWID_WATCH in module ida_kernwin: + + watches (34) + +Documentation on variable IWID_LOCALS in module ida_kernwin: + + locals (35) + +Documentation on variable IWID_STKVIEW in module ida_kernwin: + + stack view (36) + +Documentation on variable IWID_CHOOSER in module ida_kernwin: + + chooser (37) + +Documentation on variable IWID_SHORTCUTCSR in module ida_kernwin: + + shortcuts chooser (38) + +Documentation on variable IWID_SHORTCUTWIN in module ida_kernwin: + + shortcuts window (39) + +Documentation on variable IWID_CPUREGS in module ida_kernwin: + + registers (40) + +Documentation on variable IWID_SO_STRUCTS in module ida_kernwin: + + stroff (41) + +Documentation on variable IWID_SO_OFFSETS in module ida_kernwin: + + stroff (42) + +Documentation on variable IWID_CMDPALCSR in module ida_kernwin: + + command palette (43) + +Documentation on variable IWID_CMDPALWIN in module ida_kernwin: + + command palette (44) + +Documentation on variable IWID_SNIPPETS in module ida_kernwin: + + snippets (45) + +Documentation on variable IWID_CUSTVIEW in module ida_kernwin: + + custom viewers (46) + +Documentation on variable IWID_ADDRWATCH in module ida_kernwin: + + address watches (47) + +Documentation on variable IWID_PSEUDOCODE in module ida_kernwin: + + decompiler (48) + +Documentation on variable IWID_CALLS_CALLERS in module ida_kernwin: + + funcalls, callers (49) + +Documentation on variable IWID_CALLS_CALLEES in module ida_kernwin: + + funcalls, callees (50) + +Documentation on variable IWID_MDVIEWCSR in module ida_kernwin: + + lumina md view (51) + +Documentation on variable IWID_DISASM_ARROWS in module ida_kernwin: + + arrows widget (52) + +Documentation on variable IWID_CV_LINE_INFOS in module ida_kernwin: + + lineinfo widget (53) + +Documentation on variable IWID_SRCPTHMAP_CSR in module ida_kernwin: + + mappings chooser (54) + +Documentation on variable IWID_SRCPTHUND_CSR in module ida_kernwin: + + undesired chooser (55) + +Documentation on variable IWID_UNDOHIST in module ida_kernwin: + + Undo history (56) + +Documentation on variable IWID_SNIPPETS_CSR in module ida_kernwin: + + snippets chooser (57) + +Documentation on variable IWID_SCRIPTS_CSR in module ida_kernwin: + + recent scripts (58) + +Documentation on variable IWID_BOOKMARKS in module ida_kernwin: + + bookmarks list (59) + +Documentation on variable IWID_ALL in module ida_kernwin: + + mask + +Documentation on variable IWID_STACK in module ida_kernwin: + + Alias. Some IWID_* were confusing, and thus have been renamed. This is to ensure + bw-compat. + +Documentation on variable AST_ENABLE_ALWAYS in module ida_kernwin: + + enable action and do not call action_handler_t::update() anymore + +Documentation on variable AST_ENABLE_FOR_IDB in module ida_kernwin: + + enable action for the current idb. call action_handler_t::update() when a + database is opened/closed + +Documentation on variable AST_ENABLE_FOR_WIDGET in module ida_kernwin: + + enable action for the current widget. call action_handler_t::update() when a + widget gets/loses focus + +Documentation on variable AST_ENABLE in module ida_kernwin: + + enable action - call action_handler_t::update() when anything changes + +Documentation on variable AST_DISABLE_ALWAYS in module ida_kernwin: + + disable action and do not call action_handler_t::action() anymore + +Documentation on variable AST_DISABLE_FOR_IDB in module ida_kernwin: + + analog of AST_ENABLE_FOR_IDB + +Documentation on variable AST_DISABLE_FOR_WIDGET in module ida_kernwin: + + analog of AST_ENABLE_FOR_WIDGET + +Documentation on variable AST_DISABLE in module ida_kernwin: + + analog of AST_ENABLE + +Documentation on variable CH_MODAL in module ida_kernwin: + + Modal chooser. + +Documentation on variable CH_KEEP in module ida_kernwin: + + The chooser instance's lifecycle is not tied to the lifecycle of the widget + showing its contents. Closing the widget will not destroy the chooser structure. + This allows for, e.g., static global chooser instances that don't need to be + allocated on the heap. Also stack-allocated chooser instances must set this bit. + +Documentation on variable CH_MULTI in module ida_kernwin: + + The chooser will allow multi-selection (only for GUI choosers). This bit is set + when using the chooser_multi_t structure. + +Documentation on variable CH_MULTI_EDIT in module ida_kernwin: + + Obsolete. + +Documentation on variable CH_NOBTNS in module ida_kernwin: + + do not display ok/cancel/help/search buttons. Meaningful only for gui modal + windows because non-modal windows do not have any buttons anyway. Text mode does + not have them neither. + +Documentation on variable CH_ATTRS in module ida_kernwin: + + generate ui_get_chooser_item_attrs (gui only) + +Documentation on variable CH_NOIDB in module ida_kernwin: + + use the chooser before opening the database + +Documentation on variable CH_FORCE_DEFAULT in module ida_kernwin: + + if a non-modal chooser was already open, change selection to the default one + +Documentation on variable CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable CH_QFTYP_DEFAULT in module ida_kernwin: + + set quick filtering type to the possible existing default for this chooser + +Documentation on variable CH_QFTYP_NORMAL in module ida_kernwin: + + normal (i.e., lexicographical) quick filter type + +Documentation on variable CH_QFTYP_WHOLE_WORDS in module ida_kernwin: + + whole words quick filter type + +Documentation on variable CH_QFTYP_REGEX in module ida_kernwin: + + regex quick filter type + +Documentation on variable CH_QFTYP_FUZZY in module ida_kernwin: + + fuzzy search quick filter type + +Documentation on variable CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version + only) + +Documentation on variable CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() + callback for the corresponding row. + +Documentation on variable CH_BUILTIN_MASK in module ida_kernwin: + + Mask for builtin chooser numbers. Plugins should not use them. + +Documentation on variable CH_HAS_DIRTREE in module ida_kernwin: + + The chooser can provide a dirtree_t, meaning a tree-like structure can be + provided to the user (instead of a flat table) + +Documentation on variable CH_TM_NO_TREE in module ida_kernwin: + + chooser will show up in no-tree mode + +Documentation on variable CH_TM_FOLDERS_ONLY in module ida_kernwin: + + chooser will show in folders-only mode + +Documentation on variable CH_TM_FULL_TREE in module ida_kernwin: + + chooser will show in no-tree mode + +Documentation on variable CH_HAS_DIFF in module ida_kernwin: + + The chooser can be used in a diffing/merging workflow. + +Documentation on variable CH_NO_SORT in module ida_kernwin: + + The chooser will not have sorting abilities. + +Documentation on variable CH_NO_FILTER in module ida_kernwin: + + The chooser will not have filtering abilities. + +Documentation on variable CH_NON_PERSISTED_TREE in module ida_kernwin: + + the chooser tree is not persisted (it is not loaded on startup and is not saved + on exit) + +Documentation on variable CH2_LAZY_LOADED in module ida_kernwin: + + The chooser is lazy-loaded; it receives the callback do_lazy_load_dir() (only + meaningful when CH_HAS_DIRTREE is set) + +Documentation on variable CHCOL_PLAIN in module ida_kernwin: + + plain string + +Documentation on variable CHCOL_PATH in module ida_kernwin: + + file path + +Documentation on variable CHCOL_HEX in module ida_kernwin: + + hexadecimal number + +Documentation on variable CHCOL_DEC in module ida_kernwin: + + decimal number + +Documentation on variable CHCOL_EA in module ida_kernwin: + + address + +Documentation on variable CHCOL_FNAME in module ida_kernwin: + + function name. If a chooser column has this flag set and implements + chooser_base_t::get_ea(), rows background colors will be automatically set to + match the navigator's "Library function", "Lumina function" and "External + symbol" colors + +Documentation on variable CHCOL_FORMAT in module ida_kernwin: + + column format mask + +Documentation on variable CHCOL_DEFHIDDEN in module ida_kernwin: + + column should be hidden by default + +Documentation on variable CHCOL_DRAGHINT in module ida_kernwin: + + the column number that will be used to build hints for the dragging undo label. + This should be provided for at most one column for any given chooser. + +Documentation on variable CHCOL_INODENAME in module ida_kernwin: + + if CH_HAS_DIRTREE has been specified, this instructs the chooser that this + column shows the inode name. This should be provided for at most one column for + any given chooser. + +Documentation on variable CHITEM_BOLD in module ida_kernwin: + + display the item in bold + +Documentation on variable CHITEM_ITALIC in module ida_kernwin: + + display the item in italic + +Documentation on variable CHITEM_UNDER in module ida_kernwin: + + underline the item + +Documentation on variable CHITEM_STRIKE in module ida_kernwin: + + strikeout the item + +Documentation on variable CHITEM_GRAY in module ida_kernwin: + + gray out the item + +Documentation on variable CHOOSER_NOMAINMENU in module ida_kernwin: + + do not display main menu + +Documentation on variable CHOOSER_NOSTATUSBAR in module ida_kernwin: + + do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead) + +Documentation on variable chooser_item_attrs_t.flags in module ida_kernwin: + + Chooser item property bits + +Documentation on variable chooser_item_attrs_t.color in module ida_kernwin: + + item color + +Documentation on variable chooser_stdact_desc_t.version in module ida_kernwin: + + to support the backward compatibility + +Documentation on variable chooser_stdact_desc_t.label in module ida_kernwin: + + see action_desc_t + +Documentation on variable chooser_base_t.x0 in module ida_kernwin: + + screen position, Functions: generic list choosers + +Documentation on variable chooser_base_t.width in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.height in module ida_kernwin: + + (in chars) + +Documentation on variable chooser_base_t.title in module ida_kernwin: + + menu title (includes ptr to help). May have chooser title prefixes (see "Chooser + title" above). + +Documentation on variable chooser_base_t.columns in module ida_kernwin: + + number of columns + +Documentation on variable chooser_base_t.widths in module ida_kernwin: + + column widths + * low 16 bits of each value hold the column width + * high 16 bits are flags (see Chooser column flags) + +Documentation on variable chooser_base_t.header in module ida_kernwin: + + header line; contains the tooltips, and column name for each of 'columns' + columns. When tooltips need to be provided, the syntax should be: + "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".) + +Documentation on variable chooser_base_t.icon in module ida_kernwin: + + default icon + +Documentation on variable chooser_base_t.popup_names in module ida_kernwin: + + array of custom labels of the standard actions. Used to replace labels for these + actions. + An empty name means that the default name will be used. + @note: Availability of these actions is determined by the CH_CAN_... flags. The + label, icon and other action attributes can be overwritten in the action + description returned by get_stdact_descs() + +Documentation on variable chooser_base_t.deflt_col in module ida_kernwin: + + Column that will have focus. + +Documentation on variable CVH_KEYDOWN in module ida_kernwin: + + see custom_viewer_keydown_t + +Documentation on variable CVH_POPUP in module ida_kernwin: + + see custom_viewer_popup_t + +Documentation on variable CVH_DBLCLICK in module ida_kernwin: + + see custom_viewer_dblclick_t + +Documentation on variable CVH_CURPOS in module ida_kernwin: + + see custom_viewer_curpos_t + +Documentation on variable CVH_CLOSE in module ida_kernwin: + + see custom_viewer_close_t + +Documentation on variable CVH_CLICK in module ida_kernwin: + + see custom_viewer_click_t + +Documentation on variable CVH_QT_AWARE in module ida_kernwin: + + see set_custom_viewer_qt_aware() + +Documentation on variable CVH_HELP in module ida_kernwin: + + see custom_viewer_help_t + +Documentation on variable CVH_MOUSEMOVE in module ida_kernwin: + + see custom_viewer_mouse_moved_t + +Documentation on variable CDVH_USERDATA in module ida_kernwin: + + see set_code_viewer_user_data() + +Documentation on variable CDVH_SRCVIEW in module ida_kernwin: + + see set_code_viewer_is_source() + +Documentation on variable CDVH_LINES_CLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DBLCLICK in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_POPUP in module ida_kernwin: + + see code_viewer_lines_click_t + +Documentation on variable CDVH_LINES_DRAWICON in module ida_kernwin: + + see code_viewer_lines_icon_t + +Documentation on variable CDVH_LINES_LINENUM in module ida_kernwin: + + see code_viewer_lines_linenum_t + +Documentation on variable CDVH_LINES_ICONMARGIN in module ida_kernwin: + + see set_code_viewer_lines_icon_margin() + +Documentation on variable CDVH_LINES_RADIX in module ida_kernwin: + + see set_code_viewer_lines_radix() + +Documentation on variable CDVH_LINES_ALIGNMENT in module ida_kernwin: + + see set_code_viewer_lines_alignment() + +Documentation on variable VES_SHIFT in module ida_kernwin: + + state & 1 => Shift is pressed + state & 2 => Alt is pressed + state & 4 => Ctrl is pressed + state & 8 => Mouse left button is pressed + state & 16 => Mouse right button is pressed + state & 32 => Mouse middle button is pressed + state & 128 => Meta is pressed (OSX only) + +Documentation on variable msg_activated in module ida_kernwin: + + The message window is activated. + +Documentation on variable msg_deactivated in module ida_kernwin: + + The message window is deactivated. + +Documentation on variable msg_click in module ida_kernwin: + + Click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_dblclick in module ida_kernwin: + + Double click event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable msg_closed in module ida_kernwin: + + View closed. + +Documentation on variable msg_keydown in module ida_kernwin: + + Key down event. + + @retval 1: handled + @retval 0: not handled (invoke default handler) + +Documentation on variable renderer_pos_info_t.node in module ida_kernwin: + + the node, or -1 if the current renderer is not a graph renderer. + +Documentation on variable renderer_pos_info_t.cx in module ida_kernwin: + + the X coords of the character in the current line. When in graph mode: X coords + of the character in 'node'. + When in flat mode: X coords of the character in the line, w/o + taking scrolling into consideration. + +Documentation on variable renderer_pos_info_t.cy in module ida_kernwin: + + the Y coords of the character. When in graph mode: Y coords of the character in + 'node'. + When in flat mode: Line number, starting from the top. + +Documentation on variable renderer_pos_info_t.sx in module ida_kernwin: + + the number of chars that are scrolled (flat mode only) + +Documentation on variable view_mouse_event_location_t.ea in module ida_kernwin: + + flat view (rtype == TCCRT_FLAT) + +Documentation on variable view_mouse_event_location_t.item in module ida_kernwin: + + graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an + item. + +Documentation on variable view_mouse_event_t.rtype in module ida_kernwin: + + type of renderer that received the event + +Documentation on variable view_mouse_event_t.x in module ida_kernwin: + + screen x coordinate + +Documentation on variable view_mouse_event_t.y in module ida_kernwin: + + screen y coordinate + +Documentation on variable view_mouse_event_t.location in module ida_kernwin: + + location where event was generated + +Documentation on variable view_mouse_event_t.state in module ida_kernwin: + + contains information about what buttons are CURRENTLY pressed on the keyboard + and mouse. view_mouse_event_t instances created in functions like + mouseReleaseEvent() won't contain any information about the mouse, because it + has been released. + +Documentation on variable view_mouse_event_t.button in module ida_kernwin: + + represents which mouse button was responsible for generating the event. This + field does not care about the current state of the mouse. + +Documentation on variable view_mouse_event_t.renderer_pos in module ida_kernwin: + + position where event was generated, relative to the renderer + +Documentation on variable view_activated in module ida_kernwin: + + A view is activated + +Documentation on variable view_deactivated in module ida_kernwin: + + A view is deactivated + +Documentation on variable view_keydown in module ida_kernwin: + + Key down event + +Documentation on variable view_click in module ida_kernwin: + + Click event + +Documentation on variable view_dblclick in module ida_kernwin: + + Double click event + +Documentation on variable view_curpos in module ida_kernwin: + + Cursor position changed + +Documentation on variable view_created in module ida_kernwin: + + A view is being created. + +Documentation on variable view_close in module ida_kernwin: + + View closed + +Documentation on variable view_switched in module ida_kernwin: + + A view's renderer has changed. + +Documentation on variable view_mouse_over in module ida_kernwin: + + The user moved the mouse over (or out of) a node or an edge. This is only + relevant in a graph view. + +Documentation on variable view_loc_changed in module ida_kernwin: + + The location for the view has changed (can be either the place_t, the + renderer_info_t, or both.) + +Documentation on variable view_mouse_moved in module ida_kernwin: + + The mouse moved on the view + +Documentation on variable input_event_t.cb in module ida_kernwin: + + size marker + +Documentation on variable input_event_t.kind in module ida_kernwin: + + the kind of event + +Documentation on variable input_event_t.modifiers in module ida_kernwin: + + current keyboard (and mouse) modifiers + +Documentation on variable input_event_t.target in module ida_kernwin: + + the target widget + +Documentation on variable input_event_t.source in module ida_kernwin: + + the source event, should it be required for detailed inform (e.g., a QEvent in + the GUI version of IDA) + +Documentation on variable MFF_FAST in module ida_kernwin: + + execute code as soon as possible + this mode is ok call ui related functions + that do not query the database. + +Documentation on variable MFF_READ in module ida_kernwin: + + execute code only when ida is idle and it is safe to query the database. + this mode is recommended only for code that does not modify the database. + (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box) + +Documentation on variable MFF_WRITE in module ida_kernwin: + + execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is + a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ + +Documentation on variable MFF_NOWAIT in module ida_kernwin: + + Do not wait for the request to be executed. + he caller should ensure that the request is not + destroyed until the execution completes. + if not, the request will be ignored. + the return code of execute_sync() is meaningless + in this case. + This flag can be used to delay the code execution + until the next UI loop run even from the main thread + +Documentation on variable UIJMP_ACTIVATE in module ida_kernwin: + + activate the new window + +Documentation on variable UIJMP_DONTPUSH in module ida_kernwin: + + do not remember the current address in the navigation history + +Documentation on variable UIJMP_ANYVIEW in module ida_kernwin: + + jump in any ea_t-capable view + +Documentation on variable UIJMP_IDAVIEW in module ida_kernwin: + + jump in idaview + +Documentation on variable UIJMP_IDAVIEW_NEW in module ida_kernwin: + + jump in new idaview + +Documentation on variable action_ctx_base_cur_sel_t.to in module ida_kernwin: + + end of selection + +Documentation on variable action_ctx_base_t.widget_type in module ida_kernwin: + + type of current widget + +Documentation on variable action_ctx_base_t.widget_title in module ida_kernwin: + + title of current widget + +Documentation on variable action_ctx_base_t.chooser_selection in module ida_kernwin: + + current chooser selection (0-based) + +Documentation on variable action_ctx_base_t.action in module ida_kernwin: + + action name + +Documentation on variable action_ctx_base_t.cur_flags in module ida_kernwin: + + Current address information. see Action context property bits. + +Documentation on variable action_ctx_base_t.cur_ea in module ida_kernwin: + + the current EA of the position in the view + +Documentation on variable action_ctx_base_t.cur_value in module ida_kernwin: + + the possible address, or value the cursor is positioned on + +Documentation on variable action_ctx_base_t.cur_func in module ida_kernwin: + + the current function + +Documentation on variable action_ctx_base_t.cur_fchunk in module ida_kernwin: + + the current function chunk + +Documentation on variable action_ctx_base_t.cur_struc in module ida_kernwin: + + the current structure + +Documentation on variable action_ctx_base_t.cur_strmem in module ida_kernwin: + + the current structure member + +Documentation on variable action_ctx_base_t.cur_enum in module ida_kernwin: + + the current enum + +Documentation on variable action_ctx_base_t.cur_seg in module ida_kernwin: + + the current segment + +Documentation on variable action_ctx_base_t.cur_sel in module ida_kernwin: + + the currently selected range. also see ACF_HAS_SELECTION + +Documentation on variable action_ctx_base_t.regname in module ida_kernwin: + + register name (if widget_type == BWN_CPUREGS and context menu opened on + register) + +Documentation on variable action_ctx_base_t.focus in module ida_kernwin: + + The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' + input in choosers.) + +Documentation on variable action_ctx_base_t.graph_selection in module ida_kernwin: + + the current graph selection (if in a graph view) + +Documentation on variable action_ctx_base_t.dirtree_selection in module ida_kernwin: + + the current dirtree_t selection (if applicable) + +Documentation on variable action_ctx_base_t.source in module ida_kernwin: + + the underlying chooser_base_t (if 'widget' is a chooser widget) + +Documentation on variable ACF_HAS_SELECTION in module ida_kernwin: + + there is currently a valid selection + +Documentation on variable ACF_XTRN_EA in module ida_kernwin: + + cur_ea is in 'externs' segment + +Documentation on variable ACF_HAS_FIELD_DIRTREE_SELECTION in module ida_kernwin: + + 'cur_enum_member' and 'dirtree_selection' fields are present + +Documentation on variable ACF_HAS_SOURCE in module ida_kernwin: + + 'source' field is present + +Documentation on variable AHF_VERSION in module ida_kernwin: + + action handler version (used by action_handler_t::flags) + +Documentation on variable AHF_VERSION_MASK in module ida_kernwin: + + mask for action_handler_t::flags + +Documentation on variable action_desc_t.cb in module ida_kernwin: + + size of this structure + +Documentation on variable action_desc_t.name in module ida_kernwin: + + the internal name of the action; must be unique. a way to reduce possible + conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg". + +Documentation on variable action_desc_t.label in module ida_kernwin: + + the label of the action, possibly with an accelerator key definition (e.g., + "~J~ump to operand") + +Documentation on variable action_desc_t.owner in module ida_kernwin: + + either the plugin_t, or plugmod_t responsible for registering the action. Can be + nullptr Please see ACTION_DESC_LITERAL_PLUGMOD + +Documentation on variable action_desc_t.shortcut in module ida_kernwin: + + an optional shortcut definition. E.g., "Ctrl+Enter" + +Documentation on variable action_desc_t.tooltip in module ida_kernwin: + + an optional tooltip for the action + +Documentation on variable action_desc_t.icon in module ida_kernwin: + + an optional icon ID to use + +Documentation on variable action_desc_t.flags in module ida_kernwin: + + See Action flags. + +Documentation on variable ADF_OWN_HANDLER in module ida_kernwin: + + handler is owned by the action; it'll be destroyed when the action is + unregistered. Use DYNACTION_DESC_LITERAL to set this bit. + +Documentation on variable ADF_NO_UNDO in module ida_kernwin: + + the action does not create an undo point. useful for actions that do not modify + the database. + +Documentation on variable ADF_OT_MASK in module ida_kernwin: + + Owner type mask. + +Documentation on variable ADF_OT_PLUGIN in module ida_kernwin: + + Owner is a plugin_t. + +Documentation on variable ADF_OT_PLUGMOD in module ida_kernwin: + + Owner is a plugmod_t. + +Documentation on variable ADF_OT_PROCMOD in module ida_kernwin: + + Owner is a procmod_t. + +Documentation on variable ADF_GLOBAL in module ida_kernwin: + + Register the action globally, so that it's available even if no IDB is present + +Documentation on variable ADF_NO_HIGHLIGHT in module ida_kernwin: + + After activating, do not update the highlight according to what's under the + cursor (listings only.) + +Documentation on variable ADF_CHECKABLE in module ida_kernwin: + + action is checkable + +Documentation on variable ADF_CHECKED in module ida_kernwin: + + starts in a checked state (requires ADF_CHECKABLE) + +Documentation on variable AA_NONE in module ida_kernwin: + + no effect + +Documentation on variable AA_LABEL in module ida_kernwin: + + see update_action_label() + +Documentation on variable AA_SHORTCUT in module ida_kernwin: + + see update_action_shortcut() + +Documentation on variable AA_TOOLTIP in module ida_kernwin: + + see update_action_tooltip() + +Documentation on variable AA_ICON in module ida_kernwin: + + see update_action_icon() + +Documentation on variable AA_STATE in module ida_kernwin: + + see update_action_state() + +Documentation on variable AA_CHECKABLE in module ida_kernwin: + + see update_action_checkable() + +Documentation on variable AA_CHECKED in module ida_kernwin: + + see update_action_checked() + +Documentation on variable AA_VISIBILITY in module ida_kernwin: + + see update_action_visibility() + +Documentation on variable ASKBTN_YES in module ida_kernwin: + + Yes button. + +Documentation on variable ASKBTN_NO in module ida_kernwin: + + No button. + +Documentation on variable ASKBTN_CANCEL in module ida_kernwin: + + Cancel button. + +Documentation on variable ASKBTN_BTN1 in module ida_kernwin: + + First (Yes) button. + +Documentation on variable ASKBTN_BTN2 in module ida_kernwin: + + Second (No) button. + +Documentation on variable ASKBTN_BTN3 in module ida_kernwin: + + Third (Cancel) button. + +Documentation on variable HIST_SEG in module ida_kernwin: + + segment names + +Documentation on variable HIST_CMT in module ida_kernwin: + + comments + +Documentation on variable HIST_SRCH in module ida_kernwin: + + search substrings + +Documentation on variable HIST_IDENT in module ida_kernwin: + + names + +Documentation on variable HIST_FILE in module ida_kernwin: + + file names + +Documentation on variable HIST_TYPE in module ida_kernwin: + + type declarations + +Documentation on variable HIST_CMD in module ida_kernwin: + + commands + +Documentation on variable HIST_DIR in module ida_kernwin: + + directory names (text version only) + +Documentation on variable CLNL_RTRIM in module ida_kernwin: + + Remove trailing space characters. + +Documentation on variable CLNL_LTRIM in module ida_kernwin: + + Remove leading space characters. + +Documentation on variable CLNL_FINDCMT in module ida_kernwin: + + Search for the comment symbol everywhere in the line, not only at the beginning. + +Documentation on variable Choose.CH_MODAL in module ida_kernwin: + + Modal chooser + +Documentation on variable Choose.CH_MULTI in module ida_kernwin: + + Allow multi selection. + Refer the description of the OnInsertLine(), OnDeleteLine(), + OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to + see a difference between single and multi selection callbacks. + +Documentation on variable Choose.CH_NOIDB in module ida_kernwin: + + use the chooser even without an open database, same as x0=-2 + +Documentation on variable Choose.CH_FORCE_DEFAULT in module ida_kernwin: + + If a non-modal chooser was already open, change selection to the given + default one + +Documentation on variable Choose.CH_CAN_INS in module ida_kernwin: + + allow to insert new items + +Documentation on variable Choose.CH_CAN_DEL in module ida_kernwin: + + allow to delete existing item(s) + +Documentation on variable Choose.CH_CAN_EDIT in module ida_kernwin: + + allow to edit existing item(s) + +Documentation on variable Choose.CH_CAN_REFRESH in module ida_kernwin: + + allow to refresh chooser + +Documentation on variable Choose.CH_QFLT in module ida_kernwin: + + open with quick filter enabled and focused + +Documentation on variable Choose.CH_NO_STATUS_BAR in module ida_kernwin: + + don't show a status bar + +Documentation on variable Choose.CH_RESTORE in module ida_kernwin: + + restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) + +Documentation on variable Choose.CH_RENAME_IS_EDIT in module ida_kernwin: + + triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, + should call the edit() callback for the corresponding row. + +Documentation on variable Choose.NO_SELECTION in module ida_kernwin: + + there is no selected item + +Documentation on variable Choose.EMPTY_CHOOSER in module ida_kernwin: + + the chooser is initialized + +Documentation on variable Choose.ALREADY_EXISTS in module ida_kernwin: + + the non-modal chooser with the same data is already open + +Documentation on variable Choose.NO_ATTR in module ida_kernwin: + + some mandatory attribute is missing + +Documentation on variable textctrl_info_t.TXTF_AUTOINDENT in module ida_kernwin: + + Auto-indent on new line + +Documentation on variable textctrl_info_t.TXTF_ACCEPTTABS in module ida_kernwin: + + Tab key inserts 'tabsize' spaces + +Documentation on variable textctrl_info_t.TXTF_READONLY in module ida_kernwin: + + Text cannot be edited (but can be selected and copied) + +Documentation on variable textctrl_info_t.TXTF_SELECTED in module ida_kernwin: + + Shows the field with its text selected + +Documentation on variable textctrl_info_t.TXTF_MODIFIED in module ida_kernwin: + + Gets/sets the modified status + +Documentation on variable textctrl_info_t.TXTF_FIXEDFONT in module ida_kernwin: + + The control uses IDA's fixed font + +Documentation on variable textctrl_info_t.value in module ida_kernwin: + + Alias for the text property + +Documentation on variable textctrl_info_t.text in module ida_kernwin: + + in, out: text control value + +Documentation on variable textctrl_info_t.flags in module ida_kernwin: + + Text control property bits + +Documentation on variable textctrl_info_t.tabsize in module ida_kernwin: + + how many spaces a single tab will indent + +Documentation on variable Form.FT_ASCII in module ida_kernwin: + + Ascii string - char * + +Documentation on variable Form.FT_SEG in module ida_kernwin: + + Segment - sel_t * + +Documentation on variable Form.FT_HEX in module ida_kernwin: + + Hex number - uval_t * + +Documentation on variable Form.FT_SHEX in module ida_kernwin: + + Signed hex number - sval_t * + +Documentation on variable Form.FT_COLOR in module ida_kernwin: + + Color button - bgcolor_t * + +Documentation on variable Form.FT_ADDR in module ida_kernwin: + + Address - ea_t * + +Documentation on variable Form.FT_UINT64 in module ida_kernwin: + + default base uint64 - uint64 + +Documentation on variable Form.FT_INT64 in module ida_kernwin: + + default base int64 - int64 + +Documentation on variable Form.FT_RAWHEX in module ida_kernwin: + + Hex number, no 0x prefix - uval_t * + +Documentation on variable Form.FT_FILE in module ida_kernwin: + + File browse - char * at least QMAXPATH + +Documentation on variable Form.FT_DEC in module ida_kernwin: + + Decimal number - sval_t * + +Documentation on variable Form.FT_OCT in module ida_kernwin: + + Octal number, C notation - sval_t * + +Documentation on variable Form.FT_BIN in module ida_kernwin: + + Binary number, 0b prefix - sval_t * + +Documentation on variable Form.FT_CHAR in module ida_kernwin: + + Char value -- sval_t * + +Documentation on variable Form.FT_IDENT in module ida_kernwin: + + Identifier - char * at least MAXNAMELEN + +Documentation on variable Form.FT_BUTTON in module ida_kernwin: + + Button - def handler(code) + +Documentation on variable Form.FT_DIR in module ida_kernwin: + + Path to directory - char * at least QMAXPATH + +Documentation on variable Form.FT_TYPE in module ida_kernwin: + + Type declaration - char * at least MAXSTR + +Documentation on variable Form._FT_USHORT in module ida_kernwin: + + Unsigned short + +Documentation on variable Form.FT_FORMCHG in module ida_kernwin: + + Form change callback - formchgcb_t + +Documentation on variable Form.FT_ECHOOSER in module ida_kernwin: + + Embedded chooser - idaapi.Choose + +Documentation on variable Form.FT_MULTI_LINE_TEXT in module ida_kernwin: + + Multi text control - textctrl_info_t + +Documentation on variable Form.FT_DROPDOWN_LIST in module ida_kernwin: + + Dropdown list control - Form.DropdownControl + +Documentation on variable Form.FT_HTML_LABEL in module ida_kernwin: + + HTML label to display (only for GUI version, and for dynamic labels; no input) + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.checked in module ida_kernwin: + + Get/Sets checkbox item check status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.selected in module ida_kernwin: + + Get/Sets radiobox item selection status + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.ItemClass in module ida_kernwin: + + Group control item factory class instance + We need this because later we won't be treating ChkGroupControl or RadGroupControl + individually, instead we will be working with GroupControl in general. + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.value in module ida_kernwin: + + Returns the embedded chooser instance + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.selection in module ida_kernwin: + + Returns the selection + +Documentation on variable Form.NumericArgument.StringArgument.Control.LabelControl.StringLabel.NumericLabel.GroupItemControl.ChkGroupItemControl.RadGroupItemControl.GroupControl.ChkGroupControl.RadGroupControl.InputControl.NumericInput.ColorInput.StringInput.FileInput.DirInput.ButtonInput.FormChangeCb.EmbeddedChooserControl.DropdownListControl.selval in module ida_kernwin: + + Read/write the selection value. + The value is used as an item index in readonly mode or text value in editable mode + This value can be used only after the form has been closed. + +Documentation on variable PluginForm.WOPN_RESTORE in module ida_kernwin: + + if the widget is the only widget in a floating area when + it is closed, remember that area's geometry. The next + time that widget is created as floating (i.e., WOPN_DP_FLOATING) + its geometry will be restored (e.g., "Execute script" + +Documentation on variable PluginForm.WOPN_PERSIST in module ida_kernwin: + + form will persist until explicitly closed with Close() + +Documentation on variable PluginForm.WOPN_DP_LEFT in module ida_kernwin: + + Dock widget to the left of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TOP in module ida_kernwin: + + Dock widget above dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_RIGHT in module ida_kernwin: + + Dock widget to the right of dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_BOTTOM in module ida_kernwin: + + Dock widget below dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_INSIDE in module ida_kernwin: + + Create a new tab bar with both widget and dest_ctrl + +Documentation on variable PluginForm.WOPN_DP_TAB in module ida_kernwin: + + Place widget into a tab next to dest_ctrl, + if dest_ctrl is in a tab bar + (otherwise the same as #WOPN_DP_INSIDE) + +Documentation on variable PluginForm.WOPN_DP_BEFORE in module ida_kernwin: + + place widget before dst_form in the tab bar instead of after + used with #WOPN_DP_INSIDE and #WOPN_DP_TAB + +Documentation on variable PluginForm.WOPN_DP_FLOATING in module ida_kernwin: + + When floating or in a splitter (i.e., not tabbed), + use the widget's size hint to determine the best + geometry (Qt only) + +Documentation on variable PluginForm.WOPN_DP_SZHINT in module ida_kernwin: + + Make widget floating + +Documentation on variable PluginForm.WCLS_SAVE in module ida_kernwin: + + Save state in desktop config + +Documentation on variable PluginForm.WCLS_NO_CONTEXT in module ida_kernwin: + + Don't change the current context (useful for toolbars) + +Documentation on variable PluginForm.WCLS_DONT_SAVE_SIZE in module ida_kernwin: + + Don't save size of the window + +Documentation on variable PluginForm.WCLS_DELETE_LATER in module ida_kernwin: + + This flag should be used when Close() is called from an event handler + +Documentation on variable COLOR_ON in module ida_lines: + + Escape character (ON). Followed by a color code (color_t). + +Documentation on variable COLOR_OFF in module ida_lines: + + Escape character (OFF). Followed by a color code (color_t). + +Documentation on variable COLOR_ESC in module ida_lines: + + Escape character (Quote next character). This is needed to output '\1' and '\2' + characters. + +Documentation on variable COLOR_INV in module ida_lines: + + Escape character (Inverse foreground and background colors). This escape + character has no corresponding COLOR_OFF. Its action continues until the next + COLOR_INV or end of line. + +Documentation on variable SCOLOR_ON in module ida_lines: + + Escape character (ON) + +Documentation on variable SCOLOR_OFF in module ida_lines: + + Escape character (OFF) + +Documentation on variable SCOLOR_ESC in module ida_lines: + + Escape character (Quote next character) + +Documentation on variable SCOLOR_INV in module ida_lines: + + Escape character (Inverse colors) + +Documentation on variable SCOLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable SCOLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable SCOLOR_RPTCMT in module ida_lines: + + Repeatable comment (defined not here) + +Documentation on variable SCOLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable SCOLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable SCOLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable SCOLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable SCOLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable SCOLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable SCOLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable SCOLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable SCOLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable SCOLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable SCOLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable SCOLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable SCOLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable SCOLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable SCOLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable SCOLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable SCOLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable SCOLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable SCOLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable SCOLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable SCOLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable SCOLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable SCOLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable SCOLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable SCOLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable SCOLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable SCOLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable SCOLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable SCOLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable SCOLOR_REG in module ida_lines: + + Register name. + +Documentation on variable SCOLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable SCOLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable SCOLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable SCOLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable SCOLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable SCOLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable SCOLOR_ADDR in module ida_lines: + + Hidden address mark. + +Documentation on variable COLOR_SELECTED in module ida_lines: + + Selected. + +Documentation on variable COLOR_LIBFUNC in module ida_lines: + + Library function. + +Documentation on variable COLOR_REGFUNC in module ida_lines: + + Regular function. + +Documentation on variable COLOR_CODE in module ida_lines: + + Single instruction. + +Documentation on variable COLOR_DATA in module ida_lines: + + Data bytes. + +Documentation on variable COLOR_UNKNOWN in module ida_lines: + + Unexplored byte. + +Documentation on variable COLOR_EXTERN in module ida_lines: + + External name definition segment. + +Documentation on variable COLOR_CURITEM in module ida_lines: + + Current item. + +Documentation on variable COLOR_CURLINE in module ida_lines: + + Current line. + +Documentation on variable COLOR_HIDLINE in module ida_lines: + + Hidden line. + +Documentation on variable COLOR_LUMFUNC in module ida_lines: + + Lumina function. + +Documentation on variable COLOR_BG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_DEFAULT in module ida_lines: + + Default. + +Documentation on variable COLOR_REGCMT in module ida_lines: + + Regular comment. + +Documentation on variable COLOR_RPTCMT in module ida_lines: + + Repeatable comment (comment defined somewhere else) + +Documentation on variable COLOR_AUTOCMT in module ida_lines: + + Automatic comment. + +Documentation on variable COLOR_INSN in module ida_lines: + + Instruction. + +Documentation on variable COLOR_DATNAME in module ida_lines: + + Dummy Data Name. + +Documentation on variable COLOR_DNAME in module ida_lines: + + Regular Data Name. + +Documentation on variable COLOR_DEMNAME in module ida_lines: + + Demangled Name. + +Documentation on variable COLOR_SYMBOL in module ida_lines: + + Punctuation. + +Documentation on variable COLOR_CHAR in module ida_lines: + + Char constant in instruction. + +Documentation on variable COLOR_STRING in module ida_lines: + + String constant in instruction. + +Documentation on variable COLOR_NUMBER in module ida_lines: + + Numeric constant in instruction. + +Documentation on variable COLOR_VOIDOP in module ida_lines: + + Void operand. + +Documentation on variable COLOR_CREF in module ida_lines: + + Code reference. + +Documentation on variable COLOR_DREF in module ida_lines: + + Data reference. + +Documentation on variable COLOR_CREFTAIL in module ida_lines: + + Code reference to tail byte. + +Documentation on variable COLOR_DREFTAIL in module ida_lines: + + Data reference to tail byte. + +Documentation on variable COLOR_ERROR in module ida_lines: + + Error or problem. + +Documentation on variable COLOR_PREFIX in module ida_lines: + + Line prefix. + +Documentation on variable COLOR_BINPREF in module ida_lines: + + Binary line prefix bytes. + +Documentation on variable COLOR_EXTRA in module ida_lines: + + Extra line. + +Documentation on variable COLOR_ALTOP in module ida_lines: + + Alternative operand. + +Documentation on variable COLOR_HIDNAME in module ida_lines: + + Hidden name. + +Documentation on variable COLOR_LIBNAME in module ida_lines: + + Library function name. + +Documentation on variable COLOR_LOCNAME in module ida_lines: + + Local variable name. + +Documentation on variable COLOR_CODNAME in module ida_lines: + + Dummy code name. + +Documentation on variable COLOR_ASMDIR in module ida_lines: + + Assembler directive. + +Documentation on variable COLOR_MACRO in module ida_lines: + + Macro. + +Documentation on variable COLOR_DSTR in module ida_lines: + + String constant in data directive. + +Documentation on variable COLOR_DCHAR in module ida_lines: + + Char constant in data directive. + +Documentation on variable COLOR_DNUM in module ida_lines: + + Numeric constant in data directive. + +Documentation on variable COLOR_KEYWORD in module ida_lines: + + Keywords. + +Documentation on variable COLOR_REG in module ida_lines: + + Register name. + +Documentation on variable COLOR_IMPNAME in module ida_lines: + + Imported name. + +Documentation on variable COLOR_SEGNAME in module ida_lines: + + Segment name. + +Documentation on variable COLOR_UNKNAME in module ida_lines: + + Dummy unknown name. + +Documentation on variable COLOR_CNAME in module ida_lines: + + Regular code name. + +Documentation on variable COLOR_UNAME in module ida_lines: + + Regular unknown name. + +Documentation on variable COLOR_COLLAPSED in module ida_lines: + + Collapsed line. + +Documentation on variable COLOR_FG_MAX in module ida_lines: + + Max color number. + +Documentation on variable COLOR_ADDR in module ida_lines: + + hidden address marks. the address is represented as 8digit hex number: 01234567. + it doesn't have COLOR_OFF pair. NB: for 64-bit IDA, the address is 16digit. + +Documentation on variable COLOR_OPND1 in module ida_lines: + + Instruction operand 1. + +Documentation on variable COLOR_OPND2 in module ida_lines: + + Instruction operand 2. + +Documentation on variable COLOR_OPND3 in module ida_lines: + + Instruction operand 3. + +Documentation on variable COLOR_OPND4 in module ida_lines: + + Instruction operand 4. + +Documentation on variable COLOR_OPND5 in module ida_lines: + + Instruction operand 5. + +Documentation on variable COLOR_OPND6 in module ida_lines: + + Instruction operand 6. + +Documentation on variable COLOR_OPND7 in module ida_lines: + + Instruction operand 7. + +Documentation on variable COLOR_OPND8 in module ida_lines: + + Instruction operand 8. + +Documentation on variable COLOR_RESERVED1 in module ida_lines: + + This tag is reserved for internal IDA use. + +Documentation on variable COLOR_LUMINA in module ida_lines: + + Lumina-related, only for the navigation band. + +Documentation on variable COLOR_ADDR_SIZE in module ida_lines: + + Size of a tagged address (see COLOR_ADDR) + +Documentation on variable loader_t.version in module ida_loader: + + api version, should be IDP_INTERFACE_VERSION + +Documentation on variable loader_t.flags in module ida_loader: + + Loader flags + +Documentation on variable LDRF_RELOAD in module ida_loader: + + loader recognizes NEF_RELOAD flag + +Documentation on variable LDRF_REQ_PROC in module ida_loader: + + Requires a processor to be set. if this bit is not set, load_file() must call + set_processor_type(..., SETPROC_LOADER) + +Documentation on variable ACCEPT_ARCHIVE in module ida_loader: + + Specify that a file format is served by archive loader See loader_t::accept_file + +Documentation on variable ACCEPT_CONTINUE in module ida_loader: + + Specify that the function must be called another time See loader_t::accept_file + +Documentation on variable ACCEPT_FIRST in module ida_loader: + + Specify that a file format should be place first in "load file" dialog box. See + loader_t::accept_file + +Documentation on variable NEF_SEGS in module ida_loader: + + Create segments. + +Documentation on variable NEF_RSCS in module ida_loader: + + Load resources. + +Documentation on variable NEF_NAME in module ida_loader: + + Rename entries. + +Documentation on variable NEF_MAN in module ida_loader: + + Manual load. + +Documentation on variable NEF_FILL in module ida_loader: + + Fill segment gaps. + +Documentation on variable NEF_IMPS in module ida_loader: + + Create import segment. + +Documentation on variable NEF_FIRST in module ida_loader: + + This is the first file loaded into the database. + +Documentation on variable NEF_CODE in module ida_loader: + + for load_binary_file(): load as a code segment + +Documentation on variable NEF_RELOAD in module ida_loader: + + reload the file at the same place: + * don't create segments + * don't create fixup info + * don't import segments + * etc. + + Load only the bytes into the base. A loader should have the LDRF_RELOAD bit set. + +Documentation on variable NEF_FLAT in module ida_loader: + + Autocreate FLAT group (PE) + +Documentation on variable NEF_MINI in module ida_loader: + + Create mini database (do not copy segment bytes from the input file; use only + the file header metadata) + +Documentation on variable NEF_LOPT in module ida_loader: + + Display additional loader options dialog. + +Documentation on variable NEF_LALL in module ida_loader: + + Load all segments without questions. + +Documentation on variable OFILE_MAP in module ida_loader: + + MAP file. + +Documentation on variable OFILE_EXE in module ida_loader: + + Executable file. + +Documentation on variable OFILE_IDC in module ida_loader: + + IDC file. + +Documentation on variable OFILE_LST in module ida_loader: + + Disassembly listing. + +Documentation on variable OFILE_ASM in module ida_loader: + + Assembly. + +Documentation on variable OFILE_DIF in module ida_loader: + + Difference. + +Documentation on variable GENFLG_ASMTYPE in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information about types too + +Documentation on variable GENFLG_GENHTML in module ida_loader: + + OFILE_ASM,OFILE_LST: generate html (ui_genfile_callback will be used) + +Documentation on variable GENFLG_ASMINC in module ida_loader: + + OFILE_ASM,OFILE_LST: gen information only about types + +Documentation on variable FILEREG_PATCHABLE in module ida_loader: + + means that the input file may be patched (i.e. no compression, no iterated data, + etc) + +Documentation on variable FILEREG_NOTPATCHABLE in module ida_loader: + + the data is kept in some encoded form in the file. + +Documentation on variable PLUGIN_DLL in module ida_loader: + + Pattern to find plugin files. + +Documentation on variable idp_name_t.lname in module ida_loader: + + long processor name + +Documentation on variable idp_name_t.sname in module ida_loader: + + short processor name + +Documentation on variable idp_name_t.hidden in module ida_loader: + + is hidden + +Documentation on variable idp_desc_t.path in module ida_loader: + + module file name + +Documentation on variable idp_desc_t.mtime in module ida_loader: + + time of last modification + +Documentation on variable idp_desc_t.family in module ida_loader: + + processor's family + +Documentation on variable idp_desc_t.names in module ida_loader: + + processor names + +Documentation on variable idp_desc_t.is_script in module ida_loader: + + the processor module is a script + +Documentation on variable idp_desc_t.checked in module ida_loader: + + internal, for cache management + +Documentation on variable plugin_info_t.next in module ida_loader: + + next plugin information + +Documentation on variable plugin_info_t.path in module ida_loader: + + full path to the plugin + +Documentation on variable plugin_info_t.org_name in module ida_loader: + + original short name of the plugin + +Documentation on variable plugin_info_t.name in module ida_loader: + + short name of the plugin it will appear in the menu + +Documentation on variable plugin_info_t.org_hotkey in module ida_loader: + + original hotkey to run the plugin + +Documentation on variable plugin_info_t.hotkey in module ida_loader: + + current hotkey to run the plugin + +Documentation on variable plugin_info_t.arg in module ida_loader: + + argument used to call the plugin + +Documentation on variable plugin_info_t.entry in module ida_loader: + + pointer to the plugin if it is already loaded + +Documentation on variable plugin_info_t.flags in module ida_loader: + + a copy of plugin_t::flags + +Documentation on variable plugin_info_t.comment in module ida_loader: + + a copy of plugin_t::comment + +Documentation on variable MAX_DATABASE_DESCRIPTION in module ida_loader: + + Maximum database snapshot description length. + +Documentation on variable snapshot_t.id in module ida_loader: + + snapshot ID. This value is computed using qgettimeofday() + +Documentation on variable snapshot_t.flags in module ida_loader: + + Snapshot flags + +Documentation on variable snapshot_t.desc in module ida_loader: + + snapshot description + +Documentation on variable snapshot_t.filename in module ida_loader: + + snapshot file name + +Documentation on variable snapshot_t.children in module ida_loader: + + snapshot children + +Documentation on variable SSF_AUTOMATIC in module ida_loader: + + automatic snapshot + +Documentation on variable SSUF_DESC in module ida_loader: + + Update the description. + +Documentation on variable SSUF_PATH in module ida_loader: + + Update the path. + +Documentation on variable SSUF_FLAGS in module ida_loader: + + Update the flags. + +Documentation on variable DBFL_KILL in module ida_loader: + + delete unpacked database + +Documentation on variable DBFL_COMP in module ida_loader: + + collect garbage + +Documentation on variable DBFL_BAK in module ida_loader: + + create backup file (if !DBFL_KILL) + +Documentation on variable DBFL_TEMP in module ida_loader: + + temporary database + +Documentation on variable PATH_TYPE_CMD in module ida_loader: + + full path to the file specified in the command line + +Documentation on variable PATH_TYPE_IDB in module ida_loader: + + full path of IDB file + +Documentation on variable PATH_TYPE_ID0 in module ida_loader: + + full path of ID0 file + +Documentation on variable NALT_SWITCH in module ida_nalt: + + switch idiom address (used at jump targets) + +Documentation on variable NALT_STRUCT in module ida_nalt: + + struct id + +Documentation on variable NALT_AFLAGS in module ida_nalt: + + additional flags for an item + +Documentation on variable NALT_LINNUM in module ida_nalt: + + source line number + +Documentation on variable NALT_ABSBASE in module ida_nalt: + + absolute segment location + +Documentation on variable NALT_ENUM0 in module ida_nalt: + + enum id for the first operand + +Documentation on variable NALT_ENUM1 in module ida_nalt: + + enum id for the second operand + +Documentation on variable NALT_PURGE in module ida_nalt: + + number of bytes purged from the stack when a function is called indirectly + +Documentation on variable NALT_STRTYPE in module ida_nalt: + + type of string item + +Documentation on variable NALT_ALIGN in module ida_nalt: + + alignment value if the item is FF_ALIGN (should by equal to power of 2) + +Documentation on variable NALT_COLOR in module ida_nalt: + + instruction/data background color + +Documentation on variable NSUP_CMT in module ida_nalt: + + regular comment + +Documentation on variable NSUP_REPCMT in module ida_nalt: + + repeatable comment + +Documentation on variable NSUP_FOP1 in module ida_nalt: + + forced operand 1 + +Documentation on variable NSUP_FOP2 in module ida_nalt: + + forced operand 2 + +Documentation on variable NSUP_JINFO in module ida_nalt: + + jump table info + +Documentation on variable NSUP_ARRAY in module ida_nalt: + + array parameters + +Documentation on variable NSUP_FOP3 in module ida_nalt: + + forced operand 3 + +Documentation on variable NSUP_SWITCH in module ida_nalt: + + switch information + +Documentation on variable NSUP_REF0 in module ida_nalt: + + complex reference information for operand 1 + +Documentation on variable NSUP_REF1 in module ida_nalt: + + complex reference information for operand 2 + +Documentation on variable NSUP_REF2 in module ida_nalt: + + complex reference information for operand 3 + +Documentation on variable NSUP_OREF0 in module ida_nalt: + + outer complex reference information for operand 1 + +Documentation on variable NSUP_OREF1 in module ida_nalt: + + outer complex reference information for operand 2 + +Documentation on variable NSUP_OREF2 in module ida_nalt: + + outer complex reference information for operand 3 + +Documentation on variable NSUP_SEGTRANS in module ida_nalt: + + segment translations + +Documentation on variable NSUP_FOP4 in module ida_nalt: + + forced operand 4 + +Documentation on variable NSUP_FOP5 in module ida_nalt: + + forced operand 5 + +Documentation on variable NSUP_FOP6 in module ida_nalt: + + forced operand 6 + +Documentation on variable NSUP_REF3 in module ida_nalt: + + complex reference information for operand 4 + +Documentation on variable NSUP_REF4 in module ida_nalt: + + complex reference information for operand 5 + +Documentation on variable NSUP_REF5 in module ida_nalt: + + complex reference information for operand 6 + +Documentation on variable NSUP_OREF3 in module ida_nalt: + + outer complex reference information for operand 4 + +Documentation on variable NSUP_OREF4 in module ida_nalt: + + outer complex reference information for operand 5 + +Documentation on variable NSUP_OREF5 in module ida_nalt: + + outer complex reference information for operand 6 + +Documentation on variable NSUP_XREFPOS in module ida_nalt: + + saved xref address and type in the xrefs window + +Documentation on variable NSUP_CUSTDT in module ida_nalt: + + custom data type id + +Documentation on variable NSUP_ARGEAS in module ida_nalt: + + instructions that initialize call arguments + +Documentation on variable NSUP_FOP7 in module ida_nalt: + + forced operand 7 + +Documentation on variable NSUP_FOP8 in module ida_nalt: + + forced operand 8 + +Documentation on variable NSUP_REF6 in module ida_nalt: + + complex reference information for operand 7 + +Documentation on variable NSUP_REF7 in module ida_nalt: + + complex reference information for operand 8 + +Documentation on variable NSUP_OREF6 in module ida_nalt: + + outer complex reference information for operand 7 + +Documentation on variable NSUP_OREF7 in module ida_nalt: + + outer complex reference information for operand 8 + +Documentation on variable NSUP_POINTS in module ida_nalt: + + SP change points blob (see funcs.cpp). values NSUP_POINTS..NSUP_POINTS+0x1000 + are reserved + +Documentation on variable NSUP_MANUAL in module ida_nalt: + + manual instruction. values NSUP_MANUAL..NSUP_MANUAL+0x1000 are reserved + +Documentation on variable NSUP_TYPEINFO in module ida_nalt: + + type information. values NSUP_TYPEINFO..NSUP_TYPEINFO+0x1000 are reserved + +Documentation on variable NSUP_REGVAR in module ida_nalt: + + register variables. values NSUP_REGVAR..NSUP_REGVAR+0x1000 are reserved + +Documentation on variable NSUP_LLABEL in module ida_nalt: + + local labels. values NSUP_LLABEL..NSUP_LLABEL+0x1000 are reserved + +Documentation on variable NSUP_REGARG in module ida_nalt: + + register argument type/name descriptions values NSUP_REGARG..NSUP_REGARG+0x1000 + are reserved + +Documentation on variable NSUP_FTAILS in module ida_nalt: + + function tails or tail referers values NSUP_FTAILS..NSUP_FTAILS+0x1000 are + reserved + +Documentation on variable NSUP_GROUP in module ida_nalt: + + graph group information values NSUP_GROUP..NSUP_GROUP+0x1000 are reserved + +Documentation on variable NSUP_OPTYPES in module ida_nalt: + + operand type information. values NSUP_OPTYPES..NSUP_OPTYPES+0x100000 are + reserved + +Documentation on variable NSUP_ORIGFMD in module ida_nalt: + + function metadata before lumina information was applied values + NSUP_ORIGFMD..NSUP_ORIGFMD+0x1000 are reserved + +Documentation on variable NALT_CREF_TO in module ida_nalt: + + code xref to, idx: target address + +Documentation on variable NALT_CREF_FROM in module ida_nalt: + + code xref from, idx: source address + +Documentation on variable NALT_DREF_TO in module ida_nalt: + + data xref to, idx: target address + +Documentation on variable NALT_DREF_FROM in module ida_nalt: + + data xref from, idx: source address + +Documentation on variable NSUP_GR_INFO in module ida_nalt: + + group node info: color, ea, text + +Documentation on variable NALT_GR_LAYX in module ida_nalt: + + group layout ptrs, hash: md5 of 'belongs' + +Documentation on variable NSUP_GR_LAYT in module ida_nalt: + + group layouts, idx: layout pointer + +Documentation on variable PATCH_TAG in module ida_nalt: + + Patch netnode tag. + +Documentation on variable AFL_LINNUM in module ida_nalt: + + has line number info + +Documentation on variable AFL_USERSP in module ida_nalt: + + user-defined SP value + +Documentation on variable AFL_PUBNAM in module ida_nalt: + + name is public (inter-file linkage) + +Documentation on variable AFL_WEAKNAM in module ida_nalt: + + name is weak + +Documentation on variable AFL_HIDDEN in module ida_nalt: + + the item is hidden completely + +Documentation on variable AFL_MANUAL in module ida_nalt: + + the instruction/data is specified by the user + +Documentation on variable AFL_NOBRD in module ida_nalt: + + the code/data border is hidden + +Documentation on variable AFL_ZSTROFF in module ida_nalt: + + display struct field name at 0 offset when displaying an offset. example: + offset somestruct.field_0 if this flag is clear, then + offset somestruct + +Documentation on variable AFL_BNOT0 in module ida_nalt: + + the 1st operand is bitwise negated + +Documentation on variable AFL_BNOT1 in module ida_nalt: + + the 2nd operand is bitwise negated + +Documentation on variable AFL_LIB in module ida_nalt: + + item from the standard library. low level flag, is used to set FUNC_LIB of + func_t + +Documentation on variable AFL_TI in module ida_nalt: + + has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t + +Documentation on variable AFL_TI0 in module ida_nalt: + + has typeinfo for operand 0? (NSUP_OPTYPES) + +Documentation on variable AFL_TI1 in module ida_nalt: + + has typeinfo for operand 1? (NSUP_OPTYPES+1) + +Documentation on variable AFL_LNAME in module ida_nalt: + + has local name too (FF_NAME should be set) + +Documentation on variable AFL_TILCMT in module ida_nalt: + + has type comment? (such a comment may be changed by IDA) + +Documentation on variable AFL_LZERO0 in module ida_nalt: + + toggle leading zeroes for the 1st operand + +Documentation on variable AFL_LZERO1 in module ida_nalt: + + toggle leading zeroes for the 2nd operand + +Documentation on variable AFL_COLORED in module ida_nalt: + + has user defined instruction color? + +Documentation on variable AFL_TERSESTR in module ida_nalt: + + terse structure variable display? + +Documentation on variable AFL_NORET in module ida_nalt: + + for imported function pointers: doesn't return. this flag can also be used for + any instruction which halts or finishes the program execution + +Documentation on variable AFL_FIXEDSPD in module ida_nalt: + + sp delta value is fixed by analysis. should not be modified by modules + +Documentation on variable AFL_ALIGNFLOW in module ida_nalt: + + the previous insn was created for alignment purposes only + +Documentation on variable AFL_USERTI in module ida_nalt: + + the type information is definitive. (comes from the user or type library) if not + set see AFL_TYPE_GUESSED + +Documentation on variable AFL_RETFP in module ida_nalt: + + function returns a floating point value + +Documentation on variable AFL_USEMODSP in module ida_nalt: + + insn modifes SP and uses the modified value; example: pop [rsp+N] + +Documentation on variable AFL_NOTCODE in module ida_nalt: + + autoanalysis should not create code here + +Documentation on variable AFL_NOTPROC in module ida_nalt: + + autoanalysis should not create proc here + +Documentation on variable AFL_TYPE_GUESSED in module ida_nalt: + + who guessed the type information? + +Documentation on variable AFL_IDA_GUESSED in module ida_nalt: + + the type is guessed by IDA + +Documentation on variable AFL_HR_GUESSED_FUNC in module ida_nalt: + + the function type is guessed by the decompiler + +Documentation on variable AFL_HR_GUESSED_DATA in module ida_nalt: + + the data type is guessed by the decompiler + +Documentation on variable AFL_HR_DETERMINED in module ida_nalt: + + the type is definitely guessed by the decompiler + +Documentation on variable STRTYPE_TERMCHR in module ida_nalt: + + C-style string. + + < Character-terminated string. The termination characters are kept in the next + bytes of string type. + +Documentation on variable STRTYPE_C in module ida_nalt: + + Zero-terminated 16bit chars. + +Documentation on variable STRTYPE_C_16 in module ida_nalt: + + Zero-terminated 32bit chars. + +Documentation on variable STRTYPE_C_32 in module ida_nalt: + + Pascal-style, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL in module ida_nalt: + + Pascal-style, 16bit chars, one-byte length prefix. + +Documentation on variable STRTYPE_PASCAL_16 in module ida_nalt: + + Pascal-style, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2 in module ida_nalt: + + Pascal-style, 16bit chars, two-byte length prefix. + +Documentation on variable STRTYPE_LEN2_16 in module ida_nalt: + + Pascal-style, four-byte length prefix. + +Documentation on variable STRTYPE_LEN4 in module ida_nalt: + + Pascal-style, 16bit chars, four-byte length prefix. + +Documentation on variable STRENC_DEFAULT in module ida_nalt: + + use default encoding for this type (see get_default_encoding_idx()) + +Documentation on variable STRENC_NONE in module ida_nalt: + + force no-conversion encoding + +Documentation on variable array_parameters_t.lineitems in module ida_nalt: + + number of items on a line + +Documentation on variable array_parameters_t.alignment in module ida_nalt: + + -1 - don't align. 0 - align automatically. else item width + +Documentation on variable AP_ALLOWDUPS in module ida_nalt: + + use 'dup' construct + +Documentation on variable AP_SIGNED in module ida_nalt: + + treats numbers as signed + +Documentation on variable AP_INDEX in module ida_nalt: + + display array element indexes as comments + +Documentation on variable AP_ARRAY in module ida_nalt: + + create as array (this flag is not stored in database) + +Documentation on variable AP_IDXBASEMASK in module ida_nalt: + + mask for number base of the indexes + +Documentation on variable AP_IDXDEC in module ida_nalt: + + display indexes in decimal + +Documentation on variable AP_IDXHEX in module ida_nalt: + + display indexes in hex + +Documentation on variable AP_IDXOCT in module ida_nalt: + + display indexes in octal + +Documentation on variable AP_IDXBIN in module ida_nalt: + + display indexes in binary + +Documentation on variable switch_info_t.flags in module ida_nalt: + + Switch info flags + +Documentation on variable switch_info_t.ncases in module ida_nalt: + + number of cases (excluding default) + +Documentation on variable switch_info_t.jumps in module ida_nalt: + + jump table start address + +Documentation on variable switch_info_t.values in module ida_nalt: + + values table address (if SWI_SPARSE is set) + +Documentation on variable switch_info_t.lowcase in module ida_nalt: + + the lowest value in cases + +Documentation on variable switch_info_t.defjump in module ida_nalt: + + default jump address (BADADDR if no default case) + +Documentation on variable switch_info_t.startea in module ida_nalt: + + start of the switch idiom + +Documentation on variable switch_info_t.jcases in module ida_nalt: + + number of entries in the jump table (SWI_INDIRECT) + +Documentation on variable switch_info_t.elbase in module ida_nalt: + + element base + +Documentation on variable switch_info_t.regnum in module ida_nalt: + + the switch expression as a value of the REGNUM register before the instruction + at EXPR_EA. -1 means 'unknown' + +Documentation on variable switch_info_t.regdtype in module ida_nalt: + + size of the switch expression register as dtype + +Documentation on variable switch_info_t.custom in module ida_nalt: + + information for custom tables (filled and used by modules) + +Documentation on variable switch_info_t.expr_ea in module ida_nalt: + + the address before that the switch expression is in REGNUM. If BADADDR, then the + first insn marked as IM_SWITCH after STARTEA is used. + +Documentation on variable switch_info_t.marks in module ida_nalt: + + the insns marked as IM_SWITCH. They are used to delete the switch. + +Documentation on variable SWI_SPARSE in module ida_nalt: + + sparse switch (value table present), otherwise lowcase present + +Documentation on variable SWI_V32 in module ida_nalt: + + 32-bit values in table + +Documentation on variable SWI_J32 in module ida_nalt: + + 32-bit jump offsets + +Documentation on variable SWI_VSPLIT in module ida_nalt: + + value table is split (only for 32-bit values) + +Documentation on variable SWI_USER in module ida_nalt: + + user specified switch (starting from version 2) + +Documentation on variable SWI_DEF_IN_TBL in module ida_nalt: + + default case is an entry in the jump table. This flag is applicable in 2 cases: + * The sparse indirect switch (i.e. a switch with a values table) {jump table + size} == {value table size} + 1. The default case entry is the last one in the + table (or the first one in the case of an inversed jump table). + * The switch with insns in the jump table. The default case entry is before the + first entry of the table. + See also the find_defjump_from_table() helper function. + +Documentation on variable SWI_JMP_INV in module ida_nalt: + + jumptable is inversed. (last entry is for first entry in values table) + +Documentation on variable SWI_SHIFT_MASK in module ida_nalt: + + use formula (element<<shift) + elbase to find jump targets + +Documentation on variable SWI_ELBASE in module ida_nalt: + + elbase is present (otherwise the base of the switch segment will be used) + +Documentation on variable SWI_JSIZE in module ida_nalt: + + jump offset expansion bit + +Documentation on variable SWI_VSIZE in module ida_nalt: + + value table element size expansion bit + +Documentation on variable SWI_SEPARATE in module ida_nalt: + + create an array of individual elements (otherwise separate items) + +Documentation on variable SWI_SIGNED in module ida_nalt: + + jump table entries are signed + +Documentation on variable SWI_CUSTOM in module ida_nalt: + + custom jump table. processor_t::create_switch_xrefs will be called to create + code xrefs for the table. Custom jump table must be created by the module (see + also SWI_STDTBL) + +Documentation on variable SWI_INDIRECT in module ida_nalt: + + value table elements are used as indexes into the jump table (for sparse + switches) + +Documentation on variable SWI_SUBTRACT in module ida_nalt: + + table values are subtracted from the elbase instead of being added + +Documentation on variable SWI_HXNOLOWCASE in module ida_nalt: + + lowcase value should not be used by the decompiler (internal flag) + +Documentation on variable SWI_STDTBL in module ida_nalt: + + custom jump table with standard table formatting. ATM IDA doesn't use SWI_CUSTOM + for switches with standard table formatting. So this flag can be considered as + obsolete. + +Documentation on variable SWI_DEFRET in module ida_nalt: + + return in the default case (defjump==BADADDR) + +Documentation on variable SWI_SELFREL in module ida_nalt: + + jump address is relative to the element not to ELBASE + +Documentation on variable SWI_JMPINSN in module ida_nalt: + + jump table entries are insns. For such entries SHIFT has a different meaning. It + denotes the number of insns in the entry. For example, 0 - the entry contains + the jump to the case, 1 - the entry contains one insn like a 'mov' and jump to + the end of case, and so on. + +Documentation on variable SWI_VERSION in module ida_nalt: + + the structure contains the VERSION member + +Documentation on variable custom_data_type_ids_t.dtid in module ida_nalt: + + data type id + +Documentation on variable custom_data_type_ids_t.fids in module ida_nalt: + + data format ids + +Documentation on variable refinfo_t.target in module ida_nalt: + + reference target (BADADDR-none) + +Documentation on variable refinfo_t.base in module ida_nalt: + + base of reference (may be BADADDR) + +Documentation on variable refinfo_t.tdelta in module ida_nalt: + + offset from the target + +Documentation on variable refinfo_t.flags in module ida_nalt: + + Reference info flags + +Documentation on variable V695_REF_OFF8 in module ida_nalt: + + reserved + +Documentation on variable REF_OFF16 in module ida_nalt: + + 16bit full offset + +Documentation on variable REF_OFF32 in module ida_nalt: + + 32bit full offset + +Documentation on variable REF_LOW8 in module ida_nalt: + + low 8bits of 16bit offset + +Documentation on variable REF_LOW16 in module ida_nalt: + + low 16bits of 32bit offset + +Documentation on variable REF_HIGH8 in module ida_nalt: + + high 8bits of 16bit offset + +Documentation on variable REF_HIGH16 in module ida_nalt: + + high 16bits of 32bit offset + +Documentation on variable V695_REF_VHIGH in module ida_nalt: + + obsolete + +Documentation on variable V695_REF_VLOW in module ida_nalt: + + obsolete + +Documentation on variable REF_OFF64 in module ida_nalt: + + 64bit full offset + +Documentation on variable REF_OFF8 in module ida_nalt: + + 8bit full offset + +Documentation on variable REFINFO_TYPE in module ida_nalt: + + reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM set + +Documentation on variable REFINFO_RVAOFF in module ida_nalt: + + based reference (rva); refinfo_t::base will be forced to get_imagebase(); such a + reference is displayed with the asm_t::a_rva keyword + +Documentation on variable REFINFO_PASTEND in module ida_nalt: + + reference past an item; it may point to an nonexistent address; do not destroy + alignment dirs + +Documentation on variable REFINFO_CUSTOM in module ida_nalt: + + a custom reference. see custom_refinfo_handler_t. the id of the custom refinfo + is stored under the REFINFO_TYPE mask. + +Documentation on variable REFINFO_NOBASE in module ida_nalt: + + don't create the base xref; implies that the base can be any value. nb: base + xrefs are created only if the offset base points to the middle of a segment + +Documentation on variable REFINFO_SUBTRACT in module ida_nalt: + + the reference value is subtracted from the base value instead of (as usual) + being added to it + +Documentation on variable REFINFO_SIGNEDOP in module ida_nalt: + + the operand value is sign-extended (only supported for REF_OFF8/16/32/64) + +Documentation on variable REFINFO_NO_ZEROS in module ida_nalt: + + an opval of 0 will be considered invalid + +Documentation on variable REFINFO_NO_ONES in module ida_nalt: + + an opval of ~0 will be considered invalid + +Documentation on variable REFINFO_SELFREF in module ida_nalt: + + the self-based reference; refinfo_t::base will be forced to the reference + address + +Documentation on variable MAXSTRUCPATH in module ida_nalt: + + maximal inclusion depth of unions + +Documentation on variable opinfo_t.ri in module ida_nalt: + + for offset members + +Documentation on variable opinfo_t.tid in module ida_nalt: + + for struct, etc. members + +Documentation on variable opinfo_t.path in module ida_nalt: + + for stroff + +Documentation on variable opinfo_t.strtype in module ida_nalt: + + for strings (String type codes) + +Documentation on variable opinfo_t.ec in module ida_nalt: + + for enums + +Documentation on variable opinfo_t.cd in module ida_nalt: + + for custom data + +Documentation on variable RIDX_FILE_FORMAT_NAME in module ida_nalt: + + file format name for loader modules + +Documentation on variable RIDX_SELECTORS in module ida_nalt: + + 2..63 are for selector_t blob (see init_selectors()) + +Documentation on variable RIDX_GROUPS in module ida_nalt: + + segment group information (see init_groups()) + +Documentation on variable RIDX_H_PATH in module ida_nalt: + + C header path. + +Documentation on variable RIDX_C_MACROS in module ida_nalt: + + C predefined macros. + +Documentation on variable RIDX_SMALL_IDC_OLD in module ida_nalt: + + Instant IDC statements (obsolete) + +Documentation on variable RIDX_NOTEPAD in module ida_nalt: + + notepad blob, occupies 1000 indexes (1MB of text) + +Documentation on variable RIDX_INCLUDE in module ida_nalt: + + assembler include file name + +Documentation on variable RIDX_SMALL_IDC in module ida_nalt: + + Instant IDC statements, blob. + +Documentation on variable RIDX_DUALOP_GRAPH in module ida_nalt: + + Graph text representation options. + +Documentation on variable RIDX_DUALOP_TEXT in module ida_nalt: + + Text text representation options. + +Documentation on variable RIDX_MD5 in module ida_nalt: + + MD5 of the input file. + +Documentation on variable RIDX_IDA_VERSION in module ida_nalt: + + version of ida which created the database + +Documentation on variable RIDX_STR_ENCODINGS in module ida_nalt: + + a list of encodings for the program strings + +Documentation on variable RIDX_SRCDBG_PATHS in module ida_nalt: + + source debug paths, occupies 20 indexes + +Documentation on variable RIDX_DBG_BINPATHS in module ida_nalt: + + unused (20 indexes) + +Documentation on variable RIDX_SHA256 in module ida_nalt: + + SHA256 of the input file. + +Documentation on variable RIDX_ABINAME in module ida_nalt: + + ABI name (processor specific) + +Documentation on variable RIDX_ARCHIVE_PATH in module ida_nalt: + + archive file path + +Documentation on variable RIDX_PROBLEMS in module ida_nalt: + + problem lists + +Documentation on variable RIDX_SRCDBG_UNDESIRED in module ida_nalt: + + user-closed source files, occupies 20 indexes + +Documentation on variable MAXNAMELEN in module ida_name: + + Maximum length of a name in IDA (with the trailing zero) + +Documentation on variable FUNC_IMPORT_PREFIX in module ida_name: + + Name prefix used by IDA for the imported functions. + +Documentation on variable SN_CHECK in module ida_name: + + Fail if the name contains invalid characters. + +Documentation on variable SN_NOCHECK in module ida_name: + + Replace invalid characters silently. If this bit is set, all invalid chars (not + in NameChars or MangleChars) will be replaced by '_' List of valid characters is + defined in ida.cfg + +Documentation on variable SN_PUBLIC in module ida_name: + + if set, make name public + +Documentation on variable SN_NON_PUBLIC in module ida_name: + + if set, make name non-public + +Documentation on variable SN_WEAK in module ida_name: + + if set, make name weak + +Documentation on variable SN_NON_WEAK in module ida_name: + + if set, make name non-weak + +Documentation on variable SN_AUTO in module ida_name: + + if set, make name autogenerated + +Documentation on variable SN_NON_AUTO in module ida_name: + + if set, make name non-autogenerated + +Documentation on variable SN_NOLIST in module ida_name: + + if set, exclude name from the list. if not set, then include the name into the + list (however, if other bits are set, the name might be immediately excluded + from the list). + +Documentation on variable SN_NOWARN in module ida_name: + + don't display a warning if failed + +Documentation on variable SN_LOCAL in module ida_name: + + create local name. a function should exist. local names can't be public or weak. + also they are not included into the list of names they can't have dummy + prefixes. + +Documentation on variable SN_IDBENC in module ida_name: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly. Specifying SN_IDBENC also implies SN_NODUMMY + +Documentation on variable SN_FORCE in module ida_name: + + if the specified name is already present in the database, try variations with a + numerical suffix like "_123" + +Documentation on variable SN_NODUMMY in module ida_name: + + automatically prepend the name with '_' if it begins with a dummy suffix such as + 'sub_'. See also SN_IDBENC + +Documentation on variable SN_DELTAIL in module ida_name: + + if name cannot be set because of a tail byte, delete the hindering item + +Documentation on variable NT_NONE in module ida_name: + + name doesn't exist or has no value + +Documentation on variable NT_BYTE in module ida_name: + + name is byte name (regular name) + +Documentation on variable NT_LOCAL in module ida_name: + + name is local label + +Documentation on variable NT_STKVAR in module ida_name: + + name is stack variable name + +Documentation on variable NT_ENUM in module ida_name: + + name is symbolic constant + +Documentation on variable NT_ABS in module ida_name: + + name is absolute symbol (SEG_ABSSYM) + +Documentation on variable NT_SEG in module ida_name: + + name is segment or segment register name + +Documentation on variable NT_STROFF in module ida_name: + + name is structure member + +Documentation on variable NT_BMASK in module ida_name: + + name is a bit group mask name + +Documentation on variable NT_REGVAR in module ida_name: + + name is a renamed register (*value is idx into pfn->regvars) + +Documentation on variable GN_VISIBLE in module ida_name: + + replace forbidden characters by SUBSTCHAR + +Documentation on variable GN_COLORED in module ida_name: + + return colored name + +Documentation on variable GN_DEMANGLED in module ida_name: + + return demangled name + +Documentation on variable GN_STRICT in module ida_name: + + fail if cannot demangle + +Documentation on variable GN_SHORT in module ida_name: + + use short form of demangled name + +Documentation on variable GN_LONG in module ida_name: + + use long form of demangled name + +Documentation on variable GN_LOCAL in module ida_name: + + try to get local name first; if failed, get global + +Documentation on variable GN_ISRET in module ida_name: + + for dummy names: use retloc + +Documentation on variable GN_NOT_ISRET in module ida_name: + + for dummy names: do not use retloc + +Documentation on variable GN_NOT_DUMMY in module ida_name: + + do not return a dummy name + +Documentation on variable GETN_APPZERO in module ida_name: + + meaningful only if the name refers to a structure. append a struct field name if + the field offset is zero? + +Documentation on variable GETN_NOFIXUP in module ida_name: + + ignore the fixup information when producing the name + +Documentation on variable GETN_NODUMMY in module ida_name: + + do not create a new dummy name but pretend it exists + +Documentation on variable GNCN_NOSEG in module ida_name: + + ignore the segment prefix when producing the name + +Documentation on variable GNCN_NOCOLOR in module ida_name: + + generate an uncolored name + +Documentation on variable GNCN_NOLABEL in module ida_name: + + don't generate labels + +Documentation on variable GNCN_NOFUNC in module ida_name: + + don't generate funcname+... expressions + +Documentation on variable GNCN_SEG_FUNC in module ida_name: + + generate both segment and function names (default is to omit segment name if a + function name is present) + +Documentation on variable GNCN_SEGNUM in module ida_name: + + segment part is displayed as a hex number + +Documentation on variable GNCN_REQFUNC in module ida_name: + + return 0 if the address does not belong to a function + +Documentation on variable GNCN_REQNAME in module ida_name: + + return 0 if the address can only be represented as a hex number + +Documentation on variable GNCN_NODBGNM in module ida_name: + + don't use debug names + +Documentation on variable GNCN_PREFDBG in module ida_name: + + if using debug names, prefer debug names over function names + +Documentation on variable DEBNAME_EXACT in module ida_name: + + find a name at exactly the specified address + +Documentation on variable DEBNAME_LOWER in module ida_name: + + find a name with the address >= the specified address + +Documentation on variable DEBNAME_UPPER in module ida_name: + + find a name with the address > the specified address + +Documentation on variable DEBNAME_NICE in module ida_name: + + find a name with the address <= the specified address + +Documentation on variable BADNODE in module ida_netnode: + + A number to represent a bad netnode reference. + +Documentation on variable MAXNAMESIZE in module ida_netnode: + + Maximum length of a netnode name. WILL BE REMOVED IN THE FUTURE. + +Documentation on variable MAX_NODENAME_SIZE in module ida_netnode: + + Maximum length of a name. We permit names up to 32KB-1 bytes. + +Documentation on variable MAXSPECSIZE in module ida_netnode: + + Maximum length of strings or objects stored in a supval array element. + +Documentation on variable atag in module ida_netnode: + + Array of altvals. + +Documentation on variable stag in module ida_netnode: + + Array of supvals. + +Documentation on variable htag in module ida_netnode: + + Array of hashvals. + +Documentation on variable vtag in module ida_netnode: + + Value of netnode. + +Documentation on variable ntag in module ida_netnode: + + Name of netnode. + +Documentation on variable ltag in module ida_netnode: + + Links between netnodes. + +Documentation on variable IDA_SDK_VERSION in module ida_pro: + + IDA SDK v8.2. + +Documentation on variable MAXSTR in module ida_pro: + + maximum string size + +Documentation on variable __MF__ in module ida_pro: + + byte sex of our platform (Most significant byte First). 0: little endian (Intel + 80x86). 1: big endian (PowerPC). + +Documentation on variable qrefcnt_obj_t.refcnt in module ida_pro: + + counter + +Documentation on variable IDBDEC_ESCAPE in module ida_pro: + + convert non-printable characters to C escapes ( + , \xNN, \uNNNN) + +Documentation on variable CP_UTF16 in module ida_pro: + + UTF-16 codepage. + +Documentation on variable SUBSTCHAR in module ida_pro: + + default char, used if a char cannot be represented in a codepage + +Documentation on variable channel_redir_t.fd in module ida_pro: + + channel number + +Documentation on variable channel_redir_t.file in module ida_pro: + + file name to redirect to/from. if empty, the channel must be closed. + +Documentation on variable channel_redir_t.flags in module ida_pro: + + i/o redirection flags + +Documentation on variable channel_redir_t.start in module ida_pro: + + begin of the redirection string in the command line + +Documentation on variable channel_redir_t.length in module ida_pro: + + length of the redirection string in the command line + +Documentation on variable IOREDIR_INPUT in module ida_pro: + + input redirection + +Documentation on variable IOREDIR_OUTPUT in module ida_pro: + + output redirection + +Documentation on variable IOREDIR_APPEND in module ida_pro: + + append, do not overwrite the output file + +Documentation on variable IOREDIR_QUOTED in module ida_pro: + + the file name was quoted + +Documentation on variable instant_dbgopts_t.debmod in module ida_pro: + + name of debugger module + +Documentation on variable instant_dbgopts_t.env in module ida_pro: + + config variables for debmod. example: DEFAULT_CPU=13;MAXPACKETSIZE=-1 + +Documentation on variable instant_dbgopts_t.host in module ida_pro: + + remote hostname (if remote debugging) + +Documentation on variable instant_dbgopts_t.port in module ida_pro: + + port number for the remote debugger server + +Documentation on variable instant_dbgopts_t.pid in module ida_pro: + + process to attach to (-1: ask the user) + +Documentation on variable instant_dbgopts_t.event_id in module ida_pro: + + event to trigger upon attaching + +Documentation on variable instant_dbgopts_t.attach in module ida_pro: + + should attach to a process? + +Documentation on variable _qstrvec_t.size in module ida_pro: + + Returns the count of elements + +Documentation on variable PR_NOBASE in module ida_problems: + + Can't find offset base. + +Documentation on variable PR_NONAME in module ida_problems: + + Can't find name. + +Documentation on variable PR_NOFOP in module ida_problems: + + Can't find forced op (not used anymore) + +Documentation on variable PR_NOCMT in module ida_problems: + + Can't find comment (not used anymore) + +Documentation on variable PR_NOXREFS in module ida_problems: + + Can't find references. + +Documentation on variable PR_JUMP in module ida_problems: + + Jump by table !!!! ignored. + +Documentation on variable PR_DISASM in module ida_problems: + + Can't disasm. + +Documentation on variable PR_HEAD in module ida_problems: + + Already head. + +Documentation on variable PR_ILLADDR in module ida_problems: + + Exec flows beyond limits. + +Documentation on variable PR_MANYLINES in module ida_problems: + + Too many lines. + +Documentation on variable PR_BADSTACK in module ida_problems: + + Failed to trace the value of the stack pointer. + +Documentation on variable PR_ATTN in module ida_problems: + + Attention! Probably erroneous situation. + +Documentation on variable PR_FINAL in module ida_problems: + + Decision to convert to instruction/data is made by IDA. + +Documentation on variable PR_ROLLED in module ida_problems: + + The decision made by IDA was wrong and rolled back. + +Documentation on variable PR_COLLISION in module ida_problems: + + FLAIR collision: the function with the given name already exists. + +Documentation on variable PR_DECIMP in module ida_problems: + + FLAIR match indecision: the patterns matched, but not the function(s) being + referenced. + +Documentation on variable PR_END in module ida_problems: + + Number of problem types. + +Documentation on variable range_t.start_ea in module ida_range: + + start_ea included + +Documentation on variable range_t.end_ea in module ida_range: + + end_ea excluded + +Documentation on variable RANGE_KIND_FUNC in module ida_range: + + func_t + +Documentation on variable RANGE_KIND_SEGMENT in module ida_range: + + segment_t + +Documentation on variable RANGE_KIND_HIDDEN_RANGE in module ida_range: + + hidden_range_t + +Documentation on variable ROOT_KEY_NAME in module ida_registry: + + Default key used to store IDA settings in registry (Windows version). + @note: this name is automatically prepended to all key names passed to functions + in this file. + +Documentation on variable reg_unknown in module ida_registry: + + unknown + +Documentation on variable reg_sz in module ida_registry: + + utf8 string + +Documentation on variable reg_binary in module ida_registry: + + binary data + +Documentation on variable reg_dword in module ida_registry: + + 32-bit number + +Documentation on variable SEARCH_UP in module ida_search: + + search towards lower addresses + +Documentation on variable SEARCH_DOWN in module ida_search: + + search towards higher addresses + +Documentation on variable SEARCH_NEXT in module ida_search: + + skip the starting address when searching. this bit is useful only for search(), + bin_search2(), find_reg_access(). find_.. functions skip the starting address + automatically. + +Documentation on variable SEARCH_CASE in module ida_search: + + case-sensitive search (case-insensitive otherwise) + +Documentation on variable SEARCH_REGEX in module ida_search: + + regular expressions in search string (supported only for the text search) + +Documentation on variable SEARCH_NOBRK in module ida_search: + + do not test if the user clicked cancel to interrupt the search + +Documentation on variable SEARCH_NOSHOW in module ida_search: + + do not display the search progress/refresh screen + +Documentation on variable SEARCH_IDENT in module ida_search: + + search for an identifier (text search). it means that the characters before and + after the match cannot be is_visible_char(). + +Documentation on variable SEARCH_BRK in module ida_search: + + return BADADDR if the search was cancelled. + +Documentation on variable SEARCH_USESEL in module ida_search: + + query the UI for a possible current selection to limit the search to + +Documentation on variable SREG_NUM in module ida_segment: + + Maximum number of segment registers is 16 (see segregs.hpp) + +Documentation on variable segment_t.name in module ida_segment: + + use get/set_segm_name() functions + +Documentation on variable segment_t.sclass in module ida_segment: + + use get/set_segm_class() functions + +Documentation on variable segment_t.orgbase in module ida_segment: + + this field is IDP dependent. you may keep your information about the segment + here + +Documentation on variable segment_t.align in module ida_segment: + + Segment alignment codes + +Documentation on variable segment_t.comb in module ida_segment: + + Segment combination codes + +Documentation on variable segment_t.perm in module ida_segment: + + Segment permissions (0 means no information) + +Documentation on variable segment_t.bitness in module ida_segment: + + Number of bits in the segment addressing + * 0: 16 bits + * 1: 32 bits + * 2: 64 bits + +Documentation on variable segment_t.flags in module ida_segment: + + Segment flags + +Documentation on variable segment_t.sel in module ida_segment: + + segment selector - should be unique. You can't change this field after creating + the segment. Exception: 16bit OMF files may have several segments with the same + selector, but this is not good (no way to denote a segment exactly) so it should + be fixed in the future. + +Documentation on variable segment_t.defsr in module ida_segment: + + default segment register values. first element of this array keeps information + about value of processor_t::reg_first_sreg + +Documentation on variable segment_t.type in module ida_segment: + + segment type (see Segment types). The kernel treats different segment types + differently. Segments marked with '*' contain no instructions or data and are + not declared as 'segments' in the disassembly. + +Documentation on variable segment_t.color in module ida_segment: + + the segment color + +Documentation on variable saAbs in module ida_segment: + + Absolute segment. + +Documentation on variable saRelByte in module ida_segment: + + Relocatable, byte aligned. + +Documentation on variable saRelWord in module ida_segment: + + Relocatable, word (2-byte) aligned. + +Documentation on variable saRelPara in module ida_segment: + + Relocatable, paragraph (16-byte) aligned. + +Documentation on variable saRelPage in module ida_segment: + + Relocatable, aligned on 256-byte boundary. + +Documentation on variable saRelDble in module ida_segment: + + Relocatable, aligned on a double word (4-byte) boundary. + +Documentation on variable saRel4K in module ida_segment: + + This value is used by the PharLap OMF for page (4K) alignment. It is not + supported by LINK. + +Documentation on variable saGroup in module ida_segment: + + Segment group. + +Documentation on variable saRel32Bytes in module ida_segment: + + 32 bytes + +Documentation on variable saRel64Bytes in module ida_segment: + + 64 bytes + +Documentation on variable saRelQword in module ida_segment: + + 8 bytes + +Documentation on variable saRel128Bytes in module ida_segment: + + 128 bytes + +Documentation on variable saRel512Bytes in module ida_segment: + + 512 bytes + +Documentation on variable saRel1024Bytes in module ida_segment: + + 1024 bytes + +Documentation on variable saRel2048Bytes in module ida_segment: + + 2048 bytes + +Documentation on variable scPriv in module ida_segment: + + Private. Do not combine with any other program segment. + +Documentation on variable scGroup in module ida_segment: + + Segment group. + +Documentation on variable scPub in module ida_segment: + + Public. Combine by appending at an offset that meets the alignment requirement. + +Documentation on variable scPub2 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable scStack in module ida_segment: + + Stack. Combine as for C=2. This combine type forces byte alignment. + +Documentation on variable scCommon in module ida_segment: + + Common. Combine by overlay using maximum size. + +Documentation on variable scPub3 in module ida_segment: + + As defined by Microsoft, same as C=2 (public). + +Documentation on variable SEGPERM_EXEC in module ida_segment: + + Execute. + +Documentation on variable SEGPERM_WRITE in module ida_segment: + + Write. + +Documentation on variable SEGPERM_READ in module ida_segment: + + Read. + +Documentation on variable SFL_COMORG in module ida_segment: + + IDP dependent field (IBM PC: if set, ORG directive is not commented out) + +Documentation on variable SFL_OBOK in module ida_segment: + + Orgbase is present? (IDP dependent field) + +Documentation on variable SFL_HIDDEN in module ida_segment: + + Is the segment hidden? + +Documentation on variable SFL_DEBUG in module ida_segment: + + Is the segment created for the debugger?. Such segments are temporary and do not + have permanent flags. + +Documentation on variable SFL_LOADER in module ida_segment: + + Is the segment created by the loader? + +Documentation on variable SFL_HIDETYPE in module ida_segment: + + Hide segment type (do not print it in the listing) + +Documentation on variable SFL_HEADER in module ida_segment: + + Header segment (do not create offsets to it in the disassembly) + +Documentation on variable SEG_NORM in module ida_segment: + + unknown type, no assumptions + +Documentation on variable SEG_XTRN in module ida_segment: + + * segment with 'extern' definitions. no instructions are allowed + +Documentation on variable SEG_CODE in module ida_segment: + + code segment + +Documentation on variable SEG_DATA in module ida_segment: + + data segment + +Documentation on variable SEG_GRP in module ida_segment: + + * group of segments + +Documentation on variable SEG_NULL in module ida_segment: + + zero-length segment + +Documentation on variable SEG_UNDF in module ida_segment: + + undefined segment type (not used) + +Documentation on variable SEG_BSS in module ida_segment: + + uninitialized segment + +Documentation on variable SEG_ABSSYM in module ida_segment: + + * segment with definitions of absolute symbols + +Documentation on variable SEG_COMM in module ida_segment: + + * segment with communal definitions + +Documentation on variable SEG_IMEM in module ida_segment: + + internal processor memory & sfr (8051) + +Documentation on variable ADDSEG_NOSREG in module ida_segment: + + set all default segment register values to BADSEL (undefine all default segment + registers) + +Documentation on variable ADDSEG_OR_DIE in module ida_segment: + + qexit() if can't add a segment + +Documentation on variable ADDSEG_NOTRUNC in module ida_segment: + + don't truncate the new segment at the beginning of the next segment if they + overlap. destroy/truncate old segments instead. + +Documentation on variable ADDSEG_QUIET in module ida_segment: + + silent mode, no "Adding segment..." in the messages window + +Documentation on variable ADDSEG_FILLGAP in module ida_segment: + + fill gap between new segment and previous one. i.e. if such a gap exists, and + this gap is less than 64K, then fill the gap by extending the previous segment + and adding .align directive to it. This way we avoid gaps between segments. too + many gaps lead to a virtual array failure. it cannot hold more than ~1000 gaps. + +Documentation on variable ADDSEG_SPARSE in module ida_segment: + + use sparse storage method for the new ranges of the created segment. please note + that the ranges that were already enabled before creating the segment will not + change their storage type. + +Documentation on variable ADDSEG_NOAA in module ida_segment: + + do not mark new segment for auto-analysis + +Documentation on variable ADDSEG_IDBENC in module ida_segment: + + 'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes will be + decoded accordingly + +Documentation on variable SEGMOD_KILL in module ida_segment: + + disable addresses if segment gets shrinked or deleted + +Documentation on variable SEGMOD_KEEP in module ida_segment: + + keep information (code & data, etc) + +Documentation on variable SEGMOD_SILENT in module ida_segment: + + be silent + +Documentation on variable SEGMOD_KEEP0 in module ida_segment: + + flag for internal use, don't set + +Documentation on variable SEGMOD_KEEPSEL in module ida_segment: + + do not try to delete unused selector + +Documentation on variable SEGMOD_NOMOVE in module ida_segment: + + don't move info from the start of segment to the new start address (for + set_segm_start()) + +Documentation on variable SEGMOD_SPARSE in module ida_segment: + + use sparse storage if extending the segment (for set_segm_start(), + set_segm_end()) + +Documentation on variable MSF_SILENT in module ida_segment: + + don't display a "please wait" box on the screen + +Documentation on variable MSF_NOFIX in module ida_segment: + + don't call the loader to fix relocations + +Documentation on variable MSF_LDKEEP in module ida_segment: + + keep the loader in the memory (optimization) + +Documentation on variable MSF_FIXONCE in module ida_segment: + + call loader only once with the special calling method. valid for + rebase_program(). see loader_t::move_segm. + +Documentation on variable MSF_PRIORITY in module ida_segment: + + loader segments will overwrite any existing debugger segments when moved. valid + for move_segm() + +Documentation on variable MSF_NETNODES in module ida_segment: + + move netnodes instead of changing inf.netdelta (this is slower); valid for + rebase_program() + +Documentation on variable MOVE_SEGM_OK in module ida_segment: + + all ok + +Documentation on variable MOVE_SEGM_PARAM in module ida_segment: + + The specified segment does not exist. + +Documentation on variable MOVE_SEGM_ROOM in module ida_segment: + + Not enough free room at the target address. + +Documentation on variable MOVE_SEGM_IDP in module ida_segment: + + IDP module forbids moving the segment. + +Documentation on variable MOVE_SEGM_CHUNK in module ida_segment: + + Too many chunks are defined, can't move. + +Documentation on variable MOVE_SEGM_LOADER in module ida_segment: + + The segment has been moved but the loader complained. + +Documentation on variable MOVE_SEGM_ODD in module ida_segment: + + Cannot move segments by an odd number of bytes. + +Documentation on variable MOVE_SEGM_ORPHAN in module ida_segment: + + Orphan bytes hinder segment movement. + +Documentation on variable MOVE_SEGM_DEBUG in module ida_segment: + + Debugger segments cannot be moved. + +Documentation on variable MOVE_SEGM_SOURCEFILES in module ida_segment: + + Source files ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_MAPPING in module ida_segment: + + Memory mapping ranges of addresses hinder segment movement. + +Documentation on variable MOVE_SEGM_INVAL in module ida_segment: + + Invalid argument (delta/target does not fit the address space) + +Documentation on variable CSS_OK in module ida_segment: + + ok + +Documentation on variable CSS_NODBG in module ida_segment: + + debugger is not running + +Documentation on variable CSS_NORANGE in module ida_segment: + + could not find corresponding memory range + +Documentation on variable CSS_NOMEM in module ida_segment: + + not enough memory (might be because the segment is too big) + +Documentation on variable CSS_BREAK in module ida_segment: + + memory reading process stopped by user + +Documentation on variable SNAP_ALL_SEG in module ida_segment: + + Take a snapshot of all segments. + +Documentation on variable SNAP_LOAD_SEG in module ida_segment: + + Take a snapshot of loader segments. + +Documentation on variable SNAP_CUR_SEG in module ida_segment: + + Take a snapshot of current segment. + +Documentation on variable MAX_GROUPS in module ida_segment: + + max number of segment groups + +Documentation on variable MAX_SEGM_TRANSLATIONS in module ida_segment: + + max number of segment translations + +Documentation on variable sreg_range_t.val in module ida_segregs: + + segment register value + +Documentation on variable sreg_range_t.tag in module ida_segregs: + + Segment register range tags + +Documentation on variable SR_inherit in module ida_segregs: + + the value is inherited from the previous range + +Documentation on variable SR_user in module ida_segregs: + + the value is specified by the user + +Documentation on variable SR_auto in module ida_segregs: + + the value is determined by IDA + +Documentation on variable SR_autostart in module ida_segregs: + + used as SR_auto for segment starting address + +Documentation on variable SRCLANG_C in module ida_srclang: + + C. + +Documentation on variable SRCLANG_CPP in module ida_srclang: + + C++. + +Documentation on variable SRCLANG_OBJC in module ida_srclang: + + Objective-C. + +Documentation on variable SRCLANG_SWIFT in module ida_srclang: + + Swift (not supported yet) + +Documentation on variable SRCLANG_GO in module ida_srclang: + + Golang (not supported yet) + +Documentation on variable STRUC_SEPARATOR in module ida_struct: + + structname.fieldname + +Documentation on variable member_t.id in module ida_struct: + + name(), cmt, rptcmt + +Documentation on variable member_t.soff in module ida_struct: + + start offset (for unions - number of the member 0..n) + +Documentation on variable member_t.eoff in module ida_struct: + + end offset + +Documentation on variable member_t.flag in module ida_struct: + + type+representation bits + +Documentation on variable member_t.props in module ida_struct: + + Struct member properties + +Documentation on variable MF_OK in module ida_struct: + + is the member ok? (always yes) + +Documentation on variable MF_UNIMEM in module ida_struct: + + is a member of a union? + +Documentation on variable MF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable MF_BYTIL in module ida_struct: + + the member was created due to the type system + +Documentation on variable MF_HASTI in module ida_struct: + + has type information? + +Documentation on variable MF_BASECLASS in module ida_struct: + + a special member representing base class + +Documentation on variable MF_DTOR in module ida_struct: + + a special member representing destructor + +Documentation on variable MF_DUPNAME in module ida_struct: + + duplicate name resolved with _N suffix (N==soff) + +Documentation on variable struc_t.id in module ida_struct: + + struct id + +Documentation on variable struc_t.memqty in module ida_struct: + + number of members + +Documentation on variable struc_t.members in module ida_struct: + + only defined members are stored here. there may be gaps between members. + +Documentation on variable struc_t.age in module ida_struct: + + not used + +Documentation on variable struc_t.props in module ida_struct: + + Structure properties + +Documentation on variable struc_t.ordinal in module ida_struct: + + corresponding local type ordinal number + +Documentation on variable SF_VAR in module ida_struct: + + is variable size structure (varstruct)? a variable size structure is one with + the zero size last member. if the last member is a varstruct, then the current + structure is a varstruct too. + +Documentation on variable SF_UNION in module ida_struct: + + is a union? varunions are prohibited! + +Documentation on variable SF_HASUNI in module ida_struct: + + has members of type "union"? + +Documentation on variable SF_NOLIST in module ida_struct: + + don't include in the chooser list + +Documentation on variable SF_TYPLIB in module ida_struct: + + the structure comes from type library + +Documentation on variable SF_HIDDEN in module ida_struct: + + the structure is collapsed + +Documentation on variable SF_FRAME in module ida_struct: + + the structure is a function frame + +Documentation on variable SF_ALIGN in module ida_struct: + + alignment (shift amount: 0..31) + +Documentation on variable SF_GHOST in module ida_struct: + + ghost copy of a local type + +Documentation on variable STRNFL_REGEX in module ida_struct: + + apply regular expressions to beautify the name + +Documentation on variable STRUC_ERROR_MEMBER_OK in module ida_struct: + + success + +Documentation on variable STRUC_ERROR_MEMBER_NAME in module ida_struct: + + already has member with this name (bad name) + +Documentation on variable STRUC_ERROR_MEMBER_OFFSET in module ida_struct: + + already has member at this offset + +Documentation on variable STRUC_ERROR_MEMBER_SIZE in module ida_struct: + + bad number of bytes or bad sizeof(type) + +Documentation on variable STRUC_ERROR_MEMBER_TINFO in module ida_struct: + + bad typeid parameter + +Documentation on variable STRUC_ERROR_MEMBER_STRUCT in module ida_struct: + + bad struct id (the 1st argument) + +Documentation on variable STRUC_ERROR_MEMBER_UNIVAR in module ida_struct: + + unions can't have variable sized members + +Documentation on variable STRUC_ERROR_MEMBER_VARLAST in module ida_struct: + + variable sized member should be the last member in the structure + +Documentation on variable STRUC_ERROR_MEMBER_NESTED in module ida_struct: + + recursive structure nesting is forbidden + +Documentation on variable SMT_BADARG in module ida_struct: + + bad parameters + +Documentation on variable SMT_NOCOMPAT in module ida_struct: + + the new type is not compatible with the old type + +Documentation on variable SMT_WORSE in module ida_struct: + + the new type is worse than the old type + +Documentation on variable SMT_SIZE in module ida_struct: + + the new type is incompatible with the member size + +Documentation on variable SMT_ARRAY in module ida_struct: + + arrays are forbidden as function arguments + +Documentation on variable SMT_OVERLAP in module ida_struct: + + member would overlap with members that cannot be deleted + +Documentation on variable SMT_FAILED in module ida_struct: + + failed to set new member type + +Documentation on variable SMT_KEEP in module ida_struct: + + no need to change the member type, the old type is better + +Documentation on variable SET_MEMTI_MAY_DESTROY in module ida_struct: + + may destroy other members + +Documentation on variable SET_MEMTI_COMPATIBLE in module ida_struct: + + new type must be compatible with the old + +Documentation on variable SET_MEMTI_FUNCARG in module ida_struct: + + mptr is function argument (cannot create arrays) + +Documentation on variable SET_MEMTI_BYTIL in module ida_struct: + + new type was created by the type subsystem + +Documentation on variable SET_MEMTI_USERTI in module ida_struct: + + user-specified type + +Documentation on variable TBERR_OK in module ida_tryblks: + + ok + +Documentation on variable TBERR_START in module ida_tryblks: + + bad start address + +Documentation on variable TBERR_END in module ida_tryblks: + + bad end address + +Documentation on variable TBERR_ORDER in module ida_tryblks: + + bad address order + +Documentation on variable TBERR_EMPTY in module ida_tryblks: + + empty try block + +Documentation on variable TBERR_KIND in module ida_tryblks: + + illegal try block kind + +Documentation on variable TBERR_NO_CATCHES in module ida_tryblks: + + no catch blocks at all + +Documentation on variable TBERR_INTERSECT in module ida_tryblks: + + range would intersect inner tryblk + +Documentation on variable RESERVED_BYTE in module ida_typeinf: + + multifunctional purpose + +Documentation on variable TAH_BYTE in module ida_typeinf: + + type attribute header byte + +Documentation on variable FAH_BYTE in module ida_typeinf: + + function argument attribute header byte + +Documentation on variable TAH_HASATTRS in module ida_typeinf: + + has extended attributes + +Documentation on variable TAFLD_METHOD in module ida_typeinf: + + denotes a udt member function + +Documentation on variable TAH_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable type_attr_t.key in module ida_typeinf: + + one symbol keys are reserved to be used by the kernel the ones starting with an + underscore are reserved too + +Documentation on variable type_attr_t.value in module ida_typeinf: + + attribute bytes + +Documentation on variable TYPE_BASE_MASK in module ida_typeinf: + + the low 4 bits define the basic type + +Documentation on variable TYPE_FLAGS_MASK in module ida_typeinf: + + type flags - they have different meaning depending on the basic type + +Documentation on variable TYPE_MODIF_MASK in module ida_typeinf: + + modifiers. + * for BT_ARRAY see Derived type: array + * BT_VOID can have them ONLY in 'void *' + +Documentation on variable TYPE_FULL_MASK in module ida_typeinf: + + basic type with type flags + +Documentation on variable BT_UNK in module ida_typeinf: + + unknown + +Documentation on variable BT_VOID in module ida_typeinf: + + void + +Documentation on variable BTMT_SIZE0 in module ida_typeinf: + + BT_VOID - normal void; BT_UNK - don't use + +Documentation on variable BTMT_SIZE12 in module ida_typeinf: + + size = 1 byte if BT_VOID; 2 if BT_UNK + +Documentation on variable BTMT_SIZE48 in module ida_typeinf: + + size = 4 bytes if BT_VOID; 8 if BT_UNK + +Documentation on variable BTMT_SIZE128 in module ida_typeinf: + + size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below) + +Documentation on variable BT_INT8 in module ida_typeinf: + + __int8 + +Documentation on variable BT_INT16 in module ida_typeinf: + + __int16 + +Documentation on variable BT_INT32 in module ida_typeinf: + + __int32 + +Documentation on variable BT_INT64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_INT128 in module ida_typeinf: + + __int128 (for alpha & future use) + +Documentation on variable BT_INT in module ida_typeinf: + + natural int. (size provided by idp module) + +Documentation on variable BTMT_UNKSIGN in module ida_typeinf: + + unknown signedness + +Documentation on variable BTMT_SIGNED in module ida_typeinf: + + signed + +Documentation on variable BTMT_USIGNED in module ida_typeinf: + + unsigned + +Documentation on variable BTMT_CHAR in module ida_typeinf: + + specify char or segment register + * BT_INT8 - char + * BT_INT - segment register + * other BT_INT... - don't use + +Documentation on variable BT_BOOL in module ida_typeinf: + + bool + +Documentation on variable BTMT_DEFBOOL in module ida_typeinf: + + size is model specific or unknown(?) + +Documentation on variable BTMT_BOOL1 in module ida_typeinf: + + size 1byte + +Documentation on variable BTMT_BOOL2 in module ida_typeinf: + + size 2bytes - !inf_is_64bit() + +Documentation on variable BTMT_BOOL8 in module ida_typeinf: + + size 8bytes - inf_is_64bit() + +Documentation on variable BTMT_BOOL4 in module ida_typeinf: + + size 4bytes + +Documentation on variable BT_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTMT_FLOAT in module ida_typeinf: + + float (4 bytes) + +Documentation on variable BTMT_DOUBLE in module ida_typeinf: + + double (8 bytes) + +Documentation on variable BTMT_LNGDBL in module ida_typeinf: + + long double (compiler specific) + +Documentation on variable BTMT_SPECFLT in module ida_typeinf: + + float (variable size). if processor_t::use_tbyte() then use + processor_t::tbyte_size, otherwise 2 bytes + +Documentation on variable _BT_LAST_BASIC in module ida_typeinf: + + the last basic type, all basic types may be followed by [tah-typeattrs] + +Documentation on variable BT_PTR in module ida_typeinf: + + pointer. has the following format: [db sizeof(ptr)]; [tah-typeattrs]; type_t... + +Documentation on variable BTMT_DEFPTR in module ida_typeinf: + + default for model + +Documentation on variable BTMT_NEAR in module ida_typeinf: + + near + +Documentation on variable BTMT_FAR in module ida_typeinf: + + far + +Documentation on variable BTMT_CLOSURE in module ida_typeinf: + + closure. + * if ptr to BT_FUNC - __closure. in this case next byte MUST be RESERVED_BYTE, + and after it BT_FUNC + * else the next byte contains sizeof(ptr) allowed values are 1 - ph.max_ptr_size + * if value is bigger than ph.max_ptr_size, based_ptr_name_and_size() is called + to find out the typeinfo + +Documentation on variable BT_ARRAY in module ida_typeinf: + + array + +Documentation on variable BTMT_NONBASED in module ida_typeinf: + + if set + array base==0 + format: dt num_elem; [tah-typeattrs]; type_t... + if num_elem==0 then the array size is unknown + else + format: da num_elem, base; [tah-typeattrs]; type_t... + used only for serialization + +Documentation on variable BTMT_ARRESERV in module ida_typeinf: + + reserved bit + +Documentation on variable BT_FUNC in module ida_typeinf: + + function. format: + optional: CM_CC_SPOILED | num_of_spoiled_regs + if num_of_spoiled_reg == BFA_FUNC_MARKER: + ::bfa_byte + if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0 + ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL) + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + else + bfa_byte is function attribute byte (see Function attribute + byte...) + else: + num_of_spoiled_reg times: spoiled reg info (see + extract_spoiledreg) + cm_t ... calling convention and memory model + [tah-typeattrs]; + type_t ... return type; + [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return + void); + if !CM_CC_VOIDARG: + dt N (N=number of parameters) + if ( N == 0 ) + if CM_CC_ELLIPSIS or CM_CC_SPECIALE + func(...) + else + parameters are unknown + else + N records: + type_t ... (i.e. type of each parameter) + [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each + parameter) + [FAH_BYTE + de( funcarg_t::flags )] + +Documentation on variable BTMT_DEFCALL in module ida_typeinf: + + call method - default for model or unknown + +Documentation on variable BTMT_NEARCALL in module ida_typeinf: + + function returns by retn + +Documentation on variable BTMT_FARCALL in module ida_typeinf: + + function returns by retf + +Documentation on variable BTMT_INTCALL in module ida_typeinf: + + function returns by iret in this case cc MUST be 'unknown' + +Documentation on variable BT_COMPLEX in module ida_typeinf: + + struct/union/enum/typedef. format: + [dt N (N=field count) if !BTMT_TYPEDEF] + if N == 0: + p_string name (unnamed types have names "anon_...") + [sdacl-typeattrs]; + else, for struct & union: + if N == 0x7FFE // Support for high (i.e., > 4095) members count + N = deserialize_de() + ALPOW = N & 0x7 + MCNT = N >> 3 + if MCNT == 0 + empty struct + if ALPOW == 0 + ALIGN = get_default_align() + else + ALIGN = (1 << (ALPOW - 1)) + [sdacl-typeattrs]; + else, for enums: + if N == 0x7FFE // Support for high enum entries count. + N = deserialize_de() + [tah-typeattrs]; + +Documentation on variable BTMT_TYPEDEF in module ida_typeinf: + + named reference always p_string name + +Documentation on variable BT_BITFIELD in module ida_typeinf: + + bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in + bits << 1) | (unsigned ? 1 : 0)) + +Documentation on variable BTMT_BFLDI8 in module ida_typeinf: + + __int8 + +Documentation on variable BTMT_BFLDI16 in module ida_typeinf: + + __int16 + +Documentation on variable BTMT_BFLDI32 in module ida_typeinf: + + __int32 + +Documentation on variable BTMT_BFLDI64 in module ida_typeinf: + + __int64 + +Documentation on variable BT_RESERVED in module ida_typeinf: + + RESERVED. + +Documentation on variable BTM_CONST in module ida_typeinf: + + const + +Documentation on variable BTM_VOLATILE in module ida_typeinf: + + volatile + +Documentation on variable BTE_SIZE_MASK in module ida_typeinf: + + storage size. + * if == 0 then inf_get_cc_size_e() + * else 1 << (n -1) = 1,2,4...64 + +Documentation on variable BTE_RESERVED in module ida_typeinf: + + must be 0, in order to distinguish from a tah-byte + +Documentation on variable BTE_BITFIELD in module ida_typeinf: + + 'subarrays'. In this case ANY record has the following format: + * 'de' mask (has name) + * 'dt' cnt + * cnt records of 'de' values (cnt CAN be 0) + @note: delta for ALL subsegment is ONE + +Documentation on variable BTE_OUT_MASK in module ida_typeinf: + + output style mask + +Documentation on variable BTE_HEX in module ida_typeinf: + + hex + +Documentation on variable BTE_CHAR in module ida_typeinf: + + char or hex + +Documentation on variable BTE_SDEC in module ida_typeinf: + + signed decimal + +Documentation on variable BTE_UDEC in module ida_typeinf: + + unsigned decimal + +Documentation on variable BTE_ALWAYS in module ida_typeinf: + + this bit MUST be present + +Documentation on variable BT_SEGREG in module ida_typeinf: + + segment register + +Documentation on variable BT_UNK_BYTE in module ida_typeinf: + + 1 byte + +Documentation on variable BT_UNK_WORD in module ida_typeinf: + + 2 bytes + +Documentation on variable BT_UNK_DWORD in module ida_typeinf: + + 4 bytes + +Documentation on variable BT_UNK_QWORD in module ida_typeinf: + + 8 bytes + +Documentation on variable BT_UNK_OWORD in module ida_typeinf: + + 16 bytes + +Documentation on variable BT_UNKNOWN in module ida_typeinf: + + unknown size - for parameters + +Documentation on variable BTF_BYTE in module ida_typeinf: + + byte + +Documentation on variable BTF_UNK in module ida_typeinf: + + unknown + +Documentation on variable BTF_VOID in module ida_typeinf: + + void + +Documentation on variable BTF_INT8 in module ida_typeinf: + + signed byte + +Documentation on variable BTF_CHAR in module ida_typeinf: + + signed char + +Documentation on variable BTF_UCHAR in module ida_typeinf: + + unsigned char + +Documentation on variable BTF_UINT8 in module ida_typeinf: + + unsigned byte + +Documentation on variable BTF_INT16 in module ida_typeinf: + + signed short + +Documentation on variable BTF_UINT16 in module ida_typeinf: + + unsigned short + +Documentation on variable BTF_INT32 in module ida_typeinf: + + signed int + +Documentation on variable BTF_UINT32 in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_INT64 in module ida_typeinf: + + signed long + +Documentation on variable BTF_UINT64 in module ida_typeinf: + + unsigned long + +Documentation on variable BTF_INT128 in module ida_typeinf: + + signed 128-bit value + +Documentation on variable BTF_UINT128 in module ida_typeinf: + + unsigned 128-bit value + +Documentation on variable BTF_INT in module ida_typeinf: + + int, unknown signedness + +Documentation on variable BTF_UINT in module ida_typeinf: + + unsigned int + +Documentation on variable BTF_SINT in module ida_typeinf: + + singed int + +Documentation on variable BTF_BOOL in module ida_typeinf: + + boolean + +Documentation on variable BTF_FLOAT in module ida_typeinf: + + float + +Documentation on variable BTF_DOUBLE in module ida_typeinf: + + double + +Documentation on variable BTF_LDOUBLE in module ida_typeinf: + + long double + +Documentation on variable BTF_TBYTE in module ida_typeinf: + + see BTMT_SPECFLT + +Documentation on variable BTF_STRUCT in module ida_typeinf: + + struct + +Documentation on variable BTF_UNION in module ida_typeinf: + + union + +Documentation on variable BTF_ENUM in module ida_typeinf: + + enum + +Documentation on variable BTF_TYPEDEF in module ida_typeinf: + + typedef + +Documentation on variable til_t.name in module ida_typeinf: + + short file name (without path and extension) + +Documentation on variable til_t.desc in module ida_typeinf: + + human readable til description + +Documentation on variable til_t.nbases in module ida_typeinf: + + number of base tils + +Documentation on variable til_t.flags in module ida_typeinf: + + Type info library property bits + +Documentation on variable til_t.cc in module ida_typeinf: + + information about the target compiler + +Documentation on variable til_t.nrefs in module ida_typeinf: + + number of references to the til + +Documentation on variable til_t.nstreams in module ida_typeinf: + + number of extra streams + +Documentation on variable til_t.streams in module ida_typeinf: + + symbol stream storage + +Documentation on variable no_sign in module ida_typeinf: + + no sign, or unknown + +Documentation on variable type_signed in module ida_typeinf: + + signed type + +Documentation on variable type_unsigned in module ida_typeinf: + + unsigned type + +Documentation on variable TIL_ZIP in module ida_typeinf: + + pack buckets using zip + +Documentation on variable TIL_MAC in module ida_typeinf: + + til has macro table + +Documentation on variable TIL_ESI in module ida_typeinf: + + extended sizeof info (short, long, longlong) + +Documentation on variable TIL_UNI in module ida_typeinf: + + universal til for any compiler + +Documentation on variable TIL_ORD in module ida_typeinf: + + type ordinal numbers are present + +Documentation on variable TIL_ALI in module ida_typeinf: + + type aliases are present (this bit is used only on the disk) + +Documentation on variable TIL_MOD in module ida_typeinf: + + til has been modified, should be saved + +Documentation on variable TIL_STM in module ida_typeinf: + + til has extra streams + +Documentation on variable TIL_SLD in module ida_typeinf: + + sizeof(long double) + +Documentation on variable TIL_ADD_FAILED in module ida_typeinf: + + see errbuf + +Documentation on variable TIL_ADD_OK in module ida_typeinf: + + some tils were added + +Documentation on variable TIL_ADD_ALREADY in module ida_typeinf: + + the base til was already added + +Documentation on variable rrel_t.off in module ida_typeinf: + + displacement from the address pointed by the register + +Documentation on variable rrel_t.reg in module ida_typeinf: + + register index (into ph.reg_names) + +Documentation on variable CM_UNKNOWN in module ida_typeinf: + + unknown + +Documentation on variable CM_N8_F16 in module ida_typeinf: + + if sizeof(int)<=2: near 1 byte, far 2 bytes + +Documentation on variable CM_N64 in module ida_typeinf: + + if sizeof(int)>2: near 8 bytes, far 8 bytes + +Documentation on variable CM_N16_F32 in module ida_typeinf: + + near 2 bytes, far 4 bytes + +Documentation on variable CM_N32_F48 in module ida_typeinf: + + near 4 bytes, far 6 bytes + +Documentation on variable CM_CC_INVALID in module ida_typeinf: + + this value is invalid + +Documentation on variable CM_CC_UNKNOWN in module ida_typeinf: + + unknown calling convention + +Documentation on variable CM_CC_VOIDARG in module ida_typeinf: + + function without arguments if has other cc and argnum == 0, represent as f() - + unknown list + +Documentation on variable CM_CC_CDECL in module ida_typeinf: + + stack + +Documentation on variable CM_CC_ELLIPSIS in module ida_typeinf: + + cdecl + ellipsis + +Documentation on variable CM_CC_STDCALL in module ida_typeinf: + + stack, purged + +Documentation on variable CM_CC_PASCAL in module ida_typeinf: + + stack, purged, reverse order of args + +Documentation on variable CM_CC_FASTCALL in module ida_typeinf: + + stack, purged (x86), first args are in regs (compiler-dependent) + +Documentation on variable CM_CC_THISCALL in module ida_typeinf: + + stack, purged (x86), first arg is in reg (compiler-dependent) + +Documentation on variable CM_CC_MANUAL in module ida_typeinf: + + special case for compiler specific (not used) + +Documentation on variable CM_CC_SPOILED in module ida_typeinf: + + This is NOT a cc! Mark of __spoil record the low nibble is count and after n + {spoilreg_t} present real cm_t byte. if n == BFA_FUNC_MARKER, the next byte is + the function attribute byte. + +Documentation on variable CM_CC_SPECIALE in module ida_typeinf: + + CM_CC_SPECIAL with ellipsis + +Documentation on variable CM_CC_SPECIALP in module ida_typeinf: + + Equal to CM_CC_SPECIAL, but with purged stack. + +Documentation on variable BFA_NORET in module ida_typeinf: + + __noreturn + +Documentation on variable BFA_PURE in module ida_typeinf: + + __pure + +Documentation on variable BFA_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable BFA_STATIC in module ida_typeinf: + + static + +Documentation on variable BFA_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable BFA_FUNC_MARKER in module ida_typeinf: + + This is NOT a cc! (used internally as a marker) + +Documentation on variable BFA_FUNC_EXT_FORMAT in module ida_typeinf: + + This is NOT a real attribute (used internally as marker for extended format) + +Documentation on variable ALOC_NONE in module ida_typeinf: + + none + +Documentation on variable ALOC_STACK in module ida_typeinf: + + stack offset + +Documentation on variable ALOC_DIST in module ida_typeinf: + + distributed (scattered) + +Documentation on variable ALOC_REG1 in module ida_typeinf: + + one register (and offset within it) + +Documentation on variable ALOC_REG2 in module ida_typeinf: + + register pair + +Documentation on variable ALOC_RREL in module ida_typeinf: + + register relative + +Documentation on variable ALOC_STATIC in module ida_typeinf: + + global address + +Documentation on variable ALOC_CUSTOM in module ida_typeinf: + + custom argloc (7 or higher) + +Documentation on variable argpart_t.off in module ida_typeinf: + + offset from the beginning of the argument + +Documentation on variable argpart_t.size in module ida_typeinf: + + the number of bytes + +Documentation on variable PRALOC_VERIFY in module ida_typeinf: + + interr if illegal argloc + +Documentation on variable PRALOC_STKOFF in module ida_typeinf: + + print stack offsets + +Documentation on variable ARGREGS_GP_ONLY in module ida_typeinf: + + GP registers used for all arguments. + +Documentation on variable ARGREGS_INDEPENDENT in module ida_typeinf: + + FP/GP registers used separately (like gcc64) + +Documentation on variable ARGREGS_BY_SLOTS in module ida_typeinf: + + fixed FP/GP register per each slot (like vc64) + +Documentation on variable ARGREGS_FP_CONSUME_GP in module ida_typeinf: + + FP register also consumes one or more GP regs but not vice versa (aix ppc ABI) + +Documentation on variable ARGREGS_MIPS_O32 in module ida_typeinf: + + MIPS ABI o32. + +Documentation on variable callregs_t.policy in module ida_typeinf: + + argument policy + +Documentation on variable callregs_t.nregs in module ida_typeinf: + + max number of registers that can be used in a call + +Documentation on variable callregs_t.gpregs in module ida_typeinf: + + array of gp registers + +Documentation on variable callregs_t.fpregs in module ida_typeinf: + + array of fp registers + +Documentation on variable SETCOMP_OVERRIDE in module ida_typeinf: + + may override old compiler info + +Documentation on variable SETCOMP_ONLY_ID in module ida_typeinf: + + cc has only 'id' field; the rest will be set to defaults corresponding to the + program bitness + +Documentation on variable SETCOMP_ONLY_ABI in module ida_typeinf: + + ignore cc field complete, use only abiname + +Documentation on variable SETCOMP_BY_USER in module ida_typeinf: + + invoked by user, cannot be replaced by module/loader + +Documentation on variable MAX_FUNC_ARGS in module ida_typeinf: + + max number of function arguments + +Documentation on variable sc_unk in module ida_typeinf: + + unknown + +Documentation on variable sc_type in module ida_typeinf: + + typedef + +Documentation on variable sc_ext in module ida_typeinf: + + extern + +Documentation on variable sc_stat in module ida_typeinf: + + static + +Documentation on variable sc_reg in module ida_typeinf: + + register + +Documentation on variable sc_auto in module ida_typeinf: + + auto + +Documentation on variable sc_friend in module ida_typeinf: + + friend + +Documentation on variable sc_virt in module ida_typeinf: + + virtual + +Documentation on variable HTI_CPP in module ida_typeinf: + + C++ mode (not implemented) + +Documentation on variable HTI_TST in module ida_typeinf: + + test mode: discard the result + +Documentation on variable HTI_FIL in module ida_typeinf: + + "input" is file name, otherwise "input" contains a C declaration + +Documentation on variable HTI_MAC in module ida_typeinf: + + define macros from the base tils + +Documentation on variable HTI_NWR in module ida_typeinf: + + no warning messages + +Documentation on variable HTI_NER in module ida_typeinf: + + ignore all errors but display them + +Documentation on variable HTI_DCL in module ida_typeinf: + + don't complain about redeclarations + +Documentation on variable HTI_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable HTI_PAK in module ida_typeinf: + + explicit structure pack value (#pragma pack) + +Documentation on variable HTI_PAK_SHIFT in module ida_typeinf: + + shift for HTI_PAK. This field should be used if you want to remember an explicit + pack value for each structure/union type. See HTI_PAK... definitions + +Documentation on variable HTI_PAKDEF in module ida_typeinf: + + default pack value + +Documentation on variable HTI_PAK1 in module ida_typeinf: + + #pragma pack(1) + +Documentation on variable HTI_PAK2 in module ida_typeinf: + + #pragma pack(2) + +Documentation on variable HTI_PAK4 in module ida_typeinf: + + #pragma pack(4) + +Documentation on variable HTI_PAK8 in module ida_typeinf: + + #pragma pack(8) + +Documentation on variable HTI_PAK16 in module ida_typeinf: + + #pragma pack(16) + +Documentation on variable HTI_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable HTI_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable HTI_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PT_SIL in module ida_typeinf: + + silent, no messages + +Documentation on variable PT_NDC in module ida_typeinf: + + don't decorate names + +Documentation on variable PT_TYP in module ida_typeinf: + + return declared type information + +Documentation on variable PT_VAR in module ida_typeinf: + + return declared object information + +Documentation on variable PT_PACKMASK in module ida_typeinf: + + mask for pack alignment values + +Documentation on variable PT_HIGH in module ida_typeinf: + + assume high level prototypes (with hidden args, etc) + +Documentation on variable PT_LOWER in module ida_typeinf: + + lower the function prototypes + +Documentation on variable PT_REPLACE in module ida_typeinf: + + replace the old type (used in idc) + +Documentation on variable PT_RAWARGS in module ida_typeinf: + + leave argument names unchanged (do not remove underscores) + +Documentation on variable PRTYPE_1LINE in module ida_typeinf: + + print to one line + +Documentation on variable PRTYPE_MULTI in module ida_typeinf: + + print to many lines + +Documentation on variable PRTYPE_TYPE in module ida_typeinf: + + print type declaration (not variable declaration) + +Documentation on variable PRTYPE_PRAGMA in module ida_typeinf: + + print pragmas for alignment + +Documentation on variable PRTYPE_SEMI in module ida_typeinf: + + append ; to the end + +Documentation on variable PRTYPE_CPP in module ida_typeinf: + + use c++ name (only for print_type()) + +Documentation on variable PRTYPE_NOREGEX in module ida_typeinf: + + do not apply regular expressions to beautify name + +Documentation on variable PRTYPE_COLORED in module ida_typeinf: + + add color tag COLOR_SYMBOL for any parentheses, commas and colons + +Documentation on variable NTF_TYPE in module ida_typeinf: + + type name + +Documentation on variable NTF_SYMU in module ida_typeinf: + + symbol, name is unmangled ('func') + +Documentation on variable NTF_SYMM in module ida_typeinf: + + symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM + can be used + +Documentation on variable NTF_NOBASE in module ida_typeinf: + + don't inspect base tils (for get_named_type) + +Documentation on variable NTF_REPLACE in module ida_typeinf: + + replace original type (for set_named_type) + +Documentation on variable NTF_UMANGLED in module ida_typeinf: + + name is unmangled (don't use this flag) + +Documentation on variable NTF_NOCUR in module ida_typeinf: + + don't inspect current til file (for get_named_type) + +Documentation on variable NTF_64BIT in module ida_typeinf: + + value is 64bit + +Documentation on variable NTF_FIXNAME in module ida_typeinf: + + force-validate the name of the type when setting (set_named_type, + set_numbered_type only) + +Documentation on variable NTF_IDBENC in module ida_typeinf: + + the name is given in the IDB encoding; non-ASCII bytes will be decoded + accordingly (set_named_type, set_numbered_type only) + +Documentation on variable NTF_CHKSYNC in module ida_typeinf: + + check that synchronization to IDB passed OK (set_numbered_type, set_named_type) + +Documentation on variable TERR_OK in module ida_typeinf: + + ok + +Documentation on variable TERR_SAVE in module ida_typeinf: + + failed to save + +Documentation on variable TERR_SERIALIZE in module ida_typeinf: + + failed to serialize + +Documentation on variable TERR_WRONGNAME in module ida_typeinf: + + name is not acceptable + +Documentation on variable TERR_BADSYNC in module ida_typeinf: + + failed to synchronize with IDB + +Documentation on variable IMPTYPE_VERBOSE in module ida_typeinf: + + more verbose output (dialog boxes may appear) + +Documentation on variable IMPTYPE_OVERRIDE in module ida_typeinf: + + override existing type + +Documentation on variable IMPTYPE_LOCAL in module ida_typeinf: + + the type is local, the struct/enum won't be marked as til type. there is no need + to specify this bit if til==idati, the kernel will set it automatically + +Documentation on variable ADDTIL_DEFAULT in module ida_typeinf: + + default behavior + +Documentation on variable ADDTIL_INCOMP in module ida_typeinf: + + load incompatible tils + +Documentation on variable ADDTIL_SILENT in module ida_typeinf: + + do not ask any questions + +Documentation on variable ADDTIL_FAILED in module ida_typeinf: + + something bad, the warning is displayed + +Documentation on variable ADDTIL_OK in module ida_typeinf: + + ok, til is loaded + +Documentation on variable ADDTIL_COMP in module ida_typeinf: + + ok, but til is not compatible with the current compiler + +Documentation on variable ADDTIL_ABORTED in module ida_typeinf: + + til was not loaded (incompatible til rejected by user) + +Documentation on variable TINFO_GUESSED in module ida_typeinf: + + this is a guessed type + +Documentation on variable TINFO_DEFINITE in module ida_typeinf: + + this is a definite type + +Documentation on variable TINFO_DELAYFUNC in module ida_typeinf: + + if type is a function and no function exists at ea, schedule its creation and + argument renaming to auto-analysis, otherwise try to create it immediately + +Documentation on variable TINFO_STRICT in module ida_typeinf: + + never convert given type to another one before applying + +Documentation on variable GUESS_FUNC_FAILED in module ida_typeinf: + + couldn't guess the function type + +Documentation on variable GUESS_FUNC_TRIVIAL in module ida_typeinf: + + the function type doesn't have interesting info + +Documentation on variable GUESS_FUNC_OK in module ida_typeinf: + + ok, some non-trivial information is gathered + +Documentation on variable STI_PCHAR in module ida_typeinf: + + char * + +Documentation on variable STI_PUCHAR in module ida_typeinf: + + uint8 * + +Documentation on variable STI_PCCHAR in module ida_typeinf: + + const char * + +Documentation on variable STI_PCUCHAR in module ida_typeinf: + + const uint8 * + +Documentation on variable STI_PBYTE in module ida_typeinf: + + _BYTE * + +Documentation on variable STI_PINT in module ida_typeinf: + + int * + +Documentation on variable STI_PUINT in module ida_typeinf: + + unsigned int * + +Documentation on variable STI_PVOID in module ida_typeinf: + + void * + +Documentation on variable STI_PPVOID in module ida_typeinf: + + void ** + +Documentation on variable STI_PCVOID in module ida_typeinf: + + const void * + +Documentation on variable STI_ACHAR in module ida_typeinf: + + char[] + +Documentation on variable STI_AUCHAR in module ida_typeinf: + + uint8[] + +Documentation on variable STI_ACCHAR in module ida_typeinf: + + const char[] + +Documentation on variable STI_ACUCHAR in module ida_typeinf: + + const uint8[] + +Documentation on variable STI_FPURGING in module ida_typeinf: + + void __userpurge(int) + +Documentation on variable STI_FDELOP in module ida_typeinf: + + void __cdecl(void *) + +Documentation on variable STI_MSGSEND in module ida_typeinf: + + void *(void *, const char *, ...) + +Documentation on variable STI_AEABI_LCMP in module ida_typeinf: + + int __fastcall(int64 x, int64 y) + +Documentation on variable STI_AEABI_ULCMP in module ida_typeinf: + + int __fastcall(uint64 x, uint64 y) + +Documentation on variable STI_DONT_USE in module ida_typeinf: + + unused stock type id; should not be used + +Documentation on variable STI_SIZE_T in module ida_typeinf: + + size_t + +Documentation on variable STI_SSIZE_T in module ida_typeinf: + + ssize_t + +Documentation on variable STI_AEABI_MEMCPY in module ida_typeinf: + + void __fastcall(void *, const void *, size_t) + +Documentation on variable STI_AEABI_MEMSET in module ida_typeinf: + + void __fastcall(void *, size_t, int) + +Documentation on variable STI_AEABI_MEMCLR in module ida_typeinf: + + void __fastcall(void *, size_t) + +Documentation on variable STI_RTC_CHECK_2 in module ida_typeinf: + + int16 __fastcall(int16 x) + +Documentation on variable STI_RTC_CHECK_4 in module ida_typeinf: + + int32 __fastcall(int32 x) + +Documentation on variable STI_RTC_CHECK_8 in module ida_typeinf: + + int64 __fastcall(int64 x) + +Documentation on variable STI_COMPLEX64 in module ida_typeinf: + + struct complex64_t { float real, imag; } + +Documentation on variable STI_COMPLEX128 in module ida_typeinf: + + struct complex128_t { double real, imag; } + +Documentation on variable GTD_CALC_LAYOUT in module ida_typeinf: + + calculate udt layout + +Documentation on variable GTD_NO_LAYOUT in module ida_typeinf: + + don't calculate udt layout please note that udt layout may have been calculated + earlier + +Documentation on variable GTD_DEL_BITFLDS in module ida_typeinf: + + delete udt bitfields + +Documentation on variable GTD_CALC_ARGLOCS in module ida_typeinf: + + calculate func arg locations + +Documentation on variable GTD_NO_ARGLOCS in module ida_typeinf: + + don't calculate func arg locations please note that the locations may have been + calculated earlier + +Documentation on variable GTS_NESTED in module ida_typeinf: + + nested type (embedded into a udt) + +Documentation on variable GTS_BASECLASS in module ida_typeinf: + + is baseclass of a udt + +Documentation on variable SUDT_SORT in module ida_typeinf: + + fields are not sorted by offset, sort them first + +Documentation on variable SUDT_ALIGN in module ida_typeinf: + + recalculate field alignments, struct packing, etc to match the offsets and size + info + +Documentation on variable SUDT_GAPS in module ida_typeinf: + + allow to fill gaps with additional members (_BYTE[]) + +Documentation on variable SUDT_UNEX in module ida_typeinf: + + references to nonexistent member types are acceptable; in this case it is better + to set the corresponding udt_member_t::fda field to the type alignment. If this + field is not set, ida will try to guess the alignment. + +Documentation on variable SUDT_FAST in module ida_typeinf: + + serialize without verifying offsets and alignments + +Documentation on variable SUDT_CONST in module ida_typeinf: + + only for serialize_udt: make type const + +Documentation on variable SUDT_VOLATILE in module ida_typeinf: + + only for serialize_udt: make type volatile + +Documentation on variable COMP_UNK in module ida_typeinf: + + Unknown. + +Documentation on variable COMP_MS in module ida_typeinf: + + Visual C++. + +Documentation on variable COMP_BC in module ida_typeinf: + + Borland C++. + +Documentation on variable COMP_WATCOM in module ida_typeinf: + + Watcom C++. + +Documentation on variable COMP_GNU in module ida_typeinf: + + GNU C++. + +Documentation on variable COMP_VISAGE in module ida_typeinf: + + Visual Age C++. + +Documentation on variable COMP_BP in module ida_typeinf: + + Delphi. + +Documentation on variable COMP_UNSURE in module ida_typeinf: + + uncertain compiler id + +Documentation on variable BADSIZE in module ida_typeinf: + + bad type size + +Documentation on variable BADORD in module ida_typeinf: + + invalid type ordinal + +Documentation on variable FIRST_NONTRIVIAL_TYPID in module ida_typeinf: + + Denotes the first bit describing a nontrivial type. + +Documentation on variable TYPID_ISREF in module ida_typeinf: + + Identifies that a type that is a typeref. + +Documentation on variable TYPID_SHIFT in module ida_typeinf: + + First type detail bit. + +Documentation on variable STRMEM_OFFSET in module ida_typeinf: + + get member by offset + * in: udm->offset - is a member offset in bits + +Documentation on variable STRMEM_INDEX in module ida_typeinf: + + get member by number + * in: udm->offset - is a member number + +Documentation on variable STRMEM_AUTO in module ida_typeinf: + + get member by offset if struct, or get member by index if union + * nb: union: index is stored in the udm->offset field! + * nb: struct: offset is in bytes (not in bits)! + +Documentation on variable STRMEM_NAME in module ida_typeinf: + + get member by name + * in: udm->name - the desired member name. + +Documentation on variable STRMEM_TYPE in module ida_typeinf: + + get member by type. + * in: udm->type - the desired member type. member types are compared with + tinfo_t::equals_to() + +Documentation on variable STRMEM_SIZE in module ida_typeinf: + + get member by size. + * in: udm->size - the desired member size. + +Documentation on variable STRMEM_MINS in module ida_typeinf: + + get smallest member by size. + +Documentation on variable STRMEM_MAXS in module ida_typeinf: + + get biggest member by size. + +Documentation on variable STRMEM_VFTABLE in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base + class + +Documentation on variable STRMEM_SKIP_EMPTY in module ida_typeinf: + + can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. having + zero size) only last empty member can be returned + +Documentation on variable STRMEM_CASTABLE_TO in module ida_typeinf: + + can be combined with STRMEM_TYPE: member type must be castable to the specified + type + +Documentation on variable STRMEM_ANON in module ida_typeinf: + + can be combined with STRMEM_NAME: look inside anonymous members too. + +Documentation on variable TCMP_EQUAL in module ida_typeinf: + + are types equal? + +Documentation on variable TCMP_IGNMODS in module ida_typeinf: + + ignore const/volatile modifiers + +Documentation on variable TCMP_AUTOCAST in module ida_typeinf: + + can t1 be cast into t2 automatically? + +Documentation on variable TCMP_MANCAST in module ida_typeinf: + + can t1 be cast into t2 manually? + +Documentation on variable TCMP_CALL in module ida_typeinf: + + can t1 be called with t2 type? + +Documentation on variable TCMP_DELPTR in module ida_typeinf: + + remove pointer from types before comparing + +Documentation on variable TCMP_DECL in module ida_typeinf: + + compare declarations without resolving them + +Documentation on variable TCMP_ANYBASE in module ida_typeinf: + + accept any base class when casting + +Documentation on variable TCMP_SKIPTHIS in module ida_typeinf: + + skip the first function argument in comparison + +Documentation on variable simd_info_t.name in module ida_typeinf: + + name of SIMD type (nullptr-undefined) + +Documentation on variable simd_info_t.tif in module ida_typeinf: + + SIMD type (empty-undefined) + +Documentation on variable simd_info_t.size in module ida_typeinf: + + SIMD type size in bytes (0-undefined) + +Documentation on variable simd_info_t.memtype in module ida_typeinf: + + member type BTF_INT8/16/32/64/128, BTF_UINT8/16/32/64/128 BTF_INT - integrals of + any size/sign BTF_FLOAT, BTF_DOUBLE BTF_TBYTE - floatings of any size BTF_UNION + - union of integral and floating types BTF_UNK - undefined + +Documentation on variable ptr_type_data_t.obj_type in module ida_typeinf: + + pointed object type + +Documentation on variable ptr_type_data_t.closure in module ida_typeinf: + + cannot have both closure and based_ptr_size + +Documentation on variable ptr_type_data_t.taptr_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable ptr_type_data_t.parent in module ida_typeinf: + + Parent struct. + +Documentation on variable ptr_type_data_t.delta in module ida_typeinf: + + Offset from the beginning of the parent struct. + +Documentation on variable array_type_data_t.elem_type in module ida_typeinf: + + element type + +Documentation on variable array_type_data_t.base in module ida_typeinf: + + array base + +Documentation on variable array_type_data_t.nelems in module ida_typeinf: + + number of elements + +Documentation on variable funcarg_t.argloc in module ida_typeinf: + + argument location + +Documentation on variable funcarg_t.name in module ida_typeinf: + + argument name (may be empty) + +Documentation on variable funcarg_t.cmt in module ida_typeinf: + + argument comment (may be empty) + +Documentation on variable funcarg_t.type in module ida_typeinf: + + argument type + +Documentation on variable funcarg_t.flags in module ida_typeinf: + + Function argument property bits + +Documentation on variable FAI_HIDDEN in module ida_typeinf: + + hidden argument + +Documentation on variable FAI_RETPTR in module ida_typeinf: + + pointer to return value. implies hidden + +Documentation on variable FAI_STRUCT in module ida_typeinf: + + was initially a structure + +Documentation on variable FAI_ARRAY in module ida_typeinf: + + was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to + determine the original type + +Documentation on variable FAI_UNUSED in module ida_typeinf: + + argument is not used by the function + +Documentation on variable TA_ORG_TYPEDEF in module ida_typeinf: + + the original typedef name (simple string) + +Documentation on variable TA_ORG_ARRDIM in module ida_typeinf: + + the original array dimension (pack_dd) + +Documentation on variable TA_FORMAT in module ida_typeinf: + + info about the 'format' argument. 3 times pack_dd: format_functype_t, argument + number of 'format', argument number of '...' + +Documentation on variable func_type_data_t.flags in module ida_typeinf: + + Function type data property bits + +Documentation on variable func_type_data_t.rettype in module ida_typeinf: + + return type + +Documentation on variable func_type_data_t.retloc in module ida_typeinf: + + return location + +Documentation on variable func_type_data_t.stkargs in module ida_typeinf: + + size of stack arguments (not used in build_func_type) + +Documentation on variable func_type_data_t.spoiled in module ida_typeinf: + + spoiled register information. if spoiled register info is present, it overrides + the standard spoil info (eax, edx, ecx for x86) + +Documentation on variable func_type_data_t.cc in module ida_typeinf: + + calling convention + +Documentation on variable FTI_SPOILED in module ida_typeinf: + + information about spoiled registers is present + +Documentation on variable FTI_NORET in module ida_typeinf: + + noreturn + +Documentation on variable FTI_PURE in module ida_typeinf: + + __pure + +Documentation on variable FTI_HIGH in module ida_typeinf: + + high level prototype (with possibly hidden args) + +Documentation on variable FTI_STATIC in module ida_typeinf: + + static + +Documentation on variable FTI_VIRTUAL in module ida_typeinf: + + virtual + +Documentation on variable FTI_CALLTYPE in module ida_typeinf: + + mask for FTI_*CALL + +Documentation on variable FTI_DEFCALL in module ida_typeinf: + + default call + +Documentation on variable FTI_NEARCALL in module ida_typeinf: + + near call + +Documentation on variable FTI_FARCALL in module ida_typeinf: + + far call + +Documentation on variable FTI_INTCALL in module ida_typeinf: + + interrupt call + +Documentation on variable FTI_ARGLOCS in module ida_typeinf: + + info about argument locations has been calculated (stkargs and retloc too) + +Documentation on variable FTI_EXPLOCS in module ida_typeinf: + + all arglocs are specified explicitly + +Documentation on variable FTI_CONST in module ida_typeinf: + + const member function + +Documentation on variable FTI_CTOR in module ida_typeinf: + + constructor + +Documentation on variable FTI_DTOR in module ida_typeinf: + + destructor + +Documentation on variable FTI_ALL in module ida_typeinf: + + all defined bits + +Documentation on variable CC_CDECL_OK in module ida_typeinf: + + can use __cdecl calling convention? + +Documentation on variable CC_ALLOW_ARGPERM in module ida_typeinf: + + disregard argument order? + +Documentation on variable CC_ALLOW_REGHOLES in module ida_typeinf: + + allow holes in register argument list? + +Documentation on variable CC_HAS_ELLIPSIS in module ida_typeinf: + + function has a variable list of arguments? + +Documentation on variable CC_GOLANG_OK in module ida_typeinf: + + can use __golang calling convention + +Documentation on variable stkarg_area_info_t.stkarg_offset in module ida_typeinf: + + Offset from the SP to the first stack argument (can include linkage area) + examples: pc: 0, hppa: -0x34, ppc aix: 0x18 + +Documentation on variable stkarg_area_info_t.shadow_size in module ida_typeinf: + + Size of the shadow area. explanations at: + \link{https://stackoverflow.com/questions/30190132/what-is-the-shadow-space- + in-x64-assembly} examples: x64 Visual Studio C++: 0x20, x64 gcc: 0, ppc aix: + 0x20 + +Documentation on variable stkarg_area_info_t.linkage_area in module ida_typeinf: + + Size of the linkage area. explanations at: \link{https://www.ibm.com/docs/en/xl- + fortran-aix/16.1.0?topic=conventions-linkage-area} examples: pc: 0, hppa: 0, ppc + aix: 0x18 (equal to stkarg_offset) + +Documentation on variable enum_type_data_t.group_sizes in module ida_typeinf: + + if present, specifies bitfield group sizes each group starts with a mask member + +Documentation on variable enum_type_data_t.taenum_bits in module ida_typeinf: + + Type attributes for enums + +Documentation on variable enum_type_data_t.bte in module ida_typeinf: + + enum member sizes (shift amount) and style + +Documentation on variable typedef_type_data_t.til in module ida_typeinf: + + type library to use when resolving + +Documentation on variable typedef_type_data_t.name in module ida_typeinf: + + is_ordref=false: target type name. we do not own this pointer! + +Documentation on variable typedef_type_data_t.ordinal in module ida_typeinf: + + is_ordref=true: type ordinal number + +Documentation on variable typedef_type_data_t.is_ordref in module ida_typeinf: + + is reference by ordinal? + +Documentation on variable typedef_type_data_t.resolve in module ida_typeinf: + + should resolve immediately? + +Documentation on variable udt_member_t.offset in module ida_typeinf: + + member offset in bits + +Documentation on variable udt_member_t.size in module ida_typeinf: + + size in bits + +Documentation on variable udt_member_t.name in module ida_typeinf: + + member name + +Documentation on variable udt_member_t.cmt in module ida_typeinf: + + member comment + +Documentation on variable udt_member_t.type in module ida_typeinf: + + member type + +Documentation on variable udt_member_t.effalign in module ida_typeinf: + + effective field alignment (in bytes) + +Documentation on variable udt_member_t.tafld_bits in module ida_typeinf: + + TAH bits. + +Documentation on variable udt_member_t.fda in module ida_typeinf: + + field alignment (shift amount) + +Documentation on variable udt_type_data_t.total_size in module ida_typeinf: + + total structure size in bytes + +Documentation on variable udt_type_data_t.unpadded_size in module ida_typeinf: + + unpadded structure size in bytes + +Documentation on variable udt_type_data_t.effalign in module ida_typeinf: + + effective structure alignment (in bytes) + +Documentation on variable udt_type_data_t.taudt_bits in module ida_typeinf: + + TA... and TAUDT... bits. + +Documentation on variable udt_type_data_t.sda in module ida_typeinf: + + declared structure alignment (shift amount+1). 0 - unspecified + +Documentation on variable udt_type_data_t.pack in module ida_typeinf: + + #pragma pack() alignment (shift amount) + +Documentation on variable udt_type_data_t.is_union in module ida_typeinf: + + is union or struct? + +Documentation on variable bitfield_type_data_t.nbytes in module ida_typeinf: + + enclosing type size (1,2,4,8 bytes) + +Documentation on variable bitfield_type_data_t.width in module ida_typeinf: + + number of bits + +Documentation on variable bitfield_type_data_t.is_unsigned in module ida_typeinf: + + is bitfield unsigned? + +Documentation on variable type_mods_t.type in module ida_typeinf: + + current type + +Documentation on variable type_mods_t.name in module ida_typeinf: + + current type name + +Documentation on variable type_mods_t.cmt in module ida_typeinf: + + comment for current type + +Documentation on variable type_mods_t.flags in module ida_typeinf: + + Type modification bits + +Documentation on variable TVIS_TYPE in module ida_typeinf: + + new type info is present + +Documentation on variable TVIS_NAME in module ida_typeinf: + + new name is present + +Documentation on variable TVIS_CMT in module ida_typeinf: + + new comment is present + +Documentation on variable tinfo_visitor_t.state in module ida_typeinf: + + tinfo visitor states + +Documentation on variable TVST_PRUNE in module ida_typeinf: + + don't visit children of current type + +Documentation on variable TVST_DEF in module ida_typeinf: + + visit type definition (meaningful for typerefs) + +Documentation on variable regobj_t.regidx in module ida_typeinf: + + index into dbg->registers + +Documentation on variable regobj_t.relocate in module ida_typeinf: + + 0-plain num, 1-must relocate + +Documentation on variable PIO_NOATTR_FAIL in module ida_typeinf: + + missing attributes are not ok + +Documentation on variable PIO_IGNORE_PTRS in module ida_typeinf: + + do not follow pointers + +Documentation on variable valstr_t.oneline in module ida_typeinf: + + result if printed on one line in UTF-8 encoding + +Documentation on variable valstr_t.length in module ida_typeinf: + + length if printed on one line + +Documentation on variable valstr_t.members in module ida_typeinf: + + strings for members, each member separately + +Documentation on variable valstr_t.info in module ida_typeinf: + + additional info + +Documentation on variable valstr_t.props in module ida_typeinf: + + temporary properties, used internally + +Documentation on variable VALSTR_OPEN in module ida_typeinf: + + printed opening curly brace '{' + +Documentation on variable PDF_INCL_DEPS in module ida_typeinf: + + Include all type dependencies. + +Documentation on variable PDF_DEF_FWD in module ida_typeinf: + + Allow forward declarations. + +Documentation on variable PDF_DEF_BASE in module ida_typeinf: + + Include base types: __int8, __int16, etc.. + +Documentation on variable PDF_HEADER_CMT in module ida_typeinf: + + Prepend output with a descriptive comment. + +Documentation on variable PCN_RADIX in module ida_typeinf: + + number base to use + +Documentation on variable PCN_DEC in module ida_typeinf: + + decimal + +Documentation on variable PCN_HEX in module ida_typeinf: + + hexadecimal + +Documentation on variable PCN_OCT in module ida_typeinf: + + octal + +Documentation on variable PCN_CHR in module ida_typeinf: + + character + +Documentation on variable PCN_UNSIGNED in module ida_typeinf: + + add 'u' suffix + +Documentation on variable PCN_LZHEX in module ida_typeinf: + + print leading zeroes for hexdecimal number + +Documentation on variable PCN_NEGSIGN in module ida_typeinf: + + print negated value (-N) for negative numbers + +Documentation on variable PCN_DECSEXT in module ida_typeinf: + + automatically extend sign of signed decimal numbers + +Documentation on variable til_symbol_t.name in module ida_typeinf: + + symbol name + +Documentation on variable til_symbol_t.til in module ida_typeinf: + + pointer to til + +Documentation on variable op_t.n in module ida_ua: + + Number of operand (0,1,2). Initialized once at the start of work. You have no + right to change its value. + +Documentation on variable op_t.type in module ida_ua: + + Type of operand (see Operand types) + +Documentation on variable op_t.offb in module ida_ua: + + Offset of operand value from the instruction start (0 means unknown). Of course + this field is meaningful only for certain types of operands. Leave it equal to + zero if the operand has no offset. This offset should point to the 'interesting' + part of operand. For example, it may point to the address of a function in + call func or it may point to bytes holding '5' in + mov ax, [bx+5] Usually bytes pointed to this offset are relocated (have fixup + information). + +Documentation on variable op_t.offo in module ida_ua: + + Same as offb (some operands have 2 numeric values used to form an operand). This + field is used for the second part of operand if it exists. Currently this field + is used only for outer offsets of Motorola processors. Leave it equal to zero if + the operand has no offset. + +Documentation on variable op_t.flags in module ida_ua: + + Operand flags + +Documentation on variable op_t.dtype in module ida_ua: + + Type of operand value (see Operand value types). Usually first 9 types are used. + This is the type of the operand itself, not the size of the addressing mode. for + example, byte ptr [epb+32_bit_offset] will have dt_byte type. + +Documentation on variable op_t.reg in module ida_ua: + + number of register (o_reg) + +Documentation on variable op_t.phrase in module ida_ua: + + number of register phrase (o_phrase,o_displ). you yourself define numbers of + phrases as you like + +Documentation on variable op_t.value in module ida_ua: + + operand value (o_imm) or outer displacement (o_displ+OF_OUTER_DISP). integer + values should be in IDA's (little-endian) order. when using ieee_realcvt(), + floating point values should be in the processor's native byte order. dt_double + and dt_qword values take up 8 bytes (value and addr fields for 32-bit modules). + NB: in case a dt_dword/dt_qword immediate is forced to float by user, the kernel + converts it to processor's native order before calling FP conversion routines. + +Documentation on variable op_t.addr in module ida_ua: + + virtual address pointed or used by the operand. (o_mem,o_displ,o_far,o_near) + +Documentation on variable op_t.specval in module ida_ua: + + This field may be used as you want. + +Documentation on variable o_void in module ida_ua: + + No Operand. + +Documentation on variable o_reg in module ida_ua: + + General Register (al,ax,es,ds...). + + The register number should be stored in op_t::reg. All processor registers, + including special registers, can be represented by this operand type. + +Documentation on variable o_mem in module ida_ua: + + Direct Memory Reference (DATA). + + A direct memory data reference whose target address is known at compilation + time. The target virtual address is stored in op_t::addr and the full address is + calculated as to_ea( insn_t::cs, op_t::addr ). For the processors with complex + memory organization the final address can be calculated using other segment + registers. For flat memories, op_t::addr is the final address and insn_t::cs is + usually equal to zero. In any case, the address within the segment should be + stored in op_t::addr. + +Documentation on variable o_phrase in module ida_ua: + + Memory Ref [Base Reg + Index Reg]. + + A memory reference using register contents. Indexed, register based, and other + addressing modes can be represented with the operand type. This addressing mode + cannot contain immediate values (use o_displ instead). The phrase number should + be stored in op_t::phrase. To denote the pre-increment and similar features + please use additional operand fields like op_t::specflag... Usually op_t::phrase + contains the register number and additional information is stored in + op_t::specflags... Please note that this operand type cannot contain immediate + values (except the scaling coefficients). + +Documentation on variable o_displ in module ida_ua: + + Memory Ref [Base Reg + Index Reg + Displacement]. + + A memory reference using register contents with displacement. The displacement + should be stored in the op_t::addr field. The rest of information is stored the + same way as in o_phrase. + +Documentation on variable o_imm in module ida_ua: + + Immediate Value. + + Any operand consisting of only a number is represented by this operand type. The + value should be stored in op_t::value. You may sign extend short (1-2 byte) + values. In any case don't forget to specify op_t::dtype (should be set for all + operand types). + +Documentation on variable o_far in module ida_ua: + + Immediate Far Address (CODE). + + If the current processor has a special addressing mode for inter-segment + references, then this operand type should be used instead of o_near. If you + want, you may use PR_CHK_XREF in processor_t::flag to disable inter-segment + calls if o_near operand type is used. Currently only IBM PC uses this flag. + +Documentation on variable o_near in module ida_ua: + + Immediate Near Address (CODE). + + A direct memory code reference whose target address is known at the compilation + time. The target virtual address is stored in op_t::addr and the final address + is always to_ea( insn_t::cs, op_t::addr). Usually this operand type is used for + the branches and calls whose target address is known. If the current processor + has 2 different types of references for inter-segment and intra-segment + references, then this should be used only for intra-segment references. + + If the above operand types do not cover all possible addressing modes, then use + o_idpspec... operand types. + +Documentation on variable o_idpspec0 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec1 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec2 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec3 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec4 in module ida_ua: + + processor specific type. + +Documentation on variable o_idpspec5 in module ida_ua: + + processor specific type. (there can be more processor specific types) + +Documentation on variable OF_NO_BASE_DISP in module ida_ua: + + base displacement doesn't exist. meaningful only for o_displ type. if set, base + displacement (op_t::addr) doesn't exist. + +Documentation on variable OF_OUTER_DISP in module ida_ua: + + outer displacement exists. meaningful only for o_displ type. if set, outer + displacement (op_t::value) exists. + +Documentation on variable PACK_FORM_DEF in module ida_ua: + + packed factor defined. (!o_reg + dt_packreal) + +Documentation on variable OF_NUMBER in module ida_ua: + + the operand can be converted to a number only + +Documentation on variable OF_SHOW in module ida_ua: + + should the operand be displayed? + +Documentation on variable dt_byte in module ida_ua: + + 8 bit integer + +Documentation on variable dt_word in module ida_ua: + + 16 bit integer + +Documentation on variable dt_dword in module ida_ua: + + 32 bit integer + +Documentation on variable dt_float in module ida_ua: + + 4 byte floating point + +Documentation on variable dt_double in module ida_ua: + + 8 byte floating point + +Documentation on variable dt_tbyte in module ida_ua: + + variable size ( processor_t::tbyte_size) floating point + +Documentation on variable dt_packreal in module ida_ua: + + packed real format for mc68040 + +Documentation on variable dt_qword in module ida_ua: + + 64 bit integer + +Documentation on variable dt_byte16 in module ida_ua: + + 128 bit integer + +Documentation on variable dt_code in module ida_ua: + + ptr to code (not used?) + +Documentation on variable dt_void in module ida_ua: + + none + +Documentation on variable dt_fword in module ida_ua: + + 48 bit + +Documentation on variable dt_bitfild in module ida_ua: + + bit field (mc680x0) + +Documentation on variable dt_string in module ida_ua: + + pointer to asciiz string + +Documentation on variable dt_unicode in module ida_ua: + + pointer to unicode string + +Documentation on variable dt_ldbl in module ida_ua: + + long double (which may be different from tbyte) + +Documentation on variable dt_byte32 in module ida_ua: + + 256 bit integer + +Documentation on variable dt_byte64 in module ida_ua: + + 512 bit integer + +Documentation on variable dt_half in module ida_ua: + + 2-byte floating point + +Documentation on variable insn_t.cs in module ida_ua: + + Current segment base paragraph. Initialized by the kernel. + +Documentation on variable insn_t.ip in module ida_ua: + + Virtual address of the instruction (address within the segment). Initialized by + the kernel. + +Documentation on variable insn_t.ea in module ida_ua: + + Linear address of the instruction. Initialized by the kernel. + +Documentation on variable insn_t.itype in module ida_ua: + + Internal code of instruction (only for canonical insns - not user defined!). IDP + should define its own instruction codes. These codes are usually defined in + ins.hpp. The array of instruction names and features (ins.cpp) is accessed using + this code. + +Documentation on variable insn_t.size in module ida_ua: + + Size of instruction in bytes. The analyzer should put here the actual size of + the instruction. + +Documentation on variable insn_t.auxpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.segpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.insnpref in module ida_ua: + + processor dependent field + +Documentation on variable insn_t.flags in module ida_ua: + + Instruction flags + +Documentation on variable insn_t.ops in module ida_ua: + + array of operands + +Documentation on variable INSN_MACRO in module ida_ua: + + macro instruction + +Documentation on variable INSN_MODMAC in module ida_ua: + + may modify the database to make room for the macro insn + +Documentation on variable INSN_64BIT in module ida_ua: + + belongs to 64bit segment? + +Documentation on variable STKVAR_VALID_SIZE in module ida_ua: + + x.dtype contains correct variable type (for insns like 'lea' this bit must be + off). in general, dr_O references do not allow to determine the variable size + +Documentation on variable OOF_SIGNMASK in module ida_ua: + + sign symbol (+/-) output + +Documentation on variable OOFS_IFSIGN in module ida_ua: + + output sign if needed + +Documentation on variable OOFS_NOSIGN in module ida_ua: + + don't output sign, forbid the user to change the sign + +Documentation on variable OOFS_NEEDSIGN in module ida_ua: + + always out sign (+-) + +Documentation on variable OOF_SIGNED in module ida_ua: + + output as signed if < 0 + +Documentation on variable OOF_NUMBER in module ida_ua: + + always as a number + +Documentation on variable OOF_WIDTHMASK in module ida_ua: + + width of value in bits + +Documentation on variable OOFW_IMM in module ida_ua: + + take from x.dtype + +Documentation on variable OOFW_8 in module ida_ua: + + 8 bit width + +Documentation on variable OOFW_16 in module ida_ua: + + 16 bit width + +Documentation on variable OOFW_24 in module ida_ua: + + 24 bit width + +Documentation on variable OOFW_32 in module ida_ua: + + 32 bit width + +Documentation on variable OOFW_64 in module ida_ua: + + 64 bit width + +Documentation on variable OOF_ADDR in module ida_ua: + + output x.addr, otherwise x.value + +Documentation on variable OOF_OUTER in module ida_ua: + + output outer operand + +Documentation on variable OOF_ZSTROFF in module ida_ua: + + meaningful only if is_stroff(uFlag); append a struct field name if the field + offset is zero? if AFL_ZSTROFF is set, then this flag is ignored. + +Documentation on variable OOF_NOBNOT in module ida_ua: + + prohibit use of binary not + +Documentation on variable OOF_SPACES in module ida_ua: + + do not suppress leading spaces; currently works only for floating point numbers + +Documentation on variable OOF_ANYSERIAL in module ida_ua: + + if enum: select first available serial + +Documentation on variable FCBF_CONT in module ida_ua: + + don't stop on decoding, or any other kind of error + +Documentation on variable FCBF_ERR_REPL in module ida_ua: + + in case of an error, use a CP_REPLCHAR instead of a hex representation of the + problematic byte + +Documentation on variable FCBF_FF_LIT in module ida_ua: + + in case of codepoints == 0xFF, use it as-is (i.e., LATIN SMALL LETTER Y WITH + DIAERESIS). If both this, and FCBF_REPL are specified, this will take precedence + +Documentation on variable FCBF_DELIM in module ida_ua: + + add the 'ash'-specified delimiters around the generated data. Note: if those are + not defined and the INFFL_ALLASM is not set, format_charlit() will return an + error + +Documentation on variable fl_U in module ida_xref: + + unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable fl_CF in module ida_xref: + + Call Far This xref creates a function at the referenced location + +Documentation on variable fl_CN in module ida_xref: + + Call Near This xref creates a function at the referenced location + +Documentation on variable fl_JF in module ida_xref: + + Jump Far. + +Documentation on variable fl_JN in module ida_xref: + + Jump Near. + +Documentation on variable fl_USobsolete in module ida_xref: + + User specified (obsolete) + +Documentation on variable fl_F in module ida_xref: + + Ordinary flow: used to specify execution flow to the next instruction. + +Documentation on variable dr_U in module ida_xref: + + Unknown - for compatibility with old versions. Should not be used anymore. + +Documentation on variable dr_O in module ida_xref: + + Offset The reference uses 'offset' of data rather than its value OR The + reference appeared because the "OFFSET" flag of instruction is set. The meaning + of this type is IDP dependent. + +Documentation on variable dr_W in module ida_xref: + + Write access. + +Documentation on variable dr_R in module ida_xref: + + Read access. + +Documentation on variable dr_T in module ida_xref: + + Text (for forced operands only) Name of data is used in manual operand + +Documentation on variable dr_I in module ida_xref: + + Informational (a derived java class references its base class informationally) + +Documentation on variable dr_S in module ida_xref: + + Reference to enum member (symbolic constant) + +Documentation on variable XREF_USER in module ida_xref: + + User specified xref. This xref will not be deleted by IDA. This bit should be + combined with the existing xref types (cref_t & dref_t) Cannot be used for fl_F + xrefs + +Documentation on variable XREF_TAIL in module ida_xref: + + Reference to tail byte in extrn symbols. + +Documentation on variable XREF_BASE in module ida_xref: + + Reference to the base part of an offset. + +Documentation on variable XREF_MASK in module ida_xref: + + Mask to get xref type. + +Documentation on variable XREF_PASTEND in module ida_xref: + + Reference is past item. This bit may be passed to add_dref() functions but it + won't be saved in the database. It will prevent the destruction of eventual + alignment directives. + +Documentation on variable xrefblk_t.to in module ida_xref: + + the referenced address - filled by first_from(), next_from() + +Documentation on variable xrefblk_t.iscode in module ida_xref: + + 1-is code reference; 0-is data reference + +Documentation on variable xrefblk_t.type in module ida_xref: + + type of the last returned reference (cref_t & dref_t) + +Documentation on variable xrefblk_t.user in module ida_xref: + + 1-is user defined xref, 0-defined by ida + +Documentation on variable XREF_ALL in module ida_xref: + + return all references + +Documentation on variable XREF_FAR in module ida_xref: + + don't return ordinary flow xrefs + +Documentation on variable XREF_DATA in module ida_xref: + + return data references only + +Documentation on variable AR_LONG in module idc: + + Array of longs + +Documentation on variable AR_STR in module idc: + + Array of strings + +Documentation on variable ARGV in module idc: + + The command line arguments passed to IDA via the -S switch. diff --git a/swig/bitrange.i b/swig/bitrange.i new file mode 100644 index 0000000..5fccd9e --- /dev/null +++ b/swig/bitrange.i @@ -0,0 +1,87 @@ +%{ +#include <bitrange.hpp> +%} + +%define %ptr_and_size_input(PTR, SIZE) +%typemap(in, fragment="outarg_cvt_bytevec_t") (PTR, SIZE) (bytevec_t tmp) +{ + // %typemap(in) (PTR, SIZE) + if ( outarg_cvt_bytevec_t(&tmp, $input, /*can_be_none=*/ false) ) + { + $1 = tmp.begin(); + $2 = tmp.size(); + } + else + { + SWIG_exception_fail( + SWIG_ValueError, + "Expected bytes " "in method '" "$symname" "', argument " "$argnum"" of type 'bytes'"); + } +} +%enddef + +//------------------------------------------------------------------------- +// +// bitrange_t::extract() +// +%ignore bitrange_t::extract(void *, size_t, const void *, size_t, bool) const; + +%ptr_and_size_input(const void *src, size_t src_size); + +%typemap(in, numinputs=0) bytevec_t *dst (bytevec_t tmp) +{ + // %typemap(in, numinputs=0) bytevec_t *dst (bytevec_t tmp) + $1 = &tmp; +} + +%typemap(freearg) bytevec_t *dst +{ + // %typemap(freearg) bytevec_t *dst + // Nothing. We certainly don't want 'tmp' to be deleted. +} + +%typemap(argout) bytevec_t *dst +{ + // %typemap(argout) bytevec_t *dst + $result = _maybe_sized_binary_result( + $result, + (const char *) $1->begin(), + $1->size(), + result); +} + +//------------------------------------------------------------------------- +// +// bitrange_t::inject() +// +%ignore bitrange_t::inject(void *, size_t, const void *, size_t, bool) const; + +%ptr_and_size_input(void *dst, size_t dst_size); + +%typemap(argout) (void *dst, size_t dst_size) +{ + // %typemap(argout) (void *dst, size_t dst_size) + $result = _maybe_sized_binary_result( + $result, + (const char *) $1, + $2, + result); +} + +//------------------------------------------------------------------------- +%extend bitrange_t { + + qstring __str__() const + { + qstring qs; + qs.sprnt("{offset=%u, nbits=%u, [%u,%u), 0x%llx}", + $self->bitoff(), + $self->bitsize(), + $self->bitoff(), + $self->bitoff() + $self->bitsize(), + $self->mask64()); + return qs; + } +} + +%include "bitrange.hpp" diff --git a/swig/bytes.i b/swig/bytes.i index f88ea18..68fe1a5 100644 --- a/swig/bytes.i +++ b/swig/bytes.i @@ -2,31 +2,23 @@ #include <bytes.hpp> %} +%apply (testf_t *func, void *ud) { (testf_t *testf, void *ud=nullptr) }; + // Unexported and kernel-only declarations -%ignore testf_t; -%ignore next_that; -%ignore prev_that; %ignore adjust_visea; -%ignore prev_visea; -%ignore next_visea; %ignore visit_patched_bytes; %ignore is_first_visea; %ignore is_last_visea; %ignore is_visible_finally; %ignore setFlbits; %ignore clrFlbits; -%ignore get_ascii_char; %ignore del_opinfo; %ignore del_one_opinfo; -%ignore get_repeatable_cmt; -%ignore get_any_indented_cmt; -%ignore del_code_comments; %ignore coagulate; %ignore FlagsInit; %ignore FlagsTerm; %ignore FlagsReset; -%ignore flush_flags; %ignore get_flags_linput; %ignore data_type_t::data_type_t(); %ignore data_type_t::cbsize; @@ -43,9 +35,11 @@ %ignore get_bytes; %ignore get_strlit_contents; %ignore get_hex_string; -%ignore bin_search2; %ignore bin_search; // we redefine our own, w/ 2 params swapped, so we can apply the typemaps below %rename (bin_search) py_bin_search; +%rename (bin_search) bin_search2; +%ignore bin_search2(ea_t, ea_t, const uchar *, const uchar *, size_t, int); +%ignore bytes_match_for_bin_search; %ignore get_8bit; %rename (get_8bit) py_get_8bit; @@ -53,15 +47,17 @@ %ignore get_octet; %rename (get_octet) py_get_octet; -%ignore compiled_binpat_t; -%ignore compiled_binpat_vec_t; -%ignore parse_binpat_str; +%apply uchar * OUTPUT { uchar *out }; // get_octet2 + +%template(compiled_binpat_vec_t) qvector<compiled_binpat_t>; + +%apply size_t * OUTPUT { size_t *out_matched_idx }; // bin_search3 // TODO: This could be fixed (if needed) %ignore set_dbgmem_source; %typemap(argout) opinfo_t *buf { - if ( result != NULL ) + if ( result != nullptr ) { // kludge: discard newly-constructed object; return input Py_XDECREF($result); @@ -97,9 +93,9 @@ PyObject *self, const char *name, asize_t value_size=0, - const char *menu_name=NULL, - const char *hotkey=NULL, - const char *asm_keyword=NULL, + const char *menu_name=nullptr, + const char *hotkey=nullptr, + const char *asm_keyword=nullptr, int props=0) { py_custom_data_type_t *inst = new py_custom_data_type_t( @@ -126,12 +122,6 @@ __real__init__ = __init__ def __init__(self, *args): self.__real__init__(self, *args) # pass 'self' as part of args -#ifdef BC695 - if _BC695: - def __init__(self, name, value_size = 0, menu_name = None, hotkey = None, asm_keyword = None, props = 0): - args = (name, value_size, menu_name, hotkey, asm_keyword, props) - self.__real__init__(self, *args) # pass 'self' as part of args -#endif } } @@ -141,9 +131,9 @@ PyObject *self, const char *name, asize_t value_size=0, - const char *menu_name=NULL, + const char *menu_name=nullptr, int props=0, - const char *hotkey=NULL, + const char *hotkey=nullptr, int32 text_width=0) { py_custom_data_format_t *inst = new py_custom_data_format_t( @@ -170,12 +160,6 @@ __real__init__ = __init__ def __init__(self, *args): self.__real__init__(self, *args) # pass 'self' as part of args -#ifdef BC695 - if _BC695: - def __init__(self, name, value_size = 0, menu_name = None, props = 0, hotkey = None, text_width = 0): - args = (name, value_size, menu_name, props, hotkey, text_width) - self.__real__init__(self, *args) # pass 'self' as part of args -#endif } } @@ -184,8 +168,14 @@ %include "bytes.hpp" +// Make it so that 'imask' can be None %apply (const bytevec_t &_fields) { const bytevec_t &imask }; +%typemap(typecheck, precedence=SWIG_TYPECHECK_STRING_ARRAY) const bytevec_t &imask +{ // %typemap(typecheck, precedence=SWIG_TYPECHECK_STRING_ARRAY) const bytevec_t &imask + $1 = ($input == Py_None || PyBytes_Check($input)) ? 1 : 0; +} +// %clear(void *buf, ssize_t size); %clear(const void *buf, size_t size); @@ -193,9 +183,6 @@ %clear(opinfo_t *); %rename (visit_patched_bytes) py_visit_patched_bytes; -%rename (next_that) py_next_that; -%rename (prev_that) py_prev_that; - %rename (get_bytes) py_get_bytes; %rename (get_bytes_and_mask) py_get_bytes_and_mask; %rename (get_strlit_contents) py_get_strlit_contents; diff --git a/swig/dbg.i b/swig/dbg.i index 1300b8c..84848e4 100644 --- a/swig/dbg.i +++ b/swig/dbg.i @@ -38,9 +38,9 @@ %ignore request_set_reg_val; %rename (request_set_reg_val) py_request_set_reg_val; %rename (get_reg_val) py_get_reg_val; - -/* %ignore invalidate_dbg_state; */ -/* %ignore is_request_running; */ +%ignore get_reg_vals; +%rename (get_reg_vals) py_get_reg_vals; +%newobject py_get_reg_vals; %rename (list_bptgrps) py_list_bptgrps; %apply qstring *result { qstring *grp_name }; @@ -58,6 +58,11 @@ %ignore internal_get_sreg_base; %rename (internal_get_sreg_base) py_internal_get_sreg_base; +%ignore dbg_can_query; +%rename (dbg_can_query) py_dbg_can_query; + +%define_regval_python_accessors(); + //------------------------------------------------------------------------- // get_process_options() %define %get_process_options_out_qstring(ARG_NAME) @@ -69,7 +74,7 @@ %typemap(argout) qstring *ARG_NAME { // %get_process_options_out_qstring %typemap(argout) qstring *ARG_NAME - $result = SWIG_Python_AppendOutput($result, IDAPyStr_FromUTF8($1->c_str())); + $result = SWIG_Python_AppendOutput($result, PyUnicode_FromString($1->c_str())); } %typemap(freearg) qstring* ARG_NAME { @@ -90,7 +95,7 @@ { // %typemap(argout) qstring *path (specialization) Py_XDECREF($result); - $result = IDAPyStr_FromUTF8($1->c_str()); + $result = PyUnicode_FromString($1->c_str()); } //------------------------------------------------------------------------- @@ -107,13 +112,6 @@ bool request_run_to(ea_t ea, pid_t pid = NO_PROCESS, thid_t tid = NO_THREAD); %thread; -%nonnul_argument_prototype( - inline void idaapi set_debugger_event_cond(const char *nonnul_cond), - const char *nonnul_cond); -%nonnul_argument_prototype( - inline bool idaapi diff_trace_file(const char *nonnul_filename), - const char *nonnul_filename); - // We want ALL wrappers around what is declared in dbg.hpp // to release the GIL when calling into the IDA api: those // might be very long operations, that even require some @@ -134,28 +132,28 @@ bool request_run_to(ea_t ea, pid_t pid = NO_PROCESS, thid_t tid = NO_THREAD); %{ PyObject *bpt_t_condition_get(bpt_t *bpt) { - return IDAPyStr_FromUTF8(bpt->cndbody.c_str()); + return PyUnicode_FromString(bpt->cndbody.c_str()); } void bpt_t_condition_set(bpt_t *bpt, PyObject *val) { - if ( IDAPyStr_Check(val) ) - IDAPyStr_AsUTF8(&bpt->cndbody, val); + if ( PyUnicode_Check(val) ) + PyUnicode_as_qstring(&bpt->cndbody, val); else PyErr_SetString(PyExc_ValueError, "expected a string"); } PyObject *bpt_t_elang_get(bpt_t *bpt) { - return IDAPyStr_FromUTF8(bpt->get_cnd_elang()); + return PyUnicode_FromString(bpt->get_cnd_elang()); } void bpt_t_elang_set(bpt_t *bpt, PyObject *val) { - if ( IDAPyStr_Check(val) ) + if ( PyUnicode_Check(val) ) { qstring cval; - IDAPyStr_AsUTF8(&cval, val); + PyUnicode_as_qstring(&cval, val); if ( !bpt->set_cnd_elang(cval.c_str()) ) PyErr_SetString(PyExc_ValueError, "too many extlangs"); } @@ -173,7 +171,7 @@ void bpt_t_elang_set(bpt_t *bpt, PyObject *val) { PyObject *get_bytes() const { - return IDAPyBytes_FromMemAndSize( + return PyBytes_FromStringAndSize( (const char *) $self->bytes.begin(), $self->bytes.size()); } diff --git a/swig/dirtree.i b/swig/dirtree.i new file mode 100644 index 0000000..8cd1385 --- /dev/null +++ b/swig/dirtree.i @@ -0,0 +1,30 @@ + +%{ +#include <dirtree.hpp> +%} + +%apply SWIGTYPE *DISOWN { dirspec_t *ds }; + +%template(direntry_vec_t) qvector<direntry_t>; +%template(dirtree_cursor_vec_t) qvector<dirtree_cursor_t>; + +// +// compat +// +%ignore dirtree_get_nodename; +%ignore dirtree_set_nodename; + +%extend dirspec_t { + %pythoncode { + nodename = id + } +} + +%extend dirtree_t { + %pythoncode { + get_nodename = get_id + set_nodename = set_id + } +} + +%include "dirtree.hpp" diff --git a/swig/expr.i b/swig/expr.i index af96bdb..9d83b34 100644 --- a/swig/expr.i +++ b/swig/expr.i @@ -71,10 +71,10 @@ size_t bufsize, const char *file); // get_idc_filename -%nonnul_argument_prototype( +%pywraps_nonnul_argument_prototype( bool py_compile_idc_file(const char *nonnul_line, qstring *errbuf), const char *nonnul_line); -%nonnul_argument_prototype( +%pywraps_nonnul_argument_prototype( bool py_compile_idc_text(const char *nonnul_line, qstring *errbuf), const char *nonnul_line); %{ @@ -91,13 +91,8 @@ %extend idc_value_t { - wrapped_array_t<ushort,6> __get_e() { - return wrapped_array_t<ushort,6>($self->e); - } - %pythoncode { str = property(lambda self: self.c_str(), lambda self, v: self.set_string(v)) - e = property(__get_e) } } diff --git a/swig/funcs.i b/swig/funcs.i index f6d311d..c07b1e7 100644 --- a/swig/funcs.i +++ b/swig/funcs.i @@ -19,21 +19,35 @@ %ignore func_md_t::cbsize; %ignore func_pat_t::cbsize; -%template (stkpnt_array) dynamic_wrapped_array_t<stkpnt_t>; -%template (regvar_array) dynamic_wrapped_array_t<regvar_t>; -%template (range_array) dynamic_wrapped_array_t<range_t>; +%ignore func_t::llabelqty; +%ignore func_t::llabels; +%ignore FUNC_RESERVED; + +%template (dyn_stkpnt_array) dynamic_wrapped_array_t<stkpnt_t>; +%template (dyn_regvar_array) dynamic_wrapped_array_t<regvar_t>; +%template (dyn_range_array) dynamic_wrapped_array_t<range_t>; +%template (dyn_ea_array) dynamic_wrapped_array_t<ea_t>; +%template (dyn_regarg_array) dynamic_wrapped_array_t<regarg_t>; + +%ignore func_item_iterator_next; +%ignore func_item_iterator_prev; +%ignore func_item_iterator_decode_prev_insn; +%ignore func_item_iterator_decode_preceding_insn; +%ignore func_item_iterator_succ; %extend func_t { dynamic_wrapped_array_t<stkpnt_t> __get_points__() { + if ( $self->pntqty > 0 && $self->points == nullptr ) // force load + get_sp_delta($self, $self->start_ea); return dynamic_wrapped_array_t<stkpnt_t>($self->points, $self->pntqty); } dynamic_wrapped_array_t<regvar_t> __get_regvars__() { if ( $self->regvarqty < 0 ) // force load - find_regvar($self, $self->start_ea, NULL); + find_regvar($self, $self->start_ea, nullptr); return dynamic_wrapped_array_t<regvar_t>($self->regvars, $self->regvarqty); } @@ -42,16 +56,48 @@ return dynamic_wrapped_array_t<range_t>($self->tails, $self->tailqty); } + dynamic_wrapped_array_t<ea_t> __get_referers__() + { + return dynamic_wrapped_array_t<ea_t>($self->referers, $self->refqty); + } + + dynamic_wrapped_array_t<regarg_t> __get_regargs__() + { + if ( $self->regargqty > 0 && $self->regargs == nullptr ) // force load + read_regargs($self); + return dynamic_wrapped_array_t<regarg_t>($self->regargs, $self->regargqty); + } + %pythoncode { points = property(__get_points__) regvars = property(__get_regvars__) tails = property(__get_tails__) + referers = property(__get_referers__) + regargs = property(__get_regargs__) } } %rename (__next__) next; -%define %make_python2_iterator(TYPE) +%define %def_simple_generator(TYPE, FUNC_NAME, START_FUNC, NEXT_FUNC, OBJ_FUNC, PYDOC) +%extend TYPE +{ + %pythoncode { + def FUNC_NAME(self): + """ + Provide an iterator on PYDOC + """ + ok = self.START_FUNC() + while ok: + yield self.OBJ_FUNC() + ok = self.NEXT_FUNC() + } +} +%enddef + +%define %def_simple_iterator_generator(TYPE, START_FUNC, NEXT_FUNC, OBJ_FUNC, PYDOC) +%def_simple_generator(TYPE, __iter__, START_FUNC, NEXT_FUNC, OBJ_FUNC, PYDOC); +// KLUDGE: Keep the 'next' attribute available %extend TYPE { %pythoncode { @@ -59,9 +105,47 @@ } } %enddef -%make_python2_iterator(func_tail_iterator_t); -%make_python2_iterator(func_item_iterator_t); -%make_python2_iterator(func_parent_iterator_t); +%def_simple_iterator_generator(func_tail_iterator_t, main, next, chunk, function tails); +%def_simple_iterator_generator(func_item_iterator_t, first, next_code, current, code items); +%def_simple_iterator_generator(func_parent_iterator_t, first, next, parent, function parents); + +%define %def_simple_func_item_iterator_t_generator(FUNC_NAME, NEXT_NAME, PYDOC) +%def_simple_generator(func_item_iterator_t, FUNC_NAME, first, NEXT_NAME, current, PYDOC); +%enddef +%def_simple_func_item_iterator_t_generator(addresses, next_addr, addresses contained within the function); +%def_simple_func_item_iterator_t_generator(code_items, next_code, code items contained within the function); +%def_simple_func_item_iterator_t_generator(data_items, next_data, data items contained within the function); +%def_simple_func_item_iterator_t_generator(head_items, next_head, item heads contained within the function); +%def_simple_func_item_iterator_t_generator(not_tails, next_not_tail, non-tail addresses contained within the function); + +%define %alias_func_item_iterator(PROP_NAME) +%extend func_t +{ + %pythoncode { + def PROP_NAME(self): + """ + Alias for func_item_iterator_t(self).PROP_NAME() + """ + yield from func_item_iterator_t(self).PROP_NAME() + } +} +%enddef +%alias_func_item_iterator(addresses); +%alias_func_item_iterator(code_items); +%alias_func_item_iterator(data_items); +%alias_func_item_iterator(head_items); +%alias_func_item_iterator(not_tails); + +%extend func_t +{ + %pythoncode { + def __iter__(self): + """ + Alias for func_item_iterator_t(self).__iter__() + """ + return func_item_iterator_t(self).__iter__() + } +} //<typemaps(funcs)> //</typemaps(funcs)> diff --git a/swig/gdl.i b/swig/gdl.i index 57e6e78..eb07d49 100644 --- a/swig/gdl.i +++ b/swig/gdl.i @@ -2,8 +2,12 @@ #include <gdl.hpp> %} -%ignore cancellable_graph_t; -%ignore gdl_graph_t; +%ignore gdl_graph_t::gen_gdl; +%ignore gdl_graph_t::gen_dot; +%ignore gdl_graph_t::path_exists; + +%ignore cancellable_graph_t::padding; +%ignore cancellable_graph_t::check_cancel; %ignore intmap_t; %ignore intset_t; @@ -11,7 +15,6 @@ %ignore node_set_t; %ignore qflow_chart_t::blocks; %ignore flow_chart_t; -%ignore default_graph_format; %ignore setup_graph_subsystem; %ignore qbasic_block_t::succ; %ignore qbasic_block_t::pred; diff --git a/swig/graph.i b/swig/graph.i index d28fa89..14823d3 100644 --- a/swig/graph.i +++ b/swig/graph.i @@ -18,36 +18,41 @@ // most of these aren't defined/exported through graph.hpp %ignore abstract_graph_t::callback; -%ignore abstract_graph_t; +%ignore abstract_graph_t::vgrcall; +%ignore abstract_graph_t::clear; +%ignore abstract_graph_t::dump_graph; +%ignore abstract_graph_t::calc_bounds; +%ignore abstract_graph_t::calc_fitting_params; +%ignore abstract_graph_t::for_all_nodes_edges; +%ignore abstract_graph_t::get_edge_ports; +%ignore abstract_graph_t::add_node_edges; +%ignore abstract_graph_t::create_polar_tree_layout; +%ignore abstract_graph_t::create_radial_tree_layout; +%ignore abstract_graph_t::create_orthogonal_layout; +%ignore abstract_graph_t::clone; +%ignore abstract_graph_t::nrect; +%rename (nrect) novirt_nrect; +%ignore abstract_graph_t::get_edge; +%rename (get_edge) novirt_get_edge; + %ignore edge_info_t::add_layout_point; %ignore edge_infos_wrapper_t::edge_infos_wrapper_t; %ignore edge_infos_wrapper_t::~edge_infos_wrapper_t; %ignore graph_dispatcher; %ignore graph_item_t::operator==; -%ignore mutable_graph_t::add_edge; -%ignore mutable_graph_t::add_node; + +// Meant to be constructed by the kernel/ui only +%feature("nodirector") mutable_graph_t; +%ignore mutable_graph_t::mutable_graph_t; %ignore mutable_graph_t::calc_center_of; %ignore mutable_graph_t::change_visibility; %ignore mutable_graph_t::check_new_group; -%ignore mutable_graph_t::clone; -%ignore mutable_graph_t::del_edge; -%ignore mutable_graph_t::del_node; -%ignore mutable_graph_t::fix_collapsed_group_edges; -%ignore mutable_graph_t::get_edge(edge_t); -%rename (get_edge) my_get_edge; %ignore mutable_graph_t::groups_are_present; %ignore mutable_graph_t::insert_simple_nodes; %ignore mutable_graph_t::insert_visible_nodes; %ignore mutable_graph_t::move_grouped_nodes; %ignore mutable_graph_t::move_to_same_place; -%ignore mutable_graph_t::mutable_graph_t; -%ignore mutable_graph_t::redo_layout; -%ignore mutable_graph_t::refresh; -%ignore mutable_graph_t::replace_edge; -%ignore mutable_graph_t::resize; -%ignore mutable_graph_t::set_nrect; -%ignore node_ordering_t::clr; -%ignore node_ordering_t::order; + %ignore point_t::dstr; %ignore point_t::print; %ignore pointseq_t::dstr; @@ -62,11 +67,15 @@ public: virtual int idaapi visit_edge(edge_t /*e*/, edge_info_t * /*ei*/) { qnotused(self); return 0; } } -%extend mutable_graph_t { +%extend abstract_graph_t { public: - virtual edge_info_t my_get_edge(edge_t e) + edge_info_t *novirt_get_edge(edge_t e) { - return *($self->get_edge(e)); + return $self->get_edge(e); + } + rect_t novirt_nrect(int n) + { + return $self->nrect(n); } } diff --git a/swig/hexrays.i b/swig/hexrays.i index 4e21d4d..5e8fa4e 100644 --- a/swig/hexrays.i +++ b/swig/hexrays.i @@ -1,7 +1,18 @@ %{ +#undef HEXDSP +hexdsp_t *get_idapython_hexdsp(); +#define HEXDSP get_idapython_hexdsp() #include <hexrays.hpp> %} + +// Functions accepting a `func_t *` can also derive it from an `ea_t` +%typemap(in, fragment="cvt_func_t") func_t *pfn +{ // %typemap(in) func_t *pfn + if ( !cvt_func_t(&$1, $input) ) + SWIG_exception_fail(SWIG_ValueError, "in method '" "$symname" "', argument " "$argnum"" of type '" "func_t const *""' (or an address from which it can be derived)"); +} + %{ SWIGINTERN void __raise_vdf(const vd_failure_t &e) { @@ -9,14 +20,7 @@ SWIGINTERN void __raise_vdf(const vd_failure_t &e) } %} -// KLUDGE: I have no idea how to force SWiG to declare a type for a module, -// unless that type is indeed used. That's why this wrapper exists.. -%{ -static void _kludge_use_TPopupMenu(TPopupMenu *) {} -%} -%inline %{ -static void _kludge_use_TPopupMenu(TPopupMenu *m); -%} +%force_declare_SWiG_type(TPopupMenu); //--------------------------------------------------------------------- // SWIG bindings for Hexray Decompiler's hexrays.hpp @@ -27,25 +31,22 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); // Integrated into IDAPython project by the IDAPython Team <idapython@googlegroups.com> //--------------------------------------------------------------------- -// Suppress 'previous definition of XX' warnings -#pragma SWIG nowarn=302 -// and others... -#pragma SWIG nowarn=312 -#pragma SWIG nowarn=325 -#pragma SWIG nowarn=314 -#pragma SWIG nowarn=362 -#pragma SWIG nowarn=383 -#pragma SWIG nowarn=389 -#pragma SWIG nowarn=401 -#pragma SWIG nowarn=451 -#pragma SWIG nowarn=454 // Setting a pointer/reference variable may leak memory - #define _STD_BEGIN #ifdef __NT__ %include <windows.i> #endif +%typemap(check) ctype_t cexpr_op { + // %typemap(check) ctype_t cexpr_op + if ( $1 < cot_empty || $1 > cot_last ) + SWIG_exception_fail(SWIG_ValueError, "invalid op " "in method '" "$symname" "', argument " "$argnum"" of type '" "$1_type""'"); +} + +%typemap(check) const tinfo_t *type { + // %typemap(check) const tinfo_t *type +} + %define %define_hexrays_lifecycle_object(TypeName) %feature("ref") TypeName { @@ -62,6 +63,16 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); } %enddef +%define %method_sets_type_and_gains_ownership_of_regular_object_argument(TYPE, METHOD) +%feature("pythonprepend") TYPE::METHOD %{ + o = args[0] + self._ensure_cond(self.t == mop_z, "self.t == mop_z") +%} +%feature("pythonappend") TYPE::METHOD %{ + self._acquire_ownership(o, True) +%} +%enddef + %typemap(directorin) (const char *format, ...) { // %typemap(directorin) (const char *format, ...) @@ -83,6 +94,7 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %ignore cfunc_t::sv; // lazy member. Use get_pseudocode() instead %ignore cfunc_t::boundaries; // lazy member. Use get_boundaries() instead %ignore cfunc_t::eamap; // lazy member. Use get_eamap() instead +%ignore cfunc_t::reserved; %ignore ctree_item_t::verify; %ignore ccases_t::find_value; %ignore ccases_t::print; @@ -98,7 +110,7 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %ignore cexpr_t::like_boolean; %ignore cexpr_t::contains_expr; %ignore cexpr_t::contains_expr; -%ignore cexpr_t::cexpr_t(mbl_array_t *mba, const lvar_t &v); +%ignore cexpr_t::cexpr_t(mba_t *mba, const lvar_t &v); %ignore cexpr_t::is_type_partial; %ignore cexpr_t::set_type_partial; %ignore cexpr_t::is_value_used; @@ -132,16 +144,22 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %ignore mlist_t::has_allmem; -%ignore mbl_array_t::mbl_array_t; -%ignore mbl_array_t::reserved; -%ignore mbl_array_t::vdump_mba; -%ignore mbl_array_t::idaloc2vd(const argloc_t &, int, sval_t); -%ignore mbl_array_t::idaloc2vd(const mbl_array_t *, const argloc_t &, int); -%ignore mbl_array_t::range_contains; -%ignore mbl_array_t::get_stkvar; +%ignore mba_t::mba_t; +%ignore mba_t::reserved; +%ignore mba_t::vdump_mba; +%ignore mba_t::idaloc2vd(const argloc_t &, int, sval_t); +%ignore mba_t::idaloc2vd(const mba_t *, const argloc_t &, int); +%ignore mba_t::range_contains; +%ignore mba_t::get_stkvar; +%feature("nodirector") codegen_t; +%ignore codegen_t::reserved; + +%feature("nodirector") simple_graph_t; %ignore simple_graph_t::simple_graph_t; %ignore simple_graph_t::~simple_graph_t; + +%feature("nodirector") mbl_graph_t; %ignore mbl_graph_t::mbl_graph_t; %ignore mbl_graph_t::~mbl_graph_t; @@ -153,6 +171,10 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %define_hexrays_lifecycle_object(mop_t); %ignore mop_t::_make_strlit(qstring *); %template(mopvec_t) qvector<mop_t>; +%method_sets_type_and_gains_ownership_of_regular_object_argument(mop_t, _make_cases) +%method_sets_type_and_gains_ownership_of_regular_object_argument(mop_t, _make_callinfo) +%method_sets_type_and_gains_ownership_of_regular_object_argument(mop_t, _make_pair) +%method_sets_type_and_gains_ownership_of_regular_object_argument(mop_t, _make_insn) %template(mcallargs_t) qvector<mcallarg_t>; @@ -197,6 +219,15 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); } }; +%extend mba_t { + %pythoncode { + """ + Deprecated. Please do not use. + """ + idb_node = property(lambda self: self.deprecated_idb_node) + } +}; + %ignore op_parent_info_t::really_alloc; %ignore getf_reginsn(const minsn_t *); @@ -210,26 +241,23 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %ignore mba_ranges_t::range_contains; %newobject gen_microcode; -%define_hexrays_lifecycle_object(mbl_array_t); -#ifdef PY3 +%define_hexrays_lifecycle_object(mba_t); %const_void_pointer_and_size(uchar, bytes, nbytes); -#else -%apply (char *STRING, int LENGTH) { (const uchar *bytes, size_t nbytes) }; -%apply Pointer NONNULL { const uchar *bytes }; -#endif +%const_void_pointer_and_size(void, bytes, _size); %define_hexrays_lifecycle_object(valrng_t); -%apply ulonglong *OUTPUT { uvlr_t *v }; // valrng_t::cvt_to_single_value -%apply ulonglong *OUTPUT { uvlr_t *val }; // valrng_t::cvt_to_cmp -%apply int *OUTPUT { cmpop_t *cmp }; // valrng_t::cvt_to_cmp +%apply uint64 *OUTPUT { uvlr_t *v }; // valrng_t::cvt_to_single_value +%apply uint64 *OUTPUT { uvlr_t *val }; // valrng_t::cvt_to_cmp +%apply int *OUTPUT { cmpop_t *cmp }; // valrng_t::cvt_to_cmp -%define %def_opt_handler(TypeName, Install, Remove) +%define %def_opt_handler(TypeName, Install, Remove, Hxclr) %ignore Install; %ignore Remove; +%ignore Hxclr; %extend TypeName { void install() { - hexrays_register_python_clearable_instance($self, hxclr_optinsn_t); + hexrays_register_python_clearable_instance($self, Hxclr); Install($self); } bool remove() @@ -245,8 +273,23 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); } }; %enddef -%def_opt_handler(optinsn_t, install_optinsn_handler, remove_optinsn_handler); -%def_opt_handler(optblock_t, install_optblock_handler, remove_optblock_handler) +%def_opt_handler(optinsn_t, install_optinsn_handler, remove_optinsn_handler, hxclr_optinsn_t) +%def_opt_handler(optblock_t, install_optblock_handler, remove_optblock_handler, hxclr_optblock_t) +%def_opt_handler(udc_filter_t, install_udc_filter, remove_udc_filter, hxclr_udc_filter_t) + +// udc_filter_t::init() will create a tinfo_t from the user-provided +// declaration. We must also ensure the instance is registered +// even if only init() is called (but install() isn't) +%extend udc_filter_t { + bool init(const char *decl) + { + const bool ok = $self->init(decl); + if ( ok ) + hexrays_register_python_clearable_instance($self, hxclr_udc_filter_t); + return ok; + } +}; + // "Warning 473: Returning a pointer or reference in a director method is not recommended." %warnfilter(473) codegen_t::emit_micro_mvm; @@ -273,6 +316,43 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %rename (_ll_make_num) make_num; %rename (_ll_create_helper) create_helper; +%delobject create_cfunc; + +%fragment("cvt_cfunc_t", "header") +{ + int cvt_cfunc_t(cfunc_t **out, PyObject *obj) + { + cfunc_t *cfunc = 0; + int res = SWIG_ConvertPtr(obj, (void **) &cfunc, SWIGTYPE_p_cfunc_t, 0 | 0); + if ( SWIG_IsOK(res) ) + { + *out = cfunc; + } + else + { + cfuncptr_t *cfuncptr = 0; + res = SWIG_ConvertPtr(obj, (void **) &cfuncptr, SWIGTYPE_p_qrefcnt_tT_cfunc_t_t, 0 | 0); + if ( SWIG_IsOK(res) ) + *out = *cfuncptr; + } + return res; + } +} + +%typemap(typecheck, fragment="cvt_cfunc_t", precedence=SWIG_TYPECHECK_POINTER) cfunc_t * { + // %typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER) cfunc_t * + cfunc_t *cfunc = nullptr; + const int res$argnum = cvt_cfunc_t(&cfunc, $input); + _v = SWIG_CheckState(res$argnum); +} + +%typemap(in, fragment="cvt_cfunc_t") cfunc_t * { + // %typemap(in, fragment="cvt_cfunc_t") cfunc_t * + int res$argnum = cvt_cfunc_t(&$1, $input); + if ( !SWIG_IsOK(res$argnum) ) + SWIG_exception_fail(SWIG_ArgError(res$argnum), "in method '$symname', argument $argnum of type $1_type"); +} + %extend cfunc_t { %immutable argidx; @@ -345,10 +425,13 @@ public: raise Exception("%s already owns attribute \"%s\" (%s); cannot be modified" % (self, attr, o)) return True + def _ensure_ownership_transferrable(self, v): + if not v.thisown: + raise Exception("%s is already owned, and cannot be reused" % v) + def _acquire_ownership(self, v, acquire): if acquire and (v is not None) and not isinstance(v, ida_idaapi.integer_types): - if not v.thisown: - raise Exception("%s is already owned, and cannot be reused" % v) + self._ensure_ownership_transferrable(v) v.thisown = False dereg = getattr(v, "_deregister", None) if dereg: @@ -379,12 +462,13 @@ public: "cinsn_t", "cexpr_t", "cblock_t", - "mbl_array_t", + "mba_t", "mop_t", "minsn_t", "optinsn_t", "optblock_t", - "valrng_t"][rkind] + "valrng_t", + "udc_filter_t"][rkind] return "%s [thisown=%s, owned by IDAPython as=%s]" % ( cpp, self.thisown, @@ -394,77 +478,89 @@ public: }; %enddef -#define ___MEMBER_REF_BASE__ACCESSORS(Type, PName, Setexpr) \ - Type _get_##PName() const { return self->##PName; } \ - void _set_##PName(Type _v) { self->##PName = Setexpr; } +%define %define_node_property_accessors(TNAME, PNAME, PTYPE) + %extend TNAME { + PTYPE _get_##PNAME() const { return $self->PNAME; } + void _set_##PNAME(PTYPE _v) { $self->PNAME = _v; } + } +%enddef -#define ___MEMBER_REF_BASE__PROPERTY(PName, Cond, Defval, Acquire) \ - %pythoncode { \ - PName = property( \ - lambda self: self._get_##PName() if Cond else Defval, \ - lambda self, v: \ - self._ensure_cond(Cond, #Cond) \ - and self._ensure_no_obj(self._get_##PName(), #PName, Acquire) \ - and self._acquire_ownership(v, Acquire) \ - and self._set_##PName(v)) \ +%define %define_node_cstring_property_accessors(TNAME, PNAME) + %extend TNAME { + const char *_get_##PNAME() const { return $self->PNAME; } + void _set_##PNAME(const char *_v) + { + if ( $self->PNAME != nullptr ) + { + ::qfree($self->PNAME); + $self->PNAME = nullptr; } + $self->PNAME = ::qstrdup(_v); + } + } +%enddef -//------------------------------------------------------------------------- -#define ___MEMBER_REF_BASE(Type, PName, Cond, Defval, Acquire, Setexpr) \ - ___MEMBER_REF_BASE__ACCESSORS(Type, PName, Setexpr) \ - ___MEMBER_REF_BASE__PROPERTY(PName, Cond, Defval, Acquire) +%define %define_node_obj_property(TNAME, COND, PNAME, DEFVAL, ACQUIRE) + %extend TNAME { + %pythoncode { + PNAME = property( + lambda self: self._get_##PNAME() if COND else DEFVAL, + lambda self, v: self._ensure_cond(COND, #COND) \ + and self._ensure_no_obj(self._get_##PNAME(), #PNAME, ACQUIRE) \ + and self._acquire_ownership(v, ACQUIRE) \ + and self._set_##PNAME(v)) + } + } +%enddef -//------------------------------------------------------------------------- -#define ___SCALAR_MEMBER_REF_BASE__PROPERTY(PName, Cond, Defval) \ - %pythoncode { \ - PName = property( \ - lambda self: self._get_##PName() if Cond else Defval, \ - lambda self, v: \ - self._ensure_cond(Cond, #Cond) \ - and self._set_##PName(v)) \ - } +%define %define_node_scalar_property(TNAME, COND, PNAME, DEFVAL) + %extend TNAME { + %pythoncode { + PNAME = property( + lambda self: self._get_##PNAME() if COND else DEFVAL, + lambda self, v: self._ensure_cond(COND, #COND) and self._set_##PNAME(v)) + } + } +%enddef + +// ------------------------------ + +%define %override_node_obj_property(TNAME, COND, PNAME, PTYPE, DEFVAL, ACQUIRE) + %define_node_property_accessors(TNAME, PNAME, PTYPE); + %define_node_obj_property(TNAME, COND, PNAME, DEFVAL, ACQUIRE); + %ignore TNAME::PNAME; +%enddef + +%define %override_node_scalar_property(TNAME, COND, PNAME, PTYPE, DEFVAL) + %define_node_property_accessors(TNAME, PNAME, PTYPE); + %define_node_scalar_property(TNAME, COND, PNAME, DEFVAL); + %ignore TNAME::PNAME; +%enddef + +%define %override_node_cstring_property(TNAME, COND, PNAME) + %define_node_cstring_property_accessors(TNAME, PNAME); + %define_node_obj_property(TNAME, COND, PNAME, None, False); + %ignore TNAME::PNAME; +%enddef //------------------------------------------------------------------------- // mop_t //------------------------------------------------------------------------- -#define MOP_MEMBER_REF(Type, PName, Mopt) \ - ___MEMBER_REF_BASE(Type, PName, self.t == Mopt, None, True, _v) -#define MOP_SCALAR_MEMBER_REF(Type, PName, Mopt) \ - ___MEMBER_REF_BASE__ACCESSORS(Type, PName, _v) \ - ___SCALAR_MEMBER_REF_BASE__PROPERTY(PName, self.t == Mopt, None) +%define %override_mop_t_obj_property(MOP_OP, PNAME, PTYPE) + %override_node_obj_property(mop_t, self.t == MOP_OP, PNAME, PTYPE, None, True); +%enddef -#define MOP_CSTRING_MEMBER_REF(PName, Mopt) \ - const char *_get_##PName() const { return self->PName; } \ - void _set_##PName(const char *_v) \ - { \ - if ( $self->PName != NULL ) \ - { \ - ::qfree($self->PName); \ - $self->PName = NULL; \ - } \ - $self->PName = ::qstrdup(_v); \ - } \ - ___MEMBER_REF_BASE__PROPERTY(PName, self.t == Mopt, None, False) +%define %override_mop_t_scalar_property(MOP_OP, PNAME, PTYPE) + %override_node_scalar_property(mop_t, self.t == MOP_OP, PNAME, PTYPE, None); +%enddef +%define %override_mop_t_cstring_property(MOP_OP, PNAME) + %override_node_cstring_property(mop_t, self.t == MOP_OP, PNAME); +%enddef %extend mop_t { - MOP_SCALAR_MEMBER_REF(mreg_t, r, mop_r); - MOP_MEMBER_REF(mnumber_t*, nnn, mop_n); - MOP_CSTRING_MEMBER_REF(cstr, mop_str); - MOP_MEMBER_REF(minsn_t*, d, mop_d) - MOP_MEMBER_REF(stkvar_ref_t*, s, mop_S); - MOP_SCALAR_MEMBER_REF(ea_t, g, mop_v); - MOP_SCALAR_MEMBER_REF(int, b, mop_b); - MOP_MEMBER_REF(mcallinfo_t*, f, mop_f); - MOP_MEMBER_REF(lvar_ref_t*, l, mop_l); - MOP_MEMBER_REF(mop_addr_t*, a, mop_a); - MOP_CSTRING_MEMBER_REF(helper, mop_h); - MOP_MEMBER_REF(mcases_t*, c, mop_c); - MOP_MEMBER_REF(fnumber_t*, fpc, mop_fn); - MOP_MEMBER_REF(mop_pair_t*, pair, mop_p); - MOP_MEMBER_REF(scif_t*, scif, mop_sc); mopt_t _get_t() const { return self->t; } void _set_t(mopt_t v) { self->t = v; } @@ -485,9 +581,26 @@ public: return s; } } -#undef MOP_MEMBER_REF + %monitored_lifecycle_object_t(mop_t); +%override_mop_t_obj_property(mop_n, nnn, mnumber_t *); +%override_mop_t_obj_property(mop_d, d, minsn_t *); +%override_mop_t_obj_property(mop_S, s, stkvar_ref_t *); +%override_mop_t_obj_property(mop_f, f, mcallinfo_t *); +%override_mop_t_obj_property(mop_l, l, lvar_ref_t *); +%override_mop_t_obj_property(mop_a, a, mop_addr_t *); +%override_mop_t_obj_property(mop_c, c, mcases_t *); +%override_mop_t_obj_property(mop_fn, fpc, fnumber_t *); +%override_mop_t_obj_property(mop_p, pair, mop_pair_t *); +%override_mop_t_obj_property(mop_sc, scif, scif_t *); +%override_mop_t_obj_property(mop_sc, scif, scif_t *); +%override_mop_t_scalar_property(mop_r, r, mreg_t); +%override_mop_t_scalar_property(mop_v, g, ea_t); +%override_mop_t_scalar_property(mop_b, b, int); +%override_mop_t_cstring_property(mop_str, cstr); +%override_mop_t_cstring_property(mop_h, helper); + //------------------------------------------------------------------------- // minsn_t //------------------------------------------------------------------------- @@ -533,7 +646,6 @@ public: } }; - //------------------------------------------------------------------------- // //------------------------------------------------------------------------- @@ -586,22 +698,8 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } //--------------------------------------------------------------------- // cinsn_t //--------------------------------------------------------------------- -#define CINSN_MEMBER_REF(Name) \ - ___MEMBER_REF_BASE(c##Name##_t*, c##Name, self.op == cit_##Name, None, True, _v) - %define_hexrays_lifecycle_object(cinsn_t); %extend cinsn_t { - CINSN_MEMBER_REF(block); - CINSN_MEMBER_REF(expr); - CINSN_MEMBER_REF(if); - CINSN_MEMBER_REF(for); - CINSN_MEMBER_REF(while); - CINSN_MEMBER_REF(do); - CINSN_MEMBER_REF(switch); - CINSN_MEMBER_REF(return); - CINSN_MEMBER_REF(goto); - CINSN_MEMBER_REF(asm); - static bool insn_is_epilog(const cinsn_t *insn) { return insn == INS_EPILOG; } %pythoncode { @@ -609,41 +707,69 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } return cinsn_t.insn_is_epilog(self) } }; -#undef CINSN_MEMBER_REF + + +%define %override_cinsn_t_obj_property(CIT_OP, PNAME, PTYPE) + %override_node_obj_property(cinsn_t, self.op == CIT_OP, PNAME, PTYPE, None, True); +%enddef +%override_cinsn_t_obj_property(cit_block, cblock, cblock_t *); +%override_cinsn_t_obj_property(cit_expr, cexpr, cexpr_t *); +%override_cinsn_t_obj_property(cit_if, cif, cif_t *); +%override_cinsn_t_obj_property(cit_for, cfor, cfor_t *); +%override_cinsn_t_obj_property(cit_while, cwhile, cwhile_t *); +%override_cinsn_t_obj_property(cit_do, cdo, cdo_t *); +%override_cinsn_t_obj_property(cit_switch, cswitch, cswitch_t *); +%override_cinsn_t_obj_property(cit_return, creturn, creturn_t *); +%override_cinsn_t_obj_property(cit_goto, cgoto, cgoto_t *); +%override_cinsn_t_obj_property(cit_asm, casm, casm_t *); //------------------------------------------------------------------------- // cexpr_t //------------------------------------------------------------------------- -#define CEXPR_MEMBER_REF(Type, PName, Cond, Defval, Acquire) \ - ___MEMBER_REF_BASE(Type, PName, Cond, Defval, Acquire, _v) - -#define CEXPR_MEMBER_REF_STR(Type, PName, Cond, Defval) \ - ___MEMBER_REF_BASE(Type, PName, Cond, Defval, False, ::qstrdup(_v)) - %define_hexrays_lifecycle_object(cexpr_t); %extend cexpr_t { - CEXPR_MEMBER_REF(cnumber_t*, n, self.op == cot_num, None, True); - CEXPR_MEMBER_REF(fnumber_t*, fpc, self.op == cot_fnum, None, True); - var_ref_t* get_v() { if ( self->op == cot_var ) { return &self->v; } else { return NULL; } } + var_ref_t* get_v() { if ( self->op == cot_var ) { return &self->v; } else { return nullptr; } } void set_v(const var_ref_t *v) { if ( self->op == cot_var ) { self->v = *v; } } %pythoncode { v = property(lambda self: self.get_v(), lambda self, v: self.set_v(v)) } - CEXPR_MEMBER_REF(ea_t, obj_ea, self.op == cot_obj, ida_idaapi.BADADDR, False); - CEXPR_MEMBER_REF(int, refwidth, True, 0, False); - CEXPR_MEMBER_REF(cexpr_t*, x, op_uses_x(self.op), None, True); - CEXPR_MEMBER_REF(cexpr_t*, y, op_uses_y(self.op), None, True); - CEXPR_MEMBER_REF(carglist_t*, a, self.op == cot_call, None, True); - CEXPR_MEMBER_REF(int, m, (self.op == cot_memptr or self.op == cot_memref), 0, False); - CEXPR_MEMBER_REF(cexpr_t*, z, op_uses_z(self.op), None, True); - CEXPR_MEMBER_REF(int, ptrsize, (self.op == cot_ptr or self.op == cot_memptr), 0, False); - CEXPR_MEMBER_REF(cinsn_t*, insn, self.op == cot_insn, None, True); - CEXPR_MEMBER_REF_STR(char*, helper, self.op == cot_helper, None); - CEXPR_MEMBER_REF_STR(char*, string, self.op == cot_str, None); }; +%ignore cexpr_t::v; -#undef CEXPR_MEMBER_REF_STR -#undef CEXPR_MEMBER_REF +%define %override_cexpr_t_obj_property(COND, PNAME, PTYPE, DEFVAL, ACQUIRE) + %override_node_obj_property(cexpr_t, COND, PNAME, PTYPE, DEFVAL, ACQUIRE); +%enddef +%define %override_cexpr_t_scalar_property(COND, PNAME, PTYPE, DEFVAL) + %override_node_scalar_property(cexpr_t, COND, PNAME, PTYPE, DEFVAL); +%enddef +%define %override_cexpr_t_cstring_property(COND, PNAME) + %override_node_cstring_property(cexpr_t, COND, PNAME); +%enddef + +%override_cexpr_t_obj_property(self.op == cot_num, n, cnumber_t *, None, True); +%override_cexpr_t_obj_property(self.op == cot_fnum, fpc, fnumber_t *, None, True); +%override_cexpr_t_obj_property(op_uses_x(self.op), x, cexpr_t *, None, True); +%override_cexpr_t_obj_property(op_uses_y(self.op), y, cexpr_t *, None, True); +%override_cexpr_t_obj_property(op_uses_z(self.op), z, cexpr_t *, None, True); +%override_cexpr_t_obj_property(self.op == cot_call, a, carglist_t *, None, True); +%override_cexpr_t_obj_property(self.op == cot_insn, insn, cinsn_t *, None, True); +%override_cexpr_t_scalar_property(self.op == cot_memptr or self.op == cot_memref, m, int, 0); +%override_cexpr_t_scalar_property(self.op == cot_ptr or self.op == cot_memptr, ptrsize, int, 0); +%override_cexpr_t_scalar_property(self.op == cot_obj, obj_ea, ea_t, ida_idaapi.BADADDR); +%override_cexpr_t_scalar_property(True, refwidth, int, 0); +%override_cexpr_t_cstring_property(self.op == cot_helper, helper); +%override_cexpr_t_cstring_property(self.op == cot_str, string); + +%feature("pythonprepend") cexpr_t::cexpr_t %{ + for arg in args[1:]: # skip copy constructor's arg + if isinstance(arg, cexpr_t): + self._ensure_ownership_transferrable(arg) +%} +%feature("pythonappend") cexpr_t::cexpr_t %{ + for arg in args[1:]: # skip copy constructor's arg + if isinstance(arg, cexpr_t): + self._acquire_ownership(arg, True) +%} //------------------------------------------------------------------------- // ctree_item_t @@ -660,7 +786,7 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } // } // // #define CTREE_CONDITIONAL_ITEM_MEMBER_REF(type, name, wanted_citype) \ -// type get_##name() const { if ( self->citype == wanted_citype ) { return self->##name; } else { return NULL; } } \ +// type get_##name() const { if ( self->citype == wanted_citype ) { return self->##name; } else { return nullptr; } } \ // void set_##name(type _v) { if ( self->citype == wanted_citype ) { self->##name = _v; } } \ // %pythoncode { \ // name = property(lambda self: self.get_##name(), lambda self, v: self.set_##name(v)) \ @@ -678,7 +804,7 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } if ( self->citype == wanted_citype ) \ return self->##name; \ else \ - return NULL; \ + return nullptr; \ } \ %pythoncode { \ name = property(lambda self: self._get_##name()) \ @@ -694,8 +820,10 @@ cexpr_t *citem_t_cexpr_get(citem_t *item) { return (cexpr_t *) item; } treeloc_t *loc const; }; +%ignore ctree_item_t::loc; + %{ -treeloc_t *ctree_item_t_loc_get(ctree_item_t *item) { return item->citype == VDI_TAIL ? &item->loc : NULL; } +treeloc_t *ctree_item_t_loc_get(ctree_item_t *item) { return item->citype == VDI_TAIL ? &item->loc : nullptr; } %} #undef CTREE_CONDITIONAL_ITEM_MEMBER_REF @@ -785,42 +913,9 @@ inline const ReturnType &py_ ## NameBase ## _second(NameBase ## _iterator_t p) { %template(history_t) qstack<history_item_t>; typedef int iterator_word; -/* no support for nested classes in swig means we need to wrap - this iterator and do some magic... +%qlist_template(cinsn_list_t, cinsn_t); - to use it, call qlist< cinsn_t >::begin() which will return the - proper iterator type which can then be used to get the current item. -*/ -%{ -typedef qlist<cinsn_t>::iterator qlist_cinsn_t_iterator; -%} -class qlist_cinsn_t_iterator {}; -%extend qlist_cinsn_t_iterator { - const cinsn_t &cur { return *(*self); } - void __next__(void) { (*self)++; } - bool operator==(const qlist_cinsn_t_iterator *x) const { return &(self->operator*()) == &(x->operator*()); } - bool operator!=(const qlist_cinsn_t_iterator *x) const { return &(self->operator*()) != &(x->operator*()); } - %pythoncode { - next = __next__ - } -}; - -%extend qlist<cinsn_t> { - qlist_cinsn_t_iterator begin() { return self->begin(); } - qlist_cinsn_t_iterator end(void) { return self->end(); } - qlist_cinsn_t_iterator insert(qlist_cinsn_t_iterator p, const cinsn_t& x) { return self->insert(p, x); } - void erase(qlist_cinsn_t_iterator p) { self->erase(p); } -}; -%ignore qlist< cinsn_t >::insert(); -%ignore qlist< cinsn_t >::erase(); -%ignore qlist< cinsn_t >::begin(); -%ignore qlist< cinsn_t >::begin() const; -%ignore qlist< cinsn_t >::end(); -%ignore qlist< cinsn_t >::end() const; - -//%template(qvector_meminfo_t) qvector<meminfo_t>; %template(qvector_lvar_t) qvector<lvar_t>; -%template(qlist_cinsn_t) qlist<cinsn_t>; %template(qvector_carg_t) qvector<carg_t>; %template(qvector_ccase_t) qvector<ccase_t>; %template(lvar_saved_infos_t) qvector<lvar_saved_info_t>; @@ -878,6 +973,12 @@ void qswap(cinsn_t &a, cinsn_t &b); %ignore get_widget_vdui; %rename (get_widget_vdui) py_get_widget_vdui; +%feature("pythonappend") decompile_func %{ + if val.__deref__() is None: + val = None +%} + + //------------------------------------------------------------------------- #if SWIG_VERSION == 0x40000 || SWIG_VERSION == 0x40001 %typemap(out) cfuncptr_t {} @@ -908,7 +1009,7 @@ void qswap(cinsn_t &a, cinsn_t &b); if (!PyCallable_Check($1)) { PyErr_SetString(PyExc_TypeError, "Need a callable object!"); - return NULL; + return nullptr; } } %enddef @@ -936,18 +1037,6 @@ void qswap(cinsn_t &a, cinsn_t &b); %possible_director_exc(ctree_visitor_t::apply_to) %possible_director_exc(ctree_visitor_t::apply_to_exprs) -%template (fnum_array) wrapped_array_t<uint16,6>; -%extend fnumber_t { - wrapped_array_t<uint16,6> __get_fnum() { - return wrapped_array_t<uint16,6>($self->fnum); - } - - %pythoncode { - fnum = property(__get_fnum) - } -} - - %inline %{ //<inline(py_hexrays)> //</inline(py_hexrays)> diff --git a/swig/ida.i b/swig/ida.i index 3a30fb2..8ab762c 100644 --- a/swig/ida.i +++ b/swig/ida.i @@ -10,10 +10,12 @@ %ignore idainfo::padding2; %ignore idainfo::idainfo; %ignore idainfo::~idainfo; +%ignore idainfo::lflags; %ignore inf_get_procname(); %ignore inf_get_strlit_pref(); +%ignore ea_helper_t; %ignore hook_cb_t; %ignore hook_type_t; %ignore hook_to_notification_point; @@ -29,6 +31,10 @@ %ignore setinf; %ignore setinf_buf; %ignore setinf_flag; +#ifdef NOTEAMS +%ignore idbattr_info_t; +%ignore idbattr_valmap_t; +#endif %extend idainfo { @@ -40,25 +46,73 @@ return buf; } -#ifdef BC695 - // Compat 6.95; since inf is a cvar, I can't just add properties to it.. - ea_t get_minEA() const { return $self->min_ea; } - void set_minEA(ea_t ea) { $self->min_ea = ea; } - ea_t get_maxEA() const { return $self->max_ea; } - void set_maxEA(ea_t ea) { $self->max_ea = ea; } - qstring get_procName() const { return $self->procname; } -#endif + uint32 _get_lflags() const { return $self->lflags; } + void _set_lflags(uint32 _f) + { + const uint32 _was = $self->lflags; +#define _DEF_BITSET(Bit, Setter) if ( (_was & Bit) != (_f & Bit) ) Setter((_f & Bit) != 0); + _DEF_BITSET(LFLG_PC_FPP, inf_set_decode_fpp); + _DEF_BITSET(LFLG_PC_FLAT, inf_set_32bit); + _DEF_BITSET(LFLG_64BIT, inf_set_64bit); + _DEF_BITSET(LFLG_IS_DLL, inf_set_dll); + _DEF_BITSET(LFLG_FLAT_OFF32, inf_set_flat_off32); + _DEF_BITSET(LFLG_MSF, inf_set_be); + _DEF_BITSET(LFLG_WIDE_HBF, inf_set_wide_high_byte_first); + _DEF_BITSET(LFLG_DBG_NOPATH, inf_set_dbg_no_store_path); + _DEF_BITSET(LFLG_SNAPSHOT, inf_set_snapshot); + _DEF_BITSET(LFLG_PACK, inf_set_pack_idb); + _DEF_BITSET(LFLG_COMPRESS, inf_set_compress_idb); + _DEF_BITSET(LFLG_KERNMODE, inf_set_kernel_mode); +#undef _DEF_BITSET + } %pythoncode { abiname = property(get_abiname) -#ifdef BC695 - minEA = property(get_minEA, set_minEA) - maxEA = property(get_maxEA, set_maxEA) - procName = property(get_procName) + lflags = property(_get_lflags, _set_lflags) +#ifdef MISSED_BC695 + minEA = ida_idaapi._make_missed_695bwcompat_property("minEA", "min_ea", has_setter=True) + maxEA = ida_idaapi._make_missed_695bwcompat_property("maxEA", "max_ea", has_setter=True) + procName = ida_idaapi._make_missed_695bwcompat_property("procName", "procname", has_setter=False) #endif } } +%apply size_t { uintptr_t offset } + +%extend idbattr_info_t +{ + idbattr_info_t( + const char *name, + uintptr_t offset, + size_t width, + uint64 bitmask=0, + uchar tag=0, + uint idi_flags=0) + { + idbattr_info_t *ii = new idbattr_info_t(); + ii->name = nullptr; + if ( name != nullptr ) + { + // mimick SWiG's `new`-based string allocation + size_t len = strlen(name) + 1; + ii->name = (char *) memcpy(new char[len], name, len); + } + ii->offset = offset; + ii->width = width; + ii->bitmask = bitmask; + ii->tag = tag; + ii->idi_flags = idi_flags; + return ii; + } + + ~idbattr_info_t() + { + delete [] $self->name; + $self->name = nullptr; + delete $self; + } +}; + %ignore setflag(uchar &where,uchar bit,int value); %ignore setflag(ushort &where,ushort bit,int value); %ignore setflag(uint32 &where,uint32 bit,int value); @@ -70,6 +124,8 @@ %ignore BADADDR; %ignore BADSEL; +%predefine_uint32_macro(AF_FINAL, 0x80000000); + %include "ida.hpp" %clear(char *buf); diff --git a/swig/idaapi.i b/swig/idaapi.i index a5d216f..5ca4e8c 100644 --- a/swig/idaapi.i +++ b/swig/idaapi.i @@ -14,6 +14,9 @@ //</code(py_idaapi)> %} +%ignore parse_command_line3; +%rename (parse_command_line3) py_parse_command_line; + %constant ea_t BADADDR = ea_t(-1); %constant sel_t BADSEL = sel_t(-1); %constant size_t SIZE_MAX = size_t(-1); diff --git a/swig/idd.i b/swig/idd.i index 2ffbf12..1f571f2 100644 --- a/swig/idd.i +++ b/swig/idd.i @@ -5,9 +5,23 @@ #include <err.h> %} +%ignore dynamic_register_set_t; +%ignore serialize_dynamic_register_set; +%ignore deserialize_dynamic_register_set; +%ignore serialize_insn; +%ignore deserialize_insn; %ignore free_debug_event; %ignore copy_debug_event; -%ignore debugger_t; +%ignore debugger_t::set_dbg_options; +%ignore debugger_t::callback; +%ignore debugger_t::notify; +%ignore debugger_t::notify_drc; +%ignore debugger_t::registers; +%ignore debugger_t::nregs; +%ignore debugger_t::regclasses; +%ignore debugger_t::bpt_bytes; +%ignore debugger_t::default_port_number; +%ignore register_info_t::bit_strings; %ignore lowcnd_t; %ignore lowcnd_vec_t; %ignore update_bpt_info_t; @@ -28,22 +42,101 @@ %uncomparable_elements_qvector(exception_info_t, excvec_t); %uncomparable_elements_qvector(process_info_t, procinfo_vec_t); -%template(call_stack_t) qvector<call_stack_info_t>; -%template(meminfo_vec_t) qvector<memory_info_t>; +%template(call_stack_info_vec_t) qvector<call_stack_info_t>; +%template(meminfo_vec_template_t) qvector<memory_info_t>; +%template(regvals_t) qvector<regval_t>; + +%define_regval_python_accessors(); %include "idd.hpp" -// SWIG chokes on the original declaration so it is replicated here -typedef struct -{ - ulonglong ival; // 8: integer value - ushort fval[6]; // 12: floating point value in the internal representation (see ieee.h) -} regval_t; - %clear(op_dtype_t dtype); %rename (appcall) py_appcall; +//------------------------------------------------------------------------- +%template (dyn_register_info_array) dynamic_wrapped_array_t<register_info_t>; +%extend debugger_t +{ + dynamic_wrapped_array_t<register_info_t> __get_registers() + { + return dynamic_wrapped_array_t<register_info_t>($self->registers, $self->nregs); + } + + int __get_nregs() + { + return $self->nregs; + } + + PyObject *__get_regclasses() + { + qstrvec_t rcs; + const char *const *clsptr = $self->regclasses; + for ( ; *clsptr != nullptr; ++clsptr ) + rcs.push_back(*clsptr); + return qstrvec2pylist(rcs); + } + + bytevec_t __get_bpt_bytes() + { + bytevec_t bv; + bv.resize($self->bpt_size); + memmove(bv.begin(), $self->bpt_bytes, bv.size()); + return bv; + } + + %pythoncode { + registers = property(__get_registers) + nregs = property(__get_nregs) + regclasses = property(__get_regclasses) + bpt_bytes = property(__get_bpt_bytes) + } +} + +//------------------------------------------------------------------------- +%extend regval_t +{ + bool set_pyval(PyObject *o, op_dtype_t dtype) + { + regval_t buf; + regval_t *ptr; + bool ok = set_regval_t(&ptr, &buf, dtype, o); + if ( ok ) + *$self = buf; + return ok; + } + + PyObject *pyval(op_dtype_t dtype) + { + return get_regval_t(*$self, dtype); + } +} + +//------------------------------------------------------------------------- +%extend register_info_t +{ + PyObject *__get_bit_strings() + { + if ( ($self->flags & REGISTER_CUSTFMT) == 0 && $self->bit_strings != nullptr ) + { + const int nbits = get_dtype_size($self->dtype) * 8; + qstrvec_t bss; + bss.reserve(nbits); + for ( int i = 0; i < nbits; ++i ) + bss.push_back($self->bit_strings[i] != nullptr ? $self->bit_strings[i] : ""); + return qstrvec2pylist(bss, S2LF_EMPTY_NONE); + } + else + { + Py_RETURN_NONE; + } + } + + %pythoncode { + bit_strings = property(__get_bit_strings) + } +} + %{ //<code(py_idd)> //</code(py_idd)> diff --git a/swig/idp.i b/swig/idp.i index f5c357f..805b5a8 100644 --- a/swig/idp.i +++ b/swig/idp.i @@ -5,15 +5,16 @@ #include <auto.hpp> #include <fixup.hpp> #include <tryblks.hpp> +#include <idacfg.hpp> struct undo_records_t; %} +%import "bitrange.hpp" + // Ignore the following symbols %ignore rginfo; -%ignore insn_t::get_canon_mnem; -%ignore insn_t::get_canon_feature; -%ignore insn_t::is_canon_insn; +%ignore processor_t::is_canon_insn; %ignore bytes_t; %ignore IDPOPT_STR; %ignore IDPOPT_NUM; @@ -26,10 +27,16 @@ struct undo_records_t; %ignore IDPOPT_BADVALUE; %ignore set_options_t; %ignore read_config; +%ignore read_config2; %ignore read_config_file; +%ignore read_config_file2; %ignore read_config_string; %ignore cfgopt_t; %ignore cfgopt_t__apply; +%ignore cfgopt_t__apply2; +%ignore cfgopt_t__apply3; +%ignore cfgopt_set_t; +%ignore cfgopt_set_vec_t; %ignore parse_config_value; %define_Hooks_class(IDP); @@ -44,10 +51,55 @@ struct undo_records_t; %ignore asm_t::out_func_footer; %ignore asm_t::get_type_name; %ignore instruc_t; -%ignore processor_t; -%ignore ph; %ignore IDP_Hooks::dispatch; %ignore _py_getreg; +%rename (_processor_t) processor_t; +%ignore processor_t::is_funcarg_off; +%ignore processor_t::ensure_processor; +%ignore processor_t::lvar_off; +%ignore processor_t::is_lumina_usable; +// The following are queried by the "scripting" processor module support +%ignore processor_t::id; +%ignore processor_t::flag; +%ignore processor_t::flag2; +%ignore processor_t::cnbits; +%ignore processor_t::dnbits; +%ignore processor_t::psnames; +%ignore processor_t::plnames; +%ignore processor_t::assemblers; +%ignore processor_t::_notify; +%ignore processor_t::reg_names; +%ignore processor_t::regs_num; +%ignore processor_t::reg_first_sreg; +%ignore processor_t::reg_last_sreg; +%ignore processor_t::segreg_size; +%ignore processor_t::reg_names; +%ignore processor_t::reg_code_sreg; +%ignore processor_t::reg_data_sreg; +%ignore processor_t::codestart; +%ignore processor_t::retcodes; +%ignore processor_t::instruc_start; +%ignore processor_t::instruc_end; +%ignore processor_t::instruc; +%ignore processor_t::tbyte_size; +%ignore processor_t::real_width; +%ignore processor_t::icode_return; +%ignore processor_t::unused_slot; + +%ignore event_listener_t; +%ignore hook_event_listener; +%ignore unhook_event_listener; +%ignore ignore_micro_t; +%ignore modctx_t; +%ignore procmod_t; +%ignore plugmod_t; +%ignore get_hexdsp; +%ignore set_hexdsp; +%ignore remove_event_listener; +%ignore set_module_data; +%ignore clr_module_data; +%ignore get_module_data; +%ignore get_modctx; // @arnaud %ignore notify__calc_next_eas; @@ -71,12 +123,18 @@ struct undo_records_t; %ignore notify__make_code; // @arnaud ^^^ +%template(reg_access_vec_t) qvector<reg_access_t>; + +// ph_calcrel +%apply size_t *OUTPUT { size_t *out_consumed }; +%apply bytevec_t *vout { bytevec_t *out_relbits }; + // @arnaud ditch this once all modules are ported // temporary: %ignore out_old_data; %ignore out_old_specea; -%nonnul_argument_prototype( +%pywraps_nonnul_argument_prototype( static PyObject *AssembleLine(ea_t ea, ea_t cs, ea_t ip, bool use32, const char *nonnul_line), const char *nonnul_line); @@ -96,6 +154,7 @@ struct undo_records_t; %include "idp.hpp" %include "config.hpp" +%include "idacfg.hpp" #ifndef SWIGIMPORTED // see above // prevent tinfo_t * check in some functions (e.g., '_wrap_IDP_Hooks_ev_adjust_argloc') diff --git a/swig/ieee.i b/swig/ieee.i new file mode 100644 index 0000000..c3ff784 --- /dev/null +++ b/swig/ieee.i @@ -0,0 +1,211 @@ + +%{ +#include <ieee.h> +%} + +%ignore ieee_ezero; +%ignore ieee_eone; +%ignore ieee_etwo; +%ignore ieee_e32; +%ignore ieee_elog2; +%ignore ieee_esqrt2; +%ignore ieee_eoneopi; +%ignore ieee_epi; +%ignore ieee_eeul; +%ignore realtoasc; +%ignore asctoreal; +%ignore eltoe; +%ignore eltoe64; +%ignore eltoe64u; +%ignore eetol; +%ignore eetol64; +%ignore eetol64u; +%ignore eldexp; +%ignore eadd; +%ignore emul; +%ignore ediv; +%ignore ecmp; +%ignore get_fpvalue_kind; +%ignore emovo; +%ignore emovi; +%ignore eshift; +%ignore emdnorm; +%ignore ieee_realcvt; +%ignore realcvt; +%ignore l_realcvt; +%ignore b_realcvt; + +%typemap(argout) (char *buf, size_t bufsize) +{ + // %typemap(argout) (char *buf, size_t bufsize) (ieee.i specialization) + Py_XDECREF(resultobj); + $result = PyUnicode_FromString($1); +} + +%_uint_result_as_output(sval_t, PyLong_FromLong, result == REAL_ERROR_OK); +%_uint_result_as_output(int64, PyLong_FromLongLong, result == REAL_ERROR_OK); +%_uint_result_as_output(uint64, PyLong_FromUnsignedLongLong, result == REAL_ERROR_OK); +%apply sval_t *result { sval_t *out }; +%apply int64 *result { int64 *out }; +%apply uint64 *result { uint64 *out }; + +%inline %{ +//<inline(py_ieee)> +//</inline(py_ieee)> +%} + +%define %define_sized_bytevec_t(TYPE, SIZE) +%typemap(check) (const TYPE &) +{ // %typemap(check) (const TYPE) + if ( $1->size() != SIZE ) + SWIG_exception_fail( + SWIG_ValueError, + "invalid bytes " "in method '" "$symname" "', argument " "$argnum"" should be " #SIZE " bytes long"); +} +%enddef +%define_sized_bytevec_t(bytevec12_t, 12); +%define_sized_bytevec_t(bytevec10_t, 10); + +%ignore fpvalue_t::from_half; +%ignore fpvalue_t::from_float; +%ignore fpvalue_t::from_double; +%ignore fpvalue_t::to_half; +%ignore fpvalue_t::to_float; +%ignore fpvalue_t::to_double; +%ignore fpvalue_t::from_str(const char **); + +%template (fpvalue_shorts_array_t) wrapped_array_t<uint16,FPVAL_NWORDS>; + +%extend fpvalue_t { + fpvalue_t() + { + fpvalue_t *fp = new fpvalue_t(); + fp->clear(); + return fp; + } + + fpvalue_t(const bytevec12_t &in) + { + fpvalue_t *fp = new fpvalue_t(); + memmove(fp->w, in.begin(), sizeof(fp->w)); + return fp; + } + + void _get_bytes(bytevec12_t *vout) const + { + vout->resize(12); + memmove(vout->begin(), (const void *) $self->w, vout->size()); + } + + void _set_bytes(const bytevec12_t &in) + { + memmove($self->w, (const void *) in.begin(), sizeof($self->w)); + } + + void _get_10bytes(bytevec10_t *vout) const + { + vout->resize(10); + memmove(vout->begin(), (const void *) $self->w, vout->size()); + } + + void _set_10bytes(const bytevec10_t &in) + { + CASSERT(sizeof($self) == 10); + memmove($self->w, (const void *) in.begin(), in.size()); // guaranteed to be 10 bytes long, thanks to %typemap(check) (const bytevec10_t) + $self->w[FPVAL_NWORDS-1] = 0; + } + + // yes, it's called '_get_float', but we return a 'double' because + // that 'double' will be for SWiG to turn the type into a Python + // floating-point value with as much accuracy as possible. + double _get_float() const + { + double v; + fpvalue_error_t err = $self->to_double(&v); + if ( err != REAL_ERROR_OK ) + PyErr_SetString( + PyExc_ValueError, + "Raw data couldn't be converted to a floating-point number"); + return v; + } + + void _set_float(double v) + { + fpvalue_error_t err = $self->from_double(v); + if ( err != REAL_ERROR_OK ) + PyErr_SetString( + PyExc_ValueError, + "The floating-point number couldn't be converted"); + } + + qstring __str__() const + { + char buf[MAXSTR]; + $self->to_str(buf, sizeof(buf), 50); + qstring qs(buf); + qs.trim2(); + return qs; + } + + wrapped_array_t<uint16,FPVAL_NWORDS> _get_shorts() + { + return wrapped_array_t<uint16,FPVAL_NWORDS>($self->w); + } + + fpvalue_error_t from_str(const char *p) + { + return p != nullptr ? $self->from_str(&p) : REAL_ERROR_BADSTR; + } + + void assign(const fpvalue_t &r) + { + memmove($self->w, r.w, sizeof($self->w)); + } + + %pythoncode + { + bytes = property(_get_bytes, _set_bytes) + _10bytes = property(_get_10bytes, _set_10bytes) + shorts = property(_get_shorts) + float = property(_get_float, _set_float) + sval = property(lambda self: self.to_sval(), lambda self, v: self.from_sval(v)) + int64 = property(lambda self: self.to_int64(), lambda self, v: self.from_int64(v)) + uint64 = property(lambda self: self.to_uint64(), lambda self, v: self.from_uint64(v)) + + def __iter__(self): + shorts = self.shorts + for one in shorts: + yield one + + def __getitem__(self, i): + return self.shorts[i] + + def __setitem__(self, i, v): + self.shorts[i] = v + } +} + +%define %define_fpvalue_t_operator(OPERATOR, METHOD, ERRMSG) +%nopythonmaybecall fpvalue_t::OPERATOR; +%extend fpvalue_t { + fpvalue_t OPERATOR(const fpvalue_t &o) const + { + fpvalue_t r = *$self; + fpvalue_error_t err = r.METHOD(o); + if ( err != REAL_ERROR_OK ) + throw std::runtime_error(ERRMSG); + return r; + } +} +%enddef +%define_fpvalue_t_operator(__add__, fadd, "Addition failed"); +%define_fpvalue_t_operator(__sub__, fsub, "Subtraction failed"); +%define_fpvalue_t_operator(__mul__, fmul, "Multiplication failed"); +%define_fpvalue_t_operator(__truediv__, fdiv, "Division failed"); + +%include "ieee.h" + +%pythoncode %{ +#<pycode(py_ieee)> +#</pycode(py_ieee)> +%} diff --git a/swig/kernwin.i b/swig/kernwin.i index af6efcd..98fecf6 100644 --- a/swig/kernwin.i +++ b/swig/kernwin.i @@ -1,28 +1,29 @@ + %{ #include <kernwin.hpp> #include <parsejson.hpp> %} +%{ +struct dirspec_t; +%} + +%force_declare_SWiG_type(dirspec_t); +%force_declare_SWiG_type(dirtree_t); + %apply qstring *result { qstring *label }; %apply qstring *result { qstring *shortcut }; %apply qstring *result { qstring *tooltip }; -%{ -#ifdef __NT__ -idaman __declspec(dllimport) plugin_t PLUGIN; -#else -extern plugin_t PLUGIN; -#endif -%} - - %typemap(out) void *get_window_id { // %typemap(out) void *get_window_id $result = PyLong_FromUnsignedLongLong((unsigned long long) $1); } +%ignore callui_t; %ignore sync_source_t::sync_source_t(); +%ignore l_compare; // Ignore the va_list functions %ignore vask_form; @@ -77,6 +78,7 @@ extern plugin_t PLUGIN; %define_Hooks_class(UI); +%ignore ida_checkmem; %ignore vnomem; %ignore vmsg; %ignore show_wait_box_v; @@ -89,8 +91,6 @@ extern plugin_t PLUGIN; %ignore destroy_custom_viewerdestroy_custom_viewer; %ignore set_custom_viewer_handler; %ignore set_custom_viewer_range; -%ignore is_idaview; -%ignore refresh_custom_viewer; %ignore set_custom_viewer_handlers; %ignore get_viewer_name; // Ignore these string functions. There are trivial replacements in Python. @@ -139,6 +139,33 @@ extern plugin_t PLUGIN; %ignore chooser_item_attrs_t::cb; +// chooser_base_t should be read-only +%ignore chooser_base_t::chooser_base_t; +%ignore chooser_base_t::~chooser_base_t; +%ignore chooser_base_t::call_destructor; +%ignore chooser_base_t::check_version; +%ignore chooser_base_t::closed; +%ignore chooser_base_t::get_chooser_obj; +%ignore chooser_base_t::get_obj_id; +%ignore chooser_base_t::init; +%ignore chooser_base_t::set_ask_item_attrs; +%ignore chooser_base_t::ALL_CHANGED; +%ignore chooser_base_t::NOTHING_CHANGED; +%ignore chooser_base_t::SELECTION_CHANGED; +%ignore chooser_base_t::ALREADY_EXISTS; +%ignore chooser_base_t::EMPTY_CHOOSER; +%ignore chooser_base_t::NO_ATTR; +%ignore chooser_base_t::NO_SELECTION; + +%feature("nodirector") chooser_base_t; +%ignore chooser_base_t::get_row(qstrvec_t *, int *, chooser_item_attrs_t *, size_t) const; +%extend chooser_base_t { + PyObject *get_row(size_t n) const + { + return py_chooser_base_t_get_row($self, n); + } +} + // Make ask_addr(), ask_seg(), and ask_long() return a // tuple: (result, value) %rename (_ask_long) ask_long; @@ -164,8 +191,8 @@ extern plugin_t PLUGIN; %apply bytevec_t *vout { bytevec_t *out }; %ignore register_place_class; -%ignore register_loc_converter; -%ignore lookup_loc_converter; +%ignore register_loc_converter2; +%ignore lookup_loc_converter2; %ignore hexplace_t; %ignore hexplace_gen_t; @@ -173,6 +200,40 @@ extern plugin_t PLUGIN; %ignore msg_get_lines; %rename (msg_get_lines) py_msg_get_lines; +%extend input_event_t { + + size_t _source_as_size() const { return size_t($self->source); } + size_t _target_as_size() const { return size_t($self->target); } + + %pythoncode { + def get_source_QEvent(self): + ptr = self._source_as_size(); + if ptr: + from PyQt5 import sip + if self.kind in [iek_key_press, iek_key_release]: + from PyQt5.QtGui import QInputEvent + return sip.wrapinstance(ptr, QInputEvent) + elif self.kind in [ + iek_mouse_button_press, + iek_mouse_button_release]: + from PyQt5.QtGui import QMouseEvent + return sip.wrapinstance(ptr, QMouseEvent) + elif self.kind == iek_mouse_wheel: + from PyQt5.QtGui import QWheelEvent + return sip.wrapinstance(ptr, QWheelEvent) + else: + from PyQt5.QtCore import QEvent + return sip.wrapinstance(ptr, QEvent) + + def get_target_QWidget(self): + ptr = self._target_as_size() + if ptr: + from PyQt5 import sip + from PyQt5.QtWidgets import QWidget, QAbstractScrollArea + return sip.wrapinstance(ptr, QWidget) + } +} + %feature("director") UI_Hooks; //------------------------------------------------------------------------- @@ -184,11 +245,11 @@ struct py_action_handler_t : public action_handler_t : pyah(borref_t(_o)), has_activate(false), has_update(false) { ref_t act(PyW_TryGetAttrString(pyah.o, "activate")); - if ( act != NULL && PyCallable_Check(act.o) > 0 ) + if ( act && PyCallable_Check(act.o) > 0 ) has_activate = true; ref_t upd(PyW_TryGetAttrString(pyah.o, "update")); - if ( upd != NULL && PyCallable_Check(upd.o) > 0 ) + if ( upd && PyCallable_Check(upd.o) > 0 ) has_update = true; } virtual idaapi ~py_action_handler_t() @@ -206,7 +267,7 @@ struct py_action_handler_t : public action_handler_t PYW_GIL_GET_AND_REPORT_ERROR; newref_t pyctx(SWIG_InternalNewPointerObj(SWIG_as_voidptr(ctx), SWIGTYPE_p_action_ctx_base_t, 0)); newref_t pyres(PyObject_CallMethod(pyah.o, (char *)"activate", (char *) "O", pyctx.o)); - return PyErr_Occurred() ? 0 : ((pyres != NULL && IDAPyInt_Check(pyres.o)) ? IDAPyInt_AsLong(pyres.o) : 0); + return PyErr_Occurred() != nullptr ? 0 : ((pyres && PyLong_Check(pyres.o)) ? PyLong_AsLong(pyres.o) : 0); } virtual action_state_t idaapi update(action_update_ctx_t *ctx) { @@ -215,7 +276,7 @@ struct py_action_handler_t : public action_handler_t PYW_GIL_GET_AND_REPORT_ERROR; newref_t pyctx(SWIG_InternalNewPointerObj(SWIG_as_voidptr(ctx), SWIGTYPE_p_action_ctx_base_t, 0)); newref_t pyres(PyObject_CallMethod(pyah.o, (char *)"update", (char *) "O", pyctx.o)); - return PyErr_Occurred() ? AST_DISABLE_ALWAYS : ((pyres != NULL && IDAPyInt_Check(pyres.o)) ? action_state_t(IDAPyInt_AsLong(pyres.o)) : AST_DISABLE); + return PyErr_Occurred() != nullptr ? AST_DISABLE_ALWAYS : ((pyres && PyLong_Check(pyres.o)) ? action_state_t(PyLong_AsLong(pyres.o)) : AST_DISABLE); } private: @@ -229,9 +290,9 @@ private: %inline %{ void refresh_choosers(void) { - Py_BEGIN_ALLOW_THREADS; + SWIG_PYTHON_THREAD_BEGIN_ALLOW; callui(ui_refresh_choosers); - Py_END_ALLOW_THREADS; + SWIG_PYTHON_THREAD_END_ALLOW; } %} @@ -267,6 +328,21 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %ignore remove_command_interpreter; %rename (remove_command_interpreter) py_remove_command_interpreter; +%ignore qvector<line_rendering_output_entry_t*>::grow; +%template(line_rendering_output_entries_refs_t) qvector<line_rendering_output_entry_t*>; +%ignore line_rendering_output_entries_refs_t::push_back; + +%ignore qvector<const twinline_t*>::grow; +%template(section_lines_refs_t) qvector<const twinline_t*>; +%template(sections_lines_refs_t) qvector<section_lines_refs_t>; + +%uncomparable_elements_qvector(twinline_t, text_t); + +%ignore qvector<sync_source_t>::grow; +%ignore qvector<sync_source_t>::resize; +%ignore qvector<sync_source_t>::push_back(); +%template(sync_source_vec_t) qvector<sync_source_t>; + //<typemaps(kernwin)> //</typemaps(kernwin)> @@ -274,6 +350,19 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %uncomparable_elements_qvector(disasm_line_t, disasm_text_t); +%extend qvector<line_rendering_output_entry_t*> { + void _internal_push_back(line_rendering_output_entry_t *e) + { + $self->push_back(e); + } + %pythoncode { + def push_back(self, e): + if e and e.thisown: + self._internal_push_back(e) + e.thisown = False + } +} + %extend place_t { virtual bool idaapi deserialize(const bytevec_t &in) { @@ -287,13 +376,13 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) const char *name, const char *label, PyObject *handler, - const char *shortcut = NULL, - const char *tooltip = NULL, + const char *shortcut = nullptr, + const char *tooltip = nullptr, int icon = -1, int flags = 0) { action_desc_t *ad = new action_desc_t(); -#define DUPSTR(Prop) ad->Prop = Prop == NULL ? NULL : qstrdup(Prop) +#define DUPSTR(Prop) ad->Prop = Prop == nullptr ? nullptr : qstrdup(Prop) DUPSTR(name); DUPSTR(label); DUPSTR(shortcut); @@ -301,14 +390,14 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) #undef DUPSTR ad->icon = icon; ad->handler = new py_action_handler_t(handler); - ad->flags = flags | ADF_OWN_HANDLER; + ad->flags = flags | ADF_OWN_HANDLER | ADF_GLOBAL | ADF_OT_PLUGIN; ad->owner = &PLUGIN; return ad; } ~action_desc_t() { - if ( $self->handler != NULL ) // Ownership not taken? + if ( $self->handler != nullptr ) // Ownership not taken? delete $self->handler; #define FREESTR(Prop) qfree((char *) $self->Prop) FREESTR(name); @@ -322,18 +411,12 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %extend action_ctx_base_t { -#ifdef BC695 - TWidget *_get_form() const { return $self->widget; } - twidget_type_t _get_form_type() const { return $self->widget_type; } - qstring _get_form_title() const { return $self->widget_title; } -#endif - %pythoncode { cur_extracted_ea = cur_value -#ifdef BC695 - form = property(_get_form) - form_type = property(_get_form_type) - form_title = property(_get_form_title) +#ifdef MISSED_BC695 + form = ida_idaapi._make_missed_695bwcompat_property("form", "widget", has_setter=False) + form_type = ida_idaapi._make_missed_695bwcompat_property("form_type", "widget_type", has_setter=False) + form_title = ida_idaapi._make_missed_695bwcompat_property("form_title", "widget_title", has_setter=False) #endif } } @@ -344,10 +427,10 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %newobject place_t::as_structplace_t; %newobject place_t::as_simpleline_place_t; %extend place_t { - static idaplace_t *as_idaplace_t(place_t *p) { return (idaplace_t *) p->clone(); } - static enumplace_t *as_enumplace_t(place_t *p) { return (enumplace_t *) p->clone(); } - static structplace_t *as_structplace_t(place_t *p) { return (structplace_t *) p->clone(); } - static simpleline_place_t *as_simpleline_place_t(place_t *p) { return (simpleline_place_t *) p->clone(); } + static idaplace_t *as_idaplace_t(place_t *p) { return p != nullptr ? (idaplace_t *) p->clone() : nullptr; } + static enumplace_t *as_enumplace_t(place_t *p) { return p != nullptr ? (enumplace_t *) p->clone() : nullptr; } + static structplace_t *as_structplace_t(place_t *p) { return p != nullptr ? (structplace_t *) p->clone() : nullptr; } + static simpleline_place_t *as_simpleline_place_t(place_t *p) { return p != nullptr ? (simpleline_place_t *) p->clone() : nullptr; } PyObject *py_generate(void *ud, int maxsize) { diff --git a/swig/lines.i b/swig/lines.i index bc9a8eb..4b27263 100644 --- a/swig/lines.i +++ b/swig/lines.i @@ -10,11 +10,17 @@ %ignore save_lines; %ignore align_down_to_stack; %ignore align_up_to_stack; -%ignore bgcolors; %ignore encoder_t; +%ignore file_producer_t; +%typemap(default) const void *owner { + $1 = nullptr; +} + +// compat %ignore set_user_defined_prefix; %rename (set_user_defined_prefix) py_set_user_defined_prefix; +// end compat %ignore generate_disassembly; %rename (generate_disassembly) py_generate_disassembly; @@ -40,7 +46,7 @@ Py_XDECREF(resultobj); if (result >= 0) { - resultobj = IDAPyStr_FromUTF8AndSize((const char *) $1->c_str(), $1->length()); + resultobj = PyUnicode_FromStringAndSize((const char *) $1->c_str(), $1->length()); } else { @@ -59,7 +65,7 @@ //</code(py_lines)> %} -%nonnul_argument_prototype( +%pywraps_nonnul_argument_prototype( PyObject *py_tag_remove(const char *nonnul_instr), const char *nonnul_instr); diff --git a/swig/loader.i b/swig/loader.i index 8e86d12..67848cf 100644 --- a/swig/loader.i +++ b/swig/loader.i @@ -59,12 +59,6 @@ %ignore IDP_DESC_START; %ignore IDP_DESC_END; %ignore get_idp_descs; -%ignore init_fileregions; -%ignore term_fileregions; -%ignore save_fileregions; -%ignore add_fileregion; -%ignore move_fileregions; -%ignore del_fileregions; %ignore enum_plugins; %ignore is_database_ext; %ignore is_temp_database; diff --git a/swig/lumina.i b/swig/lumina.i index bc0a745..1a796f4 100644 --- a/swig/lumina.i +++ b/swig/lumina.i @@ -5,6 +5,7 @@ %feature("nodirector") lumina_client_t; %ignore lumina_client_t::lumina_client_t; +%ignore lumina_client_t::can_del_history; %ignore metadata_t; %ignore metadata_creator_t; @@ -21,22 +22,19 @@ %ignore func_info_and_frequency_t::swap; %ignore func_info_pattern_and_frequency_t::swap; %ignore input_file_t::swap; +%ignore func_info_pattern_and_frequency_t::swap; %ignore mdkey2str; %ignore str2mdkey; %ignore serialize; %ignore deserialize; %ignore new_lumina_client; %ignore close_server_connection; +%ignore close_server_connection2; +%ignore close_server_connections; %ignore get_mdkey_preferred_format; %ignore extract_type_from_metadata; %rename (extract_type_from_metadata) py_extract_type_from_metadata; %rename (split_metadata) py_split_metadata; -%ignore swap_md5; -%ignore print_md5; -%ignore parse_md5; -%ignore auto_apply_lumina; -%ignore eavec_to_ea64vec; -%ignore ea64vec_to_eavec; %feature("nodirector") simple_diff_handler_t; @@ -65,43 +63,26 @@ %rpc_packet_data_t(pkt_push_md_result_t, PKT_PUSH_MD_RESULT); %rpc_packet_data_t(pkt_get_pop_t, PKT_GET_POP); %rpc_packet_data_t(pkt_get_pop_result_t, PKT_GET_POP_RESULT); -%rpc_packet_data_t(pkt_dump_md_t, PKT_DUMP_MD); -%rpc_packet_data_t(pkt_dump_md_result_t, PKT_DUMP_MD_RESULT); -%rpc_packet_data_t(pkt_clean_db_t, PKT_CLEAN_DB); -%rpc_packet_data_t(pkt_debugctl_t, PKT_DEBUGCTL); +%rpc_packet_data_t(pkt_get_lumina_info_t, PKT_GET_LUMINA_INFO); +%rpc_packet_data_t(pkt_get_lumina_info_result_t, PKT_GET_LUMINA_INFO_RESULT); %template(lumina_op_res_vec_t) qvector<lumina_op_res_t>; //------------------------------------------------------------------------- // metadata_t //------------------------------------------------------------------------- -#ifdef PY3 %bytes_container_ptr_and_ref( metadata_t, begin, size, , - IDAPyBytes_Check, - IDAPyBytes_AsBytes, - IDAPyBytes_FromMemAndSize, + PyBytes_Check, + PyBytes_as_bytevec_t, + PyBytes_FromStringAndSize, _sized_binary_result, _maybe_sized_binary_result, "bytes", "bytes"); -#else -%bytes_container_ptr_and_ref( - metadata_t, - begin, - size, - , - IDAPyBytes_Check, - IDAPyBytes_AsBytes, - IDAPyBytes_FromMemAndSize, - _sized_binary_result, - _maybe_sized_binary_result, - "string", - "str"); -#endif %make_argout_errbuf_raise_exception_when_non_empty(); @@ -121,13 +102,16 @@ //------------------------------------------------------------------------- %typemap(in) (const uchar *ptr, const uchar *end) // for _wrap_extract_..._from_metadata { - if ( !IDAPyStr_Check($input) ) - SWIG_exception_fail(SWIG_TypeError, "Expected string in method '$symname', argument $argnum of type 'str'"); - qstring buf; - if ( IDAPyStr_AsUTF8(&buf, $input) ) + if ( !PyBytes_Check($input) ) + SWIG_exception_fail(SWIG_TypeError, "Expected bytes in method '$symname', argument $argnum of type 'bytes'"); + bytevec_t bytes; + char *buffer = nullptr; + Py_ssize_t length = 0; + if ( PyBytes_AsStringAndSize($input, &buffer, &length) ) { - $1 = (uchar *) buf.c_str(); - $2 = $1 + buf.length(); + bytes.append(buffer, length); + $1 = bytes.begin(); + $2 = bytes.end(); QASSERT(30575, $2 >= $1); } } @@ -136,7 +120,7 @@ %typemap(argout) (metadata_t *out_md) { // bytes_container typemap(argout) (metadata_t *out_md) - PyObject *py_md = IDAPyBytes_FromMemAndSize((const char *) $1->begin(), $1->size()); + PyObject *py_md = PyBytes_FromStringAndSize((const char *) $1->begin(), $1->size()); $result = SWIG_Python_AppendOutput($result, py_md); } @@ -148,7 +132,7 @@ { // typemap(in) md5_t * qstring buf; - IDAPyStr_AsUTF8(&buf, $input); + PyUnicode_as_qstring(&buf, $input); $1 = new md5_t; memmove($1->hash, buf.c_str(), qmin(sizeof($1->hash), buf.length())); } @@ -161,7 +145,7 @@ %typemap(out) md5_t * { // typemap(out) md5_t * - $result = IDAPyBytes_FromMemAndSize((const char *) $1->hash, sizeof($1->hash)); + $result = PyBytes_FromStringAndSize((const char *) $1->hash, sizeof($1->hash)); } // suppress the output parameter as an input. @@ -173,18 +157,18 @@ %typemap(argout) (md5_t *out) { // typemap(argout) (md5_t *out) - PyObject *py_hash = IDAPyBytes_FromMemAndSize((const char *) $1->hash, sizeof($1->hash)); + PyObject *py_hash = PyBytes_FromStringAndSize((const char *) $1->hash, sizeof($1->hash)); $result = SWIG_Python_AppendOutput($result, py_hash); } %apply md5_t *out { md5_t *out_hash }; -%apply longlong *INPUT { const int64 * }; +%apply int64 *INPUT { const int64 * }; %typemap(directorin) const int64 * { // %typemap(directorin) const int64 * - if ( $1 != NULL ) + if ( $1 != nullptr ) { - $input = PyLong_FromLongLong(longlong(*($1))); + $input = PyLong_FromLongLong(int64(*($1))); } else { diff --git a/swig/merge.i b/swig/merge.i new file mode 100644 index 0000000..0d47f81 --- /dev/null +++ b/swig/merge.i @@ -0,0 +1,160 @@ + +%{ +#include <merge.hpp> +%} +// diff3.hpp +typedef int diff_source_idx_t; + +%ignore merge_node_info_t; +%rename(merge_node_info_t) merge_node_info2_t; +%ignore create_nodeval_merge_handler; +%rename(create_nodeval_merge_handler) create_nodeval_merge_handler2; +%ignore create_nodeval_merge_handlers; +%rename(create_nodeval_merge_handlers) create_nodeval_merge_handlers2; + +// for dump_merge_results() only +%ignore merge_node_helper_t::get_logname; +// FIXME: do not know how to handle +%ignore merge_node_helper_t::map_value; + +// for C++ only, hide kernel data +%ignore merge_data_t::mappers; + +// void merge_data_t::operator=(const merge_data_t&) = deleted +%immutable merge_handler_params_t::md; + +// kernel only +%ignore MH_DUMMY; + +// no need to create new instances +%feature("nodirector") merge_data_t; +%ignore merge_data_t::merge_data_t; +%ignore merge_data_t::~merge_data_t; + +%typemap(check) (const char *_module_name) (qstring tmp) { + tmp = $1; + $1 = tmp.extract(); +} + +%typemap(check) (const char *_netnode_name) (qstring tmp) { + tmp = $1; + $1 = tmp.extract(); +} + +%typemap(in,numinputs=1) (const idbattr_info_t *_fields, size_t _nfields) (qvector<idbattr_info_t> temp) +{ + if ( !PySequence_Check($input) ) + { + PyErr_SetString(PyExc_TypeError, "Expecting a list of `idbattr_info_t` instances"); + return nullptr; + } + PyObject *s = $input; + Py_ssize_t len = PySequence_Size(s); + temp.reserve(len); + for ( Py_ssize_t i = 0; i < len; ++i ) + { + newref_t o(PySequence_GetItem(s, i)); + void *ap = 0 ; + int cvt = SWIG_ConvertPtr(o.o, &ap, SWIGTYPE_p_idbattr_info_t, 0); + if ( !SWIG_IsOK(cvt) ) + SWIG_exception_fail( + SWIG_ArgError(cvt), + "in method '" "$symname" "', argument " "$argnum"" consists of 'idbattr_info_t' instances"); + temp.push_back(*reinterpret_cast<idbattr_info_t*>(ap)); + } + $2 = temp.size(); + $1 = temp.extract(); +} + +%define_netnode_tag_accessors(); + +%extend merge_node_info2_t +{ + /// \param name name of the array (label) + /// \param tag a tag used to access values in the netnode + /// \param nds_flags node value attributes (a combination of \ref nds_flags_t) + /// \param node_helper merge handler creation helper + merge_node_info2_t( + const char *name, + uchar tag, + uint32 nds_flags, + merge_node_helper_t *node_helper=nullptr) + { + merge_node_info2_t *ii = new merge_node_info2_t(); + ii->name = name == nullptr ? nullptr : qstrdup(name); + ii->tag = tag; + ii->nds_flags = nds_flags; + ii->node_helper = node_helper; + return ii; + } + + ~merge_node_info2_t() + { + qfree((char *) $self->name); + delete $self; + } +} + +// For: +// merge_node_helper_t::print_entry_details +// merge_node_helper_t::get_column_headers +%typemap(directorargout) qstrvec_t * (qstrvec_t tmp) +{ // %typemap(directorargout) qstrvec_t * + if ( $result != Py_None ) + { + if ( PyW_PyListToStrVec(&tmp, $result) >= 0 ) + { + $1->insert($1->end(), tmp.begin(), tmp.end()); + } + else + { + Swig::DirectorTypeMismatchException::raise( + SWIG_ErrorType(SWIG_TypeError), + "in output value of type 'qstrvec_t' in method '$symname'"); + } + } +} + +// idaman void ida_export create_nodeval_merge_handlers2( +// merge_handlers_t *out, +// const merge_handler_params_t &mhp, +// int moddata_id, +// const char *nodename, +// const merge_node_info2_t *valdesc, +// size_t nvals, +// bool skip_empty_nodes = true); +%typemap(in,numinputs=0) (int moddata_id) { $1 = -1; } +%typemap(in,numinputs=1) (const merge_node_info2_t *valdesc, size_t nvals) (qvector<merge_node_info2_t> temp) +{ + if ( $input == Py_None ) + { + $2 = 0; + $1 = nullptr; + } + else + { + if ( !PySequence_Check($input) ) + { + PyErr_SetString(PyExc_TypeError, "Expecting a list of `merge_node_info2_t` instances"); + return nullptr; + } + PyObject *s = $input; + Py_ssize_t len = PySequence_Size(s); + temp.reserve(len); + for ( Py_ssize_t i = 0; i < len; ++i ) + { + newref_t o(PySequence_GetItem(s, i)); + void *ap = 0 ; + int cvt = SWIG_ConvertPtr(o.o, &ap, SWIGTYPE_p_merge_node_info2_t, 0); + if ( !SWIG_IsOK(cvt) ) + SWIG_exception_fail( + SWIG_ArgError(cvt), + "in method '" "$symname" "', argument " "$argnum"" consists of 'merge_node_info2_t' instances"); + temp.push_back(*reinterpret_cast<merge_node_info2_t*>(ap)); + } + $2 = temp.size(); + $1 = temp.extract(); + } +} + +%include "merge.hpp" diff --git a/swig/mergemod.i b/swig/mergemod.i new file mode 100644 index 0000000..3d2229a --- /dev/null +++ b/swig/mergemod.i @@ -0,0 +1,53 @@ + +%{ +#include <mergemod.hpp> +%} + +%ignore create_std_modmerge_handlers; +%rename(create_std_modmerge_handlers) create_std_modmerge_handlers2; + +// Prototype of the custom function to create merge handlers +%ignore create_merge_handlers; + +// idaman void ida_export create_std_modmerge_handlers2( +// merge_handler_params_t &mhp, +// int moddata_id, +// moddata_diff_helper_t &helper, +// const merge_node_info2_t *merge_node_info=nullptr, +// size_t n_merge_node_info=0); +%typemap(in,numinputs=0) (int moddata_id) { $1 = -1; } +%typemap(in,numinputs=1) (const merge_node_info2_t *merge_node_info, size_t n_merge_node_info) (qvector<merge_node_info2_t> temp) +{ + if ( $input == Py_None ) + { + $2 = 0; + $1 = nullptr; + } + else + { + if ( !PySequence_Check($input) ) + { + PyErr_SetString(PyExc_TypeError, "Expecting a list of `merge_node_info2_t` instances"); + return nullptr; + } + PyObject *s = $input; + Py_ssize_t len = PySequence_Size(s); + temp.reserve(len); + for ( Py_ssize_t i = 0; i < len; ++i ) + { + newref_t o(PySequence_GetItem(s, i)); + void *ap = 0 ; + int cvt = SWIG_ConvertPtr(o.o, &ap, SWIGTYPE_p_merge_node_info2_t, 0); + if ( !SWIG_IsOK(cvt) ) + SWIG_exception_fail( + SWIG_ArgError(cvt), + "in method '" "$symname" "', argument " "$argnum"" consists of 'merge_node_info2_t' instances"); + temp.push_back(*reinterpret_cast<merge_node_info2_t*>(ap)); + } + $2 = temp.size(); + $1 = temp.extract(); + } +} + +%include "mergemod.hpp" + diff --git a/swig/micro.org b/swig/micro.org index 8349fbe..1d38cdd 100644 --- a/swig/micro.org +++ b/swig/micro.org @@ -1,4 +1,4 @@ -* DONE gen_microcode() creates a new mbl_array_t; user must delete it +* DONE gen_microcode() creates a new mba_t; user must delete it * DONE mop_t::cstr must be dup'd when set * DONE mop_t ownership might not be transferred when setting to a parent (and thus neither is mcallarg_t) * TODO how about all visitors? scif_visitor_t, mop_visitor_t, ... diff --git a/swig/nalt.i b/swig/nalt.i index b466a06..a6f6ed2 100644 --- a/swig/nalt.i +++ b/swig/nalt.i @@ -11,15 +11,18 @@ %ignore enum_import_names; %rename (enum_import_names) py_enum_import_names; +%typemap(check) (const char* text, size_t size) { + size_t len = $1 != nullptr ? qstrlen($1) : 0; + if ( $2 > len ) + $2 = len; +} + %ignore calc_nodeidx; %ignore get_wide_value; %ignore set_wide_value; %ignore del_wide_value; -%ignore get_strid; -%ignore _set_strid; -%ignore _del_strid; %ignore xrefpos_t; %ignore get_xrefpos; %ignore set_xrefpos; @@ -64,10 +67,6 @@ %ignore set_jumptable_info; %ignore get_jumptable_info; -%ignore refinfo_t::_get_target; -%ignore refinfo_t::_get_value; -%ignore refinfo_t::_get_opval; - %ignore custom_refinfo_handler_t; %ignore custom_refinfo_handlers_t; %ignore register_custom_refinfo; diff --git a/swig/name.i b/swig/name.i index b3c0cca..baa0e5c 100644 --- a/swig/name.i +++ b/swig/name.i @@ -1,3 +1,8 @@ + +%{ +#include <demangle.hpp> +%} + %include "cstring.i" %cstring_bounded_output(char *dstname, MAXSTR); %cstring_bounded_output(char *buf, MAXSTR); @@ -61,6 +66,9 @@ inline qstring py_## FNAME(ea_t ea) { return FNAME(ea); } %include "name.hpp" +%ignore demangle; +%include "demangle.hpp" + %inline %{ //<inline(py_name)> //</inline(py_name)> diff --git a/swig/netnode.i b/swig/netnode.i index 1e36213..b23d8a4 100644 --- a/swig/netnode.i +++ b/swig/netnode.i @@ -73,10 +73,14 @@ %ignore netnode_inited; %ignore netnode_is_available; %ignore netnode_copy; +%ignore netnode_copy2; +%ignore netnode_copyto2; %ignore netnode_altshift; %ignore netnode_charshift; %ignore netnode_supshift; %ignore netnode_altadjust; +%ignore netnode_altadjust2; +%ignore altadjust_visitor_t; %ignore netnode_exist; %ignore netnode::truncate_zero_pages; @@ -103,6 +107,7 @@ %ignore netnode::setbase; %ignore netnode::altadjust; +%ignore netnode::altadjust2; %ignore netnode::getblob(qstring *buf, nodeidx_t start, uchar tag); %ignore netnode::getblob(void *buf, size_t *bufsize, nodeidx_t start, uchar tag); %ignore netnode::getblob_ea(void *buf, size_t *bufsize, ea_t ea, uchar tag); @@ -110,11 +115,12 @@ %ignore netnode::validate_names; %constant nodeidx_t BADNODE = nodeidx_t(-1); +%constant size_t SIZEOF_nodeidx_t = sizeof(nodeidx_t); // Renaming one version of hashset() otherwise SWIG will not be able to activate the other one %rename (hashset_idx) netnode::hashset(const char *idx, nodeidx_t value, uchar tag=htag); -%apply char { uchar tag }; +%define_netnode_tag_accessors(); %include "netnode.hpp" @@ -130,7 +136,7 @@ bytevec_t blob; if ( self->getblob(&blob, start, uchar(tag)) <= 0 ) Py_RETURN_NONE; - return IDAPyBytes_FromMemAndSize((const char *)blob.begin(), blob.size()); + return PyBytes_FromStringAndSize((const char *)blob.begin(), blob.size()); } PyObject *getclob(nodeidx_t start, char tag) @@ -138,7 +144,7 @@ qstring clob; if ( self->getblob(&clob, start, uchar(tag)) <= 0 ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8AndSize((const char *)clob.begin(), clob.length()); + return PyUnicode_FromStringAndSize((const char *)clob.begin(), clob.length()); } PyObject *getblob_ea(ea_t ea, char tag) @@ -146,7 +152,7 @@ bytevec_t blob; if ( self->getblob(&blob, ea, tag) <= 0 ) Py_RETURN_NONE; - return IDAPyBytes_FromMemAndSize((const char *)blob.begin(), blob.size()); + return PyBytes_FromStringAndSize((const char *)blob.begin(), blob.size()); } PyObject *hashstr_buf(const char *idx, char tag=htag) @@ -156,17 +162,16 @@ if ( sz < 0 ) Py_RETURN_NONE; else - return IDAPyStr_FromUTF8AndSize(buf, sz); + return PyUnicode_FromStringAndSize(buf, sz); } bool hashset_buf(const char *idx, PyObject *py_str, char tag=htag) { qstring buf; - return IDAPyStr_AsUTF8(&buf, py_str) + return PyUnicode_as_qstring(&buf, py_str) && self->hashset(idx, buf.c_str(), buf.length(), uchar(tag)); } -#ifdef PY3 bool supset(nodeidx_t alt, const char *value, size_t length=0, uchar tag=stag) { return self->supset(alt, (void *) value, length, tag); @@ -176,5 +181,4 @@ { return self->supset_ea(ea, (void *) value, length, tag); } -#endif } diff --git a/swig/pro.i b/swig/pro.i index 917e09f..4f963a3 100644 --- a/swig/pro.i +++ b/swig/pro.i @@ -39,6 +39,104 @@ %ignore unpack_memory; %ignore cliopt_t; %ignore cliopts_t; +%ignore plugin_option_t; +%ignore plugins_option_t; +%ignore parse_plugin_options; +%ignore test_bit; +%ignore set_bit; +%ignore set_bits; +%ignore clear_bit; +%ignore clear_bits; +%ignore set_all_bits; +%ignore clear_all_bits; +%ignore calc_file_crc32; +%ignore calc_crc32; +%ignore qpipe_create; +%ignore qpipe_read; +%ignore qpipe_write; +%ignore qpipe_close; +%ignore qpipe_read_n; +%ignore wchar2char; +%ignore hit_counter_t; +%ignore reg_hit_counter; +%ignore create_hit_counter; +%ignore hit_counter_timer; +%ignore print_all_counters; +%ignore incrementer_t; +%ignore reloc_info_t; // swig under mac chokes on this +%ignore qmutex_create; +%ignore qiterator; +%ignore qmutex_free; +%ignore qmutex_lock; +%ignore qmutex_t; +%ignore qmutex_unlock; +%ignore qsem_create; +%ignore qsem_free; +%ignore qsem_post; +%ignore qsem_wait; +%ignore qsemaphore_t; +%ignore qthread_create; +%ignore qthread_free; +%ignore qthread_join; +%ignore qthread_kill; +%ignore qthread_self; +%ignore qthread_same; +%ignore qthread_t; +%ignore qhandle_t; +%ignore qstrlen; +%ignore qstrcmp; +%ignore qstrstr; +%ignore qstrchr; +%ignore qstrrchr; +%ignore reloc_info_t; +%ignore relobj_t; +%ignore wchar2char; +%ignore u2cstr; +%ignore c2ustr; +%ignore base64_encode; +%ignore base64_decode; +%ignore replace_tabs; +%ignore utf8_unicode; +%ignore unicode_utf8; +%ignore win_utf2idb; +%ignore char2oem; +%ignore oem2char; +%ignore set_codepages; +%ignore get_codepages; +%ignore convert_codepage; +%ignore interval::last; +%ignore interval::overlap; +%ignore interval::includes; +%ignore interval::contains; +%ignore qrotl; +%ignore qrotr; +%ignore setflag; +%ignore read2bytes; +%ignore rotate_left; +//%ignore qswap; +%ignore swap32; +%ignore swap16; +%ignore swap_value; +%ignore qalloc_or_throw; +%ignore qrealloc_or_throw; +%ignore get_buffer_for_sysdir; +%ignore get_buffer_for_winerr; +%ignore call_atexits; +%ignore launch_process_params_t; +%ignore launch_process; +%ignore term_process; +%ignore get_process_exit_code; +%ignore BELOW_NORMAL_PRIORITY_CLASS; +%ignore parse_command_line; +%ignore qgetenv; +%ignore qsetenv; +%ignore qctime; +%ignore qlocaltime; +%ignore qstrftime; +%ignore qstrftime64; +%ignore qstrtok; +%ignore qstrlwr; +%ignore qstrupr; %extend qrefcnt_t { size_t __ptrval__() const @@ -47,6 +145,14 @@ } } +// I am not sure how else to proceed for SWiG to not attempt +// generating a setter... +%ignore BADDIFF; +%rename (BADDIFF) _BADDIFF; +%constant diffpos_t _BADDIFF = diffpos_t(-1); + +%ignore SSF_DROP_EMPTY; + //<typemaps(pro)> //</typemaps(pro)> @@ -73,11 +179,11 @@ void qvector<unsigned long long>::grow(const unsigned long long &x=0); %ignore qvector<unsigned long long>::grow; //--------------------------------------------------------------------- -%template(intvec_t) qvector<int>; -%template(uintvec_t) qvector<unsigned int>; -%template(longlongvec_t) qvector<long long>; -%template(ulonglongvec_t) qvector<unsigned long long>; -%template(boolvec_t) qvector<bool>; +%template(intvec_t) qvector<int>; +%template(uintvec_t) qvector<unsigned int>; +%template(int64vec_t) qvector<long long>; +%template(uint64vec_t) qvector<unsigned long long>; +%template(boolvec_t) qvector<bool>; %uncomparable_elements_qvector(simpleline_t, strvec_t); %template(sizevec_t) qvector<size_t>; diff --git a/swig/range.i b/swig/range.i index 8d82eff..e0b0642 100644 --- a/swig/range.i +++ b/swig/range.i @@ -22,13 +22,6 @@ } }; -%extend range_t { - %pythoncode { - startEA = ida_idaapi._make_badattr_property("startEA", "start_ea") - endEA = ida_idaapi._make_badattr_property("endEA", "end_ea") - } -}; - %pythoncode %{ #<pycode(py_range)> #</pycode(py_range)> diff --git a/swig/search.i b/swig/search.i index 65d1501..21d1e92 100644 --- a/swig/search.i +++ b/swig/search.i @@ -6,5 +6,15 @@ %ignore search; %ignore user2bin; +%pythoncode %{ +#<pycode(py_search)> +#</pycode(py_search)> +%} + +%inline %{ +//<inline(py_search)> +//</inline(py_search)> +%} + %include "search.hpp" %clear int *opnum; diff --git a/swig/segment.i b/swig/segment.i index 9f63d03..5b82554 100644 --- a/swig/segment.i +++ b/swig/segment.i @@ -4,9 +4,6 @@ %ignore enumerate_segments_with_selector; // Kernel-only -%ignore init_groups; -%ignore save_groups; -%ignore term_groups; %ignore vset_segm_name; %ignore get_segm_expr; %ignore is_debugger_segm; @@ -15,6 +12,11 @@ %ignore rebase_program; %rename (rebase_program) py_rebase_program; +%template (segment_defsr_array) wrapped_array_t<sel_t,SREG_NUM>; + +%pywraps_nonnul_argument_prototype( + bool set_segment_translations(ea_t segstart, const eavec_t &transmap), + const eavec_t &transmap); %{ //<code(py_segment)> //</code(py_segment)> @@ -24,12 +26,20 @@ { ea_t start_ea; ea_t end_ea; + wrapped_array_t<sel_t,SREG_NUM> __getDefsr() { + return wrapped_array_t<sel_t,SREG_NUM>($self->defsr); + } + + %pythoncode { + use64 = is_64bit + defsr = property(__getDefsr) + } } #ifdef __EA64__ -%apply ulonglong *OUTPUT { sel_t *sel, ea_t *base }; // getn_selector() +%apply uint64 *OUTPUT { sel_t *sel, ea_t *base }; // getn_selector() #else -%apply unsigned int *OUTPUT { sel_t *sel, ea_t *base }; // getn_selector() +%apply uint *OUTPUT { sel_t *sel, ea_t *base }; // getn_selector() #endif %typemap(check) (sel_t *sel, ea_t *base) { diff --git a/swig/segregs.i b/swig/segregs.i index f664982..ef9d39a 100644 --- a/swig/segregs.i +++ b/swig/segregs.i @@ -2,10 +2,6 @@ #include <segregs.hpp> %} -// Ignore kernel-only symbols -%ignore delete_v660_segreg_t; -%ignore v660_segreg_t; - #define R_es 29 #define R_cs 30 #define R_ss 31 diff --git a/swig/srclang.i b/swig/srclang.i new file mode 100644 index 0000000..8de15e3 --- /dev/null +++ b/swig/srclang.i @@ -0,0 +1,23 @@ +%{ +#include <srclang.hpp> +%} + +%ignore srclang_parser_t; +%ignore srclang_parsers_t; +%ignore srclang_parser_obj_t; +%ignore install_srclang_parser; +%ignore remove_srclang_parser; +%ignore select_srclang_parser; +%ignore get_srclang_parser_internal; +%ignore get_current_srclang_parser; +%ignore srclang_parser_visitor_t; +%ignore for_all_srclang_parsers; +%ignore find_parser_kind_t; +%ignore find_srclang_parser; +%ignore find_parser_by_idx; +%ignore find_parser_by_name; +%ignore find_parser_by_srclang; +%ignore init_srclang_parser; +%ignore term_srclang_parser; + +%include "srclang.hpp" diff --git a/swig/strlist.i b/swig/strlist.i index 445f796..edbe432 100644 --- a/swig/strlist.i +++ b/swig/strlist.i @@ -28,20 +28,20 @@ for ( size_t i = 0; i < n; ++i ) { newref_t pyo(PySequence_GetItem(py_t, i)); - if ( IDAPyInt_Check(pyo.o) ) + if ( PyLong_Check(pyo.o) ) { - long stype = IDAPyInt_AsLong(pyo.o); + long stype = PyLong_AsLong(pyo.o); if ( stype < 0 || stype >= 0x100 ) { PyErr_SetString(PyExc_ValueError, "values must be between 0 & 0x100"); - return NULL; + return nullptr; } t.push_back(uchar(stype)); } else { PyErr_SetString(PyExc_ValueError, "expected an integer"); - return NULL; + return nullptr; } } $self->strtypes.swap(t); @@ -49,7 +49,7 @@ else { PyErr_SetString(PyExc_TypeError, "expected a list"); - return NULL; + return nullptr; } Py_RETURN_TRUE; } diff --git a/swig/struct.i b/swig/struct.i index e3d57b2..dcfc005 100644 --- a/swig/struct.i +++ b/swig/struct.i @@ -7,6 +7,11 @@ %ignore get_member_name(tid_t); %ignore get_member_by_id(tid_t, struc_t **); // allow version w/ qstring* only +%ignore get_innermost_member; +%rename (get_innermost_member) py_get_innermost_member; + +%ignore MF_RESERVED1; + //------------------------------------------------------------------------- // For 'get_member_by_id()' %typemap(in,numinputs=0) qstring *out_mname (qstring temp) { @@ -15,7 +20,7 @@ %typemap(argout) qstring *out_mname { if (result) { - %append_output(IDAPyStr_FromUTF8AndSize($1->begin(), $1->length())); + %append_output(PyUnicode_FromStringAndSize($1->begin(), $1->length())); } else { @@ -47,16 +52,21 @@ } } -%nonnul_argument_prototype( - asize_t get_member_size(const member_t *nonnul_mptr), - const member_t *nonnul_mptr); +%template (dyn_member_ref_array) dynamic_wrapped_array_t<member_t>; //------------------------------------------------------------------------- %include "struct.hpp" -// Add a get_member() member function to struc_t. -// This helps to access the members array in the class. %extend struc_t { - member_t *get_member(int index) { return &(self->members[index]); } + dynamic_wrapped_array_t<member_t> __get_members__() + { + return dynamic_wrapped_array_t<member_t>($self->members, $self->memqty); + } + + %pythoncode { + members = property(__get_members__) + def get_member(self, index): + return self.members[index] + } } %inline %{ diff --git a/swig/typeinf.i b/swig/typeinf.i index 249480d..544d083 100644 --- a/swig/typeinf.i +++ b/swig/typeinf.i @@ -5,6 +5,8 @@ // Most of these could be wrapped if needed %ignore get_cc; +%ignore get_effective_cc; +%ignore ::use_golang_abi; %ignore get_cc_type_size; %ignore get_de; %ignore skip_ptr_type_header; @@ -154,7 +156,7 @@ til_t *base(int n) { - return (n < 0 || n >= $self->nbases) ? NULL : $self->base[n]; + return (n < 0 || n >= $self->nbases) ? nullptr : $self->base[n]; } } @@ -171,9 +173,9 @@ const til_t *til, const type_t *type, const p_list *fields, - const p_list *cmts = NULL) + const p_list *cmts = nullptr) { - return $self->deserialize(til, &type, &fields, cmts == NULL ? NULL : &cmts); + return $self->deserialize(til, &type, &fields, cmts == nullptr ? nullptr : &cmts); } tinfo_t copy() const @@ -226,20 +228,20 @@ %ignore tinfo_t::~tinfo_t(void); %template(funcargvec_t) qvector<funcarg_t>; -%template(udtmembervec_t) qvector<udt_member_t>; %template(reginfovec_t) qvector<reg_info_t>; %template(enum_member_vec_t) qvector<enum_member_t>; %template(argpartvec_t) qvector<argpart_t>; %uncomparable_elements_qvector(valstr_t, valstrvec_t); %uncomparable_elements_qvector(regobj_t, regobjvec_t); %uncomparable_elements_qvector(type_attr_t, type_attrs_t); +%template(udtmembervec_template_t) qvector<udt_member_t>; %extend tinfo_t { PyObject *get_attr(const qstring &key, bool all_attrs=true) { bytevec_t bv; if ( $self->get_attr(key, &bv, all_attrs) ) - return IDAPyStr_FromUTF8AndSize((const char *) bv.begin(), bv.size()); + return PyUnicode_FromStringAndSize((const char *) bv.begin(), bv.size()); else Py_RETURN_NONE; } @@ -262,8 +264,8 @@ // %typemap(in) const sclass_t * if ( $input == Py_None ) $1 = new sclass_t(sc_unk); - else if ( IDAPyInt_Check($input) ) - $1 = new sclass_t(sclass_t(IDAPyInt_AsLong($input))); + else if ( PyLong_Check($input) ) + $1 = new sclass_t(sclass_t(PyLong_AsLong($input))); else SWIG_exception_fail( SWIG_ValueError, diff --git a/swig/ua.i b/swig/ua.i index 7fa05bd..d2d805a 100644 --- a/swig/ua.i +++ b/swig/ua.i @@ -14,6 +14,10 @@ %ignore get_printable_immvals; %rename (get_printable_immvals) py_get_printable_immvals; %ignore get_immval; +%ignore insn_get_next_byte; +%ignore insn_get_next_word; +%ignore insn_get_next_dword; +%ignore insn_get_next_qword; %ignore insn_create_op_data; %ignore construct_macro; @@ -72,18 +76,20 @@ void assign(const insn_t &other) { *($self) = other; } + bool is_canon_insn() const { return $self->is_canon_insn(PH); } + uint32 get_canon_feature() const { return $self->get_canon_feature(PH); } + const char *get_canon_mnem() const { return $self->get_canon_mnem(PH); } + %pythoncode { ops = property(__get_ops__) -#ifdef BC695 - if _BC695: - Operands = ops -#endif Op1 = property(lambda self: self.__get_operand__(0)) Op2 = property(lambda self: self.__get_operand__(1)) Op3 = property(lambda self: self.__get_operand__(2)) Op4 = property(lambda self: self.__get_operand__(3)) Op5 = property(lambda self: self.__get_operand__(4)) Op6 = property(lambda self: self.__get_operand__(5)) + Op7 = property(lambda self: self.__get_operand__(6)) + Op8 = property(lambda self: self.__get_operand__(7)) auxpref = property(__get_auxpref__, __set_auxpref__) @@ -110,6 +116,8 @@ // use ea_t so the right value decoders will be used (for the next three) ea_t __get_value__() { return $self->value; } void __set_value__(ea_t v) { $self->value = v; } + uint64 __get_value64__() { return *((uint64 *)&$self->value); } + void __set_value64__(uint64 v) { *((uint64 *)&$self->value) = v; } ea_t __get_addr__() { return $self->addr; } void __set_addr__(ea_t v) { $self->addr = v; } ea_t __get_specval__() { return $self->specval; } @@ -125,6 +133,7 @@ reg = property(__get_reg_phrase__, __set_reg_phrase__) phrase = property(__get_reg_phrase__, __set_reg_phrase__) value = property(__get_value__, __set_value__) + value64 = property(__get_value64__, __set_value64__) addr = property(__get_addr__, __set_addr__) specval = property(__get_specval__, __set_specval__) } @@ -143,10 +152,8 @@ %apply ea_t { adiff_t off }; %apply ea_t { adiff_t off }; -#ifdef PY3 %apply uchar { char segpref }; %apply uchar { char insnpref }; -#endif %include "ua.hpp" diff --git a/swig/xref.i b/swig/xref.i index c034baf..fd28afd 100644 --- a/swig/xref.i +++ b/swig/xref.i @@ -19,6 +19,59 @@ // 'from' is a reserved Python keyword %rename (frm) from; + +%define %def_simple_generator(FUNC_NAME, START_FUNC, NEXT_FUNC, PYDOC) +%extend xrefblk_t +{ + %pythoncode { + def FUNC_NAME(self, ea): + """ + Provide an iterator on PYDOC + """ + ref = START_FUNC(ea) + while ref != ida_idaapi.BADADDR: + yield ref + ref = NEXT_FUNC(ea, ref) + } +} +%enddef + +%def_simple_generator(crefs_to, get_first_cref_to, get_next_cref_to, code references to ea including flow references); +%def_simple_generator(fcrefs_to, get_first_fcref_to, get_next_fcref_to, code references to ea); +%def_simple_generator(crefs_from, get_first_cref_from, get_next_cref_from, code references from ea including flow references); +%def_simple_generator(fcrefs_from, get_first_fcref_from, get_next_fcref_from, code references from ea); +%def_simple_generator(drefs_to, get_first_dref_to, get_next_dref_to, data references to ea); +%def_simple_generator(drefs_from, get_first_dref_from, get_next_dref_from, data references from ea); + + +%define %def_generic_generator(FUNC_NAME, START_FUNC, NEXT_FUNC, PYDOC) +%extend xrefblk_t +{ + %pythoncode { + def FUNC_NAME(self, ea, flag): + """ + Provide an iterator on PYDOC + """ + def _copy_xref(): + """ Make a private copy of the xref class to preserve its contents """ + class _xref(object): + pass + + xr = _xref() + for attr in [ 'frm', 'to', 'iscode', 'type', 'user' ]: + setattr(xr, attr, getattr(self, attr)) + return xr + + if self.START_FUNC(ea, flag): + yield _copy_xref() + while self.NEXT_FUNC(): + yield _copy_xref() + } +} +%enddef +%def_generic_generator(refs_from, first_from, next_from, from reference represented by flag ); +%def_generic_generator(refs_to, first_to, next_to, to reference represented by flag ); + %inline %{ //<inline(py_xref)> //</inline(py_xref)> diff --git a/tbd.md b/tbd.md new file mode 100644 index 0000000..3544b50 --- /dev/null +++ b/tbd.md @@ -0,0 +1,74 @@ +Overview +======== + +This document describes the IDAPython linking process used on Apple Silicon Macs. + +Motivation +========== + +Since IDAPython must be compatible with different Python versions, we must provide the user with +a mechanism to easily switch between them. Traditionally the approach on Mac was to have the +idapyswitch utility patch the libpython load commands in all of IDAPython's modules. + +However this gets us into trouble on Apple Silicon, because codesigning rules are strictly enforced. +If we patch a dylib binary in IDA's installation, its code signature is invalidated and macOS will +refuse to load it (not only that, but the process is immediately killed). + +We must be able to switch between various Python versions _without_ modifying IDA's binaries. + +TBD Files +========= + +This is where .tbd files can help us. + +A .tbd file is a stub library that can be used in place of a real dylib. It is essentially just a text file +that describes the contents of a given library - e.g. the target arch, all exported symbols, and (most importantly) +the library's install name. + +This allows us to configure the libpython install name used when our IDAPython binaries are linked, so that they +point to a symlink for libpython instead of the real libpython binary. Thus, it is trivial to switch between +different Python versions because need only to modify the symlink target, and all of IDAPython's modules can +remain untouched. + +Generating TBD Files +==================== + +.tbd files can be generated using the 'tapi' utility on macOS. It is usually found here: + + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/tapi + +For example, this is how you can recreate libpython3.tbd on an Apple Silicon machine: + + $ alias tapi='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/tapi' + $ cp /Library/Frameworks/Python.framework/Versions/3.9/Python /tmp/ + $ tapi stubify /tmp/Python + $ mv /tmp/Python.tbd ~/idasrc/current/plugins/idapython/libpython3.tbd + +Then replace the following line: + + install-name: '/Library/Frameworks/Python.framework/Versions/3.9/Python' + +With: + + install-name: '@executable_path/libpython3.link.dylib' + +Note that the libpython3.link.dylib symlink will be created by idapyswitch at idapython build time +(see TBD_MODULE_DEP in idapython/makefile and pyver_tool_t::do_apply_version() in idapyswitch_mac.cpp). + +It is also a good idea to clean up the .tbd file by removing all config directives that aren't +absolutely necessary. This makes it more likely that the .tbd file will continue to be compatible +with newer versions of the macOS linker (no surprise, the format is really unstable). + +So far it seems that only the following options are required: + + --- !tapi-tbd + tbd-version: 4 + targets: [ arm64-macos ] + install-name: '@executable_path/libpython3.link.dylib' + current-version: 3.9 + compatibility-version: 3.9 + exports: + <list of exports> + ... + +Everything else can be removed. diff --git a/tools/bb.py b/tools/bb.py deleted file mode 100644 index b75e51b..0000000 --- a/tools/bb.py +++ /dev/null @@ -1,120 +0,0 @@ - -import os -import sys -import subprocess - - -ossfx, compiler, sosfx, buildcmd, py2_env, py3_env = { - "win32" : ( - "win", - "vc", - "dll", - "mo.bat -j 12 && mmo.bat -j 12", - { - "PYTHON_VERSION_MAJOR" : "2", - "PYTHON_VERSION_MINOR" : "7", - "PYTHON_ROOT" : "C:/Python27-x64", - }, - { - "PYTHON_VERSION_MAJOR" : "3", - "PYTHON_VERSION_MINOR" : "7", - "PYTHON_ROOT" : "C:/PROGRA~1/Python37", - }, - ), - "cygwin" : ( - "win", - "vc", - "dll", - "mo.bat -j 12 && mmo.bat -j 12", - { - "PYTHON_VERSION_MAJOR" : "2", - "PYTHON_VERSION_MINOR" : "7", - "PYTHON_ROOT" : "C:/Python27-x64", - }, - { - "PYTHON_VERSION_MAJOR" : "3", - "PYTHON_VERSION_MINOR" : "7", - "PYTHON_ROOT" : "C:/PROGRA~1/Python37", - }, - ), - "linux2" : ( - "linux", - "gcc", - "so", - "NDEBUG=1 BIN/idamake.pl -j 12 && NDEBUG=1 __EA64__=1 BIN/idamake.pl -j 12", - { - "PYTHON_VERSION_MAJOR" : "2", - "PYTHON_VERSION_MINOR" : "7", - }, - { - "PYTHON_VERSION_MAJOR" : "3", - "PYTHON_VERSION_MINOR" : "7", - "PYTHONHOME" : "/opt/Python-3.7.4-x64-install", - "PATH" : "/opt/Python-3.7.4-x64-install/bin:!", - "LD_LIBRARY_PATH" : "/opt/Python-3.7.4-x64-install/lib:!" - }, - ), - "darwin" : ( - "mac", - "clang", - "dylib", - "NDEBUG=1 BIN/idamake.pl -j 12 && NDEBUG=1 __EA64__=1 BIN/idamake.pl -j 12", - { - "PYTHON_VERSION_MAJOR" : "2", - "PYTHON_VERSION_MINOR" : "7", - "PYTHON_ROOT" : "/System/Library/Frameworks/Python.framework/Versions/2.7", - }, - { - "PYTHON_VERSION_MAJOR" : "3", - "PYTHON_VERSION_MINOR" : "7", - "PYTHON_ROOT" : "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7", - }, - ), -}[sys.platform] - -# def run(argv): -# if isinstance(argv, str): -# argv = argv.split() -# print("### Running: %s" % " ".join(argv)) -# subprocess.check_call(argv) - -def run(argv): - if not isinstance(argv, str): - argv = " ".join(argv) - print("### Running: %s" % argv) - subprocess.check_call(argv, shell=True) - -def trash_opt_builds(): - run("rm -rf obj/x64_%s_%s_32_opt obj/x64_%s_%s_64_opt" % ( - ossfx, compiler, - ossfx, compiler)) - -def build_both(): - run(buildcmd.replace("BIN", os.path.join("..", "..", "bin"))) - -def rename_both(version): - J = os.path.join - ppath = J("..", "..", "bin", "x64_%s_%s_opt" % (ossfx, compiler), "plugins") - parts = [""] - if version == 3 and "linux" in sys.platform: - parts.append(".debug") - for part in parts: - for easfx in ["", "64"]: - run("mv %s %s" % ( - J(ppath, "idapython%s.%s%s" % (easfx, sosfx, part)), - J(ppath, "idapython%s.%s.%d%s" % (easfx, sosfx, version, part)))) - - -for py_env, major in [ - (py2_env, 2), - (py3_env, 3) -]: - for key, val in py_env.items(): - was = os.getenv(key) - if was: - val = val.replace("!", was) - print("### Setting: %s=%s" % (key, val)) - os.putenv(key, val) - trash_opt_builds() - build_both() - rename_both(major) diff --git a/tools/chkapi.py b/tools/chkapi.py index 12d4979..c54f4ac 100644 --- a/tools/chkapi.py +++ b/tools/chkapi.py @@ -119,11 +119,11 @@ def check_cpp(args): "_wrap_warning__varargs__" : { "nullptrcheck" : 1, # 1st arg - "mustcall" : "IDAPyStr_AsUTF8", + "mustcall" : "PyUnicode_as_qstring", }, "_wrap_error__varargs__" : { "nullptrcheck" : 1, - "mustcall" : "IDAPyStr_AsUTF8", + "mustcall" : "PyUnicode_as_qstring", }, "_wrap_tag_remove" : { "nullptrcheck" : 1, @@ -156,19 +156,19 @@ def check_cpp(args): functions_coherence_hexrays = { "_wrap_cfuncptr_t___str__" : { - "mustcall" : ["cfunc_t___str__", "IDAPyStr_FromUTF8AndSize"], + "mustcall" : ["cfunc_t___str__", "PyUnicode_FromStringAndSize"], }, "_wrap_cfunc_t___str__" : { - "mustcall" : ["cfunc_t___str__", "IDAPyStr_FromUTF8AndSize"], + "mustcall" : ["cfunc_t___str__", "PyUnicode_FromStringAndSize"], }, "_wrap_hexrays_failure_t_desc" : { - "mustcall" : "IDAPyStr_FromUTF8AndSize", + "mustcall" : "PyUnicode_FromStringAndSize", }, "_wrap_vd_failure_t_desc" : { - "mustcall" : "IDAPyStr_FromUTF8AndSize", + "mustcall" : "PyUnicode_FromStringAndSize", }, "_wrap_create_field_name" : { - "mustcall" : "IDAPyStr_FromUTF8AndSize", + "mustcall" : "PyUnicode_FromStringAndSize", }, "delete_qrefcnt_t_Sl_cfunc_t_Sg_" : { "mustcall" : "hexrays_deregister_python_clearable_instance", @@ -212,7 +212,7 @@ def check_cpp(args): "_wrap_boundaries_find" : { "nostring" : "SWIGTYPE_p_p_cinsn_t", }, - "mbl_array_t_serialize" : { + "mba_t_serialize" : { "string" : "bytes_container typemap(argout) (bytevec_t &vout)", "mustcall" : "_sized_binary_result", }, @@ -386,7 +386,12 @@ def check_python(args): "simpleline_place_t" : { "mustinherit" : "place_t" }, "structplace_t" : { "mustinherit" : "place_t" }, "textctrl_info_t" : { "mustinherit" : "ida_idaapi.py_clinked_object_t" }, + "udtmembervec_t" : { "mustinherit" : "udtmembervec_template_t" }, "udt_type_data_t" : { "mustinherit" : "udtmembervec_t" }, + "call_stack_t" : { "mustinherit" : "call_stack_info_vec_t" }, + "abstract_graph_t" : { "mustinherit" : "ida_gdl.gdl_graph_t" }, + "mutable_graph_t" : { "mustinherit" : "abstract_graph_t" }, + "meminfo_vec_t" : { "mustinherit" : "meminfo_vec_template_t" }, # Just look for the presence of those things "BADNODE" : {}, @@ -396,7 +401,7 @@ def check_python(args): "DecompilationFailure" : { "mustinherit" : "Exception" }, "carg_t" : { "mustinherit" : "cexpr_t" }, "carglist_t" : { "mustinherit" : "qvector_carg_t" }, - "cblock_t" : { "mustinherit" : "qlist_cinsn_t" }, + "cblock_t" : { "mustinherit" : "cinsn_list_t" }, "ccase_t" : { "mustinherit" : "cinsn_t" }, "ccases_t" : { "mustinherit" : "qvector_ccase_t" }, "cdo_t" : { "mustinherit" : "cloop_t" }, @@ -421,6 +426,7 @@ def check_python(args): # "vivl_t" : { "mustinherit" : "ivl_t" }, "ivl_t" : { "mustinherit" : "uval_ivl_t" }, "ivlset_t" : { "mustinherit" : "uval_ivl_ivlset_t" }, + "simple_graph_t" : { "mustinherit" : "ida_gdl.gdl_graph_t" }, } types_coherence = types_coherence_base.copy() diff --git a/tools/collect_traces.py b/tools/collect_traces.py new file mode 100755 index 0000000..3e7abad --- /dev/null +++ b/tools/collect_traces.py @@ -0,0 +1,325 @@ +#!/usr/bin/python3 + +# A tool to merge all the /tmp files produced by +# t2/phases/tests/trace_idapython_calls_idapythonrc.py, +# into a persisted file (in P4, not in /tmp) +# that can be read to improve the IDAPython documentation. + +import sys +import os +import tempfile +import ast + +tools_dir = os.path.dirname(__file__) +output_file = os.path.join(tools_dir, "collected_traces.txt") +input_files = "trace_idapython_calls_output.txt" # on each test directory + +stats_tests_added = 0 +stats_funcs_added = 0 +stats_lines_added = 0 + +#------------------------------------------------------------------------ +def load_existing(pathname): + if not os.path.exists(pathname): + return {} + + with open(pathname, "r") as f: + collected = ast.literal_eval(f.read()) + + # turn lists into sets for easier merging + + for key in collected: + if key == "#empty": + empty_data = collected[key] + for fun in empty_data: + empty_data[fun] = matcher_t(empty_data[fun]) + else: + fun_data = collected[key] + fun_data["return"] = matcher_t(fun_data["return"]) + fun_data["tests"] = set(fun_data["tests"]) + + return collected + +#------------------------------------------------------------------------ +def load_from_test(collected_data, test_name, pathname): + global stats_tests_added, stats_funcs_added, stats_lines_added + + with open(pathname, "r") as f: + content = ast.literal_eval(f.read()) + + if "#empty" in collected_data: + common = collected_data["#empty"] + else: + stats_tests_added += 1 + collected_data["#empty"] = common = {} + + for key in content: + # ida_* modules only + prefix = "ida_" + if not key.startswith(prefix): + continue + fun = key[len(prefix):] + + # presently we remove all dictionary content except for return values; + # we'll see in the future if we use the rest of info, + # or if we don't use a dictionary at all in the idapythonrc + # note: return values in /tmp traces were collected as repr() + content_rets = [ast.literal_eval(x["return"]) for x in content[key]] + + if test_name == "empty": + # entry with a special format + if fun not in common: + common[fun] = matcher_t(content_rets) + stats_funcs_added += 1 + stats_lines_added += common[fun].count() + continue + + for line in content_rets: + if fun in common: + if common[fun].add(line): + stats_lines_added += 1 + continue + + if fun in collected_data: + fun_data = collected_data[fun] + rets = fun_data["return"] + tests = fun_data["tests"] + else: + stats_funcs_added += 1 + rets = matcher_t() + tests = set() + fun_data = { "return":rets, "tests":tests } + collected_data[fun] = fun_data + + if test_name not in tests: + stats_tests_added += 1 + tests.add(test_name) + + if rets.add(line): + stats_lines_added += 1 + +#------------------------------------------------------------------------ +# Stores different return values of functions collected at runtime, +# and simplifies repetitions like [str, str, str] into a pattern [str, ...] + +class matcher_t: + def __init__(self, initial_content=[]): + self.patterns = [] + + for value in initial_content: + self.add(value) + + def add(self, value): + if any(pat.match(value) for pat in self.patterns): + return False # another instance of what we already have + + # something new + self.patterns.append(pattern_t(value)) + return True + + def count(self): + return len(self.patterns) + + def sorted(self): + return sorted(repr(pat) for pat in self.patterns) + +#------------------------------------------------------------------------ +class pattern_t: + def __init__(self, value): + self.expr = self._build(value) + + def _build(self, value): + if isinstance(value, list) and len(value) > 0: + # recognize a special form of lists as a repetition_t object + # that we stored (via repetition_t.__repr__) in a previous run + # (saved into, and now reloaded from, the "tools/collected_traces.txt" file) + if len(value) == 2 and value[1] == "...": + return repetition_t(value[0]) + + first = value[0] + if all(x == first for x in value[1:]): + return repetition_t(first) + + # heterogeneous list - treated as separate values + return value + + if isinstance(value, tuple): + build = [] + for x in value: + build.append(self._build(x)) + return tuple(build) + + return value + + def match(self, value): + # "match" may update the pattern when receiving new values: + # replace the pattern if it was converted into a repetition + + m = self._match(self.expr, value) + if isinstance(m, bool): + return m + + self.expr = m + return True + + def _match(self, pat, val): + if isinstance(pat, tuple) and isinstance(val, tuple): + if len(pat) != len(val): + return False + + return self._maybe_replace_parts(pat, val) + + if pat == [] and isinstance(val, list) and len(val) > 0: + # convert [] into a repetition (we didn't before, + # because with an empty list we couldn't know WHAT was repeated) + return repetition_t(val[0]) + + if isinstance(pat, repetition_t): + return pat.match(val) + + return pat == val + + def _maybe_replace_parts(self, pat_tuple, val_tuple): + ret = [] + + all_bool = True + for p, v in zip(pat_tuple, val_tuple): + m = self._match(p, v) + + if isinstance(m, bool): + if not m: + return False + # keep the previous part + ret.append(p) + else: + # new part + ret.append(m) + all_bool = False + if all_bool: + return True # good match but no replacements + + return tuple(ret) + + def __repr__(self): + return repr(self.expr) + +#------------------------------------------------------------------------ +class repetition_t: + def __init__(self, core): + self.core = pattern_t(core) + + def match(self, value): + if not isinstance(value, list): + return False + + return all(self.core.match(item) for item in value) + + def __repr__(self): + return "[" + repr(self.core) + ", '...']" + +#------------------------------------------------------------------------ +def dump_data(collected_data): + content = "{\n" + + for fun_name in sorted(collected_data): + content += " \"{}\": {{\n".format(fun_name) + + fun_data = collected_data[fun_name] + if fun_name == "#empty": + # "empty test" entry, different format that the rest + + for fun_in_empty in fun_data: + content += " \"{}\": [\n".format(fun_in_empty) + + for line in fun_data[fun_in_empty].sorted(): + content += " {},\n".format(line) # return values + content += " ],\n" + else: + # data per function + + rets = fun_data["return"] + tests = fun_data["tests"] + + content += " \"return\": [\n" + for line in rets.sorted(): + content += " {},\n".format(line) + content += " ],\n" + + content += " \"tests\": [\n" + for test_name in sorted(tests): + content += " \"{}\",\n".format(test_name) + content += " ]\n" + + content += " },\n" + content += "}\n" + + return content + +#------------------------------------------------------------------------ +def test_dir(): + username = os.path.basename(os.path.expanduser("~")) + # or more reliably: + # import getpass + # username = getpass.getuser() + # but the above works nearly always, with one less dependency + + return "/tmp/{}/uitests".format(username) + +#------------------------------------------------------------------------ +def all_test_trace_files(): + testdir = test_dir() + emptydir = os.path.join(testdir, "empty") + + if os.path.isdir(emptydir): + test_output = os.path.join(emptydir, input_files) + if os.path.exists(test_output): + yield "empty", test_output # process the "empty" test first + + for entry in os.scandir(testdir): + if entry.name == "empty": + continue # already read + + if entry.is_dir(): + test_output = os.path.join(entry.path, input_files) + + if os.path.exists(test_output): + yield entry.name, test_output + +#------------------------------------------------------------------------ +def main(): + # check for p4 edit + # (otherwise os.replace below would replace the output file silently) + if os.path.exists(output_file) and not os.access(output_file, os.W_OK): + print("{}: not writable".format(output_file)) + sys.exit(1) + + collected_data = load_existing(output_file) + + first = True + for test_name, pathname in all_test_trace_files(): + if first: + first = False + if test_name != "empty" and not collected_data: + print("Please run the \"empty\" test" + " when collecting for the first time.") + sys.exit(1) + + load_from_test(collected_data, test_name, pathname) + + fout, fileout = tempfile.mkstemp() + + success = False + try: + os.write(fout, dump_data(collected_data).encode("ascii")) + os.close(fout) + os.replace(fileout, output_file) + + print ("Tests added: {}, functions added: {}, lines added: {}".format( + stats_tests_added, stats_funcs_added, stats_lines_added)) + success = True + finally: + if not success: + os.remove(fileout) + +#------------------------------------------------------------------------ +main() diff --git a/tools/collected_traces.txt b/tools/collected_traces.txt new file mode 100644 index 0000000..7f11559 --- /dev/null +++ b/tools/collected_traces.txt @@ -0,0 +1,18564 @@ +{ + "#empty": { + "ida.inf_get_privrange_start_ea": [ + 'int', + ], + "idaapi.IDAPython_ExecScript": [ + 'NoneType', + 'str', + ], + "idaapi.IDAPython_LoadProcMod": [ + ('NoneType', 'ClemencyProcessor'), + ('NoneType', 'clunky_processor_t'), + ('NoneType', 'cyci_processor_t'), + ('NoneType', 'ebc_processor_t'), + ('NoneType', 'msp430_processor_t'), + ('NoneType', 'sample_processor_t'), + ('NoneType', 'spu_processor_t'), + ], + "idaapi.IDAPython_UnLoadProcMod": [ + 'NoneType', + ], + "idp.IDP_Hooks.hook": [ + 'bool', + ], + "idp.processor_t.get_idpdesc": [ + 'str', + ], + "kernwin.attach_action_to_menu": [ + 'bool', + ], + "kernwin.msg": [ + 'int', + ], + "kernwin.register_action": [ + 'bool', + ], + "loader.get_plugin_options": [ + 'NoneType', + ], + "netnode.netnode.create": [ + 'bool', + ], + }, + "auto.auto_make_code": { + "return": [ + 'NoneType', + ], + "tests": [ + "frview-center_in_window", + "frview-scrollbar", + "grview-navigate_nodes_endless_analysis", + "hexrays-navigate5__ndis_arrow_down_constantly_modified_idb", + "prview-paths2", + ] + }, + "auto.auto_make_proc": { + "return": [ + 'NoneType', + ], + "tests": [ + "frview-scrollbar", + ] + }, + "auto.auto_wait": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "idapython-big_spd_bug", + "idapython-examples__produce_c_file", + "idapython-examples__produce_lst_file", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + ] + }, + "auto.may_create_stkvars": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "auto.may_trace_sp": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "auto.plan_ea": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-big_spd_bug", + ] + }, + "bitrange.bitrange_t.apply_mask": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__bitrange", + "idapython-api__idp", + ] + }, + "bitrange.bitrange_t.bitoff": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.bitsize": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.extract": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.inject": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.intersect": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.mask64": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.shift_down": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bitrange.bitrange_t.shift_up": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__bitrange", + ] + }, + "bytes.add_mapping": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.attach_custom_data_format": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + "idapython-custom_data2__beword_idaview", + "idapython-custom_data2__beword_shortcut", + "idapython-custom_data2__beword_structs", + "idapython-custom_data3", + "idaview-context_menu", + ] + }, + "bytes.bin_search": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + "customidamemo-search_bin__search1_sparse", + "customidamemo-search_bin__search1_varray", + "idapython-examples__bin_search", + ] + }, + "bytes.byte_flag": { + "return": [ + 'int', + ], + "tests": [ + "stackview-misc", + "structs-members", + ] + }, + "bytes.create_strlit": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + ] + }, + "bytes.create_struct": { + "return": [ + 'bool', + ], + "tests": [ + "strlits-borland", + ] + }, + "bytes.del_hidden_range": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "bytes.del_items": { + "return": [ + 'bool', + ], + "tests": [ + "frview-center_in_window", + "frview-scrollbar", + "grview-navigate_nodes_endless_analysis", + "hexrays-navigate5__ndis_arrow_down_constantly_modified_idb", + "idaview-hints__instruction_gets_deleted", + "prview-paths2", + "undo-widgets__snippets", + ] + }, + "bytes.del_mapping": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.dword_flag": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "structs-members", + ] + }, + "bytes.find_custom_data_format": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.find_custom_data_type": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.free_chunk": { + "return": [ + 'int', + ], + "tests": [ + "screenshots-misc__proc_dsp56k", + ] + }, + "bytes.get_byte": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + "training-test__CallStackWalk_py", + ] + }, + "bytes.get_bytes": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-misc3", + "plugins-procext_py", + ] + }, + "bytes.get_cmt": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-snapshots", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "bytes.get_custom_data_type": { + "return": [ + 'data_type_t', + ], + "tests": [ + "idapython-custom_data", + ] + }, + "bytes.get_dword": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + "idapython-custom_fixup", + "training-test__CallStackWalk_py", + ] + }, + "bytes.get_flags": { + "return": [ + 'int', + ], + "tests": [ + "debugger-breakpoints2__bpt_perf", + "i18n-strlits__bad_encoding_name", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-custom_data", + "idapython-examples__list_stkvar_xrefs", + "idapython-examples__operand_changed", + "idapython-execute_sync", + "idapython-misc3", + "idapython-opinfo", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + "training-test__sol_cyci_py", + ] + }, + "bytes.get_full_flags": { + "return": [ + 'int', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "bytes.get_hidden_range": { + "return": [ + 'hidden_range_t', + ], + "tests": [ + "idapython-misc2", + ] + }, + "bytes.get_item_size": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + ] + }, + "bytes.get_mapping": { + "return": [ + ('bool', 'int', 'int', 'int'), + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.get_mappings_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.get_max_strlit_length": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "i18n-strlits__get_strlit_contents_utf8_with_bom", + "idapython-examples__operand_changed", + "idapython-get_ascii_contents", + "idapython-misc4", + ] + }, + "bytes.get_octet": { + "return": [ + ('int', 'int', 'int', 'int'), + ], + "tests": [ + "idapython-misc3", + ] + }, + "bytes.get_opinfo": { + "return": [ + 'NoneType', + 'opinfo_t', + ], + "tests": [ + "i18n-strlits__bad_encoding_name", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-custom_data", + "idapython-examples__operand_changed", + "idapython-misc3", + "idapython-opinfo", + ] + }, + "bytes.get_original_qword": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.get_predef_insn_cmt": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-misc3", + ] + }, + "bytes.get_qword": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.get_strlit_contents": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "i18n-strlits__get_strlit_contents_utf8_with_bom", + "idapython-examples__operand_changed", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-get_ascii_contents", + "idapython-misc4", + "idapython-strings", + "pyqt-qabstractitemdelegate", + ] + }, + "bytes.get_wide_dword": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + ] + }, + "bytes.get_wide_word": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_mem", + "training-test__sol_cyci_py", + ] + }, + "bytes.get_word": { + "return": [ + 'int', + ], + "tests": [ + "api-put_patch_get", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "bytes.has_value": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "bytes.is_code": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "bytes.is_defarg": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "bytes.is_enum": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "bytes.is_loaded": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-execute_sync", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "bytes.is_off": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "bytes.is_stkvar": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__list_stkvar_xrefs", + ] + }, + "bytes.is_strlit": { + "return": [ + 'bool', + ], + "tests": [ + "i18n-strlits__bad_encoding_name", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-examples__operand_changed", + "idapython-misc3", + ] + }, + "bytes.is_stroff": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "bytes.is_struct": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "bytes.next_addr": { + "return": [ + 'int', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "bytes.next_head": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + "debugger-breakpoints2__bpt_perf", + "hexrays-misc2", + "idapython-examples__jump_next_comment", + "idapython-examples__lines_rendering", + ] + }, + "bytes.next_visea": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search2__idaview_across_hidden_function", + ] + }, + "bytes.off_flag": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__create_structure_programmatically", + ] + }, + "bytes.op_stkvar": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "bytes.op_stroff": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__idc", + ] + }, + "bytes.parse_binpat_str": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-examples__bin_search", + ] + }, + "bytes.patch_byte": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + "eaview-patch_bytes__chooser", + ] + }, + "bytes.patch_dword": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.patch_qword": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.patch_word": { + "return": [ + 'bool', + ], + "tests": [ + "api-put_patch_get", + ] + }, + "bytes.prev_head": { + "return": [ + 'int', + ], + "tests": [ + "training-test__find_mgen_key_py", + ] + }, + "bytes.print_strlit_type": { + "return": [ + ('str', 'str'), + ], + "tests": [ + "i18n-strlits__change_default_string_style", + ] + }, + "bytes.put_byte": { + "return": [ + 'bool', + ], + "tests": [ + "idaview-hints__instruction_gets_deleted", + ] + }, + "bytes.put_bytes": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-search_bin__search1_sparse", + "customidamemo-search_bin__search1_varray", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "screenshots-misc__proc_dsp56k", + ] + }, + "bytes.put_dword": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-bfld", + ] + }, + "bytes.qword_flag": { + "return": [ + 'int', + ], + "tests": [ + "structs-members", + ] + }, + "bytes.register_custom_data_format": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + "idapython-custom_data2__beword_idaview", + "idapython-custom_data2__beword_shortcut", + "idapython-custom_data2__beword_structs", + "idapython-custom_data3", + "idaview-context_menu", + ] + }, + "bytes.register_custom_data_type": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + "idapython-custom_data2__beword_idaview", + "idapython-custom_data2__beword_shortcut", + "idapython-custom_data2__beword_structs", + "idapython-custom_data3", + "idaview-context_menu", + ] + }, + "bytes.register_data_types_and_formats": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idaview-context_menu", + ] + }, + "bytes.revert_byte": { + "return": [ + 'bool', + ], + "tests": [ + "eaview-patch_bytes__basic", + "eaview-patch_bytes__chooser", + ] + }, + "bytes.set_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "bytes.stroff_flag": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__create_structure_programmatically", + "structs-members", + ] + }, + "bytes.unregister_custom_data_format": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.unregister_custom_data_type": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-custom_data", + ] + }, + "bytes.unregister_data_types_and_formats": { + "return": [ + 'int', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + ] + }, + "bytes.update_hidden_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc2", + ] + }, + "bytes.use_mapping": { + "return": [ + 'int', + ], + "tests": [ + "idapython-mapping", + "idapython-misc3", + ] + }, + "bytes.visit_patched_bytes": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_patched_bytes", + ] + }, + "bytes.word_flag": { + "return": [ + 'int', + ], + "tests": [ + "structs-members", + ] + }, + "dbg.DBG_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "bptgrp-misc__disable_after_move", + "debugger-exceptions", + "idapython-debugger", + ] + }, + "dbg.DBG_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "bptgrp-misc__disable_after_move", + "debugger-exceptions", + "idapython-debugger", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.DBG_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-exceptions", + "idapython-debugger", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.add_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "debugger-breakpoints2__bpt_perf", + "hexrays-move_undo_bpt", + "idapython-api__dbg", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "dbg.bpt_t.is_low_level": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + ] + }, + "dbg.bpt_t.set_src_bpt": { + "return": [ + 'NoneType', + ], + "tests": [ + "hexrays-move_undo_bpt", + ] + }, + "dbg.collect_stack_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "dbg.continue_process": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.dbg_can_query": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + "debugger-memory", + ] + }, + "dbg.del_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "idapython-api__dbg", + "idapython-breakpoints", + ] + }, + "dbg.del_bptgrp": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.enable_func_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc2", + ] + }, + "dbg.enable_insn_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc2", + ] + }, + "dbg.enable_manual_regions": { + "return": [ + 'NoneType', + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "dbg.enable_step_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.exist_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + ] + }, + "dbg.get_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "idapython-breakpoints", + ] + }, + "dbg.get_bpt_group": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "bptgrp-misc__disable_after_move", + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.get_bpt_qty": { + "return": [ + 'int', + ], + "tests": [ + "debugger-breakpoints", + "debugger-breakpoints2__bpt_perf", + "idapython-api__dbg", + "idapython-breakpoints", + ] + }, + "dbg.get_current_source_file": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "hexrays-move_undo_bpt", + "idapython-api__dbg", + ] + }, + "dbg.get_current_thread": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__dbg", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-misc_debugger", + "training-test__CallStackWalk_py", + ] + }, + "dbg.get_dbg_reg_info": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__registers_context_menu", + ] + }, + "dbg.get_first_module": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-memory", + "idapython-modules", + ] + }, + "dbg.get_grp_bpts": { + "return": [ + 'int', + ], + "tests": [ + "idapython-bptgrp", + ] + }, + "dbg.get_insn_tev_reg_mem": { + "return": [ + 'bool', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.get_insn_tev_reg_val": { + "return": [ + 'bool', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.get_manual_regions": { + "return": [ + 'NoneType', + [('int', 'int', 'str', 'str', 'int', 'int', 'int'), '...'], + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "dbg.get_module_info": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "dbg.get_next_module": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-memory", + "idapython-modules", + ] + }, + "dbg.get_process_options": { + "return": [ + ('str', 'str', 'str', 'str', 'str', 'int'), + ], + "tests": [ + "idapython-api__dbg", + ] + }, + "dbg.get_process_state": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__show_debug_names", + "training-test__CallStackWalk_py", + ] + }, + "dbg.get_reg_val": { + "return": [ + 'bool', + 'float', + 'int', + ], + "tests": [ + "idapython-api__dbg", + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__registers_context_menu", + ] + }, + "dbg.get_step_trace_options": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.get_tev_info": { + "return": [ + 'bool', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.getn_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "bptgrp-remove_from_group", + "debugger-breakpoints", + "idapython-api__dbg", + "idapython-bptgrp", + "idapython-breakpoints", + ] + }, + "dbg.internal_get_sreg_base": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc_debugger", + ] + }, + "dbg.is_debugger_on": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__show_debug_names", + "training-test__CallStackWalk_py", + ] + }, + "dbg.list_bptgrps": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.load_debugger": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-misc2", + ] + }, + "dbg.memreg_infos_t.size": { + "return": [ + 'int', + ], + "tests": [ + "tracing-misc", + ] + }, + "dbg.move_bpt_to_grp": { + "return": [ + 'NoneType', + ], + "tests": [ + "bptgrp-remove_from_group", + "idapython-bptgrp", + ] + }, + "dbg.refresh_debugger_memory": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.rename_bptgrp": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.request_continue_process": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.request_enable_step_trace": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.request_exit_process": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__automatic_steps", + ] + }, + "dbg.request_run_to": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__automatic_steps", + ] + }, + "dbg.request_set_step_trace_options": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.request_step_into": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-debugger", + ] + }, + "dbg.request_step_over": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__automatic_steps", + ] + }, + "dbg.retrieve_exceptions": { + "return": [ + 'excvec_t', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.run_requests": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-debugger", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.run_to": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.set_bpt_group": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + "idapython-bptgrp", + ] + }, + "dbg.set_bptloc_group": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__dbg", + ] + }, + "dbg.set_debugger_options": { + "return": [ + 'int', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.set_manual_regions": { + "return": [ + 'NoneType', + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "dbg.set_reg_val": { + "return": [ + 'bool', + 'int', + ], + "tests": [ + "idapython-api__dbg", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "tracing-misc", + ] + }, + "dbg.set_step_trace_options": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.start_process": { + "return": [ + 'int', + ], + "tests": [ + "idapython-debugger", + ] + }, + "dbg.store_exceptions": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-exceptions", + ] + }, + "dbg.update_bpt": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-breakpoints", + "idapython-breakpoints", + ] + }, + "dbg.wait_for_next_event": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "dbg.write_dbg_memory": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + ] + }, + "dirtree.dirtree_t.change_rank": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.findfirst": { + "return": [ + 'bool', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.findnext": { + "return": [ + 'bool', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.get_abspath": { + "return": [ + 'str', + ], + "tests": [ + "dirtree-load", + "idapython-api__dirtree", + ] + }, + "dirtree.dirtree_t.get_dir_size": { + "return": [ + 'int', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.get_entry_attrs": { + "return": [ + 'str', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.get_entry_name": { + "return": [ + 'str', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "dirtree.dirtree_t.get_rank": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.getcwd": { + "return": [ + 'str', + ], + "tests": [ + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + ] + }, + "dirtree.dirtree_t.isdir": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + "dirtree-load", + ] + }, + "dirtree.dirtree_t.link": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "dirtree.dirtree_t.mkdir": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__programmatically_add_folder", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + ] + }, + "dirtree.dirtree_t.notify_dirtree": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.rename": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__programmatically_add_folder", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + ] + }, + "dirtree.dirtree_t.resolve_cursor": { + "return": [ + 'direntry_t', + ], + "tests": [ + "dirtree-load", + ] + }, + "dirtree.dirtree_t.resolve_path": { + "return": [ + 'direntry_t', + ], + "tests": [ + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__no_tree", + ] + }, + "dirtree.dirtree_t.traverse": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__dirtree", + ] + }, + "dirtree.dirtree_t.unlink": { + "return": [ + 'int', + ], + "tests": [ + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + ] + }, + "dirtree.get_std_dirtree": { + "return": [ + 'dirtree_t', + ], + "tests": [ + "dirtree-load", + "idapython-api__dirtree", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_enums", + "stddirtrees-misc__basic_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__complex_filters_enums", + "stddirtrees-misc__complex_filters_structures", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__debugging_imports", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__delete_undo_delete_again_enums", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__filter_by_tree_then_jump_out_enums", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__goto_line_fast_enums", + "stddirtrees-misc__goto_line_fast_functions", + "stddirtrees-misc__goto_line_fast_imports", + "stddirtrees-misc__goto_line_fast_local_types", + "stddirtrees-misc__goto_line_fast_names", + "stddirtrees-misc__goto_line_fast_structures", + "stddirtrees-misc__hscrollbar_as_needed_enums", + "stddirtrees-misc__hscrollbar_as_needed_structures", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__interr_41069_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_from_pseudocode_to_local_types", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__jump_to_pseudocode_from_local_types", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_local_types_2", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__newfile_imports", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__no_subfolders_jump_enums", + "stddirtrees-misc__no_subfolders_jump_structures", + "stddirtrees-misc__no_subfolders_sorting_enums", + "stddirtrees-misc__no_subfolders_sorting_structures", + "stddirtrees-misc__open_in_folders_columns_sizes_local_types", + "stddirtrees-misc__persisted_state_enums", + "stddirtrees-misc__persisted_state_functions", + "stddirtrees-misc__persisted_state_imports", + "stddirtrees-misc__persisted_state_local_types", + "stddirtrees-misc__persisted_state_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_functions_1", + "stddirtrees-misc__search_fast_functions_2", + "stddirtrees-misc__search_fast_functions_3", + "stddirtrees-misc__search_fast_functions_4", + "stddirtrees-misc__search_fast_functions_5", + "stddirtrees-misc__search_fast_functions_6", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__toggle_folders_on_each_column_local_types", + "stddirtrees-misc__undo_status_local_types", + ] + }, + "diskio.close_linput": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-base2file", + "idapython-misc3", + ] + }, + "diskio.create_bytearray_linput": { + "return": [ + 'linput_t *', + ], + "tests": [ + "idapython-misc3", + ] + }, + "diskio.eclose": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-base2file", + "idapython-savefile", + ] + }, + "diskio.fopenM": { + "return": [ + 'FILE *', + ], + "tests": [ + "idapython-savefile", + ] + }, + "diskio.fopenWB": { + "return": [ + 'FILE *', + ], + "tests": [ + "idapython-base2file", + "idapython-savefile", + ] + }, + "diskio.get_ida_subdirs": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-misc4", + ] + }, + "diskio.get_linput_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc3", + ] + }, + "diskio.idadir": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc2", + "plugins-hexrayspytools", + ] + }, + "diskio.open_linput": { + "return": [ + 'linput_t *', + ], + "tests": [ + "idapython-base2file", + ] + }, + "entry.add_entry": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "screenshots-misc__proc_dsp56k", + ] + }, + "enum.add_enum": { + "return": [ + 'int', + ], + "tests": [ + "enums-api", + ] + }, + "enum.del_enum": { + "return": [ + 'NoneType', + ], + "tests": [ + "stddirtrees-misc__cut_and_paste_enums", + ] + }, + "enum.for_all_enum_members": { + "return": [ + 'int', + ], + "tests": [ + "idapython-enums_api", + ] + }, + "enum.get_enum": { + "return": [ + 'int', + ], + "tests": [ + "enums-api", + "idapython-enums_api", + "stddirtrees-misc__cut_and_paste_enums", + ] + }, + "enum.get_enum_member_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-enums_api", + ] + }, + "enum.get_enum_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "enum.get_first_enum_member": { + "return": [ + 'int', + ], + "tests": [ + "enums-api", + ] + }, + "enum.get_first_serial_enum_member": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-enums_api", + ] + }, + "enum.get_next_serial_enum_member": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-enums_api", + ] + }, + "expr.add_idc_func": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__expr", + "idapython-examples__extend_idc", + ] + }, + "expr.compile_idc_text": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__add_idc_hotkey", + ] + }, + "expr.eval_idc_expr": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__pro", + "idapython-examples__create_structure_programmatically", + "idapython-misc", + "idapython-misc4", + "idapython-switch_info", + "ppc-analysis_options", + "structs-asm_and_c", + "structs-create", + ] + }, + "expr.idc_value_t.c_str": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc4", + ] + }, + "expr.idc_value_t.qstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc4", + ] + }, + "expr.idc_value_t.set_int64": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc4", + ] + }, + "expr.idc_value_t.set_string": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc4", + ] + }, + "fixup.fixup_data_t.get": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "fixup.fixup_data_t.get_desc": { + "return": [ + 'str', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "fixup.fixup_data_t.get_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "fixup.fixup_data_t.set": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-bfld", + ] + }, + "fpro.qfile_t.close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__produce_lst_file", + "loadfile-archive_locked_idb", + ] + }, + "fpro.qfile_t.get_fp": { + "return": [ + 'FILE *', + ], + "tests": [ + "idapython-examples__produce_lst_file", + ] + }, + "fpro.qfile_t.open": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__produce_lst_file", + "loadfile-archive_locked_idb", + ] + }, + "fpro.qfile_t.puts": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks2__gen_map_file", + ] + }, + "fpro.qfile_t_from_fp": { + "return": [ + 'qfile_t', + ], + "tests": [ + "idapython-idp_hooks2__gen_map_file", + ] + }, + "frame.add_auto_stkpnt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "frame.build_stkvar_xrefs": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-xrefs", + ] + }, + "frame.calc_stkvar_struc_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_stkvar_xrefs", + ] + }, + "frame.get_frame": { + "return": [ + 'NoneType', + 'struc_t', + ], + "tests": [ + "funstack-misc", + "idapython-api__frame", + "idapython-examples__list_stkvar_xrefs", + "idapython-funcs", + "idapython-print_tinfo", + "idapython-structs", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-xrefs", + "stackview-misc", + ] + }, + "frame.get_spd": { + "return": [ + 'int', + ], + "tests": [ + "idapython-big_spd_bug", + ] + }, + "frame.get_stkvar": { + "return": [ + 'NoneType', + ('member_t', 'int'), + ], + "tests": [ + "idapython-funcs", + "idapython-processor_module__error_in_ev_is_sp_based", + ] + }, + "frame.set_frame_size": { + "return": [ + 'bool', + ], + "tests": [ + "funstack-misc", + ] + }, + "funcs.apply_idasgn_to": { + "return": [ + 'int', + ], + "tests": [ + "config-idausr_subdirs", + ] + }, + "funcs.del_func": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "funcs.func_item_iterator_t.current": { + "return": [ + 'int', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_stkvar_xrefs", + "idapython-user_graphs", + "training-test__find_ret_py", + ] + }, + "funcs.func_item_iterator_t.next_code": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_stkvar_xrefs", + "idapython-user_graphs", + "training-test__find_ret_py", + ] + }, + "funcs.func_item_iterator_t.set": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_stkvar_xrefs", + "idapython-user_graphs", + "training-test__find_ret_py", + ] + }, + "funcs.func_t.does_return": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.func_t.is_far": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.get_fchunk": { + "return": [ + 'NoneType', + 'func_t', + ], + "tests": [ + "grview-api", + "idapython-api__frame", + "idapython-examples__dump_func_info", + "idapython-examples__list_segment_functions_using_idautils", + "lumina-view_and_apply_metadata", + "mainmsglist-misc__double_click_ids", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "funcs.get_fchunk_qty": { + "return": [ + 'int', + ], + "tests": [ + "areas-misc", + ] + }, + "funcs.get_func": { + "return": [ + 'NoneType', + 'func_t', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + "functions_window-misc__updating_func_causes_refresh", + "funstack-misc", + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "hexrays-misc2", + "hexrays-rename-misc__make_library_function_and_undo", + "hexrays-rename_lvars", + "idapython-api__frame", + "idapython-api__funcs", + "idapython-big_spd_bug", + "idapython-cleanup", + "idapython-examples__colorize_disassembly", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__dump_flowchart", + "idapython-examples__func_chooser_coloring", + "idapython-examples__list_segment_functions", + "idapython-examples__list_stkvar_xrefs", + "idapython-examples__replay_prototypes_changes", + "idapython-execute_sync", + "idapython-flow_chart", + "idapython-funcs", + "idapython-idb_hooks", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-misc2", + "idapython-misc4", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-user_graphs", + "idapython-xrefs", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__minsn_t", + "idapython_hr-base_classes2__minsn_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__vc_printer_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-decompile2__DecompilationFailure", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds4", + "idapython_hr-hexrays_callback", + "idapython_hr-misc__cexpr_ctor", + "idaview-hints__instruction_gets_deleted", + "lumina-view_and_apply_metadata", + "plugins-hexrayspytools", + "plugins-lucid", + "screenshots-misc__idapython_snippets", + "stackview-misc", + "training-test__CallStackWalk_py", + "training-test__ImpRef_py", + "training-test__color_to_py", + "training-test__find_mgen_key_py", + "training-test__find_ret_py", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "funcs.get_func_name": { + "return": [ + 'str', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "idapython-user_graphs", + "screenshots-misc__idapython_snippets", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + "training-test__ImpRef_py", + ] + }, + "funcs.get_idasgn_desc": { + "return": [ + ('str', 'str'), + ], + "tests": [ + "sigs-basic", + ] + }, + "funcs.get_idasgn_desc_with_matches": { + "return": [ + ('str', 'str', 'int'), + ], + "tests": [ + "sigs-basic", + ] + }, + "funcs.get_idasgn_qty": { + "return": [ + 'int', + ], + "tests": [ + "sigs-basic", + ] + }, + "funcs.get_next_fchunk": { + "return": [ + 'func_t', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "funcs.get_next_func": { + "return": [ + 'NoneType', + 'func_t', + ], + "tests": [ + "grview-api", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "lumina-view_and_apply_metadata", + "mainmsglist-misc__double_click_ids", + "screenshots-misc__idapython_snippets", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "funcs.getn_fchunk": { + "return": [ + 'func_t', + ], + "tests": [ + "areas-misc", + ] + }, + "funcs.is_func_entry": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.is_func_tail": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_func_info", + ] + }, + "funcs.set_func_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "funcs.set_func_end": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module__error_in_set_func_end", + ] + }, + "funcs.set_func_start": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_set_func_start", + ] + }, + "funcs.update_func": { + "return": [ + 'bool', + ], + "tests": [ + "functions_window-misc__updating_func_causes_refresh", + "idapython-big_spd_bug", + "idapython-examples__colorize_disassembly", + "idapython-idb_hooks", + ] + }, + "gdl.BasicBlock.preds": { + "return": [ + 'generator', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.BasicBlock.succs": { + "return": [ + 'generator', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.FlowChart.refresh": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-flow_chart", + ] + }, + "gdl.display_gdl": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "gdl.gdl_graph_t.entry": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.exists": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_edge": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_graph_attributes": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_node": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gdl_graph_t.print_node_attributes": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__gdl", + ] + }, + "gdl.gen_gdl": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__gdl", + "idapython-api__graph", + ] + }, + "gdl.qflow_chart_t.calc_block_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.npred": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.nsucc": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.pred": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.refresh": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "gdl.qflow_chart_t.succ": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_flowchart", + "idapython-flow_chart", + ] + }, + "graph.GraphViewer.AddCommand": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + ] + }, + "graph.GraphViewer.AddEdge": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "grview-gruser", + "i18n-basic", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.AddNode": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.Clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.OnPopup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "gruser-misc__check_grouping_without_callback", + "grview-gruser", + ] + }, + "graph.GraphViewer.Show": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.GraphViewer.UI_Hooks_Trampoline.populating_widget_popup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "gruser-misc__check_grouping_without_callback", + "grview-gruser", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "graph.abstract_graph_t.get_edge": { + "return": [ + 'NoneType', + 'edge_info_t', + ], + "tests": [ + "grview-rendering", + "idapython-api__graph", + ] + }, + "graph.create_disasm_graph": { + "return": [ + 'mutable_graph_t', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.create_mutable_graph": { + "return": [ + 'mutable_graph_t', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.get_graph_viewer": { + "return": [ + 'TWidget *', + ], + "tests": [ + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + ] + }, + "graph.get_viewer_graph": { + "return": [ + 'mutable_graph_t', + ], + "tests": [ + "grview-api", + "grview-rendering", + ] + }, + "graph.mutable_graph_t.add_edge": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.mutable_graph_t.add_node": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.mutable_graph_t.create_digraph_layout": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.mutable_graph_t.set_edge": { + "return": [ + 'bool', + ], + "tests": [ + "grview-rendering", + ] + }, + "graph.node_ordering_t.clr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.node": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.order": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.resize": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.set": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.node_ordering_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__graph", + ] + }, + "graph.pointvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-rendering", + ] + }, + "graph.viewer_del_node_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-examples__wrap_idaview", + ] + }, + "graph.viewer_get_node_info": { + "return": [ + 'bool', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "idapython-api__kernwin", + ] + }, + "graph.viewer_get_selection": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + ] + }, + "graph.viewer_set_node_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__node_info", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "hexrays.Hexrays_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-hexrays_hooks__close_pseudocode", + "idapython_hr-hexrays_hooks__cmt_changed", + "idapython_hr-hexrays_hooks__combine", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-hexrays_hooks__create_hint3", + "idapython_hr-hexrays_hooks__curpos", + "idapython_hr-hexrays_hooks__double_click", + "idapython_hr-hexrays_hooks__flowchart", + "idapython_hr-hexrays_hooks__func_printed", + "idapython_hr-hexrays_hooks__glbopt", + "idapython_hr-hexrays_hooks__keyboard", + "idapython_hr-hexrays_hooks__locopt", + "idapython_hr-hexrays_hooks__lvar_cmt_changed", + "idapython_hr-hexrays_hooks__lvar_mapping_changed", + "idapython_hr-hexrays_hooks__lvar_name_changed", + "idapython_hr-hexrays_hooks__lvar_type_changed", + "idapython_hr-hexrays_hooks__maturity", + "idapython_hr-hexrays_hooks__microcode", + "idapython_hr-hexrays_hooks__open_pseudocode", + "idapython_hr-hexrays_hooks__populating_popup", + "idapython_hr-hexrays_hooks__prealloc", + "idapython_hr-hexrays_hooks__preoptimized", + "idapython_hr-hexrays_hooks__print_func", + "idapython_hr-hexrays_hooks__prolog", + "idapython_hr-hexrays_hooks__refresh_pseudocode", + "idapython_hr-hexrays_hooks__resolve_stkaddrs", + "idapython_hr-hexrays_hooks__right_click", + "idapython_hr-hexrays_hooks__stkpnts", + "idapython_hr-hexrays_hooks__structural", + "idapython_hr-hexrays_hooks__switch_pseudocode", + "idapython_hr-hexrays_hooks__text_ready", + ] + }, + "hexrays.Hexrays_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-plugin_actions", + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-examples__vds7", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-hexrays_hooks__close_pseudocode", + "idapython_hr-hexrays_hooks__cmt_changed", + "idapython_hr-hexrays_hooks__combine", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-hexrays_hooks__create_hint3", + "idapython_hr-hexrays_hooks__curpos", + "idapython_hr-hexrays_hooks__double_click", + "idapython_hr-hexrays_hooks__flowchart", + "idapython_hr-hexrays_hooks__forget_unregistering", + "idapython_hr-hexrays_hooks__func_printed", + "idapython_hr-hexrays_hooks__glbopt", + "idapython_hr-hexrays_hooks__keyboard", + "idapython_hr-hexrays_hooks__locopt", + "idapython_hr-hexrays_hooks__lvar_cmt_changed", + "idapython_hr-hexrays_hooks__lvar_mapping_changed", + "idapython_hr-hexrays_hooks__lvar_name_changed", + "idapython_hr-hexrays_hooks__lvar_type_changed", + "idapython_hr-hexrays_hooks__maturity", + "idapython_hr-hexrays_hooks__microcode", + "idapython_hr-hexrays_hooks__open_pseudocode", + "idapython_hr-hexrays_hooks__populating_popup", + "idapython_hr-hexrays_hooks__prealloc", + "idapython_hr-hexrays_hooks__preoptimized", + "idapython_hr-hexrays_hooks__print_func", + "idapython_hr-hexrays_hooks__prolog", + "idapython_hr-hexrays_hooks__refresh_pseudocode", + "idapython_hr-hexrays_hooks__resolve_stkaddrs", + "idapython_hr-hexrays_hooks__right_click", + "idapython_hr-hexrays_hooks__stkpnts", + "idapython_hr-hexrays_hooks__structural", + "idapython_hr-hexrays_hooks__switch_pseudocode", + "idapython_hr-hexrays_hooks__text_ready", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "hexrays.Hexrays_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-hexrays_hooks__close_pseudocode", + "idapython_hr-hexrays_hooks__cmt_changed", + "idapython_hr-hexrays_hooks__combine", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-hexrays_hooks__create_hint3", + "idapython_hr-hexrays_hooks__curpos", + "idapython_hr-hexrays_hooks__double_click", + "idapython_hr-hexrays_hooks__flowchart", + "idapython_hr-hexrays_hooks__func_printed", + "idapython_hr-hexrays_hooks__glbopt", + "idapython_hr-hexrays_hooks__keyboard", + "idapython_hr-hexrays_hooks__locopt", + "idapython_hr-hexrays_hooks__lvar_cmt_changed", + "idapython_hr-hexrays_hooks__lvar_mapping_changed", + "idapython_hr-hexrays_hooks__lvar_name_changed", + "idapython_hr-hexrays_hooks__lvar_type_changed", + "idapython_hr-hexrays_hooks__maturity", + "idapython_hr-hexrays_hooks__microcode", + "idapython_hr-hexrays_hooks__open_pseudocode", + "idapython_hr-hexrays_hooks__populating_popup", + "idapython_hr-hexrays_hooks__prealloc", + "idapython_hr-hexrays_hooks__preoptimized", + "idapython_hr-hexrays_hooks__print_func", + "idapython_hr-hexrays_hooks__prolog", + "idapython_hr-hexrays_hooks__refresh_pseudocode", + "idapython_hr-hexrays_hooks__resolve_stkaddrs", + "idapython_hr-hexrays_hooks__right_click", + "idapython_hr-hexrays_hooks__stkpnts", + "idapython_hr-hexrays_hooks__structural", + "idapython_hr-hexrays_hooks__switch_pseudocode", + "idapython_hr-hexrays_hooks__text_ready", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "hexrays.bitset_t.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.begin": { + "return": [ + 'iterator', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.compare": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.count": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.fill_with_ones": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.has": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.bitset_t.inc": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.intersect": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.itv": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.bitset_t.sub": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__bitset_t", + ] + }, + "hexrays.block_chains_begin": { + "return": [ + 'block_chains_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_end": { + "return": [ + 'block_chains_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_get": { + "return": [ + 'chain_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_next": { + "return": [ + 'block_chains_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.block_chains_t.get_chain": { + "return": [ + 'NoneType', + 'chain_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.boundaries_t.begin": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.end": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.find": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.first": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.items": { + "return": [ + [('cinsn_t', 'rangeset_t'), '...'], + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.iterkeys": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.keys": { + "return": [ + ['cinsn_t', '...'], + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.keytype.insn_is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.boundaries_t.keytype.is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.boundaries_t.next": { + "return": [ + 'boundaries_iterator_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.second": { + "return": [ + 'rangeset_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.valuetype.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc4", + ] + }, + "hexrays.boundaries_t.valuetype.getrange": { + "return": [ + 'range_t', + ], + "tests": [ + "idapython-misc4", + "idapython_hr-base_classes", + ] + }, + "hexrays.boundaries_t.valuetype.nranges": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.call_helper": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.assign": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cexpr_t.get_const_value": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.get_v": { + "return": [ + 'NoneType', + 'var_ref_t', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.cexpr_t.is_const_value": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.numval": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cexpr_t.print1": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.cexpr_t.set_v": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cexpr_t.swap": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds3", + ] + }, + "hexrays.cfunc_t.get_boundaries": { + "return": [ + 'boundaries_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.cfunc_t.get_func_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfunc_t.get_lvars": { + "return": [ + 'lvars_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cfunc_t.get_pseudocode": { + "return": [ + 'strvec_t', + ], + "tests": [ + "idapython_hr-examples__vds6", + ] + }, + "hexrays.cfuncptr_t.find_item_coords": { + "return": [ + 'bool', + ('int', 'int'), + ], + "tests": [ + "idapython_hr-ea", + ] + }, + "hexrays.cfuncptr_t.get_eamap": { + "return": [ + 'eamap_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.cfuncptr_t.get_func_type": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cfuncptr_t.get_line_item": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfuncptr_t.get_lvars": { + "return": [ + 'lvars_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.cfuncptr_t.get_pseudocode": { + "return": [ + 'strvec_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-examples__vds1", + "idapython_hr-hexrays_hooks__create_hint2", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-lucid", + ] + }, + "hexrays.cfuncptr_t.print_func": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__vc_printer_t", + ] + }, + "hexrays.cfuncptr_t.save_user_cmts": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfuncptr_t.save_user_unions": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.cfuncptr_t.set_user_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.cfuncptr_t.set_user_union_selection": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.chain_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.cinsn_t.insn_is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.cinsn_t.is_epilog": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + ] + }, + "hexrays.citem_t.find_closest_addr": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython_hr-ea", + ] + }, + "hexrays.citem_t.find_parent_of": { + "return": [ + 'NoneType', + 'citem_t', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + "plugins-hexrayspytools", + ] + }, + "hexrays.citem_t.is_expr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.citem_t.print1": { + "return": [ + 'str', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.clear_cached_cfuncs": { + "return": [ + 'NoneType', + ], + "tests": [ + "hexrays-caching__clear_after_decompilation", + "hexrays-caching__clear_on_start", + "hexrays-global_xrefs", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds19", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-examples__vds7", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds_modify_user_lvars", + ] + }, + "hexrays.create_cfunc": { + "return": [ + 'cfuncptr_t', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.create_helper": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.create_typedef": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_anchor_t.is_citem_anchor": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-misc2", + ] + }, + "hexrays.ctree_item_t.get_lvar": { + "return": [ + 'NoneType', + 'lvar_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_item_t.is_citem": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.ctree_items_t.at": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython-misc", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_hooks__create_hint2", + ] + }, + "hexrays.ctree_items_t.back": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython-misc", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.ctree_items_t.front": { + "return": [ + 'citem_t', + ], + "tests": [ + "idapython-misc", + ] + }, + "hexrays.ctree_items_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + ] + }, + "hexrays.ctree_items_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.ctree_visitor_t.apply_to": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds7", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.apply_to_exprs": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + ] + }, + "hexrays.ctree_visitor_t.leave_insn": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.parent_expr": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.visit_expr": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-examples__vds7", + "plugins-hexrayspytools", + ] + }, + "hexrays.ctree_visitor_t.visit_insn": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.decompile": { + "return": [ + 'cfuncptr_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__vc_printer_t", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds4", + "idapython_hr-hexrays_callback", + "idapython_hr-misc__cexpr_ctor", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "hexrays.decompile_many": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__produce_c_file", + "idapython_hr-decompile", + ] + }, + "hexrays.dereference": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.dummy_ptrtype": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.eamap_t.begin": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.end": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.eamap_t.find": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.eamap_t.first": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.next": { + "return": [ + 'eamap_iterator_t', + ], + "tests": [ + "idapython_hr-decompile", + ] + }, + "hexrays.eamap_t.second": { + "return": [ + 'cinsnptrvec_t', + ], + "tests": [ + "hexrays-misc2", + "idapython_hr-decompile", + "idapython_hr-ea", + "idapython_hr-ea64", + ] + }, + "hexrays.gco_info_t.append_to_list": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.gco_info_t.is_def": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.gco_info_t.is_use": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.gen_microcode": { + "return": [ + 'NoneType', + 'mba_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__minsn_t", + "idapython_hr-base_classes2__minsn_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "plugins-lucid", + ] + }, + "hexrays.get_ctype_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + ] + }, + "hexrays.get_current_operand": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.get_float_type": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "hexrays.get_hexrays_version": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds17", + "idapython_hr-gssincla_sample5", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.get_mreg_name": { + "return": [ + 'str', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.get_unk_type": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.get_widget_vdui": { + "return": [ + 'NoneType', + 'vdui_t', + ], + "tests": [ + "hexrays-misc3__get_vdui_by_api", + "idapython-examples__colorize_pseudocode_lines", + "idapython_hr-codegen", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "hexrays.getf_reginsn": { + "return": [ + 'NoneType', + 'minsn_t', + ], + "tests": [ + "idapython_hr-examples__vds11", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.hexrays_failure_t.desc": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-decompile2__DecompilationFailure", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "hexrays.init_hexrays_plugin": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-global_xrefs", + "idapython-plugin__plugin_fix", + "idapython-tinfo_manip", + "idapython_hr-codegen", + "idapython_hr-ctree_visitor__misc", + "idapython_hr-decompile", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds19", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds4", + "idapython_hr-examples__vds5", + "idapython_hr-examples__vds6", + "idapython_hr-examples__vds7", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "idapython_hr-examples__vds_modify_user_lvars", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.install_hexrays_callback": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-plugin_actions", + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-gssincla_sample5", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + ] + }, + "hexrays.install_microcode_filter": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-codegen", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + ] + }, + "hexrays.is_mcode_jcond": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.is_mcode_set": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.lnot": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-examples__vds3", + ] + }, + "hexrays.lvar_locator_t.get_reg1": { + "return": [ + 'int', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_locator_t.get_stkoff": { + "return": [ + 'int', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_locator_t.is_reg1": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_locator_t.is_stk_var": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.lvar_mapping_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds_modify_user_lvars", + ] + }, + "hexrays.lvar_saved_infos_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.lvar_t.type": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.make_num": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.make_ref": { + "return": [ + 'cexpr_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.mark_cfunc_dirty": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mba_t.analyze_calls": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.build_graph": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.deserialize": { + "return": [ + 'mba_t', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mba_t.find_mop": { + "return": [ + 'NoneType', + 'mop_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.for_all_topinsns": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mba_t.get_graph": { + "return": [ + 'mbl_graph_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mba_t.get_mblock": { + "return": [ + 'mblock_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds12", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mba_t.serialize": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mba_t.verify": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_array_t.analyze_calls": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.build_graph": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.deserialize": { + "return": [ + 'mba_t', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mbl_array_t.find_mop": { + "return": [ + 'NoneType', + 'mop_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.for_all_topinsns": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_array_t.get_graph": { + "return": [ + 'mbl_graph_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_array_t.get_mblock": { + "return": [ + 'mblock_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds12", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_array_t.serialize": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + ] + }, + "hexrays.mbl_array_t.verify": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mbl_graph_t.get_du": { + "return": [ + 'graph_chains_t', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mbl_graph_t.get_ud": { + "return": [ + 'graph_chains_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mblock_t.append_use_list": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.build_def_list": { + "return": [ + 'mlist_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.build_use_list": { + "return": [ + 'mlist_t', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mblock_t.for_all_insns": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.insert_into_block": { + "return": [ + 'minsn_t', + ], + "tests": [ + "idapython_hr-base_classes2__minsn_t", + "idapython_hr-base_classes2__minsn_t_64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.is_call_block": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.make_nop": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.mark_lists_dirty": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.needs_propagation": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mblock_t.npred": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.nsucc": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.optimize_insn": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.pred": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.preds": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.mblock_t.remove_from_block": { + "return": [ + 'NoneType', + 'minsn_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.mblock_t.succ": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mblock_t.succs": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.mcallargs_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "hexrays.mcallargs_t.push_back": { + "return": [ + 'mcallarg_t', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "hexrays.mcases_t.resize": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.minsn_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds21", + ] + }, + "hexrays.minsn_t.equal_insns": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + ] + }, + "hexrays.minsn_t.find_num_op": { + "return": [ + ('NoneType', 'NoneType'), + ('mop_t', 'mop_t'), + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.minsn_t.for_all_insns": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.minsn_t.is_helper": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + ] + }, + "hexrays.minsn_t.optimize_solo": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mlist_t.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mlist_t.clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mlist_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mlist_t.has_common": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mlist_t.includes": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mlist_t.sub": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "hexrays.mnumber_t.update_value": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.modify_user_lvars": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds_modify_user_lvars", + ] + }, + "hexrays.mop_t.assign": { + "return": [ + 'mop_t', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mop_t.equal_mops": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mop_t.for_all_ops": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.has_side_effects": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds19", + ] + }, + "hexrays.mop_t.is_arglist": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mop_t.is_constant": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "plugins-lucid", + ] + }, + "hexrays.mop_t.is_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mop_t.make_fpnum": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.mop_t.make_number": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.mop_t.swap": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.negate_mcode_relation": { + "return": [ + 'int', + ], + "tests": [ + "plugins-pyhexraysdeob__big_func", + ] + }, + "hexrays.new_block": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.op_uses_x": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-decompile", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.op_uses_y": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-misc__cexpr_ctor", + "plugins-hexrayspytools", + ] + }, + "hexrays.op_uses_z": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "hexrays.open_pseudocode": { + "return": [ + 'vdui_t', + ], + "tests": [ + "hexrays-misc__decompile_delete_type_re_decompile", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython-tinfo_func", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.optblock_t.install": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-examples__vds11", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.optblock_t.remove": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds11", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.optinsn_t.install": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.optinsn_t.remove": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds19", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.qlist_cinsn_t.at": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.qlist_cinsn_t.back": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.begin": { + "return": [ + 'qlist_cinsn_t_iterator', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.qlist_cinsn_t.end": { + "return": [ + 'qlist_cinsn_t_iterator', + ], + "tests": [ + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + ] + }, + "hexrays.qlist_cinsn_t.find": { + "return": [ + 'NoneType', + 'qlist_cinsn_t_iterator', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.front": { + "return": [ + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.insert": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.pop_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.pop_front": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.push_back": { + "return": [ + 'NoneType', + 'cinsn_t', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.remove": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "hexrays.qlist_cinsn_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "plugins-hexrayspytools", + ] + }, + "hexrays.qlist_cinsn_t_iterator.next": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + ] + }, + "hexrays.qswap": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds3", + ] + }, + "hexrays.remove_hexrays_callback": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + "idapython_hr-decompile", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + ] + }, + "hexrays.rename_lvar": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + ] + }, + "hexrays.restore_user_cmts": { + "return": [ + 'NoneType', + 'user_cmts_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_iflags": { + "return": [ + 'NoneType', + 'user_iflags_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_labels": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_lvar_settings": { + "return": [ + 'bool', + ], + "tests": [ + "hexrays-rename_lvars", + "idapython_hr-examples__vds4", + ] + }, + "hexrays.restore_user_numforms": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.save_user_lvar_settings": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.select_udt_by_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.term_hexrays_plugin": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.udc_filter_t.init": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-codegen", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + ] + }, + "hexrays.ui_stroff_ops_t.push_back": { + "return": [ + 'ui_stroff_op_t', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "hexrays.user_cmts_free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.begin": { + "return": [ + 'user_cmts_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.end": { + "return": [ + 'user_cmts_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.first": { + "return": [ + 'treeloc_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.items": { + "return": [ + [('treeloc_t', 'citem_cmt_t'), '...'], + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.next": { + "return": [ + 'user_cmts_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_cmts_t.second": { + "return": [ + 'citem_cmt_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.begin": { + "return": [ + 'user_iflags_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.end": { + "return": [ + 'user_iflags_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.first": { + "return": [ + 'citem_locator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.items": { + "return": [ + [('citem_locator_t', 'int'), '...'], + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.iteritems": { + "return": [ + 'generator', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.next": { + "return": [ + 'user_iflags_iterator_t', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_iflags_t.second": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds4", + ] + }, + "hexrays.user_unions_t.valuetype.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "hexrays.user_unions_t.valuetype.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "hexrays.user_unions_t.valuetype.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__vds17", + ] + }, + "hexrays.user_unions_t.valuetype.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "hexrays.user_unions_t.valuetype.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "hexrays.user_unions_t.valuetype.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "hexrays.uval_ivl_ivlset_t.getivl": { + "return": [ + 'ivl_t', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + ] + }, + "hexrays.uval_ivl_ivlset_t.nivls": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "hexrays.valrng_t.all_values": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.cvt_to_cmp": { + "return": [ + ('bool', 'int', 'int'), + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.cvt_to_single_value": { + "return": [ + ('bool', 'int'), + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.get_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.has": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.intersect_with": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.is_unknown": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.max_svalue": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.max_value": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.min_svalue": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.set_cmp": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.set_eq": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.valrng_t.swap": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__valrng_t", + ] + }, + "hexrays.vc_printer_t.oneliner": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__vc_printer_t", + ] + }, + "hexrays.vdui_t.get_current_item": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__create_hint", + "idapython_hr-hexrays_hooks__create_hint2", + ] + }, + "hexrays.vdui_t.refresh_cpos": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + ] + }, + "hexrays.vdui_t.refresh_ctext": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds3", + ] + }, + "hexrays.vdui_t.refresh_view": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-tinfo_func", + "idapython_hr-codegen", + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + ] + }, + "hexrays.vdui_t.set_lvar_type": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "hexrays.vdui_t.visible": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + ] + }, + "ida.idainfo.is_64bit": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "ida.idainfo.set_be": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ida.idainfo.set_gen_tryblks": { + "return": [ + 'bool', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "ida.inf_get_af": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ida", + ] + }, + "ida.inf_get_cc": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython__ida_ida", + ] + }, + "ida.inf_get_filetype": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "ida.inf_get_max_ea": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__search", + "idapython-examples__bin_search", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__produce_lst_file", + "idapython-examples__show_debug_names", + ] + }, + "ida.inf_get_min_ea": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__search", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__list_problems", + "idapython-examples__produce_lst_file", + "idapython-examples__show_debug_names", + ] + }, + "ida.inf_get_start_ip": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + ] + }, + "ida.inf_get_xrefnum": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc5__bad_inf_set_xrefnum", + ] + }, + "ida.inf_is_64bit": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__modified_vds13_twice", + ] + }, + "ida.inf_set_af": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__ida", + ] + }, + "ida.inf_set_xrefnum": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc5__bad_inf_set_xrefnum", + ] + }, + "idaapi.CustomIDAMemo.CreateGroups": { + "return": [ + 'NoneType', + ['int', '...'], + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.DelNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.CustomIDAMemo.DeleteGroups": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.GetCurrentRendererType": { + "return": [ + 'int', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + ] + }, + "idaapi.CustomIDAMemo.GetNodeInfo": { + "return": [ + 'NoneType', + 'bool', + ('int', 'int', 'int', 'str'), + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "idapython-api__kernwin", + ] + }, + "idaapi.CustomIDAMemo.GetWidget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.SetCurrentRendererType": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.CustomIDAMemo.SetGroupsVisibility": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + ] + }, + "idaapi.CustomIDAMemo.SetNodeInfo": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__node_info", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.CustomIDAMemo.SetNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + ] + }, + "idaapi.CustomIDAMemo.view_activated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_click": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "idaapi.CustomIDAMemo.view_close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_curpos": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "idaapi.CustomIDAMemo.view_dblclick": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "idaapi.CustomIDAMemo.view_deactivated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_keydown": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-on_view_keydown", + "idapython-examples__custom_graph_with_actions", + ] + }, + "idaapi.CustomIDAMemo.view_loc_changed": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.CustomIDAMemo.view_mouse_moved": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "idaapi.CustomIDAMemo.view_mouse_over": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "idaapi.CustomIDAMemo.view_switched": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "grview-on_view_click", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "idaapi.IDAPython_FormatExc": { + "return": [ + 'str', + ], + "tests": [ + "actions-script_actions_no_interr", + "bptgrp-multiline", + "debugger-breakpoints", + "debugger-breakpoints2__compat_760", + "debugger-breakpoints2__python_from_future_cond", + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_refreshes", + "idapython-addHotkey", + "idapython-breakpoints", + "idapython-plugin__broken_plugin_init", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-python_as_primary_interpreter", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "pyqt-tform2", + ] + }, + "idaapi.IDAPython_displayhook.format_item": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__get_action_attributes", + "api-actions__register_unregister_lifecycle", + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "api-idapython__get_set_numbered_type", + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__ida_idp", + "api-idapython_nocompat_695__ida_kernwin", + "api-put_patch_get", + "bptgrp-create_and_move", + "chooser-attrs__choose_name", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__ex_choose_multi", + "coloredview-highlight", + "config-idausr_subdirs", + "console-actions", + "customidamemo-highlight", + "customidamemo-homeend", + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "customidamemo-navigate__dump_imported_bookmarks", + "customidamemo-search_bin__patgen_all", + "customidamemo-search_bin__patgen_cp1251", + "customidamemo-search_bin__patgen_defbpu", + "customidamemo-search_bin__patgen_utf32be", + "customidamemo-search_bin__patgen_utf8", + "customidamemo-search_bin__persistedinreg", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "dbg_restore_snapshot", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoints2__bpt_perf", + "debugger-exceptions", + "debugger-manual_memory_regions", + "debugger-memory", + "desktops-misc__compat_old_window_titles", + "dwarf-load_options_fprots", + "eaview-navigate_rebase", + "enums-api", + "functions_window-misc__compat_find_widget", + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + "grview-contextmenu", + "grview-grida", + "grview-gruser", + "grview-jumpto_xref", + "grview-jumpto_xref_from_other_tab", + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "hexrays-misc3__get_vdui_by_api", + "hexrays-misc__decompile_delete_type_re_decompile", + "hexrays-navigate", + "i18n-files", + "i18n-strlits__bad_encoding_name", + "i18n-strlits__change_default_string_style", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-addHotkey", + "idapython-api__695bwcompat_misses", + "idapython-api__bitrange", + "idapython-api__dbg", + "idapython-api__dirtree", + "idapython-api__expr", + "idapython-api__funcs", + "idapython-api__gdl", + "idapython-api__graph", + "idapython-api__ida", + "idapython-api__idc", + "idapython-api__idp", + "idapython-api__ieee", + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + "idapython-api__lines", + "idapython-api__nalt", + "idapython-api__pro", + "idapython-api__search", + "idapython-api__segment", + "idapython-api__struct", + "idapython-api__typeinf", + "idapython-askusingform__direct_call", + "idapython-base2file", + "idapython-big_spd_bug", + "idapython-bptgrp", + "idapython-calc_switch_cases", + "idapython-custom_data", + "idapython-debugger", + "idapython-displayhook", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__no_implicit_imports", + "idapython-funcs", + "idapython-idb_hooks", + "idapython-idp_hooks", + "idapython-idp_hooks2__decorate_name", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-misc", + "idapython-misc2", + "idapython-misc3", + "idapython-misc4", + "idapython-misc5__bad_inf_set_xrefnum", + "idapython-names__compat", + "idapython-names__get_name_value", + "idapython-names__ida68", + "idapython-netnode", + "idapython-plugin_alternative_path__load_plugin", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__ph_object", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-registry", + "idapython-srareas", + "idapython-structs", + "idapython-switch_info", + "idapython-timers", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_func", + "idapython-tinfo_manip", + "idapython-tinfo_manip2", + "idapython-tinfo_udt", + "idapython-user_graphs", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__bitset_t", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__fnumber_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-decompile", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idaview-misc__recreate_insn", + "idaview-misc__tryblocks", + "loadfile-dyld_shared_cache2", + "localtypes-misc__anonymous_union_members", + "localtypes-misc__manipulate_dirtree_programmatically", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + "mainmsglist-misc__API", + "mainmsglist-misc__cursor_position_breakable_line", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__goto_end", + "mainmsglist-misc__hscrollbar_selection", + "mainmsglist-misc__hscrollbar_shows_as_needed", + "mainmsglist-misc__unbreakable_line_doesnt_affect_others", + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "notepad-misc", + "registry-misc__strlist", + "scriptsnippets-misc__load_dups", + "scriptsnippets-undo__opening_no_undo_point", + "scriptsnippets-undo__undo_after_closing", + "squishutils-evalpython", + "squishutils-msg", + "stackview-misc", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + "strings-misc__idapython1", + "strings-misc__idapython2", + "strings-misc__idapython3", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + "structs-members", + "structview-navigate2__custom_viewer_jump", + "til-loaded_til", + "til-misc", + "til-nonlocal_deps", + "til-redeclare_named_type", + "til-simple_export", + "tracing-misc", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "idaapi.IDAPython_displayhook.format_seq": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__get_action_attributes", + "customidamemo-highlight", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-manual_memory_regions", + "i18n-strlits__change_default_string_style", + "idapython-api__dbg", + "idapython-api__gdl", + "idapython-api__idc", + "idapython-api__kernwin", + "idapython-bptgrp", + "idapython-debugger", + "idapython-displayhook", + "idapython-misc2", + "idapython-misc3", + "idapython-names__get_name_value", + "idapython-processor_module__ph_object", + "idapython-read_selection_64", + "idapython-registry", + "idapython-tinfo_manip", + "idapython-tinfo_udt", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-ea", + "mainmsglist-misc__goto_end", + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "registry-misc__strlist", + "structs-members", + "til-redeclare_named_type", + ] + }, + "idaapi.disable_script_timeout": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-command_palette", + ] + }, + "idaapi.format_basestring": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__get_action_attributes", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "coloredview-highlight", + "customidamemo-highlight", + "customidamemo-homeend", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-manual_memory_regions", + "desktops-misc__compat_old_window_titles", + "dwarf-load_options_fprots", + "enums-api", + "functions_window-misc__compat_find_widget", + "grview-contextmenu", + "grview-grida", + "grview-gruser", + "grview-jumpto_xref_from_other_tab", + "hexrays-misc3__get_vdui_by_api", + "hexrays-navigate", + "i18n-strlits__change_default_string_style", + "idapython-api__695bwcompat_misses", + "idapython-api__dbg", + "idapython-api__expr", + "idapython-api__gdl", + "idapython-api__idc", + "idapython-api__idp", + "idapython-api__ieee", + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + "idapython-api__lines", + "idapython-api__nalt", + "idapython-api__pro", + "idapython-api__typeinf", + "idapython-bptgrp", + "idapython-debugger", + "idapython-displayhook", + "idapython-idb_hooks", + "idapython-misc", + "idapython-misc2", + "idapython-misc3", + "idapython-misc4", + "idapython-names__compat", + "idapython-names__get_name_value", + "idapython-names__ida68", + "idapython-netnode", + "idapython-processor_module__ph_object", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-registry", + "idapython-structs", + "idapython-switch_info", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_manip", + "idapython-tinfo_udt", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-decompile", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "localtypes-misc__anonymous_union_members", + "mainmsglist-misc__API", + "mainmsglist-misc__cursor_position_breakable_line", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__hscrollbar_selection", + "mainmsglist-misc__hscrollbar_shows_as_needed", + "mainmsglist-misc__unbreakable_line_doesnt_affect_others", + "notepad-misc", + "registry-misc__strlist", + "scriptsnippets-misc__load_dups", + "squishutils-msg", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + "structs-members", + "tracing-misc", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "idaapi.get_inf_structure": { + "return": [ + 'idainfo', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "idaapi.loader_input_t.file2base": { + "return": [ + 'int', + ], + "tests": [ + "idapython-bfld", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "idaapi.loader_input_t.gets": { + "return": [ + 'str', + ], + "tests": [ + "screenshots-misc__proc_dsp56k", + ] + }, + "idaapi.loader_input_t.read": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "idaapi.loader_input_t.seek": { + "return": [ + 'int', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "idaapi.loader_input_t.size": { + "return": [ + 'int', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "idaapi.loader_input_t.tell": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "idaapi.notify_when": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-examples__custom_cli", + "idapython-notify_when__basic", + "plugins-hexrayspytools", + ] + }, + "idaapi.pycim_get_widget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pycim_view_close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pygc_create_groups": { + "return": [ + 'NoneType', + ['int', '...'], + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pygc_delete_groups": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "idaapi.pygc_set_groups_visibility": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + ] + }, + "idd.Appcall__.get_appcall_options": { + "return": [ + 'int', + ], + "tests": [ + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + ] + }, + "idd.Appcall__.set_appcall_options": { + "return": [ + 'int', + ], + "tests": [ + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + ] + }, + "idd.dbg_write_memory": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + "debugger-memory", + ] + }, + "idd.meminfo_vec_t.push_back": { + "return": [ + 'memory_info_t', + ], + "tests": [ + "debugger-manual_memory_regions", + ] + }, + "idd.regval_t.set_int": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registers__linux", + "idapython-registers__linux_x64", + ] + }, + "idp.AssembleLine": { + "return": [ + 'bytes', + ], + "tests": [ + "training-test__FindInstructions_py", + ] + }, + "idp.IDB_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__log_idb_events", + "idapython-idb_hooks2__compiler_changed", + "idapython-idb_hooks2__compiler_changed_compat", + "idapython-idb_hooks2__renamed", + "idapython-idb_hooks2__renamed_compat", + "idapython-idb_hooks2__sgr_changed_deleted", + ] + }, + "idp.IDB_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "cpuregs-custom_data_formats", + "custdata-menus", + "idapython-examples__custom_cli", + "idapython-examples__log_idb_events", + "idapython-examples__operand_changed", + "idapython-examples__replay_prototypes_changes", + "idapython-extra_cmt", + "idapython-idb_hooks", + "idapython-idb_hooks2__bookmark_changed", + "idapython-idb_hooks2__bookmark_changed_compat", + "idapython-idb_hooks2__compiler_changed", + "idapython-idb_hooks2__compiler_changed_compat", + "idapython-idb_hooks2__renamed", + "idapython-idb_hooks2__renamed_compat", + "idapython-idb_hooks2__segm_deleted_compat", + "idapython-idb_hooks2__sgr_changed_deleted", + "idapython-notify_when__basic", + "plugins-hexrayspytools", + ] + }, + "idp.IDB_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-extra_cmt", + ] + }, + "idp.IDP_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idp_hooks2__assemble", + "idapython-idp_hooks2__calc_step_over", + "idapython-idp_hooks2__coagulate_dref", + "idapython-idp_hooks2__decorate_name", + "idapython-idp_hooks2__func_bounds", + "idapython-idp_hooks2__gen_map_file", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-idp_hooks2__gen_src_file_lnnum", + "idapython-idp_hooks2__get_autocmt", + "idapython-idp_hooks2__get_bg_color", + "idapython-idp_hooks2__get_bg_color_compat", + "idapython-idp_hooks2__get_frame_retsize", + "idapython-idp_hooks2__get_operand_string", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-idp_hooks2__is_sp_based", + ] + }, + "idp.IDP_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + "idaview-hints__instruction_gets_deleted", + "plugins-procext_py", + ] + }, + "idp.get_ash": { + "return": [ + 'asm_t', + ], + "tests": [ + "idapython-api__idp", + ] + }, + "idp.get_reg_info": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__idp", + ] + }, + "idp.is_call_insn": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__ida_idp", + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "training-test__CallStackWalk_py", + ] + }, + "idp.parse_reg_name": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "idapython-debugger", + ] + }, + "idp.ph_calcrel": { + "return": [ + ('bytes', 'int'), + ], + "tests": [ + "idapython-api__idp", + ] + }, + "idp.ph_find_op_value": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "idp.ph_find_reg_value": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-idp_hooks", + "ppc-analysis_options", + ] + }, + "idp.ph_get_cnbits": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_dnbits": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_flag": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__get_action_attributes", + "api-actions__register_unregister_lifecycle", + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "api-idapython__get_set_numbered_type", + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__ida_idp", + "api-idapython_nocompat_695__ida_kernwin", + "api-put_patch_get", + "bptgrp-create_and_move", + "chooser-attrs__choose_name", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__ex_choose_multi", + "coloredview-highlight", + "config-idausr_subdirs", + "console-actions", + "customidamemo-highlight", + "customidamemo-homeend", + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "customidamemo-navigate__dump_imported_bookmarks", + "customidamemo-search_bin__patgen_all", + "customidamemo-search_bin__patgen_cp1251", + "customidamemo-search_bin__patgen_defbpu", + "customidamemo-search_bin__patgen_utf32be", + "customidamemo-search_bin__patgen_utf8", + "customidamemo-search_bin__persistedinreg", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "dbg_restore_snapshot", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoints2__bpt_perf", + "debugger-exceptions", + "debugger-manual_memory_regions", + "debugger-memory", + "desktops-misc__compat_old_window_titles", + "dwarf-load_options_fprots", + "eaview-navigate_rebase", + "enums-api", + "functions_window-misc__compat_find_widget", + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + "grview-contextmenu", + "grview-grida", + "grview-gruser", + "grview-jumpto_xref", + "grview-jumpto_xref_from_other_tab", + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "hexrays-misc3__get_vdui_by_api", + "hexrays-misc__decompile_delete_type_re_decompile", + "hexrays-navigate", + "i18n-files", + "i18n-strlits__bad_encoding_name", + "i18n-strlits__change_default_string_style", + "i18n-strlits__create_C_16_strlit", + "i18n-strlits__create_C_32_strlit", + "i18n-strlits__create_C_strlit", + "i18n-strlits__create_pascal_16", + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + "i18n-strlits__dup_encodings", + "i18n-strlits__edit_encoding", + "i18n-strlits__edit_encoding_with_changing_its_BUP", + "i18n-strlits__select_BPU_incompatible_charset_changes_strtype_BPU", + "idapython-addHotkey", + "idapython-api__695bwcompat_misses", + "idapython-api__bitrange", + "idapython-api__dbg", + "idapython-api__dirtree", + "idapython-api__expr", + "idapython-api__funcs", + "idapython-api__gdl", + "idapython-api__graph", + "idapython-api__ida", + "idapython-api__idc", + "idapython-api__idp", + "idapython-api__ieee", + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + "idapython-api__lines", + "idapython-api__nalt", + "idapython-api__pro", + "idapython-api__search", + "idapython-api__segment", + "idapython-api__struct", + "idapython-api__typeinf", + "idapython-askusingform__direct_call", + "idapython-base2file", + "idapython-big_spd_bug", + "idapython-bptgrp", + "idapython-calc_switch_cases", + "idapython-custom_data", + "idapython-debugger", + "idapython-displayhook", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__no_implicit_imports", + "idapython-funcs", + "idapython-idb_hooks", + "idapython-idp_hooks", + "idapython-idp_hooks2__decorate_name", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-misc", + "idapython-misc2", + "idapython-misc3", + "idapython-misc4", + "idapython-misc5__bad_inf_set_xrefnum", + "idapython-names__compat", + "idapython-names__get_name_value", + "idapython-names__ida68", + "idapython-netnode", + "idapython-plugin_alternative_path__load_plugin", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__ph_object", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-registry", + "idapython-srareas", + "idapython-structs", + "idapython-switch_info", + "idapython-timers", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_func", + "idapython-tinfo_manip", + "idapython-tinfo_manip2", + "idapython-tinfo_udt", + "idapython-user_graphs", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__bitset_t", + "idapython_hr-base_classes2__broken_optblock_t", + "idapython_hr-base_classes2__broken_optinsn_t", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-base_classes2__fnumber_t", + "idapython_hr-base_classes2__mbl_array_t", + "idapython_hr-base_classes2__mbl_array_t_64", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-base_classes2__qlist_cinsn_t_iterator", + "idapython_hr-base_classes2__valrng_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-decompile", + "idapython_hr-decompile2__flags", + "idapython_hr-ea", + "idapython_hr-ea64", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "idapython_hr-hexrays_callback", + "idapython_hr-hexrays_hooks__cb_close_pseudocode", + "idapython_hr-hexrays_hooks__cb_create_hint", + "idapython_hr-hexrays_hooks__cb_curpos", + "idapython_hr-hexrays_hooks__cb_double_click", + "idapython_hr-hexrays_hooks__cb_func_printed", + "idapython_hr-hexrays_hooks__cb_keyboard", + "idapython_hr-hexrays_hooks__cb_maturity", + "idapython_hr-hexrays_hooks__cb_open_pseudocode", + "idapython_hr-hexrays_hooks__cb_populating_popup", + "idapython_hr-hexrays_hooks__cb_print_func", + "idapython_hr-hexrays_hooks__cb_refresh_pseudocode", + "idapython_hr-hexrays_hooks__cb_right_click", + "idapython_hr-hexrays_hooks__cb_switch_pseudocode", + "idapython_hr-hexrays_hooks__cb_text_ready", + "idaview-misc__recreate_insn", + "idaview-misc__tryblocks", + "loadfile-dyld_shared_cache2", + "localtypes-misc__anonymous_union_members", + "localtypes-misc__manipulate_dirtree_programmatically", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + "mainmsglist-misc__API", + "mainmsglist-misc__cursor_position_breakable_line", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__goto_end", + "mainmsglist-misc__hscrollbar_selection", + "mainmsglist-misc__hscrollbar_shows_as_needed", + "mainmsglist-misc__unbreakable_line_doesnt_affect_others", + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "notepad-misc", + "registry-misc__strlist", + "scriptsnippets-misc__load_dups", + "scriptsnippets-undo__opening_no_undo_point", + "scriptsnippets-undo__undo_after_closing", + "squishutils-evalpython", + "squishutils-msg", + "stackview-misc", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__undo_status_local_types", + "strings-misc__idapython1", + "strings-misc__idapython2", + "strings-misc__idapython3", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + "structs-members", + "structview-navigate2__custom_viewer_jump", + "til-loaded_til", + "til-misc", + "til-nonlocal_deps", + "til-redeclare_named_type", + "til-simple_export", + "tracing-misc", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "idp.ph_get_icode_return": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_id": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + "idapython-idp_hooks", + "idapython-processor_module__ph_object", + "plugins-procext_py", + ] + }, + "idp.ph_get_instruc": { + "return": [ + [('str', 'int'), '...'], + ], + "tests": [ + "idapython-processor_module__ph_object", + "training-test__AsmViewer_py", + ] + }, + "idp.ph_get_instruc_end": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_instruc_start": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_operand_info": { + "return": [ + 'NoneType', + ('int', 'int', 'int', 'int', 'int'), + ], + "tests": [ + "idapython-debugger", + ] + }, + "idp.ph_get_reg_accesses": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks2__get_reg_accesses", + ] + }, + "idp.ph_get_reg_code_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_reg_data_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_reg_first_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + "idapython-srareas", + ] + }, + "idp.ph_get_reg_last_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_regnames": { + "return": [ + ['str', '...'], + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "idapython-processor_module__ph_object", + "training-test__AsmViewer_py", + ] + }, + "idp.ph_get_segreg_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_tbyte_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.ph_get_version": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__ph_object", + ] + }, + "idp.processor_t.auto_empty": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.auto_empty_finally": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.closebase": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.deleting_func": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + ] + }, + "idp.processor_t.ev_ana_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_auto_queue_empty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_can_have_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + ] + }, + "idp.processor_t.ev_coagulate": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_coagulate_dref": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_create_func_frame": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_creating_segm": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_emu_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_endbinary": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_func_bounds": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_align_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_is_basic_block_end": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_call_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_ret_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_is_sane_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_is_sp_based": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_is_switch": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_may_be_func": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_newbinary": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_newfile": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_newprc": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_oldfile": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + ] + }, + "idp.processor_t.ev_out_assumes": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_data": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_footer": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_out_header": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_insn": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_label": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_out_mnem": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_operand": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_out_segend": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + ] + }, + "idp.processor_t.ev_out_segstart": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_rename": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.ev_str2reg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.ev_treat_hindering_item": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_mem", + ] + }, + "idp.processor_t.ev_undefine": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_mem", + ] + }, + "idp.processor_t.func_added": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.get_auxpref": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.kernel_config_loaded": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.make_code": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.make_data": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.renamed": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.savebase": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.processor_t.set_func_end": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.set_func_start": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "idp.processor_t.sgr_changed": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "idp.reg_access_vec_t.push_back": { + "return": [ + 'reg_access_t', + ], + "tests": [ + "idapython-idp_hooks2__get_reg_accesses", + ] + }, + "idp.set_processor_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "screenshots-misc__proc_dsp56k", + ] + }, + "idp.str2reg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + "stackview-misc", + ] + }, + "ieee.fpvalue_t.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.eabs": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fadd": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fdiv": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fmul": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_int64": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_str": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_sval": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.from_uint64": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.fsub": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.get_kind": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.is_negative": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.mul_pow2": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.negate": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_int64": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_str": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_sval": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "ieee.fpvalue_t.to_uint64": { + "return": [ + 'NoneType', + 'int', + ], + "tests": [ + "idapython-api__ieee", + ] + }, + "kernwin.Choose.AddCommand": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_kernwin", + ] + }, + "kernwin.Choose.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-actions__action_destroys_chooser", + "chooser-dirtree__modal", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose_multi", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-quick_filter", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-choosers", + "idapython_hr-examples__vds12", + "mainmsglist-misc__carriage_return_after_form", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.Choose.Embedded": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Choose.GetWidget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc__ex_choose", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "squishutils-menus", + ] + }, + "kernwin.Choose.OnPopup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc__ex_choose", + "squishutils-menus", + ] + }, + "kernwin.Choose.Refresh": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-keyboard", + ] + }, + "kernwin.Choose.Show": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-keyboard", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__chooser_broken", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose", + "chooser-misc__ex_choose_multi", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-misc__status_bar", + "chooser-quick_filter", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "idapython-choosers", + "idapython_hr-examples__vds12", + "squishutils-menus", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.Choose.UI_Hooks_Trampoline.populating_widget_popup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc__ex_choose", + "squishutils-menus", + ] + }, + "kernwin.Choose.adjust_last_item": { + "return": [ + ['int', '...'], + ], + "tests": [ + "chooser-actions__actions_availability", + "chooser-misc__chooser_broken", + "idapython-choosers", + ] + }, + "kernwin.CustomIDAMemo.CreateGroups": { + "return": [ + 'NoneType', + ['int', '...'], + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.DelNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.CustomIDAMemo.DeleteGroups": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.GetCurrentRendererType": { + "return": [ + 'int', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + ] + }, + "kernwin.CustomIDAMemo.GetNodeInfo": { + "return": [ + 'NoneType', + 'bool', + ('int', 'int', 'int', 'str'), + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "idapython-api__kernwin", + ] + }, + "kernwin.CustomIDAMemo.GetWidget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.SetCurrentRendererType": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.CustomIDAMemo.SetGroupsVisibility": { + "return": [ + 'bool', + ], + "tests": [ + "grview-groups__api", + ] + }, + "kernwin.CustomIDAMemo.SetNodeInfo": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__node_info", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.CustomIDAMemo.SetNodesInfos": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + ] + }, + "kernwin.CustomIDAMemo.view_activated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_click": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.CustomIDAMemo.view_close": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_curpos": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.CustomIDAMemo.view_dblclick": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "kernwin.CustomIDAMemo.view_deactivated": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_keydown": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__check_grouping_without_callback", + "gruser-misc__dbl_click_handler", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "grview-grida", + "grview-gruser", + "grview-on_view_keydown", + "idapython-examples__custom_graph_with_actions", + ] + }, + "kernwin.CustomIDAMemo.view_loc_changed": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.CustomIDAMemo.view_mouse_moved": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-show_existent", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-stress", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.CustomIDAMemo.view_mouse_over": { + "return": [ + 'NoneType', + ], + "tests": [ + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "grview-grida", + "grview-gruser", + "grview-mouseOver", + "grview-nodeprops__register_highlight", + "idapython-customidamemo", + "idapython-user_graphs", + ] + }, + "kernwin.CustomIDAMemo.view_switched": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "grview-on_view_click", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + ] + }, + "kernwin.Form.Add": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.AddControls": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.ButtonInput.helper_cb": { + "return": [ + 'int', + ], + "tests": [ + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + ] + }, + "kernwin.Form.ButtonInput.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + ] + }, + "kernwin.Form.Compile": { + "return": [ + ('MyChooserForm', ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'c_char_Array_1024']), + ('MyForm', ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType']), + ('MyForm', ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p']), + ('MyForm3', ['bytes', 'CFunctionType', 'CFunctionType']), + ('MyNonModalForm', ['bytes', 'int', 'CFunctionType', 'CFunctionType']), + ('UpdateCollectiveIntelForm', ['bytes', 'CFunctionType', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_ushort', 'LP_c_long', 'LP_c_long']), + ('VirusTotalForm', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort', 'c_char_Array_512', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType']), + ('busy_form_t', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_512', 'c_char_Array_512', 'c_char_Array_512', 'LP_c_ulong', 'LP_c_ulong', 'LP_c_long', 'LP_c_ulong', 'c_char_Array_1024', 'CFunctionType', 'CFunctionType', 'LP_c_ushort', 'LP_c_ushort', 'LP_c_void_p', 'LP_c_void_p']), + ('enable_field_file_browser_t', ['bytes', 'CFunctionType', 'c_char_Array_512']), + ('jmp_to_form', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_void_p', 'LP_c_void_p']), + ('search_strlit_form_t', ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort']), + ('test_plugin_form_t', ['bytes', 'int', 'CFunctionType', 'LP_c_void_p']), + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.CompileEx": { + "return": [ + ['bytes', 'CFunctionType', 'CFunctionType'], + ['bytes', 'CFunctionType', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_long', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_ushort', 'LP_c_long', 'LP_c_long'], + ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType'], + ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'LP_c_void_p', 'c_char_Array_1024'], + ['bytes', 'CFunctionType', 'LP_c_void_p', 'LP_c_void_p'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_1024', 'LP_c_ulong', 'c_char_Array_512', 'c_char_Array_512', 'c_char_Array_512', 'LP_c_ulong', 'LP_c_ulong', 'LP_c_long', 'LP_c_ulong', 'c_char_Array_1024', 'CFunctionType', 'CFunctionType', 'LP_c_ushort', 'LP_c_ushort', 'LP_c_void_p', 'LP_c_void_p'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort', 'c_char_Array_512', 'LP_c_void_p', 'LP_c_void_p', 'CFunctionType'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_ushort'], + ['bytes', 'CFunctionType', 'c_char_Array_1024', 'LP_c_void_p', 'LP_c_void_p'], + ['bytes', 'CFunctionType', 'c_char_Array_512'], + ['bytes', 'int', 'CFunctionType', 'CFunctionType'], + ['bytes', 'int', 'CFunctionType', 'LP_c_void_p'], + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Compiled": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Control.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Control.get_arg": { + "return": [ + 'CFunctionType', + 'LP_c_long', + 'LP_c_ulong', + 'LP_c_ushort', + 'LP_c_void_p', + 'c_char_Array_1024', + 'c_char_Array_512', + ('LP_c_void_p', 'LP_c_void_p'), + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Control.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__refresh_and_check_selection", + "idapython-askusingform__close_on_click", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.DropdownListControl.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython_hr-examples__modified_vds13_twice", + ] + }, + "kernwin.Form.EmbeddedChooserControl.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.EnableField": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-askusingform__enable_field_file_browser", + ] + }, + "kernwin.Form.Execute": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.FindControlById": { + "return": [ + 'ButtonInput', + 'ChkGroupControl', + 'ChkGroupItemControl', + 'EmbeddedChooserControl', + 'FileInput', + 'FormChangeCb', + 'StringInput', + ], + "tests": [ + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + ] + }, + "kernwin.Form.FormChangeCb.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.FormChangeCb.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__refresh_and_check_selection", + "idapython-askusingform__close_on_click", + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.FormChangeCb.helper_cb": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.Free": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupControl.next_child_pos": { + "return": [ + 'int', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupItemControl.assign_pos": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupItemControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.GroupItemControl.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.InputControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.InputControl.is_input_field": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.LabelControl.get_tag": { + "return": [ + 'str', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.MultiLineTextControl.free": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__multiline", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + ] + }, + "kernwin.Form.Open": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + ] + }, + "kernwin.Form.RefreshField": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-askusingform__dropdown", + ] + }, + "kernwin.Form.create_string_buffer": { + "return": [ + 'c_char_Array_10', + 'c_char_Array_1024', + 'c_char_Array_512', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__legacy", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.Form.fieldtype_to_ctype": { + "return": [ + 'PyCSimpleType', + ], + "tests": [ + "idapython-askusingform__dropdown", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_ids", + "idapython-askusingform__legacy", + "idapython-askusingform__misplaced_formchangecb", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-examples__bin_search", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.IDAViewWrapper.Bind": { + "return": [ + 'bool', + ], + "tests": [ + "grview-grida", + "grview-groups__api", + "grview-mouseOver", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.IDAViewWrapper.Unbind": { + "return": [ + 'bool', + ], + "tests": [ + "grview-grida", + ] + }, + "kernwin.PluginForm.FormToPyQtWidget": { + "return": [ + 'QAbstractScrollArea', + 'QWidget', + ], + "tests": [ + "hexrays-misc3__get_vdui_by_api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + "plugins-hexrayspytools", + "pyqt-qabstractitemdelegate", + "pyqt-raw_widgets_in_tree", + "squishutils-drag", + ] + }, + "kernwin.PluginForm.GetWidget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_pluginform", + ] + }, + "kernwin.PluginForm.OnClose": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "docks-set_dock_pos_empty_dst", + ] + }, + "kernwin.PluginForm.OnCreate": { + "return": [ + 'NoneType', + ], + "tests": [ + "docks-set_dock_pos_empty_dst", + ] + }, + "kernwin.PluginForm.QtWidgetToTWidget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_qwidget", + ] + }, + "kernwin.PluginForm.Show": { + "return": [ + 'bool', + ], + "tests": [ + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "docks-set_dock_pos_empty_dst", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "plugins-hexrayspytools", + "pyqt-tform2", + ] + }, + "kernwin.PluginForm.TWidgetToPyQtWidget": { + "return": [ + 'QAbstractScrollArea', + 'QWidget', + ], + "tests": [ + "idapython-examples__inject_command", + "idapython-ui_hooks__misc", + "plugins-lucid", + ] + }, + "kernwin.TWidget__from_ptrval__": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_qwidget", + ] + }, + "kernwin.UI_Hooks.dump_state": { + "return": [ + 'str', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython-ui_hooks__database_closed", + "idapython-ui_hooks__debugger_menu_change_default_impl", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython-ui_hooks__misc", + "idapython-ui_hooks__term", + ] + }, + "kernwin.UI_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc2", + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__path_part_name_starts_like_action", + "api-actions__separators", + "api-actions__tooltips", + "api-actions__unused_action_desc", + "api-actions__updating_actions_notif", + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-keyboard", + "chooser-misc2__missing_attributes", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__chooser_broken", + "chooser-misc__colorize_chooser", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose", + "chooser-misc__ex_choose_multi", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-misc__status_bar", + "chooser-quick_filter", + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-gruser", + "grview-nodepropsUser", + "i18n-basic", + "idapython-api__graph", + "idapython-api__kernwin", + "idapython-choosers", + "idapython-cleanup", + "idapython-custom_viewer", + "idapython-customidamemo", + "idapython-example_add_menu_item", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__func_chooser_coloring", + "idapython-examples__lines_rendering", + "idapython-examples__prevent_jump", + "idapython-examples__registers_context_menu", + "idapython-examples__uihook", + "idapython-tform", + "idapython-tform_type", + "idapython-ui_hooks__attach_action_to_any_popup", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython-ui_hooks__database_closed", + "idapython-ui_hooks__debugger_menu_change_default_impl", + "idapython-ui_hooks__desktop_applied", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython-ui_hooks__misc", + "idapython-ui_hooks__saving_saved", + "idapython-ui_hooks__saving_saved_bwcompat", + "idapython-ui_hooks__term", + "idapython-user_graphs", + "idapython_hr-codegen", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds8", + "idapython_hr-examples__vds8_crash", + "plugins-lucid", + "squishutils-menus", + "training-test__AsmViewer_py", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.UI_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc2", + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__separators", + "api-actions__tooltips", + "api-actions__updating_actions_notif", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__modify_number_of_columns_recreate_chooser", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-keyboard", + "chooser-misc2__recreate_chooser_context_menu", + "chooser-misc2__reinit_after_search", + "chooser-misc2__select_callback_called", + "chooser-misc2__size_accounts_for_scrollbar", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__chooser_broken", + "chooser-misc__colorize_chooser", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__ex_choose", + "chooser-misc__ex_choose_multi", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-misc__status_bar", + "chooser-quick_filter", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "idapython-choosers", + "idapython-examples__prevent_jump", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython-ui_hooks__misc", + "idapython_hr-examples__vds12", + "plugins-lucid", + "squishutils-menus", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.View_Hooks.hook": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "docks-show_existent", + "gruser-misc__addedge_out_of_bounds", + "gruser-misc__check_grouping_without_callback", + "gruser-misc__check_onactivate", + "gruser-misc__check_refreshes", + "gruser-misc__dbl_click_handler", + "gruser-misc__edge_hints", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__memory_usage", + "gruser-misc__node_hints", + "gruser-misc__node_info", + "gruser-misc__two_graphs_with_same_title", + "gruser-stress", + "grview-grida", + "grview-groups__api", + "grview-gruser", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-nodeprops__misc", + "grview-nodeprops__register_highlight", + "grview-on_view_click", + "grview-on_view_keydown", + "i18n-basic", + "idapython-api__kernwin", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__wrap_idaview", + "idapython-user_graphs", + "idaview-misc__callback_for_click_on_registers", + "miniview-tracefile_node_colors", + ] + }, + "kernwin.View_Hooks.unhook": { + "return": [ + 'bool', + ], + "tests": [ + "grview-grida", + "idapython-user_graphs", + ] + }, + "kernwin.action_ctx_base_t.has_flag": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.action_handler_t.update": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_toolbar", + "api-actions__register_actions_before_exit", + ] + }, + "kernwin.activate_widget": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-gruser", + "grview-nodepropsUser", + ] + }, + "kernwin.add_hotkey": { + "return": [ + 'PyCapsule', + ], + "tests": [ + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "idapython-addHotkey", + "idapython-examples__add_hotkey", + "idapython-misc2", + ] + }, + "kernwin.add_idc_hotkey": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__add_idc_hotkey", + ] + }, + "kernwin.add_spaces": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__kernwin", + ] + }, + "kernwin.ask_addr": { + "return": [ + 'NoneType', + ], + "tests": [ + "desktops-floating_dock__dis_forms", + "dialogs-misc__positioning", + "dialogs-misc__positioning_desktop_reset", + "dialogs-misc__positioning_prevented", + "forms-misc__regular_forms", + ] + }, + "kernwin.ask_file": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "filedlg-open_file__filters", + "idapython-misc3", + "idapython-waitdialog", + "training-test__AsmViewer_py", + ] + }, + "kernwin.ask_form": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "chooser-misc__chooser_selection", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__refresh_and_check_selection", + "chooser-misc__selection_changed_called_and_colors_considered", + "idapython-askusingform__close_on_click", + "idapython-askusingform__close_on_click_minimal", + "idapython-askusingform__direct_call", + "idapython-askusingform__dropdown", + "idapython-askusingform__enable_field_file_browser", + "idapython-askusingform__ex_askusingform", + "idapython-askusingform__form_ShowField_EnableField", + "idapython-askusingform__form_controls_chooser", + "idapython-askusingform__form_ids", + "idapython-askusingform__legacy", + "idapython-askusingform__multiline", + "idapython-askusingform__non_freed_forms", + "idapython-askusingform__set_color_interactively", + "idapython-askusingform__set_color_programmatically", + "idapython-askusingform__whitespace", + "idapython-examples__bin_search", + "idapython_hr-examples__modified_vds13_twice", + "mainmsglist-misc__carriage_return_after_form", + ] + }, + "kernwin.ask_str": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + "idapython-askusingform__dropdown", + "idapython-help_function", + "idapython-help_shortcut", + "training-test__ImpRef_py", + ] + }, + "kernwin.ask_text": { + "return": [ + 'str', + ], + "tests": [ + "dialogs-asktext__sizes", + "plugins-hexrayspytools", + ] + }, + "kernwin.ask_yn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-uirequests", + ] + }, + "kernwin.attach_action_to_popup": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc2", + "actions-misc4", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__permanent_attach_to_chooser_popup", + "api-actions__permanent_attach_to_popup", + "api-actions__separators", + "api-actions__tooltips", + "chooser-actions__action_destroys_chooser", + "chooser-misc__ex_choose", + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "grview-gruser", + "grview-nodepropsUser", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__dump_extra_comments", + "idapython-examples__registers_context_menu", + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-plugin_actions", + "idapython-tform_type", + "idapython-ui_hooks__attach_action_to_any_popup", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__vds3", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + "squishutils-menus", + "training-test__AsmViewer_py", + ] + }, + "kernwin.attach_action_to_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_toolbar", + "api-actions__separators", + "api-actions__update_action", + "idapython-example_add_menu_item", + "toolbars-add_custom", + ] + }, + "kernwin.attach_dynamic_action_to_popup": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__path_part_name_starts_like_action", + "api-actions__unused_action_desc", + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-misc2__recreate_chooser_context_menu", + "idapython-examples__custom_graph_with_actions", + "idapython-tform_type", + "idapython-user_graphs", + ] + }, + "kernwin.call_nav_colorizer": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + ] + }, + "kernwin.choose_find": { + "return": [ + 'MyChoose', + 'NoneType', + ], + "tests": [ + "idapython-api__kernwin", + ] + }, + "kernwin.choose_name": { + "return": [ + 'int', + ], + "tests": [ + "chooser-attrs__choose_name", + ] + }, + "kernwin.choose_segm": { + "return": [ + 'NoneType', + ], + "tests": [ + "segs-manip", + ] + }, + "kernwin.chooser_base_t.get_ea": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__func_chooser_coloring", + ] + }, + "kernwin.chooser_base_t.get_row": { + "return": [ + (['str', '...'], 'int', 'chooser_item_attrs_t'), + ], + "tests": [ + "chooser-misc__colorize_chooser", + ] + }, + "kernwin.cli_t.register": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__custom_cli", + ] + }, + "kernwin.cli_t.unregister": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__custom_cli", + ] + }, + "kernwin.close_chooser": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-columns__modify_number_of_columns_recreate_chooser", + "desktops-misc__compat_old_window_titles", + "functions_window-misc__compat_close_chooser", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.close_widget": { + "return": [ + 'NoneType', + ], + "tests": [ + "console-restore", + "debugger-regviews", + "docks-close_with_middle_button", + "eaview-sync_pseudocode", + "enums-asm_and_c", + "forms-massiveclose", + "frview-resize", + "funstack-navigate", + "gruser-misc__node_info", + "grview-grida", + "grview-gruser", + "grview-on_view_click", + "hexrays-navigate", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-customidamemo", + "miniview-close", + "miniview-tracefile_node_colors", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_enums", + "stddirtrees-misc__basic_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__complex_filters_enums", + "stddirtrees-misc__complex_filters_structures", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__debugging_imports", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__delete_undo_delete_again_enums", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_1", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__exit_after_sorting_functions", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__filter_by_tree_then_jump_out_enums", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__goto_line_fast_enums", + "stddirtrees-misc__goto_line_fast_functions", + "stddirtrees-misc__goto_line_fast_imports", + "stddirtrees-misc__goto_line_fast_local_types", + "stddirtrees-misc__goto_line_fast_names", + "stddirtrees-misc__goto_line_fast_structures", + "stddirtrees-misc__hscrollbar_as_needed_enums", + "stddirtrees-misc__hscrollbar_as_needed_structures", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__interr_41069_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_from_pseudocode_to_local_types", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__jump_to_pseudocode_from_local_types", + "stddirtrees-misc__local_types_and_structures_delete", + "stddirtrees-misc__local_types_and_structures_delete_all", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_local_types_2", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__newfile_imports", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__no_subfolders_jump_enums", + "stddirtrees-misc__no_subfolders_jump_structures", + "stddirtrees-misc__no_subfolders_sorting_enums", + "stddirtrees-misc__no_subfolders_sorting_structures", + "stddirtrees-misc__open_in_folders_columns_sizes_local_types", + "stddirtrees-misc__persisted_state_enums", + "stddirtrees-misc__persisted_state_functions", + "stddirtrees-misc__persisted_state_imports", + "stddirtrees-misc__persisted_state_imports_mangling", + "stddirtrees-misc__persisted_state_imports_mangling_2", + "stddirtrees-misc__persisted_state_local_types", + "stddirtrees-misc__persisted_state_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_functions_1", + "stddirtrees-misc__search_fast_functions_2", + "stddirtrees-misc__search_fast_functions_3", + "stddirtrees-misc__search_fast_functions_4", + "stddirtrees-misc__search_fast_functions_5", + "stddirtrees-misc__search_fast_functions_6", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__toggle_folders_on_each_column_local_types", + "stddirtrees-misc__undo_status_local_types", + "structs-asm_and_c", + ] + }, + "kernwin.create_empty_widget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-ui_hooks__desktop_applied", + "plugins-lucid", + ] + }, + "kernwin.create_menu": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__add_menus", + "menus-add_custom", + ] + }, + "kernwin.create_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "toolbars-add_custom", + ] + }, + "kernwin.custom_viewer_jump": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "idapython-examples__jump_next_comment", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.del_hotkey": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython__add_del_hotkey", + "api-idapython__add_del_hotkey_vs_plugin", + "idapython-examples__add_hotkey", + "idapython-misc2", + ] + }, + "kernwin.del_idc_hotkey": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__add_idc_hotkey", + ] + }, + "kernwin.delete_menu": { + "return": [ + 'bool', + ], + "tests": [ + "menus-add_custom", + ] + }, + "kernwin.delete_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "toolbars-add_custom", + ] + }, + "kernwin.detach_action_from_menu": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_menu", + "api-actions__detach_unexisting_from_menu", + "api-actions__run_edit_menu_populating_script_from_recent_scripts", + ] + }, + "kernwin.detach_action_from_popup": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__permanent_attach_to_popup", + ] + }, + "kernwin.detach_action_from_toolbar": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_toolbar", + ] + }, + "kernwin.display_widget": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-ui_hooks__desktop_applied", + "plugins-lucid", + "structview-jump", + ] + }, + "kernwin.ea2str": { + "return": [ + 'str', + ], + "tests": [ + "idapython-misc3", + ] + }, + "kernwin.enable_chooser_item_attrs": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-misc__colorize_chooser", + "idapython-examples__func_chooser_coloring", + ] + }, + "kernwin.execute_sync": { + "return": [ + 'int', + ], + "tests": [ + "frview-scrollbar", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython-examples__wrap_idaview", + "idapython-execute_sync", + ] + }, + "kernwin.execute_ui_requests": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-uirequests", + ] + }, + "kernwin.find_widget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "actions-misc2", + "actions-misc4", + "console-restore", + "customidamemo-highlight4__identifier_nocase", + "customidamemo-highlight4__register_nocase", + "customidamemo-highlight4__regular_nocase", + "customidamemo-navigate3__jump_from_incompatible_place", + "debugger-regviews", + "desktops-misc__compat_old_window_titles", + "docks-close_with_middle_button", + "eaview-sync_pseudocode", + "enums-asm_and_c", + "forms-massiveclose", + "frview-resize", + "functions_window-misc__compat_find_widget", + "funstack-navigate", + "gruser-misc__get_graph_viewer", + "gruser-misc__get_graph_viewer_idapython", + "gruser-misc__get_graph_viewer_idaview", + "gruser-misc__node_info", + "grview-grida", + "grview-gruser", + "grview-nodepropsUser", + "grview-on_view_click", + "hexrays-misc3__get_vdui_by_api", + "hexrays-navigate", + "idapython-api__kernwin", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-customidamemo", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__dump_extra_comments", + "idapython-examples__inject_command", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + "miniview-close", + "miniview-tracefile_node_colors", + "plugins-hexrayspytools", + "plugins-lucid", + "pyqt-qabstractitemdelegate", + "pyqt-raw_widgets_in_tree", + "squishutils-drag", + "stddirtrees-misc__actions_on_selection_local_types", + "stddirtrees-misc__bad_delete_all_structures", + "stddirtrees-misc__basic_enums", + "stddirtrees-misc__basic_structures", + "stddirtrees-misc__basic_undo_steps_imports", + "stddirtrees-misc__basic_undo_steps_imports_2", + "stddirtrees-misc__complex_filters_enums", + "stddirtrees-misc__complex_filters_structures", + "stddirtrees-misc__create_with_selection_enums", + "stddirtrees-misc__create_with_selection_structures", + "stddirtrees-misc__cut_and_paste_enums", + "stddirtrees-misc__cut_and_paste_functions", + "stddirtrees-misc__cut_and_paste_imports", + "stddirtrees-misc__cut_and_paste_local_types", + "stddirtrees-misc__cut_and_paste_names", + "stddirtrees-misc__cut_and_paste_structures", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__debugging_imports", + "stddirtrees-misc__delete_folder_enums", + "stddirtrees-misc__delete_folder_local_types", + "stddirtrees-misc__delete_folder_names", + "stddirtrees-misc__delete_folder_structures", + "stddirtrees-misc__delete_listing_selection_enums", + "stddirtrees-misc__delete_listing_selection_structures", + "stddirtrees-misc__delete_root_enums", + "stddirtrees-misc__delete_root_local_types", + "stddirtrees-misc__delete_root_structures", + "stddirtrees-misc__delete_undo_delete_again_enums", + "stddirtrees-misc__drag_drop_folders_enums", + "stddirtrees-misc__drag_drop_folders_structures", + "stddirtrees-misc__drag_drop_functions_1", + "stddirtrees-misc__drag_drop_functions_2", + "stddirtrees-misc__drag_drop_reordering_enums", + "stddirtrees-misc__drag_drop_reordering_structures", + "stddirtrees-misc__exit_after_sorting_functions", + "stddirtrees-misc__expand_collapse_enums", + "stddirtrees-misc__expand_collapse_imports", + "stddirtrees-misc__expand_collapse_local_types", + "stddirtrees-misc__expand_collapse_names", + "stddirtrees-misc__expand_collapse_structures", + "stddirtrees-misc__filter_by_folder_then_jump_out_structures", + "stddirtrees-misc__filter_by_tree_then_jump_out_enums", + "stddirtrees-misc__focus_and_nav_enums", + "stddirtrees-misc__focus_and_nav_structures", + "stddirtrees-misc__folders_sorting_imports", + "stddirtrees-misc__goto_line_fast_enums", + "stddirtrees-misc__goto_line_fast_functions", + "stddirtrees-misc__goto_line_fast_imports", + "stddirtrees-misc__goto_line_fast_local_types", + "stddirtrees-misc__goto_line_fast_names", + "stddirtrees-misc__goto_line_fast_structures", + "stddirtrees-misc__hscrollbar_as_needed_enums", + "stddirtrees-misc__hscrollbar_as_needed_structures", + "stddirtrees-misc__ilfak_s_sequence_2_structures", + "stddirtrees-misc__ilfak_s_sequence_structures", + "stddirtrees-misc__insert_before_current_structures", + "stddirtrees-misc__interr_40799_local_types", + "stddirtrees-misc__interr_40868_local_types", + "stddirtrees-misc__interr_41069_local_types", + "stddirtrees-misc__jump_enums", + "stddirtrees-misc__jump_from_pseudocode_to_local_types", + "stddirtrees-misc__jump_structures", + "stddirtrees-misc__jump_to_pseudocode_from_local_types", + "stddirtrees-misc__local_types_and_structures_delete", + "stddirtrees-misc__local_types_and_structures_delete_all", + "stddirtrees-misc__misc_local_types", + "stddirtrees-misc__move_then_undo_enums", + "stddirtrees-misc__move_then_undo_functions", + "stddirtrees-misc__move_then_undo_imports", + "stddirtrees-misc__move_then_undo_local_types", + "stddirtrees-misc__move_then_undo_local_types_2", + "stddirtrees-misc__move_then_undo_structures", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__newfile_imports", + "stddirtrees-misc__no_infinite_scroll_enums", + "stddirtrees-misc__no_infinite_scroll_structures", + "stddirtrees-misc__no_subfolders_jump_enums", + "stddirtrees-misc__no_subfolders_jump_structures", + "stddirtrees-misc__no_subfolders_sorting_enums", + "stddirtrees-misc__no_subfolders_sorting_structures", + "stddirtrees-misc__open_in_folders_columns_sizes_local_types", + "stddirtrees-misc__persisted_state_enums", + "stddirtrees-misc__persisted_state_functions", + "stddirtrees-misc__persisted_state_imports", + "stddirtrees-misc__persisted_state_imports_mangling", + "stddirtrees-misc__persisted_state_imports_mangling_2", + "stddirtrees-misc__persisted_state_local_types", + "stddirtrees-misc__persisted_state_structures", + "stddirtrees-misc__programmatically_add_folder_enums", + "stddirtrees-misc__programmatically_add_folder_local_types", + "stddirtrees-misc__programmatically_add_folder_structures", + "stddirtrees-misc__quick_filter_enums", + "stddirtrees-misc__quick_filter_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "stddirtrees-misc__rename_enums", + "stddirtrees-misc__rename_imports", + "stddirtrees-misc__rename_local_types", + "stddirtrees-misc__rename_shortcut_local_types", + "stddirtrees-misc__rename_structures", + "stddirtrees-misc__search_enums", + "stddirtrees-misc__search_fast_enums", + "stddirtrees-misc__search_fast_functions_1", + "stddirtrees-misc__search_fast_functions_2", + "stddirtrees-misc__search_fast_functions_3", + "stddirtrees-misc__search_fast_functions_4", + "stddirtrees-misc__search_fast_functions_5", + "stddirtrees-misc__search_fast_functions_6", + "stddirtrees-misc__search_fast_imports", + "stddirtrees-misc__search_fast_local_types", + "stddirtrees-misc__search_fast_structures", + "stddirtrees-misc__search_imports", + "stddirtrees-misc__search_local_types", + "stddirtrees-misc__search_structures", + "stddirtrees-misc__selection_filtering_enums", + "stddirtrees-misc__selection_filtering_structures", + "stddirtrees-misc__sorting_enums", + "stddirtrees-misc__sorting_structures", + "stddirtrees-misc__toggle_folders_on_each_column_local_types", + "stddirtrees-misc__undo_status_local_types", + "structs-asm_and_c", + "structview-jump", + ] + }, + "kernwin.free_custom_icon": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + ] + }, + "kernwin.gen_disasm_text": { + "return": [ + 'NoneType', + ], + "tests": [ + "hexrays-misc2", + "idapython-interrupt_long_op", + "idapython-misc", + "tryblocks__big_blob", + ] + }, + "kernwin.get_action_checkable": { + "return": [ + ('bool', 'bool'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_action_checked": { + "return": [ + ('bool', 'bool'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_action_icon": { + "return": [ + ('bool', 'int'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_action_label": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__dump_actions_list", + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_shortcut": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__dump_actions_list", + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_state": { + "return": [ + ('bool', 'int'), + ], + "tests": [ + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_tooltip": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__get_action_attributes", + "plugins-command_palette", + ] + }, + "kernwin.get_action_visibility": { + "return": [ + ('bool', 'bool'), + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.get_chooser_data": { + "return": [ + ['str', '...'], + ], + "tests": [ + "chooser-misc__chooser_selection", + "idapython-examples__show_selected_using_get_chooser_data", + ] + }, + "kernwin.get_current_viewer": { + "return": [ + 'TWidget *', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "coloredview-highlight", + "customidamemo-highlight", + "customidamemo-homeend", + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "grview-api", + "grview-contextmenu", + "grview-gruser", + "grview-nodepropsUser", + "grview-rendering", + "idapython-api__kernwin", + "idapython-examples__list_stkvar_xrefs", + "idapython-place", + "idapython-readsel2", + "idapython_hr-hexrays_callback", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.get_current_widget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "api-actions__permanent_attach_to_chooser_popup", + "api-actions__permanent_attach_to_popup", + "console-actions", + "hexrays-navigate", + "idapython-api__kernwin_dbg", + "idapython-tform_type", + "squishutils-menus", + "tracing-misc", + ] + }, + "kernwin.get_custom_viewer_curline": { + "return": [ + 'str', + ], + "tests": [ + "idapython_hr-examples__vds17", + "idaview-misc__callback_for_click_on_registers", + ] + }, + "kernwin.get_custom_viewer_location": { + "return": [ + 'bool', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "customidamemo-navigate3__jump_from_incompatible_place", + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__jump_next_comment", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.get_custom_viewer_place": { + "return": [ + ('place_t', 'int', 'int'), + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "idapython-place", + "idaview-misc__callback_for_click_on_registers", + "plugins-hexlight_2016", + ] + }, + "kernwin.get_highlight": { + "return": [ + 'NoneType', + ('str', 'int'), + ], + "tests": [ + "coloredview-highlight", + "customidamemo-highlight", + "customidamemo-homeend", + "grview-contextmenu", + "grview-gruser", + "idapython-examples__list_stkvar_xrefs", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython_hr-hexrays_callback", + ] + }, + "kernwin.get_key_code": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexlight_2016", + ] + }, + "kernwin.get_navband_pixel": { + "return": [ + ('int', 'bool'), + ], + "tests": [ + "navbar-api", + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + ] + }, + "kernwin.get_registered_actions": { + "return": [ + ['str', '...'], + ], + "tests": [ + "api-actions__get_registered_actions", + "plugins-command_palette", + ] + }, + "kernwin.get_screen_ea": { + "return": [ + 'int', + ], + "tests": [ + "areas-killcb", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "gruser-misc__get_graph_viewer_idapython", + "idapython-cleanup", + "idapython-examples__bin_search", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__dump_extra_comments", + "idapython-examples__dump_flowchart", + "idapython-examples__dump_func_info", + "idapython-examples__lines_rendering", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "idapython-examples__list_stkvar_xrefs", + "idapython-ui_hooks__misc", + "idapython-user_graphs", + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + "idapython_hr-decompile", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds4", + "plugins-lucid", + "screenshots-misc__idapython_snippets", + ] + }, + "kernwin.get_synced_group": { + "return": [ + 'NoneType', + 'synced_group_t', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.get_view_renderer_type": { + "return": [ + 'int', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-misc4", + ] + }, + "kernwin.get_viewer_place_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-readsel2", + ] + }, + "kernwin.get_viewer_user_data": { + "return": [ + 'NoneType', + 'void *', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "idapython-examples__dump_selection", + "idapython-place", + ] + }, + "kernwin.get_widget_title": { + "return": [ + 'str', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "api-actions__attach_to_popup", + "api-actions__chooser_actions", + "api-actions__separators", + "desktops-misc__compat_old_window_titles", + "functions_window-misc__compat_find_widget", + "hexrays-navigate", + "idapython-api__kernwin_dbg", + "idapython-tform", + "idapython-tform_type", + "idapython-ui_hooks__get_custom_viewer_hint_embedded", + "idapython-ui_hooks__get_custom_viewer_hint_embedded_dbg", + "idapython-ui_hooks__misc", + "tracing-misc", + ] + }, + "kernwin.get_widget_type": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__attach_same_dynamic_action_twice_to_popup", + "api-actions__attach_to_chooser_popup", + "api-actions__attach_to_embedded_chooser_popup_python", + "console-actions", + "debugger-regviews_actions", + "idapython-examples__registers_context_menu", + "idapython-tform", + "idapython-tform_type", + "idapython_hr-examples__vds8_crash", + "plugins-lucid", + ] + }, + "kernwin.get_window_id": { + "return": [ + 'int', + ], + "tests": [ + "idapython-get_window_id", + ] + }, + "kernwin.hide_wait_box": { + "return": [ + 'NoneType', + ], + "tests": [ + "waitdialog-misc", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.is_chooser_widget": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-misc__ex_choose", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "squishutils-menus", + ] + }, + "kernwin.jobj_wrapper_t.get_dict": { + "return": [ + 'dict', + ], + "tests": [ + "idapython-ui_hooks__create_desktop_widget_qwidget", + "idapython-ui_hooks__create_desktop_widget_twidget", + ] + }, + "kernwin.jumpto": { + "return": [ + 'bool', + ], + "tests": [ + "grview-api", + "idapython-examples__bin_search", + "idapython-place", + "plugins-hexlight_2016", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + ] + }, + "kernwin.l_compare2": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.line_rendering_output_entries_refs_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__lines_rendering", + "plugins-lucid", + ] + }, + "kernwin.linearray_t.down": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.linearray_t.get_place": { + "return": [ + 'place_t', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.linearray_t.set_place": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__dump_selection", + ] + }, + "kernwin.load_custom_icon": { + "return": [ + 'int', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_python", + "idapython-example_add_menu_item", + ] + }, + "kernwin.lookup_key_code": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexlight_2016", + ] + }, + "kernwin.msg_clear": { + "return": [ + 'NoneType', + ], + "tests": [ + "mainmsglist-misc__API", + ] + }, + "kernwin.msg_get_lines": { + "return": [ + ['str', '...'], + ], + "tests": [ + "mainmsglist-misc__API", + ] + }, + "kernwin.msg_save": { + "return": [ + 'bool', + ], + "tests": [ + "mainmsglist-misc__API", + ] + }, + "kernwin.open_disasm_window": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-misc4", + ] + }, + "kernwin.open_form": { + "return": [ + 'int', + ], + "tests": [ + "idapython-askusingform__direct_call", + "idapython-askusingform__open_form", + "idapython-askusingform__open_form_minimal", + "idapython-plugin_form__open_at_WOPN_DP_BOTTOM", + ] + }, + "kernwin.open_navband_window": { + "return": [ + 'TWidget *', + ], + "tests": [ + "navbar-paint_over__horizontal", + "navbar-paint_over__vertical", + ] + }, + "kernwin.open_strings_window": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + ] + }, + "kernwin.place_t.as_enumplace_t": { + "return": [ + 'enumplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.place_t.as_idaplace_t": { + "return": [ + 'idaplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.place_t.as_simpleline_place_t": { + "return": [ + 'NoneType', + 'simpleline_place_t', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-examples__colorize_pseudocode_lines", + "idapython-place", + ] + }, + "kernwin.place_t.as_structplace_t": { + "return": [ + 'structplace_t', + ], + "tests": [ + "idapython-readsel2", + "structview-navigate2__custom_viewer_jump", + ] + }, + "kernwin.place_t.clone": { + "return": [ + 'place_t', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "idapython-place", + "plugins-hexlight_2016", + ] + }, + "kernwin.place_t.deserialize": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + ] + }, + "kernwin.place_t.generate": { + "return": [ + (['str', '...'], 'int', 'int', 'int'), + ], + "tests": [ + "idapython-place", + ] + }, + "kernwin.place_t.serialize": { + "return": [ + 'bytes', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + ] + }, + "kernwin.place_t.toea": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-navigate3__jump_from_incompatible_place", + "idapython-examples__lines_rendering", + "idapython-ui_hooks__misc", + ] + }, + "kernwin.place_t_as_idaplace_t": { + "return": [ + 'idaplace_t', + ], + "tests": [ + "idapython-examples__jump_next_comment", + ] + }, + "kernwin.place_t_as_simpleline_place_t": { + "return": [ + 'simpleline_place_t', + ], + "tests": [ + "plugins-hexlight_2016", + "plugins-lucid", + ] + }, + "kernwin.process_ui_action": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_dynamic_action_to_popup", + "api-actions__attach_dynamic_action_to_popup_lifecycle", + "api-actions__buggy_handler", + "api-actions__register_unregister", + "api-actions__register_unregister_lifecycle", + "api-actions__run_plugin_check_actions_disappeared", + "console-cli", + "idapython-examples__inject_command", + "idapython-idp_hooks2__coagulate_dref", + "idapython-uirequests", + "plugins-command_palette", + "telemetry-misc__basic", + ] + }, + "kernwin.quick_widget_commands_t.add": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + ] + }, + "kernwin.quick_widget_commands_t.populate_popup": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__chooser_actions", + "api-idapython_nocompat_695__ida_graph", + "api-idapython_nocompat_695__ida_kernwin", + "chooser-actions__action_destroys_chooser", + "chooser-actions__actions_availability", + "chooser-columns__20_columns", + "chooser-columns__hidden_by_default", + "chooser-columns__hide_all", + "chooser-columns__persistence_in_idb", + "chooser-columns__persistence_in_session", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-misc__ex_choose", + "gruser-misc__check_grouping_without_callback", + "grview-gruser", + "squishutils-menus", + ] + }, + "kernwin.read_range_selection": { + "return": [ + ('bool', 'int', 'int'), + ], + "tests": [ + "idapython-read_selection_64", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds13", + ] + }, + "kernwin.read_selection": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-readsel2", + ] + }, + "kernwin.refresh_chooser": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-misc__colorize_chooser", + "chooser-misc__refresh_and_check_selection", + "squishutils-menus", + ] + }, + "kernwin.refresh_custom_viewer": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__colorize_pseudocode_lines", + ] + }, + "kernwin.refresh_idaview": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-misc__refresh_and_check_selection", + ] + }, + "kernwin.refresh_idaview_anyway": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-nav_i18n__colors_flat", + "customidamemo-nav_i18n__colors_graph", + "customidamemo-nav_i18n__end_of_line_flat", + "customidamemo-nav_i18n__end_of_line_graph", + "customidamemo-nav_i18n__enter_on_address_after_large_chars", + "customidamemo-nav_i18n__move_left_right_on_large_chars", + "customidamemo-nav_i18n__move_right_to_the_end_of_line_flat", + "customidamemo-nav_i18n__move_word_left_right_on_large_chars", + "customidamemo-nav_i18n__set_cursor_by_mouse", + "customidamemo-nav_i18n__set_cursor_by_mouse_graph", + "grview-copyToClipboard__debugger", + "grview-copyToClipboard__debugger_noprefix_graph", + "grview-copyToClipboard__programmatic", + "grview-non_displayable_node", + "i18n-produce_file", + "idapython-examples__lines_rendering", + "idapython-misc2", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-switch_info", + "idapython_hr-decompile", + "idapython_hr-plugin_hexlit", + "idaview-misc__tryblocks", + "plugins-hexlight_2016", + "plugins-lucid", + "structs-xrefs", + ] + }, + "kernwin.refresh_navband": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + ] + }, + "kernwin.register_addon": { + "return": [ + 'int', + ], + "tests": [ + "plugins-command_palette", + "plugins-hexlight_2016", + ] + }, + "kernwin.register_timer": { + "return": [ + 'PyCapsule', + ], + "tests": [ + "gruser-stress", + "idapython-examples__register_timer", + "idapython-timers", + "idapython-waitdialog", + ] + }, + "kernwin.replace_wait_box": { + "return": [ + 'NoneType', + ], + "tests": [ + "waitdialog-misc", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.restore_database_snapshot": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "kernwin.set_dock_pos": { + "return": [ + 'bool', + ], + "tests": [ + "actions-misc", + "address_details-misc__desktop", + "bookmarks-basic__enums", + "bookmarks-basic__enums_add_refresh", + "bookmarks-basic__enums_add_to_folder", + "bookmarks-basic__enums_edit_through_tree", + "bookmarks-basic__enums_hints", + "bookmarks-basic__enums_open_and_jump", + "bookmarks-basic__enums_open_empty_then_add", + "bookmarks-basic__enums_selection_after_delete", + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__hexview_add_refresh", + "bookmarks-basic__hexview_add_to_folder", + "bookmarks-basic__hexview_edit_through_tree", + "bookmarks-basic__hexview_hints", + "bookmarks-basic__hexview_open_and_jump", + "bookmarks-basic__hexview_open_empty_then_add", + "bookmarks-basic__hexview_selection_after_delete", + "bookmarks-basic__idaview", + "bookmarks-basic__idaview_add_refresh", + "bookmarks-basic__idaview_add_to_folder", + "bookmarks-basic__idaview_adding_bookmark_opens_then_selects", + "bookmarks-basic__idaview_edit_through_tree", + "bookmarks-basic__idaview_hints", + "bookmarks-basic__idaview_jump_browse_bookmarks_no_focus_transfer", + "bookmarks-basic__idaview_open_and_jump", + "bookmarks-basic__idaview_open_empty_then_add", + "bookmarks-basic__idaview_selection_after_delete", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs", + "bookmarks-basic__structs_add_refresh", + "bookmarks-basic__structs_add_to_folder", + "bookmarks-basic__structs_edit_through_tree", + "bookmarks-basic__structs_hints", + "bookmarks-basic__structs_open_and_jump", + "bookmarks-basic__structs_open_empty_then_add", + "bookmarks-basic__structs_selection_after_delete", + "bookmarks-basic__structs_selection_after_delete_programmatically", + "bookmarks-misc__broken_bookmarks", + "bookmarks-misc__create_from_listing_while_in_folder", + "bookmarks-misc__delete_from_modal", + "bookmarks-misc__desktop", + "bookmarks-misc__jumping", + "bookmarks-misc__non_modal_lifecycle", + "bookmarks-misc__rendering", + "bookmarks-misc__same_desc", + "bookmarks-misc__toggle_from_arrows", + "chooser-columns__hide_columns", + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "chooser-misc2__reinit_after_search", + "chooser-misc2__sort_CHCOL_DEC", + "chooser-misc__colorize_chooser", + "chooser-misc__enter_and_double_click_call_callback", + "chooser-misc__selection_changed_called_and_colors_considered", + "chooser-search_and_keys", + "coloredview-basic", + "console-cli", + "customidamemo-sync", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoints", + "debugger-dwarf_shared_elf", + "debugger-misc4__bpt_hit_selects_bpt", + "debugger-regviews_actions", + "debugger-regviews_actions2__modify", + "debugger-regviews_colors", + "desktops-icons_and_titles__debugger", + "desktops-icons_and_titles__normal", + "desktops-load_save__save_default", + "desktops-misc__restore_positions", + "docks-close_persistent", + "docks-close_splitter_in_last_tab_position", + "docks-complex_docks", + "docks-dock_btns", + "docks-empty_areas", + "docks-floating_tabs", + "docks-hidden__hsplitter_in_floating_area", + "docks-hidden__hsplitter_in_hsplitter", + "docks-hidden__hsplitter_in_vsplitter", + "docks-hidden__tabs_in_floating_area", + "docks-hidden__tabs_in_hsplitter", + "docks-hidden__tabs_in_vsplitter", + "docks-hidden__vsplitter_in_floating_area", + "docks-hidden__vsplitter_in_hsplitter", + "docks-hidden__vsplitter_in_vsplitter", + "docks-hint_mode", + "docks-massive_docking", + "docks-misc2__re_tabify", + "docks-misc2__set_dock_pos_using_size_hint", + "docks-misc2__set_dock_pos_using_size_hint_toplevel", + "docks-root_widget_always_visible", + "docks-set_dock_pos_empty_dst", + "docks-show_existent", + "docks-sizes", + "docks-toggle_splitter_rightmost_dock__within_tab", + "docks-toggle_splitter_rightmost_dock__without_tab", + "docks-two_areas", + "eaview-navigate", + "eaview-patch_bytes__chooser_multi", + "eaview-sync", + "eaview-sync_pseudocode", + "eaview-sync_reg", + "fonts-basic__debugger_widgets", + "fonts-basic__regular_widgets", + "forms-massiveclose", + "frview-markPos", + "frview-scrollbar", + "functions_window-misc__hiding_or_unhiding_doesnt_trigger_refresh", + "gruser-misc__check_onactivate", + "gruser-misc__edge_hints", + "gruser-misc__node_hints", + "gruser-stress", + "grview-rendering", + "grview-testgraph", + "hexrays-navigate5__modify_struct_no_refresh", + "hexrays-refresh_crash__refresh", + "hexview-longbytes", + "hexview-stats_hidden", + "hexview-sync_base", + "hexview-sync_base_newfile", + "i18n-basic", + "idapython-cleanup", + "idapython-customidamemo", + "idapython-examples__registers_context_menu", + "idapython-get_window_id", + "idapython-tform_type", + "idapython-ui_hooks__create_desktop_widget_pluginform", + "idapython-ui_hooks__desktop_applied", + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__modified_vds13_twice", + "idaview-hide_unhide", + "lumina-view_and_apply_metadata", + "mainmsglist-misc__colors", + "mainmsglist-misc__double_click_addresses", + "mainmsglist-misc__double_click_addresses_space", + "mainmsglist-misc__double_click_ids", + "mainmsglist-misc__lines_shown_in_full", + "merge-misc__basic_frame", + "merge-misc__basic_idaview", + "merge-misc__navigate_regions_idaview", + "miniview-current_node", + "miniview-docks", + "miniview-node_buttons", + "miniview-pull_out", + "miniview-tracefile_node_colors", + "plugins-lucid", + "pyqt-tform2", + "screenshots-misc__idapython_snippets", + "scriptsnippets-debugger", + "scriptsnippets-inherit_cli", + "scriptsnippets-misc2__clone", + "scriptsnippets-misc2__clone_reload", + "scriptsnippets-misc2__line_separator", + "scriptsnippets-misc2__typing_text_doesnt_refresh_list", + "scriptsnippets-misc2__typing_text_doesnt_refresh_sorted_list", + "scriptsnippets-misc2__unicode", + "scriptsnippets-misc__debugger", + "segregs-misc__delete_refreshes_view", + "snippets-insert", + "squishutils-menus", + "squishutils-sizer", + "srcdbg-bitfields", + "srcdbg-dwarf_misc__gcc_bool", + "srcdbg-hints", + "srcdbg-idaq_locals", + "srcdbg-reload_dll", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__local_types_and_structures_delete", + "stddirtrees-misc__local_types_and_structures_delete_all", + "stddirtrees-misc__nav_actions_state_enums", + "stddirtrees-misc__nav_actions_state_structures", + "stddirtrees-misc__rebase_enums", + "stddirtrees-misc__rebase_functions", + "stddirtrees-misc__rebase_imports", + "stddirtrees-misc__rebase_names", + "stddirtrees-misc__rebase_structures", + "structview-jump", + "stylesheets-envvar", + "textarrows-misc__debugger_no_infinite_loop", + "textedit-misc__restored", + "tracing-misc2__no_interference", + "typeeditor-misc__cancel_edit", + "undo-misc__restored_on_desktop_reload", + "undo-misc__undo_history_reset_on_new_idb", + "undo-widgets__snippets", + "waitdialog-misc", + "watchlist-misc__update_on_rename", + ] + }, + "kernwin.set_highlight": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-highlight", + "customidamemo-highlight4__identifier_nocase", + "customidamemo-highlight4__register_nocase", + "customidamemo-highlight4__regular_nocase", + "grview-nodepropsUser", + ] + }, + "kernwin.set_nav_colorizer": { + "return": [ + 'NoneType', + 'dict', + ], + "tests": [ + "idapython-misc", + ] + }, + "kernwin.set_view_renderer_type": { + "return": [ + 'NoneType', + ], + "tests": [ + "grview-grida", + "idapython-api__kernwin", + "idapython-examples__wrap_idaview", + "idapython-misc4", + ] + }, + "kernwin.show_wait_box": { + "return": [ + 'NoneType', + ], + "tests": [ + "waitdialog-misc", + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.simplecustviewer_t.AddLine": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-custom_viewer", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__modified_vds13_twice", + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.ClearLines": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.Close": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-custom_viewer", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.Create": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__modified_vds13_twice", + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.EditLine": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetCurrentLine": { + "return": [ + 'str', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetLineNo": { + "return": [ + 'int', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetPos": { + "return": [ + ('int', 'int', 'int'), + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.GetWidget": { + "return": [ + 'NoneType', + 'TWidget *', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "plugins-lucid", + "training-test__AsmViewer_py", + ] + }, + "kernwin.simplecustviewer_t.Jump": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-lucid", + ] + }, + "kernwin.simplecustviewer_t.RefreshCurrent": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_viewer", + ] + }, + "kernwin.simplecustviewer_t.Show": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-examples__auto_instantiate_widget_plugin", + "idapython-examples__auto_instantiate_widget_plugin_desktop", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-examples__modified_vds13_twice", + "training-test__AsmViewer_py", + ] + }, + "kernwin.str2user": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__pro", + "idapython-examples__create_structure_programmatically", + "idapython-misc", + "idapython-switch_info", + "ppc-analysis_options", + "structs-asm_and_c", + "structs-create", + ] + }, + "kernwin.sync_source_t.get_register": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.sync_source_t.get_widget": { + "return": [ + 'TWidget *', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.sync_source_t.is_widget": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-api__kernwin_dbg", + ] + }, + "kernwin.take_database_snapshot": { + "return": [ + ('bool', 'NoneType'), + ], + "tests": [ + "idapython-snapshots", + ] + }, + "kernwin.twinpos_t.place": { + "return": [ + 'NoneType', + 'enumplace_t', + 'idaplace_t', + 'structplace_t', + ], + "tests": [ + "idapython-api__kernwin", + "idapython-readsel2", + ] + }, + "kernwin.twinpos_t.place_as_enumplace_t": { + "return": [ + 'enumplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.twinpos_t.place_as_idaplace_t": { + "return": [ + 'idaplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.twinpos_t.place_as_simpleline_place_t": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__kernwin", + ] + }, + "kernwin.twinpos_t.place_as_structplace_t": { + "return": [ + 'structplace_t', + ], + "tests": [ + "idapython-readsel2", + ] + }, + "kernwin.unregister_action": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__get_registered_actions", + "api-actions__register_unregister", + "api-actions__register_unregister_lifecycle", + "api-actions__run_plugin_check_actions_disappeared", + "api-actions__unregister_core_actions", + "chooser-misc__chooser_selection", + "chooser-misc__ex_choose", + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "debugger-regviews_actions", + "desktops-floating_dock__idapython_chooser", + "idapython-api__kernwin", + "idapython-custom_viewer", + "idapython-example_add_menu_item", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-examples__dump_extra_comments", + "idapython-examples__dump_selection", + "idapython-examples__jump_next_comment", + "idapython-examples__save_and_restore_listing_pos_enums", + "idapython-examples__save_and_restore_listing_pos_idaview", + "idapython-examples__save_and_restore_listing_pos_pseudocode", + "idapython-examples__save_and_restore_listing_pos_structs", + "idapython-examples__show_selected_using_get_chooser_data", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-ctree_visitor__force_all_calls", + "plugins-command_palette", + "plugins-hexrayspytools", + "plugins-lucid", + ] + }, + "kernwin.unregister_timer": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-timers", + "idapython-waitdialog", + ] + }, + "kernwin.update_action_checkable": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.update_action_checked": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__get_action_attributes", + ] + }, + "kernwin.update_action_icon": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_label": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_shortcut": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_tooltip": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.update_action_visibility": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__update_action", + ] + }, + "kernwin.user_cancelled": { + "return": [ + 'bool', + ], + "tests": [ + "waitdialog-misc2__loadfile_wait_dialog_t", + "waitdialog-misc2__loadfile_wait_dialog_t_with_decompilation", + "waitdialog-misc2__wait_dialog_t", + "waitdialog-misc2__wait_dialog_t_with_decompilation", + ] + }, + "kernwin.warning": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-actions__register_with_hotkey", + "api-actions__register_with_shortcut", + "idapython_hr-examples__vds12", + "idapython_hr-examples__vds13", + "idapython_hr-examples__vds21", + "squishutils-shortcuts", + ] + }, + "lines.COLSTR": { + "return": [ + 'str', + ], + "tests": [ + "customidamemo-search", + "customidamemo-search_all__custom_viewer", + "idapython-custom_viewer", + "idapython-examples__custview", + "idapython-examples__custview_nodelref", + "idapython-idp_hooks2__gen_regvar_def", + "idapython-ui_hooks__create_desktop_widget_twidget", + "idapython_hr-hexrays_hooks__create_hint2", + "training-test__AsmViewer_py", + ] + }, + "lines.add_sourcefile": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks2__gen_src_file_lnnum", + ] + }, + "lines.del_extra_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-extra_cmt", + ] + }, + "lines.generate_disasm_line": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__lines", + "idapython-custom_data", + "idapython-custom_data3", + "idapython-examples__automatic_steps", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-processor_module_mem", + "idapython_hr-examples__vds12", + "idapython_hr-hexrays_hooks__create_hint2", + "training-test__FindInstructions_py", + ] + }, + "lines.generate_disassembly": { + "return": [ + ('int', ['str', '...']), + ], + "tests": [ + "idapython-examples__jump_next_comment", + ] + }, + "lines.get_extra_cmt": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-examples__dump_extra_comments", + "idapython-extra_cmt", + "idapython-idb_hooks", + ] + }, + "lines.get_first_free_extra_cmtidx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-extra_cmt", + ] + }, + "lines.set_user_defined_prefix": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__install_user_defined_prefix_compat", + ] + }, + "lines.tag_advance": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds6", + ] + }, + "lines.tag_remove": { + "return": [ + 'str', + ], + "tests": [ + "api-idapython__tag_remove", + "hexrays-misc2", + "idapython-custom_data", + "idapython-custom_data3", + "idapython-custom_fixup", + "idapython-examples__automatic_steps", + "idapython-examples__dump_selection", + "idapython-misc", + "idapython-place", + "idapython-processor_module_mem", + "idapython_hr-decompile", + "idapython_hr-examples__vds1", + "idapython_hr-examples__vds17", + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + "idapython_hr-plugin_hexlit", + "plugins-hexlight_2016", + "plugins-hexrayspytools", + "plugins-lucid", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + "training-test__FindInstructions_py", + "tryblocks__big_blob", + ] + }, + "lines.tag_skipcodes": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-examples__vds6", + ] + }, + "lines.tag_strlen": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython__tag_strlen", + "idapython-examples__jump_next_comment", + "idapython-misc", + ] + }, + "lines.update_extra_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-extra_cmt", + "idapython-idb_hooks", + ] + }, + "loader.base2file": { + "return": [ + 'int', + ], + "tests": [ + "idapython-base2file", + "idapython-savefile", + ] + }, + "loader.build_snapshot_tree": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-snapshots", + ] + }, + "loader.extract_module_from_archive": { + "return": [ + ('NoneType', 'NoneType'), + ('str', 'str'), + ], + "tests": [ + "idapython-api__loader", + ] + }, + "loader.file2base": { + "return": [ + 'int', + ], + "tests": [ + "idapython-base2file", + "idapython-misc3", + ] + }, + "loader.gen_file": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__produce_lst_file", + ] + }, + "loader.get_file_type_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "loader.get_path": { + "return": [ + 'str', + ], + "tests": [ + "i18n-files", + "idapython-examples__produce_c_file", + "idapython-examples__produce_lst_file", + "idapython-misc", + ] + }, + "loader.load_and_run_plugin": { + "return": [ + 'bool', + ], + "tests": [ + "api-actions__attach_to_embedded_chooser_popup_cpp_plugin", + "api-actions__run_plugin_check_actions_disappeared", + "customidamemo-sync", + "forms-open", + "grview-gruser_centernode", + "grview-testgraph", + "i18n-basic", + "idapython-misc5__test_evalpython", + "idapython-plugin__misc", + "idapython-plugin_alternative_path__load_and_run_plugin", + "idapython-ui_hooks__misc", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds11", + "idapython_hr-examples__vds19", + "objc-deleted_segms", + "plugins-comhelper__activate_plugin", + "plugins-comhelper__plugin_after_reload", + "plugins-interr_1827", + "plugins-navcolor__72", + "plugins-navcolor__current", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "loader.load_plugin": { + "return": [ + 'NoneType', + 'PyCapsule', + ], + "tests": [ + "dbg_restore_snapshot", + "idapython-misc2", + "idapython-plugin_alternative_path__load_plugin", + ] + }, + "loader.save_database": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "lumina.calc_func_metadata": { + "return": [ + ('int', 'bytes'), + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.create_simple_idb_diff_handler": { + "return": [ + 'simple_idb_diff_handler_t', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.diff_metadata": { + "return": [ + 'bool', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.extract_frame_desc_from_metadata": { + "return": [ + 'NoneType', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.extract_insn_cmts_from_metadata": { + "return": [ + 'NoneType', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.extract_type_from_metadata": { + "return": [ + 'bool', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.get_server_connection": { + "return": [ + 'lumina_client_t', + ], + "tests": [ + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "lumina.lumina_client_t.push_md": { + "return": [ + 'bool', + ], + "tests": [ + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "lumina.score_metadata": { + "return": [ + 'int', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "lumina.split_metadata": { + "return": [ + 'dict', + ], + "tests": [ + "lumina-view_and_apply_metadata", + ] + }, + "moves.bookmarks_t.erase": { + "return": [ + 'bool', + ], + "tests": [ + "bookmarks-basic__enums_selection_after_delete_programmatically", + "bookmarks-basic__idaview_selection_after_delete_programmatically", + "bookmarks-basic__structs_selection_after_delete_programmatically", + ] + }, + "moves.lochist_entry_t.acquire_place": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "structview-navigate2__custom_viewer_jump", + ] + }, + "moves.lochist_entry_t.place": { + "return": [ + 'place_t', + ], + "tests": [ + "customidamemo-navigate3__jump_from_incompatible_place", + "idapython-examples__colorize_pseudocode_lines", + "idapython-examples__jump_next_comment", + "structview-navigate2__custom_viewer_jump", + ] + }, + "moves.lochist_entry_t.renderer_info": { + "return": [ + 'renderer_info_t', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__structs", + "gruser-misc__get_graph_viewer_idapython", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__jump_next_comment", + "idapython-user_graphs", + ] + }, + "moves.lochist_entry_t.set_place": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-navigate3__enums", + "customidamemo-navigate3__jump_from_incompatible_place", + "customidamemo-navigate3__structs", + "idapython-examples__jump_next_comment", + ] + }, + "nalt.add_encoding": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-nav_i18n__colors_flat", + "customidamemo-nav_i18n__colors_graph", + "customidamemo-nav_i18n__end_of_line_flat", + "customidamemo-nav_i18n__end_of_line_graph", + "customidamemo-nav_i18n__enter_on_address_after_large_chars", + "customidamemo-nav_i18n__move_left_right_on_large_chars", + "customidamemo-nav_i18n__move_right_to_the_end_of_line_flat", + "customidamemo-nav_i18n__move_word_left_right_on_large_chars", + "customidamemo-nav_i18n__set_cursor_by_mouse", + "customidamemo-nav_i18n__set_cursor_by_mouse_graph", + "customidamemo-search_bin__patgen_all", + "customidamemo-search_bin__patgen_cp1251", + "customidamemo-search_bin__patgen_defbpu", + "customidamemo-search_bin__patgen_utf32be", + "customidamemo-search_bin__patgen_utf8", + "customidamemo-search_bin__persistedinreg", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "hexview-basic", + "hexview-edit2__outside_of_token", + "hexview-edit2__set_value_ff_to_undefined_bytes", + "hexview-edit2__text_eol_click_next_line_bytes", + "hexview-edit2__undo", + "hexview-edit2__undo_partial_edit", + "i18n-produce_file", + "i18n-strlits__set_default_strtype_to_specific_termchar", + "strings-misc__min_len", + "strlits-borland", + ] + }, + "nalt.clr_abits": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "nalt.del_encoding": { + "return": [ + 'bool', + ], + "tests": [ + "i18n-strlits__delete_encoding", + "i18n-strlits__delete_encoding_using_idapython", + ] + }, + "nalt.del_switch_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-switch_info", + ] + }, + "nalt.ea2node": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "nalt.enum_import_names": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_imports", + "plugins-hexrayspytools", + "training-test__ImpRef_py", + ] + }, + "nalt.get_aflags": { + "return": [ + 'int', + ], + "tests": [ + "dwarf-load_options_fprots", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "nalt.get_alignment": { + "return": [ + 'int', + ], + "tests": [ + "idapython-alignment", + ] + }, + "nalt.get_archive_path": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_default_encoding_idx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__bin_search", + "idapython-examples__operand_changed", + ] + }, + "nalt.get_encoding_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "nalt.get_ida_notepad_text": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_imagebase": { + "return": [ + 'int', + ], + "tests": [ + "eaview-navigate_rebase", + "plugins-hexrayspytools", + ] + }, + "nalt.get_import_module_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__list_imports", + "idapython-import_modules", + "plugins-hexrayspytools", + "training-test__ImpRef_py", + ] + }, + "nalt.get_import_module_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_imports", + "idapython-import_modules", + "plugins-hexrayspytools", + "training-test__ImpRef_py", + ] + }, + "nalt.get_initial_ida_version": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_initial_idb_version": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_initial_version": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_item_color": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__colorize_disassembly", + ] + }, + "nalt.get_loader_format_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_op_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds21", + ] + }, + "nalt.get_refinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "nalt.get_srcdbg_paths": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_srcdbg_undesired_paths": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_str_encoding_idx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "nalt.get_strid": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.get_strtype_bpu": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__operand_changed", + ] + }, + "nalt.get_switch_info": { + "return": [ + 'NoneType', + 'switch_info_t', + ], + "tests": [ + "idapython-calc_switch_cases", + "idapython-processor_module_mem", + "idapython-switch_info", + ] + }, + "nalt.get_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "debugger-dwarf_shared_elf", + "idapython-funcs", + "idapython-tinfo_func", + ] + }, + "nalt.make_str_type": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "i18n-strlits__set_default_strtype_to_specific_termchar", + ] + }, + "nalt.retrieve_input_file_md5": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.retrieve_input_file_sha256": { + "return": [ + 'bytes', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_abits": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-execute_sync", + ] + }, + "nalt.set_alignment": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-alignment", + ] + }, + "nalt.set_archive_path": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_default_encoding_idx": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-nav_i18n__colors_flat", + "customidamemo-nav_i18n__colors_graph", + "customidamemo-nav_i18n__end_of_line_flat", + "customidamemo-nav_i18n__end_of_line_graph", + "customidamemo-nav_i18n__enter_on_address_after_large_chars", + "customidamemo-nav_i18n__move_left_right_on_large_chars", + "customidamemo-nav_i18n__move_right_to_the_end_of_line_flat", + "customidamemo-nav_i18n__move_word_left_right_on_large_chars", + "customidamemo-nav_i18n__set_cursor_by_mouse", + "customidamemo-nav_i18n__set_cursor_by_mouse_graph", + "hexview-basic", + "hexview-edit2__outside_of_token", + "hexview-edit2__set_value_ff_to_undefined_bytes", + "hexview-edit2__text_eol_click_next_line_bytes", + "hexview-edit2__undo", + "hexview-edit2__undo_partial_edit", + "i18n-produce_file", + "strings-misc__min_len", + "strlits-borland", + ] + }, + "nalt.set_ida_notepad_text": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_item_color": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__colorize_disassembly", + "themes-misc__produce_html", + "training-test__color_to_py", + ] + }, + "nalt.set_loader_format_name": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_op_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + ] + }, + "nalt.set_source_linnum": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__gen_src_file_lnnum", + ] + }, + "nalt.set_srcdbg_paths": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_srcdbg_undesired_paths": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__nalt", + ] + }, + "nalt.set_switch_info": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-switch_info", + ] + }, + "nalt.set_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "name.NearestName.find": { + "return": [ + 'NoneType', + ], + "tests": [ + "training-test__CallStackWalk_py", + ] + }, + "name.NearestName.update": { + "return": [ + 'NoneType', + ], + "tests": [ + "training-test__CallStackWalk_py", + ] + }, + "name.append_struct_fields": { + "return": [ + 'int', + ('str', 'int'), + ], + "tests": [ + "structs-members", + ] + }, + "name.del_global_name": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "name.del_local_name": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "name.demangle_name": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-idp_hooks", + "idapython-names__compat", + "idapython-names__ida68", + "plugins-hexrayspytools", + ] + }, + "name.extract_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__compat", + ] + }, + "name.get_colored_demangled_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_colored_long_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_colored_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_colored_short_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_debug_names": { + "return": [ + 'NoneType', + 'dict', + ], + "tests": [ + "idapython-examples__show_debug_names", + "idapython-modules", + "training-test__CallStackWalk_py", + ] + }, + "name.get_demangled_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__compat", + "idapython-names__ida68", + ] + }, + "name.get_ea_name": { + "return": [ + 'str', + ], + "tests": [ + "grview-jumpto_xref_from_other_tab", + "idapython-appcall_manual__delayed_cleanup", + "idapython-appcall_manual__no_cleanup", + "idapython-appcall_manual__normal", + "idapython-appcall_manual__single_stmt", + "idapython-appcall_manual__single_stmt_delayed_cleanup", + "idapython-appcall_manual__single_stmt_no_cleanup", + "idapython-names__compat", + "idapython-names__ida68", + "xrefview-misc__basic", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + "xrefview-misc__restore_widget", + ] + }, + "name.get_long_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.get_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + "mainmsglist-misc__double_click_ids", + ] + }, + "name.get_name_ea": { + "return": [ + 'int', + ], + "tests": [ + "grview-jumpto_xref", + "hexrays-navigate5__open_pseudocode_compat_new_window", + "hexrays-navigate5__open_pseudocode_compat_reuse", + "hexrays-navigate5__open_pseudocode_compat_reuse_active", + "hexrays-navigate5__open_pseudocode_new_window", + "hexrays-navigate5__open_pseudocode_reuse", + "hexrays-navigate5__open_pseudocode_reuse_active", + "idapython-appcall", + "idapython-breakpoints", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-misc3", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__cfunc_t", + "idapython_hr-base_classes2__mbl_graph_t", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__vc_printer_t", + "idapython_hr-base_classes2__vd_printer_t", + "idapython_hr-examples__vds13", + "training-test__find_mgen_key_py", + ] + }, + "name.get_name_value": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-names__get_name_value", + ] + }, + "name.get_nice_colored_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + ] + }, + "name.get_nlist_ea": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.get_nlist_name": { + "return": [ + 'str', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.get_nlist_size": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.get_short_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + "plugins-hexrayspytools", + ] + }, + "name.get_visible_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-names__ida68", + ] + }, + "name.is_ident": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "name.set_cp_validity": { + "return": [ + 'NoneType', + ], + "tests": [ + "customidamemo-i18n", + "exportdata-basic", + "mainmsglist-misc__double_click_addresses_space", + ] + }, + "name.set_name": { + "return": [ + 'bool', + ], + "tests": [ + "undo-widgets__recent_scripts", + ] + }, + "netnode.exist": { + "return": [ + 'bool', + ], + "tests": [ + "prview-paths", + ] + }, + "netnode.netnode.altdel": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + ] + }, + "netnode.netnode.altfirst": { + "return": [ + 'int', + ], + "tests": [ + "prview-paths", + "scriptsnippets-undo__opening_no_undo_point", + "scriptsnippets-undo__undo_after_closing", + ] + }, + "netnode.netnode.altlast": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "netnode.netnode.altnext": { + "return": [ + 'int', + ], + "tests": [ + "prview-paths", + ] + }, + "netnode.netnode.altset": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + ] + }, + "netnode.netnode.altshift": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "netnode.netnode.altval": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "idapython-misc2", + "scriptsnippets-misc__load_dups", + ] + }, + "netnode.netnode.charval_ea": { + "return": [ + 'int', + ], + "tests": [ + "hexrays-toggle", + ] + }, + "netnode.netnode.get_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-netnode", + "plugins-hexrayspytools", + "prview-paths", + ] + }, + "netnode.netnode.getblob": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-netnode", + "prview-paths", + ] + }, + "netnode.netnode.getclob": { + "return": [ + 'str', + ], + "tests": [ + "notepad-misc", + ] + }, + "netnode.netnode.index": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "netnode.netnode.kill": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-netnode", + ] + }, + "netnode.netnode.setblob": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-netnode", + "idapython_hr-examples__vds3", + "notepad-misc", + ] + }, + "netnode.netnode.supset": { + "return": [ + 'bool', + ], + "tests": [ + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__no_tree", + "chooser-dirtree__rename_folder_full_tree", + "idapython-netnode", + "plugins-hexrayspytools", + "scriptsnippets-misc__load_dups", + ] + }, + "netnode.netnode.supshift": { + "return": [ + 'int', + ], + "tests": [ + "chooser-dirtree__delete_folder", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__no_tree", + ] + }, + "netnode.netnode.supstr": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "chooser-dirtree__basic", + "chooser-dirtree__complex_filters_folders_only_root", + "chooser-dirtree__complex_filters_full_tree_root", + "chooser-dirtree__complex_filters_no_tree_root", + "chooser-dirtree__create_folder_then_insert_then_undo", + "chooser-dirtree__create_folder_with_items", + "chooser-dirtree__delete_folder", + "chooser-dirtree__drag_drop_folders", + "chooser-dirtree__filtering_folders_only", + "chooser-dirtree__filtering_full_tree", + "chooser-dirtree__filtering_no_tree", + "chooser-dirtree__folders_only", + "chooser-dirtree__full_tree", + "chooser-dirtree__full_tree_indices", + "chooser-dirtree__insert_directly_in_folder_folders_only", + "chooser-dirtree__insert_directly_in_folder_full_tree", + "chooser-dirtree__modal", + "chooser-dirtree__move_then_undo", + "chooser-dirtree__no_tree", + "chooser-dirtree__programmatically_add_folder", + "chooser-dirtree__rename_folder_folders_only", + "chooser-dirtree__rename_folder_full_tree", + "chooser-dirtree__sorting_across_modes_from_folders_only", + "chooser-dirtree__sorting_across_modes_from_full_tree", + "chooser-dirtree__sorting_across_modes_from_no_tree", + "chooser-dirtree__sorting_folders_only", + "chooser-dirtree__sorting_full_tree", + "chooser-dirtree__sorting_no_tree", + "chooser-dirtree__toggle_columns_folders_only", + "chooser-dirtree__toggle_columns_full_tree", + "chooser-dirtree__toggle_columns_no_tree", + "chooser-dirtree__unavailable_actions_when_no_CH_CAN_EDIT", + "chooser-dirtree__widths_across_modes_from_folders_only", + "chooser-dirtree__widths_across_modes_from_full_tree", + "chooser-dirtree__widths_across_modes_from_no_tree", + "idapython-netnode", + "scriptsnippets-misc__load_dups", + ] + }, + "netnode.netnode.supval": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-netnode", + ] + }, + "offset.get_offset_expr": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-custom_fixup", + ] + }, + "offset.op_plain_offset": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "pro.boolvec_t.at": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.back": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.front": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.boolvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.ea_pointer.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__calc_step_over", + "idapython-idp_hooks2__coagulate_dref", + ] + }, + "pro.ea_pointer.cast": { + "return": [ + 'ea_t *', + ], + "tests": [ + "idapython-misc4", + ] + }, + "pro.ea_pointer.frompointer": { + "return": [ + 'ea_pointer', + ], + "tests": [ + "idapython-idp_hooks2__calc_step_over", + "idapython-idp_hooks2__coagulate_dref", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "pro.ea_pointer.value": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-misc4", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "pro.eavec_t.append": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "pro.eavec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.eavec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.eavec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.eavec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + "idapython-misc4", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "pro.eavec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-examples__vds12", + ] + }, + "pro.int64vec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int64vec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.int_pointer.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__func_bounds", + "idapython-idp_hooks2__gen_map_file", + "idapython-idp_hooks2__get_frame_retsize", + "idapython-idp_hooks2__is_sp_based", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython_hr-ea", + ] + }, + "pro.int_pointer.frompointer": { + "return": [ + 'int_pointer', + ], + "tests": [ + "idapython-idp_hooks2__func_bounds", + "idapython-idp_hooks2__gen_map_file", + "idapython-idp_hooks2__get_frame_retsize", + "idapython-idp_hooks2__is_sp_based", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "pro.int_pointer.value": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython_hr-ea", + ] + }, + "pro.intvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.intvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.intvec_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__vds17", + ] + }, + "pro.intvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.intvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "pro.intvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__block_chain_t_64", + ] + }, + "pro.longlongvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.longlongvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.str2user": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-api__pro", + "idapython_hr-examples__vds5", + ] + }, + "pro.strvec_t.push_back": { + "return": [ + 'simpleline_t', + ], + "tests": [ + "idapython-misc", + ] + }, + "pro.strvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "plugins-lucid", + ] + }, + "pro.svalvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.svalvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.svalvec_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "pro.svalvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.svalvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "plugins-pyhexraysdeob__big_func", + "plugins-pyhexraysdeob__default", + ] + }, + "pro.svalvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.tid_array.cast": { + "return": [ + 'ea_t *', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__idc", + ] + }, + "pro.uint64vec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uint64vec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uint64vec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.uint64vec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uint64vec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uintvec_t.append": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "pro.uintvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + ] + }, + "pro.uintvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + ] + }, + "pro.uintvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.uintvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + "idapython-misc4", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "pro.uintvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-examples__vds12", + ] + }, + "pro.ulonglongvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.ulonglongvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.ulonglongvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.ulonglongvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.ulonglongvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uvalvec_t.append": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-examples__vds12", + ] + }, + "pro.uvalvec_t.at": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uvalvec_t.back": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + ] + }, + "pro.uvalvec_t.front": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + ] + }, + "pro.uvalvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + "idapython-misc4", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "lumina-update__do_not_override", + "lumina-update__merge", + "lumina-update__override", + "lumina-update__override_if_better", + "lumina-update__override_leaves_addr_untouched", + ] + }, + "pro.uvalvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-qvector__ea32", + "idapython-qvector__ea64", + "idapython_hr-base_classes2__casm_t", + "idapython_hr-base_classes2__casm_t_64", + "idapython_hr-examples__vds12", + ] + }, + "problems.forget_problem": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc", + ] + }, + "problems.get_problem": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_problems", + ] + }, + "problems.get_problem_desc": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-misc", + ] + }, + "problems.get_problem_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__list_problems", + ] + }, + "problems.remember_problem": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-misc", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "range.array_of_rangesets.push_back": { + "return": [ + 'rangeset_t', + ], + "tests": [ + "idapython-misc4", + ] + }, + "range.range_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__func_chooser_coloring", + ] + }, + "range.rangeset_t.add": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-misc4", + ] + }, + "range.rangeset_t.getrange": { + "return": [ + 'range_t', + ], + "tests": [ + "idapython-misc4", + "idapython_hr-base_classes", + ] + }, + "range.rangeset_t.nranges": { + "return": [ + 'int', + ], + "tests": [ + "idapython_hr-base_classes", + ] + }, + "range.rangevec_base_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython_hr-base_classes2__block_chain_t_64", + "idapython_hr-examples__modified_vds13_twice", + "idapython_hr-examples__vds13", + ] + }, + "registry.reg_data_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_exists": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_binary": { + "return": [ + 'NoneType', + 'bytes', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_int": { + "return": [ + 'int', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_string": { + "return": [ + 'str', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_read_strlist": { + "return": [ + ['str', '...'], + ], + "tests": [ + "registry-misc__strlist", + ] + }, + "registry.reg_subkey_subkeys": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_subkey_values": { + "return": [ + ['str', '...'], + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_update_filestrlist": { + "return": [ + 'NoneType', + ], + "tests": [ + "chooser-recent_scripts", + ] + }, + "registry.reg_update_strlist": { + "return": [ + 'NoneType', + ], + "tests": [ + "registry-misc__strlist", + ] + }, + "registry.reg_write_binary": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_write_int": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registry", + ] + }, + "registry.reg_write_string": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-registry", + ] + }, + "search.find_binary": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__search", + "training-test__FindInstructions_py", + ] + }, + "search.find_text": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search2__idaview_across_hidden_function", + ] + }, + "segment.add_segm": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + ] + }, + "segment.add_segm_ex": { + "return": [ + 'bool', + ], + "tests": [ + "customidamemo-search_bin__search1_sparse", + "customidamemo-search_bin__search1_varray", + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "idapython-base2file", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "screenshots-misc__proc_dsp56k", + ] + }, + "segment.del_segm": { + "return": [ + 'bool', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + "segs-manip", + "segs-offset_xrefs", + ] + }, + "segment.get_defsr": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + ] + }, + "segment.get_first_seg": { + "return": [ + 'segment_t', + ], + "tests": [ + "training-test__FindInstructions_py", + ] + }, + "segment.get_segm_by_name": { + "return": [ + 'segment_t', + ], + "tests": [ + "customidamemo-search_bin__search1_dbg", + ] + }, + "segment.get_segm_class": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "segment.get_segm_name": { + "return": [ + 'str', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "idapython-breakpoints", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "navbar-api", + ] + }, + "segment.get_segm_qty": { + "return": [ + 'int', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "navbar-api", + ] + }, + "segment.get_selector_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc3", + ] + }, + "segment.get_visible_segm_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "segment.getn_selector": { + "return": [ + ('bool', 'int', 'int'), + ], + "tests": [ + "idapython-misc3", + ] + }, + "segment.getnseg": { + "return": [ + 'segment_t', + ], + "tests": [ + "customidamemo-search_bin__searchall_all", + "customidamemo-search_bin__searchall_cp1251", + "customidamemo-search_bin__searchall_defbpu", + "customidamemo-search_bin__searchall_utf32be", + "customidamemo-search_bin__searchall_utf8", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "navbar-api", + ] + }, + "segment.getseg": { + "return": [ + 'NoneType', + 'segment_t', + ], + "tests": [ + "actions-flush_buffers_doesnt_add_entry_in_menu", + "address_details-misc__strings", + "api-idapython_nocompat_695__idc", + "areas-killcb", + "areas-srareas", + "bench-autoanalysis__ntoskrnl72", + "bench-autoanalysis__pc_dwarfdump", + "bptgrp-multiline", + "bptgrp-remove_from_group", + "coloredview-basic", + "config-idausr_subdirs", + "customidamemo-switch_views", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "debugger-breakpoint_llcond", + "debugger-breakpoints_newfile", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida32_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin32", + "debugger-dbgsrv_easize__linux_dbgsrv64_ida64_bin64", + "debugger-set_as_default", + "desktops-66_compat_geometry", + "desktops-load_save__save_default", + "desktops-misc__batch_new_file", + "desktops-misc__batch_new_file_show_sp", + "desktops-newfile__cli_asmex", + "desktops-newfile__java_sign2", + "desktops-newfile__pc_dwarf_arrays", + "desktops-newfile__tms320c6_coff2", + "dwarf-load_options", + "dwarf-load_options_fprots", + "dwarf-load_options_glob_func_types", + "enums-bitfields", + "frview-colors", + "frview-contextmenu", + "frview-cursor", + "frview-hints", + "frview-history_initial", + "frview-hscrolling", + "frview-resize", + "grview-blinking_edges", + "grview-contextmenu", + "grview-fatGraph", + "grview-flowchart_update", + "grview-line_prefixes", + "grview-mouseOver", + "grview-nodepropsUser", + "grview-on_view_click", + "grview-on_view_keydown", + "grview-overview", + "grview-stats", + "grview-stats2", + "grview-statsFindItemAt", + "hexrays-fuzzy_sp", + "hexrays-misc3__send_idb_newfile", + "hexrays-navigate2", + "hexview-longbytes2", + "hexview-sync_base_newfile", + "i18n-broken_config", + "i18n-broken_config_bad_TypeNameChars", + "idapython-api__segment", + "idapython-bfld", + "idapython-breakpoints", + "idapython-examples__colorize_disassembly", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "idapython-examples__print_call_stack_linux32", + "idapython-examples__print_call_stack_linux64", + "idapython-interrupt_long_op", + "idapython-misc", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "idapython-read_selection_64", + "idapython-registers__linux", + "idapython-registers__linux_x64", + "idapython-savefile", + "idapython_hr-examples__vds8_crash", + "idapython_hr-examples__vds8_crash_minimal_no_install", + "imports-load_other_file", + "loadfile-archive_locked_idb", + "loadfile-binary_no_entry_point", + "loadfile-dyld_shared_cache", + "loadfile-dyld_shared_cache2", + "loadfile-misc__arm_elf", + "loadfile-misc__armb_elf", + "loadfile-misc__conflicting_procs", + "loadfile-misc__dex_conflicting_procs", + "loadfile-misc__dialog_access", + "loadfile-misc__files_history", + "loadfile-misc__filtered_tree_hover", + "loadfile-misc__libso_inside_zip", + "loadfile-misc__ppc_elf", + "loadfile-misc__ppcl_elf", + "loadfile-misc__reload_input_file", + "loadfile-misc__screen_center", + "loadfile-misc__tree_context_menu", + "loadfile-nonnative_filedialogs", + "lumina-misc__armb", + "miniview-tracefile_node_colors", + "navbar-api", + "navbar-hints", + "prview-contextmenu", + "prview-quit_ida", + "prview-stats", + "running_initial_aa-misc__chooser_quick_filtering", + "screenshots-misc__idapython_snippets", + "screenshots-misc__proc_51xa", + "screenshots-misc__proc_6502", + "screenshots-misc__proc_6803", + "screenshots-misc__proc_68040_amiga", + "screenshots-misc__proc_6805", + "screenshots-misc__proc_6808", + "screenshots-misc__proc_6809_os9_flex", + "screenshots-misc__proc_6809_os9_obj", + "screenshots-misc__proc_6811", + "screenshots-misc__proc_68hc12", + "screenshots-misc__proc_68hc16", + "screenshots-misc__proc_68k_amiga", + "screenshots-misc__proc_68k_pilot", + "screenshots-misc__proc_68k_unix_coff", + "screenshots-misc__proc_78k0s", + "screenshots-misc__proc_80196", + "screenshots-misc__proc_8051", + "screenshots-misc__proc_ad218x_voc_code", + "screenshots-misc__proc_alpha_nt_coff", + "screenshots-misc__proc_alpha_unix_elf", + "screenshots-misc__proc_android_arm", + "screenshots-misc__proc_arc_7400_outer", + "screenshots-misc__proc_arm_epoc_app", + "screenshots-misc__proc_arm_epoc_pe", + "screenshots-misc__proc_arm_epoc_rom", + "screenshots-misc__proc_arm_epoc_sis", + "screenshots-misc__proc_arm_ios_lock_unlock", + "screenshots-misc__proc_arm_ios_objc", + "screenshots-misc__proc_arm_ios_objc_vars", + "screenshots-misc__proc_arm_ios_pit", + "screenshots-misc__proc_arm_ios_start", + "screenshots-misc__proc_arm_ios_switch", + "screenshots-misc__proc_arm_ios_symbol_info", + "screenshots-misc__proc_arm_ios_write", + "screenshots-misc__proc_arm_linux_elf", + "screenshots-misc__proc_arm_sdk_aof", + "screenshots-misc__proc_arm_wince_coff", + "screenshots-misc__proc_avr", + "screenshots-misc__proc_c166", + "screenshots-misc__proc_c166_elf", + "screenshots-misc__proc_c39_v90", + "screenshots-misc__proc_cli_vb", + "screenshots-misc__proc_cr16_dect11", + "screenshots-misc__proc_dalvik", + "screenshots-misc__proc_dotnet", + "screenshots-misc__proc_dsp56k", + "screenshots-misc__proc_fr_hello", + "screenshots-misc__proc_gameboy", + "screenshots-misc__proc_h8300_coff", + "screenshots-misc__proc_h8300s_coff", + "screenshots-misc__proc_h8500", + "screenshots-misc__proc_hppa_hpux_som", + "screenshots-misc__proc_i51", + "screenshots-misc__proc_i860", + "screenshots-misc__proc_i960", + "screenshots-misc__proc_ia64", + "screenshots-misc__proc_java", + "screenshots-misc__proc_kr1878", + "screenshots-misc__proc_m16c", + "screenshots-misc__proc_m32r_elf", + "screenshots-misc__proc_m740", + "screenshots-misc__proc_m7700", + "screenshots-misc__proc_m7900", + "screenshots-misc__proc_mips_nintendo_n64", + "screenshots-misc__proc_mips_sony_bin_r5900", + "screenshots-misc__proc_mips_sony_elf", + "screenshots-misc__proc_mips_sony_psx", + "screenshots-misc__proc_mips_unix_coff", + "screenshots-misc__proc_mips_unix_elf", + "screenshots-misc__proc_mips_wince_pe", + "screenshots-misc__proc_mips_wince_pe2", + "screenshots-misc__proc_mn102", + "screenshots-misc__proc_oakdsp", + "screenshots-misc__proc_pc_elf", + "screenshots-misc__proc_pc_geos_drv", + "screenshots-misc__proc_pc_geos_lib", + "screenshots-misc__proc_pc_gnu_coff", + "screenshots-misc__proc_pc_lx", + "screenshots-misc__proc_pc_nlm", + "screenshots-misc__proc_pc_qnx", + "screenshots-misc__proc_pc_watcom", + "screenshots-misc__proc_pc_win_omf", + "screenshots-misc__proc_pc_win_pe", + "screenshots-misc__proc_pc_win_xvd", + "screenshots-misc__proc_pdp11_rt11_sav", + "screenshots-misc__proc_pic", + "screenshots-misc__proc_pic12xx", + "screenshots-misc__proc_ppc_aix_ecoff", + "screenshots-misc__proc_ppc_linux_elf", + "screenshots-misc__proc_ppc_macos_X", + "screenshots-misc__proc_ppc_macos_pef", + "screenshots-misc__proc_ppc_nt_pe", + "screenshots-misc__proc_sh3_wince_coff", + "screenshots-misc__proc_sh3_wince_pe", + "screenshots-misc__proc_sh4_elf", + "screenshots-misc__proc_sh4_wince_pe", + "screenshots-misc__proc_snes", + "screenshots-misc__proc_sparc_solaris_coff", + "screenshots-misc__proc_sparc_solaris_elf", + "screenshots-misc__proc_sparc_sun_elf", + "screenshots-misc__proc_sparc_sun_elf_so", + "screenshots-misc__proc_st20", + "screenshots-misc__proc_st7", + "screenshots-misc__proc_st9", + "screenshots-misc__proc_tlcs900", + "screenshots-misc__proc_tms320c2_coff", + "screenshots-misc__proc_tms320c5", + "screenshots-misc__proc_tms320c54", + "screenshots-misc__proc_tms320c6_coff", + "screenshots-misc__proc_tricore", + "screenshots-misc__proc_unsp", + "screenshots-misc__proc_v850_elf", + "screenshots-misc__proc_z180_coff", + "screenshots-misc__proc_z380_coff", + "screenshots-misc__proc_z8", + "screenshots-misc__proc_z80", + "screenshots-misc__tutorial_debugger_linux_local", + "screenshots-misc__tutorial_debugger_linux_to_linux64", + "segs-offset_xrefs", + "sigs-status", + "srcdbg-large_structs", + "srcdbg-watch_mem", + "srcdbg-watch_reg", + "stddirtrees-misc__debugging_functions", + "stddirtrees-misc__newfile_imports", + "strings-refresh_when_auto_empty", + "training-test__CallStackWalk_py", + "training-test__FindInstructions_py", + "training-test__chunkldr_idc", + "training-test__sol_cyci_py", + "welcome-load_binary_dont_save_idb", + ] + }, + "segment.rebase_program": { + "return": [ + 'int', + ], + "tests": [ + "eaview-navigate_rebase", + "hexrays-caching__rebase_down_1000", + "hexrays-caching__rebase_up_1000", + "strings-misc__rebase", + "strings-misc__rebase_range", + "strings-misc__restore_after_rebase", + ] + }, + "segment.segment_t.is_64bit": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__segment", + ] + }, + "segment.segment_t.update": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__colorize_disassembly", + "idapython-misc", + ] + }, + "segment.segment_t.use64": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__segment", + ] + }, + "segment.sel2para": { + "return": [ + 'int', + ], + "tests": [ + "training-test__FindInstructions_py", + ] + }, + "segment.set_defsr": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-misc", + ] + }, + "segment.set_segm_addressing": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-bfld", + ] + }, + "segment.set_segment_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "api-idapython_nocompat_695__idc", + ] + }, + "segment.setup_selector": { + "return": [ + 'int', + ], + "tests": [ + "screenshots-misc__proc_dsp56k", + ] + }, + "segregs.get_sreg": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__ana_emu_out", + ] + }, + "segregs.get_sreg_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-srareas", + ] + }, + "segregs.get_sreg_ranges_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-srareas", + ] + }, + "segregs.getn_sreg_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-srareas", + ] + }, + "segregs.split_sreg_range": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-srareas", + ] + }, + "strlist.build_strlist": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + "strings-misc__idapython1", + "strings-misc__idapython3", + ] + }, + "strlist.get_strlist_item": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__idautils", + "idapython-examples__show_selected_using_get_strlist_item", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + ] + }, + "strlist.get_strlist_options": { + "return": [ + 'strwinsetup_t', + ], + "tests": [ + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + ] + }, + "strlist.get_strlist_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__idautils", + "idapython-get_ascii_contents", + "idapython-strings", + "pyqt-qabstractitemdelegate", + "strings-misc__idapython1", + "strings-misc__idapython2", + "strings-misc__idapython3", + ] + }, + "struct.add_struc": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__pro", + "idapython-examples__create_structure_programmatically", + "idapython-misc", + "structs-create", + "structs-members", + ] + }, + "struct.add_struc_member": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "stackview-misc", + "structs-members", + ] + }, + "struct.del_struc": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idb_hooks", + "stddirtrees-misc__cut_and_paste_structures", + "structs-deps", + "structs-produce_file", + "structview-add_fields", + "structview-navigate", + ] + }, + "struct.del_struc_member": { + "return": [ + 'bool', + ], + "tests": [ + "stroff-misc", + "structs-asm_and_c", + ] + }, + "struct.get_first_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-modify_align", + ] + }, + "struct.get_innermost_member": { + "return": [ + ('member_t', 'struc_t', 'int'), + ], + "tests": [ + "idapython-structs", + ] + }, + "struct.get_last_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-modify_align", + ] + }, + "struct.get_member": { + "return": [ + 'NoneType', + 'member_t', + ], + "tests": [ + "funstack-misc", + "idapython-api__idautils", + "idapython-idb_hooks", + "idapython-misc", + "idapython-print_tinfo", + "idapython-structs", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-xrefs", + "stackview-misc", + "structs-members", + ] + }, + "struct.get_member_by_fullname": { + "return": [ + 'NoneType', + ('member_t', 'struc_t'), + ], + "tests": [ + "structs-members", + ] + }, + "struct.get_member_by_id": { + "return": [ + 'NoneType', + ('member_t', 'str', 'struc_t'), + ], + "tests": [ + "structs-members", + ] + }, + "struct.get_member_by_name": { + "return": [ + 'NoneType', + 'member_t', + ], + "tests": [ + "funstack-misc", + "idapython-examples__list_stkvar_xrefs", + "structs-members", + "structs-xrefs", + ] + }, + "struct.get_member_cmt": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.get_member_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__idautils", + "idapython-print_tinfo", + "idapython-structs", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-xrefs", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + "structs-members", + ] + }, + "struct.get_member_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__idautils", + "idapython-structs", + ] + }, + "struct.get_member_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "funstack-misc", + "idapython-idb_hooks", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + ] + }, + "struct.get_next_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-modify_align", + ] + }, + "struct.get_or_guess_member_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-print_tinfo", + ] + }, + "struct.get_struc": { + "return": [ + 'NoneType', + 'struc_t', + ], + "tests": [ + "funstack-misc", + "idapython-api__idautils", + "idapython-api__struct", + "idapython-examples__create_structure_programmatically", + "idapython-examples__list_stkvar_xrefs", + "idapython-idb_hooks", + "idapython-misc", + "idapython-structs", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + "stddirtrees-misc__cut_and_paste_structures", + "stroff-misc", + "structs-asm_and_c", + "structs-deps", + "structs-members", + "structs-produce_file", + "structs-xrefs", + "structview-add_fields", + "structview-navigate", + ] + }, + "struct.get_struc_by_idx": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + "structs-deps", + "structs-produce_file", + "structview-add_fields", + "structview-modify_align", + ] + }, + "struct.get_struc_cmt": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.get_struc_first_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython-print_tinfo", + "idapython-xrefs", + ] + }, + "struct.get_struc_id": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__idc", + "idapython-api__struct", + "idapython-examples__create_structure_programmatically", + "idapython-idb_hooks", + "idapython-structs", + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + "stddirtrees-misc__cut_and_paste_structures", + "strlits-borland", + "stroff-misc", + "structs-members", + "structview-navigate", + "structview-navigate2__custom_viewer_jump", + ] + }, + "struct.get_struc_idx": { + "return": [ + 'int', + ], + "tests": [ + "structview-navigate2__custom_viewer_jump", + ] + }, + "struct.get_struc_name": { + "return": [ + 'str', + ], + "tests": [ + "idapython-examples__operand_changed", + "structs-members", + "structview-modify_align", + ] + }, + "struct.get_struc_next_offset": { + "return": [ + 'int', + ], + "tests": [ + "idapython-print_tinfo", + "idapython-xrefs", + ] + }, + "struct.get_struc_qty": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + "structs-deps", + "structs-produce_file", + "structview-add_fields", + ] + }, + "struct.get_struc_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__create_structure_programmatically", + ] + }, + "struct.is_member_id": { + "return": [ + 'bool', + ], + "tests": [ + "structs-members", + ] + }, + "struct.member_t.get_soff": { + "return": [ + 'int', + ], + "tests": [ + "funstack-misc", + ] + }, + "struct.member_t.has_ti": { + "return": [ + 'bool', + ], + "tests": [ + "idaview-create_struct_from_data", + "idaview-create_struct_from_data_destructor", + ] + }, + "struct.set_member_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.set_member_name": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-funcs", + ] + }, + "struct.set_member_tinfo": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idb_hooks", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + ] + }, + "struct.set_member_type": { + "return": [ + 'bool', + ], + "tests": [ + "structs-members", + ] + }, + "struct.set_struc_cmt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idb_hooks", + ] + }, + "struct.struc_t.get_member": { + "return": [ + 'member_t', + ], + "tests": [ + "idapython-api__struct", + ] + }, + "struct.visit_stroff_fields": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "structs-members", + ] + }, + "tryblks.add_tryblk": { + "return": [ + 'int', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "tryblks.del_tryblks": { + "return": [ + 'NoneType', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "tryblks.get_tryblks": { + "return": [ + 'int', + ], + "tests": [ + "idaview-misc__tryblocks", + ] + }, + "typeinf.add_til": { + "return": [ + 'int', + ], + "tests": [ + "til-loaded_til", + ] + }, + "typeinf.alloc_type_ordinal": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython__get_set_numbered_type", + "idapython-tinfo_manip", + "localtypes-misc__manipulate_dirtree_programmatically", + ] + }, + "typeinf.apply_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__replay_prototypes_changes", + "idapython-tinfo_manip", + ] + }, + "typeinf.apply_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-api__idc", + "idapython-api__typeinf", + "idapython-misc", + "structs-members", + ] + }, + "typeinf.argloc_t.atype": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_func", + "idapython_hr-base_classes2__mblock_t", + "idapython_hr-base_classes2__mblock_t_64", + "idapython_hr-base_classes2__mop_t", + "idapython_hr-base_classes2__mop_t_64", + ] + }, + "typeinf.argloc_t.consume_scattered": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__typeinf", + ] + }, + "typeinf.argloc_t.is_ea": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_reg1": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_reg2": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_rrel": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.is_stkoff": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argloc_t.reg1": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks", + "idapython-tinfo_func", + ] + }, + "typeinf.argloc_t.set_reg1": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks", + "idapython_hr-examples__vds21", + ] + }, + "typeinf.argloc_t.set_reg2": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "typeinf.argloc_t.set_stkoff": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__typeinf", + "idapython_hr-examples__vds4", + ] + }, + "typeinf.argloc_t.stkoff": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.argpartvec_t.push_back": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-api__typeinf", + ] + }, + "typeinf.argpartvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.choose_named_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.del_numbered_type": { + "return": [ + 'bool', + ], + "tests": [ + "dirtree-misc__manipulate_programmatically", + "localtypes-misc__manipulate_dirtree_programmatically", + "stddirtrees-misc__cut_and_paste_local_types", + ] + }, + "typeinf.enum_member_vec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.for_all_arglocs": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "typeinf.get_idainfo_by_type": { + "return": [ + ('bool', 'int', 'int', 'NoneType', 'int'), + ('bool', 'int', 'int', 'opinfo_t *', 'int'), + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.get_idati": { + "return": [ + 'til_t', + ], + "tests": [ + "dirtree-misc__manipulate_programmatically", + "idapython-examples__replay_prototypes_changes", + "idapython-idb_hooks", + "idapython-idp_hooks2__decorate_name", + "idapython-tinfo_manip", + ] + }, + "typeinf.get_named_type": { + "return": [ + ('int', 'bytes', 'bytes', 'NoneType', 'NoneType', 'int', 'int'), + ], + "tests": [ + "idapython-tinfo_manip", + "stddirtrees-misc__cut_and_paste_local_types", + ] + }, + "typeinf.get_named_type64": { + "return": [ + ('int', 'bytes', 'NoneType', 'NoneType', 'NoneType', 'int', 'int'), + ], + "tests": [ + "til-redeclare_named_type", + ] + }, + "typeinf.get_numbered_type": { + "return": [ + ('bytes', 'NoneType', 'NoneType', 'NoneType', 'int'), + ('bytes', 'bytes', 'NoneType', 'NoneType', 'int'), + ], + "tests": [ + "api-idapython__get_set_numbered_type", + "idapython-tinfo_udt", + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.get_numbered_type_name": { + "return": [ + 'str', + ], + "tests": [ + "api-idapython__get_set_numbered_type", + ] + }, + "typeinf.get_stock_tinfo": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_func", + ] + }, + "typeinf.get_type_ordinal": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.guess_tinfo": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.idc_get_local_type_name": { + "return": [ + 'str', + ], + "tests": [ + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.idc_get_local_type_raw": { + "return": [ + ('bytes', 'bytes'), + ], + "tests": [ + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.idc_parse_decl": { + "return": [ + 'NoneType', + ('str', 'bytes', 'bytes'), + ], + "tests": [ + "idapython-api__idc", + "idapython-misc", + "plugins-hexrayspytools", + ] + }, + "typeinf.idc_parse_types": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__idc", + "structs-asm_and_c", + "til-loaded_til", + ] + }, + "typeinf.idc_print_type": { + "return": [ + 'str', + ], + "tests": [ + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.idc_set_local_type": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.import_type": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + "til-redeclare_named_type", + ] + }, + "typeinf.load_til": { + "return": [ + 'til_t', + ], + "tests": [ + "til-redeclare_named_type", + ] + }, + "typeinf.parse_decl": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-idb_hooks", + "idapython-tinfo_manip", + "idapython_hr-examples__vds21", + "idapython_hr-examples__vds_modify_user_lvars", + "localtypes-misc__manipulate_dirtree_programmatically", + ] + }, + "typeinf.print_argloc": { + "return": [ + 'str', + ], + "tests": [ + "idapython-idp_hooks", + ] + }, + "typeinf.print_decls": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc4", + "til-misc", + "til-nonlocal_deps", + "til-simple_export", + ] + }, + "typeinf.print_tinfo": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "funstack-misc", + "idapython-idb_hooks", + "idapython-idp_hooks", + "idapython-print_tinfo", + "idapython-tinfo_manip", + "idapython-tinfo_udt", + "idapython_hr-examples__vds17", + "idapython_hr-gssincla_sample5", + "plugins-hexrayspytools", + ] + }, + "typeinf.reginfovec_t.push_back": { + "return": [ + 'NoneType', + 'reg_info_t', + ], + "tests": [ + "idapython-funcs", + ] + }, + "typeinf.regobjvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.remove_pointer": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + "idapython_hr-examples__vds17", + ] + }, + "typeinf.remove_tinfo_pointer": { + "return": [ + ('bool', 'NoneType'), + ('bool', 'str'), + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.set_abi_name": { + "return": [ + 'bool', + ], + "tests": [ + "ppc-analysis_options", + ] + }, + "typeinf.set_numbered_type": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython__get_set_numbered_type", + ] + }, + "typeinf.tinfo_t.calc_udt_aligns": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.clr_const": { + "return": [ + 'NoneType', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.copy": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.create_func": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_func", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.create_ptr": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.create_udt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.del_attr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.del_attrs": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.deserialize": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-examples__replay_prototypes_changes", + "idapython-idb_hooks", + "idapython-tinfo_arrays_in_proto__ea32", + "idapython-tinfo_arrays_in_proto__ea64", + "idapython-tinfo_manip", + "localtypes-misc__anonymous_union_members", + ] + }, + "typeinf.tinfo_t.dstr": { + "return": [ + 'str', + ], + "tests": [ + "idapython-api__typeinf", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.empty": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds5", + "idapython_hr-gssincla_sample5", + ] + }, + "typeinf.tinfo_t.equals_to": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_array_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.get_attr": { + "return": [ + 'NoneType', + 'str', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.get_attrs": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.get_enum_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "typeinf.tinfo_t.get_func_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-funcs", + "idapython-tinfo_func", + ] + }, + "typeinf.tinfo_t.get_named_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + "structs-members", + ] + }, + "typeinf.tinfo_t.get_numbered_type": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip2", + "idapython-tinfo_udt", + ] + }, + "typeinf.tinfo_t.get_ordinal": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_pointed_object": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_ptrarr_objsize": { + "return": [ + 'int', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_rettype": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-api__typeinf", + "idapython-tinfo_manip", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.get_stock": { + "return": [ + 'tinfo_t', + ], + "tests": [ + "idapython-api__typeinf", + "idapython-idp_hooks2__decorate_name", + "idapython-tinfo_manip", + "idapython_hr-examples__old_vds10", + "idapython_hr-examples__vds10", + "idapython_hr-examples__vds4", + ] + }, + "typeinf.tinfo_t.get_type_name": { + "return": [ + 'str', + ], + "tests": [ + "structs-members", + ] + }, + "typeinf.tinfo_t.get_udt_details": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + "idapython-tinfo_udt", + ] + }, + "typeinf.tinfo_t.is_forward_decl": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.is_func": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-ctree_visitor__force_all_calls", + ] + }, + "typeinf.tinfo_t.is_ptr": { + "return": [ + 'bool', + ], + "tests": [ + "plugins-hexrayspytools", + ] + }, + "typeinf.tinfo_t.is_udt": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + "plugins-hexrayspytools", + "structs-members", + ] + }, + "typeinf.tinfo_t.is_union": { + "return": [ + 'bool', + ], + "tests": [ + "idapython_hr-examples__vds17", + ] + }, + "typeinf.tinfo_t.serialize": { + "return": [ + ('bytes', 'NoneType', 'NoneType'), + ('bytes', 'bytes', 'NoneType'), + ], + "tests": [ + "idapython-tinfo_manip", + "structs-members", + ] + }, + "typeinf.tinfo_t.set_attr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.set_attrs": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.set_named_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-idp_hooks2__decorate_name", + "idapython-tinfo_manip", + ] + }, + "typeinf.tinfo_t.set_numbered_type": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip", + "localtypes-misc__manipulate_dirtree_programmatically", + ] + }, + "typeinf.tinfo_visitor_t.apply_to": { + "return": [ + 'int', + ], + "tests": [ + "structs-members", + ] + }, + "typeinf.type_attrs_t.push_back": { + "return": [ + 'type_attr_t', + ], + "tests": [ + "idapython-tinfo_manip", + ] + }, + "typeinf.udtmembervec_template_t.push_back": { + "return": [ + 'NoneType', + 'udt_member_t', + ], + "tests": [ + "idapython-api__typeinf", + "idapython-tinfo_manip", + "plugins-hexrayspytools", + ] + }, + "typeinf.valstrvec_t.size": { + "return": [ + 'int', + ], + "tests": [ + "idapython-tinfo_manip2", + ] + }, + "ua.construct_macro": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ua.create_insn": { + "return": [ + 'int', + ], + "tests": [ + "idaview-hints__instruction_gets_deleted", + ] + }, + "ua.decode_insn": { + "return": [ + 'int', + ], + "tests": [ + "api-idapython_doc__bytes", + "api-idapython_nocompat_695__ida_idp", + "api-idapython_nocompat_695__idc", + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "grview-nodepropsUser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-examples__dbg_trace_linux32", + "idapython-examples__dbg_trace_linux64", + "idapython-examples__list_stkvar_xrefs", + "idapython-funcs", + "idapython-idp_hooks", + "idapython-idp_hooks2__get_reg_accesses", + "idapython-interrupt_long_op", + "idapython-misc", + "idapython-misc3", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-ui_hooks__misc", + "idapython-user_graphs", + "ppc-analysis_options", + "training-test__CallStackWalk_py", + "training-test__find_mgen_key_py", + "training-test__find_ret_py", + ] + }, + "ua.decode_preceding_insn": { + "return": [ + ('int', 'int'), + ], + "tests": [ + "idapython-misc", + ] + }, + "ua.decode_prev_insn": { + "return": [ + 'int', + ], + "tests": [ + "idapython-misc", + "idapython-processor_module_mem", + ] + }, + "ua.get_dtype_by_size": { + "return": [ + 'int', + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + "idapython-debugger", + "idapython-misc", + ] + }, + "ua.get_dtype_size": { + "return": [ + 'int', + ], + "tests": [ + "debugger-avx2__linux", + "debugger-avx2__linux_numeric_locale", + "debugger-avx2__linux_x64", + "debugger-avx2__linux_x64_forced_dbgsrv", + "debugger-avx2__linux_x64_numeric_locale", + ] + }, + "ua.get_immvals": { + "return": [ + ['int', '...'], + ], + "tests": [ + "idapython-misc2", + ] + }, + "ua.insn_t.add_cref": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "ua.insn_t.add_dref": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.add_off_drefs": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.create_op_data": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.create_stkvar": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.get_canon_feature": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "training-test__sol_cyci_py", + ] + }, + "ua.insn_t.get_canon_mnem": { + "return": [ + 'str', + ], + "tests": [ + "idapython-ui_hooks__misc", + ] + }, + "ua.insn_t.get_next_byte": { + "return": [ + 'int', + ], + "tests": [ + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.insn_t.get_next_dword": { + "return": [ + 'int', + ], + "tests": [ + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.insn_t.get_next_word": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ua.op_t.assign": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + ] + }, + "ua.op_t.is_reg": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + ] + }, + "ua.outctx_base_t.flush_outbuf": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks2__gen_regvar_def", + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.gen_cmt_line": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-idp_hooks2__gen_src_file_lnnum", + ] + }, + "ua.outctx_base_t.out_btoa": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_base_t.out_char": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.out_name_expr": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + ] + }, + "ua.outctx_base_t.out_printf": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__gen_regvar_def", + ] + }, + "ua.outctx_base_t.out_register": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.out_spaces": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-idp_hooks2__gen_regvar_def", + ] + }, + "ua.outctx_base_t.out_symbol": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.out_tagoff": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_base_t.out_tagon": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_base_t.out_value": { + "return": [ + 'int', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_base_t.set_gen_cmt": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_t.out_custom_mnem": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-examples__ana_emu_out", + "plugins-procext_py", + ] + }, + "ua.outctx_t.out_data": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + ] + }, + "ua.outctx_t.out_mnem": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + ] + }, + "ua.outctx_t.out_mnemonic": { + "return": [ + 'NoneType', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module_mem", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "ua.outctx_t.out_one_operand": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "training-test__sol_cyci_py", + ] + }, + "xref.add_cref": { + "return": [ + 'bool', + ], + "tests": [ + "idapython-interrupt_long_op", + "idapython-processor_module64", + "idapython-processor_module__endianness", + "idapython-processor_module__error_in_ev_ana_insn", + "idapython-processor_module__error_in_ev_emu_insn", + "idapython-processor_module__error_in_ev_is_sp_based", + "idapython-processor_module__error_in_ev_out_insn", + "idapython-processor_module__error_in_set_func_end", + "idapython-processor_module__error_in_set_func_start", + "idapython-processor_module__macro_instruction", + "idapython-processor_module__ph_object", + "idapython-processor_module_mem", + "idapython-processor_module_misc__procmod_and_loader_have_same_name", + "idapython-processor_module_misc__spu_ev_set_idp_options", + "idapython-proctemplate__ev_set_idp_options_newapi", + "idapython-proctemplate__newapi", + "idapython-proctemplate__oldapi", + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + ] + }, + "xref.add_dref": { + "return": [ + 'bool', + ], + "tests": [ + "xrefview-misc__generate_add_event", + "xrefview-misc__generate_del_event", + ] + }, + "xref.calc_switch_cases": { + "return": [ + 'cases_and_targets_t', + ], + "tests": [ + "idapython-calc_switch_cases", + ] + }, + "xref.del_cref": { + "return": [ + 'bool', + ], + "tests": [ + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + ] + }, + "xref.del_dref": { + "return": [ + 'NoneType', + ], + "tests": [ + "xrefview-misc__generate_del_event", + "xrefview-misc__insert_and_check_cursor", + ] + }, + "xref.get_first_cref_to": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "screenshots-misc__idapython_snippets", + ] + }, + "xref.get_next_cref_to": { + "return": [ + 'int', + ], + "tests": [ + "idapython-examples__list_segment_functions", + "idapython-examples__list_segment_functions_using_idautils", + "screenshots-misc__idapython_snippets", + ] + }, + "xref.xrefblk_t.first_from": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "xref.xrefblk_t.first_to": { + "return": [ + 'bool', + ], + "tests": [ + "training-test__ImpRef_py", + "training-test__color_to_py", + "training-test__find_mgen_key_py", + ] + }, + "xref.xrefblk_t.next_from": { + "return": [ + 'bool', + ], + "tests": [ + "gruser-misc__get_graph_viewer_idapython", + "grview-gruser", + "idapython-cleanup", + "idapython-examples__custom_graph_with_actions", + "idapython-user_graphs", + ] + }, + "xref.xrefblk_t.next_to": { + "return": [ + 'bool', + ], + "tests": [ + "training-test__ImpRef_py", + "training-test__color_to_py", + "training-test__find_mgen_key_py", + ] + }, +} diff --git a/tools/compare_traces.py b/tools/compare_traces.py new file mode 100755 index 0000000..040bfe7 --- /dev/null +++ b/tools/compare_traces.py @@ -0,0 +1,169 @@ +#!/usr/bin/python3 + +import glob +import os +import sys +import ast +import re + +class args_t: + def __init__(self, static): + self.static = static + +try: + import idaapi + # running as f.i.: idat -B -t -Scompare_traces.py -Loutput.log + args = args_t(False) +except: + # running stand-alone - static analysis + args = args_t(True) + +#----------------------------------------------------------------------- +# used by default, if no option -s + +class runtime_analysis_t: + def load(self): + self._import_all_idapython() + + self.funcs = set() + for module in self._idapython_modules(): + self.level = [module.__name__] + self._examine(module) + + # a variation of tests/t2/phases/tests/trace_idapython_calls_idapythonrc.py, + # idapython_wrapper_t._wrap() + + def _examine(self, obj): + for name in dir(obj): + # ignore "internals" for now + if name.startswith("_"): + continue + if name not in obj.__dict__: + continue + + child = obj.__dict__[name] # different from getattr(...) + + if not hasattr(child, "__class__"): # f.i. SWIG's cvar, "C global variable" + continue + typename = child.__class__.__name__ + + if typename == "type": # class + self.level.append(name) + self._examine(child) + self.level.pop() + elif typename in ("function", "staticmethod"): + self.funcs.add(".".join(self.level + [name])) + + def _import_all_idapython(self): + for name in os.listdir(os.path.dirname(idaapi.__file__)): + name, ext = os.path.splitext(name) + if name.startswith("ida_") and ext == ".py": + __import__(name) + + def _idapython_modules(self): + for name in sorted(sys.modules): + if name.startswith("ida_"): + yield sys.modules[name] + +#----------------------------------------------------------------------- +# used only on option -s + +class static_analysis_t(ast.NodeVisitor): + def __init__(self): + super().__init__() + + def load(self, basedir): + self.funcs = set() + for pathname in glob.glob(os.path.join(basedir, "ida_*.py")): + self._examine(pathname) + + def _examine(self, pathname): + module, _ = os.path.splitext(os.path.basename(pathname)) + + with open(pathname, "r") as f: + tree = ast.parse(f.read()) + + self.level = [module] + self.generic_visit(tree) + + def visit_ClassDef(self, node): + self.level.append(node.name) + super().generic_visit(node) + self.level.pop() + + def visit_FunctionDef(self, node): + if node.name.startswith("_") and not node.name.startswith("__"): + return + + self.funcs.add(".".join(self.level + [node.name])) + # skip entering the node's body + +#----------------------------------------------------------------------- +class call_traces_t(object): + def load(self, path): + with open(path, "r") as f: + content = ast.literal_eval(f.read()) + + self.funcs = set() + prefix = "ida_" + for key in content: + if key == "#empty": + for fun in content[key]: + self.funcs.add(prefix + fun) + else: + self.funcs.add(prefix + key) + +#----------------------------------------------------------------------- +def compare(analysis_funcs, runtime_funcs): + check_diff = runtime_funcs - analysis_funcs + if check_diff: + print("? Strange, functions tested but not in the API:") + for func in sorted(check_diff): + print(" ", func) + + diff = analysis_funcs - runtime_funcs + print("Coverage: {:.1f}%".format( + 100 * (1 - len(diff) / len(analysis_funcs)) + )) + if diff: + print("Untested functions:") + for func in sorted(diff): + print(" ", func) + +#----------------------------------------------------------------------- +def get_dirs(): + # TODO + py_ver = 3 + this_dir = os.path.dirname(__file__) + api_dir = os.path.abspath(os.path.join( + this_dir, "..", "..", "..", + "bin", "x64_linux_gcc", "python", str(py_ver) + )) + + return this_dir, api_dir + +#----------------------------------------------------------------------- +def main(): + this_dir, api_dir = get_dirs() + + if args.static: + print("Static analysis...") + analysis = static_analysis_t() + analysis.load(api_dir) + else: + print("Runtime analysis...") + analysis = runtime_analysis_t() + analysis.load() + + print("Reading traces...") + call_traces = call_traces_t() + call_traces.load(os.path.join(this_dir, "collected_traces.txt")) + + print("Comparing...") + compare(analysis.funcs, call_traces.funcs) + + if "idaapi" in sys.modules: + # running inside idat - get out + idaapi.qexit(0) + +main() diff --git a/tools/deploy.py b/tools/deploy.py index 86cff53..abaa413 100644 --- a/tools/deploy.py +++ b/tools/deploy.py @@ -9,11 +9,7 @@ import sys, re, os, glob major, minor, micro, _, _ = sys.version_info -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise +from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("-t", "--template", required=True) @@ -23,7 +19,6 @@ parser.add_argument("-w", "--pywraps", required=True) parser.add_argument("-d", "--interface-dependencies", type=str, required=True) parser.add_argument("-l", "--lifecycle-aware", default=False, action="store_true") parser.add_argument("-v", "--verbose", default=False, action="store_true") -parser.add_argument("-b", "--bc695", default=False, action="store_true") parser.add_argument("-x", "--xml-doc-directory", required=True) args = parser.parse_args() @@ -57,7 +52,7 @@ if xml_tree is not None: name, ptyp, desc = tpl signature.append("%s %s" % (ptyp, name or "")) if relevant_and_non_null(ptyp, desc): - body.append("if ( $%d == NULL )" % (idx+1)) + body.append("if ( $%d == nullptr )" % (idx+1)) body.append(""" SWIG_exception_fail(SWIG_ValueError, "invalid null reference in method '$symname', argument $argnum of type '$%d_type'");""" % (idx+1)) pass typemaps.append("%%typemap(check) (%s)" % ", ".join(signature)) @@ -90,31 +85,18 @@ def apply_tags(template_str, input_str, tags, verbose, path): print("Failed to match <%s> source expression against '%s', skipping...!" % (desc, expr_str)) continue - is_695_bwcompat = desc == "pycode_BC695" - - if not is_695_bwcompat: - # find pattern in destination - dest = expr.search(template_str) - if not dest: - raise Exception("Found <%s> for module '%s' in input (%s), but failed to match in destination" % ( - desc, expr_str, path)) + # find pattern in destination + dest = expr.search(template_str) + if not dest: + raise Exception("Found <%s> for module '%s' in input (%s), but failed to match in destination" % ( + desc, expr_str, path)) # accumulate all the strings to be replaced replaces = [] for src in matches: replaces.append(src) - if is_695_bwcompat: - if args.bc695: - r2 = [] - for r in replaces: - rlines = r.split("\n") - rlines = map(lambda l: " %s" % l, filter(lambda l: len(l.strip()), rlines)) - r2.append("\n".join(rlines)) - replaces = ["", "if _BC695:"] + r2 + ["\n"] - template_str = template_str + "%pythoncode %{" + "\n".join(replaces) + "%}" - else: - template_str = template_str[:dest.start(1)] + "\n".join(replaces) + template_str[dest.end(1):] + template_str = template_str[:dest.start(1)] + "\n".join(replaces) + template_str[dest.end(1):] return template_str @@ -142,8 +124,7 @@ def deploy(module, template, output, pywraps, iface_deps, lifecycle_aware, verbo ('inline', make_re('inline', tagname, '//')), ('decls', make_re('decls', tagname, '//')), ('init', make_re('init', tagname, '//')), - ('pycode_BC695', make_re('pycode_BC695', tagname, '#')), - ) + ) with open(path) as fin: input_str = fin.read() diff --git a/tools/deploy/header.i.in b/tools/deploy/header.i.in index 6047753..ffed1f8 100644 --- a/tools/deploy/header.i.in +++ b/tools/deploy/header.i.in @@ -1,5 +1,10 @@ #ifndef __HEADER_I__ #define __HEADER_I__ + +%begin %{ +#define PY_SSIZE_T_CLEAN 1 +%} + %{ #ifndef USE_DANGEROUS_FUNCTIONS #define USE_DANGEROUS_FUNCTIONS 1 @@ -9,12 +14,21 @@ #define DEPRECATED %} -%{ -#include "../../../idapy.hpp" -%} - #define SWIG_PYTHON_LEGACY_BOOL 1 +// Have SWiG flatten the hierarchy of types +// (instead of plain ignoring nested ones.) +%feature("flatnested"); + +%{ +class plugin_t; +#ifdef __NT__ +idaman __declspec(dllimport) plugin_t PLUGIN; +#else +extern plugin_t PLUGIN; +#endif +%} + // Auto-inserted header // generate directors for all classes that have virtual methods %feature("director"); @@ -49,6 +63,10 @@ #pragma SWIG nowarn=451 #pragma SWIG nowarn=454 // Setting a pointer/reference variable may leak memory #pragma SWIG nowarn=514 // Director base class 'x' has no virtual destructor. +#pragma SWIG nowarn=350 // operator new ignored +#pragma SWIG nowarn=394 // operator new[] ignored +#pragma SWIG nowarn=395 // operator delete[] ignored +#pragma SWIG nowarn=351 // operator delete ignored // Do not create separate wrappers for default arguments %feature("compactdefaultargs"); @@ -61,6 +79,28 @@ %ignore qlist::const_iterator::operator--; %ignore qlist::reverse_iterator::operator--; %ignore qlist::const_reverse_iterator::operator--; +%ignore qlist::iterator::operator==; +%ignore qlist::const_iterator::operator==; +%ignore qlist::reverse_iterator::operator==; +%ignore qlist::const_reverse_iterator::operator==; +%ignore qlist::iterator::operator!=; +%ignore qlist::const_iterator::operator!=; +%ignore qlist::reverse_iterator::operator!=; +%ignore qlist::const_reverse_iterator::operator!=; +%ignore qlist::iterator; +%ignore qlist::const_iterator; +%ignore qlist::reverse_iterator; +%ignore qlist::const_reverse_iterator; + + +// To be used e.g., when a '#define' in the source code +// defines a uint32 value with the highest bit set, so that +// SWiG knows it's not a negative integer. +%define %predefine_uint32_macro(NAME, VALUE) +%rename (NAME) PY_##NAME; +%constant uint32 PY_##NAME = uint32(VALUE); +%ignore NAME; +%enddef %define %uncomparable_elements_qvector(ELEMENT_TYPE, VECTOR_TYPE) %ignore qvector<ELEMENT_TYPE>::operator==; @@ -72,102 +112,9 @@ %template(VECTOR_TYPE) qvector<ELEMENT_TYPE>; %enddef -%ignore wchar2char; -%ignore hit_counter_t; -%ignore reg_hit_counter; -%ignore create_hit_counter; -%ignore hit_counter_timer; -%ignore print_all_counters; -%ignore incrementer_t; -%ignore reloc_info_t; // swig under mac chokes on this -%ignore qmutex_create; -%ignore qiterator; -%ignore qmutex_free; -%ignore qmutex_lock; -%ignore qmutex_t; -%ignore qmutex_unlock; -%ignore qsem_create; -%ignore qsem_free; -%ignore qsem_post; -%ignore qsem_wait; -%ignore qsemaphore_t; -%ignore qthread_cb_t; -%ignore qthread_create; -%ignore qthread_free; -%ignore qthread_join; -%ignore qthread_kill; -%ignore qthread_self; -%ignore qthread_same; -%ignore qthread_t; -%ignore qhandle_t; -%ignore qpipe_create; -%ignore qpipe_read; -%ignore qpipe_write; -%ignore qpipe_close; -%ignore qstrlen; -%ignore qstrcmp; -%ignore qstrstr; -%ignore qstrchr; -%ignore qstrrchr; %ignore bytevec_t; %ignore qstrvec_t; -%ignore reloc_info_t; -%ignore relobj_t; -%ignore wchar2char; -%ignore u2cstr; -%ignore c2ustr; -%ignore base64_encode; -%ignore base64_decode; -%ignore replace_tabs; -%ignore utf8_unicode; -%ignore unicode_utf8; -%ignore win_utf2idb; -%ignore char2oem; -%ignore oem2char; -%ignore set_codepages; -%ignore get_codepages; -%ignore convert_codepage; -%ignore test_bit; -%ignore set_bit; -%ignore clear_bit; -%ignore set_all_bits; -%ignore clear_all_bits; -%ignore interval::last; -%ignore interval::overlap; -%ignore interval::includes; -%ignore interval::contains; -%ignore qrotl; -%ignore qrotr; -%ignore setflag; -%ignore read2bytes; -%ignore rotate_left; -//%ignore qswap; -%ignore swap32; -%ignore swap16; -%ignore swap_value; -%ignore qalloc_or_throw; -%ignore qrealloc_or_throw; -%ignore get_buffer_for_sysdir; -%ignore get_buffer_for_winerr; -%ignore call_atexits; -%ignore launch_process_params_t; -%ignore launch_process; -%ignore term_process; -%ignore get_process_exit_code; -%ignore BELOW_NORMAL_PRIORITY_CLASS; -%ignore parse_command_line; -%ignore parse_command_line2; -%ignore parse_command_line3; -%rename (parse_command_line3) py_parse_command_line; -%ignore qgetenv; -%ignore qsetenv; -%ignore qctime; -%ignore qlocaltime; -%ignore qstrftime; -%ignore qstrftime64; -%ignore qstrtok; -%ignore qstrlwr; -%ignore qstrupr; +%ignore qthread_cb_t; // Do not move this. We need to override the define from pro.h #define CASSERT(type) @@ -176,24 +123,6 @@ import ida_idaapi } -#ifdef BC695 -%pythoncode { -import sys -_BC695 = sys.modules["__main__"].IDAPYTHON_COMPAT_695_API - -if _BC695: - ## This is a helper for replacing an existing function, with a wrapper - ## providing backwards-compatibility for API 6.95 -- typically because - ## the number/types of arguments changed, while the function name itself - ## remained the same in 7.0. - ## (Note that this shouldn't be used for functions that don't exist - ## in the vanilla 7.0 API, such as 'choose_named_type2'.) - def bc695redef(func): - ida_idaapi._BC695.replace_fun(func) - return func -} -#endif // BC695 - //--------------------------------------------------------------------- %extend qvector { inline size_t __len__() const { return $self->size(); } @@ -304,6 +233,42 @@ if _BC695: } } +%define %qlist_template(QLIST_TYPE, ELEMENT_TYPE) +// a typedef for the C++ side +%{ +typedef qlist<ELEMENT_TYPE>::iterator QLIST_TYPE##_iterator; +%} +// we need a concrete type for the iterators, so SWiG properly +// generates type information, including a destructor (otherwise +// calling mylist.begin() will cause an ABORT for lack of dtor.) +class QLIST_TYPE##_iterator {}; +%extend QLIST_TYPE##_iterator { + const ELEMENT_TYPE &cur { return *(*self); } + void __next__(void) { (*self)++; } + bool operator==(const QLIST_TYPE##_iterator *x) const { return &(self->operator*()) == &(x->operator*()); } + bool operator!=(const QLIST_TYPE##_iterator *x) const { return &(self->operator*()) != &(x->operator*()); } + %pythoncode { + next = __next__ + } +}; +%extend qlist<ELEMENT_TYPE> { + QLIST_TYPE##_iterator begin() { return self->begin(); } + QLIST_TYPE##_iterator end(void) { return self->end(); } + QLIST_TYPE##_iterator insert(QLIST_TYPE##_iterator p, const ELEMENT_TYPE& x) { return self->insert(p, x); } + void erase(QLIST_TYPE##_iterator p) { self->erase(p); } +}; +%ignore qlist< ELEMENT_TYPE >::insert(iterator); +%ignore qlist< ELEMENT_TYPE >::insert(iterator, const ELEMENT_TYPE &); +%ignore qlist< ELEMENT_TYPE >::insert(iterator, iterator, iterator); +%ignore qlist< ELEMENT_TYPE >::erase(iterator); +%ignore qlist< ELEMENT_TYPE >::erase(iterator, iterator); +%ignore qlist< ELEMENT_TYPE >::begin(); +%ignore qlist< ELEMENT_TYPE >::begin() const; +%ignore qlist< ELEMENT_TYPE >::end(); +%ignore qlist< ELEMENT_TYPE >::end() const; +%template(QLIST_TYPE) qlist<ELEMENT_TYPE>; +%enddef + #if IDAPYTHON_MODULE_hexrays %define %ida_hexrays_wrapper_exception_catch() catch ( const vd_failure_t &e ) { __raise_vdf(e); SWIG_fail; } @@ -316,6 +281,7 @@ if _BC695: %exception { try { + set_interr_throws_t sit; $action } catch ( const std::bad_alloc &ba ) { __raise_ba(ba); SWIG_fail; } @@ -329,7 +295,7 @@ if _BC695: %exception_set_default_handlers(); // Enable automatic docstring generation -%feature(autodoc,0); +%feature(autodoc,2); %{ /* strnlen() arrived on OSX at v10.7. Provide it ourselves if needed. */ @@ -341,7 +307,7 @@ if _BC695: inline size_t strnlen(const char *s, size_t maxlen) { const char *found = (const char *) memchr(s, 0, maxlen); - return found != NULL ? size_t(found - s) : maxlen; + return found != nullptr ? size_t(found - s) : maxlen; } #endif #endif @@ -352,7 +318,7 @@ inline size_t strnlen(const char *s, size_t maxlen) static PyObject *type##_create() { PYW_GIL_CHECK_LOCKED_SCOPE(); - return PyCapsule_New(new type(), VALID_CAPSULE_NAME, NULL); + return PyCapsule_New(new type(), VALID_CAPSULE_NAME, nullptr); } static bool type##_destroy(PyObject *py_obj) { @@ -383,12 +349,11 @@ static PyObject *type##_get_clink_ptr(PyObject *self) %typemap(directorout) PyObject * "/*%dout%*/$result = result;Py_XINCREF($result);" //--------------------------------------------------------------------- -#ifdef PY3 %define %treat_serialized_tinfo_raw_pointer_as_bytes_1(_TYPE) %typemap(in) _TYPE * { // %treat_serialized_tinfo_raw_pointer_as_bytes_1 %typemap(in) _TYPE * if ( $input == Py_None ) - $1 = ($1_ltype) NULL; + $1 = ($1_ltype) nullptr; else if ( PyBytes_Check($input) ) $1 = ($1_ltype) PyBytes_AsString($input); else @@ -398,11 +363,11 @@ static PyObject *type##_get_clink_ptr(PyObject *self) } %typemap(directorin) _TYPE * { // %treat_serialized_tinfo_raw_pointer_as_bytes_1 %typemap(directorin) _TYPE * - $input = PyBytes_FromString($1 != NULL ? (const char *) $1 : ""); + $input = PyBytes_FromString($1 != nullptr ? (const char *) $1 : ""); } %typemap(out) _TYPE * { // %treat_serialized_tinfo_raw_pointer_as_bytes_1 %typemap(out) _TYPE * - $result = PyBytes_FromString($1 != NULL ? (const char *) $1 : ""); + $result = PyBytes_FromString($1 != nullptr ? (const char *) $1 : ""); } // 'typecheck' typemaps are used for polymorphism. We want to favor // tinfo_t wrappers at the expense of 'type_t *' ones, so we want the @@ -416,12 +381,6 @@ static PyObject *type##_get_clink_ptr(PyObject *self) %treat_serialized_tinfo_raw_pointer_as_bytes_1(TYPE); %treat_serialized_tinfo_raw_pointer_as_bytes_1(const TYPE); %enddef -#else -%define %treat_serialized_tinfo_raw_pointer_as_bytes(TYPE) -%apply char * { TYPE * } -%apply const char * { const TYPE * } -%enddef -#endif %treat_serialized_tinfo_raw_pointer_as_bytes(type_t); %treat_serialized_tinfo_raw_pointer_as_bytes(p_list); @@ -449,6 +408,34 @@ static PyObject *type##_get_clink_ptr(PyObject *self) %apply unsigned long long { size_t } %apply long long { ssize_t } +%define %define_netnode_tag_accessors() +%apply char { uchar tag }; + +%fragment("cvt_netnode_tag", "header") +{ + SWIGINTERN int SWIG_AsVal_char (PyObject * obj, char *val); + SWIGINTERN int SWIG_AsVal_unsigned_SS_char (PyObject * obj, unsigned char *val); + bool cvt_netnode_tag(uchar *out, PyObject *obj) + { + char c = '\0'; + bool ok = SWIG_AsVal_char(obj, &c) == SWIG_OK; + if ( ok ) + *out = (uchar) c; + else + ok = SWIG_AsVal_unsigned_SS_char(obj, out) == SWIG_OK; + return ok; + } +} + +%typemap(in, fragment="cvt_netnode_tag") uchar tag { + // %typemap(in) uchar tag + if ( !cvt_netnode_tag(&$1, $input) ) + SWIG_exception_fail( + SWIG_ValueError, + "in method '" "$symname" "', argument " "$argnum"" of type '" "$1_type""'"); +} +%enddef + //--------------------------------------------------------------------- // Convert an incoming Python list to a tid_t[] array %typemap(in) tid_t[ANY](tid_t temp[$1_dim0]) { @@ -457,7 +444,7 @@ static PyObject *type##_get_clink_ptr(PyObject *self) if (!PySequence_Check($input)) { PyErr_SetString(PyExc_TypeError,"Expecting a sequence"); - return NULL; + return nullptr; } /* Cap the number of elements to copy */ @@ -469,7 +456,7 @@ static PyObject *type##_get_clink_ptr(PyObject *self) if (!PyLong_Check(item.o)) { PyErr_SetString(PyExc_ValueError,"Expecting a sequence of long integers"); - return NULL; + return nullptr; } temp[i] = PyLong_AsUnsignedLong(item.o); @@ -483,13 +470,13 @@ static PyObject *type##_get_clink_ptr(PyObject *self) if (!PySequence_Check($input)) { PyErr_SetString(PyExc_TypeError,"Expecting a sequence"); - return NULL; + return nullptr; } int plen = PySequence_Length($input); if ( plen <= 0 ) { PyErr_SetString(PyExc_TypeError, "Sequence must have at least 1 item"); - return NULL; + return nullptr; } temp.resize(plen); for ( int i =0; i < plen; ++i ) @@ -498,7 +485,7 @@ static PyObject *type##_get_clink_ptr(PyObject *self) if (!PyLong_Check(item.o)) { PyErr_SetString(PyExc_ValueError,"Expecting a sequence of long integers"); - return NULL; + return nullptr; } temp[i] = PyLong_AsUnsignedLong(item.o); @@ -516,7 +503,7 @@ SWIGINTERN PyObject *_maybe_cstring_result( Py_XDECREF(resultobj); if ( result <= 0 ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8(cstr); + return PyUnicode_FromString(cstr); } SWIGINTERN PyObject *_sized_cstring_result( @@ -525,7 +512,7 @@ SWIGINTERN PyObject *_sized_cstring_result( size_t cstrsz) { Py_XDECREF(resultobj); - return IDAPyStr_FromUTF8AndSize(cstr, cstrsz); + return PyUnicode_FromStringAndSize(cstr, cstrsz); } SWIGINTERN PyObject *_maybe_sized_cstring_result( @@ -537,7 +524,7 @@ SWIGINTERN PyObject *_maybe_sized_cstring_result( Py_XDECREF(resultobj); if ( result <= 0 ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8AndSize(cstr, cstrsz); + return PyUnicode_FromStringAndSize(cstr, cstrsz); } SWIGINTERN PyObject *_maybe_cstring_result_on_charptr_using_allocated_buf( @@ -546,10 +533,10 @@ SWIGINTERN PyObject *_maybe_cstring_result_on_charptr_using_allocated_buf( char *buf) { Py_XDECREF(resultobj); - PyObject *out = NULL; - if ( result != NULL ) + PyObject *out = nullptr; + if ( result != nullptr ) { - out = IDAPyStr_FromUTF8(buf); + out = PyUnicode_FromString(buf); } else { @@ -566,9 +553,9 @@ SWIGINTERN PyObject *_maybe_cstring_result_on_charptr_using_qbuf( const qstring &buf) { Py_XDECREF(resultobj); - if ( result == NULL ) + if ( result == nullptr ) Py_RETURN_NONE; - return IDAPyStr_FromUTF8AndSize(buf.begin(), buf.length()); + return PyUnicode_FromStringAndSize(buf.begin(), buf.length()); } SWIGINTERN PyObject *_maybe_binary_result( @@ -579,11 +566,7 @@ SWIGINTERN PyObject *_maybe_binary_result( Py_XDECREF(resultobj); if ( result <= 0 ) Py_RETURN_NONE; -#ifdef PY3 return PyBytes_FromStringAndSize((const char *) buf, result); -#else - return PyString_FromStringAndSize((const char *) buf, result); -#endif } SWIGINTERN PyObject *_sized_binary_result( @@ -592,7 +575,7 @@ SWIGINTERN PyObject *_sized_binary_result( size_t cstrsz) { Py_XDECREF(resultobj); - return IDAPyBytes_FromMemAndSize(cstr, cstrsz); + return PyBytes_FromStringAndSize(cstr, cstrsz); } SWIGINTERN PyObject *_maybe_sized_binary_result( @@ -604,7 +587,7 @@ SWIGINTERN PyObject *_maybe_sized_binary_result( Py_XDECREF(resultobj); if ( result <= 0 ) Py_RETURN_NONE; - return IDAPyBytes_FromMemAndSize(cstr, cstrsz); + return PyBytes_FromStringAndSize(cstr, cstrsz); } %} @@ -612,7 +595,6 @@ SWIGINTERN PyObject *_maybe_sized_binary_result( #if defined(IDA_MODULE_NALT) %{ #include <bytes.hpp> -#ifdef PY3 SWIGINTERN PyObject *_maybe_byte_array_or_none_result( PyObject *resultobj, bool result, @@ -622,24 +604,8 @@ SWIGINTERN PyObject *_maybe_byte_array_or_none_result( Py_XDECREF(resultobj); if ( !result ) Py_RETURN_NONE; - return IDAPyBytes_FromMemAndSize((const char *) bytes, nbytes); + return PyBytes_FromStringAndSize((const char *) bytes, nbytes); } -#else -SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( - PyObject *resultobj, - bool result, - const uchar *bytes, - size_t nbytes) -{ - Py_XDECREF(resultobj); - if ( !result ) - Py_RETURN_NONE; - qstring buf; - buf.resize(2*nbytes); - get_hex_string(buf.begin(), buf.size(), bytes, nbytes); - return IDAPyBytes_FromMemAndSize(buf.c_str(), buf.length()); -} -#endif %} #endif @@ -703,23 +669,26 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( //------------------------------------------------------------------------- // OUT qstrvec_t //------------------------------------------------------------------------- -%typemap(in,numinputs=0) qstrvec_t *out (qstrvec_t temp) { - $1 = &temp; +%typemap(in,numinputs=0) qstrvec_t *out (qstrvec_t temp) +{ + // %typemap(in,numinputs=0) qstrvec_t *out (qstrvec_t temp) + $1 = &temp; } %typemap(argout) qstrvec_t *out { + // %typemap(argout) qstrvec_t *out Py_XDECREF(resultobj); resultobj = qstrvec2pylist(*($1)); } %typemap(freearg) qstrvec_t* out { + // %typemap(freearg) qstrvec_t* out // Nothing. We certainly don't want 'temp' to be deleted. } //------------------------------------------------------------------------- // md5/sha256 hash retrieval (as hex representation) //------------------------------------------------------------------------- -#ifdef PY3 %define %byte_array_or_none(PARAM_NAME) %typemap(in, numinputs=0) uchar PARAM_NAME[ANY] (uchar temp[$1_dim0]) { // byte_array_or_none typemap(in, numinputs=0) uchar PARAM_NAME[ANY] (uchar temp[$1_dim0]) @@ -731,26 +700,13 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( } %enddef %byte_array_or_none(hash); -#else -%define %byte_array_as_hex_or_none(PARAM_NAME) -%typemap(in, numinputs=0) uchar PARAM_NAME[ANY] (uchar temp[$1_dim0]) -{ // byte_array_as_hex_or_none typemap(in, numinputs=0) uchar PARAM_NAME[ANY] (uchar temp[$1_dim0]) - $1 = temp; -} -%typemap(argout) uchar PARAM_NAME[ANY] -{ // byte_array_as_hex_or_none typemap(argout) uchar PARAM_NAME[ANY] - resultobj = _maybe_byte_array_as_hex_or_none_result(resultobj, result, $1, $1_dim0); -} -%enddef -%byte_array_as_hex_or_none(hash); -#endif // Check that the argument is a callable Python object //--------------------------------------------------------------------- %typemap(in) PyObject *pyfunc { if (!PyCallable_Check($input)) { PyErr_SetString(PyExc_TypeError, "Expected a callable object"); - return NULL; + return nullptr; } $1 = $input; } @@ -759,7 +715,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in) PyObject *pyfunc_or_none { if ($input != Py_None && !PyCallable_Check($input)) { PyErr_SetString(PyExc_TypeError, "Expected None or a callable object"); - return NULL; + return nullptr; } $1 = $input; } @@ -768,7 +724,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in) PyObject *tuple_or_none { if ($input != Py_None && !PyTuple_Check($input)) { PyErr_SetString(PyExc_TypeError, "Expected None or a tuple"); - return NULL; + return nullptr; } $1 = $input; } @@ -798,6 +754,13 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in) qtime64_t "$1 = PyLong_AsUnsignedLongLong($input);" %typemap(out) qtime64_t "$result = PyLong_FromUnsignedLongLong($1);" +%typemap(typecheck, precedence=SWIG_TYPECHECK_STRING_ARRAY) ea_t +{ + // %typemap(typecheck, precedence=SWIG_TYPECHECK_STRING_ARRAY) ea_t + uint64 $1_temp; + $1 = PyW_GetNumber($input, &$1_temp); +} + //--------------------------------------------------------------------- // IN/OUT qstring/bytevec_t //--------------------------------------------------------------------- @@ -818,11 +781,28 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( { // bytes_container REFTYPE typemap(typecheck) $1 = CHECKER($input) ? 1 : 0; } +%fragment("outarg_cvt_" #CONTAINER_TYPE, "header") +{ + bool outarg_cvt_##CONTAINER_TYPE( + CONTAINER_TYPE *out, + PyObject *obj, + bool can_be_none=false) + { + bool ok = can_be_none && obj == Py_None; + if ( !ok ) + { + ok = CHECKER(obj); + if ( ok ) + IN_CONVERTER(out, obj); + } + return ok; + } +} %fragment("cvt_" #CONTAINER_TYPE, "header") { CONTAINER_TYPE *cvt_##CONTAINER_TYPE(PyObject *obj, bool can_be_none=false) { - CONTAINER_TYPE *out = NULL; + CONTAINER_TYPE *out = nullptr; if ( can_be_none && obj == Py_None ) { out = new CONTAINER_TYPE; @@ -840,7 +820,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in, fragment="cvt_" #CONTAINER_TYPE) REFTYPE { // bytes_container REFTYPE, CONTAINER_TYPE typemap(in) $1 = cvt_ ## CONTAINER_TYPE($input); - if ( $1 == NULL ) + if ( $1 == nullptr ) SWIG_exception_fail( SWIG_ValueError, "Expected " ELTYPE_TO_REPORT1 " " "in method '" "$symname" "', argument " "$argnum"" of type '" ELTYPE_TO_REPORT2 "'"); @@ -849,7 +829,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in) const REFTYPE _type_or_none { // bytes_container REFTYPE _type_or_none, CONTAINER_TYPE typemap(in) $1 = cvt_ ## CONTAINER_TYPE($input, /*can_be_none=*/ true); - if ( $1 == NULL ) + if ( $1 == nullptr ) SWIG_exception_fail( SWIG_ValueError, "Expected " ELTYPE_TO_REPORT1 " " "in method '" "$symname" "', argument " "$argnum"" of type '" ELTYPE_TO_REPORT2 "'"); @@ -857,7 +837,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in) const REFTYPE _fields { // bytes_container REFTYPE _fields, CONTAINER_TYPE typemap(in) $1 = cvt_ ## CONTAINER_TYPE($input, /*can_be_none=*/ true); - if ( $1 == NULL ) + if ( $1 == nullptr ) SWIG_exception_fail( SWIG_ValueError, "Expected " ELTYPE_TO_REPORT1 " " "in method '" "$symname" "', argument " "$argnum"" of type '" ELTYPE_TO_REPORT2 "'"); @@ -932,7 +912,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( } %typemap(directorin) CONTAINER_TYPE * { // bytes_container typemap(directorin) CONTAINER_TYPE * - if ( $1 != NULL ) + if ( $1 != nullptr ) { $input = OUT_CONVERTER($1->START_ACCESSOR(), $1->SIZE_ACCESSOR()); } @@ -946,6 +926,24 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( { // bytes_container typemap(directorin) REFTYPE $input = OUT_CONVERTER($1.START_ACCESSOR(), $1.SIZE_ACCESSOR()); } +%typemap(directorout) CONTAINER_TYPE +{ // bytes_container typemap(directorout) CONTAINER_TYPE + if ( CHECKER($1) ) + IN_CONVERTER(&$result, $1); + else + Swig::DirectorTypeMismatchException::raise( + SWIG_ErrorType(SWIG_TypeError), + "in output value of type '" ELTYPE_TO_REPORT2 "' in method '$symname'"); +} +%typemap(directorargout) CONTAINER_TYPE *vout +{ // bytes_container typemap(directorargout) CONTAINER_TYPE *vout + if ( CHECKER($result) ) + { + CONTAINER_TYPE _buf; + if ( IN_CONVERTER(&_buf, $result) ) + vout->insert(vout->SIZE_ACCESSOR(), _buf.START_ACCESSOR(), _buf.SIZE_ACCESSOR()); + } +} %enddef %define %bytes_container_ptr_and_ref( @@ -989,15 +987,14 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %enddef -#ifdef PY3 %bytes_container_ptr_and_ref( qstring, c_str, length, , - IDAPyStr_Check, - IDAPyStr_AsUTF8, - IDAPyStr_FromUTF8AndSize, + PyUnicode_Check, + PyUnicode_as_qstring, + PyUnicode_FromStringAndSize, _sized_cstring_result, _maybe_sized_cstring_result, "string", @@ -1007,9 +1004,9 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( begin, size, , - IDAPyBytes_Check, - IDAPyBytes_AsBytes, - IDAPyBytes_FromMemAndSize, + PyBytes_Check, + PyBytes_as_bytevec_t, + PyBytes_FromStringAndSize, _sized_binary_result, _maybe_sized_binary_result, "bytes", @@ -1019,51 +1016,13 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( begin, length, (const uchar *), - IDAPyBytes_Check, - IDAPyBytes_as_qtype, - IDAPyBytes_FromMemAndSize, + PyBytes_Check, + PyBytes_as_qtype, + PyBytes_FromStringAndSize, _sized_binary_result, _maybe_sized_binary_result, "bytes", "bytes"); -#else -%bytes_container_ptr_and_ref( - qstring, - c_str, - length, - , - IDAPyStr_Check, - IDAPyStr_AsUTF8, - IDAPyStr_FromUTF8AndSize, - _sized_cstring_result, - _maybe_sized_cstring_result, - "string", - "str"); -%bytes_container_ptr_and_ref( - bytevec_t, - begin, - size, - , - IDAPyBytes_Check, - IDAPyBytes_AsBytes, - IDAPyBytes_FromMemAndSize, - _sized_binary_result, - _maybe_sized_binary_result, - "string", - "str"); -%bytes_container_ptr_and_ref( - qtype, - begin, - length, - (const uchar *), - IDAPyBytes_Check, - IDAPyBytes_as_qtype, - IDAPyBytes_FromMemAndSize, - _sized_binary_result, - _maybe_sized_binary_result, - "string", - "str"); -#endif //------------------------------------------------------------------------- // insn_t @@ -1077,7 +1036,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( if ( ok ) { insn_t tmp; - ok = decode_insn(&tmp, ea_t(ea)); + ok = decode_insn(&tmp, ea_t(ea)) > 0; if ( ok ) *out = tmp; } @@ -1100,6 +1059,7 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( SWIG_exception_fail(SWIG_ValueError, "Expected either an address, or a non-null ida_ua.insn_t instance"); $1 = &lins; } +%typemap(doc) (const insn_t &) "$1_name: an ida_ua.insn_t, or an address (C++: const insn_t &)" //--------------------------------------------------------------------- // varargs (mostly kernwin.hpp) @@ -1108,11 +1068,11 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( %typemap(in) (const char *format, ...) (qstring buf) { $1 = "%s"; /* Fix format string to %s */ - IDAPyStr_AsUTF8(&buf, $input); /* Get string argument */ + PyUnicode_as_qstring(&buf, $input); /* Get string argument */ $2 = (void *) buf.begin(); /* Note: we cannot rely on 'nonnul_argument_prototype' for */ /* these, since we fiddle with the arguments number */ - if ( $2 == NULL ) + if ( $2 == nullptr ) SWIG_exception_fail( SWIG_ValueError, "invalid null pointer " "in method '" "$symname" "', argument " "$argnum"" of type '" "$1_type""'"); @@ -1125,24 +1085,37 @@ SWIGINTERN PyObject *_maybe_byte_array_as_hex_or_none_result( $1 = size_t(PyLong_AsUnsignedLongLong($input)); } -// Help SWIG to figure out the ulonglong type #ifdef SWIGWIN -typedef unsigned __int64 ulonglong; -typedef __int64 longlong; +typedef unsigned __int64 uint64; +typedef __int64 int64; #else -typedef unsigned long long ulonglong; -typedef long long longlong; +typedef unsigned long long uint64; +typedef long long int64; #endif +#ifdef __NT__ +%{ +CASSERT(sizeof(time_t) == sizeof(int64)); +%} +typedef int64 time_t; +#else +%{ +CASSERT(sizeof(time_t) == sizeof(long int)); +%} +typedef long int time_t; +#endif + +typedef int ui_notification_t; + #ifdef __EA64__ -%apply longlong *INOUT { sval_t *value }; -%apply longlong *INOUT { adiff_t *disp }; -%apply ulonglong *INOUT { ea_t *addr }; -%apply ulonglong *INPUT { ea_t *ea_ptr }; // get_debug_name -%apply ulonglong *INOUT { sel_t *sel }; -%apply ulonglong *OUTPUT { ea_t *ea1, ea_t *ea2 }; // read_range_selection() -%apply ulonglong *OUTPUT { ea_t *from, ea_t *to, asize_t *size }; // get_mapping() -%apply ulonglong *OUTPUT { uval_t *value }; // get_name_value +%apply int64 *INOUT { sval_t *value }; +%apply int64 *INOUT { adiff_t *disp }; +%apply uint64 *INOUT { ea_t *addr }; +%apply uint64 *INPUT { ea_t *ea_ptr }; // get_debug_name +%apply uint64 *INOUT { sel_t *sel }; +%apply uint64 *OUTPUT { ea_t *ea1, ea_t *ea2 }; // read_range_selection() +%apply uint64 *OUTPUT { ea_t *from, ea_t *to, asize_t *size }; // get_mapping() +%apply uint64 *OUTPUT { uval_t *value }; // get_name_value #else %apply int *INOUT { sval_t *value }; %apply int *INOUT { adiff_t *disp }; @@ -1173,7 +1146,7 @@ typedef long long longlong; // %typemap(argout) qstring *errbuf (from: %make_argout_errbuf_raise_exception_when_non_empty) if ( !$1->empty() ) { - if ( $result != NULL ) + if ( $result != nullptr ) Py_XDECREF($result); SWIG_exception_fail(SWIG_RuntimeError, $1->c_str()); } @@ -1184,9 +1157,9 @@ typedef long long longlong; %typemap(argout) (qstring *errbuf) { // %typemap(argout) qstring *errbuf (from: %make_argout_errbuf_raise_when_null_result) - if ( result == NULL ) + if ( result == nullptr ) { - if ( $result != NULL ) + if ( $result != nullptr ) Py_XDECREF($result); SWIG_exception_fail(SWIG_RuntimeError, $1->c_str()); } @@ -1219,20 +1192,35 @@ struct wrapped_array_t { %extend wrapped_array_t { inline size_t __len__() const { qnotused($self); return N; } - inline const Type& __getitem__(size_t i) const throw(std::out_of_range) { + inline const Type& __getitem__(size_t i) const { if ( i >= N ) throw std::out_of_range("out of bounds access"); return $self->data[i]; } - inline void __setitem__(size_t i, const Type& v) throw(std::out_of_range) { + inline void __setitem__(size_t i, const Type& v) { if ( i >= N ) throw std::out_of_range("out of bounds access"); $self->data[i] = v; } + inline bytevec_t _get_bytes() const { + bytevec_t bts; + bts.resize(N * sizeof(Type)); + memmove(bts.begin(), $self->data, bts.size()); + return bts; + } + + inline void _set_bytes(const bytevec_t &bts) { + if ( bts.size() > N * sizeof(Type) ) + throw std::out_of_range("out of bounds access"); + memset($self->data, 0, sizeof($self->data)); + memmove($self->data, bts.begin(), bts.size()); + } + %pythoncode { __iter__ = ida_idaapi._bounded_getitem_iterator + bytes = property(_get_bytes, _set_bytes) } } @@ -1253,13 +1241,13 @@ struct dynamic_wrapped_array_t { %extend dynamic_wrapped_array_t { inline size_t __len__() const { return $self->count; } - inline const Type& __getitem__(size_t i) const throw(std::out_of_range) { + inline const Type& __getitem__(size_t i) const { if ( i >= $self->count ) throw std::out_of_range("out of bounds access"); return $self->data[i]; } - inline void __setitem__(size_t i, const Type& v) throw(std::out_of_range) { + inline void __setitem__(size_t i, const Type& v) { if ( i >= $self->count ) throw std::out_of_range("out of bounds access"); $self->data[i] = v; @@ -1284,7 +1272,7 @@ struct dynamic_wrapped_array_t { %typemap(check) tinfo_t * { // %typemap(check) tinfo_t * - if ( $1 == NULL ) + if ( $1 == nullptr ) SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "$symname" "', argument " "$argnum"" of type '" "$1_type""'"); } @@ -1317,7 +1305,6 @@ struct dynamic_wrapped_array_t { %apply (char *STRING, int LENGTH) { (const void *buf, size_t len) }; %apply (char *STRING, int LENGTH) { (const void *value, size_t length) }; %apply (char *STRING, int LENGTH) { (const void *dataptr,size_t len) }; -#ifdef PY3 %define %const_pointer_and_size(PTRTYPE, BUFNAME, SIZENAME, STORAGE_TYPE, CONVERTER, LENGTH_GETTER) %typemap(in) (const PTRTYPE *BUFNAME, size_t SIZENAME) (STORAGE_TYPE tmp) { @@ -1339,11 +1326,11 @@ struct dynamic_wrapped_array_t { { // %typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER) (const PTRTYPE *BUFNAME, size_t SIZENAME) $1 = PyBytes_Check($input) ? 1 : 0; } - %const_pointer_and_size(PTRTYPE, BUFNAME, SIZENAME, bytevec_t, IDAPyBytes_AsBytes, size) + %const_pointer_and_size(PTRTYPE, BUFNAME, SIZENAME, bytevec_t, PyBytes_as_bytevec_t, size) %enddef %define %const_char_pointer_and_size(PTRTYPE, BUFNAME, SIZENAME) - %const_pointer_and_size(PTRTYPE, BUFNAME, SIZENAME, qstring, IDAPyStr_AsUTF8, length) + %const_pointer_and_size(PTRTYPE, BUFNAME, SIZENAME, qstring, PyUnicode_as_qstring, length) %enddef %const_void_pointer_and_size(void, buf, size); @@ -1352,7 +1339,6 @@ struct dynamic_wrapped_array_t { %const_void_pointer_and_size(void, value, length); %const_void_pointer_and_size(void, dataptr, len); %const_char_pointer_and_size(char, value, length); -#endif // Create wrapper classes for basic type arrays %array_class(uchar, uchar_array); @@ -1367,12 +1353,26 @@ struct dynamic_wrapped_array_t { %{ -SWIGINTERN PyObject *qstrvec2pylist(const qstrvec_t &vec) +#define S2LF_EMPTY_NONE 0x1 +SWIGINTERN PyObject *qstrvec2pylist(const qstrvec_t &vec, int flags=0) { size_t n = vec.size(); PyObject *py_list = PyList_New(n); for ( size_t i=0; i < n; ++i ) - PyList_SetItem(py_list, i, IDAPyStr_FromUTF8AndSize(vec[i].c_str(), vec[i].length())); + { + const qstring &s = vec[i]; + PyObject *o; + if ( s.empty() && (flags & S2LF_EMPTY_NONE) == S2LF_EMPTY_NONE ) + { + Py_INCREF(Py_None); + o = Py_None; + } + else + { + o = PyUnicode_FromStringAndSize(s.c_str(), s.length()); + } + PyList_SetItem(py_list, i, o); + } return py_list; } %} @@ -1410,17 +1410,17 @@ SWIGINTERN PyObject *qstrvec2pylist(const qstrvec_t &vec) } //------------------------------------------------------------------------- -%define %uint_result_as_output(TYPE, CONVFUNC) -%typemap(in,numinputs=0) TYPE *result (TYPE temp) +%define %_uint_result_as_output(TYPE, CONVFUNC, CHECK_EXPR) +%typemap(in,numinputs=0) TYPE *result (TYPE temp = 0) { - // %uint_result_as_output(TYPE, CONVFUNC) %typemap(in,numinputs=0) TYPE *result + // %_uint_result_as_output(TYPE, CONVFUNC, CHECK_EXPR) %typemap(in,numinputs=0) TYPE *result $1 = &temp; } %typemap(argout) TYPE *result { - // %uint_result_as_output(TYPE, CONVFUNC) %typemap(argout) TYPE *result + // %_uint_result_as_output(TYPE, CONVFUNC) %typemap(argout) TYPE *result Py_XDECREF(resultobj); - if ( int(result) > 0 ) + if ( CHECK_EXPR ) { resultobj = CONVFUNC(*(TYPE *) $1); } @@ -1431,10 +1431,18 @@ SWIGINTERN PyObject *qstrvec2pylist(const qstrvec_t &vec) } } %enddef + +//------------------------------------------------------------------------- +%define %uint_result_as_output(TYPE, CONVFUNC) +%_uint_result_as_output(TYPE, CONVFUNC, int(result) > 0); +%enddef + %uint_result_as_output(uint32, PyLong_FromUnsignedLong); %uint_result_as_output(uint64, PyLong_FromUnsignedLongLong); +%uint_result_as_output(int64, PyLong_FromLongLong); %apply uint32 *result { uint32 *out }; %apply uint64 *result { uint64 *out }; +%apply int64 *result { int64 *out }; #ifdef __EA64__ %apply uint64 *result { ea_t *result }; #else @@ -1463,11 +1471,14 @@ SWIGINTERN PyObject *qstrvec2pylist(const qstrvec_t &vec) // get_[next|prev]_serial_enum_member() take serials as input, and have the result present as output %apply unsigned char *INOUT { uchar *in_out_serial }; -%define %nonnul_argument_prototype(PROTO, ARGSIG) +// This is meant only for the code that is defined in IDAPython, +// as SDK non-null pointers should be marked by NONNULL and handled +// automatically. +%define %pywraps_nonnul_argument_prototype(PROTO, ARGSIG) /* first, define the typemap */ %typemap(check) (ARGSIG) { - if ( $1 == NULL ) + if ( $1 == nullptr ) SWIG_exception_fail(SWIG_ValueError, "invalid null pointer " "in method '" "$symname" "', argument " "$argnum"" of type '" "$1_type""'"); } /* Then, redeclare prototype. Note that we want this prototype _only_ seen */ @@ -1607,7 +1618,7 @@ SWIGINTERN void __raise_u() SWIGINTERN void __raise_e(const std::exception &e) { const char *what = e.what(); - if ( what == NULL || what[0] == '\0' ) + if ( what == nullptr || what[0] == '\0' ) { __raise_u(); } @@ -1617,6 +1628,16 @@ SWIGINTERN void __raise_e(const std::exception &e) } } +// a setter for the 'interr_should_throw' flag. Since that flag has to be set, +// or reset possibly in the context of stack unwinding, let's leave it up to +// the compiler to make sure that it's reset as it should be using RAII. +struct set_interr_throws_t +{ + bool was; + set_interr_throws_t() { was = set_interr_throws(true); } + ~set_interr_throws_t() { set_interr_throws(was); } +}; + SWIGINTERN void __raise_ie(const interr_exc_t &ie) { qstring emsg; @@ -1627,25 +1648,25 @@ SWIGINTERN void __raise_ie(const interr_exc_t &ie) SWIGINTERN void __raise_de(const Swig::DirectorException &e) { bool handled = false; - if ( PyErr_Occurred() != NULL ) + if ( PyErr_Occurred() != nullptr ) { // Add the new bits of info to the error PyObject *exception, *v, *tb; PyErr_Fetch(&exception, &v, &tb); - if ( exception != NULL ) + if ( exception != nullptr ) { PyErr_NormalizeException(&exception, &v, &tb); - if ( exception != NULL ) + if ( exception != nullptr ) { // FIXME: We retrieve the message, but not the context (i.e., the // stack trace.) Ideally we should perhaps swoop in our own // 'sys.stderr', call PyErr_Print(), retrieve the result, and // append that to the new exception message. newref_t as_str(PyObject_Str(v)); - if ( as_str != NULL ) + if ( as_str != nullptr ) { qstring buf; - IDAPyStr_AsUTF8(&buf, as_str.o); + PyUnicode_as_qstring(&buf, as_str.o); buf.insert(" : "); buf.insert(e.getMessage()); PyErr_SetString(PyExc_RuntimeError, buf.c_str()); @@ -1681,6 +1702,14 @@ SWIGINTERN bool __chkreqidb() %} +%define %force_declare_SWiG_type(NAME) +// KLUDGE: I have no idea how to force SWiG to declare a type for a module, +// unless that type is indeed used. That's why this wrapper exists.. +%inline %{ +inline void _kludge_force_declare_##NAME(const NAME *) {} +%} +%enddef + %define %modal_dialog_triggering_function(NAME) %thread NAME; %pythonprepend NAME @@ -1703,5 +1732,332 @@ SWIGINTERN bool __chkreqidb() // modules. ${ALL_IMPORTS} +// This is where all the collected NONNULL information coming +// from the SDK, will be injected in the form of 'check' +// typemaps. +${NONNULL_TYPEMAPS} + +// gdl_graph_t & subclasses +%cstring_output_maxstr_none(char *iobuf, int iobufsize); + +%typemap(argout) (char *iobuf, int iobufsize) +{ + // %typemap(argout) (char *iobuf, int iobufsize) + qfree($1); +} + +%typemap(directorout) char *get_node_label (qstring tmp) +{ + // %typemap(directorout) char *get_node_label (qstring tmp) + if ( PyUnicode_as_qstring(&tmp, result) ) + ::qstrncpy(iobuf, tmp.c_str(), iobufsize); + else + Swig::DirectorTypeMismatchException::raise( + SWIG_ErrorType(SWIG_TypeError), + "in output value of type 'char *' in method '$symname'"); + $result = iobuf; +} + +%fragment("call_py_testf_t", "header") +{ + bool call_py_testf_t(flags64_t flags, void *ud) + { + PYW_GIL_CHECK_LOCKED_SCOPE(); + if ( PyErr_Occurred() ) + return false; + PyObject *py_callable = (PyObject *) ud; + QASSERT(0, PyCallable_Check(py_callable)); + newref_t py_flags(PyLong_FromUnsignedLong(flags)); + newref_t result(PyObject_CallFunctionObjArgs(py_callable, py_flags.o, nullptr)); + return result != nullptr && PyObject_IsTrue(result.o); + } +} + +%typemap(in, fragment="call_py_testf_t") (testf_t *func, void *ud) +{ + // %typemap(in, fragment="call_py_testf_t") (testf_t *func, void *ud) + if ( !PyCallable_Check($input) ) + SWIG_exception_fail( + SWIG_TypeError, + "in method '" "$symname" "', argument " "$argnum"" of type 'callable'"); + $1 = call_py_testf_t; + $2 = $input; +} + +%define %define_regval_python_accessors() +%{ +//------------------------------------------------------------------------- +struct _cvt_status_t +{ + PyObject *def_err_class; + const char *def_err_string; + + qstring err_string; + PyObject *err_class; + bool ok; + + _cvt_status_t(PyObject *_def_err_class, const char *_def_err_string) + : def_err_class(_def_err_class), + def_err_string(_def_err_string), + err_class(nullptr), + ok(true) {} + + ~_cvt_status_t() + { + if ( !ok ) + { + if ( err_class == nullptr ) + { + err_class = def_err_class; + err_string = def_err_string; + } + PyErr_SetString(err_class, err_string.c_str()); + } + } + + qstring &failed(PyObject *_err_class) + { + QASSERT(30587, !ok); + err_class = _err_class; + return err_string; + } +}; + +static PyObject *get_regval_t( + const regval_t &rv, + op_dtype_t dtype) +{ + PyObject *res = nullptr; + _cvt_status_t status(PyExc_ValueError, "Conversion failed"); + switch ( dtype ) + { + default: + if ( rv.ival <= uint64(LONG_MAX) ) + res = PyInt_FromLong(long(rv.ival)); + else + res = PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) rv.ival); + break; + case dt_float: + case dt_tbyte: + case dt_double: + case dt_ldbl: + { + double dbl; + status.ok = rv.fval.to_double(&dbl) == REAL_ERROR_OK; + if ( status.ok ) + res = PyFloat_FromDouble(dbl); + } + break; + case dt_byte16: + case dt_byte32: + case dt_byte64: + { + const bytevec_t &b = rv.bytes(); + res = PyBytes_FromStringAndSize((const char *) b.begin(), b.size()); + } + break; + } + return res; +} + +bool set_regval_t(regval_t **out, regval_t *buf, op_dtype_t dtype, PyObject *o) +{ + if ( o == Py_None ) + return false; + + int cvt = SWIG_ConvertPtr(o, (void **) out, SWIGTYPE_p_regval_t, 0); + if ( SWIG_IsOK(cvt) && *out != nullptr ) + return true; + + struct ida_local cvt_t + { + static bool convert_int(regval_t *lout, PyObject *in, op_dtype_t dt) + { + uint64 u64 = 0; + _cvt_status_t status(PyExc_TypeError, "Expected integer value"); + size_t nbits = 0; + switch ( dt ) + { + case dt_byte: nbits = 8; break; + case dt_word: nbits = 16; break; + default: + case dt_dword: nbits = 32; break; + case dt_qword: nbits = 64; break; + } + status.ok = PyW_GetNumber(in, &u64); + if ( status.ok ) + { + if ( nbits < 64 ) + { + status.ok = u64 < (1ULL << nbits); + if ( !status.ok ) + status.failed(PyExc_ValueError).sprnt("Integer value too large to fit in %" FMT_Z " bits", nbits); + } + } + if ( status.ok ) + lout->set_int(u64); + return status.ok; + } + + static bool convert_float(regval_t *lout, PyObject *in, op_dtype_t) + { + fpvalue_t fpval; + _cvt_status_t status(PyExc_TypeError, "Expected float value"); + double dbl = PyFloat_AsDouble(in); + status.ok = PyErr_Occurred() == nullptr; + if ( status.ok ) + status.ok = ieee_realcvt(&dbl, &fpval, 003 /*load double*/) == REAL_ERROR_OK; + if ( !status.ok ) + status.failed(PyExc_ValueError).sprnt("Float conversion failed"); + if ( status.ok ) + lout->set_float(fpval); + return status.ok; + } + + static bool convert_bytes(regval_t *lout, PyObject *in, op_dtype_t dt) + { + bytevec_t bytes; + _cvt_status_t status(PyExc_TypeError, "Unexpected value"); + size_t needed = 0; + switch ( dt ) + { + case dt_byte16: needed = 16; break; + case dt_byte32: needed = 32; break; + case dt_byte64: needed = 64; break; + default: + break; + } + status.ok = needed > 0; + Py_ssize_t got; + if ( status.ok ) + { + status.ok = false; + if ( PyBytes_Check(in) ) + { + char *buf; + status.ok = PyBytes_AsStringAndSize(in, &buf, &got) >= 0 && got <= needed; + if ( status.ok ) + bytes.append((const uchar *) buf, got); + else + status.failed(PyExc_ValueError).sprnt( + "List of bytes is too long; was expecting at most %d bytes", + int(needed)); + } + else if ( PyLong_Check(in) ) + { + uint64 u64 = 0; + status.ok = PyW_GetNumber(in, &u64); + if ( status.ok ) + { + got = sizeof(u64); + bytes.resize(got, 0); + memcpy(bytes.begin(), &u64, got); + } + else + { + if ( PyLong_CheckExact(in) ) + goto TRY_RAW_LONG; + } + } + else if ( PyLong_CheckExact(in) ) + { +TRY_RAW_LONG: + // (possibly very long) int or long value. Apparently it's rather + // safe to use _PyLong_AsByteArray (it's even present in 3.x) + // https://stackoverflow.com/questions/18290507/python-extension-construct-and-inspect-large-integers-efficiently + + // /* _PyLong_AsByteArray: Convert the least-significant 8*n bits of long + // v to a base-256 integer, stored in array bytes. Normally return 0, + // return -1 on error. + // If little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at + // bytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and + // the LSB at bytes[n-1]. + // If is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes + // are filled and there's nothing special about bit 0x80 of the MSB. + // If is_signed is 1/true, bytes is filled with the 2's-complement + // representation of v's value. Bit 0x80 of the MSB is the sign bit. + // Error returns (-1): + // + is_signed is 0 and v < 0. TypeError is set in this case, and bytes + // isn't altered. + // + n isn't big enough to hold the full mathematical value of v. For + // example, if is_signed is 0 and there are more digits in the v than + // fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of + // being large enough to hold a sign bit. OverflowError is set in this + // case, but bytes holds the least-significant n bytes of the true value. + // */ + bytes.resize(needed, 0); + status.ok = pylong_to_byte_array( + &bytes, + in, + /*little_endian=*/ true, + /*is_signed=*/ true) >= 0; + if ( status.ok ) + got = needed; + else + status.failed(PyExc_ValueError).sprnt( + "Integer value is too large to fit in %d bytes", + int(needed)); + } + } + if ( status.ok ) + { + if ( got < needed ) + bytes.growfill(needed - got, 0); + lout->set_bytes(bytes); + } + return status.ok; + } + }; + + bool ok = false; + regval_t &rv = *buf; + switch ( dtype ) + { + case dt_byte: + case dt_word: + case dt_dword: + case dt_qword: + default: + ok = cvt_t::convert_int(&rv, o, dtype); + break; + case dt_float: + case dt_tbyte: + case dt_double: + case dt_ldbl: + ok = cvt_t::convert_float(&rv, o, dtype); + break; + case dt_byte16: + case dt_byte32: + case dt_byte64: + ok = cvt_t::convert_bytes(&rv, o, dtype); + break; + } + if ( ok ) + *out = &rv; + return ok; +} +%} +%enddef + +%fragment("cvt_func_t", "header") +{ + bool cvt_func_t(func_t **out, PyObject *obj) + { + uint64 u64; + if ( PyW_GetNumber(obj, &u64) ) + { + *out = get_func(ea_t(u64)); + } + else + { + void *p = 0; + if ( !SWIG_IsOK(SWIG_ConvertPtr(obj, &p, SWIGTYPE_p_func_t, 0 | 0 )) ) + return false; + *out = reinterpret_cast<func_t*>(p); + } + return true; + } +} + #endif // __HEADER_I__ // END: auto-inserted header diff --git a/tools/docs/epytext.py b/tools/docs/epytext.py new file mode 100755 index 0000000..7116cd6 --- /dev/null +++ b/tools/docs/epytext.py @@ -0,0 +1,309 @@ + +import re + +class HR_Epytext: + def __init__(self, text): + self.html_translation = { + "&" : "&", + "<" : "<", + ">" : ">", + "\"": """, + "'" : "'" + } + + identifier = r"[a-zA-Z_][a-zA-Z_0-9]*" + parameter = r"{}(?:=[^,)]*)?".format(identifier) + macro_tail = r"(?:[^,}]+,)*(?:[^,}]+})?" + + self.re_non_blank = re.compile(r"[^ ]") + self.re_identifier = re.compile(r" *({})" \ + .format(identifier)) + self.re_signature = re.compile(r"^ *{} *\( *({} *(, *{} *)*)?\) *(->.*)?$" \ + .format(identifier, parameter, parameter)) + self.re_ident_list = re.compile(r" *({}(?: *, *{})*)" \ + .format(identifier, identifier)) + self.re_macro = re.compile(r"\\ *({}) *{{({})" \ + .format(identifier, macro_tail)) + self.re_macro_more = re.compile(macro_tail) + + self.blocks = self._blocks(text) + + def html(self): + text = "" + for block in self.blocks: + text += block.format() + return text + + def _blocks(self, text): + state = state_t() + blocks = [] + fields = False + flen = 0 + stack = [] + in_macro = False + + def end(): + # close the current paragraph (if it has text at all) + if state.text: + while stack and state.indent <= stack[-1][0]: # nest blocks + stack.pop() + + parent = stack[-1][1] if stack else None + block = parblock_t(parent, fields, flen, + state.indent, state.text, state.bullet) + + stack.append( (state.indent, block) ) + + blocks.append(block) + state.reset() + + lines = text.split("\n") + for line in lines: + m = self.re_non_blank.search(line) + start = m.start() if m else 0 + line = line[start:] + + if in_macro: + m = self.re_macro_more.match(line) + if m: + macro_tail = self._more_macro_tail(macro_tail, m.group(0)) + if not self._is_macro_end(macro_tail): + continue + else: + # broken macro end; finish it here + self._verb("broken macro \"{}\" {{ \"{}\", end: \"{}\"".format( + macro_name, macro_tail, line)) + in_macro = False + state.text += self._expand_macro(macro_name, macro_tail) + line = line[m.end():] + else: + m = self.re_macro.search(line) + if m: + self._process_line(start, line[:m.start()], state, end) + macro_name = m.group(1) + macro_tail = m.group(2) + in_macro = not self._is_macro_end(macro_tail) + if in_macro: + continue + state.text += self._expand_macro(macro_name, macro_tail) + line = line[m.end():] + + self._process_line(start, line, state, end) + + end() + blocks = self._collect_bullet_lists(blocks) + + # set up nested blocks + top_blocks = [] + for block in blocks: + if block.parent is None: + top_blocks.append(block) + else: + block.parent.add_child(block) + + return top_blocks + + def _process_line(self, start, line, state, end): + m = self.re_signature.match(line) + if m: + end() + state.text = "<strong class=\"epy_sig\">{}</strong>".format( + self._escape(line)) + end() + return + + if not line: + end() + return + + if line[0] == "@": + end() + # as per the EpyText spec, all lines from now on are fields + fields = True + flen = 1 + + m = self.re_identifier.match(line, 1) + if m: + mb = self.re_non_blank.search(line, m.end()) + flen = mb.start() if mb else m.end() + + if m.group(1) == "param": + cls = "epy_parameter" + mp = self.re_ident_list.match(line, m.end()) + if mp: + m = mp + else: + cls = "epy_tag" + line = "<strong class=\"{}\">{}</strong>" \ + .format(cls, m.group(1)) \ + + self._escape(line[m.end():]) + + # Require at least one blank after the "-"; + # f.i. "-1 (C++: int)" is not a bullet item. + # Allow also "* " as bullet marker. + elif line[:2] in ("- ", "* "): + end() + m = self.re_non_blank.search(line, 1) + line = self._escape(line[m.start():]) if m else "" + state.bullet = True + else: + line = self._escape(line) + + if start != state.indent: + end() + state.indent = start + + if state.text: + state.text += "\n" + state.text += line + + def _more_macro_tail(self, tail, more_tail): + # hack around textwrap + if tail[-1:] == "-": + return tail + more_tail + return tail + " " + more_tail + + def _is_macro_end(self, tail): + return tail[-1:] == "}" + + def _expand_macro(self, name, tail): + params = self._parse_macro_tail(tail) + + if name == "sq": + self._adjust_macro_params(params, 4, 4) + params = [p.strip() for p in params] + table = """ +<table border="1"> + <tr><td>{}</td><td>{}</td></tr> + <tr><td>{}</td><td>{}</td></tr> +</table> +""" + return table.format(*params) + + if name == "link": + self._adjust_macro_params(params, 1, 2) + if len(params) == 1: + params += params + return "<a href=\"{}\">{}</a>".format(*params) + + self._verb("Unimplemented macro {}, params {}".format(repr(name), repr(params))) + return "\\{}{{{}}}".format(name, ",".join(params)) + + def _parse_macro_tail(self, tail): + params = tail.split(",") + + if params[-1][-1:] == "}": + params[-1] = params[-1][:-1] + elif params[-1] == "": + params.pop() + + return params + + def _adjust_macro_params(self, params, n_min, n_max): + if len(params) < n_min: + params.extend( (4 - len(params)) * [''] ) + while len(params) > n_max: + params.pop() + + def _collect_bullet_lists(self, blocks): + out = [] + lists = [] + + for block in blocks: + if block.bullet: + while lists and lists[-1].start > block.start: + lists.pop() + if not lists or lists[-1].start != block.start: + lists.append(listblock_t(block.parent)) + out.append(lists[-1]) + lists[-1].add_child(block) + else: + if lists: + lists = [] + out.append(block) + + return out + + def _escape(self, text): + # avoid the multiple versions of html.escape + trans = "" + for c in text: + if c in self.html_translation: + trans += self.html_translation[c] + else: + trans += c + return trans + + def _verb(self, message): + print("VERBOSE:", message) + +class state_t: + def __init__(self, indent=None, text=None, bullet=None): + if indent is None: + self.reset() + else: + self.indent = indent + self.text = text + self.bullet = bullet + + def reset(self): + self.indent = -1 + self.text = "" + self.bullet = False + +class block_t: + def __init__(self, parent): + self.parent = parent + self.children = [] + + def add_child(self, block): + self.children.append(block) + +class parblock_t(block_t): + def __init__(self, parent, field, flen, start, text, bullet): + super().__init__(parent) + self.field = field + self.flen = flen + self.start = start + self.text = text + self.bullet = bullet + + def format(self): + start = self.start + if self.field: + start = max(0, start - self.flen) + if self.parent: + cls = "epy_nested" + start = max(0, start - self.parent.start) + elif self.field: + cls = "epy_field" + else: + cls ="epy_par" + + tag = "span" if self.bullet else "div" + text = "" + if self.text: + text += "<{} class=\"{}\">\n".format(tag, cls) + text += self.text + for child in self.children: + text += child.format() + if self.text: + text += "</{}>\n".format(tag) + + return text + +class listblock_t(block_t): + def __init__(self, parent): + super().__init__(parent) + + @property + def start(self): + return self.children[0].start + + def format(self): + text = "<ul class=\"epy_ul\">\n" + for child in self.children: + text += "<li class=\"epy_li\">" + child.format() + "</li>\n" + text += "</ul>\n" + + return text diff --git a/tools/docs/hrdoc.cfg.in b/tools/docs/hrdoc.cfg.in deleted file mode 100644 index 167ce99..0000000 --- a/tools/docs/hrdoc.cfg.in +++ /dev/null @@ -1,147 +0,0 @@ -[epydoc] -# The list of objects to document. Objects can be named using -# dotted names, module filenames, or package directory names. -# Aliases for this option include "objects" and "values". -modules: idc, idautils, idaapi, %IDA_MODULES% - -# The type of output that should be generated. Should be one -# of: html, text, latex, dvi, ps, pdf. -output: html - -# The path to the output directory. May be relative or absolute. -target: hr-html/ - -# An integer indicating how verbose epydoc should be. The default -# value is 0; negative values will supress warnings and errors; -# positive values will give more verbose output. -verbosity: 0 - -# A boolean value indicating that Epydoc should show a tracaback -# in case of unexpected error. By default don't show tracebacks -debug: 0 - -# If True, don't try to use colors or cursor control when doing -# textual output. The default False assumes a rich text prompt -simple-term: 0 - - -### Generation options - -# The default markup language for docstrings, for modules that do -# not define __docformat__. Defaults to epytext. -docformat: epytext - -# Whether or not parsing should be used to examine objects. -parse: yes - -# Whether or not introspection should be used to examine objects. -introspect: yes - -# Don't examine in any way the modules whose dotted name match this -# regular expression pattern. -#exclude - -# Don't perform introspection on the modules whose dotted name match this -# regular expression pattern. -#exclude-introspect - -# Don't perform parsing on the modules whose dotted name match this -# regular expression pattern. -#exclude-parse - -# The format for showing inheritance objects. -# It should be one of: 'grouped', 'listed', 'included'. -inheritance: listed - -# Whether or not to inclue private variables. (Even if included, -# private variables will be hidden by default.) -private: no - -# Whether or not to list each module's imports. -imports: no - -# Whether or not to include syntax highlighted source code in -# the output (HTML only). -sourcecode: no - -# Whether or not to includea a page with Epydoc log, containing -# effective option at the time of generation and the reported logs. -include-log: no - - -### Output options - -# The documented project's name. -name: IDAPython - -# The CSS stylesheet for HTML output. Can be the name of a builtin -# stylesheet, or the name of a file. -css: white - -# The documented project's URL. -url: http://code.google.com/p/idapython/ - -# HTML code for the project link in the navigation bar. If left -# unspecified, the project link will be generated based on the -# project's name and URL. -link: <a href="http://www.hex-rays.com/">Hex-Rays</a> - -# The "top" page for the documentation. Can be a URL, the name -# of a module or class, or one of the special names "trees.html", -# "indices.html", or "help.html" -#top: os.path - -# An alternative help file. The named file should contain the -# body of an HTML file; navigation bars will be added to it. -#help: my_helpfile.html - -# Whether or not to include a frames-based table of contents. -frames: yes - -# Whether each class should be listed in its own section when -# generating LaTeX or PDF output. -separate-classes: no - - -### API linking options - -# Define a new API document. A new interpreted text role -# will be created -#external-api: epydoc - -# Use the records in this file to resolve objects in the API named NAME. -#external-api-file: epydoc:api-objects.txt - -# Use this URL prefix to configure the string returned for external API. -#external-api-root: epydoc:http://epydoc.sourceforge.net/api - - -### Graph options - -# The list of graph types that should be automatically included -# in the output. Graphs are generated using the Graphviz "dot" -# executable. Graph types include: "classtree", "callgraph", -# "umlclass". Use "all" to include all graph types -#graph: classtree - -# The path to the Graphviz "dot" executable, used to generate -# graphs. -#dotpath: /usr/local/bin/dot - -# The name of one or more pstat files (generated by the profile -# or hotshot module). These are used to generate call graphs. -#pstat: profile.out - -# Specify the font used to generate Graphviz graphs. -# (e.g., helvetica or times). -graph-font: Helvetica - -# Specify the font size used to generate Graphviz graphs. -#graph-font-size: 10 - - -### Return value options - -# The condition upon which Epydoc should exit with a non-zero -# exit status. Possible values are error, warning, docstring_warning -#fail-on: error diff --git a/tools/docs/hrdoc.py b/tools/docs/hrdoc.py index e673fe9..ae064ca 100644 --- a/tools/docs/hrdoc.py +++ b/tools/docs/hrdoc.py @@ -2,144 +2,193 @@ from __future__ import print_function import os import sys import shutil +import json from glob import glob +from typing import Dict, List +from functools import lru_cache + +tools_docs_path = os.path.abspath(os.path.dirname(__file__)) +idapython_path = os.path.abspath(os.path.join(tools_docs_path, "..", "..")) +idasrc_path = os.path.abspath(os.path.join(idapython_path, "..", "..", "..")) + +import idc + +from argparse import ArgumentParser +parser = ArgumentParser() +parser.add_argument("-o", "--output", required=True) +parser.add_argument("-m", "--modules", required=True) +parser.add_argument("-s", "--include-source-for-modules", required=True) +parser.add_argument("-x", "--exclude-modules-from-searchable-index", required=True) +parser.add_argument("-v", "--verbose", default=False, action="store_true") + +args = parser.parse_args(idc.ARGV[1:]) + +args.modules = args.modules.split(",") +args.include_source_for_modules = args.include_source_for_modules.split(",") +args.exclude_modules_from_searchable_index = args.exclude_modules_from_searchable_index.split(",") try: - import epydoc.apidoc - import epydoc.cli +# pdoc location + pdoc_path = os.path.join(idasrc_path, "third_party", "pdoc", "pdoc-master") + sys.path.append(pdoc_path) + sys.path.append(tools_docs_path) # for the custom epytext + import pdoc except ImportError as e: - import idc import traceback idc.msg("Couldn't import module %s\n" % traceback.format_exc()) idc.qexit(-1) -# -------------------------------------------------------------------------- -DOC_DIR = 'hr-html' - -# -------------------------------------------------------------------------- -def log(msg): - #print msg - pass - -def add_header(lines): - S1 = 'href="epydoc.css"' - p = lines.find(S1) - if p < 0: - return None - p = lines.find('\n', p) - if p < 0: - return None - return lines[0:p] + '\n <link href="/style.css" rel="stylesheet" type="text/css">' + lines[p:] - - -# -------------------------------------------------------------------------- -def add_footer(lines): - S1 = 'Generated by Epydoc' - S2 = '</table>' - p = lines.find(S1) - if p < 0: - return None - p = lines.find(S2, p) - if p < 0: - return None - p += len(S2) - return lines[0:p] + '\n<!--#include virtual="../_footer.shtml" -->' + lines[p:] - -# -------------------------------------------------------------------------- -def define_idaapi_resolver(): - """ - Whenever a module named \"idaapi_<something>\" is - spotted, turn it into \"idaapi\". - """ - dn = epydoc.apidoc.DottedName.__init__ - def resolver(piece): - if piece is not None and isinstance(piece, basestring) and piece.startswith("idaapi_"): - res = "idaapi" - else: - res = piece - log("Resolver '%s' => '%s'" % (piece, res)) - return res - def wrapper(self, *pieces, **options): - return dn(self, *map(resolver, pieces), **options); - epydoc.apidoc.DottedName.__init__ = wrapper - # -------------------------------------------------------------------------- def gen_docs(): - import swigdocs + sys.path.insert(0, os.path.join(idapython_path, "tools")) - define_idaapi_resolver() + # trash existing doc + if os.path.isdir(args.output): + shutil.rmtree(args.output) - swigdocs.gen_docs(outfn = 'pywraps.py') - # append obj/x86_win_vc_32/idaapi.py to it -# os.system(r'copy /b idaapi.py+..\obj\x86_win_vc_32\idaapi.py idaapi.py') + # generate new doc + build_documentation() - # delete all output files - for fn in glob('hr-html/*'): - os.unlink(fn) - - epydoc.cli.optparse.sys.argv = [ 'epydoc', - '--config', '../tools/docs/hrdoc.cfg', - '--simple-term' - ] - - # Generate the documentation - epydoc.cli.cli() # -------------------------------------------------------------------------- -def patch_docs(): - shutil.copy('../../tools/docs/hrdoc.css', 'epydoc.css') - os.system('chmod +w epydoc.css') +# This is a ripoff of pdoc's cli.py, w/ minor adjustments +def gen_lunr_search(modules: List[pdoc.Module], + index_docstrings: bool, + template_config: dict): + """Generate index.js for search""" - for fn in glob('*.html'): - with open(fn, 'r') as f: - lines = f.read() + def trim_docstring(docstring): + return re.sub(r''' + \s+| # whitespace sequences + \s+[-=~]{3,}\s+| # title underlines + ^[ \t]*[`~]{3,}\w*$| # code blocks + \s*[`#*]+\s*| # common markdown chars + \s*([^\w\d_>])\1\s*| # sequences of punct of the same kind + \s*</?\w*[^>]*>\s* # simple HTML tags + ''', ' ', docstring, flags=re.VERBOSE | re.MULTILINE) - r = add_header(lines) - if r: - lines = r - r = add_footer(lines) - if not r: - print("-", end=' ') - continue + def recursive_add_to_index(dobj): + info = { + 'ref': dobj.refname, + 'url': to_url_id(dobj.module), + } + if index_docstrings: + info['doc'] = trim_docstring(dobj.docstring) + if isinstance(dobj, pdoc.Function): + info['func'] = 1 + index.append(info) + for member_dobj in getattr(dobj, 'doc', {}).values(): + recursive_add_to_index(member_dobj) - with open(fn, 'w') as f: - f.write(r) - print("+", end=' ') + @lru_cache() + def to_url_id(module): + url = module.url() + if url not in url_cache: + url_cache[url] = len(url_cache) + return url_cache[url] - print("\nDocumentation patched!") + index: List[Dict] = [] + url_cache: Dict[str, int] = {} + for top_module in modules: + recursive_add_to_index(top_module) + urls = sorted(url_cache.keys(), key=url_cache.__getitem__) + + main_path = args.output + with open(os.path.join(main_path, 'index.js'), "w", encoding="utf-8") as f: + f.write("URLS=") + json.dump(urls, f, indent=0, separators=(',', ':')) + f.write(";\nINDEX=") + json.dump(index, f, indent=0, separators=(',', ':')) + + # Generate search.html + with open(os.path.join(main_path, 'doc-search.html'), "w", encoding="utf-8") as f: + rendered_template = pdoc._render_template('/search.mako', **template_config) + f.write(rendered_template) + + +# -------------------------------------------------------------------------- +def build_documentation(): + + # import all modules + def docfilter(obj): + # print("OBJ: %s" % str(obj)) + if obj.name in [ + "thisown", + "SWIG_PYTHON_LEGACY_BOOL", + ]: + return False + return True + + modules = [] + for module in args.modules: + print("Loading: %s" % module) + modules.append(pdoc.Module(module, docfilter=docfilter)) + + print(" {} module{} in the list.".format( + len(modules), "" if len(modules) == 1 else "s")) + + pdoc.link_inheritance() + + # + # ida_*.html + # + pdoc.tpl_lookup.directories.insert(0, os.path.join(tools_docs_path, "templates")) + show_source_code = set(args.include_source_for_modules) + + def all_modules(module_collection): + for module in module_collection: + yield module + + yield from all_modules(module.submodules()) + + for module in all_modules(modules): + module.obj.__docformat__ = "hr_epy" + + print("Processing: %s" % module.name) + html = module.html( + show_source_code=module.name in show_source_code, + search_prefix=module.name) + + path = os.path.join(args.output, module.url()) + dirname = os.path.dirname(path) + os.makedirs(dirname, exist_ok=True) + + print("Writing: %s" % path) + with open(path, "w", encoding="utf-8") as f: + f.write(html) + + # + # doc-search.html, index.js + # + template_config = {} + gen_lunr_search( + [mod for mod in modules if mod.name not in args.exclude_modules_from_searchable_index], + index_docstrings=True, + template_config=pdoc._get_config(**template_config).get('lunr_search')) + + # + # index.html + # + path = os.path.join(args.output, "index.html") + class fake_module_t(object): + def __init__(self, name, url): + self.name = name + self._url = url + def url(self): + return self._url + + index_module = fake_module_t("index", "index.html") + html = pdoc._render_template('/index.mako', module=index_module, modules=modules) + with open(path, "w", encoding="utf-8") as f: + f.write(html) # -------------------------------------------------------------------------- def main(): - # Save old directory and adjust import path - curdir = os.getcwd() + os.sep - sys.path.append(curdir + 'python') - sys.path.append(curdir + 'tools') - sys.path.append(curdir + 'docs') - - old_dir = os.getcwd() - - try: - print("Generating documentation.....") - import ida_pro - try: - ida_pro._BC695 - print("'ida_pro._BC695' exists. Please recompile with BC695 undefined (see makefile). Bailing out.") - return -1 - except: - pass # ok - - os.chdir('docs') - gen_docs() - - os.chdir(DOC_DIR) - patch_docs() - - print("Documentation generated!") - - finally: - os.chdir(old_dir) + print("Generating documentation.....") + gen_docs() + print("Documentation generated!") # -------------------------------------------------------------------------- -if __name__ == '__main__': +if __name__ == "__main__": main() qexit(0) diff --git a/tools/docs/templates/config.mako b/tools/docs/templates/config.mako new file mode 100644 index 0000000..442c2ca --- /dev/null +++ b/tools/docs/templates/config.mako @@ -0,0 +1,3 @@ +<%! + lunr_search = {'fuzziness': 1, 'index_docstrings': True} +%> \ No newline at end of file diff --git a/tools/docs/templates/credits.mako b/tools/docs/templates/credits.mako new file mode 100644 index 0000000..816ec24 --- /dev/null +++ b/tools/docs/templates/credits.mako @@ -0,0 +1 @@ +<p>Copyright (c) 2021 Hex-Rays SA. <a href="/terms_of_use.shtml">Terms of use</a> and <a href="/privacy_policy.shtml">privacy policy</a>.</p> diff --git a/tools/docs/templates/head.mako b/tools/docs/templates/head.mako new file mode 100644 index 0000000..68d3418 --- /dev/null +++ b/tools/docs/templates/head.mako @@ -0,0 +1,6 @@ +<style> +#section-intro .epy_par +{ + margin-top: 18px; +} +</style> diff --git a/tools/docs/templates/html.mako b/tools/docs/templates/html.mako new file mode 100644 index 0000000..5061da5 --- /dev/null +++ b/tools/docs/templates/html.mako @@ -0,0 +1,463 @@ +<% + import os + + import pdoc + from pdoc.html_helpers import extract_toc, glimpse, to_html as _to_html + def format_git_link(t, x): + return None # function removed from htmp_helpers by clean.sh + + + def link(dobj: pdoc.Doc, name=None): + name = name or dobj.qualname + ('()' if isinstance(dobj, pdoc.Function) else '') + if isinstance(dobj, pdoc.External) and not external_links: + return name + url = dobj.url(relative_to=module, link_prefix=link_prefix, + top_ancestor=not show_inherited_members) + return f'<a title="{dobj.refname}" href="{url}">{name}</a>' + + + def to_html(text): + return _to_html(text, docformat=docformat, module=module, link=link, latex_math=latex_math) + + + def get_annotation(bound_method, sep=':'): + annot = show_type_annotations and bound_method(link=link) or '' + if annot: + annot = ' ' + sep + '\N{NBSP}' + annot + return annot +%> + +<%def name="ident(name)"><span class="ident">${name}</span></%def> + +<%def name="show_source(d)"> + % if (show_source_code or git_link_template) and d.source and d.obj is not getattr(d.inherits, 'obj', None): + <% git_link = format_git_link(git_link_template, d) %> + % if show_source_code: + <details class="source"> + <summary> + <span>Expand source code</span> + % if git_link: + <a href="${git_link}" class="git-link">Browse git</a> + %endif + </summary> + <pre><code class="python">${d.source | h}</code></pre> + </details> + % elif git_link: + <div class="git-link-div"><a href="${git_link}" class="git-link">Browse git</a></div> + %endif + %endif +</%def> + +<%def name="show_desc(d, short=False)"> + <% + inherits = ' inherited' if d.inherits else '' + docstring = glimpse(d.docstring) if short or inherits else d.docstring + %> + % if d.inherits: + <p class="inheritance"> + <em>Inherited from:</em> + % if hasattr(d.inherits, 'cls'): + <code>${link(d.inherits.cls)}</code>.<code>${link(d.inherits, d.name)}</code> + % else: + <code>${link(d.inherits)}</code> + % endif + </p> + % endif + <div class="desc${inherits}">${docstring | to_html}</div> + % if not isinstance(d, pdoc.Module): + ${show_source(d)} + % endif +</%def> + +<%def name="show_module_list(modules)"> +<h1>Python module list</h1> + +% if not modules: + <p>No modules found.</p> +% else: + <dl id="http-server-module-list"> + % for name, desc in modules: + <div class="flex"> + <dt><a href="${link_prefix}${name}">${name}</a></dt> + <dd>${desc | glimpse, to_html}</dd> + </div> + % endfor + </dl> +% endif +</%def> + +<%def name="show_column_list(items)"> + <% + two_column = len(items) >= 6 and all(len(i.name) < 20 for i in items) + %> + <ul class="${'two-column' if two_column else ''}"> + % for item in items: + <li><code>${link(item, item.name)}</code></li> + % endfor + </ul> +</%def> + +<%def name="show_module(module)"> + <% + variables = module.variables(sort=sort_identifiers) + classes = module.classes(sort=sort_identifiers) + functions = module.functions(sort=sort_identifiers) + submodules = module.submodules() + %> + + <%def name="show_func(f)"> + <dt id="${f.refname}"><code class="name flex"> + <% + params = ', '.join(f.params(annotate=show_type_annotations, link=link)) + return_type = get_annotation(f.return_annotation, '\N{non-breaking hyphen}>') + %> + <span>${f.funcdef()} ${ident(f.name)}</span>(<span>${params})${return_type}</span> + </code></dt> + <dd>${show_desc(f)}</dd> + </%def> + + <header> + % if http_server: + <nav class="http-server-breadcrumbs"> + <a href="/">All packages</a> + <% parts = module.name.split('.')[:-1] %> + % for i, m in enumerate(parts): + <% parent = '.'.join(parts[:i+1]) %> + :: <a href="/${parent.replace('.', '/')}/">${parent}</a> + % endfor + </nav> + % endif + <h1 class="title">${'Namespace' if module.is_namespace else \ + 'Package' if module.is_package and not module.supermodule else \ + 'Module'} <code>${module.name}</code></h1> + </header> + + <section id="section-intro"> + ${module.docstring | to_html} + ${show_source(module)} + </section> + + <section> + % if submodules: + <h2 class="section-title" id="header-submodules">Sub-modules</h2> + <dl> + % for m in submodules: + <dt><code class="name">${link(m)}</code></dt> + <dd>${show_desc(m, short=True)}</dd> + % endfor + </dl> + % endif + </section> + + <section> + % if variables: + <h2 class="section-title" id="header-variables">Global variables</h2> + <dl> + % for v in variables: + <% return_type = get_annotation(v.type_annotation) %> + <dt id="${v.refname}"><code class="name">var ${ident(v.name)}${return_type}</code></dt> + <dd>${show_desc(v)}</dd> + % endfor + </dl> + % endif + </section> + + <section> + % if functions: + <h2 class="section-title" id="header-functions">Functions</h2> + <dl> + % for f in functions: + ${show_func(f)} + % endfor + </dl> + % endif + </section> + + <section> + % if classes: + <h2 class="section-title" id="header-classes">Classes</h2> + <dl> + % for c in classes: + <% + class_vars = c.class_variables(show_inherited_members, sort=sort_identifiers) + smethods = c.functions(show_inherited_members, sort=sort_identifiers) + inst_vars = c.instance_variables(show_inherited_members, sort=sort_identifiers) + methods = c.methods(show_inherited_members, sort=sort_identifiers) + mro = c.mro() + # filter out "__plugins/loaders/procs__XXX" subclasses + # ---------- + exclude = "__plugins__", "__loaders__", "__procs__" + subclasses = [] + for subc in c.subclasses(): + for prefix in exclude: + if subc.refname[:len(prefix)] == prefix: + break + else: + subclasses.append(subc) + # ---------- + params = ', '.join(c.params(annotate=show_type_annotations, link=link)) + %> + <dt id="${c.refname}"><code class="flex name class"> + <span>class ${ident(c.name)}</span> + % if params: + <span>(</span><span>${params})</span> + % endif + </code></dt> + + <dd>${show_desc(c)} + + % if mro: + <h3>Ancestors</h3> + <ul class="hlist"> + % for cls in mro: + <li>${link(cls)}</li> + % endfor + </ul> + %endif + + % if subclasses: + <h3>Subclasses</h3> + <ul class="hlist"> + % for sub in subclasses: + <li>${link(sub)}</li> + % endfor + </ul> + % endif + % if class_vars: + <h3>Class variables</h3> + <dl> + % for v in class_vars: + <% return_type = get_annotation(v.type_annotation) %> + <dt id="${v.refname}"><code class="name">var ${ident(v.name)}${return_type}</code></dt> + <dd>${show_desc(v)}</dd> + % endfor + </dl> + % endif + % if smethods: + <h3>Static methods</h3> + <dl> + % for f in smethods: + ${show_func(f)} + % endfor + </dl> + % endif + % if inst_vars: + <h3>Instance variables</h3> + <dl> + % for v in inst_vars: + <% return_type = get_annotation(v.type_annotation) %> + <dt id="${v.refname}"><code class="name">var ${ident(v.name)}${return_type}</code></dt> + <dd>${show_desc(v)}</dd> + % endfor + </dl> + % endif + % if methods: + <h3>Methods</h3> + <dl> + % for f in methods: + ${show_func(f)} + % endfor + </dl> + % endif + + % if not show_inherited_members: + <% + members = c.inherited_members() + %> + % if members: + <h3>Inherited members</h3> + <ul class="hlist"> + % for cls, mems in members: + <li><code><b>${link(cls)}</b></code>: + <ul class="hlist"> + % for m in mems: + <li><code>${link(m, name=m.name)}</code></li> + % endfor + </ul> + + </li> + % endfor + </ul> + % endif + % endif + + </dd> + % endfor + </dl> + % endif + </section> +</%def> + +<%def name="module_index(module)"> + <% + variables = module.variables(sort=sort_identifiers) + classes = module.classes(sort=sort_identifiers) + functions = module.functions(sort=sort_identifiers) + submodules = module.submodules() + supermodule = module.supermodule + %> + <nav id="sidebar"> + + <%include file="logo.mako"/> + + % if google_search_query: + <div class="gcse-search" style="height: 70px" + data-as_oq="${' '.join(google_search_query.strip().split()) | h }" + data-gaCategoryParameter="${module.refname | h}"> + </div> + % endif + + % if lunr_search is not None: + <%include file="_lunr_search.inc.mako"/> + % endif + + ${extract_toc(module.docstring) if extract_module_toc_into_sidebar else ''} + <ul id="index"> + % if supermodule: + <li><h3>Super-module</h3> + <ul> + <li><code>${link(supermodule)}</code></li> + </ul> + </li> + % endif + + % if submodules: + <li><h3><a href="#header-submodules">Sub-modules</a></h3> + <ul> + % for m in submodules: + <li><code>${link(m)}</code></li> + % endfor + </ul> + </li> + % endif + + % if variables: + <li><h3><a href="#header-variables">Global variables</a></h3> + ${show_column_list(variables)} + </li> + % endif + + % if functions: + <li><h3><a href="#header-functions">Functions</a></h3> + ${show_column_list(functions)} + </li> + % endif + + % if classes: + <li><h3><a href="#header-classes">Classes</a></h3> + <ul> + % for c in classes: + <li> + <h4><code>${link(c)}</code></h4> + <% + members = c.functions(sort=sort_identifiers) + c.methods(sort=sort_identifiers) + if list_class_variables_in_index: + members += (c.instance_variables(sort=sort_identifiers) + + c.class_variables(sort=sort_identifiers)) + if not show_inherited_members: + members = [i for i in members if not i.inherits] + if sort_identifiers: + members = sorted(members) + %> + % if members: + ${show_column_list(members)} + % endif + </li> + % endfor + </ul> + </li> + % endif + + </ul> + </nav> +</%def> + +<!doctype html> +<html lang="${html_lang}"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" /> + <meta name="generator" content="pdoc ${pdoc.__version__}" /> + +<% + module_list = 'modules' in context.keys() # Whether we're showing module list in server mode +%> + + % if module_list: + <title>Python module list + + % else: + ${module.name} API documentation + + % endif + + + + % if syntax_highlighting: + + %endif + + <%namespace name="css" file="css.mako" /> + + + + + % if google_analytics: + + % endif + + % if google_search_query: + + + + % endif + + % if latex_math: + + % endif + + % if syntax_highlighting: + + + % endif + + <%include file="head.mako"/> + + +
+ % if module_list: +
+ ${show_module_list(modules)} +
+ % else: + + ${module_index(module)} + % endif +
+ + + +% if http_server and module: ## Auto-reload on file change in dev mode + +% endif + + diff --git a/tools/docs/templates/index.mako b/tools/docs/templates/index.mako new file mode 100644 index 0000000..0b9b33b --- /dev/null +++ b/tools/docs/templates/index.mako @@ -0,0 +1,37 @@ + + + + + + + + + <%namespace name="css" file="css.mako" /> + + + + + + +
+

IDAPython documentation

+
+
+
+

Defined modules:

+ +
+ +
+ + diff --git a/tools/doxygen_utils.py b/tools/doxygen_utils.py index ee03ec2..b4957e9 100644 --- a/tools/doxygen_utils.py +++ b/tools/doxygen_utils.py @@ -1,8 +1,103 @@ from __future__ import print_function import os +import textwrap import xml.etree.ElementTree as ET +def join_all_element_text(el, sep=""): + bits = [] + for txt in el.itertext(): + bits.append(txt) + return sep.join(bits) + +def remove_empty_header_or_footer_lines(lines): + while lines and not lines[0].strip(): + lines = lines[1:] + while lines and not lines[-1].strip(): + lines = lines[:-1] + return lines + +class text_context_t: + def __init__(self): + self.tokens = [] # pending to be textwrap'd + self.lines = [] # already textwrap'd + + def add_token_nostrip(self, token): + if token: + self.tokens.append(token) + + def add_token(self, token): + if token: + return self.add_token_nostrip(token.strip()) + + def add_line(self, line): + self.lines.append(line) + + def wrap_flush(self): + if self.tokens: + lines = textwrap.wrap("".join(self.tokens)) + self.lines.extend(lines) + self.tokens = [] + +def _get_text_with_refs1(ctx, node): + process_children = True + if node.tag == "simplesect" and node.attrib.get("kind") == "return": + return + if node.tag == "parameterlist": + return + if node.tag == "ref": + ctx.add_token_nostrip(" '%s' " % node.text) + elif node.tag == "lsquo": + ctx.add_token_nostrip(" `") + elif node.tag == "rsquo": + ctx.add_token_nostrip("' ") + elif node.tag == "sp": + ctx.add_token_nostrip(" ") + elif node.tag == "computeroutput": + for child in node: + tmp = text_context_t() + _get_text_with_refs1(tmp, child) + ctx.add_token_nostrip("".join(tmp.tokens)) + txt = (node.text or "").strip() + if txt: + ctx.add_token_nostrip(" '%s' " % txt) + elif node.tag == "programlisting": + ctx.wrap_flush() + ctx.add_line("") + for child in node: + if child.tag == "codeline": + tmp = text_context_t() + _get_text_with_refs1(tmp, child) + code_line = "".join(tmp.tokens) + ctx.add_line(code_line) + ctx.add_line("") + process_children = False + else: + ctx.add_token(node.text) + ctx.add_token(node.tail) + if process_children: + for child in node: + _get_text_with_refs1(ctx, child) + +def get_element_description(el, child_tag): + out = [] + for child in el.findall("./%s" % child_tag): + ctx = text_context_t() + _get_text_with_refs1(ctx, child) + ctx.wrap_flush() + if ctx.lines: + out.extend(ctx.lines) + out = remove_empty_header_or_footer_lines(out) + if out: + out0 = out[0] + if out0.startswith("ui:"): + out0 = out0[3:] + if out0.startswith("cb:"): + out0 = out0[3:] + out0 = out0.lstrip() + out[0] = out0 + return out + def load_xml_for_module(xml_dir_path, module_name, or_dummy=True): xml_tree = ET.Element("dummy") if or_dummy else None for sfx in ["_8hpp", "_8h"]: @@ -12,6 +107,16 @@ def load_xml_for_module(xml_dir_path, module_name, or_dummy=True): xml_tree = ET.fromstring(fin.read()) return xml_tree +def load_xml_for_udt(xml_dir_path, xml_tree, udt_name): + for ic in xml_tree.findall("./compounddef/innerclass"): + if ic.text == udt_name: + refid = ic.attrib.get("refid") + xml_path = os.path.join(xml_dir_path, "%s.xml" % refid) + with open(xml_path) as fin: + udt_xml_tree = ET.fromstring(fin.read()) + return refid, udt_xml_tree + return None, None + def get_toplevel_functions(xml_tree, name=None): path = "./compounddef/sectiondef[@kind='%s']/memberdef[@kind='function']" if name: @@ -22,6 +127,13 @@ def get_toplevel_functions(xml_tree, name=None): all_nodes.extend(map(lambda n: n, nodes)) return all_nodes +def get_udt_methods(xml_tree, refid, name=None): + path = "./compounddef[@id='%s']/sectiondef[@kind='public-func']/memberdef[@kind='function']" % ( + refid,) + if name: + path = "%s/[name='%s']" % (path, name) + return xml_tree.findall(path) + def get_single_child_element_text_contents(el, child_element_tag): nodes = el.findall("./%s" % child_element_tag) nnodes = len(nodes) @@ -32,21 +144,59 @@ def get_single_child_element_text_contents(el, child_element_tag): print("Warning: more than 1 child element with tag '%s' found; picking first" % (child_element_tag,)) return text -def for_each_param(node, callback): - assert(node.tag == "memberdef" and node.attrib.get("kind") == "function") - plist = node.find("./detaileddescription/para/parameterlist[@kind='param']") +def for_each_param(memberdef_node, callback): + # + # + # + # idp_modname + # + # + # (const char *) processor module name + # + # + # + assert(memberdef_node.tag == "memberdef" and memberdef_node.attrib.get("kind") == "function") + plist = memberdef_node.find("./detaileddescription/para/parameterlist[@kind='param']") def get_direct_text(n, tag): c = n.find("./%s" % tag) if c is not None: return " ".join(c.itertext()).strip() - for param in node.findall("./param"): + for param in memberdef_node.findall("./param"): name, ptyp, desc = None, None, None name = get_direct_text(param, "declname") ptyp = get_direct_text(param, "type") if name and plist is not None: + sdk_doc_param_name = name.replace("NONNULL_", "") for plist_item in plist.findall("parameteritem"): - if plist_item.find("./parameternamelist/[parametername='%s']" % name) is not None: + if plist_item.find("./parameternamelist/[parametername='%s']" % sdk_doc_param_name) is not None: pdesc_node = plist_item.find("./parameterdescription") if pdesc_node is not None: desc = " ".join(pdesc_node.itertext()).strip() callback(name, ptyp, desc) + +def for_each_retval(detaileddescription_node, callback): + # + # + # + # >0 + # + # + # ok, generated the definition text + # + # + # + plist = detaileddescription_node.find("./para/parameterlist[@kind='retval']") + if plist is not None: + for parameteritem_el in plist.findall("parameteritem"): + parameternamelist_el = parameteritem_el.find("parameternamelist") + if parameternamelist_el is not None: + parametername_els = parameternamelist_el.findall("parametername") + if parametername_els: + parametername_el = parametername_els[0] + retval_value = parametername_el.text + retval_desc_els = parameteritem_el.findall("parameterdescription") + if retval_desc_els: + retval_desc = " ".join(retval_desc_els[0].itertext()).strip() + else: + retval_desc = None + callback(retval_value, retval_desc) diff --git a/tools/dumpdoc.py b/tools/dumpdoc.py index d8f857d..2808d0a 100644 --- a/tools/dumpdoc.py +++ b/tools/dumpdoc.py @@ -1,8 +1,16 @@ +import __future__ import re import sys import inspect import types +import ast +import os +import argparse + +sys.stdout.write("### dumpdoc here!\n") +for key in os.environ: + sys.stdout.write("### %s = \"%s\"\n" % (key, os.environ[key])) if sys.version_info[0] == 3: # for Python3, we always use the same pydoc module from Python3.5. this keeps the output consistent across different Python3 versions. @@ -14,13 +22,24 @@ import inspect import pydoc import idc +output, wrappers_dir, is_64 = idc.ARGV[1], idc.ARGV[2], idc.ARGV[3] == "True" + +sys.stdout.write("### Parameter \"output\" = \"%s\"\n" % output) +sys.stdout.write("### Parameter \"wrappers_dir\" = \"%s\"\n" % wrappers_dir) +sys.stdout.write("### Parameter \"is_64\" = \"%s\"\n" % is_64) try: from cStringIO import StringIO except: from io import StringIO -ignore_types = (int, float, str, bool, dict, list, tuple, types.ModuleType) +import ida_hexrays +def dummy_replacement(): + pass +ida_hexrays.DecompilationFailure.add_note = dummy_replacement +idc.DeprecatedIDCError.add_note = dummy_replacement + +ignore_types = (int, float, str, bool, dict, list, tuple, bytes, types.ModuleType, __future__._Feature) TRANSLATED_MARKER = b"\xE2\x86\x97" if sys.version_info.major < 3: @@ -49,15 +68,18 @@ ignore_names = [ re.compile("_Swig.*"), re.compile("_swig.*"), "SWIG_PyInstanceMethod_New", - "svalvec_t", # aliased with intvec_t or longlongvec_t - "uvalvec_t", # aliased with uintvec_t or ulonglongvec_t + "svalvec_t", # aliased with intvec_t or int64vec_t + "uvalvec_t", # aliased with uintvec_t or uint64vec_t "eavec_t", # aliased with uvalvec_t + ("ida_ida", "__getattr__"), + ("idc", "__getattr__"), + ("__future__", "_Feature"), ] -def should_ignore_name(name): +def should_ignore_name(namespace_name, name): for ign in ignore_names: if isinstance(ign, tuple): - if ".".join(ign) == name: + if ign == (namespace_name, name): return True elif isinstance(ign, string_types): if ign == name: @@ -88,7 +110,7 @@ all_specific_translations = { "ida_hexrays.casm_t" : [ (( "uintvec_t", - "ulonglongvec_t" + "uint64vec_t" ), "eavec_t", True), (( "unsigned int *", @@ -106,16 +128,12 @@ all_specific_translations = { "qvector< unsigned int >::", "qvector< unsigned long long >::" ), "qvector< unsigned-ea-like-numeric-type >::", True), + (( + "qvector< unsigned int > &", + "qvector< unsigned long long > &" + ), "qvector< unsigned-ea-like-numeric-type > &", True), ], "ida_hexrays.ivl_t" : [ - (( - "uval_ivl_t_off_get(self) -> unsigned int", - "uval_ivl_t_off_get(self) -> unsigned long long", - ), "uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type", True), - (( - "uval_ivl_t_size_get(self) -> unsigned int", - "uval_ivl_t_size_get(self) -> unsigned long long", - ), "uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type", True), (( ") -> 'unsigned int'", ") -> 'unsigned long long'", # py3 @@ -126,14 +144,6 @@ all_specific_translations = { ), ") -> unsigned-ea-like-numeric-type", True), ], "ida_hexrays.uval_ivl_t" : [ - (( - "uval_ivl_t_off_get(self) -> unsigned int", - "uval_ivl_t_off_get(self) -> unsigned long long", - ), "uval_ivl_t_off_get(self) -> unsigned-ea-like-numeric-type", True), - (( - "uval_ivl_t_size_get(self) -> unsigned int", - "uval_ivl_t_size_get(self) -> unsigned long long", - ), "uval_ivl_t_size_get(self) -> unsigned-ea-like-numeric-type", True), (( ") -> 'unsigned int'", ") -> 'unsigned long long'", # py3 @@ -142,29 +152,56 @@ all_specific_translations = { ") -> unsigned int", ") -> unsigned long long", # py3 ), ") -> unsigned-ea-like-numeric-type", True), + (( + "_off: unsigned int", + "_off: unsigned long long", # py3 + ), "_off: unsigned-ea-like-numeric-type", True), + (( + "_size: unsigned int", + "_size: unsigned long long", # py3 + ), "_size: unsigned-ea-like-numeric-type", True), ], "ida_hexrays.ivlset_t" : [ (( "ivlset_tpl< ivl_t,unsigned int >::", "ivlset_tpl< ivl_t,unsigned long long >::", # py3 ), "ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::", True), + (( + "v: unsigned int", + "v: unsigned long long" + ), "v: unsigned-ea-like-numeric-type", True), ], "ida_hexrays.uval_ivl_ivlset_t" : [ (( "ivlset_tpl< ivl_t,unsigned int >::", "ivlset_tpl< ivl_t,unsigned long long >::", ), "ivlset_tpl< ivl_t,unsigned-ea-like-numeric-type >::", True), + (( + "v: unsigned int", + "v: unsigned long long" + ), "v: unsigned-ea-like-numeric-type", True), + ], + "ida_segment.segment_defsr_array" : [ + (( + "unsigned int const &", + "unsigned long long const &", + ), "unsigned-ea-like-numeric-type const &", True), + (( + "data: unsigned int (&)", + "data: unsigned long long (&)", + ), "data: unsigned-ea-like-numeric-type (&)", True), ], "ida_nalt.strpath_ids_array" : [ - (( - "strpath_ids_array_data_get(self) -> unsigned int", - "strpath_ids_array_data_get(self) -> unsigned long long" - ), "strpath_ids_array_data_get(self) -> unsigned-ea-like-numeric-type", True), # py3 (( "unsigned int const &", "unsigned long long const &", ), "unsigned-ea-like-numeric-type const &", True), + # py3 + (( + "data: unsigned int (&)", + "data: unsigned long long (&)", + ), "data: unsigned-ea-like-numeric-type (&)", True), ], "idc.add_func" : [ (("add_func(start, end=4294967295)", @@ -206,6 +243,29 @@ all_specific_translations = { "'uint64 *'", ), "'unsigned-ea-like-numeric-type *'", True), ], + "ida_funcs.dyn_ea_array" : [ + (( + "-> unsigned int const &", + "-> unsigned long long const &", + ), "-> unsigned-ea-like-numeric-type const &", True), + (( + "-> unsigned int *", + "-> unsigned long long *", + ), "-> unsigned-ea-like-numeric-type *", True), + (( + "_data: unsigned int *", + "_data: unsigned long long *", + ), "_data: unsigned-ea-like-numeric-type *", True), + (( + "v: unsigned int const &", + "v: unsigned long long const &", + ), "v: unsigned-ea-like-numeric-type const &", True), + # Python3 + (( + "-> 'unsigned int const &'", + "-> 'unsigned long long const &'", + ), "-> 'unsigned-ea-like-numeric-type const &'", True), + ], "ida_idp.ph_find_op_value" : [ (( "uint32", @@ -227,6 +287,16 @@ all_specific_translations = { (( "int([x]) -> integer", ), "int(x=0) -> integer", False), + (( + "_Keyval: unsigned int const &", + "_Keyval: unsigned long long const &" + ), "_Keyval: unsigned-ea-like-numeric-type const &", True), + ], + "ida_hexrays.user_unions_t" : [ + (( + "_Keyval: unsigned int const &", + "_Keyval: unsigned long long const &" + ), "_Keyval: unsigned-ea-like-numeric-type const &", True), ], "ida_hexrays.DecompilationFailure" : [ (( @@ -238,13 +308,46 @@ all_specific_translations = { "Helper for pickle.", ), "helper for pickle", False), ], + "ida_idp._processor_t" : [ + (( + "'uint32 *'", + "'uint64 *'", + ), "'unsigned-ea-like-numeric-type *'", True), + ], + "ida_idp._processor_t_find_op_value" : [ + (( + "'uint32 *'", + "'uint64 *'", + ), "'unsigned-ea-like-numeric-type *'", True), + ], + "ida_idp._processor_t_find_reg_value" : [ + (( + "'uint32 *'", + "'uint64 *'", + ), "'unsigned-ea-like-numeric-type *'", True), + ], } +if is_64: + all_specific_translations["ida_dirtree.direntry_t"] = [ + (( + "BADIDX = 18446744073709551615L", + "BADIDX = 18446744073709551615", + ), "BADIDX = unsigned-ea-like-numeric-type(-1)", False), + ] +else: + all_specific_translations["ida_dirtree.direntry_t"] = [ + (( + "BADIDX = 4294967295L", + "BADIDX = 4294967295", + ), "BADIDX = unsigned-ea-like-numeric-type(-1)", False), + ] + def dump_namespace(namespace, namespace_name, keys, vec_info=None): spotted_things = [] for thing_name in keys: # sys.stderr.write("THING NAME: %s\n" % thing_name) - if should_ignore_name(thing_name): + if should_ignore_name(namespace_name, thing_name): continue thing = getattr(namespace, thing_name) if isinstance(thing, ignore_types): @@ -267,7 +370,96 @@ def dump_namespace(namespace, namespace_name, keys, vec_info=None): pydoc.help(thing) spotted_things.append(thing) -output, wrappers_dir = idc.ARGV[1], idc.ARGV[2] +class variable_collector_t(ast.NodeVisitor): + OUTSIDE = 0 + IN_CLASS = 1 + IN_FUNCTION = 2 + + def __init__(self, variables, module_name): + self.variables = variables + self.module_name = module_name + self.context = self.OUTSIDE + self.class_name = "" + self.assign_last_line = -1 + + super(variable_collector_t, self).__init__() + + def visit_FunctionDef(self, node): + old_context = self.context + self.context = self.IN_FUNCTION + self.generic_visit(node) + self.context = old_context + + def visit_ClassDef(self, node): + if self.context == self.IN_FUNCTION: + return + if self.context == self.IN_CLASS: + prefix = self.class_name + "." + else: + prefix = "" + self.class_name = prefix + node.name + + old_context = self.context + self.context = self.IN_CLASS + self.generic_visit(node) + self.context = old_context + + def visit_Assign(self, node): + if self.context == self.IN_FUNCTION: + return + if self.context == self.IN_CLASS: + prefix = self.class_name + "." + else: + prefix = "" + + if len(node.targets) == 1: + target = node.targets[0] + if isinstance(target, ast.Name): + self.assign_variable = prefix + target.id + self.assign_last_line = self._highest_lineno(node) + + def _highest_lineno(self, node): + if hasattr(node, "end_lineno"): + return node.end_lineno + + highest = node.lineno + for child in ast.walk(node): + if hasattr(child, "lineno") and child.lineno > highest: + highest = child.lineno + return highest + + def visit_Expr(self, node): + if not isinstance(node.value, ast.Str): + return + + if hasattr(node, "end_lineno"): + line_before = node.lineno - 1 # in this case, lineno = start + else: + # hack until Python 3.8; if <3.8, lineno = end + line_before = node.lineno - len(node.value.s.split("\n")) + + if line_before == self.assign_last_line: + self.variables.append( + "\nDocumentation on variable %s in module %s:\n\n%s\n" \ + % (self.assign_variable, + self.module_name, + self._cleandoc(node.value.s))) + + def _cleandoc(self, docstring): + if docstring: + docstring = inspect.cleandoc(docstring) + + # 4-blanks indent + docstring = "\n".join(" " + line for line in docstring.split("\n")) + + return docstring + +def collect_variables(variables, module_name, filename): + with open(filename, "r") as f: + tree = ast.parse(f.read()) + + visitor = variable_collector_t(variables, module_name) + visitor.visit(tree) # By default, pydoc.help() hides members that start with "_" # unless they start and end with "__" (with an exception for @@ -282,26 +474,47 @@ def my_visiblename(name, all=None, obj=None): return v pydoc.visiblename = my_visiblename +def iter_modules(): + for mname in sorted(sys.modules): + if mname.startswith("ida_") or mname == "idc": + yield mname, sys.modules[mname] + +sys.stdout.write("### Before collecting help\n") +old_stdout = sys.stdout ### debug + sys.stdout = StringIO() -for mname in sorted(sys.modules): - if mname.startswith("ida_") or mname == "idc": - module = sys.modules[mname] - dump_namespace(module, mname, sorted(dir(module))) - epydoc_path = os.path.join(wrappers_dir, "%s.epydoc_injection" % mname) - if os.path.isfile(epydoc_path): - with open(epydoc_path) as epydoc_f: - epydoc_injections = epydoc_f.read() - epydoc_injections = epydoc_injections.strip() - if epydoc_injections: - print("=== %s EPYDOC INJECTIONS ===" % mname) - print(epydoc_injections) - print("=== %s EPYDOC INJECTIONS END ===" % mname) +for mname, module in iter_modules(): + print("Module \"%s\"s docstring:\n\"\"\"%s\"\"\"\n" % (mname, module.__doc__)) + dump_namespace(module, mname, sorted(dir(module))) + +old_stdout.write("### After collecting help\n") final = apply_translations([], sys.stdout.getvalue()) + +old_stdout.write("### After applying translations\n") + +def module_file(module): + name, ext = os.path.splitext(module.__file__) + if ext == ".pyc": + ext = ".py" + return name + ext + +old_stdout.write("### Before collecting variables\n") + +variables = ["\n=== DOCUMENTATION FOR VARIABLES ===\n"] +for mname, module in iter_modules(): + collect_variables(variables, mname, module_file(module)) + +old_stdout.write("### After collecting variables (%d of them)\n" % len(variables)) + +final += "".join(variables) + with open(output, "wb") as f: if sys.version_info.major <= 2: f.write(final) else: f.write(final.encode("utf-8")) +old_stdout.write("### Wrote output (%d chars), end of script\n" % len(final)) + idaapi.qexit(0) diff --git a/tools/examples_index_template.html b/tools/examples_index_template.html new file mode 100644 index 0000000..fb60c42 --- /dev/null +++ b/tools/examples_index_template.html @@ -0,0 +1,103 @@ + + + + + IDAPython examples + + + + + + + + +

IDAPython examples:

+% for category in sorted(examples): +

Category: {{category}}

+
+ % for example in sorted(examples[category], key=lambda e: e.name): +
+
+ + + {{example.name}}: {{example.summary}} +
+
+ +
+{{example.description if example.description else example.summary}}
+
+ +
    +
  • Category: {{example.category}}
  • +
  • Summary: {{example.summary}}
  • +
  • View on GitHub
  • + % if example.keywords: +
  • Keywords: + % for keyword in example.keywords: + {{keyword}} + % endfor +
  • + % endif + + % if example.shortcuts: +
  • Shortcut{{'s' if len(example.shortcuts) > 1 else ''}}: + % for shortcut in example.shortcuts: + {{shortcut}} + % endfor +
  • + % endif + + % if example.imports: +
  • Imports +
      + % for imported in example.imports: +
    • {{imported}}
    • + % endfor +
    +
  • + % endif + + % if example.uses: +
  • APIs used +
      + % for use in example.uses: +
    • {{use}}
    • + % endfor +
    +
  • + % endif + + % if example.see_also: +
  • See also: +
      + % for see in example.see_also: +
    • {{see}}
    • + % endfor +
    +
  • + % endif + + % if example.author: +
  • Author: {{example.author}}
  • + % endif +
+
+
+ % endfor # examples of a category + +
+% endfor # categories + + diff --git a/tools/examples_index_template.md b/tools/examples_index_template.md new file mode 100644 index 0000000..ec57859 --- /dev/null +++ b/tools/examples_index_template.md @@ -0,0 +1,65 @@ +[HTML version](http://htmlpreview.github.io/?https://github.com/idapython/src/blob/master/examples/index.html) + +# IDAPython examples + +% for category in sorted(examples): +## Category: {{category}} + + % for example in sorted(examples[category], key=lambda e: e.name): +#### {{example.name}} +
+ {{example.summary}} + +
+ +#### Source code +{{example.path}} + +#### Category +{{example.category}} + +#### Description +{{example.description if example.description else example.summary}} + + % if example.shortcuts: +#### Shortcut{{'s' if len(example.shortcuts) > 1 else ''}} +{{' '.join(example.shortcuts)}} + + % endif + % if example.keywords: +#### Keywords +{{' '.join(example.keywords)}} + + % endif + % if example.imports: +#### Imports + % for imported in example.imports: +* {{imported}} + % endfor + + % endif + % if example.uses: +#### Uses + % for use in example.uses: +* {{use}} + % endfor + + % endif + % if example.see_also: +#### See also + % for see in example.see_also: +* [{{see}}](#{{see}}) + % endfor + + % endif + % if example.author: +#### Author +{{example.author}} + + % endif +
+ +
+ + % endfor # examples of a category +% endfor # categories diff --git a/tools/funlines.py b/tools/funlines.py index 95fbca2..541600d 100644 --- a/tools/funlines.py +++ b/tools/funlines.py @@ -1,12 +1,7 @@ from __future__ import print_function import os, sys, pickle, subprocess - -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise +from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("-l", "--left", required=True) diff --git a/tools/gen_examples_index.cfg b/tools/gen_examples_index.cfg new file mode 100644 index 0000000..614ac49 --- /dev/null +++ b/tools/gen_examples_index.cfg @@ -0,0 +1,11 @@ +{ + "auto-keywords": [ + ["ctxmenu", [r"ida_kernwin\.attach_action_to_popup"]], + ["plugin", [r"ida_idaapi\.plugin_t"]], + ["%(1)s", [r"ida_.*\.(.*_Hooks)"]], + ], + "exclude": [ + "simple_appcall_common" + ], + "link-format": "%(1)s" +} diff --git a/tools/gen_examples_index.py b/tools/gen_examples_index.py new file mode 100755 index 0000000..84502bf --- /dev/null +++ b/tools/gen_examples_index.py @@ -0,0 +1,917 @@ +""" +Generate the index.html/.md for the examples subdirectory, +based on structured docstrings on each Python example +""" + +from __future__ import print_function +import ast +import re +import os +import sys + +prog_name, _ = os.path.splitext(os.path.basename(sys.argv[0])) +prog_dir = os.path.dirname(sys.argv[0]) + +from argparse import ArgumentParser +parser = ArgumentParser() +subparsers = parser.add_subparsers(dest="command") +subparsers.required = True +w_subparser = subparsers.add_parser("write") +s_subparser = subparsers.add_parser("show") + +parser.add_argument("-v", "--verbose", default=False, action="store_true") +w_subparser.add_argument("-e", "--examples-dir", required=True) +w_subparser.add_argument("-t", "--template", required=True) +w_subparser.add_argument("-o", "--output", required=True) +s_subparser.add_argument("-k", "--keywords", default=False, action="store_true") +s_subparser.add_argument("-s", "--search", type=str) +s_subparser.add_argument("-e", "--examples-dir", required=True) + +args = parser.parse_args() + +# -------------------------------------------------------------------------- +def verb(msg): + if args.verbose: + print(msg) + +# -------------------------------------------------------------------------- +class ProcessException(Exception): + pass + +# -------------------------------------------------------------------------- +def read_config(): + global config + + config_path = os.path.join(prog_dir, prog_name + ".cfg") + with open(config_path, "r") as f: + config = ast.literal_eval(f.read()) + + config["exclude"] = set(config["exclude"]) + + for _, key_res in config["auto-keywords"]: + for i in range(len(key_res)): + key_res[i] = re.compile(key_res[i] + "$") # anchored for match() + +#------------------------------------------------------------------------------- +class Examples(object): + def __init__(self): + self.re_indent = re.compile(r"^ *") + self.re_tag = re.compile(r"^ *([a-zA-Z_][a-zA-Z_0-9]*):") + self.re_wspace = re.compile(r"[ \t\r\n]*") + self.re_userlink = re.compile(r"@{(.*?)}") + + self.index = None + self.shortcut_finder = ShortcutFinder() + + def process(self): + if args.command == "write": + # parses the templates, and bails out on template error + # before going into analyzing the examples + self.index = ExamplesIndex() + + self.examples = [] + + for relpath, path in self._files_with_extension(".py", args.examples_dir): + verb("Processing \"%s\"" % path) + with open(path, "r") as f: + self._load_ast(relpath, ast.parse(f.read(), path)) + + self._post_read_processing() + + if args.command == "show": + self._show() + elif args.command == "write": + self.index.produce(self.examples, self._collect_all_keywords()) + + def _post_read_processing(self): + self._collect_example_names() # requisite for other post-read actions + + self._collect_imported_uses() + + # trim down the final collection + + self.examples = [e for e in self.examples \ + if e.name not in config["exclude"]] + self.examples = sorted(self.examples, key=lambda x: x.name) + + self._collect_example_names() # now invalid, redo + + self._parse_description_links() + self._check_see_also_links() + + def _show(self): + if args.keywords: + print("\nKeywords used:") + for keyword in self._collect_all_keywords(): + print(" ", keyword) + + if args.search: + print("\nExamples using \"%s\":" % args.search) + for example in self.examples: + if args.search in example.keywords: + print(" ", example.path) + + def _collect_all_keywords(self): + all_keywords = set() + for example in self.examples: + all_keywords.update(example.keywords) + + return sorted(all_keywords, key=lambda x: x.lower()) + + def _load_ast(self, relpath, tree): + name = os.path.splitext(os.path.basename(relpath))[0] + category = relpath.split(os.sep)[0] + + # fix for Windows: paths may contain "\" instead of "/"; + # these ultimately come from os.walk() and the command line + # (_files_with_extension(), plus args.examples_dir -> rootdir) + relpath = relpath.replace("\\", "/") + + uses, imports = self._uses_and_imports(tree) + docstring = ast.get_docstring(tree, False) + + tags = Tags() + tags.add(Tags.PATH, relpath) + tags.add(Tags.NAME, name) + tags.add(Tags.CATEGORY, category) + + shortcuts = sorted(self.shortcut_finder.find(tree), \ + key=lambda x: x.lower()) + tags.add(Tags.SHORTCUTS, shortcuts) + + # the next two are kept as sets; + # they will be sorted lists after _collect_imported_uses() + tags.add(Tags.USES, uses) + tags.add(Tags.IMPORTS, imports) + + self._parse_structured_comment(docstring, tags) + self._add_autokeywords(tags) + + self.examples.append(Example(tags.get())) + + def _add_autokeywords(self, tags): + def add_keyword(m, key_out): + groups_dict = {str(n): m.group(n) for n in range(1, m.re.groups+1)} + new_keyword = key_out % groups_dict + + keywords = tags.tag_so_far(Tags.KEYWORDS) + keywords.append(new_keyword) + + global config + autokeys = config["auto-keywords"] + + for use in tags.tag_so_far(Tags.USES): + for key_out, key_res in autokeys: + # check for ALL auto-keywords generated by this "use" + for key_re in key_res: + # check for ANY pattern that matches this auto-keyword + m = key_re.match(use) + if m: + add_keyword(m, key_out) + break + + keywords = tags.tag_so_far(Tags.KEYWORDS) + tags.add(Tags.KEYWORDS, sorted(keywords, key=lambda x: x.lower())) + + def _parse_structured_comment(self, docstring, tags): + if not docstring: + return + + first_line = True + group_tag = None + group_lines = [] + + def end_group(): + if group_tag: + self._remove_common_indentation(group_lines) + + if group_tag == Tags.DESCRIPTION: + item = "\n".join(group_lines).strip("\n") + elif group_tag in (Tags.KEYWORDS, Tags.SEE_ALSO): + item = [] + for x in ",".join(group_lines).split(","): + x = x.strip() + if x: + item.append(x) + else: + item = " ".join(group_lines).strip() + + if group_tag in (Tags.SUMMARY, Tags.DESCRIPTION): + # capitalize first + m = self.re_wspace.match(item) + if m and m.end() < len(item): + item = item[:m.end()] + item[m.end()].upper() \ + + item[m.end()+1:] + + verb(" Read from docstring: tag \"%s\"" % group_tag) + tags.add(group_tag, item) + + # Blocks of lines are separated by indentation: + # a block MUST begin with a tag (followed by ":") at indent 0. + # + # An attempt is made to preserve the original indentation + # of each block of lines. + + for line in docstring.split("\n"): + indent, line = self._indented_line(line.rstrip(), 0) + + if indent == 0 and line: + end_group() + first_line = True + group_tag = None + group_lines = [] + + if first_line: + if not line: + # ignore blank lines before the first tag + continue + first_line = False + + m = self.re_tag.match(line) + if not m: + tags.error("No tag in docstring: \"\"\"\n%s\n\"\"\"" % docstring) + + group_tag = m.group(1) + tags.valid(group_tag) + tags.can_occur_in_docstring(group_tag) + + indent, line = self._indented_line(line, m.end()) + + if group_tag: + group_lines.append( (indent, line) ) + + end_group() + + def _indented_line(self, line, fromPos): + line = line[fromPos:] + + m = self.re_indent.match(line) + + indent = fromPos + len(m.group()) + line = line[m.end():] + + return indent, line + + def _remove_common_indentation(self, lines): + if not lines: + return + + min_indent = min(t[0] for t in lines if t[1]) + + for i in range(len(lines)): + if lines[i][1]: + lines[i] = ((lines[i][0] - min_indent) * " ") + lines[i][1] + else: + lines[i] = "" + + def _uses_and_imports(self, tree): + names = set() + def callback_uses(name): + verb(" Uses \"%s\"" % name) + names.add(name) + + imports = set() + def callback_imports(name): + verb(" Imports \"%s\"" % name) + imports.add(name) + + visitor = TreeVisitor(callback_uses, + callback_imports, + ["idc", "idautils"]) + visitor.generic_visit(tree) + + return names, imports + + def _parse_description_links(self): + # (all examples have been read already) + for example in self.examples: + text = example.description + + out = "" + while True: + m = self.re_userlink.search(text) + if not m: + break + + target_name = m.group(1) + if target_name not in self.examples_set: + raise ProcessException( + "Link in \"%s\": \"%s\" is not an example name" \ + % (example.path, target_name)) + + try: + subs = config["link-format"] % {'1': target_name} + except Exception as ex: + raise ProcessException( + "Link format, %s: %s" % (type(ex).__name__, ex)) + + out = text[:m.start()] + subs + text = text[m.end():] + + example.description = out + text + + def _check_see_also_links(self): + # do their targets exist? + # (all examples have been read already) + for example in self.examples: + for see_also in example.see_also: + if see_also not in self.examples_set: + raise ProcessException( + "%s\n See-also link to unexistent \"%s\"" + % (example.path, see_also)) + + def _collect_imported_uses(self): + # if an example imports another, + # make the parent "use" the API calls that the child "uses" + # (this has to be done after all examples have been read) + + examples_dict = { e.name: e for e in self.examples } + + # 1. restrict the imports to examples only + + imported_set = set() + for example in self.examples: + example.imports &= self.examples_set + imported_set |= example.imports + + # 2. topological sort of the imported examples + + graph = {} + for example in self.examples: + for imported in example.imports: + # this example imports other examples + if example.name in graph: + graph[example.name].append(imported) + else: + graph[example.name] = [imported] + + roots = set(graph) - imported_set + + # 3. add children uses to parents + + for name in roots: + self._add_imported_uses(name, examples_dict, graph, set()) + + # 4. now we can make them sorted lists instead of sets + # (we leave "uses" of uppercase before lowercase; + # the use of constants looks better this way) + + for example in self.examples: + example.uses = sorted(example.uses) + example.imports = sorted(example.imports, key=lambda x: x.lower()) + + def _add_imported_uses(self, name, examples_dict, graph, cycle_detect): + # cycles shouldn't happen if we're reading code that actually works, + # but we better protect ourselves against bad input + cycle_detect.add(name) + + example = examples_dict[name] + + for child in graph[name]: + if child in graph: + if child in cycle_detect: + raise ProcessException("Cycle in import: %s -> %s" % (name, child)) + + self._add_imported_uses(child, examples_dict, graph, cycle_detect) + + example.uses |= examples_dict[child].uses + + cycle_detect.remove(name) + + def _collect_example_names(self): + # (after all examples have been read) + self.examples_set = set(e.name for e in self.examples) + + def _files_with_extension(self, ext, rootdir): + for path, _, files in os.walk(rootdir): + for filename in files: + if os.path.splitext(filename)[1] == ext: + relpath = os.path.relpath(path, rootdir) + yield os.path.join(relpath, filename), \ + os.path.join(path, filename) + +#------------------------------------------------------------------------------- +class Tags(object): + NAME = "name" + PATH = "path" + SUMMARY = "summary" + DESCRIPTION = "description" + CATEGORY = "category" + KEYWORDS = "keywords" + SHORTCUTS = "shortcuts" + USES = "uses" + IMPORTS = "imports" + SEE_ALSO = "see_also" + AUTHOR = "author" + + # tags that can be used in the template (with the {{example.XXX}} syntax) + ALL_TAGS = set([NAME, PATH, SUMMARY, DESCRIPTION, CATEGORY, \ + KEYWORDS, USES, IMPORTS, SEE_ALSO, AUTHOR]) + + # tags that can be used in the examples' docstrings + IN_DOCSTRING = set([SUMMARY, DESCRIPTION, CATEGORY, \ + KEYWORDS, USES, SEE_ALSO, AUTHOR]) + + def __init__(self): + self.items = {} + for tag in self.ALL_TAGS: + if tag in (self.KEYWORDS, self.SEE_ALSO): + self.items[tag] = [] + elif tag in (self.USES, self.IMPORTS): + self.items[tag] = set() + else: + self.items[tag] = "" + + def error(self, message): + raise ProcessException("%s:\n %s" \ + % (self.items[self.PATH], message)) + + def valid(self, tag): + if tag not in self.ALL_TAGS: + self.error("Unrecognized tag: \"%s\"" % tag) + + def can_occur_in_docstring(self, tag): + if tag not in self.IN_DOCSTRING: + self.error("Not allowed in docstring: \"%s\"" % tag) + + def add(self, tag, item): + self.items[tag] = item + + def tag_so_far(self, tag): + return self.items[tag] + + def get(self): + return self.items + +#------------------------------------------------------------------------------- +class Example(object): + def __init__(self, content): + self.content = content + + def __getattr__(self, key): + if key in self.content: + return self.content[key] + raise AttributeError("Example: \"%s\"" % key) + +#------------------------------------------------------------------------------- +class TreeVisitor(ast.NodeVisitor): + def __init__(self, callback_uses, + callback_imports, + interesting_names, + *args): + super(TreeVisitor, self).__init__(*args) + self.callback_uses = callback_uses + self.callback_imports = callback_imports + self.interesting_names = set(interesting_names) + + def visit_Import(self, node): + for alias in node.names: + self.callback_imports(alias.name) + + def visit_ImportFrom(self, node): + self.callback_imports(node.module) + + if self._is_interesting(node.module): + self._add_interesting_names(node.names) + + def _add_interesting_names(self, aliases): + for alias in aliases: + if isinstance(alias, ast.alias): + name = alias.asname if alias.asname else alias.name + self.interesting_names.add(name) + + def _is_interesting(self, name): + return name.startswith("ida_") or name in self.interesting_names + + def visit_Name(self, node): + self._callback_if_interesting(node) + + def visit_Attribute(self, node): + self._callback_if_interesting(node) + + def _callback_if_interesting(self, node): + names = self._dotted_name(node) + if not names: + return + if self._is_interesting(names[0]) \ + and names[-1] != "__init__": # removed calls to base constructors + self.callback_uses(".".join(names)) + + def _dotted_name(self, node): + if isinstance(node, ast.Name): + return [node.id] + if isinstance(node, ast.Attribute): + names = self._dotted_name(node.value) + if names: + return names + [node.attr] + return None + +#------------------------------------------------------------------------------- +class ShortcutFinder(ast.NodeVisitor): + def find(self, tree): + self._reset() + self.generic_visit(tree) + + return self.results + + def _reset(self): + self.results = [] + self.stack = [] + + def generic_visit(self, node): + # look for "action_desc_t" instances, 4th constructor parameter + if isinstance(node, ast.Call): + name = self._name(node.func) + + if name == "ida_kernwin.action_desc_t": + if len(node.args) >= 4: + # search the scopes for value(s) of this parameter + values = self._find_values(node.args[3]) + for value in values: + self.results.append(value) + + # assigment - fill in (string) values into the current scope + elif isinstance(node, ast.Assign): + names = [self._name(t) for t in node.targets] + scope = self.stack[-1][1] + + value = None + # save strings + if isinstance(node.value, ast.Str): + value = node.value.s + # save also lists of names, in case they are class names + elif isinstance(node.value, ast.List): + if all(isinstance(elt, ast.Name) for elt in node.value.elts): + value = [elt.id for elt in node.value.elts] + + for name in names: + self._assign(scope, name, value) + + # if our immediate ancestor is a class definition, + # add this symbol also to the class scope + if len(self.stack) > 1 and self.stack[-2][0]: + class_scope = self.stack[-2][0] + if self.class_name in class_scope: + for name in names: + self._assign(class_scope[self.class_name], name, value) + + # remember class names + elif isinstance(node, ast.ClassDef): + class_scope = self.stack[-1][0] + self.class_name = node.name + + class_scope[self.class_name] = {} + + # "for" - treat it as a list assignment + elif isinstance(node, ast.For): + # only syntax recognized: "for name in name" + if isinstance(node.target, ast.Name) and \ + isinstance(node.iter, ast.Name): + name = node.target.id + scope = self.stack[-1][1] + values = self._find_list(node.iter.id) + # save the variable as having multiple values + self._assign(scope, name, values) + scope[name] = values + + # keep a stack of scopes [classes, variables] + self.stack.append([{}, {}]) + super(ShortcutFinder, self).generic_visit(node) + self.stack.pop() + + def _assign(self, scope, name, value): + if value: + scope[name] = value + else: + # symbol overwritten with something I don't understand, forget + if name in scope: + del scope[name] + + def _find_values(self, arg): + if isinstance(arg, ast.Str): + return [arg.s] + + # single variable + if isinstance(arg, ast.Name): + value = self._variable_in_scope(arg.id) + if value: + return [value] + + # variable dot variable - TODO: nested classes + if isinstance(arg, ast.Attribute) and \ + isinstance(arg.value, ast.Name): + left_name = arg.value.id + right_name = arg.attr + + values = self._find_list(left_name) + if values: + # return the values for each class scope + returned = [] + for c_name in values: + class_scope = self._find_class_scope(c_name) + if right_name in class_scope: + returned.append(class_scope[right_name]) + return returned + + return [] + + def _variable_in_scope(self, name): + for i in range(len(self.stack) - 1, -1, -1): + scope = self.stack[i][1] + if name in scope: + return scope[name] + return None + + def _find_list(self, name): + values = self._variable_in_scope(name) + if isinstance(values, list): + return values + return None + + def _find_class_scope(self, name): + for i in range(len(self.stack) - 1, -1, -1): + class_scope = self.stack[i][0] + if name in class_scope: + return class_scope[name] + return {} + + def _name(self, node): + if isinstance(node, ast.Name): + return node.id + if isinstance(node, ast.Attribute): + return self._name(node.value) + "." + node.attr + + # too complex for me + return "@" + node.__class__.__name__ + +#------------------------------------------------------------------------------- +class ExamplesIndex(object): + def __init__(self): + self.replacer = TemplateReplacer() + + with open(args.template, "r") as f: + self.replacer.template(f.read()) + + def produce(self, examples, all_keywords): + with open(args.output, "w") as f: + self.replacer.expand(examples, all_keywords, f) + +#------------------------------------------------------------------------------- +class TemplateReplacer(object): + def __init__(self): + self.re_percent_line = re.compile(r" *% *") + self.re_end_keyword = re.compile(r"end([a-z]+|})$") + self.re_variable = re.compile(r"{{(.*?)}}") + + self.keywords = { # has_body, keyword + ast.If: (True, "if"), + ast.For: (True, "for"), + ast.FunctionDef: (True, "def"), + ast.Break: (False, "break"), + ast.Continue: (False, "continue"), + ast.Return: (False, "return") + } + # "else" treated separately + + def template(self, content): + lines = content.rstrip("\n").split("\n") + + # convert the template lines into a Python module + + body = [self._sandwich(lines)] + self.module = ast.Module(body=body, type_ignores=[]) + self.module = ast.fix_missing_locations(self.module) + + # "import" the module + self.module_scope = {} + exec(compile(self.module, "Template", "exec"), self.module_scope) + + def expand(self, examples, all_keywords, f): + # group by category + grouped = {} + for example in examples: + if example.category not in grouped: + grouped[example.category] = [] + grouped[example.category].append(example) + + # call the template's entry point + self.module_scope["__mm__entry"](grouped, all_keywords, f) + + def _sandwich(self, lines, lineno=0, open_keyword=None): + in_else = False + + body = [] + text = "" + while lineno < len(lines): + line = lines[lineno] + lineno += 1 + + # process "% statement"s in the template + m = self.re_percent_line.match(line) + if m: + line = self._clean_line(line, m.end()) + + # text so far + if text: + body.extend(self._substitute_variables(text)) + text = "" + + # "else" is not an ast.; parsed separately + ret = self._is_else(line, lineno, open_keyword) + if ret: + in_else = True + prev_body = body + body = [] + continue + + # code block start "%{" + if self._is_start_of_code_block(line, lineno): + inner_body, _, lineno = self._code_block(lines, lineno) + body.extend(inner_body) + continue + + if self._is_end_keyword(line, lineno, open_keyword): + if not in_else: + prev_body, body = body, [] + return prev_body, body, lineno + + has_body, keyword, statement = self._check_percent_line(line, lineno) + if has_body: + inner_body, \ + inner_else, lineno = self._sandwich(lines, lineno, keyword) + + statement.body = inner_body + if inner_else: + statement.orelse = inner_else + + body.append(statement) + continue + + text += line + "\n" + + if open_keyword: + raise ProcessException( + "Template: unterminated \"%s\"" % open_keyword) + + if text: + body.extend(self._substitute_variables(text)) + + # wrap the final code in a function, so that data can be passed + return self._function_def("__mm__entry", + ["examples", "all_keywords", "_mm_f"], + body) + + def _code_block(self, lines, lineno): + start_lineno = lineno + + code = "" + while lineno < len(lines): + line = lines[lineno] + lineno += 1 + + # process "% statement"s in the template + m = self.re_percent_line.match(line) + if m: + line = self._clean_line(line, m.end()) + + if self._is_end_of_code_block(line, lineno): + try: + body = ast.parse(code, "Template").body + return body, [], lineno + except: + line_range = "%s" % lineno if lineno == start_lineno \ + else "%d-%d" % (start_lineno, lineno) + raise ProcessException("Template[%s]: syntax error" % \ + line_range) + break # no other % allowed but %} + + code += line + "\n" + + raise ProcessException("Template: unterminated \"{\"") + + def _is_else(self, line, lineno, open_keyword): + if line != "else:": + return False + + # use only in statements that accept "else" + if open_keyword not in ("if", "for"): + raise ProcessException( + "Template[%d]: invalid \"else\"%s" % \ + (lineno, " in \"%s\"" % open_keyword \ + if open_keyword else "")) + + return True + + def _is_start_of_code_block(self, line, lineno): + return line == "{" + + def _is_end_of_code_block(self, line, lineno): + return line == "}" + + def _is_end_keyword(self, line, lineno, open_keyword): + m = self.re_end_keyword.match(line) + if not m: + return False + + if m.group(1) != open_keyword: + raise ProcessException( + " Template[%d]: expected \"end%s\"" % \ + (lineno, open_keyword)) + + return True + + def _check_percent_line(self, line, lineno): + # return the code for a "% statement" in the template + if line[-1] == ":": + line += "\n pass" + try: + tree = ast.parse(line, "Template") + except: + raise ProcessException("Template[%d]: syntax error" % lineno) + + if type(tree) is ast.Module and \ + len(tree.body) == 1: + head = type(tree.body[0]) + if head in self.keywords: + return self.keywords[head] + (tree.body[0],) + + raise ProcessException("Template[%d]: unrecognized keyword" % lineno) + + def _clean_line(self, line, code_pos): + comment_pos = line.find("#") + if comment_pos >= 0: + line = line[:comment_pos] + + return line[code_pos:].rstrip() + + def _substitute_variables(self, input_text): + # generate code to substitute {{variables}} when the template is run + code = [] + text = "" + while input_text: + m = self.re_variable.search(input_text) + if not m: + break + + # text in-between + text += input_text[:m.start()] + if text: + code.append(self._output_text(text)) + text = "" + input_text = input_text[m.end():] + + code.append(self._output_eval(m.group(1))) + + text += input_text + if text: + code.append(self._output_text(text)) + + return code + + def _output_text(self, text): + return ast.Expr(value=self._call(self._dot("_mm_f", "write"), + [ast.Str(text)])) + + def _output_eval(self, expr): + # eval(expr) + value = self._call(ast.Name("eval", ast.Load()), [ast.Str(expr)]) + # str(eval(expr)) + valueStr = self._call(ast.Name("str", ast.Load()), [value]) + # _mm_f.write(str(eval(expr))) + call = self._call(self._dot("_mm_f", "write"), [valueStr]) + + return ast.Expr(call) + + def _dot(self, name1, name2): + return ast.Attribute(value=ast.Name(name1, ast.Load()), + attr=name2, + ctx=ast.Load()) + + def _call(self, func, args): + return ast.Call( + func=func, + args=args, + keywords=[] + ) + + def _function_def(self, fun_name, fun_args, fun_body): + fun_args = ast.arguments(args=[ast.arg(a, None) \ + for a in fun_args], + posonlyargs=[], + kwonlyargs=[], + kw_defaults=[], + defaults=[]) + return ast.FunctionDef(name=fun_name, + args=fun_args, + body=fun_body, + decorator_list=[]) + +#------------------------------------------------------------------------------- +try: + read_config() + e = Examples() + e.process() +except ProcessException as ex: + print(ex) + sys.exit(1) +# other exceptions - let them fail diff --git a/tools/gen_idc_bc695.py b/tools/gen_idc_bc695.py deleted file mode 100644 index 118470f..0000000 --- a/tools/gen_idc_bc695.py +++ /dev/null @@ -1,216 +0,0 @@ - -# This script will do the following things: -# - open idc.idc -# - advance to the compatibility macros section -# - read, and parse each of those -# - if the symbol doesn't exist in the 'idc' module, dump its alias into the output file - -import argparse -p = argparse.ArgumentParser() -p.add_argument("-i", "--idc", required=True, help="Path to the idc.idc file") -p.add_argument("-o", "--output", required=True, help="Path to the output file") -p.add_argument("-d", "--debug-out", default=False, action="store_true", help="Dump code that shows, at ida start-time, what symbols would be overriden by the compat layer") -args = p.parse_args() - -import os - -with open(args.idc) as fin: - inlines = fin.readlines() - -# search for compat macros section, and remove uninteresting lines -for idx in range(len(inlines)): - if inlines[idx].replace(" ", "").find("COMPATIBILITYMACROS") > -1: - break -assert(idx < len(inlines)) -inlines=inlines[idx:] - -def nextline(): - global inlines - l = inlines[0].strip() - inlines=inlines[1:] - idx = l.find("//") - if idx > -1: - l = l[0:idx].strip() - return l - -# set of symbols that must not be redefined -forbidden = [ - "GetLocalType", - "AddSeg", - "SetType", - "GetDisasm", - "SetPrcsr", - "GetFloat", - "GetDouble", - "AutoMark", - "is_pack_real", - "set_local_type", - "WriteMap", - "WriteTxt", - "WriteExe", - "CompileEx", - "uprint", - "form", - "Appcall", - "ApplyType", - "GetManyBytes", - "GetString", - "ClearTraceFile", - "FindBinary", - "FindText", - "NextHead", - "ParseTypes", - "PrevHead", - "ProcessUiAction", - "SaveBase", - "eval", - "MakeStr", - "GetProcessorName", - "SegStart", - "SegEnd", - "SetSegmentType", - "CleanupAppcall", - "DelUserInfo", -] - -symbols_modules = [ - ("AF_ANORET", "ida_ida"), - ("AF_ANORET", "ida_ida"), - ("AF_CHKUNI", "ida_ida"), - ("AF_DATOFF", "ida_ida"), - ("AF_DOCODE", "ida_ida"), - ("AF_DODATA", "ida_ida"), - ("AF_FTAIL", "ida_ida"), - ("AF_HFLIRT", "ida_ida"), - ("AF_JUMPTBL", "ida_ida"), - ("AF_PURDAT", "ida_ida"), - ("AF_REGARG", "ida_ida"), - ("AF_SIGCMT", "ida_ida"), - ("AF_SIGMLT", "ida_ida"), - ("AF_STKARG", "ida_ida"), - ("AF_STRLIT", "ida_ida"), - ("AF_TRFUNC", "ida_ida"), - ("AF_VERSP", "ida_ida"), - ("BADADDR", "ida_idaapi"), - ("FF_UNUSED", "ida_bytes"), - ("FIXUPF_CREATED", "ida_fixup"), - ("FIXUPF_EXTDEF", "ida_fixup"), - ("FIXUPF_REL", "ida_fixup"), - ("FIXUPF_UNUSED", "ida_fixup"), - ("FIXUP_OFF8", "ida_fixup"), - ("GN_VISIBLE", "ida_name"), - ("SEGMOD_KEEP", "ida_segment"), - ("SEGMOD_KILL", "ida_segment"), - ("SEGMOD_SILENT", "ida_segment"), - ("SETPROC_IDB", "ida_idp"), - ("SETPROC_LOADER", "ida_idp"), - ("SETPROC_LOADER_NON_FATAL", "ida_idp"), - ("STRF_AUTO", "ida_ida"), - ("STRF_COMMENT", "ida_ida"), - ("STRF_GEN", "ida_ida"), - ("STRF_SAVECASE", "ida_ida"), - ("STRF_SERIAL", "ida_ida"), - ("STRTYPE_C", "ida_nalt"), - ("STRTYPE_C_16", "ida_nalt"), - ("STRTYPE_C_32", "ida_nalt"), - ("STRTYPE_LEN2_16", "ida_nalt"), - ("STRTYPE_LEN4_16", "ida_nalt"), - ("STRTYPE_PASCAL", "ida_nalt"), - ("STRTYPE_TERMCHR", "ida_nalt"), - ("V695_REF_VHIGH", "ida_nalt"), - ("V695_REF_VLOW", "ida_nalt"), - ("error", "ida_kernwin"), - ("warning", "ida_kernwin"), - ("ask_str", "ida_kernwin"), - ("ask_file", "ida_kernwin"), - ("ask_addr", "ida_kernwin"), - ("ask_long", "ida_kernwin"), - ("is_mapped", "ida_bytes"), - ("decode_insn", "ida_ua"), - ("HIST_IDENT", "ida_kernwin"), -] - -import re -def maybe_qualify(s): - last_idx = -1 - for sym, mod in symbols_modules: - idx = s.find(sym) - if idx > last_idx: - s = s.replace(sym, "%s.%s" % (mod, sym)) - last_idx = idx + 1 + len(mod) - return s - -def remove_parens(arg): - m = re.match(r'\s*\((.*)\)\s*$', arg) - if m: - arg = m.group(1) - return arg.strip() - -def fix_ternary_operator(code): - match = re.match(r'([^(]+)\((.*)\)', code) - if match: - changed = False - func = match.group(1) - args = match.group(2) - out = [] - for arg in args.split(','): - m2 = re.match(r'([^?]+)\?(.*):(.*)', arg) - if m2: - cond = remove_parens(m2.group(1)) - ithen = remove_parens(m2.group(2)) - ielse = remove_parens(m2.group(3)) - arg = ithen + ' if ' + cond + ' else ' + ielse - changed = True - out.append(arg.strip()) - if changed: - code = func + '(' + ', '.join(out) + ')' - return code - -import time -funcall_pat = re.compile(r"#define\s+([a-zA-Z0-9_]*)\s*(\([^\)]*\))\s*(.*)") -alias_pat = re.compile(r"#define\s+([a-zA-Z0-9_]*)\s*([a-zA-Z0-9_/\*\.]*)\s*$") -with open(args.output, "w") as fout: - fout.write("# Autogenerated on: %s\n\n" % time.strftime("%c")) - for mod in sorted(list(set(map(lambda tpl: tpl[1], symbols_modules)))): - fout.write("import %s\n" % mod) - fout.write("from idc import *\n\n") - while len(inlines): - l = nextline() - if l == "": - continue - repl = None - match = funcall_pat.match(l) - if match: - symbol = match.group(1) - parms = match.group(2) - code = match.group(3) - while True: - has_more = code.endswith("\\") - if has_more: - code = code[0:-1] - code = code + nextline() - else: - break - code = fix_ternary_operator(code) - code = maybe_qualify(code) - repl = "def %s%s: return %s\n" % (symbol, parms, code) - else: - match = alias_pat.match(l) - if match: - symbol = match.group(1) - newsym = match.group(2) - newsym = maybe_qualify(newsym) - repl = "%s=%s\n" % (symbol, newsym) - - if repl and symbol not in forbidden: - if not args.debug_out: - fout.write(repl) - else: - fout.write(""" -try: - import idc - x = idc.%s - print("Would override %s") -except: - pass -""" % (symbol, symbol)) diff --git a/tools/genhooks/all_recipes.py b/tools/genhooks/all_recipes.py new file mode 100644 index 0000000..1dfa417 --- /dev/null +++ b/tools/genhooks/all_recipes.py @@ -0,0 +1,65 @@ + +import recipe_idphooks +import recipe_idbhooks +import recipe_dbghooks +import recipe_uihooks +import recipe_viewhooks +import recipe_hexrays + +# filename +# enum name +# discard enum names with prefixes +# discard docs with prefixes +# remove prefixes from enum value names +# module with recipes + +hooks = { + "IDP_Hooks" : ( + "structprocessor__t.xml", + "event_t", + [], + None, + [], + recipe_idphooks + ), + "IDB_Hooks" : ( + "namespaceidb__event.xml", + "event_code_t", + [], + None, + [], + recipe_idbhooks + ), + "DBG_Hooks" : ( + "dbg_8hpp.xml", + "dbg_notification_t", + [], + None, + [], + recipe_dbghooks + ), + "UI_Hooks" : ( + "kernwin_8hpp.xml", + "ui_notification_t", + ["ui_dbg_", "ui_obsolete"], + "ui:", + ["ui_"], + recipe_uihooks + ), + "View_Hooks" : ( + "kernwin_8hpp.xml", + "view_notification_t", + [], + None, + [], + recipe_viewhooks + ), + "Hexrays_Hooks" : ( + "hexrays_8hpp.xml", + "hexrays_event_t", + [], + None, + ["hxe_", "lxe_"], + recipe_hexrays + ) +} diff --git a/tools/genhooks/doxy_gen_notifs.cfg.in b/tools/genhooks/doxy_gen_notifs.cfg.in index 9cfb06c..e4fab19 100644 --- a/tools/genhooks/doxy_gen_notifs.cfg.in +++ b/tools/genhooks/doxy_gen_notifs.cfg.in @@ -228,13 +228,43 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +# Copied from etc/sdk/doxygen.cfg; +# alias \sq not included, because it translated to HTML; +# implemented at plugins/idapython/tools/docs/epytext.py +# Also, added \insn_t -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. + #"ph{1} = ::ph::\link processor_t::\1 \1\endlink" \ + #"inf{1} = ::inf::\link idainfo::\1 \1\endlink" \ + #"ash{1} = ::ash.\link asm_t::\1 \1\endlink" \ + #"cmd{1} = ::cmd::\link insn_t::\1 \1\endlink" \ + #"dto{1} = ::dto::\link text_options_t::\1 \1\endlink" \ + #"sq{4} = \ + # \ + # \ + #
\1\2
\3\4
" \ -TCL_SUBST = +ALIASES = "varmem{3} = \link ::\1 \1\endlink.\link \2::\3 \3\endlink" \ + "call1{2} = \link \1() \1\endlink(\2)" \ + "call2{3} = \link \1() \1\endlink(\2, \3)" \ + "isdecl{1} = \link \1(type_t) \1\endlink(get_decltype())" \ + "isreal{1} = \link \1(type_t) \1\endlink(get_realtype())" \ + "getset{1} = \link get\1() get\endlink/\link set\1()\endlink" \ + "tinfocc{1} = \link \1(cm_t) \1\endlink(get_cc())" \ + "ph{1} = processor_t::\1" \ + "inf{1} = idainfo::\1" \ + "ash{1} = asm_t::\1" \ + "cmd{1} = insn_t::\1" \ + "insn_t{1} = insn_t::\1" \ + "dto{1} = text_options_t::\1" \ + "dbg{1} = debugger_t::\1" \ + "idpcode{1} = \link processor_t::\1 \1\endlink" \ + "def{2} = \def \1\n \2" \ + "typedef{2} = \typedef \1\n \2" \ + "struct{2} = \struct \1\n \2" \ + "fn{2} = \fn \1\n \2" \ + "var{2} = \var \1\n \2" \ + "v{1} = \verbatim \1 \endverbatim" \ + "union{1} = \name \1" # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For @@ -291,7 +321,7 @@ EXTENSION_MAPPING = # case of backward compatibilities issues. # The default value is: YES. -MARKDOWN_SUPPORT = YES +MARKDOWN_SUPPORT = NO # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can @@ -993,13 +1023,6 @@ VERBATIM_HEADERS = YES ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1695,16 +1718,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # http://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1769,16 +1782,6 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -1868,15 +1871,6 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -1989,7 +1983,6 @@ PREDEFINED = __cplusplus \ __NT__ \ _MSC_VER \ UNICODE \ - NO_OBSOLETE_FUNCS \ define_place_exported_functions()= \ define_place_virtual_functions()= \ AS_PRINTF()= \ @@ -2005,7 +1998,8 @@ PREDEFINED = __cplusplus \ DECLARE_TINFO_HELPERS()= \ DECLARE_COMPARISONS()= \ ENUM_SIZE()= \ - OBSOLETE()= + OBSOLETE()= \ + NONNULL_s=s # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The @@ -2072,34 +2066,10 @@ EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of 'which perl'). -# The default file (with absolute path) is: /usr/bin/perl. - -PERL_PATH = /usr/bin/perl - #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see: -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. diff --git a/tools/genhooks/genhooks.py b/tools/genhooks/genhooks.py index 30fb4ba..1f52da2 100644 --- a/tools/genhooks/genhooks.py +++ b/tools/genhooks/genhooks.py @@ -7,154 +7,33 @@ from __future__ import print_function # convoluted. Especially since it doesn't do that much. Perhaps a good # refactoring is in order? +import os +import sys import six +dirname, _ = os.path.split(__file__) +parent_dirname, _ = os.path.split(dirname) +if parent_dirname not in sys.path: + sys.path.append(parent_dirname) + from argparse import ArgumentParser p = ArgumentParser() -p.add_argument("-i", "--input", required=True, dest="input", help="Input file") -p.add_argument("-o", "--output", required=True, dest="output", help="Output file") -p.add_argument("-x", "--xml", required=True, dest="xml", help="XML structure containing enumerations information") -p.add_argument("-c", "--hooks-class", required=True, dest="hooks_class", help="Name of the hooks class") -p.add_argument("-e", "--enum", required=True, dest="enum", help="Enumeration to look for") -p.add_argument("-m", "--marker", required=True, dest="marker", help="Marker to look for, to start generating callbacks") -p.add_argument("-r", "--default-rtype", required=True, dest="def_rtype", help="Default return type, for notifications that don't specify it") -p.add_argument("-n", "--default-rval", required=True, dest="def_rval", help="Default return value, for notifications that don't specify it") -p.add_argument("-q", "--qualifier", required=False, dest="qualifier", help="A possible qualifier, to put in front of enumerators", default="") -p.add_argument("-R", "--recipe", required=False, dest="recipe", help="Special information, needed to generate valid & compatible hooks") -p.add_argument("-d", "--discard-prefix",required=False, dest="discard_prefix",help="Discard all enum entries starting with the given prefix(es) (multiple prefixes can be specified as a comma-separated list.)") -p.add_argument("-D", "--discard-doc", required=False, dest="discard_doc", help="Typically for kernwin.hpp: ignore enum entries whose documentation starts with the specified pattern (e.g., 'ui:', which is for 'to UI' codes, and not 'from UI' codes)") -p.add_argument("-s", "--strip-prefix", required=False, dest="strip_prefix", help="Strip the given prefix from the enumerator name (e.g., 'ui_', for kernwin.hpp notifications)") +p.add_argument("-i", "--input", required=True, help="Input file") +p.add_argument("-o", "--output", required=True, help="Output file") +p.add_argument("-x", "--xml-dir", required=True, help="XML structure containing enumerations information") +p.add_argument("-c", "--hooks-class", required=True, help="Name of the hooks class") +p.add_argument("-m", "--marker", required=True, help="Marker to look for, to start generating callbacks") +p.add_argument("-q", "--qualifier", required=False, help="A possible qualifier, to put in front of enumerators", default="") args = p.parse_args() def warn(msg): print("#### WARNING: %s" % msg) -if args.recipe: - exec(open(args.recipe).read()) -else: - recipe = {} - -from xml.dom import * -import xml.etree.ElementTree as ET -tree = ET.parse(args.xml) - -# Find enum def -enum_el = tree.find(".//memberdef[@kind='enum']/[name='%s']" % args.enum) - - -def parse_return_type(desc): - default = None - import re - m = re.match(r".*\(default=([^\)]*)\).*", desc) - if m: - default = m.group(1) - if desc.startswith("void"): - return "void", default - else: - return parse_param_type(desc), default - -def parse_param_type(desc): - if desc.startswith("("): - import re - m = re.match(r"\(([^\)]*)\)\s*.*", desc) - if m: - ptype = m.group(1) - return ptype.lstrip(":").replace(" ::", " ") - -def collect_all_text(el): - bits = [] - for txt in el.itertext(): - bits.append(txt) - return "".join(bits) - -enumerators = [] -def add_enum_value(enumval_el, name, enum_name): - if not name.startswith("OBSOLETE"): - params = [] - - # Return type - ret_el = enumval_el.find(".//simplesect[@kind='return']") - rdata = {"name" : ""} - rtype = None - rdefault = None - rexpr = None - recipe_data = recipe.get(name, {}) - - if "ignore" in recipe_data and recipe_data["ignore"]: - return - - return_data = recipe_data["return"] if (recipe_data and "return" in recipe_data) else {} - if "type" in return_data: - rtype = return_data["type"] - elif ret_el is not None: - rdesc = ret_el.find("para").text - rtype, rdefault = parse_return_type(rdesc) - - if rtype is None: - rtype = args.def_rtype - - if rtype != "void" and rdefault is None: - rdefault = args.def_rval - assert(rdefault is not None) - - if "default" in return_data: - rdefault = return_data["default"] - if "retexpr" in return_data: - rexpr = return_data["retexpr"] - - params.append({ - "name" : "", - "type" : rtype, - "default" : rdefault, - "retexpr" : rexpr, - }) - - # Parameters - plist_el = enumval_el.find(".//parameterlist") - if plist_el is not None: - for pitem_el in plist_el.findall("./parameteritem"): - pname = pitem_el.find(".//parametername").text - if pname != "none" and pname != "...": - pdesc = collect_all_text(pitem_el.find(".//parameterdescription/para")) - ptype = parse_param_type(pdesc) - if ptype is None: - warn("Couldn't parse parameter description: \"%s\". Dropping notification \"%s\" altogether" % (pdesc, name)) - return - params.append({ - "name" : pname, - "type" : ptype, - }) - - # added parameters - if "add_params" in recipe_data: - params.extend(recipe_data["add_params"]) - - enumerators.append({"name" : name, "params" : params, "enum_name" : enum_name}) - - -# for each enum value... -for enumval_el in enum_el.findall("./enumvalue"): - discarded = False - enum_name = enumval_el.find("./name").text - name = enum_name - if args.discard_prefix: - for pfx in args.discard_prefix.split(","): - if name.startswith(pfx): - discarded = True - break - if not discarded and args.discard_doc: - discarded = collect_all_text(enumval_el.find("./detaileddescription")).strip().startswith(args.discard_doc) or \ - collect_all_text(enumval_el.find("./briefdescription")).strip().startswith(args.discard_doc) - if not discarded: - if args.strip_prefix: - pfxes = args.strip_prefix.split(",") - for pfx in pfxes: - if name.startswith(pfx): - name = name[len(pfx):] - break - add_enum_value(enumval_el, name, enum_name) - +import hooks_utils +enum_info = hooks_utils.get_hooks_enum_information(args.hooks_class) +recipe = enum_info.recipe +enumerators = hooks_utils.get_hooks_enumerators(args.xml_dir, args.hooks_class) def dump(): for enumerator in enumerators: @@ -307,14 +186,14 @@ def gen_notifications(out): pass_expr = pname if deref: - pass_expr = "%s != NULL ? *(%s) : (%s)" % ( + pass_expr = "%s != nullptr ? *(%s) : (%s)" % ( pname, pname, deref["ifNULL"]) if clinked: out.write(" ref_t clinked_%s = create_linked_class_instance(%s, %s, %s);\n" % (pname, clinked["module_define"], clinked["class_define"], pname)) - out.write(" if ( clinked_%s == NULL )\n" % pname) + out.write(" if ( clinked_%s == nullptr )\n" % pname) out.write(" break;\n") pass_expr = "clinked_%s.o" % pname elif synth: @@ -391,14 +270,15 @@ const size_t %s::mappings_size = %d; def gen_safecall(out, class_name): out.write(""" - // This hook gets called from the kernel. Ensure we hold the GIL. - PYW_GIL_GET; %s *proxy = (%s *) ud; ssize_t ret = 0; try { if ( !proxy->has_fixed_method_set() || proxy->has_nondef[int(code)] > 0 ) { + // This hook gets called from the kernel. Ensure we hold the GIL. + PYW_GIL_GET; + if ( proxy->call_requires_new_execution() ) { new_execution_t exec; @@ -412,8 +292,8 @@ def gen_safecall(out, class_name): } catch ( Swig::DirectorException &e ) { + PYW_GIL_GET; msg("Exception in %%s dispatcher function: %%s\\n", proxy->class_name, e.getMessage()); - PYW_GIL_CHECK_LOCKED_SCOPE(); if ( PyErr_Occurred() ) PyErr_Print(); } diff --git a/tools/genhooks/recipe_dbghooks.py b/tools/genhooks/recipe_dbghooks.py index 702da00..86d7cf6 100644 --- a/tools/genhooks/recipe_dbghooks.py +++ b/tools/genhooks/recipe_dbghooks.py @@ -162,3 +162,5 @@ recipe = { }, }, } + +default_rtype = "void" diff --git a/tools/genhooks/recipe_hexrays.py b/tools/genhooks/recipe_hexrays.py index 90a1eb5..9a2b4e6 100644 --- a/tools/genhooks/recipe_hexrays.py +++ b/tools/genhooks/recipe_hexrays.py @@ -7,8 +7,8 @@ recipe = { }, "create_hint" : { "params" : { - "result_hint" : { "suppress_for_call" : True, }, - "implines" : { "suppress_for_call" : True, }, + "hint" : { "suppress_for_call" : True, }, + "important_lines" : { "suppress_for_call" : True, }, }, "return" : { "type" : "PyObject *", @@ -16,5 +16,18 @@ recipe = { "convertor" : "Hexrays_Hooks::handle_create_hint_output", "convertor_pass_args" : True, } - } + }, + "build_callinfo" : { + "params" : { + "callinfo" : { "suppress_for_call" : True, }, + }, + "return" : { + "type" : "PyObject *", + "retexpr" : "Py_RETURN_NONE", + "convertor" : "Hexrays_Hooks::handle_build_callinfo_output", + "convertor_pass_args" : True, + } + }, } + +default_rtype = "int" diff --git a/tools/genhooks/recipe_idbhooks.py b/tools/genhooks/recipe_idbhooks.py index b82ea05..7fc8291 100644 --- a/tools/genhooks/recipe_idbhooks.py +++ b/tools/genhooks/recipe_idbhooks.py @@ -15,3 +15,5 @@ recipe = { ], }, } + +default_rtype = "void" diff --git a/tools/genhooks/recipe_idphooks.py b/tools/genhooks/recipe_idphooks.py index 21bf6cc..f124c4d 100644 --- a/tools/genhooks/recipe_idphooks.py +++ b/tools/genhooks/recipe_idphooks.py @@ -5,6 +5,9 @@ recipe = { "ev_last_cb_before_type_callbacks" : {"ignore" : True}, "ev_get_idd_opinfo" : {"ignore" : True}, "ev_loader_elf_machine" : {"ignore" : True}, + "ev_broadcast" : {"ignore" : True}, + "ev_obsolete1" : {"ignore" : True}, + "ev_obsolete2" : {"ignore" : True}, "ev_ana_insn" : { "return" : { "type" : "bool", @@ -187,3 +190,5 @@ recipe = { }, }, } + +default_rtype = "int" diff --git a/tools/genhooks/recipe_uihooks.py b/tools/genhooks/recipe_uihooks.py index 508f52e..ec9e7dc 100644 --- a/tools/genhooks/recipe_uihooks.py +++ b/tools/genhooks/recipe_uihooks.py @@ -3,7 +3,6 @@ recipe = { "null" : {"ignore" : True}, "last" : {"ignore" : True}, "gen_idanode_text" : {"ignore" : True}, # text_t & friends not exposed - "get_lines_rendering_info" : {"ignore" : True}, "get_ea_hint" : { "params" : { @@ -56,21 +55,21 @@ recipe = { "populating_widget_popup" : { "params" : { "ctx" : { - "default" : "NULL", + "default" : "nullptr", }, }, }, "finish_populating_widget_popup" : { "params" : { "ctx" : { - "default" : "NULL", + "default" : "nullptr", }, }, }, "create_desktop_widget" : { "params" : { "cfg" : { - "type" : "jobj_wrapper_t", + "type" : "const jobj_wrapper_t &", "convertor" : "UI_Hooks::wrap_widget_cfg", "convertor_pass_args" : True, }, @@ -103,4 +102,15 @@ recipe = { }, }, }, + "database_closed" : { + "params" : { + "reserved" : + { + "suppress_for_call" : True, + "qnotused" : True, + }, + }, + }, } + +default_rtype = "void" diff --git a/tools/genhooks/recipe_viewhooks.py b/tools/genhooks/recipe_viewhooks.py index b81fdce..4bb1275 100644 --- a/tools/genhooks/recipe_viewhooks.py +++ b/tools/genhooks/recipe_viewhooks.py @@ -1,3 +1,5 @@ recipe = { } + +default_rtype = "void" diff --git a/tools/genidaapi.py b/tools/genidaapi.py index 7820028..b5cc143 100644 --- a/tools/genidaapi.py +++ b/tools/genidaapi.py @@ -2,12 +2,7 @@ from __future__ import print_function import sys import string - -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise +from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("-i", "--input", required=True) diff --git a/tools/genswigheader.py b/tools/genswigheader.py index ed9d893..9351080 100644 --- a/tools/genswigheader.py +++ b/tools/genswigheader.py @@ -4,11 +4,7 @@ import sys import os import glob -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise +from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("-i", "--input", required=True) @@ -34,13 +30,33 @@ with open(args.input) as fin: parts.append("#if defined(IDA_MODULE_PRO)") parts.append("// nothing; has to be handled in pro.i") parts.append("#else") - required_headers = ["pro", "ida", "xref", "typeinf", "enum", "netnode", "range", "lines", "kernwin", "bytes", "auto", "nalt", "idd", "idp"] + required_headers = ["pro", "ida", "xref", "typeinf", "enum", "netnode", "range", "lines", "kernwin", "bytes", "auto", "nalt", "idd", "idp", "gdl"] + # required_headers = ["pro", "ida", "xref", "typeinf", "enum", "netnode", "range", "lines", "kernwin", "bytes", "auto", "nalt", "idd", "idp", "dirtree"] for rh in required_headers: add_imports_from_dep(rh) parts.append("#endif") + # Collect NONNULL typemaps + nonnul_typemaps_parts = [] + for md_path in glob.glob(os.path.join(args.sdk, "*.metadata")): + with open(md_path, "rb") as md_fin: + raw = md_fin.read().decode("UTF-8") + md = eval(raw) + for ptype, pname in md: + nonnul_typemaps_parts.append( + """ +%%typemap(check) (%s %s) +{ + if ( $1 == nullptr ) + SWIG_exception_fail(SWIG_ValueError, "invalid null pointer " "in method '" "$symname" "', argument " "$argnum"" of type '" "$1_type""'"); +} + """ % (ptype, pname)) + # Can't use string.Template here, because it's a nightmare # to use with a file that has many '$' is it. template = fin.read() - result = template.replace("${ALL_IMPORTS}", "\n".join(parts)) + result = template\ + .replace("${ALL_IMPORTS}", "\n".join(parts))\ + .replace("${NONNULL_TYPEMAPS}", "\n".join(nonnul_typemaps_parts)) + fout.write(result) diff --git a/tools/hooks_utils.py b/tools/hooks_utils.py new file mode 100644 index 0000000..971ed23 --- /dev/null +++ b/tools/hooks_utils.py @@ -0,0 +1,187 @@ + +import os +import sys +import xml.etree.ElementTree as ET + +import doxygen_utils + +mydir, _ = os.path.split(__file__) +genhooks_dir = os.path.join(mydir, "genhooks") +if genhooks_dir not in sys.path: + sys.path.append(genhooks_dir) + +import all_recipes + +class enum_info_t: + def __init__( + self, + fname, + enum_name, + discard_prefixes, + discard_doc, + strip_prefixes, + recipe, + default_rtype): + self.fname = fname + self.enum_name = enum_name + self.discard_prefixes = discard_prefixes + self.discard_doc = discard_doc + self.strip_prefixes = strip_prefixes + self.recipe = recipe + self.default_rtype = default_rtype + +_hooks_enum_info = {} +for klass in all_recipes.hooks: + fname, \ + enum_name, \ + discard_prefixes, \ + discard_doc, \ + strip_prefixes, \ + recipe_module = all_recipes.hooks[klass] + + _hooks_enum_info[klass] = enum_info_t( + fname, + enum_name, + discard_prefixes, + discard_doc, + strip_prefixes, + recipe_module.recipe, + recipe_module.default_rtype) + + +def get_hooks_enum_information(class_name): + return _hooks_enum_info[class_name] + +def _parse_param_type(desc): + if desc.startswith("("): + import re + m = re.match(r"\(([^\)]*)\)\s*(.*)", desc) + if m: + ptype = m.group(1) + return ptype.lstrip(":").replace(" ::", " "), m.group(2) + return None, None + +def _parse_return_type(desc): + default = None + import re + m = re.match(r".*\(default=([^\)]*)\).*", desc) + if m: + default = m.group(1) + if desc.startswith("void"): + return "void", None, default + else: + ptype, notype_pdesc = _parse_param_type(desc) + if ptype is None and notype_pdesc is None: + notype_pdesc = desc + return ptype, notype_pdesc, default + +def _parse_enumerator(enumval_el, name, enum_name, hooks_info): + + # Return type + ret_el = enumval_el.find(".//simplesect[@kind='return']") + rtype = None + rdefault = None + rexpr = None + recipe_data = hooks_info.recipe.get(name, {}) + + if "ignore" in recipe_data and recipe_data["ignore"]: + return + + brief = doxygen_utils.get_element_description(enumval_el, "briefdescription") + detailed = doxygen_utils.get_element_description(enumval_el, "detaileddescription") + + notype_rdesc = None + retvals = [] + return_data = recipe_data["return"] if (recipe_data and "return" in recipe_data) else {} + if "type" in return_data: + rtype = return_data["type"] + elif ret_el is not None: + rdesc = ret_el.find("para").text + rtype, notype_rdesc, rdefault = _parse_return_type(rdesc) + + detaileddescription_el = enumval_el.find("detaileddescription") + if detaileddescription_el is not None: + def collect_retval(value, desc): + retvals.append((value, desc)) + doxygen_utils.for_each_retval(detaileddescription_el, collect_retval) + + if rtype is None: + rtype = hooks_info.default_rtype + + if rtype != "void" and rdefault is None: + rdefault = 0 + + if "default" in return_data: + rdefault = return_data["default"] + if "retexpr" in return_data: + rexpr = return_data["retexpr"] + + params = [{ + "name" : "", + "type" : rtype, + "default" : rdefault, + "retexpr" : rexpr, + "desc" : notype_rdesc or None, + "values" : retvals or None, + }] + + # arguments + plist_el = enumval_el.find(".//parameterlist[@kind='param']") + if plist_el is not None: + for pitem_el in plist_el.findall("./parameteritem"): + pname = pitem_el.find(".//parametername").text + if pname != "none" and pname != "...": + pdesc = doxygen_utils.join_all_element_text(pitem_el.find(".//parameterdescription/para")) + ptype, notype_pdesc = _parse_param_type(pdesc) + if ptype is None: + print("Couldn't parse parameter description: \"%s\". Dropping notification \"%s\" altogether" % (pdesc, name)) + return + params.append({ + "name" : pname, + "type" : ptype, + "desc" : notype_pdesc, + }) + + # added parameters + if "add_params" in recipe_data: + params.extend(recipe_data["add_params"]) + + return { + "brief" : brief, + "detailed" : detailed, + "name" : name, + "params" : params, + "enum_name" : enum_name, + } + + +def get_hooks_enumerators(xml_dir, class_name): + hooks_info = get_hooks_enum_information(class_name) + tree = ET.parse(os.path.join(xml_dir, hooks_info.fname)) + enum_el = tree.find(".//memberdef[@kind='enum']/[name='%s']" % hooks_info.enum_name) + + enumerators = [] + for enumval_el in enum_el.findall("./enumvalue"): + discarded = False + orig_name = enumval_el.find("./name").text + name = orig_name + for pfx in hooks_info.discard_prefixes: + if name.startswith(pfx): + discarded = True + break + if not discarded and hooks_info.discard_doc: + JT = doxygen_utils.join_all_element_text + discarded = JT(enumval_el.find("./detaileddescription")).strip().startswith(hooks_info.discard_doc) or \ + JT(enumval_el.find("./briefdescription")).strip().startswith(hooks_info.discard_doc) + if not discarded: + for pfx in hooks_info.strip_prefixes: + if name.startswith(pfx): + name = name[len(pfx):] + break + if not name.startswith("OBSOLETE"): + e = _parse_enumerator(enumval_el, name, orig_name, hooks_info) + if e: + enumerators.append(e) + + return enumerators + diff --git a/tools/inject_base_hooks_flags.py b/tools/inject_base_hooks_flags.py index 0a6f95f..33e73f5 100644 --- a/tools/inject_base_hooks_flags.py +++ b/tools/inject_base_hooks_flags.py @@ -2,12 +2,7 @@ from __future__ import print_function import re import string - -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise +from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("-i", "--input", required=True) diff --git a/tools/inject_plfm.py b/tools/inject_plfm.py deleted file mode 100644 index d74cfb9..0000000 --- a/tools/inject_plfm.py +++ /dev/null @@ -1,42 +0,0 @@ -from __future__ import print_function - -import re -import string - -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise - -parser = ArgumentParser() -parser.add_argument("-i", "--input", required=True) -parser.add_argument("-o", "--output", required=True) -parser.add_argument("-d", "--decls", required=True) -args = parser.parse_args() - -with open(args.input) as fin: - template = string.Template(fin.read()) - -with open(args.decls) as fin: - raw = fin.read() -pat = re.compile(r"^#\s*define\s+(PLFM_[A-Za-z0-9_]*)\s+([0-9x]*)\s*(.*)$") -decls = [] -for line in raw.split("\n"): - m = pat.match(line) - if m: - proc = m.group(1) - value = m.group(2) - cmt = None - rest = m.group(3) - rest_cmt = rest.find("///<") - if rest_cmt > -1: - cmt = rest[rest_cmt+4:].strip() - decls.append("{:20s} = {:8s} # {:s}".format(proc, value, cmt or "?")) -kvps = { - "PLFM_DECLS" : "\n".join(decls) -} - -with open(args.output, "w") as fout: - fout.write(template.substitute(kvps)) - diff --git a/tools/inject_pydoc.py b/tools/inject_pydoc.py index d03c3c4..90b7c87 100644 --- a/tools/inject_pydoc.py +++ b/tools/inject_pydoc.py @@ -1,34 +1,56 @@ -from __future__ import print_function -# -# This (non-idiomatic) python script is in charge of -# 1) Parsing all .i files in the 'swig/' directory, and -# collecting all function, classes & methods comments -# that can be found between / tags. -# 2) Reading, line by line, the idaapi_.py.raw -# file, and for each function, class & method found -# there, associate a possily previously-harvested -# pydoc documentation. -# 3) Generating the idaapi_.py file. -# +# A program to combine docstrings from multiple sources (Python, C++) +# into the final docstrings in the IDAPython sources. +# Called from the idapython makefile. +# +# Bird's eye view: +# +# main() Input from idapython/obj/.../*.py, +# Various inputs Output to current/bin/.../*.py +# ------------------------ ----------------------- +# swig_pydoc_collector_t \ +# cpp_wrapper_parser_t |--> pydoc_patcher_t +# doxygen_info_t / +# ------------------------ ----------------------- +# +# pydoc_visitor_t __/ swig_pydoc_collector_t \__ +# used by both \ pydoc_patcher_t / to read Python's AST +# +# doc_info_t \ +# class_info_t | +# cpp_fun_info_t |-- (mostly) data objects +# location_t | +# repo_t | +# hook_info_t / +# +# prototype_t \ +# structured_comment_t |-- split docs in parts (prototype, parameters, text) +# assembled_comment_t / and help to reassemble these from multiple sources +# +# call_traces_t -- runtime info collected from uitests, +# used to fix prototypes (f.i. return values) +# +# cases_t \__ allow special exceptions to the general rules; +# case_t / special cases are read from the file given by the --cases argument +# +# inspect_importer_t \__ helper classes used resp. by __/ pydoc_visitor_t +# cpp_patterns_t / \ pydoc_patcher_t + + +from __future__ import print_function + +import ast +import re import sys import os -import re -import textwrap import xml.etree.ElementTree as ET -import six +import textwrap +from argparse import ArgumentParser -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise - -mydir, _ = os.path.split(__file__) -if mydir not in sys.path: - sys.path.append(mydir) - -import wrapper_utils +genhooks_dir = os.path.join(os.path.dirname(__file__), "genhooks") +if genhooks_dir not in sys.path: + sys.path.append(genhooks_dir) +import all_recipes parser = ArgumentParser() parser.add_argument("-i", "--input", required=True) @@ -36,719 +58,2114 @@ parser.add_argument("-s", "--interface", required=True) parser.add_argument("-w", "--cpp-wrapper", required=True) parser.add_argument("-o", "--output", required=True) parser.add_argument("-x", "--xml-doc-directory", required=True) -parser.add_argument("-e", "--epydoc-injections", required=True) parser.add_argument("-m", "--module", required=True) +parser.add_argument("-t", "--traces", required=False) +parser.add_argument("-c", "--cases", required=False) parser.add_argument("-v", "--verbose", default=False, action="store_true") parser.add_argument("-d", "--debug", default=False, action="store_true") +parser.add_argument("-D", "--debug-name", type=str, default="") args = parser.parse_args() -this_dir, _ = os.path.split(__file__) -sys.path.append(this_dir) -import doxygen_utils - -DOCSTR_MARKER = '"""' -DOCSTR_MARKER_START_RAW = 'r"""' - -def verb(msg): - if args.verbose: - print(msg) - -def dbg(msg): - if args.debug: - print("DEBUG: " + msg) +# -------------------------------------------------------------------------- +class pysyntax_exception_t(Exception): + def __init__(self, message, text): + super(pysyntax_exception_t, self).__init__( + "%s\n %s" % (message, text)) # -------------------------------------------------------------------------- -def load_patches(args): - patches = {} - dirpath, _ = os.path.split(__file__) - candidate = os.path.join(dirpath, "inject_pydoc", "%s.py" % args.module) - if os.path.isfile(candidate): - with open(candidate) as fin: - raw = fin.read() - patches = eval(raw) - return patches +class cppsyntax_exception_t(Exception): + def __init__(self, parser, message): + super(cppsyntax_exception_t, self).__init__( + "%s\n Path: %s\n Func: %s" + % (message, parser.path, parser.fun_name)) # -------------------------------------------------------------------------- -def split_oneliner_comments_and_remove_property_docstrings(lines): - out_lines = [] - pat = re.compile('(.*= property\(.*), doc=r""".*"""(\))') - for line in lines: +class process_exception_t(Exception): + pass - line = line.rstrip() - - m = pat.match(line) - if m: - line = m.group(1) + m.group(2) - - if line.startswith("#"): - out_lines.append(line) - continue - - if len(line) == 0: - out_lines.append("") - continue - - handled = False - if line.endswith(DOCSTR_MARKER): - emarker_idx = line.rfind(DOCSTR_MARKER) - if line.lstrip().startswith(DOCSTR_MARKER_START_RAW): - smarker = DOCSTR_MARKER_START_RAW - smarker_idx = line.find(DOCSTR_MARKER_START_RAW) - elif line.lstrip().startswith(DOCSTR_MARKER): - smarker = DOCSTR_MARKER - smarker_idx = line.find(DOCSTR_MARKER) - else: - smarker_idx = -1 - if smarker_idx > -1: - pfx = line[0:smarker_idx] - meat = line[smarker_idx+len(smarker):emarker_idx] - if len(meat.strip()): - out_lines.append(pfx + smarker) - out_lines.append(pfx + meat) - out_lines.append(pfx + DOCSTR_MARKER) - handled = True - if not handled: - out_lines.append(line) - # meat = line[0:idx] - - # pfx = None - # while line.find(DOCSTR_MARKER) > -1: - # idx = line.find(DOCSTR_MARKER) - # if idx > 0 and line[idx-1] == 'r': - # idx -= 1 - # meat = line[0:idx] - # # print("MEAT: '%s'" % meat) - # try: - # if len(meat.strip()) == 0: - # pfx = meat - # out_lines.append(pfx + DOCSTR_MARKER) - # else: - # out_lines.append((pfx if pfx is not None else "") + meat) - # out_lines.append((pfx if pfx is not None else "") + DOCSTR_MARKER) - # except: - # raise BaseException("Error at line: " + line) - # line = line[idx + len(DOCSTR_MARKER):] - # if len(line.strip()) > 0: - # out_lines.append((pfx if pfx is not None else "") + line) - return out_lines +selective_debug = False # -------------------------------------------------------------------------- -def dedent(lines): - if len(lines) < 1: - return lines - line0 = lines[0] - indent = len(line0) - len(line0.lstrip()) - if indent < 0: - raise BaseException("Couldn't find \" in '" + line0 + "'") - expect = " " * indent - def proc(l): - #print "DE-INDENTING '%s'" % l - if len(l) == 0: - return l # Keep empty lines - prefix = l[0:indent] - if prefix != expect: - raise BaseException("Line: '" + l + "' has wrong indentation. Expected " + str(indent) + " spaces.") - return l[indent:] - return map(proc, lines) +def pyver(): + return sys.version_info.major + +LOG_LEVEL_DEBUG = 1 +LOG_LEVEL_VERB = 2 +LOG_LEVEL_INFO = 3 +log_level_pfx = { + LOG_LEVEL_DEBUG : "DEBUG", + LOG_LEVEL_VERB : "VERB", + LOG_LEVEL_INFO : "INFO", +} + +log_level = LOG_LEVEL_INFO +log_indent = 0 +class new_log_indent_t(object): + def __enter__(self): + global log_indent + log_indent += 1 + return self + + def __exit__(self, exc_type, exc_value, traceback): + global log_indent + log_indent -= 1 + if exc_value: + raise + # -------------------------------------------------------------------------- -def get_fun_name(line): - return re.search("def ([^\(]*)\(", line).group(1) +def log(level, msg): + if log_level >= level: + pfx = log_level_pfx[level] + if isinstance(msg, bytes): + msg = msg.decode("utf-8") + lines = msg.split("\n") + for line in lines: + print("%s: %s%s" % (pfx, log_indent * " ", line)) # -------------------------------------------------------------------------- -def get_class_name(line): - return re.search("class ([^\(:]*)[\(:]?", line).group(1) +def log_debug(msg): + return log(LOG_LEVEL_DEBUG, msg) # -------------------------------------------------------------------------- -def get_indent_string(line): - indent = len(line) - len(line.lstrip()) - return " " * indent +def log_verb(msg): + return log(LOG_LEVEL_VERB, msg) # -------------------------------------------------------------------------- -class collect_pydoc_t(object): - """ - Search in all files in the 'plugins/idapython/swig/' directory - for possible additional we could use later. - """ - S_UNKNOWN = 0 - S_IN_PYDOC = 1 - S_IN_DOCSTR = 2 - # S_STOP = 5 - PYDOC_START = "#" - PYDOC_END = "#" - state = S_UNKNOWN - lines = None +def log_info(msg): + return log(LOG_LEVEL_INFO, msg) - def __init__(self, input_path): - self.idaapi_pydoc = {"funcs" : {}, "classes" : {}} - self.input_path = input_path +# -------------------------------------------------------------------------- +# TL;DR: we need the proper "inspect" module, +# and this class ensures that we import the right one. +# +# Long story: +# +# pydoc_visitor_t (below) uses ast.get_docstring(..., False) +# ("True" would have cleaned the docstring by calling +# the "cleandoc" function in the "inspect" module). +# +# We chose to read without cleaning, and clean manually later +# (by a call to "inspect.cleandoc"), because other docstrings +# do not come from ast.get_docstring() - namely, the ones we +# pcik up manually after assignments, as docstrings for a variable. +# +# For that manual cleaning, we need the inspect module; +# this class ensures that we load the correct one +# (why is there a "correct" or an "incorrect" inspect module, +# is explaned in another comment below). - def next(self): - line = self.lines[0] - self.lines = self.lines[1:] - return line +class inspect_importer_t(object): - def set_fun(self, name, collected): - self.idaapi_pydoc["funcs"][name] = dedent(collected) + singleton = None - def collect_fun(self, fun_name): - collected = [] - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_IN_PYDOC: - if line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - return self.set_fun(fun_name, collected) - elif line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_DOCSTR - elif not line.startswith(" "): - return self.set_fun(fun_name, collected) - elif self.state is self.S_IN_DOCSTR: - if line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_PYDOC - return self.set_fun(fun_name, collected) - else: - collected.append(line) - else: - raise BaseException("Unexpected state: " + str(self.state)) + @staticmethod + def get_singleton(): + klass = inspect_importer_t - def set_method(self, cls, method_name, collected): - cls["methods"][method_name] = dedent(collected) + if not klass.singleton: + klass.singleton = inspect_importer_t() - def collect_method(self, cls, method_name): - collected = [] - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_IN_PYDOC: - if line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - return self.set_method(cls, method_name, collected) - elif line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_DOCSTR - elif self.state is self.S_IN_DOCSTR: - if line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_PYDOC - return self.set_method(cls, method_name, collected) - else: - collected.append(line) - - def set_class(self, name, cls_data, collected): - cls_data["doc"] = dedent(collected) if len(collected) > 0 else None - self.idaapi_pydoc["classes"][name] = cls_data - - def collect_cls(self, cls_name): - collected = [] - cls = {"methods":{},"doc":None} - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_IN_PYDOC: - if line.startswith(" def "): - self.collect_method(cls, get_fun_name(line)) - if self.state == self.S_UNKNOWN: # method marked end of - return self.set_class(cls_name, cls, collected) - elif line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_DOCSTR - elif line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - return self.set_class(cls_name, cls, collected) - elif len(line) > 1 and not line.startswith(" "): - return self.set_class(cls_name, cls, collected) - elif self.state is self.S_IN_DOCSTR: - if line.find(DOCSTR_MARKER) > -1: - self.state = self.S_IN_PYDOC - else: - collected.append(line) - - def collect_file_pydoc(self, filename): - self.state = self.S_UNKNOWN - with open(filename) as f: - self.lines = split_oneliner_comments_and_remove_property_docstrings(f.readlines()) - context = None - doc = [] - while len(self.lines) > 0: - line = self.next() - if self.state is self.S_UNKNOWN: - if line.startswith(self.PYDOC_START): - self.state = self.S_IN_PYDOC - elif self.state is self.S_IN_PYDOC: - if line.startswith("def "): - self.collect_fun(get_fun_name(line)) - elif line.startswith("class "): - self.collect_cls(get_class_name(line)) - elif line.startswith(self.PYDOC_END): - self.state = self.S_UNKNOWN - - def collect(self): - verb("### Processing %s" % os.path.basename(self.input_path)) - self.collect_file_pydoc(self.input_path) - return self.idaapi_pydoc - - -class base_doc_t: - - class context_t: - def __init__(self): - self.tokens = [] # pending to be textwrap'd - self.lines = [] # already textwrap'd - - def add_token_nostrip(self, token): - if token: - self.tokens.append(token) - - def add_token(self, token): - if token: - return self.add_token_nostrip(token.strip()) - - def add_line(self, line): - self.lines.append(line) - - def wrap_flush(self): - if self.tokens: - lines = textwrap.wrap("".join(self.tokens)) - self.lines.extend(lines) - self.tokens = [] + return klass.singleton def __init__(self): - self.brief = None - self.detailed = None + self.imported_inspect = False + self.saved_sys_path = None + self.is_python_2 = pyver() == 2 - def get_text_with_refs1(self, ctx, node): - process_children = True - if node.tag == "simplesect" and node.attrib.get("kind") == "return": + def ensure_imported_inspect(self): + if self.imported_inspect: return - if node.tag == "parameterlist": - return - if node.tag == "ref": - ctx.add_token_nostrip(" '%s' " % node.text) - elif node.tag == "lsquo": - ctx.add_token_nostrip(" `") - elif node.tag == "rsquo": - ctx.add_token_nostrip("' ") - elif node.tag == "sp": - ctx.add_token_nostrip(" ") - elif node.tag == "computeroutput": - for child in node: - tmp = base_doc_t.context_t() - self.get_text_with_refs1(tmp, child) - ctx.add_token_nostrip("".join(tmp.tokens)) - txt = (node.text or "").strip() - if txt: - ctx.add_token_nostrip(" '%s' " % txt) - elif node.tag == "programlisting": - ctx.wrap_flush() - ctx.add_line("") - for child in node: - if child.tag == "codeline": - tmp = base_doc_t.context_t() - self.get_text_with_refs1(tmp, child) - code_line = "".join(tmp.tokens) - ctx.add_line(code_line) - ctx.add_line("") - process_children = False - else: - ctx.add_token(node.text) - ctx.add_token(node.tail) - if process_children: - for child in node: - self.get_text_with_refs1(ctx, child) + self.imported_inspect = True - def remove_empty_header_or_footer_lines(self, lines): - while lines and not lines[0].strip(): - lines = lines[1:] - while lines and not lines[-1].strip(): - lines = lines[:-1] - return lines + if self.is_python_2: + self._modify_sys_path() - def get_description(self, node, child_tag): - out = [] - for child in node.findall("./%s" % child_tag): - ctx = base_doc_t.context_t() - self.get_text_with_refs1(ctx, child) - ctx.wrap_flush() - if ctx.lines: - out.extend(ctx.lines) - return self.remove_empty_header_or_footer_lines(out) + import inspect + self.inspect = inspect - def is_valid(self): - return self.brief or self.detailed + if self.is_python_2: + self._restore_sys_path() - def append_lines(self, out): - tmp = self.generate_lines() - # dbg("generate_lines() returned %s" % tmp) - tmp = self.remove_empty_header_or_footer_lines(tmp) - if tmp: - out.extend(tmp) + def _modify_sys_path(self): + # We need to use the "inspect" module after "ast.get_docstring()". + # (See pydoc_visitor_t.) And... + # + # ... there is an "inspect.py" module next to this program, that + # is used (as per CL 101338) to ensure a consistent documentation + # regardless of the minor version of Python 3. + # + # However, it's useless when running on Python 2, + # in which case we temporarily remove dirname(__file__) from sys.path + # in order to use Python 2's own "inspect" module. - def generate_lines(self): - unimp() + self.saved_sys_path = sys.path[:] - -class ioarg_t: - def __init__(self, name, ptyp, desc): - self.name = name - self.ptyp = ptyp - self.desc = desc - - -class fun_doc_t(base_doc_t): - def __init__(self): - base_doc_t.__init__(self) - self.params = [] - self.retval = None - - def traverse(self, node, swig_generated_param_names): - self.brief = self.get_description(node, "briefdescription") - self.detailed = self.get_description(node, "detaileddescription") - - # collect params - def add_param(name, ptyp, desc): - # dbg("add_param(name=%s, ptyp=%s, desc=%s)" % (name, ptyp, desc)) - # SWiG will rename e.g., 'from' to '_from' automatically, and we want to match that - for candidate in ["from", "with"]: - if name == candidate: - name = "_%s" % name - # dbg("==> name='%s', swig_generated_param_names='%s'" % (name, swig_generated_param_names)) - if name in swig_generated_param_names: - self.params.append(ioarg_t(name, ptyp, desc)) - doxygen_utils.for_each_param(node, add_param) - - # return value - return_node = node.find(".//simplesect[@kind='return']") - if return_node is not None: - return_desc = " ".join(return_node.itertext()).strip() - if return_desc: - self.retval = ioarg_t(None, None, return_desc) - - def generate_lines(self): - out = [] - if self.brief: - out.extend(self.brief) - out.append("") - if self.detailed: - out.extend(self.detailed) - out.append("") - for p in self.params: - pline = "" - subsequent_indent = 0 - if p.name: - pline = "@param %s" % p.name - if p.desc: - if pline: - subsequent_indent = len(pline) + 2 - pline = "%s: %s" % (pline, p.desc) - if p.ptyp: - pline = "%s (C++: %s)" % (pline, p.ptyp) - if pline: - plines = textwrap.wrap(pline, 70, subsequent_indent=" " * subsequent_indent) - out.extend(plines) - if self.retval: - rline = "@return: %s" % self.retval.desc - rlines = textwrap.wrap(rline, 70, subsequent_indent=" " * len("@return: ")) - out.extend(rlines) - return out - - -class def_doc_t(base_doc_t): - def __init__(self): - base_doc_t.__init__(self) - - def traverse(self, node): - self.brief = self.get_description(node, "briefdescription") - self.detailed = self.get_description(node, "detaileddescription") - - def generate_lines(self): - out = [] - if self.brief: - out.extend(self.brief) - out.append("") - if self.detailed: - out.extend(self.detailed) - out = self.remove_empty_header_or_footer_lines(out) - return [DOCSTR_MARKER] + list(map(lambda s : s.replace('\\', '\\\\'), out)) + [DOCSTR_MARKER] - - -# -------------------------------------------------------------------------- -def collect_structured_fun_doc(node, swig_generated_param_names): - fd = fun_doc_t() - fd.traverse(node, swig_generated_param_names) - if fd.is_valid(): - return fd - - -# -------------------------------------------------------------------------- -class idaapi_fixer_t(object): - lines = None - - def __init__(self, collected_info, patches, cpp_wrapper_functions): - self.collected_info = collected_info - self.patches = patches - self.cpp_wrapper_functions = cpp_wrapper_functions - # Since variables cannot have a docstring in Python, - # but epydoc supports the syntax: - # --- - # MYVAR = 12 - # """ - # MYVAR is the best - # """ - # --- - # we want to remember whatever epydoc-compatible - # documentation we inject, since it will be impossible to - # retrieve it from the runtime. - self.epydoc_injections = {} - - def next(self): - line = self.lines[0] - self.lines = self.lines[1:] - return line - - def copy(self, out): - line = self.next() - out.append(line) - return line - - def push_front(self, line): - self.lines.insert(0, line) - - def get_fun_info(self, fun_name, swig_generated_param_names): - # dbg("idaapi_fixer_t.get_fun_info(fun_name=%s, swig_generated_param_names=%s)" % ( - # fun_name, - # str(list(swig_generated_param_names)))); - fun_info = self.collected_info["funcs"].get(fun_name) - if not fun_info: - # def get_all_functions(xml_tree, name=None): - fnodes = doxygen_utils.get_toplevel_functions(self.xml_tree, name=fun_name) - nfnodes = len(fnodes) - if nfnodes > 0: - # dbg("idaapi_fixer_t.get_fun_info: got doxygen information") - if nfnodes > 1: - print("Warning: more than 1 function doc found for '%s'; picking first" % fun_name) - - fd = fun_doc_t() - fd.traverse(fnodes[0], swig_generated_param_names) - if fd.is_valid(): - fun_info = [] - fd.append_lines(fun_info) - return fun_info - - def get_class_info(self, class_name): - return self.collected_info["classes"].get(class_name) - - def get_method_info(self, class_info, method_name): - return class_info["methods"].get(method_name) - - def get_def_info(self, def_name): - def_info = None - dnodes = self.xml_tree.findall("./compounddef/sectiondef[@kind='define']/memberdef[@kind='define']/[name='%s']" % def_name) - ndnodes = len(dnodes) - if ndnodes > 0: - if ndnodes > 1: - print("Warning: more than 1 define doc found for '%s'; picking first" % def_name) - dd = def_doc_t() - dd.traverse(dnodes[0]) - if dd.is_valid(): - def_info = [] - dd.append_lines(def_info) - return def_info - - def extract_swig_generated_param_names(self, fun_name, lines): - def sanitize_param_name(pn): - idx = pn.find("=") - if idx > -1: - pn = pn[0:idx] - pn = pn.strip() - return pn - for l in lines: - if l.find(fun_name) > -1: - idx_open_paren = l.find("(") - idx_close_paren = l.find(") -> ") - if idx_close_paren == -1 and l.endswith(")"): - idx_close_paren = len(l) - 1 - if idx_open_paren > -1 \ - and idx_close_paren > -1 \ - and idx_close_paren > idx_open_paren+1: - clob = l[idx_open_paren+1:idx_close_paren] - parts = clob.split(",") - return list(map(sanitize_param_name, parts)) - return [] - - def maybe_fix_swig_generated_docstring_prototype(self, fun_name, line): - forced_output_type = None - fdef = None - for _, one in six.iteritems(self.cpp_wrapper_functions): - if one.api_function_name == fun_name: - fdef = one - break - if fdef: - for l in fdef.contents: - for pattern, forced in [ - ("resultobj = _maybe_sized_cstring_result(", "str"), - ("resultobj = _maybe_cstring_result(", "str"), - ("resultobj = _maybe_binary_result(", "str"), - ("resultobj = _maybe_cstring_result_on_charptr_using_allocated_buf(", "str"), - ("resultobj = _maybe_cstring_result_on_charptr_using_qbuf(", "str"), - ("resultobj = _maybe_byte_array_as_hex_or_none_result(", "str"), - ("resultobj = _maybe_byte_array_or_none_result(", "bytes"), - ("resultobj = _sized_cstring_result(", "str"), - ]: - if l.find(pattern) > -1: - assert(forced_output_type is None); - forced_output_type = forced - if forced_output_type: - splitter = " -> " - idx = line.find(splitter) - if idx > -1: - line = line[0:idx + len(splitter)] + forced_output_type - return line - - def fix_fun(self, out, class_info=None): - line = self.copy(out) - fun_name = get_fun_name(line) - # verb("fix_fun: fun_name: '%s'" % fun_name) - line = self.copy(out) - doc_start_line_idx = len(out) - if line.find(DOCSTR_MARKER) > -1: - # Opening docstring line; determine indentation level - indent = get_indent_string(line) - docstring_line_nr = 0 - while True: - line = self.next() - if docstring_line_nr == 0: - line = self.maybe_fix_swig_generated_docstring_prototype(fun_name, line) - - if line.find(DOCSTR_MARKER) > -1: - - # Closing docstring line - swig_generated_param_names = self.extract_swig_generated_param_names(fun_name, out[doc_start_line_idx:]) - if class_info is None: - found = self.get_fun_info(fun_name, swig_generated_param_names) - else: - found = self.get_method_info(class_info, fun_name) - if found: - verb("fix_%s: found info for %s" % ( - "method" if class_info else "fun", fun_name)); - out.append("\n") - out.extend(list(map(lambda l: indent + l, found))) - - - # - # apply possible additional patches - # - fun_patches = self.patches.get(fun_name, {}) - - example = fun_patches.get("+example", None) - if example: - ex_lines = list(map(lambda l: "Python> %s" % l, example.split("\n"))) - out.extend(list(map(lambda l: indent + l, ["", "Example:"] + ex_lines))) - - repl_text = fun_patches.get("repl_text", None) - if repl_text: - from_text, to_text = repl_text - for i in range(doc_start_line_idx, len(out)): - out[i] = out[i].replace(from_text, to_text) - - out.append(line) - break - else: - out.append(line) - docstring_line_nr += 1 - - def fix_method(self, class_info, out): - return self.fix_fun(out, class_info) - - def fix_class(self, out): - line = self.copy(out) - cls_name = get_class_name(line) - found = self.get_class_info(cls_name) - if found is None: - return - - verb("fix_class: found info for %s" % cls_name); - line = self.copy(out) - indent = get_indent_string(line) - - # If class has doc, maybe inject additional - if line.find(DOCSTR_MARKER) > -1: - while True: - line = self.next() - if line.find(DOCSTR_MARKER) > -1: - doc = found["doc"] - if doc is not None: - out.append("\n") - for dl in doc: - out.append(indent + dl) - out.append(line) - break - else: - out.append(line) - - # Iterate on class methods, and possibly patch - # their docstring - method_start = indent + "def " + executable_dir = os.path.abspath(os.path.dirname(__file__)) while True: - line = self.next() - # print "Fixing methods.. Line is '%s'" % line - if line.startswith(indent) or line.strip() == "": - if line.startswith(method_start): - self.push_front(line) - self.fix_method(found, out) - else: - out.append(line) - else: - self.push_front(line) + try: + sys.path.remove(executable_dir) + except: break - def fix_assignment(self, out, match): - # out.append("LOL: %s" % match.group(1)) - line = self.copy(out) - line = self.next() - if not line.startswith(DOCSTR_MARKER): - # apparently no epydoc-compliant docstring follows. Let's - # look for a possible match in the xml doc. - def_name = match.group(1) - found = self.get_def_info(def_name) - if found: - verb("fix_assignment: found info for %s" % (def_name,)) - out.extend(found) - self.epydoc_injections[def_name] = found[:] - self.push_front(line) - - IDENTIFIER_PAT = r"([a-zA-Z_]([a-zA-Z_0-9]*)?)" - IDENTIFIER_RE = re.compile(IDENTIFIER_PAT) - SIMPLE_ASSIGNMENT_RE = re.compile(r"^(%s)\s*=.*" % IDENTIFIER_PAT) - - def fix_file(self, args): - input_path, xml_dir_path, out_path = args.input, args.xml_doc_directory, args.output - with open(input_path) as f: - self.lines = split_oneliner_comments_and_remove_property_docstrings(f.readlines()) - self.xml_tree = doxygen_utils.load_xml_for_module(xml_dir_path, args.module) - out = [] - while len(self.lines) > 0: - line = self.next() - if line.startswith("def "): - self.push_front(line) - self.fix_fun(out) - elif line.startswith("class "): - self.push_front(line) - self.fix_class(out) - else: - m = self.SIMPLE_ASSIGNMENT_RE.match(line) - if m: - self.push_front(line) - self.fix_assignment(out, m) - else: - out.append(line) - with open(out_path, "w") as o: - o.write("\n".join(out)) + def _restore_sys_path(self): + sys.path = self.saved_sys_path[:] # -------------------------------------------------------------------------- -patches = load_patches(args) -collecter = collect_pydoc_t(args.interface) -collected = collecter.collect() -parser = wrapper_utils.cpp_wrapper_file_parser_t(args) -cpp_wrapper_functions = parser.parse(args.cpp_wrapper) -fixer = idaapi_fixer_t(collected, patches, cpp_wrapper_functions) -fixer.fix_file(args) -with open(args.epydoc_injections, "w") as fout: - for key in sorted(fixer.epydoc_injections.keys()): - fout.write("\n\nida_%s.%s\n" % (args.module, key)) - fout.write("\n".join(fixer.epydoc_injections[key])) +# Keeps track of where a docstring appears in the source code, +# so that the text can be replaced later. + +class location_t(object): + def __init__(self, *args): + if len(args) == 1: + reference = args[0] + + # used when there is no comment to be removed from the source; + # we just need a line to insert a comment if needed + + line_after_ref = self.last_line(reference) + 1 + + self.start_line = self.end_line = line_after_ref + self.start_col = self.end_col = reference.col_offset + + elif len(args) == 2: + node, reference = args + + # the docstring's lineno/col_offset mark the end + # for multiline comments (end_col for single-line comments + # is not available, so the rest of the code will not use it); + # we use a "reference node" (the class or function, or + # the assigment before the string) to guess the start + # and assume that there is nothing else in between. + # The initial column is assumed 4 if class/function, + # or 0 if variable assignment (plus the reference indent). + + is_variable = isinstance(reference, ast.Assign) + + if hasattr(node, "end_lineno"): + self.start_line = node.lineno + self.end_line = node.end_lineno + else: + self.start_line = self.last_line(reference) + 1 + self.end_line = node.lineno + + self.end_col = node.col_offset # only for multi-line comments + self.start_col = reference.col_offset + (0 if is_variable else 4) + + else: + raise process_exception_t("Internal error, location_t with %d args" \ + % len(args)) + + @staticmethod + def last_line(node): + if hasattr(node, "end_lineno"): + return node.end_lineno + + # hack, until Python 3.8 (where nodes have both lineno and end_lineno) + + last_line = node.lineno + + if isinstance(node, ast.ClassDef): + # note: no class body, just the header + last_line = max(last_line, + last_line + len(node.decorator_list), + location_t._max_lineno(node.bases)) + + elif isinstance(node, ast.FunctionDef): + # note: no function body, just the header + last_line = max(last_line, + last_line + len(node.decorator_list), + location_t._max_lineno(node.args)) + + elif isinstance(node, (ast.Assign, ast.AugAssign)): + last_line = max(last_line, + location_t._max_lineno(node)) + + return last_line + + @staticmethod + def _max_lineno(subtree): + # can return 0 + + if isinstance(subtree, list): + return max(location_t._max_lineno(item) for item in subtree) \ + if len(subtree) > 0 else 0 + + linenos = [node.lineno for node in ast.walk(subtree) \ + if hasattr(node, "lineno")] + return max(linenos) if len(linenos) > 0 else 0 + +# -------------------------------------------------------------------------- +# Containers for docstrings + +class doc_info_t(object): + # for both functions and variables; classes use a specialization + + def __init__(self, name, doc, location, extra=None): + self.name = name + self.doc = doc if doc else "" + self.location = location + self.extra = extra + self.parent = None # filled in later + +# -------------------------------------------------------------------------- +class class_info_t(doc_info_t): + def __init__(self, name, doc, location): + super(class_info_t, self).__init__(name, doc, location) + self.classes = {} + self.functions = {} + self.variables = {} + +# -------------------------------------------------------------------------- +# C++ functions with body text + +class cpp_fun_info_t(object): + def __init__(self, name, body): + self.name = name + self.body = body + +# -------------------------------------------------------------------------- +# In this context, "storage" is an object with dictionaries +# named "classes", "functions" and "variables". +# This class implement common lookups for all such containers. + +KIND_CLASS = "class" +KIND_UNION = "union" +KIND_STRUCT = "struct" +KIND_FUNCTION = "function" +KIND_VARIABLE = "variable" +KIND_DEFINE = "define" +KIND_FILE = "module" + +class repo_t(object): + def __init__(self, storage, ident): + self.storage = storage + self.ident = ident + + def match(self, kind, long_name): + return self._match(kind, long_name.split("."), self.storage) + + def _match(self, kind, chain, storage): + name = chain[0] + + if len(chain) > 1: + # only classes left of dots + if name not in storage.classes: + return None + + return self._match(kind, chain[1:], storage.classes[name]) + + # right terminal + + if kind == KIND_CLASS: + return storage.classes.get(name, None) + elif kind == KIND_FUNCTION: + return storage.functions.get(name, None) + elif kind == KIND_VARIABLE: + return storage.variables.get(name, None) + + return None + +# -------------------------------------------------------------------------- +# AST navigation common to wrappers/*.py files +# and s in swig/*.i files +# (they are both Python code) + +class pydoc_visitor_t(ast.NodeVisitor): + + WARN_ON_VARIABLE = "Docstring on assignment not recognized" + + ADD_CLASS = 1 + ADD_FUNCTION = 2 + ADD_VARIABLE = 3 + + def __init__(self, classes, functions, variables): + self.super = super(pydoc_visitor_t, self) + self.super.__init__() + + self.classes = classes + self.functions = functions + self.variables = variables + + self.assign_line = -1 + + def collect_from(self, tree): + self.in_class = [] + self.in_func = [] + self.generic_visit(tree) + + def visit_ClassDef(self, node): + info = self._info_class_or_func(node, class_info_t, self.in_func) + if info is None: + return + + self._add(info, self.ADD_CLASS) + + self.in_class.append(info) + self.super.generic_visit(node) + self.in_class.pop() + + def visit_FunctionDef(self, node): + # ignore "replfun"-decorated functions + for dec in node.decorator_list: + if isinstance(dec, ast.Attribute) and dec.attr == "replfun": + return + + info = self._info_class_or_func(node, doc_info_t, self.in_func) + if info is None: + return + + self._add(info, self.ADD_FUNCTION) + + self.in_func.append(info) + self.super.generic_visit(node) + self.in_func.pop() + + def visit_If(self, node): + # ignore declarations in block (formerly, if _BC695) + + pass # no call to generic_visit into its body + + def visit_Assign(self, node): + if self.in_func: + return + + self.assign_line = location_t.last_line(node) + # unless stated otherwise + self.assign_warn = self.WARN_ON_VARIABLE + + # only syntax accepted: var = expr or self.member = expr + # (as opposed to v1 = v2 = expr, or var += expr, or obj.member = expr) + + if len(node.targets) != 1: + return + target = node.targets[0] + + if isinstance(target, ast.Attribute): + if not isinstance(target.value, ast.Name): + return + if target.value.id != "self": + return + if not self.in_class: + self.assign_warn = "\"self.%s\" not inside a class" \ + % target.attr + return + + name = target.attr + + elif isinstance(target, ast.Name): + name = target.id + else: + return + + # success + + self.assign_node = node + self.assign_var = name + self.assign_warn = None + + # aim to add a comment after this line, if there isn't one + info = doc_info_t(self.assign_var, "", location_t(node)) + self._add(info, self.ADD_VARIABLE) + + def visit_AugAssign(self, node): + if self.in_func: + return + + # unaccepted syntax, f.i. var += expr + self.assign_line = location_t.last_line(node) + self.assign_warn = self.WARN_ON_VARIABLE + + def visit_Expr(self, node): + if self.in_func: + return + + if isinstance(node.value, ast.Str): + if hasattr(node, "end_lineno"): + line_before = node.lineno - 1 # "lineno" is the start line + else: + # hack until Python 3.8 + num_lines = len(node.value.s.split("\n")) + line_before = node.lineno - num_lines # "lineno" is the end line + + if line_before == self.assign_line: + # the string follows an assignment + # (as opposed to a class or function) + + if self.assign_warn: + log_verb("%s, line %d: %s" + % (self.path, node.lineno, self.assign_warn)) + return + + docstring = self._clean_docstring(node.value.s) + + # update the info structure already collected on Assign + + storage = self.in_class[-1] if self.in_class else self + info = storage.variables[self.assign_var] + + info.doc = docstring + info.location = location_t(node, self.assign_node) + + def _info_class_or_func(self, node, info_type, nested): + private = node.name[0] == "_" and node.name[:2] != "__" + if private or nested: + # ignore internals + if not private: + log_verb("Ignoring nested (%s): %s" + % (nested[-1].name, node.name)) + return None + + docstring = self._get_docstring(node) + + return info_type(node.name, docstring, + location_t(node.body[0], node)) + + def _add(self, info, add_type): + target = self.in_class[-1] if self.in_class else self + + if add_type == self.ADD_CLASS: + storage = target.classes + msg = KIND_CLASS + elif add_type == self.ADD_FUNCTION: + storage = target.functions + msg = KIND_FUNCTION + else: + storage = target.variables + msg = KIND_VARIABLE + + if info.name in storage: + if self.in_class: + if msg == KIND_FUNCTION: + msg = "method" + msg = "%s in class %s" % (msg, target.name) + + log_verb("Duplicate %s: %s" % (msg, info.name)) + return # keep the first + + storage[info.name] = info + + info.parent = None if target is self else target + + def _get_docstring(self, node): + # clean a docstring manually, as we would for strings after a variable + return self._clean_docstring(ast.get_docstring(node, False)) + + def _clean_docstring(self, docstring): + if docstring: + inspect_importer = inspect_importer_t.get_singleton() + inspect_importer.ensure_imported_inspect() + + docstring = inspect_importer.inspect.cleandoc(docstring) + + return docstring + +# -------------------------------------------------------------------------- +# for s in swig/*.i files + +class swig_pydoc_collector_t(object): + def __init__(self): + super(swig_pydoc_collector_t, self).__init__() + + self.re_pydoc = re.compile(r"^#.*?$" + r"(.*?)" + r"^#.*?$", re.MULTILINE | re.DOTALL) + + def collect(self, path): + # collect ... texts + + with open(path, "r") as f: + text = f.read() + + pydocs = [] + start = 0 + while text: + m = self.re_pydoc.search(text, start) + if not m: + break + pydocs.append(m.group(1)) + start = m.end() + + # parse the pydocs for docstrings + + self.classes = {} + self.functions = {} + self.variables = {} + + visitor = pydoc_visitor_t(self.classes, self.functions, self.variables) + + for pydoc in pydocs: + try: + log_verb("swig_pydoc_collector_t: parsing clob %s" % pydoc) + tree = ast.parse(pydoc) + except Exception as ex: + message = ex.__class__.__name__ + ": " + str(ex) + raise pysyntax_exception_t(message, pydoc) + + visitor.collect_from(tree) + +# -------------------------------------------------------------------------- +# for wrappers/*.cpp files + +class cpp_wrapper_parser_t(object): + def __init__(self): + self.re_wrap = re.compile(r".*PyObject *\*_wrap_([^\(]*)\(.*\) *{") + self.re_string = re.compile(r"([\"'])(?:\\?.)*?\1") + self.re_curly = re.compile(r"[{}]") + + def collect(self, path): + # only "functions" filled in + self.classes = {} + self.functions = {} + self.variables = {} + + self.path = path # for cppsyntax_exception_t + + with open(path, "r") as f: + text = f.read() + + # remove strings + # (to avoid being confused by "{" "}" inside strings) + text = self.re_string.sub("", text) + # no need to remove comments + # because these _wrap_* functions are computer-generated code, + # they contain no comments + + start = 0 + while text: + m = self.re_wrap.search(text, start) + if not m: + break + self.fun_name = m.group(1) # for cppsyntax_exception_t + start, end = self._find_body(text, m.start()) + body = text[start:end] + + self.functions[self.fun_name] = cpp_fun_info_t(self.fun_name, body) + start = end + + def _find_body(self, text, pos): + count = 0 + while True: + m = self.re_curly.search(text, pos) + if not m: + break + + if m.group()[0] == "{": + if count == 0: + start = m.start() + count += 1 + else: + if count == 0: + break + count -= 1 + if count == 0: + return start, m.end() + + pos = m.end() + + raise cppsyntax_exception_t(self, "Cannot find body") + +# -------------------------------------------------------------------------- +# get return types from patterns in the C++ body + +class cpp_patterns_t(object): + PATTERNS = ( + ("resultobj = _maybe_sized_cstring_result(", "str"), + ("resultobj = _maybe_cstring_result(", "str"), + ("resultobj = _maybe_binary_result(", "str"), + ("resultobj = _maybe_cstring_result_on_charptr_using_allocated_buf(", "str"), + ("resultobj = _maybe_cstring_result_on_charptr_using_qbuf(", "str"), + ("resultobj = _maybe_byte_array_as_hex_or_none_result(", "str"), + ("resultobj = _maybe_byte_array_or_none_result(", "bytes"), + ("resultobj = _sized_cstring_result(", "str") + ) + + def from_pattern(self, fun_info): + have_type = None + + for pattern, ret_type in cpp_patterns_t.PATTERNS: + if fun_info.body.find(pattern) >= 0: + if have_type: + log_verb("C++ function \"%s\", multiple patterns match" + % fun_info.name) + have_type = ret_type + + return have_type + +# -------------------------------------------------------------------------- +class hook_info_t(object): + def __init__(self, storage, data): + self.filename, \ + self.enum_name, \ + self.discard_prefixes, \ + self.discard_doc, \ + self.strip_prefixes, \ + recipe_module = data + + self.storage = storage + self.discard_prefixes = tuple(self.discard_prefixes) + self.recipe = recipe_module.recipe + self.default_rtype = recipe_module.default_rtype + self.ignore_parameters = {} + + def add_fun(self, klass, fun, doc): + if klass in self.storage.classes: + info = self.storage.classes[klass] + else: + info = self.storage.classes[klass] = class_info_t(klass, "", None) + + if fun in info.functions: + log_verb("%s: existing function collides with hook callback \"%s\"" + % (klass, fun)) + + info.functions[fun] = fun_info = doc_info_t(fun, doc, None) + + def ignore_parameter(self, fun, param): + if fun not in self.ignore_parameters: + self.ignore_parameters[fun] = set() + + self.ignore_parameters[fun].add(param) + +# -------------------------------------------------------------------------- +class doxygen_info_t(object): + def __init__(self, xml_dir): + self.xml_dir = xml_dir + + self.module = None + self.classes = {} + self.functions = {} + self.variables = {} + + self.hook_recipes = {} + + # hook (callback) functions from C++ enumerations + + def get_hook_info(self, klass): + return self.hook_recipes.get(klass) + + def load_hooks(self): + file_index = {} + + for klass in all_recipes.hooks: + hook = all_recipes.hooks[klass] + + self.hook_recipes[klass] = info = hook_info_t(self, hook) + + if info.filename in file_index: + index_entry = file_index[info.filename] + else: + index_entry = file_index[info.filename] = {} + index_entry[info.enum_name] = klass + + for filename in file_index: + pathname = os.path.join(self.xml_dir, filename) + if not os.path.exists(pathname): + log_verb("A hook recipe calls for XML file \"%s\"," + " which does not exist!" + % filename) + continue + + with open(pathname, "r") as f: + xml = ET.fromstring(f.read()) + + for compound_kind, section_kind, member_kind, name, _, _, _, enum_nodes \ + in self._enumerate_names(xml): + + if member_kind != "enum" or name not in file_index[filename]: + continue + klass = file_index[filename][name] + info = self.hook_recipes[klass] + + if enum_nodes is None: + log_verb("Hooks recipe \"%s\" calls for enum \"%s\"" + " in file \"%s\", which has no data!" + % (klass, info.enum_name, filename)) + continue + + for node in enum_nodes: + data = self._candidate_value(node, compound_kind, section_kind, member_kind, name) + if data: + _, _, _, \ + value_name, brief_node, detailed_node, _, _ = data + + if value_name.startswith(info.discard_prefixes): + continue + + brief_doc = self._outer_paragraphs(brief_node) + detailed_doc = self._outer_paragraphs(detailed_node) + doc = self._join_paragraphs( (brief_doc, detailed_doc) ) + + if info.discard_doc and doc.startswith(info.discard_doc): + continue + if doc.startswith("cb:"): + doc = doc[3:].lstrip() + + for prefix in info.strip_prefixes: + if value_name.startswith(prefix): + value_name = value_name[len(prefix):] + break + + if not self._follow_recipe(info, value_name): + continue + + info.add_fun(klass, value_name, doc) + + def _follow_recipe(self, info, fun_name): + if fun_name not in info.recipe: + return True + + recipe = info.recipe[fun_name] + + if recipe.get("ignore", False): + return False + + if "params" in recipe: + params = recipe["params"] + for param_name in params: + param = params[param_name] + + if param.get("suppress_for_call", False): + info.ignore_parameter(fun_name, param_name) + + return True + + # recover comments from C++ classes / functions / variables + + def load(self, module): + xmodule = self._load_module(module) + if xmodule is None: + return False + log_verb("Loading module %s" % module) + self._examine_xml(xmodule, module, self) + return True + + def _examine_xml(self, xml, module_name, storage): + for name in self._enum_classes(xml): + if name not in storage.classes: + storage.classes[name] = class_info_t(name, "", None) + + xclass = self._load_class(xml, name) + self._examine_xml(xclass, module_name, storage.classes[name]) + + for compound_kind, section_kind, member_kind, name, brief_node, detailed_node, plist, enum_nodes \ + in self._enumerate_names(xml): + + brief_doc = self._outer_paragraphs(brief_node) + detailed_doc = self._outer_paragraphs(detailed_node) + doc = self._join_paragraphs( (brief_doc, detailed_doc) ) + + # log_verb("section_kind=%s, compound_kind=%s, member_kind=%s, name=%s, brief_doc=%s" % ( + # section_kind, + # compound_kind, + # member_kind, + # name, + # brief_doc)) + + if section_kind == "": + if compound_kind in (KIND_CLASS, KIND_STRUCT, KIND_UNION): + if name in storage.classes: + storage.classes[name].doc = doc + else: + storage.classes[name] = class_info_t(name, doc, None) + elif compound_kind == "file" and name.startswith("%s.h" % module_name): + storage.module = self._join_paragraphs( (brief_doc, detailed_doc) ) + continue + + if member_kind == KIND_FUNCTION: + storage.functions[name] = doc_info_t(name, doc, None, plist) + elif member_kind in (KIND_DEFINE, KIND_VARIABLE): + storage.variables[name] = doc_info_t(name, doc, None) + + # add enum values as variables definitions + + if enum_nodes is None: + continue + + for node in enum_nodes: + data = self._candidate_value(node, compound_kind, section_kind, member_kind, name) + if data: + _, _, _, \ + value_name, brief_node, detailed_node, _, _ = data + + brief_doc = self._outer_paragraphs(brief_node) + detailed_doc = self._outer_paragraphs(detailed_node) + doc = self._join_paragraphs( (brief_doc, detailed_doc) ) + + storage.variables[value_name] = doc_info_t(value_name, doc, None) + + def _enumerate_names(self, xml): + for compound in xml.findall("compounddef"): + compound_kind = compound.attrib["kind"] + + data = self._candidate_value(compound, + compound_kind) + if data: + yield data + + for section in compound.findall("sectiondef"): + section_kind = section.attrib["kind"] + + if section_kind.startswith("private-") or \ + section_kind.startswith("protected-") or \ + section_kind in ("friend"): + continue + + data = self._candidate_value(section, + compound_kind, + section_kind) + if data: + yield data + + for member in section.findall("memberdef"): + member_kind = member.attrib["kind"] + + data = self._candidate_value(member, + compound_kind, + section_kind, + member_kind, + "", + True) + if data: + yield data + + def _candidate_value(self, node, compound_kind, section_kind="", member_kind="", enum="", get_enums=False): + brief_node = node.find("briefdescription") + detailed_node = node.find("detaileddescription") + enum_nodes = node.findall("enumvalue") if get_enums else None + + if brief_node is None and \ + detailed_node is None and \ + enum_nodes is None: + return None + + plist = [] + for pnode in node.findall("param"): + plist.append(self._parse_param_node(pnode)) + + name_node = node.find("name" if section_kind else "compoundname") + name = "" + if name_node is not None: + name = name_node.text + if not name: + log_verb("Doxygen xml: compound \"%s\", section \"%s\"," + " member \"%s\"%s has no name but has content!" + % (compound_kind, section_kind, member_kind, + (", enum \"%s\"" % enum) if enum else "")) + return None + + return compound_kind, section_kind, member_kind, name, brief_node, detailed_node, plist, enum_nodes + + def _parse_param_node(self, pnode): + name_child = pnode.find("declname") + type_child = pnode.find("type") + + ret = ["", ""] + if name_child is not None: + ret[0] = name_child.text + if type_child is not None: + ret[1] = self._clean(type_child) + return ret + + def _outer_paragraphs(self, node): + return self._paragraphs(node, True) + + def _paragraphs(self, node, wrap=False): + if node is None: + return "" + + texts = [self._nul(node.text)] + for para in node.findall("para"): + clean = self._clean(para) + if wrap: + clean = self._wrap(clean) + texts.append(clean) + + return self._join_paragraphs(texts) + + def _wrap(self, text): + lines = text.split("\n") + + out = [] + for line in lines: + subsequent_indent = "" + + clean = line.lstrip() + if clean and clean[0] == "@": + # compute indent for @tags + pos_colon = line.find(":") + if pos_colon >= 0: + subsequent_indent = (pos_colon + 2) * " " + + # wrapping at 80; if left at 70, + # texts from C++/Doxygen already contain + # linebreaks just after 70, that will + # make the wrapping ugly. Removing + # C++ linebreaks is probably not an option, + # if we want to respect pre-formatting. + out.extend(textwrap.wrap(line, 80, \ + subsequent_indent=subsequent_indent)) + + return "\n".join(out) + + def _join_paragraphs(self, texts): + # paragraphs (from "") separated by a blank line + + return "\n\n".join( (text.strip() for text in texts) ).strip("\n") + + def _clean(self, node): + N = self._nul + + texts = [N(node.text)] + for child in node: + check_subchildren = False + + if child.tag == "ref": + check_subchildren = True + texts[-1] += N(child.text) + N(child.tail) + + elif child.tag == "parameterlist": + self._add_parameter_list(child, texts) + + elif child.tag == "itemizedlist": + self._add_unordered_list(child, texts) + + elif child.tag == "orderedlist": + self._add_ordered_list(child, texts) + + elif child.tag == "simplesect": + kind = child.attrib["kind"] + desc = self._paragraphs(child) + # remove "@return: void" + if kind != "return" or desc != "void": + self._add_tag(kind, desc, texts) + + elif child.tag == "ulink": + check_subchildren = True + # macro interpreted in tools/docs/epytext.py + ref = child.attrib["url"] + if ref == child.text: + texts[-1] += r"\link{{{}}}".format(ref) + else: + texts[-1] += r"\link{{{},{}}}".format(ref, child.text) + texts[-1] += N(child.tail) + + elif child.tag == "linebreak": + check_subchildren = True + texts.append(child.tail) + + elif child.tag in ("mdash", "ndash"): + check_subchildren = True + texts[-1] += "-" + N(child.tail) + + elif child.tag == "sp": + check_subchildren = True + texts[-1] += " " + N(child.tail) + + elif child.tag in ("preformatted", "verbatim"): + # TODO? blockquote? may contain sub-elements like ) + + inner = [N(child.text)] + for sub in child: + if sub.tag == "ref": + # ignore the link markup inside a
+                        inner[-1] += N(sub.text) + N(sub.tail)
+                    else:
+                        # fail
+                        check_subchildren = True
+                        break
+                if child.tail:
+                    inner.append(N(child.tail))
+                texts.append("".join(inner).strip("\n"))
+
+            elif child.tag == "computeroutput":
+                # like preformatted/verbatim above, but inline text
+                texts[-1] += N(child.text)
+                for sub in child:
+                    if sub.tag == "ref":
+                        # ignore the link markup
+                        texts[-1] += N(sub.text) + N(sub.tail)
+                    else:
+                        # fail
+                        check_subchildren = True
+                        break
+                texts[-1] += N(child.tail)
+
+            elif child.tag == "programlisting":
+                for sub in child:
+                    if sub.tag == "codeline":
+                        texts.append(self._clean(sub))
+                    else:
+                        # fail
+                        check_subchildren = True
+                        break
+                if child.tail:
+                    texts.append(N(child.tail))
+
+            elif child.tag == "codeline":
+                for sub in child:
+                    texts[-1] += self._clean(sub)
+                texts[-1] += N(child.tail)
+
+            elif child.tag == "highlight":
+                texts[-1] += self._clean(child)
+
+            else:
+                log_verb("Unrecognized tag \"%s\"" % child.tag)
+                if child.text is not None:
+                    texts.append(self._paragraphs(child))
+                if child.tail is not None:
+                    texts.append(child.tail)
+
+            if check_subchildren:
+                for sub in child:
+                    raise process_exception_t(
+                        "Unrecognized sub-tag \"%s\" under \"%s\"" \
+                        % (sub.tag, child.tag))
+
+        texts[-1] += N(node.tail)
+
+        return "\n".join(text.strip() for text in texts)
+
+    def _add_parameter_list(self, node, texts):
+        tag   = node.attrib["kind"]
+        plist = []
+        for param in node.findall("parameteritem"):
+            namelist    = param.find("parameternamelist")
+            description = param.find("parameterdescription")
+            names = []
+            if namelist is not None:
+                for name in namelist.findall("parametername"):
+                    names.append(self._clean(name))
+            if not names:
+                names = ["unknown"]
+            plist.append( (tag + " " + ",".join(names),
+                           self._paragraphs(description).strip()) )
+
+        # remove "@param none"
+        if len(plist) == 1 and plist[0] == ("param none", ""):
+            return
+
+        for tag, desc in plist:
+            self._add_tag(tag, desc, texts)
+
+    def _add_unordered_list(self, node, texts):
+        self._add_list(lambda n: "*", node, texts)
+
+    def _add_ordered_list(self, node, texts):
+        self._add_list(lambda n: "%d." % n, node, texts)
+
+    def _add_list(self, marker, node, texts):
+        num = 0
+        for item in node.findall("listitem"):
+            num += 1
+            para = self._paragraphs(item).strip()
+            texts.append(("%s " % marker(num)) + para)
+
+    def _add_tag(self, tag, text, texts):
+        result = "@%s" % tag
+        if text:
+            result += ": " + text
+        texts.append(result)
+
+    def _nul(self, text):
+        return text if text else ""
+
+    def _load_module(self, name):
+        for suffix in ("_8hpp", "_8h"):
+            xml_path = os.path.join(self.xml_dir, "%s%s.xml" % (name, suffix))
+            if os.path.isfile(xml_path):
+                with open(xml_path, "r") as f:
+                    return ET.fromstring(f.read())
+        return None
+
+    def _enum_classes(self, xml):
+        for node in xml.findall("compounddef/innerclass"):
+            yield node.text
+
+    def _load_class(self, xml, name):
+        # apparently, an xpath to search for the TEXT of an element
+        # is not available until Python 3.7
+        for node in xml.findall("compounddef/innerclass"):
+            if node.text == name:
+                break
+        else:
+            node = None
+
+        if node is None:
+            return None
+        xml_path = os.path.join(self.xml_dir, "%s.xml" % node.attrib["refid"])
+        with open(xml_path, "r") as fin:
+            return ET.fromstring(fin.read())
+
+# --------------------------------------------------------------------------
+# for wrappers/*.py files
+# (output goes typically to bin/.../python/[23])
+
+class pydoc_patcher_t(object):
+    def __init__(self):
+        self.traces = call_traces_t()
+        self.traces.load(args.traces)
+
+        self.cases = cases_t()
+        self.cases.load(args.cases)
+
+    def patch(self, infile, extra_sources, outfile):
+        swig, cpp, doxy = extra_sources
+
+        swig_repo = repo_t(swig, "SWiG")
+        cpp_repo  = repo_t(cpp, "CPP parsing")
+        doxy_repo = repo_t(doxy, "Doxygen parsing")
+
+        self.classes   = {}
+        self.functions = {}
+        self.variables = {}
+
+        with open(infile, "r") as f:
+            text  = f.read()
+            lines = text.split("\n")
+
+        try:
+            tree = ast.parse(text)
+        except Exception as ex:
+            # this text can be very long,
+            # so we're not including all of it in the exception
+            bad_line = "Line %d: %s" % (ex.lineno, lines[ex.lineno - 1]) \
+                if ex.lineno > 0 and ex.lineno <= len(lines) \
+                else "(line %s)" % str(ex.lineno)
+
+            message = ex.__class__.__name__ + ": " + str(ex)
+            raise pysyntax_exception_t(message, bad_line)
+
+        log_info("Collecting from %s" % infile)
+        with new_log_indent_t():
+            visitor = pydoc_visitor_t(self.classes, self.functions, self.variables)
+            visitor.collect_from(tree)
+
+        cpp_patterns = cpp_patterns_t()
+
+        NOT_SKIPPING = -1
+
+        by_line   = self._sort_docstrings(visitor)
+        skip_upto = NOT_SKIPPING
+
+        with open(outfile, "w") as f:
+            lineno = 0
+
+            for lidx, line in enumerate(lines):
+                if line.find("IDA Plugin SDK API wrapper") > -1:
+                    skip_upto = lidx + 1
+                    break
+
+            if doxy.module is not None:
+                f.write("\"\"\"\n")
+                f.write(doxy.module)
+                f.write("\"\"\"\n")
+
+            for line in lines:
+                lineno += 1
+
+                if by_line and by_line[0][1].location.start_line == lineno:
+                    kind, info   = by_line[0]
+                    skip_upto    = info.location.end_line
+                    indent       = info.location.start_col * " "
+                    quote_open   = indent + "r\"\"\"\n"
+                    quote_close  = indent + "\"\"\"\n"
+                    long_name    = self._long_name(info)
+                    special_case = self.cases.get(long_name)
+
+                    global selective_debug
+                    selective_debug = info.name == args.debug_name
+
+                    log_debug("### Processing %s" % long_name)
+
+                    # pywraps comments for functions typically contain
+                    # a function prototype before the parameter documentation;
+                    # for classes and variables, we add a dummy, empty prototype
+                    # to allow matching in the replace() function below.
+
+                    comment = structured_comment_t(kind != KIND_FUNCTION)
+                    comment.parse(info.doc)
+
+                    # "swig" and "doxy" have typically parameter documentation
+                    # without a prototype, so an empty prototype is added
+                    # (parameter True of structured_comment_t)
+                    # in order to attempt to parse @param tags from these texts
+                    # (as opposed to "free text before any prototype").
+
+                    doxy_kind = special_case.doxy_kind(kind) \
+                                if special_case else kind
+
+                    swig_cmt  = structured_comment_t(True)
+                    swig_info = swig_repo.match(kind, long_name)
+                    if swig_info and swig_info.doc:
+                        swig_cmt.parse(swig_info.doc)
+
+                    doxy_cmt  = structured_comment_t(True)
+                    doxy_info = doxy_repo.match(doxy_kind, long_name)
+                    if doxy_info and doxy_info.doc:
+                        # no prototypes from doxygen; also, avoid lines
+                        # wrapped by textwrap to be interpreted as
+                        # prototypes by accident
+                        doxy_cmt.parse(doxy_info.doc, parse_prototypes=False)
+                        # for functions, doxy_info.extra = C++ parameter types
+                        doxy_cmt.add_cpp_params(doxy_info.extra)
+
+                    cpp_info = cpp_repo.match(kind, long_name)
+
+                    log_debug("==== From wrappers (.py)\n" + comment.total())
+                    log_debug("==== From swig (.i)\n"      + swig_cmt.total())
+                    log_debug("==== From Doxygen (.xml)\n" + doxy_cmt.total())
+
+                    assembled = assembled_comment_t(special_case)
+                    if comment.text_before.strip():
+                        assembled.add_text_before(comment.text_before)
+                    elif swig_cmt.text_before.strip():
+                        assembled.add_text_before(swig_cmt.text_before)
+                    else:
+                        assembled.add_text_before(doxy_cmt.text_before)
+
+                    if comment.prototypes:
+                        for p in comment.prototypes:
+                            assembled.add_prototype(p)
+                    else:
+                        assembled.add_prototype(prototype_t(""))
+
+                    ret_type = cpp_patterns.from_pattern(cpp_info) \
+                               if cpp_info else None
+                    if ret_type:
+                        log_debug("==== Return type from C++/Doxygen: \"%s\"" % ret_type)
+                        for p in assembled.prototypes:
+                            p.replace_return_type(ret_type)
+                    else:
+                        have_pyobject = any(p.get_return_type() == "PyObject *" \
+                                            for p in assembled.prototypes)
+                        if have_pyobject:
+                            runtime_type = self.traces.suggest_return_type(long_name)
+                            if runtime_type:
+                                log_debug("==== Return type from runtime trace: \"%s\"" \
+                                      % runtime_type)
+                                for p in assembled.prototypes:
+                                    if p.get_return_type() == "PyObject *":
+                                        p.replace_return_type(runtime_type)
+
+                    def replace(cmt):
+                        for p in cmt.prototypes:
+                            n = assembled.match_prototype(p)
+                            if n < 0:
+                                continue
+                            log_debug("==== Matched prototype # %d, replaced" % n)
+                            assembled.replace_after_prototype(n, p)
+
+                    # SWIG has precedence
+                    if swig_cmt.parsed:
+                        log_debug("==== Taking from swig:")
+                        replace(swig_cmt)
+                    elif doxy_cmt.parsed:
+                        log_debug("==== Taking from doxygen:")
+                        replace(doxy_cmt)
+
+                    if info.parent:
+                        hook = doxy.get_hook_info(info.parent.name)
+                        if hook:
+                            assembled.ignore_parameters(
+                                hook.ignore_parameters.get(info.name))
+
+                    out_comment = assembled.total()
+                    log_debug("==== Final comment:\n" + out_comment)
+                    if out_comment:
+                        f.write(quote_open)
+                        f.write(self._indent(indent, out_comment))
+                        f.write(quote_close)
+                    else:
+                        log_debug("==== (Empty, not written)")
+
+                    if info.doc:
+                        if skip_upto == lineno:
+                            skip_upto = NOT_SKIPPING
+                    else:
+                        # no comment at source: the start line is actual code
+                        f.write(line + "\n")
+                        skip_upto = NOT_SKIPPING
+
+                    by_line = by_line[1:]
+                    continue
+
+                if skip_upto == NOT_SKIPPING:
+                    f.write(line + "\n")
+                else:
+                    if skip_upto == lineno:
+                        skip_upto = NOT_SKIPPING
+                    continue
+
+        self._final_check(tree, outfile)
+
+    class simplifier_t(ast.NodeVisitor):
+        # Produce a simplified version of the AST
+        # (flattened list, containing ony node names)
+        # but without any string node
+        # (it is not enough to leave a "Str" name without string content;
+        #  some docstring may have been removed).
+        # Expr nodes are also removed; docstrings are an Expr(Str()),
+        # and Exprs containing something more complex will show the interior nodes.
+
+        def simplify(self, subtree):
+            self.output = []
+            self.generic_visit(subtree)
+
+            return self.output
+
+        def visit(self, node):
+            if not isinstance(node, (ast.Str, ast.Expr)):
+                self.output.append(node.__class__.__name__)
+
+            super(pydoc_patcher_t.simplifier_t, self).generic_visit(node)
+
+    def _final_check(self, tree, outfile):
+        # check that we produced valid Python code
+
+        with open(outfile, "r") as f:
+            try:
+                # part 1: can it be parsed?
+                final_tree = ast.parse(f.read())
+
+                # part 2: basic AST comparison
+                simpl = pydoc_patcher_t.simplifier_t()
+                if simpl.simplify(tree) != simpl.simplify(final_tree):
+                    raise process_exception_t("Final AST comparison failed!")
+
+            except Exception as ex:
+                message = ex.__class__.__name__ + ": " + str(ex)
+                raise pysyntax_exception_t(message, outfile)
+
+    def _indent(self, indent, text):
+        lines = text.split("\n")
+        lines = [(indent + line if line.strip() else "") \
+                 for line in lines]
+
+        return "\n".join(lines)
+
+    def _long_name(self, info):
+        if info.parent:
+            return self._long_name(info.parent) + "." + info.name
+
+        return info.name
+
+    def _sort_docstrings(self, visitor):
+        docs = []
+
+        self._add_to_docs(visitor, docs)
+
+        for info in visitor.classes.values():
+            docs.append( (KIND_CLASS, info) )
+
+            self._add_to_docs(info, docs)
+
+        return sorted(docs, key=lambda pair: pair[1].location.start_line)
+
+    def _add_to_docs(self, obj, docs):
+        for info in obj.functions.values():
+            docs.append( (KIND_FUNCTION, info) )
+
+        for info in obj.variables.values():
+            docs.append( (KIND_VARIABLE, info) )
+
+# --------------------------------------------------------------------------
+# Runtime info from calls to the IDAPython API,
+# collected during special tests (t2 uitests ... --trace-idapython-calls)
+# and gathered together in one file by tools/collect_traces.py.
+# The name of this one file is passed to the program on the --traces option.
+
+class call_traces_t(object):
+    def load(self, path):
+        if not path or not os.path.exists(path):
+            self.traces = {}
+            return
+
+        with open(path, "r") as f:
+            content = ast.literal_eval(f.read())
+
+            self.traces = {}
+            for key in content:
+                data = content[key]
+                if key == "#empty":
+                    # entry with special format
+                    for fun in data:
+                        self.traces[fun] = set(self._str(x) for x in data[fun])
+                else:
+                    self.traces[key] = set(self._str(x) for x in data["return"])
+
+    def _str(self, expr):
+        if isinstance(expr, list):
+            return "[" + ", ".join(self._str(x) for x in expr) + "]"
+        if isinstance(expr, tuple):
+            if len(expr) == 1:
+                return "(" + self._str(expr[0]) + ",)"
+            return "(" + ", ".join(self._str(x) for x in expr) + ")"
+
+        return str(expr)
+
+    def suggest_return_type(self, long_name):
+        key = args.module + "." + long_name
+
+        if key not in self.traces:
+            return None
+
+        # type [, type ...] [or None]
+
+        return_set = self.traces[key]
+        none_repr = "NoneType"
+        if none_repr in return_set:
+            suffix = " or None"
+            return_set.remove(none_repr)
+        else:
+            suffix = ""
+
+        types = ", ".join(sorted(return_set))
+        if not types:
+            return None
+
+        return types + suffix
+
+# --------------------------------------------------------------------------
+# Exceptions to the general rule.
+
+class cases_t(object):
+    def load(self, path):
+        if args.cases:
+            with open(path, "r") as f:
+                self.cases = ast.literal_eval(f.read())
+        else:
+            self.cases = {}
+
+        for fun in self.cases:
+            self.cases[fun] = case_t(fun, self.cases[fun])
+
+    def get(self, long_name):
+        key = args.module + "." + long_name
+
+        return self.cases[key] if key in self.cases else None
+
+# --------------------------------------------------------------------------
+# Special case for one symbol.
+
+class case_t(object):
+    def __init__(self, symbol, items):
+        self.symbol = symbol
+        self.items  = items
+
+        for item in items:
+            if "param" in item:
+                item["param"] = set(item["param"].split("|"))
+            if "change" in item:
+                item["change"] = self._to_function(item["change"])
+
+    def _to_function(self, code_text):
+        code_fun_name = "__INJECT_PYDOC__case"
+
+        code     = ast.parse(code_text.strip())
+        module   = ast.parse("def %s(_):\n pass" % code_fun_name)
+        function = module.body[0]
+        function.body = code.body
+
+        scope  = {}
+        exec(compile(module, "" % self.symbol, "exec"), scope)
+
+        return scope[code_fun_name]
+
+    def ignore_parameter(self, name):
+        # supercedes any special case
+        for item in self.items:
+            if "param" in item and name in item["param"]:
+                if len(item["param"]) == 1:
+                    # an action for just this parameter. Hijack it
+                    item["ignore"] = True
+                else:
+                    # remove the parameter from this action, add a new one
+                    item["param"].remove(name)
+                    self._append_ignore_action(name)
+                break
+        else:
+            # add exception
+            self._append_ignore_action(name)
+
+    def _append_ignore_action(self, name):
+        self.items.append({
+            "param" : set([name]),
+            "ignore" : True
+        })
+
+    def is_parameter_ignored(self, name):
+        item = self._get_param_action(name)
+
+        return item and item.get("ignore", False)
+
+    def change_param(self, name, desc):
+        item = self._get_param_action(name)
+        if item:
+            change = item.get("change")
+            if change:
+                name, desc = change([name, desc])
+
+        return name, desc
+
+    def _get_param_action(self, name):
+        for item in self.items:
+            if "param" in item and name in item["param"]:
+                return item
+        return None
+
+    def doxy_kind(self, kind):
+        attr = "doxy-kind"
+        for item in self.items:
+            if attr in item:
+                return item[attr]
+        return kind
+
+# --------------------------------------------------------------------------
+# A function prototype, plus parameters and some text around.
+
+class prototype_t(object):
+    RE_PARAM = re.compile(r" *([A-Za-z0-9_]+)(?: *=.*?)? *([\),])")
+
+    def __init__(self, *parts):
+        self.proto   = list(parts)  # [0] name, [1] parameters, [2] return type
+        self.after   = ""
+        self.params  = []
+        self.ctypes  = {}
+        self.inter   = []  # text after each parameter
+        self.retn    = ""
+        self.ignored = False
+
+        self._split_params_in_proto()
+
+    def _split_params_in_proto(self):
+        self.param_names = []
+
+        if len(self.proto) < 2:
+            return
+
+        start = 1  # parameter list; skip "(" at 0
+        while True:
+            m = self.RE_PARAM.match(self.proto[1], start)
+            if not m:
+                break
+
+            name, delimiter = m.groups()
+            if name[0] == "_" and len(name) > 1:    # "self", not "_self"
+                name = name[1:]
+            self.param_names.append(name)
+
+            if delimiter == ")":
+                break
+            start = m.end()
+
+    def get_return_type(self):
+        if len(self.proto) < 2:
+            return None
+
+        return self.proto[-1]
+
+    def replace_return_type(self, ret_type):
+        if len(self.proto) < 2:
+            return  # no-op for dummy prototypes
+
+        if len(self.proto) == 2:
+            self.proto.append(ret_type)
+        else:
+            self.proto[-1] = ret_type
+
+    def text_after_proto(self, line):
+        self.after += line + "\n"
+
+    def add_parameter(self, *parts):
+        self.params.append(parts)
+        self.inter .append("")
+
+    def add_cpp_param(self, name, ctype):
+        self.ctypes[name] = ctype
+
+    def text_after_last_param(self, line):
+        self.inter[-1] += line + "\n"
+
+    def text_return(self, line):
+        self.retn += line + "\n"
+
+    def clone(self):
+        copy = prototype_t(*self.proto)
+        copy.ctypes = dict(self.ctypes)
+        copy.after  = self.after
+        copy.retn   = self.retn
+
+        for p, t in zip(self.params, self.inter):
+            copy.params.append(tuple(p))
+            copy.inter .append(t)
+
+        return copy
+
+    def total(self, case=None):
+        # ignored? (typically from assembled_comment_t._clear_repeats)
+        if self.ignored:
+            return ""
+
+        part_1 = self.repr_proto() \
+               + self._clean(self.after)
+
+        part_2 = ""
+        for p, t in zip(self.params, self.inter):
+            # note: not cleaning texts after parameters ("t")
+            #       to preserve some of the original formatting
+
+            if self._is_parameter_ignored(p, case):
+                repr_p = ""
+                text_p = []
+                for line in t.split("\n"):
+                    # remove text associated to an ignored parameter,
+                    # but stop removing on the next @tag
+                    # (which may be other than @param)
+
+                    if text_p:
+                        text_p.append(line)
+                    else:
+                        line_text = line.lstrip()
+                        if line_text and line_text[0] == "@":
+                            text_p.append(line)
+                t = "\n".join(text_p)
+            else:
+                repr_p = self._repr_param(p, case)
+
+            part_2 += repr_p + t
+
+        clean_retn = self._clean(self.retn)
+        if clean_retn:
+            part_2 += "@return: " + clean_retn
+
+        return "\n".join(part for part in (part_1, part_2) if part)
+
+    def _is_parameter_ignored(self, parts, case):
+        if not case:
+            return False
+
+        _, name, _ = parts
+        return case.is_parameter_ignored(name)
+
+    def _repr_param(self, parts, case):
+        indent, name, desc = parts
+
+        if case:
+            name, desc = case.change_param(name, desc)
+
+        text = indent + "@param " + name
+        if name.startswith("NONNULL_") and not name in self.ctypes:
+            name = name[8:]
+        if name in self.ctypes:
+            if desc == self.ctypes[name]: # avoid some duplication
+                desc = ""
+            desc = ("(C++: %s)" % self.ctypes[name]) \
+                 + (" " if desc else "") + desc
+        if desc:
+            text += ": " + desc
+
+        return text + "\n"
+
+    def _clean(self, text):
+        cleaned = text.strip("\n")
+        if cleaned:
+            cleaned += "\n"
+        return cleaned
+
+    def repr_proto(self):
+        if not self.proto[0]:
+            return ""
+
+        if len(self.proto) == 1:
+            log_verb("Internal error, prototype with only 1 part: %s"
+                 % repr(self.proto))
+            return self.proto[0] + "\n"
+
+        if len(self.proto) == 2:
+            return "".join(self.proto) + "\n"
+
+        return "".join(self.proto[:-1]) \
+             + " -> " + self.proto[-1] + "\n"
+
+# --------------------------------------------------------------------------
+# Class to split a docstring into parts (prototype, parameter information, etc.)
+#
+# Docstrings are considered to be of the form:
+#   (prototype, optionally parameters) repeated zero or more times,
+#   with arbitrary text anywhere in-between.
+#
+# Prototypes are required to have NO space between function name and
+# open parenthesis, otherwise many texts would look like a prototype.
+
+class structured_comment_t(object):
+
+    WORD       = r"[A-Za-z_][A-Za-z0-9_]*"
+    PROTO_HEAD = r"(%s)(\(.*?\))" % WORD
+
+    RE_WORD   = re.compile(WORD)
+    RE_PARAM  = re.compile(r"(%s) *: *([< ]*%s.*)" % (WORD, WORD))
+    RE_PROTO1 = re.compile(PROTO_HEAD + r"$")
+    RE_PROTO2 = re.compile(PROTO_HEAD + r" *-> *(.*)")
+    RE_TITLE  = re.compile(r"[Pp]arameters? *:?$")  # Parameters
+    RE_DASHES = re.compile(r"-+$")                  # ----------
+    RE_INDENT = re.compile(r" *")
+
+    PAT_NONE   = 0
+    PAT_PROTO  = 1
+    PAT_PARAM  = 2
+    PAT_TITLE  = 3
+    PAT_RETURN = 4
+    PAT_TEXT   = 5
+
+    def __init__(self, always_a_prototype=False):
+        self.always_a_prototype = always_a_prototype
+
+        self.reset()
+        self.parsed = False
+
+    def reset(self):
+        self.text_before = ""
+        self.prototypes  = []
+        self.ctypes      = {}  # collected for only one prototype in Doxygen
+
+    def parse(self, text, parse_prototypes=True):
+        self.reset()
+        self.parsed = True
+
+        lines = text.split("\n") if text else [""]
+        prev  = self.PAT_NONE
+        state = self.PAT_NONE # used to decide where to store text
+                              # (after the prototype, or after a parameter)
+
+        if self.always_a_prototype:
+            self.prototypes.append(prototype_t(""))
+            state = self.PAT_PROTO
+
+        for line in lines:
+            pat  = self._pattern(line, prev, parse_prototypes)
+            prev = pat
+
+            if pat == self.PAT_TITLE:
+                continue
+
+            if pat == self.PAT_PROTO:
+                self.prototypes.append(prototype_t(*self.parts))
+
+            elif pat == self.PAT_PARAM:
+                if not self.prototypes:
+                    self.prototypes.append(prototype_t(""))
+                self.prototypes[-1].add_parameter(*self.parts)
+
+            elif pat == self.PAT_RETURN:
+                if not self.prototypes:
+                   self.prototypes.append(prototype_t(""))
+                self.prototypes[-1].text_return(self.parts[0])
+
+            elif pat == self.PAT_TEXT:
+                if self.prototypes:
+                    if state == self.PAT_PROTO:
+                        self.prototypes[-1].text_after_proto(line)
+                    elif state == self.PAT_PARAM:
+                        self.prototypes[-1].text_after_last_param(line)
+                    elif state == self.PAT_RETURN:
+                        self.prototypes[-1].text_return(line)
+                    else:
+                        self.text_before += line + "\n"
+                else:
+                    self.text_before += line + "\n"
+
+            if pat in (self.PAT_PROTO, self.PAT_PARAM, self.PAT_RETURN):
+                state = pat
+
+    def _pattern(self, line, prev, parse_prototypes):
+        # may also return extra information in self.parts
+
+        indent = self.RE_INDENT.match(line).group(0)
+        line   = line.strip()
+
+        if line.startswith("@"):
+            m = self.RE_WORD.search(line, 1)
+            if m:
+                tag = m.group(0)
+                if tag == "param":
+                    m = self.RE_WORD.search(line, m.end())
+                    if m:
+                        self.parts = indent, m.group(0), \
+                                     self._rest_after_colon(line, m)
+                        return self.PAT_PARAM
+                    raise process_exception_t("No word after @param: " + line)
+                if tag == "return":
+                    self.parts = (self._rest_after_colon(line, m),)
+                    return self.PAT_RETURN
+                else:
+                    return self.PAT_TEXT
+
+            log_verb("Missing or invalid tag after \"@\": " + line)
+            return self.PAT_TEXT
+
+        if self.RE_TITLE.match(line) or self.RE_DASHES.match(line):
+            return self.PAT_TITLE
+
+        m = self.RE_PARAM.match(line)
+        if m and prev != self.PAT_TEXT:
+            self.parts = (indent,) + m.groups()
+            return self.PAT_PARAM
+
+        if not indent and parse_prototypes:
+            for re in (self.RE_PROTO1, self.RE_PROTO2):
+                m = re.match(line)
+                if m:
+                    self.parts = m.groups()
+                    return self.PAT_PROTO
+
+        return self.PAT_TEXT
+
+    def _rest_after_colon(self, line, m):
+        rest = line[m.end():].strip()
+        if rest and rest[0] == ":":
+            rest = rest[1:].lstrip()
+        return rest
+
+    def add_cpp_params(self, plist):
+        if plist is None:
+            return
+        proto = self.prototypes[-1]
+        for name, ctype in plist:
+            proto.add_cpp_param(name, ctype)
+
+    def total(self):
+        # used only for debug output;
+        # no notion of "special cases" passed to prototype_t.total()
+
+        text = self.text_before
+        if text:
+            text = "\n" + text
+
+        protos = "\n".join(p.total() for p in self.prototypes)
+        if protos:
+            protos = "\n" + protos
+
+        return text + protos
+
+# --------------------------------------------------------------------------
+class assembled_comment_t(object):
+    def __init__(self, case):
+        self.case        = case
+        self.text_before = ""
+        self.prototypes  = []
+
+    def add_text_before(self, text):
+        self.text_before += text
+
+    def add_prototype(self, prototype):
+        self.prototypes.append(prototype.clone())
+
+    def match_prototype(self, given):
+        for i in range(len(self.prototypes)):
+            if self._match(self.prototypes[i], given):
+                return i
+        return -1
+
+    # add more detail if needed
+    def _match(self, p1, p2):
+        t1 = tuple(p1.proto)
+        t2 = tuple(p2.proto)
+
+        if t1 == ("",) or t2 == ("",):
+            # wildcard - possibly coming from structured_comment_t(True)
+            return True
+
+        return t1 == t2
+
+    def replace_after_prototype(self, i, given):
+        proto = self.prototypes[i]
+        if tuple(proto.proto) == ("",):
+            proto.proto       = given.proto
+            proto.param_names = given.param_names
+        proto.ctypes = given.ctypes
+        proto.after  = given.after
+        proto.retn   = given.retn
+
+        # replace only the parameters that match the prototype
+
+        old_params = proto.params
+        old_inter  = proto.inter
+        proto.params = []
+        proto.inter  = []
+
+        names_in_proto = proto.param_names
+        if len(names_in_proto) > 1 and names_in_proto[0] == "self":
+            names_in_proto = names_in_proto[1:]
+
+        given_params = self._params_fix(given.params, names_in_proto)
+
+        NAME = 1
+        index_old   = { old_params[i][NAME]   : (old_params[i], old_inter[i]) \
+                                                for i in range(len(old_params)) }
+        index_given = { given.params[i][NAME] : (given.params[i], given.inter[i]) \
+                                                for i in range(len(given.params)) }
+
+        selected = set()
+        for i in range(len(names_in_proto)):
+            param, inter = self._choose_param(i, names_in_proto,
+                            given.params, given.inter, index_given,
+                            old_params,   old_inter,   index_old)
+            if param is not None:
+                selected.add(param[NAME])
+                proto.params.append(param)
+                proto.inter .append(inter)
+
+        # extra given parameters (not in the prototype)
+        # are added but marked as ignored,
+        # so that additional @tags in the inter-text can be displayed
+
+        for i in range(len(names_in_proto), len(given.params)):
+            name = given.params[i][NAME]
+            if name not in selected:
+                log_debug("Param %d: ignored \"%s\"" % (i, name))
+                self.ignore_parameter(name)
+                proto.params.append(given.params[i])
+                proto.inter .append(given.inter [i])
+
+    def _params_fix(self, given_params, names_in_proto):
+        # make "py_XXX" match "XXX"
+
+        NAME = 1
+        for i in range(min(len(names_in_proto), len(given_params))):
+            given_param = list(given_params[i])
+            in_proto    = names_in_proto[i]
+
+            if in_proto[:3] == "py_" and in_proto[3:] == given_param[NAME]:
+                given_param[NAME] = in_proto
+                given_params[i] = tuple(given_param)
+
+    def _choose_param(self, i, names_in_proto,
+                            given_params, given_inter, index_given,
+                            old_params,   old_inter,   index_old):
+        def safe_index(i, arr):
+            return arr[i] if i < len(arr) else None
+
+        in_proto = names_in_proto[i]
+
+        # use a name if recognized, even if not in order
+        if in_proto in index_given:
+            given_param, given_inter = index_given[in_proto]
+        else:
+            given_param = safe_index(i, given_params)
+            given_inter = safe_index(i, given_inter)
+
+        if in_proto in index_old:
+            old_param, old_inter = index_old[in_proto]
+        else:
+            old_param = safe_index(i, old_params)
+            old_inter = safe_index(i, old_inter)
+
+        NAME = 1
+        DESC = 2
+
+        log_debug("Param %d: in prototype \"%s\", original doc \"%s\", given doc \"%s\""
+              % (i, in_proto, old_param[NAME] if old_param else "",
+                              given_param[NAME] if given_param else ""))
+
+        if given_param is None:
+            if old_param:
+                log_debug("- choosing old \"%s\" because none given" % old_param[NAME])
+            return old_param, old_inter
+
+        # make "py_XXX" match "XXX"
+        given_param = list(given_param)
+        if in_proto[:3] == "py_" and in_proto[3:] == given_param[NAME]:
+            given_param[NAME] = in_proto
+        given_param = tuple(given_param)
+
+        if in_proto == "" or given_param[NAME] == in_proto:
+            log_debug("- choosing given \"%s\"" % given_param[NAME])
+            return given_param, given_inter
+
+        if old_param is None:
+            log_debug("- no match")
+            return None, None
+
+        # even if there is no match,
+        # choose data if it appears to be more informative
+
+        if len(old_param[NAME]) <= 2 and len(given_param[NAME]) > 2:
+            log_debug("- choosing given \"%s\" because of short name \"%s\""
+                  % (given_param[NAME], old_param[NAME]))
+            return given_param, given_inter
+
+        if len(given_param[NAME]) <= 2 and len(old_param[NAME]) > 2:
+            log_debug("- choosing old \"%s\" because of short name \"%s\""
+                  % (old_param[NAME], given_param[NAME]))
+            return old_param, old_inter
+
+        if len(given_param[DESC]) > 3 * len(old_param[DESC]):
+            log_debug("- choosing given \"%s\" because it has more text"
+                  % given_param[NAME])
+            return given_param, given_inter
+
+        if old_param:
+            log_debug("- no good match, choosing old \"%s\""
+                  % old_param[NAME])
+        return old_param, old_inter
+
+    def ignore_parameters(self, ignore_set):
+        if ignore_set:
+            for name in ignore_set:
+                self.ignore_parameter(name)
+
+    def ignore_parameter(self, name):
+        if self.case is None:
+            self.case = case_t("", [])
+            # assembled_comment_t operates at the very end of the process;
+            # there is likely no need to store this dummy case_t in the
+            # dictionary of cases for all symbols (inside pydoc_patcher_t)
+
+        self.case.ignore_parameter(name)
+
+    def total(self):
+        self._clear_repeats()
+        return self.text_before + "".join(p.total(self.case) \
+                                          for p in self.prototypes)
+
+    def _clear_repeats(self):
+        unique = set()
+        for p in self.prototypes:
+            tuple_p = tuple(p.proto)
+            if tuple_p in unique:
+                p.ignored = True
+            else:
+                unique.add(tuple_p)
+
+# --------------------------------------------------------------------------
+def main():
+    if args.debug:
+        log_level = LOG_LEVEL_DEBUG
+    elif args.verbose:
+        log_level = LOG_LEVEL_VERB
+
+    log_info("Collecting from: %s" % args.interface)
+    with new_log_indent_t():
+        swig = swig_pydoc_collector_t()
+        swig.collect(args.interface)
+
+    log_info("Collecting from: %s" % args.cpp_wrapper)
+    with new_log_indent_t():
+        cpp = cpp_wrapper_parser_t()
+        cpp.collect(args.cpp_wrapper)
+
+    log_info("Collecting from: %s" % args.xml_doc_directory)
+    with new_log_indent_t():
+        doxy = doxygen_info_t(args.xml_doc_directory)
+        doxy.load_hooks()
+        doxy.load(args.module)
+
+    extra_sources = swig, cpp, doxy
+
+    log_info("Patching")
+    with new_log_indent_t():
+        patcher = pydoc_patcher_t()
+        patcher.patch(args.input, extra_sources, args.output)
+
+main()
diff --git a/tools/inject_pydoc_cases.txt b/tools/inject_pydoc_cases.txt
new file mode 100644
index 0000000..bb0d71f
--- /dev/null
+++ b/tools/inject_pydoc_cases.txt
@@ -0,0 +1,10 @@
+
+# Individual exceptions to the general processing in "inject_pydoc.py".
+
+{
+  "typeinf.til_t.base" : [
+    {
+      "doxy-kind" : "variable"
+    }
+  ]
+}
diff --git a/tools/inspect.py b/tools/inspect.py
index e830eb6..72a8397 100644
--- a/tools/inspect.py
+++ b/tools/inspect.py
@@ -2914,14 +2914,14 @@ class Signature:
     def bind(*args, **kwargs):
         """Get a BoundArguments object, that maps the passed `args`
         and `kwargs` to the function's signature.  Raises `TypeError`
-        if the passed arguments can not be bound.
+        if the passed arguments cannot be bound.
         """
         return args[0]._bind(args[1:], kwargs)
 
     def bind_partial(*args, **kwargs):
         """Get a BoundArguments object, that partially maps the
         passed `args` and `kwargs` to the function's signature.
-        Raises `TypeError` if the passed arguments can not be bound.
+        Raises `TypeError` if the passed arguments cannot be bound.
         """
         return args[0]._bind(args[1:], kwargs, partial=True)
 
diff --git a/tools/patch-idapython-homebrew.sh b/tools/patch-idapython-homebrew.sh
deleted file mode 100755
index f1cbce0..0000000
--- a/tools/patch-idapython-homebrew.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#! /bin/bash
-
-# This script will patch IDAPython on OSX so that it works with the homebrew version of Python,
-# rather than the System version.
-#
-# Before running it, please follow these steps:
-#
-#   1. be sure that you have a 64-bit install of python 2.7 installed by homebrew:
-#
-#      $ brew install python@2
-#      $ file /usr/local/Cellar/python\@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/Python
-#      /usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/Python: Mach-O 64-bit dynamically linked shared library x86_64
-#
-#   2. copy the this script to the root directory of your IDA installation:
-#
-#      $ cp patch-idapython-homebrew.sh /Applications/IDA\ Pro\ 7.1/
-#
-#      and make sure the HOMEBREW_PYTHON variable contains the path to the Python framework installed by homebrew in step 1
-#
-#   3. $ cd /Applications/IDA\ Pro\ 7.1
-#      $ ./patch-idapython-homebrew.sh
-#
-# And that's it! IDAPython commands should still function normally.
-HOMEBREW_PYTHON="/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/Python"
-
-IDABIN=ida.app/Contents/MacOS
-
-function backup
-{
-  if [ ! -f ${1}.orig ]; then
-    cp -r ${1} ${1}.orig
-  fi
-}
-
-PLG=${IDABIN}/plugins/python.dylib
-PLG64=${IDABIN}/plugins/python64.dylib
-
-# backup idapython plugin
-backup ${PLG}
-backup ${PLG64}
-
-DYNLOAD=${IDABIN}/python/lib/python2.7/lib-dynload
-
-# backup python submodules
-backup ${DYNLOAD}/ida_32
-backup ${DYNLOAD}/ida_64
-
-function patch
-{
-  install_name_tool -change /System/Library/Frameworks/Python.framework/Versions/2.7/Python $HOMEBREW_PYTHON $1
-}
-
-# patch idapython plugin
-patch ${PLG}
-patch ${PLG64}
-
-# patch all of idapython's submodules
-for file in $DYNLOAD/ida_{32,64}/*
-do
-  patch $file
-done
diff --git a/tools/patch_codegen.py b/tools/patch_codegen.py
index ddac206..0cd584e 100644
--- a/tools/patch_codegen.py
+++ b/tools/patch_codegen.py
@@ -5,12 +5,7 @@ import re
 import sys
 import six
 import xml.etree.ElementTree as ET
-
-try:
-    from argparse import ArgumentParser
-except:
-    print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'")
-    raise
+from argparse import ArgumentParser
 
 parser = ArgumentParser(description='Patch some code generation, so it builds')
 parser.add_argument("-i", "--input", required=True)
@@ -20,7 +15,6 @@ parser.add_argument("-b", "--batch-patches", required=True)
 parser.add_argument("-v", "--verbose", default=False, action="store_true")
 parser.add_argument("-x", "--xml-doc-directory", required=True)
 parser.add_argument("-m", "--module", required=True)
-parser.add_argument("-V", "--apply-valist-patches", default=False, action="store_true")
 args = parser.parse_args()
 
 this_dir, _ = os.path.split(__file__)
@@ -117,9 +111,11 @@ if add_ridb is not None:
 
 # Patch the code
 wrap_regex = re.compile(r"SWIGINTERN PyObject \*_wrap_([a-zA-Z0-9_]*)\(.*")
-director_method_regex = re.compile(r".*((SwigDirector_([a-zA-Z0-9_]*))::([a-zA-Z0-9_]*))\(.*")
+director_method_regex = re.compile(r".*((SwigDirector_([a-zA-Z0-9_]*))::~?([a-zA-Z0-9_]*))\(.*")
 swig_clink_var_get_regex = re.compile(r"SWIGINTERN PyObject \*(Swig_var_[a-zA-Z0-9_]*_get).*")
 swig_clink_var_set_regex = re.compile(r"SWIGINTERN int (Swig_var_[a-zA-Z0-9_]*_set).*")
+SWIG_Python_TypeError_regex = re.compile(".*(SWIG_Python_TypeError)\(const char \*type, PyObject \*obj\).*")
+SwigPyObject_dealloc_regex = re.compile(r"^(SwigPyObject_dealloc)\(PyObject \*v\)$")
 
 all_lines = [
     "#ifdef __NT__\n",
@@ -138,6 +134,7 @@ with open(args.input) as f:
     current_function_proto = None
     current_function_uses_args = False
     current_function_uses_varargs = False
+    current_function_uses_AppendOutput = False
 
     def prepend_subst(subst, to_prepend, orig_line):
         if not isinstance(to_prepend, list):
@@ -176,6 +173,10 @@ with open(args.input) as f:
             m = swig_clink_var_get_regex.match(line)
         if not m:
             m = swig_clink_var_set_regex.match(line)
+        if not m:
+            m = SWIG_Python_TypeError_regex.match(line)
+        if not m:
+            m = SwigPyObject_dealloc_regex.match(line)
         if m:
             stat = STAT_IN_FUNCTION
             entered_function = True
@@ -183,24 +184,60 @@ with open(args.input) as f:
             current_function_proto = line
             current_function_uses_args = False
             current_function_uses_varargs = False
+            current_function_uses_AppendOutput = False
             func_patches = patches.get(current_function, [])[:]
+            if current_function == "SWIG_Python_TypeError":
+                func_patches.append(
+                    (
+                        "repl_text",
+                        (
+                            "#ifndef Py_LIMITED_API // tp_name is not accessible",
+                            (
+                                "      (void) obj;",
+                                "#ifndef Py_LIMITED_API // tp_name is not accessible",
+                            ),
+                        )))
+            elif current_function == "SwigPyObject_dealloc":
+                func_patches.append(
+                    (
+                        "insert_before_text",
+                        (
+                            "printf(\"swig/python detected a memory leak",
+                            (
+                                "#ifdef TESTABLE_BUILD",
+                                "      if ( name == nullptr || strcmp(name, \"std::out_of_range *\") != 0 )",
+                                "        abort();",
+                                "#endif",
+                            ),
+                        ),
+                    ))
             line = line.replace(", ...arg0)", ", ...)")
         else:
-            if line.find("PyArg_UnpackTuple(args") > -1:
+            if line.find("(args") > -1:
                 current_function_uses_args = True
-            elif line.find(" = args;"):
+            elif line.find(" = args;") > -1:
                 current_function_uses_args = True
             elif line.find("varargs") > -1:
                 current_function_uses_varargs = True
+
+            if line.find("SWIG_Python_AppendOutput") > -1:
+                current_function_uses_AppendOutput = True
+            elif line.find("return resultobj;") > -1:
+                if current_function_uses_AppendOutput:
+                    subst = line.rstrip().replace(
+                        "resultobj",
+                        "PyList_Check(resultobj) ? PyList_AsTuple(resultobj) : resultobj"
+                    )
+                    subst = "%s %s" % (subst, patched_cmt)
+
             for patch_kind, patch_data in func_patches:
-                if patch_kind == "va_copy":
-                    if args.apply_valist_patches:
-                        dst_va, src_va = patch_data
-                        target = "%s = *%s;" % (dst_va, src_va)
-                        if line.strip() == target:
-                            subst = "set_vva(%s, *%s); %s" % (dst_va, src_va, patched_cmt)
-                elif patch_kind == "spontaneous_callback_call":
-                    if line.lstrip().startswith("return "):
+                if patch_kind == "spontaneous_callback_call":
+                    if patch_data is not None:
+                        add_gil_lock, try_anchor, catch_anchor = patch_data
+                    else:
+                        add_gil_lock, try_anchor, catch_anchor = True, None, None
+                    if line.lstrip().startswith("return ") \
+                       or catch_anchor and line.rstrip() == catch_anchor:
                         subst = prepend_subst(
                             subst,
                             "  }\n" +
@@ -211,13 +248,23 @@ with open(args.input) as f:
                             "      PyErr_Print();\n"
                             "  }\n",
                             line)
-                    elif line.rstrip().find("c_result = SwigValueInit") > -1:
-                        # vtype = line.strip().split()[0]
-                        # init_line = "  %s c_result = %s(0);" % (vtype, vtype)
+                    elif line.rstrip().find("c_result = SwigValueInit") > -1 \
+                         or line.rstrip().find("qstring c_result;") > -1 \
+                         or try_anchor and line.rstrip() == try_anchor:
+
+                        lines = []
+                        if add_gil_lock:
+                            subst_lines = [
+                                "  PYW_GIL_GET; %s" % patched_cmt,
+                                "  try {"
+                            ]
+                        else:
+                            subst_lines = [
+                                "  try { %s" % patched_cmt
+                            ]
                         subst = append_subst(
                             subst,
-                            "  PYW_GIL_GET; %s\n" % patched_cmt +
-                            "  try {",
+                            "\n".join(subst_lines),
                             line)
 
                 elif patch_kind == "repl_text":
@@ -231,7 +278,10 @@ with open(args.input) as f:
                 elif patch_kind == "insert_before_text":
                     idx = line.find(patch_data[0])
                     if idx > -1:
-                        subst = ["%s %s" % (patch_data[1], patched_cmt), line]
+                        repl = patch_data[1]
+                        if not isinstance(repl, str):
+                            repl = "\n".join(repl)
+                        subst = ["%s %s" % (repl, patched_cmt), line]
                 elif patch_kind == "maybe_collect_director_fixed_method_set":
                     if entered_function:
                         subst = [
@@ -241,28 +291,29 @@ with open(args.input) as f:
                                 hooks_class_name, hooks_class_name),
                         ]
                         for forbidden, replacement in (patch_data or []):
-                            subst.append("ensure_no_method_when_no_695_compat(self, \"%s\", \"%s\");" % (
+                            subst.append("ensure_no_method(self, \"%s\", \"%s\");" % (
                                 forbidden, replacement))
 
                 elif patch_kind == "thread_unsafe":
                     if entered_function:
-                        subst = prepend_subst(subst, "  if ( !__chkthr() ) return NULL; %s" % patched_cmt, line)
+                        subst = prepend_subst(subst, "  if ( !__chkthr() ) return nullptr; %s" % patched_cmt, line)
                 elif patch_kind == "requires_idb":
                     if entered_function:
-                        subst = prepend_subst(subst, "  if ( !__chkreqidb() ) return NULL; %s" % patched_cmt, line)
+                        subst = prepend_subst(subst, "  if ( !__chkreqidb() ) return nullptr; %s" % patched_cmt, line)
                 elif patch_kind == "director_method_call_arity_cap":
-                    method_name, args_cfoa, args_cmoa = patch_data
+                    add_gil_lock, method_name, args_cfoa, args_cmoa = patch_data
                     if entered_function:
-                        subst = prepend_subst(
-                            subst,
+                        subst_lines = ["  %s" % patched_cmt]
+                        if add_gil_lock:
+                            subst_lines.append("  PYW_GIL_GET;")
+                        subst_lines.extend(
                             [
-                                "  %s" % patched_cmt,
                                 "  newref_t __method(PyObject_GetAttrString(swig_get_self(), \"%s\"));" % method_name,
                                 "  ssize_t __argcnt = get_callable_arg_count(__method);",
                                 "  if ( __argcnt < 0 )",
                                 "    Swig::DirectorMethodException::raise(\"Error detected when calling '%s.%s'\");" % (hooks_class_name, method_name),
-                            ],
-                            line)
+                            ])
+                        subst = prepend_subst(subst, subst_lines, line)
                     else:
                         add_error = False
                         call_args = None
@@ -275,6 +326,12 @@ with open(args.input) as f:
                             subst = re.sub("\(.*\);", call_args + ";", line)
                             if add_error:
                                 subst = ["#error CHECK_THAT_THIS_WORKS", subst]
+                elif patch_kind == "nullptr_result_on_py_error":
+                    rpfx = "  resultobj = "
+                    idx = line.find(rpfx)
+                    if idx > -1:
+                        repl = line[0:idx+len(rpfx)] + "PyErr_Occurred() != nullptr ? nullptr : " + line[idx+len(rpfx):]
+                        subst = ["%s %s" % (repl, patched_cmt)]
                 else:
                     raise Exception("Unknown patch kind: %s" % patch_kind)
             entered_function = False
diff --git a/tools/patch_codegen/bytes.py b/tools/patch_codegen/bytes.py
new file mode 100644
index 0000000..8adf771
--- /dev/null
+++ b/tools/patch_codegen/bytes.py
@@ -0,0 +1,8 @@
+{
+    "next_that" : [
+        ("nullptr_result_on_py_error", None),
+    ],
+    "prev_that" : [
+        ("nullptr_result_on_py_error", None),
+    ],
+}
diff --git a/tools/patch_codegen/dirtree.py b/tools/patch_codegen/dirtree.py
new file mode 100644
index 0000000..01c741c
--- /dev/null
+++ b/tools/patch_codegen/dirtree.py
@@ -0,0 +1,36 @@
+{
+    "SwigDirector_dirspec_t::get_name" : [
+        ("repl_text", (
+            "int swig_res = SWIG_AsVal_bool(result, &swig_val);",
+            ("int swig_res = PyUnicode_Check(result) && (out == nullptr || PyUnicode_as_qstring(out, result));",
+             "  swig_val = static_cast(swig_res);"))),
+        ("director_method_call_arity_cap", (
+            True, # add GIL lock
+            "get_name",
+            "(method ,(PyObject *)obj0,(__argcnt < 2 ? nullptr : (PyObject *)obj1), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(__argcnt < 3 ? nullptr : (PyObject *)obj1), nullptr)",
+        )),
+        ("spontaneous_callback_call", (
+            False,                               # add GIL lock
+            None,                                # try anchor
+            None,                                # catch anchor
+        )),
+    ],
+    "SwigDirector_dirspec_t::get_inode" : [
+        ("spontaneous_callback_call", None)
+    ],
+    "SwigDirector_dirspec_t::get_attrs" : [
+        ("spontaneous_callback_call", None)
+    ],
+    "SwigDirector_dirspec_t::rename_inode" : [
+        ("spontaneous_callback_call", None)
+    ],
+    "SwigDirector_dirspec_t::unlink_inode" : [
+        ("spontaneous_callback_call", (
+            True,                                # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",    # try anchor
+            "}"                                  # catch anchor
+        ))
+    ],
+}
+
diff --git a/tools/patch_codegen/diskio.py b/tools/patch_codegen/diskio.py
new file mode 100644
index 0000000..f77e1d0
--- /dev/null
+++ b/tools/patch_codegen/diskio.py
@@ -0,0 +1,34 @@
+{
+    "SwigDirector_ioports_fallback_t::handle" : [
+        ("repl_text", (
+            "int swig_res = SWIG_AsVal_bool(result, &swig_val);",
+            (
+                "const bool is_error = PyUnicode_Check(result) != 0;",
+                "  int swig_res = is_error || result == Py_None;",
+                "  if ( is_error )",
+                "    PyUnicode_as_qstring(errbuf, result);",
+                "  swig_val = !is_error;",
+            ),
+        )),
+    ],
+
+    "SwigDirector_choose_ioport_parser_t::parse" : [
+        ("repl_text", (
+            "int swig_res = SWIG_AsVal_bool(result, &swig_val);",
+            ("""const bool is_proper_tuple = PyTuple_Check(result) && PyTuple_Size(result) == 2;
+  const bool is_item0_bool = is_proper_tuple && PyBool_Check(PyTuple_GetItem(result, 0));
+  const bool is_success = is_proper_tuple && is_item0_bool && PyTuple_GetItem(result, 0) == Py_True;
+  const bool is_item1_str = is_proper_tuple && PyUnicode_Check(PyTuple_GetItem(result, 1));
+  const bool well_formed = is_proper_tuple && is_item0_bool && ((is_success && is_item1_str) || !is_success);
+  int swig_res = well_formed;
+  if ( well_formed )
+  {
+    if ( is_item1_str )
+      PyUnicode_as_qstring(param, PyTuple_GetItem(result, 1));
+    else
+      param->qclear();
+  }
+  swig_val = well_formed ? is_success : false;
+""")))
+            ],
+}
diff --git a/tools/patch_codegen/funcs.py b/tools/patch_codegen/funcs.py
new file mode 100644
index 0000000..63ef84f
--- /dev/null
+++ b/tools/patch_codegen/funcs.py
@@ -0,0 +1,13 @@
+{
+    "func_item_iterator_t___next__" : [
+        ("nullptr_result_on_py_error", None),
+    ],
+    "func_item_iterator_t_prev" : [
+        ("nullptr_result_on_py_error", None),
+    ],
+    "func_item_iterator_t_succ" : [
+        ("nullptr_result_on_py_error", None),
+    ],
+}
+
+
diff --git a/tools/patch_codegen/graph.py b/tools/patch_codegen/graph.py
index 1655693..48396c3 100644
--- a/tools/patch_codegen/graph.py
+++ b/tools/patch_codegen/graph.py
@@ -1,36 +1,18 @@
 {
+    "SwigDirector_abstract_graph_t::nrect" : [
+        ("repl_text", ("return", "qnotused(c_result); qnotused(n); // return")),
+    ],
+    "SwigDirector_abstract_graph_t::get_edge" : [
+        ("repl_text", ("return", "qnotused(c_result); qnotused(e); // return")),
+    ],
+    "SwigDirector_abstract_graph_t::clone" : [
+        ("repl_text", ("return", "qnotused(c_result); // return")),
+    ],
     "SwigDirector_mutable_graph_t::get_edge" : [
         ("repl_text", ("return", "qnotused(c_result); qnotused(e); // return")),
     ],
     "SwigDirector_mutable_graph_t::clone" : [
         ("repl_text", ("return", "qnotused(c_result); // return")),
     ],
-    "SwigDirector_mutable_graph_t::redo_layout" : [
-        ("repl_text", ("return", "qnotused(c_result); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::resize" : [
-        ("repl_text", ("Swig::Director", "qnotused(n); Swig::Director")),
-    ],
-    "SwigDirector_mutable_graph_t::add_node" : [
-        ("repl_text", ("return", "qnotused(c_result); qnotused(r); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::del_node" : [
-        ("repl_text", ("return", "qnotused(c_result); qnotused(n); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::add_edge" : [
-        ("repl_text", ("return", "qnotused(c_result); qnotused(i); qnotused(j); qnotused(ei); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::del_edge" : [
-        ("repl_text", ("return", "qnotused(c_result); qnotused(i); qnotused(j); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::replace_edge" : [
-        ("repl_text", ("return", "qnotused(c_result); qnotused(i); qnotused(j); qnotused(x); qnotused(y); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::refresh" : [
-        ("repl_text", ("return", "qnotused(c_result); // return")),
-    ],
-    "SwigDirector_mutable_graph_t::set_nrect" : [
-        ("repl_text", ("return", "qnotused(c_result); qnotused(n); qnotused(r); // return")),
-    ],
 }
 
diff --git a/tools/patch_codegen/hexrays.py b/tools/patch_codegen/hexrays.py
index a36fb28..34847cb 100644
--- a/tools/patch_codegen/hexrays.py
+++ b/tools/patch_codegen/hexrays.py
@@ -3,29 +3,30 @@
         ("maybe_collect_director_fixed_method_set", None),
     ],
 
-    "vcreate_helper" : [
-        ("va_copy", ("arg4", "temp")),
-    ],
-    "vcall_helper" : [
-        ("va_copy", ("arg4", "temp")),
-    ],
-    "Hexrays_Callback" : [
-        ("va_copy", ("arg3", "temp")),
-    ],
     "SwigDirector_microcode_filter_t::match" : [
-        ("spontaneous_callback_call", True)
+        ("spontaneous_callback_call", None)
     ],
     "SwigDirector_microcode_filter_t::apply" : [
-        ("spontaneous_callback_call", True)
+        ("spontaneous_callback_call", None)
     ],
     "SwigDirector_udc_filter_t::match" : [
-        ("spontaneous_callback_call", True)
+        ("spontaneous_callback_call", None)
     ],
     "SwigDirector_optinsn_t::func" : [
-        ("spontaneous_callback_call", True)
+        ("director_method_call_arity_cap", (
+            True,  # add GIL lock
+            "func",
+            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 3 ? nullptr : (PyObject *)obj2), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? nullptr : (PyObject *)obj2), nullptr)",
+        )),
+        ("spontaneous_callback_call", (
+            False, # add GIL lock
+            None,  # try anchor
+            None   # catch anchor
+        )),
     ],
     "SwigDirector_optblock_t::func" : [
-        ("spontaneous_callback_call", True)
+        ("spontaneous_callback_call", None)
     ],
     "new_mba_ranges_t" : [
         ("repl_text", (
diff --git a/tools/patch_codegen/ida_hexrays.py b/tools/patch_codegen/ida_hexrays.py
index a9a2cbd..889c281 100644
--- a/tools/patch_codegen/ida_hexrays.py
+++ b/tools/patch_codegen/ida_hexrays.py
@@ -1,6 +1,6 @@
 {
     "repl_line" : [
         ("class casm_t(ida_pro.uintvec_t):", "class casm_t(ida_pro.eavec_t):"),
-        ("class casm_t(ida_pro.ulonglongvec_t):", "class casm_t(ida_pro.eavec_t):"),
+        ("class casm_t(ida_pro.uint64vec_t):", "class casm_t(ida_pro.eavec_t):"),
     ],
 }
diff --git a/tools/patch_codegen/idp.py b/tools/patch_codegen/idp.py
index a9179e9..1e31206 100644
--- a/tools/patch_codegen/idp.py
+++ b/tools/patch_codegen/idp.py
@@ -11,9 +11,10 @@
     "SwigDirector_IDP_Hooks::ev_get_bg_color" : [
 
         ("director_method_call_arity_cap", (
+            False, # add GIL lock
             "ev_get_bg_color",
-            "(method , __argcnt == 2 ? (PyObject *) obj1 : (PyObject *) obj0, __argcnt == 2 ? (PyObject *) NULL : (PyObject *) obj1, NULL)",
-            "(swig_get_self(), (PyObject *) swig_method_name , __argcnt == 2 ? (PyObject *) obj1 : (PyObject *) obj0, __argcnt == 2 ? (PyObject *) NULL : (PyObject *) obj1, NULL)")
+            "(method , __argcnt == 2 ? (PyObject *) obj1 : (PyObject *) obj0, __argcnt == 2 ? (PyObject *) nullptr : (PyObject *) obj1, nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name , __argcnt == 2 ? (PyObject *) obj1 : (PyObject *) obj0, __argcnt == 2 ? (PyObject *) nullptr : (PyObject *) obj1, nullptr)")
         ),
 
         ("insert_before_text", ("int swig_val;",
@@ -24,10 +25,10 @@ if ( __argcnt == 2 )
   {
     result = PyInt_FromLong(0);
   }
-  else if ( IDAPyInt_Check(result) )
+  else if ( PyLong_Check(result) )
   {
-    *color = bgcolor_t(IDAPyInt_AsLong(result));
-    result = IDAPyInt_FromLong(1);
+    *color = bgcolor_t(PyLong_AsLong(result));
+    result = PyLong_FromLong(1);
   }
 }
 """)),
@@ -46,4 +47,49 @@ if ( __argcnt == 2 )
             ),
         ),
     ],
+
+    "SwigDirector_IDB_Hooks::renamed" : [
+        ("director_method_call_arity_cap", (
+            False, # add GIL lock
+            "renamed",
+            "(method ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2,(__argcnt < 5 ? nullptr : (PyObject *)obj3), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2,(__argcnt < 5 ? nullptr : (PyObject *)obj3), nullptr)")
+        ),
+    ],
+
+    "SwigDirector_IDB_Hooks::compiler_changed" : [
+        ("director_method_call_arity_cap", (
+            False, # add GIL lock
+            "compiler_changed",
+            "(method ,(__argcnt == 1 ? nullptr : (PyObject *)obj0), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(__argcnt == 1 ? nullptr : (PyObject *)obj0), nullptr)")
+        ),
+    ],
+
+    "SwigDirector_IDB_Hooks::bookmark_changed" : [
+        ("director_method_call_arity_cap", (
+            False, # add GIL lock
+            "bookmark_changed",
+            "(method ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2,(__argcnt < 5 ? nullptr : (PyObject *)obj3), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2,(__argcnt < 5 ? nullptr : (PyObject *)obj3), nullptr)")
+        ),
+    ],
+
+    "SwigDirector_IDB_Hooks::segm_deleted" : [
+        ("director_method_call_arity_cap", (
+            False, # add GIL lock
+            "segm_deleted",
+            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? nullptr : (PyObject *)obj2), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? nullptr : (PyObject *)obj2), nullptr)")
+        ),
+    ],
+
+    "SwigDirector_IDB_Hooks::struc_renamed" : [
+        ("director_method_call_arity_cap", (
+            False, # add GIL lock
+            "struc_renamed",
+            "(method ,(PyObject *)obj0,(__argcnt < 3 ? nullptr : (PyObject *)obj1), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(__argcnt < 3 ? nullptr : (PyObject *)obj1), nullptr)")
+        ),
+    ],
 }
diff --git a/tools/patch_codegen/kernwin.py b/tools/patch_codegen/kernwin.py
index 8e9b328..577fed7 100644
--- a/tools/patch_codegen/kernwin.py
+++ b/tools/patch_codegen/kernwin.py
@@ -1,7 +1,4 @@
 {
-    "vask_file" : [
-        ("va_copy", ("arg4", "temp")),
-    ],
     "SwigDirector_UI_Hooks::SwigDirector_UI_Hooks" : [
         ("maybe_collect_director_fixed_method_set",
          [
@@ -18,18 +15,41 @@
     ],
     "SwigDirector_UI_Hooks::populating_widget_popup" : [
         ("director_method_call_arity_cap", (
+            False, # add GIL lock
             "populating_widget_popup",
-            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 3 ? NULL : (PyObject *)obj2), NULL)",
-            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? NULL : (PyObject *)obj2), NULL)",
+            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 3 ? nullptr : (PyObject *)obj2), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? nullptr : (PyObject *)obj2), nullptr)",
         )),
     ],
     "SwigDirector_UI_Hooks::finish_populating_widget_popup" : [
         ("director_method_call_arity_cap", (
+            False, # add GIL lock
             "finish_populating_widget_popup",
-            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 3 ? NULL : (PyObject *)obj2), NULL)",
-            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? NULL : (PyObject *)obj2), NULL)",
+            "(method ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 3 ? nullptr : (PyObject *)obj2), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? nullptr : (PyObject *)obj2), nullptr)",
         )),
     ],
+    "SwigDirector_UI_Hooks::saved" : [
+        ("director_method_call_arity_cap", (
+            True,  # add GIL lock
+            "saved",
+            "(method ,(__argcnt < 2 ? nullptr : (PyObject *)obj0), nullptr)",
+            "(swig_get_self(), (PyObject *) swig_method_name ,(__argcnt < 2 ? nullptr : (PyObject *)obj0), nullptr)",
+        )),
+        ("spontaneous_callback_call", (
+            False, # add GIL lock
+            None,  # try anchor
+            None   # catch anchor
+        )),
+    ],
+    # "SwigDirector_UI_Hooks::database_closed" : [
+    #     ("director_method_call_arity_cap", (
+    #         True,  # add GIL lock
+    #         "database_closed",
+    #         "(method ,(__argcnt < 2 ? nullptr : (PyObject *)obj0), nullptr)",
+    #         "(swig_get_self(), (PyObject *) swig_method_name ,(__argcnt < 2 ? nullptr : (PyObject *)obj0), nullptr)",
+    #     )),
+    # ],
     "__additional_thread_unsafe__" :
     [
         "py_get_ask_form",
diff --git a/tools/patch_codegen/lines.py b/tools/patch_codegen/lines.py
new file mode 100644
index 0000000..06c4fb1
--- /dev/null
+++ b/tools/patch_codegen/lines.py
@@ -0,0 +1,9 @@
+{
+   "SwigDirector_user_defined_prefix_t::get_user_defined_prefix" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",  # try anchor
+            "}"                                # catch anchor
+        )),
+    ],
+}
diff --git a/tools/patch_codegen/merge.py b/tools/patch_codegen/merge.py
new file mode 100644
index 0000000..4cacb24
--- /dev/null
+++ b/tools/patch_codegen/merge.py
@@ -0,0 +1,54 @@
+{
+    "SwigDirector_merge_node_helper_t::print_entry_name" : [
+        ("spontaneous_callback_call", None)
+    ],
+    "SwigDirector_merge_node_helper_t::print_entry_details" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",  # try anchor
+            "}"                                # catch anchor
+        )),
+    ],
+    "SwigDirector_merge_node_helper_t::get_column_headers" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",  # try anchor
+            "}"                                # catch anchor
+        )),
+    ],
+    "SwigDirector_merge_node_helper_t::is_mergeable" : [
+        ("spontaneous_callback_call", None)
+    ],
+    "SwigDirector_merge_node_helper_t::get_netnode" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  netnode c_result;",             # try anchor
+            None                               # catch anchor
+        )),
+    ],
+    "SwigDirector_merge_node_helper_t::map_scalar" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",  # try anchor
+            "}"                                # catch anchor
+        )),
+    ],
+    "SwigDirector_merge_node_helper_t::map_string" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",  # try anchor
+            "}"                                # catch anchor
+        )),
+    ],
+    # ignored, see merge.i
+    # "SwigDirector_merge_node_helper_t::map_value" : 
+    "SwigDirector_merge_node_helper_t::refresh" : [
+        ("spontaneous_callback_call", (
+            True,                              # add GIL lock
+            "  swig::SwigVar_PyObject obj0;",  # try anchor
+            "}"                                # catch anchor
+        )),
+    ],
+    # ignored, see merge.i
+    # "SwigDirector_merge_node_helper_t::get_log_name" : 
+}
diff --git a/tools/patch_constants.py b/tools/patch_constants.py
index 61d3d21..e774052 100644
--- a/tools/patch_constants.py
+++ b/tools/patch_constants.py
@@ -12,12 +12,7 @@
 from __future__ import print_function
 
 import re
-
-try:
-  from argparse import ArgumentParser
-except:
-  print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'")
-  raise
+from argparse import ArgumentParser
 
 parser = ArgumentParser(description='Patch calling conventions for some functions, so it builds on windows')
 parser.add_argument("-i", "--input", required=True)
diff --git a/tools/patch_directors_cc.py b/tools/patch_directors_cc.py
index ddcdfc6..31a32f0 100644
--- a/tools/patch_directors_cc.py
+++ b/tools/patch_directors_cc.py
@@ -1,10 +1,6 @@
 from __future__ import print_function
 
-try:
-    from argparse import ArgumentParser
-except:
-    print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'")
-    raise
+from argparse import ArgumentParser
 
 parser = ArgumentParser(description='Patch calling conventions for some functions, so it builds on windows')
 parser.add_argument("-f", "--file", required=True)
diff --git a/tools/preprocess_sdk_header.py b/tools/preprocess_sdk_header.py
new file mode 100644
index 0000000..e0b3663
--- /dev/null
+++ b/tools/preprocess_sdk_header.py
@@ -0,0 +1,75 @@
+from __future__ import print_function
+
+import sys
+import re
+
+from argparse import ArgumentParser
+
+parser = ArgumentParser()
+parser.add_argument("-i", "--input", required=True)
+parser.add_argument("-o", "--output", required=True)
+parser.add_argument("-m", "--metadata", required=True)
+args = parser.parse_args()
+
+forbidden_data_exports = [
+    "idaman processor_t ida_export_data ph;",
+    "idaman asm_t ida_export_data ash;"
+]
+
+def acceptable_line(l):
+    for forbidden in forbidden_data_exports:
+        if l.find(forbidden) > -1:
+            return False
+    return True
+
+collected_nonnul = []
+
+def is_arg_type_char(c):
+    return c in " *" or is_arg_name_char(c)
+
+def is_arg_name_char(c):
+    return c == "_" or (c >= "a" and c <= "z") or (c >= "A" and c <= "Z")
+
+def handle_nonnul(l):
+    idx = l.find("NONNULL")
+    if idx > -1 and l.find("define NONNULL") < 0:
+
+        # Get type
+        type_start, type_end = idx - 1, idx
+        while type_start > 0 and is_arg_type_char(l[type_start - 1]):
+            type_start -= 1
+        type_str = l[type_start:type_end].strip()
+
+        # Get identifier
+        id_start = idx + 7
+        while not is_arg_name_char(l[id_start]):
+            id_start += 1
+        id_end = id_start
+        while id_end < (len(l) - 1) and is_arg_name_char(l[id_end]):
+            id_end += 1
+        id_str = l[id_start:id_end].strip()
+
+        nonnul_id_str = "NONNULL_" + id_str
+        l = l[0:idx] + nonnul_id_str + l[id_end:].replace(id_str, nonnul_id_str)
+        collected_nonnul.append((type_str, nonnul_id_str))
+
+    return l
+
+def process(clob):
+    lines = clob.split("\n")
+    lines = list(map(handle_nonnul, lines))
+    lines = list(filter(acceptable_line, lines))
+    out = "\n".join(lines).encode("UTF-8")
+    with open(args.output, "wb") as fout:
+        fout.write(out)
+    if collected_nonnul:
+        with open(args.metadata, "wb") as fout:
+            fout.write(str(collected_nonnul).encode("UTF-8"))
+            fout.write("\n".encode("UTF-8"))
+
+if args.input == "-":
+    process(sys.stdin.read())
+else:
+    with open(args.input, "rb") as fin:
+        raw = fin.read()
+    process(raw.decode("UTF-8"))
diff --git a/tools/swigdocs.py b/tools/swigdocs.py
deleted file mode 100644
index 944d64e..0000000
--- a/tools/swigdocs.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# -----------------------------------------------------------------------
-# This script is used to extract embedded documentation strings
-# from SWIG interface files.
-# (c) Hex-Rays
-#
-import glob
-import sys
-import os
-
-# ---------------------------------------------------------------------------
-def extract_docs(lines, out):
-    S_SWIG_CLOSE    = '%}'
-    S_PYDOC_START   = '#'
-    S_PYDOC_END     = '#'
-    S_COMMENT       = '#'
-    S_INLINE        = '%inline %{'
-    S_PYCODE_START  = '%pythoncode %{'
-
-    in_inline = False
-    in_pythoncode = False
-    in_pydoc = False
-
-    for line in lines:
-        line = line.rstrip()
-        # skip empty lines
-        if not line:
-            continue
-
-        # Inside pythoncode tag?
-        if in_pythoncode:
-            if line == S_PYDOC_START:
-                in_pydoc = True
-                continue
-            elif line == S_PYDOC_END:
-                in_pydoc = False
-                continue
-            elif line == S_SWIG_CLOSE:
-                in_pythoncode = False
-                continue
-            # Skip unneeded tags
-            elif line[:8] == '#